diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 2c8e0d1f..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - root: true, - env: { browser: true, es2020: true }, - extends: [ - 'eslint:recommended', - 'plugin:react/recommended', - 'plugin:react/jsx-runtime', - 'plugin:react-hooks/recommended', - ], - ignorePatterns: ['dist', 'coverage', '.eslintrc.cjs'], - parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, - settings: { react: { version: '18.2' } }, - plugins: ['react-refresh'], - rules: { - 'react-refresh/only-export-components': [ - 'warn', - { allowConstantExport: true }, - ], - }, -} diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 6bc7de74..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,29 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - -version: 2 -updates: - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "weekly" - commit-message: - prefix: ":books:" - labels: - - "dependencies" - - "dependabot" - groups: - dependencies: - patterns: - - "*" - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - commit-message: - prefix: ":books:" - labels: - - "dependencies" - - "dependabot" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 3c25467f..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: "Build and Preview" - -on: - pull_request: - types: - - opened - - reopened - - synchronize - - closed - -permissions: write-all - -# Use a single shared concurrency group so all runs that write to gh-pages are -# serialised. "preview-${{ github.ref }}" only serialises per PR, which still -# allows concurrent writes from different PRs (or synchronize vs. closed events) -# and causes "remote contains work not present locally" / rebase conflicts. -# cancel-in-progress: false ensures queued runs still execute (important for -# the "closed" event that removes a preview). -concurrency: - group: gh-pages - cancel-in-progress: false - -jobs: - build: - runs-on: ubuntu-latest - name: Make sure it builds. Then show a preview. - steps: - - name: Checkout code - uses: actions/checkout@v7 - - name: Setup Node.js - uses: actions/setup-node@v7 - with: - node-version: '22' - cache: 'npm' - - name: Cache dependencies - uses: actions/cache@v6 - with: - path: ~/.npm - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: npm- - - name: Install dependencies - run: npm ci - - name: Set env - shell: bash - run: | - PR_NUMBER="${{ github.event.pull_request.number }}" - echo "CESIUM_BASE_URL=pr-preview/pr-${PR_NUMBER}/" >> "$GITHUB_ENV" - - name: Run build with Base - run: npx vite build --base=${{ env.CESIUM_BASE_URL }} - env: - VITE_CESIUM_TOKEN: ${{ secrets.VITE_CESIUM_TOKEN }} - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - name: Deploy preview - uses: rossjrw/pr-preview-action@v1 - with: - source-dir: ./build/ diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 010282af..00000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,71 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [ main ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ main ] - schedule: - - cron: '28 5 * * 6' # At 05:28 on Saturday - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'javascript' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - name: Checkout repository - uses: actions/checkout@v7 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v4 - - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 diff --git a/.github/workflows/console.yml b/.github/workflows/console.yml deleted file mode 100644 index ad17391a..00000000 --- a/.github/workflows/console.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: "Console" - -on: - pull_request: - types: [ opened, synchronize, reopened ] - -permissions: write-all - -jobs: - console: - runs-on: ubuntu-latest - name: Get console logs - env: - PREVIEW_URL: https://happy-birthday.julia-hell.com/pr-preview/pr-${{ github.event.number }}/ - steps: - - name: Wait for build to succeed - uses: fountainhead/action-wait-for-check@v1.2.0 - id: wait-for-build - with: - token: ${{ secrets.GITHUB_TOKEN }} - checkName: Make sure it builds. Then show a preview. - ref: ${{ github.event.pull_request.head.sha || github.sha }} - - name: Exit if build did not succeed - if: steps.wait-for-build.outputs.conclusion == 'failure' - run: exit 1 - shell: bash - - name: Wait for preview to be available - if: steps.wait-for-build.outputs.conclusion == 'success' - run: | - TIMEOUT=180 - INTERVAL=5 - ELAPSED=0 - until [ $ELAPSED -ge $TIMEOUT ]; do - STATUS=$(curl --silent --output /dev/null --write-out "%{http_code}" "${PREVIEW_URL}" || true) - if [[ "$STATUS" =~ ^2 ]]; then - echo "Preview is available (HTTP $STATUS)" - exit 0 - fi - echo "Waiting for preview... (HTTP $STATUS, ${ELAPSED}s elapsed)" - sleep $INTERVAL - ELAPSED=$((ELAPSED + INTERVAL)) - done - echo "Timed out waiting for preview after ${TIMEOUT}s" - exit 1 - shell: bash - - name: Checkout code - uses: actions/checkout@v7 - - name: Use WebApp Console Log Action - uses: Primajin/webapp-console-log-action@v1 - with: - webapp-url: ${{ env.PREVIEW_URL }} - regexp-warning: '\[.+(?:Automatic fallback to software WebGL has been deprecated|GPU stall due to ReadPixels).*' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index 1f5a6bb8..00000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: "Lint" - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -permissions: write-all - -jobs: - lint: - runs-on: ubuntu-latest - name: Make sure the code adheres to the XO coding standard. - steps: - - name: Checkout code - uses: actions/checkout@v7 - - name: Setup Node.js - uses: actions/setup-node@v7 - with: - node-version: '22' - cache: 'npm' - - name: Cache dependencies - uses: actions/cache@v6 - with: - path: ~/.npm - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: npm- - - name: Install dependencies - run: npm ci - - name: Import GPG key - uses: crazy-max/ghaction-import-gpg@v7 - with: - gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} - passphrase: ${{ secrets.PASSPHRASE }} - fingerprint: "38E6EABC680CCFCE10EA0454372717D2D3474974" - git_user_signingkey: true - git_commit_gpgsign: true - git_config_global: true - - name: List keys - run: gpg -K - - name: Run linter - uses: wearerequired/lint-action@v2 - with: - auto_fix: true - eslint: true - commit_message: ":sparkles: Fix code style issues with ${linter}" - git_email: Primajin@users.noreply.github.com diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index a910f025..00000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: "Publish" - -on: - push: - branches: [ main ] - -permissions: - contents: write - -jobs: - build: - runs-on: ubuntu-latest - name: Deploy the latest main version to Github pages. - steps: - - name: Checkout code - uses: actions/checkout@v7 - - name: Setup Node.js - uses: actions/setup-node@v7 - with: - node-version: '22' - cache: 'npm' - - name: Cache dependencies - uses: actions/cache@v6 - with: - path: ~/.npm - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: npm- - - name: Install dependencies - run: npm ci - - name: Run build - run: npm run build - env: - VITE_CESIUM_TOKEN: ${{ secrets.VITE_CESIUM_TOKEN }} - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - name: Deploy 🚀 - uses: JamesIves/github-pages-deploy-action@v4 - with: - folder: build - retry_on_conflict: true diff --git a/.github/workflows/screenshots.yml b/.github/workflows/screenshots.yml deleted file mode 100644 index cf553c5a..00000000 --- a/.github/workflows/screenshots.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: "Screenshots" - -on: - pull_request: - types: [ opened, synchronize, reopened ] - -permissions: write-all - -jobs: - screenshots: - runs-on: ubuntu-latest - name: Take a screenshot after page was built - env: - PREVIEW_URL: https://happy-birthday.julia-hell.com/pr-preview/pr-${{ github.event.number }}/ - steps: - - name: Wait for build to succeed - uses: fountainhead/action-wait-for-check@v1.2.0 - id: wait-for-build - with: - token: ${{ secrets.GITHUB_TOKEN }} - checkName: Make sure it builds. Then show a preview. - ref: ${{ github.event.pull_request.head.sha || github.sha }} - - name: Exit if build did not succeed - if: steps.wait-for-build.outputs.conclusion == 'failure' - run: exit 1 - shell: bash - - name: Wait for preview to be available - if: steps.wait-for-build.outputs.conclusion == 'success' - run: | - TIMEOUT=180 - INTERVAL=5 - ELAPSED=0 - until [ $ELAPSED -ge $TIMEOUT ]; do - STATUS=$(curl --silent --output /dev/null --write-out "%{http_code}" "${PREVIEW_URL}" || true) - if [[ "$STATUS" =~ ^2 ]]; then - echo "Preview is available (HTTP $STATUS)" - exit 0 - fi - echo "Waiting for preview... (HTTP $STATUS, ${ELAPSED}s elapsed)" - sleep $INTERVAL - ELAPSED=$((ELAPSED + INTERVAL)) - done - echo "Timed out waiting for preview after ${TIMEOUT}s" - exit 1 - shell: bash - - name: Checkout code - uses: actions/checkout@v7 - - name: install puppeteer-headful - uses: mujo-code/puppeteer-headful@master - env: - CI: 'true' - - name: screenshots-ci-action - uses: flameddd/screenshots-ci-action@master - with: - devices: iPhone 13,iPad Pro,iPad Pro landscape - fullpage: false - noDesktop: true - releaseId: 291600528 # v1.0.0 release ID - type: png - url: ${{ env.PREVIEW_URL }} - waitUntil: load - # Wait ~10s for Cesium globe to load imagery tiles after page load. - # Uses a non-existent selector so the timeout acts as a render delay; - # the action catches the timeout and proceeds to take screenshots. - waitForSelector: '#_render_delay' - waitForSelectorTimeout: 10000 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/upload-artifact@v7 - with: - path: screenshots - name: Download-screenshots diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index d8fe689e..00000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: "Test" - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - lint: - runs-on: ubuntu-latest - name: Make sure the the unit tests pass. - steps: - - name: Checkout code - uses: actions/checkout@v7 - - name: Setup Node.js - uses: actions/setup-node@v7 - with: - node-version: '22' - cache: 'npm' - - name: Cache dependencies - uses: actions/cache@v6 - with: - path: ~/.npm - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: npm- - - name: Install dependencies - run: npm ci - - name: Run coverage - run: npm run coverage - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v7 - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - name: Upload test results to Codecov - if: ${{ !cancelled() }} - uses: codecov/test-results-action@v1 - with: - token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index fb5066e4..00000000 --- a/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -build -coverage -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -# dotenv environment variable files -.env.* - -# test results -junit.xml diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..3ac47c0d --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +happy-birthday.julia-hell.com \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index d034607b..00000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# đŸ›°ī¸ -## Satellite Tracker - -Under development diff --git a/assets/__vite-browser-external-BRyEmtFe.js b/assets/__vite-browser-external-BRyEmtFe.js new file mode 100644 index 00000000..96c3d10d --- /dev/null +++ b/assets/__vite-browser-external-BRyEmtFe.js @@ -0,0 +1 @@ +import{t as e}from"./rolldown-runtime-Bh1tDfsg.js";var t=e(((e,t)=>{t.exports={}}));export default t(); \ No newline at end of file diff --git a/assets/index-CKfIVXjp.js b/assets/index-CKfIVXjp.js new file mode 100644 index 00000000..b5fb23e1 --- /dev/null +++ b/assets/index-CKfIVXjp.js @@ -0,0 +1,21 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var x=Array.isArray,S={H:null,A:null,T:null,S:null},C=Object.prototype.hasOwnProperty;function w(e,n,r,i,a,o){return r=o.ref,{$$typeof:t,type:e,key:n,ref:r===void 0?null:r,props:o}}function T(e,t){return w(e.type,t,void 0,void 0,void 0,e.props)}function E(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function D(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var O=/\/+/g;function k(e,t){return typeof e==`object`&&e&&e.key!=null?D(``+e.key):t.toString(36)}function A(){}function j(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(A,A):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+k(e,0):a,x(o)?(i=``,c!=null&&(i=c.replace(O,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(E(o)&&(o=T(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(O,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(x(e))for(var u=0;u{t.exports=u()})),f=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=typeof setTimeout==`function`?setTimeout:null,_=typeof clearTimeout==`function`?clearTimeout:null,v=typeof setImmediate<`u`?setImmediate:null;function y(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function b(e){if(h=!1,y(e),!m)if(n(c)!==null)m=!0,A();else{var t=n(l);t!==null&&j(b,t.startTime-e)}}var x=!1,S=-1,C=5,w=-1;function T(){return!(e.unstable_now()-wt&&T());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,y(t),i=!0;break b}d===n(c)&&r(c),y(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(b,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?D():x=!1}}}var D;if(typeof v==`function`)D=function(){v(E)};else if(typeof MessageChannel<`u`){var O=new MessageChannel,k=O.port2;O.port1.onmessage=E,D=function(){k.postMessage(null)}}else D=function(){g(E,0)};function A(){x||(x=!0,D())}function j(t,n){S=g(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_continueExecution=function(){m||p||(m=!0,A())},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(_(S),S=-1):h=!0,j(b,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,A())),r},e.unstable_shouldYield=T,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),p=o(((e,t)=>{t.exports=f()})),m=o((e=>{var t=d();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()})),g=o((e=>{var t=p(),n=d(),r=h();function i(e){var t=`https://react.dev/errors/`+e;if(1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{P=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?N(n):``}function te(e){switch(e.tag){case 26:case 27:case 5:return N(e.type);case 16:return N(`Lazy`);case 13:return N(`Suspense`);case 19:return N(`SuspenseList`);case 0:case 15:return e=ee(e.type,!1),e;case 11:return e=ee(e.type.render,!1),e;case 1:return e=ee(e.type,!0),e;default:return``}}function ne(e){try{var t=``;do t+=te(e),e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}function F(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function re(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function ie(e){if(F(e)!==e)throw Error(i(188))}function I(e){var t=e.alternate;if(!t){if(t=F(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var o=a.alternate;if(o===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return ie(a),e;if(o===r)return ie(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var s=!1,c=a.child;c;){if(c===n){s=!0,n=a,r=o;break}if(c===r){s=!0,r=a,n=o;break}c=c.sibling}if(!s){for(c=o.child;c;){if(c===n){s=!0,n=o,r=a;break}if(c===r){s=!0,r=o,n=a;break}c=c.sibling}if(!s)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function L(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=L(e),t!==null)return t;e=e.sibling}return null}var ae=Array.isArray,R=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,oe={pending:!1,data:null,method:null,action:null},se=[],ce=-1;function z(e){return{current:e}}function le(e){0>ce||(e.current=se[ce],se[ce]=null,ce--)}function B(e,t){ce++,se[ce]=e.current,e.current=t}var V=z(null),ue=z(null),H=z(null),U=z(null);function W(e,t){switch(B(H,t),B(ue,e),B(V,null),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)&&(t=t.namespaceURI)?bd(t):0;break;default:if(e=e===8?t.parentNode:t,t=e.tagName,e=e.namespaceURI)e=bd(e),t=xd(e,t);else switch(t){case`svg`:t=1;break;case`math`:t=2;break;default:t=0}}le(V),B(V,t)}function de(){le(V),le(ue),le(H)}function G(e){e.memoizedState!==null&&B(U,e);var t=V.current,n=xd(t,e.type);t!==n&&(B(ue,e),B(V,n))}function fe(e){ue.current===e&&(le(V),le(ue)),U.current===e&&(le(U),Cf._currentValue=oe)}var pe=Object.prototype.hasOwnProperty,me=t.unstable_scheduleCallback,he=t.unstable_cancelCallback,ge=t.unstable_shouldYield,_e=t.unstable_requestPaint,ve=t.unstable_now,ye=t.unstable_getCurrentPriorityLevel,be=t.unstable_ImmediatePriority,xe=t.unstable_UserBlockingPriority,K=t.unstable_NormalPriority,Se=t.unstable_LowPriority,Ce=t.unstable_IdlePriority,we=t.log,Te=t.unstable_setDisableYieldValue,Ee=null,De=null;function Oe(e){if(De&&typeof De.onCommitFiberRoot==`function`)try{De.onCommitFiberRoot(Ee,e,void 0,(e.current.flags&128)==128)}catch{}}function ke(e){if(typeof we==`function`&&Te(e),De&&typeof De.setStrictMode==`function`)try{De.setStrictMode(Ee,e)}catch{}}var Ae=Math.clz32?Math.clz32:Ne,je=Math.log,Me=Math.LN2;function Ne(e){return e>>>=0,e===0?32:31-(je(e)/Me|0)|0}var Pe=128,Fe=4194304;function Ie(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Le(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,a=e.pingedLanes,o=e.warmLanes;e=e.finishedLanes!==0;var s=n&134217727;return s===0?(s=n&~i,s===0?a===0?e||(o=n&~o,o!==0&&(r=Ie(o))):r=Ie(a):r=Ie(s)):(n=s&~i,n===0?(a&=s,a===0?e||(o=s&~o,o!==0&&(r=Ie(o))):r=Ie(a)):r=Ie(n)),r===0?0:t!==0&&t!==r&&(t&i)===0&&(i=r&-r,o=t&-t,i>=o||i===32&&o&4194176)?t:r}function Re(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ze(e,t){switch(e){case 1:case 2:case 4:case 8:return t+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Be(){var e=Pe;return Pe<<=1,!(Pe&4194176)&&(Pe=128),e}function Ve(){var e=Fe;return Fe<<=1,!(Fe&62914560)&&(Fe=4194304),e}function He(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ue(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function We(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),gt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),_t={},vt={};function yt(e){return pe.call(vt,e)?!0:pe.call(_t,e)?!1:gt.test(e)?vt[e]=!0:(_t[e]=!0,!1)}function bt(e,t,n){if(yt(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function xt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function St(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Ct(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function wt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Tt(e){var t=wt(e)?`checked`:`value`,n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=``+e[t];if(!e.hasOwnProperty(t)&&n!==void 0&&typeof n.get==`function`&&typeof n.set==`function`){var i=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Et(e){e._valueTracker||=Tt(e)}function Dt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=wt(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function Ot(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var kt=/[\n"\\]/g;function At(e){return e.replace(kt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function jt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Ct(t)):e.value!==``+Ct(t)&&(e.value=``+Ct(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Nt(e,o,Ct(n)):Nt(e,o,Ct(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Ct(s):e.removeAttribute(`name`)}function Mt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null))return;n=n==null?``:``+Ct(n),t=t==null?n:``+Ct(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o)}function Nt(e,t,n){t===`number`&&Ot(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Pt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i=In),zn=` `,Bn=!1;function Vn(e,t){switch(e){case`keyup`:return Pn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Hn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Un=!1;function Wn(e,t){switch(e){case`compositionend`:return Hn(t);case`keypress`:return t.which===32?(Bn=!0,zn):null;case`textInput`:return e=t.data,e===zn&&Bn?null:e;default:return null}}function Gn(e,t){if(Un)return e===`compositionend`||!Fn&&Vn(e,t)?(e=an(),rn=nn=tn=null,Un=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=fr(n)}}function mr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?mr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function hr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ot(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ot(e.document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}function _r(e,t){var n=hr(t);t=e.focusedElem;var r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&mr(t.ownerDocument.documentElement,t)){if(r!==null&&gr(t)){if(e=r.start,n=r.end,n===void 0&&(n=e),`selectionStart`in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if(n=(e=t.ownerDocument||document)&&e.defaultView||window,n.getSelection){n=n.getSelection();var i=t.textContent.length,a=Math.min(r.start,i);r=r.end===void 0?a:Math.min(r.end,i),!n.extend&&a>r&&(i=r,r=a,a=i),i=pr(t,a);var o=pr(t,r);i&&o&&(n.rangeCount!==1||n.anchorNode!==i.node||n.anchorOffset!==i.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(i.node,i.offset),n.removeAllRanges(),a>r?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}}for(e=[],n=t;n=n.parentNode;)n.nodeType===1&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof t.focus==`function`&&t.focus(),t=0;t=document.documentMode,yr=null,br=null,xr=null,Sr=!1;function Cr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Sr||yr==null||yr!==Ot(r)||(r=yr,`selectionStart`in r&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),xr&&dr(xr,r)||(xr=r,r=ad(br,`onSelect`),0>=o,i-=o,ii=1<<32-Ae(t)+i|n<f?(p=d,d=null):p=d.sibling;var m=g(i,d,s[f],c);if(m===null){d===null&&(d=p);break}e&&d&&m.alternate===null&&t(i,d),a=o(m,a,f),u===null?l=m:u.sibling=m,u=m,d=p}if(f===s.length)return n(i,d),Y&&oi(i,f),l;if(d===null){for(;fp?(m=f,f=null):m=f.sibling;var y=g(a,f,_.value,l);if(y===null){f===null&&(f=m);break}e&&f&&y.alternate===null&&t(a,f),s=o(y,s,p),d===null?u=y:d.sibling=y,d=y,f=m}if(_.done)return n(a,f),Y&&oi(a,p),u;if(f===null){for(;!_.done;p++,_=c.next())_=h(a,_.value,l),_!==null&&(s=o(_,s,p),d===null?u=_:d.sibling=_,d=_);return Y&&oi(a,p),u}for(f=r(f);!_.done;p++,_=c.next())_=v(f,a,p,_.value,l),_!==null&&(e&&_.alternate!==null&&f.delete(_.key===null?p:_.key),s=o(_,s,p),d===null?u=_:d.sibling=_,d=_);return e&&f.forEach(function(e){return t(a,e)}),Y&&oi(a,p),u}function x(e,r,o,d){if(typeof o==`object`&&o&&o.type===l&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case s:a:{for(var f=o.key;r!==null;){if(r.key===f){if(f=o.type,f===l){if(r.tag===7){n(e,r.sibling),d=a(r,o.props.children),d.return=e,e=d;break a}}else if(r.elementType===f||typeof f==`object`&&f&&f.$$typeof===S&&Pi(f)===r.type){n(e,r.sibling),d=a(r,o.props),Mi(d,o),d.return=e,e=d;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===l?(d=sl(o.props.children,e.mode,d,o.key),d.return=e,e=d):(d=ol(o.type,o.key,o.props,null,e.mode,d),Mi(d,o),d.return=e,e=d)}return u(e);case c:a:{for(f=o.key;r!==null;){if(r.key===f)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),d=a(r,o.children||[]),d.return=e,e=d;break a}else{n(e,r);break}else t(e,r);r=r.sibling}d=ul(o,e.mode,d),d.return=e,e=d}return u(e);case S:return f=o._init,o=f(o._payload),x(e,r,o,d)}if(ae(o))return y(e,r,o,d);if(E(o)){if(f=E(o),typeof f!=`function`)throw Error(i(150));return o=f.call(o),b(e,r,o,d)}if(typeof o.then==`function`)return x(e,r,ji(o),d);if(o.$$typeof===_)return x(e,r,Gs(e,o),d);Ni(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),d=a(r,o),d.return=e,e=d):(n(e,r),d=ll(o,e.mode,d),d.return=e,e=d),u(e)):n(e,r)}return function(e,t,n,r){try{Ai=0;var i=x(e,t,n,r);return ki=null,i}catch(t){if(t===xi)throw t;var a=nl(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ii=Fi(!0),Li=Fi(!1),Ri=z(null),zi=z(0);function Bi(e,t){e=Ol,B(zi,e),B(Ri,t),Ol=e|t.baseLanes}function Vi(){B(zi,Ol),B(Ri,Ri.current)}function Hi(){Ol=zi.current,le(Ri),le(zi)}var Ui=z(null),Wi=null;function Gi(e){var t=e.alternate;B(Yi,Yi.current&1),B(Ui,e),Wi===null&&(t===null||Ri.current!==null||t.memoizedState!==null)&&(Wi=e)}function Ki(e){if(e.tag===22){if(B(Yi,Yi.current),B(Ui,e),Wi===null){var t=e.alternate;t!==null&&t.memoizedState!==null&&(Wi=e)}}else qi(e)}function qi(){B(Yi,Yi.current),B(Ui,Ui.current)}function Ji(e){le(Ui),Wi===e&&(Wi=null),le(Yi)}var Yi=z(0);function Xi(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data===`$?`||n.data===`$!`))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Zi=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},Qi=t.unstable_scheduleCallback,$i=t.unstable_NormalPriority,ea={$$typeof:_,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ta(){return{controller:new Zi,data:new Map,refCount:0}}function na(e){e.refCount--,e.refCount===0&&Qi($i,function(){e.controller.abort()})}var ra=null,ia=0,aa=0,oa=null;function sa(e,t){if(ra===null){var n=ra=[];ia=0,aa=Wu(),oa={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return ia++,t.then(ca,ca),t}function ca(){if(--ia===0&&ra!==null){oa!==null&&(oa.status=`fulfilled`);var e=ra;ra=null,aa=0,oa=null;for(var t=0;ta?a:8;var o=k.T,s={};k.T=s,Ro(e,!1,t,n);try{var c=i(),l=k.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Lo(e,t,la(c,r),Yl(e)):Lo(e,t,r,Yl(e))}catch(n){Lo(e,t,{then:function(){},status:`rejected`,reason:n},Yl())}finally{R.p=a,k.T=o}}function Do(){}function Oo(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=ko(e).queue;Eo(e,a,t,oe,n===null?Do:function(){return Ao(e),n(r)})}function ko(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:oe,baseState:oe,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ba,lastRenderedState:oe},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ba,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ao(e){var t=ko(e).next.queue;Lo(e,t,{},Yl())}function jo(){return Ws(Cf)}function Mo(){return Fa().memoizedState}function No(){return Fa().memoizedState}function Po(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Yl();e=Xs(n);var r=Zs(t,e,n);r!==null&&(Zl(r,t,n),Qs(r,t,n)),t={cache:ta()},e.payload=t;return}t=t.return}}function Fo(e,t,n){var r=Yl();n={lane:r,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null},zo(e)?Bo(t,n):(n=Wr(e,t,n,r),n!==null&&(Zl(n,e,r),Vo(n,t,r)))}function Io(e,t,n){Lo(e,t,n,Yl())}function Lo(e,t,n,r){var i={lane:r,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null};if(zo(e))Bo(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,ur(s,o))return Ur(e,t,i,0),Sl===null&&Hr(),!1}catch{}if(n=Wr(e,t,i,r),n!==null)return Zl(n,e,r),Vo(n,t,r),!0}return!1}function Ro(e,t,n,r){if(r={lane:2,revertLane:Wu(),action:r,hasEagerState:!1,eagerState:null,next:null},zo(e)){if(t)throw Error(i(479))}else t=Wr(e,n,r,2),t!==null&&Zl(t,e,2)}function zo(e){var t=e.alternate;return e===X||t!==null&&t===X}function Bo(e,t){ya=va=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Vo(e,t,n){if(n&4194176){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ke(e,n)}}var Ho={readContext:Ws,use:Ra,useCallback:Ta,useContext:Ta,useEffect:Ta,useImperativeHandle:Ta,useLayoutEffect:Ta,useInsertionEffect:Ta,useMemo:Ta,useReducer:Ta,useRef:Ta,useState:Ta,useDebugValue:Ta,useDeferredValue:Ta,useTransition:Ta,useSyncExternalStore:Ta,useId:Ta};Ho.useCacheRefresh=Ta,Ho.useMemoCache=Ta,Ho.useHostTransitionStatus=Ta,Ho.useFormState=Ta,Ho.useActionState=Ta,Ho.useOptimistic=Ta;var Uo={readContext:Ws,use:Ra,useCallback:function(e,t){return Pa().memoizedState=[e,t===void 0?null:t],e},useContext:Ws,useEffect:ho,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),po(4194308,4,yo.bind(null,t,e),n)},useLayoutEffect:function(e,t){return po(4194308,4,e,t)},useInsertionEffect:function(e,t){po(4,2,e,t)},useMemo:function(e,t){var n=Pa();t=t===void 0?null:t;var r=e();if(ba){ke(!0);try{e()}finally{ke(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Pa();if(n!==void 0){var i=n(t);if(ba){ke(!0);try{n(t)}finally{ke(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Fo.bind(null,X,e),[r.memoizedState,e]},useRef:function(e){var t=Pa();return e={current:e},t.memoizedState=e},useState:function(e){e=Xa(e);var t=e.queue,n=Io.bind(null,X,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:xo,useDeferredValue:function(e,t){return wo(Pa(),e,t)},useTransition:function(){var e=Xa(!1);return e=Eo.bind(null,X,e.queue,!0,!1),Pa().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=X,a=Pa();if(Y){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Sl===null)throw Error(i(349));Q&60||Ga(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ho(qa.bind(null,r,o,e),[e]),r.flags|=2048,uo(9,Ka.bind(null,r,o,n,t),{destroy:void 0},null),n},useId:function(){var e=Pa(),t=Sl.identifierPrefix;if(Y){var n=ai,r=ii;n=(r&~(1<<32-Ae(r)-1)).toString(32)+n,t=`:`+t+`R`+n,n=xa++,0 title`))),hd(o,r,n),o[Ze]=e,ut(o),r=o;break a;case`link`:var s=df(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<\/script>`,e=e.removeChild(e.firstChild);break;case`select`:e=typeof r.is==`string`?a.createElement(`select`,{is:r.is}):a.createElement(`select`),r.multiple?e.multiple=!0:r.size&&(e.size=r.size);break;default:e=typeof r.is==`string`?a.createElement(n,{is:r.is}):a.createElement(n)}}e[Ze]=t,e[Qe]=r;a:for(a=t.child;a!==null;){if(a.tag===5||a.tag===6)e.appendChild(a.stateNode);else if(a.tag!==4&&a.tag!==27&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===t)break a;for(;a.sibling===null;){if(a.return===null||a.return===t)break a;a=a.return}a.sibling.return=a.return,a=a.sibling}t.stateNode=e;a:switch(hd(e,n,r),n){case`button`:case`input`:case`select`:case`textarea`:e=!!r.autoFocus;break a;case`img`:e=!0;break a;default:e=!1}e&&dl(t)}}return hl(t),t.flags&=-16777217,null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&dl(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=H.current,vi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ui,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Ze]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||dd(e.nodeValue,n)),e||hi(t)}else e=yd(e).createTextNode(r),e[Ze]=t,t.stateNode=e}return hl(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=vi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[Ze]=t}else yi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;hl(t),a=!1}else fi!==null&&($l(fi),fi=null),a=!0;if(!a)return t.flags&256?(Ji(t),t):(Ji(t),null)}if(Ji(t),t.flags&128)return t.lanes=n,t;if(n=r!==null,e=e!==null&&e.memoizedState!==null,n){r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool);var o=null;r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)}return n!==e&&n&&(t.child.flags|=8192),pl(t,t.updateQueue),hl(t),null;case 4:return de(),e===null&&td(t.stateNode.containerInfo),hl(t),null;case 10:return Rs(t.type),hl(t),null;case 19:if(le(Yi),a=t.memoizedState,a===null)return hl(t),null;if(r=(t.flags&128)!=0,o=a.rendering,o===null)if(r)ml(a,!1);else{if(kl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Xi(e),o!==null){for(t.flags|=128,ml(a,!1),e=o.updateQueue,t.updateQueue=e,pl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)al(n,e),n=n.sibling;return B(Yi,Yi.current&1|2),t.child}e=e.sibling}a.tail!==null&&ve()>zl&&(t.flags|=128,r=!0,ml(a,!1),t.lanes=4194304)}else{if(!r)if(e=Xi(o),e!==null){if(t.flags|=128,r=!0,e=e.updateQueue,t.updateQueue=e,pl(t,e),ml(a,!0),a.tail===null&&a.tailMode===`hidden`&&!o.alternate&&!Y)return hl(t),null}else 2*ve()-a.renderingStartTime>zl&&n!==536870912&&(t.flags|=128,r=!0,ml(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(e=a.last,e===null?t.child=o:e.sibling=o,a.last=o)}return a.tail===null?(hl(t),null):(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=ve(),t.sibling=null,e=Yi.current,B(Yi,r?e&1|2:e&1),t);case 22:case 23:return Ji(t),Hi(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(hl(t),t.subtreeFlags&6&&(t.flags|=8192)):hl(t),n=t.updateQueue,n!==null&&pl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&le(da),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Rs(ea),hl(t),null;case 25:return null}throw Error(i(156,t.tag))}function _l(e,t){switch(li(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Rs(ea),de(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return fe(t),null;case 13:if(Ji(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));yi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return le(Yi),null;case 4:return de(),null;case 10:return Rs(t.type),null;case 22:case 23:return Ji(t),Hi(),e!==null&&le(da),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Rs(ea),null;case 25:return null;default:return null}}function vl(e,t){switch(li(t),t.tag){case 3:Rs(ea),de();break;case 26:case 27:case 5:fe(t);break;case 4:de();break;case 13:Ji(t);break;case 19:le(Yi);break;case 10:Rs(t.type);break;case 22:case 23:Ji(t),Hi(),e!==null&&le(da);break;case 24:Rs(ea)}}var yl={getCacheForType:function(e){var t=Ws(ea),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n}},bl=typeof WeakMap==`function`?WeakMap:Map,xl=0,Sl=null,Z=null,Q=0,Cl=0,wl=null,Tl=!1,El=!1,Dl=!1,Ol=0,kl=0,Al=0,jl=0,Ml=0,Nl=0,Pl=0,Fl=null,Il=null,Ll=!1,Rl=0,zl=1/0,Bl=null,Vl=null,Hl=!1,Ul=null,Wl=0,Gl=0,Kl=null,ql=0,Jl=null;function Yl(){if(xl&2&&Q!==0)return Q&-Q;if(k.T!==null){var e=aa;return e===0?Wu():e}return Je()}function Xl(){Nl===0&&(Nl=!(Q&536870912)||Y?Be():536870912);var e=Ui.current;return e!==null&&(e.flags|=32),Nl}function Zl(e,t,n){(e===Sl&&Cl===2||e.cancelPendingCommit!==null)&&(au(e,0),nu(e,Q,Nl,!1)),Ue(e,n),(!(xl&2)||e!==Sl)&&(e===Sl&&(!(xl&2)&&(jl|=n),kl===4&&nu(e,Q,Nl,!1)),Lu(e))}function Ql(e,t,n){if(xl&6)throw Error(i(327));var r=!n&&(t&60)==0&&(t&e.expiredLanes)===0||Re(e,t),a=r?fu(e,t):uu(e,t,!0),o=r;do{if(a===0){El&&!r&&nu(e,t,0,!1);break}else if(a===6)nu(e,t,0,!Tl);else{if(n=e.current.alternate,o&&!tu(n)){a=uu(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=Fl;var l=c.current.memoizedState.isDehydrated;if(l&&(au(c,s).flags|=256),s=uu(c,s,!1),s!==2){if(Dl&&!l){c.errorRecoveryDisabledLanes|=o,jl|=o,a=4;break a}o=Il,Il=a,o!==null&&$l(o)}a=s}if(o=!1,a!==2)continue}}if(a===1){au(e,0),nu(e,t,0,!0);break}a:{switch(r=e,a){case 0:case 1:throw Error(i(345));case 4:if((t&4194176)===t){nu(r,t,Nl,!Tl);break a}break;case 2:Il=null;break;case 3:case 5:break;default:throw Error(i(329))}if(r.finishedWork=n,r.finishedLanes=t,(t&62914560)===t&&(o=Rl+300-ve(),10n?32:n,k.T=null,Ul===null)var o=!1;else{n=Kl,Kl=null;var s=Ul,c=Wl;if(Ul=null,Wl=0,xl&6)throw Error(i(331));var l=xl;if(xl|=4,Qc(s.current),Wc(s,s.current,c,n),xl=l,Ru(0,!1),De&&typeof De.onPostCommitFiberRoot==`function`)try{De.onPostCommitFiberRoot(Ee,s)}catch{}o=!0}return o}finally{R.p=a,k.T=r,xu(e,t)}}return!1}function Cu(e,t,n){t=Xr(n,t),t=rs(e.stateNode,t,2),e=Zs(e,t,2),e!==null&&(Ue(e,2),Lu(e))}function wu(e,t,n){if(e.tag===3)Cu(e,e,n);else for(;t!==null;){if(t.tag===3){Cu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(Vl===null||!Vl.has(r))){e=Xr(n,e),n=is(2),r=Zs(t,n,2),r!==null&&(as(n,r,t,e),Ue(r,2),Lu(r));break}}t=t.return}}function Tu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new bl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Dl=!0,i.add(n),e=Eu.bind(null,e,t,n),t.then(e,e))}function Eu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Sl===e&&(Q&n)===n&&(kl===4||kl===3&&(Q&62914560)===Q&&300>ve()-Rl?!(xl&2)&&au(e,0):Ml|=n,Pl===Q&&(Pl=0)),Lu(e)}function Du(e,t){t===0&&(t=Ve()),e=Gr(e,t),e!==null&&(Ue(e,t),Lu(e))}function Ou(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Du(e,n)}function ku(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),Du(e,n)}function Au(e,t){return me(e,t)}var ju=null,Mu=null,Nu=!1,Pu=!1,Fu=!1,Iu=0;function Lu(e){e!==Mu&&e.next===null&&(Mu===null?ju=Mu=e:Mu=Mu.next=e),Pu=!0,Nu||(Nu=!0,Uu(zu))}function Ru(e,t){if(!Fu&&Pu){Fu=!0;do for(var n=!1,r=ju;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Ae(42|e)+1)-1,a&=i&~(o&~s),a=a&201326677?a&201326677|1:a?a|2:0}a!==0&&(n=!0,Hu(r,a))}else a=Q,a=Le(r,r===Sl?a:0),!(a&3)||Re(r,a)||(n=!0,Hu(r,a));r=r.next}while(n);Fu=!1}}function zu(){Pu=Nu=!1;var e=0;Iu!==0&&(wd()&&(e=Iu),Iu=0);for(var t=ve(),n=null,r=ju;r!==null;){var i=r.next,a=Bu(r,t);a===0?(r.next=null,n===null?ju=i:n.next=i,i===null&&(Mu=n)):(n=r,(e!==0||a&3)&&(Pu=!0)),r=i}Ru(e,!1)}function Bu(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0`u`?null:document;function Wd(e,t,n){var r=Ud;if(r&&typeof t==`string`&&t){var i=At(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),Rd.has(i)||(Rd.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),hd(t,`link`,e),ut(t),r.head.appendChild(t)))}}function Gd(e){Bd.D(e),Wd(`dns-prefetch`,e,null)}function Kd(e,t){Bd.C(e,t),Wd(`preconnect`,e,t)}function qd(e,t,n){Bd.L(e,t,n);var r=Ud;if(r&&e&&t){var i=`link[rel="preload"][as="`+At(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+At(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+At(n.imageSizes)+`"]`)):i+=`[href="`+At(e)+`"]`;var a=i;switch(t){case`style`:a=$d(e);break;case`script`:a=rf(e)}Ld.has(a)||(e=A({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),Ld.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(ef(a))||t===`script`&&r.querySelector(af(a))||(t=r.createElement(`link`),hd(t,`link`,e),ut(t),r.head.appendChild(t)))}}function Jd(e,t){Bd.m(e,t);var n=Ud;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+At(r)+`"][href="`+At(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=rf(e)}if(!Ld.has(a)&&(e=A({rel:`modulepreload`,href:e},t),Ld.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(af(a)))return}r=n.createElement(`link`),hd(r,`link`,e),ut(r),n.head.appendChild(r)}}}function Yd(e,t,n){Bd.S(e,t,n);var r=Ud;if(r&&e){var i=lt(r).hoistableStyles,a=$d(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(ef(a)))s.loading=5;else{e=A({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=Ld.get(a))&&cf(e,n);var c=o=r.createElement(`link`);ut(c),hd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,sf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Xd(e,t){Bd.X(e,t);var n=Ud;if(n&&e){var r=lt(n).hoistableScripts,i=rf(e),a=r.get(i);a||(a=n.querySelector(af(i)),a||(e=A({src:e,async:!0},t),(t=Ld.get(i))&&lf(e,t),a=n.createElement(`script`),ut(a),hd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Zd(e,t){Bd.M(e,t);var n=Ud;if(n&&e){var r=lt(n).hoistableScripts,i=rf(e),a=r.get(i);a||(a=n.querySelector(af(i)),a||(e=A({src:e,async:!0,type:`module`},t),(t=Ld.get(i))&&lf(e,t),a=n.createElement(`script`),ut(a),hd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Qd(e,t,n,r){var a=(a=H.current)?zd(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=$d(n.href),n=lt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=$d(n.href);var o=lt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(ef(e)))&&!o._p&&(s.instance=o,s.state.loading=5),Ld.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Ld.set(e,n),o||nf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=rf(n),n=lt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function $d(e){return`href="`+At(e)+`"`}function ef(e){return`link[rel="stylesheet"][`+e+`]`}function tf(e){return A({},e,{"data-precedence":e.precedence,precedence:null})}function nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),hd(t,`link`,n),ut(t),e.head.appendChild(t))}function rf(e){return`[src="`+At(e)+`"]`}function af(e){return`script[async]`+e}function of(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+At(n.href)+`"]`);if(r)return t.instance=r,ut(r),r;var a=A({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),ut(r),hd(r,`style`,a),sf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=$d(n.href);var o=e.querySelector(ef(a));if(o)return t.state.loading|=4,t.instance=o,ut(o),o;r=tf(n),(a=Ld.get(a))&&cf(r,a),o=(e.ownerDocument||e).createElement(`link`),ut(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),hd(o,`link`,r),t.state.loading|=4,sf(o,n.precedence,e),t.instance=o;case`script`:return o=rf(n.src),(a=e.querySelector(af(o)))?(t.instance=a,ut(a),a):(r=n,(a=Ld.get(o))&&(r=A({},n),lf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),ut(a),hd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,sf(r,n.precedence,e));return t.instance}function sf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function pf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function mf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}var hf=null;function gf(){}function _f(e,t,n){if(hf===null)throw Error(i(475));var r=hf;if(t.type===`stylesheet`&&(typeof n.media!=`string`||!1!==matchMedia(n.media).matches)&&!(t.state.loading&4)){if(t.instance===null){var a=$d(n.href),o=e.querySelector(ef(a));if(o){e=o._p,typeof e==`object`&&e&&typeof e.then==`function`&&(r.count++,r=yf.bind(r),e.then(r,r)),t.state.loading|=4,t.instance=o,ut(o);return}o=e.ownerDocument||e,n=tf(n),(a=Ld.get(a))&&cf(n,a),o=o.createElement(`link`),ut(o);var s=o;s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),hd(o,`link`,n),t.instance=o}r.stylesheets===null&&(r.stylesheets=new Map),r.stylesheets.set(t,e),(e=t.state.preload)&&!(t.state.loading&3)&&(r.count++,t=yf.bind(r),e.addEventListener(`load`,t),e.addEventListener(`error`,t))}}function vf(){if(hf===null)throw Error(i(475));var e=hf;return e.stylesheets&&e.count===0&&xf(e,e.stylesheets),0{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=g()})),v=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),y=o(((e,t)=>{t.exports=v()})),b=l(_(),1),x=l(d(),1),S=y(),C=h(),w=(0,x.createContext)({}),{Provider:T,Consumer:E}=w,D=()=>(0,x.useContext)(w)||{},O=(e,t)=>{let n=e=>{let n=D(),r=(0,x.useRef)(void 0),i=(0,x.useRef)(!1);return(0,x.useEffect)(()=>()=>{n.camera&&e.cancelFlightOnUnmount&&n.camera.cancelFlight()},[n.camera,e.cancelFlightOnUnmount]),(0,x.useEffect)(()=>{n.camera&&n.scene&&!n.scene.isDestroyed()&&(!e.once||!i.current)&&(n.camera.cancelFlight(),t(n.camera,e,r.current),i.current=!0),r.current=e}),null};return n.displayName=e,n};function k(e,t){return t?A(e).reduce((e,[n,r])=>(j(t,n)&&(e[n]=r),e),{}):{}}function A(e){return Object.keys(e).map(t=>[t,e[t]])}function j(e,t){return!!e&&e.indexOf(t)!==-1}function M(e,t){return!!e&&!!t&&[...Object.keys(e),...Object.keys(t)].every(n=>e[n]===t[n])}function N(e){return e&&typeof e.isDestroyed==`function`&&typeof e.destroy==`function`}function P(e){return N(e)&&e.isDestroyed()}function ee(e){return e&&typeof e==`object`&&`then`in e&&typeof e.then==`function`}var te=`__RESIUM_EVENT_MANAGER`,ne=[`onClick`,`onDoubleClick`,`onMouseDown`,`onMouseUp`,`onMiddleClick`,`onMiddleDown`,`onMiddleUp`,`onMouseMove`,`onPinchEnd`,`onPinchMove`,`onPinchStart`,`onRightClick`,`onRightDown`,`onRightUp`,`onWheel`,`onMouseEnter`,`onMouseLeave`],F=class e{static eventTypeMap={onClick:Cesium.ScreenSpaceEventType.LEFT_CLICK,onDoubleClick:Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK,onMouseDown:Cesium.ScreenSpaceEventType.LEFT_DOWN,onMouseUp:Cesium.ScreenSpaceEventType.LEFT_UP,onMiddleClick:Cesium.ScreenSpaceEventType.MIDDLE_CLICK,onMiddleDown:Cesium.ScreenSpaceEventType.MIDDLE_DOWN,onMiddleUp:Cesium.ScreenSpaceEventType.MIDDLE_UP,onMouseMove:Cesium.ScreenSpaceEventType.MOUSE_MOVE,onPinchEnd:Cesium.ScreenSpaceEventType.PINCH_END,onPinchMove:Cesium.ScreenSpaceEventType.PINCH_MOVE,onPinchStart:Cesium.ScreenSpaceEventType.PINCH_START,onRightClick:Cesium.ScreenSpaceEventType.RIGHT_CLICK,onRightDown:Cesium.ScreenSpaceEventType.RIGHT_DOWN,onRightUp:Cesium.ScreenSpaceEventType.RIGHT_UP,onWheel:Cesium.ScreenSpaceEventType.WHEEL,onMouseEnter:Cesium.ScreenSpaceEventType.MOUSE_MOVE,onMouseLeave:Cesium.ScreenSpaceEventType.MOUSE_MOVE};scene;sshe;events={onClick:new Map,onDoubleClick:new Map,onMouseDown:new Map,onMouseUp:new Map,onMiddleClick:new Map,onMiddleDown:new Map,onMiddleUp:new Map,onMouseMove:new Map,onPinchEnd:new Map,onPinchMove:new Map,onPinchStart:new Map,onRightClick:new Map,onRightDown:new Map,onRightUp:new Map,onWheel:new Map,onMouseEnter:new Map,onMouseLeave:new Map};hovered=void 0;constructor(e){this.scene=e,this.sshe=new Cesium.ScreenSpaceEventHandler(e?.canvas)}destroy(){this.hovered=void 0,this.sshe.isDestroyed()||this.sshe.destroy()}isDestroyed(){return this.sshe.isDestroyed()}on(e,t,n){e&&t===`onWheel`||this.events[t].set(e,n)}off(e,t){this.events[t].delete(e),this.hovered===e&&(this.hovered=void 0)}setEvents(e,t){A(t).forEach(([t,n])=>{let r=t;j(ne,r)&&(n?this.on(e,r,n):this.off(e,r))}),this.commit()}clearEvents(e){this.hovered=void 0,ne.forEach(t=>{this.off(e,t)}),this.commit()}commit(){let t=this.sshe,n=this.sshe.isDestroyed();n||(this.events.onMouseEnter.size===0&&this.events.onMouseLeave.size===0&&this.events.onMouseMove.size===0?this.sshe.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE):this.sshe.getInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE)||this.sshe.setInputAction(this.onMouseMove,Cesium.ScreenSpaceEventType.MOUSE_MOVE)),A(this.events).forEach(([r,i])=>{if(r===`onMouseEnter`||r===`onMouseLeave`||r===`onMouseMove`)return;let a=e.eventTypeMap[r];n||(i.size===0?t.removeInputAction(a):t.getInputAction(a)||t.setInputAction(this.eventCallback(r),a))})}getScreenSpaceEventHandler(){return this.sshe}getEventCallback(e,t){return t===null?this.events[e].get(null):this.events[e].get(t.id)||this.events[e].get(t.id?.entityCollection?.owner)||this.events[e].get(t.primitive)||this.events[e].get(t.tileset)}onMouseMove=e=>{let t=this.pick(e.endPosition);this.hovered!==t&&(this.hovered&&(this.getEventCallback(`onMouseLeave`,this.hovered)?.(e,this.hovered),this.getEventCallback(`onMouseLeave`,null)?.(e,this.hovered)),t&&(this.getEventCallback(`onMouseEnter`,t)?.(e,t),this.getEventCallback(`onMouseEnter`,null)?.(e,t))),t&&this.getEventCallback(`onMouseMove`,t)?.(e,t),this.getEventCallback(`onMouseMove`,null)?.(e,t),this.hovered=t};eventCallback=e=>t=>{let n=this.pick(t?.position);n&&this.getEventCallback(e,n)?.(t,n),this.getEventCallback(e,null)?.(t,n)};pick(e){if(e)return this.scene?.pick(e)}},re=({name:e,create:t,destroy:n,provide:r,update:i,cesiumReadonlyProps:a,cesiumEventProps:o,otherProps:s,setCesiumPropsAfterCreate:c,useCommonEvent:l,useRootEvent:u},d,f)=>{let p=(0,x.useRef)(void 0),m=D(),h=(0,x.useRef)(r?{}:void 0),g=(0,x.useRef)({}),_=(0,x.useRef)(ie(d)),v=(0,x.useRef)({}),[y,b]=(0,x.useState)(!1),S=(0,x.useRef)(!1),[,C]=(0,x.useReducer)(e=>e+1,0),w=(0,x.useRef)(null),T=(0,x.useRef)(void 0),E=m?.[te],O=(0,x.useRef)(void 0),k=(0,x.useRef)(void 0),A=(0,x.useCallback)(async e=>{if(!p.current)return;let t=p.current,n=Object.keys(e),r=Object.keys(o||[]),c=n.concat(Object.keys(v.current).filter(e=>!n.includes(e))).filter(t=>v.current[t]!==e[t]).map(t=>[t,v.current[t],e[t]]),d=[];for(let[e,n,i]of c)if(a?.includes(e))d.push(e);else if(j(r,e)){let r=o?.[e],a=t[r];a instanceof Cesium.Event&&(n===void 0?(a.addEventListener(i),g.current[r]=i):i===void 0?(a.removeEventListener(n),delete g.current[r]):(a.removeEventListener(n),a.addEventListener(i)))}else e!==`children`&&!ne.includes(e)&&!s?.includes(e)&&(t[e]=i);let f=u?h.current?.[te]:E;if(l&&f&&p.current&&f.setEvents(u?null:p.current,e),i&&S.current){let t=i(p.current,e,v.current,m);ee(t)&&await t}v.current=e,_.current=e,S.current&&d.length>0&&(F(),await re(),O.current=N())},[m]),N=(0,x.useCallback)(async()=>{await new Promise(e=>queueMicrotask(()=>e(void 0)));let e=t?.(m,_.current,w.current),n;if(n=ee(e)?await e:e,Array.isArray(n)?(p.current=n[0],T.current=n[1]):p.current=n,c)await A(_.current);else{if(p.current&&o){let e=p.current;for(let t of Object.keys(_.current)){let n=o[t];if(n){let r=_.current[t],i=e[n];r&&i instanceof Cesium.Event&&i.addEventListener(r)}}}v.current=_.current}r&&p.current&&(h.current={...m,...r(p.current,m,d,T.current)},C());let i=u?h.current?.[te]:E;l&&i&&p.current&&i.setEvents(u?null:p.current,_.current),k.current||b(!0)},[m]),F=(0,x.useCallback)(()=>{b(!1),S.current=!1},[]),re=(0,x.useCallback)(async()=>{await new Promise(e=>queueMicrotask(()=>e(void 0))),O.current&&=(await O.current,void 0),p.current&&n&&n(p.current,m,w.current,T.current);let e=u?h.current?.[te]:E;if(l&&e&&p.current&&e.clearEvents(u?null:p.current),p.current&&!P(p.current)){let e=Object.keys(g.current);for(let t of e)p.current[t]?.removeEventListener?.(g.current[t])}g.current={},v.current={},h.current=void 0,T.current=void 0,p.current=void 0},[m]);return(0,x.useLayoutEffect)(()=>((async()=>{k.current&&=(await k.current,void 0),O.current=N()})(),()=>{F(),k.current=re()}),[N,re,F]),(0,x.useEffect)(()=>{(async()=>{O.current&&await O.current;let e=ie(d);y?M(e,v.current)||(await A(e),m.__$internal?.onUpdate?.()):(v.current=e,_.current=e,S.current=!0)})()},[m.__$internal,y,d,A]),(0,x.useImperativeHandle)(f,()=>({cesiumElement:y?p.current:null}),[y]),[h.current,y,w]};function ie(e){let{children:t,...n}=e;return n}var I=()=>void 0,L=({renderContainer:e,noChildren:t,containerProps:n,defaultProps:r,useResource:i=I,...a})=>{let o=(o,s)=>{let c={...r,...o},l=i(c),u=l?{...c,...l}:c,[d,f,p]=re(a,u,s);if(t)return null;let m=f&&`children`in u?u.children:null,h=e?(0,S.jsx)(`div`,{"data-testid":`resium-container`,ref:p,...typeof n==`function`?n(u):k(u,n),children:m}):m?(0,S.jsx)(S.Fragment,{children:m}):null;return d?(0,S.jsx)(w.Provider,{value:d,children:h}):h};return o.displayName=a.name,(0,x.forwardRef)(o)},ae=[`enabled`,`selected`],R=e=>L({name:e.name,create(t,n){if(!t.scene)return;let r=e.create(n,t.scene.postProcessStages);return typeof n.enabled==`boolean`&&(r.enabled=n.enabled),n.selected&&`selected`in r&&(r.selected=n.selected),e.props.forEach(t=>{!j(e.readonlyProps,t)&&n[t]!==void 0&&(r.uniforms[t]=n[t])}),!e.noMount&&t.scene&&!t.scene.isDestroyed()&&t.scene.postProcessStages.add(r),r},destroy(t,n){e.noMount?t.enabled=!1:(n.scene&&!n.scene.isDestroyed()&&n.scene.postProcessStages.remove(t),t.isDestroyed()||t.destroy())},update(t,n,r){e.props.forEach(i=>{!j(e.readonlyProps,i)&&n[i]!==r[i]&&(t.uniforms[i]=n[i])})},cesiumProps:ae,cesiumReadonlyProps:e.readonlyProps,defaultProps:{enabled:!0}}),oe=new Map;function se(e,t){if(!e)return;let n=oe.get(e);if(!n){let r={status:`pending`,promise:Promise.resolve()};r.promise=t().then(e=>{r.status=`fulfilled`,r.value=e},e=>{r.status=`rejected`,r.error=e}),oe.set(e,r),n=r}if(n.status===`pending`)throw n.promise;if(n.status===`rejected`)throw n.error;return n.value}function ce(e){if(typeof e==`string`)return e;if(e instanceof Cesium.Resource)return e.url}function z(e,t,n,r){let i=n.suspense?ce(t):void 0;return se(i?`${e}:${n.cacheKey??i}`:void 0,()=>r(i))}L({name:`Billboard`,create(e,t){return e.billboardCollection?.add(t)},destroy(e,t){t.billboardCollection&&!t.billboardCollection.isDestroyed()&&t.billboardCollection.remove(e)},cesiumProps:[`alignedAxis`,`color`,`disableDepthTestDistance`,`distanceDisplayCondition`,`eyeOffset`,`height`,`heightReference`,`horizontalOrigin`,`image`,`pixelOffset`,`pixelOffsetScaleByDistance`,`position`,`rotation`,`scale`,`scaleByDistance`,`show`,`sizeInMeters`,`splitDirection`,`translucencyByDistance`,`verticalOrigin`,`width`,`id`],useCommonEvent:!0}),L({name:`BillboardCollection`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.BillboardCollection({modelMatrix:t.modelMatrix,debugShowBoundingVolume:t.debugShowBoundingVolume,scene:e.scene,blendOption:t.blendOption});return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},provide(e){return{billboardCollection:e}},cesiumProps:[`blendOption`,`coarseDepthTestDistance`,`debugShowBoundingVolume`,`debugShowTextureAtlas`,`modelMatrix`,`show`,`threePointDepthTestDistance`],setCesiumPropsAfterCreate:!0}),L({name:`BillboardGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.BillboardGraphics(t);return e.entity.billboard=n,n},destroy(e,t){t.entity&&(t.entity.billboard=void 0)},cesiumProps:[`image`,`show`,`scale`,`horizontalOrigin`,`verticalOrigin`,`eyeOffset`,`pixelOffset`,`rotation`,`alignedAxis`,`width`,`height`,`color`,`scaleByDistance`,`translucencyByDistance`,`pixelOffsetScaleByDistance`,`imageSubRegion`,`sizeInMeters`,`heightReference`,`distanceDisplayCondition`,`disableDepthTestDistance`,`splitDirection`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}}),L({name:`BoxGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.BoxGraphics(t);return e.entity.box=n,n},destroy(e,t){t.entity&&(t.entity.box=void 0)},cesiumProps:[`heightReference`,`dimensions`,`show`,`fill`,`material`,`outline`,`outlineColor`,`outlineWidth`,`shadows`,`distanceDisplayCondition`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}}),L({name:`BufferPoint`,create(e,t){if(!e.bufferPointCollection)return;let n=new Cesium.BufferPoint,r=e.bufferPointCollection.add({show:t.show,position:t.position,material:t.material},n);return t.featureId!==void 0&&(r.featureId=t.featureId),r},destroy(e){e.show=!1},update(e,t,n){t.position!==n.position&&t.position!==void 0&&e.setPosition(t.position),t.material!==n.material&&t.material!==void 0&&e.setMaterial(t.material)},cesiumProps:[`show`,`featureId`],otherProps:[`position`,`material`]}),L({name:`BufferPointCollection`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.BufferPointCollection({primitiveCountMax:t.primitiveCountMax,modelMatrix:t.modelMatrix,boundingVolume:t.boundingVolume,blendOption:t.blendOption});return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},provide(e){return{bufferPointCollection:e}},cesiumProps:[`show`,`debugShowBoundingVolume`],cesiumReadonlyProps:[`primitiveCountMax`,`modelMatrix`,`boundingVolume`,`blendOption`],setCesiumPropsAfterCreate:!0}),L({name:`BufferPolygon`,create(e,t){if(!e.bufferPolygonCollection)return;let n=new Cesium.BufferPolygon,r=e.bufferPolygonCollection.add({show:t.show,positions:t.positions,holes:t.holes,triangles:t.triangles,material:t.material},n);return t.featureId!==void 0&&(r.featureId=t.featureId),r},destroy(e){e.show=!1},update(e,t,n){t.positions!==n.positions&&t.positions!==void 0&&e.setPositions(t.positions),t.holes!==n.holes&&t.holes!==void 0&&e.setHoles(t.holes),t.triangles!==n.triangles&&t.triangles!==void 0&&e.setTriangles(t.triangles),t.material!==n.material&&t.material!==void 0&&e.setMaterial(t.material)},cesiumProps:[`show`,`featureId`],otherProps:[`positions`,`holes`,`triangles`,`material`]}),L({name:`BufferPolygonCollection`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.BufferPolygonCollection({primitiveCountMax:t.primitiveCountMax,vertexCountMax:t.vertexCountMax,holeCountMax:t.holeCountMax,triangleCountMax:t.triangleCountMax,positionDatatype:t.positionDatatype,allowPicking:t.allowPicking,modelMatrix:t.modelMatrix,boundingVolume:t.boundingVolume,blendOption:t.blendOption});return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},provide(e){return{bufferPolygonCollection:e}},cesiumProps:[`show`,`debugShowBoundingVolume`],cesiumReadonlyProps:[`primitiveCountMax`,`vertexCountMax`,`holeCountMax`,`triangleCountMax`,`positionDatatype`,`allowPicking`,`modelMatrix`,`boundingVolume`,`blendOption`],setCesiumPropsAfterCreate:!0}),L({name:`BufferPolyline`,create(e,t){if(!e.bufferPolylineCollection)return;let n=new Cesium.BufferPolyline,r=e.bufferPolylineCollection.add({show:t.show,positions:t.positions,material:t.material},n);return t.featureId!==void 0&&(r.featureId=t.featureId),r},destroy(e){e.show=!1},update(e,t,n){t.positions!==n.positions&&t.positions!==void 0&&e.setPositions(t.positions),t.material!==n.material&&t.material!==void 0&&e.setMaterial(t.material)},cesiumProps:[`show`,`featureId`],otherProps:[`positions`,`material`]}),L({name:`BufferPolylineCollection`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.BufferPolylineCollection({primitiveCountMax:t.primitiveCountMax,vertexCountMax:t.vertexCountMax,modelMatrix:t.modelMatrix,boundingVolume:t.boundingVolume,blendOption:t.blendOption});return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},provide(e){return{bufferPolylineCollection:e}},cesiumProps:[`show`,`debugShowBoundingVolume`],cesiumReadonlyProps:[`primitiveCountMax`,`vertexCountMax`,`modelMatrix`,`boundingVolume`,`blendOption`],setCesiumPropsAfterCreate:!0}),L({name:`Camera`,create:e=>e.scene?.camera,cesiumProps:[`position`,`direction`,`up`,`right`,`frustum`,`defaultMoveAmount`,`defaultLookAmount`,`defaultRotateAmount`,`defaultZoomAmount`,`constrainedAxis`,`maximumZoomFactor`,`percentageChanged`],cesiumEventProps:{onChange:`changed`,onMoveEnd:`moveEnd`,onMoveStart:`moveStart`},setCesiumPropsAfterCreate:!0}),O(`CameraFlyHome`,(e,{duration:t})=>{e.flyHome(t)}),O(`CameraFlyTo`,(e,{onComplete:t,onCancel:n,...r})=>{e.flyTo({...r,complete:t,cancel:n})}),O(`CameraLookAt`,(e,{target:t,offset:n})=>{e.lookAt(t,n)}),O(`CameraFlyToBoundingSphere`,(e,{boundingSphere:t,onComplete:n,onCancel:r,...i})=>{e.flyToBoundingSphere(t,{...i,complete:n,cancel:r})});var le=`show.modelMatrix.shadows.maximumScreenSpaceError.cullRequestsWhileMoving.cullRequestsWhileMovingMultiplier.preloadWhenHidden.preloadFlightDestinations.preferLeaves.progressiveResolutionHeightFraction.foveatedScreenSpaceError.foveatedConeSize.foveatedMinimumScreenSpaceErrorRelaxation.foveatedInterpolationCallback.foveatedTimeDelay.dynamicScreenSpaceError.dynamicScreenSpaceErrorDensity.dynamicScreenSpaceErrorFactor.dynamicScreenSpaceErrorHeightFalloff.edgeDisplayMode.skipLevelOfDetail.baseScreenSpaceError.skipScreenSpaceErrorFactor.skipLevels.immediatelyLoadDesiredLevelOfDetail.loadSiblings.clippingPlanes.clippingPolygons.lightColor.colorBlendAmount.colorBlendMode.debugFreezeFrame.debugColorizeTiles.debugWireframe.debugShowBoundingVolume.debugShowContentBoundingVolume.debugShowViewerRequestVolume.debugShowGeometricError.debugShowRenderingStatistics.debugShowMemoryUsage.debugShowUrl.style.backFaceCulling.showOutline.vectorClassificationOnly.vectorKeepDecodedPositions.splitDirection.customShader.imageBasedLighting.showCreditsOnScreen.featureIdLabel.instanceFeatureIdLabel.outlineColor.cacheBytes.maximumCacheOverflowBytes.enableCollision`.split(`.`),B=[`asynchronouslyLoadImagery`,`classificationType`,`cullWithChildrenBounds`,`debugHeatmapTilePropertyName`,`ellipsoid`,`enableDebugWireframe`,`heightReference`,`modelUpAxis`,`modelForwardAxis`,`projectTo2D`,`enableShowOutline`,`enablePick`,`environmentMapOptions`,`scene`],V={onAllTilesLoad:`allTilesLoaded`,onInitialTilesLoad:`initialTilesLoaded`,onLoadProgress:`loadProgress`,onTileFailed:`tileFailed`,onTileLoad:`tileLoad`,onTileUnload:`tileUnload`,onTileVisible:`tileVisible`},ue=[`onReady`,`onError`],H=[...B,`url`],U=e=>{let t=e;t._clippingPlanes=void 0,t._clippingPolygons=void 0};L({name:`Cesium3DTileset`,async create(e,t){if(!e.primitiveCollection)return;let n=t.url,r;r=ee(n)?await n:n;let i;try{i=await Cesium.Cesium3DTileset.fromUrl(r,t),t.onReady?.(i)}catch(e){t.onError?.(e);return}return t.colorBlendAmount&&(i.colorBlendAmount=t.colorBlendAmount),t.colorBlendMode&&(i.colorBlendMode=t.colorBlendMode),t.style&&(i.style=t.style),e.primitiveCollection.add(i),i},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||(U(e),e.destroy())},cesiumProps:le,cesiumReadonlyProps:H,cesiumEventProps:V,otherProps:ue,useCommonEvent:!0}),L({name:`Cesium3DTilesetGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.Cesium3DTilesetGraphics(t);return e.entity.tileset=n,n},destroy(e,t){t.entity&&(t.entity.tileset=void 0)},cesiumProps:[`show`,`uri`,`maximumScreenSpaceError`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}}),L({name:`Cesium3DTilesTerrainProvider`,async create(e,t){let{onReady:n,assetId:r,accessToken:i,url:a,children:o,...s}=t,c;if(r!==void 0)c=await Cesium.Cesium3DTilesTerrainProvider.fromIonAssetId(r,s);else if(a!==void 0)c=await Cesium.Cesium3DTilesTerrainProvider.fromUrl(a,s);else throw Error(`Cesium3DTilesTerrainProvider requires either 'url' or 'assetId' prop to be provided`);return n&&n(c),c}}),L({name:`CesiumWidget`,create(e,t,n){if(!n)return;let r=new Cesium.CesiumWidget(n,t);if(r)return typeof t.resolutionScale==`number`&&(r.resolutionScale=t.resolutionScale),[r,new F(r.scene)]},destroy(e,t,n,r){r&&!r.isDestroyed()&&r.destroy(),e.isDestroyed()||e.destroy()},provide(e,t,n,r){return{cesiumWidget:e,scene:e.scene,camera:e.scene.camera,imageryLayerCollection:e.scene.globe.imageryLayers,primitiveCollection:e.scene.primitives,globe:e.scene.globe,__$internal:{onUpdate:n?.onUpdate},[te]:r}},containerProps:({id:e,className:t,style:n,full:r,containerProps:i})=>({className:t,id:e,style:{...r?{position:`absolute`,bottom:`0`,left:`0`,right:`0`,top:`0`}:{},...n},...i}),cesiumProps:[`resolutionScale`,`useDefaultRenderLoop`,`targetFrameRate`,`useBrowserRecommendedResolution`,`allowDataSourcesToSuspendAnimation`,`trackedEntity`,`clockTrackedDataSource`,`terrainProvider`,`creditDisplay`],cesiumReadonlyProps:[`clock`,`shouldAnimate`,`ellipsoid`,`baseLayer`,`skyBox`,`skyAtmosphere`,`sceneMode`,`scene3DOnly`,`orderIndependentTranslucency`,`mapMode2D`,`mapProjection`,`globe`,`showRenderLoopErrors`,`automaticallyTrackDataSourceClocks`,`contextOptions`,`creditContainer`,`creditViewport`,`dataSources`,`shadows`,`terrainShadows`,`terrain`,`requestRenderMode`,`maximumRenderTimeChange`,`msaaSamples`,`blurActiveElementOnCanvasFocus`],otherProps:[`className`,`id`,`style`,`full`,`containerProps`],renderContainer:!0,useCommonEvent:!0,useRootEvent:!0}),L({name:`ClassificationPrimitive`,async create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.ClassificationPrimitive(t);if(t.onReady){let r=()=>{n.ready&&(t.onReady?.(n),e.scene?.postRender.removeEventListener(r))};e.scene?.postRender.addEventListener(r)}return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},cesiumProps:[`classificationType`,`debugShowBoundingVolume`,`debugShowShadowVolume`,`show`],cesiumReadonlyProps:[`allowPicking`,`asynchronous`,`compressVertices`,`geometryInstances`,`interleave`,`releaseGeometryInstances`,`vertexCacheOptimize`,`appearance`],otherProps:[`onReady`],useCommonEvent:!0});var W=L({name:`Clock`,create:e=>e.cesiumWidget?.clock,cesiumProps:[`canAnimate`,`clockRange`,`clockStep`,`currentTime`,`multiplier`,`shouldAnimate`,`startTime`,`stopTime`],cesiumEventProps:{onStop:`onStop`,onTick:`onTick`},setCesiumPropsAfterCreate:!0});L({name:`CloudCollection`,create:e=>{if(!e.primitiveCollection)return;let t=new Cesium.CloudCollection;return e.primitiveCollection.add(t),t},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},provide:e=>({cloudCollection:e}),cesiumProps:[`noiseDetail`,`noiseOffset`,`show`,`debugBillboards`,`debugEllipsoids`],setCesiumPropsAfterCreate:!0}),L({name:`CorridorGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.CorridorGraphics(t);return t.classificationType&&(n.classificationType=t.classificationType),e.entity.corridor=n,n},destroy(e,t){t.entity&&(t.entity.corridor=void 0)},cesiumProps:[`positions`,`width`,`cornerType`,`height`,`heightReference`,`extrudedHeight`,`extrudedHeightReference`,`show`,`fill`,`material`,`outline`,`outlineColor`,`outlineWidth`,`granularity`,`shadows`,`distanceDisplayCondition`,`zIndex`,`classificationType`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}}),L({name:`CubeMapPanorama`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.CubeMapPanorama({sources:t.sources,show:t.show,transform:t.transform,credit:t.credit});return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},setCesiumPropsAfterCreate:!0,cesiumProps:[`show`,`sources`],cesiumReadonlyProps:[`transform`,`credit`]}),L({name:`CumulusCloud`,create:(e,t)=>e.cloudCollection?.add(t),destroy(e,t){t.cloudCollection&&!t.cloudCollection.isDestroyed()&&t.cloudCollection.remove(e)},cesiumProps:[`show`,`position`,`scale`,`maximumSize`,`slice`,`brightness`,`color`]}),L({name:`CustomDataSource`,create(e,t){if(!e.dataSourceCollection)return;let n=new Cesium.CustomDataSource(t.name);return t.clustering&&(n.clustering=t.clustering),typeof t.show==`boolean`&&(n.show=t.show),t.clock!==void 0&&(n.clock=t.clock),e.dataSourceCollection.add(n),n},destroy(e,t){t.dataSourceCollection&&!t.dataSourceCollection.isDestroyed()&&t.dataSourceCollection.remove(e)},provide(e){return{entityCollection:e.entities,dataSource:e}},cesiumProps:[`clustering`,`name`,`show`,`clock`,`isLoading`],cesiumEventProps:{onChange:`changedEvent`,onError:`errorEvent`,onLoading:`loadingEvent`},useCommonEvent:!0}),L({name:`CylinderGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.CylinderGraphics(t);return e.entity.cylinder=n,n},destroy(e,t){t.entity&&(t.entity.cylinder=void 0)},cesiumProps:[`heightReference`,`length`,`topRadius`,`bottomRadius`,`show`,`fill`,`material`,`outline`,`outlineColor`,`outlineWidth`,`numberOfVerticalLines`,`slices`,`distanceDisplayCondition`,`shadows`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}});var de=[`clustering`,`show`],G=[`name`,`sourceUri`,`credit`],fe={onChange:`changedEvent`,onError:`errorEvent`,onLoading:`loadingEvent`},pe=[`onLoad`,`data`,`suspense`,`cacheKey`],me=e=>{let t=z(`czml`,e.data,e,e=>Cesium.Resource.fetchJson({url:e}));return t?{data:t}:void 0},he=(e,{data:t,onLoad:n,...r})=>{t&&e.load(t,r).then(e=>{n&&n(e)})};L({name:`CzmlDataSource`,create(e,t){if(!e.dataSourceCollection)return;let n=new Cesium.CzmlDataSource(t.name);return t.clustering&&(n.clustering=t.clustering),typeof t.show==`boolean`&&(n.show=t.show),e.dataSourceCollection.add(n),t.data&&he(n,t),n},update(e,t,n){t.data?n.show!==t.show&&(e.show=typeof t.show!=`boolean`||t.show):e.show=!1,t.data&&(n.data!==t.data||n.sourceUri!==t.sourceUri||n.credit!==t.credit)&&he(e,t)},destroy(e,t){t.dataSourceCollection&&!t.dataSourceCollection.isDestroyed()&&t.dataSourceCollection.remove(e)},provide(e){return{dataSource:e}},useResource:me,cesiumProps:de,cesiumReadonlyProps:G,cesiumEventProps:fe,otherProps:pe,useCommonEvent:!0}),L({name:`EllipseGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.EllipseGraphics(t);return e.entity.ellipse=n,n},destroy(e,t){t.entity&&(t.entity.ellipse=void 0)},cesiumProps:[`semiMajorAxis`,`semiMinorAxis`,`height`,`heightReference`,`extrudedHeight`,`show`,`fill`,`material`,`outline`,`outlineColor`,`outlineWidth`,`numberOfVerticalLines`,`rotation`,`stRotation`,`granularity`,`shadows`,`distanceDisplayCondition`,`zIndex`,`classificationType`,`extrudedHeightReference`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}}),L({name:`EllipsoidGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.EllipsoidGraphics(t);return e.entity.ellipsoid=n,n},destroy(e,t){t.entity&&(t.entity.ellipsoid=void 0)},cesiumProps:[`heightReference`,`radii`,`show`,`fill`,`innerRadii`,`material`,`maximumClock`,`maximumCone`,`minimumClock`,`minimumCone`,`outline`,`outlineColor`,`outlineWidth`,`subdivisions`,`stackPartitions`,`slicePartitions`,`shadows`,`distanceDisplayCondition`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}});var ge=L({name:`Entity`,create(e,t){if(!e.entityCollection)return;let n=new Cesium.Entity(t);return e.viewer&&t.selected&&(e.viewer.selectedEntity=n),e.viewer&&t.tracked&&(e.viewer.trackedEntity=n),e.entityCollection.add(n),n},destroy(e,t){t.entityCollection&&t.entityCollection.remove(e)},update(e,t,n,r){r.viewer&&(t.selected!==n.selected&&(t.selected?r.viewer.selectedEntity=e:r.viewer.selectedEntity===e&&(r.viewer.selectedEntity=void 0)),t.tracked!==n.tracked&&(t.tracked?r.viewer.trackedEntity=e:r.viewer.trackedEntity===e&&(r.viewer.trackedEntity=void 0)))},provide(e,t,n){return{entity:e,__$internal:{onUpdate:n?.onUpdate}}},cesiumProps:`availability.billboard.box.corridor.cylinder.description.ellipse.ellipsoid.entityCollection.label.model.name.orientation.path.plane.parent.point.polygon.polyline.polylineVolume.position.properties.rectangle.show.tileset.trackingReferenceFrame.viewFrom.wall`.split(`.`),cesiumReadonlyProps:[`id`],cesiumEventProps:{onDefinitionChange:`definitionChanged`},otherProps:[`selected`,`tracked`],useCommonEvent:!0});L({name:`EquirectangularPanorama`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.EquirectangularPanorama({transform:t.transform,image:t.image,radius:t.radius,repeatHorizontal:t.repeatHorizontal,repeatVertical:t.repeatVertical,credit:t.credit});return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},setCesiumPropsAfterCreate:!0,cesiumProps:[`show`],cesiumReadonlyProps:[`transform`,`image`,`radius`,`repeatHorizontal`,`repeatVertical`,`credit`]});var _e=({children:e,container:t,resizeInfoBox:n=!0})=>{let{viewer:r,entity:i}=D(),[a,o]=(0,x.useState)(!1),s=(0,x.useMemo)(()=>t??r?.infoBox.frame.contentDocument?.createElement(`div`),[t,r?.infoBox.frame.contentDocument]);return(0,x.useEffect)(()=>{if(!r||!i)return;let e=e=>{o(!!e&&e.id===i.id)};return r.selectedEntityChanged.addEventListener(e),()=>{r.selectedEntityChanged.removeEventListener(e)}},[i,r]),(0,x.useEffect)(()=>{if(t||!s||!r)return;let e=r.infoBox?.frame,i=e?.contentDocument?.querySelector(`.cesium-infoBox-description`);if(!e||!i)return;let o;if(a){if(n){let t=i.getBoundingClientRect().height;e.style.height=t+`px`,o=window.setInterval(()=>{let t=r.infoBox.container.querySelector(`.cesium-infoBox.cesium-infoBox-visible`);t&&(clearInterval(o),o=void 0,i.appendChild(s),t.classList.remove(`cesium-infoBox-bodyless`),e.style.height=i.getBoundingClientRect().height+`px`)},10)}}else s.parentElement===i&&i.removeChild(s);return o?()=>clearTimeout(o):void 0},[s,t,n,a,r]),s?(0,S.jsx)(S.Fragment,{children:(0,C.createPortal)((0,S.jsx)(S.Fragment,{children:!t||a?e:null}),s)}):null};L({name:`Fog`,create(e){if(!e.scene)return;let t=new Cesium.Fog;return e.scene.fog=t,t},destroy(e,t){t.scene&&!t.scene.isDestroyed()&&(t.scene.fog=new Cesium.Fog)},cesiumProps:[`density`,`enabled`,`heightFalloff`,`heightScalar`,`maxHeight`,`minimumBrightness`,`renderable`,`screenSpaceErrorFactor`,`visualDensityScalar`],setCesiumPropsAfterCreate:!0});var ve=[`clustering`,`name`,`show`],ye=[`clampToGround`,`sourceUri`,`credit`,`markerSize`,`markerSymbol`,`markerColor`,`stroke`,`strokeWidth`,`fill`,`describe`],be={onChange:`changedEvent`,onError:`errorEvent`,onLoading:`loadingEvent`},xe=[`onLoad`,`data`,`suspense`,`cacheKey`],K=e=>{let t=z(`geojson`,e.data,e,e=>Cesium.Resource.fetchJson({url:e}));return t?{data:t}:void 0},Se=(e,{data:t,onLoad:n,...r})=>{t&&e.load(t,r).then(e=>{n&&n(e)})};L({name:`GeoJsonDataSource`,create(e,t){if(!e.dataSourceCollection)return;let n=new Cesium.GeoJsonDataSource(t.name);return t.clustering&&(n.clustering=t.clustering),typeof t.show==`boolean`&&(n.show=t.show),e.dataSourceCollection.add(n),t.data&&Se(n,t),n},update(e,t,n){t.data?n.show!==t.show&&(e.show=typeof t.show!=`boolean`||t.show):e.show=!1,t.data&&(n.data!==t.data||n.clampToGround!==t.clampToGround||n.sourceUri!==t.sourceUri||n.credit!==t.credit||n.markerSize!==t.markerSize||n.markerSymbol!==t.markerSymbol||n.markerColor!==t.markerColor||n.stroke!==t.stroke||n.strokeWidth!==t.strokeWidth||n.fill!==t.fill)&&Se(e,t)},destroy(e,t){t.dataSourceCollection&&!t.dataSourceCollection.isDestroyed()&&t.dataSourceCollection.remove(e)},provide(e){return{dataSource:e}},useResource:K,cesiumProps:ve,cesiumReadonlyProps:ye,cesiumEventProps:be,otherProps:xe,useCommonEvent:!0}),L({name:`GeoJsonPrimitive`,async create(e,t){if(!e.primitiveCollection)return;let{url:n,data:r,ellipsoid:i,allowPicking:a,pickObjectFactory:o,show:s,onReady:c,onError:l}=t,u;try{if(n)u=await Cesium.GeoJsonPrimitive.fromUrl(n,{ellipsoid:i,allowPicking:a,pickObjectFactory:o,show:s});else if(r)u=new Cesium.GeoJsonPrimitive({geoJson:r,ellipsoid:i,allowPicking:a,pickObjectFactory:o,show:s});else return;c?.(u)}catch(e){l?.(e);return}return e.primitiveCollection.add(u),u},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e)},useResource:e=>{let t=z(`geojson-primitive`,e.url??e.data,e,e=>Cesium.Resource.fetchJson({url:e}));return t?{data:t,url:void 0}:void 0},cesiumProps:[`show`],cesiumReadonlyProps:[`ellipsoid`,`allowPicking`,`pickObjectFactory`,`url`,`data`],otherProps:[`url`,`data`,`onReady`,`onError`,`suspense`,`cacheKey`],useCommonEvent:!0});var Ce=L({name:`Globe`,create:e=>e.scene?.globe,update:async(e,t,n)=>{if(t.terrainProvider===n.terrainProvider)return;let r=t.terrainProvider,i;i=ee(r)?await r:r,e.terrainProvider=i},cesiumProps:`atmosphereBrightnessShift.atmosphereHueShift.atmosphereSaturationShift.backFaceCulling.baseColor.clippingPlanes.depthTestAgainstTerrain.enableLighting.lightingFadeInDistance.lightingFadeOutDistance.material.maximumScreenSpaceError.nightFadeInDistance.nightFadeOutDistance.oceanNormalMapUrl.shadows.show.showGroundAtmosphere.showWaterEffect.tileCacheSize.loadingDescendantLimit.preloadAncestors.preloadSiblings.fillHighlightColor.dynamicAtmosphereLighting.dynamicAtmosphereLightingFromSun.showSkirts.cartographicLimitRectangle.translucency.undergroundColor.undergroundColorAlphaByDistance.lambertDiffuseMultiplier.atmosphereLightIntensity.atmosphereRayleighCoefficient.atmosphereMieCoefficient.atmosphereRayleighScaleHeight.atmosphereMieScaleHeight.atmosphereMieAnisotropy.vertexShadowDarkness.clippingPolygons`.split(`.`),cesiumEventProps:{onImageryLayersUpdate:`imageryLayersUpdatedEvent`,onTerrainProviderChange:`terrainProviderChanged`,onTileLoadProgress:`tileLoadProgressEvent`},otherProps:[`terrainProvider`],setCesiumPropsAfterCreate:!0});L({name:`Google2DImageryProvider`,async create(e,t){let{onReady:n,assetId:r,accessToken:i,key:a,children:o,...s}=t,c;if(r!==void 0){let e={...s,assetId:r};i!==void 0&&(e.accessToken=i),c=await Cesium.Google2DImageryProvider.fromIonAssetId(e)}else{let e={...s};a!==void 0&&(e.key=a),c=await Cesium.Google2DImageryProvider.fromUrl(e)}return n&&n(c),c}}),L({name:`GooglePhotorealistic3DTileset`,async create(e,t){if(!e.primitiveCollection)return;let{apiKey:n,onlyUsingWithGoogleGeocoder:r}=t,i={};n!==void 0&&(i.key=n),r!==void 0&&(i.onlyUsingWithGoogleGeocoder=r);let a;try{a=await Cesium.createGooglePhotorealistic3DTileset(i,t),t.onReady?.(a)}catch(e){t.onError?.(e);return}return t.colorBlendAmount&&(a.colorBlendAmount=t.colorBlendAmount),t.colorBlendMode&&(a.colorBlendMode=t.colorBlendMode),t.style&&(a.style=t.style),e.primitiveCollection.add(a),a},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},cesiumProps:`show.modelMatrix.shadows.maximumScreenSpaceError.cullRequestsWhileMoving.cullRequestsWhileMovingMultiplier.preloadWhenHidden.preloadFlightDestinations.preferLeaves.progressiveResolutionHeightFraction.foveatedScreenSpaceError.foveatedConeSize.foveatedMinimumScreenSpaceErrorRelaxation.foveatedInterpolationCallback.foveatedTimeDelay.dynamicScreenSpaceError.dynamicScreenSpaceErrorDensity.dynamicScreenSpaceErrorFactor.dynamicScreenSpaceErrorHeightFalloff.edgeDisplayMode.skipLevelOfDetail.baseScreenSpaceError.skipScreenSpaceErrorFactor.skipLevels.immediatelyLoadDesiredLevelOfDetail.loadSiblings.clippingPlanes.clippingPolygons.lightColor.colorBlendAmount.colorBlendMode.debugFreezeFrame.debugColorizeTiles.debugWireframe.debugShowBoundingVolume.debugShowContentBoundingVolume.debugShowViewerRequestVolume.debugShowGeometricError.debugShowRenderingStatistics.debugShowMemoryUsage.debugShowUrl.style.backFaceCulling.showOutline.vectorClassificationOnly.vectorKeepDecodedPositions.splitDirection.customShader.imageBasedLighting.showCreditsOnScreen.featureIdLabel.instanceFeatureIdLabel.outlineColor.cacheBytes.maximumCacheOverflowBytes.enableCollision`.split(`.`),cesiumReadonlyProps:[`asynchronouslyLoadImagery`,`classificationType`,`cullWithChildrenBounds`,`debugHeatmapTilePropertyName`,`ellipsoid`,`enableDebugWireframe`,`heightReference`,`modelUpAxis`,`modelForwardAxis`,`projectTo2D`,`enableShowOutline`,`enablePick`,`environmentMapOptions`,`scene`],cesiumEventProps:{onAllTilesLoad:`allTilesLoaded`,onInitialTilesLoad:`initialTilesLoaded`,onLoadProgress:`loadProgress`,onTileFailed:`tileFailed`,onTileLoad:`tileLoad`,onTileUnload:`tileUnload`,onTileVisible:`tileVisible`},otherProps:[`onReady`,`onError`,`apiKey`,`onlyUsingWithGoogleGeocoder`],useCommonEvent:!0}),L({name:`GroundPolylinePrimitive`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.GroundPolylinePrimitive(t);if(t.onReady){let r=()=>{n.ready&&(t.onReady?.(n),e.scene?.postRender.removeEventListener(r))};e.scene?.postRender.addEventListener(r)}return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},cesiumProps:[`appearance`,`classificationType`,`debugShowBoundingVolume`,`debugShowShadowVolume`,`show`],cesiumReadonlyProps:[`allowPicking`,`asynchronous`,`geometryInstances`,`interleave`,`releaseGeometryInstances`],otherProps:[`onReady`],useCommonEvent:!0}),L({name:`GroundPrimitive`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.GroundPrimitive(t);if(t.onReady){let r=()=>{n.ready&&(t.onReady?.(n),e.scene?.postRender.removeEventListener(r))};e.scene?.postRender.addEventListener(r)}return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},cesiumProps:[`appearance`,`classificationType`,`debugShowBoundingVolume`,`debugShowShadowVolume`,`show`],cesiumReadonlyProps:[`allowPicking`,`asynchronous`,`compressVertices`,`geometryInstances`,`interleave`,`releaseGeometryInstances`,`vertexCacheOptimize`],otherProps:[`onReady`],useCommonEvent:!0}),L({name:`GroundPrimitiveCollection`,create:e=>e.scene?.groundPrimitives,provide:e=>({primitiveCollection:e}),cesiumProps:[`show`,`destroyPrimitives`,`primitiveAdded`,`primitiveRemoved`],setCesiumPropsAfterCreate:!0}),L({name:`ImageryLayer`,async create(e,t){if(!e.imageryLayerCollection)return;let n=ee(t.imageryProvider)?t.imageryProvider:new Promise(e=>queueMicrotask(()=>e(t.imageryProvider))),r=e.__$internal?.imageryLayerWaitingList?.slice();e.__$internal?.imageryLayerWaitingList&&e.__$internal.imageryLayerWaitingList.push(n),r&&await Promise.all(r.filter(e=>ee(e)));let i=await n;if(e.__$internal?.imageryLayerWaitingList&&(e.__$internal.imageryLayerWaitingList=e.__$internal.imageryLayerWaitingList.filter(e=>e!==n)),!i)return;let a=new Cesium.ImageryLayer(i,t);return e.imageryLayerCollection.add(a,t.index),a},destroy(e,t){t.imageryLayerCollection&&t.imageryLayerCollection.remove(e)},cesiumProps:[`alpha`,`brightness`,`contrast`,`hue`,`saturation`,`gamma`,`splitDirection`,`minificationFilter`,`magnificationFilter`,`cutoutRectangle`,`show`,`nightAlpha`,`dayAlpha`,`colorToAlpha`,`colorToAlphaThreshold`,`index`],cesiumReadonlyProps:[`rectangle`,`maximumAnisotropy`,`minimumTerrainLevel`,`maximumTerrainLevel`,`imageryProvider`]}),L({name:`ImageryLayerCollection`,create:e=>e.globe?.imageryLayers,cesiumEventProps:{onLayerAdd:`layerAdded`,onLayerMove:`layerMoved`,onLayerRemove:`layerRemoved`,onLayerShowOrHide:`layerShownOrHidden`}});var we=[`clustering`,`name`,`show`],Te=[`canvas`,`camera`,`ellipsoid`,`clampToGround`,`sourceUri`,`credit`,`screenOverlayContainer`],Ee={onChange:`changedEvent`,onError:`errorEvent`,onLoading:`loadingEvent`,onRefresh:`refreshEvent`,onUnsupportedNode:`unsupportedNodeEvent`},De=[`onLoad`,`data`,`suspense`,`cacheKey`],Oe=e=>{let t=z(`kml`,e.data,e,e=>Cesium.Resource.fetchBlob({url:e}));return t?{data:t}:void 0},ke=(e,{data:t,onLoad:n,...r})=>{t&&e.load(t,r).then(e=>{n&&n(e)})};L({name:`KmlDataSource`,create(e,t){if(!e.scene||!e.dataSourceCollection||!e.scene)return;let n=new Cesium.KmlDataSource({camera:t.camera||e.scene.camera,canvas:t.canvas||e.scene.canvas,ellipsoid:t.ellipsoid,credit:t.credit});return t.clustering&&(n.clustering=t.clustering),typeof t.show==`boolean`&&(n.show=t.show),t.name!==void 0&&(n.name=t.name),e.dataSourceCollection.add(n),t.data&&ke(n,t),n},update(e,t,n){t.data?n.show!==t.show&&(e.show=typeof t.show!=`boolean`||t.show):e.show=!1,t.data&&(n.data!==t.data||n.clampToGround!==t.clampToGround||n.ellipsoid!==t.ellipsoid||n.sourceUri!==t.sourceUri||n.credit!==t.credit)&&ke(e,t)},destroy(e,t){t.dataSourceCollection&&!t.dataSourceCollection.isDestroyed()&&t.dataSourceCollection.remove(e)},provide(e){return{dataSource:e}},useResource:Oe,cesiumProps:we,cesiumReadonlyProps:Te,cesiumEventProps:Ee,otherProps:De,useCommonEvent:!0}),L({name:`Label`,create:(e,t)=>e.labelCollection?.add(t),destroy(e,t){t.labelCollection&&!t.labelCollection.isDestroyed()&&t.labelCollection.remove(e)},cesiumProps:[`backgroundColor`,`backgroundPadding`,`disableDepthTestDistance`,`distanceDisplayCondition`,`eyeOffset`,`fillColor`,`font`,`heightReference`,`horizontalOrigin`,`id`,`outlineColor`,`outlineWidth`,`pixelOffset`,`pixelOffsetScaleByDistance`,`position`,`scale`,`scaleByDistance`,`show`,`showBackground`,`style`,`text`,`translucencyByDistance`,`verticalOrigin`],useCommonEvent:!0}),L({name:`LabelCollection`,create(e,t){if(!e.scene||!e.primitiveCollection)return;let n=new Cesium.LabelCollection({scene:e.scene,modelMatrix:t.modelMatrix,blendOption:t.blendOption,debugShowBoundingVolume:t.debugShowBoundingVolume});return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},provide(e){return{labelCollection:e}},cesiumProps:[`blendOption`,`coarseDepthTestDistance`,`debugShowBoundingVolume`,`modelMatrix`,`show`,`threePointDepthTestDistance`],setCesiumPropsAfterCreate:!0}),L({name:`LabelGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.LabelGraphics(t);return e.entity.label=n,n},destroy(e,t){t.entity&&(t.entity.label=void 0)},cesiumProps:[`text`,`font`,`style`,`fillColor`,`outlineColor`,`outlineWidth`,`show`,`showBackground`,`backgroundColor`,`backgroundPadding`,`scale`,`horizontalOrigin`,`verticalOrigin`,`eyeOffset`,`pixelOffset`,`translucencyByDistance`,`pixelOffsetScaleByDistance`,`scaleByDistance`,`heightReference`,`distanceDisplayCondition`,`disableDepthTestDistance`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}}),L({name:`Model`,async create(e,{scene:t,url:n,colorBlendMode:r,...i}){if(!e.scene||!e.primitiveCollection||!n)return;let a=n,o;o=ee(a)?await a:a;let s;try{s=await Cesium.Model.fromGltfAsync({...i,url:o,colorBlendMode:r,scene:t||e.scene})}catch(e){i.onError?.(e);return}return e.primitiveCollection.add(s),s},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||(e._clippingPlanes=void 0,e._clippingPolygons=void 0,e.destroy())},cesiumEventProps:{onReady:`readyEvent`},cesiumProps:`backFaceCulling.clampAnimations.clippingPlanes.clippingPolygons.color.colorBlendAmount.colorBlendMode.customShader.debugShowBoundingVolume.debugWireframe.distanceDisplayCondition.edgeDisplayMode.enableVerticalExaggeration.featureIdLabel.heightReference.id.imageBasedLighting.instanceFeatureIdLabel.lightColor.maximumScale.minimumPixelSize.modelMatrix.outlineColor.scale.shadows.show.showCreditsOnScreen.showOutline.silhouetteColor.silhouetteSize.splitDirection.style.pointCloudShading`.split(`.`),cesiumReadonlyProps:[`allowPicking`,`asynchronous`,`basePath`,`credit`,`enableDebugWireframe`,`gltf`,`incrementallyLoadTextures`,`scene`,`releaseGltfJson`,`cull`,`opaquePass`,`upAxis`,`forwardAxis`,`content`,`enableShowOutline`,`projectTo2D`,`classificationType`,`gltfCallback`,`enablePick`,`environmentMapOptions`],otherProps:[`onReady`,`onError`,`url`],useCommonEvent:!0}),L({name:`ModelGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.ModelGraphics(t);return e.entity.model=n,n},destroy(e,t){t.entity&&(t.entity.model=void 0)},cesiumProps:[`uri`,`show`,`scale`,`minimumPixelSize`,`maximumScale`,`incrementallyLoadTextures`,`runAnimations`,`clampAnimations`,`nodeTransformations`,`shadows`,`heightReference`,`distanceDisplayCondition`,`silhouetteColor`,`silhouetteSize`,`color`,`colorBlendMode`,`colorBlendAmount`,`clippingPlanes`,`imageBasedLightingFactor`,`lightColor`,`articulations`,`customShader`,`enableVerticalExaggeration`,`environmentMapOptions`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}}),L({name:`Moon`,create(e,t){if(!e.scene)return;let n=new Cesium.Moon(t);return e.scene.moon=n,n},destroy(e,t){t.scene&&!t.scene.isDestroyed()&&(t.scene.moon=new Cesium.Moon)},cesiumProps:[`onlySunLighting`,`show`,`textureUrl`],cesiumReadonlyProps:[`ellipsoid`]}),L({name:`MVTDataProvider`,async create(e,t){if(!e.primitiveCollection)return;let{url:n,minZoom:r,maxZoom:i,extent:a,featureIdProperty:o,onReady:s,onError:c}=t,l;try{l=await Cesium.MVTDataProvider.fromUrl(n,{minZoom:r,maxZoom:i,extent:a,featureIdProperty:o}),s?.(l)}catch(e){c?.(e);return}return e.primitiveCollection.add(l),l},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},cesiumProps:[`show`],cesiumReadonlyProps:[`minZoom`,`maxZoom`,`extent`,`featureIdProperty`,`url`],otherProps:[`url`,`onReady`,`onError`]}),L({name:`ParticleSystem`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.ParticleSystem({...t,updateCallback:t.onUpdate});return e.primitiveCollection.add(n),n},update(e,t,n){t.onUpdate!==n.onUpdate&&(e.updateCallback=t.onUpdate)},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e)},cesiumProps:`show.emitter.modelMatrix.emitterModelMatrix.emissionRate.bursts.loop.startScale.endScale.startColor.endColor.image.imageSize.minimumImageSize.maximumImageSize.speed.minimumSpeed.maximumSpeed.lifetime.particleLife.minimumParticleLife.maximumParticleLife.mass.minimumMass.maximumMass.sizeInMeters`.split(`.`),cesiumEventProps:{onComplete:`complete`,onUpdate:`updateCallback`}});var Ae=L({name:`PathGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.PathGraphics(t);return e.entity.path=n,n},destroy(e,t){t.entity&&(t.entity.path=void 0)},cesiumProps:[`leadTime`,`trailTime`,`show`,`width`,`material`,`materialMode`,`resolution`,`distanceDisplayCondition`,`relativeTo`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}});L({name:`PlaneGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.PlaneGraphics(t);return e.entity.plane=n,n},destroy(e,t){t.entity&&(t.entity.plane=void 0)},cesiumProps:[`plane`,`dimensions`,`show`,`fill`,`material`,`outline`,`outlineColor`,`outlineWidth`,`shadows`,`distanceDisplayCondition`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}});var je=L({name:`PointGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.PointGraphics(t);return e.entity.point=n,n},destroy(e,t){t.entity&&(t.entity.point=void 0)},cesiumProps:[`color`,`pixelSize`,`outlineColor`,`outlineWidth`,`show`,`scaleByDistance`,`translucencyByDistance`,`heightReference`,`distanceDisplayCondition`,`disableDepthTestDistance`,`splitDirection`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}});L({name:`PointPrimitive`,create:(e,t)=>e.pointPrimitiveCollection?.add(t),destroy(e,t){t.pointPrimitiveCollection&&!t.pointPrimitiveCollection.isDestroyed()&&t.pointPrimitiveCollection.remove(e)},cesiumProps:[`color`,`disableDepthTestDistance`,`distanceDisplayCondition`,`id`,`outlineColor`,`outlineWidth`,`pixelSize`,`position`,`scaleByDistance`,`show`,`splitDirection`,`translucencyByDistance`],useCommonEvent:!0}),L({name:`PointPrimitveCollection`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.PointPrimitiveCollection(t);return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},provide(e){return{pointPrimitiveCollection:e}},cesiumProps:[`blendOption`,`debugShowBoundingVolume`,`modelMatrix`,`show`]}),L({name:`PolygonGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.PolygonGraphics(t);return e.entity.polygon=n,n},destroy(e,t){t.entity&&(t.entity.polygon=void 0)},cesiumProps:[`arcType`,`hierarchy`,`height`,`heightReference`,`extrudedHeight`,`extrudedHeightReference`,`show`,`fill`,`material`,`outline`,`outlineColor`,`outlineWidth`,`stRotation`,`granularity`,`perPositionHeight`,`closeTop`,`closeBottom`,`shadows`,`distanceDisplayCondition`,`zIndex`,`classificationType`,`textureCoordinates`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}}),L({name:`Polyline`,create:(e,t)=>{let n=e.polylineCollection?.add(t);if(n)return[n,{userMaterial:!!t.material}]},destroy(e,t,n,r){if(t.polylineCollection&&!t.polylineCollection.isDestroyed()){if(r?.userMaterial){let t=e.material;t&&!t.isDestroyed()&&(e.material=Cesium.Material.fromType(Cesium.Material.ColorType,{color:new Cesium.Color(1,1,1,1)}))}t.polylineCollection.remove(e)}},cesiumProps:[`distanceDisplayCondition`,`id`,`loop`,`material`,`positions`,`show`,`width`],useCommonEvent:!0}),L({name:`PolylineCollection`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.PolylineCollection({modelMatrix:t.modelMatrix,debugShowBoundingVolume:t.debugShowBoundingVolume,length:t.length,scene:e.scene});return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},provide(e){return{polylineCollection:e}},cesiumProps:[`debugShowBoundingVolume`,`length`,`modelMatrix`,`show`]}),L({name:`PolylineGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.PolylineGraphics(t);return e.entity.polyline=n,n},destroy(e,t){t.entity&&(t.entity.polyline=void 0)},cesiumProps:[`arcType`,`classificationType`,`positions`,`clampToGround`,`width`,`show`,`material`,`depthFailMaterial`,`granularity`,`shadows`,`distanceDisplayCondition`,`zIndex`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}}),L({name:`PolylineVolumeGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.PolylineVolumeGraphics(t);return e.entity.polylineVolume=n,n},destroy(e,t){t.entity&&(t.entity.polylineVolume=void 0)},cesiumProps:[`positions`,`shape`,`cornerType`,`show`,`fill`,`material`,`outline`,`outlineColor`,`outlineWidth`,`granularity`,`shadows`,`distanceDisplayCondition`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}}),L({name:`PostProcessStage`,create(e,t){if(!e.scene)return;let n=new Cesium.PostProcessStage(t);return typeof t.enabled==`boolean`&&(n.enabled=t.enabled),t.selected&&(n.selected=t.selected),e.scene.postProcessStages.add(n),n},destroy(e,t){t.scene&&!t.scene.isDestroyed()&&t.scene.postProcessStages.remove(e),e.isDestroyed()||e.destroy()},cesiumProps:[`enabled`,`selected`],cesiumReadonlyProps:[`clearColor`,`forcePowerOfTwo`,`fragmentShader`,`name`,`pixelDatatype`,`pixelFormat`,`sampleMode`,`scissorRectangle`,`textureScale`,`uniforms`]}),R({name:`BlackAndWhiteStage`,props:[`gradations`],create:()=>Cesium.PostProcessStageLibrary.createBlackAndWhiteStage()}),R({name:`BrightnessStage`,props:[`brightness`],create:()=>Cesium.PostProcessStageLibrary.createBrightnessStage()}),R({name:`LensFlareStage`,props:[`dirtTexture`,`starTexture`,`intensity`,`distortion`,`ghostDispersal`,`haloWidth`,`earthRadius`],create:()=>Cesium.PostProcessStageLibrary.createLensFlareStage()}),R({name:`Fxaa`,create:(e,t)=>t.fxaa,props:[]}),R({name:`NightVisionStage`,props:[],create:()=>Cesium.PostProcessStageLibrary.createNightVisionStage()});var Me=[`enabled`,`selected`],Ne=[`inputPreviousStageTexture`,`name`,`stages`,`uniforms`],Pe=(e,t)=>{let n=e,r=Array.isArray(n._stages)?n._stages.slice():[];if(n._stages=[],t){t.remove(e);let n=t._stageNames;for(let e of r){let t=e;n&&typeof t.name==`string`&&Reflect.deleteProperty(n,t.name),t._textureCache=void 0,t._index=void 0}}e.isDestroyed()||e.destroy()};L({name:`PostProcessStageComposite`,create(e,t){if(!e.scene)return;let n=new Cesium.PostProcessStageComposite(t);return typeof t.enabled==`boolean`&&(n.enabled=t.enabled),t.selected&&(n.selected=t.selected),e.scene.postProcessStages.add(n),n},destroy(e,t){Pe(e,t.scene&&!t.scene.isDestroyed()?t.scene.postProcessStages:void 0)},cesiumProps:Me,cesiumReadonlyProps:Ne}),R({name:`AmbientOcclusion`,create:(e,t)=>t.ambientOcclusion,props:[`ambientOcclusionOnly`,`bias`,`delta`,`frustumLength`,`intensity`,`lengthCap`,`sigma`,`stepSize`],noMount:!0}),R({name:`Bloom`,create:(e,t)=>t.bloom,props:[`brightness`,`contrast`,`delta`,`glowOnly`,`sigma`,`stepSize`],noMount:!0}),R({name:`BlurStage`,props:[`delta`,`sigma`,`stepSize`],create:()=>Cesium.PostProcessStageLibrary.createBlurStage()}),R({name:`DepthOfFieldStage`,props:[`delta`,`focalDistance`,`sigma`,`stepSize`],create:()=>Cesium.PostProcessStageLibrary.createDepthOfFieldStage()}),R({name:`EdgeDetectionStage`,props:[`color`,`length`],create:()=>Cesium.PostProcessStageLibrary.createEdgeDetectionStage()}),R({name:`SilhouetteStage`,props:[`color`,`length`],create:()=>Cesium.PostProcessStageLibrary.createSilhouetteStage()}),L({name:`Primitive`,create(e,t){if(!e.primitiveCollection)return;let n=new Cesium.Primitive(t);if(t.onReady){let r=()=>{n.ready&&(t.onReady?.(n),e.scene?.postRender.removeEventListener(r))};e.scene?.postRender.addEventListener(r)}return e.primitiveCollection.add(n),n},destroy(e,t){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||e.destroy()},cesiumProps:[`appearance`,`cull`,`debugShowBoundingVolume`,`depthFailAppearance`,`modelMatrix`,`shadows`,`show`],cesiumReadonlyProps:[`allowPicking`,`asynchronous`,`compressVertices`,`geometryInstances`,`interleave`,`releaseGeometryInstances`,`vertexCacheOptimize`],otherProps:[`onReady`],useCommonEvent:!0}),L({name:`RectangleGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.RectangleGraphics(t);return e.entity.rectangle=n,n},destroy(e,t){t.entity&&(t.entity.rectangle=void 0)},cesiumProps:[`classificationType`,`coordinates`,`height`,`heightReference`,`extrudedHeight`,`extrudedHeightReference`,`show`,`fill`,`material`,`outline`,`outlineColor`,`outlineWidth`,`rotation`,`stRotation`,`granularity`,`shadows`,`distanceDisplayCondition`,`zIndex`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}});var Fe=`backgroundColor.completeMorphOnUserInput.debugShowCommands.debugShowDepthFrustum.debugShowFramesPerSecond.debugShowFrustumPlanes.debugShowFrustums.eyeSeparation.farToNearRatio.focalLength.fog.gamma.globe.highDynamicRange.invertClassification.invertClassificationColor.light.logarithmicDepthBuffer.logarithmicDepthFarToNearRatio.maximumRenderTimeChange.minimumDisableDepthTestDistance.moon.morphTime.nearToFarDistance2D.pickTranslucentDepth.requestRenderMode.rethrowRenderErrors.shadowMap.skyAtmosphere.skyBox.specularEnvironmentMaps.sphericalHarmonicCoefficients.sun.sunBloom.terrainProvider.useDepthPicking.useWebVR.msaaSamples.splitPosition.verticalExaggeration.verticalExaggerationRelativeHeight.atmosphere`.split(`.`),Ie={onMorphComplete:`morphComplete`,onMorphStart:`morphStart`,onPostRender:`postRender`,onPreRender:`preRender`,onPreUpdate:`preUpdate`,onPostUpdate:`postUpdate`,onRenderError:`renderError`,onTerrainProviderChange:`terrainProviderChanged`},Le=[`mode`,`morphDuration`,`enableEdgeVisibility`],Re=(e,t,n)=>{switch(t){case Cesium.SceneMode.SCENE2D:e.morphTo2D(n);break;case Cesium.SceneMode.COLUMBUS_VIEW:e.morphToColumbusView(n);break;case Cesium.SceneMode.SCENE3D:e.morphTo3D(n);break}};L({name:`Scene`,create(e,t){return e.scene&&(t.mode&&Re(e.scene,t.mode,t.morphDuration),t.enableEdgeVisibility!==void 0&&(e.scene._enableEdgeVisibility=t.enableEdgeVisibility)),e.scene},update(e,t,n){t.mode!==n.mode&&t.mode&&Re(e,t.mode,t.morphDuration),t.enableEdgeVisibility!==n.enableEdgeVisibility&&t.enableEdgeVisibility!==void 0&&(e._enableEdgeVisibility=t.enableEdgeVisibility)},cesiumProps:Fe,cesiumEventProps:Ie,otherProps:Le,setCesiumPropsAfterCreate:!0}),L({name:`ScreenSpaceCameraController`,create:e=>e.scene?.screenSpaceCameraController,cesiumProps:[`bounceAnimationTime`,`enableCollisionDetection`,`enableInputs`,`enableLook`,`enableRotate`,`enableTilt`,`enableTranslate`,`enableZoom`,`inertiaSpin`,`inertiaTranslate`,`inertiaZoom`,`lookEventTypes`,`maximumMovementRatio`,`maximumZoomDistance`,`minimumCollisionTerrainHeight`,`minimumPickingTerrainHeight`,`minimumTrackBallHeight`,`minimumZoomDistance`,`rotateEventTypes`,`tiltEventTypes`,`translateEventTypes`,`zoomEventTypes`,`minimumPickingTerrainDistanceWithInertia`,`maximumTiltAngle`,`zoomFactor`],setCesiumPropsAfterCreate:!0}),L({name:`ScreenSpaceEventHandler`,create(e,t){return t.useDefault?e.cesiumWidget?.screenSpaceEventHandler:e.scene?new Cesium.ScreenSpaceEventHandler(e.scene.canvas):void 0},destroy(e){e.isDestroyed()||e.destroy()},provide(e){return{screenSpaceEventHandler:e}}}),L({name:`ShadowMap`,create:e=>e.scene?.shadowMap,cesiumProps:[`darkness`,`fadingEnabled`,`maximumDistance`,`enabled`,`normalOffset`,`softShadows`,`size`]}),L({name:`SkyAtmosphere`,create:e=>e.scene?.skyAtmosphere,cesiumProps:[`brightnessShift`,`hueShift`,`saturationShift`,`show`,`perFragmentAtmosphere`,`atmosphereLightIntensity`,`atmosphereRayleighCoefficient`,`atmosphereMieCoefficient`,`atmosphereRayleighScaleHeight`,`atmosphereMieScaleHeight`,`atmosphereMieAnisotropy`],setCesiumPropsAfterCreate:!0}),L({name:`SkyBox`,create:e=>e.scene?.skyBox,cesiumProps:[`sources`,`show`],setCesiumPropsAfterCreate:!0}),L({name:`Sun`,create(e){if(!e.scene)return;let t=new Cesium.Sun;return e.scene.sun=t,t},destroy(e,t){t.scene&&!t.scene.isDestroyed()&&(t.scene.sun=new Cesium.Sun)},cesiumProps:[`glowFactor`,`show`],setCesiumPropsAfterCreate:!0}),L({name:`TimeDynamicPointCloud`,create(e,t){if(!e.cesiumWidget||!e.primitiveCollection||!e.cesiumWidget?.clock)return;let n=new Cesium.TimeDynamicPointCloud({...t,clock:t.clock??e.cesiumWidget.clock});if(t.onReady){let e=()=>{t.onReady?.(n),n.frameChanged.removeEventListener(e)};n.frameChanged.addEventListener(e)}return e.primitiveCollection.add(n),[n,{userClippingPlanes:!!t.clippingPlanes}]},destroy(e,t,n,r){t.primitiveCollection&&!t.primitiveCollection.isDestroyed()&&t.primitiveCollection.remove(e),e.isDestroyed()||(r?.userClippingPlanes&&(e._clippingPlanes=void 0),e.destroy())},cesiumProps:[`clippingPlanes`,`maximumMemoryUsage`,`modelMatrix`,`shadows`,`show`,`style`,`intervals`],cesiumReadonlyProps:[`clock`,`shading`],cesiumEventProps:{onFrameChange:`frameChanged`},otherProps:[`onReady`],useCommonEvent:!0});var ze=L({name:`Viewer`,async create(e,{baseLayer:t,terrainProvider:n,...r},i){if(!i)return;let a;a=ee(n)?await n:n;let o=new Cesium.Viewer(i,{...r,terrainProvider:a,baseLayer:t??void 0});if(o)return t===!1&&o.imageryLayers.removeAll(),o&&r.extend&&(Array.isArray(r.extend)?r.extend.forEach(e=>{o.extend(e,{})}):o.extend(r.extend,{})),[o,new F(o.scene)]},destroy(e,t,n,r){r&&!r.isDestroyed()&&r.destroy(),e.isDestroyed()||e.destroy()},provide(e,t,n,r){return{viewer:e,cesiumWidget:e.cesiumWidget,dataSourceCollection:e.dataSources,entityCollection:e.entities,scene:e.scene,camera:e.scene.camera,imageryLayerCollection:e.scene.globe.imageryLayers,primitiveCollection:e.scene.primitives,globe:e.scene.globe,__$internal:{onUpdate:n?.onUpdate,imageryLayerWaitingList:[]},[te]:r}},containerProps:({id:e,className:t,style:n,full:r,containerProps:i})=>({className:t,id:e,style:{...r?{position:`absolute`,bottom:`0`,left:`0`,right:`0`,top:`0`}:{},...n},...i}),cesiumProps:[`terrainShadows`,`clockTrackedDataSource`,`targetFrameRate`,`useDefaultRenderLoop`,`resolutionScale`,`allowDataSourcesToSuspendAnimation`,`trackedEntity`,`selectedEntity`,`shadows`,`useBrowserRecommendedResolution`,`creditDisplay`],cesiumReadonlyProps:`baseLayer.animation.baseLayerPicker.fullscreenButton.vrButton.geocoder.homeButton.infoBox.sceneModePicker.selectionIndicator.timeline.navigationHelpButton.navigationInstructionsInitiallyVisible.scene3DOnly.shouldAnimate.clockViewModel.selectedImageryProviderViewModel.imageryProviderViewModels.selectedTerrainProviderViewModel.terrainProviderViewModels.ellipsoid.skyBox.skyAtmosphere.fullscreenElement.showRenderLoopErrors.automaticallyTrackDataSourceClocks.contextOptions.sceneMode.mapProjection.globe.orderIndependentTranslucency.creditContainer.creditViewport.dataSources.mapMode2D.projectionPicker.blurActiveElementOnCanvasFocus.requestRenderMode.maximumRenderTimeChange.depthPlaneEllipsoidOffset.msaaSamples.terrain`.split(`.`),cesiumEventProps:{onSelectedEntityChange:`selectedEntityChanged`,onTrackedEntityChange:`trackedEntityChanged`},otherProps:[`className`,`id`,`style`,`full`,`containerProps`,`extend`,`terrainProvider`],renderContainer:!0,useCommonEvent:!0,useRootEvent:!0});L({name:`WebMapTileServiceImageryProvider`,create(e,t){let{onReady:n,children:r,...i}=t,a=new Cesium.WebMapTileServiceImageryProvider(i);return n&&n(a),a}}),L({name:`WallGraphics`,create(e,t){if(!e.entity)return;let n=new Cesium.WallGraphics(t);return e.entity.wall=n,n},destroy(e,t){t.entity&&(t.entity.wall=void 0)},cesiumProps:[`positions`,`maximumHeights`,`minimumHeights`,`show`,`fill`,`material`,`outline`,`outlineColor`,`outlineWidth`,`granularity`,`shadows`,`distanceDisplayCondition`],cesiumEventProps:{onDefinitionChange:`definitionChanged`}});var Be=Math.PI,Ve=Be*2,He=Be/180;180/Be;var Ue=1440,We=398600.8,Ge=6378.135,Ke=60/Math.sqrt(Ge*Ge*Ge/We),qe=Ge*Ke/60,Je=1/Ke,Ye=.001082616,Xe=-253881e-11,Ze=-165597e-11,Qe=Xe/Ye,$e=2/3,et=1440/(2*Be);function tt(e,t){let n=[31,e%4==0?29:28,31,30,31,30,31,31,30,31,30,31],r=Math.floor(t),i=1,a=0;for(;r>a+n[i-1]&&i<12;)a+=n[i-1],i+=1;let o=i,s=r-a,c=(t-r)*24,l=Math.floor(c);c=(c-l)*60;let u=Math.floor(c);return{mon:o,day:s,hr:l,minute:u,sec:(c-u)*60}}function nt(e,t,n,r,i,a,o=0){return 367*e-Math.floor(7*(e+Math.floor((t+9)/12))*.25)+Math.floor(275*t/9)+n+1721013.5+((o/6e4+a/60+i)/60+r)/24}function rt(e,t,n,r,i,a,o=0){if(e instanceof Date){let t=e;return nt(t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.getUTCMilliseconds())}return nt(e,t,n,r,i,a,o)}function it(e,t){let{e3:n,ee2:r,peo:i,pgho:a,pho:o,pinco:s,plo:c,se2:l,se3:u,sgh2:d,sgh3:f,sgh4:p,sh2:m,sh3:h,si2:g,si3:_,sl2:v,sl3:y,sl4:b,t:x,xgh2:S,xgh3:C,xgh4:w,xh2:T,xh3:E,xi2:D,xi3:O,xl2:k,xl3:A,xl4:j,zmol:M,zmos:N}=e,{init:P,opsmode:ee}=t,{ep:te,inclp:ne,nodep:F,argpp:re,mp:ie}=t,I,L,ae,R,oe,se,ce,z,le,B,V,ue,H,U,W,de,G,fe,pe,me,he;he=N+119459e-10*x,P===`y`&&(he=N),me=he+2*.01675*Math.sin(he),G=Math.sin(me),B=.5*G*G-.25,V=-.5*G*Math.cos(me);let ge=l*B+u*V,_e=g*B+_*V,ve=v*B+y*V+b*G,ye=d*B+f*V+p*G,be=m*B+h*V;he=M+.00015835218*x,P===`y`&&(he=M),me=he+2*.0549*Math.sin(he),G=Math.sin(me),B=.5*G*G-.25,V=-.5*G*Math.cos(me);let xe=r*B+n*V,K=D*B+O*V,Se=k*B+A*V+j*G,Ce=S*B+C*V+w*G,we=T*B+E*V;return ue=ge+xe,W=_e+K,de=ve+Se,H=ye+Ce,U=be+we,P===`n`&&(ue-=i,W-=s,de-=c,H-=a,U-=o,ne+=W,te+=ue,R=Math.sin(ne),ae=Math.cos(ne),ne>=.2?(U/=R,H-=ae*U,re+=H,F+=U,ie+=de):(se=Math.sin(F),oe=Math.cos(F),I=R*se,L=R*oe,ce=U*oe+W*ae*se,z=-U*se+W*ae*oe,I+=ce,L+=z,F%=Ve,F<0&&ee===`a`&&(F+=Ve),fe=ie+re+ae*F,le=de+H-W*F*R,fe+=le,pe=F,F=Math.atan2(I,L),F<0&&ee===`a`&&(F+=Ve),Math.abs(pe-F)>Be&&(F.0034906585&&(z=1),se>=.00826&&se<=.00924&&L>=.5&&(z=2);let ut=l*lt*p,dt=u*lt*(g+_),ft=-119459e-10*d*(m+h-14-6*I),pt=f*lt*(b+x-6),mt=-119459e-10*u*(v+y);(R<.052359877||R>Be-.052359877)&&(mt=0),c!==0&&(mt/=c);let ht=pt-t*mt;me=ut+r*ct*s,he=dt+i*ct*(N+P),ge=ft-ct*a*(j+M-14-6*I);let gt=o*ct*(ne+F-6),_t=-.00015835218*i*(ee+te);(R<.052359877||R>Be-.052359877)&&(_t=0),ve=ht+gt,_e=mt,c!==0&&(ve-=t/c*_t,_e+=_t/c);let vt=(w+C*st)%Ve;if(L+=me*S,R+=he*S,ae+=ve*S,ce+=_e*S,oe+=ge*S,z!==0){if(it=(se/Ke)**$e,z===2){at=t*t;let e=L;L=re;let n=I;I=ie,ot=L*I,Re=-.306-(L-.64)*.44,L<=.65?(ze=3.616-13.247*L+16.29*I,Ue=-19.302+117.39*L-228.419*I+156.591*ot,We=-18.9068+109.7927*L-214.6334*I+146.5816*ot,Ge=-41.122+242.694*L-471.094*I+313.953*ot,qe=-146.407+841.88*L-1629.014*I+1083.435*ot,Je=-532.114+3017.977*L-5740.032*I+3708.276*ot):(ze=-72.099+331.819*L-508.738*I+266.724*ot,Ue=-346.844+1582.851*L-2415.925*I+1246.113*ot,We=-342.585+1554.908*L-2366.899*I+1215.972*ot,Ge=-1052.797+4758.686*L-7193.992*I+3651.957*ot,qe=-3581.69+16178.11*L-24462.77*I+12422.52*ot,Je=L>.715?-5149.66+29936.92*L-54087.36*I+31324.56*ot:1464.74-4664.75*L+3763.64*I),L<.7?(Ze=-919.2277+4988.61*L-9064.77*I+5542.21*ot,Ye=-822.71072+4568.6173*L-8491.4146*I+5337.524*ot,Xe=-853.666+4690.25*L-8624.77*I+5341.4*ot):(Ze=-37995.78+161616.52*L-229838.2*I+109377.94*ot,Ye=-51752.104+218913.95*L-309468.16*I+146349.42*ot,Xe=-40023.88+170470.89*L-242699.48*I+115605.82*ot),Qe=c*c,Te=.75*(1+2*t+at),Ee=1.5*Qe,Oe=1.875*c*(1-2*t-3*at),ke=-1.875*c*(1+2*t-3*at),je=35*Qe*Te,Me=39.375*Qe*Qe,Ne=9.84375*c*(Qe*(1-2*t-5*at)+.33333333*(-2+4*t+6*at)),Pe=c*(4.92187512*Qe*(-2-4*t+10*at)+6.56250012*(1+2*t-3*at)),Fe=29.53125*c*(2-8*t+at*(-12+8*t+10*at)),Ie=29.53125*c*(-2-8*t+at*(12+8*t-10*at)),nt=se*se,rt=it*it,tt=3*nt*rt,et=tt*17891679e-13,B=et*Te*Re,V=et*Ee*ze,tt*=it,et=tt*3.7393792e-7,ue=et*Oe*Ue,H=et*ke*We,tt*=it,et=2*tt*7.3636953e-9,U=et*je*Ge,W=et*Me*qe,tt*=it,et=tt*1.1428639e-7,de=et*Ne*Je,G=et*Pe*Xe,et=2*tt*2.1765803e-9,fe=et*Fe*Ye,pe=et*Ie*Ze,Se=(T+O+O-(vt+vt))%Ve,K=E+ge+2*(k+_e-st)-D,L=e,I=n}z===1&&(Le=1+I*(-2.5+.8125*I),Ue=1+2*I,He=1+I*(-6+6.60937*I),Te=.75*(1+t)*(1+t),De=.9375*c*c*(1+3*t)-.75*(1+t),Ae=1+t,Ae*=1.875*Ae*Ae,ye=3*se*se*it*it,be=2*ye*Te*Le*17891679e-13,xe=3*ye*Ae*He*2.2123015e-7*it,ye=ye*De*Ue*21460748e-13*it,Se=(T+O+n-vt)%Ve,K=E+A+ge+ve+_e-(D+st)),Ce=Se,we=D,le=0,se=D+0}return{em:L,argpm:ae,inclm:R,mm:oe,nm:se,nodem:ce,irez:z,atime:le,d2201:B,d2211:V,d3210:ue,d3222:H,d4410:U,d4422:W,d5220:de,d5232:G,d5421:fe,d5433:pe,dedt:me,didt:he,dmdt:ge,dndt:0,dnodt:_e,domdt:ve,del1:ye,del2:be,del3:xe,xfact:K,xlamo:Se,xli:Ce,xni:we}}function st(e){let t=(e-2451545)/36525,n=-62e-7*t*t*t+.093104*t*t+3164400184.812866*t+67310.54841;return n=n*He/240%Ve,n<0&&(n+=Ve),n}function ct(e,t,n,r,i,a,o){return e instanceof Date?st(rt(e)):st(t===void 0?e:rt(e,t,n,r,i,a,o))}function lt(e){let{ecco:t,epoch:n,inclo:r,opsmode:i}=e,{no:a}=e,o=t*t,s=1-o,c=Math.sqrt(s),l=Math.cos(r),u=l*l,d=(Ke/a)**$e,f=.75*Ye*(3*u-1)/(c*s),p=f/(d*d),m=d*(1-p*p-p*(1/3+134*p*p/81));p=f/(m*m),a/=1+p;let h=(Ke/a)**$e,g=Math.sin(r),_=h*s,v=1-5*u,y=-v-u-u,b=1/h,x=_*_,S=h*(1-t),C;if(i===`a`){let e=n-7305,t=Math.floor(e+1e-8),r=e-t,i=.017202791694070362,a=i+Ve;C=(1.7321343856509375+i*t+a*r+e*e*5075514194322695e-30)%Ve,C<0&&(C+=Ve)}else C=ct(n+2433281.5);return{no:a,method:`n`,ainv:b,ao:h,con41:y,con42:v,cosio:l,cosio2:u,eccsq:o,omeosq:s,posq:x,rp:S,rteosq:c,sinio:g,gsto:C}}function ut(e){let{irez:t,d2201:n,d2211:r,d3210:i,d3222:a,d4410:o,d4422:s,d5220:c,d5232:l,d5421:u,d5433:d,dedt:f,del1:p,del2:m,del3:h,didt:g,dmdt:_,dnodt:v,domdt:y,argpo:b,argpdot:x,t:S,tc:C,gsto:w,xfact:T,xlamo:E,no:D}=e,{atime:O,em:k,argpm:A,inclm:j,xli:M,mm:N,xni:P,nodem:ee,nm:te}=e,ne=.13130908,F=2.8843198,re=.37448087,ie=5.7686396,I=.95240898,L=1.8014998,ae=1.050833,R=4.4108898,oe=259200,se,ce,z,le,B,V,ue,H,U=0,W=0,de=(w+C*.0043752690880113)%Ve;if(k+=f*S,j+=g*S,A+=y*S,ee+=v*S,N+=_*S,t!==0){(O===0||S*O<=0||Math.abs(S)0?720:-720;let e=381;for(;e===381;)t===2?(H=b+x*O,z=H+H,ce=M+M,ue=n*Math.sin(z+M-ie)+r*Math.sin(M-ie)+i*Math.sin(H+M-I)+a*Math.sin(-H+M-I)+o*Math.sin(z+ce-L)+s*Math.sin(ce-L)+c*Math.sin(H+M-ae)+l*Math.sin(-H+M-ae)+u*Math.sin(H+ce-R)+d*Math.sin(-H+ce-R),B=P+T,V=n*Math.cos(z+M-ie)+r*Math.cos(M-ie)+i*Math.cos(H+M-I)+a*Math.cos(-H+M-I)+c*Math.cos(H+M-ae)+l*Math.cos(-H+M-ae)+2*(o*Math.cos(z+ce-L)+s*Math.cos(ce-L)+u*Math.cos(H+ce-R)+d*Math.cos(-H+ce-R)),V*=B):(ue=p*Math.sin(M-ne)+m*Math.sin(2*(M-F))+h*Math.sin(3*(M-re)),B=P+T,V=p*Math.cos(M-ne)+2*m*Math.cos(2*(M-F))+3*h*Math.cos(3*(M-re)),V*=B),Math.abs(S-O)>=720?e=381:(W=S-O,e=0),e===381&&(M+=B*se+ue*oe,P+=ue*se+V*oe,O+=se);te=P+ue*W+V*W*W*.5,le=M+B*W+ue*W*W*.5,t===1?(N=le-ee-A+de,U=te-D):(N=le-2*ee+2*de,U=te-D),te=D+U}return{atime:O,em:k,argpm:A,inclm:j,xli:M,mm:N,xni:P,nodem:ee,dndt:U,nm:te}}var dt;(function(e){e[e.None=0]=`None`,e[e.MeanEccentricityOutOfRange=1]=`MeanEccentricityOutOfRange`,e[e.MeanMotionBelowZero=2]=`MeanMotionBelowZero`,e[e.PerturbedEccentricityOutOfRange=3]=`PerturbedEccentricityOutOfRange`,e[e.SemiLatusRectumBelowZero=4]=`SemiLatusRectumBelowZero`,e[e.Decayed=6]=`Decayed`})(dt||={});function ft(e,t){let n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O;e.t=t,e.error=dt.None;let k=e.mo+e.mdot*e.t,A=e.argpo+e.argpdot*e.t,j=e.nodeo+e.nodedot*e.t;u=A,S=k;let M=e.t*e.t;if(w=j+e.nodecf*M,v=1-e.cc1*e.t,y=e.bstar*e.cc4*e.t,b=e.t2cof*M,e.isimp!==1){c=e.omgcof*e.t;let t=1+e.eta*Math.cos(k);s=e.xmcof*(t*t*t-e.delmo),_=c+s,S=k+_,u=A-_,p=M*e.t,m=p*e.t,v=v-e.d2*M-e.d3*p-e.d4*m,y+=e.bstar*e.cc5*(Math.sin(S)-e.sinmao),b=b+e.t3cof*p+m*(e.t4cof+e.t*e.t5cof)}C=e.no;let N=e.ecco;if(x=e.inclo,e.method===`d`){h=e.t;let t=ut({irez:e.irez,d2201:e.d2201,d2211:e.d2211,d3210:e.d3210,d3222:e.d3222,d4410:e.d4410,d4422:e.d4422,d5220:e.d5220,d5232:e.d5232,d5421:e.d5421,d5433:e.d5433,dedt:e.dedt,del1:e.del1,del2:e.del2,del3:e.del3,didt:e.didt,dmdt:e.dmdt,dnodt:e.dnodt,domdt:e.domdt,argpo:e.argpo,argpdot:e.argpdot,t:e.t,tc:h,gsto:e.gsto,xfact:e.xfact,xlamo:e.xlamo,no:e.no,atime:e.atime,em:N,argpm:u,inclm:x,xli:e.xli,mm:S,xni:e.xni,nodem:w,nm:C});({em:N,argpm:u,inclm:x,mm:S,nodem:w,nm:C}=t)}if(C<=0)return e.error=dt.MeanMotionBelowZero,null;let P=(Ke/C)**$e*v*v;if(C=Ke/P**1.5,N-=y,N>=1||N<-.001)return e.error=dt.MeanEccentricityOutOfRange,null;N<1e-6&&(N=1e-6),S+=e.no*b,E=S+u+w,w%=Ve,u%=Ve,E%=Ve,S=(E-u-w)%Ve;let ee={am:P,em:N,im:x,Om:w,om:u,mm:S,nm:C},te=Math.sin(x),ne=Math.cos(x),F=N;if(T=x,d=u,O=w,D=S,a=te,i=ne,e.method===`d`){let t=it(e,{inclo:e.inclo,init:`n`,ep:F,inclp:T,nodep:O,argpp:d,mp:D,opsmode:e.operationmode});if({ep:F,nodep:O,argpp:d,mp:D}=t,T=t.inclp,T<0&&(T=-T,O+=Be,d-=Be),F<0||F>1)return e.error=dt.PerturbedEccentricityOutOfRange,null}e.method===`d`&&(a=Math.sin(T),i=Math.cos(T),e.aycof=-.5*Qe*a,Math.abs(i+1)>15e-13?e.xlcof=-.25*Qe*a*(3+5*i)/(1+i):e.xlcof=-.25*Qe*a*(3+5*i)/15e-13);let re=F*Math.cos(d);_=1/(P*(1-F*F));let ie=F*Math.sin(d)+_*e.aycof,I=(D+d+O+_*e.xlcof*re-O)%Ve;l=I,g=9999.9;let L=1;for(;Math.abs(g)>=1e-12&&L<=10;)r=Math.sin(l),n=Math.cos(l),g=1-n*re-r*ie,g=(I-ie*n+re*r-l)/g,Math.abs(g)>=.95&&(g=g>0?.95:-.95),l+=g,L+=1;let ae=re*n+ie*r,R=re*r-ie*n,oe=re*re+ie*ie,se=P*(1-oe);if(se<0)return e.error=dt.SemiLatusRectumBelowZero,null;let ce=P*(1-ae),z=Math.sqrt(P)*R/ce,le=Math.sqrt(se)/ce,B=Math.sqrt(1-oe);_=R/(1+B);let V=P/ce*(r-ie-re*_),ue=P/ce*(n-re+ie*_);f=Math.atan2(V,ue);let H=(ue+ue)*V,U=1-2*V*V;_=1/se;let W=.5*Ye*_,de=W*_;e.method===`d`&&(o=i*i,e.con41=3*o-1,e.x1mth2=1-o,e.x7thm1=7*o-1);let G=ce*(1-1.5*de*B*e.con41)+.5*W*e.x1mth2*U;if(G<1)return e.error=dt.Decayed,null;f-=.25*de*e.x7thm1*H;let fe=O+1.5*de*i*H,pe=T+1.5*de*i*a*U,me=z-C*W*e.x1mth2*H/Ke,he=le+C*W*(e.x1mth2*U+1.5*e.con41)/Ke,ge=Math.sin(f),_e=Math.cos(f),ve=Math.sin(fe),ye=Math.cos(fe),be=Math.sin(pe),xe=Math.cos(pe),K=-ve*xe,Se=ye*xe,Ce=K*ge+ye*_e,we=Se*ge+ve*_e,Te=be*ge,Ee=K*_e-ye*ge,De=Se*_e-ve*ge,Oe=be*_e;return{position:{x:G*Ce*Ge,y:G*we*Ge,z:G*Te*Ge},velocity:{x:(me*Ce+he*Ee)*qe,y:(me*we+he*De)*qe,z:(me*Te+he*Oe)*qe},meanElements:ee}}function pt(e,t){let{opsmode:n,satn:r,epoch:i,xbstar:a,xecco:o,xargpo:s,xinclo:c,xmo:l,xno:u,xnodeo:d}=t,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,ee,te,ne,F,re,ie,I,L,ae,R,oe,se,ce,z,le,B,V,ue,H,U,W,de,G,fe,pe,me,he,ge,_e,ve,ye,be,xe,K=e;K.isimp=0,K.method=`n`,K.aycof=0,K.con41=0,K.cc1=0,K.cc4=0,K.cc5=0,K.d2=0,K.d3=0,K.d4=0,K.delmo=0,K.eta=0,K.argpdot=0,K.omgcof=0,K.sinmao=0,K.t=0,K.t2cof=0,K.t3cof=0,K.t4cof=0,K.t5cof=0,K.x1mth2=0,K.x7thm1=0,K.mdot=0,K.nodedot=0,K.xlcof=0,K.xmcof=0,K.nodecf=0,K.irez=0,K.d2201=0,K.d2211=0,K.d3210=0,K.d3222=0,K.d4410=0,K.d4422=0,K.d5220=0,K.d5232=0,K.d5421=0,K.d5433=0,K.dedt=0,K.del1=0,K.del2=0,K.del3=0,K.didt=0,K.dmdt=0,K.dnodt=0,K.domdt=0,K.e3=0,K.ee2=0,K.peo=0,K.pgho=0,K.pho=0,K.pinco=0,K.plo=0,K.se2=0,K.se3=0,K.sgh2=0,K.sgh3=0,K.sgh4=0,K.sh2=0,K.sh3=0,K.si2=0,K.si3=0,K.sl2=0,K.sl3=0,K.sl4=0,K.gsto=0,K.xfact=0,K.xgh2=0,K.xgh3=0,K.xgh4=0,K.xh2=0,K.xh3=0,K.xi2=0,K.xi3=0,K.xl2=0,K.xl3=0,K.xl4=0,K.xlamo=0,K.zmol=0,K.zmos=0,K.atime=0,K.xli=0,K.xni=0,K.bstar=a,K.ecco=o,K.argpo=s,K.inclo=c,K.mo=l,K.no=u,K.nodeo=d,K.operationmode=n;let Se=78/Ge+1,Ce=42/Ge,we=Ce*Ce*Ce*Ce;K.init=`y`,K.t=0;let Te=lt({satn:r,ecco:K.ecco,epoch:i,inclo:K.inclo,no:K.no,method:K.method,opsmode:K.operationmode}),{ao:Ee,con42:De,cosio:Oe,cosio2:ke,eccsq:Ae,omeosq:je,posq:Me,rp:Ne,rteosq:Pe,sinio:Fe}=Te;if(K.no=Te.no,K.con41=Te.con41,K.gsto=Te.gsto,K.a=(K.no*Je)**(-2/3),K.alta=K.a*(1+K.ecco)-1,K.altp=K.a*(1-K.ecco)-1,K.error=0,je>=0||K.no>=0){if(K.isimp=0,Ne<1.034492841559484&&(K.isimp=1),F=Se,M=we,k=(Ne-1)*Ge,k<156){F=k-78,k<98&&(F=20);let e=(120-F)/Ge;M=e*e*e*e,F=F/Ge+1}A=1/Me,G=1/(Ee-F),K.eta=Ee*K.ecco*G,C=K.eta*K.eta,S=K.ecco*K.eta,j=Math.abs(1-C),_=M*G**4,v=_/j**3.5,h=v*K.no*(Ee*(1+1.5*C+S*(4+C))+.375*Ye*G/j*K.con41*(8+3*C*(8+C))),K.cc1=K.bstar*h,g=0,K.ecco>1e-4&&(g=-2*_*G*Qe*K.no*Fe/K.ecco),K.x1mth2=1-ke,K.cc4=2*K.no*v*Ee*je*(K.eta*(2+.5*C)+K.ecco*(.5+2*C)-Ye*G/(Ee*j)*(-3*K.con41*(1-2*S+C*(1.5-.5*S))+.75*K.x1mth2*(2*C-S*(1+C))*Math.cos(2*K.argpo))),K.cc5=2*v*Ee*je*(1+2.75*(C+S)+S*C),y=ke*ke,U=1.5*Ye*A*K.no,W=.5*U*Ye*A,de=-.46875*Ze*A*A*K.no,K.mdot=K.no+.5*U*Pe*K.con41+.0625*W*Pe*(13-78*ke+137*y),K.argpdot=-.5*U*De+.0625*W*(7-114*ke+395*y)+de*(3-36*ke+49*y),pe=-U*Oe,K.nodedot=pe+(.5*W*(4-19*ke)+2*de*(3-7*ke))*Oe,fe=K.argpdot+K.nodedot,K.omgcof=K.bstar*g*Math.cos(K.argpo),K.xmcof=0,K.ecco>1e-4&&(K.xmcof=-$e*_*K.bstar/S),K.nodecf=3.5*je*pe*K.cc1,K.t2cof=1.5*K.cc1,Math.abs(Oe+1)>15e-13?K.xlcof=-.25*Qe*Fe*(3+5*Oe)/(1+Oe):K.xlcof=-.25*Qe*Fe*(3+5*Oe)/15e-13,K.aycof=-.5*Qe*Fe;let e=1+K.eta*Math.cos(K.mo);if(K.delmo=e*e*e,K.sinmao=Math.sin(K.mo),K.x7thm1=7*ke-1,2*Be/K.no>=225){K.method=`d`,K.isimp=1,ue=0,E=K.inclo;let e=at({epoch:i,ep:K.ecco,argpp:K.argpo,tc:ue,inclp:K.inclo,nodep:K.nodeo,np:K.no,e3:K.e3,ee2:K.ee2,peo:K.peo,pgho:K.pgho,pho:K.pho,pinco:K.pinco,plo:K.plo,se2:K.se2,se3:K.se3,sgh2:K.sgh2,sgh3:K.sgh3,sgh4:K.sgh4,sh2:K.sh2,sh3:K.sh3,si2:K.si2,si3:K.si3,sl2:K.sl2,sl3:K.sl3,sl4:K.sl4,xgh2:K.xgh2,xgh3:K.xgh3,xgh4:K.xgh4,xh2:K.xh2,xh3:K.xh3,xi2:K.xi2,xi3:K.xi3,xl2:K.xl2,xl3:K.xl3,xl4:K.xl4,zmol:K.zmol,zmos:K.zmos});K.e3=e.e3,K.ee2=e.ee2,K.peo=e.peo,K.pgho=e.pgho,K.pho=e.pho,K.pinco=e.pinco,K.plo=e.plo,K.se2=e.se2,K.se3=e.se3,K.sgh2=e.sgh2,K.sgh3=e.sgh3,K.sgh4=e.sgh4,K.sh2=e.sh2,K.sh3=e.sh3,K.si2=e.si2,K.si3=e.si3,K.sl2=e.sl2,K.sl3=e.sl3,K.sl4=e.sl4,{sinim:p,cosim:f,em:b,emsq:x,s1:N,s2:P,s3:ee,s4:te,s5:ne,ss1:re,ss2:ie,ss3:I,ss4:L,ss5:ae,sz1:R,sz3:oe,sz11:se,sz13:ce,sz21:z,sz23:le,sz31:B,sz33:V}=e,K.xgh2=e.xgh2,K.xgh3=e.xgh3,K.xgh4=e.xgh4,K.xh2=e.xh2,K.xh3=e.xh3,K.xi2=e.xi2,K.xi3=e.xi3,K.xl2=e.xl2,K.xl3=e.xl3,K.xl4=e.xl4,K.zmol=e.zmol,K.zmos=e.zmos,{nm:O,z1:me,z3:he,z11:ge,z13:_e,z21:ve,z23:ye,z31:be,z33:xe}=e;let t=it(K,{inclo:E,init:K.init,ep:K.ecco,inclp:K.inclo,nodep:K.nodeo,argpp:K.argpo,mp:K.mo,opsmode:K.operationmode});K.ecco=t.ep,K.inclo=t.inclp,K.nodeo=t.nodep,K.argpo=t.argpp,K.mo=t.mp,w=0,T=0,D=0;let n=ot({cosim:f,emsq:x,argpo:K.argpo,s1:N,s2:P,s3:ee,s4:te,s5:ne,sinim:p,ss1:re,ss2:ie,ss3:I,ss4:L,ss5:ae,sz1:R,sz3:oe,sz11:se,sz13:ce,sz21:z,sz23:le,sz31:B,sz33:V,t:K.t,tc:ue,gsto:K.gsto,mo:K.mo,mdot:K.mdot,no:K.no,nodeo:K.nodeo,nodedot:K.nodedot,xpidot:fe,z1:me,z3:he,z11:ge,z13:_e,z21:ve,z23:ye,z31:be,z33:xe,ecco:K.ecco,eccsq:Ae,em:b,argpm:w,inclm:E,mm:D,nm:O,nodem:T,irez:K.irez,atime:K.atime,d2201:K.d2201,d2211:K.d2211,d3210:K.d3210,d3222:K.d3222,d4410:K.d4410,d4422:K.d4422,d5220:K.d5220,d5232:K.d5232,d5421:K.d5421,d5433:K.d5433,dedt:K.dedt,didt:K.didt,dmdt:K.dmdt,dnodt:K.dnodt,domdt:K.domdt,del1:K.del1,del2:K.del2,del3:K.del3,xfact:K.xfact,xlamo:K.xlamo,xli:K.xli,xni:K.xni});K.irez=n.irez,K.atime=n.atime,K.d2201=n.d2201,K.d2211=n.d2211,K.d3210=n.d3210,K.d3222=n.d3222,K.d4410=n.d4410,K.d4422=n.d4422,K.d5220=n.d5220,K.d5232=n.d5232,K.d5421=n.d5421,K.d5433=n.d5433,K.dedt=n.dedt,K.didt=n.didt,K.dmdt=n.dmdt,K.dnodt=n.dnodt,K.domdt=n.domdt,K.del1=n.del1,K.del2=n.del2,K.del3=n.del3,K.xfact=n.xfact,K.xlamo=n.xlamo,K.xli=n.xli,K.xni=n.xni}K.isimp!==1&&(m=K.cc1*K.cc1,K.d2=4*Ee*G*m,H=K.d2*G*K.cc1/3,K.d3=(17*Ee+F)*H,K.d4=.5*H*Ee*G*(221*Ee+31*F)*K.cc1,K.t3cof=K.d2+2*m,K.t4cof=.25*(3*K.d3+K.cc1*(12*K.d2+10*m)),K.t5cof=.2*(3*K.d4+12*K.cc1*K.d3+6*K.d2*K.d2+15*m*(2*K.d2+m)))}ft(K,0),K.init=`n`}function mt(e,t){let n=e.substring(2,7),r=parseInt(e.substring(18,20),10),i=parseFloat(e.substring(20,32)),a=parseFloat(e.substring(33,43)),o=parseFloat(`${e.substring(44,45)}.${e.substring(45,50)}E${e.substring(50,52)}`),s=parseFloat(`${e.substring(53,54)}.${e.substring(54,59)}E${e.substring(59,61)}`),c=parseFloat(t.substring(8,16))*He,l=parseFloat(t.substring(17,25))*He,u=parseFloat(`.${t.substring(26,33).replace(/\s/g,`0`)}`),d=parseFloat(t.substring(34,42))*He,f=parseFloat(t.substring(43,51))*He,p=parseFloat(t.substring(52,63))/et;a/=et*1440,o/=et*1440*1440;let m=r<57?r+2e3:r+1900,{mon:h,day:g,hr:_,minute:v,sec:y}=tt(m,i),b=rt(m,h,g,_,v,y),x={error:0,satnum:n,epochyr:r,epochdays:i,ndot:a,nddot:o,bstar:s,inclo:c,nodeo:l,ecco:u,argpo:d,mo:f,no:p,jdsatepoch:b};return pt(x,{opsmode:`i`,satn:x.satnum,epoch:x.jdsatepoch-2433281.5,xbstar:x.bstar,xecco:x.ecco,xargpo:x.argpo,xinclo:x.inclo,xmo:x.mo,xno:x.no,xnodeo:x.nodeo}),x}function ht(e,...t){return ft(e,(rt(...t)-e.jdsatepoch)*Ue)}function gt(e,t){let n=6378.137,r=Math.sqrt(e.x*e.x+e.y*e.y),i=(n-6356.7523142)/n,a=2*i-i*i,o=((Math.atan2(e.y,e.x)-t+Be)%Ve+Ve)%Ve-Be,s=0,c=Math.atan2(e.z,Math.sqrt(e.x*e.x+e.y*e.y)),l;for(;s++<20;)l=1/Math.sqrt(1-Math.sin(c)*Math.sin(c)*a),c=Math.atan2(e.z+n*l*a*Math.sin(c),r);let u=r/Math.cos(c)-n*l;return{longitude:o,latitude:c,height:u}}3*Float64Array.BYTES_PER_ELEMENT;function _t(e,t){return function(){return e.apply(t,arguments)}}var{toString:vt}=Object.prototype,{getPrototypeOf:yt}=Object,{iterator:bt,toStringTag:xt}=Symbol,St=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ct=(e,t)=>{let n=e,r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),St(n,t))return!0;n=yt(n)}return!1},wt=(e,t)=>e!=null&&Ct(e,t)?e[t]:void 0,Tt=(e=>t=>{let n=vt.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Et=e=>(e=e.toLowerCase(),t=>Tt(t)===e),Dt=e=>t=>typeof t===e,{isArray:Ot}=Array,kt=Dt(`undefined`);function At(e){return e!==null&&!kt(e)&&e.constructor!==null&&!kt(e.constructor)&&Pt(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var jt=Et(`ArrayBuffer`);function Mt(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&jt(e.buffer),t}var Nt=Dt(`string`),Pt=Dt(`function`),Ft=Dt(`number`),It=e=>typeof e==`object`&&!!e,Lt=e=>e===!0||e===!1,Rt=e=>{if(!It(e))return!1;let t=yt(e);return(t===null||t===Object.prototype||yt(t)===null)&&!Ct(e,xt)&&!Ct(e,bt)},zt=e=>{if(!It(e)||At(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Bt=Et(`Date`),Vt=Et(`File`),Ht=e=>!!(e&&e.uri!==void 0),Ut=e=>e&&e.getParts!==void 0,Wt=Et(`Blob`),Gt=Et(`FileList`),Kt=e=>It(e)&&Pt(e.pipe);function qt(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var Jt=qt(),Yt=Jt.FormData===void 0?void 0:Jt.FormData,Xt=e=>{if(!e)return!1;if(Yt&&e instanceof Yt)return!0;let t=yt(e);if(!t||t===Object.prototype||!Pt(e.append))return!1;let n=Tt(e);return n===`formdata`||n===`object`&&Pt(e.toString)&&e.toString()===`[object FormData]`},Zt=Et(`URLSearchParams`),[Qt,$t,en,tn]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(Et),nn=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function rn(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),Ot(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}var on=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,sn=e=>!kt(e)&&e!==on;function cn(...e){let{caseless:t,skipUndefined:n}=sn(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&an(r,i)||i,o=St(r,a)?r[a]:void 0;Rt(o)&&Rt(e)?r[a]=cn(o,e):Rt(e)?r[a]=cn({},e):Ot(e)?r[a]=e.slice():(!n||!kt(e))&&(r[a]=e)};for(let t=0,n=e.length;t(rn(t,(t,r)=>{n&&Pt(t)?Object.defineProperty(e,r,{__proto__:null,value:_t(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),un=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),dn=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},fn=(e,t,n,r)=>{let i,a,o,s={};if(t||={},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-->0;)o=i[a],(!r||r(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=n!==!1&&yt(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},pn=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},mn=e=>{if(!e)return null;if(Ot(e))return e;let t=e.length;if(!Ft(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},hn=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&yt(Uint8Array)),gn=(e,t)=>{let n=(e&&e[bt]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},_n=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},vn=Et(`HTMLFormElement`),yn=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:bn}=Object.prototype,xn=Et(`RegExp`),Sn=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};rn(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},Cn=e=>{Sn(e,(t,n)=>{if(Pt(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(Pt(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},wn=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return Ot(e)?r(e):r(String(e).split(t)),n},Tn=()=>{},En=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Dn(e){return!!(e&&Pt(e.append)&&e[xt]===`FormData`&&e[bt])}var On=e=>{let t=new WeakSet,n=e=>{if(It(e)){if(t.has(e))return;if(At(e))return e;if(!(`toJSON`in e)){t.add(e);let r=Ot(e)?[]:{};return rn(e,(e,t)=>{let i=n(e);!kt(i)&&(r[t]=i)}),t.delete(e),r}}return e};return n(e)},kn=Et(`AsyncFunction`),An=e=>e&&(It(e)||Pt(e))&&Pt(e.then)&&Pt(e.catch),jn=((e,t)=>e?setImmediate:t?((e,t)=>(on.addEventListener(`message`,({source:n,data:r})=>{n===on&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),on.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,Pt(on.postMessage)),Mn=typeof queueMicrotask<`u`?queueMicrotask.bind(on):typeof process<`u`&&process.nextTick||jn,Nn=e=>e!=null&&Pt(e[bt]),q={isArray:Ot,isArrayBuffer:jt,isBuffer:At,isFormData:Xt,isArrayBufferView:Mt,isString:Nt,isNumber:Ft,isBoolean:Lt,isObject:It,isPlainObject:Rt,isEmptyObject:zt,isReadableStream:Qt,isRequest:$t,isResponse:en,isHeaders:tn,isUndefined:kt,isDate:Bt,isFile:Vt,isReactNativeBlob:Ht,isReactNative:Ut,isBlob:Wt,isRegExp:xn,isFunction:Pt,isStream:Kt,isURLSearchParams:Zt,isTypedArray:hn,isFileList:Gt,forEach:rn,merge:cn,extend:ln,trim:nn,stripBOM:un,inherits:dn,toFlatObject:fn,kindOf:Tt,kindOfTest:Et,endsWith:pn,toArray:mn,forEachEntry:gn,matchAll:_n,isHTMLForm:vn,hasOwnProperty:St,hasOwnProp:St,hasOwnInPrototypeChain:Ct,getSafeProp:wt,reduceDescriptors:Sn,freezeMethods:Cn,toObjectSet:wn,toCamelCase:yn,noop:Tn,toFiniteNumber:En,findKey:an,global:on,isContextDefined:sn,isSpecCompliantForm:Dn,toJSONObject:On,isAsyncFn:kn,isThenable:An,setImmediate:jn,asap:Mn,isIterable:Nn,isSafeIterable:e=>e!=null&&Ct(e,bt)&&Nn(e)},Pn=q.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Fn=e=>{let t={},n,r,i;return e&&e.split(` +`).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!(!n||t[n]&&Pn[n])&&(n===`set-cookie`?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+`, `+r:r)}),t};function In(e){let t=0,n=e.length;for(;tt;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}var Ln=RegExp(`[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+`,`g`),Rn=RegExp(`[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+`,`g`);function zn(e,t){return q.isArray(e)?e.map(e=>zn(e,t)):In(String(e).replace(t,``))}var Bn=e=>zn(e,Ln),Vn=e=>zn(e,Rn);function Hn(e){let t=Object.create(null);return q.forEach(e.toJSON(),(e,n)=>{t[n]=Vn(e)}),t}var Un=Symbol(`internals`);function Wn(e){return e&&String(e).trim().toLowerCase()}function Gn(e){return e===!1||e==null?e:q.isArray(e)?e.map(Gn):Bn(String(e))}function Kn(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}var qn=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Jn(e,t,n,r,i){if(q.isFunction(r))return r.call(this,t,n);if(i&&(t=n),q.isString(t)){if(q.isString(r))return t.indexOf(r)!==-1;if(q.isRegExp(r))return r.test(t)}}function Yn(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function Xn(e,t){let n=q.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var Zn=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=Wn(t);if(!i)return;let a=q.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=Gn(e))}let a=(e,t)=>q.forEach(e,(e,n)=>i(e,n,t));if(q.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(q.isString(e)&&(e=e.trim())&&!qn(e))a(Fn(e),t);else if(q.isObject(e)&&q.isSafeIterable(e)){let n=Object.create(null),r,i;for(let t of e){if(!q.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);i=t[0],q.hasOwnProp(n,i)?(r=n[i],n[i]=q.isArray(r)?[...r,t[1]]:[r,t[1]]):n[i]=t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=Wn(e),e){let n=q.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return Kn(e);if(q.isFunction(t))return t.call(this,e,n);if(q.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=Wn(e),e){let n=q.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||Jn(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=Wn(e),e){let i=q.findKey(n,e);i&&(!t||Jn(n,n[i],i,t))&&(delete n[i],r=!0)}}return q.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||Jn(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return q.forEach(this,(r,i)=>{let a=q.findKey(n,i);if(a){t[a]=Gn(r),delete t[i];return}let o=e?Yn(i):String(i).trim();o!==i&&delete t[i],t[o]=Gn(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return q.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&q.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(` +`)}getSetCookie(){return this.get(`set-cookie`)||[]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[Un]=this[Un]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=Wn(e);t[r]||(Xn(n,e),t[r]=!0)}return q.isArray(e)?e.forEach(r):r(e),this}};Zn.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),q.reduceDescriptors(Zn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),q.freezeMethods(Zn);var Qn=`[REDACTED ****]`;function $n(e){if(q.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(q.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function er(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||q.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof Zn&&(e=e.toJSON()),r.push(e);let t;if(q.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);q.isUndefined(r)||(t[n]=r)});else{if(!q.isPlainObject(e)&&$n(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?Qn:i(a);q.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}var J=class e extends Error{static from(t,n,r,i,a,o){let s=new e(t.message,n||t.code,r,i,a);return Object.defineProperty(s,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),s.name=t.name,t.status!=null&&s.status==null&&(s.status=t.status),o&&Object.assign(s,o),s}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&q.hasOwnProp(e,`redact`)?e.redact:void 0,n=q.isArray(t)&&t.length>0?er(e,t):q.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};J.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,J.ERR_BAD_OPTION=`ERR_BAD_OPTION`,J.ECONNABORTED=`ECONNABORTED`,J.ETIMEDOUT=`ETIMEDOUT`,J.ECONNREFUSED=`ECONNREFUSED`,J.ERR_NETWORK=`ERR_NETWORK`,J.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,J.ERR_DEPRECATED=`ERR_DEPRECATED`,J.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,J.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,J.ERR_CANCELED=`ERR_CANCELED`,J.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,J.ERR_INVALID_URL=`ERR_INVALID_URL`,J.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function tr(e){return q.isPlainObject(e)||q.isArray(e)}function nr(e){return q.endsWith(e,`[]`)?e.slice(0,-2):e}function rr(e,t,n){return e?e.concat(t).map(function(e,t){return e=nr(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function ir(e){return q.isArray(e)&&!e.some(tr)}var ar=q.toFlatObject(q,{},null,function(e){return/^is[A-Z]/.test(e)});function or(e,t,n){if(!q.isObject(e))throw TypeError(`target must be an object`);t||=new FormData,n=q.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!q.isUndefined(t[e])});let r=n.metaTokens,i=n.visitor||m,a=n.dots,o=n.indexes,s=n.Blob||typeof Blob<`u`&&Blob,c=n.maxDepth===void 0?100:n.maxDepth,l=s&&q.isSpecCompliantForm(t),u=[];if(!q.isFunction(i))throw TypeError(`visitor must be a function`);function d(e){if(e===null)return``;if(q.isDate(e))return e.toISOString();if(q.isBoolean(e))return e.toString();if(!l&&q.isBlob(e))throw new J(`Blob is not supported. Use a Buffer instead.`);if(q.isArrayBuffer(e)||q.isTypedArray(e)){if(l&&typeof s==`function`)return new s([e]);if(typeof Buffer<`u`)return Buffer.from(e);throw new J(`Blob is not supported. Use a Buffer instead.`,J.ERR_NOT_SUPPORT)}return e}function f(e){if(e>c)throw new J(`Object is too deeply nested (`+e+` levels). Max depth: `+c,J.ERR_FORM_DATA_DEPTH_EXCEEDED)}function p(e,t){if(c===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!q.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),f(t+n.length-1),r})}function m(e,n,i){let s=e;if(q.isReactNative(t)&&q.isReactNativeBlob(e))return t.append(rr(i,n,a),d(e)),!1;if(e&&!i&&typeof e==`object`){if(q.endsWith(n,`{}`))n=r?n:n.slice(0,-2),e=p(e,1);else if(q.isArray(e)&&ir(e)||(q.isFileList(e)||q.endsWith(n,`[]`))&&(s=q.toArray(e)))return n=nr(n),s.forEach(function(e,r){!(q.isUndefined(e)||e===null)&&t.append(o===!0?rr([n],r,a):o===null?n:n+`[]`,d(e))}),!1}return tr(e)?!0:(t.append(rr(i,n,a),d(e)),!1)}let h=Object.assign(ar,{defaultVisitor:m,convertValue:d,isVisitable:tr});function g(e,n,r=0){if(!q.isUndefined(e)){if(f(r),u.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));u.push(e),q.forEach(e,function(e,a){(!(q.isUndefined(e)||e===null)&&i.call(t,e,q.isString(a)?a.trim():a,n,h))===!0&&g(e,n?n.concat(a):[a],r+1)}),u.pop()}}if(!q.isObject(e))throw TypeError(`data must be an object`);return g(e),t}function sr(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function cr(e,t){this._pairs=[],e&&or(e,this,t)}var lr=cr.prototype;lr.append=function(e,t){this._pairs.push([e,t])},lr.toString=function(e){let t=e?t=>e.call(this,t,sr):sr;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function ur(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function dr(e,t,n){if(!t)return e;e||=``;let r=q.isFunction(n)?{serialize:n}:n,i=q.getSafeProp(r,`encode`)||ur,a=q.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):q.isURLSearchParams(t)?t.toString():new cr(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var fr=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&=[]}forEach(e){q.forEach(this.handlers,function(t){t!==null&&e(t)})}},pr={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},mr={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:cr,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},hr=s({hasBrowserEnv:()=>gr,hasStandardBrowserEnv:()=>vr,hasStandardBrowserWebWorkerEnv:()=>yr,navigator:()=>_r,origin:()=>br}),gr=typeof window<`u`&&typeof document<`u`,_r=typeof navigator==`object`&&navigator||void 0,vr=gr&&(!_r||[`ReactNative`,`NativeScript`,`NS`].indexOf(_r.product)<0),yr=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,br=gr&&window.location.href||`http://localhost`,xr={...hr,...mr};function Sr(e,t){return or(e,new xr.classes.URLSearchParams,{visitor:function(e,t,n,r){return xr.isNode&&q.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}var Cr=100;function wr(e){if(e>Cr)throw new J(`FormData field is too deeply nested (`+e+` levels). Max depth: `+Cr,J.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Tr(e){let t=[],n=/\w+|\[(\w*)]/g,r;for(;(r=n.exec(e))!==null;)wr(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function Er(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r=e.length;return a=!a&&q.isArray(r)?r.length:a,s?(q.hasOwnProp(r,a)?r[a]=q.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!q.hasOwnProp(r,a)||!q.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&q.isArray(r[a])&&(r[a]=Er(r[a])),!o)}if(q.isFormData(e)&&q.isFunction(e.entries)){let n={};return q.forEachEntry(e,(e,r)=>{t(Tr(e),r,n,0)}),n}return null}var Or=(e,t)=>e!=null&&q.hasOwnProp(e,t)?e[t]:void 0;function kr(e,t,n){if(q.isString(e))try{return(t||JSON.parse)(e),q.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}var Ar={transitional:pr,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=q.isObject(e);if(i&&q.isHTMLForm(e)&&(e=new FormData(e)),q.isFormData(e))return r?JSON.stringify(Dr(e)):e;if(q.isArrayBuffer(e)||q.isBuffer(e)||q.isStream(e)||q.isFile(e)||q.isBlob(e)||q.isReadableStream(e))return e;if(q.isArrayBufferView(e))return e.buffer;if(q.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){let t=Or(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return Sr(e,t).toString();if((a=q.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=Or(this,`env`),r=n&&n.FormData;return or(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),kr(e)):e}],transformResponse:[function(e){let t=Or(this,`transitional`)||Ar.transitional,n=t&&t.forcedJSONParsing,r=Or(this,`responseType`),i=r===`json`;if(q.isResponse(e)||q.isReadableStream(e))return e;if(e&&q.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,Or(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?J.from(e,J.ERR_BAD_RESPONSE,this,null,Or(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:xr.classes.FormData,Blob:xr.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};q.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`],e=>{Ar.headers[e]={}});function jr(e,t){let n=this||Ar,r=t||n,i=Zn.from(r.headers),a=r.data;return q.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function Mr(e){return!!(e&&e.__CANCEL__)}var Nr=class extends J{constructor(e,t,n){super(e??`canceled`,J.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function Pr(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new J(`Request failed with status code `+n.status,n.status>=400&&n.status<500?J.ERR_BAD_REQUEST:J.ERR_BAD_RESPONSE,n.config,n.request,n))}function Fr(e){let t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||``}function Ir(e,t){e||=10;let n=Array(e),r=Array(e),i=0,a=0,o;return t=t===void 0?1e3:t,function(s){let c=Date.now(),l=r[a];o||=c,n[i]=s,r[i]=c;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i)]}var Rr=(e,t,n=3)=>{let r=0,i=Ir(50,250);return Lr(n=>{if(!n||typeof n.loaded!=`number`)return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=o==null?a:Math.min(a,o),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},zr=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Br=e=>(...t)=>q.asap(()=>e(...t)),Vr=xr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,xr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(xr.origin),xr.navigator&&/(msie|trident)/i.test(xr.navigator.userAgent)):()=>!0,Hr=xr.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];q.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),q.isString(r)&&s.push(`path=${r}`),q.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),q.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;ne instanceof Zn?{...e}:e;function Qr(e,t){e||={},t||={};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return q.isPlainObject(e)&&q.isPlainObject(t)?q.merge.call({caseless:r},e,t):q.isPlainObject(t)?q.merge({},t):q.isArray(t)?t.slice():t}function i(e,t,n,i){if(!q.isUndefined(t))return r(e,t,n,i);if(!q.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!q.isUndefined(t))return r(void 0,t)}function o(e,t){if(!q.isUndefined(t))return r(void 0,t);if(!q.isUndefined(e))return r(void 0,e)}function s(n){let r=q.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!q.isUndefined(r))if(q.isPlainObject(r)){if(q.hasOwnProp(r,n))return r[n]}else return;let i=q.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(q.isPlainObject(i)&&q.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(q.hasOwnProp(t,a))return r(n,i);if(q.hasOwnProp(e,a))return r(void 0,n)}let l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(Zr(e),Zr(t),n,!0)};return q.forEach(Object.keys({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=q.hasOwnProp(l,r)?l[r]:i,o=a(q.hasOwnProp(e,r)?e[r]:void 0,q.hasOwnProp(t,r)?t[r]:void 0,r);q.isUndefined(o)&&a!==c||(n[r]=o)}),q.hasOwnProp(t,`validateStatus`)&&q.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(q.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}var $r=[`content-type`,`content-length`];function ei(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t||{}).forEach(([t,n])=>{$r.includes(t.toLowerCase())&&e.set(t,n)})}var ti=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function ni(e){let t=Qr({},e),n=e=>q.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=Zn.from(s),t.url=dr(Xr(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let t=q.getSafeProp(c,`username`)||``,n=q.getSafeProp(c,`password`)||``;try{s.set(`Authorization`,`Basic `+btoa(t+`:`+(n?ti(n):``)))}catch(t){throw J.from(t,J.ERR_BAD_OPTION_VALUE,e)}}if(q.isFormData(r)&&(xr.hasStandardBrowserEnv||xr.hasStandardBrowserWebWorkerEnv||q.isReactNative(r)?s.setContentType(void 0):q.isFunction(r.getHeaders)&&ei(s,r.getHeaders(),n(`formDataHeaderPolicy`))),xr.hasStandardBrowserEnv&&(q.isFunction(i)&&(i=i(t)),i===!0||i==null&&Vr(t.url))){let e=a&&o&&Hr.read(o);e&&s.set(a,e)}return t}var ri=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=ni(e),i=r.data,a=Zn.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p;function m(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let h=new XMLHttpRequest;h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout;function g(){if(!h)return;let r=Zn.from(`getAllResponseHeaders`in h&&h.getAllResponseHeaders());Pr(function(e){t(e),m()},function(e){n(e),m()},{data:!o||o===`text`||o===`json`?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:r,config:e,request:h}),h=null}`onloadend`in h?h.onloadend=g:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.startsWith(`file:`))||setTimeout(g)},h.onabort=function(){h&&=(n(new J(`Request aborted`,J.ECONNABORTED,e,h)),m(),null)},h.onerror=function(t){let r=new J(t&&t.message?t.message:`Network Error`,J.ERR_NETWORK,e,h);r.event=t||null,n(r),m(),h=null},h.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||pr;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new J(t,i.clarifyTimeoutError?J.ETIMEDOUT:J.ECONNABORTED,e,h)),m(),h=null},i===void 0&&a.setContentType(null),`setRequestHeader`in h&&q.forEach(Hn(a),function(e,t){h.setRequestHeader(t,e)}),q.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),o&&o!==`json`&&(h.responseType=r.responseType),c&&([d,p]=Rr(c,!0),h.addEventListener(`progress`,d)),s&&h.upload&&([u,f]=Rr(s),h.upload.addEventListener(`progress`,u),h.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{h&&=(n(!t||t.type?new Nr(null,e,h):t),h.abort(),m(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let _=Fr(r.url);if(_&&!xr.protocols.includes(_)){n(new J(`Unsupported protocol `+_+`:`,J.ERR_BAD_REQUEST,e)),m();return}h.send(i||null)})},ii=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof J?t:new Nr(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new J(`timeout of ${t}ms exceeded`,J.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>e.addEventListener(`abort`,i,{once:!0}));let{signal:s}=n;return s.unsubscribe=()=>q.asap(o),s},ai=function*(e,t){let n=e.byteLength;if(!t||n{let i=oi(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},li=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,ui=(e,t,n)=>t+2e>=2&&r.charCodeAt(e-2)===37&&r.charCodeAt(e-1)===51&&(r.charCodeAt(e)===68||r.charCodeAt(e)===100);i>=0&&(r.charCodeAt(i)===61?(n++,i--):a(i)&&(n++,i-=3)),n===1&&i>=0&&(r.charCodeAt(i)===61||a(i))&&n++;let o=Math.floor(e/4)*3-(n||0);return o>0?o:0}let i=0;for(let e=0,t=r.length;e=55296&&n<=56319&&e+1=56320&&t<=57343?(i+=4,e++):i+=3}else i+=3}return i}var Y=`1.18.1`,fi=64*1024,{isFunction:pi}=q,mi=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),hi=e=>{if(!q.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},gi=(e,...t)=>{try{return!!e(...t)}catch{return!1}},_i=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},vi=e=>{let t=q.global!==void 0&&q.global!==null?q.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=q.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?pi(i):typeof fetch==`function`,c=pi(a),l=pi(o);if(!s)return!1;let u=s&&pi(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&gi(()=>{let e=!1,t=new a(xr.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&gi(()=>q.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new J(`Response type '${e}' is not supported`,J.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(q.isBlob(e))return e.size;if(q.isSpecCompliantForm(e))return(await new a(xr.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(q.isArrayBufferView(e)||q.isArrayBuffer(e))return e.byteLength;if(q.isURLSearchParams(e)&&(e+=``),q.isString(e))return(await d(e)).byteLength},g=async(e,t)=>q.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:T}=ni(e),E=q.isNumber(w)&&w>-1,D=q.isNumber(T)&&T>-1,O=t=>q.hasOwnProp(e,t)?e[t]:void 0,k=i||fetch;b=b?(b+``).toLowerCase():`text`;let A=ii([l,d&&d.toAbortSignal()],_),j=null,M=A&&A.unsubscribe&&(()=>{A.unsubscribe()}),N,P=null,ee=()=>new J(`Request body larger than maxBodyLength limit`,J.ERR_BAD_REQUEST,e,j);try{let i,l=O(`auth`);if(l&&(i={username:q.getSafeProp(l,`username`)||``,password:q.getSafeProp(l,`password`)||``}),_i(t)){let e=new URL(t,xr.origin);!i&&(e.username||e.password)&&(i={username:hi(e.username),password:hi(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa(mi((i.username||``)+`:`+(i.password||``))))),E&&typeof t==`string`&&t.startsWith(`data:`)&&di(t)>w)throw new J(`maxContentLength size of `+w+` exceeded`,J.ERR_BAD_RESPONSE,e,j);if(D&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(N=e,e>T))throw ee()}let d=D&&(q.isReadableStream(s)||q.isStream(s)),_=(e,t,n)=>ci(e,fi,e=>{if(D&&e>T)throw P=ee();t&&t(e)},n);if(f&&n!==`get`&&n!==`head`&&(y||d)){if(N??=await g(x,s),N!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(q.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&zr(N,Rr(Br(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new J(`Stream request bodies are not supported by the current fetch implementation`,J.ERR_NOT_SUPPORT,e,j);q.isString(S)||(S=S?`include`:`omit`);let te=c&&`credentials`in a.prototype;if(q.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/`+Y,!1);let ne={...C,signal:A,method:n.toUpperCase(),headers:Hn(x.normalize()),body:s,duplex:`half`,credentials:te?S:void 0};j=c&&new a(t,ne);let F=await(c?k(j,C):k(t,ne)),re=Zn.from(F.headers);if(E){let t=q.toFiniteNumber(re.getContentLength());if(t!=null&&t>w)throw new J(`maxContentLength size of `+w+` exceeded`,J.ERR_BAD_RESPONSE,e,j)}let ie=p&&(b===`stream`||b===`response`);if(p&&F.body&&(v||E||ie&&M)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=F[e]});let n=q.toFiniteNumber(re.getContentLength()),[r,i]=v&&zr(n,Rr(Br(v),!0))||[],a=0;F=new o(ci(F.body,fi,t=>{if(E&&(a=t,a>w))throw new J(`maxContentLength size of `+w+` exceeded`,J.ERR_BAD_RESPONSE,e,j);r&&r(t)},()=>{i&&i(),M&&M()}),t)}b||=`text`;let I=await m[q.findKey(m,b)||`text`](F,e);if(E&&!p&&!ie){let t;if(I!=null&&(typeof I.byteLength==`number`?t=I.byteLength:typeof I.size==`number`?t=I.size:typeof I==`string`&&(t=typeof r==`function`?new r().encode(I).byteLength:I.length)),typeof t==`number`&&t>w)throw new J(`maxContentLength size of `+w+` exceeded`,J.ERR_BAD_RESPONSE,e,j)}return!ie&&M&&M(),await new Promise((t,n)=>{Pr(t,n,{data:I,headers:Zn.from(F.headers),status:F.status,statusText:F.statusText,config:e,request:j})})}catch(t){if(M&&M(),A&&A.aborted&&A.reason instanceof J){let n=A.reason;throw n.config=e,j&&(n.request=j),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(P)throw j&&!P.request&&(P.request=j),P;if(t instanceof J)throw j&&!t.request&&(t.request=j),t;if(t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)){let n=new J(`Network Error`,J.ERR_NETWORK,e,j,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw J.from(t,t&&t.code,e,j,t&&t.response)}}},yi=new Map,bi=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=yi;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:vi(t)),l=c;return c};bi();var xi={http:null,xhr:ri,fetch:{get:bi}};q.forEach(xi,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var Si=e=>`- ${e}`,Ci=e=>q.isFunction(e)||e===null||e===!1;function wi(e,t){e=q.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new J(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since : +`+e.map(Si).join(` +`):` `+Si(e[0]):`as no adapter specified`),J.ERR_NOT_SUPPORT)}return i}var Ti={getAdapter:wi,adapters:xi};function Ei(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Nr(null,e)}function Di(e){return Ei(e),e.headers=Zn.from(e.headers),e.data=jr.call(e,e.transformRequest),[`post`,`put`,`patch`].indexOf(e.method)!==-1&&e.headers.setContentType(`application/x-www-form-urlencoded`,!1),Ti.getAdapter(e.adapter||Ar.adapter,e)(e).then(function(t){Ei(e),e.response=t;try{t.data=jr.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=Zn.from(t.headers),t},function(t){if(!Mr(t)&&(Ei(e),t&&t.response)){e.response=t.response;try{t.response.data=jr.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=Zn.from(t.response.headers)}return Promise.reject(t)})}var Oi={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{Oi[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});var ki={};Oi.transitional=function(e,t,n){function r(e,t){return`[Axios v`+Y+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new J(r(i,` has been removed`+(t?` in `+t:``)),J.ERR_DEPRECATED);return t&&!ki[i]&&(ki[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),!e||e(n,i,a)}},Oi.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function Ai(e,t,n){if(typeof e!=`object`||!e)throw new J(`options must be an object`,J.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-->0;){let a=r[i],o=Object.prototype.hasOwnProperty.call(t,a)?t[a]:void 0;if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new J(`option `+a+` must be `+n,J.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new J(`Unknown option `+a,J.ERR_BAD_OPTION)}}var ji={assertOptions:Ai,validators:Oi},Mi=ji.validators,Ni=class{constructor(e){this.defaults=e||{},this.interceptors={request:new fr,response:new fr}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=(()=>{if(!t.stack)return``;let e=t.stack.indexOf(` +`);return e===-1?``:t.stack.slice(e+1)})();try{if(!e.stack)e.stack=n;else if(n){let t=n.indexOf(` +`),r=t===-1?-1:n.indexOf(` +`,t+1),i=r===-1?``:n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+=` +`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=Qr(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&ji.assertOptions(n,{silentJSONParsing:Mi.transitional(Mi.boolean),forcedJSONParsing:Mi.transitional(Mi.boolean),clarifyTimeoutError:Mi.transitional(Mi.boolean),legacyInterceptorReqResOrdering:Mi.transitional(Mi.boolean),advertiseZstdAcceptEncoding:Mi.transitional(Mi.boolean),validateStatusUndefinedResolves:Mi.transitional(Mi.boolean)},!1),r!=null&&(q.isFunction(r)?t.paramsSerializer={serialize:r}:ji.assertOptions(r,{encode:Mi.function,serialize:Mi.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),ji.assertOptions(t,{baseUrl:Mi.spelling(`baseURL`),withXsrfToken:Mi.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&q.merge(i.common,i[t.method]);i&&q.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=Zn.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||pr;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[Di.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u{if(!n._listeners)return;let t=n._listeners.length;for(;t-->0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new Nr(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function Fi(e){return function(t){return e.apply(null,t)}}function Ii(e){return q.isObject(e)&&e.isAxiosError===!0}var Li={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Li).forEach(([e,t])=>{Li[t]=e});function Ri(e){let t=new Ni(e),n=_t(Ni.prototype.request,t);return q.extend(n,Ni.prototype,t,{allOwnKeys:!0}),q.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return Ri(Qr(e,t))},n}var zi=Ri(Ar);zi.Axios=Ni,zi.CanceledError=Nr,zi.CancelToken=Pi,zi.isCancel=Mr,zi.VERSION=Y,zi.toFormData=or,zi.AxiosError=J,zi.Cancel=zi.CanceledError,zi.all=function(e){return Promise.all(e)},zi.spread=Fi,zi.isAxiosError=Ii,zi.mergeConfig=Qr,zi.AxiosHeaders=Zn,zi.formToJSON=e=>Dr(q.isHTMLForm(e)?new FormData(e):e),zi.getAdapter=Ti.getAdapter,zi.HttpStatusCode=Li,zi.default=zi;var Bi=e=>{let t=e?.split(` +`),n={};for(let e=0;e{zi.get(`https://ephemerides.planet-labs.com/planet_mc.tle`).then(e=>{r(e.data)})},[]),(0,x.useEffect)(()=>{let e=setTimeout(()=>{t(!!n)},333);return()=>clearTimeout(e)},[n]);let i=(0,x.useMemo)(()=>{if(!n)return null;let e=Bi(n),t=e[`FLOCK-4Y`];if(!t||Object.keys(t).length===0){let n=Object.keys(e);for(let r of n){let n=e[r];if(n&&Object.keys(n).length>0){t=n;break}}if(!t||Object.keys(t).length===0)return null}let r=Object.keys(t)[0];return{satelliteId:r,tle:t[r]}},[n]);if(i){let{tle:e}=i,t=mt(e.split(` +`)[0].trim(),e.split(` +`)[1].trim());for(let e=0;ee(t.default,1));var c=t(import.meta.url),l=c("node:worker_threads");global.Worker=l.Worker,a=!l.isMainThread,s=a&&l.workerData==`em-pthread`}var u=(e,t)=>{throw t},d=import.meta.url;if(o){var f=c("node:fs");d.startsWith(`file:`)&&c("node:path").dirname(c("node:url").fileURLToPath(d))+``,process.argv.length>1&&process.argv[1].replace(/\\/g,`/`),process.argv.slice(2),u=(e,t)=>{throw process.exitCode=e,t}}else if(i||a)try{new URL(`.`,d).href}catch{}var p=console.log.bind(console),m=console.error.bind(console);if(o){var ee=c("node:util"),te=e=>typeof e==`object`?ee.inspect(e):e;p=(...e)=>f.writeSync(1,e.map(te).join(` `)+` +`),m=(...e)=>f.writeSync(2,e.map(te).join(` `)+` +`)}var h=p,g=m,ne,_,v=!1,y;function b(){z.buffer!=S.buffer&&O()}function re(e){for(var t=0,n=e.length,r=new Uint8Array(n),i;t>8&i;return r}var x,ie;if(o&&s){globalThis.self=globalThis;var ae=l.parentPort;globalThis.postMessage||(ae.on(`message`,e=>globalThis.onmessage?.({data:e})),globalThis.postMessage=e=>ae.postMessage(e)),process.on(`uncaughtException`,e=>{postMessage({cmd:`uncaughtException`,error:e}),process.exit(1)})}var oe;if(s){var se=!1;self.onunhandledrejection=e=>{throw e.reason||e};function e(t){try{var n=t.data,i=n.cmd;if(i===`load`){let t=[];self.onmessage=e=>t.push(e),oe=()=>{postMessage({cmd:`loaded`});for(let n of t)e(n);self.onmessage=e};for(let e of n.handlers)(!r[e]||r[e].proxy)&&(r[e]=(...t)=>{postMessage({cmd:`callHandler`,handler:e,args:t})},e==`print`&&(h=r[e]),e==`printErr`&&(g=r[e]));z=n.wasmMemory,O(),_=n.wasmModule,Se(),qt()}else if(i===`run`){Fe(n.pthread_ptr),Q(n.pthread_ptr,0,0,1,0,0),I.threadInitTLS(),V(n.pthread_ptr),se||=!0;try{Ie(n.start_routine,n.arg)}catch(e){if(e!=`unwind`)throw e}}else n.target===`setimmediate`||(i===`checkMailbox`?se&&H():i&&(g(`worker: received unknown command ${i}`),g(n)))}catch(e){throw Et(),e}}self.onmessage=e}var S,C,w,T,ce,E,le=!1,D=!1;function O(){var e=z.buffer;r.HEAP8=S=new Int8Array(e),new Int16Array(e),C=new Uint8Array(e),new Uint16Array(e),w=new Int32Array(e),T=new Uint32Array(e),new Float32Array(e),r.HEAPF64=ce=new Float64Array(e),E=new BigInt64Array(e),new BigUint64Array(e)}function ue(){if(!s){if(r.wasmMemory)z=r.wasmMemory;else{var e=r.INITIAL_MEMORY||16777216;z=new WebAssembly.Memory({initial:e/65536,maximum:32768,shared:!0})}O()}}function de(){if(r.preRun)for(typeof r.preRun==`function`&&(r.preRun=[r.preRun]);r.preRun.length;)Oe(r.preRun.shift());Ee(De)}function fe(){if(le=!0,s)return oe();$.s()}function pe(){s||(Tt(),ft(),I.terminateAllThreads(),D=!0)}function me(){if(!s){if(r.postRun)for(typeof r.postRun==`function`&&(r.postRun=[r.postRun]);r.postRun.length;)Pe(r.postRun.shift());Ee(Ne)}}function k(e){r.onAbort?.(e),e=`Aborted(`+e+`)`,g(e),v=!0,e+=`. Build with -sASSERTIONS for more info.`;var t=new WebAssembly.RuntimeError(e);throw ie?.(t),t}var he;function ge(){return re(`\0asm\0\0\0ÂĢ\`\0\`\0\0\`\`\0\`\`\0\`\`||\`|||\`~~\`\`\0\`\x07\0\`\0|\`\x07|\`~\`|\`|||\`||\`|\0\`~\`|\`|\`|\0\`~~\`\0rab\0\rac\0ad\0 +ae\0\0af\0\0ag\0 +ah\0ai\0aj\0\0ak\0\0al\0\0am\0an\0ao\0ap\0aq\0ar\0\0aa€€€‰‡\0\x07\x07\0\b\v\b\0\v\b\x07\x07\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\0\0\0\0\b\x07\f\f \0\0\0\0\0\0\0\0\0\0\0\0\0\0 +\v\0\0 p?\fA۠\vA\0\vA\0\vA\0\vA\0\vA\0\vA\0\vA\0\vA\0\vA\0\vA\0\vA\0\v\x07ÂĒ%s\0—t\0€u\0v\0|w\0vx\0py\0Iz\0lA\0iB\0C\0†D\0jE\0ŒF\0G\0qH\x000I\0wJ\0uK\0L\0M\0oN\0nO\0eP\0“Q\0‘R\0S\0ŽT\0‹U\0ŠV\0‰W\0ˆX\0‡Y\0…Z\0„_\0ƒ$\0‚aa\0\b– \0A\v’~}"{PzOyrxtsmkhgf•”\f +\xA0Ž\r‡ÃĻ\r\b# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v@# +E@ \0E\rAŒÃŊ\0-\0\0Aq!\v # +AFr@# +E Er@AÃŊ\0A\0# +AF\r!\v# +A \x1BE\r\v# +E@ \0A\bk!  \0Ak(\0"Axq"\0j!@@ Aq\r\0 AqE\r  (\0"k"AàÚ\0(\0I\r \0 j!\0@@@ AäÚ\0(\0G@ (\f! AÃŋM@  (\b"G\rAÐÚ\0AÐÚ\0(\0A~ Avwq6\0\f\v (!\x07  G@ (\b" 6\f  6\b\f\v (" Aj ("E\r Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v ("AqAG\rAØÚ\0 \x006\0  A~q6  \0Ar6  \x006\0\f\v  6\f  6\b\f\vA\0!\v \x07E\r\0@ ("At"(€| F@ A€Ãŧ\0j 6\0 \rAÔÚ\0AÔÚ\0(\0A~ wq6\0\f\v@  \x07(F@ \x07 6\f\v \x07 6\v E\r\v  \x076 ("@  6  6\v ("E\r\0  6  6\v  O\r\0 ("AqE\r\0@@@@ AqE@ AèÚ\0(\0F@AèÚ\0 6\0AÜÚ\0AÜÚ\0(\0 \0j"\x006\0  \0Ar6 AäÚ\0(\0G\rAØÚ\0A\x006\0AäÚ\0A\x006\0\f\vAäÚ\0(\0"\x07 F@AäÚ\0 6\0AØÚ\0AØÚ\0(\0 \0j"\x006\0  \0Ar6 \0 j \x006\0\f\v Axq \0j!\0 (\f! AÃŋM@  (\b"F@AÐÚ\0AÐÚ\0(\0A~ Avwq6\0\f\v  6\f  6\b\f\v (!\b  G@ (\b" 6\f  6\b\f\v (" Aj ("E\r Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v  A~q6  \0Ar6 \0 j \x006\0\f\vA\0!\v \bE\r\0@  ("At"(€|F@ A€Ãŧ\0j 6\0 \rAÔÚ\0AÔÚ\0(\0A~ wq6\0\f\v@  \b(F@ \b 6\f\v \b 6\v E\r\v  \b6 ("@  6  6\v ("E\r\0  6  6\v  \0Ar6 \0 j \x006\0  \x07G\r\0AØÚ\0 \x006\0\f\v \0AÃŋM@ \0AøqAøÚ\0j!A \0Avt"\0AÐÚ\0(\0"qE@AÐÚ\0 \0 r6\0 \f\v (\b\v!\0  6\b \0 6\f  6\f  \x006\b\f\vA! \0AÃŋÃŋÃŋ\x07M@ \0A& \0A\bvg"kvAq AtrA>s!\v  6 B\x007 AtA€Ãŧ\0j!@A t"AÔÚ\0(\0"qE@AÔÚ\0  r6\0  6\0A!A\b\f\v \0A AvkA\0 AG\x1Bt! (\0!@ "(Axq \0F\r Av At!Aq j"("\r\0\v  6A! !A\b\v!\0 "\f\v (\b" 6\f  6\bA!\0A\b!A\0\v!  j 6\0  6\f \0 j 6\0AðÚ\0AðÚ\0(\0Ak"\0A \0\x1B6\0\vAŒÃŊ\0-\0\0AqE\rAÃŊ\0\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\vË# +AF@#\v#\v(\0A\fk6\0#\v(\0"(\0!\0 (! (\b!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@ a!\v# +E Er@ \0  A\0# +AF\r!\0\v# +E@ \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b#\v#\v(\0A\fj6\0A\0\v›# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! (\b! (\f! (! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\x07\v# +E@ \0(\bAÃŋÃŋÃŋÃŋ\x07qAkA + \0,\0\v"A\0H"\x1B" \0(  \x1B"k O!\v@# +E@ @ E\r \0(\0 \0 A\0H\x1B! @  j  Ãŧ +\0\0\v  j!@ \0,\0\vA\0H@ \0 6\f\v \0 AÃŋ\0q:\0\v\v  jA\0:\0\0 \0\v  j k!\v# +E \x07Er@ \0      \`A\0# +AF\r\v\v# +E@ \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  6#\v#\v(\0Aj6\0A\0\v›\x07 # +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (\b! (\f! (! (! (!\b (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0! \v# +E@#\0A k"$\0#\0Ak"\x07$\0 \x07 A j"\b" Aj"k"A L@A ArgkAÑ lA\fv"At(ði K! +A=   +kAjH\r\v AÂŋ„=M@ AÎ\0M@ AÃŖ\0M@ A M@  A0r:\0\0 Aj\f\v  At/\xA0j;\0\0 Aj\f\v Aç\x07M@  AÃŋÃŋqAä\0n"A0r:\0\0   Aä\0lkAÃŋÃŋqAt/\xA0j;\0 Aj\f\v  ?\f\v AŸM@  AÎ\0n"A0j:\0\0 Aj  AÎ\0lk?\f\v  >\f\v AÃŋÁ×/M@ AÃŋÂŦÃĸM@  AÀ„=n"A0j:\0\0 Aj  AÀ„=lk>\f\v  =\f\v AÃŋ“ÃĢÜM@  A€Â×/n"A0j:\0\0 Aj  A€Â×/lk=\f\v  A€Â×/n"At/\xA0j;\0\0 Aj  A€Â×/lk=\v!A\0\v"6\f \x07 6\b  \x07(\b6\f  \x07(\f6 \x07Aj$\0 (\f" k"AÃˇÃŋÃŋÃŋ\x07I!\v@ # +AFr@  A +M# +\x1B!@# +E@ @ \0 :\0\v\f\v A\x07r"Aj!\v# +E Er@ 1A\0# +AF\r!\v# +E@ \0 AÃŋÃŋÃŋÃŋ\x07k6\b \0 6\0 \0 6 !\0\v\v# +E@  k!@  F\r\0 E\r\0 \0  Ãŧ +\0\0\v \0 jA\0:\0\0\f\v\v# +E@@\0\v\v# +E@ \b$\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  6  \b6#\v#\v(\0Aj6\0\vÑ# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! (\b! (\f! (! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@ a! \0,\0\v"A\0H"! \0(  \x1B!  \0(\bAÃŋÃŋÃŋÃŋ\x07qAkA + \x1B" kM!\x07\v@# +E@ \x07@ E\r \0(\0 \0 \x1B! @ @  j  Ãŧ +\0\0\v A\0  j K\x1BA\0  O\x1B j!\v @   Ãŧ +\0\0\v  j!@ \0,\0\vA\0H@ \0 6\f\v \0 AÃŋ\0q:\0\v\v  jA\0:\0\0\f\v  j k!\v# +E Er@ \0   A\0  \`A\0# +AF\r\v\v# +E@ \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  6#\v#\v(\0Aj6\0A\0\vÄ|#\0Ak"$\0@ \0ÂŊB ˆ§AÃŋÃŋÃŋÃŋ\x07q"AÃģäÃŋM@ AÂ€Â€Ã€Ã˛I\r \0D\0\0\0\0\0\0\0\0A\0$!\0\f\v A€€ÀÃŋ\x07O@ \0 \0ÂĄ!\0\f\v \0 ^! +\b!\0 +\0!@@@@ AqAk\0\v  \0A$!\0\f\v  \0%!\0\f\v  \0A$š!\0\f\v  \0%š!\0\v Aj$\0 \0\vÂŧ|#\0Ak"$\0| \0ÂŊB ˆ§AÃŋÃŋÃŋÃŋ\x07q"AÃģäÃŋM@D\0\0\0\0\0\0ð? AÂžÃÂšÃ˛I\r \0D\0\0\0\0\0\0\0\0%\f\v \0 \0ÂĄ A€€ÀÃŋ\x07O\r\0 \0 ^! +\b!\0 +\0!@@@@ AqAk\0\v  \0%\f\v  \0A$š\f\v  \0%š\f\v  \0A$\v Aj$\0\vÃŗ\x07 \0(\b!@@ \0(\0"AqE@ \0Aj"A\0ÞA\0!\0\f\v#"( \0("AÃŋÃŋÃŋÃŋqG\r@ AqAG\r\0 \0("E\r\0 \0 Ak6\v A€q"@  \0Aj6TA\0AÞÐp\v \0Aj! \0(\f"\x07 \0("\x006\0 AÌ\0j \0G@ \0Ak \x076\0\v  At AtqAuAÃŋÃŋÃŋÃŋ\x07qÞA\0!\0 E\r\0 A\x006T:\v E \0A\0Nq\r\0 A\x1B\v\vÆ\b# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! (\b! (\f! (! (!\x07 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\b\v# +E@@ \0-\0\0Aq\r\0 \0AjA\0A +ÞH\0\r\0A\0\v \0(\0"AqE!\v@# +E@ @ \0AjA\0A +ÞH\0E\r \0(\0!\v \0*"A +G\r \0A\bj! \0Aj!Aä\0!@@ E\r\0 (\0E\r\0 Ak! (\0E\r\v\v \0*"A +G"\r AqE! Aq"AG!\v@# +E@ (\0"AÃŋÃŋÃŋÃŋq"  A\0GqrE!\x07\v@# +E@ \x07\r@ \r\0#("\x07 G\r\0A!\f\v AÞ\0 "A€€€€xr!   ÞH\0\v# +E \bEr@  9A\0# +AF\r!\v# +E@ AÞ%\0 A\x1BF\r \r\v\v# +E@ \0*"A +F"\r\v\v\v# +E@ \v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  \x076  6#\v#\v(\0Aj6\0A\0\v€~@@ ÂŊ""B†"P\r\0 BÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋ\0ƒB€€€€€€€øÃŋ\0V\r\0 \0ÂŊ"B4ˆ§AÃŋq"AÃŋG\r\v \0 Âĸ"\0 \0ÂŖ\v  B†"Z@ \0D\0\0\0\0\0\0\0\0Âĸ \0  Q\x1B\v B4ˆ§AÃŋq!\x07~ E@A\0! B\f†"B\0Y@@ Ak! B†"B\0Y\r\0\v\v A k­†\f\v BÃŋÃŋÃŋÃŋÃŋÃŋÃŋ\x07ƒB€€€€€€€\b„\v!~ \x07E@A\0!\x07 B\f†"B\0Y@@ \x07Ak!\x07 B†"B\0Y\r\0\v\v A \x07k­†\f\v BÃŋÃŋÃŋÃŋÃŋÃŋÃŋ\x07ƒB€€€€€€€\b„\v!  \x07J@@@  }"B\0S\r\0 "B\0R\r\0 \0D\0\0\0\0\0\0\0\0Âĸ\v B†! Ak" \x07J\r\0\v \x07!\v@  }"B\0S\r\0 "B\0R\r\0 \0D\0\0\0\0\0\0\0\0Âĸ\v BÃŋÃŋÃŋÃŋÃŋÃŋÃŋ\x07X@@ Ak! "B†! B€€€€€€€T\r\0\v\v B€€€€€€€€€ƒ! A\0J~ B€€€€€€€\b} ­B4†„ A k­ˆ\v „Âŋ\vd@ \0E\r\0 A\0H\r\0 \0Aq\r\0 E@\v \0A\0 \0A\0ÞHÌp" \0 F\x1B!@ AÃŋÃŋÃŋÃŋ\x07F\r\0 \0 G\r\0 AF\r Ak!\v \0 Þ\0\0\v\vÂĄ|# +AF@#\v#\v(\0A$k6\0#\v(\0"(\0!\0 (\b! (\f! (! (! (!\x07 +! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\b\v Aä\0# +\x1B!@# +E@@@ @ @ (\0\r\v Ak! \0(\0 F\r\f\v\v \r\0A\f\v AÞ\0A\0\v!\x07 \0(\0 G!#!\v@# +E@ \rD\0\0\0\0\0\0ð?D\0\0\0\0\0\0Y@ \x1B! #!\v@@@# +A  E# +\x1B"\x1BE@ -\0)AG"\r\v@# +E@ ($"\r\v# +E \bEr@ \0   A\0# +AF\r\x07!\v# +E@ A¡F"\r\v\v# +E\r\v# +E \bAFr@ \0 D\0\0\0\0\0\0ð A# +AF\r\v\v# +E@ \0(\0 F"\r\v\v\v# +E@ \x07\r AÞ%\0\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  6  \x076  9#\v#\v(\0A$j6\0\vÃĨ- +# +AF@#\v#\v(\0A$k6\0#\v(\0"\b(\0!\0 \b(\b! \b(\f! \b(! \b(! \b(! \b(!\x07 \b( ! \b(!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0! +\v# +E@A¸Ú\0(\0E!\v # +AFrA\0# +E +Er\x1B@cA\0# +AF\r\v# +E@AŒÃŊ\0-\0\0Aq!\v@ # +AFr@# +E +AFr@AÃŊ\0A# +AF\r!\v# +A \x1BE\r\v  \0AôM# +\x1B!@@@@@@@# +E@@ @AÐÚ\0(\0"A \0A\vjAøq \0A\vI\x1B"Av"\0v"Aq@ AsAq \0j"At"\0AøÚ\0j!@  \0(€z"(\b"F@AÐÚ\0A~ w q6\0\f\v  6\f  6\b\v A\bj!  \0Ar6 \0 j"\0(Ar! \0 6\f +\v AØÚ\0(\0"M\r @A\0A \0t"k!@  r  \0tqh"\x07At"AøÚ\0j" (€z"\0(\b"F@AÐÚ\0A~ \x07w q"6\0\f\v  6\f  6\b\v \0 Ar6 \0 j"\x07  k"Ar6 \0 j 6\0 @ AxqAøÚ\0j!AäÚ\0(\0!A Avt" qE@AÐÚ\0  r6\0 \f\v (\b\v!  6\b  6\f  6\f  6\b\v \0A\bj!AäÚ\0 \x076\0AØÚ\0 6\0\f +\vAÔÚ\0(\0" E\r hAt(€|"\0(Axq k! \0!@@ \0("E@ \0("E\r\v (Axq k"\0  \0 I"\0\x1B!   \0\x1B! !\0\f\v\v (!\x07@  (\f"G@ (\b"\0 6\f  \x006\b\f\v@ ("\0 Aj ("\0E\r Aj\v!@ ! \0! \0Aj! \0("\0\r\0 Aj! ("\0\r\0\v A\x006\0\f\vA\0!\v@ \x07E\r\0@ ("\0At"(€| F@ A€Ãŧ\0j 6\0 \rAÔÚ\0 A~ \0wq6\0\f\v@  \x07(F@ \x07 6\f\v \x07 6\v E\r\v  \x076 ("\0@  \x006 \0 6\v ("\0E\r\0  \x006 \0 6\v@ AM@   j"\0Ar6 \0 j"\0(Ar! \0 6\f\v  Ar6  j" Ar6  j 6\0AØÚ\0(\0"@ AxqAøÚ\0j!\0AäÚ\0(\0!A Avt"AÐÚ\0(\0"qE@AÐÚ\0  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\vAäÚ\0 6\0AØÚ\0 6\0\v A\bj!\f \vA! \0AÂŋK\r\0 \0A\vj"Axq!AÔÚ\0(\0"\x07E"\r\0A! A\0 k! \0AôÃŋÃŋ\x07M@ A& A\bvg"\0kvAq \0AtkA>j! \v@@@ At(€|"E@A\0!\0\f\vA\0!\0 A AvkA\0 AG\x1Bt!@@ (Axq k" O\r\0 ! "\r\0A\0! !\0\f\v \0 ("  AvAq j("F\x1B \0 \x1B!\0 At! \r\0\v\v \0 rE@A\0!A\0A t"\0k! \x07 \0 rq"\0E\r \0hAt(€|!\0\v \0E\r\v@  \0(Axq k"K!   \x1B! \0  \x1B! \0("  \0(\v"\0\r\0\v\v E\r\0 AØÚ\0(\0 kO\r\0 (!  (\f"\0G@ (\b" \x006\f \0 6\b\f\b\v (" Aj ("E"\0\r Aj\v!@ ! "\0Aj! \0("\r\0 \0Aj! \0("\r\0\v A\x006\0\f\x07\v AØÚ\0(\0"M@AäÚ\0(\0!\0@  k"AO@ \0 j" Ar6 \0 j 6\0 \0 Ar6\f\v \0 Ar6 \0 j"(Ar!  6A\0!A\0!\vAØÚ\0 6\0AäÚ\0 6\0 \0A\bj!\f\b\v AÜÚ\0(\0"\0I"@AÜÚ\0 \0 k"6\0AèÚ\0 AèÚ\0(\0"\0j"6\0  Ar6 \0 Ar6 \0A\bj!\f\b\vA\0!A¸Ú\0(\0E!\0\v \0# +AFr@# +E +AFr@cA# +AF\r +\v\v# +E@AÀÚ\0(\0"\0 A/j"j!  A\0 \0kq"O\r\x07AˆÃŊ\0(\0"\0@ A€ÃŊ\0(\0"j!  O"\r\b \0 I\r\b\vAŒÃŊ\0-\0\0AqE!\0\v \0# +AFr@# +E@AèÚ\0(\0!\v@@@@# +A \x1BE@A¨ÃŊ\0!\0@ \0(\0" M"@ \0(" j K"\r\v \0(\b"\0\r\0\v\v# +E +AFr@AÀÃŊ\0A# +AF\r!\0\v# +E@A\0!"AF"\0\r !AÂŧÚ\0(\0"\0Ak" q"\x07@  k  j"A\0 \0kqj!\v  M"\0\rAˆÃŊ\0(\0"\0@A€ÃŊ\0(\0" j!\x07  \x07O"\r \0 \x07I"\0\r\v  !"\0G"\r\f\x07\v\v# +E +AFr@AÀÃŊ\0A# +AF\r\r!\v# +E@AÀÚ\0(\0" AÜÚ\0(\0kjA\0 kq"!!  \0(\0" \0(jF"\0\r !\0\v\v# +E@ \0AF"\r A0j K@AÀÚ\0(\0"  kjA\0 kq"!AF"\r  j!\v \0!\f\v\v# +E@ AG"\0\r\v\v# +E@AŒÃŊ\0AŒÃŊ\0(\0Ar"\x006\0AÀÃŊ\0\v\v# +E +AFr@AÀÃŊ\0A# +AF\r !\0\v# +E@ !!A\0!!\0AÀÃŊ\0 AF"\r \0AF"\r \0 M"\r \0 k" A(jM"\0\r\f\v\v# +E@A\0!\0\f\v\v# +E@AÀÃŊ\0\v\v# +E@A€ÃŊ\0 A€ÃŊ\0(\0j"\x006\0A„ÃŊ\0(\0 \0I@A„ÃŊ\0 \x006\0\v@@@AèÚ\0(\0"@A¨ÃŊ\0!\0@ \0(\0" \0("j F\r \0(\b"\0\r\0\v\f\v AàÚ\0(\0"\0O! \0A\0 \x1BE@AàÚ\0 6\0\vA\0!\0AÂŦÃŊ\0 6\0A¨ÃŊ\0 6\0AðÚ\0A6\0AôÚ\0A¸Ú\0(\x006\0A´ÃŊ\0A\x006\0@ \0At"AøÚ\0j!  6€z  6„z \0Aj"\0A G\r\0\vAÜÚ\0 A(k"\0Ax kA\x07q"k"6\0AèÚ\0  j"6\0  Ar"6 \0 jA(6AÃŦÚ\0AÈÚ\0(\x006\0\f\v  M"\x07\r\0  K\r\0 \0(\fA\bq\r\0 \0  j6AèÚ\0 Ax kA\x07q"\0j"6\0AÜÚ\0AÜÚ\0(\0" j" \0k"\x006\0  \0Ar6  jA(6AÃŦÚ\0AÈÚ\0(\x006\0\f\v AàÚ\0(\0I@AàÚ\0 6\0\v  j!A¨ÃŊ\0!\0@@  \0(\0"G"\x07@ \0(\b"\0\r\f\v\v \0-\0\fA\bqE\r\vA¨ÃŊ\0!\0@@  \0(\0"O@ \0( j" K\r\v \0(\b!\0\f\v\vAÜÚ\0 A(k"\0Ax kA\x07q"k"\x076\0AèÚ\0  j"6\0  \x07Ar"\x076 \0 jA(6AÃŦÚ\0AÈÚ\0(\x006\0 A' kA\x07qjA/k"\0 AjI!  \0 \x1B"A\x1B6 A°ÃŊ\0)\x007 A¨ÃŊ\0)\x007\bA°ÃŊ\0 A\bj6\0AÂŦÃŊ\0 6\0A¨ÃŊ\0 6\0A´ÃŊ\0A\x006\0 Aj!\0@ \0A\x076 \0A\bj \0Aj!\0 I\r\0\v  F\r\0  (A~q6   k"Ar6  6\0 AÃŋM@ AøqAøÚ\0j!\0AÐÚ\0(\0"A Avt"qE@AÐÚ\0  r6\0 \0\f\v \0(\b\v! \0 6\b  6\fA\b!A\f\f\vA!\0 AÃŋÃŋÃŋ\x07M@ A& A\bvg"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtA€Ãŧ\0j!@@AÔÚ\0(\0"A \0t"qE"\x07@AÔÚ\0  r6\0  6\0\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ "(Axq F\r \0Av \0At!\0Aq j"("\r\0\v  6\v  6A\f! "!\0A\b\f\v (\b"\0 6\f  6\b  \x006\bA\0!\0A\f!A\v!  j" 6\0  j \x006\0\v AÜÚ\0(\0"\0O"\rAÜÚ\0 \0 k"6\0AèÚ\0 AèÚ\0(\0"\0j"6\0  Ar6 \0 Ar6 \0A\bj!\f\v\v# +E@#AjA06\0A\0!\f\v\v# +E@ \0 6\0 \0 \0( j6 Ax kA\x07qj" Ar6 Ax kA\x07qj"  j"k!@ AèÚ\0(\0F@AèÚ\0 6\0AÜÚ\0 AÜÚ\0(\0j"\x006\0  \0Ar6\f\v AäÚ\0(\0F@AäÚ\0 6\0AØÚ\0 AØÚ\0(\0j"\x006\0  \0Ar6 \0 j \x006\0\f\v ("\0AqAF@ \0Axq!\b (\f!@ \0AÃŋM@  (\b"F@AÐÚ\0AÐÚ\0(\0A~ \0Avwq6\0\f\v  6\f  6\b\f\v (!\x07@  G@ (\b"\0 6\f  \x006\b\f\v@ ("\0 Aj ("\0E\r Aj\v!@ ! \0! \0Aj! \0("\0\r\0 Aj! ("\0\r\0\v A\x006\0\f\vA\0!\v \x07E\r\0@ ("\0At"(€| F@ A€Ãŧ\0j 6\0 \rAÔÚ\0AÔÚ\0(\0A~ \0wq6\0\f\v@  \x07(F@ \x07 6\f\v \x07 6\v E\r\v  \x076 ("\0@  \x006 \0 6\v ("\0E\r\0  \x006 \0 6\v  \bj!  \bj"(!\0\v  \0A~q6  Ar6  j 6\0 AÃŋM@ AøqAøÚ\0j!\0AÐÚ\0(\0"A Avt"qE@AÐÚ\0  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\f\vA! AÃŋÃŋÃŋ\x07M@ A& A\bvg"\0kvAq \0AtrA>s!\v  6 B\x007 AtA€Ãŧ\0j!\0@@AÔÚ\0(\0"A t"qE@AÔÚ\0  r6\0 \0 6\0\f\v A AvkA\0 AG\x1Bt! \0(\0!@  "\0(AxqF\r Av At!Aq \0j"("\r\0\v  6\v  \x006  6\f  6\b\f\v \0(\b" 6\f \0 6\b A\x006  \x006\f  6\b\v A\bj!\f\v\v# +E@@ E\r\0@ ("At"(€| F@ A€Ãŧ\0j \x006\0 \0\rAÔÚ\0 \x07A~ wq"\x076\0\f\v@  (F@ \x006\f\v \x006\v \0E\r\v \0 6 ("@ \0 6  \x006\v ("E\r\0 \0 6  \x006\v@ AM@   j"\0Ar6 \0 j"\0(Ar! \0 6\f\v  Ar6  j" Ar6  j 6\0 AÃŋM@ AøqAøÚ\0j!\0AÐÚ\0(\0"A Avt"qE@AÐÚ\0  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\f\vA!\0 AÃŋÃŋÃŋ\x07M@ A& A\bvg"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtA€Ãŧ\0j!@@ \x07A \0t"qE@AÔÚ\0  \x07r6\0  6\0\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ "(Axq F\r \0Av \0At!\0Aq j"("\r\0\v  6\v  6  6\f  6\b\f\v (\b"\0 6\f  6\b A\x006  6\f  \x006\b\v A\bj!\v\v# +E@AŒÃŊ\0-\0\0AqE\rAÃŊ\0\v\v# +E@ \v\0\v!\b#\v(\0 \b6\0#\v#\v(\0Aj6\0#\v(\0"\b \x006\0 \b 6 \b 6\b \b 6\f \b 6 \b 6 \b 6 \b \x076 \b 6 #\v#\v(\0A$j6\0A\0\v\0 \0AÃŋÃŋÃŋÃŋ\x07  AÃŋÃŋÃŋÃŋ\x07O\x1B\x1B\v¤~@ ÂŊBÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋ\0ƒB€€€€€€€øÃŋ\0X@ \0ÂŊBÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋ\0ƒB€€€€€€øÃŋ\0T\r\v \0 \xA0\v ÂŊ"\x07B ˆ§"A€€ÀÃŋk \x07§"rE@ \0_\v AvAq" \0ÂŊ"\x07B?ˆ§r!@ \x07B ˆ§AÃŋÃŋÃŋÃŋ\x07q" \x07§rE@@@ Ak\0\vD-DTÃģ! @\vD-DTÃģ! À\v AÃŋÃŋÃŋÃŋ\x07q" rE@D-DTÃģ!Ú? \0ÂĻ\v@ A€€ÀÃŋ\x07F@ A€€ÀÃŋ\x07G\r At+Ð!\v A€€ÀÃŋ\x07G A€€€ j OqE@D-DTÃģ!Ú? \0ÂĻ\v| @D\0\0\0\0\0\0\0\0 A€€€ j I\r\v \0 ÂŖÂ™_\v!\0@@@ Ak\0\v \0š\vD-DTÃģ! @ \0D\x07\\3&ÂĻÂĄÂŧ\xA0ÂĄ\v \0D\x07\\3&ÂĻÂĄÂŧ\xA0D-DTÃģ! À\xA0\v At+ð!!\0\v \0\vÂŦ|# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! +\b! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\vAd \0A\0   \0Aq# +\x1B"# +\x1B"# +AFr# +\x1B\x1B!\0 E# +AFr@# +E Er@NA\0# +AF\r\v #E# +\x1B"# +AFr@# +E@\0!A\0A\0 \0ÞHÌp\0  \xA0"d!\v@@# +A \x1BE\r\0@# +E@A\0 \0A\0ÞHÌp" \0F! \0  \x1BE!A\0" \r\v# +E AFr@NA# +AF\r\x07\v# +E@ \0Þ\0 F"@A\0A\0 \0ÞHÌp\0 d"\r\f\v\v\v Az# +\x1B\v!# +E\r\v# +E@A¡!A\0 \0A\0ÞHÌp!\0\v\v# +E@ \v\v# + \0AzA¡A\0 \0 B D\0\0\0\0\0@@ÂĸD\0\0\0\0\0@@ÂĸÃŧ D\0\0\0\0\0\0ða\x1BÞ\0"\0AF\x1B \0AF\x1B\v!\0\v# +E@ \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  9\b  6#\v#\v(\0Aj6\0A\0\vg~ \0­B\x07|BøÃŋÃŋÃŋƒ!@@ AÜÎ\0Þ\0"\0­|"BÃŋÃŋÃŋÃŋX@ §"?\0AtM\r \f\r\v#AjA06\0A\vA\0 \0 ÞHÜn \0G\r\0\v \0\v¨# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E Er@ \0RA\0# +AF\r\v# +E AFr@ \0A# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\v‡ A€O@ @ \0  Ãŧ +\0\0\v\v \0 j!@ \0 sAqE@@ \0AqE@ \0!\f\v E@ \0!\f\v \0!@  -\0\0:\0\0 Aj! Aj"AqE\r  I\r\0\v\v A|q!\0@ AÀ\0I\r\0  \0A@j"K\r\0@  (\x006\0  (6  (\b6\b  (\f6\f  (6  (6  (6  (6  ( 6  ($6$  ((6(  (,6,  (060  (464  (868  (<6< A@k! A@k" M\r\0\v\v \0 M\r@  (\x006\0 Aj! Aj" \0I\r\0\v\f\v AI@ \0!\f\v AI@ \0!\f\v Ak! \0!@  -\0\0:\0\0  -\0:\0  -\0:\0  -\0:\0 Aj! Aj" M\r\0\v\v  I@@  -\0\0:\0\0 Aj! Aj" G\r\0\v\v\v™| \0 \0Âĸ"  ÂĸÂĸ D|ÕÏZ:ÙÃĨ=ÂĸDÃĢœ+ŠÃĻÃĨZž\xA0Âĸ  D}ÃžÂąWÃŖÇ>ÂĸDÕaÁ\xA0*Âŋ\xA0ÂĸDÂĻø?\xA0\xA0! \0 Âĸ! E@   ÂĸDIUUUUUÅÂŋ\xA0Âĸ \0\xA0\v \0  D\0\0\0\0\0\0à?Âĸ  ÂĸÂĄÂĸ ÂĄ DIUUUUUÅ?Âĸ\xA0ÂĄ\v’|D\0\0\0\0\0\0ð? \0 \0Âĸ"D\0\0\0\0\0\0à?Âĸ"ÂĄ"D\0\0\0\0\0\0ð? ÂĄ ÂĄ    DË\xA0Ãē>ÂĸDwQÁlÁVÂŋ\xA0ÂĸDLUUUUUÂĨ?\xA0Âĸ  Âĸ" Âĸ  DÔ8ˆžÊÃē¨ÂŊÂĸDÃ„ÂąÂ´ÂŊžÎ!>\xA0ÂĸD­Rœ€O~’¾\xA0Âĸ\xA0Âĸ \0 ÂĸÂĄ\xA0\xA0\v¡|~ \0ÂŊ"B ˆ§AÃŋÃŋÃŋÃŋ\x07q"A€€ÀÃŋO@ § A€€ÀÃŋkrE@ \0D-DTÃģ!Ú?ÂĸD\0\0\0\0\0\0p8\xA0\vD\0\0\0\0\0\0\0\0 \0 \0ÂĄÂŖ\v@ AÃŋÃŋÃŋÞM@ A€€@jAÂ€Â€Â€Ã˛I\r \0 \0 \0Âĸ'Âĸ \0\xA0\vD\0\0\0\0\0\0ð? \0™¡D\0\0\0\0\0\0à?Âĸ"Ÿ!\0 '!| AÂŗÃĻÂŧÃŋO@D-DTÃģ!Ú? \0 Âĸ \0\xA0"\0 \0\xA0D\x07\\3&ÂĻ‘Âŧ\xA0ÂĄ\f\vD-DTÃģ!Ê? \0ÂŊB€€€€pƒÂŋ" \xA0ÂĄ \0 \0\xA0 ÂĸD\x07\\3&ÂĻ‘<   ÂĸÂĄ \0 \xA0ÂŖ"\0 \0\xA0ÂĄÂĄÂĄD-DTÃģ!Ê?\xA0\v"\0š \0 B\0S\x1B!\0\v \0\v\0 \0 \0 \0 \0 \0 \0D ÃˇÃŊ\rÃĄ=?ÂĸDˆ²uàïI?\xA0ÂĸD;hÂĩ(‚¤Âŋ\xA0ÂĸDUDˆUÁÉ?\xA0ÂĸD}oÃĢÖÔÂŋ\xA0ÂĸDUUUUUUÅ?\xA0Âĸ \0 \0 \0 \0D‚’.ÂąÃ…Â¸Âŗ?ÂĸDY\x1BlÃĻÂŋ\xA0ÂĸDȊYœÃĨ*\0@\xA0ÂĸDK-Š':À\xA0ÂĸD\0\0\0\0\0\0ð?\xA0ÂŖ\v¨\0@ A€\bN@ \0D\0\0\0\0\0\0àÂĸ!\0 AÃŋI@ AÃŋ\x07k!\f\v \0D\0\0\0\0\0\0àÂĸ!\0AÃŊ  AÃŊO\x1BAÞk!\f\v AxJ\r\0 \0D\0\0\0\0\0\0\`Âĸ!\0 A¸pK@ AÉ\x07j!\f\v \0D\0\0\0\0\0\0\`Âĸ!\0Aðh  AðhM\x1BA’j!\v \0 AÃŋ\x07j­B4†ÂŋÂĸ\v0 #"(H \0Atj"\0(\0G@ \0 6\0  -\0*Ar:\0*\v\vœ \0-\0\0AqE@ \0AjA\0A +ÞH\0A +q\v \0(\0!@@@@@#"(" \0("AÃŋÃŋÃŋÃŋq"G\r\0@ A\bqE\r\0 \0(A\0N\r\0 \0A\x006 A€€€€q!\f\v AqAG\r\0A \0("AÞÃŋÃŋÃŋ\x07K\r \0 Aj6\f\vA8! AÃŋÃŋÃŋÃŋF\r@ \r\0A\0  Aq\x1B\r\0  \0Aj  A€q (PE@ At6P\v \0(\b!  \0Aj6T A€€€€xr  \x1B \v A€€€€qrÞH\0F\r A\x006T A\fqA\fG\r\0 \0(\b\r\vA +\f\v Aq\r\vA\0\f\v \0 (L"6 \0 AÌ\0j"6\f \0Aj!  G@ Ak 6\0\v  6LA\0! A\x006T E\r\0 \0A\x006A>!\v \v\v\0 \0A\0ÞA\0AF@ \0A\x1B\v\vÓ# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +  \0A\0AÞH\0\v# +AFr@# +E@ \0AAÞH\0\v@# +E Er@ \0A\0AA\0# +AF\r\v# +E@ \0A\0AÞH\0\r\v\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\v¡|# +AF@#\v#\v(\0A,k6\0#\v(\0"(\0!\0 (\b! (\f! +!\x07 +!\b ( ! +$! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0"Ak"$\0#!\v@@# +E@@ \r\0#"-\0(AG\r\0 -\0)E"\r\vD\0\0\0\0\0\0ð?D\0\0\0\0\0\0Y@ \x1B!\b\0"\x07D\0\0\0\0\0\0ð\xA0! #!\v@# +E@@ ($E@ \0ÂĄ"\x07D\0\0\0\0\0\0\0\0eE\rAÉ\0\f\vA\v!\0\f\v \b \x07 \x07 \bd"\x1B!\x07\v# +E Er@ \0  \x07 A\0# +AF\r!\v# +E A¡Fq\r\0\vA\0 k# +E\r\v# +E AFr@ \0 D\0\0\0\0\0\0ð A# +AF\r!\0\v \0A\0 \0k# +\x1B\v!\0# +E@ \0A\0 \0AoqA\vF\x1B \0 \0AÉ\0G\x1B"\0A\x1BG\rA\x1BA\0AØð\0(\0\x1B!\0\v\v# +E@ Aj$\0 \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  \x079  \b9  6  9$#\v#\v(\0A,j6\0A\0\vŠ# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@ \0(\bA\0H!\v # +AFr@# +E@ \0(\0E!\v@# +E@ \r \0A€€€€xÞ3\0 \0(\0"AÃŋÃŋÃŋÃŋ\x07qE\r\v@# +E Er@ \0A\0 A\0# +AF\r\v# +E@ \0(\0"AÃŋÃŋÃŋÃŋ\x07q\r\v\v\v# +E AFr@MA# +AF\r\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\vˆ\b\x07# +AF@#\v#\v(\0A k6\0#\v(\0"(\0!\0 (\b! (\f! (! (!\x07 (!\b (! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0"Ak"\x07$\0\v@# +E Er \0A\0# +AF\r \v \0AàÎ\0G# +\x1B"# +AFr@# +E AFr@ \0 UA# +AF\r!\v# +E\r\v# +E@#"A:\0\0\v# +E AFr@AàÎ\0 UA# +AF\r!\v# +E@ A\0:\0\0\v\v# +E@ \0\vA\0 \b # +\x1B"\b# +AFr# +E@ \x07 (\b6\b \x07 )\x007\0#\0A0k"\0$\0 ("Þ|!@A\0 E\r    AjÞH|"G\r\0\vA\v"E!\v@# +E@ @A\0!\f\v Aj!\v# +E AFr@ A# +AF\r!\v# +E@ \0 \x07(\b6 \0 \x07)\x007 \0Aj!\v# +E AFr@  WA# +AF\r!\v# +E@ \vA\0 # +\x1B" # +AFr# +E@ AÞA\0!A! (" AF\r \0A6( \0A6$ \0 6, \0 6 \0 \0)$7\b#\0Ak"$\0 (xAj!\v# +E AFr@ A# +AF\r!\v# +E@ (x!  \0(6\b  \0)\b7\0\v# +E AFr@  WA# +AF\r\v# +  (xAj@ (xAÞA\0AF\r\0 Þ€@ AÞ\0\0\f\v #\r\v Aj"$\0A\v \v# +E E# +AFrq\x1B!# +  (\v\v!# +E@ AÞ%|AF@ AÃŧ\0jAÃŋÃŋÃŋÃŋ\x07\x1B\v\v\v# + \0 \0A0j$\0 \v \0\v# +E \bE# +AFrq\x1B!\0# +E@ \x07Aj$\0 \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  \x076  \b6  6#\v#\v(\0A j6\0A\0\vš\x07\b~# +AF@#\v#\v(\0A$k6\0#\v(\0"(\0!\0 (\b! (\f! (! (!\x07 (!\b )! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v  \0E# +\x1B"# +AFr@# +E@AØÎ\0(\0!\0\v \0# +AFrA\0# +E Er\x1B@ \00A\0# +AF\r!\v# +E@AÀí\0(\0!\0\v \0# +AFr@# +E AFr@ \00A# +AF\r!\0\v  \0 r# +\x1B!\v# +E AFr@HA# +AF\r!\0\v# +E@ \0(\0!\0\v \0# +AFr@@# +E@ \0(LA\0H!\vA\0 A\0  # +\x1B"# +AFr# +\x1B\x1B! E# +AFr@# +E AFr@ \0BA# +AF\r!\v\v# +E@ \0("\b \0(G! E!\v # +AFr@# +E AFr@ \00A# +AF\r!\v   r# +\x1B!\v# +E@ E"@ \0A\v \0(8"\0\r\v\v\v# +E@AÜð\07 \v\v# +E@ \0(LA\0H!\vA\0 A\0 \x07 # +\x1B"\x07# +AFr# +\x1B\x1B! \x07E# +AFr@# +E AFr@ \0BA# +AF\r!\v\v# +E@ E! \0(" \0(F!\v@@@# +E@ \r \0($!\v# +E AFr@ \0A\0A\0 \0A# +AF\r!\v# +E@ \0("\rA! E\r\f\v\v# + \b \0(" \0(\b"G\v# +AFr@# +E@  kÂŦ! \0((!\v# +E A\x07Fr@ \0 A  \0A\x07# +AF\r\v\v# +E@A\0! \0A\x006 \0B\x007 \0B\x007 \r\v\v# +E@ \0A\v\v# +E@ \v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  \x076  \b6  7#\v#\v(\0A$j6\0A\0\v•# +AF@#\v#\v(\0A\fk6\0#\v(\0"(\0!\0 (\b! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@A \0 \0AM"\x1B!\v@@# +E Er@ A\0# +AF\r!\0\v# +E@ \0\rAè…Þ\0"E\r\v# +E AFr@ \0A# +AF\r\v# +E\r\v\v# +E@ \0E@@\0\v \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b#\v#\v(\0A\fj6\0A\0\v}AŒÃĩ\0(\0#(F@AŒÃĩ\0A\x006\0\v@A„Ãĩ\0(\0!A€Ãĩ\0A€Ãĩ\0(\0"\0 \0AkA\0 \0AÃŋÃŋÃŋÃŋ\x07q"AG\x1BA\0 AÃŋÃŋÃŋÃŋ\x07G\x1B"ÞH\0 \0G\r\0\v@ \r\0 E \0A\0Nq\r\0A€Ãĩ\0 \x1B\v\vM@@@A!@A€Ãĩ\0(\0"\0AÃŋÃŋÃŋÃŋ\x07qAÞÃŋÃŋÃŋ\x07k\0\v \0A€Ãĩ\0 \0 \0AjÞH\0G\r\0\vA\0\vA +!\v \v9AÃŦð\0(\0"\0@AÃŦð\0 \0Ak6\0\vAèð\0A\0Þ\0Aðð\0(\0@Aèð\0A\x1B\v\v\xA0# +AF@#\v#\v(\0A\bk6\0#\v(\0"\0(\0! \0(!\0\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#("\0Aèð\0(\0G!\v # +AFr@# +E@Aèð\0A\0 \0ÞH\0!\v # +AFr@@# +E Er@Aèð\0Aðð\0 A\0# +AF\r\v# +E@Aèð\0A\0 \0ÞH\0"\r\v\v\v# +E@\v\v# +E@AÃŦð\0AÃŦð\0(\0Aj6\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" 6\0  \x006#\v#\v(\0A\bj6\0\vÖ@ E\r\0 \0A\0:\0\0 \0 j"AkA\0:\0\0 AI\r\0 \0A\0:\0 \0A\0:\0 AkA\0:\0\0 AkA\0:\0\0 A\x07I\r\0 \0A\0:\0 AkA\0:\0\0 A I\r\0 \0A\0 \0kAq"j"\0A\x006\0 \0  kA|q"j"AkA\x006\0 A I\r\0 \0A\x006\b \0A\x006 A\bkA\x006\0 A\fkA\x006\0 AI\r\0 \0A\x006 \0A\x006 \0A\x006 \0A\x006\f AkA\x006\0 AkA\x006\0 AkA\x006\0 AkA\x006\0  \0AqAr"k"A I\r\0 \0 j!\0@ \0B\x007 \0B\x007 \0B\x007\b \0B\x007\0 \0A j!\0 A k"AK\r\0\v\v\v*\0@ \0(\0A\0N\r\0 \0AÃŋÃŋÃŋÃŋ\x07Þ\0A€€€xF\r\0 \0A\x1B\v\vð# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v@# +E@Aï\0,\0\0"E\r \0A\0A€€€xÞH\0! A\0H@Aï\0A\0:\0\0\v E\r@ AÃŋÃŋÃŋÃŋ\x07j  A\0H\x1B"AÃŋÃŋÃŋÃŋ\x07k!  \0  ÞH\0"F\r Aj"A +G\r\0\v \0AÞ\0"Aj!\v@# +AF  A\0H# +\x1Br@# +E Er@ \0A\0 A\0# +AF\r\v  AÃŋÃŋÃŋÃŋ\x07j# +\x1B!\v# +E@  \0  A€€€€xrÞH\0"G"\r\v\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\v†# +AF@#\v#\v(\0A\fk6\0#\v(\0"(\0!\0 (\b! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0Ak"$\0#! A\fj"@  -\0(6\0\v A:\0(\v# +E Er@ \0 -A\0# +AF\r!\0\v# +E@ (\f"AM@# :\0(\v Aj$\0 \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b#\v#\v(\0A\fj6\0A\0\v)\0@A\0AÞÐpAG\r\0AÔð\0(\0E\r\0AÐð\0AÃŋÃŋÃŋÃŋ\x07\x1B\v\v”# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (\b! (\f! (! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0Ak"$\0 \0A6 \0Aj!\v# +E Er@ A\0# +AF\r!\v# +E@ \0(0" \0(,G!\v # +AFr@@# +E@ Aj \0Y  (! (\f!\v# +E AFr@  \0\0A# +AF\r\v# +E AFr@ A# +AF\r\v# +E@ \0(0" \0(,G"\r\v\v\v# +E@  \0A\x006 Aj$\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6#\v#\v(\0Aj6\0\vÂĢ|~ \0ÂŊ"B ˆ§AÃŋÃŋÃŋÃŋ\x07q"A€€ÀÃŋO@ § A€€ÀÃŋkrE@D\0\0\0\0\0\0\0\0D-DTÃģ! @ B\0Y\x1B\vD\0\0\0\0\0\0\0\0 \0 \0ÂĄÂŖ\v| AÃŋÃŋÃŋÞM@D-DTÃģ!Ú? AÂÂ€Â€ÃŖI\rD\x07\\3&ÂĻ‘< \0 \0 \0Âĸ'ÂĸÂĄ \0ÂĄD-DTÃģ!Ú?\xA0\v B\0S@D-DTÃģ!Ú? \0D\0\0\0\0\0\0ð?\xA0D\0\0\0\0\0\0à?Âĸ"\0Ÿ"  \0'ÂĸD\x07\\3&ÂĻ‘Âŧ\xA0\xA0ÂĄ"\0 \0\xA0\vD\0\0\0\0\0\0ð? \0ÂĄD\0\0\0\0\0\0à?Âĸ"\0Ÿ" \0'Âĸ \0 ÂŊB€€€€pƒÂŋ"\0 \0ÂĸÂĄ  \0\xA0ÂŖ\xA0 \0\xA0"\0 \0\xA0\v\v* \0 AÀ„=n"At/\xA0j;\0\0 \0Aj  AÀ„=lk>\v* \0 AÎ\0n"At/\xA0j;\0\0 \0Aj  AÎ\0lk?\v2 \0 Aä\0n"At/\xA0j;\0\0 \0  Aä\0lkAt/\xA0j;\0 \0Aj\v\0\v\0\v \0 \0AÌ\0j"\0A\0ÞA\0A€€€€q@ \0A\x1B\v\vÃģ# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0! (! (\b! (\f!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#(" \0(LAÃŋÃŋÃŋÃŋ{qF!\v@# +E@ \rA! \0AÌ\0j"A\0 ÞH\0E\r A\0 A€€€€r"ÞH\0"\0E"\r\v@  \0A€€€€q# +\x1B!@# +E@@ @ \0!\f\v  \0 \0A€€€€r"ÞH\0 \0G\r\v\v# +E Er@ A\0 A\0# +AF\r\v\v# +E@ A\0 ÞH\0"\0\r\v\v\v# +E@ \v\0\v!\0#\v(\0 \x006\0#\v#\v(\0Aj6\0#\v(\0"\0 6\0 \0 6 \0 6\b \0 6\f#\v#\v(\0Aj6\0A\0\vÂŋ# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +E# +AF#\v#\v(\0Ak6\0#\v(\0(\0 \vEr@ \0[A\0# +AF\r!\v# +E@ \0 6x \0AÞ| \0A\0Þ€\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\vÜ@@  \0"sAq@ -\0\0!\f\v Aq@@  -\0\0":\0\0 E\r Aj! Aj"Aq\r\0\v\vA€‚„\b (\0"k rA€‚„xqA€‚„xG\r\0@  6\0 Aj! "Aj!A€‚„\b ("k rA€‚„xqA€‚„xF\r\0\v\v  :\0\0 AÃŋqE\r\0@  -\0":\0 Aj! Aj! \r\0\v\v \0\vï# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v@# +E@3A +G\rAä\0!\0@@ \0E"\r\0A€Ãĩ\0(\0E"\r\0 \0Ak!\0A„Ãĩ\0(\0E"\r\v\v3A +G"\0\r\v@# +E@A€Ãĩ\0(\0"\0AÃŋÃŋÃŋÃŋ\x07qAÃŋÃŋÃŋÃŋ\x07G!\v@# +E@ \rA„Ãĩ\0AÞ\0!A€Ãĩ\0 \0AÞH\0AˆÃĩ\0(\0!\0\v# +E Er@A€Ãĩ\0A9A\0# +AF\r!\0\v# +E@A„Ãĩ\0AÞ%\0 \0E"\r \0A\x1BG\r\v\v# +E@3A +F"\0\r\v\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\vp# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# + \0 \0(\0AN\v# +AFrA\0# +E Er\x1B@MA\0# +AF\r\v\v!\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\v—\b# +AF@#\v#\v(\0A k6\0#\v(\0"(\0!\0 (\b! (\f! (! (! (!\x07 (!\b (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0! \v# +E@ \0( AG!\v \x07 # +\x1B"\x07# +AFr@# +E@#\0Ak"$\0 \0(\0 \0G!\v@# +E@ @AÇ\0!\f\v@ \0( AF\r\0# \0G\r\0A!\f\v#! A\fj@  -\0(6\f\v A:\0( (\fE@#A\0:\0(\v \0A j"\b(\0!\v@@@ # +AFr@@# +E@ AF"\r AÉ\0F"\r AN"@ (\f"\0AM@# \0:\0(\vA!\f\x07\vA!\v# +E Er@ \b -A\0# +AF\r\b!\v# +E@ \b(\0"\r\v\v# +E\r\v# +E@ (\f"AM"#" :\0(A\0A\v!A!\f\v\v A\0# +\x1B!\v# +E@ (\f"AM@# :\0(\v AF\r AÉ\0F"\r\v\v@# +A# + #\0AkA\x006\fAèð\0(\0"E\v\x1BE\r\0# +E AFr@Aèð\0Aðð\0 A# +AF\r\v# +E@Aðð\0(\0E"\rAèð\0A\x1B\v\v# +E@ @  \0(@6\0\vA\0! E\r \0\v\v# +E@ Aj$\0\v\vA + # +E \x07E# +AFrq\x1B!# +E@ \v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  6  \x076  \b6#\v#\v(\0A j6\0A\0\vf# +E# +AF#\v#\v(\0Ak6\0#\v(\0(\0 \0\vEr@AÜð\08A\0# +AF\r\v# +E@Aàð\0\v\0\v!\0#\v(\0 \x006\0#\v#\v(\0Aj6\0A\0\vÃŋ"-|{#\0Aà\0k"$\0 \0A\x006 \0  \0+È \0+Ð\xA0ÂĄD\0\0\0\0\0€–@Âĸ" +9ˆ \0+˜\x07!4 \0+\x07!5 \0+€!\v \0+È!\f \0+! \0+p!  \0+À +Âĸ \0+˜\xA0"90   +Âĸ\xA0"9H  \0+à + +Âĸ"Âĸ \v \f +Âĸ\xA0\xA09 + \0+è"\r \0+8ÂĸÂĸ!  \0+Âĸ!D\0\0\0\0\0\0ð? \0+0 +ÂĸÂĄ! \0(AG@ \0+h!\v !\f   + \0+xÂĸ \0+Ø \v \fÂĸD\0\0\0\0\0\0ð?\xA0"\f \fÂĸ \fÂĸ \0+\`ÂĄÂĸ\xA0"\fÂĄ9H   \f\xA0"\f90 \0+€!\v \f!\f \r \0+@Âĸ \f \vÂĄÂĸ \xA0! + + Âĸ"\vÂĸ"\f + \0+¨Âĸ \0+\xA0\xA0Âĸ \0+˜ \vÂĸ \xA0\xA0!  \0+H ÂĸÂĄ \0+P \vÂĸÂĄ \0+X \fÂĸÂĄ!\v  \0+À"\f9(  \0+ˆ9X  \0+ø98 \0-\0Aä\0F@ \0(è!\x07 \0+ð!\x1B \0+ø!" \0+€!% \0+ˆ!& \0+!' \0+˜!( \0+\xA0!) \0+¨!* \0+°!+ \0+¸!, \0+À! \0+È! \0+Ð! \0+Ø! \0+à! \0+è! \0+ð! \0+ø! \0+˜!\r \0+\xA0!- \0+ø!\v B\x007\0   +Âĸ +X\xA09X   +Âĸ +8\xA098   +Âĸ +H\xA09H   +Âĸ + \xA09   +Âĸ +0\xA090 +DW­NZÍÃĢq?Âĸ \r\xA0D-DTÃģ!@!0 \x07@@@ \0+"\rD\0\0\0\0\0\0\0\0a\r\0 + \rÂĸD\0\0\0\0\0\0\0\0e\r\0 +™ \r™cE\r\v \0B\x007 \0 \f9\xA0 \0 \v9˜\vD\0\0\0\0\0۠@D\0\0\0\0\0€†À +D\0\0\0\0\0\0\0\0d\x1B!# \0+!@ \x07AF@@ \0+˜"$D\`¤aBÀ\xA0"1!2 $  Âĸ \xA0" \xA0"\xA0D\`¤aBÀ\xA0"3!  $\xA0"\rDôˆ°e"zÃŽÂŋ\xA0"! $ ÂĄ"\vDôˆ°e"zÃŽÂŋ\xA0"! \rDÌÃĢˆC6ÐðÂŋ\xA0"! \vDÌÃĢˆC6ÐðÂŋ\xA0" ! $ $\xA0"\vD7LtÃąÃ’ÃŧÂŋ\xA0"!!  \v\xA0D7LtÃąÃ’ÃŧÂŋ\xA0"!  \v\xA0D8 +ÂĩKÀ¤À\xA0"!\r \v ÂĄD8 +ÂĩKÀ¤À\xA0"!\v - \0+\xA0".\xA0"/ , \vÂĸ + \rÂĸ ' Âĸ ( Âĸ\xA0\xA0\xA0"\v \v\xA0 * Âĸ ) Âĸ & Âĸ % Âĸ \x1B Âĸ " 2Âĸ\xA0\xA0\xA0\xA0\xA0\xA0Âĸ! 1! 3! ! ! ! !! ! !\r !\v , Âĸ + \vÂĸ * \rÂĸ ) Âĸ ( Âĸ ' Âĸ & Âĸ % Âĸ \x1B Âĸ " Âĸ\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0! + ÂĄ"™D\0\0\0\0\0۠@fE\r \0 D\0\0\0\0\0¤AÂĸ / #Âĸ $\xA0\xA09˜ \0 D\0\0\0\0\0¤AÂĸ  #Âĸ \0+\xA0\xA0\xA09\xA0 \0 # \0+\xA0"9\f\0\v\0\v D\0\0\0\0\0\0\b@Âĸ!  \xA0!@ \0+˜"DÕH"fÂŧÎÀÂŋ\xA0"!\v D\`¤aB\x07À\xA0" \xA0"\r!  D\r+hœ~ÃˇÃ—Âŋ\xA0D\0\0\0\0\0\0\b@Âĸ"Âĸ  \vÂĸ  Âĸ\xA0\xA0! !\v \r! ! - \0+\xA0".\xA0"/  Âĸ  \vÂĸ  Âĸ\xA0\xA0Âĸ! + ÂĄ"™D\0\0\0\0\0۠@fE\r \0 D\0\0\0\0\0¤AÂĸ / #Âĸ \xA0\xA09˜ \0 D\0\0\0\0\0¤AÂĸ  #Âĸ \0+\xA0\xA0\xA09\xA0 \0 # \0+\xA0"9\f\0\v\0\v    ÂĸÂĸD\0\0\0\0\0\0à?Âĸ  Âĸ" .\xA0\xA09(  ÂĸD\0\0\0\0\0\0à?Âĸ / Âĸ \0+˜\xA0\xA0! + !  \x07AG| 0 0\xA0  \xA0ÂĄ\xA0 0  ÂĄ +HÂĄ\xA0\v90  +( \fÂĄ"9\0  \f \xA09(\v +(!\f\v@ \fD\0\0\0\0\0\0\0\0e@A!\f\v \0+˜\x07!  +X ÂĄ"9X    \fÂŖDUUUUUUÃĨ?]ÂĸÂĸ"\x1BD\0\0\0\0\0\0ø?]ÂŖ"\v9(A! D\0\0\0\0\0\0ð?f\r\0 DÃŧÂŠÃąÃ’MbPÂŋc\r\0 DíÂĩ\xA0ÃˇÃ†Â°>c@ BÛׅÃēÃžÂąÃ˜>7XDíÂĩ\xA0ÃˇÃ†Â°>!\v \0+À!\f  + " +D-DTÃģ!@"9  +H" D-DTÃģ!@"\r9H  + \f Âĸ +0\xA0\xA0\xA0D-DTÃģ!@ \rÂĄ ÂĄD-DTÃģ!@" 90 \0 9Ð \0 \x1B9È +8!\f \0 \v9ø \0 9ð \0 \r9è \0 9à \0 \f9Ø  \f9  9P  \r9@  9\b  9 \0-\0!\x07 \f! \f!"@ \x07Aä\0G\r\0 \0+ø \0+€!% \0+ˆ!& \0+!' \0+˜!( \0+\xA0!) \0+¨!* \0+°!+ \0+¸!, \0+À!- \0+È!. \0+Ð!1 \0+Ø!2 \0+à!3 \0+è! \0+ð! \0+ø! \0+€! \0+ˆ! \0+!! \0+¨! \0+°! \0+¸ \0+À \0+È! \0+Ð! \0+Ø! \0+à! \0+è! \0+ð!\r \0+ˆ!\v A@k! \0,\0!\x07 \0+ˆ" DÈ)cÞjÁ$?Âĸ \0+€\xA0"D\x07ÎQÚ\x1BÂŧ?Âĸ \xA0"\f! + DÞ5‰Þg\rÊ>Âĸ \v\xA0"DôÃŊÔxÊ&ÂĄ?Âĸ \xA0" !  ÃŊ ÃŊ" \f"ÃŊ " ÃŊ""6ÃŊ\f\0\0\0\0\0\0à?\0\0\0\0\0\0à?ÃŊÃ˛ 6ÃŊÃ˛ÃŊ\f\0\0\0\0\0\0ÐÂŋ\0\0\0\0\0\0ÐÂŋÃŊð"7ÃŊÃ˛ ÃŊ ÃŊ" +ÃŊ ÃŊ" 6ÃŊ\f\0\0\0\0\0\0àÂŋ\0\0\0\0\0\0àÂŋÃŊÃ˛ÃŊÃ˛"8ÃŊÃ˛ÃŊð"6ÃŊ!\0 6ÃŊ!\xA0 *ÂĄ"\v +\xA09  & 7ÃŊ!\0"Âĸ % 8ÃŊ!\0"Âĸ\xA0 , 7ÃŊ!" +Âĸ - 8ÃŊ!"Âĸ\xA0\xA0 'ÂĄ +P\xA09P Âĸ  Âĸ\xA0 3 +Âĸ  Âĸ\xA0\xA0 )ÂĄ! Âĸ  Âĸ  Âĸ\xA0\xA0 2 Âĸ . +Âĸ 1 Âĸ\xA0\xA0\xA0 (ÂĄ!\f \r Âĸ  Âĸ  Âĸ\xA0\xA0 ! Âĸ  +Âĸ Âĸ\xA0\xA0\xA0 +ÂĄ!\r +"! !@ Dš™™™™™É?f@  \f   ÂŖ"ÂĸÂĄ +\0\xA09\0   +\b\xA09\b  \r +\xA09\f\v  +\b"D-DTÃģ!@" D-DTÃģ!@\xA0 D\0\0\0\0\0\0\0\0c\x1B \x07AÃĄ\0F"\x07\x1B"9\b  " +Âĸ  " Âĸ + \v Âĸ"Âĸ\xA0\xA0  Âĸ  Âĸ  +ÂĸÂĄ\xA0! +\0! + +!  D-DTÃģ!@\xA0  D\0\0\0\0\0\0\0\0c\x1B  \x07\x1B"D-DTÃģ!@D-DTÃģ!À  c\x1B\xA0   ¡™D-DTÃģ! @d\x1B9\b  \r +\xA0"9   Âĸ +\xA0\xA0 \r \f\xA0 \v Âĸ ÂĸÂĄ\xA0 ÂĄ  +\bÂĸÂĄ9\0\v +"\fD\0\0\0\0\0\0\0\0c@  +\bD-DTÃģ! @\xA09\b  +@D-DTÃģ! À\xA09@ \fš!\f\vA! +P"D\0\0\0\0\0\0\0\0c\r D\0\0\0\0\0\0ð?d\r \0-\0Aä\0G\r\0 \0+¸\x07! \0 \f"" D\0\0\0\0\0\0àÂŋÂĸÂĸ9 \0 \f"D\0\0\0\0\0\0@ÂĸD\0\0\0\0\0\0\b@\xA0 " D\0\0\0\0\0\0ÐÂŋÂĸÂĸÂĸ D\0\0\0\0\0\0ð?\xA0" DßÄAfcz= ™DßÄAfcz=d\x1BÂŖ9ÐA!\b\v  +@"\vÂĸ \0+ D\0\0\0\0\0\0ð? \x1BD\0\0\0\0\0\0ð?  ÂĸÂĄÂĸÂŖ" +Âĸ\xA0"š! \v! A! + \0+ÐÂĸ  Âĸ"Âĸ \v +\xA0 +\b"\xA0\xA0 ÂĄD-DTÃģ!@"!@DffffffÃŽ?DffffffÃŽÂŋ  "Âĸ"\r  "Âĸ \xA0\xA0 ÂĄD\0\0\0\0\0\0ð?  Âĸ"\vÂĄ  Âĸ" +ÂĄÂŖ" D\0\0\0\0\0\0\0\0d\x1B ™DffffffÃŽ?f\x1B" ™DÃĒ-™—q=f@  \xA0! A +I Aj!\r\v\v \x1BD\0\0\0\0\0\0ð?  Âĸ  Âĸ\xA0ÂĄ"Âĸ"D\0\0\0\0\0\0\0\0c@A!\f\v \x1B \x1BD\0\0\0\0\0\0ð? \v +\xA0ÂĄÂĸ" ÂŖ"\v  ÂĄ  \r  šÂĸ\xA0" Ÿ" +D\0\0\0\0\0\0ð?\xA0ÂŖ" ÂĸÂĄÂĸ"D\0\0\0\0\0\0\0ÀÂĸ ÂĸD\0\0\0\0\0\0ð?\xA0!!D\0\0\0\0\0\0ð? ÂŖ"  \0+\xA0\x07D\0\0\0\0\0\0à?ÂĸÂĸ"Âĸ!\r  \v  Âĸ  ÂĄ\xA0Âĸ"\v@ \bE@ \0+°! \0+(!\f\v \0D\0\0\0\0\0\0ð?  Âĸ"ÂĄ"9° \0 D\0\0\0\0\0\0@ÂĸD\0\0\0\0\0\0ðÂŋ\xA09¸ \0 D\0\0\0\0\0\0\b@ÂĸD\0\0\0\0\0\0ðÂŋ\xA0"9(\v D\0\0\0\0\0\0ð? \rD\0\0\0\0\0\0ø?Âĸ" +Âĸ ÂĸÂĄÂĸ ! D\0\0\0\0\0\0à?Âĸ ÂĸÂĸ\xA0"D\0\0\0\0\0\0ð?c@A!\f\v \rD\0\0\0\0\0\0ÐÂŋÂĸ \0+¸Âĸ  \v \v\xA0Âĸ"Âĸ\xA0" +!  Âĸ" Âĸ \xA0"! ! " Âĸ !Âĸ \f\xA0" !\f +! \0+˜\x07! +(!  \0+\x07   \f šÂĸ"Âĸ  Âĸ\xA0"\rÂĸÂĸ9\0     \fÂĸ"\vÂĸ  Âĸ\xA0"\fÂĸ \0+\x07Âĸ9\b    " +Âĸ" Âĸ \0+\x07Âĸ9  5 4ÂĸD\0\0\0\0\0\0N@ÂŖ" \x1BŸ Âĸ ÂŖ    Âĸ"ÂĸÂĸ ÂŖÂĄ" Âĸ + Âĸ Ÿ ÂŖ  !Âĸ D\0\0\0\0\0\0ø?Âĸ\xA0 Âĸ ÂŖ\xA0"Âĸ\xA0Âĸ9    \fÂĸ \v Âĸ  ÂĸÂĄ Âĸ\xA0Âĸ9\b    \rÂĸ  Âĸ  ÂĸÂĄ Âĸ\xA0Âĸ9\0A\0!\v  :\0\0 Aà\0j$\0\vÀ\x07# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (\b! (\f! (! (! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\x07\v# +E@ \0(\0E!\v # +AFr@# +E@#\0"Ak"$\0 A\x006\f \0A j!A!\v# +E \x07Er@ ,A\0# +AF\r\v# +E@ \0("A\0G!@ E\r\0@@ A\bjA\0AÞH\0@  (\fAj6\f  A\fj6\f\v   \x1B! Ak!\v (\0"A\0G! E\r \r\0\v\v@ @ ("@ A\x006\0\v A\x006\f\v \0A\x006\v \0 6 + (\f!\v # +AFr@@ \0 A\fj# +\x1B!\0# +E \x07AFr@ \0A\0 A# +AF\r\v# +E@ (\f"\r\v\v\v# +E@ @ A\fj+\v Aj$\0\v\v# +E@ \0(\f@ \0A\bj"\0AÞ\0 \0A\x1B\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  6#\v#\v(\0Aj6\0\vÞ +\x07# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! (\f! (! (! (\b!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\x07\v# +E@#\0Ak"$\0 \0(\b"E!\v@# +E@ \r A\0N!\v # +AFr@# +E@ \0AÞA\0!\v # +AFr@  \0Aj# +\x1B!@# +E \x07Er@ \0 AA\0# +AF\r\v# +E@ \0AÞA\0"\r\v\v\v# +E@ \0(\f"E!\v # +AFr@# +E@ B\x007\b B\x007\0 \0 6\f \0A\0Þ\0 \0(@ \0A\v A\fj!\0AÈ!@ @ Ak! (\fE"\r\v\v \0AÞ\0 (\fAG\r#!\v@@ # +AFr@@# +E \x07AFr@ \0AD\0\0\0\0\0\0ð? A# +AF\r\b!\v# +E@ A¡F"\r\v\v# +E\r\v# +E \x07AFr@ \0AD\0\0\0\0\0\0ð A# +AF\r!\v\v# +E@ (\fAF"\r\v\v# +E\r\v# +E@  (\0Aj"6\0  F!\v@# +E@ @ \0A\x006\f \0A\0Þ\0 \0(@ \0A\v Aj"\0AÞ\0 (\bE"\r \0A\f\v \0A\0Þ\0 \0(@ \0A\v A\bj! Aj!\0\v# +E \x07AFr@ \0 A\0A# +AF\r\v\v# +E@ AÞ\0AG\r A\fj"\0AÞ\0E\r \0A\f\v\v# +E@ \0(\b"AÃŋÃŋÃŋÃŋ\x07q!\v # +AFr@# +E@ \0A\0 Aj"ÞH\0!\v # +AFr@  \0Aj# +\x1B!@# +E \x07AFr@ \0  A# +AF\r\v# +E@ \0A\0 ÞH\0"\r\v\v\v# +E@ \0 \0(\f"Aj6\f \0A\fj!  F!\v@# +E@ @ A\0Þ\0 \0(E"\r A\f\v \0A\0Þ\0 \0(@ \0A\v (\0"A\0L\r \0Aj!\v@# +E \x07AFr@   A# +AF\r\v# +E@ (\0"A\0J\r\v\v\v# +E@A\0AÞÐpA\0 k AÞ\0"G!\v@ # +AFr@# +E@ (\0"E\r \0Aj!\v@# +E \x07AFr@   A# +AF\r\v# +E@ (\0"\r\v\v# +E\r\v# +E@ A\0Þ\0 \0(E\r A\v\v# +E@@ \0(! \0(\0"Ak! \0  A\0 A€€€xG"\x1BÞH\0 G\r\0\v@ @ AG\r E\r\v \0A\v:\v\v\v# +E@ Aj$\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  6#\v#\v(\0Aj6\0\vH A\0L@\v#\0A k"B\x007\b B\x007  Ak6 \0 )7\0 \0 (6\b \0 )\b7\f\vÄ# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@AÐð\0(\0!\0\v \0# +AFr@@# +E Er@AÐð\0AÔð\0 \0A\0# +AF\r\v# +E@AÐð\0(\0"\0\r\v\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\vÛ# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v@ \0## +\x1B"\0# +AFr@# +E@AÈð\0Þ\0\r#"\0-\0\0E!\v # +AFr@# +E@ \0A:\0\0\v# +E Er@AàÎ\0A\0# +AF\r!\0\v# +E@AàÎ\0#V!\0AàÎ\0 \0E!\v@# +E@ \r \0( \r\v# +E AFr@ \0;A# +AF\r\v\v# +E@#A\0:\0\0\v\v\v# +E@\v\v# +E@AÈð\0Þ\0\b\x07\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\vÃ˛# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#"\0(HE@ \0AÂ€Ãą\x006H\v#("AŒÃĩ\0(\0F!\0\v@# +E@ \0\rA€Ãĩ\0A\0AÃŋÃŋÃŋÃŋ\x07ÞH\0A +AŒÃĩ\0#(6\0A\0\vA +G\rAä\0!\0@@ \0E"\r\0A€Ãĩ\0(\0E"\r\0 \0Ak!\0A„Ãĩ\0(\0E"\r\v\vA€Ãĩ\0A\0AÃŋÃŋÃŋÃŋ\x07ÞH\0A +AŒÃĩ\0#(6\0A\0\vA +F!\0\v \0# +AFr@@# +E@A€Ãĩ\0(\0"\0E!\v@# +E@ \rA„Ãĩ\0AÞ\0A€Ãĩ\0 \0 \0A€€€€xr"\0ÞH\0AˆÃĩ\0(\0!\v# +E Er@A€Ãĩ\0 \09A\0# +AF\r!\0\v# +E@A„Ãĩ\0AÞ%\0 \0E"\r \0A\x1BG\r\v\v# +E@A€Ãĩ\0A\0AÃŋÃŋÃŋÃŋ\x07ÞH\0A +AŒÃĩ\0#(6\0A\0\vA +F"\0\r\v\v\v# +E@AŒÃĩ\0#(6\0\v\v# +E@A\xA0Ãĩ\0(\0"!\0@@ \0At"(°uE@A„ï\0 \x006\0A\xA0Ãĩ\0 \x006\0 A°Ãĩ\0jA +6\0\f\v  \0AjAÃŋ\0q"\0G\r\v\v2\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\vÞ# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (\b! (\f! (! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0A k"$\0 \0(\bE!\v@ # +AFr@  \0Aj# +\x1B!# +E Er@ A\0# +AF\r!\v# +E@ \0A6\f  \0A(j!\0\v# +E AFr@ \0JA# +AF\r\v# +E\r\v# +E@ \0(!\v # +AFr@# +E@ \0(! \0(\f! A6 A 6  \x006  \x006  )7\b A\bj!\v# +E AFr@   /A# +AF\r!\v# +A \x1BE\r\v# +E AFr@ \0"A# +AF\r\v\v# +E@ A j$\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6#\v#\v(\0Aj6\0\v¨ # +AF@#\v#\v(\0A(k6\0#\v(\0"(\0!\0 (\b! (\f! (! (! (!\x07 (!\b ( ! + ($!\v (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0! \v# +E@#\0A€k"\b$\0#\0Aà\0k"$\0Aˆï\0(\0AF!\v@# +E@ @#\0Ak"A\x006\f\f\v#\0"Ak"$\0\v@@# +E@Aˆï\0A\0AÞH\0!\v@@@# +E@@ \0\v Aj"Aˆï\x006 A6 #"\x07(D" +6\f \x07 6D\v# +E Er@OA\0# +AF\r\x07\v# +E@# (\f"\x076DAˆï\0AÞA\0AG"\rAˆï\0AÃŋÃŋÃŋÃŋ\x07\x1B\v\v# +E@ Aj"$\0\f\v\v# +E@Aˆï\0AAÞH\0!\v\v# +E AFr@Aˆï\0A\0AA# +AF\r\v# +E\r\v\v\v# +E@ A\0AÐ\0Ãŧ\v\0  6\\  6X A\x006T A\x006P \bA j" (\\6\0  (X6  (T6\b  (P6\f Aj AÐ\0Ãŧ +\0\0 Aà\0j"$\0 \bA6 \bA\x076 \b \b)7\b \b 6 \b 6 \bA\bj!\v# +E AFr@AàÎ\0 \0 /A# +AF\r!\0\vA\0 \v \0# +\x1B"\v# +AFr  \bA0j# +\x1B!# +E AFr@ A# +AF\r!\0\v# +E@ \b(,E!\0\v \0# +AFr@  \bAÈ\0j# +\x1B!@# +E@#\0A k"\0$\0 \0A\x006 \0B\x007 \0B\x007\b (#@\v -\0\0AqE!\v@# +E@@ \r\0 (AÃŋÃŋÃŋÃŋ\x07q"#(F"\r\0\f\v (\0! +\v@# +E@ +@ (\b! A\fjAÞ\0 A\bj!\f\v A j!\v# +E AFr@ ,A# +AF\r\v# +E@ \0A6 \0A\x006 \0 ("6\f  \0A\bj"6@ (E"\x07@  6\f\v  \0A\bj6\0\v + \0Aj!A!\v\v# +E@ #!\x07 \0Aj"@  \x07-\0(6\0\v \x07A:\0( \0(AF"@#"A:\0(\v\v# +E AFr@  -A# +AF\r!\v# +E@ (\0 G!\x07\v@# +A \x07\x1BE\r\0@# +E@ A\x1BGA\0 \x1B"\x07\r\v# +E AFr@  -A# +AF\r\x07!\v# +E@ (\0 F"\x07\r\v\v\v# +E@ A\0 A\x1BG"\x1B!\v@@# +E@ +@ A\vF@A\vA\0 (\b F\x1B!\v A\fj"AÞ\0A€€€xG"\r\f\v \0AjA\0AÞH\0E!\v # +AFr@  A j# +\x1B!# +E A\x07Fr@ ,A\x07# +AF\r \v# +E@@ ( \0A\bjF@  \0(\f6\f\v \0(\b"E\r\0  \0(\f6\v@ \0A\bj"\x07 (F@  \0(\b6\f\v \0(\f"E"\x07\r\0  \0(\b"\x076\0\v + \0("E"\r AÞ\0AG"\r \0(!\f\v\v  \0Aj# +\x1B!# +E A\bFr@ ,A\b# +AF\r\b\v# +E A Fr@ A # +AF\r\b!\v# +E@@ \0(\f\r\0 -\0\0A\bq\r\0 A\bjAÞ\0\v@ \0(\b"@ ("A\0J"@ Aj"  A€€€€xr"\x07ÞH\0\v A\fj"A\0Þ\0 AÃŋÃŋÃŋÃŋ\x07\x1B\f\v -\0\0A\bq\r\0 A\bjAÞ%\0\v \0(\f\v\v# +E@ A\x1B\v\v# +E A +Fr@ A +# +AF\r!\v# +  \0("AM"\x07#"\x07 :\0(A\0A\v!   \x1BA\vG"\rA\v\v!# +E@ AM"#" :\0(A\0A\v!\v\v# +E@ \0A j$\0 \b(,E"\0\r\v\v\v# + \0  \b(,AF\v \0\v# +E \vE# +AFrq\x1B!\0  \bA j# +\x1B!# +E A\vFr@ RA\v# +AF\r\v# +E@ \bA€j$\0 \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  6  \x076  \b6  +6  \v6$#\v#\v(\0A(j6\0A\0\vß# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@ \0(\bE!\v # +AFr@  \0Aj# +\x1B!# +E Er@ FA\0# +AF\r\v# +E@ \0A(j"\0(\0E!\v@# +E@ \r \0(\fE\r \0A\fj"A€€€€xÞ3\0 \0A\bj"AÞ\0 AÃŋÃŋÃŋÃŋ\x07\x1B \0(\f"\0AÃŋÃŋÃŋÃŋ\x07qE\r\v@# +E AFr@ A\0 \0A# +AF\r\v# +E@ (\0"\0AÃŋÃŋÃŋÃŋ\x07q\r\v\v\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\vg \0 \0(XF@ \0B\x007XA„ï\0(\0A\0)\v#(HA„ï\0(\0"Atj(\0" \0F@  (X)\v \0(\\" \0(X"6X  6\\ \0B\x007X\vÎ# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (\b! (\f! (! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0A k"$\0 \0(\bE!\v@ # +AFr@  \0Aj# +\x1B!# +E Er@ A\0# +AF\r!\v# +E@ \0A6\f \0S  \0A(j!\0\v# +E AFr@ \0JA# +AF\r\v# +E\r\v# +E@ \0S \0(! \0(\f! A6 A6  \x006  \x006  )7\b A\bj!\v# +E AFr@   /A# +AF\r!\v# +A \x1BE\r\0# +E AFr@ \0"A# +AF\r\v\v# +E@ A j$\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6#\v#\v(\0Aj6\0\v—\r# +AF@#\v#\v(\0A k6\0#\v(\0"(\0!\0 (\b! (\f! (! (! (!\v (! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\f\v# +E@ \0 V"E!\v@ # +AFr@# +E@ \0(" \0( F!\v # +AFr@# +E@ At"A \x1B"At! \0("\vE!\v@ # +AFr@# +E \fEr@ A\0# +AF\r!\v# +E\r\v# +E@ A@O@#Aj"A06\0A\0!\f\vAŒÃŊ\0-\0\0Aq!\v@ # +AFr@# +E \fAFr@AÃŊ\0A# +AF\r\x07!\v# +A \x1BE\r\v# +E@A A\vjAxq A\vI\x1B!\x07A\0! \vA\bk"(" +Axq!@ +AqE@ \x07A€I\r  \x07AjO@ !  \x07kAÀÚ\0(\0AtM\r\vA\0!\f\v  j!\b@  \x07O@  \x07k"AI\r  \x07 +AqrAr6  \x07j" Ar6 \b \b(Ar6  b\f\v \bAèÚ\0(\0F@ \x07AÜÚ\0(\0 j"O\r  \x07 +AqrAr6  \x07j"  \x07k"Ar6AÜÚ\0 6\0AèÚ\0 6\0\f\v \bAäÚ\0(\0F@ \x07AØÚ\0(\0 j"K\r@  \x07k"AO@  \x07 +AqrAr6  \x07j" Ar6  j" 6\0  (A~q6\f\v   +AqrAr6  j"(Ar!  6A\0!A\0!\vAäÚ\0 6\0AØÚ\0 6\0\f\v \b("Aq\r Axq j" \x07I\r  \x07k! \b(\f!@ AÃŋM@  \b(\b"F@AÐÚ\0AÐÚ\0(\0A~ Avwq6\0\f\v  6\f  6\b\f\v \b(!\r@  \bG@ \b(\b" 6\f  6\b\f\v@ \b(" \bAj \b("E\r \bAj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\vA\0!\v \rE\r\0@ \b \b("At"(€|F@ A€Ãŧ\0j 6\0 \rAÔÚ\0AÔÚ\0(\0A~ wq6\0\f\v@ \b \r(F@ \r 6\f\v \r 6\v E\r\v  \r6 \b("@  6  6\v \b("E\r\0  6  6\v AM@   +AqrAr6  j"(Ar!  6\f\v  \x07 +AqrAr6  \x07j" Ar6  j"(Ar!  6  b\v !\vAŒÃŊ\0-\0\0Aq"@AÃŊ\0\v A\bj! \r\v# +E \fAFr@ A# +AF\r!\v# +E@A\0! E"\rA|Ax \vAk(\0"Aq\x1B!  Axqj"K!  \v  \x1B"#\v# +E \fAFr@ \vA# +AF\r\v\v  # +\x1B!\v# +E@ "E\r \0 6 \0 6\v\v# +E \fAFr@ [A# +AF\r!\v# +E@ E\r \0 \0("Aj6 \0( Atj 6\0\v\v# +E@ \v\v# +E@A\0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  6  \v6  6#\v#\v(\0A j6\0A\0\vJ@ \0("A\0L\r\0 \0(!A\0!\0@   \0Atj(\0"(G@  \0Aj"\0G\r\f\v\v \vA\0\vÊ\x07# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (\b! (\f! (! (! (!\x07 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\b\v# +E@ \0(0Aj \0(("o" \0(,G!\v@# +E@ \r Al!\v# +E \bEr@ A\0# +AF\r!\vA\0  # +\x1B"# +AFr# +E@ At!\x07@ \0(," \0(0"L@  \0($ A\flj  k"A\fl#\f\v  \0($ A\flj \0(( k"A\fl"#  j \0($ A\fl#  j!\v \0($!\v# +E \bAFr@ A# +AF\r\v# +  \0 60 \0A\x006, \0 \x076( \0 6$A\v \v# +E E# +AFrq\x1B!# +E@ \rA\0\v\v# +E@ \0($ \0(0A\flj" (\b6\b  )\x007\0 \0 \0(0Aj \0((o60A\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  6  \x076#\v#\v(\0Aj6\0A\0\v€# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (\b! (\f! (! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0Ak"$\0 \0Aj!\v# +E Er@ A\0# +AF\r!\v# +E@ \0(0" \0(,G!\v # +AFr@@# +E@ Aj \0Y (\b!\v # +AFr@# +E@ (\f!\v# +E AFr@  \0\0A# +AF\r\v\v# +E@ \0(0" \0(,G"\r\v\v\v# +E@  \0A\0Þ\0 Aj$\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6#\v#\v(\0Aj6\0\v8 \0 ($ (,"A\flj"(\b6\b \0 )\x007\0  Aj ((o6,\vÃŦ# +AF#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 ( \v \0Aj# +\x1B!# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E Er@ FA\0# +AF\r\v# +E@ \0($!\v# +E AFr@ A# +AF\r\v# +E AFr@ \0A# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\vä\x07# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! (\f! (! (!\x07 (\b!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0A@j"$\0AÃŦÃĢ\0*E!\v # +AFr@# +E@A\xA0ÃŦ\0(\0"AèÃĢ\0G!\v # +AFr@@# +E@ (8! Þ\0E!\v # +AFr@# +E@ (4" (8"68  64\v# +E Er@ ZA\0# +AF\r\v\v# +E@ "AèÃĢ\0G"\r\v\v\v# +E@AÃŦÃĢ\0\v\v# +E AFr@A<A# +AF\r!\v@# +A  E# +\x1B"\x1BE\r\0# +E AFr@A€\fA# +AF\r!\v# +AF  E# +\x1Br@# +E AFr@ A# +AF\r\v# +E\r\v# +E@ A\x006< B\x007 B\x007( B\x0070  \x006 A\x006  6 A€6 A\x006\f A\x006\b A\x006 A\x006\0  (<6\0  )07  )(7\f  ) 7  (6  (6  (6$  (6(  (\f6,  (\b60  (64  (\x0068 !\x07\v\v# +E@ A@k$\0 \x07\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  \x076#\v#\v(\0Aj6\0A\0\vN~A\0 \0B4ˆ§AÃŋq"AÃŋ\x07I\r\0A AÂŗ\bK\r\0A\0BAÂŗ\b k­†"B} \0ƒB\0R\r\0AA \0 ƒP\x1B\v\vô\v|~\x07#\0Ak"$\0@@ ÂŊ" B4ˆ§"\rAÃŋq"Až\bk"AÃŋ~K \0ÂŊ"\bB4ˆ§"\vAÃŋkA‚pOq\r\0 B†" +B€€€€€€€|B€€€€€€T@D\0\0\0\0\0\0ð?! \bB€€€€€€€ø?Q\r +P\r +B€€€€€€pT \bB†"\bB€€€€€€€pXqE@ \0 \xA0!\f\v \bB€€€€€€€ðÃŋ\0Q\rD\0\0\0\0\0\0\0\0  Âĸ B\0S \bB€€€€€€€ðÃŋ\0Ts\x1B!\f\v \bB†B€€€€€€€|B€€€€€€T@ \0 \0Âĸ! \bB\0S@ š  \\AF\x1B!\v B\0Y\r#\0Ak"\vD\0\0\0\0\0\0ð? ÂŖ9\b \v+\b!\f\v \bB\0S@ \\"\fE@ \0 \0ÂĄ"\0 \0ÂŖ!\f\v \vAÃŋq!\vA€€A\0 \fAF\x1B!\f \0ÂŊBÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋ\0ƒ!\b\v AÃŋ~M@D\0\0\0\0\0\0ð?! \bB€€€€€€€ø?Q\r AÂŊ\x07M@  š \bB€€€€€€€ø?V\x1BD\0\0\0\0\0\0ð?\xA0!\f\v \rAÃŋK \bB€€€€€€€ø?VG@#\0Ak"\vD\0\0\0\0\0\0\0p9\b \v+\bD\0\0\0\0\0\0\0pÂĸ!\f\v#\0Ak"\vD\0\0\0\0\0\0\09\b \v+\bD\0\0\0\0\0\0\0Âĸ!\f\v \v\r\0 \0D\0\0\0\0\0\x000CÂĸÂŊBÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋ\0ƒB€€€€€€€\xA0}!\b\v| B€€€@ƒÂŋ"  \bB€€€€ÐÂĒÂĨÃŗ?}" B4‡¹"A¨É\0+\0Âĸ B-ˆ§AÃŋ\0qAt"\v+€J\xA0 \b B€€€€€€€xƒ}"\bB€€€€\b|B€€€€pƒÂŋ"\0 \v+èI"ÂĸD\0\0\0\0\0\0ðÂŋ\xA0" \bÂŋ \0ÂĄ Âĸ"\xA0"\0 A\xA0É\0+\0Âĸ \v+øI\xA0" \0 \xA0"ÂĄ\xA0\xA0  \0A°É\0+\0"Âĸ"  Âĸ"\xA0Âĸ\xA0  Âĸ"   \xA0"ÂĄ\xA0\xA0 \0 \0 Âĸ"Âĸ   \0AàÉ\0+\0ÂĸAØÉ\0+\0\xA0Âĸ \0AÐÉ\0+\0ÂĸAÈÉ\0+\0\xA0\xA0Âĸ \0AÀÉ\0+\0ÂĸA¸É\0+\0\xA0\xA0Âĸ\xA0"\0   \0\xA0"ÂĄ\xA09\b ÂŊB€€€@ƒÂŋ"Âĸ!\0  ÂĄ Âĸ  +\b  ÂĄ\xA0Âĸ\xA0@ \0ÂŊB4ˆ§AÃŋq"\vAÉ\x07kA?I\r\0 \vAÉ\x07I@ \0D\0\0\0\0\0\0ð?\xA0"\0š \0 \f\x1B\f\v \vA‰\bIA\0!\v\r\0 \0ÂŊB\0S@#\0Ak"\vD\0\0\0\0\0\0\0D\0\0\0\0\0\0\0 \f\x1B9\b \v+\bD\0\0\0\0\0\0\0Âĸ\f\v#\0Ak"\vD\0\0\0\0\0\0\0ðD\0\0\0\0\0\0\0p \f\x1B9\b \v+\bD\0\0\0\0\0\0\0pÂĸ\f\v \0A°8+\0ÂĸA¸8+\0"\xA0" ÂĄ"AÈ8+\0Âĸ AÀ8+\0Âĸ \0\xA0\xA0\xA0"\0 \0Âĸ" Âĸ \0Aè8+\0ÂĸAà8+\0\xA0Âĸ  \0AØ8+\0ÂĸAÐ8+\0\xA0Âĸ ÂŊ" §AtAðq"\r+\xA09 \0\xA0\xA0\xA0!\0 \r)¨9 \f­|B-†|!\b \vE@| B€€€€\bƒP@ \bB€€€€€€€ˆ?}Âŋ" \0Âĸ \xA0D\0\0\0\0\0\0\0Âĸ\f\v \bB€€€€€€€ð?|"\bÂŋ" \0Âĸ" \xA0"\0™D\0\0\0\0\0\0ð?c|#\0Ak"\v \vD\0\0\0\0\0\0\x009\b \v+\bD\0\0\0\0\0\0\0Âĸ9\b \bB€€€€€€€€€ƒÂŋ \0D\0\0\0\0\0\0ðÂŋD\0\0\0\0\0\0ð? \0D\0\0\0\0\0\0\0\0c\x1B"\xA0"   \0ÂĄ\xA0 \0  ÂĄ\xA0\xA0\xA0 ÂĄ"\0 \0D\0\0\0\0\0\0\0\0a\x1B \0\vD\0\0\0\0\0\0\0Âĸ\v\f\v \bÂŋ" \0Âĸ \xA0\v!\v Aj$\0 \vÉ|~#\0A0k" +$\0@@@ \0ÂŊ"B ˆ§"AÃŋÃŋÃŋÃŋ\x07q"AÃēÔÂŊ€M@ AÃŋÃŋ?qAÃģÃ$F\r AÃŧ²‹€M@ B\0Y@  \0D\0\0@TÃģ!ÚÂŋ\xA0"\0D1cba´ÐÂŊ\xA0"9\0  \0 ÂĄD1cba´ÐÂŊ\xA09\bA!\f\v  \0D\0\0@TÃģ!Ú?\xA0"\0D1cba´Ð=\xA0"9\0  \0 ÂĄD1cba´Ð=\xA09\bA!\f\v B\0Y@  \0D\0\0@TÃģ! À\xA0"\0D1cba´àÂŊ\xA0"9\0  \0 ÂĄD1cba´àÂŊ\xA09\bA!\f\v  \0D\0\0@TÃģ! @\xA0"\0D1cba´à=\xA0"9\0  \0 ÂĄD1cba´à=\xA09\bA~!\f\v AÂģÂŒÃąÂ€M@ AÂŧÃģ׀M@ AÃŧÂ˛Ã‹Â€F\r B\0Y@  \0D\0\x000|ÙÀ\xA0"\0Dʔ“§‘ÊÂŊ\xA0"9\0  \0 ÂĄDʔ“§‘ÊÂŊ\xA09\bA!\f\v  \0D\0\x000|Ù@\xA0"\0Dʔ“§‘Ê=\xA0"9\0  \0 ÂĄDʔ“§‘Ê=\xA09\bA}!\f\v AÃģÃä€F\r B\0Y@  \0D\0\0@TÃģ!À\xA0"\0D1cba´ðÂŊ\xA0"9\0  \0 ÂĄD1cba´ðÂŊ\xA09\bA!\f\v  \0D\0\0@TÃģ!@\xA0"\0D1cba´ð=\xA0"9\0  \0 ÂĄD1cba´ð=\xA09\bA|!\f\v AÃēÃä‰K\r\v \0DƒÈÉm0_ä?ÂĸD\0\0\0\0\0\x008C\xA0D\0\0\0\0\0\x008Ã\xA0"Ãŧ!@ \0 D\0\0@TÃģ!ÚÂŋÂĸ\xA0" D1cba´Ð=Âĸ"ÂĄ"D-DTÃģ!ÊÂŋc@ Ak! D\0\0\0\0\0\0ðÂŋ\xA0"D1cba´Ð=Âĸ! \0 D\0\0@TÃģ!ÚÂŋÂĸ\xA0!\f\v D-DTÃģ!Ê?dE\r\0 Aj! D\0\0\0\0\0\0ð?\xA0"D1cba´Ð=Âĸ! \0 D\0\0@TÃģ!ÚÂŋÂĸ\xA0!\v   ÂĄ"\x009\0@ Av" \0ÂŊB4ˆ§AÃŋqkAH\r\0   D\0\0\`a´Ð=Âĸ"\0ÂĄ" Dsp.ŠÂŖ;Âĸ  ÂĄ \0ÂĄÂĄ"ÂĄ"\x009\0  \0ÂŊB4ˆ§AÃŋqkA2H@ !\f\v   D\0\0\0.ŠÂŖ;Âĸ"\0ÂĄ" DÁI %šƒ{9Âĸ  ÂĄ \0ÂĄÂĄ"ÂĄ"\x009\0\v   \0ÂĄ ÂĄ9\b\f\v A€€ÀÃŋ\x07O@  \0 \0ÂĄ"\x009\0  \x009\bA\0!\f\v +Aj"A\br! BÃŋÃŋÃŋÃŋÃŋÃŋÃŋ\x07ƒB€€€€€€€°Á\0„Âŋ!\0A!@  \0Ãŧ¡"9\0 \0 ÂĄD\0\0\0\0\0\0pAÂĸ!\0 A\0! !\r\0\v + \x009 A!@ "Ak! +Aj" Atj+\0D\0\0\0\0\0\0\0\0a\r\0\vA\0!#\0A°k"$\0 AvA–\bk"AkAm"\bA\0 \bA\0J\x1B"\x07Ahl j!\fA”"(\0"\b Aj" Ak"\vjA\0N@ \b j! \x07 \vk!@ AÀj Atj A\0H|D\0\0\0\0\0\0\0\0 At(\xA0"¡\v9\0 Aj! Aj" G\r\0\v\v \fAk!A\0! \bA\0 \bA\0J\x1B! A\0L!\r@@ \r@D\0\0\0\0\0\0\0\0!\0\f\v  \vj!A\0!D\0\0\0\0\0\0\0\0!\0@  Atj+\0 AÀj  kAtj+\0Âĸ \0\xA0!\0 Aj" G\r\0\v\v  Atj \x009\0  F Aj!E\r\0\vA/ \fk!A0 \fk! \x07AtA\xA0"j! \b!@@  Atj+\0!\0A\0! ! A\0J@@ Aàj Atj \0D\0\0\0\0\0\0p>ÂĸÃŧ¡"D\0\0\0\0\0\0pÁÂĸ \0\xA0Ãŧ6\0  AtjA\bk+\0 \xA0!\0 Ak! Aj" G\r\0\v\v \0 ("\0 \0D\0\0\0\0\0\0À?ÂĸœD\0\0\0\0\0\0 ÀÂĸ\xA0"\0 \0Ãŧ"\r¡¥!\0@@@ A\0L"E@ At j" (Ü"  u" tk"6Ü  \rj!\r  u\f\v \r At j(ÜAu\v"\vA\0L\r\f\vA!\v \0D\0\0\0\0\0\0à?f\r\0A\0!\v\f\vA\0!A\0!\x07A! A\0J@@ Aàj Atj"(\0!@  \x07AÃŋÃŋÃŋ\x07 E\rA€€€\b\v k6\0A!\x07A\0\f\vA\0!\x07A\v! Aj" G\r\0\v\v@ \r\0AÃŋÃŋÃŋ!@@ Ak\0\vAÃŋÃŋÃŋ!\v At j"\x07 \x07(Ü q6Ü\v \rAj!\r \vAG\r\0D\0\0\0\0\0\0ð? \0ÂĄ!\0A!\v \r\0 \0D\0\0\0\0\0\0ð? (ÂĄ!\0\v \0D\0\0\0\0\0\0\0\0a@A\0! !@  \bL\r\0@ Aàj Ak"Atj(\0 r!  \bJ\r\0\v E\r\0@ Ak! Aàj Ak"Atj(\0E\r\0\v\f\vA!@ "Aj! Aàj \b kAtj(\0E\r\0\v  j!@ AÀj  j"\x07Atj  Aj"Atj(\0¡9\0A\0!D\0\0\0\0\0\0\0\0!\0 A\0J@@  Atj+\0 AÀj \x07 kAtj+\0Âĸ \0\xA0!\0 Aj" G\r\0\v\v  Atj \x009\0  H\r\0\v !\f\v\v@ \0A \fk("\0D\0\0\0\0\0\0pAf@ Aàj Atj \0D\0\0\0\0\0\0p>ÂĸÃŧ"¡D\0\0\0\0\0\0pÁÂĸ \0\xA0Ãŧ6\0 Aj! \f!\f\v \0Ãŧ!\v Aàj Atj 6\0\vD\0\0\0\0\0\0ð? (!\0 A\0N@ !@  "Atj \0 Aàj Atj(\0¡Âĸ9\0 Ak! \0D\0\0\0\0\0\0p>Âĸ!\0 \r\0\vA\0!\x07 !@ \b \x07 \x07 \bJ\x1B!  k!\f  Atj!A\0!D\0\0\0\0\0\0\0\0!\0@ At" +ð7 j+\0Âĸ \0\xA0!\0  G Aj!\r\0\v A\xA0j \fAtj \x009\0 Ak!  \x07G \x07Aj!\x07\r\0\v\vD\0\0\0\0\0\0\0\0!\0 A\0N@ !@ "Ak! \0 A\xA0j Atj+\0\xA0!\0 \r\0\v\v + \0š \0 \v\x1B9\0 +\xA0 \0ÂĄ!\0A! A\0J@@ \0 A\xA0j Atj+\0\xA0!\0  G Aj!\r\0\v\v + \0š \0 \v\x1B9\b A°j$\0 \rA\x07q! ++\0!\0 B\0S@  \0š9\0  ++\bš9\bA\0 k!\f\v  \x009\0  ++\b9\b\v +A0j$\0 \vÃą|~ \0ÂŊ"B ˆ§AÃŋÃŋÃŋÃŋ\x07q"A€€À\xA0O@ \0D-DTÃģ!Ú? \0ÂĻ BÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋÃŋ\0ƒB€€€€€€€øÃŋ\0V\x1B\v@ AÃŋÃŋïÞM@A AÂ€Â€Â€Ã˛O\r\f\v \0™!\0 AÃŋÃŋËÃŋM@ AÃŋÃŋ—ÃŋM@ \0 \0\xA0D\0\0\0\0\0\0ðÂŋ\xA0 \0D\0\0\0\0\0\0\0@\xA0ÂŖ!\0A\0\f\v \0D\0\0\0\0\0\0ðÂŋ\xA0 \0D\0\0\0\0\0\0ð?\xA0ÂŖ!\0A\f\v AÃŋÃŋ€M@ \0D\0\0\0\0\0\0øÂŋ\xA0 \0D\0\0\0\0\0\0ø?ÂĸD\0\0\0\0\0\0ð?\xA0ÂŖ!\0A\f\vD\0\0\0\0\0\0ðÂŋ \0ÂŖ!\0A\v \0 \0Âĸ" Âĸ"    D/lj,D´ÂĸÂŋÂĸDšÃŊÞR-Þ­Âŋ\xA0ÂĸDmštÂ¯Ã˛Â°ÂŗÂŋ\xA0ÂĸDq#ÞÆqÂŧÂŋ\xA0ÂĸDÄÃĢ˜™™™ÉÂŋ\xA0Âĸ!      DÚ"ÃŖ:­?ÂĸDÃĢ\rv$K{Š?\xA0ÂĸDQ=Ð\xA0f\rÂą?\xA0ÂĸDn LÅÍE¡?\xA0ÂĸDÃŋƒ\0’$IÂ?\xA0ÂĸD\rUUUUUÕ?\xA0Âĸ! AÃŋÃŋïÞM@ \0 \0  \xA0ÂĸÂĄ\vAt"+! \0  \xA0Âĸ +°!ÂĄ \0ÂĄÂĄ"\0š \0 B\0S\x1B!\0\v \0\vÅ# +AF@#\v#\v(\0A$k6\0#\v(\0"\x07(\0!\0 \x07(\b! \x07(\f! \x07(! \x07(! \x07(! \x07(!\b \x07( ! \x07(!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0! +\v \bAÃļÃŋÃŋÃŋ\x07 k O# +\x1B"\b# +AFr@# +E@AÃˇÃŋÃŋÃŋ\x07!\b \0(\0 \0 \0,\0\vA\0H\x1B! AÃ˛ÃŋÃŋÃŋM  j" At"\bK!\x07A\v  \b \x07\x1B"A\x07rAj A\vI"\x1B \b\v!\b\v# +E +Er@ \b1A\0# +AF\r!\v# + @ E"\x07\r\0 \x07\r\0  Ãŧ +\0\0\v@ E"\x07\r\0 \x07\r\0  j  Ãŧ +\0\0\v  k!@  F\r\0 E\r\0   jj  j Ãŧ +\0\0\v A +G\v# +AFr@# +E +AFr@ A# +AF\r\v\v# +E@ \0 6\0 \0 \bA€€€€xr6\b \0   jj"\x006 \0 jA\0:\0\0\v\v# +E@@\0\v\v!\x07#\v(\0 \x076\0#\v#\v(\0Aj6\0#\v(\0"\x07 \x006\0 \x07 6 \x07 6\b \x07 6\f \x07 6 \x07 6 \x07 6 \x07 \b6 \x07 6 #\v#\v(\0A$j6\0\v}@@ \0"AqE\r\0 -\0\0E@A\0\v@ Aj"AqE\r -\0\0\r\0\v\f\v@ "Aj!A€‚„\b (\0"k rA€‚„xqA€‚„xF\r\0\v@ "Aj! -\0\0\r\0\v\v  \0k\vÂĢ\v\x07 \0 j!@@ \0("Aq\r\0 AqE\r \0(\0" j!@@@ \0 k"\0AäÚ\0(\0G@ \0(\f! AÃŋM@  \0(\b"G\rAÐÚ\0AÐÚ\0(\0A~ Avwq6\0\f\v \0(! \0 G@ \0(\b" 6\f  6\b\f\v \0(" \0Aj \0("E\r \0Aj\v!@ !\x07 "Aj! ("\r\0 Aj! ("\r\0\v \x07A\x006\0\f\v ("AqAG\rAØÚ\0 6\0  A~q6 \0 Ar6  6\0\v  6\f  6\b\f\vA\0!\v E\r\0@ \0("At"(€| \0F@ A€Ãŧ\0j 6\0 \rAÔÚ\0AÔÚ\0(\0A~ wq6\0\f\v@ \0 (F@  6\f\v  6\v E\r\v  6 \0("@  6  6\v \0("E\r\0  6  6\v@@@@ ("AqE@AèÚ\0(\0 F@AèÚ\0 \x006\0AÜÚ\0AÜÚ\0(\0 j"6\0 \0 Ar6 \0AäÚ\0(\0G\rAØÚ\0A\x006\0AäÚ\0A\x006\0\vAäÚ\0(\0"\b F@AäÚ\0 \x006\0AØÚ\0AØÚ\0(\0 j"6\0 \0 Ar6 \0 j 6\0\v Axq j! (\f! AÃŋM@ (\b" F@AÐÚ\0AÐÚ\0(\0A~ Avwq6\0\f\v  6\f  6\b\f\v (!  G@ (\b" 6\f  6\b\f\v (" Aj ("E\r Aj\v!@ !\x07 "Aj! ("\r\0 Aj! ("\r\0\v \x07A\x006\0\f\v  A~q6 \0 Ar6 \0 j 6\0\f\vA\0!\v E\r\0@ ("At"(€| F@ A€Ãŧ\0j 6\0 \rAÔÚ\0AÔÚ\0(\0A~ wq6\0\f\v@  (F@  6\f\v  6\v E\r\v  6 ("@  6  6\v ("E\r\0  6  6\v \0 Ar6 \0 j 6\0 \0 \bG\r\0AØÚ\0 6\0\v AÃŋM@ AøqAøÚ\0j!AÐÚ\0(\0"A Avt"qE@AÐÚ\0  r6\0 \f\v (\b\v!  \x006\b  \x006\f \0 6\f \0 6\b\vA! AÃŋÃŋÃŋ\x07M@ A& A\bvg"kvAq AtrA>s!\v \0 6 \0B\x007 AtA€Ãŧ\0j!@@AÔÚ\0(\0"A t"\x07qE@AÔÚ\0  \x07r6\0  \x006\0 \0 6\f\v A AvkA\0 AG\x1Bt! (\0!@ "(Axq F\r Av! At!  Aqj"\x07("\r\0\v \x07 \x006 \0 6\v \0 \x006\f \0 \x006\b\v (\b" \x006\f  \x006\b \0A\x006 \0 6\f \0 6\b\v\vÙ# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +E@#\0Ak"$\0\v# +E \0Er@AÀÃŊ\0A\0# +AF\r\v# +E@A¸Ú\0(\0E@AÌÚ\0A6\0AÄÚ\0B7\0AÂŧÚ\0B€\xA0€€€€7\0AŒÃŊ\0A6\0 A\fj"A\x006\0#\0A k"\0B\x007 \0B\x007 \0B\x007\bA\xA0ÃŊ\0 \0)7\0A˜ÃŊ\0 \0)7\0AÃŊ\0 \0)\b7\0 @AÃŊ\0 (\x006\0\vA¸Ú\0 A\bjApqAØÂĒÕÂĒs6\0\vAÀÃŊ\0 Aj$\0\v\v!\0#\v(\0 \x006\0#\v#\v(\0Aj6\0#\v(\0 6\0#\v#\v(\0Aj6\0\v¡|@  N\r\0 A\0L\r\0@  l! A\0!\x07@ \0 \x07 jAl"\bj+\0!\r  \x07Atj+\0"\f! \0 \bA\bj" +j+\0! \f!\f \0 \bAj"\vj+\0!  \bj \r Âĸ  \fÂĸ\xA09\0  \vj 9\0  +j  Âĸ \r \fÂĸÂĄ9\0 \x07Aj"\x07 G\r\0\v Aj" G\r\0\v\v\v²# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#(x"\0AÞ\0\v# +E Er@ \0;A\0# +AF\r\v# +E@ \0AA\0ÞH\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\vI \0(<#\0Ak"\0$\0  AÃŋq \0A\bj"# 6AA\0\v! \0)\b! \0Aj$\0B  \x1B\vð\x07#\0A k"$\0  \0("6 \0(!  6  6   k"6  j!A!\x07@@@ \0(< Aj"A A\fj"# 6AA\0\v@ !\f\v@  (\f"F\r A\0H@ !\f\v A\bA\0  ("\bK" \x1Bj"  \bA\0 \x1Bk"\b (\0j6\0 A\fA \x1Bj" (\0 \bk6\0  k! \0(< " \x07 k"\x07 A\fj"# 6AA\0\vE\r\0\v\v AG\r\v \0 \0(,"6 \0 6 \0  \0(0j6 \f\v \0A\x006 \0B\x007 \0 \0(\0A r6\0A\0 \x07AF\r\0  (k\v A j$\0\v\0 \0(<"\0# \x006AA\0\v\v\x07\0A\0\0\v\0#\v\0 \0A\0ÞA\0AF@ \0AÃŋÃŋÃŋÃŋ\x07\x1B\v\vÒ# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v  \0# +\x1B!# +E Er@ A\0# +AF\r!\0\v# +E@@ \0E\r\0 \0Ak-\0\0AqE\r\0 \0 6\v \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0A\0\v\0\vÂĻ \b# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (\b! (\f! (! (!\x07 (!\b (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#"A:\0(  \x006@ A\0:\0) AÞ%|Ak!\0\v \0# +AFr@  AÃŧ\0j# +\x1B!@# +E Er@  \0D\0\0\0\0\0\0ð A\0# +AF\r!\0\v# +E@ Þ\0"\0\r\v\v\v# +E@ (x!\0\v# +E AFr@ \0XA# +AF\r\v# +E@ (x"\0Þ\0E!\v@ # +AFr@# +E AFr@ \0ZA# +AF\r\v# +E\r\v# +E AFr@AÃŦÃĢ\0A# +AF\r!\v# +E@ \0AèÃĢ\x0068 \0AœÃŦ\0(\x0064AœÃŦ\0 \x006\0 \0(4" \x0068AÃŦÃĢ\0\v\v ## +\x1B!@# +E@ (D!\0\v \0# +AFr@# +E@ \0(! \0(\0!  \0(\b"\x006D\v# +E AFr@  \0\0A# +AF\r\v# +E\r\v\v# +E@#"\0-\0*AqE!\v@# +A \x1BE\r\0@# +E AFr@EA# +AF\r\v# +E@ \0 \0-\0*AÞq:\0*A\0!\v@# +E@ At"(°u! \0(H j"\x07(\0! \x07A\x006\0 E!\x07\v@# +E@ \x07\r E"\x07\r AF"\x07\r2\v# +E AFr@  \0\0A# +AF\r\v# +E A\x07Fr@EA\x07# +AF\r\v\v# +E@ Aj"A€G"\r\v\v# +E@2 \0-\0*AqE\r \bAI! \bAj!\b \r\v\v\v# +E A\bFr@5A\b# +AF\r\v# +E@A\0AÞÐp@ (L"\0E\r\0 AÌ\0j" \0F\r\0@ \0A\bk(\0  \x006T  \0(\x006L \0A\fk"\0A€€€€ÞA\0! A\x006TE A\0NqE@ \0A\x1B\v (\0"\0E\r \0 G\r\0\v\v:Aï\0Aï\0(\0Ak"\x006\0 \0E@Aï\0A\0:\0\0\v (\f"\0 (\b"6\b  \x006\f  6\b  6\f4#E@A\0$A\0$A\0$A$ A j"\0AAÞH\0AF@ \v \0A\0Þ\0 \0A\x1B\vA\0\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  \x076  \b6#\v#\v(\0Aj6\0\v\xA0# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@ \0(,"\0A„6\v# +E Er@ \0A\0# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\v˜# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v \0# +AFrA\0# +E# +AF#\v#\v(\0Ak6\0#\v(\0(\0 \vEr\x1B@ \0A\0# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\v\f\0AÈð\0#Þ\0\vä# +AF@#\v#\v(\0A\fk6\0#\v(\0"(\0!\0 (! (\b!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@A„ï\0(\0A\0) \0!\v@# +E@ (X!\v# +E Er@ PA\0# +AF\r\v# +E@ " \0G"\r\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b#\v#\v(\0A\fj6\0\v†# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@ \0 \0(\0 \0( \0(\b \0(\f \0(A\0A\09 \0-\0 AF!\v # +AFr@# +E@ \0(!\v# +E Er@ A\0# +AF\r\v# +E AFr@ \0A# +AF\r\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\v"\0 (\0 ( (\b (\f ( \0 \vÑ|# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (\b! (\f! (! +!\x07 (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0A0k"$\0  6\f  \x006\b A\x006\0) A\0:\0( B\x007 A\x006  6  6 #"\x006 A\x006\0,\v|@@@# +E@@ \0\v A\bj!\0\v# +E Er@AÄï\0A\f \0QA\0# +AF\r!\0\v# +E\r\v# +E@#\0Ak"\0$\0 \0 A\bj6\f \0A\x006\b \0A\r6 \0Aj!\v# +E AFr@AÄï\0A\v QA# +AF\r!\v# +E@ \0Aj$\0 !\0\v\v# +E@ + D\0\0\0\0\0\0\0\0 \0\x1B\f\v\v# +E AFr@A(A# +AF\r!\v# +E@  A\bj"\0A(Ãŧ +\0\0 A:\0 \v# +E AFr@ A# +AF\r!\0\v# +E@  \x006 \0  ##\0A k"\0$\0 \0A\x006 \0A\r6 \0 6 \0 6 \0 \0)7\b \0A\bj!\v# +E AFr@AàÎ\0AÄï\0 /A# +AF\r\v# +| \x07 \0A j$\0D\0\0\0\0\0\0\0\0\v\v!\x07# +E@ A0j$\0 \x07\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6  \x079#\v#\v(\0Aj6\0D\0\0\0\0\0\0\0\0\vÃĒÚ\x07# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! (\b! (\f! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0Aà\0k"$\0 AÛ\0;T A:\0_ A\fj!\0\v# +E Er@ \0A\0A\0# +AF\r\v# +E AFr@ \0AÂŦ\vA# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AFr@ \0A‰!A# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AFr@ AA# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AFr@ \0A’\bA# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A\x07Fr@ \0A\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A\bFr@ \0A\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A Fr@ \0A # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A +Fr@ \0A +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A\vFr@ \0A\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A\fFr@ \0A\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A\rFr@ \0AA\r# +AF\r\v# +E AFr@ \0AÑ\bA# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AFr@ \0A‰!A# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AFr@ AA# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AFr@ \0A’\bA# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AFr@ \0A# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AFr@ \0A\bA# +AF\r\v# +E A\x1BFr@ \0A•\vA\x1B# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AFr@ \0A‰!A# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AFr@ AA# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AFr@ \0A’\bA# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A Fr@   \0A # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A!Fr@ \0A!# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A"Fr@ \0A"# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A#Fr@ \0A## +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A$Fr@ \0A$# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A%Fr@ \0A%# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A&Fr@ \0A&# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A'Fr@ \0A\fA'# +AF\r\v# +E A(Fr@ \0AÂŧ\bA(# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A)Fr@ \0A‰!A)# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A*Fr@ AA*# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A+Fr@   \0A+# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A,Fr@ \0A’\bA,# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A-Fr@   \0A-# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A.Fr@ \0A.# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A/Fr@ \0A/# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A0Fr@ \0A0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A1Fr@ \0A1# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A2Fr@ \0A2# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A3Fr@ \0A3# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A4Fr@ \0AA4# +AF\r\v# +E A5Fr@ \0A° A5# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A6Fr@ \0A‰!A6# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A7Fr@ AA7# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A8Fr@   \0A8# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A9Fr@ \0A’\bA9# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A:Fr@   \0A:# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A;Fr@ \0A;# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AFr@ \0A># +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A?Fr@ \0A?# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÀ\0Fr@ \0AÀ\0# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÁ\0Fr@ \0AAÁ\0# +AF\r\v# +E AÂ\0Fr@ \0Aà +AÂ\0# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃ\0Fr@ \0A‰!AÃ\0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÄ\0Fr@ AAÄ\0# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÅ\0Fr@   \0AÅ\0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÆ\0Fr@ \0A’\bAÆ\0# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÇ\0Fr@   \0AÇ\0# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÈ\0Fr@ \0AÈ\0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÉ\0Fr@ \0AÉ\0# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÊ\0Fr@ \0AÊ\0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AË\0Fr@ \0AË\0# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÌ\0Fr@ \0AÌ\0# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÍ\0Fr@ \0AÍ\0# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÎ\0Fr@ \0AAÎ\0# +AF\r\v# +E AÏ\0Fr@ \0A„ AÏ\0# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÐ\0Fr@ \0A‰!AÐ\0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÑ\0Fr@ AAÑ\0# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÒ\0Fr@   \0AÒ\0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÓ\0Fr@ \0A’\bAÓ\0# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÔ\0Fr@   \0AÔ\0# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÕ\0Fr@ \0AÕ\0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÖ\0Fr@ \0AÖ\0# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A×\0Fr@ \0A×\0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AØ\0Fr@ \0AØ\0# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÙ\0Fr@ \0AÙ\0# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÚ\0Fr@ \0AÚ\0# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÛ\0Fr@ \0AAÛ\0# +AF\r\v# +E AÜ\0Fr@ \0A˜\rAÜ\0# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÝ\0Fr@ \0A‰!AÝ\0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÞ\0Fr@ AAÞ\0# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Aß\0Fr@   \0Aß\0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Aà\0Fr@ \0A’\bAà\0# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃĄ\0Fr@   \0AÃĄ\0# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃĸ\0Fr@ \0AÃĸ\0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃŖ\0Fr@ \0AÃŖ\0# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Aä\0Fr@ \0Aä\0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃĨ\0Fr@ \0AÃĨ\0# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃĻ\0Fr@ \0AÃĻ\0# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Aç\0Fr@ \0Aç\0# +AF\r\v\v \0 A\fj# +\x1B!\0# +E Aè\0Fr@ \0A$Aè\0# +AF\r\v# +E AÊ\0Fr@ \0AÃē AÊ\0# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃĒ\0Fr@ \0A‰!AÃĒ\0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃĢ\0Fr@ AAÃĢ\0# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃŦ\0Fr@   \0AÃŦ\0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Aí\0Fr@ \0A’\bAí\0# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃŽ\0Fr@   \0AÃŽ\0# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Aï\0Fr@ \0Aï\0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E Að\0Fr@ \0Að\0# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃą\0Fr@ \0AÃą\0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃ˛\0Fr@ \0AÃ˛\0# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃŗ\0Fr@ \0AÃŗ\0# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Aô\0Fr@ \0Aô\0# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃĩ\0Fr@ \0AAÃĩ\0# +AF\r\v# +E AÃļ\0Fr@ \0AŠAÃļ\0# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃˇ\0Fr@ \0A‰!AÃˇ\0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E Aø\0Fr@ AAø\0# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÚ\0Fr@   \0AÚ\0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃē\0Fr@ \0A’\bAÃē\0# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃģ\0Fr@   \0AÃģ\0# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃŧ\0Fr@ \0AÃŧ\0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃŊ\0Fr@ \0AÃŊ\0# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÞ\0Fr@ \0AÞ\0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃŋ\0Fr@ \0AÃŋ\0# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A€Fr@ \0A€# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AFr@ \0A# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A‚Fr@ \0A(A‚# +AF\r\v# +E AƒFr@ \0AÇ Aƒ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A„Fr@ \0A‰!A„# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A…Fr@ AA…# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A†Fr@   \0A†# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A‡Fr@ \0A’\bA‡# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AˆFr@   \0Aˆ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A‰Fr@ \0A‰# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AŠFr@ \0AŠ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A‹Fr@ \0A‹# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AŒFr@ \0AŒ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AŽFr@ \0AŽ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AFr@ \0AA# +AF\r\v# +E AFr@ \0AÃē\fA# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A‘Fr@ \0A‰!A‘# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A’Fr@ AA’# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A“Fr@   \0A“# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A”Fr@ \0A’\bA”# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A•Fr@   \0A•# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A–Fr@ \0A–# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A—Fr@ \0A—# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A˜Fr@ \0A˜# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A™Fr@ \0A™# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AšFr@ \0Aš# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A›Fr@ \0A›# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AœFr@ \0A,Aœ# +AF\r\v# +E AFr@ \0AÛ +A# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AžFr@ \0A‰!Až# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AŸFr@ AAŸ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A\xA0Fr@   \0A\xA0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂĄFr@ \0A’\bAÂĄ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂĸFr@   \0AÂĸ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂŖFr@ \0AÂŖ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A¤Fr@ \0A¤# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂĨFr@ \0AÂĨ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂĻFr@ \0AÂĻ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A§Fr@ \0A§# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A¨Fr@ \0A¨# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AŠFr@ \0AAŠ# +AF\r\v# +E AÂĒFr@ \0A¨AÂĒ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂĢFr@ \0A‰!AÂĢ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂŦFr@ AAÂŦ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A­Fr@   \0A­# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂŽFr@ \0A’\bAÂŽ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A¯Fr@   \0A¯# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A°Fr@ \0A°# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂąFr@ \0AÂą# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A²Fr@ \0A²# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂŗFr@ \0AÂŗ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A´Fr@ \0A´# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂĩFr@ \0AÂĩ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂļFr@ \0A0AÂļ# +AF\r\v# +E A¡Fr@ \0AÞ A¡# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A¸Fr@ \0A‰!A¸# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AšFr@ AAš# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂēFr@   \0AÂē# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂģFr@ \0A’\bAÂģ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂŧFr@   \0AÂŧ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂŊFr@ \0AÂŊ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AžFr@ \0Až# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂŋFr@ \0AÂŋ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÀFr@ \0AÀ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÁFr@ \0AÁ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂFr@ \0AÂ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃFr@ \0A AÃ# +AF\r\v# +E AÄFr@ \0A¯\rAÄ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÅFr@ \0A‰!AÅ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÆFr@ AAÆ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÇFr@   \0AÇ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÈFr@ \0A’\bAÈ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÉFr@   \0AÉ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÊFr@ \0AÊ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AËFr@ \0AË# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÌFr@ \0AÌ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÍFr@ \0AÍ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÎFr@ \0AÎ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÏFr@ \0AÏ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÐFr@ \0A8AÐ# +AF\r\v# +E AÑFr@ \0A×AÑ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÒFr@ \0A‰!AÒ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÓFr@ A\bAÓ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÔFr@   \0AÔ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÕFr@ \0A’\bAÕ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÖFr@   \0AÖ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A×Fr@ \0A×# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AØFr@ \0AØ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÙFr@ \0AÙ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÚFr@ \0AÚ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÛFr@ \0AÛ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÜFr@ \0AÜ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÝFr@ \0AÀ\0AÝ# +AF\r\v# +E AÞFr@ \0AÂēAÞ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AßFr@ \0A‰!Aß# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AàFr@ A\bAà# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃĄFr@   \0AÃĄ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃĸFr@ \0A’\bAÃĸ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃŖFr@   \0AÃŖ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AäFr@ \0Aä# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃĨFr@ \0AÃĨ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃĻFr@ \0AÃĻ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AçFr@ \0Aç# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AèFr@ \0Aè# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÊFr@ \0AÊ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃĒFr@ \0AÈ\0AÃĒ# +AF\r\v# +E AÃĢFr@ \0A¡AÃĢ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃŦFr@ \0A‰!AÃŦ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AíFr@ A\bAí# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃŽFr@   \0AÃŽ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AïFr@ \0A’\bAï# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AðFr@   \0Að# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃąFr@ \0AÃą# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃ˛Fr@ \0AÃ˛# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃŗFr@ \0AÃŗ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AôFr@ \0Aô# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃĩFr@ \0AÃĩ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃļFr@ \0AÃļ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃˇFr@ \0AÐ\0AÃˇ# +AF\r\v# +E AøFr@ \0AÂŽ +Aø# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÚFr@ \0A‰!AÚ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃēFr@ AAÃē# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃģFr@   \0AÃģ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃŧFr@ \0A’\bAÃŧ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃŊFr@   \0AÃŊ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÞFr@ \0AÞ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃŋFr@ \0AÃŋ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A€Fr@ \0A€# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A‚Fr@ \0A‚# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AƒFr@ \0Aƒ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A„Fr@ \0A!A„# +AF\r\v# +E A…Fr@ \0AÌ\rA…# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A†Fr@ \0A‰!A†# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A‡Fr@ AA‡# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AˆFr@   \0Aˆ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A‰Fr@ \0A’\bA‰# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AŠFr@   \0AŠ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A‹Fr@ \0A‹# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AŒFr@ \0AŒ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AŽFr@ \0AŽ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AFr@ \0A# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A‘Fr@ \0AØ\0A‘# +AF\r\v# +E A’Fr@ \0A¨A’# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A“Fr@ \0A‰!A“# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A”Fr@ A\bA”# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A•Fr@   \0A•# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A–Fr@ \0A’\bA–# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A—Fr@   \0A—# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A˜Fr@ \0A˜# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A™Fr@ \0A™# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AšFr@ \0Aš# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A›Fr@ \0A›# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AœFr@ \0Aœ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AFr@ \0A# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AžFr@ \0Aà\0Až# +AF\r\v# +E AŸFr@ \0AŽAŸ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A\xA0Fr@ \0A‰!A\xA0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂĄFr@ A\bAÂĄ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂĸFr@   \0AÂĸ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂŖFr@ \0A’\bAÂŖ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A¤Fr@   \0A¤# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂĨFr@ \0AÂĨ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂĻFr@ \0AÂĻ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A§Fr@ \0A§# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A¨Fr@ \0A¨# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AŠFr@ \0AŠ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂĒFr@ \0AÂĒ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂĢFr@ \0Aè\0AÂĢ# +AF\r\v# +E AÂŦFr@ \0AôAÂŦ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A­Fr@ \0A‰!A­# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂŽFr@ A\bAÂŽ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A¯Fr@   \0A¯# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A°Fr@ \0A’\bA°# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂąFr@   \0AÂą# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A²Fr@ \0A²# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂŗFr@ \0AÂŗ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A´Fr@ \0A´# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂĩFr@ \0AÂĩ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂļFr@ \0AÂļ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A¡Fr@ \0A¡# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A¸Fr@ \0Að\0A¸# +AF\r\v# +E AšFr@ \0AÃĢ\bAš# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂēFr@ \0A‰!AÂē# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂģFr@ AAÂģ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂŧFr@   \0AÂŧ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂŊFr@ \0A’\bAÂŊ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AžFr@   \0Až# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂŋFr@ \0AÂŋ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÀFr@ \0AÀ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÁFr@ \0AÁ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂFr@ \0AÂ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃFr@ \0AÃ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÄFr@ \0AÄ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÅFr@ \0A"AÅ# +AF\r\v# +E AÆFr@ \0AÃŦ\rAÆ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÇFr@ \0A‰!AÇ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÈFr@ AAÈ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÉFr@   \0AÉ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÊFr@ \0A’\bAÊ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AËFr@   \0AË# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÌFr@ \0AÌ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÍFr@ \0AÍ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÎFr@ \0AÎ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÏFr@ \0AÏ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÐFr@ \0AÐ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÑFr@ \0AÑ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÒFr@ \0Aô\0AÒ# +AF\r\v# +E AÓFr@ \0A™ AÓ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÔFr@ \0A‰!AÔ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÕFr@ AAÕ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÖFr@   \0AÖ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A×Fr@ \0A’\bA×# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AØFr@   \0AØ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÙFr@ \0AÙ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÚFr@ \0AÚ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÛFr@ \0AÛ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÜFr@ \0AÜ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÝFr@ \0AÝ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÞFr@ \0AÞ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AßFr@ \0A#Aß# +AF\r\v# +E AàFr@ \0AËAà# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃĄFr@ \0A‰!AÃĄ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃĸFr@ AAÃĸ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃŖFr@   \0AÃŖ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AäFr@ \0A’\bAä# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃĨFr@   \0AÃĨ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃĻFr@ \0AÃĻ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AçFr@ \0Aç# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AèFr@ \0Aè# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÊFr@ \0AÊ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃĒFr@ \0AÃĒ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃĢFr@ \0AÃĢ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃŦFr@ \0Aø\0AÃŦ# +AF\r\v# +E AíFr@ \0A +Aí# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃŽFr@ \0A‰!AÃŽ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AïFr@ AAï# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AðFr@   \0Að# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃąFr@ \0A\bAÃą# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃ˛Fr@   \0AÃ˛# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃŗFr@ \0AÃŗ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AôFr@ \0Aô# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃĩFr@ \0AÃĩ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃļFr@ \0AÃļ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃˇFr@ \0AÃˇ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AøFr@ \0Aø# +AF\r\v\v  AÔ\0j# +\x1B!# +E AÚFr@ A\bAÚ# +AF\r!\0\v# +E@ (X" ,\0_"\0 \0A\0H"\0\x1BAj!\v# +E AÃēFr@ 1AÃē# +AF\r!\v# +E@  (T"  \0\x1BD!\v \0# +AFr@# +E@ (\\\v# +E AÃģFr@ AÃģ# +AF\r\v\v# +E@ Aà\0j$\0 \v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6#\v#\v(\0Aj6\0A\0\v›# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@  9\v# +E Er@ \0TA\0# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\vß# +AF@#\v#\v(\0A\fk6\0#\v(\0"(\0!\0 (! (\b!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@ (\b! (\0!\v# +E Er@  \0\0A\0# +AF\r\v# +E AFr@ \0TA# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b#\v#\v(\0A\fj6\0\vß# +AF@#\v#\v(\0A\fk6\0#\v(\0"(\0!\0 (! (\b!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@ \0(! \0(!\v# +E Er@  \0\0A\0# +AF\r\v# +E AFr@ \0"A# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b#\v#\v(\0A\fj6\0\v\xA0# +AF@#\v#\v(\0A\fk6\0#\v(\0"(\0!\0 (! (\b!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@@#(HA„ï\0(\0Atj(\0"E@ \0 \x006X \0 \x006\\A„ï\0(\0 \0)\f\v \0 6X \0 (\\6\\  \x006\\ \0(\\ \x006X\v \0(\0! \0(!\v# +E Er@ \0  \0A\0# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b#\v#\v(\0A\fj6\0\vß# +AF@#\v#\v(\0A\fk6\0#\v(\0"(\0!\0 (! (\b!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@ \0(! \0(!\v# +E Er@  \0\0A\0# +AF\r\v# +E AFr@ \0"A# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b#\v#\v(\0A\fj6\0\vÀÕ\x07\x07# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! (\b! (\f! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@#\0Aà\0k"$\0 AÛ\0;T A:\0_ A\fj!\0\v# +E Er@ \0A\0A\0# +AF\r\v# +E AFr@ \0AÃĄ A# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AFr@ \0A‰!A# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AFr@ AA# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AFr@ \0A’\bA# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A\x07Fr@ \0A\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A\bFr@ \0A\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A Fr@ \0A # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A +Fr@ \0A +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A\vFr@ \0A\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A\fFr@ \0A\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A\rFr@ \0A\bA\r# +AF\r\v# +E AFr@ \0AÃŗ +A# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AFr@ \0A‰!A# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AFr@ AA# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AFr@ \0A’\bA# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AFr@ \0A# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AFr@ \0A\fA# +AF\r\v# +E A\x1BFr@ \0A¤\bA\x1B# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AFr@ \0A‰!A# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AFr@ AA# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AFr@ \0A’\bA# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A Fr@   \0A # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A!Fr@ \0A!# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A"Fr@ \0A"# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A#Fr@ \0A## +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A$Fr@ \0A$# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A%Fr@ \0A%# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A&Fr@ \0A&# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A'Fr@ \0AA'# +AF\r\v# +E A(Fr@ \0A…\vA(# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A)Fr@ \0A‰!A)# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A*Fr@ AA*# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A+Fr@   \0A+# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A,Fr@ \0A’\bA,# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A-Fr@   \0A-# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A.Fr@ \0A.# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A/Fr@ \0A/# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A0Fr@ \0A0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A1Fr@ \0A1# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A2Fr@ \0A2# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A3Fr@ \0A3# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A4Fr@ \0AA4# +AF\r\v# +E A5Fr@ \0A”\fA5# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A6Fr@ \0A‰!A6# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A7Fr@ AA7# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A8Fr@   \0A8# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A9Fr@ \0A’\bA9# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A:Fr@   \0A:# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A;Fr@ \0A;# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AFr@ \0A># +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A?Fr@ \0A?# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÀ\0Fr@ \0AÀ\0# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÁ\0Fr@ \0AAÁ\0# +AF\r\v# +E AÂ\0Fr@ \0AÃĒ\vAÂ\0# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃ\0Fr@ \0A‰!AÃ\0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÄ\0Fr@ AAÄ\0# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÅ\0Fr@   \0AÅ\0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÆ\0Fr@ \0A’\bAÆ\0# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÇ\0Fr@   \0AÇ\0# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÈ\0Fr@ \0AÈ\0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÉ\0Fr@ \0AÉ\0# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÊ\0Fr@ \0AÊ\0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AË\0Fr@ \0AË\0# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÌ\0Fr@ \0AÌ\0# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÍ\0Fr@ \0AÍ\0# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÎ\0Fr@ \0AAÎ\0# +AF\r\v# +E AÏ\0Fr@ \0A­\fAÏ\0# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÐ\0Fr@ \0A‰!AÐ\0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÑ\0Fr@ AAÑ\0# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÒ\0Fr@   \0AÒ\0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÓ\0Fr@ \0A’\bAÓ\0# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÔ\0Fr@   \0AÔ\0# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÕ\0Fr@ \0AÕ\0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÖ\0Fr@ \0AÖ\0# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A×\0Fr@ \0A×\0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AØ\0Fr@ \0AØ\0# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÙ\0Fr@ \0AÙ\0# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÚ\0Fr@ \0AÚ\0# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÛ\0Fr@ \0AAÛ\0# +AF\r\v# +E AÜ\0Fr@ \0AÈ\vAÜ\0# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÝ\0Fr@ \0A‰!AÝ\0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÞ\0Fr@ AAÞ\0# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Aß\0Fr@   \0Aß\0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Aà\0Fr@ \0A’\bAà\0# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃĄ\0Fr@   \0AÃĄ\0# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃĸ\0Fr@ \0AÃĸ\0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃŖ\0Fr@ \0AÃŖ\0# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Aä\0Fr@ \0Aä\0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃĨ\0Fr@ \0AÃĨ\0# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃĻ\0Fr@ \0AÃĻ\0# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Aç\0Fr@ \0Aç\0# +AF\r\v\v \0 A\fj# +\x1B!\0# +E Aè\0Fr@ \0A Aè\0# +AF\r\v# +E AÊ\0Fr@ \0AÇAÊ\0# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃĒ\0Fr@ \0A‰!AÃĒ\0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃĢ\0Fr@ A\bAÃĢ\0# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃŦ\0Fr@   \0AÃŦ\0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Aí\0Fr@ \0A’\bAí\0# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃŽ\0Fr@   \0AÃŽ\0# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Aï\0Fr@ \0Aï\0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E Að\0Fr@ \0Að\0# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃą\0Fr@ \0AÃą\0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃ˛\0Fr@ \0AÃ˛\0# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃŗ\0Fr@ \0AÃŗ\0# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Aô\0Fr@ \0Aô\0# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃĩ\0Fr@ \0A(AÃĩ\0# +AF\r\v# +E AÃļ\0Fr@ \0AÜAÃļ\0# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃˇ\0Fr@ \0A‰!AÃˇ\0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E Aø\0Fr@ A\bAø\0# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÚ\0Fr@   \0AÚ\0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃē\0Fr@ \0A’\bAÃē\0# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃģ\0Fr@   \0AÃģ\0# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃŧ\0Fr@ \0AÃŧ\0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃŊ\0Fr@ \0AÃŊ\0# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÞ\0Fr@ \0AÞ\0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃŋ\0Fr@ \0AÃŋ\0# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A€Fr@ \0A€# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AFr@ \0A# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A‚Fr@ \0A0A‚# +AF\r\v# +E AƒFr@ \0AËAƒ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A„Fr@ \0A‰!A„# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A…Fr@ A\bA…# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A†Fr@   \0A†# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A‡Fr@ \0A’\bA‡# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AˆFr@   \0Aˆ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A‰Fr@ \0A‰# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AŠFr@ \0AŠ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A‹Fr@ \0A‹# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AŒFr@ \0AŒ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AŽFr@ \0AŽ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AFr@ \0A8A# +AF\r\v# +E AFr@ \0AÒA# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A‘Fr@ \0A‰!A‘# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A’Fr@ A\bA’# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A“Fr@   \0A“# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A”Fr@ \0A’\bA”# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A•Fr@   \0A•# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A–Fr@ \0A–# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A—Fr@ \0A—# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A˜Fr@ \0A˜# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A™Fr@ \0A™# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AšFr@ \0Aš# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A›Fr@ \0A›# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AœFr@ \0AÀ\0Aœ# +AF\r\v# +E AFr@ \0AÛA# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AžFr@ \0A‰!Až# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AŸFr@ A\bAŸ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A\xA0Fr@   \0A\xA0# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂĄFr@ \0A’\bAÂĄ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂĸFr@   \0AÂĸ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂŖFr@ \0AÂŖ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A¤Fr@ \0A¤# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂĨFr@ \0AÂĨ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂĻFr@ \0AÂĻ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A§Fr@ \0A§# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A¨Fr@ \0A¨# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AŠFr@ \0AÈ\0AŠ# +AF\r\v# +E AÂĒFr@ \0AÜAÂĒ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂĢFr@ \0A‰!AÂĢ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂŦFr@ A\bAÂŦ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A­Fr@   \0A­# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂŽFr@ \0A’\bAÂŽ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A¯Fr@   \0A¯# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A°Fr@ \0A°# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂąFr@ \0AÂą# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A²Fr@ \0A²# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂŗFr@ \0AÂŗ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A´Fr@ \0A´# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂĩFr@ \0AÂĩ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂļFr@ \0AÐ\0AÂļ# +AF\r\v# +E A¡Fr@ \0A°A¡# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A¸Fr@ \0A‰!A¸# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AšFr@ A\bAš# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂēFr@   \0AÂē# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂģFr@ \0A’\bAÂģ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂŧFr@   \0AÂŧ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂŊFr@ \0AÂŊ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AžFr@ \0Až# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂŋFr@ \0AÂŋ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÀFr@ \0AÀ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÁFr@ \0AÁ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂFr@ \0AÂ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃFr@ \0AØ\0AÃ# +AF\r\v# +E AÄFr@ \0AÂAÄ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÅFr@ \0A‰!AÅ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÆFr@ A\bAÆ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÇFr@   \0AÇ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÈFr@ \0A’\bAÈ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÉFr@   \0AÉ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÊFr@ \0AÊ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AËFr@ \0AË# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÌFr@ \0AÌ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÍFr@ \0AÍ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÎFr@ \0AÎ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÏFr@ \0AÏ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÐFr@ \0Aà\0AÐ# +AF\r\v# +E AÑFr@ \0AÂŋAÑ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÒFr@ \0A‰!AÒ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÓFr@ A\bAÓ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÔFr@   \0AÔ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÕFr@ \0A’\bAÕ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÖFr@   \0AÖ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A×Fr@ \0A×# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AØFr@ \0AØ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÙFr@ \0AÙ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÚFr@ \0AÚ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÛFr@ \0AÛ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÜFr@ \0AÜ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÝFr@ \0Aè\0AÝ# +AF\r\v# +E AÞFr@ \0AÔAÞ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AßFr@ \0A‰!Aß# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AàFr@ A\bAà# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃĄFr@   \0AÃĄ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃĸFr@ \0A’\bAÃĸ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃŖFr@   \0AÃŖ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AäFr@ \0Aä# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃĨFr@ \0AÃĨ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃĻFr@ \0AÃĻ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AçFr@ \0Aç# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AèFr@ \0Aè# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÊFr@ \0AÊ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃĒFr@ \0Að\0AÃĒ# +AF\r\v# +E AÃĢFr@ \0AÂĄAÃĢ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃŦFr@ \0A‰!AÃŦ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AíFr@ A\bAí# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃŽFr@   \0AÃŽ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AïFr@ \0A’\bAï# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AðFr@   \0Að# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃąFr@ \0AÃą# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃ˛Fr@ \0AÃ˛# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃŗFr@ \0AÃŗ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AôFr@ \0Aô# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃĩFr@ \0AÃĩ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃļFr@ \0AÃļ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃˇFr@ \0Aø\0AÃˇ# +AF\r\v# +E AøFr@ \0A€Aø# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÚFr@ \0A‰!AÚ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃēFr@ A\bAÃē# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃģFr@   \0AÃģ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃŧFr@ \0A’\bAÃŧ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃŊFr@   \0AÃŊ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÞFr@ \0AÞ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃŋFr@ \0AÃŋ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A€Fr@ \0A€# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A‚Fr@ \0A‚# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AƒFr@ \0Aƒ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A„Fr@ \0A€A„# +AF\r\v# +E A…Fr@ \0A…A…# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A†Fr@ \0A‰!A†# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A‡Fr@ A\bA‡# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AˆFr@   \0Aˆ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A‰Fr@ \0A’\bA‰# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AŠFr@   \0AŠ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A‹Fr@ \0A‹# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AŒFr@ \0AŒ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AŽFr@ \0AŽ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AFr@ \0A# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A‘Fr@ \0AˆA‘# +AF\r\v# +E A’Fr@ \0AÃąA’# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A“Fr@ \0A‰!A“# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A”Fr@ A\bA”# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A•Fr@   \0A•# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A–Fr@ \0A’\bA–# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A—Fr@   \0A—# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A˜Fr@ \0A˜# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A™Fr@ \0A™# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AšFr@ \0Aš# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A›Fr@ \0A›# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AœFr@ \0Aœ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AFr@ \0A# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AžFr@ \0AAž# +AF\r\v# +E AŸFr@ \0AÍAŸ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A\xA0Fr@ \0A‰!A\xA0# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂĄFr@ A\bAÂĄ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂĸFr@   \0AÂĸ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂŖFr@ \0A’\bAÂŖ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A¤Fr@   \0A¤# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂĨFr@ \0AÂĨ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂĻFr@ \0AÂĻ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A§Fr@ \0A§# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A¨Fr@ \0A¨# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AŠFr@ \0AŠ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂĒFr@ \0AÂĒ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂĢFr@ \0A˜AÂĢ# +AF\r\v# +E AÂŦFr@ \0AÂēAÂŦ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A­Fr@ \0A‰!A­# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂŽFr@ A\bAÂŽ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A¯Fr@   \0A¯# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A°Fr@ \0A’\bA°# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂąFr@   \0AÂą# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A²Fr@ \0A²# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂŗFr@ \0AÂŗ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A´Fr@ \0A´# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂĩFr@ \0AÂĩ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂļFr@ \0AÂļ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A¡Fr@ \0A¡# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A¸Fr@ \0A\xA0A¸# +AF\r\v# +E AšFr@ \0A§Aš# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂēFr@ \0A‰!AÂē# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂģFr@ A\bAÂģ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂŧFr@   \0AÂŧ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂŊFr@ \0A’\bAÂŊ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AžFr@   \0Až# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂŋFr@ \0AÂŋ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÀFr@ \0AÀ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÁFr@ \0AÁ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂFr@ \0AÂ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃFr@ \0AÃ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÄFr@ \0AÄ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÅFr@ \0A¨AÅ# +AF\r\v# +E AÆFr@ \0A”AÆ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÇFr@ \0A‰!AÇ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÈFr@ A\bAÈ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÉFr@   \0AÉ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÊFr@ \0A’\bAÊ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AËFr@   \0AË# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÌFr@ \0AÌ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÍFr@ \0AÍ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÎFr@ \0AÎ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÏFr@ \0AÏ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÐFr@ \0AÐ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÑFr@ \0AÑ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÒFr@ \0A°AÒ# +AF\r\v# +E AÓFr@ \0AÃąAÓ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÔFr@ \0A‰!AÔ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÕFr@ A\bAÕ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÖFr@   \0AÖ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A×Fr@ \0A’\bA×# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AØFr@   \0AØ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÙFr@ \0AÙ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÚFr@ \0AÚ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÛFr@ \0AÛ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÜFr@ \0AÜ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÝFr@ \0AÝ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÞFr@ \0AÞ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AßFr@ \0A¸Aß# +AF\r\v# +E AàFr@ \0AÂĨAà# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃĄFr@ \0A‰!AÃĄ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃĸFr@ A\bAÃĸ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃŖFr@   \0AÃŖ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AäFr@ \0A’\bAä# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃĨFr@   \0AÃĨ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃĻFr@ \0AÃĻ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AçFr@ \0Aç# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AèFr@ \0Aè# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÊFr@ \0AÊ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃĒFr@ \0AÃĒ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃĢFr@ \0AÃĢ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃŦFr@ \0AÀAÃŦ# +AF\r\v# +E AíFr@ \0AÈAí# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃŽFr@ \0A‰!AÃŽ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AïFr@ A\bAï# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AðFr@   \0Að# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃąFr@ \0A’\bAÃą# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃ˛Fr@   \0AÃ˛# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃŗFr@ \0AÃŗ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AôFr@ \0Aô# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃĩFr@ \0AÃĩ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃļFr@ \0AÃļ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃˇFr@ \0AÃˇ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AøFr@ \0Aø# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÚFr@ \0AÈAÚ# +AF\r\v# +E AÃēFr@ \0AÚAÃē# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃģFr@ \0A‰!AÃģ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃŧFr@ A\bAÃŧ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃŊFr@   \0AÃŊ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÞFr@ \0A’\bAÞ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃŋFr@   \0AÃŋ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A€Fr@ \0A€# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A‚Fr@ \0A‚# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AƒFr@ \0Aƒ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A„Fr@ \0A„# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A…Fr@ \0A…# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A†Fr@ \0AÐA†# +AF\r\v# +E A‡Fr@ \0AíA‡# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AˆFr@ \0A‰!Aˆ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A‰Fr@ A\bA‰# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AŠFr@   \0AŠ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A‹Fr@ \0A’\bA‹# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AŒFr@   \0AŒ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AŽFr@ \0AŽ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A‘Fr@ \0A‘# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A’Fr@ \0A’# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A“Fr@ \0AØA“# +AF\r\v# +E A”Fr@ \0AÚA”# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A•Fr@ \0A‰!A•# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A–Fr@ A\bA–# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A—Fr@   \0A—# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A˜Fr@ \0A’\bA˜# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A™Fr@   \0A™# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AšFr@ \0Aš# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A›Fr@ \0A›# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AœFr@ \0Aœ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AžFr@ \0Až# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AŸFr@ \0AŸ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A\xA0Fr@ \0AàA\xA0# +AF\r\v# +E AÂĄFr@ \0AàAÂĄ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂĸFr@ \0A‰!AÂĸ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂŖFr@ A\bAÂŖ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A¤Fr@   \0A¤# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂĨFr@ \0A’\bAÂĨ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂĻFr@   \0AÂĻ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A§Fr@ \0A§# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A¨Fr@ \0A¨# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AŠFr@ \0AŠ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂĒFr@ \0AÂĒ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂĢFr@ \0AÂĢ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂŦFr@ \0AÂŦ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A­Fr@ \0AèA­# +AF\r\v# +E AÂŽFr@ \0A•\bAÂŽ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A¯Fr@ \0A‰!A¯# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A°Fr@ AA°# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂąFr@   \0AÂą# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A²Fr@ \0A’\bA²# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂŗFr@   \0AÂŗ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A´Fr@ \0A´# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂĩFr@ \0AÂĩ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂļFr@ \0AÂļ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A¡Fr@ \0A¡# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A¸Fr@ \0A¸# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AšFr@ \0Aš# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂēFr@ \0AðAÂē# +AF\r\v# +E AÂģFr@ \0A• AÂģ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂŧFr@ \0A‰!AÂŧ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂŊFr@ A\bAÂŊ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AžFr@   \0Až# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂŋFr@ \0A’\bAÂŋ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÀFr@   \0AÀ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÁFr@ \0AÁ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂFr@ \0AÂ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃFr@ \0AÃ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÄFr@ \0AÄ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÅFr@ \0AÅ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÆFr@ \0AÆ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÇFr@ \0AøAÇ# +AF\r\v# +E AÈFr@ \0A‚ AÈ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÉFr@ \0A‰!AÉ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÊFr@ A\bAÊ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AËFr@   \0AË# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÌFr@ \0A’\bAÌ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÍFr@   \0AÍ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÎFr@ \0AÎ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÏFr@ \0AÏ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÐFr@ \0AÐ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÑFr@ \0AÑ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÒFr@ \0AÒ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÓFr@ \0AÓ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÔFr@ \0A€AÔ# +AF\r\v# +E AÕFr@ \0AÎ AÕ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÖFr@ \0A‰!AÖ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A×Fr@ A\bA×# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AØFr@   \0AØ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÙFr@ \0A’\bAÙ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÚFr@   \0AÚ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÛFr@ \0AÛ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÜFr@ \0AÜ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÝFr@ \0AÝ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÞFr@ \0AÞ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AßFr@ \0Aß# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AàFr@ \0Aà# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃĄFr@ \0AˆAÃĄ# +AF\r\v# +E AÃĸFr@ \0A’AÃĸ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃŖFr@ \0A‰!AÃŖ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AäFr@ A\bAä# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃĨFr@   \0AÃĨ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃĻFr@ \0A’\bAÃĻ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AçFr@   \0Aç# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AèFr@ \0Aè# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÊFr@ \0AÊ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃĒFr@ \0AÃĒ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃĢFr@ \0AÃĢ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃŦFr@ \0AÃŦ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AíFr@ \0Aí# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃŽFr@ \0AAÃŽ# +AF\r\v# +E AïFr@ \0AÂģ Aï# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AðFr@ \0A‰!Að# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃąFr@ A\bAÃą# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃ˛Fr@   \0AÃ˛# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃŗFr@ \0A’\bAÃŗ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AôFr@   \0Aô# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃĩFr@ \0AÃĩ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃļFr@ \0AÃļ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃˇFr@ \0AÃˇ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AøFr@ \0Aø# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÚFr@ \0AÚ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃēFr@ \0AÃē# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃģFr@ \0A˜AÃģ# +AF\r\v# +E AÃŧFr@ \0AÃŋAÃŧ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃŊFr@ \0A‰!AÃŊ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÞFr@ A\bAÞ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃŋFr@   \0AÃŋ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A€Fr@ \0A’\bA€# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A‚Fr@ \0A‚# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AƒFr@ \0Aƒ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A„Fr@ \0A„# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A…Fr@ \0A…# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A†Fr@ \0A†# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A‡Fr@ \0A‡# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AˆFr@ \0A\xA0Aˆ# +AF\r\v# +E A‰Fr@ \0A¨ A‰# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AŠFr@ \0A‰!AŠ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A‹Fr@ A\bA‹# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AŒFr@   \0AŒ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AFr@ \0A’\bA# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AŽFr@   \0AŽ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A‘Fr@ \0A‘# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A’Fr@ \0A’# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A“Fr@ \0A“# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A”Fr@ \0A”# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A•Fr@ \0A¨A•# +AF\r\v# +E A–Fr@ \0AÃŦA–# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A—Fr@ \0A‰!A—# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A˜Fr@ A\bA˜# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A™Fr@   \0A™# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AšFr@ \0A’\bAš# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A›Fr@   \0A›# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AœFr@ \0Aœ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AFr@ \0A# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AžFr@ \0Až# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AŸFr@ \0AŸ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A\xA0Fr@ \0A\xA0# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂĄFr@ \0AÂĄ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂĸFr@ \0A°AÂĸ# +AF\r\v# +E AÂŖFr@ \0AïAÂŖ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A¤Fr@ \0A‰!A¤# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂĨFr@ A\bAÂĨ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂĻFr@   \0AÂĻ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A§Fr@ \0A’\bA§# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A¨Fr@   \0A¨# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AŠFr@ \0AŠ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂĒFr@ \0AÂĒ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂĢFr@ \0AÂĢ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂŦFr@ \0AÂŦ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A­Fr@ \0A­# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂŽFr@ \0AÂŽ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A¯Fr@ \0A¸A¯# +AF\r\v# +E A°Fr@ \0AÀA°# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂąFr@ \0A‰!AÂą# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A²Fr@ A\bA²# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂŗFr@   \0AÂŗ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A´Fr@ \0A’\bA´# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂĩFr@   \0AÂĩ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂļFr@ \0AÂļ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A¡Fr@ \0A¡# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A¸Fr@ \0A¸# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AšFr@ \0Aš# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂēFr@ \0AÂē# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂģFr@ \0AÂģ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂŧFr@ \0AÀAÂŧ# +AF\r\v# +E AÂŊFr@ \0AÌAÂŊ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AžFr@ \0A‰!Až# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂŋFr@ A\bAÂŋ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÀFr@   \0AÀ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÁFr@ \0A’\bAÁ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂFr@   \0AÂ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃFr@ \0AÃ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÄFr@ \0AÄ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÅFr@ \0AÅ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÆFr@ \0AÆ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÇFr@ \0AÇ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÈFr@ \0AÈ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÉFr@ \0AÈAÉ# +AF\r\v# +E AÊFr@ \0AšAÊ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AËFr@ \0A‰!AË# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÌFr@ A\bAÌ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÍFr@   \0AÍ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÎFr@ \0A’\bAÎ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÏFr@   \0AÏ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÐFr@ \0AÐ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÑFr@ \0AÑ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÒFr@ \0AÒ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÓFr@ \0AÓ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÔFr@ \0AÔ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÕFr@ \0AÕ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÖFr@ \0AÐAÖ# +AF\r\v# +E A×Fr@ \0A‰A×# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AØFr@ \0A‰!AØ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÙFr@ A\bAÙ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÚFr@   \0AÚ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÛFr@ \0A’\bAÛ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÜFr@   \0AÜ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÝFr@ \0AÝ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÞFr@ \0AÞ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AßFr@ \0Aß# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AàFr@ \0Aà# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃĄFr@ \0AÃĄ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃĸFr@ \0AÃĸ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃŖFr@ \0AØAÃŖ# +AF\r\v# +E AäFr@ \0A…\x1BAä# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃĨFr@ \0A‰!AÃĨ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃĻFr@ A\bAÃĻ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AçFr@   \0Aç# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AèFr@ \0A’\bAè# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÊFr@   \0AÊ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃĒFr@ \0AÃĒ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃĢFr@ \0AÃĢ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃŦFr@ \0AÃŦ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AíFr@ \0Aí# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃŽFr@ \0AÃŽ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AïFr@ \0Aï# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AðFr@ \0AàAð# +AF\r\v# +E AÃąFr@ \0AÂēAÃą# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃ˛Fr@ \0A‰!AÃ˛# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃŗFr@ A\bAÃŗ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AôFr@   \0Aô# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃĩFr@ \0A’\bAÃĩ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃļFr@   \0AÃļ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃˇFr@ \0AÃˇ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AøFr@ \0Aø# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÚFr@ \0AÚ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃēFr@ \0AÃē# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃģFr@ \0AÃģ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃŧFr@ \0AÃŧ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃŊFr@ \0AèAÃŊ# +AF\r\v# +E AÞFr@ \0A¨AÞ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃŋFr@ \0A‰!AÃŋ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A€Fr@ A\bA€# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A‚Fr@ \0A’\bA‚# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AƒFr@   \0Aƒ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A„Fr@ \0A„# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A…Fr@ \0A…# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A†Fr@ \0A†# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A‡Fr@ \0A‡# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AˆFr@ \0Aˆ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A‰Fr@ \0A‰# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AŠFr@ \0AðAŠ# +AF\r\v# +E A‹Fr@ \0A‚A‹# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AŒFr@ \0A‰!AŒ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AFr@ A\bA# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AŽFr@   \0AŽ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AFr@ \0A’\bA# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A‘Fr@ \0A‘# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A’Fr@ \0A’# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A“Fr@ \0A“# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A”Fr@ \0A”# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A•Fr@ \0A•# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A–Fr@ \0A–# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A—Fr@ \0AøA—# +AF\r\v# +E A˜Fr@ \0A•A˜# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A™Fr@ \0A‰!A™# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AšFr@ A\bAš# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A›Fr@   \0A›# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AœFr@ \0A’\bAœ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AžFr@ \0Až# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AŸFr@ \0AŸ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A\xA0Fr@ \0A\xA0# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂĄFr@ \0AÂĄ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂĸFr@ \0AÂĸ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂŖFr@ \0AÂŖ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A¤Fr@ \0A€A¤# +AF\r\v# +E AÂĨFr@ \0A\xA0AÂĨ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂĻFr@ \0A‰!AÂĻ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A§Fr@ A\bA§# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A¨Fr@   \0A¨# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AŠFr@ \0A’\bAŠ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂĒFr@   \0AÂĒ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂĢFr@ \0AÂĢ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂŦFr@ \0AÂŦ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A­Fr@ \0A­# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂŽFr@ \0AÂŽ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A¯Fr@ \0A¯# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A°Fr@ \0A°# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂąFr@ \0AˆAÂą# +AF\r\v# +E A²Fr@ \0AËA²# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂŗFr@ \0A‰!AÂŗ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A´Fr@ A\bA´# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂĩFr@   \0AÂĩ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂļFr@ \0A’\bAÂļ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A¡Fr@   \0A¡# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A¸Fr@ \0A¸# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AšFr@ \0Aš# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂēFr@ \0AÂē# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂģFr@ \0AÂģ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂŧFr@ \0AÂŧ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂŊFr@ \0AÂŊ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AžFr@ \0AAž# +AF\r\v# +E AÂŋFr@ \0AÂŧAÂŋ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÀFr@ \0A‰!AÀ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÁFr@ A\bAÁ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂFr@   \0AÂ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃFr@ \0A’\bAÃ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÄFr@   \0AÄ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÅFr@ \0AÅ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÆFr@ \0AÆ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÇFr@ \0AÇ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÈFr@ \0AÈ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÉFr@ \0AÉ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÊFr@ \0AÊ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AËFr@ \0A˜AË# +AF\r\v# +E AÌFr@ \0AÂĒAÌ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÍFr@ \0A‰!AÍ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÎFr@ A\bAÎ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÏFr@   \0AÏ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÐFr@ \0A’\bAÐ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÑFr@   \0AÑ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÒFr@ \0AÒ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÓFr@ \0AÓ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÔFr@ \0AÔ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÕFr@ \0AÕ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÖFr@ \0AÖ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A×Fr@ \0A×# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AØFr@ \0A\xA0AØ# +AF\r\v# +E AÙFr@ \0A™AÙ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÚFr@ \0A‰!AÚ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÛFr@ A\bAÛ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÜFr@   \0AÜ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÝFr@ \0A’\bAÝ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÞFr@   \0AÞ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AßFr@ \0Aß# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AàFr@ \0Aà# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃĄFr@ \0AÃĄ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃĸFr@ \0AÃĸ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃŖFr@ \0AÃŖ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AäFr@ \0Aä# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃĨFr@ \0A¨AÃĨ# +AF\r\v# +E AÃĻFr@ \0AàAÃĻ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AçFr@ \0A‰!Aç# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AèFr@ A\bAè# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÊFr@   \0AÊ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃĒFr@ \0A’\bAÃĒ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃĢFr@   \0AÃĢ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃŦFr@ \0AÃŦ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AíFr@ \0Aí# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃŽFr@ \0AÃŽ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AïFr@ \0Aï# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AðFr@ \0Að# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃąFr@ \0AÃą# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃ˛Fr@ \0A°AÃ˛# +AF\r\v# +E AÃŗFr@ \0AÃĩAÃŗ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AôFr@ \0A‰!Aô# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃĩFr@ A\bAÃĩ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃļFr@   \0AÃļ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃˇFr@ \0A’\bAÃˇ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AøFr@   \0Aø# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÚFr@ \0AÚ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃēFr@ \0AÃē# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃģFr@ \0AÃģ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃŧFr@ \0AÃŧ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃŊFr@ \0AÃŊ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÞFr@ \0AÞ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃŋFr@ \0A¸AÃŋ# +AF\r\v# +E A€Fr@ \0AÂēA€# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AFr@ \0A‰!A# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A‚Fr@ A\bA‚# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AƒFr@   \0Aƒ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A„Fr@ \0A’\bA„# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A…Fr@   \0A…# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A†Fr@ \0A†# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A‡Fr@ \0A‡# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AˆFr@ \0Aˆ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A‰Fr@ \0A‰# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AŠFr@ \0AŠ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A‹Fr@ \0A‹# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AŒFr@ \0AÀAŒ# +AF\r\v# +E AFr@ \0AA# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AŽFr@ \0A‰!AŽ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AFr@ A\bA# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A‘Fr@ \0A’\bA‘# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A’Fr@   \0A’# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A“Fr@ \0A“# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A”Fr@ \0A”# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A•Fr@ \0A•# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A–Fr@ \0A–# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A—Fr@ \0A—# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A˜Fr@ \0A˜# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A™Fr@ \0AÈA™# +AF\r\v# +E AšFr@ \0A¨Aš# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A›Fr@ \0A‰!A›# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AœFr@ A\bAœ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AFr@   \0A# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AžFr@ \0A’\bAž# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AŸFr@   \0AŸ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A\xA0Fr@ \0A\xA0# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂĄFr@ \0AÂĄ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂĸFr@ \0AÂĸ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂŖFr@ \0AÂŖ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A¤Fr@ \0A¤# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂĨFr@ \0AÂĨ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂĻFr@ \0AÐAÂĻ# +AF\r\v# +E A§Fr@ \0AÃŊ\x1BA§# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A¨Fr@ \0A‰!A¨# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AŠFr@ A\bAŠ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂĒFr@   \0AÂĒ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂĢFr@ \0A’\bAÂĢ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂŦFr@   \0AÂŦ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A­Fr@ \0A­# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂŽFr@ \0AÂŽ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A¯Fr@ \0A¯# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A°Fr@ \0A°# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂąFr@ \0AÂą# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A²Fr@ \0A²# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂŗFr@ \0AØAÂŗ# +AF\r\v# +E A´Fr@ \0A°A´# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂĩFr@ \0A‰!AÂĩ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂļFr@ A\bAÂļ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A¡Fr@   \0A¡# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A¸Fr@ \0A’\bA¸# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AšFr@   \0Aš# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂēFr@ \0AÂē# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂģFr@ \0AÂģ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂŧFr@ \0AÂŧ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂŊFr@ \0AÂŊ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AžFr@ \0Až# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂŋFr@ \0AÂŋ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÀFr@ \0AàAÀ# +AF\r\v# +E AÁFr@ \0A…AÁ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂFr@ \0A‰!AÂ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃFr@ A\bAÃ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÄFr@   \0AÄ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÅFr@ \0A’\bAÅ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÆFr@   \0AÆ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÇFr@ \0AÇ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÈFr@ \0AÈ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÉFr@ \0AÉ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÊFr@ \0AÊ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AËFr@ \0AË# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÌFr@ \0AÌ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÍFr@ \0AèAÍ# +AF\r\v# +E AÎFr@ \0AÚ\x1BAÎ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÏFr@ \0A‰!AÏ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÐFr@ A\bAÐ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÑFr@   \0AÑ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÒFr@ \0A’\bAÒ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÓFr@   \0AÓ# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÔFr@ \0AÔ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÕFr@ \0AÕ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÖFr@ \0AÖ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A×Fr@ \0A×# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AØFr@ \0AØ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÙFr@ \0AÙ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÚFr@ \0AðAÚ# +AF\r\v# +E AÛFr@ \0AÏAÛ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÜFr@ \0A‰!AÜ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÝFr@ A\bAÝ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÞFr@   \0AÞ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AßFr@ \0A’\bAß# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AàFr@   \0Aà# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃĄFr@ \0AÃĄ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃĸFr@ \0AÃĸ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃŖFr@ \0AÃŖ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AäFr@ \0Aä# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃĨFr@ \0AÃĨ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃĻFr@ \0AÃĻ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AçFr@ \0AøAç# +AF\r\v# +E AèFr@ \0A¸\x1BAè# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÊFr@ \0A‰!AÊ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃĒFr@ A\bAÃĒ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃĢFr@   \0AÃĢ# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃŦFr@ \0A’\bAÃŦ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AíFr@   \0Aí# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃŽFr@ \0AÃŽ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AïFr@ \0Aï# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AðFr@ \0Að# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃąFr@ \0AÃą# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃ˛Fr@ \0AÃ˛# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃŗFr@ \0AÃŗ# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AôFr@ \0A€Aô# +AF\r\v# +E AÃĩFr@ \0AøAÃĩ# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃļFr@ \0A‰!AÃļ# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃˇFr@ A\bAÃˇ# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AøFr@   \0Aø# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÚFr@ \0A’\bAÚ# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃēFr@   \0AÃē# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃģFr@ \0AÃģ# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃŧFr@ \0AÃŧ# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃŊFr@ \0AÃŊ# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÞFr@ \0AÞ# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃŋFr@ \0AÃŋ# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A€\x07Fr@ \0A€\x07# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A\x07Fr@ \0AˆA\x07# +AF\r\v# +E A‚\x07Fr@ \0AôA‚\x07# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E Aƒ\x07Fr@ \0A‰!Aƒ\x07# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A„\x07Fr@ A\bA„\x07# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A…\x07Fr@   \0A…\x07# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A†\x07Fr@ \0A’\bA†\x07# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A‡\x07Fr@   \0A‡\x07# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Aˆ\x07Fr@ \0Aˆ\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A‰\x07Fr@ \0A‰\x07# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AŠ\x07Fr@ \0AŠ\x07# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A‹\x07Fr@ \0A‹\x07# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AŒ\x07Fr@ \0AŒ\x07# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A\x07Fr@ \0A\x07# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AŽ\x07Fr@ \0AAŽ\x07# +AF\r\v# +E A\x07Fr@ \0AÃŊA\x07# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A\x07Fr@ \0A‰!A\x07# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A‘\x07Fr@ A\bA‘\x07# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A’\x07Fr@   \0A’\x07# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A“\x07Fr@ \0A’\bA“\x07# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A”\x07Fr@   \0A”\x07# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A•\x07Fr@ \0A•\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A–\x07Fr@ \0A–\x07# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A—\x07Fr@ \0A—\x07# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A˜\x07Fr@ \0A˜\x07# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A™\x07Fr@ \0A™\x07# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Aš\x07Fr@ \0Aš\x07# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A›\x07Fr@ \0A˜A›\x07# +AF\r\v# +E Aœ\x07Fr@ \0AšAœ\x07# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A\x07Fr@ \0A‰!A\x07# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E Až\x07Fr@ A\bAž\x07# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AŸ\x07Fr@   \0AŸ\x07# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A\xA0\x07Fr@ \0A’\bA\xA0\x07# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂĄ\x07Fr@   \0AÂĄ\x07# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂĸ\x07Fr@ \0AÂĸ\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂŖ\x07Fr@ \0AÂŖ\x07# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A¤\x07Fr@ \0A¤\x07# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂĨ\x07Fr@ \0AÂĨ\x07# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂĻ\x07Fr@ \0AÂĻ\x07# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A§\x07Fr@ \0A§\x07# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A¨\x07Fr@ \0A\xA0A¨\x07# +AF\r\v# +E AŠ\x07Fr@ \0AÞAŠ\x07# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂĒ\x07Fr@ \0A‰!AÂĒ\x07# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂĢ\x07Fr@ A\bAÂĢ\x07# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂŦ\x07Fr@   \0AÂŦ\x07# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A­\x07Fr@ \0A’\bA­\x07# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂŽ\x07Fr@   \0AÂŽ\x07# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A¯\x07Fr@ \0A¯\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A°\x07Fr@ \0A°\x07# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂą\x07Fr@ \0AÂą\x07# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A²\x07Fr@ \0A²\x07# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂŗ\x07Fr@ \0AÂŗ\x07# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A´\x07Fr@ \0A´\x07# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂĩ\x07Fr@ \0A¨AÂĩ\x07# +AF\r\v# +E AÂļ\x07Fr@ \0A–AÂļ\x07# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A¡\x07Fr@ \0A‰!A¡\x07# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A¸\x07Fr@ A\bA¸\x07# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Aš\x07Fr@   \0Aš\x07# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂē\x07Fr@ \0A’\bAÂē\x07# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂģ\x07Fr@   \0AÂģ\x07# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂŧ\x07Fr@ \0AÂŧ\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂŊ\x07Fr@ \0AÂŊ\x07# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Až\x07Fr@ \0Až\x07# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂŋ\x07Fr@ \0AÂŋ\x07# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÀ\x07Fr@ \0AÀ\x07# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÁ\x07Fr@ \0AÁ\x07# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂ\x07Fr@ \0A°AÂ\x07# +AF\r\v# +E AÃ\x07Fr@ \0AÃĢ\x1BAÃ\x07# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÄ\x07Fr@ \0A‰!AÄ\x07# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÅ\x07Fr@ A\bAÅ\x07# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÆ\x07Fr@   \0AÆ\x07# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÇ\x07Fr@ \0A’\bAÇ\x07# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÈ\x07Fr@   \0AÈ\x07# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÉ\x07Fr@ \0AÉ\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÊ\x07Fr@ \0AÊ\x07# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AË\x07Fr@ \0AË\x07# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÌ\x07Fr@ \0AÌ\x07# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÍ\x07Fr@ \0AÍ\x07# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÎ\x07Fr@ \0AÎ\x07# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÏ\x07Fr@ \0A¸AÏ\x07# +AF\r\v# +E AÐ\x07Fr@ \0AžAÐ\x07# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÑ\x07Fr@ \0A‰!AÑ\x07# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÒ\x07Fr@ A\bAÒ\x07# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÓ\x07Fr@   \0AÓ\x07# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÔ\x07Fr@ \0A’\bAÔ\x07# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÕ\x07Fr@   \0AÕ\x07# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÖ\x07Fr@ \0AÖ\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A×\x07Fr@ \0A×\x07# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AØ\x07Fr@ \0AØ\x07# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÙ\x07Fr@ \0AÙ\x07# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÚ\x07Fr@ \0AÚ\x07# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÛ\x07Fr@ \0AÛ\x07# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÜ\x07Fr@ \0AÀAÜ\x07# +AF\r\v# +E AÝ\x07Fr@ \0AàAÝ\x07# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÞ\x07Fr@ \0A‰!AÞ\x07# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E Aß\x07Fr@ A\bAß\x07# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Aà\x07Fr@   \0Aà\x07# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃĄ\x07Fr@ \0A’\bAÃĄ\x07# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃĸ\x07Fr@   \0AÃĸ\x07# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃŖ\x07Fr@ \0AÃŖ\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E Aä\x07Fr@ \0Aä\x07# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃĨ\x07Fr@ \0AÃĨ\x07# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃĻ\x07Fr@ \0AÃĻ\x07# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E Aç\x07Fr@ \0Aç\x07# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Aè\x07Fr@ \0Aè\x07# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÊ\x07Fr@ \0AÈAÊ\x07# +AF\r\v# +E AÃĒ\x07Fr@ \0AÉ\x1BAÃĒ\x07# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃĢ\x07Fr@ \0A‰!AÃĢ\x07# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃŦ\x07Fr@ A\bAÃŦ\x07# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Aí\x07Fr@   \0Aí\x07# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃŽ\x07Fr@ \0A’\bAÃŽ\x07# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E Aï\x07Fr@   \0Aï\x07# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Að\x07Fr@ \0Að\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃą\x07Fr@ \0AÃą\x07# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃ˛\x07Fr@ \0AÃ˛\x07# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃŗ\x07Fr@ \0AÃŗ\x07# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E Aô\x07Fr@ \0Aô\x07# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃĩ\x07Fr@ \0AÃĩ\x07# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃļ\x07Fr@ \0AÐAÃļ\x07# +AF\r\v# +E AÃˇ\x07Fr@ \0AžAÃˇ\x07# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E Aø\x07Fr@ \0A‰!Aø\x07# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÚ\x07Fr@ A\bAÚ\x07# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃē\x07Fr@   \0AÃē\x07# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃģ\x07Fr@ \0A’\bAÃģ\x07# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃŧ\x07Fr@   \0AÃŧ\x07# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃŊ\x07Fr@ \0AÃŊ\x07# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÞ\x07Fr@ \0AÞ\x07# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃŋ\x07Fr@ \0AÃŋ\x07# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A€\bFr@ \0A€\b# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A\bFr@ \0A\b# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A‚\bFr@ \0A‚\b# +AF\r\v\v \0 A\fj# +\x1B!\0# +E Aƒ\bFr@ \0AØAƒ\b# +AF\r\v# +E A„\bFr@ \0A§\x1BA„\b# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A…\bFr@ \0A‰!A…\b# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A†\bFr@ A\bA†\b# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A‡\bFr@   \0A‡\b# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Aˆ\bFr@ \0A’\bAˆ\b# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A‰\bFr@   \0A‰\b# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AŠ\bFr@ \0AŠ\b# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A‹\bFr@ \0A‹\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AŒ\bFr@ \0AŒ\b# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A\bFr@ \0A\b# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AŽ\bFr@ \0AŽ\b# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A\bFr@ \0A\b# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A\bFr@ \0AàA\b# +AF\r\v# +E A‘\bFr@ \0AçA‘\b# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A’\bFr@ \0A‰!A’\b# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A“\bFr@ A\bA“\b# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A”\bFr@   \0A”\b# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A•\bFr@ \0A’\bA•\b# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A–\bFr@   \0A–\b# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A—\bFr@ \0A—\b# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A˜\bFr@ \0A˜\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A™\bFr@ \0A™\b# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E Aš\bFr@ \0Aš\b# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A›\bFr@ \0A›\b# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Aœ\bFr@ \0Aœ\b# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A\bFr@ \0AèA\b# +AF\r\v# +E Až\bFr@ \0AÃŖAž\b# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AŸ\bFr@ \0A‰!AŸ\b# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A\xA0\bFr@ A\bA\xA0\b# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂĄ\bFr@   \0AÂĄ\b# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂĸ\bFr@ \0A’\bAÂĸ\b# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂŖ\bFr@   \0AÂŖ\b# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A¤\bFr@ \0A¤\b# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂĨ\bFr@ \0AÂĨ\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂĻ\bFr@ \0AÂĻ\b# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A§\bFr@ \0A§\b# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A¨\bFr@ \0A¨\b# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AŠ\bFr@ \0AŠ\b# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂĒ\bFr@ \0AðAÂĒ\b# +AF\r\v# +E AÂĢ\bFr@ \0AÃŦAÂĢ\b# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂŦ\bFr@ \0A‰!AÂŦ\b# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A­\bFr@ A\bA­\b# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂŽ\bFr@   \0AÂŽ\b# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A¯\bFr@ \0A’\bA¯\b# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A°\bFr@   \0A°\b# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂą\bFr@ \0AÂą\b# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A²\bFr@ \0A²\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂŗ\bFr@ \0AÂŗ\b# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A´\bFr@ \0A´\b# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂĩ\bFr@ \0AÂĩ\b# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂļ\bFr@ \0AÂļ\b# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A¡\bFr@ \0AøA¡\b# +AF\r\v# +E A¸\bFr@ \0AÒA¸\b# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E Aš\bFr@ \0A‰!Aš\b# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂē\bFr@ A\bAÂē\b# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂģ\bFr@   \0AÂģ\b# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂŧ\bFr@ \0A’\bAÂŧ\b# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂŊ\bFr@   \0AÂŊ\b# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Až\bFr@ \0Až\b# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂŋ\bFr@ \0AÂŋ\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÀ\bFr@ \0AÀ\b# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÁ\bFr@ \0AÁ\b# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂ\bFr@ \0AÂ\b# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃ\bFr@ \0AÃ\b# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÄ\bFr@ \0A€AÄ\b# +AF\r\v# +E AÅ\bFr@ \0AÍAÅ\b# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÆ\bFr@ \0A‰!AÆ\b# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÇ\bFr@ A\bAÇ\b# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÈ\bFr@   \0AÈ\b# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÉ\bFr@ \0A’\bAÉ\b# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÊ\bFr@   \0AÊ\b# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AË\bFr@ \0AË\b# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÌ\bFr@ \0AÌ\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÍ\bFr@ \0AÍ\b# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÎ\bFr@ \0AÎ\b# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÏ\bFr@ \0AÏ\b# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÐ\bFr@ \0AÐ\b# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÑ\bFr@ \0AˆAÑ\b# +AF\r\v# +E AÒ\bFr@ \0A¨AÒ\b# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÓ\bFr@ \0A‰!AÓ\b# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÔ\bFr@ A\bAÔ\b# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÕ\bFr@   \0AÕ\b# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÖ\bFr@ \0A’\bAÖ\b# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A×\bFr@   \0A×\b# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AØ\bFr@ \0AØ\b# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÙ\bFr@ \0AÙ\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÚ\bFr@ \0AÚ\b# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÛ\bFr@ \0AÛ\b# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÜ\bFr@ \0AÜ\b# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÝ\bFr@ \0AÝ\b# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÞ\bFr@ \0AAÞ\b# +AF\r\v# +E Aß\bFr@ \0A†Aß\b# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E Aà\bFr@ \0A‰!Aà\b# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃĄ\bFr@ A\bAÃĄ\b# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃĸ\bFr@   \0AÃĸ\b# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃŖ\bFr@ \0A’\bAÃŖ\b# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E Aä\bFr@   \0Aä\b# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃĨ\bFr@ \0AÃĨ\b# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃĻ\bFr@ \0AÃĻ\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Aç\bFr@ \0Aç\b# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E Aè\bFr@ \0Aè\b# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÊ\bFr@ \0AÊ\b# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃĒ\bFr@ \0AÃĒ\b# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃĢ\bFr@ \0A˜AÃĢ\b# +AF\r\v# +E AÃŦ\bFr@ \0AðAÃŦ\b# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E Aí\bFr@ \0A‰!Aí\b# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃŽ\bFr@ A\bAÃŽ\b# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Aï\bFr@   \0Aï\b# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Að\bFr@ \0A’\bAð\b# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃą\bFr@   \0AÃą\b# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃ˛\bFr@ \0AÃ˛\b# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃŗ\bFr@ \0AÃŗ\b# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Aô\bFr@ \0Aô\b# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃĩ\bFr@ \0AÃĩ\b# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃļ\bFr@ \0AÃļ\b# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃˇ\bFr@ \0AÃˇ\b# +AF\r\v\v \0 A\fj# +\x1B!\0# +E Aø\bFr@ \0A\xA0Aø\b# +AF\r\v# +E AÚ\bFr@ \0AßAÚ\b# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃē\bFr@ \0A‰!AÃē\b# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃģ\bFr@ A\bAÃģ\b# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃŧ\bFr@   \0AÃŧ\b# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃŊ\bFr@ \0A’\bAÃŊ\b# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÞ\bFr@   \0AÞ\b# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃŋ\bFr@ \0AÃŋ\b# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A€ Fr@ \0A€ # +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A Fr@ \0A # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A‚ Fr@ \0A‚ # +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E Aƒ Fr@ \0Aƒ # +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A„ Fr@ \0A„ # +AF\r\v\v \0 A\fj# +\x1B!\0# +E A… Fr@ \0A¨A… # +AF\r\v# +E A† Fr@ \0AÃĨA† # +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A‡ Fr@ \0A‰!A‡ # +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E Aˆ Fr@ A\bAˆ # +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A‰ Fr@   \0A‰ # +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AŠ Fr@ \0A’\bAŠ # +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A‹ Fr@   \0A‹ # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AŒ Fr@ \0AŒ # +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A Fr@ \0A # +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AŽ Fr@ \0AŽ # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A Fr@ \0A # +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A Fr@ \0A # +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A‘ Fr@ \0A‘ # +AF\r\v\v \0 A\fj# +\x1B!\0# +E A’ Fr@ \0A°A’ # +AF\r\v# +E A“ Fr@ \0AˆA“ # +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A” Fr@ \0A‰!A” # +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A• Fr@ A\bA• # +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A– Fr@   \0A– # +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A— Fr@ \0A’\bA— # +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A˜ Fr@   \0A˜ # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A™ Fr@ \0A™ # +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E Aš Fr@ \0Aš # +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A› Fr@ \0A› # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E Aœ Fr@ \0Aœ # +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A Fr@ \0A # +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Až Fr@ \0Až # +AF\r\v\v \0 A\fj# +\x1B!\0# +E AŸ Fr@ \0A¸AŸ # +AF\r\v# +E A\xA0 Fr@ \0AÂA\xA0 # +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂĄ Fr@ \0A‰!AÂĄ # +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂĸ Fr@ A\bAÂĸ # +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂŖ Fr@   \0AÂŖ # +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A¤ Fr@ \0A’\bA¤ # +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂĨ Fr@   \0AÂĨ # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂĻ Fr@ \0AÂĻ # +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A§ Fr@ \0A§ # +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A¨ Fr@ \0A¨ # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AŠ Fr@ \0AŠ # +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂĒ Fr@ \0AÂĒ # +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂĢ Fr@ \0AÂĢ # +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂŦ Fr@ \0AÀAÂŦ # +AF\r\v# +E A­ Fr@ \0A€A­ # +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂŽ Fr@ \0A‰!AÂŽ # +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A¯ Fr@ A\bA¯ # +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A° Fr@   \0A° # +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂą Fr@ \0A’\bAÂą # +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A² Fr@   \0A² # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂŗ Fr@ \0AÂŗ # +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A´ Fr@ \0A´ # +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂĩ Fr@ \0AÂĩ # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂļ Fr@ \0AÂļ # +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A¡ Fr@ \0A¡ # +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A¸ Fr@ \0A¸ # +AF\r\v\v \0 A\fj# +\x1B!\0# +E Aš Fr@ \0AÈAš # +AF\r\v# +E AÂē Fr@ \0A¯AÂē # +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂģ Fr@ \0A‰!AÂģ # +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂŧ Fr@ A\bAÂŧ # +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂŊ Fr@   \0AÂŊ # +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Až Fr@ \0A’\bAž # +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂŋ Fr@   \0AÂŋ # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÀ Fr@ \0AÀ # +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÁ Fr@ \0AÁ # +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A Fr@ \0A # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E Aà Fr@ \0Aà # +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÄ Fr@ \0AÄ # +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÅ Fr@ \0AÅ # +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÆ Fr@ \0AÐAÆ # +AF\r\v# +E AÇ Fr@ \0AÂAÇ # +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÈ Fr@ \0A‰!AÈ # +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÉ Fr@ A\bAÉ # +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÊ Fr@   \0AÊ # +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AË Fr@ \0A’\bAË # +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÌ Fr@   \0AÌ # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÍ Fr@ \0AÍ # +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÎ Fr@ \0AÎ # +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÏ Fr@ \0AÏ # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÐ Fr@ \0AÐ # +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÑ Fr@ \0AÑ # +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÒ Fr@ \0AÒ # +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÓ Fr@ \0AØAÓ # +AF\r\v# +E AÔ Fr@ \0AïAÔ # +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÕ Fr@ \0A‰!AÕ # +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÖ Fr@ A\bAÖ # +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A× Fr@   \0A× # +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AØ Fr@ \0A’\bAØ # +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÙ Fr@   \0AÙ # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÚ Fr@ \0AÚ # +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÛ Fr@ \0AÛ # +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÜ Fr@ \0AÜ # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÝ Fr@ \0AÝ # +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÞ Fr@ \0AÞ # +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Aß Fr@ \0Aß # +AF\r\v\v \0 A\fj# +\x1B!\0# +E Aà Fr@ \0AàAà # +AF\r\v# +E AÃĄ Fr@ \0AÂļAÃĄ # +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃĸ Fr@ \0A‰!AÃĸ # +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃŖ Fr@ A\bAÃŖ # +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Aä Fr@   \0Aä # +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃĨ Fr@ \0A’\bAÃĨ # +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃĻ Fr@   \0AÃĻ # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Aç Fr@ \0Aç # +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E Aè Fr@ \0Aè # +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÊ Fr@ \0AÊ # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃĒ Fr@ \0AÃĒ # +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃĢ Fr@ \0AÃĢ # +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃŦ Fr@ \0AÃŦ # +AF\r\v\v \0 A\fj# +\x1B!\0# +E Aí Fr@ \0AèAí # +AF\r\v# +E AÃŽ Fr@ \0AÃĩAÃŽ # +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E Aï Fr@ \0A‰!Aï # +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E Að Fr@ A\bAð # +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃą Fr@   \0AÃą # +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃ˛ Fr@ \0A’\bAÃ˛ # +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃŗ Fr@   \0AÃŗ # +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Aô Fr@ \0Aô # +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃĩ Fr@ \0AÃĩ # +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃļ Fr@ \0AÃļ # +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃˇ Fr@ \0AÃˇ # +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E Aø Fr@ \0Aø # +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÚ Fr@ \0AÚ # +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃē Fr@ \0AðAÃē # +AF\r\v# +E AÃģ Fr@ \0AôAÃģ # +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃŧ Fr@ \0A‰!AÃŧ # +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃŊ Fr@ A\bAÃŊ # +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÞ Fr@   \0AÞ # +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃŋ Fr@ \0A’\bAÃŋ # +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A€ +Fr@   \0A€ +# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A +Fr@ \0A +# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A‚ +Fr@ \0A‚ +# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Aƒ +Fr@ \0Aƒ +# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A„ +Fr@ \0A„ +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A… +Fr@ \0A… +# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A† +Fr@ \0A† +# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A‡ +Fr@ \0AøA‡ +# +AF\r\v# +E Aˆ +Fr@ \0A†Aˆ +# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A‰ +Fr@ \0A‰!A‰ +# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AŠ +Fr@ A\bAŠ +# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A‹ +Fr@   \0A‹ +# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AŒ +Fr@ \0A’\bAŒ +# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A +Fr@   \0A +# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AŽ +Fr@ \0AŽ +# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A +Fr@ \0A +# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A +Fr@ \0A +# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A‘ +Fr@ \0A‘ +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A’ +Fr@ \0A’ +# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A“ +Fr@ \0A“ +# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A” +Fr@ \0A€A” +# +AF\r\v# +E A• +Fr@ \0AÍA• +# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A– +Fr@ \0A‰!A– +# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A— +Fr@ A\bA— +# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A˜ +Fr@   \0A˜ +# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A™ +Fr@ \0A’\bA™ +# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E Aš +Fr@   \0Aš +# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A› +Fr@ \0A› +# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E Aœ +Fr@ \0Aœ +# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A +Fr@ \0A +# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E Až +Fr@ \0Až +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AŸ +Fr@ \0AŸ +# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A\xA0 +Fr@ \0A\xA0 +# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂĄ +Fr@ \0AˆAÂĄ +# +AF\r\v# +E AÂĸ +Fr@ \0AÃŗAÂĸ +# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂŖ +Fr@ \0A‰!AÂŖ +# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A¤ +Fr@ A\bA¤ +# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂĨ +Fr@   \0AÂĨ +# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂĻ +Fr@ \0A’\bAÂĻ +# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A§ +Fr@   \0A§ +# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A¨ +Fr@ \0A¨ +# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AŠ +Fr@ \0AŠ +# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂĒ +Fr@ \0AÂĒ +# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂĢ +Fr@ \0AÂĢ +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂŦ +Fr@ \0AÂŦ +# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A­ +Fr@ \0A­ +# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂŽ +Fr@ \0AAÂŽ +# +AF\r\v# +E A¯ +Fr@ \0AÂŦA¯ +# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A° +Fr@ \0A‰!A° +# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂą +Fr@ A\bAÂą +# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A² +Fr@   \0A² +# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂŗ +Fr@ \0A’\bAÂŗ +# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A´ +Fr@   \0A´ +# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂĩ +Fr@ \0AÂĩ +# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂļ +Fr@ \0AÂļ +# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A¡ +Fr@ \0A¡ +# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A¸ +Fr@ \0A¸ +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E Aš +Fr@ \0Aš +# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂē +Fr@ \0AÂē +# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂģ +Fr@ \0A˜AÂģ +# +AF\r\v# +E AÂŧ +Fr@ \0AÃĨAÂŧ +# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂŊ +Fr@ \0A‰!AÂŊ +# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E Až +Fr@ A\bAž +# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂŋ +Fr@   \0AÂŋ +# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÀ +Fr@ \0A’\bAÀ +# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÁ +Fr@   \0AÁ +# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A +Fr@ \0A +# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E Aà +Fr@ \0Aà +# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÄ +Fr@ \0AÄ +# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÅ +Fr@ \0AÅ +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÆ +Fr@ \0AÆ +# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÇ +Fr@ \0AÇ +# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÈ +Fr@ \0A\xA0AÈ +# +AF\r\v# +E AÉ +Fr@ \0A™AÉ +# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÊ +Fr@ \0A‰!AÊ +# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AË +Fr@ A\bAË +# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÌ +Fr@   \0AÌ +# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÍ +Fr@ \0A’\bAÍ +# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÎ +Fr@   \0AÎ +# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÏ +Fr@ \0AÏ +# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÐ +Fr@ \0AÐ +# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÑ +Fr@ \0AÑ +# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÒ +Fr@ \0AÒ +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÓ +Fr@ \0AÓ +# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÔ +Fr@ \0AÔ +# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÕ +Fr@ \0A¨AÕ +# +AF\r\v# +E AÖ +Fr@ \0AÃē\vAÖ +# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A× +Fr@ \0A‰!A× +# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AØ +Fr@ AAØ +# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÙ +Fr@   \0AÙ +# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÚ +Fr@ \0A’\bAÚ +# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÛ +Fr@   \0AÛ +# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÜ +Fr@ \0AÜ +# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÝ +Fr@ \0AÝ +# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÞ +Fr@ \0AÞ +# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E Aß +Fr@ \0Aß +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E Aà +Fr@ \0Aà +# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃĄ +Fr@ \0AÃĄ +# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃĸ +Fr@ \0AŠAÃĸ +# +AF\r\v# +E AÃŖ +Fr@ \0AÃĩ AÃŖ +# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E Aä +Fr@ \0A‰!Aä +# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃĨ +Fr@ A\vAÃĨ +# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃĻ +Fr@   \0AÃĻ +# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Aç +Fr@ \0A’\bAç +# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E Aè +Fr@   \0Aè +# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÊ +Fr@ \0AÊ +# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃĒ +Fr@ \0AÃĒ +# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃĢ +Fr@ \0AÃĢ +# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃŦ +Fr@ \0AÃŦ +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E Aí +Fr@ \0Aí +# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃŽ +Fr@ \0AÃŽ +# +AF\r\v\v \0 A\fj# +\x1B!\0# +E Aï +Fr@ \0A´Aï +# +AF\r\v# +E Að +Fr@ \0AØ\vAð +# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃą +Fr@ \0A‰!AÃą +# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃ˛ +Fr@ AAÃ˛ +# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃŗ +Fr@   \0AÃŗ +# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Aô +Fr@ \0A’\bAô +# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃĩ +Fr@   \0AÃĩ +# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃļ +Fr@ \0AÃļ +# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃˇ +Fr@ \0AÃˇ +# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Aø +Fr@ \0Aø +# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÚ +Fr@ \0AÚ +# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃē +Fr@ \0AÃē +# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃģ +Fr@ \0AÃģ +# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃŧ +Fr@ \0A¸AÃŧ +# +AF\r\v# +E AÃŊ +Fr@ \0AÞAÃŊ +# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÞ +Fr@ \0A‰!AÞ +# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃŋ +Fr@ AAÃŋ +# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A€\vFr@   \0A€\v# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A\vFr@ \0A’\bA\v# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A‚\vFr@   \0A‚\v# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Aƒ\vFr@ \0Aƒ\v# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A„\vFr@ \0A„\v# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A…\vFr@ \0A…\v# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A†\vFr@ \0A†\v# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A‡\vFr@ \0A‡\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Aˆ\vFr@ \0Aˆ\v# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A‰\vFr@ \0AÂŧA‰\v# +AF\r\v# +E AŠ\vFr@ \0AÃŦAŠ\v# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A‹\vFr@ \0A‰!A‹\v# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AŒ\vFr@ AAŒ\v# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A\vFr@   \0A\v# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AŽ\vFr@ \0A’\bAŽ\v# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A\vFr@   \0A\v# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A\vFr@ \0A\v# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A‘\vFr@ \0A‘\v# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A’\vFr@ \0A’\v# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A“\vFr@ \0A“\v# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A”\vFr@ \0A”\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A•\vFr@ \0A•\v# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A–\vFr@ \0AÀA–\v# +AF\r\v# +E A—\vFr@ \0AA—\v# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A˜\vFr@ \0A‰!A˜\v# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A™\vFr@ A\bA™\v# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Aš\vFr@   \0Aš\v# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A›\vFr@ \0A’\bA›\v# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E Aœ\vFr@   \0Aœ\v# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A\vFr@ \0A\v# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E Až\vFr@ \0Až\v# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AŸ\vFr@ \0AŸ\v# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A\xA0\vFr@ \0A\xA0\v# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂĄ\vFr@ \0AÂĄ\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂĸ\vFr@ \0AÂĸ\v# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂŖ\vFr@ \0AÈAÂŖ\v# +AF\r\v# +E A¤\vFr@ \0A—A¤\v# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂĨ\vFr@ \0A‰!AÂĨ\v# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂĻ\vFr@ A\bAÂĻ\v# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A§\vFr@   \0A§\v# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A¨\vFr@ \0A’\bA¨\v# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AŠ\vFr@   \0AŠ\v# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂĒ\vFr@ \0AÂĒ\v# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂĢ\vFr@ \0AÂĢ\v# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂŦ\vFr@ \0AÂŦ\v# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A­\vFr@ \0A­\v# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂŽ\vFr@ \0AÂŽ\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A¯\vFr@ \0A¯\v# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A°\vFr@ \0AÐA°\v# +AF\r\v# +E AÂą\vFr@ \0A‡AÂą\v# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A²\vFr@ \0A‰!A²\v# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂŗ\vFr@ A\bAÂŗ\v# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A´\vFr@   \0A´\v# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂĩ\vFr@ \0A’\bAÂĩ\v# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂļ\vFr@   \0AÂļ\v# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A¡\vFr@ \0A¡\v# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A¸\vFr@ \0A¸\v# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Aš\vFr@ \0Aš\v# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂē\vFr@ \0AÂē\v# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂģ\vFr@ \0AÂģ\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂŧ\vFr@ \0AÂŧ\v# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂŊ\vFr@ \0AØAÂŊ\v# +AF\r\v# +E Až\vFr@ \0AÃˇAž\v# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÂŋ\vFr@ \0A‰!AÂŋ\v# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÀ\vFr@ A\bAÀ\v# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÁ\vFr@   \0AÁ\v# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂ\vFr@ \0A’\bAÂ\v# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃ\vFr@   \0AÃ\v# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÄ\vFr@ \0AÄ\v# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÅ\vFr@ \0AÅ\v# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÆ\vFr@ \0AÆ\v# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÇ\vFr@ \0AÇ\v# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÈ\vFr@ \0AÈ\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÉ\vFr@ \0AÉ\v# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÊ\vFr@ \0AàAÊ\v# +AF\r\v# +E AË\vFr@ \0A§AË\v# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÌ\vFr@ \0A‰!AÌ\v# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÍ\vFr@ A\bAÍ\v# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÎ\vFr@   \0AÎ\v# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÏ\vFr@ \0A’\bAÏ\v# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÐ\vFr@   \0AÐ\v# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÑ\vFr@ \0AÑ\v# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÒ\vFr@ \0AÒ\v# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÓ\vFr@ \0AÓ\v# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÔ\vFr@ \0AÔ\v# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÕ\vFr@ \0AÕ\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÖ\vFr@ \0AÖ\v# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A×\vFr@ \0AèA×\v# +AF\r\v# +E AØ\vFr@ \0AÂŦAØ\v# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÙ\vFr@ \0A‰!AÙ\v# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÚ\vFr@ A\bAÚ\v# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÛ\vFr@   \0AÛ\v# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÜ\vFr@ \0A’\bAÜ\v# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÝ\vFr@   \0AÝ\v# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÞ\vFr@ \0AÞ\v# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E Aß\vFr@ \0Aß\v# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Aà\vFr@ \0Aà\v# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃĄ\vFr@ \0AÃĄ\v# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃĸ\vFr@ \0AÃĸ\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃŖ\vFr@ \0AÃŖ\v# +AF\r\v\v \0 A\fj# +\x1B!\0# +E Aä\vFr@ \0AðAä\v# +AF\r\v# +E AÃĨ\vFr@ \0AÌAÃĨ\v# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃĻ\vFr@ \0A‰!AÃĻ\v# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E Aç\vFr@ A\bAç\v# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Aè\vFr@   \0Aè\v# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÊ\vFr@ \0A’\bAÊ\v# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃĒ\vFr@   \0AÃĒ\v# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃĢ\vFr@ \0AÃĢ\v# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃŦ\vFr@ \0AÃŦ\v# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Aí\vFr@ \0Aí\v# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃŽ\vFr@ \0AÃŽ\v# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E Aï\vFr@ \0Aï\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Að\vFr@ \0Að\v# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃą\vFr@ \0AøAÃą\v# +AF\r\v# +E AÃ˛\vFr@ \0AÂŧAÃ˛\v# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃŗ\vFr@ \0A‰!AÃŗ\v# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E Aô\vFr@ A\bAô\v# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃĩ\vFr@   \0AÃĩ\v# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃļ\vFr@ \0A’\bAÃļ\v# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃˇ\vFr@   \0AÃˇ\v# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Aø\vFr@ \0Aø\v# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÚ\vFr@ \0AÚ\v# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃē\vFr@ \0AÃē\v# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃģ\vFr@ \0AÃģ\v# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃŧ\vFr@ \0AÃŧ\v# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃŊ\vFr@ \0AÃŊ\v# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÞ\vFr@ \0A€\x07AÞ\v# +AF\r\v# +E AÃŋ\vFr@ \0A™AÃŋ\v# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A€\fFr@ \0A‰!A€\f# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A\fFr@ A\bA\f# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A‚\fFr@   \0A‚\f# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Aƒ\fFr@ \0A’\bAƒ\f# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A„\fFr@   \0A„\f# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A…\fFr@ \0A…\f# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A†\fFr@ \0A†\f# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A‡\fFr@ \0A‡\f# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E Aˆ\fFr@ \0Aˆ\f# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A‰\fFr@ \0A‰\f# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AŠ\fFr@ \0AŠ\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A‹\fFr@ \0Aˆ\x07A‹\f# +AF\r\v# +E AŒ\fFr@ \0A—AŒ\f# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A\fFr@ \0A‰!A\f# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AŽ\fFr@ A\bAŽ\f# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A\fFr@   \0A\f# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A\fFr@ \0A’\bA\f# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A‘\fFr@   \0A‘\f# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A’\fFr@ \0A’\f# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A“\fFr@ \0A“\f# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A”\fFr@ \0A”\f# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A•\fFr@ \0A•\f# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A–\fFr@ \0A–\f# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A—\fFr@ \0A—\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A˜\fFr@ \0A\x07A˜\f# +AF\r\v# +E A™\fFr@ \0AÜA™\f# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E Aš\fFr@ \0A‰!Aš\f# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A›\fFr@ A\bA›\f# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Aœ\fFr@   \0Aœ\f# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A\fFr@ \0A’\bA\f# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E Až\fFr@   \0Až\f# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AŸ\fFr@ \0AŸ\f# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A\xA0\fFr@ \0A\xA0\f# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂĄ\fFr@ \0AÂĄ\f# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂĸ\fFr@ \0AÂĸ\f# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂŖ\fFr@ \0AÂŖ\f# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A¤\fFr@ \0A¤\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂĨ\fFr@ \0A˜\x07AÂĨ\f# +AF\r\v# +E AÂĻ\fFr@ \0A™AÂĻ\f# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A§\fFr@ \0A‰!A§\f# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A¨\fFr@ A\bA¨\f# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AŠ\fFr@   \0AŠ\f# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÂĒ\fFr@ \0A’\bAÂĒ\f# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÂĢ\fFr@   \0AÂĢ\f# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂŦ\fFr@ \0AÂŦ\f# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A­\fFr@ \0A­\f# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂŽ\fFr@ \0AÂŽ\f# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A¯\fFr@ \0A¯\f# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A°\fFr@ \0A°\f# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂą\fFr@ \0AÂą\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A²\fFr@ \0A\xA0\x07A²\f# +AF\r\v# +E AÂŗ\fFr@ \0AÂŽAÂŗ\f# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A´\fFr@ \0A‰!A´\f# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂĩ\fFr@ A\bAÂĩ\f# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÂļ\fFr@   \0AÂļ\f# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A¡\fFr@ \0A’\bA¡\f# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A¸\fFr@   \0A¸\f# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Aš\fFr@ \0Aš\f# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂē\fFr@ \0AÂē\f# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂģ\fFr@ \0AÂģ\f# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÂŧ\fFr@ \0AÂŧ\f# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂŊ\fFr@ \0AÂŊ\f# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E Až\fFr@ \0Až\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÂŋ\fFr@ \0A¨\x07AÂŋ\f# +AF\r\v# +E AÀ\fFr@ \0A—\x1BAÀ\f# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÁ\fFr@ \0A‰!AÁ\f# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÂ\fFr@ A\bAÂ\f# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃ\fFr@   \0AÃ\f# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÄ\fFr@ \0A’\bAÄ\f# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÅ\fFr@   \0AÅ\f# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÆ\fFr@ \0AÆ\f# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÇ\fFr@ \0AÇ\f# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÈ\fFr@ \0AÈ\f# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÉ\fFr@ \0AÉ\f# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÊ\fFr@ \0AÊ\f# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AË\fFr@ \0AË\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÌ\fFr@ \0A°\x07AÌ\f# +AF\r\v# +E AÍ\fFr@ \0AŽAÍ\f# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÎ\fFr@ \0A‰!AÎ\f# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÏ\fFr@ A\bAÏ\f# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÐ\fFr@   \0AÐ\f# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÑ\fFr@ \0A’\bAÑ\f# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÒ\fFr@   \0AÒ\f# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÓ\fFr@ \0AÓ\f# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÔ\fFr@ \0AÔ\f# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÕ\fFr@ \0AÕ\f# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÖ\fFr@ \0AÖ\f# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A×\fFr@ \0A×\f# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AØ\fFr@ \0AØ\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÙ\fFr@ \0A¸\x07AÙ\f# +AF\r\v# +E AÚ\fFr@ \0A›AÚ\f# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÛ\fFr@ \0A‰!AÛ\f# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÜ\fFr@ A\bAÜ\f# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÝ\fFr@   \0AÝ\f# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÞ\fFr@ \0A’\bAÞ\f# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E Aß\fFr@   \0Aß\f# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Aà\fFr@ \0Aà\f# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃĄ\fFr@ \0AÃĄ\f# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃĸ\fFr@ \0AÃĸ\f# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃŖ\fFr@ \0AÃŖ\f# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E Aä\fFr@ \0Aä\f# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃĨ\fFr@ \0AÃĨ\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃĻ\fFr@ \0AÀ\x07AÃĻ\f# +AF\r\v# +E Aç\fFr@ \0AAç\f# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E Aè\fFr@ \0A‰!Aè\f# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÊ\fFr@ AAÊ\f# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃĒ\fFr@   \0AÃĒ\f# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AÃĢ\fFr@ \0A’\bAÃĢ\f# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÃŦ\fFr@   \0AÃŦ\f# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E Aí\fFr@ \0Aí\f# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃŽ\fFr@ \0AÃŽ\f# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E Aï\fFr@ \0Aï\f# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E Að\fFr@ \0Að\f# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÃą\fFr@ \0AÃą\f# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃ˛\fFr@ \0AÃ˛\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E AÃŗ\fFr@ \0AÈ\x07AÃŗ\f# +AF\r\v# +E Aô\fFr@ \0AÂĒAô\f# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E AÃĩ\fFr@ \0A‰!AÃĩ\f# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E AÃļ\fFr@ A\bAÃļ\f# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E AÃˇ\fFr@   \0AÃˇ\f# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E Aø\fFr@ \0A’\bAø\f# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E AÚ\fFr@   \0AÚ\f# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÃē\fFr@ \0AÃē\f# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÃģ\fFr@ \0AÃģ\f# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÃŧ\fFr@ \0AÃŧ\f# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AÃŊ\fFr@ \0AÃŊ\f# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÞ\fFr@ \0AÞ\f# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÃŋ\fFr@ \0AÃŋ\f# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A€\rFr@ \0AÐ\x07A€\r# +AF\r\v# +E A\rFr@ \0Aß\fA\r# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A‚\rFr@ \0A‰!A‚\r# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E Aƒ\rFr@ AAƒ\r# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A„\rFr@   \0A„\r# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A…\rFr@ \0A’\bA…\r# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A†\rFr@   \0A†\r# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A‡\rFr@ \0A‡\r# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E Aˆ\rFr@ \0Aˆ\r# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A‰\rFr@ \0A‰\r# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E AŠ\rFr@ \0AŠ\r# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A‹\rFr@ \0A‹\r# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AŒ\rFr@ \0AŒ\r# +AF\r\v\v \0 A\fj# +\x1B!\0# +E A\rFr@ \0AÑ\x07A\r# +AF\r\v# +E AŽ\rFr@ \0AÂŋ\fAŽ\r# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E A\rFr@ \0A‰!A\r# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A\rFr@ AA\r# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E A‘\rFr@   \0A‘\r# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E A’\rFr@ \0A’\bA’\r# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A“\rFr@   \0A“\r# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E A”\rFr@ \0A”\r# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E A•\rFr@ \0A•\r# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E A–\rFr@ \0A–\r# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A—\rFr@ \0A—\r# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E A˜\rFr@ \0A˜\r# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E A™\rFr@ \0A™\r# +AF\r\v\v \0 A\fj# +\x1B!\0# +E Aš\rFr@ \0AØ\x07Aš\r# +AF\r\v# +E A›\rFr@ \0AÓA›\r# +AF\r!\0\v# +E@  \0(\b"6  \0)\x007 \0B\x007\0 \0A\x006\b Aj!\0\v# +E Aœ\rFr@ \0A‰!Aœ\r# +AF\r!\0\v# +E@  \0(\b"60  \0)\x007( \0B\x007\0 \0A\x006\b\v# +E A\rFr@ A\bA\r# +AF\r\v# +E@ A(j! (\0  ,\0\v"\0A\0H"\x1B! ( \0 \x1B!\0\v# +E Až\rFr@   \0Až\r# +AF\r!\0\v# +E@  \0(\b"6@  \0)\x0078 \0B\x007\0 \0A\x006\b A8j!\0\v# +E AŸ\rFr@ \0A\bAŸ\r# +AF\r!\0\v# +E@  \0(\b6P  \0)\x007H \0B\x007\0 \0A\x006\b AÔ\0j! (H AÈ\0j ,\0S"\0A\0H"\x1B! (L \0 \x1B!\0\v# +E A\xA0\rFr@   \0A\xA0\r# +AF\r!\0\v# +E@ ,\0SA\0H!\0\v \0# +AFr@# +E@ (P (H!\0\v# +E AÂĄ\rFr@ \0AÂĄ\r# +AF\r\v\v# +E@ ,\0CA\0H!\0\v \0# +AFr@# +E@ (@ (8!\0\v# +E AÂĸ\rFr@ \0AÂĸ\r# +AF\r\v\v# +E@ ,\0\vA\0H!\0\v \0# +AFr@# +E@ (\b (\0!\0\v# +E AÂŖ\rFr@ \0AÂŖ\r# +AF\r\v\v# +E@ ,\x003A\0H!\0\v \0# +AFr@# +E@ (0 ((!\0\v# +E A¤\rFr@ \0A¤\r# +AF\r\v\v# +E@ ,\0#A\0H!\0\v \0# +AFr@# +E@ (  (!\0\v# +E AÂĨ\rFr@ \0AÂĨ\r# +AF\r\v\v# +E@ ,\0A\0H!\0\v \0# +AFr@# +E@ ( (\f!\0\v# +E AÂĻ\rFr@ \0AÂĻ\r# +AF\r\v\v  AÔ\0j# +\x1B!# +E A§\rFr@ A\bA§\r# +AF\r!\0\v# +E@ (X" ,\0_"\0 \0A\0H"\0\x1BAj!\v# +E A¨\rFr@ 1A¨\r# +AF\r!\v# +E@  (T"  \0\x1BD!\v \0# +AFr@# +E@ (\\\v# +E AŠ\rFr@ AŠ\r# +AF\r\v\v# +E@ Aà\0j$\0 \v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6#\v#\v(\0Aj6\0A\0\v­# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E@ \0AÞ\0\v# +E Er@ \0;A\0# +AF\r\v# +E@ \0AA\0ÞH\0\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +E# +AF#\v#\v(\0Ak6\0#\v(\0(\0 \vEr@ \0XA\0# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\v\0A€\v\0Aà\x07\v\0A\0$ +#\v(\0#\v(K@\0\v\v\0A$ + \0$\v#\v(\0#\v(K@\0\v\v\0A\0$ +#\v(\0#\v(K@\0\v\v\0A$ + \0$\v#\v(\0#\v(K@\0\v\vÑ~# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! )\b! (!\v# +E# +AF#\v#\v(\0Ak6\0#\v(\0(\0 \vEr@    \0 \0A\0# +AF\r!\v# +E@ \v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  7\b  6#\v#\v(\0Aj6\0B\0\vð# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# + #!\0#"(t"@ A\x006t $ B\x007\0\0 \v#A \0\x1B\v# +AFr@# +E@A$\v# +E ErA\bA\0# +AF\r \0\v!\0\v# +E@ \0$ \0B\x007\0\0 \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0A\0\vÏ# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! (\b! (\f!\v# +E# +AF#\v#\v(\0Ak6\0#\v(\0(\0 \vEr@    \0\0A\0# +AF\r!\0\v# +E@ \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f#\v#\v(\0Aj6\0A\0\v²# +AF@#\v#\v(\0A\fk6\0#\v(\0"(\0!\0 (! (\b!\v# +E# +AF#\v#\v(\0Ak6\0#\v(\0(\0 \vEr@   \0\0A\0# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b#\v#\v(\0A\fj6\0\vŽ# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\0\v# +E# +AF#\v#\v(\0Ak6\0#\v(\0(\0 \vEr@ \0\0A\0# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0 \x006\0#\v#\v(\0Aj6\0\vÂĸ# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +E# +AF#\v#\v(\0Ak6\0#\v(\0(\0 \vEr@  \0\0\0A\0# +AF\r\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0\v¯# +AF@#\v#\v(\0A\bk6\0#\v(\0"(\0!\0 (!\v# +E# +AF#\v#\v(\0Ak6\0#\v(\0(\0 \vEr@  \0\0A\0# +AF\r!\0\v# +E@ \0\v\0\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6#\v#\v(\0A\bj6\0A\0\ví# +AF@#\v#\v(\0Ak6\0#\v(\0"(\0!\0 (! (\b! (\f! (!\v# +AF@#\v#\v(\0Ak6\0#\v(\0(\0!\v# +E Er@AÃŦ…8A\0# +AF\r\v# +E@Að…(\0!\0\v \0# +AFr@# +E@Aô…(\0!\v@# +E@Aô… Ak"6\0 A\0J!\v  # +\x1B"# +AFr@@# +E@Að…(\0"\0 Atj(\0! At" \0j(„!\0AÃŦ…7\v# +E AFr@ \0 \0\0A# +AF\r\v# +E AFr@AÃŦ…8A# +AF\r\v# +E@Aô…Aô…(\0"Ak"6\0 A\0J"\0\r\v\v# + \0Að…(\0\v!\0\v# +E@ \0(\0!\0A !Aô…A 6\0Að… \x006\0 \0\r\v\v\v\v!#\v(\0 6\0#\v#\v(\0Aj6\0#\v(\0" \x006\0  6  6\b  6\f  6#\v#\v(\0Aj6\0\v(\0 \0$ $ $ $@ E\r\0 E\r\0A¤ÃŦ\0 6\0\v\v\0#\0\v\0#\0 \0kApq"\0$\0 \0\vŽ# +AF@#\v#\v(\0A§\0Ãĩ5‚\0DÂģ.\0œÊ„\0´&p\0A~_\0֑9\0Sƒ9\0ϙ9\0‹_„\0(ÚÂŊ\0ø;\0ÞÃŋ—\0˜\0/ï\0 +Z‹\0mm\0Ï~6\0 Ë'\0FO¡\0žf?\0-ÃĒ_\0Âē'u\0ÃĨÃĢÇ\0={Ãą\0Ãˇ9\x07\0’RŠ\0ÃģkÃĒ\0Âą_\0\b]\x000V\0{ÃŧF\0ðÂĢk\0 ÂŧÏ\x006ôš\0ÃŖÂŠ\0^a‘\0\b\x1BÃĻ\0…™e\0\xA0_\0@h\0ۯÃŋ\0'sM\01\0ÊV\0ɨs\0{Ãĸ\`\0kŒÀ\0ÄG\0ÍgÃ\0 èÜ\0Yƒ*\0‹vÄ\0ÂĻ–\0D¯Ý\0WÑ\0ÂĨ>\0\x07Ãŋ\x003~?\0Â2è\0˜OÞ\0Âģ}2\0&=Ã\0kï\0Ÿø^\x005:\0Ã˛ÃŠ\0ÃąÂ‡\0|!\0j$|\0ÕnÃē\x000-w\0;C\0ÂĩÆ\0Ý\0­ÄÂ\0,MA\0\f\0]\0†}F\0ÃŖq-\0›Æš\x003b\0\0´Ò|\0´§—\x007UÕ\0×>Ãļ\0ÂŖ\0MvÃŧ\0d*\0p×ÂĢ\0c|ø\0z°W\0ç\0ÀIV\0;ÖÙ\0§„8\0$#Ë\0֊w\0ZT#\0\0š\0Ãą +\x1B\0Îß\0Ÿ1Ãŋ\0fj\0™Wa\0ÂŦÃģG\0~Ø\0"e¡\x002è‰\0ÃĻÂŋ\`\0ïÄÍ\0l6 \0]?Ô\0Þ×\0X;Þ\0ޛ’\0Ò"(\0(†è\0ÃĸXM\0ÆÊ2\0\bÃŖ\0à}Ë\0ÀP\0Ãŗ§\0à[\0.4\0ƒb\0ƒH\0ÃĩŽ[\0­°\0ÃŠÃ˛\0HJC\0gÓ\0ÂĒÝØ\0ÂŽ_B\0jaÎ\0 +(¤\0ә´\0ÂĻÃ˛\0\\w\0ÂŖÃ‚Âƒ\0a<ˆ\0Šsx\0¯ŒZ\0o×ÂŊ\0-ÂĻc\0ôÂŋË\0ï\0&Ág\0UÊE\0ÊÙ6\0(¨Ò\0Âa\0Éw\0&\0F›\0ÄYÄ\0ÈÅD\0M²‘\0\0Ãŗ\0ÔC­\0)IÃĨ\0ÃŊÕ\0\0žÃŧ\0”Ì\0pÃŽÃŽ\0>Ãĩ\0ÃŦÃąÂ€\0ÂŗÃ§Ãƒ\0Çø(\0“”\0Áq>\0. Âŗ\0\vEÃŗ\0ˆœ\0ÂĢ {\0.ÂĩŸ\0G’Â\0{2/\0\fUm\0r§\0kç\x001˖\0yJ\0AyÃĸ\0ô߉\0蔗\0ÃĸÃĻ„\0™1—\0ˆík\0__6\0ÂģÃŊ\0Hš´\0g¤l\0qrB\0]2\0Ÿ¸\0ÂŧÃĨ \01%\0Ãˇt9\x000\0\r\f\0K\bh\0,ÃŽX\0GÂǐ\0tç\0ÂŊÖ$\0Ãˇ}ÂĻ\0nHr\0Ÿï\0Ž”ÂĻ\0´‘Ãļ\0ÑSQ\0Ï +Ã˛\0 ˜3\0ÃĩK~\0²ch\0Ý>_\0@]\0…‰\0UR)\x007dÀ\0mØ\x002H2\0[Lu\0NqÔ\0ETn\0\v Á\0*Ãĩi\0fÕ\0'\x07\0]P\0´;Û\0ÃĒvÅ\0‡Ú\0Ik}\0'Âē\0–i)\0ÆÌÂŦ\0­T\0Ãĸj\0ˆÙ‰\0,rP\0¤ž\0w\x07”\0Ãŗ0p\0\0Ãŧ'\0ÃĒq¨\0fÂI\0dà=\0—݃\0ÂŖ?—\0C”ÃŊ\0\r†Œ\x001AÞ\0’9\0ÝpŒ\0ÂˇÃ§\0\bß;\07+\0\\€\xA0\0Z€“\0’\0èØ\0l€¯\0ÛÃŋK\x008\0Yv\0bÂĨ\0aËÂģ\0ljš\0@ÂŊ\0Ã’Ã˛\0Iu'\0ÃĢÂļÃļ\0Û"Âģ\0 +ÂĒ\0‰&/\0dƒv\0 ;3\0”\0Q:ÂĒ\0ÂŖÃ‚\0¯íŽ\0\\&\0mÂM\0-zœ\0ÀV—\0?ƒ\0 ðÃļ\0+@Œ\0m1™\x009´\x07\0\f \0ØÃ[\0Ãĩ’Ä\0Æ­K\0NÊÂĨ\0§7Í\0ÃĻŠ6\0ÂĢ’”\0ÝBh\0cÞ\0vΕ\0h‹R\0ÃŧÛ7\0ÂŽÂĄÂĢ\0ß1\0\0ÂŽÂĄ\0\fÃģÚ\0dMf\0í¡\0)e0\0WVÂŋ\0GÃŋ:\0jښ\0uÂžÃŗ\0(“ß\0ÂĢ€0\0fŒÃļ\0Ë\0Ãē"\0Ùä\0=ÂŗÂ¤\0W\x1B\x006Í \0NBÊ\0ž¤\x003#Âĩ\0ðÂĒ\0Oe¨\0ÒÁÂĨ\0\v?\0[xÍ\0#Úv\0{‹\0‰r\0ÆÂĻS\0onÃĸ\0ïÃĢ\0\0›JX\0Ã„ÃšÂˇ\0ÂĒfÂē\0vÏÏ\0Ñ\0ÂąÃą-\0Œ™Á\0íw\0†HÚ\0Ãˇ]\xA0\0ƀô\0ÂŦð/\0ÝÃŦš\0?\\Âŧ\0ÐÞm\0Ç\0*ÛÂļ\0ÂŖ%:\0\0¯š\0­S“\0ÂļW\0)-´\0K€~\0Ú\x07§\0vÂĒ\0{YÂĄ\0*\0ÃœÂˇ-\0ÃēÃĨÃŊ\0‰ÛÞ\0‰¾ÃŊ\0ävl\0ŠÃŧ\0>€p\0…n\0ÃŊ‡Ãŋ\0(>\x07\0ag3\0*†\0MÂŊÃĒ\0ÂŗÃ§Â¯\0mn\0•g9\x001Âŋ[\0„×H\x000ß\0Ç-C\0%a5\0ÉpÎ\x000˸\0ÂŋlÃŊ\0¤\0Âĸ\0lä\0ZÝ\xA0\0!oG\0bÒ\0š\\„\0paI\0kVà\0™R\0PU7\0Ã•Âˇ\x003ÃąÃ„\0n_\0]0ä\0….Š\0Â˛Ãƒ\0ÂĄ26\0\b¡¤\0ÃĒÂąÃ”\0Ãˇ!\0iä\0'Ãŋw\0\f€\0@-\0OÍ\xA0\0 ÂĨ™\0ÂŗÂĸÓ\0/] +\0´ÚB\0ÚË\0}žÐ\0›ÛÁ\0ÂĢÂŊ\0ÊÂĸ\0\bj\\\0.U\0'\0U\0ð\0ÃĄ\x07†\0\vd\0–A\0‡žÞ\0ÚÃŊ*\0k%Âļ\0{‰4\0ÃŗÃž\0šÂŋž\0hjO\0J*¨\0OÄZ\0-øÂŧ\0×Z˜\0ôǕ\0\rM\0 :ÂĻ\0¤W_\0?Âą\0€8•\0Ì \0q݆\0ÉÞÂļ\0Âŋ\`Ãĩ\0Me\0\x07k\0ΡÂŦ\0Â˛Ã€Ã\0QUH\0Ãģ\0•rÃ\0ÂŖ;\0À@5\0Ü{\0àEÌ\0N)Ãē\0ÖÊÈ\0Ã¨ÃŗA\0|dÞ\0›dØ\0ٞ1\0¤—Ã\0wXÔ\0iÃŖÃ…\0ðÚ\0Âē:<\0FF\0Uu_\0ÒÂŊÃĩ\0n’Æ\0ÂŦ.]\0Dí\0>B\0ać\0)ÃŊÊ\0Ã§Ã–Ãŗ\0"|Ê\0o‘5\0\bàÅ\0Ãŋ׍\0njÃĸ\0°ÃŊÆ\0“\bÁ\0|]t\0k­²\0Ín\0>r{\0Æj\0ÃˇÃÂŠ\0)sß\0ÂĩÉÂē\0¡\0Q\0Ãĸ²\r\0tÂē$\0ÃĨ}\`\0t؊\0\r,\0\f\0~f”\0)\0Ÿzv\0ÃŊÃŊž\0VEï\0Ù~6\0ÃŦÙ\0‹Âēš\0ėÃŧ\x001¨'\0ÃąnÃ\0Ӂ6\0بV\0´¨Âĩ\0ÏÌ\0‰-\0oW4\0,V‰\0Â™ÃŽÃŖ\0Ö š\0k^ÂĒ\0>*œ\0_Ì\0ÃŊ\vJ\0ÃĄÃ´Ãģ\0Ž;m\0Ãĸ†,\0ÊԄ\0Ãŧ´Š\0ïÎÑ\0.5É\0/9a\x008!D\0\x1BÙÈ\0Ãŧ +\0ÃģJj\0/Ø\0S´„\0N™Œ\0T"Ì\0*UÜ\0ÀÆÖ\0\v–\0p¸\0i•d\0&Z\`\0?RÃŽ\0\0ôÂĩ\0ÃŧËÃĩ\x004Âŧ-\x004ÂŧÃŽ\0è]Ì\0Ý^\`\0gŽ›\0’3ï\0ɸ\0aX›\0ÃĄWÂŧ\0QĮ\0Ø>\0ÝqH\0-Ý\0¯ÂĄ\0!,F\0YÃŗÃ—\0Ùz˜\0žTÀ\0O†Ãē\0VÃŧ\0ÃĨyÂŽ\0‰"6\x008­"\0g“Ü\0UèÂĒ\0‚&8\0Êç›\0Q\r¤\0™3Âą\0Š×\0iH\0eÂ˛Ã°\0ˆ§\0ˆL—\0ÚÑ6\0!Â’Âŗ\0{‚J\0˜Ï!\0@ŸÜ\0ÜGU\0ÃĄt:\0gÃĢB\0ޝß\0^Ô_\0{g¤\0ÂēÂŦz\0UÃļÂĸ\0+ˆ#\0AÂēU\0Yn\b\0!*†\x009Gƒ\0Â‰ÃŖÃĻ\0ÃĨžÔ\0IÃģ@\0ÃŋVÊ\0Ê\0ÅYŠ\0”Ãē+\0ÓÁÅ\0ÅÏ\0ÛZÂŽ\0Gņ\0…Cb\0!†;\0,y”\0a‡\0*L{\0€,\0CÂŋ\0ˆ&\0x<‰\0¨Ää\0ÃĨÛ{\0Ä:Â\0&ôÃĒ\0ÃˇgŠ\0\r’Âŋ\0eÂŖ+\0=“±\0ÂŊ|\v\0¤QÜ\0'Ýc\0iÃĄÃ\0š”\0¨)•\0hÎ(\0 í´\0DŸ \0N˜Ê\0p‚c\0~|#\0š2\0§ÃĩŽ\0Vç\0!Ãą\b\0Âĩ*\0o~M\0ÂĨQ\0ÂĩÚÂĢ\0‚ßÖ\0–Ýa\06\0Ä:Ÿ\0ƒÂĸÂĄ\0rím\x009z\0‚¸©\0k2\\\0F'[\0\x004í\0Ò\0w\0ÃŧôU\0YM\0àq€\0\0\0\0\0\0\0\0\0\0\0\0@Ãģ!Ú?\0\0\0\0-Dt>\0\0\0€˜Fø<\0\0\0\`QÌx;\0\0\0€ƒ\x1Bð9\0\0\0@ %z8\0\0\0€"Â‚ÃŖ6\0\0\0\0Ãŗi5ނ+eGg@\0\0\0\0\0\x008C\0\0ÃēÞB.vÂŋ:;žÂŧÂšÃˇ\fÂŊÂŊÃŊÃŋÃŋÃŋÃŋß?šÃŦï?Ñf‡z^Âŧ…nèÃŖÃ¯?Ãļg5RҌžï?m{ƒ]ÂĻš—<‰ÚlXÂĩï?ÃŧïÃŊ’ÂĩŽ<ÃˇGr+’ÂŦï?ќ/p=ž><ÂĸÑÓ2ÃŦÂŖÃ¯?\vn‰4jÂŧ\x1BÓÞ¯fݕ?ÂŊ/*RV•ÂŧQ[Гï?UÃĒNŒï€PÂŧÌ1lÀÂŊŠï?ô՚#ɑÂŧà-ŠŽš‚ï?¯U\\ÃŠÃŖÃ“Â€ÃˇÃŦš<ÂĒšh1‡Tï?8†Ë‚çÂŧÙÃŧ"PMï?ÃÂĻDAoŠ<֌bˆ;Fï?}ä°z€<–Ü}‘I?ï?Â”Â¨Â¨ÃŖÃŊŽ–<8bunz8ï?}HtÃ˛^‡Š¯\fï?ÂļÂ̰MuMƒ<¡1 +Þï?LtÂŦÃĸB†<1ØLÃŧpï?JøÓ]9ݏ<Ãŋd²\bÃŧÃŽ?[Ž;Â€ÂŖÂ†ÂŧÃąÂŸÂ’_ÅÃļÃŽ?hPKÌíJ’Âŧˊ:7Â§ÃąÃŽ?Ž-Q\x1Bø\x07™ÂŧfØmÂŽÃŦÃŽ?Ò6”>èÑqÂŧÃˇÂŸÃĨ4ÛçÎ?\x1BÃŽÂŗ™ÂŧÃĨ¨Ã-ÃŖÃŽ?mL*§HŸ…<"4LÂĻÞÎ?Ši(z\`“Âŧ€ÂŦEÚÎ?[‰H§XÂŧ*.Ãˇ! +ÖÎ?\x1BšIg›,|Âŧ—¨PÙÃĩÑÎ?ÂŦÂ\`ícC<-‰a\`\bÃŽÃŽ?ïd; f–Z~dxÂŧt_ÃŦèuŸÎ?°}‹ÀJΆÂŧtÂĨHšŸÎ?ŠÃĻU2†ÂŧÉgBVÃĢŸÎ?ÓÔ ^˜T'¤Î?47;ÃąÂļi“ÂŧÎL™‰ÂĨÃŽ?Ãŋ:„^€Âŧ­Ç#F§Î?nWrØPԔÂŧí’D›Ù¨Î?\0Š[g­<™fŠÙÇÂĒÃŽ?´ÃĒðÁ/·<Û\xA0*BÃĨÂŦÃŽ?ÃŋçŜ\`ÂļeÂŧŒDÂĩ2¯Î?D_ÃŗYƒÃļ{<6wÂ™ÂŽÂąÃŽ?ƒ=§ “ÂŧÆÃŋ‘\v[´Î?)l‹¸©]ÂŧÃĨÅͰ7ÂˇÃŽ?Yš|Ú#lÂŧRÈËDÂēÃŽ?ÂĒÚô"CC’ÂŧPNޟ‚ÂŊÃŽ?KŽf×lʅÂŧÂē\x07ÊpÃąÃ€ÃŽ?'Α+Ãŧ¯q<ÂÃ°ÂŖÂ‚Â‘Ã„ÃŽ?Âģs +ÃĄ5Òm<##ÃŖcÈÎ?c"b"ŇÂŧeÃĨ]{fÌÎ?Õ1ÃĸÃŖÂ†‹<3-JÃŦ›ÐÎ?ÂģÂŧÓÑÂģ‘Âŧ]%>²ÕÎ?Ò1Μ1̐´\x07!ՂÂŧ_›{3—|ï?É\rG;š*‰Âŧ)ÂĄÃĩF†ï?ӈ:\`Âļt<Ãļ?‹ç.ï?qrQÃŦŃ<ƒLÇÃģQšï?ð‘ӏÃˇÂÂŧڐ¤Âĸ¯¤ï?}t#Ãĸ˜®ÂŧÃągŽ-H¯ï?\b ÂĒAÂŧÎ<'ZaÃŽ\x1BÂēï?2ÃĢŠÃ”+„<—Âēk7+Åï?΅Ñ1ŠdŠ<@En[vÐï?Ã­ÃŖ;äÂē7ŽÂŧ¾œ­ÃŊÛï?Í‘M;‰w<ؐžÁçï?‰Ì\`AÁS<Ãąq+Ã‚ÃŗÃ¯?\x008ÃēÞB.ÃĻ?0gǓWÃŗ.=\0\0\0\0\0\0àÂŋ\`UUUUUÃĨÂŋ\0\0\0\0\0à?NUY™™™Ê?z¤)UUUÃĨÂŋÊEH›[IÃ˛ÂŋÃ?&‹+\0ð?\0\0\0\0\0\xA0Ãļ?\0\0\0\0\0\0\0\0\0ÃˆÂšÃ˛Â‚,ÖÂŋ€V7($´Ãē<\0\0\0\0\0€Ãļ?\0\0\0\0\0\0\0\0\0\bXÂŋÂŊÑÕÂŋ ÃˇÃ Ã˜\bÂĨÂŊ\0\0\0\0\0\`Ãļ?\0\0\0\0\0\0\0\0\0XEwvÕÂŋmPÂļÕ¤b#ÂŊ\0\0\0\0\0@Ãļ?\0\0\0\0\0\0\0\0\0ø-‡­ÕÂŋÕg°žä„ÃĻÂŧ\0\0\0\0\0 Ãļ?\0\0\0\0\0\0\0\0\0xw•_žÔÂŋà>)“i\x1BÂŊ\0\0\0\0\0\0Ãļ?\0\0\0\0\0\0\0\0\0\`‹aÔÂŋ̄LH/Ø=\0\0\0\0\0àÃĩ?\0\0\0\0\0\0\0\0\0¨††0ÔÂŋ:\vÂ‚Ã­ÃŗBÜ<\0\0\0\0\0ÀÃĩ?\0\0\0\0\0\0\0\0\0HiULÂĻÓÂŋ\`”QÂ†Ã†Âą =\0\0\0\0\0\xA0Ãĩ?\0\0\0\0\0\0\0\0\0€˜šÝGÓÂŋ’€ÅÔMY%=\0\0\0\0\0€Ãĩ?\0\0\0\0\0\0\0\0\0 ÃĄÂēÃĸèÒÂŋØ+·™{&=\0\0\0\0\0\`Ãĩ?\0\0\0\0\0\0\0\0\0ˆÞZ‰ÒÂŋ?°ÏÂļÊ=\0\0\0\0\0\`Ãĩ?\0\0\0\0\0\0\0\0\0ˆÞZ‰ÒÂŋ?°ÏÂļÊ=\0\0\0\0\0@Ãĩ?\0\0\0\0\0\0\0\0\0xÏÃģA)ÒÂŋvÚS($ZÂŊ\0\0\0\0\0 Ãĩ?\0\0\0\0\0\0\0\0\0˜iÁ˜ÈÑÂŋTçhÂŧ¯ÂŊ\0\0\0\0\0\0Ãĩ?\0\0\0\0\0\0\0\0\0¨ÂĢÂĢ\\gÑÂŋð¨‚3Æ=\0\0\0\0\0àô?\0\0\0\0\0\0\0\0\0HŽÚ‹ÑÂŋfZÃŊĨ&ÂŊ\0\0\0\0\0Àô?\0\0\0\0\0\0\0\0\0sÃĸ$ÂŖÃÂŋô~ÃŽk\fÂŊ\0\0\0\0\0\xA0ô?\0\0\0\0\0\0\0\0\0д”%@ÐÂŋ-ôž¸6ðÂŧ\0\0\0\0\0\xA0ô?\0\0\0\0\0\0\0\0\0д”%@ÐÂŋ-ôž¸6ðÂŧ\0\0\0\0\0€ô?\0\0\0\0\0\0\0\0\0@^mšÏÂŋ‡<™ÂĢ*W\r=\0\0\0\0\0\`ô?\0\0\0\0\0\0\0\0\0\`ÜË­ðÎÂŋ$Â¯Â†ÂœÂˇ&+=\0\0\0\0\0@ô?\0\0\0\0\0\0\0\0\0ð*n\x07'ÎÂŋÃŋ?TO/ÂŊ\0\0\0\0\0 ô?\0\0\0\0\0\0\0\0\0ÀOk!\\ÍÂŋ\x1BhÊÂģ‘Âē!=\0\0\0\0\0\0ô?\0\0\0\0\0\0\0\0\0\xA0ÂšÃ‡ÃˇÂÃŒÂŋ4„ŸhOy'=\0\0\0\0\0\0ô?\0\0\0\0\0\0\0\0\0\xA0ÂšÃ‡ÃˇÂÃŒÂŋ4„ŸhOy'=\0\0\0\0\0Ã Ãŗ?\0\0\0\0\0\0\0\0\0-t†ÂËÂŋ·‹1°N=\0\0\0\0\0Ã€Ãŗ?\0\0\0\0\0\0\0\0\0NÃ‰ÃŗÃŠÂŋfÍ?cNÂē<\0\0\0\0\0\xA0Ãŗ?\0\0\0\0\0\0\0\0\0°ÃĸÂŧ#ÊÂŋÃĒÁFÜdŒ%ÂŊ\0\0\0\0\0\xA0Ãŗ?\0\0\0\0\0\0\0\0\0°ÃĸÂŧ#ÊÂŋÃĒÁFÜdŒ%ÂŊ\0\0\0\0\0Â€Ãŗ?\0\0\0\0\0\0\0\0\0PôœZRÉÂŋÃŖÃ”ÃÙÑ*ÂŊ\0\0\0\0\0\`Ãŗ?\0\0\0\0\0\0\0\0\0Ð e\xA0ÈÂŋ ÃēÛÂŋÂŊ+=\0\0\0\0\0@Ãŗ?\0\0\0\0\0\0\0\0\0à‰ÂĢÇÂŋXJSrÛ+=\0\0\0\0\0@Ãŗ?\0\0\0\0\0\0\0\0\0à‰ÂĢÇÂŋXJSrÛ+=\0\0\0\0\0 Ãŗ?\0\0\0\0\0\0\0\0\0ÐçÖÆÂŋfÃĸÂ˛ÂŖjäÂŊ\0\0\0\0\0\0Ãŗ?\0\0\0\0\0\0\0\0\0§p0ÃŋÅÂŋ9PŸCžÂŊ\0\0\0\0\0\0Ãŗ?\0\0\0\0\0\0\0\0\0§p0ÃŋÅÂŋ9PŸCžÂŊ\0\0\0\0\0Ã Ã˛?\0\0\0\0\0\0\0\0\0Â°ÂĄÃŖÃĨ&ÅÂŋ[\x07‹Þ ÂŊ\0\0\0\0\0Ã€Ã˛?\0\0\0\0\0\0\0\0\0€Ël+MÄÂŋÂŊ\0\0\0\0\0àí?\0\0\0\0\0\0\0\0\0\`FÑ;—±?›ž\rV]2%ÂŊ\0\0\0\0\0\xA0í?\0\0\0\0\0\0\0\0\0àѧÃĩÂŊÂŗ?×NÛÂĨ^È,=\0\0\0\0\0\`í?\0\0\0\0\0\0\0\0\0\xA0—MZÊÂĩ?]<i,ÂŊ\0\0\0\0\0@í?\0\0\0\0\0\0\0\0\0ÀÃĒ +Ó\0¡?2흊ÃŦ<\0\0\0\0\0\0í?\0\0\0\0\0\0\0\0\0@Y]^3š?ÚGÂŊ:\\#=\0\0\0\0\0ÀÃŦ?\0\0\0\0\0\0\0\0\0\`­ÈjÂģ?ÃĨhÃˇ+€ÂŊ\0\0\0\0\0\xA0ÃŦ?\0\0\0\0\0\0\0\0\0@ÂŧXˆÂŧ?ÓÂŦZÆÑF&=\0\0\0\0\0\`ÃŦ?\0\0\0\0\0\0\0\0\0 +ƒ9Ǟ?àEÃϝhÀ-ÂŊ\0\0\0\0\0@ÃŦ?\0\0\0\0\0\0\0\0\0àÛ9‘èÂŋ?ÃŊ +ÂĄOÖ4%ÂŊ\0\0\0\0\0\0ÃŦ?\0\0\0\0\0\0\0\0\0à'‚ŽÁ?Ã˛\x07-Îxï!=\0\0\0\0\0àÃĢ?\0\0\0\0\0\0\0\0\0ð#~+ÂĒÁ?4™8Dާ,=\0\0\0\0\0\xA0ÃĢ?\0\0\0\0\0\0\0\0\0۠\faÑÂ?ÂĄÂ´ÂÃ‹l=\0\0\0\0\0€ÃĢ?\0\0\0\0\0\0\0\0\0°ÃŧeÃ?‰rK#¨/Æ<\0\0\0\0\0@ÃĢ?\0\0\0\0\0\0\0\0\0°3ƒ=‘Ä?xÂļÃŊTyƒ%=\0\0\0\0\0 ÃĢ?\0\0\0\0\0\0\0\0\0Â°ÂĄÃ¤ÃĨ'Å?Ç}iÃĨè3&=\0\0\0\0\0àÃĒ?\0\0\0\0\0\0\0\0\0Œ¾NWÆ?x.<,‹Ï=\0\0\0\0\0ÀÃĒ?\0\0\0\0\0\0\0\0\0pu‹ðÆ?ÃĄ!œÃĨ%ÂŊ\0\0\0\0\0\xA0ÃĒ?\0\0\0\0\0\0\0\0\0PD…‰Ç?C‘pfÂŊ\0\0\0\0\0\`ÃĒ?\0\0\0\0\0\0\0\0\0\x009Ã̝žÈ?Ñ,ÊÂĒT=\x07ÂŊ\0\0\0\0\0@ÃĒ?\0\0\0\0\0\0\0\0\0\0ÃˇÃœZZÉ?oÃŋ\xA0X(Ã˛\x07=\0\0\0\0\0\0ÃĒ?\0\0\0\0\0\0\0\0\0àŠ<í“Ê?i!VPCr(ÂŊ\0\0\0\0\0àÊ?\0\0\0\0\0\0\0\0\0Ð[WØ1Ë?ÂĒÃĄÂŦN5\fÂŊ\0\0\0\0\0ÀÊ?\0\0\0\0\0\0\0\0\0à;8‡ÐË?ÂļTYÄK-ÂŊ\0\0\0\0\0\xA0Ê?\0\0\0\0\0\0\0\0\0ðÆÃģoÌ?Ò+–ÅrÃŦÃąÂŧ\0\0\0\0\0\`Ê?\0\0\0\0\0\0\0\0\0Ô°=ÂąÃ?5°Ãˇ*Ãŋ*ÂŊ\0\0\0\0\0@Ê?\0\0\0\0\0\0\0\0\0çÃŋSÎ?0ôA\`'Â<\0\0\0\0\0 Ê?\0\0\0\0\0\0\0\0\0\0Ýä­ÃĩÎ?ŽÂģe!ÊÂŧ\0\0\0\0\0\0Ê?\0\0\0\0\0\0\0\0\0Â°Âŗl™Ï?0ß\fÊÃŦË\x1B=\0\0\0\0\0Àè?\0\0\0\0\0\0\0\0\0XM\`8qÐ?‘Níۜø<\0\0\0\0\0\xA0è?\0\0\0\0\0\0\0\0\0\`ag-ÄÐ?ÊÃĒ<‹'=\0\0\0\0\0ۏ?\0\0\0\0\0\0\0\0\0è'‚ŽÑ?ðÂĨc!,ÂŊ\0\0\0\0\0\`è?\0\0\0\0\0\0\0\0\0øÂŦË\\kÑ?ÂĨÃˇÃÂš+=\0\0\0\0\0@è?\0\0\0\0\0\0\0\0\0hZc™ÂŋÑ?¡ÂŊGQíÂĻ,=\0\0\0\0\0 è?\0\0\0\0\0\0\0\0\0¸mEÒ?ÃĒÂēFÂēއ +=\0\0\0\0\0àç?\0\0\0\0\0\0\0\0\0Ü|ðžÒ?ôPJÃēœ*=\0\0\0\0\0Àç?\0\0\0\0\0\0\0\0\0\`Ã“ÃĄÃąÓ?¸\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÃŋÃŋÃŋÃŋ +\bÈ6\0\0\0C\0`)}function _e(e){return e}async function ve(e){return _e(e)}async function ye(e,t){try{var n=await ve(e);return await WebAssembly.instantiate(n,t)}catch(e){g(`failed to asynchronously prepare wasm: ${e}`),k(e)}}async function be(e,t,n){return ye(t,n)}function xe(){return Kt(),{a:Gt}}async function Se(){function e(e,t){return $=e.exports,$=J.instrumentWasmExports($),Le($.C),Wt($),_=t,$}function t(t){return e(t.instance,t.module)}var n=xe();return r.instantiateWasm?new Promise((t,i)=>{r.instantiateWasm(n,(n,r)=>{t(e(n,r))})}):s?e(new WebAssembly.Instance(_,xe()),_):(he??=ge(),t(await be(ne,he,n)))}class Ce{name=`ExitStatus`;constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var we=e=>{e.terminate(),e.onmessage=e=>{}},Te=e=>{var t=I.pthreads[e];I.returnWorkerToPool(t)},Ee=e=>{for(;e.length>0;)e.shift()(r)},De=[],Oe=e=>De.push(e),ke=e=>{var t=I.getNewWorker();if(!t)return 6;I.runningWorkers.push(t),I.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var n={cmd:`run`,start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return o&&t.unref(),t.postMessage(n,e.transferList),0},A=0,j=()=>R||A>0,Ae=()=>Rt(),M=e=>It(e),N=e=>Lt(e),P=(e,t,n,...r)=>{var i=8*r.length*2,a=Ae(),o=N(i),s=o>>3;for(var c of r)typeof c==`bigint`?((b(),E)[s++]=1n,(b(),E)[s++]=c):((b(),E)[s++]=0n,(b(),ce)[s++]=c);var l=kt(e,t,i,o,n);return M(a),l};function je(e){if(s)return P(0,0,1,e);y=e,j()||(I.terminateAllThreads(),r.onExit?.(e),v=!0),u(e,new Ce(e))}function Me(e){if(s)return P(1,0,0,e);F(e)}var F=(e,t)=>{if(y=e,s)throw Me(e),`unwind`;j()||pe(),je(e)},I={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){s||I.initMainThread()},initMainThread(){},terminateAllThreads:()=>{for(var e of I.runningWorkers)we(e);for(var e of I.unusedWorkers)we(e);I.unusedWorkers=[],I.runningWorkers=[],I.pthreads={}},returnWorkerToPool:e=>{var t=e.pthread_ptr;delete I.pthreads[t],I.unusedWorkers.push(e),I.runningWorkers.splice(I.runningWorkers.indexOf(e),1),e.pthread_ptr=0,Mt(t)},threadInitTLS(){I.tlsInitFunctions.forEach(e=>e())},loadWasmModuleToWorker:e=>new Promise(t=>{e.onmessage=n=>{var i=n.data,a=i.cmd;if(i.targetThread&&i.targetThread!=Z()){var o=I.pthreads[i.targetThread];o?o.postMessage(i,i.transferList):g(`Internal error! Worker sent a message "${a}" to target pthread ${i.targetThread}, but that thread no longer exists!`);return}a===`checkMailbox`?H():a===`spawnThread`?ke(i):a===`cleanupThread`?B(()=>Te(i.thread)):a===`loaded`?(e.loaded=!0,t(e)):i.target===`setimmediate`?e.postMessage(i):a===`uncaughtException`?e.onerror(i.error):a===`callHandler`?r[i.handler](...i.args):a&&g(`worker sent an unknown command ${a}`)},e.onerror=e=>{throw g(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e},o&&(e.on(`message`,t=>e.onmessage({data:t})),e.on(`error`,t=>e.onerror(t)));var n=[];for(var i of[`onExit`,`onAbort`,`print`,`printErr`])r.propertyIsEnumerable(i)&&n.push(i);e.postMessage({cmd:`load`,handlers:n,wasmMemory:z,wasmModule:_})}),allocateUnusedWorker(){var e;if(r.mainScriptUrlOrBlob){var t=r.mainScriptUrlOrBlob;typeof t!=`string`&&(t=URL.createObjectURL(t)),e=new Worker(t,{type:`module`,workerData:`em-pthread`,name:`em-pthread`})}else e=new Worker(self.location.href,{type:`module`,workerData:`em-pthread`,name:`em-pthread`});I.unusedWorkers.push(e)},getNewWorker(){return I.unusedWorkers.length==0&&(I.allocateUnusedWorker(),I.loadWasmModuleToWorker(I.unusedWorkers[0])),I.unusedWorkers.pop()}},Ne=[],Pe=e=>Ne.push(e),L={};function Fe(e){var t=(b(),T)[e+52>>2],n=t-(b(),T)[e+56>>2];Ft(t,n),M(t)}var Ie=(e,t)=>{A=0,R=0;var n=(t=>zt(e,t))(t);function r(e){if(j()){y=e;return}Nt(e)}r(n)},R=!1,Le=e=>I.tlsInitFunctions.push(e),z;function Re(e,t,n,r){return s?P(2,0,1,e,t,n,r):Be(e,t,n,r)}var ze=()=>!!globalThis.SharedArrayBuffer,Be=(e,t,n,r)=>{if(!ze())return 6;var i=[];if(s&&i.length===0)return Re(e,t,n,r);var a={startRoutine:n,pthread_ptr:e,arg:r,transferList:i};return s?(a.cmd=`spawnThread`,postMessage(a,i),0):ke(a)},Ve=()=>k(``),He=e=>{Q(e,!a,1,!i,65536,!1),I.threadInitTLS()},Ue=e=>{if(e instanceof Ce||e==`unwind`)return y;u(1,e)},We=()=>{if(!D&&!j())try{if(s){Z()&&Nt(y);return}F(y)}catch(e){Ue(e)}},B=e=>{if(!(D||v))try{return e()}catch(e){Ue(e)}finally{We()}},Ge=!Atomics.waitAsync||globalThis.Deno||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91,V=e=>{if(!Ge){Atomics.waitAsync((b(),w),e>>2,e).value.then(H);var t=e+128;Atomics.store((b(),w),t>>2,1)}},H=()=>B(()=>{var e=Z();e&&(V(e),Pt())}),Ke=(e,t)=>{if(e==t)setTimeout(H);else if(s)postMessage({targetThread:e,cmd:`checkMailbox`});else{var n=I.pthreads[e];if(!n)return;n.postMessage({cmd:`checkMailbox`})}},U=[],qe=(e,t,n,r,i,a,o)=>{U.length=0;for(var s=i>>3,c=i+r>>3;sOt(a,o,e));return}return d},Je=e=>{s?postMessage({cmd:`cleanupThread`,thread:e}):Te(e)},Ye=e=>{o&&I.pthreads[e].ref()},Xe=()=>performance.timeOrigin+performance.now(),Ze=9007199254740992,Qe=-9007199254740992,$e=e=>eZe?NaN:Number(e),et=()=>{},W=()=>{A+=1},tt=()=>{throw W(),`unwind`},nt=()=>2147483648,rt=(e,t)=>Math.ceil(e/t)*t,it=e=>{var t=(e-z.buffer.byteLength+65535)/65536|0;try{return z.grow(t),O(),1}catch{}},at=e=>{var t=(b(),C).length;if(e>>>=0,e<=t)return!1;var n=nt();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),it(Math.min(n,rt(Math.max(e,i),65536))))return!0}return!1},ot=function(e){return J.handleAsync(()=>new Promise(t=>setTimeout(t,e)))};ot.isAsync=!0;function st(e){return s?P(3,0,1,e):52}function ct(e,t,n,r){return s?P(4,0,1,e,t,n,r):(t=$e(t),70)}var G=[null,[],[]],lt=globalThis.TextDecoder&&new TextDecoder,ut=(e,t,n,r)=>{var i=t+n;if(r)return i;for(;e[t]&&!(t>=i);)++t;return t},dt=(e,t=0,n,r)=>{var i=ut(e,t,n,r);if(i-t>16&&e.buffer&<)return lt.decode(e.buffer instanceof ArrayBuffer?e.subarray(t,i):e.slice(t,i));for(var a=``;t>10,56320|l&1023)}}return a},K=(e,t)=>{var n=G[e];t===0||t===10?((e===1?h:g)(dt(n)),n.length=0):n.push(t)},ft=()=>{Dt(0),G[1].length&&K(1,10),G[2].length&&K(2,10)},pt=(e,t,n)=>e?dt((b(),C),e,t,n):``;function mt(e,t,n,r){if(s)return P(5,0,1,e,t,n,r);for(var i=0,a=0;a>2],c=(b(),T)[t+4>>2];t+=8;for(var l=0;l>2]=i,0}var q=e=>{try{return e()}catch(e){k(e)}},ht=()=>{--A},J={instrumentWasmImports(e){var t=/^(invoke_.*|__asyncjs__.*)$/;for(let[n,r]of Object.entries(e))typeof r==`function`&&(r.isAsync||t.test(n))},instrumentFunction(e){var t=(...t)=>{J.exportCallStack.push(e);try{return e(...t)}finally{v||(J.exportCallStack.pop(),J.maybeStopUnwind())}};return J.funcWrappers.set(e,t),t},instrumentWasmExports(e){var t={};for(let[n,r]of Object.entries(e))typeof r==`function`?t[n]=J.instrumentFunction(r):t[n]=r;return t},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callstackFuncToId:new Map,callStackIdToFunc:new Map,funcWrappers:new Map,callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(e){if(!J.callstackFuncToId.has(e)){var t=J.callStackId++;J.callstackFuncToId.set(e,t),J.callStackIdToFunc.set(t,e)}return J.callstackFuncToId.get(e)},maybeStopUnwind(){J.currData&&J.state===J.State.Unwinding&&J.exportCallStack.length===0&&(J.state=J.State.Normal,W(),q(Vt),typeof Fibers<`u`&&Fibers.trampoline())},whenDone(){return new Promise((e,t)=>{J.asyncPromiseHandlers={resolve:e,reject:t}})},allocateData(){var e=At(12+J.StackSize);return J.setDataHeader(e,e+12,J.StackSize),J.setDataRewindFunc(e),e},setDataHeader(e,t,n){(b(),T)[e>>2]=t,(b(),T)[e+4>>2]=t+n},setDataRewindFunc(e){var t=J.exportCallStack[0],n=J.getCallStackId(t);(b(),w)[e+8>>2]=n},getDataRewindFunc(e){var t=(b(),w)[e+8>>2];return J.callStackIdToFunc.get(t)},doRewind(e){var t=J.getDataRewindFunc(e),n=J.funcWrappers.get(t);return ht(),B(n)},handleSleep(e){if(!v){if(J.state===J.State.Normal){var t=!1,n=!1;e((e=0)=>{if(!v&&(J.handleSleepReturnValue=e,t=!0,n)){J.state=J.State.Rewinding,q(()=>Ht(J.currData)),typeof MainLoop<`u`&&MainLoop.func&&MainLoop.resume();var r,i=!1;try{r=J.doRewind(J.currData)}catch(e){r=e,i=!0}var a=!1;if(!J.currData){var o=J.asyncPromiseHandlers;o&&(J.asyncPromiseHandlers=null,(i?o.reject:o.resolve)(r),a=!0)}if(i&&!a)throw r}}),n=!0,t||(J.state=J.State.Unwinding,J.currData=J.allocateData(),typeof MainLoop<`u`&&MainLoop.func&&MainLoop.pause(),q(()=>Bt(J.currData)))}else J.state===J.State.Rewinding?(J.state=J.State.Normal,q(Ut),jt(J.currData),J.currData=null,J.sleepCallbacks.forEach(B)):k(`invalid state: ${J.state}`);return J.handleSleepReturnValue}},handleAsync:e=>J.handleSleep(async t=>{t(await e())})},gt=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63,o++}}return t[n]=0,n-i},_t=(e,t,n)=>gt(e,(b(),C),t,n),vt=e=>{for(var t=0,n=0;n=55296&&r<=57343?(t+=4,++n):t+=3}return t},yt=e=>r[`_`+e],bt=(e,t)=>{(b(),S).set(e,t)},xt=e=>{var t=vt(e)+1,n=N(t);return _t(e,n,t),n},St=(e,t,n,r,i)=>{var a={string:e=>{var t=0;return e!=null&&e!==0&&(t=xt(e)),t},array:e=>{var t=N(e.length);return bt(e,t),t}};function o(e){return t===`string`?pt(e):t===`boolean`?!!e:e}var s=yt(e),c=[],l=0;if(r)for(var u=0;u{var i=!n||n.every(e=>e===`number`||e===`boolean`);return t!==`string`&&i&&!r?yt(e):(...i)=>St(e,t,n,i,r)};I.init();for(var Y=new Uint8Array(123),X=25;X>=0;--X)Y[48+X]=52+X,Y[65+X]=X,Y[97+X]=26+X;if(Y[43]=62,Y[47]=63,ue(),r.noExitRuntime&&(R=r.noExitRuntime),r.print&&(h=r.print),r.printErr&&(g=r.printErr),r.wasmBinary&&(ne=r.wasmBinary),r.arguments&&r.arguments,r.thisProgram&&r.thisProgram,r.preInit)for(typeof r.preInit==`function`&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.shift()();r.ccall=St,r.cwrap=Ct,r.UTF8ToString=pt,r.stringToUTF8=_t,r.lengthBytesUTF8=vt;var wt=[je,Me,Re,st,ct,mt],Z,Tt,Q,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,Ft,It,Lt,Rt,zt,Bt,Vt,Ht,Ut;function Wt(e){r._get_elsetrec_size=e.t,r._get_rundata_size=e.u,r._create_elsetrec_struct_layout_string_pointer=e.v,r._create_rundata_struct_layout_string_pointer=e.w,r._free_struct_layout_string=e.x,r._sgp4forJs=e.y,r._calloc_one=e.z,r._exit_runtime=e.A,r._compute=e.B,e.C,Z=e.D,Tt=e.E,Q=e.F,Et=e.G,Dt=e.H,Ot=e.I,kt=e.J,At=r._malloc=e.K,jt=r._free=e.L,Mt=e.M,Nt=e.N,Pt=e.O,Ft=e.P,It=e.Q,Lt=e.R,Rt=e.S,zt=L.ii=e.T,L.vi=e.U,L.v=e.V,L.vii=e.W,L.iiii=e.X,L.jiji=e.Y,Bt=e.Z,Vt=e._,Ht=e.$,Ut=e.aa,e.__indirect_function_table}var Gt;function Kt(){Gt={g:Be,m:Ve,l:He,o:Ke,c:qe,e:Je,k:V,j:Ye,h:et,i:tt,b:Xe,n:at,r:ot,f:F,q:st,p:ct,d:mt,a:z}}function qt(){if(s){x?.(r),fe();return}de();function e(){r.calledRun=!0,!v&&(fe(),x?.(r),r.onRuntimeInitialized?.(),me())}r.setStatus?(r.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>r.setStatus(``),1),e()},1)):e()}var $;return s||($=await Se(),qt()),n=le?r:new Promise((e,t)=>{x=e,ie=t}),n}var n=globalThis.self?.name?.startsWith(`em-pthread`);globalThis.process?.versions?.node&&globalThis.process?.type!=`renderer`&&(n=(await import(`./__vite-browser-external-BRyEmtFe.js`).then(t=>e(t.default,1))).workerData===`em-pthread`),n&&t(); \ No newline at end of file diff --git a/assets/rolldown-runtime-Bh1tDfsg.js b/assets/rolldown-runtime-Bh1tDfsg.js new file mode 100644 index 00000000..04d551d7 --- /dev/null +++ b/assets/rolldown-runtime-Bh1tDfsg.js @@ -0,0 +1 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));export{c as n,o as t}; \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json new file mode 100644 index 00000000..0dbf1578 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":0,"numberOfSamples":1000,"samples":[-0.002403025022753476,-2.5083047211757836e-5,-1.721638967214743e-8,-0.002402558217007106,-2.5020003017226545e-5,-1.7146589882925253e-8,-0.002402152743739069,-2.4908815008776256e-5,-1.7018183343380784e-8,-0.0024018177616850914,-2.4779340864272868e-5,-1.686693112266686e-8,-0.0024015512294922256,-2.4661265859267777e-5,-1.672851429567895e-8,-0.0024013415089134365,-2.4580601237402673e-5,-1.6634308307010567e-8,-0.0024011692853140917,-2.4557354638250633e-5,-1.660856911234815e-8,-0.0024010094083213077,-2.460379520847823e-5,-1.666634004388421e-8,-0.002400832781870665,-2.472274606391698e-5,-1.681138635859172e-8,-0.0024006088674261195,-2.490565851910724e-5,-1.7033840158805374e-8,-0.0024003096414815053,-2.513083477542098e-5,-1.7307985763326293e-8,-0.002399915678730765,-2.5363106308028472e-5,-1.759177707540246e-8,-0.0023994239684226163,-2.5557205638682287e-5,-1.7830822072448312e-8,-0.0023988549431304905,-2.566700881355288e-5,-1.7969488578482e-8,-0.0023982538707374547,-2.5660422954022525e-5,-1.7968844164137065e-8,-0.002397681821948537,-2.553480284678542e-5,-1.7825226886235993e-8,-0.0023971964165357008,-2.53237668313255e-5,-1.7578462540315414e-8,-0.002396830441918346,-2.50885777844268e-5,-1.7301586465142487e-8,-0.0023965800106651434,-2.4896546614298096e-5,-1.7075078798371497e-8,-0.0023964084361551537,-2.4797687943490375e-5,-1.695902560230991e-8,-0.002396262002993096,-2.481096708533641e-5,-1.6976666372280337e-8,-0.0023960882393536166,-2.4923817586803518e-5,-1.7113670694608337e-8,-0.002395849219877066,-2.5101106375207836e-5,-1.732863106912266e-8,-0.002395527525579831,-2.5297461255455714e-5,-1.756761197379987e-8,-0.0023951260596151974,-2.546854998291281e-5,-1.7777564319951067e-8,-0.0023946640036132836,-2.5579325396643004e-5,-1.7916241394922998e-8,-0.0023941708783994835,-2.5608875350224024e-5,-1.7958135357141878e-8,-0.0023936800199459637,-2.5552141704174967e-5,-1.7896681829365477e-8,-0.00239322243029576,-2.5418865388500117e-5,-1.774311016303839e-8,-0.0023928218677541743,-2.5230314934074022e-5,-1.7522587181791123e-8,-0.0023924917832175113,-2.5014690159013176e-5,-1.7268730448048223e-8,-0.0023922342643846748,-2.480218762163173e-5,-1.7017686942652696e-8,-0.0023920407464684762,-2.4620565317509125e-5,-1.6802798466007283e-8,-0.0023918939307276768,-2.4491771693316273e-5,-1.6650542584010726e-8,-0.0023917702332855676,-2.442975015807349e-5,-1.6577888357278284e-8,-0.002391642329452238,-2.443909807420655e-5,-1.6590679729922046e-8,-0.002391481763245852,-2.4514179502452957e-5,-1.6682551340715887e-8,-0.0023912619080620466,-2.4638499724969643e-5,-1.6834129065335303e-8,-0.002390961805205984,-2.478455800610903e-5,-1.701276797456279e-8,-0.00239057134744484,-2.4915132198915024e-5,-1.717399678816932e-8,-0.0023900974268101054,-2.4987729973603072e-5,-1.7266795508165544e-8,-0.0023895689055318833,-2.496391501976109e-5,-1.7244787681999786e-8,-0.002389036165074365,-2.4823284691699932e-5,-1.7083063873624844e-8,-0.002388560578292379,-2.4577378315217863e-5,-1.6794918110509053e-8,-0.0023881937570601162,-2.4274142413621198e-5,-1.643724545979219e-8,-0.0023879553394346147,-2.3985163329236852e-5,-1.6095335313882396e-8,-0.002387823242597225,-2.3778727505381422e-5,-1.5850778179207802e-8,-0.002387743703083488,-2.3693514905278695e-5,-1.575012576846581e-8,-0.002387654469699301,-2.3727803248252375e-5,-1.57919573836453e-8,-0.0023875068224310926,-2.384701163322787e-5,-1.5935693828749185e-8,-0.0023872766838733636,-2.4000872036063545e-5,-1.6121849968027748e-8,-0.0023869645383715133,-2.4139837531397063e-5,-1.6291451853276617e-8,-0.0023865890688437295,-2.4225578577636494e-5,-1.6398545934918142e-8,-0.002386179207668243,-2.4235415814278647e-5,-1.641560182566368e-8,-0.0023857671367677994,-2.4162608465253676e-5,-1.633403013000638e-8,-0.00238538293231372,-2.4014446579879058e-5,-1.6162059832962554e-8,-0.002385050648932289,-2.3809267842749758e-5,-1.5921265822080736e-8,-0.0023847856192039767,-2.357281279621325e-5,-1.564223465313254e-8,-0.002384592973846085,-2.333418942320294e-5,-1.5359717819261274e-8,-0.0023844674152753756,-2.3121781930974167e-5,-1.5107704928910368e-8,-0.0023843942234786524,-2.2959461734624766e-5,-1.491486592392592e-8,-0.002384351361188566,-2.2863520256191973e-5,-1.4800873864748202e-8,-0.0023843123252193354,-2.28406536006252e-5,-1.4773996666932113e-8,-0.0023842493365599203,-2.2887020091128393e-5,-1.4829969279080835e-8,-0.0023841366567967904,-2.2988230871289267e-5,-1.4951960812478233e-8,-0.0023839539952364617,-2.312021069380629e-5,-1.5111546301631272e-8,-0.00238369008534005,-2.3251022890859802e-5,-1.527079819049034e-8,-0.0023833464925758774,-2.3344139544444378e-5,-1.5386101234343148e-8,-0.002382941139623567,-2.336411463944466e-5,-1.5414884137776942e-8,-0.002382509826925251,-2.328539769468119e-5,-1.532618136616557e-8,-0.0023821027927208825,-2.3103440347943915e-5,-1.5114003628255345e-8,-0.002381773349088804,-2.284408291453904e-5,-1.4808671898883374e-8,-0.0023815590512039917,-2.2563826220574735e-5,-1.4477243667166011e-8,-0.002381463086871345,-2.233471929550198e-5,-1.4205559558666824e-8,-0.0023814485095478804,-2.221697578834785e-5,-1.4065641166745777e-8,-0.002381452228381859,-2.2233998994991225e-5,-1.4085907881538568e-8,-0.002381411455037569,-2.2365307161191684e-5,-1.424262147988882e-8,-0.0023812864408547367,-2.2559894107652725e-5,-1.447559680357265e-8,-0.002381068549780454,-2.2758766135733266e-5,-1.4714854003566721e-8,-0.0023807747559344136,-2.291337561706086e-5,-1.4902487127724783e-8,-0.002380436370789755,-2.2994297064707167e-5,-1.5003052078078702e-8,-0.0023800885646524635,-2.299177707261808e-5,-1.5004382649226507e-8,-0.00237976327801646,-2.291211671228343e-5,-1.4913466509235396e-8,-0.0023794853741548514,-2.277298527889861e-5,-1.4750994633350504e-8,-0.0023792708581126575,-2.2599122259547465e-5,-1.4546281765613793e-8,-0.0023791261518308006,-2.241861685502684e-5,-1.4332799297124966e-8,-0.002379048025038435,-2.2259517123002332e-5,-1.4144070736454437e-8,-0.002379024159088545,-2.214660348294054e-5,-1.4009774292460906e-8,-0.0023790344674725033,-2.209831973031592e-5,-1.395206580492697e-8,-0.0023790533562057336,-2.2124111902023713e-5,-1.3982415286808531e-8,-0.002379052917494198,-2.222265873839312e-5,-1.4099513692685225e-8,-0.0023790067355613062,-2.238139064397462e-5,-1.428869841454831e-8,-0.002378893869389061,-2.257747476862916e-5,-1.4523091866730754e-8,-0.002378702581053121,-2.2780337278386994e-5,-1.476653436627111e-8,-0.002378433361551305,-2.2955662245878917e-5,-1.4978254730954575e-8,-0.002378100828725866,-2.3070719458652143e-5,-1.511914018072533e-8,-0.0023777339193535064,-2.310095367991105e-5,-1.515956714522654e-8,-0.0023773732909614727,-2.303748192499462e-5,-1.5088399696609955e-8,-0.0023770645160716658,-2.2893966475516838e-5,-1.492131520640025e-8,-0.002376846389675512,-2.2709585344523315e-5,-1.4704506770614907e-8,-0.0023767362857042957,-2.2543662682762967e-5,-1.4508420483594385e-8,-0.0023767187552697256,-2.2459283627088534e-5,-1.4408307234147157e-8,-0.0023767459611238515,-2.2499820209175073e-5,-1.445625065299755e-8,-0.0023767538670920077,-2.2670163085399482e-5,-1.4658709621930782e-8,-0.0023766872411040843,-2.2934727415897178e-5,-1.4973964372283597e-8,-0.0023765193201164465,-2.323369224805631e-5,-1.5331258141108677e-8,-0.0023762563410213845,-2.350669143427009e-5,-1.5658866089500266e-8,-0.002375928430938125,-2.371079089789632e-5,-1.5905466616878e-8,-0.0023755754730009244,-2.382701217823089e-5,-1.6047996748580552e-8,-0.0023752354105984904,-2.3857755177899014e-5,-1.6088754695381856e-8,-0.002374937643938984,-2.3820288416794153e-5,-1.6047823960984603e-8,-0.002374700710601401,-2.3740166302795695e-5,-1.5955340321399732e-8,-0.0023745323579410426,-2.364615831678585e-5,-1.584546360315411e-8,-0.002374430478790293,-2.356666639934087e-5,-1.575205426032653e-8,-0.002374384221762089,-2.352701024171114e-5,-1.57053729084508e-8,-0.0023743752258978223,-2.3547031862098734e-5,-1.572919102890182e-8,-0.0023743792463522813,-2.3638741087943782e-5,-1.5837991897107692e-8,-0.002374368580960303,-2.380412406762251e-5,-1.60343866710735e-8,-0.002374315566041234,-2.403369636554169e-5,-1.6307405665562255e-8,-0.0023741969508027684,-2.4306554286211768E-05,-1.663253558578559e-8,-0.0023739984897390765,-2.4592488041431972e-5,-1.6974166769903272e-8,-0.0023737187937815855,-2.485635257581502e-5,-1.729069822860392e-8,-0.0023733713634909127,-2.506433547134887e-5,-1.75419012861819e-8,-0.002372983923689407,-2.5191127286277645e-5,-1.769739737193478e-8,-0.002372594652471399,-2.5226659292504724e-5,-1.774469317666995e-8,-0.0023722453489884105,-2.518097690876975e-5,-1.7695084665231785e-8,-0.0023719720500917853,-2.508558541252764e-5,-1.758542950683843e-8,-0.0023717945137316262,-2.4989429346639012e-5,-1.7473550411127092e-8,-0.002371707467356645,-2.494832237534192e-5,-1.7425795584798645e-8,-0.002371677894372136,-2.5008867215187453e-5,-1.7497939205762146e-8,-0.0023716521953735695,-2.519167607485704e-5,-1.7715125311405072e-8,-0.002371573067713854,-2.548183725590846e-5,-1.8060341886620035e-8,-0.0023713996123746663,-2.5833052724984733e-5,-1.8479137373701417e-8,-0.002371120733790304,-2.6184543627960917e-5,-1.8899572452170946e-8,-0.002370755545988175,-2.6481976563885553e-5,-1.925703522704526e-8,-0.0023703426289241364,-2.6692240399045317e-5,-1.951183288718046e-8,-0.002369925545652223,-2.6807480392539526e-5,-1.9654094044252732e-8,-0.0023695414256623836,-2.6840554567015164e-5,-1.969852847864199e-8,-0.0023692152111846727,-2.681698378371743e-5,-1.9675010651785046e-8,-0.0023689586030738027,-2.676742403134865e-5,-1.961971546979294e-8,-0.002368771517557994,-2.672230169153053e-5,-1.9568738474777108e-8,-0.0023686442754798733,-2.6708491821190418e-5,-1.9554090992955217e-8,-0.0023685596467347297,-2.6747237733667733e-5,-1.960116950419851e-8,-0.0023684946354959537,-2.68525198499682e-5,-1.97267938434712e-8,-0.002368422377939945,-2.7029396546161804e-5,-1.9937245693158044e-8,-0.002368314731930507,-2.7272358283705946e-5,-2.0226327583010683e-8,-0.002368145999280894,-2.7564325967266348e-5,-2.0574158419038293e-8,-0.0023678977178564387,-2.7877297359742607e-5,-2.0947880438817348e-8,-0.002367563716932125,-2.8175607003251493e-5,-2.13054362009557e-8,-0.0023671538835179904,-2.842219417818171e-5,-2.1602912348808545e-8,-0.0023666947656918185,-2.8587099112517685e-5,-2.1804557557978034e-8,-0.002366225711058261,-2.865603679897383e-5,-2.1892948933762033e-8,-0.0023657906850576426,-2.8636207775475263e-5,-2.1875955583981355e-8,-0.0023654275601418958,-2.855700316341736e-5,-2.178772414823076e-8,-0.0023651577407058874,-2.8464659629023123e-5,-2.168254086275059e-8,-0.002364979157822262,-2.8411626526095733e-5,-2.162241058543541e-8,-0.0023648650418965824,-2.8442979454826838e-5,-2.166103733977592e-8,-0.0023647696710966484,-2.858341235909699e-5,-2.182833892955203e-8,-0.0023646404647817425,-2.8828964162584613e-5,-2.2120438590644107e-8,-0.002364433315624853,-2.9147094222646294e-5,-2.2499504905555506e-8,-0.0023641258489594833,-2.9486173871872614e-5,-2.2904806040155516e-8,-0.0023637232753826293,-2.979130710829397e-5,-2.3271375506734424e-8,-0.0023632546433513643,-3.0020135017275484e-5,-2.3548762139194928e-8,-0.002362761919778162,-3.0152532930312014e-5,-2.371261331000258e-8,-0.002362287259213515,-3.019176737033716e-5,-2.3766181246292998e-8,-0.002361863354709199,-3.015895406508579e-5,-2.3733906423839642e-8,-0.0023615089325091636,-3.0084812691876054e-5,-2.3651770841389847e-8,-0.00236122863993826,-3.0002168291456246e-5,-2.355846990290136e-8,-0.002361015342081342,-2.9940748794497447e-5,-2.3489231721847384e-8,-0.002360853090462664,-2.99242064708113e-5,-2.347223119682423e-8,-0.0023607198261957722,-2.9968579872684983e-5,-2.352671480071416e-8,-0.0023605896206938806,-3.008134175253829e-5,-2.3661849584525067e-8,-0.002360434817332799,-3.0260449420114613e-5,-2.3875596082544623e-8,-0.002360228724551759,-3.049336232044938e-5,-2.4153533560309604e-8,-0.002359949398259028,-3.0756647438100245e-5,-2.4468344706144205e-8,-0.0023595845450922696,-3.1017291850921676e-5,-2.4781284325725616e-8,-0.0023591366902662777,-3.1236974924948935e-5,-2.5047141991886597e-8,-0.0023586265980894577,-3.1379935910133564e-5,-2.5223485405296768e-8,-0.0023580922330621156,-3.1423318194842274e-5,-2.5282880705071384e-8,-0.002357581446433621,-3.136654245445751e-5,-2.5224014627911062e-8,-0.0023571393504713037,-3.123511772789739e-5,-2.507629936540768e-8,-0.0023567945569627356,-3.107585378526121e-5,-2.4894381030997065e-8,-0.002356549808293787,-3.094425143746427e-5,-2.474345004782824e-8,-0.0023563808398743354,-3.088856588907149e-5,-2.468058353057825e-8,-0.002356243673347264,-3.093631165990455e-5,-2.473883210055294e-8,-0.0023560873309623623,-3.108742146766624e-5,-2.491898425872327e-8,-0.002355867681615853,-3.131543790559243e-5,-2.5190695953120915e-8,-0.0023555585115042363,-3.157564626292947e-5,-2.5501820575724358e-8,-0.0023551570793018816,-3.1817414987353845e-5,-2.5792819079502532e-8,-0.0023546830395721335,-3.199708556138092e-5,-2.601196397786125e-8,-0.0023541715928763573,-3.2087761735616844e-5,-2.612699814404651e-8,-0.0023536634728575476,-3.208356074308803e-5,-2.6130313106072467e-8,-0.002353195112875602,-3.199796079202877e-5,-2.6037164980856268e-8,-0.0023527917127598285,-3.185788963483199e-5,-2.5878832104811108e-8,-0.0023524643421163408,-3.1696231806253835e-5,-2.569384848742031e-8,-0.002352210558042157,-3.15451429795799e-5,-2.5520122001298037e-8,-0.002352017095867703,-3.1431404225224024e-5,-2.5389404645823923e-8,-0.0023518632011028735,-3.137387309610943e-5,-2.532421829510982e-8,-0.0023517237164243985,-3.138241693585632e-5,-2.5336544634470662e-8,-0.0023515716747720653,-3.1457557889187125e-5,-2.542738407693742e-8,-0.002351380666688492,-3.159026777706401e-5,-2.5586503563180176e-8,-0.002351127544409854,-3.1761819323126654e-5,-2.5792232842799336e-8,-0.002350795997438297,-3.194420346482523e-5,-2.601189004377488e-8,-0.00235038109753939,-3.210218902073709e-5,-2.620411988036901e-8,-0.0023498939766626002,-3.2198362784118887e-5,-2.6324761207664516e-8,-0.002349364441336059,-3.2201906185988056e-5,-2.6337171516754927e-8,-0.002348838300113838,-3.2099820884316304e-5,-2.622549250364978e-8,-0.002348367104865175,-3.1906193387378433E-05,-2.6005638953133388e-8,-0.002347991928908947,-3.16632964565759e-5,-2.572670334096174e-8,-0.0023477278385863123,-3.1430895046698076e-5,-2.5458524871709287e-8,-0.0023475573302447783,-3.1266834683295797e-5,-2.526903432937616e-8,-0.0023474365947856223,-3.1207840834265524e-5,-2.5201788974958383e-8,-0.0023473111312674834,-3.125926073193481e-5,-2.5263855985966862e-8,-0.0023471329217680113,-3.139668630853095e-5,-2.5427484190962568e-8,-0.0023468725828316842,-3.157629805487812e-5,-2.564195034641037e-8,-0.00234652400711633,-3.174838223286182e-5,-2.5849203831761563e-8,-0.0023461023891960834,-3.1869477830964374e-5,-2.5998061315297644e-8,-0.0023456379459007243,-3.191071358278629e-5,-2.6054089874945166e-8,-0.002345167714297938,-3.1861618822297345e-5,-2.6004274687434745e-8,-0.0023447273964050676,-3.1729710102991125e-5,-2.5856743363241975e-8,-0.0023443447623778383,-3.15367263237694e-5,-2.5636504725218675e-8,-0.002344035611415732,-3.1312828941514695e-5,-2.5378716588854288e-8,-0.0023438025868741026,-3.1090321324122036e-5,-2.5121307043493483e-8,-0.002343636419494298,-3.0898215687290654e-5,-2.4898533605619872e-8,-0.0023435187346924568,-3.075840762917019e-5,-2.473640851696107e-8,-0.002343425470101371,-3.06836209512552e-5,-2.4650217468068794e-8,-0.002343330156203922,-3.067678824239108e-5,-2.46437581014699e-8,-0.0023432067557343844,-3.0731268964403044e-5,-2.4709591242115973e-8,-0.002343032205144756,-3.083142896996042e-5,-2.482971769728214e-8,-0.0023427890317182145,-3.09534849684997e-5,-2.4976536733214626e-8,-0.002342468429998982,-3.1066960867543575e-5,-2.5114480866863458e-8,-0.0023420738829506476,-3.113759753821509e-5,-2.520334251191813e-8,-0.0023416245655075696,-3.113286617338482e-5,-2.5204692814982757e-8,-0.002341156456037676,-3.1030702451985074e-5,-2.5092155875587517e-8,-0.0023407180452088712,-3.083007768640861e-5,-2.4863906224778936e-8,-0.0023403583393829482,-3.055874873840108e-5,-2.4551880478986413e-8,-0.002340109110049135,-3.027131810595971e-5,-2.421961909495806e-8,-0.0023399695530012623,-3.0033690127916367e-5,-2.394416454197952e-8,-0.0023399035996637175,-2.9898874983898596e-5,-2.378781857784365e-8,-0.0023398534173924984,-2.9886919236503446e-5,-2.3774659522504135e-8,-0.002339761711113448,-2.9979953784273124e-5,-2.388461211409085e-8,-0.0023395905205925225,-3.0132912884441697e-5,-2.4065731184666787e-8,-0.002339328969507674,-3.0291463113513845e-5,-2.4254908440399182e-8,-0.0023389905263682936,-3.0407909014329455e-5,-2.439632805788379e-8,-0.002338604647812188,-3.0450610353352113e-5,-2.4452510933726005e-8,-0.002338207386718835,-3.0406942615971795e-5,-2.4407957962391716e-8,-0.002337833512955816,-3.0281802581374335e-5,-2.4267646192649814e-8,-0.002337510916804099,-3.009374007485284e-5,-2.405271127085375e-8,-0.00233725717872705,-2.9870050109659613e-5,-2.379481298482102e-8,-0.0023370780896862574,-2.96415499392353e-5,-2.3530020163429226e-8,-0.0023369679571642664,-2.943765111817507e-5,-2.3292964938693384e-8,-0.002336911380731853,-2.928228272071026e-5,-2.311196745938867e-8,-0.0023368860519105425,-2.9191004014698512e-5,-2.3005572673000774e-8,-0.0023368660995786595,-2.9169474421886248e-5,-2.2980719814710166e-8,-0.002336825467155114,-2.921325593941368e-5,-2.3032512896595408e-8,-0.0023367409423963475,-2.9308629309781252e-5,-2.3145193486284356e-8,-0.002336594789812839,-2.94340434461076e-5,-2.329383537317645e-8,-0.002336377141683103,-2.9562078747041886e-5,-2.3446595994696407e-8,-0.0023360882937399465,-2.9662099579462933e-5,-2.3567732219797592e-8,-0.0023357408585416017,-2.9704065354320472e-5,-2.36219691020052e-8,-0.0023353611169372288,-2.9664178807460198e-5,-2.3581074777115405e-8,-0.002334987901996926,-2.953256184083392e-5,-2.3432902238347995e-8,-0.002334666656879615,-2.9321444023828176e-5,-2.3191111499019182e-8,-0.002334437144125591,-2.906967526378198e-5,-2.2900614292587276e-8,-0.0023343170286952335,-2.8837540628692366e-5,-2.263164135915559e-8,-0.002334289377364724,-2.868863915936848e-5,-2.245863079739621e-8,-0.0023343042731189534,-2.8664576401788524e-5,-2.243065985991554e-8,-0.002334297427240077,-2.8766728884431434e-5,-2.2550060161150142e-8,-0.00233421602436304,-2.8956937999179782e-5,-2.277304822604038e-8,-0.0023340366493231914,-2.9175695277364925e-5,-2.3030723691705274e-8,-0.0023337675567428337,-2.9365148437702835e-5,-2.325572494540632e-8,-0.002333439019167699,-2.948499872544599e-5,-2.3400714149062195e-8,-0.002333090235900311,-2.9517803647735512e-5,-2.3444668908795366e-8,-0.002332758701346869,-2.9466638538369463e-5,-2.3390385484474364e-8,-0.0023324738052357035,-2.934937562502968e-5,-2.3258055105401835e-8,-0.0023322540424882687,-2.919255582833955e-5,-2.3078281732160556e-8,-0.0023321064600515273,-2.902614663617285e-5,-2.2885999487207492e-8,-0.002332027286009202,-2.8879263050207602e-5,-2.271540058262342e-8,-0.0023320033619865835,-2.877662704188809e-5,-2.259567613496163e-8,-0.002332014289946477,-2.873576097567269e-5,-2.2547631244607782e-8,-0.002332035177135321,-2.8765014379972653e-5,-2.2581326280258576e-8,-0.0023320398449503863,-2.8862571973660708e-5,-2.2694919143851268e-8,-0.0023320042471653172,-2.9016654866027363e-5,-2.287492871831799e-8,-0.0023319096779583115,-2.9206946607571382e-5,-2.3097917898279694e-8,-0.002331745434296553,-2.940702053860624e-5,-2.333330260051453e-8,-0.0023315107913132412,-2.9587554741398894e-5,-2.354703004535643e-8,-0.002331216183994399,-2.9720241445388588e-5,-2.370604059396504e-8,-0.0023308833968589734,-2.9782371874826208e-5,-2.378354402409868e-8,-0.0023305442821816677,-2.976211745161164e-5,-2.376519028712881e-8,-0.002330237019842478,-2.9664138028036154e-5,-2.3655730605611676e-8,-0.002329998741183291,-2.9513937315933643e-5,-2.3484296706424633e-8,-0.0023298543227104943,-2.935776247905231e-5,-2.3304483190610554e-8,-0.0023298039688696283,-2.9254146272590037e-5,-2.3184600111912306e-8,-0.0023298161627486316,-2.9255771124284795e-5,-2.3186513526067538e-8,-0.002329833717182933,-2.9387407680729007e-5,-2.3339799540173714e-8,-0.00232979429485865,-2.963251445919433e-5,-2.3625939095795707e-8,-0.0023296555485235837,-2.993876684354111e-5,-2.3984573422930422e-8,-0.002329410031430962,-3.0240089226068864e-5,-2.433902191722381e-8,-0.002329082684861528,-3.048133910260082e-5,-2.4624941076546366e-8,-0.002328716252266335,-3.063272313348873e-5,-2.4807118980201846e-8,-0.0023283552432151315,-3.0691090518933916e-5,-2.4881121231374615e-8,-0.002328035235814446,-3.067316204035687e-5,-2.486564617259907e-8,-0.002327778453652459,-3.060672619689269e-5,-2.4792504271784795e-8,-0.0023275936390781573,-3.052324005011218e-5,-2.4698123022970693e-8,-0.002327477917828302,-3.0452785078251434e-5,-2.461765146651857e-8,-0.002327419112590265,-3.0420884134364205E-05,-2.458113394257909e-8,-0.0023273980040969685,-3.0446326357327403e-5,-2.4610839446448034e-8,-0.002327390669521878,-3.0539531096370326e-5,-2.4719266183936192e-8,-0.0023273711094918687,-3.070139397965835e-5,-2.4907774784639605e-8,-0.002327314298389271,-3.0922803788878494e-5,-2.5166047977091938e-8,-0.002327199604182002,-3.118523180180453e-5,-2.5472802828543438e-8,-0.0023270141555905726,-3.146275582275373e-5,-2.579813850369303e-8,-0.002326755507257778,-3.1725524753218145e-5,-2.6107509797618743e-8,-0.002326433025242352,-3.194433915074523e-5,-2.636696380227279e-8,-0.00232606757107646,-3.2095816875852493E-05,-2.6549064620552972e-8,-0.0023256892347763903,-3.216744119251998e-5,-2.663874128588696e-8,-0.0023253330548705857,-3.216173673953351e-5,-2.6638224765391106e-8,-0.002325032753407156,-3.209873777588853e-5,-2.6570101510359574e-8,-0.0023248127299698297,-3.201549252585091e-5,-2.6476970450584947e-8,-0.002324679419257254,-3.1960909325668365e-5,-2.641563798078472e-8,-0.002324614738368727,-3.198471760129885e-5,-2.6444333423830437e-8,-0.0023245759518624605,-3.2121629871326e-5,-2.6604171937243653e-8,-0.002324505785473568,-3.237602913514e-5,-2.6901108196581215e-8,-0.0023243518127423596,-3.271591879496891e-5,-2.7298653087985366e-8,-0.00232408675837698,-3.308237216229446e-5,-2.772870037338478e-8,-0.0023237183421038277,-3.341134600686158e-5,-2.8116827565107905e-8,-0.0023232834120907914,-3.365603424276712e-5,-2.8408283829963784e-8,-0.0023228315250686865,-3.379852594585868e-5,-2.8581601521190148e-8,-0.0023224081917482394,-3.384823308876176e-5,-2.8646918820079517e-8,-0.0023220447513682056,-3.3832392487888304e-5,-2.8635163154902712e-8,-0.0023217556857669294,-3.378539642682306e-5,-2.8585851446400122e-8,-0.0023215406467797794,-3.374081042009061e-5,-2.8537897313167375e-8,-0.002321388188291431,-3.3726795999537757e-5,-2.8524238705810844e-8,-0.002321279357326137,-3.376398701175925e-5,-2.8569237172436706e-8,-0.002321190580067218,-3.3864561252015965e-5,-2.8687469509032147e-8,-0.0023210960815719848,-3.403170234189584e-5,-2.8883032294239802e-8,-0.0023209703112198727,-3.425921865422195e-5,-2.9149091545929388e-8,-0.0023207907692627456,-3.453153525414017e-5,-2.9467892708359517e-8,-0.002320541348280485,-3.4824632907782434e-5,-2.9811852888919886e-8,-0.002320215787982576,-3.510859047522046e-5,-3.014647119465895e-8,-0.002319820326628823,-3.5352020534393274e-5,-3.0435397604764066e-8,-0.002319374429235887,-3.5528027890910064e-5,-3.064726176518535e-8,-0.0023189086929537852,-3.562058707993201e-5,-3.0763027321289934e-8,-0.0023184596969337903,-3.562967431567573e-5,-3.078198150000386e-8,-0.0023180625159862473,-3.557348082881343e-5,-3.072444153370548e-8,-0.0023177424037032486,-3.548664144440317e-5,-3.062992075551395e-8,-0.0023175074984734543,-3.5414226963611394e-5,-3.0550393228261676e-8,-0.0023173444808164832,-3.5402047537825155e-5,-3.053919267474974e-8,-0.002317219043515323,-3.548478675955916e-5,-3.063722510387765e-8,-0.0023170825452282313,-3.567474791693208e-5,-3.085971138660794e-8,-0.0023168847150472982,-3.595522696647335e-5,-3.118819869005432e-8,-0.0023165894160324624,-3.628263070896687e-5,-3.157275232013399e-8,-0.0023161874027681608,-3.659879209134966e-5,-3.194610912976707e-8,-0.002315699674318987,-3.6849589557777495e-5,-3.224527727736699e-8,-0.002315169322935829,-3.7001624225642415e-5,-3.2430960432418255e-8,-0.002314646199700832,-3.704960690848625e-5,-3.249625130896201e-8,-0.0023141720768090047,-3.701289220350198e-5,-3.246278529929417e-8,-0.0023137719944856,-3.692533958583261e-5,-3.2369181497699095e-8,-0.002313452787336121,-3.682436937453514e-5,-3.225850415814049e-8,-0.002313206349815514,-3.674303927821273e-5,-3.216911319350878e-8,-0.002313014513893187,-3.6705975238209506e-5,-3.21298653443614e-8,-0.002312853494672486,-3.6728114464930174e-5,-3.215852030546475e-8,-0.0023126972338266515,-3.681481612065799e-5,-3.226175333094992e-8,-0.0023125198655322456,-3.696232465768661e-5,-3.24356389814037e-8,-0.002312297893017724,-3.7158178604489365e-5,-3.266612338087536e-8,-0.0023120126639769563,-3.7381726521067834e-5,-3.292962936131338e-8,-0.002311653424383115,-3.760539504033395e-5,-3.319450237088803e-8,-0.0023112206387045776,-3.7797568417562995e-5,-3.3424282093674193e-8,-0.002310728536788081,-3.7927679776685745e-5,-3.3583518129125895e-8,-0.0023102052694704335,-3.7973269632081315e-5,-3.3645883688399196e-8,-0.002309689114953737,-3.792741024238655e-5,-3.3602769741033175e-8,-0.002309220367796046,-3.780365018678395e-5,-3.34690861984953e-8,-0.0023088306454635615,-3.763560952953059e-5,-3.328295822689161e-8,-0.0023085331437765486,-3.7470095324169245e-5,-3.30979876994702e-8,-0.0023083175552887736,-3.7355299923970754e-5,-3.296981668241202e-8,-0.0023081517291295645,-3.732774019023125e-5,-3.2941121239366296e-8,-0.0023079897002703125,-3.740204716129852e-5,-3.302971182509186e-8,-0.0023077837234663535,-3.7566599907923365e-5,-3.322321468544985e-8,-0.0023074969972720206,-3.778618699150824e-5,-3.348181192736664e-8,-0.002307113642460123,-3.801111136025596e-5,-3.374850764245679e-8,-0.002306642967714749,-3.819047303514916e-5,-3.3964389987148476e-8,-0.0023061164179579287,-3.8285780849737995e-5,-3.40844388236443e-8,-0.0023055780533455137,-3.828042081343265e-5,-3.408864550347391e-8,-0.0023050720265702773,-3.818189606197478e-5,-3.3984813393723e-8,-0.0023046316398957264,-3.801683262139339e-5,-3.3802987367837267e-8,-0.00230427334288954,-3.7821682524135505e-5,-3.358486019035794e-8,-0.0023039963644423222,-3.7633111972824855e-5,-3.337272686138091e-8,-0.002303786336992908,-3.748100255910153e-5,-3.320135317605305e-8,-0.0023036204437704402,-3.738497046118624e-5,-3.3093833427999516e-8,-0.002303472191629436,-3.735370107695463e-5,-3.306068870435814e-8,-0.002303315004370737,-3.738581151208172e-5,-3.310077586295026e-8,-0.0023031247168510474,-3.7471158388023855e-5,-3.32027746012847e-8,-0.002302881512812013,-3.759204402485969e-5,-3.334659244660564e-8,-0.002302571933303701,-3.772437161974421e-5,-3.3504698526810776e-8,-0.0023021913377570913,-3.7839318120416736e-5,-3.364401288936653e-8,-0.0023017466592312736,-3.790639624397905e-5,-3.3729365113627754e-8,-0.002301258499438132,-3.789868982799408e-5,-3.3729469251606456e-8,-0.0023007607416336475,-3.780025860121621e-5,-3.362545368835861e-8,-0.0023002955727393715,-3.761398422436507e-5,-3.341996763976326e-8,-0.002299903135206751,-3.7366095073082776e-5,-3.314251715734096e-8,-0.002299608241321281,-3.7103131944292765e-5,-3.284613208267745e-8,-0.002299409859179875,-3.687991824381861e-5,-3.259369265324991e-8,-0.002299279285932504,-3.674229260682073e-5,-3.243819215569253e-8,-0.002299168823546775,-3.6712133551511284e-5,-3.240551750739637e-8,-0.002299027108588892,-3.678121604662647e-5,-3.248721326687466e-8,-0.0022988143521173038,-3.6915489318077446e-5,-3.2645093229978927e-8,-0.0022985121434507642,-3.706652291671608e-5,-3.282408232012828e-8,-0.0022981259731840605,-3.718510344513982e-5,-3.296765596479805e-8,-0.002297681444338649,-3.723291069296564e-5,-3.3031266622567177e-8,-0.0022972163826716816,-3.7189964304819385e-5,-3.299108395567988e-8,-0.002296771289655474,-3.705699893642229e-5,-3.284699771750507e-8,-0.0022963804162048507,-3.685301926143306e-5,-3.2620069474865724e-8,-0.0022960653412444033,-3.66092080660818e-5,-3.234570517089325e-8,-0.0022958321994601843,-3.6361104881873565e-5,-3.206471491834107e-8,-0.002295672602594345,-3.6141216362085723e-5,-3.181475278986125e-8,-0.002295567237924504,-3.5973699239903435e-5,-3.1624065630400416e-8,-0.0022954906243840873,-3.5871742882865936e-5,-3.150833328403298e-8,-0.002295415668514197,-3.583734289021038e-5,-3.1470303577740756e-8,-0.002295317231199662,-3.5862619387422194e-5,-3.15012747362056e-8,-0.002295174587684972,-3.593175025312556e-5,-3.158334026307848e-8,-0.0022949731503511582,-3.6022919077861825e-5,-3.169165951737354e-8,-0.0022947059593891967,-3.6110200777476796e-5,-3.1796616976641045e-8,-0.0022943752972072132,-3.616576445549112e-5,-3.186629056886203e-8,-0.002293994395917849,-3.616308491839482e-5,-3.1870055583428156e-8,-0.0022935884913046806,-3.608188698839053e-5,-3.1784218012190775e-8,-0.002293193570220022,-3.591490428985524e-5,-3.159981966187581e-8,-0.002292850700555697,-3.567488665407547e-5,-3.1330816136700846e-8,-0.0022925949121289655,-3.539799888834784e-5,-3.101814903088958e-8,-0.002292441079759657,-3.5138654460845667e-5,-3.072396888884776e-8,-0.0022923737482313526,-3.495377210004042e-5,-3.051367324612897e-8,-0.0022923487357085484,-3.4881645478195986e-5,-3.043169702193616e-8,-0.0022923082878944408,-3.492651926994169e-5,-3.048374540670587e-8,-0.0022922023645509603,-3.5057777584302726e-5,-3.063565736187704e-8,-0.002292004823110608,-3.522321745129158e-5,-3.0828335408719365e-8,-0.002291718031987991,-3.536782916311345e-5,-3.099901295008251e-8,-0.0022913672330241424,-3.544908418763723e-5,-3.109866179650461e-8,-0.002290990059070643,-3.544468044302114e-5,-3.1100956371175926e-8,-0.0022906260283061795,-3.535334262818601e-5,-3.1003445892457103e-8,-0.0022903084934227853,-3.5191150650947184e-5,-3.082366001102285e-8,-0.002290059645962504,-3.4985740590012e-5,-3.059271116004469e-8,-0.002289888308889336,-3.476990829758171e-5,-3.034806608016834e-8,-0.002289790112933232,-3.457553303386381e-5,-3.0126527996035566e-8,-0.0022897496397346197,-3.442855427528838e-5,-2.995832382862933e-8,-0.002289743927638933,-3.434557978525591e-5,-2.986303752963534e-8,-0.002289746588173612,-3.433235628935457e-5,-2.984772570762622e-8,-0.002289731806192985,-3.438399705495003e-5,-2.9907130752155833e-8,-0.0022896776371395563,-3.448658144544781e-5,-3.0025539997263514e-8,-0.002289568333240068,-3.4619516180843974e-5,-3.0179546880832127e-8,-0.002289395830989697,-3.47581192864351e-5,-3.034104020878307e-8,-0.0022891606980330746,-3.487624615385044e-5,-3.048017863245395e-8,-0.0022888727561433233,-3.494909690242651e-5,-3.0568516096956604e-8,-0.0022885513883073552,-3.4956571873741554e-5,-3.058275352336701e-8,-0.002288225022291335,-3.4887629910986334e-5,-3.050971134872694e-8,-0.0022879285346280604,-3.474558680788467e-5,-3.0352495822772635e-8,-0.002287697014005668,-3.4552914595581084e-5,-3.013619110840197e-8,-0.002287555258528512,-3.4352264826514714e-5,-2.990924381258495e-8,-0.002287505296293813,-3.419939650252042e-5,-2.9735499630763315e-8,-0.0022875185392014596,-3.414608973943245e-5,-2.9674650423240414e-8,-0.002287540654767576,-3.421841512072958e-5,-2.975725826269698e-8,-0.0022875109191809696,-3.44028369555647e-5,-2.9968681291149824e-8,-0.0022873866431173677,-3.4650463730046105e-5,-3.025373403994287e-8,-0.002287158332342123,-3.489747604808045e-5,-3.05398504214709e-8,-0.0022868484445149025,-3.5088852879194874e-5,-3.076405861695239e-8,-0.0022864982748903593,-3.519317267669936e-5,-3.0889870385194194e-8,-0.002286152562989151,-3.520525313625685e-5,-3.091044534452543e-8,-0.002285848351995372,-3.514064936767193e-5,-3.084259232463975e-8,-0.0022856095545583004,-3.5027359972136336e-5,-3.071759518882632e-8,-0.0022854458582351883,-3.4898128170332654e-5,-3.057260162184731e-8,-0.00228535406658743,-3.4784542000901826e-5,-3.0443888195242704e-8,-0.0022853205545476122,-3.471284955278595e-5,-3.0361936066289834e-8,-0.0022853242782383083,-3.4701131164836125e-5,-3.034799776992067e-8,-0.0022853401172956323,-3.475768108400181e-5,-3.0412079618106474e-8,-0.0022853423369857883,-3.488055943683937e-5,-3.055234935450222e-8,-0.0022853079331452636,-3.505829657473036e-5,-3.075595068991225e-8,-0.002285219540357508,-3.5271714452898415e-5,-3.1001145596984345e-8,-0.0022850675526555806,-3.5496617417606936e-5,-3.12604400979373e-8,-0.0022848513167228906,-3.5706935033342264e-5,-3.150417106161792e-8,-0.0022845794630886704,-3.587803665272236e-5,-3.170422273669897e-8,-0.0022842694256383967,-3.599011192601114e-5,-3.183778648177624e-8,-0.00228394612191299,-3.6031573527607656e-5,-3.1891182357691236e-8,-0.002283639559272516,-3.6002497987339216e-5,-3.1863829412209876e-8,-0.0022833807000028155,-3.591781523569677e-5,-3.17720571397393e-8,-0.002283194835117489,-3.580895633737797e-5,-3.1651234007313374e-8,-0.0022830926687873554,-3.572151453512309e-5,-3.155331255203707e-8,-0.0022830615120185546,-3.57062013456485e-5,-3.1536574359696766e-8,-0.002283061910144253,-3.5802515052971905e-5,-3.1646865496677e-8,-0.0022830358716624693,-3.602024681505544e-5,-3.1896238479571526e-8,-0.002282927452508825,-3.6329876875859376e-5,-3.2251745516056244e-8,-0.0022827062816265977,-3.667107036558002e-5,-3.264498114105585e-8,-0.0022823796709535715,-3.697658131461953e-5,-3.299928501542816e-8,-0.0022819864232603475,-3.719735460090399e-5,-3.325834215160285e-8,-0.0022815785791103415,-3.731532145924846e-5,-3.340080377913226e-8,-0.0022812032084957965,-3.734128205682896e-5,-3.3438034270071183e-8,-0.002280891871937716,-3.7304369843453694e-5,-3.3402379181189025e-8,-0.00228065814223643,-3.724061603780327e-5,-3.333439792808469e-8,-0.0022805000038872204,-3.718451764462349e-5,-3.327337443004344e-8,-0.0022804039844390635,-3.7164175330215406e-5,-3.325171023981485e-8,-0.002280349211641098,-3.7198996010101034e-5,-3.3292116454290506e-8,-0.0022803108906574855,-3.729879835377055e-5,-3.3406389414515064e-8,-0.002280263357184188,-3.746369139111816e-5,-3.359514042205903e-8,-0.0022801829142725643,-3.76845561343038e-5,-3.3848312986735143e-8,-0.0022800505440541212,-3.794419075362827e-5,-3.4146529008746734e-8,-0.002279854394613768,-3.821932509749697e-5,-3.446344080378021e-8,-0.002279591667380771,-3.8483592197162534e-5,-3.4769134737453335e-8,-0.0022792694769532365,-3.8711202674219674e-5,-3.503427192200282e-8,-0.002278904453787725,-3.888090559245803e-5,-3.523451107453436e-8,-0.002278520994022731,-3.897981593858639e-5,-3.5354790439935546e-8,-0.0022781481387727765,-3.900661067575245e-5,-3.539296714173588e-8,-0.002277815196272408,-3.897358681368924e-5,-3.536228182941742e-8,-0.0022775462453310945,-3.8907078916294634e-5,-3.5292063500544346e-8,-0.0022773537578315915,-3.88453723888866e-5,-3.5225611058902015e-8,-0.0022772323066882973,-3.88328268780596e-5,-3.5213664861948535e-8,-0.002277154719218136,-3.89093864059176e-5,-3.5302432695555914e-8,-0.0022770743013513575,-3.909671606337604e-5,-3.551757119061668e-8,-0.0022769361938568297,-3.93858582620144e-5,-3.584980135264396e-8,-0.0022766965332619883,-3.9734321357865546e-5,-3.625133407898208e-8,-0.002276341115211891,-4.007817531691193e-5,-3.664954907985626e-8,-0.0022758922917568173,-4.035551223226274e-5,-3.697373201351628e-8,-0.0022753992488523085,-4.0528709716748785e-5,-3.7180470529775404e-8,-0.0022749180581077707,-4.059371095721217e-5,-3.726429156698758e-8,-0.0022744933359550488,-4.057442247318822e-5,-3.7251455930854735e-8,-0.0022741491150162865,-4.0509294110553696e-5,-3.718495011122612e-8,-0.0022738888817427747,-4.043836498717976e-5,-3.7109976390399145e-8,-0.0022737006122365193,-4.0394935220934196e-5,-3.706454561541384e-8,-0.0022735628534328385,-4.0401953921682715e-5,-3.7075254422409025e-8,-0.0022734497848497666,-4.047142453162688e-5,-3.7156399239620105e-8,-0.0022733348583905645,-4.060512607912676e-5,-3.731060746631049e-8,-0.0022731934580261463,-4.0795705115488924e-5,-3.752998308750005e-8,-0.00227300512552994,-4.102789765037355e-5,-3.7797496246937914e-8,-0.0022727556876095496,-4.128004247365327e-5,-3.808875005360056e-8,-0.002272439315133133,-4.152626986166031e-5,-3.837450044928072e-8,-0.0022720601389120266,-4.173970137526162e-5,-3.862427282168575e-8,-0.0022716327599983676,-4.1896595491755895e-5,-3.8811002059216745e-8,-0.0022711810539608945,-4.1980908267824755e-5,-3.8916135263443654e-8,-0.00227073496835204,-4.1988409487146426e-5,-3.8934279948754235e-8,-0.002270325441507122,-4.192927899551331e-5,-3.8876227340469446e-8,-0.002269978122215947,-4.1828177158028644e-5,-3.8769219119330844e-8,-0.00226970702629286,-4.172123601459589e-5,-3.865378498185866e-8,-0.0022695094556672577,-4.1649926366732944e-5,-3.857700174244831e-8,-0.002269363629343624,-4.165219466353312e-5,-3.858250738357373e-8,-0.0022692306298698933,-4.175204263636338e-5,-3.869853604806306e-8,-0.0022690619905320303,-4.195007217268219e-5,-3.892687238355782e-8,-0.0022688127656313537,-4.22189359377569e-5,-3.923733305382498e-8,-0.0022684568851602466,-4.2507766167857475e-5,-3.9572560430991624e-8,-0.002267998326091102,-4.275672312180571e-5,-3.986449700076138e-8,-0.0022674714734245843,-4.291695195769548e-5,-4.005713795935709e-8,-0.0022669291597497737,-4.296662160132691e-5,-4.012487438155247e-8,-0.0022664242564903914,-4.2915295188340505e-5,-4.007760659904807e-8,-0.0022659940652150863,-4.279611123618072e-5,-3.995206908990567e-8,-0.002265653503930502,-4.265191244855833e-5,-3.979631362883339e-8,-0.0022653969340296893,-4.252261313043785e-5,-3.965552378432056e-8,-0.0022652046236925952,-4.243769493960012e-5,-3.95634861733223e-8,-0.002265049794477369,-4.241380155046763e-5,-3.9539697044729416e-8,-0.0022649041082798216,-4.245547864330964e-5,-3.9589986428501323e-8,-0.00226474124918325,-4.255711975844435e-5,-3.970856627954339e-8,-0.0022645391613217362,-4.270500455743162e-5,-3.988028806109427e-8,-0.0022642816799547678,-4.287910780361013e-5,-4.008272167427198e-8,-0.002263960087918555,-4.3054900809357125e-5,-4.028824466566982e-8,-0.002263574719130994,-4.320567695985923e-5,-4.0466687322319195e-8,-0.0022631362204558894,-4.330590165289405e-5,-4.058908270551296e-8,-0.0022626656639188536,-4.3335670173572484e-5,-4.063264302083518e-8,-0.0022621925719040524,-4.328569846595285e-5,-4.0586363627982455e-8,-0.0022617502460647106,-4.316153538197371e-5,-4.045582192050501e-8,-0.0022613686905826485,-4.298517863381172e-5,-4.02651379123331e-8,-0.002261066659628733,-4.279254577136207e-5,-4.0054328367112326e-8,-0.002260845254738966,-4.2626492298289355e-5,-3.9871642378719045e-8,-0.002260685452234943,-4.252671070386968e-5,-3.976228848354713e-8,-0.0022605509404802003,-4.251909481418603e-5,-3.9756384567982686e-8,-0.002260396131472639,-4.260760900980759e-5,-3.985954021720435e-8,-0.002260177694963087,-4.277131989594658e-5,-4.004914789052283e-8,-0.002259866766101412,-4.2968166060102e-5,-4.027830918497738e-8,-0.002259458210637815,-4.3145372744970057e-5,-4.048742944540769e-8,-0.0022589733613924707,-4.3254145791464096e-5,-4.062085419440258e-8,-0.002258454294531585,-4.326392054614321e-5,-4.064315339359069e-8,-0.0022579511436190353,-4.3170655978861896e-5,-4.0548734377790825e-8,-0.0022575073922757242,-4.2995916330466316e-5,-4.036104128218041e-8,-0.0022571489718927946,-4.2777865460527206e-5,-4.012258232791228e-8,-0.0022568805697357453,-4.255884861731508e-5,-3.988102778980891e-8,-0.0022566887016491335,-4.2374725671374876e-5,-3.967716426716014e-8,-0.002256548444902981,-4.2248875604791526e-5,-3.953799287615894e-8,-0.002256430457477919,-4.2190877177150564e-5,-3.9475031093020603e-8,-0.0022563063262742698,-4.219814048656945e-5,-3.9485967035225393e-8,-0.0022561518892659908,-4.225864272457631e-5,-3.9557654446514965e-8,-0.0022559490620141626,-4.235363463796422e-5,-3.9669178707093105e-8,-0.0022556869196150115,-4.245992921932744e-5,-3.9794503964805914e-8,-0.002255362650026142,-4.2551960746738174e-5,-3.990484416493067e-8,-0.00225498259128279,-4.260418776905965e-5,-3.9971363026047316e-8,-0.0022545629951551973,-4.259443556510106e-5,-3.996888136177645e-8,-0.002254129647814144,-4.2508371758274345e-5,-3.988086135327218e-8,-0.0022537151993712646,-4.234455193159232e-5,-3.970509132900266e-8,-0.00225335330209883,-4.2118407480589275e-5,-3.9458268320626675e-8,-0.0022530698916637996,-4.186263655252896e-5,-3.917660732834667e-8,-0.0022528740190121094,-4.162180095563857e-5,-3.8909958155369906e-8,-0.002252752217450626,-4.1441201489894646e-5,-3.870944411348118e-8,-0.0022526698614514173,-4.1353325375690816e-5,-3.861225482382609e-8,-0.0022525801000990234,-4.136713774543938e-5,-3.862947201208333e-8,-0.0022524373733573866,-4.146464933767827e-5,-3.8741929345072135e-8,-0.002252210525373519,-4.1605994325611274e-5,-3.89055852814104e-8,-0.0022518911377591767,-4.1740803405337114e-5,-3.906405012373955e-8,-0.0022514949999607,-4.182182996698903e-5,-3.9163825942864726e-8,-0.0022510569958787445,-4.181681135790668e-5,-3.916776403591502e-8,-0.002250621342141275,-4.171557236139564e-5,-3.906331946104076e-8,-0.0022502301294550285,-4.15308425955026e-5,-3.886378396708598e-8,-0.002249913449319389,-4.129306958437996e-5,-3.860271679338941e-8,-0.002249683726453224,-4.104130530740587e-5,-3.832383998911728e-8,-0.002249535283975047,-4.0813295369522146e-5,-3.8069884935159855e-8,-0.0022494483048860476,-4.0637702512655366e-5,-3.787370255806774e-8,-0.002249395075586441,-4.053008747505458e-5,-3.775352485809548e-8,-0.002249346228387429,-4.049258564563083e-5,-3.771239510768213e-8,-0.0022492755010270257,-4.0516052192387256e-5,-3.774046242612261e-8,-0.0022491626277783426,-4.058321264511812e-5,-3.7818520580070174e-8,-0.0022489947436900195,-4.0671780343274614e-5,-3.7921589641568395e-8,-0.002248766957445944,-4.075711343877572e-5,-3.8021986797907276e-8,-0.0022484826632076446,-4.081452585563666e-5,-3.8091951714669235e-8,-0.002248153838048646,-4.0821728247974105e-5,-3.8106341905870566e-8,-0.002247801079960905,-4.076195151424849e-5,-3.804605949402225e-8,-0.002247452593148405,-4.0628012018448585e-5,-3.790257146744856e-8,-0.0022471409301629466,-4.042682459236734e-5,-3.768302732502345e-8,-0.00224689646765886,-4.018263561138499e-5,-3.7414039313886286e-8,-0.0022467379334867687,-3.993603737751534e-5,-3.71407722402369e-8,-0.0022466629330224067,-3.973603731085064e-5,-3.6918205817805125e-8,-0.0022466437937668942,-3.962548372148706e-5,-3.679484541297912e-8,-0.0022466332626418345,-3.962510713746668e-5,-3.679475135912498e-8,-0.0022465795112438054,-3.972433968955547e-5,-3.690704831574807e-8,-0.002246443844399572,-3.988431149987231e-5,-3.7089012125681974e-8,-0.0022462127331009103,-4.005144641550452e-5,-3.728104124941213e-8,-0.002245899726127667,-4.017461828870116e-5,-3.742571513024981e-8,-0.0022455385610210964,-4.021870065905526e-5,-3.7482979092119534e-8,-0.002245171991501091,-4.017101257208119e-5,-3.743755699529912e-8,-0.0022448406857828573,-4.0040872064166135e-5,-3.729877117661851e-8,-0.002244574842630709,-3.985434389103751e-5,-3.709499167218068e-8,-0.00224438953153147,-3.964658315948225e-5,-3.6865281132306804e-8,-0.002244283739282433,-3.9453769098646514e-5,-3.6650395806950313e-8,-0.0022442425786291715,-3.9306138580895836e-5,-3.648483998275852e-8,-0.0022442417262513318,-3.9223235736532204e-5,-3.639130046745756e-8,-0.002244252825270072,-3.921193238763609e-5,-3.637818766334322e-8,-0.002244248580715095,-3.926701981343953e-5,-3.6440147045714485e-8,-0.002244206665010873,-3.9373614587264704e-5,-3.656072898333406e-8,-0.0022441120851505714,-3.9510449394149734e-5,-3.671615220159067e-8,-0.002243958158082218,-3.9653224799783987e-5,-3.687916687487293e-8,-0.002243746569982561,-3.977754481038861e-5,-3.702240992509356e-8,-0.0022434870012997396,-3.986143852984975e-5,-3.7121211995940224e-8,-0.002243196539261886,-3.9887788360821346e-5,-3.715623183345602e-8,-0.002242898748955786,-3.984704324325663e-5,-3.711640914072695e-8,-0.0022426218280860106,-3.974042123909537e-5,-3.7002547544910815e-8,-0.0022423948446182447,-3.9583186860967147e-5,-3.683110598566761e-8,-0.002242241179018976,-3.940641160112801e-5,-3.663638469156625e-8,-0.00224216956598242,-3.925442123747653e-5,-3.646787712775838e-8,-0.002242165743912653,-3.917522022806908e-5,-3.63796461283401e-8,-0.0022421904430927637,-3.92042809462743e-5,-3.641210968875951e-8,-0.0022421888363345576,-3.934800163595166e-5,-3.657333079382851e-8,-0.0022421101287026773,-3.957707112540881e-5,-3.683135600408295e-8,-0.0022419276065207064,-3.983591431005777e-5,-3.712457446970693e-8,-0.0022416477393448642,-4.0063753426798325e-5,-3.73851192566621e-8,-0.0022413045475564155,-4.0215340963561835e-5,-3.7561970560884604e-8,-0.0022409449338205603,-4.0271819274777205e-5,-3.7633148529958066e-8,-0.0022406136872176463,-4.0240309319839884e-5,-3.7605480019251675e-8,-0.002240343470877864,-4.0146522531138636e-5,-3.750668536605433e-8,-0.002240150677565745,-4.002533269708593e-5,-3.7375157741474976e-8,-0.002240035711440105,-3.991240818250783e-5,-3.725076167766338e-8,-0.002239985804253139,-3.9838071993125945e-5,-3.7167903625866e-8,-0.0022399789880449567,-3.9823368021104823e-5,-3.715090319780558e-8,-0.0022399885175577506,-3.9878050065343086e-5,-3.721146830451135e-8,-0.002239987272940578,-4.000036042511323e-5,-3.734824122526935e-8,-0.0022399516443405575,-4.017838712946535e-5,-3.7548239619326853e-8,-0.002239864499431365,-4.0392596449678075e-5,-3.778973496167977e-8,-0.0022397169957782525,-4.061908331716644e-5,-3.804599535317224e-8,-0.002239509163109704,-4.083302738834809e-5,-3.828923970936112e-8,-0.00223924945058436,-4.101186342286681e-5,-3.8494196874711744e-8,-0.002238953599371396,-4.113797301515876e-5,-3.8641048926455915e-8,-0.0022386430618668383,-4.120100796303263e-5,-3.871793082545036e-8,-0.002238342944066297,-4.1200001151770064e-5,-3.872324181388282e-8,-0.0022380791839847307,-4.114530686782865e-5,-3.866788607866194e-8,-0.002237874380510262,-4.1060002066053976e-5,-3.857703907310176e-8,-0.00223774180926945,-4.097948394853225e-5,-3.848995354296783e-8,-0.00223767825635013,-4.094712480839855e-5,-3.845528558322179e-8,-0.002237658399419641,-4.1004061797862145e-5,-3.851967858482813e-8,-0.0022376356888406273,-4.11738325963669e-5,-3.8710382858211906e-8,-0.0022375542283195344,-4.144791944811161e-5,-3.9018797372337954e-8,-0.002237369976256706,-4.178239537910177e-5,-3.939648342269923e-8,-0.0022370705865857117,-4.211192540677199e-5,-3.97707040733493e-8,-0.002236681021205403,-4.237528136520402e-5,-4.0072894403993155e-8,-0.0022362515136581293,-4.2537390808246587e-5,-4.026326754963274e-8,-0.0022358368811051695,-4.2596592517748946e-5,-4.033897314519272e-8,-0.002235479455892738,-4.257760540665977e-5,-4.032647668471118e-8,-0.0022352014732815342,-4.251839568376904e-5,-4.026725325138652e-8,-0.0022350055128588357,-4.245824814262653e-5,-4.0204769494537755e-8,-0.002234879072292001,-4.2429981973685345e-5,-4.017588031994506e-8,-0.002234800143287794,-4.245617891594765e-5,-4.020647152992803e-8,-0.0022347421748675988,-4.254810062132713e-5,-4.030997076660549e-8,-0.002234678089860464,-4.2706022024608e-5,-4.04874490318804e-8,-0.002234583596800719,-4.292040013149177e-5,-4.072877100486095e-8,-0.0022344399196055193,-4.3173776366831664e-5,-4.101470592062815e-8,-0.002234235865992565,-4.344333894544913e-5,-4.13198704377615e-8,-0.002233969089473579,-4.370403283753067e-5,-4.1616299339581775e-8,-0.0022336463289874286,-4.393200590097062e-5,-4.1877337327494744e-8,-0.002233282501130823,-4.410796757286399e-5,-4.2081351239347404e-8,-0.0022328987863395795,-4.422003807868895e-5,-4.2214822045642e-8,-0.0022325199496675764,-4.426587777665794e-5,-4.227465236873269e-8,-0.0022321710530385326,-4.4253972215963034e-5,-4.226962591744968e-8,-0.0022318736432929433,-4.420392191805795e-5,-4.2220888713159193e-8,-0.0022316414113256896,-4.414545555348796e-5,-4.216110347774086e-8,-0.0022314754270215662,-4.4115440270257426e-5,-4.213136166132721e-8,-0.002231359823442391,-4.415175418461966e-5,-4.217445054382591e-8,-0.0022312601532689185,-4.4283382554984865e-5,-4.232367827957026e-8,-0.002231127767120565,-4.4518168017474204e-5,-4.258888372588604e-8,-0.0022309127621388284,-4.483326721123653e-5,-4.2945429863533486e-8,-0.0022305832777618443,-4.5176107345948044e-5,-4.33350641470657e-8,-0.0022301417812274774,-4.548042189951665e-5,-4.3683804639003184e-8,-0.00222962696006888,-4.5691654474732635e-5,-4.3930355472978606e-8,-0.0022290982784922498,-4.578732224176004e-5,-4.404886114752745e-8,-0.0022286126995498105,-4.578096414425489e-5,-4.405337631430236e-8,-0.002228207126679372,-4.571064953482692e-5,-4.39852734699268e-8,-0.002227893056699919,-4.562206961243283e-5,-4.38947320909112e-8,-0.002227660846567752,-4.555526540573994e-5,-4.382620421038141e-8,-0.002227487702103169,-4.55379758899719e-5,-4.381102028222137e-8,-0.0022273451775774154,-4.558426004228901e-5,-4.386564409422788e-8,-0.0022272045720067527,-4.569590592468164e-5,-4.39929402649985e-8,-0.002227040330898362,-4.586469098944103e-5,-4.418444952301841e-8,-0.0022268322499077128,-4.607464729273845e-5,-4.4422813065954085e-8,-0.0022265671012077232,-4.6304319138032545e-5,-4.46843227290974e-8,-0.002226239866699384,-4.65292374402582e-5,-4.4941773047288794e-8,-0.002225854484890745,-4.6724799757426735e-5,-4.51677431041688e-8,-0.0022254237956320375,-4.6869601410910074e-5,-4.5338309138385286e-8,-0.002224968272659459,-4.694890763075256e-5,-4.543684582222292e-8,-0.002224513374267207,-4.695764552052053e-5,-4.545727907051517e-8,-0.0022240857042466885,-4.690227807341315e-5,-4.5406156340506795e-8,-0.0022237084214524207,-4.680103654287797e-5,-4.530300679993751e-8,-0.002223396530534961,-4.668216756519775e-5,-4.517860947561035e-8,-0.002223152787249789,-4.658014304122351e-5,-4.507104168252101e-8,-0.002222964935742375,-4.652995213290346e-5,-4.501951893274435e-8,-0.002222805166025817,-4.655966574712351e-5,-4.505611999008108e-8,-0.0022226330833182246,-4.6682000764129616e-5,-4.519616588800026e-8,-0.002222403496610867,-4.6886909508180545e-5,-4.542958762812166e-8,-0.002222079087811143,-4.7138819175493126e-5,-4.571749442657403e-8,-0.0022216449448798823,-4.738267384694757e-5,-4.59987335824701e-8,-0.002221118171827722,-4.7560111136303446e-5,-4.620795613858712e-8,-0.002220545312392466,-4.763048075773373e-5,-4.629917145710085e-8,-0.002219986393474025,-4.758588464850228e-5,-4.626262271116031e-8,-0.002219493466999461,-4.745169161788492e-5,-4.612549476134362e-8,-0.0022190950899372997,-4.727349057060608e-5,-4.5937616176018814e-8,-0.0022187928437108866,-4.709946526084481e-5,-4.575211981967887e-8,-0.0022185676608473866,-4.6967148258508964e-5,-4.561086581454774e-8,-0.0022183897340214403,-4.6897877865561347e-5,-4.5538205382200175e-8,-0.002218227112864587,-4.689730372738356e-5,-4.55412865670691e-8,-0.0022180511931498754,-4.6958726789225835e-5,-4.5613476972552826e-8,-0.002217839478448058,-4.706684563405332e-5,-4.573834204511953e-8,-0.002217576767892167,-4.720088385532349e-5,-4.5893088802846886e-8,-0.0022172557391592737,-4.7337099909682e-5,-4.605143273264397e-8,-0.0022168773700565656,-4.74510906017821e-5,-4.6186255635813826e-8,-0.0022164511799183666,-4.752034046529439e-5,-4.627248139736567e-8,-0.002215994899699834,-4.7527295848164124e-5,-4.629045712510837e-8,-0.002215532947978386,-4.746279506796771e-5,-4.622968509992351e-8,-0.0022150932151455763,-4.732912349998839e-5,-4.60921625117704e-8,-0.0022147021652644183,-4.714160221841957e-5,-4.589418230010463e-8,-0.002214378969883185,-4.692762570971198e-5,-4.566542228593394e-8,-0.0022141300645164186,-4.672255695780222e-5,-4.544463178449744e-8,-0.0022139458137362612,-4.6562850713633075e-5,-4.52722393117001e-8,-0.00221380060967952,-4.64777591528412e-5,-4.518126383051442e-8,-0.0022136569173281237,-4.648149783906708e-5,-4.518852648490155e-8,-0.0022134729343128413,-4.65678409922886e-5,-4.5288350736913463e-8,-0.002213212730213477,-4.670898079689068e-5,-4.545089717714251e-8,-0.002212856797894262,-4.686004182357243e-5,-4.562684735817594e-8,-0.0022124099074522273,-4.6969555866714336e-5,-4.575890861717408e-8,-0.0022119026018825377,-4.699407898397332e-5,-4.579813949784263e-8,-0.0022113839010346006,-4.691226389953383e-5,-4.5719800103478644e-8,-0.0022109065487812933,-4.673212611187127e-5,-4.553166994833471e-8,-0.0022105106421530336,-4.6487513953655795e-5,-4.52703652159344e-8,-0.002210212924897253,-4.622545023671105e-5,-4.498750033432147e-8,-0.0022100056515220326,-4.599082657138239e-5,-4.4732842639896e-8,-0.0022098634270506174,-4.58151562763414e-5,-4.454182124988341e-8,-0.002209753114187779,-4.5712337116466916e-5,-4.4430643000829475e-8,-0.0022096423610802776,-4.568024895658921e-5,-4.439779129857697e-8,-0.0022095048224221024,-4.570516696428774e-5,-4.4428692789315846e-8,-0.0022093223580628898,-4.576643434562114e-5,-4.45008081941231e-8,-0.0022090854104389146,-4.5840198863217866e-5,-4.458782308690369e-8,-0.002208792684048753,-4.590211841998753e-5,-4.4662757683266604e-8,-0.002208450773065764,-4.592949249699432e-5,-4.470041059236587e-8,-0.0022080738356743857,-4.590342965342051e-5,-4.467976024450722e-8,-0.0022076829208446235,-4.581149511652582e-5,-4.45868263584567e-8,-0.0022073042325302127,-4.565081152181556e-5,-4.441802397944935e-8,-0.002206965605216999,-4.5430915166275075e-5,-4.418331181075295e-8,-0.0022066909305378285,-4.51749843519472e-5,-4.390764665471133e-8,-0.0022064933389565914,-4.49177448738443e-5,-4.3628860219709356e-8,-0.0022063692939843756,-4.469903269899099e-5,-4.339076928750656e-8,-0.002206296459441618,-4.455384182826084e-5,-4.323234070924075e-8,-0.002206237344690818,-4.450182876565845e-5,-4.317610450389361e-8,-0.002206148437110928,-4.454022855258338e-5,-4.322014158498983e-8,-0.0022059920678573607,-4.464314996140854e-5,-4.333696738013364e-8,-0.002205747078655037,-4.47677698551155e-5,-4.3480006469238615e-8,-0.0022054149560458707,-4.4865453971987394e-5,-4.359562672668298e-8,-0.0022050197778874484,-4.4894469310904836e-5,-4.363714563703815e-8,-0.002204602080350687,-4.483081733338681e-5,-4.357698088947024e-8,-0.0022042082496701748,-4.4674256976108435e-5,-4.34136267011671e-8,-0.002203878355963061,-4.444767502332483e-5,-4.317130450908105e-8,-0.002203636131830214,-4.418988337579432e-5,-4.289227455216706e-8,-0.0022034842767954172,-4.3944313012475434e-5,-4.2624468807672645e-8,-0.0022034062225738905,-4.374765150444576e-5,-4.240888990786396e-8,-0.0022033728732570334,-4.362214656382595e-5,-4.22709113039624e-8,-0.0022033511472193176,-4.357325021474196e-5,-4.2217405326860426e-8,-0.002203311259278957,-4.359184072021775e-5,-4.2238963148967383e-8,-0.002203231161403219,-4.365884984553331e-5,-4.2314893940482235e-8,-0.0022030981896355236,-4.37501815219e-5,-4.241868804084055e-8,-0.0022029088590102435,-4.3840715442687394e-5,-4.252255845087228e-8,-0.002202667855443351,-4.390713159132299e-5,-4.2600676139939876e-8,-0.0022023869397814195,-4.392991328620103e-5,-4.263141972686281e-8,-0.002202083971331653,-4.389514078579005e-5,-4.259929970541784e-8,-0.0022017817509400405,-4.3796571313615305e-5,-4.2497155377534966e-8,-0.002201506019114991,-4.363807773550661e-5,-4.232878802184368e-8,-0.002201281829056389,-4.3435865519477696e-5,-4.211145676298463e-8,-0.0022011278651603286,-4.321905966755535e-5,-4.187668985882363e-8,-0.002201049428771376,-4.3026635343832115e-5,-4.166711799444936e-8,-0.0022010326564595945,-4.2899212226683795e-5,-4.1527605488542144e-8,-0.0022010438605880736,-4.2866701401245325e-5,-4.149168981230639e-8,-0.002201036815050561,-4.2936311524374124e-5,-4.156826007306663e-8,-0.0022009668005209242,-4.3087189621691026e-5,-4.1735408849570453e-8,-0.002200805687849186,-4.3275540935940235e-5,-4.194576010041846e-8,-0.0022005511147673534,-4.344845205145683e-5,-4.214141087930924e-8,-0.0022002261579351164,-4.356010243054483e-5,-4.2271627325288035e-8,-0.0021998709471877614,-4.3583870411128616e-5,-4.230621553318354e-8,-0.0021995306329296136,-4.351713167905666e-5,-4.2241049980976345e-8,-0.002199244012936336,-4.337907539302264e-5,-4.209604395428574e-8,-0.0021990354974688524,-4.3203716761038325e-5,-4.190782352683438e-8,-0.0021989114882803953,-4.303068697336216e-5,-4.1719808660383815e-8,-0.0021988611198272934,-4.2896143039547516e-5,-4.157220587465444e-8,-0.002198860529686386,-4.28256834219112e-5,-4.149400848221767e-8,-0.0021988792290551736,-4.283052362484336e-5,-4.149848437908441e-8,-0.0021988868020958604,-4.290728558961128e-5,-4.158266825085552e-8,-0.002198858332636107,-4.30407374421635e-5,-4.1730227888167276e-8,-0.0021987776559889718,-4.320815607531913e-5,-4.191627227789234e-8,-0.0021986383828306827,-4.338394252488224e-5,-4.211255171468341e-8,-0.0021984432617016725,-4.354352417484422e-5,-4.229189520363366e-8,-0.0021982026851288055,-4.366616419637895e-5,-4.243138177200893e-8,-0.002197932987833362,-4.373685585806035e-5,-4.2514400830429825e-8,-0.0021976547873646343,-4.374776948947891e-5,-4.2532145447490745e-8,-0.0021973912163822202,-4.3699666494011446e-5,-4.248507449934088e-8,-0.002197165565964018,-4.360339553726757e-5,-4.238455982416569e-8,-0.0021969976661542537,-4.348102472191013e-5,-4.2254266098886135e-8,-0.0021968986060033643,-4.3365344851824027e-5,-4.212983081364773e-8,-0.002196864488916266,-4.329582521635688e-5,-4.205462845468875e-8,-0.00219687177106506,-4.330950164594914e-5,-4.206983298743024e-8,-0.0021968783763478264,-4.342774012978813e-5,-4.219976819299261e-8,-0.002196833942465688,-4.364410781791684e-5,-4.2438344229764724e-8,-0.0021966974953614438,-4.392134829558463e-5,-4.274547229078794e-8,-0.0021964542822063117,-4.420215324008212e-5,-4.305868573313644e-8,-0.002196122004749595,-4.4429633911088055e-5,-4.3315482134634745e-8,-0.002195743141195934,-4.456667055575025e-5,-4.3474511881865136e-8,-0.0021953688213683063,-4.460502832877005e-5,-4.352567029416044e-8,-0.0021950430896256865,-4.456276883725236e-5,-4.34875261233581e-8,-0.00219479325103675,-4.447456387533459e-5,-4.339707996174946e-8,-0.0021946271302473947,-4.4380500039176534e-5,-4.329781770575668e-8,-0.0021945353071144784,-4.43168589575551e-5,-4.322972528487527e-8,-0.0021944959560133495,-4.4310062852754164e-5,-4.322252177775724e-8,-0.002194480563537203,-4.4373660852183527e-5,-4.32920524953864e-8,-0.0021944595227321863,-4.450786864707432e-5,-4.343945466521452e-8,-0.0021944069506842096,-4.4701191951449525e-5,-4.36527150890374e-8,-0.0021943042180325003,-4.49335617950116e-5,-4.391005375463803e-8,-0.002194141906377647,-4.518027077748843e-5,-4.4184332052663467e-8,-0.0021939201779301136,-4.5416019876788224e-5,-4.444764386522221e-8,-0.002193647790767406,-4.561847347713716e-5,-4.4675332295713537e-8,-0.0021933402416158846,-4.5770915859345256e-5,-4.484892453692752e-8,-0.00219301755709073,-4.586399243241319e-5,-4.495797173896476e-8,-0.0021927019881854267,-4.589680376520009e-5,-4.50011490514789e-8,-0.002192415581968075,-4.587758677189852e-5,-4.498696354861374e-8,-0.002192177416627541,-4.582404354917942e-5,-4.493420418458068e-8,-0.0021920001056428633,-4.576302032079154e-5,-4.487180284605771e-8,-0.0021918853630141493,-4.5728554041258204e-5,-4.483694086387648e-8,-0.0021918193971149852,-4.575678790110061e-5,-4.486962210563871e-8,-0.0021917704552939657,-4.5876737000029106e-5,-4.500249145208053e-8,-0.0021916921793231213,-4.609805171784536e-5,-4.524715951212536e-8,-0.002191535722030832,-4.640085504307758e-5,-4.558273256144663e-8,-0.002191268622527711,-4.673572239421093e-5,-4.5955562378608346e-8,-0.0021908911531643392,-4.703860588774864e-5,-4.6295536372601254e-8,-0.0021904389342049485,-4.725525462149562e-5,-4.654284579454351e-8,-0.0021899688757674282,-4.7361335435271427e-5,-4.667003748796585e-8,-0.002189537217572945,-4.736738240175443e-5,-4.66875152635767e-8,-0.002189182178099598,-4.730905371796731e-5,-4.6633131046491385e-8,-0.0021889175315774733,-4.723144495265606e-5,-4.655539679656418e-8,-0.0021887354256682617,-4.717574835041439e-5,-4.6499184056199204e-8,-0.0021886135162408732,-4.717157179860376e-5,-4.649736314449432e-8,-0.0021885224957076004,-4.723435333698451e-5,-4.656775348526145e-8,-0.002188432196672109,-4.736596568910569e-5,-4.671343301511786e-8,-0.0021883159915355365,-4.755688007918747e-5,-4.69247944722332e-8,-0.002188153797184117,-4.7789060056815985e-5,-4.7182558125506696e-8,-0.0021879339216937933,-4.8039252490120275e-5,-4.7461392605544466e-8,-0.0021876538472704776,-4.828243590852618e-5,-4.773381750934838e-8,-0.002187319992989988,-4.849521912185547e-5,-4.7974061450627616e-8,-0.0021869464613131022,-4.865894024085986e-5,-4.816152081756237e-8,-0.0021865528992877276,-4.87620998684626e-5,-4.828339410490294e-8,-0.0021861618199906937,-4.8801891534619e-5,-4.833627312095251e-8,-0.0021857956854069802,-4.878486309271509e-5,-4.832680892763946e-8,-0.0021854738600616984,-4.8726762987137e-5,-4.8271587194920043e-8,-0.0021852094900030724,-4.86515128943926e-5,-4.8196176656966384e-8,-0.002185006334014698,-4.858914285791343e-5,-4.8133122371377696e-8,-0.0021848556724831675,-4.8572182159752406e-5,-4.8118210423692764e-8,-0.0021847340908449993,-4.862969584851901e-5,-4.818398533821574e-8,-0.0021846040333787834,-4.8778729210677626e-5,-4.835019658202303e-8,-0.0021844197065521583,-4.901477659668526e-5,-4.861300583671992e-8,-0.002184139908137586,-4.9305740268685153e-5,-4.89380239589084e-8,-0.002183745208710712,-4.959578164277363e-5,-4.926436436193073e-8,-0.0021832508778272947,-4.9822400093252296e-5,-4.9523381452495355e-8,-0.0021827054179990426,-4.9940812964766306e-5,-4.9665452368679164e-8,-0.002182172657790118,-4.9941786271621964e-5,-4.967953305482646e-8,-0.0021817074157041024,-4.985220421423567e-5,-4.959386599256073e-8,-0.002181338673865619,-4.9720142395811015e-5,-4.945991919619401e-8,-0.0021810666706533364,-4.9595568980319e-5,-4.933166537295909e-8,-0.0021808703783844,-4.951657478515571e-5,-4.92507832762818e-8,-0.0021807181941960203,-4.950399504420421e-5,-4.924073730655143e-8,-0.0021805769182982548,-4.956218364039945e-5,-4.9307324380953e-8,-0.0021804174795038798,-4.968259370492711e-5,-4.9442212976376634e-8,-0.0021802179110294567,-4.9847836933814006e-5,-4.9627109424267564e-8,-0.002179964670767143,-5.003531159657192e-5,-4.983764252872737e-8,-0.0021796530724134083,-5.0220385609024966e-5,-5.004692161411961e-8,-0.002179287108625143,-5.0379309817940806e-5,-5.0228863268068284e-8,-0.0021788786984716967,-5.049197671212808e-5,-5.0361312329529946e-8,-0.0021784462256297563,-5.054452595703909e-5,-5.04289060225776e-8,-0.0021780122025803136,-5.053151803276535e-5,-5.042538797210063e-8,-0.002177600157916581,-5.045722929573454e-5,-5.035495070136917e-8,-0.0021772310966522526,-5.0335776567875636e-5,-5.023237210708531e-8,-0.002176919902460922,-5.0189932859938544e-5,-5.0081843179902245e-8,-0.00217667207082299,-5.004853269807545e-5,-4.993436120974221e-8,-0.0021764812441906808,-4.994249777622941e-5,-4.982363597059191e-8,-0.0021763280507105863,-4.98996114264398e-5,-4.978052270196503e-8,-0.0021761809437515654,-4.9938185981473035e-5,-4.982603516805561e-8,-0.002176000149806595,-5.006025793450334e-5,-4.9963621703133264e-8,-0.002175745817326205,-5.024622884164902e-5,-5.0172910484799115e-8,-0.002175390157594791,-5.0454365055776456e-5,-5.0408841281164365e-8,-0.002174930337153652,-5.06288459355e-5,-5.061036106903455e-8,-0.002174395353711165,-5.071699644838109e-5,-5.0719362989473973e-8,-0.0021738401034926535,-5.0689679713245726e-5,-5.0703131233504954e-8,-0.0021733265233010663,-5.055363671187018e-5,-5.056794205359903e-8,-0.0021729011128648096,-5.034775070284775e-5,-5.035513085813307e-8,-0.0021725811078602674,-5.012585939427826e-5,-5.012259516349527e-8,-0.0021723547388293137,-4.993700515060601e-5,-4.992354472562844e-8,-0.0021721915116131806,-4.9812811310871116e-5,-4.979285902848771e-8,-0.0021720546749986677,-4.976445626435847e-5,-4.9743630077680485e-8,-0.002171910550591354,-4.978612573658363e-5,-4.977057674929707e-8,-0.0021717334408312126,-4.986073223887547e-5,-4.985593590639394e-8,-0.0021715072056702122,-4.9965197761627746e-5,-4.997503848354697e-8,-0.002171225123681876,-5.007442062639999e-5,-5.010064735726323e-8,-0.0021708891541935235,-5.0164162613396194e-5,-5.020624123144993e-8,-0.002170509011565236,-5.021337352113505e-5,-5.026869269970753e-8,-0.0021701010201165194,-5.020633834079381e-5,-5.027067408474085e-8,-0.002169686481978018,-5.013479660142251e-5,-5.02029350445516e-8,-0.0021692892001323122,-4.999980622314807e-5,-5.006625128102955e-8,-0.002168932022375522,-4.9812758371010945e-5,-4.9872480658075486e-8,-0.002168632724515974,-4.95948957641629e-5,-4.96440934171442e-8,-0.0021683999304833723,-4.9374905475583854e-5,-4.94117279890712e-8,-0.0021682299884622017,-4.9184517024424835e-5,-4.9209644023520306e-8,-0.0021681057683319905,-4.905256550499114e-5,-4.906946354132325e-8,-0.0021679981084059274,-4.899850303697785e-5,-4.901315398366616e-8,-0.0021678702118165865,-4.902660625417457e-5,-4.904654790153962e-8,-0.002167684855459021,-4.912228342329066e-5,-4.915496722137846e-8,-0.002167413675346147,-4.9252117611135175e-5,-4.930287422769272e-8,-0.0021670467328493287,-4.9369236645834006e-5,-4.9439453319941026e-8,-0.0021665991445428225,-4.942457392269512e-5,-4.951084310411176e-8,-0.0021661107109958544,-4.9382031214902844e-5,-4.9476821013151695e-8,-0.0021656359860024264,-4.923205966050717e-5,-4.932584479686643e-8,-0.0021652269664645565,-4.8996524294130615e-5,-4.908058662160895e-8,-0.0021649159058167063,-4.872105249104496e-5,-4.878982557957179e-8,-0.002164706655984438,-4.8458301673946887e-5,-4.8510450968611894e-8,-0.0021645777385677746,-4.825084661063017e-5,-4.8288973195301046e-8,-0.0021644934054848965,-4.812122783466715e-5,-4.81506379139743e-8,-0.0021644159176900527,-4.8071024900689184e-5,-4.809815557247862e-8,-0.0021643141929952214,-4.808594061576428e-5,-4.81168922637752e-8,-0.002164167674411756,-4.814266053659258e-5,-4.818208341414474e-8,-0.0021639667146355628,-4.8214709519840826e-5,-4.8265144796799985e-8,-0.0021637113015193915,-4.8276471408607926e-5,-4.833815104674628e-8,-0.0021634093935051597,-4.8305717497990586e-5,-4.8376751136334334e-8,-0.0021630753860666465,-4.8285336142651836e-5,-4.836216222000512e-8,-0.0021627286667312874,-4.8204863846761885e-5,-4.828283802361071e-8,-0.002162391861482956,-4.8062097732630306e-5,-4.813613888210156e-8,-0.0021620882679398825,-4.786457221389886e-5,-4.792984469758117e-8,-0.0021618381966684985,-4.763020148052184e-5,-4.768283959318655e-8,-0.0021616544721947527,-4.738615688544101e-5,-4.74240049864915e-8,-0.0021615380479013072,-4.716519867376527e-5,-4.718845234479752e-8,-0.002161475302072799,-4.699937039553237e-5,-4.701091284755469e-8,-0.0021614386393250546,-4.6912154688658707e-5,-4.691736184216948e-8,-0.002161391201800069,-4.6911292679655636e-5,-4.691717630397373e-8,-0.002161295075484384,-4.698475296081406e-5,-4.6998506562417824e-8,-0.002161121034202,-4.710162372082691e-5,-4.712886694957854e-8,-0.002160857131367918,-4.7218339997966116e-5,-4.726153824963162e-8,-0.0021605135166616594,-4.728911357216719e-5,-4.734669635449493e-8,-0.002160121614640899,-4.727811102218645e-5,-4.7344670899897986e-8,-0.002159727070259186,-4.71700332472349e-5,-4.72376676723403e-8,-0.002159377681774251,-4.697546153405605e-5,-4.703590761080976e-8,-0.0021591097858532486,-4.672829423936533e-5,-4.677517141941328e-8,-0.002158938074167603,-4.6475408602648845e-5,-4.650582202815821e-8,-0.002158852916009944,-4.626235480050213e-5,-4.627738514230599e-8,-0.002158825801635166,-4.612087538018337e-5,-4.612493766194266e-8,-0.002158819709787541,-4.606270599802699e-5,-4.606214934513943e-8,-0.002158799607308813,-4.608051665422589e-5,-4.6081993496327766e-8,-0.0021587395273344563,-4.615361327504223e-5,-4.616267371658823e-8,-0.002158625286072611,-4.625494118904886e-5,-4.627511694149892e-8,-0.002158453953359905,-4.635691120285143e-5,-4.638936013416345e-8,-0.002158231790057722,-4.643523375110354e-5,-4.647887273854775e-8,-0.002157971911670394,-4.647108233605865e-5,-4.652305041561149e-8,-0.0021576922476335206,-4.6452294121769896e-5,-4.650856384345036e-8,-0.0021574138014324212,-4.637428430326153e-5,-4.6430286990051256e-8,-0.0021571587957101316,-4.624105015071745e-5,-4.629227406134107e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json new file mode 100644 index 00000000..b4be2416 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":1000,"numberOfSamples":1000,"samples":[-0.002156948117797158,-4.6066106188504274e-5,-4.610870837852341e-8,-0.0021567976844821175,-4.587262928957953e-5,-4.590411215695837e-8,-0.002156713908245568,-4.569170874283684e-5,-4.5711626484184725e-8,-0.0021566893595621928,-4.555761003533914e-5,-4.5568113732113295e-8,-0.002156700743371349,-4.549983445555494e-5,-4.5505741530892555e-8,-0.0021567115663395065,-4.5533671389188886e-5,-4.5541790676334716e-8,-0.0021566804178876843,-4.5652915406612466e-5,-4.5670622833809834e-8,-0.002156572912636481,-4.582870678241587e-5,-4.58621255953264e-8,-0.0021563728566239655,-4.601620142754535e-5,-4.6068577295811786e-8,-0.0021560880133587525,-4.616711622705171e-5,-4.623794070121091e-8,-0.002155748222189647,-4.62434863816923e-5,-4.6328641438483505e-8,-0.002155396920669294,-4.622782396424562e-5,-4.632067580425877e-8,-0.00215507933393081,-4.612686483113469e-5,-4.621997607570151e-8,-0.0021548310204559523,-4.596856314722607e-5,-4.605556460572259e-8,-0.0021546697448800787,-4.579380803487395e-5,-4.5870948767990285e-8,-0.0021545925009090403,-4.564545026639773e-5,-4.571243253541094e-8,-0.00215457808447119,-4.555777214888923e-5,-4.561767662258407e-8,-0.002154594019620961,-4.554927142265337e-5,-4.560764640929833e-8,-0.002154605368940617,-4.562040509803385e-5,-4.568383677005805e-8,-0.002154582628502511,-4.575613804937631e-5,-4.583074108471704e-8,-0.0021545067042819666,-4.593156748733217e-5,-4.602179515117175e-8,-0.0021543704349080905,-4.6118291920214145e-5,-4.6226298143065905e-8,-0.002154177429419203,-4.628970757896518e-5,-4.64152905393417e-8,-0.0021539395320203554,-4.642448039496704e-5,-4.656547403677698e-8,-0.0021536740325304696,-4.6508347419083976e-5,-4.6661248300741016e-8,-0.002153401212638439,-4.6534852085000904e-5,-4.669548060691322e-8,-0.0021531422886805827,-4.650565883599465e-5,-4.666974436961425e-8,-0.0021529174221249937,-4.6430830311047396e-5,-4.6594529114611347e-8,-0.002152743281384537,-4.632899782380846e-5,-4.648943285318694e-8,-0.0021526297364554913,-4.622682327908873e-5,-4.6382720029024235e-8,-0.0021525757781952213,-4.615665217809799e-5,-4.6309007987320986e-8,-0.0021525657635618595,-4.615111791560906e-5,-4.630363581540198e-8,-0.0021525683606683156,-4.623433111379003e-5,-4.639321479077921e-8,-0.0021525411131787307,-4.641162808298889e-5,-4.658444896551646e-8,-0.00215244181360915,-4.6662730585749126e-5,-4.685650807739798e-8,-0.002152243559761613,-4.69438336830974e-5,-4.716299443903288e-8,-0.0021519463173773905,-4.720028130623982e-5,-4.744536946490242e-8,-0.0021515783140552483,-4.738487646555355e-5,-4.7652539659263205e-8,-0.0021511863195340735,-4.7473012892754915e-5,-4.775714558013054e-8,-0.002150820158632104,-4.74681988823182e-5,-4.7761682951372046e-8,-0.0021505186509381763,-4.739759003524929e-5,-4.769404722497823e-8,-0.002150301454146949,-4.7301602034095665e-5,-4.75967746928141e-8,-0.002150167504080223,-4.722237577724007e-5,-4.751493736774092e-8,-0.0021500984653760494,-4.7194327180898005e-5,-4.7486029043007825e-8,-0.002150065007643072,-4.7238211715320985e-5,-4.753336591146179e-8,-0.002150034011848315,-4.735890504159874e-5,-4.7663329284699034e-8,-0.0021499752813515308,-4.754650144645341e-5,-4.7866189097583804e-8,-0.0021498666614940885,-4.777999559892799e-5,-4.811985529955003e-8,-0.002149696844734374,-4.8032435641353954e-5,-4.8395408706038154e-8,-0.0021494657462589853,-4.8276239272205825e-5,-4.866295866283441e-8,-0.0021491829316347584,-4.848761715432387e-5,-4.8896590036391526e-8,-0.002148864888882999,-4.864954755615883e-5,-4.9077698538029214e-8,-0.002148531969661492,-4.875324012053347e-5,-4.9196590948451486e-8,-0.00214820559302335,-4.879845385417849e-5,-4.925275811633043e-8,-0.0021479058723801398,-4.8793211725869386e-5,-4.9254476683867235e-8,-0.0021476494691693242,-4.875326148772683e-5,-4.921820529983365e-8,-0.0021474473356039884,-4.8701280224926454e-5,-4.916782927985692e-8,-0.002147302025734625,-4.8665427348109735e-5,-4.913330991550414e-8,-0.0021472046146883317,-4.867636961659977e-5,-4.914769826441347e-8,-0.0021471322071707254,-4.8761685544412094e-5,-4.924121019381598e-8,-0.0021470482597085038,-4.893732048233069e-5,-4.943192954490526e-8,-0.002146908584499707,-4.91979967179343e-5,-4.97152190263401E-08,-0.002146674363316176,-4.9511646656850674e-5,-5.0057427768996096e-8,-0.002146328667920062,-4.982422622000098e-5,-5.0400872447169334e-8,-0.0021458875359486144,-5.007688042712524e-5,-5.0682229364308553e-8,-0.002145397011314185,-5.0228379818507437e-5,-5.0856638807463407e-8,-0.0021449161791735768,-5.0270217445764416e-5,-5.091394422090286e-8,-0.002144495917953705,-5.0226434247242504e-5,-5.087865414824122e-8,-0.002144164522903363,-5.01408709895491e-5,-5.079660476566392e-8,-0.002143924532470479,-5.0060878640441164e-5,-5.0717902245852795e-8,-0.002143757959315198,-5.002483607513269e-5,-5.068379162791456e-8,-0.002143634896737234,-5.005585115815337e-5,-5.071984838493151e-8,-0.002143521842854634,-5.0160650756850324e-5,-5.083446444779818e-8,-0.002143388120717485,-5.0331651201626866e-5,-5.102064773664288e-8,-0.002143210184954386,-5.055054311417113e-5,-5.125954074459971e-8,-0.002142974117514982,-5.079251129394976e-5,-5.152482507010141e-8,-0.0021426765074378826,-5.103064468172294e-5,-5.178753018681961e-8,-0.0021423238391256607,-5.124006797853224e-5,-5.202065134245872e-8,-0.002141930651324379,-5.140134181465216e-5,-5.220297342970296e-8,-0.0021415168281439588,-5.150282446702924e-5,-5.2321688446799315e-8,-0.0021411044645297406,-5.154180999406271e-5,-5.237359158139016e-8,-0.0021407148054202576,-5.152449499997826e-5,-5.236496558245039e-8,-0.0021403655678020684,-5.146510002939213e-5,-5.231059043138093e-8,-0.002140068652238457,-5.138444270295482e-5,-5.2232268635753575e-8,-0.002139828133292629,-5.1308028225241545e-5,-5.2156950212399334e-8,-0.002139638422673149,-5.126350568803761e-5,-5.2114230564000163e-8,-0.00213948268691379,-5.1277018333799685e-5,-5.213259191254482e-8,-0.002139332290822501,-5.1367795817320406e-5,-5.223357239670482e-8,-0.0021391489883805194,-5.154098912009453e-5,-5.242383088390882e-8,-0.002138891970010422,-5.1780522562900146e-5,-5.268710604455327e-8,-0.0021385305995390066,-5.20462253084977e-5,-5.2980835455315765e-8,-0.002138059594008942,-5.2280784568316565e-5,-5.324353111816718e-8,-0.002137508049281609,-5.242840674319948e-5,-5.341489927661907e-8,-0.0021369333564798328,-5.245794992558174e-5,-5.3460757754233854e-8,-0.0021364000567887635,-5.237659280739311e-5,-5.338772944526506e-8,-0.0021359554177806913,-5.222499524366457e-5,-5.323816602452792e-8,-0.0021356157132549174,-5.205829004263862e-5,-5.307010206523827e-8,-0.002135367798385966,-5.1925718630202697e-5,-5.293584770307225e-8,-0.0021351802309842655,-5.185853393324863e-5,-5.2869237987871783e-8,-0.002135015709675917,-5.186747116928778e-5,-5.288277568269625e-8,-0.0021348401734937695,-5.194616985504687e-5,-5.2970891829753475e-8,-0.002134627758060293,-5.2076667370690687e-5,-5.311539888620349e-8,-0.002134362664862016,-5.22346501846903e-5,-5.329085053332862e-8,-0.0021340393185033547,-5.2393733389077045e-5,-5.3469096840437146e-8,-0.002133661644592146,-5.252894430972528e-5,-5.362316413179043e-8,-0.0021332416919183183,-5.2619642849676823e-5,-5.373058405670703e-8,-0.002132797639105352,-5.265187989316952e-5,-5.377605953151373e-8,-0.00213235123299873,-5.262008658853691e-5,-5.3753301407695094e-8,-0.0021319247547086106,-5.252787431710746e-5,-5.366582385721862e-8,-0.002131537812166341,-5.2387711692295135e-5,-5.3526527141880856e-8,-0.002131204386649835,-5.221948578729788e-5,-5.335616249926751e-8,-0.002130930436840616,-5.204813499564776e-5,-5.3180922715721016e-8,-0.0021307122475242276,-5.190051666082856e-5,-5.3029303636494595e-8,-0.002130535691096194,-5.1801663288743484e-5,-5.2928303953712826e-8,-0.002130376577415983,-5.1770519389418736e-5,-5.289893815879023e-8,-0.0021302025383327134,-5.1815158911048855e-5,-5.2950976313991277e-8,-0.002129977378036466,-5.192792796725971e-5,-5.3077407334747964E-08,-0.0021296688087945386,-5.208214555192072e-5,-5.325050928388623e-8,-0.0021292592998348823,-5.2233329336141494e-5,-5.342289782969275e-8,-0.002128757014872047,-5.2328224363975537e-5,-5.353718707965699e-8,-0.0021282003685288873,-5.232211388239153e-5,-5.354471701182651e-8,-0.0021276495587692528,-5.219820202071707e-5,-5.342650421322242e-8,-0.002127165444777017,-5.1977374748586926e-5,-5.32037987462269e-8,-0.002126786408919701,-5.1710339300552144e-5,-5.292980367635397e-8,-0.0021265166937946525,-5.145633618560855e-5,-5.2667177244896215e-8,-0.00212633105580082,-5.126167160748416e-5,-5.246538067689548e-8,-0.002126189328271234,-5.114869660600918e-5,-5.234897812409529e-8,-0.0021260510373621883,-5.111638783278097e-5,-5.231801132895357e-8,-0.002125884513579751,-5.114733030685652e-5,-5.235503053809026e-8,-0.0021256702248682435,-5.121572331910457e-5,-5.243327665430199e-8,-0.002125400455812279,-5.1293642979333694e-5,-5.252321996716058e-8,-0.0021250775059338096,-5.1355096043385815e-5,-5.259696904862907e-8,-0.0021247116610059085,-5.1378537621995244e-5,-5.2631164024147827e-8,-0.0021243192352671083,-5.134861185069034e-5,-5.2609026267915535e-8,-0.002123920533294502,-5.125749504161394e-5,-5.252187717870801e-8,-0.002123537513917045,-5.1105899487825944e-5,-5.237017732952232e-8,-0.0021231909824004935,-5.0903510148269925e-5,-5.21639052525058e-8,-0.002122897386272381,-5.066840160744641e-5,-5.192188374186477e-8,-0.0021226656718111524,-5.042508933637542e-5,-5.166975788992617e-8,-0.002122494839571998,-5.0201204525872756e-5,-5.143662126873064e-8,-0.0021223728064571974,-5.002307532138799e-5,-5.125052539179263e-8,-0.002122277063662247,-4.9910792187481684e-5,-5.1133373559448276e-8,-0.002122177350465051,-4.9873571668336e-5,-5.1095958839310544e-8,-0.002122040271899325,-4.990621895883855e-5,-5.113395766297128e-8,-0.002121835670220407,-4.998749569171908e-5,-5.122580454826739e-8,-0.002121544289358671,-5.008151805352115e-5,-5.133380683137773e-8,-0.0021211653940700756,-5.0143498952941705e-5,-5.141007127166793e-8,-0.0021207216447338448,-5.0130441492102875e-5,-5.1407976149345016e-8,-0.002120257496141451,-5.001520456175847e-5,-5.1297441102601807e-8,-0.002119828397979043,-4.9798850489622e-5,-5.107840402680578e-8,-0.0021194826754195456,-4.9513892869127156e-5,-5.078451782729881e-8,-0.002119244086201465,-4.921409445932999e-5,-5.0472444375840066e-8,-0.0021191046402436534,-4.8954748273117716e-5,-5.0200988226733736e-8,-0.002119031138708923,-4.8773978554723135e-5,-5.001124485406591e-8,-0.002118980101862301,-4.8684026206295004e-5,-4.991720030835334e-8,-0.00211891220827597,-4.867379334879302e-5,-4.990812813538284e-8,-0.0021188006530865576,-4.8717674424215837e-5,-4.9957631878584515e-8,-0.0021186330805224884,-4.878489183979079e-5,-5.003335885442783e-8,-0.002118409606923484,-4.8846210672363946e-5,-5.010414572430475e-8,-0.0021181395569648243,-4.887764161794287e-5,-5.0144131459874775e-8,-0.002117838428140765,-4.8862089859800686e-5,-5.013472762586503e-8,-0.0021175254797301053,-4.87900395563563e-5,-5.006548391793509e-8,-0.0021172217039225403,-4.865995177280172e-5,-4.9934517707598465e-8,-0.0021169477453683006,-4.8478584561881674e-5,-4.9748766630150475e-8,-0.002116721392799632,-4.8261007717598124e-5,-4.952391111144196e-8,-0.00211655455107997,-4.802973321358578e-5,-4.928344153787555e-8,-0.002116450096966629,-4.781233066898358e-5,-4.9056238260434893e-8,-0.0021163995074253497,-4.763723300556185e-5,-4.88723175000772e-8,-0.00211638238176434,-4.752806896211847e-5,-4.8757005535652654e-8,-0.0021163687749273766,-4.749765415455074e-5,-4.872463016284184e-8,-0.0021163245129189124,-4.75433801208055e-5,-4.8773504423959966e-8,-0.0021162186131261293,-4.7645689733550204e-5,-4.888400543678275e-8,-0.0021160311239636605,-4.7770598620135224e-5,-4.902087037517744e-8,-0.0021157594156345004,-4.787624496808221e-5,-4.913984622203423e-8,-0.0021154210653734945,-4.792249771712643e-5,-4.919779498322852e-8,-0.0021150518661444766,-4.788171611098116e-5,-4.916427157162084e-8,-0.0021146983037815758,-4.774784549571525e-5,-4.903151581702451e-8,-0.0021144054214774677,-4.754043449876239e-5,-4.881909664190108e-8,-0.002114203335655032,-4.730071511555959e-5,-4.857004998709531e-8,-0.0021140976257717674,-4.7079605315396366e-5,-4.8338297363515245e-8,-0.002114068243449401,-4.6921741162987395e-5,-4.817168920274723e-8,-0.0021140776517754515,-4.685238849929127e-5,-4.8097948508555413e-8,-0.002114084019446718,-4.6872596236596724e-5,-4.81192411375788e-8,-0.002114053227237637,-4.6963141965845496e-5,-4.821604606694751e-8,-0.002113965448400426,-4.7093502898033734e-5,-4.8356449951288814e-8,-0.0021138158726727416,-4.7231060835115885e-5,-4.8505867927921634e-8,-0.0021136117434029157,-4.73475915439524e-5,-4.863405741638106e-8,-0.002113368243224607,-4.742253450655109e-5,-4.8718797175518944e-8,-0.0021131048107557887,-4.7443958322278066e-5,-4.874708212682086e-8,-0.002112842390293642,-4.740840058984932e-5,-4.87150037508711e-8,-0.002112601402461571,-4.732044050097083e-5,-4.8627229494421786e-8,-0.002112399898104981,-4.71923458598116e-5,-4.84965171325286e-8,-0.0021122513870208202,-4.7043586695278016e-5,-4.834314259144425e-8,-0.002112162155506463,-4.689959768605062e-5,-4.8193650389836864e-8,-0.0021121284044120486,-4.678902511400128e-5,-4.807810872069021e-8,-0.002112134192586928,-4.6738909755118304e-5,-4.802520783954363e-8,-0.002112151736011111,-4.676805674809973e-5,-4.8055358790222776e-8,-0.0021121455008559073,-4.68802207502431e-5,-4.8173435647070684e-8,-0.002112080244306887,-4.705993268071947e-5,-4.8364140938563196e-8,-0.0021119310664213338,-4.727368018370931e-5,-4.8592931302070324e-8,-0.002111691895111901,-4.747730114612249e-5,-4.881352739322071e-8,-0.0021113788749667064,-4.7627699607907756e-5,-4.898012188224292e-8,-0.00211102704677318,-4.7694954771803144e-5,-4.9060201272908396e-8,-0.002110681352249585,-4.767075494556609e-5,-4.90436883734857e-8,-0.002110384874318121,-4.7570663804349934e-5,-4.894570849816082e-8,-0.0021101677401916797,-4.7429813825341904e-5,-4.8802430880724736e-8,-0.002110039696581039,-4.729335730533683e-5,-4.866125590022362e-8,-0.0021099884072854364,-4.7204358850854926e-5,-4.8568084600913465e-8,-0.002109983945387274,-4.7192708949043166e-5,-4.855543459993911e-8,-0.0021099879117350232,-4.726846620998511e-5,-4.863507382826351e-8,-0.0021099639576379094,-4.7421428985429237e-5,-4.879720662545984e-8,-0.0021098861854816123,-4.7626298326830003e-5,-4.901567331796005e-8,-0.002109743186109511,-4.7850789510772105e-5,-4.9256450069474826e-8,-0.002109537586825893,-4.8063526347891254e-5,-4.948609768053289e-8,-0.002109282655958739,-4.8239580975826655e-5,-4.967782243823404e-8,-0.0021089979409871034,-4.8363148343395243e-5,-4.981449771751667e-8,-0.002108705341277884,-4.8427999229028034e-5,-4.988923858233261e-8,-0.002108426170116319,-4.843672757019664e-5,-4.990457813568429e-8,-0.0021081790939703336,-4.8399655340769195e-5,-4.987120855545762e-8,-0.002107978462340765,-4.8333815691984267e-5,-4.98068240380907e-8,-0.0021078325085235445,-4.8261883157006745e-5,-4.973500790876879e-8,-0.002107741182028866,-4.8210487087105704e-5,-4.968358842430621e-8,-0.0021076938773007476,-4.820714020935879e-5,-4.9681591379790985e-8,-0.0021076680383246907,-4.827513281127266e-5,-4.975399170959863e-8,-0.002107630376401887,-4.842654419791798e-5,-4.991432609044488e-8,-0.0021075425159545343,-4.865523284848443e-5,-5.015711147352186e-8,-0.0021073713272879244,-4.893349928726431e-5,-5.045403692151433e-8,-0.002107101054149504,-4.921621165090497e-5,-5.075804312180078e-8,-0.00210674158544731,-4.9453141274911964e-5,-5.1016160495136004e-8,-0.0021063277292051657,-4.960526660686225e-5,-5.1186657637328415e-8,-0.0021059088236712936,-4.965767137535703e-5,-5.1252729209342855e-8,-0.002105533355710234,-4.962333434846008e-5,-5.122672710022117e-8,-0.002105235298687669,-4.953725574759237e-5,-5.114433301511661e-8,-0.0021050267301768173,-4.9444765358431426e-5,-5.105262008384059e-8,-0.0021048975954977385,-4.938895653500951e-5,-5.099704564916817e-8,-0.0021048209457205044,-4.940083264676395e-5,-5.1011036159970786e-8,-0.0021047611320736954,-4.9493878141675046e-5,-5.110997819652719e-8,-0.0021046825545899023,-4.9663315734863536e-5,-5.1290024568352304e-8,-0.002104557033149279,-4.98893453161492e-5,-5.1531150434198844e-8,-0.0021043684802190066,-5.0143026698940785e-5,-5.1803180748147716e-8,-0.002104114312419352,-5.0393089164750924e-5,-5.2073008844431506e-8,-0.0021038039107087792,-5.0611974369170696e-5,-5.2311154609061635e-8,-0.002103455142864527,-5.077997300985246e-5,-5.249634587215205e-8,-0.0021030901973043527,-5.088713159052434e-5,-5.261767665298347e-8,-0.002102731754757487,-5.093327497583167e-5,-5.2674658453290784e-8,-0.002102400038249737,-5.0926853473763044e-5,-5.267593710089334e-8,-0.002102110741705476,-5.088333895282607e-5,-5.2637516149960456e-8,-0.002101873489403106,-5.08235740242651e-5,-5.2580999673824274e-8,-0.0021016904381226816,-5.07720385838116e-5,-5.2531862498246874e-8,-0.0021015548084289933,-5.0754644122074386e-5,-5.2517309070279127e-8,-0.002101449525764805,-5.079541727592946e-5,-5.256294807274047e-8,-0.002101346863688587,-5.091147619245311e-5,-5.268753767417356e-8,-0.0021012107625705593,-5.110647842638639e-5,-5.2895930277749896e-8,-0.0021010036231113496,-5.1364431323432054e-5,-5.317225671965255e-8,-0.0021006978474307205,-5.164780092740599e-5,-5.347763770609452e-8,-0.0021002887607210427,-5.1904283966139336e-5,-5.3757151991875933e-8,-0.0020998017811831972,-5.2082983385010847e-5,-5.3956856249473105e-8,-0.002099287305051419,-5.2153786677272464e-5,-5.404424493360183e-8,-0.002098803714303415,-5.211938886395136e-5,-5.402099729340937e-8,-0.0020983970909576486,-5.201310176200273e-5,-5.392087032373497e-8,-0.0020980879471518285,-5.1884788106360025e-5,-5.379525398388802e-8,-0.0020978694594535633,-5.178355560077695e-5,-5.3695353664609535e-8,-0.0020977146033212875,-5.1744897802943776e-5,-5.3658858151211176e-8,-0.0020975867206337855,-5.17850538647107e-5,-5.370387698001164e-8,-0.002097449252174256,-5.1901448471996434e-5,-5.382901325735156e-8,-0.0020972727165282454,-5.2076755488728516e-5,-5.4017187239652266e-8,-0.002097038679265766,-5.228448053746355e-5,-5.424119501315798e-8,-0.002096741115512614,-5.2494770950254756e-5,-5.446974146690214e-8,-0.0020963856479537316,-5.267968073580639e-5,-5.467310941300608e-8,-0.0020959871806476727,-5.281730553664611e-5,-5.482773870037851e-8,-0.002095566547851664,-5.2894425618154075e-5,-5.49192091763326e-8,-0.0020951467983804607,-5.2907580747666326e-5,-5.494346629557186e-8,-0.0020947496865052926,-5.2862703551995284e-5,-5.490641407062349e-8,-0.00209439283463895,-5.277366064911636e-5,-5.482230500560337e-8,-0.002094087719578533,-5.266022168051224e-5,-5.471156076175677e-8,-0.0020938383034884785,-5.2545818362760925e-5,-5.459846822588298e-8,-0.00209364009071615,-5.245512424241938e-5,-5.4508786421523974e-8,-0.002093479524987209,-5.241128303972207e-5,-5.4467015989831044e-8,-0.002093333866675805,-5.243244496307399e-5,-5.449285675295966e-8,-0.002093172238328941,-5.25272454837531e-5,-5.459637339444828e-8,-0.002092959192295158,-5.2689536740216397e-5,-5.47721861308031e-8,-0.002092662162437497,-5.289419192472436e-5,-5.4994709404817255e-8,-0.002092262731012093,-5.3097515495686634e-5,-5.5218327291160634e-8,-0.0020917682925749906,-5.3246152076680836e-5,-5.5386719323868286e-8,-0.0020912168729252238,-5.32948950916572e-5,-5.5451705931345774e-8,-0.00209066831104737,-5.322638039161152e-5,-5.539407826225248e-8,-0.002090182976448214,-5.306061034027742e-5,-5.523368866112795e-8,-0.0020897991792229852,-5.2847036022818596e-5,-5.502129784760488e-8,-0.0020895220312050072,-5.264403046194828e-5,-5.481735951820511e-8,-0.002089327651578887,-5.2498344531242285e-5,-5.4670817165440435e-8,-0.002089176601984936,-5.243402752975581e-5,-5.46075905285881e-8,-0.002089027832962104,-5.2451886161662154e-5,-5.462976227025945e-8,-0.002088848145979607,-5.253524957931374e-5,-5.4721159636310425e-8,-0.002088616519163286,-5.265749417095675e-5,-5.485481113266398e-8,-0.0020883247601802828,-5.278870213189013e-5,-5.499971074275159e-8,-0.0020879761659435914,-5.290068935685728e-5,-5.512613172786507e-8,-0.002087583221816599,-5.297058683962383e-5,-5.520959628157752e-8,-0.002087164777385674,-5.29832296796577e-5,-5.5233626895864976e-8,-0.002086742950109644,-5.2932455223265686e-5,-5.519126877302781e-8,-0.002086339956581604,-5.282138748957507e-5,-5.508542075950947e-8,-0.0020859750527439137,-5.266171847400609e-5,-5.492801945295256e-8,-0.0020856618891764334,-5.247200185689632e-5,-5.4738177469182e-8,-0.0020854066000901466,-5.227520696881749e-5,-5.453962120190033e-8,-0.0020852067040709943,-5.209587655834655e-5,-5.4357819901512334e-8,-0.002085050761531667,-5.19570440334916e-5,-5.421693100956444e-8,-0.0020849188250382576,-5.187695475340274e-5,-5.4136513752244604e-8,-0.0020847838283227895,-5.1865633386018315e-5,-5.4127943797766366e-8,-0.002084614302700284,-5.192134366393279e-5,-5.4190517439071605e-8,-0.002084379177216386,-5.202743147570318e-5,-5.4307801867957737e-8,-0.0020840552632532838,-5.2151132764179095e-5,-5.444603412637725e-8,-0.0020836367229090016,-5.2246983387897786e-5,-5.4557508305702125e-8,-0.0020831432642481086,-5.226727446908682e-5,-5.45915998704627e-8,-0.00208262110484632,-5.217892051956154e-5,-5.451267651801983e-8,-0.0020821314693878165,-5.1979995231158984e-5,-5.4317639028435655e-8,-0.002081728580818981,-5.170500269403149e-5,-5.404156653193917e-8,-0.0020814384597434145,-5.1412711832119855e-5,-5.374512512192592e-8,-0.0020812512548079114,-5.1162601970100065e-5,-5.349017232141276e-8,-0.0020811301739922143,-5.0993981576040526e-5,-5.331814200443522e-8,-0.0020810288964036128,-5.091778800135395e-5,-5.324144113486929e-8,-0.0020809068797548306,-5.0920708246115815e-5,-5.324742058440525e-8,-0.002080737412895719,-5.0975044648063965e-5,-5.330822538299496e-8,-0.0020805090765344805,-5.104836915559959e-5,-5.339054776415609e-8,-0.0020802235105041346,-5.111032019083676e-5,-5.3462654102947513e-8,-0.0020798920087048986,-5.113645247824958e-5,-5.349856905196274e-8,-0.0020795322310856322,-5.111013067736273e-5,-5.3480319452971573e-8,-0.002079165270330489,-5.102337145825212e-5,-5.339903379738613e-8,-0.002078812929807196,-5.0877027322918444e-5,-5.325522084868336e-8,-0.0020784951021789507,-5.0680399754512935e-5,-5.3058323468374344e-8,-0.0020782272019827155,-5.0450194248135284e-5,-5.2825530483115977E-08,-0.002078017796904138,-5.020860124030872e-5,-5.257971627504764e-8,-0.002077866846658982,-4.998045829403398e-5,-5.234652763334412e-8,-0.002077764949227266,-4.9789769777337244e-5,-5.215090293742938e-8,-0.002077693796213007,-4.96559598259346e-5,-5.201333928555749e-8,-0.002077627945643406,-4.959024266445353e-5,-5.1946199184189877e-8,-0.0020775379573369774,-4.959258117963107e-5,-5.1950458272378425e-8,-0.002077394847759163,-4.964972754567608e-5,-5.20133946027985e-8,-0.0020771757956997636,-4.973494898228385e-5,-5.2107934240242226e-8,-0.0020768707597667575,-4.981047198397003e-5,-5.21948928946358e-8,-0.002076488719453658,-4.9833950263944744e-5,-5.222962698296795e-8,-0.0020760607752435137,-4.976947981592237e-5,-5.217368787144459e-8,-0.0020756363255762,-4.960119521007246e-5,-5.2009327355383566e-8,-0.0020752699804712604,-4.934370262592132e-5,-5.175068444401802e-8,-0.002075002258206543,-4.904167747827994e-5,-5.144355599514386e-8,-0.002074843505137487,-4.875527236421879e-5,-5.115030112001243e-8,-0.002074770885112081,-4.85375576824606e-5,-5.092642497342114e-8,-0.0020747400769557814,-4.841647775431193e-5,-5.080178737543361e-8,-0.00207470360549399,-4.839002227744564e-5,-5.077538800998163e-8,-0.0020746254988324455,-4.843356303392952e-5,-5.082265162308837e-8,-0.002074487411936633,-4.8512066229528486e-5,-5.090778965666528e-8,-0.002074287589063454,-4.8590652566310444e-5,-5.099462507142112e-8,-0.0020740364229402913,-4.864094211986411e-5,-5.105327235216716e-8,-0.0020737516117730406,-4.864364377231825e-5,-5.1063071939584795e-8,-0.0020734542779023923,-4.858893563414716e-5,-5.101324060777878e-8,-0.0020731661303226793,-4.847596434842968e-5,-5.090249495797251e-8,-0.0020729072209830705,-4.831209437291138e-5,-5.073826475982897e-8,-0.002072693884949742,-4.81119863715466e-5,-5.053563043378728e-8,-0.0020725366574624164,-4.789627336170478e-5,-5.031584456326077e-8,-0.002072438244777095,-4.76894406001386e-5,-5.0104114550785046e-8,-0.0020723920062757552,-4.751664405123388e-5,-4.992640119935618e-8,-0.002072381620741844,-4.7399626029792626e-5,-4.980535122260885e-8,-0.002072382493146707,-4.735231857382114e-5,-4.975587690759763e-8,-0.002072365126038206,-4.737703392101369e-5,-4.9781211913094104e-8,-0.0020723002115636837,-4.746229500170882e-5,-4.987048608611002e-8,-0.002072164686144449,-4.758318793891755e-5,-4.9998772052492005e-8,-0.0020719476479477516,-4.7704672733856255e-5,-5.0130175273880784e-8,-0.0020716548762382742,-4.778785681354576e-5,-5.0224127220180263E-08,-0.002071310506859259,-4.779875995902617e-5,-5.0244500497020163e-8,-0.0020709542977483263,-4.7718213318121765e-5,-5.017014103512715e-8,-0.002070633392768585,-4.755018007788747e-5,-5.0003890279004845e-8,-0.0020703892518739446,-4.7324560969728754e-5,-4.9775852540256276e-8,-0.002070243556064142,-4.709095642120351e-5,-4.953713265926498e-8,-0.002070189582318923,-4.690347790577672e-5,-4.93441179578025e-8,-0.002070194443298303,-4.6802416516879245e-5,-4.9239360290252976e-8,-0.002070211781957937,-4.680166452708117e-5,-4.923831183218621e-8,-0.0020701982102484394,-4.688757653287808e-5,-4.9327848095478144e-8,-0.0020701254502533,-4.702784331254064e-5,-4.947517696147768e-8,-0.002069984310820259,-4.718405080239909e-5,-4.9640685225447364e-8,-0.002069781881963152,-4.732196406548829e-5,-4.978861540585559e-8,-0.002069535727065262,-4.741708010271714e-5,-4.989300757237092e-8,-0.0020692682062174064,-4.7456088345065395e-5,-4.993946266170168e-8,-0.0020690022999483347,-4.743604483466135e-5,-4.9924473337753236e-8,-0.0020687589325963695,-4.736278778201662e-5,-4.9853830021207306e-8,-0.0020685552095647745,-4.724938104372905e-5,-4.9740931313843226e-8,-0.0020684029471759965,-4.7114721697835956e-5,-4.9605222607596616e-8,-0.002068307113632894,-4.698198596032385e-5,-4.9470525465095644e-8,-0.002068264210735056,-4.6876359384872586e-5,-4.936274057243991e-8,-0.0020682611085878133,-4.682161851644506e-5,-4.930645763105391e-8,-0.002068275207205279,-4.683559588593652e-5,-4.932042167102954e-8,-0.002068276840995726,-4.692525626768796e-5,-4.941250393336782e-8,-0.0020682343681795467,-4.708286526062035e-5,-4.9575641749325084e-8,-0.002068121336074826,-4.728509807584928e-5,-4.9786665145860586e-8,-0.002067923897843404,-4.7496385865671217e-5,-5.0009436305109905e-8,-0.0020676460373650566,-4.7676378285878495e-5,-5.0202301586995866e-8,-0.0020673105644500745,-4.77898332491647e-5,-5.032822287464823e-8,-0.002066955050994269,-4.781625324925658e-5,-5.036486940750825e-8,-0.0020666233471462645,-4.7756464778773514e-5,-5.0311739548860085e-8,-0.002066354580310086,-4.763398187934115e-5,-5.0191974764700023E-08,-0.0020661724200392493,-4.7490128745401975e-5,-5.004766473653001e-8,-0.0020660778693884388,-4.737345115377653e-5,-4.9929071504630356e-8,-0.002066048524221078,-4.732603099287772e-5,-4.9880421809209325e-8,-0.0020660453797246812,-4.737129330364156e-5,-4.992704483799921e-8,-0.0020660250285791494,-4.7508085193365105e-5,-5.006889477610717e-8,-0.0020659523841825966,-4.7713206060515434e-5,-5.028283650859611e-8,-0.0020658090029066624,-4.795053885650078e-5,-5.053188956294247e-8,-0.002065594771846483,-4.818222569886375e-5,-5.0776768516938594e-8,-0.002065324117375244,-4.837752105633615e-5,-5.0985184294608874e-8,-0.002065019767433622,-4.851728875182688e-5,-5.1136723525022014e-8,-0.0020647068446275245,-4.8594594783670716e-5,-5.1223668798557995e-8,-0.0020644086381638085,-4.861304972472082e-5,-5.124938607964203e-8,-0.002064144097864555,-4.8584434676873395e-5,-5.122584536957933e-8,-0.002063926468637026,-4.852647936788248e-5,-5.1171225339119544e-8,-0.0020637623786124806,-4.846100605905334e-5,-5.11079143446867e-8,-0.0020636508879348973,-4.841213269692522e-5,-5.106066445180714e-8,-0.002063582435238546,-4.8403934845334516e-5,-5.1054290024565175e-8,-0.002063538168965467,-4.8457018960260466e-5,-5.1110281108115146e-8,-0.002063490642966396,-4.858388401565267e-5,-5.12421042751145e-8,-0.002063407082221286,-4.8783799285689586e-5,-5.144985988199522e-8,-0.0020632559577338995,-4.9039126710606216e-5,-5.1716281192541857e-8,-0.0020630160427410785,-4.931581340272001e-5,-5.200696102828744e-8,-0.002062684941410063,-4.95699691789468e-5,-5.2276889335559116e-8,-0.0020622829172062315,-4.9759696099219955e-5,-5.2482526161209284e-8,-0.0020618491854511264,-4.9858113731482825e-5,-5.259526114699326e-8,-0.0020614313126430684,-4.98622055714111e-5,-5.261072103110058e-8,-0.0020610717124268244,-4.979388598943105e-5,-5.255018976438976e-8,-0.00206079622917913,-4.9693307260769264e-5,-5.2454091838812215e-8,-0.002060608259750969,-4.960738794563041e-5,-5.2370482519734586e-8,-0.0020604893759882652,-4.957747244117635e-5,-5.234243575739418e-8,-0.0020604054583355405,-4.962944279368117e-5,-5.239769021503708e-8,-0.00206031622426224,-4.976850689463904e-5,-5.254290844467591e-8,-0.0020601854537221713,-4.997959938080869e-5,-5.276367005121703e-8,-0.002059989171420568,-5.0232827495872717e-5,-5.3029781808228276e-8,-0.0020597197607184654,-5.049196909900188e-5,-5.330394627200139e-8,-0.002059385412596773,-5.0723251719086136e-5,-5.35509256812709e-8,-0.002059005920337264,-5.0901931837912855e-5,-5.374455696877302e-8,-0.0020586068325025636,-5.1015438910330984e-5,-5.387122879648511e-8,-0.0020582139353274493,-5.106332394108202e-5,-5.3929977985066915e-8,-0.0020578492211639973,-5.105516573900859e-5,-5.3930358175955645e-8,-0.002057528552028513,-5.100771436745336e-5,-5.388943054436595e-8,-0.0020572605931187234,-5.094215881551009e-5,-5.382886471043966e-8,-0.0020570463828137086,-5.088182315066045e-5,-5.3772543032440546e-8,-0.0020568790450358394,-5.0850080664488783e-5,-5.3744486331419684e-8,-0.0020567435004348058,-5.086799254343324e-5,-5.376655829843546e-8,-0.0020566165172875277,-5.0951144908211624e-5,-5.38553140117008e-8,-0.002056468009873697,-5.1105440079060466e-5,-5.40176449522486e-8,-0.002056264887091375,-5.13224346701609e-5,-5.4245796040435814e-8,-0.0020559784072281106,-5.157623756835036e-5,-5.451389058844007e-8,-0.0020555942713637253,-5.1825209665744814e-5,-5.4779432398487804e-8,-0.0020551217432332926,-5.202108670480498e-5,-5.4992587084446835e-8,-0.002054595971680873,-5.212442299521637e-5,-5.511211091620739e-8,-0.002054069540827032,-5.212000715115373e-5,-5.51213256728815e-8,-0.0020535954582683582,-5.202381128623128e-5,-5.503543356010499e-8,-0.002053209667556904,-5.187728707364314e-5,-5.48959111155173e-8,-0.002052921320923942,-5.1732422490422854e-5,-5.4755490408141264e-8,-0.0020527136286440546,-5.163540619096735e-5,-5.466165472016251e-8,-0.002052552370246584,-5.16152962902263e-5,-5.464504010682952e-8,-0.002052397089200715,-5.167979779085585e-5,-5.471483931427527e-8,-0.0020522111175157827,-5.1817015362214554e-5,-5.4860156203498216e-8,-0.002051968552414977,-5.200091488002448e-5,-5.505518884494557e-8,-0.002051657757119859,-5.219838699551085e-5,-5.5266251947721564e-8,-0.0020512816489339715,-5.237636228823249e-5,-5.5459107581815276e-8,-0.0020508553095427784,-5.2507832957142995e-5,-5.5605365688318714e-8,-0.0020504017421625635,-5.2575890404729004e-5,-5.568690921630114e-8,-0.002049946887543557,-5.257533993074332e-5,-5.5697769382127575e-8,-0.002049514984834118,-5.251207506856239e-5,-5.5643570315387093e-8,-0.0020491250330573053,-5.240083953067565e-5,-5.553919797775131e-8,-0.0020487886736325817,-5.226219084775036e-5,-5.540559549606092e-8,-0.002048509350314085,-5.211942672300324e-5,-5.526655233827838e-8,-0.0020482822912756475,-5.1995876311308334e-5,-5.514595440180733e-8,-0.0020480948969156336,-5.191250486751777e-5,-5.506543751527602e-8,-0.0020479273660762303,-5.188554270222557e-5,-5.5042078174011434e-8,-0.002047753716271682,-5.19237834715236e-5,-5.5085654827554707e-8,-0.002047543853386551,-5.202532476066097e-5,-5.5195172880639046e-8,-0.0020472677925593256,-5.2174216124140644e-5,-5.535514660858792e-8,-0.002046902870774027,-5.2338771760351975e-5,-5.553355877045675e-8,-0.0020464432837271392,-5.247451873274851e-5,-5.568470840459575e-8,-0.0020459084093877532,-5.253449204712567e-5,-5.575981860047395e-8,-0.002045343640214381,-5.2486027294355265e-5,-5.5724461720487053e-8,-0.002044808785656605,-5.2326853813685626e-5,-5.557525555895152e-8,-0.002044356731611969,-5.208986005362827e-5,-5.534487592771635e-8,-0.002044013525552351,-5.183141847200364e-5,-5.5090255370018856e-8,-0.002043771226817781,-5.160953417781544e-5,-5.48704621303244e-8,-0.0020435956589243583,-5.1464429347744986e-5,-5.472704260792385e-8,-0.0020434418674889353,-5.1410036594933055e-5,-5.4675282541850294e-8,-0.0020432684427998627,-5.14362548539681e-5,-5.470618039648655e-8,-0.0020430462096218717,-5.1516940304592496e-5,-5.4794150517663037e-8,-0.0020427612302023604,-5.161886518563504e-5,-5.490581755587025e-8,-0.002042413976632722,-5.170911019925943e-5,-5.50074620408479e-8,-0.0020420165420526716,-5.1760253982835196e-5,-5.5070471238764245e-8,-0.0020415890123641396,-5.1753638794210315e-5,-5.507496856439569e-8,-0.002041155494939975,-5.168102371657047e-5,-5.501178570621877e-8,-0.0020407401651533347,-5.154474405169965e-5,-5.488278817879703e-8,-0.0020403637204026146,-5.135653343018677e-5,-5.4699684377973364e-8,-0.002040040576882192,-5.113526412477106e-5,-5.448162890443747e-8,-0.002039777091455139,-5.09039490226065e-5,-5.425206240270826e-8,-0.0020395709362431877,-5.068649756636404e-5,-5.4035371776647424e-8,-0.002039411459954195,-5.050467571637247e-5,-5.385385724355181e-8,-0.002039280756574348,-5.037542727193322e-5,-5.372512326084712e-8,-0.0020391552857087123,-5.030852534711591e-5,-5.365977061904039e-8,-0.0020390080427771986,-5.030447590753775e-5,-5.365921376204627e-8,-0.002038811568452725,-5.0352607930303213e-5,-5.3713516384989046e-8,-0.0020385424324039243,-5.042973944197244e-5,-5.379970190700536e-8,-0.0020381875739485158,-5.050077044952324e-5,-5.388206675784495e-8,-0.0020377516616928775,-5.052330199125621e-5,-5.391680200972993e-8,-0.0020372625651711995,-5.045802416725423e-5,-5.386277190055731e-8,-0.0020367698775526524,-5.028392416035833e-5,-5.3697376840582164e-8,-0.0020363321435952564,-5.001196000452072e-5,-5.34308014077663e-8,-0.0020359951521852593,-4.968703486004547e-5,-5.310816086035136e-8,-0.0020357726478473404,-4.937288418461528e-5,-5.279414480895378e-8,-0.0020356419556401216,-4.9126855995544544e-5,-5.2547399322285394e-8,-0.002035556684070434,-4.897959533240644e-5,-5.2399885499866514e-8,-0.0020354668174017705,-4.892970414356411e-5,-5.2351307750795756e-8,-0.0020353344578759418,-4.8951698867931034e-5,-5.237686688565701e-8,-0.0020351402813209166,-4.900893595997211e-5,-5.2440021527677685e-8,-0.0020348825479860966,-4.906468718670452e-5,-5.250353037457378e-8,-0.0020345726105927375,-4.908894182699448e-5,-5.253641005057569e-8,-0.002034229863541913,-4.906144649731033e-5,-5.251727392128725e-8,-0.002033877432711455,-4.897243922319491e-5,-5.2435389666249733e-8,-0.002033538711092817,-4.882223756648143e-5,-5.2290488844127926e-8,-0.002033234470164266,-4.8620156756388854e-5,-5.2091736421230884e-8,-0.0020329804185158853,-4.838285072517303e-5,-5.185597492180308e-8,-0.0020327852353072594,-4.813206614562613e-5,-5.160531630998899e-8,-0.002032649254192641,-4.789178910703803e-5,-5.136415864036497e-8,-0.00203256409568354,-4.7684964149517676e-5,-5.115586867184493e-8,-0.002032513412831578,-4.7530207576543425e-5,-5.099954932398015e-8,-0.0020324746777436327,-4.743890663944881e-5,-5.0907215491822745e-8,-0.002032421864725609,-4.741298395352246e-5,-5.088156196373777e-8,-0.002032328861343699,-4.744359026821503e-5,-5.091451930689139e-8,-0.002032173443614939,-4.7510913626487626e-5,-5.098678990055797e-8,-0.002031941783002499,-4.75853718193778e-5,-5.106873150905396e-8,-0.0020316332829377146,-4.763092567556373e-5,-5.112349305662727e-8,-0.002031264678451989,-4.7611506845454626e-5,-5.111354889776993e-8,-0.0020308711459007655,-4.7500835256465015e-5,-5.101094070015697e-8,-0.002030501384939176,-4.7293891553481265e-5,-5.0809346057054425e-8,-0.0020302046550841244,-4.7015069114082157e-5,-5.053271389164446e-8,-0.002030012417735536,-4.6715860633814e-5,-5.023306514824246e-8,-0.0020299237206302333,-4.645858056483108e-5,-4.997393446583235e-8,-0.002029904534219609,-4.629246101907128e-5,-4.980599835191041e-8,-0.0020299027081861383,-4.6235733219535855e-5,-4.974874457112798e-8,-0.0020298691085456756,-4.6273355836021885e-5,-4.9787942532947575e-8,-0.002029772836986357,-4.6368492929145236e-5,-4.9886997870461254e-8,-0.0020296053518841788,-4.6478270704142267e-5,-5.0002696473796485e-8,-0.0020293762284797076,-4.6565779984025805e-5,-5.009732090515303e-8,-0.0020291058975264805,-4.660586503998099e-5,-5.0144678766039385e-8,-0.0020288190745721122,-4.658611551409667e-5,-5.013139050785385e-8,-0.0020285401833065263,-4.650544482721242e-5,-5.0055709880198454e-8,-0.0020282905163081324,-4.637198758862261e-5,-4.9925521941264115e-8,-0.0020280863812595215,-4.6201017541421475e-5,-4.975620376898143e-8,-0.002027937697407739,-4.6012910954525015e-5,-4.95684364968778e-8,-0.0020278468548150497,-4.5830932166805734e-5,-4.938584335030445e-8,-0.0020278079352926354,-4.5678563130217145e-5,-4.923225233991149e-8,-0.0020278066732735607,-4.5576287146234076e-5,-4.9128512005390405e-8,-0.0020278216052989797,-4.553814792964579e-5,-4.908913495339701e-8,-0.0020278266184087235,-4.5568694544187735e-5,-4.91192941943901e-8,-0.0020277947861438816,-4.566099727855335e-5,-4.921277950752152e-8,-0.0020277030598136164,-4.579640243999685e-5,-4.9351559556919325e-8,-0.0020275370670149273,-4.5946459644631754e-5,-4.950743825762933e-8,-0.0020272951641109476,-4.6077038467505365e-5,-4.964594133297112e-8,-0.0020269909380996286,-4.615441491887575e-5,-4.9732349917762104e-8,-0.002026653192492816,-4.615293081887066e-5,-4.973956903588067e-8,-0.002026322209052732,-4.606314805429271e-5,-4.965671815932576e-8,-0.0020260414134917063,-4.5898197313257225e-5,-4.949598467985722e-8,-0.002025845064816443,-4.569487890022771e-5,-4.929407616837752e-8,-0.0020257453978966516,-4.550622741121225e-5,-4.9104815330766504e-8,-0.0020257254701901042,-4.538541867435896e-5,-4.898274157296879e-8,-0.0020257433889951937,-4.536680350718691e-5,-4.89636608578841e-8,-0.0020257476215753702,-4.5453789008186565e-5,-4.905208248604179e-8,-0.002025695654193513,-4.562012774480506e-5,-4.922225373647776e-8,-0.0020255663701208917,-4.582262170758979e-5,-4.943082479997011e-8,-0.0020253618227586557,-4.6016984020625265e-5,-4.963283638283841e-8,-0.00202510099803616,-4.6169328034816214e-5,-4.979343944742674e-8,-0.002024811017417274,-4.626077683867761e-5,-4.989278000082901e-8,-0.002024519795827304,-4.6286832571634604e-5,-4.992561400738215e-8,-0.0020242514862415977,-4.625433913083903e-5,-4.989840752411386e-8,-0.002024024252686185,-4.617810969109077e-5,-4.982595556164917e-8,-0.0020238493406938953,-4.607808430854788e-5,-4.972841725462505e-8,-0.0020237306112493255,-4.597702408116703e-5,-4.96288581956967e-8,-0.002023664162763472,-4.589834984431947e-5,-4.955099750636145e-8,-0.0020236381094273855,-4.586365827157764e-5,-4.951673189348936e-8,-0.0020236329502209293,-4.5889656355000434e-5,-4.954314934249165e-8,-0.002023623153744319,-4.5984715081919234e-5,-4.963915423232379e-8,-0.0020235804546441657,-4.6145777376813115e-5,-4.980235686787022e-8,-0.002023478863220688,-4.635676148666589e-5,-5.0017332271608656e-8,-0.0020233006158513526,-4.658965624449702e-5,-5.025648223081647e-8,-0.002023041531229927,-4.6808945440860525e-5,-5.048423155390615e-8,-0.0020227139642913913,-4.6978896318268104e-5,-5.066420578545552e-8,-0.002022346013528821,-4.7072161309276584e-5,-5.0767917079637096e-8,-0.002021976583923614,-4.7077557162162256e-5,-5.0782829172766134e-8,-0.002021646938817805,-4.700482993717928e-5,-5.071753209060727e-8,-0.0020213903373314294,-4.688457071627136e-5,-5.060204845365824e-8,-0.00202122225761361,-4.676225438165741e-5,-5.048208770780828e-8,-0.002021134399579563,-4.668682793085823e-5,-5.040757499631068e-8,-0.0020210955157597492,-4.66964938733245e-5,-5.041810897949245e-8,-0.002021060207166187,-4.680660727557303e-5,-5.053039604591645e-8,-0.0020209831787395298,-4.700501284627893e-5,-5.073317426465869e-8,-0.0020208331782008877,-4.7257207541469374e-5,-5.0992163914768974e-8,-0.002020600749527367,-4.751873684499668e-5,-5.126249359928724e-8,-0.002020297495132843,-4.7748817668834114e-5,-5.150253416122725e-8,-0.002019949045350994,-4.791973032907616e-5,-5.168357842505219e-8,-0.002019586148214338,-4.801998291591459e-5,-5.1793273968425187e-8,-0.0020192374342056386,-4.8052601996660434e-5,-5.183409256541799e-8,-0.002018925159106304,-4.8031175323490096e-5,-5.181942050354247e-8,-0.0020186634942643855,-4.797571811880198e-5,-5.1769350061628944e-8,-0.002018458307559683,-4.7909321720409155e-5,-5.17071934570522e-8,-0.0020183074793059634,-4.7855657746552463e-5,-5.1656878184229704e-8,-0.0020182012242393878,-4.783688725574289e-5,-5.164083264519561e-8,-0.0020181224346406887,-4.7871384574551e-5,-5.167777089044754e-8,-0.002018047515893418,-4.797092449356852e-5,-5.177995991815182e-8,-0.0020179484270965854,-4.813745696818201e-5,-5.1950004632217014e-8,-0.0020177966111187182,-4.836022705575067e-5,-5.217785319666721e-8,-0.0020175689778127058,-4.861471743161788e-5,-5.243952149084699e-8,-0.0020172549083493363,-4.886518940475764e-5,-5.2699404555608824e-8,-0.0020168618491771245,-4.9071739379400246e-5,-5.291720278700551e-8,-0.0020164165457899337,-4.920074189090056e-5,-5.305839885690176e-8,-0.0020159601254947663,-4.923537724905972e-5,-5.310497994930823e-8,-0.0020155377782343923,-4.9182101111894395e-5,-5.3062208619770655e-8,-0.0020151863264922898,-4.9070186505180795e-5,-5.2958496549887175e-8,-0.0020149239683831454,-4.894424255995497e-5,-5.28381974040878e-8,-0.002014745466484543,-4.8852234007670655e-5,-5.2749744360003565e-8,-0.002014623980385843,-4.8832737442584404e-5,-5.2732795661562925E-08,-0.0020145187675945538,-4.8905033515197663e-5,-5.2807996323674024e-8,-0.002014386463354211,-4.9064737170752646e-5,-5.297217537397421e-8,-0.0020141926071653754,-4.928613889269881e-5,-5.3200321420099145e-8,-0.002013919923050992,-4.953032530867741e-5,-5.3453543629696204e-8,-0.002013571006866503,-4.975617191211685e-5,-5.369014468097558e-8,-0.0020131652167542056,-4.993046123284049e-5,-5.3875992139383384e-8,-0.002012731692604997,-5.0034158097124634e-5,-5.399109718532883e-8,-0.0020123014742402913,-5.0063845602625036e-5,-5.403129483295887e-8,-0.00201190121087524,-5.002933955111049e-5,-5.4005977959494064e-8,-0.002011549521326985,-4.994945558883987e-5,-5.393385164637899e-8,-0.002011255743455944,-4.984764678639762e-5,-5.383846809376056e-8,-0.0020110201985696686,-4.974843179222414e-5,-5.374453985485008e-8,-0.002010835083772604,-4.9674777295965575e-5,-5.367526613695328e-8,-0.0020106854277154628,-4.964606496865315e-5,-5.365032901804489e-8,-0.0020105500400673802,-4.9676073962541255e-5,-5.3683953076972764e-8,-0.0020104028617102853,-4.9770593190928885e-5,-5.3782559234610896e-8,-0.0020102154280196164,-4.992472116898015e-5,-5.39419945769669e-8,-0.002009961203093299,-5.01205774324166e-5,-5.4145045648848874e-8,-0.0020096220475094026,-5.032702956215601e-5,-5.436091558231032e-8,-0.0020091956873586328,-5.0503577918817376e-5,-5.454893403638213e-8,-0.0020087010935627442,-5.060963041617747e-5,-5.466782814365228e-8,-0.0020081776870822868,-5.06175125618987e-5,-5.468889528583259e-8,-0.0020076760813480246,-5.052404157729019e-5,-5.4607820427235687e-8,-0.0020072426309083852,-5.03543523152836e-5,-5.444874990717472e-8,-0.0020069043511348767,-5.015493124700536e-5,-5.42575575233768e-8,-0.0020066610667815107,-4.997871174697851e-5,-5.40871357697118e-8,-0.0020064875013838,-4.98690470565664e-5,-5.3981449732444325e-8,-0.0020063429428621477,-4.9848723760962696e-5,-5.396442162152271e-8,-0.0020061836818402717,-4.991653940438004e-5,-5.40361687618578e-8,-0.0020059740082301832,-5.005060728795719e-5,-5.4175883241144576e-8,-0.0020056933781890086,-5.021595398427699e-5,-5.434910207886136e-8,-0.0020053390005447076,-5.037374382076034e-5,-5.4516829286568113e-8,-0.0020049242019915922,-5.048986269802197e-5,-5.464425732666e-8,-0.0020044736538592134,-5.054119841472836e-5,-5.470733410760349e-8,-0.0020040170112563204,-5.0518666909647305e-5,-5.469609132681992e-8,-0.002003582651521957,-5.0426916644760484e-5,-5.461455429534083e-8,-0.002003192848389794,-5.028151267800684e-5,-5.4477987905210974e-8,-0.0020028610069787686,-5.010484787898947e-5,-5.430874706071043e-8,-0.0020025908720933084,-4.992194480586509e-5,-5.413196542421391e-8,-0.0020023771463984017,-4.9756918400443195e-5,-5.3971933421660555e-8,-0.002002206808863418,-4.963034306888264e-5,-5.384945799572805e-8,-0.0020020606277349035,-4.955729195151486e-5,-5.3779965287491494e-8,-0.002001914752160842,-4.9545629165052306e-5,-5.377186303277142e-8,-0.0020017426370449094,-4.959424701946217e-5,-5.382477021649585e-8,-0.0020015178700865826,-4.9691252782268014e-5,-5.392756337052816e-8,-0.002001218597218113,-4.981272984636775e-5,-5.4056892268100934e-8,-0.0020008337756181305,-4.9923598500677135e-5,-5.417780009747694e-8,-0.002000370096206164,-4.998267559890689e-5,-5.4248682766537245e-8,-0.0019998563334538166,-4.995319905600739e-5,-5.423191853970226e-8,-0.0019993405058199324,-4.981692900508882e-5,-5.4108211202206056e-8,-0.0019988771595501596,-4.958544642961348e-5,-5.388813032255459e-8,-0.001998508235516319,-4.930060305686856e-5,-5.361273486836377e-8,-0.0019982470792282445,-4.902112276864653e-5,-5.3340329163181614e-8,-0.001998074636703137,-4.880149849864028e-5,-5.31255233957502e-8,-0.0019979490776461596,-4.867431780069525e-5,-5.300163018068865e-8,-0.001997822100817167,-4.864355803151583e-5,-5.2973805172126e-8,-0.0019976535169998273,-4.8688691267618395e-5,-5.3022777123200866e-8,-0.001997419552504148,-4.8774601604832057e-5,-5.311433704727912e-8,-0.001997114744774493,-4.8862226688571974e-5,-5.320970261330998e-8,-0.0019967494607951706,-4.891701856579829e-5,-5.3273961127601174e-8,-0.0019963452028423133,-4.8914377496388965e-5,-5.328171644965104e-8,-0.0019959291743273603,-4.884227819040176e-5,-5.3220032150562435e-8,-0.0019955289872912786,-4.870151669163586e-5,-5.3088954045228216e-8,-0.001995168161878916,-4.850401085939419e-5,-5.289994962557313e-8,-0.0019948628903654394,-4.8269744288963775e-5,-5.267284224427861e-8,-0.0019946202670904343,-4.8023026531601735e-5,-5.2431967802807096e-8,-0.0019944379707342885,-4.7788675113880514e-5,-5.220224766362233e-8,-0.0019943051797844005,-4.7588659781935926e-5,-5.200579146376313e-8,-0.0019942042706509,-4.743954711749449e-5,-5.1859386167826104e-8,-0.001994112859914415,-4.735069680607469e-5,-5.1772781475901097e-8,-0.001994006037341234,-4.732295848864623e-5,-5.1747440313270875e-8,-0.001993858894812306,-4.7347710668200726e-5,-5.177551950964653e-8,-0.0019936496579878314,-4.740627635058635e-5,-5.18390919640976e-8,-0.001993363861819001,-4.7470190253398286e-5,-5.1910146838977426e-8,-0.0019929996205191062,-4.7503541595903896e-5,-5.195272017060764e-8,-0.0019925728195238626,-4.746902878186876e-5,-5.1928915188607375e-8,-0.001992119310680294,-4.7338527946317814e-5,-5.1809644671995214e-8,-0.001991689987214206,-4.710613654808492e-5,-5.1587956392584026e-8,-0.0019913363447532006,-4.6797293437381455e-5,-5.128838764343941e-8,-0.0019910904742861894,-4.6465669201456026e-5,-5.096398901617266e-8,-0.001990950368197197,-4.617513909028325e-5,-5.067840830528089e-8,-0.0019908806466250022,-4.5975167125504204e-5,-5.048140368418561e-8,-0.0019908285309041696,-4.5883747649525306e-5,-5.039181646697579e-8,-0.0019907446103717484,-4.588605349155747e-5,-5.039601315964357e-8,-0.0019905972795608703,-4.59456274268961e-5,-5.045866854053545e-8,-0.0019903769307380295,-4.601920467643337e-5,-5.053718566759492e-8,-0.001990092573971516,-4.60683822052351e-5,-5.059317403618827e-8,-0.0019897653271612717,-4.6066023946311286e-5,-5.059894157366422e-8,-0.0019894219047486518,-4.5998288524238066e-5,-5.0539804388693425e-8,-0.001989089388356069,-4.5864029542767294e-5,-5.041380553085208e-8,-0.001988791342582684,-4.5672889943786124e-5,-5.023002279694939e-8,-0.0019885450270769787,-4.544267119758317e-5,-5.000598811628438e-8,-0.001988359611822744,-4.519623780012269e-5,-4.9764511439258186e-8,-0.001988235373861473,-4.4958196634044265e-5,-4.9530237154278555e-8,-0.001988163874878257,-4.475155292368226e-5,-4.932622435749737e-8,-0.0019881291494703197,-4.4594624487372946e-5,-4.917088069716583e-8,-0.0019881097672433527,-4.449860634103792e-5,-4.907562319610449e-8,-0.0019880814361664893,-4.446599676205845e-5,-4.9043404078743095e-8,-0.001988019896370336,-4.448984902371915e-5,-4.90679788963876e-8,-0.0019879040251158317,-4.455382789815783e-5,-4.9133842968146527e-8,-0.001987719144006088,-4.463316087772778e-5,-4.921694042093964e-8,-0.001987460558236463,-4.46967620556441e-5,-4.9286514917244204e-8,-0.0019871370966062707,-4.471122399257981e-5,-4.9308929889939364e-8,-0.0019867735413332,-4.464753053386993e-5,-4.925440944020967e-8,-0.0019864096922321078,-4.449046879624519e-5,-4.910667619111871e-8,-0.001986093293887148,-4.424847454638656e-5,-4.887310764941467e-8,-0.0019858657165408035,-4.395851101024967e-5,-4.858986252843164e-8,-0.0019857444502105696,-4.36793761172567e-5,-4.831531748591886e-8,-0.0019857123157436644,-4.3471892985409506e-5,-4.811032585031551e-8,-0.001985722442942424,-4.3374678707536145e-5,-4.801403302963816e-8,-0.001985717837909519,-4.3389861516746215e-5,-4.802953349265059e-8,-0.0019856536347009303,-4.348657983914437e-5,-4.812711300883761e-8,-0.001985509793314366,-4.3617293200771854e-5,-4.826016677840372e-8,-0.001985291041141802,-4.373551017512467e-5,-4.8382599589213666e-8,-0.001985018982825112,-4.380710889702349e-5,-4.8460059289153266e-8,-0.00198472269519155,-4.381413163467009e-5,-4.8473904889146595e-8,-0.0019844313817317153,-4.3753602107519224e-5,-4.8420335013601454e-8,-0.0019841698777690116,-4.3634265418978614e-5,-4.830740886578302e-8,-0.00198395631013117,-4.347308097731399e-5,-4.815167459106861e-8,-0.00198380093609794,-4.32920529085931e-5,-4.7974972464015794e-8,-0.0019837056325942176,-4.311530044265703e-5,-4.7801388949448075e-8,-0.0019836639326078916,-4.2966205027643966e-5,-4.765430103584804e-8,-0.0019836616788419274,-4.2864560277764126e-5,-4.755351001687462e-8,-0.0019836784835310212,-4.2823816969524074e-5,-4.75125667742844e-8,-0.0019836901334029686,-4.284880913635948e-5,-4.753661876885519e-8,-0.0019836717844280323,-4.293443985340406e-5,-4.7621167559884083e-8,-0.001983601577361672,-4.306561983656408e-5,-4.775195443764006e-8,-0.00198346427639853,-4.321860830029743e-5,-4.79061064744248e-8,-0.001983254503428399,-4.3363817575379086e-5,-4.805466061004061e-8,-0.001982979128261479,-4.3470011868281195e-5,-4.8166508580713625e-8,-0.0019826583317162807,-4.350982227820718e-5,-4.8213806615591725e-8,-0.0019823245270563744,-4.346642997860529e-5,-4.817876549475533e-8,-0.0019820179079688013,-4.334055689306835e-5,-4.806092503305833e-8,-0.0019817776241884424,-4.315546627647395e-5,-4.788249609663614e-8,-0.001981629243341138,-4.295622121243347e-5,-4.768788218876515e-8,-0.00198157253207564,-4.279964969343516e-5,-4.753376447678903e-8,-0.0019815768110193243,-4.273555993575656e-5,-4.747031671641675e-8,-0.0019815896914275643,-4.2786939561310826e-5,-4.752132323658576e-8,-0.001981556964728314,-4.294065163758243e-5,-4.767470277125102e-8,-0.001981442898715948,-4.315455768342111e-5,-4.788935301045354e-8,-0.001981239994932547,-4.337586664281439e-5,-4.811318043326988e-8,-0.001980965615592369,-4.3559380683812036e-5,-4.830112897720887e-8,-0.001980651104271411,-4.3677669740602314e-5,-4.842535724700544e-8,-0.001980330622165264,-4.37224614567855e-5,-4.8476842035870866e-8,-0.001980033601616317,-4.370082309922366e-5,-4.846185712372692e-8,-0.001979781186553916,-4.362987461869388e-5,-4.8396913373778846e-8,-0.0019795853426471683,-4.35321462310607e-5,-4.8304189751421825e-8,-0.001979449164923876,-4.343211096476673e-5,-4.8208004801788516e-8,-0.001979367516891493,-4.335355049589747e-5,-4.81320762404166e-8,-0.0019793277939190233,-4.331724667908914e-5,-4.8097157631997425e-8,-0.0019793109779484602,-4.333865671006025e-5,-4.811875302716466e-8,-0.00197929334115372,-4.342552864224307e-5,-4.8204839307820454e-8,-0.0019792491585166726,-4.3575840607934675e-5,-4.835390191602501e-8,-0.0019791544719827683,-4.377676979296662e-5,-4.855390559455163e-8,-0.0019789914659854206,-4.400538864917376e-5,-4.878285284376596e-8,-0.001978752618067997,-4.423151487384888e-5,-4.9011380729146134e-8,-0.001978443571552841,-4.442266642057841e-5,-4.920743293376487e-8,-0.0019780837559768326,-4.455044155192306e-5,-4.93424419569069e-8,-0.001977704189216635,-4.459716325964112e-5,-4.9397956177720134e-8,-0.0019773423735596264,-4.4561466986321577e-5,-4.937141684655841e-8,-0.001977034607825835,-4.446140319979623e-5,-4.927959934097138e-8,-0.0019768066566202684,-4.433345001834858e-5,-4.915798984075471e-8,-0.0019766648048065616,-4.422600808807836e-5,-4.905454320636164e-8,-0.001976590642014865,-4.418718038152136e-5,-4.901754862575995e-8,-0.0019765433922679146,-4.424941926591262e-5,-4.908018505043689e-8,-0.0019764714799322142,-4.441704193678446e-5,-4.924782281001948e-8,-0.0019763299672662825,-4.466351711965738e-5,-4.949503779025665e-8,-0.0019760958592488333,-4.494111748014449e-5,-4.9774988214425593e-8,-0.001975773776278894,-4.519821653836421e-5,-5.003649186587927e-8,-0.001975390495162118,-4.539533451112828e-5,-5.0239976118785304e-8,-0.0019749831859174212,-4.551335871876182e-5,-5.0365773681986254e-8,-0.0019745879207018306,-4.555320514137526e-5,-5.041400386812903e-8,-0.0019742323786003236,-4.553037719774458e-5,-5.039938833552872e-8,-0.0019739331147513276,-4.5468406296927464e-5,-5.03448680797245e-8,-0.001973695819172792,-4.539349471122782e-5,-5.0276287499947574e-8,-0.0019735168135767726,-4.533089935511781e-5,-5.0218721062822205e-8,-0.0019733846944876474,-4.5302611923024283e-5,-5.019408501320979e-8,-0.0019732817668098417,-4.532562487218592e-5,-5.021939519624579e-8,-0.0019731854504376916,-4.5410207074392044e-5,-5.0305107394665245e-8,-0.0019730701622044603,-4.5557997564901036e-5,-5.045329830787116e-8,-0.001972910223039121,-4.576026673732602e-5,-5.0655959638034884e-8,-0.001972684031500541,-4.5997198476817514E-05,-5.0894198826261366e-8,-0.001972379090884328,-4.623929153514652e-5,-5.113944114811148e-8,-0.001971996635686588,-4.6451727228890164e-5,-5.135753400078218e-8,-0.0019715539766186102,-4.660160044857538e-5,-5.1515737334611745e-8,-0.0019710828542270687,-4.6666477609024985e-5,-5.159115485388241e-8,-0.001970623298040414,-4.664162896085638e-5,-5.1578016403124346e-8,-0.001970214212090245,-4.65432620191606e-5,-5.1491151948029e-8,-0.001969883242927487,-4.6406229230851866e-5,-5.1364075446337285e-8,-0.001969638857557791,-4.627639846031354e-5,-5.124174919757445e-8,-0.001969467008160238,-4.6199420166105754e-5,-5.116961866658035e-8,-0.0019693336914688433,-4.6208627966382286e-5,-5.1181552597747694e-8,-0.001969193371546135,-4.631535486871011e-5,-5.128996338486575e-8,-0.0019690015104308046,-4.650497733936632e-5,-5.148150977961362e-8,-0.001968727504736385,-4.6740821064600386e-5,-5.172064567922468e-8,-0.001968363316252578,-4.697522012612561e-5,-5.196041523031695e-8,-0.00196792440570595,-4.71636765838571e-5,-5.2156492160433425e-8,-0.001967443051877653,-4.727655930735045e-5,-5.227890703313716e-8,-0.0019669575953292872,-4.730437768201357e-5,-5.2317472555509746e-8,-0.0019665022928231123,-4.7256201646844035e-5,-5.228042290007389e-8,-0.0019661009362071376,-4.715377406937989e-5,-5.218873377314962e-8,-0.0019657647779907092,-4.702464970878444e-5,-5.206938544394163e-8,-0.001965493477560509,-4.689660585321579e-5,-5.194979398067257e-8,-0.001965277377825799,-4.6794002474408414e-5,-5.185413345399812e-8,-0.001965099914950498,-4.67357278760477e-5,-5.1801254050097615e-8,-0.0019649396611614903,-4.673397854378611e-5,-5.180348656861776e-8,-0.0019647721014879383,-4.6793187059781656e-5,-5.186563289514447e-8,-0.0019645716558417217,-4.690878647692816e-5,-5.1983771468773974e-8,-0.0019643145874512157,-4.706604455706395e-5,-5.214404907793817e-8,-0.001963983213520618,-4.7239795327600476e-5,-5.232226406608289e-8,-0.0019635711534783046,-4.7396399391850306e-5,-5.248560550378622e-8,-0.0019630881783210172,-4.749923158841316e-5,-5.2597912011238834e-8,-0.0019625620385825687,-4.7517783547080394e-5,-5.262860028092075e-8,-0.001962034600536159,-4.743810866143697e-5,-5.2563034466538445e-8,-0.001961551663459193,-4.7270187530390955e-5,-5.2409958425237556e-8,-0.0019611493437624405,-4.7047867070956564e-5,-5.2201684891901307e-8,-0.0019608425118726406,-4.682012526184868e-5,-5.198578136085175e-8,-0.001960620223510975,-4.663679110534357e-5,-5.1811253235307756e-8,-0.00196044964691645,-4.65343886842311e-5,-5.1714684022350806e-8,-0.001960286244385532,-4.652696232149927e-5,-5.171103424799668e-8,-0.0019600861987816276,-4.660393314075276e-5,-5.1791161198884274e-8,-0.001959817384072231,-4.673447845393499e-5,-5.192571546679343e-8,-0.0019594663672666632,-4.687647620848606e-5,-5.207366237327364e-8,-0.0019590402013480103,-4.69873681531962e-5,-5.219291849091948e-8,-0.0019585630459199917,-4.7034093216261266e-5,-5.2250281015410575e-8,-0.0019580689434451474,-4.699963912862847e-5,-5.222813797470916e-8,-0.001957593098636109,-4.6884855780413277E-05,-5.212650982795257e-8,-0.0019571642607120374,-4.6705755925512453e-5,-5.196056523166988e-8,-0.001956800031936092,-4.648795164335014e-5,-5.175520387715332e-8,-0.0019565055327110657,-4.626040613743492e-5,-5.1538868280151164e-8,-0.001956274664949442,-4.605019885705157e-5,-5.133830575689433e-8,-0.0019560927255029953,-4.587904903303501e-5,-5.117507505063576e-8,-0.001955939273522816,-4.5761480824035993e-5,-5.106372503209461e-8,-0.00195579066288265,-4.570401845100373e-5,-5.101104052329391e-8,-0.001955622211363207,-4.570476038673568e-5,-5.101566680936453e-8,-0.001955410378080181,-4.575298140689403e-5,-5.1067700552761083e-8,-0.0019551355106216866,-4.5828851541139104e-5,-5.114829612455283e-8,-0.0019547856381423576,-4.590392133545704e-5,-5.122995115968192e-8,-0.001954361197611504,-4.594364275569868e-5,-5.127880370114713e-8,-0.001953879361532978,-4.591336545457481e-5,-5.126044894606853e-8,-0.001953375159198017,-4.5788157126795125e-5,-5.114965466945004e-8,-0.0019528960573228693,-4.556404200060815e-5,-5.094156483201756e-8,-0.0019524888638265663,-4.52650121756844e-5,-5.0658773399677315e-8,-0.0019521829510683111,-4.493969555783338e-5,-5.03482415102804e-8,-0.001951978224705543,-4.4646436883604996e-5,-5.006686001308755e-8,-0.0019518449631389671,-4.4433199757164185e-5,-4.9861909053352045e-8,-0.0019517355290165363,-4.43223575013476e-5,-4.9756164208185047e-8,-0.0019516011374687279,-4.430667685873654e-5,-4.9743737900243164e-8,-0.0019514058087092413,-4.4355660121435736e-5,-4.979589561049797e-8,-0.0019511334488388776,-4.442707829644108e-5,-4.987196748279403e-8,-0.0019507882121724506,-4.4478635729643045e-5,-4.993057447552316e-8,-0.0019503903208332868,-4.447687118184344e-5,-4.9938400968221414e-8,-0.0019499696523796678,-4.440237013879302e-5,-4.9875550740711113e-8,-0.0019495587983859016,-4.425144642123595e-5,-4.973750799595954e-8,-0.0019491867583722598,-4.403481674939329e-5,-4.953408613857425e-8,-0.001948874170726926,-4.3773966244990976e-5,-4.928597425302703e-8,-0.0019486306854478142,-4.3496186610003896e-5,-4.901984567298104e-8,-0.0019484545808215287,-4.322941742227304e-5,-4.876319520040075e-8,-0.0019483342448092852,-4.299784164805793e-5,-4.853991498678627e-8,-0.0019482508367361243,-4.281882578092175e-5,-4.8367249272998265E-08,-0.0019481813406516451,-4.2701332047739913e-5,-4.8254265238426306e-8,-0.001948101431884755,-4.2645465612550796e-5,-4.820147285858156e-8,-0.0019479880023605153,-4.2642663695294445e-5,-4.820104258643957e-8,-0.0019478215084132696,-4.267621983914629e-5,-4.823725928348993e-8,-0.0019475884766814169,-4.2722120831818105e-5,-4.8287176766687065e-8,-0.001947284537476418,-4.2750605376743135e-5,-4.832193112023108e-8,-0.0019469179020162252,-4.272943149953421e-5,-4.830978464674593e-8,-0.001946512130701754,-4.2629987351193034e-5,-4.8222103668448865e-8,-0.0019461057920909896,-4.243645483759409e-5,-4.804249139879382e-8,-0.0019457459924259364,-4.2155871844775294e-5,-4.777688442978733e-8,-0.001945474433914433,-4.182357814670306e-5,-4.745909633402526e-8,-0.0019453099923769398,-4.149726260691403e-5,-4.7145127891331156e-8,-0.0019452376149965635,-4.123797713130104e-5,-4.689469161507122e-8,-0.0019452123501192205,-4.108646923628689e-5,-4.67481344270079e-8,-0.0019451775408544185,-4.104846697515171e-5,-4.671199913017461e-8,-0.001945086305653114,-4.10964890190002e-5,-4.67605464329462e-8,-0.00194491498170104,-4.118420798055841e-5,-4.6849415350206084e-8,-0.0019446649566739968,-4.1263439193324884e-5,-4.693190382853436e-8,-0.0019443564891179575,-4.129638690638195e-5,-4.6970831215838533e-8,-0.001944019871009889,-4.126124977537125e-5,-4.694416268183079e-8,-0.0019436874568431314,-4.115267744009283e-5,-4.6845757576426216e-8,-0.0019433878283089455,-4.097933082895468e-5,-4.668329117893592e-8,-0.0019431420227587768,-4.076018683375537e-5,-4.64748293924473e-8,-0.001942961425049852,-4.052037587530838e-5,-4.624478413720799e-8,-0.001942847090506267,-4.028693694379081e-5,-4.6019666043409794e-8,-0.001942790358890472,-4.008483999357206e-5,-4.5824064376144906e-8,-0.0019427745871054582,-3.9933607897037706e-5,-4.5677259981585586e-8,-0.0019427777616891982,-3.984486508728241e-5,-4.559083113158273e-8,-0.0019427755865315058,-3.982107608163827e-5,-4.556748866183424e-8,-0.0019427445679542873,-3.985544668643988e-5,-4.5601049016244416e-8,-0.0019426648249855798,-3.9932722126588916e-5,-4.5677213148583996e-8,-0.0019425225723483325,-4.003067731752825e-5,-4.577491057145826e-8,-0.00194231231186212,-4.0122223590998573e-5,-4.586815250812175e-8,-0.001942038840723702,-4.017825071467646e-5,-4.592859500544757e-8,-0.0019417189403766162,-4.017172995117602e-5,-4.592943591477745e-8,-0.0019413817963929902,-4.0083668653272205e-5,-4.5851299075569445e-8,-0.0019410663758636533,-3.9910612776753746e-5,-4.5689797651230024e-8,-0.0019408138567119492,-3.9671609827259084e-5,-4.546263553447091e-8,-0.0019406546006421536,-3.941021451110704e-5,-4.52117972507066e-8,-0.001940593319235403,-3.918608994782784e-5,-4.499543804327817e-8,-0.0019406012767298,-3.905498590278002e-5,-4.486832358067523e-8,-0.001940623920404477,-3.904542284858823e-5,-4.4859006867683975e-8,-0.0019406025544464632,-3.914639483061919e-5,-4.495769578301747e-8,-0.001940497520876102,-3.931411884703988e-5,-4.512260307194805e-8,-0.001940299698239888,-3.949212761192832e-5,-4.5299254342045724e-8,-0.0019400271696272137,-3.9631546521015266e-5,-4.5440050246729585e-8,-0.0019397134945464904,-3.970249901148748e-5,-4.55153769119164e-8,-0.0019393955892964717,-3.969592038203203e-5,-4.551557626730208e-8,-0.0019391053846128947,-3.961966037424788e-5,-4.544745102453445e-8,-0.0019388656601532564,-3.9492805816283906e-5,-4.532898685003671e-8,-0.0019386887618311728,-3.9340423201373115e-5,-4.518433473733331e-8,-0.0019385768153243493,-3.9189313030825355e-5,-4.5039624737876385e-8,-0.0019385226755074644,-3.9064588188579694e-5,-4.491950007652083e-8,-0.0019385113945777103,-3.89868350713039e-5,-4.4844233237342264e-8,-0.0019385222021650083,-3.8969763524809525e-5,-4.48273957066787e-8,-0.0019385310528990875,-3.9018436577778017e-5,-4.4874176736247263E-08,-0.001938513684450707,-3.912838732750907e-5,-4.498060099930697e-8,-0.0019384488723173468,-3.928589530112374e-5,-4.51338353807561e-8,-0.001938321483040145,-3.946943857740446e-5,-4.531354277085539e-8,-0.0019381250107120861,-3.965222629013153e-5,-4.5494184057548586e-8,-0.0019378633026130548,-3.9805684583894356e-5,-4.5648196322549064e-8,-0.0019375512317700392,-3.990367219926965e-5,-4.574992768613837e-8,-0.0019372141057675222,-3.9927275177831916e-5,-4.5780279834495175e-8,-0.0019368852732491004,-3.987006414845319e-5,-4.573198875575406e-8,-0.0019366009982821448,-3.9743041431457964e-5,-4.561474398462704e-8,-0.001936392008214114,-3.9577268369624826e-5,-4.545806912288991e-8,-0.0019362725887905185,-3.9421116423997146e-5,-4.530885190760244e-8,-0.0019362308367980837,-3.93293215936308e-5,-4.522070434461868e-8,-0.0019362265448863605,-3.934447117414749e-5,-4.5235796012735197e-8,-0.0019362021567699314,-3.947831204143984e-5,-4.5366449130396565e-8,-0.0019361044622756712,-3.9704499044345756e-5,-4.558787687093552e-8,-0.0019359055467726995,-3.9969038024905696e-5,-4.5848165191453386e-8,-0.001935610918476163,-4.0212436952495197e-5,-4.608967212085328e-8,-0.0019352522767100955,-4.0390248298052926e-5,-4.626892936144965e-8,-0.001934872343550989,-4.04826572347339e-5,-4.636602580928481e-8,-0.0019345110162189247,-4.0492973987788945e-5,-4.6383349171738214e-8,-0.0019341974042064007,-4.0440353373262014e-5,-4.633877244453355e-8,-0.00193394745527741,-4.035183976460438e-5,-4.6258113992407355e-8,-0.0019337648831009675,-4.025623586702828e-5,-4.6169223646382756e-8,-0.001933643297940725,-4.018010690860001e-5,-4.6098017218746215e-8,-0.0019335684391845415,-4.014524819687492e-5,-4.606588963420782e-8,-0.0019335202829593439,-4.016691288990378e-5,-4.608791074426844e-8,-0.001933475196842574,-4.025240778009302e-5,-4.617145854048994e-8,-0.0019334084174011334,-4.039999941699849e-5,-4.6315210257224784e-8,-0.0019332970460884604,-4.0598441631085976e-5,-4.6508730328468455e-8,-0.0019331234337040622,-4.0827636234276635e-5,-4.67330881859333e-8,-0.0019328784570221483,-4.1060782189105156e-5,-4.69628242270068e-8,-0.001932564016748744,-4.126806268614148e-5,-4.716934132885776e-8,-0.0019321940512386387,-4.14215942181376e-5,-4.732552837106896e-8,-0.001931793485630655,-4.1500945427768556e-5,-4.741103326315836e-8,-0.0019313948975945483,-4.149824340283206e-5,-4.741729676503009e-8,-0.0019310330346188518,-4.142188515293687e-5,-4.7351395895912765e-8,-0.0019307375352558293,-4.1297801414388954e-5,-4.723760067108958e-8,-0.0019305246932332914,-4.116693684145903e-5,-4.711522060800814e-8,-0.0019303901558369954,-4.107771840039374e-5,-4.7031429532281454e-8,-0.001930305702440573,-4.1073507327231025e-5,-4.70290097302363e-8,-0.001930223661133537,-4.117772149833033e-5,-4.71316652941459e-8,-0.0019300904151773313,-4.1382707713134946e-5,-4.733292449466249e-8,-0.0019298652063116251,-4.1649473063614e-5,-4.7595646288971316e-8,-0.0019295353407003367,-4.192078311450537e-5,-4.786461098057043e-8,-0.0019291195029987889,-4.214178037375372e-5,-4.8086494979264673e-8,-0.0019286581510240075,-4.227740391874418e-5,-4.822680388860586e-8,-0.0019281977027044515,-4.23190945630982e-5,-4.827648982478889e-8,-0.001927776949794641,-4.228093381957044e-5,-4.8248402386580654e-8,-0.0019274200721663662,-4.219051722902683e-5,-4.8168652620736966e-8,-0.001927135772707496,-4.20798850584923e-5,-4.8067954346620734e-8,-0.0019269198332215003,-4.197912027142969e-5,-4.797542280744417e-8,-0.0019267586318278405,-4.1912777277154615e-5,-4.7915023022203665e-8,-0.0019266323173630316,-4.189820026513446e-5,-4.7903834928403336e-8,-0.0019265173637764677,-4.194471819140883e-5,-4.795122144177823e-8,-0.0019263888011234276,-4.205308385953557e-5,-4.805829680961167e-8,-0.0019262225974915343,-4.221501646557592e-5,-4.821751718558146e-8,-0.0019259985568891125,-4.2413183674726635e-5,-4.8412658231367925e-8,-0.0019257037357562376,-4.262227688328076e-5,-4.861977364178274e-8,-0.0019253358507307667,-4.281183412618318e-5,-4.88097763412886e-8,-0.0019249056464002532,-4.295109158693287e-5,-4.895296804974039e-8,-0.00192443696510101,-4.3015405547280085e-5,-4.9025146674251664e-8,-0.001923963576351099,-4.299286159649854e-5,-4.901401418858055e-8,-0.0019235227456985294,-4.288907110417211e-5,-4.892397352513479e-8,-0.0019231466972611288,-4.2728295806226845e-5,-4.8777489495455956e-8,-0.0019228540148536525,-4.2549887097491935e-5,-4.861195243355361e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json new file mode 100644 index 00000000..771149a5 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":10000,"numberOfSamples":1000,"samples":[1.9197471616856318e-4,7.996600532056201e-6,-1.2597360486632112e-8,1.923979354906972e-4,8.059544161443208e-6,-1.2601754449986743e-8,1.9274745963100852e-4,8.18217092448731e-6,-1.2612185701149497e-8,1.9301410614298842e-4,8.328459694631899e-6,-1.2625220207854334e-8,1.9320200661086356e-4,8.46367290461882e-6,-1.263746635903232e-8,1.933256574311564e-4,8.557979990756902e-6,-1.264596926377846e-8,1.9340729897750835e-4,8.588749871695277e-6,-1.2648467217789009e-8,1.9347454382165973e-4,8.54234886551231e-6,-1.2643575641672086e-8,1.9355780445299317e-4,8.41580428718647e-6,-1.2630935191527253e-8,1.9368703586457032e-4,8.218144650907273e-6,-1.2611321617725655e-8,1.9388759494511673e-4,7.970728457914735e-6,-1.2586673932584885e-8,1.9417557384287807e-4,7.70570255454025e-6,-1.2559972916060515e-8,1.9455353413614596e-4,7.461994170668981e-6,-1.2534909842557773e-8,1.950079268750979e-4,7.278838435440244e-6,-1.2515320800328438e-8,1.9550946566497787e-4,7.1877009230743185e-6,-1.250443183656935e-8,1.9601716991058025e-4,7.204296880679899e-6,-1.2504049076168112e-8,1.964858622143666e-4,7.322751895738212e-6,-1.2513893072518937e-8,1.9687601817327312e-4,7.513719443070609e-6,-1.2531293180978063e-8,1.9716418145619786e-4,7.727807131336245e-6,-1.255143733487227e-8,1.9735148270881055e-4,7.904972006017888e-6,-1.256828984627858e-8,1.9746717430474582e-4,7.989189307001313e-6,-1.2576107854737417e-8,1.9756414464783983e-4,7.945391162788686e-6,-1.2571208909452543e-8,1.9770522673983343e-4,7.772936988045046e-6,-1.255336219063038e-8,1.9794335851555265e-4,7.508737590816236e-6,-1.2526112219574885e-8,1.9830340643788719e-4,7.216310774252375e-6,-1.2495704511570225e-8,1.9877444051722307e-4,6.9643475770128966e-6,-1.2468991956480241e-8,1.9931605492441463e-4,6.804754497374457e-6,-1.2451273955690413e-8,1.99874367496323e-4,6.7599548302468994e-6,-1.2444993679265321e-8,2.0039900027274713e-4,6.82270849799812e-6,-1.2449629419202722e-8,2.0085428305204736e-4,6.964723431631095e-6,-1.2462470630692901e-8,2.012230129828281e-4,7.147810040913146e-6,-1.2479705950981818e-8,2.015048844233702e-4,7.3331078822919305e-6,-1.2497376827881843e-8,2.0171260728942556e-4,7.4869143007848404e-6,-1.2512018298014086e-8,2.0186784837753266e-4,7.583663846056725e-6,-1.2521002574264202e-8,2.0199788115223623e-4,7.6072954724533325e-6,-1.252268798054521e-8,2.0213287762151582e-4,7.552075776678594e-6,-1.25164799413586e-8,2.023032713093168e-4,7.423389313956485e-6,-1.250287524528341e-8,2.025365492604393e-4,7.238354929979809e-6,-1.2483501654253962e-8,2.0285312487000682e-4,7.025543178481034e-6,-1.2461102098633864e-8,2.032615548180566e-4,6.822697696785637e-6,-1.2439358398961576e-8,2.037542292355152e-4,6.671464949679808e-6,-1.2422433892723618e-8,2.043054648544205e-4,6.609017340781519e-6,-1.241418367286807e-8,2.0487402079284614e-4,6.658061470286973e-6,-1.2417141084804209e-8,2.0541091916908847e-4,6.8183286453880834e-6,-1.2431576848491557e-8,2.0587131297464264e-4,7.063148440915905e-6,-1.2455025250029365e-8,2.0622704282800456e-4,7.343452105811302e-6,-1.2482583077772363e-8,2.064756840198449e-4,7.598950788494315e-6,-1.2508013979414962e-8,2.0664282168786132e-4,7.773572333271332e-6,-1.2525372054527937e-8,2.0677643799377142e-4,7.830732911241555e-6,-1.2530654293509096e-8,2.069346139971509e-4,7.763969732585166e-6,-1.252297208136234e-8,2.0716968071363143e-4,7.599507240572051e-6,-1.2504868071919612e-8,2.075133831394106e-4,7.389324388835024e-6,-1.2481637303243253e-8,2.079680047158014e-4,7.196295440443784e-6,-1.2459822238997104e-8,2.0850678511286473e-4,7.076223630712314e-6,-1.2445361216516968e-8,2.09083353603553e-4,7.063208010991012e-6,-1.2442027977015235e-8,2.0964607359171694e-4,7.163288146015455e-6,-1.245068068918884e-8,2.1015153998119444e-4,7.357300167494584e-6,-1.2469466055778998e-8,2.105729208467013e-4,7.6098914082299795e-6,-1.2494715588623496e-8,2.1090206952705673e-4,7.880059152858419e-6,-1.2522068534104855e-8,2.1114705135521922e-4,8.129688725332927e-6,-1.2547426277362978e-8,2.11327623932954e-4,8.328785948689606e-6,-1.2567558359396523e-8,2.1147063027153733e-4,8.45781981905388e-6,-1.2580371063842255e-8,2.116062170779773e-4,8.508318739735103e-6,-1.2584953522756101e-8,2.1176489219544155e-4,8.482821664273282e-6,-1.2581533889456395e-8,2.1197487908306462e-4,8.394780190546323e-6,-1.2571439050506965e-8,2.1225908578335732e-4,8.268336110121104e-6,-1.2557075378613995e-8,2.1263125815806694e-4,8.137282943263268e-6,-1.2541867403695375e-8,2.1309149641396343e-4,8.042041677157666e-6,-1.2530015745409708e-8,2.1362232923984473e-4,8.023413973770414e-6,-1.2525906367685887e-8,2.141877185477536e-4,8.112834049185048e-6,-1.2533095524318957e-8,2.1473774581068903e-4,8.3210914871919e-6,-1.2553050116063849e-8,2.1522011129794914e-4,8.630080126066386e-6,-1.2584142235542132e-8,2.1559591766686086e-4,8.992908412392393e-6,-1.2621531987775295e-8,2.1585357677476676e-4,9.344915051726786e-6,-1.2658284937238318e-8,2.1601416666211921e-4,9.622593263837225e-6,-1.2687427039128446e-8,2.1612534488552648e-4,9.78287653756447e-6,-1.2704087855205246e-8,2.1624652249650514e-4,9.81514982519467e-6,-1.2706860844017089e-8,2.1643148366610137e-4,9.742398905621779e-6,-1.2697982257149455e-8,2.1671439125053968e-4,9.612686075077394e-6,-1.2682472194826136e-8,2.1710262618754617e-4,9.484942883597433e-6,-1.2666663487275253e-8,2.1757724992220657e-4,9.413689438536168e-6,-1.2656583095773519e-8,2.180998881122663e-4,9.436636301726828e-6,-1.2656579120301334e-8,2.1862349866680082e-4,9.567821662343242e-6,-1.2668481926430359e-8,2.1910382506955763e-4,9.797254291937394e-6,-1.2691451235088495e-8,2.1950852180187367e-4,1.0096209406878957e-5,-1.2722473686840802e-8,2.1982203208259762e-4,1.0425814221374339e-5,-1.2757289563240955e-8,2.2004593990235762e-4,1.0746017377170483e-5,-1.279141904043139e-8,2.2019594725035345e-4,1.1022697089033848e-5,-1.2821004358988786e-8,2.2029723714439854e-4,1.1231954282858246e-5,-1.284332207805951e-8,2.2037976133546005e-4,1.1361792925413278e-5,-1.285697045584737e-8,2.204743050715671e-4,1.1412058566647195e-5,-1.2861837839761607e-8,2.2060942735678435e-4,1.139360836886871e-5,-1.2858986747465736e-8,2.2080886496210573e-4,1.1327297175898568e-5,-1.2850546480647196e-8,2.2108883199633075e-4,1.1242779422350658e-5,-1.2839626876663463e-8,2.2145479727229533e-4,1.117656313941561e-5,-1.2830179748791994e-8,2.218978524119614e-4,1.1168241380550244e-5,-1.2826654765479383e-8,2.223918274118358e-4,1.125368271022084e-5,-1.2833271066266854e-8,2.2289360923823234e-4,1.1454892795233024e-5,-1.2852838922138324e-8,2.2334970247736352e-4,1.1768728623398749e-5,-1.288537714386462e-8,2.2371036423718345e-4,1.2159917386077626e-5,-1.2927189221052759e-8,2.2394786325905398e-4,1.2565129918165497e-5,-1.2971236046903973e-8,2.2407012789687003e-4,1.2910776320851335e-5,-1.3009149058543156e-8,2.2412080512659326e-4,1.3138423398335554e-5,-1.3034156281509835e-8,2.2416403518024246e-4,1.3225258584550226e-5,-1.3043432270151873e-8,2.242617193073924e-4,1.31895428771349e-5,-1.303873108036752e-8,2.244545122747121e-4,1.3080514119203897e-5,-1.302529805681681e-8,2.247533541484739e-4,1.2960154137190002e-5,-1.3009918312410972e-8,2.2514149681588606e-4,1.288542370013457e-5,-1.2999015386017868e-8,2.2558304221404233e-4,1.2896057941767493e-5,-1.2997297157850649e-8,2.2603369392279116e-4,1.3009117176953077e-5,-1.3007061790201875e-8,2.264507770082446e-4,1.3219243737167519e-5,-1.3028087674737915e-8,2.2680097981678127e-4,1.3502917845584759e-5,-1.3057987443448877e-8,2.2706512925085745e-4,1.3825112165154655e-5,-1.3092899943215674e-8,2.2723980182644377e-4,1.4146844760246526e-5,-1.312835960370297e-8,2.2733606659061404e-4,1.4432176615984899e-5,-1.316015072754668e-8,2.2737613010144923e-4,1.4653552288310205e-5,-1.3184975709050629e-8,2.2738889061095103e-4,1.4794967275872633e-5,-1.3200846957566375e-8,2.2740539458427508e-4,1.485298630857986e-5,-1.3207200828708261e-8,2.2745491914188558e-4,1.48361020505556e-5,-1.3204810600297655e-8,2.2756189301271438e-4,1.4763163136429955e-5,-1.3195611648549548e-8,2.2774342945347363e-4,1.4661392768367974e-5,-1.318251654013457e-8,2.2800711646406744e-4,1.4564073938727435e-5,-1.3169225227622847e-8,2.2834878588194946e-4,1.4507553748530596e-5,-1.3159958692847593e-8,2.287503519544513e-4,1.4526782542924386e-5,-1.3158983635572145e-8,2.2917872878590236e-4,1.4648464790645952e-5,-1.3169782666393387e-8,2.2958798770619958e-4,1.4881779191418465e-5,-1.3193861131791164e-8,2.2992738155013117e-4,1.5208892056563145e-5,-1.3229487616666131e-8,2.3015629354228862e-4,1.5580637661667213e-5,-1.3271075564489491e-8,2.3026234150305317e-4,1.5924292688085457e-5,-1.331008459441756e-8,2.3027280889853033e-4,1.6165999528322054e-5,-1.3337725131374554e-8,2.3024916735463958e-4,1.6259694822258185e-5,-1.3348408049319169e-8,2.3026415545918469e-4,1.6206222473384533e-5,-1.334196191813377e-8,2.303737207873722e-4,1.6050930760160185e-5,-1.3323325049974134e-8,2.3059936656605264e-4,1.586282236461781e-5,-1.3300188674521488e-8,2.309273397309413e-4,1.5709080036263402e-5,-1.328019137069129e-8,2.3131987266427655e-4,1.5637160807724585e-5,-1.3268952807786755e-8,2.3172978464227394e-4,1.5668110115491378e-5,-1.3269276372437528e-8,2.3211253167230013e-4,1.579838872190477e-5,-1.3281222326984168e-8,2.3243381968418038e-4,1.6005968044664794e-5,-1.3302645758738719e-8,2.326732628860945e-4,1.6257565449448583e-5,-1.3329918467555854e-8,2.3282524674238283e-4,1.651551762610959e-5,-1.3358697686405669e-8,2.3289788056306504e-4,1.674381866600482e-5,-1.3384673664069943e-8,2.3291052997145164e-4,1.6913063406322665e-5,-1.3404220672953126e-8,2.3289032072172143e-4,1.700401500413197e-5,-1.3414875180816028e-8,2.3286803858424185e-4,1.7009620439693355e-5,-1.3415595856352999e-8,2.328739025738482e-4,1.6935397883075238e-5,-1.3406804390503862e-8,2.3293373693946084e-4,1.6798289595216762e-5,-1.3390246403408823e-8,2.3306590757557672e-4,1.6624355851294292e-5,-1.3368746419574027e-8,2.3327907598190837e-4,1.6445739810291813e-5,-1.334591547674048e-8,2.3357067709120252e-4,1.6297106752196225e-5,-1.3325815392409889e-8,2.3392604926032666e-4,1.621152078481189e-5,-1.3312532903507163e-8,2.3431832644508823e-4,1.6215461539974096e-5,-1.3309583151627188e-8,2.3470981296471905e-4,1.6322593851986297e-5,-1.3319074542987742e-8,2.350563586266793e-4,1.6526652827706943e-5,-1.3340700335972787e-8,2.3531635632917516e-4,1.6795606538324656e-5,-1.3370882993466678e-8,2.3546449597391608e-4,1.7071515543042718e-5,-1.3402687449686616e-8,2.3550651143611578e-4,1.7281479296035646e-5,-1.3427194538859864e-8,2.354860662292638e-4,1.736119067195648e-5,-1.3436455207389577e-8,2.354745423562714e-4,1.7282664410910297e-5,-1.3426879119078932e-8,2.3554413988636483e-4,1.7069422488256228e-5,-1.340100684306105e-8,2.3573843359821594e-4,1.678735137254538e-5,-1.3366380140959267e-8,2.3605794175604995e-4,1.6516440745440828e-5,-1.333226482032832e-8,2.364666128436858e-4,1.6321330128306323e-5,-1.3306309980540544e-8,2.369106704107837e-4,1.6235316784717564e-5,-1.329272307712745e-8,2.373372411284009e-4,1.6259841608278305e-5,-1.3292124623119489e-8,2.3770594596677692e-4,1.6372931299750227e-5,-1.3302373390412671e-8,2.37993246071328e-4,1.6539681380754335e-5,-1.3319651568231e-8,2.3819211939730327e-4,1.6721074059761234e-5,-1.3339438365960858e-8,2.3830961030271236e-4,1.6880231173799742e-5,-1.335727306140373e-8,2.3836375681855868e-4,1.6986636247061285e-5,-1.3369334013755532e-8,2.3838035533166568e-4,1.701905501777484e-5,-1.33728675782703e-8,2.383895323005555e-4,1.6967478698558967e-5,-1.3366467989198284e-8,2.38422070556946e-4,1.6834089647268072e-5,-1.3350197399653409e-8,2.3850556570700744e-4,1.6633066038275236e-5,-1.3325545739040455e-8,2.3866072662191243e-4,1.6388979589520194e-5,-1.32952356240298e-8,2.3889832942241776e-4,1.613376763873816e-5,-1.3262897145540119e-8,2.3921726251748584e-4,1.5902571416136462e-5,-1.3232645062727092e-8,2.3960391772207974e-4,1.5728837101970084e-5,-1.3208572512056224e-8,2.4003306897066437e-4,1.5639090729009958e-5,-1.3194159292205045e-8,2.4047031694471747e-4,1.5647770280759835e-5,-1.3191601366742145e-8,2.408763192909911e-4,1.5752441997243236e-5,-1.320109658813078e-8,2.4121332685415593e-4,1.593012198481269e-5,-1.3220221033409507e-8,2.414543324312317e-4,1.6136500786482835e-5,-1.3243695130072412e-8,2.4159379503856346e-4,1.631092961927605e-5,-1.3263965868818756e-8,2.416563493402631e-4,1.6389819439386743e-5,-1.327294423034196e-8,2.416971351728686e-4,1.6327839253466488e-5,-1.3264745691624821e-8,2.4178793488179986e-4,1.611933231700696e-5,-1.323839068662466e-8,2.4199092390150611e-4,1.580664719687679e-5,-1.3198809867441091e-8,2.4233282522947923e-4,1.546635588883893e-5,-1.315515486800695e-8,2.42795161206397e-4,1.5179028049018296e-5,-1.3117189496490207e-8,2.4332560646111933e-4,1.5000197877739287e-5,-1.3091844309906427e-8,2.4386095630435782e-4,1.494730909943296e-5,-1.3081612462610715e-8,2.443476230301867e-4,1.5004081626133282e-5,-1.3084945993000656e-8,2.447521154769013e-4,1.513382584235183e-5,-1.3097713318885834e-8,2.4506227529865664e-4,1.529290726155764e-5,-1.3114741963102495e-8,2.4528352222681816e-4,1.5440210476210758e-5,-1.3130971246521739e-8,2.454337577216843e-4,1.554235342838633e-5,-1.3142157207141877e-8,2.4553879145722154e-4,1.5576059836117717e-5,-1.3145250706278301e-8,2.456286535961741e-4,1.5529165859651303e-5,-1.313858102750454e-8,2.4573440156436537e-4,1.5401067537156352e-5,-1.312192399297445e-8,2.4588495016140917e-4,1.5202739157127264e-5,-1.3096479904399723e-8,2.4610367254958987e-4,1.4956012999883382e-5,-1.3064759078539774e-8,2.4640490122437197e-4,1.4691580503364029e-5,-1.3030343464314749e-8,2.467909300514352e-4,1.444531172938255e-5,-1.299749108332309e-8,2.472503716788958e-4,1.4252978327617077e-5,-1.2970574858005676e-8,2.4775861981413225e-4,1.4143991993889015e-5,-1.2953383025503955e-8,2.482808292580495e-4,1.4135196216785739e-5,-1.2948356913590524e-8,2.4877732410946555e-4,1.4225995061342692e-5,-1.295589775406787e-8,2.492108317402965e-4,1.439598151292376e-5,-1.297390984283666e-8,2.495546496005041e-4,1.4605934664835293e-5,-1.2997753852338253e-8,2.4980058126312243e-4,1.4802976706468473e-5,-1.3020791083393111e-8,2.499648122532091e-4,1.4930522578149964e-5,-1.3035648974352602e-8,2.500889719183307e-4,1.4942625206491755e-5,-1.3036141981384923e-8,2.502332948927713e-4,1.4819937637970325e-5,-1.301942657528763e-8,2.5046053996871437e-4,1.458121681939785e-5,-1.2987549154608683e-8,2.508142835955966e-4,1.4282610184457833e-5,-1.294739872783118e-8,2.513011655620707e-4,1.4000896174505066e-5,-1.2908626141535389e-8,2.5188749805877945e-4,1.3806467779425598e-5,-1.288027326783674e-8,2.5251290861910285e-4,1.3739666020847875e-5,-1.286777210466249e-8,2.531129543478528e-4,1.3801980509944972e-5,-1.2871727408598455e-8,2.5363851477171943e-4,1.3963248403024858e-5,-1.288867324663838e-8,2.5406475771490327e-4,1.4177059797621997e-5,-1.2912910633960826e-8,2.543902585935145e-4,1.4395467555977205e-5,-1.2938351134914312e-8,2.5463093937902145e-4,1.457846819591566e-5,-1.295977796036463e-8,2.54813136638039e-4,1.4698160028561238e-5,-1.2973461632588474e-8,2.54967981581639e-4,1.4739503755468211e-5,-1.2977324579518188e-8,2.551274405562864e-4,1.4699654562096109e-5,-1.2970877284779953e-8,2.5532142348084824e-4,1.4587027197628657e-5,-1.2955077061468487e-8,2.5557518672666003e-4,1.4420380583572636e-5,-1.2932175481281603e-8,2.5590650103593743e-4,1.4227567224019883e-5,-1.2905548350362233e-8,2.5632253366152845e-4,1.4043212860365394e-5,-1.287943866108471e-8,2.568170361656435e-4,1.3904585536052271e-5,-1.285851192094646e-8,2.5736901125437294e-4,1.384542362248093e-5,-1.2847155402873307e-8,2.5794421239109947e-4,1.388843946076878e-5,-1.2848556465930347e-8,2.5850035030317047e-4,1.403829277109537e-5,-1.2863749847957166e-8,2.589956924459188e-4,1.4277505943607658e-5,-1.2890953907157057e-8,2.5939924357184515e-4,1.4567459494134127e-5,-1.2925525776831505e-8,2.596996993209261e-4,1.4855178454192225e-5,-1.2960705554380696e-8,2.5991041763439313e-4,1.5084813281586183e-5,-1.2989066766874659e-8,2.6006856585053105e-4,1.5211326349834672e-5,-1.3004361087109885e-8,2.602278725687631e-4,1.5213126500508729e-5,-1.3003294012197764e-8,2.6044583194747623e-4,1.5100107540589441e-5,-1.2986715711409487e-8,2.607678954750293e-4,1.4913817381501574e-5,-1.2959760458590743e-8,2.6121309337834975e-4,1.471789554231206e-5,-1.2930675613196354e-8,2.617666739936158e-4,1.4580147819581488e-5,-1.2908507750034461e-8,2.623838952785086e-4,1.4551998820653167e-5,-1.2900372867353652e-8,2.6300436611455946e-4,1.465364176688067e-5,-1.2909389577639032e-8,2.6357084573760297e-4,1.4871017273617807e-5,-1.293411963262422e-8,2.640443869669923e-4,1.5164543154651873e-5,-1.2969586613798102e-8,2.64410737769705e-4,1.548385098723045e-5,-1.3009177614068972e-8,2.6467821443590807e-4,1.5781554620764703e-5,-1.304650817055167e-8,2.648707916531887e-4,1.602193715049497e-5,-1.3076659266674922e-8,2.650204220774552e-4,1.6184189121099728e-5,-1.309668323525758e-8,0.00026516090400317593,1.626199634794566e-5,-1.3105583832666333e-8,2.653238016446657e-4,1.626157432670227e-5,-1.3104045518856175e-8,2.6553584872296177e-4,1.619953400725645e-5,-1.3094120073806924e-8,2.6581694404772865e-4,1.6101034287601604e-5,-1.3078966785871532e-8,2.6617803512994057e-4,1.599792643257314e-5,-1.3062635061321467e-8,2.666186743112128e-4,1.5926127147520803e-5,-1.3049789195619948e-8,2.671247177812508e-4,1.5921303481340893e-5,-1.3045222202262528e-8,2.6766743265218185e-4,1.6012313493671894e-5,-1.3053032308258361e-8,2.682058449019524e-4,1.6212993883764293e-5,-1.3075494404843321e-8,2.6869381754198406e-4,1.6514662380160417e-5,-1.3111934310112453e-8,2.690915392547794e-4,1.688312459406304e-5,-1.3158158531168263e-8,2.693782808806831e-4,1.726356887424719e-5,-1.3206971608799833e-8,2.695612194819721e-4,1.7593764377538284e-5,-1.3249899145305468e-8,2.696757969225932e-4,1.7821710710339604e-5,-1.3279603194733367e-8,2.697766262792751e-4,1.7921174890309415e-5,-1.3292069257397106e-8,2.699221571586634e-4,1.7899381168918985e-5,-1.3287759748585721e-8,2.701585140051222e-4,1.7794662659770487e-5,-1.3271427248333769e-8,2.7050743193193414e-4,1.7665574219650932e-5,-1.3250774476406711e-8,2.70961263500747e-4,1.7575149467220522e-5,-1.3234415117476824e-8,2.714859046544607e-4,1.7574737909080554e-5,-1.3229680863399421e-8,2.7203052331977687e-4,1.769170100835547e-5,-1.324083414757745e-8,2.7254117585821244e-4,1.7924189075479015e-5,-1.3268167506586092e-8,2.729741997691505e-4,1.8244128847031433e-5,-1.3308232751599827e-8,2.733054105239225e-4,1.860683481743521e-5,-1.335506308671976e-8,2.7353289682521516e-4,1.896345349760831e-5,-1.3401893664246537E-08,2.73673842637392e-4,1.9271996265799993e-5,-1.3442759869942829e-8,2.737578282615282e-4,1.9504213337008058e-5,-1.3473535503050086e-8,2.738194967147241e-4,1.9647848480923535e-5,-1.3492301040760689e-8,2.7389256852830313e-4,1.9705491001702175e-5,-1.3499197079042159e-8,2.740058704701865e-4,1.9691777654711647e-5,-1.3496023246278775e-8,2.741810262902575e-4,1.9630334079578346e-5,-1.3485807494797274e-8,2.744310131178127e-4,1.9551058078948304e-5,-1.347245824705066e-8,2.747588655876082e-4,1.948759434125028e-5,-1.3460484076347776e-8,2.7515620852405575e-4,1.9474357175009086e-5,-1.3454669802832967e-8,2.7560192124283077e-4,1.954221941430565e-5,-1.3459536895858992e-8,2.760620815654129e-4,1.9712188518429024e-5,-1.3478446229307413e-8,2.764931140341487e-4,1.998747860898367e-5,-1.3512381587099931e-8,2.768499825458415e-4,2.0346447047745347e-5,-1.3558791588758346e-8,2.7709934818909317e-4,2.0740975236487897e-5,-1.3611211001438215e-8,2.7723376707050325e-4,2.1104902391710272e-5,-1.3660381144345922e-8,2.7727951721184677e-4,2.1372977512600064e-5,-1.3696942301516698e-8,2.7729156569639065e-4,2.150364337470411e-5,-1.371469511192883e-8,2.7733590146886866e-4,2.1494482605572527e-5,-1.3712813986364758e-8,2.7746730910535865e-4,2.1382407878183956e-5,-1.3695935779833347e-8,2.777129170467314e-4,2.1229571564400812e-5,-1.3672319050985458e-8,2.7806720281447627e-4,2.1102980963536406e-5,-1.3651166775522754e-8,2.7849753778370835e-4,2.105639774177976e-5,-1.3640203101975407e-8,2.7895571606205595e-4,2.1119312740397868e-5,-1.36440855384151e-8,2.7939082054513723e-4,2.129380639205303e-5,-1.3663777942921247e-8,2.797602560487331e-4,2.155785003144518e-5,-1.3696778046641539e-8,2.8003725820557e-4,2.1872858482824725e-5,-1.3738005196123418e-8,2.802142004107094e-4,2.219328394309847e-5,-1.3781099702460829e-8,2.8030175709160225e-4,2.2476143948988695e-5,-1.381982555271776e-8,2.8032472939190016e-4,2.268859947612066e-5,-1.3849251125167231e-8,2.803159812312574e-4,2.2812371570131774e-5,-1.386647093141835e-8,2.803101183459111e-4,2.2844791364820303e-5,-1.387080182051307e-8,2.8033821087907477e-4,2.2797146171930603e-5,-1.3863552789390385e-8,2.8042420340903043e-4,2.2691458727297488e-5,-1.3847561307081722e-8,2.8058292600206835e-4,2.2556824850266946e-5,-1.3826691726476474e-8,2.8081916298474405e-4,2.2425953925453616e-5,-1.3805403994071266e-8,2.8112721903985157e-4,2.2331951025042324e-5,-1.3788383591687185e-8,2.8149066344888076e-4,2.2304951530066296e-5,-1.3780134438421739e-8,2.8188238547674434e-4,2.2367947560152177e-5,-1.3784386060479597e-8,2.822658721965546e-4,2.2531246589409013e-5,-1.380320444288144e-8,2.8259936195518845e-4,2.278597036190299e-5,-1.38358812243578e-8,2.828444569445365e-4,2.3098866508920356e-5,-1.3877999412904191e-8,2.82979105364523e-4,2.341279564136978e-5,-1.3921401485040897e-8,2.8301103748081484e-4,2.3657751771110462e-5,-1.3955814384309308e-8,2.8298340770177647e-4,2.37731328817469e-5,-1.3972176264270338e-8,2.8296484207766603e-4,2.3733029889624773e-5,-1.3966353021702428e-8,2.830249037760498e-4,2.3559828091315065e-5,-1.3941085550751729e-8,2.832073180871705e-4,2.331632681640619e-5,-1.3904875495648811e-8,2.8351576155621184e-4,2.308077284889224e-5,-1.3868553787955135e-8,2.8391769853862014e-4,2.2919547763551398e-5,-1.384157822144315e-8,2.8436019434869387e-4,2.287017449835268e-5,-1.3829694080640847e-8,2.847876469600927e-4,2.2937814065198065e-5,-1.3834319348602738e-8,2.8515485284144533e-4,2.3101223801610495e-5,-1.3853146215244e-8,2.85433793371567e-4,2.332264590269975e-5,-1.3881308460203237e-8,2.856153143340677e-4,2.3557815709961442e-5,-1.3912679492992264e-8,2.857074693224336e-4,2.3764383273789843e-5,-1.3941085356826256e-8,2.8573186713930584e-4,2.390828726211465e-5,-1.3961325891680267e-8,2.857188696819171e-4,2.39679560926046e-5,-1.3969911360196299e-8,2.8570231452007376e-4,2.3936257400670855e-5,-1.3965439487283113e-8,2.857144182944666e-4,2.382028199606721e-5,-1.394860030825303e-8,2.8578147687363805e-4,2.3639260037550102e-5,-1.3921869960500952e-8,2.8592084201393037e-4,2.342114432945347e-5,-1.3889012634409748e-8,2.8613931356911184e-4,2.3198585473751224e-5,-1.3854531958188717e-8,2.864327166543551e-4,2.3004883616430312e-5,-1.3823159470958645e-8,2.867863494363946e-4,2.2870125806672398e-5,-1.3799380523453057e-8,2.8717609388622425e-4,2.2817452101605205e-5,-1.378693317459741e-8,2.8757018441867614e-4,2.2859200077940465e-5,-1.378819562942302e-8,2.8793216925267906e-4,2.2992674449651844e-5,-1.3803413833910311e-8,2.8822619040308e-4,2.3196048522297792e-5,-1.3829891060439484e-8,2.8842548394305867e-4,2.3426397377221117e-5,-1.386152544402009e-8,2.885234854253173e-4,2.362330839766609e-5,-1.3889296541301406e-8,2.885438986592403e-4,2.3721722641275258e-5,-1.3903263102308176e-8,2.885424114376653e-4,2.3674183477913317e-5,-1.3896003696172715e-8,2.885929118709168e-4,2.3474313471584593e-5,-1.3866152311867126e-8,2.8875979009874574e-4,2.316637368653028e-5,-1.3819777847051538e-8,2.890704395776163e-4,2.283074746827438e-5,-1.3768264842029872e-8,2.895049885128943e-4,2.2551813469805068e-5,-1.3723757443181604e-8,2.900082669629545e-4,2.2387357101861408e-5,-1.3694865214262721e-8,2.9051374253208817e-4,2.235489612947439e-5,-1.36846867449533e-8,2.909649021340734e-4,2.2436103025525936e-5,-1.3691271872221072e-8,2.9132650488845045e-4,2.2590621258034392e-5,-1.3709370985045623e-8,2.9158637691061105e-4,2.2770429252790272e-5,-1.3732329579321405e-8,2.917517969683068e-4,2.2930448877807925e-5,-1.3753577653967498e-8,2.9184401188628566e-4,2.303489006955536e-5,-1.3767628184703838e-8,2.918927671925494e-4,2.3060445344766418e-5,-1.3770682898745772e-8,2.919314014291164e-4,2.299749274559909e-5,-1.3760937852867262e-8,2.9199247847638013e-4,2.2849926468667013e-5,-1.3738629102849638e-8,2.921039092862608e-4,2.2633834466347406e-5,-1.370584503210565e-8,2.92285666948327e-4,2.2375057960451114e-5,-1.3666144851793793e-8,2.925473850976914e-4,2.2105676829510934e-5,-1.3624037426111123e-8,2.9288716836903646e-4,2.185972836237773e-5,-1.3584395520403735e-8,2.93291734444017e-4,2.1668667070356885e-5,-1.355186975838904e-8,2.937378250344291e-4,2.1556973898122735e-5,-1.3530315087571015e-8,2.941947974500097e-4,2.1538210800188506e-5,-1.3522214675142932e-8,2.9462828965697827e-4,2.161178421989162e-5,-1.3528102494893166e-8,2.950049836659742e-4,2.176062612107966e-5,-1.3546028771640402e-8,2.9529877895283186e-4,2.1950341406551685e-5,-1.3571220417731373e-8,2.95498425036084e-4,2.2131299035723218e-5,-1.3596256341667975e-8,2.956153580837951e-4,2.22458472466366e-5,-1.361215968484941e-8,2.9568840667843486e-4,2.224225736534045e-5,-1.3610641296881544e-8,2.957800686939963e-4,2.2093977823393965e-5,-1.3587181550703598e-8,2.9595999348482825e-4,2.181678085271199e-5,-1.3543713834794471e-8,2.9627849161117025e-4,2.1471574018712877e-5,-1.3489060449153417e-8,2.9674319322068856e-4,2.1145294614123724e-5,-1.343609251827474e-8,2.9731425733706953e-4,2.09172161107864e-5,-1.3396774613550436e-8,2.9792187015270356e-4,2.082994835974585e-5,-1.3377886272534408e-8,2.984942122206886e-4,2.0880413673918396e-5,-1.3379586077781747e-8,2.989796522647844e-4,2.1030612573302552e-5,-1.3396809617098212e-8,2.993552928593664e-4,2.1226817991504233e-5,-1.3421929704689853e-8,2.9962420917402626e-4,2.141632957853267e-5,-1.3447160232838052e-8,2.998076048709863e-4,2.155742331817498e-5,-1.3466074608348756e-8,2.999366508951447e-4,2.162322261659597e-5,-1.3474303011588651e-8,3.0004605342871587e-4,2.160194083120627e-5,-1.3469704117491014e-8,3.001694758979349e-4,2.1495566477339442e-5,-1.3452259987949643e-8,3.003361714790454e-4,2.131801033581268e-5,-1.34238210598226e-8,3.00568250260884e-4,2.109291783629834e-5,-1.3387751649168571e-8,3.0087835205456256e-4,2.0850953582104578e-5,-1.3348491679679161e-8,3.012678716217725e-4,2.062624812724149e-5,-1.3311032550608233e-8,3.0172620046434173e-4,2.045193589878053e-5,-1.3280308792564854e-8,3.0223147737772435e-4,2.0355180263715515e-5,-1.3260534503027968e-8,3.027530905670879e-4,2.03523675046193e-5,-1.3254528922034592e-8,3.0325589739471393e-4,2.0445234386801097e-5,-1.326309141038214e-8,3.0370584098537583e-4,2.061873537337817e-5,-1.3284535301274032e-8,3.0407635475241393e-4,2.084132023298335e-5,-1.3314523112149486e-8,3.043548220950259e-4,2.106807932262644e-5,-1.334635951759101e-8,3.0454817712909907e-4,2.1247259597402573e-5,-1.337190847136496e-8,3.0468606841306306e-4,2.1330590886984806e-5,-1.338324729373875e-8,3.048190993710789e-4,2.1286814653441683e-5,-1.337492842426596e-8,3.0500947292813136e-4,2.1115405047104646e-5,-1.3346293728374482e-8,3.0531334240780847e-4,2.0854333144826318e-5,-1.330280661991811e-8,3.0575933228971686e-4,2.057446009779354e-5,-1.3255246543245369e-8,3.063336126043048e-4,2.035786012500672e-5,-1.3216390908366007e-8,3.0698195437051866e-4,2.0267933422058764e-5,-1.3196404367399528e-8,3.076297906607286e-4,2.0326989761099988e-5,-1.3199302777510673e-8,3.0820929098613465e-4,2.051301152374637e-5,-1.3222284594361782e-8,3.086790667643346e-4,2.0774250916837253e-5,-1.3257795354211066e-8,3.0902959140693113e-4,2.1050411845724763e-5,-1.3296685507824527e-8,3.0927719251130383e-4,2.1289582840270976e-5,-1.3330825505471842e-8,3.0945357058928e-4,2.145674944124067e-5,-1.33545105445674e-8,3.095961699201846e-4,2.153531284308726e-5,-1.3364818313685573e-8,3.0974146708267824e-4,2.152488868920895e-5,-1.3361368767381744e-8,3.0992097203242546e-4,2.1438017800151246e-5,-1.3345858365688848e-8,3.1015887202686857e-4,2.1297039816659653e-5,-1.3321563576426557e-8,3.1047036154725256e-4,2.1131275414374563e-5,-1.3292871575557973e-8,3.1086020309551777e-4,2.0974113615666323e-5,-1.3264820449894448e-8,0.00031132159469673937,2.0859458460963544e-5,-1.3242589706398116e-8,3.118358892299663e-4,2.08172018406579e-5,-1.3230876462418405e-8,3.123739556176808e-4,2.0867961619606607e-5,-1.3233145002595053e-8,3.1289980273878425e-4,2.1017999708571363e-5,-1.3250835029635484e-8,3.133765322075633e-4,2.1255710514705023e-5,-1.3282711917019378e-8,3.1377389441996034e-4,2.1551170659549085e-5,-1.332461455740315e-8,3.1407592571305155e-4,2.1859774047728385e-5,-1.3369828669154369e-8,3.1428671803730246e-4,2.212997996013805e-5,-1.3410177045357869e-8,3.14432506824964e-4,2.2314131680739853e-5,-1.3437721540724634e-8,3.1455876362506394e-4,2.2380463429616143e-5,-1.3446783871977407e-8,3.1472170043465105e-4,2.2323641852085563e-5,-1.3435813847370838e-8,3.1497476110345693e-4,2.217044112756572e-5,-1.3408494160108003e-8,3.153526234579617e-4,2.1976994096751363e-5,-1.337345682081832e-8,3.1585774444304715e-4,2.1815602165497123e-5,-1.3342262745022897e-8,3.1645594131746787e-4,2.1753230588716412e-5,-1.332596859353312e-8,3.170852855440563e-4,2.1829339986754936e-5,-1.3331486306519194e-8,3.1767609064744373e-4,2.204329336795916e-5,-1.335938578246327e-8,3.1817307131503856e-4,2.2357437282565592e-5,-1.3404182809004631e-8,3.185496252597622e-4,2.2713150253212193e-5,-1.3456770258106373e-8,3.188097318692035e-4,2.305068096859074e-5,-1.350756753269062e-8,3.1898017607109944e-4,2.3324049974074164e-5,-1.3548973772346303e-8,3.1909924742474843e-4,2.3507561072834535e-5,-1.3576520061523686e-8,3.192068961684871e-4,2.359541331330978e-5,-1.3588911123510958e-8,3.1933831976116504e-4,2.3597783076813762e-5,-1.358746123971623e-8,3.1952065880791903e-4,2.3536160980096142e-5,-1.3575362908229614e-8,3.19771579080949e-4,2.3439311888661372e-5,-1.3557025218592592e-8,3.200985885643759e-4,2.3340011786561243e-5,-1.3537543756519094e-8,3.2049846336595103e-4,2.3272031254568778e-5,-1.3522245412330314e-8,3.2095680118528186e-4,2.3266656684082567e-5,-1.3516194501257755e-8,3.214482960990994e-4,2.3348264536126095e-5,-1.3523546070473995e-8,3.219387035953197e-4,2.352905494166589e-5,-1.3546710031825095e-8,3.2238945173181284e-4,2.3803973484541637e-5,-1.3585453917150966e-8,3.2276517284783867e-4,2.414782235178386e-5,-1.3636274656717374e-8,3.2304300787259485e-4,2.4516917684648338e-5,-1.369247871891746e-8,3.2322093588827404e-4,2.4856694790520883e-5,-1.374527463790208e-8,3.2332167991338466e-4,2.5114409674883268e-5,-1.3785796286515207e-8,3.233897052011945e-4,2.525357146846435e-5,-1.3807516666649438e-8,3.2348120921461983e-4,2.5265406266578555e-5,-1.3808261001094046e-8,3.2364963922767976e-4,2.5173284625345988e-5,-1.3791120413398418e-8,3.2393091613960477e-4,2.5028248522414485e-5,-1.3763924450587002e-8,3.243327110819311e-4,2.489645279708152e-5,-1.3737355303383892e-8,3.2483114194985555e-4,2.4841661933600615e-5,-1.3722151158493351e-8,3.253764637315329e-4,2.4907661106982096e-5,-1.3726145974744325e-8,3.2590667505080653e-4,2.5106163518978407e-5,-1.3752074004335538e-8,3.263648743232834e-4,2.5414592771149465e-5,-1.3796943801410434e-8,3.267142644419916e-4,2.5784562274762126e-5,-1.3853232512079237e-8,3.2694560655390203e-4,2.6157379978950974e-5,-1.3911368702242648e-8,3.2707552207375036e-4,2.64802029079398e-5,-1.3962446344578679e-8,3.2713809920406574e-4,2.6717260951139974e-5,-1.4000191368277358e-8,3.2717430412455535e-4,2.685395991046812e-5,-1.4021757723105099e-8,3.272230250199076e-4,2.6895095773412356e-5,-1.4027518182301305e-8,3.273154328546555e-4,2.6859988741622723e-5,-1.4020303863838187e-8,3.27472427946398e-4,2.6777052624059808e-5,-1.4004517409235265e-8,3.2770404819257206e-4,2.667917357422416e-5,-1.3985374637999391e-8,3.2800968800751206e-4,2.6600135622202087e-5,-1.396833964272351e-8,3.283784197698704e-4,2.65715822213231e-5,-1.3958675851617953e-8,3.2878934377281676e-4,2.661975357857392e-5,-1.3960963251046796e-8,3.2921252136175277e-4,2.6761429111553565e-5,-1.397844020247438e-8,3.2961152402647006e-4,2.699907821559547e-5,-1.4012129808211943e-8,3.29948753915105e-4,2.7316263206531952e-5,-1.4059921868231094e-8,3.3019401009220286e-4,2.7675690266479282e-5,-1.4116060189696021e-8,3.303348983515174e-4,2.8023052525526852e-5,-1.417164175112956e-8,3.303851664433875e-4,2.8298564869411255e-5,-1.4216501609523993e-8,3.303858174704456e-4,2.845434313568276e-5,-1.4242167403395092e-8,3.303959416014983e-4,2.847131185450436e-5,-1.424477933710207e-8,3.304753311960585e-4,2.8367701265917583e-5,-1.4226626167552076e-8,3.3066574499633107e-4,2.8194592527739406e-5,-1.4195561924860455e-8,3.3097847333721307e-4,2.8020371048836455e-5,-1.4162617817120332e-8,3.3139229136450047e-4,2.7910733393913838e-5,-1.4138840614943994e-8,3.318610576038761e-4,2.7911418740544573e-5,-1.4132437583694847e-8,3.32327158660616e-4,2.8038257552148033e-5,-1.4146944421067845e-8,3.3273630146328536e-4,2.8275956095937735e-5,-1.4180721826563061e-8,3.3304982043797914e-4,2.8584590280257757e-5,-1.4227750741366778e-8,3.332518772704476e-4,2.8911198090895583e-5,-1.4279413650778645e-8,3.3335044303321585e-4,2.9203016014443303e-5,-1.4326720121414798e-8,3.3337264600420897e-4,2.9418844303718548e-5,-1.4362340255230543e-8,3.333565716870711e-4,2.953593528593423e-5,-1.438192328577023e-8,3.333423100299153e-4,2.955156240787833e-5,-1.4384490907506754e-8,3.333646227280616e-4,2.9480245799448394e-5,-1.4372041376989542e-8,3.3344841055820307e-4,2.9348582447400512e-5,-1.434870041016347e-8,3.3360692534264394e-4,2.9189588504290738e-5,-1.4319770705147037e-8,3.338418939605668e-4,2.903780052882538e-5,-1.429092220642219e-8,3.341445478842576e-4,2.8925502238673784e-5,-1.4267598983776846e-8,3.3449686902692956e-4,2.8879716510260736e-5,-1.4254567192028621e-8,3.34872893630502e-4,2.8919305085978387e-5,-1.4255452413328958e-8,3.3524046998712566e-4,2.905162633610626e-5,-1.4272125495191893e-8,3.3556438983591447e-4,2.926868042533546e-5,-1.4303906971243346e-8,3.358120415655983e-4,2.9543700862908523e-5,-1.4346787820191492e-8,3.359620973953016e-4,2.9830621885824582e-5,-1.4393165436296007e-8,3.3601476557872876e-4,3.0069847654572008e-5,-1.4432765793470925e-8,3.3599911919222826e-4,3.020259394749606e-5,-1.4455159337401374e-8,3.3597110300592314e-4,3.019141034190686e-5,-1.4453385307179457e-8,3.35998526488256e-4,3.00380349093956e-5,-1.4427081304578546e-8,3.3613729850181856e-4,2.9787423935761663e-5,-1.4383225010504009e-8,3.3641053011372276e-4,2.9513350056419022e-5,-1.4333808242876725e-8,3.368014006431015e-4,2.9292449987817804e-5,-1.4291641185111276e-8,3.3726185452744576e-4,2.9179980574871958e-5,-1.4266408426820145e-8,3.377303740186198e-4,2.9197037823386694e-5,-1.4262469364142498e-8,3.3814986945613203e-4,2.9330730888683372e-5,-1.427863436126763e-8,3.3848010158714516e-4,2.9543115154846164e-5,-1.4309336642064932e-8,3.38703273259897e-4,2.9783603206552747e-5,-1.4346471770152776e-8,3.388238715787891e-4,3.0001002317025725e-5,-1.4381352417660723e-8,3.388645512106792e-4,3.015313826145052e-5,-1.4406430035573901e-8,3.388596992978482e-4,3.0213214891368453e-5,-1.441656210821404e-8,3.388480896868653e-4,3.0172579589435465e-5,-1.4409671063513486e-8,3.3886595201610624e-4,3.0040010984943417e-5,-1.4386745775937594e-8,3.389415616773652e-4,2.983826465857231e-5,-1.435129353309962e-8,3.3909197448769624e-4,2.9599024245251944e-5,-1.4308467177209232e-8,3.393219732788287e-4,2.935743690567301e-5,-1.4264115645959442e-8,3.396247872186201e-4,2.9147198599977515e-5,-1.4223960274082391e-8,3.3998384944594585e-4,2.8996680396776103e-5,-1.419298232822601e-8,3.4037497978542483e-4,2.8925994092867653e-5,-1.4174970094013113e-8,3.4076876816749476e-4,2.8944576739562157e-5,-1.4172101451461987e-8,3.4113333363185183e-4,2.9048903134653624e-5,-1.4184452613283302e-8,3.4143806830900614e-4,2.9220259014859665e-5,-1.4209426481068721e-8,3.416592313159679e-4,2.942335957385573e-5,-1.4241300071719586e-8,3.4178768959361645e-4,2.9607879560626548e-5,-1.4271351102299056e-8,3.418373350901813e-4,2.971582378240197e-5,-1.4289150939638257e-8,3.4184996084014505e-4,2.9696727082961728e-5,-1.4285356690807156e-8,3.418902633601011e-4,2.952827110856552e-5,-1.425546855762454e-8,3.420270707706498e-4,2.9232745927517535e-5,-1.4202771104298555e-8,3.4230607491550166e-4,2.8876464783064984e-5,-1.4138250014917669e-8,3.4272891522547444e-4,2.8547270391760742e-5,-1.4076783978948293e-8,3.432521860159393e-4,2.8320914566404532e-5,-1.4031512125887654e-8,3.4380643577638096e-4,2.8235399587572567e-5,-1.4009518407800017e-8,3.4432227839255926e-4,2.8284922903914585e-5,-1.4010681330376893e-8,3.4474989405392577e-4,2.8430706232186193e-5,-1.4029244458375631e-8,3.450667007921132e-4,2.8618389049455682e-5,-1.405649452639386e-8,3.4527564357985356e-4,2.879355388007985e-5,-1.4083250375345564e-8,3.453987654829163e-4,2.8912049121438285e-5,-1.4101646097180218e-8,3.45469585268103e-4,2.894525815503267e-5,-1.4106194425210915e-8,3.4552604642457406e-4,2.8881730901118583e-5,-1.4094281874326899e-8,3.4560455047242703e-4,2.8726431535401165e-5,-1.4066215283106948e-8,3.457351529958053e-4,2.84982490045257e-5,-1.4024875511406945e-8,3.459380666037131e-4,2.8226171437823553e-5,-1.397505116091795e-8,3.462216637718113e-4,2.794459723979762e-5,-1.3922581182171141e-8,3.4658209986642525e-4,2.7688322235778394e-5,-1.3873458405560078e-8,3.4700449561030034e-4,2.748781270498401e-5,-1.3833031101689292e-8,3.474653304988083e-4,2.7365322208472776e-5,-1.3805386540778746e-8,3.479355692431911e-4,2.7332084280176915e-5,-1.3792904236856692e-8,3.483841987506852e-4,2.738651159118678e-5,-1.3795909548384521e-8,3.48782076015223e-4,2.7513276120753096e-5,-1.3812375954175199e-8,3.4910623716508923e-4,2.768327317176719e-5,-1.3837706596348546e-8,3.493450066374296e-4,2.785497909947437e-5,-1.3864767635512509e-8,3.4950380428156456e-4,2.7978582520697178e-5,-1.388452258098352e-8,3.496101796449104e-4,2.800470747307293e-5,-1.3887648902006153e-8,3.4971470295323565e-4,2.7898579782032046e-5,-1.3867255990212172e-8,3.498829672228969e-4,2.7657103890016168e-5,-1.3822133605209417e-8,3.5017591926531956e-4,2.7320571946380355e-5,-1.375894735333673e-8,3.5062370726759935e-4,2.6967510508779796e-5,-1.3691352108885298e-8,3.512076836751679e-4,2.668829415482261e-5,-1.3635359280006073e-8,3.518645594543916e-4,2.6549168451208284e-5,-1.3603044848274974e-8,3.525120860381075e-4,2.6567976763254272e-5,-1.359825241655584e-8,3.530801471377777e-4,2.671440633051558e-5,-1.3616465703002289e-8,3.5353016455276417e-4,2.692942938290615e-5,-1.3647971513994665e-8,3.538577002956241e-4,2.7148881753446637e-5,-1.3681795510084634e-8,3.540840771794443e-4,2.7320151877578618e-5,-1.3708567939664234e-8,3.542449634789241e-4,2.740961864282937e-5,-1.372191839944505e-8,3.543805993034693e-4,2.7403434203548572e-5,-1.3718799059739425e-8,3.545289983413223e-4,2.730498627401825e-5,-1.3699233288566783e-8,3.547216624954893e-4,2.7131303055044464e-5,-1.366581028187246e-8,3.5498087228620824e-4,2.690928730173587e-5,-1.3623050830270064e-8,3.5531797095255416e-4,2.6671814970846222e-5,-1.3576675347345746e-8,3.557325408326314e-4,2.6453572621222732e-5,-1.3532810617513158e-8,3.562126332903402e-4,2.628664184351773e-5,-1.3497191162436568e-8,3.5673629776197384e-4,2.619610347960688e-5,-1.3474416118620455e-8,3.5727449108908464e-4,2.6196233744873596e-5,-1.3467331827186608e-8,3.577951171362706e-4,2.628789151186731e-5,-1.3476583429700484e-8,3.582677504977914e-4,2.6457485603445368e-5,-1.3500355686777276e-8,3.5866856083210973e-4,2.667773719840518e-5,-1.3534335889835297e-8,3.58984983565573e-4,2.691031135287597e-5,-1.3571967951946276e-8,3.592197788921785e-4,2.7110381522096033e-5,-1.3605104433755066e-8,3.5939395836391525e-4,2.723347733466807e-5,-1.3625211838772243e-8,3.5954731475294516e-4,2.7245005640118063e-5,-1.3625233122092842e-8,3.5973439287282456e-4,2.7131819567977223e-5,-1.3601941703224978e-8,3.600135954575884e-4,2.6912915110491107e-5,-1.355814290805302e-8,3.60429073295564e-4,2.664325075241653e-5,-1.3503526756102676e-8,3.60990418920039e-4,2.64034696792908e-5,-1.3452835801158697e-8,3.6166146352094975e-4,2.6273775898966717e-5,-1.3421074493356377e-8,3.623688032765512e-4,2.630225709809558e-5,-1.3417659611230746e-8,3.6302889191182174e-4,2.6485921915614753e-5,-1.3442821004948017e-8,3.635787000997205e-4,2.6775836053406942e-5,-1.3488337737398986e-8,3.6399313254539714e-4,2.7100845265447172e-5,-1.3541675775041822e-8,3.6428387361378935e-4,2.739386253867796e-5,-1.3590675845310196e-8,3.644865074909421e-4,2.7608376878739416e-5,-1.3626575377250361e-8,3.6464576613601913e-4,2.7723005292816395e-5,-1.364495582745406e-8,3.6480461555127395e-4,2.77383404850266e-5,-1.3645341642181487e-8,3.6499818740537e-4,2.76710053685678e-5,-1.3630271402829668e-8,3.6525122259954397e-4,2.754788664050142e-5,-1.360432815008887e-8,3.6557730310316335e-4,2.7401492817728636e-5,-1.357329062063108e-8,3.659787553882458e-4,2.72661665993695e-5,-1.3543394730429565e-8,3.6644689750384423e-4,2.7174555417879994e-5,-1.352065178127914e-8,3.669628241382334e-4,2.7153908983776746e-5,-1.3510179030065285e-8,3.674992016602788e-4,2.7222166045638933e-5,-1.3515526234079713e-8,3.68023539090487e-4,2.73843521332642e-5,-1.3538046023492725e-8,3.685030041719975e-4,2.7630228716345682e-5,-1.357642629855776e-8,3.689102801263324e-4,2.793415315314418e-5,-1.362653567100988e-8,3.692294796808659e-4,2.825781083626839e-5,-1.368173224189925e-8,3.694608523244996e-4,2.8555916027981706e-5,-1.3733727733496358e-8,3.6962307871807993e-4,2.8784249160797294e-5,-1.3773978177336275e-8,3.697522993353289e-4,2.8908903102290343e-5,-1.3795451641862713e-8,3.6989731803456434e-4,2.8915385836666257e-5,-1.3794521381371401e-8,3.701106527110447e-4,2.8815745762559872e-5,-1.3772576532502819e-8,3.704358354453675e-4,2.8651045702873957e-5,-1.3736749819577554e-8,3.7089307273516974e-4,2.8486040803253674e-5,-1.369908367506479e-8,3.714679608227572e-4,2.8394043726751596e-5,-1.3673710854101186e-8,3.7210991213757036e-4,2.843405066778115e-5,-1.3672440108961631e-8,3.7274498490128303e-4,2.8628554579815174e-5,-1.3700371291720451e-8,3.733002400374539e-4,2.8953884905579092e-5,-1.375383654447321e-8,3.737283127161456e-4,2.934966667201483e-5,-1.3821992572909582e-8,3.74019840199307e-4,2.9742318752869464e-5,-1.3891158565206442e-8,3.741996113300426e-4,3.0069483883304552e-5,-1.3949424588473654e-8,3.743121974552402e-4,3.0294519375517385e-5,-1.3989456769194334e-8,3.7440629029591007e-4,3.0408720943630665e-5,-1.4009040575435913e-8,3.745237271452724e-4,3.042555417326966e-5,-1.4010137999684472e-8,3.7469432233555345e-4,3.0372415163084517e-5,-1.399745265579277e-8,3.7493481407911624e-4,3.0283392801809747e-5,-1.3977121315336288e-8,3.7524974009757705e-4,3.0194074963467853e-5,-1.3955729687359219e-8,3.7563276072333213e-4,3.013796030115297e-5,-1.3939607838651707e-8,3.7606789752317216e-4,3.014358067755694e-5,-1.3934276197156442e-8,3.765308715945007e-4,3.0231593508346177e-5,-1.394391327502817e-8,3.769911447976581e-4,3.0411553226949515e-5,-1.3970762499094855e-8,3.774153866080384e-4,3.067874957136116e-5,-1.4014505540693484e-8,3.7777276900158004e-4,3.101223988098575e-5,-1.4071785355970582e-8,3.780416881621932e-4,3.137561973052833e-5,-1.4136185048005719e-8,3.782164562994042e-4,3.1721813892388676e-5,-1.4198962795870701e-8,3.7831168136817563e-4,3.2002044707192615e-5,-1.4250643304019193e-8,3.7836207867593326e-4,3.2177378338159576e-5,-1.4283213281041604e-8,3.784166470845473e-4,3.222972568760059e-5,-1.4292338201740607e-8,3.7852801727424653e-4,3.216882097511682e-5,-1.4278915068388991e-8,3.7873941235653586e-4,3.2032643792585974e-5,-1.4249424676350356e-8,3.7907250187723524e-4,3.1880386191779476e-5,-1.4214835935159804e-8,3.79519524138801e-4,3.1778859253417956e-5,-1.4188143257430748e-8,3.800425591675725e-4,3.1785057707013906e-5,-1.4180988668013144e-8,3.8058155833472476e-4,3.192941802742809e-5,-1.420023019579586e-8,3.810702007095623e-4,3.220552703223705e-5,-1.424564138430845e-8,3.814550608339061e-4,3.257118968284767e-5,-1.4309824655516338e-8,3.8171088610531375e-4,3.2961679962287354e-5,-1.4380610992098202e-8,3.818457030615165e-4,3.3310117296884816e-5,-1.444499449135639e-8,3.8189440825249304e-4,3.356630414228731e-5,-1.4492871054400158e-8,3.8190518456659355e-4,3.3706990005561714e-5,-1.4519156100786139e-8,3.8192545511999565e-4,3.3735939536645784e-5,-1.4523932873023375e-8,0.00038199221663132935,3.36770574780388e-5,-1.4511243699103591e-8,3.8212794959808886e-4,3.356532850735636e-5,-1.44874232515469e-8,3.8234068283503006e-4,3.3438964212912564e-5,-1.445961632653455e-8,3.826260695837975e-4,3.333397058547786e-5,-1.4434725361888601e-8,3.8296985541619517e-4,3.328078604508245e-5,-1.4418750654133305e-8,3.8335002714571484e-4,3.3302014460873146e-5,-1.441635218389012e-8,3.837387391287661e-4,3.341034772114456e-5,-1.4430449062814374e-8,3.841046361875188e-4,3.3606223967194986e-5,-1.4461732780659432e-8,3.844163948873668e-4,3.3875453388444264e-5,-1.4508108409027856e-8,3.846481026697538e-4,3.4187920503036706e-5,-1.4564283527851176e-8,3.8478626988731516e-4,3.449926174844078e-5,-1.4621926226168586e-8,3.8483677916458626e-4,3.475742957885683e-5,-1.4670832194101453e-8,3.8482854708888275e-4,3.491455839733871e-5,-1.4701226812136726e-8,3.8481043392111564e-4,3.4941584971485933e-5,-1.4706695752866484e-8,3.8484010168733006e-4,3.484013825587449e-5,-1.468664371357169e-8,3.8496755452253895e-4,3.464574228765504e-5,-1.4647105606473425e-8,3.852194666708856e-4,3.4419635873436564e-5,-1.4599384135326243e-8,3.8559051584685747e-4,3.4231768838361375e-5,-1.4556966089518085e-8,3.8604470174984556e-4,3.4141257634779535e-5,-1.4531832281699271e-8,3.8652549596401316e-4,3.4180796113487486e-5,-1.4531324827219252e-8,3.8697101818921484e-4,3.434917801281351e-5,-1.4556386882613265e-8,3.8732970092140794e-4,3.461318978913546e-5,-1.4601550234372074e-8,3.875723463890504e-4,3.491766325493246e-5,-1.4656605918405712e-8,3.8769763284319733e-4,3.5200524303996284e-5,-1.4709446876581307e-8,3.8772997811639925e-4,3.540841369879993e-5,-1.474921260370285e-8,3.877109937265693e-4,3.550840337825738e-5,-1.476877406003373e-8,3.8768778169230556e-4,3.5492866851361164e-5,-1.476588786722735e-8,3.877020190388187e-4,3.5377264492801586e-5,-1.4742916279944912e-8,3.8778272420060984e-4,3.519311331097323e-5,-1.4705540490345767e-8,3.8794354267678884e-4,3.497940485725285e-5,-1.4661111679795208e-8,3.88183621815305e-4,3.4775082366194856e-5,-1.4617171125102894e-8,3.8849040862005046e-4,3.4613774624727124e-5,-1.4580401934381552e-8,3.888429039948693e-4,3.452069902788002e-5,-1.4556015515333534e-8,3.8921458948142855e-4,3.45109299576898e-5,-1.4547412738969088e-8,3.8957597873680495e-4,3.4588150401447517e-5,-1.455591709815627e-8,3.8989728274007056e-4,3.474336635341969e-5,-1.4580440622513306e-8,3.9015195396758514e-4,3.495368121352255e-5,-1.4617090694513199e-8,3.9032177735499337e-4,3.5182101792084835e-5,-1.4658947568485471e-8,3.9040340540185385e-4,3.5380277120652675e-5,-1.4696467881042956e-8,3.904146306630224e-4,3.549631641986946e-5,-1.4719008759851094e-8,3.903967427080332e-4,3.548836893154207e-5,-1.4717615696219794e-8,3.9040860609677376e-4,3.534095270614115e-5,-1.468840935651692e-8,3.905107938530057e-4,3.507658782265891e-5,-1.4635025503981219e-8,3.9074435561294203e-4,3.4754301960084933e-5,-1.4568447883446436e-8,3.911142837911334e-4,3.445237060488615e-5,-1.4503769375063293e-8,3.915867065914306e-4,3.4242280516138355e-5,-1.4455241755727162e-8,3.9210098851033884e-4,3.416630020580259e-5,-1.4431921054112957e-8,3.9258978921974933e-4,3.42277415173893e-5,-1.4435583191215956e-8,3.92997891960016e-4,3.43949587943332e-5,-1.446115512515839e-8,3.9329397995157005e-4,3.4614214184008465e-5,-1.4498870429778417e-8,3.934741228294369e-4,3.482529654460197e-5,-1.4537116508416524e-8,3.935585439745504e-4,3.497539271070658e-5,-1.456516089516988e-8,3.935841244453831e-4,3.502882428209544e-5,-1.4575248316469991e-8,3.935950084123615e-4,3.497180118274077e-5,-1.4563798423281858e-8,3.9363335905265697e-4,3.4812268755863353e-5,-1.453161028551469e-8,3.9373196934599825e-4,3.457567997812712e-5,-1.4483168817569692e-8,3.9390985158140024e-4,3.4298244121273065e-5,-1.442534785326174e-8,3.941710735045695e-4,3.401951202215226e-5,-1.4365908871774454e-8,3.945062887672119e-4,3.377587091359689e-5,-1.431215883946541e-8,3.948959058166358e-4,3.3595868201667825e-5,-1.4269990715109863e-8,3.9531378332501087e-4,3.34975018387911e-5,-1.4243345355196083e-8,3.95730734118531e-4,3.348697905005418e-5,-1.4233969882786683e-8,3.9611767962868447e-4,3.3558268125866676e-5,-1.424129255710753e-8,3.964487102877791e-4,3.3693000306870486e-5,-1.4262290516375536e-8,3.9670457560232427e-4,3.386072530925677e-5,-1.429136009013897e-8,3.96877142245794e-4,3.402026478479182e-5,-1.4320404114221407e-8,3.96974675963087e-4,3.412377428846557e-5,-1.433955280018419e-8,3.970263033690597e-4,3.412534347773198e-5,-1.4338948576893425e-8,3.970821930901893e-4,3.3994646882125137E-05,-1.4311677516442803e-8,3.972051269460485e-4,3.373258641401384e-5,-1.4257126814339408e-8,3.9745171697619185e-4,3.3380857036472385e-5,-1.4183048350455968e-8,3.9784887548471545e-4,3.3015677815108926e-5,-1.4104376616313594e-8,3.983784208606685e-4,3.272315572911758e-5,-1.4038376360391643e-8,3.989810077392129e-4,3.2567028222608205e-5,-1.3998275239165507e-8,3.995784033932848e-4,3.256650678484111e-5,-1.3988808427858587e-8,4.001011450991133e-4,3.269479846358877e-5,-1.4005705396679457e-8,4.0050766556828905e-4,3.2894820685850835e-5,-1.4038489709830286e-8,4.0078956955466436e-4,3.310064022337845e-5,-1.407446327281956e-8,4.0096621978551547e-4,3.325505206119748e-5,-1.4102093289319672e-8,4.010745404447036e-4,3.3319672146671645e-5,-1.4113112716440347e-8,4.0115849496576356e-4,3.3278246778498246e-5,-1.4103416685224999e-8,4.0126036221118603e-4,3.3135359116825646e-5,-1.4073080729645138e-8,4.014143685471576e-4,3.291243375807629e-5,-1.4025773677232568e-8,4.0164265136440953e-4,3.264223661405534e-5,-1.3967743564302586e-8,4.019534608500238e-4,3.236272447032621e-5,-1.390655605379301e-8,4.023414451750576e-4,3.211102729665613e-5,-1.3849797898036786e-8,4.0278971307670453e-4,3.191824538468825e-5,-1.3803953237611915e-8,4.032731686233601e-4,3.18056089510052e-5,-1.3773602883065726e-8,4.037624347508987e-4,3.178228329803735e-5,-1.376099772735688e-8,4.0422776760387706e-4,3.184466222614487e-5,-1.3765925422093045e-8,4.0464271102872616e-4,3.1976751617668895e-5,-1.3785736315062855e-8,4.049875078121135e-4,3.2151373504918296e-5,-1.3815449042655647e-8,4.0525242347578963e-4,3.2332175019236376e-5,-1.3847964962952615e-8,4.0544119121250843e-4,3.2476862419152035e-5,-1.3874561986942388e-8,4.05574305140568e-4,3.254270756363941e-5,-1.3885979640020726e-8,4.0569066632959827e-4,3.249544686392352e-5,-1.3874369128060043e-8,4.0584474135106326e-4,3.232141920233108e-5,-1.3836033795223245e-8,4.060959597117366e-4,3.203981711665866e-5,-1.3774198864523915e-8,4.0648944202457856e-4,3.170776499799547e-5,-1.3700205970255192e-8,4.070339380710125e-4,3.14094387988266e-5,-1.3631320248747382e-8,4.076901544592694e-4,3.122757281338524e-5,-1.3584880382566213e-8,4.083808447150242e-4,3.1209812559531696e-5,-1.357136683146307e-8,4.090200221087287e-4,3.1349995147856346e-5,-1.3590446140588086e-8,4.0954443123187515e-4,3.1595103343674464e-5,-1.3632168430282483e-8,4.099303837683666e-4,3.187049880203468e-5,-1.3681872256090355e-8,4.101918277261662e-4,3.210671035463291e-5,-1.3725481876963942e-8,4.103671176469619e-4,3.225608889167277e-5,-1.3752883934071199e-8,4.1050398879131114e-4,3.2297665182539014e-5,-1.3759059927073484e-8,4.106480562172606e-4,3.223425978678608e-5,-1.3743742869076615e-8,4.108359107796797e-4,3.208637535174844e-5,-1.371041895829871e-8,4.1109180515318115e-4,3.188566709771694e-5,-1.366514943234374e-8,4.1142658815250326e-4,3.166901056491771e-5,-1.3615380156688916e-8,4.118380537063425e-4,3.147326545835003e-5,-1.3568790580043022e-8,4.123123872285276e-4,3.1330693322293186e-5,-1.3532246924646132e-8,4.1282660990819755e-4,3.12650855735152e-5,-1.3510937230181173e-8,4.1335194038861985e-4,3.12888232285669e-5,-1.3507759179538763e-8,0.00041385782791872523,3.14012402587035e-5,-1.3523006860697865e-8,4.143162097043059e-4,3.158851800056764e-5,-1.3554343762603742e-8,4.147055736697891e-4,3.182504325345812e-5,-1.3596998591413753e-8,4.150145461827425e-4,3.207610038134238e-5,-1.3644157727172217e-8,4.1524476893370035e-4,3.230183268389632e-5,-1.368759809958973e-8,4.1541284364256985e-4,3.2462481911037404e-5,-1.3718658948585584e-8,4.1555091775811174e-4,3.252513293742975e-5,-1.3729683805619488e-8,4.1570478512098117e-4,3.247211793603926e-5,-1.3715984522395111e-8,4.159276624200048e-4,3.2310116826504505e-5,-1.3678055124053507e-8,4.1626805702971783e-4,3.2076790804311726e-5,-1.3623245822332607e-8,4.167524617387805e-4,3.1839355536118996e-5,-1.3565610929515464e-8,4.173687071937988e-4,3.1679433606488e-5,-1.352271054257597e-8,4.180608672886187e-4,3.166480571656874e-5,-1.3509541984888306e-8,4.187443288713044e-4,3.182021371545731e-5,-1.353221487846181e-8,4.193369682737023e-4,3.211533218369021e-5,-1.3585218588590153e-8,4.1978931227977685e-4,3.247863499575709e-5,-1.3654153761093438e-8,4.2009704087509506e-4,3.282777137229304e-5,-1.3721983897773367e-8,4.202929904690921e-4,3.309778073197644e-5,-1.377490014751364e-8,4.2042859167406205e-4,3.325494568929429e-5,-1.3805267082687721e-8,4.2055631802961126e-4,3.329635406528146e-5,-1.3811685967344244e-8,4.207187075410816e-4,3.324181570289828e-5,-1.3797529601781316e-8,4.209438553744661e-4,3.312430221578908e-5,-1.376914696052265e-8,4.212450114021482e-4,3.29820290127452e-5,-1.3734307231289387e-8,4.2162200611876914e-4,3.285276439909095e-5,-1.3700985550654417e-8,4.220632466273461e-4,3.276974175556986e-5,-1.3676406563612262e-8,4.225479806825113e-4,3.275847057478871e-5,-1.3666274054639809e-8,4.2304896717371235e-4,3.283409778896946e-5,-1.367416405793029e-8,4.23535782825238e-4,3.299935006506142e-5,-1.3701088573561653e-8,4.2397886988324306e-4,3.3243478824476034e-5,-1.374527589841765e-8,4.2435406637511227e-4,3.354279531934157e-5,-1.3802236076034794e-8,4.246470102477941e-4,3.3863147891369016e-5,-1.3865160722445153e-8,4.248566904943515e-4,3.4164346787876715e-5,-1.392568757735148e-8,4.249974307882397e-4,3.4406249583597606e-5,-1.3975043403899051e-8,4.2509869023787635e-4,3.455590008719841e-5,-1.4005525482322397e-8,4.252022353167417e-4,3.4594902384809774e-5,-1.4012200930378964e-8,4.2535628227180944e-4,3.452606191561703e-5,-1.3994602436161527e-8,4.2560627053101944e-4,3.437774195887487e-5,-1.3957997791203556e-8,4.259826655671023e-4,3.42033544248866e-5,-1.3913552496987838e-8,4.2648812302165757e-4,3.407288572264099e-5,-1.3876612700332113e-8,4.2708920644435e-4,3.405490071168592e-5,-1.3862734860228985e-8,4.2771960286236156e-4,3.419246160656786e-5,-1.388224482934693e-8,4.2829858276369735e-4,3.4483331127508464e-5,-1.39356667397566e-8,4.287591800201008e-4,3.487711132752329e-5,-1.401286696741407e-8,4.2907189221625086e-4,3.529375343362766e-5,-1.4096933853643936e-8,4.2925111181198606e-4,3.5653822332007866e-5,-1.4170691079982273e-8,4.293431436633978e-4,3.590386737424457e-5,-1.422220020649449e-8,4.294057069943159e-4,3.602629900089709e-5,-1.4246968028465437e-8,4.2949028887441184e-4,3.603476243390713e-5,-1.4247107509361492e-8,4.296326637699373e-4,3.596258975350247e-5,-1.422906114426545e-8,4.298507830160587e-4,3.585122067538412e-5,-1.4201284229219959e-8,4.30146821619837e-4,3.574178595192985e-5,-1.4172502101488057e-8,4.305105528179752e-4,3.567004669500458e-5,-1.4150577469349977e-8,4.309225690144668e-4,3.566353502127585e-5,-1.4141794633184363e-8,4.3135708115020477e-4,3.5739694174433475e-5,-1.4150368611616155e-8,4.3178466029482305e-4,3.5904363120716595e-5,-1.4178070671429282e-8,4.321754230960808e-4,3.615055457113382e-5,-1.4223940930016515e-8,4.3250300470527235e-4,3.645801938170371e-5,-1.4284152898436964e-8,4.327492141671965e-4,3.6794455062480333e-5,-1.4352180111878265e-8,4.329086361301494e-4,3.711914037777242e-5,-1.441944170755436e-8,4.329919362284678e-4,3.738922622588004e-5,-1.4476525706585657e-8,4.3302648954548616e-4,3.756805202918171e-5,-1.4514923144055002e-8,4.330533235187689e-4,3.763391300210855e-5,-1.4528989528198715e-8,4.331202330514279e-4,3.7587099620632155e-5,-1.4517675625248134e-8,4.33271953934643e-4,3.7453099149815584e-5,-1.4485529520827118e-8,4.335391170749413e-4,3.728040086638992e-5,-1.4442540122095772e-8,4.3392835970523195e-4,3.713209968463934e-5,-1.4402528788363379e-8,4.344165500758634e-4,3.707165347756771e-5,-1.4380064897967802e-8,4.3495230062594813e-4,3.714511840207765e-5,-1.438637838413005e-8,4.3546692736868404e-4,3.7364868229131036e-5,-1.4425430174624792e-8,4.3589372030768185e-4,3.7701867510223756e-5,-1.4491842764582526e-8,4.361893091351183e-4,3.8092289800798756e-5,-1.4572120153155367e-8,4.3634757852403625e-4,3.8457985039809324e-5,-1.464910812938325e-8,4.363991796352178e-4,3.8732147174392066e-5,-1.4707727290935779e-8,4.3639763452364114e-4,3.887826414780291e-5,-1.4739264857224268e-8,4.364001722647106e-4,3.889525252824335e-5,-1.474263969373984e-8,4.364523016838084e-4,3.881021476354108e-5,-1.4722977299200551e-8,4.365804771433114e-4,3.866556340462599e-5,-1.468896039574687e-8,4.367919722871205e-4,3.8506926413442914e-5,-1.4650297668231218e-8,4.370786669043261e-4,3.837491837753309e-5,-1.4615939698352876e-8,4.3742177567648004e-4,3.8300841711920557e-5,-1.4593067497875068e-8,4.377959505900983e-4,3.830495380523125e-5,-1.4586611379527836e-8,4.3817246361271725e-4,3.839583492266989e-5,-1.4599028669935255e-8,4.385219262133009e-4,3.856996202628723e-5,-1.4630154871815322e-8,4.388172474094774e-4,3.881133934777927e-5,-1.4677068982739351e-8,4.3903736753377824e-4,3.909172438758446e-5,-1.4734059655137036e-8,4.39171785700476e-4,3.9372492362129876e-5,-1.4792916472356046e-8,4.392250878709724e-4,3.9609287825052854e-5,-1.48438349018792e-8,4.392197841418492e-4,3.9760010138741e-5,-1.4877110525214467e-8,4.391952872335693e-4,3.9795215836805176e-5,-1.488546114998337e-8,4.392015028478242e-4,3.9708130526000964e-5,-1.4866368508482124e-8,4.392874740657098e-4,3.9520303226885334e-5,-1.4823547388579492e-8,4.3948798661524503e-4,3.927964654825381e-5,-1.4766788554084115e-8,4.3981252877586845e-4,3.905019462021475e-5,-1.4709963203151688e-8,4.4024057367895406e-4,3.889606668889953e-5,-1.4667637174980205e-8,4.407251019923313e-4,3.886426054421898e-5,-1.465121537204819e-8,4.4120371732378895e-4,3.897130268161372e-5,-1.4665702138134793e-8,4.4161456567829924e-4,3.919776198075389e-5,-1.4708062006301217e-8,4.41912806692747e-4,3.949272215218089e-5,-1.4767828043097781e-8,4.4208268554817335e-4,3.978761101197567e-5,-1.4829982902345276e-8,4.421409699762284e-4,4.001548958358082e-5,-1.4879284623686034e-8,4.421303237867017e-4,4.012928886396741e-5,-1.4904509091663218e-8,4.4210531633417574e-4,4.011254468451751e-5,-1.4901064005645254e-8,4.421168168722615e-4,3.997960143327207e-5,-1.487124044964496e-8,4.422004451507053e-4,3.9767094807069e-5,-1.4822485598136494e-8,4.4237183113721076e-4,3.9521669753076244e-5,-1.4764783122292205e-8,4.426279491665109e-4,3.928881642907068e-5,-1.4708204056709783e-8,4.429518454747351e-4,3.91054375635812e-5,-1.4661205248835662e-8,4.433181067887932e-4,3.899632725145631e-5,-1.4629752573422735e-8,4.436975223791884e-4,3.8973357147412855e-5,-1.4617048273316101e-8,4.4406056405082626e-4,3.903590468819179e-5,-1.4623561502714967e-8,4.4438008650014344e-4,3.91715076460056e-5,-1.4647122090138582e-8,4.446339768961001e-4,3.935646602380224e-5,-1.4682981479505956e-8,4.448083963396037e-4,3.955684978592832e-5,-1.4723927049201846e-8,4.4490177030358924e-4,3.973098128986008e-5,-1.4760714274992125e-8,4.4492878725670593e-4,3.9834759260079374e-5,-1.4783179135015065e-8,4.4492247041699046e-4,3.983068781073579e-5,-1.4782276848273152e-8,4.4493150521741963e-4,3.9699639584905065e-5,-1.4752832416571488e-8,4.4501065268293756e-4,3.945150399211428e-5,-1.4696101798232349e-8,4.452051621230111e-4,3.912878232058367e-5,-1.4620773630123115e-8,4.4553450758414917e-4,3.879851843897706e-5,-1.4541367888067542e-8,4.459831270119789e-4,3.853341144760553e-5,-1.4474199279655483e-8,4.4650334228181737e-4,3.83892962100095e-5,-1.4432428557074345e-8,4.470294963479162e-4,3.838843851633301e-5,-1.4422210720894016e-8,4.474971022466872e-4,3.8514644123259556e-5,-1.4441268698217063e-8,4.4785977033990704e-4,3.872025545847296e-5,-1.4480033042680275e-8,4.480991934681107e-4,3.8940889744311725e-5,-1.4524608121518424e-8,4.48226794522255e-4,3.911257774162124e-5,-1.4560498684405491e-8,4.482780588321118e-4,3.918669829382871e-5,-1.457607889926847e-8,4.4830195410043057e-4,3.913954024565277e-5,-1.4565007306195704e-8,4.483485381147606e-4,3.8974954360315984e-5,-1.4527125710483059e-8,4.484579671969714e-4,3.872030337677846e-5,-1.4467791545713628e-8,4.4865345969394e-4,3.841765061935548e-5,-1.4396030200337683e-8,4.489392960449042e-4,3.811327623924533e-5,-1.4322193270630174e-8,4.4930320331229367e-4,3.7848511485026534e-5,-1.4255821744391228e-8,4.497213338957374e-4,3.765366154702086e-5,-1.4204163537672068e-8,4.5016388935185643e-4,3.7545304813913294e-5,-1.4171463776027224e-8,4.5060002058532647e-4,3.752619081927828e-5,-1.415888242467012e-8,4.5100150770761724e-4,3.758652962581753e-5,-1.4164756572674547e-8,4.5134546376081325e-4,3.7705677615177184e-5,-1.4184941935731645e-8,4.5161665818218725e-4,3.785383751499737e-5,-1.4213111016563784e-8,4.518100423627256e-4,3.7994051971822126e-5,-1.4241074681839239e-8,4.5193371514478737e-4,3.8085369823532785e-5,-1.4259379743515523e-8,4.5201173652522936e-4,3.808847352382779e-5,-1.4258553184670598e-8,4.5208492668352473e-4,3.797471001575803e-5,-1.4231251193107125e-8,4.522066971808626e-4,3.77376787180318e-5,-1.4175095272905575e-8,4.5243135935849304e-4,3.7403252871591634e-5,-1.4095172040726785e-8,4.5279582657719995e-4,3.7030874343293475e-5,-1.4004497095542028e-8,4.5330172975054594e-4,3.6700112219684904e-5,-1.3921072538958264e-8,4.539088056613535e-4,3.648437266876659e-5,-1.3861984223206524e-8,4.545461169138244e-4,3.642372882885231e-5,-1.3837216692123784e-8,4.5513658700048617e-4,3.651138922317251e-5,-1.3846408129259836e-8,4.556220323441288e-4,3.66997016694241e-5,-1.3879890283223254e-8,4.559775185965056e-4,3.691969978430192e-5,-1.3922769386842146e-8,4.562122242740801e-4,3.710309854736905e-5,-1.3959682858114987e-8,4.5636084388552884e-4,3.7198647914217366e-5,-1.397848887776796e-8,4.564712492187718e-4,3.7180239677984124e-5,-1.3972296643507357e-8,4.5659257815677795e-4,3.7047788247771294e-5,-1.393998633269255e-8,4.5676585962010804e-4,3.682314037864092e-5,-1.3885605024489333e-8,4.57017899354544e-4,3.65430985371316e-5,-1.3816998895031419e-8,4.573585513254664e-4,3.625115082842816e-5,-1.3743986972765052e-8,4.5778120823241134e-4,3.5989329685002914e-5,-1.367641965358165e-8,4.582659310878471e-4,3.579152347703973e-5,-1.3622494409608255e-8,4.587842300484169e-4,3.567911872805785e-5,-1.3587614246913989e-8,4.5930436312677383e-4,3.565921697959824e-5,-1.357389940117045e-8,4.5979615512869434e-4,3.572510183973148e-5,-1.358027877351196e-8,4.6023475988321376e-4,3.585820060660067e-5,-1.360294284347647e-8,4.6060335832733674e-4,3.6030722091809204e-5,-1.3635911870639802e-8,4.60895139188042e-4,3.6208528902177354e-5,-1.3671590860836431e-8,4.6111494690815154e-4,3.635429757026502e-5,-1.3701352069797334e-8,4.612807925415506e-4,3.6431488839050474e-5,-1.3716346193401218e-8,4.614247987373746e-4,3.6410027954227026e-5,-1.3708835750741679e-8,4.6159205914533125e-4,3.62743262879114e-5,-1.3674231350069227e-8,4.6183498055835207e-4,3.6032773953528615e-5,-1.3613573886357206e-8,4.6220096368370197e-4,3.572504366766511e-5,-1.3535497406452498e-8,4.627142460022724e-4,3.5420516607509466e-5,-1.345601089443765e-8,4.633589570077975e-4,3.520158587923049e-5,-1.339462640412944e-8,4.640754895656249e-4,3.5133781640715624e-5,-1.336732887285183e-8,4.6477797333421513e-4,3.523710146370312e-5,-1.337976511947418e-8,4.653863109243403e-4,3.5476761963375476e-5,-1.3424888861955243e-8,4.658546211216421e-4,3.577942568893229e-5,-1.3486488367131025e-8,4.661813358342299e-4,3.6063351831523195e-5,-1.3545965988268696e-8,4.664004611033069e-4,3.626473218857858e-5,-1.3588320959816941e-8,4.665639958352068e-4,3.6350407228647365e-5,-1.360513303776225e-8,4.6672541684679767e-4,3.631790496298228e-5,-1.3594788762173888e-8,4.6692865416770923e-4,3.618845377576418e-5,-1.3561187150119446e-8,4.672026368560225e-4,3.5997925297469526e-5,-1.3511940939945172e-8,4.6755982834898976e-4,3.5788386314177225e-5,-1.3456575605413407e-8,4.67997179408685e-4,3.5601078032541834e-5,-1.3404875559273569e-8,4.684985923176623e-4,3.5470812389852354e-5,-1.3365423942936016e-8,4.6903849108559164e-4,3.542180047068913e-5,-1.3344439413006975e-8,4.695861596821659e-4,3.546508508953634e-5,-1.3345040436527447e-8,4.7011041192164126e-4,3.559772500847251e-5,-1.3367006714160734e-8,4.705840542170844e-4,3.580375537789526e-5,-1.3407016011675667e-8,4.7098759753275935e-4,3.6056678871433476e-5,-1.3459233547938723e-8,4.7131190949890184e-4,3.632298007574168e-5,-1.3516078049011552e-8,4.71559790690804e-4,3.6566204934469644e-5,-1.3569053058169974e-8,4.717465735754899e-4,3.6751383530202755E-05,-1.3609647477316639e-8,4.718998124130554e-4,3.684981905601746e-5,-1.3630405599256602e-8,4.7205781579265745e-4,3.684452081682734e-5,-1.3626310087204059e-8,4.7226605766033966e-4,3.673637051258554e-5,-1.3596506069195115e-8,4.725699924678846e-4,3.654994787786842e-5,-1.3546025765795578e-8,4.730033180778431e-4,3.6336041112372295e-5,-1.3486667699711668e-8,4.7357300089362716e-4,3.616604739808837e-5,-1.3435763281303896e-8,4.74246972161772e-4,3.611397064008277e-5,-1.3411769997669891e-8,4.7495468950762464e-4,3.6228226616847743e-5,-1.342728801093758e-8,4.756075265498231e-4,3.6506596772157785e-5,-1.3482806498111208e-8,4.761324789643435e-4,3.68921215314555e-5,-1.3565521966204982e-8,4.76500027685036e-4,3.729587464380291e-5,-1.3654665288008376e-8,4.7672987690625123e-4,3.763293743393644e-5,-1.3730017018062513e-8,4.768749775046739e-4,3.7850136442992455e-5,-1.3778472109271951e-8,4.7699763159739244e-4,3.7934345672070496e-5,-1.379606231317544e-8,4.7715085690734735e-4,3.790502947009683e-5,-1.3786386207802384e-8,4.7736947329048336e-4,3.780076670277705e-5,-1.3757715344810296e-8,4.7766881383462853e-4,3.7666865402247315e-5,-1.3720316041747617e-8,4.780473761409701e-4,3.7546640888132714e-5,-1.368447808114495e-8,4.7849069816615584e-4,3.747611264933771e-5,-1.3659170952435136e-8,4.789752246660876e-4,3.748091718942398e-5,-1.3651117518452754e-8,4.7947201707088224e-4,3.757448492495361e-5,-1.3664168314897276e-8,4.799505077512641e-4,3.775714321569889e-5,-1.3698971973992664e-8,4.803824002412184e-4,3.801622409426613e-5,-1.3752971782310215e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json new file mode 100644 index 00000000..765f637b --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":11000,"numberOfSamples":1000,"samples":[4.807455898115237e-4,3.832746570992544e-5,-1.3820749559112586e-8,4.810276804026849e-4,3.8657939483712816e-5,-1.3894708855793208e-8,4.8122851144731977e-4,3.897037866353488e-5,-1.3966029941865335e-8,4.8136122169643126e-4,3.922846753666153e-5,-1.4025813189547578e-8,4.8145158055841605e-4,3.94025277918899e-5,-1.406634943105251e-8,4.815355041583503e-4,3.9474978459853574e-5,-1.408245537787128e-8,4.8165478219839815e-4,3.9445013590506954e-5,-1.4072791780691197e-8,4.8185089652025466e-4,3.933196966399209e-5,-1.4041008026015441e-8,4.8215671196515623e-4,3.9176311765079673e-5,-1.3996340784096513e-8,4.825864763543066e-4,3.9036228711670225e-5,-1.3953028790341758e-8,4.8312623641597524e-4,3.897747212754661e-5,-1.3927849119148707e-8,4.837291888970253e-4,3.9055456474574426e-5,-1.3935510387344442e-8,4.843221611312391e-4,3.929313827217236e-5,-1.3982860442730526e-8,4.848265247112546e-4,3.966499254457847e-5,-1.4064616609993489e-8,4.8518733416020557e-4,4.009980545620315e-5,-1.4163881241573302e-8,4.853950931909375e-4,4.050581912340954e-5,-1.425830655995102e-8,4.854866151667581e-4,4.080574058134305e-5,-1.4328715323638037e-8,4.85525688196407e-4,4.096178493042818e-5,-1.4365239392562207e-8,4.855772001398806e-4,4.0979862819758134e-5,-1.4368394366073396e-8,4.856885804979649e-4,4.089713112766541e-5,-1.4346234987150922e-8,4.8588326125485515e-4,4.076435074414623e-5,-1.4310345248447114e-8,4.8616296080937287e-4,4.063161994000118e-5,-1.4272594843316575e-8,4.865136173432042e-4,4.054008405187016e-5,-1.4243172616081504e-8,4.8691142789272524e-4,4.051847158520118e-5,-1.4229620182921136e-8,4.8732762934217247e-4,4.0582299326150006e-5,-1.4236433463507242e-8,4.8773212709177916e-4,4.07341134689005e-5,-1.4264941962397524e-8,4.880965967034294e-4,4.096407600183585e-5,-1.4313353517338398e-8,4.88397573177068e-4,4.1250927252936434e-5,-1.4376959666340294e-8,4.886197129387349e-4,4.1563798332032156e-5,-1.4448564853229553e-8,4.887589435265532e-4,4.1865488207741994e-5,-1.451924254306548e-8,4.888247307700336e-4,4.211748974787741e-5,-1.4579476522027053e-8,4.888405100767859e-4,4.228641181812268e-5,-1.462064263346648e-8,4.888415356313333e-4,4.235083017747227e-5,-1.463666315611464e-8,4.888699069788087e-4,4.2307124574301165e-5,-1.462554429370797e-8,4.889672434197426e-4,4.2172729191325406e-5,-1.459042628142175e-8,4.89166100944331e-4,4.198561886052198e-5,-1.4539802909504917e-8,4.894815424795779e-4,4.179941029790374e-5,-1.4486638095790344e-8,4.899045597653066e-4,4.16738571918689e-5,-1.4446179472955758e-8,4.903995543457572e-4,4.1661226263416274e-5,-1.4432491631334258e-8,4.909084078410756e-4,4.179064877681403e-5,-1.4454232713012669e-8,4.913629055658968e-4,4.205495921373214e-5,-1.4510927067288458e-8,4.917043498415898e-4,4.2406630471518614e-5,-1.4591584452824552e-8,4.919041260653661e-4,4.2768455240018365e-5,-1.4677226547185713e-8,4.91975143734432e-4,4.30581023135401e-5,-1.4747087713819914e-8,4.919667281492841e-4,4.321634341236769e-5,-1.4785795141156964e-8,4.919450134806429e-4,4.322488299346272e-5,-1.4787918091785175e-8,4.919696544610528e-4,4.310619995991277e-5,-1.4758043194016052e-8,4.920780610928328e-4,4.2909134196637064e-5,-1.4707389424281414e-8,4.922813225790399e-4,4.269033595193827e-5,-1.464944226297227e-8,4.925688425220637e-4,4.249988199139718e-5,-1.4596537842685818e-8,4.92916302217559e-4,4.2373819969799324e-5,-1.4557994767186664e-8,4.932930424762773e-4,4.233227598512297e-5,-1.4539483417289066e-8,4.936673798735039e-4,4.2380499169877454e-5,-1.4543082916464466e-8,4.940100632622315e-4,4.251078828128216e-5,-1.4567604259159937e-8,4.942967406427109e-4,4.27043504794895e-5,-1.4608973846901326e-8,4.945102476677884e-4,4.2933063498730834e-5,-1.4660638792530654e-8,4.946431248320447e-4,4.316170803770033e-5,-1.4714088579726986e-8,4.947001929114915e-4,4.335150966562856e-5,-1.4759675319273507e-8,4.947003518474758e-4,4.3465620460088586e-5,-1.4787908056141978e-8,4.946762700491294e-4,4.3476391218321277e-5,-1.4791230435817252e-8,4.946706632709735e-4,4.337312853241991e-5,-1.4766006598097854e-8,4.947286919062398e-4,4.316792790944356e-5,-1.4714140745679074e-8,4.948875598480194e-4,4.289680338026428e-5,-1.46436248866499e-8,4.951660198459949e-4,4.261431606960693e-5,-1.4567507684274658e-8,4.955572023782361e-4,4.238205390573295e-5,-1.4501266960766878e-8,4.960275056948562e-4,4.225356593077395e-5,-1.4459112508157139e-8,4.965226079965434e-4,4.225970770296015e-5,-1.445012992875491e-8,4.969797348841862e-4,4.239855798309805e-5,-1.4475344797421208e-8,4.973435745501257e-4,4.263333074298414e-5,-1.452672530286383e-8,4.975817616767804e-4,4.290011641573763e-5,-1.4588789841322534e-8,4.976949342797306e-4,4.31246291984686e-5,-1.4642736998874316e-8,4.977169933512843e-4,4.32435191844831e-5,-1.4671952404593025e-8,4.977043744489744e-4,4.3222752491909916e-5,-1.4666876259907704e-8,4.977180995272924e-4,4.30657402384419e-5,-1.4627283126456636e-8,4.978060190996614e-4,4.280844975449757e-5,-1.4561258969220208e-8,4.979920722311104e-4,4.2505071693506214e-5,-1.4481783123106343e-8,4.982749931993637e-4,4.221149461163865e-5,-1.4402704387878677e-8,4.986341351162414e-4,4.1972812399652274e-5,-1.4335614319282961e-8,4.99038023174974e-4,4.181724732728816e-5,-1.4288203371298527e-8,4.994521132236064e-4,4.1755451375511826e-5,-1.4263899128169458e-8,4.998442497099592e-4,4.1782774302784495e-5,-1.4262268021020732e-8,5.001879318353291e-4,4.1882399162322495e-5,-1.4279703860248156e-8,5.004642516735846e-4,4.202823461485221e-5,-1.4310113798395751e-8,5.006634317541689e-4,4.218742398465999e-5,-1.4345522650409268e-8,5.007865154243883e-4,4.232301933686223e-5,-1.4376697915433863e-8,5.008471450808845e-4,4.239771827120947e-5,-1.4394026271468186e-8,5.008726192415792e-4,4.237947661390274e-5,-1.4388889379628621e-8,5.009027064025104e-4,4.224906691188224e-5,-1.4355605708386248e-8,5.009844664141034e-4,4.200814399437556e-5,-1.4293595372097094e-8,5.011622958425812e-4,4.168457799010023e-5,-1.4208933086185455e-8,5.014648490094809e-4,4.133098997158663e-5,-1.4114222164068199e-8,5.018933871908035e-4,4.1014046129932506e-5,-1.4026120755346876e-8,5.024172779489319e-4,4.079629120466331e-5,-1.3960894019653134e-8,5.029800978344093e-4,4.0716851663191706e-5,-1.3929502673170868e-8,5.035149205751237e-4,4.0778803174321974e-5,-1.3934148788121047e-8,5.039631026052139e-4,4.0948067350335475e-5,-1.3967574412809247e-8,5.042898951464934e-4,4.116358529728348e-5,-1.4015214047407058e-8,5.044923433820881e-4,4.1354546447450864e-5,-1.405930760929713e-8,5.045980853346142e-4,4.145904379395495e-5,-1.4083628433054094e-8,5.046562864241187e-4,4.143903113694813e-5,-1.4077491031220824e-8,5.047237703547672e-4,4.128796116298141e-5,-1.4038013428869964e-8,5.048504577142612e-4,4.1029648300892024e-5,-1.3970152894372228e-8,5.050682042868694e-4,4.070946922079784e-5,-1.3884718542673423e-8,5.053857892959258e-4,4.038129871002777e-5,-1.3795175637434057e-8,5.057904773855169e-4,4.0094587167200846e-5,-1.3714342555419928e-8,5.062542972907671e-4,3.988514116215506e-5,-1.3651908298048012e-8,5.067420758582822e-4,3.9771018930213065e-5,-1.36131932106548e-8,5.072186700798977e-4,3.9752847710952766e-5,-1.3599056334601855e-8,5.076541049257842e-4,3.981679039448647e-5,-1.3606552572220539e-8,5.080265636895346e-4,3.993839829792082e-5,-1.3629887915207912e-8,5.083239056768367e-4,4.008625429723009e-5,-1.366134539027628e-8,5.085445405312649e-4,4.02251540015048e-5,-1.3692068130210929e-8,5.086982215653529e-4,4.031923748367069e-5,-1.3712790472901225e-8,5.088067942896942e-4,4.033585746282454e-5,-1.3714758380114217e-8,5.089042016332715e-4,4.0250984480183826e-5,-1.369110873241738e-8,5.090342370463796e-4,4.005630209267127e-5,-1.36387919547938e-8,5.09244162874289e-4,3.976656292219734e-5,-1.3560660497017656e-8,5.095732393487734e-4,3.942360984383623e-5,-1.3466737784983145e-8,5.100381218559963e-4,3.9092145563312785e-5,-1.3373334502326575e-8,5.106211663506831e-4,3.884421714299498e-5,-1.3299185546533904e-8,5.112695708256073e-4,3.873558642398053e-5,-1.325938777322804e-8,5.119093049859852e-4,3.878426446529394e-5,-1.3259745614206067e-8,5.124690770718819e-4,3.896273593345075e-5,-1.3294485083970076e-8,5.129030399538616e-4,3.920805997219822e-5,-1.3348486880023718e-8,5.13202292093832e-4,3.944384781038976e-5,-1.3402621757432825e-8,5.133926118135372e-4,3.9603311868793384e-5,-1.3439524368879208e-8,5.135225876503645e-4,3.964513077729718e-5,-1.344773648237942e-8,5.136484244188965e-4,3.955939833262208e-5,-1.3423498173910979e-8,5.138202846515992e-4,3.936503101320661e-5,-1.337045078206997e-8,5.140727251366115e-4,3.9101620258126494e-5,-1.3297891578819023e-8,5.144200439889327e-4,3.8818723273896924e-5,-1.3218230049065295e-8,5.148563248939854e-4,3.8565076244178615e-5,-1.31442269252279e-8,5.153592942705727e-4,3.8379720577811564e-5,-1.3086552229207539e-8,5.158965586590853e-4,3.8286402743178446e-5,-1.3052102047767048e-8,5.164325300028227e-4,3.829166482457637e-5,-1.3043289492522785e-8,5.169345624266961e-4,3.838611140678518e-5,-1.3058250794240458e-8,5.173773998025525e-4,3.854777091398222e-5,-1.3091694599441699e-8,5.177457469094699e-4,3.8746318140652295E-05,-1.3136024508001314e-8,5.180353753683765e-4,3.894721737733719e-5,-1.3182422098429487e-8,5.182533801875123e-4,3.9115464526579055e-5,-1.322176802538456e-8,5.184180207872244e-4,3.9219155018714586e-5,-1.3245479826195314e-8,5.185582174206982e-4,3.923339887816621e-5,-1.3246473160946539e-8,5.187121920390923e-4,3.9145162676454723e-5,-1.3220474590964729e-8,0.00051892397371530155,3.895909776742693e-5,-1.316773040159988e-8,5.192361363727685e-4,3.8702959631497384e-5,-1.3094695644609137e-8,5.19678041196177e-4,3.8429183553321686e-5,-1.3014701920521112e-8,5.20251698135249e-4,3.820781513346968e-5,-1.2946243125940887e-8,5.209217831712024e-4,3.810779889170091e-5,-1.2908049988956758e-8,5.216188239536118e-4,3.817071047034634e-5,-1.2912046211167408e-8,5.222596846655533e-4,3.8389929217076366e-5,-1.295764933741635e-8,5.227776981227885e-4,3.870942493105218e-5,-1.3031193682067312e-8,5.231462221446176e-4,3.90449333361414e-5,-1.3111251595486714e-8,5.233834624169179e-4,3.9315346546736246e-5,-1.3176687479802485e-8,5.235394281321812e-4,3.946752696132619e-5,-1.3213083897284422e-8,5.236754233317036e-4,3.9485713744511626e-5,-1.3215295714260378e-8,5.238462568216775e-4,3.9387314888452363e-5,-1.3186630329662888e-8,5.240896667697123e-4,3.921173128856953e-5,-1.3136310014778118e-8,5.244226644038686e-4,3.900801174331826e-5,-1.3076572242619164e-8,5.248426426550115e-4,3.882439799199982e-5,-1.3020069826079723e-8,5.253311937372029e-4,3.870065090327242e-5,-1.2977767650741354e-8,5.258593061790778e-4,3.8663123547147846e-5,-1.2957402470289928e-8,5.263931056407179e-4,3.8722437005912813e-5,-1.2962597830659435e-8,5.268994400545242e-4,3.887355383309786e-5,-1.2992693609541672e-8,5.273506944811689e-4,3.909786013135494e-5,-1.304323238147115e-8,5.277283618928682e-4,3.9366737045691754e-5,-1.310693161469982e-8,5.280251104455353e-4,3.964596224958332e-5,-1.3174889451303355e-8,5.282454335082373e-4,3.990022972843365e-5,-1.3237768428264953e-8,5.284052231946588e-4,4.009736888639202e-5,-1.3286836033079106e-8,5.285305494829884e-4,4.021225325537939e-5,-1.3314912562979519e-8,5.286557060394544e-4,4.0230579521206196e-5,-1.3317363974876683e-8,5.288202403339737e-4,4.015271335318547e-5,-1.3293259523465599e-8,5.290641459351538e-4,3.999743645858218e-5,-1.3246644881952389e-8,5.29420183065172e-4,3.980429049478516e-5,-1.3187490243689071e-8,5.299032094367221e-4,3.963165594186321e-5,-1.313141009986588e-8,5.304988417193463e-4,3.9546878333224285e-5,-1.3097054263167734e-8,5.311574317731786e-4,3.96065921173356e-5,-1.3100650126240523e-8,5.318014578119245e-4,3.98319165292681e-5,-1.3149038022273758e-8,5.32349611324718e-4,4.019180005671327e-5,-1.3234910936428494e-8,5.327485204893838e-4,4.0608738174731215e-5,-1.3338177317094923e-8,5.32993774836213e-4,4.098800442554419e-5,-1.3433731281722263e-8,5.331274981533502e-4,4.125409164773492e-5,-1.3501160283562443e-8,5.332164335123858e-4,4.137379163363762e-5,-1.353087213849061e-8,5.333259193608972e-4,4.13576666322837e-5,-1.3524569124303872e-8,5.335024650995162e-4,4.124644008992089e-5,-1.3491904463169542e-8,5.337679129261047e-4,4.109355822924989e-5,-1.3446225415098136e-8,5.341216559001369e-4,4.0951180469202836e-5,-1.340113134321436e-8,5.345463734211426e-4,4.0861572281668134e-5,-1.3368231159593744e-8,5.350143019353962e-4,4.0852955656746325e-5,-1.3355852072504397e-8,5.354928423825327e-4,4.093817556745151e-5,-1.3368381791204466e-8,5.359493976739728e-4,4.111506478866112e-5,-1.3406093750610092e-8,5.363555591240247e-4,4.136805710751307e-5,-1.3465430533373401e-8,5.366906062535734e-4,4.167087291184944e-5,-1.353970510439085e-8,5.369441549435876e-4,4.199017748541348e-5,-1.3620131233801054e-8,5.371176836764395e-4,4.229004758300979e-5,-1.3697055796399448e-8,5.372246939412618e-4,4.2536815840649555e-5,-1.376122922588961e-8,5.372894831724115e-4,4.2703741062777625e-5,-1.3804984921125316e-8,5.373446669618185e-4,4.277512234113474e-5,-1.3823300988072162e-8,0.00053742757544824975,4.27496117961429e-5,-1.3814764582700658e-8,5.375755603610683e-4,4.264248462223457e-5,-1.3782413644499372e-8,5.378200593904353e-4,4.2486472593883745e-5,-1.373430126808111e-8,5.381792508290428e-4,4.233015478549633e-5,-1.368338167500512e-8,5.386499283189473e-4,4.223204705859813e-5,-1.3646059069466792e-8,5.392010226639216e-4,4.224848840771485e-5,-1.3638780125339982e-8,5.397734225659609e-4,4.2415447202705524e-5,-1.3672723821927818e-8,5.402914650870005e-4,4.272937436938092e-5,-1.3748141826012162e-8,5.406870951769552e-4,4.3138228021123006e-5,-1.3851605137995859e-8,5.409276624223462e-4,4.355360016244392e-5,-1.3959259082476329e-8,5.410308634400444e-4,4.388299832113226e-5,-1.404572807505199e-8,5.410560312127462e-4,4.406544519190341e-5,-1.409387560046213e-8,5.410774246421454e-4,4.4090008179269903e-5,-1.4099829500317099e-8,5.411566007764416e-4,4.399025355105983e-5,-1.4071552354515442e-8,5.413273035270495e-4,4.3823916588713976e-5,-1.4023612135435341e-8,5.415945168970027e-4,4.365179453199496e-5,-1.3971835246327046e-8,5.41941678191083e-4,4.3523829968479546e-5,-1.3929763987744986e-8,5.423397870270695e-4,4.3473105445618066e-5,-1.3906988846966135e-8,5.427550475932729e-4,4.3515132910834864e-5,-1.3908697960636151e-8,5.431542404764803e-4,4.364960885200329e-5,-1.393582992804166e-8,5.435083954292767e-4,4.386290135691708e-5,-1.3985503452994463e-8,5.437955680521673e-4,4.413075019834189e-5,-1.4051648813651171e-8,5.440031193610353e-4,4.442130458093591e-5,-1.4125847171957948e-8,5.441294904295869e-4,4.4698775986850106e-5,-1.4198377383350764e-8,5.441851609821107e-4,4.4927902109817414e-5,-1.4259451932272639e-8,5.44192274379237e-4,4.5079042801761985e-5,-1.4300570677415424e-8,5.441825131835359e-4,4.513324877772769e-5,-1.4315854380231034e-8,5.441931678314615e-4,4.508643514283918e-5,-1.4303200161377657e-8,5.442616930190452e-4,4.495182030705989e-5,-1.4265097005812744e-8,5.444193252662113e-4,4.475992062198913e-5,-1.420891194830896e-8,5.446845113517835e-4,4.455563870804244e-5,-1.4146439051286658e-8,5.450570012046475e-4,4.439214140356481e-5,-1.4092482439868092e-8,5.455138259491807e-4,4.432123995689494e-5,-1.4062247519459378e-8,5.460091567979519e-4,4.4380529159655735e-5,-1.4067548181360422e-8,5.464806332929459e-4,4.457933352573298e-5,-1.411246534473196e-8,5.468639351101996e-4,4.488842557502628e-5,-1.41900303462031e-8,5.471137114483806e-4,4.5240836901430264e-5,-1.4282186009332701e-8,5.472228700801882e-4,4.5549104705021665e-5,-1.436459415403402e-8,5.472286408053625e-4,4.573542557700775e-5,-1.4415174862346914e-8,5.471991045330296e-4,4.576046398285103e-5,-1.4422216878027767e-8,5.47206448294467e-4,4.56349055279638e-5,-1.4387623676551349e-8,5.473019740297997e-4,4.5409058585348715e-5,-1.4324164571538933e-8,5.475045890269017e-4,4.5149831126079944e-5,-1.4249406835206891e-8,5.47803705825606e-4,4.4918876045973197e-5,-1.4180002072172085e-8,5.481698176479473e-4,4.4759851057189094e-5,-1.412830013525889e-8,5.48565692247331e-4,4.469494792163449e-5,-1.410125538583461e-8,5.489546078069922e-4,4.4727065395722936e-5,-1.4100722236229494e-8,5.493051789854964e-4,4.484400912140682e-5,-1.4124308082445898e-8,5.495938405083384e-4,4.5022613923846395e-5,-1.4166321890606745e-8,5.498062624304646e-4,4.523222436300298e-5,-1.4218687392005276e-8,5.499384595504489e-4,4.54378852388539e-5,-1.4271863647322725e-8,5.49997724894559e-4,4.560386201037831e-5,-1.4315865288538859e-8,5.500030030438457e-4,4.5697985530979016e-5,-1.434147018981161e-8,5.499839508065228e-4,4.5696843463098964e-5,-1.4341625669559141e-8,5.499779032270899e-4,4.559110119398946e-5,-1.4312908167490931e-8,5.500244181110129e-4,4.5389582007094315e-5,-1.4256724128095877e-8,5.50157883005538e-4,4.512048381923619e-5,-1.417984329569152e-8,5.503995686945172e-4,4.482844257285975e-5,-1.4093882581779136e-8,5.507511242321261e-4,4.456714389146746e-5,-1.4013561269086788e-8,5.511914791808575e-4,4.438847474538031e-5,-1.3953862718354635e-8,5.516785262955729e-4,4.43302010252111e-5,-1.3926532510634918e-8,5.521561635635225e-4,4.4404755979930705e-5,-1.3936611787065186e-8,5.525663239678071e-4,4.459220322119048e-5,-1.3979975801327925e-8,5.528642063231052e-4,4.484065587117192e-5,-1.4043007349154969e-8,5.530328973052125e-4,4.507661529127626e-5,-1.4105288308440919e-8,5.530916519570143e-4,4.522480506594574e-5,-1.4145236907282978e-8,5.530923528858961e-4,4.523202408225343e-5,-1.4147030087645297e-8,5.531031506537776e-4,4.5085084291692684e-5,-1.4105860437065999e-8,5.531855430718504e-4,4.4813819040833696e-5,-1.4028958709191986e-8,5.533755526889687e-4,4.447784879142051e-5,-1.3932084645392354e-8,5.536768815553462e-4,4.41448232435347e-5,-1.3833668292310375e-8,5.540662856310166e-4,4.387093911013423e-5,-1.3749517436350942e-8,5.545054107827476e-4,4.369036706870036e-5,-1.3689826206305373e-8,5.549526056740539e-4,4.3613801028485625e-5,-1.3658542876311258e-8,5.553711420623051e-4,4.363257224331595e-5,-1.3654223719707622e-8,5.55733434845886e-4,4.3724503286497815e-5,-1.3671440617076656e-8,5.560225166865299e-4,4.385919757848827e-5,-1.3702164569045507e-8,5.56232263778228e-4,4.400211587684637e-5,-1.3736921152732457e-8,5.563673733728169e-4,4.4117846392702796e-5,-1.376575922796316e-8,5.564433941300915e-4,4.4173372568585065e-5,-1.3779194966470485e-8,5.564864419333089e-4,4.414206095567587e-5,-1.3769317275568825e-8,5.565317072407061e-4,4.4008603643539826E-05,-1.373115531210439e-8,5.566196665612034e-4,4.377426004116058e-5,-1.3664180386757936e-8,5.567893255742785e-4,4.3460653879901505e-5,-1.3573495648336821e-8,5.5706903259323e-4,4.3109638309396154e-5,-1.3470018373719109e-8,5.574671621600434e-4,4.277713905643178e-5,-1.3369019224232388e-8,5.579663031544923e-4,4.25209069743737e-5,-1.3286905991693288e-8,5.585242506155931e-4,4.2385091814629774e-5,-1.323695369887385e-8,5.590827837639093e-4,4.238670958930531e-5,-1.322532616995296e-8,5.595820943030839e-4,4.2508928121728134e-5,-1.324879527303495e-8,5.599765436803205e-4,4.270375260425213e-5,-1.3295025360336303e-8,5.602470647653046e-4,4.290357624198227e-5,-1.3345467218010926e-8,5.604066433327727e-4,4.3038521618008536e-5,-1.3380135565607916e-8,5.604971361354452e-4,4.305496671614097e-5,-1.3382982052173816e-8,5.605778644400599e-4,4.293002467591174e-5,-1.3346289025681776e-8,5.607089623263255e-4,4.267729978794635e-5,-1.3272636519098559e-8,5.609347399582315e-4,4.234165410834814e-5,-1.3173718674744843e-8,5.61272824224999e-4,4.1984822487049506e-5,-1.3066489427049024e-8,5.617125088503604e-4,4.1667542738988164e-5,-1.2968201743518012e-8,5.622215885905281e-4,4.1434866394617e-5,-1.289219032748799e-8,5.627575830200749e-4,4.130882130901546e-5,-1.2845587660872705e-8,5.632786025023382e-4,4.1288594336048484e-5,-1.2829102735199409e-8,5.637508743402848e-4,4.135555763250854e-5,-1.2838217765699319e-8,5.641523616550949e-4,4.147987966628914e-5,-1.2864954028178306e-8,5.644734987008431e-4,4.1626480056051095e-5,-1.2899567931198906e-8,5.647164882240774e-4,4.1759528984558676e-5,-1.2931887162585448e-8,5.648942535231952e-4,4.184578296212132e-5,-1.2952297818560158e-8,5.650294889116143e-4,4.1857547900959665e-5,-1.2952577895423737e-8,5.651535715361088e-4,4.177605896823371e-5,-1.2926828568155383e-8,5.653044894483615e-4,4.159567182824132e-5,-1.287267633441649e-8,5.655225692094629e-4,4.132839759346974e-5,-1.279266224815386e-8,5.658430328778544e-4,4.100697766475647e-5,-1.2695307297663935e-8,5.662857653330005e-4,4.068344030322492e-5,-1.2594934042639526e-8,5.668451659124272e-4,4.042019197207262e-5,-1.2509327194232984e-8,5.674853336557398e-4,4.027347907363591e-5,-1.2455107328985577e-8,5.681455713211361e-4,4.027408208489247e-5,-1.244214622307206e-8,5.68756746685192e-4,4.0414004798879e-5,-1.2469513131187434e-8,5.692626340933667e-4,4.0646580039138516e-5,-1.2525133623159566e-8,5.696369955166504e-4,4.090066807453131e-5,-1.2589478046435055e-8,5.698896665275624e-4,4.110245921092196e-5,-1.2641551835441664e-8,5.700608716068607e-4,4.1195953729986446e-5,-1.2664715990718236e-8,5.702077505850598e-4,4.1155798139361454e-5,-1.2650540717421748e-8,5.703884759901265e-4,4.099042424392756e-5,-1.2600051493450478e-8,5.706483903579017e-4,4.073662588412746e-5,-1.2522583891047876e-8,5.710109691405875e-4,4.0448332338844876e-5,-1.243290518949643e-8,5.714748841309391e-4,4.0182934684654553E-05,-1.2347452802728689e-8,5.720170435890389e-4,3.9988544477136714e-5,-1.2280615128135358e-8,5.726001321744273e-4,3.9895057969472874e-5,-1.2241921421025485e-8,5.731821206679281e-4,3.991064069654339e-5,-1.2234717623019245e-8,5.737250198595423e-4,4.002343402058786e-5,-1.2256397133360156e-8,5.742009861844149e-4,4.0206784374766535e-5,-1.2299779958393722e-8,5.745952088943357e-4,4.042579305071043e-5,-1.2355009254206567e-8,5.749061274942017e-4,4.064339540438695e-5,-1.2411383146639144e-8,5.751440773201222e-4,4.0825069665894794e-5,-1.2458778726029885e-8,5.753293799587323e-4,4.094221059405223e-5,-1.2488629625521792e-8,5.754904006567578e-4,4.097477176506438e-5,-1.2494646793562146e-8,5.756615125629631e-4,4.0913864151746437e-5,-1.2473547362790684e-8,5.758803459554417e-4,4.076472695839921e-5,-1.24259847650868e-8,5.761832436211499e-4,4.0549772255380785e-5,-1.2357617600292305e-8,5.765979379808243e-4,4.0310124351701156e-5,-1.2279811549458918e-8,5.771336876089873e-4,4.010269549721812e-5,-1.2209012413795871e-8,5.777716895829274e-4,3.9989598090760646e-5,-1.2163757626176808e-8,5.784616465902294e-4,4.001937776225071e-5,-1.2159125570823381e-8,5.791308482835355e-4,4.020580099469462e-5,-1.2200322952745242e-8,5.797065295022585e-4,4.0515899636114696e-5,-1.2278907274980914e-8,5.80142457888133e-4,4.087731150446172e-5,-1.2374661952472232e-8,5.804354401798264e-4,4.120363917341638e-5,-1.2462792256088949e-8,5.806232139856671e-4,4.142456024104346e-5,-1.2522577976320966e-8,5.807671988462954e-4,4.1505812543823224e-5,-1.2543184545504214e-8,5.809309310098887e-4,4.145299058481706e-5,-1.2524943479233836e-8,5.811633911987712e-4,4.130273058000135e-5,-1.2477155055317291e-8,5.814906054594975e-4,4.110843349549538e-5,-1.241437134424403e-8,5.819145513730104e-4,4.092617541810449e-5,-1.2352610977888855e-8,5.824169208822125e-4,4.0803658015597504e-5,-1.2306198503680667e-8,5.829655041898003e-4,4.077300848955851e-5,-1.2285457641107754e-8,5.835216304790936e-4,4.08473506951388e-5,-1.2295353076190144e-8,5.840475044047213e-4,4.1020878040647856e-5,-1.2335168157344423e-8,5.845123946407954e-4,4.1271912795883656e-5,-1.2399194688289209e-8,5.848968676341912e-4,4.1568009920163966e-5,-1.247819580484653e-8,5.851947152164219e-4,4.1871931312817365e-5,-1.2561243079423654e-8,5.854127287371877e-4,4.214737362730478e-5,-1.2637501168654626e-8,5.855689082537816e-4,4.236363657066199e-5,-1.2697641820982583e-8,5.856898580934266e-4,4.2498978178316354e-5,-1.2734800220127118e-8,5.85807889067023e-4,4.254292268264029e-5,-1.2745207957826337e-8,5.859579513795578e-4,4.249795347224145e-5,-1.272871639020561e-8,5.861741086786202e-4,4.2380895742717424e-5,-1.2689360718495551e-8,5.8648484953241e-4,4.2223796026970555e-5,-1.2635890084310931e-8,5.869065735812319e-4,4.2073073991807874e-5,-1.2581801894459312e-8,5.874356319421588e-4,4.19846475120227e-5,-1.2544061137121026e-8,5.880413756125081e-4,4.201259995003142e-5,-1.2539678227518325e-8,5.886653049404993e-4,4.219108683589354e-5,-1.2580052638216501e-8,5.8923238679551e-4,4.2514839582835756e-5,-1.266480189970253e-8,5.896756386652956e-4,4.2930283800824865e-5,-1.2778839288959433e-8,5.89964101552167e-4,4.334851356362142e-5,-1.2896139522771572e-8,5.901171113360668e-4,4.367814905014522e-5,-1.298951948589008e-8,5.901947880698806e-4,4.38602737483596e-5,-1.3040992057450742e-8,5.902714285460607e-4,4.3885736496831144e-5,-1.3046861211874255e-8,5.904086373518427e-4,4.3789236335983746e-5,-1.3016096632518927e-8,5.90640488345573e-4,4.362965960038413e-5,-1.2964884842237333e-8,5.90971946441086e-4,4.34695603945582e-5,-1.2911008855333938e-8,5.913852195337234e-4,4.336092270372908e-5,-1.2869904121306538e-8,5.918485774305888e-4,4.333812126088688e-5,-1.285252461742886e-8,5.923245446952727e-4,4.3416150897318016e-5,-1.2864501648532461e-8,5.927764593066211e-4,4.359190961413261e-5,-1.2906114467297666e-8,5.931734732856898e-4,4.384714236114294e-5,-1.2972841846778543e-8,5.934942150203255e-4,4.4152466088083324e-5,-1.3056421398296158e-8,5.937291030815587e-4,4.447215885443439e-5,-1.3146311817982143e-8,5.938811933955622e-4,4.47693426906656e-5,-1.3231356330999967e-8,5.93965485886057e-4,4.5011077674093984e-5,-1.3301399351245954e-8,5.94006799600864e-4,4.5172770496475155e-5,-1.334862131885749e-8,5.940365840398179e-4,4.5241413682133494e-5,-1.336846818500244e-8,5.940891110207756e-4,4.521750624615486e-5,-1.3360212923084611e-8,5.941973595900601e-4,4.511571456359875e-5,-1.3327250246980502e-8,5.943887128092454e-4,4.4964352725929755e-5,-1.3277177720368145e-8,5.946803298205737e-4,4.480359021479988e-5,-1.3221572693952441E-08,5.950740552025116e-4,4.4681698944798734e-5,-1.3175121289205661e-8,5.955515209880322e-4,4.4648007751150914e-5,-1.3153551831570361e-8,5.960715426732222e-4,4.474149532569575e-5,-1.3169977028198143e-8,5.965733804112413e-4,4.4975795704802126e-5,-1.3229934760324216e-8,5.969897334847129e-4,4.5325368620618036e-5,-1.3326761651752678e-8,5.972695820723137e-4,4.572244176421522e-5,-1.3440440521292401e-8,5.974020923934746e-4,4.607385900358259e-5,-1.3542760448690568e-8,5.974260041454101e-4,4.6295468638069834e-5,-1.3607887991505155e-8,5.974149745012774e-4,4.63461491160932e-5,-1.3622690856111841e-8,5.974464645346873e-4,4.62408255489987e-5,-1.3590608456208522e-8,5.975733330563519e-4,4.603711609863486e-5,-1.3527729382284185e-8,5.978120949073726e-4,4.5808229996933905e-5,-1.3455010772294891e-8,5.981476506938362e-4,4.561887790575258e-5,-1.3391473757723922e-8,5.985457456463102e-4,4.551241536514983e-5,-1.3350535217826406e-8,5.989652880636257e-4,4.550820785410715e-5,-1.3339057205444769e-8,5.993671400674556e-4,4.560473672048171e-5,-1.3357888193002322e-8,5.997192571010954e-4,4.578464443118222e-5,-1.340296607210915e-8,5.999993638835912e-4,4.601975491101805e-5,-1.3466562670281527e-8,6.001963194062474e-4,4.627562551405624e-5,-1.353859250547407e-8,6.003106951839153e-4,4.651585668922163e-5,-1.3607999789540018e-8,6.003545828554706e-4,4.670640694476506e-5,-1.3664190858733449e-8,6.003504102879558e-4,4.681993271445912e-5,-1.3698426655564152e-8,6.003285040062579e-4,4.6839792267256964e-5,-1.3705039077842174e-8,6.003233654665366e-4,4.6763054815347505e-5,-1.3682318721009288e-8,6.00368980029104e-4,4.6601915443853456e-5,-1.3632979669015082e-8,6.004936892972919e-4,4.638313791509782e-5,-1.3564152706925421e-8,6.007152397239569e-4,4.6145339984406526e-5,-1.348684271745055e-8,6.010365913857648e-4,4.5934168128419516e-5,-1.3414767746104295e-8,6.014429942225124e-4,4.5795480210201754e-5,-1.3362464203894209e-8,6.019011057532637e-4,4.576653383496385e-5,-1.334252963495435e-8,6.023615895275835e-4,4.586559553492988e-5,-1.3362105344807452e-8,6.027669935205449e-4,4.608188309838632e-5,-1.3419300705541302e-8,6.030658883371729e-4,4.6370003546858796e-5,-1.350105745458068e-8,6.032312519987232e-4,4.66548633865428e-5,-1.3584497719127712e-8,6.032758091670896e-4,4.685133527899667e-5,-1.3643100300052348e-8,6.032535495762095e-4,4.6894725810143705e-5,-1.365628640799527e-8,6.03241729155245e-4,4.6767362660908595e-5,-1.3617683021674188e-8,6.033108166392385e-4,4.65049510596044e-5,-1.3537085025814027e-8,6.034993182490741e-4,4.617895985207165e-5,-1.3435213551070888e-8,6.038060843341433e-4,4.5867317225684895e-5,-1.3335114749071355e-8,6.041994185155103e-4,4.563018257654167e-5,-1.3255104395874068e-8,6.046332663829588e-4,4.549926714185694e-5,-1.3205572436516151e-8,6.05061438746373e-4,4.5478931464839044e-5,-1.3189054107180226e-8,6.054462336936745e-4,4.555306960662015e-5,-1.3201909329785792e-8,6.05762009514742e-4,4.5692876070382345e-5,-1.3236331295070042e-8,6.059957599659084e-4,4.586321651672058e-5,-1.3282117826334546e-8,6.061465022300673e-4,4.6027351570760987e-5,-1.332813231699191e-8,6.062243702543427e-4,4.615066462844048e-5,-1.3363565264245378e-8,6.062495021200464e-4,4.620409516581872e-5,-1.3379104609315037e-8,6.062503718534889e-4,4.616766157689615e-5,-1.3368067825864579e-8,6.062610395188557e-4,4.6033924576426214e-5,-1.3327457601791911e-8,6.063169469718518e-4,4.581063544655485e-5,-1.3258772884036288e-8,6.064494044595206e-4,4.55215188896636e-5,-1.3168331958415403e-8,6.066795318747286e-4,4.52042881604833e-5,-1.3066866709055663e-8,6.070128998625647e-4,4.490545427349359e-5,-1.2968213330564991e-8,6.074363111856063e-4,4.467226793872749e-5,-1.2887087372606102e-8,6.079179098524724e-4,4.4543009907630994e-5,-1.2836174421477544e-8,6.084112436310817e-4,4.453736700212919e-5,-1.282297992625794e-8,6.08863370461571e-4,4.464886329443632e-5,-1.2847073663286673e-8,6.092264758703546e-4,4.4841679024146196e-5,-1.289860746681526e-8,6.094712937410751e-4,4.505445305432866e-5,-1.2959127922180999e-8,6.095987972448405e-4,4.521292039621171e-5,-1.3005410854173592e-8,6.096448764943399e-4,4.5250510079934645e-5,-1.3016030794821033e-8,6.096730138384927e-4,4.513114561506076e-5,-1.2978711001202054e-8,6.097545631549566e-4,4.486402580498518e-5,-1.2895124516848801e-8,6.099439852908066e-4,4.450134061490781e-5,-1.2780348513948726e-8,6.102610819546051e-4,4.4118743907326676e-5,-1.265702267633818e-8,6.106884949894511e-4,4.378880296374916e-5,-1.2547376438516559e-8,6.111831302385094e-4,4.356052924504412e-5,-1.2467023709897674e-8,6.116930853079845e-4,4.3451843285146805e-5,-1.2422507196552202e-8,6.121718091847651e-4,4.3453283807383274e-5,-1.2412110270198072e-8,6.125859229567852e-4,4.3537061943772174e-5,-1.242828767855344e-8,6.129174051327997e-4,4.3666315988779066e-5,-1.2460290569013057e-8,6.131625421240779e-4,4.380214478201701e-5,-1.249629588729844e-8,6.133297797994605e-4,4.390824915390768e-5,-1.2524935334363993e-8,6.134376059320164e-4,4.395405443660182e-5,-1.2536392208869133e-8,6.135126429920539e-4,4.391729178049016e-5,-1.2523285610369912e-8,6.135875232541355e-4,4.37866565556534e-5,-1.248151062142838e-8,6.136978474050366e-4,4.3564553195397556e-5,-1.2411078877572878e-8,6.138776204707606e-4,4.3269171658970975e-5,-1.2316794930864575e-8,6.141531157431434e-4,4.293451537346142e-5,-1.2208394276352459e-8,6.145360882992824e-4,4.260690395661579e-5,-1.2099680577646451e-8,6.150183068876578e-4,4.233718420343913e-5,-1.2006354865178858e-8,6.155698862543469e-4,4.216944569007125e-5,-1.194266561911202e-8,6.161432780116315e-4,4.212893829735594e-5,-1.191760894514987e-8,6.166829962369822e-4,4.221304211145604e-5,-1.1931838226690434e-8,6.171390028809723e-4,4.2388733189199025e-5,-1.1976435073662864e-8,6.174801786565707e-4,4.2598204728411776e-5,-1.2034228597516467e-8,6.177039713164523e-4,4.2771969148489644e-5,-1.2083631887323418e-8,6.178390324477566e-4,4.284658717591776e-5,-1.2104190944765916e-8,6.179391490155112e-4,4.2782467541547576e-5,-1.2082381407395732e-8,6.180690499519215e-4,4.257622589977647e-5,-1.2015807665370394e-8,6.182856981106309e-4,4.2262641290182364e-5,-1.1914142478848567e-8,6.186214061728539e-4,4.1904306638940616e-5,-1.1796159869780265e-8,6.190753692770967e-4,4.1572254817565175e-5,-1.168386155567887e-8,6.196167242703293e-4,4.1325277041778395e-5,-1.1596058210408694e-8,6.201967488488639e-4,4.119594759437842e-5,-1.1543865254199268e-8,6.20764019662867e-4,4.118716574602068e-5,-1.1529328261415304e-8,6.21276549030351e-4,4.127757978552318e-5,-1.154678533548196e-8,6.217080946567695e-4,4.143120927489927e-5,-1.1585638643255654e-8,6.220491812385284e-4,4.1606888823869886e-5,-1.1633240123016763e-8,6.223049974865838e-4,4.176527688606243e-5,-1.1677161479087305e-8,6.224922388533137e-4,4.1873203335198556e-5,-1.1706688765447071e-8,6.226360955927154e-4,4.1906205539858945e-5,-1.1713717885084007e-8,6.227676718629662e-4,4.185030251602371e-5,-1.1693341505436549E-08,6.229214415278793e-4,4.1703735041523074e-5,-1.1644381723185078e-8,6.231319853664534e-4,4.147878640125714e-5,-1.1569970337746821e-8,6.234292802965761e-4,4.120299476324085e-5,-1.1478018587251494e-8,6.238323413543623e-4,4.0918246606836314e-5,-1.1381111507640178e-8,6.243421835840833e-4,4.067585345858345e-5,-1.1295177991775304e-8,6.249366570621865e-4,4.052646987191822e-5,-1.1236482520549367e-8,6.255707246045346e-4,4.0506051125566727e-5,-1.1217220872998886e-8,6.261847863392266e-4,4.062225481812146e-5,-1.124105993740093e-8,6.267202336075681e-4,4.08475845493812e-5,-1.1300642714626034e-8,6.271371716095217e-4,4.112393555640522e-5,-1.1378640363826194e-8,6.274272002337375e-4,4.137818217173511e-5,-1.1452374173663731e-8,6.276160661029025e-4,4.1543172110683946e-5,-1.1500321761911784e-8,6.277555903893943e-4,4.157642470580568e-5,-1.1508102924530854e-8,6.27908422691926e-4,4.147064598947023e-5,-1.1472061584588963e-8,6.281309101857208e-4,4.125382444025051e-5,-1.1399670417759892e-8,6.284589806615875e-4,4.0979990293322234e-5,-1.1307001676311571e-8,6.289004951050204e-4,4.071397673517665e-5,-1.1214196847662963e-8,6.294355537344494e-4,4.051475934856745e-5,-1.1140281814471427e-8,6.300239373611482e-4,4.0422039237037176e-5,-1.1098767800734435e-8,6.306167817204206e-4,4.044943019418976e-5,-1.1095165829009265e-8,6.311685570877783e-4,4.058515042629986e-5,-1.1126836428171848e-8,6.316459742628735e-4,4.079850842401508e-5,-1.1184776656645354e-8,6.320322305868174e-4,4.104897677346346e-5,-1.1256406714476454e-8,6.323269912046183e-4,4.129481071708473e-5,-1.1328374881368757e-8,6.325436800244089e-4,4.149944694038418e-5,-1.138873428162963e-8,6.327057717418874e-4,4.16353572641571e-5,-1.142829124798009e-8,6.3284320211077e-4,4.168599958414399e-5,-1.144127484924841e-8,6.329892507073682e-4,4.1646813714983565e-5,-1.1425641935138297e-8,6.331776221375067e-4,4.1525972124440285e-5,-1.1383308731724334e-8,6.334390698103364e-4,4.134505386970275e-5,-1.1320431548573354e-8,6.337968406765966e-4,4.1139068109295805e-5,-1.1247577530122925e-8,6.342606793062239e-4,4.0954382499360176e-5,-1.1179279984573037e-8,6.34820349377044e-4,4.084256691331992e-5,-1.1132243894526839e-8,6.354414692002509e-4,4.084884439949683e-5,-1.1121682761778917e-8,6.360679001502076e-4,4.0996568100376256e-5,-1.1156195968997953e-8,6.366339468110234e-4,4.1273455162251384e-5,-1.1233067444498262e-8,6.370847593082296e-4,4.162814226045832e-5,-1.1336844237008164e-8,6.37396720814852e-4,4.1982708229566924e-5,-1.1443112874876232e-8,6.375870858518857e-4,4.225789061658065e-5,-1.1526456467575253e-8,6.377074182492132e-4,4.239935949578947e-5,-1.1568844891267493e-8,6.378247532323368e-4,4.239301187350808e-5,-1.1564617122042744e-8,6.380001550354765e-4,4.226467189936685e-5,-1.1520634437041544e-8,6.382730696351323e-4,4.20678159364482e-5,-1.145275407366425e-8,6.386547983664781e-4,4.186642207611976e-5,-1.1380759726833166e-8,6.391301491825187e-4,4.1718969727590826e-5,-1.1323481608403951e-8,6.396645134501095e-4,4.16669354931265E-05,-1.1295058824572489e-8,6.402135211432802e-4,4.1728883630486846e-5,-1.130272523179324e-8,6.407329313863037e-4,4.189994975384543e-5,-1.1346210158588048e-8,6.411869273337647e-4,4.215579668992807e-5,-1.141864418294653e-8,6.415535317098374e-4,4.245951292741821e-5,-1.1508603446175233e-8,6.418266451670236e-4,4.276953906141313e-5,-1.160268944345754e-8,6.420150711981394e-4,4.3046889911181794e-5,-1.168800792468656e-8,6.42139481568027e-4,4.326056338850396e-5,-1.1754073581974093e-8,6.422284650134046e-4,4.3390762964130205e-5,-1.1793939423120785e-8,6.423145863944254e-4,4.343025232088572e-5,-1.1804643333497793e-8,6.424308611712833e-4,4.3384560725109035e-5,-1.1787259369334247e-8,6.426075271147033e-4,4.327164998942055e-5,-1.1746830998873365e-8,6.428686772623222e-4,4.312121499188235e-5,-1.1692290186969063e-8,6.43228211111064e-4,4.297319789412587e-5,-1.163620160738782e-8,6.436849034127897e-4,4.2874338512484316e-5,-1.1593853762600689e-8,6.442175178239869e-4,4.287106863696716e-5,-1.1581024865378009e-8,6.447826241944376e-4,4.299769946587701e-5,-1.1610003778983072e-8,6.453192106631316e-4,4.326148989808878e-5,-1.1684410461728622e-8,6.457633643151136e-4,4.363072674477005e-5,-1.179495428359945e-8,6.460709780358178e-4,4.403539258500074e-5,-1.1919425251124777e-8,6.46238269440531e-4,4.438654427814625e-5,-1.202896701159812e-8,6.463067360377512e-4,4.460863357575101e-5,-1.2098638955452586e-8,6.463473522053487e-4,4.466782983677177e-5,-1.2116629130642991e-8,6.464328198700985e-4,4.458091988511223e-5,-1.2087172530117929e-8,6.466134080396352e-4,4.440296244483021e-5,-1.2026767218001455e-8,6.469062893985017e-4,4.420432212394621e-5,-1.1957162905655501e-8,6.472980673486538e-4,4.4049415375376975e-5,-1.1898899064049858e-8,6.477545569824074e-4,4.398348465637827e-5,-1.1867178141227173e-8,6.482321283936542e-4,4.402769158632383e-5,-1.1870077472484313e-8,6.486874451684293e-4,4.4180110616365914e-5,-1.190843181001741e-8,6.490845942283705e-4,4.442004791255551e-5,-1.1976767655848106e-8,6.493996674170178e-4,4.471399475420608e-5,-1.2064930829832403e-8,6.496230132730473e-4,4.502224997790057e-5,-1.2160170877601224e-8,6.497593165315699e-4,4.530541463222377e-5,-1.2249376594925378e-8,6.498257985589669e-4,4.5530023897967826e-5,-1.2321106524374785e-8,6.498490150835266e-4,4.5672787320462324e-5,-1.2367125184429808e-8,6.49860849248668e-4,4.5723111388483726e-5,-1.2383285624306336e-8,6.498943459428724e-4,4.56838734642481e-5,-1.2369777794004631e-8,6.499798483583396e-4,4.5570805788698724e-5,-1.2330940194194202e-8,6.50141540921297e-4,4.5410946737608354e-5,-1.2274858062634918e-8,6.50394252361549e-4,4.524034632505981e-5,-1.2212820673742356e-8,6.507402898474811e-4,4.510081644081227e-5,-1.2158498221920027e-8,6.511662941424877e-4,4.503501619399875e-5,-1.2126476181320007e-8,6.516409652377725e-4,4.507883196177047e-5,-1.2129687005367259e-8,6.521158333795178e-4,4.525065636203942e-5,-1.2175577965498676e-8,6.525322031476455e-4,4.553941364164363e-5,-1.2261726884082065e-8,6.528365381010586e-4,4.5896913451435045e-5,-1.2372957541494924e-8,6.53001864278318e-4,4.6243075736359524e-5,-1.2482966177543175e-8,6.530450153429226e-4,4.6489294263523875e-5,-1.2562182212005331e-8,6.530262302326049e-4,4.657300931178719e-5,-1.2589338662501737e-8,6.530266241761063e-4,4.6484341852986244e-5,-1.2560253186849565e-8,6.531153745404709e-4,4.626789168937222e-5,-1.248839206681805e-8,6.533259500794602e-4,4.600025166059354e-5,-1.2397689341809364e-8,6.536518626923442e-4,4.5759473698595974e-5,-1.2312978138197302e-8,6.540578644141293e-4,4.56028117197643e-5,-1.2253084886290816e-8,6.544960449519266e-4,4.555825704891566e-5,-1.222809841334969e-8,6.549192256583115e-4,4.562646405711048e-5,-1.2239671643138295e-8,6.552892641813089e-4,4.578752220519903e-5,-1.2282737836356728e-8,6.555809511761707e-4,4.6008638879196065e-5,-1.23475952409882e-8,6.557831063329746e-4,4.625097547136351e-5,-1.2421941128098137e-8,6.558981448308248e-4,4.647540239116749e-5,-1.2492798538365653e-8,6.559406151232579e-4,4.664739366488725e-5,-1.2548313680324879e-8,6.55934795368779e-4,4.674108669115587e-5,-1.2579299722569738e-8,6.559114262674878e-4,4.674234926529412e-5,-1.258037528172128e-8,6.559037475636952e-4,4.6650576798607184e-5,-1.2550589153337167e-8,6.559431799480559e-4,4.647890047352641e-5,-1.2493483386171588e-8,6.560551490320222e-4,4.625272895401807e-5,-1.241665830734056e-8,6.562554736211841e-4,4.6006843480568736e-5,-1.2330965549949725e-8,6.565475621712678e-4,4.5781298533340715e-5,-1.224938677601268e-8,6.569205673771478e-4,4.561626701972796e-5,-1.2185538559539806e-8,6.573487109405446e-4,4.554580590585966e-5,-1.2151659149246088e-8,6.577924153502072e-4,4.5590415220543125e-5,-1.215594635662814e-8,6.58202593113294e-4,4.574881097857109e-5,-1.2199412084801173e-8,6.585297262397721e-4,4.59909687918636e-5,-1.2273096298199133e-8,6.587382425042407e-4,4.62568085760598e-5,-1.2357324481940705e-8,6.588231495329708e-4,4.646624084061321e-5,-1.2425073606254522e-8,6.588204978599106e-4,4.65431768960108e-5,-1.2450244405357208e-8,6.588012287440477e-4,4.644637290291428e-5,-1.2418191579088436e-8,6.588458419334591e-4,4.61899779128904e-5,-1.2332619928155143e-8,6.590119357198074e-4,4.5838877755827045e-5,-1.2214031205022718e-8,6.593137391720427e-4,4.548068499544168e-5,-1.2090617955505468e-8,6.597236153319567e-4,4.519227164557173e-5,-1.1987544773090963e-8,6.601895628610029e-4,4.5018724180246425e-5,-1.1920237507966108e-8,6.606554423138694e-4,4.49697296954195e-5,-1.189308702067798e-8,6.610749674083071e-4,4.502738150794323e-5,-1.1901620274760557e-8,6.614178803084616e-4,4.515738862713096e-5,-1.1935726383931564e-8,6.616706357616994e-4,4.531887849385159e-5,-1.1982572911828448e-8,6.61834447382716e-4,4.547133072107415e-5,-1.2028824379413137e-8,6.6192264137107e-4,4.5579126378920714e-5,-1.2062283892577649e-8,6.619580115031964e-4,4.561475770029697e-5,-1.2073180904243843e-8,6.619700433900955e-4,4.556135838574398e-5,-1.2055197467963607e-8,6.61991699576438e-4,4.5414661343623503e-5,-1.200620365179172e-8,6.620555712945934e-4,4.51840896179602e-5,-1.1928622796913211e-8,6.621894741458482e-4,4.489240920507422e-5,-1.182931385336294e-8,6.624119923538018e-4,4.457342997377879e-5,-1.1718880084197724e-8,6.627287685916333e-4,4.4267655432898346e-5,-1.1610397059841187e-8,6.631303288208212e-4,4.401622188040044e-5,-1.1517614629584648e-8,6.635920520441031e-4,4.3853814799379214e-5,-1.1452739383809711e-8,6.640766309640293e-4,4.3801500136949246e-5,-1.1423990223408127e-8,6.645391547065707e-4,4.3860465762502585e-5,-1.1433213609765761e-8,6.649348907757294e-4,4.400781803244625e-5,-1.1474022268078109e-8,6.652295738743438e-4,4.4196208170768975e-5,-1.1531237312247409e-8,6.654109062286146e-4,4.435975285734818e-5,-1.1582666541464982e-8,6.654978651706966e-4,4.442827675775156e-5,-1.1603994416442983e-8,6.655421492594667e-4,4.434891282437948e-5,-1.1576365369570233e-8,6.656163939754637e-4,4.410816482066763e-5,-1.1494114352982963e-8,6.657897957674164e-4,4.3742356818358154e-5,-1.136844192019311e-8,6.661014873919342e-4,4.332714263267976e-5,-1.1223980436229123e-8,6.66546435586102e-4,4.294919512763321e-5,-1.1089453851181167e-8,6.670813088959861e-4,4.267547632709114e-5,-1.0987569771282318e-8,6.676444956798761e-4,4.2535713727573955e-5,-1.0929181332560628e-8,6.681774843805674e-4,4.252258156620681e-5,-1.0913107238000703e-8,6.686384044883153e-4,4.260325002735994e-5,-1.0929587800350869e-8,6.690062161390295e-4,4.2733346818073974e-5,-1.0964592948012124e-8,6.692787368457985e-4,4.286787118068754e-5,-1.1003310653399214e-8,6.694682707915127e-4,4.296777011126571e-5,-1.1032406940396475e-8,6.695972389198812e-4,4.300322240539698e-5,-1.1041321064106932e-8,6.696946149272839e-4,4.295523829967347e-5,-1.1023008875669534e-8,6.697929196037282e-4,4.2816698354687566e-5,-1.0974419442589062e-8,6.699251733474295e-4,4.2593196764431914e-5,-1.0896807753560433e-8,6.701212865700194e-4,4.230341044442153e-5,-1.0795842637994127e-8,6.704037174690174e-4,4.1978221761531796e-5,-1.0681328919295532e-8,6.707828559139265e-4,4.1657672615155404e-5,-1.0566288547495148e-8,6.712532690016723e-4,4.138524242901553e-5,-1.0465216530512158e-8,6.717922865944109e-4,4.119981360746378e-5,-1.0391550497627238e-8,6.723621835534646e-4,4.112674104581725e-5,-1.0354712996658229e-8,6.729163674503193e-4,4.117028254115718e-5,-1.0357404924622589e-8,6.734087601805087e-4,4.1309743555585105e-5,-1.0393953428156289e-8,6.738045432664134e-4,4.150094656252346e-5,-1.0450378613876328e-8,6.740899326696811e-4,4.168357203370962e-5,-1.0506544084907395e-8,6.742784623792691e-4,4.1793849405908306e-5,-1.0540362360195925e-8,6.744112537778521e-4,4.178074134045985e-5,-1.053345924363471e-8,6.745493044657425e-4,4.1621948675312874e-5,-1.0476951591107518e-8,6.747577135709221e-4,4.1334207987166106e-5,-1.0375304924468307e-8,6.750854372839487e-4,4.097200972504231e-5,-1.0246168788815136e-8,6.755482329271165e-4,4.0612262569480024e-5,-1.0115334350837037e-8,6.761231653952755e-4,4.032957409188221e-5,-1.0008413784011982e-8,6.767578521833027e-4,4.017301604488647e-5,-9.94290139609733e-9,6.773894310269758e-4,4.015465619698559e-5,-9.924065754328441e-9,6.779636072244319e-4,4.025271194279116e-5,-9.945684323589636e-9,6.784462992592076e-4,4.042426218751692e-5,-9.994032077050076e-9,6.788262531519046e-4,4.0619750895181834e-5,-1.0052621713449427e-8,6.791114670866537e-4,4.0793953317949755e-5,-1.0105937498144301e-8,6.793233103813246e-4,4.091197852871128e-5,-1.0141630257049476e-8,6.794909850969935e-4,4.0951453051865014e-5,-1.01514585939184e-8,6.7964728168145e-4,4.090274064307937e-5,-1.0131510062344522e-8,6.798254076015645e-4,4.076859742149239e-5,-1.0082138915684628e-8,6.800561699820016e-4,4.0563850495158245e-5,-1.0007849266961698e-8,6.8036477449427e-4,4.031492566409186e-5,-9.917132870207206e-9,6.807668440871827e-4,4.0058407100975396e-5,-9.822042726828585e-9,6.812639721347429e-4,3.98374389784475e-5,-9.737104678895134e-9,6.818400995093161e-4,3.9695020030860256e-5,-9.677186556046806e-9,6.824608377364019e-4,3.966437272967973e-5,-9.65429089058683e-9,6.830778514977682e-4,3.975846050622824e-5,-9.673896804332269e-9,6.8363893699842e-4,3.996251016407234e-5,-9.732153955509115e-9,6.841017372567231e-4,4.023361206932423e-5,-9.815394137449953e-9,6.844466228191916e-4,4.05092582535884e-5,-9.902727164968086e-9,6.846838738110617e-4,4.072297495515305e-5,-9.971213593928136e-9,6.848523051199315e-4,4.082220466885166e-5,-1.000201594026922e-8,6.850095982123903e-4,4.07828469698932e-5,-9.98560223372568e-9,6.852171873960667e-4,4.0616222783899834e-5,-9.924483469796086e-9,6.855238737488718e-4,4.036653532224773e-5,-9.832728989987601e-9,6.859526224257744e-4,4.00993290741107e-5,-9.732322816114245e-9,6.86494446675017e-4,3.988386503340198e-5,-9.647264291981038e-9,6.871115650576727e-4,3.977452661168896e-5,-9.597109977300679e-9,6.877489646437295e-4,3.979728759741124e-5,-9.592045225736865e-9,6.883501673843535e-4,3.994563772478752e-5,-9.631095222420986e-9,6.888714062386018e-4,4.018638516815171e-5,-9.70376889018204e-9,6.89289773006254e-4,4.047168422173579e-5,-9.79400284884246e-9,6.896042371432542e-4,4.075196513064055e-5,-9.884614283434994e-9,6.898314601928995e-4,4.0985699460782386e-5,-9.960814485912439e-9,6.899994707481199e-4,4.114457896454388e-5,-1.0012195088317796e-8,6.901416346331935e-4,4.1214864630885974e-5,-1.0033353714839723e-8,6.902920197616812e-4,4.119656099349532e-5,-1.0023683572674945e-8,6.904821165138293e-4,4.1101881144250444e-5,-9.986848350330236e-9,6.907382638650003e-4,4.09537582206849e-5,-9.930264533573738e-9,6.910790024415842e-4,4.0784383529647454e-5,-9.864646068425661e-9,6.915118287645734e-4,4.06330723894299e-5,-9.803388502339166e-9,6.92029478921974e-4,4.054225759251511e-5,-9.761330963984282e-9,6.926069404711696e-4,4.055042383207215e-5,-9.752392841996608e-9,6.93201577440324e-4,4.068187369966381e-5,-9.785963135087253e-9,6.937591702126083e-4,4.0935603885594335e-5,-9.86281521804032e-9,6.942270330740719e-4,4.1278405821690475e-5,-9.972398042232453e-9,6.945712632534799e-4,4.164815702606528e-5,-1.0093706764041374e-8,6.947908016139201e-4,4.196965425274466e-5,-1.0200641875276863e-8,6.949204861200494e-4,4.217816671559534e-5,-1.027018519806173e-8,6.950204845917e-4,4.2240436893643125e-5,-1.0289782773011855e-8,6.951568783835051e-4,4.2163991349505506e-5,-1.0260761389728324e-8,6.953820071952732e-4,4.1992296890793167e-5,-1.0196951522017627e-8,6.957214881833488e-4,4.1789873918597023e-5,-1.0119904592446122e-8,6.961704254910497e-4,4.162399139921554e-5,-1.0052855248199617e-8,6.966977464138914e-4,4.154851515582117e-5,-1.0015196278929336e-8,6.972559483814732e-4,4.159322790104321e-5,-1.0018554243928807e-8,6.977931798100247e-4,4.1759927789965654e-5,-1.006500579411969e-8,6.982647541256812e-4,4.202510292476047e-5,-1.0147554437825793e-8,6.986416504509654e-4,4.23477429452799e-5,-1.0252547579380231e-8,6.989144432942709e-4,4.267979568978907e-5,-1.0363254734980224e-8,6.990924889111561e-4,4.297633660441667e-5,-1.046354978955787e-8,6.991995765864698e-4,4.3203125469473766e-5,-1.0540778184890215e-8,6.992679525856361e-4,4.334055988722916e-5,-1.0587341630078698e-8,6.993324737511327e-4,4.338433788379723e-5,-1.0601042222300012e-8,6.994259422448656e-4,4.33439373540044e-5,-1.0584573537885036e-8,6.995758178822197e-4,4.324016014019141e-5,-1.0544655239898046e-8,6.998018846283525e-4,4.310255497934784e-5,-1.049116419505745e-8,7.001142366953494e-4,4.296687167505949e-5,-1.0436353487376878e-8,7.00511078834245e-4,4.28720812612912e-5,-1.0393964239501379e-8,7.009763426032131e-4,4.285598693783195e-5,-1.0377799290857615e-8,7.014781075470884e-4,4.294835757893481e-5,-1.0399281482030315e-8,7.01969994354906e-4,4.316142500987284e-5,-1.0463892261942207e-8,7.023982919714376e-4,4.3479848296496525E-05,-1.0567290124078954e-8,7.027162843902773e-4,4.385542505735799e-5,-1.0693127635927223e-8,7.029027821209852e-4,4.42135354664673e-5,-1.0815191406563102e-8,7.029758681401383e-4,4.44744496722845e-5,-1.0904987723913586e-8,7.029914590549362e-4,4.458263269534113e-5,-1.0942205658178163e-8,7.030240973959722e-4,4.4528749813272105e-5,-1.0922540209312683e-8,7.031394395161471e-4,4.435182467687107e-5,-1.0858532246731884e-8,7.033730001998939e-4,4.412187581728143e-5,-1.0773708033050758e-8,7.037236525719877e-4,4.391449186565976e-5,-1.0694038600834027e-8,7.041603691418619e-4,4.378961991431415e-5,-1.0640801646843702e-8,7.046353875274154e-4,4.378031259963003e-5,-1.0626632482199593e-8,7.050976569019387e-4,4.3890906265389334e-5,-1.0654550090175343e-8,7.055033512381783e-4,4.4101463726791514e-5,-1.0719012226212606e-8,7.058225832089542e-4,4.4375368649487437e-5,-1.0808140470310517e-8,7.060425584939559e-4,4.4667972118194066e-5,-1.0906544945457309e-8,7.061676354241381e-4,4.4934992978476056e-5,-1.0998328320161188e-8,7.062167941862384e-4,4.513963638656883e-5,-1.1069817830506132e-8,7.062192461146077e-4,4.525758094198104e-5,-1.1111586225981603e-8,7.062091365135665e-4,4.527941172781372e-5,-1.1119497270185845e-8,7.062203187254132e-4,4.521057587191405e-5,-1.1094762027694266e-8,7.062819845440831e-4,4.5069391812404094e-5,-1.1043233702560278e-8,7.06415505665796e-4,4.488393907460559e-5,-1.0974313413837001e-8,7.066323612634319e-4,4.4688540962570335e-5,-1.089978106738531e-8,7.069327966070445e-4,4.452012245181196e-5,-1.0832652650027417e-8,7.073048809528734e-4,4.4414291049901125e-5,-1.0785940512482935e-8,7.077239303819673e-4,4.4400593182769026e-5,-1.0771010723654536e-8,7.081530282662858e-4,4.449628480384157e-5,-1.0795218004047385e-8,7.08546309372772e-4,4.4698728013663695e-5,-1.0858860998889045e-8,7.088570074624559e-4,4.497837061391854e-5,-1.0952277710884579e-8,7.090511764918637e-4,4.527680031930541e-5,-1.1054882078469456e-8,7.091242875412201e-4,4.551603875633128e-5,-1.1138494306429178e-8,7.091120498076681e-4,4.562208888687946e-5,-1.117598713005094e-8,7.090846177539748e-4,4.5555482629709526e-5,-1.1152408119707443e-8,7.091216217038918e-4,4.533143658656323e-5,-1.1072207380177586e-8,7.092802036001695e-4,4.501504148607371e-5,-1.0957523637321026e-8,7.095747795025035e-4,4.469379194735881e-5,-1.0838617797559788e-8,7.099779924341384e-4,4.4444886939645104e-5,-1.0742641317809363e-8,7.104372322708001e-4,4.431417690490606e-5,-1.0686428868332595e-8,7.108944427121056e-4,4.43116119214771e-5,-1.067478403156329e-8,7.113007184917924e-4,4.441806234799192e-5,-1.0702470480375884e-8,7.11623679367533e-4,4.459632083759559e-5,-1.0757592826290675e-8,7.118492538786992e-4,4.480161570626685e-5,-1.0824953711808661e-8,7.11980233791131e-4,4.4989876558258635e-5,-1.0888886188899312e-8,7.120332870788396e-4,4.512373743613871e-5,-1.093553525218388e-8,7.120351830951165e-4,4.517671189813642e-5,-1.0954618391336977e-8,7.12018506314901e-4,4.513573773315998e-5,-1.094058962873492e-8,7.12017114163592e-4,4.500208629716573e-5,-1.0893112309757543e-8,7.120616914124563e-4,4.47905968840482e-5,-1.0816818974571956e-8,7.121758530794824e-4,4.452730583824109e-5,-1.0720449941183935e-8,7.12373225808455e-4,4.424582850797638e-5,-1.0615582948149321e-8,7.126557056969058e-4,4.3983020894276823E-05,-1.0515185840291802e-8,7.130128748690027e-4,4.377430370445033e-5,-1.0432097453514521e-8,7.134225026408814e-4,4.364884043657226e-5,-1.0377410518766734e-8,7.138521296875519e-4,4.3624612316220915e-5,-1.0358662531311387e-8,7.142621087199356e-4,4.370335181858926e-5,-1.0377769717223068e-8,7.146110340123279e-4,4.386580901383108e-5,-1.0428929632440784e-8,7.148644843579355e-4,4.406916289330847e-5,-1.0497305281474699e-8,7.150068229220568e-4,4.424991700273873e-5,-1.0559887164612516e-8,7.150530524366479e-4,4.4336178298709344e-5,-1.0590042672540263e-8,7.15053734810595e-4,4.42704276374271e-5,-1.056605287956476e-8,7.150846291680763e-4,4.403576931514396e-5,-1.0480847359923442e-8,7.152198511851885e-4,4.3670120179829765e-5,-1.0347183403858284e-8,7.155008744882165e-4,4.325529287265698e-5,-1.019372183871818e-8,7.159202063701489e-4,4.288442453165478e-5,-1.0053486378649688e-8,7.164288382090401e-4,4.262714020159595e-5,-9.95164253828637e-9,7.169595712173114e-4,4.2511112636761016e-5,-9.899008498589871e-9,7.174506599694499e-4,4.2524020942925516e-5,-9.892540841677029e-9,7.178598144621892e-4,4.2627404619268514e-5,-9.91983987587705e-9,7.181678446769699e-4,4.27721963699476e-5,-9.964266310840572e-9,7.183759126586623e-4,4.291045343841636e-5,-1.0008908875743132e-8,7.18500405594647e-4,4.300234497131943e-5,-1.0039122755238085e-8,7.185677828556197e-4,4.30196320106107e-5,-1.0044007543963475e-8,7.186101042079086e-4,4.294717412168661e-5,-1.001723346601736e-8,7.186610533817944e-4,4.278335317154585e-5,-9.957406051808767e-9,7.18752168284341e-4,4.253964376045135e-5,-9.867997924772748e-9,7.189091853091514e-4,4.2239192867652126e-5,-9.756827287293615e-9,7.191486680453425e-4,4.191412441845834e-5,-9.635062646698978e-9,7.194753833185204e-4,4.1601472907260915e-5,-9.515794554155215e-9,7.198809710473828e-4,4.1338056243998875e-5,-9.412302783608438e-9,7.203442861506658e-4,4.115483206636226e-5,-9.33615368049298e-9,7.208335901116579e-4,4.107136650050428e-5,-9.295250483512817e-9,7.21310582686931e-4,4.109113767836152e-5,-9.292009746461441e-9,7.217361374829578e-4,4.1198376722348027e-5,-9.321908690989147e-9,7.220776248483091e-4,4.135721706930838e-5,-9.372781644989014e-9,7.223174798075731e-4,4.151444248885548e-5,-9.42550576306746e-9,7.224616572947125e-4,4.160760778234224e-5,-9.456878589667109e-9,7.225448756233372e-4,4.157965702183735e-5,-9.445137808270311e-9,7.226279081272899e-4,4.139838628719147e-5,-9.377400707335786e-9,7.22782831518834e-4,4.107397411941798e-5,-9.256348015631858e-9,7.230679109607896e-4,4.066348908937088e-5,-9.10200491377539e-9,7.235030324353299e-4,4.025454393631868e-5,-8.94585670514005e-9,7.240604349135902e-4,3.993307278447048e-5,-8.819235976789946e-9,7.246770474161983e-4,3.9752475639384204e-5,-8.74220271896425e-9,7.25280167562206e-4,3.972032945361145e-5,-8.71863631377646e-9,7.258112499168408e-4,3.980545137139982e-5,-8.738490452126625e-9,7.262379795707331e-4,3.995588791311808e-5,-8.783922245220665e-9,7.265545698200255e-4,4.011659749582939e-5,-8.83541706972929e-9,7.267755339873465e-4,4.024105833074878e-5,-8.875936197311278e-9,7.269279845271264e-4,4.029652987094112e-5,-8.892976574019021e-9,7.270451450548466e-4,4.026516750216042e-5,-8.879235354411228e-9,7.271616327638609e-4,4.014326976173892e-5,-8.832575722188413e-9,7.273099551577129e-4,3.993996905439593e-5,-8.755682817923396e-9,7.275175140387404e-4,3.9675705000669275e-5,-8.65552457776656e-9,7.278037036096325e-4,3.938023732409923e-5,-8.542589315450922e-9,7.281770882665271e-4,3.9089662899162196e-5,-8.429786504232964e-9,7.286331360591269e-4,3.884197223268564e-5,-8.330888585721539e-9,7.291533677555678e-4,3.867120217350354e-5,-8.258515599405508e-9,7.297067738756757e-4,3.860090558086704e-5,-8.221844583454592e-9,7.302539666578742e-4,3.8638182704821905e-5,-8.224400957513714e-9,7.307538962269374e-4,3.876983049784128e-5,-8.262452625865695e-9,7.311722092434422e-4,3.896204742743471e-5,-8.324571705863522e-9,7.314897527645678e-4,3.9164524285314036e-5,-8.3927927962959e-9,7.317094414493923e-4,3.931904431090589e-5,-8.445566122962981e-9,7.318594845103638e-4,3.937201425400375e-5,-8.462392890762826e-9,7.319908066651358e-4,3.928917259530832e-5,-8.42948659848983e-9,7.321669790530052e-4,3.906885058053107e-5,-8.345010771919948e-9,7.324469928605998e-4,3.8748281868431985e-5,-8.22172192559327e-9,7.328651675913713e-4,3.839739804730499e-5,-8.084889760603431e-9,7.334166535442571e-4,3.809868218835139e-5,-7.964969302770367e-9,7.340570593855317e-4,3.791967584824037e-5,-7.88746795733556e-9,7.347180158889726e-4,3.789093829132095e-5,-7.864694610367329e-9,7.35330978895752e-4,3.799999059049531e-5,-7.893257941684946e-9,7.358473549973659e-4,3.820188625552753e-5,-7.95762224232136e-9,7.36247320859895e-4,3.8438037090302746e-5,-8.036768609057542e-9,7.365375874964547e-4,3.865343008418449e-5,-8.110432460280896e-9,7.367432165561168e-4,3.880698844533339e-5,-8.163005946748622e-9,7.368986354207467e-4,3.8875061863166875e-5,-8.185035831936871e-9,7.370405983510341e-4,3.885061218849014e-5,-8.173156102939069e-9,7.372035548293182e-4,3.8740714185469477e-5,-8.129326522098361e-9,7.374166923744471e-4,3.8563901864775714e-5,-8.05990590565618e-9,7.377017025310008e-4,3.834777065479802e-5,-7.974743340507008e-9,7.38070622142274e-4,3.8126512150255426e-5,-7.886238130470689e-9,7.385236155784789e-4,3.7937678633434624e-5,-7.80816935910351e-9,7.390471872462534e-4,3.7817479218706066e-5,-7.754041850862354e-9,7.39613896733862e-4,3.779443638936219e-5,-7.734832514708064e-9,7.401848806728716e-4,3.788221163124379e-5,-7.75635096994411e-9,7.407160397257579e-4,3.807351780711525e-5,-7.816863716772319e-9,7.411675017627108e-4,3.83377342940748e-5,-7.905958120875292e-9,7.415142919555773e-4,3.8624442718095306e-5,-8.005552813609206e-9,7.417549191637427e-4,3.887335159084064e-5,-8.093346705012602e-9,7.419146387750976e-4,3.902868594401002e-5,-8.14809060536792e-9,7.420415466924796e-4,3.9054260051663074e-5,-8.155305505607456e-9,7.421957712450767e-4,3.894484020912841e-5,-8.111780096870276e-9,7.424340938914088e-4,3.873006125504485e-5,-8.02737573183699e-9,7.42793899355561e-4,3.846880194086285e-5,-7.923264854219435e-9,7.432812620141698e-4,3.823437454532318e-5,-7.82664187542525e-9,7.438677441412036e-4,3.809405520022208e-5,-7.763143694430137e-9,7.444981839003461e-4,3.808955287654943e-5,-7.749409650064826e-9,7.451073361538792e-4,3.822586805072566e-5,-7.788599612458683e-9,7.456389114710405e-4,3.847282903416642e-5,-7.870587084328902e-9,7.460595325375159e-4,3.8777620572790256e-5,-7.97634017132848e-9,7.463633344203971e-4,3.90818258416466e-5,-8.084164382373755e-9,7.465679154850866e-4,3.9335967587656355e-5,-8.175197120055171e-9,7.467056704916095e-4,3.950769387356267e-5,-8.236653653676395e-9,7.468147802209882e-4,3.958364471163843e-5,-8.262748556136644e-9,7.469323302937862e-4,3.956728801685668e-5,-8.25406326448367e-9,7.470900224543724e-4,3.947522924674709e-5,-8.21625230612436E-09,7.473117786206921e-4,3.9333574246693434e-5,-8.15868872939971e-9,7.476122444451707e-4,3.917483364161524e-5,-8.093285230637837e-9,7.479954258414936e-4,3.9035053263447094e-5,-8.033430521419e-9,7.484532171378763e-4,3.8950407831258895e-5,-7.992775209673987e-9,7.489642810589979e-4,3.895244597740534e-5,-7.983527194781351e-9,7.494944525688141e-4,3.906165830601274e-5,-8.014060469529422e-9,7.500002746529996e-4,3.9280174203610924e-5,-8.086078232861302e-9,7.504369055959056e-4,3.9586013083436254e-5,-8.192238951203957e-9,7.507699029120727e-4,3.993257848288867e-5,-8.31570446363603e-9,7.509875768828624e-4,4.025651618290501e-5,-8.432888245201967e-9,7.511084739632404e-4,4.049377684511111e-5,-8.519412651981377e-9,7.511792950330379e-4,4.059903216808652e-5,-8.557453460506901e-9,7.51262580818493e-4,4.056073182061699e-5,-8.541545996409175e-9,7.514184424281146e-4,4.040549547796316e-5,-8.480474453332119e-9,7.516871944073718e-4,4.019036204144835e-5,-8.394680466844668e-9,7.520786833722089e-4,3.998634873333417e-5,-8.31041577663291e-9,7.525708694622507e-4,3.985920059382761e-5,-8.252707967838128e-9,7.531170338310043e-4,3.985300180192867e-5,-8.239147244363815e-9,7.536588526186752e-4,3.998070036708499e-5,-8.276008258796359e-9,7.541413990265233e-4,4.022342678605548e-5,-8.357544078241255e-9,7.54525863865062e-4,4.05380201242533e-5,-8.468421354961952e-9,7.547967008719969e-4,4.0869815523018587e-5,-8.588335122366214e-9,7.549619635945633e-4,4.116635887970118e-5,-8.697206288555848e-9,7.550480101612701e-4,4.1388047065979665e-5,-8.779387588935774e-9,7.550913554910073e-4,4.151357045899603e-5,-8.825967420826681e-9,7.551305842522161e-4,4.154031612162445e-5,-8.835132581061215e-9,7.552001895864037e-4,4.148139165922518e-5,-8.811164119887681e-9,7.55326828426084e-4,4.1361260126847735e-5,-8.762820923675844e-9,7.555274925687125e-4,4.12114438663705e-5,-8.70170647458801e-9,7.558087203055979e-4,4.1066871518413693e-5,-8.640891785799208e-9,7.561661037027524e-4,4.09626519740274e-5,-8.593743073534889e-9,7.565837873294337e-4,4.0930595848213674e-5,-8.572674913245856e-9,7.570343023719693e-4,4.0994708019895345e-5,-8.58746909968765e-9,7.574798432523166e-4,4.116526167701248e-5,-8.642942450707564e-9,7.578766597453443e-4,4.143219506580418e-5,-8.736227826676889e-9,7.581839700006578e-4,4.1760430647830195e-5,-8.85472089607003e-9,7.583769007372872e-4,4.209143613341075e-5,-8.97646260497755e-9,7.584593350854895e-4,4.235492678888832e-5,-9.074535079715516e-9,7.584693326984003e-4,4.249010700473473e-5,-9.125223368184249e-9,7.58470988460264e-4,4.246860282595259e-5,-9.116849569321388e-9,7.585337351705025e-4,4.230716762507732e-5,-9.054700673282172e-9,7.587083994551931e-4,4.206260627237825e-5,-8.959261900385463e-9,7.590114511903744e-4,4.181169099700161e-5,-8.858889905876627e-9,7.594231618304254e-4,4.162653730197789e-5,-8.780808674797843e-9,7.598974502542237e-4,4.155567159126383e-5,-8.744091746991325e-9,7.603770701441117e-4,4.161547883315085e-5,-8.756261200644959e-9,7.608083072352005e-4,4.1791395294714015e-5,-8.813314074637931e-9,7.611518311466191e-4,4.204568142158321e-5,-8.902175671211233e-9,7.613885521055572e-4,4.232834360337178e-5,-9.004492689727314e-9,7.615206177534766e-4,4.258845489577387e-5,-9.100837967244961e-9,7.61568322961355e-4,4.2783817580922045e-5,-9.174529986143186e-9,7.615641863347267e-4,4.288746563387388e-5,-9.214382010099968e-9,7.615458421224065e-4,4.289030424473849e-5,-9.215981555878051e-9,7.615493776879412e-4,4.280020160465099e-5,-9.181526671744856e-9,7.616042486398303e-4,4.26385797343642e-5,-9.118594656166542e-9,7.61730210455046e-4,4.2435795379432153e-5,-9.03837554219817e-9,7.61936050598561e-4,4.222646210520275e-5,-8.953874020503188e-9,7.622194897874063e-4,4.204535712200338e-5,-8.87837427683221e-9,7.625676250645121e-4,4.1923882039288665e-5,-8.824153587401546e-9,7.629576171601758e-4,4.188660389994002e-5,-8.801211913123232e-9,0.00076335781686778445,4.194730410322629e-5,-8.815719768604965e-9,7.637301806589586e-4,4.210424149540176e-5,-8.868024377405146e-9,7.640353866362429e-4,4.233530176320579e-5,-8.950502771608857e-9,7.642418368971225e-4,4.259542541961727e-5,-9.046295943306457e-9,7.643379706413167e-4,4.282042794217269e-5,-9.130652554192153e-9,7.643436783033333e-4,4.29411494887276e-5,-9.176459932444947e-9,7.643128225427903e-4,4.290719105443412e-5,-9.163573390875584e-9,7.643198908851147e-4,4.27107298651634e-5,-9.088104238947882e-9,7.644329712891078e-4,4.23954390951903e-5,-8.965872528852865e-9,7.646866633436667e-4,4.204199444422708e-5,-8.826934866527333e-9,7.650704200976676e-4,4.17372669333947e-5,-8.704057045239502e-9,7.655369936842672e-4,4.154471093131832e-5,-8.621706108552556e-9,7.660227565342318e-4,4.1489461027239444e-5,-8.590446292021975e-9,7.664679096395077e-4,4.155968867214678e-5,-8.60719762281304e-9,7.668295552510263e-4,4.1717667344140696e-5,-8.65897698447111e-9,7.670867797953163e-4,4.191334217832278e-5,-8.727615499482921e-9,7.672399375245228e-4,4.209611415617943e-5,-8.794011363368658e-9,7.673067113076542e-4,4.2223374435902354e-5,-8.841422117427617e-9,7.673167461421355e-4,4.226589688328241e-5,-8.857772846673981e-9,7.673057770691697e-4,4.221051342646373e-5,-8.837001052988211e-9,7.673098402283448e-4,4.206030802892788e-5,-8.779391079594279e-9,7.673601781277127e-4,4.18326361185597e-5,-8.690943756311483e-9,7.674793660680467e-4,4.1555511526051535e-5,-8.58199870451685e-9,7.676789770593695e-4,4.126301892957958e-5,-8.465429763661297e-9,7.679588364412986e-4,4.0990480338567314e-5,-8.354768907767848e-9,7.683075907368027e-4,4.077001331558171e-5,-8.262536838002104e-9,7.687041577968274e-4,4.062672035544098e-5,-8.198843955832656e-9,7.691197778494181e-4,4.057536670843389e-5,-8.170131786714939e-9,7.69520695114969e-4,4.061730481647757e-5,-8.17788778750396e-9,7.698719236009533e-4,4.073758088267318e-5,-8.217289031700045e-9,7.701429410375053e-4,4.090284202188645e-5,-8.276083307954193e-9,7.703158959245221e-4,4.106194157234824e-5,-8.334583011415699e-9]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json new file mode 100644 index 00000000..ed067a15 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":12000,"numberOfSamples":1000,"samples":[7.703954280162467e-4,4.1152337826266915e-5,-8.368108119871265e-9,7.704163319665058e-4,4.111507788730868e-5,-8.352989399151336e-9,7.704421464154993e-4,4.091720944904923e-5,-8.275542352848811e-9,7.705485092428724e-4,4.05724562623383e-5,-8.140252864992262e-9,7.707939985966856e-4,4.014524130054576e-5,-7.971353086916377e-9,7.71193504222048e-4,3.972957759547678e-5,-7.80469566907836e-9,7.717115053607008e-4,3.9412072212316335e-5,-7.673655282248528e-9,7.722792203821364e-4,3.924081276169691e-5,-7.597334312683116e-9,7.728228927422465e-4,3.921592014800571e-5,-7.576902082499595e-9,7.732865636479628e-4,3.930044006202883e-5,-7.599469965429773e-9,7.736417360467977e-4,3.9439508716162856e-5,-7.645015059481085e-9,7.738862021781628e-4,3.9577299627356655e-5,-7.692550022805146e-9,7.740375781067476e-4,3.9667776867413035e-5,-7.724156675043192e-9,7.741257583521852e-4,3.9679734947780095e-5,-7.727075835179889e-9,7.741863193020013e-4,3.959810915098842e-5,-7.69451274251175e-9,7.742552430288779e-4,3.9423328672554246e-5,-7.625696494804441e-9,7.743646142276804e-4,3.9169548057952974e-5,-7.525395913350832e-9,7.745390796275454e-4,3.886191912277735e-5,-7.4029175785362335e-9,7.747931611691499e-4,3.853296073940333e-5,-7.2706518736087654e-9,7.751296404933389e-4,3.821816871539602e-5,-7.14230656603222e-9,7.75539277044951e-4,3.795118644851318e-5,-7.03102083378519e-9,7.760019965895818e-4,3.7759097444815016e-5,-6.947589780698099e-9,7.764894114568546e-4,3.7658393030000226e-5,-6.898960011119357e-9,7.769683935525284e-4,3.765194567776308e-5,-6.887041206138857e-9,7.77405468600329e-4,3.7727187339015794e-5,-6.907852463658269e-9,7.777719367210197e-4,3.7855696317654865e-5,-6.951096001721251e-9,7.780497715515111e-4,3.799465132874708e-5,-7.000433114460731e-9,7.782381033839588e-4,3.809125972066116e-5,-7.035036448543083e-9,7.783590131789634e-4,3.809174285674149e-5,-7.033143881376136e-9,7.784595953194529e-4,3.795570392998253e-5,-6.97793131163529e-9,7.786057068107846e-4,3.767368510457848e-5,-6.864708360881282e-9,7.78863996118783e-4,3.728037531656348e-5,-6.706310810691064e-9,7.792756265371022e-4,3.685219468959701e-5,-6.532225465482031e-9,7.798348397283327e-4,3.648330405006227e-5,-6.379231745544197e-9,7.804875774404013e-4,3.624915992465997e-5,-6.277220111165846e-9,7.811532791147602e-4,3.6178446406365796e-5,-6.238248751260801e-9,7.817563618614648e-4,3.624887846641678e-5,-6.254752293779451e-9,7.822492066349364e-4,3.6404572752001926e-5,-6.305999039127454e-9,7.826184621073835e-4,3.658034238992342e-5,-6.367226110433409e-9,7.828786448897808e-4,3.672020080806501e-5,-6.416659701095429e-9,7.830611528872669e-4,3.678622737434062e-5,-6.439002339589363e-9,7.83204269111392e-4,3.6760045223355876e-5,-6.4262288080890655e-9,7.83346116265409e-4,3.6640538094929564e-5,-6.376990645821899e-9,7.835202865150684e-4,3.644047816686522e-5,-6.2955425776532835e-9,7.837530585274323e-4,3.618322636043522e-5,-6.190565289506217e-9,7.840613538345039e-4,3.5899528490766174e-5,-6.073894295370791e-9,7.844511692520874e-4,3.56240404001225e-5,-5.959079652820332e-9,7.849166362486965e-4,3.5391266889247926e-5,-5.859734881539029e-9,7.854401461991078e-4,3.5230870470624936e-5,-5.787703349498604e-9,7.85994077008628e-4,3.516280326863614e-5,-5.751203618221222e-9,7.865443681490566e-4,3.519312942196211e-5,-5.753224515569559e-9,7.870557121649313e-4,3.531147041257569e-5,-5.790462278713693e-9,7.874977374834473e-4,3.549084781661851e-5,-5.8530751899271e-9,7.878512977067683e-4,3.5690381696580056e-5,-5.925483082828172e-9,7.88113902130303e-4,3.586089281430252e-5,-5.9883395159535995e-9,7.883033069918536e-4,3.595324388575569e-5,-6.021732124830117e-9,7.884579960410935e-4,3.5929083510116866e-5,-6.009544248256601e-9,7.886327975757129e-4,3.577280030598468e-5,-5.9444715378693474e-9,7.888879780100181e-4,3.550164046195876e-5,-5.832367391647236e-9,7.8927192870103e-4,3.51687389345516e-5,-5.693704861085736e-9,7.898018205719634e-4,3.4853326117873307e-5,-5.559814012217819e-9,7.904515896948133e-4,3.4636846056963114e-5,-5.463410169207496e-9,7.911567365586743e-4,3.457328365667514e-5,-5.426733674861982e-9,7.91836723351535e-4,3.4669207955395765e-5,-5.453450884163303e-9,7.924237202788972e-4,3.488486649734166e-5,-5.5288267094573905e-9,7.928824548961669e-4,3.515389152880303e-5,-5.627269436403621e-9,7.932136820118008e-4,3.540839736028799e-5,-5.722097489506235e-9,7.934449059141124e-4,3.5597063748403574e-5,-5.792673659357338e-9,7.936168882573704e-4,3.569210775996662e-5,-5.827295173952732e-9,7.937723217445624e-4,3.568791359332356e-5,-5.822884193637893e-9,7.93948800831336e-4,3.559595323883983e-5,-5.783216738249511e-9,7.941754088277288e-4,3.543933477989003e-5,-5.716920600537979e-9,7.944713320113322e-4,3.524834071649752e-5,-5.635744464363097e-9,7.948452117223364e-4,3.505690102972568e-5,-5.5531067119024055e-9,7.952946621025866e-4,3.489936168856889e-5,-5.482741290558481e-9,7.958060134527227e-4,3.4806877971801684e-5,-5.437234302862502e-9,7.963548356244236e-4,3.4803064153757236e-5,-5.4263155715433935e-9,7.969080873912969e-4,3.4899187129560714e-5,-5.454979598662578e-9,7.974285582348853e-4,3.50899868901018e-5,-5.521799771482021e-9,7.978815595783528e-4,3.53517139310461e-5,-5.618028402827992e-9,7.982428279621153e-4,3.5643920541599894e-5,-5.728107579266846e-9,7.985056927078104e-4,3.591576113045357e-5,-5.8319638327390805e-9,7.986852279968585e-4,3.6116131940588234e-5,-5.908914090462572e-9,7.988176580367524e-4,3.620557989303193e-5,-5.942429308719043e-9,7.989544079791842e-4,3.616720864975489e-5,-5.924668401918435e-9,7.991513656849079e-4,3.601375362426653e-5,-5.859607617947738e-9,7.994550428476274e-4,3.5788266373648105e-5,-5.763648882378041e-9,7.99888593020665e-4,3.5556588356057684e-5,-5.662870662485801e-9,8.004419741134302e-4,3.539153188530321e-5,-5.586797190304597e-9,8.010710698253013e-4,3.5351857597047766e-5,-5.559879219657929e-9,8.017086298947224e-4,3.546304659868737e-5,-5.5935163200738305e-9,8.022846671415112e-4,3.5708577068191366e-5,-5.6822096378184195e-9,8.027481145977655e-4,3.603666410112383e-5,-5.805964874906324e-9,8.03080122412991e-4,3.637928126071499e-5,-5.9377647708489825e-9,8.032943410005627e-4,3.66738652272459e-5,-6.0522761139605395e-9,8.034269249007324e-4,3.687843167960255e-5,-6.132033879229968e-9,8.035230519879982e-4,3.697653334579644e-5,-6.1696217748146e-9,8.036257380118303e-4,3.6974206946549126e-5,-6.166656508896828e-9,8.037692352128727e-4,3.689330257374978e-5,-6.131278442552063e-9,8.039764427338145e-4,3.6764723596644845e-5,-6.075520263494496e-9,8.042586457584074e-4,3.662315128777011e-5,-6.013183162784273e-9,8.046160819092535e-4,3.6503272989771094e-5,-5.9582713714511854e-9,8.050385231957502e-4,3.643678976682334e-5,-5.9237473528870625e-9,8.055057955743184e-4,3.644934285412461e-5,-5.920288595123292e-9,8.05988792090945e-4,3.655676717208342e-5,-5.95478706400642e-9,8.064519656770659e-4,3.676075426661275e-5,-6.028574833606665e-9,8.068582848986766e-4,3.7045013088594046e-5,-6.1357749440002495e-9,8.071769237677392e-4,3.737399900933667e-5,-6.26261951082692e-9,8.073924491758243e-4,3.769659412573422e-5,-6.388754892200863e-9,8.075124666197616e-4,3.7955997865778476e-5,-6.491115253060035e-9,8.075698393218493e-4,3.8104352666225344e-5,-6.549812033282912e-9,8.07616918266904e-4,3.811755258854625e-5,-6.5542030392740885e-9,8.077125028108634e-4,3.8004458985452114e-5,-6.506795533466793e-9,8.079056000982033e-4,3.780654452780539e-5,-6.4233624926436094e-9,8.082214227720043e-4,3.758774308343327e-5,-6.3291414262697445e-9,8.086539871520523e-4,3.741775103981728e-5,-6.252328710187585e-9,8.091672759069606e-4,3.7353752588214316e-5,-6.216752306565877e-9,8.097045052884347e-4,3.742558962134468e-5,-6.235686559437506e-9,8.10203012993122e-4,3.7628423384850995e-5,-6.308502277607127e-9,8.106106251449948e-4,3.792510731679957e-5,-6.421212634856097e-9,8.108985322821864e-4,3.8257644162653106e-5,-6.550833196339432e-9,8.11066628774171e-4,3.856383400569566e-5,-6.6720638631456955e-9,8.111401568994287e-4,3.8793232686939005e-5,-6.763879623403471e-9,8.111600098107639e-4,3.89173073971411e-5,-6.813868422693099e-9,8.111711107269196e-4,3.893182181341246e-5,-6.8194280235812216e-9,8.112128636990658e-4,3.8852913529948424e-5,-6.786357912765378e-9,8.1131356935384e-4,3.8710088334482416e-5,-6.726121364291298e-9,8.114885730374386e-4,3.853908980505929e-5,-6.652976845483148e-9,8.117408037071133e-4,3.837625006855202e-5,-6.5816575047402725e-9,8.120622864326276e-4,3.825456404102906e-5,-6.5257403552766695e-9,8.124357145823514e-4,3.82008938099246e-5,-6.496493824519633e-9,8.128358550233297e-4,3.823344877076438e-5,-6.50185004606853e-9,8.132312194083829e-4,3.8358874558908814e-5,-6.54518991660995e-9,8.135869354214777e-4,3.856887726212377e-5,-6.623869747140799e-9,8.138698868858205e-4,3.8837323813125146e-5,-6.727869263055802e-9,8.140566018155787e-4,3.91199837876055e-5,-6.83950023112515e-9,8.141427039935174e-4,3.935979230186433e-5,-6.9354371500791985e-9,8.14150262656473e-4,3.949946847388898e-5,-6.9918722744796985e-9,8.141277285832854e-4,3.949960053306327e-5,-6.991994835378283e-9,8.141388942367572e-4,3.935526219250151e-5,-6.93289197521611e-9,8.142430879224422e-4,3.910207785679162e-5,-6.8281493368907015e-9,8.144749296276758e-4,3.880686864520632e-5,-6.704223833237992e-9,8.1483306083408e-4,3.854646680042599e-5,-6.592073096421126e-9,8.152821053230805e-4,3.838435896231063e-5,-6.5178631025860026e-9,8.157651947313659e-4,3.835428291873892e-5,-6.49629781434836e-9,8.162207450781731e-4,3.845478693315215e-5,-6.528135674230928e-9,8.16597684699937e-4,3.865376270796675e-5,-6.60159629155916e-9,8.168657158061926e-4,3.889947743847334e-5,-6.69644446442954e-9,8.170194049574676e-4,3.913422953807289e-5,-6.7893400986806185e-9,8.17076394641524e-4,3.930728020730456e-5,-6.85914255437804e-9,8.170710316645813e-4,3.938449175604022e-5,-6.891061862959034e-9,8.170454569870298e-4,3.935306732398158e-5,-6.878882809994513e-9,8.170405722878981e-4,3.9221105681444305e-5,-6.825033584806315e-9,8.1708896023377e-4,3.901310215359767e-5,-6.7388979016364186e-9,8.172108407223391e-4,3.87633764776707e-5,-6.634171213681119e-9,8.174130175522054e-4,3.850938229687362e-5,-6.526094414707984e-9,8.176899834395489e-4,3.8286205079792516e-5,-6.4291520891420515e-9,8.180260959470649e-4,3.812267075009407e-5,-6.3554492104173685e-9,8.183979894619872e-4,3.803873780290355e-5,-6.313637763487015e-9,8.187769116206049e-4,3.804351923521837e-5,-6.308093725118056e-9,8.191312129866966e-4,3.813337134793312e-5,-6.338063937256885e-9,8.194296942684052e-4,3.8289922698924704e-5,-6.396704673018225e-9,8.196467238419641e-4,3.847879781237149e-5,-6.470354270719354e-9,8.197695294206804e-4,3.8650968100779566e-5,-6.538921130269099e-9,8.19806513649201e-4,3.874943540462814e-5,-6.5785960033068025e-9,8.197929489727498e-4,3.8723134804595094e-5,-6.5676898771434025e-9,8.197883002079536e-4,3.854613941350416e-5,-6.4947236728071645e-9,8.198609759695765e-4,3.823403064971981e-5,-6.365297279203114e-9,8.200636944477346e-4,3.784594464219167e-5,-6.203000857389413e-9,0.000820411436661712,3.746667085519243e-5,-6.042172936215794e-9,8.208749674671344e-4,3.7176223092774686e-5,-5.915617415305801e-9,8.213932248000017e-4,3.7022992160726405e-5,-5.843759010230899e-9,8.218961027605576e-4,3.701275044446644e-5,-5.830076453078521e-9,8.223254904904929e-4,3.711435819021485e-5,-5.863118056849916e-9,8.226473843906112e-4,3.727482958449793e-5,-5.922239824745653e-9,8.228545590175748e-4,3.7435687186837764e-5,-5.983966399587255e-9,8.229627474394682e-4,3.7545885310616436e-5,-6.027176921838554e-9,8.230036090129152e-4,3.756990148797665e-5,-6.036554527428151e-9,8.230167806825249e-4,3.749138311092206e-5,-6.004372061981051e-9,8.230423185742567e-4,3.731317666393389e-5,-5.930818699795622e-9,8.231143493501816e-4,3.705449505134662e-5,-5.823063768625377e-9,8.23256553209646e-4,3.674606808012696e-5,-5.693352353058202e-9,8.234798189428454e-4,3.642429612693932e-5,-5.556571384393087e-9,8.237820413355269e-4,3.6125418828181186e-5,-5.427765212931279e-9,8.241496751844597e-4,3.588054059534543e-5,-5.320016584338888e-9,8.245603883153199e-4,3.571199342395666e-5,-5.242923452023574e-9,8.249861688108776e-4,3.563099782478505e-5,-5.201638270344065e-9,8.253965549120751e-4,3.563626588694151e-5,-5.1962726434097535e-9,8.257620082869455e-4,3.571323197160154e-5,-5.221486300041849e-9,8.260577695440884e-4,3.583385451251235e-5,-5.266230045559657e-9,8.262687299902825e-4,3.595753207818218e-5,-5.313924512584801e-9,8.263954241197148e-4,3.6034603798458864e-5,-5.343784865943491e-9,8.264598903887887e-4,3.601442540484084e-5,-5.334201311502159e-9,8.265081515702821e-4,3.585914554288692e-5,-5.268642284511385e-9,8.26604385596247e-4,3.556101693181241e-5,-5.143074426032549e-9,8.268132192939278e-4,3.515537353926115e-5,-4.971501142912185e-9,8.271738744510702e-4,3.471782861774951e-5,-4.7848532086355065e-9,8.276795586094963e-4,3.4340322196190036e-5,-4.621118053741745e-9,8.282766891716653e-4,3.4095760039524445e-5,-4.5108069909192165e-9,8.288861464980373e-4,3.401140563924369e-5,-4.465996728964361e-9,8.29433355059079e-4,3.406500941237964e-5,-4.4785874372255114e-9,8.298704729894737e-4,3.420103631857123e-5,-4.526688711410476e-9,8.301833096396713e-4,3.4353709967328716e-5,-4.583790454622501e-9,8.303862100769367e-4,3.446546478614344e-5,-4.626173157513306e-9,8.305118250621173e-4,3.449687603771798e-5,-4.6370194576684565e-9,8.306008664699762e-4,3.442941009341466e-5,-4.607762309491803e-9,8.306940322478887e-4,3.426386875947961e-5,-4.537752547464339e-9,8.308263261536525e-4,3.401682527001027e-5,-4.4330652748613145e-9,8.310232819304966e-4,3.371620106257414e-5,-4.304822699303797e-9,8.312987280593526e-4,3.339641097448233e-5,-4.167187973746248e-9,8.31653979219806e-4,3.309335744578138e-5,-4.0351952674026125e-9,8.32078417238307e-4,3.283958122742209e-5,-3.9226242940869606e-9,8.325514069439921e-4,3.26599656110982e-5,-3.8401496329485945e-9,8.330453353948687e-4,3.256846904668967e-5,-3.793977723288974e-9,8.335293651888821e-4,3.2566169333962955e-5,-3.785049055168084e-9,8.33973516225973e-4,3.264061001145597e-5,-3.808740687729704e-9,8.343528580041156e-4,3.2766396288388346e-5,-3.855005633134729e-9,8.346517248312861e-4,3.290709657118518e-5,-3.9089874063833434e-9,8.348679389439184e-4,3.301872928211123e-5,-3.95230090306051e-9,8.350167359300278e-4,3.305558632640454e-5,-3.965393684369818e-9,8.351331058149185e-4,3.297932755397413e-5,-3.9314416005053e-9,8.352699660831031e-4,3.277126367429032e-5,-3.8417220291605366e-9,8.354889117471341e-4,3.244507340953231e-5,-3.7012047953805833e-9,8.358419691208809e-4,3.205326833172769e-5,-3.531440109697599e-9,8.36348763283404e-4,3.167867290599403e-5,-3.3670502139274996e-9,8.369813197061595e-4,3.140782451156133e-5,-3.244586908337016e-9,8.376693061030729e-4,3.129669563122999e-5,-3.1881493598681102e-9,8.383263658012633e-4,3.134863920078477e-5,-3.200051972071662e-9,8.388826052155265e-4,3.151766556410064e-5,-3.2619908468242225e-9,8.393050072888866e-4,3.173205489277276e-5,-3.344664087646371e-9,8.395988757541516e-4,3.192172100776251e-5,-3.419003963066664e-9,8.397963286098811e-4,3.203621272799185e-5,-3.46362815353071e-9,8.399416326313247e-4,3.205061679819683e-5,-3.4674080518768483e-9,8.400794992423449e-4,3.1963263817541386e-5,-3.4287495907215916e-9,8.402479103687121e-4,3.179002909330446e-5,-3.3534888117140308e-9,8.404745687451004e-4,3.155830071326884e-5,-3.2525737289196144e-9,8.407754646399417e-4,3.130173895136262e-5,-3.1399368209433314e-9,8.41154541388092e-4,3.1055764720891035e-5,-3.0305415711644196e-9,8.416041280544131e-4,3.085345156272672e-5,-2.9385364426828023e-9,8.421061656017975e-4,3.072164283076384e-5,-2.8755213785209154e-9,8.426344113814458e-4,3.067736638925079e-5,-2.8490015368691745e-9,8.431577953645121e-4,3.072498523450466e-5,-2.8612024549307127e-9,8.436447971117692e-4,3.085470440573325e-5,-2.9084547718786858e-9,8.440683720702881e-4,3.1042869672780824e-5,-2.981273689818602e-9,8.444108321936859e-4,3.125426055813509e-5,-3.065198477158535e-9,8.446680629527056e-4,3.144642492558669e-5,-3.142451937358192e-9,8.448524507159502e-4,3.15759057443261e-5,-3.194437005461156e-9,8.449938340091091e-4,3.160610588444374e-5,-3.2050494314965393e-9,8.451374660071655e-4,3.151638576719877e-5,-3.1646699302547115e-9,8.453375715697237e-4,3.1311130994121866e-5,-3.0742611477808833e-9,8.456453986738488e-4,3.1025780835067146e-5,-2.94819557957702e-9,8.46092653379528e-4,3.0725045293271956e-5,-2.81368862948315e-9,8.466753220872281e-4,3.0488818598972834e-5,-2.704879810332908e-9,8.473471109643087e-4,3.038640446510119e-5,-2.6518278127619258e-9,8.480305696476147e-4,3.0449024854662588e-5,-2.668679548466348e-9,8.486441257401572e-4,3.065628903781551e-5,-2.7477040330430985e-9,8.491313375173792e-4,3.094576582096809e-5,-2.8631317709746885e-9,8.494766164139384e-4,3.123946697058364e-5,-2.9822273668107125e-9,8.497020423260754e-4,3.1471127846907625e-5,-3.0767866876898872e-9,8.498521170161459e-4,3.16017891014394e-5,-3.129775126187276e-9,8.499770409409726e-4,3.1621830699592834e-5,-3.1363362066964675e-9,8.501209480543094e-4,3.1544720456021056e-5,-3.1013685836141294e-9,8.503161532077362e-4,3.1398399640952655e-5,-3.036097487468567e-9,8.505816546173871e-4,3.1217759899263695e-5,-2.9550165687006546e-9,8.509236995527479e-4,3.103916188717301e-5,-2.8735662703891047e-9,8.513369862483362e-4,3.0896507607776705e-5,-2.8063743424389867e-9,8.518060495699486e-4,3.081805794501351e-5,-2.7657886014572145e-9,8.523069735798167e-4,3.082345930368575e-5,-2.7605358876292335e-9,8.528098318936862e-4,3.0920864735206294e-5,-2.79447672381635e-9,8.532822991542584e-4,3.110457416848017e-5,-2.8656065993726486e-9,8.536945524033567e-4,3.1354085988535145e-5,-2.965633018689591e-9,8.540249574865114e-4,3.163548969538209e-5,-3.080489694586202e-9,8.542654720972812e-4,3.190574453586719e-5,-3.192028596537508e-9,8.544254041595665e-4,3.211974836915866e-5,-3.28090202256463e-9,8.545322236510779e-4,3.2239278828225266e-5,-3.3303148632010992e-9,8.546285733291039e-4,3.224218246448245e-5,-3.330007151957699e-9,8.547652672831671e-4,3.2129878781118014e-5,-3.279649312494011e-9,8.549907364400541e-4,3.193111420486313e-5,-3.1907193571916717e-9,8.553382926807156e-4,3.1699773222277685e-5,-3.0858345714949625e-9,8.558140144434115e-4,3.150496484434305e-5,-2.9946769942906606e-9,8.563897321781071e-4,3.1413455736156216e-5,-2.9464704670555277e-9,8.570061787799461e-4,3.1468304822318046e-5,-2.960646903904852e-9,8.575886586831152e-4,3.167199701229673e-5,-3.039317862345337e-9,8.580709942206223e-4,3.198346246211776e-5,-3.1656988018487623e-9,8.584171135061124e-4,3.233248147476386e-5,-3.310099393214403e-9,8.586297960336273e-4,3.264478971416768e-5,-3.440645754903185e-9,8.587438963877701e-4,3.286515489171303e-5,-3.5332321749884526e-9,8.58810255130539e-4,3.2968897888927814e-5,-3.5765784450704622e-9,8.588794391843271e-4,3.2960802961293873e-5,-3.5719305847910328e-9,8.589911009932855e-4,3.2866533850223576e-5,-3.529577019202463e-9,8.591697919005255e-4,3.272249454060714e-5,-3.4646650245504987e-9,8.594251730433313e-4,3.256765883619841e-5,-3.393767811079765e-9,8.597541389353542e-4,3.2438210292960187e-5,-3.3325521813766835e-9,8.601432315592983e-4,3.236427582707883e-5,-3.2942803106507433e-9,8.605707893509768e-4,3.236765846754327e-5,-3.2887387933129255e-9,8.610090272757816e-4,3.245976837958149e-5,-3.3212886990489386e-9,8.614266330715411e-4,3.2639496241471747e-5,-3.3919234343927197e-9,8.617925265638105e-4,3.289145361493536e-5,-3.4944824234170423e-9,8.620810773671341e-4,3.318566240946574e-5,-3.616455097562243e-9,8.62278291344594e-4,3.3480062508905175e-5,-3.7399625948591e-9,8.623874686730959e-4,3.372681857367478e-5,-3.844371487446432e-9,8.624320722870976e-4,3.38822001208865e-5,-3.910489310686052e-9,8.624536695365803e-4,3.391801974913249e-5,-3.925509323340507e-9,8.625041693741896e-4,3.3831145103447495e-5,-3.887217720697746e-9,8.626336863724894e-4,3.364749744285424e-5,-3.805912914971897e-9,8.628771728569449e-4,3.34184061309152e-5,-3.703085242205503e-9,8.632436901356097e-4,3.3209472451514874e-5,-3.606852247536402e-9,8.637117164869609e-4,3.30843353744748e-5,-3.5450791305814132e-9,8.64232526978409e-4,3.30874054017447e-5,-3.537852982664476e-9,8.647417259564168e-4,3.32305264787094e-5,-3.591449619924816e-9,8.651764977358669e-4,3.348834402295054e-5,-3.695963620118213e-9,8.654934113410493e-4,3.380514974584113e-5,-3.827962144226022e-9,8.65680227216288e-4,3.411174050293928e-5,-3.957644664897803e-9,8.657570330287688e-4,3.4346041766830635e-5,-4.057808965225653e-9,8.657669387277931e-4,3.446932313815453e-5,-4.11101586076775e-9,8.657613435022625e-4,3.4472588411529344e-5,-4.112539581686109e-9,8.657862135868558e-4,3.4373094380466114e-5,-4.069050533975013e-9,8.658735763707832e-4,3.4205060581144676e-5,-3.99475967321788e-9,8.660388852455758e-4,3.400943296480929e-5,-3.907091687927469e-9,8.66282466493992e-4,3.3825844969993364e-5,-3.823219696797409e-9,8.665927137849105e-4,3.3687619719216236e-5,-3.7578388388344435e-9,8.669494024009601e-4,3.361913423273398e-5,-3.7219299984715987e-9,8.673264891657124e-4,3.363439881774626e-5,-3.7220625465320145e-9,8.676945418145927e-4,3.373592694579208e-5,-3.7598487309122184e-9,8.680234235964354e-4,3.391351714465576e-5,-3.831368929963179e-9,8.682859972296471e-4,3.4143297256214016e-5,-3.926691202132316e-9,8.684632880644983e-4,3.4388163647136244e-5,-4.029972466578756e-9,8.685506814790997e-4,3.460127638371885e-5,-4.120889818604067e-9,8.685633840062911e-4,3.4734023180121915e-5,-4.178058611548191e-9,8.685380720783138e-4,3.4748252417980764e-5,-4.184372534042753e-9,8.685276349437916e-4,3.462966914812959e-5,-4.132901756292709e-9,8.685883291320915e-4,3.439669502663824e-5,-4.030854924441111e-9,8.687628382465881e-4,3.409933619952682e-5,-3.8992420211352555e-9,8.690658895057307e-4,3.3806647123293056e-5,-3.767634596223998e-9,8.694785799556857e-4,3.358696397155016e-5,-3.66578227162126e-9,8.69953568550893e-4,3.348840676249508e-5,-3.6152232829612797e-9,8.704286241585501e-4,3.352635120659295e-5,-3.623705146793659e-9,8.708434233092473e-4,3.36810197345908e-5,-3.6838087593563796e-9,8.711544860856722e-4,3.390464015558857e-5,-3.775680273187482e-9,8.713445725476498e-4,3.4135193673201416e-5,-3.872743220397276e-9,8.714246913321904e-4,3.4312587501143965e-5,-3.948669842514471e-9,8.714288385999942e-4,3.4392832306213484e-5,-3.983673438771948e-9,8.714035709437477e-4,3.4356588349835174e-5,-3.968454991877816e-9,8.713959401397892e-4,3.4210390500048455e-5,-3.904979500162979e-9,8.714434314935408e-4,3.398142071965159e-5,-3.80439632081465e-9,8.715682144280527e-4,3.370866502664886e-5,-3.6833035835006632e-9,8.717760142029626e-4,3.343373250814609e-5,-3.5597712152619653e-9,8.720583485322628e-4,3.3193644320049306e-5,-3.450143545804329e-9,8.723963305223968e-4,3.301640385510928e-5,-3.367013852901416e-9,8.727645877754009e-4,3.2918942751948914e-5,-3.318240190622122e-9,8.731346053164378e-4,3.290646426016532e-5,-3.3065975355143806e-9,8.734775263631105e-4,3.297227361968222e-5,-3.329661479803068e-9,8.737669246598247e-4,3.3097659941762863e-5,-3.3797021541565744e-9,8.739822501713752e-4,3.325204966262417e-5,-3.443668277316694e-9,8.741134429392175e-4,3.339441456133996e-5,-3.5037068763647772e-9,8.741663973729802e-4,3.347758868121113e-5,-3.538992779628764e-9,8.741674829281171e-4,3.3457101736264556e-5,-3.529614543781381e-9,8.741636709228396e-4,3.33044797175946e-5,-3.4624919926690294e-9,8.742144615830622e-4,3.302135267114131e-5,-3.337668517116169e-9,8.743747932608298e-4,3.264687423555464e-5,-3.1716545924770886e-9,8.746743840366114e-4,3.2251051243278426e-5,-2.9946081022665746e-9,8.751039489192597e-4,3.1913364921373566e-5,-2.841130150424048e-9,8.75616678903275e-4,3.169573821909346e-5,-2.738595983860198e-9,8.761445007935473e-4,3.162302292091491e-5,-2.698649906049282e-9,8.766203447195945e-4,3.167892308982781e-5,-2.715236885002451e-9,8.769963987697803e-4,3.18159383463042e-5,-2.7686104110067445e-9,8.772531062745815e-4,3.197221978649029e-5,-2.8323654947714774e-9,8.773990475854998e-4,3.2088299096119665e-5,-2.880564943726866e-9,8.774645762292172e-4,3.211954673233677e-5,-2.893205151464858e-9,8.774924155916585e-4,3.204298846969703e-5,-2.8593905607603026e-9,8.775277330636137e-4,3.185874387139908e-5,-2.778242446816188e-9,8.776094585559394e-4,3.158700840416259e-5,-2.657838435817586e-9,8.777641128132043e-4,3.126183960920271e-5,-2.5126548703569532e-9,8.78002877757191e-4,3.092341017264447e-5,-2.360210638245288e-9,8.78321864386743e-4,3.061051760107952e-5,-2.217716237311034e-9,8.787048132667152e-4,3.0354696413936292e-5,-2.0993733631963004e-9,8.791271129207127e-4,3.0176554948077197e-5,-2.0146576508170057e-9,8.795600526842855e-4,3.0084265265720063e-5,-1.9675904842138486e-9,8.799746005764623e-4,3.0073592700195904e-5,-1.9567272155798592e-9,8.803445685727407e-4,3.0128701933306585e-5,-1.9754931411414064e-9,8.806494724082241e-4,3.0223295863434567e-5,-2.012635250546257e-9,8.808775707256542e-4,3.0322170015652122e-5,-2.052817626545346e-9,8.810294629751855e-4,3.0383874541022066e-5,-2.077700737209661e-9,8.811219817814094e-4,3.0365784932921254e-5,-2.068140259899549e-9,8.811907881742122e-4,3.0232911390513986e-5,-2.0081342888122047e-9,8.812885190182023e-4,2.997035224275941e-5,-1.8904615726488688e-9,8.814748050867232e-4,2.9595882363843328e-5,-1.7223897108962145e-9,8.817972325406356e-4,2.9164896341324755e-5,-1.5279575596742727e-9,8.822694105023639e-4,2.8759323793384683e-5,-1.343146342028477e-9,8.828590048460752e-4,2.846005103322195e-5,-1.203784176843767e-9,8.834961316970444e-4,2.8315408404152892e-5,-1.1317019817736651e-9,8.840994293836644e-4,2.83238474756633e-5,-1.1270381711241277e-9,8.846048503517724e-4,2.8439563876848128e-5,-1.1705107836514342e-9,8.849825261434277e-4,2.859423427913567e-5,-1.2327153363012424e-9,8.852377405673897e-4,2.872082247503333e-5,-1.2843809606697235e-9,8.854014350719654e-4,2.876976020388615e-5,-1.303411303612948e-9,8.855175691600622e-4,2.8715569658327886e-5,-1.277894686911527e-9,8.856319414654461e-4,2.8556383656666185e-5,-1.2061264571813115e-9,8.857841196699158e-4,2.8309570284204513e-5,-1.0949624616496077e-9,8.86002414496257e-4,2.800577749822175e-5,-9.574157297751806e-10,8.863013254260068e-4,2.7682541703841347e-5,-8.099261480403505e-10,8.866810883604368e-4,2.737801278175877e-5,-6.695408320630273e-10,8.871291034948231e-4,2.712535762590261e-5,-5.513048593649785e-10,8.876228817584209e-4,2.6948399119048687e-5,-4.661876242949888e-10,8.881339924077757e-4,2.6858865286951922e-5,-4.197713685400893e-10,8.886323956855838e-4,2.6855412138336997e-5,-4.1179225649502044e-10,8.890905424093482e-4,2.6924258581403914e-5,-4.3643441475982406e-10,8.89486876270744e-4,2.704096977561104e-5,-4.831197421077393e-10,8.898087302066524e-4,2.7172978043164845e-5,-5.375765842824722e-10,8.900547902185537e-4,2.7282747178927522e-5,-5.831513974124379e-10,8.902372653753913e-4,2.733186854749421e-5,-6.02542926548089e-10,8.903834851144673e-4,2.7286782595027556e-5,-5.803341451115104e-10,8.905356820182493e-4,2.712678713758405e-5,-5.066546828876249e-10,8.907466490935431e-4,2.6853822167289743e-5,-3.817222697006188e-10,8.910687379135351e-4,2.650095008026581e-5,-2.1981389275727818e-10,8.915358613141435e-4,2.613316302797963e-5,-4.974968918210426e-11,8.921441557986117e-4,2.583341569558239e-5,9.130127597938247e-11,8.928435576312597e-4,2.5673648601187617e-5,1.7077634639135572e-10,8.935508750856743e-4,2.5683679634147847e-5,1.7468326592194504e-10,8.941811428365587e-4,2.5837610180360195e-5,1.1381510218411522e-10,8.946793739990621e-4,2.6067113585673513e-5,1.8006901262402275e-11,8.950349091826171e-4,2.6291644820413183e-5,-7.717084794839584e-11,8.952750213494531e-4,2.6446389435700407e-5,-1.427663814093566e-10,8.954475970296075e-4,2.64960814946439e-5,-1.625988001066087e-10,8.956041887442954e-4,2.6435196735103513e-5,-1.334689640026147e-10,8.957887712051753e-4,2.6280905283114967e-5,-6.224871917615731e-11,8.960323226691599e-4,2.6064317323041538e-5,3.777765165941726e-11,8.963513575114935e-4,2.5822815459411318e-5,1.5017549800954496e-10,8.96748509792149e-4,2.5594124919428984e-5,2.5799083696445723e-10,8.972140957359525e-4,2.5411712108030967e-5,3.459131555119787e-10,8.97728398380985e-4,2.5301088813513795e-5,4.0208667445015245e-10,8.982646818886401e-4,2.5276973108559064e-5,4.19511702332487e-10,8.987928885022273e-4,2.5341491278246515e-5,3.969097854818967e-10,8.992838386101128e-4,2.548373838032777e-5,3.389148700251626e-10,8.997135067687896e-4,2.5680959581705512e-5,2.5551799630259e-10,9.000668011166033e-4,2.590128913974731e-5,1.6084571383571664e-10,9.003404075887244e-4,2.610773225553987e-5,7.143433854803536e-11,9.005444531271067e-4,2.626306035931546e-5,4.124552392039377e-12,9.00702826310028e-4,2.6335350498633444e-5,-2.636373164642357e-11,9.008518990331428e-4,2.6304027478397698e-5,-1.0173572691243059e-11,9.010369750715351e-4,2.616622985452215e-5,5.4685092455799334e-11,9.013053376731691e-4,2.5942528849006335e-5,1.5954350428825642e-10,9.016950534266347e-4,2.5679451672258137e-5,2.8372503804596007e-10,9.022205066966907e-4,2.544470577148632e-5,3.9657633063202955e-10,9.028595081446744e-4,2.5311299328910574e-5,4.6464848630157026e-10,9.035509621163673e-4,2.5331826054565013e-5,4.634519661365919e-10,9.042106403831823e-4,2.5513725417149697e-5,3.8884970955208253e-10,9.047617243836385e-4,2.5811755065389144e-5,2.60664002639359e-10,9.051639505218222e-4,2.614554976562279e-5,1.1486292999309726e-10,9.054243849394402e-4,2.6432431256007105e-5,-1.1230224109221291e-11,9.055864786501333e-4,2.6615750824420068e-5,-9.174245642919217e-11,9.057083348203511e-4,2.6675961252054152e-5,-1.1728835587695205e-10,9.05843511575355e-4,2.6625694545636095e-5,-9.286576972832296e-11,9.06030514980889e-4,2.649764658641052e-5,-3.258481232105302e-11,9.06290090659766e-4,2.6332711316700743e-5,4.5492394804177083e-11,9.066269079166894e-4,2.617147979221003e-5,1.230902666428942e-10,9.07032727485054e-4,2.6049140781842117e-5,1.8405636274430814e-10,9.074895537591257e-4,2.5992565692749985e-5,2.1580884693763228e-10,9.079725233622418e-4,2.601842289978903e-5,2.1034058494702972e-10,9.08452843161885e-4,2.6131794189518346e-5,1.649501949413581e-10,9.089011187176733e-4,2.632531969086917e-5,8.266582317282753e-11,9.092912509323934e-4,2.657930002330282e-5,-2.7811191372744197e-11,9.096046947811349e-4,2.686337600497953e-5,-1.5287896453951608e-10,9.098343835696975e-4,2.7140160235303376e-5,-2.756580777618742e-10,9.099874027396871e-4,2.737067976970732e-5,-3.7839683569915226e-10,9.100856080701482e-4,2.7521019033657425e-5,-4.4541806075215186e-10,9.101636727790192e-4,2.756915427471307e-5,-4.662024595936307e-10,9.102644580498961e-4,2.751076592587584e-5,-4.3810314345020306E-10,9.104319511252228e-4,2.736291054800073e-5,-3.681879685719245e-10,9.107022221916946e-4,2.7164432891512126e-5,-2.736553609265788e-10,9.110933354507029e-4,2.6971680885033756e-5,-1.800824904443576e-10,9.11596330532063e-4,2.6848117080263942e-5,-1.167738231171905e-10,9.121710507471927e-4,2.6847793958635906e-5,-1.0913815308381964e-10,9.12751534970597e-4,2.6996070209376236e-5,-1.6964949395235283e-10,9.132634636288651e-4,2.72756008370633e-5,-2.9115810444199527e-10,9.136492992958313e-4,2.762733566158342e-5,-4.471383736182009e-10,9.138892892803114e-4,2.797002314543524e-5,-6.005507786510418e-10,9.140064810409892e-4,2.8229735821653137e-5,-7.173953360843062e-10,9.140537060586121e-4,2.8363778381520954e-5,-7.777099880424133e-10,9.14091744347561e-4,2.8368259804342512e-5,-7.790964097262822e-10,9.141707165736832e-4,2.8270290432506036e-5,-7.332676996715194e-10,9.143209375298112e-4,2.811333903517838e-5,-6.595294780294835e-10,9.145523676781168e-4,2.7943782175206335e-5,-5.787922436801097e-10,9.148586524660526e-4,2.780218073489562e-5,-5.09645207598181e-10,9.15222213264884e-4,2.771907523928594e-5,-4.663750532641056e-10,9.156186000215372e-4,2.771356286516508e-5,-4.581833019385022e-10,9.160198239972885e-4,2.7793018214471577e-5,-4.889247071998724e-10,9.163971548837643e-4,2.795307226790254e-5,-5.570122799444724e-10,9.167240149473723e-4,2.8177711329907586e-5,-6.554310086134877e-10,9.169794235753807e-4,2.8439962674449603e-5,-7.720472188029496e-10,9.171519825482253e-4,2.870402885777489e-5,-8.905750008556582e-10,9.172436935254598e-4,2.8929649817970348e-5,-9.925419838939779e-10,9.172722940063046e-4,2.9078832692983632e-5,-1.0603291660817625e-9,9.172706400546866e-4,2.912409780548574e-5,-1.080924584550345e-9,9.17282157849279e-4,2.9056323329246427e-5,-1.0495469582952546e-9,9.17352548715972e-4,2.8889652042343435e-5,-9.719977617501207e-10,9.175193386587934e-4,2.8661331040972106e-5,-8.647637143988589e-10,9.178017998224793e-4,2.842566755332037e-5,-7.524533284368034e-10,9.181939299909826e-4,2.824278153652306e-5,-6.627971222401617e-10,9.186627846165465e-4,2.8164133229208014e-5,-6.200278774014088e-10,9.19153691738718e-4,2.8217986087638425e-5,-6.380459293784765e-10,9.196025451004935e-4,2.8398984740483134E-05,-7.153326477966576e-10,9.199531003263491e-4,2.8666337663424036e-5,-8.338087002295918e-10,9.201741950295597e-4,2.8953522843619235e-5,-9.631226655409933e-10,9.202698561839225e-4,2.918802920852016e-5,-1.0697405631849333e-9,9.202770539297086e-4,2.9313951870328424e-5,-1.1274657767908662e-9,9.20251788073042e-4,2.9307694253609973e-5,-1.1248038587933661e-9,9.202503631241845e-4,2.918064509705824e-5,-1.0663142394564279e-9,9.203142811661418e-4,2.897003743896867e-5,-9.68530131895985e-10,9.204634699590332e-4,2.8724513202568727e-5,-8.534492296718607e-10,9.206973132387841e-4,2.849110787091789e-5,-7.426352211365498e-10,9.209999773637789e-4,2.8307067355278376e-5,-6.534492842105844e-10,9.213465790289916e-4,2.8196472237938423e-5,-5.974035621587512e-10,9.21708293335506e-4,2.8169942280115928e-5,-5.798940312517992e-10,9.220560080914304e-4,2.8225631349565033e-5,-6.005462214024394e-10,9.223629986190541e-4,2.8350410654034294e-5,-6.536955210792199e-10,9.226073866112044e-4,2.8520935298446312e-5,-7.28851240962084e-10,9.227750120124014e-4,2.8705005688838147e-5,-8.113094184352923e-10,9.228628541636617e-4,2.886416079327547e-5,-8.833278120249603e-10,9.228823589672353e-4,2.895853283479903e-5,-9.263428574000358e-10,9.228611534120579e-4,2.8954410829763517e-5,-9.244525203760215e-10,9.22841094274703e-4,2.8833597004887607e-5,-8.687589669821464e-10,9.228711087655056e-4,2.860178543460586e-5,-7.612984631604381e-10,9.229952903879357e-4,2.8291928119182712e-5,-6.167002132570091e-10,9.232395355675018e-4,2.7959342967609063e-5,-4.600776629160696e-10,9.236018170315074e-4,2.766851040299726e-5,-3.211006337196332e-10,9.240504121843283e-4,2.7475443382623978e-5,-2.2596816610665073e-10,9.24531262399518e-4,2.741170749626898e-5,-1.8999789985040983e-10,9.249820629694834e-4,2.747542499218661e-5,-2.1326498107148244e-10,9.25348579660942e-4,2.7631811895541113e-5,-2.805432543382063e-10,9.255984900902482e-4,2.7822723222327646e-5,-3.6544697746303546e-10,9.257290496695094e-4,2.798233184373522e-5,-4.3755816439126784e-10,9.25766534088789e-4,2.80545120609564e-5,-4.705154590635174e-10,9.257576987930197e-4,2.800685278340508e-5,-4.4865598588417815e-10,9.257561138535627e-4,2.7837106293070436e-5,-3.701910247767966e-10,9.258080615404461e-4,2.757056376533481e-5,-2.4616627976356377e-10,9.259425348434525e-4,2.7250326470559132e-5,-9.609656809923689e-11,9.261676807511085e-4,2.6924824434891593e-5,5.773311606893498e-11,9.264731188036599e-4,2.663697142690499e-5,1.9528968966108854e-10,9.268356351407438e-4,2.6417432659609167e-5,3.019901995562894e-10,9.272255509647921e-4,2.6282152592361178e-5,3.6997091936557287e-10,9.276120574189009e-4,2.6232846291373425e-5,3.9797540595297546e-10,9.279670116931762e-4,2.6258881085469936e-5,3.9055441141759986e-10,9.282675227858236e-4,2.633942937784366e-5,3.570959163618194e-10,9.284980234511821e-4,2.644547284239765e-5,3.109050504872678e-10,9.286524796636579e-4,2.654193492234242e-5,2.6822927772623276e-10,9.287369625751979e-4,2.6590780100069592e-5,2.468431766251289e-10,9.287720369209947e-4,2.6556135305642376e-5,2.636822102111064e-10,9.287934339306461e-4,2.6412028824363202e-5,3.312264037819188e-10,9.288486997992517e-4,2.6151880961107663e-5,4.530300718778846e-10,9.289878720362526e-4,2.5796515725207018e-5,6.199146734068698e-10,9.292487589067231e-4,2.5395465656098757e-5,8.092647167352129e-10,9.29641666352082e-4,2.5017209649756432e-5,9.894516360464816e-10,9.301413876496481e-4,2.472917795980915e-5,1.1290141747255939e-9,9.306922559167429e-4,2.4575229989538544e-5,1.2070780979559616e-9,9.312251819721861e-4,2.4561109000296633e-5,1.2202059312944135e-9,9.316789667520669e-4,2.465414560968802e-5,1.1827604254879246e-9,9.320169043861123e-4,2.479571175444768e-5,1.1213819953507269e-9,9.322336847376593e-4,2.4919677271373376e-5,1.0666004249723868e-9,9.323526991819391e-4,2.496981318218703e-5,1.044792681412822e-9,9.324168167771345e-4,2.4911728305382368e-5,1.072537792680831e-9,9.324763341556606e-4,2.473779692662344e-5,1.1541348440936524e-9,9.32577287240139e-4,2.446550131433796e-5,1.2821529509168165e-9,9.327524775390439e-4,2.4130741138395573e-5,1.440358563370683e-9,9.330166395630526e-4,2.3778318046824064e-5,1.608044416470438e-9,9.333661039477023e-4,2.345210977652227e-5,1.7646106799430005e-9,9.337821762564567e-4,2.3187164366326925e-5,1.8933448565731633e-9,9.342366534787011e-4,2.3004991867956138e-5,1.983756984261391e-9,9.346977645863617e-4,2.2912152275451638e-5,2.0323646948176415e-9,9.351352665974508e-4,2.2901360219547865e-5,2.0422501912195693e-9,9.355241516458479e-4,2.2953966611580642e-5,2.021915505548688e-9,9.358471024062418e-4,2.3042848220487e-5,1.983917263664366e-9,9.360962029673838e-4,2.313526295966051e-5,1.9435240421953627e-9,9.362744148421519e-4,2.319579877368126e-5,1.9173555450183216e-9,9.363970340869479e-4,2.3190008396632788e-5,1.921714213936969e-9,9.364926985739199e-4,2.3089580081948874e-5,1.970175219873316e-9,9.366025595028989e-4,2.287954350737153e-5,2.070174683549589e-9,9.367754583789063e-4,2.256662486320555e-5,2.219009962619075e-9,9.370572543760401e-4,2.2185503816041416e-5,2.40080151825208e-9,9.374749898088448e-4,2.179746684581724e-5,2.5870254829646286e-9,9.380215496738124e-4,2.1476617739059208e-5,2.7428988022427817e-9,9.386504920238448e-4,2.1285143976963856e-5,2.8389345262250392e-9,9.392879545260637e-4,2.124847926412409e-5,2.8626284858923288e-9,9.398581363504856e-4,2.1344635824425707e-5,2.8236063659948714e-9,9.403092110193681e-4,2.1513973951784947e-5,2.749245885993131e-9,9.406269138130842e-4,2.1682634723939766e-5,2.67386501863676e-9,9.408323763286779e-4,2.178648157968665e-5,2.6275885831474924e-9,9.409696504997068e-4,2.1786146578814432e-5,2.6292808737827737e-9,9.410906514838015e-4,2.1671298131321062e-5,2.6844268786052037e-9,9.41242649635597e-4,2.145702236312698e-5,2.786633456564728e-9,9.414601509848395e-4,2.1176178630965497e-5,2.9210047073092557e-9,9.417610200086401e-4,2.0870608445111807e-5,3.0681179766648086e-9,9.421460370053103e-4,2.0582809873944577e-5,3.207899651127782e-9,9.426010936837508e-4,2.0348968697412414e-5,3.3229824926066307e-9,9.431012540259686e-4,2.0193985304551373e-5,3.401195641488044e-9,9.436158120570794e-4,2.012884842892798e-5,3.436951038320817e-9,9.441134784478598e-4,2.015031500623975e-5,3.4314859276191417e-9,9.44566950904901e-4,2.0242534645964484e-5,3.3921135298370826e-9,9.449563631171996e-4,2.0379982085524475e-5,3.330805785534591e-9,9.45271517348029e-4,2.0530961708450033e-5,3.2625023737391606e-9,9.455131621575188e-4,2.0661233197895548e-5,3.203395247216593e-9,9.456936234191719e-4,2.0737740900431553e-5,3.1692023079153e-9,9.458369007988554e-4,2.073272466669384e-5,3.1732674706314038e-9,9.459779040524844e-4,2.0628653770206123e-5,3.224233945190357e-9,9.461597634391267e-4,2.0424167988906754e-5,3.3231751090821356e-9,9.46427574458297e-4,2.014003684687474e-5,3.4606600272122213e-9,9.468173676227388e-4,1.98221812789624e-5,3.615192303367057e-9,9.473413942934375e-4,1.9537012097558103e-5,3.755318583394564e-9,9.479753457182548e-4,1.9355058402098106e-5,3.847349600926752e-9,9.486571399076209e-4,1.9325058394134616e-5,3.867688552958027e-9,9.493040520760504e-4,1.9450539767815956e-5,3.814066075128484e-9,9.498430651538646e-4,1.9684623094334385e-5,3.7081770948540923e-9,9.502378728614017e-4,1.994861501821484e-5,3.5870008241428506e-9,9.504975307118342e-4,2.01632840220824e-5,3.4880374073031084e-9,9.506654032765242e-4,2.0274709481559317e-5,3.437068799563959e-9,9.507989420812344e-4,2.0264365859063468e-5,3.4433449550727618e-9,9.509516863480496e-4,2.0145143002205663e-5,3.5013586813003237e-9,9.511626032896819e-4,1.9950604861647016e-5,3.595755007819909e-9,9.514523625841899e-4,1.972359867900281e-5,3.7065483148110366e-9,9.518240846294337e-4,1.9507126203245064e-5,3.813351896094841e-9,9.522662841079077e-4,1.933798514493866e-5,3.898421280054506e-9,9.527567177104721e-4,1.9242649321887765e-5,3.94873970416592e-9,9.532666534200279e-4,1.9234898009828817e-5,3.9573083496472175e-9,9.537653046836214e-4,1.931500888982162e-5,3.923656171525834e-9,9.542241491314553e-4,1.9470419469034043e-5,3.853573929853045e-9,9.546208269205008e-4,1.967778168597357e-5,3.758113485784791e-9,9.549422337944906e-4,1.990624356532854e-5,3.6519733720235854e-9,9.551864658672643e-4,2.012153016907811e-5,3.5515235649189295e-9,9.553635348866212e-4,2.029033148993112e-5,3.4727284456947125e-9,9.554949463176509e-4,2.0384734278047446e-5,3.429079651875691e-9,9.55612166139684e-4,2.03866030610309e-5,3.4295402733541126e-9,9.557537872596488e-4,2.029183687422643e-5,3.4764900665650733e-9,9.559608378031081e-4,2.0114246891201803e-5,3.563775485379721e-9,9.562694312086343e-4,1.988802000189864e-5,3.6753836672060575e-9,9.567005353306505e-4,1.9666425812314765e-5,3.785918859393363e-9,9.572485741343938e-4,1.951354653734905e-5,3.864486310112931e-9,9.57873847869679e-4,1.9487015195238054e-5,3.8829949935352816e-9,9.58506375185627e-4,1.961495423927636e-5,3.827353654574862e-9,9.590658554599388e-4,1.9878214338844435e-5,3.706183686441474e-9,9.59491778185771e-4,2.021167822462048e-5,3.5503480856677113e-9,9.597671996149698e-4,2.0528378965229346e-5,3.4014299519401243e-9,9.599217284447296e-4,2.0753552855409916e-5,3.295380207449077e-9,9.600140258223889e-4,2.084893939258985e-5,3.2508500223577976e-9,9.601071466008167e-4,2.081721898662703e-5,3.2670417811981256e-9,9.602500853369318e-4,2.0691028420511654e-5,3.3288768573415605e-9,9.604701387776805e-4,2.051709319339869e-5,3.4144264007709955e-9,9.60773545484276e-4,2.034297332174702e-5,3.501100421052396e-9,9.611500679665309e-4,2.0208786324005668e-5,3.569552864573399e-9,9.615783591656324e-4,2.014318881895291e-5,3.6056735200335207e-9,9.620307130834803e-4,2.0161937110386437e-5,3.6014269400379457e-9,9.62477113531018e-4,2.0267731706648574e-5,3.5550823882264824e-9,9.628889049217328e-4,2.0450864920827385e-5,3.4710012484743916e-9,9.632422415170349e-4,2.069066577730867e-5,3.3589647822421636e-9,9.635212754316284e-4,2.0957906935666852e-5,3.2329849290971195e-9,9.637208099389389e-4,2.1218360815741975e-5,3.1095519476630494e-9,9.638478893925641e-4,2.143740445538196e-5,3.0054061149790872e-9,9.639218361763492e-4,2.158517204251695e-5,2.9350831633136274e-9,9.639725275225862e-4,2.164161332623286e-5,2.9085171189180765e-9,9.64036920303166e-4,2.1600821946777073e-5,2.928960887667208e-9,9.641539462469475e-4,2.1473982466179215e-5,2.991503500896854e-9,9.643579665181983e-4,2.129029021121154e-5,3.0824929931979146e-9,9.646710825382556e-4,2.1095019009386883e-5,3.180304929063653e-9,9.650951414487477e-4,2.0943493593642626e-5,3.2581268817857795e-9,9.656055505064805e-4,2.08898021785074e-5,3.2893920797482204e-9,9.661506527532753e-4,2.0970707862049013e-5,3.2556740154475738e-9,9.666609700686485e-4,2.1188936127107843e-5,3.154989219151684e-9,9.670695157136533e-4,2.1504456001118907e-5,3.0062342252277902e-9,9.673367523603838e-4,2.1842686062608042e-5,2.8453160317467475e-9,9.674669505838162e-4,2.2120216315934066e-5,2.7126670331229932e-9,9.675052672091475e-4,2.227588153984791e-5,2.6381300324599617e-9,9.67517310975436e-4,2.2290098639572074e-5,2.631571812351488e-9,9.675641549386202e-4,2.2184188610723864e-5,2.683192639935835e-9,9.676856175598294e-4,2.20050732406217e-5,2.770831293998539e-9,9.678958345343047e-4,2.1806797104405777e-5,2.8687326779884426e-9,9.681874796128061e-4,2.1636899335670483e-5,2.953998363007588e-9,9.685391645791842e-4,2.152957275673156e-5,3.00987037631748e-9,9.689223645110006e-4,2.150393434528262e-5,3.0266647100820593e-9,9.693065461435913e-4,2.1564905127593073e-5,3.0015027830697376e-9,9.696627464705727e-4,2.170489096403e-5,2.9376390040777005e-9,9.699663713453124e-4,2.190558400417185e-5,2.843664610904784e-9,9.701997585934131e-4,2.213998368625858e-5,2.732536103734538e-9,9.703546573483743e-4,2.2375052452482884e-5,2.6202568912921775e-9,9.704343769114892e-4,2.2575473791547756e-5,2.524023751178972e-9,9.70454924970594e-4,2.2708679506424222e-5,2.4597828841057676e-9,9.704442684490575e-4,2.2750680548228815e-5,2.4394191096140195e-9,9.70439123002729e-4,2.269163919856002e-5,2.4680675742140396e-9,9.704792630519241e-4,2.2539791907013454e-5,2.542185695856593e-9,9.706000419416595e-4,2.2322356320565065e-5,2.6490241837254375e-9,9.708244225247657e-4,2.208254490993235e-5,2.7679330778128663e-9,9.711561348596273e-4,2.1872563135784633e-5,2.8736116004682885e-9,9.715756674472968e-4,2.1743144202396543e-5,2.9411105609226534e-9,9.720408542324096e-4,2.1730926538918943e-5,2.952015717458691e-9,9.724936339510598e-4,2.1846219921065344e-5,2.9005828036571425e-9,9.728734724452532e-4,2.206526684943893e-5,2.797753482524233e-9,9.73135268736305e-4,2.2331915022099625e-5,2.670534930423955e-9,9.732656869873846e-4,2.2571721047228047e-5,2.5551777813643346e-9,9.732896097496811e-4,2.2715649390846857e-5,2.4855509251822116e-9,9.732616414073596e-4,2.272350320648063e-5,2.481624710067114e-9,9.732459633450723e-4,2.2595527734851322e-5,2.5437609524692543e-9,9.732948670608518e-4,2.2367393624596813e-5,2.6551037957679194e-9,9.73435775314028e-4,2.2093662920085047e-5,2.7895237218060307e-9,9.736697513088091e-4,2.18295826774539e-5,2.9203430820786453e-9,9.739779823635234e-4,2.1618463822268142e-5,3.0263986928152343e-9,9.743307630656896e-4,2.14864286442583e-5,3.094632000552376e-9,9.746951934172733e-4,2.1442559653592196e-5,3.120143478228777e-9,9.75040337470858e-4,2.1481561948537084e-5,3.105047155900916e-9,9.753402753088035e-4,2.1586872020260996e-5,3.0570669881734935e-9,9.755760407850127e-4,2.1733399542332765e-5,2.9882432258541283e-9,9.757372606998641e-4,2.1890007987213578e-5,2.913710103700545e-9,9.758238522467932e-4,2.2022308074060718e-5,2.8502981225779335e-9,9.758475695193567e-4,2.2096463822383953e-5,2.814649675643213e-9,9.75832592759985e-4,2.208441265972937e-5,2.8206647589847394e-9,9.758139779570534e-4,2.1970120824932505e-5,2.8764536267483205e-9,9.758329513980938e-4,2.1755459239150598e-5,2.9814657729990575e-9,9.759289405456378e-4,2.146343405290607e-5,3.1248755506446147e-9,9.761297562449015e-4,2.1136469459250627e-5,3.2863308207215907e-9,9.764427844228285e-4,2.0828722875066234e-5,3.4395760619971846e-9,9.768504235625822e-4,2.05936578116549e-5,3.558401665094199e-9,9.773119310828517e-4,2.047011212383905e-5,3.623414500991834e-9,9.777718670258082e-4,2.0470907088346007e-5,3.627703453703138e-9,9.781733258317801e-4,2.057752945621449e-5,3.5796494003707138e-9,9.784727031122457e-4,2.0742968740602736e-5,3.501766797457081e-9,9.786520083386822e-4,2.090280873294008e-5,3.4254174178099575e-9,9.787247391817811e-4,2.099234249163606e-5,3.3824366972435045e-9,9.787325073239532e-4,2.0964978181006943e-5,3.3960258792809006e-9,9.787325574450096e-4,2.080554329966027e-5,3.474116418782361e-9,9.78780386798012e-4,2.053316629811452e-5,3.607853339306525e-9,9.78914283306498e-4,2.0192836373745813e-5,3.7756288344559166e-9,9.79147450149718e-4,1.9840040928541138e-5,3.9505044744465266e-9,9.794691393037586e-4,1.9525344833017023e-5,4.107694790089413e-9,9.798520178516646e-4,1.928413468832371e-5,4.229601723499455e-9,9.802613780058582e-4,1.9132999458968806e-5,4.30768523320254e-9,9.806628425931363e-4,1.9071152761889917e-5,4.341903576740723e-9,9.810273134182267e-4,1.9084239326578834e-5,4.338962357581536e-9,9.81333537072951e-4,1.9148443642578993e-5,4.310353550740631e-9,9.81569296115634e-4,1.9233976343823555e-5,4.2706388260183405e-9,9.817321483998952e-4,1.9307966381521585e-5,4.235993167701627e-9,9.81830219636952e-4,1.933733918927407e-5,4.222757802688705e-9,9.818829501630556e-4,1.9292467400002797e-5,4.245632427234919e-9,9.819209964844942e-4,1.9152168044642423e-5,4.315222825428222e-9,9.8198392831691e-4,1.890983975966044e-5,4.435029642934434e-9,9.821143377150008e-4,1.857919889488635e-5,4.59861659028588e-9,9.823480141006478e-4,1.819663416702158e-5,4.788408783691395e-9,9.827021678395676e-4,1.781681352429813e-5,4.977767747591471e-9,9.8316630954625e-4,1.750019208422675e-5,5.1370239028109335e-9,9.837010460599907e-4,1.729533464359589e-5,5.242087342349132e-9,9.842471758127079e-4,1.722284340206006e-5,5.282365711457081e-9,9.847423799112572e-4,1.7267922501442923e-5,5.2645551112541595e-9,9.851390392167326e-4,1.7384650541422545e-5,5.210737350473865e-9,9.85416712413494e-4,1.7509721680699187e-5,5.151788515618179e-9,9.855858656559924e-4,1.7580163367743918e-5,5.118732221992248e-9,9.856830005405348e-4,1.754937325800318e-5,5.134813103943706e-9,9.857596419803308e-4,1.7397498039928058e-5,5.210281577132254e-9,9.858686370143312e-4,1.7134242430752782e-5,5.340872784086539e-9,9.860514093620037e-4,1.6794137806137563e-5,5.509998145968244e-9,9.863293550422345e-4,1.6426136917274978e-5,5.693759305662125e-9,9.867012674118518e-4,1.6080882897378395e-5,5.867166202605813e-9,9.871466831850105e-4,1.5799461394281728e-5,6.009706321470195e-9,9.876331363464859e-4,1.560644168178504e-5,6.108876220456722e-9,9.881244546795737e-4,1.5508013115131364e-5,6.16123561320287e-9,9.885877203164924e-4,1.5494168132305846e-5,6.1714423956312695e-9,9.889977731607897e-4,1.554301218967708e-5,6.150173958810571e-9,9.89339357154404e-4,1.5625438489487203e-5,6.11180328305642e-9,9.896077069428486e-4,1.5709163928471263e-5,6.072354236231378e-9,9.898084641090051e-4,1.5761986455145772e-5,6.047846128949401e-9,9.89957481892549e-4,1.575472773264608e-5,6.052821432389052e-9,9.900805416390554e-4,1.5664564164811243e-5,6.098708901861965e-9,9.902123484409752e-4,1.5479331179479615e-5,6.191709401312268e-9,9.903935258545628e-4,1.5202748222706768e-5,6.33020714370356e-9,9.906641160678208e-4,1.4859172652645127e-5,6.502381741232603e-9,9.910530106883304e-4,1.4494749524882107e-5,6.685572808518867e-9,9.915653761885476e-4,1.4170939529055735e-5,6.8494023081549725e-9,9.92173804543939e-4,1.3948485846748767e-5,6.963646567409606e-9,9.92820439606734e-4,1.3865800846189006e-5,7.008937764536123e-9,9.934330686488335e-4,1.3922023616282452e-5,6.98524850756154e-9,9.939493480964887e-4,1.4075052891534514e-5,6.91302227434678e-9,9.943372374337234e-4,1.4256527274009431e-5,6.825888020437902e-9,9.946022722861765e-4,1.4395571285888233e-5,6.75895614654633e-9,9.947808856143072e-4,1.4439740434982362e-5,6.738430832136037e-9,9.949257957257986e-4,1.4366093115323758e-5,6.776065172871318e-9,9.950905167510095e-4,1.418186073054903e-5,6.868729017701459e-9,9.953173989064848e-4,1.391790875148587e-5,7.001518418367263e-9,9.95630713119781e-4,1.3618756991412558e-5,7.152573416875709e-9,9.960345799292754e-4,1.3332040182830323e-5,7.29822948174995e-9,9.965148922381106e-4,1.3099245727471433e-5,7.4176277467670906e-9,9.970441941477112e-4,1.294893783688122e-5,7.496180701557594e-9,9.975882397394037e-4,1.2893264734091967e-5,7.527452492986098e-9,9.98112746713271e-4,1.2927881166143136e-5,7.513323955728468e-9,9.985890416039868e-4,1.3034634044303174e-5,7.462717843178684e-9,9.98997826875862e-4,1.3185900947308538e-5,7.389423516943071e-9,9.993309205324102e-4,1.3349405125668461e-5,7.3096360810763596e-9,9.99591375901445e-4,1.3492586365441474e-5,7.2397137309556e-9,9.99792668555754e-4,1.3586170648049899e-5,7.19436794380859e-9,9.999574846180697e-4,1.3607159236305784e-5,7.185183536470915e-9,0.0010001162353076604,1.3541721843540724e-5,7.219205045654568e-9,0.0010003049165363592,1.3388426048463978e-5,7.297338394204071e-9,0.0010005613623854227,1.3161776667357265e-5,7.4125560623676355e-9,0.0010009186855654698,1.2894930291567578e-5,7.548472365832492e-9,0.001001395431805748,1.2638913929780974e-5,7.679645009834532e-9,0.0010019842716833783,1.2454704246940159e-5,7.775465670467849e-9,0.0010026447567112351,1.2396089240531763e-5,7.80872345265965e-9,0.0010033080233894881,1.2487217081785896e-5,7.766920829338294e-9,0.0010038972478855197,1.2706548445498057e-5,7.660458605367358e-9,0.0010043565504526115,1.2989946449421098e-5,7.521224770364038e-9,0.001004672231437384,1.3254551939388285e-5,7.390681026669133e-9,0.0010048741581043606,1.3430195374539308e-5,7.304097230213788e-9,0.001005019125368549,1.3480998017901777e-5,7.27969563649755e-9,0.001005168386359312,1.340941335065461e-5,7.316596454133312e-9,0.0010053704906546521,1.3246930061867809e-5,7.3994046186029145e-9,0.0010056532197300141,1.3040000118914438e-5,7.505138119129774e-9,0.0010060229091539998,1.2837303701281687e-5,7.609490773330097e-9,0.0010064679702872599,1.2680694358525935e-5,7.691325334965295e-9,0.00100696410900686,1.2599802055308625e-5,7.73543576837147e-9,0.0010074799303969257,1.2609453088105831e-5,7.733972018905462e-9,0.0010079824262810555,1.270927137545503e-5,7.68678360040066e-9,0.001008441983199197,1.2885166585695294e-5,7.600766502657164e-9,0.0010088364680810365,1.3112382500046945e-5,7.488348827427479e-9,0.0010091540147537904,1.3359627618872047e-5,7.365366043977686e-9,0.0010093942793346546,1.3593707411098743e-5,7.248659658443538e-9,0.0010095681767792678,1.3783993741249416e-5,7.15377885761242e-9,0.0010096964280629517,1.3906222158150544e-5,7.093063507146875e-9,0.0010098073351207102,1.3945501108580383e-5,7.074156161434548e-9,0.001009933998475673,1.3898670498425644e-5,7.098839141011301e-9,0.0010101108925560731,1.3776156395851466e-5,7.162087545997906e-9,0.0010103693537762879,1.3603229200616472e-5,7.2513716092129284e-9,0.001010731370310706,1.3419833637562037e-5,7.3466457393835305e-9,0.0010112016762827962,1.3277108498864683e-5,7.422018074019115e-9,0.0010117598625822178,1.3228209751310446e-5,7.450356500270065e-9,0.0010123568768607588,1.3312347000828476e-5,7.411421404428368e-9,0.0010129222480500654,1.3535582819181508e-5,7.301724939909382e-9,0.001013385331984101,1.3858804132080293e-5,7.140781390672817e-9,0.001013703707706818,1.4205000113155494e-5,6.967497490960027e-9,0.0010138822454817784,1.448749274687313e-5,6.825833236491937e-9,0.0010139696115598694,1.464433393257325e-5,6.747309515966404e-9,0.001014034960781267,1.4658559233696529e-5,6.740744459985028e-9,0.0010141406929217946,1.4555765436898252e-5,6.793498539548968e-9,0.0010143254890754552,1.4386576477060897e-5,6.880297884166936e-9,0.0010146008251386124,1.420706593101242e-5,6.973012537470857e-9,0.0010149561275081414,1.4065065181815716e-5,7.047465907773897e-9,0.00101536675460542,1.3993570240248546e-5,7.0867457546242325e-9,0.0010158013574818438,1.4009210516690739e-5,7.0820601273590445e-9,0.0010162275161801665,1.4113340727320419e-5,7.032323770553171e-9,0.0010166159146742558,1.429419134817385e-5,6.943198192930504e-9,0.0010169435907143895,1.4529570251940101e-5,6.825790427443894e-9,0.001017196458485237,1.4790107827825064e-5,6.695003258799705e-9,0.0010173710222833715,1.5043063994411697e-5,6.5675509780237646e-9,0.0010174750556951806,1.5256600380969255e-5,6.459732390817189e-9,0.001017526963278131,1.5404159828331004e-5,6.385177403566588e-9,0.0010175537373666459,1.5468376233596634e-5,6.352868110860509e-9,0.001017587717364337,1.544402654131814e-5,6.365661713647204e-9,0.0010176624605994554,1.5339717534360233e-5,6.419435210938414e-9,0.0010178080063839555,1.5178075945731396e-5,6.502944076621323e-9,0.0010180457452669584,1.4994254410299033e-5,6.598491835633543e-9,0.001018383064035031,1.4832381264038678e-5,6.6836353960864175e-9,0.0010188083316972948,1.47391332796154e-5,6.734397667122887e-9,0.0010192878609278002,1.475363974145172e-5,6.730438678602947e-9,0.0010197678046505864,1.4894272655654495e-5,6.661915015952189e-9,0.00102018443463024,1.5145950174105276e-5,6.5361350999692345e-9,0.0010204836747962334,1.5455522234757765e-5,6.380048705078234e-9,0.0010206437243931602,1.5743334912936524e-5,6.2343512371156256e-9,0.0010206877187796243,1.5931055263172206e-5,6.139179160224897e-9,0.0010206758978202743,1.5972669549953236e-5,6.118206896081988e-9,0.0010206802785743953,1.587040614601252e-5,6.170538509004209e-9,0.0010207572457502255,1.5667653115910527e-5,6.274358304487625e-9,0.0010209325449119094,1.5426977239675342e-5,6.398084889086976e-9,0.0010212017498908892,1.520786821074164e-5,6.511580983868921e-9,0.0010215398590799887,1.5053291656116975e-5,6.5929010127443566e-9,0.001021912431934167,1.498569502034724e-5,6.630329259183798e-9,0.0010222841435015692,1.5008880327172054e-5,6.621529648464819e-9,0.0010226239917599095,1.5112068113238198e-5,6.571614831742929e-9,0.0010229080944826484,1.527401144689631e-5,6.491159177179544e-9,0.0010231212780165244,1.5466570242856973e-5,6.394419794620523e-9,0.001023258140679252,1.565799311163615e-5,6.29764201481796e-9,0.001023323723746117,1.581631986787821e-5,6.217269214912676e-9,0.0010233335657502231,1.5913194832607108e-5,6.1679458224003706e-9,0.001023312652942418,1.592801691867029e-5,6.160375068918902e-9,0.0010232928007281963,1.5851837316847298e-5,6.199331981376249e-9,0.0010233083950897286,1.5690131829775294e-5,6.282255337576482e-9,0.0010233908943278179,1.5463603240336597e-5,6.398818557630599e-9,0.0010235628682748299,1.5206365333078503e-5,6.531796793225194e-9,0.001023832615986048,1.4961295414609502e-5,6.659351030318273e-9,0.0010241904386357422,1.4772889164037382e-5,6.75860252344733e-9,0.001024607567166903,1.4678269177210256e-5,6.810218842264442e-9,0.001025038835875019,1.4697338813962965e-5,6.803536849223181e-9,0.0010254302198467145,1.4824014543455562e-5,6.7412161836967475e-9,0.001025731571596928,1.5021882123837198e-5,6.641636326261475e-9,0.0010259126052034333,1.522848767407803e-5,6.536783150416774e-9,0.0010259765363499528,1.5370953906319304e-5,6.464197088487894e-9,0.0010259633245588596,1.5390062552732196e-5,6.454503675266422e-9,0.0010259374918061134,1.5262568774086813e-5,6.519889575291671e-9,0.0010259645518792863,1.5009405517106155e-5,6.649894303135918e-9,0.0010260881771412683,1.4685110812366908e-5,6.816835676346961e-9,0.0010263193576777233,1.4355638624471758e-5,6.98711790063453e-9,0.0010266398889383535,1.4077159844329356e-5,7.1319926882616635e-9,0.001027014226018415,1.388425288732607e-5,7.2335633845970444e-9,0.0010274020414492461,1.3788133610311604e-5,7.285745723386852e-9,0.0010277670997235588,1.378095198171993e-5,7.292187151879546e-9,0.0010280818168414282,1.384189253769118e-5,7.263261955630348e-9,0.0010283288268859772,1.3942614549109414e-5,7.213352520340318e-9,0.0010285011445110084,1.405139140764495e-5,7.158731665697266e-9,0.0010286019408435882,1.413632711989153e-5,7.115870597147311e-9,0.0010286442540053864,1.4168322568558104e-5,7.09986088584424e-9,0.0010286504037499457,1.4124365397943462e-5,7.12268504128625e-9,0.0010286504791455998,1.3991292700524017e-5,7.191271681234185e-9,0.0010286791648484964,1.3769478993510954e-5,7.3056080066068604e-9,0.0010287705469715204,1.3475266008978337e-5,7.457494460578409e-9,0.001028951327632887,1.3140689311306862e-5,7.630660550566689e-9,0.0010292338285229816,1.280935564220711e-5,7.802822009644976e-9,0.0010296108825569928,1.2528353458002378e-5,7.949760843038067e-9,0.0010300546940236487,1.233759347627838e-5,8.050755726164393e-9,0.0010305208273311641,1.2259178009605778e-5,8.094075186049836e-9,0.0010309570900584187,1.2289732755782155e-5,8.08103476461809e-9,0.0010313157392175553,1.239822992254162e-5,8.027273387668908e-9,0.0010315663465513536,1.2530919495367793e-5,7.960336714121893e-9,0.0010317058209335492,1.2623500762804774e-5,7.913435014428099e-9,0.001031761762409121,1.2618455216019864e-5,7.916445804350526e-9,0.0010317863213620134,1.2482715648861428e-5,7.986708154305847e-9,0.0010318409415092163,1.2218875567850196e-5,8.123174915224233e-9,0.0010319770490094284,1.1864341225077265e-5,8.306813126168584e-9,0.00103222073763433,1.1478137897328902e-5,8.507363432120657e-9,0.001032567744181653,1.1121486498340977e-5,8.693293502779717e-9,0.001032989301697024,1.084087419509298e-5,8.840491614529463e-9,0.0010334441429188832,1.065944919603051e-5,8.936740074754993e-9,0.0010338905402688494,1.0577173083741774e-5,8.981736505163395e-9,0.0010342945423151325,1.0576383955421915e-5,8.98433665789792e-9,0.00103463375858786,1.0628837350001691e-5,8.958991422832772e-9,0.0010348979793146607,1.0701777354861157e-5,8.922621233770985e-9,0.0010350882727302663,1.0762337371071754e-5,8.89230185881902e-9,0.0010352157191526022,1.0780632780980312e-5,8.883608858628518e-9,0.0010353002554859072,1.0732303407048932e-5,8.90925860516677e-9,0.0010353694431257166,1.0601227344865006e-5,8.977690201699487e-9,0.0010354564618759658,1.0382697470573208e-5,9.09143350297743e-9,0.0010355964502504992,1.008658752883728e-5,9.245490273873833e-9,0.00103582062126145,9.739174784541215e-6,9.426394426544935e-9,0.001036148531357024,9.381685552026843e-6,9.612933762557046e-9,0.001036580411402926,9.063860868442835e-6,9.779418101910907e-9,0.0010370928511063498,8.832500434599207e-6,9.901545674027221e-9,0.0010376410685493903,8.717740287966906e-6,9.963490318062588e-9,0.001038168776362179,8.722090107823838e-6,9.963639543713632e-9,0.001038623174432724,8.817117820241822e-6,9.916433090139891e-9,0.0010389699638132367,8.949806345046257e-6,9.849185263172341e-9,0.0010392031310252545,9.056681538401306e-6,9.794814136056429e-9,0.0010393464417650642,9.081041880969784e-6,9.7828832107339e-9,0.0010394465445357972,8.98803121924295e-6,9.831716602058708e-9,0.0010395599652596504,8.773379181090786e-6,9.943793307826468e-9,0.0010397377850124105,8.463527638538071e-6,1.010562028455275e-8,0.0010400124740567555,8.107264085356009e-6,1.0292016552047566e-8,0.0010403907983126954,7.761647465210934e-6,1.047336668482392e-8,0.0010408546068110553,7.476975351250501e-6,1.0623406725890964e-8,0.0010413683448417354,7.285608742141655e-6,1.0725068130866081e-8,0.0010418898199738098,7.197436696745734e-6,1.077292879202111e-8,0.0010423802623030689,7.201792582882333e-6,1.0772323696065717e-8,0.0010428110604212102,7.273401012350935e-6,1.0736320365516424e-8,0.0010431666141344895,7.3794054706384364e-6,1.0682066369385867e-8,0.0010434442537033133,7.485424438284342e-6,1.062758834085327e-8,0.001043652630466233,7.559908129853109e-6,1.0589456096467488e-8,0.0010438096899647942,7.577040457584126e-6,1.0581220954317427e-8,0.0010439407598399314,7.518874452397437e-6,1.0612288493742078e-8,0.0010440766580099585,7.3774053804267025e-6,1.0686856280073861e-8,0.0010442511917944904,7.1569232978676465e-6,1.0802719477653824e-8,0.0010444971593526165,6.876269078840813e-6,1.0950114569202205e-8,0.001044840195797599,6.569674575005575e-6,1.1111270660756568e-8,0.0010452907905748228,6.284047442282688e-6,1.1261780001466925e-8,0.0010458366657182785,6.070632446913745e-6,1.1374885918198315e-8,0.0010464397212440041,5.970991705073476e-6,1.1428761032437083e-8,0.0010470419129418023,6.0012650636924906e-6,1.1414752486565529e-8,0.0010475808873286244,6.142246342171787e-6,1.134266195270011e-8,0.0010480101442759484,6.342031857499272e-6,1.1239472124113928e-8,0.0010483145665516262,6.531775462877667e-6,1.1141164514740623e-8,0.0010485141839921832,6.647674109549178e-6,1.1081204358546142e-8,0.0010486555927916323,6.649554437643226e-6,1.1080769771562399e-8,0.0010487962274780228,6.52970014858732e-6,1.1144090607712959e-8,0.001048988161110087,6.311113549640392e-6,1.1259318747852037e-8,0.001049266135585487,6.038217412853158e-6,1.140334069973273e-8,0.0010496417708631659,5.764112342343603e-6,1.1548386965958874e-8,0.001050103884713581,5.538005408647266e-6,1.1668579695155248e-8,0.0010506236688532541,5.395419538643018e-6,1.1745084312143063e-8,0.001051162793625547,5.352737678222033e-6,1.176905039772956e-8,0.0010516822059403249,5.4065291012566944e-6,1.1742069546748452e-8,0.0010521495626468031,5.5369304279269275e-6,1.1674479004989727e-8,0.0010525439851890206,5.7134564555245825e-6,1.1582329111142928e-8,0.0010528578438257308,5.9014015084172195e-6,1.1483979856274418e-8,0.0010530961263485919,6.067417747217445e-6,1.139710095373138e-8,0.0010532743691075914,6.1835874192326255e-6,1.133647354846759e-8,0.0010534160834845703,6.230045791333779e-6,1.1312589735762775e-8,0.001053550198721015,6.1966823130205854e-6,1.1330774854534354e-8,0.0010537085154161126,6.0844906794547615e-6,1.1390513063025623e-8,0.0010539227224054864,5.906847205676181e-6,1.1484802633572627e-8,0.00105422025687308,5.690435278638442e-6,1.1599668036115498e-8,0.0010546184278993171,5.4746708261865515e-6,1.1714426246353476e-8,0.001055117156275193,5.307635025766357e-6,1.1803769941651274e-8,0.001055692545616445,5.236529243510756e-6,1.184274644058134e-8,0.001056295705931545,5.292689648675187e-6,1.1814655608677331e-8,0.0010568617072468647,5.4757403210461624e-6,1.1719477956429268e-8,0.0010573293783666506,5.74604326804144e-6,1.157796966652239e-8,0.0010576645165347547,6.033560344798371e-6,1.1427058221344922e-8,0.0010578737870635731,6.261973517443829e-6,1.1307094518131505e-8,0.0010580009637449824,6.3760497725166996e-6,1.1247346419441141e-8,0.001058108517330219,6.358165356812837e-6,1.1257242872632262e-8,0.0010582556001528874,6.228289144348805e-6,1.1326384333356857e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json new file mode 100644 index 00000000..d7e3be98 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":13000,"numberOfSamples":1000,"samples":[0.0010584823083198346,6.031818825503171e-6,1.14309469118811e-8,0.0010588036033781425,5.823520864538709e-6,1.1542103150393909e-8,0.0010592110744742987,5.6537248748726675e-6,1.1633248752700286e-8,0.0010596790894540058,5.559275280564943e-6,1.1684765345343194e-8,0.0010601724727019367,5.559236240846307e-6,1.1686339583847125e-8,0.0010606540091394276,5.654379293057021e-6,1.163732802349451e-8,0.0010610908819856466,5.829497270171977e-6,1.1545624012790231e-8,0.0010614594503400023,6.057715047147503e-6,1.1425423187205381e-8,0.001061747989835144,6.305862037083749e-6,1.1294367431781857e-8,0.0010619573719630783,6.539955951254238e-6,1.1170587469196216e-8,0.0010620999645025674,6.73003410085884e-6,1.107008326599654e-8,0.0010621972572704668,6.85379996171742e-6,1.1004756707165859e-8,0.0010622768540195135,6.898913123430779e-6,1.098119849532928e-8,0.0010623693266318172,6.864185869807982e-6,1.1000078885400938e-8,0.0010625050436689565,6.760079817880366e-6,1.1055907410923635e-8,0.001062710756522555,6.608668374463369e-6,1.1137052470541557e-8,0.0010630055440594903,6.442842455479279e-6,1.122613014857253e-8,0.0010633958133875673,6.303928192637586e-6,1.1301216346173524e-8,0.0010638698300656857,6.236227673998108e-6,1.1338700200742188e-8,0.0010643938207032379,6.277096687541316e-6,1.1318549017049607e-8,0.0010649135018336272,6.443029009602109e-6,1.1231761017071778e-8,0.0010653652534506645,6.716334917457601e-6,1.1087554932954997e-8,0.0010656971998236583,7.041447402084115e-6,1.0915428186536279e-8,0.0010658919742331224,7.338860744797124e-6,1.0757744815379704e-8,0.0010659770288683225,7.534292063466726e-6,1.0654138240953239e-8,0.001066013886508743,7.587831708115414e-6,1.0625935223163422e-8,0.0010660723258305996,7.506181686783977e-6,1.0669662265910576e-8,0.0010662052115061964,7.3335686443663195e-6,1.0761922260944352e-8,0.0010664358470525873,7.130863915281745e-6,1.0870481691937031e-8,0.0010667588393153595,6.955633515934309e-6,1.0964801902708683e-8,0.0010671485918925085,6.8498410434954626e-6,1.1022511941646397e-8,0.0010675694409390784,6.835426550329633e-6,1.1031759374762615e-8,0.0010679841615469535,6.915158645441867e-6,1.0990824083116765e-8,0.0010683599657830244,7.076052103195604e-6,1.0906394119921115e-8,0.0010686723933572796,7.293685466136946e-6,1.0791343615514796e-8,0.00106890765095213,7.536822311352906e-6,1.0662299642942404e-8,0.0010690635977016276,7.77211139688823e-6,1.0537115853861746e-8,0.001069149428980129,7.968577301214409e-6,1.0432429890255657e-8,0.0010691841550370862,8.101601929648258e-6,1.036149374624633e-8,0.0010691940071483454,8.156061538266819e-6,1.0332478423133815e-8,0.001069209055658057,8.128266563717782e-6,1.03474435063982e-8,0.0010692594713290538,8.026593480405271e-6,1.0402013164716527e-8,0.0010693717459872535,7.870945267100574e-6,1.0485664177770738e-8,0.0010695649713014753,7.691125951702836e-6,1.05825672334285e-8,0.0010698471837835711,7.524020444771572e-6,1.0673046459330192e-8,0.0010702118794917663,7.409199319244088e-6,1.073588364535248e-8,0.0010706353190277158,7.382260325524803e-6,1.0751866255570777e-8,0.0010710762838212979,7.465490347225327e-6,1.0708824642405977e-8,0.0010714809682874885,7.6570210693528492E-06,1.0607528738465052e-8,0.0010717954666795326,7.92266264450533e-6,1.0466162353522634e-8,0.0010719849482146093,8.197549025520211e-6,1.031948512559187e-8,0.0010720518335533688,8.403355641842077e-6,1.0209555077841326e-8,0.0010720405373210041,8.477632103826806e-6,1.0169920153450947e-8,0.001072021738228369,8.400092320472587e-6,1.021150931330851e-8,0.0010720635198379748,8.199374023477202e-6,1.0319075409549964e-8,0.0010722065788787624,7.937147885028722e-6,1.0459750886515433e-8,0.00107245583521534,7.681893768449438e-6,1.0597036740148054e-8,0.0010727875503866039,7.487659268153709e-6,1.0702071381753594e-8,0.0010731630002383215,7.384581405590331e-6,1.075864496894142e-8,0.0010735409195010803,7.379180450137632e-6,1.0763066178824929e-8,0.001073885642552888,7.459556157906894e-6,1.0721462765445143e-8,0.0010741711464074789,7.60167164073378e-6,1.064650717664984e-8,0.0010743824677307964,7.774854624539591e-6,1.05545292946971e-8,0.0010745158753886549,7.946253107214568e-6,1.0463140800736486e-8,0.0010745783975093434,8.084663970024577e-6,1.0389154063601514e-8,0.0010745867148931046,8.164015707520659e-6,1.0346669113505363e-8,0.0010745652935797434,8.166515928713906e-6,1.0345347414447921e-8,0.0010745436064007652,8.085247843115634e-6,1.0389003625916266e-8,0.001074552414002862,7.925732239563838e-6,1.04747713355022e-8,0.0010746194263179607,7.705947602888145e-6,1.0593098065321354e-8,0.0010747649179418883,7.45457851834404e-6,1.0728675241616273e-8,0.0010749978735612412,7.207509835919612e-6,1.0862287758949862e-8,0.0010753131883688583,7.0027414856204215e-6,1.0973502950806292e-8,0.0010756904320888402,6.874033979996817e-6,1.1044059873554255e-8,0.0010760947834755237,6.8436529769841505e-6,1.1061787085804026e-8,0.001076481049891446,6.914886396186059e-6,1.1024693263841812e-8,0.0010768018290682909,7.066051634150347e-6,1.0944283327208556e-8,0.0010770200321076698,7.249261634913781e-6,1.0846289489249666e-8,0.001077123420982185,7.39804993243476e-6,1.076656197635394e-8,0.0010771348797026668,7.44585714263904e-6,1.0741042838621376e-8,0.0010771101367558554,7.350779981649652e-6,1.0792371226593277e-8,0.0010771194563272597,7.114340819791003e-6,1.091978472227473e-8,0.0010772207158111727,6.781925749825741e-6,1.1098942285178267e-8,0.001077438751988009,6.423598569950669e-6,1.1292263291924475e-8,0.0010777614606054466,6.107174429654953e-6,1.1463350840217734e-8,0.001078150988925822,5.878278442603043e-6,1.1587643347827043e-8,0.0010785602961386523,5.753858224937523e-6,1.1655892460490189e-8,0.0010789465240847547,5.72623912615062e-6,1.167203738632892e-8,0.0010792781883616845,5.7715171050260465e-6,1.1648769383961856e-8,0.0010795372547668179,5.857715055435001e-6,1.1603202812664468e-8,0.001079718408317149,5.950842140755552e-6,1.1553633958985417e-8,0.0010798274054571314,6.018931123532262e-6,1.1517348515355086e-8,0.0010798793764046966,6.034916081994106e-6,1.150903056702829e-8,0.0010798970957694128,5.979082561969348e-6,1.1539400992860876e-8,0.0010799088782759599,5.841386795654391e-6,1.1613943229511664e-8,0.001079945671266815,5.6234999239785664e-6,1.1731800417280663e-8,0.0010800370563297977,5.339960624404898e-6,1.1885168170973472e-8,0.0010802063626677298,5.017558699714286e-6,1.2059638070394361e-8,0.001080465709873069,4.692281975823613e-6,1.2235836282107038e-8,0.0010808121845919524,4.403722523375394e-6,1.239241282362964e-8,0.0010812263927673289,4.1875776377249006e-6,1.2510056790341688e-8,0.0010816742755761358,4.067606126441703e-6,1.2575830541311822e-8,0.0010821124162932766,4.048764490048608e-6,1.2586910279254428e-8,0.001082496394029135,4.1132067224480435e-6,1.2552812557360103e-8,0.0010827911400719823,4.220728194789922e-6,1.2495218049522599e-8,0.0010829814407256138,4.315035608807498e-6,1.2444602628550136e-8,0.0010830795939978,4.336331558319785e-6,1.2433397469308228e-8,0.0010831263014689158,4.238515418925506e-6,1.2486625405764085e-8,0.0010831815716910997,4.005888907583e-6,1.2612831618416838e-8,0.0010833062871192334,3.6615290203470267e-6,1.2799568273597161e-8,0.0010835411795810717,3.261162454656364e-6,1.3016729071965934e-8,0.0010838933778462134,2.8737930394674124e-6,1.3227010267237029e-8,0.001084337034999438,2.5585169726812227e-6,1.3398407369065678e-8,0.0010848260137734957,2.3486087687672093e-6,1.351281176227918e-8,0.0010853104715353803,2.2479370425633493e-6,1.3567994079646327e-8,0.0010857496852788604,2.2371567972056594e-6,1.3574322546551323e-8,0.0010861181451779231,2.2837281191620208e-6,1.3549388239562281e-8,0.0010864060912470594,2.3509882779473265e-6,1.351309848109019e-8,0.001086617167375567,2.4043382300803017e-6,1.348429676688557e-8,0.0010867653789912383,2.414780175748046e-6,1.3478800918996513e-8,0.0010868723951977914,2.36090336349784e-6,1.3508287044674754e-8,0.0010869652859729975,2.230320299619587e-6,1.357949036950374e-8,0.0010870742527047388,2.0210940838380106e-6,1.3693435401754393e-8,0.0010872297036982135,1.7431263470573831e-6,1.3844706627164613e-8,0.0010874581583647045,1.4188304041524766e-6,1.4021110351396713e-8,0.0010877770309646244,1.0819285734700634e-6,1.420434005833336e-8,0.0010881892473587201,7.732394508393998e-7,1.4372250040797893e-8,0.0010886795450963712,5.330813350595426e-7,1.4502949312721697e-8,0.001089214649730255,3.9140243490344096e-7,1.458013766244398e-8,0.0010897487258969283,3.584072521389756e-7,1.459820749252219e-8,0.0010902335819651038,4.191729634013468e-7,1.4565214418600275e-8,0.0010906310187498445,5.348153076480196e-7,1.4502295396028616e-8,0.0010909236281021046,6.506177348026824e-7,1.443926695100913e-8,0.001091120685014961,7.092800663955221e-7,1.4407391615029013e-8,0.001091257136747916,6.658869235087142e-7,1.4431183604022623e-8,0.0010913854479859381,5.005821622148568e-7,1.4521478794650966e-8,0.0010915618860652314,2.251478759511052e-7,1.467185398741576e-8,0.0010918307189155313,-1.1924299742407577e-7,1.4859864732950039e-8,0.0010922113493534546,-4.734372432057817e-7,1.5053255310459487e-8,0.0010926932935980337,-7.775556028587294e-7,1.5219334684945516e-8,0.0010932410472572044,-9.877102401363634e-7,1.533407805988485e-8,0.0010938063797259453,-1.0859165470122615e-6,1.5387566050399254e-8,0.001094342455259391,-1.080589230442882e-6,1.5384321095468852e-8,0.00109481445675083,-9.995980021090122e-7,1.5339569592932147e-8,0.0010952043212414967,-8.803420527904827e-7,1.5273828324478645e-8,0.0010955103354372215,-7.608506842509845e-7,1.520800473466209e-8,0.0010957438947718288,-6.738297010954895e-7,1.516008890171015e-8,0.0010959255739260278,-6.435882030741187e-7,1.514342886133524e-8,0.0010960816844447629,-6.848008439732961e-7,1.516603611113632e-8,0.001096241543978873,-8.02004725041787e-7,1.5230321629549556e-8,0.0010964350536024304,-9.891361497491146e-7,1.5332873831182345e-8,0.0010966898752015986,-1.2290044827439803e-6,1.5464206803068726e-8,0.0010970275583669783,-1.4932930260580311e-6,1.5608784981685757e-8,0.0010974584822657629,-1.7443109645131954e-6,1.574598051452959e-8,0.0010979764965260918,-1.9399561880694465e-6,1.5852762521604583e-8,0.0010985554895813923,-2.0426623918831098e-6,1.590856103716042e-8,0.0010991510076969397,-2.031063016383569e-6,1.590164521848076e-8,0.0010997091337757634,-1.9102678540224635e-6,1.5834788151340182e-8,0.0011001814643931509,-1.7151290714917107e-6,1.5727115299126148e-8,0.0011005408546707206,-1.5028952094650604e-6,1.5610105905041306e-8,0.001100790948640354,-1.3368393448549428e-6,1.5518581808694086e-8,0.001100965184316589,-1.2672952194125447e-6,1.5480237846173764e-8,0.0011011161176956588,-1.3175209969869768e-6,1.5507843040213407e-8,0.0011012998469212088,-1.4787697248972343e-6,1.5596542078759433e-8,0.001101561065014156,-1.7146998910046917e-6,1.5726308035865734e-8,0.0011019226990827457,-1.9724071175410574e-6,1.586801490545639e-8,0.001102382007116548,-2.196363356079692e-6,1.5991084228148263e-8,0.0011029132667145561,-2.3416096021800094e-6,1.6070722292919825e-8,0.0011034757514399483,-2.38310916619068e-6,1.6093077245681256e-8,0.0011040244786115357,-2.31927776315323e-6,1.6057225467888683e-8,0.0011045205794044041,-2.1694385072843676e-6,1.597381802522786e-8,0.0011049385690624493,-1.966838354498544e-6,1.5861252045493124e-8,0.0011052692443645087,-1.750001842086337e-6,1.5740883086523665e-8,0.0011055186380034719,-1.5550353774155559e-6,1.5632734001830676e-8,0.0011057045369247066,-1.4103695910270938e-6,1.5552549745965977e-8,0.0011058522277989002,-1.3341378137981495e-6,1.551032955262108e-8,0.0011059906217503908,-1.3335025490994153e-6,1.5509962936515426e-8,0.001106149150194748,-1.404950501845874e-6,1.5549420079728942e-8,0.0011063551807779252,-1.5348143523852197e-6,1.5621073311654e-8,0.0011066313631327655,-1.6998081049754247e-6,1.5712016164878937e-8,0.0011069922927926747,-1.8679853774396568e-6,1.580459705808824e-8,0.0011074402507398938,-2.0011637405826746e-6,1.5877740607269027e-8,0.0011079607077455421,-2.060248709035317e-6,1.5909858156164228e-8,0.001108519738968454,-2.0144254988523965e-6,1.588390462537339e-8,0.0011090667951459137,-1.8531436940924132e-6,1.5794016241904865e-8,0.0011095457522609323,-1.5962893152773853E-06,1.5651187561937485e-8,0.0011099131036531966,-1.295286315591519e-6,1.548393416264128e-8,0.0011101558729649911,-1.0201697065466408e-6,1.5331133204623056e-8,0.0011102988958696094,-8.358929741676526e-7,1.5228836499800212e-8,0.001110396160826366,-7.792957175517323e-7,1.519745019538023e-8,0.00111051078357651,-8.4832733122868e-7,1.5235767590110828e-8,0.0011106942753399312,-1.0069042485667557e-6,1.5323711725274e-8,0.00111097368196469,-1.1999692577389667e-6,1.5430718007157876e-8,0.0011113487938456635,-1.370515245006706e-6,1.5525164027079777e-8,0.0011117968919402519,-1.472886234678616e-6,1.5581716379428368e-8,0.00111228126468647,-1.4803580618799743e-6,1.5585522069862342e-8,0.0011127605283525728,-1.38735025143936e-6,1.553345118973782e-8,0.0011131969606502966,-1.207467615593322e-6,1.5433042494833323e-8,0.0011135628384484684,-9.68609089136904e-7,1.5299812786382335e-8,0.0011138441430138264,-7.063766770539463e-7,1.515359787677788e-8,0.0011140413969519087,-4.5716749529745555e-7,1.5014692696968984e-8,0.0011141679771116317,-2.5224292949749117e-7,1.4900524553462284e-8,0.0011142467106409985,-1.1360505719006956e-7,1.4823340179212186e-8,0.0011143057375622243,-5.1947099677121166e-8,1.478906414284595e-8,0.0011143745275428235,-6.641623982905153e-8,1.479718055412551e-8,0.0011144805411490116,-1.4554045014367347e-7,1.4841267716474989e-8,0.0011146465039405943,-2.6868186327244643e-7,1.4909818722617364e-8,0.0011148879464543517,-4.077487512787168e-7,1.4987193531681402e-8,0.0011152106069133069,-5.293572049765862e-7,1.5054810350341645e-8,0.001115607505557431,-5.981354506604627e-7,1.5092967998964315e-8,0.0011160562278251995,-5.82238372920153e-7,1.508390498897239e-8,0.0011165181858738054,-4.617774614729789e-7,1.5016501585294573e-8,0.0011169427756374372,-2.3916486858598275e-7,1.489207589936706e-8,0.001117279123695704,5.281074662320559e-8,1.4728931150574154e-8,0.0011174945353303808,3.5238253651923323e-7,1.4561593636104278e-8,0.0011175918891919794,5.85237341776037e-7,1.4431602483043102e-8,0.001117613973298778,6.922600246158575e-7,1.4371955080154304e-8,0.0011176285284481737,6.540692000960255e-7,1.4393394122909386e-8,0.0011177012518909313,4.973859584028976e-7,1.4480914676359373e-8,0.0011178724639969737,2.807665191832271e-7,1.4601797634793543e-8,0.0011181484319527568,7.064887876481905e-8,1.4718987525011862e-8,0.0011185068668504749,-7.890745011779789e-8,1.4802357637019236e-8,0.0011189091709123736,-1.3646153918415363e-7,1.4834384089423755e-8,0.0011193126105248509,-9.43931094899234e-8,1.48108065335213e-8,0.0011196792366973227,3.5164048593491474e-8,1.473837430297344e-8,0.0011199811858316087,2.26369559642981e-7,1.4631494218090753e-8,0.0011202031869314724,4.4589422366034254e-7,1.4508776239873582e-8,0.00112034310520379,6.586854121746841e-7,1.4389816343386903e-8,0.0011204109385747102,8.330417415667043e-7,1.4292352649188305e-8,0.0011204265234972595,9.446967691452359e-7,1.4229970169917528e-8,0.0011204162785695454,9.796302768584618e-7,1.4210520366177409e-8,0.0011204093914756884,9.354136766252925e-7,1.423536740670385e-8,0.0011204339509095645,8.210357617533893e-7,1.4299488573279187e-8,0.0011205135047749502,6.554492436680685e-7,1.4392288214421408e-8,0.0011206642577800594,4.652528434009131e-7,1.4498888367884619e-8,0.001120892869175372,2.817729973787914e-7,1.4601751044198787e-8,0.0011211947550755549,1.3757495990860276e-7,1.4682621069015419e-8,0.0011215528883894927,6.21872975976025e-8,1.4724918735586556e-8,0.001121937523487324,7.657802320904832e-8,1.471684663627745e-8,0.0011223081121608392,1.862337483495964e-7,1.4655293964103262e-8,0.0011226193191337492,3.7406125879550593e-7,1.4549846746055096e-8,0.001122832579558784,5.965725646991329e-7,1.4424943518651694e-8,0.001122931860338344,7.888398809784377e-7,1.4317073347269448e-8,0.0011229368584202211,8.823540066354003e-7,1.42646972284513e-8,0.0011229030163360236,8.31978931560535e-7,1.4293081372632381e-8,0.0011229027871189272,6.377983868581165e-7,1.4402074372500076e-8,0.0011229961745440554,3.466313844851877e-7,1.4565346045514696e-8,0.0011232080312209413,3.131213495657076e-8,1.4742059226319447e-8,0.0011235241667242122,-2.384517151272013e-7,1.4893183747109764e-8,0.0011239038866639104,-4.1705069829968125e-7,1.4993199888376666e-8,0.0011242978045176068,-4.891837396590307e-7,1.5033552385496457e-8,0.0011246618087164136,-4.650533911979487e-7,1.501996092483476e-8,0.0011249644073865193,-3.712956185955165e-7,1.4967350495564534e-8,0.0011251887847238463,-2.4226609099827207e-7,1.489497804254355e-8,0.0011253319323496448,-1.1342860023329529e-7,1.4822732804632492e-8,0.001125402634959825,-1.6748392335343594e-8,1.476855463336166e-8,0.0011254190551908455,2.2583818610430424e-8,1.4746592428163293e-8,0.001125406006350285,-1.147849811646348e-8,1.4765866874794957e-8,0.0011253918703925659,-1.2428284425453638e-7,1.4829389975213278e-8,0.001125405153669,-3.098575433825358e-7,1.4933811618400424e-8,0.001125470825285484,-5.515007109536961e-7,1.5069747750744837e-8,0.0011256068473051415,-8.237402109522106e-7,1.522287862447306e-8,0.0011258213742378021,-1.0955210324600928e-6,1.5375735433027346e-8,0.001126110953640497,-1.33434576076099e-6,1.551002392607651e-8,0.0011264599688784321,-1.5110754595557068e-6,1.5609325258051984e-8,0.0011268415324472347,-1.6050367155868619e-6,1.5661979950811296e-8,0.0011272200850014037,-1.6091063327225863e-6,1.5663968705012574e-8,0.0011275562307977297,-1.5342861631028003e-6,1.5621508044081852e-8,0.0011278144681279808,-1.4124327608801717e-6,1.5552595027563792e-8,0.001127973697196369,-1.2945868803236955e-6,1.548604925928786e-8,0.0011280382587597413,-1.2418556395565706e-6,1.5456333428887506e-8,0.0011280441049613882,-1.3076713541081708e-6,1.5493515389976944e-8,0.0011280530903307478,-1.5159246352740396e-6,1.5610950547436537e-8,0.001128132778175655,-1.8463668689740967e-6,1.579711977668449e-8,0.0011283296134604944,-2.238778351585612e-6,1.601804452302929e-8,0.0011286507402838491,-2.6162893563312223e-6,1.6230430827785135e-8,0.001129064849116733,-2.914505922934018e-6,1.639803217786027e-8,0.0011295188883964043,-3.1003495271215335e-6,1.650223555792818e-8,0.0011299585096496848,-3.1743954370268017e-6,1.6543390761059785e-8,0.0011303422387863712,-3.1616614223987634e-6,1.6535639899295777e-8,0.0011306468543703053,-3.099226465392222e-6,1.649993957729718e-8,0.0011308665355909385,-3.026115926253836e-6,1.6458343678529448e-8,0.0011310092877528594,-2.97696670198988e-6,1.643041637428008e-8,0.0011310930107738839,-2.9787150579821667e-6,1.643135725219101e-8,0.0011311420979546502,-3.048971357365785e-6,1.6471083224590702e-8,0.0011311844863316548,-3.1951543584245246e-6,1.655374177555831e-8,0.0011312487969415517,-3.4140426711787296e-6,1.667746050617603e-8,0.001131361247585663,-3.6918347099299193e-6,1.683438659836271e-8,0.0011315422288500833,-4.005155407124281e-6,1.701126248263884e-8,0.0011318028686057846,-4.323516118603748e-6,1.719082210152812e-8,0.001132142305142021,-4.613386976593811e-6,1.7354095519871995e-8,0.001132546459390808,-4.843583003603475e-6,1.7483454475893005e-8,0.0011329889427781129,-4.991272754047409e-6,1.7566013688537354e-8,0.0011334344413259357,-5.047541910774497e-6,1.7596784618951905e-8,0.001133844458183822,-5.021292733474158e-6,1.7580889129752105e-8,0.0011341848700335095,-4.94040959890774e-6,1.753421475919338e-8,0.0011344344119443499,-4.8491916969188745e-6,1.748193700907113e-8,0.0011345925814498685,-4.801059066100088e-6,1.745434825021528e-8,0.001134684387300292,-4.846227082445247e-6,1.7479841111046328e-8,0.0011347584805635495,-5.0160858158737145e-6,1.7576061597522453e-8,0.0011348759327808268,-5.309263400214288e-6,1.7742064468409605e-8,0.0011350908173706725,-5.6869034120381485e-6,1.7955706489080888e-8,0.0011354299176144932,-6.082800701089851e-6,1.8179418623203863e-8,0.0011358822190113598,-6.426124898603051e-6,1.8373054177066374e-8,0.0011364043809356825,-6.665757949870108e-6,1.8507648393622844e-8,0.0011369384853650538,-6.7840861137196476e-6,1.8573247563186413e-8,0.0011374316455507916,-6.795823634017219e-6,1.8578280026159067e-8,0.001137848673807987,-6.736604005607285e-6,1.85430965640259e-8,0.001138175543947817,-6.649378408098194e-6,1.8492219634553844e-8,0.0011384164599360274,-6.574091986083006e-6,1.8448433493018965e-8,0.0011385884812031334,-6.5420367269707E-06,1.8429543600599157e-8,0.0011387163515221173,-6.573764105960214e-6,1.844718403120001e-8,0.0011388284833158092,-6.678850501571657e-6,1.8506697577031452e-8,0.0011389539421612653,-6.856289459219892e-6,1.8607380918886297e-8,0.0011391198567281403,-7.094990988364993e-6,1.8742791852569966e-8,0.0011393486909906535,-7.374470404067843e-6,1.8901162544082247e-8,0.001139655105173082,-7.666288253826918e-6,1.9066235687773136e-8,0.0011400426757558419,-7.936983461486883e-6,1.921894205864218e-8,0.0011405013577337874,-8.152936837249098e-6,1.9340168556050783e-8,0.0011410069453844265,-8.286904307477137e-6,1.941447163411268e-8,0.001141523687978373,-8.325052062458535e-6,1.943407977800105e-8,0.0011420104921204704,-8.272482966705914e-6,1.940204081740356e-8,0.0011424298885641681,-8.155032071176124e-6,1.9333238629293002e-8,0.0011427577026877223,-8.01590505046847e-6,1.9252449665323856e-8,0.0011429907616206283,-7.907174957399983e-6,1.9189445751876634e-8,0.0011431501649271265,-7.877608061907913e-6,1.917200273740673e-8,0.0011432784491987938,-7.9594886944176e-6,1.9218374972079383e-8,0.0011434302434748492,-8.157983701078854e-6,1.9331275036921774e-8,0.0011436578055424847,-8.446881947193677e-6,1.949552477305666e-8,0.00114399515501405,-8.773659928063834e-6,1.9681008281834052e-8,0.001144446522983574,-9.073972603149053e-6,1.9850948567032337e-8,0.0011449845240813815,-9.291172843971188e-6,1.997301868872744e-8,0.0011455595354737658,-9.393027652032006e-6,2.0028869806567677e-8,0.0011461161009334714,-9.378716130867975e-6,2.001814630971795e-8,0.0011466089029168024,-9.274461172054308e-6,1.9956008806800238e-8,0.0011470122988015584,-9.121833292035425e-6,1.9866427698242803e-8,0.00114732188508422,-8.96496066277439e-6,1.977481168122164e-8,0.001147550426654242,-8.84115873090527e-6,1.970259092640148e-8,0.0011477216937115396,-8.776250220560751e-6,1.966451506584681e-8,0.0011478647584178116,-8.783503033521037e-6,1.966805944170667e-8,0.0011480097210303582,-8.864451422748417e-6,1.971393023358895e-8,0.0011481847339456337,-9.010282799110149e-6,1.9796897029095008e-8,0.0011484137013095736,-9.203162855983934e-6,1.9906583070119853e-8,0.0011487139621447924,-9.417536219790016e-6,2.0028232082651543e-8,0.0011490935669522466,-9.622008265590576e-6,2.0143797216780358e-8,0.0011495483701545808,-9.782674812070154e-6,2.0233850339937727e-8,0.0011500598968202766,-9.868530899457088e-6,2.0280675342107168e-8,0.001150595576793416,-9.858788234789456e-6,2.027245503525575e-8,0.0011511130407411538,-9.750551556433113e-6,2.0207673116114426e-8,0.0011515690958261268,-9.563815939238883e-6,2.0097983923800655e-8,0.0011519316806153635,-9.340392670730376e-6,1.9967584121287674e-8,0.001152190749497022,-9.135185026245966e-6,1.9848156573524196e-8,0.0011523634382926925,-9.001659265593388e-6,1.9770455193964563e-8,0.0011524907957058544,-8.976351650421527e-6,1.975535707782608e-8,0.0011526268209164589,-9.067935946616826e-6,1.9807599727437817e-8,0.0011528235054923113,-9.25449432683755e-6,1.9914294904382524e-8,0.0011531166414686328,-9.489552149459594e-6,2.0048491573720485e-8,0.0011535164504243166,-9.71476019621844e-6,2.0176519619224113e-8,0.0011540055000518578,-9.875454353321969e-6,2.0266935867828633e-8,0.0011545443526542588,-9.934597905884134e-6,2.029851857027083e-8,0.0011550830429836547,-9.881012223473731e-6,2.026498429883669e-8,0.0011555744937682764,-9.729706251418504e-6,2.0175168201088018e-8,0.0011559854772124829,-9.51504938883692e-6,2.0049071556327196e-8,0.0011563021464909625,-9.280042396553756e-6,1.991163982225793e-8,0.0011565296752859802,-9.065727818539686e-6,1.9786613888511836e-8,0.001156687736425848,-8.903688987058367e-6,1.9692182364519e-8,0.0011568044046975123,-8.8125619957311e-6,1.9638981965480233e-8,0.0011569105458751,-8.797789715304598e-6,1.9629991386652268e-8,0.0011570356151798416,-8.853178776230065e-6,1.9661469660227554e-8,0.0011572048275839113,-8.963029002850191e-6,1.9724213131765286e-8,0.0011574371573823965,-9.104180604326605e-6,1.9804750235027096e-8,0.0011577435098976399,-9.247950130788989e-6,1.9886461799431398e-8,0.0011581246406424353,-9.362476184699034e-6,1.9950934601369646e-8,0.001158568958664678,-9.41631267388031e-6,1.9980033554842147e-8,0.001159051135572797,-9.383982662467644e-6,1.9959107105592105e-8,0.0011595332400694842,-9.253407196201551e-6,1.988127948054991e-8,0.0011599704116754437,-9.033473617199929e-6,1.9751830591591057e-8,0.001160321905079089,-8.757962164306107e-6,1.9590469326886845e-8,0.0011605651381540996,-8.481352968156326e-6,1.9428884611557018e-8,0.0011607066977102414,-8.264780100526713e-6,1.9302555692561575e-8,0.0011607835786356816,-8.156211653841857e-6,1.9239208531028127e-8,0.001160852303938451,-8.173672131833849e-6,1.9249082973678126e-8,0.0011609704050213417,-8.299502401002055e-6,1.9321670102197103e-8,0.0011611786600939425,-8.487524842860316e-6,1.942996472795716e-8,0.00116149085756971,-8.678548440956826e-6,1.9539526753642373e-8,0.0011618930476837161,-8.817263786054158e-6,1.961829467481908e-8,0.0011623502480845786,-8.865197369246996e-6,1.9644073624203352e-8,0.0011628170462849206,-8.807345064885849e-6,1.9608343243756524e-8,0.001163248772606246,-8.652436380407108e-6,1.9516370694754277e-8,0.0011636107636861521,-8.42810745764086e-6,1.9384372461534673e-8,0.0011638841503945102,-8.17290291549061e-6,1.9234838808357553e-8,0.0011640675332915647,-7.927309243105636e-6,1.9091306227406572e-8,0.001164174910574985,-7.725934562782125e-6,1.897381570422459e-8,0.0011642310911780206,-7.592301438636944e-6,1.8895911963434465e-8,0.001164266183153776,-7.536686249750781e-6,1.8863426101585725e-8,0.0011643105098843333,-7.556534996681924e-6,1.8874751833990127e-8,0.0011643907219274397,-7.638508383357229e-6,1.892205030520054e-8,0.0011645272144765674,-7.761166811425134e-6,1.8992807601442906e-8,0.0011647324707863098,-7.897651936164617e-6,1.9071379900299287e-8,0.0011650098094900412,-8.018265814666975e-6,1.914048233352255e-8,0.0011653521888236509,-8.093307790327415e-6,1.9182839583695098e-8,0.001165741133615056,-8.096798948189496e-6,1.9183362843101123e-8,0.0011661465394286383,-8.01169930545659e-6,1.913219846759754e-8,0.0011665289267256526,-7.836536321099879e-6,1.9028592765835697e-8,0.0011668460658409007,-7.591725078170206e-6,1.8884569456476698e-8,0.0011670647742319771,-7.321672629410377e-6,1.872613603007408e-8,0.0011671752536712213,-7.087778965397692e-6,1.8589162929747138e-8,0.0011672007945532352,-6.950506281680236e-6,1.8508875117680157e-8,0.0011671946165852476,-6.946270276537636e-6,1.8506350208028936e-8,0.0011672219724961402,-7.071417197234697e-6,1.8579216055933185e-8,0.0011673358746302342,-7.283275108892446e-6,1.8702356985605753e-8,0.0011675594159570796,-7.517413113909867e-6,1.8838061377010595e-8,0.0011678822015231747,-7.710561368063675e-6,1.8949420655493054e-8,0.0011682689261397071,-7.818135372925264e-6,1.9010538692202126e-8,0.0011686730493583339,-7.821696462300443e-6,1.90108499425854e-8,0.0011690494583318888,-7.727720962976632e-6,1.8954353489254236e-8,0.0011693632444199163,-7.56134032774171e-6,1.885590552632025e-8,0.00116959424227111,-7.358324729191973e-6,1.8736493783482777e-8,0.0011697381322427927,-7.157289319737172e-6,1.861866602390422e-8,0.001169805015940991,-6.993028321525914e-6,1.852264983791331e-8,0.0011698161546601542,-6.891491872816817e-6,1.8463458014440653e-8,0.0011697995747586565,-6.866806023143072e-6,1.8449195474681566e-8,0.001169785345145261,-6.9204124414224666e-6,1.8480593608555368e-8,0.0011698012390084927,-7.0420511084665356e-6,1.8551596753815423e-8,0.0011698692959780039,-7.212115770190638e-6,1.865072612237821e-8,0.001170003535115469,-7.40476340602822e-6,1.876287162320732e-8,0.0011702087001298016,-7.591191261412983e-6,1.887118665962335e-8,0.001170479701385697,-7.742851069545861e-6,1.895896527939579e-8,0.0011708015200401624,-7.834746251544546e-6,1.9011588216858993e-8,0.0011711496211634048,-7.849130822009977e-6,1.9018713426567524e-8,0.0011714913924403504,-7.779910197998646e-6,1.8976869060788222e-8,0.0011717897544849946,-7.637523831636095e-6,1.889230519205385e-8,0.001172010309956273,-7.452738502943907e-6,1.8783182601489195e-8,0.0011721323598993924,-7.275994332800178e-6,1.867913794942048e-8,0.0011721611281580594,-7.168155593634209e-6,1.861581265298405e-8,0.0011721343191450696,-7.1813051484193844e-6,1.862357539268324e-8,0.0011721149049607846,-7.335813716215587e-6,1.87141217167984e-8,0.001172168800567516,-7.607145133330706e-6,1.8872833135365767e-8,0.0011723380208572738,-7.933227173421569e-6,1.9063184028057393e-8,0.0011726252496139771,-8.239481077610759e-6,1.924143891636807e-8,0.0011729975280554965,-8.466260519538257e-6,1.9372719916227837e-8,0.0011734031858778484,-8.584501548552111e-6,1.944016181411194e-8,0.001173790302185874,-8.596454295920204e-6,1.944531693494591e-8,0.0011741190787508823,-8.527161410478187e-6,1.9403109104349883e-8,0.0011743669348481497,-8.413502697600549e-6,1.933534155711618e-8,0.0011745284115409797,-8.294793736602777e-6,1.9265131227668844e-8,0.0011746124079364151,-8.206190261184355e-6,1.9213032276832187e-8,0.0011746385065752375,-8.174556373859033e-6,1.9194649111671876e-8,0.0011746330915234392,-8.216052103381338e-6,1.9219279634408336e-8,0.0011746253880197785,-8.335082109550146e-6,1.9289350289034145e-8,0.0011746435809791025,-8.524542340119898e-6,1.9400586230916127e-8,0.0011747112692470335,-8.767280557710057e-6,1.954286430798587e-8,0.0011748445359639791,-9.03865596643075e-6,1.9701692857538592e-8,0.0011750499632298852,-9.309966660718363e-6,1.9860201817912727e-8,0.001175323799399941,-9.552298843262974e-6,2.0001396821218872e-8,0.00117565222379474,-9.740381416028808e-6,2.0110439466007515e-8,0.0011760125740055314,-9.856258828588306e-6,2.0176834214821782e-8,0.001176375524771259,-9.89270749701017e-6,2.0196458357561633e-8,0.0011767084198622795,-9.856295447680713e-6,2.0173355725141192e-8,0.0011769802534832457,-9.769680052766479e-6,2.0121046365166935e-8,0.001177168799588408,-9.671871258832764e-6,2.0062613323586582e-8,0.0011772694476469777,-9.6141384720008e-6,2.002822704058926e-8,0.0011773031276615976,-9.649130357389883e-6,2.004871269724044e-8,0.001177317927990144,-9.813195811093411e-6,2.0145182911243707e-8,0.0011773784774201084,-1.0107742086366462e-5,2.031816622647421e-8,0.0011775429199502576,-1.0491244705205072e-5,2.054301185498362e-8,0.001177837880102486,-1.0891186429975976e-5,2.077695811502661e-8,0.0011782469508336748,-1.1232228758863288e-5,2.0975685618500445e-8,0.0011787199252995327,-1.1464270048217633e-5,2.1109807093236463e-8,0.001179195117857407,-1.1575096317836384e-5,2.1172327792887724e-8,0.0011796204060343677,-1.1585333083324484e-5,2.117567378298927e-8,0.001179964253721622,-1.153426084540048e-5,2.1143276835969646e-8,0.001180216947487361,-1.1465789942356163e-5,2.1101215758474892e-8,0.0011803864077251783,-1.1418915216628996e-5,2.107252293342305e-8,0.0011804924552570766,-1.1422849945557147e-5,2.1074313204903283e-8,0.0011805616351961057,-1.149534972563153e-5,2.111684828473406e-8,0.0011806231296561194,-1.164260838042896e-5,2.1203547272920038e-8,0.001180705405349917,-1.185983590457733e-5,2.133138289587363e-8,0.0011808332022572984,-1.2132380829244001e-5,2.1491566451183692e-8,0.0011810247593277404,-1.2437538534793616e-5,2.1670609888946692e-8,0.00118128939658047,-1.2747235945817167e-5,2.1851893747692842e-8,0.0011816258296817952,-1.3031688632184382e-5,2.2017816721285344e-8,0.0011820217409164156,-1.3263766786722557e-5,2.215238102483769e-8,0.0011824549343442512,-1.3423476824073942e-5,2.224386173036045e-8,0.0011828960923008392,-1.3501908143475178e-5,2.228715845248425e-8,0.0011833129578829248,-1.3504032616951642e-5,2.2285447254115404e-8,0.0011836756314048944,-1.3449812928952117e-5,2.2250794275112108e-8,0.001183962592413837,-1.3373153848677134e-5,2.2203458812617827e-8,0.0011841669322909438,-1.3318065327970467e-5,2.2169537514422055e-8,0.0011843016926503368,-1.3331175884827947e-5,2.2176482373441217e-8,0.0011844020642103072,-1.3450260247773386e-5,2.2246332098472546e-8,0.001184521202676278,-1.3690428025695983e-5,2.2387640451217336e-8,0.0011847171293863903,-1.4032994909381187e-5,2.2589027933433944e-8,0.001185032463777717,-1.4424743371322873e-5,2.281883562996951e-8,0.0011854755677246913,-1.4792794984495582e-5,2.3033918419938312e-8,0.0011860147396502052,-1.507088024578483e-5,2.319513060443558e-8,0.0011865905179456926,-1.5223319477673633e-5,2.328150001628114e-8,0.0011871389466646689,-1.5253718038456167e-5,2.3295410581307743e-8,0.0011876123061146714,-1.519648813755946e-5,2.3257586969311357e-8,0.0011879885113928858,-1.5099845661934605e-5,2.3196940123018956e-8,0.0011882695341677578,-1.501035144178206e-5,2.31412842396481e-8,0.0011884742356245803,-1.4963788315746421e-5,2.3111852364620775e-8,0.001188630530564791,-1.4982034546106686e-5,2.3121452402727265e-8,0.0011887692807419578,-1.507353292827563e-5,2.3174817880824452e-8,0.0011889202463939105,-1.5235106883747588e-5,2.3269772227890994e-8,0.0011891093972103773,-1.5453904219857056e-5,2.3398442893928934e-8,0.001189356787492648,-1.5709243646093957e-5,2.3548380493865156e-8,0.001189674562434833,-1.597465760311393e-5,2.3703767108688843e-8,0.0011900650705906138,-1.622059546320253e-5,2.3847010207390837e-8,0.0011905194959919482,-1.641817450904896e-5,2.396096721453941e-8,0.0011910177895063875,-1.6543919681829082e-5,2.403177226492937e-8,0.0011915306556030559,-1.6584788766736868e-5,2.4051839818261955e-8,0.001192023898945927,-1.6542298384545826e-5,2.4022324070467803e-8,0.001192464757553144,-1.643440146715635e-5,2.3954211093486313e-8,0.001192829119799411,-1.629404609753833e-5,2.3867395750016865e-8,0.001193108027212104,-1.6164104458207515e-5,2.3787569044241983e-8,0.0011933118430555575,-1.608921071912973e-5,2.3741272731391792e-8,0.0011934707320330146,-1.6105658509481013e-5,2.374985781205688e-8,0.0011936303976635173,-1.623111932778949e-5,2.3823425330801796e-8,0.0011938425904213918,-1.6456797947603263e-5,2.3956291913805633e-8,0.0011941512693824246,-1.6745405678767475e-5,2.4125926378533872e-8,0.0011945777513011316,-1.703806116613979e-5,2.4297131106293858e-8,0.0011951108176325653,-1.7270552184130284e-5,2.4431706269672658e-8,0.0011957078826386161,-1.7394145331375484e-5,2.4500786304503858e-8,0.001196308651953773,-1.7391670563142902e-5,2.4494397478295562e-8,0.0011968553574094527,-1.7280885870127336e-5,2.442346637634852e-8,0.0011973097438809756,-1.7104486121415902e-5,2.4313830319614202e-8,0.0011976600271846305,-1.6913544964189015e-5,2.4196263777647027e-8,0.0011979178287977973,-1.6752823815132273e-5,2.4097605696463648e-8,0.0011981097707620147,-1.6652578579863055e-5,2.4035827004151324e-8,0.0011982686801686477,-1.6626751066110573e-5,2.401899572758425e-8,0.0011984270612510747,-1.6674980003615707e-5,2.4046572026728495e-8,0.0011986131998672476,-1.6785856209140574e-5,2.411144126081378e-8,0.00119884907936858,-1.6939967517406705e-5,2.4201781684558578e-8,0.0011991490988296598,-1.7112385016964997e-5,2.430255743190104e-8,0.0011995189044720176,-1.727490968716899e-5,2.4396846663078468e-8,0.0011999541434850292,-1.73987053704685e-5,2.446740213138539e-8,0.0012004395264967585,-1.7457927525291007e-5,2.4498820966803372E-08,0.0012009491082435547,-1.743451264755266e-5,2.4480422287605266e-8,0.001201448900782843,-1.7323465817622007e-5,2.4409425154034857e-8,0.0012019025457898729,-1.713703206787251e-5,2.429344400128628e-8,0.0012022796375072394,-1.6905527800039264e-5,2.415095110327444e-8,0.001202564674709609,-1.66730256383639e-5,2.4008615527302114e-8,0.0012027634568679232,-1.6487847620334767e-5,2.3895505198766226e-8,0.001202904030611828,-1.6390163394670685e-5,2.3835574955575874e-8,0.0012030311028923925,-1.6400516224166192e-5,2.384078723594285e-8,0.0012031951747230444,-1.6513004713512284e-5,2.390712060734509e-8,0.001203439368777117,-1.6695385826531313e-5,2.4014786720648956e-8,0.0012037875416534632,-1.6896357132806125e-5,2.413273573212916e-8,0.0012042369997383238,-1.7058417430140396e-5,2.422642990299439e-8,0.001204758270153749,-1.7133153462624448e-5,2.42669920335499e-8,0.0012053027296240449,-1.7094557087145528e-5,2.4239131779032624e-8,0.001205816243419089,-1.694576087819249e-5,2.414512189749825e-8,0.001206254208107606,-1.671652593603102e-5,2.4003224447649546e-8,0.0012065924774887938,-1.6452686017868706e-5,2.3841274764580573e-8,0.0012068306855210508,-1.6202252980745935e-5,2.3688257288772364e-8,0.0012069882451567506,-1.6003642610002783e-5,2.3567193058502826e-8,0.0012070962548821874,-1.5879317737007825e-5,2.3491350212189728e-8,0.0012071891126864752,-1.5834987172204415e-5,2.3463848234982794e-8,0.0012072982435586271,-1.5862395994595704e-5,2.3479429419473134E-08,0.0012074484919681056,-1.5943390285158226e-5,2.3526960795175952e-8,0.0012076565349967772,-1.6053727644420263e-5,2.3591735054261115e-8,0.0012079303224518817,-1.6166109640853678e-5,2.3657270713232458e-8,0.0012082687433021958,-1.625265566416613e-5,2.370677465035961e-8,0.0012086611896754904,-1.6287448494366172e-5,2.372466631141001e-8,0.0012090872917999832,-1.6249836702848495e-5,2.3698580523446967e-8,0.0012095176855486077,-1.6128815528154758e-5,2.3622028928013453e-8,0.0012099170613362122,-1.592798579392285e-5,2.349739986274672e-8,0.0012102505659388227,-1.566936060894537e-5,2.3338237567455915e-8,0.0012104933479661164,-1.5393153749585413e-5,2.316906420901978e-8,0.0012106406191476266,-1.5150881099106516e-5,2.302113572545944e-8,0.001210713427762985,-1.4991745019339821e-5,2.2924136337323242e-8,0.0012107557250189674,-1.4946543294335746e-5,2.2896419733099684e-8,0.0012108221716802248,-1.5016161651831003e-5,2.293810304377412e-8,0.0012109612315525406,-1.5170264902251345e-5,2.3030401775421017e-8,0.0012112005956738774,-1.535671009607627e-5,2.3141465559964834e-8,0.0012115402123723076,-1.551722648703216e-5,2.3235958218962858e-8,0.0012119541203185218,-1.5603217342101987e-5,2.32846361790215e-8,0.0012123989690091418,-1.558704649773601e-5,2.32711262155396e-8,0.0012128258188160085,-1.546672637976945e-5,2.3194667025593706e-8,0.0012131919055231588,-1.526397476343263e-5,2.306882035076686e-8,0.001213469672752588,-1.5016981076206275e-5,2.2916988632259907e-8,0.0012136512717100716,-1.4770193242323362e-5,2.2766165374691033e-8,0.0012137479589100495,-1.4563974629347552e-5,2.2640665341646183e-8,0.0012137852603573004,-1.4426773355970368e-5,2.255743926778347e-8,0.0012137959093788662,-1.4371343522844578e-5,2.2523883713028728e-8,0.0012138128365966673,-1.439499826481813e-5,2.2538091856692798e-8,0.0012138638400819995,-1.4482668698853964e-5,2.2590762305896745e-8,0.0012139685086682349,-1.4611158244269921e-5,2.2667775734842887e-8,0.0012141370773553156,-1.4753294457875256e-5,2.2752669276880412e-8,0.0012143704447298367,-1.4881339284913565e-5,2.2828655628043122e-8,0.0012146606157735983,-1.4969696583580246e-5,2.2880242761076628e-8,0.0012149911979015464,-1.499739616837105e-5,2.2894754107216863e-8,0.001215338074413792,-1.495094088433912e-5,2.286409075695815e-8,0.0012156709220629822,-1.4827860365214653e-5,2.278691472150337e-8,0.0012159566967008494,-1.4640607873998432e-5,2.2671006872583375e-8,0.0012161661678526474,-1.4419214392042551e-5,2.253482998176492e-8,0.0012162834218881762,-1.4209794962010202e-5,2.2406545421342624e-8,0.001216315642396274,-1.4065845309811994e-5,2.2318651755283653e-8,0.0012162975273846636,-1.4032046896515793e-5,2.229810801795348e-8,0.001216284646636957,-1.412603160851158e-5,2.2355282871068613e-8,0.0012163354726003424,-1.4328040488737538e-5,2.2477767363016963e-8,0.0012164899159747096,-1.4585949126754397e-5,2.263355123417095e-8,0.001216755574130199,-1.4833892797710722e-5,2.278243853374842e-8,0.0012171078245810246,-1.5014490026863692e-5,2.2889603737556964e-8,0.001217501208749591,-1.5094377647005056e-5,2.2935034657986378e-8,0.0012178847630020077,-1.5068934395509631e-5,2.2916347417685273e-8,0.0012182150285436164,-1.4958137548021152e-5,2.2846155074825506e-8,0.0012184640069405344,-1.4797783644600629e-5,2.2746590779909395e-8,0.0012186220505673322,-1.4629683731770791e-5,2.2643235920746163e-8,0.001218696822913379,-1.449297270290909e-5,2.2559801522444672e-8,0.0012187095811834294,-1.4417539138099393e-5,2.2514186857630122e-8,0.0012186898663968694,-1.4420061297596525e-5,2.2516180023635898e-8,0.0012186696633395672,-1.4502833252156467e-5,2.2566860603567102e-8,0.0012186780735641304,-1.4655108434294776e-5,2.2659490899290508e-8,0.0012187372918174148,-1.4856253456001961e-5,2.2781443114298367e-8,0.001218860273629298,-1.5079824490775369e-5,2.2916635639418696e-8,0.0012190500435946263,-1.5297700051893458e-5,2.3047988343221898e-8,0.001219300200263371,-1.548365519236493e-5,2.3159560794279936e-8,0.0012195960618367548,-1.5616237415079354e-5,2.3238309613797606e-8,0.0012199161265676276,-1.568118550987916e-5,2.3275603178996437e-8,0.0012202338545077081,-1.567373100870673e-5,2.326866879195279e-8,0.0012205201561264112,-1.560100091808706e-5,2.3222067337371707e-8,0.001220747382989795,-1.5484226141098953e-5,2.3148995007320677e-8,0.0012208955835540899,-1.535941411892994e-5,2.3071605072069785e-8,0.0012209607427107806,-1.5274050539459638e-5,2.3018902382756045e-8,0.001220962475274646,-1.5277280997782236e-5,2.3020705792687032e-8,0.0012209458731045407,-1.5403436960660497e-5,2.309762894932575e-8,0.0012209717976255354,-1.565448470536381e-5,2.3250476497938733e-8,0.0012210955463632595,-1.5992317511104423e-5,2.345566341649283e-8,0.0012213435678971353,-1.634934524496698e-5,2.367175263118225e-8,0.0012217022640911984,-1.6653999885394203e-5,2.3855040758167472e-8,0.0012221254162641652,-1.685673242853055e-5,2.397543609100118e-8,0.0012225539172616843,-1.694295513018085e-5,2.4024369111537456e-8,0.0012229355612905532,-1.6930207344080828e-5,2.4013018459709848e-8,0.0012232368258948774,-1.6856088422204816e-5,2.3964815471614588e-8,0.001223445818883135,-1.6764870074623695e-5,2.3907108196114857e-8,0.0012235694616662836,-1.66972195773145e-5,2.3864781052871904e-8,0.0012236282176459417,-1.668400111843338e-5,2.3856473140188308e-8,0.0012236504409797394,-1.6743379709783217e-5,2.3892909894168513e-8,0.0012236671763620997,-1.6880175503808295e-5,2.3976645895061022e-8,0.001223707624433692,-1.708683221483701e-5,2.4102766441136323e-8,0.0012237954317209335,-1.734565340062886e-5,2.426029685357651e-8,0.0012239459921608604,-1.7631973134540477e-5,2.4434117926847972e-8,0.0012241649213519893,-1.791791608308859e-5,2.4607207076905056e-8,0.0012244478183697678,-1.817632574317451e-5,2.476299133590999e-8,0.0012247812244358886,-1.838435464330882e-5,2.4887533086232756e-8,0.0012251444556581857,-1.8526399189167512e-5,2.4971356499031972e-8,0.001225512030680893,-1.8596356874691012e-5,2.5010875116620252e-8,0.0012258566090267735,-1.8599249204608337e-5,2.500940666446154e-8,0.0012261525206215848,-1.8552184327634754e-5,2.4977727871947743e-8,0.0012263801754533244,-1.8484389126531722e-5,2.4934001023126065e-8,0.001226531589440995,-1.8435353897332787e-5,2.4902521731442044e-8,0.0012266163824655456,-1.844942436845583e-5,2.4910327037782435e-8,0.0012266658987470957,-1.8565429063659797e-5,2.498085133256966e-8,0.0012267312754294553,-1.880207278591228e-5,2.5125090674904964e-8,0.0012268713258371598,-1.914430998630717e-5,2.533341535608457e-8,0.001227131022819862,-1.954022969406463e-5,2.557377342250434e-8,0.0012275202373195173,-1.991570456003484e-5,2.5800673545950185e-8,0.0012280066605481112,-2.0202550073462475e-5,2.5972399157529153e-8,0.0012285289260753722,-2.036442274620531e-5,2.6066887113834473e-8,0.0012290215337736447,-2.0405843598096857e-5,2.608730247250189e-8,0.0012294364792536673,-2.0362831684957532e-5,2.605626237353159e-8,0.0012297525480403702,-2.0285001528169813e-5,2.600470001447718e-8,0.001229973287643303,-2.0219675206655426e-5,2.596192790923771e-8,0.00123011945294299,-2.0202577079814657e-5,2.5949829286862887e-8,0.0012302208090147813,-2.0254570927893388e-5,2.598089556577197e-8,0.001230309575850642,-2.0382079862008366e-5,2.6058620701201978e-8,0.0012304158345859968,-2.0579100696291248e-5,2.6178889594627654e-8,0.0012305643517482184,-2.0829746668818747e-5,2.6331638580619262e-8,0.0012307723235892732,-2.1111062515209374e-5,2.6502607204116547e-8,0.0012310478548748765,-2.1396114777007075e-5,2.6675202086625746e-8,0.0012313891899758615,-2.1657391046044656e-5,2.6832534064826254e-8,0.0012317848985939483,-2.187044513583133e-5,2.6959629716658373e-8,0.001232215249623264,-2.2017430944470345e-5,2.7045614719736176e-8,0.0012326547447966258,-2.209001773221379e-5,2.7085542859440893e-8,0.0012330755592392312,-2.2091326924775106e-5,2.70816135899996e-8,0.0012334516279752959,-2.203663011034868e-5,2.7043580150642033e-8,0.001233763101802164,-2.1952544155669515e-5,2.6988170698065287e-8,0.001234000846053606,-2.1874499915341305e-5,2.6937404354593894e-8,0.0012341705639102628,-2.184212653370876e-5,2.691563704449534e-8,0.0012342956223987628,-2.1891979650956894e-5,2.6945050302677308e-8,0.001234416688585595,-2.2047557895417835e-5,2.7039585964648845e-8,0.0012345855888722889,-2.23083766412273e-5,2.719839449139654e-8,0.0012348517249173988,-2.2642708147870215e-5,2.7401545144008608e-8,0.0012352433616983397,-2.2990593392258627e-5,2.7611962377998624e-8,0.0012357521897338616,-2.328103233247334e-5,2.778596961972363e-8,0.0012363319390749912,-2.3458241076732956e-5,2.7889391237730747e-8,0.001236914832205126,-2.3503051358274284e-5,2.7910738893106944e-8,0.0012374372602634584,-2.34370143285074e-5,2.7863779646029196e-8,0.0012378600978094599,-2.3308844078715344e-5,2.7779123129400366e-8,0.001238175025995959,-2.3173834169043024e-5,2.7691345091404345e-8,0.0012383987375117022,-2.3077516654817154e-5,2.7628715793488518e-8,0.0012385621901050622,-2.304804267920002e-5,2.7608434146434345e-8,0.001238700730871274,-2.3095701387628564e-5,2.7636418998067664e-8,0.0012388473917175444,-2.321606101218933e-5,2.7709418024290113e-8,0.0012390291726658905,-2.339397590953754e-5,2.781763697063455e-8,0.001239265187271221,-2.3607198404592336e-5,2.7947049692492793e-8,0.0012395656932513142,-2.3829477290720274e-5,2.808131142382676e-8,0.001239931567574002,-2.4033454791804963e-5,2.8203502070202986e-8,0.001240354197034772,-2.419368952870141e-5,2.8297948187087624e-8,0.0012408160639877112,-2.4289979933212816e-5,2.835226322126063e-8,0.0012412924936616241,-2.431076507997636e-5,2.835947104322042e-8,0.001241754847581157,-2.4255949556786933e-5,2.8319783468064274e-8,0.0012421750027906508,-2.413837942889537e-5,2.8241514856497743e-8,0.0012425305735050856,-2.398330917104594e-5,2.8140695039591662e-8,0.001242810041407821,-2.3825431793646963e-5,2.803911624686781e-8,0.0012430167548026835,-2.3703494765039817e-5,2.796086702784852e-8,0.0012431707595330977,-2.3653019187846447e-5,2.792773776976358e-8,0.0012433075282853305,-2.3697965910599013e-5,2.7954078812129726e-8,0.0012434727173970845,-2.3842679769997022e-5,2.8041949740427052e-8,0.001243712463212426,-2.4066405760676784e-5,2.8177927469785303e-8,0.0012440601035040232,-2.432362427984792e-5,2.8333484399655164e-8,0.0012445228361571915,-2.4553159928907133e-5,2.84706844897476e-8,0.001245074558848186,-2.469598742631698e-5,2.8553156726817562e-8,0.0012456608862963842,-2.4715959349908565e-5,2.8558858281151512e-8,0.001246216708050109,-2.4613291013679496e-5,2.8488399775580813e-8,0.001246688489499405,-2.4423038202625592e-5,2.8364074640010765e-8,0.0012470500759516796,-2.4199802086790886e-5,2.8220269933140577e-8,0.0012473056186578205,-2.3997923243581362e-5,2.8091007067191165e-8,0.0012474816718979766,-2.3856832628854112e-5,2.8000725693752732e-8,0.0012476152297567857,-2.3795467178827526e-5,2.796083255759579e-8,0.0012477434727424471,-2.3813936544781482e-5,2.797087896365848e-8,0.0012478974825907967,-2.3898538079999737e-5,2.802185450423327e-8,0.0012480994715242364,-2.4027063105389873e-5,2.8099607177080368e-8,0.0012483620860405254,-2.4173063448967265e-5,2.8187527217003586e-8,0.0012486885425988454,-2.4309038643380227e-5,2.8268487756534477e-8,0.0012490729604937483,-2.4409048929309893e-5,2.832640747738927e-8,0.0012495008229754566,-2.4451320673572244e-5,2.8347832218140762e-8,0.0012499499393055541,-2.442119484453209e-5,2.8323772418069707e-8,0.0012503925365264328,-2.4314275664468087e-5,2.8251695604431464e-8,0.0012507990005257714,-2.4139030867608762e-5,2.8137171704645568e-8,0.001251143262636996,-2.391768914256767e-5,2.7994415164953935e-8,0.0012514090363835088,-2.368426701735876e-5,2.7844976389814205e-8,0.0012515953110546903,-2.3479107716070564e-5,2.771421375274228e-8,0.0012517191350728285,-2.3340474530020665e-5,2.7625933544735366e-8,0.0012518141482856812,-2.3295030625602135e-5,2.7596407518891168e-8,0.00125192444142756,-2.334975383124914e-5,2.7629401271552236e-8,0.0012520946514939732,-2.348776438369355e-5,2.7713746828686006e-8,0.0012523583631477433,-2.3669877510084097e-5,2.7824516476769492e-8,0.0012527277286170939,-2.38425421336231e-5,2.7928118057615044e-8,0.0012531876409788102,-2.3951178423680048e-5,2.7990642199443437e-8,0.0012536974445180235,-2.395580939174183e-5,2.7987543221912417e-8,0.0012542012794675764,-2.3843814405731823e-5,2.7911488512020674e-8,0.0012546444912580575,-2.3634230998913443e-5,2.7774939914552914e-8,0.0012549898708866338,-2.337098949679818e-5,2.760582318235473e-8,0.0012552269467497428,-2.31078977299701e-5,2.7438033142794907e-8,0.0012553712247767674,-2.2892283909759187e-5,2.730112602560997e-8,0.001255455539610628,-2.2753872111695107e-5,2.7213370434487382e-8,0.0012555187275849952,-2.2701515499694785e-5,2.7179817449245153e-8,0.0012555962675502516,-2.2726235663317327e-5,2.719436714414756e-8,0.0012557148843836085,-2.280713457832666e-5,2.724360162183075e-8,0.001255890687072248,-2.2917285638186973e-5,2.7310518757386415e-8,0.001256129398595488,-2.3028282424195017e-5,2.7377340966423323e-8,0.0012564273842037858,-2.3113398094334926e-5,2.742741470506988e-8,0.001256772748129926,-2.3149894992070267e-5,2.7446594516070987e-8,0.0012571463545275083,-2.3121157899020574e-5,2.7424565261140528e-8,0.0012575231640768645,-2.3019131476612913e-5,2.7356401669610725e-8,0.001257874612111306,-2.284700440575688e-5,2.7244296214391676e-8,0.0012581727000068063,-2.2621361371800596e-5,2.7098925268443296e-8,0.0012583959412701018,-2.2372382207858894e-5,2.6939533510837228e-8,0.0012585362273141267,-2.2140433227805133e-5,2.6791698499354605e-8,0.0012586042852673735,-2.196814660205169e-5,2.6682241581275458e-8,0.0012586306549829782,-2.1889126806689826e-5,2.6632055608261722e-8,0.0012586601311620252,-2.1916855981065547e-5,2.664914718129419e-8,0.0012587403517282045,-2.2038399148444123e-5,2.672480002912566e-8,0.0012589081308858302,-2.2216070066749486e-5,2.6834805998698666e-8,0.001259178401966701,-2.2397001174915816e-5,2.6945651229235044e-8,0.0012595395662738137,-2.2527436600423014e-5,2.7023591961309044e-8,0.0012599565073977735,-2.2567114697326255e-5,2.704368259177285e-8,0.0012603800277351954,-2.249955563699239e-5,2.6996141762203254e-8,0.0012607598300570521,-2.2335587057110256e-5,2.6888416016816608e-8,0.0012610573544834757,-2.2109330675960614e-5,2.674249136516303e-8,0.0012612547690560867,-2.186800615213288e-5,2.6588343449294578e-8,0.0012613575758832708,-2.1658922356915117e-5,2.6455686208838244e-8,0.001261390591051946,-2.151793017938794e-5,2.6366737636690552e-8,0.00126138947197204,-2.146269522919313e-5,2.6332111564846554e-8,0.001261391218294045,-2.1491868003257122e-5,2.635046486548411e-8,0.0012614266428808319,-2.15888902989852e-5,2.641103229929555e-8,0.0012615162216082754,-2.1727952954471072e-5,2.6497431575663864e-8,0.0012616690635331466,-2.187983048108349e-5,2.6591299115901463e-8,0.0012618838439774989,-2.2016383972793845e-5,2.6675035116793972e-8,0.0012621505235054361,-2.2113585277586392e-5,2.6733624171416905e-8,0.0012624521180612978,-2.2153524616584108e-5,2.6755867859438524e-8,0.00126276632102878,-2.2126043067001626e-5,2.6735440962205498e-8,0.0012630672801498218,-2.2030481309721585e-5,2.6672051476437688e-8,0.0012633282001385453,-2.1877576094169603e-5,2.6572675677080794e-8,0.0012635254927225803,-2.1690821374928485e-5,2.6452399559931268e-8,0.0012636447200479173,-2.150581193844573e-5,2.6333924961939377e-8,0.0012636873694712005,-2.1365630790647973e-5,2.62445471842398e-8,0.001263675689203714,-2.1311092535360135e-5,2.6209908895091034e-8,0.001263651583389443,-2.1367352542053175e-5,2.624553285893486e-8,0.0012636669236140193,-2.1532112858698217e-5,2.6349454998586358e-8,0.0012637672086514252,-2.1772261625864342e-5,2.6500247615930587e-8,0.0012639754671761418,-2.2032532614826404e-5,2.666264158225693e-8,0.001264284192241647,-2.2253087100624153e-5,2.679874434506354e-8,0.0012646586664950854,-2.238799657886381e-5,2.687976398338216e-8,0.001265048952007261,-2.2417146448438736e-5,2.68935001124463e-8,0.0012654046375396352,-2.2348637976309602e-5,2.6845743928639548e-8,0.001265687166465729,-2.2213199967963506e-5,2.6756558234120423e-8,0.0012658770847539854,-2.205411237295862e-5,2.6653709859809845e-8,0.0012659757694239995,-2.1916095275190147e-5,2.6565519875628988e-8,0.0012660024992930466,-2.1835733466883678e-5,2.6514812194613012e-8,0.0012659883363219941,-2.183504682483079e-5,2.6514975770749016e-8,0.001265968564043513,-2.1918984668542527e-5,2.656857289282304e-8,0.0012659755016867593,-2.2076758125450218e-5,2.666835322071545e-8,0.0012660331867845541,-2.2286013655878877e-5,2.6799978389807436e-8,0.0012661546447266811,-2.2518299270481508e-5,2.6945459630868268e-8,0.0012663416011667139,-2.2744366594706175e-5,2.708642168120064e-8,0.0012665859156780787,-2.2938374403736194e-5,2.720666230998871e-8,0.0012668718340026004,-2.308069895407578e-5,2.729387607334129e-8,0.0012671783608418628,-2.315961813842999e-5,2.7340731279403066e-8,0.0012674815022603028,-2.3172399530941718e-5,2.734561490457562e-8,0.0012677565540440863,-2.3126206424985553e-5,2.7313258391016998e-8,0.0012679809078356128,-2.3038880813856224e-5,2.7255232108115096e-8,0.0012681379667225815,-2.293909764723427e-5,2.718996925380211e-8,0.001268222410981478,-2.2864607647463806e-5,2.714153350665855e-8,0.0012682458991817589,-2.285674137919671e-5,2.7136033101520892e-8,0.0012682404442877298,-2.294997743206441e-5,2.7194986348181077e-8,0.0012682552261359058,-2.3158135615329883e-5,2.732665258099185e-8,0.0012683438357439264,-2.3463184370203866e-5,2.751908579692521e-8,0.0012685445912806244,-2.381508922712379e-5,2.774017528295886e-8,0.0012688635218484556,-2.4146813037913072e-5,2.794723304902699e-8,0.0012692705636366676,-2.439852622614259e-5,2.8102383947438925e-8,0.0012697114811386142,-2.453808374801821e-5,2.818558432617654e-8,0.0012701278926337827,-2.456798692026666e-5,2.8199025785485304E-08,0.0012704747097447653,-2.451874191640579e-5,2.8162796580241977e-8,0.0012707290511519327,-2.4435369716645258e-5,2.8106093111468987e-8,0.00127089082105009,-2.4363968771578763e-5,2.8058468845464867e-8,0.0012709780445711418,-2.4341966719446985e-5,2.804354865594735e-8,0.0012710200656264432,-2.439279816146933e-5,2.8075722588673664e-8,0.001271050641705294,-2.4524258495752033e-5,2.8159296031538897e-8,0.0012711018882705825,-2.4729497552478398e-5,2.8289339641440367e-8,0.0012711994916664129,-2.4989923105568873e-5,2.8453680377103202e-8,0.0012713595362361608,-2.5279401250563086e-5,2.863560229913506e-8,0.0012715871496310693,-2.5568988582094783e-5,2.8816787886148046e-8,0.0012718768697763392,-2.5831442116825033e-5,2.898007870930307e-8,0.0012722144010838205,-2.6044933071783422e-5,2.911175618979125e-8,0.0012725792455093397,-2.619559555621507e-5,2.9203144635270495e-8,0.001272947626786604,-2.627888618297095e-5,2.9251514544716158e-8,0.0012732953571026233,-2.630006763486035e-5,2.9260441855358742e-8,0.0012736006475878774,-2.6274127894061375e-5,2.9239767557704245e-8,0.0012738470763975945,-2.6225193166156763e-5,2.9205161411702542e-8,0.0012740270157430664,-2.6185124088254545e-5,2.9177104177386633e-8,0.0012741455908807501,-2.6190414429344983e-5,2.9178785414269988e-8,0.001274224316427514,-2.62760887589678e-5,2.9232165679184445e-8,0.0012743020615554482,-2.646586880061536e-5,2.935178899471236e-8,0.001274429803943883,-2.6760187731966526e-5,2.9537333686976303e-8,0.0012746566213436674,-2.712756647179489e-5,2.976831346906732e-8,0.0012750096385508432,-2.7507546288788524e-5,3.0006033761210905e-8,0.0012754781610912526,-2.7829406560484464e-5,3.020548189174035e-8,0.001276013858158292,-2.8039650417442057e-5,3.033279425528792e-8,0.0012765492750488386,-2.812244159011328e-5,3.0378310890776146e-8,0.001277023642649741,-2.810137217333263e-5,3.035772861075833e-8,0.0012774012466509133,-2.802473521408781e-5,3.0302589247883327e-8,0.0012776758745853178,-2.7945890596938154e-5,3.024749497268067e-8,0.0012778647758220772,-2.79085430819153e-5,3.022048134829472e-8,0.001277998800793535,-2.793980262467159e-5,3.0238533240266736e-8,0.0012781132813501053,-2.804931557698271e-5,3.0307171318946226e-8,0.0012782413834105137,-2.8231718287190717e-5,3.042226138414893e-8,0.0012784098972853835,-2.8470294804898002e-5,3.0572571320992245e-8,0.0012786367518833218,-2.8740849073584766e-5,3.074235593251752e-8,0.0012789297433653374,-2.9015619036969142e-5,3.091384476109464e-8,0.0012792863683563302,-2.9267159831319898e-5,3.10696300382083e-8,0.0012796947422641365,-2.9471974501639326e-5,3.119488465856777e-8,0.0012801355484260517,-2.9613619515355336e-5,3.127929159311357e-8,0.0012805848824221722,-2.9684936207415627e-5,3.131847898599492e-8,0.001281017638662968,-2.968910490383866e-5,3.131473845451968e-8,0.0012814109964758992,-2.963950002011583e-5,3.1276957457645865e-8,0.0012817477332364437,-2.9558493616968298e-5,3.1219814796159154e-8,0.0012820192456920046,-2.9475284638605605e-5,3.116227933862801e-8,0.001282228197848576,-2.9422701983244574e-5,3.1125420021043346e-8,0.001282390606699797,-2.943268070189973e-5,3.112941115271035e-8,0.0012825366317504978,-2.9529907636028162e-5,3.118948519163852e-8,0.0012827084194776662,-2.9723676059624966e-5,3.131088059813362e-8,0.0012829528288665348,-2.9999700516418604e-5,3.1483844908667825e-8,0.0012833079130263225,-3.0316201547194518e-5,3.168132285335997e-8,0.0012837859765342673,-3.061020073146328e-5,3.1863018658290956e-8,0.0012843618450062628,-3.081684226297564e-5,3.198765635324121e-8,0.0012849765874220782,-3.089521995994752e-5,3.20294184946202e-8,0.0012855586318208988,-3.084588285428632e-5,3.1989175468429604e-8,0.0012860510837547415,-3.0708540178211655e-5,3.189304549666774e-8,0.001286429391721135,-3.054259065273131e-5,3.1779790208841204e-8,0.0012867022080911398,-3.0404062537684042e-5,3.1685762437681995e-8,0.001286900377279203,-3.0330777585708804e-5,3.163518182633183e-8,0.001287063300987379,-3.0338387143386424e-5,3.163759774986754e-8,0.001287228565364857,-3.042354922701865e-5,3.1690131287687944e-8,0.0012874261434639106,-3.056970632894269e-5,3.1781451277475414e-8,0.0012876761011276928,-3.075264889043229e-5,3.189554315979008e-8,0.001287988197340863,-3.094489886686548e-5,3.201458498978887e-8,0.0012883622633117567,-3.111913753711612e-5,3.2121090216733314e-8,0.0012887890246263095,-3.125116421789353e-5,3.219969606469643e-8,0.0012892514436496775,-3.1322610080414284e-5,3.223881626240157e-8,0.0012897267572810904,-3.132337450102907e-5,3.223217751474067e-8,0.0012901893827250341,-3.125348366035541e-5,3.2180042784654345e-8,0.0012906146194111945,-3.1123848609875844e-5,3.208974051574626e-8,0.0012909826969805158,-3.0955505293186115e-5,3.197517438868874e-8,0.0012912825565626971,-3.0777215881050795e-5,3.185520292845642e-8,0.0012915147687625943,-3.0621540642874033e-5,3.175097395022615e-8,0.001291693035842951,-3.0519716537336427E-05,3.168249183610786e-8,0.0012918438362249742,-3.0495841413462402e-5,3.1664819795655e-8,0.0012920037928547566,-3.056087693364674e-5,3.1704304670211076e-8,0.0012922141715474165,-3.0707282053063105e-5,3.17953364867465e-8,0.001292512034520009,-3.090599709338316e-5,3.1918661500173786e-8,0.0012929187002381516,-3.110850773894603e-5,3.2042880122178096e-8,0.0012934285950733568,-3.1256693423193994e-5,3.213078673276235e-8,0.0012940044453168913,-3.1300498297250774e-5,3.215061328521406e-8,0.001294584877820033,-3.12176444133966e-5,3.20885883560331e-8,0.001295104589766634,-3.102462475607171e-5,3.195596529494129e-8,0.0012955179603695564,-3.077085167751126e-5,3.178521309227125e-8,0.0012958131840410975,-3.0518540566581096e-5,3.1616916955709714e-8,0.0012960105999187787,-3.032026641965267e-5,3.148511085415194e-8,0.0012961495978159076,-3.0205433323736027e-5,3.140845109678617e-8,0.0012962734470908504,-3.0178565979806494e-5,3.1389212768773746e-8,0.0012964186126221632,-3.022527856628844e-5,3.141738252834504e-8,0.0012966099467786687,-3.032037295760454e-5,3.1476126820308665e-8,0.0012968600751613467,-3.043465498738407e-5,3.154631955101938e-8,0.0012971707339509185,-3.0539529403013107e-5,3.160949484610287e-8,0.0012975345391934867,-3.0609886172662965e-5,3.164960498486348e-8,0.0012979366525891216,-3.062613758462698e-5,3.1654217987039235e-8,0.0012983564533401342,-3.057599296156603e-5,3.1615600298714555e-8,0.0012987695840761062,-3.0456167864014533e-5,3.1531828857941956e-8,0.0012991507884455799,-3.027379091331488e-5,3.140775068646107e-8,0.0012994777236449333,-3.004683999448522e-5,3.125530194558217e-8,0.0012997353921117309,-2.9802813505353085e-5,3.1092622133109445e-8,0.0012999202861004046,-2.9575139003558806e-5,3.09416264273142e-8,0.0013000430270444395,-2.93974130243819e-5,3.0824133092212875e-8,0.001300128331498118,-2.9296350396882437e-5,3.075718715872455e-8,0.0013002116679433546,-2.928500804947685e-5,3.074866956412388e-8,0.0013003328193243616,-2.935801434543197e-5,3.0794343521651624e-8,0.001300527308605543,-2.9490231267340253e-5,3.0877225135393917e-8,0.0013008171756119307,-2.9639869058835446e-5,3.0969838317194383e-8,0.0013012031591031939,-2.9756515314625574e-5,3.10395465251122e-8,0.0013016609455879465,-2.9793446563434323e-5,3.105650235031395e-8,0.0013021442562541905,-2.972172931898944e-5,3.100263591424007e-8,0.0013025961177511457,-2.9541337275106654e-5,3.087867894617946e-8,0.0013029660006317406,-2.9283509335878423e-5,3.0705543544897195e-8,0.0013032261586196996,-2.9001308736517474e-5,3.051808034793436e-8,0.0013033793833759004,-2.875164122635431e-5,3.035331118242153e-8,0.0013034547749617115,-2.8577237008618275e-5,3.023868954419752e-8,0.0013034950005774671,-2.8496554952853205e-5,3.018561791167246e-8,0.0013035422626375217,-2.8503927091162528e-5,3.018972942257647e-8,0.0013036286487182313,-2.8576659673191224e-5,3.023572044825167e-8,0.0013037723920898197,-2.8683998777921855e-5,3.0303320007544866e-8,0.0013039784710675347,-2.8794434907111588e-5,3.037204952208462e-8,0.0013042411712836108,-2.8880283437659195e-5,3.042410362765577e-8,0.0013045469059940415,-2.8920083977942182e-5,3.044577741719525e-8,0.0013048765892900785,-2.8899827777303695e-5,3.042817208710491e-8,0.0013052076096280716,-2.8813836177220682e-5,3.0367751697282956e-8,0.0013055158699504063,-2.8665686201342626e-5,3.026699500311816e-8,0.0013057784723598796,-2.8469027833693583e-5,3.0134989400730604e-8,0.0013059774012722158,-2.824758312302742e-5,2.998744624708401e-8,0.0013061039917527009,-2.803329661145913e-5,2.984543622349855e-8,0.0013061631500154798,-2.786174715368294e-5,2.973227959525612e-8,0.0013061755169066931,-2.7764752904717206e-5,2.966860348764004e-8,0.0013061756394885842,-2.7761595595907e-5,2.9666567318660748e-8,0.0013062052931786697,-2.785175086959786e-5,2.972518749832201e-8,0.001306303142538855,-2.801230059159129e-5,2.9828826603746476e-8,0.0013064938194895942,-2.820182285028999e-5,2.9949955265754234e-8,0.001306780086361943,-2.8370168467178228e-5,3.005571106771042e-8,0.0013071407644421912,-2.8471378373462444e-5,3.0116392578181026e-8,0.0013075352201250116,-2.8475996159682643e-5,3.011342304590286e-8,0.001307913334487316,-2.8379292346448963e-5,3.0044539506056616e-8,0.0013082284553436203,-2.820295608258615e-5,2.992467194139616e-8,0.001308449795111905,-2.798934380814309e-5,2.9781980996995586e-8,0.0013085703641908598,-2.7789555942438875e-5,2.9649940584985727e-8,0.0013086075992558702,-2.7649081856834136e-5,2.9557946510256037e-8,0.0013085965713823258,-2.7596068441511594e-5,2.9523765739778143e-8,0.001308578775603071,-2.763613069992761e-5,2.9550353019012925e-8,0.0013085910545795772,-2.7754483402330733e-5,2.9627464816654964e-8,0.0013086582864577261,-2.7923038311927625e-5,2.973644409629548e-8,0.00130879097813508,-2.810881146934206e-5,2.985573633256056e-8,0.0013089866559391336,-2.8280794299983097e-5,2.9965288371083946e-8,0.0013092330853364449,-2.841421177594859e-5,3.004918959647898e-8,0.0013095117218239086,-2.849249915857971e-5,3.00968495932514e-8,0.0013098006051115334,-2.8507901829533638e-5,3.010335322333937e-8,0.0013100766331532816,-2.8461574612671678e-5,3.006956699423517e-8,0.00131031764281404,-2.8363692896845595e-5,3.0002285569679514e-8,0.0013105049028917662,-2.823351948220192e-5,2.991431821194102e-8,0.0013106264457913824,-2.809877946612421e-5,2.9824048280105456e-8,0.001310681133427025,-2.7993271777071674e-5,2.9753766780009736e-8,0.0013106824426351005,-2.795161269268233e-5,2.972610709291234e-8,0.0013106598420135267,-2.8000824017845768e-5,2.975846481850516e-8,0.001310655166280242,-2.8150479328616627e-5,2.9856575254154354e-8,0.0013107127876955784,-2.8385509043680695e-5,3.000993471753322e-8,0.0013108657814568222,-2.866643869990418e-5,3.0192141079751784e-8,0.0013111236756196114,-2.8939129152693387e-5,3.036744088323199e-8,0.0013114677764056418,-2.915104009753794e-5,3.0501486920959236e-8,0.001311856492484787,-2.9267251923133067e-5,3.0571854184595145e-8,0.001312238049311916,-2.9279859822208612e-5,3.057411525864111e-8,0.0013125651169096678,-2.9208198159179714e-5,3.0521802359526976e-8,0.0013128064021552001,-2.909142250826646e-5,3.044129361786551e-8,0.0013129525886068233,-2.897698933927629e-5,3.0364030849243177e-8,0.001313016206816826,-2.890865807546817e-5,3.031854722956662e-8,0.001313026461668143,-2.8916887043806896e-5,3.0324238748257375e-8,0.0013130209243820167,-2.901349026915853e-5,3.0388075426164644e-8,0.0013130364508609068,-2.91912467162573e-5,3.050460897562148e-8,0.0013131016267059507,-2.9427863667728573e-5,3.0658773423636455e-8,0.00131323234339437,-2.9692576163541312e-5,3.0830280966021656e-8,0.0013134309224520154,-2.9953194080713292e-5,3.099817761610996e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json new file mode 100644 index 00000000..e8e2db51 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":14000,"numberOfSamples":1000,"samples":[0.0013136880538731968,-3.0181825300251084e-5,3.1144455018197914e-8,0.0013139862307697747,-3.0358458604268804e-5,3.125626468859012e-8,0.0013143034381558063,-3.0472498704118995e-5,3.1326857923882795e-8,0.001314616342296335,-3.0522889122674205e-5,3.135568412117831e-8,0.0013149028238326915,-3.051757614543907e-5,3.134810730752583e-8,0.0013151441476950397,-3.0472812693602606e-5,3.1315005489895234e-8,0.001315327245423572,-3.041233669157899e-5,3.127221966442859e-8,0.0013154474985632677,-3.0365940022199845e-5,3.1239522569258994e-8,0.0013155119761371786,-3.0366482616605727e-5,3.123852579233063e-8,0.0013155421786821661,-3.044428590458291e-5,3.1288903751562086e-8,0.0013155741637083083,-3.061859253490029e-5,3.140279579367739e-8,0.0013156532826805987,-3.08878545724263e-5,3.15785553459714e-8,0.0013158221093964287,-3.122350814634265e-5,3.179684474210843e-8,0.0013161043666861684,-3.1573152017452694e-5,3.202287220092828e-8,0.001316492562279381,-3.187552478285449e-5,3.221630534507893e-8,0.0013169475071545026,-3.2081986318948946e-5,3.234541530079332e-8,0.0013174114482328236,-3.217362581767834e-5,3.2398333198900105e-8,0.0013178279759007432,-3.216549962188907e-5,3.238578137269618e-8,0.0013181587209702065,-3.209786877058771e-5,3.233512178519737e-8,0.0013183908584672483,-3.202101456924127e-5,3.2280078366949867e-8,0.0013185355723118594,-3.198087692229784e-5,3.22510415181099e-8,0.0013186210256550192,-3.200948903377424e-5,3.226871171627078e-8,0.001318683516304464,-3.212087078817048e-5,3.2341550899422565e-8,0.0013187592325329092,-3.2311333689063695e-5,3.246626921888799e-8,0.0013188777975085585,-3.256278527721231e-5,3.263027897225073e-8,0.0013190580943835157,-3.28478210560236e-5,3.281520552707126e-8,0.001319306537685271,-3.3135522599053245e-5,3.30007052286256e-8,0.0013196176305973269,-3.339691167788335e-5,3.3167938459672674e-8,0.0013199762931723731,-3.360923943949643e-5,3.330224076991175e-8,0.001320361240591444,-3.3758679883073964e-5,3.339478932604852e-8,0.0013207486407314094,-3.3841371491741154e-5,3.3443266039948134e-8,0.0013211154170834028,-3.3863122696377714e-5,3.345170814905867e-8,0.0013214419486963593,-3.3838325595684376e-5,3.342984862739796e-8,0.0013217143059939618,-3.3788485178276064e-5,3.3392152957732015e-8,0.0013219262892678202,-3.374042925569602e-5,3.3356565064026065e-8,0.0013220814837101608,-3.37239298755937e-5,3.334280561542386e-8,0.0013221952658236343,-3.3768093745891034e-5,3.336987271475884e-8,0.0013222959339579021,-3.389572813238187e-5,3.345230413051685e-8,0.0013224231012386285,-3.411559264521433e-5,3.359518483099222e-8,0.001322620987373266,-3.44143314836092e-5,3.378904291433436e-8,0.0013229254974994617,-3.47525377055976e-5,3.4007455453146385e-8,0.0013233481259613213,-3.507078420316715e-5,3.421110391244622e-8,0.0013238651644779758,-3.5307915680853196e-5,3.435980179531848e-8,0.0013244214578083684,-3.5424988893193025e-5,3.4428250117923195e-8,0.0013249498096669955,-3.5421322382391885e-5,3.441665080515855e-8,0.0013253957656545127,-3.533284530570563e-5,3.4349593606930406e-8,0.0013257341054285624,-3.521518782185486e-5,3.4264687362774436e-8,0.0013259708733802966,-3.5122901891955616e-5,3.4198504380576074e-8,0.0013261345823387194,-3.509485421874728e-5,3.4176685340857736e-8,0.0013262639590043055,-3.514877227589115e-5,3.421034115508173e-8,0.0013263974759466818,-3.5282692478288204e-5,3.42972534612874e-8,0.0013265664975942637,-3.547980948220061e-5,3.4425417060696266e-8,0.00132679174008558,-3.5714173837029465e-5,3.457707337361339e-8,0.0013270820868991236,-3.595606011854193e-5,3.473236215303623e-8,0.0013274350277215283,-3.617667618018595e-5,3.487237396855363e-8,0.0013278383205704806,-3.6352045676457e-5,3.4981566469251094e-8,0.0013282725585155749,-3.6465885830951754e-5,3.504952018493835e-8,0.0013287143399232126,-3.651136884131447e-5,3.507202780552796e-8,0.001329139723468503,-3.649166207236073e-5,3.5051459488144146e-8,0.0013295275370495275,-3.6419245769639135e-5,3.499636143139478e-8,0.0013298621741601225,-3.631427873602864e-5,3.492040029054349e-8,0.0013301357987788196,-3.620233676919433e-5,3.484081953074903e-8,0.0013303500182077856,-3.6111625895291846e-5,3.4776475543805855e-8,0.0013305170072328,-3.606960581815073e-5,3.4745462642883064e-8,0.0013306599051258836,-3.609882203418703e-5,3.4762278550856455e-8,0.0013308118536023116,-3.621166286686944e-5,3.483441417239421e-8,0.0013310123518564367,-3.64043217054422e-5,3.495855682409469e-8,0.0013312994223816388,-3.6651762152887505e-5,3.511751481890027e-8,0.0013316973518746693,-3.6907391838432765e-5,3.528018149292224e-8,0.0013322032136629622,-3.711186898684884e-5,3.540737536800615e-8,0.0013327798493111566,-3.721219549322923e-5,3.546437127639159e-8,0.0013333634934342639,-3.718420813249119e-5,3.543571757580381e-8,0.001333886255019829,-3.70450465515009e-5,3.53335093009964e-8,0.0013343019613464686,-3.6846215847581066e-5,3.5192757078025216e-8,0.001334600413137058,-3.6651362298198277e-5,3.505642654975122e-8,0.0013348042208097524,-3.6512872822752915e-5,3.495958564720737e-8,0.0013349544109773996,-3.6458841744971036e-5,3.49205708479965e-8,0.0013350949386154267,-3.649215529746224e-5,3.49404840851344e-8,0.0013352621732775469,-3.659679818886342e-5,3.500770195061645e-8,0.001335480179315456,-3.6746003522191745e-5,3.510363508802379e-8,0.0013357600358690303,-3.6909212409168185e-5,3.520756323936493e-8,0.0013361011544938224,-3.705705068984642e-5,3.52999605336332e-8,0.00133649332519081,-3.7164741980348925e-5,3.536463540591373e-8,0.0013369190829818159,-3.7214510810799346e-5,3.539015342857483e-8,0.0013373563443612583,-3.719721204638616e-5,3.537079341232845e-8,0.0013377813051418917,-3.711323131523201e-5,3.530711046883947e-8,0.0013381715937814552,-3.697254005026054e-5,3.520601101140213e-8,0.0013385094912165925,-3.6793660324817705e-5,3.5080116340020854e-8,0.0013387847813319696,-3.660147627572446e-5,3.494630461274569e-8,0.0013389968351418553,-3.642410292771776e-5,3.482354178926302e-8,0.0013391557003256266,-3.628905404552198e-5,3.473019081800264e-8,0.0013392819820180002,-3.621893946658274e-5,3.468102678374732e-8,0.0013394052631200586,-3.622700347066692e-5,3.468425016446891e-8,0.0013395607383982387,-3.631286700900988e-5,3.473878515860904e-8,0.0013397835600754613,-3.645915330073845e-5,3.483228424044899e-8,0.0013401005623555385,-3.663056453013473e-5,3.494077405219707e-8,0.0013405202232471124,-3.6777887727110934e-5,3.5031461893425745e-8,0.0013410241084409612,-3.684910446392256e-5,3.5070089714356354e-8,0.0013415655317836142,-3.68068037108336e-5,3.503236888286036e-8,0.0013420805713068025,-3.664539114072159e-5,3.491530557749418e-8,0.0013425100358751974,-3.6397470548011556e-5,3.47413920987351e-8,0.00134282186684753,-3.6122771266874264e-5,3.455114282299104e-8,0.0013430210440999052,-3.5884585735838275e-5,3.438718523558038e-8,0.0013431424937006674,-3.5727401868071906e-5,3.427912167202074e-8,0.00134323392387406,-3.5666709476200635e-5,3.423668442759081e-8,0.0013433393957544833,-3.569188452387105e-5,3.425186840423222e-8,0.0013434898472930886,-3.577592172660759e-5,3.430576805004325e-8,0.0013437006458960645,-3.588557734935549e-5,3.4375631883152696e-8,0.0013439733632099559,-3.598872432152733e-5,3.443987682266083e-8,0.0013442990272794215,-3.6058572131738544e-5,3.448082578605249e-8,0.0013446613049089872,-3.6075754726357985e-5,3.44859220020242e-8,0.001345039248616876,-3.6029368037547205e-5,3.444825503332818e-8,0.0013454098213895693,-3.591751673460431e-5,3.436684759254604e-8,0.0013457504724702282,-3.57474829484819e-5,3.424678910825797e-8,0.0013460419605556845,-3.5535332633184876e-5,3.409904369034362e-8,0.0013462713941414768,-3.530453678562293e-5,3.3939575913952353e-8,0.0013464350440412546,-3.5083247688415916e-5,3.3787496601098456e-8,0.001346540218956281,-3.490026072080504e-5,3.366224387151234e-8,0.0013466055506973335,-3.478008498355249e-5,3.358013732940204e-8,0.001346659241019408,-3.4737853074248655e-5,3.355088149022233e-8,0.0013467351263881956,-3.477505002897689e-5,3.3574748237485566e-8,0.0013468668157807983,-3.487707274585662e-5,3.36411293630354e-8,0.0013470805087412794,-3.501350818296307e-5,3.3728992049500143e-8,0.0013473874871725111,-3.5141989537112516e-5,3.3809694862078156e-8,0.0013477779846166242,-3.5216299066590065e-5,3.385250575241212e-8,0.0013482190793279586,-3.5198369687471605e-5,3.3832555330064887e-8,0.001348659613978359,-3.507162618165665e-5,3.3739577083562544e-8,0.001349043468490627,-3.485031268644354e-5,3.358395470384573e-8,0.001349327999366581,-3.4578485620740276e-5,3.3395893343763146e-8,0.0013494994616960665,-3.431622032059404e-5,3.321604676365601e-8,0.001349576900362316,-3.411840812110945e-5,3.3081186820720924e-8,0.0013496024923671088,-3.4016892922365775e-5,3.3012189592066463e-8,0.0013496246279193777,-3.401415154718749e-5,3.300992090644571e-8,0.0013496829179363164,-3.408870967312186e-5,3.305913434321514e-8,0.0013498005419856707,-3.420638364611618e-5,3.313629142245499e-8,0.001349983766265312,-3.433103577998142e-5,3.3216931742549514e-8,0.001350225503188383,-3.443167213616684e-5,3.328041116125517e-8,0.001350509870791549,-3.44857855079198e-5,3.3311987997451824e-8,0.001350816111848709,-3.44802776149318e-5,3.330325655153641e-8,0.0013511215354534733,-3.44113203272646e-5,3.325193674476666e-8,0.0013514038266242718,-3.428394324938091e-5,3.3161588903372553e-8,0.0013516432294084326,-3.41115562702498e-5,3.3041366067246576e-8,0.0013518249947347244,-3.391515061958602e-5,3.29055587983786e-8,0.0013519421489563276,-3.372159161237384e-5,3.277246672853169e-8,0.0013519981162253448,-3.35604192219653e-5,3.2662172488743894e-8,0.0013520082488663807,-3.345899609113347e-5,3.259313778399188e-8,0.0013519991491952143,-3.343655294053388e-5,3.257806735071459e-8,0.0013520049886915973,-3.349849264305731e-5,3.262004101630264e-8,0.0013520609158930905,-3.36328575909331e-5,3.2710241377374956e-8,0.0013521948074782938,-3.3810651240403614e-5,3.2828394204526694e-8,0.0013524194680195325,-3.399070247049815e-5,3.2946301667474426e-8,0.0013527275548078518,-3.412846985252045e-5,3.3033954284171145e-8,0.0013530910516223313,-3.41870260521444e-5,3.306696170857802e-8,0.0013534662186818406,-3.414758958099839e-5,3.303351712767489e-8,0.0013538036921596796,-3.401650121264336e-5,3.293885919569297e-8,0.0013540617630267778,-3.3825695437600704e-5,3.280532715743045e-8,0.0013542189655621978,-3.3625013396523797e-5,3.2666968653528377e-8,0.0013542809896239987,-3.3467679762926974e-5,3.255963827369867e-8,0.0013542783419837156,-3.3394020433318414e-5,3.251003853738814e-8,0.0013542554119995557,-3.342020697923614e-5,3.252828382153754e-8,0.0013542560140103023,-3.3536391035527796e-5,3.2606892142050424e-8,0.0013543116989025482,-3.371353007933651e-5,3.2725642792952345e-8,0.0013544365308802784,-3.391431273365121e-5,3.285910327271554e-8,0.0013546280975285543,-3.410316353858851e-5,3.2983383466057345e-8,0.0013548720539619643,-3.4252552907384106e-5,3.308026489902493e-8,0.001355147353668992,-3.43454908576762e-5,3.313870075252464e-8,0.0013554305468037433,-3.437553330264171e-5,3.315467676927687e-8,0.0013556988011802253,-3.434572357619407e-5,3.313045281129339e-8,0.0013559320038673691,-3.426735815892247e-5,3.30737806614842e-8,0.0013561145343338845,-3.415887769336406e-5,3.299724375590522e-8,0.0013562372346350193,-3.40446430953795e-5,3.291748056072256e-8,0.001356299729968249,-3.395293821719811e-5,3.285379960496967e-8,0.0013563126464800305,-3.39124616274109e-5,3.2825694374099335e-8,0.0013562986345168043,-3.394695718115785e-5,3.284908231937111e-8,0.0013562906901488832,-3.406854808973949e-5,3.2931730931658255e-8,0.0013563265580224901,-3.4271700357362895e-5,3.3069227097465745e-8,0.0013564394803830895,-3.453081024388408e-5,3.3243512234392763e-8,0.001356647830444362,-3.480395690125668e-5,3.342564568063368e-8,0.0013569477158602284,-3.504296952579012e-5,3.358281757335669e-8,0.0013573120584085639,-3.52068525793514e-5,3.368754392194241e-8,0.001357697050412798,-3.5273779767518736e-5,3.3725762172275216e-8,0.0013580538346326509,-3.524742322405932e-5,3.3700952947215904e-8,0.0013583414729187431,-3.515577457801083e-5,3.3633068996217375e-8,0.0013585373183607017,-3.504326814963739e-5,3.3552899090837633e-8,0.0013586421139425234,-3.4958781479045985e-5,3.3493719387707e-8,0.001358678685937704,-3.494290707046618e-5,3.3482624669021657e-8,0.001358684778336174,-3.501803608967189e-5,3.353396129882613e-8,0.001358702322909947,-3.518405715028354e-5,3.36466993389363e-8,0.0013587666406036992,-3.542061521536396e-5,3.380626499920978e-8,0.0013588989123856205,-3.5694495803273485e-5,3.398974496696862e-8,0.001359103663247866,-3.5969025766868755e-5,3.417229612867719e-8,0.0013593708567535968,-3.621226756590788e-5,3.4332592451649465e-8,0.0013596806793210175,-3.640207539916034e-5,3.4456072169122394e-8,0.0013600088338772479,-3.6527817297702786e-5,3.4535941490019846e-8,0.0013603309085686056,-3.6589745925869715e-5,3.4572666368770736e-8,0.0013606253906847028,-3.659727205627579e-5,3.4572817000381455e-8,0.0013608755966453268,-3.656705235731982e-5,3.45478428901892e-8,0.0013610710755603856,-3.652125748003627e-5,3.4512957394544435e-8,0.0013612090115036409,-3.648585481662091e-5,3.448596151433922e-8,0.0013612958461505,-3.648833256815448e-5,3.448560847301663e-8,0.0013613487825353768,-3.655412453139295e-5,3.452905427534737e-8,0.0013613960977975756,-3.6701245140876124e-5,3.4628141465119906e-8,0.0013614745650237811,-3.693358561190437e-5,3.4784884782548805e-8,0.0013616224205170902,-3.7235042204870165e-5,3.4987633233731027e-8,0.001361868091522445,-3.756832421090297e-5,3.521045772248526e-8,0.001362218255945228,-3.788197415238886e-5,3.541808383563176e-8,0.0013626514699812326,-3.812539193249165e-5,3.557619486093644e-8,0.001363122322234058,-3.8266165560665596e-5,3.566324383611881e-8,0.0013635754647547845,-3.830134386399334e-5,3.5678079037798024e-8,0.0013639630780626708,-3.825738313571894e-5,3.563975015298319e-8,0.001364258080357862,-3.817994201829989e-5,3.5580274568062977e-8,0.0013644589434662312,-3.811922202797349e-5,3.5534332460088205e-8,0.0013645865742663128,-3.81166924124298e-5,3.5530027944857735e-8,0.0013646762446455044,-3.819653354824757e-5,3.558310331044814e-8,0.001364767819829093,-3.8362605590993256e-5,3.569514079478911e-8,0.0013648967631197295,-3.8600238344742254e-5,3.585514627803409e-8,0.0013650874946786213,-3.888148752071901e-5,3.60434300221522e-8,0.0013653499642588421,-3.917227000116867e-5,3.62365942886353e-8,0.00136567964200512,-3.943967176457917e-5,3.6412451385441956e-8,0.0013660603709506384,-3.965784039600382e-5,3.65538578644758e-8,0.0013664688889499187,-3.981147629204727e-5,3.665089579529965e-8,0.0013668796761675812,-3.989679821734419e-5,3.6701401260529234e-8,0.0013672690955396569,-3.992052333462929e-5,3.6710241547116054e-8,0.0013676183253096337,-3.9897716306200194e-5,3.668789735721834e-8,0.0013679151464472477,-3.984932666566189e-5,3.664884493646582e-8,0.0013681550099158162,-3.979985343784534e-5,3.660997364210455e-8,0.0013683418187992174,-3.977508572660584e-5,3.658897704031485e-8,0.0013684886345164064,-3.9799531863791056e-5,3.6602481816290366e-8,0.0013686181140462686,-3.989297417404592e-5,3.6663608773571173e-8,0.0013687618136698219,-4.006569078124706e-5,3.677873040014451e-8,0.0013689567976789784,-4.031268759372785e-5,3.6943686509812775e-8,0.0013692379960220952,-4.0608958982055686e-5,3.714077674900414e-8,0.0013696263976024602,-4.0909688045915914e-5,3.733908018595111e-8,0.001370116858706226,-4.115943735403728e-5,3.7500783826076915e-8,0.0013706730192843547,-4.131030892561659e-5,3.759353716751259e-8,0.0013712357655380756,-4.1341651354543865e-5,3.760387092264407e-8,0.001371743681640421,-4.1269733274189294e-5,3.754378869036469e-8,0.0013721549303818486,-4.114093707006044e-5,3.744600118910848e-8,0.0013724590038156602,-4.1013018078885606e-5,3.7350822712677154e-8,0.0013726746583584263,-4.0935524588789915e-5,3.7292433498253575e-8,0.0013728388253621247,-4.093780361015353e-5,3.7290504667023286e-8,0.0013729936653109317,-4.102619609853645e-5,3.7348411588796894e-8,0.001373176359782013,-4.118762655376452e-5,3.745605098886693e-8,0.0013734130133102524,-4.139607981819826e-5,3.759467361926248e-8,0.0013737161837680623,-4.161950138762874e-5,3.7741869452387925e-8,0.0013740850229568907,-4.182594710895547e-5,3.787581954548767e-8,0.0013745072421834012,-4.198858396882682e-5,3.797857502949695e-8,0.0013749623837124778,-4.208926335925624e-5,3.803827857381001e-8,0.0013754258276343432,-4.2120407717748035e-5,3.8050265155743136e-8,0.001375872892622539,-4.2085198307853355e-5,3.801710263943968e-8,0.001376282469925798,-4.199628974034897e-5,3.7947728565110885e-8,0.0013766397572874227,-4.187345120748918e-5,3.7855899666402347e-8,0.0013769379150291574,-4.1740698791756187e-5,3.775826686919178e-8,0.0013771788132807986,-4.162339046388268e-5,3.76723488673647e-8,0.0013773731537905993,-4.154540420571933e-5,3.7614493141915814e-8,0.0013775401104706387,-4.1526264618012495e-5,3.759779228022895e-8,0.0013777064032593797,-4.157796597586423e-5,3.762987031680914e-8,0.001377904267471179,-4.170125910920436e-5,3.771044184184231e-8,0.0013781672206391812,-4.188175848661827e-5,3.78288749397831e-8,0.00137852256618738,-4.2087548328483725e-5,3.7962807628071696e-8,0.0013789809169083302,-4.2271422389212076e-5,3.807982991820045e-8,0.0013795260580142504,-4.238109909941585e-5,3.8144447194615674e-8,0.0013801120459359865,-4.237742637005507e-5,3.813041208095439e-8,0.0013806741263976,-4.225334424947585e-5,3.8033625865393774e-8,0.0013811520519300435,-4.2041187655938626e-5,3.787713159675286e-8,0.0013815136370865081,-4.180098864064637e-5,3.7703002181980215e-8,0.0013817644462791729,-4.159593522969593e-5,3.755522195444356e-8,0.0013819398040921613,-4.146995772891535e-5,3.7463973571636786e-8,0.0013820873195676013,-4.143814444971667e-5,3.74389528223684e-8,0.0013822508297504756,-4.1489856674521627e-5,3.747173694159376e-8,0.0013824612018183504,-4.159808318168086e-5,3.7542636676095634e-8,0.001382733677333939,-4.172918004101423e-5,3.76277743218216e-8,0.0013830692173663335,-4.185025959459586e-5,3.7704340994960595e-8,0.0013834575067367659,-4.193387127219509e-5,3.7753754368892116e-8,0.00138388030970731,-4.196070426809343e-5,3.776329962305264e-8,0.0013843148322871465,-4.1921028124019695e-5,3.7726878625517075e-8,0.0013847370777409624,-4.181512286564115e-5,3.7645150528966244e-8,0.0013851250900450299,-4.165273271465304e-5,3.752512539985943e-8,0.0013854619058602147,-4.145156074913463e-5,3.737919056711855e-8,0.0013857379458243554,-4.123483834305219e-5,3.722351350041851e-8,0.0013859525067954938,-4.1028195536964666e-5,3.707590164867331e-8,0.001386114186987945,-4.08562465832129e-5,3.6953376917189425e-8,0.0013862402914967716,-4.0739217947163935e-5,3.6869727504020365e-8,0.0013863552819137583,-4.068981038566365e-5,3.683325080139284e-8,0.0013864882812566375,-4.071045407698197e-5,3.684488191793497e-8,0.0013866695093654466,-4.0791084850707254e-5,3.689683217641563e-8,0.0013869252570760705,-4.0907845082072896e-5,3.6971967000828836e-8,0.0013872711358115565,-4.102392437415202e-5,3.7044638632372434e-8,0.0013877044103900269,-4.10944872644231e-5,3.708418444800822e-8,0.0013881982022425643,-4.107730918647336e-5,3.70621554354846e-8,0.0013887024507251455,-4.094823201885367e-5,3.696274535980045e-8,0.0013891560996636264,-4.071545369969397e-5,3.6792453536201996e-8,0.0013895088976246747,-4.042264374578624e-5,3.658214577314118e-8,0.0013897421255975183,-4.013475017712353e-5,3.637717862062872e-8,0.0013898751358086116,-3.99123909946508e-5,3.621955119697095e-8,0.0013899539157585976,-3.97898760399196e-5,3.613256495667892e-8,0.0013900305358917047,-3.976825529054825e-5,3.611605869920365e-8,0.0013901459897183817,-3.982280938552323e-5,3.615187595826213e-8,0.001390322583927315,-3.9916483926864295e-5,3.621354110721034e-8,0.0013905644815372748,-4.00116379826972e-5,3.627465691377648e-8,0.001390862196549241,-4.007719389834769e-5,3.6313891042696686e-8,0.0013911977272878053,-4.009168854677753e-5,3.631692015857626e-8,0.001391548803289706,-4.004388985804637e-5,3.627660019245447e-8,0.0013918921108757572,-3.9932383942914886e-5,3.619246897144912e-8,0.001392205925877442,-3.976474847087717e-5,3.607009012040189e-8,0.001392472481833256,-3.9556371616133894e-5,3.592027726302581e-8,0.0013926801795685095,-3.932876436594814e-5,3.5758025153182566e-8,0.0013928255206943443,-3.910712261197275e-5,3.5600891948591315e-8,0.0013929143574365078,-3.891704325009154e-5,3.546670424830646e-8,0.0013929619662561058,-3.878067864465175e-5,3.5370785800753655e-8,0.0013929916634681091,-3.8712865216251155e-5,3.5323145245009847e-8,0.0013930319212074739,-3.871783709874851e-5,3.532613964822986e-8,0.0013931121650108214,-3.878718027241075e-5,3.537313617747967e-8,0.0013932576761824852,-3.889956926863257e-5,3.544855030305457e-8,0.0013934841205019005,-3.902264562679513e-5,3.5529430896809445e-8,0.0013937923389470475,-3.911747336501126e-5,3.558876680690813e-8,0.0013941645951322254,-3.9146037401005566e-5,3.560072677257016e-8,0.0013945643433518572,-3.908149684330105e-5,3.554760976148454e-8,0.0013949419740809537,-3.8919080012482775e-5,3.54271205202408e-8,0.0013952477277678645,-3.868301987054237e-5,3.525691407233159e-8,0.001395448996586115,-3.842366805801884e-5,3.507242835859129e-8,0.0013955441184541493,-3.8202198743737096e-5,3.491619511363628e-8,0.001395563841894682,-3.806835542580855e-5,3.482237329132881e-8,0.0013955584098649994,-3.804297850225461e-5,3.4804676331452736e-8,0.0013955778157443777,-3.8114400232592614e-5,3.4854056156277526e-8,0.0013956561830292,-3.8248114880291454e-5,3.4945709067619815e-8,0.0013958061096767589,-3.840169374270801e-5,3.504970300817749e-8,0.001396021525706078,-3.853707477095065e-5,3.513962678304474e-8,0.0013962843041433993,-3.8627076516026636e-5,3.5197026880596114e-8,0.0013965707576988314,-3.865699570879773e-5,3.521229439063478e-8,0.0013968563725718281,-3.8623536025609064e-5,3.5183688298750485e-8,0.0013971187911648243,-3.8532907044979155e-5,3.511587978476073e-8,0.001397339741657006,-3.8398963032655006e-5,3.501866053362015e-8,0.0013975065707011172,-3.824149273866268e-5,3.490584928664414e-8,0.0013976137214529206,-3.808437691328442e-5,3.47941124837482e-8,0.0013976641337538325,-3.795316224892923e-5,3.470130668547223e-8,0.0013976701313359334,-3.787171824233571e-5,3.4644083108582145e-8,0.0013976530803277948,-3.785809777299285e-5,3.4634877223998395e-8,0.0013976411745630901,-3.792027581554576e-5,3.467883721971932e-8,0.0013976651171231898,-3.8052873706371765e-5,3.477154552196402e-8,0.001397752138213877,-3.8236151892252456e-5,3.489846164729002e-8,0.0013979195447783234,-3.8438219455829296e-5,3.5036710195449224e-8,0.0013981694399458889,-3.862056128580171e-5,3.515918741519236e-8,0.001398486147697437,-3.874608834560939e-5,3.524031957876636e-8,0.0013988374531938928,-3.878827062153085e-5,3.526239348503685e-8,0.001399180229735303,-3.873936055813441e-5,3.5221074317918304e-8,0.0013994701906148062,-3.861521125226919e-5,3.5128449985403174e-8,0.0013996740998213511,-3.845410205611195e-5,3.501191367250836e-8,0.0013997808979702491,-3.830798334251088e-5,3.490787420794603e-8,0.0013998068841861602,-3.822734029112152e-5,3.485117466616385e-8,0.0013997912690781416,-3.824484084870901e-5,3.486381492238321e-8,0.001399782875381604,-3.836511152067367e-5,3.494805808686753e-8,0.0013998239209614296,-3.856545057793629e-5,3.508720829151086e-8,0.0013999383452429608,-3.880618248898522e-5,3.5253069111989446e-8,0.001400128687982977,-3.9044513556967366e-5,3.5415721677933286e-8,0.0014003803140351105,-3.924559928935504e-5,3.555119946742358e-8,0.0014006688652410718,-3.938796884383357e-5,3.564509648433299e-8,0.0014009672459019793,-3.946401158692379e-5,3.569268613464028e-8,0.0014012504631784645,-3.9477773714654874e-5,3.5697219627372335e-8,0.0014014983378744935,-3.9442025791079544e-5,3.566783351875651e-8,0.0014016968485090753,-3.937562123845998e-5,3.561776933093947e-8,0.0014018389311078144,-3.930135009856592e-5,3.556297869454529e-8,0.0014019252611881805,-3.924395351028988e-5,3.552079791655267e-8,0.0014019650674987158,-3.922771502573723e-5,3.550823547292913e-8,0.0014019765254487317,-3.927316184126799e-5,3.5539561321083074e-8,0.0014019859072127623,-3.939286678870541e-5,3.562326047613582e-8,0.0014020245683540645,-3.9587049026522654e-5,3.57589225433063e-8,0.0014021232793080098,-3.984050350448809e-5,3.5935183683834784e-8,0.0014023045619820167,-4.0122876368864325e-5,3.613011664758931e-8,0.001402575188517273,-4.0393711578013267e-5,3.631499515737404e-8,0.0014029218430838034,-4.0611873294491905e-5,3.6461068646827724e-8,0.0014033123169753285,-4.074679499372091e-5,3.654749216388009e-8,0.0014037026283073234,-4.078780138232347e-5,3.6567752091281347e-8,0.0014040481592061073,-4.074819558912667e-5,3.653228462529379e-8,0.0014043154629272954,-4.0662606574106574e-5,3.646629348386904e-8,0.0014044912857379814,-4.057825582912705e-5,3.640333363998543e-8,0.001404586199481951,-4.054249152292174e-5,3.6376420565956945E-08,0.0014046315916832204,-4.059001163717845e-5,3.640913312668297e-8,0.0014046706036646942,-4.073363552405963e-5,3.650939734711049e-8,0.0014047457709805932,-4.096173679938644e-5,3.6668033280187714e-8,0.0014048875975041877,-4.1243138982900314e-5,3.686248986601918e-8,0.0014051079231287907,-4.153727189609017e-5,3.706412048229687e-8,0.0014053996891925462,-4.180543919169627e-5,3.724605723962737e-8,0.0014057418851642401,-4.201928520354164e-5,3.7388982979293707e-8,0.0014061067325829505,-4.216459310863377e-5,3.748357386154352e-8,0.0014064662792454632,-4.2240904034702006e-5,3.75300453375767e-8,0.001406796935332708,-4.225873123662221e-5,3.753610982343233e-8,0.0014070818711074016,-4.223609237701761e-5,3.7514565091294765e-8,0.0014073119283782146,-4.219538055815336e-5,3.748118402098386e-8,0.0014074858454996213,-4.216086923191445e-5,3.7453036902211475e-8,0.0014076103837110468,-4.215657537536124e-5,3.744699428145286e-8,0.001407700482867457,-4.2203893189522455e-5,3.7477990165415446e-8,0.0014077790394113716,-4.231848459825597e-5,3.755673767593618e-8,0.0014078754676845311,-4.250633958081457e-5,3.768691664581742e-8,0.0014080219967517041,-4.275967059593405e-5,3.7862358742113034e-8,0.0014082470158322466,-4.305438268393406e-5,3.8065444478173206e-8,0.0014085662107764442,-4.3351709842482535e-5,3.826846229183665e-8,0.0014089744868300872,-4.360598119993927e-5,3.843922404533621e-8,0.0014094431536157055,-4.377765422595991e-5,3.8550288702544655e-8,0.0014099256069116926,-4.384699363489847e-5,3.8588547143931624e-8,0.001410370621965012,-4.3822017616625005e-5,3.8560684416864574e-8,0.0014107379906385569,-4.373660777036701e-5,3.8491618344667396e-8,0.001411009964557524,-4.363969764258664e-5,3.841657689536917e-8,0.0014111946000197385,-4.3580512043394426e-5,3.8370420063415034e-8,0.0014113211867777273,-4.359545857298468e-5,3.837829828573306e-8,0.0014114306461733982,-4.3700232323209964e-5,3.8450239351540594e-8,0.001411564408632792,-4.388818610139138e-5,3.858035161105931e-8,0.0014117547305501578,-4.4134232812283986e-5,3.874997182226532e-8,0.0014120184750084578,-4.440248212920195e-5,3.8933324817321076e-8,0.0014123552829552618,-4.4655279826922307e-5,3.910396017989396e-8,0.0014127498958597165,-4.4861304314633954e-5,3.924032595412258e-8,0.0014131773611926266,-4.500092974261656e-5,3.932930729967511e-8,0.0014136092759243295,-4.5068124233728125e-5,3.9367328715653395e-8,0.001414019350464863,-4.50693223258045e-5,3.9359414083827914e-8,0.001414387280570928,-4.5020436860496765e-5,3.931705416718012e-8,0.0014147007530842784,-4.4943253683445574e-5,3.925572649703533e-8,0.0014149560140847756,-4.486209219785531e-5,3.919262101512192e-8,0.0014151576551419522,-4.4801074437002196e-5,3.914474595500056e-8,0.001415318136201093,-4.478183557739158e-5,3.912726793698288e-8,0.0014154572003696824,-4.482122856836196e-5,3.9151802563573214e-8,0.0014156009001108517,-4.492859041749618e-5,3.9224425325897754e-8,0.0014157795097893533,-4.5102449376290346e-5,3.93433918158505e-8,0.0014160233109937125,-4.532727500167816e-5,3.94970098303655e-8,0.0014163555567608258,-4.557201265798743e-5,3.96628298780135e-8,0.0014167833913719533,-4.579313198730899e-5,3.980996986060289e-8,0.0014172901012929602,-4.594441145983626e-5,3.990606550755613e-8,0.0014178341748209257,-4.599235373069634e-5,3.9928088314464635e-8,0.0014183591944381855,-4.593096157451421e-5,3.987268351609923e-8,0.0014188124373602864,-4.5787093578951006e-5,3.975984439233655e-8,0.001419163393834719,-4.561185313227637e-5,3.9626636645945325e-8,0.0014194126920989531,-4.5462152420401115e-5,3.951386849890556e-8,0.0014195882504336435,-4.5382171232237414e-5,3.945270542300551e-8,0.0014197329253106763,-4.539256577330823e-5,3.9456983564371725e-8,0.0014198906236090039,-4.548923231726588e-5,3.952257759491028e-8,0.001420095771986858,-4.5648857684138e-5,3.963175850856077e-8,0.0014203677362581296,-4.5837385340540104e-5,3.975959325884974e-8,0.0014207096597213865,-4.601850510949015e-5,3.988016811818957e-8,0.0014211104809135435,-4.616063637726872e-5,3.9971495331700885e-8,0.0014215489510336552,-4.624177480943514e-5,4.001871904464167e-8,0.0014219986351035052,-4.6251956591088596e-5,4.0015574979438314e-8,0.0014224329376801295,-4.619339291718908e-5,3.996426457805398e-8,0.001422829353219783,-4.607871301987465e-5,3.9874120697775513e-8,0.0014231724530763103,-4.592798447099774e-5,3.9759530620922137e-8,0.0014234554326269762,-4.57652124151591e-5,3.9637548056577846e-8,0.0014236803642659415,-4.561496504861187e-5,3.952556952558051e-8,0.0014238575838519927,-4.5499512314608026e-5,3.943929979142778e-8,0.0014240046262760098,-4.543644346492547e-5,3.9390987574810174e-8,0.0014241448474782898,-4.543650107068099e-5,3.938780661528568e-8,0.0014243055769598875,-4.55014025622324e-5,3.943030334635427e-8,0.0014245153230789524,-4.562160361393435e-5,3.951093333991738e-8,0.0014247992679477627,-4.5774516750711624e-5,3.9613026810845106e-8,0.0014251725776000539,-4.592471607435623e-5,3.97111673534239e-8,0.0014256324150758487,-4.6028499832087334e-5,3.9774539919194244e-8,0.0014261519278773282,-4.604466942670059e-5,3.97745103455597e-8,0.0014266816106519023,-4.595018557846401e-5,3.9695557904295956e-8,0.0014271621257017225,-4.575388705227969e-5,3.9544859389287236e-8,0.0014275457311608392,-4.549845458283125e-5,3.935358890200528e-8,0.001427815306107102,-4.524605002091276e-5,3.916657774531871e-8,0.0014279894860666584,-4.505443172790813e-5,3.9025101307670685e-8,0.001428111845943068,-4.4957151971777735e-5,3.895259664595886e-8,0.0014282324457039898,-4.4956997998443266e-5,3.8950037799349965e-8,0.0014283921152246375,-4.5031813061035744e-5,3.9000405529012745e-8,0.001428614503799861,-4.514594302658012e-5,3.907728510090153e-8,0.0014289052039444517,-4.526123102336767e-5,3.915303573565249e-8,0.0014292549887714064,-4.5344780633131716e-5,3.9204408290150735e-8,0.0014296445351593818,-4.537328317671618e-5,3.921546485399938e-8,0.0014300491927835234,-4.533479827914965e-5,3.917854634066426e-8,0.0014304433224275918,-4.522881772940035e-5,3.909403114722347e-8,0.001430804033341362,-4.5065037434135e-5,3.896929881664266e-8,0.001431114134170649,-4.486114602985143e-5,3.8817147411994384e-8,0.001431364173594574,-4.463995090524377e-5,3.8653843304944497e-8,0.001431553477665542,-4.4426110315797016e-5,3.8496905092415785e-8,0.0014316900992935974,-4.4242818950062476e-5,3.8362786478080485e-8,0.0014317897941557708,-4.410886020323244e-5,3.8264727869013804e-8,0.0014318743099349634,-4.403620954390451e-5,3.8210949087253464e-8,0.0014319691565770345,-4.402814004867514e-5,3.8203232744223565e-8,0.0014321008288139233,-4.407781633250867e-5,3.823596615193787e-8,0.0014322933132242908,-4.4167493057523215e-5,3.829575167824442e-8,0.0014325635783059797,-4.426874231918825e-5,3.8361828243839776e-8,0.0014329159984174987,-4.4344806916418694e-5,3.8407962919808685e-8,0.0014333367610415697,-4.435666435111393e-5,3.840682171688473e-8,0.0014337910720800594,-4.4273697098380086e-5,3.833742616530986e-8,0.0014342273731959762,-4.408716016137151e-5,3.819450047412489e-8,0.0014345914434781843,-4.382020957560829e-5,3.79954130449742e-8,0.0014348470970175808,-4.352582193219588e-5,3.7778581483576264e-8,0.0014349925697684392,-4.326902649537983e-5,3.759070188014273e-8,0.0014350613489107376,-4.3101343714786775e-5,3.746837044387351e-8,0.0014351064354383872,-4.304237393549526e-5,3.74248666578265e-8,0.0014351786308693037,-4.3077895175319485e-5,3.744893988723652e-8,0.001435311120145527,-4.3171511316731736e-5,3.751349253798805e-8,0.001435514983638263,-4.3280124103506245e-5,3.7587031889058094e-8,0.0014357827442222175,-4.33657644870084e-5,3.764234602726513e-8,0.0014360950176135047,-4.340168328161423e-5,3.766080981694061e-8,0.0014364268982985113,-4.3373918763642415e-5,3.7633249662091946e-8,0.0014367527843651797,-4.328039694830718e-5,3.755898187846603e-8,0.0014370497401466067,-4.312909776010434e-5,3.7444270646673757e-8,0.0014372999251545048,-4.29358844997081e-5,3.730070931627148e-8,0.0014374923724849156,-4.2722063680720855e-5,3.71435536648068e-8,0.0014376241618117747,-4.251167408721932e-5,3.6989920136254e-8,0.0014377009262072043,-4.2328490779715396e-5,3.6856738666764285e-8,0.0014377364788064743,-4.2192837572660376e-5,3.675846863045126e-8,0.0014377513692969844,-4.2118585485798534e-5,3.6704856042820815e-8,0.001437770451447845,-4.2110786884528316e-5,3.669912913273134e-8,0.0014378196981251372,-4.21642244916051e-5,3.6736925449717485e-8,0.0014379224790505686,-4.226308798281828e-5,3.680616377621557e-8,0.0014380955334853483,-4.238200534606743e-5,3.6888012155040675e-8,0.0014383449114242503,-4.2488670304332985e-5,3.6959034935254815e-8,0.0014386623333420816,-4.254848883471872e-5,3.69946922542799e-8,0.001439023053413255,-4.253172746547254e-5,3.6974437223496824e-8,0.00143938722951177,-4.242284653717159e-5,3.688818009449981e-8,0.001439707137154768,-4.222971419566938e-5,3.674257304428873e-8,0.0014399409659193428,-4.198781671588203e-5,3.656376280190634e-8,0.001440069459918548,-4.1753765044836575e-5,3.6392606119182155e-8,0.001440106597622063,-4.158679104094984e-5,3.6271381464065536e-8,0.0014400959148385573,-4.1525832600832144e-5,3.622739349459521e-8,0.0014400927711180566,-4.15752438414865e-5,3.626283531393904e-8,0.0014401429180055368,-4.170699406909172e-5,3.635659541946491e-8,0.0014402691460889587,-4.1875615871244114e-5,3.6475292110604114e-8,0.0014404700687453444,-4.20353985030447e-5,3.658586574851633e-8,0.0014407270427852904,-4.215187194132588e-5,3.666388371140973e-8,0.001441013130719309,-4.220595818615349e-5,3.6696359973947585e-8,0.0014413003263376396,-4.219308157288958e-5,3.6680826446642095e-8,0.001441564033217401,-4.212012924590863e-5,3.662287749152233e-8,0.0014417853809006085,-4.2002181831792545e-5,3.653368462176073e-8,0.0014419523959797523,-4.185969337729201e-5,3.642799751790315e-8,0.0014420606999227586,-4.171600435622608e-5,3.632248964966348e-8,0.0014421139198980406,-4.159487387718513e-5,3.623411674528073e-8,0.0014421237028206181,-4.151777055500738e-5,3.6178218018737015e-8,0.0014421089934266833,-4.150085444996026e-5,3.6166287820635e-8,0.0014420941576250958,-4.155198804294638e-5,3.620370937664565e-8,0.0014421057972856064,-4.166845338362705e-5,3.628802792965738e-8,0.0014421685219863218,-4.183607922736202e-5,3.6408352528175015e-8,0.0014423002757643633,-4.203032172674412e-5,3.65463031098458e-8,0.0014425080608542666,-4.22195472333642e-5,3.667862994977846e-8,0.001442784991572208,-4.237031728117714e-5,3.6781252110025435e-8,0.0014431095090614871,-4.245409762385614e-5,3.6834180674033206e-8,0.0014434474962299161,-4.245454297942441e-5,3.682664986919906e-8,0.0014437579597159325,-4.237398291446551e-5,3.676149381934002e-8,0.0014440024218877274,-4.2236870836770005e-5,3.665727124065034e-8,0.0014441566692500326,-4.208735480065546e-5,3.654623465415403e-8,0.0014442210777839057,-4.197894413823149e-5,3.646678154580181e-8,0.0014442238639085503,-4.1957657259825583e-5,3.6451395741224957e-8,0.001444213177633174,-4.204514955028633e-5,3.6514704020701185e-8,0.0014442400148779796,-4.2230738483301597e-5,3.664799820937176e-8,0.001444340327612597,-4.2477002171248194e-5,3.6823531208232587E-08,0.0014445252831045401,-4.273521305190709e-5,3.700583739358809e-8,0.001444782633063003,-4.296167146369278e-5,3.716358146341754e-8,0.0014450854085491184,-4.312785702347721e-5,3.727679374827056e-8,0.001445401951167018,-4.322288651739154e-5,3.733842340885731e-8,0.001445703365975638,-4.3250813436262515e-5,3.735212787958807e-8,0.0014459674945798882,-4.32260760357198e-5,3.73288004390637e-8,0.001446180300220262,-4.316923443732345e-5,3.728344873718978e-8,0.0014463359582635035,-4.310370309668452e-5,3.723292189167686e-8,0.0014464365687389773,-4.305328850624032e-5,3.719426687269874e-8,0.0014464918465855834,-4.304002473972689e-5,3.718325365119318e-8,0.0014465186728166825,-4.308181819575483e-5,3.721266618215463e-8,0.0014465400355141305,-4.3189687170519945e-5,3.7290221487352145e-8,0.0014465827531187007,-4.336489798552785e-5,3.741640893771544e-8,0.0014466736056468219,-4.3596841039752464e-5,3.758294229173246e-8,0.0014468340922974643,-4.386279199894946e-5,3.77726972029659e-8,0.0014470748301542683,-4.413057535440872e-5,3.7961848327240886e-8,0.0014473912922101449,-4.4364408720834884e-5,3.812432810558878e-8,0.0014477626657607462,-4.453297875666711e-5,3.8237820661230854e-8,0.001448154854433801,-4.461771816489685e-5,3.828974037644961e-8,0.0014485274030723117,-4.461890202134063e-5,3.8281447589952853e-8,0.0014488429638407447,-4.455758179245559e-5,3.822931479912126e-8,0.001449077126957026,-4.447225398864734e-5,3.816195570741389e-8,0.001449226023125882,-4.441032020245069e-5,3.8113794316332475e-8,0.0014493090755652274,-4.441579020404974e-5,3.8116125833806295e-8,0.001449364947092221,-4.451633994090186e-5,3.818794133287042e-8,0.0014494407057380814,-4.471426477041007e-5,3.832972073058778e-8,0.0014495774144823556,-4.498555350055323e-5,3.8523117853081915e-8,0.0014497978450341655,-4.5288121537755064e-5,3.873716648698755e-8,0.001450101396289851,-4.557563857325436e-5,3.89383696430426e-8,0.0014504674700356046,-4.581077178440381e-5,3.9100206897818924e-8,0.001450864329811925,-4.59729347684755e-5,3.920855010190983e-8,0.001451258767715561,-4.605934108050844e-5,3.92621859121156e-8,0.001451623153623208,-4.608136827590191e-5,3.926997648012008e-8,0.0014519388956488832,-4.605924560935e-5,3.9246910208725725e-8,0.0014521971379447417,-4.6017229535460886e-5,3.9210629613232204e-8,0.0014523980389310705,-4.5980057149587095e-5,3.917896492879653e-8,0.0014525496603379358,-4.597051953376308e-5,3.9168276920308264e-8,0.0014526669574361673,-4.600759430739576e-5,3.9192135619664394e-8,0.0014527708281076104,-4.610453020282936e-5,3.9259884840940946e-8,0.0014528867245701964,-4.626654176388048e-5,3.9374895639106777e-8,0.0014530421048613528,-4.648831416903428e-5,3.9532731387203335e-8,0.0014532621468013511,-4.6752190201937326e-5,3.971990995005398e-8,0.0014535637916342824,-4.7028515568426274e-5,3.9914326393312656e-8,0.0014539493947660874,-4.727971460801391e-5,4.008841173852169e-8,0.0014544025921314587,-4.7468597955633217e-5,4.021531201044032e-8,0.0014548892922685616,-4.7569142347220584e-5,4.027675511472258e-8,0.0014553650558184153,-4.7575810436338764e-5,4.026972977663235e-8,0.0014557870851216873,-4.750717265528638e-5,4.020889782847651e-8,0.0014561265502366723,-4.7401772022354576e-5,4.012327246018735e-8,0.0014563767220609832,-4.730757137609055e-5,4.004821937536077e-8,0.00145655435776092,-4.726880621379515e-5,4.001569186801683e-8,0.001456694463586125,-4.73144514864003e-5,4.004587627083997e-8,0.0014568404770532691,-4.7451327393656046e-5,4.0142460997834714e-8,0.0014570327641523222,-4.7663290283813975e-5,4.029246947753112e-8,0.001457298519145466,-4.7916441311999795e-5,4.047043105356473e-8,0.0014576457793189451,-4.816871716330359e-5,4.064555627563837e-8,0.0014580630692166065,-4.8380870254886153e-5,4.07896946312839e-8,0.0014585242916217804,-4.85254475628263e-5,4.0883660976549706e-8,0.0014589966823086494,-4.859135992178545e-5,4.092028278391199e-8,0.0014594488895383127,-4.8583561201735886e-5,4.0903922552317477e-8,0.0014598568660654338,-4.851917902858856e-5,4.084752107398645e-8,0.001460206718017994,-4.8422238333548e-5,4.0768741953613706e-8,0.0014604949812930131,-4.831876578154884e-5,4.068648768877478e-8,0.0014607274013576004,-4.823314160900414e-5,4.0618350180221016e-8,0.0014609172150457537,-4.8185712318530414e-5,4.057893429465176e-8,0.001461083502746424,-4.8191179258434105E-05,4.0578670798416085e-8,0.001461249671904525,-4.82571706133708e-5,4.0622715345642995e-8,0.001461441693727446,-4.838261929000545e-5,4.07097296081658e-8,0.0014616854233344243,-4.8556014057686534e-5,4.083066061163576e-8,0.0014620023267894015,-4.8754249269082786e-5,4.0968058990523775e-8,0.0014624034953483796,-4.894358809285292e-5,4.109698020827211e-8,0.0014628831941533296,-4.908464338861261e-5,4.118875936509696e-8,0.0014634150433660768,-4.914226299762998e-5,4.121824393937142e-8,0.0014639548020531532,-4.9098224861191336e-5,4.117296927439143e-8,0.001464451637979818,-4.8961091183785824e-5,4.106020733296679e-8,0.0014648646915946838,-4.8766820370606e-5,4.090722801199529e-8,0.0014651772883869003,-4.8568009313809076e-5,4.075319349404685e-8,0.0014654017214941388,-4.8416426777365386e-5,4.063612262558724e-8,0.0014655731149098806,-4.834715390556542e-5,4.05811408271586e-8,0.0014657366598345033,-4.8370472978448067e-5,4.0594648027202523e-8,0.0014659342958094506,-4.847253437725393e-5,4.066516335293664e-8,0.0014661950114605521,-4.862215666828612e-5,4.076876008564538e-8,0.0014665301910791108,-4.8780249807602064e-5,4.0876316291687736e-8,0.0014669336173157724,-4.8909088442915184e-5,4.096041061837196e-8,0.0014673849869394323,-4.89797010783182e-5,4.10005813588427e-8,0.0014678556191269404,-4.8976435201010984e-5,4.0986359543432826e-8,0.0014683149714162325,-4.889830880085964e-5,4.091793502517985e-8,0.0014687365529222206,-4.875735290426732e-5,4.080472681276175e-8,0.0014691021142846357,-4.857481423921316e-5,4.0662543710692137e-8,0.0014694036337962362,-4.8376450354823765e-5,4.0510213167388694e-8,0.0014696432745798936,-4.8188046898087444e-5,4.0366429937764576e-8,0.0014698319277800106,-4.803190530328035e-5,4.0247286006004545e-8,0.0014699871102827962,-4.7924526915939426e-5,4.0164595796703556e-8,0.0014701307848855516,-4.787522027490336e-5,4.012482396092963e-8,0.0014702872622128149,-4.788517195205734e-5,4.012834089633514e-8,0.0014704809975428358,-4.794666693736669e-5,4.0168855709075365e-8,0.0014707338344027386,-4.804244009905834e-5,4.0233062784634995e-8,0.0014710611213139102,-4.814566107532364e-5,4.030084085232558e-8,0.0014714665413726273,-4.822181569590968e-5,4.034683134470572e-8,0.001471936732554558,-4.823419676772928e-5,4.0344537351810816e-8,0.0014724385787785134,-4.815393883152968e-5,4.02735824939934e-8,0.0014729232921461939,-4.7972708991935915e-5,4.012881131104992e-8,0.001473339733380658,-4.771194684085152e-5,3.99268721108642e-8,0.0014736534482333627,-4.7420811459529796e-5,3.97045678271898e-8,0.0014738614631978186,-4.716016424666695e-5,3.9506949528936975e-8,0.0014739933492919856,-4.697982067329245e-5,3.937043540172194e-8,0.0014740979744279096,-4.690167112469379e-5,3.931032980142313e-8,0.0014742246024554207,-4.691644256644111e-5,3.9318604552850936e-8,0.0014744082651071803,-4.69922299640802e-5,3.9370563974310175e-8,0.0014746637140043946,-4.708756851895923e-5,3.943489870131204e-8,0.0014749866046875014,-4.7162958123676244e-5,3.948243157993727e-8,0.001475358543065385,-4.71883294842356e-5,3.949159654624633e-8,0.001475753210166725,-4.714652817698946e-5,3.945074236392933e-8,0.001476142078096254,-4.7033888847950614e-5,3.9358189832320374e-8,0.0014764992123982724,-4.685887934392134e-5,3.9220928510260014e-8,0.0014768049713061416,-4.663938791887539e-5,3.905248086942313e-8,0.001477048391317066,-4.639911917690382e-5,3.8870289051615004e-8,0.0014772281442441146,-4.61636413222774e-5,3.86929540003015e-8,0.0014773521218631534,-4.595660324837137e-5,3.8537604231317574e-8,0.0014774358574483667,-4.579659133441228e-5,3.841765492707048e-8,0.0014775001956065402,-4.569496823083304e-5,3.8341186816552856e-8,0.0014775686820781154,-4.565470129067433e-5,3.830999686167372e-8,0.0014776649243166784,-4.566994456347111e-5,3.8319233095593914e-8,0.0014778099359220231,-4.5726192560117234e-5,3.83575570353092e-8,0.0014780193244124584,-4.580097117160524e-5,3.840782891730723e-8,0.0014783000450939625,-4.5865328797617776e-5,3.8448445201550915e-8,0.0014786467079729625,-4.588696439857752e-5,3.845582251437362e-8,0.0014790384080720245,-4.583611242343526e-5,3.840873944588172e-8,0.0014794383527260398,-4.56945594107753e-5,3.82947864626867e-8,0.001479799398450005,-4.5465999161076066e-5,3.811769435150879e-8,0.0014800774121277783,-4.518250806512075e-5,3.790185132520664e-8,0.0014802492942168032,-4.489995809258601e-5,3.768879845012064e-8,0.0014803258879004637,-4.467961171000656e-5,3.7523621216932424e-8,0.0014803496588216847,-4.456364916372832e-5,3.7436882425543227E-08,0.0014803767789849922,-4.455914717389837e-5,3.743285124826617e-8,0.00148045471663273,-4.463944669785187e-5,3.749072374826842e-8,0.0014806079903739232,-4.4759080332929866e-5,3.757599995374444e-8,0.0014808363575325631,-4.4871298219932226e-5,3.7653765328709984e-8,0.0014811213748755097,-4.49400791113898e-5,3.7697698950566665e-8,0.0014814353063795221,-4.494494148911797e-5,3.769349125262831e-8,0.0014817486607833878,-4.488064489949951e-5,3.7638296039217246e-8,0.0014820352591590176,-4.475444899156155e-5,3.75383511170801e-8,0.001482275222988769,-4.458271568201399e-5,3.740624045556785e-8,0.0014824566343186552,-4.438752806725547e-5,3.7258364186440963e-8,0.0014825762933425046,-4.41933973514123e-5,3.711263205430016e-8,0.0014826396781233982,-4.402407385189993e-5,3.698628868785702e-8,0.0014826601038704105,-4.3899537486014864e-5,3.689381745950238e-8,0.0014826570290835308,-4.3833355408042506e-5,3.684500249109746e-8,0.0014826535665252642,-4.383076384824262e-5,3.684342893133268e-8,0.0014826734964349505,-4.388776027353641e-5,3.688571137475423e-8,0.0014827381250709867,-4.3991250197185465e-5,3.696157870415823e-8,0.0014828632277558774,-4.4120225732295084e-5,3.7054853705114773e-8,0.0014830562790585913,-4.424796254416029e-5,3.7145299091021524e-8,0.001483314114902658,-4.4345226853738956e-5,3.721123064884487e-8,0.0014836212427355765,-4.438471351759688e-5,3.723292906691934e-8,0.0014839495880320053,-4.434704884177869e-5,3.719700534277648e-8,0.0014842612053440878,-4.4227969750309367e-5,3.7101437221589655e-8,0.001484515578411819,-4.4044706083483356e-5,3.6959930289161086e-8,0.0014846818321571568,-4.383767436946015e-5,3.6802887599284104e-8,0.001484752665298912,-4.366282494601175e-5,3.6671649941767425e-8,0.0014847523079773632,-4.357345179251354e-5,3.6605110282143873e-8,0.0014847306685902028,-4.3598461730291396e-5,3.662379044416523e-8,0.0014847439416985908,-4.372996532663204e-5,3.672084767057359e-8,0.001484832455576805,-4.392834159757466e-5,3.6866053246575335e-8,0.0014850084524969315,-4.414052139172515e-5,3.701958292803764e-8,0.0014852579225742377,-4.4319394962506785e-5,3.7146574635816525e-8,0.00148555111690797,-4.443521318072178e-5,3.7225576915926685e-8,0.0014858540251273446,-4.447773434048518e-5,3.724992857383376e-8,0.0014861364543161625,-4.445270363925244e-5,3.722482225495067e-8,0.0014863760913723298,-4.437656318307988e-5,3.716309655277369e-8,0.0014865597532513933,-4.427164451826376e-5,3.708154822513582e-8,0.0014866832683675857,-4.4162460074345484e-5,3.699824191460888e-8,0.0014867508559287582,-4.407282323694022e-5,3.693054466535894e-8,0.0014867742340000237,-4.402339782503651e-5,3.68934712540527e-8,0.0014867713714220555,-4.402943420367354e-5,3.689807422058526e-8,0.0014867646564762282,-4.409867285281513e-5,3.6949844467746125e-8,0.0014867782740302412,-4.422973621937711e-5,3.7047415402730984e-8,0.0014868348754921309,-4.441152508594255e-5,3.718204520461165e-8,0.0014869519465962582,-4.462400182095811e-5,3.733824048865543e-8,0.0014871384186216602,-4.484053098879151e-5,3.749566462993671e-8,0.0014873921480441546,-4.5031733174503954e-5,3.7632239067973675e-8,0.0014876988747097991,-4.517047600970056e-5,3.772804673560034e-8,0.0014880330851069787,-4.5237407062414714e-5,3.776948065811721e-8,0.0014883611336936045,-4.522638867386191e-5,3.7753106366925946e-8,0.0014886470419661934,-4.5148829423299135e-5,3.768853679617695e-8,0.0014888610099375744,-4.503511107630251e-5,3.75991142701746e-8,0.0014889893734640611,-4.493078727593386e-5,3.7518833390943256e-8,0.0014890426802024238,-4.4885939658503095e-5,3.74844077895564e-8,0.0014890568559620368,-4.493900359979849e-5,3.752344755667185e-8,0.0014890836459080803,-4.5101175184416406e-5,3.7643181361237684e-8,0.001489172305795643,-4.535029512050693e-5,3.7826206234394064e-8,0.0014893513815948645,-4.5639131365739326e-5,3.803685162170241e-8,0.0014896203853677792,-4.591379586939746e-5,3.8234980089391865e-8,0.0014899543663838013,-4.613185728141613e-5,3.8389462478218916e-8,0.0014903162297077394,-4.6271946349084726e-5,3.848520377485263e-8,0.0014906691385107214,-4.6333741604474694e-5,3.852289537208366e-8,0.0014909844428688587,-4.6332267253878814e-5,3.851449641139075e-8,0.0014912446994979787,-4.629096295265064e-5,3.8477884251820716e-8,0.001491443475023993,-4.623604922293549e-5,3.843262815520471e-8,0.0014915838036451312,-4.61927449105687e-5,3.8397284898482245e-8,0.0014916764513131834,-4.618284796155863e-5,3.838776175182558e-8,0.0014917383357409837,-4.622298504810592e-5,3.8416126988273096e-8,0.0014917909428913139,-4.632303584535767e-5,3.848944739748476e-8,0.0014918583550758398,-4.648458412369112e-5,3.860856466449232e-8,0.0014919645095770773,-4.669969166698596e-5,3.8767106301308565e-8,0.001492129594339425,-4.695065290037247e-5,3.895130296913219e-8,0.0014923659795207224,-4.721144655663761e-5,3.914118664687933e-8,0.0014926745732702724,-4.745133715731877e-5,3.931347861780057e-8,0.0014930428020581202,-4.764050267803905e-5,3.944599080200351e-8,0.0014934453287540244,-4.77567381989998e-5,3.952272977792478e-8,0.0014938479976421455,-4.7791615726440825e-5,3.9538419803086526e-8,0.0014942145959709434,-4.775437268653611e-5,3.950114664854367e-8,0.0014945152548361581,-4.7672147717775885e-5,3.943216537025932e-8,0.0014947347496844735,-4.758571958330954e-5,3.936237614997539e-8,0.0014948784839529095,-4.754071729882442e-5,3.9325587712150906e-8,0.001494973688060228,-4.7575580700830986e-5,3.934960606065222e-8,0.001495063893699758,-4.7709339668887554e-5,3.9447410821275483e-8,0.0014951967819727924,-4.793386974666786e-5,3.961177012530231e-8,0.0014954089548056488,-4.82150113356529e-5,3.9816407071216556e-8,0.001495713972368483,-4.8503439552528306e-5,4.0024278257678855e-8,0.0014960992299929698,-4.875088216767253e-5,4.0199671339311314e-8,0.0014965325627533485,-4.892426755697233e-5,4.031863181757441e-8,0.0014969742965597005,-4.9012244353112056e-5,4.037361715514292e-8,0.0014973887060458133,-4.90234527916337e-5,4.037196030438772e-8,0.0014977509975768778,-4.897987925534544e-5,4.033069659995429e-8,0.0014980493699429142,-4.8909370842569586e-5,4.0270872530960104e-8,0.0014982838272042372,-4.8839785143966184e-5,4.0213214367086265e-8,0.0014984636893112296,-4.879533379597899e-5,4.017552829673121e-8,0.0014986050564438516,-4.879459745805125e-5,4.0171351190536136e-8,0.0014987286878216618,-4.884940264365551e-5,4.020917276631506e-8,0.0014988581486848397,-4.8963892845157507e-5,4.029171690125393e-8,0.0014990177337836207,-4.9133541633318104e-5,4.0415144161886566e-8,0.0014992296650089489,-4.934439725353427e-5,4.056846910653133e-8,0.0014995103608385159,-4.957328780427341e-5,4.073379081419653e-8,0.0014998661313054954,-4.978992849651283e-5,4.0888033317214166E-08,0.001500289438846751,-4.996169395570395e-5,4.100670227701081e-8,0.0015007575640223773,-5.00609271009138e-5,4.1069476582698656e-8,0.0015012354183340914,-5.0073132062903215e-5,4.106633523245191e-8,0.001501682931435136,-5.000313393611321e-5,4.10020124318666e-8,0.0015020653958463235,-4.9876318236111225e-5,4.089664152349184e-8,0.001502363510762478,-4.973362668651773e-5,4.078166708635209e-8,0.0015025796036362987,-4.9621359434477365e-5,4.06919240015438e-8,0.001502737788613337,-4.957881774687852e-5,4.0656280257301776e-8,0.0015028778851812186,-4.9627518948032364e-5,4.0689710099869005e-8,0.001503044775055048,-4.9765138003926926e-5,4.078912007859041e-8,0.001503276131990282,-4.9966042084288354e-5,4.093418214974257e-8,0.0015035921340975534,-5.0188522911167886e-5,4.109307745813918e-8,0.0015039904959644906,-5.038664086853307e-5,4.12314822617478e-8,0.0015044484479765602,-5.052272450607022e-5,4.1321828260849926e-8,0.0015049305867960681,-5.057627006151882e-5,4.1349724488542334e-8,0.0015053992671028003,-5.0546698588028124e-5,4.1315734395285215e-8,0.001505823682333701,-5.0450202162379264e-5,4.123276774522326e-8,0.0015061851264551991,-5.03131376162049e-5,4.1120991139124105e-8,0.00150647810650972,-5.0164985415371416e-5,4.100254562995308e-8,0.0015067085911635734,-5.003289045076868e-5,4.0897557578942296e-8,0.0015068910568689683,-4.9938339881018866e-5,4.0821788084939146e-8,0.0015070455081733843,-4.989557017837055e-5,4.078553560863914e-8,0.0015071949768719031,-4.991095762554463e-5,4.079319265895584e-8,0.0015073634330199596,-4.998270255847455e-5,4.0842964940455486e-8,0.001507573648758257,-5.0100484272582855e-5,4.092657881678172e-8,0.001507844474226869,-5.024531275080717e-5,4.1029213145852093E-08,0.0015081872475477102,-5.039029477878423e-5,4.113020982278904e-8,0.001508601639381369,-5.0503348351200574e-5,4.1205288990591655e-8,0.0015090721800536042,-5.0552825964399286e-5,4.123090271547341e-8,0.0015095677542445187,-5.051598845732162e-5,4.119061726808571e-8,0.0015100464398749296,-5.0388137396494456e-5,4.1081869583940654e-8,0.0015104661524490966,-5.0188150732697904e-5,4.091992886992478e-8,0.0015107980562968522,-4.995626598255443e-5,4.073597315450068e-8,0.0015110369884425087,-4.974323096834382e-5,4.056865503257804e-8,0.0015112037636235288,-4.9594689096187027e-5,4.0452143784550536e-8,0.0015113382538688342,-4.9537390122333774e-5,4.040571885063075e-8,0.001511486651518908,-4.9572491390367476e-5,4.0428949376900265e-8,0.0015116882343063284,-4.9677288522526345e-5,4.0503412055625985e-8,0.001511965832908493,-4.981328246977489e-5,4.0599203239587485e-8,0.0015123218678560742,-4.993712667865752e-5,4.0683458185044255e-8,0.0015127398774388951,-5.001120491259384e-5,4.072833176366586e-8,0.0015131902459503254,-5.0011430442294444e-5,4.0716651632460574e-8,0.0015136381639806527,-4.9930908725903795e-5,4.064433406034829e-8,0.0015140516272895985,-4.977923819466192e-5,4.051953249837382e-8,0.0015144075622012096,-4.9578319631606846e-5,4.035928102066704e-8,0.0015146949683276282,-4.9356355695184494e-5,4.0184938821169755e-8,0.0015149150502128804,-4.9141887980333486e-5,4.0017799643976816e-8,0.0015150791746275875,-4.895917584109024e-5,3.9875772118617474e-8,0.0015152057997848073,-4.8825388632539786e-5,3.977139653273003e-8,0.0015153173317295856,-4.874940504486354e-5,3.971098695425316e-8,0.0015154374095433952,-4.8731643689852686e-5,3.9694467703771245e-8,0.0015155886318726306,-4.876432642304724e-5,3.971551230211538e-8,0.0015157903988936615,-4.8831866635134174e-5,3.976183295261236e-8,0.0015160564336704537,-4.891150797550089e-5,3.9815759747989534e-8,0.001516391691608481,-4.8974788479225625e-5,3.985552106330658e-8,0.0015167888924818176,-4.899079602098747e-5,3.985786664037715e-8,0.0015172258993118245,-4.893217400965164e-5,3.9802659015735863e-8,0.0015176663030841539,-4.878381729040918e-5,3.967934665594565e-8,0.0015180658418397924,-4.855185669703154e-5,3.9493549812086156e-8,0.0015183852145058741,-4.8267882631723335e-5,3.927002879151628e-8,0.001518605245428821,-4.7983227159816685E-05,3.904816418536927e-8,0.0015187364109845078,-4.7752853667001454e-5,3.8869607112691156e-8,0.0015188162107197098,-4.76157007253304e-5,3.876330623471329e-8,0.0015188951081814535,-4.7581646967552716e-5,3.87356971621642e-8,0.0015190187423242043,-4.763095682004308e-5,3.877055536279872e-8,0.0015192148843438057,-4.7724206359166875e-5,3.883693164021174e-8,0.0015194889111096335,-4.7816122036906335e-5,3.890001525702813e-8,0.0015198265573875282,-4.78675190041975e-5,3.893034461914193e-8,0.0015202006147450764,-4.785267690604367e-5,3.8909281403952436e-8,0.0015205786058022936,-4.776206764521024e-5,3.883074987792664e-8,0.001520929655959892,-4.7601511265561416e-5,3.8700210594517606e-8,0.0015212297485279174,-4.73889457227636e-5,3.853192522081979e-8,0.001521464985636384,-4.714978616986874e-5,3.834534142739313e-8,0.001521632714070136,-4.691181862109943e-5,3.8161308626593714e-8,0.0015217407259916819,-4.6700544473304215e-5,3.7998737945680615e-8,0.001521805050737679,-4.653561112622005e-5,3.7872078917049705e-8,0.0015218469609350476,-4.6428620942574455e-5,3.77897496515343e-8,0.0015218898209953303,-4.638232433864213e-5,3.7753505077697286e-8,0.0015219562588472324,-4.63908829784902e-5,3.775855431522331e-8,0.0015220657852472567,-4.644073196168358e-5,3.779415592915643e-8,0.0015222326849345393,-4.6511768353575117e-5,3.78445580321092e-8,0.0015224639302797234,-4.6578917633677744e-5,3.789033821231449e-8,0.0015227569400496383,-4.6614434070743716e-5,3.791035015751786e-8,0.0015230973823843132,-4.659163295010869e-5,3.788469386599491e-8,0.0015234580899453059,-4.6490764418833046e-5,3.779915028577375e-8,0.0015238011301948635,-4.630679101973296e-5,3.765088713532935e-8,0.0015240852672769784,-4.6056717425461094e-5,3.7453737167092474e-8,0.001524279176362041,-4.578158370729293e-5,3.723946842777562e-8,0.0015243761207970313,-4.5537893273890615e-5,3.7051147789336374e-8,0.0015244012465784203,-4.537833811089991e-5,3.692846975976653e-8,0.0015244043069810233,-4.5330485030194646e-5,3.689159982476225e-8,0.001524440051851727,-4.5386093677926136e-5,3.693319329946158e-8,0.0015245475921702796,-4.550706901455292e-5,3.70231970685862e-8,0.001524739631177373,-4.564256280847005e-5,3.712221109997426e-8,0.0015250039821238194,-4.574645320979391e-5,3.719506196713576e-8,0.001525312469978232,-4.57880724817201e-5,3.7219009823727845e-8,0.0015256311465300198,-4.575529177708597e-5,3.71858758629502e-8,0.0015259283156329572,-4.5652460184988825e-5,3.710009588757813e-8,0.001526179490549331,-4.549604863952453e-5,3.697504333756095e-8,0.0015263698298762106,-4.5309863016883735e-5,3.682918922629797e-8,0.0015264948690534665,-4.5120549024834013e-5,3.668269874859717e-8,0.0015265600057452486,-4.495356643058214e-5,3.65545436819091e-8,0.0015265789603062382,-4.4829825029204026e-5,3.646015826369734e-8,0.0015265714591917814,-4.476317621887072e-5,3.640967597256171e-8,0.001526560393019653,-4.47588814097071e-5,3.6406785222506725e-8,0.0015265687425595057,-4.481319012855167e-5,3.6448328955322366e-8,0.001526616673386339,-4.491402171639455e-5,3.6524727155707175e-8,0.001526719088838322,-4.5042478706087005e-5,3.662110821247449e-8,0.001526883671120863,-4.517492388060347e-5,3.671899335520608e-8,0.001527109357997393,-4.528556689050531e-5,3.679846629243785e-8,0.0015273852648541443,-4.5349660451110904e-5,3.684080865883039e-8,0.0015276902649918051,-4.5347572784252786e-5,3.683168213824624e-8,0.0015279940023550515,-4.5269982630066084e-5,3.676496818810432e-8,0.001528260741500139,-4.5123660491407865e-5,3.664687940483986e-8,0.0015284573649040436,-4.493568923535388e-5,3.649883068748661e-8,0.0015285651819203082,-4.475224028990135e-5,3.6356268024786054e-8,0.001528591522529057,-4.462799322930828e-5,3.6260564495138095e-8,0.0015285733068809862,-4.4606708170989893e-5,3.6244339332635135e-8,0.0015285663015500417,-4.4701580903939586e-5,3.631667920617675e-8,0.001528623057978843,-4.4888075568297965e-5,3.645788182105769e-8,0.0015287721301055885,-4.511488889181742e-5,3.662804240559266e-8,0.0015290104785997134,-4.532567197125326e-5,3.678385405657058e-8,0.0015293104382067145,-4.547810886081325e-5,3.689331286542308e-8,0.0015296334898081117,-4.555238252513215e-5,3.6942127930790746e-8,0.0015299425822774475,-4.5549875508693376e-5,3.6932458321921016e-8,0.0015302094618059117,-4.5487012585997464e-5,3.687784149123152e-8,0.0015304173593234294,-4.538838777224406e-5,3.6797650641900755e-8,0.0015305608012845585,-4.5281191160702335e-5,3.6712741731269536e-8,0.0015306441945146152,-4.5191250244956506e-5,3.664253537729438e-8,0.0015306800306723414,-4.514019365633332e-5,3.660306514411148e-8,0.0015306868440561443,-4.5143317412885504e-5,3.660554118454364e-8,0.0015306868688130097,-4.5208046874071456e-5,3.665525950628058e-8,0.001530703372269813,-4.533304361844633e-5,3.675088279926432e-8,0.0015307577071024677,-4.550816475509205e-5,3.6884311766138235e-8,0.0015308663545292767,-4.5715530714938635e-5,3.7041438425744794e-8,0.001531038403461839,-4.5931705831679506e-5,3.7203859056823594e-8,0.0015312738096312358,-4.613076201647923e-5,3.7351380006003594e-8,0.001531562647587085,-4.628797631784266e-5,3.7465058196804165e-8,0.001531885540287841,-4.638388948223532e-5,3.753045447184219e-8,0.0015322154350115606,-4.6408424099129384e-5,3.75407624833672e-8,0.0015325210181051422,-4.636473481435046e-5,3.749952617090675e-8,0.0015327722562987192,-4.62720299113284e-5,3.742243109933671e-8,0.0015329482178092664,-4.616568661040811e-5,3.7337038635539955e-8,0.0015330459667584296,-4.60922941785365e-5,3.7278814888025735e-8,0.001533087023241133,-4.609795126881395e-5,3.728225619249699e-8,0.001533115983708838,-4.621153374983078e-5,3.736837190134323e-8,0.0015331876400693626,-4.643018459294151e-5,3.753391652633899e-8,0.0015333461088477486,-4.6716886718747485e-5,3.7749779963297116e-8,0.001533607077938741,-4.701413330082583e-5,3.797158062251958e-8,0.0015339536898771556,-4.7266463413301e-5,3.8156979046495933e-8,0.0015343469210881689,-4.7438804933053115e-5,3.827972461061156e-8,0.0015347420400233514,-4.7522609577066365e-5,3.833423468532848e-8,0.0015351018922789568,-4.75311913550837e-5,3.833175719045527e-8,0.0015354032268769953,-4.7490536847499134e-5,3.8293014468682244e-8,0.0015356372503282487,-4.7430749661384474e-5,3.8241437080403724e-8,0.0015358072060457936,-4.738020854009638e-5,3.819867181103716e-8,0.0015359252275494756,-4.736231090740194e-5,3.818223813016995e-8,0.0015360095332831896,-4.739380510817324e-5,3.820445815928393e-8,0.0015360820478136717,-4.748383499571379e-5,3.82718722773441e-8,0.001536166141831675,-4.763330834665019e-5,3.838478548063725e-8,0.001536284194639195,-4.783458629340891e-5,3.8536969464764897e-8,0.0015364548174580863,-4.8071792138992605e-5,3.871582755825761e-8,0.001536689888308331,-4.832221693893701e-5,3.890347256035087e-8,0.001536991949021952,-4.8559125680806725e-5,3.907898810591917e-8,0.0015373526882001662,-4.875585201501901e-5,3.9221757056841037E-08,0.0015377531409755225,-4.889068042494506e-5,3.931538272353313e-8,0.0015381659828674545,-4.895167436888976e-5,3.9351451406966635e-8,0.0015385598715198048,-4.894040830492917e-5,3.9332267184161023e-8,0.0015389053503828088,-4.887366805568127e-5,3.927184980018389e-8,0.0015391815674583567,-4.878238533919379e-5,3.919473310592367e-8,0.0015393827610044833,-4.870713902780217e-5,3.913220935194622e-8,0.001539522826925547,-4.868983638924286e-5,3.911586463438951e-8,0.001539635551012186,-4.8762258491063296e-5,3.916897922140672e-8,0.0015397681169518995,-4.893424373568861e-5,3.929783969200081e-8,0.0015399675307219867,-4.9186670824232385e-5,3.9486747633733346e-8,0.0015402639575685848,-4.94746582698892e-5,3.970072063670472e-8,0.001540658896768355,-4.974203898215638e-5,3.989665648604e-8,0.0015411250260262703,-4.9940960584229624e-5,4.0038309783718896e-8,0.0015416177088270302,-5.0046684404287795e-5,4.010752915400204e-8,0.0015420911707916128,-5.006124568783706e-5,4.010688682435594e-8,0.0015425111740769344,-5.000709715400226e-5,4.00545534176231e-8,0.0015428603593231258,-4.9916572907574924e-5,3.9975967592465016e-8,0.001543137348004615,-4.9822560505639655e-5,3.9896549730067413e-8,0.0015433527728847896,-4.9752685894152456e-5,3.983728353617607e-8,0.0015435248853113634,-4.972672630231794e-5,3.981289716560943e-8,0.0015436759860362377,-4.975595477250484e-5,3.9831537088095255e-8,0.0015438297952060482,-4.984325147671539e-5,3.989494979643839e-8,0.0015440093369692496,-4.998334813656624e-5,3.999866380557658e-8,0.0015442348151259754,-5.016309804535865e-5,4.013214246585282e-8,0.0015445211154071746,-5.0362121259628284e-5,4.027925529887606e-8,0.0015448749611662643,-5.055446980018576e-5,4.0419618992163206e-8,0.0015452923005028491,-5.071189862384606e-5,4.053125674762409e-8,0.0015457569800726891,-5.0808855828295383E-05,4.059460327889975e-8,0.0015462418900000286,-5.082850879931722e-5,4.059724221672877e-8,0.0015467132993301472,-5.076823346637892e-5,4.0538094268894254e-8,0.0015471380038922773,-5.064252614673594e-5,4.042945683138028e-8,0.0015474916360774626,-5.048174585710053e-5,4.0295709244955134e-8,0.0015477657624747324,-5.0326348408581844e-5,4.016852598729084e-8,0.0015479715584376128,-5.02176988612463e-5,4.00795759607021e-8,0.001548138675163666,-5.018759931395581e-5,4.0052468864238434e-8,0.001548309019173918,-5.0249167170106635e-5,4.0095999848332944e-8,0.001548526363415651,-5.039173011559901e-5,4.020064552392213e-8,0.001548824072026234,-5.0581979693915296e-5,4.033985817256759e-8,0.0015492146318262102,-5.0772290610955474e-5,4.047669746431854e-8,0.0015496851936439822,-5.091443598787875e-5,4.057438892398452e-8,0.001550201601146154,-5.0973893683465014e-5,4.0607169310144533e-8,0.001550719547427848,-5.093895551994056e-5,4.0567056747315524e-8,0.0015511979549022272,-5.082132789363123e-5,4.0464060310906736e-8,0.001551609085796503,-5.064930767517722e-5,4.032070429909841e-8,0.001551942485882253,-5.045777032215602e-5,4.0164179972009266e-8,0.001552203365741154,-5.027932903282667e-5,4.0019527762343134e-8,0.0015524080338778475,-5.0138911795649996e-5,3.990557662144009e-8,0.0015525789206599471,-5.005169954767954e-5,3.983352487266917e-8,0.0015527405622942454,-5.0023207216840704e-5,3.980713258549693e-8,0.001552916795278977,-5.005024771803662e-5,3.982350168918181e-8,0.0015531287739189376,-5.012197934084325e-5,3.987384769919168e-8,0.0015533932025365111,-5.022080731770897e-5,3.99441559610026e-8,0.0015537202826231122,-5.03234457482546e-5,4.0016025565273536e-8,0.0015541112665716941,-5.0402810390084915e-5,4.0068239562396716e-8,0.0015545561079804125,-5.0431489448755314e-5,4.007959506236113e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json new file mode 100644 index 00000000..c6ac9616 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":15000,"numberOfSamples":1000,"samples":[0.001555032396790159,-5.038717964716439e-5,4.003321453737454e-8,0.001555507240340409,-5.025945257220019e-5,3.992178064606655e-8,0.0015559433318249748,-5.005568561411016e-5,3.975199831316558e-8,0.0015563086828940746,-4.9802949292686764e-5,3.9545822083813816e-8,0.001556587031841404,-4.9543375923704664e-5,3.9336583092513e-8,0.0015567845028372617,-4.93232976794034e-5,3.9160317297773175e-8,0.0015569291408115862,-4.9179757456819175e-5,3.904518941710335e-8,0.0015570631279621951,-4.912957061070448e-5,3.90031151041951e-8,0.0015572306984882043,-4.916483994647903e-5,3.902661169621281e-8,0.0015574660511056152,-4.9255840502179806e-5,3.9091477245714126e-8,0.0015577847760354089,-4.9359606772293576e-5,3.9163823082464017e-8,0.001558180685115808,-4.943135773630568e-5,3.920908834205859e-8,0.0015586283968716341,-4.943566203060656e-5,3.920059314584998e-8,0.0015590906701226305,-4.9354497209498185e-5,3.9125494924869697e-8,0.001559528261058972,-4.919020584318819e-5,3.8986728207848124e-8,0.0015599093591160292,-4.896289913685733e-5,3.880070214408021e-8,0.0015602159244718476,-4.870367300374791e-5,3.8591890031225615e-8,0.001560445583043622,-4.844627081761637e-5,3.838637217885279e-8,0.0015606095190522666,-4.821988699048854e-5,3.8206389463064e-8,0.001560728059333107,-4.80447105719932e-5,3.8067072967328046e-8,0.0015608258215469178,-4.7930366808124216e-5,3.797538689472998e-8,0.0015609276655558022,-4.787644642721989e-5,3.793059714039383e-8,0.0015610558505919753,-4.7874043041353836e-5,3.792543115973339e-8,0.0015612281647851558,-4.7907464781617856e-5,3.794734148986789e-8,0.0015614564996265033,-4.795579391508165e-5,3.797969902153523e-8,0.0015617453775785114,-4.7994480662788104e-5,3.8003106795686565e-8,0.001562090231917282,-4.799751763502489e-5,3.7997236526191586e-8,0.0015624757732016965,-4.7940913074933274e-5,3.7943666553683704e-8,0.0015628755385377238,-4.780797264952134e-5,3.783002608138753e-8,0.0015632543909054244,-4.759591895225801e-5,3.765503864336205e-8,0.0015635755508337965,-4.7321569326116703e-5,3.743272490582087e-8,0.0015638118247210714,-4.702212301492192e-5,3.719276938020053e-8,0.0015639572183669657,-4.674759666086147e-5,3.697442350326965e-8,0.0015640325431972783,-4.654548661616456e-5,3.681443353406246e-8,0.0015640803149591668,-4.644389332460276e-5,3.673389012822279e-8,0.0015641503210691414,-4.644165242496307e-5,3.673070606589074e-8,0.0015642829369577056,-4.651013021168292e-5,3.678135043023996e-8,0.0015644977495392904,-4.660446073429612e-5,3.685000664095114e-8,0.001564790749643378,-4.6677917336542896e-5,3.6900071652951433e-8,0.001565138707406003,-4.66938238368795e-5,3.690350083708066e-8,0.0015655073435626183,-4.663241657433939e-5,3.6845954665167155e-8,0.0015658602190323327,-4.649255514773499e-5,3.672776169544263e-8,0.0015661663607259592,-4.628936931980565e-5,3.656170224679889e-8,0.0015664055799049252,-4.6049225283354464e-5,3.636883604376693e-8,0.001566571002171141,-4.580336936715299e-5,3.6173502381504967e-8,0.0015666687673390187,-4.558160277952096e-5,3.599852488215996e-8,0.0015667154033415197,-4.5407215387777025e-5,3.586148463513818e-8,0.0015667338355941623,-4.529393320932333e-5,3.577253994149994e-8,0.0015667490993197454,-4.524500274399756e-5,3.573380667359368e-8,0.0015667846174289822,-4.5254024907903564e-5,3.57399848967389e-8,0.001566859497029681,-4.5306834496840176e-5,3.5779734964378544e-8,0.0015669868024443458,-4.5383715412729446e-5,3.583733887760147e-8,0.001567172455798627,-4.546158479647085e-5,3.5894430294282084e-8,0.0015674144103284765,-4.551618411695069e-5,3.593183701499408e-8,0.001567701899164982,-4.5524599621765035e-5,3.593172347162997e-8,0.0015680149455750063,-4.5468646452923546e-5,3.588034316011282e-8,0.001568325023881159,-4.533952995396979e-5,3.577163595791014e-8,0.001568598375261144,-4.514331996072684e-5,3.561129614715066e-8,0.0015688033307539359,-4.490516831986402e-5,3.5419775786897466e-8,0.0015689213635770478,-4.4668520678280764e-5,3.5231422956829793e-8,0.0015689580930293371,-4.448560774152507e-5,3.508694038347068e-8,0.001568947072838441,-4.439966029933874e-5,3.501951652065551e-8,0.0015689406813127415,-4.442653532989222e-5,3.5040594280255434e-8,0.0015689905208410501,-4.454694343553021e-5,3.5134005465375e-8,0.0015691279470960945,-4.471462114836585e-5,3.526264408522862e-8,0.001569355167197491,-4.4874982251366504e-5,3.5383351783517066e-8,0.0015696491590304815,-4.498328840192346e-5,3.5461324901144965e-8,0.0015699730086184231,-4.5014843868502684e-5,3.547806086334234e-8,0.0015702878466824224,-4.496644962533722e-5,3.5432227789964445e-8,0.0015705615045717492,-4.48522455988792e-5,3.5336015448358164e-8,0.0015707731361774711,-4.469737825179658e-5,3.520983386424041e-8,0.0015709146371371892,-4.453167337270511e-5,3.507720338549927e-8,0.0015709899450492496,-4.4384204168804375e-5,3.4960569188722246e-8,0.0015710129446352492,-4.427899769327988e-5,3.487815813513884e-8,0.0015710044338982897,-4.4232035758685976e-5,3.484187409746818e-8,0.0015709885901114629,-4.424966839076787e-5,3.48562113954969e-8,0.0015709893763831153,-4.4328433769242266e-5,3.491813422291662e-8,0.0015710273252120134,-4.4456174728882454e-5,3.501786728147512e-8,0.001571117095259444,-4.4614146603934006e-5,3.514044529398255e-8,0.0015712659471281585,-4.4779625550250765e-5,3.526772890807883e-8,0.0015714729990209998,-4.492865339998087e-5,3.5380643711257126e-8,0.0015717290886569444,-4.503882672267935e-5,3.5461540303863484e-8,0.0015720171486412,-4.509218250304847e-5,3.549662088853352e-8,0.0015723131710548195,-4.507838065681111e-5,3.547847663955526e-8,0.0015725883317389549,-4.499835421555663e-5,3.540880348366659e-8,0.001572813307826608,-4.486786800809496e-5,3.5300892636416496e-8,0.0015729655070056204,-4.47191603474519e-5,3.518058646081875e-8,0.0015730384980441499,-4.459776227937817e-5,3.5083578249073555e-8,0.0015730502214990328,-4.4551776967474605e-5,3.504702004926623e-8,0.0015730436787471955,-4.461436338745037e-5,3.5095992048822466e-8,0.0015730749295945277,-4.478695231412046e-5,3.5230609633398364e-8,0.00157319126570817,-4.5034672737442647e-5,3.542266299781257e-8,0.0015734115792861226,-4.529940702276995e-5,3.562602881073632e-8,0.0015737208148722149,-4.552319788898638e-5,3.5795178558746185e-8,0.0015740799139331147,-4.5667994072365434e-5,3.590075376760617e-8,0.0015744426094396393,-4.572297761098429e-5,3.593523410445762e-8,0.0015747694654922382,-4.570060260613509e-5,3.5909545233455296e-8,0.0015750350883362262,-4.56275210357777e-5,3.584556214181634e-8,0.0015752294134122743,-4.5535604842148e-5,3.576877953266378e-8,0.0015753556604648073,-4.545534529408837e-5,3.5703062165524755e-8,0.0015754271119554817,-4.541175214597163e-5,3.566756900441209e-8,0.0015754637850900197,-4.5422021566715475e-5,3.567516845886349e-8,0.0015754892419881964,-4.549435685857388e-5,3.5731726192643936e-8,0.0015755275323007985,-4.562767745693644e-5,3.5835969133508226e-8,0.0015756002822981585,-4.581213815904196e-5,3.597985887669808e-8,0.0015757240290649212,-4.603051129355547e-5,3.6149580268519345e-8,0.0015759080778055216,-4.626046736804536e-5,3.632726928230143e-8,0.0015761532032229398,-4.6477532670966515e-5,3.6493374497356665e-8,0.0015764513190264005,-4.66583682351069e-5,3.662937540080888e-8,0.0015767861221216862,-4.6784116146357104e-5,3.67205887315865e-8,0.0015771347357232419,-4.6843579857850895e-5,3.6758772560147956e-8,0.0015774703483009739,-4.683599304438294e-5,3.67442426941251e-8,0.0015777659552356682,-4.677317302149219e-5,3.66873186351272e-8,0.0015779995237324785,-4.668049190430199e-5,3.660873387655922e-8,0.0015781605555831091,-4.659528839149842e-5,3.6538079166891776e-8,0.0015782567852510353,-4.656091594072024e-5,3.650901070819981e-8,0.0015783179633283798,-4.6615418475760236e-5,3.655049543919046e-8,0.0015783922903835324,-4.677665068892878e-5,3.667544840847755e-8,0.0015785325756434202,-4.703036852583066e-5,3.687171431896692e-8,0.0015787756427616659,-4.733035159097787e-5,3.7102367094230025e-8,0.0015791259181678027,-4.761430923312568e-5,3.731827295238525e-8,0.0015795538411506713,-4.7828037828527396e-5,3.747709330858676e-8,0.0015800096969891477,-4.7943878769038486E-05,3.7557792145692596e-8,0.0015804431624417705,-4.796481847401571e-5,3.756375094216574e-8,0.0015808178057632656,-4.791635491291735e-5,3.7516101368887467e-8,0.0015811164141571583,-4.783405291768669e-5,3.744360223405161e-8,0.0015813392677104443,-4.775314048922322e-5,3.737423693485045e-8,0.0015814993203580124,-4.7702326404354844e-5,3.733035174588052e-8,0.0015816171643790661,-4.7701193814970105e-5,3.7326791516613286e-8,0.0015817169630395575,-4.775965776778595e-5,3.737071389079256e-8,0.001581823347515752,-4.787832470052812e-5,3.7462041637598934e-8,0.0015819588828547596,-4.8049258257063996e-5,3.7594106726625155e-8,0.0015821417963573898,-4.8257082895207296e-5,3.775446258471748e-8,0.0015823838479101892,-4.848060164321304e-5,3.792608585212836e-8,0.001582688504544025,-4.869520808633535e-5,3.8089269531459865e-8,0.0015830498625370153,-4.887615170356731e-5,3.822428825087552e-8,0.0015834527637300596,-4.9002351733972964e-5,3.8314560752223585e-8,0.0015838743628422021,-4.906026034512833e-5,3.834982706901485e-8,0.001584287221216587,-4.904715037019271e-5,3.832875105474419e-8,0.001584663741938823,-4.897310145628491e-5,3.826032241557493e-8,0.001584981463061841,-4.8861079857009655e-5,3.8163607031293117e-8,0.0015852285820703014,-4.874466991235223e-5,3.8065608345197424e-8,0.0015854088600154176,-4.8662962215500585e-5,3.7997004979177486e-8,0.0015855444217866606,-4.86522846509656e-5,3.798563784368472e-8,0.001585674261819128,-4.8735533803462465e-5,3.804836085608511e-8,0.001585846375312292,-4.891189807186035e-5,3.818334234181005e-8,0.00158610348310477,-4.9151982596995845e-5,3.836657757562266e-8,0.001586466654834368,-4.9403489989380824e-5,3.8556531405909456e-8,0.0015869251102463237,-4.960807810621859e-5,3.870740581132169e-8,0.0015874391429179613,-4.9722343633764594e-5,3.8785587350351096e-8,0.0015879553631793688,-4.973190214442801e-5,3.878064452942808e-8,0.001588425577199708,-4.9652024693980827e-5,3.870567071163837e-8,0.00158881977381429,-4.951725979120483e-5,3.8588846273972866e-8,0.0015891295065786543,-4.936775952074638e-5,3.84623889278333e-8,0.001589364066660281,-4.9238715531157035e-5,3.8354092314337146e-8,0.001589543909685928,-4.9154994199223596e-5,3.8283168581558065e-8,0.0015896945618050432,-4.9129902713118106e-5,3.825948659678869e-8,0.0015898422153512498,-4.916611627099987e-5,3.8284520145138256e-8,0.001590010859028341,-4.925727610695112e-5,3.8352726691160195e-8,0.0015902202966968217,-4.938958761833569e-5,3.845280876708773e-8,0.0015904844846205953,-4.954336749390981e-5,3.8568874325898195e-8,0.0015908099083882816,-4.969485381752708e-5,3.868182932013065e-8,0.0015911941068452644,-4.98187279964764e-5,3.8771413773902485e-8,0.0015916248545581027,-4.989160905264646e-5,3.881908380631811e-8,0.0015920807276100831,-4.9896318601345885e-5,3.881152013111638e-8,0.0015925336582621405,-4.982618528736371e-5,3.874409592893164e-8,0.0015929536328127007,-4.9688213379708714e-5,3.862330576383604e-8,0.0015933149629505758,-4.950379940089145e-5,3.846710078351864e-8,0.001593602808933612,-4.930610263244153e-5,3.830248200720968e-8,0.0015938182399501703,-4.913404445176729e-5,3.8160453318297506e-8,0.0015939802243672306,-4.902380951458289e-5,3.806916042959481e-8,0.0015941233988982489,-4.899946750049259e-5,3.8046581250505863e-8,0.0015942911880484664,-4.906498251129774e-5,3.80945375169188e-8,0.0015945249563040758,-4.920032285756388e-5,3.8196040630227036e-8,0.0015948515164234465,-4.9364207196608636e-5,3.8317796980507725e-8,0.001595273159867582,-4.950449066879408e-5,3.841854809931519e-8,0.0015957650230228916,-4.9573895929635576e-5,3.846143646287539e-8,0.0015962822947114133,-4.954513058246872e-5,3.842577890144347e-8,0.0015967748230214939,-4.941856956430488e-5,3.8312929742037596e-8,0.001597202494943064,-4.921934317902047e-5,3.814375061431865e-8,0.0015975448239908775,-4.898645979137916e-5,3.794978155712491e-8,0.0015978022649466863,-4.876005227964857e-5,3.7762998553756675e-8,0.0015979913135114392,-4.85719625681952e-5,3.76083609760703e-8,0.0015981373497028673,-4.84414879329937e-5,3.750059586381275e-8,0.0015982682896983585,-4.837523496803743e-5,3.744429677813117e-8,0.0015984102235238262,-4.8369073369492696e-5,3.743563223650375e-8,0.0015985848577516198,-4.8410619737028296e-5,3.746436079232389e-8,0.0015988080578801715,-4.848147621960483e-5,3.751556089859576e-8,0.0015990887787054714,-4.8559129023742496e-5,3.7571077107145096e-8,0.0015994279675657184,-4.861890144868653e-5,3.761106919377434e-8,0.0015998175105410416,-4.8636534469734454e-5,3.761614354464905e-8,0.0016002397772522405,-4.859177185400766e-5,3.757032802152641e-8,0.0016006686543139628,-4.84728413566226e-5,3.74647259539885e-8,0.0016010729910405593,-4.828097347843213e-5,3.7301095421887124e-8,0.0016014227983081818,-4.8033231546302496e-5,3.709395135898375e-8,0.0016016972164009232,-4.776158920159305e-5,3.686957478771082e-8,0.001601891799677878,-4.750708267512769e-5,3.6661070725469196e-8,0.0016020220967839574,-4.730984733590426e-5,3.65002268054441e-8,0.0016021214376728508,-4.7197895387483466e-5,3.640855159267248e-8,0.0016022329539292035,-4.7178441191331395e-5,3.6390568883612766e-8,0.001602398098868516,-4.723486700987873e-5,3.64317778525816e-8,0.0016026451775172069,-4.7330459524417435e-5,3.6502037536061675e-8,0.0016029812826023223,-4.741790311922242e-5,3.6563402100527594e-8,0.0016033900211863004,-4.7451924030049034e-5,3.658023478305435e-8,0.0016038359142873748,-4.7401493578198037e-5,3.65287527576269e-8,0.0016042743565764664,-4.725778830099e-5,3.6403069368047857e-8,0.0016046639296792753,-4.703526837810497e-5,3.621574128865795e-8,0.0016049768310006606,-4.676579911472799e-5,3.599284252644777e-8,0.0016052041001474093,-4.6488499312397777e-5,3.576575444073776e-8,0.0016053547788864799,-4.623936983449527e-5,3.556292473478258e-8,0.0016054506685802667,-4.604404725371659e-5,3.540424269592429e-8,0.00160551955904301,-4.591491456251917e-5,3.529894528530359e-8,0.0016055893304846428,-4.585176544402924e-5,3.5246319584402404e-8,0.0016056839738281931,-4.584435487657563e-5,3.523780378361235e-8,0.0016058214226180075,-4.58754099005351e-5,3.525934967930275e-8,0.0016060125662822487,-4.5923316964371105e-5,3.5293484731850514e-8,0.0016062607469574757,-4.5964330399595076e-5,3.5321033008763995e-8,0.0016065612721366269,-4.597465556251913e-5,3.5322825752794e-8,0.001606900939181552,-4.5932990607520925e-5,3.528185027009399e-8,0.0016072580949436541,-4.582396800827508e-5,3.518611857277115e-8,0.0016076041773001588,-4.564246758849356e-5,3.503214741997083e-8,0.001607907835484071,-4.539791130326102e-5,3.482829369055841e-8,0.001608142149154005,-4.511646354493401e-5,3.4596304332457856e-8,0.0016082937279128775,-4.483839603063741e-5,3.4368956580540236e-8,0.001608370164011681,-4.460905850485839e-5,3.418262319337986e-8,0.0016084013367679887,-4.4465215778220584e-5,3.4066244784300986e-8,0.0016084321421592992,-4.442209614898366e-5,3.4031040378216796e-8,0.0016085087032214472,-4.4467328910789975e-5,3.406590890538271e-8,0.001608663854204168,-4.4564751128790306e-5,3.414084287148784e-8,0.0016089078261996121,-4.466603533873435e-5,3.4216585652257157e-8,0.0016092268749752002,-4.472491235101269e-5,3.425621097733665e-8,0.0016095888815234746,-4.470896660568734e-5,3.4234524970492415e-8,0.00160995294459917,-4.46061700180591e-5,3.414304169545714e-8,0.0016102797685153603,-4.442554150736995e-5,3.39901449867369e-8,0.001610540291413511,-4.41928249660299e-5,3.379729090404697e-8,0.001610720877149768,-4.3942959524330366e-5,3.3592785051752095e-8,0.0016108243718107255,-4.3711535533740247e-5,3.340493987008991e-8,0.0016108673896750982,-4.352740556905542e-5,3.325631883018611e-8,0.0016108751528596623,-4.340803798367828e-5,3.31602500419108e-8,0.0016108756639389974,-4.3358117340029234e-5,3.31199083561361e-8,0.00161089471982018,-4.33708154841172e-5,3.312942713946964e-8,0.0016109525410755215,-4.34306101333567e-5,3.317612870807587e-8,0.0016110620470242626,-4.351655218140907e-5,3.3243045504261954e-8,0.001611228317562383,-4.360524372648092e-5,3.331122931252226e-8,0.0016114486396584151,-4.367330914275547e-5,3.336174083792286e-8,0.0016117127150576606,-4.3699607289291936e-5,3.33775293772246e-8,0.0016120029665654158,-4.366764384768521e-5,3.3345510827283086e-8,0.0016122953248352881,-4.35685848202546e-5,3.3259070099345036e-8,0.0016125613483437497,-4.340490324202378e-5,3.312093756709973e-8,0.0016127727551766623,-4.319382193216696e-5,3.294576076085041e-8,0.0016129088996316033,-4.296843215561775e-5,3.276074107332174e-8,0.0016129659137071207,-4.277350269527232e-5,3.260204841704383e-8,0.0016129634518711477,-4.2654123502679954e-5,3.250560511019986e-8,0.0016129434192342419,-4.263951160928507e-5,3.249413087936494e-8,0.0016129578689934336,-4.272950726670111e-5,3.25664702196115e-8,0.001613050232896208,-4.2892278302879625e-5,3.2696007974918103e-8,0.0016132395138366183,-4.307566567224347e-5,3.2840080832235315e-8,0.0016135153781361821,-4.3225967007183096e-5,3.295532521363271e-8,0.0016138447598283675,-4.330446141592195e-5,3.3011068605873004e-8,0.0016141845061787268,-4.329558915141256e-5,3.299579503566333e-8,0.0016144937858859182,-4.320654916003372e-5,3.29165093334752e-8,0.0016147426836319956,-4.3061418898431364e-5,3.2793617549553344e-8,0.0016149162538619413,-4.28932148940195e-5,3.2654235700933185e-8,0.0016150148382885333,-4.273622151749938e-5,3.252591778532962e-8,0.0016150517857130536,-4.261972946654225e-5,3.243173477682972e-8,0.001615049514803641,-4.256367933918242e-5,3.238701919898679e-8,0.0016150347633862986,-4.2576490174574447e-5,3.239787068664833e-8,0.0016150339039934956,-4.265505690214593e-5,3.24613058418649e-8,0.0016150690590622733,-4.278649690659109e-5,3.2566675877575025e-8,0.0016151554483356746,-4.2951022505443604e-5,3.269788817933618e-8,0.0016153001048231429,-4.312527285417708e-5,3.283598386574173e-8,0.0016155017602802555,-4.328548587995333e-5,3.2961656880308e-8,0.0016157514557302796,-4.3410193344149555e-5,3.305749480030836e-8,0.0016160335151886938,-4.348253336100209e-5,3.310998203842222e-8,0.0016163267962227231,-4.3492450229067064e-5,3.311139396130571e-8,0.001616606420595729,-4.343902077762299e-5,3.306167660919614e-8,0.001616846570836147,-4.3332918110579625e-5,3.297027424956425e-8,0.0016170251774682734,-4.319829401359851e-5,3.285736904569684e-8,0.0016171308087405997,-4.307222907662207e-5,3.2753160720529384e-8,0.0016171704476762414,-4.299915965162309e-5,3.2693234113441636e-8,0.0016171742841552047,-4.301865193973153e-5,3.2708769773927315e-8,0.0016171918923307148,-4.314894035091985e-5,3.281350053431754e-8,0.0016172768691222427,-4.337450691395369e-5,3.299396166424684e-8,0.0016174652144145727,-4.364756211844907e-5,3.321089173978478e-8,0.0016177597932134746,-4.390561146011057e-5,3.341354613711286e-8,0.0016181304852361284,-4.4095543629212986e-5,3.3559243265705895e-8,0.0016185284692897027,-4.4190547319258514e-5,3.362705585213057e-8,0.0016189045522376445,-4.4193243891010715e-5,3.362020601659291e-8,0.0016192223969067512,-4.412817824935237e-5,3.355967969498163e-8,0.0016194638193470891,-4.403063195720452e-5,3.34748138358053e-8,0.0016196280163832983,-4.393679585500097e-5,3.339511192107193e-8,0.0016197277267549035,-4.3877154423368346e-5,3.334489133236136e-8,0.0016197845593948158,-4.387287847418416e-5,3.334056960624522e-8,0.0016198245204375643,-4.3934319125600074e-5,3.3389732573910446e-8,0.0016198739737394417,-4.4060948688515964e-5,3.3491313790702704e-8,0.001619956137050907,-4.424248547766236e-5,3.3636593203828094e-8,0.0016200882954145463,-4.4460987523551896e-5,3.381084517949932e-8,0.0016202798937417601,-4.469366279624242e-5,3.399550450501883e-8,0.0016205316675254457,-4.4916122131234496e-5,3.417072218106146e-8,0.0016208358841783572,-4.51056635939364e-5,3.431804144775011e-8,0.0016211775123474187,-4.524417861154815e-5,3.442285758382958e-8,0.0016215360341788234,-4.532053562216261e-5,3.447647579529873e-8,0.0016218877589150979,-4.5332465127465866e-5,3.4477688314315185e-8,0.0016222086413283134,-4.528794941479019e-5,3.4433800071019065e-8,0.0016224777898770169,-4.520602795248432e-5,3.436102856785716e-8,0.0016226820080681198,-4.511649275684907e-5,3.428394416218811e-8,0.0016228212897336288,-4.505716598228851e-5,3.423303906504118e-8,0.0016229139005976808,-4.50670885186496e-5,3.423920259833186e-8,0.0016229978830992289,-4.51749217202737e-5,3.432456868826437e-8,0.0016231246866747196,-4.538503437297744e-5,3.449162408965321e-8,0.0016233428870291516,-4.566853319778398e-5,3.4716252957965794e-8,0.0016236772248806965,-4.596812991238768e-5,3.495178509204106e-8,0.0016241152647686152,-4.621869465816446e-5,3.514559949367053e-8,0.0016246116056889723,-4.637312377459764e-5,3.526003661180751e-8,0.0016251072872445914,-4.6418152194176277e-5,3.5285198490338464e-8,0.0016255516901675028,-4.637296697358738e-5,3.523771443245092e-8,0.0016259155653828902,-4.627592173555477e-5,3.5149685697300395e-8,0.0016261928281600965,-4.616943668607092e-5,3.5056106184870745e-8,0.0016263953747431522,-4.608946050777786e-5,3.4986134383754507e-8,0.00162654592076792,-4.606055522365073e-5,3.4959174040392114e-8,0.0016266717530924076,-4.6094961601108544e-5,3.498436583192719e-8,0.0016268002162611959,-4.619362578856872e-5,3.506170277704274e-8,0.0016269555762756986,-4.6347898809298577e-5,3.5183591772346576e-8,0.0016271567027249208,-4.654151467710764e-5,3.533649211716943e-8,0.0016274153179251607,-4.675286847043376e-5,3.550269075582101e-8,0.0016277348011426761,-4.695766887346226e-5,3.566236234788382e-8,0.0016281097039318963,-4.7132008983412574e-5,3.5796030279421156e-8,0.0016285262644494334,-4.7255678611228e-5,3.5887315314142226e-8,0.001628964073625187,-4.731526564371127e-5,3.5925567937765023E-08,0.0016293987695045343,-4.7306594472402196e-5,3.5907931482636357e-8,0.0016298055166128098,-4.723617482978707e-5,3.5840485560798704e-8,0.0016301629750232944,-4.7121376003895105e-5,3.573820180050115e-8,0.0016304574112304933,-4.698912835410786e-5,3.562359354313474e-8,0.001630686636381212,-4.687296006046646e-5,3.552402309108488e-8,0.001630863266571223,-4.6807921698255846e-5,3.546744809793738e-8,0.001631016074302961,-4.6822961021669483e-5,3.5476346222796364e-8,0.0016311873490471736,-4.6931285427303824e-5,3.556023149782128e-8,0.0016314241196807519,-4.712134705140385e-5,3.570874980570606e-8,0.0016317631244090534,-4.7353656267366736e-5,3.5889370924150126e-8,0.0016322143049490748,-4.756904084464057e-5,3.605411987293246e-8,0.0016327523237028758,-4.770869469055887e-5,3.615570802256036e-8,0.001633323721960312,-4.7737093003807625e-5,3.616600609540491e-8,0.0016338673630050457,-4.7654512699828896e-5,3.608614967055138e-8,0.0016343363161102794,-4.7492623882838964e-5,3.59428498486487e-8,0.0016347097760828822,-4.729839554612501e-5,3.577507367476015e-8,0.0016349924051370127,-4.7117130386448616e-5,3.5619987353530545e-8,0.0016352061343948639,-4.6981902350859326e-5,3.550426387925348e-8,0.0016353807083681227,-4.691028273741784e-5,3.544154910868567e-8,0.0016355464804455415,-4.690570628738172e-5,3.543383998937961e-8,0.001635730112170018,-4.696057989449839e-5,3.5474262687520425e-8,0.0016359523601496132,-4.705941012943231e-5,3.5549738432914185e-8,0.0016362269041772656,-4.718145036852111e-5,3.56431208201011e-8,0.0016365595879771274,-4.730304536267612e-5,3.5735016865504467e-8,0.0016369478987237219,-4.7400035126582016e-5,3.58056778292684e-8,0.0016373808483354118,-4.7450543227840547e-5,3.583728050603426e-8,0.0016378397017732427,-4.7438197284311285e-5,3.581663456998011e-8,0.0016383000265438497,-4.7355354305080354e-5,3.573790790644766e-8,0.001638735210162438,-4.720557229499285e-5,3.5604668453241686e-8,0.0016391211394910926,-4.700451726643738e-5,3.5430520082254106e-8,0.001639441306452008,-4.6778640180967995e-5,3.5237790208829276e-8,0.0016396912690668532,-4.6561377647454084e-5,3.5054142350092676e-8,0.0016398813658379573,-4.63872399230719e-5,3.490753406266736e-8,0.0016400368292994823,-4.628458200577974e-5,3.4820292858860436e-8,0.0016401946504560447,-4.6268117996810935e-5,3.480322538106792e-8,0.0016403967479677747,-4.6332728578918845e-5,3.485095674241419e-8,0.001640679685853359,-4.645083249127904e-5,3.494018708827335e-8,0.0016410627568417529,-4.657595311703952e-5,3.5032828146860476e-8,0.0016415385136823188,-4.665404102506928e-5,3.5085209016852697e-8,0.0016420712361589218,-4.6640593747802424e-5,3.506183028304087e-8,0.0016426066758982037,-4.651680204060536e-5,3.49483030632206e-8,0.0016430902029990438,-4.6296213477060036e-5,3.4756616314912035e-8,0.0016434846325752775,-4.601807762842053e-5,3.451956176891535e-8,0.0016437792010674768,-4.573164001443794e-5,3.4277753576294015e-8,0.0016439873944463735,-4.5480182565328244e-5,3.406648234300473e-8,0.0016441377649539473,-4.5291435015766347e-5,3.390791520498886e-8,0.0016442637177816871,-4.517553440841134e-5,3.38096166616314e-8,0.0016443960339398652,-4.512789702654878e-5,3.376713660815342e-8,0.0016445588953631549,-4.5133752929414504e-5,3.3767884966551584e-8,0.0016447684565497988,-4.517231429766106e-5,3.3794572068923304e-8,0.001645032669366525,-4.521994135279829e-5,3.382772789479797e-8,0.0016453514524502528,-4.5252519765481794e-5,3.3847558228796395e-8,0.0016457168505185967,-4.524759349498278e-5,3.38356608525806e-8,0.001646113327512554,-4.51867851078022e-5,3.3777059144320585e-8,0.0016465187233436285,-4.5058731090684236e-5,3.366270182651552e-8,0.0016469065595708819,-4.4862213010709696e-5,3.349209230451183e-8,0.0016472501485759548,-4.460855757214049e-5,3.327522050357837e-8,0.0016475282892311342,-4.43219688174928e-5,3.303267631530774e-8,0.001647731361928809,-4.40365769207798e-5,3.279298525555044e-8,0.0016478658173717641,-4.378990661504161e-5,3.2587010223876336e-8,0.001647955012278325,-4.361395560197095e-5,3.244050743190803e-8,0.0016480353368982224,-4.352634140384957e-5,3.236693816783387e-8,0.0016481481573200063,-4.352430208745986e-5,3.236282743263174e-8,0.0016483294908475749,-4.358362185466893e-5,3.240727442369534e-8,0.001648600066709863,-4.366323577305269e-5,3.2466074614676396e-8,0.0016489585077819739,-4.371486073861877e-5,3.249977289857885e-8,0.0016493799815096145,-4.369565905864213e-5,3.247396466644824e-8,0.0016498216574363398,-4.35805854427313e-5,3.236916312326058e-8,0.0016502342591044501,-4.337016148742985e-5,3.2186868815840264e-8,0.0016505762173780565,-4.309020706568123e-5,3.194909432152713e-8,0.0016508250968513124,-4.278317246005813e-5,3.1691092721698956e-8,0.0016509819009967624,-4.24946924788503e-5,3.1450271221881416e-8,0.0016510674183862332,-4.226105950962592e-5,3.125597438215787e-8,0.0016511135338679924,-4.210202576888828e-5,3.112374663814163e-8,0.0016511538874274358,-4.201993406387043e-5,3.105483497910188e-8,0.0016512170388640625,-4.200324771532353e-5,3.1039256218679945e-8,0.0016513230147448136,-4.2031673250908966e-5,3.106005739207479e-8,0.0016514824899899535,-4.2080862105879425e-5,3.109711887696447e-8,0.0016516973653265966,-4.212590433392133e-5,3.1129923067476226e-8,0.001651961729402234,-4.214373526750093e-5,3.113947244255304e-8,0.001652262709403183,-4.2115034434587586e-5,3.11098777670916e-8,0.001652581282236162,-4.20262355409554e-5,3.103010807540562e-8,0.001652893563089459,-4.1871968498026697e-5,3.089609413234407e-8,0.0016531733119630543,-4.165773999853627e-5,3.071294747399099e-8,0.001653396304072018,-4.1401950749318465e-5,3.0496512296258735e-8,0.0016535465337220673,-4.113559677284715e-5,3.027291157231968e-8,0.00165362283822673,-4.08978653952933e-5,3.007468972951524e-8,0.001653643051829214,-4.072709688518788e-5,2.993320892854408e-8,0.0016536425379715574,-4.064915069866908e-5,2.986905479463843e-8,0.0016536658656256423,-4.0667642322225216e-5,2.988415848613424e-8,0.0016537538623654171,-4.076077998128367e-5,2.995949305378407e-8,0.0016539310239152949,-4.088682206365838e-5,3.0059909699632935e-8,0.0016541982039326847,-4.099610396545309e-5,3.0144299811144e-8,0.0016545328263749025,-4.1044953793367646e-5,3.0177129842224954e-8,0.0016548957129889686,-4.100692229408898e-5,3.013755445295461e-8,0.0016552417765755723,-4.0878540058739154e-5,3.0023865014476645e-8,0.0016555313813681053,-4.0678744800547455e-5,2.985267628556814e-8,0.0016557394578348126,-4.0442706059349526e-5,2.965356616713717e-8,0.0016558602205119905,-4.0212091256584694e-5,2.9460936650144332e-8,0.0016559066064064827,-4.002467175107929e-5,2.9305507808049016e-8,0.0016559051411805651,-3.990618815504244e-5,2.9207810627581598e-8,0.0016558883208421219,-3.986641734804314e-5,2.9175190181454984e-8,0.0016558871094012825,-3.989970995789232e-5,2.920244204328383e-8,0.0016559255239323612,-3.9988717521732396e-5,2.9274958922300416e-8,0.0016560179934640134,-4.010939295998521e-5,2.9372803922459204e-8,0.0016561690600313398,-4.023567907279301e-5,2.947446435780696e-8,0.0016563744709726966,-4.0343077329543915e-5,2.9559704687070583e-8,0.0016566227473716701,-4.04110569171678e-5,2.9611550177314757e-8,0.0016568967011817656,-4.0424765170366424e-5,2.9617783814663727e-8,0.0016571748725286567,-4.03766005139679e-5,2.9572361572399208e-8,0.001657433277921752,-4.026798280415287e-5,2.9476932544257488e-8,0.0016576481341211992,-4.011122108290574e-5,2.9342315929308953e-8,0.0016578002161897344,-3.993068140079735e-5,2.918927620055278e-8,0.0016578808882250792,-3.97616016784514e-5,2.904730413787855e-8,0.0016578983842147038,-3.964455859766971e-5,2.894986463588264e-8,0.0016578810457861806,-3.961480375790006e-5,2.8925550308629004e-8,0.0016578735047228827,-3.968893422226867e-5,2.8987194852995764e-8,0.0016579242628156493,-3.985510074322592e-5,2.9124022121367424e-8,0.0016580686098759247,-4.007348282468502e-5,2.9302307407495906e-8,0.001658315212483153,-4.028875236110224e-5,2.9475907260284677e-8,0.0016586433615687947,-4.044883713349159e-5,2.9601907087753384e-8,0.0016590113970561915,-4.0520869931719907e-5,2.9653810852602028e-8,0.0016593709065407672,-4.049825768358674e-5,2.9627222749183985e-8,0.0016596801558158162,-4.039855087642855e-5,2.953777937619335e-8,0.0016599128451770951,-4.025546688761349e-5,2.9414208659192474e-8,0.001660061372670357,-4.010894002692455e-5,2.928985879812469e-8,0.0016601355508499426,-3.999598249842553e-5,2.9195098085642385e-8,0.0016601582578794414,-3.994386969418339e-5,2.9151836997324146e-8,0.0016601594601349523,-3.9966285990856224e-5,2.9170608546724392E-08,0.0016601699239930832,-4.006254573710791e-5,2.9250175101477995e-8,0.0016602158041532625,-4.021951416375853e-5,2.9379253301896273e-8,0.0016603149537395255,-4.041536412718664e-5,2.9539614735345927e-8,0.00166047527124585,-4.062408817363606e-5,2.970971399095024e-8,0.0016606948895783432,-4.081978853524619e-5,2.986812443718438e-8,0.0016609636296508186,-4.098007900947471e-5,2.9996308350286483e-8,0.0016612650174455234,-4.108841983012459e-5,3.0080601450579956e-8,0.0016615783991599132,-4.113565076063209e-5,3.01135932639863e-8,0.00166188105966781,-4.11211016170598e-5,3.009513534055636e-8,0.001662150531071203,-4.105352714493535e-5,3.0033097660775586e-8,0.0016623675379770072,-4.095183539624763e-5,2.994381510048298e-8,0.0016625201033940193,-4.0844962473662907e-5,2.98517361833591e-8,0.0016626087554811723,-4.0769446539057265e-5,2.9787188477707118e-8,0.0016626514160071732,-4.0762994359918156e-5,2.9780965991072815e-8,0.0016626848298044925,-4.0853432310140516e-5,2.9855291758414986e-8,0.0016627585180696237,-4.104557297078488e-5,3.001319945286181e-8,0.0016629196343020275,-4.1312810810254054e-5,3.023184378109478e-8,0.0016631936622173485,-4.1601319751516236e-5,3.046615302114082e-8,0.0016635717482644979,-4.1848343784879263e-5,3.0664058183648755e-8,0.0016640132555107746,-4.200576477773202e-5,3.0786057280139574e-8,0.0016644620386205267,-4.205590491481198e-5,3.0818301607812385e-8,0.001664866364125141,-4.201279974388258e-5,3.0773509768777413e-8,0.001665192705554029,-4.1912072651471524e-5,3.068227045198648e-8,0.0016654301308830564,-4.1797159168452974e-5,3.0581274453788686e-8,0.0016655875286445104,-4.170783384293948e-5,3.050359333944092e-8,0.001665687465604892,-4.167319984191924e-5,3.0472896827926416e-8,0.0016657594905155892,-4.170874776273719e-5,3.050124412626773e-8,0.0016658342301060726,-4.181625386895793e-5,3.058929521132896e-8,0.0016659386770511526,-4.1985505643195065e-5,3.0727965256502515e-8,0.0016660927790692734,-4.2197234556937535e-5,3.0900934221248055e-8,0.001666307394327278,-4.242676039351328e-5,3.108761361993264e-8,0.0016665836116936171,-4.2647885737481854e-5,3.1266263776837525e-8,0.0016669133750296294,-4.2836615240290816e-5,3.141699700450582e-8,0.0016672812040082632,-4.29742538784887e-5,3.1524353127941986e-8,0.001667666583854231,-4.3049585079543835e-5,3.157918783389978e-8,0.0016680466219054927,-4.306016694156729e-5,3.1579840829446867e-8,0.0016683988209936053,-4.3012919060955386e-5,3.153264421759085e-8,0.0016687039684606657,-4.2924075892586436e-5,3.145177637443578e-8,0.001668949248977301,-4.281847186208641e-5,3.135844372913255e-8,0.001669131786259909,-4.272775819299064e-5,3.127914542178871e-8,0.0016692623804481766,-4.268653070428464e-5,3.1242302733313314e-8,0.0016693680627836978,-4.272526972232355e-5,3.1272440060728026e-8,0.0016694908319522278,-4.286013130087455e-5,3.138195636848311e-8,0.0016696795079151228,-4.3082236687797025e-5,3.156257050561017e-8,0.0016699738397906113,-4.335263606913009e-5,3.178138863954782e-8,0.0016703860640257925,-4.3610062290433165e-5,3.1987399692878435e-8,0.0016708909850968417,-4.3792311883293744e-5,3.212916881254575e-8,0.0016714333005318656,-4.3861116917503015e-5,3.217546090751692e-8,0.0016719492822700806,-4.3815726814167675e-5,3.2126524444803504e-8,0.0016723897475633752,-4.368843070089595e-5,3.201025739742718e-8,0.0016727324810957033,-4.352796787840965e-5,3.1868119479992646e-8,0.0016729818078562674,-4.338203342372647e-5,3.174024705968066e-8,0.001673160510358554,-4.3286058936851166e-5,3.165596355869807e-8,0.0016733001997954202,-4.325918304672302e-5,3.1630534790235667e-8,0.0016734335563792723,-4.3305040518058526e-5,3.166611119385737e-8,0.0016735892269826305,-4.3414715646800075e-5,3.1754482304429493e-8,0.0016737888324904195,-4.357023755789901e-5,3.188016234879414e-8,0.0016740453537005702,-4.3748057320064645e-5,3.202330368510447e-8,0.0016743624861162748,-4.392241829557162e-5,3.216241408654458e-8,0.0016747348092937828,-4.406860454410632e-5,3.227695616684352e-8,0.0016751487805059524,-4.416603666815915e-5,3.234987839857888e-8,0.001675584637718124,-4.420100590072595e-5,3.236992864406305e-8,0.0016760191120139118,-4.4168658691226686e-5,3.23333885762874e-8,0.0016764286255676625,-4.407397693962139e-5,3.224493873197347e-8,0.0016767926831136699,-4.393169599546051e-5,3.211753662941352e-8,0.001677097237930815,-4.3765093105344423e-5,3.197123217472216e-8,0.00167733777658621,-4.360358105039846e-5,3.183091478114156e-8,0.001677521869398556,-4.347902774846859e-5,3.172303510741116e-8,0.0016776707408900074,-4.342049118287758e-5,3.167116295241453e-8,0.0016778187422698135,-4.3447130391136005e-5,3.1690241873688606e-8,0.0016780089503785252,-4.3560098509420256e-5,3.178016652122048e-8,0.0016782833720448765,-4.373614563117936e-5,3.192080369790514e-8,0.0016786683666438333,-4.3927655024510755e-5,3.207221484054373e-8,0.001679160369115784,-4.407367191046424e-5,3.2183808817329206e-8,0.0016797209875307913,-4.412114009758808e-5,3.221188471697183e-8,0.0016802880403294148,-4.404672142738793e-5,3.213771971384632e-8,0.001680798773740542,-4.386597338792192e-5,3.197519004817064e-8,0.0016812121713359505,-4.362439078443936e-5,3.176318558267004e-8,0.0016815186777889915,-4.337739128303645e-5,3.1548644038694827e-8,0.0016817358173011794,-4.317163234212843e-5,3.137068706839119e-8,0.0016818964774662018,-4.303518866881324e-5,3.125235326029229e-8,0.0016820373053456571,-4.2976515779093504e-5,3.1199916976096325e-8,0.0016821908517579908,-4.298835334932385e-5,3.120645643391533e-8,0.001682381643870257,-4.305295001771544e-5,3.125647495228362e-8,0.0016826248641123465,-4.314669659029766e-5,3.1329875743603594e-8,0.0016829262935964223,-4.3243765750394774e-5,3.1404959032322505e-8,0.0016832827993444842,-4.3319058823132525e-5,3.1460773886099394e-8,0.0016836831808576592,-4.335081474193989e-5,3.147921387142313e-8,0.0016841094761317773,-4.332309858073908e-5,3.144709006843145e-8,0.0016845389965708768,-4.322812581928537e-5,3.1358136502702837e-8,0.0016849472827916928,-4.30680097516396e-5,3.121454317459761e-8,0.001685311817324549,-4.28553785051464e-5,3.102747616737498e-8,0.0016856160259362443,-4.2612465496661675e-5,3.081620600067579e-8,0.0016858529647612876,-4.2368472572295754e-5,3.060568908899294e-8,0.0016860279929869306,-4.2155252212118004e-5,3.042272064814904e-8,0.0016861597397253318,-4.2001707138160697e-5,3.029110352696416e-8,0.001686278802546357,-4.192753075558542e-5,3.0226450956112963e-8,0.0016864236511896307,-4.1937096150845514e-5,3.023131644925384e-8,0.0016866333005143353,-4.20148809990313e-5,3.029172471873377e-8,0.0016869370383114897,-4.212468985170035e-5,3.0376837396555156e-8,0.0016873432300061099,-4.221528826700933e-5,3.0443795692792346e-8,0.0016878316433975797,-4.223370069387507e-5,3.044875659726567e-8,0.0016883549945588567,-4.214339067565662e-5,3.0361907947096335e-8,0.0016888524992501178,-4.193939125212146e-5,3.017996755366323e-8,0.0016892708942925403,-4.165129888299081e-5,2.992858118803242e-8,0.0016895823148465297,-4.1331399559831654e-5,2.9652240492607542e-8,0.0016897900659125485,-4.103474076847829e-5,2.9397395175287495e-8,0.0016899216625505006,-4.080203475990938e-5,2.919799465346154e-8,0.0016900157054978312,-4.0652031392961096e-5,2.906915313908238e-8,0.0016901099208097574,-4.058288462987776e-5,2.900853004866035e-8,0.0016902339270298944,-4.057817378667731e-5,2.900165126974593e-8,0.0016904065626526063,-4.061354355146046e-5,2.9027644312851774e-8,0.0016906360051758417,-4.0661950119559325e-5,2.9063648467584324e-8,0.0016909209995482196,-4.069723028481099e-5,2.9087710885649258e-8,0.0016912522654108416,-4.069653884596306e-5,2.9080721860103752e-8,0.0016916138646757722,-4.064230977992161e-5,2.9028017183053914e-8,0.0016919847467131485,-4.052416230559773e-5,2.8921020015667242e-8,0.0016923408945919195,-4.034078146507427e-5,2.8758904768726176e-8,0.0016926584456100585,-4.0101338254094135e-5,2.854984370404633e-8,0.0016929177886920088,-3.98256830559316e-5,2.8311126828899853e-8,0.001693108077881154,-3.954252987433632e-5,2.8067479641023334e-8,0.0016932310746483276,-3.928519728252996e-5,2.7847258747180767e-8,0.0016933029691601435,-3.908519792267514e-5,2.767686433700739e-8,0.0016933530634665743,-3.896487647791898e-5,2.7574483226122663e-8,0.0016934189419301243,-3.893091195901987e-5,2.7544749748504323e-8,0.0016935386906464923,-3.897054727601237e-5,2.7575867805514548e-8,0.001693741560057379,-3.905203356829756e-5,2.7640332995878002e-8,0.0016940391412425884,-3.9130122676386634e-5,2.7699808677760945e-8,0.0016944196388182435,-3.9156405028759944e-5,2.7713881316001143e-8,0.0016948479443695268,-3.909270277009998e-5,2.7651188701418565e-8,0.0016952732925359264,-3.892369137957591e-5,2.749979593321849e-8,0.0016956435737868081,-3.8663481150373246e-5,2.7272496371780773e-8,0.001695921508217519,-3.835205250275875e-5,2.7003629854952092e-8,0.0016960956761315402,-3.804202367397545e-5,2.67378143191e-8,0.0016961815319577094,-3.778160361537539e-5,2.6515529524935576e-8,0.001696213032473906,-3.7601416121365983e-5,2.6362069074866936e-8,0.0016962301457196613,-3.750973613700963e-5,2.628370233701135e-8,0.0016962680770975457,-3.749551816840239e-5,2.627045669394839e-8,0.0016963512376621233,-3.753538910232288e-5,2.63021853253086e-8,0.0016964917453452192,-3.7600818583413475e-5,2.635465438290942e-8,0.001696690651419292,-3.766350660714986e-5,2.6404007688425848e-8,0.001696940137771745,-3.769874102950349e-5,2.642947829630893e-8,0.0016972256658882062,-3.7687335396604675e-5,2.6414948818137022e-8,0.0016975277902204365,-3.761694740849289e-5,2.635007890531258e-8,0.001697823895555182,-3.7483365373189244e-5,2.6231474474216885e-8,0.0016980904064073249,-3.729186542931282e-5,2.6063916854335785e-8,0.0016983059629982868,-3.705818431813839e-5,2.5861193564983613e-8,0.00169845567523588,-3.6808209557159376e-5,2.5645733638452276e-8,0.0016985358748413822,-3.6575286342219624e-5,2.544614117888997e-8,0.0016985578725676185,-3.6394393189292205e-5,2.5292069524213555e-8,0.0016985486004877865,-3.629367901585675e-5,2.5206946956193076e-8,0.001698546470920179,-3.628561471787852e-5,2.5200532434859682e-8,0.0016985925376170278,-3.6361141746669543e-5,2.5264171502710526e-8,0.0016987192823167937,-3.648970911878939e-5,2.537113473313952e-8,0.0016989407603901555,-3.66260131869023e-5,2.548261022146134e-8,0.0016992475797464068,-3.672165020583402e-5,2.5557724392811732e-8,0.0016996084606618878,-3.673811638230782e-5,2.5564517650592807e-8,0.001699977956475142,-3.6657310285023185e-5,2.5488638588697726e-8,0.0017003082070326627,-3.648654916289649e-5,2.5337305501061796e-8,0.001700561508238771,-3.625653060246809e-5,2.5137301531646965e-8,0.0017007199892369825,-3.601259358681587e-5,2.492738326789755e-8,0.0017007892677775634,-3.580192599678626e-5,2.474739066190967e-8,0.0017007949978842718,-3.566104751616369e-5,2.462773297309177e-8,0.0017007740285271689,-3.560774970729352e-5,2.4582760104628268e-8,0.001700763881614479,-3.5639540723169225e-5,2.4609678123756305e-8,0.0017007942876682992,-3.5737747088271245e-5,2.4692199666377635e-8,0.0017008827935677405,-3.5874468764077714e-5,2.48064931342209e-8,0.0017010342865269056,-3.601946403066804e-5,2.4926953335125145e-8,0.0017012429683338664,-3.614526778038245e-5,2.503041713192252e-8,0.0017014952046849267,-3.623023427960677e-5,2.5098644185563178e-8,0.001701772238022168,-3.626002631665762e-5,2.5119562344499273e-8,0.0017020524196195597,-3.6228338899696296e-5,2.5087946189913077e-8,0.0017023131682198593,-3.613749747676565e-5,2.500601481098576e-8,0.0017025331952084945,-3.599911636755302e-5,2.488403054979358e-8,0.001702695545569224,-3.583443484893609e-5,2.4740519688495516e-8,0.001702791658995604,-3.567341761960704e-5,2.4601345097724025e-8,0.001702825905263925,-3.5551336305842663e-5,2.449660803475595e-8,0.0017028188818827854,-3.550180632355494e-5,2.4454604213756933e-8,0.001702806735149731,-3.5546798682885895e-5,2.4493348244526906e-8,0.0017028341827005904,-3.5686793861779424e-5,2.4612368548798255e-8,0.0017029417119942861,-3.589622192692521e-5,2.4789084250634145e-8,0.001703151464359933,-3.612826882154989e-5,2.4983140816697334e-8,0.0017034584180842351,-3.632857896050061e-5,2.514822835935455e-8,0.0017038313132765339,-3.645226816286234e-5,2.5246595649292e-8,0.0017042226379164888,-3.647699395454146e-5,2.5260079820686068e-8,0.0017045828447247262,-3.640761249596701e-5,2.5193854756660187e-8,0.0017048733046878682,-3.627237682470769e-5,2.5072903100127402e-8,0.0017050744960167964,-3.611354589471979e-5,2.4933747465570844e-8,0.0017051883610562926,-3.597597816658294e-5,2.4814589910546375e-8,0.0017052354342512147,-3.5896752180398834e-5,2.4746512664333185e-8,0.0017052482576193312,-3.589793749996182e-5,2.4747526264296278e-8,0.001705263072666433,-3.598363726072869e-5,2.482032549880074e-8,0.0017053119227668128,-3.614137236019604e-5,2.4953695706256513e-8,0.0017054169711461474,-3.6346798808851755e-5,2.5126630491637535e-8,0.001705587948875609,-3.656997064057401e-5,2.5313627491764613e-8,0.0017058225445119196,-3.678132058142517e-5,2.548965965479151e-8,0.0017061087821257628,-3.69561651974611e-5,2.563388881603951e-8,0.0017064282269366776,-3.70773600928232e-5,2.5731871018470053e-8,0.0017067591018042412,-3.713639521195745e-5,2.5776518819360373e-8,0.0017070789070781516,-3.71335783856623e-5,2.576833424327725e-8,0.001707366647808429,-3.7077896034809675e-5,2.5715344204894712e-8,0.0017076050669122245,-3.6986775316050295e-5,2.563286430776859e-8,0.0017077833482693745,-3.6885519284883346e-5,2.5542879446377526e-8,0.0017079005422884115,-3.6805662765103294e-5,2.547244983570222e-8,0.0017079692563718653,-3.678101653653675e-5,2.545019000338502e-8,0.0017080179220300188,-3.684031594380135e-5,2.549999137370553e-8,0.0017080887479602191,-3.699691368462634e-5,2.5632392147724558e-8,0.001708228641281455,-3.723898589582162e-5,2.583648649016691e-8,0.0017084735851781347,-3.752657719115359e-5,2.607763848747086e-8,0.0017088326289339622,-3.7800822890985845e-5,2.6305464895935834e-8,0.0017092809717665692,-3.800389880699946e-5,2.6470864658603684e-8,0.001709767617820864,-3.810010719756817e-5,2.6543979991628234e-8,0.0017102337850382358,-3.8086965178193554e-5,2.6523588534275293e-8,0.0017106319934249428,-3.799214504651016e-5,2.6434316445958196e-8,0.0017109375331463164,-3.786074079930412e-5,2.6315481437475767e-8,0.0017111503518974585,-3.774050858751181e-5,2.6208213356204093e-8,0.0017112901426587356,-3.767043065840216e-5,2.6145574168089167e-8,0.001711388473927356,-3.767435097338324e-5,2.6147233879245078e-8,0.0017114807478860903,-3.7759148181293965e-5,2.6218181852708225e-8,0.0017115993915441882,-3.791616629237784e-5,2.6350243451075947e-8,0.0017117688340202747,-3.812478479964005e-5,2.6525321161408846e-8,0.0017120025462314225,-3.8357269218783055e-5,2.671957407701288e-8,0.0017123022368902155,-3.858401705662783e-5,2.690781030939024e-8,0.0017126589667248331,-3.8778319536625255e-5,2.706742096037333e-8,0.0017130556713426438,-3.892000575518932e-5,2.718139609955358e-8,0.0017134704463890348,-3.8997637220543705e-5,2.72401837338603e-8,0.0017138799079658143,-3.900926090925543e-5,2.7242381927571813e-8,0.0017142621560916798,-3.896209930041389e-5,2.719452965369347e-8,0.0017145992769997747,-3.887164408049795e-5,2.7110327165076998e-8,0.0017148795732618073,-3.876038090260755e-5,2.7009443934541433e-8,0.0017150997739135154,-3.8656079592503165e-5,2.691587804537622e-8,0.0017152674011576832,-3.858919935674702e-5,2.6855564023675893e-8,0.001715402930080424,-3.858850645778573e-5,2.68525620088811e-8,0.0017155403030105689,-3.867411814540851e-5,2.6923223505940072e-8,0.001715723354598753,-3.884849496986257e-5,2.706875788258036e-8,0.0017159957908326042,-3.9088518326831626e-5,2.7268754434345864e-8,0.0017163851403779347,-3.9344697300168935e-5,2.748066663980295e-8,0.001716886993958065,-3.955318428218216e-5,2.7650053898035193e-8,0.0017174602847125158,-3.965909042471542e-5,2.773040269966326e-8,0.001718040134972025,-3.963938085916244e-5,2.770265841257851e-8,0.0017185625897166842,-3.9511228867599055e-5,2.758236823583223e-8,0.0017189868062355465,-3.932167724591736e-5,2.7410713552494807e-8,0.001719303790073166,-3.912724285345024e-5,2.7236765021706585e-8,0.0017195315916373054,-3.897569321704473e-5,2.710159348901865e-8,0.0017197039490144403,-3.889639604552238e-5,2.7029929542711243e-8,0.001719859026622647,-3.889874932274322e-5,2.7028998797406246e-8,0.0017200313178398767,-3.897534491821806e-5,2.7091549749431207e-8,0.0017202469671751624,-3.910684938799904e-5,2.7200319928931065e-8,0.001720521602018453,-3.926695176135516e-5,2.7332412797781222e-8,0.001720859794259045,-3.942689817955544e-5,2.7463158757262513e-8,0.001721255728863236,-3.955955466122989e-5,2.756947544016638e-8,0.0017216948873827532,-3.9642868900642176e-5,2.7632707506931933e-8,0.001722156569161592,-3.966254350579579e-5,2.764085344336467e-8,0.0017226170439005363,-3.9613697538888915e-5,2.7590003469533287e-8,0.001723052976870324,-3.9501301872358064e-5,2.7484764624405265e-8,0.0017234446600947672,-3.933941901930363e-5,2.733763268972299e-8,0.001723778754377761,-3.914951517199835e-5,2.7167486552635708e-8,0.0017240504576373702,-3.8958063040786535e-5,2.6997386666773607e-8,0.0017242650711087881,-3.8793531002493264e-5,2.6851810256787167e-8,0.0017244389431611393,-3.868270733259092e-5,2.675337383241879e-8,0.0017245995113033862,-3.864602832841346e-5,2.671885005626151e-8,0.0017247834536315045,-3.8691681327300336e-5,2.6754311849929e-8,0.0017250313802367769,-3.880929377612953e-5,2.6850034141866425e-8,0.001725377842565471,-3.896581169015178e-5,2.697723630726428e-8,0.0017258375470063556,-3.910800396460535e-5,2.7090318371162557e-8,0.0017263930836693708,-3.917572346874251e-5,2.7138107085967308e-8,0.0017269933872087041,-3.912436180795919e-5,2.7082925689746156e-8,0.0017275689865215494,-3.8945638522437385e-5,2.691835379492017e-8,0.0017280585048235183,-3.86727214245852e-5,2.6673635556659343e-8,0.001728431073422244,-3.836534884152783e-5,2.6400818438587404e-8,0.0017286923868734853,-3.808504387510162e-5,2.61532106623058e-8,0.0017288748816655678,-3.787530232705404e-5,2.5968120288942417e-8,0.0017290217154868146,-3.7754199534558863E-05,2.5860493154658515e-8,0.0017291734675064128,-3.771726995413944e-5,2.582562501534354e-8,0.0017293607820238672,-3.7744848247661723E-05,2.584579636728525e-8,0.001729602000315515,-3.780948874960963e-5,2.5896883802857644e-8,0.001729903599395464,-3.788165973355425e-5,2.595331727889163e-8,0.0017302617181777903,-3.7933690493989186e-5,2.5991389794231897e-8,0.0017306640141175572,-3.794259510943676e-5,2.5991547940454676e-8,0.001731091755867424,-3.789224556048095e-5,2.594015958103042e-8,0.001731522255539111,-3.7775051882364856e-5,2.5830937167328825e-8,0.0017319317604426708,-3.7593037290670407e-5,2.5665905426726304e-8,0.0017322987686243735,-3.735795299004614e-5,2.545555029736884e-8,0.0017326074067128012,-3.709011144855787e-5,2.5217806685687195e-8,0.0017328503457029842,-3.6815919057722917e-5,2.4975834819967113e-8,0.001733030801250284,-3.6564297546596944e-5,2.4754770932095832e-8,0.001733163245050693,-3.636230112525841e-5,2.4577788776660804e-8,0.0017332725692263016,-3.6230386059595666e-5,2.446195888578073e-8,0.001733391561335409,-3.6177777041230204e-5,2.4414354594100277e-8,0.0017335564073636222,-3.619837183913728e-5,2.4428778625296542e-8,0.001733799814146551,-3.626816379255833e-5,2.4483858210644657e-8,0.0017341419144584454,-3.634606741287226e-5,2.454398795466479e-8,0.0017345806750870597,-3.638048933612316e-5,2.4565021790145197e-8,0.0017350858869240476,-3.632295309658755e-5,2.4505843202086038e-8,0.0017356024788424108,-3.614624025006184e-5,2.4343764994910206e-8,0.0017360663216553012,-3.585874629062718e-5,2.408675934782713e-8,0.0017364275421104804,-3.550486845228883e-5,2.377374351553505e-8,0.001736668888599713,-3.514850340937432e-5,2.34602712311622e-8,0.001736808661045457,-3.4848567953173e-5,2.3197265336036242e-8,0.001736888544939611,-3.464037865199596e-5,2.301485336433552e-8,0.0017369558513605297,-3.4530440416808935e-5,2.29179595201377e-8,0.001737049707092597,-3.4502354376221574e-5,2.289165624475731e-8,0.0017371947516276504,-3.4526982344086895e-5,2.2910199010581445e-8,0.0017374008073448293,-3.4571512886728264e-5,2.2944984052831473e-8,0.001737665467048844,-3.460545560147143e-5,2.2969695297045837e-8,0.001737977290689824,-3.460390307791772e-5,2.296299541437974e-8,0.0017383186141002541,-3.454918032334136e-5,2.290982677063709e-8,0.0017386679295325906,-3.4431804356590167e-5,2.2802188582601254e-8,0.0017390021734525031,-3.42511906097866e-5,2.2639776047910924e-8,0.0017392992945751758,-3.40160914722638e-5,2.243042545250072e-8,0.0017395413117880889,-3.374434814309473e-5,2.2189933916874547e-8,0.0017397176600680104,-3.346135952529788e-5,2.1940688488459516e-8,0.0017398281621878566,-3.319689225605055e-5,2.170877243418754e-8,0.0017398847366847004,-3.2980307378858836e-5,2.1519663391740078e-8,0.00173991100205662,-3.283480466826047e-5,2.1393128136041958e-8,0.0017399392899709579,-3.27718231350248e-5,2.1338379242105724e-8,0.00174000521831946,-3.278698042141254e-5,2.1350723083240454e-8,0.001740140572588363,-3.285870325852261e-5,2.1410652793135758e-8,0.0017403655886877377,-3.295034303669861e-5,2.1485963701877946e-8,0.0017406820927880144,-3.301629939579607e-5,2.153721791335664e-8,0.0017410695269251995,-3.301209684177935e-5,2.152643905078453e-8,0.001741486310794703,-3.290702867540473e-5,2.1427864745405244e-8,0.0017418784545159788,-3.269589869418132e-5,2.1237862433750336e-8,0.0017421948525763043,-3.2404476839655194e-5,2.097945465702013e-8,0.001742404370709457,-3.208389090653782e-5,2.069734831489266e-8,0.001742506671572139,-3.179415040864402e-5,2.0443603476147352e-8,0.0017425307722198473,-3.158389373995162e-5,2.0260073766504838e-8,0.0017425223974869423,-3.147622681133658e-5,2.0166207874633754e-8,0.0017425275508909542,-3.146622368211866e-5,2.0157058325399752e-8,0.0017425801811898768,-3.152827253738807e-5,2.020986020759265e-8,0.0017426972860252556,-3.162719052466486e-5,2.02938080720638e-8,0.001742880085460341,-3.172780363660379e-5,2.0378372619537326e-8,0.001743118076178938,-3.180084546028723e-5,2.0438317988914532e-8,0.0017433934077427334,-3.1825558838409014e-5,2.045583270732787e-8,0.0017436844082488409,-3.179033969714021e-5,2.0421013873564265e-8,0.001743968178512343,-3.169263001235832e-5,2.0331783624667846e-8,0.0017442227209409098,-3.153871728518193e-5,2.0193782525411485e-8,0.0017444291701622036,-3.134350069999404e-5,2.002022746940685e-8,0.0017445744879534223,-3.112978763186553e-5,1.9831294365844262e-8,0.0017446545474839863,-3.092639446856581e-5,1.9652370870985962e-8,0.0017446769299296102,-3.0764373350770444e-5,1.9510621046903156e-8,0.0017446621867443558,-3.067120727891532e-5,1.9429795770389297e-8,0.001744642159515886,-3.066382603124781e-5,1.9424111620866493e-8,0.0017446545782597647,-3.074243219545489e-5,1.9492972810802038e-8,0.0017447345609175441,-3.088764647827402e-5,1.961870511808151e-8,0.0017449051754598907,-3.106281392238331e-5,1.9768826171514667e-8,0.0017451700230479688,-3.122163105108318e-5,1.9902887093021913e-8,0.001745510408947374,-3.1319374667683715e-5,1.9982307573413395e-8,0.001745888357283682,-3.1324766347923475e-5,1.998060209584599e-8,0.0017462551360621196,-3.122919694479231e-5,1.989118907219179e-8,0.0017465634988662125,-3.105046157655002e-5,1.9730384470556232e-8,0.001746780545164631,-3.0829192817083005e-5,1.9534083265630877e-8,0.0017468971763283654,-3.06181089004315e-5,1.9348284579479396e-8,0.0017469304559974707,-3.0466979567041213e-5,1.921600927524104e-8,0.001746917542182514,-3.0408580265584186e-5,1.916519343229281e-8,0.001746903536584843,-3.0450937289348743e-5,1.9202135362128732e-8,0.0017469283478326418,-3.057824727716383e-5,1.931250208156185e-8,0.0017470175401144699,-3.075870969388561e-5,1.9468283092315117e-8,0.0017471793662891689,-3.095489208974001e-5,1.9636835355944387e-8,0.00174740696584924,-3.1132521919019314e-5,1.978845734405289e-8,0.0017476831047323403,-3.126577909856488e-5,1.9900875698021727e-8,0.0017479851225330183,-3.1339285687671686e-5,1.9960887050540934e-8,0.0017482888771933986,-3.134799753916344e-5,1.9964247391127438e-8,0.001748571500534339,-3.1296247023240655e-5,1.9914888607216414e-8,0.0017488134063673208,-3.1196725784627565e-5,1.9824099003596076e-8,0.0017490001909731922,-3.106955308858083e-5,1.970973106837139e-8,0.0017491248720657058,-3.0941022082626086e-5,1.9595042768266226e-8,0.0017491904664698418,-3.084128927975832e-5,1.9506546090950694e-8,0.0017492122725144203,-3.080019758367981e-5,1.9470218613974216e-8,0.0017492184473760612,-3.084086291599031e-5,1.950583763271849e-8,0.0017492470171063378,-3.097194995726486e-5,1.9620297100766168e-8,0.0017493381646387358,-3.1181363894115793e-5,1.980227981843363e-8,0.0017495228601829887,-3.143510381205071e-5,2.0021485851797534e-8,0.0017498116793050868,-3.168386290175472e-5,2.023458425088819e-8,0.0017501889553554505,-3.18764773563137e-5,2.039704390946832e-8,0.001750615655745262,-3.197543249573554e-5,2.0476649055390935e-8,0.0017510402683068693,-3.1968199999134966e-5,2.0463276536587624e-8,0.0017514133531797574,-3.187031880307763e-5,2.037138563020928e-8,0.0017517005273633118,-3.1719998107685436e-5,2.0235063634656074e-8,0.001751890219662361,-3.156694813316782e-5,2.009806183335921e-8,0.0017519948081852045,-3.1459214757831945e-5,2.0002203745109712e-8,0.0017520456413406555,-3.14316280501743e-5,1.99773642676767e-8,0.001752083843670919,-3.149863525213701e-5,2.0035412948970665e-8,0.0017521497040240116,-3.1652918673865666e-5,2.0169255510395947e-8,0.0017522736069611874,-3.186951297035694e-5,2.0356620338662876e-8,0.0017524707370152176,-3.211356229077129e-5,2.056690037038114e-8,0.0017527403103441905,-3.234896981308914e-5,2.076865466262888e-8,0.0017530684808992239,-3.254545176213017e-5,2.0935651692450514e-8,0.0017534331318351181,-3.2682714956734884e-5,2.1050408448247448e-8,0.0017538088119477358,-3.275180452227584e-5,2.110531752462392e-8,0.0017541707526388716,-3.275447431229004e-5,2.1102114748483773e-8,0.0017544976901405082,-3.270162706579011e-5,2.105056824283674e-8,0.0017547738024637697,-3.2611589026689284e-5,2.096699993899653e-8,0.0017549902985381242,-3.250844445279376e-5,2.0872790992964694e-8,0.001755147084288628,-3.242014951493518e-5,2.0792620166438958e-8,0.001755254570490484,-3.2375793594230804e-5,2.0751927960372814e-8,0.001755335063281145,-3.2401220502996406e-5,2.0772996896363735e-8,0.0017554223357314845,-3.251259859283147e-5,2.0869356621329078e-8,0.0017555573977173214,-3.2708863724273736e-5,2.1039332104000612e-8,0.0017557790984082053,-3.29660727723672e-5,2.126132814313656e-8,0.0017561108323753565,-3.3238262436040336e-5,2.1494763264115556e-8,0.0017565485849542516,-3.346811995275699e-5,2.1689479904005575e-8,0.0017570576145160576,-3.360552772869162e-5,2.1801953478252693e-8,0.001757581785070488,-3.362585143779291e-5,2.1811245999041253e-8,0.0017580620722044517,-3.353851148587489e-5,2.1726427797049774e-8,0.001758455202278241,-3.3382035778471196e-5,2.158208310470156e-8,0.0017587444079113072,-3.320959575010596e-5,2.1425399176948597e-8,0.0017589399770165945,-3.307263661221911e-5,2.130160656072588e-8,0.0017590722808459125,-3.3008502295315075e-5,2.1243072677899854e-8,0.001759181556547813,-3.3034286998855964e-5,2.1264051244620618e-8,0.0017593078653479616,-3.314644102862432e-5,2.1360602034657684e-8,0.0017594831921096522,-3.332452486865661e-5,2.1514143545573805e-8,0.0017597265437465275,-3.353738875474003e-5,2.1697021326259336e-8,0.001760042245970357,-3.3750244753001815e-5,2.1878713640531822e-8,0.001760421146334321,-3.393124357669487e-5,2.2031497920959415e-8,0.0017608439638752132,-3.405644801825657e-5,2.2134681640893213e-8,0.0017612857471203435,-3.411264048046515e-5,2.2176972713998292e-8,0.0017617204091223166,-3.409797973084421e-5,2.2157031793999206e-8,0.0017621245438929386,-3.402096746414191e-5,2.208259287114386e-8,0.0017624801775086999,-3.3898450706873454e-5,2.1968740632231774e-8,0.0017627765982876126,-3.3753300304850276e-5,2.183585863215288e-8,0.001763011621842634,-3.3612016549370004e-5,2.1707446371806972e-8,0.0017631925713161728,-3.350214912888116e-5,2.1607729651469524e-8,0.0017633370417948848,-3.344913871513708e-5,2.1558783250075647e-8,0.0017634730174059953,-3.347197967528787e-5,2.1576714714329268e-8,0.0017636371116576798,-3.357742597786236e-5,2.1666704084487572e-8,0.0017638691979690627,-3.3753723774377576e-5,2.181772916999189e-8,0.0017642023031790117,-3.396680513750332e-5,2.1999445627985694e-8,0.0017646491667109299,-3.4163476660183754e-5,2.2165086343053056e-8,0.0017651911849654452,-3.428501454789286e-5,2.226334653764835e-8,0.001765778160698935,-3.428858702670496e-5,2.2257091907866984e-8,0.0017663432093342334,-3.416606996623403e-5,2.213983656780172e-8,0.0017668269543614896,-3.3948415208319496e-5,2.193955489711035e-8,0.001767197842766506,-3.369259112538415e-5,2.17070724834961e-8,0.0017674586193811824,-3.34596154530708e-5,2.1496498412280247e-8,0.001767639060592299,-3.329574652596208e-5,2.1348468166328244e-8,0.0017677821871205088,-3.3223440312985864e-5,2.1282180173486558e-8,0.0017679311822968995,-3.324154570836546e-5,2.129578103953367e-8,0.001768120512436396,-3.333086353608994e-5,2.1371561635770116e-8,0.0017683715270797181,-3.346142626072527e-5,2.148260408851196e-8,0.0017686914318105862,-3.3599409128902524e-5,2.1598953117881766e-8,0.0017690744739801523,-3.371291615094851e-5,2.1692652330809286e-8,0.0017695045695388376,-3.3776430454713476e-5,2.1741529840179073e-8,0.0017699588242402324,-3.3773791444695706e-5,2.1731694812881347e-8,0.0017704114732510778,-3.369964876976124e-5,2.1658752122008647e-8,0.0017708378094016797,-3.355943690940463e-5,2.152778106353521e-8,0.0017712176390383754,-3.336799684118138e-5,2.1352151053456795e-8,0.0017715378651225137,-3.314720089247531e-5,2.1151437607701027e-8,0.0017717941126926234,-3.2923077927578334e-5,2.0948840418387312e-8,0.0017719915599731899,-3.272273093629134e-5,2.0768364307715262e-8,0.0017721450953806894,-3.257108279253322e-5,2.063183815712094e-8,0.001772278789586462,-3.248736044869667e-5,2.0555760321616602e-8,0.0017724243969323124,-3.2481099228891417e-5,2.0547838756955484e-8,0.0017726180377305497,-3.2547672204280884e-5,2.06032360891902e-8,0.001772893902096436,-3.26643881516983e-5,2.070137445010743e-8,0.0017732745145420026,-3.278970120097843e-5,2.0805422495871913e-8,0.0017737592672930375,-3.286910117515717e-5,2.0867510935645095e-8,0.0017743165104114895,-3.285007607212869e-5,2.0841794381781585e-8,0.0017748868641271837,-3.27030730663727e-5,2.0702786663879134e-8,0.0017754014530360297,-3.2437768348831866e-5,2.0459662686927267e-8,0.0017758080743716612,-3.2102608481630945e-5,2.015584789108212e-8,0.0017760903595036206,-3.17656634260758e-5,1.985200104905266e-8,0.0017762693117928238,-3.1488255206219554e-5,1.9602496536206447e-8,0.0017763894591366236,-3.13062590108772e-5,1.9438747273234566e-8,0.001776500414190258,-3.12255836885439e-5,1.9365283650061506e-8,0.0017766430268873303,-3.1228419406428315e-5,1.9365541425495753e-8,0.0017768429247380117,-3.128342719222774e-5,1.9411160162745227e-8,0.0017771097947912773,-3.1355028823638904e-5,1.9470365609482324e-8,0.0017774396800211817,-3.141000926638304e-5,1.9513809181670135e-8,0.0017778182926467716,-3.142162035464175e-5,1.951808140830944e-8,0.0017782244717445747,-3.137198226709649e-5,1.946769186203101e-8,0.0017786336024299082,-3.12533185341731e-5,1.9356066032986675e-8,0.0017790209705546684,-3.1068226775794e-5,1.9185763398043137e-8,0.0017793650121143564,-3.08290205222032e-5,1.8967926769402895e-8,0.001779650296646995,-3.055604937514018e-5,1.8720829744334336e-8,0.0017798698743530228,-3.0274995636721267e-5,1.846747256260845e-8,0.001780026632235612,-3.001344158238894e-5,1.8232467517967285e-8,0.0017801335374979842,-2.9797089846618077e-5,1.8038579085288705e-8,0.0017802127450977066,-2.964590951538579e-5,1.7903218620709243e-8,0.0017802935187865058,-2.9570467972433672e-5,1.783518762572123e-8,0.0017804088777299578,-2.9568714404354944e-5,1.7831942719272197e-8,0.0017805907080136712,-2.9623577448738986e-5,1.7877681205500904e-8,0.0017808630276179797,-2.97023326731302e-5,1.7943009994474517e-8,0.0017812337934054229,-2.97595557883807e-5,1.7987695659313328e-8,0.0017816872967592035,-2.9745687070046982e-5,1.7968220015004007e-8,0.0017821813976015835,-2.962172070135213e-5,1.7850629717166458e-8,0.0017826548299887984,-2.9376324177287026e-5,1.762553130680372e-8,0.0017830461959892749,-2.903634032102028e-5,1.731731488754778e-8,0.0017833176117902473,-2.866124927995671e-5,1.6979208783705445e-8,0.001783469533852475,-2.832122375637814e-5,1.6673724822837606e-8,0.0017835376035968266,-2.80706105762117e-5,1.6448993998207882e-8,0.0017835749164607615,-2.793168172891396e-5,1.6324306949224888e-8,0.0017836317390693452,-2.7894493168831586e-5,1.6290136262871556e-8,0.0017837425116183111,-2.7927737072698468e-5,1.6318029727125984e-8,0.0017839222251040216,-2.7991952248573566e-5,1.6372552649405453e-8,0.0017841690180765415,-2.804960543379875e-5,1.6420305148628225e-8,0.0017844690921453375,-2.8070762770376914e-5,1.6434881896134044e-8,0.001784801494145308,-2.803540319002629e-5,1.6398785045025665e-8,0.0017851419554334824,-2.7933929717305372e-5,1.6303760303012625e-8,0.0017854659718042635,-2.7766907604290468e-5,1.6150522430904983e-8,0.0017857515136427459,-2.7544366750350456e-5,1.5948164497142894e-8,0.0017859816002243757,-2.7284609584283965e-5,1.571315251966609e-8,0.0017861467536977667,-2.7012260273114013e-5,1.5467614316026404e-8,0.0017862470230057806,-2.6755286369400636e-5,1.5236648496569402e-8,0.0017862930134701384,-2.654104265296623e-5,1.504470406978934e-8,0.001786305424195102,-2.6391773125555355e-5,1.491146539228525e-8,0.0017863128449208082,-2.6320220335777346e-5,1.4847885035371189e-8,0.0017863478278571186,-2.632612309632168e-5,1.4853112441925018e-8,0.0017864415524204687,-2.639440009895842e-5,1.491303463720827e-8,0.0017866176433893105,-2.649564870787032e-5,1.500094022968379e-8,0.0017868858723667914,-2.6589505322540724e-5,1.5080702406757717e-8,0.0017872368982414784,-2.66314436018206e-5,1.5112903973863852e-8,0.0017876399981771522,-2.6583121415397484e-5,1.5063969741293373e-8,0.0017880463839678022,-2.6424855833963814e-5,1.4917086903880453e-8,0.0017884001103203367,-2.61662566626825e-5,1.4681479769128718e-8,0.0017886554421320897,-2.5848825556468653e-5,1.439459563665528e-8,0.0017887942451537537,-2.5535601758596886e-5,1.4112816495281188e-8,0.0017888338091817063,-2.5289736988679483e-5,1.3892330893168733e-8,0.0017888195185604239,-2.515213106178181e-5,1.3769205429052592e-8,0.0017888063464290775,-2.5129846263159923e-5,1.3749151498984439e-8,0.0017888398156686227,-2.5199537269306553e-5,1.3810764966794239e-8,0.0017889451574657782,-2.5320670226036306e-5,1.391749936516575e-8,0.0017891262814678304,-2.544988601042015e-5,1.4030567902762325e-8,0.0017893708634015488,-2.5550922719877188e-5,1.4117760285831568e-8,0.0017896570726811836,-2.5599109255723216e-5,1.4157333008626661e-8,0.0017899592671993573,-2.5582042811262578e-5,1.4138489270469296e-8,0.0017902519438446774,-2.5498478260559e-5,1.4060321791036643e-8,0.0017905123629933307,-2.535677868794753e-5,1.3930440496755607e-8,0.0017907225488373376,-2.51734072821892e-5,1.3763682625522863e-8,0.0017908711693659085,-2.4971322438834654e-5,1.3580725771725944e-8,0.0017909554371954345,-2.4777821665357153e-5,1.3406151734326352e-8,0.0017909827283962571,-2.462135499749847e-5,1.3265522508586063e-8,0.001790971202300491,-2.4527148765017287e-5,1.3181360162542386e-8,0.0017909485628708425,-2.4512064252896147e-5,1.316846906372442e-8,0.0017909483769799933,-2.457975629539259e-5,1.3229610662378395e-8,0.0017910040460442844,-2.4717652977466054e-5,1.3352913035006776e-8,0.001791141441592685,-2.4897216452611835e-5,1.3512291120867038e-8,0.0017913719494893788,-2.5078198784446382e-5,1.367144672572904e-8,0.0017916878464235458,-2.5216509648907783e-5,1.3791025050547342e-8,0.0017920615866127356,-2.5274345945545365e-5,1.3837668829362787e-8,0.0017924499408709217,-2.5230505604992228e-5,1.3793113821811035e-8,0.001792803043549295,-2.508822447015411e-5,1.3660997294053245e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json new file mode 100644 index 00000000..bf893510 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":16000,"numberOfSamples":1000,"samples":[0.0017930770944964171,-2.487756201187732e-5,1.3468791504217692e-8,0.0017932476264231187,-2.464987080068864e-5,1.3262714904077391e-8,0.0017933184724985877,-2.446409956071231e-5,1.3095425337680572e-8,0.0017933216314600794,-2.436869143477916e-5,1.3009865564682467e-8,0.0017933067138776958,-2.438639601001157e-5,1.3025800857085489e-8,0.0017933242278720884,-2.450889654783832e-5,1.3135191695059903e-8,0.0017934104016406212,-2.470298517826634e-5,1.330788790362845e-8,0.0017935796118112995,-2.4923857068963115e-5,1.35036193070344e-8,0.0017938254296263332,-2.512860398380717e-5,1.3684062401894767e-8,0.001794127049257825,-2.5285096932882215e-5,1.3820701756483629e-8,0.0017944568919538132,-2.537530987356056e-5,1.389769075082024e-8,0.0017947867111250417,-2.5394724503292413e-5,1.3911234845185292e-8,0.0017950914943699093,-2.5349982163249467e-5,1.3867468677974076e-8,0.0017953516485814604,-2.5256290869559507e-5,1.3780165902829643e-8,0.0017955543110713956,-2.513520274015715e-5,1.3668792904120013e-8,0.0017956944918898108,-2.501264398241291e-5,1.3556752559378335e-8,0.0017957763330320648,-2.4916631576514276e-5,1.3469287614057573e-8,0.0017958142078399008,-2.487403171878831e-5,1.343048298157746e-8,0.0017958328475770424,-2.4906014603702265e-5,1.3459107884232579e-8,0.001795865353512456,-2.5022541802827092e-5,1.3563657130380593e-8,0.001795948122041468,-2.521726303763574e-5,1.3737855679584164e-8,0.0017961127345561176,-2.546517299188524e-5,1.395871521848886e-8,0.0017963766324439365,-2.572537619201675e-5,1.4189187885469435e-8,0.0017967359302593923,-2.5949711291697144e-5,1.4386024761031048e-8,0.0017971637506210216,-2.6095329969824996e-5,1.451109103127541e-8,0.0017976155937020869,-2.6137143168968956e-5,1.4542469045381444e-8,0.0017980404371389018,-2.607573723966647e-5,1.4481422712615806e-8,0.001798394095120732,-2.5938065908348892e-5,1.4352832525648934e-8,0.0017986508156540284,-2.5770774714917362e-5,1.4199014670934582e-8,0.0017988099091846071,-2.5628118914854457e-5,1.4068743101640252e-8,0.0017988956039585806,-2.555773604555096e-5,1.4004458068040699e-8,0.0017989500158965364,-2.558822796060149e-5,1.4031230788508505e-8,0.0017990211621026053,-2.5722340085414784e-5,1.415084222610123e-8,0.0017991498357205768,-2.593791853046823e-5,1.4342850551324464e-8,0.0017993597382745207,-2.6195968610161597e-5,1.4571956673982097e-8,0.0017996538157950808,-2.645239065855816e-5,1.4798559267271849e-8,0.0018000169294873425,-2.666894130169837e-5,1.498852497549383e-8,0.0018004224996779246,-2.6820193009237008e-5,1.5119328433877708e-8,0.0018008399579285909,-2.6895709367472842e-5,1.5181911626012463e-8,0.0018012407279650508,-2.6898643187987404e-5,1.5179375808053418e-8,0.0018016019580566775,-2.6842624017871885e-5,1.512418529733506e-8,0.0018019083507358257,-2.6748422125539742e-5,1.503519386765796e-8,0.0018021529000758112,-2.664111066735776e-5,1.4935106313335826e-8,0.0018023373010458653,-2.654770620791294e-5,1.4848328300519829e-8,0.0018024724205052492,-2.6494772143160663e-5,1.4798742963175621e-8,0.0018025786668415908,-2.6505317999914305e-5,1.4806850211476605e-8,0.0018026854955645365,-2.659451656531552e-5,1.4885891179718516e-8,0.0018028287921071594,-2.6764406036804033e-5,1.5037147763755564e-8,0.0018030448604636129,-2.6999007434058543e-5,1.5245693907824705e-8,0.0018033608554715635,-2.726276700041339e-5,1.5479157196478573e-8,0.0018037839756043577,-2.750560873314212e-5,1.5692371417557645e-8,0.0018042943907072807,-2.767567790489397e-5,1.583886014992919e-8,0.0018048471164087917,-2.7736268154231167e-5,1.5886025345858665e-8,0.0018053841995643509,-2.7679480289528892e-5,1.582737530167465e-8,0.0018058526507647669,-2.752969711011927e-5,1.5685558185452904e-8,0.001806220217685462,-2.73353380759272e-5,1.550478294473961e-8,0.0018064829196074033,-2.715336860705409e-5,1.533667607943918e-8,0.001806663117932587,-2.7033305913710596e-5,1.5225741546222746e-8,0.001806800801895628,-2.7005730814722615e-5,1.5199028506319084e-8,0.0018069420013151019,-2.7077300335566203e-5,1.5261811538653193e-8,0.0018071276684187964,-2.7232000211422743e-5,1.5398964117004876e-8,0.0018073853085648632,-2.7437165696606414e-5,1.5580585890886757e-8,0.0018077246572371043,-2.7652248535832284e-5,1.576998693661435e-8,0.0018081377800550024,-2.7838089562507862e-5,1.5932006675260243e-8,0.0018086029626342595,-2.7964541054522235e-5,1.603977518121356e-8,0.0018090908374324907,-2.8014926126988497e-5,1.607861859878816e-8,0.00180957084697334,-2.7986978508900445e-5,1.6046829753568754e-8,0.0018100165314672806,-2.7890983536707856e-5,1.5953965389800106e-8,0.0018104089137041853,-2.774636589803873e-5,1.5817776136232783e-8,0.0018107380434183873,-2.7577939639375955e-5,1.5660833269492737e-8,0.0018110032945058872,-2.7412588632335316e-5,1.5507519669488106e-8,0.0018112130984671998,-2.727650820984009e-5,1.5381492498527788e-8,0.0018113845185778008,-2.719266881496396e-5,1.5303331370154355e-8,0.0018115426463610783,-2.7177984586301253e-5,1.5287947407869493e-8,0.0018117192686648675,-2.7239724617485946e-5,1.5341380468993828e-8,0.001811949680932402,-2.7371212382235838e-5,1.545703888127489e-8,0.0018122663836599232,-2.754807176709037e-5,1.561247872864076e-8,0.0018126893601793177,-2.772785807579092e-5,1.57692019263019e-8,0.001813215168157243,-2.7856683016959833e-5,1.5878661656300398e-8,0.001813810503341971,-2.788443523714781e-5,1.589593222254393e-8,0.0018144169960900853,-2.7784424994027194e-5,1.5797369795099836e-8,0.0018149690546354657,-2.7567238609616395e-5,1.5593102180247856e-8,0.0018154173615913274,-2.7279217321055754e-5,1.532562475157829e-8,0.001815745477353155,-2.698524284095293e-5,1.5054105867581623e-8,0.001815971625884253,-2.674564379645672e-5,1.4833294082824518e-8,0.0018161376350310534,-2.6598869981665784e-5,1.4697715161200344e-8,0.0018162930699050063,-2.6555272801256695e-5,1.46561098570472e-8,0.0018164816791041126,-2.6600309925083196e-5,1.4694563048089877e-8,0.001816733162707175,-2.6702680190249542e-5,1.4784125685246063e-8,0.0018170600913158257,-2.682355433898887e-5,1.4889335877885533e-8,0.0018174585911996668,-2.6924764974141972e-5,1.4975656178105195e-8,0.0018179114635388195,-2.697514492077015e-5,1.5015123550887387e-8,0.0018183927840198378,-2.69547379106428e-5,1.499003182489609e-8,0.0018188731580403156,-2.6856711418009936e-5,1.4894556739454665e-8,0.001819324793629755,-2.6687029559253713e-5,1.473440683021408e-8,0.0018197256785068433,-2.6462277654925132e-5,1.4524849413287513e-8,0.001820062373922574,-2.6206258898886165e-5,1.428764312060864e-8,0.001820331254382838,-2.5946127881015275e-5,1.4047536963377575e-8,0.001820538445168254,-2.5708755861324498e-5,1.3828946837314153e-8,0.0018206989383891886,-2.5517624437804906e-5,1.365308557110985e-8,0.0018208352337955717,-2.5390152599451144e-5,1.3535489407026761e-8,0.0018209755912363625,-2.5335207243642732e-5,1.34837573147026e-8,0.001821151632775928,-2.5350517985874814e-5,1.3495281869197622e-8,0.0018213945362785741,-2.5420047270152325e-5,1.3555011738893574e-8,0.0018217289276931587,-2.551235675360919e-5,1.363413439824075e-8,0.001822164406689718,-2.5582239942904856e-5,1.3691653129699898e-8,0.001822686655285152,-2.557849948022469e-5,1.3681411343723724e-8,0.0018232531039378613,-2.5459295222371094e-5,1.3565889406493894e-8,0.0018237998026180275,-2.5211254782313133e-5,1.3333435451442727e-8,0.0018242618025331551,-2.48617013791813e-5,1.300934477782622e-8,0.0018245988973076108,-2.4473013353101097e-5,1.2650735273151976e-8,0.0018248114805428112,-2.4119027032174727e-5,1.2325005783849212e-8,0.0018249369229238492,-2.3856916289854328e-5,1.2084104532181132e-8,0.0018250308362240503,-2.371030618670482e-5,1.1949100841989596e-8,0.001825146047330891,-2.366910915234589e-5,1.1910159201163204e-8,0.0018253190675345766,-2.3700474694523012e-5,1.1936747643950821e-8,0.0018255659145471929,-2.3762271034004848e-5,1.1990121606287427e-8,0.0018258842445968248,-2.3813805840709907e-5,1.2033166516185259e-8,0.001826258169929863,-2.382242826521537e-5,1.2036355717542334e-8,0.0018266634773100754,-2.3766769983762126e-5,1.1980573637170289e-8,0.001827072388230482,-2.363782080690576e-5,1.1857967699394822e-8,0.0018274577516185762,-2.343858881848419e-5,1.1671564450583e-8,0.0018277966526101797,-2.318264021823313e-5,1.1433927158541618e-8,0.0018280733241575382,-2.2891668446499556e-5,1.1164967072672481e-8,0.0018282811577905753,-2.259224023359341e-5,1.0889004337993399e-8,0.001828423551827078,-2.231201801919025e-5,1.0631321018346868e-8,0.0018285135003267157,-2.207596922814408e-5,1.0414665395833809e-8,0.0018285721071275558,-2.1903000912757984e-5,1.0256127104231967e-8,0.0018286262706814032,-2.1803209435120533e-5,1.0164594038831645e-8,0.001828705702435555,-2.177583438325039e-5,1.0138909579633824e-8,0.001828839337656277,-2.1807956588344662e-5,1.0166784524005633e-8,0.0018290509329571627,-2.1874064192536067e-5,1.0224554437432966e-8,0.0018293535538177238,-2.1937215282132975e-5,1.027838557907086e-8,0.0018297433561300666,-2.1953289747187514e-5,1.0288214837085777e-8,0.0018301945153309169,-2.1879869760203124e-5,1.0215787794044302e-8,0.001830658946308421,-2.168992779500395e-5,1.0036992338479185e-8,0.0018310753618979378,-2.138679258668782e-5,9.755367998113473e-9,0.0018313889838965569,-2.1011704357252705e-5,9.40893730399691e-9,0.0018315746329431721,-2.063467135717398e-5,9.061841978804914e-9,0.0018316490783180249,-2.0328796754628263e-5,8.780851241439044e-9,0.0018316632653398112,-2.0141677331726018e-5,8.60917634137112e-9,0.001831679395233614,-2.0080681978185537e-5,8.55305072202464e-9,0.0018317476612021335,-2.0117816834583795e-5,8.586332987307337e-9,0.0018318940208144653,-2.0206428881992914e-5,8.665969743081962e-9,0.0018321201082134187,-2.0298263194615822e-5,8.747708166164193e-9,0.001832409908402203,-2.0354458317239478e-5,8.796142458866711e-9,0.00183273774398109,-2.035003732644327e-5,8.788718700893353e-9,0.001833074770107819,-2.027416826766039e-5,8.715846695855356e-9,0.001833393452426999,-2.0128529716534936e-5,8.579316424344743e-9,0.0018336705866361742,-1.992511730302927e-5,8.390268759309309e-9,0.0018338894912187423,-1.968387735533606e-5,8.167058601271752e-9,0.0018340416791292305,-1.943010095958344e-5,7.932910852662894e-9,0.0018341280134618974,-1.9191384559990707e-5,7.713154507289564e-9,0.0018341590816821458,-1.8994066898046752e-5,7.53193522572574e-9,0.0018341544149850127,-1.885940649167221e-5,7.40865932392435e-9,0.0018341403815578727,-1.8800038802715472e-5,7.3546966523347715e-9,0.0018341468535115438,-1.8817250628981883e-5,7.370872897137305e-9,0.0018342029234141627,-1.889956862277312e-5,7.446231414582977e-9,0.0018343321227258867,-1.9023083174690816e-5,7.558447698209529e-9,0.0018345476553118807,-1.9153707945490168e-5,7.676042116963366e-9,0.0018348481083950683,-1.9251549921866032e-5,7.762491329140837e-9,0.0018352144196331546,-1.9277769509678416e-5,7.782530133022137e-9,0.0018356096596253435,-1.920398976117508e-5,7.710681424220857e-9,0.0018359837763515755,-1.9022957466042443e-5,7.540865396769042e-9,0.0018362849741516284,-1.8756908829736255e-5,7.293910761478627e-9,0.0018364766833233455,-1.8457870012827724e-5,7.017737181329629e-9,0.0018365538571077135,-1.8194914639068882e-5,6.775647214996834e-9,0.001836548563460727,-1.803024372589666e-5,6.624410847690285e-9,0.0018365187675594202,-1.7995409567851337e-5,6.592525088216024e-9,0.0018365252877235454,-1.8081331449302935e-5,6.671177914624835e-9,0.0018366101542084223,-1.8246672589318575e-5,6.822077045534804e-9,0.0018367869375824912,-1.8436994200718304e-5,6.995122222991016e-9,0.001837043888830328,-1.8602938875977135e-5,7.145101322978344e-9,0.0018373537387537482,-1.8710583772040503e-5,7.241122599512904e-9,0.0018376837337121634,-1.8743874840279134e-5,7.2687428712580284e-9,0.0018380027530075403,-1.8702372696090056e-5,7.227808403795434e-9,0.0018382852635966235,-1.8597450955179613e-5,7.128926096284541e-9,0.001838513176276471,-1.8448670412689796e-5,6.990149973877557e-9,0.0018386767249291653,-1.8280754164638692e-5,6.8342449477846595e-9,0.0018387750038904136,-1.812090639012062e-5,6.686252226411574e-9,0.0018388162973281307,-1.799601728606697e-5,6.570911706461216e-9,0.0018388179260978472,-1.7929389648419776e-5,6.509607695224068e-9,0.0018388050594228275,-1.7937016075237906e-5,6.516893378261047e-9,0.0018388079846011016,-1.8023966004633595e-5,6.597145459559734e-9,0.001838857713922728,-1.818180313357647e-5,6.742223335637884e-9,0.0018389803552352245,-1.838806035919854e-5,6.9310780933096055e-9,0.0018391912530982262,-1.860858891245793e-5,7.132034188312767e-9,0.0018394902971468079,-1.88029481324306e-5,7.3078518212857724e-9,0.0018398597310770378,-1.8932177661136858e-5,7.422918615431776e-9,0.0018402654168871984,-1.896772954162206e-5,7.451423914551764e-9,0.0018406621235211068,-1.8899934385024923e-5,7.385028293072869e-9,0.0018410028729857332,-1.8743806537061265e-5,7.238049462551088e-9,0.0018412512510457238,-1.8539475868505472e-5,7.047719368366382e-9,0.0018413937282192889,-1.834483799071887e-5,6.86733900839635e-9,0.0018414470718991932,-1.8220140618210308e-5,6.752093172557913e-9,0.0018414557581306575,-1.8208514775956216e-5,6.741217444212319e-9,0.0018414780209857879,-1.8320709364073575e-5,6.844095149750602e-9,0.001841565803992494,-1.8532077021471085e-5,7.037638298125493e-9,0.0018417482230087799,-1.8793447944416692e-5,7.276395121919292e-9,0.001842025845932932,-1.9049480082961622e-5,7.509453930519011e-9,0.001842376034057044,-1.925507263145096e-5,7.69549565376883e-9,0.0018427639401787223,-1.9383990375315344e-5,7.810647629678605e-9,0.0018431531413094465,-1.942958955901095e-5,7.849070713791684e-9,0.0018435127392187048,-1.940088549418417e-5,7.8192866216250315E-09,0.001843820730492911,-1.9317320377072763e-5,7.739348166296656e-9,0.0018440648885501498,-1.9204160908646343e-5,7.632620118984367e-9,0.001844242531542363,-1.9089035068363377e-5,7.524612793811735e-9,0.0018443600647661403,-1.8999259868333292e-5,7.440521812341918e-9,0.001844432549312981,-1.8959307662865297e-5,7.402863667254894e-9,0.0018444829953387927,-1.8987874349045107e-5,7.428729689176291e-9,0.0018445407209490732,-1.9094430440071465e-5,7.52658268876082e-9,0.0018446380463958871,-1.9275761849198014e-5,7.693093256534828e-9,0.001844804951317121,-1.9513700180089063e-5,7.911127592194227e-9,0.0018450622049142106,-1.9775670897407012e-5,8.15036239379623e-9,0.0018454146537959305,-2.0019361155694627e-5,8.37168352380671e-9,0.0018458471645658634,-2.020149491512519e-5,8.53532123115057e-9,0.001846325472916595,-2.0288852030465627e-5,8.610991677718667e-9,0.001846802738334875,-2.0268255874207588e-5,8.587035433849896e-9,0.0018472305526570348,-2.0152106866842266e-5,8.475412368243551e-9,0.0018475714841345342,-1.99772538420524e-5,8.31053358635742e-9,0.0018478096100095864,-1.9796940495792812e-5,8.141712154172403e-9,0.0018479558587613187,-1.9667497884298463e-5,8.020816057287474e-9,0.0018480460497650023,-1.9633092096664974e-5,7.988216118779569e-9,0.0018481313475885142,-1.97130435184807e-5,8.061204673026506e-9,0.0018482635125553158,-1.989628715353263e-5,8.229056332405201e-9,0.0018484798977238869,-2.014547254945726e-5,8.45695909902495e-9,0.0018487937859131421,-2.0409270039150275e-5,8.697434490355547e-9,0.0018491933464550954,-2.0637777460108637e-5,8.904531720257321e-9,0.001849648388562267,-2.0794981895125802e-5,9.04525543618406e-9,0.0018501208603383453,-2.0864590650255843e-5,9.104868950596546e-9,0.0018505745805460858,-2.0849287684095834e-5,9.086145203825255e-9,0.0018509815951685388,-2.0766006244656177e-5,9.004964655845875e-9,0.0018513249009249032,-2.0640121265863943e-5,8.88493947825769e-9,0.0018515986248674762,-2.0500399014916906e-5,8.75275158592604e-9,0.0018518069924697927,-2.037529947986055e-5,8.634737803338043e-9,0.0018519630574627775,-2.029034519449881e-5,8.55444480376467e-9,0.0018520875544509319,-2.0265862670398454e-5,8.530515515536571e-9,0.0018522076118006106,-2.0314479503742223e-5,8.574357895458459e-9,0.001852354640478269,-2.043817792207266e-5,8.68743961998716e-9,0.0018525605725263623,-2.0625343158510295e-5,8.85862825193293e-9,0.0018528519045839407,-2.0849110173348045e-5,9.06276525797922e-9,0.0018532420360760945,-2.1069073571299936e-5,9.262339779435322e-9,0.001853724130935122,-2.123818424609054e-5,9.413907129041965e-9,0.0018542681745039775,-2.13146965067963e-5,9.479118156772436e-9,0.001854825500677946,-2.1275855803305648e-5,9.437327265942164e-9,0.0018553411001434338,-2.1127603421251835e-5,9.294511094167757e-9,0.001855769808091963,-2.0905197786356253e-5,9.083769325899609e-9,0.001856089934500493,-2.066366542445483e-5,8.856377940750694e-9,0.001856309055157489,-2.0461827016597087e-5,8.66688007773098e-9,0.0018564605291198604,-2.0346009610590452e-5,8.557941716365146e-9,0.0018565929794966702,-2.0338609963516525e-5,8.549815123998282e-9,0.0018567566935258077,-2.0434095465034442e-5,8.636794189047838e-9,0.0018569909246059376,-2.0602544164462002e-5,8.790679141975657e-9,0.001857315247217037,-2.079894845221756e-5,8.96952007306406e-9,0.0018577267622189627,-2.097526582003082e-5,9.12880609280628e-9,0.001858203223977554,-2.109175679528336e-5,9.231914666619509e-9,0.0018587104540100233,-2.1124682017155018e-5,9.257156442445109e-9,0.0018592113115679834,-2.106890188932159e-5,9.200104828967708e-9,0.0018596735056705283,-2.0935816127821806e-5,9.07163153057935e-9,0.0018600745996205108,-2.0748452915729757e-5,8.89332379757743e-9,0.0018604039664238258,-2.0535775690622106e-5,8.692194187757801e-9,0.0018606624467996109,-2.032768021272182e-5,8.496037214902576e-9,0.0018608607937328295,-2.0151290741381685e-5,8.329989644194028e-9,0.0018610177895546044,-2.0028404875289557e-5,8.214148845006132e-9,0.0018611584243115355,-1.9973516875703052e-5,8.161728802068476e-9,0.0018613119834204608,-1.999186368250376e-5,8.17725592983337e-9,0.0018615094730483387,-2.0077264157555704e-5,8.254611200906061e-9,0.0018617795921467622,-2.021010824142319e-5,8.375250055651793e-9,0.0018621426777235635,-2.0356759570897997e-5,8.507743574528015e-9,0.0018626030974959807,-2.0472527218197918e-5,8.610594760757943e-9,0.001863142529370494,-2.0510266452106173e-5,8.640213095127023e-9,0.001863718542838287,-2.0434462278556232e-5,8.563932655985352e-9,0.0018642726717816077,-2.0236362154722935e-5,8.374014217097276e-9,0.0018647478436570396,-1.9942109211313427e-5,8.095175761587323e-9,0.001865108368948935,-1.960728289796133e-5,7.779474788722417e-9,0.0018653524017467537,-1.9298711898535704e-5,7.4892916930745e-9,0.0018655107551995035,-1.9072315354648044e-5,7.27659510756275e-9,0.0018656340820196373,-1.895724351204022e-5,7.168151304633016e-9,0.0018657758320747826,-1.895135064135561e-5,7.161416176012306e-9,0.0018659780113648356,-1.9026593337249196e-5,7.229749985625541e-9,0.0018662631207856332,-1.9139791481250695e-5,7.332602529333776e-9,0.0018666323647777408,-1.9244376015289706e-5,7.426524029334083e-9,0.0018670686302071045,-1.93003096381889e-5,7.474374412439072e-9,0.0018675424105708905,-1.9280847880737214e-5,7.451532270409492e-9,0.0018680189994260549,-1.9175704489265866e-5,7.348747503653877e-9,0.0018684654564785955,-1.8990736169104185e-5,7.171778438188237e-9,0.0018688561260398076,-1.8744836865035615e-5,6.938463114669843e-9,0.0018691760026911882,-1.8465188498455326e-5,6.674284503730649e-9,0.001869421833270251,-1.818207784859466e-5,6.407542925266269e-9,0.0018696013388690184,-1.7924257543533537e-5,6.165035437391302e-9,0.0018697312745747144,-1.77154221714517e-5,5.968767927016784e-9,0.0018698350512996898,-1.7571817919185243e-5,5.8337191006715384e-9,0.0018699402886244905,-1.750060390009367e-5,5.76630978226681e-9,0.0018700762544792589,-1.7498573862310598e-5,5.763229760950721e-9,0.0018702708423503566,-1.7551071627329354e-5,5.8104800416812336e-9,0.0018705465025051088,-1.763137263486119e-5,5.882878383752786e-9,0.0018709146903029294,-1.770161615547732e-5,5.945007935726127e-9,0.0018713693790612124,-1.771717503436893e-5,5.955326079857078e-9,0.001871882005628167,-1.7636224585071255e-5,5.875056690709975e-9,0.0018724021730790383,-1.7434179833481032e-5,5.681589270232072e-9,0.0018728684333721528,-1.7118167658035483e-5,5.3819353393236815e-9,0.0018732287172204356,-1.6732355540166632e-5,5.017686966724454e-9,0.0018734616898216,-1.6346704189132433e-5,4.654472798669768e-9,0.0018735862278335242,-1.6031827206181716e-5,4.358367558462995e-9,0.0018736526901350647,-1.583326478782647e-5,4.1717537065880975e-9,0.0018737219046122688,-1.5758804508346698e-5,4.10148922345258e-9,0.0018738443004110933,-1.578241850439683e-5,4.12273758898688e-9,0.0018740479774201498,-1.5858384906640113e-5,4.192354118637595e-9,0.0018743368377812267,-1.5936813363410486e-5,4.2635170100055776e-9,0.0018746952507608576,-1.5975245333576563e-5,4.296582563572818e-9,0.001875095253598817,-1.594505681652756e-5,4.265000879239349e-9,0.0018755037392833745,-1.5833619336192383e-5,4.157239354603041e-9,0.0018758885761289046,-1.5643635440476038e-5,3.976084601740173e-9,0.001876223379869671,-1.539063040568846e-5,3.736258860742264e-9,0.0018764908158095375,-1.5099215718405392e-5,3.460921341786339e-9,0.0018766843555797306,-1.4798700313825205e-5,3.1775739251165955e-9,0.001876808514204054,-1.4518593640800304e-5,2.913862771528727e-9,0.001876877684600156,-1.428449594527703e-5,2.6937304046643276e-9,0.0018769138794313335,-1.4114849713635936e-5,2.534362112040424e-9,0.001876943877891384,-1.4018784813808756e-5,2.444153315210054e-9,0.0018769961556297737,-1.3994930354196748e-5,2.4215928014478305e-9,0.0018770976892354386,-1.4030988542626093e-5,2.454884423634573e-9,0.0018772705481379275,-1.4104015382463982e-5,2.5222631987773908e-9,0.001877528051302119,-1.4181603792678899e-5,2.5931789806121115e-9,0.0018778703569376982,-1.4224713941675174e-5,2.6310160704288327e-9,0.0018782801543122864,-1.4193451439422243e-5,2.598529820729149e-9,0.0018787205590664604,-1.405678212300852e-5,2.4669139600598395e-9,0.0018791386692319275,-1.3805285464980217e-5,2.2276810492311913e-9,0.0018794780123360833,-1.3462303276611882e-5,1.9030504386180313e-9,0.0018796988460152687,-1.3085081939944344e-5,1.5469771882351445e-9,0.001879797376121251,-1.2749246711917046e-5,1.2305366805810725e-9,0.001879810814909188,-1.2520431987685998e-5,1.0152379061173355e-9,0.0018798025069450173,-1.2428480565797385e-5,9.28792039154265e-10,0.0018798356637794984,-1.2459405930458762e-5,9.576569245815327e-10,0.0018799514652937973,-1.2567147881760806e-5,1.058227207885944e-9,0.0018801611228964044,-1.2694459694026742e-5,1.1765668337490139e-9,0.0018804504286041776,-1.2790844470236134e-5,1.2652815802583089e-9,0.0018807898296935043,-1.2822211239622132e-5,1.2925348480468322e-9,0.001881144296639176,-1.2773137375766395e-5,1.244082520275377e-9,0.001881480541304962,-1.2644829708590756e-5,1.1212779543347608e-9,0.0018817714830373492,-1.2451442593087324e-5,9.37573033027889e-10,0.0018819987877392661,-1.2216113471832141e-5,7.147943106851535e-10,0.0018821541835679256,-1.1967040551517974e-5,4.79481554800589e-10,0.001882239823342938,-1.1733614321682521e-5,2.592733145950963e-10,0.0018822677333682823,-1.1542659347071796e-5,7.937878641490489e-11,0.001882258290813125,-1.1414929386642006e-5,-4.073055482831923e-11,0.00188223769665013,-1.1362192719985607e-5,-9.008293919875422e-11,0.001882234648515446,-1.1385337979164145e-5,-6.800108198389007e-11,0.0018822765976668182,-1.147373068275585e-5,1.529829570741141e-11,0.0018823859220090569,-1.1605863972995146e-5,1.3934936610352848e-10,0.0018825762769299201,-1.1751333204930212e-5,2.7535196640362164e-10,0.001882849356696919,-1.1874174668779581e-5,3.8937810798312383e-10,0.0018831923326353601,-1.1937760844475924e-5,4.470257514000792e-10,0.0018835766745060477,-1.1911660763090492e-5,4.198775427362523e-10,0.0018839599006157666,-1.1780441166968134e-5,2.937343558620432e-10,0.0018842923200876947,-1.1552816367157377e-5,7.714292268036392e-11,0.0018845300065070212,-1.1267101431234662e-5,-1.935563353070176e-10,0.001884651848842402,-1.0986979616266467e-5,-4.582805070815646e-10,0.0018846729512961321,-1.0783668473551395e-5,-6.500369715974631e-10,0.001884644026311698,-1.0709107993313308e-5,-7.201687612284614e-10,0.0018846329849430254,-1.0774324376780514e-5,-6.586566194780138e-10,0.0018846977991100334,-1.0946622650667459e-5,-4.966346506891892e-10,0.0018848664449174443,-1.1166459365350037e-5,-2.9038739613313543e-10,0.0018851332005309256,-1.1371807843700045e-5,-9.836030862044166e-11,0.00188546833284025,-1.1516483567944784e-5,3.6072174092010136e-11,0.0018858320534413794,-1.1577196587717038e-5,9.118298144119174e-11,0.0018861858170151932,-1.1551897946543376e-5,6.526251494340663e-11,0.0018864988368209698,-1.1454250824736898e-5,-2.8641386320276168e-11,0.0018867506997908348,-1.130771157982184e-5,-1.683171289939276e-10,0.0018869317981828468,-1.114067253953726e-5,-3.269535468848281e-10,0.00188704288267068,-1.0982683580718171e-5,-4.766790893169354e-10,0.00188709425157458,-1.0861262431198378e-5,-5.915582605683498e-10,0.0018871045582005074,-1.0798915164720963e-5,-6.504092600231872e-10,0.0018870989904794264,-1.0810255077489202e-5,-6.395398827368157e-10,0.0018871065171513206,-1.089946266139451e-5,-5.551558313967678e-10,0.0018871561148395357,-1.1058676341069262e-5,-4.048719775294948e-10,0.0018872723151573511,-1.1267948529405112e-5,-2.077232698081918e-10,0.0018874707273317042,-1.1497174238386989e-5,7.702962172308863e-12,0.0018877543345839755,-1.1710094620244999e-5,2.0709679356946207e-10,0.0018881113731507087,-1.1870079468074387e-5,3.5592247332806187e-10,0.0018885154354453212,-1.1947025394181564e-5,4.2594198011051527e-10,0.0018889282709940963,-1.1924554434572256e-5,4.0198452420754266e-10,0.0018893057509901104,-1.180642796887354e-5,2.8793937793174093e-10,0.0018896072155190882,-1.1620319815144137e-5,1.102325230061882e-10,0.0018898073174633363,-1.141620503858083e-5,-8.378045830706647e-11,0.0018899072882816023,-1.1256680872880053e-5,-2.350144500265779e-10,0.00188994004525897,-1.1199004466727915e-5,-2.8962303888349816e-10,0.0018899634124805416,-1.1274091765243815e-5,-2.187662588737686e-10,0.0018900409279768637,-1.1472911999612212e-5,-3.133758064503063e-11,0.0018902183761997377,-1.1749297526970216e-5,2.2880621691449785e-10,0.0018905085190595347,-1.2038537620544541e-5,5.004579398597872e-10,0.0018908911977333046,-1.2281010673800587e-5,7.273646082903298e-10,0.0018913257026649535,-1.2438746635557551e-5,8.738262880584713e-10,0.001891766418942364,-1.2500025159169855e-5,9.289921702418269e-10,0.0018921745217345054,-1.2474898759061678e-5,9.025856295473614e-10,0.0018925235949496604,-1.2387224374957897e-5,8.173373978207359e-10,0.0018928006012498605,-1.2267242724669224e-5,7.019521780489794e-10,0.001893004532648849,-1.2146219309942353e-5,5.860420989860535e-10,0.0018931444568213974,-1.2052958305120446e-5,4.968374482519974e-10,0.0018932376922635935,-1.201136506885249e-5,4.5688395279176046e-10,0.0018933080932005942,-1.203830971069964e-5,4.820179060546816e-10,0.0018933840198379344,-1.2141431704543413e-5,5.792878687063079e-10,0.0018934954432214392,-1.2317048491958935e-5,7.449904944807481e-10,0.0018936698433884116,-1.2548874791752978e-5,9.63493451044306e-10,0.0018939271289290503,-1.2808571057900438e-5,1.207801973263226e-9,0.0018942745270844783,-1.3059009801183272e-5,1.4426931836520661e-9,0.0018947029628015445,-1.3260512884313262e-5,1.6306445395104082e-9,0.0018951865409454112,-1.3379240786205856e-5,1.739776196090901e-9,0.0018956861193035659,-1.339582085200682e-5,1.7520006276159735e-9,0.001896156784362993,-1.3311821218936873e-5,1.6691149414387627e-9,0.0018965578833635218,-1.315201628144059e-5,1.5148888736049156e-9,0.0018968634955145083,-1.2961201862073039e-5,1.3319718714925833e-9,0.0018970707895216053,-1.27953186054354e-5,1.1734090967998433e-9,0.0018972035254706415,-1.270792499395131e-5,1.0897877058615488e-9,0.0018973082905004745,-1.2734836504746565e-5,1.1147159041982071e-9,0.0018974426469162598,-1.2881765897702211e-5,1.2532161191392723e-9,0.0018976577334179135,-1.3120638566367633e-5,1.4783604413576136e-9,0.0018979817061840188,-1.3397830754750496e-5,1.7391592222003208e-9,0.001898411458923872,-1.3651830597880485e-5,1.9773042111285594e-9,0.0018989162166529016,-1.3832467412215963e-5,2.1453543532283e-9,0.0018994501504002229,-1.3913394698958246e-5,2.218528300226893e-9,0.0018999670934915821,-1.3894285229865015e-5,2.1967560935101533e-9,0.0019004313205916007,-1.3794987368719163e-5,2.0991062793393773e-9,0.0019008222473536457,-1.3646563923406225e-5,1.9552477096692173e-9,0.0019011342862434643,-1.3483210869567092e-5,1.7977502645593472e-9,0.0019013742670453792,-1.3336710126712298e-5,1.656805182705815e-9,0.0019015583445810035,-1.3233251710861967e-5,1.557210441490532e-9,0.0019017093215130678,-1.3191683234416556e-5,1.516718948288368e-9,0.0019018544551819409,-1.322222486221346e-5,1.5448335845441187e-9,0.0019020232614363063,-1.332508798252e-5,1.641518474045382e-9,0.0019022446122891282,-1.3489036976123344e-5,1.7958687511443292e-9,0.0019025425844261994,-1.369058867045455e-5,1.985394636394811e-9,0.0019029310998461496,-1.3895103526272778e-5,2.177098013812628e-9,0.0019034084130146504,-1.4061158291373949e-5,2.3316432829741173e-9,0.0019039536403952983,-1.4148798826174367e-5,2.411188360481643e-9,0.00190452798036301,-1.4130390523376207e-5,2.3896713112052716e-9,0.0019050821403015848,-1.4000599135125858e-5,2.262277159589695e-9,0.0019055688083909521,-1.3781106731241096e-5,2.0499028297317794e-9,0.0019059562148011579,-1.3517137805515713e-5,1.795813482384683e-9,0.0019062378216281627,-1.3266226807941069e-5,1.55488479026225e-9,0.0019064346707243743,-1.3082876840158903e-5,1.3789321851604236e-9,0.0019065897975290977,-1.300402884385789e-5,1.3028645792247607e-9,0.0019067566525288243,-1.3039478647258866e-5,1.335631681489911e-9,0.0019069848668208623,-1.3169664466781716e-5,1.458241594737562e-9,0.0019073072088376596,-1.3351363244590194e-5,1.6292950121476715e-9,0.0019077314104704636,-1.35297729754093e-5,1.7965331398129217e-9,0.0019082393455308658,-1.3653389545506359e-5,1.910981408664566e-9,0.0019087936495511212,-1.368692249063571e-5,1.9391998920108105e-9,0.0019093490888763,-1.36182247050182e-5,1.8698433679372743e-9,0.0019098643504093444,-1.3457815665676977e-5,1.7131785903247102e-9,0.0019103104535418381,-1.3232664882104302e-5,1.49513174647234e-9,0.001910674199703993,-1.2977653683504635e-5,1.2491153226176072e-9,0.001910957383345947,-1.2727836569487273e-5,1.0086216538112337e-9,0.0019111736376836673,-1.2513095263658599e-5,8.021151208985223e-10,0.0019113446910483782,-1.2355262008813369e-5,6.502990133921028e-10,0.0019114970699477254,-1.2266914435896981e-5,5.649887739956633e-10,0.001911659458251913,-1.2250863989869682e-5,5.48651037755953e-10,0.0019118603142655674,-1.2299688915426472e-5,5.939871771107086e-10,0.0019121250704395051,-1.2395224103850199e-5,6.83479516283135e-10,0.001912472298250459,-1.2508553962420433e-5,7.894175597020551e-10,0.0019129086995072113,-1.2601732458062466e-5,8.755614362231623e-10,0.0019134238587510172,-1.2632856875682743e-5,9.019823758839568e-10,0.0019139872139001782,-1.2565475255362356e-5,8.340185275907759e-10,0.0019145507149744756,-1.2380996991705414e-5,6.541016494998854e-10,0.0019150594943169597,-1.208942059331609e-5,3.720012705806915e-10,0.0019154687355826697,-1.1731803189978585e-5,2.7186751351475117e-11,0.0019157599073696201,-1.1370438510631843e-5,-3.2059589419623007e-10,0.0019159480871280882,-1.1069433649940181e-5,-6.099776897920081e-10,0.0019160765242110884,-1.0874351161307604e-5,-7.975067244527357e-10,0.001916201638240862,-1.0799731954230843e-5,-8.695695269755934e-10,0.0019163757206690922,-1.0828066294132719e-5,-8.432736692445251e-10,0.001916633663319116,-1.0918083407511515e-5,-7.583931686950212e-10,0.0019169865545414935,-1.1017681518618213e-5,-6.649208970516302e-10,0.0019174220148160516,-1.1077138327480256e-5,-6.104228457140029e-10,0.001917909652400136,-1.1059628873658679e-5,-6.300141180862712e-10,0.0019184095373273615,-1.0947442807596206e-5,-7.404583107456317e-10,0.0019188815145464583,-1.074336196537258e-5,-9.388858115135974e-10,0.0019192932808213034,-1.0467594123611643e-5,-1.20575358697917e-9,0.0019196256213150462,-1.0151606595075532e-5,-1.5107725145640873e-9,0.0019198741582867806,-9.830831037267878e-6,-1.8199155582087304e-9,0.001920048034328906,-9.53810189496491e-6,-2.101716952530784e-9,0.00192016664884815,-9.298985720095432e-6,-2.3317451423285186e-9,0.0019202557299710247,-9.129284586844093e-6,-2.4949779817672822e-9,0.0019203436982262987,-9.03425635494825e-6,-2.5865276762768656e-9,0.0019204586561453517,-9.008766308266697e-6,-2.6114761398253937e-9,0.0019206257964393613,-9.037767379553837e-6,-2.584400459288261e-9,0.0019208647556760669,-9.096934635335611e-6,-2.528749375572851e-9,0.0019211863918376449,-9.153791617985142e-6,-2.475744453410305e-9,0.0019215887893763244,-9.170318069016814e-6,-2.4618619106144695e-9,0.0019220532680969222,-9.108486698013456e-6,-2.5235177511399977e-9,0.0019225426370994027,-8.93968667282501e-6,-2.6880381102716844e-9,0.0019230051437690364,-8.656881355420935e-6,-2.9620064184294193e-9,0.0019233868768198299,-8.284641843373393e-6,-3.321635583237772e-9,0.0019236508865696793,-7.87924983238811e-6,-3.7126811593957043e-9,0.0019237944180940756,-7.513626152701059e-6,-4.064969808739745e-9,0.0019238530642237287,-7.251346875133989e-6,-4.317442787274023e-9,0.0019238875264319904,-7.123184534446885e-6,-4.440727658128514e-9,0.0019239602849499028,-7.118772335068044e-6,-4.445080751689829e-9,0.0019241150340064711,-7.195410187776e-6,-4.3718032484889515e-9,0.0019243672115235493,-7.296057858543114e-6,-4.275859784550209e-9,0.0019247056490780219,-7.366796576870663e-6,-4.209081160263236e-9,0.001925100638222425,-7.368390575798459e-6,-4.2090899838722325e-9,0.0019255136991263675,-7.28124033598263e-6,-4.29459094897082e-9,0.0019259062934330908,-7.105313322498182e-6,-4.465474633111174e-9,0.001926246455241092,-6.8569503429279765e-6,-4.705904064104801e-9,0.001926513155176582,-6.563908504672785e-6,-4.989086595641599e-9,0.0019266984060524598,-6.259565315487143e-6,-5.28285207654197e-9,0.0019268072181901595,-5.977125716265304e-6,-5.555231795710813e-9,0.0019268557194206991,-5.744607949504135e-6,-5.779286983994542e-9,0.001926867956789526,-5.581192829623622e-6,-5.93661711990306e-9,0.0019268720688889452,-5.495252817643273e-6,-6.019245563941074e-9,0.0019268965365545243,-5.483964670467983e-6,-6.029980211505466e-9,0.0019269669147046517,-5.534047865259946e-6,-5.981698489668393e-9,0.0019271030607710645,-5.623188311924287e-6,-5.895977467639949e-9,0.0019273166863302753,-5.7219540024492885e-6,-5.8012471529754476e-9,0.001927608964943563,-5.7963044626612365e-6,-5.730359732741071e-9,0.001927968073137577,-5.811296023443038e-6,-5.716996716285913e-9,0.001928367327868175,-5.736968151573158e-6,-5.789976737812062e-9,0.0019287657529438592,-5.556881102280313e-6,-5.965023129181158e-9,0.0019291137044280984,-5.2780252562612125e-6,-6.235225744033611e-9,0.0019293656129909568,-4.9378508432014095e-6,-6.564293224012181e-9,0.0019294981647026979,-4.601333003765205e-6,-6.88943201632588e-9,0.001929525485728095,-4.342876353937429e-6,-7.138863176862139e-9,0.0019294994801223031,-4.217696588858802e-6,-7.25946537969358e-9,0.0019294908116161604,-4.238299439230228e-6,-7.239417461315074e-9,0.001929560314582812,-4.371015270438031e-6,-7.111424613284696e-9,0.0019297377118852202,-4.55344246107046e-6,-6.935795233464066e-9,0.001930017314096714,-4.719917590952116e-6,-6.775858205910853e-9,0.001930367658027968,-4.821014209853837e-6,-6.679201920416775e-9,0.0019307459008136353,-4.8316120263198285e-6,-6.669947990797228e-9,0.0019311099639047478,-4.749855588336907e-6,-6.749791325681373e-9,0.001931426078730715,-4.591648798416053e-6,-6.903320619292728e-9,0.0019316723240502833,-4.384152509840636e-6,-7.104284083463843e-9,0.00193183957714851,-4.159855661523347e-6,-7.321298468100921e-9,0.0019319309590358179,-3.951522849872863e-6,-7.522721099309414e-9,0.001931960272729608,-3.7879464393165173e-6,-7.680755766459321e-9,0.0019319496225054618,-3.690498897752296e-6,-7.774788967531755e-9,0.0019319263202685097,-3.6706055523742944e-6,-7.793831867149322e-9,0.001931919267959071,-3.7283927164905087e-6,-7.737819257871908e-9,0.0019319552108667095,-3.852716726614077e-6,-7.617573393096083e-9,0.0019320552988749142,-4.02248969024826e-6,-7.453520879166667e-9,0.0019322322171346693,-4.209066647074804e-6,-7.27339092546293e-9,0.0019324880384187753,-4.379522397329557e-6,-7.109051304871561e-9,0.0019328128907126745,-4.5006846976982455e-6,-6.9926006585541975e-9,0.001933184500922892,-4.543960637217014e-6,-6.951680008281516e-9,0.0019335690805746674,-4.491239132575197e-6,-7.0037418708715674e-9,0.0019339247854987158,-4.3417098714221724e-6,-7.149447726110859e-9,0.0019342092422925217,-4.118009382523817e-6,-7.366743932940767e-9,0.0019343916827004838,-3.868204312684253e-6,-7.608992772716862e-9,0.001934467361572726,-3.658733712507117e-6,-7.811866984567964e-9,0.001934467204138646,-3.5553083996379697e-6,-7.911879053399946e-9,0.0019344532495840499,-3.5966460829545584e-6,-7.871776332288663e-9,0.0019344968195731504,-3.7753114217998696e-6,-7.698978894623498e-9,0.0019346495112623097,-4.03947689724567e-6,-7.443761240396356e-9,0.0019349242390860283,-4.315579736048795e-6,-7.177294842177374e-9,0.0019352959799658958,-4.537209508290387e-6,-6.9637480873944295e-9,0.0019357174371195988,-4.664295527601881e-6,-6.8417869033334726e-9,0.0019361376429321514,-4.687227031264865e-6,-6.820621053087697e-9,0.0019365149604292852,-4.620518272556331e-6,-6.886137513437268e-9,0.001936822735002006,-4.4930784615761195e-6,-7.01030959332819e-9,0.0019370497573068866,-4.3395817761451026e-6,-7.159541983283873e-9,0.0019371982714750445,-4.194332245529059e-6,-7.300606086896117e-9,0.0019372813098119841,-4.0872389658178436e-6,-7.404541171072901e-9,0.0019373200047168263,-4.041081596253815e-6,-7.449311969194115e-9,0.0019373408698219712,-4.06951090543502e-6,-7.421751862826817e-9,0.0019373728401152071,-4.175601163817662e-6,-7.318959872347354e-9,0.0019374438984557292,-4.351140097040351e-6,-7.14897163907601e-9,0.0019375773878386295,-4.577090029110529e-6,-6.930294004143148e-9,0.0019377884492321462,-4.8255307456941e-6,-6.690013847281935e-9,0.0019380811458521296,-5.063086450380342e-6,-6.460482833914179e-9,0.0019384468078961414,-5.2556340897116115e-6,-6.274765644942493e-9,0.001938864070694948,-5.373859826780817e-6,-6.161257575262624e-9,0.0019393008815218134,-5.39900090253849e-6,-6.138107237175963e-9,0.0019397185968336869,-5.328108998262378e-6,-6.208094891699568e-9,0.0019400783924782288,-5.178029968915432e-6,-6.3547673684562564e-9,0.001940350064460665,-4.986568248040517e-6,-6.541330751226949e-9,0.0019405222410656135,-4.808507589956162e-6,-6.714561951692604e-9,0.0019406110279473565,-4.704360703335738e-6,-6.815780527851394e-9,0.0019406619186682263,-4.722099909779016e-6,-6.798592282970913e-9,0.0019407397828170951,-4.877341093394415e-6,-6.6480630164182626e-9,0.0019409070239167167,-5.142645237546104e-6,-6.3909979796592525e-9,0.0019411991246476956,-5.455021750594156e-6,-6.08859132515089e-9,0.0019416113591816284,-5.739907638638507e-6,-5.813170806092759e-9,0.0019421039399188788,-5.938379623146413e-6,-5.621848443746926e-9,0.001942620441220814,-6.023358180511173e-6,-5.540825654139379e-9,0.0019431076064300335,-6.000155352616885e-6,-5.564854280690739e-9,0.0019435278468381142,-5.896618797745685e-6,-5.66679479290207e-9,0.0019438629592743444,-5.750852545969404e-6,-5.809548326748877e-9,0.0019441120808416875,-5.601534475667561e-6,-5.955480832384088e-9,0.001944287443752201,-5.482065741624393e-6,-6.072125549617999e-9,0.0019444101506376872,-5.417660736467644e-6,-6.135020234542866e-9,0.001944506708268009,-5.424015514502002e-6,-6.12900103028505e-9,0.0019446061453395735,-5.5065945921930115e-6,-6.048882321230036e-9,0.0019447372317435117,-5.660164219490716e-6,-5.899883466024544e-9,0.0019449253683826993,-5.8687316263243564E-06,-5.6976552684035205e-9,0.001945189030333371,-6.106463427556881e-6,-5.467362321854533e-9,0.001945536161431122,-6.340235377640483e-6,-5.241200084831334e-9,0.0019459613750219223,-6.534129514976202e-6,-5.0540407206024526E-09,0.0019464450016517627,-6.655627092463941e-6,-4.9374385215283745e-9,0.0019469548828858596,-6.682567740270542e-6,-4.912878296775678e-9,0.001947451269570495,-6.60932933283276e-6,-4.985758640608991e-9,0.0019478943525422965,-6.450513493834239e-6,-5.14178782748562e-9,0.0019482532181079584,-6.2407756398245034e-6,-5.347142200685174e-9,0.0019485145355209999,-6.029956846976695e-6,-5.553227818359947e-9,0.001948688832848761,-5.8732962326046545e-6,-5.706255960069141e-9,0.0019488117889920867,-5.817657136586249e-6,-5.76069054929591e-9,0.001948938125527602,-5.886667676818439e-6,-5.69370500652984e-9,0.0019491274075020232,-6.0699856033129015e-6,-5.515569915679763e-9,0.0019494249289553265,-6.3227915401508744E-06,-5.270071903094241e-9,0.001949845257742566,-6.578590377092514e-6,-5.022021831291358e-9,0.0019503668701211755,-6.771379833246088e-6,-4.8356927104913765e-9,0.001950941025999169,-6.857006618888046e-6,-4.754047856449597e-9,0.0019515098360051739,-6.823912357418047e-6,-4.788264987953578e-9,0.0019520240658229982,-6.690500284410137e-6,-4.920280238133386e-9,0.0019524536244067533,-6.49382548244997e-6,-5.113816259747165e-9,0.0019527895094792508,-6.276752315075202e-6,-5.326941081183438e-9,0.0019530401509459683,-6.078332438438705e-6,-5.521497393189113e-9,0.001953225817980965,-5.928567237035448e-6,-5.668236483345585e-9,0.0019533734478342783,-5.84651286102268e-6,-5.74866469745462e-9,0.0019535127069048035,-5.840135760566559e-6,-5.755159455452236e-9,0.0019536730713173847,-5.906707798229399e-6,-5.690546687804252e-9,0.0019538812761171337,-6.033223898987462e-6,-5.567654612994196e-9,0.0019541585144023286,-6.197000707763707e-6,-5.408699430107965e-9,0.0019545171385095907,-6.367107479822374e-6,-5.243879262195881e-9,0.0019549572076320533,-6.5074833444539475e-6,-5.108346058501838e-9,0.0019554639201165612,-6.582363249082454e-6,-5.03694129358835e-9,0.001956007498430186,-6.563809875728904e-6,-5.0568720809815e-9,0.001956546986261798,-6.4398326830353245e-6,-5.179789317621606e-9,0.001957038319601614,-6.220390777973844e-6,-5.3959025305882386e-9,0.001957445211377807,-5.938406346561329e-6,-5.6729623501463044E-09,0.0019577497434098727,-5.6441961139281294e-6,-5.961701088875459e-9,0.00195795905198493,-5.3940117834603315e-6,-6.207071934832427e-9,0.001958105475933685,-5.235595818058769e-6,-6.362420055449834e-9,0.0019582395183540724,-5.194843437985116e-6,-6.402542072145623e-9,0.001958417079498149,-5.267559275761301e-6,-6.331712684108876e-9,0.0019586841391798864,-5.419208397437096e-6,-6.183867152169376e-9,0.0019590632992368684,-5.5936274617679324e-6,-6.0140407497047866e-9,0.0019595468572287758,-5.728796846682779e-6,-5.882943397267424e-9,0.001960099404208329,-5.774659859002328e-6,-5.8395474337831e-9,0.0019606692273000065,-5.706491547132605e-6,-5.908007246472056e-9,0.001961203875844111,-5.5290734820936245e-6,-6.083550911233866e-9,0.001961663710892444,-5.271294504247528e-6,-6.33775249294814e-9,0.0019620291042840325,-4.974990706173587e-6,-6.62948408349352e-9,0.0019623006544432146,-4.683271223898374e-6,-6.916401377222745e-9,0.001962494734377491,-4.432015613971804e-6,-7.163317469825513e-9,0.00196263744876942,-4.24555166449937e-6,-7.3464495352867865e-9,0.001962759151531451,-4.135625053205161e-6,-7.454405906541533e-9,0.0019628903475563684,-4.102163162853727e-6,-7.487397138171459e-9,0.001963058825873597,-4.134581772027361e-6,-7.45591629508366e-9,0.0019632873735704035,-4.2130275752858015e-6,-7.37949782948698e-9,0.001963591384460584,-4.309670509689841e-6,-7.285447272084761e-9,0.001963976034392938,-4.390698571258319e-6,-7.2069014925367394E-09,0.00196443330876546,-4.419933657794488e-6,-7.1793089036528066e-9,0.0019649399761413515,-4.364865771727716e-6,-7.23453490273262e-9,0.001965458415821613,-4.2050069352158806e-6,-7.392670556572303e-9,0.0019659423021510165,-3.940624693125234e-6,-7.653438357820787e-9,0.001966347619651084,-3.5979703831828426e-6,-7.991020087185636e-9,0.001966646410720784,-3.2268073690315724e-6,-8.35646294373238e-9,0.001966837804951861,-2.88866026076316e-6,-8.6892469084276e-9,0.0019669507350560987,-2.638942552458159e-6,-8.93489923720782e-9,0.001967036219204756,-2.509897091168396e-6,-9.061792188439865e-9,0.0019671521102095036,-2.5011703515333097e-6,-9.070385947269845e-9,0.001967346338386762,-2.5810055380569523e-6,-8.992002968155938e-9,0.0019676443316525953,-2.696486676324743e-6,-8.878723391163976e-9,0.0019680437540308916,-2.788602202893239e-6,-8.788584213578214e-9,0.00196851699192739,-2.8074134547524235e-6,-8.77069512204032e-9,0.0019690198105688102,-2.723406029950918e-6,-8.854087293070188e-9,0.001969503286514971,-2.5325606025790628e-6,-9.042705655591e-9,0.0019699255438227234,-2.2545503651888572e-6,-9.317149614451272e-9,0.0019702602048416143,-1.9254253998824907e-6,-9.64186138287465e-9,0.0019704998243126686,-1.587626778063647e-6,-9.974977396460062e-9,0.001970654436207738,-1.2805361083925496e-6,-1.0277671836369529E-08,0.001970746848452303,-1.0338220010957484e-6,-1.0520734387427998e-8,0.001970806813276138,-8.642671882979529e-7,-1.0687691080751363e-8,0.0019708657346138646,-7.754852094272468e-7,-1.0775054263680461e-8,0.001970952685885467,-7.59358064857489e-7,-1.0790873734095068e-8,0.001971091690133412,-7.980785287859418e-7,-1.075270881326718e-8,0.0019712997330186763,-8.661819417994633e-7,-1.0685635082892515e-8,0.001971584912381313,-9.325958251431366e-7,-1.0620251655417039e-8,0.001971944386893563,-9.632389319096306e-7,-1.0590148555848218e-8,0.0019723623172643737,-9.250101036695197e-7,-1.0627989281767547e-8,0.001972808830631805,-7.919702181976068e-7,-1.0759406320346234e-8,0.0019732419679683944,-5.536462457545765e-7,-1.0994779047683153e-8,0.001973614823661226,-2.2335933302557065e-7,-1.1320973812675675e-8,0.0019738884737286657,1.5799990717252462e-7,-1.1697589927724113e-8,0.0019740473224203847,5.280347963458416e-7,-1.2062959771330483e-8,0.00197410928803649,8.20358883314744e-7,-1.2351497457826083e-8,0.001974123317235958,9.877098265902934e-7,-1.251656570489879e-8,0.001974153255924493,1.0192999814429548e-6,-1.2547588496020676e-8,0.0019742556717545824,9.434428611000109e-7,-1.2472576911245205e-8,0.0019744623865517686,8.154180584666158e-7,-1.2346103517772794e-8,0.001974774135226251,6.982018680757243e-7,-1.2230299564424663e-8,0.001975164866836536,6.44800593857355e-7,-1.2177471453811616e-8,0.001975592187135106,6.871905621175031e-7,-1.221921769330186e-8,0.001976009248334955,8.327104581488337e-7,-1.2362852376014084e-8,0.0019763749925609457,1.0663971388143509e-6,-1.259366276420492e-8,0.001976661273607453,1.3571121056137057e-6,-1.2880913658228117e-8,0.0019768563928079714,1.6655158949823804e-6,-1.3185711559255818e-8,0.001976965150873674,1.9522178827619e-6,-1.3469078659361015e-8,0.0019770060231024044,2.1846215565256827e-6,-1.3698753468466588e-8,0.001977006519814771,2.3414551764659016e-6,-1.3853691582153881E-08,0.0019769979445145433,2.4146980122888094e-6,-1.3925966248255384e-8,0.0019770105929741008,2.409217344158514e-6,-1.3920387497226856e-8,0.0019770700502998715,2.340825972519958e-6,-1.3852563760087515e-8,0.0019771946962903715,2.233613597212906e-6,-1.3746268263541514e-8,0.001977394083641216,2.117137695108602e-6,-1.3630691930216664e-8,0.00197766776849491,2.02355937158754e-6,-1.353764934893884e-8,0.0019780043391657534,1.9844130263776497e-6,-1.3498405475263642e-8,0.001978380746958981,2.0264143260061553e-6,-1.353951384539365e-8,0.001978762774876461,2.1656876800633962e-6,-1.3677055583687163e-8,0.00197910834678161,2.4005955486988004e-6,-1.3909478074330424e-8,0.0019793755690996236,2.7052325640155345e-6,-1.4211108687579435e-8,0.0019795358980323765,3.0280329593492748e-6,-1.4530782563116931e-8,0.0019795888602322726,3.3008762468395384e-6,-1.4800926854883546e-8,0.001979569909580966,3.4602522751505376e-6,-1.4958607317158036e-8,0.0019795428292347273,3.4729664075210322e-6,-1.4971007396679774e-8,0.0019795766858330343,3.3517185374406653e-6,-1.485078131230214e-8,0.001979719097725177,3.150012236996182e-6,-1.4650917551003886e-8,0.0019799807430923235,2.939717703579574e-6,-1.4442508997057445e-8,0.001980337179051505,2.785210747885825e-6,-1.4289220607364234e-8,0.001980742604001265,2.726455749296866e-6,-1.423061560237119e-8,0.0019811460867675897,2.7744247605888214e-6,-1.4277633511904348e-8,0.001981503955526798,2.915383589334282e-6,-1.4416788031389436e-8,0.0019817866606374806,3.119072655949307e-6,-1.4618203584318185e-8,0.0019819810541467733,3.3472878569643014e-6,-1.4844069697144964e-8,0.0019820896686203603,3.5612914305410776e-6,-1.5055977587760283e-8,0.00198212818028609,3.7276910519524167e-6,-1.522077511487346e-8,0.0019821217200457113,3.822702343827983e-6,-1.531483119915164e-8,0.001982100526968717,3.8346574475360094e-6,-1.5326546430867445e-8,0.001982095446197697,3.7647342774013897e-6,-1.525707214555077e-8,0.0019821337647565624,3.626027788928867e-6,-1.511936833404366e-8,0.00198223586051072,3.441229396883561e-6,-1.4935887639064302e-8,0.00198241295750562,3.2394074768603723e-6,-1.4735395171384388e-8,0.001982665941468611,3.0524134698759988e-6,-1.4549442314482317e-8,0.0019829850278711707,2.9111670054398966e-6,-1.4408723058841443e-8,0.0019833501452222605,2.841809897117393e-6,-1.4339272286988301e-8,0.0019837320752173157,2.8615334931783054e-6,-1.4358293854803897e-8,0.001984094861776407,2.9738376767734945e-6,-1.4469388182609625e-8,0.001984400625925791,3.163606036205151e-6,-1.465759406565055e-8,0.001984617903763515,3.39387177161666e-6,-1.4886148324894974e-8,0.001984733239124418,3.6078493427449448e-6,-1.5098540495896356e-8,0.001984762586708769,3.740319866084089e-6,-1.522990885918146e-8,0.001984755051949164,3.739151728899739e-6,-1.5228487094580237e-8,0.0019847812506757346,3.589373742862749e-6,-1.507949371776934e-8,0.0019849070018280613,3.324884794977739e-6,-1.481665653780441e-8,0.0019851657075547475,3.017077739740492e-6,-1.4510837813089766e-8,0.001985546337819205,2.7455641756043497e-6,-1.4240999293311826e-8,0.0019860027126962026,2.5689052542741243e-6,-1.4065234505030063e-8,0.001986474911058454,2.5102785475177926e-6,-1.4006586884914449e-8,0.001986909190146146,2.5597820777408202e-6,-1.4055310223533645e-8,0.001987269141598994,2.685729541695863e-6,-1.4180024373601416e-8,0.001987538415975901,2.8470244196991636e-6,-1.4339955147058143e-8,0.0019877184535379826,3.0026745725009918e-6,-1.4494369758932575e-8,0.001987824315689395,3.1178169485181043e-6,-1.4608579499453113e-8,0.0019878803285720108,3.1671431670578377e-6,-1.4657380747630862e-8,0.001987916017903525,3.1367378731829e-6,-1.4626916752757822e-8,0.00198796225735607,3.0248075252962984e-6,-1.4515412078652403e-8,0.001988047562103157,2.8413753222055076e-6,-1.4332850735856531e-8,0.0019881946131477435,2.60687216740141e-6,-1.4099542829987458e-8,0.001988417298411971,2.349527873938127e-6,-1.3843513258288562e-8,0.0019887187102340417,2.1016769841030624e-6,-1.3596844711551368e-8,0.001989090425727029,1.895388778983732e-6,-1.3391377619170956e-8,0.001989513160461744,1.7578895979745178e-6,-1.3254203612054567e-8,0.001989958770446367,1.7071788559904026e-6,-1.3203316404532476e-8,0.001990393534070427,1.7481911434179824e-6,-1.3243755974189393e-8,0.0019907827350952195,1.8697874359525122e-6,-1.336454230925692e-8,0.00199109681028482,2.0431157285996407e-6,-1.3536978415285554e-8,0.001991319151058384,2.222726763531207e-6,-1.371574429721612e-8,0.0019914544946981836,2.3526243150694117e-6,-1.3844968523515149e-8,0.0019915347809361574,2.379086977407752e-6,-1.3871077631016254e-8,0.001991617224389839,2.269346242030513e-6,-1.376144811926663e-8,0.0019917698902892863,2.0294384279911193e-6,-1.3522157951942242e-8,0.0019920466456429435,1.7095202837346074e-6,-1.3203206351826863e-8,0.001992463423863107,1.3885001624897012e-6,-1.288317749571206e-8,0.0019929908638321907,1.143480512993817e-6,-1.2638853847306288e-8,0.0019935682104733686,1.0214708448982725e-6,-1.2517091776224162e-8,0.0019941285130815195,1.0283869976145581e-6,-1.2523846927649901e-8,0.0019946200002937324,1.1365035316745898e-6,-1.2631538348227922e-8,0.001995015574720192,1.300685938679259e-6,-1.2795181679410482e-8,0.0019953118522825736,1.4734595686959486e-6,-1.2967407715671091e-8,0.0019955231121392253,1.6145721408287418e-6,-1.3108023269665573e-8,0.001995674485554681,1.6953207844439172e-6,-1.3188361405392658e-8,0.001995796372307964,1.6996250991069645e-6,-1.3192379686625797e-8,0.0019959203169879858,1.6236696505985474e-6,-1.3116312565503816e-8,0.0019960757921594096,1.475055708754886e-6,-1.2967807444551166e-8,0.0019962873383381975,1.271613814117125e-6,-1.2764702800757431e-8,0.001996571813660661,1.039617664310189e-6,-1.253321173415832e-8,0.001996935876688311,8.10987734279826e-7,-1.2305124592895642e-8,0.0019973742307001037,6.19237649378676e-7,-1.2113796509748371e-8,0.0019978693382533895,4.943937406260044e-7,-1.198913399233764e-8,0.0019983931254425164,4.575767847518032e-7,-1.1952232495962723e-8,0.0019989108215040154,5.162092500765573e-7,-1.2010593106379118e-8,0.0019993866344011147,6.609218430927506e-7,-1.215498240158599e-8,0.001999790531775251,8.650472468204294e-7,-1.2358850045151053e-8,0.0020001051872744658,1.0872195388065961e-6,-1.258086799786539e-8,0.0020003320300538583,1.2774384887276872e-6,-1.2770987731393865e-8,0.0020004948833237455,1.386820963278251e-6,-1.2880238021882123e-8,0.0020006389899060112,1.380409164658492e-6,-1.2873596607745973e-8,0.0020008230599442827,1.250445294729628e-6,-1.2743295658742569e-8,0.0020011035292148414,1.0248522465183068e-6,-1.2517287786395435e-8,0.0020015145004623476,7.642707366236366e-7,-1.2256256246504428e-8,0.002002052224806011,5.444286659134359e-7,-1.203598958625036e-8,0.0020026739455431216,4.2948544136936147e-7,-1.1920745495741174e-8,0.002003313579512777,4.496948714502562e-7,-1.1940890619262743e-8,0.0020039058326337656,5.94885512572639e-7,-1.208630936784008e-8,0.0020044058510690797,8.245709877731227e-7,-1.2316460457905977e-8,0.002004796841439746,1.0859096843776425e-6,-1.2578353220820108e-8,0.0020050868112686674,1.3296101468781744e-6,-1.2822521486441082e-8,0.0020053001577274294,1.5190539612688328e-6,-1.3012215262669332e-8,0.002005469139021302,1.6331027930982382e-6,-1.3126245137314179e-8,0.0020056275325741548,1.6652065850658668e-6,-1.3158091335992063e-8,0.0020058066106900104,1.6211993428942383e-6,-1.3113673482230696e-8,0.0020060325903481888,1.5170686408574125e-6,-1.3009079439298547e-8,0.002006324650222416,1.3769637497429265e-6,-1.2868534813545612e-8,0.0020066929754689877,1.2310800018681066e-6,-1.2722269046986007e-8,0.002007136798951896,1.1127780991151567e-6,-1.2603647647411476e-8,0.0020076429784578894,1.054378781853201e-6,-1.254500526328362e-8,0.002008186099861188,1.081598763449451e-6,-1.2572118807769247e-8,0.0020087311297168646,1.2074288608481698e-6,-1.2698088673752461e-8,0.002009239103287181,1.4270773152031296e-6,-1.2918234760844035e-8,0.0020096752789058284,1.716007875070945e-6,-1.3208055118895744e-8,0.0020100179652990918,2.0326550064858777e-6,-1.352587734554098e-8,0.0020102654993804938,2.3260539621831587e-6,-1.3820486693134687e-8,0.0020104390771972405,2.547030253336762e-6,-1.4042386690680413e-8,0.002010580106295075,2.6604804750482006e-6,-1.4156191902665433e-8,0.0020107419502173964,2.6557832329077294e-6,-1.4151139319925016e-8,0.0020109771879805558,2.5523069324261464e-6,-1.4046647718123685e-8,0.0020113229426591533,2.397375789826293e-6,-1.3890280276741745e-8,0.0020117884211216064,2.2554114694326285e-6,-1.3746841070905745e-8,0.0020123497341117697,2.1898980519676447e-6,-1.3680257875013628e-8,0.002012955651515441,2.2438213886840194e-6,-1.3733900181722728e-8,0.0020135433728180985,2.4266447610087438e-6,-1.39174182558369e-8,0.0020140579317852875,2.71366437476233e-6,-1.4206014604787913e-8,0.0020144668228012324,3.057204948402956e-6,-1.4551671002974376e-8,0.0020147647475891694,3.403199418756304e-6,-1.4899863316082618e-8,0.0020149692079483423,3.7055522989431925e-6,-1.520408419186706e-8,0.00201511150064555,3.9340846123691215e-6,-1.5433892567141782e-8,0.0020152277251075717,4.076173637410506e-6,-1.5576577887703656e-8,0.002015352239871468,4.134536644454852e-6,-1.563490853663456e-8,0.0020155138461719147,4.123692670047893e-6,-1.5623536213635403e-8,0.002015733840614426,4.0666243269108735e-6,-1.55656072328393e-8,0.0020160248674950276,3.992054942875605e-6,-1.549001455038565e-8,0.002016389829459018,3.93198510839712e-6,-1.542893704410032e-8,0.0020168206820040395,3.918765993757011e-6,-1.541493242521958e-8,0.0020172975756185623,3.980985777701276e-6,-1.5476833726911856E-08,0.0020177894153615887,4.137875398081949e-6,-1.5634127210906082e-8,0.002018257233673766,4.392939175307108e-6,-1.589050240627824e-8,0.0020186613266694954,4.728908346737077e-6,-1.6228694079735292e-8,0.0020189715206215524,5.107091194937329e-6,-1.660975065177038e-8,0.0020191776486713324,5.473615092617835e-6,-1.6979292753435012e-8,0.002019295779758033,5.772429950864491e-6,-1.7280651483171656e-8,0.002019366518176988,5.961349214838775e-6,-1.7471108259171236e-8,0.0020194449006417144,6.025194125173232e-6,-1.7535205282025255e-8,0.0020195851788385455,5.980999551576999e-6,-1.7490022440756466e-8,0.0020198257279237858,5.873603143711555e-6,-1.7380744515888384e-8,0.0020201787279912464,5.763467291729197e-6,-1.7268403150332105e-8,0.002020627231636164,5.710627551405569e-6,-1.7213706810198902e-8,0.002021130054639501,5.7592346508056935e-6,-1.7261429057047976e-8,0.002021632985760314,5.926817997082376e-6,-1.7429501306651574e-8,0.0020220830928120654,6.20118699778434e-6,-1.7705783145695567e-8,0.0020224418380563767,6.54565640069781e-6,-1.8053264624984565e-8,0.002022693062944097,6.910491614078083e-6,-1.842162169656846e-8,0.0020228439203432147,7.246330768272015e-6,-1.876083414523109e-8,0.00202291967499455,7.515105216752511e-6,-1.9032294027402762e-8,0.002022955371584404,7.695808702277565e-6,-1.9214681031198905e-8,0.0020229876289183193,7.785067752112486e-6,-1.9304540519772036e-8,0.002023048591573068,7.794246700981407e-6,-1.931333154928886e-8,0.0020231624980154585,7.745203409912733e-6,-1.926311028183914e-8,0.0020233442466032186,7.666212202219833e-6,-1.918240528759956e-8,0.0020235989734061375,7.588624354679677e-6,-1.9102866270263047e-8,0.002023921859131006,7.544034825291021e-6,-1.9056442936228402e-8,0.0020242978850773183,7.561308638331777e-6,-1.907241483206435e-8,0.0020247018586647472,7.662755338235264e-6,-1.9173526603769192e-8,0.0020250996748987574,7.859045107714878e-6,-1.9370801266084847e-8,0.0020254522736660083,8.143408211325172e-6,-1.9657586738974178e-8,0.0020257235021321623,8.487284167289417e-6,-2.0005064388235096e-8,0.0020258914008579325,8.841089839559924e-6,-2.0362983469746076e-8,0.0020259593522022504,9.143502782538063e-6,-2.0669092452411597e-8,0.002025960886878649,9.339097586877438e-6,-2.0867079499950275e-8,0.0020259529258870486,9.398254944606137e-6,-2.0926796085751366e-8,0.0020259980842913805,9.329515946722925e-6,-2.085676872498728e-8,0.0020261436498098338,9.177436067364245e-6,-2.0702003689784143e-8,0.002026406976788043,9.007145260904893e-6,-2.0528373390696197e-8,0.0020267726311981303,8.883574211806648e-6,-2.0401649057662443e-8,0.002027200045442295,8.85396367750792e-6,-2.0369837232274553e-8,0.00202763668051562,8.938366466169523e-6,-2.0453528387901555e-8,0.002028031669042613,9.128606584898225e-6,-2.0644735364591285e-8,0.0020283466335991557,9.39376249959402e-6,-2.0912327645621907e-8,0.00202856210099846,9.689503075361093e-6,-2.121142268331872e-8,0.002028679138809268,9.968698912730516e-6,-2.1494151041399055e-8,0.0020287166795685033,1.0191047732068404e-5,-2.1719481725996414e-8,0.0020287057358542504,1.0329897581158466e-5,-2.186021727137697e-8,0.0020286822638829623,1.0375287950705e-5,-2.1906123600102078e-8,0.0020286804677956084,1.0333353870444897e-5,-2.186332802988044e-8,0.0020287278066525257,1.022312602899354e-5,-2.175105158087606e-8,0.0020288421647846723,1.0072112218170743e-5,-2.1597111262225863e-8,0.0020290308875681577,9.911875842701016e-6,-2.143344844153332e-8,0.0020292909665944156,9.774243576700235e-6,-2.129232494824514e-8,0.0020296097239808366,9.688113323346603e-6,-2.1203133387480477e-8,0.0020299656877050217,9.67644684934271e-6,-2.11893658424898e-8,0.0020303297882378582,9.752905982662366e-6,-2.1265165055571597e-8,0.0020306676073327287,9.917766980710009e-6,-2.1431087980682735e-8,0.002030943934628873,1.0153584998504719e-5,-2.1669593622508353e-8,0.0020311306708723493,1.0422590466425067e-5,-2.1942323425636325e-8,0.002031217579951732,1.0669289798588603e-5,-2.219275019954811e-8,0.002031222335730858,1.0831796516238949e-5,-2.235778014634001e-8,0.002031193048301995,1.0861890930176747e-5,-2.2388241959551486e-8,0.00203119703859634,1.0746492481003186e-5,-2.2270735146629827e-8,0.002031297195154339,1.0517768776177442e-5,-2.2037844471414716e-8,0.0020315273094421984,1.0243291108028e-5,-2.1758092239078608e-8,0.0020318802493412753,1.0000530434740792e-5,-2.1510081000851584e-8,0.002032314137298937,9.850022664826762e-6,-2.1355340836590286e-8,0.002032770207259545,9.81982278786599e-6,-2.132258299426645e-8,0.0020331917199350323,9.904280503784482e-6,-2.14063888568104e-8,0.002033536949342053,1.0072489993620747e-5,-2.157566092331201e-8,0.0020337847861032054,1.0280151984724976e-5,-2.178555756437125e-8,0.002033934644404204,1.0480633734434917e-5,-2.1988684509594312e-8,0.002034002956023895,1.0633476288885205e-5,-2.2143773497299168e-8,0.0020340179562521273,1.0710065550269308e-5,-2.222152752762457e-8,0.002034013813275749,1.0696609639052564e-5,-2.2207730651406188e-8,0.002034024860105363,1.0594604521297306e-5,-2.2103765848150748e-8,0.002034080587443095,1.0419122419825089e-5,-2.19248717814829e-8,0.0020342019278727854,1.0195455518673118e-5,-2.169670062200928e-8,0.0020343991620295483,9.954802844166271e-6,-2.145091239995425e-8,0.0020346714321390342,9.729785129053017e-6,-2.122063084652677e-8,0.0020350074824118905,9.550386709694598e-6,-2.103636451097717e-8,0.002035387185509016,9.440493583899565e-6,-2.0922533216016104e-8,0.0020357836037984364,9.414912608424384e-6,-2.089444107511516e-8,0.0020361655489376162,9.476655420791237e-6,-2.0955452598258494e-8,0.002036501001353076,9.614310232276557e-6,-2.1094206564680248e-8,0.002036762210872142,9.79994037620005e-6,-2.1282363869390327e-8,0.0020369330481708123,9.989184837192771e-6,-2.1474658477092256e-8,0.002037017771296381,1.012628359366276e-5,-2.1614061269663444e-8,0.002037047915437464,1.015658110540848e-5,-2.164463677168314e-8,0.0020370813026867737,1.0046056108125668e-5,-2.153154985964805e-8,0.0020371875508600258,9.800650799576031e-6,-2.1280773292665346e-8,0.002037421936656467,9.472336381754918e-6,-2.094520101904596e-8,0.0020378005857027153,9.143072453333508e-6,-2.0608270685343048e-8,0.0020382928899801513,8.892876275813154e-6,-2.035149508235166e-8,0.0020388358398022157,8.770499811406708e-6,-2.0224669132370346e-8,0.002039359770557812,8.781941663669052e-6,-2.0234157130035133e-8,0.0020398103504522254,8.897729739466089e-6,-2.0350211586612295e-8,0.0020401588643933475,9.069382952218172e-6,-2.0523629149456965e-8,0.0020404019625274035,9.245293559122839e-6,-2.0701866584475123e-8,0.002040555827693921,9.381504609670853e-6,-2.0840025781472896e-8,0.0020406489259659406,9.447228151930216e-6,-2.0906536788607898e-8,0.0020407154331214734,9.426696770852405e-6,-2.088512838607746e-8,0.00204078985578392,9.318873354513713e-6,-2.077459998128169e-8,0.00204090271395194,9.135845367544504e-6,-2.0587206452044835e-8,0.0020410771407216085,8.900239108317796e-6,-2.034599700431967e-8,0.002041326419699712,8.641807325844239e-6,-2.0081292128129632e-8,0.0020416526435947345,8.393337339943669e-6,-1.982648942593215e-8,0.002042046703171445,8.186237577472187e-6,-1.9613586261310882e-8,0.0020424895896427346,8.046339142518472e-6,-1.9468954219893878e-8,0.0020429547843234747,7.990305000968632e-6,-1.940972395069631e-8,0.0020434115251253306,8.022843551834938e-6,-1.9440936885743926e-8,0.002043828782565443,8.134892448156656e-6,-1.9553616311880043e-8,0.0020441798602190554,8.302917025788585e-6,-1.972393223071845e-8,0.0020444477519546617,8.4896969525292e-6,-1.9913901817449882e-8,0.0020446311903293338,8.647706547103258e-6,-2.0074815114312748e-8,0.0020447501973034107,8.726723226422148e-6,-2.0155077328217368e-8,0.002044848244940901,8.686627904246379e-6,-2.011341515541943e-8,0.0020449867383772256,8.513737749746249e-6,-1.9935671842505055e-8,0.002045228541166259,8.234144633017872e-6,-1.964846070320371e-8,0.0020456134638839763,7.913572361465218e-6,-1.931898185881672e-8,0.0020461377861319533,7.63729312921591e-6,-1.9034476270744172e-8,0.0020467521585061633,7.477202828544634e-6,-1.8868592712503943e-8,0.002047381272856939,7.464688941483806e-6,-1.8853644549237028e-8,0.0020479532062943314,7.58431837206364e-6,-1.8974080315531745e-8,0.0020484215587382487,7.78774400789283e-6,-1.918060677428675e-8,0.0020487722662357426,8.015405362121847e-6,-1.941233147259879e-8,0.002049018198077936,8.214197838192044e-6,-1.9614843383185996e-8,0.0020491889216315115,8.346735295295853e-6,-1.9749735808637718e-8,0.0020493210512069144,8.393632060507522e-6,-1.979700451228811e-8,0.0020494512449664246,8.351957607960816e-6,-1.9753525015406534e-8,0.0020496117250101715,8.23232744734854e-6,-1.963010652990153e-8,0.002049827426776408,8.055769435622714e-6,-1.944827439536342e-8,0.002050114053526486,7.850558869214728e-6,-1.9236989441846953e-8,0.0020504767490431433,7.648847136675355e-6,-1.9029157282885984e-8,0.0020509094756088818,7.482854532348159e-6,-1.8857725613841873e-8,0.002051395453334524,7.380623768682452e-6,-1.8751377321085998e-8,0.0020519090052662243,7.361760387571575e-6,-1.8730230620980626e-8,0.0020524188593675297,7.433818308990292e-6,-1.8802173480598776e-8,0.0020528926844391848,7.589950602549962e-6,-1.8960428834936324e-8,0.0020533024421489844,7.808390524123514e-6,-1.9182928498524213e-8,0.0020536299340462158,8.054192913403938e-6,-1.9433978306497595e-8,0.0020538718361486044,8.283434195619361e-6,-1.9668482974938482e-8,0.0020540434289632683,8.45004521906672e-6,-1.9838956797592828e-8,0.0020541797514216247,8.515402796906978e-6,-1.99054534057615e-8,0.0020543322054149753,8.459930706160225e-6,-1.984759651675978e-8,0.0020545585952090927,8.293944827313858e-6,-1.9675807879402267e-8,0.0020549063810787,8.062431097372e-6,-1.9436246264897823e-8,0.0020553934153247633,7.837497117823304e-6,-1.920304947832446e-8,0.002055995700465939,7.696451661454231e-6,-1.9055809090821722e-8,0.002056651811353018,7.693154521324639e-6,-1.9050112336143213e-8,0.0020572846695030584,7.837818600247798e-6,-1.919671296351236e-8,0.002057829365555983,8.096658859821898e-6,-1.946106441052887e-8,0.002058252145844519,8.409493816274429e-6,-1.978134730901258e-8,0.0020585536030746266,8.712990432294358e-6,-2.0092375696100318e-8,0.002058759808669095,8.957877739096902e-6,-2.0343349339844396e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json new file mode 100644 index 00000000..4dcccb37 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":17000,"numberOfSamples":1000,"samples":[0.0020589095356776037,9.116105504093818e-6,-2.0505272164235435e-8,0.002059043510293161,9.180255067418492e-6,-2.0570390059257767e-8,0.0020591976431414568,9.159302745262173e-6,-2.054785882824188e-8,0.002059399625909375,9.073759899582225e-6,-2.045874721325323e-8,0.0020596674746746844,8.95148439515232e-6,-2.033170765436402e-8,0.00206000888513569,8.824207938457376e-6,-2.019937465729761e-8,0.002060420904195782,8.724308617167852e-6,-2.0095032184184587e-8,0.0020608899779143205,8.68132520947309e-6,-2.0049049012491025e-8,0.0020613928365786132,8.717972919315283e-6,-2.008482719556681e-8,0.0020618988348358,8.845955809078727e-6,-2.021453482958727e-8,0.002062374125258358,9.062441716260134e-6,-2.0435474508193457e-8,0.0020627874895708226,9.348364762479418e-6,-2.072826871336509e-8,0.0020631169945883126,9.669654112154566e-6,-2.1058015950605946e-8,0.0020633560604633263,9.98198746864013e-6,-2.137908652587735e-8,0.002063517288428266,1.023877017749716e-5,-2.164330411583651e-8,0.002063632645942536,1.0401139220424818e-5,-2.1810299545772995e-8,0.0020637491502467223,1.0448183572471843e-5,-2.185815206205818e-8,0.0020639198525462597,1.0385066085844465e-5,-2.1791885352537092e-8,0.002064190922547863,1.0246206042140799e-5,-2.1646843352671344e-8,0.002064587291919049,1.0090636415679369e-5,-2.1483949591921145e-8,0.0020651014652658243,9.988078798241432e-6,-2.13753442005915e-8,0.002065691367589172,9.998026570269695e-6,-2.1382754626188622e-8,0.002066291012197917,1.0149230388591655e-5,-2.153622147579785e-8,0.002066831501387849,1.0429452683376921e-5,-2.182338975756979e-8,0.002067263169333099,1.0791237145000513e-5,-2.2195367611649683e-8,0.002067568557615017,1.1170401662074308e-5,-2.2585814103541868e-8,0.0020677618994642912,1.1507219742502304e-5,-2.2932879418767003e-8,0.0020678786593962845,1.1760992660056131e-5,-2.319433420100162e-8,0.00206796228678175,1.1914801500387303e-5,-2.3352529680849556e-8,0.0020680536670884195,1.1972789302221374e-5,-2.3411612372762594e-8,0.002068185083895209,1.1954165594086708e-5,-2.339133460421787e-8,0.0020683778972125345,1.1887104070253944e-5,-2.3320744180844544e-8,0.002068642307553408,1.180390121082168e-5,-2.3233173740066774e-8,0.002068977856263579,1.1737393814191125e-5,-2.3162537647244684e-8,0.002069373999389383,1.1717978706675388e-5,-2.3140267827765654e-8,0.0020698107873335274,1.1770514429890422e-5,-2.3192140613020073e-8,0.0020702602014525747,1.1910715973072524e-5,-2.3334573248691355e-8,0.002070688939508567,1.2141252692424613e-5,-2.3570578997251697e-8,0.0020710632916822844,1.2448527390387745e-5,-2.3886375187523575e-8,0.002071356066541742,1.2801803268012288e-5,-2.4250382510760558e-8,0.0020715543319876706,1.3156451701310057e-5,-2.4616491549786515e-8,0.00207166551766087,1.3462116971780244e-5,-2.493246716960177e-8,0.002071719050649512,1.3674624989544023e-5,-2.5152297788431047e-8,0.0020717617377544535,1.3768431742533288e-5,-2.524915847137308e-8,0.0020718472574079074,1.374550081599251e-5,-2.5224700784713937e-8,0.0020720223622184525,1.363727582508806e-5,-2.5111195478472052e-8,0.0020723137031515636,1.3498471162329926e-5,-2.496519243244624e-8,0.002072719191338335,1.339381780152275e-5,-2.485385332221292e-8,0.002073206795757431,1.338096643139214e-5,-2.483723759380846e-8,0.0020737219362692,1.3494245133198445e-5,-2.4951381108780162e-8,0.00207420211020392,1.373455339359368e-5,-2.5197661804572466e-8,0.0020745944143773383,1.4069430089365293e-5,-2.554271199173207e-8,0.002074869746023746,1.4443723774723879e-5,-2.5929405831806994e-8,0.0020750285128816304,1.479667972622433e-5,-2.6294607590510123e-8,0.0020750966176363173,1.5078544268788864e-5,-2.6586483364644268e-8,0.0020751148669499956,1.5260889492796408e-5,-2.677529701011583e-8,0.0020751270004247535,1.5338783722705668e-5,-2.6855711891848633e-8,0.0020751704833224575,1.5326746513909972e-5,-2.684261106263222e-8,0.0020752715762822763,1.5251984116094389e-5,-2.6764080409271047e-8,0.002075444009124103,1.5147762629496005e-5,-2.6654533703698157e-8,0.002075689729548116,1.504827746606285e-5,-2.6549398220846943e-8,0.002076000366210549,1.4985082629739757e-5,-2.6481430881895264e-8,0.002076358657231711,1.498441301720375e-5,-2.6477967033587838e-8,0.0020767397992757677,1.5064587977735741e-5,-2.6558240543651232e-8,0.002077113259954405,1.5233004156103975e-5,-2.6730240753699176e-8,0.0020774459186594374,1.548284453443912e-5,-2.6987226620384064e-8,0.002077707337417931,1.5790500049088474e-5,-2.7304945193864276e-8,0.002077877261826839,1.6115682164498162e-5,-2.764165309505029e-8,0.0020779538822941765,1.6406603632449e-5,-2.7943458192743133e-8,0.0020779594398716464,1.6611353072832964e-5,-2.8156170195329946e-8,0.0020779390055978278,1.6693382219093287e-5,-2.824146792653341e-8,0.0020779502913158923,1.6645409426593984e-5,-2.8191416586278918e-8,0.002078046844161103,1.6494938438233428e-5,-2.803425405045996e-8,0.0020782610782756087,1.6297779276038386e-5,-2.782772424649056e-8,0.0020785941150732565,1.612175588363035e-5,-2.7642241561896423e-8,0.0020790159587568842,1.6027141518751153e-5,-2.754063775278662e-8,0.0020794748756735038,1.6050743503202965e-5,-2.756160492638588e-8,0.0020799118940896845,1.619791239208086e-5,-2.7711253577368164e-8,0.0020802757626315633,1.6443513592555717e-5,-2.7963924844698012e-8,0.0020805345246273253,1.674043522617959e-5,-2.8270877063799093e-8,0.002080681226938013,1.7032634096537527e-5,-2.857380300224129e-8,0.002080732951995497,1.7268943244941685e-5,-2.881925151534997e-8,0.002080724194408864,1.7413982316484317e-5,-2.8970092565580946e-8,0.0020806971435383278,1.745367834708195e-5,-2.901136620869484e-8,0.0020806920260737966,1.7394912621893336e-5,-2.8949975367327408e-8,0.002080739988704213,1.72607815502705e-5,-2.8809768850635676e-8,0.002080859515267317,1.70838985357426e-5,-2.8624560861473263e-8,0.0020810559636607064,1.6899885539921436e-5,-2.8431349761988563e-8,0.0020813230557203376,1.6742274751481572e-5,-2.8265022453786016e-8,0.0020816451171855417,1.6639033795220282e-5,-2.8154767386943654e-8,0.0020819993189068113,1.6610203007369465e-5,-2.812164312243963e-8,0.0020823577851628115,1.6665911699555345e-5,-2.817650914736122e-8,0.0020826899633292987,1.680426930790959e-5,-2.8317770861029884e-8,0.002082966018551884,1.7009150846059025e-5,-2.852896394235378e-8,0.002083162073066397,1.7248756752608075e-5,-2.8777135556946513e-8,0.0020832674579102563,1.7476932878513038e-5,-2.9014151463292816e-8,0.0020832924694833593,1.7639846001218737e-5,-2.9183675584427234e-8,0.0020832727739094805,1.7689422424584678e-5,-2.9235274256026354e-8,0.0020832653064138955,1.7601030960855478e-5,-2.9142946193151746e-8,0.0020833330245630757,1.7387646058308056e-5,-2.8919920603682593e-8,0.002083522753935488,1.7100955802243916e-5,-2.8619808329920083e-8,0.0020838468179513333,1.6815710705222776e-5,-2.8320330725747508e-8,0.002084278439419095,1.6604039049236554e-5,-2.8096659219011013e-8,0.0020847625566020353,1.6512511531122853e-5,-2.799759622144117e-8,0.002085235023267062,1.6551414097566436e-5,-2.8034351982823543e-8,0.0020856408987005555,1.6697366798988196e-5,-2.8183104552679034e-8,0.0020859461245631033,1.690450794263447e-5,-2.8396456266918066e-8,0.0020861415082864985,1.7118421130651345e-5,-2.8617819915088376e-8,0.0020862405867537945,1.7288696492304295e-5,-2.8794501922373435e-8,0.0020862736330299575,1.737809826474195e-5,-2.8887350772104285e-8,0.002086279804006059,1.7367702998098975e-5,-2.8876251011356654e-8,0.0020862990421835854,1.7258011428210435e-5,-2.8761400589556528e-8,0.002086365115922038,1.7066487746353264e-5,-2.8560802190087286e-8,0.0020865008408489875,1.682256943694604e-5,-2.8305053907286174e-8,0.002086715919263949,1.656156014476701e-5,-2.8030941270095572e-8,0.0020870071990390262,1.6318714925791584e-5,-2.7775237638634485e-8,0.0020873606761909773,1.612444436636325e-5,-2.7569706696292268e-8,0.0020877543487093165,1.6001012803300085e-5,-2.7437694306513178e-8,0.0020881612220372825,1.596050578626689e-5,-2.7392040420271822e-8,0.002088552230288847,1.6003549082607828e-5,-2.7433729548710437e-8,0.0020888992435952967,1.611837191802468e-5,-2.7550832366391624e-8,0.0020891786471092483,1.6280160651193357e-5,-2.7717702617435652e-8,0.0020893761169842166,1.6451350603092855e-5,-2.7895164399045403e-8,0.002089492678959948,1.6584503687808136e-5,-2.803347849401429e-8,0.0020895506186168747,1.6629975070205594e-5,-2.8080421596796448e-8,0.0020895956639829702,1.654957839540818e-5,-2.799570583593579e-8,0.002089690395538273,1.6333804471878623e-5,-2.7769090685971695e-8,0.002089896033722322,1.6014373257708863e-5,-2.7433529126734662e-8,0.0020902475806469254,1.5661140369289124e-5,-2.7061908434893643e-8,0.002090735796633609,1.5359270098771867e-5,-2.67432120407e-8,0.00209130859780546,1.5176778132377433e-5,-2.6548672939580005e-8,0.002091891842946931,1.5140754055244766e-5,-2.6506954770801897e-8,0.0020924165245282877,1.5233761825979138e-5,-2.660030176659009e-8,0.002092838108888907,1.5407435049015967e-5,-2.6778581186473033e-8,0.0020931426145603437,1.5602073463539797e-5,-2.697961713028947e-8,0.002093342524197185,1.576303163752042e-5,-2.7146256028244872e-8,0.0020934681224012187,1.5850536534203465e-5,-2.7236664035016808e-8,0.002093558330924372,1.584356238962605e-5,-2.7228488040135843e-8,0.002093652929189025,1.5739702587511593e-5,-2.711885649216876e-8,0.002093786585558144,1.5552692842214613e-5,-2.6921891528832596e-8,0.002093984610700063,1.530847635566744e-5,-2.6664625730728237e-8,0.002094260408522702,1.5040327883243397e-5,-2.6381866829385993e-8,0.0020946146605398033,1.4783590396206654e-5,-2.6110629573656682e-8,0.0020950361908124754,1.4570612940870071e-5,-2.5884801421741135e-8,0.002095504287982403,1.4426464136665532e-5,-2.573066979561237e-8,0.0020959920098880948,1.436589162782448e-5,-2.566378974830331e-8,0.0020964698904481064,1.4391654082877689e-5,-2.568727581986414e-8,0.002096909672107035,1.4494027260271335e-5,-2.5791262682142066e-8,0.002097287955238897,1.4651254484391914e-5,-2.595327902709219e-8,0.0020975898588619776,1.483086589384205e-5,-2.6139490483611765e-8,0.0020978129239909112,1.4992194433574303e-5,-2.6307227096703933e-8,0.002097971126731232,1.5091109530391926e-5,-2.6409931481351222e-8,0.002098097703998993,1.5088284225384236e-5,-2.6405927211233465e-8,0.002098243998954342,1.4961356647547054e-5,-2.6271336291410024e-8,0.002098470643735973,1.4718558663920096e-5,-2.601451060716538e-8,0.002098829142769062,1.4406847413029446e-5,-2.568461021728266e-8,0.002099338584112944,1.4104891981013634e-5,-2.5364227738068856e-8,0.002099970577078888,1.389718581053549e-5,-2.51422113367583e-8,0.0021006554024350413,1.3839945599057747e-5,-2.5077873022135188e-8,0.0021013089162565824,1.3939075366767634e-5,-2.5177804466452004e-8,0.0021018642410454017,1.4152966541286029e-5,-2.5398697748388907e-8,0.002102290544234685,1.4414719463911722e-5,-2.5670555129297722e-8,0.002102593458372229,1.4657717276490355e-5,-2.5923475251490083e-8,0.002102803823419274,1.4832523419603329e-5,-2.610539494337901e-8,0.002102963997051854,1.4912874042482475e-5,-2.6188440763515092e-8,0.00210311701985688,1.489429901720448e-5,-2.6167581509441245e-8,0.00210329981316489,1.4789514144286761e-5,-2.605589711490424e-8,0.0021035395604685125,1.4623216960515582e-5,-2.5879181897882027e-8,0.002103852012857229,1.4427256816148642e-5,-2.5670874573032203e-8,0.0021042409306866908,1.4236166858646234e-5,-2.546731313778813e-8,0.002104698454320543,1.4082882456060734e-5,-2.53031751996881e-8,0.0021052064752133293,1.3994654154339699e-5,-2.5207158431920774e-8,0.0021057391315831625,1.3989407920046565e-5,-2.519818244598461e-8,0.002106266387320575,1.4073050130678136e-5,-2.5282607415599342e-8,0.002106758334830071,1.423820083636465e-5,-2.5452924691916057e-8,0.0021071897012097697,1.4464569256647e-5,-2.568810271807864e-8,0.0021075440763852053,1.4720984983073159e-5,-2.5955605114652786e-8,0.002107817455023985,1.4968991587208612e-5,-2.6215033812032676e-8,0.0021080207898770947,1.5167881763610569e-5,-2.6423345985019315e-8,0.0021081811782254606,1.52812712911579e-5,-2.6541802838830476e-8,0.002108340721814446,1.5285367127017497e-5,-2.6544815228638046e-8,0.002108551393130802,1.5178224387244792e-5,-2.6429882679400344e-8,0.0021088642657054028,1.4987405902763008e-5,-2.6225817522741596e-8,0.0021093131823441873,1.477109413125047e-5,-2.5993980396136906e-8,0.0021098973634679687,1.4606796678395606e-5,-2.5816350529623914e-8,0.0021105729078048107,1.4566334520348138e-5,-2.5769076832392603e-8,0.0021112628777701157,1.4686483996552583e-5,-2.589140375989459e-8,0.002111884963727069,1.49524858304974e-5,-2.616814292368397e-8,0.0021123820416213326,1.530564027223351e-5,-2.653758083888853e-8,0.002112738443062604,1.566943862865359e-5,-2.6919021383359056e-8,0.0021129763380782042,1.597734406587063e-5,-2.7242128079128386e-8,0.002113139906608551,1.6188913189144726e-5,-2.7463982116337144e-8,0.0021132785147635735,1.6292255587917617e-5,-2.7571731956963736e-8,0.002113435244892276,1.6298231436790853e-5,-2.7576542617677282e-8,0.002113641467647694,1.623231108640538e-5,-2.750507948119659e-8,0.0021139155020888497,1.612742596429646e-5,-2.739200662875825e-8,0.002114263195353226,1.601868102419684e-5,-2.7274398004963558e-8,0.002114679097938746,1.5939462619916927e-5,-2.7187584649230205e-8,0.002115147857818045,1.591820498712063e-5,-2.7161697731839154e-8,0.0021156460082405507,1.5975354031712748e-5,-2.7218453269601503e-8,0.0021161445333496127,1.6120489838517026e-5,-2.736813658476198e-8,0.002116612541248858,1.6350066999505276e-5,-2.7607239032229045e-8,0.002117021983644663,1.6646569377117553e-5,-2.791754490148783e-8,0.002117352837098394,1.697979911393296e-5,-2.826741083990463e-8,0.0021175978015787107,1.731065634053247e-5,-2.8615637817191073e-8,0.00211776543378165,1.759725263509948e-5,-2.8917829165943654e-8,0.002117880769420787,1.7802584133189674e-5,-2.9134478291953385e-8,0.002117982886203447,1.7902584529889876e-5,-2.9239569317390042e-8,0.002118119198387002,1.7893289828263934e-5,-2.922832774864068e-8,0.002118336487991736,1.7795584944785858e-5,-2.9122440610658274e-8,0.0021186692843823997,1.7655389538035962e-5,-2.8970402749374115e-8,0.0021191276345471233,1.7536852324466382e-5,-2.8840362727093884e-8,0.0021196884143433207,1.7507199823531867e-5,-2.880401634238384e-8,0.002120295925762307,1.7615411346021366e-5,-2.8913861014445143e-8,0.0021208758106100725,1.787247903713528e-5,-2.9182079529307654e-8,0.002121359406182991,1.8244267405424016e-5,-2.9572807067690778e-8,0.0021217074721560777,1.8663209769622012e-5,-3.0014474124992184e-8,0.0021219209004431955,1.905356541542978e-5,-3.042663828206199e-8,0.0021220343298265485,1.9356536768551152e-5,-3.0746705244532125e-8,0.002122099166839674,1.954377814105041e-5,-3.094431491310143e-8,0.002122166330543905,1.9617217855782224e-5,-3.102119259421685e-8,0.0021222752180405586,1.9600531064406503e-5,-3.100215517299388e-8,0.002122449658514504,1.952878967527067e-5,-3.092419165467688e-8,0.0021226984612435964,1.9440127761138346e-5,-3.082765962692926e-8,0.002123017846957808,1.9370314072744265e-5,-3.075052790344494e-8,0.0021233940681903195,1.934948928989278e-5,-3.0724888774326296e-8,0.0021238056794888474,1.9399952935627528e-5,-3.077458440678296e-8,0.002124225682580438,1.9534193054597844e-5,-3.091310551719368e-8,0.002124624113565031,1.9752886458047202e-5,-3.1141464105636413e-8,0.002124971655833702,2.0043233580223036e-5,-3.144639940286134e-8,0.00212524450155675,2.037859705176521e-5,-3.179992728445566e-8,0.002125429949440885,2.0720660307119964e-5,-3.216153381034379e-8,0.0021255313735390655,2.1024952911718785e-5,-3.2483951488909524e-8,0.0021255706390746042,2.1249553405534983e-5,-3.272236244662322e-8,0.0021255862274255134,2.136531580176944e-5,-3.284530096658392e-8,0.002125626472329969,2.136477599867833e-5,-3.2844230643420137e-8,0.0021257389764561077,2.1266765123494018e-5,-3.273861136499655e-8,0.0021259586471253046,2.1114766388613177e-5,-3.2574325849611996e-8,0.0021262973922635143,2.0968604798671925e-5,-3.241497651320302e-8,0.0021267384416393392,2.0890666115759917e-5,-3.2327268627746654e-8,0.0021272376715695132,2.0929425811587144e-5,-3.236339970670092e-8,0.002127733046172089,2.110460424404699e-5,-3.2545061768599696e-8,0.00212816092546539,2.1399236109442378e-5,-3.2854762929754035e-8,0.0021284746737500223,2.176302809822261e-5,-3.3239236614057686e-8,0.002128658496133636,2.212740460159936e-5,-3.362543623506609e-8,0.0021287304336883744,2.2426834845535454e-5,-3.3943333219980947e-8,0.0021287335646911943,2.2617434207905126e-5,-3.414584047635682e-8,0.0021287204228760234,2.2685679731977404e-5,-3.421817395035784e-8,0.0021287380406940413,2.264602236182866e-5,-3.417535947240264e-8,0.002128818715188701,2.2531501692113913e-5,-3.4052283410800604e-8,0.002128977344015476,2.2382911676892006e-5,-3.3892197642410027e-8,0.002129213263803856,2.2240213464310166e-5,-3.373760006185234e-8,0.0021295139322477768,2.2137245808817076e-5,-3.362460002842891e-8,0.0021298586205894944,2.2099046795842652e-5,-3.358004972356987e-8,0.0021302214146577676,2.2140545104573738e-5,-3.362013028869592e-8,0.0021305737006618716,2.2265607580957118e-5,-3.374931398457121e-8,0.0021308867762918587,2.2466010723704024e-5,-3.39592257518173e-8,0.002131135293920836,2.2720594046935103e-5,-3.4227667717305434e-8,0.0021313019334212695,2.2995565753170124e-5,-3.451884933521096e-8,0.0021313829342262734,2.3247460182788705e-5,-3.4786456209133385e-8,0.0021313929103826883,2.3430080081429465e-5,-3.4981018338903236e-8,0.0021313662623369065,2.35053775592328e-5,-3.506154647311194e-8,0.002131352534668617,2.3455775394926864e-5,-3.500875472352498e-8,0.0021314050619435174,2.3293157757724045e-5,-3.483475480248656e-8,0.0021315656878382726,2.305959461858975e-5,-3.458394904972025e-8,0.002131851148769884,2.2817817875395575e-5,-3.432300884872676e-8,0.002132246675708553,2.2634145895239077e-5,-3.412278123476084e-8,0.0021327093056224787,2.255991732479814e-5,-3.4038512859965103e-8,0.0021331794386085386,2.261762912569421e-5,-3.4094941293936804e-8,0.002133596614516856,2.2795606804280943e-5,-3.4280365800889207e-8,0.0021339148569076657,2.3052078776754165e-5,-3.455073970041519e-8,0.0021341135296762083,2.3327034579694484e-5,-3.484217778475803e-8,0.0021342009716787884,2.355832491670355e-5,-3.508814955727273e-8,0.0021342101969445745,2.3697300658380293e-5,-3.523629751598651e-8,0.0021341884075972216,2.3719450332254015e-5,-3.525994944230765e-8,0.002134184081791398,2.3627331849970435e-5,-3.5161372712859956e-8,0.002134235900463689,2.3446066878692636e-5,-3.4967036409302774e-8,0.0021343663946126897,2.321429430328426e-5,-3.471798296710547e-8,0.0021345807976598918,2.2974350116389325e-5,-3.4459344612988514e-8,0.0021348696549837566,2.2764450779378168e-5,-3.4231980765256686e-8,0.0021352131046345666,2.2613905870942357e-5,-3.4067347153649095e-8,0.0021355851791665065,2.25409643711599e-5,-3.398518306415485e-8,0.002135957353588875,2.255223300982052e-5,-3.3992879723749303e-8,0.0021363013822437923,2.264265540717151e-5,-3.408542886166249e-8,0.0021365919676518924,2.279553658100697e-5,-3.4245382178955386e-8,0.0021368099415358917,2.298274820199354e-5,-3.444296877039347e-8,0.0021369464146205742,2.3165964903851673e-5,-3.463731317033913e-8,0.0021370076236995232,2.3300428516159704e-5,-3.4780406073762714e-8,0.0021370188901841084,2.334275576213467e-5,-3.482548254690987e-8,0.002137024662802771,2.3262920180390915e-5,-3.473993474880969e-8,0.0021370813223880038,2.3057492795026685e-5,-3.451958523389752e-8,0.002137241889275746,2.2757801904735166e-5,-3.41974981982623e-8,0.0021375370262618257,2.2426116340509338e-5,-3.3839966919214845e-8,0.002137961316631726,2.213800200907653e-5,-3.3527737842564464e-8,0.0021384728126343628,2.1957459800264673e-5,-3.332951347872889e-8,0.002139006670366777,2.191643370582827e-5,-3.3280036206354196e-8,0.0021394959229136664,2.2007302232413204e-5,-3.3371904617377737e-8,0.0021398901271324055,2.2189143712365275e-5,-3.3562023526722955e-8,0.002140166006414651,2.2402515162981413e-5,-3.378718549615929e-8,0.002140329077781706,2.2586184572995143e-5,-3.398186921720036e-8,0.0021404083035632985,2.2691063196128188e-5,-3.409319354061641e-8,0.002140446731689183,2.2688976940126358e-5,-3.409045739764433e-8,0.002140490895281052,2.2575699890952926e-5,-3.396857223236857e-8,0.0021405812375513067,2.2368761539972847e-5,-3.374586429282327e-8,0.002140745261299301,2.21013187905107e-5,-3.345758704823717e-8,0.002140994332456639,2.181402372302832e-5,-3.314720913566537e-8,0.002141324077070165,2.15469856889004e-5,-3.285775427864785e-8,0.002141717448243737,2.1333424920190157e-5,-3.262494699138589e-8,0.0021421491254591573,2.1195757227350775e-5,-3.247299004550511e-8,0.0021425900057506363,2.1143998775028036e-5,-3.2412859574264454e-8,0.002143011062769476,2.117578153748411e-5,-3.2442332125159627e-8,0.0021433864887417924,2.1277166088685482e-5,-3.254683206575627e-8,0.0021436964440635616,2.142377656843826e-5,-3.270056832632809e-8,0.0021439298869587705,2.1582271289495213e-5,-3.2867992137633203e-8,0.0021440878674806683,2.1712763255525305e-5,-3.3006289361086e-8,0.002144187054590783,2.1773439803346106e-5,-3.3070310510598916e-8,0.002144262009093983,2.172867744059509e-5,-3.302135431596869e-8,0.002144363336494184,2.156066898233932e-5,-3.2839788635029706e-8,0.0021445484486645283,2.128161554298987e-5,-3.253826914107641e-8,0.0021448640499980975,2.093968006406232e-5,-3.216820242252745e-8,0.0021453256085358927,2.0610778355504582e-5,-3.181096877059883e-8,0.002145905198301666,2.0374493068902587e-5,-3.155211428654284e-8,0.00214653761622983,2.028404497865664e-5,-3.144915450204835e-8,0.002147143609271417,2.0346789600608755e-5,-3.151058660106004e-8,0.0021476575414585346,2.0525272704293914e-5,-3.1696854344447995e-8,0.002148045581613403,2.0755200980876327e-5,-3.193942834876001e-8,0.0021483090662633483,2.0968393190590092e-5,-3.2165288983192186e-8,0.002148476685362016,2.111059951237463e-5,-3.231601401750927e-8,0.002148592188673189,2.115054857145032e-5,-3.235756967674147e-8,0.0021487026050471423,2.108140192452833e-5,-3.2282037014221544e-8,0.002148849218208448,2.091738286919093e-5,-3.2104180012498956e-8,0.0021490617141141114,2.0687943158359667e-5,-3.185531826563116e-8,0.0021493552248900965,2.043093865495207e-5,-3.1576037272193084e-8,0.0021497299103959574,2.018578295980443e-5,-3.1308781112487576e-8,0.0021501726730506327,1.99873898678633e-5,-3.109124846202539e-8,0.0021506604730088547,1.986152543363258e-5,-3.0951322070678607e-8,0.0021511645783630928,1.9821951349432184e-5,-3.0903980935864254e-8,0.0021516549924586936,1.986945352369192e-5,-3.0950285248140185e-8,0.0021521044365688485,1.9992440843010033e-5,-3.107804747030246e-8,0.0021524916686676407,2.016856874486101e-5,-3.126355090492214e-8,0.0021528042317079527,2.0367018571783807e-5,-3.147390414350625e-8,0.002153040804545645,2.0551375958833374e-5,-3.167000555671362e-8,0.002153213305985311,2.0683403675124328e-5,-3.181050955508008e-8,0.002153348503797179,2.0728467991859314e-5,-3.185767901736995e-8,0.002153487865791758,2.06633838486928e-5,-3.178596101433709e-8,0.002153683336498533,2.0486260716953912e-5,-3.159278162166714e-8,0.0021539866168050876,2.022543685029994e-5,-3.130833435668043e-8,0.0021544317139913717,1.9941401323367558e-5,-3.099772567279643e-8,0.0021550161923323133,1.9714632358069782e-5,-3.074786370682314e-8,0.002155692720036186,1.961840203113644e-5,-3.0638105864892124e-8,0.0021563809762338523,1.9688010875520684e-5,-3.070702518398803e-8,0.0021569972223773057,1.990511081944595e-5,-3.0935392402114285e-8,0.002157485124027573,2.0207307545267066e-5,-3.125638734645144e-8,0.002157830955696959,2.0515501898373752e-5,-3.1584963952577884e-8,0.0021580591073866546,2.0761657983135865e-5,-3.1847730058857165e-8,0.0021582161445200332,2.0904745124936695e-5,-3.200013957830926e-8,0.0021583539825240404,2.0933500471754782e-5,-3.20295538061186e-8,0.0021585179343003775,2.0861021855106574e-5,-3.194956386357729e-8,0.0021587404344839763,2.071653038410741e-5,-3.179127525102121e-8,0.0021590389475030915,2.0537441620192218e-5,-3.159486520542445e-8,0.0021594163239126024,2.0362778417702688e-5,-3.140248197378161e-8,0.002159862527034524,2.02278948399552e-5,-3.12524698579826e-8,0.002160357285130327,2.0160345669093216e-5,-3.117480508185589e-8,0.002160873478204498,2.017687657565958e-5,-3.1187780101922056e-8,0.002161381090914999,2.028164028054539e-5,-3.1296077539601465e-8,0.0021618514304895253,2.0465857833124282e-5,-3.1490443368311834e-8,0.0021622611359319007,2.0709012451658273e-5,-3.174899334089471e-8,0.002162595566211041,2.0981352258249935e-5,-3.203986438715612e-8,0.0021628513653473066,2.1247405686018214e-5,-3.232489338007879e-8,0.0021630380775924086,2.1470340095996585e-5,-3.256419591015205e-8,0.0021631786722644116,2.1617083222566323e-5,-3.272164177108625e-8,0.00216330868415945,2.1664275769114177e-5,-3.277135694153426e-8,0.0021634731281762807,2.1605065487863532e-5,-3.2705257492733154e-8,0.0021637197852005,2.1455812436603205e-5,-3.254053477237097e-8,0.0021640877997709013,2.1259948537739125e-5,-3.232400898296171e-8,0.002164592603377122,2.108438739205041e-5,-3.212829934769005e-8,0.0021652124263154904,2.1004045458292953e-5,-3.2034996857797784e-8,0.002165885927123784,2.107545579977581e-5,-3.21059404679378e-8,0.002166528501769656,2.1310646054636276e-5,-3.235474767326647e-8,0.0021670632549307834,2.1668132745757332e-5,-3.273691349900394e-8,0.0021674499574846086,2.2069275229952522e-5,-3.3167461209084994e-8,0.002167695398646148,2.2430414143251984e-5,-3.355576152777364e-8,0.0021678424617177497,2.2691454458900874e-5,-3.383651203996052e-8,0.002167948850623929,2.2828166985303557e-5,-3.398307877885336e-8,0.0021680682294110717,2.2848871903014454e-5,-3.400396925492826e-8,0.002168239621410091,2.2783477264658934e-5,-3.393109259567893e-8,0.0021684843405062296,2.2671975588932204e-5,-3.380744770218485e-8,0.0021688073255370847,2.2555681481195456e-5,-3.367771500329707e-8,0.0021692001470083005,2.247154601714925e-5,-3.358207900819488e-8,0.0021696442585630864,2.2448607182279223e-5,-3.355228837104354e-8,0.0021701141864079454,2.250565226458912e-5,-3.360901884393857e-8,0.0021705808201399487,2.2649663627314837e-5,-3.376013066261044e-8,0.002171014994842116,2.2875029470842755e-5,-3.399981066861581e-8,0.0021713914000250586,2.3163823595123173e-5,-3.430889349840126e-8,0.002171692521788873,2.348758011808522e-5,-3.4656770876542255e-8,0.0021719120261017694,2.381072758144914e-5,-3.500503838425244e-8,0.002172056961163761,2.4095477309522668e-5,-3.531268029929626e-8,0.002172148267756013,2.430773141450824e-5,-3.5542386815216575e-8,0.0021722192183669113,2.4423369339532766e-5,-3.5667380799741086e-8,0.0021723115797911727,2.443412716691192e-5,-3.567793407850738e-8,0.002172469370856416,2.435222243916228e-5,-3.558662383347489e-8,0.002172730141133899,2.4212483806263987e-5,-3.5430893243344456e-8,0.0021731143123856107,2.406994280862633e-5,-3.527059410845282e-8,0.0021736147553494305,2.399049051461565e-5,-3.517783640369402e-8,0.0021741911382967354,2.4033616638707532e-5,-3.5218066388396594e-8,0.0021747750128882433,2.4230582571380168e-5,-3.542607458320517e-8,0.0021752887669595176,2.4567528571206925e-5,-3.5787372573666643e-8,0.002175673052155437,2.49852415759974e-5,-3.623781078312394e-8,0.002175908854725856,2.5399662837313294e-5,-3.668591393596756e-8,0.0021760215228088064,2.5733306593570758e-5,-3.704716213606398e-8,0.002176065901163682,2.5940343519971294e-5,-3.727134201842648e-8,0.0021761034783204496,2.6014370722419524e-5,-3.735101978943853e-8,0.0021761840080405325,2.598057227504093e-5,-3.731306905929495e-8,0.0021763370696546024,2.5881272618678495e-5,-3.7203079961238056e-8,0.002176571964578955,2.5762734966788867e-5,-3.7071131130532555e-8,0.002176881812643163,2.5666444320064544e-5,-3.6962369095902545e-8,0.002177248530362033,2.562462645803108e-5,-3.6912097310867254e-8,0.0021776471185262275,2.56583990067598e-5,-3.694366624460091e-8,0.0021780490847102727,2.577707907708006e-5,-3.706762059466764e-8,0.002178425470464016,2.5977906113517757e-5,-3.7281338682605485e-8,0.002178749995054507,2.6246122306122735e-5,-3.7569099018844795e-8,0.00217900258816672,2.6555835903572176e-5,-3.7903003824289374e-8,0.0021791731432856958,2.687235363923373e-5,-3.8245472427078433e-8,0.002179264774642755,2.715651610226576e-5,-3.8553882093067663e-8,0.0021792954993946666,2.737100012726711e-5,-3.878734993897014e-8,0.0021792972905228126,2.7487801409019163e-5,-3.891485525836279e-8,0.0021793118845096627,2.7495392292255558e-5,-3.8923106738733907e-8,0.0021793835257311045,2.740366279969572e-5,-3.8822101383632065e-8,0.0021795497062576503,2.7244969924330507e-5,-3.864650695887784e-8,0.0021798315902990814,2.70702521421955e-5,-3.845164962605757e-8,0.0021802262299320907,2.693987847972113e-5,-3.8303651911103566e-8,0.0021807030536763806,2.6909868400577606e-5,-3.826434729027413e-8,0.002181207209043901,2.7015773686396604e-5,-3.837346895969279e-8,0.002181671386070132,2.7258810728352984e-5,-3.8633200520179275e-8,0.0021820347882051537,2.7600628586197033e-5,-3.9002200115334744e-8,0.002182263235355336,2.7971926183414146e-5,-3.940491263576584e-8,0.0021823611556105044,2.829417321789066e-5,-3.9755366604696456e-8,0.0021823687183090976,2.8505597620353956e-5,-3.9985695960752894e-8,0.002182345504518596,2.8579166128070304e-5,-4.006587420492795e-8,0.00218234968005574,2.852535965389795e-5,-4.000679786407413e-8,0.0021824224556048176,2.838187447749541e-5,-3.984911376569704e-8,0.0021825822079256305,2.8198197432587352e-5,-3.964648840870845e-8,0.002182826606343748,2.802230424969246e-5,-3.9451180587015695e-8,0.0021831385394179867,2.7892584515013404e-5,-3.930524420287103e-8,0.002183492363313434,2.7834558372804433e-5,-3.9236882225582924e-8,0.00218385884397354,2.7860496490932013e-5,-3.9259933128383583e-8,0.0021842086588251997,2.7970168372585447e-5,-3.937460019364952e-8,0.0021845150758582356,2.815172900254157e-5,-3.956836422313752e-8,0.0021847565668936496,2.838260505830918e-5,-3.9816914283289737e-8,0.002184919839335821,2.8630898322059892e-5,-4.0085638458821643e-8,0.002185003215576358,2.885819450463714e-5,-4.033263381846127e-8,0.00218501956630861,2.9024619642616696e-5,-4.0514173513386934e-8,0.002184997331671042,2.9096343678574037e-5,-4.0592881414629923e-8,0.0021849779434766005,2.9054458176741742e-5,-4.054747138967016e-8,0.0021850086809995705,2.890265974050007e-5,-4.0381253019101765e-8,0.0021851317555203866,2.867039550492026e-5,-4.012573894978999e-8,0.002185372477190764,2.8408972654841787e-5,-3.983659301605007e-8,0.002185730455124099,2.8180528313815657e-5,-3.958174677758403e-8,0.0021861771693066417,2.804251014407566e-5,-3.942450075684918e-8,0.002186661265337064,2.803206489062113e-5,-3.940634962351665e-8,0.0021871205644257144,2.8154906091556042e-5,-3.953453886956924e-8,0.0021874978725242504,2.8382145494403323e-5,-3.977826745766282e-8,0.002187756423815575,2.865671184733779e-5,-4.0075466582978284e-8,0.0021878902551987,2.8908425992492547e-5,-4.0349239996036213E-08,0.0021879255831569328,2.907366219308399e-5,-4.052949755270081e-8,0.002187912085216684,2.9112986253584563e-5,-4.057244739063578e-8,0.0021879072199879612,2.9020292931549317e-5,-4.0470759660277784E-08,0.0021879598630596396,2.8820635503511565e-5,-4.025130399634947e-8,0.0021880992812219192,2.855917509608077e-5,-3.996313733776403e-8,0.002188332056726784,2.8287020621832985e-5,-3.9662060963515264e-8,0.0021886456060208528,2.804939262502735e-5,-3.9397673106991304e-8,0.0021890148819920466,2.7878715380127772e-5,-3.9205757381181164e-8,0.002189409156221178,2.7792378102702624e-5,-3.9105747978824426e-8,0.0021897972687176166,2.7793455583849522e-5,-3.9101439536603146e-8,0.0021901511374968234,2.7872602070577086e-5,-3.9183008468822456e-8,0.0021904481235000325,2.80099950384596e-5,-3.932910624744156e-8,0.002190673074057688,2.8177065500827853e-5,-3.950871255388833e-8,0.0021908206554662854,2.8338483116444323e-5,-3.9683248872783535e-8,0.002190898034144987,2.8455330491275332e-5,-3.980999342254779e-8,0.002190927155960091,2.8490498477234655e-5,-3.9847964078533655e-8,0.0021909449561215767,2.841676049523602e-5,-3.9766800450551744e-8,0.002190999293289918,2.8226395593368268e-5,-3.955740530076425e-8,0.0021911391604951622,2.7938931175521973e-5,-3.924055987672371e-8,0.0021914004248092763,2.7602074739011113e-5,-3.886808440988153e-8,0.00219179202133541,2.7282286475806473e-5,-3.851264350198292e-8,0.002192289357213238,2.704625873866707e-5,-3.82475557684289e-8,0.0021928392696263337,2.6940105864173445e-5,-3.812399760810237e-8,0.0021933752027235077,2.697500409955819e-5,-3.815512007691709e-8,0.002193836370061701,2.712470614302269e-5,-3.8313049345572726e-8,0.0021941837606845793,2.7334592335765326e-5,-3.8538514178115646e-8,0.0021944084668189573,2.753776194502866e-5,-3.875830475133487e-8,0.002194531286417225,2.7672583796492192e-5,-3.890450991618433e-8,0.002194595052600508,2.769704623340426e-5,-3.893040017878978e-8,0.0021946525033668582,2.759686253141467e-5,-3.881953924029014e-8,0.002194753120305771,2.7386090076476726e-5,-3.858667842959779e-8,0.0021949323250686314,2.7100914061041817e-5,-3.82710888669168e-8,0.0021952055424206626,2.678902702000713e-5,-3.792497063521771e-8,0.0021955679291575467,2.6498107213706706e-5,-3.760078207771899e-8,0.0021959986568907772,2.626660204683497e-5,-3.73410335002723e-8,0.0021964674766541165,2.6118501228737073e-5,-3.7172439057852775e-8,0.0021969413113013753,2.60620374695922e-5,-3.7104408935529385e-8,0.0021973894608135576,2.6091132908844254e-5,-3.7130604436828466e-8,0.00219778705276762,2.6188108161646412e-5,-3.7231911539965425e-8,0.0021981171577645352,2.6326541689641457e-5,-3.7379570709525906e-8,0.0021983722862443157,2.647389410124768e-5,-3.753800898406534e-8,0.0021985558494707763,2.6594192238440678e-5,-3.766770585522208e-8,0.0021986837479933113,2.6651537795907375e-5,-3.772898009889921e-8,0.0021987855132714115,2.6615420265459276e-5,-3.76878288712398e-8,0.0021989034252902504,2.646839864760911e-5,-3.752446513210713e-8,0.002199087291365176,2.621516384114665e-5,-3.7243437839789706e-8,0.002199383129417582,2.588937576288623e-5,-3.688130790905145e-8,0.0021998169911259277,2.555241378810931e-5,-3.650538638656394e-8,0.0022003802001003703,2.5279351320183844e-5,-3.619836871761591e-8,0.0022010254563611044,2.513422877506996e-5,-3.603114654032077e-8,0.002201679461595271,2.5145548720641303e-5,-3.603578324988553e-8,0.0022022676262901954,2.5295397762231912e-5,-3.619337702747384e-8,0.0022027384098715387,2.552770043771887e-5,-3.6442911016991864e-8,0.0022030761947726936,2.5769490088737933e-5,-3.6704451465803936e-8,0.0022032999837505608,2.5953710056367697e-5,-3.690413133727294e-8,0.002203452495899009,2.6035101872089713e-5,-3.699166081129466e-8,0.00220358608653898,2.5996726968420892e-5,-3.6947657521712005e-8,0.0022037500668679825,2.584868135819004e-5,-3.678246540474378e-8,0.0022039815599960576,2.562183741456571e-5,-3.6529498934363496e-8,0.0022043004146107474,2.5359154396673204e-5,-3.6235824598435174e-8,0.0022047079845341367,2.510642092784503e-5,-3.595198121736966e-8,0.002205189271399241,2.490392157422305e-5,-3.5722695471243174e-8,0.0022057175485827437,2.4780291065975067e-5,-3.557995202152093e-8,0.002206260229099632,2.4749273402388118E-05,-3.553929040719807e-8,0.0022067847011294868,2.4809362891213233e-5,-3.559935513770356e-8,0.002207263133432532,2.494571788740346e-5,-3.574402276444476e-8,0.0022076757646234684,2.5133391696059046e-5,-3.594599847110066e-8,0.0022080127950028375,2.534094893318031e-5,-3.61707958606488e-8,0.0022082753512539274,2.5533983406702185e-5,-3.6380543421501094e-8,0.0022084759594946783,2.5678586499651885e-5,-3.653770547250637e-8,0.0022086387115195184,2.5745202620986414e-5,-3.6609273231779453e-8,0.002208798772150077,2.5713550443386234e-5,-3.6572240060008746e-8,0.002208999993716592,2.557900040024047e-5,-3.6420802882875486e-8,0.0022092887458073814,2.5359488384672675e-5,-3.6174216899908184e-8,0.0022097025167608603,2.5099812062111692e-5,-3.588172643050776e-8,0.0022102543881308777,2.4867936743048755e-5,-3.56185625830845e-8,0.0022109195242995543,2.4738476511340537e-5,-3.5467648422950415e-8,0.002211634051687777,2.4765337819048855e-5,-3.5489237515539794e-8,0.002212313150289902,2.495636083716276e-5,-3.5692713187243686e-8,0.0022128823429647753,2.526671790565515e-5,-3.602912278257172e-8,0.0022133046472050132,2.5616981016093155e-5,-3.641102991172894e-8,0.0022135888531115686,2.5924578071327065e-5,-3.6747220225829005e-8,0.0022137783155401383,2.6130440340332528e-5,-3.69721280559337e-8,0.0022139309577410685,2.6210438172246873e-5,-3.705850643683236e-8,0.0022141014474845195,2.6172901848814536e-5,-3.7014821330468624e-8,0.0022143303324376486,2.604895373490618e-5,-3.687478915277662e-8,0.002214639802017609,2.5881451700368056e-5,-3.668537821684993e-8,0.0022150338963010646,2.5715502764954452e-5,-3.649643735626844e-8,0.0022155011447347337,2.5591302194405776e-5,-3.6352737563078843e-8,0.0022160184567097205,2.553907975187675e-5,-3.628822151576024e-8,0.0022165557263009628,2.5575938852458807e-5,-3.63223191891732e-8,0.0022170807551756427,2.5704576800506107e-5,-3.6458407892383054e-8,0.002217564030701961,2.591385422119361e-5,-3.668441906146322e-8,0.0022179828448299827,2.6181049859668053e-5,-3.697537858622144e-8,0.0022183242804138395,2.6475407977684876e-5,-3.729737331333177e-8,0.002218586851652362,2.6762362021212276e-5,-3.7612202106384365e-8,0.002218780907528584,2.7007899392426868e-5,-3.7882116402540654e-8,0.00221892800983572,2.718282261799535e-5,-3.807443917791746e-8,0.0022190594291572868,2.7266897794539164e-5,-3.816614008581418e-8,0.002219213643884262,2.7253074171586324e-5,-3.814862701576736e-8,0.0022194321448706397,2.7151812912431053e-5,-3.8032782192625904e-8,0.0022197524438374,2.699457943246866e-5,-3.785310248538782e-8,0.0022201977516507457,2.6834004944931882e-5,-3.7668058896544666e-8,0.0022207647596439554,2.6736960739406968e-5,-3.755241769514929e-8,0.002221414588087056,2.6767401671111417e-5,-3.757801963905858e-8,0.0022220754445295104,2.696116773143545e-5,-3.778551747050506e-8,0.002222662982074354,2.7304481080951647e-5,-3.81602371398771e-8,0.002223112492580615,2.7732335963690483e-5,-3.8630272100101265e-8,0.0022234048892087036,2.815262001038408e-5,-3.9093316095525206e-8,0.002223570353579146,2.8482812379548647e-5,-3.9457507211628694e-8,0.0022236698422765312,2.8677471002609632e-5,-3.9671972494411865e-8,0.002223768955546225,2.8734606819302868e-5,-3.973390147896533e-8,0.002223918561912486,2.8685068606721128e-5,-3.9676852435000445e-8,0.002224146947177898,2.857614254949019e-5,-3.955275079853739e-8,0.002224460584546953,2.8457539680318737e-5,-3.9416539001133896e-8,0.0022248488878112726,2.8372409677147155e-5,-3.931628151961653e-8,0.0022252897394614136,2.8352697862785916e-5,-3.9287926512737694e-8,0.002225754439448891,2.8417200189247082e-5,-3.9352956850409215e-8,0.0022262119752000306,2.8571064147124517e-5,-3.9517646409515605e-8,0.0022266329015272588,2.8806246946617162e-5,-3.977346217838114e-8,0.002226992971723243,2.9102919767945163e-5,-4.009861614536306e-8,0.002227276408541931,2.9431986686848863e-5,-4.046090776146395e-8,0.002227478443459657,2.975881765135786e-5,-4.082189498635584e-8,0.0022276066367046955,3.00479536480172e-5,-4.114208286135804e-8,0.0022276806541805206,3.0268246647568305e-5,-4.1386550741833944e-8,0.0022277304168021564,3.0397850263698415e-5,-4.153044218187168e-8,0.0022277927064168696,3.0428497299104088e-5,-4.1563769098494404e-8,0.0022279064138012593,3.036858246513481e-5,-4.149502940286735e-8,0.002228106506621653,3.0244655302837534e-5,-4.13531517818982e-8,0.0022284166785792644,3.0100550888706932e-5,-4.1186794221321944e-8,0.0022288411897262855,2.9992625796661267e-5,-4.10591614928939e-8,0.0022293578310589434,2.997937361758266e-5,-4.1036340003927136e-8,0.002229915827113162,3.0105006870106393e-5,-4.116870189588894e-8,0.0022304437011137785,3.0380336855881893e-5,-4.146920822621145e-8,0.0022308696821551816,3.0770008843180174e-5,-4.189889481023213e-8,0.0022311489278408515,3.119747911794132e-5,-4.237238494059883e-8,0.002231282975267909,3.157105128869589e-5,-4.278709882978031e-8,0.0022313182697664352,3.181892335039289e-5,-4.3062523712161575e-8,0.0022313244787628863,3.1913280890993805e-5,-4.316712531818715e-8,0.0022313668866389517,3.187208721013959e-5,-4.312031825412391e-8,0.0022314877691962513,3.174329917730292e-5,-4.297493790279011e-8,0.0022317016189136243,3.1584440533183345e-5,-4.2794660080913634e-8,0.0022320000376087473,3.1447193001066374e-5,-4.263700565313382e-8,0.0022323599775302527,3.1369544649942365e-5,-4.2544629399779314e-8,0.0022327512669868426,3.13736485445689e-5,-4.254281430583861e-8,0.0022331420789577098,3.146660704082846e-5,-4.264014632464142e-8,0.002233502662649728,3.164221547907365e-5,-4.283028278424188e-8,0.0022338081602597494,3.188287847991798e-5,-4.309400116155361e-8,0.0022340411058888376,3.216172283638613e-5,-4.340155202858812e-8,0.002234193788318541,3.244531827001491e-5,-4.371572186288535e-8,0.002234270215537642,3.269748772071455e-5,-4.399608728756532e-8,0.0022342870174345488,3.288434625146084e-5,-4.4204595810092806e-8,0.0022342725300309807,3.298010211189754e-5,-4.431198509478476e-8,0.00223426358719864,3.297265366270278e-5,-4.430402838113176e-8,0.002234300042169446,3.28677210223566e-5,-4.4186255163092324e-8,0.0022344176501358816,3.269023712664952e-5,-4.398572890389884e-8,0.0022346404530500393,3.248215526411121e-5,-4.374887676761402e-8,0.0022349739993351363,3.229642695778004e-5,-4.3534981383312984e-8,0.002235400846601725,3.218729338221004e-5,-4.3405375317758714e-8,0.0022358801294424515,3.2197598996961654e-5,-4.3409074494626946e-8,0.0022363531613351687,3.234518444318427e-5,-4.356719715545998e-8,0.0022367562584270713,3.26124404623423e-5,-4.386088239969612e-8,0.002237039364916164,3.2944799036726895e-5,-4.4229360674700297e-8,0.002237184585255663,3.3263008754100455e-5,-4.458371191536925e-8,0.0022372152097443723,3.348808466964168e-5,-4.4835003790813605e-8,0.002237188268790842,3.356890037152168e-5,-4.492538522979582e-8,0.002237172973766367,3.3498373396684425e-5,-4.4846285550617134e-8,0.002237226446062347,3.331063740330506e-5,-4.463527151098567e-8,0.0022373785866876966,3.306356285861056e-5,-4.435657408777556e-8,0.0022376301801785795,3.281796598936418e-5,-4.407798109343235e-8,0.002237960293002327,3.262266212632057e-5,-4.385422435645071e-8,0.0022383364907900727,3.250798890852662e-5,-4.371970523753345e-8,0.002238723456645966,3.2485676809755455e-5,-4.3688197681211816e-8,0.0022390886143439774,3.255173487689696e-5,-4.3755889161178954e-8,0.002239405282078471,3.2689939993701276e-5,-4.390514695537152e-8,0.002239654500276259,3.2874917872497975e-5,-4.410791058122196e-8,0.002239826466603891,3.3074841894149056e-5,-4.43287154816248e-8,0.0022399219825763365,3.325431872964785e-5,-4.452793608909369e-8,0.00223995372724577,3.337818442270938e-5,-4.466602508507044e-8,0.002239946609945796,3.341665474095889e-5,-4.4709250539583116e-8,0.0022399361149010558,3.335152643078121e-5,-4.463662869840457e-8,0.0022399637177205746,3.318214901741799e-5,-4.4446666383878356e-8,0.0022400692719222156,3.292908438196356e-5,-4.4161604326662625e-8,0.0022402815961347503,3.263324461259011e-5,-4.382667142532589e-8,0.0022406097829435986,3.234928937051243e-5,-4.35029200728048e-8,0.0022410381982317313,3.2133989991873885e-5,-4.325433505758617e-8,0.002241527366860039,3.2032192958380706e-5,-4.31320710589e-8,0.002242021338402319,3.206407169227447e-5,-4.315991919307524e-8,0.002242460373611949,3.22173758634287e-5,-4.3325235858678146e-8,0.0022427962572554097,3.244758975145919e-5,-4.3578759913273076e-8,0.002243006285647738,3.268735329396462e-5,-4.384500203668317e-8,0.002243101254106713,3.2863977904254935e-5,-4.4041959824776854e-8,0.002243123492551911,3.292048609982193e-5,-4.410494856355586e-8,0.0022431341784470964,3.283271918257909e-5,-4.400603585822717e-8,0.002243194132145136,3.261533508896748e-5,-4.376093452019552e-8,0.0022433459529788004,3.2314277942817154e-5,-4.342065606321087e-8,0.0022436045440565053,3.198999227156275e-5,-4.305276261895022e-8,0.002243958133515982,3.169947891807182e-5,-4.2721289735892826e-8,0.002244376640907042,3.148388477407264e-5,-4.2472798095789184e-8,0.0022448221512804886,3.136378685678507e-5,-4.233096289601714e-8,0.0022452575632132565,3.134045113321896e-5,-4.2297823602288997e-8,0.002245652005153063,3.139999666608745e-5,-4.2358322241039085e-8,0.002245983472810847,3.151802159817808e-5,-4.248543069195238e-8,0.0022462398578507008,3.166353197668659e-5,-4.2644554056704593e-8,0.002246419446397792,3.180211929402931e-5,-4.2797108244559135e-8,0.0022465314514837314,3.1898991863196846e-5,-4.290391686790522e-8,0.0022465964763423293,3.192267915682146e-5,-4.292934587877446e-8,0.0022466461542808808,3.185001140863545e-5,-4.2846882077462555e-8,0.0022467207138888905,3.1672240851810194e-5,-4.264604611928958e-8,0.0022468631990779767,3.140089843834509e-5,-4.2339079016408486e-8,0.0022471100388813652,3.1070610463486265e-5,-4.196427300171984e-8,0.002247479746499827,3.073566784992554e-5,-4.158230565870342e-8,0.0022479638331529823,3.045874199951375e-5,-4.1263714808448154e-8,0.002248524763253154,3.02937857422682e-5,-4.1069733388505545e-8,0.002249103611883865,3.0268960024283786e-5,-4.1032988729356464e-8,0.0022496357222364597,3.0376558929030593e-5,-4.114590430823665e-8,0.002250068824548509,3.0574158665270486e-5,-4.1361647414439126e-8,0.0022503772247836114,3.07964029825346e-5,-4.160710741763205e-8,0.002250567802057482,3.097301904580212e-5,-4.1803061544443096e-8,0.002250676749711126,3.1047324392743566e-5,-4.188509138902905e-8,0.0022507586723131802,3.099010340839463e-5,-4.1819420951854353e-8,0.002250871480347393,3.080538471041008e-5,-4.1609680129912226e-8,0.0022510615188335178,3.052699532297764e-5,-4.1293253390966694e-8,0.002251353179262093,3.0207520227351978e-5,-4.092900157619033e-8,0.0022517456031207373,2.990365199999711e-5,-4.058081653528731e-8,0.002252216441744965,2.966277801546249e-5,-4.0302454700107246e-8,0.0022527301904458124,2.9514465763670236e-5,-4.012779775956819e-8,0.0022532475943158755,2.9467955847632948e-5,-4.0067851081194045e-8,0.0022537333307623537,2.9514413442723212e-5,-4.0113146302274113E-08,0.0022541607881451917,2.9631644844628163e-5,-4.023900335211374e-8,0.002254514189838657,2.9789237110179563e-5,-4.041133614434692e-8,0.0022547890266936274,2.9952985275678716e-5,-4.059167064094272e-8,0.0022549917913854377,3.0088440765969818e-5,-4.074114160771088e-8,0.0022551396035145384,3.016407696389352e-5,-4.08240201186456e-8,0.0022552597216511264,3.015481429148342e-5,-4.081164539487939e-8,0.0022553882919875423,3.0046508802163843e-5,-4.0687495180085486e-8,0.002255567099077569,2.9841357504034444e-5,-4.045337540522603e-8,0.0022558369388607233,2.9562838755949134e-5,-4.0135156504026914e-8,0.0022562271875581842,2.9257130726269753e-5,-3.978455631529007e-8,0.0022567436326642507,2.898714903281843e-5,-3.947255364662877e-8,0.0022573598823487835,2.8817209579511943e-5,-3.927213390100102e-8,0.002258018966071855,2.8791605493017066e-5,-3.923404737454537e-8,0.002258648117312685,2.891633036493332e-5,-3.936599702943412e-8,0.0022591820275492096,2.9154153382066135e-5,-3.962682189325287e-8,0.0022595839247476135,2.9436595028559185e-5,-3.993977198480979e-8,0.00225985505008105,2.9686790215993037e-5,-4.021816649643196e-8,0.002260030241699472,2.9842461088519565e-5,-4.039130403089442e-8,0.002260164133587199,2.9870701143892955e-5,-4.042125712911031e-8,0.0022603147060398874,2.9772008334002676e-5,-4.0307640364203134e-8,0.002260529356679789,2.957539212424842e-5,-4.008236218492744e-8,0.0022608360709949985,2.9328088618681445e-5,-3.9798262676794195e-8,0.002261240279369694,2.9083351681059975e-5,-3.951545849385412e-8,0.0022617268003365322,2.888909043567816e-5,-3.9288472509905356e-8,0.0022622655482008036,2.8779388123142624e-5,-3.915647214350556e-8,0.002262819189102602,2.8770098261314698e-5,-3.913805732001187e-8,0.002263350798057785,2.88586129564398e-5,-3.92308125522209e-8,0.0022638299762149723,2.9026875547142857e-5,-3.9414639258724473e-8,0.00226423666135669,2.9246199189130553e-5,-3.9657234352431613e-8,0.0022645626786873415,2.9482478245198007e-5,-3.992005306099529e-8,0.0022648116674165116,2.9700822468235492e-5,-4.016358408751382e-8,0.0022649981596772123,2.9869345096513426e-5,-4.0351602493104255e-8,0.00226514630501003,2.9962411033835785e-5,-4.04547762743576e-8,0.002265288298830657,2.9963862391270176e-5,-4.045428268554886e-8,0.0022654620702153745,2.9870664852001304e-5,-4.034600056798178e-8,0.002265707212446325,2.969691295175194e-5,-4.0145217890832345e-8,0.002266057956294179,2.947691133511338e-5,-3.9890345763315734e-8,0.0022665329039003286,2.926444328548644e-5,-3.964227072360827e-8,0.0022671236887107245,2.9124484378898093e-5,-3.9475022511818455E-08,0.002267788240646869,2.9115420126813518e-5,-3.945552451759843e-8,0.0022684561262601086,2.9265821438624493e-5,-3.9617054061131354e-8,0.0022690490903026677,2.955733641213853e-5,-3.993960157280089e-8,0.002269509515122626,2.992626254599793e-5,-4.035147042985752e-8,0.00226982162214845,3.0286068029203308e-5,-4.0754733553186254e-8,0.0022700138757717004,3.055897303667495e-5,-4.1061025649979134e-8,0.0022701436737226793,3.069989577380529e-5,-4.1218699906638504e-8,0.00227027517647685,3.070387520696665e-5,-4.122131101616223e-8,0.002270461042897145,3.059919619723711e-5,-4.1100011651257346e-8,0.002270732689133939,3.0433729733369717e-5,-4.090835113136894e-8,0.002271098337780852,3.026097227227714e-5,-4.070670005595391e-8,0.002271546105525531,3.012906258930677e-5,-4.0549886052690306e-8,0.002272049606456396,3.007354356655947e-5,-4.0478868217575704e-8,0.0022725744638758933,3.011354728086309e-5,-4.051615436512521e-8,0.0022730847790649704,3.0250954443169037e-5,-4.066458322488583e-8,0.002273548838725809,3.047206367789406e-5,-4.0909059104787467e-8,0.0022739434936463994,3.075113090835044e-5,-4.1220551846418976e-8,0.0022742568636345524,3.105504186902545e-5,-4.156147942044127e-8,0.0022744892839467825,3.134835492335001e-5,-4.189151521878511e-8,0.0022746527416301044,3.159798737144839e-5,-4.217292294439811e-8,0.0022747692873981264,3.177714018497166e-5,-4.237495585906838e-8,0.0022748688113758886,3.186850606857967e-5,-4.247743480535395e-8,0.002274986290774487,3.186699225575003e-5,-4.2473855910760004e-8,0.0022751583117732004,3.178213127539921e-5,-4.237427673206388e-8,0.0022754182619907173,3.1640017291713195e-5,-4.2207768491395545e-8,0.0022757894556965316,3.1483670873694755e-5,-4.202308555544977e-8,0.0022762763149492913,3.1369490725813464e-5,-4.188476186116999e-8,0.002276855832823401,3.135697026894548e-5,-4.186133900931318e-8,0.0022774744421386866,3.1490633861351893e-5,-4.200454099581501e-8,0.0022780569340058936,3.177865036092299e-5,-4.232457983909165e-8,0.0022785298502353986,3.217986098398422e-5,-4.277512950721424e-8,0.002278850878859694,3.261186828087253e-5,-4.326249088421801e-8,0.002279027127460274,3.29810254809563e-5,-4.3679853601427606e-8,0.0022791101135152944,3.3218485070021266e-5,-4.3948435338700015e-8,0.0022791716138773816,3.33017751806445e-5,-4.404203618293163e-8,0.0022792763622203156,3.325354630218967e-5,-4.3985619723857855e-8,0.0022794650184009696,3.312474867222378e-5,-4.3836336864797965e-8,0.0022797502493714416,3.297479872131966e-5,-4.3661248003750406e-8,0.00228012142820996,3.285672340462785e-5,-4.35206528604119e-8,0.0022805525144040995,3.2809069538178984e-5,-4.3458910771532503e-8,0.002281009749824412,3.28530678199272e-5,-4.350102367560977e-8,0.002281457946481573,3.299290573495884e-5,-4.3652647942342574e-8,0.0022818653863613037,3.3217663060474e-5,-4.390203862093646e-8,0.0022822076095379298,3.350430854908523e-5,-4.4223341324998374e-8,0.0022824701581385626,3.38215008984268e-5,-4.458094556850484e-8,0.0022826501909389498,3.413398695711384e-5,-4.493459121134231e-8,0.0022827568168762593,3.44073498830337e-5,-4.524485208989148e-8,0.0022828100447377627,3.4612658901913384e-5,-4.547843105508966e-8,0.0022828384740465075,3.4730475087631895e-5,-4.561266796396316e-8,0.002282876011570533,3.475388096679199e-5,-4.5638964500433376e-8,0.002282957848421652,3.469040464851831e-5,-4.5565062411767125e-8,0.0022831158204580496,3.456271833872463e-5,-4.541606069616092e-8,0.0022833731202049406,3.440786048574832e-5,-4.5233819572801423e-8,0.0022837383081319583,3.427425554837967e-5,-4.507378989735375e-8,0.0022841992424606486,3.42151255976047e-5,-4.4997528462908375e-8,0.0022847190630679586,3.427694413898361e-5,-4.505929978605274e-8,0.0022852381039333777,3.448341082476899e-5,-4.528736898920922e-8,0.002285686017006873,3.4819631970934466e-5,-4.566551541864208e-8,0.0022860045965692596,3.522625967483624e-5,-4.6126130449042295e-8,0.0022861729555042707,3.5613274931110104e-5,-4.65660689031637e-8,0.002286219685653516,3.5892392446296056e-5,-4.688394305335418e-8,0.002286211691889868,3.601177133491025e-5,-4.7019944247694604e-8,0.002286225505956513,3.5972626779050686e-5,-4.697479161031815e-8,0.0022863188543598124,3.58205873724714e-5,-4.6799832485411654e-8,0.00228651668635773,3.562198060753e-5,-4.6570120297171264e-8,0.002286812966928041,3.5440632292562546e-5,-4.635820450409294e-8,0.002287180868527256,3.532389707738892e-5,-4.6218365864022434e-8,0.002287583967878681,3.5298098790532246e-5,-4.618136168410986e-8,0.0022879848284268977,3.536980504236021e-5,-4.6255633734096165e-8,0.0022883504197809537,3.552946613083765e-5,-4.643115703668337e-8,0.002288655274879669,3.575541538610793e-5,-4.668378554344655e-8,0.0022888834463104927,3.60176745468646e-5,-4.697952823998258e-8,0.002289029789277668,3.6281738912671874e-5,-4.727893103740416e-8,0.002289100595889158,3.65126058036671e-5,-4.754178038619249e-8,0.0022891133320047745,3.667916372430841e-5,-4.773217946936401e-8,0.0022890950961498148,3.675871799412574e-5,-4.782371311654076e-8,0.0022890795607725576,3.674100774676719e-5,-4.7804003549630296e-8,0.002289102527511509,3.663093644990813e-5,-4.767785241181172e-8,0.002289196541348638,3.644938070154096e-5,-4.746830614559982e-8,0.0022893851939173337,3.6231636872978196e-5,-4.7215134114218746e-8,0.002289677840039512,3.602331407239086e-5,-4.6970406519053876e-8,0.0022900654708520327,3.58736629553553e-5,-4.679101983320465e-8,0.002290518708418688,3.582634915501503e-5,-4.6728061346799346e-8,0.0022909894789891827,3.590809695929047e-5,-4.681348212371508e-8,0.002291418352774001,3.611712058525191e-5,-4.704638370723802e-8,0.002291748752111823,3.641569025232455e-5,-4.7384109668672996e-8,0.0022919460643483626,3.6733133288591057e-5,-4.774556420547209e-8,0.0022920143328060607,3.6983858880081674e-5,-4.803206329891999e-8,0.002291999814615806,3.7096977477987554e-5,-4.8161604641847836e-8,0.002291975474626928,3.704374634491269e-5,-4.8100515063701843e-8,0.0022920128248449328,3.6846970662485426e-5,-4.787422973248501e-8,0.0022921567275596033,3.656759825553701e-5,-4.7551933742153225e-8,0.0022924155206640656,3.627866505605262e-5,-4.721685937218435e-8,0.0022927669894349093,3.6041857596996885e-5,-4.6939648387720506e-8,0.002293172035520522,3.589533984270876e-5,-4.676448884083824e-8,0.002293587774220062,3.585234950794764e-5,-4.670737294106673e-8,0.00229397625599273,3.5905780732209896e-5,-4.676107434656356e-8,0.0022943087935883965,3.603438248915831e-5,-4.690198432790658e-8,0.0022945674627496593,3.6208248273547327e-5,-4.709625363021303e-8,0.0022947453752612396,3.639309951270794e-5,-4.730469355160464e-8,0.002294846618012875,3.655385217382977e-5,-4.748694572871607e-8,0.0022948859966711527,3.6658142221179055e-5,-4.760561192507473e-8,0.0022948882229804706,3.66802485027254e-5,-4.7630789899419904e-8,0.002294885915277481,3.660536515102313e-5,-4.754496057001509e-8,0.0022949158390162044,3.64335141641052e-5,-4.7347464493291285e-8,0.002295013303258485,3.6181877526743895e-5,-4.705723761896796e-8,0.0022952053707549756,3.5884255428738196e-5,-4.6712359540665154e-8,0.0022955042500871392,3.558678939109289e-5,-4.6365392836542746e-8,0.002295902637857623,3.534001900618766e-5,-4.607449202272132e-8,0.002296372603345501,3.518847407688666e-5,-4.5891531629784525e-8,0.002296868936882388,3.515979486113663e-5,-4.584945571699113e-8,0.002297337100875107,3.525571375908133e-5,-4.595154991513938e-8,0.0022977251112613487,3.54474663309797e-5,-4.6165727461002804e-8,0.002297997511006086,3.567828648084553e-5,-4.642708208073091e-8,0.0022981479038201797,3.587486868504097e-5,-4.665101902295781e-8,0.0022982048890346418,3.59670990491837e-5,-4.6756152857442506e-8,0.0022982264993906746,3.591076706084595e-5,-4.66907281238414e-8,0.00229828244392896,3.570370688981107e-5,-4.645139989864305e-8,0.0022984305793150974,3.538654013029307e-5,-4.6084187811529834e-8,0.002298698613153666,3.502687277549902e-5,-4.5666380520174655e-8,0.0022990791902976694,3.4695334694455384e-5,-4.5279093849930466e-8,0.0022995381727997865,3.4445276278051516e-5,-4.49839970221804e-8,0.002300029218953335,3.430321854904224e-5,-4.4812265883725474e-8,0.0023005071520190556,3.426970567379333e-5,-4.4765358220823394e-8,0.0023009363058259054,3.432593949783263e-5,-4.4822399265362546e-8,0.0023012938617268945,3.444159290053393e-5,-4.494899788620879e-8,0.002301570006953491,3.458126436569647e-5,-4.51046246777301e-8,0.002301766800108603,3.470904311234521e-5,-4.524791553057968e-8,0.002301896888738061,3.479179416047871e-5,-4.534053254240823e-8,0.002301982375857608,3.480208071788327e-5,-4.535057802732492e-8,0.0023020534602801847,3.472142304601621e-5,-4.525634915545079e-8,0.0023021460538406057,3.454404162586172e-5,-4.505063369302154e-8,0.002302297520970304,3.4280415377693827e-5,-4.474483116108385e-8,0.00230254017354546,3.395911142067943e-5,-4.4371164167657605e-8,0.0023028932564570586,3.3624877587848964e-5,-4.398066536436923e-8,0.0023033555964254958,3.333152309155398e-5,-4.3635188638132984e-8,0.0023039020503271127,3.312995217770553e-5,-4.339376844190064e-8,0.002304486385520222,3.305425894193706e-5,-4.329658172175806e-8,0.002305051035348368,3.3110519998397165e-5,-4.335181227808648e-8,0.0023055413708626526,3.3272560571329226e-5,-4.353040435431237e-8,0.0023059202737308734,3.348666573581906e-5,-4.3771124818958763e-8,0.0023061786570983014,3.368428524135492e-5,-4.3994995923487775e-8,0.0023063388048928817,3.379947725797813e-5,-4.412542796611055e-8,0.0023064492323863275,3.378653186463361e-5,-4.410875759920423e-8,0.0023065718780325255,3.363277880294064e-5,-4.392931753536871e-8,0.0023067648430645355,3.336223440573916e-5,-4.361391666217241e-8,0.0023070660644278905,3.302816568314063e-5,-4.322345795297547e-8,0.002307483727852774,3.269679339994018e-5,-4.2834243518091083e-8,0.0023079967124393116,3.242829025455311e-5,-4.2516054578377455e-8,0.002308563857239961,3.2262195589673835e-5,-4.2315205384790976e-8,0.0023091372052619127,3.221149782256434e-5,-4.224750159055635e-8,0.002309673844341424,3.2265073740245427e-5,-4.2300823774791806e-8,0.0023101432068525158,3.239501720334835e-5,-4.244342832539441e-8,0.0023105295861446016,3.256496006872504e-5,-4.2633513685632894e-8,0.0023108314009869526,3.2736917316135974e-5,-4.282717939490637e-8,0.002311059046577513,3.287596311964373e-5,-4.298390962236588e-8,0.0023112325956021447,3.2953249680788354e-5,-4.30701110947523e-8,0.00231137979665109,3.294831861010061e-5,-4.306178209267358e-8,0.0023115340997543143,3.285151044406728e-5,-4.2947275355292e-8,0.0023117319317365243,3.2666777386046935e-5,-4.2730561942988145e-8,0.0023120082445560355,3.241439708027806e-5,-4.243445694518821e-8,0.0023123897136956896,3.213200948149292e-5,-4.210197938273945e-8,0.002312886188388601,3.1871514418046985e-5,-4.179294978549619e-8,0.0023134830361791667,3.168968477884489e-5,-4.157326718028376e-8,0.0023141388246951094,3.163282940214068e-5,-4.149718047268907e-8,0.002314792329840861,3.172005820484998e-5,-4.158778555622238e-8,0.002315378896673669,3.193290371843414e-5,-4.182474929661659e-8,0.0023158505127047306,3.2217740072628357e-5,-4.214680612835947e-8,0.0023161909435828218,3.2501262856054346e-5,-4.2469442360932653e-8,0.002316419671183998,3.271254277366566e-5,-4.27103290681903e-8,0.0023165841921237427,3.2802780436011716e-5,-4.2812247472897776e-8,0.0023167450214273137,3.2756541656388914e-5,-4.275628838705075e-8,0.0023169591271539453,3.259272819167442e-5,-4.256326379538918e-8,0.0023172663812004936,3.2356898186037265e-5,-4.228512778642178e-8,0.0023176817453812227,3.2108186977599e-5,-4.199006993769168e-8,0.002318194185054491,3.1904582986137214e-5,-4.174553762547756e-8,0.00231877176791076,3.1790160014621046e-5,-4.1603324561922454e-8,0.002319371007020906,3.1787119353049104e-5,-4.159008391244041e-8,0.0023199475183516252,3.189400454355314e-5,-4.17049622110272e-8,0.0023204650305293554,3.20894591354611e-5,-4.1923747329153166e-8,0.002320900868517307,3.2339315150879754e-5,-4.220702939293869e-8,0.0023212476092142357,3.260440417190498e-5,-4.2509329097549e-8,0.0023215118356965506,3.284715719192341e-5,-4.278686762213579e-8,0.0023217113982006393,3.3036182323788574e-5,-4.300295310375987e-8,0.002321872364162279,3.314903836216729e-5,-4.313120169100703e-8,0.0023220262092654128,3.3173971066507745e-5,-4.315751282036905e-8,0.002322207158400309,3.311135649858902e-5,-4.3081732272613976e-8,0.0023224491028571363,3.297521373884765e-5,-4.291948491394481e-8,0.002322781228382118,3.279447518776715e-5,-4.270382165655561e-8,0.0023232216822924234,3.261266466520483e-5,-4.248505510679363e-8,0.002323769722566849,3.2483621858754785e-5,-4.2325943183644296e-8,0.002324398904211897,3.2460944922610885e-5,-4.228942774440365e-8,0.002325056179267136,3.258120401470381e-5,-4.241896142727533e-8,0.002325671964702718,3.2846122159074696e-5,-4.271751943685757e-8,0.00232618144268266,3.321386581244003e-5,-4.3137207029593565e-8,0.0023265488268709705,3.36082031220369e-5,-4.3589753742231386e-8,0.0023267814240886583,3.394420957442691e-5,-4.397636855767629e-8,0.0023269254239565483,3.415782391829717e-5,-4.422212158225807e-8,0.002327046906947544,3.422452814123435e-5,-4.429770088385412e-8,0.002327209206277997,3.4160981089080925e-5,-4.422143906155781e-8,0.002327456336525311,3.401357864203633e-5,-4.4046282714445835E-08,0.002327805923589105,3.384194337626255e-5,-4.384093488623098e-8,0.002328250166554385,3.37036441574621e-5,-4.3672328614357636e-8,0.002328761740259225,3.364315089403521e-5,-4.3592791245387643e-8,0.002329301915681379,3.36856352720997e-5,-4.3632602011700155e-8,0.002329829055291661,3.383516729126079e-5,-4.379753708045467e-8,0.0023303062390849644,3.407663050535043e-5,-4.407078165874924e-8,0.0023307070359199853,3.438049828740393e-5,-4.441833484198168e-8,0.0023310187619350036,3.470925636680583e-5,-4.4796515547741785e-8,0.0023312431048083324,3.502410718649536e-5,-4.515990686671555e-8,0.002331394528886721,3.5290797443504604e-5,-4.5468276438613356e-8,0.002331497260081565,3.5483844383961805e-5,-4.569154976787356e-8,0.002331581733856791,3.558904226640621e-5,-4.581270005257149e-8,0.0023316810811048884,3.560465423137779e-5,-4.582909582100883e-8,0.002331827771099224,3.5541816076164474e-5,-4.575300867708182e-8,0.0023320501595354027,3.542447396167401e-5,-4.561169901534009e-8,0.0023323683909373285,3.528871876135906e-5,-4.5446880835164095e-8,0.0023327891822946096,3.51805346933835e-5,-4.531231018055253e-8,0.002333299958278486,3.515015003696038e-5,-4.52672578511267e-8,0.0023338645432176663,3.5241270465413334e-5,-4.5363790266725256e-8,0.002334424562220092,3.5475412457926315e-5,-4.562814505895616e-8,0.0023349112408662287,3.583613212030472e-5,-4.6041947983230845e-8,0.002335268146958933,3.626338247097496e-5,-4.6535418255023436e-8,0.0023354760591965088,3.666773954728629e-5,-4.700402689339779e-8,0.0023355644528050535,3.696270836812873e-5,-4.7346394509497067e-8,0.002335600051392683,3.7098371862978543e-5,-4.75036656435806e-8,0.002335658860810056,3.707695140177438e-5,-4.747763880896117e-8,0.0023357987401432536,3.694435600604198e-5,-4.732093922172631e-8,0.002336045463982361,3.6767616798790464e-5,-4.711093689128459e-8,0.002336393449628172,3.661235323283033e-5,-4.6923808409687194e-8,0.00233681482692482,3.6528212315890726e-5,-4.68177625437056e-8,0.002337270388702322,3.6542959451067806e-5,-4.682607312286444e-8,0.0023377189367930666,3.66625719363429e-5,-4.6956871248297825e-8,0.002338124071548144,3.687450363014641e-5,-4.7196561629315964e-8,0.002338458716826444,3.71523445299233e-5,-4.75149713046986e-8,0.0023387078440758034,3.7461115310449495e-5,-4.787144263559505e-8,0.002338869585723431,3.7762817841687184e-5,-4.822140859107426e-8,0.0023389547817296704,3.802184043837775e-5,-4.852287616148231e-8,0.0023389850485431105,3.820974950563554e-5,-4.87421532200505e-8,0.002338989627065774,3.830895059743735e-5,-4.885815585004515e-8,0.0023390014899789605,3.8314840733578865e-5,-4.8864887051675046e-8,0.002339053227796983,3.823643256374001e-5,-4.8772155817743224e-8,0.0023391730470084114,3.809565596331883e-5,-4.860485990028719e-8,0.002339381007965399,3.7925524692509784e-5,-4.840106376674009e-8,0.0023396854228536312,3.776719520424567e-5,-4.82088209371393e-8,0.0023400793116841023,3.76654727255943e-5,-4.808107898018889e-8,0.002340537481346002,3.766178500501879e-5,-4.8067398459253976e-8,0.0023410160318337752,3.778395059438169e-5,-4.820166978989883e-8,0.0023414571514578423,3.8033753723512084e-5,-4.8487112668261064e-8,0.002341802014567862,3.837655741982126e-5,-4.888372230559299e-8,0.0023420114228051465,3.874102641968516e-5,-4.930783648964436e-8,0.0023420863661792065,3.9036695298684036e-5,-4.965293287954776e-8,0.0023420745217566197,3.918717458210972e-5,-4.982885057806455e-8,0.0023420538209714603,3.91622722916344e-5,-4.9799546790811774e-8,0.0023421004046062298,3.8988852688015025e-5,-4.959573407663678e-8,0.0023422602630217295,3.8734768578304047e-5,-4.9296049457022376e-8,0.0023425391360975905,3.847893082192605e-5,-4.899224673303789e-8,0.0023429102765989336,3.828568044273994e-5,-4.8759531463412606e-8,0.0023433299940436355,3.819251167163617e-5,-4.8642341136861975e-8,0.0023437518655280796,3.8209551159922836e-5,-4.865357708177263e-8,0.0023441359775748295,3.8325147109487965e-5,-4.87807783260245e-8,0.002344453495623456,3.8512988018584136e-5,-4.8994075741131246e-8,0.002344688236531956,3.873852777500904e-5,-4.9253489797137967e-8,0.0023448367420634006,3.896429832747165e-5,-4.951513690495988e-8,0.002344907563344286,3.915445172418351e-5,-4.973668851539436e-8,0.002344919846223446,3.927885131661452e-5,-4.9882338277690744e-8,0.0023449010717055798,3.9316757036171124e-5,-4.992722780668246e-8,0.0023448838074805536,3.925979958184939e-5,-4.986094461349622e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json new file mode 100644 index 00000000..f46c700e --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":18000,"numberOfSamples":1000,"samples":[0.002344901558802442,3.911368303105064e-5,-4.968948981883951e-8,0.002344984132234963,3.8898163040661456e-5,-4.9435280092255396e-8,0.002345153076453194,3.8645137911801235e-5,-4.913505665071581e-8,0.0023454177649364274,3.8394882701718704e-5,-4.883571430956027e-8,0.0023457726182683734,3.8190636084535106e-5,-4.858818570335279e-8,0.0023461958479369647,3.8071833815956895e-5,-4.8439580759263195E-08,0.0023466502566154754,3.806617270836784e-5,-4.8423700396250246e-8,0.0023470871667342188,3.818099295284342e-5,-4.855052067391149e-8,0.0023474547964515697,3.8395736841710905e-5,-4.8796864492445077e-8,0.002347711548848421,3.865908630266998e-5,-4.9102715263344044e-8,0.0023478420825502667,3.889571950044163e-5,-4.937914952780937e-8,0.00234786961391877,3.902607152063935e-5,-4.9531851099022974e-8,0.0023478548636246925,3.899526350333567e-5,-4.949545923878963e-8,0.002347876570857601,3.8797420616696476e-5,-4.926230021920203e-8,0.0023480009856264934,3.8479554435582394e-5,-4.888691218568922e-8,0.002348257394842648,3.81212678497871e-5,-4.8462214576854004e-8,0.0023486326479069406,3.7803093228172886e-5,-4.8082513592352674e-8,0.0023490835964367573,3.75814623825538e-5,-4.781433129307214e-8,0.002349556312825578,3.747939916176964e-5,-4.768549705089819e-8,0.002350001794120482,3.7490379203984336e-5,-4.768944037993623e-8,0.002350384381521822,3.758800212452211e-5,-4.779618621991062e-8,0.0023506841057128985,3.773572437125139e-5,-4.796348785816809e-8,0.0023508956980960788,3.7894232799687954e-5,-4.814536983155262e-8,0.00235102648099269,3.802641740658273e-5,-4.829803528414698e-8,0.002351094173287532,3.810084978765315e-5,-4.838411531070628e-8,0.0023511246964647747,3.8094608924835005e-5,-4.837614007717066e-8,0.0023511496348331447,3.799585924542727e-5,-4.825963731338258e-8,0.0023512029179003826,3.780605403700456e-5,-4.803571540037979e-8,0.002351316493203054,3.754110540847055e-5,-4.772242618165293e-8,0.002351515254331023,3.723065606146325e-5,-4.7353971759481864e-8,0.0023518120205759476,3.6914840723378074e-5,-4.697706960436158e-8,0.0023522036900594134,3.663842066327486e-5,-4.664428486396447e-8,0.0023526697415857454,3.6442835626573675e-5,-4.6404850464569947E-08,0.0023531739492806607,3.635743472275251e-5,-4.629433098034591e-8,0.0023536695969230293,3.639153741844735e-5,-4.632502065598751e-8,0.002354107963028887,3.65290387843179e-5,-4.64791633358682e-8,0.0023544493334192655,3.672744771866113e-5,-4.670739713326941e-8,0.0023546748244885193,3.692340046714689e-5,-4.693502893752279e-8,0.0023547957604870243,3.704596407123413e-5,-4.707779081016492e-8,0.002354855915443392,3.703656572046711e-5,-4.70656375977696e-8,0.0023549223160394474,3.68699978500431e-5,-4.6867843166706427e-8,0.002355064610704272,3.656683381659626e-5,-4.65078344897485e-8,0.002355330456332751,3.6188645949168455e-5,-4.605762360942627e-8,0.0023557290800031,3.581614088997792e-5,-4.561209830788785e-8,0.0023562313149006323,3.552104851024793e-5,-4.525598622392911e-8,0.002356784170343763,3.534573263514571e-5,-4.503985226093692e-8,0.00235733028458666,3.529761527789713e-5,-4.49733843052568e-8,0.002357823000083982,3.535587514723036e-5,-4.503300722505471e-8,0.0023582334607192713,3.548324139112816e-5,-4.517550230472812e-8,0.0023585511399880337,3.5636946080439145e-5,-4.535076312918837e-8,0.002358780962041987,3.577633956909642e-5,-4.551078335076926e-8,0.0023589395842511522,3.5867314155800855e-5,-4.561499749370089e-8,0.002359052080351249,3.588475773629073e-5,-4.563332272362631e-8,0.002359149147828655,3.58142084645814e-5,-4.554820350082022e-8,0.0023592643626533377,3.565335730415486e-5,-4.5356402142557453E-08,0.002359430841246486,3.541339537933329e-5,-4.507057121932486e-8,0.0023596768567981123,3.511952535451973e-5,-4.471987460114685e-8,0.0023600205188522927,3.480948168500788e-5,-4.4348345490610194e-8,0.0023604644698905536,3.452896471445555e-5,-4.400967986329848e-8,0.002360992350010294,3.432364769813786e-5,-4.375798612579386e-8,0.002361569042366369,3.422878850205881e-5,-4.363559641492016e-8,0.0023621460051594665,3.4259012492440044e-5,-4.3660883375380844e-8,0.0023626713616961515,3.440164922381125e-5,-4.3820080092443e-8,0.002363102567048767,3.4616447316981465e-5,-4.4066547053651594e-8,0.002363418276529288,3.484277697645849e-5,-4.432896661511161e-8,0.002363625904080295,3.501331834422755e-5,-4.452741922922826e-8,0.002363762140673494,3.50713100177352e-5,-4.459391491625094e-8,0.0023638851680286292,3.498694287747205e-5,-4.449207573009896e-8,0.0023640594734086117,3.4767688893707976e-5,-4.422967279774819e-8,0.002364337052724743,3.44579776897352e-5,-4.385849503168624e-8,0.0023647414089119547,3.412668761857231e-5,-4.345970698104098e-8,0.002365260922020612,3.3846152104623893e-5,-4.3119075143364176e-8,0.0023658544426327192,3.367093165302294e-5,-4.290180278936738e-8,0.0023664660490979486,3.362478090509265e-5,-4.2836928949552116e-8,0.002367041894211088,3.3699477499923e-5,-4.29156715149733e-8,0.0023675425813141815,3.3863070665591675e-5,-4.3100929149056666e-8,0.002367948361133545,3.407186155979982e-5,-4.334131276515742e-8,0.0023682583104001854,3.4281125480317074e-5,-4.358383945165417e-8,0.002368486347050624,3.4452289918945094e-5,-4.378254145392837e-8,0.002368656569458454,3.455667745010834e-5,-4.3903037676489125e-8,0.002368799213631667,3.457704329979657e-5,-4.39244496666408e-8,0.0023689474323752143,3.450818698611703e-5,-4.384015205758009e-8,0.0023691344170632556,3.4357416482385305e-5,-4.3658308045106786e-8,0.002369390127550806,3.4144946605107745e-5,-4.340234799568976e-8,0.002369737050180081,3.390358038895181e-5,-4.311066755298774e-8,0.0023701849761484078,3.367640314542406e-5,-4.283404275674573e-8,0.002370725808074802,3.351105695568608e-5,-4.262900855450118e-8,0.0023713306372070224,3.344998149691437e-5,-4.254638292238252e-8,0.0023719519724518553,3.351806525291478e-5,-4.261657041710548e-8,0.0023725329401571575,3.371175366291013e-5,-4.283642668257849e-8,0.0023730222295828053,3.3995002702351264e-5,-4.316414308379054e-8,0.002373389973065274,3.430578520129685e-5,-4.3526671192005085e-8,0.0023736381505010734,3.4572328983584834e-5,-4.38388242013889e-8,0.0023738010098588143,3.473355012811767e-5,-4.402752760022938e-8,0.00237393531167498,3.4756315512409036e-5,-4.40524591922618e-8,0.0023741041518875864,3.4643979531241987e-5,-4.391644020525929e-8,0.0023743597715574142,3.443428581685144e-5,-4.366325823519776e-8,0.002374730275263065,3.418808569592938e-5,-4.336456918047751e-8,0.0023752135991477064,3.397259983293269e-5,-4.3100208376556956e-8,0.002375779941817866,3.384415723124978e-5,-4.293768908589405e-8,0.0023763813960745914,3.383531261076801e-5,-4.2916694132470866e-8,0.0023769653178674142,3.394966546843266e-5,-4.304258701004152e-8,0.0023774870203995034,3.416488144273135e-5,-4.3289677344681276e-8,0.002377918235263097,3.444154087954113e-5,-4.3611544323386645e-8,0.0023782499725694506,3.473394751413563e-5,-4.3953871457543554e-8,0.002378490676997382,3.499948400810439e-5,-4.4265690042450136e-8,0.002378661785361829,3.520478219905836e-5,-4.45068771402646e-8,0.0023787927125148967,3.5328684667322306e-5,-4.465179236135274e-8,0.0023789164661922424,3.5362982250262976e-5,-4.4690190041228925e-8,0.002379066168330197,3.531210837114164e-5,-4.462683919511151e-8,0.0023792721073279486,3.519257964256899e-5,-4.448085699607398e-8,0.0023795586569317585,3.50323249823028e-5,-4.4284979324380445e-8,0.0023799404698155602,3.486935159153574e-5,-4.408411931944888e-8,0.00238041786411957,3.4748539855140206e-5,-4.39317205628605e-8,0.0023809723866902452,3.471506365948844e-5,-4.38820214882267e-8,0.0023815649852208134,3.48036933953732e-5,-4.397726798401748e-8,0.0023821401857936045,3.502563195655052e-5,-4.423182507960411e-8,0.0023826385643343764,3.535804096673262e-5,-4.461940477123716e-8,0.002383015549616911,3.574351081297848e-5,-4.507218244911266e-8,0.0023832590121007622,3.610394768843331e-5,-4.549722500288198e-8,0.0023833960729126107,3.6365403192313095e-5,-4.5806082879119395e-8,0.0023834844707587666,3.6482794911242564e-5,-4.594430660481812e-8,0.0023835926131679144,3.6453070353420245e-5,-4.5907232417809996e-8,0.0023837780068744117,3.6312527567923084e-5,-4.573698815443366e-8,0.002384072504190872,3.612228458903607e-5,-4.550549834835012e-8,0.002384477540262076,3.594951747525463e-5,-4.529245938741677e-8,0.0023849679834993427,3.5850894327466484e-5,-4.516576690664186e-8,0.0023855013057676516,3.586164050491832e-5,-4.5168379713013465e-8,0.0023860287687607305,3.599113018920311e-5,-4.5312724744731254e-8,0.002386506003294634,3.6224400739596276e-5,-4.558208417162952e-8,0.0023869010817420566,3.65281921996621e-5,-4.5937482125035984e-8,0.0023871989250919125,3.685955147899608e-5,-4.632784241705567e-8,0.002387401820865755,3.7174763898084735e-5,-4.6700739768763154e-8,0.002387526785819297,3.7436733765039484e-5,-4.701140163670798e-8,0.0023876010849905364,3.761979915266924e-5,-4.7228628272774645e-8,0.00238765727041805,3.771186667545958e-5,-4.733742080218521e-8,0.002387728725155376,3.7714449644070145e-5,-4.7339022820513065e-8,0.0023878460686218663,3.764152424039279e-5,-4.724953688088123e-8,0.002388034216505095,3.751792399775393e-5,-4.709805432518741e-8,0.0023883096269505005,3.7377464417580596e-5,-4.692455759226862e-8,0.002388677274146209,3.726041803036959e-5,-4.677709598428318e-8,0.0023891272588487315,3.720938268477899e-5,-4.6706986835451093e-8,0.0023896319399229,3.7262272101778856e-5,-4.6760418636059854e-8,0.0023901458647094826,3.7441849520893325e-5,-4.696572132812101e-8,0.002390611746871633,3.774354152197786e-5,-4.731844757029362e-8,0.0023909747687158945,3.81269601588696e-5,-4.777091840959034e-8,0.002391202906290385,3.8519192870702565e-5,-4.823603735908806e-8,0.0023913040660786186,3.883476948556154e-5,-4.8611270833999345e-8,0.002391328128732739,3.9006667440986484e-5,-4.881589018117696e-8,0.00239134943562406,3.90124026913742e-5,-4.882222941094568e-8,0.002391438487576229,3.8880411452464615e-5,-4.866331475848319e-8,0.0023916383708005662,3.867507853522781e-5,-4.841510309828039e-8,0.00239195590432241,3.847153998643774e-5,-4.816669872463936e-8,0.0023923668018147257,3.833341819751815e-5,-4.799408876442468e-8,0.002392828007801345,3.830015839190798e-5,-4.794511807386538e-8,0.0023932907590552147,3.8383856123547755e-5,-4.8035481865629606e-8,0.00239371096036409,3.857245714578611e-5,-4.82521178047072e-8,0.0023940559931876475,3.883616405890264e-5,-4.856042818085454e-8,0.0023943082930363074,3.9134985874419545e-5,-4.891304887908877e-8,0.0023944662220829185,3.9426309839536574e-5,-4.925889576057055e-8,0.0023945426540706474,3.967167832740828e-5,-4.955145041930234e-8,0.0023945617795173573,3.984206233309221e-5,-4.975530429415886e-8,0.002394554803373748,3.992121054124771e-5,-4.985033218746083e-8,0.00239455526447015,3.990695202747839e-5,-4.983330111917577e-8,0.002394594661569528,3.9810623353083994e-5,-4.971716322616409e-8,0.0023946988252229935,3.965513390937551e-5,-4.952874150407233e-8,0.0023948850777624304,3.9472259325648355e-5,-4.9305586614794425e-8,0.00239515997526318,3.9299439114975593e-5,-4.909233045733194e-8,0.0023955174021503037,3.9175945382072434e-5,-4.893628682300761e-8,0.002395937007932476,3.9137890421156826e-5,-4.8881533371822775e-8,0.002396383695909191,3.921131979781866e-5,-4.896047917113908e-8,0.0023968099593563576,3.9403258047878505e-5,-4.918277327372618e-8,0.002397163497613983,3.969252739918278e-5,-4.952387416863947e-8,0.0023974015854493413,4.002518309701328e-5,-4.99193026544001e-8,0.002397509675261247,4.0321678158350774e-5,-5.027326909845036e-8,0.0023975151824612907,4.049998955523513e-5,-5.048669925554299e-8,0.0023974844671535013,4.050819106081807e-5,-5.049657166197553e-8,0.002397499090668801,4.034853438152713e-5,-5.0304833087084466e-8,0.0023976229322382613,4.007667775600651e-5,-4.997738881179162e-8,0.002397879519985696,3.977656534145411e-5,-4.96140773901125E-08,0.0023982502957491016,3.9527801939768744e-5,-4.93098968993077e-8,0.002398689129527083,3.938302665345923e-5,-4.912820157919039e-8,0.002399141121851689,3.936112368628708e-5,-4.9092584839070415e-8,0.002399557122870482,3.945190021821551e-5,-4.919217196871091e-8,0.002399901681190261,3.9625470595205126e-5,-4.939240127952472e-8,0.0024001557140803276,3.9841782493496445e-5,-4.9646053324931454e-8,0.00240031603823306,4.0058414074826275e-5,-4.990243651972935e-8,0.0024003933848322214,4.02365269468108e-5,-5.0114610330648764e-8,0.0024004095942288745,4.034539638022784e-5,-5.0245052214989265e-8,0.0024003941453741816,4.0365693589607254e-5,-5.0269831914895396e-8,0.0024003801497172756,4.0291449589680024e-5,-5.018110199371788e-8,0.0024004000531943383,4.013054961443052e-5,-4.9987707246810776e-8,0.0024004814327914467,3.990360304898532e-5,-4.9713797552627094e-8,0.0024006433784475078,3.96412645683471e-5,-4.9395635374628664e-8,0.002400893829350257,3.938038444905259e-5,-4.907710595026679e-8,0.0024012280072063545,3.9159384872200925e-5,-4.88043653842751e-8,0.002401627983789423,3.901309599496099e-5,-4.861979177381442e-8,0.0024020634684160267,3.896712290496793e-5,-4.8555194568685595e-8,0.0024024942344411503,3.903172416614497e-5,-4.862420076639316e-8,0.0024028751869229125,3.919562945854613e-5,-4.881439962151439e-8,0.0024031652429550516,3.942160059336088e-5,-4.908159561584208e-8,0.0024033401183291706,3.964740296327271e-5,-4.9350792145343485e-8,0.002403406122558092,3.9796826052265784e-5,-4.952959530944614e-8,0.0024034075771528214,3.9802695108078196e-5,-4.953626629721684e-8,0.002403418663533099,3.963531471377749e-5,-4.933424264248788e-8,0.002403517483513351,3.9320414167136537e-5,-4.895377104664041e-8,0.00240375400559779,3.893213949475224e-5,-4.848339885001966e-8,0.0024041310350306584,3.856275056172833e-5,-4.803360539427687e-8,0.002404608522803643,3.8287467657906244e-5,-4.7694797328705657e-8,0.002405124618903588,3.814364277978108e-5,-4.7512463896821273e-8,0.002405618526611032,3.812961405164927e-5,-4.748570334517685e-8,0.0024060450436589023,3.821594093326314e-5,-4.7580367143404314e-8,0.002406379515424713,3.8359386346411104e-5,-4.774544974096198e-8,0.0024066165603803674,3.851416440298249e-5,-4.7926337409967924e-8,0.002406766193043988,3.863916072047892e-5,-4.8073452764022304e-8,0.0024068496190933135,3.870200493814187e-5,-4.814731567974312e-8,0.0024068954751543747,3.8681384728337856e-5,-4.812157280049673e-8,0.0024069363302526986,3.8568469741027326e-5,-4.7984907944708237e-8,0.002407005092363638,3.8367620010703626e-5,-4.774197343294295e-8,0.0024071311642991904,3.8096143001373596e-5,-4.741307791637707e-8,0.00240733648448139,3.7782662926820594e-5,-4.703219316231057e-8,0.0024076319591230843,3.746376601902139e-5,-4.664296180742872e-8,0.0024080150100535243,3.717901842199488e-5,-4.629284851707181e-8,0.0024084688627471237,3.6964873105139e-5,-4.6025986316963574e-8,0.002408963950387803,3.684822663195842e-5,-4.587550926484438e-8,0.002409461535231225,3.6840528070730786e-5,-4.585634918576009e-8,0.0024099194289861434,3.6933325176103526e-5,-4.595954827428758e-8,0.002410299639091284,3.709615129870326e-5,-4.6149286023116704e-8,0.0024105775736920194,3.727809719448076e-5,-4.636443290545415e-8,0.0024107515290991625,3.7414947503234764e-5,-4.652707276927955e-8,0.0024108494422053167,3.744332346904537e-5,-4.6559778833502254e-8,0.0024109280582808607,3.732068196771385e-5,-4.641012552830863e-8,0.0024110599588631028,3.704486401008396e-5,-4.6074593882075726e-8,0.0024113092457543352,3.666207745630117e-5,-4.560832165779338e-8,0.0024117058579894443,3.625440453889971e-5,-4.511002792620606e-8,0.00241223320394758,3.590984658345839e-5,-4.468591059086578e-8,0.0024128367433007784,3.569068786073452e-5,-4.4411566261216975e-8,0.002413447167854588,3.561679042361314e-5,-4.431182379727306e-8,0.002414003943390364,3.566857531655897e-5,-4.4364131508880796e-8,0.002414468917828636,3.5802128924618506e-5,-4.45164528407243e-8,0.0024148287689588913,3.596582802687616e-5,-4.4707042649597976e-8,0.0024150906323866994,3.6112294226174406e-5,-4.487876186163635e-8,0.0024152756199526553,3.620466985756144e-5,-4.4986732147043753e-8,0.002415412983422486,3.621886433437632e-5,-4.5001246595991545e-8,0.002415535705571361,3.614384708305006e-5,-4.490832914512481e-8,0.0024156771163272757,3.59813440871689e-5,-4.470949129805716e-8,0.0024158678193869285,3.5745351613970705e-5,-4.442116416614326e-8,0.002416132416351302,3.546120330008051e-5,-4.4073537242749924e-8,0.0024164859220694446,3.516352548830468e-5,-4.370808294460031e-8,0.00241693034169506,3.4892359785693274e-5,-4.337295078484064e-8,0.0024174524408001833,3.468719086143528e-5,-4.3115900098566585e-8,0.002418023930833043,3.457944258321774e-5,-4.2975364635792224e-8,0.002418604957254082,3.4584872568489474e-5,-4.297126534219297e-8,0.002419150952416655,3.469789771516463e-5,-4.30979643194712e-8,0.0024196218300455495,3.48898251884466e-5,-4.3321783064122653e-8,0.0024199916518604678,3.51121471359681e-5,-4.3584618304832864e-8,0.002420256595170644,3.5304987746849386e-5,-4.381393076419317e-8,0.002420439070447764,3.54098460734516e-5,-4.393818240200917e-8,0.002420585972638163,3.5384692412318615e-5,-4.39053621156832e-8,0.0024207596255476035,3.521796937688811e-5,-4.3700303187940916e-8,0.00242102169533141,3.493649672842064e-5,-4.335458114598203e-8,0.0024214136673983418,3.460203389622349e-5,-4.294254391313394e-8,0.0024219412696859064,3.4294397281599166e-5,-4.2560928350924536e-8,0.002422570997871016,3.40859042454751e-5,-4.2297873198728576e-8,0.002423241774708797,3.401825188013031e-5,-4.220478688725671e-8,0.002423886226246646,3.4092534703597756e-5,-4.2284029344064495e-8,0.002424450990286084,3.4275193790697986e-5,-4.2495842308161056e-8,0.002424907897269756,3.4513860089160096e-5,-4.277731373829174e-8,0.002425254646420478,3.475404717614502e-5,-4.306250514379759e-8,0.0024255087764721997,3.495073098604035e-5,-4.329653600382793e-8,0.0024256997145779124,3.5073628211510956e-5,-4.344214009667556e-8,0.0024258619447215263,3.510795400575972e-5,-4.3480765687463235e-8,0.002426030203565686,3.505305808974759e-5,-4.341105272837135e-8,0.0024262362674914877,3.4920608081784176e-5,-4.3246676601309794e-8,0.0024265064422872465,3.473295174654087e-5,-4.3014350394663596e-8,0.0024268589868617334,3.4521461493677566e-5,-4.275180769052857e-8,0.002427301138503399,3.432410975088323e-5,-4.250490759677728e-8,0.0024278260913050916,3.418129571204661e-5,-4.2322676945393295e-8,0.002428411097108386,3.4129280643721544e-5,-4.2249456747169526e-8,0.002429018449007624,3.4191654643649516e-5,-4.231457750259257e-8,0.002429600921945329,3.4370848029145066e-5,-4.2521942446609057e-8,0.002430111852543173,3.464306742421111e-5,-4.284362752322127e-8,0.0024305177078212167,3.4960014332554184e-5,-4.322166147588011e-8,0.0024308089963019476,3.525864256604065e-5,-4.3579634420191055e-8,0.0024310052103568625,3.54768490791095e-5,-4.3841674275576033e-8,0.0024311514832499894,3.5570331945046896e-5,-4.3953026184890535e-8,0.0024313076209347257,3.552531869349453e-5,-4.389576556823521e-8,0.0024315325810961527,3.5363327353876604e-5,-4.369491031447773e-8,0.0024318686265469066,3.513647254223246e-5,-4.341303915546696e-8,0.0024323294873825944,3.491423748049786e-5,-4.3134445579347336e-8,0.002432896167264619,3.476495141289254e-5,-4.294268271529085e-8,0.0024335222309093078,3.4737272570903575e-5,-4.2897907650809233e-8,0.0024341473034816276,3.484777220801906e-5,-4.3021473228785095e-8,0.0024347141143896403,3.5078911481254485e-5,-4.3293103813853885e-8,0.0024351828565165653,3.5387420696509406e-5,-4.3660807647483854e-8,0.0024355382696882246,3.571869639847352e-5,-4.4058284519528546e-8,0.0024357886769330174,3.602113490945862e-5,-4.442243365076725e-8,0.0024359595899447976,3.6255981177570735e-5,-4.470551282002724e-8,0.002436085616257832,3.64014787157889e-5,-4.4880378715262854e-8,0.002436203431207954,3.645261201880796e-5,-4.49403083766768e-8,0.002436346881699283,3.641860110716656e-5,-4.489600455109322e-8,0.0024365439720128446,3.631989439005647e-5,-4.477193408814986e-8,0.002436814886263786,3.618547757967348e-5,-4.460305079373914e-8,0.0024371701965660787,3.605043991849035e-5,-4.443187709405474e-8,0.0024376087810835056,3.5953118153448417e-5,-4.430512313890507e-8,0.002438115638816738,3.593080766479197e-5,-4.42685612060324e-8,0.0024386606910261066,3.601319060175138e-5,-4.43590417894124e-8,0.0024392005329820178,3.621366124796751e-5,-4.459380937231256e-8,0.0024396852406738875,3.652073535771226e-5,-4.495979153559817e-8,0.002440070792536112,3.689393707336404e-5,-4.540830813754903e-8,0.0024403341938348043,3.7269028978704966e-5,-4.586125501539923e-8,0.0024404847869948067,3.757420212930339e-5,-4.6230801286461525e-8,0.0024405649339235085,3.775253295873212e-5,-4.6446847061845124e-8,0.0024406379971211724,3.778108573313487e-5,-4.6480442904616754e-8,0.0024407684360130493,3.7678040163525975e-5,-4.635265130274541e-8,0.002441002576816896,3.749564568269083e-5,-4.6126207922268527e-8,0.0024413569455008703,3.730344562480743e-5,-4.58853778897302e-8,0.0024418164775716804,3.716885726843634e-5,-4.571251766869334e-8,0.002442341086211704,3.7141004685513786e-5,-4.566838003723965e-8,0.002442877339190302,3.72411338432493e-5,-4.5780171769525656e-8,0.002443371731515466,3.746064251142103e-5,-4.603872319654958e-8,0.002443782406429579,3.7766052234272806e-5,-4.640413953378797e-8,0.002444086872764397,3.810893879139721e-5,-4.681768347059421e-8,0.002444284388309687,3.843785498667255e-5,-4.721633349478445e-8,0.002444393232414692,3.8709012326829734e-5,-4.7546011694557105e-8,0.002444444549161754,3.889334328329184e-5,-4.7770454539860257e-8,0.002444475074792687,3.8979187827749855e-5,-4.787468720267451e-8,0.0024445206944451194,3.8971331473534686e-5,-4.7863936944109584e-8,0.0024446118314487707,3.8887888173957045e-5,-4.775982946018779e-8,0.0024447706911564257,3.8756507830295623e-5,-4.7595742185117445e-8,0.002445009754862674,3.861079858955392e-5,-4.741246632391835e-8,0.002445330792627307,3.848709249206566e-5,-4.7254353116952106e-8,0.0024457239072774276,3.84210898084392e-5,-4.7165331531864033e-8,0.002446166646694304,3.844355610942536e-5,-4.71836986496915e-8,0.002446624062616858,3.857428817952799e-5,-4.733464480752854e-8,0.0024470514934107203,3.88144481598043e-5,-4.762062321108293e-8,0.002447402125327943,3.913928762815128e-5,-4.801212199106996e-8,0.0024476400881559847,3.9495739935443694e-5,-4.8444475535150416e-8,0.0024477561339314394,3.981049166716775e-5,-4.8827712071902615e-8,0.002447778077693695,4.001077266348328e-5,-4.9072160123498955e-8,0.0024477670483197492,4.005148747549024e-5,-4.9121840338880554e-8,0.0024477974812433497,3.993465087268592e-5,-4.897832831402965e-8,0.002447929926440992,3.9709268450711776e-5,-4.870064967828901e-8,0.0024481909223161946,3.9451954414470326e-5,-4.838174394154787e-8,0.0024485684783898502,3.923993501418732e-5,-4.811575988446022e-8,0.0024490213965491316,3.9129377699806304e-5,-4.797180052202577e-8,0.0024494948154261892,3.91451644029732e-5,-4.798138431887394e-8,0.002449935069477873,3.928119976470324e-5,-4.8138482471436045e-8,0.002450300397506881,3.9507323269912974e-5,-4.840749035993413e-8,0.0024505668157711494,3.9779044908857327e-5,-4.8734735279841313E-08,0.0024507297637555462,4.004759573096723e-5,-4.906061161920809e-8,0.002450802394303154,4.02688488745371e-5,-4.9330599704006644e-8,0.0024508113644507706,4.0410128173367605e-5,-4.95038655686505e-8,0.002450791125069385,4.0454212555310635e-5,-4.955844487476108e-8,0.0024507778465312773,4.040035570468197e-5,-4.949267054201453e-8,0.0024508040198822152,4.026270069107783e-5,-4.932327950223557e-8,0.0024508944505534447,4.006688255862525e-5,-4.908122347286046e-8,0.0024510638634689867,3.984580917053899e-5,-4.880648823794057e-8,0.00245131584498336,3.963541528939374e-5,-4.854295462312273e-8,0.002451642653661857,3.9470681141633724e-5,-4.833364518839405e-8,0.002452025536044154,3.938176083843848e-5,-4.8216083300638214e-8,0.002452435488543121,3.938977033584164e-5,-4.8217107227132724e-8,0.002452835048062748,3.950174696583605e-5,-4.8346481745672895e-8,0.0024531824507044967,3.970500384005907e-5,-4.858962496972789e-8,0.0024534396241559695,3.9962702831889606e-5,-4.890182990265696e-8,0.0024535843268946146,4.021443150526203e-5,-4.920880941676828e-8,0.002453623652929858,4.0386636134526066e-5,-4.9419622792017125e-8,0.002453601452891794,4.041499005959166e-5,-4.945444695873122e-8,0.0024535904575645672,4.0272043808040254e-5,-4.9278768855135644e-8,0.002453667088416081,3.9984366591700615e-5,-4.892445528448971e-8,0.0024538804961186404,3.9625472135700606e-5,-4.8481018851177726e-8,0.002454234041076148,3.9286627001372286e-5,-4.8059919577965076e-8,0.002454688758937021,3.90430339964667e-5,-4.7753378723272426e-8,0.002455182859858328,3.893307901809375e-5,-4.760913419343073e-8,0.0024556538362148746,3.895585698194267e-5,-4.762729962876685e-8,0.0024560537286482022,3.908100050787737e-5,-4.777201985779246e-8,0.00245635559786168,3.92623565237223e-5,-4.7987768345426784e-8,0.002456553543520675,3.945013089553443e-5,-4.821391608652092e-8,0.002456659304914327,3.9599666210168044e-5,-4.839543997652059e-8,0.002456697551274787,3.9677063676223765e-5,-4.849000855734107e-8,0.002456700822614684,3.966238759049165e-5,-4.847222180997126e-8,0.0024567044573505052,3.9550907364328136e-5,-4.833540821334541e-8,0.0024567417680072287,3.935256550822404e-5,-4.8091109193474636e-8,0.0024568398052084747,3.9089819952275556e-5,-4.776643242859904e-8,0.002457016102034005,3.879409971555748e-5,-4.739964644423014e-8,0.0024572767266246858,3.850135084065896e-5,-4.7034702557923994e-8,0.002457615714144817,3.8247292949526414e-5,-4.671548886753261e-8,0.002458015719767934,3.806281830374309e-5,-4.648030512056859e-8,0.0024584497093368225,3.7969709899505705e-5,-4.6356668032574766e-8,0.0024588835950892117,3.797672416493626e-5,-4.6356402548602995e-8,0.002459280019112911,3.8076035091713856e-5,-4.647098884390965e-8,0.0024596039507214372,3.8240450757803655e-5,-4.666776031810568e-8,0.0024598307142160007,3.842294852242427e-5,-4.68890281670926e-8,0.002459955918353923,3.8561282527527495e-5,-4.7057687283657186e-8,0.0024600044256263562,3.85906258738798e-5,-4.7093002809037085e-8,0.0024600323640595525,3.846469351560399e-5,-4.693699010582562e-8,0.002460115198327215,3.817888591278212e-5,-4.658318142014719e-8,0.0024603211513315733,3.778139333481038e-5,-4.609033001301854e-8,0.0024606816896058582,3.7360118141523624e-5,-4.5566248750844804e-8,0.0024611773581020993,3.700873869629158e-5,-4.5126111329188663e-8,0.0024617480565587665,3.679136890764092e-5,-4.484915535672109e-8,0.0024623194040428297,3.6725241793431914e-5,-4.4757458521259293e-8,0.002462828313114861,3.6785610286324895e-5,-4.4821776764596e-8,0.0024632368323780508,3.692313753770688e-5,-4.49825480110503e-8,0.002463533911415987,3.7081973038857536e-5,-4.517174974987359e-8,0.002463730207416001,3.72123954530806e-5,-4.5328262829285335e-8,0.0024638508339381053,3.727738907944816e-5,-4.540602228952397e-8,0.0024639287406243806,3.725496815222289e-5,-4.537712390347134e-8,0.002463999440178538,3.7138246844026674e-5,-4.523220853693909e-8,0.002464096769834068,3.693441043162565e-5,-4.4979410248424785e-8,0.002464249278477507,3.6662920271676045e-5,-4.464221452771284e-8,0.0024644771058909905,3.6352892349154964e-5,-4.4256185173269244e-8,0.0024647894963774355,3.60394813223482e-5,-4.3864446992286476e-8,0.00246518333004217,3.575928664507124e-5,-4.3512032388348086e-8,0.00246564308966862,3.5545192829730305e-5,-4.323961698689231e-8,0.002466142462746481,3.54212599682058e-5,-4.30773347216381e-8,0.0024666475561435836,3.539825611996659e-5,-4.303928925890125e-8,0.002467121549800276,3.5470424064565755e-5,-4.311941218583528e-8,0.002467530510301026,3.5614038369783264e-5,-4.328936880925462e-8,0.0024678501018424014,3.578830836147025e-5,-4.3499317664747304e-8,0.00246807277205011,3.5939557401127685e-5,-4.368284640476247e-8,0.0024682141340358534,3.6009986170699735e-5,-4.3767824546787344e-8,0.002468315806348312,3.595167953042106e-5,-4.369398422338407e-8,0.002468440719277613,3.574403825458124e-5,-4.343483114258189e-8,0.0024686576285004418,3.5408406295791984e-5,-4.301598790135291e-8,0.002469016756628685,3.5009868675168896e-5,-4.251749277816247e-8,0.002469527016305481,3.4639085816369505e-5,-4.2051331770138575e-8,0.0024701491272457075,3.437918303108398e-5,-4.172053655964463e-8,0.0024708107727132163,3.4275108324639473e-5,-4.1581346163947136e-8,0.0024714349391305145,3.432221330845508e-5,-4.162900742123513e-8,0.0024719649634269477,3.447673339527891e-5,-4.181047415170179e-8,0.0024723756773897968,3.4677347990773343e-5,-4.2050733510056084e-8,0.0024726711706196352,3.486498141779451e-5,-4.227704642717137e-8,0.002472875776800631,3.499457801076819e-5,-4.243345755026598e-8,0.002473024311147267,3.5039164456257024e-5,-4.248596282344877e-8,0.002473154485424879,3.49892258455584e-5,-4.24219893311207e-8,0.0024733018836487117,3.485023256564978e-5,-4.224757508831041e-8,0.0024734966693373177,3.4639859686924084e-5,-4.198405931463602e-8,0.002473761122223743,3.4385249288497285e-5,-4.166470061647262e-8,0.0024741075410927692,3.412005527399114e-5,-4.1330957835760266e-8,0.0024745365035125336,3.388081280598191e-5,-4.1027956557272016e-8,0.0024750358991933777,3.3702298329276224e-5,-4.0798783384882296e-8,0.002475581446443766,3.361205682415149e-5,-4.0677810154140694e-8,0.0024761393094790735,3.362488283309667e-5,-4.068393655070341e-8,0.00247667099923248,3.3738415010136826e-5,-4.081509111115514e-8,0.0024771401592741794,3.393112591255991e-5,-4.104553604679316e-8,0.0024775202300596727,3.4163782098038836e-5,-4.132736396042357e-8,0.0024778015552186553,3.4384841805604154e-5,-4.15968981141725e-8,0.002477996355230064,3.453957481857277e-5,-4.178587242689799e-8,0.002478139925461257,3.4582095835946386e-5,-4.183646089222978e-8,0.0024782863608294597,3.448855008036613e-5,-4.171792894077942e-8,0.002478497599215119,3.426810101996982e-5,-4.1440616533293496e-8,0.002478826423475806,3.3966768621773196e-5,-4.106097101147728e-8,0.002479297655651806,3.365920201414745e-5,-4.067146491268234e-8,0.0024798956470742607,3.3427359889743966e-5,-4.0374142208359564e-8,0.002480566263107198,3.333281657692773e-5,-4.0246164098665086e-8,0.0024812348815230548,3.339569240715765e-5,-4.031349099874403e-8,0.002481832069138389,3.359098154088289e-5,-4.054608293176884e-8,0.0024823140828337882,3.3862509899205475e-5,-4.087496962472572e-8,0.0024826701499891905,3.4144843169478624e-5,-4.121926049669797e-8,0.0024829174589391183,3.438196398751778e-5,-4.150927531351717e-8,0.002483090231395934,3.453716218275256e-5,-4.169890994247633e-8,0.0024832289273681676,3.459479555529096e-5,-4.1768010969739914e-8,0.0024833725099405357,3.455739202683464e-5,-4.171898971311369e-8,0.002483553953461178,3.444130953944551e-5,-4.1571586234288615e-8,0.002483797896582137,3.42726872143246e-5,-4.135789466565913e-8,0.002484119250717028,3.408404982664835e-5,-4.111811949072816e-8,0.0024845220544084173,3.3911157045767064e-5,-4.08966177191401e-8,0.0024849984608592214,3.378942234513219e-5,-4.073744810316272e-8,0.002485528319030998,3.37493393541924e-5,-4.0678740705520224e-8,0.0024860802611576817,3.381090099062003e-5,-4.07458217081001e-8,0.002486615292822404,3.3977887022200906e-5,-4.094410565553709e-8,0.0024870933615432594,3.4233776242617746e-5,-4.1253884823212716e-8,0.0024874822433588704,3.454145160287273e-5,-4.162972775740252e-8,0.0024877666980437367,3.4848325612800404e-5,-4.200659476353093e-8,0.002487954948091704,3.5096872718110185e-5,-4.2312767159825944e-8,0.0024880797904155523,3.523845842873798e-5,-4.248704298833028e-8,0.002488193043039279,3.5246843277377304e-5,-4.249570636640487e-8,0.0024883539592743067,3.512738494103619e-5,-4.234426909230887e-8,0.0024886140602875923,3.49187025600563e-5,-4.207987071532803e-8,0.002489002194927896,3.468515900952789e-5,-4.178219564842183e-8,0.0024895143834379584,3.450085337149065e-5,-4.1543686661381805e-8,0.002490112692358687,3.4428839747837344e-5,-4.144362746866002e-8,0.002490735095733774,3.4502254176917696e-5,-4.152441444489307e-8,0.002491313820334456,3.47148501990305e-5,-4.177943206499539e-8,0.0024917952057646542,3.5025110867509906e-5,-4.21578484386859e-8,0.002492153108185882,3.537166319265242e-5,-4.2583614770799746e-8,0.0024923915653697563,3.569250545655623e-5,-4.297938359576452e-8,0.0024925381077774505,3.594019773552308e-5,-4.328553882965522e-8,0.0024926327298874706,3.608907519420701e-5,-4.346936640882342e-8,0.0024927174854313663,3.6135139860801745e-5,-4.352511605516019e-8,0.0024928293045150462,3.6091731116077385e-5,-4.3468759712982866e-8,0.0024929962078651933,3.598404077227055e-5,-4.3331234070503576e-8,0.002493235828937878,3.584424198247867e-5,-4.315237723752643e-8,0.002493554988497319,3.5707654226319e-5,-4.297612739315671e-8,0.002493949475402431,3.560950550536974e-5,-4.284648196073154e-8,0.002494403814902926,3.558150409860973e-5,-4.2803251027824265e-8,0.0024948914829334063,3.5647523756435825e-5,-4.287670742727347e-8,0.0024953765911673344,3.581825773142045e-5,-4.308089582356996e-8,0.0024958182908375675,3.608573040867354e-5,-4.340666705533066e-8,0.0024961786512342457,3.641986140806195e-5,-4.381718846972339e-8,0.0024964332001036105,3.677013333856981e-5,-4.424981283072611e-8,0.002496580985875428,3.707466125980302e-5,-4.4627260595163124e-8,0.00249664942189288,3.7275972463325826e-5,-4.487730097257107e-8,0.002496690103679088,3.733875515066651e-5,-4.4954995613220536e-8,0.0024967655193018647,3.726250067358835e-5,-4.485864320894178e-8,0.002496931013734003,3.7083456871196986e-5,-4.46324458229267e-8,0.0024972186148263043,3.686490845186074e-5,-4.435466169172905e-8,0.002497628180291189,3.6679510733870065e-5,-4.411582351619956e-8,0.002498128079111284,3.658972340409257e-5,-4.3994441199673844e-8,0.0024986644042137227,3.663208106121771e-5,-4.4037246854020054e-8,0.0024991755753180833,3.680926861936187e-5,-4.4248953740883185e-8,0.002499608064555356,3.709163133072151e-5,-4.459370765840227e-8,0.0024999288144117358,3.742710477725366e-5,-4.500715060851872e-8,0.0025001310412585205,3.775603780312682e-5,-4.5414811573711545e-8,0.0025002324917523817,3.8025992028683344e-5,-4.57506862741052e-8,0.002500267909808244,3.82021913744237e-5,-4.5970516699009e-8,0.0025002791334092648,3.827161818741498e-5,-4.6057156152074936e-8,0.002500306150636883,3.824142696912959e-5,-4.601877616789812e-8,0.002500381023813219,3.813396254515294e-5,-4.588273798227383e-8,0.002500524917925695,3.7980819109320463e-5,-4.5688184530668866e-8,0.002500747387946369,3.781755623906785e-5,-4.547941847511398e-8,0.0025010467943652028,3.7679593748579237e-5,-4.530076608806616e-8,0.002501411000812327,3.759894473403009e-5,-4.5192519652786e-8,0.002501818061535664,3.76010451065458e-5,-4.518700349120371e-8,0.002502237249305373,3.7700983349453346e-5,-4.530383549196263e-8,0.002502631391630373,3.789891117462528e-5,-4.5544060670952407e-8,0.0025029618245448393,3.817544639615828e-5,-4.588418136956523e-8,0.0025031968555852867,3.8489391629367015e-5,-4.6273070203581374e-8,0.002503322900130418,3.878132383082006e-5,-4.6636329847159344e-8,0.0025033544659702643,3.898595666221756e-5,-4.689179674409995e-8,0.0025033366866835474,3.9052160624291637e-5,-4.6974744631872444e-8,0.002503335424761968,3.8963286204251026e-5,-4.686346369928086e-8,0.002503416415545243,3.874697513072474e-5,-4.659163332249408e-8,0.002503622458507168,3.846773122092755e-5,-4.623914977805023e-8,0.0025039595976610314,3.820530008492874e-5,-4.590530882256746e-8,0.002504397631776516,3.802946606966512e-5,-4.5677537488936655e-8,0.002504882299547712,3.798169372682445e-5,-4.560852435839345e-8,0.002505352221421315,3.806826004220745e-5,-4.570743517294879e-8,0.00250575432324309,3.8263797822131395e-5,-4.59439244261933e-8,0.0025060542893460607,3.852145546614233e-5,-4.6260390338084265e-8,0.002506241100184328,3.878568465963214e-5,-4.658768272125083e-8,0.0025063261680084966,3.900454144029845e-5,-4.686046599932783e-8,0.0025063382859264074,3.913932359754488e-5,-4.702948014495108e-8,0.0025063160483484925,3.917014569025023e-5,-4.706882713849625e-8,0.002506299694580531,3.9097007570934184e-5,-4.697758835500036e-8,0.0025063241642786917,3.893705066219002e-5,-4.677655197485161e-8,0.002506414458106024,3.8719469291395064e-5,-4.650187612960767e-8,0.002506583529031959,3.847966713294664e-5,-4.6197729527279165e-8,0.0025068322231723375,3.825390939784268e-5,-4.5909552105830005e-8,0.00250715042643049,3.8075081039815325e-5,-4.5678747389959236e-8,0.002507518671035578,3.79694315028609e-5,-4.553864588391083e-8,0.002507909881434134,3.7953757863868274e-5,-4.551099211154035e-8,0.0025082914429322,3.8032479762118567e-5,-4.560219705504129e-8,0.0025086283062298424,3.819441369790588e-5,-4.5799089344806656e-8,0.002508888222288745,3.8409920504514224e-5,-4.6065065644875405e-8,0.002509049867274366,3.863051042059274e-5,-4.633938175836797e-8,0.002509113004638694,3.879425510226927e-5,-4.654391267553016e-8,0.0025091068429147767,3.883993594289078e-5,-4.6601084959132783e-8,0.0025090898042000585,3.872875934821506e-5,-4.6461387254399373e-8,0.002509134996273683,3.846495952331999e-5,-4.6129379088556667e-8,0.002509303823785431,3.810176136963081e-5,-4.567118163005868e-8,0.0025096206611317003,3.77249340788089e-5,-4.519386918014874e-8,0.0025100635025889603,3.742094334698776e-5,-4.480570179737146e-8,0.0025105750725739227,3.7247279761174246e-5,-4.4579149479260436e-8,0.0025110856597778002,3.721891833235642e-5,-4.4533963341258614e-8,0.0025115347336513087,3.7312355209207396e-5,-4.464198908935113e-8,0.0025118837717088426,3.7479672497395944e-5,-4.4844363555259744e-8,0.0025121197805155586,3.766434463552293e-5,-4.507092241835546e-8,0.0025122524606316582,3.781403239390384e-5,-4.5256039989766344e-8,0.002512308218517646,3.788897265948401e-5,-4.534921710684068e-8,0.002512323198993744,3.7866377431753216e-5,-4.532087455967344e-8,0.0025123364352792246,3.774164049515155e-5,-4.5164209733579505e-8,0.002512383722153255,3.752690440451212e-5,-4.4893662222274306e-8,0.0025124927690744884,3.724752495244522e-5,-4.454058376296237e-8,0.0025126800686300593,3.6937187041074546e-5,-4.4147073781900625e-8,0.002512949640805612,3.663249847498581e-5,-4.3759102263850506e-8,0.0025132935154346414,3.636784559588725e-5,-4.3419995601533096e-8,0.0025136935134270817,3.6171127440481755e-5,-4.3165098457630535e-8,0.002514123766723244,3.606055777639336e-5,-4.301781026749884e-8,0.002514553618955688,3.604231707921164e-5,-4.298663815376317e-8,0.0025149508839445193,3.610876316223164e-5,-4.306282715704458e-8,0.0025152857940081257,3.6237122105096005e-5,-4.321846926867821e-8,0.0025155362609611655,3.6389174493579715e-5,-4.3405830751730746e-8,0.002515694790395706,3.651350376824656e-5,-4.356001367114698e-8,0.002515776049335391,3.6552764092910476e-5,-4.360815615449484e-8,0.0025158217306482694,3.64579617376964e-5,-4.348766977365181e-8,0.002515896936537497,3.620833883698536e-5,-4.317158041654697e-8,0.002516073071847446,3.5828669318152446e-5,-4.269046581534293e-8,0.002516399987719169,3.539060604592482e-5,-4.213413246847748e-8,0.0025168814606322987,3.499021840014745e-5,-4.162331415721513e-8,0.0025174707936113064,3.4710531005774946e-5,-4.126263149227772e-8,0.002518090589616577,3.459078644678115e-5,-4.1102057661954364e-8,0.002518663524727177,3.4618912918017596e-5,-4.112741399925282e-8,0.0025191361740298083,3.474582741761788e-5,-4.1278096176040484e-8,0.0025194875406559848,3.490802432070915e-5,-4.147510457868247e-8,0.002519725292742549,3.504638962014763e-5,-4.16444050552658e-8,0.0025198766141857846,3.5116951628882e-5,-4.173036446018124e-8,0.002519978706172601,3.509468993429849e-5,-4.1700694202266914e-8,0.002520071130482626,3.497310385097045e-5,-4.154621540106111e-8,0.002520190252699242,3.4761794687652565e-5,-4.1278135639874127e-8,0.0025203652372844786,3.448316626617987e-5,-4.092409555262571e-8,0.002520615191656812,3.416849468288395e-5,-4.05232510677893e-8,0.002520947440465501,3.385345763496335e-5,-4.0120551152513905e-8,0.002521357059662189,3.3573332103171066e-5,-3.976057689732734e-8,0.0025218278023055253,3.335822588172072e-5,-3.9481488035551096e-8,0.0025223344083919984,3.3228896480038676e-5,-3.930979257938309e-8,0.0025228460215779803,3.319367073788616e-5,-3.925652251261835e-8,0.0025233303087924958,3.324669892834196e-5,-3.9315015622613785e-8,0.0025237579626117535,3.336760095667987e-5,-3.946031753109398e-8,0.0025241074151963775,3.352256518500154e-5,-3.9650309128366536e-8,0.0025243697315655363,3.366716014331096e-5,-3.982900185191263e-8,0.002524553460207322,3.375163915239177e-5,-3.9933128485974816e-8,0.002524688300114605,3.37298851909107e-5,-3.9903559505638475e-8,0.002524824998114826,3.357240651657453e-5,-3.970202211903166e-8,0.0025250277665400896,3.328120777325597e-5,-3.933021967054159e-8,0.002525356611076024,3.289990453199541e-5,-3.8842803606554595e-8,0.0025258428381231134,3.250914558990305e-5,-3.834160036262284e-8,0.0025264698957574395,3.220189906693548e-5,-3.794432342774024e-8,0.0025271741566565867,3.2047197639093385e-5,-3.773873488953271e-8,0.002527868930050737,3.206296769477658e-5,-3.7748283537389005e-8,0.002528477957775852,3.2214078628227146e-5,-3.792951338789108e-8,0.0025289589671146006,3.243333093220877e-5,-3.8198347470684486e-8,0.002529308244893737,3.2649160481611736e-5,-3.8464834618929027e-8,0.002529551044230285,3.280554245702909e-5,-3.8658136766423037e-8,0.0025297276422903844,3.286996887218826e-5,-3.873662679239773e-8,0.0025298816375502052,3.283279972249427e-5,-3.8687266747971134e-8,0.002530052440279624,3.2702708511500886e-5,-3.852013964263886e-8,0.0025302712732322313,3.250144171865661e-5,-3.8262077101730963E-08,0.002530559210242333,3.22591991158146e-5,-3.7950935413685944e-8,0.002530926148178654,3.2010602838034795e-5,-3.7630466201304596e-8,0.002531370351391248,3.1790798148834993e-5,-3.7345270529438355e-8,0.0025318786907376338,3.1631370951251876e-5,-3.713553615551818e-8,0.0025324279262051433,3.155608559611767e-5,-3.703162366365894e-8,0.0025329874164920214,3.1576901848478516e-5,-3.704907123537745e-8,0.0025335233363896095,3.1691081346079224e-5,-3.71849683887019e-8,0.002534004013295205,3.1880164541897305e-5,-3.741660475396124e-8,0.0025344056658638974,3.211134266810114e-5,-3.770302889521404e-8,0.0025347176716889862,3.234141683476799e-5,-3.798981805268735e-8,0.0025349464931195965,3.25231453918205e-5,-3.821692596727692e-8,0.002535117468766687,3.261356425395861e-5,-3.832919965284332e-8,0.002535273522037362,3.25837585549067e-5,-3.828894828785741e-8,0.0025354694854592633,3.242890013057747e-5,-3.808899818124254e-8,0.0025357608919522735,3.217582413424165e-5,-3.776263794934066e-8,0.002536187666940124,3.1883621764644e-5,-3.738458087106923e-8,0.0025367568259437178,3.1632385404099197e-5,-3.7056717765237276e-8,0.0025374327525164407,3.1499190159307474e-5,-3.687752844703763e-8,0.0025381439662942977,3.152925181564535e-5,-3.690529396896161e-8,0.00253880714969785,3.1717495544648184e-5,-3.7134493175846014e-8,0.002539357012067217,3.201212311537006e-5,-3.7500132915228656e-8,0.002539765928854451,3.233760649167408e-5,-3.79067823651572e-8,0.0025400453147970577,3.2622583246552875e-5,-3.82638918563021e-8,0.0025402331112333227,3.281872156862578e-5,-3.850972952935261e-8,0.002540377487382661,3.290621872055572e-5,-3.8618458257282727e-8,0.002540524155092487,3.288979390474908e-5,-3.8595246105451726e-8,0.0025407093934606078,3.279105867884921e-5,-3.846681028316092e-8,0.002540957537634892,3.2641231271875194e-5,-3.827233474111451e-8,0.002541280815381751,3.247562338960235e-5,-3.805651702208651e-8,0.0025416799467947535,3.232966235413645e-5,-3.786445609457888e-8,0.002542144857740274,3.223562798311164e-5,-3.7737407372711096e-8,0.002542655579590631,3.221938662051105e-5,-3.7708565661377785e-8,0.0025431838362320446,3.229680174430522e-5,-3.779849423590047e-8,0.0025436960054889923,3.247013233511464e-5,-3.8010564296692125e-8,0.00254415790798978,3.272542643389036e-5,-3.8327620226833e-8,0.002544541182956549,3.303226997284184e-5,-3.871155421654684e-8,0.0025448301444755037,3.334704611861932e-5,-3.9107270584671315e-8,0.0025450273211040327,3.3620069672829226e-5,-3.9451574837501164e-8,0.002545155729501141,3.380568399136757e-5,-3.968592063249876e-8,0.002545256556630443,3.387319471601984e-5,-3.977037692107729e-8,0.0025453820443540687,3.3816009067509984e-5,-3.969547432241733e-8,0.002545584452323269,3.365650342624907e-5,-3.948871602576002e-8,0.0025459029162299583,3.344455147949948e-5,-3.9213016496428415e-8,0.0025463510522096334,3.324840420752361e-5,-3.895529090102889e-8,0.002546909232956193,3.3138246514345544e-5,-3.8805530645937213e-8,0.002547525817875957,3.31656565561402e-5,-3.883045961997576e-8,0.002548129745697608,3.334578366524815e-5,-3.9050513834874766e-8,0.002548651901131051,3.3650693689135876e-5,-3.9431034299941284e-8,0.00254904685669721,3.4018656743914485e-5,-3.989388291545174e-8,0.002549305056062235,3.4375770534290136e-5,-4.034493649891447e-8,0.002549450755241978,3.465939649203068e-5,-4.070401123079711e-8,0.0025495291586907494,3.4833241697630345e-5,-4.092420182378461e-8,0.002549590687379239,3.4890489219274215e-5,-4.099602575860678e-8,0.0025496789205144556,3.4848031855415884e-5,-4.0940251920067316e-8,0.0025498244612649898,3.473730209237217e-5,-4.079637327911076e-8,0.0025500436032672657,3.459585033605535e-5,-4.061196445682029e-8,0.002550339547154352,3.4461308211710806e-5,-4.0434988555481746e-8,0.0025507043433619027,3.4367523260307965e-5,-4.030880973480197e-8,0.0025511206731693597,3.4341897944161364e-5,-4.0268729945377805e-8,0.002551563424104876,3.4402972367080165e-5,-4.03388608138628e-8,0.002552001606617659,3.4557690980306746e-5,-4.0528610973922175e-8,0.002552401461273141,3.479848664498499e-5,-4.082892216673805e-8,0.0025527314827823774,3.510120673609544e-5,-4.120952912256527e-8,0.002552969364218686,3.542565410114826e-5,-4.161951137566323e-8,0.0025531095580215266,3.572058968524942e-5,-4.19935413975739e-8,0.002553168729760865,3.59339104478195e-5,-4.226480110017664e-8,0.0025531858573809097,3.602631744383978e-5,-4.238244913932361e-8,0.0025532150611217693,3.598419299693054e-5,-4.232817322961466e-8,0.002553312233386756,3.582648549097322e-5,-4.212517282076237e-8,0.0025535195183206613,3.560220174300033e-5,-4.1835212060668614e-8,0.002553852830502855,3.537869695525301e-5,-4.15439349344679e-8,0.0025542964378125308,3.5224255096316406e-5,-4.133880357556166e-8,0.002554806195557747,3.519005643611671e-5,-4.1286055750094206e-8,0.002555320571266334,3.5296537354939525e-5,-4.141303722830442e-8,0.0025557766128750385,3.552799805828805e-5,-4.170091750744843e-8,0.002556126465171574,3.583732608559857e-5,-4.209034923582469e-8,0.002556349360987087,3.615973932622834e-5,-4.249882289419115e-8,0.0025564551410904254,3.6431100822784126e-5,-4.284408179364047e-8,0.0025564785276809823,3.6604393384032696e-5,-4.306534222497807e-8,0.002556467160589559,3.6658984478097046e-5,-4.3135357610844236e-8,0.002556468510402671,3.660096821231846e-5,-4.306106582894111e-8,0.0025565200544311623,3.645675748916501e-5,-4.28755593884766e-8,0.0025566445046864778,3.626394236750845e-5,-4.262649174123844e-8,0.0025568493925952245,3.606285126280341e-5,-4.236530656389189e-8,0.002557129168848333,3.589047078361781e-5,-4.213942711868888e-8,0.0025574680949682657,3.5776750212926264e-5,-4.1987475893609535e-8,0.0025578429268030643,3.574244515459497e-5,-4.193647233080398e-8,0.002558225197975276,3.579750560221392e-5,-4.1999734310573656e-8,0.0025585835602312756,3.593934241195524e-5,-4.217460204810126e-8,0.002558887016647417,3.61509584570488e-5,-4.2439939751589254e-8,0.0025591098618594843,3.639984373749989e-5,-4.2754572922321514e-8,0.002559238497448476,3.663948624180955e-5,-4.305908526809104e-8,0.002559278835866122,3.6815737799850185e-5,-4.3283910146574906e-8,0.002559261046831353,3.68791601038681e-5,-4.336518833602966e-8,0.0025592372774527606,3.680125222475687e-5,-4.3265665007869605e-8,0.0025592697003744484,3.658826729490232e-5,-4.299250430234186e-8,0.0025594113266689754,3.6284623802832374e-5,-4.260177686092147e-8,0.0025596874257284618,3.596177093402923e-5,-4.218437109225698e-8,0.0025600863540812774,3.569620677368294e-5,-4.183807532178788e-8,0.002560563687246403,3.554623400075656e-5,-4.1637989758230514e-8,0.002561056690233244,3.553661609585996e-5,-4.161684553067492e-8,0.0025615023865055877,3.565507989845713e-5,-4.176023644906828e-8,0.002561853048804872,3.585927599621287e-5,-4.20151041647804e-8,0.0025620856129585094,3.6090108860365954e-5,-4.230643641429664e-8,0.0025622040446008454,3.628699041834416e-5,-4.255663518033421e-8,0.0025622353918832905,3.6401300490328786e-5,-4.270283147309331e-8,0.0025622213473997326,3.6405401558346106e-5,-4.2708678956345274e-8,0.0025622078408738705,3.6295813489391095e-5,-4.256872173084837e-8,0.0025622353848293975,3.609068615788058e-5,-4.230540259760305e-8,0.00256233232102081,3.582322550250386e-5,-4.1960772840867707e-8,0.002562511863801732,3.553353735483984e-5,-4.158605612885912e-8,0.0025627725248878294,3.526111693837438e-5,-4.123196242121757e-8,0.00256310070883618,3.503928727808233e-5,-4.0941482037820396e-8,0.0025634741471409566,3.4891828381175004e-5,-4.074551346356165e-8,0.002563865248603042,3.483125361276283e-5,-4.066063228427299e-8,0.002564244075042713,3.4857926898380974e-5,-4.068793102758481e-8,0.002564581202623444,3.495942454822687e-5,-4.0812119542659516e-8,0.00256485109943431,3.5110048036088305e-5,-4.100075191629571e-8,0.0025650367242128005,3.527118210779312e-5,-4.120451556732618e-8,0.002565135498337338,3.539413055019303e-5,-4.136076151439963e-8,0.0025651654120114266,3.5427525351978796e-5,-4.1403038721833427e-8,0.0025651680412939974,3.533045146974794e-5,-4.127809559426407e-8,0.0025652038004362098,3.508913423679075e-5,-4.096749224333056e-8,0.0025653363340437958,3.472992631684516e-5,-4.050439181559414e-8,0.0025656093621240807,3.431861032240273e-5,-3.997271395936973e-8,0.0025660270415399614,3.394124366569468e-5,-3.9482630402027894e-8,0.0025665499166005316,3.367374522340637e-5,-3.913169321930131e-8,0.0025671094737676993,3.3555941288687166e-5,-3.8971649823626466e-8,0.0025676326398133926,3.358238507761676e-5,-3.899658257921173e-8,0.00256806353887396,3.3710715096302974e-5,-3.915332696323073e-8,0.0025683748955028416,3.387946611070678e-5,-3.936392740831083e-8,0.0025685688159335627,3.402630843529469e-5,-3.954873741392243e-8,0.0025686706264498697,3.410151913115822e-5,-3.96436201055269e-8,0.002568719735740128,3.4075375284090386e-5,-3.9609586863852165e-8,0.0025687602388208127,3.3940249039981586e-5,-3.9435794394587893e-8,0.002568832735617296,3.370870760914346e-5,-3.913743671001868e-8,0.0025689681542897694,3.340879250968684e-5,-3.874991257803349e-8,0.0025691840551694215,3.307763210742136e-5,-3.832068947589197e-8,0.002569483538443005,3.275462578485857e-5,-3.790047634512565e-8,0.00256985645494049,3.2475309573827486e-5,-3.753521316052912e-8,0.0025702822795653883,3.226668899010827e-5,-3.725997236190257e-8,0.002570733820216625,3.214437650152126e-5,-3.70952464417701e-8,0.002571181033117111,3.211133565934368e-5,-3.70453424363933e-8,0.0025715946013054125,3.215772517602418e-5,-3.7098167201791944e-8,0.002571949318347555,3.226144137496881e-5,-3.722583343084536e-8,0.002572227570996682,3.2389277195387017e-5,-3.738598474604562e-8,0.0025724233208959243,3.249913626791757e-5,-3.752447594345222e-8,0.002572546572517723,3.2544481248383096e-5,-3.7581027423136185e-8,0.002572627105263867,3.248253008845186e-5,-3.7499865346558056e-8,0.0025727146254667485,3.2286766565557764e-5,-3.7246045798024494e-8,0.0025728713746888203,3.196144702345607e-5,-3.6824362906102526e-8,0.0025731546573224077,3.1551122395760685e-5,-3.6291732875808416e-8,0.0025735930611439093,3.113531128318894e-5,-3.5750349486020505e-8,0.0025741686669498156,3.080383281342957e-5,-3.5315932671875985e-8,0.002574818793527538,3.0622158898999846e-5,-3.5073179334983326e-8,0.002575459250901792,3.0606384083367444e-5,-3.5043561582390667e-8,0.0025760157713347175,3.072183306088944e-5,-3.518340880366333e-8,0.0025764462366678763,3.0902486165110045e-5,-3.5408643786040035e-8,0.0025767458975593516,3.107681621716422e-5,-3.562773879707096e-8,0.0025769394739584782,3.118739906047621e-5,-3.5766760816977004e-8,0.0025770682803444704,3.12001551469743e-5,-3.5781267605868635e-8,0.0025771782767451306,3.110525759781823e-5,-3.565767914468704e-8,0.0025773113662062915,3.091339865537416e-5,-3.540879179965687e-8,0.0025774999609862632,3.065026064735654e-5,-3.5066958787603745e-8,0.0025777640357551542,3.035060945700293e-5,-3.4676643389330934e-8,0.002578110043284982,3.0052507451921462e-5,-3.428694627394564e-8,0.002578531397055513,2.9791926281541815e-5,-3.3944523195161236e-8,0.0025790103290381297,2.9598057935518227e-5,-3.368738209113566e-8,0.0025795209096909134,2.948965519446499e-5,-3.354007538112134e-8,0.002580032896739608,2.94727630782897e-5,-3.351077440578792e-8,0.0025805159234916397,2.954000878094914e-5,-3.3590389005577315e-8,0.002580943592558336,2.9671294779383406e-5,-3.375345201478358e-8,0.0025812972568394475,2.983567962877638e-5,-3.3960441519085414e-8,0.002581569412426488,2.9994385199715056e-5,-3.416148972868799e-8,0.002581766674986788,3.0105076417356167e-5,-3.430175679860849e-8,0.0025819120683374308,3.0127919994288804e-5,-3.4329229444587715e-8,0.002582045519993052,3.0034048227300084e-5,-3.420579656011638e-8,0.0025822203949664234,2.9816100977510195e-5,-3.392112802616561e-8,0.002582493526172687,2.9498181435378302e-5,-3.3505790908997055e-8,0.0025829078467866826,2.913934269067586e-5,-3.3035889417979293e-8,0.002583471922975573,2.8823154006253027e-5,-3.261957918279001e-8,0.0025841475821974037,2.8630944686295138e-5,-3.236241863773583e-8,0.0025848575009842015,2.860875020177161e-5,-3.23245690882075e-8,0.0025855132051104206,2.8747336224273945e-5,-3.249487409873808e-8,0.0025860483870083825,2.898840096044825e-5,-3.279872884323055e-8,0.0025864386289602428,2.925160284354101e-5,-3.31328354281292e-8,0.0025867003344974215,2.9464434140691195e-5,-3.340364643567008e-8,0.0025868758817611977,2.9580498213838604e-5,-3.355089908895895e-8,0.0025870163518221215,2.958356532888121e-5,-3.3552916689574256e-8,0.00258716874146591,2.948254760991543e-5,-3.342033057128494e-8,0.0025873690254704456,2.930331685653275e-5,-3.31857940505852e-8,0.0025876396104315717,2.908092911135896e-5,-3.289416461028243e-8,0.0025879892061104566,2.88534249664018e-5,-3.259456856612757e-8,0.0025884138089266786,2.8656989162023898e-5,-3.2334059412977954e-8,0.002588898359017111,2.8521979692271508e-5,-3.215231454490244e-8,0.002589419062272378,2.8469586189780088e-5,-3.2077164254932806e-8,0.002589946473323683,2.8509159090307877e-5,-3.212107523599057e-8,0.002590449393316276,2.8636563050092073e-5,-3.227904091415366e-8,0.002590899361197364,2.8834057391279875e-5,-3.2528461699677137e-8,0.00259127520629838,2.9071975778584452e-5,-3.2831291645010475e-8,0.0025915670649930126,2.9312176621478835e-5,-3.313838678718475e-8,0.0025917793326626975,2.951309804139549e-5,-3.33958896106978e-8,0.0025919320721802777,2.96361235160836e-5,-3.355336698452127e-8,0.002592060388232209,2.9652876016196784e-5,-3.357329612354791e-8,0.0025922110409532205,2.9552949250428954e-5,-3.344128213388367e-8,0.0025924352611730508,2.9350891816452204e-5,-3.3175402893513874e-8,0.0025927770732672843,2.908978789339379e-5,-3.2831114881942346e-8,0.0025932582302109035,2.8837351096213648e-5,-3.2496316807290324e-8,0.0025938644424488276,2.8670845449783314e-5,-3.2271752176790486e-8,0.00259454130569729,2.8651787572331885e-5,-3.223802204062918e-8,0.0025952073153012044,2.880006435961552e-5,-3.242178048536644e-8,0.0025957820237779284,2.9082752023308125e-5,-3.2781025144444316e-8,0.002596215451355888,2.942669394122801e-5,-3.3221292787055197e-8,0.0025965024447693404,2.9748129367640864e-5,-3.3634051131772567e-8,0.0025966765282158253,2.998185229157122e-5,-3.3934507817174133e-8,0.002596791242167228,3.009622528063916e-5,-3.408109516064842e-8,0.0025969011572768027,3.0092558261656323e-5,-3.4074756512656124e-8,0.002597049688176753,2.9995632087270322e-5,-3.3946851949197073e-8,0.0025972643186138377,2.9842572236855614e-5,-3.3744958806311066e-8,0.002597556681278304,2.9673938276303314e-5,-3.3521470462183287e-8,0.002597924726275709,2.9527819877394803e-5,-3.332595043754231e-8,0.0025983552864050196,2.9436122490796813e-5,-3.320019805897644e-8,0.002598826556628034,2.9421965307062316e-5,-3.3174709416024415e-8,0.0025993106853013,2.949756098639174e-5,-3.32658027069346e-8,0.002599776848353735,2.9662467082486734e-5,-3.347330412600232e-8,0.0026001951252648077,2.99025861685836e-5,-3.377926073172787e-8,0.0026005411717937273,3.019067108816419e-5,-3.414860105393843e-8,0.002600801115884702,3.048904747005782e-5,-3.453261736501532e-8,0.0026009756449572323,3.075479964565841e-5,-3.487558988314453e-8,0.0026010821201373643,3.094704699047445e-5,-3.512412559281178e-8,0.0026011537374556978,3.103526998712179e-5,-3.523794137373505e-8,0.0026012352359606815,3.100711111394474e-5,-3.52001023446636e-8,0.0026013752640351045,3.08739211784446e-5,-3.5024463414013454e-8,0.0026016160874248713,3.0672358090410115e-5,-3.475804093991398e-8,0.0026019820559800674,3.0460335902351476e-5,-3.447598865451195e-8,0.0026024694362678106,3.0306029731080202e-5,-3.4267389520307465e-8,0.0026030416290290835,3.0270338541856285e-5,-3.421233572704718e-8,0.0026036342474958208,3.0386657894908002e-5,-3.435533680675956e-8,0.0026041720030882468,3.064594194570206e-5,-3.4685549028801975e-8,0.0026045930310347977,3.09961293659131e-5,-3.513578419828963e-8,0.0026048698621258057,3.1359222083486464e-5,-3.560466452625087e-8,0.002605016277847952,3.165875436058266e-5,-3.5992435719287957e-8,0.0026050775582436726,3.1843809880593544e-5,-3.623231983185307e-8,0.0026051114117463955,3.1899280024474e-5,-3.630395313793583e-8,0.0026051700508598736,3.184180085895025e-5,-3.622821835659225e-8,0.0026052897100294578,3.1707923332180516e-5,-3.605202198717156e-8,0.0026054879335475844,3.154166996092474e-5,-3.5832271992857454e-8,0.0026057657097087847,3.138536625159791e-5,-3.5624031184444675e-8,0.0026061113393798714,3.1274330301516524e-5,-3.5473569113068227e-8,0.0026065041725679677,3.123426843754492e-5,-3.5414846395313414e-8,0.0026069176827509784,3.127995084377525e-5,-3.54676479866181e-8,0.0026073221793504135,3.141424395457776e-5,-3.563622226078849e-8,0.002607687760832499,3.162725534231478e-5,-3.590812143263662e-8,0.002607988052610515,3.189600175406857e-5,-3.6253749808592313e-8,0.0026082048747776295,3.218555030603266e-5,-3.662781876104157e-8,0.0026083332526672066,3.2452725750126513e-5,-3.697411627683993e-8,0.0026083853531278017,3.265297934002162e-5,-3.72343878712858e-8,0.0026083914259650088,3.2749867670578894e-5,-3.736065308576354e-8,0.002608396133617845,3.272507890931113e-5,-3.732831038939484e-8,0.0026084499787289036,3.258582024132688e-5,-3.714589715717855e-8,0.0026085974212649975,3.236651424287259e-5,-3.6857515677651e-8,0.0026088647679620098,3.2123260707560836e-5,-3.65358635683691e-8,0.002609251366434725,3.1921661831404596e-5,-3.6266559361749115e-8,0.0026097270315835943,3.182058662536569e-5,-3.612701970627575e-8,0.002610237284691165,3.185588171012813e-5,-3.6165054551592994e-8,0.002610716126815699,3.202876234196642e-5,-3.6383392719986345e-8,0.0026111037028992033,3.23033372673764e-5,-3.6736088564341154e-8,0.0026113636304113436,3.261570097552551e-5,-3.714014721843922e-8,0.002611493434829786,3.2892780986458314e-5,-3.750008482171149e-8,0.002611523495367077,3.307418573417459e-5,-3.7736560791061143E-08,0.002611505142783382,3.312826382278772e-5,-3.780750968567028e-8,0.002611493763715752,3.3056708359165294e-5,-3.771431792722278e-8,0.0026115341933477952,3.2888214172239555e-5,-3.749370515848177e-8,0.0026116528511147953,3.266635873779777e-5,-3.7202054725746606e-8,0.0026118568135878677,3.2437504850753895e-5,-3.6899719726700316e-8,0.0026121372770168093,3.22421675305727e-5,-3.663975855845446e-8,0.0026124744813415092,3.2110441667230555e-5,-3.646188211570326e-8,0.002612842227916604,3.206036322123708e-5,-3.639018811094762e-8,0.00261321139785924,3.2097696128144984e-5,-3.64327692480781e-8,0.00261355274464152,3.2216066114155835e-5,-3.658181139714531e-8,0.0026138396427348816,3.2397063044748426e-5,-3.681367790345908e-8,0.0026140514872013475,3.261067171343822e-5,-3.708942654441659e-8,0.0026141780311365196,3.2817050683532635e-5,-3.7357080590710184e-8,0.002614224114800926,3.297101014117252e-5,-3.7557436147006555e-8,0.002614213119889088,3.303013696291152e-5,-3.7634673802280204e-8,0.002614186549965068,3.296599359632987e-5,-3.755103806085695e-8,0.0026141973753741167,3.277534783937561e-5,-3.7301599143301795e-8,0.002614297046902401,3.248635183237581e-5,-3.69224435741917e-8,0.0026145197475576695,3.215508644569542e-5,-3.648630993783964e-8,0.002614870090159904,3.185171140863245e-5,-3.608467312200419e-8,0.0026153197674543857,3.164059402548646e-5,-3.5801927989370486e-8,0.0026158147703580206,3.156177686629293e-5,-3.569118447274441e-8,0.0026162903077401106,3.1620210993565046e-5,-3.5760006489734524e-8,0.0026166880991987354,3.1785560398102544e-5,-3.5969814749259693e-8,0.002616970841721617,3.200160523740788e-5,-3.624783231824479e-8,0.002617130261397801,3.220181753315225e-5,-3.65072435138508e-8,0.0026171871606737534,3.232655585316976e-5,-3.6669675925902054e-8,0.00261718397046602,3.233719347395405e-5,-3.6683842036219965e-8,0.0026171724016019787,3.222347506708292e-5,-3.6535405177033614e-8,0.0026172002283405987,3.200264024737339e-5,-3.624607593524087e-8,0.0026173011810684,3.171173130676567e-5,-3.586373455846947e-8,0.0026174902392406083,3.139662825485608e-5,-3.544818102047367e-8,0.0026177642440258567,3.110164755113335e-5,-3.5057518398642445e-8,0.0026181060091383474,3.086218416322592e-5,-3.4738433135395185e-8,0.0026184896650506663,3.070099873181416e-5,-3.452121062024481e-8,0.0026188855768160607,3.062736487635263e-5,-3.441851050195791e-8,0.0026192641644238587,3.063776642104189e-5,-3.44262138034998e-8,0.0026195987827379364,3.071705603650061e-5,-3.452490184616867e-8,0.0026198682621240295,3.083960982102611e-5,-3.4681327174304134e-8,0.0026200597799300902,3.0970713580179304e-5,-3.485016751422272e-8,0.0026201724252346513,3.106906901777973e-5,-3.497724556731821e-8,0.002620221032692184,3.1091763777759243e-5,-3.500601824118333e-8,0.0026202386178564006,3.10028288611161e-5,-3.4888839501679675e-8,0.0026202745150329704,3.0784947027866455e-5,-3.4602410900141006e-8,0.0026203852922867623,3.0450819216758257e-5,-3.416279062923851e-8,0.002620618265425924,3.0047622079189514e-5,-3.363132109745287e-8,0.002620992870319827,2.9648323815135033e-5,-3.31033303947174e-8,0.0026214894619416536,2.932979763141325e-5,-3.267956343422445e-8,0.0026220531242507274,2.9146566799369495e-5,-3.2431878766493014e-8,0.002622611657445149,2.9112958080091928e-5,-3.237984681690709e-8,0.0026230987533740094,2.9201352737337322e-5,-3.248826516711856e-8,0.0026234720422993033,2.935474709537481e-5,-3.268331002587069e-8,0.002623720696604966,2.950580934218716e-5,-3.28772184813543e-8,0.002623863141320352,2.9594733190630928e-5,-3.2991532941629956e-8,0.002623938403472255,2.9581523567624585e-5,-3.2973239176112444e-8,0.0026239948751797743,2.945153944445875e-5,-3.280223748832211e-8,0.002624079352158989,2.9214975075539966e-5,-3.249095709508292e-8,0.0026242282334253994,2.8901697565596798e-5,-3.207786296841002e-8,0.0026244620668671175,2.855315053807396e-5,-3.161700102240202e-8,0.0026247839524003213,2.821331655109691e-5,-3.116615430893701e-8,0.0026251814438661785,2.7920728883389294e-5,-3.077624804492969e-8,0.002625630821426735,2.770290261143587e-5,-3.048387523980967e-8,0.0026261023194173497,2.7573621615054672e-5,-3.030759911853844e-8,0.0026265650867071107,2.753272069170523e-5,-3.024760371638935e-8,0.0026269911754542366,2.7567495629662442e-5,-3.0287542037181364e-8,0.0026273585031503107,2.7654808956776647e-5,-3.0397305793839284e-8,0.0026276531846827346,2.776337289842733e-5,-3.0535989704684127e-8,0.0026278717322375995,2.785627661607388e-5,-3.0655133830369624e-8,0.0026280234298139303,2.7894361322732897e-5,-3.0703083939648824e-8,0.0026281325803872136,2.7841478039741167e-5,-3.063189326845691e-8,0.0026282392000712505,2.7672557297109677e-5,-3.040802070948686e-8,0.0026283955437060506,2.7384085700415085e-5,-3.002625965469175e-8,0.00262865565196701,2.700371371201096e-5,-2.9522515841626875e-8,0.002629057605315128,2.6592301817640855e-5,-2.897657699704715e-8,0.0026296042239974493,2.623136467768682e-5,-2.8495630917078668e-8,0.0026302538309996223,2.599585843503772e-5,-2.8178505464655922e-8,0.002630930614107705,2.5924188462011436e-5,-2.807623809106079e-8,0.0026315519205043305,2.6002942441934412e-5,-2.8171931342658712e-8,0.002632057542513618,2.6175113742488016e-5,-2.8391396121084223e-8,0.0026324258329257447,2.6364726212698507e-5,-2.8635308308118833e-8,0.002632672462723894,2.6502714775448774e-5,-2.881304110057633e-8,0.0026328380412312087,2.6543357889184606e-5,-2.8864178132588297e-8,0.0026329731241864014,2.6469411774491017e-5,-2.8765333495100423e-8,0.0026331258609140727,2.6289281768524357e-5,-2.852665947748336e-8,0.0026333338989213834,2.6030282261764095e-5,-2.8183285436663457e-8,0.002633620171689503,2.573080090149753e-5,-2.7785262712895203e-8,0.002633991642655656,2.5432731091922993e-5,-2.7387706234444074e-8,0.0026344403222787766,2.517473880061446e-5,-2.7041855038120544e-8,0.002634946113457011,2.498684705051351e-5,-2.6787753182580472e-8,0.0026354809501950237,2.4886802821856877e-5,-2.6649271729928865e-8,0.0026360135612485953,2.487845151655501e-5,-2.66318567861711e-8,0.0026365141657436557,2.4952076373098923e-5,-2.672296922722169e-8,0.002636958487571637,2.508635806998142e-5,-2.6894714182866534e-8,0.002637330770592852,2.5251345857424093e-5,-2.7107782135658014e-8,0.0026376258574601534,2.541191401004594e-5,-2.731596108184508e-8,0.002637850566159729,2.5531539580490765e-5,-2.747102088376633e-8,0.002638024527826738,2.557660264320669e-5,-2.7528304916922454e-8,0.0026381802741849004,2.552172015255805e-5,-2.7453780860784707e-8,0.0026383615500640014,2.535654692073106e-5,-2.7233147342018143e-8,0.0026386179885873363,2.5093413410281484e-5,-2.6882116638732477e-8,0.002638994289794082,2.4773009859853065e-5,-2.6454097522886618e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json new file mode 100644 index 00000000..270577e9 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":19000,"numberOfSamples":1000,"samples":[0.00263951402096563,2.446275040491078e-5,-2.6038117688221015e-8,0.0026401631724560673,2.4241976200195275e-5,-2.5739261712150362e-8,0.002640884349598046,2.417407411008679e-5,-2.5641764129475454e-8,0.0026415912918163185,2.4277459627606698e-5,-2.577057311285661e-8,0.0026422007751247287,2.4514250198517228e-5,-2.6076268743377622e-8,0.002642664329828072,2.4806135401016956e-5,-2.6455914313675208e-8,0.002642981408758501,2.5067420523334124e-5,-2.6796599674782414e-8,0.0026431902581784475,2.523476738670862e-5,-2.701462116287926e-8,0.0026433473077564114,2.5280434293348607e-5,-2.707291191164421e-8,0.0026435080278592402,2.5209814035850336e-5,-2.6977864625794997e-8,0.0026437153058168224,2.5051197769627946e-5,-2.6766036632474325e-8,0.002643995008250455,2.4844553414124373e-5,-2.6489610125027892e-8,0.002644356096346505,2.4632482174508258e-5,-2.6204648569688263e-8,0.002644792866933108,2.4453878979516923e-5,-2.5962750928942762e-8,0.002645287958825506,2.433962413644026e-5,-2.580522022561437e-8,0.0026458157625529125,2.4309628109960647e-5,-2.5758941317575327e-8,0.00264634623063722,2.4371028134717308e-5,-2.5833817493889664e-8,0.0026468490048528843,2.4517626043978552e-5,-2.6021955503015233e-8,0.002647297629221693,2.473075415894809e-5,-2.629884122598041e-8,0.002647673419069512,2.498168300232041e-5,-2.6626587976528904e-8,0.0026479684516871804,2.5235364563765828e-5,-2.6958906132239313e-8,0.0026481873145099825,2.54550480044092e-5,-2.724714977923732e-8,0.0026483474854581976,2.5607329200806667e-5,-2.744689859121178e-8,0.002648478321749667,2.5667306663201197e-5,-2.7524725198145248e-8,0.002648618565417001,2.562364143904652e-5,-2.746495256788262e-8,0.002648811933829168,2.548331398325493e-5,-2.7276137128600436e-8,0.002649099993304903,2.5275225022656478e-5,-2.6996080239347117e-8,0.0026495118344468096,2.5050470037239995e-5,-2.6692385337925312e-8,0.0026500516782408433,2.4875937156110125e-5,-2.6454031394300517e-8,0.0026506887377273874,2.481830242231187e-5,-2.637005584696817e-8,0.0026513571570154788,2.4919878684211346e-5,-2.649732055333089e-8,0.0026519727576500727,2.5176293414199947e-5,-2.6830682803784936e-8,0.00265246347865712,2.553137242424813e-5,-2.7296067819030845e-8,0.0026527977885291948,2.5897092428559638e-5,-2.777691417282513e-8,0.0026529937872264786,2.6188736914085377e-5,-2.8160834927125474e-8,0.0026531053400488365,2.6354405340763377e-5,-2.8378742435525895e-8,0.002653197143730883,2.6384803835271885e-5,-2.8417798104530085e-8,0.0026533237489522734,2.630496073324375e-5,-2.8310488620170042e-8,0.002653519415667135,2.61584941720321e-5,-2.8113966146280626e-8,0.0026537972075638358,2.5993391727317396e-5,-2.7891437296909137e-8,0.0026541528220946162,2.5852711656499893e-5,-2.7699980495729533e-8,0.002654569583467504,2.576980469437125e-5,-2.758418502662082e-8,0.002655022888269817,2.5766321279371505e-5,-2.7573341150534074e-8,0.0026554838903719694,2.5851487346184455e-5,-2.7680269328933923e-8,0.0026559228543872925,2.6021962722230312e-5,-2.7900982114737346e-8,0.0026563125592436493,2.6262270927647677e-5,-2.8215210320601784e-8,0.0026566318822620954,2.6546159408893735e-5,-2.8588246183577963e-8,0.0026568693325829773,2.683937297731775e-5,-2.8974675169938895e-8,0.00265702588046726,2.7104047119859548e-5,-2.9324209301872344e-8,0.0026571162804157502,2.730439944298196e-5,-2.9589182861804454e-8,0.002657168287578267,2.741298625135473e-5,-2.973278593466467e-8,0.002657219506910407,2.7416528074622072e-5,-2.9736788701860016e-8,0.002657312004454739,2.7320200846281446e-5,-2.9607346163960382e-8,0.0026574851280428084,2.714945498836805e-5,-2.9377627673142143e-8,0.0026577671410715864,2.6948550466389847e-5,-2.9106116594645743e-8,0.0026581666337407396,2.677480114515534e-5,-2.8869130261933987e-8,0.002658665644369953,2.668759153112913e-5,-2.874622335182529e-8,0.0026592177642860556,2.673249924766369e-5,-2.8798893801029236e-8,0.0026597551845333914,2.6923863313585407e-5,-2.9047096880029876e-8,0.0026602066278280773,2.7233239467283458e-5,-2.945360447347533e-8,0.0026605218701161496,2.759279450344971e-5,-2.992839322576825e-8,0.002660691339317348,2.791687831695263e-5,-3.0357403494703774e-8,0.0026607489650131524,2.813307297178182e-5,-3.064397603742436e-8,0.002660756316410744,2.820629128228656e-5,-3.0740975280116455e-8,0.00266077813131762,2.814444053347429e-5,-3.0658329382785926e-8,0.0026608626181401033,2.7987094517445165e-5,-3.044802835863527e-8,0.002661033282093157,2.7787369099427664e-5,-3.018018911351549e-8,0.002661290670229049,2.759646253123286e-5,-2.992268275086257e-8,0.002661618847227499,2.745466279524221e-5,-2.9729256636510297e-8,0.002661992324996788,2.7388048564438633e-5,-2.9635075082451442e-8,0.0026623814914065623,2.740846380825369e-5,-2.9656508743774662e-8,0.0026627564064791672,2.751469021981976e-5,-2.9792508338229933e-8,0.002663089657287003,2.769378081550649e-5,-3.002626101217006e-8,0.0026633589993581537,2.7922422231694105e-5,-3.032697532756177e-8,0.0026635502049094915,2.816877186333765e-5,-3.065235507227498e-8,0.002663660058606214,2.8395509491539593e-5,-3.095269273591784e-8,0.0026636988226479592,2.8564683516255168e-5,-3.1177317725720975e-8,0.0026636910185861354,2.8644267020628355e-5,-3.128328931824663e-8,0.002663673368164203,2.8615444636392442e-5,-3.124507257083623e-8,0.0026636892999802016,2.847882357726595e-5,-3.106284172552677e-8,0.0026637804953454328,2.8257367087954442e-5,-3.076651119240239e-8,0.0026639771539304236,2.7994347029093748e-5,-3.041320967031577e-8,0.002664289390944928,2.7745919962196963e-5,-3.0077603120369135e-8,0.0026647021583839263,2.7569343911087362e-5,-2.983632036881539e-8,0.002665175574611234,2.7508966541401323e-5,-2.9749234062979572e-8,0.002665651753105894,2.758308150002246e-5,-2.9841711448467954e-8,0.0026660679387967637,2.777557445101302e-5,-3.009314804079612e-8,0.002666373652606828,2.8036422130212083e-5,-3.043735504000154e-8,0.0026665467921051737,2.8293485634668975e-5,-3.0778184924067085e-8,0.002666601852555459,2.8473726055012245e-5,-3.1017907545195027e-8,0.0026665852853927806,2.8526301970881325e-5,-3.1088172804032435e-8,0.002666559122253182,2.843738526897907e-5,-3.0969895282801916e-8,0.0026665805053176046,2.823043592843639e-5,-3.069370740064932e-8,0.0026666863526158286,2.795380188020402e-5,-3.032352927191644e-8,0.002666888030781808,2.7663438827002143e-5,-2.993366290807507e-8,0.0026671748130789254,2.7408493516036183e-5,-2.958966680282094e-8,0.0026675216046985984,2.722333376093842e-5,-2.933771824724552e-8,0.0026678967932506742,2.7125467417972392e-5,-2.920171724683057e-8,0.002668268174343812,2.7116928055334394e-5,-2.918496557666993e-8,0.0026686067536675503,2.718687142750966e-5,-2.9273488870256556e-8,0.002668889153521843,2.7314125916714938e-5,-2.9439367095546293e-8,0.0026690995240611494,2.7469415229723713e-5,-2.9643692403226327e-8,0.002669231588881734,2.761768401200625e-5,-2.983969287822529e-8,0.0026692909045567758,2.772137604439484e-5,-2.9977123836592665e-8,0.002669296689582548,2.7745483589062654e-5,-3.0009007656812204e-8,0.0026692818814056923,2.76645400450632e-5,-2.9900964988722216e-8,0.002669289786419154,2.7470487600255673e-5,-2.9641735210395685e-8,0.0026693663135547675,2.7178855682651955e-5,-2.9251483856010147e-8,0.002669548600717101,2.6829814064937723e-5,-2.8783321052296953e-8,0.002669853232704221,2.6481571864986507e-5,-2.8314646721668814e-8,0.0026702686612265127,2.6196540227162797e-5,-2.792883344868289e-8,0.0026707555410017745,2.6024208042934442e-5,-2.769243626155642e-8,0.0026712556999075863,2.5986573478360687e-5,-2.7635653186376986e-8,0.002671707089748267,2.6071129511972674e-5,-2.7742712797765785e-8,0.0026720600901569886,2.6233603318288687e-5,-2.795522462078366e-8,0.002672290443135009,2.640954156364561e-5,-2.818742186699068e-8,0.0026724052428170825,2.653145786869803e-5,-2.8349002218997386e-8,0.002672440220313686,2.6546752821712073e-5,-2.8369163632258638e-8,0.0026724489957256573,2.6431102842522592e-5,-2.8214673922745004e-8,0.002672487698917711,2.6193125149463324e-5,-2.789629736013679e-8,0.0026726001820109838,2.586916578069951e-5,-2.746199942230688e-8,0.002672808644915501,2.551090053887501e-5,-2.6980507296689357e-8,0.0026731118372536797,2.5170934360175597e-5,-2.6522128760281473e-8,0.0026734896589889912,2.4891330726868854e-5,-2.6143393330707435e-8,0.0026739109227287,2.4697549447807037e-5,-2.5878832880513e-8,0.0026743410670043246,2.4597486622909633e-5,-2.5739543146492245e-8,0.002674747998989801,2.458373190904632e-5,-2.5716071958711425e-8,0.0026751057440529678,2.463704675194214e-5,-2.57830039780471e-8,0.0026753964831346907,2.47297865751725e-5,-2.5903529531835557e-8,0.00267561183646005,2.4828867315808e-5,-2.6033429491443315e-8,0.0026757540793394046,2.489859900654912e-5,-2.6124877326598502e-8,0.00267583747024861,2.4904174485618595e-5,-2.6131104709850983e-8,0.0026758891320712635,2.4816671777239062e-5,-2.6013096260213478e-8,0.0026759481268225807,2.4619877273035702e-5,-2.5748745104085175e-8,0.002676060878740094,2.4317891637757816e-5,-2.534308690420903e-8,0.002676271641860672,2.3940547910458253e-5,-2.4835628594163594e-8,0.0026766089922976954,2.3542240639262514e-5,-2.429887410844018e-8,0.002677072911743146,2.3190810939116947e-5,-2.3823549830955104e-8,0.002677629384711697,2.2947801471423495e-5,-2.349226195279842e-8,0.0026782174373540597,2.284747447523584e-5,-2.3351420427147178e-8,0.002678767190753552,2.2884450527373708e-5,-2.3394574904936935e-8,0.002679221246387928,2.3015772470718473e-5,-2.3564955982734086e-8,0.0026795504594499405,2.31755695605357e-5,-2.3774871289120044e-8,0.002679759170591716,2.3295137206169125e-5,-2.393243272963582e-8,0.0026798803135628544,2.3320917185443094e-5,-2.3965602905995443e-8,0.0026799640145154023,2.322577558520088e-5,-2.3837397612610006e-8,0.0026800639314745046,2.3012215146842673e-5,-2.3550384713622862E-08,0.0026802248899573116,2.2708392050599457e-5,-2.3141585163499967e-8,0.0026804742934984,2.235906805897442e-5,-2.2670554977751216e-8,0.0026808185968568944,2.2014267511493717e-5,-2.220428842578894e-8,0.0026812448336239396,2.171854636264718e-5,-2.180280461715125e-8,0.0026817259374465234,2.150323880680172e-5,-2.1508611094251824e-8,0.00268222781652349,2.1382809836528223e-5,-2.1341628366433782e-8,0.0026827161726339327,2.1355034347562173e-5,-2.1299284836488415e-8,0.0026831617535715744,2.140378470911418e-5,-2.1360196730420277e-8,0.0026835436457758872,2.1502965966267144e-5,-2.1489465414133864e-8,0.0026838509543692596,2.16204854567272e-5,-2.1644050147128995e-8,0.002684083542702058,2.1721810919128004e-5,-2.1777567204648777e-8,0.0026842524063363047,2.1773296218550722e-5,-2.184473901283113e-8,0.0026843798793523676,2.174584592951199e-5,-2.1806283785570994e-8,0.002684499254751002,2.1619604754520625e-5,-2.1635208600026604e-8,0.002684652615539522,2.1389936125771377e-5,-2.132488556836351e-8,0.0026848851553524585,2.1073684595338914e-5,-2.0897551736655894e-8,0.002685234761333537,2.071276203290809e-5,-2.040922349572789e-8,0.0026857179492677428,2.0370460882582813e-5,-1.9944823185549678e-8,0.002686317392056504,2.0116807827503108e-5,-1.9598553255649772e-8,0.002686979523907763,2.0004912349695077e-5,-1.9442129284992614e-8,0.0026876280837219843,2.0048512671163523e-5,-1.949455243073783e-8,0.0026881899249303247,2.0214024293583018e-5,-1.9711294931862544e-8,0.002688620249435145,2.043285656095454e-5,-2.000069039920413e-8,0.002688914623014258,2.0626936406510176e-5,-2.0258093448061607e-8,0.002689104448499188,2.073370425998305e-5,-2.0399378529749706e-8,0.0026892419298627126,2.0720641518941455e-5,-2.038044359813892e-8,0.00268938312888527,2.0587598019377475e-5,-2.0200427284762034e-8,0.002689574768650333,2.0360579482662567e-5,-1.989355990805515e-8,0.0026898465947728313,2.0081670543145843e-5,-1.9515867700560127e-8,0.0026902088053080623,1.9798500950558975e-5,-1.913120086648592e-8,0.002690653320029833,1.9555086732382298e-5,-1.8798959747669437e-8,0.0026911577108349486,1.9384918317815483e-5,-1.856468027518342e-8,0.0026916907283687213,1.9306783846534458e-5,-1.8454204375709315e-8,0.0026922183440946422,1.932346249716126e-5,-1.8471725008849565e-8,0.0026927093194704355,1.9422959535281348e-5,-1.8601349303398246e-8,0.002693139577075912,1.9581620030571056e-5,-1.8811304655394267e-8,0.0026934949979082095,1.9768275469618075e-5,-1.905959980051295e-8,0.0026937727037630865,1.9948579211282313e-5,-1.9299928293298172e-8,0.002693981227014739,2.008903816565814e-5,-1.9487102008012012e-8,0.0026941399761876384,2.0160743594175506e-5,-1.958202828436642e-8,0.002694278150304583,2.014308771745926e-5,-1.9556669135148625e-8,0.002694432839134833,2.0027814972522264e-5,-1.939951202924289e-8,0.0026946454407021474,1.9823465164879817e-5,-1.912164795226923e-8,0.002694955118743798,1.9559228013221924e-5,-1.876210188452582e-8,0.0026953885604227568,1.9285588555638527e-5,-1.8388822887488567e-8,0.002695947389646158,1.906784792733087e-5,-1.8090003030037158e-8,0.002696598361371597,1.8969529356223275e-5,-1.7951673808881418e-8,0.0026972747172651123,1.9028183067974308e-5,-1.8024976958726027e-8,0.002697894448259002,1.923482567582152e-5,-1.82982964892157e-8,0.0026983903263144058,1.953167385178543e-5,-1.8694084270395405e-8,0.0026987355972708806,1.9833273175935162e-5,-1.9097304148343785e-8,0.002698950451980689,2.005962260427181e-5,-1.9400090848296767e-8,0.0026990880859063043,2.016241265792062e-5,-1.9537100067242948e-8,0.0026992117922432905,2.013345355569334e-5,-1.949684506615443e-8,0.002699375647089422,1.999759245364751e-5,-1.9312213181089278e-8,0.002699614261285006,1.9798830819145078e-5,-1.9041939056218857e-8,0.0026999406340535597,1.9586801508834097e-5,-1.8752604336031518e-8,0.0027003488738597202,1.9406767550178475e-5,-1.850529554434705e-8,0.002700818970481651,1.9293437948365567e-5,-1.8347238284879605e-8,0.0027013220497049467,1.9267719508964687e-5,-1.8307237617048195e-8,0.002701825549465035,1.9335593552310834e-5,-1.839393020569358e-8,0.0027022980757690288,1.9488723621636194e-5,-1.8596431789749385e-8,0.002702713662607276,1.970654001153539e-5,-1.8887103092774177e-8,0.002703055157533248,1.9959543955443707e-5,-1.9226073522447195e-8,0.002703316448267429,2.0213520540267606e-5,-1.9567030088327615e-8,0.0027035033133196956,2.0434152409261692e-5,-1.986350378693203e-8,0.0027036329373279133,2.059147843487134e-5,-2.0074871352699753e-8,0.002703732317100221,2.0663912104588616e-5,-2.017172044859481e-8,0.002703835708462897,2.064176391337209e-5,-2.0140576017720335e-8,0.002703981045779454,2.0530222225002636e-5,-1.9987983238696774e-8,0.002704204955540068,2.0351562676141675e-5,-1.9743638549377247e-8,0.0027045358067139627,2.014570325430151e-5,-1.9461313750205066e-8,0.002704984805772576,1.996714707688034e-5,-1.92148397591981e-8,0.0027055368649279493,1.987574577050617e-5,-1.9085611169575944e-8,0.002706145685078051,1.9919963553539275e-5,-1.913981275734757e-8,0.0027067395839023285,2.0115935619329194e-5,-1.9399872245807953e-8,0.002707241964949466,2.0432627984345386e-5,-1.9824189275903496e-8,0.002707600561978769,2.079591363745013e-5,-2.031258854203578e-8,0.0027078094546453073,2.1114943868623784e-5,-2.0742078873478338e-8,0.0027079095029694275,2.1317626509160715e-5,-2.101494646065448e-8,0.002707967740739984,2.1374638784031844e-5,-2.1091231796414332e-8,0.0027080501916891273,2.1301291919555723e-5,-2.0991196408044287e-8,0.002708202805321296,2.1142645928582355e-5,-2.0775234408464792e-8,0.0027084452776870867,2.0954316120813476E-05,-2.0518098346501502e-8,0.002708774162575712,2.078764131629634e-5,-2.028905117718749e-8,0.002709169810830763,2.0681479161499233e-5,-2.014086685744763e-8,0.0027096034430987557,2.065925821172407e-5,-2.0105765910602988e-8,0.0027100428652535534,2.0729021182110605e-5,-2.0195268624788187e-8,0.0027104568599029245,2.088478077558925e-5,-2.0401806622108805e-8,0.0027108187654351296,2.1108546115977512e-5,-2.0701327617105837e-8,0.002711109496587725,2.1372986326076458e-5,-2.10568899223502e-8,0.002711319970232938,2.1644827851250796e-5,-2.142334211249965e-8,0.002711452708090201,2.1889050652350722e-5,-2.1753098561200446e-8,0.002711522206080725,2.207368852602839e-5,-2.2002679141313222e-8,0.002711553726110139,2.2174663760722812e-5,-2.2139227350930035e-8,0.0027115804817427185,2.2179989492678676E-05,-2.214615199321869e-8,0.0027116394229722046,2.2092790600064617e-5,-2.2027220749220564e-8,0.002711765902353902,2.1932661136871404e-5,-2.1808497541801675e-8,0.0027119875265561675,2.17349102139576e-5,-2.153749682666738e-8,0.0027123175594141167,2.154714321577371e-5,-2.1278725972971384e-8,0.002712748677090166,2.1422310197924048e-5,-2.1104340382649643e-8,0.0027132489457220156,2.1407462817094904e-5,-2.107881988743877e-8,0.002713763222707799,2.1528939153101463e-5,-2.12386510801654e-8,0.002714223539826301,2.17779711508261e-5,-2.1572526893751845e-8,0.0027145692235508168,2.210462782438041e-5,-2.201294395593925e-8,0.0027147705289971287,2.242831272043591e-5,-2.245045363896241e-8,0.002714842961370987,2.26651374401677e-5,-2.2770961975807826e-8,0.0027148417371246187,2.2759728481484883e-5,-2.2899019449501894e-8,0.0027148384646546696,2.270361220246182e-5,-2.2822761360270927e-8,0.002714894133814566,2.253147752919397e-5,-2.2588785865962968e-8,0.002715042481976411,2.230178058034443e-5,-2.227589996373742e-8,0.0027152877602880654,2.2075146022270574e-5,-2.196600255000497e-8,0.0027156119658795414,2.189977200438472e-5,-2.1724460810982776e-8,0.0027159847379479274,2.180547085498409e-5,-2.1592064109398672e-8,0.0027163717326484887,2.18037059038195e-5,-2.158495102003217e-8,0.0027167402462662167,2.189035707386248e-5,-2.169814943921391e-8,0.0027170626329077376,2.204902136902486e-5,-2.1909862774099005e-8,0.002717318577686348,2.225407880034124e-5,-2.2185536220454567e-8,0.002717496917322223,2.247368848952755e-5,-2.2481941172479003e-8,0.0027175971570509785,2.2673148098990517e-5,-2.2751819980273843e-8,0.002717630437619656,2.2818986025088118e-5,-2.2949521472554347e-8,0.002717619374232879,2.2883830547347417e-5,-2.3037639752791775e-8,0.0027175960863589687,2.2851508344780233e-5,-2.29939131948583e-8,0.002717598071460584,2.27213176952526e-5,-2.281699857396905e-8,0.0027176621709201596,2.2510260056520727e-5,-2.2529529271382513e-8,0.0027178174751903974,2.22521853070832e-5,-2.2177067543554316e-8,0.0027180784671276526,2.1993333213934358e-5,-2.1822217623532972e-8,0.0027184398641318065,2.178448760758116e-5,-2.153411268172913e-8,0.0027188745594770346,2.1670561409178468e-5,-2.137429317301222e-8,0.0027193360025531545,2.1679009178246315e-5,-2.1380826619141587e-8,0.002719766138446254,2.1809462677510583e-5,-2.1553961002315126e-8,0.00272010902935972,2.2028302823201387e-5,-2.184847600516649e-8,0.0027203278821346134,2.2272524858974438e-5,-2.2178797892063562e-8,0.0027204196799707763,2.24654419229855e-5,-2.2440404566424472e-8,0.002720419476537429,2.2541182151501676e-5,-2.2543308403420168e-8,0.002720389514355453,2.246792006086709e-5,-2.2443785172222848e-8,0.0027203968580779593,2.2257868624423312e-5,-2.2157995797522724e-8,0.0027204907531003454,2.1959156500183422e-5,-2.17509487518943e-8,0.0027206903780250197,2.1635680043467534e-5,-2.1309184877300774e-8,0.0027209858546815508,2.1346417556349277e-5,-2.0912787442917073e-8,0.002721347808163526,2.1132433058736414e-5,-2.06177932502233e-8,0.002721738732659261,2.101302770424033e-5,-2.045091160605777e-8,0.002722121842089695,2.0988064107378192e-5,-2.0412526919188236e-8,0.0027224663072612032,2.104272221321373e-5,-2.0482980964473065e-8,0.0027227497312666536,2.1152219247249398e-5,-2.0628864697851955e-8,0.0027229592187699085,2.1285646420264224e-5,-2.0808205423364215e-8,0.002723092024279769,2.140915534170127e-5,-2.0974851448080727e-8,0.002723156140984944,2.14891410191427e-5,-2.108288393508341e-8,0.002723170606461795,2.149605797679514e-5,-2.1091870780846034e-8,0.0027231647986974373,2.140913982897247e-5,-2.0973305086363463e-8,0.002723175747615389,2.122154123906254e-5,-2.0717585989345948e-8,0.0027232427667478894,2.094452464224403e-5,-2.0339705819586754e-8,0.0027233996145755853,2.0608713479640643e-5,-1.9880992713257535e-8,0.002723665721382843,2.026060892275378e-5,-1.9404470170278227e-8,0.0027240391567136266,1.9953854594028393e-5,-1.898310231028625e-8,0.002724494146855511,1.9736789731948312e-5,-1.8682948875842208e-8,0.002724984781134481,1.9639562245665583e-5,-1.8545605329381536e-8,0.002725454640230336,1.9664591180140306e-5,-1.8575060281540082e-8,0.0027258502841296267,1.978346436416098e-5,-1.8733227690675876e-8,0.0027261353236396123,1.9941877016394326e-5,-1.894645849238284e-8,0.002726301248658682,2.007230249813052e-5,-1.912271463933041e-8,0.0027263713289722514,2.011187104949174e-5,-1.9175991154117115e-8,0.002726395138448426,2.002057957804487e-5,-1.905127428909273e-8,0.002726434196991114,1.9793401183908815e-5,-1.8741182852925098e-8,0.0027265433420372793,1.946100805656228e-5,-1.828705235095383e-8,0.0027267551469351914,1.9078518607560066e-5,-1.7763682989189432e-8,0.002727073366580046,1.870747687105405e-5,-1.7254861286109985e-8,0.0027274765293817524,1.8398952985918913e-5,-1.683037011094019e-8,0.002727927993060576,1.818353027833995e-5,-1.6532295654523488e-8,0.0027283871266923043,1.8069347217504134e-5,-1.637222675764901e-8,0.0027288178204516824,1.804577514014172e-5,-1.633611041703065e-8,0.0027291931918580247,1.8089300870504294e-5,-1.6392157254153952e-8,0.0027294972768002954,1.816913014448269e-5,-1.649844892067187e-8,0.0027297251046408027,1.8251552466542002e-5,-1.660892918346911e-8,0.0027298822811575333,1.830324285422369e-5,-1.6677976929709144e-8,0.0027299846109979653,1.8294199006395545e-5,-1.6664471571957215e-8,0.0027300576392803658,1.8201084382144078e-5,-1.6536379482566312e-8,0.002730135367558795,1.801142871411346e-5,-1.6276481194654895e-8,0.0027302569950561194,1.772835840690819e-5,-1.5888815400112085e-8,0.002730460675000141,1.7374367034465673e-5,-1.540383280991605e-8,0.002730774317388617,1.6991538671805468e-5,-1.487874681986958e-8,0.002731205492992096,1.663554986253649e-5,-1.4389430286252634e-8,0.0027317346225685167,1.6362736100393333e-5,-1.401285392592605e-8,0.0027323159732417688,1.6213321694122396e-5,-1.3804237823242727e-8,0.0027328882043883593,1.6197272773221976e-5,-1.377768292956184e-8,0.002733391477933123,1.628923403372551e-5,-1.3899104903846669e-8,0.0027337846859482747,1.6435087027299024e-5,-1.4095004537599963e-8,0.002734056500043612,1.656745755001094e-5,-1.4273511480543449e-8,0.0027342271115420556,1.6624323330041047e-5,-1.4349761230979106e-8,0.002734341218625606,1.6564849873113524e-5,-1.4267579057934553e-8,0.0027344551943848145,1.6378505391622318e-5,-1.4012046808109738e-8,0.002734622289801755,1.608581588143182e-5,-1.3610682506044439e-8,0.0027348797656559553,1.5731229116967588e-5,-1.312384293400565e-8,0.0027352411979116873,1.5370487927067927e-5,-1.262758861964929e-8,0.0027356956705479342,1.5056407177672457e-5,-1.2194285616455754e-8,0.002736213318040265,1.4827270079832405e-5,-1.1876677483532097e-8,0.0027367546090290257,1.4700733657187753e-5,-1.169940036745348e-8,0.002737279962922846,1.4673731384326293e-5,-1.16586767454608e-8,0.0027377570640155654,1.4726736350655366e-5,-1.1728029197099415e-8,0.0027381648557289963,1.482989457646782e-5,-1.1866648191392354e-8,0.0027384946423735903,1.4948942426058718e-5,-1.2027544616739114e-8,0.002738749434445084,1.504985821963847e-5,-1.216399804528127e-8,0.0027389426406392242,1.5102225647928979e-5,-1.2234218749741384e-8,0.0027390967313658887,1.508190848938774e-5,-1.2205022203274869e-8,0.0027392418828776502,1.497377683520103e-5,-1.2055543818857391e-8,0.0027394140032673863,1.4774979914795335e-5,-1.1781703210623261e-8,0.0027396510558396095,1.449859754939216e-5,-1.1401214646296961e-8,0.0027399865631337478,1.4176337452192784e-5,-1.0957324233453986e-8,0.0027404401157403325,1.3857589419184968e-5,-1.0517579850249122e-8,0.002741006988407936,1.3601649709835046e-5,-1.016324470539438e-8,0.002741651946643131,1.3461932237357087e-5,-9.967701894510386e-9,0.0027423134297618586,1.3466164991872435e-5,-9.969292325791265e-9,0.0027429204127412043,1.3602045380436758e-5,-1.0151559338201335e-8,0.0027434161980657615,1.381781057785335e-5,-1.0443902181835858e-8,0.0027437775903663983,1.403930043979941e-5,-1.0744867582233018e-8,0.00274402026056172,1.4195086586668818e-5,-1.0956551973741348e-8,0.002744189707180539,1.4237647948831023e-5,-1.101361813162918e-8,0.0027443444308235623,1.4153214739371446e-5,-1.0896808965594635e-8,0.0027445391212823013,1.3960083614703103e-5,-1.063071839494125e-8,0.0027448126229584063,1.369940353501182e-5,-1.0271311517205686e-8,0.0027451820491002014,1.342296064314159e-5,-9.889353385649206e-9,0.0027456424369939375,1.3181296837245952e-5,-9.554228595057486e-9,0.0027461706266553357,1.301415215625418e-5,-9.320814951324564e-9,0.0027467319065318033,1.2944348784452829e-5,-9.220945708603037e-9,0.0027472878430236675,1.297566686114043e-5,-9.26028974478475e-9,0.0027478036209455806,1.3094521161716708e-5,-9.420488426281658e-9,0.0027482535395967965,1.3274409109423844e-5,-9.665206228210173e-9,0.002748624017387072,1.3481665911821765e-5,-9.94808846615289e-9,0.002748914201993835,1.3681151040180056e-5,-1.0220678594459335e-8,0.002749134840466332,1.3840922486020028e-5,-1.0438925666362003e-8,0.0027493062755827883,1.3935617636275572e-5,-1.0567851392877573e-8,0.0027494561978375956,1.3948871850020234e-5,-1.0584841736813426e-8,0.002749617298368145,1.3875330877006017e-5,-1.0482372438320108e-8,0.002749824478571436,1.3722661790345272e-5,-1.0270772986168708e-8,0.002750110830763187,1.3513482353169196e-5,-9.98093410823438e-9,0.00275050148863685,1.3286167853943228e-5,-9.665504146217214e-9,0.0027510052007713166,1.3092282740735443e-5,-9.395433012835077e-9,0.0027516054627253683,1.2987797311630384e-5,-9.247916863310523e-9,0.0027522560077975567,1.3016795714357577e-5,-9.283940992366734e-9,0.002752887270832192,1.3191513005764179e-5,-9.520705716744854e-9,0.0027534268750110877,1.3479307947422266e-5,-9.913575792228905e-9,0.002753827252818105,1.380820104122874e-5,-1.0363635022831688e-8,0.002754085066367869,1.4092408000508905e-5,-1.0752843979321471e-8,0.002754240423604777,1.4264671631161601e-5,-1.0988570669126968e-8,0.0027543577158397454,1.4297504261183262e-5,-1.1032801675695634e-8,0.0027545010082918016,1.4205075789953122e-5,-1.0904699986993847e-8,0.0027547161998007054,1.4030591799180186e-5,-1.0663283329901377e-8,0.0027550240194078655,1.3829185117178249e-5,-1.0384043206256625e-8,0.002755421453020713,1.3653474454465471e-5,-1.0139258403077382e-8,0.0027558875196220835,1.3544259564344984e-5,-9.985280220478687e-9,0.0027563903321073395,1.3525955479519786e-5,-9.956181654857124e-9,0.0027568938904163395,1.3605460183974092e-5,-1.0062009063794016e-8,0.002757364073561223,1.3773418082126131e-5,-1.029030898978133e-8,0.0027577735523741467,1.4007312606634619e-5,-1.0610254942756665e-8,0.002758105281049702,1.4275878871466236e-5,-1.0978721485269755e-8,0.0027583543129910426,1.4544196144378514e-5,-1.1347397176404875e-8,0.002758527884760369,1.4778781498711986e-5,-1.1669921998794136e-8,0.0027586439565762334,1.495202207329257e-5,-1.1908062139585563e-8,0.0027587286752269713,1.5045486741457556e-5,-1.2036263263573345e-8,0.002758813283168323,1.5052079543374385e-5,-1.2044567346228864e-8,0.0027589307562035483,1.497726783006875e-5,-1.1940277717807085e-8,0.0027591121400170103,1.4839587044545021e-5,-1.1748696271030066e-8,0.002759382258301141,1.4670374331164395e-5,-1.1512860934478634e-8,0.0027597543590631487,1.4512060743916354e-5,-1.1291303651724086e-8,0.002760223851724849,1.4413504572653444e-5,-1.1151667518328181e-8,0.002760762772812467,1.4420577561528979e-5,-1.1157671499436408e-8,0.002761318710750578,1.4561512390203414e-5,-1.1348746558323507e-8,0.00276182335825203,1.483046758444795e-5,-1.171717072812087e-8,0.002762213232767044,1.5178600777388183e-5,-1.2195628938203373e-8,0.0027624561618459875,1.5523579998102924e-5,-1.2670370954457433e-8,0.002762568055471419,1.577896645887847e-5,-1.3021911778698365e-8,0.002762607053442844,1.588892345218556e-5,-1.3173036202525945e-8,0.0027626477535367317,1.5847494556313896e-5,-1.3115353264673006e-8,0.002762752148698717,1.5693341116187472e-5,-1.290193227055894e-8,0.002762952717258098,1.5488291251018845e-5,-1.2617722370350503e-8,0.0027632510418019677,1.5294686690858635e-5,-1.2348462136331391e-8,0.0027636259344087917,1.5160707656321381e-5,-1.2160612203495138e-8,0.002764043924793039,1.511465428428553e-5,-1.2093523880228672e-8,0.002764468105360931,1.5165219435121325e-5,-1.2159711904489318e-8,0.0027648642771565795,1.5304554776486206e-5,-1.2348881160795975e-8,0.00276520491193756,1.551214917612753e-5,-1.2633083740317827e-8,0.0027654717421526196,1.5758859205074683e-5,-1.2972187445271782e-8,0.0027656573615933593,1.601108180866163e-5,-1.331966747011974e-8,0.0027657658412326984,1.623508143758839e-5,-1.3628693916074076e-8,0.0027658122315612965,1.6401336192405455e-5,-1.385824500072823e-8,0.0027658208032614435,1.64885423505343e-5,-1.397868551819702e-8,0.0027658220656359834,1.6486733828388484e-5,-1.397605157394892e-8,0.002765848891824904,1.639909794692674e-5,-1.3854513826157042e-8,0.0027659321674139512,1.6242317878778517e-5,-1.3636849548780435e-8,0.002766096303503263,1.6045369593808686e-5,-1.3362857387789591e-8,0.0027663548615603564,1.5846730676314847e-5,-1.308562701077851e-8,0.0027667064826740096,1.5689835021215877e-5,-1.2865361853446855e-8,0.002767131628491153,1.5616253392744474e-5,-1.2759959238257351e-8,0.002767591541465577,1.565613932350352e-5,-1.2811680422273687e-8,0.0027680318643640033,1.581672526418174e-5,-1.3031031172521404e-8,0.0027683935757452003,1.607229328191158e-5,-1.3382687188492964e-8,0.0027686315906423767,1.6362317419807093e-5,-1.3782849249591848e-8,0.0027687352106116232,1.660487394222258e-5,-1.4117902190796029e-8,0.002768738239820442,1.6725105080637398e-5,-1.4283993588661351e-8,0.0027687087079556953,1.6685822510540136e-5,-1.422947633870195e-8,0.0027687213527381837,1.650176304721841e-5,-1.3974559220475729e-8,0.0027688289978741332,1.622925799770131e-5,-1.3596908755438644e-8,0.002769048363398059,1.594031700512789e-5,-1.3195832869032236e-8,0.00276936337344147,1.569769408859385e-5,-1.2857958409166736e-8,0.002769738192543268,1.5541237964123733e-5,-1.2638499739393606e-8,0.002770130857577132,1.5485700596560033e-5,-1.2558236264973412e-8,0.0027705028435936804,1.5525121557837643e-5,-1.2609441752677153e-8,0.002770824104016123,1.5639139817898094e-5,-1.2764417778794309e-8,0.0027710750382562957,1.579871667179225e-5,-1.298325399628226e-8,0.002771246995946245,1.5970684935818387e-5,-1.322007185623983e-8,0.0027713422068845884,1.6121524757386047e-5,-1.3428307331702114e-8,0.0027713733059165882,1.622087961293736e-5,-1.3565689517813172e-8,0.0027713622519797507,1.6245092710609566e-5,-1.3599228831309594e-8,0.002771338258376431,1.6180665568763176e-5,-1.3510033682923686e-8,0.0027713344138243505,1.6027070557930125e-5,-1.3297175460530656e-8,0.0027713830768532144,1.579813080854103e-5,-1.2979564370243544e-8,0.0027715105782646693,1.5521323628688927e-5,-1.2595002061998987e-8,0.002771732045267941,1.5234636665673235e-5,-1.2195915802458485e-8,0.002772047301432447,1.4981007805899022e-5,-1.1841777298032802e-8,0.002772438752589332,1.4800880562158318e-5,-1.1588867502371844e-8,0.0027728720133379584,1.4723695349422957e-5,-1.1478455258934069e-8,0.0027733000270757664,1.475936384689405e-5,-1.1524829287417343e-8,0.0027736714038943994,1.4891518683271445e-5,-1.1705728640433002e-8,0.002773942949580787,1.5075513691583893e-5,-1.1959405556781578e-8,0.002774094298536084,1.5244784160866828e-5,-1.2193420369479077e-8,0.00277413935771806,1.5327642621168224e-5,-1.2308056164262575e-8,0.002774127095241945,1.5271382737278492e-5,-1.222991079233378e-8,0.002774127125267959,1.5063483024427677e-5,-1.1941373736095969e-8,0.002774204509579759,1.4737530909312808e-5,-1.1488800019336111e-8,0.0027743965548067697,1.43593324733346e-5,-1.0963210259393599e-8,0.0027747034985702353,1.4001351538615448e-5,-1.0464911437262635e-8,0.0027750951364715324,1.3719672259939094e-5,-1.007167416389651e-8,0.002775526051367617,1.3542754928601997e-5,-9.823200461899074e-9,0.0027759503581378433,1.3472044653032601e-5,-9.721903248961207e-9,0.0027763311030684443,1.3489110782461308e-5,-9.742655844025204e-9,0.0027766441055164853,1.356402503429683e-5,-9.84425800476849e-9,0.002776878237542247,1.3662175145885656e-5,-9.978801364369811e-9,0.00277703421910064,1.3749001999510627e-5,-1.0098250340897997e-8,0.002777123145672282,1.3793304300500613e-5,-1.0159108468992627e-8,0.002777165069365021,1.3769948799978488e-5,-1.012627712891473e-8,0.002777187380425079,1.366257139239754e-5,-9.976865115490197e-9,0.002777222427192686,1.3466379006569386e-5,-9.704079704233e-9,0.002777303795784524,1.3190508945819256e-5,-9.32046418862628e-9,0.0027774610887294536,1.285887005615791e-5,-8.859037531642524e-9,0.00277771379236086,1.250829794191475e-5,-8.370757335750319e-9,0.0027780656045215007,1.2183280121571277e-5,-7.917278908180143e-9,0.00277850108054271,1.1927476784055753e-5,-7.559280656595044e-9,0.002778986285044394,1.1773582658743977e-5,-7.3424319327927995e-9,0.0027794741941447932,1.1734065609188585e-5,-7.284473669250357e-9,0.0027799142794985264,1.1795451333347614e-5,-7.367127372081157e-9,0.00278026452821218,1.1918270864807826e-5,-7.535846169209884e-9,0.0027805032458643373,1.204384768123753e-5,-7.709138116829781e-9,0.0027806373209791524,1.2107676158375936e-5,-7.797171506191644e-9,0.002780703452468078,1.2057033090757864e-5,-7.726358310931846e-9,0.002780759925646668,1.186787561236933e-5,-7.46295792291357e-9,0.002780869728653987,1.155427127221588e-5,-7.026249491461181e-9,0.002781080498337681,1.1164946271353642e-5,-6.483757041896363e-9,0.002781409786732128,1.0767143875816982e-5,-5.928845847483083e-9,0.0027818421004138097,1.04248448157659e-5,-5.450501229246064e-9,0.0027823377629871307,1.0181105245430409e-5,-5.10879819574084e-9,0.002782847735319512,1.0050699713777196e-5,-4.924616944992279e-9,0.002783327243787241,1.0022856728953502e-5,-4.883325460734916e-9,0.0027837440651562097,1.0069594711575953e-5,-4.94624874966697e-9,0.0027840812269027786,1.015483206039899e-5,-5.063271670053514e-9,0.0027843360787357524,1.024152532104462e-5,-5.1827770304128115e-9,0.002784517883012557,1.0296305457586499e-5,-5.258162067166841e-9,0.0027846452783812006,1.0292292461840592e-5,-5.251838399917288e-9,0.002784744078074569,1.0211053940810853e-5,-5.138017383006263e-9,0.0027848451722726508,1.004447040455388e-5,-4.905319130341186e-9,0.002784981869337182,9.796760182050914e-6,-4.559563393831464e-9,0.0027851859388087303,9.486172936094592e-6,-4.1260871182282976e-9,0.0027854820195520776,9.145128566965864e-6,-3.649923337373014e-9,0.0027858809685050146,8.817212839408479e-6,-3.1916519447886542e-9,0.002786374004344479,8.549858663854469e-6,-2.8172810988601715e-9,0.002786930516713693,8.38311526590999e-6,-2.5826759770245543e-9,0.0027875021251903167,8.337323332657525e-6,-2.5164033042951878e-9,0.002788033442730153,8.404341144331321e-6,-2.6074358965324996e-9,0.0027884768663511967,8.546587963184419e-6,-2.8036922561923524e-9,0.002788806444515096,8.705359435428541e-6,-3.023511191011914e-9,0.002789025898946628,8.816155454370437e-6,-3.1769693624562517e-9,0.00278916808580964,8.826174280013064e-6,-3.1902919454504053e-9,0.0027892861494492062,8.708654066453408e-6,-3.0259083522581603e-9,0.002789439024007953,8.46996585135858e-6,-2.6924102085292982e-9,0.0027896754169786063,8.14743898998842e-6,-2.2415918566646356e-9,0.002790020989298804,7.798481749683577e-6,-1.7533598997337004e-9,0.0027904727105389194,7.484380983397801e-6,-1.3132102122914294e-9,0.0027910019465777094,7.254182931369871e-6,-9.89761674395551e-10,0.0027915644996498075,7.133899378245067e-6,-8.196308089392246e-10,0.002792113334641582,7.123723332179867e-6,-8.034153427098901e-10,0.0027926094573086616,7.202432983697204e-6,-9.117101623954198e-10,0.002793028233302452,7.335726174669705e-6,-1.0966748720526548e-9,0.0027933609484635524,7.4849003149403414e-6,-1.3041707157630382e-9,0.002793613109513304,7.61360949860106e-6,-1.4832721372423023e-9,0.002793801331699417,7.692125726622039e-6,-1.5923023708007069e-9,0.0027939501157332436,7.699650544928369e-6,-1.602113739190793e-9,0.0027940890449749374,7.62559574208575e-6,-1.4978805430814948e-9,0.0027942502546082484,7.47061613566804e-6,-1.2805101597583769e-9,0.002794465545354246,7.247708832349798e-6,-9.681400023267961e-10,0.0027947623730721393,6.982972729165114e-6,-5.97180208495864e-10,0.002795158293619206,6.714815163187818e-6,-2.2122179168722028e-10,0.0027956544044971682,6.489842552957791e-6,9.465788350054435e-11,0.0027962298905296608,6.353985618709735e-6,2.862426270105938e-10,0.0027968413003591638,6.339329590931643e-6,3.085594249353236e-10,0.002797430023565606,6.450574770211097e-6,1.5483829055035215e-10,0.0027979381407812233,6.657939065789282e-6,-1.33481326751483e-10,0.0027983274370340884,6.9023050870562255e-6,-4.73865860969561e-10,0.0027985929487883057,7.112534229482264e-6,-7.668664513252449e-10,0.0027987644712778367,7.227889781129287e-6,-9.274873085756629e-10,0.002798895846497114,7.215922522318092e-6,-9.102130577481535e-10,0.0027990476214502418,7.07954168609196e-6,-7.189055791823305e-10,0.002799270159329704,6.8528184660678055e-6,-4.0097058487487015e-10,0.0027995921098042825,6.589150394962895e-6,-3.089155205840986e-11,0.0028000160559371254,6.346543838175632e-6,3.10246237176008e-10,0.0028005208861621384,6.174077528739478e-6,5.536306075559972e-10,0.002801069138807742,6.102332622183427e-6,6.561508599671992e-10,0.002801616887775129,6.139228531226112e-6,6.063570042587458e-10,0.0028021235424224794,6.271340195284573e-6,4.227738196672006e-10,0.0028025593261495505,6.469448209654452e-6,1.462323628969768e-10,0.002802909202716053,6.696171451931554e-6,-1.7081556781815749e-10,0.0028031732715659992,6.913472533175175e-6,-4.748902722777455e-10,0.002803364595060627,7.088522312131387e-6,-7.198047146353163e-10,0.002803505761944061,7.197381055746142e-6,-8.718919784335805e-10,0.002803625279954858,7.226791581760613e-6,-9.125259098952547e-10,0.0028037543398572442,7.1748236665111314e-6,-8.389867042693141e-10,0.0028039239008144736,7.051055423278122e-6,-6.646711695244907e-10,0.0028041616337651505,6.8765748079719594e-6,-4.190817695600791e-10,0.0028044880974484863,6.6835013555270844e-6,-1.471822583423747e-10,0.0028049117634366405,6.5130028002482435e-6,9.333211200818222e-11,0.002805423407949294,6.410183518830969e-6,2.391581525590211e-10,0.0028059919682429956,6.414458134729057e-6,2.348761811647254e-10,0.0028065656354558507,6.545964496883274e-6,5.204916047160679e-11,0.0028070820322286597,6.792467980851788e-6,-2.923256812302114e-10,0.0028074875111325586,7.1049452709561795e-6,-7.295484999982558e-10,0.002807758398439204,7.408801568743201e-6,-1.1549479735996095e-9,0.002807912309953183,7.629016879277494e-6,-1.4632184010996237e-9,0.0028080018600268285,7.717209899264664e-6,-1.5864308892715257e-9,0.00280809416469148,7.666574793887121e-6,-1.5149558263742769e-9,0.0028082476851966315,7.509156810078956e-6,-1.293585924107478e-9,0.0028084967768828226,7.300588647517751e-6,-1.0001414868267381e-9,0.002808847262739549,7.101610708252468e-6,-7.196587372359342e-10,0.0028092805508106752,6.9632211202788204e-6,-5.236849754708002e-10,0.0028097620700029556,6.9179843415002716e-6,-4.5813084509820613e-10,0.0028102506436204987,6.977109497128568e-6,-5.3909443895529e-10,0.002810706875116468,7.1318269763759485e-6,-7.546337294862254e-10,0.002811099653827845,7.357649721019065e-6,-1.0705937383009498e-9,0.0028114103186717213,7.620360090645017e-6,-1.4389400470211245e-9,0.0028116342841793644,7.882562522965005e-6,-1.8069960493090511e-9,0.002811780336556491,8.109700436176797e-6,-2.1259981185286337e-9,0.0028118681577567702,8.274759500587497e-6,-2.3578054290919355e-9,0.002811924804212133,8.361260065829955e-6,-2.479149299892737e-9,0.002811980892546883,8.36454527445245e-6,-2.4834224476780367e-9,0.0028120670235339054,8.291786877210306e-6,-2.380638941437992e-9,0.002812210545938763,8.161235186498023e-6,-2.196355734372293e-9,0.0028124324269317093,8.000947582996757e-6,-1.9699141477060387e-9,0.0028127438794841287,7.846806856187975e-6,-1.7517213264542863e-9,0.002813142552806622,7.739137129470781e-6,-1.5985536553676695e-9,0.002813608808015108,7.716755992795095e-6,-1.5652027889490953e-9,0.002814103934259319,7.807540942446503e-6,-1.6911479779159391e-9,0.0028145735374341036,8.016337002635303e-6,-1.9834359406417603e-9,0.0028149593679730016,8.31455967856922e-6,-2.4019489267911616e-9,0.0028152192752681693,8.639495206008205e-6,-2.858393347499628e-9,0.002815347491924279,8.910155826623826e-6,-3.238690313459153e-9,0.0028153820992645705,9.056877288906372e-6,-3.444739279219633e-9,0.0028153917225959865,9.049565373279847e-6,-3.434183721829044e-9,0.0028154478006963196,8.907688181128402e-6,-3.234368005566589e-9,0.0028155987912163055,8.687766600877536e-6,-2.924641731063571e-9,0.002815858796138938,8.458997654451106e-6,-2.6021037702235526e-9,0.0028162112125574854,8.281283974367032e-6,-2.3508457347741356e-9,0.002816620244870729,8.193045999255578e-6,-2.2249439851131193e-9,0.002817043196425516,8.208464494140208e-6,-2.2446042949535775e-9,0.0028174399451113383,8.320583317078408e-6,-2.4004250119473305e-9,0.0028177788955663485,8.506869283546043e-6,-2.661052702041974e-9,0.0028180401266746525,8.735196722855205e-6,-2.9814634943747566e-9,0.002818216618208338,8.969546300902432e-6,-3.3109360361838935e-9,0.0028183139820533165,9.175233421802618e-6,-3.600466281728827e-9,0.0028183488727125663,9.323413400084446e-6,-3.809217986798757e-9,0.0028183463049050498,9.39458305470024e-6,-3.90954465122841e-9,0.0028183361606477814,9.380837778898787e-6,-3.890194719106599e-9,0.002818349263122649,9.286671155840795e-6,-3.757406772881838e-9,0.002818413492033781,9.128333531433483e-6,-3.53396419516556e-9,0.0028185502773691137,8.932029054209705e-6,-3.2566550844126667e-9,0.0028187715560268277,8.731181934898563e-6,-2.972477812164968e-9,0.0028190771735186674,8.562773878565448e-6,-2.7335615331514525e-9,0.002819452811212173,8.462515809163019e-6,-2.5904087552382515e-9,0.0028198689659859892,8.458399189389392e-6,-2.5827732791303527e-9,0.0028202823760493027,8.562461789260582e-6,-2.7279409911836136e-9,0.0028206420530898016,8.76203294867925e-6,-3.0082465413739715e-9,0.0028209016970371353,9.01428419331315e-6,-3.3633026041725225e-9,0.0028210372630595158,9.250300643214355e-6,-3.695772409602383e-9,0.0028210625026776777,9.393515552182452e-6,-3.897503770163006e-9,0.0028210309762700552,9.388841811821506e-6,-3.890735771174717e-9,0.0028210180397079793,9.227581680220804e-6,-3.6632088806019304e-9,0.002821090430482207,8.951597895319539e-6,-3.273910330543877e-9,0.002821281364602508,8.633748034245999e-6,-2.8253997402826636e-9,0.0028215841712364,8.34816387734706e-6,-2.4219756103304343e-9,0.0028219629940235817,8.147536600047868e-6,-2.1378075495426764e-9,0.0028223698510740254,8.054819543764938e-6,-2.0053439921519466e-9,0.002822758897752516,8.06627654451556e-6,-2.0195926662397562e-9,0.0028230947143213737,8.159510301354147e-6,-2.149322407764077e-9,0.0028233554406812823,8.301852148391436e-6,-2.348744115947894e-9,0.00282353282593384,8.45708600749022e-6,-2.5668892800147934e-9,0.002823630975521782,8.590367413029983e-6,-2.754534233626674e-9,0.002823664602469181,8.671985233133684e-6,-2.869577271902303e-9,0.0028236568220320374,8.680413957217215e-6,-2.881448031847007e-9,0.002823636368151626,8.604700974308771e-6,-2.77454826352887e-9,0.00282363417253053,8.446003171394267e-6,-2.55042869198829e-9,0.0028236793809163405,8.217892940976991e-6,-2.2281801649158934e-9,0.0028237951897224314,7.945063459574405e-6,-1.8425677017566835e-9,0.0028239951055245996,7.660380146708828e-6,-1.4398777251617586e-9,0.0028242801645024245,7.40050743300998e-6,-1.0718072754261351e-9,0.0028246375107151937,7.200455492493439e-6,-7.878393942073073e-10,0.002825040666646605,7.087470503711195e-6,-6.266431600801484e-10,0.002825451877475943,7.074723084324243e-6,-6.071044899922806e-10,0.00282582713879414,7.155466286875476e-6,-7.199525343266866e-10,0.0028261246005233435,7.299190176080726e-6,-9.222045847808211e-10,0.00282631625064073,7.452589468357933e-6,-1.138486076576167e-9,0.002826400528199012,7.5487591099507736e-6,-1.2740885116638722e-9,0.002826410104662908,7.52604944408374e-6,-1.2417419852670848e-9,0.0028264072933222306,7.3519489307029926e-6,-9.95445629992879e-10,0.002826464019776748,7.0400481913062265e-6,-5.543990372405558e-10,0.0028266339859106117,6.6478080126638315e-6,2.5428477574195166e-13,0.002826932486316038,6.254009951919073e-6,5.573195548555597e-10,0.002827334926475173,5.928910433440534e-6,1.017639188279871e-9,0.0028277917797869642,5.7135131054699254E-06,1.3232757200131534e-9,0.002828248468891538,5.614983691413445e-6,1.4639603114758254e-9,0.0028286601533812237,5.614073569452187e-6,1.4666632447107474e-9,0.0028289983913868215,5.676607424183315e-6,1.379463686399024e-9,0.002829251626940915,5.763552361016194e-6,1.257411163440545e-9,0.0028294226533315623,5.8378051497912814e-6,1.1529709034080448e-9,0.002829525391442807,5.868127420486881e-6,1.1104318965864509e-9,0.002829581983388046,5.831461400637911e-6,1.162556397104102e-9,0.0028296201636700017,5.714584370675174e-6,1.3281613329217984e-9,0.0028296704970861516,5.515438234757098e-6,1.610201352537694e-9,0.0028297631021037386,5.243980536622576e-6,1.9945855887171813e-9,0.0028299236827314406,4.922012339098648e-6,2.4504737826893106e-9,0.0028301691569658544,4.581263003820374e-6,2.933023335426697e-9,0.0028305037217332307,4.259296600010102e-6,3.3891673170969797e-9,0.002830916459461489,3.993408191619676e-6,3.766190530193445e-9,0.0028313814792820546,3.8133369601973606e-6,4.021977064794002e-9,0.0028318611572783646,3.7341893056990802e-6,4.135010647324168e-9,0.0028323123871055148,3.7511839643312496e-6,4.1118687449955575e-9,0.002832695135207755,3.837639289960757e-6,3.990171251095755e-9,0.0028329821184355144,3.947374265896908e-6,3.835263147375323e-9,0.0028331678013638183,4.02244680576321e-6,3.7292680413861366e-9,0.002833273994081028,4.0063226672806816e-6,3.752376733977591e-9,0.0028333486086335536,3.8605677828823e-6,3.959124752584863e-9,0.0028334548656437477,3.5800588386143807e-6,4.356815088093346e-9,0.0028336519146150165,3.199196575199989e-6,4.896744085319297e-9,0.002833973775156948,2.7832242943678695e-6,5.486528461109836e-9,0.002834417043797699,2.4062456980927005e-6,6.021220646396547e-9,0.002834944056387233,2.1262318186002894e-6,6.418661302859258e-9,0.0028354988875670265,1.969203084860813e-6,6.641874660667108e-9,0.0028360266300474844,1.927913656213458e-6,6.70098348403756e-9,0.0028364871221820765,1.971420933258333e-6,6.639725869469694e-9,0.0028368601012207684,2.0580493155069e-6,6.517137481949485e-9,0.002837143798391918,2.146084523307919e-6,6.392404569592256e-9,0.0028373505649315713,2.200262702481213e-6,6.315634711039505e-9,0.0028375022225614853,2.194747581939334e-6,6.323580516384682e-9,0.002837626278744532,2.1141632193792574e-6,6.438118184879123e-9,0.002837752983195648,1.9539503821470446e-6,6.665710573780227e-9,0.002837912672316925,1.720635357079953e-6,6.997035491702147e-9,0.0028381327625960472,1.4319563558805509e-6,7.406851308263388e-9,0.0028384339774149996,1.1162175023410766e-6,7.85496469067567e-9,0.0028388259645027686,8.098741102245192e-7,8.289678744088075e-9,0.0028393032769971362,5.525056854996284e-7,8.654901931555912e-9,0.002839843390194472,3.791424868007549e-7,8.900980702450035e-9,0.0028404085467517684,3.1124743347196077e-7,8.997452128487504e-9,0.002840952357445899,3.4901622113740223e-7,8.943973785765355e-9,0.002841430295633725,4.68119085106208e-7,8.775000509935415e-9,0.0028418113735728568,6.229385663401742e-7,8.555251582211405e-9,0.0028420874546643236,7.562180083845292e-7,8.366042862071104e-9,0.002842277186103206,8.12928826496597e-7,8.28557717186452e-9,0.0028424229792514757,7.548341939316745e-7,8.368220742089385e-9,0.0028425812098529235,5.718152359385369e-7,8.628388634888865e-9,0.002842807562695609,2.864119988032696e-7,9.034090564959052e-9,0.0028431411958904427,-5.075784686922267e-8,9.513435790152513e-9,0.002843592795816794,-3.745954342178899e-7,9.973922781259542e-9,0.00284414136383234,-6.243541079214667e-7,1.0329162879331443e-8,0.0028447415293055118,-7.608178796241404e-7,1.0523290713005752e-8,0.0028453383289325533,-7.7516339165713e-7,1.0543619193061516e-8,0.0028458829874018483,-6.870431643594794e-7,1.0418002465363624e-8,0.002846343745861855,-5.347045473568402e-7,1.0200845400060194e-8,0.002846709393672464,-3.626758819940621e-7,9.955588339874181e-9,0.0028469868913886353,-2.1168976993434465e-7,9.740321417669294e-9,0.0028471961486281772,-1.1277953739782726e-7,9.5993194186896e-9,0.002847364587199702,-8.507667609072321e-8,9.559858106078426e-9,0.0028475227795878447,-1.357926730672906e-7,9.63217247842041e-9,0.0028477012760148397,-2.6098770439544055e-7,9.810568108142715e-9,0.0028479280799226956,-4.4634904759132186e-7,1.0074568307647262e-8,0.002848226026012085,-6.678989044547163e-7,1.038996413878128e-8,0.002848609485491815,-8.932110104100397e-7,1.0710570698878495e-8,0.0028490803883028048,-1.08421348997412e-6,1.0982211998329638e-8,0.0028496244808374053,-1.2027066912850638e-6,1.1150545368581883e-8,0.0028502098087099434,-1.2189535497820264e-6,1.117325646547346e-8,0.0028507899812964224,-1.1218694346857707e-6,1.1034558640475975e-8,0.0028513137786630493,-9.269848437980516e-7,1.0756559639854864e-8,0.0028517396184371633,-6.772541783626091e-7,1.040045521595228e-8,0.002852049745857075,-4.3383629160081065e-7,1.0053410747715433e-8,0.002852257667938162,-2.588555502582333e-7,9.80397507841194e-9,0.0028524050176591494,-1.966808876808624e-7,9.715373390453078e-9,0.002852549088431962,-2.610733914805113e-7,9.807193562515353e-9,0.002852746181827145,-4.3236107396414083e-7,1.0051389365553414e-8,0.002853036583500799,-6.643300296990387e-7,1.0382115635541902e-8,0.0028534351813685878,-8.975086395893872e-7,1.0714629219647167e-8,0.002853929365115319,-1.0745790729053187e-6,1.096719853065988e-8,0.0028544839144717562,-1.1539281212368752e-6,1.1080391616891132e-8,0.002855051068247713,-1.1181731669905117e-6,1.1029268499031812e-8,0.002855582768565016,-9.75875355579879e-7,1.0825912624788529e-8,0.0028560415652221956,-7.566392276976092e-7,1.051252610395587e-8,0.0028564073406055135,-5.018534207721013e-7,1.0148247915315251e-8,0.002856678785926064,-2.5444286344771827e-7,9.794490668368394e-9,0.002856870524742683,-5.058886026101649e-8,9.503046426891806e-9,0.002857007914873242,8.512852095070961e-8,9.30908662963937e-9,0.0028571215454132087,1.412895044493818e-7,9.22891211852966e-9,0.002857242681589101,1.1896856287060092e-7,9.260923881079643e-9,0.0028573999738171854,3.009713316077348e-8,9.38800232202608e-9,0.0028576170512156747,-1.0428600410014353e-7,9.580041432918065e-9,0.002857910332403342,-2.5568229132032263e-7,9.796312889070212e-9,0.002858286478980994,-3.900984786692505e-7,9.988259642955946e-9,0.002858739364701392,-4.712582429285285e-7,1.0104059717794627e-8,0.00285924729195101,-4.661759280679692e-7,1.0096572400747676e-8,0.002859772355326098,-3.5361998523694726e-7,9.935435750221926e-9,0.0028602647405304277,-1.3415193562808552e-7,9.621442048735044e-9,0.0028606740590430527,1.6248167838119398e-7,9.197139078236257e-9,0.0028609662384943444,4.78853899398024e-7,8.74468806781909e-9,0.002861139063409164,7.44255750862787e-7,8.365236229068475e-9,0.002861226934688806,8.984655386532225e-7,8.144871394043985e-9,0.002861290126468282,9.137233591571715e-7,8.123196247026203e-9,0.0028613933351704225,8.035260371148903e-7,8.280824203979028e-9,0.002861584483698411,6.150660520729815e-7,8.55027050948895e-9,0.0028618827041504077,4.113854839993796e-7,8.841474477305177e-9,0.0028622775767180642,2.524378755512151e-7,9.068802254899132e-9,0.0028627363987564036,1.8135003911035153e-7,9.17060221962431e-9,0.0028632149243848224,2.1781405590917407e-7,9.118624569170666e-9,0.002863668101326738,3.577669060595684e-7,8.918529212376947e-9,0.0028640588395250108,5.775725882547501e-7,8.603998240368662e-9,0.002864363874395403,8.409557603452859e-7,8.226895323903023e-9,0.002864576317683268,1.1070964706719793e-6,7.845700967819764e-9,0.0028647049562361203,1.3383042800297684e-6,7.514484405755572e-9,0.0028647709664122996,1.505912805444349e-6,7.274393180785887e-9,0.0028648031644739605,1.5936658590036488e-6,7.148753085068565e-9,0.0028648329825001757,1.5985844872876452e-6,7.141820831205116e-9,0.0028648901078107145,1.5298597346848266e-6,7.240401923975936e-9,0.0028649992237887115,1.40662889791498e-6,7.417073022953166e-9,0.002865177723667968,1.255395999935133e-6,7.63388684017037e-9,0.002865433962330402,1.1074017364182093e-6,7.84611558047985e-9,0.0028657656359532793,9.9575507730559e-7,8.006322067477023e-9,0.002866158158739561,9.517297115380463e-7,8.069644697438206e-9,0.0028665835690910722,9.99411061201828e-7,8.001485323787432e-9,0.0028670015032235038,1.1483302317519537e-6,7.788115041184415e-9,0.002867364559705957,1.3852827350377053e-6,7.448455109494122e-9,0.0028676299233594852,1.6691386030128764e-6,7.041536345565719e-9,0.0028677759678411305,1.9347439744128324e-6,6.660862146080923e-9,0.0028678167309223023,2.1103546939003207e-6,6.409323306547407e-9,0.0028678034788689843,2.144698261273195e-6,6.3603400593137696e-9,0.0028678078376921227,2.029720577821034e-6,6.525302617003996e-9,0.0028678938191672595,1.8044434865642015e-6,6.8481776203151215e-9,0.002868094666236441,1.5376263800915127e-6,7.230454856236507e-9,0.002868405913933894,1.3009574329347206e-6,7.569539411050057e-9,0.0028687938676968555,1.1474463535309566e-6,7.789602788927635e-9,0.002869210861589051,1.1019524188615657e-6,7.855057338570128e-9,0.002869609334325944,1.1622461307956396e-6,7.769013139741857e-9,0.002869951231852881,1.3057241037395412e-6,7.563711223382599e-9,0.002870212677215331,1.4976923875705954e-6,7.288744102079043e-9,0.002870385194690064,1.699062535904297e-6,7.000097817318875e-9,0.002870474725317542,1.8727935944983242e-6,6.75093165594071e-9,0.002870499135165648,1.988954290042755e-6,6.584275013804583e-9,0.00287048464138741,2.0282382639665136e-6,6.527917653518532e-9,0.0028704616140799583,1.9837809533528225e-6,6.5917562221991524E-09,0.0028704602549171655,1.8612665906276216e-6,6.767640226165102e-9,0.002870506668811975,1.6774673462495774e-6,7.031500508441279e-9,0.0028706197689758587,1.457604560662817e-6,7.34716419913411e-9,0.0028708091655566463,1.2320673332684813e-6,7.671058717135242e-9,0.0028710739127016565,1.0328358362055718e-6,7.957305852913069e-9,0.0028714019528153388,8.896734068155328e-7,8.163146833604354e-9,0.0028717702214416355,8.259448522978371e-7,8.254940922690583e-9,0.0028721457505871515,8.537612288983449e-7,8.215181934479207e-9,0.0028724887943640687,9.684630238408015e-7,8.050494120702066e-9,0.0028727594429303256,1.1436800035455436e-6,7.798780069504199e-9,0.0028729285817180555,1.3300651297795598e-6,7.531028042365649e-9,0.0028729915695690435,1.462263368762386e-6,7.341218977444032e-9,0.002872978448805743,1.4772429274966988e-6,7.3198920236120235e-9,0.002872951252863827,1.339998687991839e-6,7.517195289934864e-9,0.0028729836176172785,1.0630678713911078e-6,7.914951705548082e-9,0.0028731308183241877,7.051695488262558e-7,8.42876029911416e-9,0.0028734078884947605,3.473260311513201e-7,8.942348496380804e-9,0.0028737882087745852,6.114666054513867e-8,9.353047158655345e-9,0.002874219668384876,-1.1272126322969022e-7,9.602619303010073e-9,0.0028746456433421104,-1.6888577001482716e-7,9.683354937474298e-9,0.002875020314855133,-1.291094150016922e-7,9.626438926383505e-9,0.00287531548780091,-3.018828501717634e-8,9.484597230108128e-9,0.0028755210579180877,8.668647485398011e-8,9.31689120875924e-9,0.0028756422882183752,1.8328829012502568e-7,9.178200849892443e-9,0.002875696134402279,2.288312141503027e-7,9.112800066087184e-9,0.002875707547399061,2.025805089596482e-7,9.150562494597015e-9,0.002875705846174958,9.52630333672185e-8,9.304873938120105e-9,0.0028757210926035038,-9.052120703341189e-8,9.57200496741452e-9,0.0028757804866157105,-3.4091383411167794e-7,9.932003851136088e-9,0.002875904942563708,-6.325855214179894e-7,1.035130470799866e-8,0.0028761062305016523,-9.357358663929467e-7,1.0787070613173603e-8,0.002876385114451254,-1.2180331505464313e-6,1.1192851470911072e-8,0.002876730724811969,-1.4490859095561661e-6,1.1524975361779462e-8,0.002877121258656621,-1.6050876840491572e-6,1.174919121731711e-8,0.002877526072604426,-1.6732673197605107e-6,1.1847070930135468e-8,0.0028779092664162932,-1.6557908710847165e-6,1.1821668584018685e-8,0.0028782350578963945,-1.5726563757144414e-6,1.1701746720225946e-8,0.002878475324870978,-1.4624372605699738e-6,1.1542873713258664e-8,0.0028786189483200725,-1.3787231489666856e-6,1.1422265207849368e-8,0.002878680701003052,-1.3798468481290254e-6,1.1423915368175761e-8,0.002878704787159146,-1.5113471987390404e-6,1.1613291349036044e-8,0.002878756903957089,-1.785757177929549e-6,1.2008265758302951e-8,0.002878902862502164,-2.1705939820080316e-6,1.2561939708202041e-8,0.0028791817969540797,-2.5954920375929927e-6,1.3173007501556022e-8,0.002879589402551466,-2.9784185508799e-6,1.3723483959784089e-8,0.0028800817252932734,-3.2567032182663314e-6,1.4123284543802338e-8,0.0028805956227206074,-3.4055518723271702e-6,1.4336808076009957e-8,0.00288107208392016,-3.4376003397330977e-6,1.4382284035630344e-8,0.0028814710783001875,-3.3898579305011365e-6,1.43129954824349e-8,0.0028817755563885373,-3.3082580675083343e-6,1.4195060433588716e-8,0.002881988308033612,-3.2361154678533363e-6,1.4090836012607044e-8,0.0028821262129773463,-3.207791533507497e-6,1.4049812193983022e-8,0.0028822147082530657,-3.246215519180097e-6,1.4105033781258338e-8,0.0028822834027905776,-3.36241780936278e-6,1.4272395487930903e-8,0.002882362616150177,-3.5558741422002764e-6,1.4551103140709693e-8,0.0028824803465096684,-3.815258525621979e-6,1.4924750790070064e-8,0.002882659335415783,-4.119686711663455e-6,1.5363142882474208e-8,0.0028829141547347752,-4.440809412356523e-6,1.5825359058537653e-8,0.0028832486380844327,-4.746136382797398e-6,1.626457640078978e-8,0.0028836543274357697,-5.003595714935634e-6,1.6634632356475022e-8,0.0028841105948802857,-5.186858658952929e-6,1.6897660746955784e-8,0.0028845868380229104,-5.280659678729527e-6,1.703172244416492e-8,0.0028850468268388713,-5.285119178421869e-6,1.703703042675255e-8,0.0028854548808014517,-5.2180136555174015e-6,1.693924927655556e-8,0.00288578318588404,-5.1141539701945615e-6,1.678862920440044e-8,0.0028860192930803964,-5.021207939658294e-6,1.6653980349342108e-8,0.0028861723562649236,-4.991365507388845e-6,1.6610608238690897e-8,0.0028862757956466495,-5.06888921218822e-6,1.6722303008240677e-8,0.0028863833910300974,-5.2754810860775145e-6,1.7020219754766915e-8,0.002886556622110814,-5.598336802918629e-6,1.7485702072118628e-8,0.0028868448006271175,-5.988001271290007e-6,1.804727106737048e-8,0.0028872654738177545,-6.371171534302883e-6,1.8599132347397268e-8,0.002887795844354059,-6.675623117016277e-6,1.903710691825924e-8,0.0028883812762736244,-6.855447025490349e-6,1.9295003604406827e-8,0.0028889563468819752,-6.903610854021034e-6,1.9362747686658358e-8,0.0028894665800328696,-6.847559620219423e-6,1.9280059028761153e-8,0.0028898810668172878,-6.734011844686922e-6,1.911450684067196e-8,0.0028901940052642504,-6.612662324206851e-6,1.893795127279494e-8,0.0028904191547270935,-6.524988204859821e-6,1.881034874825922e-8,0.002890582222841485,-6.4992181867616665e-6,1.8772471855239283e-8,0.0028907142743236822,-6.549601240706169e-6,1.8844849350322546e-8,0.0028908470537224477,-6.677663335062472e-6,1.9029580088897277e-8,0.0028910098168515577,-6.87394958687946e-6,1.9312855656179486e-8,0.0028912269035187145,-7.1197167658875545e-6,1.966742957177217e-8,0.0028915154465618195,-7.388703555439692e-6,2.0055217248474415e-8,0.002891882983346302,-7.649501334948221e-6,2.0430764834169687e-8,0.002892325261621495,-7.869140909601243e-6,2.0746451553512368e-8,0.002892825069667161,-8.018140622490618e-6,2.095977025193972e-8,0.0028933531569161294,-8.0765493987099e-6,2.1042023401707183e-8,0.0028938720607829473,-8.039749741569616e-6,2.0986676926427616e-8,0.002894342905333149,-7.92219781746215e-6,2.081475472290096e-8,0.0028947341280570267,-7.757261613370963e-6,2.0574609101836252e-8,0.0028950300744023127,-7.592178937176516e-6,2.033462657209387e-8,0.0028952370056188714,-7.47855706718128e-6,2.0169463592427875e-8,0.0028953844081573035,-7.460137255342665e-6,2.0142316838205095e-8,0.00289552034348127,-7.560525475110968e-6,2.0287169809216575e-8,0.0028957008077851775,-7.774273461944861e-6,2.0595931401456922e-8,0.0028959747760086865,-8.06484752748952e-6,2.1015565228355683e-8,0.0028963687909720668,-8.37202856618837e-6,2.1458840848969644e-8,0.002896876822197008,-8.628384556733143e-6,2.1828161536226112e-8,0.002897460687328443,-8.779917072525279e-6,2.2045408873836965e-8,0.0028980621551318326,-8.802502597728348e-6,2.207573173944743e-8,0.002898621746734977,-8.706920074860234e-6,2.1934852495291796e-8,0.0028990957821008693,-8.531279911183452e-6,2.1678125082780306e-8,0.002899465167343782,-8.326114196731398e-6,2.137891611386844e-8,0.0028997348041497496,-8.13959047569529e-6,2.110712912790612e-8,0.002899926963249216,-8.007836040779991e-6,2.091513975889782e-8,0.002900073067994656,-7.951291908204955e-6,2.0832502054918495e-8,0.002900206831484279,-7.975306429587075e-6,2.0866828269500727e-8,0.002900359629928538,-8.072622529241776e-6,2.1007425546019428e-8,0.0029005576921144888,-8.226159990315293e-6,2.1229360644075667e-8,0.0029008202589749987,-8.411462892954981e-6,2.1497037476612273e-8,0.0029011579526491515,-8.59892006014462e-6,2.176744153154923e-8,0.0029015709907129882,-8.756361710375036e-6,2.1993920303424827e-8,0.002902047505571332,-8.85279154909494e-6,2.2131593765595492e-8,0.0029025628872768883,-8.863671727157463e-6,2.2145000075912374e-8,0.0029030815052825793,-8.777345014016352e-6,2.2017385091665053e-8,0.0029035620496829224,-8.600986341434939e-6,2.175931513310784e-8,0.002903966637114285,-8.363362576374002e-6,2.141266869690318e-8,0.0029042717781266334,-8.111634884846253e-6,2.1045980547935134e-8,0.002904477372654277,-7.901280532790563e-6,2.073978444425112e-8,0.002904609628244343,-7.781372369153714e-6,2.0565217145761693e-8,0.002904715791276944,-7.780057503835996e-6,2.056294239996993e-8,0.0029048518634546975,-7.895457374774159e-6,2.0729997122619613e-8,0.0029050672122561154,-8.095212921731798e-6,2.1019213111936452e-8,0.0029053908949938285,-8.324795261790677e-6,2.1351336711916632e-8,0.002905823673533291,-8.52201545814966e-6,2.1636089845854755e-8,0.0029063379482547036,-8.63355664871243e-6,2.1796127132877224e-8,0.00290688567731947,-8.628754999473182e-6,2.178700899956975e-8,0.002907411886688896,-8.506448804640417e-6,2.1607149038605026e-8,0.002907869313118284,-8.29292031099503e-6,2.1294847433827952e-8,0.002908229337953015,-8.032291094367549e-6,2.0914343210019756e-8,0.002908486197412823,-7.773494661513888e-6,2.0536855496935417e-8,0.0029086544808403334,-7.5585686559262325e-6,2.0223523711567358e-8,0.0029087623904295403,-7.415402414785589e-6,2.001484051067057e-8,0.002908843981353781,-7.35553482324306e-6,1.9927459583560743e-8,0.002908932726752054,-7.375649943051864e-6,1.9956406208574644e-8,0.0029090572536835126,-7.460809532075294e-6,2.0079817615799907e-8,0.002909238952715364,-7.5879228762615555e-6,2.0264014865399943e-8,0.0029094906884145105,-7.728775534689363e-6,2.0467914700593435e-8,0.0029098158523242937,-7.852662044244406e-6,2.064685157630933e-8,0.002910207338650096,-7.929175550194102e-6,2.0756624253538985e-8,0.0029106466203267355,-7.931911576665453e-6,2.0758877958416994e-8,0.002911103814377557,-7.843588459108618e-6,2.062855490190973e-8,0.0029115402023730556,-7.66224497593975e-6,2.0362916420013977e-8,0.002911914696322001,-7.406730952055019e-6,1.998953139422466e-8,0.0029121945161994208,-7.118129171687856e-6,1.9568325801371748e-8,0.0029123675377467186,-6.853478439441242e-6,1.918239985768633e-8,0.002912450734123804,-6.670885447814342e-6,1.8916298524169225e-8,0.002912488859188778,-6.610394269086291e-6,1.88281387438807e-8,0.0029125417695362995,-6.679120462312963e-6,1.8928018749465943e-8,0.0029126652147423104,-6.848070988212437e-6,1.9173497757355166e-8,0.0029128935517388484,-7.061935206702308e-6,1.9483944368025575e-8,0.002913231037578079,-7.256695642236208e-6,1.9766193972595816e-8,0.0029136533209005457,-7.377571585707302e-6,1.9940619511564884e-8,0.0029141165252539614,-7.391701575272796e-6,1.9959524190801965e-8,0.0029145697689046887,-7.293322714917477e-6,1.981463990082668e-8,0.0029149673788549375,-7.1018310443380406e-6,1.953430007430907e-8,0.002915278149714961,-6.8545563898393026e-6,1.9172935518929185e-8,0.002915490151865234,-6.596725101954491e-6,1.8796465187354656e-8,0.0029156107375936115,-6.371248850546456e-6,1.846741356078346e-8,0.002915662539790091,-6.210673245514143e-6,1.8233164243708407e-8,0.0029156771594396804,-6.1327104522359935e-6,1.8119444504375368e-8,0.002915688499493966,-6.139498762978267e-6,1.812926086634637e-8,0.0029157272510905927,-6.219687203803143e-6,1.824596696099231e-8,0.0029158172217261446,-6.3520114728173305e-6,1.843850247261238e-8,0.002915973412501954,-6.5091582694995025e-6,1.8667034188020637e-8,0.0029162012640837876,-6.6612268782975755e-6,1.888798608393158e-8,0.0029164964235661433,-6.778735787311186e-6,1.9058396783844645e-8,0.002916844658644618,-6.835584702079287e-6,1.91402221340199e-8,0.0029172220097263466,-6.812552966048134e-6,1.910544630322981e-8,0.002917595884444303,-6.7017614420562816e-6,1.8942618913472558e-8,0.002917928412307093,-6.511815863831633e-6,1.8664385893287575e-8,0.00291818347875855,-6.2719153866716e-6,1.8313480562819844e-8,0.002918337682433519,-6.031490122748525e-6,1.7962147335797165e-8,0.002918392453911434,-5.8514246809711895e-6,1.7699255420367632e-8,0.0029183808220965175,-5.785913109725185e-6,1.760375851831056e-8,0.002918361694896576,-5.860827931022856e-6,1.7713146738291097e-8,0.0029184005478205227,-6.060277614749884e-6,1.8003943123245615e-8,0.0029185450818061424,-6.330635628385983e-6,1.8397723097046376e-8,0.002918808813042895,-6.6005652769916755e-6,1.8790403319492904e-8,0.002919169951357401,-6.805733183674234e-6,1.908827114831872e-8,0.0029195829508730235,-6.906435273516535e-6,1.92336174657321e-8,0.002919994648581057,-6.893430674434389e-6,1.9213166424777753e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json new file mode 100644 index 00000000..7805bb3b --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":2000,"numberOfSamples":1000,"samples":[-0.0019226433452019043,-4.2400202047522655e-5,-4.847209139509104e-8,-0.0019224915279308452,-4.232138293995991e-5,-4.839917575682174e-8,-0.0019223575599970867,-4.2339533342532786e-5,-4.841941987929699e-8,-0.0019221925201880694,-4.2455757141232014e-5,-4.853500256368106e-8,-0.0019219535221161883,-4.264378690983704e-5,-4.87214377132331e-8,-0.0019216173050324704,-4.285653639574512e-5,-4.893368444013015e-8,-0.0019211878632388768,-4.304035090341533e-5,-4.911986351109583e-8,-0.0019206944269591652,-4.3151566455827686e-5,-4.923733483565604e-8,-0.001920180782153211,-4.316840557061996e-5,-4.9264336921476375e-8,-0.0019196912154135558,-4.3093903838697776e-5,-4.920299044056076e-8,-0.001919259170950511,-4.2950548434361e-5,-4.9074301884897993e-8,-0.0019189019210674083,-4.277089886837732e-5,-4.8909249976046343e-8,-0.0019186208521778832,-4.258868047478004e-5,-4.8740241599705884e-8,-0.001918404926768647,-4.243272605567538e-5,-4.859521792579728e-8,-0.0019182349450095773,-4.2323928794774185e-5,-4.849461482060666e-8,-0.0019180872700253946,-4.2274266862589164E-05,-4.8450338629402915e-8,-0.001917936666180632,-4.228680533004299e-5,-4.846574052979398e-8,-0.00191775854316843,-4.2355896173164964e-5,-4.8535824807684226e-8,-0.0019175311877270766,-4.246735024004276e-5,-4.864742159638906e-8,-0.0019172384671460499,-4.25989290061144e-5,-4.877961167038227e-8,-0.0019168730864799963,-4.2721876682799584e-5,-4.890508625070886e-8,-0.0019164398837302117,-4.280432151427329e-5,-4.8993279677066866e-8,-0.0019159579014177714,-4.281706315274191e-5,-4.901583883335078e-8,-0.0019154594243000278,-4.27412144250086e-5,-4.8953968414289994e-8,-0.001914984557283099,-4.2575562469439085e-5,-4.880561552483321e-8,-0.0019145716125768752,-4.234039279521026e-5,-4.858934382627422e-8,-0.0019142459086730812,-4.207501807745824e-5,-4.834220694952108e-8,-0.0019140111182697102,-4.1828569489815494e-5,-4.811113500434928e-8,-0.0019138468399848853,-4.1646650455964184e-5,-4.794024685992306e-8,-0.0019137136475314569,-4.155842585264431e-5,-4.785840090516636e-8,-0.0019135639168575628,-4.156847538008292e-5,-4.787112479174571e-8,-0.001913354878178476,-4.165575436672902e-5,-4.795925785880041e-8,-0.001913060039736298,-4.1779660100407035e-5,-4.808445425303678e-8,-0.0019126758326174886,-4.189128905126362e-5,-4.8199834042895305e-8,-0.0019122216639617473,-4.194655693717889e-5,-4.8262624541360104e-8,-0.0019117335388331718,-4.191721880810053e-5,-4.8244930247959284e-8,-0.0019112535774869718,-4.17965282482666e-5,-4.8139407883790543e-8,-0.0019108191058004997,-4.159831661316574e-5,-4.795859671838348e-8,-0.001910454761111615,-4.13507805095086e-5,-4.7729094163578805e-8,-0.0019101693588310655,-4.108797784158734e-5,-4.74834365018481e-8,-0.0019099571113809235,-4.084210928294797e-5,-4.725264424568893e-8,-0.0019098014051956349,-4.06383521782112e-5,-4.706116300989979e-8,-0.001909679232807439,-4.049244367589526e-5,-4.6924445600308274e-8,-0.0019095650792493577,-4.041027304587661e-5,-4.684851156054176e-8,-0.0019094338706790138,-4.038850509596943e-5,-4.6830551880131895e-8,-0.0019092631960406178,-4.041545998091156e-5,-4.685979719885473e-8,-0.0019090353342274217,-4.0471961726856714e-5,-4.691831881589462e-8,-0.0019087395911655302,-4.053242839868951e-5,-4.698199191766588e-8,-0.0019083750969175394,-4.0566889485238066e-5,-4.7022295836454817e-8,-0.0019079535950202848,-4.05448090409642e-5,-4.7009857068801336e-8,-0.0019075008929219535,-4.0441352326518995e-5,-4.692041592595363e-8,-0.0019070548602137859,-4.024557340002766e-5,-4.674274417153859e-8,-0.0019066581194424014,-3.996789525520936e-5,-4.648596905336088e-8,-0.0019063458229643833,-3.964246667720178e-5,-4.618202616974119e-8,-0.001906132593687367,-3.932066250072738e-5,-4.5879631296205274e-8,-0.001906005112413036,-3.9056140911694693e-5,-4.563013841888741e-8,-0.0019059250849624966,-3.888725831245831e-5,-4.547077730150599e-8,-0.0019058418160187416,-3.882488208844757e-5,-4.541289156609024e-8,-0.0019057084893034362,-3.885058262649113e-5,-4.5439933455113804e-8,-0.0019054953071705263,-3.892448678948119e-5,-4.551462448108332e-8,-0.0019051956015066044,-3.899818092129441e-5,-4.559102248754266e-8,-0.001904824751066378,-3.902764552633575e-5,-4.562680789434229e-8,-0.0019044139453100216,-3.898286178877979e-5,-4.5592592314242095e-8,-0.0019040014133682513,-3.8852641286461894e-5,-4.547679044559279e-8,-0.0019036234930003598,-3.864464423892581e-5,-4.5285911009026024e-8,-0.0019033074182967,-3.838144973804248e-5,-4.504099501526467e-8,-0.0019030670807785748,-3.809414814477403e-5,-4.477156044224583e-8,-0.0019029021776647626,-3.7815292683842436e-5,-4.4508817510060506e-8,-0.001902800227035411,-3.757290803529455e-5,-4.427982585191298e-8,-0.0019027403062597105,-3.738655521525043e-5,-4.410361508352597e-8,-0.0019026972766109718,-3.726562021454014e-5,-4.3989482282936625e-8,-0.0019026455605967178,-3.720939282853564e-5,-4.393706825168861e-8,-0.001902562049494492,-3.720819681311018e-5,-4.393747898583925e-8,-0.0019024282429587474,-3.7244887169539354e-5,-4.397474157144386e-8,-0.0019022320167928473,-3.7296417780327447e-5,-4.402726172840666e-8,-0.0019019694121183246,-3.733563521997301e-5,-4.406942025345132e-8,-0.0019016466101295054,-3.7333817380047615e-5,-4.4073850286943826e-8,-0.001901281721675244,-3.72647279533573e-5,-4.401521158739995e-8,-0.0019009051492186858,-3.7110772537172744e-5,-4.387608872624823e-8,-0.0019005564761927897,-3.687070357499274e-5,-4.365449081610721e-8,-0.0019002760006965934,-3.656614621766662e-5,-4.3370288285066725e-8,-0.0019000913323042824,-3.624205466668279e-5,-4.306583828633659e-8,-0.0019000039601944792,-3.5956706816941076e-5,-4.279656932567122e-8,-0.0018999840816792122,-3.576226105855051e-5,-4.261250079410351e-8,-0.0018999792883793371,-3.568461104514584e-5,-4.253901137884262e-8,-0.001899933981398471,-3.5713853399087564e-5,-4.2567602344540055e-8,-0.0018998090711157681,-3.581022732657273e-5,-4.266128735242672e-8,-0.0018995924498515157,-3.5920529128532807E-05,-4.27699363285063e-8,-0.0018992979805863262,-3.599552540735251e-5,-4.284667515898346e-8,-0.001898956996465333,-3.60016505232314e-5,-4.2859033641491364e-8,-0.0018986077115788766,-3.5925404995038095e-5,-4.2793327231141533e-8,-0.0018982861274868695,-3.5772115322624845e-5,-4.2653762704726326e-8,-0.0018980197803509253,-3.556151123416992e-5,-4.245848237196928e-8,-0.0018978243192027849,-3.532201505409536e-5,-4.2234258129154944e-8,-0.0018977025183165013,-3.5084842908056075e-5,-4.201085903922587e-8,-0.001897645338891351,-3.487865622253372e-5,-4.181584089370757e-8,-0.001897634548299051,-3.472539749417785e-5,-4.1670438822720854e-8,-0.0018976462592206278,-3.4637684651986404E-05,-4.158699002545304e-8,-0.0018976547528813345,-3.461783260192269e-5,-4.156798431104482e-8,-0.0018976360025567379,-3.465835456450116e-5,-4.160658512785339e-8,-0.0018975704668702292,-3.474353699435762e-5,-4.168818028849286e-8,-0.0018974450856599756,-3.485154582856132e-5,-4.179238643199875e-8,-0.0018972547032642363,-3.4956750270050015e-5,-4.189517808310863e-8,-0.0018970031462578617,-3.5032293373468896e-5,-4.1971187462921197e-8,-0.001896704041121835,-3.5053177068163955e-5,-4.199649895495414e-8,-0.0018963811064912409,-3.500033872352196e-5,-4.195247884233675e-8,-0.0018960669388229457,-3.486606242620335e-5,-4.183101890714069e-8,-0.0018957986732221059,-3.466005594878666e-5,-4.1640536726904226e-8,-0.0018956091571617987,-3.441367338006517e-5,-4.141024300465335e-8,-0.0018955143084655717,-3.417789714991304e-5,-4.11883959487616e-8,-0.0018955015199407235,-3.401103934461799e-5,-4.103064766105313e-8,-0.0018955276091062383,-3.395751831846302e-5,-4.097979506922786e-8,-0.0018955320612609062,-3.4027724788744977e-5,-4.104650552871127e-8,-0.001895460925824634,-3.419213691026499e-5,-4.120354608540807e-8,-0.0018952876637236959,-3.439431347479264e-5,-4.139792350116541e-8,-0.0018950194973305701,-3.4574094187676726e-5,-4.157273141268476e-8,-0.00189468901820827,-3.468727701743215e-5,-4.168573954249668e-8,-0.0018943393648524587,-3.471417304124221e-5,-4.171758103848185e-8,-0.001894011175966523,-3.4658126432902484e-5,-4.1670568510380554e-8,-0.0018937347654549707,-3.4538913747532676e-5,-4.156270803527193e-8,-0.0018935271586108895,-3.438520384909261e-5,-4.1420753571334326e-8,-0.0018933922404869188,-3.4228171385826936e-5,-4.127420869753851e-8,-0.0018933224519850319,-3.409667569558539e-5,-4.115067186901395e-8,-0.001893301244193991,-3.40137190510597e-5,-4.10723266568858e-8,-0.0018933060255165923,-3.399399788202456e-5,-4.105348708812609e-8,-0.0018933114133081418,-3.404253904550354e-5,-4.109924608197351e-8,-0.0018932925837213562,-3.415443233452324e-5,-4.120524021833533e-8,-0.0018932284621856921,-3.431570348176952e-5,-4.135853030487643e-8,-0.001893104383091029,-3.4505267334039883e-5,-4.1539480078514925e-8,-0.00189291393259836,-3.469764551964496e-5,-4.172428673891212e-8,-0.0018926599383916741,-3.486610463956082e-5,-4.188783776156979e-8,-0.0018923546511316431,-3.498605241766292e-5,-4.2006785198344876e-8,-0.001892019101621626,-3.5038631408074926e-5,-4.206286015466167e-8,-0.0018916814855736094,-3.5014534367428806e-5,-4.204652314564249e-8,-0.001891374040852943,-3.491799599962725e-5,-4.196092987201902e-8,-0.0018911275262606326,-3.477018738663742e-5,-4.182542386637248e-8,-0.0018909628356181614,-3.460994197225293e-5,-4.167647877700423e-8,-0.0018908809794151223,-3.448870510773402e-5,-4.1563025636714426e-8,-0.001890855680381783,-3.4457266426274074e-5,-4.1533801407386716e-8,-0.0018908353879217353,-3.454621539121781e-5,-4.1618610494880996e-8,-0.0018907590601062614,-3.474930510512576e-5,-4.1812322746267864e-8,-0.0018905806559135173,-3.502183484605819e-5,-4.2073175486873276e-8,-0.0018902883688857062,-3.529801938551741e-5,-4.233914044230188e-8,-0.0018899068551920142,-3.551742428610809e-5,-4.255290749642152e-8,-0.001889483249018912,-3.564481602849056e-5,-4.268065997382881e-8,-0.0018890679245541686,-3.567523527632135e-5,-4.2716955210695495e-8,-0.00188870032072965,-3.562727788606181e-5,-4.267856906938492e-8,-0.0018884030745074487,-3.5532202829357725e-5,-4.2594437460528625e-8,-0.0018881823723488097,-3.54243921208098e-5,-4.2496795451858114e-8,-0.0018880312102406572,-3.533504994855418e-5,-4.2415230301185514e-8,-0.0018879332139387782,-3.5288747014991394e-5,-4.237330143238159e-8,-0.0018878660597741292,-3.5301680267534746e-5,-4.23867434249854e-8,-0.001887804493950075,-3.5380813257388804e-5,-4.246254511061698e-8,-0.0018877231921547025,-3.552361030820859e-5,-4.259866804167272e-8,-0.0018875996014664324,-3.5718391160070784e-5,-4.278440830777563e-8,-0.0018874167566322304,-3.594551788242534e-5,-4.300154835611885e-8,-0.0018871657927251448,-3.617965687985636e-5,-4.322647911791066e-8,-0.0018868476636197298,-3.639308212496223e-5,-4.3433238917490384e-8,-0.0018864736576865142,-3.655967876258171e-5,-4.359717299143751e-8,-0.0018860644895497603,-3.66591992046944e-5,-4.369885112248462e-8,-0.0018856478855353213,-3.668124668546799e-5,-4.37278181581545e-8,-0.0018852547440176993,-3.6628421846668554e-5,-4.3685686879638724e-8,-0.0018849140165977931,-3.651813115392309e-5,-4.358808695279573e-8,-0.0018846464338938206,-3.638236555382138e-5,-4.346473580791103e-8,-0.0018844576056432885,-3.6264235942699986e-5,-4.3356365793623564e-8,-0.0018843321784880178,-3.6209913884206997e-5,-4.3307130103906174e-8,-0.0018842322632395324,-3.625576306513159e-5,-4.335226126403655e-8,-0.0018841040436168481,-3.641349949400654e-5,-4.350374571050373e-8,-0.0018838940566287233,-3.6660400894427665e-5,-4.374080127460915e-8,-0.001883570085252579,-3.694276386559895e-5,-4.401301964778491e-8,-0.001883135475562002,-3.7194520085842316e-5,-4.425796870583932e-8,-0.001882627578444282,-3.73621475032825e-5,-4.442477583414205e-8,-0.0018821014403124572,-3.742201299485457e-5,-4.4490542846202025e-8,-0.001881609313986513,-3.7382507458315104e-5,-4.4462439215216833e-8,-0.0018811865907120172,-3.7274116019286886e-5,-4.436849914685254e-8,-0.001880847632416261,-3.713591350573811e-5,-4.424508395808057e-8,-0.00188058871037337,-3.7004918805228556e-5,-4.4126962304448526e-8,-0.0018803936614843618,-3.691021781204701e-5,-4.4041748300567786e-8,-0.0018802392951189633,-3.6870851790922326e-5,-4.400778710220607e-8,-0.0018800994849178696,-3.68957089255605e-5,-4.40339130327419e-8,-0.0018799481169941405,-3.698411204251374e-5,-4.411991825255021e-8,-0.0018797614670353787,-3.7126553405316096e-5,-4.425722892864331e-8,-0.0018795204776576248,-3.730559347706619e-5,-4.442976975442706e-8,-0.0018792131464299988,-3.749729428555327e-5,-4.46153152223929e-8,-0.0018788368365865878,-3.7673694011914794e-5,-4.4787772369335294e-8,-0.0018783998781203336,-3.780658890837698e-5,-4.492065092723705e-8,-0.0018779216417479986,-3.787236867220032e-5,-4.4991520603290696e-8,-0.0018774304478634798,-3.785712894848209e-5,-4.4986782858554793e-8,-0.001876959132956837,-3.776087580238688e-5,-4.490568783170876e-8,-0.001876538772816988,-3.759950843431477e-5,-4.476237298058196e-8,-0.0018761917084975216,-3.740363503756282e-5,-4.458499652618009e-8,-0.0018759253154816227,-3.721393836510612e-5,-4.441161416080866e-8,-0.0018757279816746558,-3.7073377257336396e-5,-4.4282962063134714e-8,-0.0018755687920489152,-3.701708377818567e-5,-4.4232881827984826e-8,-0.0018754023218197238,-3.706175871807319e-5,-4.427809041286009e-8,-0.0018751791516401983,-3.71976903316632e-5,-4.4410338519050925e-8,-0.0018748606150037481,-3.738752598197328e-5,-4.4594994984169714e-8,-0.0018744330348925565,-3.7574982787928245E-05,-4.47791613026569e-8,-0.0018739145177022712,-3.770239276914684e-5,-4.490826020461936e-8,-0.0018733495373167643,-3.773009490362128e-5,-4.4944415378813574e-8,-0.0018727931908080317,-3.764831441568e-5,-4.487773977743384e-8,-0.0018722931442570632,-3.7476441825173546e-5,-4.472576455407728e-8,-0.0018718776143170825,-3.72522449686114e-5,-4.452343076403651e-8,-0.0018715526178116695,-3.701813258333055e-5,-4.431030817274317e-8,-0.0018713062231411261,-3.681055615655657e-5,-4.4120686585272034e-8,-0.001871115468151383,-3.665468354723957e-5,-4.397851191896047e-8,-0.001870952694577932,-3.6563328602725056e-5,-4.389625440586987e-8,-0.0018707900517583916,-3.653811265418476e-5,-4.3875885637797216e-8,-0.0018706023334060244,-3.6571255822349916e-5,-4.391050608580251e-8,-0.0018703688700737859,-3.664722159578986e-5,-4.398588937722728e-8,-0.0018700751930006965,-3.6744157938658e-5,-4.408184554328447e-8,-0.0018697148769254426,-3.683557666976917e-5,-4.4173775089313205e-8,-0.0018692914772034106,-3.6892936200826666e-5,-4.423502611041501e-8,-0.0018688199023591616,-3.688965083963331e-5,-4.424057092448585e-8,-0.0018683261082645549,-3.680648604854699e-5,-4.4172010900809014e-8,-0.0018678439684996118,-3.663736658049673e-5,-4.4023038613393244e-8,-0.0018674088734324848,-3.639364723333976e-5,-4.3803546879327065e-8,-0.0018670490319146785,-3.610454803253589e-5,-4.354021989210011e-8,-0.001866776960604691,-3.581233195531623e-5,-4.327223113044107e-8,-0.0018665842545617494,-3.556274227869284e-5,-4.304246095848443e-8,-0.0018664419014308188,-3.539322985208859e-5,-4.2886518844144926e-8,-0.001866306540510951,-3.532250177755452e-5,-4.282282625286369e-8,-0.0018661311596336301,-3.5344543323723834e-5,-4.284673828172474e-8,-0.0018658774885188531,-3.542898898557433e-5,-4.293057236042494e-8,-0.0018655268253949977,-3.55281941668765e-5,-4.303001094315354e-8,-0.0018650860333417425,-3.55896847358241e-5,-4.309572055327366e-8,-0.0018645862558132557,-3.557072469934887e-5,-4.3087114771064386e-8,-0.001864074064290464,-3.54502290003869e-5,-4.298370377047688e-8,-0.0018635978679334747,-3.523359331224885e-5,-4.278980205390345e-8,-0.0018631947076426666,-3.494883476042089e-5,-4.2531058883068645e-8,-0.0018628822307316867,-3.4636347734627516E-05,-4.224496475448857e-8,-0.0018626577466252,-3.433705755884229e-5,-4.196979779298566e-8,-0.0018625028468491243,-3.408334448344101e-5,-4.173608792809358e-8,-0.0018623903292806535,-3.389462368841906e-5,-4.1562378749819724e-8,-0.001862290600784725,-3.377697613200107e-5,-4.145477037782527e-8,-0.0018621762300559555,-3.3725088096835355e-5,-4.14086669723388e-8,-0.0018620246347852986,-3.372488473601601e-5,-4.141123207304418e-8,-0.0018618195632346566,-3.375593156589706e-5,-4.1443656121148575e-8,-0.0018615521548540242,-3.3793432453618705e-5,-4.148302730689643e-8,-0.001861222100187459,-3.3810221048498295E-05,-4.15041470998425e-8,-0.0018608389284970092,-3.377941053241642e-5,-4.148192086511341e-8,-0.0018604228570434176,-3.367833230390359e-5,-4.139496124109246e-8,-0.0018600040268228783,-3.3493942425028966e-5,-4.123062094176194e-8,-0.001859618642548962,-3.322877352067173e-5,-4.0990619843655576e-8,-0.0018593011806838898,-3.290498445207031e-5,-4.0694967467908326e-8,-0.001859073836432133,-3.256319848003421e-5,-4.038105550600808e-8,-0.0018589370096645738,-3.225400787141628e-5,-4.0095898376829484e-8,-0.0018588658572420299,-3.202355089014602e-5,-3.988278237900221e-8,-0.001858815953690681,-3.1898535195761845e-5,-3.9767279252543205e-8,-0.0018587365322608792,-3.187731481624273e-5,-3.974875641256137e-8,-0.001858585847420525,-3.193072891426777e-5,-3.9800881931187754e-8,-0.0018583427276889898,-3.201157846011818e-5,-3.988018363222736e-8,-0.001858011024484624,-3.206838339685549e-5,-3.993871620605644e-8,-0.0018576168661056972,-3.2058722129593e-5,-3.993651170976707e-8,-0.001857200628294303,-3.1958785793748546e-5,-3.98506487342928e-8,-0.0018568063178679155,-3.1767390735336565e-5,-3.9679225404044e-8,-0.0018564711830394505,-3.150417991339459e-5,-3.943989843936122e-8,-0.0018562180244630548,-3.120309508365586e-5,-3.916393604405171e-8,-0.001856051832860989,-3.0903287984785486e-5,-3.888777991719524e-8,-0.0018559610387409902,-3.0640165715613776e-5,-3.864464037772421e-8,-0.0018559222165318323,-3.043888182499085e-5,-3.845831450517588e-8,-0.0018559062367179708,-3.031135180046263e-5,-3.8340287099323454e-8,-0.0018558839785556914,-3.025648674119293e-5,-3.828987583339211e-8,-0.0018558305005729916,-3.0262498510445098e-5,-3.829637141557298e-8,-0.0018557274688207667,-3.030998413607464e-5,-3.8341946180221575e-8,-0.0018555642923261315,-3.0374874455143256e-5,-3.8404431294548646e-8,-0.0018553386335638984,-3.043096245585696e-5,-3.8459652833342595e-8,-0.0018550567897867762,-3.0452262426219995e-5,-3.8483550463237314e-8,-0.0018547340635318174,-3.041572528206477e-5,-3.8454603062521525e-8,-0.0018543947164707576,-3.03048875961989e-5,-3.835716288178646e-8,-0.0018540704590361671,-3.0114692323656852e-5,-3.81859702743685e-8,-0.0018537960249984855,-2.985666954648834e-5,-3.79511015108531e-8,-0.0018536008786521339,-2.9562027461414482e-5,-3.768102528692731e-8,-0.0018534981424192035,-2.927893614320846e-5,-3.742024332911934e-8,-0.0018534751696137296,-2.9061233360087007e-5,-3.72188887172703e-8,-0.0018534923481789171,-2.8950357584252507e-5,-3.711593484750272e-8,-0.0018534940550578869,-2.8958436077817732e-5,-3.7123378482837e-8,-0.0018534282008300274,-2.9062277323979435e-5,-3.722046668883958e-8,-0.0018532645332598092,-2.921211788923309e-5,-3.736159207290112e-8,-0.0018530028720135114,-2.934986972526837e-5,-3.7493050320642694e-8,-0.0018526694542170326,-2.942727873570747e-5,-3.756982425163037e-8,-0.0018523058642196187,-2.9417150023504876e-5,-3.7566073539067835e-8,-0.0018519564866905035,-2.9316192868627697e-5,-3.7477965536880444e-8,-0.0018516584089416203,-2.9141557732680905e-5,-3.7320700414486564e-8,-0.001851435208412855,-2.8923992161479002e-5,-3.712235494419344e-8,-0.001851294541339165,-2.869997092993335e-5,-3.691666372244825e-8,-0.0018512288972952473,-2.850431556199019e-5,-3.673612972502268e-8,-0.0018512187605911334,-2.8364293030248146e-5,-3.6606422818222735e-8,-0.0018512372743969517,-2.8295880091963878e-5,-3.6542771387623024e-8,-0.001851255373367241,-2.830245486957463e-5,-3.654865101402205e-8,-0.0018512464347500161,-2.837567990696616e-5,-3.661658029509977e-8,-0.0018511897654824728,-2.849797616767571e-5,-3.6730452314410044e-8,-0.0018510726455833026,-2.864577894127868e-5,-3.6868605111867225e-8,-0.0018508911239511774,-2.879283048085962e-5,-3.700688885749968e-8,-0.0018506500169525825,-2.891316386992196e-5,-3.712138235946777e-8,-0.0018503624659893852,-2.8983841434482034e-5,-3.719083313132091e-8,-0.001850049192722774,-2.8987717253845237e-5,-3.719912582085492e-8,-0.00184973724683297,-2.8916604783197052e-5,-3.7138199915807674e-8,-0.0018494574590516221,-2.877500685094965e-5,-3.7011601488886906e-8,-0.001849239457271444,-2.8583618727700412e-5,-3.6837917133073514e-8,-0.001849103637120204,-2.8380420558935783e-5,-3.665199142573758e-8,-0.0018490512556514666,-2.8216113176951286e-5,-3.650082802289004e-8,-0.0018490568923369543,-2.814133170477168e-5,-3.643173901900574e-8,-0.001849070044366471,-2.8187498919253204e-5,-3.6474479853762786e-8,-0.0018490301023305032,-2.835027238269989e-5,-3.662573037762882e-8,-0.0018488899067574623,-2.8587217166636767e-5,-3.6846766146306595e-8,-0.0018486348257891318,-2.883361606393152e-5,-3.707797543919425e-8,-0.0018482863056600417,-2.902755950667316e-5,-3.726201459105288e-8,-0.0018478899852914469,-2.9130064005063796e-5,-3.736241363816512e-8,-0.0018474976562760789,-2.91321131307372e-5,-3.737016828147584e-8,-0.0018471524750899352,-2.905016180405401e-5,-3.729976063286029e-8,-0.0018468812786227445,-2.8916268553225196e-5,-3.718025357565311e-8,-0.0018466931172711491,-2.876806315238052e-5,-3.7046173746412294e-8,-0.0018465815057894385,-2.8640983775258864e-5,-3.6930365429741035e-8,-0.00184652829693714,-2.8563136245366806e-5,-3.685914654239289e-8,-0.0018465080445311866,-2.8552306292304803e-5,-3.6849396405970724e-8,-0.0018464923711327586,-2.8614698711177184e-5,-3.69072585309602e-8,-0.0018464540475209713,-2.874515858709884e-5,-3.702828145510411e-8,-0.001846370522506678,-2.8928669467886978e-5,-3.7198811661589566e-8,-0.001846226627091265,-2.9142919199792575e-5,-3.739840984195331e-8,-0.0018460161773210895,-2.936159596526058e-5,-3.7602928735736206e-8,-0.0018457424092981416,-2.9557907441157696e-5,-3.7787745528739335e-8,-0.0018454174436069045,-2.9707932709951874e-5,-3.793078679950588e-8,-0.001845060979936064,-2.9793682517744152e-5,-3.8015266553066575e-8,-0.0018446983139210466,-2.9805837685586976e-5,-3.803216933965162e-8,-0.001844357663506958,-2.974619611849742e-5,-3.7982560537325245e-8,-0.0018440664544479193,-2.9629797711193566e-5,-3.7879707314877856e-8,-0.001843845950446449,-2.948601531108566e-5,-3.775030341662861e-8,-0.0018437041818345754,-2.9356851092842417e-5,-3.763307774716062e-8,-0.0018436286704259478,-2.929018395984869e-5,-3.7572610524337075e-8,-0.0018435826591715672,-2.9326650546160026e-5,-3.7607099199983846e-8,-0.001843510243611047,-2.9482479522100277e-5,-3.7752270839027916e-8,-0.0018433534878047207,-2.9736569576451163e-5,-3.798922207122916e-8,-0.001843076228620517,-3.003258999787417e-5,-3.826624809927366e-8,-0.0018426810050820315,-3.0299279226205748e-5,-3.851758748645876e-8,-0.0018422077376924746,-3.0478508169391107e-5,-3.8689353289091895e-8,-0.0018417156239789582,-3.054470317700498e-5,-3.875746335719129e-8,-0.0018412606553196052,-3.050710730095082e-5,-3.872977574482587e-8,-0.001840880483325183,-3.0398882257686496e-5,-3.8636192256924036e-8,-0.001840590004125507,-3.026250677128237e-5,-3.851540126764517e-8,-0.0018403844397698059,-3.013820957242196e-5,-3.840435285169504e-8,-0.001840245361005513,-3.0057347763451893e-5,-3.8332152701456324e-8,-0.0018401466765782936,-3.0039751280580974e-5,-3.831749547487945e-8,-0.0018400595016326148,-3.0093363332831677e-5,-3.836817784862127e-8,-0.0018399559497764423,-3.0215015910877106e-5,-3.848169905675189e-8,-0.001839812170196447,-3.039186553279613e-5,-3.864654273812751e-8,-0.0018396108283989022,-3.060338054950594e-5,-3.884402378562721e-8,-0.0018393430417674114,-3.082394307346604e-5,-3.905071575977295e-8,-0.001839009544828154,-3.1026114366856945e-5,-3.924146216346563e-8,-0.0018386207708631277,-3.1184328723264915e-5,-3.939273712194119e-8,-0.0018381957305413437,-3.127857148136643e-5,-3.948596451419425e-8,-0.0018377597459139795,-3.1297656724416976e-5,-3.95104860508152e-8,-0.001837341137178437,-3.1241751125251476e-5,-3.946590292406994e-8,-0.0018369670512292443,-3.112376810976386e-5,-3.9363472022820164e-8,-0.0018366586561733092,-3.096932899220622e-5,-3.922626209101001e-8,-0.0018364258708403016,-3.0814812173559905e-5,-3.9087559514838445e-8,-0.0018362621920370473,-3.070252357614279e-5,-3.8986539372919337e-8,-0.0018361412688580824,-3.067203929167175e-5,-3.896025500527251e-8,-0.0018360180816703487,-3.0748042684471684e-5,-3.903223795898209e-8,-0.0018358378502917804,-3.092774827382751e-5,-3.920064225747588e-8,-0.0018355532968053283,-3.1174550168373766e-5,-3.9432189756387474e-8,-0.0018351446756584952,-3.142525945238052e-5,-3.966879216514516e-8,-0.001834631257077125,-3.161182618802566e-5,-3.9847630332795574e-8,-0.001834065391188641,-3.168747068911088e-5,-3.992527940095902e-8,-0.0018335116541834382,-3.164236364109196e-5,-3.989214970654177e-8,-0.0018330236496004874,-3.1501495858562004e-5,-3.977056585296882e-8,-0.0018326302885483708,-3.130976247069251e-5,-3.960119517536447e-8,-0.0018323344622033428,-3.111494455177007e-5,-3.94275962437217e-8,-0.0018321196002908996,-3.095597209536023e-5,-3.928554181120305e-8,-0.0018319582888422555,-3.085789845493625e-5,-3.919836392406287e-8,-0.0018318194757880513,-3.083157342368737e-5,-3.9176511626126014e-8,-0.0018316733480543946,-3.0875483927058214e-5,-3.9219089175635253e-8,-0.0018314943794796696,-3.097812687524317e-5,-3.931593991989682e-8,-0.0018312633560748676,-3.1120334429811935e-5,-3.9449760179892773e-8,-0.001830968913688379,-3.1277592120351454e-5,-3.9598246635518696e-8,-0.0018306087634235733,-3.14226374107931e-5,-3.9736499110668715e-8,-0.0018301904168349817,-3.152864766531905e-5,-3.9839932121797345e-8,-0.0018297309265778968,-3.1573033171681355e-5,-3.988771007373838e-8,-0.0018292551760944991,-3.154139489645285e-5,-3.986633134180522e-8,-0.0018287925523648566,-3.1430926466745534e-5,-3.977274223006469e-8,-0.0018283721888019805,-3.125244172846257e-5,-3.961626454205167e-8,-0.0018280173510476312,-3.1030241019074e-5,-3.941861928815817e-8,-0.0018277399014371466,-3.079933897322065e-5,-3.921157228495376e-8,-0.0018275359237807758,-3.060002936908609e-5,-3.9032106768399976e-8,-0.0018273836315456557,-3.0470075984707517e-5,-3.891530628053033e-8,-0.0018272448509398856,-3.0435259419920423e-5,-3.8885571590877783e-8,-0.0018270713806662069,-3.0500042234658058e-5,-3.8947817158765014e-8,-0.0018268166773114957,-3.064158208297821e-5,-3.908171343754616e-8,-0.0018264509824322654,-3.081128525962225e-5,-3.924294928095106e-8,-0.0018259745066705093,-3.0946791653507584e-5,-3.937422858396294e-8,-0.001825421200068397,-3.0992294321174295e-5,-3.942401662190722e-8,-0.001824848707194268,-3.091859675203208e-5,-3.936503312287334e-8,-0.0018243181665254498,-3.0732388589482095e-5,-3.920280801715213e-8,-0.0018238741939498265,-3.047033281073113e-5,-3.897033103345112e-8,-0.0018235344222076416,-3.0182968256406758e-5,-3.871343791162342e-8,-0.0018232907112232296,-2.9917962061241705e-5,-3.8475612220985564e-8,-0.0018231175915879915,-2.9709470223528575e-5,-3.8288287874661005e-8,-0.0018229820547856707,-2.9574767415543407e-5,-3.8167680241916334e-8,-0.0018228511227224586,-2.951575072500136e-5,-3.811601209651671e-8,-0.0018226963993247997,-2.9522399260808083e-5,-3.812455102291935e-8,-0.001822496346012939,-2.9576313361484465e-5,-3.817679071516764e-8,-0.00182223736569908,-2.9653667368211555e-5,-3.82511596794088e-8,-0.001821914484007764,-2.9727713244422272e-5,-3.8323339418991535e-8,-0.0018215319226575477,-2.9771325860086927e-5,-3.836859871537784e-8,-0.0018211033649289739,-2.9760077349048065e-5,-3.8364575828414726e-8,-0.0018206513209798074,-2.967600860452736e-5,-3.82946771372016e-8,-0.001820204868578569,-2.95117106918752e-5,-3.815177651088395e-8,-0.001819795308698592,-2.9273717903851084e-5,-3.7941337848129227e-8,-0.0018194499553985499,-2.8983792765006212e-5,-3.768268339819807e-8,-0.001819185216669178,-2.867678407238349e-5,-3.74071910297524e-8,-0.0018190008974349288,-2.83945853396037e-5,-3.715294339073842e-8,-0.001818877777254797,-2.8177048843502435e-5,-3.69565401325332e-8,-0.001818779842287521,-2.8051892787703585e-5,-3.684386725138177e-8,-0.0018186613648890997,-2.8026242318695985e-5,-3.682221547238342e-8,-0.0018184777104345217,-2.8082404782524753e-5,-3.687617397457534e-8,-0.0018181975534309522,-2.8179856821560048e-5,-3.6969212144048666e-8,-0.001817813196202531,-2.8264185854983048e-5,-3.705172966271644e-8,-0.001817345167041442,-2.8281685470529075e-5,-3.707441588866618e-8,-0.0018168381018592475,-2.8195553966210703e-5,-3.7003162870434875e-8,-0.0018163479603249767,-2.799754849487948e-5,-3.6829836985857307e-8,-0.0018159250008670967,-2.770979157575244e-5,-3.657403648862273e-8,-0.0018155995956956029,-2.7375894624095573e-5,-3.6275093682421794e-8,-0.0018153764219808644,-2.704596699485922e-5,-3.5978494998850386e-8,-0.0018152377869368145,-2.6762455524996808e-5,-3.572301447864534e-8,-0.001815152477201721,-2.6551760020655958e-5,-3.553302574177351e-8,-0.0018150853173970892,-2.6422470662984083e-5,-3.541677798998169e-8,-0.0018150042988686545,-2.6368080187245047e-5,-3.5368740905128105e-8,-0.001814884542944513,-2.637140326946383e-5,-3.5373559468304656e-8,-0.0018147098501943748,-2.640883213452553e-5,-3.540992975432918e-8,-0.001814472968339351,-2.6453705314678775e-5,-3.5453704890593495e-8,-0.0018141754822484056,-2.6478914642215583e-5,-3.548029701796509e-8,-0.0018138277280354835,-2.645933668573588e-5,-3.54668779570484e-8,-0.0018134485433922909,-2.63746995002284e-5,-3.539493771542412e-8,-0.0018130641999637516,-2.6213143484268603e-5,-3.525347116797519e-8,-0.0018127056529817164,-2.5975139443379584e-5,-3.504252776569707e-8,-0.0018124034131899443,-2.5676611824827752e-5,-3.477610412804476e-8,-0.0018121801872194175,-2.534931109205454e-5,-3.448259855575883e-8,-0.0018120429840718477,-2.503646524431114e-5,-3.420100849172037e-8,-0.0018119778375527472,-2.4783230392470123e-5,-3.3972382770939356e-8,-0.001811950347330866,-2.462408751833058e-5,-3.3828419190625865e-8,-0.0018119132838824324,-2.4571574822020067e-5,-3.3781151941416513e-8,-0.0018118193692635378,-2.461097139426063e-5,-3.381793208892705e-8,-0.0018116348830005524,-2.470333459138878e-5,-3.390395510139745e-8,-0.0018113494195414132,-2.479592830408992e-5,-3.399155855798691e-8,-0.0018109788397635016,-2.483652227449304e-5,-3.403315775348767e-8,-0.0018105608775236578,-2.4787225178468724e-5,-3.399388280325552e-8,-0.001810144903993606,-2.4634019749026035e-5,-3.386038668968676e-8,-0.0018097788424705386,-2.438943653685379e-5,-3.364343809426621e-8,-0.0018094970976968308,-2.408776623021186e-5,-3.3373712923926915e-8,-0.0018093131065530167,-2.3774611485516244e-5,-3.3092397700764274e-8,-0.0018092184234519324,-2.3494490111001275e-5,-3.283995827133673e-8,-0.0018091877331322158,-2.3280593294754563e-5,-3.2646790853564697e-8,-0.0018091871161683125,-2.314939866682767e-5,-3.252822506211939e-8,-0.0018091823293289193,-2.31004611501778e-5,-3.248421726376951e-8,-0.0018091448540584615,-2.311978262620908e-5,-3.250233499343941e-8,-0.0018090550794540737,-2.3184591180723153e-5,-3.2562086291900066e-8,-0.0018089031861997175,-2.3267897328885993e-5,-3.2639095018153503e-8,-0.0018086887334329814,-2.3342085624690892e-5,-3.2708403157821664e-8,-0.0018084198247745962,-2.338158487023955e-5,-3.2746898333729124e-8,-0.0018081122968712463,-2.3365150542970265e-5,-3.273533916353727e-8,-0.001807788822855228,-2.3278370617031e-5,-3.2660558495518114e-8,-0.0018074773359588981,-2.3116713555088714e-5,-3.251818044986732e-8,-0.0018072078836895496,-2.2888860456224638e-5,-3.231565942478291e-8,-0.0018070071067168634,-2.2619145607374683e-5,-3.2074584949186564e-8,-0.0018068904090166695,-2.2346867579039005e-5,-3.18301977417072e-8,-0.001806853807850492,-2.2119984734449717e-5,-3.162581546841964e-8,-0.0018068696241016469,-2.198255341150245e-5,-3.150153125112428e-8,-0.0018068904530553504,-2.195926967130759e-5,-3.1480191546692454e-8,-0.0018068624614854115,-2.2044177423088666e-5,-3.155704270849953e-8,-0.0018067433270976935,-2.2200245280886165e-5,-3.1699156433731375e-8,-0.0018065165630427827,-2.2371032429944445e-5,-3.1855811466588946e-8,-0.0018061958896326482,-2.2498959032548624e-5,-3.197492592167717e-8,-0.0018058190557784669,-2.2542034459431462e-5,-3.201819263383411e-8,-0.0018054353226003737,-2.2483393859611878e-5,-3.196979945333175e-8,-0.001805091981515879,-2.2332389766442987e-5,-3.183757466667896e-8,-0.0018048237525921153,-2.211905907663405e-5,-3.1648156894879373e-8,-0.0018046468284378982,-2.1884874969180767e-5,-3.1438765962970895e-8,-0.0018045577965828564,-2.167257080863706e-5,-3.124804952076372e-8,-0.0018045367469031802,-2.1517256483314775e-5,-3.1108003719807276e-8,-0.0018045532547471112,-2.1440415901790588e-5,-3.103843208390343e-8,-0.0018045734964459543,-2.1447606975861767e-5,-3.1044738831155513e-8,-0.0018045667264467702,-2.1529672691860464e-5,-3.111893588046535e-8,-0.0018045098804961046,-2.1666384245823865e-5,-3.1242914374253404e-8,-0.0018043898839023068,-2.183112130503548e-5,-3.1392708760228225e-8,-0.001804203954475141,-2.1995397908962797e-5,-3.1542638797071024e-8,-0.0018039586205425583,-2.2132522471774145e-5,-3.166864148494045e-8,-0.0018036682150897336,-2.222029327998615e-5,-3.1750683255942955e-8,-0.0018033532774611,-2.2243105107731316e-5,-3.1774601732825967e-8,-0.0018030388535303287,-2.2193945397383773e-5,-3.173385130063672e-8,-0.0018027522942073136,-2.2076575061598045e-5,-3.1631467135425805e-8,-0.0018025198123736337,-2.1907738260673892e-5,-3.148213395270582e-8,-0.0018023610503111382,-2.171835234695091e-5,-3.131339673265721e-8,-0.0018022817446064101,-2.155153029171974e-5,-3.1164020013668663e-8,-0.0018022664981731129,-2.145492195250491e-5,-3.107715875834362e-8,-0.0018022761116299893,-2.1466616576633423e-5,-3.1087611729159285e-8,-0.001802254637597213,-2.1598488185100718e-5,-3.1206666940015674e-8,-0.0018021472428660756,-2.182595909351053e-5,-3.1412695010306495e-8,-0.0018019218634438376,-2.2092822584774562e-5,-3.1655360838329714e-8,-0.0018015825756897933,-2.2331161258804622e-5,-3.187351846210822e-8,-0.0018011669858702807,-2.2485932648024347e-5,-3.2017362632812046e-8,-0.0018007305205330378,-2.2531424552391003e-5,-3.20632837968358e-8,-0.0018003274466781097,-2.247396849454174e-5,-3.201639378115172e-8,-0.001799997044701253,-2.2344006761817026e-5,-3.190352915618942e-8,-0.0017997576968600084,-2.2183994777753875e-5,-3.1762527108728355e-8,-0.0017996074214415598,-2.2037129804367622e-5,-3.163218737463046e-8,-0.0017995281388526994,-2.1939134700851098e-5,-3.1544874466880096e-8,-0.001799491474118722,-2.191336925847295e-5,-3.1522014871558e-8,-0.0017994648236848451,-2.196879034163294e-5,-3.157211653547259e-8,-0.0017994169612412726,-2.210030852102367e-5,-3.1690969385098476e-8,-0.0017993225970557186,-2.2291116208268445e-5,-3.1863685374065217e-8,-0.0017991654559053219,-2.2516364846537557e-5,-3.2068017711543623e-8,-0.0017989396964144166,-2.2747470340719118e-5,-3.2278281986817246e-8,-0.001798649733945888,-2.2956364822787877e-5,-3.246922246142647e-8,-0.0017983088087218547,-2.3119105042172602e-5,-3.2619262744900355e-8,-0.0017979368481374199,-2.3218557224021916e-5,-3.271288686018867e-8,-0.001797558043108042,-2.3246284945411038e-5,-3.274229168261259e-8,-0.0017971982454755217,-2.3203905608775542e-5,-3.2708591798824984e-8,-0.0017968820442133351,-2.3104089519329166e-5,-3.2622768771998037e-8,-0.0017966291126735867,-2.297111342990777e-5,-3.250628913382254e-8,-0.0017964493540700971,-2.2840186859440642e-5,-3.239064633254201e-8,-0.001796337092370337,-2.2753871040159905e-5,-3.231424590201427e-8,-0.001796266176874397,-2.2753701692947285e-5,-3.2314867821004395e-8,-0.0017961898758915664,-2.2866622884127602e-5,-3.241733430757836e-8,-0.0017960501969663332,-2.3089920943539757e-5,-3.261975895170297e-8,-0.0017957976108034395,-2.3383568322421448e-5,-3.288650179068292e-8,-0.0017954135250510931,-2.3679171476829465e-5,-3.315617804332179e-8,-0.0017949215447578652,-2.390518557869303e-5,-3.336437672142568e-8,-0.0017943787200954949,-2.401500851776904e-5,-3.3468942402757484e-8,-0.0017938521133034476,-2.400161061140643e-5,-3.346310636110839e-8,-0.0017933953283730748,-2.3893135268437862e-5,-3.3371567284018426e-8,-0.0017930360672664986,-2.3736813868647664e-5,-3.323619106299432e-8,-0.0017927757839283627,-2.3582117106361543e-5,-3.310107169625848e-8,-0.0017925963117210405,-2.3469363688785598e-5,-3.300241303329868e-8,-0.0017924682328384592,-2.342451096539411e-5,-3.296382113706184e-8,-0.0017923581550719071,-2.345828625550179e-5,-3.299539036168371e-8,-0.001792234150133278,-2.356759742598324e-5,-3.309481410911366e-8,-0.0017920696405059335,-2.3737980155055785e-5,-3.324947345493431e-8,-0.0017918461088012336,-2.3946656287756952e-5,-3.343914759620848e-8,-0.0017915547494891267,-2.416604836192296e-5,-3.363918826601897e-8,-0.0017911970460121622,-2.4367571375549456e-5,-3.382396166819764e-8,-0.0017907841940512808,-2.4525457139788785e-5,-3.3970302096064133e-8,-0.0017903353488858134,-2.4620205356925683e-5,-3.4060599419872674e-8,-0.001789874928831574,-2.464121873006898e-5,-3.408513361013069e-8,-0.0017894293545302076,-2.458842006514815e-5,-3.404350871950484e-8,-0.001789023505241213,-2.4472837169482275e-5,-3.394520600674971e-8,-0.0017886770648342907,-2.431614883409421e-5,-3.3809267595780996e-8,-0.0017884008200234735,-2.4149141187628658e-5,-3.366304609271047e-8,-0.001788192903348495,-2.4008712245158947e-5,-3.353964297579916e-8,-0.0017880354372265181,-2.393253545893989e-5,-3.347316905691076e-8,-0.0017878931539800256,-2.3950554353910987e-5,-3.34910405981934e-8,-0.0017877167144701928,-2.4073806065351983e-5,-3.360377068735919e-8,-0.001787453569690734,-2.428392045087678e-5,-3.379534491041236e-8,-0.0017870663495322726,-2.4530220442592966e-5,-3.402051298850108e-8,-0.0017865519910194932,-2.4741563720019448e-5,-3.4215448424805376e-8,-0.0017859491906381667,-2.4852189071213217e-5,-3.4321023197333045e-8,-0.001785325958533287,-2.482869995671932e-5,-3.4307016493753474e-8,-0.0017847528767015353,-2.4681669420333632e-5,-3.418245486606978e-8,-0.0017842781208460322,-2.4456188730650273e-5,-3.3987154219619505e-8,-0.0017839168488831807,-2.4210443635923462e-5,-3.3772695142451446e-8,-0.0017836554356915608,-2.3996010205156732e-5,-3.358499104157047e-8,-0.0017834629055072672,-2.384722325415727e-5,-3.345487005540549e-8,-0.0017833022278605421,-2.377911957973221e-5,-3.33961693481918e-8,-0.0017831382257718895,-2.3790191594592873e-5,-3.340803787799357e-8,-0.0017829420119458068,-2.386664304225821e-5,-3.347858835271957e-8,-0.0017826931337199766,-2.3986439556649512e-5,-3.35884337520014e-8,-0.001782380554182279,-2.4122805007119548e-5,-3.37138034186474e-8,-0.0017820030107513522,-2.424741808773985e-5,-3.382943346932811e-8,-0.0017815688268330704,-2.4333593880854584e-5,-3.391144581214018e-8,-0.0017810949919451016,-2.435957061890063e-5,-3.3940296734933424e-8,-0.0017806052023764001,-2.4311695591746605e-5,-3.3903609380761455e-8,-0.001780126733231539,-2.4186960953258744e-5,-3.3798419210927013e-8,-0.001779686389109376,-2.3994309151659606e-5,-3.363234575116789e-8,-0.0017793060255654567,-2.3754312161234117e-5,-3.3423362014270186e-8,-0.0017789982504817423,-2.3497003448101446e-5,-3.319796437690346e-8,-0.0017787629677499328,-2.325789658218794e-5,-3.2987743056121986e-8,-0.0017785853328477087,-2.307245026259536e-5,-3.2824528494159e-8,-0.001778435693719291,-2.29692203202828e-5,-3.2734270343295896e-8,-0.0017782724447692514,-2.2962114363640616e-5,-3.2729999425653523e-8,-0.0017780489744251891,-2.304310446279494e-5,-3.2805121499466924e-8,-0.0017777252482119056,-2.3178271529330762e-5,-3.292970232577239e-8,-0.0017772823647096638,-2.331129259651724e-5,-3.305351428606098e-8,-0.0017767346083272459,-2.3377529158287416e-5,-3.311868318348257e-8,-0.001776130764697321,-2.3326480780226323e-5,-3.3079844371637935e-8,-0.0017755397912121303,-2.3142506066602418e-5,-3.292267378791187e-8,-0.001775025923089456,-2.285130228165791e-5,-3.2669641431352325e-8,-0.001774626618706956,-2.2507845107702927e-5,-3.2369284423643596e-8,-0.0017743445685003865,-2.217390512592298e-5,-3.207630409849978e-8,-0.0017741544806826274,-2.1898231682136928e-5,-3.1834061464338805e-8,-0.0017740169436090173,-2.1707118952548065e-5,-3.166620956255327e-8,-0.001773891219541728,-2.1604779152879516e-5,-3.157692307526984e-8,-0.0017737432310165142,-2.157882930216389e-5,-3.155562491937049e-8,-0.0017735489504333692,-2.1606679331330368e-5,-3.1582552828697624e-8,-0.0017732949817235678,-2.1660754250425577e-5,-3.163336707176071e-8,-0.0017729779982578978,-2.1712249139899234e-5,-3.1682516270717386e-8,-0.0017726039251191308,-2.1733947237802756e-5,-3.170578892729579e-8,-0.0017721870422029683,-2.170274238348413e-5,-3.168258293259854e-8,-0.001771748742021881,-2.160228540957275e-5,-3.1598253034946674e-8,-0.001771315436498432,-2.142574791419228e-5,-3.144654198656495e-8,-0.0017709151725227585,-2.1178148251122183e-5,-3.123163082063926e-8,-0.0017705729667818262,-2.0877318554922502e-5,-3.096901728522543e-8,-0.00177030549185305,-2.055260685325797e-5,-3.0684433448224743e-8,-0.0017701162882080364,-2.0240789383713746e-5,-3.041032430169265e-8,-0.0017699929466398218,-1.99794218315807e-5,-3.018005089313501e-8,-0.0017699074633654773,-1.9798779288104986e-5,-3.002078373264498e-8,-0.0017698202590316055,-1.971411094245867e-5,-2.994657558110185e-8,-0.0017696875886955075,-1.9720002942223983e-5,-2.9953206911113435e-8,-0.0017694714315701055,-1.9788544043428927e-5,-3.0016365819494506e-8,-0.001769150179508032,-1.9872824099373976e-5,-3.009460999645151e-8,-0.0017687273917546744,-1.9916635597634004e-5,-3.013794933369788e-8,-0.0017682349328222557,-1.986951675134688e-5,-3.0101278511672435e-8,-0.00176772710105645,-1.970328034493384e-5,-2.995916376833186e-8,-0.0017672653670454336,-1.942323674398719e-5,-2.9715881402750377e-8,-0.0017668987135009146,-1.906762066737871e-5,-2.9404951820690843e-8,-0.0017666484557888058,-1.8694185914153163e-5,-2.9077305426574343e-8,-0.0017665045683398996,-1.836037649987278e-5,-2.8783779540595175e-8,-0.0017664336822339468,-1.810670803004512e-5,-2.85604298531802e-8,-0.0017663927590512497,-1.7949525459591675e-5,-2.8422063980110166e-8,-0.0017663414629926905,-1.7882936783559632e-5,-2.8363836548011972e-8,-0.001766249541876796,-1.7885707909765793e-5,-2.8367242121714928e-8,-0.001766099266242993,-1.7928819727490756e-5,-2.8406756909275128e-8,-0.0017658847993394775,-1.798137782732972e-5,-2.8455090069843767e-8,-0.001765610393070421,-1.8014480188581894e-5,-2.8486659197502897e-8,-0.0017652885448722823,-1.800366604960887e-5,-2.8479796999216368e-8,-0.0017649384258213695,-1.7930802219111313e-5,-2.8418420896184835e-8,-0.0017645842871166185,-1.778602853787445e-5,-2.829372109660203e-8,-0.0017642532352409623,-1.7569903288050705e-5,-2.81060198076404e-8,-0.001763971759473834,-1.7295278259522374e-5,-2.786641950500421e-8,-0.0017637607807011494,-1.698782162266873e-5,-2.7597305393828584e-8,-0.0017636298282722234,-1.668378910785923e-5,-2.7330463361969477e-8,-0.0017635720325075124,-1.6424062245120354e-5,-2.7101919283812356e-8,-0.0017635623160880396,-1.624485381333525e-5,-2.6943804573923697e-8,-0.0017635607308321933,-1.6167370096356146e-5,-2.6875224575923194e-8,-0.0017635211289864948,-1.6190012162179073e-5,-2.68952735608918e-8,-0.0017634030561349838,-1.6286391210993562e-5,-2.6981120973846906e-8,-0.0017631832067511017,-1.6410496829813158e-5,-2.7092420717209323e-8,-0.001762862804611093,-1.650784066444652e-5,-2.7181070789573557e-8,-0.001762468592752757,-1.6529538541808296e-5,-2.720366625840219e-8,-0.001762046894151369,-1.6445530812446836e-5,-2.713326263374019e-8,-0.0017616519554521687,-1.6253198861825676e-5,-2.696709599279156e-8,-0.0017613315225252794,-1.5978453405918325e-5,-2.672764292807032e-8,-0.0017611140058775958,-1.5668350101802668e-5,-2.645617877953825e-8,-0.0017610016624053787,-1.5377341425857762e-5,-2.6200694380823762e-8,-0.001760972152477191,-1.5152050261090025e-5,-2.6002466768736517e-8,-0.0017609872896826445,-1.5020078162915458e-5,-2.5886132235295784e-8,-0.0017610048499390252,-1.4986153105280482e-5,-2.585618781524479e-8,-0.0017609887967856529,-1.5035267740803247e-5,-2.5899659894477047e-8,-0.0017609151979063953,-1.5139768158020223e-5,-2.5992305073980463e-8,-0.001760773716567572,-1.5266958060346903e-5,-2.610532992986437e-8,-0.0017605661687073292,-1.5385079455718696e-5,-2.6210718388494383e-8,-0.0017603038826338377,-1.5467116653328303e-5,-2.6284636330568005e-8,-0.0017600050563999715,-1.5492918931559058e-5,-2.630931543163531e-8,-0.00175969254649456,-1.5450515709074643e-5,-2.6274181953792665e-8,-0.0017593918639489119,-1.5337330423786408e-5,-2.617687582404043e-8,-0.0017591287810466108,-1.516152233340109e-5,-2.6024399594225813e-8,-0.0017589258943309788,-1.4943092225619993e-5,-2.5834108333616962e-8,-0.0017587977883399433,-1.4713698844311321e-5,-2.563361964748376e-8,-0.001758745306123578,-1.4513557060983797e-5,-2.5458186180871662e-8,-0.0017587508567577885,-1.4384033445413648e-5,-2.534426611652559e-8,-0.0017587779139626098,-1.4356303112866524e-5,-2.5319563744401592e-8,-0.0017587774818432792,-1.4439371548397277e-5,-2.5392423095802513e-8,-0.0017587014180465244,-1.461308765223457e-5,-2.5545545630735418e-8,-0.0017585182143315644,-1.4831017637906244e-5,-2.573837988454579e-8,-0.001758224300036135,-1.5033522952700285e-5,-2.5918544356983626e-8,-0.0017578456814572269,-1.5165890121277228e-5,-2.6037769834404815e-8,-0.0017574296827317477,-1.5194062164951215e-5,-2.6065783871821737e-8,-0.0017570309130902051,-1.5112670663097581e-5,-2.5997452534758276e-8,-0.001756696813994369,-1.4944139321311835e-5,-2.5852086776316284e-8,-0.0017564568402563836,-1.473071652369088e-5,-2.566653582995585e-8,-0.0017563173354597894,-1.4522642160396031e-5,-2.548486082353178e-8,-0.0017562624354948073,-1.4365851015030895e-5,-2.5347546705261553e-8,-0.0017562599735600776,-1.4292151664489295e-5,-2.5282821848690496e-8,-0.001756270345717931,-1.4313890299943314e-5,-2.5301868529854778e-8,-0.0017562557588578422,-1.4423796145213121e-5,-2.5398581829437754e-8,-0.0017561874812613571,-1.4599191257972496e-5,-2.5553204717269587e-8,-0.0017560497205785389,-1.4808590783445874e-5,-2.573812424229174e-8,-0.0017558401001670073,-1.501849889141526e-5,-2.5923886858305346e-8,-0.0017555677036126833,-1.5198851791683837e-5,-2.6084035700955837e-8,-0.0017552499882569114,-1.5326523211685818e-5,-2.6198219746351277e-8,-0.0017549096171388453,-1.5387143092883683e-5,-2.625378099409158e-8,-0.0017545716844747704,-1.5375917958639373e-5,-2.624643446693762e-8,-0.0017542612485054693,-1.5298085448759974e-5,-2.618062930004095e-8,-0.0017540007404882867,-1.5169273450952789e-5,-2.6069861979063126e-8,-0.0017538066861335557,-1.5015531634949477e-5,-2.593675647987724e-8,-0.0017536853789179659,-1.4872118319182157e-5,-2.5812093138283254e-8,-0.0017536279768385933,-1.4779491480665109e-5,-2.5731383005018647e-8,-0.001753606952723239,-1.477510058162383e-5,-2.5727704626657337e-8,-0.0017535772625469973,-1.4881293853944655e-5,-2.5821044107833472e-8,-0.0017534854838303832,-1.5093084239007569e-5,-2.600743669074431e-8,-0.001753286710863749,-1.5372854528035302e-5,-2.6254185280220255e-8,-0.0017529628465813953,-1.5658309245887e-5,-2.650676375421154e-8,-0.0017525321779777868,-1.5882916451512282e-5,-2.6706754294287406e-8,-0.0017520438774256833,-1.599931632431093e-5,-2.6812413521358316e-8,-0.0017515603547515798,-1.599389242849295e-5,-2.6811474485739375e-8,-0.0017511370747768787,-1.58870721613282e-5,-2.6721446136561115e-8,-0.0017508085426400448,-1.5722498178991464e-5,-2.6580205900138525e-8,-0.001750583522276346,-1.5552126055896935e-5,-2.6433054088095324e-8,-0.0017504477988545496,-1.5423007708300132e-5,-2.6321212129111954e-8,-0.001750371174214469,-1.5368439711583733e-5,-2.62740633198849e-8,-0.001750315851837096,-1.5403810993203438e-5,-2.630543047416448e-8,-0.0017502443819633047,-1.552642617773328e-5,-2.641330452405617e-8,-0.0017501260881107377,-1.5718366270618406e-5,-2.6582255837826362e-8,-0.001749941315168841,-1.595138996435713e-5,-2.6787687878177625e-8,-0.0017496832210316077,-1.6192740022060927e-5,-2.7000937830024997e-8,-0.0017493572693855985,-1.6410744434680557e-5,-2.719422519070173e-8,-0.001748978948913387,-1.6579358203906588e-5,-2.7344668887639668e-8,-0.0017485704968312657,-1.6681163415333903e-5,-2.74369274282324e-8,-0.0017481574240992264,-1.670883282721197e-5,-2.7464466784574147e-8,-0.0017477653066889829,-1.666547427544194e-5,-2.742983935525184e-8,-0.0017474168841164288,-1.6564305460559376e-5,-2.7344394725503e-8,-0.001747129279233854,-1.6427879931202274e-5,-2.722763656186771e-8,-0.0017469110243550452,-1.6286771476204226e-5,-2.7106146180372478e-8,-0.0017467586534195868,-1.6177063093025705e-5,-2.7011472007132247e-8,-0.0017466533463252492,-1.6135412490742596e-5,-2.6975864478472212e-8,-0.0017465594178202246,-1.6190686058868135e-5,-2.7024931986323628e-8,-0.0017464276261986936,-1.6352739951425828e-5,-2.7167717614836124e-8,-0.0017462061719448097,-1.6602042086509395e-5,-2.7387475511613235e-8,-0.0017458589390846183,-1.688727509586495e-5,-2.7639480984314817e-8,-0.001745383793112345,-1.7137548063945405e-5,-2.7861723308800773e-8,-0.001744819115139456,-1.7287659579105718e-5,-2.7997065592867195e-8,-0.0017442316274042247,-1.7303833560797986e-5,-2.8015768007836517e-8,-0.0017436912573285538,-1.7194973975304273e-5,-2.7925287860788828e-8,-0.001743247452036388,-1.7004614184730193e-5,-2.7763247275154654e-8,-0.0017429180130239536,-1.6791404372740664e-5,-2.758049651565357e-8,-0.0017426913839497045,-1.6609904370917028e-5,-2.7424492345162885e-8,-0.001742536475141356,-1.649859690995107e-5,-2.7328913073261393e-8,-0.0017424137905466815,-1.6475754777084468e-5,-2.731001280582881e-8,-0.0017422844622990985,-1.6540670952381766e-5,-2.7367575703814308e-8,-0.001742116355369948,-1.6677544114767887e-5,-2.7488179361086792e-8,-0.0017418876343611228,-1.686031928037145e-5,-2.764933739189588e-8,-0.0017415883616594284,-1.70577248174131e-5,-2.782387438953023e-8,-0.0017412205022093819,-1.7238115114124338e-5,-2.7984175560639326e-8,-0.0017407965855088022,-1.737379930727008e-5,-2.8106002984605667e-8,-0.0017403372333003285,-1.744456666693547e-5,-2.81716008451723e-8,-0.0017398678463401798,-1.7440083829039737e-5,-2.817179627356715e-8,-0.0017394149398974874,-1.7360942313155324e-5,-2.8106908907450188e-8,-0.0017390025998627163,-1.7218462503755394e-5,-2.7986581351569095e-8,-0.0017386492629266872,-1.7033516940844868e-5,-2.78287765345854e-8,-0.0017383648667583472,-1.6834511621145167e-5,-2.7658071698212013e-8,-0.0017381483860776027,-1.6654526309760896e-5,-2.750323777098479e-8,-0.0017379857880764208,-1.6527352718845074e-5,-2.7393844848311547e-8,-0.0017378488996451671,-1.6481799532138352e-5,-2.735530264547702e-8,-0.0017376966372265247,-1.653390656976417e-5,-2.7402002468754002e-8,-0.0017374807521994074,-1.6678137811977933e-5,-2.752950967892001e-8,-0.0017371577619254865,-1.6881003467352378e-5,-2.7708880462880502e-8,-0.0017367058418978965,-1.7082956805723142e-5,-2.7888277038928824e-8,-0.0017361397871615877,-1.7213636041267133e-5,-2.8006313607759834e-8,-0.0017355130919502622,-1.7217983517437767e-5,-2.8014887489228886e-8,-0.0017349010873700975,-1.7080148864802256e-5,-2.789998107144859e-8,-0.0017343723348015217,-1.6829898005292252e-5,-2.7687166142917287e-8,-0.0017339647832955254,-1.6527764114669422e-5,-2.742869117101087e-8,-0.0017336786370508808,-1.6239846977128967e-5,-2.718170516827529e-8,-0.0017334849605685624,-1.6017009429821272e-5,-2.6990333500378085e-8,-0.0017333407869161536,-1.588567181395312e-5,-2.6877727087182345e-8,-0.0017332024740586718,-1.5848606242811324e-5,-2.6846667644146168e-8,-0.0017330340615586818,-1.5890746362680283e-5,-2.68844715727071e-8,-0.0017328110493750382,-1.598598400945783e-5,-2.696877596915934e-8,-0.00173252127473545,-1.6103053832416733e-5,-2.7072598915931684e-8,-0.0017321643150833425,-1.6210210138051937e-5,-2.716841036510506e-8,-0.0017317501140170313,-1.6278998147010685e-5,-2.723144593688566e-8,-0.0017312970188940173,-1.6287366080985484e-5,-2.7242447571344237e-8,-0.0017308292084595779,-1.6222185622260528e-5,-2.7189872388028625e-8,-0.001730373452436675,-1.6081006942388617e-5,-2.7071418830950497e-8,-0.0017299553582569695,-1.5872667604661172e-5,-2.6894553273205772e-8,-0.0017295955423252537,-1.5616500957420817e-5,-2.6675832877706237e-8,-0.0017293061873740823,-1.5340170469505593e-5,-2.6439061947713e-8,-0.0017290883470865532,-1.507625010199129e-5,-2.6212382075122478e-8,-0.0017289303472872032,-1.485771739629063e-5,-2.6024423253133448e-8,-0.0017288076171489378,-1.4712600788592941e-5,-2.5899692716363257e-8,-0.0017286843786890062,-1.4657982104751628e-5,-2.5853345982890227e-8,-0.0017285179920752429,-1.469378801204321e-5,-2.5885710544355952e-8,-0.0017282669016267444,-1.4797809692912494e-5,-2.597784298491023e-8,-0.0017279022709099565,-1.4924826606494031e-5,-2.6090678957383975e-8,-0.0017274210330882648,-1.5013539408658058e-5,-2.6171041964052904e-8,-0.0017268544886931924,-1.500339980186787e-5,-2.6166307322124555e-8,-0.0017262646488298942,-1.4857541654773406e-5,-2.6044338623451537e-8,-0.0017257250829835684,-1.4580494467278208e-5,-2.5808814537283378e-8,-0.0017252937794389228,-1.4218526667931194e-5,-2.5499476937908507e-8,-0.0017249930231404602,-1.3840794807331261e-5,-2.517585149150039e-8,-0.0017248067699141875,-1.351270711306445e-5,-2.4894335555473773e-8,-0.0017246934534974646,-1.3276295708485894e-5,-2.4691333401292228e-8,-0.0017246038274408126,-1.314433765536367e-5,-2.4578159853052325e-8,-0.0017244948196652298,-1.3105269854769773e-5,-2.454517288778279e-8,-0.0017243364526524838,-1.3132362073222714e-5,-2.456957312402072e-8,-0.0017241132667976712,-1.3192342565411862e-5,-2.4622786661510245e-8,-0.0017238228661482834,-1.325163183139236e-5,-2.4675851118792835e-8,-0.0017234735662261548,-1.3280343921097598e-5,-2.470291409721152e-8,-0.0017230820075737141,-1.3254924222723466e-5,-2.4683557620105018e-8,-0.0017226707950760843,-1.3160121817767504e-5,-2.4604525475472103e-8,-0.001722265910630456,-1.2990581890931382e-5,-2.4461095384133306e-8,-0.001721893605087852,-1.275194862461917e-5,-2.4258014835579526e-8,-0.0017215766694778005,-1.2461004044485085e-5,-2.400961012256891e-8,-0.0017213304202050618,-1.2144266502687791e-5,-2.373858904526001e-8,-0.0017211591144521662,-1.1834740035222872e-5,-2.3473278345894057e-8,-0.0017210536379387664,-1.15669121811399e-5,-2.3243368159746304e-8,-0.0017209912434660293,-1.137053703664978e-5,-2.3074600444917153e-8,-0.00172093786428734,-1.126418106526938e-5,-2.2983213066028008e-8,-0.0017208531150557185,-1.1249725559581083e-5,-2.2971150222902847e-8,-0.0017206977257007766,-1.1309037278010377e-5,-2.3023095245395752e-8,-0.0017204427559582552,-1.1404176889886242e-5,-2.3106548502949438e-8,-0.0017200791234227555,-1.1482681882738014e-5,-2.3176327687590162e-8,-0.0017196246541953794,-1.148889330573019e-5,-2.3184350335903796e-8,-0.001719124641958263,-1.1380227657635337e-5,-2.3093722950941158e-8,-0.0017186423638384035,-1.114361781624759e-5,-2.289295661201278e-8,-0.0017182400231541156,-1.0804036814357762e-5,-2.2603315828948557e-8,-0.0017179572397719124,-1.0418304686722344e-5,-2.2273489276189473e-8,-0.0017177979779009823,-1.0055136813138216e-5,-2.1962468500676522e-8,-0.0017177326568771723,-9.771363476111051e-6,-2.171915971274942e-8,-0.0017177126940655086,-9.59618259083335e-6,-2.1568855933039855e-8,-0.0017176882158911563,-9.528664202440341e-6,-2.151102115154199e-8,-0.0017176207842986657,-9.54532916023194e-6,-2.152570092195504e-8,-0.001717488539588401,-9.61114215968148e-6,-2.1582903167043163e-8,-0.0017172856020235222,-9.688935408136953e-6,-2.1650695633700068e-8,-0.0017170188075453885,-9.745503388018222e-6,-2.1700489974222203e-8,-0.001716704030343493,-9.75481187740589e-6,-2.1709853665659155e-8,-0.001716363051667733,-9.699527683861308e-6,-2.1663854398151375e-8,-0.0017160209740540878,-9.571902058244573e-6,-2.155581284513286e-8,-0.0017157037275235207,-9.374493289871258e-6,-2.1387892099804606e-8,-0.0017154351582843574,-9.12063251889091e-6,-2.1171465309349033e-8,-0.0017152334371241793,-8.834059379219236e-6,-2.0926792740536966e-8,-0.0017151070380174468,-8.54691461997685e-6,-2.0681324010697784e-8,-0.0017150511747853247,-8.295434661355793e-6,-2.0466057621787945e-8,-0.0017150460711992154,-8.113332137404114e-6,-2.030992124260642e-8,-0.0017150584488687581,-8.023886119027629e-6,-2.0233017236108107e-8,-0.0017150469068009022,-8.032794681682757e-6,-2.0240470470753276E-08,-0.0017149705846409252,-8.124212126971078e-6,-2.031895666669989e-8,-0.0017147992299687779,-8.261786867259084e-6,-2.043750161115691e-8,-0.0017145220766764634,-8.39524066367176e-6,-2.0553060054856926e-8,-0.001714152932724592,-8.471588872493842e-6,-2.062012893709478e-8,-0.0017137294505731322,-8.448766698921679e-6,-2.0602470471424994e-8,-0.0017133056268037235,-8.30827935977141e-6,-2.0484010951138584e-8,-0.0017129382965746429,-8.062726137621993e-6,-2.0275329834940626e-8,-0.0017126708829768335,-7.754388283059394e-6,-2.0012476947012425e-8,-0.0017125200757254853,-7.443621313326269e-6,-1.9747060849152198e-8,-0.0017124712795059404,-7.190431363037621e-6,-1.9530504080148718e-8,-0.001712485108463056,-7.0366396458408515e-6,-1.9398773754969298e-8,-0.0017125116285125956,-6.995979960543143e-6,-1.9363850589301513e-8,-0.0017125055152946264,-7.054904126090996e-6,-1.941433171688431e-8,-0.0017124362267456486,-7.181290036679982e-6,-1.9522819783303132e-8,-0.0017122912356786113,-7.33559115667751e-6,-1.9655458212988638e-8,-0.0017120739679193392,-7.480041670713854e-6,-1.9779851901213196e-8,-0.0017117993662422982,-7.584250733816216e-6,-1.9869913460128613e-8,-0.0017114893374762983,-7.627641340691138e-6,-1.9907989660052855e-8,-0.0017111690927208221,-7.6000125055850025e-6,-1.9885345225042433e-8,-0.0017108644073861132,-7.501412760528949e-6,-1.9802025000362843e-8,-0.0017105992780522003,-7.341978719606794e-6,-1.966667578346078e-8,-0.0017103933189507282,-7.1417111820099305e-6,-1.949632951528594e-8,-0.0017102585004460788,-6.929573781906971e-6,-1.9315642219774395e-8,-0.0017101954017993111,-6.7409497837180035e-6,-1.9154764556717096e-8,-0.0017101899463117245,-6.612514274616833e-6,-1.904501927146042e-8,-0.0017102124219094009,-6.574302226505446e-6,-1.9012164611844463e-8,-0.0017102208546907933,-6.640381461484933e-6,-1.906841604034119e-8,-0.0017101696872487946,-6.801430426475136e-6,-1.920604126355059e-8,-0.0017100221870999638,-7.023203351349197e-6,-1.939596217498844e-8,-0.0017097624173563275,-7.2532026779098715e-6,-1.959339512897098e-8,-0.0017094018542985613,-7.4343348959541015e-6,-1.9749511339903364e-8,-0.0017089776595243197,-7.520980981562084e-6,-1.982519953065219e-8,-0.0017085430785728673,-7.491875094526717e-6,-1.98021064005799e-8,-0.0017081533169143335,-7.355782261528479e-6,-1.968751486928549e-8,-0.0017078512816734047,-7.148736530329722e-6,-1.9512013140907094e-8,-0.0017076570788535014,-6.924050653939927e-6,-1.9321004792382517e-8,-0.0017075639301940206,-6.73805286028801e-6,-1.9162573935492407e-8,-0.0017075414744693901,-6.635623404704152e-6,-1.9075152574921577e-8,-0.0017075452538536885,-6.6397481673598866e-6,-1.907856769945405e-8,-0.0017075291279762277,-6.74799680854229e-6,-1.917095975773456e-8,-0.001707456464753147,-6.936270654025548e-6,-1.9331909124735297e-8,-0.001707306873839935,-7.167486224038338e-6,-1.9529815014463757e-8,-0.0017070774940020905,-7.40150152130711e-6,-1.9730384470556232e-8,-0.001706780055599116,-7.603160648750164e-6,-1.9903542367193303e-8,-0.0017064359548183703,-7.747073464223104e-6,-2.0027552034501053e-8,-0.0017060712869391593,-7.819370843360752e-6,-2.009053088308096e-8,-0.0017057128647851082,-7.81750689300007e-6,-2.0090272816758505e-8,-0.0017053853475831233,-7.749258787440385e-6,-2.0033369653230264e-8,-0.0017051090246987348,-7.63165252439743e-6,-1.9934273203516424e-8,-0.0017048976130836205,-7.48990374053086e-6,-1.9814391821666054e-8,-0.0017047556071532683,-7.355870167993619e-6,-1.9700800557958514e-8,-0.0017046752314598494,-7.265069438578037e-6,-1.962374814999241e-8,-0.001704633907873945,-7.251176602605976e-6,-1.9612010035070857e-8,-0.0017045942123405239,-7.337574074837141e-6,-1.968569133958673e-8,-0.0017045088636094908,-7.527447475358424e-6,-1.984773628854404e-8,-0.0017043321125059295,-7.796609969145614e-6,-2.0077728553648004e-8,-0.0017040352892301902,-8.094628881719389e-6,-2.033278529821439e-8,-0.0017036199174814714,-8.357321757473915e-6,-2.0558199710134475e-8,-0.0017031207453830734,-8.527279641554265e-6,-2.07049674527795e-8,-0.0017025957211632837,-8.573251713438601e-6,-2.0746330786424403e-8,-0.0017021073995130097,-8.499347348814524e-6,-2.0685612575558143e-8,-0.0017017044497118188,-8.341162243397592e-6,-2.0552915628861326e-8,-0.0017014101770728533,-8.152663137236833e-6,-2.0393996128262026e-8,-0.001701220123087332,-7.99029114266652e-6,-2.0256802195303342e-8,-0.0017011069963663247,-7.899440803721392e-6,-2.0180015465234488e-8,-0.0017010298088642021,-7.905934485141747e-6,-2.0185786978182623e-8,-0.0017009442845075707,-8.013087611659719e-6,-2.0277176829621546e-8,-0.001700812271449088,-8.203778005991368e-6,-2.043983579510598e-8,-0.001700608518360257,-8.446292559298515e-6,-2.0646923134808663e-8,-0.0017003238336688721,-8.702227743979316e-6,-2.086581340902206e-8,-0.0016999645473487364,-8.934420936028888e-6,-2.106486263485468e-8,-0.00169954913513485,-9.113190354238928e-6,-2.1218747636263865e-8,-0.0016991033874861217,-9.22001102864717e-6,-2.1311618593498575e-8,-0.0016986554807616981,-9.248647435155238e-6,-2.13380740034121e-8,-0.0016982318855080062,-9.204399731118582e-6,-2.1302519561850147e-8,-0.0016978543995590132,-9.10238542444722e-6,-2.121770451114759e-8,-0.0016975380294125626,-8.965565187764711e-6,-2.1103046899748445e-8,-0.0016972892355614753,-8.822716746064468e-6,-2.0982928734896224e-8,-0.001697104147393287,-8.706075816679848e-6,-2.0884721675880377e-8,-0.0016969666972081788,-8.647926619789557e-6,-2.0835920379221263e-8,-0.00169684740011825,-8.675181170249637e-6,-2.0859546028640884e-8,-0.0016967045804855362,-8.801519162920972e-6,-2.0967436610679105e-8,-0.0016964905065300056,-9.01844333619171e-6,-2.1152579343920042e-8,-0.0016961639731149969,-9.289415793960601e-6,-2.138406153842879e-8,-0.001695707106127775,-9.553311743058151e-6,-2.160998864081665e-8,-0.0016951385176591758,-9.741104001052941e-6,-2.1771702413548394e-8,-0.0016945128063564176,-9.801298769835388e-6,-2.1825425829586347e-8,-0.001693902985101117,-9.720976758235634e-6,-2.176009941619977e-8,-0.0016933741666031645,-9.529958261736527e-6,-2.1600847624303437e-8,-0.0016929627649807358,-9.286767509844959e-6,-2.1397063223247418e-8,-0.0016926700984223038,-9.056285660978077e-6,-2.1203544267075215e-8,-0.0016924690855679811,-8.890755742029625e-6,-2.1064502321326876e-8,-0.0016923170302585921,-8.819805710338477e-6,-2.1005150945671767e-8,-0.0016921682214408472,-8.8489478525651e-6,-2.1030391509463162e-8,-0.0016919833229793798,-8.963433333096914e-6,-2.1127991678712995e-8,-0.0016917350451069605,-9.1345146397534e-6,-2.1273812337831973e-8,-0.0016914106590955637,-9.326304850307346e-6,-2.1437577987506275e-8,-0.0016910119930584138,-9.50234733555081e-6,-2.158843896357954e-8,-0.0016905533915853798,-9.631291450467526e-6,-2.1699798048136526e-8,-0.0016900581754099764,-9.69110899668149e-6,-2.1752905508392625e-8,-0.0016895542586885487,-9.671493446052107e-6,-2.1738910779710982e-8,-0.0016890696305639124,-9.574362283327237e-6,-2.1659302094648493e-8,-0.0016886283866275086,-9.412685663855614e-6,-2.1524925607916213e-8,-0.001688247743667381,-9.208192002297713e-6,-2.1354054577412935e-8,-0.0016879360364431592,-8.98854909081757e-6,-2.1170017704178606e-8,-0.0016876914563649197,-8.784322466768402e-6,-2.0998642806816554e-8,-0.0016875013089274406,-8.625690463057586e-6,-2.086549585606093e-8,-0.0016873417279686287,-8.53858560005698e-6,-2.0792626469016813e-8,-0.001687178325547085,-8.539692110101775e-6,-2.079432297753112e-8,-0.0016869691166023061,-8.630151987089456e-6,-2.0871746461888742e-8,-0.0016866715029369072,-8.789267347131455e-6,-2.100754636158876e-8,-0.001686254318023176,-8.97163165767185e-6,-2.1163398058176738e-8,-0.0016857129301765929,-9.112940780203801e-6,-2.1284938230037018e-8,-0.0016850801573558933,-9.148161471228022e-6,-2.1317184884815498e-8,-0.001684422796496244,-9.037763226930734e-6,-2.122672379094548e-8,-0.0016838198027999708,-8.787797426035769e-6,-2.1018591580797273e-8,-0.0016833318949512636,-8.44940531154977e-6,-2.0735764854021037e-8,-0.0016829803888256231,-8.096954946202853e-6,-2.0440726785689123e-8,-0.0016827459755191082,-7.799047296914452e-6,-2.0191141842253217e-8,-0.001682583454796451,-7.598483392665845e-6,-2.0023083749209106e-8,-0.0016824406087873034,-7.507046345778621e-6,-1.9946647297024858e-8,-0.00168227233893414,-7.511005682637191e-6,-1.995050767444206e-8,-0.0016820477635596358,-7.580629314178077e-6,-2.0009840918065495e-8,-0.0016817519149339769,-7.679226904576688e-6,-2.0093885939198342e-8,-0.0016813844563981313,-7.770076038468931e-6,-2.017176810577966e-8,-0.00168095711875254,-7.821310599237092e-6,-2.02166337334569e-8,-0.0016804905773571324,-7.809332280904686e-6,-2.020854689581189e-8,-0.001680010953275545,-7.72105576611143e-6,-2.013639837823021e-8,-0.001679546036692029,-7.555014866778501e-6,-1.999884849506686e-8,-0.0016791214090587767,-7.3212178391739496e-6,-1.9804212819061585e-8,-0.0016787568208649483,-7.0396326381076e-6,-1.956919439356282e-8,-0.0016784633058374865,-6.737431280764423e-6,-1.9316573595337173e-8,-0.0016782413530992905,-6.445394475960026e-6,-1.907219462969039e-8,-0.001678080222805157,-6.193862700986028e-6,-1.8861571689255484e-8,-0.0016779584103784654,-6.008506027515523e-6,-1.8706342929766363e-8,-0.001677845249146384,-5.906093833141004e-6,-1.8620715185890165e-8,-0.0016777038192801804,-5.890290612856807e-6,-1.8607914310898255e-8,-0.0016774958004093384,-5.947719194763358e-6,-1.8656841222782147e-8,-0.0016771890493794792,-6.04551842846217e-6,-1.873997969081269e-8,-0.001676767832841618,-6.132885965309012e-6,-1.8814675758844495e-8,-0.0016762435242489034,-6.149771262434435e-6,-1.8830466334363702e-8,-0.0016756602448421592,-6.044400624246342e-6,-1.8743841862040513e-8,-0.001675087945535953,-5.795520152856072e-6,-1.8536922752685177e-8,-0.001674600133436057,-5.427392994706577e-6,-1.8229981102522346e-8,-0.0016742451149479186,-5.004926323171685e-6,-1.7877295972549893e-8,-0.0016740276746855878,-4.608399079730942e-6,-1.7546004506771972e-8,-0.0016739119980301556,-4.302510944871832e-6,-1.729026756861099e-8,-0.0016738412334485694,-4.117301795986611e-6,-1.7135338860309113e-8,-0.0016737597260480786,-4.047201977927108e-6,-1.7076725758927597e-8,-0.0016736272940627243,-4.062129813392705e-6,-1.708939796436854e-8,-0.0016734236526182423,-4.121225593287399e-6,-1.7139232302019368e-8,-0.0016731464204356393,-4.183527382690121e-6,-1.719194905092986e-8,-0.001672806667024793,-4.214324596648135e-6,-1.721846074771176e-8,-0.0016724243936852225,-4.1882372375009135e-6,-1.7197481453770475e-8,-0.0016720247121886067,-4.090499672781078e-6,-1.71166177315317e-8,-0.001671634560924054,-3.9173958791691575e-6,-1.697273167292582e-8,-0.0016712796064216253,-3.676148262014399e-6,-1.677183719774153e-8,-0.0016709811132979546,-3.3841381804794744e-6,-1.6528438089025636e-8,-0.001670752839878428,-3.067097445950772e-6,-1.626401154436992e-8,-0.0016705983902454557,-2.755995668689129e-6,-1.6004410253319553e-8,-0.0016705096420609104,-2.4827410471397807e-6,-1.5776279333381472e-8,-0.0016704667555038147,-2.2751486697532836e-6,-1.5602864533974782e-8,-0.001670440054529566,-2.151829226592785e-6,-1.5499751063543376e-8,-0.001670393800312215,-2.117817669325008e-6,-1.5471212409242127e-8,-0.001670291584102462,-2.1617204405963794e-6,-1.5507814775575798e-8,-0.0016701029794063543,-2.2550054075283997e-6,-1.5585801952800447e-8,-0.0016698110099757678,-2.354258371242796e-6,-1.5668961170856538e-8,-0.0016694193436379667,-2.4075797922360825e-6,-1.5713962061550806e-8,-0.0016689568880535386,-2.3659216383981152e-6,-1.5679837674904023e-8,-0.001668476255894404,-2.198389705642687e-6,-1.5540770761251108e-8,-0.0016680427111036224,-1.9070635849955495e-6,-1.5298448763090533e-8,-0.0016677138985701416,-1.5331708742942751e-6,-1.49871845626283e-8,-0.001667517861434114,-1.147223731015582e-6,-1.4665690841976024e-8,-0.0016674416245268775,-8.243545513833562e-7,-1.4396566986045408e-8,-0.0016674379465091208,-6.170824570407865e-7,-1.4223645290633774e-8,-0.0016674458929825874,-5.401446955353702e-7,-1.415932767755485e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json new file mode 100644 index 00000000..ddc7d4dd --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":20000,"numberOfSamples":1000,"samples":[0.002920358133904192,-6.784113942412794e-6,1.9052440314477163e-8,0.0029206413912713745,-6.613636446664559e-6,1.880279195741177e-8,0.0029208307139081857,-6.4248857259363685e-6,1.8526799455172666e-8,0.002920930147853429,-6.259580496894272e-6,1.8285299846459358e-8,0.002920958301557765,-6.151401288497133e-6,1.8127384394993633e-8,0.002920943527534336,-6.121517965926748e-6,1.8083876197142136e-8,0.002920918375602291,-6.176714362040785e-6,1.816459054828576e-8,0.0029209142523147777,-6.309966452545619e-6,1.8359183512205728e-8,0.0029209570493570875,-6.502919273456435e-6,1.864078390277559e-8,0.0029210641805222245,-6.729529878146821e-6,1.8971329337261025e-8,0.0029212431239192664,-6.960111764971586e-6,1.9307474224319167e-8,0.0029214911994797127,-7.165144308668532e-6,1.960613535377138e-8,0.002921796120285953,-7.318617634903727e-6,1.982935162046132e-8,0.002922137007124233,-7.4010933087209115e-6,1.994874542519259e-8,0.0029224858842140738,-7.402792330024526e-6,1.9950053694911065e-8,0.0029228100891597296,-7.3269133160290385e-6,1.9838013786501703e-8,0.0029230765056806078,-7.192875581754198e-6,1.9641124744988003e-8,0.002923258593947595,-7.038021661925838e-6,1.941411030247615e-8,0.0029233461420444737,-6.914897975233613e-6,1.9233867338703342e-8,0.0029233550561071457,-6.88082642372724e-6,1.9184132872670825e-8,0.002923331035256764,-6.979157664713172e-6,1.9328047777690732e-8,0.002923340142385916,-7.2183869507838524e-6,1.9677702094935728e-8,0.002923445583922481,-7.561828631160178e-6,2.0179192009197127e-8,0.002923681317946548,-7.937980661899995e-6,2.072789220706034e-8,0.0029240384097172193,-8.268180631197756e-6,2.1208898937220332e-8,0.0029244717828463846,-8.495446917109097e-6,2.1539128515592525e-8,0.0029249206337382287,-8.5993447870362e-6,2.168897594018406e-8,0.0029253292642615033,-8.593866031641322e-6,2.1679150221309016e-8,0.002925659785723746,-8.515407336314436e-6,2.1563040883823154e-8,0.0029258958667452545,-8.409144036535884e-6,2.140676187245665e-8,0.0029260405842169023,-8.318330424117874e-6,2.1273515340970926e-8,0.0029261116369550147,-8.277597083016847e-6,2.1213831819462888e-8,0.0029261360482877165,-8.309529221173803e-6,2.1260608728115165e-8,0.0029261452014683505,-8.42340926017503e-6,2.142729184107828e-8,0.002926170313882796,-8.615486024606374e-6,2.1708269585437497e-8,0.00292623844165663,-8.870566448345604e-6,2.2081201504360447e-8,0.00292636924853009,-9.164729529600066e-6,2.2511001728707966e-8,0.0029265727710682966,-9.46889441648262e-6,2.295507952203869e-8,0.0029268483980316373,-9.752900430721535e-6,2.336931848773817e-8,0.0029271851539575938,-9.989600330613871e-6,2.371405611551756e-8,0.0029275631112714875,-1.0158516530347245e-5,2.3959412562508196e-8,0.002927955664309901,-1.0248883948905652e-5,2.408973052847181e-8,0.002928332543885939,-1.0262052169211477e-5,2.4107097524156514e-8,0.002928663659626732,-1.0213176614852856e-5,2.4033835922844377e-8,0.002928924086482032,-1.0131859571605514e-5,2.391343414198871e-8,0.002929100469893201,-1.006068720901442e-5,2.380835533385682e-8,0.00292919825272032,-1.0049779074946679e-5,2.3791978424671676e-8,0.0029292472514429032,-1.0145544621233506e-5,2.3932078427797663e-8,0.0029293008561212352,-1.0374107175155202e-5,2.4266580620660107e-8,0.0029294238469290295,-1.0725024417737487e-5,2.4779841229322424e-8,0.002929669111734987,-1.114611883277768e-5,2.539521780426727e-8,0.0029300535325597157,-1.1558053316444333e-5,2.599647534430263e-8,0.0029305485124082784,-1.1884615009568598e-5,2.647210161222967e-8,0.0029310923955805034,-1.2081611605397568e-5,2.675757842754958e-8,0.002931616304399638,-1.2148069338781219e-5,2.6851763811636517e-8,0.002932067285150511,-1.2117575796211164e-5,2.6804177118692685e-8,0.002932418917621506,-1.2040100109443465e-5,2.6688285414068273e-8,0.002932670230039864,-1.1965464765100921e-5,2.657720810322275e-8,0.0029328387680504554,-1.1933289258766363e-5,2.6528961772784398e-8,0.00293295270881014,-1.196897681852962e-5,2.658062017342903e-8,0.002933044376699607,-1.2083490982675024e-5,2.67480469420976e-8,0.0029331455921541476,-1.2274805413081184e-5,2.7028061070784242e-8,0.002933284292138651,-1.2529877406152909e-5,2.7401345594697467e-8,0.00293348183921598,-1.2826952297089921e-5,2.7835835906596038e-8,0.0029337508490475143,-1.3138354603080276e-5,2.829083170402535e-8,0.002934093645838865,-1.3433894030281315e-5,2.872201713802254e-8,0.0029345016544849406,-1.3684880135773215e-5,2.908736254701938e-8,0.0029349561406361926,-1.386840837531521e-5,2.935340201831078e-8,0.002935430486740117,-1.3971275110489517e-5,2.95009506018706e-8,0.002935893835760189,-1.3992889279387817e-5,2.9529348563241594e-8,0.002936315747796631,-1.3946693107954746e-5,2.9458526641335536e-8,0.0029366714399644074,-1.3859725730502529e-5,2.9328347332084718e-8,0.0029369471463227275,-1.3770076163005065e-5,2.919483182596872e-8,0.0029371450608840764,-1.3721886782902614e-5,2.912277265954847e-8,0.002937286864066753,-1.3757394229001907e-5,2.917400350300773e-8,0.0029374138979444495,-1.3905986529102212e-5,2.9391340967481903e-8,0.002937581299334286,-1.4172039349156543e-5,2.9780814874648412e-8,0.002937844163109093,-1.45262281968288e-5,3.029905020497397e-8,0.0029382377175291947,-1.4907319198974039e-5,3.085599616240686e-8,0.0029387598782889463,-1.5239082205155629e-5,3.13397558100923e-8,0.0029393676298225253,-1.5457827043506526e-5,3.165695446938089e-8,0.002939992216838139,-1.5536378976067384e-5,3.1767915909756623e-8,0.0029405653190518453,-1.5490797301223943e-5,3.169654522724492e-8,0.002941041254771594,-1.536815347138079e-5,3.151235350452084e-8,0.00294140542344543,-1.5225670745632641e-5,3.129971116966001e-8,0.0029416699353257774,-1.511314588614597e-5,3.113191036723647e-8,0.002941863403875871,-1.5063955018859357e-5,3.105791466104839e-8,0.002942020994539501,-1.5093505935668198e-5,3.110013611490886e-8,0.002942177366646585,-1.520170158147927e-5,3.125814014183412e-8,0.0029423625508156873,-1.537654151057894e-5,3.1514004634474597e-8,0.002942599690849947,-1.559743059921687e-5,3.183721614696178e-8,0.00294290359336924,-1.5838011990550073e-5,3.2188849522134435e-8,0.00294327957060671,-1.606891948600009e-5,3.252562907878252e-8,0.002943722566359027,-1.626091105834113e-5,3.2804552667574874e-8,0.0029442169460562008,-1.6388674978272435e-5,3.2988495583917805e-8,0.002944737613991192,-1.643514977217652e-5,3.3052553288382284e-8,0.002945253028492552,-1.6395599116742716e-5,3.299000825108424e-8,0.0029457301748656087,-1.6280316984019043e-5,3.2816276383530096e-8,0.0029461409054937337,-1.6114844458962526e-5,3.2569189442586106e-8,0.002946468467779173,-1.59369584836108e-5,3.230452078197805e-8,0.0029467127007430827,-1.5790452065963385e-5,3.20867790313752e-8,0.002946892484190752,-1.571653783339316e-5,3.19765091292342e-8,0.0029470444074099875,-1.574421226294738e-5,3.201610119609517e-8,0.00294721700040216,-1.5881334913556607e-5,3.2216717921521556e-8,0.002947460426363542,-1.6108825234197094e-5,3.2549869520431156e-8,0.002947812788728661,-1.6380947123874963e-5,3.294795449427606e-8,0.002948286406491707,-1.663423983095662e-5,3.3317466246604255e-8,0.0029488597757889802,-1.6805051579412595e-5,3.356478318315856e-8,0.0029494809972528905,-1.6850594771345913e-5,3.362711592054566e-8,0.0029500837834087173,-1.6764027436157334e-5,3.3494691584581735e-8,0.002950609547099543,-1.65754022846451e-5,3.321214488618771e-8,0.0029510248489415226,-1.6338277873894157e-5,3.285874310463184e-8,0.002951326908519711,-1.6110067758768604e-5,3.251932528889389e-8,0.002951537740617979,-1.5935923031543694e-5,3.226045946019777e-8,0.002951692897861342,-1.5841154803625142e-5,3.2119268917177497e-8,0.0029518308167177263,-1.5831373922113136e-5,3.210371527010424e-8,0.002951985680243071,-1.5896753371837802e-5,3.219898309769699e-8,0.0029521838394617654,-1.6017149276703177e-5,3.237510141211502e-8,0.0029524425171660266,-1.6166416508957604e-5,3.259333287301716e-8,0.002952769476479237,-1.631566760743691e-5,3.281097659429368e-8,0.0029531628666808734,-1.6435949662826805e-5,3.298530817637135e-8,0.002953611072809355,-1.6501010877409013e-5,3.307765926789581e-8,0.0029540929521073237,-1.6490693620487103e-5,3.305842467294873e-8,0.002954579264429746,-1.639499922671663e-5,3.291305556929234e-8,0.00295503617946976,-1.6218085914775832e-5,3.264794315872196e-8,0.0029554312636725514,-1.598068794654785e-5,3.2293958485677294e-8,0.002955741283648492,-1.5719093070127868e-5,3.1904895652031e-8,0.002955959806034109,-1.547937573783238e-5,3.154889715991773e-8,0.0029561017019983917,-1.5307268455907255e-5,3.129343797151466e-8,0.002956202124345455,-1.5236171399037398e-5,3.118759456372629e-8,0.002956309344895545,-1.5277053681785616e-5,3.124717312307237e-8,0.002956473061121083,-1.5413664099591182e-5,3.144774573045378e-8,0.002956731321048645,-1.56048785559379e-5,3.1728248939181924e-8,0.00295709965139376,-1.5793981380019647e-5,3.20047831722283e-8,0.002957565526219128,-1.592284518104132e-5,3.2191570296512827e-8,0.002958090281759539,-1.5947524626471783e-5,3.2223937815342005e-8,0.0029586188407144266,-1.5850738642942996e-5,3.2076690446522256e-8,0.002959094945026436,-1.5646720190761735e-5,3.177121976954928e-8,0.002959476848073268,-1.5376083073574004e-5,3.136786811924238e-8,0.0029597476091094625,-1.5092533249955837e-5,3.094622473963542e-8,0.0029599165389014807,-1.4847001851064014e-5,3.058161120537158e-8,0.0029600126576895124,-1.4675368085643121e-5,3.032691574396036e-8,0.0029600742944759875,-1.4593152680899354e-5,3.020479859533819e-8,0.0029601393336397405,-1.4596748310243467e-5,3.020960605628144e-8,0.002960238698290419,-1.4668406120361078e-5,3.031483113270092e-8,0.002960393348094185,-1.4782054688900286e-5,3.048176038556993e-8,0.0029606137208240614,-1.4908213038661743e-5,3.0666732803764704e-8,0.002960900307724539,-1.5017561814104221e-5,3.082638893027108e-8,0.002961244434757364,-1.50835587775595e-5,3.092151102287129e-8,0.0029616289196745093,-1.508481954343969e-5,3.092053838966425e-8,0.0029620288994349014,-1.5007922270276185e-5,3.080373072655211e-8,0.002962413625758523,-1.485083932757977e-5,3.056826258788275e-8,0.0029627502369207145,-1.4626387490437281e-5,3.023332794121676e-8,0.002963010182597418,-1.4364071234967201e-5,2.9842834228472035E-08,0.002963177767764606,-1.4107920694885702e-5,2.9462135061082662e-8,0.002963258245024794,-1.390835698351417e-5,2.9165907356940043e-8,0.002963281197327158,-1.3808595017261191e-5,2.9017964910745684e-8,0.0029632955592347656,-1.3829869002871433e-5,2.9049396981577167e-8,0.0029633562901483323,-1.396211303207011e-5,2.9244867118890364e-8,0.002963507429295757,-1.4165122782118485e-5,2.9544476640865564e-8,0.0029637685076608447,-1.4380196230406393e-5,2.986111941278739e-8,0.0029641293995320965,-1.4547336536681909e-5,3.010599812437667e-8,0.0029645544477331213,-1.462147944059388e-5,3.021262159737794e-8,0.002964993199433165,-1.4582947790407866e-5,3.015220993420224e-8,0.002965393786237881,-1.4440252912374524e-5,2.993775541428279e-8,0.002965715263846332,-1.4225700000439636e-5,2.9617431791449873e-8,0.002965936105661564,-1.3985740295725363e-5,2.926023813664994e-8,0.0029660572013795127,-1.3768956215185547e-5,2.893816297894991e-8,0.0029660991821764673,-1.361495218959358e-5,2.8709729777681658e-8,0.0029660954822132313,-1.3546940317984253e-5,2.8609061319606824e-8,0.0029660836753954115,-1.3569374678669404e-5,2.86424548981107e-8,0.002966097715672726,-1.3670152439685494e-5,2.8791723939980673e-8,0.002966162758787371,-1.382559151959131e-5,2.9021622975413763e-8,0.002966292909415142,-1.4006141463460001e-5,2.9288313696922994e-8,0.0029664912327432187,-1.4181368889154244e-5,2.9546719679842586e-8,0.00296675098439865,-1.432364071392131e-5,2.975594063607446e-8,0.0029670571768570203,-1.441068763053631e-5,2.988302426452729e-8,0.0029673880824924595,-1.4427641005829092e-5,2.990599124607975e-8,0.0029677168251591012,-1.4369146872198044e-5,2.9817001755657374e-8,0.002968013691011178,-1.4241810907193253e-5,2.962601250879183e-8,0.0029682500709710805,-1.4066513065220714e-5,2.93642059457502e-8,0.002968404731954602,-1.387910107568484e-5,2.9084963591962518e-8,0.002968471978193223,-1.3727039399383037e-5,2.88588007731629e-8,0.002968469059433979,-1.3659767445614165e-5,2.875897632722551e-8,0.0029684378958154877,-1.3713145157645224e-5,2.8838395498620046e-8,0.00296843646941631,-1.3893353069001035e-5,2.9105800690051132e-8,0.0029685202671800416,-1.4169383669450605e-5,2.9514779524273305e-8,0.0029687215722676882,-1.4480741544933563e-5,2.997532983204709e-8,0.0029690374925616814,-1.4758063993347154e-5,3.038452227517716e-8,0.002969432550313911,-1.494625005415047e-5,3.0660807023103234e-8,0.0029698527534371528,-1.501941615613648e-5,3.076614564288683e-8,0.002970242975131316,-1.4983590593674082e-5,3.070991787329774e-8,0.002970560707010411,-1.486978332026129e-5,3.053852833456252e-8,0.002970783380041674,-1.4722598896256202e-5,3.031840881526067e-8,0.0029709096528671933,-1.4588664344004444e-5,3.01187930361603e-8,0.0029709563531596737,-1.4507263299708571e-5,2.999782950169233e-8,0.0029709528196634203,-1.450412607323851e-5,2.9993430059943106e-8,0.0029709340930672533,-1.4588613765477793e-5,3.011917526326649e-8,0.0029709342235076834,-1.4754157039491757e-5,3.036503994043903e-8,0.0029709808089967682,-1.4981337496558506e-5,3.070201327711546e-8,0.0029710914938153535,-1.524256500555707e-5,3.1089054340748793e-8,0.0029712726180356206,-1.5507206205397086e-5,3.1480689014010646e-8,0.0029715197167699482,-1.5746211713835314e-5,3.1833846061620287e-8,0.002971819217195222,-1.5935676545529305e-5,3.211310994113541e-8,0.0029721506391493777,-1.6059298169857467e-5,3.2294356226821274e-8,0.002972488915422919,-1.6110085669579795e-5,3.236730284468479e-8,0.0029728068475521232,-1.609171171330991e-5,3.233754856855953e-8,0.0029730780491342918,-1.6019684593364873e-5,3.2228331099957483e-8,0.002973280996517472,-1.5922014544477006e-5,3.2081488017266414e-8,0.002973404663571169,-1.5838170077771026e-5,3.195582334149546e-8,0.0029734552005521004,-1.581431674792034e-5,3.1919928221359786e-8,0.002973461188362297,-1.589302000644207e-5,3.2036819078499595e-8,0.0029734728689441363,-1.609792381140514e-5,3.234121094806937e-8,0.0029735507610109523,-1.6418860094304986e-5,3.281753040259766e-8,0.002973744280704623,-1.6807320664665265e-5,3.3393348896120576e-8,0.0029740698756861514,-1.7189700640362698e-5,3.395915574472174e-8,0.002974502213153519,-1.7494403406110863e-5,3.4408643234550394e-8,0.002974984560957685,-1.767802825408724e-5,3.4677597890506306e-8,0.0029754513730213712,-1.773672456282881e-5,3.476073805538473e-8,0.002975849730807777,-1.7700253301847003e-5,3.470280180238341e-8,0.0029761508530331345,-1.7616516953682456e-5,3.4575409590022556e-8,0.0029763511916333146,-1.7535807952942615e-5,3.445351817065031e-8,0.0029764671850589274,-1.7499734982786542e-5,3.439891544803893e-8,0.002976527814731713,-1.753553605886131e-5,3.445182277720747e-8,0.0029765674333753333,-1.7654482487030005e-5,3.462863214504655e-8,0.0029766197783471023,-1.785285028144174e-5,3.4923452338110174e-8,0.002976713303471049,-1.8114495901758313e-5,3.531200044507124e-8,0.00297686786306883,-1.841450460826479e-5,3.575704849602197e-8,0.002977092820345906,-1.8723439945705067e-5,3.6214741069552453E-08,0.0029773865940886136,-1.9011730919729806e-5,3.6641106825301627e-8,0.00297773758195352,-1.9253744086145604e-5,3.6998098021908325e-8,0.002978126225410339,-1.9431077092030192e-5,3.725847234837322e-8,0.002978527778364898,-1.953481608938666e-5,3.740914085341509e-8,0.0029789154040244796,-1.9566826718393777e-5,3.7453087807647996e-8,0.002979263474936315,-1.9540223734977267e-5,3.741007038668588e-8,0.002979551126528603,-1.9479037319080024e-5,3.731610210216535e-8,0.002979766242014358,-1.9416859969519788e-5,3.722137847792964e-8,0.0029799099497124348,-1.9393715173435276e-5,3.7185523694292244e-8,0.002980000915971834,-1.94498533312271e-5,3.7268276541520824e-8,0.0029800772524500073,-1.9615566721707554e-5,3.7514326950814606e-8,0.002980192469529219,-1.9898167604817833e-5,3.7934040287157073e-8,0.0029804022602219083,-2.0271164712515565e-5,3.8487521814506124e-8,0.0029807434701728474,-2.067424132501533e-5,3.9084720785291444e-8,0.0029812147089178787,-2.1030261025836366e-5,3.961077233026522e-8,0.0029817719928732045,-2.127449949752043e-5,3.99694784583061e-8,0.0029823449666828935,-2.1379992430783766e-5,4.0121037663042906e-8,0.0029828645165091085,-2.136410513008704e-5,4.009182899623436e-8,0.0029832854451143304,-2.127531976246566e-5,3.995464665032265e-8,0.002983594498668351,-2.1171712511966522e-5,3.97964527218785e-8,0.0029838054954291746,-2.1103248487216302e-5,3.9691834147374094e-8,0.002983948836829765,-2.110276132606735e-5,3.968953147631429e-8,0.002984061290257191,-2.1184288397485705e-5,3.981006008442894e-8,0.002984178513731084,-2.1345484561751207E-05,4.004945855912969e-8,0.00298433040769511,-2.157146104983014e-5,4.0385128619668554e-8,0.002984538433971821,-2.183875045296736e-5,4.078179890719198e-8,0.002984814157245484,-2.2119128743535838e-5,4.1197228817699106e-8,0.0029851587068223267,-2.2383338100873876e-5,4.158774803164346e-8,0.0029855631058775885,-2.260472386163859e-5,4.191366897386889e-8,0.002986009558291577,-2.2762699849510053e-5,4.214444460091879e-8,0.002986473810408079,-2.2845709776562213e-5,4.226307152736928e-8,0.0029869284555065143,-2.285321248440732e-5,4.226903134195116e-8,0.0029873468009023675,-2.279640960153469e-5,4.217934987696174e-8,0.0029877069362470323,-2.2697618488155953e-5,4.202762496290873e-8,0.002987995706883981,-2.2588196005956238e-5,4.186087368514205e-8,0.0029882122724941918,-2.250493424394035e-5,4.173407992678916e-8,0.002988370845250907,-2.2484777608857293e-5,4.170223881865493e-8,0.0029885017936435655,-2.255756728162393e-5,4.180950622118746e-8,0.002988649508545319,-2.2737002269993502e-5,4.20757789848222e-8,0.002988864944534272,-2.3011660125789477e-5,4.248345478531366e-8,0.0029891917531914853,-2.3340375925996207e-5,4.2970713042447454e-8,0.0029896486141179545,-2.3657833305475466e-5,4.3439950290240724e-8,0.002990215930999584,-2.3893473135528555e-5,4.378597223794274e-8,0.0029908371871804683,-2.399812996226874e-5,4.393568517521914e-8,0.0029914382467285117,-2.396417191820179e-5,4.3878147729951906e-8,0.0029919551613743003,-2.38265851199188e-5,4.3666186218943454e-8,0.0029923547556799392,-2.364535922564181e-5,4.33899815622375e-8,0.0029926388924618567,-2.34815530183942e-5,4.314111317342226e-8,0.0029928352743501543,-2.3379858232251807e-5,4.298635560434982e-8,0.002992983643000855,-2.3362211966869825e-5,4.2958145653724355e-8,0.002993124239325345,-2.3429729514789833e-5,4.305762336091702e-8,0.0029932908205783236,-2.3568260581625195e-5,4.3263117748307686e-8,0.0029935075467194595,-2.3754218892099406e-5,4.353897939933425e-8,0.002993788115402275,-2.3959322132927218e-5,4.3842700238288005e-8,0.002994135865131543,-2.415427368613513e-5,4.413039745178603e-8,0.002994544317604473,-2.431187474329782e-5,4.436143642962751e-8,0.0029949981369148688,-2.4409940834154676e-5,4.4502773677267694e-8,0.002995474733920963,-2.4434159363146072e-5,4.453322269139798e-8,0.002995946867852737,-2.438065412063379e-5,4.444727962470359e-8,0.0029963863997792425,-2.4257633800533217e-5,4.425756592263305e-8,0.0029967688850502656,-2.4085455016201706e-5,4.399488097416399e-8,0.002997078338300538,-2.3894673268282683e-5,4.370522458009922e-8,0.002997311349129843,-2.3721945852451404e-5,4.344359182276227e-8,0.002997479656226587,-2.360404297666528e-5,4.32649398235654e-8,0.0029976103593761477,-2.357065305448074e-5,4.3213385803306306e-8,0.002997743110787153,-2.3636926496027646e-5,4.3311086910764544e-8,0.002997923748088096,-2.379704664473801e-5,4.354874311053949e-8,0.0029981942175954005,-2.4020889171051923e-5,4.388077348084879e-8,0.0029985799058661606,-2.4256592745038067e-5,4.422930981774514e-8,0.0029990778745615423,-2.444143335305884e-5,4.450051619084297e-8,0.002999651934402648,-2.4520419116148653e-5,4.461236561595702e-8,0.003000240119555401,-2.4466536425871935e-5,4.452486712152954e-8,0.0030007744382348467,-2.4292342453891288e-5,4.4257372821343864e-8,0.0030012043836071256,-2.4045254021272564e-5,4.388146492212079e-8,0.003001512146798215,-2.3788596603881732E-05,4.3492440534199405e-8,0.003001713011004348,-2.3579216292932016e-5,4.3175608587979206e-8,0.0030018440201570076,-2.345253767991309e-5,4.298382851303703e-8,0.0030019492490419297,-2.3418849803166555e-5,4.293202980731309e-8,0.0030020683571267115,-2.3467794115789163e-5,4.300412504387121e-8,0.003002230577040951,-2.3575924418412295e-5,4.3164515275253525e-8,0.0030024530481396073,-2.371369072928725e-5,4.336864156691746e-8,0.0030027414546316424,-2.3850507219765965e-5,4.357057053753451e-8,0.0030030914014577796,-2.395813305179184e-5,4.3728004665977624e-8,0.003003489836964812,-2.4013129247926298e-5,4.3805913400348664e-8,0.003003916505986112,-2.3999045197511412e-5,4.3779791639210484e-8,0.0030043458018004154,-2.3908648392456543e-5,4.3639009503235175e-8,0.003004749546491452,-2.3746015567883387e-5,4.338995688522113e-8,0.0030051010544452283,-2.3527756377723387e-5,4.305786620408989e-8,0.003005380278727441,-2.3282359290256304e-5,4.268578367873625e-8,0.0030055791218540325,-2.3046814799346892e-5,4.232942511550203e-8,0.003005705403471987,-2.2860300990568903e-5,4.2047613637055405e-8,0.0030057838269298923,-2.2755768795899834e-5,4.188959157506121e-8,0.0030058528292368726,-2.275134395340437e-5,4.188212374752424e-8,0.003005957307061821,-2.2843946110056914e-5,4.2020014794074985E-08,0.003006138413427418,-2.300724171618979e-5,4.226319699714995e-8,0.0030064225790959894,-2.319527741556905e-5,4.254234844837243e-8,0.003006812562702178,-2.335201743558618e-5,4.277330694714285e-8,0.0030072836012702583,-2.3425444976355578e-5,4.2878234687331705e-8,0.003007787264335132,-2.3382901257872224e-5,4.280856410095554e-8,0.003008263689228249,-2.3222450315454287e-5,4.2561953877304193e-8,0.0030086592071474436,-2.2974830200955383e-5,4.218511547518296e-8,0.0030089426676550976,-2.26937486182808e-5,4.17591305405803e-8,0.00300911333844383,-2.2438134195979213e-5,4.137267939823414e-8,0.003009197487585295,-2.225432969879038e-5,4.1095226879594374e-8,0.003009236757661162,-2.216547948200621e-5,4.0961121500672567e-8,0.003009274709149118,-2.217043771176245e-5,4.09681037873079e-8,0.0030093468102407217,-2.224960297551781e-5,4.108625065125137e-8,0.003009475717436156,-2.2373205783984607e-5,4.1270546851323725e-8,0.003009670815179887,-2.250862585044295e-5,4.147189797251425e-8,0.0030099299700386954,-2.2625428795493783e-5,4.164463699013084e-8,0.00301024187402901,-2.269838136100306e-5,4.1750971465696804e-8,0.003010588197802463,-2.2709282253166442e-5,4.17636812926794e-8,0.0030109454772800953,-2.2648401738654642e-5,4.1668279995880246e-8,0.0030112871514783373,-2.2515993789587058e-5,4.1465320020488957e-8,0.003011586410402015,-2.2323777967550487e-5,4.1172650945728414e-8,0.003011820354517727,-2.2095615453953176e-5,4.082642765490463e-8,0.0030119753682766987,-2.1866121724890676e-5,4.0478962804724885e-8,0.0030120526329220835,-2.167596603147096e-5,4.019155827324615e-8,0.003012071619005174,-2.1563470526289128e-5,4.002177521312465e-8,0.0030120689879420764,-2.1553983387326334e-5,4.0007412510859045e-8,0.0030120914835277484,-2.1650539471334874e-5,4.015251477306536e-8,0.003012183981443884,-2.1829957093484467e-5,4.0421644155871945e-8,0.003012376436940448,-2.2046872823385574e-5,4.074612539538994e-8,0.003012674385510726,-2.2245060636632923e-5,4.104120937557746e-8,0.003013056385483303,-2.237249037808146e-5,4.122877520759659e-8,0.003013479206572159,-2.2395363336080645e-5,4.125840285038834e-8,0.00301388907552939,-2.2307009988112173e-5,4.112064949092303e-8,0.003014235716569667,-2.21292539477236e-5,4.0848957479960844e-8,0.0030144852458368573,-2.1905904722336058e-5,4.0509715506145036e-8,0.003014628140393211,-2.1690273931464643e-5,4.0183354013727575e-8,0.0030146798861370155,-2.1530670765035162e-5,3.9942465173289727e-8,0.003014674513909391,-2.1458647516230403e-5,3.9834154839566405e-8,0.0030146539150070514,-2.1483480978725524e-5,3.9871866653527925e-8,0.003014657045850174,-2.159355446238517e-5,4.003762590554032e-8,0.0030147123189946208,-2.1762610361229233e-5,4.029158028075859e-8,0.0030148344079461886,-2.1957660138997936e-5,4.0583952504102195e-8,0.003015024723893025,-2.214588593896058e-5,4.0865392615269084e-8,0.0030152739036193445,-2.22993320272481e-5,4.109395623141755e-8,0.0030155648211872598,-2.239750335835605e-5,4.123893927793968e-8,0.0030158753159103555,-2.242862410171888e-5,4.1282740545661414e-8,0.0030161804959735242,-2.239035571976067e-5,4.122196425411615e-8,0.0030164549748184135,-2.2290484655788065e-5,4.106850249505057e-8,0.0030166756785176938,-2.2147566876471484e-5,4.085053467582822e-8,0.0030168257902463656,-2.1990840651876128e-5,4.0612367627877493e-8,0.0030168998356597245,-2.185809576971141e-5,4.041113557692705e-8,0.003016908801918456,-2.1790004412026398e-5,4.030814374624823e-8,0.0030168827390098687,-2.1820318277313286e-5,4.035402021045058e-8,0.0030168675107474373,-2.19637983748077e-5,4.057054444845606e-8,0.003016913871536386,-2.220687703617631e-5,4.09366942603126e-8,0.003017061280745224,-2.2507121073764624e-5,4.138801109760418e-8,0.0030173232653145413,-2.28042122748035e-5,4.1833304318833444e-8,0.0030176816547766365,-2.3038752114974032e-5,4.218308051823787e-8,0.003018092461901088,-2.317060860472061e-5,4.2377204037070425e-8,0.0030185000617629827,-2.3189358211647577e-5,4.240056434796237e-8,0.0030188531890023565,-2.3114278349446322e-5,4.2282916648184983e-8,0.0030191172695145925,-2.298608274263823e-5,4.2086230161827244e-8,0.003019280521670172,-2.2854616393563075e-5,4.188596434454325e-8,0.00301935377876645,-2.27664496809722e-5,4.1752283274555145e-8,0.0030193653932179577,-2.2755137035095014e-5,4.173540981919782e-8,0.0030193531828910203,-2.2835689436507088e-5,4.185743087774839e-8,0.003019355569264338,-2.3003756094996915e-5,4.211123646364793e-8,0.003019403958407845,-2.323899690414335e-5,4.246574371735947e-8,0.003019517875462904,-2.3511172447957385e-5,4.2875145551518413e-8,0.003019703373553423,-2.3786991097561844e-5,4.328922423781491e-8,0.003019954219332213,-2.4036029761377636e-5,4.3662218358333147e-8,0.003020254766068992,-2.423482031971884e-5,4.395891153209101e-8,0.003020583367897793,-2.4369010761043288e-5,4.415784033020523e-8,0.0030209155492026242,-2.4434102956819604e-5,4.425239523927991e-8,0.0030212267021837735,-2.443546844269732e-5,4.4250868318591255e-8,0.0030214945520319145,-2.438812313993975e-5,4.417614262844354e-8,0.0030217018620748537,-2.4316298536123176e-5,4.406504030121207e-8,0.0030218398456035413,-2.4252307744576375e-5,4.396654725060574e-8,0.003021912331535931,-2.4233602777596313e-5,4.39372627104561e-8,0.0030219396761021347,-2.429662036167427e-5,4.4032012805518794e-8,0.0030219599100410016,-2.4466782499552282e-5,4.4288740896769435e-8,0.00302202361177359,-2.4746531459929342e-5,4.47105455738881e-8,0.003022180395983599,-2.5107010582484676e-5,4.525329764117915e-8,0.003022460057180725,-2.5490814286278737e-5,4.5829951905006934e-8,0.003022857627761485,-2.5828964736561783e-5,4.633626256410645e-8,0.003023332267934383,-2.6065721301283244e-5,4.668826880948124e-8,0.003023821927221237,-2.6178133626157623e-5,4.685181828073514e-8,0.0030242654527104103,-2.618060722133502e-5,4.6849397702988095e-8,0.00302462064736006,-2.6115003315723564e-5,4.674500325784846e-8,0.003024872054652819,-2.6034210741007566e-5,4.661907867346306e-8,0.003025029247398639,-2.5987096868666402e-5,4.654559337911846e-8,0.003025119674183166,-2.600869221520683e-5,4.657718713531259e-8,0.0030251798618585422,-2.6115962524536738e-5,4.6738915646380234e-8,0.003025247304514287,-2.6307892425086884e-5,4.702858653637406e-8,0.0030253540345252404,-2.6568373656992416e-5,4.742130825887169e-8,0.003025522180290973,-2.6870812112854194e-5,4.7876552038498893e-8,0.0030257616742353777,-2.718362842899639e-5,4.834647617031556e-8,0.0030260701248843638,-2.7475754898200334e-5,4.878418797216237e-8,0.003026434531440565,-2.7721296131052857e-5,4.915072369570908e-8,0.003026834267375794,-2.790282528074767e-5,4.941997646359749e-8,0.003027244652317317,-2.801310467185596e-5,4.958126578195143e-8,0.00302764045789911,-2.8055375984440208e-5,4.963976761859313e-8,0.0030279989828120874,-2.8042678247256376e-5,4.961548465878466e-8,0.003028302732030385,-2.7996614735003015e-5,4.9541371336797554e-8,0.0030285419382640503,-2.7945668380696642e-5,4.946074008271887e-8,0.0030287171664962805,-2.7922799028450726e-5,4.9423540183523226e-8,0.003028841979820805,-2.796162115926255e-5,4.948048077466765e-8,0.0030289448272879803,-2.8090202994150213e-5,4.967360897101288e-8,0.00302906808799766,-2.832216698757468e-5,5.002291747065914e-8,0.003029261393516597,-2.8646859820436187e-5,5.051165188848918e-8,0.0030295674732655794,-2.9023648863821986e-5,5.107788139765754e-8,0.0030300035036457318,-2.9387468552092513e-5,5.1622994265168756e-8,0.003030547654439084,-2.966892547984612e-5,5.204210187529804e-8,0.0030311419708281494,-2.9821700123341288e-5,5.226546402242462e-8,0.003031713429022907,-2.9841451121119933e-5,5.228710697781398e-8,0.0030322015269454838,-2.9764614366811912e-5,5.216297581619774e-8,0.003032576700297681,-2.964992539693665e-5,5.1982771928407634e-8,0.0030328427049061664,-2.95558177823456e-5,5.18354400080819e-8,0.0030330273738204275,-2.952483864326578e-5,5.178537523848844e-8,0.0030331699517057442,-2.9577898541893805e-5,5.1863748181959154e-8,0.0030333104138618784,-2.9715604944099784e-5,5.207074030425486e-8,0.003033482465717576,-2.9922976396352082e-5,5.238294189196952e-8,0.0030337098242709487,-3.017493755703473e-5,5.276185486031358e-8,0.0030340047066781646,-3.0441434203506502e-5,5.316170038656006e-8,0.0030343677318868385,-3.069201162682167e-5,5.353632168723621e-8,0.0030347889661070187,-3.089987345211356e-5,5.384526338775909e-8,0.0030352499978571756,-3.104524236184448e-5,5.405880170678398e-8,0.0030357268634388502,-3.111778908424594e-5,5.416158516454266e-8,0.0030361935715449567,-3.1117887001919675e-5,5.415451590233293e-8,0.003036625814699871,-3.105651407747209e-5,5.4054586154864e-8,0.003037004388893214,-3.095390233892545e-5,5.3892806738359834e-8,0.003037318044491069,-3.083722670992275e-5,5.3710656905416486e-8,0.0030375656938618433,-3.073753439132445e-5,5.355535566628204e-8,0.0030377579336559293,-3.068595891553895e-5,5.347403607373892e-8,0.0030379177300265737,-3.0709070813912385e-5,5.350663829087113e-8,0.00303807966723912,-3.0823076928323533e-5,5.367713979638666e-8,0.0030382864205653216,-3.102708512509555e-5,5.3983480616954495e-8,0.003038580787609243,-3.1297162733261364e-5,5.438876948576837e-8,0.0030389926926067358,-3.158502205672186e-5,5.481947606929273e-8,0.003039524072818,-3.1826340398447944e-5,5.517809779127173e-8,0.0030401396754807146,-3.196074975273588e-5,5.5373393880473416e-8,0.0030407732402690456,-3.1956872342941396e-5,5.5358273365942866e-8,0.0030413506216760183,-3.1827784431995975e-5,5.515324561172027e-8,0.0030418182463314066,-3.1625541651179424e-5,5.4838080988230775e-8,0.003042160215499455,-3.141800758364335e-5,5.4516451859117366e-8,0.003042396527409552,-3.126315753054347e-5,5.4276642795710085e-8,0.003042568426483442,-3.119410063882663e-5,5.416865946881467e-8,0.0030427219468042673,-3.121729790939866e-5,5.4201628447496637e-8,0.0030428965072263536,-3.131876817788899e-5,5.435349924198628e-8,0.0030431195875498325,-3.1472417249374476e-5,5.4583966139684054e-8,0.003043405671120528,-3.164719823662061e-5,5.48454888443154e-8,0.003043757278206,-3.181220441401584e-5,5.509103044165085e-8,0.0030441666670632966,-3.194016210578213e-5,5.527928024881129e-8,0.0030446177728978936,-3.2010055857858906e-5,5.537854846801234e-8,0.0030450884814295937,-3.200922767702134e-5,5.5369895852801475e-8,0.003045553386619406,-3.193493319092446e-5,5.524947681257876e-8,0.003045987115545042,-3.179510076572901e-5,5.502968803317016e-8,0.0030463680745412454,-3.1607871380829794e-5,5.473845618856727e-8,0.0030466821164058687,-3.139963516825679e-5,5.441621391559135e-8,0.0030469255028017037,-3.120163298944072e-5,5.4110664553357935e-8,0.003047106649642553,-3.1045429760949075e-5,5.3869815322197836e-8,0.003047246264489913,-3.0957724333207185e-5,5.373401644060654e-8,0.0030473756148905722,-3.0955076276420677e-5,5.372793333790556e-8,0.0030475327337165107,-3.10391075449408e-5,5.385333611732599e-8,0.0030477562593878016,-3.119291882112134e-5,5.408383161903094e-8,0.0030480767420623433,-3.138019112187306e-5,5.436371344206401e-8,0.003048506271394186,-3.154923496407961e-5,5.461427067933738e-8,0.003049029398017934,-3.164403612417949e-5,5.4750595244403097E-08,0.003049600741217892,-3.162181473782961e-5,5.470817249590223e-8,0.0030501546590933595,-3.147129459702184e-5,5.447053534930495e-8,0.0030506267199089275,-3.122124129326912e-5,5.408216609011085e-8,0.003050977543809847,-3.0931489493301834e-5,5.363475132421305e-8,0.0030512056349143645,-3.066970206362606e-5,5.323164358366911e-8,0.0030513427951945633,-3.048709541508865e-5,5.2950735410073135e-8,0.0030514375272195533,-3.0405493613713788e-5,5.2824725934812176e-8,0.0030515374213706445,-3.0418359774685625e-5,5.284287745599565e-8,0.003051677995809869,-3.050014466075965e-5,5.296553808075435e-8,0.0030518790092155215,-3.061696562449272e-5,5.314062781446654e-8,0.003052145625853913,-3.073469977610028e-5,5.3316031028704927e-8,0.0030524714707749288,-3.082377392153637e-5,5.344682144560079e-8,0.0030528417493476028,-3.086160174564249e-5,5.34988474804598e-8,0.0030532358836312897,-3.0833881042707114e-5,5.345060667689741e-8,0.003053629879526026,-3.0735485986035706e-5,5.3294565854492434e-8,0.0030539988364117142,-3.0571146292916206e-5,5.30382059792326e-8,0.0030543199507090837,-3.0355674406952507e-5,5.270438907050841e-8,0.0030545760956502454,-3.0113150877368533e-5,5.233010961195881e-8,0.00305475954547292,-2.9874438142143042e-5,5.1962653663563995e-8,0.003054874940487383,-2.967277780668974e-5,5.165280031939516e-8,0.0030549404324154324,-2.9537825570307475e-5,5.144563962738253e-8,0.0030549861390338404,-2.9489134143288323e-5,5.137059250576423e-8,0.0030550495976808005,-2.953061394193003e-5,5.143300630399881e-8,0.003055168710759939,-2.9647526534915528e-5,5.160970828560753e-8,0.0030553733364540553,-2.9807121158297693e-5,5.1850176986509324e-8,0.0030556770688369554,-2.9963521348213533e-5,5.208418350889287e-8,0.0030560711382057876,-3.0066914121891328e-5,5.223590149011024e-8,0.003056522783852153,-3.007606385331831e-5,5.224295582005858e-8,0.0030569803906741184,-2.9971466768568165e-5,5.207634125974998e-8,0.0030573862107332603,-2.9764480348069197e-5,5.1754164969916074e-8,0.0030576939719519337,-2.9497043921062268e-5,5.134105271121149e-8,0.0030578844960596806,-2.9229485363525857e-5,5.092940536552576e-8,0.0030579714726823846,-2.9020378842860718e-5,5.060856308901679e-8,0.00305799430929109,-2.890783769790072e-5,5.0436246780448754e-8,0.0030580024833647516,-2.8900743931462217e-5,5.042530128741445e-8,0.0030580398139917744,-2.8981793723107103e-5,5.0548579370877406e-8,0.0030581349144192635,-2.9117796452997896e-5,5.075489270553819e-8,0.0030582989710085853,-2.927092112731661e-5,5.0986296117823764e-8,0.00305852838098303,-2.9406906130383003e-5,5.1190589621726315e-8,0.00305880913029923,-2.9499417804318987e-5,5.132784410791377e-8,0.0030591209014314944,-2.9531615236497716e-5,5.1372652866946216e-8,0.003059440241717404,-2.949633831159525e-5,5.131434068941656e-8,0.00305974298908132,-2.9395907947313022e-5,5.1156659354477445e-8,0.0030600065090859636,-2.9241933794825013e-5,5.091753916282965e-8,0.00306021229511157,-2.9054948323373344e-5,5.062856693783168e-8,0.003060349177847135,-2.8863199511689882e-5,5.033312632870034e-8,0.003060416814008068,-2.8699745555567035e-5,5.008188395273282e-8,0.0030604284223485962,-2.8597283966096064e-5,4.992478512143156e-8,0.0030604111977471983,-2.858098323762389e-5,4.990002248696701e-8,0.0030604029204521956,-2.8660871126497475e-5,5.002240613766968e-8,0.0030604443802250266,-2.8826475438747818e-5,5.027527520898142e-8,0.0030605691021830185,-2.9046441406551585e-5,5.061009175503469e-8,0.00306079346737266,-2.927436144349517e-5,5.0955543464884993e-8,0.0030611106463299936,-2.945974872572592e-5,5.123445153963956e-8,0.003061490627398194,-2.9561147187201426e-5,5.1383839021491824e-8,0.0030618866932196325,-2.9557585511589545e-5,5.137235223398255e-8,0.0030622468460100747,-2.9455021239405097e-5,5.1209933881528055e-8,0.0030625273270125427,-2.9285654512983767e-5,5.0946554534423536e-8,0.0030627045011972953,-2.909970499319971e-5,5.065943900038011e-8,0.003062781223049597,-2.8951506243513924e-5,5.043168206571564e-8,0.0030627851170516554,-2.8884214842026012e-5,5.032886811317642e-8,0.003062759221135395,-2.8918582214671775e-5,5.038203695084455e-8,0.0030627487734678108,-2.9049687038960627e-5,5.0582911500186546e-8,0.0030627893702877065,-2.9251814457828465e-5,5.0891584468485985e-8,0.0030629003148716434,-2.9488179827505706e-5,5.1251525998749074e-8,0.0030630839037973016,-2.972103318011528e-5,5.160504457192073e-8,0.0030633288315558426,-2.9918997653759335e-5,5.190441062046527e-8,0.003063615124797014,-3.0060785653816723e-5,5.211739828811116e-8,0.003063918729338474,-3.013609360645597e-5,5.222854366679751e-8,0.003064214995878956,-3.014497667576545e-5,5.223815136496016e-8,0.0030644811540353513,-3.0096760320048008e-5,5.2160662139867385e-8,0.003064698316991432,-3.0009023509637796e-5,5.202315302953461e-8,0.0030648536429064674,-2.990656924730143e-5,5.1863784882354814e-8,0.0030649429933266646,-2.9819741475536308e-5,5.1729180727117875e-8,0.0030649738454125133,-2.9781167475517766e-5,5.166933721709507e-8,0.0030649674206902153,-2.98201748061254e-5,5.172897531156119e-8,0.0030649581828044383,-2.9955006804012056e-5,5.19355879701887e-8,0.0030649887015580467,-3.0184701153387606e-5,5.2287079973691934e-8,0.0030650993228122743,-3.048438554024296e-5,5.274472973817438e-8,0.0030653151426291397,-3.080799959377198e-5,5.3237545317571995e-8,0.0030656356436287177,-3.109971429626911e-5,5.36798936350581e-8,0.003066032397083313,-3.131062399609393e-5,5.3997123564829124e-8,0.0030664566457068772,-3.141392264624986e-5,5.414878191396371e-8,0.003066853673243906,-3.141241782904111e-5,5.414000445922996e-8,0.003067178107954643,-3.1336255718859404e-5,5.401782535141934e-8,0.003067405017322031,-3.123297452844401e-5,5.385569119674471e-8,0.0030675342967685115,-3.115406523908855e-5,5.3732673458228506e-8,0.0030675883450696387,-3.1142126616185284e-5,5.3713731593782084e-8,0.003067604598905477,-3.122165258980363e-5,5.3835712946092174e-8,0.0030676253853558076,-3.139518885501176e-5,5.41016984091395e-8,0.0030676878955794595,-3.164514859820826e-5,5.448403678006608e-8,0.0030678167760080873,-3.1940102956282886e-5,5.4934156079083943e-8,0.00306802082106185,-3.22432379520567e-5,5.539556794925043e-8,0.0030682938008947383,-3.252038055262967e-5,5.581610023286302e-8,0.003068618188348601,-3.2745712319185725e-5,5.6156527333722295e-8,0.0030689700372110436,-3.290455445210272e-5,5.63947158589191e-8,0.0030693235621584002,-3.299368835276426e-5,5.652604281911584e-8,0.0030696546829265168,-3.302018003318915e-5,5.656158441311524e-8,0.003069943501781531,-3.299964329710182e-5,5.652548727111865e-8,0.0030701761356594238,-3.295448884467991e-5,5.6452316329964884e-8,0.0030703464351241215,-3.2912168983386934e-5,5.6384348797087725e-8,0.0030704579205523843,-3.290292724600728e-5,5.6368046064395786e-8,0.0030705257705411666,-3.2956240209135014e-5,5.6448491101539555e-8,0.003070577902929506,-3.3095212754677564e-5,5.666072725949836e-8,0.003070653303256023,-3.332901887976236e-5,5.7018206275630994e-8,0.0030707954675129484,-3.3645317050531466e-5,5.750131258839977e-8,0.003071040281409215,-3.4006866132882734e-5,5.805237688321617e-8,0.003071401442066699,-3.435724590922433e-5,5.858460257890024e-8,0.003071860664240823,-3.463707718078335e-5,5.900700173455468e-8,0.003072369948294953,-3.4805077484133635e-5,5.9256687131385314e-8,0.0030728668933984586,-3.4853323968064e-5,5.932224867940723e-8,0.00307329574470014,-3.4808729472292477e-5,5.9245906426521214e-8,0.0030736238628414326,-3.472127382584356e-5,5.910521892617646e-8,0.0030738476136962186,-3.4646440956723325e-5,5.898583976281836e-8,0.0030739883560582247,-3.462984017376718e-5,5.895772090868357e-8,0.0030740829181741033,-3.46981445897087e-5,5.906122528438606e-8,0.0030741729261370603,-3.485661305223858e-5,5.930354340403719e-8,0.0030742957031104122,-3.509154811261891e-5,5.966276668283171e-8,0.0030744779277463736,-3.537572740023708e-5,6.00964697542749e-8,0.0030747323559975367,-3.5675189893930766e-5,6.055223916889516e-8,0.003075057487670119,-3.5956061174078274e-5,6.097812908001633e-8,0.0030754397046584866,-3.619027550379833e-5,6.133134047523962e-8,0.0030758570531433604,-3.6359408441814945e-5,6.158398173260262e-8,0.0030762836935755364,-3.645637499575067e-5,6.17255797130405e-8,0.0030766941332692503,-3.6485215974385064e-5,6.176270393282051e-8,0.00307706662715048,-3.645952970605651e-5,6.17165520944473e-8,0.0030773855806581914,-3.64002479832436e-5,6.161954383422073e-8,0.0030776432027652626,-3.63332416409525e-5,6.151163570192726e-8,0.003077840759611733,-3.628682113866609e-5,6.143643256726638e-8,0.003077989627912044,-3.628885788142236e-5,6.143667890109774e-8,0.0030781120193623807,-3.6363006241524466e-5,6.154837667649236e-8,0.0030782405956229293,-3.652349964920907e-5,6.179278977302228e-8,0.0030784153961581056,-3.6768720995789186e-5,6.216668724687254e-8,0.003078676287039924,-3.707542807113103e-5,6.263368664319519e-8,0.0030790504999446576,-3.739763323181358e-5,6.312273725650803e-8,0.0030795385416962856,-3.767491089624212e-5,6.354097060212617e-8,0.0030801063485889927,-3.7851372011602716E-05,6.380282181650783e-8,0.003080691860843348,-3.789839797156401e-5,6.3864909335135015E-08,0.0030812263089583505,-3.782804205247127e-5,6.374660437345014e-8,0.0030816595018051856,-3.768799022595951e-5,6.352218567186832e-8,0.003081975175275685,-3.754141745986299e-5,6.328960513196501e-8,0.0030821904003572086,-3.7444257862379394e-5,6.313520651894206e-8,0.003082343638281676,-3.743069219176931e-5,6.311124043335557e-8,0.0030824800552818033,-3.7509564541134194e-5,6.323047245576145e-8,0.0030826400072475326,-3.7668452785068254e-5,6.347276711043042e-8,0.003082852413765722,-3.788093848520992e-5,6.379661295313797e-8,0.003083132266538477,-3.811403698482697e-5,6.415076333549884e-8,0.0030834808667202927,-3.833449478651092e-5,6.448396137955909e-8,0.0030838877341181153,-3.8513714836371074e-5,6.475242681002939e-8,0.0030843336004778847,-3.8631288755844996e-5,6.49251538042667e-8,0.003084794042322366,-3.867707285475078e-5,6.49869875714132e-8,0.0030852433321181686,-3.865183435490819e-5,6.49395475346079e-8,0.0030856581339217173,-3.856655888053119e-5,6.48001336398034e-8,0.0030860206460516367,-3.844058492853828e-5,6.459884806542256e-8,0.0030863208771382037,-3.8298947069799535e-5,6.437449277747022e-8,0.0030865580404335806,-3.816935596666206e-5,6.416988298112212e-8,0.0030867412223701774,-3.807898089265322e-5,6.402682842646071e-8,0.0030868893766480983,-3.8050984731237867e-5,6.398072676630348e-8,0.0030870304944824955,-3.810068561233592e-5,6.405462439468387e-8,0.003087199430753806,-3.823122572618231e-5,6.425261522376926e-8,0.0030874333446925814,-3.842914766591009e-5,6.455320872359164e-8,0.0030877636895722525,-3.866159342862816e-5,6.490525234810125e-8,0.0030882049718960573,-3.887836166676586e-5,6.523127311346362e-8,0.003088743561312213,-3.9022341755227606e-5,6.544356507347711e-8,0.003089333590640843,-3.904860755320145e-5,6.547348840413299e-8,0.0030899071036917716,-3.894510170953161e-5,6.530322358465656e-8,0.0030903979050176593,-3.8742004346281896e-5,6.498015271661827e-8,0.003090767228006569,-3.8501181533249536e-5,6.460049051721142e-8,0.0030910160608724553,-3.8290854101103754e-5,6.426997931057188e-8,0.0030911786470456865,-3.816087723268984e-5,6.406549047523721e-8,0.003091304636594572,-3.81308943961482e-5,6.401668515462453e-8,0.0030914415331645385,-3.819243835001492e-5,6.410948319588161e-8,0.003091624053373996,-3.831851468248846e-5,6.430123035197483e-8,0.0030918706623143453,-3.8474104361764894e-5,6.453722136219927e-8,0.0030921846709144477,-3.8624255014770126e-5,6.476330985906157e-8,0.0030925572633731823,-3.8739191826344275e-5,6.493373044917373e-8,0.0030929709124494467,-3.879722444333691e-5,6.501542077873879e-8,0.003093402731555433,-3.8786312162609277e-5,6.499027635350036e-8,0.0030938277663450082,-3.870467412242986e-5,6.485599547202599e-8,0.0030942222139669767,-3.856054410640383e-5,6.462566902485165e-8,0.003094566519648795,-3.8371053174280506e-5,6.432606100579885e-8,0.0030948481721392368,-3.816012347433993e-5,6.399436069664364e-8,0.003095063804553022,-3.795541247827492e-5,6.36734419165358e-8,0.003095220250846101,-3.778464042825393e-5,6.34061366452044e-8,0.003095334440344874,-3.76716671513097e-5,6.322910755980504e-8,0.00309543208101415,-3.76325912073004e-5,6.316677889485286e-8,0.0030955450293822886,-3.767217508425234e-5,6.32258396731875e-8,0.003095707183071852,-3.778095740397159e-5,6.339090801722296e-8,0.00309594862334514,-3.793365750566644e-5,6.36222778804018e-8,0.003096287931628474,-3.80901905074783e-5,6.385770713701393e-8,0.0030967236941520254,-3.8201303672671125e-5,6.402124536059043e-8,0.003097228280907147,-3.822036947682624e-5,6.404140759803494e-8,0.0030977490184312755,-3.8120022723220564e-5,6.387670810024808e-8,0.0030982210755350135,-3.7907147081520453e-5,6.353864073301886e-8,0.0030985900761617553,-3.762610731223205e-5,6.309655120907573e-8,0.0030988336384995293,-3.734434007536094e-5,6.265523738702239e-8,0.003098968816215725,-3.7126254709522466e-5,6.231441792645098e-8,0.003099041425769494,-3.7010331236075636e-5,6.213318613669418e-8,0.0030991055833493103,-3.7000963291756114e-5,6.211747094970239e-8,0.0030992057850765756,-3.707503307238412e-5,6.223050579274813e-8,0.0030993681475792695,-3.719515769679686e-5,6.241367766141261e-8,0.0030996000182369945,-3.7321886461173106e-5,6.260562024590069e-8,0.0030998940056717068,-3.742152940130405e-5,6.275433238229519e-8,0.003100233021590866,-3.7469791909199243e-5,6.282264287237035e-8,0.0031005946146256498,-3.74527865541713e-5,6.278957087078115e-8,0.0031009543309571943,-3.7366892039579344e-5,6.264995951136436e-8,0.003101288498980592,-3.721816385706405e-5,6.241351573364313e-8,0.0031015767979117176,-3.702139137135275e-5,6.210337620395833e-8,0.0031018047687390517,-3.679862687950359e-5,6.175387343947005e-8,0.0031019661991720264,-3.657686241831285e-5,6.140695022313485e-8,0.0031020649564957345,-3.638462538015085e-5,6.110684934249384e-8,0.0031021156285978737,-3.624768225270253e-5,6.089338495755532e-8,0.003102142484188417,-3.6184428286903e-5,6.079473351831937e-8,0.0031021765631752685,-3.620172937410701e-5,6.082097958568538e-8,0.0031022510076930674,-3.629208197157182e-5,6.095979473559371e-8,0.0031023950750430954,-3.643289906673445e-5,6.117550104443778e-8,0.0031026275545373554,-3.658852828809345e-5,6.141241349154455e-8,0.0031029505897565103,-3.6715498961018746e-5,6.160314515690131e-8,0.0031033454561945222,-3.677128760644678e-5,6.168223979401771e-8,0.0031037725875075316,-3.672594194239396e-5,6.160407633853862e-8,0.0031041783170027994,-3.6573890333345214e-5,6.13609507617016e-8,0.0031045091130757767,-3.634081561194844e-5,6.099349544356457e-8,0.0031047297909969312,-3.607980110758601e-5,6.058452494813771e-8,0.0031048374201034855,-3.585494963702326e-5,6.023352619407363e-8,0.003104862516995215,-3.5718644691785436e-5,6.002135737673514e-8,0.003104856093193385,-3.569405931092349e-5,5.998319444364333e-8,0.0031048700872880267,-3.577137790618058e-5,6.010288490586609e-8,0.003104941604094109,-3.5916960865466545e-5,6.032745899023271e-8,0.00310508658575867,-3.608784938858073e-5,6.058987181278256e-8,0.003105301813939656,-3.6244129061960325e-5,6.082825896614451e-8,0.0031055709169320175,-3.6355939860998774e-5,6.099670423139435e-8,0.003105870647986892,-3.6405690275413666e-5,6.106846533436347e-8,0.0031061756914431407,-3.638750956805874e-5,6.103492926911871e-8,0.0031064618740461935,-3.630572623697611e-5,6.090315332297189e-8,0.0031067083897661323,-3.617327510332381e-5,6.069340518034317e-8,0.0031068996748370463,-3.6010179052804656e-5,6.043687697777326e-8,0.0031070273067826453,-3.5841809895788134e-5,6.017304374810048e-8,0.003107091924907097,-3.569640763286369e-5,5.994580924865879e-8,0.003107104690948129,-3.5601421586642455e-5,5.979775912534584e-8,0.0031070874280543044,-3.557871974140187e-5,5.976263364692894e-8,0.0031070705639987084,-3.563939705212548e-5,5.985721638430891e-8,0.00310708845076731,-3.577953751271076e-5,6.007479140748683e-8,0.0031071724854550274,-3.597857902840596e-5,6.0382741421625e-8,0.003107343449944664,-3.620155104969642e-5,6.072622362437715e-8,0.0031076051132779385,-3.640540195274204e-5,6.10381901744192e-8,0.0031079410880545904,-3.6548419234103456e-5,6.125412657583635e-8,0.0031083163328670636,-3.6600797795219e-5,6.132843658673388e-8,0.003108683776045806,-3.655377779638129e-5,6.12484672972554e-8,0.0031089953478281146,-3.642449473760269e-5,6.104178540723422e-8,0.0031092151923365167,-3.6254006005909544e-5,6.077284786520125e-8,0.003109331132111241,-3.6097367552710236e-5,6.052739707346827e-8,0.00310935954808475,-3.6007610042852635e-5,6.038750927329051e-8,0.0031093404361101393,-3.601917120844064e-5,6.04059490162074e-8,0.0031093239113226005,-3.6137917913298556e-5,6.059089030936383e-8,0.003109354124427072,-3.6341991680345246e-5,6.090751315544337e-8,0.0031094576079410963,-3.6591899919457295e-5,6.12939239128099e-8,0.003109639723574992,-3.684400498898479e-5,6.168222747975021e-8,0.003109888172433052,-3.706155993675539e-5,6.201562972733295e-8,0.003110179865335902,-3.7220522609188814e-5,6.225730522644977e-8,0.0031104876813696455,-3.731061864999249e-5,6.239184703464731e-8,0.00311078539719096,-3.733367074941028e-5,6.242252235980394e-8,0.0031110506840359895,-3.730106234421321e-5,6.236728729470829e-8,0.003111266829818254,-3.723134017143124e-5,6.225510727514509e-8,0.0031114239398752712,-3.7148181411718e-5,6.212287206499815e-8,0.0031115201531575613,-3.7078419428024274e-5,6.201236188919679e-8,0.003111562975299694,-3.7049500972479054e-5,6.196625586571644e-8,0.003111570240611829,-3.7085775629295866e-5,6.20222732746493e-8,0.0031115696907623807,-3.720350361712773e-5,6.220533256957703e-8,0.003111595961660061,-3.740535774526301e-5,6.251900193071125e-8,0.0031116842348012787,-3.7676298720104116e-5,6.293919212979045e-8,0.0031118612256879658,-3.798340020650173e-5,6.341407163920447e-8,0.003112136139777003,-3.828150901245256e-5,6.387306782824209e-8,0.003112495379209596,-3.852427301854293e-5,6.424415997620797e-8,0.003112903926884855,-3.867726198381603e-5,6.447432367142958e-8,0.0031133136874417224,-3.872848224078679e-5,6.454579824951314e-8,0.0031136761793375063,-3.8692456923064395E-05,6.448222652228261e-8,0.0031139554371912236,-3.860656882561176e-5,6.434267804320025e-8,0.0031141372703484766,-3.8521032659985596e-5,6.420576709598722e-8,0.0031142324513703736,-3.848555621137015e-5,6.414873497201981e-8,0.003114273122112332,-3.85363882869955e-5,6.422732768153216e-8,0.0031143034616922818,-3.868736365238427e-5,6.446208120483557e-8,0.0031143674207793413,-3.892758353008189e-5,6.483503018920008e-8,0.003114497459059395,-3.9226240381586666e-5,6.529750515880651e-8,0.0031147078121036174,-3.954245370409532e-5,6.578559894383833e-8,0.00311499378960663,-3.983627974908429e-5,6.623730004445356e-8,0.0031153360888836355,-4.007726426013293e-5,6.660567612073376e-8,0.0031157075151952004,-4.024868825724295e-5,6.686529743458914e-8,0.00311607947574405,-4.034776414925683e-5,6.701237492469503e-8,0.0031164267230209515,-4.038331710088937e-5,6.706105409678788e-8,0.0031167301083817336,-4.037260325837689e-5,6.703845169512361e-8,0.003116977890976981,-4.033831580823609e-5,6.698004129434217e-8,0.0031171663505323325,-4.030610095786534e-5,6.692583316158584e-8,0.0031173002857739405,-4.030233658179883e-5,6.691691302618574e-8,0.0031173935830516013,-4.035158745219613e-5,6.699141672014888e-8,0.003117469472534857,-4.047311163717984e-5,6.71790093138832e-8,0.0031175594775110223,-4.067616621474953e-5,6.749354678239481e-8,0.0031176996760878236,-4.095478103045957e-5,6.792501578391407e-8,0.003117923245200117,-4.1284097202451735e-5,6.843400804444655e-8,0.003118249965451604,-4.162156390749211e-5,6.895378532468487e-8,0.0031186762577232225,-4.1915651713568604e-5,6.940399276282996e-8,0.0031191714040973333,-4.212116830683181e-5,6.971456663709166e-8,0.0031196840741649716,-4.2215346438736336e-5,6.985077033810668e-8,0.003120157847027817,-4.220674667049533e-5,6.98269624957057e-8,0.0031205489414833265,-4.2132362620646234e-5,6.97018734876997e-8,0.0031208383916512266,-4.20448327662397e-5,6.955836204462521e-8,0.003121034785095203,-4.199616018547974e-5,6.947774286240719e-8,0.003121168632125931,-4.202421267565137e-5,6.951862361251391e-8,0.0031212820770698153,-4.214528318978495e-5,6.970544612819716e-8,0.0031214177248149594,-4.235306877230772e-5,7.002722768273191e-8,0.0031216092731973467,-4.2622792035729374e-5,7.044435725304227e-8,0.0031218754919343627,-4.2918580516760454e-5,7.090035608149642e-8,0.0031222181803268524,-4.320209457310386e-5,7.133539946884241e-8,0.003122623947005099,-4.344044848734895e-5,7.169857291254788e-8,0.00312306884485219,-4.361179467816571e-5,7.195639886437939e-8,0.003123524289638139,-4.370774340490241e-5,7.209642624241596e-8,0.0031239626656890764,-4.373282262997294e-5,7.21262580887302e-8,0.0031243615440335547,-4.3701909396077086e-5,7.206948965492392e-8,0.0031247061538028763,-4.3636780471882876e-5,7.196033443639855e-8,0.0031249903765416783,-4.356272900897019e-5,7.183837800351165e-8,0.0031252168682957006,-4.3505688790359626e-5,7.174410685588453e-8,0.0031253968441908885,-4.348975073626395e-5,7.17150048965672e-8,0.0031255497310814042,-4.35346390742139e-5,7.178155313739291e-8,0.00312570246406995,-4.3652662272077505e-5,7.196242839516862e-8,0.0031258876523310264,-4.384487979547073e-5,7.225856364534224e-8,0.003126139361453899,-4.409699636109416e-5,7.26468964950289e-8,0.003126485461480311,-4.437689592985936e-5,7.307674195249288e-8,0.003126937079372063,-4.4637120813428204e-5,7.347383911846252e-8,0.003127478854765807,-4.482535361453673e-5,7.375675854161458e-8,0.0031280666690904416,-4.490213927602775e-5,7.386449999496449e-8,0.0031286382404406153,-4.4858518891369295e-5,7.37839353542856e-8,0.0031291344460409416,-4.472272685316552e-5,7.356017852034121e-8,0.0031295207052957296,-4.455029894921475e-5,7.328095575302624e-8,0.0031297969026368396,-4.440289276125083e-5,7.304320913549977e-8,0.0031299925059136854,-4.4327735522592144e-5,7.292069128837017e-8,0.0031301525953489643,-4.4346566926362245e-5,7.294663172919162e-8,0.003130323040755186,-4.44552245163689e-5,7.311334170083266e-8,0.0031305398839340287,-4.463002091424208e-5,7.338260528006618e-8,0.00313082404631057,-4.483652215332876e-5,7.369977824422968e-8,0.0031311803606072124,-4.503787355813529e-5,7.400698484506922e-8,0.0031315994383132096,-4.5201450522542784e-5,7.425347439859536e-8,0.0031320612381614877,-4.530356848674249e-5,7.440279963037097e-8,0.0031325396046175753,-4.533218545978504e-5,7.443682235158883e-8,0.003133007088926917,-4.528754210138793e-5,7.435654510846008e-8,0.003133439334571156,-4.51809403698077e-5,7.41801159799911e-8,0.003133818472273233,-4.503213230381495e-5,7.393873233871031e-8,0.003134135205289634,-4.486591093923118e-5,7.367133504974223e-8,0.0031343895555660316,-4.470855447784281e-5,7.34190699593144e-8,0.003134590575431148,-4.4584622562577654e-5,7.322027017012072e-8,0.0031347554245567386,-4.451420562905288e-5,7.310611312884732e-8,0.0031349080100163845,-4.451044644791041e-5,7.309669605942408e-8,0.0031350771198854635,-4.457710742852157e-5,7.319723119373661e-8,0.0031352936217133444,-4.47060605212665e-5,7.339422020383135e-8,0.0031355858958112227,-4.487510826442938e-5,7.365224958348347e-8,0.003135972822388433,-4.5047645339306655e-5,7.391369496033267e-8,0.0031364549294214225,-4.517674188187485e-5,7.410524949995039e-8,0.003137006880828943,-4.521608014150156e-5,7.415499865583744e-8,0.0031375773084138556,-4.513707215275879e-5,7.401903658596108e-8,0.003138101428611319,-4.494515854131807e-5,7.370680978793502e-8,0.0031385245037932065,-4.468383466731007e-5,7.328731665396651e-8,0.0031388241332245405,-4.441996388809048e-5,7.286597138629206e-8,0.003139017499846824,-4.421722026618582e-5,7.254276438257211e-8,0.003139150157383647,-4.411342074013215e-5,7.237653893372397e-8,0.0031392756212672386,-4.411288523762928e-5,7.237306272266767e-8,0.003139437968769991,-4.4192948719133804e-5,7.249557334607343e-8,0.0031396632755686426,-4.431658177299298e-5,7.268500837724008e-8,0.0031399588406845693,-4.444412071309936e-5,7.287870894461722e-8,0.0031403166737552367,-4.454122642373622e-5,7.302295817715162e-8,0.0031407183126958165,-4.4583109623867075e-5,7.307944575839242e-8,0.0031411394477191415,-4.4556196731207386e-5,7.302762227868937e-8,0.0031415539994911366,-4.445830099035177e-5,7.28647417048713e-8,0.003141937728993228,-4.429775179132686e-5,7.260437295376374e-8,0.0031422713373744243,-4.4091609934731785e-5,7.227358181570472e-8,0.0031425429027575314,-4.386309308749254e-5,7.190893225978437e-8,0.0031427494576673834,-4.363836426557965e-5,7.155149576181157e-8,0.0031428974772572276,-4.3442976873453624e-5,7.124128957024562e-8,0.003143002214192302,-4.329843267004607e-5,7.101185038058907e-8,0.003143086052266109,-4.321920239699395e-5,7.088551186228275e-8,0.0031431760678829164,-4.3210361139567735e-5,7.086966698763124e-8,0.0031433008971223707,-4.3265945431617366e-5,7.09542336198036e-8,0.003143486895319873,-4.336813785078726e-5,7.111052058211447e-8,0.0031437533847702066,-4.348759147027911e-5,7.12919612296051e-8,0.0031441069213620117,-4.358585463469756e-5,7.143813366953108e-8,0.003144535476545944,-4.362139298757207e-5,7.148429942205696e-8,0.003145005091611609,-4.3560203673701036e-5,7.137795505629189e-8,0.003145463126681861,-4.3389675112285365e-5,7.11003324650128e-8,0.003145851574927433,-4.3129979926205826e-5,7.068402441148508e-8,0.0031461283507413433,-4.2833959953962696e-5,7.021264040871186e-8,0.003146286100171612,-4.257032356693477e-5,6.979432110562806e-8,0.0031463558591178996,-4.239669820392884e-5,6.951932082306872e-8,0.003146392327049763,-4.233819904869464e-5,6.942631862677053e-8,0.0031464507043553205,-4.2383168839997224e-5,6.94958958380317e-8,0.0031465688651928546,-4.249459392815535e-5,6.966883115670779e-8,0.0031467612849682977,-4.262689345829094e-5,6.987285185595196e-8,0.0031470222789782287,-4.273918499304871e-5,7.004366315740973e-8,0.0031473330289561153,-4.2802158807808166e-5,7.013567759431403e-8,0.003147668417268007,-4.279983806022786e-5,7.01245308551207e-8,0.0031480021049310764,-4.272860133319068e-5,7.00052672228628e-8,0.0031483099313495784,-4.259528124034335e-5,6.978916831189976e-8,0.0031485723125253334,-4.241509647530167e-5,6.950045735299453e-8,0.0031487761173877083,-4.2209454417396814e-5,6.917289890407978e-8,0.0031489161538580373,-4.2003459881328945e-5,6.884596295593158e-8,0.003148996162170557,-4.1822953882087386e-5,6.856021556609623e-8,0.003149028978654053,-4.169106752864223e-5,6.835188836388549e-8,0.003149035482429731,-4.162464544196019e-5,6.824720046102467e-8,0.003149042199251593,-4.163112014627014e-5,6.825739085675065e-8,0.00314907771956232,-4.170639233813112e-5,6.837538674971382e-8,0.0031491682653819867,-4.18342132313785e-5,6.857492364962827e-8,0.0031493329122884942,-4.198742613049102e-5,6.881267918772647e-8,0.003149579039836493,-4.213120402571019e-5,6.903358555963276e-8,0.0031498986271138838,-4.2228420130555436e-5,6.91794432100356e-8,0.0031502664228729867,-4.2247298350746497e-5,6.920097199180307e-8,0.003150641701734798,-4.217078712182122e-5,6.907238815589541e-8,0.0031509754961388586,-4.200545381164349e-5,6.880509810771359e-8,0.0031512238608324395,-4.1785638196682574e-5,6.845392811745735e-8,0.0031513640821730364,-4.1567794289340616e-5,6.810802378555436e-8,0.003151406157010707,-4.141327484247085e-5,6.786370323995615e-8,0.0031513912510576945,-4.136560918026271e-5,6.778876311671728e-8,0.003151375804577231,-4.1434395174820625e-5,6.789730029476199e-8,0.0031514098642566202,-4.159482257943738e-5,6.81492342574456e-8,0.0031515215625475173,-4.18012216288661e-5,6.847194098192803e-8,0.0031517136174996478,-4.200494130433833e-5,6.878861599395965e-8,0.0031519692707481077,-4.216756787951769e-5,6.903911030241721e-8,0.003152261517243071,-4.2266490087485424e-5,6.918851693440988e-8,0.0031525610670786637,-4.229461685062819e-5,6.922644943555905e-8,0.0031528414655990046,-4.22573706176436e-5,6.9162068457332e-8,0.003153081775375267,-4.216923255662013e-5,6.901853417953314e-8,0.0031532678798198805,-4.205077312180638e-5,6.882835975902144e-8,0.0031533932546355388,-4.192616457967239e-5,6.862959482793142e-8,0.0031534595708972847,-4.1820803001536924e-5,6.84621653927876e-8,0.0031534770784778826,-4.175861379115542e-5,6.836364650161207e-8,0.0031534643622982412,-4.17588032667655e-5,6.836409543908077e-8,0.0031534468701465957,-4.183228856251606e-5,6.848035579602831e-8,0.003153453782052926,-4.197854007215975e-5,6.871105220452271e-8,0.003153513263736754,-4.218384148552481e-5,6.903390427614672e-8,0.0031536467429532566,-4.242196322172231e-5,6.940693592124387e-8,0.003153863430347162,-4.265783483101526e-5,6.977446531891138e-8,0.003154156585993926,-4.285397543340932e-5,7.007742427316526e-8,0.00315450279718283,-4.2978622186424466e-5,7.026625449926472e-8,0.0031548650041122103,-4.301400854080456e-5,7.031388230440871e-8,0.00315519943918034,-4.296289169347691e-5,7.022577473855363e-8,0.003155465859320983,-4.285109888117147e-5,7.00436294628589e-8,0.0031556391659936065,-4.272394847220358e-5,6.983943122484468e-8,0.0031557188612724523,-4.263555517927237e-5,6.969842457165365e-8,0.0031557317728420436,-4.263280101975123e-5,6.969387032889604e-8,0.0031557249027450757,-4.2739520543408744e-5,6.98623192302485e-8,0.0031557498994496218,-4.294833096833603e-5,7.019104128047928e-8,0.00315584589866597,-4.322452786249621e-5,7.062447804376743e-8,0.0031560287243041687,-4.3519737897634517e-5,7.108598411323216e-8,0.003156290210848438,-4.378791545601902e-5,7.150311106554863e-8,0.0031566054069980037,-4.3996660675542415e-5,7.182534984786604e-8,0.0031569423808284628,-4.4131253208340974e-5,7.203026754938302e-8,0.003157270337523358,-4.4192994871844845e-5,7.212064457656072e-8,0.003157564470837877,-4.419496903596624e-5,7.211761487890475e-8,0.003157808015852627,-4.415761251223253e-5,7.205364259861087e-8,0.0031579926823708912,-4.4105138784809375e-5,7.196695049477917e-8,0.0031581184957774153,-4.406285452731199e-5,7.189738913692536e-8,0.003158193599416625,-4.4054911516432865e-5,7.188294750699247e-8,0.003158234031798483,-4.4101897275740684e-5,7.195593087373301e-8,0.003158263018098467,-4.421788006294162e-5,7.213822712040806e-8,0.003158309054218505,-4.440704337455989e-5,7.243594276621938e-8,0.0031584021289597524,-4.466069514352587e-5,7.283470938809992e-8,0.0031585679463628875,-4.495603322513259e-5,7.329786169090022e-8,0.003158821045759386,-4.5258255933040026e-5,7.37699600181512e-8,0.003159158924190263,-4.5526890236963015e-5,7.418696615489833e-8,0.0031595597943583466,-4.572549126524957e-5,7.44916678688917e-8,0.003159985788919604,-4.5832004494916494e-5,7.465002833083531e-8,0.003160391467505701,-4.5846244908167024e-5,7.466284408960723e-8,0.003160735390904223,-4.5791651761595475e-5,7.456824370500927e-8,0.003160991329864051,-4.5710340506587154e-5,7.443354724124745e-8,0.0031611557652805296,-4.56525958579643e-5,7.433840211999739e-8,0.0031612493653574466,-4.566356507695597e-5,7.43536688058528e-8,0.0031613116320375638,-4.577082683019708e-5,7.452191859422641e-8,0.00316138983687732,-4.5976704493927694e-5,7.484561016922063e-8,0.0031615255351170207,-4.625816721714404e-5,7.52873081576349e-8,0.00316174330606514,-4.6574539940815696e-5,7.578215147025375e-8,0.0031620456464795553,-4.687999059605023e-5,7.625769376845123e-8,0.003162415165519021,-4.713588347181678e-5,7.665335200741533e-8,0.003162822036835446,-4.731880660958561e-5,7.693289460631574e-8,0.0031632329785881486,-4.7422738256966696e-5,7.708762391075058e-8,0.0031636185498555743,-4.7456548574135615e-5,7.713222429686289e-8,0.003163957394531511,-4.743930170684533e-5,7.709723112409955e-8,0.003164237749092535,-4.7395460395258866e-5,7.702145770310557e-8,0.0031644572629982944,-4.735103026805132e-5,7.694598016390119e-8,0.0031646221440750945,-4.733077694987257e-5,7.690981863864776e-8,0.003164746262745098,-4.735610332844896e-5,7.694660644621445e-8,0.003164850315648308,-4.744295341822404e-5,7.708123668442743e-8,0.003164960615211108,-4.7599282087552986e-5,7.732580598792541e-8,0.00316510674443353,-4.7822150507262595e-5,7.767502077308712e-8,0.0031653173075884386,-4.809522158373371e-5,7.810233831505504e-8,0.003165613500816317,-4.8388234367153477e-5,7.855932068502407e-8,0.003166001527547761,-4.8660505245747866e-5,7.898136490858256e-8,0.0031664667240323473,-4.886967395690606e-5,7.930165483686465e-8,0.0031669732473650035,-4.898427913808119e-5,7.947106008168446e-8,0.0031674717018881997,-4.899555012818512e-5,7.94766938590658e-8,0.0031679131839261526,-4.892263568963575e-5,7.934999749978144e-8,0.0031682643359964833,-4.8808002238974886e-5,7.91591853553536e-8,0.0031685171259444567,-4.8704610129976645e-5,7.898863798646383e-8,0.003168689888016564,-4.866027347872532e-5,7.891391738685978e-8,0.0031688203554882553,-4.870497925930795e-5,7.898168134647224e-8,0.0031689541483683986,-4.884458925824059e-5,7.919995944645049e-8,0.003169132666912061,-4.90615415154104e-5,7.953967154409288e-8,0.0031693835370994743,-4.932123743816433e-5,7.994513150365482e-8,0.0031697155633991425,-4.958174182690445e-5,8.034963065946353e-8,0.0031701188096189092,-4.9803993111668386e-5,8.069160780662406e-8,0.0031705690690595756,-4.995993501816825e-5,8.092735112553882e-8,0.0031710349046023332,-5.003685841512912e-5,8.103761860361142e-8,0.003171484997353245,-5.003758483585365e-5,8.10276899103105e-8,0.0031718939250299756,-4.997743721292307e-5,8.092241368604767e-8,0.0031722454763997874,-4.98796363572316e-5,8.075886678430627e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json new file mode 100644 index 00000000..841a3deb --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":21000,"numberOfSamples":1000,"samples":[0.0031725336341924394,-4.9770637985046546e-5,8.057900832626396e-8,0.0031727619720193665,-4.967631255249218e-5,8.042370582661394e-8,0.0031729423213677447,-4.961918610821703e-5,8.032842301827844e-8,0.003173093301004051,-4.9616439750269165e-5,8.032005503717977e-8,0.0031732388512125246,-4.9678142521825614e-5,8.04140915834666e-8,0.003173406461172115,-4.980531114277095e-5,8.061152056197695e-8,0.003173624434517486,-4.998780080363393e-5,8.089554409980637e-8,0.0031739174410596086,-5.02027153676187e-5,8.122921958837977e-8,0.0031743000569504428,-5.0414905317985565e-5,8.155645946622467e-8,0.0031747693572844707,-5.058170552271261e-5,8.1809696462639e-8,0.003175299754099858,-5.066328166614758e-5,8.192630588543693e-8,0.003175844728509721,-5.06368615606572e-5,8.187106223913913e-8,0.003176348378152092,-5.0508762136083794e-5,8.16550486069026e-8,0.0031767639923363524,-5.0316402748498936e-5,8.133866443459827e-8,0.0031770709661550177,-5.011689791600365e-5,8.101329428919594e-8,0.0031772811274633317,-4.9967147620633346e-5,8.076944687326912e-8,0.003177432030673561,-4.9905479367471625e-5,8.066745206192551e-8,0.003177572270523811,-4.994259580574966e-5,8.072317955227706e-8,0.003177746439699948,-5.0063033684474547e-5,8.091070950808379e-8,0.0031779848344744835,-5.0233470557248106e-5,8.117598151931799e-8,0.0031782992076989803,-5.0413262606724425e-5,8.145387798184555e-8,0.003178683508504494,-5.056397454491497e-5,8.168346678500409e-8,0.0031791178624765563,-5.0656360805938936e-5,8.181895509495128e-8,0.003179574229733301,-5.067436252240991e-5,8.183576329438713e-8,0.003180022490647086,-5.0616168724939576e-5,8.173192449420742e-8,0.0031804358927458322,-5.049270511433461e-5,8.152548156884965e-8,0.0031807950553075313,-5.0324297904340744e-5,8.124910490024964e-8,0.0031810901697997096,-5.013646650496189e-5,8.094342997127281e-8,0.003181321456190578,-4.995570801310683e-5,8.065043893174666e-8,0.0031814982527144423,-4.9805917795511555e-5,8.040785329190629e-8,0.0031816373210504898,-4.970574993088201e-5,8.024497887522197e-8,0.0031817608717426495,-4.9666782981278536e-5,8.017978161620004e-8,0.0031818944706078238,-4.969213348437762e-5,8.021665586604609e-8,0.003182064656150664,-4.977526990474911e-5,8.034455083019423e-8,0.0031822958582123618,-4.9899054210053294e-5,8.053555151866265e-8,0.0031826060765792474,-5.00355420814562e-5,8.074475516704612e-8,0.0031830011463665404,-5.014786026254351e-5,8.091345990457809e-8,0.0031834686693217383,-5.0195995982255704e-5,8.097846711663703e-8,0.0031839746468371897,-5.01475748419181e-5,8.088913626890179e-8,0.0031844673261262986,-4.999173257679851e-5,8.062922765445895e-8,0.003184891172592454,-4.974957666882377e-5,8.023331134917238e-8,0.0031852075073160895,-4.9472597723993216e-5,7.978406694492346e-8,0.0031854111053174357,-4.922574084934537e-5,7.938518959159813e-8,0.0031855320833315435,-4.9062718900561163e-5,7.912193983519057e-8,0.003185621952271365,-4.9007423813544054e-5,7.903149987919705e-8,0.003185733140730741,-4.905026352546958e-5,7.909733195325303e-8,0.003185903073154297,-4.915750209942922e-5,7.926446313102022e-8,0.0031861477150601954,-4.9285511618747645e-5,7.946261622724468e-8,0.0031864630412842053,-4.9393086955828754e-5,7.962606325736776e-8,0.0031868305582437354,-4.944910682330027e-5,7.970578335261417e-8,0.0031872237417380285,-4.9435815064372105e-5,7.967442526435043e-8,0.003187613799646374,-4.934910556784959e-5,7.952642648280632e-8,0.0031879743406409483,-4.919701658863508e-5,7.927535204629794e-8,0.0031882849181979036,-4.899707191619981e-5,7.894954072044581e-8,0.0031885333705692622,-4.8772886247731465e-5,7.85867133852273e-8,0.0031887169235430774,-4.8550472591157195e-5,7.82281831475899e-8,0.0031888421191353347,-4.8354611885566905e-5,7.791317453714298e-8,0.0031889236591736768,-4.820561826479776e-5,7.767373204135999e-8,0.003188982392912168,-4.811685191685343e-5,7.753076281390647e-8,0.0031890428229633568,-4.80931088914721e-5,7.749144001256398e-8,0.003189130371339149,-4.8129751866914776e-5,7.754779717892457e-8,0.0031892684093893045,-4.821248076042052e-5,7.767640704932689e-8,0.003189474936144377,-4.8317827589117846e-5,7.78393091488724e-8,0.003189758740824415,-4.841472688601514e-5,7.798671830001753e-8,0.0031901151496382964,-4.846801130205281e-5,7.806277470675716e-8,0.0031905224205677797,-4.844497532884705e-5,7.801604196463123e-8,0.003190941284990858,-4.8325353983456495e-5,7.781525298490396e-8,0.0031913210506145494,-4.811258839800113e-5,7.746697340533311e-8,0.0031916141519961177,-4.784055752540146e-5,7.702604990677442e-8,0.003191795418319783,-4.7568255887754585e-5,7.658695371946121e-8,0.0031918755740832448,-4.73600221174305e-5,7.625217949764229e-8,0.003191898603829455,-4.725988960279658e-5,7.609132297246147e-8,0.0031919229650166662,-4.7275184045738147e-5,7.611500607230232e-8,0.003191998333085281,-4.737827479416436e-5,7.62779363395227e-8,0.0031921508881996145,-4.752216804202383e-5,7.65041794434679e-8,0.003192381393929433,-4.765854984268982e-5,7.671628736820805e-8,0.0031926718219546014,-4.7750056416319196e-5,7.685497758163076e-8,0.003192994371773742,-4.7775167613736925e-5,7.688676322707986e-8,0.0031933191121518447,-4.7727892633397725e-5,7.680310882032987e-8,0.0031936191057208192,-4.761498877639121e-5,7.661565929511285e-8,0.0031938734231599622,-4.74525826505499e-5,7.635065824624502e-8,0.0031940688710230926,-4.7262880918771545e-5,7.60436847923047e-8,0.0031942008964133926,-4.707097737875328e-5,7.573466367930087e-8,0.0031942737606263116,-4.6901719035824056e-5,7.546299629687368e-8,0.003194299972841271,-4.6776661718682426e-5,7.526278957837741e-8,0.003194298887206334,-4.6711226468842323e-5,7.51583342891208e-8,0.003194294386829285,-4.671240074914931e-5,7.516039741374076e-8,0.0031943118407074603,-4.6777394668392805e-5,7.526403312546946e-8,0.0031943746893159835,-4.6893437644436546e-5,7.544826377873212e-8,0.0031945009495270385,-4.7038759907479775e-5,7.567773903852656e-8,0.0031946998830175675,-4.7184820903478814e-5,7.590646855791671e-8,0.0031949691011137634,-4.729986237129749e-5,7.608369607755573e-8,0.0031952925157211496,-4.735397448743149e-5,7.616211706606225e-8,0.003195640046002511,-4.7325873413935426e-5,7.610866131565764e-8,0.0031959707011487326,-4.721084275969199e-5,7.591694218179518e-8,0.0031962407678702612,-4.7027544120006907e-5,7.561778712416466e-8,0.0031964172220154555,-4.68193172139658e-5,7.528100427078354e-8,0.003196492459990767,-4.664522204584982e-5,7.500092425591764e-8,0.003196492024360513,-4.6560407478603466e-5,7.486507180241458e-8,0.0031964677331033607,-4.6593856889802264e-5,7.491877034751068e-8,0.003196477403032644,-4.673659702635629e-5,7.514654134177191e-8,0.0031965625176653793,-4.694773588519694e-5,7.548204705047288e-8,0.0031967362693748544,-4.717322873987367e-5,7.583837429474331e-8,0.003196985533609338,-4.73651776342118e-5,7.613905990916508e-8,0.0031972812138878572,-4.74929888958597e-5,7.633588427653374e-8,0.003197589462630078,-4.7545490933105095e-5,7.64119965822908e-8,0.0031978796496195555,-4.752757942989125e-5,7.637620017022061e-8,0.00319812848863574,-4.745512493931714e-5,7.625453549820702e-8,0.00319832144886984,-4.73503257355979e-5,7.608275219379998e-8,0.003198452856742482,-4.723812082730018e-5,7.590064580016247e-8,0.0031985255501511783,-4.7143356527051194e-5,7.57476813144896e-8,0.0031985502819583764,-4.708825806567633e-5,7.565908112945316e-8,0.003198544736531598,-4.708995351933302e-5,7.566191375034777e-8,0.0031985318797554075,-4.7158036203798245e-5,7.577116598009077e-8,0.0031985373474858482,-4.729251335254058e-5,7.598640463765804e-8,0.003198585869566576,-4.7482775567525455e-5,7.629010685976644e-8,0.003198697155597323,-4.77081476564717e-5,7.664860219081877e-8,0.0031988819238857836,-4.794029858008897e-5,7.701607636820799e-8,0.003199138852327985,-4.8147471043280815e-5,7.734153154992998e-8,0.003199453210956632,-4.830010600773658e-5,7.757794512375888e-8,0.003199797758983186,-4.8377126251611665e-5,7.769236057072432e-8,0.0032001363178023106,-4.8371976704389703e-5,7.767540881795748e-8,0.0032004303140051693,-4.829716076321788e-5,7.754825940028813e-8,0.0032006480922657813,-4.818534649742223e-5,7.736402060215561e-8,0.0032007754503471137,-4.8084736666072045e-5,7.720004750070717e-8,0.0032008237523528764,-4.804734673697885e-5,7.713910918442968e-8,0.0032008304786310298,-4.811209016681051e-5,7.724247975155619e-8,0.0032008488052868407,-4.828932206014769e-5,7.75255161602495e-8,0.0032009288771208118,-4.8555592301733185e-5,7.794960329169746e-8,0.0032010998408043487,-4.886272668875077e-5,7.843695977208304e-8,0.003201361960637265,-4.915635461273817e-5,7.89004476629134e-8,0.0032016912406135044,-4.939361188750261e-5,7.927192014721211e-8,0.0032020513707647475,-4.955240233850549e-5,7.951689650027676e-8,0.003202405716929175,-4.963141986809062e-5,7.963431614369855e-8,0.003202725094131901,-4.964474472975755e-5,7.96475824883057e-8,0.0032029909049170156,-4.961523348656123e-5,7.959378125967193e-8,0.0032031952157390927,-4.9569099471490336e-5,7.951497736532009e-8,0.003203339535741044,-4.9532218017991734e-5,7.945241230521701e-8,0.003203433394698867,-4.9527674213515084e-5,7.944273135170713e-8,0.003203493051170196,-4.9573859322178696e-5,7.951503476725994e-8,0.0032035401504446515,-4.968261143955701e-5,7.968790885396807e-8,0.003203599881864006,-4.9857248372708116e-5,7.996622623173358e-8,0.0032036981474841027,-5.009083623491609e-5,8.033833401588e-8,0.003203857560932273,-5.036549668524096e-5,8.077497791863144e-8,0.003204092697562571,-5.0653692877754714e-5,8.123148677107812e-8,0.003204405679190628,-5.092213317310819e-5,8.165420910353239e-8,0.0032047836194003913,-5.1138171334250516e-5,8.199093925766638e-8,0.0032051993388942314,-5.1277508026645685e-5,8.220333981594443e-8,0.0032056159214573134,-5.1331152612609345e-5,8.227803147217174e-8,0.003205994476325643,-5.130950962968257e-5,8.223291039616594e-8,0.0032063034747539243,-5.124205747668012e-5,8.211628608958799e-8,0.0032065274675029567,-5.117202959915313e-5,8.199800522314307e-8,0.0032066727907678195,-5.114661833837934e-5,8.195353656090792e-8,0.003206768020942503,-5.120449980278048e-5,8.204400434520673e-8,0.003206857735831905,-5.1363916576045276e-5,8.229736031489842e-8,0.0032069901253816147,-5.161569359479557e-5,8.269759795845019e-8,0.0032072020803685336,-5.192501441612641e-5,8.318797642795423e-8,0.0032075077397297554,-5.2242393867866604e-5,8.368882847285539e-8,0.0032078955532431,-5.251946367429561e-5,8.412289258504691e-8,0.0032083345384939406,-5.272262269658563e-5,8.443706503733802e-8,0.0032087857334492185,-5.2839458337762004e-5,8.461246000974382e-8,0.0032092132683576424,-5.287735806351859e-5,8.466190722367029e-8,0.003209591378752329,-5.285732676741347e-5,8.461980304623928e-8,0.0032099067777057117,-5.28068081968459e-5,8.45304822826286e-8,0.0032101578456377655,-5.275393921740916e-5,8.443903221733049e-8,0.0032103524731652163,-5.272386017376191e-5,8.438550073902889e-8,0.003210505786562472,-5.273660287213019e-5,8.440164096217491e-8,0.0032106382225371155,-5.280577247081059e-5,8.450886182259405e-8,0.0032107738321281018,-5.293736316606222e-5,8.471631689347386e-8,0.0032109383060951215,-5.312841217033488e-5,8.501870672494748e-8,0.0032111560978738906,-5.3365752533195204e-5,8.53942849508674e-8,0.0032114462795934918,-5.362571089155793e-5,8.580446840164302e-8,0.003211817437324192,-5.3875979778961625e-5,8.619700739786424e-8,0.003212262941595191,-5.408075100149098e-5,8.651439387397291e-8,0.0032127589082548043,-5.42090965214644e-5,8.670741201761251e-8,0.003213267160170133,-5.4244595572723914e-5,8.675057308886833e-8,0.0032137438024166646,-5.419248668805494e-5,8.665344939450431e-8,0.003214151231767454,-5.4080711291759844e-5,8.646208359285265e-8,0.0032144693035585834,-5.395352361443707e-5,8.624839037585663e-8,0.003214701461565474,-5.385958237500533e-5,8.609072790016972e-8,0.003214873783886847,-5.383864063516811e-5,8.605238679805011e-8,0.0032150276171485034,-5.391105610832501e-5,8.616487457733809e-8,0.003215208326315366,-5.4072889410851724e-5,8.642041535988369e-8,0.0032154533705997484,-5.429755486548332e-5,8.677506471248515e-8,0.0032157828754069747,-5.4543390211428154e-5,8.716123185097693e-8,0.0032161952720170784,-5.47649828140714e-5,8.750601063943785e-8,0.0032166691643119804,-5.492483570390711e-5,8.7749822276115e-8,0.003217170484883344,-5.500177601999277e-5,8.785966932376333e-8,0.0032176621369899984,-5.499386164298536e-5,8.783350388091249e-8,0.0032181127441866936,-5.491583634520034e-5,8.76958803060696e-8,0.003218502126948113,-5.479314994168618e-5,8.748819344576886e-8,0.0032188229483265337,-5.465521433334049e-5,8.72578166749344e-8,0.0032190794757014783,-5.452988429357098e-5,8.704931644272088e-8,0.0032192849457666393,-5.443991014971355e-5,8.689888287838887e-8,0.003219458734952503,-5.440110974291796e-5,8.683149639470852e-8,0.003219623918717538,-5.442154904813298e-5,8.685964506488469e-8,0.0032198052118412182,-5.45010330062948e-5,8.698248405259667e-8,0.0032200268668433098,-5.463053766414709e-5,8.718490554543236e-8,0.0032203099278025797,-5.479171920972871e-5,8.743680309860852e-8,0.0032206683696555803,-5.4957218224956276e-5,8.769370344416006e-8,0.003221104252445989,-5.509302127948437e-5,8.790074530833945e-8,0.0032216031987040658,-5.516423932315975e-5,8.800209652952139e-8,0.003222132914621037,-5.514457142603367e-5,8.795617458979574e-8,0.003222647901010924,-5.502711200558859e-5,8.775290593353369e-8,0.0032231013851103294,-5.483131338436564e-5,8.74247239172623e-8,0.003223460966712298,-5.4600702849415643e-5,8.704264763661174e-8,0.003223720696988658,-5.43901749473945e-5,8.66955543476372e-8,0.0032239032022557705,-5.4248004296358326e-5,8.646099319840247e-8,0.003224051050262102,-5.4200944786757004e-5,8.638114273675721e-8,0.003224212268778945,-5.424827912428962e-5,8.645345453958669e-8,0.0032244265358801734,-5.4365234327404105e-5,8.663660081008881e-8,0.003224716276502034,-5.451231450454134e-5,8.686597920410975e-8,0.003225083737911467,-5.4646403659949004e-5,8.707189019189658e-8,0.0032255131188312245,-5.473059972318432e-5,8.719538813836393e-8,0.0032259761006378034,-5.4741087113638165e-5,8.719911679190398e-8,0.0032264390598020325,-5.467034723233956e-5,8.707212789604444e-8,0.003226870334335864,-5.452668660564738e-5,8.682879510984012e-8,0.0032272460710804887,-5.4330699940323715e-5,8.65029138253738e-8,0.0032275536298945894,-5.4109915442819836e-5,8.613902532997006e-8,0.003227792304669776,-5.389313593906661e-5,8.5783374691673e-8,0.0032279718677233277,-5.370570458175747e-5,8.547642058179856e-8,0.003228109845550558,-5.356634066004432e-5,8.524786544988952e-8,0.003228228456413095,-5.348557339633553e-5,8.511420042723426e-8,0.0032283518197443535,-5.346531342893715e-5,8.507801310989298e-8,0.0032285035568127823,-5.349896832429377e-5,8.512814037196994e-8,0.003228704536722173,-5.357174984312455e-5,8.524016481482288e-8,0.0032289703539402797,-5.366119984972382e-5,8.537735462686527e-8,0.00322930813206437,-5.373842092470895e-5,8.549282323459017e-8,0.003229712689921856,-5.377103839587337e-5,8.553448506801853e-8,0.0032301631836865975,-5.3729107718665944e-5,8.545465152637074e-8,0.0032306227277087924,-5.359428799950994e-5,8.522472059019744e-8,0.0032310441986026,-5.337012969281068e-5,8.48515280839209e-8,0.0032313836582013745,-5.30879790841398e-5,8.438660592029636e-8,0.0032316176061930268,-5.280197806460897e-5,8.391790250084734e-8,0.0032317548261706127,-5.2571609399665335e-5,8.354146004605948e-8,0.0032318343808087915,-5.243934120871027e-5,8.332524114371036e-8,0.00323190997001867,-5.24157284474321e-5,8.328513968311465e-8,0.003232029903870015,-5.247922773889295e-5,8.33849749888785e-8,0.0032322230037252673,-5.2587959715898925e-5,8.355594128527012e-8,0.0032324945300250224,-5.269508974157829e-5,8.372185756843382e-8,0.0032328299476484103,-5.2761097382812485e-5,8.381914925073835e-8,0.0032332022647684135,-5.2760565068347416e-5,8.380767128683809e-8,0.0032335796804347913,-5.268412304439345e-5,8.367349551296979e-8,0.003233931955256522,-5.2537170491451925e-5,8.342645104170425e-8,0.00323423510297691,-5.2336755010051395e-5,8.309480474079313e-8,0.003234474406802793,-5.210743061617814e-5,8.271847665355266e-8,0.0032346457437325534,-5.187668488346703e-5,8.234172294838152e-8,0.003234755280902423,-5.167055575138879e-5,8.200621219761825e-8,0.003234817807050895,-5.150997501251897e-5,8.174527616602243e-8,0.00323485410132211,-5.140821394599531e-5,8.157988013641992e-8,0.0032348878601373273,-5.1369622605597356e-5,8.15166024002056e-8,0.003234942697918216,-5.138953284328997e-5,8.154743911983669e-8,0.00323503947037617,-5.1454958354580704e-5,8.16508993774942e-8,0.0032351938886941546,-5.154582187779148e-5,8.179401797604287e-8,0.0032354142832091816,-5.16366609641141e-5,8.193524012891515e-8,0.003235699333554656,-5.1699018157927345e-5,8.202847891428973e-8,0.0032360358332845078,-5.170513116825102e-5,8.202923924758582e-8,0.003236397395298634,-5.163367599192616e-5,8.190391001440081e-8,0.0032367460274376706,-5.147751296830587e-5,8.164208997353886e-8,0.003237038911014802,-5.125146075858404e-5,8.126881868503913e-8,0.0032372413519731985,-5.099546813545693e-5,8.084938120768122e-8,0.0032373424767896393,-5.076735769152771e-5,8.04773994266105e-8,0.003237364737593232,-5.0623575968753e-5,8.024369261604461e-8,0.0032373583817348877,-5.0595930934664296e-5,8.01987556722749e-8,0.0032373814263608053,-5.067835383782129e-5,8.033154293976049e-8,0.0032374767927001143,-5.0831888417986464e-5,8.05778502518239e-8,0.0032376595358681605,-5.100299476696643e-5,8.08503013355666e-8,0.0032379179830066707,-5.1142929781694154e-5,8.106998345596535e-8,0.0032382234578475634,-5.121949714913483e-5,8.118548183125027e-8,0.0032385413765336594,-5.1220034229706235e-5,8.117745244402647e-8,0.0032388396301233986,-5.1148784000511076e-5,8.105395968506553e-8,0.00323909343633175,-5.1022080757357263e-5,8.084232217504016e-8,0.003239287476598087,-5.086344596635564e-5,8.058099601387515e-8,0.003239416418574005,-5.06993062299847e-5,8.031267394281034e-8,0.0032394844711164405,-5.055531403368913e-5,8.007849327535253e-8,0.0032395041778899027,-5.0453203864372276e-5,7.991313554603084e-8,0.003239494528968082,-5.0408228290502986e-5,7.98408045445796e-8,0.0032394784475627734,-5.0427301336513986e-5,7.987225828658261e-8,0.003239479791896909,-5.050810067219918e-5,8.000332058699083e-8,0.0032395202194974377,-5.063931236648878e-5,8.021522493846629e-8,0.003239616293252338,-5.080193546123921e-5,8.047671952390412e-8,0.003239777049036872,-5.097147176821398e-5,8.074769163503124e-8,0.003240002171167665,-5.112088531384368e-5,8.098412232278307e-8,0.0032402808961741075,-5.122423243494423e-5,8.114415044682696e-8,0.0032405918090109447,-5.126100829262938e-5,8.119521335082708e-8,0.003240904131438615,-5.122133435508816e-5,8.112236888320618e-8,0.003241181684719136,-5.111146117220087e-5,8.093692711688671e-8,0.003241390622446391,-5.095766931217798e-5,8.068237971757372e-8,0.0032415106650658305,-5.080520775946731e-5,8.04323546602781e-8,0.003241546514068598,-5.070868740467566e-5,8.027494782684523e-8,0.0032415324844812794,-5.071373081832885e-5,8.028313812372978e-8,0.003241523709398545,-5.083705921425271e-5,8.048281634683229e-8,0.0032415751240446157,-5.1057319994444045e-5,8.083823631077988e-8,0.003241719537245258,-5.132391935969942e-5,8.126660197144499e-8,0.0032419576140943988,-5.157842278878715e-5,8.167296421774885e-8,0.0032422632301883753,-5.177516910115313e-5,8.198373070848606e-8,0.0032425973491017465,-5.189151237656024e-5,8.216316480911329e-8,0.003242921385633165,-5.192728220314501e-5,8.221219939811576e-8,0.003243205429064354,-5.1898436692860174e-5,8.215775773060924e-8,0.0032434313058024543,-5.182970678799692e-5,8.204054311489319e-8,0.0032435923938506023,-5.1748673330064326e-5,8.190536290404036e-8,0.0032436920809447035,-5.1681708633171465e-5,8.179466859600291e-8,0.0032437419250657485,-5.165123951677518e-5,8.17443236041018e-8,0.0032437597611700603,-5.167373948957442e-5,8.178051974505204e-8,0.0032437676397874047,-5.1758154968282606e-5,8.191729901686929e-8,0.003243789408658554,-5.190473825027876e-5,8.215464440259327e-8,0.0032438478099100776,-5.2104555505873134e-5,8.247762756783664e-8,0.0032439612563935362,-5.234009583257239e-5,8.28573715553115e-8,0.0032441407595725984,-5.258721229750601e-5,8.325425050664329e-8,0.0032443875424479525,-5.281834024054875e-5,8.36232428780749e-8,0.0032446918276209393,-5.300675228469284e-5,8.392100559929466e-8,0.0032450332255609038,-5.3131371114476176e-5,8.411381289746435e-8,0.00324538295404514,-5.318148371486626e-5,8.418520437848297e-8,0.003245707983573782,-5.316071079859441e-5,8.414223757206918e-8,0.0032459772192329835,-5.3089364431137183e-5,8.401896535485175e-8,0.0032461694781570896,-5.300370532228837e-5,8.387484551908885e-8,0.003246281847351533,-5.2950284714670026e-5,8.37853066862844e-8,0.0032463352544695014,-5.297443793121066e-5,8.382308719834454e-8,0.0032463728424833803,-5.310479309421307e-5,8.403337508404443e-8,0.003246448216996769,-5.333992759564566e-5,8.441256609303461e-8,0.0032466062921121183,-5.364552457477591e-5,8.49040114435253e-8,0.0032468659901151594,-5.396605828032138e-5,8.541718992475005e-8,0.003247214553528512,-5.424562065011762e-5,8.586156956307863e-8,0.003247615679936334,-5.444642162568678e-5,8.617657458590432e-8,0.003248024912597425,-5.455655514944839e-5,8.634399975468773e-8,0.003248403432332568,-5.458687626580262e-5,8.638262859372707e-8,0.0032487255353343303,-5.4562352771310106e-5,8.633386467620277e-8,0.00324898008935198,-5.451326661190067e-5,8.624724859115626e-8,0.0032491685238771285,-5.4468896133598934e-5,8.617020704301661e-8,0.0032493017385686698,-5.44538837415368e-5,8.614231992982142e-8,0.0032493972235823195,-5.448639212370825e-5,8.619253072529561e-8,0.0032494766715691,-5.4577106999117414e-5,8.633766110669544e-8,0.003249563821635595,-5.4728537878472483e-5,8.658130339795376e-8,0.0032496821379050258,-5.4934496846960336e-5,8.691293350608795e-8,0.0032498520196944476,-5.5180047124981716e-5,8.730779131766455e-8,0.0032500875683692987,-5.544249647615775e-5,8.772852392629017e-8,0.0032503934051933206,-5.569395062737085e-5,8.812944569042736e-8,0.0032507623946056432,-5.5905572624570456e-5,8.846361811302392e-8,0.0032511752416808635,-5.60531534073218e-5,8.869203900002466e-8,0.0032516027189509527,-5.6122949655416366e-5,8.879316740083876e-8,0.003252010653866079,-5.6116271961945236e-5,8.87702629117698e-8,0.0032523669850277413,-5.605136928982403e-5,8.865417136694602e-8,0.0032526495630223616,-5.596163996267052e-5,8.850004846746351e-8,0.003252852996146235,-5.588978132512746e-5,8.837752315420322e-8,0.0032529925562878982,-5.58782471815996e-5,8.83550511189378e-8,0.003253103082055259,-5.595758026448335e-5,8.848108953757554e-8,0.0032532314776745693,-5.613576384150119e-5,8.876716640678854e-8,0.0032534234568621025,-5.6393001850667115e-5,8.917985280515563e-8,0.0032537084871765787,-5.668575826548498e-5,8.964767779069584e-8,0.0032540894242032077,-5.696017640428366e-5,9.008307761306017e-8,0.00325454214619616,-5.716962075359378e-5,9.041084937999461e-8,0.0032550252674333844,-5.728830620990315e-5,9.059011621990187e-8,0.003255494511827089,-5.731556283163272e-5,9.06209904156305e-8,0.003255914883576044,-5.7271048375594106e-5,9.0536487245569e-8,0.003256266746644497,-5.71854418674298e-5,9.03871423788393e-8,0.003256546050101389,-5.709145577327869e-5,9.022629331978918e-8,0.003256761198809244,-5.701770488175832e-5,9.010018411835402e-8,0.0032569290319573213,-5.6985589687069876e-5,9.004308407198988e-8,0.0032570712782715805,-5.700820517414628e-5,9.007569729439265e-8,0.003257211829634789,-5.709019855395602e-5,9.02050273070369e-8,0.003257374555642879,-5.722785472994945e-5,9.042451477474267e-8,0.0032575811280771455,-5.740918789972536e-5,9.07141464433097e-8,0.0032578484112563417,-5.761434937787547e-5,9.104111671626653e-8,0.003258185352705804,-5.781702102123823e-5,9.136217618930464e-8,0.0032585898547709312,-5.7987501554828986e-5,9.162880083070914e-8,0.003259046711760422,-5.8097856157750106e-5,9.179571951463989e-8,0.0032595281106661137,-5.812865707175766e-5,9.183195308320635e-8,0.003259997899742414,-5.807559874358659e-5,9.173151942039728e-8,0.003260419534272522,-5.7953377600878414e-5,9.151954278320197e-8,0.003260765818064894,-5.7794560130481856e-5,9.125009531413922e-8,0.0032610273094332534,-5.7642803315349266e-5,9.099481763997835e-8,0.0032612163205118245,-5.754195090058938e-5,9.082492438170712e-8,0.0032613648222029144,-5.752416949150301e-5,9.07918667306029e-8,0.0032615165714595593,-5.7600716096652344e-5,9.09125486368035e-8,0.003261715522120589,-5.7758163232549566e-5,9.116362370356967e-8,0.003261993680028687,-5.796146329096944e-5,9.148694570509478e-8,0.0032623620293660872,-5.8163394938097374e-5,9.180524978805767e-8,0.003262807665272582,-5.8317766793719975e-5,9.20437012761951e-8,0.0032632983134054426,-5.839199548958222e-5,9.215020451540345e-8,0.0032637924706452283,-5.8374669624859956e-5,9.210741718701442e-8,0.0032642511156409566,-5.827592207902026e-5,9.193302480930112e-8,0.0032646467560847373,-5.8121634092867766e-5,9.167002565308534e-8,0.003264967464613854,-5.794476140729533e-5,9.137245205768258e-8,0.0032652161360441057,-5.777729029325265e-5,9.109227604970783e-8,0.0032654068966987506,-5.764485386744147e-5,9.087078295628466e-8,0.003265560763456718,-5.756421591411039e-5,9.073466938213295e-8,0.0032657018358711034,-5.754278131830879e-5,9.069539608026732e-8,0.0032658544101094944,-5.757911789189286e-5,9.075008999633211e-8,0.0032660408074434333,-5.766372839766714e-5,9.088277448331733e-8,0.003266279396647697,-5.777976701135738e-5,9.106550153542938e-8,0.003266582301739539,-5.790395532285883e-5,9.12598753635655e-8,0.0032669526451217174,-5.80083795326496e-5,9.142009964322477e-8,0.003267381767555401,-5.8063972041273024e-5,9.149881185930952e-8,0.0032678476163183977,-5.804619770493952e-5,9.145646309337639e-8,0.003268316164476314,-5.79424713012002e-5,9.12733988533491e-8,0.0032687475221006164,-5.7759070899220414e-5,9.096097972973574e-8,0.003269106529960257,-5.7523825509117984e-5,9.056570793575683e-8,0.0032693746058921917,-5.7281393394498796e-5,9.01612217244734e-8,0.0032695575700859222,-5.7081169177186004e-5,8.982829299441299e-8,0.003269685200835826,-5.696205583363011e-5,8.962983858648573e-8,0.003269802214385346,-5.69404396125155e-5,8.959138558936853e-8,0.0032699545344188102,-5.700604476264368e-5,8.969464615227079e-8,0.0032701763009091883,-5.7126338282034846e-5,8.988518777066455e-8,0.003270481677542585,-5.725676162404585e-5,9.008956185060092e-8,0.0032708629470038705,-5.735286992395743e-5,9.023531943545998e-8,0.00327129431081459,-5.73809369580062e-5,9.026823726629858e-8,0.003271739599354458,-5.7324683909892404e-5,9.0162995318363e-8,0.0032721614993477402,-5.7187059246788255e-5,8.992569167509696e-8,0.0032725298445275717,-5.698731841848309e-5,8.958873870059514e-8,0.0032728270521627735,-5.675482647236528e-5,8.920055536744774e-8,0.003273049851570274,-5.652171851946322e-5,8.881356947561132e-8,0.0032732076970815966,-5.6316492523811355e-5,8.847388481842329e-8,0.003273319145670565,-5.615979289425225e-5,8.821459453534936e-8,0.0032734076545255755,-5.6062581528121386e-5,8.80529729256984e-8,0.003273497839452653,-5.602614665502433e-5,8.799058220459504e-8,0.003273612612866018,-5.604313201827532e-5,8.801494830994981e-8,0.0032737710867281598,-5.609888691693807e-5,8.81017115844299e-8,0.0032739868282610452,-5.617282175496241e-5,8.821681580619211e-8,0.0032742660365082388,-5.6239927611709573e-5,8.831905491514963e-8,0.003274605453936708,-5.627300819139812e-5,8.836386764965425e-8,0.0032749903608651097,-5.624637481283029e-5,8.830953041101465e-8,0.0032753938061936853,-5.614154823740327e-5,8.812653176627841e-8,0.0032757789936782864,-5.595449360495289e-5,8.78092919463083e-8,0.003276106647287594,-5.5701960526054305e-5,8.738628367074491e-8,0.0032763471421135533,-5.5422576587764e-5,8.692152997987455e-8,0.003276493258995722,-5.516877259292599e-5,8.650115186701256e-8,0.0032765664014518425,-5.499014654352684e-5,8.6206007430559e-8,0.003276610999942624,-5.491529491512299e-5,8.608196484440229e-8,0.00327667876464851,-5.494164014254628e-5,8.612345199946136e-8,0.0032768108494707626,-5.5038149965003114e-5,8.627829358674474e-8,0.0032770262708863127,-5.5157998227194705e-5,8.646888984364038e-8,0.0032773198064892668,-5.525387498988542e-5,8.661760852501955e-8,0.003277667339223204,-5.528988528837087e-5,8.666631731922832e-8,0.0032780346135977243,-5.5247658906088445e-5,8.658614562003795e-8,0.0032783860663120725,-5.512713483912658e-5,8.637835326428021e-8,0.0032786918994025917,-5.494363190933129e-5,8.606912261480339e-8,0.0032789327276445193,-5.472280951801439e-5,8.570104945011115e-8,0.003279101674465376,-5.449476059083265e-5,8.532342409842275e-8,0.0032792040453030104,-5.4288301754132294e-5,8.498301212375031e-8,0.0032792550494914192,-5.4126402494692005e-5,8.471678473867611e-8,0.00327927635003745,-5.402331015253779e-5,8.454741469132955e-8,0.003279292261048445,-5.398344931011103e-5,8.448159405887646e-8,0.0032793262697919023,-5.4001841681931624e-5,8.451073771217038e-8,0.0032793983038223334,-5.406554644950239e-5,8.461328637466328e-8,0.003279522775013503,-5.4155543035676e-5,8.475773055077884e-8,0.0032797071337421773,-5.4248736184423704e-5,8.490590178054932e-8,0.0032799506498463736,-5.432014534373688e-5,8.501666483516674e-8,0.003280243299674806,-5.434560660615751e-5,8.505051210231342e-8,0.003280565004985942,-5.430549748269372e-5,8.497579494488648e-8,0.003280886168989561,-5.4189871664097075e-5,8.47771184438119e-8,0.003281171139090372,-5.4004474659509736e-5,8.446499011144445e-8,0.003281386101154559,-5.377533480404946e-5,8.408301336304262e-8,0.0032815110470657827,-5.354778435894943e-5,8.370597725390225e-8,0.003281551525320081,-5.3376005048922325e-5,8.342256462979238e-8,0.0032815423544261006,-5.3303997698127796e-5,8.330417977081286e-8,0.0032815375199139597,-5.334662167257096e-5,8.337402779899631e-8,0.003281589425999078,-5.3482477388724635e-5,8.359571772677401e-8,0.003281729077837722,-5.366347603158219e-5,8.388931201996357e-8,0.0032819577992785165,-5.383448660629819e-5,8.416390530143764e-8,0.003282252028816867,-5.3951461208844274e-5,8.434755805679241e-8,0.003282575064733863,-5.399087527054447e-5,8.440270284958065e-8,0.0032828888308288045,-5.395041499415586e-5,8.432692167156779e-8,0.0032831620823933123,-5.384442525035143e-5,8.414501783308623e-8,0.003283374577592845,-5.369758720472906e-5,8.389827797025655e-8,0.0032835182149421297,-5.3538900495709054e-5,8.363445972132653e-8,0.003283596317507677,-5.3396677990892325e-5,8.339967143688218e-8,0.0032836217594359217,-5.3294597136367996e-5,8.323212142857587e-8,0.0032836142689651616,-5.3248868881598726e-5,8.31577096068053e-8,0.0032835972456282487,-5.326663219322064e-5,8.318754756177193e-8,0.003283594445314077,-5.33455619881586e-5,8.331735797629278e-8,0.003283626858166137,-5.34746355750414e-5,8.35286872417797e-8,0.0032837101355881193,-5.363590835227975e-5,8.379175121758466e-8,0.0032838527983820075,-5.3806929427041975e-5,8.406937560267436e-8,0.003284055181100754,-5.396343946274494e-5,8.432148778286718e-8,0.0032843089773761463,-5.40822511951771e-5,8.450998775388706e-8,0.003284597358913076,-5.414438100313206e-5,8.460404446842303e-8,0.003284895834787221,-5.413857912979374e-5,8.458595257932233e-8,0.003285174445296768,-5.406532947278778e-5,8.445757818292492e-8,0.0032854023338345904,-5.3940697089698616e-5,8.424636958756322e-8,0.0032855554831677934,-5.379806390910282e-5,8.400782714837921e-8,0.003285626815766494,-5.3684562539693467e-5,8.38193737194727e-8,0.0032856347701112503,-5.3649414340871245e-5,8.376117760633833e-8,0.0032856235616832005,-5.3725485877918647e-5,8.38860837426238e-8,0.003285650142636974,-5.391249164401037e-5,8.419236027689752e-8,0.0032857616382241683,-5.4173556173630084e-5,8.461836300416228e-8,0.003285976011289329,-5.444965808100916e-5,8.50665090145353e-8,0.003286277545198635,-5.468347961861177e-5,8.544264341871019e-8,0.0032866275363075573,-5.483838580460321e-5,8.568728752895917e-8,0.0032869809330381304,-5.490461627338049e-5,8.578565026164803e-8,0.0032872996339806037,-5.489474335285152e-5,8.575977711296552e-8,0.003287559053510933,-5.48347345844862e-5,8.565341922089876e-8,0.0032877491677817746,-5.475543920672599e-5,8.551775502054806e-8,0.0032878725457978937,-5.4686451467669074e-5,8.540127833973602e-8,0.0032879413934742783,-5.465235422268597e-5,8.534381381044643e-8,0.003287974597188788,-5.4670536130827427e-5,8.53731992403231e-8,0.003287994886136215,-5.474993658443841e-5,8.550343585455102e-8,0.003288026004617243,-5.489052942074253e-5,8.573393033814724e-8,0.0032880898877680324,-5.508355309891816e-5,8.604985500404462e-8,0.003288203921857211,-5.5312587539400495e-5,8.642385409484243e-8,0.0032883785505384453,-5.5555608027442216E-05,8.681938148259401e-8,0.0032886156357365445,-5.578790705412445e-5,8.719554080619211e-8,0.0032889078436774757,-5.5985521987479445e-5,8.751283667062376e-8,0.003289239125545009,-5.612881998939157e-5,8.77392146012537e-8,0.003289586318797038,-5.620594849831879e-5,8.78558281449679e-8,0.0032899218910641607,-5.621585137160659e-5,8.786195042061433e-8,0.0032902179191576634,-5.617054021271309e-5,8.77784760736655e-8,0.0032904515278464005,-5.609599525829377e-5,8.764903319639631e-8,0.003290611690989794,-5.603034994237022e-5,8.753663675600585e-8,0.0032907060886177963,-5.601757230920074e-5,8.751312401969255e-8,0.0032907648315062244,-5.60957001758165e-5,8.763993271030684e-8,0.00329083651219213,-5.628175714456582e-5,8.794367269940098e-8,0.003290973902945432,-5.656023599277606e-5,8.839762192953688e-8,0.003291213321631433,-5.6884077700507716e-5,8.892363541663668e-8,0.003291558763057707,-5.7191191598862794e-5,8.941943124269481e-8,0.0032919809643103797,-5.742839856654776e-5,8.979798297636507e-8,0.0032924313677109907,-5.756902600419823e-5,9.001640079964623e-8,0.0032928611324823196,-5.7616237434723784e-5,9.008120657162066e-8,0.003293234884122227,-5.759476981903807e-5,9.003437623650073e-8,0.003293535602904595,-5.753893290328132e-5,8.993321103832823e-8,0.003293762927268325,-5.7482792094576774e-5,8.983397854989548e-8,0.003293928650397064,-5.745439610101603e-5,8.978246898705095e-8,0.003294052074754002,-5.7473344437337244e-5,8.981023130920463e-8,0.003294156313027807,-5.755021904012821e-5,8.993390698836747e-8,0.0032942654733313977,-5.768674160814335e-5,9.01556607176256e-8,0.0032944022662521263,-5.787621616364838e-5,9.046394738638393e-8,0.003294585697181951,-5.810428412374258e-5,9.083470767938509e-8,0.003294828730883638,-5.835025192829971e-5,9.123350329312376e-8,0.0032951361110117538,-5.858935210068161e-5,9.161924961334033e-8,0.003295502862145243,-5.879608733804884e-5,9.194981099819587e-8,0.0032959140922813155,-5.894836427269165e-5,9.218894166181916e-8,0.003296346501630117,-5.903178845858687e-5,9.2313465377073e-8,0.0032967716942378903,-5.904330752969372e-5,9.231927451156279e-8,0.003297161013652729,-5.8993325195830865e-5,9.222465017716898e-8,0.0032974912528637187,-5.8905595820280855e-5,9.206977518622295e-8,0.0032977504065195102,-5.881449638135142e-5,9.191186754025751e-8,0.003297942473857903,-5.875940209359208e-5,9.181563871498607e-8,0.0032980898714052753,-5.877616173854993e-5,9.183921908280787e-8,0.0032982314957932714,-5.88866346272826e-5,9.201718962789459e-8,0.0032984146833885644,-5.908904162486795e-5,9.23451566292984e-8,0.0032986812779857745,-5.935379884542151e-5,9.277334751463147e-8,0.003299051997951586,-5.962945134656554e-5,9.321663709787946e-8,0.003299516827886728,-5.985901363351853e-5,9.358146928311346e-8,0.0033000378122319263,-5.999998453310655e-5,9.379868554416737e-8,0.003300563468977945,-6.003775679601342e-5,9.384541959529023e-8,0.003301046759699778,-5.9986342425414024e-5,9.374604054768167e-8,0.0033014576765286454,-5.987863396959832e-5,9.355579500500295e-8,0.003301786809054379,-5.975339670750789e-5,9.33390980278829e-8,0.0033020419823445663,-5.964508164161518e-5,9.315264867329e-8,0.0033022421362587082,-5.9578548895871055e-5,9.303685979764736e-8,0.003302411561432909,-5.9567748630520254e-5,9.301394192772079e-8,0.0033025757102160976,-5.961647141519134e-5,9.308938092423752e-8,0.003302758454813665,-5.971971311326604e-5,9.32543085753427e-8,0.003302980149123383,-5.986499809573707e-5,9.348767984635991e-8,0.0033032558966772426,-6.003362496588928e-5,9.375826851834662e-8,0.003303593705146403,-6.0202192353766145e-5,9.402715772445558e-8,0.0033039926166897105,-6.034495084095433e-5,9.425167222522078e-8,0.003304441386900897,-6.043737478577002e-5,9.439138689843304e-8,0.003304918618617791,-6.046082993353868e-5,9.441594479608006e-8,0.0033053952081656575,-6.040751190609572e-5,9.431324511412548e-8,0.0033058394190006372,-6.028418972979809e-5,9.409552551950787e-8,0.0033062239072710452,-6.011307792870043e-5,9.380056022170947e-8,0.0033065329819612454,-5.99287475949815e-5,9.348622559924204e-8,0.003306767914704313,-5.977122717532698e-5,9.321879190076651e-8,0.003306948486177933,-5.9676703637333575e-5,9.305741226162379e-8,0.0033071098761496675,-5.966803032891732e-5,9.303855751819586e-8,0.003307295078633383,-5.974750722150152e-5,9.316446634613662e-8,0.003307544114132092,-5.9894223093106617E-05,9.339925812123948e-8,0.0033078824817017226,-6.006764076265878e-5,9.367527554290179e-8,0.003308312428674662,-6.021771715946743e-5,9.390997219756039e-8,0.003308810868846452,-6.02993136284251e-5,9.402960860305769e-8,0.003309335890088662,-6.028585030600706e-5,9.39915224159716e-8,0.003309839846317023,-6.017646168426142e-5,9.379561381316522e-8,0.003310283495942255,-5.999380790271972e-5,9.348042402784567e-8,0.0033106453888089448,-5.977450811021991e-5,9.310709708273535e-8,0.0033109239015205183,-5.955734946844783e-5,9.273979011758474e-8,0.003311133299984977,-5.937407692846487e-5,9.243051520461885e-8,0.0033112972340637236,-5.924481776115903e-5,9.221178385233012e-8,0.0033114426199441147,-5.917750316763905e-5,9.209590179549796e-8,0.0033115952609545363,-5.9169497804775444e-5,9.207784107991695e-8,0.003311777204723194,-5.920987375766593e-5,9.213904652853273e-8,0.0033120052080999,-5.92814938356559e-5,9.225082851606375e-8,0.003312289594904694,-5.936274846059623e-5,9.237717028262174e-8,0.003312633024578902,-5.942929679557276e-5,9.247760893901174e-8,0.003313029137070735,-5.945642637260442e-5,9.251122688928723e-8,0.0033134615879803833,-5.942257807852542e-5,9.244260873645003e-8,0.0033139044987459776,-5.931413137224047e-5,9.22498336783901e-8,0.0033143255654085853,-5.913063940039792e-5,9.193309185903323e-8,0.003314692523404364,-5.888852657791199e-5,9.152061902109267e-8,0.003314982071759978,-5.862063074863608e-5,9.106765658072329e-8,0.0033151883441194956,-5.836990960235362e-5,9.064573525743296e-8,0.003315327061036844,-5.817820907612507e-5,9.032387007253822e-8,0.003315432756404787,-5.807381239007963e-5,9.014792415786519e-8,0.003315549502730872,-5.80625870862475e-5,9.012617527068651e-8,0.0033157184572218204,-5.8126053541180765e-5,9.022654455023874e-8,0.003315966551858763,-5.8226689676969886e-5,9.038585941639497e-8,0.0033162996332138915,-5.831825523870404e-5,9.052728727571216e-8,0.0033167015288640424,-5.835787971070538e-5,9.058041563143791e-8,0.0033171388754599613,-5.8316694902620264e-5,9.049864230177064e-8,0.003317570199537387,-5.818631498100734e-5,9.026951683504713e-8,0.0033179566224040904,-5.7979533462259516e-5,8.99154851350754e-8,0.0033182710352989515,-5.772533753434543e-5,8.94853309482593e-8,0.003318503156852944,-5.746022504077495e-5,8.903967082003617e-8,0.003318659520612165,-5.721893166409305e-5,8.863565691424088e-8,0.0033187593907932924,-5.7027409664830245e-5,8.831554830627552e-8,0.0033188288152567313,-5.6899447070337116e-5,8.810136402150192e-8,0.0033188949683195744,-5.683663868685322e-5,8.799503967854189e-8,0.0033189820031886176,-5.683044444173091e-5,8.79819251290983e-8,0.0033191086079180677,-5.686498657172212e-5,8.80353851458633e-8,0.0033192868090701146,-5.6919687627007744e-5,8.812108202417043e-8,0.0033195213608058194,-5.6971468212093134e-5,8.820056393045532e-8,0.003319809205334997,-5.6996756676009524e-5,8.823463939940167e-8,0.0033201388682853913,-5.6973850769248384e-5,8.818741927408212e-8,0.0033204901645404743,-5.688617916715095e-5,8.803185327819643e-8,0.0033208351653437364,-5.672667481568836e-5,8.775700668157399e-8,0.0033211417606726764,-5.650258196722333e-5,8.737589343481958e-8,0.0033213807589085697,-5.623860290952227e-5,8.693042466255639e-8,0.003321535704580842,-5.5975194089382036e-5,8.64882803546673e-8,0.003321611779853912,-5.575964063734652e-5,8.612788421461543e-8,0.0033216383488875716,-5.563121550563371e-5,8.591372038897917e-8,0.00332166160133251,-5.560648771923718e-5,8.587208299016034e-8,0.003321729332346463,-5.567246407025703e-5,8.597999999454416e-8,0.0033218749696411454,-5.5791288194139026e-5,8.617344710132884e-8,0.003322108078793622,-5.591357362818337e-5,8.636987047930183e-8,0.003322414074917141,-5.599359775464645e-5,8.649361999558831e-8,0.0033227610657908736,-5.600062818328033e-5,8.649468343439781e-8,0.0033231098129842453,-5.592409172339057e-5,8.635693899550423e-8,0.003323423401229845,-5.577304858807897e-5,8.60968278743868e-8,0.0033236746106560327,-5.5571625019046895e-5,8.57553706414179e-8,0.0033238501378285963,-5.535223551652658e-5,8.538670353148495e-8,0.003323951512978097,-5.5148243821503265e-5,8.504591708672522e-8,0.0033239930515267515,-5.4987516475655016e-5,8.477855814651931e-8,0.003323997693098464,-5.4888022929405465e-5,8.461360179444422e-8,0.0033239919654675055,-5.485601986581888e-5,8.456067453943338e-8,0.0033240012834951657,-5.4886614374086276e-5,8.461111130656435e-8,0.00332404640453801,-5.496599005265156e-5,8.474164448132102e-8,0.003324141328817078,-5.507438956499113e-5,8.491926542726227e-8,0.003324292421254159,-5.5189074106772154e-5,8.510604823670503e-8,0.0033244982624229583,-5.528690636714247e-5,8.526342573891019e-8,0.0033247498139609742,-5.534665974060568e-5,8.5356116539381e-8,0.003325030738318475,-5.535139742517621e-5,8.535622814349039e-8,0.003325318078773487,-5.529132808874682e-5,8.524810407518335e-8,0.0033255840434287193,-5.516732559483926e-5,8.503412127897562e-8,0.003325800025884042,-5.4994500283684165e-5,8.474038755337137e-8,0.003325943636647162,-5.4803921202816106e-5,8.441925947919739e-8,0.003326007954119694,-5.463949661780294e-5,8.414386557641033e-8,0.0033260093929748016,-5.454751850488496e-5,8.39906316797749e-8,0.0033259881913321188,-5.4560143825206843e-5,8.401195873056964e-8,0.0033259972865628765,-5.4680122236649234e-5,8.421112518435034e-8,0.003326082679984568,-5.4876669269890736e-5,8.453576539427439e-8,0.0033262656698723574,-5.509660108184346e-5,8.489670021080734e-8,0.0033265367421952,-5.528454025680654e-5,8.520177547374201e-8,0.0033268625692368203,-5.540089651290604e-5,8.53858406600953e-8,0.0033271997836301316,-5.5430263445104554e-5,8.542454745717457e-8,0.00332750801243725,-5.538020410605459e-5,8.533193941439912e-8,0.0033277582273325535,-5.527451512296222e-5,8.514878834424156e-8,0.0033279360985943923,-5.514504454421498e-5,8.492865234127454e-8,0.0033280417206101223,-5.502443713341801e-5,8.47257264967664e-8,0.0033280872119350394,-5.494062573953781e-5,8.458583816329359e-8,0.0033280931856418602,-5.4913121909954754e-5,8.454056432249686e-8,0.003328084687829209,-5.49510529651956e-5,8.460424445406648e-8,0.003328087119786794,-5.505287514330795e-5,8.477367296994299e-8,0.003328122619004344,-5.520754438276987e-5,8.503008040542494e-8,0.0033282072794208633,-5.539681605654844e-5,8.534289014342119e-8,0.0033283494784650124,-5.559823205385741e-5,8.567459021016955e-8,0.0033285493241682613,-5.5788247308437714e-5,8.5985886311372e-8,0.0033287989546007955,-5.594511202878772e-5,8.624053969095568e-8,0.0033290834152926,-5.605145404558202e-5,8.640978601385084e-8,0.0033293820025522038,-5.609665354800625e-5,8.647641681844645e-8,0.00332967012765513,-5.607914249037254e-5,8.64386360154981e-8,0.003329922108265471,-5.600868372770514e-5,8.63137014691309e-8,0.003330115618151409,-5.590807269377462e-5,8.614043768918587e-8,0.0033302381328333365,-5.58126677029861e-5,8.597808953775239e-8,0.0033302943335076583,-5.5765475825965935e-5,8.589791861426393e-8,0.0033303112431023363,-5.580611329656748e-5,8.596488539474054e-8,0.003330335893358347,-5.595512706192685e-5,8.621187561535514e-8,0.0033304217950196257,-5.620076748901601e-5,8.661809726569148e-8,0.0033306077541668403,-5.649824615334275e-5,8.710815973363818e-8,0.003330900673735715,-5.678551821777345e-5,8.757850948338549e-8,0.0033312733708816735,-5.7007580014031255e-5,8.793794593475561e-8,0.003331677827847687,-5.713506396332166e-5,8.81385544183494e-8,0.0033320641462310304,-5.7168762976044525e-5,8.818303689777447e-8,0.003332394888741356,-5.713232454494835e-5,8.81121521924967e-8,0.003332650948899174,-5.706056072566515e-5,8.79848172366316e-8,0.0033328307387244707,-5.69892054818512e-5,8.786079588531413e-8,0.003332946103134148,-5.6948270940260595e-5,8.7789662082767e-8,0.003333017524013881,-5.695869565914077e-5,8.780546633003202e-8,0.003333069785980845,-5.7031151550971855e-5,8.79250644837299e-8,0.003333128293176569,-5.7166122827538784e-5,8.814848616597651e-8,0.003333215942814037,-5.735486447701515e-5,8.846062555209589e-8,0.003333350526081416,-5.758107712399529e-5,8.883400189972032e-8,0.003333542711568079,-5.782323256543382e-5,8.923255045240708e-8,0.0033337948024626724,-5.805748921759443e-5,8.961641831353482e-8,0.0033341004955474854,-5.826092281925177e-5,8.994735848331943e-8,0.0033344456574180216,-5.8414663420069585e-5,9.019404254409442e-8,0.0033348099763535065,-5.850667539814434e-5,9.033680470762473e-8,0.0033351693972139954,-5.8534013007029704e-5,9.037145788055351e-8,0.0033354992652454255,-5.850435337312846e-5,9.031176994724097e-8,0.003335778150817505,-5.8436628216984924e-5,9.019026948162117e-8,0.0033359924676545083,-5.836033415719681e-5,9.005674088553579e-8,0.003336141696475799,-5.831247259530645e-5,8.99728131408324e-8,0.003336242937122228,-5.833081796090152e-5,9.000064726389226e-8,0.003336332072852576,-5.844314497737879e-5,9.018519988192054e-8,0.003336457993721301,-5.8654611621949015e-5,9.053364701309959e-8,0.003336668034416213,-5.8939341334053395e-5,9.100181248328803e-8,0.0033369886308538366,-5.9243988034202145e-5,9.15003563787348e-8,0.0033374117211466396,-5.950577741976175e-5,9.192485569877443e-8,0.0033378966406314506,-5.9676814334938345e-5,9.219623025373824e-8,0.003338387060585492,-5.974061238822445e-5,9.228818050131115e-8,0.003338832161640395,-5.9712769824558396e-5,9.222809662066525e-8,0.003339200660884803,-5.9629238348668325e-5,9.207713490030904e-8,0.0033394839946629365,-5.9531508527586526e-5,9.19051435138701e-8,0.00333969194933606,-5.9455615021928336e-5,9.177216062406416e-8,0.0033398456958361393,-5.9426735296063406e-5,9.171952556625893e-8,0.0033399714625476887,-5.94580076063395e-5,9.176821138029921e-8,0.0033400959454044452,-5.9551503177061825e-5,9.19207583444299e-8,0.003340243216604815,-5.969991931487511e-5,9.21642828744451e-8,0.003340432528612182,-5.988845372977386e-5,9.247363390315894e-8,0.00334067661964073,-6.009682747560091e-5,9.281470236403697e-8,0.003340980391006287,-6.0301603901974886e-5,9.314821825194654e-8,0.0033413400860247433,-6.047899922745841e-5,9.34344253905957e-8,0.0033417433406987395,-6.0608161718892285e-5,9.363861218700703e-8,0.0033421704338331562,-6.0674530868574566e-5,9.373681434940468e-8,0.003342596793867571,-6.067274472862805e-5,9.372073186756808e-8,0.003342996619504433,-6.060857747387037e-5,9.360092417739725e-8,0.0033433472973181913,-6.049938316515723e-5,9.340736779360886e-8,0.003343634076313921,-6.037265637678459e-5,9.318674843140178e-8,0.003343854352958671,-6.026253039672385e-5,9.29962869527095e-8,0.0033440207974379525,-6.02040503597778e-5,9.289398103642671e-8,0.00334416209570793,-6.0225227664861864e-5,9.292540486542561e-8,0.0033443195738953684,-6.033783862182839e-5,9.310869759814082e-8,0.0033445382535737425,-6.052967926745262e-5,9.342213643036966e-8,0.0033448528768625176,-6.076271261213488e-5,9.380146725962548e-8,0.0033452733341006566,-6.098129519580642e-5,9.415379750598335e-8,0.0033457773304763423,-6.11302103754188e-5,9.43875995339562e-8,0.003346316441695281,-6.117498982465232e-5,9.444642575943193e-8,0.0033468338086486238,-6.111354333006799e-5,9.432810795018451e-8,0.0033472838692474196,-6.097324927755117e-5,9.4079645301939e-8,0.0033476441985163447,-6.0797240704200516e-5,9.377398884436344e-8,0.0033479163084475117,-6.062888070521747e-5,9.348385258171712e-8,0.003348119017326552,-6.050124738963157e-5,9.326410433273226e-8,0.0033482798563691583,-6.043317112036643e-5,9.314535120928058e-8,0.0033484280459571253,-6.0429873261064216e-5,9.313533471622201e-8,0.0033485900303240564,-6.0485597297215256e-5,9.322360188274091e-8,0.0033487870427821647,-6.058650061285441e-5,9.338645264051759e-8,0.003349033779148276,-6.071317745669125e-5,9.359112405668456e-8,0.003349337512154647,-6.084287930407258e-5,9.379941019517652e-8,0.0033496973868342426,-6.0951778738148076e-5,9.39713912066027e-8,0.0033501040189214903,-6.1017654657638296e-5,9.406994902831682e-8,0.003350539852327468,-6.102313701204754e-5,9.406628005534092e-8,0.0033509808424563464,-6.0959184102096446e-5,9.394579478956938e-8,0.0033513997985662727,-6.0828035243102085e-5,9.371305998195274e-8,0.003351771242630648,-6.064464806465786e-5,9.339407682046672e-8,0.0033520770502697586,-6.043567280060645e-5,9.303431185934628e-8,0.0033523115992083793,-6.023549059632611e-5,9.269175686275925e-8,0.0033524849538567095,-6.0079656147178764e-5,9.242570667708549e-8,0.003352622868607595,-5.999683644913714e-5,9.228321247007672e-8,0.0033527629108964156,-6.0000858451751614e-5,9.228598308330152e-8,0.0033529466888537886,-6.0084899028015664e-5,9.242109352946563e-8,0.003353209163212818,-6.0220101719581925e-5,9.263915942649568e-8,0.003353567452423346,-6.036056292024498e-5,9.286301996208644e-8,0.003354013074553909,-6.045506176241125e-5,9.300742375322236e-8,0.003354511938151932,-6.0462793179074204e-5,9.300515855826013e-8,0.003355013937094379,-6.036701837740332e-5,9.282957547814603e-8,0.0033554690078815767,-6.018006277425595e-5,9.250263119120252e-8,0.0033558424476254254,-5.9937221757790955e-5,9.208440293612802e-8,0.0033561228412348943,-5.9683282240027307e-5,9.165030735952862e-8,0.003356320744440452,-5.9458664926667036e-5,9.126781835699132e-8,0.003356461215846782,-5.929059997108527e-5,9.09818074709203e-8,0.0033565749791113304,-5.919060979973586e-5,9.081060603989335e-8,0.0033566915189816907,-5.915640839670276e-5,9.07494897969949e-8,0.0033568350305881473,-5.91755770416691e-5,9.077702401431161e-8,0.003357022613830941,-5.9229226963443656e-5,9.086121990946202e-8,0.003357263701159578,-5.929496452229679e-5,9.096440629587108e-8,0.003357559911226247,-5.934921839576949e-5,9.104702421945221e-8,0.0033579049385909485,-5.9369383956175455e-5,9.1071192375381e-8,0.0033582845835001054,-5.9336313704812116e-5,9.100494733703145e-8,0.00335867744667257,-5.923739982099832e-5,9.082751861971475e-8,0.003359057001605932,-5.906997363720898e-5,9.053508695821385e-8,0.003359395616398978,-5.884413276926084e-5,9.014546329210125e-8,0.003359670484111321,-5.858354614172143e-5,8.96992412648217e-8,0.003359870306372325,-5.83227294745991e-5,8.925494292974744e-8,0.003360000476205311,-5.8100244081356475e-5,8.887733886137964e-8,0.0033600842939887445,-5.794905158876692e-5,8.862112733910623e-8,0.0033601588394004405,-5.7886876867381644e-5,8.851484939281549e-8,0.0033602660797591934,-5.790993390908707e-5,8.85506789176601e-8,0.003360441674025316,-5.799244505104898e-5,8.868407215376571e-8,0.003360704848971143,-5.809247460735285e-5,8.884397868653839e-8,0.003361052408555661,-5.8162610399993446e-5,8.895098477449679e-8,0.0033614587985430038,-5.816263041067814e-5,8.893850581578914e-8,0.003361882595100984,-5.807055435201572e-5,8.877103313526498e-8,0.0033622778382321966,-5.788851232418176e-5,8.845357733079992e-8,0.003362606646946412,-5.764123357960088e-5,8.802875740347297e-8,0.003362848722009863,-5.736772166360094e-5,8.756257923304475e-8,0.003363004624307182,-5.710951428610873e-5,8.712465566458204e-8,0.0033630925651310676,-5.690004657624532e-5,8.677046271557997e-8,0.0033631411170110623,-5.6758424875231495e-5,8.653114040510852e-8,0.003363181256001812,-5.668835779717318e-5,8.641199419472419e-8,0.0033632402740149748,-5.6680785627308535e-5,8.639713164955336e-8,0.0033633383786634027,-5.67180183840242e-5,8.64564805526587e-8,0.0033634874868962595,-5.6777755378881375e-5,8.65524655651299e-8,0.0033636912810481303,-5.683628445550697e-5,8.66452477529796e-8,0.003363945718484768,-5.687086249094485e-5,8.669663650025481e-8,0.0033642395389277832,-5.686171426360383e-5,8.667346696354637e-8,0.0033645548029027344,-5.6794222114151424e-5,8.655138743646585e-8,0.0033648679728196743,-5.6661634264931834e-5,8.631952160889124e-8,0.003365152316192434,-5.646808727765676e-5,8.598556119531746e-8,0.0033653823440695273,-5.6231009443925796e-5,8.557966538825618e-8,0.003365540348867742,-5.598115619209057e-5,8.515425825459867e-8,0.0033656236291926926,-5.5758262063050816e-5,8.477643543829795e-8,0.003365649237974656,-5.5601580627967396e-5,8.451187493962213e-8,0.003365652653538818,-5.5537505781072915e-5,8.440402629396734e-8,0.0033656789459104476,-5.5569291146105796e-5,8.445703766415184e-8,0.003365769023611574,-5.5674099565599833e-5,8.463116901817921e-8,0.003365946605285959,-5.580935658495085e-5,8.485389455646114e-8,0.003366211262409989,-5.592573091926771e-5,8.504204720695987e-8,0.0033665395943343838,-5.598132333980049e-5,8.512577176624952e-8,0.003366892961472996,-5.59521898282755e-5,8.506604596898847e-8,0.003367228357217615,-5.583677491599288e-5,8.486175343471328e-8,0.0033675090217883843,-5.565418314517531e-5,8.454632832083293e-8,0.0033677122812087027,-5.543770395775392e-5,8.417651191158752e-8,0.0033678331653782018,-5.522579913828783e-5,8.381704806824443e-8,0.0033678834944036373,-5.50530389308712e-5,8.352552276592036e-8,0.0033678872697589877,-5.494321345418341e-5,8.334103225252462e-8,0.003367874119813055,-5.490600237086945e-5,8.327889130742978e-8,0.0033678728417263332,-5.493731937946403e-5,8.333146207894089e-8,0.003367906582298691,-5.50223028120182e-5,8.347329601819736e-8,0.003367990240931756,-5.5139459330814e-5,8.36680693328067e-8,0.003368129820921837,-5.5264706650024884e-5,8.387526013174893e-8,0.0033683230141878383,-5.53746278372721e-5,8.405550425907457e-8,0.0033685602874602904,-5.544884667401181e-5,8.417455801548991e-8,0.0033688260245799536,-5.5471875403664845e-5,8.420648096017351e-8,0.0033690996964164,-5.54349217648513e-5,8.41368044105891e-8,0.0033693574390171246,-5.533796983745346e-5,8.396611154911362e-8,0.003369574738556079,-5.51920190230235e-5,8.371373979967595e-8,0.0033697309471166486,-5.502062543221554e-5,8.342014676700197e-8,0.0033698157191195807,-5.4858963662490004e-5,8.314502135403152e-8,0.00336983588693757,-5.4748211466438515e-5,8.295758836096101e-8,0.003369819180796456,-5.472435396786891e-5,8.291770942984493e-8,0.0033698103447281362,-5.4804144817696605e-5,8.305241791698605e-8,0.0033698580327925177,-5.497509215486744e-5,8.333937840761425e-8,0.00336999704671909,-5.519660736781785e-5,8.370918090270701e-8,0.003370235023755808,-5.541355414664154e-5,8.406846696487325e-8,0.0033705505910493,-5.557548077177791e-5,8.43325066766928e-8,0.0033709027002781183,-5.565191209448797e-5,8.445094442884492e-8,0.0033712449573918956,-5.563811944371171e-5,8.441726573141519e-8,0.0033715383281370122,-5.5551947479558465e-5,8.426301455023264e-8,0.0033717588003342688,-5.5425603682988634e-5,8.404350744757277e-8,0.0033718997534319347,-5.529628730757146e-5,8.382176259040501e-8,0.0033719703516509663,-5.519808521396885e-5,8.365483265879684e-8,0.0033719915125817105,-5.515616301581334e-5,8.358424368986457e-8,0.003371990670460589,-5.5183508520810655e-5,8.363084262341449e-8,0.003371996312094328,-5.5280222125438397e-5,8.37938999603007e-8,0.0033720332014755966,-5.543506986883743e-5,8.405389123547616e-8,0.0033721189855487107,-5.56286157858378e-5,8.437778720791833e-8,0.003372262458821144,-5.5837078683713314e-5,8.472545698884107e-8,0.0033724633940253805,-5.603614789623234e-5,8.505597653427594e-8,0.003372713546608454,-5.620417709122976e-5,8.533294234846123e-8,0.0033729982668022603,-5.632452546423462e-5,8.552844070193068e-8,0.00337329829570848,-5.6387235045065904e-5,8.562597120345452e-8,0.003373591662554191,-5.639037939243083e-5,8.56228158420924e-8,0.0033738558827816345,-5.634128823507716e-5,8.553209949381927e-8,0.0033740709065428706,-5.625757728164715e-5,8.538435984518772e-8,0.0033742233614416587,-5.6167318041165296e-5,8.522753464272809e-8,0.0033743120850930324,-5.6106839883563096e-5,8.512295286558207e-8,0.0033743535182657845,-5.6114284681771475e-5,8.51343302306435e-8,0.003374383584560917,-5.621816091412462e-5,8.530860378052354e-8,0.003374451653711905,-5.642363033026548e-5,8.565316246357324e-8,0.003374604874548048,-5.670392651341919e-5,8.612176775673318e-8,0.003374868363272367,-5.700515151316815e-5,8.662290807184912e-8,0.0033752327666612806,-5.726543902108981e-5,8.705223569982031e-8,0.003375657734454065,-5.743861941957818e-5,8.733251492462779e-8,0.00337608883276525,-5.7508964679654286e-5,8.743842547911098e-8,0.0033764770314720334,-5.749109053497066e-5,8.739613430904317e-8,0.003376791288154108,-5.741928432963936e-5,8.726484516431357e-8,0.003377021873463669,-5.733428391425587e-5,8.711405749206888e-8,0.003377177244553692,-5.727289468373037e-5,8.700584615729924e-8,0.0033772782065038614,-5.7261975296652276e-5,8.698482352101486e-8,0.003377351897211726,-5.731608876134401e-5,8.707450164078988e-8,0.0033774266600864046,-5.743750053577925e-5,8.727765185706965e-8,0.0033775279397840904,-5.761758344607225e-5,8.757892428997106e-8,0.0033776751676794963,-5.783921764291742e-5,8.794897670651642e-8,0.0033778797227997696,-5.807988352583364e-5,8.834963725304223e-8,0.0033781440270615184,-5.831509017006301e-5,8.873957895692964e-8,0.0033784617768650477,-5.8521803894550365e-5,8.908001953560924e-8,0.003378819238634322,-5.868149381761238e-5,8.933984781642511e-8,0.003379197323670683,-5.8782439093002966e-5,8.949957584080041e-8,0.003379574066231394,-5.882122050843463e-5,8.955393397490966e-8,0.003379927308581292,-5.880351542948081e-5,8.951323372093641e-8,0.0033802375736910525,-5.8744255904977356e-5,8.940353066295135e-8,0.003380491220639322,-5.86670851430349e-5,8.92654614473728e-8,0.003380684061250688,-5.8602724717853605e-5,8.915117457299559e-8,0.003380825238790617,-5.8585283278155506e-5,8.911787039413452e-8,0.0033809400725077258,-5.8645366370736766e-5,8.921617853680288e-8,0.0033810692089788217,-5.8799874204040243e-5,8.947323513780382e-8,0.003381260821250198,-5.904106722336901e-5,8.987469296042821e-8,0.0033815547925915685,-5.933123263112307e-5,9.0356110182332e-8,0.003381964109575867,-5.961028832185029e-5,9.081592148861166e-8,0.0033824647851254143,-5.981713959083937e-5,9.1151422106769e-8,0.003383003169851391,-5.9914358833980524e-5,9.130033548932249e-8,0.0033835175357943767,-5.9901254032734106e-5,9.126278647579509e-8,0.0033839605590798446,-5.980890433849116e-5,9.10926902260356e-8,0.00338431099616989,-5.968366488858203e-5,9.086948355865654e-8,0.0033845727837585357,-5.9570442762593056e-5,9.066948346775116e-8,0.0033847670858004075,-5.950243521857609e-5,9.05484296124944e-8,0.0033849232362922243,-5.9497727807565615e-5,9.053594275132374e-8,0.0033850716583332255,-5.956024397003957e-5,9.063751388399143e-8,0.0033852393421935963,-5.9682490187505253e-5,9.083949487511646e-8,0.0033854472176725985,-5.984859127500225e-5,9.111441080009529e-8,0.0033857086133339863,-6.003720459463659e-5,9.142588647628522e-8,0.0033860284271986017,-6.022439650227471e-5,9.173340583043047e-8,0.003386402955846923,-6.038656005091193e-5,9.199713865518988e-8,0.003386820462731965,-6.0503374088305864e-5,9.218289744117541e-8,0.003387262658810295,-6.05606230682693e-5,9.226693315388558e-8,0.0033877071395750856,-6.0552452997181255e-5,9.223981379163578e-8,0.0033881305330445235,-6.048266726105932e-5,9.210864890465263e-8,0.0033885120041810286,-6.036487174837796e-5,9.189727295160823e-8,0.003388836782278121,-6.022136221100909e-5,9.164417689053099e-8,0.003389099364723984,-6.008071140194549e-5,9.139814912203612e-8,0.003389306087909998,-5.9974056769629564e-5,9.121173103792565e-8,0.0033894766507592314,-5.992991778520634e-5,9.113234376727132e-8,0.0033896436217253243,-5.9967392439029444e-5,9.119094033650632e-8,0.003389848331184142,-6.00884494472235e-5,9.138938243016609e-8,0.003390131696696725,-6.027176738671097e-5,9.169052134537972e-8,0.003390520408645742,-6.0472489173007385e-5,9.20181223124543e-8,0.003391013048776062,-6.0632291852483944e-5,9.227391611926006e-8,0.003391574685345615,-6.069936708195099e-5,9.237117323434914e-8,0.0033921465752053356,-6.0649508463182645e-5,9.227013011226155e-8,0.003392668019375996,-6.049561955058757e-5,9.199390213601754e-8,0.003393098109249708,-6.027985582758634e-5,9.161498325294656e-8,0.003393425788317697,-6.005472021645174e-5,9.12229510324662e-8,0.00339366621882231,-5.986502345047448e-5,9.089367784604274e-8,0.003393849764889761,-5.973824800765525e-5,9.067301795341194e-8,0.0033940108887349028,-5.9683418753718195e-5,9.057517474706375e-8,0.0033941806177451347,-5.969475502631139e-5,9.058927390461232e-8,0.0033943828082887316,-5.9756555264083074e-5,9.068792616803152e-8,0.0033946329021984417,-5.984744069403636e-5,9.083450585144963e-8,0.003394937808251754,-5.994358255246006e-5,9.098854172687638e-8,0.003395296161910116,-6.002127117598997e-5,9.110993548500498e-8,0.003395698804414143,-6.0059267214638514e-5,9.116285658288206e-8,0.0033961296425301405,-6.004122350292775e-5,9.111984405853812e-8,0.0033965672449549665,-5.995817702591761e-5,9.096608893871411e-8,0.0033969875056327195,-5.9810681332088226e-5,9.070310529653611e-8,0.0033973673472186662,-5.960989551896998e-5,9.035055940505286e-8,0.0033976890073721226,-5.937702862808381e-5,8.994519524467432e-8,0.00339794414966279,-5.914078600227383e-5,8.953626954603158e-8,0.00339813686265762,-5.893285864413488e-5,8.91776383701858e-8,0.0033982846760873316,-5.8782022201718587e-5,8.891757350029357e-8,0.0033984170426695744,-5.8707756459061303e-5,8.878796990728907e-8,0.0033985710041651773,-5.8714419523522015e-5,8.879474808736464e-8,0.003398783964213327,-5.8787308590801815e-5,8.891163690828701e-8,0.003399084097724401,-5.889244323337396e-5,8.908026373626042e-8,0.003399480270250761,-5.898203293481756e-5,8.921967011645284e-8,0.0033999551699554283,-5.900646431000797e-5,8.924656326463904e-8,0.003400466358786225,-5.893049216975236e-5,8.91024588459512e-8,0.003400957801068039,-5.8747104648884236e-5,8.877683281588798e-8,0.003401378527359106,-5.848118000125292e-5,8.831304298309702e-8,0.0034016995373273343,-5.817987411373497e-5,8.779181892187154e-8,0.0034019205448226966,-5.789489120259509e-5,8.730103063936285e-8,0.0034020649231812825,-5.7666180030203005e-5,8.690798801868969e-8,0.003402168049287801,-5.751375176227864e-5,8.664571506488682e-8,0.003402265858276145,-5.743804869788241e-5,8.651389470980682e-8,0.00340238747932283,-5.742519852330234e-5,8.64881096032888e-8,0.0034025522455255973,-5.7453234933997976e-5,8.653057385184077e-8,0.0034027695489980392,-5.7497130460310654e-5,8.659865614011625e-8,0.003403039886903058,-5.753221388492227e-5,8.665054230622828e-8,0.0034033560870460524,-5.753644074444263e-5,8.664895352331391e-8,0.0034037044047870047,-5.7492186034072585e-5,8.656414307834132e-8,0.003404065680014834,-5.738807359108861e-5,8.637705347880114e-8,0.0034044170305128105,-5.722099116240365e-5,8.60828262613509e-8,0.003404734597935735,-5.6997926909140374e-5,8.569395943787588e-8,0.003404997558905359,-5.6736793275923886e-5,8.524163215191012e-8,0.0034051929890715296,-5.646520876211743e-5,8.477344074418974e-8,0.003405320408160798,-5.621648018227168e-5,8.434631513995815e-8,0.003405394300451476,-5.6022900264124296e-5,8.40149123124777e-8,0.0034054430646795236,-5.590772696450894e-5,8.381791884209707e-8,0.0034055038606741876,-5.587815564824331e-5,8.376626228374444e-8,0.0034056142384550816,-5.59216390476811e-5,8.383721738396868e-8,0.003405802567121793,-5.600706841995555e-5,8.397686437719106e-8,0.003406079762115114,-5.609104831024885e-5,8.411111539414267e-8,0.0034064347003346877,-5.6128202268790945e-5,8.416335082003054e-8,0.0034068351738956544,-5.6083285215666045e-5,8.407483916197228e-8,0.003407235151776666,-5.594181500695267e-5,8.382243623901492e-8,0.0034075871596243503,-5.5715353849958e-5,8.342714398589868e-8,0.0034078560389337632,-5.543856994368361e-5,8.294878555047174e-8,0.0034080288015259303,-5.5158405656903775e-5,8.246741739171249e-8,0.003408116556022004,-5.491960304745137e-5,8.20587213493105e-8,0.0034081483496585887,-5.475262430635319e-5,8.17736335484883e-8,0.0034081606287834965,-5.466819510979342e-5,8.162935251217643e-8,0.003408187213574958,-5.465879991060622e-5,8.161218884734959e-8,0.0034082529479952245,-5.470438823302094e-5,8.168747464274309e-8,0.0034083714747449156,-5.477893708194855e-5,8.181075694408507e-8,0.0034085458513296286,-5.4855751000708015e-5,8.193669718795236e-8,0.003408770414545297,-5.4910925975911326e-5,8.202480039048432e-8,0.003409032781106392,-5.4925363401297566e-5,8.204274072682829e-8,0.0034093155318804143,-5.488606600123461e-5,8.196858076576507e-8,0.0034095977133735593,-5.478735913882586e-5,8.179294852554372e-8,0.0034098566636729913,-5.463228818846857e-5,8.1521508229844755E-08,0.003410070752139286,-5.443391476149148e-5,8.117715796819658e-8,0.0034102233957102024,-5.4215684339399623e-5,8.0800505879973e-8,0.003410308068531649,-5.400958289018258e-5,8.044648266424068e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json new file mode 100644 index 00000000..5a65685c --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":22000,"numberOfSamples":1000,"samples":[0.003410332914201753,-5.3850894022675106e-5,8.017517098961131e-8,0.003410322528879365,-5.376958194615e-5,8.003701237438996e-8,0.0034103145652221627,-5.3780481135696216e-5,8.005617875605212e-8,0.0034103506775372276,-5.3876274061593275e-5,8.021888857849169e-8,0.003410464307410866,-5.402707135418975e-5,8.047308167596654e-8,0.003410669971601388,-5.4187778507499705e-5,8.074133887896081e-8,0.003410958362427396,-5.431078402439631e-5,8.094271511350002e-8,0.0034112988966924413,-5.435925986441926e-5,8.101538020005893e-8,0.0034116483046836123,-5.431671386401488e-5,8.093263501288651e-8,0.0034119621492173344,-5.41904204198061e-5,8.070834304160092e-8,0.0034122059256284677,-5.400841636122217e-5,8.039138838903804e-8,0.0034123629141804617,-5.38113276447821e-5,8.005145827068325e-8,0.003412436926427523,-5.3641509849942013e-5,7.976047048128742e-8,0.0034124495366027988,-5.3532666321671336e-5,7.957504010808949e-8,0.0034124330661485227,-5.350283981451321e-5,7.952484351765614e-8,0.0034124218722404974,-5.3552370565715433e-5,7.960947036368768e-8,0.0034124447457084236,-5.3666539079328896e-5,7.980316491937519e-8,0.0034125202858526367,-5.382106091332426e-5,8.00642647210325e-8,0.0034126555868305777,-5.398815305369993e-5,8.034545908014444e-8,0.0034128473776592204,-5.414152490629849e-5,8.06021342297411e-8,0.0034130843642180496,-5.425966542015235e-5,8.079783644736344e-8,0.0034133497512128354,-5.4327618445658844e-5,8.090725685897239e-8,0.003413623435855102,-5.4337869912637006e-5,8.091781018622006e-8,0.003413883907454681,-5.429097539492461e-5,8.083081580105819e-8,0.0034141102665403125,-5.419622361028624e-5,8.066268207707981e-8,0.0034142849136512055,-5.407215162017978e-5,8.044570051432896e-8,0.00341439730488426,-5.394617096384391e-5,8.022718223765307e-8,0.003414448551881033,-5.385201336379878e-5,8.006482802604857e-8,0.0034144554442633347,-5.382365677022172e-5,8.001619006311863e-8,0.003414451133210198,-5.388562472720168e-5,8.012215438343905e-8,0.0034144795115925615,-5.4042269894100845e-5,8.038890648236031e-8,0.003414582717752921,-5.427144088560471e-5,8.077748959286917e-8,0.0034147858366957128,-5.452785635760065e-5,8.120990068433355e-8,0.003415086335408109,-5.475685197042185e-5,8.159276299340531e-8,0.0034154541675420077,-5.491264135361651e-5,8.184854560101504e-8,0.003415842328369328,-5.497241133679643e-5,8.19395012048398e-8,0.0034162020648540446,-5.494079694397467e-5,8.187500799224558e-8,0.0034164960597480513,-5.484509224563486e-5,8.170297816008171e-8,0.003416705855690934,-5.472520370648011e-5,8.14923147861858e-8,0.0034168331491478627,-5.462263220717812e-5,8.131389578844407e-8,0.003416896425673255,-5.457135459703978e-5,8.122506662590603e-8,0.003416924864737033,-5.459196701501527e-5,8.125992201462119e-8,0.0034169512624180483,-5.468942093895768e-5,8.142580537893595e-8,0.0034170054267853647,-5.485407812356393e-5,8.17054100824689e-8,0.0034171092005408077,-5.506533196508355e-5,8.206310391954363e-8,0.0034172737893538854,-5.529662285957986e-5,8.24534661992994e-8,0.0034174994368857004,-5.552057481406241e-5,8.282992315001632e-8,0.0034177769459542693,-5.5713266654435735e-5,8.315188937008223e-8,0.0034180902481047706,-5.58571185539423e-5,8.338960767448971e-8,0.0034184192209990544,-5.594239734507513e-5,8.352672714006698e-8,0.0034187422744122974,-5.5967759795049916e-5,8.356130894842189e-8,0.0034190386613258106,-5.5940313585960716e-5,8.350600300356605e-8,0.0034192907451060053,-5.5875438829459745e-5,8.338772029482915e-8,0.0034194865853197334,-5.5796286755981725e-5,8.324661178228372e-8,0.0034196231618546383,-5.573239332743332e-5,8.313343416160889e-8,0.0034197100026956712,-5.571629566234729e-5,8.310353167794132e-8,0.0034197718373557965,-5.5777017730924494e-5,8.320565011677361e-8,0.0034198476546487924,-5.593045265235306e-5,8.346570742357244e-8,0.0034199832418701356,-5.6169307155583144e-5,8.387000547866622e-8,0.0034202166393619616,-5.64584557493018e-5,8.435767926960611e-8,0.0034205614639800535,-5.67418663020452e-5,8.483274082655738e-8,0.003420997727034218,-5.696140593963007e-5,8.51962311929662e-8,0.0034214773558268368,-5.707879301142648e-5,8.538365211417604e-8,0.0034219421419332224,-5.708851047552745e-5,8.538688805157197e-8,0.0034223438059788605,-5.701585691614104e-5,8.525060072019697e-8,0.0034226564954146083,-5.690413699843295e-5,8.504993386503595e-8,0.003422878920363075,-5.679944106094893e-5,8.486413227000239e-8,0.0034230291674335464,-5.6739176541925223e-5,8.475681081074442e-8,0.003423136660697731,-5.6746178962097036e-5,8.476606168603778e-8,0.0034232343831674863,-5.682746769406769e-5,8.490269488349289e-8,0.0034233527024106186,-5.697594757338996e-5,8.515352124084064e-8,0.003423515048462373,-5.717372366496969e-5,8.548725451920484e-8,0.003423735360724929,-5.739623453008071e-5,8.586162778920173e-8,0.0034240171921175824,-5.761661689063496e-5,8.623076555625632e-8,0.003424354282394761,-5.7809781532945634e-5,8.655200921001188e-8,0.003424732337212298,-5.795580012171021e-5,8.679159414405439e-8,0.0034251316600929604,-5.804228112995662e-5,8.692867283680107e-8,0.0034255301389273553,-5.8065571370678764e-5,8.695739993818016e-8,0.0034259061435299876,-5.8030942708281336e-5,8.68873016976559e-8,0.003426241192945239,-5.7952061490074354e-5,8.674237096252997e-8,0.003426522442310002,-5.784987818084441e-5,8.655906513984539e-8,0.0034267450710929025,-5.775090698206635e-5,8.638314938058331e-8,0.0034269146613510586,-5.768461436478088e-5,8.626498016672915e-8,0.0034270492888037753,-5.7679206341423455e-5,8.625215296635437e-8,0.0034271801115048016,-5.775513150463932e-5,8.637847340111039e-8,0.003427348318837799,-5.791673040416302e-5,8.66500111928406e-8,0.003427596290732135,-5.814466196255829e-5,8.703260278195282e-8,0.0034279529627239238,-5.8394327194921334e-5,8.744949479355945e-8,0.003428418470586544,-5.860576263431353e-5,8.77983298726461e-8,0.00342895785967562,-5.872474275422114e-5,8.79870966366347e-8,0.0034295111225311516,-5.872520138069127e-5,8.797231646130829e-8,0.0034300159367414112,-5.8619276575255356e-5,8.777608739665868e-8,0.003430429936364875,-5.8449346719175054e-5,8.747221956219683e-8,0.0034307409539403753,-5.8269005362368705e-5,8.715330218992734e-8,0.0034309636874953423,-5.812488879415304e-5,8.689927969838687e-8,0.0034311290547955646,-5.804651663753494e-5,8.676002574361577e-8,0.0034312730856115364,-5.804431513186724e-5,8.675224016919222e-8,0.003431428842749821,-5.811258599710215e-5,8.686495556850346e-8,0.003431621833748501,-5.823424073945281e-5,8.706799112634763e-8,0.0034318679871170456,-5.838549788451625e-5,8.732014432177786e-8,0.0034321731793053077,-5.854001187955921e-5,8.757621999925782e-8,0.0034325337535511193,-5.8672442465983527E-05,8.779300375802679e-8,0.0034329377969641297,-5.876149483775846e-5,8.79343338304245e-8,0.0034333670820067457,-5.8792422402358875e-5,8.7975316488367e-8,0.0034337996533433854,-5.875886549720411e-5,8.790547650809066e-8,0.0034342129023982814,-5.8663743295375374e-5,8.773032040338553e-8,0.0034345867528595554,-5.8519040728693963E-05,8.747098149349937e-8,0.00343490662495616,-5.834457618854895e-5,8.716204139286165e-8,0.003435165997133961,-5.816584043444344e-5,8.684766473704805e-8,0.003435368377604481,-5.8010940498476064e-5,8.657614158669101e-8,0.003435528469312809,-5.79066894188021e-5,8.639300030976978e-8,0.0034356721817477088,-5.787374966119817e-5,8.633265875065238e-8,0.0034358346431882215,-5.7920805816179714e-5,8.640865043476558e-8,0.00343605489737805,-5.8038637339463834e-5,8.660388209222903e-8,0.0034363663675272185,-5.8196543664505935e-5,8.686495377469283e-8,0.003436784132872785,-5.834498191690136e-5,8.710692888866458e-8,0.003437293776835478,-5.8427735873480615e-5,8.72341254787051e-8,0.0034378497110881335,-5.8402092841660325e-5,8.717442687949159e-8,0.0034383882973978448,-5.8257765502926945e-5,8.691145603639477e-8,0.003438851408713721,-5.802240303565348e-5,8.649384664598423e-8,0.0034392073380863355,-5.774932951993929e-5,8.601401185593557e-8,0.0034394577744100104,-5.749559608304214e-5,8.557022184800596e-8,0.003439630233895451,-5.7303386349150334e-5,8.523451882013677e-8,0.0034397639148655676,-5.71921018810065e-5,8.503923334835471e-8,0.003439897152082377,-5.716002300749245e-5,8.498019404726612e-8,0.0034400599773055985,-5.719061355114749e-5,8.502796230293353e-8,0.0034402713672934656,-5.725932344600479e-5,8.513976877355545e-8,0.0034405393098027363,-5.7338962376120295e-5,8.52687687250456e-8,0.0034408620305790096,-5.7403458295962594e-5,8.5370360365332e-8,0.0034412295639111826,-5.74305399376233e-5,8.540661686558558e-8,0.0034416255077720182,-5.7403819017073256e-5,8.534975049941572e-8,0.0034420290593737894,-5.7314494475115625e-5,8.518502074925517e-8,0.0034424175204084556,-5.7162649725107814e-5,8.491300299198063e-8,0.0034427693744096327,-5.695780291358059e-5,8.45505703435799e-8,0.003443067694390436,-5.671827027498391e-5,8.412977141244271e-8,0.0034433033585062117,-5.6469137408961e-5,8.369422260683416e-8,0.003443477522363603,-5.6238888006486065e-5,8.329312068593308e-8,0.0034436028265143223,-5.6054927768332085e-5,8.297335687745774e-8,0.0034437028776761053,-5.593849466785818e-5,8.277067663956046e-8,0.0034438096971042514,-5.589961405993521e-5,8.270110737924363e-8,0.0034439589152577502,-5.593284157050621e-5,8.275395289466784e-8,0.0034441825909026142,-5.601493075148707e-5,8.288821797121621e-8,0.0034445001635288017,-5.610621465702858e-5,8.303535737202917e-8,0.0034449095226591654,-5.615762951966539e-5,8.311147869532069e-8,0.0034453821233687756,-5.612393855092263e-5,8.303989847633601e-8,0.003445866927768903,-5.598013860657117e-5,8.277898571579688e-8,0.003446305117155568,-5.573359851034611e-5,8.234268399454156e-8,0.003446650688170405,-5.54237541297035e-5,8.179975395214818e-8,0.003446886420895123,-5.5107576665760024e-5,8.124862318937609e-8,0.0034470267259821934,-5.483846667724602e-5,8.078097385183255e-8,0.00344710766051307,-5.464993566767857e-5,8.04536936374894e-8,0.003447171789706657,-5.455038535028025e-5,8.028012646114274e-8,0.0034472558389312216,-5.452741901483898e-5,8.02378602589795e-8,0.003447384454009153,-5.455622510521429e-5,8.028347230580017e-8,0.003447569166450617,-5.460748845901849e-5,8.036626359875367e-8,0.003447810144196527,-5.465292154467429e-5,8.043768722291936e-8,0.0034480987268725206,-5.466849659176279e-5,8.045671557812648e-8,0.003448419783191651,-5.46362499989435e-5,8.039277888315682e-8,0.003448753772593059,-5.45454637568273e-5,8.022774113086465e-8,0.0034490787902391605,-5.439364106836301e-5,7.995762374625734e-8,0.003449372967644381,-5.41872734508112e-5,7.959400330433788e-8,0.0034496174799257423,-5.394199608711304e-5,7.916430464845655e-8,0.003449800033082265,-5.368150494101013e-5,7.870985989025718e-8,0.0034499182123150364,-5.343472982432336e-5,7.828086678372597e-8,0.003449981722370573,-5.323117506956941e-5,7.792815673433031e-8,0.0034500124919465153,-5.30949612652312e-5,7.769278778854012e-8,0.0034500419488425822,-5.303878495366926e-5,7.759565134357626e-8,0.003450105483013042,-5.305939695552917e-5,7.762989261880157e-8,0.0034502349108771345,-5.3136052000312036E-05,7.775860628781301e-8,0.00345045036327994,-5.3232896856317525e-5,7.791934553656435e-8,0.0034507534559009615,-5.330563477313901e-5,7.803586216602371e-8,0.0034511239123253042,-5.331189940292976e-5,7.80359816725961e-8,0.0034515217741313154,-5.3223411868618484e-5,7.787229296285301e-8,0.0034518963778732035,-5.303630985682997e-5,7.753954870439826e-8,0.003452200772443476,-5.277494601652743e-5,7.708083438603485e-8,0.0034524067233620208,-5.24857622131667e-5,7.657676351766069e-8,0.003452513539318852,-5.222238745671445e-5,7.611970105647155e-8,0.003452546358006263,-5.202834487641089e-5,7.578401494859984e-8,0.003452545316805372,-5.1925238857953614e-5,7.56059228122419e-8,0.0034525517079226162,-5.1910531969244896e-5,7.55799748568084e-8,0.0034525973425899702,-5.1963341595560646e-5,7.566935879164173e-8,0.003452699860306806,-5.2053492925631584e-5,7.582168477769657e-8,0.003452863075258511,-5.2149607426261665e-5,7.598291155508565e-8,0.0034530799060755258,-5.222439818684115e-5,7.61063070119408e-8,0.003453335818338361,-5.2257343532068194e-5,7.615685892232103e-8,0.003453611766785339,-5.223571891965294e-5,7.61129377116946e-8,0.0034538864899658996,-5.215494408708145e-5,7.596690383151867e-8,0.003454138506384482,-5.201882998128307e-5,7.572562427973521e-8,0.003454348337076918,-5.183978826068164e-5,7.541091271463072e-8,0.0034545013314538756,-5.1638552963418784e-5,7.505903324803353e-8,0.003454591043269122,-5.144265642680074e-5,7.47179322561575e-8,0.0034546224963198295,-5.128290588661151e-5,7.444094709790633e-8,0.003454614029832736,-5.118756231866206e-5,7.427657654620211e-8,0.0034545960964780477,-5.117499667449252e-5,7.425575471974446e-8,0.0034546059759224725,-5.124696696840789e-5,7.438038383349255e-8,0.003454678971542103,-5.13853618139435e-5,7.46180167622108e-8,0.003454838496800186,-5.155451806553497e-5,7.490622976898416e-8,0.003455088410098183,-5.170923490366474e-5,7.516676020545438e-8,0.0034554104312331923,-5.18063784397559e-5,7.53256558047392e-8,0.0034557677626890567,-5.181660232781692e-5,7.533338722547459e-8,0.003456114043853787,-5.173270086815992e-5,7.517894604581043e-8,0.0034564052677747885,-5.157212308820495e-5,7.48937718027089e-8,0.003456611436614271,-5.1372648185342906e-5,7.454392055414663e-8,0.0034567244663298784,-5.118206849108857e-5,7.421205085109125e-8,0.0034567595924578005,-5.104487112438851e-5,7.397444303572169e-8,0.0034567496932292933,-5.0990411029647274e-5,7.388079046187029e-8,0.0034567348219838017,-5.1026634462844345E-05,7.394368941315555e-8,0.0034567511208470503,-5.1140910162072285e-5,7.41404001886787e-8,0.003456822969488365,-5.130640701071599e-5,7.442407063670418e-8,0.0034569600809666373,-5.149059048477161e-5,7.473844540174441e-8,0.003457158836079232,-5.166263101478568e-5,7.503054191154755e-8,0.0034574058624226842,-5.179814342816616e-5,7.525864485773623e-8,0.0034576819982162126,-5.188131487414444e-5,7.53958236160267e-8,0.003457965624434055,-5.190529764163641e-5,7.543055726802653e-8,0.003458235153642075,-5.187182989119657e-5,7.536613158997809e-8,0.003458470988800748,-5.179074706531707e-5,7.52198852644471e-8,0.0034586575036994354,-5.1679536585510255e-5,7.502247538759579e-8,0.0034587855033521653,-5.156254212189298e-5,7.481641900418598e-8,0.0034588552057932243,-5.1469030724573484e-5,7.465256143383775e-8,0.0034588791061978532,-5.142920657003421e-5,7.458297859873786e-8,0.003458883218149259,-5.1467660711166246e-5,7.464955268013278e-8,0.0034589045776179444,-5.159510836468649e-5,7.48697763858947e-8,0.0034589835250980615,-5.180135000044591e-5,7.522485150187091e-8,0.0034591517840109193,-5.205370320062124e-5,7.56573232920082e-8,0.0034594206555359705,-5.2303828254811026e-5,7.608317761780516e-8,0.0034597750906966754,-5.250174966429808e-5,7.641623908985145e-8,0.0034601771049745287,-5.2611539439694236e-5,7.659526793472266e-8,0.003460577222136936,-5.262200185778321e-5,7.660223703442587e-8,0.003460928903507887,-5.254861496345348e-5,7.646534203758294e-8,0.003461200559315436,-5.2427345790902366e-5,7.624789704143432e-8,0.0034613819623500147,-5.230371513415596e-5,7.602909490634815e-8,0.00346148446467581,-5.2220931733726785e-5,7.58833715008536e-8,0.003461536103359664,-5.2210117968981436e-5,7.586364467457609e-8,0.003461573517811942,-5.2284544913011865e-5,7.599167543503633e-8,0.0034616329485504336,-5.243864613206289e-5,7.625673698865155e-8,0.003461742549106104,-5.265142211148723e-5,7.662177846795173e-8,0.003461917703165235,-5.2892782274308036e-5,7.703449448843473e-8,0.0034621599737674246,-5.313072477304534e-5,7.74396760194996e-8,0.0034624591084389793,-5.33374098966768e-5,7.778955053911857e-8,0.003462796779292467,-5.349304510582412e-5,7.805033191515012e-8,0.003463150686187144,-5.3587487694671127e-5,7.820488911072816e-8,0.0034634980867577683,-5.362014291759816e-5,7.825256020973388e-8,0.0034638184347490337,-5.35989854743125e-5,7.820751398896041e-8,0.0034640953366142095,-5.353936163065365e-5,7.809672470592285e-8,0.0034643182806015373,-5.3462782486652334e-5,7.795785220255605e-8,0.0034644845501561154,-5.339545627403919e-5,7.783656035226323e-8,0.0034646014413177184,-5.336592005983549e-5,7.778221516267927e-8,0.0034646882637985664,-5.3400881599815127e-5,7.78405393635882e-8,0.003464776653159077,-5.351867683920702e-5,7.804231285445772e-8,0.003464906957150965,-5.372111733504216e-5,7.838949782169935e-8,0.0034651189235659127,-5.398689725856593e-5,7.884418711991946e-8,0.0034654377510551313,-5.427171287388532e-5,7.932912268318844e-8,0.003465861181889111,-5.45189747063227e-5,7.974637922620187e-8,0.0034663557995089868,-5.4679006723517416e-5,8.001057810235294e-8,0.003466866832075317,-5.4727667638690595e-5,8.008101605182355e-8,0.003467337213583027,-5.467430917764118e-5,7.997525515932372e-8,0.0034677259185634294,-5.45558137956383e-5,7.975848386026634e-8,0.0034680175758430914,-5.4421850197762574e-5,7.951758779610465e-8,0.003468221945391668,-5.431943863471243e-5,7.93341221303494e-8,0.003468366749984431,-5.4282189894998705e-5,7.926564782173139e-8,0.003468488253575451,-5.432554626942201e-5,7.933775100923389e-8,0.003468622577673265,-5.4446940976185534e-5,7.954473091422483e-8,0.00346879910386759,-5.4629139136083834e-5,7.985575566520995e-8,0.003469036315266957,-5.484531500646757e-5,8.022385234336574e-8,0.0034693400970225562,-5.506482644748267e-5,8.05959068464886e-8,0.003469704347103154,-5.525874833196587e-5,8.09221138287859e-8,0.003470113426848338,-5.54043045866477e-5,8.116348069551332e-8,0.003470545719066106,-5.548767615842907e-5,8.129655797854296e-8,0.0034709775149081618,-5.550506450046016e-5,8.131522490515083e-8,0.0034713865350294564,-5.546223505877917e-5,8.122990831469518e-8,0.00347175466700389,-5.537307165347207e-5,8.10651077332558e-8,0.003472069935483391,-5.5257707024367603e-5,8.085614780070984e-8,0.0034723279767847086,-5.514048489525153e-5,8.064555763367976e-8,0.0034725332728849033,-5.504767565387728e-5,8.047894670947377e-8,0.0034727002510506733,-5.5004592720721175e-5,8.039983781883514e-8,0.003472853897452726,-5.5031486682279284e-5,8.044249502323219e-8,0.0034730286883273595,-5.513778809238864e-5,8.062209526950794e-8,0.003473263973229728,-5.531544130156531e-5,8.092351809161323e-8,0.0034735943076693245,-5.553413717659481e-5,8.129347436960563e-8,0.003474035665897499,-5.574326882078972e-5,8.16441259001113e-8,0.0034745731955609315,-5.5884742086398796e-5,8.18752580591423e-8,0.0034751596486798657,-5.5914583892773785e-5,8.19115493205368e-8,0.003475729749079442,-5.5822556153648676e-5,8.173640984494093e-8,0.0034762246796353497,-5.563705319293436e-5,8.140033666182622e-8,0.003476612701492186,-5.541203574155975e-5,8.099801039245487e-8,0.003476895422108325,-5.52051656998577e-5,8.063001150121857e-8,0.0034771002354880218,-5.50597528893753e-5,8.037124816213464e-8,0.003477266808137206,-5.499678333889154e-5,8.025718895626209e-8,0.003477434878777277,-5.501575513956466e-5,8.028567476587208e-8,0.0034776364077081026,-5.510010155564282e-5,8.042677847876208e-8,0.0034778919129647623,-5.522370891534653e-5,8.063443431098723e-8,0.003478209655577147,-5.53567664624354e-5,8.085668027157581e-8,0.003478586484780268,-5.547053781197861e-5,8.104383769654996e-8,0.003479009745324267,-5.5541137233202974e-5,8.115488223399064e-8,0.0034794599661624203,-5.55522999409954e-5,8.116209039532e-8,0.00347991406310937,-5.5497055559913984e-5,8.105385714697197e-8,0.00348034877409459,-5.5378226962704636e-5,8.083554656447708e-8,0.003480743967899695,-5.5207701396177e-5,8.052824678244802e-8,0.003481085399356866,-5.500462615502403e-5,8.016563989201027e-8,0.003481366669257658,-5.4792906661938594e-5,7.978960191727658e-8,0.0034815903954937507,-5.459831114198394e-5,7.944505128213398e-8,0.003481768645435652,-5.444530524158718e-5,7.917429462220676e-8,0.003481922641158277,-5.435363020679066e-5,7.901097650404148e-8,0.003482081557943241,-5.43344611388244e-5,7.897344901624152e-8,0.0034822796949849086,-5.438607219406785e-5,7.90574880741661e-8,0.0034825508886991334,-5.4489814677525574e-5,7.922969966297901e-8,0.003482919510198329,-5.460863179618924e-5,7.942530879637457e-8,0.00348338922468968,-5.4691530175031036e-5,7.955606784582527e-8,0.0034839341482262006,-5.468684887826709e-5,7.953314250976801e-8,0.003484500044929782,-5.456236411226566e-5,7.930171563250027e-8,0.003485020395764967,-5.432242661163013e-5,7.887051211495277e-8,0.003485441830665722,-5.4009666442778456e-5,7.831463037203127e-8,0.003485744308334187,-5.3687830051453043e-5,7.774555423085291e-8,0.003485944356059249,-5.341619454208322e-5,7.726643890430705e-8,0.0034860824605426953,-5.323068031905013e-5,7.69391413336341e-8,0.003486205192699337,-5.313887848336849e-5,7.677573716104043e-8,0.003486351616487765,-5.312585818689202e-5,7.674902644824243e-8,0.003486546989851855,-5.3163832246076e-5,7.680975614919294e-8,0.003486802071512451,-5.322081037736187e-5,7.690188262653895e-8,0.003487115234474545,-5.326655085161755e-5,7.697289095930539e-8,0.003487475361305784,-5.3276107450321254e-5,7.697977967690026e-8,0.00348786468748232,-5.323188756023941e-5,7.689243976502786e-8,0.003488261541112851,-5.3124867656400085e-5,7.669564695902987e-8,0.0034886431118577687,-5.2955187271283527e-5,7.639006967152842e-8,0.0034889883345022694,-5.273207584356439e-5,7.599217164183895e-8,0.00348928082718179,-5.247287143335613e-5,7.553253065060545e-8,0.0034895115406157772,-5.220092938007728e-5,7.505217138911657e-8,0.0034896806403166163,-5.194253721386278e-5,7.45970984578306e-8,0.003489798281891112,-5.17231700616895e-5,7.421163449310192e-8,0.003489884081885023,-5.156346255637453e-5,7.393127924950925e-8,0.0034899651917605482,-5.1475349070217194e-5,7.37759579390884e-8,0.0034900730046242873,-5.145880727187514e-5,7.374448490150087e-8,0.0034902384487222934,-5.149957504391051e-5,7.38108940008001e-8,0.003490485713360978,-5.1568581097192085e-5,7.392383226896056e-8,0.0034908247516596694,-5.162452953725788e-5,7.401135645851316e-8,0.0034912442178913756,-5.162129070334261e-5,7.399384833356589e-8,0.0034917082870866084,-5.152067046187914e-5,7.380600775763368e-8,0.003492161919526589,-5.1307906470345714e-5,7.342344472404727e-8,0.0034925468003312904,-5.100251708159784e-5,7.28812436475048e-8,0.0034928230231711763,-5.065567102917774e-5,7.22692085054129e-8,0.00349298480607223,-5.0332008284307815e-5,7.170010948102879e-8,0.003493060486880091,-5.008509810197167e-5,7.126687367301145e-8,0.0034930978108644877,-4.994040408769448e-5,7.10129659368693e-8,0.003493144812116986,-4.989292212429899e-5,7.092852991350264e-8,0.003493236329890927,-4.991616821749949e-5,7.09664233386691e-8,0.003493389382240401,-4.997451260323819e-5,7.106400377600212e-8,0.0034936049670886314,-5.003303046878982e-5,7.116036558566628e-8,0.0034938724850190725,-5.006315699024087e-5,7.120605641471014e-8,0.003494174181710002,-5.004500801825621e-5,7.116689888635155e-8,0.003494488647240114,-4.9967898958017656e-5,7.10247226686362e-8,0.003494793491455296,-4.983017838931351e-5,7.077701977191036e-8,0.0034950676495118685,-4.963883343406836e-5,7.043629688622425e-8,0.0034952936893218015,-4.940884123717768e-5,7.00290073852739e-8,0.0034954602703394025,-4.91619116469257e-5,6.959337044053813e-8,0.003495564525333123,-4.8924164351532744e-5,6.917524860206665e-8,0.0034956137545527114,-4.872255946766232e-5,6.882178267966077e-8,0.003495625715726868,-4.858035828766625e-5,6.857332667336269e-8,0.003495626962793271,-4.8512296531638016e-5,6.845495049254806e-8,0.003495649053141319,-4.852049680516395e-5,6.846936904534974e-8,0.00349572299679345,-4.859225484338337e-5,6.859329915473242e-8,0.0034958728136478237,-4.870052145709375e-5,6.877863372874697e-8,0.003496109274904872,-4.8807474643686194e-5,6.895900381066696e-8,0.0034964250870034323,-4.887130098211752e-5,6.906179269833887e-8,0.0034967931639454048,-4.885581409325789e-5,6.902485348345956e-8,0.0034971698712657363,-4.874139651093061e-5,6.881530246607359e-8,0.0034975044920154213,-4.853405294472491e-5,6.84449092255104e-8,0.0034977539089692195,-4.82679369446728e-5,6.797415829244196e-8,0.0034978977356623906,-4.799750824878962e-5,6.749837862946622e-8,0.003497946438249529,-4.778016802970108e-5,6.71174247409688e-8,0.003497937170337883,-4.765667743097292e-5,6.690162413586374e-8,0.0034979190953097782,-4.763908471093491e-5,6.687094352623798e-8,0.003497936251514583,-4.771117288133363e-5,6.699607854306233e-8,0.0034980160892215074,-4.783863709240464e-5,6.72164958349271e-8,0.0034981665960245093,-4.798196106874302e-5,6.746304065721289e-8,0.0034983797653029723,-4.810632101892896e-5,6.7675162011292e-8,0.003498637465113023,-4.818668505636025e-5,6.780961989824135e-8,0.003498916867361659,-4.820909523255125e-5,6.784251930616007e-8,0.0034991943722301896,-4.816994545602405e-5,6.77679407084832e-8,0.003499448182358842,-4.8074658565751284e-5,6.759564195017042e-8,0.003499660159392372,-4.793641707463699e-5,6.734892080114882e-8,0.003499817561197899,-4.777495464323169e-5,6.70625616249293e-8,0.0034999149556601225,-4.761498368904733e-5,6.678005875369204e-8,0.0034999561644388504,-4.7483672003196496e-5,6.654908362581237e-8,0.003499955598723389,-4.7406752130685654e-5,6.64145242188782e-8,0.003499937981419274,-4.7403373506660164e-5,6.64093764187308e-8,0.0034999354725625304,-4.748062569635709e-5,6.654518620862992e-8,0.0034999818663642855,-4.762947778629249e-5,6.680512211808298e-8,0.003500104737353191,-4.782411608126126e-5,6.714310459443665e-8,0.0035003176166506283,-4.802589279357225e-5,6.749101949715656e-8,0.0035006147541124916,-4.819155958831892e-5,6.777333062458293e-8,0.0035009704717046735,-4.8283900302600454e-5,6.79257035406021e-8,0.0035013438418472647,-4.828195062171539e-5,6.791269545624289e-8,0.0035016879794580935,-4.818789700989003e-5,6.77394776851162e-8,0.00350196195728518,-4.8028314713332036e-5,6.7453611515929e-8,0.0035021422800556846,-4.784851634702435e-5,6.713486096804716e-8,0.0035022301857497284,-4.770064526201016e-5,6.687425034339409e-8,0.0035022515726871335,-4.762872570098612e-5,6.674801281177754e-8,0.003502248809025409,-4.76559744371242e-5,6.6795665439382e-8,0.0035022673478896467,-4.777938593190681e-5,6.701087743219682e-8,0.003502342631637575,-4.7973344665574994e-5,6.734808187955503e-8,0.0035024922414820824,-4.819969702053791e-5,6.774024524213613e-8,0.003502715017307082,-4.841926028605082e-5,6.811897897486228e-8,0.0035029954034810603,-4.8600480484494276e-5,6.842952899629088e-8,0.003503309784163736,-4.872362633221379e-5,6.863790981889476e-8,0.0035036322351094896,-4.878127146575032e-5,6.873159448741184e-8,0.0035039386022962613,-4.877672372667128e-5,6.871671928860393e-8,0.003504208970165578,-4.87218399559206e-5,6.861430714964363e-8,0.003504429141433504,-4.863501729753385e-5,6.845682584882933e-8,0.00350459182981821,-4.853945290340068e-5,6.828516088744188e-8,0.0035046979735865453,-4.846124060565817e-5,6.814520400131455e-8,0.00350475808642424,-4.842667362547513e-5,6.808297903800876e-8,0.00350479302443529,-4.845822639406622e-5,6.813746753851686e-8,0.003504833027239744,-4.8569169986268695e-5,6.833115419174137e-8,0.003504913702238319,-4.8757838383985466e-5,6.866012446657687e-8,0.0035050683853181447,-4.900391199350466e-5,6.908782646579392e-8,0.0035053182256271995,-4.926964452673352e-5,6.954751938057267e-8,0.003505663509814919,-4.950767016413277e-5,6.995616209346973e-8,0.003506080502214955,-4.967398233611283e-5,7.023720489982495e-8,0.0035065262851390663,-4.974153435641874e-5,7.034430756266863e-8,0.003506950416802348,-4.970896615211756e-5,7.027638385694825e-8,0.003507309058355678,-4.960110682063593e-5,7.0078148342398e-8,0.003507576569966767,-4.9461571981689524e-5,6.982680430100155e-8,0.003507751260505524,-4.9340525835212706e-5,6.961036660223815e-8,0.0035078543380118467,-4.928155435713404e-5,6.950463542881697e-8,0.003507923017411245,-4.931120710474176e-5,6.955507505634865e-8,0.003508000088817847,-4.943373386134086e-5,6.976794205386932e-8,0.0035081230318595195,-4.9631997266688886e-5,7.011223942234489e-8,0.003508315707408989,-4.987372010955851e-5,7.053089174394624e-8,0.003508584634184765,-5.012067906449034e-5,7.095689951327328e-8,0.003508920154172877,-5.033779131119303e-5,7.13291488630146e-8,0.0035093011174319503,-5.0499608977751295e-5,7.16036029544808e-8,0.0035097008909079027,-5.059322819724562e-5,7.175822123658268e-8,0.003510092795370233,-5.0618099620991336e-5,7.179252228933486e-8,0.0035104540074803628,-5.058396686418179e-5,7.172395576915468e-8,0.0035107678630634256,-5.050815563358695e-5,7.15831936559844e-8,0.0035110250474179707,-5.041300190160958e-5,7.140965978633763e-8,0.003511224303772449,-5.0323602655051194e-5,7.124755864747469e-8,0.003511373081760116,-5.026556563032649e-5,7.114182180173342e-8,0.0035114881227789486,-5.026219499321855e-5,7.113303314780363e-8,0.003511595434404246,-5.0330578468163386e-5,7.125049337013055e-8,0.003511728512620591,-5.047647794780582e-5,7.15033405278639e-8,0.0035119233836461974,-5.0689046876978714e-5,7.187153222950117e-8,0.003512209769178392,-5.093800093324406e-5,7.230120436607415e-8,0.003512599955153083,-5.1176799888461815e-5,7.271049692322936e-8,0.003513080034794742,-5.135392592457402e-5,7.300940477436388e-8,0.003513609502076132,-5.14298349934786e-5,7.312941724983363e-8,0.0035141320281950124,-5.139216413429823e-5,7.305001548325024e-8,0.0035145936629104664,-5.1261041454466944e-5,7.28077595651944e-8,0.003514959887450534,-5.108168091747994e-5,7.248300624823855e-8,0.0035152241266274524,-5.090867675710344e-5,7.217204520177112e-8,0.0035154059396990682,-5.078968882418096e-5,7.195828527441259e-8,0.0035155420813633245,-5.075426745699315e-5,7.189270617613542e-8,0.0035156751083582306,-5.0809654038145116e-5,7.198679130075311e-8,0.003515843117254807,-5.094257374417173e-5,7.221607476825528e-8,0.0035160725094786714,-5.112494538587068e-5,7.253048594280297e-8,0.0035163744088703465,-5.132142690619098e-5,7.286773029032713e-8,0.0035167446049327736,-5.1497064920155425e-5,7.316666417595633e-8,0.003517166385541075,-5.1623642515698906e-5,7.337826896105822e-8,0.0035176151934762446,-5.168374224689177e-5,7.347259275945112e-8,0.0035180638474490854,-5.167220679053694e-5,7.344117159692746e-8,0.003518487230567752,-5.159533656149261e-5,7.329555446259182e-8,0.0035188657466365884,-5.146856119474064e-5,7.306321274190783e-8,0.0035191873567905307,-5.13134535075297e-5,7.278232032475649e-8,0.0035194484899109596,-5.1154771029381724e-5,7.249655785721567e-8,0.0035196543025420254,-5.101775638284942e-5,7.225031546170417e-8,0.0035198186084428556,-5.0925530397301455e-5,7.208400788541844e-8,0.0035199635105888586,-5.089622436322815e-5,7.202894163244655e-8,0.003520118343208592,-5.093945103045378e-5,7.210112224469392e-8,0.0035203169511922577,-5.105206016209678e-5,7.229397007328736e-8,0.003520592065648051,-5.1214188069510806e-5,7.2571689142489e-8,0.00352096625240208,-5.138810927673326e-5,7.286756429012272e-8,0.0035214411001403445,-5.1523353653888815e-5,7.309310451119305e-8,0.0035219896591436894,-5.15702050538723e-5,7.316168179423694e-8,0.0035225589618442157,-5.149859927706176e-5,7.302152157725176e-8,0.003523085668432638,-5.1313067895405906e-5,7.268175566529078e-8,0.003523518917940908,-5.105359802726036e-5,7.221375246224139e-8,0.003523838095962248,-5.0780520742168284e-5,7.17243210762634e-8,0.0035240564761216146,-5.0552185506667285e-5,7.13161973079306e-8,0.003524211505779421,-5.040730619616483e-5,7.105688273569124e-8,0.003524349502340482,-5.035813602950126e-5,7.096680808680643e-8,0.0035245122820342207,-5.039321453053906e-5,7.102455458373297e-8,0.003524729076631242,-5.0485092313253465e-5,7.1180850127246e-8,0.003525013583176288,-5.059899047337806e-5,7.137404304621766e-8,0.003525364590777378,-5.070022815478351e-5,7.154318300099117e-8,0.0035257686958330417,-5.075977742115368e-5,7.163764186847562e-8,0.003526204144558562,-5.075793251795897e-5,7.16233638631601e-8,0.003526645154897335,-5.06861406598159e-5,7.148591957241648e-8,0.003527066167471657,-5.0547118838004726e-5,7.123062042100954e-8,0.0035274455836368955,-5.03535175473795e-5,7.088014482938875e-8,0.003527768623758874,-5.012545639882056e-5,7.047021401502236e-8,0.0035280290362206864,-4.988738877980477e-5,7.004408058198917e-8,0.0035282296839363246,-4.966483945398808e-5,6.964675729891865e-8,0.003528382291270085,-4.9481325891113706e-5,6.931952735975422e-8,0.003528506567199636,-4.935546278755109e-5,6.909476075587484e-8,0.003528628724271695,-4.929815291741338e-5,6.899092748257108e-8,0.0035287791842859104,-4.9309749713025403e-5,6.900767973450815e-8,0.0035289888641371506,-4.9377284113068966e-5,6.912119895490268e-8,0.003529283256307753,-4.947268367777429e-5,6.92813827041382e-8,0.0035296742313782816,-4.955407009659888e-5,6.941439827038625e-8,0.003530151349516904,-4.957278427309963e-5,6.943511266213218e-8,0.0035306772094212354,-4.948747198735312e-5,6.92717079077621e-8,0.003531192964839601,-4.928195652942658e-5,6.889685346018671e-8,0.0035316365215482056,-4.89774365236009e-5,6.834895029601523e-8,0.003531966575744259,-4.862874958980648e-5,6.772540073203424e-8,0.0035321786442322665,-4.830377164926679e-5,6.714615431489767e-8,0.003532303511122255,-4.805750770984733e-5,6.670788672264682e-8,0.0035323910644271955,-4.7915439884981005e-5,6.645464473265158e-8,0.003532490905278016,-4.787198094158151e-5,6.637538089556046e-8,0.0035326391070453276,-4.7899603242805185e-5,6.6420465804465665E-08,0.003532853457600977,-4.79609329089279e-5,6.652335567882734e-8,0.003533134764875135,-4.801870810507902e-5,6.661826425948239e-8,0.0035334709225311187,-4.80420607780708e-5,6.6651124930788e-8,0.0035338414892082007,-4.800969554135657e-5,6.658497123133597e-8,0.003534221883309781,-4.791109649069916e-5,6.640185991590025e-8,0.0035345870911481937,-4.774650430734176e-5,6.610271983901248e-8,0.003534914922415681,-4.7525956167852065e-5,6.570564041722356e-8,0.003535188784668761,-4.726751897573049e-5,6.524278234784632e-8,0.003535399869757837,-4.699475689773158e-5,6.475593288560843e-8,0.003535548488616758,-4.673352273796198e-5,6.429082959559262e-8,0.0035356443027719678,-4.6508419457597334e-5,6.389085743601263e-8,0.003535705452163371,-4.633936348530399e-5,6.359090277517784e-8,0.0035357567090917945,-4.623851257366044e-5,6.341187165168234e-8,0.003535826730715225,-4.6207747236638295e-5,6.335626221346214e-8,0.0035359444328626815,-4.62369186224868e-5,6.340521229944e-8,0.0035361343987252193,-4.6303140463713727e-5,6.351750974087675e-8,0.0035364112077063,-4.637182901460024e-5,6.363172583245652e-8,0.0035367731674912405,-4.640084478194753e-5,6.367372155706706e-8,0.003537197303637594,-4.634911429135081e-5,6.357183762261232e-8,0.0035376391122535576,-4.618966433176537e-5,6.327964211385549e-8,0.003538041119459337,-4.592349949638268e-5,6.280007246840904e-8,0.0035383510638224264,-4.558644822183458e-5,6.219724757422401e-8,0.0035385429814836127,-4.524104977366377e-5,6.158200500178063e-8,0.0035386287865788782,-4.495389988038994e-5,6.107183348045023e-8,0.003538652157842681,-4.477026159769317e-5,6.074602879654554e-8,0.0035386688439036844,-4.47004078804151e-5,6.062170724859673e-8,0.003538726003163398,-4.4722809906257866e-5,6.065974926915645e-8,0.0035388505435425223,-4.4797903515981296e-5,6.078947944701308e-8,0.003539047874416657,-4.488281287540454e-5,6.093489620785433e-8,0.0035393068814284787,-4.4941391084842396e-5,6.103238884542969e-8,0.003539606554146499,-4.494882794965666e-5,6.103867464873075e-8,0.003539921676724328,-4.4892499760318906e-5,6.093205597538492e-8,0.003540226919719803,-4.477102781459113e-5,6.07105950251088e-8,0.0035404997394379314,-4.4592754938286915e-5,6.03893845810904e-8,0.0035407226338242614,-4.437398906963968e-5,5.999749164758063e-8,0.003540885022134315,-4.413694086471505e-5,5.957436958624628e-8,0.0035409847601478635,-4.3907158055120185e-5,5.91653320895687e-8,0.003541029039603609,-4.371029443432704e-5,5.881578782502931e-8,0.003541034222876167,-4.3568356911767184e-5,5.856451374224705e-8,0.0035410242820919035,-4.34959360356527e-5,5.843690932693798e-8,0.0035410278165807162,-4.349704460319828e-5,5.8439391136652944e-8,0.003541073866467474,-4.35631774348635e-5,5.8556051173999174e-8,0.003541186954993939,-4.367314619920436e-5,5.874856491748497e-8,0.0035413819586960823,-4.379504612211161e-5,5.895993621631804e-8,0.003541659481115643,-4.389056974908652e-5,5.9122364071120686e-8,0.0035420026717852874,-4.392188556736655e-5,5.9169501196338025e-8,0.0035423770266627625,-4.386091460591744e-5,5.9052739202674654e-8,0.003542735137307152,-4.369954534362978e-5,5.8758966934382756e-8,0.003543027709928473,-4.345726115647605e-5,5.8323693696870554e-8,0.003543219432923343,-4.318096116450492e-5,5.783045574779396e-8,0.0035433037039722254,-4.293306375151269e-5,5.7389662664115485e-8,0.003543307510625984,-4.2770211481893025e-5,5.710096925546551e-8,0.003543281657416864,-4.2722564889928e-5,5.7016803661170176e-8,0.0035432808969128654,-4.2784998811324036e-5,5.7127048886294805e-8,0.003543345083182791,-4.29237431526913e-5,5.7371094348610354e-8,0.0035434901225729534,-4.309218173774192e-5,5.766603094543882e-8,0.0035437096200434323,-4.324625449648452e-5,5.793397699501254e-8,0.003543982437111229,-4.335377416740421e-5,5.811844457672117e-8,0.003544280963361055,-4.339731616568985e-5,5.81892230593214e-8,0.003544577345674607,-4.337307492070495e-5,5.814014309175838e-8,0.0035448472547188253,-4.328818788598209e-5,5.798423922921832e-8,0.003545071945356522,-4.315800457900615e-5,5.774893393946444e-8,0.0035452395202854154,-4.300371531604833e-5,5.7471914844255585e-8,0.0035453459408502194,-4.285012265748278e-5,5.719723861116069e-8,0.0035453958923160433,-4.2723120313231096e-5,5.697084279090594e-8,0.0035454032149012556,-4.264651128545993e-5,5.683482254338785e-8,0.0035453903011499546,-4.2638151061864956e-5,5.682050114724788e-8,0.003545385835098054,-4.270593783651835e-5,5.6941284815840156e-8,0.0035454206037119564,-4.2844639289619016e-5,5.718710304786205e-8,0.003545521737679013,-4.3034763683612925e-5,5.7522579910149e-8,0.0035457064554863466,-4.3244478586494526e-5,5.7890672855239426e-8,0.0035459768841103315,-4.343484771283477e-5,5.822218243869248e-8,0.0035463175130871715,-4.35676865911608e-5,5.8449803092231185e-8,0.003546696374372438,-4.361459001005239e-5,5.852408386886376e-8,0.003547070408275864,-4.3565227278255075e-5,5.842791123349795e-8,0.0035473947092906958,-4.343266116837182e-5,5.8185596798430805e-8,0.003547634245769986,-4.3253317404532224e-5,5.786248016398101e-8,0.003547775128552845,-4.307980993012999e-5,5.755198880500784e-8,0.0035478310759871168,-4.296686019185961e-5,5.7350653828112885e-8,0.003547840931561206,-4.295416001320256e-5,5.732790326738767e-8,0.003547856465191098,-4.305323561587963e-5,5.7503072995357236e-8,0.0035479251065484753,-4.3244764513410865e-5,5.7840967381065036e-8,0.0035480755467052556,-4.3487437490787506e-5,5.82678059755974e-8,0.003548312159234838,-4.3733132149183526e-5,5.869821561074207e-8,0.003548618609759482,-4.394085957403888e-5,5.9059893258797215e-8,0.0035489665155445534,-4.4084657379925696e-5,5.930742385274079e-8,0.0035493243155301293,-4.4155064485646884e-5,5.94246850590516e-8,0.0035496635912923074,-4.415657349882108e-5,5.942017343141657e-8,0.003549962454933137,-4.4103723515838815e-5,5.932002348157367e-8,0.0035502068853032385,-4.401745537774121e-5,5.91615814739689e-8,0.0035503910919313167,-4.392223541541534e-5,5.898836758135166e-8,0.0035505176599334156,-4.3843716170544275e-5,5.884594653272736e-8,0.0035505977261718136,-4.3806355923926305e-5,5.877765373835154e-8,0.0035506509029348764,-4.38304481117814e-5,5.881923373523053e-8,0.0035507042417583052,-4.392838644885185e-5,5.8992150582505356e-8,0.003550789375607358,-4.4100629561268414e-5,5.9296460179193444e-8,0.0035509372747178996,-4.4332623510118206e-5,5.970549942120029e-8,0.0035511709877155606,-4.459455929913146e-5,6.016568287046157e-8,0.0035514981633926815,-4.4845618151110135e-5,6.060425933750863e-8,0.0035519062473257645,-4.504285818124529e-5,6.094521953949166e-8,0.003552363010141798,-4.515265199572119e-5,6.112959670344877e-8,0.0035528232538145662,-4.516091931665212e-5,6.113348597576136e-8,0.0035532400588138987,-4.5078419810363994e-5,6.097717700290937e-8,0.0035535771481694945,-4.4939099071296303e-5,6.07218955472018e-8,0.0035538186514130496,-4.479186991256323e-5,6.045492489427308e-8,0.0035539735035672354,-4.4688098423139305e-5,6.02672442098929e-8,0.0035540731748337205,-4.466810631879039e-5,6.022963420680442e-8,0.0035541630731403067,-4.475043551216551e-5,6.037388305148787e-8,0.003554289865126375,-4.4927280773815736e-5,6.068503341769779e-8,0.0035544886846951913,-4.516779476639947e-5,6.110755581298996e-8,0.0035547745839082123,-4.542805241964009e-5,6.156319330980759e-8,0.0035551408759050616,-4.5663759910920776e-5,6.197350799964669e-8,0.003555563963135248,-4.5841008864221135e-5,6.227883337795943e-8,0.0035560116876657694,-4.5941979139417047e-5,6.24482093400329e-8,0.0035564516280192447,-4.596527201117455e-5,6.24798008660841e-8,0.003556857010155012,-4.592266312849646e-5,6.239502440655055e-8,0.003557209714814007,-4.5834565631833704e-5,6.223046308066282e-8,0.003557501080364987,-4.572581403912075e-5,6.203040815733011e-8,0.0035577315537230697,-4.562240269450946e-5,6.184110140786349e-8,0.003557910036471095,-4.554903608560832e-5,6.170637764909142e-8,0.0035580533024840793,-4.552692161730423e-5,6.166368747736406e-8,0.0035581853049642667,-4.557119728743023e-5,6.173946177102266e-8,0.0035583356940717664,-4.568768485662425e-5,6.194333838364082e-8,0.0035585365708927026,-4.586927857225371e-5,6.226185510588425e-8,0.0035588166627198116,-4.609326999183041e-5,6.265390851272246e-8,0.003559193137323904,-4.632193829336071e-5,6.30520372167614e-8,0.003559663281878733,-4.650876999059089e-5,6.337362542760012e-8,0.003560200245713937,-4.661063021140253e-5,6.354254648899662e-8,0.0035607569317794813,-4.6602396654738655e-5,6.351506594055439e-8,0.003561278648384015,-4.6487494514614917e-5,6.32983887923139e-8,0.0035617199935504846,-4.6298558243764545e-5,6.29516014692535e-8,0.003562058627582537,-4.608741314362649e-5,6.256758166751812e-8,0.0035623004672044175,-4.5909078533960046e-5,6.224430829280521e-8,0.003562475581175662,-4.5806486601264316e-5,6.205760310203278e-8,0.0035626279001984354,-4.580067735294027e-5,6.204384806523509e-8,0.003562802954124633,-4.5888015756848204e-5,6.219537779330008e-8,0.003563037055132452,-4.6043654273636875e-5,6.246701201447148e-8,0.003563350070700666,-4.622932203076322e-5,6.27901620525839e-8,0.0035637427913076075,-4.6403085941301916e-5,6.309025042503193e-8,0.003564198880158738,-4.6528682381631946e-5,6.330320173165173e-8,0.0035646903766327347,-4.658232632749611e-5,6.338736538669235e-8,0.0035651848849890845,-4.6555732749513495e-5,6.332870370697999e-8,0.0035656523705938485,-4.645535269046844e-5,6.313929883122431e-8,0.0035660700713561725,-4.6298937321714985e-5,6.285117367268997e-8,0.003566425004528302,-4.611096934697695e-5,6.250815533966789e-8,0.0035667143995241142,-4.591827694533483e-5,6.215809174271331e-8,0.0035669448573334944,-4.574655007561588e-5,6.184666832943819e-8,0.0035671310343054594,-4.561778706202556e-5,6.161284724828767e-8,0.0035672942787601126,-4.554824175451044e-5,6.148516952915002e-8,0.0035674611803288114,-4.5546361387194964e-5,6.147805454901015e-8,0.003567661543033928,-4.5610385548273515e-5,6.158757512312564e-8,0.003567924912442449,-4.5725767445714075e-5,6.178702994408387e-8,0.0035682748142848095,-4.5863544983274e-5,6.202428486357496e-8,0.0035687207877180566,-4.598192357438832e-5,6.222480065079293e-8,0.0035692503506583244,-4.603366023380281e-5,6.230484445613422e-8,0.0035698255742100237,-4.597995195287227e-5,6.219611092854864e-8,0.0035703895352063105,-4.580682740172019e-5,6.187471998839677e-8,0.003570883632004423,-4.553525834522834e-5,6.137904502638934e-8,0.003571268864222055,-4.521699225352601e-5,6.080211684283172e-8,0.0035715396695708015,-4.4916408899932836e-5,6.025908338968015e-8,0.003571723198393817,-4.468799023289393e-5,5.984686372144387e-8,0.003571866379697392,-4.456067955242553e-5,5.961625196141818e-8,0.0035720191409290983,-4.453406964456066e-5,5.956536150564443e-8,0.0035722211083410766,-4.458410992868764e-5,5.965019352482582e-8,0.003572494625911943,-4.4673173061435514e-5,5.980293252365561e-8,0.0035728434568544545,-4.476028636567257e-5,5.995034390494367e-8,0.0035732552997467812,-4.480936493091201e-5,6.002839604720158e-8,0.003573706429317807,-4.479480285769821e-5,5.99920413721776e-8,0.0035741673042217212,-4.4704415364411226e-5,5.982025244393188e-8,0.0035746082437256763,-4.45398457623661e-5,5.951659167339322e-8,0.003575004335958261,-4.43147481520429e-5,5.9105889956792483e-8,0.003575338940318722,-4.405137481478573e-5,5.862814161090186e-8,0.0035756054724064797,-4.3776367002100296e-5,5.81310100746709e-8,0.0035758075061845546,-4.3516565870462726e-5,5.766237414128631e-8,0.0035759576042431298,-4.32955011747464e-5,5.726406668644314e-8,0.003576075473322457,-4.313078064462699e-5,5.696719548910158e-8,0.0035761858511276887,-4.3032185858342236e-5,5.678871564724287e-8,0.0035763162079560256,-4.300017921430965e-5,5.672876610846801e-8,0.0035764940524594456,-4.3024605140873026e-5,5.6768438605918676e-8,0.0035767432881861085,-4.30836704446525e-5,5.686814868430869e-8,0.0035770790275487753,-4.314407216803266e-5,5.6968106744896594e-8,0.0035775010573515023,-4.3164050813275044e-5,5.699394484154996e-8,0.003577987803146952,-4.310136895375068e-5,5.6870952361826546e-8,0.0035784948165471183,-4.292678335936257e-5,5.65479221696561e-8,0.003578962840272767,-4.2639405852658924e-5,5.602429479005061e-8,0.003579336851006414,-4.227498438897039e-5,5.536473452635238e-8,0.003579588685688661,-4.18979968512765e-5,5.468488805835137e-8,0.0035797296080622783,-4.1578011198993515e-5,5.4109049105691114e-8,0.0035798042114301037,-4.1363105981440804e-5,5.372259413331688e-8,0.0035798702564199783,-4.126542984896543e-5,5.354626012529212e-8,0.0035799774382410184,-4.126391236459329e-5,5.354128307652321e-8,0.003580154993927935,-4.1317791469285e-5,5.363395239974795e-8,0.003580409608935486,-4.1381581597515776e-5,5.374262013811699e-8,0.003580729783643385,-4.1415934670145685e-5,5.3797139133405634e-8,0.003581092408746188,-4.139336320909661e-5,5.3748926352074026e-8,0.003581469034566333,-4.130007224972205e-5,5.357400193982709e-8,0.0035818310034735766,-4.1135487314135264e-5,5.3271956810880735e-8,0.0035821534692491988,-4.0910476824976e-5,5.286268340386592e-8,0.003582418418358619,-4.06446935945381e-5,5.238161243589318e-8,0.0035826166797022483,-4.0363280171443215e-5,5.187384845082181e-8,0.00358274884529989,-4.009317462540421e-5,5.1387588037206476e-8,0.003582824995614943,-3.985933882274082e-5,5.096737917280055e-8,0.0035828632611508504,-3.9681384105172434e-5,5.064806914993073e-8,0.0035828875139954875,-3.957098298811167e-5,5.045014818249678e-8,0.003582924529544475,-3.953016479695639e-5,5.0376688098463605e-8,0.00358300081862799,-3.955047708564117e-5,5.0411877426842314e-8,0.0035831392261010796,-3.961300640930363e-5,5.052117648958689e-8,0.003583355214352302,-3.968931328155379e-5,5.065319072165797e-8,0.0035836526718863154,-3.974377438611344e-5,5.074407946967609e-8,0.003584019676710392,-3.973841845099247e-5,5.072633320424865e-8,0.0035844258489106545,-3.9641235948389545e-5,5.0543575221023724e-8,0.003584824176308066,-3.943762986883524e-5,5.0170788891649215e-8,0.0035851605988330357,-3.914173842671066e-5,4.963424297277142e-8,0.0035853918960880448,-3.880043670747472e-5,4.9018405921792256e-8,0.003585505322328108,-3.848249328671764e-5,4.844644654517097e-8,0.003585527515563994,-3.8253569503164206e-5,4.803549689485371e-8,0.0035855144146158527,-3.8149888897543195e-5,4.784960245800021e-8,0.0035855273906091824,-3.8166487904675314e-5,4.787887836846632e-8,0.0035856104495281117,-3.8265157169492204e-5,4.805402080142565e-8,0.0035857798816200707,-3.8393560363288984e-5,4.828082047147677e-8,0.0035860268763078557,-3.8503227747035004e-5,4.847250586230702e-8,0.003586326680961035,-3.855986372475001e-5,4.8568113786697065e-8,0.003586648121636525,-3.8546152355993225e-5,4.853728942981486e-8,0.0035869605978639182,-3.846010828728895e-5,4.837710529272839e-8,0.003587238303345829,-3.8311783073421156e-5,4.810602981932446e-8,0.0035874625495865785,-3.811982896336047e-5,4.775775329407981e-8,0.00358762304655042,-3.790829412712801e-5,4.7375493462969575e-8,0.003587718543212155,-3.7703539314087314e-5,4.700651815697953e-8,0.0035877568854504843,-3.753109690746856e-5,4.669652828927809e-8,0.0035877543189045003,-3.741240911193318e-5,4.648378792509094e-8,0.0035877337821993926,-3.736170012036886e-5,4.639348279578213e-8,0.003587722146397466,-3.738348798138e-5,4.643324183247487e-8,0.003587746637258956,-3.747117499085622e-5,4.659063494568057e-8,0.0035878308010265218,-3.760702188597041e-5,4.683321176191194e-8,0.0035879904688035855,-3.776372946249842e-5,4.7111485215557924e-8,0.0035882302134709367,-3.790765307608103e-5,4.736488113389693e-8,0.0035885407027646038,-3.800358818517712e-5,4.753047496748133e-8,0.0035888975265631912,-3.802122612155703e-5,4.755460390198331e-8,0.003589262683625903,-3.7943134492679234e-5,4.740703403510289e-8,0.003589590313060849,-3.777295305645327e-5,4.709535929441549e-8,0.0035898376636516174,-3.754070148435225e-5,4.6674180657203245e-8,0.003589979939820703,-3.730052104784748e-5,4.6240824276023414e-8,0.003590023371945228,-3.711708048632642e-5,4.5910925049693536e-8,0.0035900077501635065,-3.7042871910765236e-5,4.577784781514526e-8,0.0035899933020088546,-3.709707415007798e-5,4.587502096050476e-8,0.003590037208575344,-3.725873614994456e-5,4.6163979998570615e-8,0.0035901730111987757,-3.747812082032692e-5,4.655494611376622e-8,0.0035904033060219416,-3.769784537258867e-5,4.6944876133643913e-8,0.003590705852666982,-3.787137405914086e-5,4.725061888805473e-8,0.0035910458330059257,-3.7972004750569304e-5,4.7424881917477886e-8,0.0035913870901548824,-3.799305368319623e-5,4.7456342834723396e-8,0.003591699210907479,-3.794340612840332e-5,4.736148608065085e-8,0.0035919606768198722,-3.7842095199116786e-5,4.7174801397497153e-8,0.0035921596171359957,-3.7713708795726786e-5,4.6940568127754947e-8,0.003592293558379161,-3.758490512066759e-5,4.6706667488679346e-8,0.0035923688823323,-3.7481625279828046e-5,4.651961895285797e-8,0.0035924001126666325,-3.742650014676788e-5,4.641991343171655e-8,0.003592408782381076,-3.743612894819133e-5,4.643708427178588e-8,0.0035924214411165024,-3.751830128528744e-5,4.6584688608919025e-8,0.0035924664696293106,-3.7669705308534085e-5,4.685621045027915e-8,0.003592569774155505,-3.7874901547291835e-5,4.7223301285490726e-8,0.003592749902450613,-3.810728859606727e-5,4.763765035237718e-8,0.0035930135281971444,-3.833251364146036e-5,4.8037268016193544e-8,0.003593352477999401,-3.85142094254474e-5,4.835692293551611e-8,0.003593743318325711,-3.862124028617287e-5,4.8541211620976406e-8,0.0035941500803349773,-3.8635219635304036e-5,4.855799005285224e-8,0.0035945303054739485,-3.8556856029829644e-5,4.8409563859566875e-8,0.0035948441441678958,-3.84093266238022e-5,4.8138450958546775e-8,0.0035950652932258955,-3.823653707192244e-5,4.7823971958565097E-08,0.003595191000352243,-3.809453371200407e-5,4.7566669363102354e-8,0.003595246796889517,-3.803631027123147e-5,4.7461060314247433E-08,0.0035952816700368603,-3.809404780623166e-5,4.756396298769029e-8,0.0035953529476908017,-3.826654280703843e-5,4.7872228760978966e-8,0.0035955064360887307,-3.851914359448242e-5,4.832290540180464e-8,0.0035957614102684605,-3.8797097685212365e-5,4.8817364790469434e-8,0.0035961074408753227,-3.904519065318432e-5,4.925659081088645e-8,0.0035965125426542463,-3.922380619036841e-5,4.9569925989950274e-8,0.0035969362675940465,-3.9315732962972006e-5,4.972712682605005e-8,0.003597341109482439,-3.932441886961113e-5,4.9735041797245097e-8,0.0035976991308152764,-3.9267828750470704e-5,4.962644042986901e-8,0.0035979941492756103,-3.917176770050048e-5,4.944797265987095e-8,0.0035982212646163817,-3.906461231436291e-5,4.925073309806581e-8,0.0035983853864858173,-3.8973731332623625e-5,4.9083882869826816e-8,0.003598499705108412,-3.8923037020490345e-5,4.899027237780294e-8,0.003598584313547959,-3.893093107139329e-5,4.900272753215885e-8,0.003598664665047769,-3.900814200916675e-5,4.914012707459969e-8,0.003598769295912446,-3.91554181102269e-5,4.940325446403414e-8,0.003598926296552057,-3.936159589408526e-5,4.9771395938974046e-8,0.0035991584178781378,-3.9603052569638225e-5,5.020149262688757e-8,0.0035994774570306106,-3.9845742495034574e-5,5.063196470603437e-8,0.003599879456446016,-4.0050595060088164e-5,5.099254875986903e-8,0.0036003427551529487,-4.018188155414745e-5,5.121939647495595e-8,0.0036008305267239238,-4.021666105614067e-5,5.127201267350899e-8,0.003601298082359539,-4.015241628723848e-5,5.114683795044416e-8,0.0036017034785005065,-4.001010080325409e-5,5.0882498429844205e-8,0.0036020186446318633,-3.983102151691306e-5,5.055393791953197e-8,0.00360223784043595,-3.966773922720605e-5,5.025583994965174e-8,0.0036023807275160397,-3.957088011118183e-5,5.0078834765566855e-8,0.0036024884440489483,-3.957514576006304e-5,5.008445593779248e-8,0.003602612836630004,-3.9688759093846825e-5,5.028643421396089e-8,0.003602801507346342,-3.9890448396384285e-5,5.064559582445518e-8,0.0036030837132397233,-4.013591224250133e-5,5.1081729897139555e-8,0.0036034625787910108,-4.037175117016467e-5,5.149873123423126e-8,0.0036039164745840613,-4.0551277524241955e-5,5.181297742668326e-8,0.0036044080529050305,-4.0646004294966926e-5,5.197384946590186e-8,0.00360489619893693,-4.064945869958866e-5,5.197041780922286e-8,0.0036053460251226866,-4.0574082061552914e-5,5.182570742191499e-8,0.0036057344318386826,-4.044453999591332e-5,5.158455566701788e-8,0.0036060514579108944,-4.029075668722807e-5,5.130104481965624e-8,0.003606299011004411,-4.01424970484346e-5,5.1028778692332877e-8,0.0036064885833287518,-4.0025849226308426e-5,5.081459498933569e-8,0.003606638973317254,-3.9961099891688534e-5,5.069476213733481e-8,0.003606774332411993,-3.9961203232245695e-5,5.069221405358963e-8,0.0036069222452277806,-4.003023028212907e-5,5.081374865009258e-8,0.0036071112182922568,-4.016168303508934e-5,5.1047028727656355e-8,0.003607366963232316,-4.033714988858951e-5,5.135826999643147e-8,0.0036077072303672525,-4.0526398781894345e-5,5.169257162187404e-8,0.0036081358410376746,-4.069044856608033e-5,5.19795998409735e-8,0.00360863791472181,-4.0788768684664725e-5,5.214662964419998e-8,0.0036091792602710175,-4.079000858969095e-5,5.2137837160242114e-8,0.003609712280943959,-4.068309768113012e-5,5.1934170132578293e-8,0.0036101880918484254,-4.04838562463079e-5,5.1565076095717744e-8,0.0036105710604826644,-4.0233135214053623e-5,5.11049366675387e-8,0.0036108500263461432,-3.998610781681087e-5,5.065355467128838e-8,0.003611041677968052,-3.9796540409886596e-5,5.0307660035659015e-8,0.0036111851665100313,-3.970186618515915e-5,5.0134017422303575e-8,0.0036113304864999287,-3.971382372907988e-5,5.0152753919674675e-8,0.0036115247250119607,-3.98167918000583e-5,5.033467938084641e-8,0.0036118001491949494,-3.997345877334354e-5,5.061180843179813e-8,0.003612167114637999,-4.013564216404726e-5,5.089703004119631e-8,0.0036126132814578962,-4.025692196720492e-5,5.110687626163271e-8,0.0036131087640671185,-4.0303479742982214e-5,5.118093281193777e-8,0.0036136150876857724,-4.026034802700086e-5,5.109292725088119e-8,0.003614094856008835,-4.0132016043704154e-5,5.085165351686192e-8,0.0036145193074628326,-3.993836208888382e-5,5.0493512681573206e-8,0.003614872292763547,-3.9708210576448246e-5,5.0070825982924494e-8,0.003615150815762236,-3.947285164647236e-5,4.9640137095099506e-8,0.0036153632808230353,-3.926096931140428e-5,4.9253097195019005e-8,0.0036155267616432177,-3.909538048400595e-5,4.89506275147321e-8,0.0036156642392711075,-3.8991230807476714e-5,4.8759693003331155e-8,0.0036158021749105296,-3.895495080175904e-5,4.86914245950835e-8,0.0036159682275933073,-3.8983383111791493e-5,4.873955389149923e-8,0.003616188577386115,-3.9062911493915725e-5,4.887889729439448e-8,0.0036164842465590077,-3.9168981167351876e-5,4.906461395007111e-8,0.003616866127419069,-3.926707099410478e-5,4.9234122993500053E-08,0.003617329348913702,-3.931673398289274e-5,4.9314522167269587e-8,0.003617849150796829,-3.928001916208648e-5,4.923780665633049e-8,0.003618381798653043,-3.913360777112033e-5,4.896267227430695e-8,0.0036188735440883186,-3.888055553865431e-5,4.849554188132768e-8,0.003619276853702225,-3.855491658006466e-5,4.789873129478229e-8,0.0036195676184713646,-3.821416389457841e-5,4.7276580612196774e-8,0.0036197545025373444,-3.792090095161403e-5,4.6742254073388355e-8,0.0036198753513412853,-3.772222272857822e-5,4.6380371688515686e-8,0.0036199830801991757,-3.763623905030227e-5,4.6222755173165736e-8,0.00362012849213772,-3.7650144684676776e-5,4.624521707582522e-8,0.003620346940104583,-3.77278873639625e-5,4.6381754134727366e-8,0.0036206519317770578,-3.7822429509832206e-5,4.654694600928876e-8,0.0036210353347296935,-3.788800232657244e-5,4.6658156643896576e-8,0.0036214722356083732,-3.7889552847069945e-5,4.665250017723497e-8,0.0036219282737146377,-3.7808250334028e-5,4.6496606350338104e-8,0.003622367558528604,-3.764294604213074e-5,4.618907856043481e-8,0.003622759613618764,-3.740807222574171e-5,4.5756568470016735e-8,0.003623084197594277,-3.7129000539556704e-5,4.524531717165578e-8,0.0036233334897944123,-3.6836271033352585e-5,4.471070197478162e-8,0.003623511822352105,-3.656004150987419e-5,4.42072171491852e-8,0.003623633625770037,-3.632568696345636e-5,4.378055463898182e-8,0.0036237204746564565,-3.615095303416537e-5,4.3462496938331666e-8,0.0036237980238943072,-3.604451542869379e-5,4.326833725239851e-8,0.0036238932087061873,-3.600542881626248e-5,4.3195891834918523e-8,0.0036240316260941043,-3.6022998605292114e-5,4.322528366433578e-8,0.003624234754252283,-3.6076927455552074E-05,4.331926852948421e-8,0.0036245165668879796,-3.613800749232242e-5,4.34246123367742e-8,0.003624879311897084,-3.617023187311202e-5,4.3476066000601294e-8,0.0036253090835464646,-3.6135726391495956e-5,4.3405390637871034e-8,0.0036257732585274127,-3.6003592967351125e-5,4.315733397260209e-8,0.0036262232058954036,-3.576186980901324e-5,4.271111422394686e-8,0.003626605331546473,-3.542823247726426e-5,4.209956869519151e-8,0.003626879436036661,-3.50518579454549e-5,4.1412337399755736e-8,0.0036270365079126123,-3.470071004044956e-5,4.0772704917605835e-8,0.0036271047904969573,-3.443736111457935e-5,4.029373159298715e-8,0.0036271389316380864,-3.429581521273013e-5,4.003629528591115e-8,0.0036271983746661196,-3.427189565117347e-5,3.999186380888534e-8,0.0036273272627723543,-3.433001504928174e-5,4.009507060595036e-8,0.0036275443605000503,-3.441929039714666e-5,4.02532013146905e-8,0.003627843559349204,-3.448978456372097e-5,4.037574941419381e-8,0.0036282007307444626,-3.450355291645972e-5,4.039436204166938e-8,0.0036285824334346233,-3.443962968437811e-5,4.027168052144104e-8,0.003628953774846586,-3.4294406238919776e-5,4.000181674287031e-8,0.003629284453436167,-3.4079224683629005e-5,3.960585055025596e-8,0.00362955288864694,-3.381643465683662e-5,3.912462715686188e-8,0.0036297485036715003,-3.353465476085004e-5,3.8610171191587416e-8,0.0036298722480067286,-3.3263883330298314e-5,3.811684927278125e-8,0.003629935574821214,-3.303104643643447e-5,3.769332757952957e-8,0.003629958188257625,-3.285642390889165e-5,3.737611903004188e-8,0.003629964993502037,-3.275128511796277e-5,3.7185320702803963e-8,0.0036299828010852926,-3.271683137367501e-5,3.712271268820873e-8,0.003630037189355566,-3.274419552984249e-5,3.7171770693712e-8,0.003630149597490292,-3.281517977483511e-5,3.729903127915843e-8,0.0036303345419651353,-3.290362286671258e-5,3.7456641443449155e-8,0.0036305967997701106,-3.297753462876925e-5,3.758635247116539e-8,0.003630928513207681,-3.300252642506156e-5,3.762587782766384e-8,0.0036313068265694214,-3.294744940956532e-5,3.7519188323039196e-8,0.00363169380297549,-3.2792780456482834e-5,3.7231652891866554e-8,0.0036320412779389313,-3.254062980327011e-5,3.676798183842747e-8,0.0036323028298620714,-3.222229600651305e-5,3.618566999286661e-8,0.00363245144150968,-3.1896535693968474e-5,3.559165692670533e-8,0.003632494924818845,-3.163343128727202e-5,3.5112974053962996e-8,0.003632477752238004,-3.148784739433187e-5,3.4848610971418145e-8,0.0036324645616411712,-3.147677766139223e-5,3.4828549478256566e-8,0.003632513929295136,-3.1574620316264846e-5,3.5005434477029905e-8,0.0036326579319382944,-3.1727711619258e-5,3.528122902984301e-8,0.0036328967617592235,-3.187682011716218e-5,3.554823526809591e-8,0.0036332061434049393,-3.197502524181992e-5,3.572156454636925e-8,0.0036335495974229026,-3.1995847248725226e-5,3.575374279393732e-8,0.003633889293870905,-3.19333227910892e-5,3.563461873953822e-8,0.003634193172744235,-3.17978842240923e-5,3.538369154094479e-8,0.003634438615965457,-3.161109030916799e-5,3.504045625380042e-8,0.003634613855985011,-3.1400671454106465e-5,3.465541572534082e-8,0.003634718071699902,-3.11961575856113e-5,3.428219175465637e-8,0.003634760562279025,-3.102500639946222e-5,3.3970535921702535e-8,0.0036347591134491177,-3.0909251987672765e-5,3.376025962304962e-8,0.003634737607805422,-3.086278268132625e-5,3.367629517795057e-8,0.0036347229490649663,-3.088948453492992e-5,3.372533325761154e-8,0.003634741563228235,-3.0982560065987805e-5,3.389460784514429e-8,0.003634815901229414,-3.112512713113596e-5,3.4153020033679004e-8,0.0036349612766972193,-3.129198170965659e-5,3.4454394956192596e-8,0.003635183245992869,-3.145240784677646e-5,3.4742669582784826e-8,0.0036354757079425717,-3.1573956992053166e-5,3.495886526255861e-8,0.0036358199160614058,-3.1627212256825974e-5,3.504983415027823e-8,0.0036361849045063073,-3.159171660721317e-5,3.4979039620345153e-8,0.003636530479561921,-3.1462895172653124e-5,3.473901011215707e-8,0.0036368142578559253,-3.1258495477149596e-5,3.436280051338025e-8,0.003637003387374721,-3.102115681331883e-5,3.3928392231956515e-8,0.003637088755021439,-3.081237158304347e-5,3.35475459720963e-8,0.003637094946225761,-3.069500019812094e-5,3.333402234292594e-8,0.0036370770559699434,-3.0708848592774254e-5,3.335935424561485e-8,0.0036371013292986853,-3.085231309250355e-5,3.361973574732224e-8,0.0036372186076369544,-3.108268917674487e-5,3.4036836713625407e-8,0.0036374461301725914,-3.133543760619602e-5,3.449300493597974e-8,0.0036377666800752285,-3.154966294649507e-5,3.4877648547478624e-8,0.003638141297749838,-3.1685759118405125e-5,3.511925103365506e-8,0.0036385252843173046,-3.173024090401332e-5,3.5193980505349496e-8,0.0036388799750885084,-3.1691380373824776e-5,3.5117541386689996e-8,0.003639178463924923,-3.1591479016366276e-5,3.493096321710203e-8,0.003639406831918024,-3.145964120367891e-5,3.4687408289269027e-8,0.0036395631103395176,-3.132641488984484e-5,3.444246310972407e-8,0.003639655535314708,-3.122008096808154e-5,3.4247456211883176e-8,0.0036397006665107633,-3.1163893875378406e-5,3.414448139816457e-8,0.003639721329488939,-3.1173806420359784e-5,3.416226804857164e-8,0.0036397441644748767,-3.125655767899938e-5,3.431270209771732e-8,0.003639796568166988,-3.140832386339877e-5,3.458839076722247e-8,0.0036399030331303018,-3.161441580614675e-5,3.49621599593727e-8,0.0036400812861970703,-3.1850493516183555e-5,3.538933414193512e-8,0.0036403388783366928,-3.2085469069802425e-5,3.581309683606768e-8,0.003640670899708472,-3.228595888933305e-5,3.617266898678714e-8,0.003641059410890908,-3.242184074945234e-5,3.6413480741849684e-8,0.003641474976614793,-3.2472192397990765e-5,3.6497992784001544e-8,0.0036418804736073327,-3.243081777099901e-5,3.6415684316993066e-8,0.0036422373048892133,-3.231046066567557e-5,3.619054998193656e-8,0.003642513965287651,-3.2144261682321465e-5,3.588351146600024e-8,0.0036426959856221573,-3.198235682061668e-5,3.5586005065773693e-8,0.0036427944977556605,-3.1881697208743154e-5,3.5401356745524745e-8,0.0036428486849075714,-3.188933045907144e-5,3.5414444145402196e-8,0.0036429173685921887,-3.202403752604784e-5,3.565852233264122e-8,0.0036430596414088368,-3.226577445343364e-5,3.609629779052436e-8,0.0036433124954249867,-3.2561078847616284e-5,3.66299793816928e-8,0.0036436776177795477,-3.284337212027593e-5,3.713830880496045e-8,0.0036441242313400286,-3.3057030277970586e-5,3.7520345040000954e-8,0.0036446041810241324,-3.317277180321848e-5,3.772337507096917e-8,0.0036450692490085615,-3.3189738563198884e-5,3.7746545722749065e-8,0.003645482899676809,-3.3128175256394194e-5,3.7627357042686266e-8,0.0036458246434632187,-3.301933774306142e-5,3.7423151774873677e-8,0.003646089234413236,-3.289707990184836e-5,3.71957515176344e-8,0.003646283665094115,-3.279244336538491e-5,3.7001641525103554e-8,0.0036464239349174375,-3.273067656021924e-5,3.6886607019548715e-8,0.0036465323149864697,-3.272957018214073e-5,3.6882747854165715e-8,0.0036466349961541663,-3.279825429446103e-5,3.700630533575309e-8,0.0036467596710251142,-3.2936106766617314e-5,3.725568811188398e-8,0.0036469325807821826,-3.313193807407561e-5,3.7610026698915855e-8,0.0036471748124150484,-3.3364069240662704e-5,3.802938859382088e-8,0.003647498169133209,-3.360210126412473e-5,3.845809149088258e-8,0.0036479015316435363,-3.38109253939106e-5,3.883209072712449e-8,0.003648368986541947,-3.395689666898082e-5,3.909027582893097e-8,0.003648870921029724,-3.401521748118757e-5,3.9187927000580045e-8,0.0036493686380024244,-3.397675991479839e-5,3.91090927084104e-8,0.0036498219897588453,-3.385230235314705e-5,3.887418894134722e-8,0.0036501985693956885,-3.367263505175776e-5,3.854000701640252e-8,0.0036504824684245895,-3.348382883038354e-5,3.819088250354824e-8,0.003650680396759058,-3.333785800459016e-5,3.792145205144569e-8,0.003650822939161007,-3.3279840876376515e-5,3.781338373671198e-8,0.003650959134371577,-3.3334613467666114e-5,3.791106516073476e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json new file mode 100644 index 00000000..3f54533a --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":23000,"numberOfSamples":1000,"samples":[0.003651144035305788,-3.3496975736922465e-5,3.820410327566936e-8,0.0036514219143992843,-3.3730554777606135e-5,3.862552436820353e-8,0.0036518112676496577,-3.397791609056264e-5,3.907035721036122e-8,0.00365229870095008,-3.417907449598782e-5,3.9429383363913e-8,0.00365284489977173,-3.4290356787269744e-5,3.962343833009104e-8,0.0036533992613388363,-3.429527055965991e-5,3.962310443890886e-8,0.003653915601993734,-3.4204210437811016e-5,3.9448034728001705e-8,0.0036543625588809866,-3.404606217387052e-5,3.915149562803171e-8,0.003654726821743164,-3.385745548023324e-5,3.880065521411588e-8,0.003655011114586897,-3.367402646076845e-5,3.846060844958942e-8,0.003655229952491537,-3.352516388562213e-5,3.818482941081412e-8,0.0036554053665251193,-3.343165583497147e-5,3.8010946814686524e-8,0.0036555634966590643,-3.3404964167691095e-5,3.7959478606448984e-8,0.0036557319972541605,-3.3447035834001456e-5,3.803352192134055e-8,0.0036559377077366316,-3.355009646938942e-5,3.821840523078073e-8,0.003656203941986329,-3.3696494348695236e-5,3.848145228658821e-8,0.0036565469978612378,-3.3859223781751256e-5,3.877301569526761e-8,0.0036569720596978405,-3.4004124438745524e-5,3.9030579556823116e-8,0.003657469498455847,-3.40947073072433e-5,3.918763315500793e-8,0.003658013393850613,-3.409978236972752e-5,3.918760770228968e-8,0.0036585642841328063,-3.400250012732713e-5,3.9000338042948336e-8,0.003659077039174998,-3.380774452480385e-5,3.8635466490843415e-8,0.0036595124517896076,-3.354428513728769e-5,3.8146233975437406e-8,0.0036598488695074555,-3.325957393919969e-5,3.761980345160911e-8,0.0036600895177045143,-3.30080589998171e-5,3.7155744789631976e-8,0.0036602626699706706,-3.2836659874036776e-5,3.6839414480127626e-8,0.0036604145345912036,-3.277203283919482e-5,3.671875744486885e-8,0.003660597076071134,-3.281332359526204e-5,3.679128814107534e-8,0.0036608541980586175,-3.293230507705976e-5,3.700462952878297e-8,0.003661210012998719,-3.308093000187256e-5,3.7270537712529526e-8,0.003661662575751951,-3.320440094368456e-5,3.74888633727299e-8,0.003662185161327315,-3.325597408349231e-5,3.7574542846225874e-8,0.003662734729255613,-3.320874898829924e-5,3.747900861351535e-8,0.0036632644530644296,-3.3060666580031256e-5,3.719917570818271e-8,0.003663735688217234,-3.283177311008349e-5,3.677230797634811e-8,0.003664125550367317,-3.255600900274537e-5,3.6260899113540797e-8,0.0036644288159946347,-3.227144312843095e-5,3.573475239964142e-8,0.003664655379067319,-3.20122786606644e-5,3.525635740926294e-8,0.0036648256060508692,-3.180406776074698e-5,3.487218993328028e-8,0.0036649655917790954,-3.166186058055134e-5,3.460940215582945e-8,0.003665103342555086,-3.15901849968733e-5,3.4475849367541365e-8,0.003665265988254904,-3.158372346364206e-5,3.4461364201339914e-8,0.003665477540567749,-3.162801003528849e-5,3.4539055157405407e-8,0.0036657565338192736,-3.17000936026722e-5,3.466655892539428e-8,0.0036661130590637785,-3.176968248208968e-5,3.478820502904388e-8,0.003666545202793297,-3.180174937323968e-5,3.483986629008923e-8,0.003667035788941662,-3.1761745550580205e-5,3.475855435760227e-8,0.0036675514497473767,-3.162389916152661e-5,3.449759311569503e-8,0.003668046654744528,-3.138114071038292e-5,3.404470126419763e-8,0.0036684741721542814,-3.105261032794423e-5,3.343560777759723e-8,0.003668799974560434,-3.068345735179965e-5,3.2753539214570226e-8,0.0036690165364966303,-3.0334013759936222e-5,3.2109244036842246e-8,0.0036691474276989216,-3.0061206934846583e-5,3.160683200695938e-8,0.0036692401145173264,-2.9900241087574385e-5,3.131020806459519e-8,0.0036693503292834495,-2.9854613982101406e-5,3.122493185911916e-8,0.003669525187357138,-2.989751080207272e-5,3.1301037813817e-8,0.0036697912282753556,-2.9982013376298203e-5,3.1452001909760237e-8,0.003670149929656101,-3.0055069990531985e-5,3.15804774867729e-8,0.00367058012275416,-3.007069224005011e-5,3.160245845426072e-8,0.003671045233915078,-2.9999480736268876e-5,3.14646043020311e-8,0.00367150289146305,-2.9833136999524488e-5,3.1152343179196404e-8,0.0036719145236925356,-2.9583830819543413e-5,3.068856987855197e-8,0.0036722528819754623,-2.9279274289988172e-5,3.012451965536157e-8,0.0036725060723375516,-2.8955216659429878e-5,2.9525956515840337e-8,0.003672677754130943,-2.864755268356975e-5,2.895869275364607e-8,0.003672784291843022,-2.838594682136872e-5,2.8476927435519246e-8,0.0036728502871910297,-2.8189969093245898e-5,2.8116221838894727e-8,0.0036729039195573616,-2.8067750927584617e-5,2.7891105878276732e-8,0.0036729730472076353,-2.8016458620949784e-5,2.7795998669456532e-8,0.0036730823256591566,-2.8023639314141942e-5,2.7807699502206006e-8,0.0036732510393670506,-2.806876922500443e-5,2.7888233842029837e-8,0.0036734911388206174,-2.8124848250507907e-5,2.7987802985082756e-8,0.003673805048096844,-2.8160365318995213e-5,2.8048454388623762e-8,0.0036741831643614118,-2.8142417714421486e-5,2.800989211450284e-8,0.0036746017845311393,-2.8042014596425726e-5,2.781926303572099e-8,0.003675023305396148,-2.7842042600133794e-5,2.7445742165138232e-8,0.003675401277467576,-2.7546573380207877e-5,2.6897486202051013e-8,0.0036756920590245525,-2.718737099853137e-5,2.623340000871415e-8,0.0036758711240840844,-2.682142732552505e-5,2.555844943167183e-8,0.0036759465937811365,-2.6515692647237495e-5,2.499551903112205e-8,0.0036759605227197774,-2.6323182982489206e-5,2.464151777744949e-8,0.0036759744983032644,-2.6262593443452535e-5,2.4530039671133795e-8,0.0036760466285700347,-2.6312844659637143e-5,2.462156779143457e-8,0.0036762123044454384,-2.6424126112870143e-5,2.4824015221802194e-8,0.003676476786014314,-2.6537239075107872e-5,2.5028430559382807e-8,0.0036768192350094923,-2.6601221243758545e-5,2.5141395201407517e-8,0.0036772028513650874,-2.658386925131194e-5,2.5104237965815816e-8,0.0036775858883604795,-2.6474864491415744e-5,2.4898599976612817e-8,0.0036779306440379686,-2.6283647779182486e-5,2.4542371246482394e-8,0.003678209538973982,-2.603439997978615e-5,2.408037372138913e-8,0.003678408358108114,-2.5759783494692988e-5,2.357282896906436e-8,0.003678526948850447,-2.5494493653466036e-5,2.308351403533256e-8,0.0036785777355817883,-2.5269467883076505e-5,2.2669143006386352e-8,0.003678582593628918,-2.5107461818455048e-5,2.2371273529194018e-8,0.003678568782474355,-2.5020417507422695e-5,2.2211520779320994e-8,0.0036785647042003374,-2.500871973525351e-5,2.21902445854814e-8,0.0036785961805071692,-2.5062054156622615e-5,2.228816628316454e-8,0.003678683593958781,-2.5161266743696174e-5,2.24697994986493e-8,0.003678839813725382,-2.528068865976697e-5,2.268772363615898e-8,0.0036790686589521994,-2.5390721102639514e-5,2.28873548323344e-8,0.0036793636633603534,-2.5460766843175067e-5,2.301239734670839e-8,0.0036797070625050198,-2.5462938404665122e-5,2.3011746096490555e-8,0.0036800695540226,-2.5377224112577794e-5,2.2849032250097418e-8,0.0036804123072578534,-2.5198284596178738e-5,2.251506689142407e-8,0.003680693157902537,-2.4942526484895308E-05,2.2040681988927512e-8,0.003680878158399637,-2.4651854910035483e-5,2.150341156448466e-8,0.0036809565821238504,-2.4388619881055524e-5,2.101802531841774e-8,0.003680952179938686,-2.4218042502926116e-5,2.0704157135192892e-8,0.003680920788736872,-2.418258152607271e-5,2.063924897056901e-8,0.0036809307429876595,-2.428216159309294e-5,2.082238656290625e-8,0.0036810354111426534,-2.4473729304710523e-5,2.1173726237950885e-8,0.003681253971997315,-2.4690578711906134e-5,2.1570233191745147e-8,0.0036815697161010955,-2.4868511669727512e-5,2.1893875946001677e-8,0.00368194233743989,-2.4964629040890916e-5,2.2066135288962184e-8,0.003682324212490332,-2.496342898745231e-5,2.2059068741709067e-8,0.0036826731166814996,-2.4873277705717296e-5,2.1888636709994033e-8,0.0036829591588462465,-2.4718729832185195e-5,2.1600441398920033e-8,0.003683167023967205,-2.4532594782350245e-5,2.1255080252265367e-8,0.0036832954099022645,-2.4349370543578626e-5,2.0916081024659693e-8,0.0036833550335923348,-2.4200218198591833e-5,2.0640692551785886e-8,0.0036833658565634006,-2.410924176009306e-5,2.047307011231562e-8,0.00368335380237866,-2.4090944865297163e-5,2.0439619325797367e-8,0.0036833471475006176,-2.4148859135246296e-5,2.054650508300012e-8,0.003683372810946003,-2.4275435196936255e-5,2.07794955328708e-8,0.003683452919780664,-2.445325289733475e-5,2.110623168930102e-8,0.003683602046501696,-2.465734339942249e-5,2.1480525304410102e-8,0.003683825298735307,-2.4858264023953814e-5,2.184802813428788e-8,0.0036841172991974114,-2.5025683730293013e-5,2.2152849985111426e-8,0.0036844620856947494,-2.5132324086251992e-5,2.234486049199623e-8,0.003684833943600737,-2.5158192450841574e-5,2.2387540094785343e-8,0.0036851994497372497,-2.5095227283073492e-5,2.226654684123872e-8,0.003685521611166236,-2.495214102688181e-5,2.199854944989616e-8,0.0036857671361551635,-2.4758044853092278e-5,2.1637716007903936e-8,0.0036859169029455434,-2.4561976529873085E-05,2.127462522493109e-8,0.0036859772914223593,-2.44246555966739e-5,2.102094321803886e-8,0.0036859863765741317,-2.4400569866343113e-5,2.0976459090247287e-8,0.0036860072100742725,-2.451503865503077e-5,2.1187033549314085e-8,0.0036861059724534228,-2.4748908547852973e-5,2.1616674172997784e-8,0.003686324629094954,-2.504318975211854e-5,2.2156284356747038e-8,0.003686664486266351,-2.5323155005089623e-5,2.2668137696737203e-8,0.0036870898114569946,-2.5527244493044108e-5,2.303909962374833e-8,0.003687546149128421,-2.5624766795011134e-5,2.3213143420424893e-8,0.00368798044731879,-2.5617338941137874e-5,2.3193859568407812e-8,0.0036883539373483384,-2.5529670793774248e-5,2.3027315403045705e-8,0.0036886463867155743,-2.5397760191839542e-5,2.2780188658898496e-8,0.003688854693802478,-2.5259351496340612e-5,2.2522155643143783e-8,0.0036889891708466456,-2.5147850491353615e-5,2.231471497123031e-8,0.0036890695533378795,-2.5088946206269493e-5,2.2205016955307542e-8,0.0036891214131626097,-2.5098827308126288e-5,2.222261384963983e-8,0.0036891729137179556,-2.518329063537529e-5,2.2377841591020216e-8,0.0036892516769625227,-2.5337494371236543e-5,2.2661397865423784e-8,0.0036893816097385863,-2.554645169281843e-5,2.3045303929869593e-8,0.0036895797925711486,-2.578657672893664e-5,2.3485809567516533e-8,0.0036898538468566012,-2.6028463573269312e-5,2.392855402626147e-8,0.003690200266554174,-2.624073990187162e-5,2.431568410168666e-8,0.0036906040827712275,-2.6394652975592825e-5,2.4594312535909952e-8,0.0036910401320671615,-2.646892578198544e-5,2.4725481010514338e-8,0.0036914760290490357,-2.6454258869800837e-5,2.469246723504824e-8,0.0036918767628710283,-2.6356872170899155e-5,2.450728188668473e-8,0.003692210885339878,-2.6200462392483775e-5,2.4214168577148188e-8,0.0036924581686777775,-2.602543095805307e-5,2.388800430693621e-8,0.003692617733382483,-2.5883626505455566e-5,2.362443103435925e-8,0.0036927139953002153,-2.58271594885082e-5,2.3519158494680385e-8,0.0036927961075991973,-2.5891978747853797e-5,2.3637775773338626e-8,0.0036929267649546634,-2.6081277797364088e-5,2.398538810384016e-8,0.0036931609455419815,-2.6358161739026842e-5,2.4493348826303326e-8,0.0036935234174346435,-2.665549718890737e-5,2.5037572254635175e-8,0.003693998101314756,-2.6900775812927172e-5,2.5484402286752192e-8,0.0036945360219985063,-2.7042710855034788e-5,2.5739608547857825e-8,0.0036950760446270714,-2.7065371302568437e-5,2.57743737612283e-8,0.003695565661023816,-2.6985691375977797e-5,2.5620578062499176e-8,0.00369597274607554,-2.684069713273219e-5,2.5347080120574853e-8,0.003696287324292012,-2.667345195030066e-5,2.5033662232297028e-8,0.0036965173262114045,-2.6523010525635966e-5,2.4752456189175374e-8,0.0036966825886261623,-2.6419227346433036e-5,2.455840471365584e-8,0.003696809522700842,-2.6380986372349695e-5,2.4486064306819182e-8,0.0036969270936339123,-2.6416117172469423e-5,2.454950799475654e-8,0.0036970637745599656,-2.6521893503182198e-5,2.4743286277766767e-8,0.0036972449046433265,-2.6685737210574117e-5,2.504376987032764e-8,0.0036974900334030988,-2.6886274245188e-5,2.541115595707101e-8,0.003697810176347896,-2.7095219934198905e-5,2.5793006605434385e-8,0.0036982053804941253,-2.728057365079077e-5,2.613018555159297e-8,0.003698663356525077,-2.7411217452902692e-5,2.6365357275177697e-8,0.0036991599725369096,-2.7462484334453646e-5,2.6453253365305067e-8,0.0036996621606698965,-2.7421763096580724e-5,2.6370997112730044e-8,0.00370013328491362,-2.729281033021235e-5,2.6126029195423446e-8,0.0037005403211717563,-2.7097411250876837e-5,2.5759105766375958e-8,0.0037008616198824073,-2.6873458549975153e-5,2.534063229254157e-8,0.0037010937154705065,-2.6669054268328128e-5,2.4959623377691335e-8,0.0037012553893138378,-2.6532771677849146e-5,2.470560529795536e-8,0.003701386925754609,-2.6501162935385394e-5,2.464554459140342e-8,0.0037015427319560873,-2.65862451416973e-5,2.4800881221936585e-8,0.0037017770840136652,-2.6767600671031702e-5,2.5133175185444305e-8,0.003702126226889177,-2.6994365678892358e-5,2.5547991564237983e-8,0.003702594034496086,-2.7199503702774686e-5,2.5921361512321817e-8,0.003703149146929241,-2.7322124217394617e-5,2.6140992193989e-8,0.0037037362260185593,-2.732763109091641e-5,2.6143421934714618e-8,0.003704295665546802,-2.721607872496196e-5,2.5929372282700263e-8,0.0037047816795343263,-2.7016566312550213e-5,2.5553267597604028e-8,0.003705171555362991,-2.6773370862474705e-5,2.509745527697299e-8,0.003705465407158616,-2.6531809403462105e-5,2.4645955131628586e-8,0.0037056802842188206,-2.6328749558537203e-5,2.4266888380384873e-8,0.003705842962671197,-2.6188473724591307e-5,2.4004889346311846e-8,0.0037059839388316924,-2.6122241314280676e-5,2.3880388417301026e-8,0.0037061332623507665,-2.6129556128220352e-5,2.3892034999399584e-8,0.003706317770909461,-2.6199800840217618e-5,2.4019772205175913e-8,0.0037065589557418377,-2.6313745875571078e-5,2.4227665838511646e-8,0.003706870840343872,-2.644512355745995e-5,2.4466855843329514e-8,0.003707257688373799,-2.6562856852741105e-5,2.4679720562225874e-8,0.003707711915905993,-2.6634592082949376e-5,2.4806441695489335e-8,0.003708213120455237,-2.663186058357122e-5,2.479455939697902e-8,0.0037087294412449907,-2.6536451255494063e-5,2.4610743259413702e-8,0.003709222214515911,-2.6346543661015368e-5,2.4252099963225886e-8,0.0037096538724641567,-2.6080329046030495e-5,2.3752812169666824e-8,0.003709997524539029,-2.577492734907529e-5,2.3182040780489726e-8,0.0037102454227998637,-2.5479672505274922e-5,2.263137359655951e-8,0.0037104132986381126,-2.524481178501241e-5,2.219379012489409e-8,0.0037105385684950997,-2.5108446768208215e-5,2.1939440481081604e-8,0.003710672201591465,-2.5085405601484373e-5,2.1895121723236657e-8,0.0037108659074224157,-2.5161493732589e-5,2.2033822651041703e-8,0.0037111577917986476,-2.5295461489293446e-5,2.2278586025456243e-8,0.0037115606470070174,-2.542917933201141e-5,2.2521498478199035e-8,0.0037120571654388006,-2.5503837048517596e-5,2.2653719725711947e-8,0.003712604656330799,-2.5477070966070233e-5,2.259714366597435e-8,0.0037131481138471807,-2.5334611035146297e-5,2.232587717598007e-8,0.0037136365417578987,-2.509202414715311e-5,2.1869364929837613e-8,0.0037140360486028587,-2.4786787143587042e-5,2.1297584304020552e-8,0.0037143354755474435,-2.4465255139622436e-5,2.069678054959071e-8,0.003714544467024974,-2.4170306202152613e-5,2.0146497047207724e-8,0.003714687020580643,-2.393338515246342e-5,1.9704838425664365e-8,0.0037147941125955726,-2.3771532108372094e-5,1.9403042636394202e-8,0.0037148976705766875,-2.3687944947412868e-5,1.924662719845783e-8,0.0037150265340877417,-2.367419895466894e-5,1.9219583030809972e-8,0.003715204015883382,-2.37127525260934e-5,1.928905809182854e-8,0.0037154462776015544,-2.377915294824585e-5,1.9409457545578542e-8,0.0037157608120527794,-2.384409788521174e-5,1.9526274662557453e-8,0.0037161447586631148,-2.387597552240848e-5,1.9580823667812967e-8,0.003716583383528966,-2.384460787773986e-5,1.9517213785745727e-8,0.0037170496879362957,-2.372665990986959e-5,1.929240272445178e-8,0.003717506623292282,-2.3512366057301022e-5,1.8888665065491976e-8,0.003717913280569818,-2.3211764390501293e-5,1.832510925529357e-8,0.0037182350231976446,-2.2857213753819283e-5,1.766226069432184e-8,0.0037184549931704456,-2.2499015996168416e-5,1.69938183046161e-8,0.0037185822522199053,-2.2193400184984013e-5,1.642422937600723e-8,0.0037186520125712316,-2.1986125984029035e-5,1.6038180871423233e-8,0.0037187166025020217,-2.1897980951190913e-5,1.5873715102312037e-8,0.0037188302313518797,-2.1918094714878887e-5,1.5909975868926e-8,0.0037190333250862505,-2.200738683831528e-5,1.6073822676410523e-8,0.003719341736464505,-2.211021106517147e-5,1.6261616807192078e-8,0.003719743573072058,-2.216979978548509e-5,1.636795341593824e-8,0.0037202036700935363,-2.214280148765948e-5,1.631260873446929e-8,0.0037206737661205037,-2.2009147434640982e-5,1.6058763393847896e-8,0.0037211051970497504,-2.1775071201819367e-5,1.5618506174731158e-8,0.003721460458739193,-2.1469112666244478e-5,1.5045318183279198e-8,0.0037217205729197273,-2.113297412457324e-5,1.4417004888548999e-8,0.0037218868002361744,-2.081050254733132e-5,1.3815164650950308e-8,0.0037219772900882707,-2.0538209327698315e-5,1.3307554545741322e-8,0.003722020789722907,-2.033950176989565e-5,1.2937408851043707e-8,0.00372204987109083,-2.022296133826621e-5,1.2720322617019088e-8,0.0037220953992123298,-2.018363795951063e-5,1.2646747001885697e-8,0.0037221828649194387,-2.0205878245740093e-5,1.26873047206367e-8,0.0037223303313133104,-2.02664502220618e-5,1.2798609312135926e-8,0.003722547317866394,-2.0337344535813425e-5,1.292845264550573e-8,0.0037228339677174557,-2.0388317730423293e-5,1.3020518278734751e-8,0.003723180190839855,-2.0389705420379754e-5,1.3019629712220013e-8,0.0037235650128087322,-2.0316187736311858e-5,1.2878799919059847e-8,0.003723957027956693,-2.0152005616268402e-5,1.256897561523051e-8,0.003724317479797812,-1.9897320189773163e-5,1.2090860847159705e-8,0.0037246074892309214,-1.9573777293026863e-5,1.1485194896322013e-8,0.0037247994563825186,-1.922551672634567e-5,1.0834500081040653e-8,0.003724889413287953,-1.8911635022200557e-5,1.024891375539621e-8,0.003724903860006442,-1.8689419208005423e-5,9.834890386340725e-9,0.0037248950039658825,-1.8593936835862856e-5,9.657227552497414e-9,0.0037249241617011717,-1.8624070004157957e-5,9.713213497022367e-9,0.0037250406734058938,-1.874272347827841e-5,9.933231932671707e-9,0.003725266442256563,-1.889068343187049e-5,1.0206743013046786e-8,0.003725591957814072,-1.900639132302381e-5,1.0419161121580107e-8,0.0037259828367480837,-1.9042941445738243e-5,1.0483445088589561e-8,0.0037263919105630754,-1.8977532859680972e-5,1.0357575288150131e-8,0.0037267718541946424,-1.8812970780198845e-5,1.004722544629047e-8,0.0037270852122032435,-1.857321752592454e-5,9.597390829866145e-9,0.0037273105106150057,-1.829556589372417e-5,9.077766944676528e-9,0.0037274442822466383,-1.8021665816886436e-5,8.566019197106112e-9,0.003727499446205275,-1.7789180452793088e-5,8.132238797880786e-9,0.0037275009651962054,-1.762549477405663e-5,7.827238632585327e-9,0.003727480107433613,-1.7544324987777415e-5,7.676278027300595e-9,0.003727468693735596,-1.7545252223564655e-5,7.678260381961283e-9,0.0037274943796830745,-1.7615546114334517e-5,7.809198521585769e-9,0.0037275775048591624,-1.773333185341448e-5,8.028155894012631e-9,0.003727729461688348,-1.7871140037744037e-5,8.283855986333845e-9,0.0037279521045785026,-1.7999224672154963e-5,8.520831022886832e-9,0.0037282376812551145,-1.80885880022614e-5,8.685033780576021e-9,0.0037285690243083164,-1.8114038809190196e-5,8.729555432946514e-9,0.003728920113641478,-1.8057767593507887e-5,8.621345067804234e-9,0.0037292576952676747,-1.7913835381609194e-5,8.349624258909386e-9,0.0037295452618239825,-1.769325645659619e-5,7.935342096310923e-9,0.003729750685610381,-1.742782377238727e-5,7.438195143004906e-9,0.0037298573864923707,-1.7169070621178025e-5,6.954523489002591e-9,0.0037298756982351187,-1.6978346810287705e-5,6.598664526266755e-9,0.003729847357057938,-1.690734999300974e-5,6.466620041821976e-9,0.0037298361456615196,-1.6976011363689884e-5,6.594939654273422e-9,0.0037299052651525726,-1.716065001020904e-5,6.938856540972064e-9,0.003730092529452638,-1.7401587629302746e-5,7.386701385086378e-9,0.0037303974273488636,-1.7626624987369516e-5,7.803782958842304e-9,0.0037307856005640463,-1.7776600142330956e-5,8.080023637204767e-9,0.0037312048557727917,-1.782075236454326e-5,8.158500185359126e-9,0.0037316025984929033,-1.7758874434021704e-5,8.039315141398938e-9,0.003731938096263313,-1.7614499874872118e-5,7.76676690099454e-9,0.0037321881752387263,-1.7424800949631686e-5,7.410439462798648e-9,0.003732347832913049,-1.7230987288991442e-5,7.047285654047261e-9,0.003732427807332729,-1.7070752855394434e-5,6.747564430999931e-9,0.0037324505819447216,-1.6972951318685194e-5,6.564937105062063e-9,0.0037324456392299724,-1.695435236964585e-5,6.530439072511247e-9,0.003732444524964121,-1.701842445824136e-5,6.650238763256346e-9,0.0037324762624747466,-1.7155994000405556e-5,6.906918712508451e-9,0.003732563584080442,-1.734745000939961e-5,7.263649467205659e-9,0.003732720347862681,-1.7566052220995436e-5,7.670403442963853e-9,0.003732950305259306,-1.7781762662003478e-5,8.071102483695934e-9,0.003733247046701793,-1.796503766997897e-5,8.410658713739836e-9,0.003733594793483443,-1.8090329320746774e-5,8.641476568061361e-9,0.003733969829689655,-1.8139333953936072e-5,8.729522514097567e-9,0.0037343425695851745,-1.8104141430392796e-5,8.660245887318678e-9,0.003734680606263795,-1.7990430125363365e-5,8.444572497323546e-9,0.003734953553838489,-1.782034694147802e-5,8.124239420623847e-9,0.003735140403146867,-1.7633507226156773e-5,7.77352976095781e-9,0.003735238848109435,-1.748329459267977e-5,7.4921953391734e-9,0.003735273477531778,-1.742550583944127e-5,7.384151459049214e-9,0.0037352966592492363,-1.749922907883764e-5,7.52182191537506e-9,0.0037353759026406193,-1.7706708770883272e-5,7.908742842178216e-9,0.003735568740471046,-1.8005201420696946e-5,8.464598259716825e-9,0.003735897522340255,-1.8320262806021934e-5,9.050180658370451e-9,0.0037363400742964556,-1.8575326378219387e-5,9.522633384422312e-9,0.0037368415776035976,-1.8720037863678725e-5,9.788290822532997e-9,0.0037373380712256233,-1.874245668787921e-5,9.825363797506921e-9,0.0037377771555825133,-1.8663787364666786e-5,9.673974471483982e-9,0.0037381282616453346,-1.852433494079792e-5,9.409797508911304e-9,0.0037383834002827367,-1.8369540890756483e-5,9.117901324121186e-9,0.003738552757404369,-1.824019873721411e-5,8.874473223547163e-9,0.003738658809558917,-1.8167100505264942e-5,8.736870253285727e-9,0.003738730844138739,-1.8168783218842287e-5,8.739462794445459e-9,0.0037388003329487827,-1.8251037280980622e-5,8.892751862877826e-9,0.00373889698628947,-1.8407514500518183e-5,9.18453775255549e-9,0.0037390453516148825,-1.8621272393550024e-5,9.582855243041857e-9,0.0037392620029640536,-1.886722395403692e-5,1.0040612490717398e-8,0.0037395535311001136,-1.9115464924135617e-5,1.0501851379362463e-8,0.0037399156645016815,-1.9335279841595094e-5,1.0909231443508442e-8,0.003740333727271666,-1.949936503986908e-5,1.1211879486748627e-8,0.0037407843754003085,-1.9587781487259298e-5,1.1372730485053469e-8,0.00374123843967038,-1.9591286559904284e-5,1.1374739407503882e-8,0.003741664694071747,-1.951376722599113e-5,1.1225445494692067e-8,0.003742034426709988,-1.9373566096839915e-5,1.0959456056172562e-8,0.0037423268826330203,-1.9203348136011737e-5,1.0638143074060602e-8,0.0037425355319994974,-1.9047512251718933e-5,1.0344682395521544e-8,0.003742674153842459,-1.8955552707843683e-5,1.0171510875620036e-8,0.003742780075672932,-1.897020365172007e-5,1.0198117014107015e-8,0.003742910352084255,-1.91115247419747e-5,1.0461391980825988e-8,0.003743127236642866,-1.936274082819314e-5,1.0929372494595087e-8,0.0037434748877366456,-1.966787992300605e-5,1.1497025901544866e-8,0.0037439582292228346,-1.994830716850865e-5,1.2017239417133448e-8,0.0037445380916303205,-2.0132874757777342e-5,1.235715857869903e-8,0.003745147304945264,-2.018475709919423e-5,1.24483095139559e-8,0.003745717536123864,-2.0110039024257403e-5,1.2302602979977455e-8,0.0037462009957385913,-1.994718213155144e-5,1.1992528512288664e-8,0.003746578533952196,-1.9748112336383324e-5,1.1615631205305184e-8,0.0037468562058775336,-1.9561943110626034e-5,1.1263957057301948e-8,0.0037470568320752493,-1.942580720910747e-5,1.1006894832462288e-8,0.003747211591296955,-1.936188801722068e-5,1.0885690830408487e-8,0.0037473537091404366,-1.937798694893093e-5,1.0914592901045096e-8,0.00374751426169476,-1.9469411529319156e-5,1.1084443738119213e-8,0.003747719306811906,-1.9621107982094123e-5,1.1366715498674678e-8,0.003747987653823677,-1.98098865025236e-5,1.171772196127629e-8,0.0037483289877986337,-2.00069900657524e-5,1.2083476553019989e-8,0.0037487424409848157,-2.018133651430223e-5,1.2405790481457967e-8,0.003749216049729212,-2.0303576953806943e-5,1.262985740223278e-8,0.0037497276616432853,-2.0350656359240593e-5,1.2712744009555985e-8,0.0037502476097356495,-2.0310161881186038e-5,1.263147987969798e-8,0.0037507430698388022,-2.01836052339569e-5,1.238917732256602e-8,0.003751183640813286,-1.9987806416820744e-5,1.201762072309364e-8,0.003751547358372743,-1.975377558398845e-5,1.1575159589463945e-8,0.0037518262278624856,-1.9522888966651756e-5,1.1139487350292194e-8,0.003752030366449994,-1.9340357022812065e-5,1.0795307888503861e-8,0.003752189575101569,-1.9246075080711368e-5,1.0617115929008991e-8,0.00375235065514588,-1.926362082860626e-5,1.0648597353873207e-8,0.00375256874733072,-1.9389760757096198e-5,1.0883103913087454e-8,0.0037528923589819,-1.95889336244771e-5,1.1253515334163685e-8,0.003753345377221318,-1.9798233653190108e-5,1.1641722277737352e-8,0.003753914085684261,-1.9945444226348306e-5,1.1912441558529761e-8,0.0037545482183929373,-1.997468342657704e-5,1.1961217063101045e-8,0.003755178268860511,-1.9866841003214947e-5,1.1752664664935419e-8,0.003755740498054235,-1.9643572837075e-5,1.132790926630942e-8,0.003756196287862252,-1.9354386897528227e-5,1.078027677361611e-8,0.0037565380292510645,-1.9056473937833167e-5,1.02173374524946e-8,0.003756783287516352,-1.879808625982981e-5,9.729641408606765e-9,0.003756964059188642,-1.8610299848009276e-5,9.375278483928095e-9,0.0037571168822495586,-1.850601029274588e-5,9.178087064121487e-9,0.0037572761536310796,-1.8482743679660896e-5,9.133032553034088e-9,0.003757470458105261,-1.8526444575679007e-5,9.213386299761704e-9,0.003757720726876309,-1.8614862202039136e-5,9.377117285257808e-9,0.0037580391353763576,-1.8720347719301517e-5,9.572164083264661e-9,0.0037584281701537876,-1.88124868526117e-5,9.741392613497707e-9,0.003758879845331222,-1.886115999095588e-5,9.828343171502811e-9,0.003759375547369298,-1.884045521805883e-5,9.784556157303305e-9,0.0037598873171901443,-1.8733336140393533e-5,9.578297218737537e-9,0.0037603812993048536,-1.8536245409891986e-5,9.20316322759362e-9,0.003760823522734917,-1.826223272290799e-5,8.683933253519903e-9,0.0037611872682305502,-1.794102306496649e-5,8.07668074991078e-9,0.003761460322951104,-1.761495849043393e-5,7.461118830695648e-9,0.003761649939215854,-1.7330967802997768e-5,6.925453527388214e-9,0.003761783669047966,-1.7130080930370736e-5,6.546618226195867e-9,0.0037619052215471355,-1.7036850169632218e-5,6.370380696093653e-9,0.0037620655927134623,-1.7051287457088965e-5,6.396265383341771e-9,0.0037623107889809214,-1.7145824206739997e-5,6.571987750426438e-9,0.0037626686506996173,-1.7269316797664524e-5,6.8011328521040325e-9,0.0037631385620556235,-1.7358826009662052e-5,6.965369983083214e-9,0.003763688525936491,-1.735727517214488e-5,6.957620478797519e-9,0.0037642627046168722,-1.7231514285195872e-5,6.7159383377332736e-9,0.003764798192409383,-1.6983144070799588e-5,6.243784790204022e-9,0.003765244475384821,-1.6646684177942917e-5,5.606514320308481e-9,0.003765577041731878,-1.6276113749033035e-5,4.905976489211403e-9,0.0037658001496303955,-1.5926872483978327e-5,4.246574565661419e-9,0.003765940043113608,-1.5641428521669665e-5,3.7080826046676444e-9,0.0037660339883212393,-1.5442580188857785e-5,3.3330932819261697e-9,0.0037661202972565054,-1.533378212849883e-5,3.1277370664346276e-9,0.0037662317987403426,-1.530331931720143e-5,3.0696368494463564e-9,0.00376639269783391,-1.5329353706236113e-5,3.117459743615627e-9,0.0037666175999535394,-1.5384239766858776e-5,3.2190461479142756e-9,0.003766911424015544,-1.5437798596845338e-5,3.3175546155956647e-9,0.0037672694199051165,-1.5460010735471215e-5,3.3565118674225895e-9,0.003767677144880793,-1.5423844881946676e-5,3.285127707090549e-9,0.0037681108405431198,-1.5308808573030386e-5,3.0649759961602738e-9,0.00376853909328297,-1.5105335091860154e-5,2.678249819012819e-9,0.0037689267978603287,-1.4819271966290807e-5,2.1362017496681052e-9,0.0037692419464796334,-1.4474679157593949e-5,1.4843891964449467e-9,0.003769464408607395,-1.4112525842013234e-5,8.001758661740843e-10,0.0037695940570376656,-1.3783562552421724e-5,1.7924187200268179e-10,0.003769654513644912,-1.3535943066435279e-5,-2.877953882684514e-10,0.003769689655352273,-1.3401132828683478e-5,-5.419454827697908e-10,0.0037697528877103145,-1.3383352936094304e-5,-5.756719343471206e-10,0.0037698924838657317,-1.3456848768446041e-5,-4.379133873754168e-10,0.0037701379529232566,-1.3572133855236433e-5,-2.2219011005250034e-10,0.0037704917152187136,-1.36690613658659e-5,-4.190341608565942e-11,0.003770928286669406,-1.3692704936665648e-5,-4.184426881656405e-13,0.003771400984222682,-1.360764722503169e-5,-1.6419689144365008e-10,0.0037718542846100875,-1.3406801484918508e-5,-5.462400593197952e-10,0.0037722383742051645,-1.3112239502991186e-5,-1.1045888736203505e-9,0.0037725215280944423,-1.2767820548965187e-5,-1.756277314541145e-9,0.003772696517123917,-1.2426225277517897e-5,-2.4018373226817705e-9,0.003772779492258509,-1.2135018031827889e-5,-2.9516198186066968e-9,0.0037728027992608884,-1.1926333275018554e-5,-3.345233937647147e-9,0.003772805248437262,-1.1812618336310583e-5,-3.559509949169215e-9,0.0037728234022769208,-1.1787985186950563e-5,-3.605855082757096e-9,0.003772885871274732,-1.1832888997680663e-5,-3.5213519611769673e-9,0.0037730107830056705,-1.1919671821302818e-5,-3.3582733409701644e-9,0.0037732054834411486,-1.201738319949041e-5,-3.1750111515168823e-9,0.0037734672788120238,-1.2095393134790393e-5,-3.029308059715573e-9,0.0037737843623683997,-1.2126141515841897e-5,-2.9731078275435696e-9,0.0037741366633792803,-1.2087713479066177e-5,-3.0477005332985616e-9,0.0037744969434948855,-1.1966854684521575e-5,-3.2780044851181107e-9,0.0037748329505799573,-1.1762652811277419e-5,-3.665584516120736e-9,0.0037751117090649177,-1.1490296257088035e-5,-4.1815534879312055e-9,0.003775306671071242,-1.1183066734645489e-5,-4.762857357367671e-9,0.0037754069823609203,-1.0889694911885241e-5,-5.3173572358538974e-9,0.0037754256798606545,-1.0664706834353456e-5,-5.742147928915882e-9,0.003775401726689244,-1.0552455653838138e-5,-5.953742048116789e-9,0.003775391866454253,-1.0570337492320954e-5,-5.9196954740658214E-09,0.0037754533346908404,-1.069965404964022e-5,-5.6757115830877735e-9,0.0037756245234761812,-1.0889973474384802e-5,-5.3172574611983255e-9,0.0037759125769722722,-1.1075505491388981e-5,-4.9685789284492975e-9,0.0037762927653174714,-1.119569145297422e-5,-4.743856103245313e-9,0.0037767180710236953,-1.1211551456236634e-5,-4.716422581730153e-9,0.0037771336262513635,-1.1113289439129748e-5,-4.904484620551893e-9,0.0037774906920141566,-1.0919093669290008e-5,-5.273435637376515e-9,0.0037777568305629415,-1.0667562119560446e-5,-5.750186818487831e-9,0.0037779208867569462,-1.0406866195721732e-5,-6.243650787702565e-9,0.003777992767016646,-1.018352746019933e-5,-6.665958168127169e-9,0.0037779989182269913,-1.0033140590648544e-5,-6.949989656900959e-9,0.0037779751011073896,-9.97469904417571e-6,-7.060078675057539e-9,0.0037779584786724603,-1.0009194292538516e-5,-6.994608417451776e-9,0.0037779809048557934,-1.0121958368840203e-5,-6.781516708789922e-9,0.0037780645720082466,-1.0287344353781977e-5,-6.469394097223917e-9,0.003778220234630747,-1.047413085648688e-5,-6.1172540917545026e-9,0.003778447456985994,-1.0650388607779883e-5,-5.785368244403539e-9,0.003778735979536752,-1.078723859059365e-5,-5.528224279977244e-9,0.0037790674522738318,-1.086163687447547e-5,-5.3893085312301e-9,0.0037794172242492487,-1.0858682366088469e-5,-5.396741791551607e-9,0.003779756331525049,-1.0773944571270184e-5,-5.55883105247937e-9,0.0037800542820276006,-1.0616049404699768e-5,-5.859127603922072e-9,0.0037802835715694304,-1.0409041615552987e-5,-6.251958361016585e-9,0.0037804265587483227,-1.019284428731572e-5,-6.661632999833887e-9,0.0037804839392265306,-1.0019107510829138e-5,-6.990419724209726e-9,0.003780481632655872,-9.940027335123063e-6,-7.139785874260027e-9,0.003780470551458204,-9.990760852975178e-6,-7.043636122099973e-9,0.0037805145003715693,-1.0171924492472818e-5,-6.701260118724001e-9,0.0037806679024364473,-1.0443026877787217e-5,-6.189548974586507e-9,0.003780953749669685,-1.0734040814978671e-5,-5.640990002948598e-9,0.003781354446672115,-1.0970848138577473e-5,-5.195569712053512e-9,0.0037818202123343133,-1.1100878236964057e-5,-4.952398320323635e-9,0.0037822885451625726,-1.1106690075405191e-5,-4.9441331682067115e-9,0.0037827037918562686,-1.1004732221553931e-5,-5.139393429677356e-9,0.003783029580921028,-1.083450210581651e-5,-5.463297256101165e-9,0.0037832528926456414,-1.0645014240624529e-5,-5.8230619263333884E-09,0.003783382008619057,-1.0483107839539345e-5,-6.130107278142606e-9,0.0037834411521074293,-1.0385293670330903e-5,-6.315462602182711e-9,0.003783463866855065,-1.0373167422302901e-5,-6.338434431871988e-9,0.003783486346677699,-1.0451924135314523e-5,-6.1894075059543604e-9,0.0037835415059761126,-1.0611498941792025e-5,-5.887657773983901e-9,0.0037836543994592214,-1.0829747870240204e-5,-5.475280541301254e-9,0.0037838393893894684,-1.1076912436351042e-5,-5.00868499477498e-9,0.0037840991940355684,-1.1320547095963303e-5,-4.549244861849569e-9,0.0037844256115939245,-1.1530111692398709e-5,-4.154636535393267e-9,0.003784801380528869,-1.168067724546158e-5,-3.871892905681978e-9,0.0037852026131201958,-1.1755664641185652e-5,-3.732277813199833e-9,0.0037856015155439153,-1.1748839795853997e-5,-3.747515652641209e-9,0.003785969367532291,-1.166580442859177e-5,-3.906921033511718e-9,0.00378628001510182,-1.1525110745466617e-5,-4.175235589964458e-9,0.003786514449205436,-1.1358637205725354e-5,-4.491921267897067e-9,0.0037866667919770496,-1.1209875032777431e-5,-4.774493370527981e-9,0.0037867507548969247,-1.1128029735137191e-5,-4.929817589830909e-9,0.0037868036489551913,-1.1156279232741838e-5,-4.8764159931144795e-9,0.0037868831215570773,-1.1315159538627571e-5,-4.575860551166065e-9,0.0037870524179700496,-1.1587432273622035e-5,-4.061235434398263e-9,0.0037873563096598654,-1.1915434657407038e-5,-3.441960618087722e-9,0.0037877994416602927,-1.2218268853877623e-5,-2.871179678081107e-9,0.00378834159065941,-1.2422814649923206e-5,-2.4871089224278254e-9,0.0037889140278449785,-1.249102829822317e-5,-2.361451809750297e-9,0.0037894464319104034,-1.2428832387716597e-5,-2.4826372919214795e-9,0.003789888854569995,-1.2276000741283246e-5,-2.775033513542293e-9,0.003790220598166225,-1.2087372015433666e-5,-3.13458685349092e-9,0.003790447689810322,-1.1915907774812648e-5,-3.4609407828149515e-9,0.0037905948035725874,-1.1802236082212254e-5,-3.6772233896817644e-9,0.003790696401172688,-1.1770385986698964e-5,-3.73808626895047e-9,0.003790789335206898,-1.1827575732369238e-5,-3.6300747743801807e-9,0.003790907337032187,-1.1966138926110403e-5,-3.3679632150517645e-9,0.0037910770946163676,-1.2166553303929558e-5,-2.9889909055131355e-9,0.0037913156361942314,-1.2401135693384962e-5,-2.545809144827838e-9,0.0037916289168516333,-1.263815898674036e-5,-2.0986190900712304e-9,0.0037920116463947694,-1.2846175399722612e-5,-1.7069510131467538e-9,0.0037924484233062025,-1.299819527970367e-5,-1.4217770124520617e-9,0.0037929160329965078,-1.3075228465631499e-5,-1.2788768709480869e-9,0.0037933865555892653,-1.3068858631174979e-5,-1.294030013439374e-9,0.0037938309814365434,-1.2982776331081918e-5,-1.4601266957738199e-9,0.0037942231481280977,-1.283322743822306e-5,-1.7462770627408988e-9,0.003794543866539171,-1.2648304256008901e-5,-2.0991058430070644e-9,0.003794785242433129,-1.2465858940810928e-5,-2.4467144889246194e-9,0.0037949550625008244,-1.232927438422763e-5,-2.7067816859225326e-9,0.003795080187817642,-1.2279927284374798e-5,-2.8009626097236014e-9,0.0037952065161867134,-1.2345871523227187e-5,-2.6763892980301933e-9,0.0037953921373555235,-1.2528542983790664e-5,-2.3307936469979733e-9,0.0037956913857025054,-1.2793157015980988e-5,-1.8305356927816436e-9,0.003796132776286854,-1.3071563213552118e-5,-1.3050406169510527e-9,0.0037967017325761278,-1.328280143626571e-5,-9.077926254452141e-10,0.0037973411548898497,-1.3364516232244082e-5,-7.568234874396928e-10,0.0037979727650269374,-1.3297561018064426e-5,-8.881042448926196e-10,0.003798527090663047,-1.3109356495992466e-5,-1.2492122368724608e-9,0.003798964917021712,-1.28570520619648e-5,-1.7313517826797332e-9,0.0037992820034057637,-1.2603783737617608e-5,-2.2145093402545987e-9,0.003799500926082306,-1.240063635168012e-5,-2.6017407417391375e-9,0.0037996585584883936,-1.2278587025970907e-5,-2.8344302677579545e-9,0.0037997952173949366,-1.2248205620853774e-5,-2.892780987975255e-9,0.0037999474748775944,-1.2303191954665917e-5,-2.789037696090718e-9,0.003800144171209063,-1.2424890429828608e-5,-2.5588855394347242e-9,0.0038004044225855666,-1.2586549203308632e-5,-2.2533402981175947e-9,0.003800736709459013,-1.2757180681021012e-5,-1.9313801867040904e-9,0.0038011386726849684,-1.2905234943333781e-5,-1.6529274004774604e-9,0.0038015976307220777,-1.300228941643676e-5,-1.4718298071475957e-9,0.0038020920655212837,-1.3026745702081325e-5,-1.4288825387251392e-9,0.0038025942999659027,-1.2967137471847075e-5,-1.5456250913598982e-9,0.0038030742779153713,-1.2824453504739554e-5,-1.8199956009474816e-9,0.0038035040835843223,-1.2613005619355985e-5,-2.224696148359336e-9,0.003803862725819495,-1.2359515273662385e-5,-2.7088896073266286e-9,0.0038041406058219682,-1.210021971862752e-5,-3.203654961905564e-9,0.003804343039903815,-1.187601536262798e-5,-3.6312222314006306e-9,0.0038044921992625045,-1.172572264151848e-5,-3.9178384073525195e-9,0.00380462650870891,-1.1677577510893996e-5,-4.010014190249887e-9,0.0038047960105914956,-1.1739750231113836e-5,-3.892553967922982e-9,0.0038050522524015824,-1.1892359741202971e-5,-3.603641811340095e-9,0.0038054328722651374,-1.2085474055587181e-5,-3.238495369877979e-9,0.003805944893983198,-1.224821847258572e-5,-2.931950879082715e-9,0.003806555314129275,-1.2310374852742212e-5,-2.8173999266934114e-9,0.003807197680863527,-1.2229146407934576e-5,-2.9759540232212596e-9,0.0038077950074467274,-1.2006673466743497e-5,-3.4031768325958983e-9,0.003808287639007238,-1.1687444632760447e-5,-4.014049779331443e-9,0.003808650970431554,-1.1338022030420527e-5,-4.681632012604156e-9,0.003808896131037573,-1.1022265614456972e-5,-5.284306129734353e-9,0.0038090582406506883,-1.0784417102233183e-5,-5.738002868905132e-9,0.0038091815513970188,-1.0643809594594406e-5,-6.006202185145872e-9,0.003809307974440942,-1.0597903969188504e-5,-6.094047127429888e-9,0.0038094707196667066,-1.062865600428072e-5,-6.036147477861492e-9,0.0038096919065528753,-1.070881560223071e-5,-5.8845641294033734e-9,0.003809982306819115,-1.0806887438420577e-5,-5.699365884995947e-9,0.003810341878982876,-1.0890883083801036e-5,-5.541482188826337e-9,0.003810760558410313,-1.0931470433055232e-5,-5.466698369518253e-9,0.003811219360612792,-1.0905036479831683e-5,-5.5198308461602985e-9,0.003811692191355198,-1.0796853778255012e-5,-5.728734249431048e-9,0.0038121488378866334,-1.0604042188757008e-5,-6.098714331775193e-9,0.0038125593293713445,-1.0337543772812268e-5,-6.608803289335694e-9,0.003812899313522184,-1.0022178567600895e-5,-7.211652084835195e-9,0.003813155569947561,-9.694053505107579e-6,-7.838435889364233e-9,0.003813330410478557,-9.395101236701062e-6,-8.409236512806301e-9,0.0038134436413059824,-9.165292526420089e-6,-8.847896464769259e-9,0.0038135310890633975,-9.033789295919845e-6,-9.098924795496566e-9,0.0038136392405932478,-9.010703935907942e-6,-9.143237881021444e-9,0.0038138161247166904,-9.081404582108e-6,-9.008993457535895e-9,0.003814099382214336,-9.205645720023213e-6,-8.773169562587337e-9,0.0038145038512597245,-9.323767143029389e-6,-8.549656250554983e-9,0.003815012795942145,-9.370894020933878e-6,-8.462137200027408e-9,0.0038155779477628124,-9.29673571143693E-06,-8.606350895718982e-9,0.0038161315938342274,-9.08397255339519e-6,-9.015063906599803e-9,0.0038166080185463146,-8.755923206484596e-6,-9.64348405426532e-9,0.003816965037754244,-8.368207760136484e-6,-1.0385219024877421e-8,0.003817195248806939,-7.988222530295059e-6,-1.1111520776134655e-8,0.0038173229340541176,-7.673167559394442e-6,-1.1713278449963451e-8,0.0038173910001939285,-7.456361956860252e-6,-1.212711923818663e-8,0.0038174460930694254,-7.344703089557365e-6,-1.234016488954878e-8,0.0038175278039535875,-7.323953104584782e-6,-1.2379836417372083e-8,0.00381766349450458,-7.3667834734719346E-06,-1.2298441630227018e-8,0.003817867345920316,-7.44006181186134e-6,-1.2159268639340678e-8,0.003818141527292887,-7.510114938000029e-6,-1.2026573341010378e-8,0.003818477933177015,-7.546220680736763e-6,-1.1958946292781465e-8,0.003818859819405176,-7.523169308927341e-6,-1.2004439996582582e-8,0.0038192634063506886,-7.4236603910782554e-6,-1.2196000644852678e-8,0.0038196599709800997,-7.2408663983656445e-6,-1.254657877456703e-8,0.003820019070571289,-6.980898470168708e-6,-1.3044426574530458e-8,0.0038203132898458427,-6.664287919255013e-6,-1.3650268900585339e-8,0.0038205242460868597,-6.325154432293589e-6,-1.4298887743684189e-8,0.0038206486164603457,-6.006817141678243e-6,-1.4907506500728048e-8,0.0038207020750147184,-5.75354803338733e-6,-1.5391558345619086e-8,0.0038207189146382747,-5.599839594091006e-6,-1.568521212544733e-8,0.0038207461938191602,-5.560151445206347e-6,-1.5760970711142652e-8,0.00382083315281559,-5.622636517693993e-6,-1.5641635859755003e-8,0.003821018492077559,-5.749455228146534e-6,-1.5399662200224305e-8,0.0038213190875863523,-5.884391306755396e-6,-1.5142562499287096e-8,0.0038217235693960125,-5.966361142703782e-6,-1.4987076158289204e-8,0.0038221931563597426,-5.9456270845393625e-6,-1.502819170366169e-8,0.0038226704818977797,-5.798272337779563e-6,-1.531149257821805e-8,0.0038230947974088572,-5.5340664292121286e-6,-1.581812655956149e-8,0.0038234191450172406,-5.194116998158923e-6,-1.6469310260958883e-8,0.003823623312951976,-4.838285790666961e-6,-1.7150435861376128e-8,0.0038237175482825378,-4.526986941152714e-6,-1.7745939341755873e-8,0.0038237362016777052,-4.3046651521168036e-6,-1.8170927741837015e-8,0.003823725137708133,-4.1908453164058315e-6,-1.8388262055022257e-8,0.003823728754133948,-4.180212251173304e-6,-1.8408322336149633e-8,0.0038237809830387044,-4.2490079943162265e-6,-1.8276693046141356e-8,0.0038239015028385787,-4.363551982793333e-6,-1.8057833412152605e-8,0.003824095946593768,-4.487740674388706e-6,-1.7820751134813358e-8,0.003824358126063857,-4.588281903972761e-6,-1.7629039709488436e-8,0.0038246727136478013,-4.637862217435199e-6,-1.753487003336477e-8,0.003825017627068585,-4.61711276381841e-6,-1.7575256806811815e-8,0.003825366118825118,-4.516259894351772e-6,-1.7768895996776932e-8,0.0038256891088083935,-4.336919177129825e-6,-1.8112701958105336e-8,0.0038259584950023394,-4.093846046758095e-6,-1.8578421203903003e-8,0.00382615197722384,-3.815735474025295e-6,-1.9111084395452904e-8,0.0038262592364493595,-3.543489200549398e-6,-1.963234108463913e-8,0.0038262880282502877,-3.3242349858685718e-6,-2.005195595532296e-8,0.0038262672917729517,-3.200584377536259e-6,-2.0288421016364784e-8,0.0038262439982333636,-3.197318624244381e-6,-2.029444817156697e-8,0.003826272400189211,-3.3105522427901474e-6,-2.0077656752741834e-8,0.0038263982363601133,-3.505059768382942e-6,-1.9705603558615896e-8,0.003826643866615569,-3.7224637285441357e-6,-1.929005491723827e-8,0.003827000550067141,-3.897808129259171e-6,-1.8955276671465806e-8,0.0038274307773840765,-3.9781801362031975e-6,-1.8802446818552187e-8,0.0038278791501668245,-3.936838386802747e-6,-1.8882656721060616e-8,0.003828287511464482,-3.7789936758587133e-6,-1.91858484343628e-8,0.003828609599833306,-3.538639788532877e-6,-1.9646859993872794e-8,0.0038288214789188135,-3.2682591437941436e-6,-2.01651251887211e-8,0.0038289254924217973,-3.0247269062595245e-6,-2.0631684713590868e-8,0.0038289472814131997,-2.855414110560565e-6,-2.0955834728401942e-8,0.0038289273259179074,-2.788188187669053e-6,-2.108429624581785e-8,0.0038289100096469695,-2.827593307999e-6,-2.100851341943847e-8,0.0038289336504991763,-2.957270847791984e-6,-2.0759969177050435e-8,0.0038290239989857604,-3.1466075062872564e-6,-2.0397397678011425e-8,0.0038291919363631554,-3.358735621529485e-6,-1.9991428033826533e-8,0.0038294345412146105,-3.5575484015966483e-6,-1.9611153660184545e-8,0.0038297379974115684,-3.7126062375014595e-6,-1.931477643950267e-8,0.0038300809546290265,-3.8019422327944494e-6,-1.9144289526878937e-8,0.003830437556664625,-3.813471476213471e-6,-1.9122815383613343e-8,0.0038307800423785735,-3.7458453013279217e-6,-1.925296167705247e-8,0.0038310813355700818,-3.6092600087004904e-6,-1.951522260747604e-8,0.003831318289772106,-3.4261620143933223e-6,-1.9866570427390518e-8,0.0038314761727888578,-3.2310651372663914e-6,-2.024078705408704e-8,0.003831554328173983,-3.067891478985199e-6,-2.0553606536838275e-8,0.00383157155253598,-2.9829338185445362e-6,-2.071629056719002e-8,0.0038315679388297268,-3.0127134004410304e-6,-2.0658964500687748e-8,0.0038315991481782685,-3.1692879484097765e-6,-2.0358751628086406e-8,0.0038317214021556132,-3.429727904878386e-6,-1.9859827008455862e-8,0.0038319713636641617,-3.7377031114383478e-6,-1.9270251199510938e-8,0.003832350581616624,-4.0199454376947184e-6,-1.8730381252591345e-8,0.003832823444733821,-4.211063811726861e-6,-1.8365375552540856e-8,0.0038333298168283644,-4.2746105018214276e-6,-1.82449115700899e-8,0.0038338051698647065,-4.211439514210527e-6,-1.8367216874901712e-8,0.003834198761806769,-4.0546278942909735e-6,-1.8668806860764246e-8,0.003834484151940069,-3.856273197654131e-6,-1.9049773936193798e-8,0.0038346613147808603,-3.6724518049993973e-6,-1.940260611015573e-8,0.0038347524550533677,-3.550605899014387e-6,-1.9636361789940677e-8,0.0038347942577808274,-3.52127028068912e-6,-1.969253972068335e-8,0.0038348288874075678,-3.5944825007219915e-6,-1.9551978029488838e-8,0.0038348954913967792,-3.7604912766397788e-6,-1.9233502467926943e-8,0.0038350235792819626,-3.9939514459539405e-6,-1.8785861778853742e-8,0.0038352291926199416,-4.260277158951203e-6,-1.8275496622939114e-8,0.003835514073341714,-4.522523088560736e-6,-1.7773291753942183e-8,0.0038358673369616493,-4.7473979554075516E-06,-1.7343025332758908e-8,0.0038362687210526454,-4.9095732722181525e-6,-1.7033139263666595e-8,0.00383669236799276,-4.99408908331157e-6,-1.6872194841765404e-8,0.003837110381916312,-4.997253315309627e-6,-1.6867206012024054e-8,0.0038374959397268127,-4.926686817006647e-6,-1.7003556999435392e-8,0.003837826168240292,-4.800973729438346e-6,-1.724561889505605e-8,0.0038380852198412027,-4.64897087800454e-6,-1.7538006826362915e-8,0.0038382680055769084,-4.508244405378731e-6,-1.780856000998818e-8,0.0038383845372422826,-4.4213473667315845e-6,-1.7975542156029803e-8,0.0038384635487548452,-4.428331072852901e-6,-1.7962111992879813e-8,0.003838552412999034,-4.554891468079644e-6,-1.7719129920892407e-8,0.003838709449637709,-4.79857611780019e-6,-1.7251579776228027e-8,0.003838986727658379,-5.120008018211622e-6,-1.6635275122453434e-8,0.0038394080255532118,-5.448208410521412e-6,-1.6006525398447498e-8,0.0038399539523913803,-5.703228860578149e-6,-1.5518689679738132e-8,0.003840565607656355,-5.826728491288216e-6,-1.5283563189269852e-8,0.0038411666084649057,-5.803303992373885e-6,-1.5330502316579828e-8,0.003841690669226006,-5.6615015185918996e-6,-1.5604511736937722e-8,0.0038421002535852433,-5.457713918832178e-6,-1.5997183329700725e-8,0.0038423907809453407,-5.254822630049416e-6,-1.6387728287251544e-8,0.003842584084612968,-5.1054363205735894e-6,-1.6675159725889587e-8,0.0038427176193724898,-5.043044755021766e-6,-1.6795248365588627e-8,0.003842834018332966,-5.07989312250766e-6,-1.6724578044920652e-8,0.003842972942410085,-5.209054269116863e-6,-1.6476567824802356e-8,0.0038431654789848045,-5.4086399567047076e-6,-1.60933997922233e-8,0.00384343077449617,-5.647036470412883e-6,-1.563595510392797e-8,0.00384377466746861,-5.888566057774086e-6,-1.5172890552403953e-8,0.003844190175581018,-6.098988812967744e-6,-1.477000694122479e-8,0.0038446595948861905,-6.250255466342545e-6,-1.4481091439427506e-8,0.003845157818995818,-6.324023724179862e-6,-1.4341201409106802e-8,0.0038456562996112983,-6.313615647304992e-6,-1.4362989566193652e-8,0.003846127011783707,-6.224437602563978e-6,-1.4535971378501742e-8,0.003846546039512686,-6.073206328661482e-6,-1.4828020425045514e-8,0.0038468967151338742,-5.886318244836747e-6,-1.518844046641186e-8,0.0038471724104394123,-5.6974965543184785e-6,-1.5552409101517088e-8,0.0038473791476006172,-5.544524492413738e-6,-1.5847232591313744e-8,0.0038475379016441485,-5.464345014145458e-6,-1.6001824499551356e-8,0.0038476855030219305,-5.485613097100651e-6,-1.596112434254084e-8,0.003847871879727775,-5.6186931393504005e-6,-1.5705383768277254e-8,0.0038481508803807564,-5.845389848453475e-6,-1.526986177286528e-8,0.003848563503714657,-6.114171536753636e-6,-1.4753886498476955e-8,0.0038491178160156275,-6.348715588209728e-6,-1.4304328128888127e-8,0.0038497770085141143,-6.472740813382431e-6,-1.4067840281603289e-8,0.0038504673064347367,-6.441502007513236e-6,-1.4130328256331074e-8,0.0038511053849232322,-6.261082594443713e-6,-1.4479857491646347e-8,0.003851629844832358,-5.983091492067725e-6,-1.5016874116127136e-8,0.003852018859395578,-5.680152288202065e-6,-1.5601434430578248e-8,0.0038522882875718684,-5.418923444947771e-6,-1.6105201466218447e-8,0.0038524776393092323,-5.243503092060938e-6,-1.644339124890214e-8,0.0038526343526436983,-5.171293042120779e-6,-1.658266798991624e-8,0.0038528022610099396,-5.196803821713961e-6,-1.6533754071038998e-8,0.003853015203081441,-5.2983925912731155e-6,-1.6338444310091512e-8,0.003853294442269686,-5.444945618229092e-6,-1.6056762373860484e-8,0.0038536482567425854,-5.601504835855946e-6,-1.5756133822008962e-8,0.0038540726814287585,-5.7339517789242305e-6,-1.550233250246981e-8,0.0038545530770026947,-5.813032433141409e-6,-1.535167747524828e-8,0.003855066511348219,-5.817774971569551e-6,-1.5344433001374196e-8,0.0038555849763886965,-5.738119863076067e-6,-1.5499788248752717e-8,0.0038560793166990247,-5.576384824864866e-6,-1.5813120373490353e-8,0.0038565234608473496,-5.347216994734051e-6,-1.6256150387493468e-8,0.0038568984147355433,-5.075979025649893e-6,-1.678004601450871e-8,0.00385719557764678,-4.795731754718215e-6,-1.7321162029551486e-8,0.0038574190570229696,-4.543041028615571e-6,-1.780903983008837e-8,0.003857586762326891,-4.352859428110214e-6,-1.817625138390654e-8,0.003857730049101876,-4.252572787910336e-6,-1.8369938134093778e-8,0.0038578912513364937,-4.255213948707043e-6,-1.8364992404288677e-8,0.003858117874957074,-4.3525404651654585e-6,-1.8177456727680517e-8,0.003858452354547486,-4.510210597999658e-6,-1.7873784612501723e-8,0.003858917791777117,-4.669051428707108e-6,-1.756829129472984e-8,0.003859503672194377,-4.756979406824098e-6,-1.7400082133742694e-8,0.003860160107605068,-4.712384004790362e-6,-1.7487936966225806e-8,0.0038608091664962376,-4.510570068775836e-6,-1.7879323414882926e-8,0.003861372398538454,-4.177424357879907e-6,-1.8524047943606895e-8,0.003861800506333025,-3.7795425476321384e-6,-1.9293349565570984e-8,0.0038620880164654562,-3.396288792625095e-6,-2.0033913711143205e-8,0.003862267166860147,-3.0911799396654256e-6,-2.062317555474824e-8,0.0038623893494130436,-2.8966628210158406e-6,-2.099867596807234e-8,0.003862506563495998,-2.8140990119499413e-6,-2.115798768293966e-8,0.0038626598321244918,-2.822389550608056e-6,-2.114198102596278e-8,0.003862874873005275,-2.8882527356427605e-6,-2.1014973901108832e-8,0.003863162336153394,-2.9744902195046028e-6,-2.0848814677809523e-8,0.0038635199304515298,-3.045533830271848e-6,-2.0712205478631623e-8,0.0038639348992436243,-3.0710234770790767e-6,-2.066378398501029e-8,0.0038643864355204357,-3.028367117469868e-6,-2.0747147455070232e-8,0.00386484822728367,-2.904831494192115e-6,-2.0986801911394604e-8,0.0038652914752601592,-2.699236644680084e-6,-2.1384920240420773e-8,0.003865688624510196,-2.4228755743300013e-6,-2.191962018272638e-8,0.00386601767419727,-2.0990064949875313e-6,-2.2545976090700474e-8,0.003866266452299767,-1.760409030734062e-6,-2.3200715561079226e-8,0.0038664359843247702,-1.4449098341719433e-6,-2.3810796904036255e-8,0.0038665420780329414,-1.1892409375748905e-6,-2.4305217895457498e-8,0.003866614450261009,-1.0220808697119544e-6,-2.4628464023641513e-8,0.0038666931331427633,-9.574329517630934e-7,-2.4753373068809092e-8,0.00386682224894407,-9.894664267422647e-7,-2.469119648990868e-8,0.0038670414158975728,-1.0900193002419434e-6,-2.449647640784153e-8,0.0038673755149895308,-1.2103925169421118e-6,-2.4263553007702945e-8,0.0038678247276590877,-1.2892296045959293e-6,-2.4111252377403624e-8,0.003868358444959499,-1.267252656795297e-6,-2.4154311249935473e-8,0.0038689178723244452,-1.106609395965305e-6,-2.446591385034712e-8,0.0038694306364283385,-8.077989637281885e-7,-2.504494355576824e-8,0.0038698345342124824,-4.141703486132289e-7,-2.5807311711834674e-8,0.003870099809101716,1.7314109784301966e-9,-2.661245619101961e-8,0.0038702378083155316,3.6458720020279093e-7,-2.7314567339474627e-8,0.0038702920854368386,6.214663267685033e-7,-2.7811317375819918e-8,0.0038703190910244194,7.53858335647063e-7,-2.8067074676155508e-8,0.00387036974897286,7.748010931081934e-7,-2.8107228302703305e-8,0.0038704788581488724,7.175311052953002e-7,-2.7996153658333026e-8,0.0038706626331334653,6.232083040671878e-7,-2.781347285744613e-8,0.0038709211656908133,5.318687125353667e-7,-2.7636609917695287e-8,0.003871242513436442,4.772284502188831e-7,-2.753078648423058e-8,0.003871606525933271,4.841804967947889e-7,-2.754418615260003e-8,0.0038719879135084533,5.675785755217659e-7,-2.7705577960566147e-8,0.003872358880346966,7.314004543716178e-7,-2.8022675148351287e-8,0.0038726919022138077,9.680249185641712e-7,-2.8480732932027746e-8,0.003872963138652044,1.2579586782204766e-6,-2.9042030043767234e-8,0.00387315657601737,1.5708285211382788e-6,-2.9647789466682646e-8,0.0038732683373289547,1.86855923238929e-6,-3.0224309921934445e-8,0.0038733099271485473,2.1112153111972303e-6,-3.069424612561177e-8,0.003873308852725411,2.2650543922665764e-6,-3.0992188082449424e-8,0.0038733053736022243,2.3111642765606837e-6,-3.108140596859698e-8,0.003873345192169577,2.2521788410355123e-6,-3.0966904370240415e-8,0.0038734693367986866,2.1146262125177263e-6,-3.0700024716839653e-8,0.003873703593536369,1.9454980220390796e-6,-3.037183659191588e-8,0.0038740502205765353,1.8030645268901052e-6,-3.009534652539585e-8,0.003874484463380578,1.7433559304306285e-6,-2.997927136727451e-8,0.003874957745425761,1.805067475563303e-6,-3.009872427079351e-8,0.0038754081819814224,1.9969121911983876e-6,-3.0470633717663e-8,0.0038757768904046563,2.2921729176794824e-6,-3.104314330933098e-8,0.0038760255596562514,2.6342273406501153e-6,-3.1706344087442033e-8,0.003876148467003275,2.953007064522305e-6,-3.232426651598912e-8,0.003876173208269964,3.1867247516892045e-6,-3.2777089184574225e-8,0.0038761496228379723,3.299682974732298e-6,-3.2995681880150156e-8,0.0038761325461103228,3.2890272755367357e-6,-3.297463097922817e-8,0.003876166403606068,3.179714693762658e-6,-3.276239593634084e-8,0.003876276896591104,3.0126859225590633e-6,-3.243833774524097e-8,0.0038764701624275557,2.8325579269208208e-6,-3.208888404389721e-8,0.0038767365992111737,2.6787515873070964e-6,-3.1790385133102694e-8,0.003877056148306675,2.580816495240054e-6,-3.160009687833867e-8,0.003877403029010765,2.556826343211539e-6,-3.1553084495681475e-8,0.0038777493008821016,2.613289973686861e-6,-3.166203618942354e-8,0.0038780675614554605,2.745446505360736e-6,-3.191780672517262e-8,0.003878333476381656,2.937524412643369e-6,-3.2289889347489e-8,0.0038785287779384415,3.1632353044676755e-6,-3.2727348319001116e-8,0.0038786449743421613,3.38733667833281e-6,-3.3161835770498974e-8,0.0038786873128192818,3.569409484611795e-6,-3.351491898098499e-8,0.003878677591593657,3.6707118908738144e-6,-3.371139093728882e-8,0.003878653651155005,3.663736005572876e-6,-3.369782934114989e-8,0.003878663611183559,3.5420997935283253e-6,-3.346179770353897e-8,0.003878754731082063,3.3267106762652564e-6,-3.304380167421774e-8,0.003878959662882301,3.0642480397399228e-6,-3.2534349810315585e-8,0.0038792851193151815,2.8166766000497898e-6,-3.2053637071171815e-8,0.003879707781335941,2.644580007151263e-6,-3.171924924585675e-8,0.003880179414535661,2.590044261113597e-6,-3.161296170025512e-8,0.003880639462395093,2.664856929841553e-6,-3.175779169109812e-8,0.003881030963909623,2.847441295081661e-6,-3.211196330829822e-8,0.003881315132026455,3.088989773401876e-6,-3.258074793403881e-8,0.003881480673019954,3.3267950065992406e-6,-3.304234350010906e-8,0.0038815453906210946,3.500934082932849e-6,-3.33803219040278e-8,0.0038815497710628015,3.5694288741531944e-6,-3.3513127109619604e-8,0.003881544796778198,3.5173837589184617e-6,-3.341184114435914e-8,0.003881578212321525,3.3577257039687044e-6,-3.310159999772678e-8,0.0038816837406748395,3.1243817248589497e-6,-3.264830861127478e-8,0.0038818760151617553,2.8614164265762064e-6,-3.213752525507882e-8,0.0038821512694009203,2.612341272483004e-6,-3.165370238768937e-8,0.0038824917692874394,2.4124461107722537e-6,-3.1265314802538124e-8,0.003882871480346175,2.2849072067360234e-6,-3.1017329356398934e-8,0.0038832611824149987,2.2398928027330586e-6,-3.0929494207351274e-8,0.0038836323245214632,2.275318774487282e-6,-3.099781618751069e-8,0.0038839597921307414,2.378108423025778e-6,-3.119699030134757e-8,0.0038842242152507703,2.5254286212354412e-6,-3.148275781095068e-8,0.0038844144663355965,2.686059250390416e-6,-3.179451894543604e-8,0.0038845306688387576,2.822639547206788e-6,-3.2059675183163195e-8,0.003884587357003466,2.8959475224504465e-6,-3.220196455639171e-8,0.0038846153737523,2.8722310269464106e-6,-3.21557550736718e-8,0.003884660056959134,2.7333387608771316e-6,-3.18857668919105e-8,0.0038847732762158013,2.4869046599035173e-6,-3.1406851357082614e-8,0.0038849991252745794,2.1712642698410145e-6,-3.0793495921892944e-8,0.0038853574442500984,1.8496451423368823e-6,-3.016850650976043e-8,0.0038858330515733975,1.5925789224385644e-6,-2.9668865383990577e-8,0.003886377556622482,1.4547566015723252e-6,-2.940082528056271e-8,0.0038869241473787107,1.4569552475180457e-6,-2.9404819127186324e-8,0.0038874085176017156,1.5809669809562609e-6,-2.9645564220367717e-8,0.003887786800305342,1.7780034980890623e-6,-3.002832302171855e-8,0.0038880447159318995,1.9850173646662214e-6,-3.0430573951043864e-8,0.0038881971924163384,2.1420596256770285e-6,-3.073574438290413e-8,0.003888280961175994,2.205781072292864e-6,-3.085948449380518e-8,0.0038883435694981065,2.1568374784550173e-6,-3.076410840731744e-8,0.0038884319296096136,2.0009593416802778e-6,-3.0460718017368735e-8,0.00388858281744708,1.7646673454508626e-6,-3.000089846925649e-8,0.003888816937092785,1.487387634284406e-6,-2.9461380448588014e-8,0.003889137213009564,1.2122368285186793e-6,-2.8926083312790018e-8,0.0038895308769200843,9.77741933194379e-7,-2.8469964105098837e-8,0.0038899740437511265,8.120453633245923e-7,-2.81477220260484e-8,0.003890437171818333,7.300902557734322e-7,-2.7988343358411724e-8,0.0038908900772970704,7.333723847624609e-7,-2.7994672649499975e-8,0.0038913058202770783,8.11313345377628e-7,-2.8146131740211625e-8,0.003891663485624368,9.432958331578632e-7,-2.8402680159512044e-8,0.0038919502946732623,1.1008399990349611e-6,-2.8708996787877187e-8,0.0038921635340459903,1.2499486900889057e-6,-2.8998973546822423e-8,0.0038923125934744473,1.3541502616078596e-6,-2.9201603267134142e-8,0.0038924208408559866,1.379197734291158e-6,-2.9250157793629576e-8,0.0038925260361622285,1.3003034856014153e-6,-2.909634192665132e-8,0.0038926769630940033,1.1115916402400212e-6,-2.8728743103664676e-8,0.0038929238963934187,8.34996763450161e-7,-2.819013439953649e-8,0.003893302729372596,5.229491681716229e-7,-2.7582633768285374e-8,0.0038938176635446077,2.486270920040773e-7,-2.704868519022275e-8,0.0038944323474479204,8.290889866841129e-8,-2.6726217478885122e-8,0.0038950779585628413,6.71542862886964e-8,-2.6695708784190685e-8,0.0038956768103849595,1.9679611586948285e-7,-2.694825472718397e-8,0.003896169311776245,4.2495370109331924e-7,-2.73925766726845e-8,0.003896530677936019,6.822594553111313e-7,-2.7893606935094835e-8,0.0038967721729981984,9.007324311420936e-7,-2.8318972956552194e-8,0.003896930972109137,1.0312737312306008e-6,-2.8573056292209646e-8,0.0038970560356940956,1.0512333616440805e-6,-2.8611714898809007e-8,0.0038971954492596143,9.637576168076825e-7,-2.84410251401411e-8,0.0038973875128366286,7.922909732076531e-7,-2.8106623400673385e-8,0.003897655773663217,5.73039745366953e-7,-2.7679078820458593e-8,0.0038980074203048315,3.470975623162463e-7,-2.723855936562174e-8,0.003898434383602654,1.532557749678879e-7,-2.686076811069166e-8,0.003898916483642837,2.2273778031217942e-8,-2.6605698033749048e-8,0.003899425869944706,-2.6879705272445377e-8,-2.651026260606674e-8,0.003899931946443452,1.135752503116599e-8,-2.658517606455315e-8,0.003900405988380751,1.2952483923987927e-7,-2.6815784333920333e-8,0.0039008248607193337,3.0902597073996624e-7,-2.7165815642283763e-8,0.0039011736945926885,5.228355224148576e-7,-2.7582659172522265e-8,0.003901447733469793,7.385703341824681e-7,-2.800327930437387e-8,0.0039016535931530446,9.218576909926763e-7,-2.8360689234556944e-8,0.003901810063641041,1.0402342282423203e-6,-2.8591513682344532e-8,0.0039019482346590566,1.068114437545263e-6,-2.8645727584383664e-8,0.0039021099156309434,9.933162871447647e-7,-2.8499486010026745e-8,0.0039023425147539973,8.245733393134014e-7,-2.816985246159411e-8,0.0039026886667243655,5.973876226969504e-7,-2.7726207946250197e-8,0.0039031709184319144,3.732053312467776e-7,-2.728856993304565e-8,0.003903776436955178,2.2643689124575264e-7,-2.7002203145251322e-8,0.0039044517336320776,2.1908852626009318e-7,-2.6988107235954432e-8,0.0039051160269753435,3.7343990320735743e-7,-2.728970832405026e-8,0.0039056904602020087,6.597257455398579e-7,-2.7848816986833218e-8,0.0039061274952976715,1.008182754458275e-6,-2.8529159419230002e-8,0.003906424029832539,1.337864454440272e-6,-2.917267690733211e-8,0.0039066143239121455,1.584673185538172e-6,-2.9654276855512307e-8,0.003906751629333246,1.7160417124478927e-6,-2.991045051383723e-8,0.003906889981347287,1.7312807173328777e-6,-2.993987957694521e-8,0.003907072257425082,1.6535639424178371e-6,-2.978777180552823e-8,0.003907324953080964,1.5196860399174986e-6,-2.9525923596991393e-8,0.003907657617907691,1.3710174126904936e-6,-2.9235136326534077e-8,0.003908064791635279,1.246627938272527e-6,-2.8991808582392042e-8,0.003908529121213566,1.178355331974727e-6,-2.8858246582644022e-8,0.0039090251008069895,1.1874723538953122e-6,-2.8876064406570793e-8,0.0039095231741027164,1.2828026766380307e-6,-2.9062457134925734e-8,0.003909993971965604,1.4602429723720258e-6,-2.940930205385144e-8,0.003910412376088683,1.7037257014122688e-6,-2.9885126077279e-8,0.003910760972899444,1.9875614267849495e-6,-3.043974711070414e-8,0.003911032543742426,2.279815827653438e-6,-3.1010855542352346e-8,0.003911231493909528,2.5463069029857515e-6,-3.153173238001942e-8,0.003911374222650876,2.7549910335127733e-6,-3.193972170951845e-8,0.003911488384327841,2.880624085469085e-6,-3.218531726661661e-8,0.003911610864352182,2.909667982481857e-6,-3.224183476086153e-8,0.003911783886839922,2.84536194505679e-6,-3.211546429333361e-8,0.003912048236733935,2.7121190655270843e-6,-3.1853969077637996e-8,0.003912432956737331,2.5569177610852085e-6,-3.1549408250500364e-8,0.003912942711842446,2.4439948046497946e-6,-3.13276712957956e-8,0.003913547494005578,2.439525781374463e-6,-3.1318405148871284e-8,0.003914182801008766,2.587612510786791e-6,-3.160796365905382e-8,0.00391476670682019,2.8876813198392386e-6,-3.219515496038958e-8,0.003915229878465214,3.288612511808708e-6,-3.297977441605243e-8,0.00391554262842195,3.707168304776008e-6,-3.3798756641249064e-8,0.003915722816780819,4.061134667377567e-6,-3.449114586943816e-8,0.0039158221519932715,4.297554871760769e-6,-3.495337435976911e-8,0.003915902612886247,4.403020028690837e-6,-3.5159304982510026e-8,0.003916016771863963,4.3972762305046315e-6,-3.51476057496457e-8,0.003916198069716032,4.319425094326008e-6,-3.499472431255641e-8,0.003916459596845121,4.214738888555488e-6,-3.4789167335719515e-8,0.003916797401300606,4.125457418511884e-6,-3.46135897824814e-8,0.003917195121291198,4.085545626385126e-6,-3.453456558879286e-8,0.003917628376812855,4.118078743411213e-6,-3.459741276197698e-8,0.00391806864547818,4.234057023541767e-6,-3.4823781820516536e-8,0.0039184868549933145,4.432100524385358e-6,-3.521100643460954e-8,0.003918856894454718,4.698942282664103e-6,-3.5733089149345645e-8,0.003919159062997544,5.010909292212568e-6,-3.634366398414867e-8,0.003919383180819294,5.336673361384431e-6,-3.698142096457321e-8,0.003919530829987342,5.641296545403175e-6,-3.757799607711368e-8,0.0039196162213828035,5.891218249778886e-6,-3.8067651883344666e-8,0.0039196653747344806,6.059652716046391e-6,-3.8397777275256785E-08,0.003919713456096689,6.131770978781817e-6,-3.853905013964011e-8,0.003919800276775679,6.108967573413839e-6,-3.849390802272054e-8,0.003919964045053333,6.011521522845613e-6,-3.830191792649171e-8,0.003920233494230299,5.878730153642338e-6,-3.804014811232711e-8,0.003920618992780859,5.764983763374026e-6,-3.781547454419313e-8,0.00392110459247313,5.730010496430183e-6,-3.7745352062984805e-8,0.0039216448866342514,5.822802882578071e-6,-3.792614771435408e-8,0.00392217165582521,6.062441369382195e-6,-3.839540769990899e-8,0.003922612784897084,6.424343781374744e-6,-3.910483982583697e-8,0.003922918279510956,6.842549813656679e-6,-3.9924854655693004e-8,0.0039230801956615,7.231684285990491e-6,-4.068779460101494e-8,0.003923134148926395,7.5187772284920845e-6,-4.125047503163074e-8,0.003923141833425455,7.667435752105012e-6,-4.1541586012182924e-8,0.003923166269325025,7.683166138878378e-6,-4.1571999586433136e-8,0.003923253198934327,7.602234341381125e-6,-4.1412808153840096e-8,0.00392342418128479,7.474463541507354e-6,-4.1161593315289665e-8,0.003923678875818511,7.348774715809465e-6,-4.091417238620076e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json new file mode 100644 index 00000000..509a7d10 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":24000,"numberOfSamples":1000,"samples":[0.003924001349468574,7.264665173102422e-6,-4.0747989552475184e-8,0.003924366586169156,7.248790607297544e-6,-4.0715438046854016e-8,0.0039247455983737215,7.31449699975775e-6,-4.084288354023843e-8,0.003925109134008881,7.462510402409807e-6,-4.1131928535769936e-8,0.003925430619334403,7.681943579661476e-6,-4.156132990390201e-8,0.003925688916221978,7.9515663056217e-6,-4.208949033990723e-8,0.003925871139610513,8.241724001493012e-6,-4.26582543580377e-8,0.003925975343160025,8.517452558510482e-6,-4.319903585164052e-8,0.003926012408625573,8.743124708146312e-6,-4.364190844664137e-8,0.0039260062351111815,8.888393011087458e-6,-4.392721436513869e-8,0.0039259914819518545,8.934553769547599e-6,-4.401802379763859e-8,0.003926008601681654,8.87995541059872e-6,-4.391078722925618e-8,0.003926096603853184,8.742886424791559e-6,-4.364111335220435e-8,0.003926284700461693,8.560700555841224e-6,-4.328218871863738e-8,0.003926584419799495,8.38460458304358e-6,-4.293463839580567e-8,0.003926983982520055,8.27018419490559e-6,-4.270791978660203e-8,0.003927446933578442,8.26450952654458e-6,-4.269489056436631e-8,0.003927917035426422,8.392007583137403e-6,-4.294388907717355e-8,0.003928330548152765,8.643213090672838e-6,-4.343648270886796e-8,0.003928634404239271,8.97202431142347e-6,-4.4082022548759444e-8,0.003928804571353034,9.306016764539644e-6,-4.473798796749362e-8,0.003928855847415065,9.568840746130847e-6,-4.525415343428905e-8,0.0039288366735898165,9.705875342600683e-6,-4.552310678124801e-8,0.003928810708523999,9.70075387287824e-6,-4.5512697637589113e-8,0.003928834802404048,9.575566014901797e-6,-4.526632710582171e-8,0.003928943827175889,9.377534807333275e-6,-4.487669985208786e-8,0.003929146690245219,9.161289638700064e-6,-4.445102369531869e-8,0.003929431010766044,8.97479258527682e-6,-4.408344678591044e-8,0.003929771249439363,8.851942834798086e-6,-4.3840594450064106e-8,0.003930136299987928,8.810775413828423e-6,-4.375803213461219e-8,0.0039304949376361325,8.854733935909684e-6,-4.3842713182813283e-8,0.003930819251349883,8.97490756364095e-6,-4.4077307493303816e-8,0.003931086911330102,9.152169769274805e-6,-4.442436000944777e-8,0.0039312831240633185,9.359120650070548e-6,-4.4830096409770687e-8,0.003931402736278697,9.562353565431697e-6,-4.522888479978551e-8,0.0039314523679986994,9.725809891954073e-6,-4.554983213541918e-8,0.003931451821677968,9.81581544058732e-6,-4.572667330703574e-8,0.0039314335373014,9.807739373223678e-6,-4.5710846370490446e-8,0.003931438847422937,9.693139686684408e-6,-4.5485541526462294e-8,0.003931510540598468,9.485126741041124e-6,-4.507628154878644e-8,0.0039316827752822045,9.21922505098598e-6,-4.455269004539336e-8,0.003931971055312627,8.947933809120098e-6,-4.401789076476449e-8,0.0039323657307728825,8.729358784614993e-6,-4.358622919525109e-8,0.003932831731699162,8.612643855888081e-6,-4.335462841531593e-8,0.003933315344617792,8.62429738570606e-6,-4.337560654570439e-8,0.003933756715300976,8.759463349484685e-6,-4.363994931455601e-8,0.003934105106059232,8.981053856326873e-6,-4.407485811762412e-8,0.003934332913929343,9.227877438043526e-6,-4.4559891225405716e-8,0.0039344440871193175,9.430525068002884e-6,-4.4958286576969273e-8,0.003934473402796723,9.530858688927084e-6,-4.5155432327327116e-8,0.003934475863914978,9.498545685117723e-6,-4.509149078422063e-8,0.003934509718222492,9.33827824991407e-6,-4.47756142603218e-8,0.003934619792227327,9.085158588882537e-6,-4.427682786107174e-8,0.003934827415641757,8.791280140237335e-6,-4.369760258181166e-8,0.00393512933343696,8.510038014808986e-6,-4.31429928445453e-8,0.0039355035636141015,8.284081649552148e-6,-4.269695029529051e-8,0.003935918018543304,8.139406686077033e-6,-4.241070000822375e-8,0.003936338353846052,8.084775818140693e-6,-4.2301584302013366e-8,0.003936733445406277,8.114176353890525e-6,-4.235787766689351e-8,0.0039370785461212525,8.210197709692123e-6,-4.254541828860122e-8,0.003937356971767464,8.347130480599071e-6,-4.281369430236631e-8,0.003937561263758311,8.493567783692922e-6,-4.310094762045791e-8,0.003937694438031615,8.615002843389891e-6,-4.333926631812809e-8,0.003937771330134241,8.67725650150846e-6,-4.346131796842194e-8,0.003937819322870859,8.651508326884634e-6,-4.3410256470381495e-8,0.003937877058427044,8.521099894445721e-6,-4.3153137231452934e-8,0.003937989463885939,8.288931327634417e-6,-4.269550841092151e-8,0.003938198228981029,7.982475866423666e-6,-4.209131265757179e-8,0.003938529202136906,7.652421272823026e-6,-4.144024574779018e-8,0.003938981172624146,7.362348631112524e-6,-4.086748201679056e-8,0.003939521858698951,7.171057158621901e-6,-4.048891544782165e-8,0.003940094615197016,7.113880374154503e-6,-4.0374365707466556e-8,0.0039406342007793785,7.190918645244552e-6,-4.052432522098116e-8,0.003941085456845227,7.366953288287352e-6,-4.086966435709471e-8,0.003941417979926735,7.582297213206803e-6,-4.1292902967637985e-8,0.003941632550878733,7.769811582108233e-6,-4.1661704613367465e-8,0.0039417586573959,7.872367731094012e-6,-4.186332403044912e-8,0.00394184498935138,7.856147459827803e-6,-4.183089280710224e-8,0.003941946090056001,7.716963831159671e-6,-4.155595404739903e-8,0.003942108844751583,7.478721284531861e-6,-4.1085488184775086e-8,0.003942362280649743,7.1851264448118275e-6,-4.0505610055412035e-8,0.003942713056297738,6.887545188092401e-6,-3.9917635489093076e-8,0.003943147094181412,6.63285056822077e-6,-3.9414089140640513e-8,0.00394363576055283,6.45458746493619e-6,-3.906122521138246e-8,0.003944143851940386,6.3689698481875325e-6,-3.889108334065558e-8,0.003944636869159611,6.375238897636767e-6,-3.89021835862169e-8,0.003945086178514301,6.458758785510235e-6,-3.906566285644976e-8,0.003945471885644119,6.595087712929455e-6,-3.9333345409787816e-8,0.003945784062145488,6.75381682031183e-6,-3.96453240801719e-8,0.0039460231949269235,6.9018086924852714e-6,-3.993631138475404e-8,0.003946200484182494,7.0061699834473986e-6,-4.0141443325436696e-8,0.003946338123548155,7.037663514739489e-6,-4.020297398706976e-8,0.003946469030517169,6.975321308310946e-6,-4.007939202239149e-8,0.0039466347171631935,6.8125615268396335e-6,-3.9757548945000605e-8,0.003946879526314831,6.563781000662389e-6,-3.926572917290399e-8,0.003947240113576192,6.26832771088985e-6,-3.8681519815076635e-8,0.00394773162032693,5.987155767768718e-6,-3.8125213666258697e-8,0.00394833606959585,5.788678511154436e-6,-3.7731893344309e-8,0.0039490010315956,5.726070108611301e-6,-3.760663760887806e-8,0.003949653254363835,5.815841448021564e-6,-3.778221021701663e-8,0.003950222933085804,6.029784395114221e-6,-3.8203094717768544e-8,0.003950666763769117,6.305251283013329e-6,-3.874572335149639e-8,0.003950978997636163,6.567633107643007e-6,-3.926282625402561e-8,0.003951187946508848,6.753390037519353e-6,-3.9628897768472654e-8,0.003951342970045106,6.82499234587586e-6,-3.9769697357740485e-8,0.00395149899125544,6.775528812781524e-6,-3.9671369919487616e-8,0.003951703461040263,6.625121099539185e-6,-3.9373432374454456e-8,0.003951987858015527,6.412572497682793e-6,-3.8952382552237284e-8,0.003952363959429004,6.185216687773946e-6,-3.8501729618800614e-8,0.003952824318389738,5.9890392604355895e-6,-3.811248119847719e-8,0.003953346084383744,5.8605580191022866e-6,-3.7857015174201214e-8,0.003953896995412957,5.821583390244034e-6,-3.777860582122305e-8,0.003954442092751837,5.877359468380301e-6,-3.7887672658214384e-8,0.003954949781935346,6.017769412892624e-6,-3.816417373000497e-8,0.003955396289717578,6.220694202785564e-6,-3.856432318594815e-8,0.003955768174884203,6.456367672750993e-6,-3.902927598979735e-8,0.003956063179994125,6.691705169501888e-6,-3.949369249275251e-8,0.003956290051901221,6.894111093467348e-6,-3.989319559509603e-8,0.003956467854520423,7.034854759428582e-6,-4.017095218887658e-8,0.0039566249669400816,7.092436622888951e-6,-4.0284290088954386e-8,0.003956797478346305,7.056481487425291e-6,-4.021245059161304e-8,0.003957025994777186,6.932388600346256e-6,-3.996590300588929e-8,0.003957349414623954,6.7458410699163445e-6,-3.959537173887109e-8,0.003957794778545756,6.544498614818847e-6,-3.9195220973930975e-8,0.003958364489074411,6.392651543668574e-6,-3.889283923884582e-8,0.003959026190955713,6.355295837039837e-6,-3.881705762450065e-8,0.003959713978117959,6.473712946892012e-6,-3.904975388942963e-8,0.003960346658841707,6.743821961530491e-6,-3.958294960032686e-8,0.003960857575990237,7.112323350996538e-6,-4.031115186969541e-8,0.0039612197932018854,7.496174919039376e-6,-4.10699402100219e-8,0.003961452306299503,7.814588012843276e-6,-4.169936348567501e-8,0.003961606574536528,8.01530911676443e-6,-4.209596468724888e-8,0.003961744529834369,8.08439052342442e-6,-4.223205431160473e-8,0.003961919898203691,8.041055608842375e-6,-4.2145503385516964e-8,0.003962167934107929,7.92540646416268e-6,-4.1915471608097986e-8,0.003962502766954194,7.785608877629877e-6,-4.1637175222764884e-8,0.003962919504652272,7.667738377555936e-6,-4.140189174962666e-8,0.00396339860412415,7.6088866362392024e-6,-4.128330394764023e-8,0.003963911081389532,7.633028280277278e-6,-4.132919427751386e-8,0.003964423927548092,7.749152914604407e-6,-4.1557593105492124e-8,0.003964905318504584,7.951432583245587e-6,-4.1957026443146924e-8,0.003965329172806784,8.221199670866641e-6,-4.249046155503989e-8,0.0039656786145144665,8.530378408627668e-6,-4.310220299700377e-8,0.003965947990889918,8.845841392371245e-6,-4.37266017606286e-8,0.003966143368775138,9.134007815143316e-6,-4.429715430491004e-8,0.003966281763390242,9.365126081644348e-6,-4.475489492347632e-8,0.003966389432433808,9.517028569907252e-6,-4.50557398961551e-8,0.0039664994413490615,9.578380169243303e-6,-4.517691762130738e-8,0.003966648478154706,9.551562333274848e-6,-4.512279719134597e-8,0.003966872442131501,9.455213790585541e-6,-4.493010285476397e-8,0.003967200009096507,9.325645135291122e-6,-4.4670856835179115e-8,0.003967643942139405,9.215087087823338e-6,-4.4448923046119814e-8,0.0039681916280942,9.183905742556441e-6,-4.438445858297688e-8,0.003968799131557344,9.284666046934797e-6,-4.4582129386551373e-8,0.003969395714603861,9.540259293398974e-6,-4.508756258136944e-8,0.0039699037202130414,9.926237027984614e-6,-4.585222439096121e-8,0.003970268552470416,1.0371684773005795e-5,-4.673521137896835e-8,0.003970482142169558,1.078412203468818e-5,-4.755282003004367e-8,0.0039705843561092195,1.10860283048514e-5,-4.815115477383973e-8,0.003970642360386332,1.1241376583518066e-5,-4.845874452293147e-8,0.003970722821708415,1.125981504453911e-5,-4.8494689966727235e-8,0.0039708723071808566,1.11829441885822e-5,-4.834134805360363e-8,0.003971110919069601,1.1065211622363857e-5,-4.810650188240576e-8,0.003971435431608885,1.0958632735931508e-5,-4.7893216781566505e-8,0.003971826265812919,1.0903990546723049e-5,-4.778250186894762e-8,0.003972254586729742,1.0927283245886881e-5,-4.782624238951511e-8,0.003972688105211575,1.1039249843146977e-5,-4.8046116883982526e-8,0.0039730955939297884,1.1236386675066273e-5,-4.843545087392066e-8,0.00397345054557075,1.1502799362280447e-5,-4.8962807876693554e-8,0.003973734208169738,1.1812792318729848e-5,-4.9577158828296015e-8,0.003973937950405579,1.2134265111817801e-5,-5.021471558067026e-8,0.003974064679006379,1.2432918992578263e-5,-5.080734411592102e-8,0.003974128944467808,1.2676973960732623e-5,-5.129190491821449e-8,0.003974155556457899,1.2841827542246017e-5,-5.1619414061577866e-8,0.0039741767870729505,1.2914097734147498e-5,-5.1763003268766806e-8,0.003974228381508199,1.2894585117898373e-5,-5.1723840310494984e-8,0.0039743446740342315,1.2799778794775203e-5,-5.1534278839920305e-8,0.003974553031218095,1.2661651645222267e-5,-5.1257656952560386e-8,0.00397486770830553,1.252526192551265e-5,-5.0983665712715536e-8,0.003975283624309093,1.244306855380536e-5,-5.081702986908633e-8,0.003975771762776541,1.2464764616558008e-5,-5.085712444532777e-8,0.003976279358595454,1.2622668128129355e-5,-5.1168686224427466e-8,0.003976738806949802,1.2915806066879637e-5,-5.174997205879499e-8,0.00397708712480231,1.3300494013523065e-5,-5.251398213335525e-8,0.003977290708495544,1.3697307875515348e-5,-5.3302462984544026e-8,0.003977362035950759,1.4017395454687275e-5,-5.393846232144907e-8,0.003977355858695399,1.4196719691249908e-5,-5.429455632185751e-8,0.003977345605575303,1.4218583669657343e-5,-5.433755885903962e-8,0.003977394646971235,1.4112859234273654e-5,-5.412679978292305e-8,0.003977538120767945,1.3937040535825622e-5,-5.377637606636613e-8,0.003977780313015663,1.3753373811437281e-5,-5.3409789340420174E-08,0.0039781024005110955,1.361276026355333e-5,-5.312812805725196e-8,0.003978473023124186,1.3547849219766439e-5,-5.299644136530384e-8,0.003978857094370713,1.3572654477401475e-5,-5.304293291262342e-8,0.00397922161367756,1.3685187261991948e-5,-5.326404503945597e-8,0.0039795391090315735,1.387078103509612e-5,-5.363091484811033e-8,0.003979789799970764,1.4105237357237993e-5,-5.4095556401576257e-8,0.0039799632178153825,1.4357845076354077e-5,-5.45968922420498e-8,0.003980059500806607,1.4594673222991368e-5,-5.506737604277994e-8,0.003980090142970023,1.4782539911570218e-5,-5.5440930753357645e-8,0.003980077642195864,1.4893710156689642e-5,-5.566226817310781e-8,0.003980053468419345,1.4910803096605801e-5,-5.56965853216742e-8,0.0039800541106269635,1.4830983623911673e-5,-5.553787293347947e-8,0.0039801154418540406,1.466838142817004e-5,-5.5213797919344863e-8,0.003980266139921954,1.4453775388946017e-5,-5.478524269653043e-8,0.003980521287767714,1.4231023369268172e-5,-5.4339391697161045e-8,0.003980877353979621,1.4050315119139707e-5,-5.397640762167942e-8,0.003981309717837675,1.395868469966156e-5,-5.3790488944141864e-8,0.003981774090037387,1.3988628469092594e-5,-5.3846999457069773e-8,0.003982213281677193,1.4146764402475845e-5,-5.415961657859051e-8,0.003982570011449755,1.4406143821260008e-5,-5.467482526558627e-8,0.003982804131697453,1.47071498764841e-5,-5.527369286809923e-8,0.003982908778352366,1.4970992193698437e-5,-5.579891732093303e-8,0.003982916824397885,1.5124448073961797e-5,-5.6104337480320424e-8,0.003982891263406429,1.5126160410236833e-5,-5.610742482232311e-8,0.00398290215454356,1.4980743595872157e-5,-5.581730514030468e-8,0.0039830019202654705,1.4733222541316497e-5,-5.532354528930037e-8,0.003983211326857249,1.4448727937037265e-5,-5.4755680309660146e-8,0.003983520104257227,1.4189885389384998e-5,-5.423828496751849e-8,0.003983897259054235,1.4001826693159665e-5,-5.386125283385029e-8,0.003984303459136277,1.3907216352427944e-5,-5.366993275012876e-8,0.003984700579759181,1.3908279420985249e-5,-5.3669095525382856e-8,0.003985057207973846,1.399170223752423e-5,-5.3832563887307894e-8,0.00398535107067196,1.4133635001783242e-5,-5.411306762933109e-8,0.003985569881970607,1.4303771905497005e-5,-5.445033306625039e-8,0.0039857117052029475,1.4468652878353123e-5,-5.4777689929636526e-8,0.003985785248092382,1.4594817843348775e-5,-5.502840613731594e-8,0.003985809897015252,1.4652472383143383e-5,-5.514301337657362e-8,0.003985814826438397,1.4619974837042523e-5,-5.5078226609295487e-8,0.0039858363205629195,1.4488750116827408e-5,-5.481669944437828e-8,0.003985912714645442,1.426742833517886e-5,-5.4375274115178266e-8,0.003986077146685968,1.3983468945714063e-5,-5.380829619913038e-8,0.003986349418788184,1.3680607655818763e-5,-5.320267121504874e-8,0.003986729243878734,1.3411429492368585e-5,-5.266321054783875e-8,0.003987193368925278,1.3226052188088213e-5,-5.229014065094215e-8,0.0039876982347206835,1.3159498917999302e-5,-5.2153854337675876E-08,0.00398818833657533,1.3221106579292605e-5,-5.227358445765773e-8,0.003988608901007278,1.338916970518754e-5,-5.260647556617648e-8,0.003988920183252699,1.3613194193081244e-5,-5.3051916801022585e-8,0.003989109646982799,1.3824650626505712e-5,-5.347299765131535e-8,0.003989197746223967,1.3954767944424933e-5,-5.373215558025435e-8,0.003989233827788415,1.3954763566654355e-5,-5.373171638754063e-8,0.003989281800794039,1.3811236850979288e-5,-5.3444699852450874e-8,0.003989400134260441,1.3549823535973889e-5,-5.292209959911019e-8,0.003989624365284392,1.3225093106393183e-5,-5.227268643727621e-8,0.003989959279866753,1.290162083662521e-5,-5.1625249279043706e-8,0.0039903824814073756,1.2635093520500604e-5,-5.109093995112096e-8,0.00399085532254792,1.2460509228031144e-5,-5.0739748289693165e-8,0.003991335096141489,1.2389290014694273e-5,-5.0594703090057124e-8,0.003991784193685639,1.2412788238110021e-5,-5.063879306432595e-8,0.0039921750376531425,1.2508400657934924e-5,-5.082710027342623e-8,0.0039924916979013365,1.264552801312763e-5,-5.109866380876292e-8,0.003992729733420645,1.2790244411010073e-5,-5.138580639540977e-8,0.003992895505481774,1.2908774182592685e-5,-5.162109554086806e-8,0.003993005539841018,1.2970483448082949e-5,-5.1743325651077926e-8,0.003993085805853583,1.2951169554634605e-5,-5.170407528089941e-8,0.0039931702182065525,1.2837098930575677e-5,-5.1475750096119304e-8,0.003993297356816803,1.2629535465925717e-5,-5.106062222453551e-8,0.003993504537036869,1.2348458326471559e-5,-5.04982889205154e-8,0.00399381928261621,1.2033164964636035e-5,-4.9866956012253766e-8,0.003994250001187529,1.1737322154317254e-5,-4.9273662215669775e-8,0.0039947794474397376,1.1517572315967707e-5,-4.883161802180583e-8,0.003995364932969854,1.1417909076784898e-5,-4.8629022529340004e-8,0.0039959471867255245,1.145512467560501e-5,-4.8699907040692296e-8,0.003996465923696541,1.1611411554188564e-5,-4.9009176717670445e-8,0.003996876828671035,1.1837637422183225e-5,-4.9458966925161574e-8,0.003997163971009506,1.2066380201857806e-5,-4.991458667779847e-8,0.003997343759283495,1.2230228260355551e-5,-5.024110820721207e-8,0.003997459714537061,1.227962356731739e-5,-5.033913205513782e-8,0.0039975700174394516,1.2195246540345806e-5,-5.016966528746188e-8,0.0039977315793668896,1.199171433994848e-5,-4.9761614483588085e-8,0.003997985303974457,1.1711837911922054e-5,-4.920037428897476e-8,0.003998346858193554,1.1413566865496914e-5,-4.8601769213070115e-8,0.0039988053495900785,1.1154143067304714e-5,-4.808037527313077e-8,0.0039993293627035445,1.0976671983429418e-5,-4.7722620398013583e-8,0.003999877225762814,1.0902767894712806e-5,-4.7571985490559816e-8,0.004000407493370264,1.0931979187466173e-5,-4.762776490445662e-8,0.00400088668699902,1.1046120607170104e-5,-4.785368769200271e-8,0.0040012933178902805,1.1215681826101956e-5,-4.8190753288722657e-8,0.004001618824597613,1.140602944436198e-5,-4.856968419517292e-8,0.004001866716617343,1.1582292382143262e-5,-4.8920729394387654e-8,0.004002051089467816,1.1712900988527266e-5,-4.9180732644461024e-8,0.004002195134543225,1.1772393926335084e-5,-4.9298705411811596e-8,0.0040023296147842545,1.1744241358596293e-5,-4.9241438831947997e-8,0.004002490702025333,1.1624164492064202e-5,-4.9000150214148706e-8,0.004002716177242634,1.1423787492992013e-5,-4.859784391910101e-8,0.0040030390227214704,1.1173356864132723e-5,-4.8094833920023865e-8,0.004003478361347815,1.0920997712239193e-5,-4.7587334303852796e-8,0.004004029802038545,1.0725563863908767e-5,-4.719320099784125e-8,0.004004659792221574,1.0641953511935584e-5,-4.7022548424382676e-8,0.004005309358395405,1.0702231547952575e-5,-4.713991105371558e-8,0.004005909305357476,1.0900742430031743e-5,-4.7534332339053704e-8,0.004006402231050277,1.1192022790909333e-5,-4.8115061170983004e-8,0.004006761493609258,1.1504328555145381e-5,-4.8738556290387605e-8,0.004006998416788491,1.1762810600434922e-5,-4.925487801263246e-8,0.0040071557972175655,1.1911802199676452e-5,-4.955234189469917e-8,0.004007292492485376,1.1928068755813912e-5,-4.9584090451901684e-8,0.004007466154921649,1.182270536529946e-5,-4.9371962164986925e-8,0.004007719484345561,1.1633960677447274e-5,-4.8992235679285965e-8,0.004008072516982853,1.1415035698476774e-5,-4.855132546462214e-8,0.004008521247009628,1.1220739757355388e-5,-4.81591306861145e-8,0.004009041556486812,1.1095986552782165e-5,-4.790595409748483e-8,0.004009596684482728,1.1068126254001404e-5,-4.784699794194256e-8,0.004010146061004549,1.1144061978931795e-5,-4.799641499742937e-8,0.0040106533603855915,1.1311869844993711e-5,-4.833044905420133e-8,0.004011092236707525,1.1545566812726804e-5,-4.8796997573800546e-8,0.004011449171177877,1.1811239466230054e-5,-4.9327987188523245e-8,0.004011723764818403,1.2072971677857698e-5,-4.985134835693644e-8,0.00401192736389657,1.2297623888833959e-5,-5.0300619813788786e-8,0.004012080963416897,1.2458294160137046e-5,-5.06218316152855e-8,0.004012212952149902,1.2536886563441079e-5,-5.077857415701251e-8,0.004012356748830488,1.2526361690877996e-5,-5.075648134300845e-8,0.004012547921684051,1.2433048238960548e-5,-5.0567928963629637e-8,0.0040128199805693305,1.2278886932150372e-5,-5.025666471468604e-8,0.004013197985529161,1.2102470950470938e-5,-4.990002190519058e-8,0.00401369000353784,1.1956510006150005e-5,-4.960388878819715e-8,0.004014278532066863,1.1898883530667995e-5,-4.948472066423443e-8,0.0040149167491389135,1.197622246061075e-5,-4.963648586630433e-8,0.004015535619726837,1.2203997061740317e-5,-5.0090569001978953e-8,0.004016064005360639,1.2553240036393509e-5,-5.0789018255737813e-8,0.0040164548830214815,1.2954750430225737e-5,-5.1592962190804215e-8,0.004016703733644348,1.3322431746732769e-5,-5.232951731508461e-8,0.004016848431434354,1.3584310465564186e-5,-5.2854110685949694e-8,0.004016951977140229,1.3704978067918915e-5,-5.309550581731473e-8,0.00401707918422125,1.3690726517722423e-5,-5.3066050186417026e-8,0.004017278464444657,1.3580022117076173e-5,-5.284257367174307e-8,0.004017573349390648,1.3427603643939568e-5,-5.253461517336548e-8,0.004017962524787026,1.3289293461804937e-5,-5.2254123260796106e-8,0.004018424992325505,1.3210932934703492e-5,-5.2093339215260626e-8,0.0040189273729024705,1.3221997414880813e-5,-5.211190437947683e-8,0.0040194315062708425,1.3333214209773679e-5,-5.2331872879317006e-8,0.004019901334926071,1.3537385768781908e-5,-5.273915282943784e-8,0.00402030839443015,1.3812681913253474e-5,-5.3290015781132485e-8,0.004020635440219238,1.4127527132908653e-5,-5.392095666905157e-8,0.004020878035146411,1.4446146519830484e-5,-5.455996088115213e-8,0.004021044226821732,1.473392798977689e-5,-5.513737746601209e-8,0.00402115275112109,1.496191131793451e-5,-5.559493860655362e-8,0.004021230393628464,1.5110074592057919e-5,-5.589227823087387e-8,0.004021308993990323,1.5169566143298608e-5,-5.601133518705951e-8,0.004021422225284333,1.5144214158221058e-5,-5.595940175161358e-8,0.0040216019835709,1.505150937068162e-5,-5.57712373201424e-8,0.004021873939755527,1.4922916833095616e-5,-5.550989215428107e-8,0.0040222517467002885,1.4802621499919506e-5,-5.5264327043482085e-8,0.004022730175355548,1.4742845077977562e-5,-5.513999395696767e-8,0.00402327924617558,1.4793651408929851e-5,-5.5238179247849234e-8,0.004023843665981839,1.498685836194858e-5,-5.562340967782772e-8,0.004024352851506316,1.5318263529964064e-5,-5.62874975195311e-8,0.004024743118745088,1.573836892528872e-5,-5.7130821512435726e-8,0.004024984194842726,1.6162535861771282e-5,-5.7982877436069443E-08,0.004025094377176705,1.6501026274800637e-5,-5.866291758713605e-8,0.004025133037057492,1.6693810177365013e-5,-5.9050065212816505e-8,0.0040251747474465615,1.6730082192383597e-5,-5.912247029379822e-8,0.004025281332087344,1.6644195416193686e-5,-5.894897656672424e-8,0.004025485746450353,1.6495866969054968e-5,-5.864930998217878e-8,0.004025790429201538,1.634835179138792e-5,-5.8350370181822665e-8,0.0040261746462862255,1.6253223052331517e-5,-5.815584387978385e-8,0.0040266044641294775,1.624327250382378e-5,-5.813200951807451e-8,0.004027041638836209,1.633135361213576e-5,-5.8305293951082345e-8,0.00402745025711566,1.6512469372403883e-5,-5.866622925242898e-8,0.00402780134494779,1.6767326438795646e-5,-5.917637987828972e-8,0.004028075926393701,1.7066612366788847e-5,-5.977686171643531e-8,0.004028266748303052,1.7375686093179322e-5,-6.039784671300595e-8,0.004028378700267617,1.7659404592882538e-5,-6.096841423803015e-8,0.004028427921096438,1.7886793273255926e-5,-6.142604364033798e-8,0.00402843964084909,1.8035151508268353e-5,-6.172486403108444e-8,0.004028445012514573,1.809312331270539e-5,-6.184175008856881e-8,0.0040284773268235005,1.8062494703952662e-5,-6.177988665082503e-8,0.004028567910222432,1.7958723498241694e-5,-6.156990468255793e-8,0.004028741861400401,1.781021131030546e-5,-6.12686094634135e-8,0.0040290136622913525,1.765619786846825e-5,-6.095496322789188e-8,0.0040293826809504,1.754280016104753e-5,-6.07222216328837e-8,0.004029829124215082,1.751619084809753e-5,-6.066410876225836e-8,0.004030312256108125,1.7612020509539247e-5,-6.085324393616324e-8,0.004030774031389632,1.7841815454699297e-5,-6.131341293797681e-8,0.00403115142107213,1.8180564860966387e-5,-6.199433879515745e-8,0.0040313974300052735,1.8563852856182064e-5,-6.27659191383855e-8,0.004031503203472192,1.8902856758312773e-5,-6.344869780801121e-8,0.004031507215610012,1.9116091643266002e-5,-6.387812802255732e-8,0.004031481930153734,1.916242569246173e-5,-6.397118926916185e-8,0.004031503768949901,1.9055383830683572e-5,-6.375504333127174e-8,0.004031624504421274,1.885153534554923e-5,-6.334344369125224e-8,0.00403185885677837,1.8623798019755862e-5,-6.288296518438462e-8,0.004032189274944319,1.8436620157024645e-5,-6.250321630029159e-8,0.004032579178971542,1.83324637336343e-5,-6.228981683190497e-8,0.004032986090714059,1.8329161981569122e-5,-6.227911243671427e-8,0.0040333708125981456,1.8423493871162983e-5,-6.246522183995398e-8,0.004033702484811329,1.8596808258675e-5,-6.281112340841897e-8,0.0040339608469825575,1.882045266602357e-5,-6.325939983367222e-8,0.004034137070431829,1.906045203237547e-5,-6.374161530130195e-8,0.004034233855241526,1.928170635220029e-5,-6.41868612531973e-8,0.004034264876079334,1.9452018078757834e-5,-6.453000617107153e-8,0.004034253391531761,1.9546047063260236e-5,-6.47197441623075e-8,0.004034229755724816,1.9548977882390267e-5,-6.472596597020264e-8,0.004034227730682795,1.9459320969577683e-5,-6.454533452522716e-8,0.004034279865723162,1.9290186380915923e-5,-6.420383235003002e-8,0.004034412486171448,1.9068594732676885e-5,-6.375547510633614e-8,0.00403464093034948,1.8832637893526655e-5,-6.327679436677401e-8,0.004034965687074627,1.8626536313167505e-5,-6.285707244922939e-8,0.004035370034247165,1.8493819644007736e-5,-6.258465123000945e-8,0.004035819874790727,1.846886648562048e-5,-6.252971679787746e-8,0.004036266904185114,1.856732169763407e-5,-6.272465029492704e-8,0.0040366565598250765,1.8777113738250836e-5,-6.31455681508602e-8,0.0040369414612311345,1.9053783781087113e-5,-6.370271942688705e-8,0.004037098344333292,1.932539834606959e-5,-6.42504851948613e-8,0.004037141902942749,1.951083270094533e-5,-6.462457097034529e-8,0.004037125865169994,1.954813798447868e-5,-6.46995458547251e-8,0.004037125861820998,1.9419995141300983e-5,-6.444028053955575e-8,0.00403721048480607,1.9160768124473176e-5,-6.391602935018678e-8,0.004037416430514758,1.88403649270376e-5,-6.326771012194285e-8,0.0040377405727112705,1.853563684839144e-5,-6.265022145619625e-8,0.004038149143064464,1.8305856043064805e-5,-6.218312567891382e-8,0.004038594479970898,1.8181596820678142e-5,-6.192833669694351e-8,0.004039029805036155,1.8165835433560526e-5,-6.189230839848963e-8,0.004039418015136255,1.8241197474729e-5,-6.204049708155263e-8,0.0040397350446880215,1.837815198734788e-5,-6.231370568667206e-8,0.004039969999138671,1.8541650006683282e-5,-6.264136381327966e-8,0.004040124041563737,1.8695860404660215e-5,-6.295108921511804e-8,0.004040209074777056,1.8807706049100226e-5,-6.317591860236914e-8,0.004040246363654397,1.88500021655281e-5,-6.32607471793734e-8,0.004040264737547788,1.8804636954320954e-5,-6.316879237455187e-8,0.004040297831687618,1.866571824947087e-5,-6.288791561688243e-8,0.004040379958326903,1.844201983765977e-5,-6.243550964565625e-8,0.004040540705219954,1.8157672301950075e-5,-6.185990253089828e-8,0.004040799030115895,1.7850119174229367e-5,-6.123634554926798e-8,0.0040411581509778,1.7564868093298403e-5,-6.065660011340943e-8,0.004041602732207329,1.734741098407994e-5,-6.021277355052825e-8,0.0040420995762303815,1.7233639004230466e-5,-5.997796689164541e-8,0.004042602323436688,1.724067110935005e-5,-5.998756494201581e-8,0.00404305992163886,1.736012884995211e-5,-6.022533875758978e-8,0.004043427966196684,1.7555910433464828e-5,-6.061865961283453e-8,0.0040436810936756275,1.7768500926616962e-5,-6.104709566844615e-8,0.004043823230883101,1.7927149455153616e-5,-6.1367140862782e-8,0.004043891164479845,1.7968977540453174e-5,-6.145110341710769e-8,0.004043947176700689,1.7860007267002482e-5,-6.122984744605595e-8,0.0040440603521150744,1.760913353792817e-5,-6.072111082777755e-8,0.004044282997667049,1.726658843338252e-5,-6.002633777071843e-8,0.004044633306112802,1.6905912165610116e-5,-5.929416783466505e-8,0.0040450925842591984,1.6598297213721576e-5,-5.866858772554347e-8,0.004045616463144047,1.6391968202125593e-5,-5.824729428445154e-8,0.004046152091763345,1.630410509649094e-5,-5.80653572847142e-8,0.004046652760383014,1.6324348036651065e-5,-5.8102214711525505e-8,0.004047085929565268,1.6424100266681775e-5,-5.830035937199191e-8,0.004047435228495953,1.6566189179488793e-5,-5.8584786032397173e-8,0.004047698959744002,1.671216642566975e-5,-5.8877737365682856e-8,0.004047887444712365,1.6826943646276348e-5,-5.9108127517374904e-8,0.00404802049508203,1.6881670483517197e-5,-5.9217433706880595e-8,0.004048125273323472,1.6855947238255258e-5,-5.9164217502915826e-8,0.004048234127401434,1.674008799311883e-5,-5.8928701076803824e-8,0.004048381670060571,1.6537530470193916e-5,-5.851761039418674e-8,0.004048600436416601,1.6266746291805815e-5,-5.796802584768781e-8,0.004048914984056892,1.5961326425245878e-5,-5.734760338043135e-8,0.004049335282066074,1.566668088020222e-5,-5.674801447212363e-8,0.0040498513719114376,1.5432414454828066e-5,-5.626965875165331e-8,0.004050431921230339,1.5301075079280176e-5,-5.5998974280483204e-8,0.004051028668995067,1.5296083993458358e-5,-5.598395649797168e-8,0.004051586738790464,1.5412983005455173e-5,-5.62162478465142e-8,0.004052058328986434,1.5617600591062285e-5,-5.6627167195976384e-8,0.004052415758160085,1.5852514347711364e-5,-5.7100596870077054e-8,0.004052659913064241,1.6050494133565283e-5,-5.7500160816537554e-8,0.0040528214440387015,1.6151570852562244e-5,-5.7703907353645075e-8,0.004052953861013157,1.611931020329749e-5,-5.763746552942237e-8,0.004053119682835466,1.595162622613579e-5,-5.729612717276807e-8,0.004053373025435257,1.5682212292362576e-5,-5.6747852350428666e-8,0.004053744027610918,1.537106055446932e-5,-5.611410681536437e-8,0.004054230846152612,1.5086637935810276e-5,-5.553375453822118e-8,0.004054802304411898,1.488624806595296e-5,-5.5123232299645195e-8,0.0040554095026198176,1.4802029857689209e-5,-5.494808734565473e-8,0.004056000829014219,1.4836834906018199e-5,-5.501449222707493e-8,0.0040565344012080526,1.496913360261363e-5,-5.527907211829798e-8,0.004056984713435475,1.5162646600086324e-5,-5.5668377746635783e-8,0.004057343673139978,1.537616244421555e-5,-5.609881419197702e-8,0.004057618154709957,1.5570907870645105e-5,-5.6491651348612124e-8,0.004057826336088842,1.571498161585009e-5,-5.678207302107251e-8,0.004057994236563965,1.5785663812756403e-5,-5.692387796847087e-8,0.004058152876449292,1.5770755436499932e-5,-5.6892175274642595e-8,0.004058335730497766,1.56698047725992e-5,-5.6685842838322767e-8,0.004058575736492297,1.5495479753201927e-5,-5.6330312045967666e-8,0.004058901067412491,1.5274593050186677e-5,-5.587969998232432e-8,0.0040593292989023755,1.504744016568601e-5,-5.541556302293769e-8,0.004059860688647646,1.4863522530534258e-5,-5.5038323485976716e-8,0.004060472924789321,1.4772178278052189e-5,-5.484831991380623e-8,0.004061121016256655,1.4808824187926628e-5,-5.491786333355384e-8,0.004061745398388068,1.4980995070619321e-5,-5.526278213620586e-8,0.0040622878335508355,1.5260905424743596e-5,-5.58271445794069e-8,0.00406270977840194,1.5589957864201896e-5,-5.6492254117461846e-8,0.004063005280007226,1.5895053516072876e-5,-5.71096919262533e-8,0.004063202722944347,1.611033761314179e-5,-5.7545486920249105e-8,0.004063355322523949,1.6195737978189514e-5,-5.7717829505718655e-8,0.004063524982892078,1.614629397440836e-5,-5.761611433490631e-8,0.0040637654881181635,1.5990874718776372e-5,-5.729846921069878e-8,0.0040641096822484745,1.5782374878243806e-5,-5.687200018963553e-8,0.004064563196214051,1.558309622417832e-5,-5.646323142518138e-8,0.004065105372946402,1.5449401160722053e-5,-5.6186965778914343e-8,0.004065696400389077,1.5419375479983378e-5,-5.612111731815594e-8,0.004066288252635861,1.5506240841777267e-5,-5.6293121212787874e-8,0.004066836155862962,1.5698542971993716e-5,-5.668010909236039e-8,0.004067307459695976,1.5966009975132922e-5,-5.7220705532581126e-8,0.00406768613309999,1.6268363193234948e-5,-5.783296271933897e-8,0.004067972917711898,1.6564106468153707e-5,-5.8432340733695405e-8,0.004068182486831887,1.681727652571284e-5,-5.894554234053274e-8,0.00406833933892352,1.7001503611134662e-5,-5.931880776278692e-8,0.004068473756113949,1.7101841750667816e-5,-5.952159722920657e-8,0.004068618388467829,1.7115337876791556e-5,-5.9547687041123166e-8,0.004068805319711415,1.7051183194416186e-5,-5.941546370891142e-8,0.004069063045413328,1.693080237181354e-5,-5.9168176976249445e-8,0.004069412642286213,1.6787584460103433e-5,-5.887352588619779e-8,0.004069862675046376,1.6665125654505054e-5,-5.862021049541122e-8,0.0040704033862420915,1.6612132979317868e-5,-5.8507611354420696e-8,0.004071002433343476,1.6672362317351996e-5,-5.8625252169843815e-8,0.004071606146962371,1.6870078458229394e-5,-5.90230533337598e-8,0.004072150180031084,1.7195707718266797e-5,-5.968194828764344e-8,0.004072579327330133,1.7600304654934825e-5,-6.050250155157372e-8,0.004072869038903364,1.800622384140864e-5,-6.132663264350784e-8,0.004073036765467772,1.8332569931295446e-5,-6.1989505493645e-8,0.004073135737926338,1.852349328887892e-5,-6.237718185712606e-8,0.004073234663677566,1.85650892687075e-5,-6.246099877342193e-8,0.004073394556097025,1.848476914851136e-5,-6.229627231999442e-8,0.004073652726352091,1.833737723399551e-5,-6.199414171839608e-8,0.004074017372470005,1.818678426452505e-5,-6.168431508746106e-8,0.0040744707750797445,1.808984214398682e-5,-6.148259812586677e-8,0.004074977337424825,1.8085790232343694e-5,-6.14693541796517e-8,0.004075493263269258,1.8191439776279438e-5,-6.167952512829171e-8,0.004075975798354961,1.840124607827241e-5,-6.210249277646861e-8,0.004076390776901895,1.8691144047334405e-5,-6.268964660170682e-8,0.004076717622217568,1.902494399145827e-5,-6.336732629192284e-8,0.004076951353972912,1.9361837440099986e-5,-6.405219775676581e-8,0.004077101746210127,1.96635091438295e-5,-6.46659095300111e-8,0.0040771903314508785,1.989970237527024e-5,-6.514655672234517e-8,0.004077246262806788,2.005165635670929e-5,-6.545569860243698e-8,0.004077302032084395,2.0113486301099913e-5,-6.558109876386352e-8,0.0040773896466789,2.0092092019349717e-5,-6.553647593087778e-8,0.004077537342209875,2.0006253451383885e-5,-6.535969647604283e-8,0.004077766555167821,1.988527789663943e-5,-6.511016738314298e-8,0.004078088689458051,1.976710784085783e-5,-6.486516989220184e-8,0.004078501328342447,1.96951136887764e-5,-6.471343334262049e-8,0.004078984379126887,1.971216651307541e-5,-6.474300004433253e-8,0.004079498090171917,1.985082590723176e-5,-6.502100525056876e-8,0.004079986278779378,2.0120252289371937e-5,-6.55667052274478e-8,0.004080388235941525,2.0494122797303468e-5,-6.632662153528476e-8,0.004080659282108669,2.0908086133771597e-5,-6.716933519624624e-8,0.0040807921628955995,2.1274886377819846e-5,-6.791652262392293e-8,0.004080825530396653,2.151542116556529e-5,-6.840653341073122e-8,0.00408083076942298,2.1590301346052778e-5,-6.855881484240877e-8,0.00408088328291802,2.1513241158620907e-5,-6.84010788689678e-8,0.004081035155949392,2.134019848115492e-5,-6.804703209129059e-8,0.004081302546732209,2.1144355238359504e-5,-6.764545015636383e-8,0.004081668918553097,2.0992072249557375e-5,-6.733141248227607e-8,0.00408209685499066,2.092848134334002e-5,-6.719713964870882e-8,0.004082540990125184,2.09731231952271e-5,-6.72830951751148e-8,0.004082958197133572,2.112218615191573e-5,-6.758231956110174e-8,0.00408331422869279,2.1353847294547875e-5,-6.805099975797541e-8,0.0040835874057665485,2.1634567155020024e-5,-6.862106700376206e-8,0.004083770116681637,2.1925434668298697e-5,-6.921309213990532e-8,0.004083868551366543,2.218816882099307e-5,-6.974866033503243e-8,0.0040839008942840345,2.239039499761978e-5,-7.016132947403248e-8,0.004083894232067077,2.250978778831476e-5,-7.0405207142333e-8,0.004083880571241067,2.25366960163881e-5,-7.046030306590217e-8,0.00408389252947929,2.2475031488631666e-5,-7.033426314434203e-8,0.004083959249418965,2.2341562177163083e-5,-7.00608865512821e-8,0.004084102836943754,2.2163971654346905e-5,-6.969625158825354e-8,0.004084335399848269,2.1977972812721735e-5,-6.931302372966625e-8,0.004084656614019778,2.1823582213426522e-5,-6.899305140282665e-8,0.004085051725131036,2.1740298666453316e-5,-6.881758196303943e-8,0.00408549043013785,2.1760499615591525e-5,-6.88536205880247e-8,0.004085928134416261,2.1900671848150498e-5,-6.913569532030017e-8,0.0040863118371121795,2.215161693360532e-5,-6.964550832191338e-8,0.004086592559838579,2.2471365259167905e-5,-7.029728262333709e-8,0.004086743511323791,2.278742626781085e-5,-7.094245749548945e-8,0.004086777069432108,2.3014650869490377e-5,-7.140649996468963e-8,0.004086748324489586,2.3086554162397423e-5,-7.155319319147187e-8,0.004086737210606845,2.298478523801362e-5,-7.134486880118048e-8,0.0040868162246094596,2.274751838270059e-5,-7.085933294161156e-8,0.004087022774633262,2.245098166859568e-5,-7.025197183973786e-8,0.004087351063401967,2.21773293531232e-5,-6.969023534135919e-8,0.004087762942117613,2.1988078250473938e-5,-6.929965848306815e-8,0.004088206426731321,2.1912888693068682e-5,-6.914113536613453e-8,0.0040886315320029145,2.1951514131721826e-5,-6.921484527465759e-8,0.004088999563181579,2.2082048330308014e-5,-6.947683655171173e-8,0.004089286694209541,2.227007195705091e-5,-6.985740065000953e-8,0.0040894840997412005,2.2476260228544262e-5,-7.027641992708612e-8,0.004089596524746182,2.2662126678655353e-5,-7.065510425729817e-8,0.004089640201779963,2.2794420332461283e-5,-7.092513321189004e-8,0.0040896402838893646,2.284862699133553e-5,-7.103599943485881e-8,0.004089627705490863,2.2811697616913437e-5,-7.096068474456991e-8,0.004089635411507748,2.2683801109797253e-5,-7.069921973276663e-8,0.004089694115390104,2.2478677051700234e-5,-7.027932793650815e-8,0.004089828036207196,2.2222286505042233e-5,-6.975365444924291e-8,0.004090051161470819,2.1949786269337134e-5,-6.919369964114232e-8,0.004090364511991667,2.170103932630054e-5,-6.86808528694382e-8,0.004090754790796106,2.151498959955255e-5,-6.829506592183514e-8,0.004091194666195651,2.142330844766789e-5,-6.810185855541579e-8,0.004091644993372157,2.1443624281504225e-5,-6.813824314344391e-8,0.0040920596967446154,2.1572833523424404e-5,-6.83986719144852e-8,0.004092394222561333,2.1782031162445324e-5,-6.88243378416857e-8,0.00409261763274889,2.2016102025325163e-5,-6.93022303226837e-8,0.0040927261558925485,2.2201941671687712e-5,-6.968213454108016e-8,0.004092752390399775,2.226781056753669e-5,-6.98165868041908e-8,0.004092761828782771,2.217010941896625e-5,-6.961594162020133e-8,0.004092832347522563,2.191489742469643e-5,-6.90924145000651e-8,0.004093023916310563,2.1559197363135236e-5,-6.836256507621499e-8,0.004093355382863215,2.1188443825140062e-5,-6.760103065423595e-8,0.004093801442773309,2.0883140487863215e-5,-6.697239893387999e-8,0.004094308353665391,2.0693642127327703e-5,-6.657980636574702e-8,0.004094815962852751,2.0632674505226746e-5,-6.644971858931919e-8,0.0040952745320277885,2.068224872375703e-5,-6.654596569206641e-8,0.0040956524926629954,2.0806194730034872e-5,-6.67951505187713e-8,0.004095937126088291,2.0961685991746184e-5,-6.711000602505771e-8,0.004096131713874594,2.1107263596701378e-5,-6.740571701477901e-8,0.004096251810518326,2.1207630473032185e-5,-6.760979080112129e-8,0.004096321810660583,2.123646163530461e-5,-6.766796655208107e-8,0.004096371868974252,2.117828020698269e-5,-6.754820351325027e-8,0.004096434786498749,2.102987222746858e-5,-6.724363080817744e-8,0.0040965424713340064,2.0801158863912584e-5,-6.677428971329367e-8,0.004096721827951759,2.0514974467630822e-5,-6.618661611930796e-8,0.004096990403276643,2.0205057223031076e-5,-6.554934138305202e-8,0.004097352573177603,1.9911884762201487e-5,-6.494509874821933e-8,0.0040977972420050135,1.9676507214749987e-5,-6.445798705026133e-8,0.00409829795293573,1.953307645034436e-5,-6.415839226662203e-8,0.00409881595753222,1.950131413892924e-5,-6.408749767114518e-8,0.0040993062317397294,1.958041987144307e-5,-6.424454113672405e-8,0.004099725949858662,1.9745840788228674e-5,-6.457984351456717e-8,0.004100044534043069,1.9950335607570126e-5,-6.499672432697775e-8,0.004100253632198516,2.013084019847643e-5,-6.536554032319219e-8,0.004100374104936217,2.0221969791798727e-5,-6.555157283498206e-8,0.004100455954183344,2.017477740412432e-5,-6.545379905395303e-8,0.0041005675891791,1.9975516702515512e-5,-6.504358355699308e-8,0.004100774805833544,1.965545542492212e-5,-6.438482789008002e-8,0.004101116885460426,1.928372582152993e-5,-6.361922074229146e-8,0.004101591870619371,1.894360567216253e-5,-6.291755062884213e-8,0.004102159238000308,1.8703470116557066e-5,-6.242018269746027e-8,0.00410275747591571,1.859703517591237e-5,-6.219659152435074e-8,0.0041033257619690735,1.8620141853715126e-5,-6.223872071816769e-8,0.004103819526959297,1.874065523208672e-5,-6.248114525442182e-8,0.004104216341986781,1.8912959818053868e-5,-6.283064370406833e-8,0.004104514378076207,1.909031638156852e-5,-6.319144791179558e-8,0.004104727475774354,1.9232607115184218e-5,-6.348113509152911e-8,0.004104879851426564,1.931006277488053e-5,-6.363836365897142e-8,0.004105001750774871,1.9304641429037065e-5,-6.362581755356893e-8,0.004105126061105588,1.9210481227772614e-5,-6.343120965738759e-8,0.004105285298052878,1.903412670485694e-5,-6.306774716776545e-8,0.004105508333763851,1.879451414608241e-5,-6.257405625726658e-8,0.004105816518487927,1.8522105372562953e-5,-6.201237977882163e-8,0.004106219408261088,1.8256224455901378e-5,-6.146316659960243e-8,0.004106711031782206,1.8039834534071813e-5,-6.101448588822051e-8,0.00410726820104739,1.7911758794004197e-5,-6.074620274769431e-8,0.00410785241819564,1.7897526858302653e-5,-6.071123337928272e-8,0.004108416180285091,1.8001212401072268e-5,-6.091866896065255e-8,0.0041089130241994485,1.820113748087769e-5,-6.132469615222139e-8,0.004109309104207408,1.8451646262672002e-5,-6.183595690444914e-8,0.0041095931983087045,1.869153552715818e-5,-6.232669811154938e-8,0.004109782084836411,1.8857869433917337e-5,-6.266717936609684e-8,0.004109919049387194,1.890226775739589e-5,-6.275732940350907e-8,0.004110064678761718,1.8805497319272342e-5,-6.255697025959145e-8,0.004110281124285083,1.858555641793577e-5,-6.210261238000375e-8,0.004110613703963449,1.829511610327427e-5,-6.150227952510236e-8,0.004111076186029953,1.8007169267841526e-5,-6.090602884987728e-8,0.004111646199815092,1.779292050803584e-5,-6.046048759796877e-8,0.0041122733354077975,1.770055011084275e-5,-6.026514317284309e-8,0.0041128962379817155,1.774357289428051e-5,-6.034829633072815e-8,0.004113460777981091,1.790224628658376e-5,-6.06698069713779e-8,0.004113932211375858,1.8134726118468195e-5,-6.114390913053563e-8,0.004114298813701848,1.8391239948785017e-5,-6.166830949707429e-8,0.004114568894174971,1.862570592744579e-5,-6.214811466500701e-8,0.004114764817887481,1.8802594772439982e-5,-6.251002429640857e-8,0.004114916941016438,1.8899611324047082e-5,-6.270792853777051e-8,0.004115058788903396,1.8907892822336005e-5,-6.272336282371548e-8,0.004115223529956793,1.883126597625609e-5,-6.256398245923092e-8,0.00411544112890223,1.8685396522870248e-5,-6.226179188618023e-8,0.004115735426728429,1.8496880076378558e-5,-6.187126850283822e-8,0.004116120670135077,1.830166124887891e-5,-6.146615285795259e-8,0.0041165976094830435,1.8141735245261587e-5,-6.113275473128614e-8,0.0041171501459813615,1.8059102673713814e-5,-6.095761535265301e-8,0.0041177444298378775,1.808677278934742e-5,-6.100903876410642e-8,0.0041183326482072515,1.8238377845822922e-5,-6.131565461947553e-8,0.004118862644895194,1.8500025366803055e-5,-6.184947666116739e-8,0.004119291845670744,1.882888305936909e-5,-6.252277761117837e-8,0.004119600995524518,1.916129270179671e-5,-6.320463576506777e-8,0.004119802051454148,1.9429176950619105e-5,-6.375467477591138e-8,0.004119936452241972,1.9579389208801835e-5,-6.406297574667329e-8,0.004120063979010977,1.958911524116044e-5,-6.408192449547398e-8,0.004120246088908799,1.9472222424355246e-5,-6.383944294513096e-8,0.00412052913259154,1.927501773422856e-5,-6.343041897475507e-8,0.004120932292519319,1.906320686341203e-5,-6.299000026420115e-8,0.0041214433902594435,1.890409343719484e-5,-6.265701578056743e-8,0.004122023468462977,1.884920647966687e-5,-6.253815085908088e-8,0.004122618451191795,1.8922390072082127e-5,-6.268323571647604e-8,0.004123173897075194,1.911656377839061e-5,-6.307832429936484e-8,0.0041236480036418895,1.939920158835302e-5,-6.365677983994343e-8,0.004124019202185466,1.9723461236942205e-5,-6.432213367561228e-8,0.004124287288244285,2.0040448516884058e-5,-6.49734234542431e-8,0.004124469567213898,2.0308896945277934e-5,-6.552527867409888e-8,0.004124594685466592,2.050066336393985e-5,-6.591937018917111e-8,0.004124696486907284,2.0602417835979338e-5,-6.61279466825767e-8,0.004124809121272801,2.0614914334906605e-5,-6.615231627858997e-8,0.00412496354787499,2.055127128513555e-5,-6.601926590271963e-8,0.004125184918062037,2.0435134717556e-5,-6.57772755655983e-8,0.004125490124622406,2.029885113054249e-5,-6.549281651963915e-8,0.004125884999648892,2.0181120072676474e-5,-6.524562199853932e-8,0.004126361187835996,2.012312227810521e-5,-6.512079755335909e-8,0.004126893637683346,2.016202160381174e-5,-6.519543374690128e-8,0.0041274407643772945,2.0321520249793008e-5,-6.551902559572129e-8,0.0041279499280898095,2.0601210358685798e-5,-6.609131944530118e-8,0.00412836969991199,2.0969274287628928e-5,-6.684706034379096e-8,0.004128666706476001,2.1364544730577544e-5,-6.766013860494177e-8,0.0041288402130868545,2.1711284432474734e-5,-6.837410979895914e-8,0.0041289260941142205,2.1943052421982018e-5,-6.88515335136089e-8,0.0041289863790102055,2.2025323150899638e-5,-6.902071138081227e-8,0.004129088666642758,2.1966206179071726e-5,-6.889782614187511e-8,0.0041292849632450085,2.1811418243791324e-5,-6.857662713945957e-8,0.0041295982485091585,2.1627811881081866e-5,-6.819461136355642e-8,0.004130019713586947,2.1483464269815928e-5,-6.789215710034456e-8,0.004130514847826705,2.1431037977969292e-5,-6.777831067919666e-8,0.004131034556120914,2.1497848193685356e-5,-6.79102050168444e-8,0.0041315275855180284,2.1683260008845836e-5,-6.828741599827955e-8,0.0041319514162801475,2.196236627165169e-5,-6.885922779761631e-8,0.0041322797208666745,2.2294052841138688e-5,-6.95410620986726e-8,0.004132505435793167,2.2631076927335552e-5,-7.023526137874012e-8,0.004132639559466678,2.2929656701609897e-5,-7.085103297987233e-8,0.0041327068073958445,2.3156619956378226e-5,-7.131941152567361e-8,0.004132739789933165,2.329325563893979e-5,-7.160135080100659e-8,0.0041327732697304005,2.3336073204430915e-5,-7.168931655885992e-8,0.004132839498526474,2.3295362222597494e-5,-7.160425905283545e-8,0.00413296489491445,2.319267720853539e-5,-7.139037898864675e-8,0.004133167727447015,2.3058081690060263e-5,-7.110948143247038e-8,0.004133456251584568,2.2927368246838634e-5,-7.083536734083875e-8,0.004133826864680379,2.2838893766911416e-5,-7.064744138921729e-8,0.004134262246139552,2.2829234263837425e-5,-7.062178621276581e-8,0.004134730285875639,2.2926717969593375e-5,-7.081769093706275e-8,0.004135185707911027,2.31425991815179e-5,-7.125916402041035e-8,0.0041355769071945506,2.346164589422353e-5,-7.191520269449173e-8,0.004135859441965122,2.383687117408675e-5,-7.268874415754124e-8,0.00413601369908566,2.4195039750171892e-5,-7.342810252300716e-8,0.004136058529573073,2.4456681249135846e-5,-7.396855759155849e-8,0.004136050487278654,2.456513384479195e-5,-7.419258398190955e-8,0.004136065019007573,2.4509860369459744e-5,-7.407805053129414e-8,0.004136168231272512,2.4330162569653813e-5,-7.370577611668552e-8,0.004136394459822497,2.409789030051738e-5,-7.322376999160329e-8,0.0041367395368764786,2.389056192725738e-5,-7.279186780905995e-8,0.0041371686481556655,2.3768649735412706e-5,-7.253505860848046e-8,0.004137631091783037,2.3763952092816136e-5,-7.251957894397494e-8,0.0041380747660009765,2.3878490225956004e-5,-7.275049880309497e-8,0.004138456791204421,2.4090059448810835e-5,-7.318286374029693e-8,0.004138749601503419,2.4360668956780575e-5,-7.37387885346733e-8,0.004138943194899096,2.4645468588374668e-5,-7.4325712073413e-8,0.004139044422775969,2.49009409295305e-5,-7.485336553975188e-8,0.0041390740178470385,2.509158954761269e-5,-7.52478055388981e-8,0.004139062078858488,2.519450532721772e-5,-7.546109277291754e-8,0.004139042857680081,2.5201537323836e-5,-7.547591881161818e-8,0.004139049681730755,2.5119185084212284e-5,-7.530538123596477e-8,0.004139110696144454,2.4966623708413148e-5,-7.498882514872912e-8,0.004139245793706889,2.4772544989273615e-5,-7.458527889421062e-8,0.004139464664095014,2.4571523457755883e-5,-7.416602259172535e-8,0.0041397656452513715,2.4400247311316832e-5,-7.380696250121588e-8,0.004140135103394312,2.4293510720908743e-5,-7.358048043260725e-8,0.004140547313718007,2.427954414351527e-5,-7.354575599206736e-8,0.004140965413628404,2.4374141223041407e-5,-7.373639326420042e-8,0.004141344873455721,2.457362346913388e-5,-7.414551482757032e-8,0.004141641326420783,2.48483642172095e-5,-7.471205791422762e-8,0.0041418235765014145,2.5141002654557318e-5,-7.53169965475809e-8,0.004141889215372904,2.537511100337642e-5,-7.58014858398564e-8,0.004141874921065243,2.5477517766043897e-5,-7.601342829768719e-8,0.004141851043315424,2.5408217951499304e-5,-7.58696248028512e-8,0.004141897199717203,2.5181416417097176e-5,-7.539927233814727e-8,0.004142070032062376,2.4862233791190885e-5,-7.473692425033855e-8,0.004142382136416294,2.4539521848464896e-5,-7.406615519129582e-8,0.004142802962387187,2.4291862821753357e-5,-7.354938496791458e-8,0.004143276515293847,2.4165133492908547e-5,-7.328171206236878e-8,0.004143742610608551,2.416776805253065e-5,-7.328119646301892e-8,0.004144152149564842,2.427840550811608e-5,-7.350451056510971e-8,0.004144474270556827,2.4457891470911152e-5,-7.387144252687797e-8,0.004144697408744952,2.4660435604785124e-5,-7.428767698568889e-8,0.004144827026181618,2.484202674459949e-5,-7.466207837487929e-8,0.004144881994566124,2.4966196964502726e-5,-7.491871231531306e-8,0.0041448905048311665,2.500781452275799e-5,-7.500493400442998e-8,0.004144885711446158,2.4955282841337656e-5,-7.489617429690564e-8,0.004144901261135358,2.481120187725696e-5,-7.459741678649363e-8,0.004144966982912023,2.4591489692204364e-5,-7.41413441693972e-8,0.004145105121592094,2.4322991873659133e-5,-7.358329870301691e-8,0.004145327544473218,2.403980237268326e-5,-7.299364256044502e-8,0.004145634190738719,2.377879003345024e-5,-7.24485997969921e-8,0.0041460127758167105,2.3574818073592004e-5,-7.202053283003591e-8,0.00414643966336036,2.3455929817344242e-5,-7.17680808924154e-8,0.004146881876040019,2.343860803994068e-5,-7.172625974921142e-8,0.0041473004753961136,2.3523144481116746e-5,-7.189658153429537e-8,0.004147656007247302,2.3689506623327728e-5,-7.223811648289735e-8,0.004147916808771172,2.3895221603221915e-5,-7.266284458651311e-8,0.0041480699650081705,2.4078275121643128e-5,-7.304167053080141e-8,0.004148132195104441,2.4168654642653938e-5,-7.322864004199276e-8,0.004148154320381181,2.4109831376965727e-5,-7.310586674653458e-8,0.004148211444887462,2.388423375298592e-5,-7.263656875158706e-8,0.004148377033934869,2.3528252738308904e-5,-7.189610084153054e-8,0.004148691963497075,2.3123109596003326e-5,-7.105280147716092e-8,0.0041491473031022115,2.27629923552026e-5,-7.030185625864194e-8,0.004149691355374006,2.251899382813585e-5,-6.979067613092937e-8,0.004150253959921051,2.2418989460666156e-5,-6.957735617198645e-8,0.0041507716459602394,2.2449203170718728e-5,-6.963393426794152e-8,0.0041512023452277315,2.2568972898863263e-5,-6.987681903782312e-8,0.004151528686471275,2.2727414027209948e-5,-7.020106669410957e-8,0.004151754402958528,2.287579296648152e-5,-7.050582576156142e-8,0.004151898371708361,2.2974592076086222e-5,-7.070894000466604e-8,0.004151988885126911,2.2996670531363484e-5,-7.075363347500511e-8,0.004152058955955876,2.2928322974470473e-5,-7.061092750138042e-8,0.004152142382845093,2.2769356506527704e-5,-7.02799821925708e-8,0.0041522701226427315,2.253246200945357e-5,-6.978684571499767e-8,0.004152466791086021,2.2241707192617996e-5,-6.91812637823709e-8,0.004152747431065876,2.192983419561754e-5,-6.853098876725601e-8,0.004153115009949348,2.163416853510276e-5,-6.791329347391853e-8,0.004153559267504416,2.1391372281000134e-5,-6.740420502635174e-8,0.004154057371060857,2.1231670864169294e-5,-6.706668724391143e-8,0.004154576533781043,2.1173336928637963e-5,-6.693925978559595e-8,0.004155078480972005,2.121824985076246e-5,-6.702665399660066e-8,0.00415552544495053,2.1349266802329204e-5,-6.729405133405011e-8,0.004155887326128362,2.153005321203464e-5,-6.76663910045802e-8,0.004156149549489265,2.1708297200182368e-5,-6.803485371706521e-8,0.004156320429207047,2.18236504091612e-5,-6.827342868724723e-8,0.004156435436193511,2.1821325191162423e-5,-6.826745995209362e-8,0.004156554325266331,2.1670061717922965e-5,-6.795132318021076e-8,0.004156747395736589,2.137880483492358e-5,-6.734326680703699e-8,0.004157071827894007,2.100211751024774e-5,-6.655662407843876e-8,0.004157547507220719,2.0626045399976664e-5,-6.577030263586701e-8,0.004158146618620178,2.033725265562143e-5,-6.516458127082557e-8,0.0041588047435924405,2.0191197783449442e-5,-6.485500848833399e-8,0.00415944679960301,2.0196654226797564e-5,-6.486025586921148e-8,0.004160012347865569,2.0321627878139327e-5,-6.51143438105989e-8,0.004160468885463152,2.0512010737360385e-5,-6.550526134746365e-8,0.004160812154099564,2.071068901280456e-5,-6.591452917912113e-8,0.004161059067630895,2.087014425419266e-5,-6.624331294613351e-8,0.004161239040043181,2.095792204410952e-5,-6.642382604808944e-8,0.004161386829742425,2.095738077188751e-5,-6.642102047979822e-8,0.0041615375835493676,2.0866361049708102e-5,-6.622998144256762e-8,0.004161723445766619,2.069540030448162e-5,-6.587231810027344e-8,0.004161970833005958,2.0465957657424777e-5,-6.53924752623177e-8,0.004162297807662163,2.0208374532718804e-5,-6.485342857751e-8,0.004162711465524075,1.9958972538912966e-5,-6.433060157681065e-8,0.004163205788963567,1.9755721872438256e-5,-6.390289279020207e-8,0.004163760874885751,1.9632401292486634e-5,-6.364064398012052e-8,0.0041643445126078645,1.9611945515193513e-5,-6.359191191485507e-8,0.004164916661599382,1.9700370056451175e-5,-6.376982675484982e-8,0.004165436593260296,1.9883038081479463e-5,-6.414465536185601e-8,0.004165871533002719,2.0124840290481865e-5,-6.464389273479223e-8,0.004166204973161034,2.03750141868381e-5,-6.516203187808346e-8,0.0041664427071129,2.0576291719662896e-5,-6.557950750839939e-8,0.004166614831251215,2.067725739446178e-5,-6.578854573835485e-8,0.004166772201513261,2.064596860090837e-5,-6.572180046924913e-8,0.004166976394844767,2.0481684872547044e-5,-6.537706967734264e-8,0.004167283762105637,2.0220289969068403e-5,-6.482876722062341e-8,0.0041677270966903575,1.9928853053708316e-5,-6.42166276496646e-8,0.004168301889621721,1.9687639520167372e-5,-6.370817178698891e-8,0.004168964945397345,1.9564346141463034e-5,-6.344493463573707e-8,0.0041696482095524585,1.9591663234778752e-5,-6.349560115607152e-8,0.004170281928490304,1.975909669494271e-5,-6.383883261318782e-8,0.004170815776114936,2.002177562328637e-5,-6.438149484450375e-8,0.004171229165072177,2.0319307693815556e-5,-6.499787658365365e-8,0.004171529641595815,2.0594371506068787e-5,-6.556842529790701e-8,0.004171744205095692,2.08044574697309e-5,-6.600426377969002e-8,0.004171909319060356,2.0925909999591906e-5,-6.625570255367975e-8,0.004172063035543002,2.095283945319605e-5,-6.631007474738575e-8,0.004172240006446445,2.0893942567726186e-5,-6.618518936112582e-8,0.004172468631381149,2.0769185793469826e-5,-6.592244924085984e-8,0.00417276921141435,2.0606998287037323e-5,-6.558098507505531e-8,0.004173152263607924,2.044171213681954e-5,-6.523229587640529e-8,0.004173616699217774,2.0310521591751063e-5,-6.49539193513707e-8,0.004174148228173609,2.0249146804649307e-5,-6.482044670278411e-8,0.0041747190205534725,2.0285797724636808e-5,-6.489100076513135e-8,0.004175290038969232,2.043401685070224e-5,-6.519431780277011e-8,0.004175817138082009,2.0686286120805764e-5,-6.571531492271147e-8,0.004176260742955059,2.1011275247548487e-5,-6.638915896100802e-8,0.004176596947866172,2.135738903704526e-5,-6.710846106930013e-8,0.004176826283818876,2.1663316572518304e-5,-6.774516430718877e-8,0.004176976440504031,2.187329985370935e-5,-6.818241888125293e-8,0.004177097171342621,2.1952541600749897e-5,-6.834687461472092e-8,0.004177248393652027,2.1897850265493772e-5,-6.823110493770005e-8,0.004177484698447774,2.1740143881249863e-5,-6.789904756326871e-8,0.004177840456289382,2.153777152476557e-5,-6.74722389787032e-8,0.004178319648003268,2.1361956093379974e-5,-6.709951969906079e-8,0.004178893720907776,2.1277850737766288e-5,-6.69174602353876e-8,0.004179508920172153,2.1326593435868438e-5,-6.701273548062968e-8,0.00418010143870764,2.1514398644594126e-5,-6.739909921106913e-8,0.004180615325979776,2.181278040040501e-5,-6.801760816720763e-8,0.004181016588925626,2.2169477458321236e-5,-6.875930338309788e-8,0.004181298828271539,2.2524986894682156e-5,-6.949975199756988e-8,0.004181480040607371,2.282791399696808e-5,-7.013122390191389e-8,0.0041815939531634075,2.304443453220907e-5,-7.058260201965475e-8,0.004181680312312281,2.3160968578745368e-5,-7.082508197011263e-8,0.0041817771738139765,2.31820016723154e-5,-7.086767934850143e-8,0.004181916138040746,2.3125777208913207e-5,-7.074824050457918e-8,0.004182119981389813,2.301988109644779e-5,-7.052420786013162e-8,0.004182401587912403,2.2897560902910874e-5,-7.026493333350233e-8,0.004182763226082177,2.279464572132352e-5,-7.004528039888718e-8,0.004183195714757309,2.27463722411251e-5,-6.993905040066949e-8,0.0041836776903782045,2.2783245722880823e-5,-7.001037080800247e-8,0.004184175936522711,2.2925337371297516e-5,-7.030174363642383e-8,0.004184648351533992,2.3175376573468616e-5,-7.081948145094982e-8,0.00418505106926234,2.351265779926658e-5,-7.152078397866612e-8,0.00418534981740814,2.3891456557676195e-5,-7.231026107348822e-8,0.004185532699444083,2.4247798955379997e-5,-7.305402455302344e-8,0.0041856186975773695,2.4515523630203316e-5,-7.361333203789702e-8,0.004185656116733408,2.4647127383329684e-5,-7.388829334143641e-8,0.004185709463990267,2.4630561585255983e-5,-7.385309068068146e-8,0.004185839553237669,2.4494045601495442e-5,-7.356612233607162e-8,0.004186085175026919,2.4297013898756418e-5,-7.315119149276783e-8,0.004186453058714402,2.4111865678345753e-5,-7.275951997366621e-8,0.00418691819641979,2.4003918546233812e-5,-7.252797509274851e-8,0.004187432570247736,2.4015686123816057e-5,-7.254618294928173e-8,0.004187938527366445,2.4158751006996613e-5,-7.283932258420115e-8,0.00418838289655064,2.4413937365967342e-5,-7.336815666881627e-8,0.004188728513422404,2.4738606360928003e-5,-7.404399556996649e-8,0.00418896077263449,2.5078536869024493e-5,-7.475342352649681e-8,0.004189088187108331,2.5380979408035573e-5,-7.538568393181177e-8,0.004189137637378765,2.560542386655624e-5,-7.585541248978948e-8,0.004189146482758514,2.5729746333905715e-5,-7.611571356090715e-8,0.004189154226481784,2.5751295531856018e-5,-7.616056328669566e-8,0.004189195811872894,2.5684118435083626e-5,-7.601902615037475e-8,0.004189297432699497,2.55542284301067e-5,-7.574531169066045e-8,0.004189474640743976,2.539461358412779e-5,-7.54082984053367e-8,0.004189731923761839,2.5240920754474522e-5,-7.508253449426259e-8,0.004190062893369365,2.5127892543049684e-5,-7.484086743090381e-8,0.004190450577587119,2.508605327542561e-5,-7.474758404267058e-8,0.004190867863493793,2.5137902888573805e-5,-7.48504270355493e-8,0.004191278851066964,2.5293029167128904e-5,-7.517021445445091e-8,0.004191642553303303,2.55423836176811e-5,-7.568861108228818e-8,0.004191920429727899,2.585359199989586e-5,-7.633807975528864e-8,0.004192087961726734,2.6171043691637975e-5,-7.700197953776512e-8,0.0041921473996541884,2.6425138639552714e-5,-7.753404214212685e-8,0.004192134962329874,2.655208648022618e-5,-7.780007245043969e-8,0.004192114992464122,2.6518357750800253e-5,-7.772933711625707e-8,0.004192159595389882,2.6337159580545134e-5,-7.734907825665287e-8,0.0041923223662205,2.6066037508450072e-5,-7.677941655751047e-8,0.004192619875803577,2.578592305862587e-5,-7.618950486964727e-8,0.0041930293080447165,2.557321200031067e-5,-7.57392457018824e-8,0.004193500258489232,2.5478197525003033e-5,-7.553431849801728e-8,0.004193972401104941,2.5516253407646417e-5,-7.560771560475328e-8,0.004194391412284077,2.5670481527066318e-5,-7.592504671513956e-8,0.004194719476384159,2.5901118869691845e-5,-7.640387556528128e-8,0.004194939943894964,2.6157253045760205e-5,-7.693795310378307e-8,0.004195057196908215,2.6387965736528168e-5,-7.742045708403442e-8,0.004195093049339342,2.655137914482246e-5,-7.776307074307687e-8,0.0041950809049979216,2.662075619193178e-5,-7.790902792572845e-8,0.0041950589164355375,2.6587196549228087e-5,-7.783901651533447e-8,0.004195063418449753,2.6459035460426867e-5,-7.75700484300396e-8,0.004195123687424457,2.6258649342688074e-5,-7.714875237095379e-8,0.004195258624765763,2.6017731648806405e-5,-7.664139315682479e-8,0.0041954753979068695,2.5772178721423704e-5,-7.612311259338277e-8,0.004195769575099257,2.5557431308106203e-5,-7.566822001278618e-8,0.004196126138573454,2.540453466231477e-5,-7.534204817948078e-8,0.004196520954855405,2.53367037714102e-5,-7.51938225051339e-8,0.004196922622790946,2.5365966871741377e-5,-7.524954946219042e-8,0.004197295156724912,2.5489504985313087e-5,-7.550410520029874e-8,0.004197602564194241,2.5685951525308174e-5,-7.591317047680027e-8,0.004197816369561635,2.5913292788382522e-5,-7.638861304882352e-8,0.004197925960352721,2.6111518336327034e-5,-7.68040568734833e-8,0.004197949030411529,2.6213720596972247e-5,-7.701841069760118e-8,0.004197935777056729,2.6166841984154432e-5,-7.691972134593537e-8,0.004197959246279704,2.5955973534895593e-5,-7.647632694596954e-8,0.004198090449018128,2.561816100677808e-5,-7.576574198158926e-8,0.0041983690577137925,2.523320397695459e-5,-7.495518310321368e-8,0.00419878704502883,2.4893403872054307e-5,-7.423809664192561e-8,0.004199294657828197,2.466944744060831e-5,-7.37627848726335e-8,0.004199822567905109,2.4590529631573546e-5,-7.35909004360926e-8,0.004200305861270729,2.4644214422214637e-5,-7.369713717322046e-8,0.0042006995521685,2.478930388189759e-5,-7.399597656866322e-8,0.0042009837510207735,2.497203494463084e-5,-7.437531825774549e-8,0.004201161612568837,2.5139530804678885e-5,-7.472443695283559e-8,0.0042012538478359,2.524867550071118e-5,-7.495254886807737e-8,0.004201292331705662,2.527094607106964e-5,-7.49991216701699e-8,0.00420131393742547,2.5194311755950153e-5,-7.483814941996342e-8,0.004201354951284227,2.502295376661067e-5,-7.447781373617757e-8,0.0042014462866753815,2.4775206437341213e-5,-7.395626000164893e-8,0.004201609778427287,2.448005996210069e-5,-7.333420007618452e-8,0.004201855844869758,2.4172631007671907e-5,-7.268529378705414e-8,0.004202182698645817,2.3889171851144942e-5,-7.208562808425933e-8,0.004202577017310062,2.3662279170995062e-5,-7.160372968477706e-8,0.004203015758641201,2.351672818202007e-5,-7.129194406720078e-8,0.004203468829726377,2.3466037764782944e-5,-7.11792747736706e-8,0.004203902457944527,2.3509754658052647e-5,-7.126556074908164e-8,0.004204283346550584,2.3631449505063676e-5,-7.151698648158335e-8,0.004204584061959764,2.3797752657327603e-5,-7.186374646115213e-8,0.0042047900364866496,2.3959694992948275e-5,-7.22027000677904e-8,0.0042049075001769935,2.4058568751254713e-5,-7.240978381987185e-8,0.004204969667533672,2.4038460412971196e-5,-7.23666645880367e-8,0.004205036113172845,2.386531479855544e-5,-7.200115046387884e-8,0.004205179685910332,2.3546624248548318e-5,-7.132872503889457e-8,0.0042054607744250174,2.313929579412769e-5,-7.046897812798647e-8,0.00420589989798239,2.27347232082449e-5,-6.961404483515537e-8,0.004206466015888612,2.242427014344388e-5,-6.895601774624227e-8,0.004207089445384607,2.2264274521212205e-5,-6.861351443079364e-8,0.004207690765000283,2.2260358548173973e-5,-6.859880736537034e-8,0.004208207794816714,2.2375384589948536e-5,-6.883449347627073e-8,0.004208608832725967,2.2550256047354552e-5,-6.919700655526116e-8,0.004208892174623421,2.2724239908018644e-5,-6.955907850228315e-8,0.0042090782601795,2.284808125073127e-5,-6.981713891001085e-8,0.004209200296160906,2.2889691428958756e-5,-6.990328564693268e-8,0.004209296350094005,2.283492007234416e-5,-6.97870980120373e-8,0.004209403565906254,2.268592751806816e-5,-6.947247890090181e-8,0.004209554005893156,2.2458595057271006e-5,-6.899240475833879e-8,0.004209771538720962,2.2179411033598958e-5,-6.840241608206303e-8,0.00421006954601963,2.1881833085248087e-5,-6.777287276654248e-8,0.0042104495193963105,2.1602047665670182e-5,-6.717991814560981e-8,0.0042109008189892645,2.137421177667367e-5,-6.669544160393412e-8,0.004211401868604031,2.1225620883696596e-5,-6.637699983388579e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json new file mode 100644 index 00000000..ea901034 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":25000,"numberOfSamples":1000,"samples":[0.0042119228229227776,2.117242668988509e-5,-6.625892772821196e-8,0.00421242951621424,2.1216421815835606e-5,-6.634559593072919e-8,0.004212888396602669,2.1343324948057996e-5,-6.660764965178544e-8,0.004213272077688695,2.1522955697259163e-5,-6.698208934125665e-8,0.004213565153061029,2.171164617537871e-5,-6.737707330135306e-8,0.004213769823711238,2.1857483451438128e-5,-6.768286051317844e-8,0.004213910198871436,2.190927122349849e-5,-6.779084064030356e-8,0.004214032922657624,2.1829493537962127e-5,-6.762116816618272e-8,0.004214200852587069,2.160938196621095e-5,-6.71548148810529e-8,0.004214477322022827,2.1280462370500936e-5,-6.645802296286292e-8,0.004214903100503305,2.091373094832423e-5,-6.568048925307495e-8,0.004215475880773675,2.0600151223130995e-5,-6.501412598684065e-8,0.004216145898744334,2.0417442948628495e-5,-6.462301093688222e-8,0.004216833579580056,2.0400376819345232e-5,-6.458079850055622e-8,0.004217459970123071,2.053157579362677e-5,-6.485132807375522e-8,0.004217972502130171,2.0755398012646987e-5,-6.531780445307867e-8,0.004218354775674382,2.100283844312381e-5,-6.583514699901046e-8,0.004218621473875984,2.1213061032032433e-5,-6.627523661803764e-8,0.004218806437975746,2.1344829856945014e-5,-6.655094448616457e-8,0.0042189509605779895,2.1378863630848206e-5,-6.662115374902181e-8,0.004219095409105211,2.1315105530184897e-5,-6.648517553484988e-8,0.004219274283414654,2.1168357298914947e-5,-6.617374421911176e-8,0.0042195135261831026,2.0964046864058137e-5,-6.574021509881736e-8,0.0042198289277669875,2.0734467344645254e-5,-6.52526270229363e-8,0.004220225061155502,2.0515161357874974e-5,-6.478598265567233e-8,0.004220694716869642,2.0341013243499278e-5,-6.441392136515793e-8,0.004221219187507694,2.024179213121955e-5,-6.419932023758131e-8,0.004221769966808666,2.0237378693578086e-5,-6.418431147260425e-8,0.0042223122778394,2.033346797221274e-5,-6.438129961003437e-8,0.004222810379006872,2.051879431947242e-5,-6.47670814186124e-8,0.0042232340746766765,2.0764877854194254e-5,-6.528213506219293e-8,0.004223565395287756,2.1029006330211313e-5,-6.583665389689409e-8,0.004223804128873946,2.1260585340412296e-5,-6.632374566900979e-8,0.004223970876957566,2.1410361180324564e-5,-6.663887945834917e-8,0.004224106369310762,2.14415465441151e-5,-6.670356203916723e-8,0.0042242657983087495,2.134115638552841e-5,-6.648957977625455e-8,0.004224507399419219,2.112855412696634e-5,-6.603731852191216e-8,0.004224876159364572,2.085686994094544e-5,-6.545888489491197e-8,0.004225386732174476,2.0603067839644234e-5,-6.491709513429656e-8,0.004226013160943935,2.0446027498544085e-5,-6.457905743766462e-8,0.004226693128151923,2.043932475634994e-5,-6.45585312505897e-8,0.004227347974683707,2.059163946791718e-5,-6.487440472016235e-8,0.004227909703767054,2.086563813515611e-5,-6.544822544194953e-8,0.004228341362829596,2.1195202646072075e-5,-6.614053530613902e-8,0.004228642402086946,2.1510125092377255e-5,-6.680302045077538e-8,0.004228840647210552,2.1755805619472572e-5,-6.732012834688552e-8,0.004228978598476052,2.190213346099413e-5,-6.762786101905045e-8,0.0042291010496863166,2.194302357527711e-5,-6.771287814009528e-8,0.0042292470592518745,2.1891133200885374e-5,-6.760145956889963e-8,0.004229446049571827,2.1771621167792976e-5,-6.73464393792848e-8,0.004229716468222322,2.1616855272094037e-5,-6.701607817399818e-8,0.004230065522044785,2.146232151279719e-5,-6.668539495546459e-8,0.004230489183412082,2.134317016838142e-5,-6.642880367863476e-8,0.004230972374903851,2.12906866823376e-5,-6.631261090471438e-8,0.004231489771832401,2.132821216102119e-5,-6.638640134078987e-8,0.00423200798906628,2.1466603019303647e-5,-6.667347585959588e-8,0.004232489876042049,2.1700112891328544e-5,-6.716214332465655e-8,0.004232901078212662,2.2004253231900497e-5,-6.780110661848243e-8,0.0042332180115707534,2.233735468493118e-5,-6.850259405413669e-8,0.004233435294041164,2.264690582136456e-5,-6.915558955274176e-8,0.004233570081750011,2.288024682846949e-5,-6.964836523197342e-8,0.004233661175459219,2.299740945877807e-5,-6.989570010663392e-8,0.00423376212210765,2.298272324126421e-5,-6.986362270031153e-8,0.004233929261141872,2.2851697779811398e-5,-6.958422181245012e-8,0.004234207211841524,2.2650495622957343e-5,-6.915475814576002e-8,0.004234615425259081,2.2446809897144912e-5,-6.871849564593151e-8,0.004235140014210337,2.231313047848069e-5,-6.842929415254376e-8,0.004235734703969059,2.230620625541042e-5,-6.840801170460767e-8,0.004236332511029088,2.2449320169543877e-5,-6.870475534746973e-8,0.004236865352914913,2.2724777630289437e-5,-6.928273029224622e-8,0.004237284245080581,2.3080599212484498e-5,-7.003223837757029e-8,0.004237571736415137,2.3448608166368112E-05,-7.080893495957507e-8,0.004237742342841121,2.3765484141766943e-5,-7.147847424023432e-8,0.004237833085799702,2.3988137660734125e-5,-7.194917126202141e-8,0.004237890189882673,2.4099447950975766e-5,-7.218425790080511e-8,0.004237957595590428,2.4105773514283147e-5,-7.219670738284095e-8,0.004238069919582637,2.4030269658422523e-5,-7.203516533111505e-8,0.004238249618365501,2.39056679238968e-5,-7.176871236223504e-8,0.004238506777009503,2.376842054507791e-5,-7.14744782604305e-8,0.004238839960336995,2.3654485763485328e-5,-7.122870298290076e-8,0.004239237195182148,2.359612316887198e-5,-7.109993006965748e-8,0.00423967689584437,2.3618836515735366e-5,-7.114251881836275e-8,0.00424012919339875,2.3737839999153642e-5,-7.138914208350213e-8,0.004240558555859129,2.3954028829091893e-5,-7.184219988672258e-8,0.004240928632216016,2.425035359666654e-5,-7.246603747851151e-8,0.004241209686151803,2.4590515496345863e-5,-7.31840475098621e-8,0.004241387602314709,2.4922420371615704e-5,-7.388587732093796e-8,0.00424147157146284,2.5187961743731242e-5,-7.44481247159738e-8,0.004241496426214619,2.5338027012562994e-5,-7.476619148263978e-8,0.004241516665120159,2.53481927416961e-5,-7.478765248745461e-8,0.004241592614544567,2.5228750538790737e-5,-7.453362965654456e-8,0.004241773093309497,2.5024267468472517e-5,-7.409800415341168e-8,0.004242080828456248,2.480219962828495e-5,-7.362345063271682e-8,0.004242505642303187,2.463448176734963e-5,-7.326256531566072e-8,0.004243007230734643,2.4578174120876555e-5,-7.313688342900408e-8,0.004243526169055569,2.4660842178798045e-5,-7.330574786416262e-8,0.004243999680967984,2.4874463362710607e-5,-7.375310120416703e-8,0.0042443776570801894,2.5179193207145155e-5,-7.439515440950807e-8,0.004244634361830328,2.551555261019759e-5,-7.510602778954726e-8,0.0042447725833558445,2.5820973313206575e-5,-7.575282082432305e-8,0.004244819645713096,2.6045265557054406e-5,-7.622855268466984e-8,0.004244817657500771,2.6160427534331055e-5,-7.647316726976563e-8,0.004244812063322777,2.6162998914343238e-5,-7.647870316326475e-8,0.004244842201737484,2.6070232563465724e-5,-7.628128320228887e-8,0.004244935733735506,2.5913058455968382e-5,-7.594622609168704e-8,0.004245106822619801,2.572872050475992e-5,-7.555241538069889e-8,0.004245356804103788,2.5554802441117856e-5,-7.517960510152853e-8,0.004245675934005867,2.5425040582432493e-5,-7.48995353162313e-8,0.004246045266184226,2.53664067068817e-5,-7.47697603900719e-8,0.004246438382144604,2.5396616745149382e-5,-7.482836234073875e-8,0.004246823330043397,2.552139706651534e-5,-7.508808847131201e-8,0.004247165619004974,2.5731389115804212e-5,-7.55296442638736e-8,0.004247433275937945,2.5999499171301278e-5,-7.609589214748047e-8,0.0042476044631466715,2.6280705900143398e-5,-7.669131102787287e-8,0.004247676613223559,2.6517177808645175e-5,-7.719284879324458e-8,0.004247673609435171,2.6650746595202952e-5,-7.747651982304646e-8,0.004247645708001549,2.66412350943042e-5,-7.74564776254694e-8,0.004247658309913079,2.6483856580341366e-5,-7.712204781528955e-8,0.004247771456591539,2.6216061034290582e-5,-7.655226898516179e-8,0.004248018640476505,2.590800755606473e-5,-7.589568494417051e-8,0.004248395212570714,2.563994069145496e-5,-7.532244221725396e-8,0.004248861259489376,2.5477021622606432e-5,-7.497104067998361e-8,0.00424935590167607,2.5452038700586148e-5,-7.491170753332291e-8,0.004249815624233812,2.5560514080836893e-5,-7.513587325912593e-8,0.0042501900081495896,2.5766672608186727e-5,-7.556853344785969e-8,0.004250451383611506,2.6015861961209102e-5,-7.609427999654669e-8,0.0042505977356969114,2.6248914551540066e-5,-7.658758795271883e-8,0.0042506498090625795,2.6415031884901112e-5,-7.694017883491166e-8,0.004250644097952955,2.648096828203765e-5,-7.708071584908982e-8,0.0042506237812728765,2.6435303290169302e-5,-7.698415129034421e-8,0.004250629816343292,2.6287691938557887e-5,-7.667036324682085e-8,0.0042506940711203485,2.6064200669597658e-5,-7.619435383064163e-8,0.00425083548128867,2.5800616341765846e-5,-7.563201480582007e-8,0.004251059186062351,2.5535598231431913e-5,-7.506549954746807e-8,0.004251357853991461,2.5304981396812947e-5,-7.457106386619228e-8,0.004251714123475805,2.5137752884505912e-5,-7.421052674232194e-8,0.004252103288002902,2.5053445751813735e-5,-7.402578044122805e-8,0.0042524958808914486,2.5060282096586535e-5,-7.403485203242214e-8,0.004252860347046862,2.5153483119387155e-5,-7.422821487858902e-8,0.004253166420302202,2.5313592833064807e-5,-7.4565027741937e-8,0.004253390056795452,2.5505445065978426e-5,-7.497072826604751e-8,0.004253520373611728,2.567954717105097e-5,-7.533987563241299e-8,0.004253567583483577,2.5778553226866115e-5,-7.555000192971296e-8,0.004253568477479618,2.57508981459835e-5,-7.549083696491824e-8,0.004253583802551681,2.5570092233629636e-5,-7.51055603806773e-8,0.004253683035294351,2.5251865633977112e-5,-7.44273175308893e-8,0.0042539191944363595,2.4857202588394434e-5,-7.35855734003273e-8,0.004254305764216735,2.447438286380503e-5,-7.276784994537231e-8,0.004254809815918776,2.4186839495990022e-5,-7.215147164839955e-8,0.004255365549942023,2.40441206534225e-5,-7.184200794898621e-8,0.004255899200387112,2.4050089820884473e-5,-7.184826829956902e-8,0.0042563516080044266,2.416972185021108e-5,-7.209662433728606e-8,0.004256690396141003,2.434605252160264e-5,-7.246675786316027e-8,0.0042569115892744334,2.4517943449023026e-5,-7.282912443145628e-8,0.0042570344588616455,2.463347637775471e-5,-7.30732558512375e-8,0.0042570934805204125,2.465775417313392e-5,-7.312438614433928e-8,0.004257129932313604,2.4575925834567138e-5,-7.295011734563332e-8,0.0042571843494951115,2.4392667825468296e-5,-7.255962537821784e-8,0.00425729039774817,2.4129023933815476e-5,-7.199717208281165e-8,0.004257470606229811,2.3817370327804808e-5,-7.133146006679518e-8,0.004257734255741909,2.349544247400287e-5,-7.064283667735547e-8,0.004258077393204028,2.3200390137071024e-5,-7.001050679824002e-8,0.004258484618862725,2.2963666553012255e-5,-6.950158216921607e-8,0.004258932027056634,2.2807293789006354e-5,-6.916316297269846e-8,0.0042593906153518026,2.2741586385370254e-5,-6.901757022449099e-8,0.0042598297434363165,2.276399055898611e-5,-6.905989169541386e-8,0.004260220606168873,2.2858651267932304e-5,-6.925694232532747e-8,0.004260539991874552,2.2996585299082128e-5,-6.954740578872719e-8,0.004260774793749827,2.3136869567961894e-5,-6.984415171021355e-8,0.004260927452055153,2.3230106921002925e-5,-7.004155848425731e-8,0.004261021309681241,2.3226075701983406e-5,-7.003196358517582e-8,0.004261102938290243,2.308688722779646e-5,-6.9733984200722e-8,0.004261236712509181,2.2804045770392858e-5,-6.912910597515336e-8,0.004261487734137989,2.2412204909363093e-5,-6.829103484152083e-8,0.004261895857940792,2.1987951130290533e-5,-6.738297115674651e-8,0.004262453748847359,2.1626559517556065e-5,-6.660796308383029e-8,0.004263104835077354,2.14049565306401e-5,-6.613002381831203e-8,0.004263765230072934,2.1352073118542486e-5,-6.601108302348439e-8,0.004264356348996169,2.14434400684497e-5,-6.619951822339648e-8,0.00426482929740014,2.1618744627758198e-5,-6.656745990661841e-8,0.004265171943391067,2.1807560186110623e-5,-6.696539410340849e-8,0.004265402331610535,2.194966411597293e-5,-6.726522140368924e-8,0.004265556764276095,2.2005321336605362e-5,-6.738204521109695e-8,0.004265678484351986,2.1957407300082035e-5,-6.727876331639272e-8,0.004265809259589074,2.1808924150594526e-5,-6.696101507231523e-8,0.004265983904005325,2.1578682448027443e-5,-6.646826954849454e-8,0.004266226920993157,2.1296504146896058e-5,-6.586379168206377e-8,0.004266550629286272,2.0998265292050864e-5,-6.522408289024045e-8,0.004266954602654954,2.072086530767614e-5,-6.46280184319503e-8,0.0042674264408546,2.0497353315112702e-5,-6.414629674705478e-8,0.004267943861511287,2.0352576012947905e-5,-6.383209365453901e-8,0.004268477960877023,2.0299833661802612e-5,-6.371398436365584e-8,0.004268997253092252,2.0338959047789847e-5,-6.379193925228933e-8,0.004269472004022922,2.0455923406950072e-5,-6.403649435074647e-8,0.004269878504480831,2.0623872099556896e-5,-6.439082513227808e-8,0.004270203091943123,2.0805512560485156e-5,-6.477560803074754e-8,0.004270445852852126,2.0956944805511876e-5,-6.509700275244613e-8,0.004270623800199121,2.10334314266037e-5,-6.525895403540025e-8,0.004270772558072353,2.0997890319405713e-5,-6.518152289098647e-8,0.00427094441011345,2.083220432249813e-5,-6.482534637528951e-8,0.004271199798210908,2.05492416329248e-5,-6.421755267416815e-8,0.00427159041645784,2.0199863007888447e-5,-6.346677840095314e-8,0.004272137010630017,1.986641311092636e-5,-6.274914812415897e-8,0.004272812866192905,1.9637907019181664e-5,-6.225512618287865e-8,0.004273546661830289,1.957484111226967e-5,-6.211428300886088e-8,0.004274248084309201,1.9683554754882735e-5,-6.234052528862284e-8,0.004274842584556,1.9916585609271047e-5,-6.283284863669002e-8,0.004275294989396107,2.0196932839426866e-5,-6.34271221447608e-8,0.004275612111248886,2.044876157713103e-5,-6.396157774097112e-8,0.004275829854443942,2.0618302854561106e-5,-6.432132893338302e-8,0.004275996344867708,2.068048102350494e-5,-6.445246254988373e-8,0.004276158761153353,2.0635703336763096e-5,-6.435525871581819e-8,0.00427635575964747,2.050278681984088e-5,-6.406929194779216e-8,0.004276614264766545,2.03118344130943e-5,-6.365844604760266e-8,0.004276948681532183,2.0098462742130343e-5,-6.319870838452115e-8,0.00427736112987467,1.9899240304877655e-5,-6.276838480380487e-8,0.004277842211255956,1.974773290141609e-5,-6.243949971073313e-8,0.004278372391904025,1.967077619426468e-5,-6.226968673760751e-8,0.004278924276628769,1.9684968915617704e-5,-6.229464867897638e-8,0.00427946603046503,1.9793798937027695e-5,-6.252207128612635e-8,0.004279965907331355,1.9986115124125946e-5,-6.292842834492383e-8,0.004280397398965965,2.0236567080278434e-5,-6.345990398536185e-8,0.004280744247696593,2.0508303055502708e-5,-6.403801521126411e-8,0.004281004505802116,2.075787626038736e-5,-6.45698971255669e-8,0.004281192901995228,2.0941958152062637e-5,-6.496252518206134e-8,0.004281340930710332,2.1025255578912166e-5,-6.513969573609285e-8,0.004281494037741554,2.0988991621400003e-5,-6.506040387677097e-8,0.004281705020143845,2.083884172795236e-5,-6.473613988226346e-8,0.004282022932066112,2.0609966237029076e-5,-6.424190093837948e-8,0.004282478182800925,2.0365345667199266e-5,-6.371269223823294e-8,0.004283067616495902,2.018344302717714e-5,-6.331700549222439e-8,0.004283747241477742,2.0134651144824004e-5,-6.320619458649664e-8,0.0042844407554519515,2.0253973496551404e-5,-6.345578723847007e-8,0.004285064598384449,2.0524555265033713e-5,-6.403009214368057e-8,0.004285558228008341,2.0883667246896797e-5,-6.479498002189184e-8,0.004285903068305841,2.1248575485531713e-5,-6.557331881327865e-8,0.004286121591209917,2.1546759971092086e-5,-6.620971443688664e-8,0.004286261550244254,2.173512138139228e-5,-6.661161891835543e-8,0.004286377010822107,2.1803562222643158e-5,-6.675698118613891e-8,0.004286514639174886,2.1767962224157696e-5,-6.667927461907289e-8,0.004286707249844844,2.1659831340824737e-5,-6.644549978914754e-8,0.004286972651294204,2.1517288514130502e-5,-6.613702981233638e-8,0.004287315036407035,2.137879459328305e-5,-6.583625969488997e-8,0.004287726996196279,2.1279125575024203e-5,-6.561792724729806e-8,0.00428819142343141,2.1246497524740444e-5,-6.554282703858169e-8,0.004288683412819257,2.1300005175710134e-5,-6.56522121072733e-8,0.004289172646002349,2.144705325197606e-5,-6.596225331674356e-8,0.004289626831671317,2.1681083267848825e-5,-6.64591918001667e-8,0.004290016489747565,2.1980505883871905e-5,-6.709706780234995e-8,0.0042903207017423875,2.2309974166205005e-5,-6.780039689973465e-8,0.004290532704681695,2.2624802256956494e-5,-6.847351420232322e-8,0.004290663720481053,2.2878545281189634e-5,-6.901668815447957e-8,0.004290743428588021,2.3032647343331645e-5,-6.934675430215987e-8,0.004290816160740989,2.3066060527652307e-5,-6.941783186631997e-8,0.004290932973482719,2.298241860165485e-5,-6.923692897416443e-8,0.004291140720082246,2.281268438762679e-5,-6.886989001401675e-8,0.004291469988513568,2.261171092999127e-5,-6.843422945885471e-8,0.0042919245712092595,2.244789438370406e-5,-6.807700264279899e-8,0.004292475971297328,2.238658804783379e-5,-6.793912075922681e-8,0.004293066649609138,2.2470558774809148e-5,-6.811318501504072e-8,0.004293623937526895,2.2703998892035536e-5,-6.860890598586648e-8,0.0042940818493636184,2.304812006375384e-5,-6.934344898792616e-8,0.004294402362672422,2.3432831436448893e-5,-7.016645002765099e-8,0.004294586104386337,2.378055743966283e-5,-7.091121590795328e-8,0.004294667795317409,2.4030920659155234e-5,-7.144780929009046e-8,0.004294700566059802,2.4155324165777983e-5,-7.171440891510901e-8,0.004294738209100082,2.4157840931771394e-5,-7.171925710040148e-8,0.0042948226573763385,2.4066452881318333e-5,-7.152192906009953e-8,0.004294978812281802,2.3921337639631674e-5,-7.120830502904449e-8,0.004295214901080934,2.3765000948817973e-5,-7.08694876550506e-8,0.004295525436407369,2.363587044291823e-5,-7.058807624485363e-8,0.004295894601684546,2.3564786623837452E-05,-7.04305813207749e-8,0.004296299122201778,2.357308522950433e-5,-7.044321503200956e-8,0.004296710657229467,2.367115187319423e-5,-7.064870539544668e-8,0.004297098295590391,2.38568917503796e-5,-7.104295898373251e-8,0.004297431906932636,2.4114275885103977e-5,-7.159190498213205e-8,0.004297686870625992,2.4412901902798002e-5,-7.223050607165677e-8,0.004297849991681794,2.4710049162891303e-5,-7.286710575334312e-8,0.00429792530231652,2.4956591162591826e-5,-7.339606327152146e-8,0.004297937372396556,2.5107015043400802e-5,-7.371925088269417e-8,0.004297929510021779,2.5131737805527713e-5,-7.377254984435431e-8,0.004297955548234345,2.5027789983162344e-5,-7.354890403274291e-8,0.004298066575615005,2.4823310836198834e-5,-7.310812995376074e-8,0.004298296552607654,2.4573070322224938e-5,-7.256747872959403e-8,0.004298651648983001,2.434559188780995e-5,-7.207413756368472e-8,0.004299106911661393,2.4205518413300738e-5,-7.176741926718479e-8,0.004299611453430702,2.4196312655059432e-5,-7.174150839999789e-8,0.0043001009376553104,2.4328171010078167e-5,-7.201924724959771e-8,0.004300514215980978,2.45747458074727e-5,-7.254478183774332e-8,0.00430080955408668,2.4880164403869278e-5,-7.319841098782959e-8,0.00430097535914321,2.5174795560467062e-5,-7.383040760602065e-8,0.004301031639911904,2.5394822709818133e-5,-7.430318462394381e-8,0.004301021854896047,2.549876742515806e-5,-7.452698087324046e-8,0.004300998826632299,2.5475424898201563e-5,-7.447707677090092e-8,0.0043010105133326326,2.5341837209243172e-5,-7.418955573869462e-8,0.00430109035070397,2.513426620792213e-5,-7.374198268112992e-8,0.004301253742716078,2.48970164755011e-5,-7.32294267491531e-8,0.004301499427306543,2.467299592201586e-5,-7.274417707510015e-8,0.0043018132999952385,2.4497627550464064e-5,-7.236262240548909e-8,0.004302172657874503,2.4395814589290057e-5,-7.213867310051331e-8,0.004302549817683467,2.4380785913499932e-5,-7.210122313442096e-8,0.0043029149958991805,2.44536492446394e-5,-7.225313252007961e-8,0.004303238964457443,2.460296377691644e-5,-7.2570238773880585E-08,0.00430349625434463,2.4804348391217722e-5,-7.300042578258291e-8,0.0043036695281246816,2.50209511462533e-5,-7.34645445614565e-8,0.0043037550770795956,2.5206324498041653e-5,-7.386254745634518e-8,0.004303768148276709,2.5311391686062272e-5,-7.408849797523384e-8,0.004303745290754547,2.5296058710614142e-5,-7.405564302472968e-8,0.0043037402219377715,2.5143263129179642e-5,-7.372674513257676e-8,0.004303811401843918,2.486984655474745e-5,-7.31375476237472e-8,0.004304003924871586,2.452738717704159e-5,-7.239861410051003e-8,0.004304332998053507,2.4189634346796077e-5,-7.166837537127397e-8,0.004304777053220583,2.3930305794275484e-5,-7.110548942813876e-8,0.0043052839373079,2.380055815885997e-5,-7.082046368346776e-8,0.004305786979287081,2.381512406074437e-5,-7.084577599968396e-8,0.004306223908680077,2.3950918898359302e-5,-7.113265222969439e-8,0.0043065521824008435,2.4156359154944985e-5,-7.157081214482665e-8,0.00430675720105395,2.4366745878058644e-5,-7.202132826384251e-8,0.00430685272341944,2.452074994873828e-5,-7.235202054839195e-8,0.0043068746876313785,2.457397362237289e-5,-7.246674040986775e-8,0.004306870807432403,2.450692094765032e-5,-7.232274420159353e-8,0.0043068889333198876,2.4326274108967804e-5,-7.193368553734489e-8,0.004306967157178836,2.4060115372153373e-5,-7.135951482856131e-8,0.004307127792060001,2.3749312473508598e-5,-7.068800846487233e-8,0.004307375847549257,2.3437998378882705e-5,-7.001424126954424e-8,0.0043077011487614265,2.316559033074148e-5,-6.942331161839482e-8,0.004308082476774727,2.296156998550824e-5,-6.897901648309085e-8,0.004308492160407662,2.2843008936849732e-5,-6.871848008341235e-8,0.00430890014225028,2.2814028032551207e-5,-6.865098180169714e-8,0.004309277281921247,2.2866200020617407e-5,-6.875880227967708e-8,0.004309598220494261,2.2979234337591817e-5,-6.899862356038913e-8,0.004309844408536244,2.3121853538730567e-5,-6.930329429478826e-8,0.0043100078615668095,2.3253479651415424e-5,-6.95853524949172e-8,0.004310095640386761,2.3328083445441076e-5,-6.974529757037752e-8,0.0043101338257101485,2.3301787131791224e-5,-6.968807200575135e-8,0.004310168187241177,2.3144787924465443e-5,-6.934892854607553e-8,0.004310257826444425,2.285531683637069e-5,-6.872365125157918e-8,0.004310459684221365,2.2469228310805165e-5,-6.788925321183882e-8,0.0043108073193948325,2.2056750050369026e-5,-6.699692997284909e-8,0.004311294032439131,2.170255209789584e-5,-6.622910378436072e-8,0.004311871307369093,2.1476062378587954e-5,-6.573553756794064e-8,0.004312465198993063,2.1407057452158824e-5,-6.558081946270183e-8,0.004313001977162613,2.147859710794636e-5,-6.572910476913147e-8,0.00431343005920553,2.1637960989153616e-5,-6.606750631843108e-8,0.004313730316577628,2.181691089414023e-5,-6.644950764688654e-8,0.004313914738250244,2.1951418489715036e-5,-6.673726332891451e-8,0.004314017860593639,2.1995240270097538e-5,-6.6830778021755e-8,0.00431408563427076,2.1926188546349096e-5,-6.668152880876458e-8,0.004314164844430976,2.1746350005664837e-5,-6.62931915957548e-8,0.00431429466372932,2.1478088191753095e-5,-6.571331506627689e-8,0.004314501024681896,2.1157447735519515e-5,-6.501929657323107e-8,0.004314794068269408,2.0826407239506826e-5,-6.430170217264929e-8,0.004315168523400873,2.0525388218328684e-5,-6.364798919827755e-8,0.00431560642180513,2.0287173353931803e-5,-6.31292183912412e-8,0.0043160812455876356,2.0132909454777427e-5,-6.279132138753954e-8,0.004316562520177888,2.007033177327738e-5,-6.265126152698634e-8,0.00431702006617794,2.00938082788825e-5,-6.269717769742918e-8,0.004317427588706235,2.018551638500187e-5,-6.28909388180351e-8,0.004317765712734754,2.0317234227004703e-5,-6.317193328846631e-8,0.004318024775138963,2.0452628316515763e-5,-6.34618604024906e-8,0.00431820770093002,2.0550394730606987e-5,-6.367139110618334e-8,0.004318332893899484,2.0569188001987255e-5,-6.371081436092053e-8,0.004318436011644906,2.04754635624101e-5,-6.350712260775898e-8,0.0043185681789404615,2.0254385622796044e-5,-6.302778494565895e-8,0.004318787523787666,1.9921423273137004e-5,-6.230594134708772e-8,0.004319142414166795,1.9528518015015e-5,-6.145372829533996e-8,0.004319650180655444,1.9156534321257355e-5,-6.064588141621515e-8,0.004320282432594846,1.8890460254098007e-5,-6.006610839445816e-8,0.00432096924731175,1.8786257539194468e-5,-5.983551079099197e-8,0.004321623889974825,1.8848028753740572e-5,-5.996331107102821e-8,0.004322174856199251,1.9029232241916958e-5,-6.03494594472305e-8,0.004322587553187694,1.9254995930678356e-5,-6.083272565155132e-8,0.004322867520357473,1.9450265918529555e-5,-6.125132934634046e-8,0.004323049667978551,1.956007946768571e-5,-6.148655784160723e-8,0.004323182862961931,1.9557648041747735e-5,-6.148015369528662e-8,0.004323316556168647,1.9443050480583164e-5,-6.123159791433297e-8,0.004323491840940722,1.9237131005163212e-5,-6.0785188942898e-8,0.004323736659978244,1.8974013586600857e-5,-6.021415798447603e-8,0.00432406401637427,1.8693883726101143e-5,-5.960523413418266e-8,0.004324472264424686,1.8436553474490432e-5,-5.904470094336049e-8,0.004324946983099295,1.8236033860153257e-5,-5.860648003866715e-8,0.004325464084859797,1.811635649105119e-5,-5.8342897748555724e-8,0.004325993794135984,1.8088868183602328e-5,-5.8278740560323874e-8,0.004326505053826906,1.8151193617222837e-5,-5.84090469392405e-8,0.004326969827564337,1.8287871460248693e-5,-5.870057233852731e-8,0.004327366867667058,1.8472348280178974e-5,-5.909613070587311e-8,0.004327684784604043,1.8669955227489085e-5,-5.952094345795759e-8,0.004327924409123366,1.8841706401499647e-5,-5.989069354469142e-8,0.004328100446453682,1.8948978694444737e-5,-6.012153384588638e-8,0.004328242207755195,1.8959396499784854e-5,-6.014285604854431e-8,0.00432839251061342,1.8854306712077532e-5,-5.991366270790545e-8,0.004328602976287375,1.8637363771232864e-5,-5.9441399495521534e-8,0.004328923808193235,1.834172061702968e-5,-5.879768517306489e-8,0.0043293877420519525,1.803074398317214e-5,-5.8119858923673065e-8,0.004329992303019424,1.7786082973530267e-5,-5.7585025996974733e-8,0.0043306904239555155,1.768141014178147e-5,-5.735306902442807e-8,0.004331400140317573,1.7751344357086818e-5,-5.749928204325917e-8,0.00433203358321681,1.797402614272783e-5,-5.79766211094402e-8,0.004332530332663138,1.828016466901793e-5,-5.8635303908857e-8,0.004332875915402321,1.858298602165903e-5,-5.928765562337491e-8,0.00433309804217549,1.8810034258350935e-5,-5.977689798049865e-8,0.004333248483983109,1.8921204984793378e-5,-6.001607106531904e-8,0.00433338344031064,1.891050947589809e-5,-5.999178553599807e-8,0.004333550076056095,1.879802272931174e-5,-5.974688447449809e-8,0.00433378028617974,1.8619161178224815e-5,-5.935746777534596e-8,0.004334089547866698,1.841532739235039e-5,-5.891288378805079e-8,0.004334478361386218,1.8227051919153682e-5,-5.8500987248132956e-8,0.004334934676237755,1.8089192813388756e-5,-5.819765687811798e-8,0.004335436753461419,1.8027479513569926e-5,-5.805910095808496e-8,0.0043359564346629785,1.805604332199269e-5,-5.8116315662884676e-8,0.004336462854060841,1.8175905259323786e-5,-5.837173979925861e-8,0.0043369265589401195,1.8374650843245116e-5,-5.8798606028170783e-8,0.0043373237749320314,1.8627644789034814e-5,-5.9343665372251605e-8,0.004337640287689868,1.8900903887741546e-5,-5.993342885257249e-8,0.004337874393414731,1.915541028175581e-5,-6.0483416036833585E-08,0.004338038508031595,1.935252810257927e-5,-6.090974291052553e-8,0.004338159117798005,1.9460134108828392e-5,-6.114232980148806e-8,0.004338274774933433,1.9459013263327866e-5,-6.113884811203717e-8,0.004338431681466829,1.9348999136279857e-5,-6.089826911602292e-8,0.004338676165081497,1.9153806772625883e-5,-6.047161761109011e-8,0.004339043688685932,1.8922294391678095e-5,-5.996487910391701e-8,0.004339545635601907,1.872276095381814e-5,-5.952661815361361e-8,0.004340158161930944,1.8627380820978457e-5,-5.9314042383671195e-8,0.004340820587457169,1.8688023122385006e-5,-5.944030774359304e-8,0.0043414499059315215,1.8912570225124942e-5,-5.992294543545765e-8,0.004341969354982378,1.9256317958197064e-5,-6.066513104038634e-8,0.00434233727438235,1.963727956575248e-5,-6.148895689362684e-8,0.004342559700425284,1.9968375421524345e-5,-6.22053917653275e-8,0.004342681194553419,2.0187890581981525e-5,-6.268039485374884e-8,0.004342762928135588,2.0273446998614515e-5,-6.286515201466919e-8,0.004342861762115175,2.0238340874590014e-5,-6.278807051788223e-8,0.0043430181177510525,2.0118621313219873e-5,-6.25268278416331e-8,0.004343252686041884,1.9959504096147545e-5,-6.217910056180777e-8,0.004343568466291725,1.9805367104343365e-5,-6.184105171446118e-8,0.004343954731686096,1.9693836953182042e-5,-6.159455561595036e-8,0.004344390973704534,1.9652723436851773e-5,-6.150043408182522e-8,0.004344850331140559,1.969838524407601e-5,-6.159471002910778e-8,0.004345302792489047,1.9834740731576415e-5,-6.188629404236862e-8,0.004345718569954192,2.0052786388798823e-5,-6.235588467085406e-8,0.004346071890108299,2.0330942481172956e-5,-6.295676357140448e-8,0.004346345120939216,2.0636843362656404e-5,-6.361874562488397e-8,0.004346532649407227,2.0931092520010435e-5,-6.425633112670948e-8,0.004346643556812209,2.1172987348254808e-5,-6.478105282775598e-8,0.004346702139067369,2.1327622981692872e-5,-6.511679997367014e-8,0.004346745608778673,2.137326837845882e-5,-6.521581332631904e-8,0.004346818808370958,2.130755124320618e-5,-6.507223672428581e-8,0.004346966320702236,2.1150975510158874e-5,-6.472999399619078e-8,0.004347222824520035,2.0946473775532036e-5,-6.428207114555517e-8,0.004347603087958219,2.0753784072168932e-5,-6.385844812624413e-8,0.004348093942432825,2.0637814013072452e-5,-6.36007815326696e-8,0.004348651739160019,2.0651659508830847e-5,-6.36252925003523e-8,0.0043492091234758985,2.0818025289423062e-5,-6.398208836552688e-8,0.004349692649033529,2.1116545144798856e-5,-6.462735152225057e-8,0.004350046851532632,2.148558579412229e-5,-6.542717677117046e-8,0.004350254077818288,2.1841590704683874e-5,-6.619972247540033e-8,0.004350339218690546,2.2108334127427978e-5,-6.677897296497183e-8,0.0043503570289232605,2.2241363549602545e-5,-6.706795464383658e-8,0.004350370300956235,2.2236598604831392e-5,-6.705740408002692e-8,0.004350430646805905,2.2122994339245096e-5,-6.680980212150948e-8,0.004350568672542956,2.1947338186704e-5,-6.642641374111236e-8,0.004350793241612556,2.1759652050497017e-5,-6.601571687264844e-8,0.0043510958731244245,2.1603418432720286e-5,-6.567227801223937e-8,0.004351456464205779,2.1510811396030194e-5,-6.546638399293138e-8,0.004351848247956533,2.1501213936502228e-5,-6.544069492800358e-8,0.004352241536665431,2.1581184167779784e-5,-6.560999904068952e-8,0.00435260671995346,2.174478040527643e-5,-6.596178678053824e-8,0.004352917203110646,2.1974004373243897e-5,-6.645716600620018e-8,0.004353152776554337,2.2239771173006768e-5,-6.70329889115276e-8,0.0043533034557195595,2.250423557099356e-5,-6.760694213289382e-8,0.004353373159793762,2.2725320394767957e-5,-6.808739588456914e-8,0.004353381934028024,2.2863721397970617e-5,-6.838860655220757e-8,0.004353365144473504,2.2891593869259356e-5,-6.844958399294913e-8,0.004353368520464555,2.2800891768739177e-5,-6.825225963723115e-8,0.004353439178980252,2.2608536352457108e-5,-6.783284315230564e-8,0.004353614398994551,2.235592337679717e-5,-6.728093363331758e-8,0.004353911091254241,2.210179351953395e-5,-6.672420060605343e-8,0.004354319093981324,2.1909457854221882e-5,-6.63007028625976e-8,0.00435480070535855,2.183105798865961e-5,-6.612459579585697e-8,0.004355297564439238,2.1892701313526038e-5,-6.62535720399581e-8,0.004355744274261172,2.208486894760374e-5,-6.666768156040473e-8,0.004356085988373349,2.2362140804206785e-5,-6.72684784304803e-8,0.004356294790867451,2.265429960519879e-5,-6.790310472655907e-8,0.004356378446729466,2.2886711643210605e-5,-6.840875002736263e-8,0.004356377083974059,2.300287959510685e-5,-6.866191818023424e-8,0.004356348835649946,2.2979906602058662e-5,-6.861222380829316e-8,0.004356351070803769,2.283100298627068e-5,-6.828791603511024e-8,0.0043564253033482265,2.2596103437619816e-5,-6.777550831067574e-8,0.004356590438485916,2.232692894571213e-5,-6.71873398673657e-8,0.004356843977258533,2.207328036231141e-5,-6.663181407464889e-8,0.00435716773989199,2.1874255200302816e-5,-6.619429149558181e-8,0.0043575345277402245,2.17545974438534e-5,-6.592907552880914e-8,0.00435791364940389,2.1724473774609717e-5,-6.585880479157714e-8,0.004358274835255978,2.1780736857639492e-5,-6.597708420358102e-8,0.00435859102021611,2.190842428008057e-5,-6.625166759485598e-8,0.004358840788105637,2.2082124326210005e-5,-6.66273960160543e-8,0.004359011140673432,2.2267590761594875e-5,-6.702970759557112e-8,0.004359100770459174,2.2424521416654e-5,-6.737069654700543e-8,0.0043591232349589806,2.2511572931629804e-5,-6.756005138998922e-8,0.004359108521787183,2.2494178942973776e-5,-6.752211476792377e-8,0.004359100878157092,2.235434252364082e-5,-6.721725820444066e-8,0.004359151203790916,2.209952344550378e-5,-6.666129656422452e-8,0.004359304391648528,2.1766202486049173e-5,-6.59333189575158e-8,0.004359585156155929,2.141440124607869e-5,-6.516384241477555e-8,0.004359988028082468,2.1112991988769316e-5,-6.450292098818624e-8,0.004360476321122433,2.0920264451710092e-5,-6.407788779132097e-8,0.004360991139310915,2.0866833130000284e-5,-6.395608344448584e-8,0.0043614672632936585,2.094691373648151e-5,-6.412567446990825e-8,0.00436185047259702,2.1120373710730043e-5,-6.449986452881506e-8,0.004362111124733698,2.1324180464702604e-5,-6.4941620161576e-8,0.004362250570187353,2.1489435250093217e-5,-6.53007002748905e-8,0.004362299121386524,2.155913544719217e-5,-6.54524253343876e-8,0.004362306490900004,2.1501808725852057e-5,-6.532755100187959e-8,0.004362327761153033,2.131732881203479e-5,-6.492513324816661e-8,0.0043624093738372635,2.103373524474476e-5,-6.430576510522246e-8,0.0043625793884881775,2.0697054625575986e-5,-6.356950528095524e-8,0.004362844207020741,2.0358383999011046e-5,-6.282776240788013e-8,0.004363191208127825,2.006260880711081e-5,-6.217865603614356e-8,0.004363594835992581,1.984133466131531e-5,-6.169150041406605e-8,0.004364023394089613,1.971031936272081e-5,-6.140108548051583e-8,0.004364444713893855,1.9670147056786693e-5,-6.130906149278202e-8,0.004364830116595006,1.9708457183723877e-5,-6.13887614197793e-8,0.004365157008842049,1.9802456355045293e-5,-6.159066614971228e-8,0.0043654108447642925,1.9921222630134676e-5,-6.184741174273681e-8,0.004365587133171469,2.002805687530203e-5,-6.207888714985402e-8,0.004365693773882021,2.0083687956816993e-5,-6.219920719112305e-8,0.004365753261816067,2.0051413982690625e-5,-6.21279557727769e-8,0.004365803266929434,1.990492580654581e-5,-6.18073352015643e-8,0.004365893211815998,1.963812772857377e-5,-6.122369196067238e-8,0.00436607468587738,1.9273718051626967e-5,-6.042630561545666e-8,0.004366386030933518,1.8864892817626648e-5,-5.953112197574838e-8,0.004366836077417156,1.8485075349996475e-5,-5.869834534688314e-8,0.004367395636384049,1.8206114824510273e-5,-5.808489610024617e-8,0.0043680034475078715,1.807342018736887e-5,-5.779018629925774e-8,0.004368585429190273,1.8090183319349116e-5,-5.7821670584522674e-8,0.004369078205338029,1.8218018646954217e-5,-5.8096130493753056e-8,0.004369446485515545,1.8391914972714372e-5,-5.8472137246485704e-8,0.00436968898915749,1.854111673960781e-5,-5.879546235081837e-8,0.004369833869388169,1.8607666783746486e-5,-5.893945230499611e-8,0.004369927829734204,1.8558083076927652e-5,-5.883053071818364e-8,0.0043700232722843815,1.8387261432697222e-5,-5.845686139765173e-8,0.004370166642890487,1.8115771799109823e-5,-5.78626810222891e-8,0.004370389908592708,1.778250420799372e-5,-5.7132479090411445e-8,0.004370706190176643,1.7434832951346612e-5,-5.63696521066772e-8,0.004371109765100231,1.7118586178875612e-5,-5.5674571774707e-8,0.00437157972214823,1.6869939219546253e-5,-5.5126719806860253e-8,0.004372085769119738,1.671054970042191e-5,-5.477386649502183e-8,0.004372594495239376,1.6646123535862942e-5,-5.462880762363998e-8,0.004373074761423813,1.6667710334556395e-5,-5.467217352867607e-8,0.004373501568673639,1.675457816700928e-5,-5.485876153998176e-8,0.004373858478157565,1.687756120804058e-5,-5.5124896858937915e-8,0.004374139111879542,1.7002287531392034e-5,-5.5395470307775045e-8,0.0043743482958161295,1.7092346989803696e-5,-5.559079621301812e-8,0.004374503133939031,1.7112951246571128e-5,-5.5634563689226273e-8,0.004374633720251839,1.7035925052044434e-5,-5.546478116239983e-8,0.00437478225005965,1.6846665517467146e-5,-5.504911354774486e-8,0.0043749983953135655,1.6552475631203626e-5,-5.440324873724291e-8,0.004375328872488854,1.618927976830758e-5,-5.360566541222857e-8,0.0043758013925030695,1.5821068508656155e-5,-5.2796405543630164e-8,0.004376408267399701,1.552634116046679e-5,-5.214735730105396e-8,0.004377099954417064,1.5371900421595234E-05,-5.180488666204743e-8,0.004377797060914417,1.5385036173928835e-5,-5.182897065432117e-8,0.004378418187720637,1.5540645773084347e-5,-5.2165003016123936e-8,0.004378909008357041,1.5771884933839974e-5,-5.266706122898232e-8,0.0043792572209281865,1.599719360222389e-5,-5.315697219265368e-8,0.004379488986244382,1.6147744983164754e-5,-5.34842622002332e-8,0.004379653735493992,1.6183696763184442e-5,-5.356159676976171e-8,0.004379807029548539,1.6097454183882332e-5,-5.337188796430934e-8,0.004379997377027852,1.5908215829117925e-5,-5.2956489809098333e-8,0.004380258535441446,1.5652790384862128e-5,-5.239536296392365e-8,0.004380606499311609,1.5376010872551103e-5,-5.178635373794103e-8,0.00438103981704955,1.5122274389860483e-5,-5.122678455064238e-8,0.0043815422062817,1.4928716380928159e-5,-5.079841505994918e-8,0.0043820867949589636,1.4820349015323273e-5,-5.055656434916802e-8,0.004382641303252554,1.4807475268811135e-5,-5.052422039228374e-8,0.004383173380248949,1.4885420145896664e-5,-5.0691348370280644e-8,0.004383655356796422,1.5036302184118528e-5,-5.1018815625741976e-8,0.004384067847834171,1.5232293344004387e-5,-5.144564428159387e-8,0.0043844019828522774,1.543961315370945e-5,-5.1897827868784535e-8,0.004384660446837142,1.5622634657119858e-5,-5.229728990740927e-8,0.0043848576711448175,1.5747902572815793e-5,-5.257058563354719e-8,0.0043850193932531934,1.5788236658408824e-5,-5.2657827564574646e-8,0.0043851814481957125,1.572732220635757e-5,-5.252279948825495e-8,0.004385386970873339,1.5565072314536914e-5,-5.216487783723147e-8,0.004385680534183977,1.532309143986357e-5,-5.163119876709418e-8,0.004386097920633204,1.5047759637200314e-5,-5.102352030618483e-8,0.004386652021040343,1.4806503360449029e-5,-5.0490006751438264e-8,0.004387319473877426,1.4672634763753373e-5,-5.019184730718326e-8,0.004388037475553013,1.4699180145777687e-5,-5.024571194944651e-8,0.004388719358254085,1.4892581471994294e-5,-5.066597535539156e-8,0.004389286252243407,1.5203884862031068e-5,-5.1345376667470573e-8,0.00438969797548042,1.5546829342512437e-5,-5.209476228885879e-8,0.004389964650890107,1.583302129175502e-5,-5.272030351592314e-8,0.004390134913807563,1.6002864742013964e-5,-5.309129370757188e-8,0.004390272271287374,1.6037840528340582e-5,-5.3166940446750974e-8,0.004390434097429688,1.595511112825302e-5,-5.298445643173724e-8,0.004390660057645578,1.579392903294117e-5,-5.262936255347156e-8,0.004390969109008046,1.5602006407262715e-5,-5.220585215637865e-8,0.0043913615412258964,1.542537772061049e-5,-5.1814795817357e-8,0.004391823037389939,1.5302039558842245e-5,-5.153985439117854e-8,0.004392329121287766,1.5258332624760626e-5,-5.143939304550827e-8,0.004392849551497714,1.5307073316800725e-5,-5.1542117695367437e-8,0.004393352682154456,1.54470359086033e-5,-5.18457185429351e-8,0.00439380971458905,1.566375392426153e-5,-5.23185628529972e-8,0.004394198597306122,1.5931683059558592e-5,-5.2904527284831545e-8,0.004394507186734965,1.621768345692803e-5,-5.353077333402549e-8,0.004394735227108045,1.6485492657756142e-5,-5.411762647781867e-8,0.004394894902223298,1.6700626893534787e-5,-5.45892803278868e-8,0.004395009971871057,1.6835218512750443e-5,-5.48843068576531e-8,0.004395113603586854,1.687246367982367e-5,-5.496537371682426e-8,0.004395244949411491,1.6810475067017456e-5,-5.482779901120044e-8,0.0043954442427448425,1.6665347947444088e-5,-5.450649984627839e-8,0.004395745883391455,1.6472740140844224e-5,-5.407968384406357e-8,0.0043961693024316155,1.6286178870649144e-5,-5.366522773031633e-8,0.0043967088244268844,1.616943709032258e-5,-5.340384348847231e-8,0.00439732633496883,1.6180870696195093e-5,-5.342443633742838e-8,0.004397953375547895,1.635135413255929e-5,-5.379535836427356e-8,0.0043985084347460835,1.6664842817597192e-5,-5.448152340898046e-8,0.004398926535594353,1.7055762545965226e-5,-5.533868602056141e-8,0.004399186184162931,1.7430878674003617e-5,-5.616169045398201e-8,0.004399316502889809,1.7706012639717648e-5,-5.676535310620799e-8,0.004399380619391071,1.7836085828877507e-5,-5.7050496127308454e-8,0.0043994479138703985,1.782330059445976e-5,-5.70217692683362e-8,0.004399571685962228,1.7705329205192075e-5,-5.676158687960766e-8,0.004399779842592975,1.7535919356775476e-5,-5.6387604272475e-8,0.004400076250313624,1.736849329520766e-5,-5.601691660456328e-8,0.0044004470021380936,1.7246443601718784e-5,-5.574493496590799e-8,0.0044008672958289925,1.7199144884804796e-5,-5.5636639903815625e-8,0.004401307044890794,1.724130099925887e-5,-5.572497188992369e-8,0.00440173510197177,1.737368836590099e-5,-5.6012208288017816e-8,0.004402122691783258,1.7584415933249197e-5,-5.6472543144591716e-8,0.004402446537357039,1.785064042267672e-5,-5.705582151470724e-8,0.004402691816659508,1.8141037663291022e-5,-5.7693066337959046e-8,0.004402854735432183,1.841939830699297e-5,-5.8304506128850546e-8,0.0044029441466111215,1.86494319283523e-5,-5.88101859483882e-8,0.004402981550175842,1.8800342453498846e-5,-5.914217622460607e-8,0.004402999067764595,1.8852377164001726e-5,-5.925669183407802e-8,0.004403035359985339,1.8801411674438728e-5,-5.914416507577008e-8,0.0044031298139103415,1.866162281600663e-5,-5.883524829467042e-8,0.004403315601073636,1.8465518632622366e-5,-5.8401102927705954e-8,0.004403612303337892,1.8260820798133723e-5,-5.794674902359043e-8,0.00440401903455858,1.810360352195355e-5,-5.7596036212635465e-8,0.004404509752154576,1.8047165882872968e-5,-5.746702598309528e-8,0.004405033516436402,1.812725114889848e-5,-5.763917890945277e-8,0.004405522902615492,1.834684093381671e-5,-5.8119578846809494e-8,0.0044059119457882465,1.866727755270758e-5,-5.8823215461512124e-8,0.004406159440016461,1.9013925428711905e-5,-5.958550245976834e-8,0.004406266628248096,1.9299284542711648e-5,-6.021339687547807e-8,0.004406277737108989,1.945484969608813e-5,-6.055575571644973e-8,0.004406261496645234,1.9454837423611572e-5,-6.055559500071444e-8,0.004406284449775708,1.9319660877416878e-5,-6.025761062267969e-8,0.00440639062788073,1.910099176720538e-5,-5.977521664665257e-8,0.004406594829344743,1.886022453602534e-5,-5.924323335780905e-8,0.004406887078573716,1.8651292088100253e-5,-5.878025539400848e-8,0.004407241761031286,1.8511880264080445e-5,-5.846944211875105e-8,0.0044076263524043535,1.8461551898719056e-5,-5.835435137480919e-8,0.0044080076754981525,1.8503530268696664e-5,-5.8442683603324096e-8,0.00440835579500999,1.862755742929406e-5,-5.871235534719573e-8,0.004408646532290339,1.881262321625275e-5,-5.911736690258402e-8,0.004408863496128932,1.9029458207028737e-5,-5.959328119831901e-8,0.004409000066919958,1.924325840921723e-5,-6.006330961355848e-8,0.004409061253908856,1.9417302526743488e-5,-6.044637646552229e-8,0.004409064800155661,1.9517894893698925e-5,-6.066804549783033e-8,0.00440904055014602,1.9520391771617026e-5,-6.067376479634501e-8,0.004409027212339246,1.9415263477098266e-5,-6.044217579738232e-8,0.004409066265143777,1.9212538136596372e-5,-5.99949182565613e-8,0.004409193715141178,1.8942795303234154e-5,-5.939893403493536e-8,0.0044094314113227616,1.865344497733075e-5,-5.875845298339941e-8,0.004409780143242562,1.8400286623901103e-5,-5.8196555817766816e-8,0.004410216569539457,1.8235638567657733e-5,-5.782905216370578e-8,0.004410695422717016,1.8195238170461436e-5,-5.773546974239403e-8,0.004411157650944433,1.8286844900537162e-5,-5.7933659296607315e-8,0.004411543971861461,1.8484117436023682e-5,-5.836601541020027e-8,0.004411811395675748,1.8729348317482946e-5,-5.890535923731313e-8,0.004411947793992804,1.89470109132833e-5,-5.938486561457419e-8,0.0044119780011767805,1.906592214848751e-5,-5.964712702981143e-8,0.004411956808968038,1.9042277832868503e-5,-5.9595124411453214e-8,0.004411950401682743,1.8873156757466962e-5,-5.92220569871064e-8,0.004412014554899769,1.8594182067809693e-5,-5.8606156280090905e-8,0.004412179536671111,1.8263848967560027e-5,-5.7876134214088945e-8,0.0044124466739733125,1.7943581917926447e-5,-5.716729690606632e-8,0.004412794575472388,1.7682304086576782e-5,-5.6587619247160394e-8,0.004413189368832398,1.7509204078874898e-5,-5.6201810628385806e-8,0.004413594086340192,1.743345530047553e-5,-5.603059765879325e-8,0.004413975065031127,1.7447630029714103e-5,-5.605809066694707e-8,0.004414305472350097,1.7532025516451413e-5,-5.6241179923360305e-8,0.004414567041261399,1.7658503065552773e-5,-5.651793566777759e-8,0.004414751115520992,1.779363418722658e-5,-5.681456751260478e-8,0.004414859663338807,1.7901658854669397e-5,-5.7052019121006296e-8,0.0044149062993784445,1.794805755027884e-5,-5.7153915757579485e-8,0.004414916691840586,1.7904389601374315e-5,-5.7057269944060924e-8,0.004414927200000021,1.77543682378513e-5,-5.672588204884182e-8,0.0044149804922138025,1.750003314877578e-5,-5.616395099473292e-8,0.00441511759337999,1.7165714561544804e-5,-5.542484487782527e-8,0.004415367428776234,1.679696126662312e-5,-5.460881274387819e-8,0.0044157368984729635,1.64525946058128e-5,-5.3845568238601775e-8,0.0044162055472075626,1.6190716787134946e-5,-5.3263516737987664e-8,0.004416727899593218,1.6052589799655223e-5,-5.295419024084609e-8,0.0044172437234548155,1.6049869174066154e-5,-5.294395078197559e-8,0.004417693384688244,1.615974344870538e-5,-5.3183040430361466e-8,0.004418033663467096,1.6329784446188893e-5,-5.355607037861073e-8,0.004418249405605174,1.6491255741248804e-5,-5.391129234465096e-8,0.004418357633513688,1.657727659886784e-5,-5.41007360539825e-8,0.004418402673640693,1.6540796109409133e-5,-5.4020027084270734e-8,0.004418443391223361,1.636694373579072e-5,-5.3635805163711675e-8,0.004418536429934856,1.6075637077552477e-5,-5.2991599870440183e-8,0.004418721153570862,1.5713686813819345e-5,-5.219048380509432e-8,0.004419011327149181,1.5339827180016276e-5,-5.136208116526004e-8,0.004419395436149071,1.5008693642004086e-5,-5.062720950800594e-8,0.004419843763828487,1.475917925423041e-5,-5.0072119853676645e-8,0.004420318190940414,1.4609543041482485e-5,-4.973758066953034e-8,0.004420781006999231,1.455837640529271e-5,-4.9620879180614367e-8,0.004421200875707693,1.4588855571197866e-5,-4.9685116993361385e-8,0.004421555921818236,1.4673832615992423e-5,-4.9870423302738325e-8,0.004421834861138942,1.4780363310829798e-5,-5.0103979045361175e-8,0.004422037237442245,1.4873349197413976e-5,-5.030810679146616e-8,0.0044221735003303324,1.4918708687383351e-5,-5.0407314602882546e-8,0.004422265076734925,1.488684665139391e-5,-5.0335987892971714e-8,0.004422343894139628,1.4757129675741033e-5,-5.004829930915722e-8,0.004422450182798508,1.4523472760162985e-5,-4.953057889944237e-8,0.004422627129488367,1.4199935359410018e-5,-4.8813710361903955e-8,0.004422911606825086,1.382367526534905e-5,-4.7979688149729203e-8,0.004423322237828266,1.3451651182103001e-5,-4.715436315562399e-8,0.00442384901396835,1.3148639319550321e-5,-4.6480995689175956e-8,0.004424450465700748,1.2968277830758903e-5,-4.6078384882655163e-8,0.004425062411682258,1.2934115116972632e-5,-4.599895383332543e-8,0.004425616532075163,1.3029713949506274e-5,-4.620678002907812e-8,0.00442606125460747,1.3203026493029452e-5,-4.658713648167632e-8,0.004426376247492937,1.3382921571667098e-5,-4.698291956016331e-8,0.0044265757656095205,1.3500398155340669e-5,-4.7241493967355725e-8,0.0044267015746751685,1.3506656906523134e-5,-4.7254652877251136e-8,0.004426809564985756,1.3383317501207797e-5,-4.698127400556689e-8,0.004426954798878417,1.3143641854113754e-5,-4.645015416988944e-8,0.004427178862902963,1.282611238434304e-5,-4.574598280569655e-8,0.004427502065621027,1.248309395401886e-5,-4.498442593684408e-8,0.004427921557662274,1.2167909243147152e-5,-4.4283605507852286e-8,0.0044284149290582065,1.1923590626574095e-5,-4.373914849628887e-8,0.004428947492553156,1.1775726251332769e-5,-4.340818287378602e-8,0.0044294807498054785,1.1730276245194692e-5,-4.330431159108967e-8,0.00442997978210213,1.1775616157272551e-5,-4.3402016286169154e-8,0.004430418284203898,1.1887104697408922e-5,-4.3646763807176316e-8,0.004430781078167451,1.2032394059880673e-5,-4.396683813881441e-8,0.004431064723837474,1.2176260557030221e-5,-4.428411771350637e-8,0.0044312770935376515,1.228454666456542e-5,-4.452283720664672e-8,0.004431436570445023,1.2327479539015128e-5,-4.4616919616307796e-8,0.004431571073044788,1.2282959424570596e-5,-4.451723465126646e-8,0.004431716519505703,1.2140402085948442e-5,-4.420012359781004e-8,0.004431913708413011,1.190525144918933e-5,-4.367745401611296e-8,0.004432202271488714,1.1603137979985335e-5,-4.3005902031456583e-8,0.00443261096494701,1.128105558813796e-5,-4.228959825337529e-8,0.004433145658560025,1.1001798769206879e-5,-4.166779716993523e-8,0.004433779801368679,1.082900401217352e-5,-4.12817006687968e-8,0.004434454646972603,1.0805123199301839e-5,-4.122560821070611e-8,0.004435094025680583,1.093179184586048e-5,-4.1503363883340675e-8,0.004435629850168535,1.1164738583475233e-5,-4.20170322203088e-8,0.004436026030782993,1.1428372850655338e-5,-4.259921088755147e-8,0.004436288544140871,1.1642827137621819e-5,-4.30729574358741e-8,0.00443645852333741,1.1749408550127374e-5,-4.33081550485094e-8,0.004436594888881352,1.1724150687214207e-5,-4.3251474414460785e-8,0.004436755874140951,1.1577909422798677e-5,-4.292656969019233e-8,0.00443698556045168,1.134743368171151e-5,-4.241440383930332e-8,0.004437307141160754,1.1082923092713402e-5,-4.1825890935872864e-8,0.004437722000943753,1.0835997728485317e-5,-4.1275427325207346e-8,0.004438212894918262,1.0650076781292515e-5,-4.0859608303239765e-8,0.004438749638289341,1.055393982394728e-5,-4.0642808497137944e-8,0.004439295959152751,1.0558721353467244e-5,-4.065026502851615e-8,0.004439816265453436,1.065819146280534e-5,-4.0868482817672476e-8,0.004440281272009354,1.0831676496297347e-5,-4.1251640135869176e-8,0.004440671831938921,1.1048643543678123e-5,-4.173183848769729e-8,0.004440980777783971,1.1273898329578631e-5,-4.2230779881881195e-8,0.00444121303269828,1.1472474912977608e-5,-4.267071508775094e-8,0.004441384565236301,1.1613723431763203e-5,-4.298351149337096e-8,0.004441520716355006,1.1674659260946504e-5,-4.311801611635916e-8,0.004441654103827259,1.1642927188475744e-5,-4.304658575328331e-8,0.004441821893723169,1.151970903380154e-5,-4.277157863485106e-8,0.004442061733825511,1.1322569755221519e-5,-4.2331789891194374e-8,0.004442405367359218,1.1087324544257746e-5,-4.1806717475930976e-8,0.004442869542993695,1.0866655575333044e-5,-4.1313536007648224e-8,0.004443445735403163,1.0722317764963522e-5,-4.0989728756109695e-8,0.004444093284368835,1.0708865030730829e-5,-4.0956817567218523e-8,0.0044447430760904995,1.085167507562386e-5,-4.127142029165161e-8,0.004445316435740319,1.1129602124610225e-5,-4.1886642259513546e-8,0.004445754128237322,1.1475626607160576e-5,-4.2653546623268654e-8,0.004446040101964218,1.180003031512926e-5,-4.3372752883896014e-8,0.004446205530673317,1.2024629257590159e-5,-4.387057130415036e-8,0.004446312162708855,1.2108771182796773e-5,-4.405669777283164e-8,0.004446427135514646,1.2055740045207085e-5,-4.3938284164400834e-8,0.004446602819718554,1.1902415131929761e-5,-4.3596893302424874e-8,0.004446867462772274,1.1702280581489064e-5,-4.3150880569211476e-8,0.00444722502652385,1.1510013581017392e-5,-4.272141346034424e-8,0.004447660112373166,1.1371009258943887e-5,-4.240940734950581e-8,0.004448144592351008,1.1315808141326373e-5,-4.228315760058449e-8,0.00444864413440166,1.1358103698667109e-5,-4.237371725707588e-8,0.004449124029971733,1.1495141539025288e-5,-4.2675501313854964e-8,0.004449554153193063,1.1709878328814522e-5,-4.315087896932633e-8,0.004449912835517964,1.1974488478859295e-5,-4.373794004970734e-8,0.004450189440411732,1.2254789064169708e-5,-4.4360459045246395e-8,0.004450385488268202,1.2515133469631053e-5,-4.493894052335691e-8,0.004450514285615522,1.2723218588808307e-5,-4.540139076746559e-8,0.004450599251519201,1.285424788009527e-5,-4.569253626675187e-8,0.0044506713012207,1.2894201090678989e-5,-4.578100104332719e-8,0.004450765540459394,1.2842246866083047e-5,-4.5664633203186566e-8,0.004450917284953617,1.2712332911019386e-5,-4.537412450667041e-8,0.004451157155322636,1.2533780867555994e-5,-4.497450577626395e-8,0.004451504873237557,1.2350163721766086e-5,-4.45628020467471e-8,0.004451961919675364,1.2214876307893983e-5,-4.425820466465791e-8,0.004452504731610211,1.218142064773772e-5,-4.418032467973815e-8,0.004453082319776596,1.2287689702351628e-5,-4.441399178406356e-8,0.0044536237576869794,1.2537566429059222e-5,-4.496809227303929e-8,0.004454058600129623,1.2889221277017663e-5,-4.5749448011482285e-8,0.004454344557171657,1.3261764007055407e-5,-4.657774011379726e-8,0.004454487209756872,1.356321056345686e-5,-4.724799032523849e-8,0.004454537817108847,1.3726577222573843e-5,-4.761103975360433e-8,0.004454569953530231,1.3733042945322505e-5,-4.762500825386583e-8,0.0044546503114754445,1.3611019367534598e-5,-4.7353008192290663e-8,0.004454819540444871,1.3417353161617989e-5,-4.692121901981639e-8,0.004455088006355839,1.3214963151419203e-5,-4.6469264458608674e-8,0.0044554417320164475,1.3056798315819873e-5,-4.6114776888332594e-8,0.00445585181070049,1.2978205618864193e-5,-4.5936593073707565e-8,0.004456283063848414,1.2995515360089378e-5,-4.597157388372203e-8,0.004456700455403941,1.3107894323916252e-5,-4.621850553884396e-8,0.0044570734879752745,1.3300386432833933e-5,-4.664459015113946e-8,0.004457379329847273,1.354733210799182e-5,-4.719288460843296e-8,0.004457605083715164,1.381611653844664e-5,-4.779065425340231e-8,0.004457749208594007,1.4071308351959136e-5,-4.835873390854053e-8,0.004457821935847933,1.4279162754995978e-5,-4.882171487818592e-8,0.004457844413589892,1.4412244841220207e-5,-4.9118304592704225e-8,0.004457846392811299,1.4453606997495086e-5,-4.9210578647334747e-8,0.004457862579541846,1.4399892313824196e-5,-4.909080557286075e-8,0.004457928006711199,1.4262935015950712e-5,-4.878499921089497e-8,0.0044580728160356475,1.406956442522464e-5,-4.835259699152093e-8,0.004458316817654614,1.385936585539174e-5,-4.7881662798881046e-8,0.004458664213340158,1.3680097018682372e-5,-4.7478820736234354e-8,0.004459099197509258,1.3580228791160693e-5,-4.725262339870064e-8,0.004459584026033035,1.3598195514992196e-5,-4.728940689142557e-8,0.004460062199621417,1.3749252092781208e-5,-4.762371409222547e-8,0.0044604695823886415,1.4013664681784223e-5,-4.8211740969940616e-8,0.004460753777901616,1.4333327715772738e-5,-4.8923755358978294e-8,0.004460895857321044,1.4624178301927179e-5,-4.957195585635171e-8,0.00446092230560696,1.4804495669279922e-5,-4.997383459421404e-8,0.004460896977374359,1.4826692738442146e-5,-5.002318300311229e-8,0.004460895349738283,1.4694329378561483e-5,-4.972790533985917e-8,0.004460976016780967,1.4455254987504552e-5,-4.919452719357374e-8,0.0044611646111219405,1.4178234027314433e-5,-4.857603680579923e-8,0.004461454185855782,1.3928460573193122e-5,-4.801746458935442e-8,0.0044618157539403095,1.3752419469232318e-5,-4.7622364855750946e-8,0.0044622107137216325,1.3673354803297678e-5,-4.7442825841443116e-8,0.00446260043945746,1.369354382664959e-5,-4.7484455725649896e-8,0.004462952022908023,1.3799219006272274e-5,-4.7717131725367e-8,0.004463241121058138,1.3965553328710682e-5,-4.8085882901992276e-8,0.004463453324834858,1.4160873361938923e-5,-4.852016867099879e-8,0.0044635849469705675,1.435036495631774e-5,-4.894218569650978e-8,0.004463643417515637,1.4499782775240661e-5,-4.9275285274911396e-8,0.004463647051016639,1.4579493829923948e-5,-4.945312739285398e-8,0.004463623708041326,1.456882906403381e-5,-4.9429429021382195e-8,0.004463607842406662,1.4460176219189537e-5,-4.918704040982184e-8,0.0044636357910401445,1.4261818394534823e-5,-4.874420470914212e-8,0.0044637397511841466,1.3998495202235436e-5,-4.815581116683994e-8,0.004463941391235043,1.3708962880863763e-5,-4.7508063679370155e-8,0.004464246337336341,1.3440376771153735e-5,-4.6906117413019404e-8,0.0044646407956383674,1.3240001878015215e-5,-4.645569825673976e-8,0.004465091381001237,1.3145269848031426e-5,-4.624087973870854e-8,0.004465549066273715,1.3173598219246631e-5,-4.6301165592733985e-8,0.004465957939694511,1.3314136875100861e-5,-4.661280004540448e-8,0.004466268576327031,1.352468763662037e-5,-4.708169932958065e-8,0.00446645372428031,1.3737541360524216e-5,-4.7556478385599956e-8,0.004466520878302181,1.3876287526487771e-5,-4.786615773013864e-8,0.004466514326078782,1.3880445157377903e-5,-4.7875375783545784e-8,0.004466502142877897,1.3727918531229615e-5,-4.753461483998569e-8,0.004466552086217613,1.344312403337607e-5,-4.689826847344771e-8,0.0044667082651349286,1.3085819784721498e-5,-4.609959388131855e-8,0.004466980019477852,1.2727550786706039e-5,-4.529813388914731e-8,0.004467345755137234,1.2428783962732317e-5,-4.4628795806165725e-8,0.004467765779943532,1.2225982089979055e-5,-4.4173112494455235e-8,0.004468196005854024,1.2129693991677846e-5,-4.395498255353792e-8,0.004468597642816224,1.2129490543834448e-5,-4.395156917433471e-8,0.00446894206410521,1.2201011417455164e-5,-4.410885737385981e-8,0.00446921225500677,1.2312244640502023e-5,-4.43555394468987e-8,0.004469402654481283,1.2428213420078234e-5,-4.46134499502362e-8,0.0044695185950805304,1.2514503621319245e-5,-4.48055188286882e-8,0.004469575723049835,1.2540430548831996e-5,-4.486296672886854e-8,0.004469599148903078,1.2482479511679878e-5,-4.473308223481721e-8,0.004469621667375493,1.2328204497541601e-5,-4.4387945702341005e-8,0.004469680258111596,1.2080054076724377e-5,-4.38329250854799e-8,0.004469810440791369,1.1757832861630705e-5,-4.3112118745779403e-8,0.004470038938882233,1.139812552580378e-5,-4.2307071423256166e-8,0.004470376233823944,1.1049363336854192e-5,-4.1525836645826615e-8,0.004470811437085582,1.0762470256707936e-5,-4.088220096014905e-8,0.004471311827050345,1.057885493987764e-5,-4.046892914926202e-8,0.004471828174441778,1.0518954079644614e-5,-4.0332120643179816e-8,0.00447230517930829,1.057478045414597e-5,-4.045439322306815e-8,0.004472694773246646,1.0709058764895794e-5,-4.075274930775221e-8,0.004472969079340785,1.0862056909000877e-5,-4.1093716830421817e-8,0.004473129460972397,1.096542999972803e-5,-4.1324306385980915e-8,0.004473208349376754,1.0960344314636686e-5,-4.131265117419883e-8,0.004473261801176122,1.0814980769902441e-5,-4.098727821687716e-8,0.004473353611162491,1.0535090952922028e-5,-4.036078520359405e-8,0.004473535890618031,1.0162456216834655e-5,-3.952640941680167e-8,0.004473833792415958,9.760956408521302e-6,-3.862688960352953e-8,0.004474240602953426,9.396173414810474e-6,-3.7808898628385294e-8,0.004474724001444978,9.11738920258227e-6,-3.718281945206038e-8,0.004475238859403357,8.948272943174389e-6,-3.6801887768029544e-8,0.0044757402350894555,8.887048525787006e-6,-3.6662466891908055e-8,0.004476192324498001,8.912754115928486e-6,-3.6717928510436886e-8,0.004476572466872101,8.99328366656885e-6,-3.689655835364853e-8,0.004476871540255352,9.092325994737656e-6,-3.711706737226179e-8,0.0044770926280973825,9.174281950373387e-6,-3.7299643889725875e-8,0.004477249315061717,9.207572991317009e-6,-3.737343689531388e-8,0.0044773641629216165,9.167232096321902e-6,-3.7282422144220036e-8,0.004477467204936426,9.037578898248145e-6,-3.699141801660316e-8,0.004477593756950581,8.815347168589488e-6,-3.649307148880597e-8,0.00447778058690321,8.512872182307729e-6,-3.5814955514758316e-8,0.004478059745215661,8.159958224253264e-6,-3.502372164908136e-8,0.004478450365817333,7.802247766408065e-6,-3.4221459193305144e-8,0.004478950468601355,7.494062159631074e-6,-3.3529720730520204e-8,0.004479532465119492,7.285542176108168e-6,-3.3060801908352687e-8,0.004480146136971822,7.2072554470058906e-6,-3.288331103792207e-8,0.004480730224220354,7.258279349781589e-6,-3.2995444030558204e-8,0.004481229449583244,7.4035582392112385e-6,-3.331896233314279e-8,0.004481610689525678,7.582522644393277e-6,-3.371838931973838e-8,0.004481872292063173,7.725939025928392e-6,-3.403868938062639e-8,0.00448204374844317,7.774910697168804e-6,-3.414782399457034e-8,0.004482176671298304,7.696059172490782e-6,-3.397078855811176e-8,0.004482330435030019,7.4890430319435334e-6,-3.350650916046562e-8,0.004482556672721601,7.1850969128227755e-6,-3.282465246101726e-8,0.0044828866992572885,6.837522641746615e-6,-3.2044432737991846e-8,0.0044833250857910616,6.507056498926579e-6,-3.130192899832561e-8,0.004483850858172803,6.24650987263678e-6,-3.071570165203201e-8,0.004484425307959444,6.08924159396039e-6,-3.036088489326645e-8,0.004485003194359061,6.044356934728174e-6,-3.025827024763154e-8,0.004485543401858622,6.098712850233066e-6,-3.0378643182073185e-8,0.004486016219005494,6.2234233182378906e-6,-3.0657287324259747e-8,0.0044864064166258944,6.3817652026060565e-6,-3.1011736157922704e-8,0.004486712974298434,6.536100940869929e-6,-3.135738930785751e-8,0.004486946987567679,6.652794334948827e-6,-3.16186317416998e-8,0.0044871290855611435,6.705289352964788e-6,-3.173578594963119e-8,0.004487287039748156,6.676139966458214e-6,-3.1669660514816774e-8,0.004487453549021817,6.558809591876483e-6,-3.1405558068106883e-8,0.004487663626245549,6.359694715241642e-6,-3.095779699979666e-8,0.004487950667436226,6.100153211559874e-6,-3.0374268126452117e-8,0.004488340386805238,5.817319379742182e-6,-2.973828357636435e-8,0.004488842722498734,5.561454687988725e-6,-2.9162651978515495e-8,0.004489443758855133,5.387386078451001e-6,-2.87704753805209e-8,0.00449010207955269,5.339481305214199e-6,-2.866142686948672e-8,0.004490754688042762,5.434077367358827e-6,-2.887228736862537e-8,0.004491334130057058,5.647948607453723e-6,-2.9351019643881805e-8,0.004491791249757919,5.921297869142392e-6,-2.99634549511861e-8,0.004492112629279643,6.17644552752166e-6,-3.0535254824106297e-8,0.00449232388491216,6.343735825162951e-6,-3.0910079891972617e-8,0.004492478423788278,6.3824291151391336e-6,-3.0996454297399085e-8,0.0044926387333911215,6.288994539844147e-6,-3.078631234061721e-8,0.004492858636300761,6.092913739653983e-6,-3.0345562453837724e-8,0.004493171588724417,5.844789364045817e-6,-2.9787493231587065e-8,0.00449358619792652,5.60206433789655e-6,-2.9240893731404095e-8,0.004494087869175982,5.4161245069199806e-6,-2.882123891207294e-8,0.004494644740160421,5.322864554289205e-6,-2.8609503663609465e-8,0.004495216006784931,5.337654872160231e-6,-2.864069875751362e-8,0.004495760772876803,5.45491845871229e-6,-2.8902689986086383e-8,0.00449624562807949,5.6517357057193595e-6,-2.9344127629553888e-8,0.004496649625176552,5.894052353282223e-6,-2.988837234120634e-8,0.004496966197981279,6.14368973988668e-6,-3.044936038422412e-8,0.004497202413708704,6.364618307242032e-6,-3.094585642668188e-8,0.004497376491928267,6.527582409948589e-6,-3.131194447327545e-8,0.004497514640436966,6.6129278100694005e-6,-3.150337999113445e-8,0.004497647925917268,6.612117621637158e-6,-3.150093270015358e-8,0.004497809336845073,6.528610724443239e-6,-3.131231070153016e-8,0.004498030707089667,6.3785361876222695e-6,-3.09736925859592e-8,0.004498338829174895,6.191080665260008e-6,-3.055066942661581e-8,0.004498750077775436,6.0076683654676744e-6,-3.013646953689903e-8,0.004499263612814337,5.8780642609847445e-6,-2.9843203850422515e-8,0.004499854940636369,5.851244450515609e-6,-2.9781269629881294E-08,0.004500473936466841,5.960397636023314e-6,-3.002551100540538e-8,0.004501052719345036,6.205775394502228e-6,-3.057655086561226e-8,0.00450152565398311,6.544818406940442e-6,-3.133855594471292e-8,0.004501855052718436,6.89991925988118e-6,-3.213677936923044e-8,0.004502048299394567,7.184984577129539e-6,-3.277745584916125e-8,0.00450215485481849,7.337928245096862e-6,-3.312096524996092e-8,0.004502244939964075,7.34104622514252e-6,-3.31275673941889e-8,0.0045023832883471036,7.220589179745083e-6,-3.285626158580508e-8,0.0045026110823796145,7.030850470500054e-6,-3.2428926008768215e-8,0.0045029404092560505,6.834169236371335e-6,-3.198546698313869e-8,0.004503358106314494,6.685082210089396e-6,-3.1648403907449894e-8,0.004503833931529304,6.621199922123047e-6,-3.150250475699595e-8,0.004504329393182454,6.659916022098113e-6,-3.158735035096041e-8,0.004504805490228415,6.79906815339101e-6,-3.18986098972113e-8,0.0045052288712172945,7.020052500014815e-6,-3.239479081077634e-8,0.004505576291020284,7.292536290791366e-6,-3.300768877577651e-8,0.004505837190189702,7.580099251624076e-6,-3.3655110613896705e-8,0.0045060143045280365,7.846042790020471e-6,-3.42541110553583e-8,0.004506122446663604,8.058625318459529e-6,-3.473295260761845e-8,0.0045061858442556986,8.195104654863028e-6,-3.504028264202122e-8,0.004506234642510104,8.244233774000591e-6,-3.515070923594395e-8,0.004506301185498216,8.20730170658394e-6,-3.506705303538336e-8,0.004506416396345633,8.098093426558627e-6,-3.482021907021817e-8,0.004506606235169193,7.94206498498607e-6,-3.446740371929097e-8,0.004506887964378976,7.774744655900673e-6,-3.4088620681013444e-8,0.004507265898608951,7.63883680811971e-6,-3.378026681707891e-8,0.004507726866888514,7.578827637892328e-6,-3.364294154809401e-8,0.0045082369085281135,7.631796357853752e-6,-3.376059550196789e-8,0.0045087423408103665,7.81442404265071e-6,-3.4171064362557586e-8,0.004509179270358261,8.109527450340536e-6,-3.48355963905556e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json new file mode 100644 index 00000000..d989a12f --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":26000,"numberOfSamples":1000,"samples":[0.004509493310776733,8.460255546355793e-6,-3.5625800851343465e-8,0.004509663584584268,8.78152154032578e-6,-3.634960149730122e-8,0.004509716789810693,8.989819707723907e-6,-3.681866430913203e-8,0.004509719059465651,9.037418772725032e-6,-3.692552117143939e-8,0.004509748243703133,8.930185223519827e-6,-3.668355434778159e-8,0.004509863647122957,8.719470842231082e-6,-3.620846132642241e-8,0.004510089653785742,8.476972036399517e-6,-3.5661533171045015e-8,0.004510416800722429,8.269299770251092e-6,-3.51925282944491e-8,0.004510813094911667,8.1427235238956e-6,-3.4905561743649874e-8,0.004511237012805131,8.118815983827459e-6,-3.4849442039030304e-8,0.004511647598100416,8.19695215375018e-6,-3.5023237901990346e-8,0.004512010754110658,8.359585736620415e-6,-3.538793530902102e-8,0.004512302608721269,8.577895407180773e-6,-3.5878908014654e-8,0.004512511101780664,8.817020399356672e-6,-3.6417590410461715e-8,0.004512636407156604,9.040913865577355e-6,-3.692247406897225e-8,0.004512690307657771,9.216869444768706e-6,-3.7319489010541575e-8,0.004512694498577715,9.319590010896785e-6,-3.755134208751638e-8,0.004512677812454461,9.33448051439994e-6,-3.758499305360356e-8,0.004512672525088187,9.259714461186162e-6,-3.74162487552752e-8,0.004512710155956202,9.106773676260358e-6,-3.7070886445067697e-8,0.004512817232229619,8.899452134994748e-6,-3.660239062283695e-8,0.004513011361703757,8.671416905011533e-6,-3.6086549932726506e-8,0.0045132978459024205,8.462410007400726e-6,-3.561303803422552e-8,0.00451366700674806,8.313087368408677e-6,-3.5273853268424084e-8,0.004514092641922462,8.258223307030978e-6,-3.5147920393724736e-8,0.004514532771288454,8.318077690988317e-6,-3.5281410931936163e-8,0.004514934630932754,8.4888481118899e-6,-3.566597134940736e-8,0.004515245854344678,8.735374126556136e-6,-3.622214330179837e-8,0.0045154316998782295,8.991891199064452e-6,-3.6801147360575755e-8,0.004515492902915043,9.176856590224277e-6,-3.7218586920753816e-8,0.004515473030595792,9.22132948769478e-6,-3.731873347690093e-8,0.004515445973338222,9.09843419372188e-6,-3.704104339955742e-8,0.00451548682469044,8.835578371895206e-6,-3.644751863773576e-8,0.00451564268107663,8.500985857177386e-6,-3.5692080359945736e-8,0.0045159197183348996,8.174205711565663e-6,-3.495399269113799e-8,0.004516289609363855,7.91891452501725e-6,-3.437668106843999e-8,0.004516706111846334,7.769533914623208e-6,-3.403776290168179e-8,0.004517121078763411,7.73134067417984e-6,-3.3949388348932536e-8,0.0045174946878258695,7.787734155315276e-6,-3.4074540770568025e-8,0.004517799867137044,7.908923469211388e-6,-3.434642142253354e-8,0.004518023021591153,8.059160327422076e-6,-3.468456742654183e-8,0.004518163140214663,8.202005982025426e-6,-3.50066650311153e-8,0.004518230411948181,8.30424890030949e-6,-3.523747823122548e-8,0.004518244570725208,8.33915192550796e-6,-3.531634932075353e-8,0.004518232782286238,8.28935594403696e-6,-3.5203891163581475e-8,0.004518226774465987,8.149365170645358e-6,-3.488762043767852e-8,0.004518259006711036,7.927116613346235e-6,-3.438542274392408e-8,0.004518358060544222,7.643963370228097e-6,-3.3745425584923236e-8,0.004518543856405558,7.332621283429884e-6,-3.3041356370972954e-8,0.004518823498710852,7.0329632269025115e-6,-3.236314547040654e-8,0.004519188579967757,6.785903929501321e-6,-3.180325247605029e-8,0.004519614661144808,6.626048418181081e-6,-3.14401232958339e-8,0.0045200634304379044,6.5740276672578925e-6,-3.132079397132222e-8,0.004520487966458727,6.62956304606739e-6,-3.144502131997278e-8,0.00452084147546764,6.766843341505083e-6,-3.175463526314589e-8,0.004521089187148414,6.934764185105069e-6,-3.2134004538126606e-8,0.004521221269959029,7.065025688552307e-6,-3.2428442843453624e-8,0.004521261859102045,7.089574850293132e-6,-3.248384715700535e-8,0.0045212674299407694,6.964089990219654e-6,-3.2199939344201606e-8,0.004521310513078177,6.687544084459722e-6,-3.1574464342686096e-8,0.004521453447203763,6.305670157088708e-6,-3.071085821791362e-8,0.0045217253573987225,5.893958647960642e-6,-2.9779688167653515e-8,0.004522114733755025,5.529133856038296e-6,-2.8954214723599135e-8,0.004522579377927455,5.264744210794258e-6,-2.8355366465152043e-8,0.004523065009217748,5.120982847527676e-6,-2.802885167464862e-8,0.004523521972907846,5.088150002782038e-6,-2.7952986672350293e-8,0.004523914736487703,5.136932989628306e-6,-2.8061821235107004e-8,0.004524224518460753,5.229079919518181e-6,-2.8269112293518485e-8,0.004524447866784532,5.325356167857952e-6,-2.8486202260608446e-8,0.004524593830297251,5.390497834119252e-6,-2.8633216627973057e-8,0.004524681160259874,5.396171432205578e-6,-2.864585654482284e-8,0.004524735849207278,5.323027317101781e-6,-2.8480176026552257e-8,0.0045247886943237964,5.16249823096028e-6,-2.8116730602371682e-8,0.004524872353940403,4.918444281738836e-6,-2.7564280225240977e-8,0.0045250174349796965,4.608134848323794e-6,-2.68619228883987e-8,0.004525247591606092,4.261615509273891e-6,-2.6077583364155316e-8,0.004525574321292053,3.918549452938378e-6,-2.530086898948843e-8,0.00452599277311532,3.622150479587777e-6,-2.462943302074595e-8,0.0045264801545203655,3.4107258886289212e-6,-2.4149954956603862e-8,0.004526998018263306,3.308450392319929e-6,-2.3917312554474847e-8,0.004527498775693957,3.317760005942039e-6,-2.3937301228621522e-8,0.00452793558120547,3.415707219466181e-6,-2.415823276235786e-8,0.00452827373820132,3.555942963102195e-6,-2.4475281614218993e-8,0.004528501076735233,3.677053577969154e-6,-2.4749321189987848e-8,0.004528634255226658,3.7166708540264696e-6,-2.4838951555615288e-8,0.00452871788049019,3.6288209284880697e-6,-2.4639908971730102e-8,0.004528814461392247,3.399578871249497e-6,-2.4120586107355082e-8,0.004528986348915549,3.0544546974012395e-6,-2.3338735228699577e-8,0.004529275447593868,2.652362755159554e-6,-2.2427751850493508e-8,0.0045296894826229355,2.266809562799965e-6,-2.1554061940523532e-8,0.004530201357681512,1.962172998408435e-6,-2.0863453384503786e-8,0.004530761107800889,1.7757792179593227e-6,-2.044053421769499e-8,0.004531313427122603,1.7122786235617054e-6,-2.0295983770420518e-8,0.0045318125655776954,1.749367675975404e-6,-2.037944352447753e-8,0.004532230187937357,1.8490802478591477e-6,-2.0605011670815894e-8,0.00453255650096998,1.968861091375431e-6,-2.08762767548505e-8,0.004532797413529103,2.069429992863889e-6,-2.1104137100273155e-8,0.004532970455627508,2.1191957801873115e-6,-2.121685754164669e-8,0.004533101006844266,2.0963386322046738e-6,-2.1164869031366592e-8,0.004533219236241922,1.9898190337828303e-6,-2.09231193072752e-8,0.004533357423629913,1.8001513809640854e-6,-2.0492836790277707e-8,0.004533546992225019,1.540165048997408e-6,-1.9903207651827864e-8,0.004533814625910253,1.2352637227640804e-6,-1.9211889086172134e-8,0.0045341773121543635,9.220902568912064e-7,-1.8501932634248034e-8,0.004534637007950439,6.443360771918933e-7,-1.7872295458798828e-8,0.004535176664792075,4.4499167138597644e-7,-1.7420339103780497e-8,0.004535760035304328,3.557925328380303e-7,-1.7217978115692215e-8,0.004536337215533742,3.866412902473646e-7,-1.728772350881937e-8,0.004536855876733859,5.191842687487436e-7,-1.7588072274695526e-8,0.004537275385870752,7.081369882607212e-7,-1.8016430469229954e-8,0.004537579125593926,8.912435030713721e-7,-1.8431639886474907e-8,0.004537780530744449,1.005317578228007e-6,-1.8690357071296403e-8,0.004537920538034231,1.0034699039837472e-6,-1.868616129977461e-8,0.0045380570398233745,8.682810605385142e-7,-1.837946472292758e-8,0.004538249294644987,6.169983072998986e-7,-1.780931248930263e-8,0.004538541670781989,2.970358272201004e-7,-1.708319176747392e-8,0.004538951579800054,-2.7231731686069303e-8,-1.634711520277816e-8,0.004539465565272268,-2.9245638234442717e-7,-1.5744867236873657e-8,0.004540044817016876,-4.530987714794202e-7,-1.537993968878856e-8,0.004540637691521912,-4.913904592554641e-7,-1.5292863661002783e-8,0.0045411941681401885,-4.179588426089708e-7,-1.545968048557915e-8,0.0045416771529875445,-2.646725790176748e-7,-1.580808820140591e-8,0.004542067915028178,-7.389589463817978e-8,-1.624181308946475e-8,0.004542365941693601,1.1161571806108388e-7,-1.6663601282918254e-8,0.004542585366851695,2.557719936323004e-7,-1.6991327574329404e-8,0.004542750301596352,3.328556897280507e-7,-1.7166487509062615e-8,0.004542890539772055,3.288339048433999e-7,-1.7157205799619142e-8,0.004543038110357333,2.4148307307612337e-7,-1.6958505979006495e-8,0.00454322442352209,8.020747945813414e-8,-1.659185787564851e-8,0.004543477357567356,-1.341554185295706e-7,-1.6104693284517906e-8,0.0045438176089469635,-3.6995599015852086e-7,-1.5568968349127696e-8,0.004544254057927853,-5.868612278189073e-7,-1.507632289085078e-8,0.004544778812882803,-7.409000787411416e-7,-1.4726631776247386e-8,0.0045453638821404034,-7.933529756111925e-7,-1.4607830316871693e-8,0.004545962512626217,-7.226259496806341e-7,-1.4768947865738407e-8,0.004546517831531095,-5.353354038386974e-7,-1.5194914668309396e-8,0.004546978401910495,-2.705801777601392e-7,-1.5796839796783648e-8,0.004547315606031961,7.426064280520287e-9,-1.6428760347708144e-8,0.00454753489003374,2.2771495362971647e-7,-1.6929398929145512e-8,0.004547674975302893,3.348200634734904e-7,-1.7172762210130373e-8,0.004547795269270398,3.0546407671952013e-7,-1.7106022758788838e-8,0.004547957342816333,1.5361082419481356e-7,-1.6760923023671023e-8,0.004548207818776337,-7.620926519655014e-8,-1.623857269178295e-8,0.004548567688113334,-3.2310178950335675e-7,-1.5677235728358874e-8,0.004549029689400049,-5.261904517049809e-7,-1.5215224434557068e-8,0.004549562879332015,-6.387181991297879e-7,-1.4958938590346338e-8,0.004550122119909111,-6.369676213818445e-7,-1.4962560924246113e-8,0.004550659547407562,-5.227487180281773e-7,-1.522226203843342e-8,0.00455113503524916,-3.198295674394947e-7,-1.568415057741117e-8,0.004551523306381531,-6.614611648123595e-8,-1.6261898726347644e-8,0.004551816641272785,1.9551328796095916e-7,-1.685796274830549e-8,0.004552023601182218,4.2580724108011224e-7,-1.7382583753550408e-8,0.004552165189758773,5.945892816202448e-7,-1.7766991018379748e-8,0.004552270093790798,6.837932410099917e-7,-1.7970026091410244e-8,0.004552370226282839,6.880617875256065e-7,-1.797954851084639e-8,0.004552497089156715,6.141061808103928e-7,-1.781091130786019e-8,0.004552678823971549,4.796156243032983e-7,-1.7504429067141582e-8,0.004552937441607541,3.1202357072442164e-7,-1.7122570952647516e-8,0.004553285657210565,1.4683488458868566e-7,-1.6746191281231358e-8,0.004553723072438308,2.461230159602889e-8,-1.6467701649164962e-8,0.004554232297584862,-1.4673606685835707e-8,-1.6378198838017022e-8,0.004554776931368462,5.916408340345163e-8,-1.654648595704409e-8,0.004555304544316013,2.5471410996338887e-7,-1.699210890005788e-8,0.004555757580182239,5.487508779098537e-7,-1.766206390844868e-8,0.00455609163018589,8.847980560550384e-7,-1.8427567403072217e-8,0.004556294266149341,1.1862585904106192e-6,-1.9114066338961307e-8,0.00455639356224145,1.3819276275300728e-6,-1.955944643880223e-8,0.004556449423840962,1.4320994076717743e-6,-1.967347844662727e-8,0.00455653146260646,1.3415196289400694e-6,-1.9467164239301853e-8,0.004556695250636879,1.1538974614742377e-6,-1.9040064669564954e-8,0.00455696762660136,9.337292242152009e-7,-1.8538868697838413e-8,0.004557344253094815,7.457228920368247e-7,-1.8110674855141883e-8,0.004557796262614695,6.393184058846508e-7,-1.7867944352973605e-8,0.004558280964655819,6.408021303045762e-7,-1.7870661006435703e-8,0.004558752717751708,7.521507776956689e-7,-1.812364701480733e-8,0.004559171865542613,9.545520907436515e-7,-1.8584396920373626e-8,0.004559510918417762,1.214685417394258e-6,-1.9177186559210626e-8,0.0045597577345257365,1.492268065989241e-6,-1.9810175736451022e-8,0.004559915758252532,1.747525782261627e-6,-2.0392490975707653e-8,0.004560001790681829,1.947399946982737e-6,-2.084852456530275e-8,0.004560042130719432,2.069755428846989e-6,-2.112766147211479e-8,0.004560068031127442,2.105379942421046e-6,-2.1208875035905857e-8,0.004560111313149676,2.0580137470542224e-6,-2.110073390215724e-8,0.004560200668904181,1.943025512553438e-6,-2.083829693588606e-8,0.004560358702285993,1.785412603296129e-6,-2.0478523102675264e-8,0.004560599413535639,1.6174458646150957e-6,-2.009495393525646e-8,0.004560925771429382,1.4758038902445344e-6,-1.977126696599221e-8,0.004561327227637577,1.3976103681723366e-6,-1.9592281027131787e-8,0.004561777687863393,1.414475222692563e-6,-1.963031184849548e-8,0.004562235579990404,1.5439760444566057e-6,-1.9925614673578647e-8,0.004562648675447503,1.7796412722016043e-6,-2.046341689014831e-8,0.004562966076598825,2.0834817290894464e-6,-2.1156859279096877e-8,0.004563156563769151,2.3880171788488707e-6,-2.1851733662215338e-8,0.004563226026995868,2.6134961406077906e-6,-2.236596297709388e-8,0.004563222002259049,2.697182257226839e-6,-2.255654425324677e-8,0.004563218140920344,2.6200473503104345e-6,-2.2380369070183947e-8,0.004563285177328307,2.4142697533356353e-6,-2.1911080480621846e-8,0.00456346510562536,2.1474700508499156e-6,-2.1302898831592876e-8,0.0045637614855055355,1.8952029862123072e-6,-2.0727876983910757e-8,0.004564146109374209,1.717390042126911e-6,-2.0322347502066937e-8,0.004564573586655692,1.6467160412382832e-6,-2.0160696512706902e-8,0.004564995621143562,1.6879982482464885e-6,-2.025403919365333e-8,0.004565371098880404,1.823849272809698e-6,-2.0563061761098215e-8,0.004565671575998424,2.0224636955771143e-6,-2.1015577494141815e-8,0.004565883304822525,2.2451570701558744e-6,-2.1523520714831093e-8,0.004566007062175339,2.4528861969496664e-6,-2.1997743592595424e-8,0.004566056469157245,2.6116666971517507e-6,-2.23604574329312e-8,0.004566055109573586,2.6967378051573467e-6,-2.2554903643749895e-8,0.004566032787591015,2.6952576374760298e-6,-2.2551638035756678e-8,0.004566021340058094,2.6074130943391173e-6,-2.2351082445335482e-8,0.004566050456020915,2.445916611802514e-6,-2.198229461679592e-8,0.004566143978834918,2.234071638222029e-6,-2.1498460356284963e-8,0.004566316991076654,2.002834908710053e-6,-2.0970174692905903e-8,0.004566573698773829,1.7872369419549948e-6,-2.047735188978444e-8,0.004566906025496633,1.6222415688750605e-6,-2.009987915744285e-8,0.004567292941820179,1.5378947751270364e-6,-1.9906572258774763e-8,0.0045677009482845456,1.5534732761251689e-6,-1.9941722705096247e-8,0.004568086845586504,1.6706423254153708e-6,-2.0209304708076832e-8,0.004568404479915657,1.8669001932336232e-6,-2.065787129431821e-8,0.004568616641222311,2.0927296815380814e-6,-2.1174057753546027e-8,0.004568710628782926,2.277737563029436e-6,-2.159677431671749e-8,0.004568710906383361,2.3496980887248315e-6,-2.1760931647364762e-8,0.004568678450507578,2.2627328227331568e-6,-2.1561913449607736e-8,0.004568690934995052,2.0202730399911163e-6,-2.100789416692359e-8,0.004568811461316786,1.6765736725135978e-6,-2.0223021008261412e-8,0.004569064102334118,1.3138502582226867e-6,-1.939501198865483e-8,0.00456942983638702,1.0095623883627573e-6,-1.870048308376553e-8,0.0045698609228537225,8.126805895776015e-7,-1.8250956905805127e-8,0.004570301299600792,7.370286449055343e-7,-1.8077863586350383e-8,0.004570702395164331,7.675146472653699e-7,-1.8146849034032396e-8,0.004571031105591736,8.712119800734532e-7,-1.838299920858834e-8,0.004571271553897738,1.0077872223193491e-6,-1.8694474593890068e-8,0.004571423431715869,1.1371794672960694e-6,-1.898988427190855e-8,0.00457149912894306,1.224623094486609e-6,-1.9189713805360918e-8,0.004571520661368493,1.2439529482437433e-6,-1.9233970167685107e-8,0.004571516461258664,1.1798659800376192e-6,-1.90875063062554e-8,0.004571517887299565,1.0292685411183112e-6,-1.874320617434184e-8,0.00457155544903053,8.015811947188519e-7,-1.822266996676711e-8,0.004571654890494846,5.177527012148897e-7,-1.757386049492885e-8,0.0045718335249696285,2.0776980474633583e-7,-1.686531683855287e-8,0.004572097388308316,-9.323396016944465e-8,-1.6177255542095043e-8,0.004572439665645757,-3.4987692521596087e-7,-1.5590463436344316e-8,0.004572840644505964,-5.31972816140779e-7,-1.5173961796713732e-8,0.004573269348815289,-6.200415053200593e-7,-1.4972436045635267e-8,0.004573687024026574,-6.10406095595246e-7,-1.4994491965318193e-8,0.004574052809641157,-5.192579563073559e-7,-1.520320779417572e-8,0.00457433198222599,-3.843987328357727e-7,-1.5512049283710714e-8,0.004574506433080039,-2.6231970700412053e-7,-1.57915871799184e-8,0.004574585098804139,-2.1787955603130257e-7,-1.5893271807468845e-8,0.0045746091849351205,-3.056827632750247e-7,-1.569220003592137e-8,0.004574645498676162,-5.476968892825376e-7,-1.513834525051923e-8,0.004574765267068838,-9.184797312588896e-7,-1.4290196294897466e-8,0.00457501606601899,-1.3499749934384158e-6,-1.3303575679860455e-8,0.004575402559457306,-1.7569182650377685e-6,-1.2373436343486388e-8,0.00457588755670308,-2.0690376161348062e-6,-1.1660288023729968e-8,0.004576410675222101,-2.2521266223356963e-6,-1.1242149216779647e-8,0.004576911396180024,-2.3103385627944873e-6,-1.1109414454615705e-8,0.004577344958268909,-2.275047092560445e-6,-1.119036156480763e-8,0.004577688009744958,-2.190125367673378e-6,-1.1384764724171442e-8,0.00457793703023403,-2.1001362793857524e-6,-1.1590799048558753e-8,0.004578103680851678,-2.0432033769984585e-6,-1.1721260373927869e-8,0.004578209903486739,-2.0476287663152695e-6,-1.1711299731405369e-8,0.00457828387494594,-2.1305649056463137e-6,-1.1521549135013692e-8,0.004578356691217041,-2.2974938653969773e-6,-1.113942510021554e-8,0.004578459254883159,-2.5420904405371936e-6,-1.0579494532798996e-8,0.004578618975408969,-2.8466169571197294e-6,-9.882523233547e-9,0.004578856169100808,-3.183321162571054e-6,-9.112167432714705e-9,0.004579180478803452,-3.5174083811508843e-6,-8.34808453913955e-9,0.004579588120477424,-3.8118316727193404e-6,-7.674971745318212e-9,0.004580060934558044,-4.03352156185739e-6,-7.168392305513895e-9,0.0045805679854873955,-4.1600968235078126e-6,-6.87951141941344e-9,0.0045810699651512255,-4.185692981165825e-6,-6.821782230335321e-9,0.00458152603375295,-4.124467505914989e-6,-6.962856854404446e-9,0.004581902189684743,-4.010657797913334e-6,-7.224349646031663e-9,0.004582179915574498,-3.894438306832133e-6,-7.491268811747432e-9,0.004582363424246814,-3.833098119282915e-6,-7.632267271587255e-9,0.004582483126184382,-3.8777855317296025e-6,-7.53011848341852e-9,0.004582592398102796,-4.057840675385612e-6,-7.117693448106915e-9,0.004582755475052093,-4.367487092300224e-6,-6.408428922268497e-9,0.004583027684494128,-4.761913130848646e-6,-5.505193981758026e-9,0.004583434904318093,-5.1682652158940795e-6,-4.575001218916299e-9,0.004583962740856525,-5.509717091332434e-6,-3.793847647778333e-9,0.004584562235224711,-5.731726984261732e-6,-3.286608037184449e-9,0.0045851690079899594,-5.8173444046123675e-6,-3.092013230972495e-9,0.004585724984926677,-5.785936446522613e-6,-3.1655856948169594e-9,0.004586192672434863,-5.680003803249362e-6,-3.4098510201368928e-9,0.004586558909587067,-5.549240041603622e-6,-3.710862720240599e-9,0.004586831090544941,-5.438473165345392e-6,-3.965824489806852e-9,0.004587030516411275,-5.381337431846182e-6,-4.097587491428378e-9,0.004587186126494469,-5.398361853965937e-6,-4.059053627389166e-9,0.0045873298103882906,-5.49731379182367e-6,-3.8324359563939324e-9,0.004587493095288864,-5.6741958005571095e-6,-3.427014054705955e-9,0.0045877044693880785,-5.914235263036652e-6,-2.876857912876998e-9,0.004587986651218072,-6.192958116809043e-6,-2.238299632400325e-9,0.004588353448843592,-6.477950803344133e-6,-1.5858038797377467e-9,0.004588806428404769,-6.73216177730537e-6,-1.0043412823020856e-9,0.00458933233628059,-6.919340188748711e-6,-5.769299288868636e-10,0.004589902743292579,-7.011376771941958e-6,-3.6786881572565e-10,0.004590477310455618,-6.996130497857601e-6,-4.0485922692968167e-10,0.004591011167147137,-6.883260760486553e-6,-6.656513658249578e-10,0.0045914652682251846,-6.705371049354524e-6,-1.075393733113511e-9,0.004591817010039603,-6.512924106794449e-6,-1.5182606557942965e-9,0.004592067796621043,-6.363468442006583e-6,-1.8621675068497396e-9,0.004592244944227824,-6.307637731525589e-6,-1.9909320328163395e-9,0.004592396800370081,-6.375463343972728e-6,-1.835720290287429e-9,0.004592581636072272,-6.566741952320174e-6,-1.397147556305703e-9,0.004592852503308843,-6.848670800862258e-6,-7.506592754098574e-10,0.0045932418347822595,-7.16265852740837e-6,-3.085310633349787e-11,0.004593750787773998,-7.439775464126724e-6,6.039907256439864e-10,0.004594348004365676,-7.620693551409611e-6,1.0176568839792315e-9,0.004594979307958952,-7.67285027729872e-6,1.1353900564086016e-9,0.004595584733360852,-7.597882344516838e-6,9.60993606260401e-10,0.004596115629330661,-7.427042036220201e-6,5.663444100107817e-10,0.004596545284004681,-7.208277314545172e-6,6.172570217697634e-11,0.004596870828408168,-6.9916428475073475e-6,-4.377209163440163e-10,0.004597108555701069,-6.818392915343977e-6,-8.371051908542961e-10,0.004597286586221487,-6.715617670183615e-6,-1.0741512526115635e-9,0.004597438018468549,-6.6953943241077795e-6,-1.1211643140079087e-9,0.004597595917342151,-6.7563461785649045e-6,-9.814428534041288e-10,0.0045977900559172604,-6.8858632210796456e-6,-6.841521467843064e-10,0.004598044659033155,-7.062128212677125e-6,-2.796287018101613e-10,0.004598376318128057,-7.255916920005681e-6,1.6480339335871812e-10,0.004598791545151504,-7.4327601793754e-6,5.698408862789437e-10,0.004599284036273952,-7.55641510487658e-6,8.521963256757693e-10,0.004599832545317101,-7.59449169585154e-6,9.37519703522967e-10,0.004600401089893143,-7.526267837569374e-6,7.783330705853753e-10,0.0046009435048163455,-7.351117380604259e-6,3.7337668699399923e-10,0.004601413323426574,-7.094082392306315e-6,-2.1959916877791475e-10,0.004601777276461345,-6.804398311453375e-6,-8.872456883447427e-10,0.004602027574734469,-6.544807205465784e-6,-1.4852269544859042e-9,0.004602187108824936,-6.373998484428838e-6,-1.878640796994688e-9,0.004602304305622246,-6.328662725555859e-6,-1.983290254130587e-9,0.004602439234285484,-6.4122851305789306e-6,-1.7913894121004542e-9,0.004602646341656962,-6.59454075292182e-6,-1.372856112257814e-9,0.004602959791749618,-6.820555679744346e-6,-8.539567811146143e-10,0.004603385401025903,-7.026168406663905e-6,-3.8223413598513426e-10,0.004603900535041509,-7.154432726648315e-6,-8.862971018962839e-11,0.004604461221360877,-7.16909923779504e-6,-5.6530923583887666e-11,0.004605014161836207,-7.061911347469658e-6,-3.0496913721986693e-10,0.004605510173710997,-6.852198505821913e-6,-7.894778705239851e-10,0.004605915231864156,-6.579480498016876e-6,-1.4190378636351609e-9,0.004606216233404941,-6.291994615044852e-6,-2.0824711583876744e-9,0.00460642071017142,-6.035108556079831e-6,-2.675171494544614e-9,0.00460655193149057,-5.842863718623184e-6,-3.1186589302558516e-9,0.004606641995139615,-5.733972110264688e-6,-3.369853455113043e-9,0.004606725264452894,-5.711711571864843e-6,-3.4213163304000836e-9,0.0046068334424430035,-5.7661813773756325e-6,-3.2960088168680032e-9,0.004606992447073734,-5.877366283212291e-6,-3.0401786490361465e-9,0.004607220525040382,-6.01804827384349e-6,-2.7166204947669695e-9,0.004607526828035787,-6.156368380259616e-6,-2.3987754818787228e-9,0.004607909878637184,-6.2584771004198995e-6,-2.1646433927517645e-9,0.004608355861891447,-6.292108699703443e-6,-2.0885544550141327e-9,0.004608837460403657,-6.231941022115572e-6,-2.2288041686048496e-9,0.004609314869247811,-6.066944432541149e-6,-2.610692390028512e-9,0.004609741181179981,-5.808287594175388e-6,-3.208296374163034e-9,0.004610073532643847,-5.494016982094601e-6,-3.9337217762102935e-9,0.004610288280096579,-5.185259144008995e-6,-4.645941435360547e-9,0.004610393895995997,-4.950873931477467e-6,-5.186269288801948e-9,0.004610433184336685,-4.844246198175972e-6,-5.431895389162019e-9,0.004610470758879338,-4.8829096485003395e-6,-5.342766223918112e-9,0.0046105707030473,-5.0419564476459976e-6,-4.976589310976798e-9,0.004610775446429694,-5.26417400954597e-6,-4.465310329754646e-9,0.004611094963682681,-5.480348310975678e-6,-3.968302033161426e-9,0.00461150823724263,-5.62972692844612e-6,-3.625329611994953e-9,0.004611973094222571,-5.673786679284628e-6,-3.524987578971608e-9,0.0046124390559712505,-5.60146915226002e-6,-3.692726761576285e-9,0.004612859222188488,-5.427288532920816e-6,-4.095184948750271e-9,0.004613199097686521,-5.184761096077944e-6,-4.655216115005645e-9,0.00461344157660515,-4.917463952163088e-6,-5.272388730713527e-9,0.004613587996069912,-4.669665926120923e-6,-5.844552407820035e-9,0.004613655691602776,-4.478251084401866e-6,-6.28652082530562e-9,0.004613673077859672,-4.367267921755222e-6,-6.542744128551488e-9,0.00461367367651798,-4.345651474038695e-6,-6.592631310893555e-9,0.0046136904516331,-4.407814373872608e-6,-6.449178045460803e-9,0.004613751389181142,-4.536239263420983e-6,-6.152919507168062e-9,0.004613876649815567,-4.704994955452618e-6,-5.763751856803909e-9,0.004614077028175075,-4.883303608630905e-6,-5.352690069082215e-9,0.004614353162834188,-5.038827337005442e-6,-4.994329710158694e-9,0.004614695036423012,-5.140875843306533e-6,-4.759499974144619e-9,0.004615081647533657,-5.164078436357073e-6,-4.706796509128987e-9,0.004615481345908867,-5.093156815280933e-6,-4.871507157630509e-9,0.004615854140456318,-4.928932317867542e-6,-5.251665030544923e-9,0.004616157793161933,-4.694284295014727e-6,-5.794263848231378e-9,0.004616358878782183,-4.436656622864292e-6,-6.389541647842568e-9,0.004616447225878722,-4.222062557520083e-6,-6.884973524270293e-9,0.004616447316459371,-4.117217975337249e-6,-7.126660174101772e-9,0.0046164171712829195,-4.163817419832329e-6,-7.018720722844495e-9,0.004616430002982171,-4.358091358751388e-6,-6.5703061256921416e-9,0.004616545920780777,-4.64955458388336e-6,-5.898225015384205e-9,0.004616789519416018,-4.961068379082266e-6,-5.180477898492885e-9,0.004617144952363664,-5.21797868115541e-6,-4.5890532040936815e-9,0.004617567428571435,-5.370589400078979e-6,-4.238257150629672e-9,0.004618001377383055,-5.4024523567296e-6,-4.165786813726474e-9,0.00461839617858386,-5.326689531338634e-6,-4.341319230810882e-9,0.004618715659086564,-5.176427103811998e-6,-4.688546619249612e-9,0.004618941704013463,-4.994299138923035e-6,-5.1092602716603065e-9,0.0046190738457956015,-4.823500218588578e-6,-5.503860695653606e-9,0.004619126539673815,-4.701021915286869e-6,-5.786919842108562e-9,0.00461912513350184,-4.6530002781485684e-6,-5.897985711351209e-9,0.004619101113456684,-4.692128922859444e-6,-5.8076723886911916e-9,0.004619087174435325,-4.817110070681227e-6,-5.5190059356818914e-9,0.004619112672785507,-5.013950645613634e-6,-5.064416509080086e-9,0.004619199956383798,-5.258745206492392e-6,-4.499227652478228e-9,0.004619361925076508,-5.521396310506229e-6,-3.892989039720409e-9,0.004619600861690062,-5.769630238686212e-6,-3.3201995651143257e-9,0.0046199082837785595,-5.972903127371703e-6,-2.851352592334347e-9,0.004620265553426885,-6.106140175320044e-6,-2.5443702178223045e-9,0.004620645157437597,-6.15344235394916e-6,-2.4360418005486742e-9,0.004621012910332626,-6.111969284666793e-6,-2.5329705998129033e-9,0.004621331889116244,-5.995896088586415e-6,-2.8023280874564467e-9,0.004621569196957076,-5.839257062531263e-6,-3.16525563366286e-9,0.004621705946598681,-5.6949592448301445e-6,-3.499245426945735e-9,0.0046217486369424686,-5.626269776579186e-6,-3.6579976183436843e-9,0.004621736346891752,-5.688589628394338e-6,-3.5136773121236357e-9,0.004621735560203208,-5.9056093086997374e-6,-3.011976455429588e-9,0.004621818663207311,-6.252544277839716e-6,-2.2106262735571202e-9,0.004622034186749106,-6.660327133482274e-6,-1.269447535738715e-9,0.004622386277920894,-7.0421296244785226e-6,-3.8895869566759596e-10,0.004622835921998608,-7.326987257096725e-6,2.672247922603419e-10,0.004623320597655784,-7.481387241366695e-6,6.22078154458821e-10,0.004623778166074979,-7.511256501722334e-6,6.895832720469361e-10,0.0046241631750252934,-7.4503005879202574e-6,5.476957123973267e-10,0.0046244526906444455,-7.344777280885875e-6,3.031921981158643e-10,0.004624644751104253,-7.241142852555951e-6,6.324918068849496e-11,0.0046247535293354415,-7.178329664083658e-6,-8.227089394819571e-11,0.004624803929537004,-7.1838293799132266e-6,-6.982495105222414e-11,0.004624826696230001,-7.272134715425384e-6,1.3414464882997706e-10,0.004624854095060916,-7.444583539571314e-6,5.327371256362688e-10,0.004624916026302616,-7.690267618702546e-6,1.1006291093985203e-9,0.004625036574007785,-7.98793405485864e-6,1.7885067099525766e-9,0.004625231133799637,-8.30888821439031e-6,2.5298802519654072e-9,0.004625504428824734,-8.620815020618825e-6,3.2500039740028935e-9,0.004625849747329165,-8.892151827359156e-6,3.875986187591585e-9,0.0046262495157665465,-9.09652545200698e-6,4.346970267559263e-9,0.004626677147753625,-9.216883627944467e-6,4.623605244888573e-9,0.004627100098948487,-9.249002221467704e-6,4.6961442314090165e-9,0.004627484100502901,-9.204044867914665e-6,4.590434874603475e-9,0.004627798689161824,-9.109776567161958e-6,4.3708109803278244e-9,0.004628024187515499,-9.0095003276215e-6,4.1376398888795614e-9,0.004628159602392367,-8.956974239448121e-6,4.015455545081188e-9,0.004628229255540625,-9.005485803645908e-6,4.127521100134283e-9,0.004628283803510658,-9.1910726190435e-6,4.556926589182645e-9,0.004628390435834369,-9.514454774165462e-6,5.304877259037512e-9,0.004628610918423801,-9.931843970056032e-6,6.269651296939101e-9,0.004628975503068454,-1.03648245865506e-5,7.2696549997176675e-9,0.004629467998225569,-1.0728850454589621e-5,8.10939549229837e-9,0.004630032512152586,-1.0965482676576773e-5,8.65397700401509e-9,0.004630597398772655,-1.1060056137677217e-5,8.86984853736169e-9,0.004631101082919748,-1.1038122203419039e-5,8.816457412620772e-9,0.004631507147841215,-1.0948389067229884e-5,8.606690701628071e-9,0.004631806481354592,-1.0844288661248472e-5,8.364204739480547e-9,0.004632011465302068,-1.0771358781577292e-5,8.194291991699351e-9,0.004632147892557216,-1.0761401585255883e-5,8.170455351365712e-9,0.004632247893263616,-1.0831308542105932e-5,8.331728476942694e-9,0.00463234477781505,-1.0984114505098195e-5,8.685073680741978e-9,0.004632469369290628,-1.1210771926742844e-5,9.209415190899736e-9,0.004632647141513031,-1.1492171204089592e-5,9.860291714348777e-9,0.004632895765556187,-1.1801489544677315e-5,1.0575356211698413e-8,0.004633222987185644,-1.2107161747595294e-5,1.1281365019742708e-8,0.004633625109689717,-1.2376748980879223e-5,1.1903214390625413e-8,0.004634086659004174,-1.2581610090192167e-5,1.2374746891829162e-8,0.004634581752502566,-1.2701806877036646e-5,1.2650024924146413e-8,0.004635077356706937,-1.273044813037253e-5,1.2713298103112125e-8,0.004635538281190807,-1.2676599340062202e-5,1.2585709492729057e-8,0.004635933426539173,-1.2565907068775515e-5,1.2326775887080312e-8,0.0046362425090470906,-1.2438342120984666e-5,1.202920592778017e-8,0.004636462294497865,-1.234271921279755e-5,1.1806193185873564e-8,0.004636611028747824,-1.232775517799123e-5,1.1770617073140064e-8,0.004636729067608224,-1.2429993538057063e-5,1.2006973681361427e-8,0.004636873204322435,-1.2660614669240317e-5,1.2540806146547426e-8,0.004637103047741207,-1.2995764214321633e-5,1.3316407776853431e-8,0.004637461294852211,-1.3376967540621544e-5,1.4197950262497705e-8,0.00463795534065098,-1.3726217412767458e-5,1.5004554273269622e-8,0.004638550845381015,-1.3972478316380603e-5,1.5571711376454045e-8,0.004639183148953752,-1.4077211752893863e-5,1.5810383357853653e-8,0.0046397812865391925,-1.4045280259926954e-5,1.5732214181573113e-8,0.0046402914283477465,-1.3917086868911308e-5,1.5431235497281092e-8,0.004640688992994678,-1.3749519789539588e-5,1.50396004361683e-8,0.004640977811977925,-1.3597154104758875e-5,1.4683939035007512e-8,0.0046411816590931215,-1.3500634643284917e-5,1.4458435271925997e-8,0.004641334337283517,-1.3482814716284878e-5,1.4415936504639937e-8,0.004641471841569615,-1.3549864644392499e-5,1.45705737914381e-8,0.004641627345314647,-1.36943373473814e-5,1.4904873429144573e-8,0.004641828265389255,-1.3898382253809021e-5,1.5377192152694978e-8,0.004642094369945667,-1.4136568493739574e-5,1.592827642183505e-8,0.004642436229981527,-1.4378530825307724e-5,1.648746362443435e-8,0.004642853793025203,-1.4591962398589605e-5,1.6979710468902657e-8,0.00464333536372152,-1.4746476784586312e-5,1.7334602810121096e-8,0.004643857739129038,-1.481845010519349e-5,1.749756817785199e-8,0.00464438837763796,-1.479624509342569e-5,1.7441917675913e-8,0.0046448901141322415,-1.4684572553892183e-5,1.7178880316379137e-8,0.00464532817306209,-1.4506395760338885e-5,1.676197448758261e-8,0.0046456782783954416,-1.4300948688484878e-5,1.628240091514535e-8,0.004645933875498211,-1.4117326680498562e-5,1.5854168093428857e-8,0.004646110289799332,-1.4004423473821114e-5,1.5590715394014384e-8,0.004646244116896511,-1.399911276381716e-5,1.5577449679665026e-8,0.004646387005593405,-1.41153100211975e-5,1.5846355805771457e-8,0.004646594141764705,-1.4337032558028205e-5,1.6359950354097322e-8,0.004646909305258094,-1.4618613247030586e-5,1.701188561366317e-8,0.0046473503812339495,-1.4894178333601433e-5,1.7649042879564176e-8,0.004647900916773948,-1.5095625610264924e-5,1.811329983033688e-8,0.004648512809389593,-1.5173842404411922e-5,1.829077431406508e-8,0.004649120903019922,-1.5114403601433032e-5,1.8148248545685655e-8,0.004649663817187577,-1.4940331193331636e-5,1.7739550224659373e-8,0.004650101646361556,-1.4701189768492982e-5,1.7180166575556488e-8,0.004650423559198932,-1.4455016176381626e-5,1.6605176919502795e-8,0.004650644665764515,-1.4251827770794912e-5,1.613086614501808e-8,0.004650796624019296,-1.4124141025250696e-5,1.583268895658235e-8,0.004650917415804542,-1.4084914955533756e-5,1.5740543813909623e-8,0.004651043598431591,-1.4130241265291127e-5,1.5845089278510927e-8,0.0046512057278376125,-1.4243729279101672e-5,1.6107974164142077e-8,0.0046514261340793615,-1.4400690454054686e-5,1.6471579916206996e-8,0.00465171789456136,-1.4571531090473221e-5,1.6866922638427443e-8,0.004652084137226091,-1.4724599130893931e-5,1.7220302263998086e-8,0.00465251732741125,-1.4829134893015994e-5,1.746020024223448e-8,0.004652998819609395,-1.4859005735948932e-5,1.7525983107701823e-8,0.004653499526234626,-1.4797478165342453e-5,1.7378984205893643e-8,0.004653982822792938,-1.4642447874902636e-5,1.701461884775316e-8,0.004654410522758944,-1.4410540357957179e-5,1.6471859896107837e-8,0.004654751676673082,-1.4137726039344877e-5,1.5834608479389963e-8,0.0046549921899199246,-1.3874312315314267e-5,1.5219993013443092e-8,0.004655141733859297,-1.3673984905797297e-5,1.4752835810267254e-8,0.004655234441725839,-1.3579420898515158e-5,1.4532174851046341e-8,0.00465532189043984,-1.3609191262358246e-5,1.460084197006534e-8,0.00465545992364021,-1.3750758727023153e-5,1.4929278998332993e-8,0.004655693328327301,-1.3962304090208998e-5,1.5419907146882814e-8,0.004656043110456753,-1.4183068768481111e-5,1.5931259431933548e-8,0.0046565001678516875,-1.434927671056179e-5,1.631501554350779e-8,0.004657027305155954,-1.4411158052329369e-5,1.6455548921583325e-8,0.004657569281103155,-1.434612452943196e-5,1.630052615942731e-8,0.004658068049326739,-1.41639120076071e-5,1.5872851697627348e-8,0.0046584782426453645,-1.3901969676808915e-5,1.525993191601153e-8,0.0046587776708922075,-1.3613082255371558e-5,1.458484088844579e-8,0.004658969832612916,-1.3350233172794423e-5,1.397103491590227e-8,0.004659079003760188,-1.3154157206487545e-5,1.3513330900768914e-8,0.004659141208384155,-1.3046837117797856e-5,1.3262761688597618e-8,0.004659194957403009,-1.3031068730407019e-5,1.3225604937819598e-8,0.004659274330167408,-1.3094026415269862e-5,1.3371747416260096e-8,0.0046594050651191455,-1.3212282800757067e-5,1.3646426315830232e-8,0.004659602999671059,-1.3356523513515203e-5,1.3981232874721674e-8,0.004659873789227049,-1.3495310852038219E-05,1.430287645128278e-8,0.004660213024776066,-1.359808005239616e-5,1.4540151248134795e-8,0.00466060633304002,-1.3637992835869933e-5,1.4630579714044076e-8,0.00466102965981684,-1.3595349253137439e-5,1.4528372069494455e-8,0.004661450563042212,-1.3461902340691184e-5,1.421449651710166e-8,0.004661831730217652,-1.3245578696188559e-5,1.3707678548966238e-8,0.004662137755511344,-1.2973872164911173e-5,1.307227092715899e-8,0.004662344999202101,-1.2693012432152884e-5,1.2416231574338447e-8,0.0046624519407560735,-1.2460082818593682E-05,1.1872648439435237e-8,0.004662485004202495,-1.2327880026386206e-5,1.1564379854227212e-8,0.004662494901102442,-1.2327021407297365e-5,1.1562375295099926e-8,0.004662542595555069,-1.24533420275431e-5,1.185644126351985e-8,0.0046626799506357805,-1.2667322066857839e-5,1.2354101779958266e-8,0.004662933402383711,-1.2906251170550697e-5,1.2909087247827492e-8,0.004663297073919368,-1.3103506845817271e-5,1.3366273288023952e-8,0.004663736575308624,-1.3207064274389993e-5,1.360471420722314e-8,0.00466420034455511,-1.3191474217760806e-5,1.3565421464328888e-8,0.004664633821846689,-1.3061257113502004e-5,1.3259181775894936e-8,0.0046649923454657955,-1.284657142486857e-5,1.2756441236261749e-8,0.0046652500093320995,-1.2593575575264028e-5,1.2164869400910327e-8,0.004665403125135055,-1.2352518526780268e-5,1.160163133759852e-8,0.004665468293837048,-1.2166612359423423e-5,1.1167452954822372e-8,0.004665476372929213,-1.2064179756235221e-5,1.092829431744967e-8,0.004665464527011558,-1.205536188602705e-5,1.090765701107904e-8,0.00466546866248559,-1.2133139463074206e-5,1.1088976843000324e-8,0.004665517840456056,-1.2277264814901737e-5,1.1424838647350068e-8,0.00466563119751025,-1.245936221956031e-5,1.1848924275875613e-8,0.004665817006354218,-1.2647802841822536e-5,1.2287410809984839e-8,0.004666073053110041,-1.281166414378168e-5,1.2668190698852117e-8,0.004666387542373383,-1.292381306206243e-5,1.2928022906658796e-8,0.004666740117300406,-1.2963606556451226e-5,1.3018805625924864e-8,0.004667103089208761,-1.2919782368290056e-5,1.2914336858847914e-8,0.004667443516313451,-1.2793855787151033e-5,1.261828935995056e-8,0.004667727216102982,-1.2603634007130076e-5,1.2172443742013038e-8,0.004667925717887047,-1.2385223968453717e-5,1.1661335221281164e-8,0.004668025982969037,-1.2190587373047782e-5,1.1206425769168459e-8,0.004668040124918859,-1.2077562615726495e-5,1.0942668267392677e-8,0.004668009332740903,-1.2092131257680859e-5,1.0977046211594681e-8,0.004667995963365245,-1.2248776168792324e-5,1.1342816317376177e-8,0.004668063394253834,-1.2519839245074089e-5,1.1974895693262607e-8,0.004668252213447853,-1.2842352538933383e-5,1.272604191553377e-8,0.004668565476656956,-1.3140346753934688e-5,1.3419026252516424e-8,0.004668970137839872,-1.3350798188378615e-5,1.390712963685913e-8,0.00466941145688206,-1.3440881943664238e-5,1.4114239617360718e-8,0.004669831352637258,-1.3411820715628956e-5,1.4043647933471819e-8,0.004670183125758375,-1.3292231840828618e-5,1.3762398499525709e-8,0.004670439551567326,-1.3126587614643615e-5,1.3374333363953765e-8,0.0046705947835942166,-1.2963357965618242e-5,1.2992486691062576e-8,0.004670661871582767,-1.2845325839862214e-5,1.2716578643366719e-8,0.004670667699865216,-1.2802931475699457e-5,1.2617538625965364e-8,0.004670646681376949,-1.2850763728081769e-5,1.2729307862896565e-8,0.00467063427678483,-1.2987111806417097e-5,1.304775137827414e-8,0.004670661343090428,-1.3196164916613432e-5,1.353577457443399e-8,0.004670750064167247,-1.3452020070287972e-5,1.4132715042564545e-8,0.004670911777831962,-1.3723508501828329e-5,1.4765677409608379e-8,0.004671146597861861,-1.397894625705489e-5,1.5360669460035923e-8,0.004671444375319671,-1.4190158848444865e-5,1.5851986140975655e-8,0.004671786392194452,-1.4335593144657587e-5,1.6189419371909977e-8,0.004672147385320302,-1.440277455442945e-5,1.634395024210514e-8,0.004672497882915822,-1.439047323877524e-5,1.63128171558708e-8,0.004672807221955093,-1.4310754474099981e-5,1.6124358297051074e-8,0.004673047967062916,-1.4190585450886653e-5,1.5841798023873977e-8,0.004673202402940901,-1.4071681804180103e-5,1.556283414706472e-8,0.004673270739720579,-1.4006175424222032e-5,1.5409373309145138e-8,0.004673278417874302,-1.4045585886180635e-5,1.5501616287218707e-8,0.0046732771097705355,-1.4223112429589761e-5,1.5916656213600744e-8,0.0046733335426375954,-1.4535231411889031e-5,1.6645637433110732e-8,0.0046735060396706435,-1.4934337773744007e-5,1.7576826633511244e-8,0.004673819189801707,-1.5341741234222534e-5,1.852618723245616e-8,0.004674252268579398,-1.5677278964770178e-5,1.9306615085994873e-8,0.004674748944885229,-1.5888924620635015e-5,1.9797027686382072e-8,0.004675240882951573,-1.5966460031890974e-5,1.997414641383107e-8,0.004675670613593522,-1.593625842060622e-5,1.9900119679567408e-8,0.0046760041793818975,-1.5845643844857367e-5,1.9685820881802324e-8,0.00467623309851158,-1.5746690960885734e-5,1.945294625392006e-8,0.004676369818220206,-1.568457041001168e-5,1.930686205008403e-8,0.004676440772138309,-1.5691203227189234e-5,1.932191376955323e-8,0.004676479528732202,-1.5782987495501686e-5,1.9536206216259085e-8,0.004676520954653062,-1.5961033347667108e-5,1.995215400474037e-8,0.004676596422060922,-1.6212951573783454e-5,2.0540610281932875e-8,0.004676730027189161,-1.6515837372076925e-5,2.1247813816331533e-8,0.004676935979999788,-1.6840152095742693e-5,2.2004505046599017e-8,0.004677217318990602,-1.7154102391278926e-5,2.2736247570911134e-8,0.00467756602649892,-1.7428077777037665e-5,2.3373860561672378e-8,0.004677964479425937,-1.763863379374355e-5,2.3862716425329537e-8,0.0046783879238457065,-1.7771596392012232e-5,2.4169923607945506e-8,0.004678807583239352,-1.782417897198473e-5,2.4289203675387195e-8,0.004679194192743565,-1.780618647288843e-5,2.4243687912563586e-8,0.004679521978008149,-1.7740311713799754e-5,2.4086639550366526e-8,0.0046797732769125674,-1.7661270247751158e-5,2.3899445231071237e-8,0.004679943926326737,-1.7612934963310745e-5,2.378485408762777e-8,0.00468004874105327,-1.76419904879494e-5,2.38520116422879e-8,0.0046801248137174605,-1.7786845602176726e-5,2.4190427202702886e-8,0.004680228593309382,-1.806263404032576e-5,2.4834927068767032e-8,0.004680422650323219,-1.844760764224442e-5,2.5734020536887993e-8,0.0046807527992763975,-1.8880759513499523e-5,2.674458018490809e-8,0.0046812254701966765,-1.9278549072575866e-5,2.7671099756894892e-8,0.004681800427430815,-1.9566523632612258e-5,2.8339657629219468e-8,0.004682406079741662,-1.9708395147643984e-5,2.8665861411746463e-8,0.004682968366748158,-1.9715465849410977e-5,2.867679352392317e-8,0.004683435608529261,-1.9634266355882566e-5,2.8481924313167707e-8,0.0046837883337889595,-1.952439154406978e-5,2.822106187628867e-8,0.004684035487230924,-1.9439673756009193e-5,2.8020203083391307e-8,0.004684204485088165,-1.941806770279495e-5,2.7967929163297136e-8,0.00468433116167156,-1.9479029937500837e-5,2.8109428435669545e-8,0.004684452186456466,-1.9625176187452407e-5,2.845049597540157e-8,0.004684600168465979,-1.984553498761316e-5,2.896517248241957e-8,0.0046848006032723915,-2.0118998764571928e-5,2.9603786467988204e-8,0.0046850698397548065,-2.041773635670475e-5,3.0300926191513015e-8,0.004685413783371999,-2.0710763850050337e-5,3.098384943257845e-8,0.00468582740770953,-2.096777642395736e-5,3.1581541361914726e-8,0.004686295292293071,-2.1163165376747107e-5,3.203417446835051e-8,0.004686793459251504,-2.127986172954694e-5,3.230208207219933e-8,0.004687292561605285,-2.1312386356273433e-5,3.2372809600881676e-8,0.0046877621105637915,-2.126854613740853e-5,3.2264991110637834e-8,0.004688175258111988,-2.1169442043346494e-5,3.202831932504239e-8,0.004688513640797768,-2.104761290672734e-5,3.173919627450822e-8,0.004688771804655766,-2.0943260277204035e-5,3.149188772523059e-8,0.004688960704666771,-2.089847309766487e-5,3.138494951118754e-8,0.004689109427812848,-2.0949239557927876e-5,3.150244410680444e-8,0.0046892635417487075,-2.111546408427255e-5,3.189053130139887e-8,0.004689477922148566,-2.139077308886334e-5,3.253367882818093e-8,0.004689802698454854,-2.1736387602686895e-5,3.3340499356742825e-8,0.004690264446209853,-2.2085256460148676e-5,3.415361339714332e-8,0.004690850572478942,-2.2360461861946586e-5,3.4792836260214054e-8,0.004691507905376526,-2.2503277074614084e-5,3.512087981369812e-8,0.0046921603699025816,-2.2496547289027997e-5,3.5098078105129547e-8,0.004692737515622717,-2.2369205648309436e-5,3.4792895698371355e-8,0.0046931977430484575,-2.218033828194287e-5,3.434443116540985e-8,0.004693535450245421,-2.19946049648199e-5,3.390460552743203e-8,0.004693773572452373,-2.1862829343110403e-5,3.359254933534034e-8,0.0046939501630360635,-2.181362607661693e-5,3.3475032195887265e-8,0.004694106408800557,-2.1853986931876104e-5,3.356800326714713e-8,0.004694278929507639,-2.1974145041739544e-5,3.384814078091561e-8,0.004694495986966662,-2.2153135943492177e-5,3.4265942399950725e-8,0.00469477605708682,-2.236343686777121e-5,3.475658838964401e-8,0.004695127385027143,-2.25745849279392e-5,3.5248415385464474e-8,0.004695547882976639,-2.2756322352379375e-5,3.567032900021728e-8,0.004696025355911659,-2.2881787560675736e-5,3.595935203368904e-8,0.004696538399017729,-2.2930998865573962e-5,3.6068830865346576e-8,0.0046970585118214685,-2.2894428695522926e-5,3.597678695177047e-8,0.0046975538398428066,-2.277591695522771e-5,3.569266368776685e-8,0.004697994417085737,-2.2593897361128732e-5,3.52601055038316e-8,0.004698358163045725,-2.238005741037552e-5,3.475374675121492e-8,0.0046986364344812365,-2.2175013783692378e-5,3.4269031535764016e-8,0.0046988377483364,-2.2021316841364653e-5,3.3905777612987485e-8,0.004698988505350433,-2.1954843872662592E-05,3.3747957039559153e-8,0.00469913001615439,-2.199603289469974e-5,3.384312019587815e-8,0.004699311555481439,-2.2142626039551497e-5,3.418542095617081e-8,0.004699579681160445,-2.2366028659942287e-5,3.470720003209844e-8,0.004699965159038889,-2.261379023439517e-5,3.528496641002932e-8,0.0047004707613474824,-2.2820209470544427e-5,3.576439822294622e-8,0.004701065275270101,-2.29245915141501e-5,3.600321104272019e-8,0.0047016890656927665,-2.2891951736126434e-5,3.591970431021748e-8,0.004702272011748362,-2.2726666777386748e-5,3.5524736397453896e-8,0.004702756920507253,-2.2470877734699576e-5,3.491788013206634e-8,0.004703116987165939,-2.2187808782063738e-5,3.4248104068405246e-8,0.004703359534640568,-2.193925935774467e-5,3.3660754039070295e-8,0.004703517130520162,-2.176842696306175e-5,3.325714330433221e-8,0.004703633418269326,-2.1693450292192006e-5,3.3079469125848756e-8,0.004703750784664788,-2.1710014565138826e-5,3.311710181821752e-8,0.004703902999268972,-2.1798210735348334e-5,3.332284229703271e-8,0.00470411241473192,-2.1929606093883388e-5,3.362958798550564e-8,0.004704389870876045,-2.207267688476105e-5,3.396308166894864e-8,0.0047047356012256255,-2.2196523423997598e-5,3.425061394883235e-8,0.004705140226676658,-2.2273583221930157e-5,3.4427402906015455e-8,0.004705585684179088,-2.2282131344618075e-5,3.444250019797068e-8,0.004706046484988976,-2.2209080754436687e-5,3.426539393023329e-8,0.004706492021561705,-2.205305499960459e-5,3.389321201807501e-8,0.004706890608130669,-2.182697129221664e-5,3.3356730967267744e-8,0.00470721539646339,-2.1558758464267093e-5,3.2721977504560417e-8,0.004707451321018943,-2.12887104727388e-5,3.208392178194558e-8,0.004707601124258925,-2.1062650368795808e-5,3.1550339335174934e-8,0.004707687923092548,-2.092164673284272e-5,3.1217597646232705e-8,0.004707752373939844,-2.0890881213821516e-5,3.1144495257733445e-8,0.004707844271649323,-2.097124597532204e-5,3.1332583670419434e-8,0.004708010475613604,-2.113670162270532e-5,3.172008981581706e-8,0.004708282385389394,-2.1338748014371744e-5,3.219257613945702e-8,0.0047086664359290925,-2.15173693706775e-5,3.2608780636782456e-8,0.0047091404880734164,-2.161606952423453e-5,3.283599569519555e-8,0.004709657840613588,-2.159728736032355e-5,3.278626927707014e-8,0.0047101587972046815,-2.14536381865304e-5,3.244275536750323e-8,0.004710587092019814,-2.1210639927389882e-5,3.1866026733256766e-8,0.004710905784652387,-2.0918934500008726e-5,3.11756702803512e-8,0.004711106530119068,-2.0638435018091832e-5,3.051288304831013e-8,0.004711208865517889,-2.0420804081158147e-5,2.999917704131898e-8,0.004711250995690448,-2.029710843358638e-5,2.9707348003223693e-8,0.004711277151420492,-2.0274053881011356e-5,2.9652724627549498e-8,0.00471132674977426,-2.033766978305856e-5,2.9801983439850805e-8,0.00471142806619857,-2.046071242907155e-5,3.009067825446045e-8,0.004711596296366146,-2.061020016312087e-5,3.044100612335261e-8,0.004711834389857875,-2.0753171954947886e-5,3.077533281366249e-8,0.004712134965726818,-2.086041685204148e-5,3.1024925417154556e-8,0.004712482251510385,-2.090882235568343e-5,3.1135456149055995e-8,0.004712853737906606,-2.0883211847782863e-5,3.107133595210802e-8,0.004713221881139335,-2.0778334625325025e-5,3.082042383122008e-8,0.004713556597760101,-2.0601134262572815e-5,3.0399376917884984e-8,0.004713829354068818,-2.037263915355485e-5,2.9858068237885336e-8,0.004714019207495355,-2.0127999853239356e-5,2.9279591365504785e-8,0.004714120040236812,-1.9912737159773322e-5,2.8771311538676714e-8,0.00471414655809,-1.9773869991005393e-5,2.8443873226592142e-8,0.004714135386249772,-1.9746861801332327e-5,2.83804276963628e-8,0.004714138370032906,-1.984258160661189e-5,2.8606000254505665e-8,0.004714208596707071,-2.004036454826956e-5,2.9071316232283385e-8,0.004714383927031075,-2.029154199139544e-5,2.966130936884501e-8,0.00471467478824134,-2.0532945180363846e-5,3.022705867006223e-8,0.004715061013315357,-2.070513244011117e-5,3.0628741349271914e-8,0.00471549819391272,-2.076855953990602e-5,3.0773644450018024e-8,0.004715930398805945,-2.0712828599232458e-5,3.06378229761092e-8,0.00471630479798327,-2.0557372487725065e-5,3.02675794944921e-8,0.00471658419168978,-2.0344538606421003e-5,2.9763064924636998e-8,0.004716754587575241,-2.012762846230072e-5,2.9250034311585e-8,0.004716826391143379,-1.9957347775696705e-5,2.8847903519089865e-8,0.004716829482927148,-1.9870328926400146e-5,2.8642734974974278e-8,0.004716804183631088,-1.9882591570309303e-5,2.8671899620700577e-8,0.004716791192796836,-1.9989005281011388e-5,2.8922902741116466e-8,0.004716823437325514,-2.016770532199581e-5,2.934387756265717e-8,0.004716921469150951,-2.0387043502867066e-5,2.986002387931219e-8,0.0047170924226144694,-2.0612596164450385e-5,3.0390138793191444e-8,0.004717331446500595,-2.081266616228881e-5,3.085955828244744e-8,0.00471762425529221,-2.0961852660023846e-5,3.120852397033979e-8,0.004717949786709429,-2.104309008518074e-5,3.139695112234478e-8,0.004718282560551554,-2.104890203008696e-5,3.1407378398035346e-8,0.00471859492533725,-2.0982516486430054e-5,3.1247623321056654e-8,0.004718859796079545,-2.0859052414961204e-5,3.0953605446153896e-8,0.004719054624823485,-2.0706285041295662e-5,3.059112867970817e-8,0.004719167008269947,-2.0563643657749342e-5,3.025342322589191e-8,0.0047192012609654915,-2.0477478018717793e-5,3.00498426889888e-8,0.00471918345441392,-2.0491050133859172e-5,3.0082155472353386e-8,0.004719160711673773,-2.0630138351970563e-5,3.041060704503147e-8,0.004719191097019601,-2.0889406258420564e-5,3.1021931692673706e-8,0.004719325043469325,-2.1227769789697886e-5,3.181866698159706e-8,0.0047195859260143365,-2.1578468896618452e-5,3.264310559084911e-8,0.004719960156972756,-2.187111814865657e-5,3.3329373513019146e-8,0.004720402230039262,-2.2055137896671795e-5,3.375863627291979e-8,0.004720851199728154,-2.211368644516015e-5,3.3891818178741824e-8,0.004721249742534635,-2.2064084478755165e-5,3.3770422384395773e-8,0.004721558271420089,-2.194802371751545e-5,3.349326327499581e-8,0.004721761248337392,-2.181765833721016e-5,3.318355542341268e-8,0.004721866556401599,-2.1722520963282726e-5,3.295805030285286e-8,0.004721900238871268,-2.169987115382176e-5,3.29043510790176e-8,0.004721898892204645,-2.176929055241197e-5,3.306826983285239e-8,0.004721901529417458,-2.193141803818353e-5,3.345092527192641e-8,0.004721942348745987,-2.2170269412426117e-5,3.401426136456454e-8,0.004722045516212493,-2.2458138717909424e-5,3.4692640398515564e-8,0.004722222546618573,-2.2761699487966296e-5,3.540726851507083e-8,0.0047224722135377,-2.3047940802877143e-5,3.6080226653327896e-8,0.004722782394577666,-2.3288951948910685e-5,3.6645758612571877e-8,0.004723132980101565,-2.3465103100195668e-5,3.7057739558551584e-8,0.004723499026608934,-2.3566743782828097e-5,3.729363200615465e-8,0.004723853726366984,-2.3594919509001365e-5,3.7356145869933e-8,0.004724171226410891,-2.356158846622636e-5,3.727375668144662e-8,0.00472442964344223,-2.3489522051841577e-5,3.710048713221879e-8,0.004724614776565834,-2.3411574874169688e-5,3.691415587823861e-8,0.004724724794459883,-2.3368277341243487e-5,3.6810591870453345e-8,0.0047247752100325596,-2.340213360934399e-5,3.6890033197833116e-8,0.004724801818033701,-2.354741153860014e-5,3.723294414462482e-8,0.00472485768521177,-2.3816423663497148e-5,3.786770260091306e-8,0.004725000635390749,-2.418751526032683e-5,3.8742466858000376e-8,0.004725272431033011,-2.4603620051597823e-5,3.972202334985268e-8,0.0047256788219663705,-2.4987702204493527e-5,4.062439541897351e-8,0.004726183285667441,-2.5270759185625143e-5,4.128696584233639e-8,0.004726720126803429,-2.541754230471784e-5,4.162712542300643e-8,0.004727219448344189,-2.5435941739691993e-5,4.166429361538732e-8,0.004727629770664268,-2.536784151980682e-5,4.149811650246318e-8,0.00472792886355938,-2.5270329894455154e-5,4.126387077300937e-8,0.00472812265068321,-2.5197835046972124e-5,4.109015364379114e-8,0.0047282373150355555,-2.5190669974525258e-5,4.1071880240448236e-8,0.004728309665470908,-2.5270343003186838e-5,4.125937504726307e-8,0.004728378624615121,-2.543968430350618e-5,4.165883422548709e-8,0.004728478767596398,-2.5685707126707573e-5,4.223916565564198e-8,0.004728635885651726,-2.5983880913205705e-5,4.294209090323031e-8,0.004728864409439411,-2.6303109090072288e-5,4.369389967187808e-8,0.00472916659618418,-2.6610845597161917e-5,4.44175634064523e-8,0.004729533321857145,-2.687781278328495e-5,4.5043926732075706e-8,0.00472994622235607,-2.708187235910797e-5,4.55208730022123e-8,0.004730380793270376,-2.721067737099242e-5,4.5819553184842186e-8,0.004730809906752847,-2.7262961196945158e-5,4.593735403726144e-8,0.004731207297948036,-2.724866569169805e-5,4.589813042879811e-8,0.004731550882303068,-2.7188193463415645e-5,4.5750407942570875e-8,0.004731825972564864,-2.7110878798737e-5,4.5563763450471336e-8,0.004732028530653421,-2.7052515132200603e-5,4.54229491228676e-8,0.004732168446389242,-2.7051350258781955e-5,4.541834024160813e-8,0.004732272116670077,-2.714157631827611e-5,4.563044734216501e-8,0.004732382358303023,-2.734381236381859e-5,4.610740117539504e-8,0.004732552676207028,-2.765400554259749e-5,4.6838853150868065e-8,0.004732833512182073,-2.803550331529912e-5,4.773748847006038e-8,0.004733252285295634,-2.842190019560124e-5,4.864598097253564e-8,0.004733796293531172,-2.8735835655547945e-5,4.9381511830951945e-8,0.004734411109839088,-2.891853713979851e-5,4.980557132802008e-8,0.004735019503554785,-2.895397730306729e-5,4.9880998252676156e-8,0.004735551138537044,-2.887270533546891e-5,4.9680920882470014e-8,0.00473596575267552,-2.873482839748109e-5,4.9348284107208375e-8,0.004736259519104328,-2.8605104853960317e-5,4.903667122874668e-8,0.004736457060975534,-2.8533821667809858e-5,4.886493863585071e-8,0.0047365979415711565,-2.85485921602435e-5,4.88979128990018e-8,0.004736724583238949,-2.8654807118183317e-5,4.914769787656253e-8,0.0047368742116397,-2.8840382877356432e-5,4.958511728727826e-8,0.004737074552126241,-2.9081541619000465e-5,5.015347478913712e-8,0.004737342012367782,-2.934812648323624e-5,5.078111482310837e-8,0.004737681309886265,-2.960821833601568e-5,5.139231870366264e-8,0.004738086098954303,-2.9832193363411564e-5,5.191692419486976e-8,0.004738540469209245,-2.9996259595434974e-5,5.229874245767923e-8,0.0047390212881655396,-3.0085394338945098e-5,5.2502529913061444e-8,0.004739501377336211,-3.0095423581682325e-5,5.251886124976056e-8,0.004739953305782397,-3.0033870472254683e-5,5.236603682676017e-8,0.004740353348319325,-2.9919407976351642e-5,5.208868447062693e-8,0.004740685200385828,-2.9779991128983356e-5,5.175327771239827e-8,0.004740943182403257,-2.9649741613378564e-5,5.1440738209547884e-8,0.004741134674185391,-2.9564621576085497e-5,5.1236171222247815e-8,0.004741281429687509,-2.955689735080932e-5,5.121571324845782e-8,0.004741419089674041,-2.9648317114137292e-5,5.1430346955513816e-8,0.004741593583568248,-2.984236535396184e-5,5.18876132323745e-8,0.0047418528064249385,-3.0117417530783683e-5,5.2535574522677666e-8,0.004742232999460031,-3.0424697664623252e-5,5.325821214909581e-8,0.004742742611363063,-3.069609207813721e-5,5.3894094209571386e-8,0.004743351393757184,-3.086414788615748e-5,5.4283751424790724e-8,0.004743994368040548,-3.088836563852584e-5,5.433186801908802e-8,0.004744593460110826,-3.0773559410401626e-5,5.4050676811265004e-8,0.004745086788273111,-3.0567784478253706e-5,5.3554919237006306e-8,0.004745448989905369,-3.034083898991905e-5,5.301067418598428e-8,0.0047456930853903715,-3.015732469647893e-5,5.257126350003612e-8,0.004745857698513026,-3.00585998089884e-5,5.233439298931279e-8,0.004745990240669041,-3.0058200221043662e-5,5.233146185427817e-8,0.004746133999600095,-3.01466801907586e-5,5.2539325380684306e-8,0.004746321325199566,-3.0299826522431672e-5,5.289999214373297e-8,0.004746571565708012,-3.048628868783824e-5,5.333878061980279e-8,0.004746891547053987,-3.067323831866283e-5,5.377769034777425e-8,0.004747276976592629,-3.083031101807034e-5,5.414468688672485e-8,0.0047477141402886116,-3.09325591886319E-05,5.4380693556431183e-8,0.004748181886555148,-3.096289364885244e-5,5.444541244979396e-8,0.004748654088097438,-3.09141513535335e-5,5.432224087989675e-8,0.004749102826477359,-3.079058892868887e-5,5.4021765189798875e-8,0.0047495023578297945,-3.060826542501298e-5,5.358256772490767e-8,0.004749833466407175,-3.0393770407297746e-5,5.306810148158317e-8,0.0047500874842839194,-3.018108231591561e-5,5.2559163277776153e-8,0.004750269208928283,-3.000667785776047e-5,5.214226026089898e-8,0.004750398005292498,-2.990333609399654e-5,5.1894905169507964e-8,0.004750506508683392,-2.9893424852776115e-5,5.186969825178604e-8,0.004750636541043871,-2.9982645840082855e-5,5.2079533030619567e-8,0.0047508320083346,-3.0155421919572188e-5,5.248676449937229e-8,0.004751128908639331,-3.037369192805859e-5,5.300052553271625e-8,0.0047515437134295745,-3.058146946640733e-5,5.348771766126394e-8,0.004752063484848125,-3.071700733657849e-5,5.380196084787112e-8,0.0047526432287152715,-3.073156493559227e-5,5.382809002665862e-8,0.004753215530274019,-3.060859876345908e-5,5.352758456900073e-8,0.004753711939495655,-3.0373149193153703e-5,5.2960713748294996e-8,0.004754087100048578,-3.0083973403278307e-5,5.226769683183297e-8,0.00475433293603724,-2.98112136590755e-5,5.1615475629158006e-8,0.004754476264544549,-2.9611822552670604e-5,5.113920082596975e-8,0.004754563953700199,-2.9514823359041654e-5,5.0907249040929476e-8,0.0047546455613278705,-2.9520016886330627e-5,5.0918372072733805e-8,0.004754761071596459,-2.9605722627759065e-5,5.112036823852704e-8,0.004754935662167024,-2.9739033755819657e-5,5.143462572713782e-8,0.0047551796096890735,-2.988434036747737e-5,5.1776389895648226e-8,0.004755490589258526,-3.0008869624587908e-5,5.206783588245407e-8,0.004755856442393838,-3.008584029224015e-5,5.224546763974042e-8,0.004756257668350731,-3.0096339668500227e-5,5.2264540791731686e-8,0.004756669706745484,-3.0030731792701057e-5,5.210242554479061e-8,0.004757065414585785,-2.9889908539192638e-5,5.176159886049536e-8,0.004757418195542284,-2.968619040159789e-5,5.1271759843174285e-8,0.00475770601363651,-2.9443203318333868e-5,5.0689459342253564e-8,0.004757915965546911,-2.9193873541743718e-5,5.009323271378707e-8,0.004758048438176281,-2.8975983699953833e-5,4.957295059706262e-8,0.0047581194741599594,-2.882542250153593e-5,4.921372935448555e-8,0.004758160019778779,-2.876818870394926e-5,4.9076934374705044e-8,0.004758211358591651,-2.8813062505827567e-5,4.9182827912228046e-8,0.004758317093348088,-2.894711954955259e-5,4.950002836532726e-8,0.004758513086696229,-2.913579719092093e-5,4.994582695633771e-8,0.004758817511140333,-2.932837760191171e-5,5.03993731608605e-8,0.004759223605850981,-2.9468701036464705e-5,5.072723219425754e-8,0.004759697867909933,-2.9509504216527897e-5,5.0817464553032814e-8,0.004760185864983653,-2.942696235017769e-5,5.061410130962157e-8,0.0047606259543624555,-2.9230317643366145e-5,5.0139889000795495e-8,0.004760967607467908,-2.896139174117637e-5,4.9494965504536796e-8,0.004761187350905263,-2.8682116608214554e-5,4.882704196243258e-8,0.004761294966547717,-2.8454389880011927e-5,4.828336259201367e-8,0.004761327275387122,-2.8321230768383856e-5,4.796585845162461e-8,0.004761333553681048,-2.829714704173953e-5,4.790836114893017e-8,0.0047613601652829966,-2.8369688621673795e-5,4.808053312846534e-8,0.004761440321646852,-2.8508399895063426e-5,4.8409387338905586e-8,0.004761590551451071,-2.8675522491192136e-5,4.880485640357133e-8,0.004761812082991868,-2.883449707617644e-5,4.917998782520274e-8,0.004762094385548418,-2.8955069947828657e-5,4.946298307321452e-8,0.004762418882065095,-2.9015693696433737e-5,4.960280392062293e-8,0.0047627620311700624,-2.9004461174501594e-5,4.95713500331758e-8,0.004763097828331392,-2.8919547543918302e-5,4.936452599578333e-8,0.004763400221147088,-2.8769621484632385e-5,4.90032528762637e-8,0.004763646058855578,-2.8574085268911304e-5,4.8534040160042696e-8,0.004763818946533213,-2.8362398774863e-5,4.802731915464349e-8,0.004763913739565946,-2.8171404920085826e-5,4.757097276326134e-8,0.004763940543520972,-2.8039773963918373e-5,4.725700354486537e-8,0.004763926283878361,-2.7999613583819032e-5,4.7161505527736824e-8,0.004763911790083301,-2.806694015820014e-5,4.732201788368541e-8,0.004763943561668426,-2.8234348316907707e-5,4.772020956502153e-8,0.004764061768513518,-2.846950262937871e-5,4.827848357257109e-8,0.004764288248044224,-2.8721294087771193e-5,4.8874818169044365e-8,0.004764618840848933,-2.893247019251986e-5,4.93729414401414e-8,0.004765022978940383,-2.905493603698263e-5,4.965875709174304e-8,0.004765450868508584,-2.9062967578863874e-5,4.967170122917772e-8,0.004765846191254104,-2.8960399760946087e-5,4.942169071629253e-8,0.00476616076776282,-2.8779715550303997e-5,4.8986766544630736e-8,0.004766367084636814,-2.8573141543301774e-5,4.849172329484978e-8,0.004766464911858467,-2.839814847115955e-5,4.807347695622499e-8,0.00476647980983421,-2.8301831799976193e-5,4.784386143983262e-8,0.004766454199070231,-2.830937480805551e-5,4.7862255367856655e-8,0.004766434603844106,-2.8420157629011527e-5,4.8126495550133353e-8,0.004766459867818386,-2.861169104607286e-5,4.8582435764613466e-8,0.004766553900979995,-2.8848469249434867e-5,4.9145161379864336e-8,0.004766723895020026,-2.9091731049801776e-5,4.9722271610959204e-8,0.004766962652236033,-2.9307102792118214e-5,5.023203099217928e-8,0.004767252783211253,-2.946903329270971e-5,5.061383669831442e-8,0.004767570966247876,-2.956252059197733e-5,5.083224211036534e-8,0.00476789143265435,-2.9583263200849124e-5,5.0877272768619633e-8,0.004768188657904238,-2.9537233992896767e-5,5.076341708753041e-8,0.004768439713838026,-2.9440208044921784e-5,5.0528530531352904e-8,0.004768626910754468,-2.9317193423369705e-5,5.0232483468787865e-8,0.004768741178477299,-2.9201099070795987e-5,4.9953931538163455e-8,0.004768786027644776,-2.9129513499080413e-5,4.978252629146496e-8,0.004768780936853772,-2.9138496012208616e-5,4.980400285879896e-8,0.0047687618966803106,-2.9253256552848995e-5,5.007792821246455e-8,0.004768776430770757,-2.94777909524039e-5,5.0613091054872876e-8,0.004768871988096792,-2.9788111750287958e-5,5.13515752527904e-8,0.004769080444607102,-3.013432954967566e-5,5.2173957718739495e-8,0.004769405284770623,-3.0453486715106665e-5,5.293006343952431e-8,0.004769818220406904,-3.0688999004594416e-5,5.3485350267577706e-8,0.00477026743433048,-3.080834002271513e-5,5.376298803352503e-8,0.004770693577738604,-3.081168201237658e-5,5.3764285152528835e-8,0.004771046589895863,-3.072935915638893e-5,5.3562407814568835e-8,0.004771297631526678,-3.0610999818195513e-5,5.3276237909610404e-8,0.004771443711692161,-3.051122681918304e-5,5.303613422492912e-8,0.004771505396973143,-3.047631542556714e-5,5.295212013490912e-8,0.004771519499267242,-3.0534710642808274e-5,5.3091406911566415e-8,0.004771529205577235,-3.0692816320908944e-5,5.346855026149306e-8,0.00477157418650815,-3.0936189653487376e-5,5.404847750248202e-8,0.004771682921045021,-3.123511651048176e-5,5.4759893534474465e-8,0.004771868687189363,-3.1552574400663744e-5,5.551430977654335e-8,0.004772129449714966,-3.1852223337845775e-5,5.622508871487745e-8,0.004772450721118148,-3.210457768014518e-5,5.682212037646142e-8,0.0047728099065585915,-3.2290564110685556e-5,5.726024480323222e-8,0.004773180754965365,-3.240266257319448e-5,5.752190311025016e-8,0.004773537085899212,-3.244442374528547e-5,5.761592957241243e-8,0.004773855633711976,-3.242925814099788e-5,5.757463774878549e-8,0.004774118342142201,-3.237905496994603e-5,5.7450525834272396e-8,0.004774314614586185,-3.23226647010406e-5,5.731264700502641e-8,0.004774443914942631,-3.2293765111534964e-5,5.724146147285952e-8,0.004774518652136438,-3.232717786829844e-5,5.731994509929363e-8,0.0047745663374796085,-3.245259117379958e-5,5.761852250142311e-8,0.004774628801644312,-3.268548015279706e-5,5.817341730913397e-8,0.004774755642402249,-3.301726301171104e-5,5.896332753649877e-8,0.004774990554962329,-3.340982109567715e-5,5.989660608993938e-8,0.004775353818295921,-3.3800784181514464e-5,6.082409330155231e-8,0.004775829687604098,-3.412186477507274e-5,6.158296115132251e-8,0.004776367868533359,-3.4323594773016025e-5,6.205572173406188e-8,0.004776900497853547,-3.439347655809735e-5,6.22134491263007e-8,0.004777365818310518,-3.435798439395554e-5,6.21203712505869e-8,0.004777726423271264,-3.426947678704886e-5,6.190234646575702e-8,0.004777975587727213,-3.418704078505039e-5,6.170085067616404e-8,0.004778133031878161,-3.416016772550692e-5,6.163388088984261e-8,0.004778235183303571,-3.42193194337018e-5,6.177353927618648e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json new file mode 100644 index 00000000..2cb27659 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":27000,"numberOfSamples":426,"samples":[0.004778324486778677,-3.437325503603603e-5,6.213990841775234e-8,0.0047784403655323285,-3.4611193149972956e-5,6.270647293317436e-8,0.004778612794687001,-3.490776213298559e-5,6.34120907874662e-8,0.004778858592736182,-3.52292773450405e-5,6.41760174740733e-8,0.004779180332297561,-3.554033000747647e-5,6.491361305699471e-8,0.0047795676373042825,-3.580972313910667e-5,6.555048782196374e-8,0.004780000304382801,-3.601491695515349e-5,6.603309632804475e-8,0.00478045244087296,-3.61445559073166e-5,6.63347373647879e-8,0.004780896788498023,-3.619907152539314e-5,6.64569282050896e-8,0.004781308537182374,-3.6189716300693844e-5,6.642701476463283e-8,0.004781668287402928,-3.613665338138569e-5,6.62935418736394e-8,0.004781964263597514,-3.606664631235279e-5,6.612070094818705e-8,0.004782194088007322,-3.6010502207012165e-5,6.598220199376154e-8,0.004782366358377176,-3.600003307813221e-5,6.595397202033107e-8,0.004782501973157172,-3.6063967015481664e-5,6.610431957871602e-8,0.004782634428155468,-3.622211612037997e-5,6.647996630880908e-8,0.004782807312744113,-3.647777437681964e-5,6.708796154697767e-8,0.004783066725500625,-3.681018070253991e-5,6.787788985789277e-8,0.004783447527929692,-3.717158351927006e-5,6.873512189479286e-8,0.004783956543699519,-3.749495769285591e-5,6.949941757309266e-8,0.004784561694818515,-3.7714824470447004e-5,7.001467512930746e-8,0.00478519734376055,-3.779386901530488e-5,7.019245393058328e-8,0.004785787298279908,-3.773988586048272e-5,7.005238005891471e-8,0.004786273540716633,-3.760159745695435e-5,6.971198893123057e-8,0.004786634261718939,-3.7446681679021194e-5,6.93338948131939e-8,0.004786883955125812,-3.7336538281738074e-5,6.90651418882107e-8,0.004787060855944783,-3.731025026111713e-5,6.89987545085644e-8,0.004787211498019626,-3.738052485901743e-5,6.916423518663561e-8,0.004787378723491085,-3.753768633517913e-5,6.953747098677388e-8,0.004787594743852002,-3.775688736390837e-5,7.005827277528313e-8,0.004787878341866488,-3.8005421267547694e-5,7.064797754466723e-8,0.004788234677867704,-3.824887091042978e-5,7.122411974828502e-8,0.004788656578890198,-3.845602832364749e-5,7.171211724931977e-8,0.004789126866304347,-3.8602762874008655e-5,7.205447458736902e-8,0.004789621527438917,-3.867476505188969e-5,7.221733392634786e-8,0.004790113453092092,-3.866900598852055e-5,7.219394452663505e-8,0.004790576389242894,-3.859380569021363e-5,7.200475975629059e-8,0.004790988658217021,-3.846749668906106e-5,7.169414035802423e-8,0.004791336185455692,-3.831592746623132e-5,7.132428928460062e-8,0.004791614602286293,-3.8169236193829984e-5,7.096748066882624e-8,0.004791830442019499,-3.8058199395276177E-05,7.069730505809583e-8,0.00479200147328233,-3.8010251494226334e-5,7.057912997799612e-8,0.00479215608282581,-3.8045112493544786e-5,7.065962097547686e-8,0.004792331243570715,-3.816988109148568e-5,7.095502401154791e-8,0.00479256801539422,-3.837391090721481e-5,7.143902873254914e-8,0.004792903356231363,-3.8625101009650084e-5,7.203412021826269e-8,0.00479335809982377,-3.887092912081732e-5,7.261428947824125e-8,0.004793923998139211,-3.904832069801235e-5,7.302876037880577e-8,0.004794557121329183,-3.910366330394545e-5,7.314982344552248e-8,0.004795186187943556,-3.901641098772414e-5,7.292918982979318e-8,0.004795737032643518,-3.881216157437762e-5,7.242916797983955e-8,0.004796161501972789,-3.855411099464743e-5,7.180203477009054e-8,0.004796453566145229,-3.831658356890081e-5,7.122636889591443e-8,0.004796644767523727,-3.815714860499036e-5,7.084000022037542e-8,0.004796785949434881,-3.8101951194646106e-5,7.070485098911682e-8,0.004796928139441377,-3.8146598603855446e-5,7.080934608157665e-8,0.004797110480654036,-3.8265789851055167e-5,7.109188904690533e-8,0.004797355877127002,-3.8424311612934556e-5,7.146748579270787e-8,0.004797671612426517,-3.8585616852327366e-5,7.184835086333892e-8,0.004798052093481322,-3.8717282547673696e-5,7.215687639979793e-8,0.004798481982683185,-3.879416904832568e-5,7.233306811500727e-8,0.0047989392109531745,-3.880032466659669e-5,7.233903786826962e-8,0.004799398014519919,-3.873014716490181e-5,7.216177815700216e-8,0.004799832156249859,-3.858883316916818e-5,7.181423253686315e-8,0.004800218353251468,-3.839193072968296e-5,7.133417138730679e-8,0.004800539728226463,-3.816370201797726e-5,7.07801739212383e-8,0.004800788798428815,-3.7934150450836535e-5,7.022440790334248e-8,0.004800969422381577,-3.773493298607536e-5,6.97427737273164e-8,0.004801097307136082,-3.7594608437565975e-5,6.940350057998089e-8,0.004801198860837516,-3.753375575082618e-5,6.925545753494772e-8,0.004801308307002621,-3.7560557353341817e-5,6.931760143740602e-8,0.004801463061629263,-3.766739513003747e-5,6.957089748412672e-8,0.0048016973159992595,-3.7829085241195104e-5,6.995424232825527e-8,0.004802033897188718,-3.800393663211438e-5,7.036721161540528e-8,0.004802475381486049,-3.8139426649914707e-5,7.068384881196978e-8,0.004802997237534293,-3.8183940325160886e-5,7.078086051437349e-8,0.0048035477616877155,-3.810365748834886e-5,7.057799420498539e-8,0.004804059432364746,-3.789890582121566e-5,7.007704800926735e-8,0.004804471058177286,-3.76100617891968e-5,6.93758159734603e-8,0.004804751226949466,-3.730566920695092e-5,6.863938578566553e-8,0.0048049094711126545,-3.705654492532993e-5,6.803781398940207e-8,0.004804988697932718,-3.691017647857788e-5,6.768458911635844e-8,0.004805045208603211,-3.687881976068849e-5,6.760819207952647e-8,0.004805128912216125,-3.6943695478478026e-5,6.776250536534154e-8,0.004805272128763522,-3.706800766501402e-5,6.805842303113509e-8,0.0048054875443432725,-3.72102043926267e-5,6.839587172762585e-8,0.004805771578807736,-3.733305531184578e-5,6.868556225257375e-8,0.004806109373196501,-3.740819210339049e-5,6.885971585954908e-8,0.004806479267214914,-3.741763766075652e-5,6.887556737614801e-8,0.00480685624919262,-3.7353970688048305e-5,6.871568343569287e-8,0.00480721474503835,-3.722005965565962e-5,6.838732853486281e-8,0.004807531254878627,-3.70285788369557e-5,6.792132402469517e-8,0.004807787168840347,-3.680107359176237e-5,6.736978068548045e-8,0.0048079717908961535,-3.656606685754552e-5,6.680147748275388e-8,0.004808085124176199,-3.635572067784862e-5,6.629375291303479e-8,0.0048081395655390005,-3.6201003683608846e-5,6.59208353445968e-8,0.004808159619935799,-3.61259119702826e-5,6.573995300854134e-8,0.004808179052187587,-3.614182096799145e-5,6.577781399967254e-8,0.0048082354644977225,-3.624339663861216e-5,6.602088125342372e-8,0.004808363016906486,-3.640739698014146e-5,6.641263422122376e-8,0.004808584568140996,-3.659514206004428e-5,6.685967165663355e-8,0.004808904762436531,-3.6758854267688404e-5,6.724710168628325e-8,0.00480930579650223,-3.685155258136531e-5,6.746239580653564e-8,0.0048097478566896616,-3.683927126708737e-5,6.742470100953433e-8,0.004810176029910032,-3.6712847565078014e-5,6.711298772615927e-8,0.0048105340254307105,-3.649482817530326e-5,6.658239512536003e-8,0.004810781727205723,-3.62365842449442e-5,6.595705126594526e-8,0.004810909644980501,-3.6003671889103674e-5,6.539470778083783e-8,0.004810942478516832,-3.5853999525254e-5,6.503419712779448e-8,0.004810929054258762,-3.581891665158464e-5,6.495006857326439e-8,0.0048109239580987374,-3.589619723046781e-5,6.513597488805307e-8,0.0048109704482596355,-3.605632765339819e-5,6.552011162684835e-8,0.004811091479469972,-3.625616637154878e-5,6.599830095926331e-8,0.0048112894999106535,-3.645235261818129e-5,6.646628961790225e-8,0.004811551496979631,-3.661003899809157e-5,6.684062633294758e-8,0.004811855326073649,-3.6706519877171644e-5,6.706718834733222e-8,0.004812175008010524,-3.673147922115121e-5,6.71216166824625e-8,0.00481248442724685,-3.668578285980148e-5,6.70063528600365e-8,0.004812759857408077,-3.6580011791983614e-5,6.67471364140862e-8,0.004812982021847438,-3.643312892218514e-5,6.638984182107787e-8,0.004813138260380984,-3.627105788419161e-5,6.599705939990736e-8,0.004813224984539436,-3.612453739463318e-5,6.56428706687843e-8,0.004813250027706149,-3.6025539008764395e-5,6.540413556464342e-8,0.004813233901618618,-3.600194055235022e-5,6.53476083256435e-8,0.004813208641342787,-3.6070981482546236e-5,6.55141956879046e-8,0.004813213185891162,-3.623309956685937e-5,6.590422431888505e-8,0.0048132853329533815,-3.6468577247922494e-5,6.646953796652841e-8,0.00481345196089862,-3.6739232782648675e-5,6.711775543238068e-8,0.004813720524850067,-3.699585543676539e-5,6.773031548224511e-8,0.004814074915372328,-3.718990777229592e-5,6.819070851646075e-8,0.004814477519636433,-3.7286327454266165e-5,6.841524919716474e-8,0.004814877412507499,-3.727371265226798e-5,6.837744468682739e-8,0.004815222824200392,-3.71687674239285e-5,6.811846623591315e-8,0.004815474776181273,-3.70132472069625e-5,6.773954080785747e-8,0.0048156180606356,-3.686348225678969e-5,6.737652512252384e-8,0.004815665783668138,-3.677486127562191e-5,6.716247159200004e-8,0.004815655222405848,-3.678604759224073e-5,6.718971555136587e-8,0.004815636005506843,-3.690868613654817e-5,6.74853269118757e-8,0.004815655154643246,-3.712641741469069e-5,6.800902880734398e-8,0.0048157448657402905,-3.740272786418989e-5,6.86723392503097e-8,0.004815916982414414,-3.769330697538445e-5,6.936842915828944e-8,0.004816164398472773,-3.79575991566434e-5,6.999989097850887e-8,0.004816466732888395,-3.8166161444911164e-5,7.049630552378684e-8,0.004816796998892661,-3.830332545250297e-5,7.082047667647441e-8,0.004817127128752034,-3.8366574426466915e-5,7.096680517792435e-8,0.004817431716377734,-3.8364425072400815e-5,7.095614538559232e-8,0.00481769031494261,-3.831406952629976e-5,7.0830151666776e-8,0.004817889007363463,-3.823930287395324e-5,7.064632660863894e-8,0.004818021924002364,-3.81685964240486e-5,7.047337979987863e-8,0.004818092995005395,-3.8132677946559405e-5,7.038533637487357e-8,0.004818117609598462,-3.8160829347254704e-5,7.045252292139183e-8,0.0048181231757472446,-3.8275439457385075e-5,7.072838433001155e-8,0.004818147032808319,-3.848524220234855e-5,7.123323584537503e-8,0.004818230263552585,-3.877913888410908e-5,7.193954194116859e-8,0.004818407376247594,-3.9123929426344404e-5,7.276667979907158e-8,0.004818694517905241,-3.946919365675648e-5,7.359290131063591e-8,0.004819081226702352,-3.975987623674142e-5,7.428575222689352e-8,0.004819530473516512,-3.99528372131395e-5,7.474192447320143e-8,0.004819988207444505,-4.003071053802827e-5,7.492052207630327e-8,0.0048203989246250615,-4.000728896884301e-5,7.485582965376748e-8,0.004820721175466344,-3.99227597487728e-5,7.464556945092878e-8,0.004820937782280773,-3.9831445677784674e-5,7.442110541926777e-8,0.004821058434419171,-3.978679151255124e-5,7.431111753324506e-8,0.004821115078288102,-3.982808284365596e-5,7.44096350669423e-8,0.0048211522270188,-3.9972043873461636e-5,7.475600152324611e-8,0.004821215190839854,-4.021085655268812e-5,7.533039650683856e-8,0.004821339447086454,-4.051642323333889e-5,7.606436621672032e-8,0.004821543793180569,-4.084903826994292e-5,7.686186217830935e-8,0.004821828560137223,-4.11675330397259e-5,7.762370019061549e-8,0.00482217843219588,-4.143791773110746e-5,7.826830249781045e-8,0.004822568060222116,-4.163862375087511e-5,7.874420409142698e-8,0.004822968276370532,-4.176204785493435e-5,7.903364411314588e-8,0.0048233512962861805,-4.1813332547424874e-5,7.914952587908982e-8,0.004823694268337095,-4.180773689787612e-5,7.912902718095061e-8,0.004823981341733217,-4.176770959006623e-5,7.902653839294732e-8,0.004824204843306262,-4.172022434438517e-5,7.890725119874452e-8,0.004824366170721857,-4.169434217802275e-5,7.884127164436675e-8,0.0048244767088938545,-4.1718500655906905e-5,7.889702962949885e-8,0.004824558542278362,-4.1816828861910714e-5,7.9132317175072e-8,0.004824644046356498,-4.2004005130913916e-5,7.958186192139638e-8,0.004824772810595939,-4.227902970506275e-5,8.02424031086156e-8,0.004824984330163837,-4.261986981161869e-5,8.105999852427741e-8,0.0048253063789773926,-4.2982701249766916e-5,8.192845535537351e-8,0.004825742302472369,-4.330968240475467e-5,8.2708249557431e-8,0.004826263889668254,-4.354578668059347e-5,8.326714000557609e-8,0.004826816164327769,-4.365883275531775e-5,8.352838122738419e-8,0.004827334389224904,-4.3652515189787744e-5,8.350199407923697e-8,0.0048277656748831246,-4.356505406150206e-5,8.328128245698638e-8,0.00482808475136242,-4.3454640222978786e-5,8.300742298950006e-8,0.0048282979694060126,-4.337986978855226e-5,8.282198985286413e-8,0.004828436715004647,-4.3383781338829196e-5,8.28283556019412e-8,0.004828545452468338,-4.3485739353153795e-5,8.307227830943268e-8,0.004828669442671055,-4.368097256269977e-5,8.354112596095182e-8,0.004828845131978453,-4.394543747541324e-5,8.417594361299053e-8,0.004829094332003,-4.42434357404026e-5,8.489003053203357e-8,0.004829422222056958,-4.453594609792681e-5,8.558908046994333e-8,0.004829818689134246,-4.4788154520325726e-5,8.618928271603903e-8,0.004830262162433468,-4.497503014521456e-5,8.663067376891177e-8,0.004830724791376845,-4.508429236527066e-5,8.688419593273334e-8,0.004831177763389958,-4.5116784857431304e-5,8.695250414418422e-8,0.0048315958105310045,-4.50848066644472e-5,8.686584714086303e-8,0.004831960372320328,-4.50092207251216e-5,8.667501419792826e-8,0.004832261385448886,-4.4916181410082026e-5,8.644339426785272e-8,0.004832498085672877,-4.4834021165063305e-5,8.623945104183476e-8,0.004832679280731162,-4.479034989518507e-5,8.612971656792317e-8,0.004832823322580668,-4.480906858922817e-5,8.61715560370843e-8,0.004832957631610085,-4.490685000713927e-5,8.640463908636807e-8,0.0048331170643941285,-4.508874878499018e-5,8.684036295819687e-8,0.004833339822081472,-4.5343323574385394e-5,8.745021561454051e-8,0.004833659599911437,-4.5639123415037367e-5,8.815754137046817e-8,0.004834094074838598,-4.592604139982e-5,8.884105976880853e-8,0.004834633097564738,-4.6145321609871045e-5,8.935914049205118e-8,0.004835233759482804,-4.624855257649796e-5,8.959560230484134e-8,0.004835829415303181,-4.621862951064732e-5,8.951018080070509e-8,0.004836352230776127,-4.6080232054244594e-5,8.916366565204528e-8,0.0048367583349983355,-4.589150422661235e-5,8.869757625100208e-8,0.004837041591904654,-4.572106996194247e-5,8.827831621545146e-8,0.004837230223456968,-4.562385027524527e-5,8.803847379686291e-8,0.004837371762779652,-4.562714338453696e-5,8.804318221037112e-8,0.004837516153686477,-4.572936473719342e-5,8.828738354028514e-8,0.004837703559825233,-4.590705729913291e-5,8.871321255880796e-8,0.00483795842100459,-4.6124666861455577e-5,8.923395641208231e-8,0.0048382884248457615,-4.634354743735913e-5,8.975592732878355e-8,0.004838686449812278,-4.652885932931713e-5,9.019505444720963e-8,0.004839134059291325,-4.6654302346770156e-5,9.048817401084265e-8,0.00483960577414928,-4.670490119196287e-5,9.059963781515475e-8,0.004840073592346507,-4.6677962776577816e-5,9.052354945919353e-8,0.004840511260350432,-4.6582397345525144e-5,9.028205993460479e-8,0.004840897899231785,-4.643670396318439e-5,8.992042145949509e-8,0.004841220660300779,-4.626596989787898e-5,8.949965282921296e-8,0.004841476202205037,-4.6098371678003375e-5,8.908802385796573e-8,0.004841671077489782,-4.596168029442229e-5,8.875259106524241e-8,0.004841821307091204,-4.587997080031785e-5,8.855125453694367e-8,0.004841951292609372,-4.587045888723051e-5,8.852512147964674e-8,0.004842091964053706,-4.5940344193465115e-5,8.869088863412212e-8,0.004842277739297711,-4.6083631809650075e-5,8.903322182845005e-8,0.004842541493972926,-4.627838807084122e-5,8.949828371537751e-8,0.004842906839177331,-4.648600438823033e-5,8.999219477976895e-8,0.004843378264295116,-4.665522221668618e-5,9.039097681872455e-8,0.004843932381435793,-4.6733606371812626e-5,9.056834871587784e-8,0.004844516593310677,-4.6686017948423326e-5,9.044026966797496e-8,0.004845061297440305,-4.651301745333522e-5,9.000924058638993e-8,0.004845504427784852,-4.6256995746914114e-5,8.93789350952813e-8,0.004845816313409309,-4.598827316210438e-5,8.872033893206934e-8,0.004846009719910427,-4.5777184591241536e-5,8.820391758061302e-8,0.004846129972474116,-4.566860671556084e-5,8.793778061329034e-8,0.0048462338316596935,-4.567181248329228e-5,8.794324136066889e-8,0.004846370227429732,-4.576600567215227e-5,8.816863162886767e-8,0.0048465699861102345,-4.591338738919411e-5,8.852141023091782e-8,0.004846844129874208,-4.6071908146491065e-5,8.889930925992923e-8,0.004847187112262369,-4.6204138643279386e-5,8.921179902089594e-8,0.004847581703514996,-4.6282067896565305e-5,8.939150694429025e-8,0.004848003735402131,-4.6289076937789076e-5,8.939877769506586e-8,0.004848426256645651,-4.6220321509909585e-5,8.922246700657916e-8,0.004848823209408606,-4.608209856359733e-5,8.887836627853265e-8,0.004849172664527739,-4.58903562975773e-5,8.840557932192903e-8,0.0048494595475039315,-4.5668426291373705e-5,8.786099087737668e-8,0.0048496777143903665,-4.544400174802944e-5,8.731188333905859e-8,0.004849831083297237,-4.524549703219852e-5,8.682706510070045e-8,0.0048499335706496585,-4.5098191704872816e-5,8.646751496052212e-8,0.004850007839811998,-4.502058698290767e-5,8.627758023189437e-8,0.004850082971399407,-4.502123491055191e-5,8.627733894012528e-8,0.00485019108473835,-4.509627653317102e-5,8.645669590689583e-8,0.004850362866722029,-4.522799803925022e-5,8.677198648497969e-8,0.004850621906510939,-4.5384910987798636e-5,8.71463393443206e-8,0.004850977946640694,-4.552441540774088e-5,8.747633199424684e-8,0.00485142013660625,-4.5599608404899196e-5,8.764862963748815e-8,0.0048519131380055204,-4.557121093968653e-5,8.756886324253519e-8,0.004852400538216197,-4.5422915883702246e-5,8.719862480298039e-8,0.004852819081156075,-4.517383633579113e-5,8.658536065820687e-8,0.004853121273694221,-4.4878623615075926e-5,8.586240756352643e-8,0.004853295526580276,-4.461012521329985e-5,8.52067471895604e-8,0.004853370910340709,-4.443133874108983e-5,8.477085726904584e-8,0.004853402989489355,-4.437253239360528e-5,8.462723494908248e-8,0.004853450340338429,-4.442557395851914e-5,8.475489986913897e-8,0.004853555566747505,-4.4554520782041413e-5,8.506551757055743e-8,0.004853737798332979,-4.471246662007726e-5,8.54446544743408e-8,0.00485399486389547,-4.485554721718429e-5,8.57858896141624e-8,0.004854309864890948,-4.495075979662197e-5,8.600964247263456e-8,0.00485465803028982,-4.497849770452831e-5,8.6069040778254e-8,0.00485501203358417,-4.493206747983682e-5,8.594850455856457e-8,0.00485534568228858,-4.481608527441229e-5,8.565974574854902e-8,0.004855636618776108,-4.464461889212684e-5,8.523726941055656e-8,0.004855868536584048,-4.4439150233652795e-5,8.473347207406128e-8,0.0048560330722339125,-4.422617519806977e-5,8.421282174134603e-8,0.004856131296365982,-4.4034205116743515e-5,8.374453608584602e-8,0.004856174444895931,-4.389004599187381e-5,8.339349699528367e-8,0.004856183359155293,-4.381463425405478e-5,8.321012126246628e-8,0.004856186304500604,-4.381908244061987e-5,8.322079181766202e-8,0.0048562152009108475,-4.3901681750652377e-5,8.342065742125228e-8,0.004856300584346492,-4.4046572784289005e-5,8.37705159905011e-8,0.004856465867596215,-4.422466583704176e-5,8.419918887759595e-8,0.004856721671702306,-4.439714167069116e-5,8.46121777512187e-8,0.004857061176355107,-4.452169624559631e-5,8.490696041970339e-8,0.004857457829840346,-4.456149265628484e-5,8.499476400738042e-8,0.00485786732258919,-4.4495941699599566e-5,8.482662558070934e-8,0.0048582357611451545,-4.433064375541632e-5,8.44172762033907e-8,0.004858514335168011,-4.4101716857274364e-5,8.385533918607352e-8,0.004858676764439197,-4.386931833014717e-5,8.32873433067394e-8,0.004858731337204977,-4.369916734671689e-5,8.287271910808891e-8,0.004858719353578516,-4.363884359422422e-5,8.272626402178683e-8,0.004858699079100403,-4.370113971203409e-5,8.287790899006382e-8,0.004858723862983524,-4.3863152455982114e-5,8.32708541147057e-8,0.004858826040038608,-4.4079389942548624e-5,8.379377681762571e-8,0.00485901243298159,-4.429951477497208e-5,8.432416681478761e-8,0.004859269289883763,-4.448198863401187e-5,8.476146671893096e-8,0.004859570954995191,-4.460045524794661e-5,8.504236029963514e-8,0.004859887795941977,-4.464428204949593e-5,8.514179476144743e-8,0.004860191622124641,-4.461614115330714e-5,8.506688634502332e-8,0.004860458789785439,-4.452889224023546e-5,8.48492775788132e-8,0.004860671945597038,-4.440278682495274e-5,8.453839235720549e-8,0.004860821241729715,-4.426305156165498e-5,8.419563819915824e-8,0.004860905419245433,-4.4137473414217795e-5,8.388856225560573e-8,0.004860932724572903,-4.405349915154474e-5,8.368376120026044e-8,0.004860921196088654,-4.403452027360999e-5,8.363778704610134e-8,0.004860897562807879,-4.4095524083173727e-5,8.378654746993848e-8,0.004860894101884112,-4.4238943389541296e-5,8.413526183041853e-8,0.0048609433408634845,-4.4451997534014956e-5,8.465211854456047e-8,0.004861071294856948,-4.470688491827875e-5,8.526891053304732e-8,0.004861290736213975,-4.4964675805282034e-5,8.589067031036176e-8,0.004861596402411748,-4.518269904195639e-5,8.641375721967553e-8,0.00486196380325942,-4.5324110154403064e-5,8.674916232953769e-8,0.0048623525742310615,-4.536760086172835e-5,8.684603658726279e-8,0.004862714420798966,-4.531482706925229e-5,8.670954354944289e-8,0.004863004623796651,-4.519303097661249e-5,8.640693812132527e-8,0.004863194723425296,-4.505076964306804e-5,8.605688184505726e-8,0.0048632825102846704,-4.494612337857568e-5,8.58005774809639e-8,0.004863294732214557,-4.492967036023607e-5,8.576036145889535e-8,0.004863279646140609,-4.50281209417457e-5,8.600009804265731e-8,0.004863291238192513,-4.5235972657266385e-5,8.650521261792416e-8,0.004863371875000471,-4.5519265521149334e-5,8.719217023603693e-8,0.004863541092600532,-4.5828989880735264e-5,8.794132978880563e-8,0.0048637941431590335,-4.611699389480268e-5,8.863570335939151e-8,0.004864108348633099,-4.6347665140982225e-5,8.918925654220265e-8,0.00486445241548828,-4.650270904600831e-5,8.95582979767788e-8,0.0048647945683711405,-4.658026758675538e-5,8.973908538631549e-8,0.004865107760312099,-4.659122884457311e-5,8.975868058567857e-8,0.004865372216069882,-4.655509521210519e-5,8.966485595145175e-8,0.004865576369720018,-4.649651590121914e-5,8.95177115085765e-8,0.004865717179949249,-4.644257685804242e-5,8.938315205316097e-8,0.004865800395588709,-4.642041241650156e-5,8.932709842864613e-8,0.004865840829426269,-4.6454505120622764e-5,8.940887781848442e-8,0.004865862139653059,-4.656317873149144e-5,8.967262906616372e-8,0.00486589520436499,-4.675433988431925e-5,9.013692766243163e-8,0.00486597415698355,-4.7021367342236717e-5,9.07848659725663e-8,0.004866129742279287,-4.7340909048838094e-5,9.15588685419079e-8,0.004866380968437412,-4.7674714425056845e-5,9.236536298478788e-8,0.004866727661902241,-4.797676853483728e-5,9.309231162293983e-8,0.004867147324684734,-4.8204752728047944e-5,9.363717379329655e-8,0.004867598631309231,-4.833237436364809e-5,9.393686151571851e-8,0.00486803127888161,-4.835807099496604e-5,9.398874966956663e-8,0.004868399226752945,-4.8306738611208255e-5,9.385460419655338e-8,0.0048686730911499205,-4.8223736532853264e-5,9.364566598366033e-8,0.004868847969216985,-4.816304071077976e-5,9.349354754634237e-8,0.0048689445715649204,-4.817300077705271e-5,9.351546946352385e-8,0.004869003383995121,-4.8283613222312364e-5,9.378341924616291e-8,0.004869073380924081,-4.849890638879081e-5,9.43059380023238e-8,0.0048691985524858695,-4.8796843985408144e-5,9.50282614209952e-8,0.004869406558763143,-4.9136789945777165e-5,9.585077822881535e-8,0.0048697031730176215,-4.947169627205198e-5,9.665881714263925e-8,0.004870073718317038,-4.9760441298475204e-5,9.735263346838005e-8,0.004870489786100687,-4.9976304469416066e-5,9.786787764373727e-8,0.004870917867218918,-5.010990840288102e-5,9.818254906626896e-8,0.004871326805083185,-5.016747905294032e-5,9.831256717497081e-8,0.004871692531052498,-5.016661596207553e-5,9.830134495028733e-8,0.004872000142688164,-5.0131652452055496e-5,9.820844897666668e-8,0.004872244237261572,-5.008976155652556e-5,9.810014547881626e-8,0.004872428488982316,-5.0068019068499616e-5,9.804229692860984e-8,0.004872565118915182,-5.0091037618228904e-5,9.809461966944169e-8,0.0048726744092658725,-5.017854275436142e-5,9.830475483883204e-8,0.004872783856378547,-5.034234927557437e-5,9.870086948139556e-8,0.00487292606572329,-5.058265619676878e-5,9.928265588588883e-8,0.0048731343054660824,-5.0884445663438285e-5,1.0001269113882292e-7,0.004873435129492483,-5.1215919899950034e-5,1.0081284930929764e-7,0.0048738390660209,-5.153170034332811e-5,1.015723136253397e-7,0.004874332805219763,-5.178266204412348e-5,1.0217165527867006e-7,0.004874877889632444,-5.1930947916088274e-5,1.0251939608479708e-7,0.004875419222669628,-5.196437324983978e-5,1.0258697726965176e-7,0.004875901546822159,-5.190279042143044e-5,1.0242405238386324e-7,0.004876286929160504,-5.179247995187442e-5,1.0214451691172397e-7,0.004876565554442809,-5.1691121210262656e-5,1.0188954108256096e-7,0.004876756238178176,-5.165032541885692e-5,1.0178476106510073e-7,0.004876898311797196,-5.170234825273362e-5,1.0190790776405611e-7,0.004877039291090606,-5.185415619525043e-5,1.0227463542533915e-7,0.004877222603926023,-5.20886997024062e-5,1.0284205932149231e-7,0.004877478233490123,-5.237148471881915e-5,1.0352515418660084e-7,0.004877817707882309,-5.2659998699574115e-5,1.0421992098956346e-7,0.004878233764547773,-5.291357147653802e-5,1.0482740644614637e-7,0.004878704103850562,-5.310151400306657e-5,1.0527339067231532e-7,0.0048791978095219886,-5.3207947753445196e-5,1.0551996632875121e-7,0.004879682486508378,-5.323275948828798e-5,1.055676880907866e-7,0.0048801303140343175,-5.318929968967715e-5,1.0544982140066945e-7,0.004880521970866183,-5.3100190207577814e-5,1.0522202640813102e-7,0.004880848294653186,-5.299267897057388e-5,1.0495098947741473e-7,0.0048811102117961675,-5.289457264711433e-5,1.0470451475918726e-7,0.004881317747189281,-5.2831136722353006e-5,1.045440020638691e-7,0.004881488756100408,-5.282274765893747e-5,1.0451875219165502e-7,0.004881647595748994,-5.2882791831743e-5,1.0466084584560046e-7,0.004881823499265498,-5.301535663747745e-5,1.0497951455693293e-7,0.004882047968987757,-5.321257874700818e-5,1.0545473459947656e-7,0.004882350207115018,-5.34522364381064e-5,1.0603152097503244e-7,0.004882749931583773,-5.3697319596594616e-5,1.0661911602920183e-7,0.004883248411975124,-5.390029444311228e-5,1.0710159048430002e-7,0.004883821223283848,-5.40142565780382e-5,1.0736509452548331e-7,0.004884418535029374,-5.400964585550486e-5,1.07338516263783e-7,0.004884977331862179,-5.388945231346987e-5,1.0703038492932809e-7,0.004885442982784979,-5.369291520334631e-5,1.0653767571805211e-7,0.0048857896031786405,-5.348285896525935e-5,1.060146273029446e-7,0.004886027899428079,-5.33225701704739e-5,1.0561598542362421e-7,0.004886197488183362,-5.3254761974328e-5,1.0544546399226637e-7,0.004886350220054461,-5.329186339414478e-5,1.0553216327134056e-7,0.00488653376420074,-5.341832436145469e-5,1.058366269418165e-7,0.004886780973520583,-5.3599972431194304e-5,1.0627419538425782e-7,0.004887105836022719,-5.379505921217329e-5,1.0674231474866518e-7,0.00488750437159898,-5.3963749688183614e-5,1.071437647657893e-7,0.004887958428542934,-5.4074868096297026e-5,1.074029666188478e-7,0.004888440866556042,-5.410987220354813e-5,1.0747544257958971e-7,0.004888921197063378,-5.406429862465683e-5,1.0735113586693954e-7,0.004889370931079509,-5.3946902121682926e-5,1.0705217492870693e-7,0.004889767913025726,-5.377692855867965e-5,1.0662613496775146e-7,0.004890099148351,-5.3580229669963764e-5,1.0613649899040003e-7,0.0048903619623596834,-5.3384985707783635e-5,1.0565218481282615e-7,0.004890563646224889,-5.321774155887791e-5,1.0523787065252472e-7,0.004890720050330306,-5.310023848256073e-5,1.0494629332969267e-7,0.00489085365033552,-5.304708763981897e-5,1.0481260896297154e-7,0.004890991351657461,-5.306401912048959e-5,1.0485014474108545e-7]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json new file mode 100644 index 00000000..9767b1b5 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":3000,"numberOfSamples":1000,"samples":[-0.0016674126654346861,-5.729007527752374e-7,-1.4186514962201376e-8,-0.0016673064653587321,-6.734015165127343e-7,-1.4270276706700349e-8,-0.0016671184978181936,-7.942288639572809e-7,-1.4371055120518062e-8,-0.0016668581653082658,-8.937549802808163e-7,-1.4454094104781238e-8,-0.0016665462863460693,-9.416288807763305e-7,-1.4494058993362982e-8,-0.0016662092022260732,-9.201664606449159e-7,-1.4476216298494372e-8,-0.0016658745541862263,-8.237755484396502e-7,-1.4395945891238539e-8,-0.0016655683268689287,-6.578186550518726e-7,-1.4257765362438796e-8,-0.0016653124526036561,-4.3741842925891825e-7,-1.4074304544820363e-8,-0.0016651224530400707,-1.8607276082775895e-7,-1.3865132894139859e-8,-0.0016650049642489826,6.643303169026634e-8,-1.3655018765663274e-8,-0.0016649554928538104,2.8739437967418395e-7,-1.347113935991257e-8,-0.0016649572160637774,4.4604795424859426e-7,-1.3339056817593825e-8,-0.0016649817855313575,5.194876808583452e-7,-1.3277813795917761e-8,-0.0016649928181043465,4.985157505581373e-7,-1.329507262967021e-8,-0.00166495207648607,3.9179414860133283e-7,-1.3383654246342673e-8,-0.0016648274069321705,2.26664827416035e-7,-1.352084347660865e-8,-0.001664600739494372,4.5708357821865315e-8,-1.367124421905444e-8,-0.001664274219706894,-1.0088239670451744e-7,-1.3793127784445051e-8,-0.0016638726869829803,-1.6616023108150796e-7,-1.3847473701249546e-8,-0.0016634410124484337,-1.1869904209770958e-7,-1.3808176255662588e-8,-0.0016630354517974334,4.659577780072841e-8,-1.3671009811639623e-8,-0.001662709627560605,3.030262655914423e-7,-1.3458136463059741e-8,-0.0016624982880314673,5.958730436677693e-7,-1.3214963229037875e-8,-0.001662404794976831,8.568537842964569e-7,-1.2998163907749735e-8,-0.0016623988702162175,1.0254972177202318e-6,-1.2857973826241794e-8,-0.0016624271346917532,1.0685455003698803e-6,-1.2822084766277138e-8,-0.0016624319248438782,9.883600460942418e-7,-1.2888614390257493e-8,-0.001662369242835807,8.174787260993229e-7,-1.3030565315055226e-8,-0.0016622183938909184,6.041843871353809e-7,-1.3207794337616674e-8,-0.0016619818565370786,3.9717316279278375e-7,-1.3379782718210806e-8,-0.0016616789185444716,2.3502260822879676e-7,-1.3514435597222689e-8,-0.0016613377123989804,1.417265131744283e-7,-1.3591822041815075e-8,-0.0016609886089808544,1.2662367606576446e-7,-1.360423147824086e-8,-0.0016606598282278315,1.863922842656112e-7,-1.3554490273298172e-8,-0.0016603748199426104,3.0744517886406376e-7,-1.3453938412913645e-8,-0.0016601505255394024,4.680421085231016e-7,-1.3320649411749458e-8,-0.0016599957713533597,6.402384067973255e-7,-1.3177803860265977e-8,-0.0016599094977454972,7.922656339357963e-7,-1.3051723165875262e-8,-0.0016598791098382528,8.920717595398815e-7,-1.296895475612751e-8,-0.0016598798337515695,9.124839151887528e-7,-1.2952012505708826e-8,-0.001659876379622952,8.376861160842476e-7,-1.3014014454721298e-8,-0.0016598280484381447,6.695105801256583e-7,-1.3153456420237919e-8,-0.0016596973256014155,4.309782162426044e-7,-1.3351256087288848e-8,-0.001659460185844518,1.644717783767708e-7,-1.3572258355341262e-8,-0.0016591147270322442,-7.656124715275952e-8,-1.3772130406953462e-8,-0.0016586845140589572,-2.408327142852044e-7,-1.3908356700286018e-8,-0.0016582146152118225,-2.934361433791715e-7,-1.3952042824758485e-8,-0.0016577609941446497,-2.2641155822799227e-7,-1.3896646268225657e-8,-0.0016573762399432718,-6.21980795145008e-8,-1.3760786009222337e-8,-0.0016570956693766155,1.5125835864904947e-7,-1.3584155440668849e-8,-0.0016569277304044742,3.526938844470182e-7,-1.3417439166449944e-8,-0.0016568517179810498,4.838995413033776e-7,-1.3308801583491872e-8,-0.0016568239567060939,5.055051370474298e-7,-1.329085416886814e-8,-0.0016567907846579653,4.069873023778711e-7,-1.3372361772156796e-8,-0.0016567038867919353,2.0748592272561992e-7,-1.3537525963856996e-8,-0.001656532487673912,-5.231661404744325e-8,-1.375267653077842e-8,-0.0016562685745488837,-3.2332365832738283e-7,-1.3977143471321514e-8,-0.0016559247754694372,-5.607837026808751e-7,-1.4173848477561865e-8,-0.0016555275418913935,-7.327632792039998e-7,-1.4316343411791168e-8,-0.0016551092006448183,-8.233258722118555e-7,-1.4391445802169112e-8,-0.0016547013993568505,-8.316848376668471e-7,-1.439852456672699e-8,-0.0016543308264849162,-7.693391900307951e-7,-1.4347111821174578e-8,-0.0016540168884855639,-6.568154472154755e-7,-1.4254194224863743e-8,-0.00165377050241833,-5.208100635030763e-7,-1.4141844859881727e-8,-0.001653593196269087,-3.917048152325665e-7,-1.4035172614624135e-8,-0.001653476129350162,-3.0088888763530243e-7,-1.3960118899539777e-8,-0.0016533992421155022,-2.7714172882948965e-7,-1.3940479436687606e-8,-0.0016533313967630901,-3.4151069511884616e-7,-1.3993675666328718e-8,-0.001653232946576946,-5.008677652271779e-7,-1.4125420729844042e-8,-0.001653062183142646,-7.418000865678651e-7,-1.4324648124704472e-8,-0.0016527858361718897,-1.0281008249946432e-6,-1.456142157572885e-8,-0.0016523911376223348,-1.305464686483764e-6,-1.4790826634502255e-8,-0.0016518942603108112,-1.5146795210217696e-6,-1.4963914427081036e-8,-0.001651339688429203,-1.609920243457309e-6,-1.5042853245080335e-8,-0.0016507887609035258,-1.5746267527137686e-6,-1.501402985970417e-8,-0.0016503014049699613,-1.4275884845194972e-6,-1.4893009020259092e-8,-0.0016499186673924447,-1.2167625516751627e-6,-1.4719368976416159e-8,-0.0016496525262988243,-1.0042695210536724e-6,-1.4544312694847968e-8,-0.0016494852722868205,-8.488903215522008e-7,-1.4416272286595473e-8,-0.0016493768933366411,-7.916520763817829e-7,-1.4369068693422452e-8,-0.0016492770441696662,-8.477319335831267e-7,-1.441525088113211e-8,-0.0016491379089976894,-1.005586142802875e-6,-1.454535921366001e-8,-0.0016489247906258263,-1.2324077723442385e-6,-1.4732398295614608e-8,-0.0016486222435663186,-1.483745124523919e-6,-1.4939753931208416e-8,-0.0016482349077829455,-1.714387062746813e-6,-1.5130169934377415e-8,-0.0016477837047942081,-1.8876251196414704e-6,-1.5273388453025773e-8,-0.0016472992687706423,-1.9809318567924716e-6,-1.53508288088995e-8,-0.0016468148667739665,-1.987610693939075e-6,-1.5356941194346824e-8,-0.0016463605427636564,-1.915263460295526e-6,-1.529794271457019e-8,-0.0016459592556230336,-1.7824940981911972e-6,-1.5189110139549575e-8,-0.0016456248820582223,-1.6151699815473968e-6,-1.5051713360546717e-8,-0.0016453614347904178,-1.4430148462818047e-6,-1.4910218742385646e-8,-0.0016451628120618224,-1.2966201405178637e-6,-1.4789829372760213e-8,-0.0016450127057533186,-1.2044728826030512e-6,-1.4714032583746818e-8,-0.0016448847709624051,-1.1893868953393184e-6,-1.4701653351213367e-8,-0.0016447437874436506,-1.2638103881750775e-6,-1.4762980827432679e-8,-0.0016445491773054968,-1.4241708565546202e-6,-1.48951005064794e-8,-0.0016442623193067107,-1.645902905672155e-6,-1.5077791633897704e-8,-0.0016438578535539828,-1.8825890625995552e-6,-1.5272828105373147e-8,-0.0016433361724119703,-2.073293524915233e-6,-1.5430051194420875e-8,-0.0016427306855190664,-2.1595591992381907e-6,-1.5501400836018825e-8,-0.0016421028587470339,-2.107131410238427e-6,-1.545878784662949e-8,-0.0016415236596336047,-1.921503495197351e-6,-1.5306805835881395e-8,-0.0016410491716874508,-1.6475995048951014e-6,-1.508237666232406e-8,-0.0016407026930217476,-1.3532595827599134e-6,-1.4841150585489634e-8,-0.0016404710798181709,-1.1058220927750292e-6,-1.4638324030823384e-8,-0.0016403140434198668,-9.529880693486804e-7,-1.4513000663883932e-8,-0.0016401794241349037,-9.138189075949228e-7,-1.4480834585139251e-8,-0.001640017698453548,-9.79444485492997e-7,-1.4534599598191043e-8,-0.0016397921504842823,-1.1199629554508742e-6,-1.46498259445195e-8,-0.001639483962540219,-1.2938873374757163e-6,-1.4792536911725107e-8,-0.0016390929025693608,-1.4576102121358978e-6,-1.492701055511908e-8,-0.0016386346780947172,-1.5734220969873702e-6,-1.5022352898574618e-8,-0.0016381360741017184,-1.615194314249089e-6,-1.50571474431728e-8,-0.0016376290513289884,-1.5712506992188948e-6,-1.502179647791281e-8,-0.0016371449438908516,-1.4444928408342774e-6,-1.4918620999811586e-8,-0.0016367096648583616,-1.25031555175269e-6,-1.4760165902237422e-8,-0.0016363404739891797,-1.0131188796195411e-6,-1.4566365366279228e-8,-0.0016360443826047542,-7.623240043753878e-7,-1.4361298196704363e-8,-0.0016358178081207191,-5.285826195157557e-7,-1.4170084868955413e-8,-0.0016356469788772767,-3.4036970890659786e-7,-1.4016082203265821e-8,-0.001635508814606122,-2.207663722595964e-7,-1.3918227118982464e-8,-0.0016353723164385856,-1.840892669518823e-7,-1.3888261221685396e-8,-0.0016352009622329746,-2.3204470491520787e-7,-1.3927578205263703e-8,-0.0016349571713373055,-3.4963943026521634e-7,-1.4023883873503605e-8,-0.0016346099310555375,-5.023932688054426e-7,-1.4148931817790818e-8,-0.0016341454885156152,-6.3792299560969e-7,-1.4259849140121573e-8,-0.0016335782650784292,-6.955174267981529e-7,-1.4307009536395608e-8,-0.0016329555381133835,-6.248455078933967e-7,-1.4249353069369657e-8,-0.001632348566823429,-4.0811994916454653e-7,-1.4072462495238987e-8,-0.0016318292392897165,-7.307325909948915e-8,-1.3799065103672127e-8,-0.0016314426223732346,3.1411804635436726e-7,-1.348317422928833e-8,-0.0016311911484804568,6.740899862647185e-7,-1.3189486706427881e-8,-0.0016310385568320672,9.431757478148973e-7,-1.2969887537649966e-8,-0.0016309281956906096,1.0909595365989285e-6,-1.284917620325891e-8,-0.0016308035869936743,1.1218851358131656e-6,-1.2823744428951683e-8,-0.001630622539391083,1.0659851233981184e-6,-1.286910999649688e-8,-0.0016303628898681499,9.662126791094569e-7,-1.2950244535657924e-8,-0.0016300220532569065,8.673019924964457e-7,-1.303067628890683e-8,-0.0016296132995635643,8.078877149326865e-7,-1.3078931636879651e-8,-0.001629160810966706,8.157006448712503e-7,-1.3072446478192921e-8,-0.0016286945140845575,9.051596921306019e-7,-1.2999506114425888e-8,-0.001628245126395128,1.0769022975441644e-6,-1.285960415768863e-8,-0.0016278397306271277,1.3189544201936767e-6,-1.266248230864526e-8,-0.001627498165347806,1.6092434451098838e-6,-1.2426094284497363e-8,-0.0016272305284777825,1.919140067868813e-6,-1.2173739988352222e-8,-0.0016270360259148394,2.2175661941671596e-6,-1.1930728972988056e-8,-0.0016269031154630333,2.475096567993343e-6,-1.1721030329836182e-8,-0.0016268106690123906,2.6677037698851066e-6,-1.1564201830643506e-8,-0.0016267299509751117,2.7800877693262435e-6,-1.1472661493037969e-8,-0.0016266273869119789,2.808609891480967e-6,-1.1449301618478332e-8,-0.0016264683188791577,2.7638226285538478e-6,-1.148545475645509e-8,-0.001626222281076474,2.6722456015579204e-6,-1.1559486532781036e-8,-0.0016258702666007566,2.576093825543154e-6,-1.1637054006801947e-8,-0.001625413368763386,2.528652681956703e-6,-1.1674892793466553e-8,-0.0016248800163113045,2.5829769218688514e-6,-1.163000825805575e-8,-0.0016243264182511817,2.7739410660516134e-6,-1.147422855629942e-8,-0.001623824448257784,3.0994362029174313e-6,-1.1209399713251122e-8,-0.0016234371005962335,3.5125193005639037e-6,-1.0873674286989874e-8,-0.0016231924460283597,3.934280626806754e-6,-1.0531046713794774e-8,-0.0016230722116879442,4.2839261521980505e-6,-1.0247004462157263e-8,-0.0016230223920017024,4.509022315061528e-6,-1.0064052989792204e-8,-0.001622977701628644,4.599308318664541e-6,-9.990503166746648e-9,-0.0016228844735368534,4.580979504172208e-6,-1.0005062897292258e-8,-0.0016227124043607017,4.500425340947215e-6,-1.007001881606373e-8,-0.0016224552660553113,4.4079367639713336E-06,-1.0144494972609784e-8,-0.001622125516269599,4.346659224530802e-6,-1.0193467505461069e-8,-0.001621747326018003,4.347159211571133e-6,-1.0192193851439426e-8,-0.001621350394160166,4.425844840376646e-6,-1.0127472727933714e-8,-0.0016209651093993971,4.585398795260131e-6,-9.99724721593909e-9,-0.001620618755614523,4.816205832030953e-6,-9.809405621898151e-9,-0.0016203324293711152,5.0984795936064065e-6,-9.580037457445881e-9,-0.0016201185778446112,5.4050620808012625e-6,-9.331168050521922e-9,-0.0016199792751218015,5.7049341968223675e-6,-9.087925536625024e-9,-0.0016199055449921847,5.967355112173079e-6,-8.875191668941198e-9,-0.0016198780222882233,6.166231880713312e-6,-8.714053321567563e-9,-0.0016198689897785872,6.284171358720325e-6,-8.618507598772804e-9,-0.0016198456428020592,6.315766071306402e-6,-8.59280112903386e-9,-0.001619774385405621,6.26973000154361e-6,-8.629727496350617e-9,-0.0016196259296935819,6.169525357590731e-6,-8.710169915500509e-9,-0.0016193810015156772,6.052090182629365e-6,-8.804188184311565e-9,-0.0016190363271137104,5.963922429773775e-6,-8.87422587160706e-9,-0.0016186098081281857,5.953407381087274e-6,-8.88131796854117e-9,-0.0016181424573248472,6.058817784323751e-6,-8.794748910421731e-9,-0.0016176935536342239,6.293589642068541e-6,-8.60386918296675e-9,-0.001617326219104022,6.634329004002173e-6,-8.327694536227654e-9,-0.0016170853930605306,7.020289243504353e-6,-8.015286175478002e-9,-0.0016169778930223832,7.370415677596483e-6,-7.732028934152944e-9,-0.0016169675000937544,7.6131522800298654E-06,-7.535643904942126e-9,-0.0016169901136538418,7.713155380487486e-6,-7.454642010804234e-9,-0.0016169800837689205,7.679978347262525e-6,-7.481256003272846e-9,-0.0016168922572558102,7.556948303108508e-6,-7.580374851378752e-9,-0.0016167104555515727,7.400752728903742e-6,-7.706059646917471e-9,-0.0016164437683271215,7.26360821746386e-6,-7.816027752541982e-9,-0.0016161173530747812,7.183346466944154e-6,-7.879724076888564e-9,-0.0016157633104902577,7.180632707092512e-6,-7.880570755501255e-9,-0.0016154140207041772,7.260286490250837e-6,-7.814851788477083e-9,-0.001615098001463881,7.414069548772224e-6,-7.689396067402687e-9,-0.001614837378113596,7.623584166153096e-6,-7.519187049980965e-9,-0.0016146461104334338,7.863038966555796e-6,-7.325110558075486e-9,-0.0016145285922477045,8.102151822196889e-6,-7.13161729702838e-9,-0.0016144786655525626,8.30954750461279e-6,-6.963995681741373e-9,-0.0016144794389958994,8.456851025280304e-6,-6.8450772368244266e-9,-0.0016145044863076245,8.523247037034214e-6,-6.791555454796449e-9,-0.0016145208238440725,8.499790759989043e-6,-6.810504300559879e-9,-0.0016144936330299336,8.392510891781708e-6,-6.896885929710203e-9,-0.001614392228170857,8.223343280763281e-6,-7.032834909617165e-9,-0.0016141963521061268,8.028183732838383e-6,-7.189288356946133e-9,-0.0016139016436967962,7.851860839942969e-6,-7.330101133146092e-9,-0.0016135231106711163,7.740313336524296e-6,-7.4183830864822594e-9,-0.0016130954016894184,7.730606125699386e-6,-7.424519615650904e-9,-0.0016126685428214326,7.840105042654435e-6,-7.334806831697677e-9,-0.0016122981087462733,8.057474208610399e-6,-7.1585873366644e-9,-0.0016120303080747725,8.339676729142519e-6,-6.930579850289531e-9,-0.001611885615787256,8.619402313112867e-6,-6.704899178695777e-9,-0.0016118481928508355,8.824139607217275e-6,-6.539785116730204e-9,-0.001611868604140801,8.90107812285037e-6,-6.477642765675682e-9,-0.001611881154272387,8.835912981377337e-6,-6.529915716142489e-9,-0.0016118277460059921,8.655388821984905e-6,-6.674986610903632e-9,-0.001611675919713035,8.41338736769802e-6,-6.869352972909047e-9,-0.0016114237381993468,8.169993921702883e-6,-7.06452679210035e-9,-0.001611093177231819,7.974354515474472e-6,-7.220908293079042e-9,-0.0016107187721478148,7.856385780125358e-6,-7.3144902295771e-9,-0.0016103373933631776,7.826230747315016e-6,-7.33726541883732e-9,-0.0016099815773490676,7.877830737849756e-6,-7.294288237410739e-9,-0.0016096761674665666,7.993507370107692e-6,-7.199928950656389e-9,-0.0016094369744081014,8.147984768505116e-6,-7.074608444117655e-9,-0.0016092702451640983,8.311598200694667e-6,-6.942216930039938e-9,-0.00160917228355665,8.453152537768642e-6,-6.827830668858108e-9,-0.001609129179254943,8.543077992903146e-6,-6.755189047281374e-9,-0.0016091171262881026,8.557333011262786e-6,-6.743558851885236e-9,-0.0016091041391435737,8.481979668330493e-6,-6.804049103358642e-9,-0.0016090539129368906,8.317618601666572e-6,-6.9360391917084e-9,-0.0016089320065604345,8.082194724983374e-6,-7.1249350615802805e-9,-0.0016087135318696238,7.810443188597418e-6,-7.342654995567478e-9,-0.0016083904469439763,7.548814847622212e-6,-7.551773316743061e-9,-0.0016079759933311404,7.346151109873746e-6,-7.71307892483668e-9,-0.0016075042761180575,7.242056143792723e-6,-7.794939036152872e-9,-0.00160702430711951,7.255973870729432e-6,-7.782022387653911e-9,-0.0016065893832426634,7.380066935880531e-6,-7.680904798184895e-9,-0.0016062439692449664,7.578337494266571e-6,-7.520654677956422e-9,-0.0016060111996290365,7.793284040925081e-6,-7.347429731587253e-9,-0.001605884722251656,7.959699219668078e-6,-7.2134347447406345e-9,-0.0016058284903456366,8.02276170190471e-6,-7.162490523129645e-9,-0.001605786300256652,7.954794950983538e-6,-7.216659725347376e-9,-0.0016056989183379042,7.763856680531235e-6,-7.3693711382787e-9,-0.0016055223349501092,7.489910937153623e-6,-7.5884774454684e-9,-0.0016052394922760655,7.190282869697641e-6,-7.827929734487749e-9,-0.0016048613732839356,6.9214213509586415e-6,-8.042440056461898e-9,-0.0016044191014809085,6.724717813606781e-6,-8.19887721405118e-9,-0.0016039523942876091,6.620315668122966e-6,-8.281210552001504e-9,-0.0016034994404368291,6.608103489245576e-6,-8.289661775609236e-9,-0.00160309058100955,6.672612775449543e-6,-8.236730302719379e-9,-0.0016027456251598608,6.788717605477168e-6,-8.142605180973005e-9,-0.0016024734564696638,6.92643298585074e-6,-8.031328805630021e-9,-0.001602272562723833,7.054461000471735e-6,-7.927975303945096e-9,-0.0016021316395473646,7.1429733909865235e-6,-7.85643420942448e-9,-0.001602030096147785,7.166416618010949e-6,-7.837159326460504e-9,-0.0016019389325304322,7.106967943498292e-6,-7.884384590805072e-9,-0.001601822909317285,6.958748005321464e-6,-8.002733282683978e-9,-0.001601645025670833,6.732028706082511e-6,-8.183846196126166e-9,-0.0016013737843991493,6.455595568760507e-6,-8.404514185145453e-9,-0.0016009923060795966,6.174736476004758e-6,-8.628343547216521e-9,-0.0016005063926833,5.943025935706647e-6,-8.81240660038963e-9,-0.001599947436018963,5.80863970378304e-6,-8.918249717289788e-9,-0.0015993671346443959,5.799343297164342e-6,-8.923895711975885e-9,-0.001598824450917896,5.912206177088279e-6,-8.831981049727163e-9,-0.0015983691261643967,6.112691262219383e-6,-8.670353040535608e-9,-0.001598027750726865,6.34370842368762e-6,-8.484735141405814e-9,-0.001597796970333321,6.541210365541908e-6,-8.32624668865039e-9,-0.0015976453400901444,6.6511270032490696e-6,-8.237927113772566e-9,-0.0015975225826418882,6.642865882163979e-6,-8.244027233433758e-9,-0.0015973733172837778,6.5160674645092064e-6,-8.344671256899067e-9,-0.0015971514460371861,6.299134854850162e-6,-8.517063826659138e-9,-0.0015968312197721644,6.040236787256278e-6,-8.722695998097968e-9,-0.0015964119337554,5.793741677183589e-6,-8.918192024461737e-9,-0.0015959153524303371,5.606512708157547e-6,-9.066246268690955e-9,-0.0015953776009036073,5.508240931702783e-6,-9.143302312759663e-9,-0.0015948390145066778,5.5079279870896205e-6,-9.142302190616902e-9,-0.0015943353730508711,5.595937570596819e-6,-9.07100224242127E-09,-0.0015938924112206762,5.749295724445448e-6,-8.947734194601513e-9,-0.0015935237022038366,5.937745603497693e-6,-8.796600268425784e-9,-0.0015932308952599915,6.128923308494835e-6,-8.643381449495809e-9,-0.0015930050349990598,6.292138592490837e-6,-8.512542405787741e-9,-0.0015928280496299403,6.401112560124816e-6,-8.425039499555748e-9,-0.001592674118163697,6.436402325511549e-6,-8.396358552439093e-9,-0.001592511242825915,6.388162226916735e-6,-8.434284847973138e-9,-0.0015923038548076277,6.259479463662382e-6,-8.536238644079333e-9,-0.0015920175360308354,6.069704190545227e-6,-8.686647143544019e-9,-0.0015916265581974022,5.855945053772369e-6,-8.855809836079169e-9,-0.0015911234432686942,5.66982094337028e-6,-9.002557749844637e-9,-0.0015905271902137126,5.566980643098267e-6,-9.082660120678599e-9,-0.0015898846649755427,5.5901058549402035e-6,-9.062364074658102e-9,-0.0015892607401442954,5.751420421663427e-6,-8.932240034166934e-9,-0.0015887185141690312,6.0241142294602755e-6,-8.713870498328418e-9,-0.0015882979764191441,6.3490168297115175e-6,-8.454426383873467e-9,-0.0015880035039804617,6.654182728757788e-6,-8.211064945180594e-9,-0.0015878052699886624,6.877775058584288e-6,-8.032786882775957e-9,-0.0015876517590710897,6.984489838970192e-6,-7.947450754328946e-9,-0.0015874863779336544,6.971221701182685e-6,-7.957325293941682e-9,-0.0015872619917445506,6.863185748489404e-6,-8.042215733171648e-9,-0.0015869502414554443,6.704200258300083e-6,-8.167230467721707e-9,-0.0015865450265327885,6.544861833301743e-6,-8.292209810873044e-9,-0.001586060881771174,6.431419708027262e-6,-8.380562643969391e-9,-0.0015855275390838218,6.397223103243651e-6,-8.4060105625722e-9,-0.001584982293378186,6.457920516330214e-6,-8.356321717507075e-9,-0.0015844620349776742,6.61081898948137e-6,-8.233749425801078e-9,-0.0015839966677754043,6.837813403661317e-6,-8.052680242552925e-9,-0.0015836049744388627,7.110512974486875e-6,-7.83558877254055e-9,-0.00158329313272495,7.39599782801762e-6,-7.60852007937778e-9,-0.0015830553572955281,7.661943418484884e-6,-7.397063210929995e-9,-0.0015828757453601038,7.88048537908479e-6,-7.223288825216026e-9,-0.0015827305073950087,8.030921094971425e-6,-7.103576255489422e-9,-0.0015825902239223386,8.10175707948008e-6,-7.046953362750228e-9,-0.0015824222470464458,8.09261347207407e-6,-7.0535751904136625e-9,-0.0015821938020142208,8.016239439311893e-6,-7.1131587433406575e-9,-0.001581876678930113,7.90023529461386e-6,-7.203688583790658e-9,-0.0015814541506088944,7.786937005316729e-6,-7.291589958387156e-9,-0.001580929437716428,7.72886735500687e-6,-7.33539011103742e-9,-0.001580332627237802,7.777305469592599e-6,-7.294769075619663e-9,-0.0015797203731629178,7.964409090283794e-6,-7.144630568893987e-9,-0.0015791630814620142,8.285391603077017e-6,-6.889058321940481e-9,-0.001578720878001717,8.692298812053108e-6,-6.566101724486824e-9,-0.001578419502984907,9.10747486170557e-6,-6.2370916464480965e-9,-0.0015782405062512823,9.452091527792786e-6,-5.9641611304561455e-9,-0.0015781312909732138,9.674079549613374e-6,-5.7882606428250385e-9,-0.001578027360075597,9.761402781761969e-6,-5.718703551331627e-9,-0.0015778737449317608,9.738155742011253e-6,-5.736256424581671e-9,-0.0015776373992268053,9.650582774239132e-6,-5.804222309092312e-9,-0.0015773098917586672,9.551555633876995e-6,-5.88077278945436e-9,-0.0015769037319662415,9.488450878456881e-6,-5.928572703455147e-9,-0.001576445875891479,9.49569390768316e-6,-5.920653078048749e-9,-0.001575970674530697,9.591327497139855e-6,-5.84304192231517e-9,-0.0015755133171369835,9.77658865659438e-6,-5.694997471322311e-9,-0.0015751042615903047,1.003778163139329e-5,-5.487458624638412e-9,-0.001574765041689377,1.0349895109118027e-5,-5.240176643150512e-9,-0.0015745057554236149,1.0681318357532525e-5,-4.978030419643896e-9,-0.001574324361526077,1.0998934195309128e-5,-4.727059345412328e-9,-0.0015742076584801335,1.1272847997949395e-5,-4.510760254880358e-9,-0.0015741334933916324,1.148015300643822e-5,-4.347106597166391e-9,-0.0015740736145208995,1.1607546540740536e-5,-4.2464524410951475e-9,-0.0015739967905234456,1.165297766004052e-5,-4.210215818202505e-9,-0.0015738721019847755,1.1626573124438477e-5,-4.230176567081147e-9,-0.0015736725816667494,1.1550994953670337e-5,-4.288272760115865e-9,-0.0015733796828682138,1.1460984868635478e-5,-4.357060355334619e-9,-0.0015729888863822469,1.1400977627530216e-5,-4.401668546947189e-9,-0.001572515654131937,1.1418948321355508e-5,-4.38465144129614e-9,-0.0015719991378984194,1.155499016771094e-5,-4.27489553861985e-9,-0.0015714991590845522,1.1825387317786e-5,-4.059992614526739e-9,-0.0015710820407434478,1.2207971645261938e-5,-3.757587705347629e-9,-0.00157079647604091,1.2639630181296142e-5,-3.4172617851035963e-9,-0.0015706506457699233,1.3034205729014649e-5,-3.106531606911105e-9,-0.0015706061696304065,1.3315507185698884e-5,-2.885049906609442e-9,-0.0015705947849098492,1.3446774868260129e-5,-2.7815199812259615e-9,-0.0015705471798354855,1.3439686701807493e-5,-2.7865797392088607e-9,-0.0015704165589056223,1.3341690442592115e-5,-2.8627232184856177e-9,-0.0015701872847721412,1.3213818456770147e-5,-2.9617956699222407e-9,-0.0015698706765883304,1.3111683729022345e-5,-3.0400379076245207e-9,-0.0015694951802119525,1.3074916344619818e-5,-3.0664473087197053e-9,-0.0015690965559719964,1.3124045477720016e-5,-3.02518922812497E-09,-0.0015687104237655423,1.3261776187223445e-5,-2.914483963298332e-9,-0.0015683672849147719,1.3476135614623932e-5,-2.744017121960997e-9,-0.001568089331561201,1.3744221248213585e-5,-2.531925583923272e-9,-0.001567888481635352,1.4036199389495978e-5,-2.301652902586154e-9,-0.0015677654444036897,1.431949385617295e-5,-2.0787019259425203e-9,-0.001567709854690696,1.4563082634763757e-5,-1.8873090716874538e-9,-0.0015677016010537767,1.474164561397543e-5,-1.7472081474154697e-9,-0.0015677133377832947,1.4839081201440235e-5,-1.6708576042155112e-9,-0.0015677139033290711,1.4850945784761677e-5,-1.6615071481920558e-9,-0.001567672273456403,1.4785614343760266e-5,-1.712298071717079e-9,-0.001567561728035762,1.4664077909571058e-5,-1.8064872373507266e-9,-0.001567363964362006,1.4518342278869283e-5,-1.9188087740274477e-9,-0.0015670730416101715,1.4388371092908044e-5,-2.017975036911366e-9,-0.001566699009351379,1.4317124795163991e-5,-2.0706086887569183e-9,-0.001566270342050259,1.434288706438812e-5,-2.0471994116831762e-9,-0.0015658331609196012,1.4488670512990482e-5,-1.9302484376469083e-9,-0.0015654445000836176,1.4750408147840926e-5,-1.72331580198987e-9,-0.0015651576376926135,1.5088818242514955e-5,-1.4572399696723894e-9,-0.0015650016611725502,1.543273520838367e-5,-1.1875289074112136e-9,-0.0015649646525930018,1.5699315031914638e-5,-9.786981777112633e-10,-0.0015649932080395524,1.5825615668091956e-5,-8.797288461446118e-10,-0.0015650127561441629,1.5794360168681763e-5,-9.039460652179229e-10,-0.0015649578766231919,1.5637909598140213e-5,-1.0258340424130335e-9,-0.0015647946888691952,1.5419919015121727e-5,-1.1953572908828253e-9,-0.001564525408102832,1.5208671664966406e-5,-1.3589165068917122e-9,-0.0015641786040441487,1.5056893076463547e-5,-1.4752664574075088e-9,-0.00156379486909857,1.4993534545273575e-5,-1.521981552315444e-9,-0.0015634150399108117,1.5024788854757072e-5,-1.4945831313107964e-9,-0.0015630731490801214,1.5139317110787819e-5,-1.4023153307767539e-9,-0.0015627932503844573,1.5314097884522007e-5,-1.2634546568637839e-9,-0.0015625884467632353,1.5519419283943223e-5,-1.1013546330723007e-9,-0.001562460875346721,1.5722949233932406e-5,-9.412785609553453e-10,-0.0015624021479970563,1.5893311969822037e-5,-8.076525173200512e-10,-0.0015623942663999986,1.600355815982286e-5,-7.213957276926135e-10,-0.0015624113087739449,1.603464562664121e-5,-6.972120092446669e-10,-0.0015624222244725121,1.5978599480086515e-5,-7.411073308205331e-10,-0.0015623947894483653,1.5840685366149302e-5,-8.486840929629714e-10,-0.0015623003825704094,1.563995164582476e-5,-1.0047498832725248e-9,-0.00156211896716867,1.5407677934949402e-5,-1.1846143530044873e-9,-0.0015618434715127026,1.5183522199556461e-5,-1.3572122413585078e-9,-0.001561482731818114,1.5009579708722523e-5,-1.4898312300154014e-9,-0.0015610623229379093,1.492287455651844e-5,-1.553978673492256e-9,-0.0015606225925568506,1.4946887881331915e-5,-1.5318866836714567e-9,-0.001560212971251659,1.5083203136375069e-5,-1.422837639342225e-9,-0.0015598818401117295,1.530556706953706e-5,-1.2475983890907835e-9,-0.0015596626235708532,1.5560011265301256e-5,-1.0482226412439358e-9,-0.001559559627593272,1.577486934926789e-5,-8.802955933378288e-10,-0.0015595405570984476,1.5881538273988095e-5,-7.9692043926817e-10,-0.0015595430360532403,1.5839771966023374e-5,-8.291538101517867e-10,-0.0015594959955338393,1.5654660779172335e-5,-9.72801001056983e-10,-0.0015593463001946208,1.5374391353418983e-5,-1.190114515735307e-9,-0.0015590762116928854,1.5069709060576866e-5,-1.4258030022227316e-9,-0.001558703847788798,1.4807611900845037e-5,-1.6276153266680996e-9,-0.0015582703547364113,1.4632787290015397e-5,-1.7608768873779355e-9,-0.00155782354477752,1.4561962806159921e-5,-1.812864234105201e-9,-0.0015574055106049006,1.4587994709651823e-5,-1.7895075593158592e-9,-0.0015570463687551211,1.4687835068240819e-5,-1.7090593224017948e-9,-0.0015567627265973315,1.4830172836249719e-5,-1.5960694700656643e-9,-0.0015565585721585488,1.4981143223910987e-5,-1.4769346528028385e-9,-0.0015564268779924705,1.5108248878273527e-5,-1.3768878228299211e-9,-0.001556351184307716,1.5183283689987646e-5,-1.3177718726983572e-9,-0.0015563071846080817,1.518499355836712e-5,-1.3159931882651027e-9,-0.001556264759061091,1.5101840586844419e-5,-1.3803631127402186e-9,-0.0015561910289953722,1.493467497760959e-5,-1.5099983155967233e-9,-0.001556054769142461,1.4698525876528096e-5,-1.692928407678446e-9,-0.0015558319325716652,1.4422419435365395e-5,-1.9062865699394374e-9,-0.00155551134062967,1.4146276673803998e-5,-2.118820791349384e-9,-0.0015550990200105716,1.3914554215767493e-5,-2.2959501362179986e-9,-0.0015546195256492723,1.376733680242155e-5,-2.406755127218841e-9,-0.001554113115567492,1.3730683214261952e-5,-2.4314473667369036e-9,-0.001553628664032215,1.3808584379673326e-5,-2.367474165297039e-9,-0.0015532132442453931,1.3978822784027847e-5,-2.232532482775318e-9,-0.0015529002123789554,1.4194626461009348e-5,-2.063117347756414e-9,-0.0015526985302697924,1.439325938164884e-5,-1.907804521574992e-9,-0.0015525869004329388,1.4511149461068737e-5,-1.8155962076796212e-9,-0.0015525163561113226,1.4502518791870292e-5,-1.821618126894051e-9,-0.0015524229966605255,1.4355340596169604e-5,-1.934861536785402e-9,-0.0015522480046320417,1.4097085782131253e-5,-2.1337720574238567e-9,-0.0015519570630758844,1.3785964147240603e-5,-2.373056019133126e-9,-0.0015515502090884452,1.3490805690072358e-5,-2.5993134735632945e-9,-0.0015510581583219735,1.3269136012428824e-5,-2.7680732374480753e-9,-0.0015505287216183647,1.3153018247135854e-5,-2.8547493909096727e-9,-0.0015500111337097319,1.3146302784594268e-5,-2.8566824400189927e-9,-0.0015495446374244918,1.3230505435768768e-5,-2.788469542937826e-9,-0.001549153320614908,1.3373991814169866e-5,-2.6747740927702085e-9,-0.0015488458317407083,1.3540368315253085e-5,-2.543818936185515e-9,-0.0015486175736199625,1.3694424215569561e-5,-2.422826603784886e-9,-0.0015484534953238353,1.3805782453544893e-5,-2.335244042665086e-9,-0.0015483305799586244,1.3851194736815257e-5,-2.2989915178837034e-9,-0.0015482199989999771,1.3816427644258473e-5,-2.3249912029369815e-9,-0.001548089463216438,1.369826171317471e-5,-2.41558809311908e-9,-0.0015479064843226234,1.3506495043573231e-5,-2.5629790637511724e-9,-0.0015476430650823826,1.3265142070830212e-5,-2.748308110889761e-9,-0.0015472817047777522,1.3011433188873347e-5,-2.9425170054115522e-9,-0.0015468215378123499,1.2791153939947237e-5,-3.1100615838046316e-9,-0.0015462823008519895,1.264978126784404e-5,-3.2158634430605283e-9,-0.0015457034820694632,1.2620793299373853e-5,-3.23437207800151e-9,-0.0015451371557708795,1.271461979911524e-5,-3.1580199349164043e-9,-0.0015446354809309358,1.2912598720449401e-5,-3.001718234269623e-9,-0.0015442364302565255,1.3169086681883902e-5,-2.801040276875315e-9,-0.0015439524938185769,1.342193894043896e-5,-2.604019123633512e-9,-0.0015437662068975597,1.3608488064402962e-5,-2.4588197532468753e-9,-0.0015436340713854192,1.3682357584886e-5,-2.4008622169249547e-9,-0.001543497962354699,1.3626252232787606e-5,-2.4430807619033354e-9,-0.00154330101649021,1.3456844397511336e-5,-2.572263294225788e-9,-0.0015430034083978895,1.3219882326718478e-5,-2.7529027871083723e-9,-0.0015425929181858147,1.2976711436722279e-5,-2.937645646025132e-9,-0.0015420866882192013,1.278670592403656e-5,-3.080856310691857e-9,-0.00154152398796979,1.2691851204048305e-5,-3.1504613502583297e-9,-0.001540953480044075,1.2708519035282108e-5,-3.1341863973903237e-9,-0.0015404202334010281,1.2827867903263539e-5,-3.039126457904035e-9,-0.0015399566733843208,1.302256759212801e-5,-2.886485245993735e-9,-0.0015395788942260255,1.325586308652444e-5,-2.7045866919813093e-9,-0.0015392872954454852,1.3489692472678766e-5,-2.5226746116671805e-9,-0.0015390695180788213,1.3690362719305401e-5,-2.3666060094382767e-9,-0.0015389039426561332,1.3831829101966165e-5,-2.2563601055744896e-9,-0.0015387628159656927,1.3897428531583792e-5,-2.20469239650718e-9,-0.0015386148936828994,1.388103058929039e-5,-2.2162086122068876e-9,-0.0015384280799308537,1.3788188762037226e-5,-2.28644706084773e-9,-0.0015381727896268602,1.3637252599749298e-5,-2.4010335015984904e-9,-0.00153782662638598,1.3459685165893791e-5,-2.5355047694054314e-9,-0.0015373803606947806,1.3298103454663454e-5,-2.6569224773298658e-9,-0.0015368439449366434,1.3200271754010526e-5,-2.7285944715443808e-9,-0.0015362497069414172,1.3208268582747388e-5,-2.7184455758695063e-9,-0.0015356491281297727,1.3344727868614513e-5,-2.609535624585385e-9,-0.0015351012857119798,1.3601376685119754e-5,-2.4087144532296773e-9,-0.001534655333305587,1.3936432395579682e-5,-2.1484399499017215e-9,-0.0015343338675460306,1.4284442308400234e-5,-1.8790986065537597e-9,-0.001534124900712501,1.4575769360907748e-5,-1.6540268609434805e-9,-0.001533986063403117,1.4757650849527079e-5,-1.5134089313619608e-9,-0.0015338585577077514,1.4808523097929115e-5,-1.4733758294952858e-9,-0.001533684646016743,1.4741520547899112e-5,-1.5234227094639102e-9,-0.001533422629589494,1.4597945041350879e-5,-1.6315309243635806e-9,-0.0015330556633583313,1.4434363097761433e-5,-1.7541719141681908e-9,-0.0015325932941699795,1.43077142414427e-5,-1.8477863331828831e-9,-0.0015320665277323265,1.426230754346835e-5,-1.878725396982042e-9,-0.0015315185461519663,1.4321473573738102e-5,-1.8295328556822685e-9,-0.001530993934766879,1.4485180350014558e-5,-1.7006180859558923e-9,-0.001530529287402824,1.4733246178698408e-5,-1.5076755247691595e-9,-0.0015301472235543963,1.5032273750256648e-5,-1.2763383865137975e-9,-0.001529854434526647,1.5343751423442615e-5,-1.0360201232972493e-9,-0.0015296430494533845,1.5631173065596047e-5,-8.145421075795626e-10,-0.0015294939224596445,1.5865044960165455e-5,-6.343581941131169e-10,-0.0015293804665335667,1.6025681201232713e-5,-5.104211518947967e-10,-0.0015292721800424954,1.6104406698012555e-5,-4.492264661427397e-10,-0.0015291376898846022,1.610398838942385e-5,-4.484456737093128e-10,-0.0015289476443276155,1.6038826092304203e-5,-4.967851368558057e-10,-0.0015286780300962212,1.5934920116292352e-5,-5.7407767303816e-10,-0.0015283144581671828,1.5828995706173513e-5,-6.520649957069123e-10,-0.001527857433495814,1.5765420962771622e-5,-6.968641554284709e-10,-0.0015273273599870595,1.578919190086431e-5,-6.74377333345776e-10,-0.001526766307082904,1.5934197950098757e-5,-5.592021348606761e-10,-0.0015262325434225242,1.6208917896855537e-5,-3.454009983392546e-10,-0.0015257856016340661,1.6585900155219326e-5,-5.434009904032178e-11,-0.001525465322369261,1.7003376453317625e-5,2.6667254099619e-10,-0.0015252747715500247,1.738282006332563e-5,5.577945753003107e-10,-0.0015251774516648478,1.765614484759572e-5,7.673293029466002e-10,-0.0015251111941016761,1.778888314628154e-5,8.693422948032573e-10,-0.0015250108675460873,1.7788373699605145e-5,8.698678813149482e-10,-0.0015248284104435656,1.769597096092772e-5,8.008933904221264e-10,-0.001524543138352943,1.7570342537972436e-5,7.074837082249667e-10,-0.001524161958697962,1.747014596631279e-5,6.344307222398109e-10,-0.00152371290844506,1.7441141511317046e-5,6.163780060845438e-10,-0.001523235851785127,1.7509215448337496e-5,6.72585413499027e-10,-0.0015227730669315363,1.7678694633934106e-5,8.058200670495614e-10,-0.0015223612736943114,1.7934688640477055e-5,1.0043203383510617e-9,-0.0015220259505717274,1.82482101335355e-5,1.2458005545171251e-9,-0.0015217783771147274,1.858278154644696e-5,1.502482588468059e-9,-0.0015216153779278,1.8901176203271382e-5,1.7461563926156706e-9,-0.001521521286606779,1.9171184850908933e-5,1.9524855806838318e-9,-0.0015214713531420381,1.936973086375099e-5,2.1040967574472464e-9,-0.0015214357043695024,1.9485117407839795e-5,2.1923000740043392e-9,-0.001521383137404215,1.9517692447771478e-5,2.217627952739704e-9,-0.0015212844821984616,1.9479511468266107e-5,2.1895835175049778e-9,-0.0015211156742934025,1.939342867657197e-5,2.1258913140746853e-9,-0.0015208608563400331,1.9291673965034527e-5,2.0512979780619082e-9,-0.001520515854495682,1.9213505125941906e-5,1.995657851135691e-9,-0.0015200919884612346,1.9200901897949216e-5,1.9905876211772794e-9,-0.0015196190517206686,1.9290978781291798e-5,2.0637415938522103e-9,-0.001519144803733725,1.9504713196396947e-5,2.2304122471037216e-9,-0.001518727462232059,1.9834280591372538e-5,2.484141135478913e-9,-0.0015184192950395239,2.0235367514319987e-5,2.7910634415758664e-9,-0.0015182452262433325,2.0633099952696904e-5,3.0944338572009063e-9,-0.0015181877354138221,2.094520859440517e-5,3.3320858875781925e-9,-0.0015181899043198905,2.1113683302729238e-5,3.4603240998125803e-9,-0.0015181776587180065,2.1127106051478163e-5,3.4708520228233463e-9,-0.0015180885131474918,2.1021030404410242e-5,3.391091106264991e-9,-0.0015178909438639508,2.0859213783789e-5,3.2698730446144373e-9,-0.0015175877233646422,2.0709171992738493e-5,3.1587082248994756e-9,-0.0015172073558787026,2.0623842481949752e-5,3.0977101310951086e-9,-0.0015167914191089214,2.063317965218757e-5,3.109204821067375e-9,-0.0015163832619076432,2.0743705953134367e-5,3.1975368071754336e-9,-0.0015160200669873704,2.0942485608743105e-5,3.3523023756736195e-9,-0.0015157281682930876,2.1202788343014117e-5,3.5528268410564887e-9,-0.0015155208240000008,2.1490072546112796e-5,3.7727761422749006e-9,-0.0015153978329193042,2.1767775800983042e-5,3.984512020996164e-9,-0.0015153466823297202,2.2002561279956053e-5,4.162975427671088e-9,-0.0015153449752000046,2.2168662578104594e-5,4.2888951154383054e-9,-0.0015153638372301824,2.225102728825126e-5,4.351136659371982e-9,-0.001515371889179471,2.2246993016359994e-5,4.3479874066622305e-9,-0.0015153392563930425,2.216641597337143e-5,4.287271959233951e-9,-0.001515241213541778,2.2030490914074532e-5,4.1854284582402095e-9,-0.0015150613338686283,2.1869574703626888e-5,4.065761994294679e-9,-0.0015147941551076818,2.1720147110229897e-5,3.956004055400928e-9,-0.0015144474064621842,2.1620798118500058e-5,3.885163322724043e-9,-0.0015140436280418352,2.160676344805545e-5,3.879380610579873e-9,-0.0015136202312386242,2.1702388771875214e-5,3.956357484574458e-9,-0.001513226034844196,2.191177437422689e-5,4.1185205826258535e-9,-0.0015129120080209172,2.221001677650227e-5,4.346649078495528e-9,-0.001512715541928629,2.254041791686142e-5,4.597890678761155e-9,-0.001512642323751254,2.282451516198137e-5,4.8132638236435735e-9,-0.001512656112032841,2.2987226657755368e-5,4.936448725917021e-9,-0.0015126871339836351,2.2987814401065566e-5,4.937036368579893e-9,-0.0015126589666124984,2.283832816494508e-5,4.824488181507253e-9,-0.0015125191642603442,2.2596939508072832e-5,4.643164810446097e-9,-0.001512255771697461,2.234135481963672e-5,4.452159952580022e-9,-0.0015118937115124553,2.2139907404171068e-5,4.303255975411923e-9,-0.00151147883232571,2.203443093930126e-5,4.227845582902372e-9,-0.001511060993239207,2.2037202305538674e-5,4.234671953457867e-9,-0.0015106824975225093,2.213657085421608e-5,4.314282868663287e-9,-0.0015103725536317254,2.2305348342064856e-5,4.4455958177446396e-9,-0.001510145935250769,2.2508543748264166e-5,4.601885979825811e-9,-0.0015100037941396729,2.27093975733727e-5,4.75536669510632e-9,-0.0015099353530227085,2.2873996336669858e-5,4.880600371514767e-9,-0.0015099200916151164,2.2974973370313923e-5,4.957188134048892e-9,-0.0015099304637137257,2.2994496007904244e-5,4.971952359005194e-9,-0.0015099352286913673,2.2926461766264454e-5,4.920579998432417e-9,-0.0015099033645110472,2.277759522000927e-5,4.808472749402745e-9,-0.0015098082535331882,2.256704567886276e-5,4.650450638927179e-9,-0.0015096316019525189,2.2324318804894625e-5,4.469136915658275e-9,-0.0015093665766133704,2.208567924099814e-5,4.2921241199986e-9,-0.0015090197629728298,2.1889299652124044e-5,4.148176635499323e-9,-0.0015086116448405531,2.1769507934527783e-5,4.062815296740895e-9,-0.0015081753500045245,2.1750466832938717e-5,4.05360291565382e-9,-0.0015077531763032308,2.183960388547096e-5,4.125383508132904e-9,-0.0015073900399322092,2.202167990402843e-5,4.2660809956394935e-9,-0.0015071232263286609,2.225573764208077e-5,4.44462415416496e-9,-0.0015069693776782423,2.2478572667533146e-5,4.6136193435732875e-9,-0.0015069127900212765,2.261830809440704e-5,4.719430802140069e-9,-0.0015069025568193628,2.2617773461514468e-5,4.719545121206075e-9,-0.0015068654430890603,2.2459193836491986e-5,4.601005606662283e-9,-0.001506732732291867,2.2175454413684737e-5,4.388897633440769e-9,-0.0015064676102254564,2.1838262916960467e-5,4.1374773793336535e-9,-0.0015060770908259737,2.152899176668202e-5,3.9081543995164606e-9,-0.0015056034531821725,2.130964096087466e-5,3.747499605308365e-9,-0.0015051039831142801,2.120817745888039e-5,3.67616765940978e-9,-0.0015046318558587788,2.121994692951462e-5,3.6900798243215312e-9,-0.0015042251268647423,2.1317953608248667e-5,3.768369282876351e-9,-0.0015039036630436163,2.1464388035088392e-5,3.88222893943776e-9,-0.0015036707819547192,2.1619516091843104e-5,4.001665844105285e-9,-0.0015035165886605325,2.1747302655433718e-5,4.099689013291884e-9,-0.00150342132600212,2.1818716266063703e-5,4.154695925069204e-9,-0.001503358325448771,2.1813879500024203e-5,4.1519986156729824e-9,-0.0015032968462424501,2.1723736492507323e-5,4.08503905892022e-9,-0.0015032052341075262,2.155133538091197e-5,3.956368101994074e-9,-0.0015030546872407823,2.1312355770057032e-5,3.778071180337243e-9,-0.0015028235326783174,2.103420332333634e-5,3.5710789610787957e-9,-0.0015025013887804367,2.075307806093682e-5,3.362886440108658e-9,-0.0015020922453497882,2.0508886287330707e-5,3.183598559287639e-9,-0.0015016154742786625,2.0338452391119222e-5,3.0607104114683997e-9,-0.0015011040515861569,2.0268076034948164e-5,3.0134867470089806e-9,-0.001500599804274013,2.030688168146457e-5,3.04807733049152e-9,-0.0015001460726057133,2.044239395900025e-5,3.154424023362247e-9,-0.00149977856352969,2.0639604039527855e-5,3.305819021705255e-9,-0.0014995156172464786,2.0844817059723325e-5,3.461959279396227e-9,-0.0014993500137638414,2.0995399978085027e-5,3.576249789876038e-9,-0.0014992456432738306,2.1035335583678028e-5,3.60729449457631e-9,-0.0014991428844553212,2.0933644184201608e-5,3.532476786791916e-9,-0.0014989745730104767,2.0698804268457708e-5,3.3586078624101303e-9,-0.0014986888360896111,2.0380406021878866e-5,3.1231135922833585e-9,-0.0014982686733544998,2.0053717417477414e-5,2.88245886837212e-9,-0.001497737525690711,1.979300837962255e-5,2.692135997911263e-9,-0.001497148017881539,1.9647196210900128e-5,2.588415637713842e-9,-0.0014965613991866607,1.9629093705834248e-5,2.5803785904338805e-9,-0.0014960289411646245,1.971968706434261e-5,2.653283174951249e-9,-0.0014955820412908304,1.9880736800477454e-5,2.778157555940626e-9,-0.0014952309905867504,2.006787897714019e-5,2.9216817011335566e-9,-0.0014949687552116315,2.0239968863611068e-5,3.053154202397362e-9,-0.001494776174475137,2.0364131096063462e-5,3.1481831138080597e-9,-0.0014946265704327824,2.0417849223123522e-5,3.1901577490234746e-9,-0.0014944892845262566,2.038968095963877e-5,3.170735822070018e-9,-0.001494332545660484,2.0279629489477603e-5,3.090127645122555e-9,-0.0014941263545837618,2.009946410020862e-5,2.957370145196969e-9,-0.0014938459444002585,1.9872625600314708e-5,2.7902699955053625e-9,-0.0014934759328347927,1.9632856641228426e-5,2.614335134584265e-9,-0.0014930145655336932,1.9420569813598002e-5,2.4599538294097267e-9,-0.001492476702076429,1.9276431553751654e-5,2.3574741074222654e-9,-0.001491893815555032,1.923270705234934e-5,2.3306640563010123e-9,-0.0014913096645020614,1.930428755097455e-5,2.3900526656468323e-9,-0.0014907716135890666,1.9482318555866433e-5,2.5283426168944e-9,-0.0014903193643921373,1.973316438958572e-5,2.7198781518158167e-9,-0.0014899741448074898,2.0003956799043533e-5,2.9249937542774248e-9,-0.0014897315523588778,2.023395845028581e-5,3.098573729705269e-9,-0.0014895604078392077,2.036929696434408e-5,3.200967785115278e-9,-0.0014894086578894246,2.0377579597678796e-5,3.2087039570247428e-9,-0.0014892158047863976,2.0258385868426954e-5,3.122098731804692e-9,-0.001488929416536435,2.00457625312811e-5,2.9669485121319134e-9,-0.0014885210657221955,1.9800292408669174e-5,2.7885218058526498e-9,-0.0014879957071757151,1.9591794282292342e-5,2.6386436925550972e-9,-0.0014873899746012964,1.9478359809753334e-5,2.5601312681883347e-9,-0.0014867596618360918,1.949011570768919e-5,2.5748323704033555e-9,-0.0014861620498762876,1.96239922223134e-5,2.6799132147527057e-9,-0.0014856407320978139,1.9849868774778618e-5,2.8525944425785092e-9,-0.0014852179082245765,2.0123138972227992e-5,3.0595746869390322e-9,-0.001484894404555705,2.0397436089605455e-5,3.266468246613373e-9,-0.0014846544662120268,2.063358248057847e-5,3.444366312054756e-9,-0.0014844719149976677,2.080401172999627e-5,3.573026893968126e-9,-0.0014843155256631664,2.089389600951698e-5,3.6416569247405195e-9,-0.0014841529717873015,2.0900677734307805e-5,3.6485643076621275e-9,-0.0014839536957402732,2.083324538196875e-5,3.6005774495059056e-9,-0.0014836914694317035,2.0711220588510544e-5,3.5125354304605184e-9,-0.0014833473561297718,2.0564086382282243e-5,3.406608295349423e-9,-0.0014829133688975399,2.0429297886048457e-5,3.3108019367196984e-9,-0.0014823963710327067,2.0348185310062236e-5,3.25579730356668E-09,-0.0014818207428450856,2.0358734524199104e-5,3.269510016130022e-9,-0.0014812274772494347,2.048563738802864e-5,3.369725367338494e-9,-0.0014806675693328044,2.0730221397913308e-5,3.556767697544755e-9,-0.0014801896123771137,2.106481501301274e-5,3.809538836492915e-9,-0.0014798249253679303,2.143590416769047e-5,4.088059593597637e-9,-0.0014795761455542354,2.177709692752412e-5,4.3431788306475135e-9,-0.0014794146511569793,2.202796158292254e-5,4.530508461441201e-9,-0.0014792883061481331,2.21516328538685e-5,4.623353141774396e-9,-0.0014791364524373138,2.2144870224967428e-5,4.620002061129199e-9,-0.001478906684187595,2.203791530288745e-5,4.543444647931511e-9,-0.0014785683235115793,2.1885258092804413e-5,4.434360357647662e-9,-0.0014781193401062422,2.1750689691606835e-5,4.339933827235743e-9,-0.0014775854795386373,2.169092982823376e-5,4.3017291032046366e-9,-0.001477012299802205,2.1742145708306606e-5,4.345842348530162e-9,-0.0014764526498468376,2.191281179061359e-5,4.477843345187745e-9,-0.0014759534363243591,2.2184454181331846e-5,4.683549499194312e-9,-0.0014755455960484022,2.2519217855883682e-5,4.93475027814799e-9,-0.0014752396898019221,2.2870962823821085e-5,5.1974073013490225e-9,-0.0014750271342094889,2.3195958122338928e-5,5.439457561441334e-9,-0.0014748851544931095,2.3460421517391652e-5,5.636259530417908e-9,-0.0014747829673421675,2.3644120169039524e-5,5.773169265596725e-9,-0.001474687320693333,2.374080291527646e-5,5.845840169919798e-9,-0.0014745666070528286,2.3756880234768512e-5,5.859274017653767e-9,-0.0014743937130802754,2.370958754850038e-5,5.826487086509059e-9,-0.0014741482569230124,2.3625217663658505e-5,5.767179828898929e-9,-0.001473818894785108,2.353730629244631e-5,5.7063097259063755e-9,-0.0014734060778071696,2.3484074946004946e-5,5.672082995091509e-9,-0.001472924981874492,2.3504008874457454e-5,5.692603170476783e-9,-0.0014724072644037177,2.3628534088270373e-5,5.790480507708103e-9,-0.0014718991918354172,2.387197597384268e-5,5.975569281186334e-9,-0.0014714535304005726,2.422153315886059e-5,6.2378093646216116e-9,-0.0014711147480171334,2.463284924493281e-5,6.5441791770475725e-9,-0.0014709018005976526,2.5037149761910478e-5,6.844044438239558e-9,-0.0014707971735682401,2.5361087416693702e-5,7.08371765685339e-9,-0.0014707499231823534,2.5551998946229314e-5,7.224937628064112e-9,-0.0014706928556039132,2.559617122586235e-5,7.2582251778159335e-9,-0.0014705654035565266,2.5521412187611647e-5,7.204692681405604e-9,-0.0014703314954858874,2.5384704814681434e-5,7.106814374546921e-9,-0.001469986538679709,2.5252782134341083e-5,7.013936096625625e-9,-0.0014695540981764408,2.5183955143550453e-5,6.968766442288963e-9,-0.0014690762900327096,2.5215950258180403e-5,6.998456432120111e-9,-0.0014686020708823385,2.5360870206104967e-5,7.1110940673169154e-9,-0.001468176386598783,2.5606318665205407e-5,7.296811789583651e-9,-0.001467831922902369,2.592100301791191e-5,7.532134484148677e-9,-0.0014675843884544473,2.6263002803544234e-5,7.786145194716698e-9,-0.0014674316308986469,2.6588795756606222e-5,8.027060457500164e-9,-0.0014673561469447757,2.6861167542429433e-5,8.22790296065784e-9,-0.001467329858105644,2.7054651629686617e-5,8.370365121482301e-9,-0.0014673197245071011,2.7158013293985568e-5,8.446566196624374e-9,-0.0014672929285562525,2.717410966689769e-5,8.458950180331899e-9,-0.0014672208834997042,2.7118011201820044e-5,8.4189307986924e-9,-0.0014670820001531884,2.7014370775278294e-5,8.34495143072538e-9,-0.0014668636033767842,2.6894642929169563e-5,8.260369284515231e-9,-0.0014665634811135814,2.6794222102966245e-5,8.19123024785904e-9,-0.0014661914098972825,2.674909228562432e-5,8.163696466874626e-9,-0.001465770520724381,2.679114846664634e-5,8.200590836488431e-9,-0.001465337400999473,2.6941364730020337e-5,8.316505230393117e-9,-0.0014649388274165344,2.720105595585084e-5,8.511638713086152e-9,-0.0014646228477321868,2.7543744071366404e-5,8.766111014759959e-9,-0.0014644237187200332,2.791300341092992e-5,9.03854416039646e-9,-0.001464344966501293,2.8232690622237343e-5,9.273507511061049e-9,-0.00146435037296069,2.8431059296295023e-5,9.418980704214775e-9,-0.0014643722903750673,2.8469546292426055e-5,9.447272055057291e-9,-0.0014643365365555757,2.835968319109381e-5,9.367378735882624e-9,-0.0014641906956874835,2.8157374663821298e-5,9.220801767421116e-9,-0.0014639203699168175,2.793907130398366e-5,9.063972153156974e-9,-0.001463547743641747,2.777469392086682e-5,8.94819704622287e-9,-0.0014631181589848093,2.770971394278009e-5,8.906400483072525e-9,-0.0014626840013922983,2.7759615661242276e-5,8.949152904876544e-9,-0.0014622919778576426,2.7913376841285792e-5,9.067487925009645e-9,-0.0014619755187329977,2.8141209895819113e-5,9.238874894232356e-9,-0.0014617515941158011,2.840319839203045e-5,9.43374255358404e-9,-0.0014616206414562979,2.8657228590944903e-5,9.621316724398479e-9,-0.0014615686117483452,2.88656511750599e-5,9.77438646312151e-9,-0.0014615705063021332,2.9000359578134314e-5,9.872855466969257e-9,-0.0014615948598680729,2.9046009835060456e-5,9.905967029354836e-9,-0.001461608579480747,2.900124632155569e-5,9.873148682283592e-9,-0.0014615815016667387,2.8877991973552452e-5,9.783504838835818e-9,-0.001461490094774729,2.86991569091944e-5,9.65415693656674e-9,-0.0014613200429391873,2.8495379357004293e-5,9.507823393054517e-9,-0.0014610677949529376,2.8301325099769305e-5,9.370010304543687e-9,-0.0014607412749224225,2.8151769243240655e-5,9.266016170060544e-9,-0.001460359934266054,2.807741831222614e-5,9.217802419101563e-9,-0.001459954104262802,2.810012125881796e-5,9.240548810429125e-9,-0.0014595629027557774,2.8227079611997363e-5,9.338632920695437e-9,-0.001459229207373408,2.8444570378339046e-5,9.501348366973721e-9,-0.0014589903312328463,2.8713478214577256e-5,9.699906185659169e-9,-0.0014588646330113623,2.8970928160528702e-5,9.888704607981145e-9,-0.0014588380390138703,2.9143000527045176e-5,1.0014441084658272e-8,-0.0014588592510678298,2.916941323267889e-5,1.0033827086917958e-8,-0.0014588523821274818,2.9030953044343186e-5,9.933409035109415e-9,-0.0014587456644553276,2.8762477106263568e-5,9.739062259576716e-9,-0.001458501091057045,2.844024437257861e-5,9.506799999855063e-9,-0.001458127143420008,2.8150315430128008e-5,9.299622484807696e-9,-0.001457669435461303,2.7957472722960843e-5,9.164649386359438e-9,-0.0014571891196582215,2.788982620398424e-5,9.12181556433836e-9,-0.001456742655817562,2.7940470402478702e-5,9.1652351867303225E-09,-0.0014563700347164715,2.807848674258035e-5,9.271524962474886e-9,-0.0014560912588836175,2.826144010513699e-5,9.409190716108027e-9,-0.0014559078903742333,2.8445360201978687e-5,9.546033498517481e-9,-0.0014558067229891146,2.859145029300421e-5,9.65399985693406e-9,-0.0014557639343839687,2.867025540336573e-5,9.712068997365372e-9,-0.0014557492065120391,2.8664138594720785e-5,9.707890097359682e-9,-0.0014557298001960863,2.8568493551007577e-5,9.638560286519974e-9,-0.0014556745936851589,2.839177608483774e-5,9.510625422205857e-9,-0.0014555579370875656,2.815423714782051e-5,9.339183329667601e-9,-0.0014553629537277198,2.788526924195518e-5,9.14595894628804e-9,-0.0014550838573302906,2.7619586166606147e-5,8.95646433151999e-9,-0.0014547270310782067,2.7392671032165182e-5,8.796565507284847e-9,-0.0014543107698863327,2.7235881381529104e-5,8.688803061502544e-9,-0.0014538636547068316,2.7171559156514596e-5,8.648806078255112e-9,-0.0014534215710303232,2.7208440099601352e-5,8.68207399305285e-9,-0.001453023162629078,2.7337595874378007e-5,8.781285876904159e-9,-0.0014527031545351094,2.7529636906441165e-5,8.924571639210088e-9,-0.0014524833008458392,2.7735059993107925e-5,9.075970709988018e-9,-0.0014523621957538728,2.7890571544417234e-5,9.19001842577633e-9,-0.0014523077282724134,2.793379091660291e-5,9.22219677030714e-9,-0.0014522585937687897,2.7825223830983982e-5,9.144582317840528e-9,-0.0014521403795198652,2.7569149189017554e-5,8.960821255109384e-9,-0.001451893505617349,2.7219493141957345e-5,8.71038541518176e-9,-0.0014514989868257015,2.6862149989671336e-5,8.455773632611902e-9,-0.0014509858377754307,2.6581283086955036e-5,8.257991564297597e-9,-0.0014504161415827162,2.642918854125528e-5,8.154588223766253e-9,-0.0014498591074915373,2.6414918608475404e-5,8.151437565096828e-9,-0.0014493694267968629,2.6511849721997745e-5,8.228438049517682e-9,-0.001448977429522189,2.667403387196817e-5,8.351639483937653e-9,-0.0014486894408670674,2.6851542282472955e-5,8.484552463610772e-9,-0.0014484932417684118,2.700055872143433e-5,8.595494996252945e-9,-0.0014483645278005612,2.7088384874182358e-5,8.661115546099852e-9,-0.0014482724252906584,2.709519725146361e-5,8.667505390416874e-9,-0.0014481837922433506,2.7014246607076915e-5,8.610209915657879e-9,-0.0014480667630384213,2.6851367625677863e-5,8.493819386236972e-9,-0.0014478939985973695,2.6623968239600285e-5,8.331252341426477e-9,-0.0014476458307236476,2.635924813759418e-5,8.142498231074953e-9,-0.00144731311061095,2.6091231865376743e-5,7.952456649511876e-9,-0.0014468992107673786,2.5856444834127285e-5,7.787722099695875e-9,-0.0014464205463444633,2.5688537660867144e-5,7.672567457310853e-9,-0.0014459051593164764,2.5612502082256553e-5,7.624669465502379e-9,-0.0014453891705153014,2.5639343311066898e-5,7.651283894303304e-9,-0.0014449112632642608,2.5762226244715e-5,7.746636370364774e-9,-0.0014445057152640856,2.595501245227754e-5,7.891145026699935e-9,-0.0014441946694093064,2.6173960497131583e-5,8.052917461887092e-9,-0.0014439806475695987,2.636349963132186e-5,8.192048807278225e-9,-0.0014438411873451745,2.646690890427581e-5,8.268250609640819e-9,-0.0014437286296687954,2.6441511003512633e-5,8.251567637578792e-9,-0.001443578444853297,2.6275165731848128e-5,8.1339948899965e-9,-0.0014433273202660133,2.5997083928831833e-5,7.937096006765073e-9,-0.001442936409115405,2.567444219779277e-5,7.709508223593939e-9,-0.0014424086701659907,2.5391506100637698e-5,7.511889392046065e-9,-0.0014417892862947695,2.5219227646515815e-5,7.3950023164529674e-9,-0.001441147821285167,2.5191187270965408e-5,7.382424698161206e-9,-0.0014405525671188652,2.5297654232244746e-5,7.46642211059057e-9,-0.0014400506984845914,2.549697136888099e-5,7.616367322101587e-9,-0.0014396609875323325,2.573422047511667e-5,7.792362299919142e-9,-0.0014393770763216152,2.595731091946943e-5,7.956884889193762e-9,-0.0014391755390315833,2.6126299063856226e-5,8.081435414644157e-9,-0.0014390240648945822,2.621661961154909e-5,8.14872862017226e-9,-0.0014388876944924675,2.6218749094750767e-5,8.152319004850451e-9,-0.0014387330155882449,2.6136521805769236e-5,8.095315097039274e-9,-0.0014385310964584244,2.5985249879172986e-5,7.98902323659588e-9,-0.0014382599562942464,2.578984727441783e-5,7.851630723953415e-9,-0.001437907000473791,2.558258430097201e-5,7.706602007982529e-9,-0.0014374713475980292,2.539984818095332e-5,7.580298299298504e-9,-0.0014369654370357835,2.5277430919184726E-05,7.498481675769508e-9,-0.0014364149450387434,2.524445155724815e-5,7.481837634246073e-9,-0.0014358560907401488,2.531680732424275e-5,7.541239382042651e-9,-0.0014353299421923447,2.549174348391302e-5,7.67395063074306e-9,-0.0014348742608147498,2.5745447771436074e-5,7.862124322155557e-9,-0.0014345144552345818,2.6035180886781052e-5,8.074600559849243e-9,-0.0014342558619612528,2.6306381027453562e-5,8.272200047331242e-9,-0.001434079589311781,2.6503932782313694e-5,8.415841468953633e-9,-0.0014339437223416472,2.658569469617018e-5,8.476099349229682e-9,-0.0014337909162949274,2.653533090809111e-5,8.442148816768944e-9,-0.0014335620776601706,2.6370518693983798e-5,8.32738512813637e-9,-0.0014332136074441035,2.614232716045764e-5,8.16878953155742e-9,-0.0014327328436069065,2.592319956427502e-5,8.01823403658462e-9,-0.0014321447131647473,2.5785451237951414e-5,7.927095900408931e-9,-0.0014315049081303302,2.5778022969174607e-5,7.92972291182139e-9,-0.001430881462440153,2.591187567232032e-5,8.0331743458699e-9,-0.0014303331772278684,2.616035797685171e-5,8.217711692267238e-9,-0.0014298944934438224,2.6472481447071226e-5,8.446469961108673e-9,-0.0014295714210435305,2.6790920056085873e-5,8.67839265732808e-9,-0.0014293466416022695,2.706669905365202e-5,8.878682424407924e-9,-0.0014291886521796292,2.726698482237647e-5,9.024249768378522e-9,-0.0014290605250002484,2.7376714200605378e-5,9.104750656058354e-9,-0.0014289262535661926,2.7396668664601868e-5,9.121125674470142e-9,-0.0014287546376585928,2.734037378186705e-5,9.083361209742851e-9,-0.0014285215854872378,2.7231132652078738e-5,9.008387004102195e-9,-0.0014282118094740023,2.7099446056366132e-5,8.91824477219024e-9,-0.0014278205169719102,2.6980369162120895e-5,8.838165817857077e-9,-0.0014273551041353886,2.6910052790540644e-5,8.794014126806641e-9,-0.001426836217410468,2.692081607168585e-5,8.808668492982802e-9,-0.0014262969989791532,2.703467650249471e-5,8.897360695655925e-9,-0.0014257791653392638,2.7256366225002294e-5,9.062761040100194e-9,-0.0014253252294257476,2.7568169951920956e-5,9.291482753990074e-9,-0.0014249678412150235,2.7929586139618507e-5,9.554082763102208e-9,-0.001424719247272349,2.8283922152095817e-5,9.8099633515569e-9,-0.0014245649540888968,2.857138997614607e-5,1.0016784431585915e-8,-0.001424464819701088,2.874523105273305e-5,1.0141889729331605e-8,-0.0014243621807249333,2.8785614912595313e-5,1.0172034668321106e-8,-0.001424198594399113,2.8706550061364885e-5,1.0118076747905602e-8,-0.0014239298298215845,2.855338333973738e-5,1.0012952173362216e-8,-0.0014235384273948743,2.8391359153604704e-5,9.903332600293055e-9,-0.001423039068963574,2.8288237213866135e-5,9.837163726172813e-9,-0.0014224748046457894,2.8295862255426144e-5,9.850620457112531e-9,-0.0014219048911750486,2.8436423102220665e-5,9.95855573897215e-9,-0.0014213881167722824,2.8698019217145672e-5,1.0151643259449534e-8,-0.001420967450066756,2.9040746996965335e-5,1.0400951762124473e-8,-0.0014206611416994707,2.941022918094345e-5,1.066766982712532e-8,-0.001420462210050991,2.9752840746124096e-5,1.0913884054961945e-8,-0.0014203445464611544,3.0027360180390388e-5,1.111072374244291e-8,-0.0014202718523974758,3.0210625033603962e-5,1.1242230035220288e-8,-0.0014202059478694213,3.0297793467362173e-5,1.130543514634517e-8,-0.0014201126851082163,3.0299379741317255e-5,1.1308212546961511e-8,-0.001419965354967399,3.023722740125861e-5,1.126641797154726e-8,-0.0014197463754245395,3.0140745523510838e-5,1.1201222166966375e-8,-0.0014194482287997765,3.004374201377961e-5,1.1136832656018542e-8,-0.0014190743137684472,2.9981438465230445e-5,1.1098298258684281e-8,-0.001418639809555389,2.9986901963587264e-5,1.1108885328964141e-8,-0.001418171968272546,3.008617815680982e-5,1.1186579824169502e-8,-0.0014177085861886171,3.0291942135319834e-5,1.133964646008498e-8,-0.001417293059956346,3.05967206924271e-5,1.1562003200599675e-8,-0.0014169650708668305,3.0968510049347896e-5,1.1830355814926381e-8,-0.0014167481369272308,3.135278601208798e-5,1.210581797947972e-8,-0.0014166384270926171,3.168371673086619e-5,1.2341922339142801e-8,-0.001416601011852032,3.1903068064781095e-5,1.2497950944243014e-8,-0.001416577597530908,3.197990561297152e-5,1.2552765821321245e-8,-0.001416504023895075,3.192205189348772e-5,1.2512782170450044e-8,-0.0014163303334027324,3.177388113563488e-5,1.241023118085146e-8,-0.0014160352058320256,3.160197306166359e-5,1.2292773285630224e-8,-0.00141563020412267,3.147525183817631e-5,1.2209223647116733e-8,-0.001415154182806351,3.144686499940079e-5,1.219665427065755e-8,-0.0014146612944608804,3.1542588220823e-5,1.2272337128455885e-8,-0.0014142068212377667,3.17574992652059e-5,1.2431711044918489e-8,-0.0014138345495532411,3.206030619328251e-5,1.2651790954942593e-8,-0.0014135683760217552,3.240316711893786e-5,1.2898338055852669e-8,-0.0014134095167311366,3.273394154711765e-5,1.3134557510283644e-8,-0.0014133391618895421,3.300757270905415e-5,1.3329020931988017e-8,-0.0014133249690354472,3.31939594183018e-5,1.34610409333419e-8,-0.0014133289896605121,3.328119077205221e-5,1.3522794560786908e-8,-0.001413314822460721,3.3274656159752014e-5,1.3518607273504532e-8,-0.0014132527079583823,3.3193518643689525e-5,1.3462443644765452e-8,-0.0014131223461608018,3.3066195373724894e-5,1.3374722960227905e-8,-0.001412913992766144,3.292604615376844e-5,1.3279258055873786e-8,-0.0014126286522506636,3.2807704536436217e-5,1.3200599557144906e-8,-0.0014122779793304208,3.274378481004234e-5,1.3161617579820244e-8,-0.0014118840527596287,3.276134215889836e-5,1.318093997452497e-8,-0.0014114785988180107,3.287744387268909e-5,1.3269863918137662e-8,-0.0014111005438624472,3.309364278437632e-5,1.3428626290622916e-8,-0.0014107903444190032,3.339035361538781e-5,1.3642698341029341e-8,-0.0014105801213301545,3.372401496582465e-5,1.388102605623399e-8,-0.0014104809172316352,3.403140528598448e-5,1.4099169038639324e-8,-0.0014104721889999377,3.4244418459823575e-5,1.4249623837810556e-8,-0.0014105012730983308,3.431313016865975e-5,1.4297897851110098e-8,-0.0014104976530675871,3.4227232153276674e-5,1.4237483279052317e-8,-0.0014103978203613941,3.4023102917727105e-5,1.409478258989675e-8,-0.0014101683041605874,3.37710788967813e-5,1.3920030577394821e-8,-0.0014098152448564095,3.3549879175073367e-5,1.3769043937615413e-8,-0.0014093780596700428,3.342166325020871e-5,1.3685419104499984e-8,-0.0014089135400348065,3.341756238018929e-5,1.3690309226175862e-8,-0.0014084788334548454,3.3535493238112093e-5,1.37811189010826e-8,-0.0014081186845767038,3.374669781848928e-5,1.3936497322555077e-8,-0.0014078585339577186,3.400633332696204e-5,1.4124144409347155e-8,-0.0014077028508541673,3.42645878758073e-5,1.4308805334751806e-8,-0.0014076373664685578,3.4476340111075574e-5,1.4459025629545484e-8,-0.0014076339312917433,3.4608360343685586e-5,1.4552028310657353e-8,-0.0014076568208633863,3.464345854701809e-5,1.457641017245677e-8,-0.001407669277186434,3.458141606859998e-5,1.4532638817739162e-8,-0.0014076391876356137,3.443714237304597e-5,1.4431695615751243e-8,-0.0014075431589499628,3.42369134134312e-5,1.4292440206539112e-8,-0.0014073687088618709,3.401369363319955e-5,1.4138337135936162e-8,-0.0014071148025871514,3.380247774740365e-5,1.3994150056515684e-8,-0.0014067912957618034,3.363619137526845e-5,1.3882976655598566e-8,-0.001406417785833611,3.3542132876375727e-5,1.3823657520053249e-8,-0.0014060220696082155,3.3538605100390865e-5,1.3828389059174037e-8,-0.0014056380007306819,3.363132267047934e-5,1.3900311168766636e-8,-0.0014053019647113963,3.3809476163547754e-5,1.403098639393186e-8,-0.0014050467952829435,3.404235090138576e-5,1.4198316878603361e-8,-0.0014048925106380783,3.427900969237467e-5,1.4366522015636952e-8,-0.0014048352740607154,3.4454830578689884e-5,1.4490717899879615e-8,-0.0014048394576729162,3.450785686877302e-5,1.452817586539771e-8,-0.0014048405652307403,3.4402642110255266e-5,1.4454790297227312e-8,-0.001404764049178016,3.415061768516878e-5,1.4279243287251102e-8,-0.0014045544794032856,3.381223147440442e-5,1.4044512501709342e-8,-0.001404199019517501,3.34753415760048e-5,1.3812662721467575e-8,-0.0014037308928993113,3.322120032523223e-5,1.3640780805957817e-8,-0.0014032126628860826,3.309751484531842e-5,1.3561886833224022e-8,-0.0014027118105852483,3.311012467826726e-5,1.3579138976547671e-8,-0.0014022815504324637,3.3230920394382554e-5,1.3671690150678322e-8,-0.0014019518800177807,3.341272421638346e-5,1.3805518700988216e-8,-0.0014017290980962978,3.360354473780993e-5,1.3943711301648619e-8,-0.0014016000243125806,3.375694744860536e-5,1.4053807349603574e-8,-0.001401537920759662,3.383830386691697e-5,1.4112051071441454e-8,-0.001401508516602354,3.38278961316903e-5,1.4105333153706423e-8,-0.0014014756088146735,3.372177220527613e-5,1.4031568509718768e-8,-0.0014014060660440912,3.353076489929489e-5,1.3898885331730495e-8,-0.0014012739860668733,3.327793091957308e-5,1.3723815329935129e-8,-0.0014010636973225197,3.2994742987017955e-5,1.3528667448275764e-8,-0.0014007713279077503,3.271646976821572e-5,1.3338315101143095e-8,-0.0014004048383781237,3.247734073521475e-5,1.3176767910392181e-8,-0.001399982720160362,3.230609707347399e-5,1.3063963984102755e-8,-0.0013995317115542282,3.222223618554686e-5,1.3013065431940527e-8,-0.0013990837824146862,3.223298100013896e-5,1.3028362806501945e-8,-0.0013986724408224693,3.2330914871978444e-5,1.310378977963939e-8,-0.0013983280897938944,3.249234472603756e-5,1.3222059543851011e-8,-0.0013980719157413676,3.26771022098923e-5,1.3354806377875613e-8,-0.001397908301055983,3.2831582187595467E-05,1.3464847011626819e-8,-0.001397817347062273,3.289747667782527e-5,1.3512189019105797e-8,-0.001397751512132713,3.28277047548693e-5,1.3464871106866769e-8,-0.0013976423203658295,3.260691801970788e-5,1.3312974762696126e-8,-0.0013974208313565252,3.2266892279175194e-5,1.3079220779759064e-8,-0.0013970462170215551,3.188350281420138e-5,1.2816866134850941e-8,-0.001396526429072313,3.15504266134185e-5,1.2591347003175733e-8,-0.0013959162362914407,3.134208482490942e-5,1.2454319312828303e-8,-0.0013952934212709952,3.12876940613365e-5,1.2425488800691024e-8,-0.0013947290248052181,3.1368994960239776e-5,1.2491155941132685e-8,-0.0013942677926455445,3.153656609401135e-5,1.2615901943459306e-8,-0.001393923604268954,3.173094679442987e-5,1.2757639356311874e-8,-0.0013936850245932673,3.189863660685751e-5,1.287894027262053e-8,-0.0013935243292366379,3.20005016684368e-5,1.295286703830315e-8,-0.0013934059148908537,3.2014351751696166e-5,1.2964583482053157e-8,-0.0013932926868055352,3.193431439306784e-5,1.29106853876459e-8,-0.0013931506171936453,3.176890244780789e-5,1.279767711238989e-8,-0.0013929521622677431,3.153852371658084e-5,1.2640170940633758e-8,-0.0013926789463034916,3.1272453315631026e-5,1.2458806214965603e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json new file mode 100644 index 00000000..fb9e3f35 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":4000,"numberOfSamples":1000,"samples":[-0.0013923237156324762,3.10051313115372e-5,1.227772476593132e-8,-0.0013918913030339685,3.0771749723490945e-5,1.2121506307793586e-8,-0.0013913982265213998,3.060338976954708e-5,1.2011722091998317e-8,-0.0013908707040811456,3.052231698115309e-5,1.1963565646016446e-8,-0.001390341194667023,3.053811122326968e-5,1.198311590315129e-8,-0.0013898437960375297,3.064516965374932e-5,1.206567850949141e-8,-0.0013894089283486013,3.0821985171837794e-5,1.219550046257788e-8,-0.0013890577325521491,3.103246124664618e-5,1.234697235237071e-8,-0.001388796542557306,3.12295787680487e-5,1.2487412403812631e-8,-0.0013886120720738905,3.136210718279558e-5,1.2581786671309725e-8,-0.0013884688947041909,3.1385084006792996e-5,1.2599819994917749e-8,-0.0013883119458332274,3.127360474065753e-5,1.2525244839418013e-8,-0.0013880771300425396,3.103666131759266e-5,1.2365079707027838e-8,-0.0013877108551321243,3.072388276790292e-5,1.2154123117817592e-8,-0.0013871929430152989,3.0416606360292832e-5,1.1948741207200948e-8,-0.001386550391714903,3.0201205713724095e-5,1.1808429582903155e-8,-0.0013858506737383077,3.01357997768827e-5,1.1772803776767341e-8,-0.0013851759104291312,3.0229273883448915e-5,1.1847175892297428e-8,-0.001384592881220668,3.0443874540562336e-5,1.2004550146250928e-8,-0.0013841349373795028,3.0716035009628255e-5,1.2200281016361826e-8,-0.0013838008265632472,3.098058540822912e-5,1.2389009867920565e-8,-0.0013835645353088798,3.118712181259742e-5,1.2536034707260684e-8,-0.0013833877106148682,3.130621279611001e-5,1.2621499602221395e-8,-0.0013832296076505604,3.132862793970199e-5,1.2639667607070031e-8,-0.0013830533398082588,3.12615629520694e-5,1.2596119024238894e-8,-0.0013828292717648978,3.1124447793189026e-5,1.2504739208443173e-8,-0.001382536894290198,3.094526718665489e-5,1.238515875044467e-8,-0.001382166093661862,3.0757242436986546e-5,1.2260502826500002e-8,-0.0013817180828804721,3.059536687843876e-5,1.2155030689028627e-8,-0.0013812057662645032,3.0492356610198686e-5,1.2091316281131741e-8,-0.001380652965115511,3.0473944416237442e-5,1.2086924984252354e-8,-0.0013800918794172976,3.055405387965315e-5,1.2151015510603047e-8,-0.0013795585330693598,3.073089776278415e-5,1.2281664264941277e-8,-0.0013790865545975047,3.098519781713838e-5,1.2464780864846123e-8,-0.0013787002512115332,3.128152698517288e-5,1.2675280274755086e-8,-0.0013784083744284533,3.1573186320784075e-5,1.2880703491497357e-8,-0.0013782000273174174,3.181021399913377e-5,1.3046891803617532e-8,-0.0013780438976636682,3.19495350745652e-5,1.3144947940134445E-08,-0.0013778917807731484,3.1965865743675875e-5,1.3158522917130986e-8,-0.0013776871187557247,3.186125601721507e-5,1.3090054814128084e-8,-0.0013773784345414448,3.167005542915762e-5,1.2963872114938864e-8,-0.0013769355296510653,3.145540027821075e-5,1.2823586040322064e-8,-0.0013763632310821636,3.129451925350386e-5,1.2721957602677264e-8,-0.0013757051938257864,3.12548297658547e-5,1.2704580862237566e-8,-0.0013750325167593762,3.136980980661643e-5,1.2793513871866098e-8,-0.0013744200205683455,3.162705495398507e-5,1.297932656913296e-8,-0.001373921486003332,3.197529339541822e-5,1.3226141868971426e-8,-0.0013735559011152846,3.2345581764334165e-5,1.348632479099502e-8,-0.001373308834962327,3.267443076739067e-5,1.371638565723486e-8,-0.0013731440063741707,3.2918760928589506e-5,1.3887174851188765e-8,-0.0013730169969555664,3.306017025212218e-5,1.3986670884338575e-8,-0.001372885707505598,3.310177282032628e-5,1.4017645484980559e-8,-0.0013727161916267327,3.3062157152929236e-5,1.3993385650784678e-8,-0.0013724849650755444,3.2969528124314865e-5,1.3933613214447525e-8,-0.0013721795043743403,3.2857132549704686e-5,1.3861350571725312e-8,-0.001371798199420233,3.275975393211377e-5,1.3800541749182052e-8,-0.001371350267391638,3.2710546394120883e-5,1.3773879566233536e-8,-0.0013708554660210265,3.273748651144435e-5,1.3800332746004124e-8,-0.0013703429392595617,3.285908614832062e-5,1.3892159705457934e-8,-0.0013698482842253537,3.3079732505826116e-5,1.4051723281032588e-8,-0.0013694081789119867,3.33859216188847e-5,1.4269017354682299e-8,-0.0013690527752354515,3.3745292715916165e-5,1.4521206280880815e-8,-0.0013687973523058758,3.411026251376824e-5,1.4775341685527618e-8,-0.001368635864809167,3.442685430142285e-5,1.4994571911094206e-8,-0.001368539190809793,3.464725058126877e-5,1.5146764379461272e-8,-0.0013684596653155585,3.474271507765218e-5,1.5213225547749854e-8,-0.001368341412275528,3.471292842213015e-5,1.519483961915156e-8,-0.0013681340963783179,3.458864103148684e-5,1.5113572919781048e-8,-0.001367806641243441,3.442624486265195e-5,1.50084742827696e-8,-0.0013673571913396174,3.429481060775766e-5,1.492663952720893e-8,-0.0013668159712882611,3.425816744323766e-5,1.4910976651613327e-8,-0.0013662389537410337,3.4356679623137404e-5,1.4987969233571176e-8,-0.0013656929127156684,3.45948313307106e-5,1.5159539607809455e-8,-0.0013652362239514341,3.493996318255312e-5,1.540252269790559e-8,-0.0013649025854399397,3.533339206451559e-5,1.5676457844807535e-8,-0.001364694017006319,3.5709311516460834e-5,1.5936510012581336e-8,-0.0013645848390629765,3.6013317990182196e-5,1.6146000719145376e-8,-0.001364533006244744,3.6213785847992433e-5,1.6284003030435945e-8,-0.0013644928514191061,3.630413358810897e-5,1.6346724249025713e-8,-0.0013644247321696538,3.629841553527456e-5,1.6344369702902035e-8,-0.0013643001276189908,3.622421100892573e-5,1.6296216699097295e-8,-0.0013641030557909385,3.611585301733881e-5,1.6225972675099123e-8,-0.001363829489218644,3.6009284510185593e-5,1.6158272516967093e-8,-0.0013634861732545276,3.59384398039273e-5,1.6116209694143087e-8,-0.0013630895393642458,3.593237657339973e-5,1.6119355456194334e-8,-0.0013626646638417342,3.601230966247092e-5,1.618170797397962e-8,-0.001362243629102119,3.61880268938273e-5,1.6309266089582144e-8,-0.0013618622841067652,3.64538655276576e-5,1.6497393820657673e-8,-0.0013615544772974737,3.6785502430891855e-5,1.6728827194428735e-8,-0.0013613437161679772,3.713991173468955e-5,1.697386187057922e-8,-0.001361234021080087,3.746108911824493e-5,1.719439828116546e-8,-0.0013612037638524796,3.7692536866159856e-5,1.7352457140518053e-8,-0.001361206847971344,3.779396838960132e-5,1.742144636974678e-8,-0.0013611832374142226,3.7756031020244054e-5,1.7396011201743785e-8,-0.001361076191644119,3.7606086154550635e-5,1.7295762883204998e-8,-0.0013608496577971183,3.7401677631123275e-5,1.716059227166306e-8,-0.0013604990488915285,3.721408821670011e-5,1.7039232838343093e-8,-0.0013600520125571307,3.710835900255645e-5,1.697551683056106e-8,-0.0013595600099726545,3.712640498271043e-5,1.699695432191236e-8,-0.0013590841935409244,3.727760024130748e-5,1.71086275657347e-8,-0.001358679890204125,3.7538440708709115e-5,1.7293378278633092e-8,-0.00135838372132039,3.7860514706880266e-5,1.7517577456580113e-8,-0.0013582064390924846,3.818407848658802e-5,1.7740504047095585e-8,-0.0013581329272131877,3.845318903981301e-5,1.7924558906917483e-8,-0.0013581286541984837,3.862806850028087e-5,1.804345582610699e-8,-0.0013581498661130592,3.869159882723496e-5,1.8086397228283904e-8,-0.0013581539476281528,3.8649261142348775e-5,1.8057850041261867e-8,-0.0013581071226586598,3.8524189345567815e-5,1.7974088393725628e-8,-0.0013579883897526658,3.835008509330396e-5,1.7858356144320932e-8,-0.00135779018044884,3.8164384929534315e-5,1.7736239335068338e-8,-0.001357517027048097,3.800295694389865e-5,1.7632074255281237e-8,-0.0013571835099064594,3.789645286761099e-5,1.7566453802397066e-8,-0.0013568122323385436,3.786770844912354e-5,1.7554432313878906e-8,-0.0013564319146861178,3.792940545542113e-5,1.760394100218013e-8,-0.0013560751230173448,3.808144637277682e-5,1.771409396726125e-8,-0.001355774723096159,3.830809315615486e-5,1.7873437098055103e-8,-0.0013555581129589143,3.85759738967685e-5,1.805883775217439e-8,-0.0013554390847187276,3.883530834118127e-5,1.8236503204011578e-8,-0.001355409076240439,3.9027250633763036e-5,1.836699003058032e-8,-0.0013554321238842734,3.909874292882928e-5,1.8415131641263553e-8,-0.0013554490528045462,3.90218298649933e-5,1.836291168093209e-8,-0.0013553934777036426,3.88088274293409e-5,1.8219570358978306e-8,-0.0013552148739573212,3.8513364752411945e-5,1.8022193158569097e-8,-0.0013548976458011926,3.821394753241361e-5,1.7824422483376295e-8,-0.0013544662886432806,3.7987376502045904e-5,1.767824374087245e-8,-0.001353975167144596,3.788495877740173e-5,1.7617747380746665e-8,-0.0013534897169433626,3.792082265498023e-5,1.765132964873523e-8,-0.0013530679623867672,3.807359000944715e-5,1.776318309780284e-8,-0.0013527479846985185,3.82970266342332e-5,1.7920945154219862e-8,-0.0013525427737545379,3.8534126622979775e-5,1.8085549434599747e-8,-0.0013524413684721215,3.8730475725509086e-5,1.8220348872787433e-8,-0.0013524143580498815,3.8844550459139665e-5,1.829793515757917e-8,-0.0013524218120327396,3.885388259987187e-5,1.830403299861606e-8,-0.0013524218425320289,3.8756778190668846e-5,1.8238389323156565e-8,-0.0013523781464381873,3.857000249417001e-5,1.8113029207340084e-8,-0.0013522652859119853,3.832360437107422e-5,1.7948697828581297e-8,-0.0013520711816035556,3.805446144349454e-5,1.7770522740602527e-8,-0.0013517970474576544,3.7800026057570636e-5,1.760383303417335e-8,-0.0013514555502732262,3.759328234789039e-5,1.7470765883749638e-8,-0.0013510681406707162,3.745922197053802e-5,1.7387859156658665e-8,-0.0013506622145259056,3.741251692416933e-5,1.7364450412879974e-8,-0.0013502682953014952,3.7455843878886433e-5,1.7401577299135237e-8,-0.0013499170098815133,3.757843888576176e-5,1.749114206947162e-8,-0.0013496352319221148,3.775487577483726e-5,1.7615323797154796e-8,-0.001349440649488639,3.794495617766193e-5,1.7746750386563e-8,-0.0013493347424008647,3.809671819615431e-5,1.7850659872577422e-8,-0.001349295890582923,3.8155046902679206e-5,1.7890635669466993e-8,-0.0013492766959825838,3.807708327935155e-5,1.783874654599152e-8,-0.0013492110735612106,3.785133903622449e-5,1.768815260529381e-8,-0.001349033855976422,3.751108479626499e-5,1.7461969909133265e-8,-0.0013487069795288752,3.71303580506857e-5,1.7210535401503925e-8,-0.0013482379377772538,3.67993136705882e-5,1.6994726215196717e-8,-0.001347678208637462,3.659042766946213e-5,1.6863046213677397e-8,-0.0013471024913643088,3.6534216931232214e-5,1.6835204236635903e-8,-0.0013465817610538201,3.661531138061667e-5,1.6899639174625656e-8,-0.0013461637307948591,3.67855921967629e-5,1.702274689456107e-8,-0.0013458659040266978,3.698362593147122e-5,1.716236688366139e-8,-0.0013456786096961092,3.715150481672573e-5,1.7279353443021854e-8,-0.0013455729607305563,3.7245547989349e-5,1.7344764650321256e-8,-0.0013455098437546319,3.724113849988471e-5,1.7342896275356996e-8,-0.0013454479816408654,3.713333537401668e-5,1.7271384802952297e-8,-0.0013453504339775678,3.693472237791048e-5,1.7139497446621565e-8,-0.0013451893773290563,3.66714125531848e-5,1.69653115025737e-8,-0.001344949053305138,3.6377906041960216e-5,1.677225728879621e-8,-0.0013446268270830342,3.6091487557028635e-5,1.658542561013439e-8,-0.0013442324429496473,3.584683872566402e-5,1.642801203779135e-8,-0.0013437858000863968,3.567151610583387e-5,1.6318286339007397e-8,-0.0013433138090793446,3.5582718952246464e-5,1.6267381969080993e-8,-0.0013428468552322856,3.5585336135370534e-5,1.6277959343087233e-8,-0.0013424151246411572,3.567102736278635e-5,1.6343650045473796e-8,-0.0013420448217986622,3.581815905326798e-5,1.6449191850671144e-8,-0.0013417540843769415,3.5992621037087415e-5,1.6571231526067074e-8,-0.0013415482762467888,3.6150103914661236e-5,1.6680073457991738e-8,-0.0013414149103668283,3.624123041516313e-5,1.6743183400191018e-8,-0.0013413198868642417,3.622112481074397e-5,1.6731446982117347e-8,-0.00134120845189209,3.606369069563323e-5,1.662842184473864e-8,-0.0013410151654745213,3.577732086480887e-5,1.644054815603201e-8,-0.0013406846000409867,3.5413460407537786e-5,1.6202722853245097e-8,-0.0013401964609990825,3.505743910760731e-5,1.597215167212452e-8,-0.001339580425708274,3.479926151774641e-5,1.5808809507200667e-8,-0.0013389081886428587,3.4697739505285814e-5,1.5751417893888703e-8,-0.0013382653066040724,3.475913717423584e-5,1.5803205836748927e-8,-0.0013377198411129057,3.494136132320177e-5,1.593492656261746e-8,-0.0013373043650111932,3.517656334298736e-5,1.610030358752367e-8,-0.001337015439682562,3.5396327466275055e-5,1.6253166407767607e-8,-0.0013368239990238354,3.5548502293726705e-5,1.6358821610884963e-8,-0.0013366882809558854,3.560374914900627e-5,1.639832805964985e-8,-0.001336564467218173,3.55549452941308e-5,1.636783817572624e-8,-0.001336413776905145,3.541320348266067e-5,1.627564290331889e-8,-0.0013362066349266496,3.520293709170862e-5,1.6138666700184393e-8,-0.0013359249232274644,3.4956909941254224e-5,1.5979096337218204e-8,-0.001335562924155841,3.4711420854670354e-5,1.582122151313896e-8,-0.0013351271377057652,3.4501629448674695e-5,1.568840971408109e-8,-0.0013346349529169633,3.435711455278746e-5,1.5600199028356044e-8,-0.0013341121333342526,3.429797828590833e-5,1.5569686455152157e-8,-0.0013335892705868344,3.433199575848479e-5,1.5601580165570786e-8,-0.0013330975858291425,3.4453164621146024e-5,1.5691228226897585e-8,-0.0013326644706178011,3.464175000353744e-5,1.5824749599259128e-8,-0.0013323090899715643,3.4865868704546576e-5,1.5980301002253026e-8,-0.001332038338966892,3.508467362609938e-5,1.6130447896255385e-8,-0.0013318434113794785,3.525330077002587e-5,1.6245627748951825e-8,-0.0013316975322695253,3.5330051294305984e-5,1.629891139049964e-8,-0.001331556286785722,3.528619312938393e-5,1.6272293810409786e-8,-0.0013313628892067757,3.5117465072944155e-5,1.6163989779264318e-8,-0.0013310606240185723,3.485372509921916e-5,1.5994525193249938e-8,-0.001330612092239529,3.4560074860567006e-5,1.5807325007709106e-8,-0.0013300188819388664,3.432251695865668e-5,1.5659203035008636e-8,-0.0013293294672254824,3.4218415257834896e-5,1.5600856484188996e-8,-0.0013286258106659328,3.4284781738908746e-5,1.565595284409048e-8,-0.0013279927272366466,3.45034557497139e-5,1.5811466092247673e-8,-0.001327487245815521,3.481218305757908e-5,1.6025241776050835e-8,-0.0013271243297834456,3.5132573390047304e-5,1.6244759544611692e-8,-0.0013268819281744182,3.539726971412401e-5,1.6425301589944376e-8,-0.0013267165573191055,3.556482846968116e-5,1.6539830337867083e-8,-0.0013265791200544272,3.5621827657685704e-5,1.65802341767557e-8,-0.0013264257556151145,3.5577571686315266e-5,1.6553560503722946e-8,-0.0013262233226004878,3.5456646993180176e-5,1.6476832678516347e-8,-0.0013259512363842734,3.529220284957108e-5,1.637245418374682e-8,-0.001325601512184336,3.512067149730725e-5,1.626470172512635e-8,-0.0013251780734556981,3.497753493359976e-5,1.6177001160356565e-8,-0.0013246955832461917,3.4893601735033355e-5,1.6129548566876927e-8,-0.0013241776457557696,3.48914999010468e-5,1.6137021291032074e-8,-0.001323654076904617,3.4982458503977466e-5,1.6206426975212878e-8,-0.001323157041794967,3.5163901163299414e-5,1.633548781930137e-8,-0.0013227162371304468,3.5418581049974166e-5,1.651211397605036e-8,-0.001322353687199993,3.571581068946272e-5,1.6715367990939248e-8,-0.0013220789387146789,3.601504810064792e-5,1.6918061706656873e-8,-0.0013218855424575772,3.627176280866538e-5,1.7090842854582353e-8,-0.0013217496703317407,3.644508967537851e-5,1.720733490398808e-8,-0.0013216315923340778,3.65064979819164e-5,1.7249749168249524e-8,-0.0013214807524120568,3.644842841848515e-5,1.7214291107647377e-8,-0.0013212451222116156,3.6291038759722376e-5,1.711523751546295e-8,-0.0013208846495029996,3.60839095678969e-5,1.6985751198887913e-8,-0.0013203863550454039,3.5898854230369885e-5,1.6873006904681262e-8,-0.0013197752519399667,3.581166273538234e-5,1.682623169287687e-8,-0.0013191132255276836,3.587626651540886e-5,1.6879911863534467e-8,-0.0013184815790603076,3.610241659999537e-5,1.7039381967031404e-8,-0.0013179528033887597,3.645020189165614e-5,1.7277474450637978e-8,-0.0013175658344386403,3.684610326885073e-5,1.7545256584706124e-8,-0.0013173174371027003,3.721139594219093e-5,1.7790800848516823e-8,-0.0013171711591591722,3.7487162393554715e-5,1.797564920289059e-8,-0.0013170751083556422,3.764583818573417e-5,1.8082333520008842e-8,-0.0013169783809209286,3.768958704883004e-5,1.8113134460390254e-8,-0.001316841058972772,3.764169488899078e-5,1.8084193168326844e-8,-0.001316637900558923,3.7536910324560003e-5,1.8018963620713753e-8,-0.0013163581227781179,3.74137736701684e-5,1.7943079177386814e-8,-0.0013160036253867771,3.730942928907114e-5,1.7880963442603383e-8,-0.0013155869869080489,3.725613444561233e-5,1.7853614375631473e-8,-0.0013151295414577234,3.7278505354125304e-5,1.787686235519351e-8,-0.0013146592408699255,3.7390914042800114e-5,1.7959684433815758e-8,-0.0013142077768859126,3.759497729467439e-5,1.8102557862085905e-8,-0.0013138065061219567,3.787768395385184e-5,1.829626511989185e-8,-0.0013134811566555547,3.821118959139425e-5,1.852186865762894e-8,-0.0013132460042088404,3.855535190871637e-5,1.8752556581883928e-8,-0.0013130988888896927,3.886358760935178e-5,1.895768052314085e-8,-0.0013130187880983333,3.9091668685304416e-5,1.9108648012779857e-8,-0.0013129673945528086,3.920788927157972e-5,1.9185567048502283e-8,-0.001312895240496861,3.920217618512819e-5,1.918302681873874e-8,-0.001312751730863596,3.9091588709663886e-5,1.911338071545348e-8,-0.0013124973851131767,3.892009752658912e-5,1.9006243630838438e-8,-0.0013121156803837925,3.875132474201483e-5,1.8903462645629538e-8,-0.0013116210944716046,3.865427657691962e-5,1.884969011796569e-8,-0.0013110596023093825,3.868436788208665e-5,1.8880112079492577e-8,-0.0013104989534392041,3.8865074759319735e-5,1.9008779400316116e-8,-0.0013100096397849926,3.917783531577995e-5,1.9222392671536106e-8,-0.001309642829716195,3.9566441267412706e-5,1.9483464693369486e-8,-0.0013094148936341004,3.995569860122959e-5,1.974262974906959e-8,-0.0013093055437344233,4.027611457180882e-5,1.9954738594955732e-8,-0.001309269039156997,4.048329051082387e-5,2.0091415425642147e-8,-0.0013092512762208149,4.0565121305456764e-5,2.0145608286767512e-8,-0.001309204630257768,4.053753924890765e-5,2.012862157893427e-8,-0.0013090962818779034,4.043433842048082e-5,2.0063277178960123e-8,-0.0013089102465701447,4.029664197237238e-5,1.997689758602726e-8,-0.0013086455823332675,4.0164989376255385e-5,1.9896096938048397e-8,-0.0013083132488531785,4.0074480065967925e-5,1.984365052124649e-8,-0.0013079330725531747,4.005204604799757e-5,1.9836785608003348e-8,-0.0013075312073712847,4.011466197911539e-5,1.9886069633644747e-8,-0.001307137746835643,4.026767679567208e-5,1.9994358344677895e-8,-0.0013067837953618638,4.0503094151805196e-5,2.01557240211866e-8,-0.001306497350497541,4.079836018355392e-5,2.0354765247593485e-8,-0.0013062978171497592,4.111688713507512e-5,2.0567103458832157e-8,-0.0013061898867567608,4.141184316071489e-5,2.076202115095573e-8,-0.0013061586859034154,4.163420723263055e-5,2.0907824211338083e-8,-0.001306168888940125,4.174442656977121e-5,2.097944515467198e-8,-0.0013061699709006594,4.1724685296821706e-5,2.0966324787464215e-8,-0.0013061076049721034,4.1587191985985025e-5,2.0877595932876798e-8,-0.0013059383156452651,4.137443165518275e-5,2.0741958445759947e-8,-0.0013056425938951044,4.115010375057371e-5,2.060146632532868e-8,-0.0013052319085176942,4.098302152604378e-5,2.0500810520890916e-8,-0.001304747148248314,4.092874780265062e-5,2.0475326047336553e-8,-0.0013042487662768554,4.101434730128175e-5,2.0541288681716853e-8,-0.0013038012226081626,4.1230688242288156e-5,2.0691321547541416e-8,-0.0013034559571685768,4.153480564579156e-5,2.0896370294196396e-8,-0.0013032379646765557,4.186207205593781e-5,2.111390047210881e-8,-0.0013031404096450596,4.214456168589532e-5,2.1299885763046148e-8,-0.0013031290193728036,4.232935992827865e-5,2.1420571741681682e-8,-0.0013031540596875038,4.23905340975399e-5,2.1460031357444974e-8,-0.0013031647722243158,4.233156537247573e-5,2.1421513055924925e-8,-0.0013031210288061141,4.217942322107834e-5,2.132339132411696e-8,-0.0013029993698451085,4.19743987627646e-5,2.1192421768565933e-8,-0.0013027936105723457,4.175999540557228e-5,2.1057114924379603e-8,-0.0013025120277159838,4.157542941681899e-5,2.094288448231488e-8,-0.0013021733414850117,4.145125605159004e-5,2.0869268627645957e-8,-0.001301802931785606,4.1407329810052036e-5,2.08486684580033e-8,-0.0013014297605223135,4.1451908374797514e-5,2.0885812894513818e-8,-0.001301083724057496,4.158098532303902e-5,2.097737756976615e-8,-0.0013007927456693646,4.177756479690925e-5,2.1111607157953057e-8,-0.0013005788777021498,4.201134797256275e-5,2.126826146359011e-8,-0.0013004531008736547,4.224008178027535e-5,2.1419659516259312e-8,-0.0013004095063849311,4.241435176037529e-5,2.1533904163364884e-8,-0.001300421059288809,4.248719684661846e-5,2.1581120022324038e-8,-0.0013004404355749176,4.2427837091928494e-5,2.154224223145945e-8,-0.0013004089398097013,4.223528221728633e-5,2.1417667998620045e-8,-0.001300273032166463,4.194483810430357e-5,2.1231287584532605e-8,-0.0013000028044365167,4.162178844603964e-5,2.1026176296912758e-8,-0.0012996038559836165,4.13426408192214e-5,2.0852193780685487e-8,-0.0012991166051237216,4.117141562699113e-5,2.075042537733095e-8,-0.0012986036072820868,4.11409724530234e-5,2.0741091404972655e-8,-0.00129813093698426,4.1245817779201306e-5,2.0819172199719124e-8,-0.0012977508063343123,4.144686388868798e-5,2.095795336418839e-8,-0.001297490230837804,4.168441992169005e-5,2.1117875653405696e-8,-0.0012973474395914163,4.1894427134593377e-5,2.1257279803455193e-8,-0.001297295439153459,4.2023506126082147e-5,2.1342116234441085e-8,-0.001297290782074011,4.2039616230905444e-5,2.135260920238544e-8,-0.0012972848326498105,4.193654440887813e-5,2.1285844007437435e-8,-0.0012972345579685953,4.173200901824314e-5,2.1154255926592056e-8,-0.0012971103085002236,4.146082617494708e-5,2.0981029477300475e-8,-0.0012968992859630204,4.116578087591e-5,2.0794135694006106e-8,-0.0012966049398672192,4.0888917956883526e-5,2.062073980233298e-8,-0.0012962436295018886,4.066503581169255e-5,2.048307865442981e-8,-0.0012958401889284622,4.051793533458231e-5,2.039611146731544e-8,-0.0012954236654983476,4.045897416475759e-5,2.036662737785466e-8,-0.001295023782419015,4.0486965044612695e-5,2.039320583348045e-8,-0.0012946679941183582,4.058855472756083e-5,2.04665171281949e-8,-0.001294378612670228,4.0738730472340536e-5,2.056977240662803e-8,-0.0012941693814056939,4.0901748941956324e-5,2.0679500965812705e-8,-0.0012940411451917645,4.1033526442706687e-5,2.0767257575044023e-8,-0.0012939771911233996,4.108715604463087e-5,2.0803239961642293e-8,-0.0012939403977219072,4.102298074380838e-5,2.0762689854466084e-8,-0.0012938758566673656,4.082263405184535e-5,2.0634736809638925e-8,-0.0012937224662835883,4.050242606522025e-5,2.04308134609819e-8,-0.0012934330065076513,4.0117530900919203e-5,2.0187204767311665e-8,-0.00129299496709262,3.974958987689844e-5,1.995693470396842e-8,-0.0012924399284722028,3.947942732467301e-5,1.97920270271869e-8,-0.0012918341252307118,3.935776650460108e-5,1.9724509449887175e-8,-0.0012912547182092019,3.938930857514804e-5,1.97562193674393e-8,-0.001290764690673244,3.9536318616132313E-05,1.9861433777957795e-8,-0.0012903973760540492,3.973598386964465e-5,1.999850762256767e-8,-0.001290153512484858,3.992107605315687e-5,2.0123564778314824e-8,-0.0012900074223779303,4.003630507822636e-5,2.0201177921784495e-8,-0.0012899173653183767,4.0047651738485965e-5,2.0210256251888748e-8,-0.001289836338458807,3.9945200597234635e-5,2.0145554957262593e-8,-0.0012897212998023743,3.9741174964429464E-05,2.0016045030261284e-8,-0.0012895399514628268,3.946480109359224e-5,1.984132894245313e-8,-0.001289274703109967,3.915530609271689e-5,1.9647018285539673e-8,-0.0012889236983102278,3.885435148165427e-5,1.9459904493796818e-8,-0.0012884992067051736,3.8599204907948656e-5,1.9303690980758627e-8,-0.0012880241094008248,3.841760919532316e-5,1.919581678542283e-8,-0.0012875274288492854,3.832480054634275e-5,1.9145604099175267e-8,-0.0012870398381923532,3.8322598965528926e-5,1.9153682307136752e-8,-0.001286589752637628,3.840001624621069e-5,1.921238243257403e-8,-0.001286200095515784,3.853470660398659e-5,1.9306731004946026e-8,-0.0012858854886256378,3.86948874374072e-5,1.9415831342562718e-8,-0.001285649499877651,3.8841815281819475e-5,1.9514646939711093e-8,-0.0012854817125208561,3.893347048250045e-5,1.9576511347082232e-8,-0.0012853550995704204,3.893063802338816e-5,1.957702413451274e-8,-0.0012852255062502298,3.880636244566652e-5,1.9499927026725242e-8,-0.0012850362965845573,3.855807120421911e-5,1.9344575221523857e-8,-0.0012847311762881526,3.821819412132976e-5,1.9132471126811794e-8,-0.0012842747415224602,3.785512960173213e-5,1.8907745295762985e-8,-0.0012836727720354248,3.755682902569352e-5,1.8726620068053298e-8,-0.0012829784848701268,3.739895052372073e-5,1.863702330001396e-8,-0.0012822761530718633,3.7413406126274804e-5,1.86584821716486e-8,-0.0012816490975353263,3.7576622715437714e-5,1.8774747376732938e-8,-0.0012811506382189232,3.782352818577273e-5,1.8943030423325083e-8,-0.001280792436308164,3.8075703038799706e-5,1.9112370169816575e-8,-0.0012805506354879592,3.8266803390174146e-5,1.924016463208864e-8,-0.001280380738437669,3.835616719714332e-5,1.9300925603521577e-8,-0.0012802324630361284,3.833113206068958e-5,1.9287565495948508e-8,-0.0012800605197691444,3.820264194508425e-5,1.920823586964087e-8,-0.0012798308757682997,3.799830026151315e-5,1.9081529959526996e-8,-0.001279523586304221,3.775524645033635e-5,1.8931707405877297e-8,-0.0012791333774328948,3.751366233471992e-5,1.8784512978711527e-8,-0.0012786686262423056,3.731102412992637e-5,1.866362274807214e-8,-0.001278148993439162,3.717726455085912e-5,1.858772206348688e-8,-0.001277601942460214,3.7131143654458575e-5,1.8568311190285357e-8,-0.001277058498171101,3.717813474632904e-5,1.860839408251708e-8,-0.0012765487555219646,3.7310038774287194e-5,1.8702216632045073e-8,-0.0012760977084929888,3.750624505138479e-5,1.8836075192321827e-8,-0.0012757217769639956,3.773626898786361e-5,1.8990020553034313e-8,-0.0012754261510291623,3.796321117292025e-5,1.9140234836138346e-8,-0.0012752029370164196,3.814797161205375e-5,1.92619071682081e-8,-0.0012750300928311285,3.825433491231409e-5,1.9332571089335484e-8,-0.0012748715426223701,3.825537269909844e-5,1.933609650898041e-8,-0.0012746797344262949,3.814138317428424e-5,1.926746861138821e-8,-0.0012744025805871105,3.7928235466975745e-5,1.9137729803848053e-8,-0.0012739963106319753,3.76626292022581e-5,1.897701998328715e-8,-0.0012734431088101711,3.741827327675125e-5,1.8832033009774208e-8,-0.0012727667106644165,3.7277449564075795e-5,1.875439150470419e-8,-0.0012720341118107905,3.730026444876515e-5,1.8781318347441222e-8,-0.0012713356167803904,3.749648014380484e-5,1.8917966913490027e-8,-0.0012707503868975216,3.7818967997163176e-5,1.913345694695096e-8,-0.0012703173742792029,3.818460780063819e-5,1.937431495323869e-8,-0.0012700276843224567,3.850870965846999e-5,1.958648929745315e-8,-0.0012698377681131297,3.873234768920965e-5,1.9732821725893906e-8,-0.0012696906468235986,3.883226562099348e-5,1.9799315570624595e-8,-0.0012695333572401244,3.881646913695297e-5,1.9792123553590806e-8,-0.0012693264687479164,3.8713735516634753e-5,1.9730552119127156e-8,-0.0012690470332673868,3.856312435152506e-5,1.9640099461015192e-8,-0.0012686878191508922,3.840594630060172e-5,1.9547213377593627E-08,-0.0012682550883168057,3.8280251328920796e-5,1.9475836828836382e-8,-0.0012677659821863632,3.8216972883763434e-5,1.9445125675948716e-8,-0.0012672456478990807,3.823702573972687e-5,1.9467782522189376e-8,-0.0012667239315270157,3.834915450270301e-5,1.954879813655444e-8,-0.0012662315252516165,3.8548712365379255e-5,1.9684700622829385e-8,-0.0012657956741872701,3.881779556352557e-5,1.9863631777743846E-08,-0.0012654358895180374,3.9127111421915734e-5,2.0066562567351532e-8,-0.0012651603219259492,3.943960149495701e-5,2.0269701099621573e-8,-0.0012649633922718845,3.97155188282893e-5,2.044787773900412e-8,-0.0012648251191054683,3.991847051986315e-5,2.0578512385264233e-8,-0.0012647124020133814,4.002181530954318e-5,2.0645672703362345e-8,-0.0012645824423290432,4.0014854271467307e-5,2.0643806946391964e-8,-0.001264388687972703,3.99081829052254e-5,2.0580779083148893e-8,-0.001264089784429187,3.973682895821391e-5,2.0479457047750557e-8,-0.0012636612589438738,3.955863316563664e-5,2.0376410433125773e-8,-0.001263107692385635,3.944474943991824e-5,2.031587286383709e-8,-0.0012624700916807313,3.9460627398303827e-5,2.0337965483915675e-8,-0.0012618210646095807,3.9641206055020366e-5,2.0463436185732815e-8,-0.0012612438544760331,3.997186027742948e-5,2.0682014530823786e-8,-0.0012608019231333165,4.03889145758586e-5,2.095293879084057e-8,-0.001260515403514942,4.080331509500292e-5,2.1219900523197546e-8,-0.0012603580066779792,4.1134769690694334e-5,2.143251915066937e-8,-0.0012602736669382706,4.133709908764442e-5,2.156229199212994e-8,-0.0012602001674625438,4.140455790552599e-5,2.1606510199617428e-8,-0.0012600871138250655,4.13627425982667e-5,2.1582334626039323e-8,-0.0012599037723692542,4.125395520943257e-5,2.1517286350261602e-8,-0.001259639059405887,4.112448324373034e-5,2.1440993984703374e-8,-0.0012592978126801822,4.1016374406620794e-5,2.1379934028673295e-8,-0.0012588963729254486,4.096310517242658e-5,2.1354792900167895e-8,-0.0012584587728795547,4.0987516848376617e-5,2.13793433801656e-8,-0.0012580135545439072,4.110070043061135e-5,2.145990419081642e-8,-0.001257590729174874,4.130124851631068e-5,2.1594960240885516e-8,-0.0012572184068382751,4.1574933436424366e-5,2.1774990856265992e-8,-0.0012569188758809874,4.1895365866185666e-5,2.198290829395347e-8,-0.0012567044061644376,4.2226400284913416e-5,2.2195638913385633e-8,-0.0012565736154616957,4.252676325544257e-5,2.2387154231576545e-8,-0.0012565095347204847,4.275674007069808e-5,2.2532803702984725e-8,-0.001256480413149145,4.2886024148070224e-5,2.261430451888185e-8,-0.0012564438185601924,4.290116127527485e-5,2.262433259898739e-8,-0.0012563537977570908,4.2810748157597085e-5,2.256953566001536e-8,-0.0012561701266762151,4.264685474788228e-5,2.2471059965738813e-8,-0.001255868216795208,4.246161786198218e-5,2.2362052663867524e-8,-0.00125544775922725,4.2318356345838705e-5,2.2281882031267264e-8,-0.0012549374800614776,4.22774052795677e-5,2.226731056823057e-8,-0.0012543928884045982,4.237873413357958e-5,2.2341924508824796e-8,-0.0012538846382849707,4.262624486160383e-5,2.2506767656905367e-8,-0.0012534783871114205,4.2981135163356555e-5,2.2736596297391955e-8,-0.0012532126561929605,4.3370682260662835e-5,2.2985558206766268e-8,-0.0012530852538086268,4.3711798272939364e-5,2.3201876301994538e-8,-0.0012530559769681426,4.393918260812166e-5,2.3345305957001018e-8,-0.0012530638749481211,4.4024288239515566e-5,2.3398863033464984e-8,-0.0012530490271740113,4.3977672971138264e-5,2.3370162208987406e-8,-0.0012529684380834512,4.383778762251783e-5,2.3284209882351702e-8,-0.0012528018888721966,4.365500575092296e-5,2.317318439808869e-8,-0.001252549834499636,4.34782797526141e-5,2.3067930135885604e-8,-0.0012522276998212633,4.334721846604825e-5,2.2992993745712078e-8,-0.0012518599576908918,4.3288848879161106e-5,2.2964722563118695e-8,-0.0012514754687159037,4.331706400168195e-5,2.299109201556656e-8,-0.0012511041057524219,4.343305080609753e-5,2.3072114029472213e-8,-0.0012507740089569535,4.362583037811218e-5,2.3200256491004583e-8,-0.001250508740600051,4.387284960062057e-5,2.336086149484763e-8,-0.0012503238892904954,4.414121645053139e-5,2.353297738143989e-8,-0.0012502232383400124,4.439057639247119e-5,2.3691245534858623e-8,-0.0012501953913701654,4.4578519987771495e-5,2.380937649691334e-8,-0.0012502124466062187,4.466862199857083e-5,2.386522426953918e-8,-0.0012502324655709908,4.463985453790723e-5,2.38466230351851e-8,-0.0012502066668911443,4.449465916127025e-5,2.3756267679178933e-8,-0.0012500904907569506,4.4262301368479445e-5,2.3613540810084584e-8,-0.0012498556988007213,4.3995081325114545e-5,2.3451824758728542e-8,-0.0012494996714732477,4.375734202677175e-5,2.3311357072906797e-8,-0.0012490486343557058,4.360978994232384e-5,2.3229326501100328e-8,-0.0012485532799728183,4.359328030608507e-5,2.3229896399582473e-8,-0.001248077323762565,4.3716595091107244e-5,2.331696995481848e-8,-0.0012476814413027032,4.395208150458591e-5,2.3471965518926978e-8,-0.0012474066926813987,4.424143994728845e-5,2.3657815110514976e-8,-0.001247262641945451,4.4511219507711075e-5,2.3828756487483382e-8,-0.0012472248755787513,4.469382181566311e-5,2.3943301525145774e-8,-0.0012472435198697964,4.474664503382738e-5,2.3975912178036033e-8,-0.001247259506344416,4.466205719091103e-5,2.3922954185837815e-8,-0.0012472217473297215,4.446513739596869e-5,2.3801066644975018e-8,-0.0012470987187946957,4.420202198632878e-5,2.3639715221988536e-8,-0.0012468817729012385,4.392519162060175e-5,2.3471897838937096e-8,-0.0012465817445801888,4.368137901444268e-5,2.3326586331146017e-8,-0.0012462224178688196,4.3504603084736476e-5,2.3224476425034505e-8,-0.0012458339394664786,4.3413868956406416e-5,2.317671064191687e-8,-0.0012454477067935401,4.341371210977519e-5,2.318536732956266e-8,-0.001245092875503066,4.349582099726864e-5,2.3244572533892913e-8,-0.001244793861427751,4.364070138997217e-5,2.334159650208275e-8,-0.0012445680145702208,4.381919330597018e-5,2.3457855646996076e-8,-0.0012444228840729505,4.399437802864513e-5,2.35701808197754e-8,-0.0012443530695937283,4.4124913953168016e-5,2.3652983748257247e-8,-0.0012443375127046577,4.4170905959475854e-5,2.36819578137255e-8,-0.001244339050323051,4.410267397222573e-5,2.3639490947179656e-8,-0.0012443085409083597,4.391102098493597e-5,2.352090842966235e-8,-0.0012441949428326805,4.361529559426061e-5,2.3339274923289387e-8,-0.0012439599109511782,4.3264248999509696e-5,2.3125688607710063e-8,-0.0012435919172900148,4.292632418466513e-5,2.2923014333021052e-8,-0.0012431132807987672,4.2670863701421686e-5,2.2774032688701237e-8,-0.0012425758812366372,4.2547004754978845e-5,2.2708303443627026e-8,-0.001242046681417017,4.256875652229016e-5,2.273310098467663e-8,-0.0012415887940260054,4.2711639999148036e-5,2.2831736522023835e-8,-0.0012412448848635037,4.292095325018456e-5,2.2969151481539737e-8,-0.0012410276081992223,4.312771971755229e-5,2.310214052847942e-8,-0.0012409187405165644,4.3266945611404475e-5,2.3190749585606232e-8,-0.001240876179833917,4.329319757536537e-5,2.3207763152117412e-8,-0.0012408462077011405,4.3189822733976015e-5,2.314410023143346e-8,-0.001240777320283415,4.297005585476495e-5,2.3009154427995445e-8,-0.0012406317702474867,4.267059575677806e-5,2.2826536022629307e-8,-0.0012403919863629748,4.234042689642282e-5,2.26269926746929e-8,-0.0012400610415698615,4.2028799199970334e-5,2.2440951581700866e-8,-0.0012396584394359302,4.1775753442481906e-5,2.229275950494211e-8,-0.001239213642370792,4.160681735016447e-5,2.2197568374873713e-8,-0.001238759622997134,4.153164993599383e-5,2.21606545642313e-8,-0.0012383277669794706,4.154532626799311e-5,2.217831390256571e-8,-0.0012379443945620973,4.163077699858882e-5,2.223941511624005e-8,-0.0012376284470835346,4.17613701854737e-5,2.2327028899360917e-8,-0.0012373896362990083,4.190335157601163e-5,2.2420000164546246e-8,-0.001237226498897373,4.201852746249583e-5,2.2494706995441768e-8,-0.0012371242703294284,4.2068080603654364e-5,2.2527507113518604e-8,-0.0012370533291036505,4.201858038815096e-5,2.249845761104157e-8,-0.001236970018387961,4.18506164139745e-5,2.239652980094868e-8,-0.0012368223070618539,4.1568658962976625e-5,2.2225481522563593e-8,-0.0012365619116138991,4.120801712255095e-5,2.2007914498811416e-8,-0.0012361611416612153,4.083280694899721e-5,2.1783828379414836e-8,-0.001235627714205694,4.052073423663693e-5,2.1601104914924004e-8,-0.0012350082702082678,4.0337708897671565e-5,2.149979267276202e-8,-0.0012343757042772982,4.031356310619789e-5,2.1497194944095898e-8,-0.0012338050721628741,4.043155020851939e-5,2.1581628688838263e-8,-0.001233349834870539,4.063630930677973e-5,2.1717708568439122e-8,-0.0012330286624901638,4.0854394434720134e-5,2.1859385815913868e-8,-0.001232825543872876,4.1016780529853954e-5,2.1964061307544442e-8,-0.0012326994687433222,4.1075328421856106e-5,2.20027389188401e-8,-0.001232597984556413,4.1010377237678075e-5,2.196447509602127e-8,-0.0012324701701386766,4.083038763729262e-5,2.1855784862297425e-8,-0.0012322765508626758,4.0566046838917725e-5,2.1696628675659008e-8,-0.0012319949600370919,4.026131873137667e-5,2.151464212796346e-8,-0.0012316222127142264,3.996359807215556e-5,2.1339009160521587e-8,-0.0012311720726316338,3.971485937041825e-5,2.1195127901571155e-8,-0.001230670573013148,3.954524762662862e-5,2.1100877649413684e-8,-0.0012301501032358588,3.946977464651513e-5,2.1064790494578928e-8,-0.0012296436170803153,3.9487963552311815e-5,2.108595595697376e-8,-0.0012291799191749856,3.958568949318732e-5,2.1155185653788322e-8,-0.0012287803742935324,3.973818698101526e-5,2.1256853700710867e-8,-0.001228456809047748,3.991337515449703e-5,2.1370956879184295e-8,-0.0012282101383242943,4.007518264093764e-5,2.1475236423481508e-8,-0.0012280293349605576,4.0187061533075706e-5,2.1547450730279715e-8,-0.0012278906587169442,4.0216265386799466e-5,2.1568075140606426e-8,-0.001227757733952711,4.0139660658889306e-5,2.152381649965794e-8,-0.001227584040852701,3.995131561109933e-5,2.141206714008766e-8,-0.0012273199557392438,3.9670437193476325e-5,2.1245481814044025e-8,-0.0012269256617048919,3.934568255249432e-5,2.1054357934419238e-8,-0.001226387988600605,3.9049849819512705e-5,2.088324803621528e-8,-0.0012257337792927004,3.886073981427376e-5,2.077925099285005e-8,-0.001225029176986983,3.8832259555441034e-5,2.0774438780732722e-8,-0.0012243597146831978,3.897014608672804e-5,2.087118383561181e-8,-0.001223799174185458,3.922790438935534e-5,2.1039910874573118e-8,-0.0012233842237546633,3.952612757691313e-5,2.123118242844517e-8,-0.001223107335217403,3.9782946538246464e-5,2.139456934167179e-8,-0.0012229273220081428,3.993907780657064e-5,2.1494114292522025e-8,-0.001222787747765819,3.996887325239496e-5,2.1515041468992588e-8,-0.0012226337779387417,3.987869845089384e-5,2.1462498186417195e-8,-0.0012224231672501788,3.9698352797038394e-5,2.135591073507243e-8,-0.001222131287192134,3.94706075535104e-5,2.1222223071618265e-8,-0.0012217517999359017,3.924165377627985e-5,2.1089871554669243e-8,-0.0012212945943425393,3.905340977839935e-5,2.0984126176207197e-8,-0.0012207820344604945,3.8937868022761935e-5,2.0923847255017387e-8,-0.0012202442110411317,3.891356765329418e-5,2.0919587003276005e-8,-0.0012197138193019857,3.898419985757117e-5,2.0972925719657997e-8,-0.0012192212575737466,3.913919956043711e-5,2.1076902982625034e-8,-0.0012187904880345962,3.9356035455342134e-5,2.1217396945348294e-8,-0.001218436045934365,3.960367962125383e-5,2.1375213106972125e-8,-0.00121816125440768,3.9846620466140236e-5,2.1528562534707792e-8,-0.0012179574526165029,4.004903399140244e-5,2.165570613461297e-8,-0.0012178040605647724,4.0179078031285165e-5,2.1737684879836926e-8,-0.001217669467291421,4.021348370120589e-5,2.1761144819940345e-8,-0.0012175131332450237,4.014272182328031e-5,2.1721351070588032e-8,-0.001217289990042325,3.997662689165655e-5,2.162532349147562e-8,-0.0012169585457825218,3.9749007528304005e-5,2.1494297600574853e-8,-0.0012164931847068905,3.9517836703297245e-5,2.136358703249228e-8,-0.0012158983378917096,3.9356329110915773e-5,2.1277115324960004e-8,-0.0012152176438466392,3.9332104759699913E-05,2.127493647531436e-8,-0.001214528479586985,3.947928991470707e-5,2.1376600643727462e-8,-0.0012139177363669367,3.9778311663362115e-5,2.1569180758206194e-8,-0.0012134484162272517,4.015900048914238e-5,2.180933946924029e-8,-0.0012131363021741985,4.052837642935356e-5,2.2040280902569133e-8,-0.0012129497831343294,4.080665261167639e-5,2.2213672818770073e-8,-0.0012128291159121656,4.095125233841926e-5,2.230428148992462e-8,-0.001212710628911282,4.096082546243361e-5,2.2312340353820234e-8,-0.0012125440419645064,4.0864936103992574e-5,2.2257017392004202e-8,-0.0012122998065612566,4.070927702557695e-5,2.2167052698862267e-8,-0.001211969092054254,4.054291261138361e-5,2.207270204179144e-8,-0.0012115601294701622,4.04096307802744e-5,2.2000393390250897e-8,-0.0012110935055385707,4.034290695442932e-5,2.1969806882960636e-8,-0.001210597514896922,4.0363263803066746e-5,2.1992540281281542e-8,-0.001210103734529621,4.047720018381726e-5,2.2071717239761007e-8,-0.0012096427900898502,4.0677387217859966e-5,2.22022573473533e-8,-0.0012092403935229314,4.094407090176532e-5,2.237175494917936e-8,-0.0012089138646246408,4.124773087837309e-5,2.2562054742508997e-8,-0.001208669509931094,4.155294488543246e-5,2.2751575294808985e-8,-0.0012085012343950414,4.1823087158483395e-5,2.2918206290301382e-8,-0.0012083905541689021,4.20253509279023e-5,2.304245225579731e-8,-0.0012083080279941285,4.213570362400274e-5,2.3110503419034456e-8,-0.0012082161114372763,4.2143459888724324e-5,2.3116949841108062e-8,-0.0012080735324706796,4.2055159230597596e-5,2.3066900585552403e-8,-0.001207841533426535,4.189723091537656e-5,2.297724001603263e-8,-0.0012074923383279116,4.171613868549196e-5,2.2876363669851336e-8,-0.001207019283053891,4.157362669411139e-5,2.2801120538061767e-8,-0.0012064459189305014,4.1534493783767346e-5,2.2789521758592166e-8,-0.0012058286024298984,4.164656524482071e-5,2.2869009240234377e-8,-0.0012052460554162017,4.19184087749905e-5,2.3043477200400544e-8,-0.0012047743940046401,4.2307229374438395e-5,2.3286316882609802e-8,-0.0012044572585227797,4.272895499439604e-5,2.3546579750409415e-8,-0.001204288381331058,4.308962693418823e-5,2.376779519103741e-8,-0.0012042176630236775,4.332107815521141e-5,2.390938507508682e-8,-0.0012041753802073372,4.340093341660907e-5,2.3958706867713977e-8,-0.00120409843142815,4.335014281596996e-5,2.3929491995290315e-8,-0.0012039461046134032,4.3216266495513626e-5,2.3851510393422998e-8,-0.0012037033879847602,4.305483536435831e-5,2.3758982441867673e-8,-0.001203376539335363,4.291599030590616e-5,2.368228317218689e-8,-0.00120298613557427,4.283755592078561e-5,2.364376268900528e-8,-0.00120256066507784,4.2842730196850536e-5,2.365655954004364e-8,-0.0012021315896690958,4.29401323049733e-5,2.3724918753893763e-8,-0.0012017295357681474,4.3124764351869256e-5,2.384500705422323e-8,-0.0012013810188355309,4.3379445958178134e-5,2.400589014719376e-8,-0.0012011053959982453,4.367684303151363e-5,2.4190760318183176e-8,-0.0012009120711434845,4.3982426851927915e-5,2.4378686124360526e-8,-0.001200798320179096,4.4258666524398955e-5,2.4547135559008024e-8,-0.0012007483813156155,4.447035815567847e-5,2.4675237441635286e-8,-0.0012007344048218429,4.45904789956841e-5,2.4747373111654414e-8,-0.0012007195396916456,4.4605667043112055E-05,2.475647427648304e-8,-0.0012006630679124704,4.4520319606676825e-5,2.4706349244549025e-8,-0.0012005271433299393,4.435834252862902e-5,2.4612444809990292e-8,-0.0012002844344340745,4.416178423355356e-5,2.450065938028214e-8,-0.0011999257549066937,4.39856842762662e-5,2.4403951995426074e-8,-0.0011994662184232547,4.3888471317910234e-5,2.435650342589999e-8,-0.001198947460842372,4.3917923813857226e-5,2.43855173915342e-8,-0.001198432684587654,4.409482178445086e-5,2.4501884310528832e-8,-0.0011979921332492878,4.43998509534339e-5,2.469284335350204e-8,-0.00119768078598594,4.4772044938470945e-5,2.492136091235081e-8,-0.0011975168459692923,4.512476493318901e-5,2.5135693210741254e-8,-0.00119747326559844,4.53756385533257e-5,2.528710231716238e-8,-0.0011974888649364393,4.547604253094459e-5,2.5347319618533324e-8,-0.0011974930862349044,4.542451975687877e-5,2.5316491092253453e-8,-0.0011974302262546881,4.525952548655604e-5,2.5218719541367353e-8,-0.0011972721728209824,4.5039793706352555e-5,2.509006550443868e-8,-0.0011970183063790395,4.48245155389913e-5,2.4966396418741908e-8,-0.001196687932279745,4.4660550904328974e-5,2.487559033145641e-8,-0.0011963111623788396,4.457738285834904e-5,2.4834604037411308e-8,-0.0011959215436754737,4.45871920184613e-5,2.4849769736576936e-8,-0.0011955511692190652,4.468712727908596e-5,2.4918432734679642e-8,-0.0011952275920148667,4.486193679281758e-5,2.5030717037665653e-8,-0.001194971551310585,4.508639373150898e-5,2.5171047327290172e-8,-0.001194794863314542,4.5327777567539424e-5,2.5319623085596163e-8,-0.001194698341899172,4.554901617532855e-5,2.5454274898017947e-8,-0.0011946701458042791,4.5713081220382614e-5,2.555310251854561e-8,-0.0011946854231435274,4.5788787339589856e-5,2.5597980508971714e-8,-0.0011947082714650892,4.575734391539159e-5,2.5578493326096783e-8,-0.0011946966519119835,4.561819225984636e-5,2.5495358009355167e-8,-0.0011946100335258174,4.539218001394653e-5,2.536213072497259e-8,-0.0011944184455051122,4.512031317912244e-5,2.5204163446924352e-8,-0.0011941107653257608,4.485734384224478e-5,2.5054453515492776e-8,-0.0011936999083235803,4.466088478508766e-5,2.4946937452023213e-8,-0.0011932230592092813,4.457796164782929e-5,2.4908499047797812e-8,-0.001192735881163747,4.463180004644925e-5,2.4951402925395812e-8,-0.0011923007264965835,4.481237616870531e-5,2.506816181625162e-8,-0.001191970530689217,4.507461064861558e-5,2.523093820360962e-8,-0.0011917724140860335,4.5347229185161454e-5,2.5397066980609755e-8,-0.0011916972032087528,4.5552150560644986e-5,2.552053976524705e-8,-0.0011917008223672682,4.5628853227269786e-5,2.55662585680403e-8,-0.001191718836140086,4.55536438037028e-5,2.5521241678494558e-8,-0.0011916882079971906,4.534483429463704e-5,2.5397506076360736e-8,-0.0011915661764232738,4.50523352358896e-5,2.52256885925892e-8,-0.0011913387387294007,4.47385355732246e-5,2.504346293478613e-8,-0.0011910180546011024,4.446011631860293e-5,2.4884567965759092e-8,-0.0011906333941084394,4.425692301702829e-5,2.4772196056940904e-8,-0.0011902211184680275,4.414860982271032e-5,2.4717178867113547e-8,-0.0011898169790774708,4.4136455261757274e-5,2.4719329452121577e-8,-0.0011894514485054754,4.420725000515381e-5,2.4769977404092045e-8,-0.0011891472970888017,4.43372203473938e-5,2.4854416724191735e-8,-0.0011889182539292847,4.449528806773453e-5,2.4953861754942293e-8,-0.0011887678749798924,4.464592966057503e-5,2.504712463555681e-8,-0.0011886883030289687,4.4752380198887884e-5,2.5112510632544797e-8,-0.0011886592771498138,4.478098874931083e-5,2.5130424449580425e-8,-0.0011886483992062577,4.4707117457076194e-5,2.5086889829383304e-8,-0.0011886140329250244,4.4522010180780784e-5,2.4977592415005244e-8,-0.0011885119078034235,4.4238713784012066e-5,2.4811273251672534e-8,-0.0011883051844906306,4.3894051675223444e-5,2.461069041472246e-8,-0.0011879756183442926,4.354386275480496e-5,2.4409531085824178e-8,-0.0011875317045031677,4.3250911754683235e-5,2.4244998266980886e-8,-0.001187009814984017,4.306830808202916e-5,2.4147865942933328e-8,-0.0011864667588603476,4.302388062774488e-5,2.4133330210664937e-8,-0.0011859656180111609,4.3111034611001064e-5,2.4195943412766552e-8,-0.0011855592107146609,4.328925296709795e-5,2.4310387221332328e-8,-0.0011852761111206852,4.349413359054941e-5,2.443782423047731e-8,-0.0011851131455521931,4.3654131747047644e-5,2.4535986395746288e-8,-0.0011850365116463047,4.370946428713365e-5,2.4570271546609728e-8,-0.0011849914632903148,4.362784368851426e-5,2.4522773768495008e-8,-0.001184917896100419,4.341215487751708e-5,2.43964861556252e-8,-0.0011847668283073867,4.3097519747167916e-5,2.4213256739576758e-8,-0.001184512183165127,4.273915270154866e-5,2.400637699709233e-8,-0.001184154359433377,4.239606712181469e-5,2.381082880477647e-8,-0.001183715829325232,4.211673537541401e-5,2.3654834718410355e-8,-0.001183232091457753,4.193072848064575e-5,2.355508585492585e-8,-0.001182742076052658,4.184692919527811e-5,2.351593181722576e-8,-0.001182280783554334,4.185637277082278e-5,2.3531280291149167e-8,-0.0011818749650736491,4.193705913158789e-5,2.3587563717348847e-8,-0.0011815412371566454,4.20587459208501e-5,2.3666591547139997e-8,-0.001181285518418681,4.218688550045602e-5,2.374784651401943e-8,-0.0011811028444095974,4.2285853886151184e-5,2.381037385561812e-8,-0.001180977123076948,4.232217251513254e-5,2.3834703066651765e-8,-0.0011808810539391222,4.2268560697046846e-5,2.3805269882627502e-8,-0.0011807771612472478,4.2109361969074505e-5,2.3713602572318883e-8,-0.0011806214602274067,4.1846957049957275e-5,2.356200196449372e-8,-0.0011803711677501327,4.150714518977967e-5,2.3366529209186637e-8,-0.0011799963986054275,4.113978509884284e-5,2.3157162420999488e-8,-0.0011794927933482826,4.08108363408142e-5,2.2972909369344754e-8,-0.0011788890049142986,4.058504354233647e-5,2.2851491515976213e-8,-0.0011782430294203484,4.050438512482597e-5,2.2816671906510717e-8,-0.0011776263052778516,4.0571991173592686e-5,2.2868981508891815e-8,-0.0011771016155169122,4.074982996867079e-5,2.2984703383283737e-8,-0.0011767044632477951,4.097122380197114e-5,2.3123630234264177e-8,-0.0011764349839248737,4.1161829736862925e-5,2.3241707139593455e-8,-0.0011762614801303043,4.1260299791107996e-5,2.330328303434297e-8,-0.0011761320404088328,4.1232336783918625e-5,2.328924297558214e-8,-0.0011759893133244327,4.1075838938516295e-5,2.3199711124094704e-8,-0.0011757842580515552,4.081779203779472e-5,2.3051819147004552e-8,-0.001175486057786376,4.050513963720658e-5,2.2873984543674025e-8,-0.0011750866908770193,4.0192525827399625e-5,2.2698514425147638e-8,-0.0011745998913217442,3.9930000443378806e-5,2.2554401861589946e-8,-0.0011740555181366963,3.975350915748105e-5,2.2461942074838184e-8,-0.0011734914447389271,3.967996159531561e-5,2.2430123462058758e-8,-0.001172945410878914,3.970705295686038e-5,2.245677720924922e-8,-0.0011724486794790487,3.981662159239835e-5,2.2530685939862905e-8,-0.0011720222605774908,3.997974255206267e-5,2.263458529327139e-8,-0.0011716754580197422,4.0161947727554296e-5,2.274816904236688e-8,-0.0011714059108263474,4.032766224367516e-5,2.285064391621753e-8,-0.0011712002787532773,4.044378850159482e-5,2.2922839703133115e-8,-0.001171035100466492,4.048293650443117e-5,2.2949153547451752e-8,-0.0011708778846540614,4.042697766162125e-5,2.2919658210313572e-8,-0.0011706891457959967,4.0271429475899425e-5,2.2832600750891778e-8,-0.001170426728995793,4.0030416719605716e-5,2.269711830719015e-8,-0.0011700538042031948,3.9740414742010276e-5,2.253517245414926e-8,-0.0011695506069301434,3.945916078722506e-5,2.2380689483545792e-8,-0.0011689268944945577,3.9255517922141815e-5,2.227353935744273e-8,-0.001168228173677312,3.918909798715985e-5,2.224769728531718e-8,-0.0011675279781217165,3.9285907063139966e-5,2.2317220439852915e-8,-0.0011669049542857158,3.952322670802093e-5,2.24676871654407e-8,-0.0011664145207980038,3.9834885125080155e-5,2.265953681114611e-8,-0.001166070295452867,4.013563731944959e-5,2.2842517129925196e-8,-0.0011658440641923867,4.035108613749354e-5,2.2973299450432576e-8,-0.0011656808972777184,4.043846993678506e-5,2.302764914878378e-8,-0.0011655191438936243,4.039246802510346e-5,2.300366653105076e-8,-0.0011653067613803536,4.023909875147127e-5,2.291788321046429e-8,-0.001165010689103841,4.002390781978695e-5,2.2797942341975254e-8,-0.0011646197556137458,3.979940906101893e-5,2.2674938420648966e-8,-0.0011641429633779334,3.961443280877213e-5,2.2577103601577477e-8,-0.0011636049134929856,3.950632417993853e-5,2.252541402741315e-8,-0.0011630396411959254,3.9496218494349576e-5,2.253115281543781e-8,-0.001162483900516477,3.95874667786907e-5,2.2595320378682432e-8,-0.0011619709327954436,3.976699600781008e-5,2.2709638135691125e-8,-0.0011615255979191684,4.000893838449559e-5,2.2858712233979922e-8,-0.0011611613858706039,4.0279582776409567e-5,2.3022849008527116e-8,-0.001160879376169587,4.054263299169933e-5,2.3181024514051384e-8,-0.0011606687592218374,4.076394687408465e-5,2.3313608208272293e-8,-0.0011605083240079387,4.09154288041749e-5,2.3404666156265128e-8,-0.00116036847554564,4.097823517679709e-5,2.34438834621506e-8,-0.0011602136824594566,4.0945659648512586e-5,2.3428227761797474e-8,-0.0011600057215318002,4.0826012397539306e-5,2.3363471925632195e-8,-0.0011597086232655231,4.0645264473458956e-5,2.326545539839303e-8,-0.0011592962457193116,4.0447999006798314e-5,2.3160337368834338e-8,-0.00115876229853727,4.0293821820255384e-5,2.3082332980724006e-8,-0.0011581301558147067,4.0245920350732926e-5,2.3067127381392428e-8,-0.0011574563121098651,4.035081622828792e-5,2.3140425634618856e-8,-0.0011568199270357543,4.061526212816023e-5,2.3304961265381497e-8,-0.0011562968471505665,4.099409631845051e-5,2.353376588241085e-8,-0.0011559290458727804,4.140161770840252e-5,2.3776854904296303e-8,-0.0011557078806939019,4.1744238983237644e-5,2.3980097768470524e-8,-0.0011555814912751524,4.195588110422897e-5,2.4105697188319998E-08,-0.001155479481195814,4.201658493401853e-5,2.4142985129680127e-8,-0.00115533863075793,4.194919447273282e-5,2.4106395513946268e-8,-0.0011551182129401877,4.1802901903976074e-5,2.4025610864818883e-8,-0.0011548035981328402,4.163510488935334e-5,2.3934641492285587e-8,-0.0011544024679921467,4.149790402491649e-5,2.3863731188845464e-8,-0.0011539381598193543,4.143037373269924e-5,2.3834886083816383e-8,-0.0011534428504190312,4.145529592249755e-5,2.3860242372633465e-8,-0.0011529515734318722,4.157867605802834e-5,2.3942156152824156e-8,-0.001152497126030711,4.17910018793201e-5,2.407424330087287e-8,-0.00115210581430915,4.2069853360416185e-5,2.4243037050196697e-8,-0.001151794185245135,4.238365328686831e-5,2.4430139497299415e-8,-0.0011515669930675036,4.269628302794372e-5,2.461478437537122e-8,-0.0011514166348674099,4.2972125399724006e-5,2.4776661433350763e-8,-0.0011513241096236361,4.318091082678523e-5,2.4898702175336794e-8,-0.0011512612721551612,4.330181717597658e-5,2.496949457208967e-8,-0.001151194039557355,4.332656629776271e-5,2.4985098203453446e-8,-0.0011510862887999457,4.326145348232724e-5,2.4950132422663092e-8,-0.0011509043845628019,4.312830423117919e-5,2.4878096818187747e-8,-0.0011506225888506414,4.296414251839801e-5,2.4790856099194497e-8,-0.0011502295873348479,4.281860836006933e-5,2.4716871495239724e-8,-0.0011497354598191344,4.27473669523015e-5,2.4687324428481763e-8,-0.0011491767132249047,4.27998987093043e-5,2.4729297172923822e-8,-0.0011486149745644995,4.300208635109734e-5,2.4856210146960896e-8,-0.0011481242788471762,4.333890754543513e-5,2.505836780419132e-8,-0.0011477663805973333,4.37484335258334e-5,2.529978271595454e-8,-0.0011475638693054652,4.413754488074797e-5,2.552713565537854e-8,-0.0011474880690233208,4.441675095791563e-5,2.5689536506059154e-8,-0.0011474716437174161,4.4535329714636256e-5,2.5758576446798924e-8,-0.0011474381423005444,4.4496153607781065e-5,2.573686319342581e-8,-0.0011473298248947472,4.434525522139947e-5,2.5651963688180006e-8,-0.0011471206519927625,4.4148021131686344e-5,2.5542431090685233e-8,-0.0011468143867924144,4.396712744434881e-5,2.5444745012451112e-8,-0.001146435178096694,4.384958556407789e-5,2.538566338712817e-8,-0.0011460173053052653,4.382244135856911e-5,2.537984964690841e-8,-0.0011455972066733823,4.389369052636168e-5,2.543072424927479e-8,-0.001145208205189756,4.4055310810386594e-5,2.553258147049571e-8,-0.0011448771116926027,4.4286732802865605e-5,2.5672846892049696e-8,-0.001144621838537778,4.455834866317327e-5,2.5834176207532318e-8,-0.0011444496596464482,4.483524010238264e-5,2.5996533958276677e-8,-0.0011443561757723407,4.508136367107901e-5,2.6139484084071172e-8,-0.001144325302176957,4.526422796836885e-5,2.624479996609313e-8,-0.0011443306796744088,4.5359678801102835e-5,2.629920696942144e-8,-0.001144338684074093,4.535607232962796e-5,2.6296805202445227e-8,-0.0011443128443530714,4.525711697688811e-5,2.6240674007741413e-8,-0.0011442192204715602,4.5082805045375516e-5,2.6143256225398415e-8,-0.0011440321422607781,4.4868033997148654e-5,2.6025290536327584e-8,-0.0011437397009143968,4.465876200865301e-5,2.5913293776335838e-8,-0.0011433483936894827,4.450556201387472e-5,2.5835666573269417e-8,-0.0011428859132346458,4.4454301330230345e-5,2.5817407374967364e-8,-0.0011424002463549068,4.4534205124580296e-5,2.587362598157788e-8,-0.0011419527122034946,4.474530750720313e-5,2.600289980431649e-8,-0.0011416033368196802,4.505002810376823e-5,2.618294554588382e-8,-0.001141390428908636,4.5375931822066494e-5,2.6372385764556846e-8,-0.0011413123883100827,4.5634818511907473e-5,2.6521473534591453e-8,-0.001141323589395823,4.5754058078499044e-5,2.6589641295518906e-8,-0.0011413505127724332,4.570482861131677e-5,2.65614039044391e-8,-0.0011413207093381398,4.5510745451041515e-5,2.6451239643199213e-8,-0.001141188094617734,4.523323032317512e-5,2.6295158823665544e-8,-0.0011409425267060696,4.494512245552072e-5,2.613539055975473e-8,-0.0011406039242835295,4.470782444666231e-5,2.6007055239340012e-8,-0.001140209199720666,4.455976514490526e-5,2.5931497221064563e-8,-0.0011397998215520568,4.451513360626569e-5,2.591575701768682e-8,-0.001139413450043509,4.456814837601221e-5,2.595536246540539e-8,-0.0011390795966643849,4.469876670368622e-5,2.60379203690528e-8,-0.0011388178217883774,4.487777100093782e-5,2.614620234117578e-8,-0.001138637029323737,4.507087406977781e-5,2.6260499784491232e-8,-0.0011385351171898522,4.524231213375679e-5,2.636058011508952e-8,-0.001138498908997064,4.5358536475447353e-5,2.6427687830903223e-8,-0.001138504742717813,4.539239795883406e-5,2.6446876610957435e-8,-0.0011385203577618363,4.5327686077719404e-5,2.6409596426616204e-8,-0.001138508626476679,4.5163215308385346e-5,2.6316020938140107e-8,-0.001138433164520453,4.491524922861346e-5,2.617635271007851e-8,-0.0011382651611644248,4.461705208805853e-5,2.60103768433134e-8,-0.0011379901212315725,4.431475914112068e-5,2.5844832363761734e-8,-0.0011376128472153897,4.405962607495448e-5,2.5708742448517676e-8,-0.0011371591432191399,4.38977377850055e-5,2.5627459120037902e-8,-0.0011366732292220137,4.385892899825392e-5,2.561652405049774e-8,-0.0011362103950232623,4.394710877414942e-5,2.5676581411835278e-8,-0.0011358251542952108,4.413475261191414e-5,2.5790765942044402e-8,-0.0011355565320898134,4.436471443508226e-5,2.5926126309661128e-8,-0.0011354142388612493,4.456177182242592e-5,2.6040272006294392e-8,-0.0011353715564004837,4.4653360616528623e-5,2.6092925147649926e-8,-0.0011353705510015804,4.459362909579968e-5,2.605922322764486e-8,-0.0011353404038372476,4.4380227560943225e-5,2.5938971302698022e-8,-0.0011352217466509087,4.405454262243014e-5,2.5756616732937143e-8,-0.0011349852948189293,4.368490247039827e-5,2.5551578991552723e-8,-0.0011346366674042077,4.334216194977203e-5,2.5364227495662016e-8,-0.001134208126523297,4.307971922662928e-5,2.5224447033233243e-8,-0.0011337443916172296,4.292448780803408e-5,2.5146609857361533e-8,-0.0011332897864486306,4.287791196077834e-5,2.5130427988720302e-8,-0.0011328801743606684,4.292232941936807e-5,2.5164886702881576e-8,-0.0011325395437544183,4.302832693352377e-5,2.5232645329543546e-8,-0.0011322795036267984,4.316082969546979e-5,2.5313558114926845e-8,-0.0011320999644248192,4.328354167402069e-5,2.538712994851353e-8,-0.0011319900022255828,4.336233306022805e-5,2.5434328063291953e-8,-0.0011319286947636842,4.336840808418778e-5,2.5439298179225213e-8,-0.0011318863330729578,4.328188187579225e-5,2.5391365668682646e-8,-0.001131826798984989,4.309582777844892e-5,2.5287327028303578e-8,-0.0011317119237820342,4.282000536402383e-5,2.513352362103692e-8,-0.0011315081184450266,4.248267021715128e-5,2.4946745756693704e-8,-0.0011311944679122136,4.212855215251888e-5,2.47528810798855e-8,-0.001130770145740669,4.181171313272162e-5,2.458263730132284e-8,-0.0011302581872849279,4.158375073838242e-5,2.446470685820663e-8,-0.0011297031604086858,4.1480108144529596e-5,2.4418045723061402e-8,-0.001129162188693781,4.15087736209508e-5,2.4445738038119535e-8,-0.001128691235841923,4.164541695493883e-5,2.453267453652789e-8,-0.0011283303644603515,4.1837167858544846e-5,2.464812593336712e-8,-0.0011280922029762194,4.201470996660632e-5,2.4752841228200912e-8,-0.0011279572033331556,4.2109977185660934e-5,2.480903447905591e-8,-0.0011278777807429035,4.2074869072542864e-5,2.4790706388729773e-8,-0.0011277911058960631,4.189530837193729e-5,2.4691226160505966e-8,-0.0011276372138476932,4.15954194176583e-5,2.4525357679971217e-8,-0.0011273763094417542,4.1229584247699144e-5,2.4324526909304625e-8,-0.0011269987883137111,4.0865150594873515e-5,2.4126913313744505e-8,-0.0011265246487921932,4.056282496645149e-5,2.396636013648397e-8,-0.0011259939870450367,4.0362229990203176e-5,2.3864352719984643e-8,-0.0011254538280006646,4.027651035222083e-5,2.3827236887481313e-8,-0.0011249466443459084,4.029509964658356e-5,2.3848081936514294e-8,-0.0011245033782163948,4.0390924133027086e-5,2.3910968573532058e-8,-0.0011241409403492657,4.052829514471608e-5,2.3995517170635476e-8,-0.00112386263638038,4.066934213518109e-5,2.4080458369857855e-8,-0.001123659844043524,4.077852227744454e-5,2.4146059818045725e-8,-0.0011235138537491161,4.082575535334954e-5,2.417579891950277e-8,-0.0011233975399612892,4.078906093563617e-5,2.4157813543967808e-8,-0.0011232772130354719,4.065741806846923e-5,2.4086515680471002e-8,-0.0011231154772805123,4.043402590037051e-5,2.3964410167377178e-8,-0.0011228760409062776,4.0139252991621545e-5,2.380366568263808e-8,-0.0011225309508780508,3.9811507466245704e-5,2.362643573893063e-8,-0.0011220694021852218,3.9503593998477884e-5,2.3462607402847364e-8,-0.0011215052868612503,3.927276808058977e-5,2.334405693151438e-8,-0.0011208791815421717,3.916532907922445e-5,2.32959719470691e-8,-0.0011202512996662164,3.9200465609938846e-5,2.332793726446843e-8,-0.001119685750452599,3.936055511280073e-5,2.3428801926640012e-8,-0.0011192313624241938,3.959351310628623e-5,2.3568365483427852e-8,-0.0011189067970222813,3.982728786145331e-5,2.370580293829856e-8,-0.0011186957125675833,3.9990849821071303e-5,2.380156013682102e-8,-0.0011185529359586416,4.003380335406222e-5,2.382827657042045e-8,-0.0011184183604654927,3.9938559297950844e-5,2.3777363910180102e-8,-0.0011182335261142832,3.972257873820071e-5,2.365991178424167e-8,-0.0011179561348970367,3.943138742499119e-5,2.3502406776038373e-8,-0.0011175690250342211,3.9125231705559594e-5,2.333898219278873e-8,-0.0011170818909624026,3.8863484851492184e-5,2.3202592856615218e-8,-0.0011165261146400343,3.869113689297805e-5,2.3117576365828163e-8,-0.0011159450191786187,3.863070018781825e-5,2.309541688994295e-8,-0.001115382950846316,3.8680782729081375e-5,2.3134291481037248e-8,-0.0011148763323054643,3.88202433349568e-5,2.3221657136516122e-8,-0.0011144484116093652,3.9015366788503146e-5,2.333836405534532e-8,-0.0011141077300649053,3.922741200952648e-5,2.3462821981382622e-8,-0.0011138492060015412,3.941880989590515e-5,2.357433208540127e-8,-0.0011136564631223104,3.955748183796071e-5,2.3655382121537695e-8,-0.001113504398766395,3.961966181875024e-5,2.3693174947865333e-8,-0.0011133616119702572,3.9591985478981636e-5,2.3680806672121074e-8,-0.0011131929173312004,3.9473502927766754e-5,2.3618399758240768e-8,-0.001112962646214551,3.927781992830418e-5,2.3514237054040706e-8,-0.0011126396430199091,3.903476453581059e-5,2.338553477815076e-8,-0.0011122044622860591,3.878987372235069e-5,2.325794563447264e-8,-0.0011116579050496058,3.859916050478475e-5,2.3162471082326266e-8,-0.0011110277638066819,3.8517161490373446e-5,2.3128770665243614e-8,-0.0011103686318442126,3.857932217863279e-5,2.317550345585091e-8,-0.0011097504345893342,3.878498007287958e-5,2.3301147042226735e-8,-0.0011092368658773112,3.909083067031221e-5,2.348067606937274e-8,-0.001108862561025627,3.9421677057301995e-5,2.3671766690779e-8,-0.0011086207894536008,3.969541345367182e-5,2.3828789988108746e-8,-0.001108467784835197,3.9850203582443234e-5,2.3917930158623212e-8,-0.0011083400223898265,3.986149013467848e-5,2.3926558339224554e-8,-0.0011081749835332257,3.9744019406875444e-5,2.3864144977322292e-8,-0.0011079272311021648,3.954206227866765e-5,2.3756473773474773e-8,-0.0011075764036130426,3.9314276041815806e-5,2.3636846724881514e-8,-0.0011071276513506274,3.911872082508301e-5,2.353751460723729e-8,-0.001106606712234522,3.9001210256697606e-5,2.3483218868648787e-8,-0.0011060519911277476,3.8988244203939216e-5,2.3487531140898155e-8,-0.001105505670300844,3.908468395961993e-5,2.3551953376769463e-8,-0.001105005565791467,3.927568764132802e-5,2.3667339954019526e-8,-0.0011045790708096976,3.9531788880221474e-5,2.3816896490402398e-8,-0.0011042398847317478,3.9815546406795756e-5,2.397985579796228e-8,-0.0011039874767033147,4.008822786866677e-5,2.413504494817365e-8,-0.0011038086569949937,4.031539899273079e-5,2.4263827315283715e-8,-0.0011036803427045844,4.047087645509333e-5,2.4352204679952328e-8,-0.0011035726966564098,4.053916604625667e-5,2.4392162684179795e-8,-0.0011034522434320714,4.051692930416066e-5,2.438250815301555e-8,-0.0011032850399023103,4.041397991610771e-5,2.4329393420554233e-8,-0.0011030403485004744,4.0253960514007384e-5,2.424655679752155e-8,-0.001102695483905325,4.0074227905403326e-5,2.415503580398189e-8,-0.001102242193580227,3.992352368685253e-5,2.4081660659305638e-8,-0.0011016936673696796,3.985525563697915e-5,2.4055253488353385e-8,-0.0011010891641663526,3.991473667135059e-5,2.409971221190807e-8,-0.0011004912378463276,4.012168328025906e-5,2.422468321626409e-8,-0.0010999711538006204,4.045477360482803e-5,2.4417430252093232e-8,-0.0010995842055226655,4.084938248726866e-5,2.4641830821643385e-8,-0.0010993460929871167,4.121581701041971e-5,2.484844677700392e-8,-0.0010992250658169746,4.1472215284716905e-5,2.4992557013455944e-8,-0.0010991556460179283,4.1574464276116506e-5,2.505058969589844e-8,-0.0010990652089385281,4.1527398961356164e-5,2.5026265284520233e-8,-0.001098898156768374,4.1375312448001e-5,2.4945200752454744e-8,-0.0010986280334354423,4.118167475058328e-5,2.484337320183111e-8,-0.0010982574815838655,4.100937470290851e-5,2.4755843824772127e-8,-0.0010978110406426043,4.090738485072404e-5,2.4709226856153248e-8,-0.0010973257121964122,4.0904499228446404e-5,2.471836767874099e-8,-0.0010968421791160742,4.10083665738254e-5,2.4786177550209052e-8,-0.0010963977347210852,4.120779805968306e-5,2.4905329142025246e-8,-0.0010960210677344888,4.147702335351955e-5,2.506090255556026e-8,-0.0010957289251758702,4.178110279291195e-5,2.5233456325869303e-8,-0.001095524697387541,4.2081778366454555e-5,2.540215364575196e-8,-0.0010953988246681838,4.2343079153780506e-5,2.5547670181248777e-8,-0.0010953307583887954,4.253610901231246e-5,2.5654681311269465e-8,-0.0010952920447938042,4.264254236325311e-5,2.571372890267199e-8,-0.0010952499739452775,4.2656633559821643e-5,2.5722338660353446e-8,-0.0010951713587064734,4.2585944785351156e-5,2.5685421940828945e-8,-0.0010950263137780906,4.245110365085979e-5,2.5615053368196092e-8,-0.001094792159453469,4.2284683294743016e-5,2.5529653777638224e-8,-0.0010944577225138132,4.212890345796607e-5,2.5452477208888395e-8,-0.0010940280855575993,4.2031223829935575e-5,2.5409021613321293e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json new file mode 100644 index 00000000..3a712547 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":5000,"numberOfSamples":1000,"samples":[-0.001093528836966317,4.203642676149489e-5,2.5422725793163846e-8,-0.0010930072646208094,4.217440867148639e-5,2.5508574660559997e-8,-0.0010925265640548522,4.2445448281040656e-5,2.566549440168746e-8,-0.0010921498584701538,4.280927315836898e-5,2.5870776828536737e-8,-0.0010919163003251823,4.318794211770871e-5,2.6081780444674054e-8,-0.001091820523294629,4.348883154959585e-5,2.624831762871915e-8,-0.00109181029138295,4.364045659227296e-5,2.6331989440280285e-8,-0.0010918072934319603,4.362110831307491e-5,2.6321766949888615e-8,-0.0010917391971531742,4.346321105608486e-5,2.6236404835428295e-8,-0.0010915640090047574,4.323393624900339e-5,2.611370862534541e-8,-0.0010912766199280236,4.3007345034387695e-5,2.599493426705449e-8,-0.0010909009016498547,4.284299979150903e-5,2.5912727223068096e-8,-0.001090476431342811,4.277625215835485e-5,2.5885719367964947e-8,-0.0010900465218413144,4.2817753215300766e-5,2.5918503099339365e-8,-0.0010896499951765957,4.2957752709860237e-5,2.6004412180594708e-8,-0.0010893164869373976,4.3171842376795946e-5,2.612906955898042e-8,-0.0010890641035068592,4.34265580743787e-5,2.6273675178051805e-8,-0.0010888984776027527,4.3684563677071033e-5,2.6417842719480934e-8,-0.0010888129019089097,4.3909513777838174e-5,2.65421057988998e-8,-0.0010887895341848287,4.407054827337014e-5,2.663018859077577e-8,-0.0010888016920848876,4.4146217427231046e-5,2.667102788931276e-8,-0.001088817192482838,4.4127450376416946e-5,2.6660363442769395e-8,-0.0010888024752733671,4.401909753500576e-5,2.6601590837686793e-8,-0.0010887270459753056,4.383981898364833e-5,2.65056658451493e-8,-0.0010885677996571497,4.362036647066958e-5,2.639002532249307e-8,-0.0010883129235325867,4.3400346577718806e-5,2.627658759927833e-8,-0.0010879651578661836,4.322346930498476e-5,2.6188934255361087e-8,-0.001087544097987234,4.313109216854214e-5,2.6148709458164907e-8,-0.001087086674855694,4.315374123594729e-5,2.617116796712862e-8,-0.001086644066498112,4.330094126455337e-5,2.6260046435218025e-8,-0.0010862728381159504,4.3551620609182124e-5,2.640284239026193e-8,-0.00108601928226965,4.38502022017017e-5,2.656903579292576e-8,-0.0010859001135970722,4.411523709589743e-5,2.6714781887700585e-8,-0.0010858889754997796,4.426383145393484e-5,2.6795876138844725e-8,-0.0010859203351680025,4.424423453619814e-5,2.6785128110422738e-8,-0.001085913618912209,4.4058578601592776e-5,2.668460538734044e-8,-0.001085805393800295,4.376072785978275e-5,2.6524487039470494e-8,-0.0010855708545136362,4.343117507166159e-5,2.6349304657863846e-8,-0.0010852250584937636,4.314592290426317e-5,2.620071963961655e-8,-0.0010848090868554553,4.295570916633156e-5,2.6105975798650347e-8,-0.001084372654611788,4.2880291469861494e-5,2.6074830737518084e-8,-0.0010839610398885847,4.291308032542563e-5,2.6102403255115617e-8,-0.0010836081790852113,4.302959653013973e-5,2.6174200961517643e-8,-0.0010833344520610171,4.3195574161869046e-5,2.6270850944433867e-8,-0.001083146945167361,4.3373198164366636e-5,2.637160337223827e-8,-0.0010830405767407777,4.352569954505452e-5,2.645674242392391e-8,-0.0010829995124754573,4.3621083270509026e-5,2.6509425138913995e-8,-0.001082998991414148,4.363548696163819e-5,2.6517334874121295e-8,-0.0010830078695757855,4.3556232067080865e-5,2.6474252100274967e-8,-0.0010829921546684827,4.338421730365343e-5,2.638134536379059e-8,-0.0010829195457739626,4.313495597945831e-5,2.6247737743075178e-8,-0.0010827645199852117,4.2837568459182473e-5,2.6089894868217516e-8,-0.0010825131481838203,4.2531405839397756e-5,2.5929625306960433e-8,-0.0010821667257754604,4.2260415291339646e-5,2.5790800121408916e-8,-0.001081743391863589,4.2065789758412284e-5,2.5695202717475755e-8,-0.0010812771260442285,4.197779093233889e-5,2.5658116797976546e-8,-0.00108081368235774,4.2007788209395396e-5,2.5684279138019833e-8,-0.0010804030553122393,4.214188129809646e-5,2.5764875776401685e-8,-0.0010800884167244415,4.2338329128859495e-5,2.5876603076949472e-8,-0.001079892778156456,4.2531881372048156e-5,2.598424858567189e-8,-0.001079807154698478,4.264767562282009e-5,2.6048107274120274e-8,-0.0010797867060579334,4.262394191909685e-5,2.6035904077434437e-8,-0.001079760973783162,4.243610779021697e-5,2.593546226975552e-8,-0.0010796577282035234,4.210950720238184e-5,2.5761387251077892e-8,-0.00107942993302375,4.171117273294466e-5,2.555057096694696e-8,-0.001079071274203828,4.132383281774707e-5,2.5348037433669575e-8,-0.001078613065447523,4.101676275871758e-5,2.5191031444188244e-8,-0.0010781076445001167,4.082789625905243e-5,2.509930154443339e-8,-0.0010776094725232313,4.076147500814069e-5,2.507401361434535e-8,-0.0010771620659250866,4.079616385676292e-5,2.5102488709573008e-8,-0.001076792527426751,4.089624684549766e-5,2.5164595184415124e-8,-0.001076511483357941,4.102115014348993e-5,2.523807558214155e-8,-0.001076315486299618,4.1131846253385905e-5,2.530198861820359e-8,-0.00107618985214185,4.1194730844247526e-5,2.533864785318205e-8,-0.0010761111699562399,4.118418519494565e-5,2.5334821170315685e-8,-0.0010760496321073894,4.1084740905426734e-5,2.5282775112651636e-8,-0.0010759717151872302,4.089317638698599e-5,2.5181368331821842e-8,-0.0010758437806077928,4.062025720268964e-5,2.5037000465379675e-8,-0.001075636874965737,4.029124488214523e-5,2.4863872287821255e-8,-0.001075332344175619,3.994403311673042e-5,2.4682887122784044e-8,-0.0010749270772761371,3.962409533524119e-5,2.4518755050929554e-8,-0.0010744366625150808,3.937631781230898e-5,2.439541151761965e-8,-0.0010738948032005251,3.92350369958662e-5,2.433057466908826e-8,-0.0010733481764564313,3.9214698025557454e-5,2.433083409288902e-8,-0.0010728472503692334,3.930384295442124e-5,2.4388737863373705e-8,-0.0010724347731497891,3.94645175457536e-5,2.44828950313044e-8,-0.0010721343835682733,3.9638151634969455e-5,2.458148402653822e-8,-0.001071942205574794,3.9757775235519326e-5,2.4648932372444277e-8,-0.001071824440490328,3.976485588304506e-5,2.4654800605721794e-8,-0.0010717234455627444,3.962693202706781e-5,2.4582909766611626e-8,-0.0010715727554048086,3.935008138551149e-5,2.4437676459267312e-8,-0.0010713175244551965,3.8979848282591754e-5,2.4244352737564492e-8,-0.0010709326265880106,3.858785169979547e-5,2.4041693976913273e-8,-0.0010704300073954966,3.8248525783302696e-5,2.386941805332488e-8,-0.0010698520086136918,3.801636200014798e-5,2.375603419291011e-8,-0.0010692550526086402,3.791333074165718e-5,2.371227592816189e-8,-0.0010686922574283954,3.792939556885814e-5,2.3731673323543086e-8,-0.0010682017404291997,3.80320722103819e-5,2.379598347049132e-8,-0.0010678024504110503,3.8178531959137147e-5,2.3881867002065674e-8,-0.001067495548138812,3.832556322890049e-5,2.3966240581430207e-8,-0.001067268273277274,3.843582509864842e-5,2.4029501058277472e-8,-0.0010670980487706369,3.848102746680633e-5,2.4057051807740725e-8,-0.0010669558863532884,3.844342728250387e-5,2.4039967070581163e-8,-0.001066809160826231,3.8316803241082525e-5,2.3975457859135465e-8,-0.0010666243579828204,3.810746586828673e-5,2.386741669396789e-8,-0.0010663705574710293,3.7835149903862285e-5,2.3726898442079206e-8,-0.0010660241691441985,3.753288897009294e-5,2.3571997852970833e-8,-0.0010655747063436035,3.724442359481839e-5,2.3426335194630528e-8,-0.0010650302250668731,3.701779702157739e-5,2.331547794071486e-8,-0.0010644199291991467,3.68949742785659e-5,2.3261297539301097e-8,-0.001063791223981958,3.6899545236002384e-5,2.327544760228617e-8,-0.0010632000453968727,3.7026820203446666e-5,2.335429289972638e-8,-0.0010626963599818942,3.7241111127013385e-5,2.3477789197827204e-8,-0.0010623095681190381,3.748268981872828e-5,2.3613519575245354e-8,-0.0010620391726174265,3.768289862153553e-5,2.3724946388273585e-8,-0.0010618540779868658,3.7782581455481364e-5,2.3781234371721873e-8,-0.0010617006609737272,3.7748061352030124e-5,2.3765573920194672e-8,-0.0010615170480434892,3.758012724746697e-5,2.367965267011593e-8,-0.0010612495768359004,3.731371428715724e-5,2.3543130785882002e-8,-0.0010608669746345562,3.700835235428079e-5,2.3388256328231037e-8,-0.001060368182069979,3.6731912216637085e-5,2.325105313533104e-8,-0.0010597813426304625,3.654245594481344e-5,2.316169727120985e-8,-0.0010591544075762823,3.647402066316346e-5,2.313718174627855e-8,-0.0010585410167500333,3.653074230958909e-5,2.317853751683003e-8,-0.001057986920975386,3.669012758790272e-5,2.327290785733631e-8,-0.0010575211579176061,3.691257472653399e-5,2.339881300069309e-8,-0.001057153350837812,3.715260399430297e-5,2.3532138314401993e-8,-0.0010568758374386459,3.736812754225494e-5,2.365093104713143e-8,-0.0010566681914793606,3.752620921432137e-5,2.3738273286109503e-8,-0.0010565020401735535,3.760563844652094e-5,2.378349597906288e-8,-0.0010563451015339039,3.759754719033252e-5,2.3782437194464704e-8,-0.0010561643423562313,3.750528822528541e-5,2.3737377447389552e-8,-0.001055928777775758,3.734426906295574e-5,2.365696343832137e-8,-0.0010556126783150875,3.714173971895337e-5,2.3556054900511646e-8,-0.0010551998123746519,3.693577609363618e-5,2.3455071168099988e-8,-0.0010546886977346502,3.677200754758798e-5,2.3378106802298378e-8,-0.001054097575413405,3.66964742503015e-5,2.33490503669857e-8,-0.001053466266416154,3.674410830929957e-5,2.338552532428398e-8,-0.0010528513171096396,3.6925144473778674e-5,2.3491902560416617e-8,-0.0010523125721679219,3.721530665965493e-5,2.365441113669717e-8,-0.0010518941136466624,3.7556866487537555e-5,2.384196911473466e-8,-0.001051607652331739,3.787365765176419e-5,2.4014260649323585e-8,-0.0010514271013640408,3.809514403546298e-5,2.4134458275138142e-8,-0.001051297410707953,3.8178799703989044e-5,2.4180962088243847e-8,-0.001051153003686843,3.812136015142763e-5,2.415318391268279e-8,-0.00105093733776516,3.795628189484318e-5,2.4069945427589834e-8,-0.001050616809646753,3.7741095264425834e-5,2.396246019827039e-8,-0.0010501863481547247,3.754067586859115e-5,2.3865199592522806e-8,-0.0010496673073456411,3.7411575394765774e-5,2.380750812194908e-8,-0.0010490998191358019,3.739064048823195e-5,2.380774834712807e-8,-0.0010485322021737509,3.748944550858809e-5,2.38707245777141e-8,-0.0010480100257824426,3.769477583367159e-5,2.398835336975793e-8,-0.0010475672083879396,3.797425178348991e-5,2.4142928600404912e-8,-0.0010472208647171518,3.8285082197056416e-5,2.4311824887822292e-8,-0.0010469704046910332,3.858335909600687e-5,2.4472287017073512e-8,-0.0010468001087383734,3.883168894481607e-5,2.4605240478689e-8,-0.0010466836675630368,3.900401645641016e-5,2.469763622155349e-8,-0.0010465891449321784,3.9087623690885925e-5,2.4743396088065535e-8,-0.00104648333056439,3.908308679776768e-5,2.4743374271449885e-8,-0.0010463351903678341,3.900321589613522e-5,2.4704818833201865e-8,-0.0010461187174899236,3.887169112109677e-5,2.4640634398441143e-8,-0.0010458157657489216,3.872153411276594e-5,2.456847676636226e-8,-0.0010454194198092652,3.8592904649491364e-5,2.4509434847279802e-8,-0.0010449379598351336,3.85290470767447e-5,2.4485769249212857e-8,-0.0010443983417922637,3.8568960460999586e-5,2.4517067123617403e-8,-0.0010438466104127784,3.8736263817727636e-5,2.4614598497805885e-8,-0.0010433416549984493,3.902636136480175e-5,2.477493404220497e-8,-0.0010429399987465788,3.9398027050649106e-5,2.4975871277955936e-8,-0.0010426746362297934,3.9777843434769186e-5,2.5178904654138547e-8,-0.0010425380922074639,4.0081503788804406e-5,2.5340291710930592e-8,-0.0010424814444555638,4.0244644241275436e-5,2.5427023133151833e-8,-0.0010424322947735387,4.024690202392131e-5,2.5429321392407133e-8,-0.0010423219582340482,4.01162830340403e-5,2.5362869290134385e-8,-0.0010421073140257824,3.9914219183457514e-5,2.526080398688154e-8,-0.0010417790504298643,3.9712303792083824e-5,2.5161204349048078e-8,-0.001041357514815806,3.957206053756882e-5,2.509620077309175e-8,-0.0010408820867983744,3.953305791576254e-5,2.5085701841939114e-8,-0.0010403994183290342,3.960922925354849e-5,2.5135719972456448e-8,-0.001039953473752625,3.979097235888994e-5,2.5239903766051643e-8,-0.0010395783534878653,4.005056096735985e-5,2.538278306056733e-8,-0.0010392939602767437,4.034918264408066e-5,2.5543680164653243e-8,-0.001039104389012981,4.0644480901831106e-5,2.5700644896490313e-8,-0.0010389988421567525,4.089757785496551e-5,2.5833941072896978e-8,-0.0010389545970551956,4.107865514075927e-5,2.5928726316951552e-8,-0.0010389412824983889,4.11705030871186e-5,2.5976731161695342e-8,-0.001038925600905446,4.116986580467381e-5,2.5976894786312716e-8,-0.0010388757116827172,4.108687415422475e-5,2.5935077860987764e-8,-0.0010387648487817887,4.094320887370908e-5,2.586310945168862e-8,-0.0010385741873378635,4.0769583233729096e-5,2.5777407288912374e-8,-0.0010382952268426782,4.0602784133407614e-5,2.569728649515853e-8,-0.0010379320091739295,4.04820837611387e-5,2.564292327050562e-8,-0.0010375031926033312,4.0444330838904017e-5,2.56327270085341e-8,-0.0010370431136598767,4.0516825192555824e-5,2.5679750881275533e-8,-0.0010365998252919112,4.07078727032145e-5,2.5787103029239512e-8,-0.0010362274507746704,4.0997023108730364e-5,2.59432896351184e-8,-0.0010359711779905647,4.133023718538513e-5,2.6120005918730713e-8,-0.0010358476721283505,4.1627586877103866e-5,2.6276137158887212e-8,-0.0010358308191826967,4.180745449119192e-5,2.6370052259346927e-8,-0.0010358552027499252,4.18193769451226e-5,2.6376375102413223e-8,-0.0010358403135057738,4.166678727036104e-5,2.6297719124715485e-8,-0.0010357228189093813,4.140456572009227e-5,2.6163449539399887e-8,-0.0010354780401623975,4.111391003936417e-5,2.6016503918615263e-8,-0.0010351214402610947,4.0871490524131414e-5,2.5897043112633257e-8,-0.0010346952781462417,4.0728626709958974e-5,2.5831362930703574e-8,-0.0010342513894169626,4.070496768499591e-5,2.582864079884688e-8,-0.0010338376130666347,4.0792468598692156e-5,2.588333975697396e-8,-0.001033489928572441,4.09637112677769e-5,2.5979990127741127e-8,-0.0010332292836012598,4.118057987218832e-5,2.6098059615421084e-8,-0.0010330613284611158,4.140165888760393e-5,2.6215931638488723e-8,-0.0010329777530100068,4.158819846524718e-5,2.631390656871405e-8,-0.0010329586810779521,4.170886241656704e-5,2.6376437158564403e-8,-0.001032975936317296,4.1743274993385874e-5,2.6393736765147437e-8,-0.0010329969885598913,4.168421213030391e-5,2.636277559384442e-8,-0.0010329892783965391,4.153821954893292e-5,2.62875676595281e-8,-0.0010329244588995863,4.132454750884092e-5,2.6178635261370543e-8,-0.001032782060381272,4.10726094101633e-5,2.6051674387741775e-8,-0.0010325522769319654,4.0818357819433007e-5,2.5925576579428118e-8,-0.0010322377709549141,4.0599882712942876e-5,2.5819988038191913e-8,-0.0010318544785740738,4.045240035953763e-5,2.575258468299546e-8,-0.001031431325710975,4.0402610592020545e-5,2.5736166079833738e-8,-0.0010310082903914864,4.04622844238969e-5,2.577556155474702e-8,-0.0010306315696239265,4.062155526853457e-5,2.586455506912295e-8,-0.0010303445107737654,4.084394736602622e-5,2.5983723580936618e-8,-0.00103017415051348,4.106712011714914e-5,2.6101034286724267e-8,-0.00103011645990442,4.121429379152592e-5,2.617762452180817e-8,-0.0010301283373702107,4.1218183604357294e-5,2.617978519094077e-8,-0.0010301360479824519,4.1049891214193474e-5,2.6093535091742128e-8,-0.0010300617418679534,4.073592787552085e-5,2.5933314593629573e-8,-0.0010298552834028627,4.0349707833675383e-5,2.5737635695545288e-8,-0.0010295123624857808,3.9981058901976845e-5,2.555325702866578e-8,-0.0010290699371210256,3.970266737753418e-5,2.541762182017323e-8,-0.0010285862799355606,3.95510226577242e-5,2.5348871652570656e-8,-0.001028119665030133,3.952567217658717e-5,2.5345604153804084e-8,-0.0010277146398166707,3.9599592103778894e-5,2.5392608827923747e-8,-0.0010273969445857086,3.9732019239784237e-5,2.54679029136312e-8,-0.0010271741439923543,3.987889635605635e-5,2.554837330653049e-8,-0.0010270387420002831,3.999979218338487e-5,2.5613362144150908e-8,-0.0010269717730998133,4.006209216467498e-5,2.564665439659544e-8,-0.0010269462335600545,4.004361181148552e-5,2.563758062373979e-8,-0.001026930475247916,3.993429582593155e-5,2.5581696150718296e-8,-0.0010268917955752411,3.9737131056284514e-5,2.54811632465487e-8,-0.0010268003254188763,3.946803547779058e-5,2.5344696049297998e-8,-0.001026633045285693,3.9154302349015926e-5,2.51867793373167e-8,-0.001026377413673644,3.883136780108241e-5,2.502596843310329e-8,-0.0010260339595217747,3.8538067531633994e-5,2.4882331374804033e-8,-0.00102561729797183,3.8310807330376756e-5,2.477430480252826e-8,-0.0010251551932449294,3.8177261675103885e-5,2.471538175976041e-8,-0.001024685487708184,3.8150384280356484e-5,2.4711128828705612e-8,-0.0010242508292970316,3.822352571453758e-5,2.475696413222644e-8,-0.0010238910923221203,3.836763523516221e-5,2.4837113045173785e-8,-0.0010236336767047106,3.853222377882937e-5,2.492543131105467e-8,-0.0010234830537858264,3.865239008611646e-5,2.49891058187856e-8,-0.0010234129983969168,3.8663590948988006e-5,2.4996031285257513e-8,-0.0010233670245726736,3.852273512816904e-5,2.492524814844594e-8,-0.001023271959887443,3.822833359285693e-5,2.4776942964655382e-8,-0.0010230632432314934,3.782769524653137e-5,2.4575998844550145e-8,-0.0010227107525744934,3.740279961889332e-5,2.436473371991324e-8,-0.0010222302402959167,3.703969137491942e-5,2.418716232193019e-8,-0.0010216740030515826,3.6798124988745376e-5,2.4073362152007457e-8,-0.001021108290579188,3.669683896443461e-5,2.4031974626159863e-8,-0.0010205912572348655,3.6717350983459955e-5,2.4052398420585333e-8,-0.0010201604372997207,3.681830406381751e-5,2.411249122180296e-8,-0.0010198303307530497,3.6950727918991715e-5,2.418666800590093e-8,-0.0010195960756659162,3.706898533184759e-5,2.4251597017513103e-8,-0.001019439056359185,3.713670445797552e-5,2.4289132019925126e-8,-0.001019332059571601,3.7129221763336125e-5,2.428734485125245e-8,-0.0010192433493335681,3.70343141516297e-5,2.4240686043212892e-8,-0.0010191400194511332,3.685229866278754e-5,2.4149908608415946e-8,-0.0010189911883879065,3.659580376531763e-5,2.402192783224623e-8,-0.0010187714343872375,3.628895436908966e-5,2.3869435845986977e-8,-0.0010184645132939021,3.596533710163379e-5,2.3709873676371996e-8,-0.001018066855839815,3.566412672527142e-5,2.3563393719128077e-8,-0.0010175898667280023,3.542425031334137e-5,2.3449761052332165e-8,-0.0010170599390659412,3.5277162817117435e-5,2.3384558945173422e-8,-0.001016515394012989,3.523949770501541e-5,2.3375440811865953e-8,-0.0010160002224420199,3.530738001007149e-5,2.3419397704779323e-8,-0.0010155553831384591,3.545419198619564e-5,2.3501928264935122e-8,-0.001015209142874551,3.563302488615149e-5,2.3598624983890202e-8,-0.0010149684067089226,3.5784346527384886e-5,2.3679292211144022e-8,-0.0010148133891465872,3.584860072421633e-5,2.3714344288769612e-8,-0.0010146982630651578,3.5782055660811007E-05,2.3682629377636572e-8,-0.0010145599654888093,3.557207326886522e-5,2.3578848270284908e-8,-0.0010143351722388912,3.5245823371830506e-5,2.3417678410022003e-8,-0.0010139811800521554,3.486632047924191e-5,2.3231576085062046e-8,-0.001013492050599654,3.4513974439642034e-5,2.3061330561170134e-8,-0.0010129013184621315,3.4259974954934804e-5,2.2942555475658693e-8,-0.0010122691652813616,3.4143842428325755e-5,2.289440024171102e-8,-0.001011660964001645,3.416527319904436e-5,2.291564249859294e-8,-0.0010111280235503381,3.429134318278579e-5,2.2988645742694414e-8,-0.0010106976785511353,3.447205752042876e-5,2.3087503664077148e-8,-0.0010103730798261847,3.465571175252602e-5,2.3185940039964153e-8,-0.0010101387428839818,3.479919616418346e-5,2.3262469964226124e-8,-0.0010099675794849883,3.487271276682596e-5,2.3302608900919384e-8,-0.0010098269209837737,3.4860699206272e-5,2.3299134968487392e-8,-0.0010096829020666328,3.476102080226269e-5,2.3251535621906485e-8,-0.0010095036482449427,3.4583741581220033e-5,2.316533851284319e-8,-0.00100926202814437,3.434990375649573e-5,2.3051517011118484e-8,-0.0010089385902406682,3.409004467856952e-5,2.2925769286763956e-8,-0.0010085248696185096,3.384168830235557e-5,2.2807227493595864e-8,-0.0010080265806791115,3.3644931550302674e-5,2.2716140262856692e-8,-0.0010074654828322916,3.353571640167953e-5,2.26703687608163e-8,-0.0010068782778092742,3.353743271134205e-5,2.268110345686206e-8,-0.0010063112194841138,3.36528689313314e-5,2.274888894220196e-8,-0.0010058104572475534,3.3859569732431347e-5,2.286150383963712e-8,-0.0010054101212326877,3.411145176628525e-5,2.2995062591133473e-8,-0.0010051217418514823,3.434769733360527e-5,2.3118734876600543e-8,-0.0010049287823506632,3.450726125747007e-5,2.3202145373587556e-8,-0.0010047886815621875,3.454511779650876e-5,2.3223469127649264e-8,-0.001004642523791172,3.444551550645358e-5,2.317587375654054e-8,-0.0010044301777682276,3.4228082912857005e-5,2.307029016040388e-8,-0.0010041070053985303,3.394428660482434e-5,2.293333606477324e-8,-0.0010036572007801948,3.366424530591849e-5,2.280046957873214e-8,-0.0010030989670374397,3.3457142010512746e-5,2.2706067870780697e-8,-0.001002478977520436,3.3371580578821594e-5,2.2673661179006083e-8,-0.0010018578283530568,3.342312200493025e-5,2.2709939398912565e-8,-0.0010012922882052613,3.359334378293894e-5,2.2804621910948108e-8,-0.0010008212275209021,3.3839363188058443e-5,2.2935524319804295e-8,-0.0010004594328713067,3.410840614322706e-5,2.3076001992787873e-8,-0.0010001992187818722,3.4351274842747164e-5,2.320166356575127e-8,-0.0010000167281470184,3.453101661995363e-5,2.3294552412610813e-8,-9.998793317252265e-4,3.462633409658824e-5,2.3344654270450874e-8,-9.997518470452732e-4,3.4631318428131296e-5,2.3349607127017085e-8,-9.996009199043014e-4,3.455348552109253e-5,2.3313647478180466e-8,-9.9939795849614e-4,3.44114906802232e-5,2.3246470434010358e-8,-9.99121407187035e-4,3.4233040893128126e-5,2.3162210737379513e-8,-9.987590833800812e-4,3.405276743515656e-5,2.3078368950141786e-8,-9.983108679056524e-4,3.390926822320403e-5,2.3014265042933495e-8,-9.97791306534957e-4,3.384032770146051e-5,2.2988554306834156e-8,-9.972307991430098e-4,3.3875718713881964e-5,2.3015580148524872e-8,-9.966733564831009e-4,3.4028221102158114e-5,2.310094837163757e-8,-9.961691020362934e-4,3.428546408696686e-5,2.3237638825588425e-8,-9.957615865134595e-4,3.46069401339788e-5,2.3404762682669036e-8,-9.954733186501152e-4,3.493021100327155e-5,2.357086532821176e-8,-9.952956330342465e-4,3.5186762200118035e-5,2.370192787102682e-8,-9.95188477807128e-4,3.532262383638006e-5,2.377162507367407e-8,-9.950913872963697e-4,3.5315508210565336e-5,2.376975873492727e-8,-9.94941500795456e-4,3.518154860532421e-5,2.3705430116577784e-8,-9.946916452042978e-4,3.496972133573339e-5,2.3603993034892922e-8,-9.943224955306555e-4,3.4747072949003844e-5,2.3499389344168517e-8,-9.938459958236127e-4,3.458033160070616e-5,2.3424766870853507e-8,-9.933002965673123e-4,3.451936283405707e-5,2.3404222600228282e-8,-9.92738532106868e-4,3.4586492210376424e-5,2.34477123751599e-8,-9.922149570488884e-4,3.47737697346077e-5,2.35500702634693e-8,-9.917723365169562e-4,3.504802300243e-5,2.369389615669735e-8,-9.91433801696836e-4,3.536137626092322e-5,2.385500900287136e-8,-9.912006576782077e-4,3.566352992413874e-5,2.4008564476421496e-8,-9.910555099664157e-4,3.591217265700787e-5,2.4134077453991628e-8,-9.909685467225334e-4,3.607935109184319e-5,2.4218367354514807e-8,-9.90904493799253e-4,3.615353059249766e-5,2.4256393376223053e-8,-9.90828480212809e-4,3.613845925610944e-5,2.4250587005171246e-8,-9.90710154736621e-4,3.605041340979941e-5,2.420946428455628e-8,-9.905262925749175e-4,3.5915102415850375e-5,2.4146106990416895e-8,-9.902625674466235e-4,3.576480559520487e-5,2.407673810359449e-8,-9.899151595612757e-4,3.563558997580312e-5,2.4019285840091026e-8,-9.894925239248037e-4,3.556393259086711e-5,2.399161892926978e-8,-9.890169789091286e-4,3.558183032668142e-5,2.400906596769323e-8,-9.885248529442735e-4,3.570977187754583e-5,2.4080982598891237e-8,-9.880631022206629e-4,3.594816942793109e-5,2.4206693186517794e-8,-9.876803749587692e-4,3.6270078383065484e-5,2.4372152484305683e-8,-9.874125517596248e-4,3.662032117452578e-5,2.4549731590826265e-8,-9.872671120179847e-4,3.6926008414473374e-5,2.470348797116585e-8,-9.872146960178598e-4,3.7118461255131244e-5,2.4799926090503432e-8,-9.871951531337715e-4,3.715829143129886e-5,2.482028574407889e-8,-9.871375620403313e-4,3.705077677427379e-5,2.476806781996489e-8,-9.869847448893906e-4,3.684329236067619e-5,2.466765451933042e-8,-9.867105450566658e-4,3.660725536650436e-5,2.4555140657066402e-8,-9.86323904247596e-4,3.641469724773145e-5,2.4466432455541804e-8,-9.858615016007492e-4,3.631928880259697e-5,2.442766534764061e-8,-9.85374633250025e-4,3.634645237112784e-5,2.4450388419430107e-8,-9.849156337300748e-4,3.649235218034662e-5,2.453139904021426e-8,-9.845270231932197e-4,3.672923823051199e-5,2.465582036281864e-8,-9.842346708626541e-4,3.7014300862134964e-5,2.4801822245291615e-8,-9.840451716688692e-4,3.729969081586018e-5,2.4945700886248175e-8,-9.839470708571595e-4,3.754181375466232e-5,2.5066377411016933e-8,-9.839150653915634e-4,3.770836043790428e-5,2.514864253568232e-8,-9.83915845150665e-4,3.778218739727299e-5,2.5184832131647895e-8,-9.839141440703577e-4,3.776204586365129e-5,2.5175023720621267e-8,-9.838778946578378e-4,3.7660825559131726e-5,2.5126110722890017e-8,-9.837819111355383e-4,3.750231363693385e-5,2.5050212268447694e-8,-9.83610120160167e-4,3.731747931219535e-5,2.4962853060990782e-8,-9.833567922937184e-4,3.714089212336408e-5,2.4881163070795294e-8,-9.830272886633775e-4,3.700727412351498e-5,2.4822096717103307e-8,-9.826385911278707e-4,3.69477424015823e-5,2.4800505830703303e-8,-9.82219396284537e-4,3.698509836147771e-5,2.4826830050034716e-8,-9.818087670899545e-4,3.712771767756578e-5,2.4904243886600084e-8,-9.814515702841564e-4,3.7362648046258683e-5,2.5025539421476875e-8,-9.811889802018954e-4,3.7650571338024e-5,2.5170939795615703e-8,-9.810442154511204e-4,3.792755371116602e-5,2.5309102919604293e-8,-9.810080333830023e-4,3.811864493199592e-5,2.5403711739960307e-8,-9.81033207624282e-4,3.8163102204115404e-5,2.5425633123846726e-8,-9.810462359989666e-4,3.804100654306584e-5,2.5365828059548833e-8,-9.809743731534347e-4,3.778505688611488e-5,2.524112956896296e-8,-9.807739041156364e-4,3.746843502401319e-5,2.508825210734586e-8,-9.804438663459916e-4,3.717577379911337e-5,2.4949313572355698e-8,-9.800204118408863e-4,3.697428727925494e-5,2.485733884169189e-8,-9.795593431768212e-4,3.6897909348930136e-5,2.4828320900585492e-8,-9.791176972697106e-4,3.694613487266822e-5,2.4860822858248447e-8,-9.78740821256568e-4,3.709208601691692e-5,2.4940346749398108e-8,-9.784561041063255e-4,3.7293678129001164e-5,2.5045249521682385e-8,-9.782718489133458e-4,3.7504071244625615e-5,2.5152145120602866e-8,-9.781792758595254e-4,3.7679941882763186e-5,2.5239992535436655e-8,-9.781562333794412e-4,3.778745647138105e-5,2.5292850462091087e-8,-9.781718882523143e-4,3.780606999115621e-5,2.530147602469855e-8,-9.781918620216884e-4,3.773013883351006e-5,2.5263886480747403e-8,-9.781832167389938e-4,3.7568458080856365e-5,2.518501010675023e-8,-9.78118742072559e-4,3.7342042791065954e-5,2.507558218052921e-8,-9.779801236071979e-4,3.708061130398327e-5,2.4950452157285786e-8,-9.777597868775496e-4,3.681839353569755e-5,2.4826535622686178e-8,-9.774615375963498e-4,3.6589861622145944e-5,2.47206704952449e-8,-9.771002958644923e-4,3.642562803302159e-5,2.464752335844287e-8,-9.767011177636903e-4,3.6348412775412787e-5,2.461757103592887e-8,-9.762974059618317e-4,3.636884684333104e-5,2.463512177599872e-8,-9.759277035517238e-4,3.648101405343806e-5,2.4696356361916733e-8,-9.75629951246629e-4,3.665840901177218e-5,2.4787660934629145e-8,-9.754322748465593e-4,3.685252659570957e-5,2.4885193908702775e-8,-9.75340987613693e-4,3.699788916582287e-5,2.495739454375517e-8,-9.753299684090048e-4,3.702722840929396e-5,2.4972198717358794e-8,-9.753395265608093e-4,3.689599167738356e-5,2.490869287630752e-8,-9.752920720559031e-4,3.6606102877796636e-5,2.4768523544825133e-8,-9.751219280535475e-4,3.62127126348543e-5,2.457919604533296e-8,-9.748035378869218e-4,3.580501071706199e-5,2.4384716721739845e-8,-9.743604317943561e-4,3.5470563709328834E-05,2.4228018734390125e-8,-9.738510761405169e-4,3.526450154078282e-5,2.4135686744524703e-8,-9.733435765106256e-4,3.519840608946445e-5,2.411249078547065e-8,-9.728943634004211e-4,3.5247780682422384e-5,2.4145284649450995e-8,-9.725377477092212e-4,3.536768335651393e-5,2.4211049479849402e-8,-9.722848444423038e-4,3.550754893515966e-5,2.428448154165182e-8,-9.72127563371285e-4,3.562150854076412e-5,2.4343174928178926e-8,-9.720441769973178e-4,3.567417242302132e-5,2.437035998268252e-8,-9.720046367152485e-4,3.56432887461309e-5,2.4355963585866076e-8,-9.719752390974952e-4,3.552063301357858e-5,2.4296779131561367e-8,-9.719228596586245e-4,3.531171554305102e-5,2.4196141313711178e-8,-9.718188423673552e-4,3.503437202507118e-5,2.406317927089353e-8,-9.716423998941957e-4,3.471621408885309e-5,2.3911605715671775e-8,-9.713832408989576e-4,3.439096166140005e-5,2.3757978780585042e-8,-9.710430366130846e-4,3.409389102193965e-5,2.361948593481193e-8,-9.70635446133547e-4,3.3856923351839665e-5,2.3511491505683215e-8,-9.701846919981149e-4,3.370390574741038e-5,2.3445165212560717e-8,-9.697228228770885e-4,3.364647614797688e-5,2.342546325722505e-8,-9.692857745624962e-4,3.368081166293388e-5,2.3449670440655165e-8,-9.689081926968012e-4,3.378557365972413e-5,2.3506650641077334e-8,-9.686168099705691e-4,3.392170644199995e-5,2.357703705485365e-8,-9.684224658620934e-4,3.4035563171401795e-5,2.3634937383161203e-8,-9.68312113340623e-4,3.406746818840269e-5,2.3652061632635778e-8,-9.682443258694862e-4,3.396706662113197e-5,2.3604922859051918e-8,-9.681538286062369e-4,3.371329935534211e-5,2.348419799835916e-8,-9.679692761326831e-4,3.333058404686902e-5,2.330235800983941e-8,-9.676407409410866e-4,3.2888734991917684e-5,2.3093584924486144e-8,-9.671629996624705e-4,3.2480309923178234e-5,2.2902797651000153e-8,-9.665791080763037e-4,3.2184835146996645e-5,2.276825671546724e-8,-9.659613244934983e-4,3.204046428493923e-5,2.270778086296016e-8,-9.653822640887052e-4,3.203767611505963e-5,2.2715798323767404e-8,-9.648929276683705e-4,3.213287335072607e-5,2.2770213229558723e-8,-9.645149837962753e-4,3.226903530996189e-5,2.2842729866168465e-8,-9.642442355567376e-4,3.239247708087407e-5,2.2907171397624284e-8,-9.640587530216115e-4,3.24620993246358e-5,2.2943963859402317e-8,-9.639270001539048e-4,3.245248074250296e-5,2.2941464499432092e-8,-9.638140578411377e-4,3.235353569481727e-5,2.2895550510650823e-8,-9.6368595444148e-4,3.2168912493880215e-5,2.28086319018673e-8,-9.635128997527551e-4,3.191410788621952e-5,2.2688634455621677e-8,-9.632720633656184e-4,3.161432337084309e-5,2.2547969983926774e-8,-9.629500908473864e-4,3.1301728190777524e-5,2.2402276055104036e-8,-9.625451789726969e-4,3.101176374193039e-5,2.226867575507521e-8,-9.620681774777247e-4,3.077836455776551e-5,2.216345368450055e-8,-9.615420329416084e-4,3.0628500411465295e-5,2.209935540113096e-8,-9.609991467969121e-4,3.057690888665009e-5,2.2082994490797295e-8,-9.604766797714861e-4,3.062205911343596e-5,2.2112942498469528e-8,-9.600102747775835e-4,3.074434601472043e-5,2.2179018433807102e-8,-9.596270214263777e-4,3.090724439259373e-5,2.2263089974248304e-8,-9.593386562986945e-4,3.1061771792007744e-5,2.2341454918293274e-8,-9.591361349101454e-4,3.1154428547892235e-5,2.2388764734143828e-8,-9.589871735461636e-4,3.113854434292479e-5,2.2383389507898628e-8,-9.588390052667267e-4,3.0987899671081076e-5,2.23137088373979e-8,-9.586285812047179e-4,3.0709291166627064e-5,2.2183841699676357e-8,-9.583004549904042e-4,3.034807980718291e-5,2.20160808943815e-8,-9.578277490469907e-4,2.9980170319710332e-5,2.1846942684937246e-8,-9.572262091683876e-4,2.968886340238766e-5,2.1716059377740093e-8,-9.565515092747311e-4,2.953507814969651e-5,2.1651963566920276e-8,-9.558790138711099e-4,2.9536365304518656e-5,2.166217296734255e-8,-9.552767930981623e-4,2.9665583334704913e-5,2.173278583758932e-8,-9.547860467171304e-4,2.9867061406297094e-5,2.1836474927304304e-8,-9.544158266696612e-4,3.0078540975903094e-5,2.1943173400982044e-8,-9.541492278461368e-4,3.024805141205629e-5,2.20281932369835e-8,-9.539540335951516e-4,3.034185193150517e-5,2.2075920768301698e-8,-9.537924048895253e-4,3.0345247140230987e-5,2.208000983233228e-8,-9.536275311546465e-4,3.025982229495277e-5,2.204185499562896e-8,-9.534275077413425e-4,3.0099841725022342e-5,2.1968736705240954e-8,-9.531675967845711e-4,2.9889041402266785e-5,2.187225621318765e-8,-9.528318988517542e-4,2.9657867759765324e-5,2.1767059789256722e-8,-9.524149404686213e-4,2.9440645440285744e-5,2.1669541941369942e-8,-9.519231274636026e-4,2.9272003957849185e-5,2.1596154336982085e-8,-9.513754532627277e-4,2.9182105324352853e-5,2.156109047838405e-8,-9.508024505321581e-4,2.9190878090889825e-5,2.1573483188737836e-8,-9.502424663511357e-4,2.9302351813132366e-5,2.1634700321363326e-8,-9.49735030418587e-4,2.9500882232911995e-5,2.1736638845838566e-8,-9.493122042363756e-4,2.975120128025421e-5,2.1861931766478845e-8,-9.489899450602254e-4,3.0003488125871785e-5,2.19865714491652e-8,-9.487620601966599e-4,3.020311750055373e-5,2.2084695992892515e-8,-9.485988957950232e-4,3.030316317880326e-5,2.2134553407674564e-8,-9.484518091654521e-4,3.0276810472256283e-5,2.2124270364054122e-8,-9.482632222856166e-4,3.0126538386465414e-5,2.205597301242971e-8,-9.479807554179524e-4,2.9887047408005317e-5,2.194689841841948e-8,-9.475724436270446e-4,2.961960692398054e-5,2.1826477535904775e-8,-9.470384606933393e-4,2.9397309036501518e-5,2.1729216202936675e-8,-9.464140919087501e-4,2.9284117233135745e-5,2.168479093152599e-8,-9.457607135250013e-4,2.931474722874649e-5,2.1708699518209903e-8,-9.451468703045619e-4,2.948415363474355e-5,2.179756824154432e-8,-9.446272642077682e-4,2.975166154093429e-5,2.19313942223417e-8,-9.442287741878977e-4,3.005706659105484e-5,2.2081348790756766e-8,-9.439480612138644e-4,3.0340177706433605e-5,2.2219059244211306e-8,-9.437587330039747e-4,3.05555047742844e-5,2.232346391891961e-8,-9.436224123828684e-4,3.0678595514250895e-5,2.2383640253534496e-8,-9.434987028230832e-4,3.0705355294702186e-5,2.2398300631400305e-8,-9.433518093842979e-4,3.0647746413302585e-5,2.2373619930447855e-8,-9.431539596951896e-4,3.052879162175852e-5,2.2320812424416252e-8,-9.42886827941632e-4,3.0378337056025078e-5,2.2254139731918605e-8,-9.425421763466582e-4,3.0229750427711546e-5,2.2189391361884014e-8,-9.421224563862095e-4,3.011700715597695e-5,2.2142531937943215e-8,-9.416414774327706e-4,3.0071346469157127e-5,2.212810620989906e-8,-9.411245660268458e-4,3.0116816661240038e-5,2.215710354642401e-8,-9.406070615964384e-4,3.026467552618603e-5,2.2234316233793085e-8,-9.40129838692488e-4,3.050774422637882e-5,2.2355753528190237e-8,-9.397312194328286e-4,3.0817081031483444e-5,2.2507225708871276e-8,-9.394363651629871e-4,3.1143952690525606e-5,2.266544635054926e-8,-9.39247469629382e-4,3.14289902634384e-5,2.2802467253505157e-8,-9.391392811567771e-4,3.161734154321736e-5,2.28928419535772e-8,-9.390631834203985e-4,3.1675072753920046e-5,2.292128485717643e-8,-9.389595011470184e-4,3.160054917881444e-5,2.2887892684632222e-8,-9.38774017044829e-4,3.142629938669554e-5,2.2808821851867562E-08,-9.384731170441491e-4,3.121073248180759e-5,2.2712144428496986e-8,-9.380529653295315e-4,3.102263562512172e-5,2.2630329259409035e-8,-9.37540421932073e-4,3.0923179639618185e-5,2.2591680785415607e-8,-9.369857583175107e-4,3.095034383443137e-5,2.261312414301245e-8,-9.364492385837592e-4,3.1109898640259824e-5,2.269626110812058e-8,-9.359853619300495e-4,3.137546064701527e-5,2.2827755619925506e-8,-9.356295240548179e-4,3.16974681512932e-5,2.2983821119346855e-8,-9.353911527823038e-4,3.2017802198202046e-5,2.313717510433112e-8,-9.35254811672147e-4,3.228479107023496e-5,2.326399499414142e-8,-9.351875597689146e-4,3.2463820357644084e-5,2.3348709349042408e-8,-9.351488611202442e-4,3.2541398176328435e-5,2.338570291153537e-8,-9.350994833205346e-4,3.25234996917194e-5,2.3378386345866902e-8,-9.350074661012362e-4,3.2430678404906835e-5,2.333682380228043e-8,-9.348510276335349e-4,3.229243028857118e-5,2.3275080016553152e-8,-9.346193314669444e-4,3.214231620297721e-5,2.3208959235950077e-8,-9.34312262797197e-4,3.2014221186669155e-5,2.3154273367792384e-8,-9.339400414025882e-4,3.193933185076618e-5,2.3125418905859264e-8,-9.33522913696338e-4,3.194305448645945e-5,2.3133910756853474e-8,-9.330904862493931e-4,3.204115275895757e-5,2.3186578394138074e-8,-9.326796244283101e-4,3.223492294630654e-5,2.3283386135426127e-8,-9.323295184334296e-4,3.250635238251842e-5,2.3415326287966734e-8,-9.320730236673442e-4,3.281574833663746e-5,2.356349553000111e-8,-9.319252711366798e-4,3.310543782936856e-5,2.3700943505328696e-8,-9.318736216132645e-4,3.331219177128394e-5,2.3798471243414568e-8,-9.318752640651988e-4,3.338676318697942e-5,2.3833655432768257e-8,-9.31866963948998e-4,3.331301147491189e-5,2.3799668733206908e-8,-9.317849968972861e-4,3.311655040946259e-5,2.3709231637614105e-8,-9.315865645433877e-4,3.2857438239323513e-5,2.3591073380549135e-8,-9.312628626536916e-4,3.2610345594110236e-5,2.3480457903216238e-8,-9.308393005661033e-4,3.24417200448329e-5,2.3408301483171562e-8,-9.303651936824847e-4,3.239281090859414e-5,2.339318150193606e-8,-9.298986864069065e-4,3.24725338782039e-5,2.343818307136948e-8,-9.29492219127464e-4,3.265959531263871e-5,2.3532245846076462e-8,-9.291818021359038e-4,3.2911055999915944e-5,2.3654527540462002e-8,-9.289814804693926e-4,3.317408157338681e-5,2.3780107907133812e-8,-9.28883102878134e-4,3.339795710135585e-5,2.3885603751994195e-8,-9.288606081706539e-4,3.3543937048918637e-5,2.3953598676844333e-8,-9.288772589118661e-4,3.3591181371482934e-5,2.3975172255395918e-8,-9.288937419745458e-4,3.353814016920971e-5,2.395033272948154e-8,-9.288751893623011e-4,3.340004673214571e-5,2.3886721538417358e-8,-9.287959268978146e-4,3.320403594462646e-5,2.3797303763589087e-8,-9.286417064222096e-4,3.298355112980294e-5,2.369778683496962e-8,-9.284099392258089e-4,3.277328729013441e-5,2.3604298515993387e-8,-9.281087947963245e-4,3.260518664063019e-5,2.3531530406527254e-8,-9.277558922978596e-4,3.25053020042501e-5,2.3491259018736307e-8,-9.27376881127838e-4,3.2490978444289704E-05,2.349102519309791e-8,-9.270036743482587e-4,3.2567791005183e-5,2.3532761106056747e-8,-9.266715169341242e-4,3.2726055504754945e-5,2.361130945511728e-8,-9.264137151151058e-4,3.293770276831043e-5,2.3713172494102367e-8,-9.262532777753961e-4,3.315574465668824e-5,2.3816439311101114e-8,-9.261924253535585e-4,3.331972423030237e-5,2.389335984974595e-8,-9.262040127993932e-4,3.336992217268715e-5,2.3916815814377182e-8,-9.262317722939682e-4,3.326872605091641e-5,2.3870037451283865e-8,-9.26204733848964e-4,3.3020183443077696e-5,2.3755545743126395e-8,-9.260627882338456e-4,3.267485106444268e-5,2.3597373291928313e-8,-9.257806549268176e-4,3.2313603001887904e-5,2.343349628055146e-8,-9.253766285983505e-4,3.201794497161325e-5,2.3301884783205278e-8,-9.249026226141552e-4,3.1842977355389055e-5,2.3227766419155888e-8,-9.244236141866019e-4,3.1804942562237756e-5,2.321783898637054e-8,-9.239978305283136e-4,3.188429203691447e-5,2.3261932645223352e-8,-9.236643245273065e-4,3.203781785436325e-5,2.3339012154274225e-8,-9.234386977616611e-4,3.221281488408803e-5,2.3424069805742805e-8,-9.233147289125141e-4,3.235906739356297e-5,2.3493825767808208e-8,-9.232692914346888e-4,3.243722377144107e-5,2.3530540271546322e-8,-9.232686902572398e-4,3.242362191865267e-5,2.3524031114582375e-8,-9.232753070314963e-4,3.231198064538372e-5,2.347219924760264e-8,-9.232537561991422e-4,3.211234823824068e-5,2.3380345332508162e-8,-9.231758558037119e-4,3.1847866001873865e-5,2.3259584838009844e-8,-9.230239270817444e-4,3.155012781518374e-5,2.3124710835478002e-8,-9.227922362546493e-4,3.1253999746506684e-5,2.299185234886264e-8,-9.224867387452752e-4,3.0992724464646724e-5,2.2876250708263638e-8,-9.221236055597706e-4,3.079385597163362e-5,2.27903811393233e-8,-9.217270560533948e-4,3.067609570471294e-5,2.2742468990955336e-8,-9.213267796337176e-4,3.064680318714811e-5,2.2735346156833847e-8,-9.20954912564315e-4,3.0699934328855683e-5,2.2765581416612138e-8,-9.206421478418023e-4,3.08143607477365e-5,2.2822873109824424e-8,-9.204122660196305e-4,3.095320827010874e-5,2.2889943688910157e-8,-9.202747886912586e-4,3.106597764009101e-5,2.2943650815208422e-8,-9.20216936947342e-4,3.1095988189358365e-5,2.2958395502173376e-8,-9.201985234595585e-4,3.099497926622176e-5,2.2912665548665453e-8,-9.201557642877907e-4,3.074296687634402e-5,2.2797948208220792e-8,-9.200186966514138e-4,3.0364621739963786e-5,2.2626137511840795e-8,-9.197385636888824e-4,2.9929213138156976e-5,2.242949417390068e-8,-9.193108394574188e-4,2.9527970187913423e-5,2.225019669376877e-8,-9.187785340875029e-4,2.9238845703639758e-5,2.2123997801802605e-8,-9.182134225021054e-4,2.9098989670442113e-5,2.2067447146301895e-8,-9.176879830111815e-4,2.9098589555165532e-5,2.2075132170368005e-8,-9.17253784391652e-4,2.9193712335522423e-5,2.212586268610836e-8,-9.169332050515159e-4,2.932621852597383e-5,2.2192168520093514e-8,-9.167219505579218e-4,2.944065181810668e-5,2.224829932694638e-8,-9.165966656263807e-4,2.949439756587482e-5,2.2274934020959177e-8,-9.165233093736817e-4,2.9461840863147958e-5,2.226094758259148e-8,-9.164642868928159e-4,2.9334685108527463e-5,2.220331133229603e-8,-9.163839913645998e-4,2.9120232422900573e-5,2.2106066579955823e-8,-9.162530317647461e-4,2.883851348103519e-5,2.1978863978225656e-8,-9.160513185398048e-4,2.8518597058158136e-5,2.1835244906513958e-8,-9.15769988624412e-4,2.8194298243653313e-5,2.1690730238489156e-8,-9.154120664548803e-4,2.7899535170271005e-5,2.1560765750180442e-8,-9.149917488095805e-4,2.7663738874698725e-5,2.1458654195702416e-8,-9.145323801553542e-4,2.7507851429598272e-5,2.1393709233720136e-8,-9.140634112563936e-4,2.744128142921948e-5,2.136983448703116e-8,-9.136166435043148e-4,2.745994641856036e-5,2.1384644526880326e-8,-9.13221944692427e-4,2.754549808736449e-5,2.1429208794373388e-8,-9.129024910120398e-4,2.7665888640565562e-5,2.148847949703196e-8,-9.126694819496386e-4,2.7777706431344518e-5,2.154253176218981e-8,-9.125166098566058e-4,2.7831321553144563e-5,2.156899691685832e-8,-9.124157000485842e-4,2.7780165658292776e-5,2.1547232079309533e-8,-9.123165267733067e-4,2.759442992476146e-5,2.1464373542698462e-8,-9.121548623777333e-4,2.7276427140508372e-5,2.1322119221499095e-8,-9.118711019526034e-4,2.6870144591949852e-5,2.114094313683426e-8,-9.114350063079968e-4,2.6455006129514234e-5,2.0957209029743784e-8,-9.108634742462995e-4,2.6120092101343845e-5,2.081139801841706e-8,-9.102178200814272e-4,2.5929424367736944e-5,2.0732255869559906e-8,-9.095797117160946e-4,2.5898353086471822e-5,2.0726067368364644e-8,-9.090202329768966e-4,2.5993933266429337e-5,2.077699539719869e-8,-9.085793014011967e-4,2.615479802733407e-5,2.0856387709915296e-8,-9.082619863653898e-4,2.6315579246745158e-5,2.09341239475786e-8,-9.080467696016204e-4,2.6424152758084614e-5,2.098656643738969e-8,-9.078974977973308e-4,2.6448875948786817e-5,2.0999792057647626e-8,-9.077736775849799e-4,2.6378608518081082e-5,2.0969414117202983e-8,-9.076374388060467e-4,2.621931034153885e-5,2.089880711320176e-8,-9.074576563940846e-4,2.598981028468818e-5,2.0797007293920687e-8,-9.072123555606045e-4,2.5717763310892864e-5,2.067680801973962e-8,-9.068901702931364e-4,2.543581375595846e-5,2.055305287961445e-8,-9.064910919600087e-4,2.51777245706118e-5,2.044096225969404e-8,-9.060264239903059e-4,2.497429600456872e-5,2.0354350101638346e-8,-9.055176396903595e-4,2.4849147035049042e-5,2.0303725663131417e-8,-9.049938331462582e-4,2.48148520431951e-5,2.0294513960783498e-8,-9.044877759473634e-4,2.487013629166907e-5,2.0325761996341625e-8,-9.040309431041147e-4,2.4998716181532725e-5,2.0389648367651206e-8,-9.036480496186143e-4,2.5170219741609872e-5,2.0472012539751645e-8,-9.033517513971097e-4,2.534346091236584e-5,2.0553994872596846e-8,-9.031382345469437e-4,2.5472113323665762e-5,2.0614734900078757e-8,-9.029845516590252e-4,2.5512741628428336e-5,2.0635033273204925e-8,-9.028490149929373e-4,2.5434954827073677e-5,2.0601836238167363e-8,-9.026764902106563e-4,2.5232408447057923e-5,2.0513003051675774e-8,-9.02410173775587e-4,2.4931333305205534e-5,2.03809375747986e-8,-9.020092509206674e-4,2.459113424824214e-5,2.0232703367730958e-8,-9.014671775780341e-4,2.4291763948560345e-5,2.0104263036672917e-8,-9.008206650653747e-4,2.4108119510329703e-5,2.0028949316011377e-8,-9.001407652157997e-4,2.40815816794724e-5,2.002473027343289e-8,-8.995076036470077e-4,2.4204454860463047e-5,2.0087372224985797e-8,-8.989819618378563e-4,2.442640209534498e-5,2.0193550978397385e-8,-8.985886426926948e-4,2.4677367529835956e-5,2.0311351442965695e-8,-8.983168875609791e-4,2.489249041554455e-5,2.0411570672683616e-8,-8.981321994515865e-4,2.5027742305275945e-5,2.0474734817052442e-8,-8.979905680705888e-4,2.506411353886881e-5,2.0492861273368607e-8,-8.978493659111419e-4,2.50042478933684e-5,2.0467761838839778e-8,-8.976735626310779e-4,2.486629512223054e-5,2.040810250953443e-8,-8.974383807300419e-4,2.46779904367794e-5,2.0326637181998767e-8,-8.971300793370073e-4,2.447195277178342e-5,2.0238087853917463e-8,-8.967460299014721e-4,2.4281946492655756e-5,2.0157529321890946e-8,-8.962944874862408e-4,2.41394984040332e-5,2.009894778188007e-8,-8.957939342688571e-4,2.4070383811391924e-5,2.0073707412014148e-8,-8.952715333108823e-4,2.4090842783267837e-5,2.0088849549234874e-8,-8.94760107898572e-4,2.420397021695154e-5,2.014545178891125e-8,-8.942933680114259e-4,2.4397265038716906e-5,2.0237535845060154e-8,-8.938997498069575e-4,2.4642474151023778e-5,2.0352064205131918e-8,-8.935958998883974e-4,2.4898610660257977E-05,2.047041270308535e-8,-8.933813137979958e-4,2.5118392150347438e-5,2.057138082449648e-8,-8.932357382837027e-4,2.525738915614616e-5,2.0635360425476936e-8,-8.931205738507962e-4,2.5284299096435977e-5,2.0648906749984923e-8,-8.929848689198422e-4,2.5190265415252555e-5,2.0608774843090036e-8,-8.927757350545704e-4,2.4994824362930195e-5,2.052437537467493e-8,-8.924519189134882e-4,2.4745797708676503e-5,2.0417514294488545e-8,-8.919975931406865e-4,2.4510848006438183e-5,2.031846414448125e-8,-8.914314961573257e-4,2.436039906856739e-5,2.0258291785338553e-8,-8.908058509117407e-4,2.4345690900774747e-5,2.0259156353576073e-8,-8.901923458736179e-4,2.4480408023514104e-5,2.032632704668696e-8,-8.896591855754514e-4,2.473538117757218e-5,2.0446077286436584e-8,-8.892494467896753e-4,2.505003874490458e-5,2.0590986107984132e-8,-8.889707658958967e-4,2.5354671159387962e-5,2.0729934824061592e-8,-8.887992171195747e-4,2.5592069573353648e-5,2.0837712880844427e-8,-8.886922966930062e-4,2.572983863637043e-5,2.0900398514110002e-8,-8.886031916452067e-4,2.576187327548421e-5,2.0915874009217856e-8,-8.884910916697882e-4,2.5702806387382103e-5,2.0891201501616617e-8,-8.883263469942507e-4,2.5580247122862124e-5,2.0839048300129043e-8,-8.880918126579759e-4,2.5427917810549098e-5,2.0774582188619598e-8,-8.877822930623571e-4,2.528066113611859e-5,2.071327182632323e-8,-8.874034503409459e-4,2.51709375729389e-5,2.0669390176493168e-8,-8.869707261418254e-4,2.5125989723721748e-5,2.0654810035291582e-8,-8.865081500699982e-4,2.5164954314173364e-5,2.067774642510077e-8,-8.86046435520712e-4,2.5295625909005256e-5,2.074132329135633e-8,-8.856195799846079e-4,2.5511276908268373e-5,2.0842176511925037e-8,-8.852594627043434e-4,2.578871501824554e-5,2.0969645761179816e-8,-8.849887434082308e-4,2.6089236359805585e-5,2.1106290594163275e-8,-8.848135668142814e-4,2.6363915683878577e-5,2.12303363316089e-8,-8.847186517320325e-4,2.6563437790964064e-5,2.132009779085571e-8,-8.846674515235134e-4,2.6650601378864086e-5,2.1359523275735847e-8,-8.846087189309281e-4,2.66117823350549e-5,2.1343206192558952e-8,-8.844884826177575e-4,2.6463259603390726e-5,2.1279054822091283e-8,-8.84264302201615e-4,2.6249677950410016e-5,2.1187425909026206e-8,-8.839176546726403e-4,2.6034332006823362e-5,2.109662263366006e-8,-8.83460649868888e-4,2.588342561020468e-5,2.1035784916221402e-8,-8.82934630955511e-4,2.584833167410523e-5,2.102703848956324e-8,-8.824002202963414e-4,2.595091364572211e-5,2.1079174189276926e-8,-8.81920975885244e-4,2.61768927835987e-5,2.1185003004173495e-8,-8.815456299885851e-4,2.648030419312936e-5,2.132360042425762e-8,-8.812952960849518e-4,2.6797977084991984e-5,2.146685384949102e-8,-8.811602994497689e-4,2.7068443874576867e-5,2.1587808754275467e-8,-8.811068251980501e-4,2.7247856141716944e-5,2.1667584069800153e-8,-8.81089260979772e-4,2.7317788146902162e-5,2.169866440830599e-8,-8.810626671495409e-4,2.7284359038585255e-5,2.168436095027221e-8,-8.809914703339173e-4,2.7171697969967655e-5,2.1635803660338795e-8,-8.80853375306616e-4,2.7013728986054004e-5,2.1568241334736312e-8,-8.806396376131523e-4,2.6847076911299085e-5,2.14978976330453e-8,-8.803534902028214e-4,2.670608170906783e-5,2.1439805851815076e-8,-8.800081064751453e-4,2.661959400830792e-5,2.140644761622855e-8,-8.796247407013677e-4,2.6608697363742646e-5,2.1406789555317838e-8,-8.792309875330124e-4,2.668453948521081e-5,2.1445354689839482e-8,-8.788585456571649e-4,2.684586308158884e-5,2.152116684744657e-8,-8.78539601693883e-4,2.7076554888474195e-5,2.162673250547703e-8,-8.783011687268403e-4,2.7344451028370228e-5,2.1747606543339466e-8,-8.781575952511767e-4,2.760340690883203e-5,2.1863392752506867e-8,-8.781030584565838e-4,2.780060405021578e-5,2.1951002414711444e-8,-8.781075985026394e-4,2.7889387640801088e-5,2.1990279643567898e-8,-8.781205807905475e-4,2.7844561840664714e-5,2.197066505165757e-8,-8.780829418086908e-4,2.767387999018061e-5,2.1896173090185512e-8,-8.779448870805086e-4,2.74194206923248e-5,2.178590013371832e-8,-8.776820355245091e-4,2.7146767973214645e-5,2.166911671129024e-8,-8.773032995196551e-4,2.692589193920319e-5,2.157667830482182e-8,-8.768478522267831e-4,2.6811226903755186e-5,2.153215088316852e-8,-8.763733034865937e-4,2.6827771709541934e-5,2.1545755773169187e-8,-8.759398672705631e-4,2.6966612293309254e-5,2.1612637371882027e-8,-8.75595423955086e-4,2.718972268856917e-5,2.171528609991872e-8,-8.753651397527334e-4,2.744156484383133e-5,2.182888124213572e-8,-8.75247681912975e-4,2.766380317219204e-5,2.1927841507686533e-8,-8.752182834583848e-4,2.7809084316441637e-5,2.1991802394858896e-8,-8.752370705991506e-4,2.78503969031841e-5,2.2009553750829985e-8,-8.752596751637627e-4,2.7784140827711733e-5,2.1980196488628183e-8,-8.752468743315799e-4,2.7627256123099378e-5,2.1911727125109708e-8,-8.751709906385506e-4,2.741056684869909e-5,2.181802519722558e-8,-8.750184292407893e-4,2.717106230583093e-5,2.1715442258405405e-8,-8.747891179445456e-4,2.6945211256019782e-5,2.161989799005169e-8,-8.744942264117304e-4,2.6764246324536103e-5,2.1544865267399724e-8,-8.741534012510591e-4,2.6651298588158375e-5,2.1500162537119337e-8,-8.73792188217311e-4,2.6619664630001775e-5,2.1491228293641114e-8,-8.734396730616577e-4,2.6671435073366737e-5,2.1518551762450664e-8,-8.731258580016011e-4,2.679606382670435e-5,2.1577100432093963e-8,-8.7287798682881e-4,2.696908317973565e-5,2.165584590639723e-8,-8.727151324958717e-4,2.7152056798777518e-5,2.1737843898724333e-8,-8.726411876491597e-4,2.7295776371153268e-5,2.180169400597056e-8,-8.72638123277193e-4,2.7348884643569248e-5,2.1825288578833227e-8,-8.726635290724197e-4,2.7272385770363037e-5,2.1792059497611342e-8,-8.726572026318421e-4,2.7056308642078688e-5,2.16981558387545e-8,-8.725583379939474e-4,2.673014546177635e-5,2.1556946339519295e-8,-8.723277672615219e-4,2.6358529275551267e-5,2.1397083391496553e-8,-8.719640776249092e-4,2.6020955368897574e-5,2.1253534423843147e-8,-8.715045501738401e-4,2.5784651947306544e-5,2.1155571953329428e-8,-8.71011034255676e-4,2.5683903518439307e-5,2.1117663450457478e-8,-8.705491307552995e-4,2.5713812934991007e-5,2.113685431521052e-8,-8.701702166525884e-4,2.5837496324388218e-5,2.119617587482424e-8,-8.699014006819977e-4,2.6000426627921144e-5,2.1271201276789622e-8,-8.697436570127698e-4,2.6145631661998167e-5,2.1336868320268546e-8,-8.696759171271625e-4,2.6225891752515828E-05,2.137282593288771e-8,-8.696624900426764e-4,2.621144415050257e-5,2.136666972028361e-8,-8.696616766384265e-4,2.609309797451578e-5,2.1315093592520665e-8,-8.696339802855976e-4,2.58812240139253e-5,2.1223246173929514e-8,-8.695486258957221e-4,2.560145694153938e-5,2.1102720086846007e-8,-8.693875014404906e-4,2.5288439658636282e-5,2.096877998090809e-8,-8.691463110554454e-4,2.4979158898865863e-5,2.083749001199522e-8,-8.688333814216199e-4,2.4707133641329762e-5,2.0723252879501703e-8,-8.684669509396333e-4,2.449818770419122e-5,2.0637035505226535e-8,-8.680718625220174e-4,2.4367943926356345e-5,2.0585317375536392e-8,-8.676763190924599e-4,2.432063005736646e-5,2.0569587886541e-8,-8.673088635246923e-4,2.4348592526606557e-5,2.0586157121313442e-8,-8.669953180759233e-4,2.4432155464044134e-5,2.0626149014017224e-8,-8.667551694766482e-4,2.4539935083866278e-5,2.0675728630559995e-8,-8.665969051568935e-4,2.4630410220170644e-5,2.0716875446414914e-8,-8.665124727648299e-4,2.4656354944466406e-5,2.0729342915038327e-8,-8.664725697134575e-4,2.4573949994687252e-5,2.0694555012387574e-8,-8.664264664054185e-4,2.43569138231536e-5,2.0601608133330403e-8,-8.663110139622543e-4,2.401199304406164e-5,2.0453867175701917e-8,-8.660704693962533e-4,2.3586965902470763e-5,2.0272378725582345e-8,-8.656806366986982e-4,2.316147155005631e-5,2.0091868871878088e-8,-8.651633988921566e-4,2.281978312873848e-5,1.9948869925345905e-8,-8.645805810525198e-4,2.2618527290404762e-5,1.9867633866200034e-8,-8.640097643843145e-4,2.256770525095591e-5,1.9851904328723277e-8,-8.635166675543678e-4,2.2633614094821955e-5,1.9886336038762515e-8,-8.63137948012429e-4,2.2757311910044172e-5,1.9944743482180508e-8,-8.628781813717942e-4,2.2875933655872637e-5,1.9999555353413913e-8,-8.62716501594731e-4,2.2938215554097242e-5,2.0028639520069148e-8,-8.626167844185233e-4,2.291219190087368e-5,2.0018587878018706e-8,-8.625373867297079e-4,2.2786717609544522e-5,1.9965210231098124e-8,-8.624388179572647e-4,2.256927580919071e-5,1.987237287145151e-8,-8.62289189850553e-4,2.2281913356921493e-5,1.975006320331657e-8,-8.620677332013985e-4,2.195621272300181e-5,1.9612130462789248e-8,-8.617664966194991e-4,2.16277997444501e-5,1.9473928068892485e-8,-8.613902656342819e-4,2.1330954467429593e-5,1.935006757875441e-8,-8.609548908336364e-4,2.109389378252815e-5,1.9252475069560743e-8,-8.60484364617139e-4,2.0935189055747062e-5,1.9188905233103563e-8,-8.600071436128826e-4,2.086164348674763e-5,1.91620410767755e-8,-8.595522857630777e-4,2.086763182325774e-5,1.916920143547591e-8,-8.591457649603986e-4,2.0935595960451394e-5,1.9202563113239573e-8,-8.588070106868445e-4,2.103741778004402e-5,1.9249802291736785e-8,-8.585455278490724e-4,2.1136657572340328e-5,1.9295144248855717e-8,-8.583574459539792e-4,2.119206027325631e-5,1.9320951414396224e-8,-8.582223041875423e-4,2.1163256231024873e-5,1.9310193204886934e-8,-8.581015046639913e-4,2.1019633830437e-5,1.9250187621650533e-8,-8.579412331421961e-4,2.0752106826417253e-5,1.913751847356446e-8,-8.576831677947019e-4,2.0384459053393114e-5,1.898276909784322e-8,-8.572838524692297e-4,1.997686961930766e-5,1.8811952221028124e-8,-8.567366035007616e-4,1.9613260947646273e-5,1.8661045623987466e-8,-8.560824766647061e-4,1.9371935268362093e-5,1.8563376708157653e-8,-8.553990379155328e-4,1.9293084341216936e-5,1.8535706064271064e-8,-8.547703530167884e-4,1.936321412352537e-5,1.8571651992880513e-8,-8.542559556665059e-4,1.952555465174852e-5,1.864632532315067e-8,-8.538756727449201e-4,1.970687106733324e-5,1.8727989569739696e-8,-8.536133022643489e-4,1.9843141688829028e-5,1.8789169711081318e-8,-8.534305325201742e-4,1.989357508587466e-5,1.8812667709058706e-8,-8.532814843157356e-4,1.984307509264013e-5,1.879252452479186e-8,-8.531232008002682e-4,1.969807749884717e-5,1.8732068113313398e-8,-8.529215833508998e-4,1.9480194465247334e-5,1.864101205609392e-8,-8.526540395091069e-4,1.9220106769211913e-5,1.8532719999846374e-8,-8.523103008730304e-4,1.8952387630912345e-5,1.8421969114052342e-8,-8.518922166171214e-4,1.8711017815063302e-5,1.83230973754797e-8,-8.514126718644334e-4,1.8525339647629737e-5,1.8248378472723516e-8,-8.508935758492765e-4,1.8416482805648164e-5,1.820658103690855e-8,-8.503628746581636e-4,1.839451037204468e-5,1.8201787199229734e-8,-8.498506739728784e-4,1.8456726342008194e-5,1.823266217066025e-8,-8.493848597949864e-4,1.858755364818312e-5,1.8292382925859e-8,-8.489867877928165e-4,1.8760075533750793e-5,1.8369304773500778e-8,-8.486675197616957e-4,1.8939094885436825e-5,1.8448317961918758e-8,-8.484249414374999e-4,1.908551666785093e-5,1.8512794690847823e-8,-8.482420318448436e-4,1.9161892414962764e-5,1.854700959220887e-8,-8.480866947760388e-4,1.9139120485201888e-5,1.853898427741999e-8,-8.47914089849887e-4,1.9004229019293404e-5,1.8483705191242097e-8,-8.476729841454053e-4,1.8768219337488148e-5,1.8386304668266145e-8,-8.473174336537129e-4,1.847105600233066e-5,1.8264025543393118e-8,-8.46823043761053e-4,1.8178888378359918e-5,1.814493877116609e-8,-8.462024594710862e-4,1.7968779622830955e-5,1.8061442704564362e-8,-8.455100213327113e-4,1.790201857047041e-5,1.8039011781499097e-8,-8.44827387250912e-4,1.7997506299222376e-5,1.8085063263440332e-8,-8.442336473553949e-4,1.82219741246474e-5,1.8184995677384506e-8,-8.437761660142642e-4,1.8504766407932626e-5,1.8308588065556925e-8,-8.434584576481965e-4,1.8767662195956877e-5,1.842267679658266e-8,-8.4324815382798e-4,1.895151458304113e-5,1.8502419193258396e-8,-8.430953104809079e-4,1.9028223922689918e-5,1.853631028756183e-8,-8.429494942284543e-4,1.8998849917980934e-5,1.852528741826402e-8,-8.427701821877676e-4,1.8884905878580218e-5,1.8478909462789927E-08,-8.425307640973115e-4,1.8718917804788393e-5,1.8411232187863652e-8,-8.4221863676526e-4,1.853706175763964e-5,1.8337626368837928e-8,-8.418337179676496e-4,1.837420046907955e-5,1.827269721178165e-8,-8.413866423383756e-4,1.8260484347668602e-5,1.822893007494307e-8,-8.408968704231464e-4,1.8218648925198794e-5,1.821564458019552e-8,-8.403904546985228e-4,1.8261602613572497e-5,1.8238040596675744e-8,-8.398971047784783e-4,1.8390365569227584e-5,1.8296347683661744e-8,-8.394462933471349e-4,1.859286581010708e-5,1.8385307406524103e-8,-8.390625554693548e-4,1.8844349042141637e-5,1.849434016111365e-8,-8.387606740926772e-4,1.9109956838288736e-5,1.86086555425353e-8,-8.38541735765671e-4,1.934955354341349e-5,1.871133966197072e-8,-8.383910411803681e-4,1.9524369896896514e-5,1.8786212347626552e-8,-8.382786396254357e-4,1.9604517498810704e-5,1.882101552190826e-8,-8.381628606157513e-4,1.957613104080785e-5,1.8810378176449664e-8,-8.379968680478822e-4,1.9446885164135782e-5,1.8758024552986323e-8,-8.377380159940519e-4,1.924845999124919e-5,1.8677651607636933e-8,-8.373591718549969e-4,1.9034058927322546e-5,1.8591733411884385e-8,-8.368597531357094e-4,1.886904423475679e-5,1.8527502435010273e-8,-8.362722099438048e-4,1.881422597460021e-5,1.8509963766801086e-8,-8.356585036787218e-4,1.890516421021724e-5,1.8553367099453363e-8,-8.350935969910999e-4,1.913599743885326e-5,1.865465529485676e-8,-8.346403242080155e-4,1.945802313397077e-5,1.8793064946602195e-8,-8.34327545916489e-4,1.979670869488179e-5,1.893732043323308e-8,-8.341432058884843e-4,2.0079064624085877e-5,1.905704488089487e-8,-8.340443957116498e-4,2.0256813697895776e-5,1.9132370964305275e-8,-8.339762461212966e-4,2.0315496394862994e-5,1.915767659009268e-8,-8.338890176634837e-4,2.0269954024688864e-5,1.9139616310843984e-8,-8.337477088005211e-4,2.015310994528189e-5,1.9092327487425826e-8,-8.335344195487556e-4,2.0004740360878148e-5,1.9032641784256222e-8,-8.332464619472108e-4,1.9863456916696745e-5,1.897669433393755e-8,-8.328930721117551e-4,1.9762094713418337e-5,1.8938027533986976e-8,-8.32492297882966e-4,1.9725314418621403e-5,1.8926665101186917e-8,-8.32068415293489e-4,1.97681582273195e-5,1.8948588036477114e-8,-8.316495311428089e-4,1.9894810847537727e-5,1.900526818571205e-8,-8.312647852018803e-4,2.0097427747145573e-5,1.909320121864192e-8,-8.309406311115315e-4,2.0355522535096095e-5,1.9203660731413604e-8,-8.306961138447342e-4,2.0636898921431595e-5,1.9323105247655924e-8,-8.305378232200559e-4,2.0901137965268803e-5,1.9434664802670044e-8,-8.304559556956476e-4,2.1106081507306507e-5,1.9520878928693548e-8,-8.304232734093543e-4,2.121667553013109e-5,1.9567400873830927e-8,-8.303983658234531e-4,2.121422167099143e-5,1.9566836162855173e-8,-8.303333870477527e-4,2.1103220227911646e-5,1.952153119702011e-8,-8.301848490250651e-4,2.0913258553630374e-5,1.9444248405592745e-8,-8.299248979192241e-4,2.069466744819484e-5,1.935621254368111e-8,-8.295501421522738e-4,2.0508232040964325e-5,1.928269583340997e-8,-8.290853574454966e-4,2.0410715377186484e-5,1.9246942812164235e-8,-8.285801055587781e-4,2.0439332177392955e-5,1.9263794111536346e-8,-8.2809766077195e-4,2.059951905236773e-5,1.9334808940806114e-8,-8.276980402284858e-4,2.086083916102179e-5,1.944680759157122e-8,-8.274201421640853e-4,2.1164367562493242e-5,1.957510063623294e-8,-8.272700826664273e-4,2.1440488239337026e-5,1.9690891838981256e-8,-8.272211164209307e-4,2.163042771909038e-5,1.9770119508971764e-8,-8.272248984694739e-4,2.1702369405362463e-5,1.980002378644996e-8,-8.27228099796603e-4,2.1656229173428763e-5,1.9781034701150995e-8,-8.271868289199328e-4,2.151765544352276e-5,1.9724204114230814e-8,-8.270743741962598e-4,2.1326531390819485e-5,1.9646358599563786e-8,-8.26882219952542e-4,2.1125677324855516e-5,1.9565355735798533e-8,-8.266169368517766e-4,2.095292185174144e-5,1.94967870339568e-8,-8.262957480189584e-4,2.0836914464318622e-5,1.9452286083130493e-8,-8.25942474644233e-4,2.0795532754586838e-5,1.9438941053262905e-8,-8.255843718992038e-4,2.083550384946244e-5,1.9459206265133282e-8,-8.252495647333255e-4,2.095228065573517e-5,1.9510899184512012e-8,-8.249644062349847e-4,2.112985311313308e-5,1.958715392852858e-8,-8.247500865889223e-4,2.1340896571258705e-5,1.96765117319045e-8,-8.24618243855376e-4,2.1548299489712724e-5,1.9763583444848516e-8,-8.245661579256653e-4,2.1709369314150928e-5,1.983081139445514e-8,-8.245731982415894e-4,2.1783542272099323e-5,1.9861656355918796e-8,-8.246010337711906e-4,2.174293624505869e-5,1.9844932417100713e-8,-8.24599762693081e-4,2.1582829143363222e-5,1.9779092489063103e-8,-8.245199320168276e-4,2.1327443144663598e-5,1.9674559193285197e-8,-8.243271463267552e-4,2.1027056964939968e-5,1.9552443886955017e-8,-8.240137478913354e-4,2.0745880537874062E-05,1.9439417625111437e-8,-8.236027048837928e-4,2.054443207807126e-5,1.9360323569771445e-8,-8.231420981185931e-4,2.046260583006955e-5,1.9331166390175837e-8,-8.226923062309316e-4,2.050897293837082e-5,1.9354816716611825e-8,-8.223101620532402e-4,2.065914064149752e-5,1.9420558033546697e-8,-8.220346412416486e-4,2.0863033376546166e-5,1.9507310836051278e-8,-8.218778118280972e-4,2.1058697312165184e-5,1.958944171580837e-8,-8.218233231961076e-4,2.1188662210092975e-5,1.964349015093813e-8,-8.218326197553458e-4,2.1214125651217814e-5,1.9653903415513317e-8,-8.21856605729153e-4,2.112285109501725e-5,1.9616154125454246e-8,-8.218486723198633e-4,2.092896166987658e-5,1.9536534435121197e-8,-8.21774900682099e-4,2.0665900016862456e-5,1.9429164058162805e-8,-8.216189955439171e-4,2.0376078120981753e-5,1.9311669317101807e-8,-8.213819939742871e-4,2.010103213726683e-5,1.9201115798957357e-8,-8.210785719648872e-4,1.987447711399243e-5,1.911118281263017e-8,-8.20732153301422e-4,1.9718757169934105e-5,1.905076891931154e-8,-8.203703758138432e-4,1.964388881521585e-5,1.9023668998090353e-8,-8.200215277640999e-4,1.9647991667492965e-5,1.9028805308153496e-8,-8.197118007420141e-4,1.971813517172542e-5,1.906061049159396e-8,-8.194627667111748e-4,1.983118207998987e-5,1.910940136475893e-8,-8.192884188063901e-4,1.99548908795387e-5,1.9161861647232118e-8,-8.191914615513263e-4,2.005020377589606e-5,1.920200887423933e-8,-8.191593400069361e-4,2.0076033762683125e-5,1.92131658914827e-8,-8.191616964490206e-4,1.999753215727303e-5,1.918132541360626e-8,-8.191520734989105e-4,1.9797250015148836e-5,1.909967483876304e-8,-8.190765586708921e-4,1.948575838000759e-5,1.8972896885336155e-8,-8.188893026085382e-4,1.9105659284594878e-5,1.881876618035338e-8,-8.185698549347501e-4,1.8723588649551148e-5,1.8664805935860888e-8,-8.181336800547649e-4,1.8410527065246534e-5,1.8540121068539456e-8,-8.176292682317155e-4,1.8218322499468568e-5,1.8465698823274743e-8,-8.171225750854558e-4,1.816336880244077e-5,1.844774602721915e-8,-8.166763753560664e-4,1.8224017124166648e-5,1.8476781130729858e-8,-8.163333375780404e-4,1.8350561857245017e-5,1.853193523194076e-8,-8.16107745214289e-4,1.8481632209535812e-5,1.8587831243527868e-8,-8.159860616604793e-4,1.8560533642340127e-5,1.8621333711184525e-8,-8.159338548044192e-4,1.8547406867931718e-5,1.8616474714546974e-8,-8.159059685028022e-4,1.8425544094309115e-5,1.856691337547998e-8,-8.158571772717478e-4,1.8201877478809365e-5,1.8475986230218312e-8,-8.157511568267292e-4,1.790263037304738e-5,1.8354797984609146e-8,-8.155662647845826e-4,1.756578402681822e-5,1.8219061692464088e-8,-8.152974777324008e-4,1.7232463817564305e-5,1.80855624276064e-8,-8.149548380423059e-4,1.6939285910434784e-5,1.79690735294896e-8,-8.14559552341495e-4,1.6713010048744217e-5,1.7880250136234366e-8,-8.141391520903434e-4,1.6567887899189816e-5,1.7824625038532265e-8,-8.13722894907782e-4,1.65052911686815e-5,1.7802510165505718e-8,-8.133380240113629e-4,1.6514764792978118e-5,1.7809448528021547e-8,-8.130068823177181e-4,1.6575692411162992e-5,1.7836899066496914e-8,-8.127444898746023e-4,1.6659173301351172e-5,1.787301036505299e-8,-8.12556110967037e-4,1.6730231029844328e-5,1.79035428156178e-8,-8.1243455505061e-4,1.6751012160459823e-5,1.7913194389418595e-8,-8.123576337801389e-4,1.6686038010803166e-5,1.7887740556088877e-8,-8.122873281432063e-4,1.6510317217035855e-5,1.7817300812807638e-8,-8.12173296759821e-4,1.6219656866485414e-5,1.7700472205744483e-8,-8.119633169768517e-4,1.5839706948872637e-5,1.754794502201198e-8,-8.116204935794114e-4,1.5427302108426434e-5,1.7382995748216617e-8,-8.111412381260521e-4,1.5058049525129414e-5,1.723638629723847e-8,-8.105632272728717e-4,1.4801145884299286e-5,1.713607209252042e-8,-8.099554919138893e-4,1.4692744717581516e-5,1.7096374287795603e-8,-8.093939263332287e-4,1.4722847634811913e-5,1.7112747706322244e-8,-8.089353936498745e-4,1.484233801753127e-5,1.7164799969601408e-8]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json new file mode 100644 index 00000000..36daa450 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":6000,"numberOfSamples":1000,"samples":[-8.086030009769924e-4,1.4983810405869992e-5,1.7224897231104907e-8,-8.083859978917138e-4,1.5083891420443416e-5,1.7267300877946733e-8,-8.082495498012613e-4,1.5098334698112563e-5,1.727428602498279e-8,-8.08147627922185e-4,1.5007880436382382e-5,1.72384405012867e-8,-8.080344588306433e-4,1.4817024022017442e-5,1.716203842239244e-8,-8.078727223656254e-4,1.4548770451198794e-5,1.705477562558989e-8,-8.076383715174149e-4,1.4237727414253643e-5,1.6930867623711068e-8,-8.07322519250199e-4,1.3922902257012772e-5,1.6806096847405343e-8,-8.069308512481781e-4,1.3641062334595963e-5,1.6695163186853533e-8,-8.064810674365431e-4,1.3421371907981373e-5,1.6609600165603765e-8,-8.059989962711845e-4,1.3281793410593358e-5,1.65564122262766e-8,-8.055140919096513e-4,1.3227437282497666e-5,1.6537470119423336e-8,-8.050550211507427e-4,1.3250758311506548e-5,1.654960752689265e-8,-8.046459011976815e-4,1.3333167640947059e-5,1.658525704041747e-8,-8.04303377210941e-4,1.3447472960351647e-5,1.6633415280209964e-8,-8.040343930544604e-4,1.3560785131852206e-5,1.6680814883554258e-8,-8.038344371049681e-4,1.3637887698738715e-5,1.6713305884428016e-8,-8.036861808400415e-4,1.3645376246194308e-5,1.6717552173535383e-8,-8.035588881624019e-4,1.355715046434086e-5,1.668324932697258e-8,-8.034098545481887e-4,1.3361633179672876e-5,1.660599824235996e-8,-8.031899161995416e-4,1.3069806636622722e-5,1.6490473396248044e-8,-8.028548171317579e-4,1.2720836118968e-5,1.635260915989386e-8,-8.023817298130074e-4,1.2379672673151174e-5,1.6218567533971117e-8,-8.017848916609258e-4,1.21214866090865e-5,1.6118432225501397e-8,-8.011195394685814e-4,1.2004672862047483e-5,1.6075358566152277e-8,-8.004664161243661e-4,1.2045064498369676e-5,1.6095295025865495e-8,-7.999018683719954e-4,1.2207888551202842e-5,1.6163899894807838e-8,-7.994702224832471e-4,1.242340488168506e-5,1.625294935668257e-8,-7.991732540075557e-4,1.2615665237930678e-5,1.6331930886767175e-8,-7.989782632286061e-4,1.2727385321542004e-5,1.6378010390939176e-8,-7.988353176257354e-4,1.2731278778766297e-5,1.6380533700705246e-8,-7.98693545654588e-4,1.262891363153558e-5,1.6340492793338305e-8,-7.985117563218257e-4,1.2443008649451221e-5,1.6267331548458157e-8,-7.982633092416262e-4,1.2208291416633506e-5,1.617517573988445e-8,-7.97937024226046e-4,1.1963551111059878e-5,1.6079587401967125e-8,-7.975359220318068e-4,1.1745517867734186e-5,1.5995123017000115e-8,-7.970748169146011e-4,1.1584298423249006e-5,1.5933578635139873e-8,-7.96577147084504e-4,1.1500116000004205e-5,1.59027823489698e-8,-7.960712612774264e-4,1.1501312858278244e-5,1.5905873133149612e-8,-7.955863788122124e-4,1.1583659586297626e-5,1.5941057128577827e-8,-7.951485028139105e-4,1.1731083070377464e-5,1.6001886167851592e-8,-7.947767272267163e-4,1.191780985300591e-5,1.607808021319529e-8,-7.944803671342594e-4,1.2111620389700717e-5,1.615680382240154e-8,-7.942570988685387e-4,1.2277833661532118e-5,1.622426162217438e-8,-7.940921495251726e-4,1.2383811890041994e-5,1.6267523534675877e-8,-7.939586304605242e-4,1.2403888228974189e-5,1.627651653757225e-8,-7.938193280601158e-4,1.2324675476991541e-5,1.6246136706354253e-8,-7.936307142675456e-4,1.2150538325271284e-5,1.6178380649204796e-8,-7.933502814410618e-4,1.1908091876990174e-5,1.608405253597014e-8,-7.929477558193591e-4,1.164701184564693e-5,1.5982993948326116e-8,-7.924185834346178e-4,1.1433225812865484e-5,1.5901308272972388e-8,-7.91794201526995e-4,1.1331683271163489e-5,1.5864503448445484e-8,-7.911404620961953e-4,1.1381697803054312e-5,1.5887775959579784e-8,-7.905387505296019e-4,1.1576581858174432e-5,1.5968081661271605e-8,-7.900557579253249e-4,1.1862063556780149e-5,1.6083659449037498e-8,-7.897185238722374e-4,1.2157584885353175e-5,1.6202533533502623e-8,-7.895090488599649e-4,1.238821600505574e-5,1.629512295943271e-8,-7.893784662655317e-4,1.2508703453700893e-5,1.6343711956180873e-8,-7.892687928634058e-4,1.2510154891614356e-5,1.6345059350363414e-8,-7.891303130012338e-4,1.2412762325594466e-5,1.630746636423513e-8,-7.889301607306106e-4,1.22532563576661e-5,1.6245726990312346e-8,-7.886537075923972e-4,1.207350096757021e-5,1.6176528951831164e-8,-7.883021088407754e-4,1.1912612868365128e-5,1.611529698390703e-8,-7.878886554381245e-4,1.1802366938175958e-5,1.6074404646753326e-8,-7.874351827903575e-4,1.1764678405500699e-5,1.606225725212218e-8,-7.869686785579548e-4,1.1810193745663737e-5,1.6082821884922013e-8,-7.865178808041266e-4,1.1937644143326378e-5,1.613543027797478e-8,-7.861097334099989e-4,1.2134002375285157e-5,1.621485643068633e-8,-7.857657050956631e-4,1.2375715139896458e-5,1.631178566628287e-8,-7.854982761710509e-4,1.2631342722271491e-5,1.6413830995212057e-8,-7.853082129742637e-4,1.2865627763957707e-5,1.650712800670973e-8,-7.851832404152557e-4,1.3044611801087987e-5,1.6578365268496393e-8,-7.850984979333072e-4,1.3141234772513003e-5,1.661701655440917e-8,-7.850189859904393e-4,1.314074642924285e-5,1.6617484545055545e-8,-7.849040783473408e-4,1.3045167089176555e-5,1.658083277620777e-8,-7.847140887854131e-4,1.2875989940709468e-5,1.6515781106734278e-8,-7.84418739673568e-4,1.2674020385660439e-5,1.643854403323704e-8,-7.840067264380274e-4,1.2494690124657561e-5,1.637089555624342e-8,-7.834940629310338e-4,1.2397202649814611e-5,1.633586078646625e-8,-7.829269123445694e-4,1.242762480633356e-5,1.6351121218225165e-8,-7.823738580167101e-4,1.2600199243328678e-5,1.6421819173272966e-8,-7.819059640317111e-4,1.2886068491034284e-5,1.6536310251172648e-8,-7.815711190078477e-4,1.3218908359013295e-5,1.6668481029581357e-8,-7.813760467322517e-4,1.3518369457025356e-5,1.678692018769316e-8,-7.812866097556989e-4,1.3719738169680302e-5,1.6866455278038853e-8,-7.81245043675736e-4,1.3793772038801468e-5,1.689586528796916e-8,-7.811924892995569e-4,1.3748855436262393e-5,1.6878708749903426e-8,-7.810853126995724e-4,1.3619700644445478e-5,1.6828864667497608e-8,-7.809012145161698e-4,1.3452099763330615e-5,1.6764485192192976e-8,-7.806376216935296e-4,1.3290653946538645e-5,1.6703112676782687e-8,-7.803066615377375e-4,1.31716120529323e-5,1.6658847878700447e-8,-7.799298430182615e-4,1.311988593603372e-5,1.6641219568441624e-8,-7.795337437080761e-4,1.3148379669826384e-5,1.665500141543589e-8,-7.791466519745774e-4,1.3258192670318894e-5,1.6700371540229692e-8,-7.787956166079658e-4,1.3439123013885566e-5,1.6773161126941902e-8,-7.785034521569552e-4,1.3670540636302536e-5,1.6865211246133127e-8,-7.782855194761558e-4,1.3923070098588027e-5,1.6965022456657025e-8,-7.781465158733033e-4,1.4161671472159447e-5,1.705894395665733e-8,-7.780780274644127e-4,1.4350439747166847e-5,1.713304166764391e-8,-7.780578724819625e-4,1.4458808126371696e-5,1.717552433911576e-8,-7.780520945693767e-4,1.4468165316748068e-5,1.7179332308174036e-8,-7.780199264883032e-4,1.4377381074197417e-5,1.7144283672725583e-8,-7.779212697790456e-4,1.42055818063788e-5,1.707811591367681e-8,-7.777254715128031e-4,1.399092160934568e-5,1.6995928407681764e-8,-7.774196852037493e-4,1.37848241088391e-5,1.691784077706239e-8,-7.770148281025337e-4,1.3641905255902624e-5,1.68649932739021e-8,-7.7654695118254e-4,1.3606723344494496e-5,1.6854386908037733e-8,-7.760719733956719e-4,1.3699981752654324e-5,1.6893614104122298e-8,-7.756528920660803e-4,1.3908611710779359e-5,1.6977171984468366e-8,-7.753414973715193e-4,1.4185135339496087e-5,1.708636928482128e-8,-7.751607783545031e-4,1.4459758828692502e-5,1.7194078255654558e-8,-7.750965022472446e-4,1.4662655192892729e-5,1.7273331572288793e-8,-7.751031768498831e-4,1.4747011345581016e-5,1.730618293517172e-8,-7.751215862559233e-4,1.4701900854900151e-5,1.7288656969080978e-8,-7.750986283316115e-4,1.45502732264208e-5,1.7229950783472687e-8,-7.750005720993924e-4,1.4336090541435382e-5,1.714739884303355e-8,-7.748166257563864e-4,1.4108830030091316e-5,1.7060381671628664e-8,-7.74555246270904e-4,1.3911680743308552e-5,1.6985680755460048e-8,-7.742375216046733e-4,1.3775437312394145e-5,1.6935101840957774e-8,-7.738908672395347e-4,1.3716934985120997e-5,1.691492118059338e-8,-7.735443296708602e-4,1.373987657547806e-5,1.6926288994825302e-8,-7.732253688257358e-4,1.3836379992091725e-5,1.6965903557041073e-8,-7.729574201870145e-4,1.398850143961783e-5,1.702664562074045e-8,-7.727575479089458e-4,1.41697546103367e-5,1.7098179346093112e-8,-7.726338127068317e-4,1.4347167415583573e-5,1.7167741915981117e-8,-7.72582526013079e-4,1.4484672906976143e-5,1.7221441721592798e-8,-7.725862452751478e-4,1.4548420666369706e-5,1.724630156120042e-8,-7.726138958417847e-4,1.4513823225779425e-5,1.723297684502607e-8,-7.726244080267737e-4,1.4372974279860863e-5,1.717861929269323e-8,-7.725743889406402e-4,1.4139927504773041e-5,1.708890500581759e-8,-7.724286327675101e-4,1.3851021527237483e-5,1.6978122122320604e-8,-7.721705055599232e-4,1.3558663671444288e-5,1.6866694872960056e-8,-7.718085762849863e-4,1.3319387181004731e-5,1.6776479385700888e-8,-7.713767987397502e-4,1.3179295367351444e-5,1.6725086614472134e-8,-7.709275714331829e-4,1.3161122848693512e-5,1.6720920077215314e-8,-7.705191844169844e-4,1.3256827859980563e-5,1.6760442718757147e-8,-7.702008063045723e-4,1.3428227793557443e-5,1.6828582942267516e-8,-7.699990644679152e-4,1.361618554202354e-5,1.6902388068197547e-8,-7.699104039245936e-4,1.3756467861176603e-5,1.6957151603506948e-8,-7.699023224946573e-4,1.3797806695198463e-5,1.697331252819716e-8,-7.69923693570122e-4,1.3715970518988264e-5,1.6941802014512077e-8,-7.699204730517889e-4,1.3518607018056203e-5,1.686585566047806e-8,-7.698506029324883e-4,1.3239647040700348e-5,1.675881321149357e-8,-7.696928309426752e-4,1.292679553392078e-5,1.663924458294889e-8,-7.694477547487295e-4,1.2627916951666916e-5,1.6525649634657365e-8,-7.691330174202381e-4,1.2380977939982187e-5,1.6432564147368763e-8,-7.687761526504343e-4,1.2209237379755138e-5,1.6368739832210366e-8,-7.684079653894965e-4,1.2120781661778011e-5,1.633703602331063e-8,-7.680577369530784e-4,1.2110432408898472e-5,1.6335228492463344e-8,-7.677501944254693e-4,1.21623329271923e-5,1.6357054465017322e-8,-7.675035516029946e-4,1.2252353588631538e-5,1.6393155437041988e-8,-7.673278510063229e-4,1.2350244031443248e-5,1.6431898304259127e-8,-7.672231013092557e-4,1.2422047112441263e-5,1.6460286860244704e-8,-7.671772688900853e-4,1.243363156115782e-5,1.6465302548663993e-8,-7.671649640707796e-4,1.2356108383738767e-5,1.6435971563363704e-8,-7.671484101972802e-4,1.2173134658280302e-5,1.6366160768870968e-8,-7.670825263514741e-4,1.188858814480631e-5,1.6257519307403445e-8,-7.669249561884815e-4,1.153125860759139e-5,1.6121270567197454e-8,-7.666492306156377e-4,1.115245465159126e-5,1.5977261511360678e-8,-7.662560978121537e-4,1.0814456656206232e-5,1.5849466079461248e-8,-7.657770512027595e-4,1.05724402594284e-5,1.5758977593618244e-8,-7.65267023298901e-4,1.0456872508954073e-5,1.571723833544501e-8,-7.647885985095952e-4,1.0463873633946137e-5,1.5722417018223885e-8,-7.643941100002343e-4,1.0557097979145212e-5,1.5760262592280024e-8,-7.641121194876584e-4,1.0679365871370066e-5,1.580868049828012e-8,-7.639418824019487e-4,1.0769014504534602e-5,1.5844044262621295e-8,-7.63856040874777e-4,1.0775642632836637e-5,1.5847200884499e-8,-7.638095816807227e-4,1.067134664327151e-5,1.5807708446849496e-8,-7.637520719001363e-4,1.0455341968064698e-5,1.5725533933861105e-8,-7.636398633410946e-4,1.015159717703648e-5,1.5610082730947348e-8,-7.634452271731003e-4,9.80080001717917e-6,1.547706895850993e-8,-7.63160419406769e-4,9.449412193445568e-6,1.5344290126782374e-8,-7.627963935193374e-4,9.13916163473737e-6,1.522760366709052e-8,-7.623775983584871e-4,8.899634906261868e-6,1.5138131787055436e-8,-7.619351862275943e-4,8.745021320744058e-6,1.5081084100568852e-8,-7.615007251523846e-4,8.674467790722235e-6,1.5055961298020598E-08,-7.611015754607918e-4,8.674636046522299e-6,1.5057573206547553e-8,-7.607580727699104e-4,8.723012138457471e-6,1.507730793528806e-8,-7.604819845856674e-4,8.79104729455283e-6,1.5104310215033872e-8,-7.602755220059144e-4,8.84693302571431e-6,1.512651308174354e-8,-7.60130395955743e-4,8.858401879917029e-6,1.5131688225382546e-8,-7.600268787531797e-4,8.796280560370882e-6,1.5108794499177295e-8,-7.599335469922736e-4,8.639531259323042e-6,1.5049899963453894e-8,-0.000759809210702789,8.381910431287344e-6,1.495271925500096e-8,-7.596089689111743e-4,8.038852722231386e-6,1.4823230368913413e-8,-7.592954714676379e-4,7.651012523481406e-6,1.4677004696445236e-8,-7.588534536653339e-4,7.279557888325591e-6,1.4537373653592984e-8,-7.583012167940397e-4,6.990438849818558e-6,1.4429384557414762e-8,-7.576907836367265e-4,6.831496399448591e-6,1.4371061617021388e-8,-7.570930731261787e-4,6.813281142864784e-6,1.4366159181078007e-8,-7.56573893838745e-4,6.904553518906711e-6,1.440256548875904e-8,-7.561728030269616e-4,7.044803405478948e-6,1.445716559337654e-8,-7.55894167206311e-4,7.166043359666975e-6,1.450415417168199e-8,-7.55711412564325e-4,7.212993883249746e-6,1.4522671727194704e-8,-7.555791656848098e-4,7.1549930276133835e-6,1.4501273602714309e-8,-7.554470640511585e-4,6.988776194001312e-6,1.443893097512812e-8,-7.552712370159999e-4,6.734529749762169e-6,1.4343479112262025e-8,-7.550218631592772e-4,6.428246653777687e-6,1.422866437274883e-8,-7.546866678361489e-4,6.112788824185316e-6,1.4110719482184918e-8,-7.542707923333388e-4,5.8292867079302145e-6,1.400510243390426e-8,-7.537936783321645e-4,5.610111184424559e-6,1.392387568318107e-8,-7.532839358400108e-4,5.474383321977379e-6,1.3874075234006555e-8,-7.527734587962739e-4,5.42640635004478e-6,1.3857186797906472e-8,-7.522919859404003e-4,5.45669894844625e-6,1.386957766596827e-8,-7.518629339501932e-4,5.544851652733658e-6,1.3903575419281547e-8,-7.515008253699221e-4,5.66324214311497e-6,1.3948838400251825e-8,-7.51210094786353e-4,5.780767390543559e-6,1.3993723032625362e-8,-7.509847483529711e-4,5.866229168685598e-6,1.4026532943938554e-8,-7.508084438557491e-4,5.891537175053618e-6,1.4036723339664531e-8,-7.506548991499108e-4,5.835186884660035e-6,1.4016225902040902e-8,-7.504890649576297e-4,5.6865153995048614e-6,1.3961069522205696e-8,-7.502702069824309e-4,5.450810519333698e-6,1.3873309470797243e-8,-7.499584705215199e-4,5.154093641144201e-6,1.376281194863296e-8,-7.495258303846799e-4,4.844492327076601e-6,1.3647730610076522e-8,-7.489697010459084e-4,4.585680212391129e-6,1.3551982235163058e-8,-7.483229773845283e-4,4.439424944083938e-6,1.3498642646116442e-8,-7.47651384167147e-4,4.441135789993236e-6,1.3500781498633393e-8,-7.47033630108719e-4,4.5810783550153105e-6,1.3554518828823992e-8,-7.465319640685318e-4,4.8048662841334895e-6,1.3639340521473976e-8,-7.461696806020518e-4,5.035072310667735e-6,1.3726250888424918e-8,-7.45927649234082e-4,5.200984456189078e-6,1.3788876550238137e-8,-7.457581262680648e-4,5.260058265685222e-6,1.3811432021938078e-8,-7.456046602651826e-4,5.203880705388684e-6,1.3790914319102578e-8,-7.454181631269655e-4,5.052110434397819e-6,1.373481274651468e-8,-7.451656280700271e-4,4.841472760620587e-6,1.3656958068869079e-8,-7.448325507537849e-4,4.61494382342504e-6,1.357343640410499e-8,-7.444214445461733e-4,4.413322175715639e-6,1.3499417669267064e-8,-7.439484346229335e-4,4.2694368736615086e-6,1.3447009746671435e-8,-7.434389857049532e-4,4.204518303627032e-6,1.3423957631836567e-8,-7.429232000552066e-4,4.22642353337615e-6,1.3433047936838739e-8,-7.424310713391792e-4,4.3296407656193255e-6,1.3472159698785832e-8,-7.419881612882491e-4,4.496920195240808e-6,1.3534885426142835e-8,-7.416121363128246e-4,4.702242436589464e-6,1.3611614172495427e-8,-7.413105280088105e-4,4.9146848337064315e-6,1.369092983616905e-8,-7.410798564648585e-4,5.102579289552534e-6,1.3761123342581654e-8,-7.409059284613239e-4,5.2374620959614515e-6,1.3811649751762265e-8,-7.40765021747722e-4,5.2976581500819286e-6,1.3834473325427858e-8,-7.406258251361314e-4,5.271569720175211e-6,1.3825313013330133e-8,-7.404522940607082e-4,5.16079816624066e-6,1.3784817350730312e-8,-7.402080188256512e-4,4.982998369865964e-6,1.3719616164717567e-8,-7.398629579022926e-4,4.773502162654375e-6,1.3642888630399176e-8,-7.394027814983437e-4,4.583451075155526e-6,1.3573616754794363e-8,-7.388391120671625e-4,4.471358391383276e-6,1.3533406453527241e-8,-7.382156353710173e-4,4.486293417993243e-6,1.3540246689754017e-8,-7.376025584177996e-4,4.646263952038066e-6,1.360057244394542e-8,-7.370753966750942e-4,4.923220958661702e-6,1.3703844593894654e-8,-7.366853493943496e-4,5.247831278658755e-6,1.3824412277992002e-8,-7.364384127765779e-4,5.535851078356583e-6,1.3931243008841947e-8,-7.362964904189415e-4,5.721421847439438e-6,1.400013251189647e-8,-7.361977969831083e-4,5.777834083495166e-6,1.4021317172913075e-8,-7.360817614101209e-4,5.717840477241389e-6,1.3999596259483795e-8,-7.359055977095308e-4,5.580085272187351e-6,1.3949330970951832e-8,-7.356494891230436e-4,5.412741838724204e-6,1.3888375540751401e-8,-7.353140711726487e-4,5.2611317114854454e-6,1.3833462198014537e-8,-7.349148352444343e-4,5.160747629068616e-6,1.3797605620566516e-8,-7.34476381499244e-4,5.134402307300587e-6,1.378907362699951e-8,-7.340275945238301e-4,5.1916865952263e-6,1.3811240956866352e-8,-7.335976379390709e-4,5.3295409738639065e-6,1.386285790594125e-8,-7.332124264851362e-4,5.533583318487555e-6,1.393857552488052e-8,-7.328914883847182e-4,5.780224195792896e-6,1.4029729175094004e-8,-7.326453464977734e-4,6.039657534633526e-6,1.412541622107681e-8,-7.324737353478441e-4,6.279722160979335e-6,1.4213885118568412e-8,-7.323650721376349e-4,6.470322863277057e-6,1.4284138014656952e-8,-7.322974036581984e-4,6.587844288483066e-6,1.4327549734585913e-8,-7.322407659586676e-4,6.619032470350085e-6,1.4339305787613665e-8,-7.321607813179032e-4,6.563928060747684e-6,1.4319492082724502e-8,-7.320233046863541e-4,6.4374966021072834e-6,1.4273690279829042e-8,-7.317999978283977e-4,6.269641412024475e-6,1.4212954276300681e-8,-7.314747508146167e-4,6.103003158628865e-6,1.415295567438129e-8,-7.310503956340962e-4,5.987372946262786e-6,1.4111888222525968e-8,-7.30553886574779e-4,5.969501086118192e-6,1.4106716472582734e-8,-7.300364338939657e-4,6.078516230287104e-6,1.4147877299553037e-8,-7.295642924788504e-4,6.3107236580662384e-6,1.4233817360402606e-8,-7.29198788762624e-4,6.622175486804494e-6,1.4348383535941494e-8,-7.289720333664855e-4,6.9380135239147e-6,1.4464270004578152e-8,-7.288720132220635e-4,7.178968146684719e-6,1.4552629285696456e-8,-7.288478475491566e-4,7.292033122646066e-6,1.4594189017363577e-8,-7.288324425920637e-4,7.267653302542506e-6,1.4585519239748402e-8,-7.287681356467766e-4,7.1358561174840265e-6,1.4537665753835853e-8,-7.286220514824529e-4,6.9483598487620115e-6,1.4469630977301123e-8,-7.28388085845522e-4,6.7592678922152605e-6,1.4401275496516345e-8,-7.280804913481166e-4,6.612273121504457e-6,1.4348581630811597e-8,-7.277252407959589e-4,6.5354231757555416e-6,1.4321716844225746e-8,-7.273527660572583e-4,6.540950211029966e-6,1.4324997142073501e-8,-7.269930114233965e-4,6.6273182842564705e-6,1.4357691570767854e-8,-7.26672240266485e-4,6.781718300136292e-6,1.4414990002890305e-8,-7.264107154812758e-4,6.982473886382033e-6,1.4488915944389668e-8,-7.262207318281119e-4,7.201524453767113e-6,1.4569238469116222e-8,-7.261048945983162e-4,7.407366857871365e-6,1.464452799757507e-8,-7.260549073749619e-4,7.568797659062485e-6,1.4703494431167381e-8,-7.26051465526772e-4,7.659436861891897e-6,1.4736614332348274e-8,-7.260658689683676e-4,7.662469338693832e-6,1.4737849783051846e-8,-7.260636091525101e-4,7.574690894230019e-6,1.4706123818166879e-8,-7.260097162467727e-4,7.408843381596091e-6,1.4646170303919831e-8,-7.258751869359084e-4,7.193327753172565e-6,1.4568414770672015e-8,-7.256434329193616e-4,6.968816351578809e-6,1.4487705994885722e-8,-7.253155606930208e-4,6.781829885047062e-6,1.4420936000282275e-8,-7.249132562182546e-4,6.6756763505280914e-6,1.4383719471977372e-8,-7.244778292372096e-4,6.679612946037396e-6,1.438647617104953e-8,-7.240638597492315e-4,6.798235959896041e-6,1.443065370266917e-8,-7.237266826504071e-4,7.004766318589259e-6,1.4506391489857573e-8,-7.235054613225411e-4,7.243025516191428e-6,1.4593301323513466e-8,-7.2340765660686e-4,7.441405783647142e-6,1.4665511557876749e-8,-7.234034010785615e-4,7.53631382926181e-6,1.4700082991218885e-8,-7.234351925205399e-4,7.495034347391305e-6,1.468523799630331e-8,-7.234393429224217e-4,7.325932982914151e-6,1.462407472647779e-8,-7.233679091640017e-4,7.071240070168453e-6,1.4531993918580552e-8,-7.2320061796834e-4,6.7884821942071435e-6,1.4429962503804012e-8,-7.229442000740695e-4,6.531515408382787e-6,1.4337580335722595e-8,-7.226237824510028e-4,6.338676971745417e-6,1.4268730878278133e-8,-7.222726609371696e-4,6.229186086844068e-6,1.4230270463511608e-8,-7.219243370456767e-4,6.204979076589403e-6,1.4222735101428858e-8,-7.216077209136364e-4,6.254637305234233e-6,1.424182454315981e-8,-7.213447052154808e-4,6.357313551246988e-6,1.427987548429127e-8,-7.211489353260135e-4,6.485977719230195e-6,1.432706196354135e-8,-7.210249390732579e-4,6.610178726644471e-6,1.4372391800318248e-8,-7.209673047686168e-4,6.69888928465445e-6,1.440471413451235e-8,-7.209601280974389e-4,6.7240278150433335e-6,1.4413965009805703e-8,-7.20977427897608e-4,6.664882671759e-6,1.4392744472576701e-8,-7.209854343714221e-4,6.51295128433434e-6,1.4338056762127022e-8,-7.209473640933031e-4,6.27595967171071e-6,1.4252764848687728e-8,-7.20830498270342e-4,5.979351536502665e-6,1.4146129546232638e-8,-7.206142541252474e-4,5.663667819126294e-6,1.4032848951131945e-8,-7.202969652261338e-4,5.377288241995543e-6,1.3930404038766788e-8,-7.198989165010806e-4,5.1656853148451214e-6,1.3855144520274798e-8,-7.194600346572165e-4,5.059761967389392e-6,1.381807600558674e-8,-7.190320840484526e-4,5.066413372274996e-6,1.3821501796020195e-8,-7.186667008859963e-4,5.164217116728777e-6,1.3857550892980985e-8,-7.184018625214499e-4,5.306290101127747e-6,1.3909277458429183e-8,-7.182503872805278e-4,5.430848543585556e-6,1.3954476928807232e-8,-7.181945402363831e-4,5.477745639924967e-6,1.3971593615188382e-8,-7.181899363308149e-4,5.406401461740874e-6,1.3946114620028615e-8,-7.181787956068019e-4,5.208432912413644e-6,1.3875092760960466e-8,-7.181080232052682e-4,4.909307597908525e-6,1.3767756999698908e-8,-7.179446434546303e-4,4.558250395919083e-6,1.3641890350548404e-8,-7.176825410055812e-4,4.2115104900122955e-6,1.3517783575060329e-8,-7.173394303115774e-4,3.9166207270580965e-6,1.3412530864261023e-8,-7.169476918402883e-4,3.7030604472824477e-6,1.3336657086835069e-8,-7.165441754546074e-4,3.5802790936875876e-6,1.3293434686648582e-8,-7.161624370313028e-4,3.540740334466443e-6,1.3280030267105057e-8,-7.158283342384227e-4,3.5648889198243974e-6,1.3289336702046267e-8,-7.155582446948228e-4,3.6259309695520506e-6,1.3311712356351884e-8,-7.153587035969551e-4,3.6936410852722728e-6,1.3336343509346127e-8,-7.152264834437153e-4,3.7373251672731826e-6,1.3352284086218272e-8,-7.151486443905965e-4,3.7285507918335262e-6,1.3349406474614047e-8,-7.151027106872547e-4,3.6443643170977546e-6,1.3319531867733131e-8,-7.150577088567976e-4,3.471371309569102e-6,1.3257885044742072e-8,-7.149771233861474e-4,3.2102934517910352e-6,1.3164734543938834e-8,-7.148246566289133e-4,2.879607352494538e-6,1.304671174381637e-8,-7.145727155168279e-4,2.5159715205526265e-6,1.2916970172838227e-8,-7.14211741474117e-4,2.1691340011926946e-6,1.2793345447593278e-8,-7.13756704294834e-4,1.8907340958244058e-6,1.2694309938959155e-8,-7.13246867286023e-4,1.7195895090076379e-6,1.263368292154631e-8,-7.127372110269032e-4,1.6687917986243744e-6,1.2616035558109819e-8,-7.122837106314069e-4,1.7200599947476228e-6,1.2634736954970411e-8,-7.11927625851379e-4,1.8279231828251246e-6,1.2673513419775649e-8,-7.116842639270483e-4,1.9322272870562014e-6,1.2710931582090524e-8,-7.115395372739504e-4,1.9745795969288553e-6,1.2726232447310445e-8,-7.114547557725002e-4,1.9136654302389338e-6,1.270474472926178e-8,-7.113777961538001e-4,1.735292690655213e-6,1.2641441637291946e-8,-7.112572859060644e-4,1.4546876493828617e-6,1.2541763992937194e-8,-7.110556761496227e-4,1.1107338000528394e-6,1.2419577806846834e-8,-7.107574398631749e-4,7.542984399074633e-7,1.2293006190122626e-8,-7.103703854584871e-4,4.3467766591549663e-7,1.2179579666103922e-8,-7.099206413352514e-4,1.8848792044254664e-7,1.209227121863942e-8,-7.094440058956009e-4,3.38112439872334e-8,1.2037433652280913e-8,-7.089770272256449e-4,-3.005946575574514e-8,1.2014751159396523e-8,-7.085502677011695e-4,-1.8942666134325098e-8,1.2018584823579895e-8,-7.081845728037587e-4,4.1504324056836106e-8,1.2039859175127503e-8,-7.078898530136206e-4,1.2085396250360532e-7,1.2067846450829226e-8,-7.07665357590904e-4,1.8796389173417595e-7,1.2091574008084617e-8,-7.075005062641622e-4,2.1404627281451953e-7,1.2100880394544461e-8,-7.073757642706145e-4,1.7527949313218791e-7,1.2087321949694448e-8,-7.072636271028598e-4,5.563556618695607e-8,1.2045175593473184e-8,-7.07130371455471e-4,-1.496666377152965e-7,1.1972682276401499e-8,-7.069396260706627e-4,-4.3038263800395507e-7,1.1873415802529695e-8,-7.06658736467273e-4,-7.585342773530107e-7,1.1757266370952408e-8,-7.062679103912365e-4,-1.0893111587869973e-6,1.164011958067034e-8,-7.057699493448573e-4,-1.3683565279279107e-6,1.1541242460665835e-8,-7.051958014848092e-4,-1.546143275736306e-6,1.1478149826314971e-8,-7.046006461074884e-4,-1.5955509000684547e-6,1.1460378253613378e-8,-7.040489785775769e-4,-1.5244730508863847e-6,1.1485082661954835e-8,-7.035938487042454e-4,-1.3758182686775965e-6,1.1537113738876136e-8,-7.032597812034259e-4,-1.2137575651664247e-6,1.1593901613711014e-8,-7.030369079407669e-4,-1.1027795845962554e-6,1.1632801609042198e-8,-7.028872532957906e-4,-1.0889580682558247e-6,1.1637630789638363e-8,-7.027584678100196e-4,-1.1897271998792792e-6,1.1602238033439061e-8,-7.025988796732991e-4,-1.3932883666335377e-6,1.1530725736851102e-8,-7.02369467900341e-4,-1.6652872066721532e-6,1.1435125811886794e-8,-7.020507465969052e-4,-1.959328698109832e-6,1.1331711320640786e-8,-7.016442939978633e-4,-2.2282184952551496e-6,1.1237034626369414e-8,-7.011697035243303e-4,-2.4335618600813347e-6,1.1164544945400339e-8,-7.006583801112918e-4,-2.5521150452073807e-6,1.1122365961218336e-8,-7.001460060304543e-4,-2.5781375982917395e-6,1.1112496075816941e-8,-6.996655112290227e-4,-2.5220161431554106e-6,1.1131319063948755e-8,-6.992418776281199e-4,-2.4062965783673872e-6,1.1171004748331547e-8,-6.988893060139256e-4,-2.260591788360715e-6,1.1221277939326513e-8,-6.986105278643894e-4,-2.1166353920163535e-6,1.1271116834225942e-8,-6.983975667488254e-4,-2.0042272969958953e-6,1.1310137596645092e-8,-6.982331775114807e-4,-1.948167868728002e-6,1.1329646935505253e-8,-6.980924984224593e-4,-1.9658036073505293e-6,1.1323502940205919e-8,-6.979449169280985e-4,-2.064692866216944e-6,1.128895545665963e-8,-6.977566158534427e-4,-2.240091878769088e-6,1.1227562045779688e-8,-6.974946560896657e-4,-2.4725062008836e-6,1.1146078731656455e-8,-6.971334322778307e-4,-2.7265579611108132e-6,1.1056870056968845e-8,-6.966634001809645e-4,-2.9535495920723803e-6,1.0976992639682918e-8,-6.960998225694706e-4,-3.1003923112501523e-6,1.0925024976391107e-8,-6.954864809875409e-4,-3.125514095301827e-6,1.0915470365326537e-8,-6.94888405730523e-4,-3.0171655312078273e-6,1.0952385872816837e-8,-6.943721615170897e-4,-2.8040956720319907e-6,1.1025740558355747e-8,-6.939812476892919e-4,-2.5493950355256136e-6,1.111363121856989e-8,-6.937199582600355e-4,-2.328052856844355e-6,1.119007794880418e-8,-6.935545525919977e-4,-2.199995786806156e-6,1.123431816683279e-8,-6.93429179173718e-4,-2.1924546956316556e-6,1.1236874298485071e-8,-6.932862200777068e-4,-2.2974342328778687e-6,1.1200440938200634e-8,-6.930818299262455e-4,-2.4806963116481874e-6,1.1136809772812793e-8,-6.927932877982263e-4,-2.69515791678022e-6,1.1062250907052743e-8,-6.924193527516066e-4,-2.8932872464684024e-6,1.0993214408490107e-8,-6.919763333906085e-4,-3.036081365862266e-6,1.0943205101581768e-8,-6.91492215226939e-4,-3.098326934476717e-6,1.0920952638432522e-8,-6.910002904512773e-4,-3.070683044984637e-6,1.0929697707612377e-8,-6.905331356871504e-4,-2.959140124946023e-6,1.0967394783237994e-8,-6.90117596465121e-4,-2.7823877442401985e-6,1.1027633804261848e-8,-6.897712626577218e-4,-2.567793687719598e-6,1.1101026790081565e-8,-6.895006358475275e-4,-2.3467550008997916e-6,1.1176795508382824e-8,-6.89300944615274e-4,-2.150115599113473e-6,1.1244329229978124e-8,-6.891573100006782e-4,-2.00424231133623e-6,1.1294520632905088e-8,-6.890467540316551e-4,-1.9280356409594636e-6,1.1320793607430406e-8,-6.889406381638624e-4,-1.930734024848246e-6,1.1319874885504703e-8,-6.888074504279619e-4,-2.0102414136189414e-6,1.1292397488351405e-8,-6.886161724085662e-4,-2.1518695593095066e-6,1.1243363432643985e-8,-6.883407101463712e-4,-2.327739840236361e-6,1.1182368829498123e-8,-6.879658514959947e-4,-2.497813089077346e-6,1.1123245267791766e-8,-6.874944007746656e-4,-2.6143891697839814e-6,1.108247815801189e-8,-6.869533275424424e-4,-2.6320148015926607e-6,1.1075749525894508e-8,-6.863944546199724e-4,-2.522826202578732e-6,1.1112635168862053e-8,-6.858844538666012e-4,-2.2926275030821306e-6,1.1191109583836215e-8,-6.854832279089802e-4,-1.9877298379677976e-6,1.1295269233710088e-8,-6.852191743942243e-4,-1.6834486218362717e-6,1.1399318636952878e-8,-6.850762207670568e-4,-1.4561494259965552e-6,1.1477115718733162e-8,-6.850017506227822e-4,-1.353885669014518e-6,1.1512169978020316e-8,-6.849299395502611e-4,-1.382232489232581e-6,1.1502489363880025e-8,-6.848057305429362e-4,-1.5099055715152289e-6,1.1458706325152704e-8,-6.845983153559325e-4,-1.6859188037799119e-6,1.1398245647313847e-8,-6.843027428170722e-4,-1.8571846721204412e-6,1.1339299333489303e-8,-6.839342878524915e-4,-1.9804742909492373e-6,1.1296704524613013e-8,-6.83520537940993e-4,-2.0280142608472192e-6,1.1280001238857747e-8,-6.830941226507634e-4,-1.9884992920636643e-6,1.1293074773063915e-8,-6.826870433621648e-4,-1.8656132505174621e-6,1.13346680053564e-8,-6.823264387413217e-4,-1.6753696630438363e-6,1.1399305110651174e-8,-6.82031487121087e-4,-1.4427423697938251e-6,1.1478456664893744e-8,-6.818114056550049e-4,-1.1978017957364357e-6,1.1561864398442774e-8,-6.816645845240956e-4,-9.716026242010502e-7,1.1638940368353777e-8,-6.81578901101889e-4,-7.920793248862827e-7,1.1700156773758746e-8,-6.815332503350359e-4,-6.803319074311323e-7,1.173830361103633e-8,-6.815001275355418e-4,-6.477490111422285e-7,1.1749467706559448e-8,-6.814489184104265e-4,-6.941843501332436e-7,1.1733661035226025e-8,-6.813496403718091e-4,-8.071935459534741e-7,1.1695093476635976e-8,-6.81177053403738e-4,-9.623862476189849e-7,1.164206416834527e-8,-6.809151476327394e-4,-1.1251098518570805e-6,1.158639073471916e-8,-6.80561933977751e-4,-1.254012468855875e-6,1.154218474453644e-8,-6.801338767888566e-4,-1.307464024167702e-6,1.1523643336190613e-8,-6.79668066854345e-4,-1.2535982747354408e-6,1.1541612761355467e-8,-6.792188902309273e-4,-1.0830088825351644e-6,1.1599275967291585e-8,-6.78845970446115e-4,-8.196398734036575e-7,1.1688487599342648e-8,-6.785938804680131e-4,-5.21865523976247e-7,1.1789443842818592e-8,-6.784716853381285e-4,-2.670917135713526e-7,1.1875898145539714e-8,-6.784454801674145e-4,-1.229862560247459e-7,1.1924869708763637e-8,-6.78451422731065e-4,-1.2039502744957288e-7,1.1925808501975738e-8,-6.784224136183189e-4,-2.4413852327126643e-7,1.188376744728601e-8,-6.783122474568518e-4,-4.450160638167141e-7,1.1815400961230667e-8,-6.781056774875232e-4,-6.622121589485789e-7,1.1741382274874111e-8,-6.778146379208505e-4,-8.426921141446391e-7,1.1679787181502826e-8,-6.774678679897052e-4,-9.513665380458594e-7,1.1642596348323024e-8,-6.771004646386013e-4,-9.730261227384026e-7,1.163500954750871e-8,-6.767463032638174e-4,-9.096388229470013e-7,1.165635793010542e-8,-6.764335621130428e-4,-7.761178639860844e-7,1.170155308564171e-8,-6.761823408651586e-4,-5.962181208590508e-7,1.1762500661860506e-8,-6.76003339470729e-4,-3.9886548663780184e-7,1.1829366116277767e-8,-6.758971746004418e-4,-2.1465214616865e-7,1.189177429067364e-8,-6.75854349008327e-4,-7.229850977163453e-8,1.1940006997847552e-8,-6.758560464209218e-4,4.947983413017979e-9,1.1966210837941946e-8,-6.75876029123182e-4,2.7488136745964224e-9,1.196554475242547e-8,-6.758837935815457e-4,-8.161918553295126e-8,1.1937085753012027e-8,-6.758487615666738e-4,-2.3790708629766936e-7,1.1884286585775744e-8,-6.757450114730958e-4,-4.432901815565406e-7,1.1814847546413683e-8,-6.75555981832124e-4,-6.647221873892998e-7,1.1739927591423942e-8,-6.752785440219556e-4,-8.632714013106472e-7,1.1672680443195546e-8,-6.749257989924772e-4,-1.0003070529774613e-6,1.1626159710092367e-8,-6.745277736728225e-4,-1.04533785405786e-6,1.1610666373841045e-8,-6.74128768082691e-4,-9.849061499935828e-7,1.1630749295767326e-8,-6.737798662443241e-4,-8.306924641557072e-7,1.1682486866486084e-8,-6.735259935027122e-4,-6.231378273326227e-7,1.1752281613645974e-8,-6.733897881249691e-4,-4.257941722485988e-7,1.1818755484053001e-8,-6.733589931298577e-4,-3.0779861157673254e-7,1.185861347121806e-8,-6.733862647382449e-4,-3.189045445843042e-7,1.1855019353474524e-8,-6.734052719418553e-4,-4.6933352922082787e-7,1.1804407956455615e-8,-6.73356095178138e-4,-7.26669545411652e-7,1.1717608951207223e-8,-6.732058920007578e-4,-1.03135768079192e-6,1.1614681309859787e-8,-6.729549688437168e-4,-1.3203085634674708e-6,1.1516948301661333e-8,-6.726292231984343e-4,-1.5456410863813466e-6,1.1440629950089799e-8,-6.722669138054278e-4,-1.6825813512472906e-6,1.1394139323916218e-8,-6.719069745690607e-4,-1.728292691642922e-6,1.1378462534167964e-8,-6.715817867987357e-4,-1.6963310651301452e-6,1.1389032635968985e-8,-6.713140269531039e-4,-1.6104898771342205e-6,1.1417818254359392e-8,-6.711159576172181e-4,-1.4997911391117643e-6,1.1455027849828653e-8,-6.7098967808978e-4,-1.3947627025395655e-6,1.1490377166722129e-8,-6.709276170943395e-4,-1.3244157649111584e-6,1.1514110299334853e-8,-6.709132260466664e-4,-1.3133527174552276e-6,1.1517964713543777e-8,-6.709221924822578e-4,-1.3787160274900425e-6,1.1496180968261428e-8,-6.709246793383498e-4,-1.5271024239717297e-6,1.144652479963841e-8,-6.708890101922466e-4,-1.7521057789037506e-6,1.1371108056069637e-8,-6.707867329827515e-4,-2.03349427394575e-6,1.1276673671676083e-8,-6.705983390374779e-4,-2.3389296906621046e-6,1.1174033427878806e-8,-6.703183942720542e-4,-2.6286525837106187e-6,1.1076507144233978e-8,-6.699586275639561e-4,-2.862764821608109e-6,1.0997482902064068e-8,-6.695477636789244e-4,-3.009877260332382e-6,1.0947514998244096e-8,-6.691275106414471e-4,-3.0553669347500317e-6,1.093155672567259e-8,-6.687448110835039e-4,-3.0073333148598256e-6,1.0946969098039167e-8,-6.684411914721439e-4,-2.8982694801256994e-6,1.09829603567278e-8,-6.682410506419115e-4,-2.7805932569171573e-6,1.1022061743662119e-8,-6.681420923177971e-4,-2.7151112480580224e-6,1.1043947687668447e-8,-6.681122430425281e-4,-2.7538322953627776e-6,1.103115103055556e-8,-6.680967532338296e-4,-2.922229780866871e-6,1.0975005824736362e-8,-6.680351768836946e-4,-3.208938989025025e-6,1.0879155445024393e-8,-6.678818198079746e-4,-3.569206800689314e-6,1.07584697087957e-8,-6.676199799142348e-4,-3.941264216912157e-6,1.0633592515886972e-8,-6.672637124200508e-4,-4.26723863883779e-6,1.0523919613312888e-8,-6.668484745365341e-4,-4.508722102625259e-6,1.0442353880863865e-8,-6.664173881818245e-4,-4.652194081672177e-6,1.0393476953270497e-8,-6.660096559372878e-4,-4.705856726945458e-6,1.0374609216835914e-8,-6.6565400917304e-4,-4.692450116383464e-6,1.0378215067070535e-8,-6.65366691378365e-4,-4.641992506869934e-6,1.0394325668100645e-8,-6.651520724436302e-4,-4.586289293999795e-6,1.0412367136578511e-8,-6.650041770194664e-4,-4.555288303349263e-6,1.0422370733593156e-8,-6.649082145975189e-4,-4.574557922642622e-6,1.0415807035090087e-8,-6.648419516531094e-4,-4.663098319825658e-6,1.0386306849815094e-8,-6.647772977923628e-4,-4.830967209773467e-6,1.0330446811403125e-8,-6.64682793482468e-4,-5.0767082913095886e-6,1.0248610310513204e-8,-6.645276535009935e-4,-5.385272368662441e-6,1.014569716509483e-8,-6.642874935506787e-4,-5.727739295789978e-6,1.0031241672519338e-8,-6.639508926581502e-4,-6.064303841982294e-6,9.918438764338643e-9,-6.635248175263377e-4,-6.351327713612035e-6,9.821803180388749e-9,-6.630363208422775e-4,-6.551644593751551e-6,9.753736842483382e-9,-6.625286011154107e-4,-6.6453412099685115e-6,9.720943269391243e-9,-6.620515220562129e-4,-6.637210765563028e-6,9.721958663164957e-9,-6.616490030515382e-4,-6.557815458928014e-6,9.746799934408593e-9,-6.613470434299081e-4,-6.457206611119339e-6,9.779019488102298e-9,-6.611460182660693e-4,-6.3927400851426745e-6,9.799687434697574e-9,-6.610196289517972e-4,-6.414181155194645e-6,9.79227361540468e-9,-6.609211623926225e-4,-6.550090663171576e-6,9.747151909141079e-9,-6.607958578615187e-4,-6.799453044112043e-6,9.664428684028409e-9,-6.605961968829965e-4,-7.131600161094896e-6,9.554052462247139e-9,-6.602952658559864e-4,-7.495192731900008e-6,9.432897717263338e-9,-6.59893337291204e-4,-7.833471097170003e-6,9.319721647992294e-9,-6.594154199307799e-4,-8.10003951822256e-6,9.229912967892944e-9,-6.589015974741606e-4,-8.26940720505979e-6,9.171982193286219e-9,-6.583948475325114e-4,-8.339570999084169e-6,9.146702941363071e-9,-6.579310057521284e-4,-8.32782653290947e-6,9.1484953460235e-9,-6.575332522116057e-4,-8.26326332931551e-6,9.167892353553748e-9,-6.572109057110091e-4,-8.179301464685762e-6,9.193979644439203e-9,-6.569608894446945e-4,-8.108097437895046e-6,9.21621770862212e-9,-6.56770170806039e-4,-8.077049399664383e-6,9.225578151807406e-9,-6.566181353193237e-4,-8.106736580969876e-6,9.2152178288862e-9,-6.56478602741209e-4,-8.209430423295186e-6,9.18097422655523e-9,-6.563217982510564e-4,-8.387533414582957e-6,9.121895607077113e-9,-6.561169927829369e-4,-8.631800308226666e-6,9.04085550962115e-9,-6.558365936151278e-4,-8.91992576094595e-6,8.945052981019506e-9,-6.55462020900297e-4,-9.216878126763627e-6,8.845932484547084e-9,-6.549905970801155e-4,-9.47883318251498e-6,8.757896962005024e-9,-6.544410174747893e-4,-9.66200422791736e-6,8.695387849400742e-9,-6.538536905887626e-4,-9.73541782277881e-6,8.668667779698704e-9,-6.532830284212719e-4,-9.693338183562016e-6,8.679746644976681e-9,-6.527824423394355e-4,-9.561069012846983e-6,8.72050444633388e-9,-6.523874598641779e-4,-9.389804754378765e-6,8.77438033627454e-9,-6.521043283306284e-4,-9.24162630277522e-6,8.821227300503736e-9,-6.519088365606864e-4,-9.170835057503315e-6,8.843328210896267e-9,-6.517549256998489e-4,-9.20896440435165e-6,8.83024338053133e-9,-6.515887679402991e-4,-9.35797527614904e-6,8.781065819974303e-9,-6.513631828401716e-4,-9.592194273994584e-6,8.703882366870197e-9,-6.510485784423071e-4,-9.866901365965093e-6,8.613066195460134e-9,-6.506383852720353e-4,-1.0130449155765347e-5,8.525370284901691e-9,-6.501484713535216e-4,-1.0336665778532513e-5,8.455876704000505e-9,-6.496113485493177e-4,-1.0454609877589606e-5,8.414782975243667e-9,-6.490671674646127e-4,-1.0473577830441985e-5,8.405737418544261e-9,-6.485542315122563e-4,-1.0402716045749107e-5,8.42594207718587e-9,-6.48101570190052e-4,-1.0266290315339773e-5,8.467673384414735e-9,-6.477249772667448e-4,-1.0096801161149698e-5,8.520499798179897e-9,-6.474264817325805e-4,-9.928189624151298e-6,8.573469231980985e-9,-6.471962142913522e-4,-9.790591753984345e-6,8.616798727509629e-9,-6.470153398393853e-4,-9.707072173579713e-6,8.642931881769316e-9,-6.4685902944632e-4,-9.691946903899617e-6,8.647090904414083e-9,-6.466990567131604e-4,-9.749935634588221e-6,8.627569008879582e-9,-6.465061945891082e-4,-9.875497327061216e-6,8.585973740369635e-9,-6.462529770962636e-4,-1.005213254042066e-5,8.527489357020453e-9,-6.459175297868126e-4,-1.0252057697941712e-5,8.46101921967877e-9,-6.454888874271263e-4,-1.0437434177263124e-5,8.398808897746156e-9,-6.449732096697071e-4,-1.0564966265109888e-5,8.354946495019238e-9,-6.4439852831923e-4,-1.0595381812212404e-5,8.34225639995346e-9,-6.438138844513587e-4,-1.0507072144502154e-5,8.367854756241516e-9,-6.432790367365826e-4,-1.0308974899831868e-5,8.428993979308454e-9,-6.428454586197086e-4,-1.0044472629606271e-5,8.511840347096126e-9,-6.425364546618369e-4,-9.780404242463435e-6,8.595019151624936e-9,-6.423374992473061e-4,-9.584105091257316e-6,8.656940621566346e-9,-6.422025862017104e-4,-9.499924509528801e-6,8.683268961814048e-9,-6.420723318815535e-4,-9.536788226021915e-6,8.6709032555823e-9,-6.418937058551346e-4,-9.670339340684684e-6,8.62736165406817e-9,-6.416333150807353e-4,-9.854985606826542e-6,8.567021549391805e-9,-6.412819489618678e-4,-1.0038675384978085e-5,8.506456394204669e-9,-6.40852233208935e-4,-1.0175358821881159e-5,8.460459308358457e-9,-6.403723843214741e-4,-1.0233119886925515e-5,8.439407583253215e-9,-6.398785177155639e-4,-1.0197922583846564e-5,8.44800812947473e-9,-6.394070755339369e-4,-1.0073651943128085e-5,8.485229457435074e-9,-6.389883923031362e-4,-9.879211991447938e-6,8.545190825663756e-9,-6.386421940044092e-4,-9.643564938301254e-6,8.61872891621823e-9,-6.383754932638375e-4,-9.399866438278023e-6,8.695270282083074e-9,-6.381828126059341e-4,-9.179868626602678e-6,8.764629424150486e-9,-6.380482197594612e-4,-9.009455497870036e-6,8.818449463555083e-9,-6.379484020972791e-4,-8.905757191846968e-6,8.851137444227476e-9,-6.378559844764216e-4,-8.875794396678722e-6,8.860308373744816e-9,-6.37742611576723e-4,-8.916182840260416e-6,8.846890961194638e-9,-6.375817826161573e-4,-9.013389503892508e-6,8.815063136955268e-9,-6.373517365413405e-4,-9.144324590548281e-6,8.772088767448038e-9,-6.37038822435467e-4,-9.277480646007872e-6,8.727983133697308e-9,-6.366416476230471e-4,-9.375433709051482e-6,8.69473010267958e-9,-6.361755073060954e-4,-9.400076070259292e-6,8.68460137525384e-9,-6.356751215483993e-4,-9.321725715954837e-6,8.70721463674457e-9,-6.351921226563311e-4,-9.131431137281154e-6,8.765577089452952e-9,-6.34783668220924e-4,-8.851983055038034e-6,8.852573074499977e-9,-6.34492590110691e-4,-8.53933103808297e-6,8.950528563696693e-9,-6.343273922649219e-4,-8.26772377613986e-6,9.035920785086607e-9,-6.342551582389573e-4,-8.102013804904856e-6,9.088118007656425e-9,-6.342142013915741e-4,-8.071933386762328e-6,9.097504097485443e-9,-6.341394360266019e-4,-8.163387841999844e-6,9.06827899549311e-9,-6.339853162802021e-4,-8.329403778276332e-6,9.01508325066568e-9,-6.337359214736137e-4,-8.510810762680521e-6,8.956528860220945e-9,-6.334023030696212e-4,-8.65473815155575e-6,8.909374863487501e-9,-6.330132471509208e-4,-8.725202991217194e-6,8.885158614041552e-9,-6.326051717095914e-4,-8.706169178413972e-6,8.889176992237429e-9,-6.32214019748295e-4,-8.599843727994052e-6,8.920959050065301e-9,-6.318697327111989e-4,-8.422780448879686e-6,8.975440229886825e-9,-6.315928418750007e-4,-8.20125617049522e-6,9.044392176943476e-9,-6.313926873838825e-4,-7.966459175451952e-6,9.117945199759327e-9,-6.31267082506243e-4,-7.749777386235528e-6,9.186104282521891e-9,-6.312033160743475e-4,-7.5785372180136775e-6,9.240130028371382e-9,-6.311803126735913e-4,-7.472534294452365e-6,9.273661681811642e-9,-6.311716770969148e-4,-7.441681249593242e-6,9.283469414099118e-9,-6.311491861629334e-4,-7.484987837433047e-6,9.269772409499044e-9,-6.310862639818491e-4,-7.590780571477355e-6,9.236162458649285e-9,-6.309612058273856e-4,-7.737892241529536e-6,9.189230845951367e-9,-6.307601275839634e-4,-7.897660405035442e-6,9.137956611667645e-9,-6.304796987183105e-4,-8.036756534142556e-6,9.09284140190737e-9,-6.301296693209371e-4,-8.121168651637492e-6,9.064674114885852e-9,-6.297347052073675e-4,-8.122014010732786e-6,9.062695008476826e-9,-6.293340333682221e-4,-8.02357893613418e-6,9.092032490280441e-9,-6.289764922907992e-4,-7.832498886235678e-6,9.150771158405365e-9,-6.287088356458074e-4,-7.584313389584958e-6,9.227855564074418e-9,-6.285582300395714e-4,-7.340955663643736e-6,9.303857526237659e-9,-6.285162181702288e-4,-7.173981894358338e-6,9.35622506385365e-9,-6.28535844534191e-4,-7.137050918742098e-6,9.367918818323381e-9,-6.285482266619833e-4,-7.242236086511384e-6,9.334891322630107e-9,-6.284908233474023e-4,-7.4556587282647425e-6,9.267547066221383e-9,-6.28330425274692e-4,-7.714648020679488e-6,9.185435045716488e-9,-6.28069302206002e-4,-7.95377724697567e-6,9.109102634548203e-9,-6.277362671666278e-4,-8.124785819023314e-6,9.053825972438715e-9,-6.273721375619873e-4,-8.204270724462586e-6,9.02715680817319e-9,-6.27017398081553e-4,-8.191793049541557e-6,9.029461806338658e-9,-6.267047725449272e-4,-8.103665827061228e-6,9.055810702686439e-9,-6.26456043916988e-4,-7.966249400547607e-6,9.098033223137005e-9,-6.26281416479543e-4,-7.810389877515416e-6,9.146451274581206e-9,-6.261800463441795e-4,-7.667092566462788e-6,9.191260130576387e-9,-6.261411718711373e-4,-7.564004290537873e-6,9.223675064183579e-9,-6.261457836463466e-4,-7.522438367703082e-6,9.23690378724907e-9,-6.261689058554466e-4,-7.554911651594159e-6,9.226935824039986e-9,-6.26182575765119e-4,-7.663394769762143e-6,9.193084339014298e-9,-6.261594321595429e-4,-7.83867655737204e-6,9.138166390547462e-9,-6.26076519398364e-4,-8.061135092227624e-6,9.068247870454783e-9,-6.259188201018052e-4,-8.302926480673475e-6,8.991964522431026e-9,-6.256821123187454e-4,-8.531474630101965e-6,8.919455933728389e-9,-6.253747887567023e-4,-8.714062415411706e-6,8.860964423618094e-9,-6.250183114255093e-4,-8.823240323023451e-6,8.825167866103795e-9,-6.246458882436894e-4,-8.842823215536685e-6,8.817300503612222e-9,-6.242985755887415e-4,-8.774026346559433e-6,8.837199099376945e-9,-6.240177934968095e-4,-8.640273119230142e-6,8.87774343727035e-9,-6.238340168367981e-4,-8.487734929015043e-6,8.924628410892147e-9,-6.237537835039231e-4,-8.37786762163323e-6,8.958649435262117e-9,-6.237508622334895e-4,-8.370050553809897e-6,8.961109428361436e-9,-6.237694285501078e-4,-8.498608243715725e-6,8.921029687418638e-9,-6.237425116459058e-4,-8.75592709653261e-6,8.840509552635665e-9,-6.236182223750581e-4,-9.0935440897417e-6,8.734482255018053e-9,-6.233789176946422e-4,-9.44210315649724e-6,8.62453087546554e-9,-6.230431618178639e-4,-9.738006393072087e-6,8.530559779025655e-9,-6.226528415322329e-4,-9.942072412796151e-6,8.464944949980187e-9,-6.222558156538971e-4,-1.0044216892862036e-5,8.431044644216811e-9,-6.218928123420268e-4,-1.0057759649626142e-5,8.424931676993069e-9,-6.215911924046659e-4,-1.0010051523072495e-5,8.438260126232764e-9,-6.213639804945358e-4,-9.934048776771606e-6,8.460847692598394e-9,-6.212115296909202e-4,-9.862436775050359e-6,8.482499035264433e-9,-6.211238864357817e-4,-9.823973462843352e-6,8.494171700339035e-9,-6.210830596535341e-4,-9.841115150435778e-6,8.488757155704299e-9,-6.210651942122257e-4,-9.928215073960674e-6,8.461672312188594e-9,-6.210429443543682e-4,-1.0090001829574346e-5,8.411340895070526e-9,-6.209883936927952e-4,-1.032045635967511e-5,8.339532086435201e-9,-6.208766895726924e-4,-1.0602611237518307e-5,8.251410557946112e-9,-6.206901011511374e-4,-1.0909904384581257e-5,8.155117882712867e-9,-6.204217801816662e-4,-1.1209428967393452e-5,8.060785794006027e-9,-6.200783346355796e-4,-1.1467000570356854e-5,7.978999665257574e-9,-6.196803527606607e-4,-1.1653487857353938e-5,7.918867885019981e-9,-6.192602675084233e-4,-1.1751341629004252e-5,7.886009589301413e-9,-6.18857430993645e-4,-1.1760013081941588e-5,7.880853644284182e-9,-6.185107199373036e-4,-1.1698990162283051e-5,7.897639687734814e-9,-6.182494033759342e-4,-1.1607106693188978e-5,7.924550386176266e-9,-6.180837782626559e-4,-1.1536704553317361e-5,7.945441153139379e-9,-6.17998354061986e-4,-1.1541930108901036e-5,7.943422534415343e-9,-6.179514865732182e-4,-1.1662608663681637e-5,7.905878369024749e-9,-6.178847530264709e-4,-1.1908666705688085e-5,7.829382187794986e-9,-6.177413716940561e-4,-1.225291771545529e-5,7.722050838337925e-9,-6.174866683392963e-4,-1.2638281908291842e-5,7.601388082277714e-9,-6.171202061499132e-4,-1.2997807711744528e-5,7.488094639614473e-9,-6.166733164451345e-4,-1.3277552122048224e-5,7.398956214429256e-9,-6.161948260617495e-4,-1.3451111439177265e-5,7.342324255674225e-9,-6.157338992816079e-4,-1.3521276834735159e-5,7.317585667968248e-9,-6.153277910312762e-4,-1.351221220619276e-5,7.3175400954822244e-9,-6.149969832299286e-4,-1.345864223227892e-5,7.331678474457581e-9,-6.147459001310118e-4,-1.3396792379450818e-5,7.3489284361196675e-9,-6.14566195981989e-4,-1.335865891362545e-5,7.3594093806847335e-9,-6.144404163975216e-4,-1.3369061432935648e-5,7.3553652588823905e-9,-6.143451013492217e-4,-1.3444276092296466e-5,7.331624223806665e-9,-6.142533201726146e-4,-1.3591271145411236e-5,7.285864502738724e-9,-6.141370824533147e-4,-1.3807054893883965e-5,7.2188286363125555e-9,-6.139701752177742e-4,-1.4078197634895255e-5,7.134475176715785e-9,-6.137317622253945e-4,-1.4381127354302392e-5,7.03989660873347e-9,-6.13410548401449e-4,-1.4684067691371548e-5,6.944744457685035e-9,-6.130086364730966e-4,-1.4951295234998012e-5,6.8599511266353936e-9,-6.125436581487522e-4,-1.5149749237378634e-5,6.795727421966501e-9,-6.120476639627279e-4,-1.5256983677622905e-5,6.759136642679807e-9,-6.115619176413706e-4,-1.5268340231572266e-5,6.751886205597447e-9,-6.111281095430912e-4,-1.520077746265615e-5,6.769114447606619e-9,-6.107779587857513e-4,-1.5091461683002552e-5,6.799746818271109e-9,-6.10524015294988e-4,-1.4990666324170982e-5,6.828571027830531e-9,-6.103544553284269e-4,-1.4950126437351983e-5,6.839718154874809e-9,-6.10233932630094e-4,-1.5009403395997819e-5,6.820816675408024e-9,-6.101112797303565e-4,-1.5183860384006196e-5,6.7667449207401965e-9,-6.099330136988942e-4,-1.5458296216177136e-5,6.6817180549403645e-9,-6.096591780398321e-4,-1.5789545255279567e-5,6.578625916310926e-9,-6.092759401267423e-4,-1.611861496564348e-5,6.475384794437283e-9,-6.087995316766636e-4,-1.638857118742033e-5,6.389456320634693e-9,-6.082696917744599e-4,-1.656102986792536e-5,6.332762451172584e-9,-6.07735931357823e-4,-1.6624724248411486e-5,6.309028251969762e-9,-6.07243028636269e-4,-1.659408062376702e-5,6.314176973263146e-9,-6.068212130456064e-4,-1.6500688633924005e-5,6.3388763395423195e-9,-6.064828882107512e-4,-1.6382732655089433e-5,6.3716957047222936e-9,-6.062244250029457e-4,-1.6276375396916556e-5,6.401688363734559e-9,-6.060303124501623e-4,-1.6210566121514825e-5,6.41997117246288e-9,-6.058775295989655e-4,-1.6204774019256874e-5,6.420448907864246e-9,-6.057391575612956e-4,-1.6268443228459086e-5,6.400024095330046e-9,-6.055871563899351e-4,-1.640110876257458e-5,6.358597590462493e-9,-6.053947651586242e-4,-1.6592563064539658e-5,6.299040120511544e-9,-6.051391799853258e-4,-1.6823062293831563e-5,6.2271479239230684e-9,-6.04804958969757e-4,-1.7064185629920318e-5,6.15140407656365e-9,-6.043880305658054e-4,-1.7281339145854306e-5,6.082244629251485e-9,-6.038993664978827e-4,-1.743882255386278e-5,6.03054138334135e-9,-6.033664982363028e-4,-1.7507647128342022e-5,6.005236775662678e-9,-6.028306776843586e-4,-1.747471621344875e-5,6.0105545030052955e-9,-6.02338498179153e-4,-1.7350074414647643e-5,6.043785475000533e-9,-6.019293636463869e-4,-1.7168208077473955e-5,6.094852354472843e-9,-6.016229799273229e-4,-1.6981102965108023e-5,6.148328418570691e-9,-6.014120043088848e-4,-1.6844415703121967e-5,6.1875079574704055e-9,-6.012631542790681e-4,-1.6801491798937394e-5,6.199152357907398e-9,-6.011264926259588e-4,-1.687094638850435e-5,6.177250027198649e-9,-6.009494858060641e-4,-1.7041783355707502e-5,6.124605564008008e-9,-6.006912495843881e-4,-1.7277030403387907e-5,6.051910031149934e-9,-6.003329547922971e-4,-1.7524265175610315e-5,5.974701125327572e-9,-5.998817609412311e-4,-1.7729749635034893e-5,5.909152133979997e-9,-5.993674834698096e-4,-1.7852060415235455e-5,5.8679359897686786e-9,-5.98833377167506e-4,-1.7871308208750187e-5,5.857377281089162e-9,-5.983242961249349e-4,-1.7791603804934904e-5,5.876628602108236e-9,-5.978761089750183e-4,-1.763692721889734e-5,5.9188348328191164e-9,-5.97509246371083e-4,-1.744281060909608e-5,5.973566370425565e-9,-5.972272340443155e-4,-1.724717783696112e-5,6.029530158965291e-9,-5.970191412732754e-4,-1.708303930127975e-5,6.076760853223087e-9,-5.968639601907031e-4,-1.6974182393121108e-5,6.107949062772968e-9,-5.967351618909186e-4,-1.6933562355692315e-5,6.1189757620988596e-9,-5.966044914543551e-4,-1.6963408114122988e-5,6.108924653343465e-9,-5.964448552706594e-4,-1.7056054741231575e-5,6.079858424794432e-9,-5.962326779452772e-4,-1.719488339402509e-5,6.036551327657856e-9,-5.959503269411983e-4,-1.7355296242159556e-5,5.9862122504836265e-9,-5.955890709894159e-4,-1.7506243438176608e-5,5.9380510048463094e-9,-5.951525234145372e-4,-1.7613258416163484e-5,5.902393637339857e-9,-5.946596553230791e-4,-1.764400034962936e-5,5.889033529766786e-9,-5.941454005656148e-4,-1.757658081028564e-5,5.9047300999132285e-9,-5.936562505153676e-4,-1.740909145309199e-5,5.9503386560754e-9,-5.932393300043767e-4,-1.7166185049999746e-5,6.018820818675055e-9,-5.929270253618056e-4,-1.6897363809678338e-5,6.095715953083003e-9,-5.927235829331455e-4,-1.6664334583585255e-5,6.162832492505709e-9,-5.926012168281408e-4,-1.6521086061127168e-5,6.204080876826821e-9,-5.925088318791681e-4,-1.6495650783895652e-5,6.2108462578212325e-9,-5.923893296595289e-4,-1.6581983910685432e-5,6.18445634623603e-9,-5.921973240230338e-4,-1.6744373968298434e-5,6.135018198325406e-9,-5.919105305805832e-4,-1.6930486544110382e-5,6.077709827522491e-9,-5.915325837551485e-4,-1.708674963487434e-5,6.028320742756395e-9,-5.910887401414671e-4,-1.7171114333858196e-5,5.999481940305171e-9,-5.906173977802621e-4,-1.7160751663905477e-5,5.998318193545036e-9,-5.901602907269286e-4,-1.7054266849847147e-5,6.025679671747184e-9,-5.897536026274595e-4,-1.6869186278252847e-5,6.076768658723353e-9,-5.894215706944987e-4,-1.6636088071657184e-5,6.142787676934763e-9,-5.891734417193177e-4,-1.639112845867565e-5,6.21311247089221e-9,-5.890037891503861e-4,-1.616881901687457e-5,6.277444531418832e-9,-5.888953870874903e-4,-1.599649526801642e-5,6.32750261058349e-9,-5.888234156540204e-4,-1.5891120266408232e-5,6.358035497480615e-9,-5.887598278097893e-4,-1.585830828911002e-5,6.36716114540014e-9,-5.886770911880141e-4,-1.5892951435849457e-5,6.356201350362242e-9,-5.88551067772663e-4,-1.598065881617845e-5,6.329251478975357e-9,-5.883632730491481e-4,-1.609944079656462e-5,6.292675486505938e-9,-5.881029486085081e-4,-1.622153632414498e-5,6.254574948934901e-9,-5.877692932525501e-4,-1.6315735016464423e-5,6.224131558643309e-9,-5.873738337045345e-4,-1.6350916709415508e-5,6.2105932820424296e-9,-5.869421485315761e-4,-1.630165097021894e-5,6.221632150191717e-9,-5.865131121598357e-4,-1.6156063475258574e-5,6.261002414793579e-9,-5.861331744440621e-4,-1.592434760802166e-5,6.325989749491587e-9,-5.858441940187316e-4,-1.5643598634390996e-5,6.405942312898085e-9,-5.856671951075539e-4,-1.5373106219251778e-5,6.483607719282582e-9,-5.855897763285556e-4,-1.517729276675414e-5,6.540086767802591e-9,-5.855664407766135e-4,-1.5101743305100796e-5,6.561819413722951e-9,-5.855345304499817e-4,-1.5154956209859986e-5,6.545946710766161e-9,-5.854378007236991e-4,-1.5306366023333386e-5,6.500984799091855e-9,-5.852448952227367e-4,-1.550045098503084e-5,6.442830961710452e-9,-5.849551516575722e-4,-1.567734639813534e-5,6.388848412759949e-9,-5.845930082893017e-4,-1.5789777542943528e-5,6.352965558410412e-9,-5.841969678310368e-4,-1.5811729052473348e-5,6.343113417189745e-9,-5.838084552194186e-4,-1.5739511632880423e-5,6.360814546463471e-9,-5.834633032295308e-4,-1.5588003820527e-5,6.402145833924053e-9,-5.831864760835484e-4,-1.538472081382847e-5,6.4593502606737386e-9,-5.829896181558738e-4,-1.5163375096637597e-5,6.5226561160815544e-9,-5.828708999533577e-4,-1.4957769589611858e-5,6.582074977801076e-9,-5.828167555766546e-4,-1.479662672105976e-5,6.628984531476504e-9,-5.828049993600993e-4,-1.46998740108272e-5,6.657304486326205e-9,-5.828086784632086e-4,-1.4676619073704028e-5,6.664156600488167e-9,-5.828000486403008e-4,-1.472477456925716e-5,6.649997471487258e-9,-5.827541399829672e-4,-1.4832100153552331e-5,6.618295601842242e-9,-5.826515746817173e-4,-1.4978198357449995e-5,6.574915976578972e-9,-5.824806499688132e-4,-1.5136975222470618e-5,6.5273858129103555e-9,-0.00058223891266244855,-1.5279382997478107e-5,6.484113573877451e-9,-5.819343932522649e-4,-1.537659130322262e-5,6.453510098108357e-9,-5.815864337643335e-4,-1.540395190071223e-5,6.442875322162274e-9,-5.812255138914551e-4,-1.5346207013270155e-5,6.456887019322757e-9,-5.808906783087563e-4,-1.5203879326331496e-5,6.495696015125998e-9,-5.806227398257667e-4,-1.4999252917115385e-5,6.553106536171523e-9,-5.804523980144355e-4,-1.4778150938693694E-05,6.6159779015583296e-9,-5.803857787226134e-4,-1.460244790593015e-5,6.666344613112382e-9,-5.803949019080188e-4,-1.453107430828226e-5,6.68691651811743e-9,-5.804222577193308e-4,-1.4595598468279076e-5,6.6681996557004115e-9,-5.804015691477434e-4,-1.4784365571006996e-5,6.613182223466211e-9,-5.802844416075218e-4,-1.504659664064087e-5,6.536251455252701e-9,-5.800572407115345e-4,-1.5314205201811868e-5,6.456956105272316e-9,-5.79740462121484e-4,-1.5527257460748158e-5,6.392682319350163e-9,-5.793754455308698e-4,-1.564997575685766e-5,6.354031421288331e-9,-5.79008526869674e-4,-1.5673984575231003E-05,6.3438332685434564e-9,-5.786793595545836e-4,-1.561305703577987e-5,6.358555023821292e-9,-5.78414926698478e-4,-1.5494822966848187e-5,6.390561211013941e-9,-5.782279782895778e-4,-1.535291284406682e-5,6.430282529202295e-9,-5.781179986625985e-4,-1.5220866757312826e-5,6.467953037038186e-9,-5.780733038593612e-4,-1.5127728821522725e-5,6.494942808591026e-9,-5.780737214613339e-4,-1.5094878202343984e-5,6.5047765753731806e-9,-5.780937304323509e-4,-1.5133945325895573e-5,6.493829724860568e-9,-5.781059012122124e-4,-1.5245845768728994e-5,6.461654192249107e-9,-5.780844231366714e-4,-1.5420967008494582E-05,6.410916404303534e-9,-5.780084375089962e-4,-1.5640566187065733e-5,6.346952753693187e-9,-5.778647777628711e-4,-1.5879285361295647e-5,6.277008199105833e-9,-5.776498175490725e-4,-1.6108436934896513e-5,6.209288793870668e-9,-5.773703656839252e-4,-1.6299721111280603e-5,6.151931069035016e-9,-5.770436111533959e-4,-1.6429208290678547e-5,6.111913238799296e-9,-5.766960225533119e-4,-1.6481506020845262e-5,6.093889659946264e-9,-5.763608734161528e-4,-1.6454038016908552e-5,6.098936037071565e-9,-5.760736744361726e-4,-1.6361021724264736e-5,6.123317511020036e-9,-5.758647102549619e-4,-1.6235696451862072e-5,6.157725998483951e-9,-5.757488547335339e-4,-1.612803540234014e-5,6.1878352067051535e-9,-5.757153315080947e-4,-1.609480237938911e-5,6.197125012537102e-9,-5.757234435926061e-4,-1.6181340271018654e-5,6.17217305833007e-9,-5.757111211388329e-4,-1.6400971995423106e-5,6.108703432860775e-9,-5.756170143529824e-4,-1.6724228696811727e-5,6.014819069588441e-9,-5.754058752564376e-4,-1.7087730422599016e-5,5.908527015219574e-9,-5.750819117894468e-4,-1.7419566737748216e-5,5.810457691770534e-9,-5.746829127406637e-4,-1.7665934924859706e-5,5.736209930949652e-9,-5.742617293776332e-4,-1.7804887133825812e-5,5.692403621165638e-9,-5.738676244788915e-4,-1.7844643668928444e-5,5.677123312045796e-9,-5.735352118200017e-4,-1.781324586487339e-5,5.682774688163753e-9,-5.732813705044003e-4,-1.774712544477777e-5,5.699224028512855e-9,-5.731070706253558e-4,-1.7682465513048927e-5,5.716183635261324e-9,-5.730010810481334e-4,-1.7650014543434743e-5,5.7246996299768535e-9,-5.729437243720952e-4,-1.7672436560521165e-5,5.717992329661441e-9,-5.729101327422091e-4,-1.77629912703616e-5,5.691943387538161e-9,-5.728732254490138e-4,-1.7924881686606425e-5,5.645364913125561e-9,-5.728066872098459e-4,-1.8151183111504288e-5,5.580046983978404e-9,-5.726880446715707e-4,-1.8425518479711568e-5,5.500544376149344e-9,-5.725017360320156e-4,-1.8723776519021976e-5,5.4136497171616706e-9,-5.722417478110209e-4,-1.901709758465021e-5,5.327525281669176e-9,-5.719132058612187e-4,-1.9275973453983113e-5,5.250556794951275e-9,-5.715324599224961e-4,-1.9474966424702655e-5,5.190061549896955e-9,-5.711254487065863e-4,-1.9597425970417595e-5,5.150993130292952e-9,-5.707243215314012e-4,-1.963951786184574e-5,5.134796911166756e-9,-5.703624645452386e-4,-1.961289496480425e-5,5.138582384870229e-9,-5.700681701023597e-4,-1.9545349551733103e-5,5.154808129149603e-9,-5.698573617980196e-4,-1.947850234148492e-5,5.171796776237571e-9,-5.697265168248463e-4,-1.946126166119291e-5,5.175504776714801e-9,-5.696483046445741e-4,-1.9538307489946467e-5,5.152814866181088e-9,-5.695737447050487e-4,-1.9735023712205888e-5,5.095954657144991e-9,-5.694440581573207e-4,-2.0044122435153433e-5,5.006492424902162e-9,-5.692107976121244e-4,-2.0422259733411498e-5,4.896447185420986e-9,-5.688556702159739e-4,-2.080239735784011e-5,4.784807248298537e-9,-5.683984430252771e-4,-2.1118146298752406e-5,4.69055903235853e-9,-5.678877874524411e-4,-2.1327200844530532e-5,4.6259837892894646e-9,-5.673813072802742e-4,-2.1421699487486857e-5,4.593705379214873e-9,-5.669266461901139e-4,-2.1423333992840117e-5,4.588040913127525e-9,-5.665515251973581e-4,-2.1370168449335505e-5,4.598631280140418e-9,-5.66262954244887e-4,-2.1303510202976556e-5,4.614029495947506e-9,-5.660516519242294e-4,-2.1259150169743164e-5,4.624106881604416e-9,-5.658977760906469e-4,-2.1263246516499423e-5,4.621241923637268e-9,-5.657758344743934e-4,-2.1331262909287216e-5,4.600715978969188e-9,-5.656582879656547e-4,-2.146824690958318e-5,4.560744399958647e-9,-5.655182799852074e-4,-2.166944979816653e-5,4.502372881234427e-9,-5.653320939464026e-4,-2.19210611198664e-5,4.429288721729575e-9,-5.650817267772786e-4,-2.2201302733604196e-5,4.347494108741701e-9,-5.647576281566446e-4,-2.248238891148829e-5,4.2647329227178e-9,-5.64361175875774e-4,-2.273385814627313e-5,4.1895539317782425e-9,-5.639060211063388e-4,-2.2927360460003696e-5,4.129994037758887e-9,-5.634173669126164e-4,-2.3042324624474837e-5,4.092025805841426e-9,-5.629285951340259e-4,-2.3071330028784256e-5,4.078067292741761e-9,-5.624753358397186e-4,-2.3023652525244365e-5,4.085953126634584e-9,-5.620879235594856e-4,-2.2925599059856908e-5,4.1087412604200885e-9,-5.617838311213657e-4,-2.2816948292584702e-5,4.13556726191145e-9,-5.615618506350042e-4,-2.274366245931516e-5,4.1535543827756625e-9,-5.613996862607292e-4,-2.2747751693369897e-5,4.150602400752755e-9,-5.61256426475516e-4,-2.2855979724977274e-5,4.1186293748158945e-9,-5.61080812039059e-4,-2.307016575944345e-5,4.056477812301431e-9,-5.608247544560862e-4,-2.3362823347901296e-5,3.971353014138016e-9,-5.6045888275338e-4,-2.3681771753724775e-5,3.877666551810311e-9,-5.599840255643514e-4,-2.3964648029816697e-5,3.7929726560466655e-9,-5.594323224548366e-4,-2.4158896301923775e-5,3.732284697554104e-9,-5.588562140180068e-4,-2.4238382403495358e-5,3.7033386543166194e-9,-5.583104935056323e-4,-2.4208922097151482e-5,3.7049913841555217e-9,-5.578362118896362e-4,-2.4101634993633252e-5,3.729013562684922e-9,-5.574526700823866e-4,-2.395959922159319e-5,3.763717738012945e-9,-5.571580150477938e-4,-2.3824918225424018e-5,3.7974724057465164e-9,-5.56934945270612e-4,-2.3730431642789787e-5,3.820986693463586e-9,-5.567575402096818e-4,-2.369650431855389e-5,3.828264474037562e-9,-5.565968561839238e-4,-2.3731175634325677e-5,3.81667238499676e-9,-5.564247258473144e-4,-2.383170766272784e-5,3.786608603817477e-9,-5.562162343773809e-4,-2.3986308687498875e-5,3.741076017959136e-9,-5.559516320965893e-4,-2.41756410521933e-5,3.6852669334650524e-9,-5.556182989939095e-4,-2.4374329729557413e-5,3.626126257835752e-9,-5.552129829469255e-4,-2.455308708972398e-5,3.5717509128408136e-9,-5.547439478003086e-4,-2.4682169708976556e-5,3.5304410056635687e-9,-5.542320441001034e-4,-2.4736519034990855e-5,3.509299202176376e-9,-5.537093394875636e-4,-2.470209240070845e-5,3.5124945121858324e-9,-5.532141884717492e-4,-2.4581739735308707e-5,3.539625413001244e-9,-5.527827987017785e-4,-2.4398065123244182e-5,3.584874043486559e-9,-5.524392207026548e-4,-2.419093064879187e-5,3.6375935558350362E-09,-5.521871673866484e-4,-2.400904254983496e-5,3.6845003460724823e-9,-5.52006996859421e-4,-2.3897600320895216e-5,3.7129769442225496e-9,-5.518594417411545e-4,-2.3885806156130697e-5,3.714505319352247e-9,-5.516952472542898e-4,-2.3978206075858976e-5,3.6871706513466653e-9,-5.514680023266997e-4,-2.415252676916681e-5,3.636467576060659e-9,-5.511466570996784e-4,-2.436472997812125e-5,3.5741160763841065e-9,-5.507243054631822e-4,-2.456016575596165e-5,3.5151030037156743e-9,-5.502204943898792e-4,-2.4688078368491355e-5,3.4736716022299434e-9,-5.49675845316952e-4,-2.4715297420699776e-5,3.4594450841273604e-9,-5.491403496431156e-4,-2.4634524609268043e-5,3.475010754579904e-9,-5.486594079579832e-4,-2.4464309834586896e-5,3.5158016687115214e-9,-5.482626949453814e-4,-2.424130364105868e-5,3.572121989232335e-9,-5.479593003710058e-4,-2.400859263852101e-5,3.6322781071167195e-9,-5.477393924139225e-4,-2.380483572567349e-5,3.685543859039702e-9,-5.475800136344878e-4,-2.365734300350956e-5,3.7241138416981567e-9,-5.47451900115605e-4,-2.3579686113701558e-5,3.743864278401933e-9,-5.473251545092862e-4,-2.3572576485177517e-5,3.744220422532077e-9,-5.471730460260657e-4,-2.3626248739021626e-5,3.727569108803425e-9,-5.469742478632765e-4,-2.3723043848052887e-5,3.6985616396725427e-9,-5.467142469598954e-4,-2.3839630731377964e-5,3.6634824609621807e-9,-5.463866264206015e-4,-2.3948973655604125e-5,3.6296880385067596e-9,-5.4599456793534e-4,-2.4022629138410048e-5,3.604980769764583e-9,-5.455523444943196e-4,-2.4034135649642785e-5,3.5967054365603564e-9,-5.450858818683846e-4,-2.396401744104895e-5,3.6104037986387385e-9,-5.446308564687652e-4,-2.380610222496027e-5,3.648086038965713e-9,-5.442267710418497e-4,-2.3573376044700058e-5,3.7065940327411654e-9,-5.43906780201333e-4,-2.3300037015731352e-5,3.776970362392915e-9,-5.436858585814063e-4,-2.303631065445945e-5,3.8457757017923984e-9,-5.43552613478327e-4,-2.28353475000358e-5,3.898554409891338e-9,-5.434699258623914e-4,-2.2736277504907688e-5,3.924381501274142e-9,-5.433855832143338e-4,-2.275078970747129e-5,3.919540539705527e-9,-5.43248646299094e-4,-2.285936214945721e-5,3.888688548443496e-9,-5.430245801652687e-4,-2.3018194797770242e-5,3.8431759853901846e-9,-5.427037893107168e-4,-2.3172944399802506e-5,3.7974973736510936e-9,-5.423020260258028e-4,-2.3273629234107787e-5,3.765329016282113e-9,-5.418542195221602e-4,-2.328631805513169e-5,3.756319626683319e-9,-5.414045400541133e-4,-2.3199382210688513e-5,3.774257587440266e-9,-5.409955890221134e-4,-2.302384304625818e-5,3.8167930066406206e-9,-5.406592269132189e-4,-2.2788582348018324e-5,3.876564618794517e-9,-5.404109156371855e-4,-2.253214165155441e-5,3.943315026925249e-9,-5.402484736817223e-4,-2.2293496058127136e-5,4.00637464546443e-9,-5.401548723226671e-4,-2.210423231623976e-5,4.056855142789439e-9]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json new file mode 100644 index 00000000..f56819cf --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":7000,"numberOfSamples":1000,"samples":[-5.401035826582183e-4,-2.1983771746004456e-5,4.089071108861903e-9,-5.400645679375473e-4,-2.1937995914044596e-5,4.1010390739496695e-9,-5.400093979365809e-4,-2.1960549237341188e-5,4.094200825458988e-9,-5.399147607226752e-4,-2.203560775605646e-5,4.072680770337793e-9,-5.397644338651072e-4,-2.2140989396072942e-5,4.0424039620270295e-9,-5.395502643031555e-4,-2.2250959079911428e-5,4.010291455194114e-9,-5.392727708698771e-4,-2.233868896010399e-5,3.983582390762636e-9,-5.389417235021638e-4,-2.2378792834005243e-5,3.969178139964558e-9,-5.385766058145648e-4,-2.235055698671764e-5,3.972815745495291e-9,-5.382062428829531e-4,-2.2242365349685453e-5,3.9978965146973945e-9,-5.378662132655593e-4,-2.205712418011711e-5,4.043993326717811e-9,-5.375924932704364e-4,-2.181705877637256e-5,4.105479870305896e-9,-5.374109340395555e-4,-2.1564488189815053e-5,4.171221914461289e-9,-5.373252109046606e-4,-2.13546121672999e-5,4.226432351021938e-9,-5.373095626709229e-4,-2.123923851906108e-5,4.256999417283581e-9,-5.373130817418842e-4,-2.1246850964482913e-5,4.25485673473855e-9,-5.372765380678705e-4,-2.136960735856047e-5,4.221561718856039e-9,-5.371540300970259e-4,-2.156549994879516e-5,4.167859343731849e-9,-5.36928145915775e-4,-2.177449463181616e-5,4.109507993256763e-9,-5.36612298142394e-4,-2.193926959851254e-5,4.061836554881471e-9,-5.362421974391817e-4,-2.202084762893932e-5,4.035594559950374e-9,-5.358628658080441e-4,-2.200502185841941e-5,4.035163172736923e-9,-5.355167351147426e-4,-2.1900830823744038e-5,4.058798324504693e-9,-5.35235449411885e-4,-2.173439788390032e-5,4.100071676730384e-9,-5.350357193602122e-4,-2.15410881740401e-5,4.14980207032798e-9,-5.349185757880749e-4,-2.135782693181579e-5,4.198050291539687e-9,-5.348712290073628e-4,-2.121657442592248e-5,4.2359280087428855e-9,-5.348708000481933e-4,-2.1139615342117445e-5,4.257004944159546e-9,-5.348890826615417e-4,-2.113709309176623e-5,4.258128208977309e-9,-5.348974104172614e-4,-2.1206799246401138e-5,4.239584522007182e-9,-5.348708384321045e-4,-2.1335822917691524e-5,4.204678615706449e-9,-5.347911231697716e-4,-2.1503424398811796e-5,4.158913513206647e-9,-5.346483663470459e-4,-2.1684383203511062e-5,4.109023325019758e-9,-5.344415971986584e-4,-2.185222293312799e-5,4.062070768370815e-9,-5.341787121227865e-4,-2.198213649495927e-5,4.024683100836483e-9,-5.338760303296781e-4,-2.2053786749643512e-5,4.002365575691231e-9,-5.335574557412858e-4,-2.2054309116071213e-5,3.998758028608726e-9,-5.332528017860458e-4,-2.198181627770456e-5,4.014702338546216e-9,-5.32994271803446e-4,-2.1849184863030615e-5,4.047158626760407e-9,-5.328099775273082e-4,-2.1686695872980368E-05,4.088373074123842e-9,-5.327143982259301e-4,-2.1540670747909262e-5,4.1261167888255816e-9,-5.326982547305342e-4,-2.146472539588816e-5,4.145954976805639e-9,-5.327237676269208e-4,-2.150269819024173e-5,4.135827219007261e-9,-5.32732172820136e-4,-2.166880035547954e-5,4.091442962833996e-9,-5.32664363807273e-4,-2.193675634261866e-5,4.019307535221708e-9,-5.324850262715923e-4,-2.2247356034033065e-5,3.93482109123221e-9,-5.321959712692641e-4,-2.253169043764306e-5,3.856170494966331e-9,-5.318318024819819e-4,-2.2736299986202895e-5,3.797697407775919e-9,-5.314434001136979e-4,-2.283727543038531e-5,3.7661716224598815e-9,-5.310801862783224e-4,-2.2840328090950416e-5,3.760701663621395e-9,-5.307784695622606e-4,-2.277209911293882e-5,3.774865010501329e-9,-5.305570300482153e-4,-2.2669296597542187e-5,3.799377675031908e-9,-5.304177923198672e-4,-2.2569563199808032e-5,3.824373068544768e-9,-5.303490345079164e-4,-2.2505211219014473e-5,3.841055895162692e-9,-5.303294436667859e-4,-2.2499458669989806e-5,3.842819986704146e-9,-5.303323047521583e-4,-2.2564506861846283e-5,3.825934653411622e-9,-5.303295770130921e-4,-2.2701095439328812e-5,3.78981094362531e-9,-5.302956400451363e-4,-2.2899349303107257e-5,3.736840685640963e-9,-5.30210473665667e-4,-2.314073527658426e-5,3.6718507329490764e-9,-5.300620142371433e-4,-2.340093393614476e-5,3.601265981895817e-9,-5.298474349228372e-4,-2.3653284469214588e-5,3.532132956929273e-9,-5.29573308984056e-4,-2.3872320401723e-5,3.4711768964710575e-9,-5.292548431176042e-4,-2.403707365259649e-5,3.4239812057610383e-9,-5.289143407918906e-4,-2.4134058857944783e-5,3.3942741989696835e-9,-5.285789266630395e-4,-2.4159906281443744e-5,3.3832709646259577e-9,-5.282773952237134e-4,-2.4123609199085298e-5,3.389033411558258e-9,-5.280357364388392e-4,-2.404808982327215e-5,3.4059246595776906e-9,-5.278708810726782e-4,-2.3969949940549298e-5,3.4245089739342943e-9,-5.277831391864141e-4,-2.3935357712190903e-5,3.4325187746853774e-9,-5.277497546540487e-4,-2.3990053843999665e-5,3.417490568679712e-9,-5.277243373408124e-4,-2.416362760309801e-5,3.371043381811958e-9,-5.276472969010053e-4,-2.4453303594010498e-5,3.2933522318209953e-9,-5.274672038760931e-4,-2.4817592116745615e-5,3.1949762152372857e-9,-5.271634422555336e-4,-2.5188059386224728e-5,3.0937979755767632e-9,-5.267559068389037e-4,-2.549567899523349e-5,3.008057415556971e-9,-5.262952781608044e-4,-2.569664316277229e-5,2.9495561606916857e-9,-5.258412694183832e-4,-2.5783493066863733e-5,2.9207489680924703e-9,-5.254425066389419e-4,-2.5779503885456728e-5,2.9161612247094987e-9,-5.251263833011977e-4,-2.5724489785007588e-5,2.925940256027055e-9,-5.248986095698239e-4,-2.566102959629115e-5,2.9392604634341714e-9,-5.247480432907525e-4,-2.5625368004893986e-5,2.946595015690205e-9,-5.246528338231885e-4,-2.5643091786020372e-5,2.940887498147975e-9,-5.245858121778989e-4,-2.572797628618578e-5,2.918009092055048e-9,-5.245186697908287e-4,-2.5882406676612352e-5,2.8768303754599108e-9,-5.244252403009383e-4,-2.6098529986454154e-5,2.8190430572214277e-9,-5.242842104460674e-4,-2.6359918036558112e-5,2.748752781998075e-9,-5.240813809095547e-4,-2.664376012583758e-5,2.6718566779627634e-9,-5.23811405473642e-4,-2.6923697743507696e-5,2.5952305181850944e-9,-5.234786998958045e-4,-2.7173303690041893e-5,2.5257824612885647e-9,-5.230971720563157e-4,-2.7369871435687406e-5,2.4694878843742183e-9,-5.226886747385083e-4,-2.749801736194075e-5,2.4305157487672832e-9,-5.222802740203602e-4,-2.7552679878417226e-5,2.410501767346455e-9,-5.219004721067165e-4,-2.7541114744677728e-5,2.4080150610133087e-9,-5.215746064004773e-4,-2.748348611429587e-5,2.4182963593044943e-9,-5.213196916609409e-4,-2.741169261001642e-5,2.433387542607336e-9,-5.211390633776294e-4,-2.7365830864708946e-5,2.442883976030173e-9,-5.210177939670833e-4,-2.7387386588784694e-5,2.4356382416405185e-9,-5.2092103264559e-4,-2.7508753633437043e-5,2.4025749182162106e-9,-5.207983793056417e-4,-2.7740648686792387e-5,2.3401865242185253e-9,-5.205966266482828e-4,-2.806223642295004e-5,2.253350576167634e-9,-5.202789824851698e-4,-2.8421269302758358e-5,2.1554312055901617e-9,-5.198423209709797e-4,-2.8748981292602243e-5,2.064380772209385e-9,-5.193213569961983e-4,-2.8985277857182498e-5,1.996093068377223e-9,-5.187754286828383e-4,-2.9100856801229018e-5,1.95860814721846e-9,-5.182654734879904e-4,-2.910408008464851e-5,1.950328402209735e-9,-5.17834468885133e-4,-2.903146570281326e-5,1.9624204795998646e-9,-5.174994717055985e-4,-2.8930642345991606e-5,1.9830589980046977e-9,-5.172543344144145e-4,-2.8845521813800735e-5,2.0010793286060667e-9,-5.170775031307184e-4,-2.8808046397317225e-5,2.0080420772500573e-9,-5.169400421587481e-4,-2.883586587420426e-5,1.998918998843043e-9,-5.168116638617822e-4,-2.8933416322078027e-5,1.9719933681402133e-9,-5.166645952694134e-4,-2.9094191480639365e-5,1.928446821526537e-9,-5.16476024252827e-4,-2.930309443473024e-5,1.8718459878098334e-9,-5.162298604848831e-4,-2.9538674218475745e-5,1.8075644448687839e-9,-5.15918183163581e-4,-2.9775463189840496e-5,1.7421226458261029e-9,-5.155423951219354e-4,-2.9986754143992856e-5,1.682415416929058e-9,-5.151137407302886e-4,-3.0148054298078004e-5,1.6348102041026057e-9,-5.14652612618079e-4,-3.024103796625174e-5,1.6041685250154395e-9,-5.141862173715009e-4,-3.025736743569097e-5,1.5929194416540232e-9,-5.137445594032925e-4,-3.0201544061071227e-5,1.6003442662174793e-9,-5.133551073665073e-4,-3.0091913298744713e-5,1.6222546448333353e-9,-5.130369284461957e-4,-2.9959105712960137e-5,1.651244127376648e-9,-5.127954099507898e-4,-2.9841663506552026e-5,1.6776263789056898e-9,-5.126187743607301e-4,-2.977911818282605e-5,1.6910763709352394e-9,-5.124775920139699e-4,-2.980317215645477e-5,1.6828919402962205e-9,-5.123285291058596e-4,-2.992827896807966e-5,1.6485704768880652e-9,-5.121232184702717e-4,-3.0144080674584436e-5,1.5900146804836555e-9,-5.118216874803194e-4,-3.041333535976552e-5,1.5163090868023582e-9,-5.114069216089788e-4,-3.06788578426189e-5,1.4420450362417905e-9,-5.108941341159282e-4,-3.087997193374652e-5,1.383045829244638e-9,-5.103283884814538e-4,-3.097314754523197e-5,1.350950290890561e-9,-5.097696659935665e-4,-3.0946985077149386e-5,1.3492802047218747e-9,-5.092722871601308e-4,-3.0823751756630565e-5,1.3729826486285837e-9,-5.088689790088103e-4,-3.064783528784369e-5,1.4112787115572115e-9,-5.085657929059659e-4,-3.046880866802487e-5,1.4518356546063253e-9,-5.08346811352875e-4,-3.032757248561428e-5,1.4841879987672864e-9,-5.081833205273989e-4,-3.024951848205968e-5,1.5014927928567059e-9,-5.080425577921641e-4,-3.024389232124672e-5,1.5008319918093534e-9,-5.078937898414977e-4,-3.0306504584070308e-5,1.4827093655212703e-9,-5.077117106050379e-4,-3.042331137863873e-5,1.4502784815439696e-9,-5.074781087294359e-4,-3.0573627604291196e-5,1.4085697181512755e-9,-5.071827632231985e-4,-3.0732762305829554e-5,1.363783212066794e-9,-5.068241386956512e-4,-3.087440447664662e-5,1.322616276444108e-9,-5.064099743494193e-4,-3.097328317084115e-5,1.2915471371343079e-9,-5.059573813360568e-4,-3.100850766576199e-5,1.2759963019804067e-9,-5.054917280931815e-4,-3.09675266499804e-5,1.2793674539120017e-9,-5.050436028710859e-4,-3.085000943630236e-5,1.3021016279347987e-9,-5.046435847782699e-4,-3.067039629349787e-5,1.3410151010863194e-9,-5.043154041700915e-4,-3.0457621016956392e-5,1.3892739397176436e-9,-5.040690924503929e-4,-3.025093383015183e-5,1.4372920683562972e-9,-5.038963498673596e-4,-3.0091976510982597e-5,1.4745708467378526e-9,-5.037701041335682e-4,-3.001474285367648e-5,1.4921523724764496e-9,-5.036491510419384e-4,-3.0036038672483e-5,1.4850891219563646e-9,-5.034873278369172e-4,-3.0149240525066758e-5,1.4542250103523055e-9,-5.032453132593057e-4,-3.032361586041559e-5,1.4066373962624775e-9,-5.029021178492986e-4,-3.0510322165871625e-5,1.3543382658568904e-9,-5.024627404979756e-4,-3.06545113386691e-5,1.3112907864465489e-9,-5.01958677253733e-4,-3.0710749963624354e-5,1.2894420761309303e-9,-5.014397693770699e-4,-3.065674386674007e-5,1.2951067361437504e-9,-5.009594637119274e-4,-3.0499774007028698e-5,1.327181960804589e-9,-5.005591265624038e-4,-3.027289359707675e-5,1.3779593095465411e-9,-5.002577464773517e-4,-3.002286754188913e-5,1.4360302437884732e-9,-5.000502980916162e-4,-2.9795642680252517e-5,1.4898545010720947e-9,-4.999135018056022e-4,-2.96252177016554e-5,1.530564984614016e-9,-4.998148703059288e-4,-2.9528734833433275e-5,1.5533180663703762e-9,-4.997210391324866e-4,-2.9507108813167577e-5,1.557313949211449e-9,-4.996033580441727e-4,-2.95486805281199e-5,1.5450349761472517e-9,-4.994407134467235e-4,-2.963354086042027e-5,1.5212284427432084e-9,-4.99220513807549e-4,-2.9737275227078863e-5,1.4919412361183264e-9,-4.989388300780407e-4,-2.9833867578447486e-5,1.4637165471569636e-9,-4.986003615032496e-4,-2.989808300652266e-5,1.442933990607473e-9,-4.982184149831263e-4,-2.9907927865987277e-5,1.4351810441446417e-9,-4.978145252172193e-4,-2.9847712851288548e-5,1.4445248582206659e-9,-4.974169169914042e-4,-2.971176155615385e-5,1.4726359068551763e-9,-4.970569165391165e-4,-2.9508056286774713e-5,1.517893845763169e-9,-4.967628303390822e-4,-2.926026998042455e-5,1.574829976621728e-9,-4.96551978398408e-4,-2.900608455871382e-5,1.634431128285346e-9,-4.96423302209712e-4,-2.879027553840682e-5,1.6857146709917446e-9,-4.963541060645736e-4,-2.865323310167557e-5,1.7184681499924557e-9,-4.963036761354488e-4,-2.861842652841363e-5,1.7263462753477494e-9,-4.962236841992082e-4,-2.8683800491744274e-5,1.7091218148852898e-9,-4.960720233794146e-4,-2.8820919804120417e-5,1.673117417745899e-9,-4.958250916601518e-4,-2.898244031513813e-5,1.6295915726764063e-9,-4.954843911405692e-4,-2.911516518981793e-5,1.591663143962164e-9,-4.950757567029083e-4,-2.9174289607850693e-5,1.5708062654753593e-9,-4.946419883627445e-4,-2.9134683182893188e-5,1.5739443674704452e-9,-4.942313197632331e-4,-2.899634780038582e-5,1.601897900139963e-9,-4.938850760519116e-4,-2.8782878175581034e-5,1.6495407345080696e-9,-4.936280480341194e-4,-2.8533738897703263e-5,1.707525662802973e-9,-4.934641902772148e-4,-2.8293088750190768e-5,1.7649546067683797e-9,-4.933783032088761e-4,-2.80988640410467e-5,1.8121051613246878e-9,-4.933422254005704e-4,-2.7975289802310766e-5,1.8424210940995162e-9,-4.933227875226166e-4,-2.793022331205908e-5,1.853363241919422e-9,-4.932888738289174e-4,-2.7956735636432285e-5,1.8461872237371115e-9,-4.932160962554518e-4,-2.8037116641906087e-5,1.8250326211687373e-9,-4.930889594766327e-4,-2.8147435486230603e-5,1.7957702854856959e-9,-4.929012427190119e-4,-2.8261502965497104e-5,1.7649326447086253e-9,-4.926554961798312e-4,-2.835390391705434e-5,1.7388763334173934e-9,-4.923623095573031e-4,-2.8402349479687208e-5,1.7231683216680764e-9,-4.920395867133475e-4,-2.8389889647024718e-5,1.722073563894763e-9,-4.917115540492151e-4,-2.8307497965287012e-5,1.7379836944677346e-9,-4.914067695061618e-4,-2.815714883271202e-5,1.7707008124423624e-9,-4.911541935152892e-4,-2.7954758530073625e-5,1.8166878141640076e-9,-4.9097673506944e-4,-2.773135265619518e-5,1.868683014872907e-9,-4.908829819257416e-4,-2.753002578310636e-5,1.9163130986412e-9,-4.908600342594571e-4,-2.7396792960745575e-5,1.9482274136412787e-9,-4.908721173909682e-4,-2.736633164669827e-5,1.9555585722015448e-9,-4.908685218729858e-4,-2.7447945016454782e-5,1.935427847646306e-9,-4.907995565142859e-4,-2.7619289411182313e-5,1.8926347984558103e-9,-4.906336832509187e-4,-2.7832348344015255e-5,1.8383867655335314e-9,-4.903676923646972e-4,-2.802925951189207e-5,1.7865984348223615e-9,-4.900260027571856e-4,-2.81603898676814e-5,1.7495716625922467e-9,-4.89651135545775e-4,-2.8197278587712897e-5,1.7348223698973235e-9,-4.892906052692192e-4,-2.8137212384925217e-5,1.7438257478064728e-9,-4.889850187707911e-4,-2.800028120231637e-5,1.7725003438639047e-9,-4.887600631930353e-4,-2.782169608840279e-5,1.8128296668897378e-9,-4.886231415493295e-4,-2.764229676123075e-5,1.8550063239660704e-9,-4.885642484701803e-4,-2.7499550273375093e-5,1.8896080581632753e-9,-4.88560103003217e-4,-2.7420633789239168e-5,1.9094190965771907e-9,-4.885802098906471e-4,-2.741859369588705e-5,1.9105887095828677e-9,-4.885932963466409e-4,-2.749186494528233e-5,1.892958847920264e-9,-4.885727070221833e-4,-2.7626586385723848e-5,1.8596151082628022e-9,-4.884999125827284e-4,-2.780056601507957e-5,1.815912403162441e-9,-4.883659918181414e-4,-2.7987688626019622e-5,1.7683031663824352e-9,-4.881714965792303e-4,-2.8161857991136438e-5,1.7232621331153711e-9,-4.879253817230721e-4,-2.8300053385778088e-5,1.6864793191295907e-9,-4.876435954604153e-4,-2.838460913858599e-5,1.6623231380987314e-9,-4.87347570898538e-4,-2.8405127125376862e-5,1.6534487206287574e-9,-4.870624676766653e-4,-2.8360400428380635e-5,1.660397458157364e-9,-4.8681464921107224e-4,-2.8260451760282097e-5,1.6810999234867354e-9,-4.8662762504571956e-4,-2.8128194590838857e-5,1.710378936760407e-9,-4.865159493111669e-4,-2.7999259061439134e-5,1.7398402884595435e-9,-4.864778001628795e-4,-2.7917688216241995e-5,1.758782346831438e-9,-4.864891773662556e-4,-2.7925623648319725e-5,1.7566564873211407e-9,-4.8650469881442816e-4,-2.8048055389582203e-5,1.7268436941845679e-9,-4.8646900022718986e-4,-2.8278862045047066e-5,1.6701987909042514e-9,-4.863366661408441e-4,-2.8577505119019685e-5,1.596014686119699e-9,-4.8609095859314307e-4,-2.888149066944309e-5,1.5191180487893385e-9,-4.8575031131327785e-4,-2.9129303897496962e-5,1.4543917377772392e-9,-4.853594628443761e-4,-2.928127077721007e-5,1.4117786999065398e-9,-4.8497195747729835e-4,-2.932864068445588e-5,1.394071849831376e-9,-4.846337505125269e-4,-2.92901557766113e-5,1.397598481510503e-9,-4.8437354423659196e-4,-2.9201624636557654e-5,1.4144787727407432e-9,-4.842002284292061e-4,-2.9104393029698005e-5,1.4351477859261177e-9,-4.841052181270292e-4,-2.903609161431683e-5,1.4504558263885193e-9,-4.84067228217977e-4,-2.9024670479161186e-5,1.4531643834621424e-9,-4.840577748119623e-4,-2.90853939257728e-5,1.438879930124667e-9,-4.8404655015113853e-4,-2.9220176531956694e-5,1.4064663055144139e-9,-4.840061936266715e-4,-2.9418854952069273e-5,1.3579222509944927e-9,-4.839159970403585e-4,-2.9661986241126522e-5,1.2977592972372048e-9,-4.8376421255598803e-4,-2.99245694584744e-5,1.2320364517035848e-9,-4.8354887698368103e-4,-3.0180063885511402e-5,1.1672683012708056e-9,-4.832772700501507e-4,-3.0404142004948953e-5,1.1094257627540442e-9,-4.829643557323166e-4,-3.0577722626730395e-5,1.06319106972272e-9,-4.826306810340864e-4,-3.068915192762852e-5,1.0314937573263063e-9,-4.823000236618913e-4,-3.073572511170575e-5,1.0152261736262526e-9,-4.819967854440488e-4,-3.07247596187981e-5,1.0130129991719876e-9,-4.8174290438235536e-4,-3.067424662353938e-5,1.0209817846856487e-9,-4.8155387647187757e-4,-3.061273027346073e-5,1.032629336411569e-9,-4.814336608023644e-4,-3.057734555154527e-5,1.0391143981355627e-9,-4.813692597631775e-4,-3.060832201910778e-5,1.0304832601707698e-9,-4.813275459614071e-4,-3.073869463472397e-5,9.981998565152625e-10,-4.812585659790297e-4,-3.09804507134622e-5,9.386721541243323e-10,-4.811087866201458e-4,-3.1312961751180574e-5,8.56262021686922e-10,-4.8084200197442165e-4,-3.168291882514008e-5,7.634346976835111e-10,-4.804573453938174e-4,-3.202098523525012e-5,6.767668830172286e-10,-4.799919742448245e-4,-3.226863232885468e-5,6.104833504614054e-10,-4.7950561722214457e-4,-3.239963129412474e-5,5.713324640502453e-10,-4.7905711130771735e-4,-3.2424683834516966e-5,5.57489239643948e-10,-4.7868648919253005e-4,-3.2380572165611614e-5,5.61014998658449e-10,-4.78408756745913e-4,-3.231372536823076e-5,5.715060758294507e-10,-0.00047821695541208484,-3.226672810540936e-5,5.790543339561175e-10,-4.780892929635116e-4,-3.2270696159169436e-5,5.759797425532569e-10,-4.7799654019284706e-4,-3.2342694027153804e-5,5.575709307492149e-10,-4.7790798337904856e-4,-3.2486240286347094e-5,5.222191413059654e-10,-4.7779572256916394e-4,-3.269322339193252e-5,4.712137846897875e-10,-4.776377532430203e-4,-3.294643314889626e-5,4.0828191455557877e-10,-4.7742011900052996e-4,-3.322255415686779e-5,3.3887550315425643e-10,-4.7713813362436103e-4,-3.3495522236272236e-5,2.692723543611399e-10,-4.767966058786844e-4,-3.374005506219493e-5,2.0561845121165476e-10,-4.764089810761079e-4,-3.3935100660724256e-5,1.5304719488686107e-10,-4.759953978571277e-4,-3.4066794130658526e-5,1.150012473363178e-10,-4.75579914293648e-4,-3.4130529894258694e-5,9.281539758685568e-11,-4.7518726401693057e-4,-3.4132012358599385e-5,8.552166664277137e-11,-4.7483937947707337e-4,-3.4087283256587925e-5,8.9808001360197e-11,-4.745518134530909e-4,-3.402168289331611e-5,1.0012352749726892e-10,-4.743301302744044e-4,-3.396758918434555e-5,1.0901384685598315e-10,-4.7416643965561046e-4,-3.3960444197777966e-5,1.0790405985855532e-10,-4.740368979791793e-4,-3.4032281179469596e-5,8.86169595898152e-11,-4.739021227586955e-4,-3.420250408423377e-5,4.5725881072999446e-11,-4.7371326042227083e-4,-3.446757033559661e-5,-2.0710561717845824e-11,-4.734254927457585e-4,-3.479429725681101e-5,-1.0330249928567228e-10,-4.7301639236006836e-4,-3.5123672220509924e-5,-1.881476569178234e-10,-4.725000431178112e-4,-3.5388839961071916e-5,-2.591876480176443e-10,-4.7192604541348076e-4,-3.554105374407855e-5,-3.044707002743182e-10,-4.7136099969806975e-4,-3.556883779945993e-5,-3.206993534357789e-10,-4.7086294225468346e-4,-3.549888047725581e-5,-3.1342792392102554e-10,-4.7046352272326177e-4,-3.538050951555742e-5,-2.935213287305637e-10,-4.7016473226171217e-4,-3.5265590743997314e-5,-2.726806915020762e-10,-4.699464136836216e-4,-3.5194260656001715e-5,-2.6030955535709985e-10,-4.697770469616606e-4,-3.518932915329649e-5,-2.622205939252974e-10,-4.696228012465099e-4,-3.5256920462369833e-5,-2.8060094716625834e-10,-4.6945333703288087e-4,-3.538992906669341e-5,-3.145484253008059e-10,-4.69244867902677e-4,-3.5571919634512485e-5,-3.607624652693146e-10,-4.6898164086817774e-4,-3.5780529452895425e-5,-4.1425452821863957e-10,-4.686566863176195e-4,-3.5990449974228233e-5,-4.690962154934373e-10,-4.6827208786035787e-4,-3.617631589754077e-5,-5.192139267408718e-10,-4.678386863652773e-4,-3.631568320727738e-5,-5.591870571551936e-10,-4.6737497335989225e-4,-3.6392083291211825e-5,-5.849904896303589e-10,-4.6690488301707415e-4,-3.639782201853782e-5,-5.94602599597509e-10,-4.6645445102384944e-4,-3.633592139146378e-5,-5.883906819014525e-10,-4.660476945176547e-4,-3.6220661871468307e-5,-5.692228942796334e-10,-4.657022695838701e-4,-3.6076407131886816e-5,-5.422815071321678e-10,-4.6542554666657507e-4,-3.5934607127357874e-5,-5.145430862929582e-10,-4.6521176990474016e-4,-3.582914597600692e-5,-4.93889587145379e-10,-4.650408921003716e-4,-3.579037660247443e-5,-4.878228226654467e-10,-4.6487973809540686e-4,-3.583822677071e-5,-5.017887049330647e-10,-4.646864289969452e-4,-3.5975183793548686e-5,-5.37296846788472e-10,-4.64418929535433e-4,-3.618107017587765e-5,-5.903807450996709e-10,-4.640473748557744e-4,-3.641280549063968e-5,-6.513004445318026e-10,-4.6356706963375163e-4,-3.6612571972860786e-5,-7.064066461510136e-10,-4.6300573393137634e-4,-3.672503075757567e-5,-7.42296675743031e-10,-4.624182914159778e-4,-3.671797163766815e-5,-7.508047679955584e-10,-4.6186855565977626e-4,-3.659550128472903e-5,-7.321670756526646e-10,-4.614064225580401e-4,-3.6395389241618036e-5,-6.944563282812404e-10,-4.610528332327597e-4,-3.6172385710832e-5,-6.498299076742612e-10,-4.607987283925611e-4,-3.597801715887471e-5,-6.100320374056605e-10,-4.6061468507508637e-4,-3.5846959612404006e-5,-5.833503649471653e-10,-4.6046349004600013e-4,-3.579313229929127e-5,-5.736387227312834e-10,-4.6030994274539054e-4,-3.5812705095171745e-5,-5.807834219497946e-10,-4.601262422144594e-4,-3.588972134772124e-5,-6.017486078129592e-10,-4.5989390505752053e-4,-3.600142119002202e-5,-6.316505581854882e-10,-4.596038614192552e-4,-3.61222398339944e-5,-6.646706362294414e-10,-4.592559568531993e-4,-3.6226694452753686e-5,-6.948193567656552e-10,-4.5885834703375316e-4,-3.629175808199892e-5,-7.166060109300918e-10,-4.584267277797475e-4,-3.629920933167143e-5,-7.25651034334448e-10,-4.5798303120869814e-4,-3.623817319516776e-5,-7.192617233124736e-10,-4.575530806030977e-4,-3.610762730040304e-5,-6.969458465337379e-10,-4.571628892970559e-4,-3.591815255208761e-5,-6.607620683323364e-10,-4.56833823604343e-4,-3.569198142091502e-5,-6.153534493322551e-10,-4.5657747279228704e-4,-3.54605678450924e-5,-5.675121322431022e-10,-4.5639155317605325e-4,-3.525945503013983e-5,-5.251872676244543e-10,-4.562582877399368e-4,-3.5121101489857186e-5,-4.960025021303906e-10,-4.561462404911574e-4,-3.5067166813251846e-5,-4.855281510313871e-10,-4.560157354184803e-4,-3.510209657136758e-5,-4.956760285975314e-10,-4.558271844438492e-4,-3.520973052125918e-5,-5.23642942124648e-10,-4.555509722539143e-4,-3.5354377231198915e-5,-5.618485388203806e-10,-4.551767900011865e-4,-3.5487271728465515e-5,-5.99216862288837e-10,-4.547194931700101e-4,-3.555821241925147e-5,-6.238372524193589e-10,-4.5421824807652514e-4,-3.553016757808225e-5,-6.264728450339745e-10,-4.537270827198009e-4,-3.539206308847836e-5,-6.037125880351339e-10,-4.532987076358123e-4,-3.5163679660655164e-5,-5.592847955933052e-10,-4.5296792741134556e-4,-3.488912728160238e-5,-5.027086388929701e-10,-4.527422313081323e-4,-3.462138798450755e-5,-4.458766460131134e-10,-4.5260323410913533e-4,-3.4405453702598874e-5,-3.9926413768010085e-10,-4.5251644486876176e-4,-3.426740951649623e-5,-3.6938487658784766e-10,-4.5244332300902997e-4,-3.421213627964388e-5,-3.5808595438001316e-10,-4.523505626185003e-4,-3.4227480505678286e-5,-3.632636675315268e-10,-4.5221482312207624e-4,-3.4290899461766846e-5,-3.8020116677613763e-10,-4.5202375557595886e-4,-3.437554371425792e-5,-4.029081427514244e-10,-4.5177505774483904e-4,-3.445460262322402e-5,-4.251869797649234e-10,-4.514749547370295e-4,-3.4504079311446706e-5,-4.4139362238526164e-10,-4.5113679020358777e-4,-3.450468018923218e-5,-4.469651496899405e-10,-4.507797731939009e-4,-3.444350711070474e-5,-4.388225099902334e-10,-4.504274678763231e-4,-3.431595710739258e-5,-4.1574789980056126e-10,-4.501053968208255e-4,-3.412772239306382e-5,-3.7876689398194317e-10,-4.49837245052929e-4,-3.3896171321560205e-5,-3.3143923698792594e-10,-4.4963967883302245e-4,-3.364990241377015e-5,-2.7982500286964254e-10,-4.495167350280108e-4,-3.342519780636138e-5,-2.3182893325347959e-10,-4.494557916595384e-4,-3.32588698365336e-5,-1.9575098987866422e-10,-4.494275238613324e-4,-3.317868246084438e-5,-1.7822526619476317e-10,-4.493912544321645e-4,-3.319433112785999e-5,-1.8215182067943742e-10,-4.4930491559363935e-4,-3.329257874488547e-5,-2.0541584757431906e-10,-4.491366544886963e-4,-3.343893518934762e-5,-2.409915239755049e-10,-4.4887423428689434e-4,-3.358582747083409e-5,-2.785249749837473e-10,-4.4852918924545023e-4,-3.3684857564196356e-5,-3.069592004180854e-10,-4.481345025764483e-4,-3.3699547562141865E-05,-3.174400965017838e-10,-4.477364173205387e-4,-3.36150453685436e-5,-3.056899582009406e-10,-4.473824653024104e-4,-3.3442075559446554e-5,-2.731645840371916e-10,-4.471089794236686e-4,-3.3213746559910004e-5,-2.2659609678642381e-10,-4.4693193476726584e-4,-3.2975892326254515e-5,-1.7600234698550785e-10,-4.4684415933761597e-4,-3.2774072581832724e-5,-1.318180279743324e-10,-4.468195596048631e-4,-3.264180812728822e-5,-1.0215906621877542e-10,-4.468221350963377e-4,-3.259390394722096e-5,-9.111564082088563e-11,-4.468159270102211e-4,-3.262613831507543e-5,-9.843768488394674e-11,-4.4677253154619184e-4,-3.271981887431175e-5,-1.2037327381122013e-10,-4.466747593938944e-4,-3.2848326037323585e-5,-1.5107991793165482e-10,-4.465169535590928e-4,-3.298315215165685e-5,-1.8405170853296948e-10,-4.4630337571044507e-4,-3.309824656748056e-5,-2.1323351666357844e-10,-4.4604597579605345e-4,-3.317263929462189e-5,-2.337308573244723e-10,-4.45762317539977e-4,-3.3191928530204014e-5,-2.421841171496663e-10,-4.454738218877487e-4,-3.314935956184844e-5,-2.369644191333686e-10,-4.4520398080873634e-4,-3.304699535971351e-5,-2.1835135532547503e-10,-4.449759188950929e-4,-3.289697404544757e-5,-1.887628854791514e-10,-4.448087241116615e-4,-3.2722220146874976e-5,-1.529489231537002e-10,-4.4471242614531716e-4,-3.2555363695373645e-5,-1.1787226547448037e-10,-4.446825403539786e-4,-3.2434324371631275e-5,-9.188130706746193e-11,-4.4469655992664646e-4,-3.2393735943472714e-5,-8.291075104452407e-11,-4.4471563063769776e-4,-3.245364245052461e-5,-9.596818943647909e-11,-4.446933654754844e-4,-3.2609831845342675e-5,-1.3086158754423952e-10,-4.445900359888028e-4,-3.2831347836709934e-5,-1.814400172328324e-10,-4.4438642125605143e-4,-3.306811219248421e-5,-2.370680722983898e-10,-4.4409080264432883e-4,-3.326622792760892e-5,-2.858581212801058e-10,-4.437360837083105e-4,-3.33843518504114e-5,-3.1823887552277983e-10,-4.433690949210459e-4,-3.340463330407339e-5,-3.294487374573945e-10,-4.430370755530498e-4,-3.3335321031998855e-5,-3.203184353265311e-10,-4.427759960089928e-4,-3.320596713714179e-5,-2.9650278742528307e-10,-4.4260339341241914e-4,-3.305809413124731e-5,-2.666935334285821e-10,-4.425164934095727e-4,-3.293443729480453e-5,-2.403889490512539e-10,-4.424951037855245e-4,-3.286939195932481e-5,-2.2573681301802528e-10,-4.4250792553513906e-4,-3.2882577323854434e-5,-2.2789539745179735e-10,-4.425203905633074e-4,-3.297653466831185e-5,-2.4823497974085815e-10,-4.425019734590562e-4,-3.313848660280707e-5,-2.8448803781729026e-10,-4.424313311491289e-4,-3.334499881923905e-5,-3.3168004394333305e-10,-4.422985572981347e-4,-3.3567784931305844e-5,-3.834657566606249e-10,-4.4210484891880924e-4,-3.377905354369237e-5,-4.3346022827032136e-10,-4.4186050614891556e-4,-3.3955460677570604e-5,-4.762630706971752e-10,-0.00044158229376506733,-3.408047587119074e-5,-5.080560853142402e-10,-4.4129088951131405e-4,-3.4145537682724034e-5,-5.268328707022444e-10,-4.4100864451780675e-4,-3.415060214756904e-5,-5.324321778308508e-10,-4.4075744431709034e-4,-3.4104538515809105e-5,-5.265509515466792e-10,-4.405562048159596e-4,-3.402543308853396e-5,-5.128193797311413e-10,-4.4041749799388676e-4,-3.394031824044413e-5,-4.968520411437988e-10,-4.4034317371603764e-4,-3.388321666420194e-5,-4.859836819661576e-10,-4.4031985380117906e-4,-3.389003663385937e-5,-4.882781596747447e-10,-4.4031667309458187e-4,-3.398947734201114e-5,-5.105417250572887e-10,-4.40288726603928e-4,-3.419139460117802e-5,-5.556392875995702e-10,-4.4018852720764694e-4,-3.447763007612022e-5,-6.202734840122589e-10,-4.3998312776834925e-4,-3.4802253044518366e-5,-6.948530997978604e-10,-4.396688525708522e-4,-3.510470657110431e-5,-7.662719727894685e-10,-4.3927463938373874e-4,-3.533108692677226e-5,-8.225278615720626e-10,-4.388514849831018e-4,-3.545261924397217e-5,-8.567545923869293e-10,-4.384542114569926e-4,-3.5472467064472854e-5,-8.687704570663886e-10,-4.381250309194333e-4,-3.542007387575285e-5,-8.640367362840351e-10,-4.3788477725332484e-4,-3.533865244353876e-5,-8.512299465652137e-10,-4.377321566231613e-4,-3.52722511840646e-5,-8.396926899517458e-10,-4.3764830456916964e-4,-3.525614476523123e-5,-8.374333127536711e-10,-4.376036478383992e-4,-3.531151963905395e-5,-8.498330044244647e-10,-4.3756499698159503e-4,-3.544392307484552e-5,-8.790159276265403e-10,-4.3750174764789934e-4,-3.56445680225368e-5,-9.238259471745557e-10,-4.3739057794072914e-4,-3.5893675770702265e-5,-9.803621067461992e-10,-4.372182577922428e-4,-3.6165025749781834e-5,-1.042950971201023e-9,-4.369824734841252e-4,-3.6430802734025703e-5,-1.1053246753441703e-9,-4.36690901264442e-4,-3.6665949804834746e-5,-1.1617407465670032e-9,-4.3635900542241446e-4,-3.685147801086402e-5,-1.2078249534317108e-9,-4.360071976804138e-4,-3.697647114841903e-5,-1.2410262063482944e-9,-4.356579555231565e-4,-3.7038915732516285e-5,-1.260728985867218e-9,-4.353331667358742e-4,-3.704575670653252e-5,-1.2681800873321904e-9,-4.350516275750907e-4,-3.701249208677096e-5,-1.2663789075441324e-9,-4.348264748497907e-4,-3.696235632581322e-5,-1.2599873663792249e-9,-4.3466228069439307e-4,-3.692480626009468e-5,-1.2551736513394884e-9,-4.3455177288540366e-4,-3.6932510170417106e-5,-1.25912798564809e-9,-4.3447301468774706e-4,-3.701572674939781e-5,-1.278902275184977e-9,-4.3438916026796164e-4,-3.71935894381788e-5,-1.3194060826546412e-9,-4.3425376802956616e-4,-3.74638561498117e-5,-1.3809346111075104e-9,-4.340236163024067e-4,-3.779593543622154e-5,-1.4574024307369292e-9,-4.3367640876553675e-4,-3.8134118564692025e-5,-1.5369256916288049e-9,-4.332244241737091e-4,-3.8414502041651824e-5,-1.6055222702572017e-9,-4.3271386018431076e-4,-3.858948430017033e-5,-1.652481129483999e-9,-4.3220787923143326e-4,-3.864607462666557e-5,-1.6743270763616353e-9,-4.317629656468537e-4,-3.860761863456337e-5,-1.6752156913577408e-9,-4.3141176547786695e-4,-3.8520414864384305e-5,-1.6642240440609935e-9,-4.3115868222643985e-4,-3.8435327419660585e-5,-1.651702421749401e-9,-4.3098557996193025e-4,-3.8393580822086956e-5,-1.6464759363415677e-9,-4.3086147835504085e-4,-3.841992287116871e-5,-1.65440671246263e-9,-4.307516674336233e-4,-3.8521823132790755e-5,-1.6780078303099869e-9,-4.306243804306794e-4,-3.8692067403099935e-5,-1.716664885505569e-9,-4.3045497513185133e-4,-3.891267180424769e-5,-1.7671843133691706e-9,-4.302282105989142e-4,-3.9159095494623204e-5,-1.824566327370246e-9,-4.299390751286171e-4,-3.940438880534627e-5,-1.8829431790449586e-9,-4.295924025130069e-4,-3.9623034498814555e-5,-1.936562263178734e-9,-4.292014630930585e-4,-3.9794261037469396e-5,-1.9806593157273097e-9,-4.287856876623859e-4,-3.9904630596068394e-5,-2.0120950226613972e-9,-4.28367754503315e-4,-3.994964610903417e-5,-2.0296763544745215e-9,-4.279704452993792e-4,-3.9934237516808346e-5,-2.0341813886434956e-9,-4.276136265667553e-4,-3.987227137249826e-5,-2.0282039753249915e-9,-4.273114688402678e-4,-3.978527077197651e-5,-2.0159259234067885e-9,-4.2706992488113834e-4,-3.9700366198973295e-5,-2.002829069662559e-9,-4.268845197863682e-4,-3.964737840173896e-5,-1.9952647642030475e-9,-4.267386265969893e-4,-3.965471131576109e-5,-1.999700373052887e-9,-4.266029510717304e-4,-3.9743544324180614e-5,-2.0214358793739664e-9,-4.26437834568534e-4,-3.992039295746758e-5,-2.0627867533072652e-9,-4.2620038657907274e-4,-4.016980373449743e-5,-2.1212012265236316e-9,-4.2585728334790284e-4,-4.0451299582123726e-5,-2.1883606719571155e-9,-4.25400265363133e-4,-4.070596598753596e-5,-2.25155109322746e-9,-4.248561337280175e-4,-4.0874859811857436e-5,-2.2977411834001216e-9,-4.242820619720334e-4,-4.092274432793028e-5,-2.3187965446079723e-9,-4.237451316903482e-4,-4.085341822572131e-5,-2.3147791360394584e-9,-4.2329694415442286e-4,-4.070654441064251e-5,-2.2932869092235596e-9,-4.229578411734412e-4,-4.0538947222353454e-5,-2.2656447239000503e-9,-4.2271688421275413e-4,-4.040304127911455e-5,-2.2426165588610284e-9,-4.225427433080427e-4,-4.0333144803596924e-5,-2.231704275563879e-9,-4.223968689264773e-4,-4.0342043136537935e-5,-2.2363639652971267e-9,-4.222434398179648e-4,-4.042433106460874e-5,-2.256430112670042e-9,-4.220548334090586e-4,-4.056222883882198e-5,-2.2890006714688703e-9,-4.218136677594013e-4,-4.073117018433807e-5,-2.3293788637137593e-9,-4.21512946299068e-4,-4.0904258616967875e-5,-2.3719643641673716e-9,-4.2115531676598317e-4,-4.105575217512033e-5,-2.4111025484600863e-9,-4.207517952197999e-4,-4.1163907229954436e-5,-2.441863734119646e-9,-4.203200113401336e-4,-4.121333480514526e-5,-2.460678044086568e-9,-4.198819221794372e-4,-4.119688223171917e-5,-2.4657691210332674e-9,-4.194609188969578e-4,-4.111682572964086e-5,-2.4573520283086842e-9,-4.1907848888926417e-4,-4.0985005162454883e-5,-2.4375869987131062e-9,-4.1875086145044143e-4,-4.082171835588424e-5,-2.4103369791762464e-9,-4.1848604840921634e-4,-4.065342570658751e-5,-2.3807851127628465e-9,-4.182816061708275e-4,-4.050935427302264e-5,-2.3549026071762925e-9,-4.1812347686722286e-4,-4.041715861848515e-5,-2.3387103150409148e-9,-4.1798629068454416e-4,-4.039789505126642e-5,-2.337275945283984e-9,-4.178356307985684e-4,-4.046059638808345e-5,-2.353438615303446e-9,-4.1763304542852736e-4,-4.0597133531294696e-5,-2.3864309135234715e-9,-4.17344485054109e-4,-4.07791348421971e-5,-2.4308988000567276e-9,-4.1695157842682465e-4,-4.095991780817399e-5,-2.477108670627579e-9,-4.16462448119742e-4,-4.108433698392642e-5,-2.5130503328766345e-9,-4.15915771968092e-4,-4.1106404871525956e-5,-2.528346010590168e-9,-4.153721159190534e-4,-4.100833523430551e-5,-2.5184530965389194e-9,-4.1489323356661917e-4,-4.0810007275967356e-5,-2.4867440031700544e-9,-4.1451934265011636e-4,-4.056149998336314e-5,-2.443004015897615e-9,-4.14257057163492e-4,-4.032253315069391e-5,-2.399280027476654e-9,-4.140829643037679e-4,-4.014115402159914e-5,-2.365624213252662e-9,-4.139573594589503e-4,-4.004203540654317e-5,-2.347719850083814e-9,-4.1383883902764264e-4,-4.0026135838993726e-5,-2.346648557292666e-9,-4.1369395521428763e-4,-4.007714518494776e-5,-2.359918634965156e-9,-4.1350116283010187e-4,-4.0169438678037385e-5,-2.3828275358386247e-9,-4.132509204849382e-4,-4.02745458009851e-5,-2.409672202656709e-9,-4.12944098431814e-4,-4.036544899383293e-5,-2.434693727626981e-9,-4.1259003312596384e-4,-4.0419283786942026e-5,-2.4528076757501718e-9,-4.1220463180241106e-4,-4.041920894315126e-5,-2.460165886913844e-9,-4.118084241146482e-4,-4.035589750016881e-5,-2.4545551866637317e-9,-4.114243079808707e-4,-4.0228769440772255e-5,-2.4356339267987566e-9,-4.1107472547243434e-4,-4.004674770704506e-5,-2.4050065497151834e-9,-4.107782411517076e-4,-3.982801465533893e-5,-2.3661110631512318e-9,-4.1054594259781567e-4,-3.959827057314572e-5,-2.3238887851075064e-9,-4.10378395758591e-4,-3.938732383127705e-5,-2.2842171118400988e-9,-4.1026395191599125e-4,-3.922422342717951e-5,-2.2530908614786637e-9,-4.101791123460307e-4,-3.9131562701737556e-5,-2.23557803383868e-9,-4.100913745510124e-4,-3.911997116984464e-5,-2.2346619299068557e-9,-4.099645570075549e-4,-3.9183950507037974e-5,-2.250178149363926e-9,-4.097661972198411e-4,-3.930021397784681e-5,-2.278150153434694e-9,-4.0947612025577423e-4,-3.9429780090729804e-5,-2.310922006873919e-9,-4.090943862753506e-4,-3.952493336780649e-5,-2.338459230035468e-9,-4.086456517799025e-4,-3.954111611657848e-5,-2.3508883014153373e-9,-4.081763984351799e-4,-3.945141594102922e-5,-2.34172318966217e-9,-4.0774310491620253e-4,-3.9258165010706924e-5,-2.3105104000586573e-9,-4.0739410414728915e-4,-3.899487440782558e-5,-2.2634068239480487e-9,-4.071530517716821e-4,-3.8715380711305496e-5,-2.2110648360130516e-9,-4.07012517735472e-4,-3.8474663908117465e-5,-2.1647814676881445e-9,-4.0694031503661626e-4,-3.83111097332982e-5,-2.132885090794267e-9,-4.0689355328915437e-4,-3.823811500140989e-5,-2.118905391336737e-9,-4.0683245131795863e-4,-3.824611552137267e-5,-2.121744169365106e-9,-4.0672875066320724e-4,-3.83106584547127e-5,-2.137053712749919e-9,-4.065681541205749e-4,-3.8401284561318635e-5,-2.1588842425524963e-9,-4.063489170280104e-4,-3.848820200325258e-5,-2.181051087605659e-9,-4.0607899542711783e-4,-3.854620981262006e-5,-2.198080022710527e-9,-4.0577321760118843e-4,-3.855665233157998e-5,-2.2057933114142437e-9,-4.054509336224549e-4,-3.850839314776131e-5,-2.2016348705458945e-9,-4.051339790749997e-4,-3.839848304650612e-5,-2.1848218714545927e-9,-4.0484452728607707e-4,-3.8232763492249975e-5,-2.1563917184551757e-9,-4.046024009615301e-4,-3.8026166396044666e-5,-2.1191704389762e-9,-4.0442170184689123e-4,-3.780206287518215e-5,-2.0776109012345515e-9,-4.043071522932379e-4,-3.7589916539575194e-5,-2.037394588277785e-9,-4.0425112417486777e-4,-3.7420805564781884e-5,-2.0046841607319565e-9,-4.0423270413599097e-4,-3.732108474951415e-5,-1.9850017433876396e-9,-4.042199941499895e-4,-3.7305461211264305e-5,-1.9818909364028005e-9,-4.041759729458141e-4,-3.7371576180890595e-5,-1.995722476799383e-9,-4.040669367934563e-4,-3.749819781395151e-5,-2.023080949156707e-9,-4.038714430168704e-4,-3.764824543910441e-5,-2.0570719150784504e-9,-4.0358723837979936e-4,-3.777652245214125e-5,-2.088652532821821e-9,-4.0323392522940814e-4,-3.784066890271968e-5,-2.108786263221883e-9,-4.028499668827034e-4,-3.7812733764463005e-5,-2.110917795052249e-9,-4.024839213955273e-4,-3.768809159565209e-5,-2.0930452841422504e-9,-4.0218154105103323e-4,-3.748838143603014e-5,-2.0586134771402745e-9,-4.0197245691300375e-4,-3.7256296497542606e-5,-2.0156987881971886e-9,-4.0186148165965595e-4,-3.7042976733979594e-5,-1.974586200188155e-9,-4.018283808339541e-4,-3.6892494178303976e-5,-1.944623987475064e-9,-4.0183608868270894e-4,-3.6829760565161567e-5,-1.9316327261505804e-9,-4.0184323029191903e-4,-3.685629057238657e-5,-1.9367984159228025e-9,-4.0181540972463755e-4,-3.6953941902521246e-5,-1.9571606390107712e-9,-4.0173160962337696e-4,-3.7093205760581396e-5,-1.9871078224997477e-9,-4.015852743493223e-4,-3.724183204408453e-5,-2.0200937211791826e-9,-4.013819118193629e-4,-3.737112093517171e-5,-2.0500268935527753e-9,-4.0113546642722405e-4,-3.745934046666174e-5,-2.072145790532876e-9,-4.008649162475529e-4,-3.749303145455463e-5,-2.0834320591036338e-9,-4.005915876567197e-4,-3.746722429672266e-5,-2.0827005722215756e-9,-4.00337051736825e-4,-3.7385338843855984e-5,-2.0705219071079996e-9,-4.0012112723467486e-4,-3.725911600757237e-5,-2.0491068141487655e-9,-3.9995945006566694e-4,-3.710838880148392e-5,-2.02219878218256e-9,-3.9986036290861937e-4,-3.696000071532959e-5,-1.9948926212214277e-9,-3.9982147601925637e-4,-3.684496081292581e-5,-1.9731958999948373e-9,-3.998270224104261e-4,-3.6793151712941985e-5,-1.9631309255681626e-9,-3.9984782850540707e-4,-3.6825820017548094e-5,-1.9693326621769157e-9,-3.9984567314217234e-4,-3.6947721487253395e-5,-1.9934475370821446e-9,-3.997823060669654e-4,-3.714229558595796e-5,-2.0329994613703186e-9,-3.996308094008664e-4,-3.7373115060623765e-5,-2.0814266273117242e-9,-3.99384988712439e-4,-3.759249203934011e-5,-2.1295566994293455e-9,-3.9906271036433164e-4,-3.775472405457742e-5,-2.1681019565900638e-9,-3.987016202917927e-4,-3.7829193936713294e-5,-2.190272534708571e-9,-3.9834887836798216e-4,-3.780875269054671e-5,-2.193608295241445e-9,-3.980485538263064e-4,-3.7711034648837475e-5,-2.1805271009791155e-9,-3.978305141809676e-4,-3.75729460791574e-5,-2.157555028882998e-9,-3.9770366530245046e-4,-3.744037328616604e-5,-2.1335311050243456e-9,-3.9765504299890545e-4,-3.735613027207092e-5,-2.1172878104897155e-9,-3.976546923721489e-4,-3.7349520461290274e-5,-2.1154458093897077e-9,-3.976645841027215e-4,-3.7430385886824955e-5,-2.1309453027747796e-9,-3.9764857481630915e-4,-3.7588969553787584e-5,-2.16269710822895e-9,-3.975803240688057e-4,-3.78008285196242e-5,-2.206328545718188e-9,-3.9744725472712117e-4,-3.8034406317778884e-5,-2.2556260006985536e-9,-3.972504331599879e-4,-3.825848207709496e-5,-2.304116143937135e-9,-3.970016678082849e-4,-3.8447576129588216e-5,-2.346328968114079e-9,-3.967195597523896e-4,-3.85847761019194e-5,-2.378535140950185e-9,-3.9642580202908984e-4,-3.8662499543895226e-5,-2.3989805580658325e-9,-3.9614227617272086e-4,-3.8682093918056946e-5,-2.407778956750608e-9,-3.9588887819566896e-4,-3.865305185717903e-5,-2.406662527805749e-9,-3.9568165300506234e-4,-3.8592229765188354e-5,-2.3987512411946675e-9,-3.9553072846361295e-4,-3.852295871827556e-5,-2.3883867003944353e-9,-3.9543774790634314e-4,-3.847345808670505e-5,-2.3809297326839213e-9,-3.9539305003282924e-4,-3.847364136251777e-5,-2.382287114028292e-9,-3.9537371824626544e-4,-3.854948972135635e-5,-2.397910865159832e-9,-3.9534454501332527e-4,-3.8715107497318946e-5,-2.4312142198376576e-9,-3.952641095528031e-4,-3.896460770802551e-5,-2.4818178598376683e-9,-3.9509636929992376e-4,-3.9268210077471814e-5,-2.5445577437541576e-9,-3.9482433024793544e-4,-3.957704143478872e-5,-2.6102337078048142e-9,-3.944590437311957e-4,-3.983728465279895e-5,-2.66827632892777e-9,-3.9403811672779804e-4,-4.000826568398732e-5,-2.7102607573795425e-9,-3.936136334447647e-4,-4.007582516475161e-5,-2.732568246881595e-9,-3.932354489171214e-4,-4.005509986930359e-5,-2.7370829288428234e-9,-3.9293735005261444e-4,-3.9983124149450465e-5,-2.730028550413103e-9,-3.927304162113228e-4,-3.990616554842289e-5,-2.7198283129693987e-9,-3.926037104670152e-4,-3.986712394333029e-5,-2.7148744382944538e-9,-3.925300340245018e-4,-3.989630581245046e-5,-2.721726552456415e-9,-3.924740322961887e-4,-4.000673567964125e-5,-2.7439566656949624e-9,-3.9240044960224226e-4,-4.0193797020507027e-5,-2.781711773518208e-9,-3.9228100027058804e-4,-4.043835453992976e-5,-2.8319939335662753e-9,-3.920988397429943e-4,-4.071220949346134e-5,-2.8895632795737313e-9,-3.918501286346216e-4,-4.098447018044798e-5,-2.9482215655903276e-9,-3.915428759247042e-4,-4.1227354423628e-5,-3.002126932202798e-9,-3.911938860598323e-4,-4.142035578932055e-5,-3.0468184632871506e-9,-3.908248865257149e-4,-4.1552391217979064e-5,-3.079773043002786e-9,-3.904587877773441e-4,-4.162213920665322e-5,-3.100490246668063e-9,-3.901166540589265e-4,-4.163716629526032e-5,-3.1102498369570066e-9,-3.898154596295406e-4,-4.1612528206521545e-5,-3.1117545046976984e-9,-3.895663343014008e-4,-4.15692477287104e-5,-3.108816873159751e-9,-3.893729274795302e-4,-4.1532643167673676e-5,-3.106122424164249e-9,-3.8922964958095066e-4,-4.1530120920376783e-5,-3.108959796232942e-9,-3.8911993547672825e-4,-4.158773400879558e-5,-3.1226873440949273e-9,-3.890154780111431e-4,-4.172477613316137e-5,-3.1516937951170783e-9,-3.8887832398421657e-4,-4.1946490302301866e-5,-3.1978260954989524e-9,-3.8866798799491536e-4,-4.2236923527193535e-5,-3.2587392014650204e-9,-3.883541075724722e-4,-4.255643026767475e-5,-3.3271796700881e-9,-3.879309179981178e-4,-4.2848970224092304e-5,-3.3923178303223024e-9,-3.874252936797595e-4,-4.3060086306725585e-5,-3.4432808142227515e-9,-3.8689085406422015e-4,-4.315822428367038e-5,-3.473343383367832e-9,-3.863889877673784e-4,-4.3147231358598694e-5,-3.4823712443678767e-9,-3.859670303418556e-4,-4.306282988945449e-5,-3.476235200012914e-9,-3.856450179732965e-4,-4.29567332020061e-5,-3.4640108169692097e-9,-3.8541502948697586e-4,-4.287851646215824e-5,-3.4548315486565543e-9,-3.852493149355605e-4,-4.2863147399264384e-5,-3.4556957290431317e-9,-3.851111325842977e-4,-4.2926194690833945e-5,-3.4704676625369628e-9,-3.849641750666217e-4,-4.306488479653104e-5,-3.4997555963823663e-9,-3.8477904449105344e-4,-4.326230537360815e-5,-3.541315667419064e-9,-3.845368505256895e-4,-4.349269606106779e-5,-3.5907716079917845e-9,-3.842305470775176e-4,-4.372677264988809e-5,-3.6425556238611925e-9,-3.838644713396162e-4,-4.393662457551494e-5,-3.690971057311515e-9,-3.834524001017426e-4,-4.4099766813166904e-5,-3.731195660582228e-9,-3.8301455462920074e-4,-4.4201952462350065e-5,-3.760022682061001e-9,-3.8257407697839317e-4,-4.42385677285092e-5,-3.776219192075404e-9,-3.821534971407641e-4,-4.42146190699868e-5,-3.78049345493217e-9,-3.8177167811354886e-4,-4.414353188785048e-5,-3.775176115440497e-9,-3.814415037458072e-4,-4.404520966037506e-5,-3.763795599090132e-9,-3.811682438952999e-4,-4.3943745048884684e-5,-3.750686091708826e-9,-3.8094841874788385e-4,-4.3864881721126706e-5,-3.740645067077998e-9,-3.807690606418496e-4,-4.383310219135978e-5,-3.738542478624394e-9,-3.8060747113549404e-4,-4.3868015094879415e-5,-3.7487069852998005e-9,-3.8043212896826716e-4,-4.397964230952124e-5,-3.77392849591353e-9,-3.8020614214202126e-4,-4.416283549922484e-5,-3.814126337469046e-9,-3.7989477348660916e-4,-4.43925934432593e-5,-3.8651369785543476e-9,-3.7947723172862823e-4,-4.462397219530305e-5,-3.918497560033356e-9,-3.789593875598948e-4,-4.4800964639163135e-5,-3.96317158934382e-9,-3.783796554624242e-4,-4.487522211492297e-5,-3.989310173516736e-9,-3.7780028171270733e-4,-4.482731494297352e-5,-3.992457390009027e-9,-3.772848187336151e-4,-4.4677289049787794e-5,-3.975587279866091e-9,-3.768738589342568e-4,-4.4476302813578715e-5,-3.947557776892742e-9,-3.765731596693725e-4,-4.4284647088400656e-5,-3.919157973229763e-9,-3.763583684669076e-4,-4.415011216339383e-5,-3.8993178944763496e-9,-3.7618935482083637e-4,-4.409689236608701e-5,-3.893153730927883e-9,-3.760245905568384e-4,-4.412564418670974e-5,-3.901816527226052e-9,-3.758305281239963e-4,-4.4219737409461237e-5,-3.923290331122069e-9,-3.755856622553639e-4,-4.435289044370741e-5,-3.953443754350989e-9,-3.752809867131644e-4,-4.449563849145108e-5,-3.987032034029203e-9,-3.749186681115099e-4,-4.462002058569582e-5,-4.018598786101294e-9,-3.745100126286204e-4,-4.4702883418774216e-5,-4.043293546650498e-9,-3.740730272909859e-4,-4.472824114947566e-5,-4.057558558959361e-9,-3.736296275242296e-4,-4.4688796131403827e-5,-4.059581153155581e-9,-3.732025909944763e-4,-4.4586579231906474e-5,-4.049448013925343e-9,-3.7281240901532864e-4,-4.4432606619089756e-5,-4.029008414573869e-9,-3.724743361521061e-4,-4.4245446122239154e-5,-4.001513612609417e-9,-3.7219604683176886e-4,-4.404881315412431e-5,-3.971147889469539e-9,-3.719761559946201e-4,-4.386851506422404e-5,-3.942550572712875e-9,-3.718036869016746e-4,-4.3729011292962504e-5,-3.920339561133363e-9,-3.716585476438696e-4,-4.364979112255484e-5,-3.908574248164302e-9,-3.715130942800803e-4,-4.364173138022532e-5,-3.910078188684471e-9,-3.713350457921283e-4,-4.370352841575415e-5,-3.925586069346227e-9,-3.7109238380513845e-4,-4.3818651024463044e-5,-3.9528488394828995e-9,-3.707607845405598e-4,-4.395425389302266e-5,-3.986112633364346e-9,-3.7033298488081413e-4,-4.406449097933762e-5,-4.01659369367896e-9,-3.698271408886742e-4,-4.4100617660546984e-5,-4.034478858226037e-9,-3.6928850300559833e-4,-4.402761136944001e-5,-4.032309510928544e-9,-3.6877886950402043e-4,-4.3841161627626426e-5,-4.008397336623387e-9,-3.68354844176475e-4,-4.3574127073054776e-5,-3.9681227490621515e-9,-3.680456442399449e-4,-4.328536888044946e-5,-3.921896540270247e-9,-3.678438514995482e-4,-4.303605390842075e-5,-3.88088052714649e-9,-3.6771344272492777e-4,-4.286765668321312e-5,-3.853066475373028e-9,-3.6760744211130974e-4,-4.279271827029995e-5,-3.841571155142976e-9,-3.6748400287878505e-4,-4.279868404809011e-5,-3.845110101089603e-9,-3.6731503805980255e-4,-4.2858040425471004e-5,-3.859505188909107e-9,-3.670878782353395e-4,-4.293828963274571e-5,-3.879232548481663e-9,-3.668030259099282e-4,-4.300887457302174e-5,-3.8986149146387406e-9,-3.664707239972699e-4,-4.304497730933188e-5,-3.912649349560868e-9,-3.6610775839668016e-4,-4.302929792015812e-5,-3.917575783781463e-9,-3.657347454762509e-4,-4.295287241734541e-5,-3.911245377621743e-9,-3.653736412651876e-4,-4.2815417391808795e-5,-3.893281236926014e-9,-3.650452228879931e-4,-4.2625259277326516e-5,-3.865029786249455e-9,-3.6476641984123815e-4,-4.239866016669585e-5,-3.8293301914713776e-9,-3.645476115673927e-4,-4.215819173345968e-5,-3.790137077788593e-9,-3.643903517009124e-4,-4.192994909126311e-5,-3.752032661708107e-9,-3.642861036996599e-4,-4.173977362622034e-5,-3.71966635491313e-9,-3.642164327955368e-4,-4.160892942215545e-5,-3.697132215015159e-9,-3.641549093482707e-4,-4.1549858066543754e-5,-3.6872863278909777e-9,-3.6407072313266787e-4,-4.1562773802817286e-5,-3.6910546876715064e-9,-3.639337297548633e-4,-4.1633785245227165e-5,-3.706842402789998e-9,-3.637205402382895e-4,-4.17351263688552e-5,-3.730239026226662e-9,-3.634210733541716e-4,-4.182826882524199e-5,-3.7543125950062615e-9,-3.6304426985984744e-4,-4.187077889867399e-5,-3.770791848359487e-9,-3.626205679360432e-4,-4.1827023967553126e-5,-3.772195287003563e-9,-3.621980590998262e-4,-4.168082324199709e-5,-3.754465893092228e-9,-3.6183040236259707e-4,-4.144515737090433e-5,-3.719051514202747e-9,-3.615588707716338e-4,-4.1162290906568653e-5,-3.6731031521314867e-9,-3.61396538504054e-4,-4.089083947416614e-5,-3.627175685529882e-9,-3.6132387086853867e-4,-4.0684523717909506e-5,-3.5913642442355727e-9,-3.612984871112935e-4,-4.057381858184938e-5,-3.57191628278744e-9,-3.6127263538453984e-4,-4.0559572504084276e-5,-3.5699106570700582e-9,-3.6120844626298833e-4,-4.061897653845609e-5,-3.5820719173724824e-9,-3.610852118619653e-4,-4.0717434213808e-5,-3.6026558942381903e-9,-3.608991626924136e-4,-4.0819528038116416e-5,-3.625305177385425e-9,-3.6065929725962267e-4,-4.0895889554540754e-5,-3.644354040211268e-9,-3.6038248887045136e-4,-4.092611299111932e-5,-3.6555594903413846e-9,-3.6008948797461456e-4,-4.089924983103489e-5,-3.6564197922185135e-9,-3.598020583044798e-4,-4.0813324951301555e-5,-3.6462285238279096e-9,-3.5954081132138837e-4,-4.06746448702424e-5,-3.625955167087689e-9,-3.593232203764928e-4,-4.049706401005377e-5,-3.5980159849031315e-9,-3.591614767911618e-4,-4.030096233320472e-5,-3.5659792059672047e-9,-3.5906017581369425e-4,-4.011143008152642e-5,-3.5342021902016163e-9,-3.590142746293756e-4,-3.9955202075565014e-5,-3.5073577657903728e-9,-3.5900813493897933e-4,-3.9856294031816824e-5,-3.4898049410216977e-9,-3.590165228657977e-4,-3.9830885148132995e-5,-3.484809323888809e-9,-3.5900811619758537e-4,-3.988259608517585e-5,-3.4937187933879266e-9,-3.589513508368191e-4,-3.9999692692636196e-5,-3.515316951993148e-9,-3.588215300116031e-4,-4.015553409221791e-5,-3.5456245459726613e-9,-3.586074994236263e-4,-4.031277515563591e-5,-3.578347724118303e-9,-3.5831611404968134e-4,-4.0430887172238557e-5,-3.6060328154525907e-9,-3.5797300106842354e-4,-4.0475752013014714e-5,-3.621798180660383e-9,-3.5761860209188446e-4,-4.0429328523306393E-05,-3.6212892232579545e-9,-3.572993273213688e-4,-4.029669010026284e-5,-3.604282007806e-9,-3.5705516107877836e-4,-4.01074134564653e-5,-3.575261109336151e-9,-3.56907171864305e-4,-3.990910227757714e-5,-3.542466178765705e-9,-3.5685000952815797e-4,-3.975360446642084e-5,-3.51546370509442e-9,-3.568535768631939e-4,-3.968060851260814e-5,-3.502095452651505e-9,-3.568738387353768e-4,-3.9705767185260144e-5,-3.506123139270059e-9,-3.568676969066613e-4,-3.981847075560239e-5,-3.526548679024781e-9,-3.568050583051709e-4,-3.9988930782059254e-5,-3.558632436406407e-9,-3.56673931076042e-4,-4.017965642244248e-5,-3.595815124716367e-9,-3.564788653472729e-4,-4.035578451744323e-5,-3.631596410599711e-9,-3.562358193015023e-4,-4.049130472750036e-5,-3.6608170038248088e-9,-3.5596655047241536e-4,-4.057119598922274e-5,-3.6802591959901357e-9,-3.556941971200325e-4,-4.059099060777297e-5,-3.688733399766354e-9,-3.554403466676326e-4,-4.055530827745248e-5,-3.6868596918516015e-9,-3.552231502274103e-4,-4.047630480756108e-5,-3.6767210257453985e-9,-3.550558309426621e-4,-4.0372330118324426e-5,-3.6615103358701634e-9,-3.549450842029947e-4,-4.0266541812810685e-5,-3.6452166207126978e-9,-3.5488926874896996e-4,-4.018488717008979e-5,-3.6323023478007748e-9,-3.5487679855453013e-4,-4.0152863925988295e-5,-3.6272565039705226e-9,-3.5488564634128154e-4,-4.019082120417089e-5,-3.6339063053833576e-9,-3.548851821818268e-4,-4.030831790087331e-5,-3.6544836887830023e-9,-3.548412788564619e-4,-4.049915486044093e-5,-3.6886696467672877e-9,-3.547243771613122e-4,-4.073952000048624e-5,-3.733057102710848e-9,-3.5451840841679887e-4,-4.0991294984085655e-5,-3.781467494098887e-9,-3.5422725173712733e-4,-4.121070540757682e-5,-3.826258266543762e-9,-3.538757710829669e-4,-4.136004087638724e-5,-3.8603033376723175e-9,-3.53504443877645e-4,-4.1418554823238366e-5,-3.879000807542093e-9,-3.5315908496719346e-4,-4.1388813578662445e-5,-3.881636157749867e-9,-3.528788443462086e-4,-4.1296476166252965e-5,-3.871679975513234e-9,-3.5268596813342254e-4,-4.118364620333568e-5,-3.855939529728651e-9,-3.525801622010045e-4,-4.109766926615156e-5,-3.84277572321506e-9,-3.5253922633776333e-4,-4.107846753507557e-5,-3.839853266345332e-9,-3.5252589900936437e-4,-4.1148172477191464e-5,-3.852089139473279e-9,-3.5249873593641004e-4,-4.130635182893659e-5,-3.880468677924388e-9,-3.524232758040045e-4,-4.153215835850133e-5,-3.922098707575269e-9,-3.5227977421103506e-4,-4.179200475176239e-5,-3.971370515911904e-9,-3.5206553777650213e-4,-4.2049383308559924e-5,-4.02168889154195e-9,-3.517923456022032e-4,-4.22732706596802e-5,-4.067108127961648e-9,-3.5148116482799436e-4,-4.2443054420599876e-5,-4.103423630040207e-9,-3.5115656427665365e-4,-4.254990072284108e-5,-4.128602719456839e-9,-3.508422977149487e-4,-4.259571927212223e-5,-4.1426852963775e-9,-3.505584283820493e-4,-4.2591075740938084e-5,-4.1473814440995675e-9,-3.503196597354921e-4,-4.2553010117369735e-5,-4.145588069811775e-9,-3.5013425081355416e-4,-4.250315194947812e-5,-4.140977734111264e-9,-3.5000296732766683e-4,-4.246594915992028e-5,-4.1376949637137355e-9,-3.4991789475969336e-4,-4.2466442610266224e-5,-4.140069290235601e-9,-3.4986146693382345e-4,-4.252696515740907e-5,-4.152177172551735e-9,-3.498066307483597e-4,-4.266243723623054e-5,-4.177099698568324e-9,-3.497195305195477e-4,-4.287472041112924e-5,-4.215884841538455e-9,-3.495659175480646e-4,-4.31478811621325e-5,-4.266536865943841e-9,-3.4932096349046604e-4,-4.3447520413318964e-5,-4.323660910585198e-9,-3.4897946134101256e-4,-4.372699512012349e-5,-4.379354851830018e-9,-3.4856132871286715e-4,-4.394038767390347e-5,-4.425380590164783e-9,-3.481082489458901e-4,-4.4057719624662955e-5,-4.455829749739181e-9,-3.4767160295073125e-4,-4.407548988414973e-5,-4.469069235668393e-9,-3.4729671592580966e-4,-4.401761276765464e-5,-4.468122927844235e-9,-3.470101043459885e-4,-4.392694681445468e-5,-4.459514042827404e-9,-3.4681399513372885e-4,-4.3851866775344917e-5,-4.4512484058967996e-9,-3.466884675872167e-4,-4.383320048423082e-5,-4.450711814114548e-9,-3.465989335162038e-4,-4.3895141685846634e-5,-4.463003731704032e-9,-3.4650592936654275e-4,-4.404155435899953e-5,-4.4899789588464385e-9,-3.4637451628011674e-4,-4.425746261242522e-5,-4.53010146035591e-9,-3.46181278482088e-4,-4.451449326164072e-5,-4.579071229769213e-9,-3.459177599712526e-4,-4.477844122387709e-5,-4.631023039653653e-9,-3.4559013570456575e-4,-4.501691233562397e-5,-4.679952084717743e-9,-3.452158716119919e-4,-4.520525913805162e-5,-4.720973867124305e-9,-3.4481879495999203e-4,-4.532981541959789e-5,-4.7511223937350465e-9,-3.4442408015957925e-4,-4.538843813449534e-5,-4.769589480143558e-9,-3.440542089166945e-4,-4.5389084894805184e-5,-4.7774936884748956e-9,-3.437263070319252e-4,-4.534740102436488e-5,-4.77738576894948e-9,-3.4345067735983324e-4,-4.5284143124787143e-5,-4.772713716467364e-9,-3.4323003778487113e-4,-4.5222842054429787e-5,-4.76739691027074e-9,-3.4305901194424496e-4,-4.518761784714889e-5,-4.765524511352927e-9,-3.429236989818069e-4,-4.52007347246193e-5,-4.771068404277782e-9,-3.428015696217947e-4,-4.5279382227483e-5,-4.787430575127021e-9,-3.426625060919474e-4,-4.543136538951815e-5,-4.8166784633623644E-09,-3.424723163020663e-4,-4.565015092623224e-5,-4.858517932523486e-9,-3.4219991287895055e-4,-4.591113849483137e-5,-4.9093917591879784e-9,-3.418278103507178e-4,-4.6172490727433865e-5,-4.962406765475092e-9,-3.413624942079579e-4,-4.6383736833411844e-5,-5.008742784565768e-9,-3.408383536332906e-4,-4.650185695871724e-5,-5.040476506469633e-9,-3.4030994982600497e-4,-4.650853684917004e-5,-5.053640312983224e-9,-3.398339484712107e-4,-4.641889431496161e-5,-5.0498114969366615e-9,-3.394494690556336e-4,-4.627597601679743e-5,-5.03533340901495e-9,-3.3916682212753793e-4,-4.6134299214963423e-5,-5.018789578479401e-9,-3.389684970747851e-4,-4.60416761329767e-5,-5.0082068715226695e-9,-3.388189563580666e-4,-4.602714616208865e-5,-5.009119290870518e-9,-3.386770001401216e-4,-4.609734320211425e-5,-5.023773996416256e-9,-3.385060967047203e-4,-4.623938128036451e-5,-5.051224680335727e-9,-3.382808819877009e-4,-4.642712042057251e-5,-5.0879722483668916e-9,-3.3798991630609986e-4,-4.662831095629719e-5,-5.128915587919849e-9,-3.3763548039858775e-4,-4.6811176467318076e-5,-5.16845422831316e-9,-3.3723121913479214e-4,-4.694969103565298e-5,-5.201576989894772e-9,-3.367983998553216e-4,-4.7027084779648636e-5,-5.224733145745607e-9,-3.3636159656376993e-4,-4.703738149569362e-5,-5.236319126134027e-9,-3.359445418555763e-4,-4.698513068870385e-5,-5.236724866703748e-9,-3.3556670577894265e-4,-4.688372871358966e-5,-5.228009274195705e-9,-3.3524095168534554e-4,-4.675286146676685e-5,-5.213367901026198e-9,-3.3497229454820115e-4,-4.661567260074138e-5,-5.196589566113095e-9,-3.3475746495397114e-4,-4.6496053972731513e-5,-5.181629379466889e-9,-3.3458496403935856e-4,-4.6416067332450106e-5,-5.172290074158099e-9,-3.3443550989848553e-4,-4.639329367171046e-5,-5.171902756508261e-9,-3.3428303229029717e-4,-4.64378573046309e-5,-5.182859497219969e-9,-3.3409679136510515e-4,-4.654895942300463e-5,-5.205901867299847e-9,-3.3384565314112754e-4,-4.671137333713532e-5,-5.2392644177281354e-9,-3.3350538321036714e-4,-4.689360879171389e-5,-5.278078891925973e-9,-3.330683964243518e-4,-4.705068211910057e-5,-5.314688239576653e-9,-3.3255256023083976e-4,-4.713428191609814e-5,-5.340419822664278e-9,-3.320027438393118e-4,-4.71097541805525e-5,-5.3486420687704235e-9,-3.314797357602177e-4,-4.6972927801329136e-5,-5.337761831657595e-9,-3.3103860655846234e-4,-4.67558263411006e-5,-5.312260680512601e-9,-3.307076685003807e-4,-4.651535747158061e-5,-5.28090259224886e-9,-3.30480214378984e-4,-4.6310845214460665e-5,-5.2532057684234896e-9,-3.303220348953695e-4,-4.618357322333606e-5,-5.236272390095169e-9,-3.301874844254908e-4,-4.61477186883596e-5,-5.233313814606197e-9,-3.3003452239918076e-4,-4.619282888887948e-5,-5.243799607308075e-9,-3.2983367667361197e-4,-4.6292393090905275e-5,-5.264447531098321e-9,-3.2957087722242947e-4,-4.6413211027825386e-5,-5.2904004316313725e-9,-3.2924630863698787e-4,-4.652281087401979e-5,-5.316302669134748e-9,-3.288714144932077e-4,-4.659436358753661e-5,-5.337217434375077e-9,-3.284653025069503e-4,-4.6609576179093505e-5,-5.349376028202255e-9,-3.2805103471112654e-4,-4.656006986482792e-5,-5.35069069746132e-9,-3.2765205016821133e-4,-4.6447489372098676E-05,-5.340948027169847e-9,-3.2728894386480116e-4,-4.628254233746377e-5,-5.321669265696422e-9,-3.2697676918230653e-4,-4.608314579988514e-5,-5.295709141439522e-9,-3.2672307735294367e-4,-4.5871826451843845e-5,-5.266715731905392e-9,-3.265269163253492e-4,-4.567268490866273e-5,-5.238595811180517e-9,-3.263787833299249e-4,-4.5508326939279494e-5,-5.2150856928611045e-9,-3.262613612892449e-4,-4.5396953226487785e-5,-5.199410066665686e-9,-3.26150973687626e-4,-4.5349627530952965e-5,-5.193932690177878e-9,-3.2601983786595027e-4,-4.5367769831319596e-5,-5.1997081785981995e-9,-3.2583937029624085e-4,-4.544098475670977e-5,-5.215918457321146e-9,-3.2558503734766617e-4,-4.554569690961154e-5,-5.2393381578890325e-9,-3.252430307869566e-4,-4.5645933134909383e-5,-5.264196058241929e-9,-3.248178384294444e-4,-4.56983335628188e-5,-5.282923877448141e-9,-3.2433764411315686e-4,-4.566298738150629e-5,-5.288101154267343e-9,-3.238524934028116e-4,-4.55187894312056e-5,-5.275271384380036e-9,-3.2342122598822694e-4,-4.527677794176033e-5,-5.245365700942163e-9,-3.230898582700321e-4,-4.498163827286755e-5,-5.205044425823437e-9,-3.228725935037573e-4,-4.469651453348592e-5,-5.164266989512154e-9,-3.2274750094473347e-4,-4.4478159074842894e-5,-5.13235180184745e-9,-3.226689152698676e-4,-4.435700005748701e-5,-5.114830829337623e-9,-3.225871774071815e-4,-4.433186738587753e-5,-5.112508862693316e-9,-3.2246425807672813e-4,-4.437776497525427e-5,-5.1224162241922625e-9,-3.2228031504722966e-4,-4.445858657848031e-5,-5.139485592758135e-9,-3.2203286741891803e-4,-4.4538062588412724E-05,-5.1580709737048375e-9,-3.217324318411406e-4,-4.4586481028774453E-05,-5.173027330322962e-9,-3.213975733128406e-4,-4.458364652752997e-5,-5.180397855754135e-9,-3.210507152123642e-4,-4.451955192695055e-5,-5.177821168001773e-9,-3.20714821071863e-4,-4.43939735421001e-5,-5.164703758157465e-9,-3.2041064399458284e-4,-4.421548906702248e-5,-5.1421458139077516e-9,-3.2015437220027257e-4,-4.400000934734236e-5,-5.112638550353013e-9,-3.199556359923085e-4,-4.3768795235697604e-5,-5.079609309330488e-9,-3.1981598750983545e-4,-4.354585021416585e-5,-5.046904699548832e-9,-3.197281840014739e-4,-4.3354726543107915e-5,-5.018289250760496e-9,-3.196765829420705e-4,-4.321510531744181e-5,-4.997015044656991e-9,-3.1963870183165634e-4,-4.313959806056474e-5,-4.985452141399794e-9,-3.195878597550035e-4,-4.313112514042971e-5,-4.984725308729074e-9,-3.1949679113388595e-4,-4.318123126172128e-5,-4.994338339842217e-9,-3.1934206103072054e-4,-4.326970683766678e-5,-5.0118522340722995e-9,-3.191090769027233e-4,-4.336592775766331e-5,-5.032784985900198e-9,-3.1879727330728615e-4,-4.3432619842126424e-5,-5.0510003085641095e-9,-3.184242585414621e-4,-4.3432905625344e-5,-5.059844813029959e-9,-3.180265341602522e-4,-4.3340679734383175e-5,-5.054050804727019e-9,-3.1765375634226675e-4,-4.315212077889462e-5,-5.031931810784182e-9,-3.173550483018549e-4,-4.289299386726835e-5,-4.996837554368338e-9,-3.1716080997909414e-4,-4.261505262909454e-5,-4.9567039021442e-9,-3.170692069796597e-4,-4.237923706416617e-5,-4.921374850462595e-9,-3.170465026363197e-4,-4.223264659485568e-5,-4.898891858407981e-9,-3.170418960140496e-4,-4.21921256965402e-5,-4.892790866082162e-9,-3.1700761388347835e-4,-4.224278875220216e-5,-4.901672313350512e-9,-3.169131831034806e-4,-4.234911923149743e-5,-4.920678900423363e-9,-3.16749371627084e-4,-4.246978287171236e-5,-4.943593716023741e-9,-3.165243898644444e-4,-4.2568904032282556e-5,-4.964541739482594e-9,-3.1625720934575716e-4,-4.262161789567898e-5,-4.9789925323940574e-9,-3.159714090148497e-4,-4.2615163483100204e-5,-4.984192983307216e-9,-3.1569080936814757e-4,-4.254769010175503e-5,-4.979239205595006e-9,-3.154366980394452e-4,-4.242640923152246e-5,-4.964927408765917e-9,-3.1522594108550356e-4,-4.226576420878259e-5,-4.9434488536958256e-9,-3.150694594909588e-4,-4.2085617046374826e-5,-4.9179780034059015e-9,-3.1497088780468846e-4,-4.190919872197873e-5,-4.892216555795521e-9,-3.1492551795328115e-4,-4.1760510317359374e-5,-4.869937621819285e-9,-3.1491993926755705e-4,-4.166103135750512e-5,-4.85453930904946e-9,-3.1493292291119807e-4,-4.162602317937051e-5,-4.8486082924002386e-9,-3.149378852148921e-4,-4.166109759027768e-5,-4.853496717228234e-9,-3.149068763252208e-4,-4.1759869297922245e-5,-4.8689420569251265e-9,-3.1481563886056355e-4,-4.1903492821241635e-5,-4.892817724760096e-9,-3.146489018901334e-4,-4.206263788736928e-5,-4.921152563389806e-9,-3.1440486675449474e-4,-4.220199291018188e-5,-4.948556753677259e-9,-3.1409782736031844e-4,-4.2286972882281444e-5,-4.969141215356648e-9,-3.1375783301927705e-4,-4.229193221838251e-5,-4.9779020409811375e-9,-3.1342629281164673e-4,-4.2208473219180394e-5,-4.972322659694826e-9,-3.131469410284784e-4,-4.205134100763301e-5,-4.953675901336095e-9,-3.129532228356514e-4,-4.185850783786602e-5,-4.927339367737182e-9,-3.128559402293983e-4,-4.168268583803075e-5,-4.901590331357037e-9,-3.128372712174129e-4,-4.157504774094596e-5,-4.884996661975068e-9,-3.1285591758021213e-4,-4.1567376446027606e-5,-4.883435028626847e-9,-3.1286216261514294e-4,-4.166161325502891e-5,-4.898203035129861e-9,-3.128152510161355e-4,-4.1832011412133305e-5,-4.926093299613993e-9,-3.1269456478840265e-4,-4.2037319835952676e-5,-4.96108661782143e-9,-3.1250114325379443e-4,-4.2235381879465134e-5,-4.996540702951394e-9,-3.1225205877241923e-4,-4.239361488219513e-5,-5.026892948270938e-9,-3.119724750885652e-4,-4.249330688871886e-5,-5.048533140222312e-9,-3.116889276893549e-4,-4.252921835778996e-5,-5.059987008882629e-9,-3.1142503078342897e-4,-4.25069961860904e-5,-5.0616921955618265e-9,-3.111992283429283e-4,-4.244023805497469e-5,-5.055583300773006e-9,-3.1102368764590496e-4,-4.234797844643438e-5,-5.044617784933671e-9,-3.1090358734081304e-4,-4.22526006575234e-5,-5.032321067688745e-9,-3.108364399804756e-4,-4.217778740604939e-5,-5.022387283844178e-9,-3.108115257297438e-4,-4.214600986581236e-5,-5.018313830814128e-9,-3.1080993296466673e-4,-4.2175257475328325e-5,-5.023008475613783e-9,-3.1080593916080375e-4,-4.227521362395652e-5,-5.038322479284464e-9,-3.1077034837130563e-4,-4.244369565068855e-5,-5.06453984568056e-9,-3.1067585579162317e-4,-4.266468404943358e-5,-5.099969884051941e-9,-3.105035849258535e-4,-4.290936505875487e-5,-5.140877929168914e-9,-3.1024899896644803e-4,-4.314094465863473e-5,-5.181956628701638e-9,-3.0992505626402714e-4,-4.332264950955875e-5,-5.217361941575282e-9,-3.095610883380589e-4,-4.342700451466909e-5,-5.2421145403966415e-9,-3.091971222357173e-4,-4.3443817524911114e-5,-5.253502474396329e-9,-3.088746927985775e-4,-4.338445254519018e-5,-5.252067765269822e-9,-3.086262289687441e-4,-4.328075377912741e-5,-5.241813665026146e-9,-3.084657459880443e-4,-4.317815751980895e-5,-5.229427402694319e-9,-3.083838136062314e-4,-4.312402180818095e-5,-5.222569664693657e-9,-3.083492587428513e-4,-4.315408297432371e-5,-5.227650075739371e-9,-3.083181203766566e-4,-4.328165458806027e-5,-5.247856867561176e-9,-3.082471429138195e-4,-4.349411061585933e-5,-5.2822613795529054e-9,-3.081064848257633e-4,-4.375827146070421e-5,-5.3263709887758225e-9,-3.0788661043989416e-4,-4.403198008161343e-5,-5.373792020884821e-9,-3.0759759139367557e-4,-4.4276497491867025e-5,-5.418190385136207e-9,-3.072628362842785e-4,-4.4465056129220834e-5,-5.454790327401472e-9,-3.0691106900856074e-4,-4.458588788817899e-5,-5.481074258715986e-9,-3.0656967318466223e-4,-4.4640878311394534e-5,-5.496772186340735e-9,-3.0626062010192915e-4,-4.464213768265969e-5,-5.5034243148592386e-9,-3.0599865177202766e-4,-4.460833959835805e-5,-5.503787246380918e-9,-3.057908013060658e-4,-4.4561687503291136e-5,-5.501265100167681e-9,-3.0563641143263365e-4,-4.4525580714277986e-5,-5.4994619326435316e-9,-3.0552715792361276e-4,-4.4522582031122806e-5,-5.501861033144501e-9,-3.0544706109613843e-4,-4.457210286773981e-5,-5.511548919490009e-9,-0.00030537297561927964,-4.4687381552856436e-5,-5.5308628299553145e-9]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json new file mode 100644 index 00000000..2eec9421 --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":8000,"numberOfSamples":1000,"samples":[-3.0527640252829807e-4,-4.487182696660493e-5,-5.56088448082571e-9,-3.051274863200565e-4,-4.511556230951057e-5,-5.6008437940501195e-9,-3.049014822200931e-4,-4.5393887171247894e-5,-5.647698563779582e-9,-3.045865825423837e-4,-4.566978863347711e-5,-5.696284894052496e-9,-3.041902526794886e-4,-4.590165294193654e-5,-5.7403050551512475e-9,-3.0374053440293064e-4,-4.605480630272924e-5,-5.774008768966934e-9,-3.032803042778928e-4,-4.6112832816305496e-5,-5.793973590280497e-9,-3.028557483245855e-4,-4.608383761616052e-5,-5.800251345674449e-9,-3.025032355259023e-4,-4.599882516164128e-5,-5.796427523208801e-9,-3.022393949447573e-4,-4.5902896545994185e-5,-5.788631331365615e-9,-3.020574267495867e-4,-4.5842714571687194e-5,-5.7838921806700334e-9,-3.019300694661608e-4,-4.585434504667538e-5,-5.7883384069394884e-9,-3.0181769376023336e-4,-4.595468543172006e-5,-5.805682519418446e-9,-3.0167899235319e-4,-4.613834629665025e-5,-5.83635658405951e-9,-3.014813398322303e-4,-4.638044052124705e-5,-5.877534282545917e-9,-3.0120806044062887e-4,-4.664417952898078e-5,-5.924029708374941e-9,-3.008608032921932e-4,-4.689076983299546e-5,-5.969769115749644e-9,-3.004568895018775e-4,-4.70885065576558e-5,-6.009334760264992e-9,-3.000232042040917e-4,-4.7218579979817117e-5,-6.039104695872155e-9,-2.995891071912802e-4,-4.72766796425179e-5,-6.057736521969508e-9,-2.9918053358217385e-4,-4.7271135672653113e-5,-6.066024169441235e-9,-2.9881634126882297e-4,-4.721922325858296e-5,-6.066350982343671e-9,-2.9850682571005375e-4,-4.714317647578276e-5,-6.0620073426491385e-9,-2.982536857147729e-4,-4.706682514849363e-5,-6.056588919504954e-9,-2.9805063249734796e-4,-4.7013055973122464e-5,-6.053577596287479e-9,-2.978841024009395e-4,-4.700177778028711e-5,-6.0560846647952315e-9,-2.97733963612634e-4,-4.7047861809806975e-5,-6.066639640409404e-9,-2.975745746966664e-4,-4.715862391952254e-5,-6.086875521052076e-9,-2.9737697702912646e-4,-4.733079302488828e-5,-6.117026762619431e-9,-2.9711318240313096e-4,-4.754766231303244e-5,-6.1553289826818086e-9,-2.967630328757633e-4,-4.777820603997843e-5,-6.1976547684464505e-9,-2.963225516133362e-4,-4.7980702799556336e-5,-6.237878353608434e-9,-2.9581034269964766e-4,-4.8112531767448336e-5,-6.26929277722192e-9,-2.952671701271256e-4,-4.8144449769795835e-5,-6.286810452998715e-9,-2.9474584957997816e-4,-4.807330163392616e-5,-6.28897999422168e-9,-2.942942146728656e-4,-4.7925741507049555e-5,-6.278697823265868e-9,-2.939390776646052e-4,-4.774982986598883e-5,-6.2621933111198565e-9,-2.9367888471910724e-4,-4.759858957460034e-5,-6.246887112949443e-9,-2.9348722961036977e-4,-4.751366495959348e-5,-6.239195834786848e-9,-2.933236015115482e-4,-4.7515401306169104e-5,-6.243051945843658e-9,-2.9314581436119905e-4,-4.760093779409941e-5,-6.2593279168203955e-9,-2.9292007500896937e-4,-4.774844549298213e-5,-6.286013467788338e-9,-2.926269983387905e-4,-4.792463505513392e-5,-6.318926256564662e-9,-2.9226350769051096e-4,-4.80930810595307e-5,-6.352759512595941e-9,-2.918412941194005e-4,-4.822168516898902e-5,-6.382264012712696e-9,-2.9138274761924426e-4,-4.8288192173938596e-5,-6.4033284884177525e-9,-2.9091546827443674e-4,-4.828307144331461e-5,-6.4137142155758484e-9,-2.904666459630382e-4,-4.820960531850297e-5,-6.413290100567614e-9,-2.9005845372039675e-4,-4.808169188193544e-5,-6.403779607548024e-9,-2.897051121066428e-4,-4.7920298339887756e-5,-6.388175539851937e-9,-2.894117280467004e-4,-4.77495594070045e-5,-6.3700487926475646e-9,-2.891745460224369e-4,-4.7593309240161246e-5,-6.352958916462981e-9,-2.889819981834109e-4,-4.7472392700331755e-5,-6.340071065896678e-9,-2.8881605249833365e-4,-4.740260960082055e-5,-6.333942633116508e-9,-2.886536932128631e-4,-4.739292957383811e-5,-6.336355114475078e-9,-2.884687014832789e-4,-4.7443667570689896e-5,-6.348050662755428e-9,-2.8823427250380447e-4,-4.754452904089668e-5,-6.368308311532382e-9,-2.879272735231633e-4,-4.767303651414079e-5,-6.394467888137689e-9,-2.875345818250315e-4,-4.7794856179294424e-5,-6.4217381728864196e-9,-2.8706055734247936e-4,-4.786832012302628e-5,-6.443756519509059e-9,-2.865324198422822e-4,-4.785486234755549e-5,-6.4542037210419195e-9,-2.859983895327293e-4,-4.773390713864742e-5,-6.449179015088165e-9,-2.8551497623516194e-4,-4.7515537099475336e-5,-6.429222290163076e-9,-2.8512656698742036e-4,-4.724172825041583e-5,-6.399602792241161e-9,-2.8484791237568235e-4,-4.697228518879425e-5,-6.368414825098121e-9,-2.846599731981497e-4,-4.676227057336778e-5,-6.343524830079535e-9,-2.845204990113826e-4,-4.664360730421715e-5,-6.330077698450703e-9,-2.8438137789211793e-4,-4.661903031892221e-5,-6.32954910609419e-9,-2.842033332610527e-4,-4.666740117899054e-5,-6.340163616828402e-9,-2.8396352830062366e-4,-4.6754274987887116e-5,-6.357961127061933e-9,-2.836566692220362e-4,-4.684229725179311e-5,-6.377959739889069e-9,-2.8329216427076527e-4,-4.689886773239183e-5,-6.395189096969708e-9,-2.828896488527907e-4,-4.6900720390375284e-5,-6.405540596281919e-9,-2.824742018907562e-4,-4.6836037546351875e-5,-6.4064023526000905e-9,-2.8207178859335354e-4,-4.670471097933904e-5,-6.397002591025266e-9,-2.817052464373959e-4,-4.6517083949337426e-5,-6.378389721142845e-9,-2.8139115347079264e-4,-4.629149712487325e-5,-6.3530658178796655e-9,-2.811378256204399e-4,-4.605106192105769e-5,-6.324396845660935e-9,-2.8094456582733565e-4,-4.582011369839805e-5,-6.295969795469077e-9,-2.8080213121061873e-4,-4.562084808863251e-5,-6.271061910825657e-9,-2.806941282722342e-4,-4.547056083835451e-5,-6.252305778500468e-9,-2.805989529923734e-4,-4.537959014034061e-5,-6.241511789741509e-9,-2.80492067241958e-4,-4.5349843601162954e-5,-6.239532828776588e-9,-2.803485913613245e-4,-4.5373805665704785e-5,-6.246068068716576e-9,-2.8014639891832464e-4,-4.543399639996473e-5,-6.259380228216586e-9,-2.7987013346108646e-4,-4.550321157816095e-5,-6.276047783203556e-9,-2.795162996405821e-4,-4.5546626057891795e-5,-6.291045688354151e-9,-2.790984739623287e-4,-4.5527321372703615e-5,-6.298505516465384e-9,-2.7865004000894166e-4,-4.541620148794469e-5,-6.2933199008508685e-9,-2.7822043288384707e-4,-4.520484869900707e-5,-6.273276588202333e-9,-2.7786184532760936e-4,-4.4915535087074116e-5,-6.240723143326448e-9,-2.776091852793529e-4,-4.459975553570474e-5,-6.202458787212566e-9,-2.774638632702066e-4,-4.432123225548417e-5,-6.167368360824802e-9,-2.7739275622409024e-4,-4.41307893297388e-5,-6.142942429461774e-9,-2.7734363791847937e-4,-4.404793703195258e-5,-6.132712569902154e-9,-2.772666481119829e-4,-4.405873879426259e-5,-6.135803693451539e-9,-2.7712954630060494e-4,-4.41272344392883e-5,-6.148198003690473e-9,-2.769220926915838e-4,-4.421078330515423e-5,-6.164515668643785e-9,-2.7665243775120893e-4,-4.4271847046803456e-5,-6.179465722684056e-9,-2.7634044414996943e-4,-4.42840858576599e-5,-6.188763867311319e-9,-2.760112787880964e-4,-4.4233969441495255e-5,-6.1896325079837635e-9,-2.7569053678467995e-4,-4.4119908832911274e-5,-6.1810143630256235e-9,-2.7540081443001705e-4,-4.395037973603709e-5,-6.1635500652351195e-9,-2.7515925763830574e-4,-4.374163186724933e-5,-6.13931893200916e-9,-2.7497583229343773e-4,-4.351509382685275e-5,-6.1113765985356755e-9,-2.7485228599034487e-4,-4.3294504323835476e-5,-6.083191373407955e-9,-2.747818899337699e-4,-4.3102814240736015e-5,-6.0580978536060394e-9,-2.7475014030275356e-4,-4.2959058861573174e-5,-6.038863549547172e-9,-2.747364727847155e-4,-4.287561578709453e-5,-6.027414092691353e-9,-2.7471679197166814e-4,-4.2856211898555225e-5,-6.024680664675889e-9,-2.74666552518033e-4,-4.2894856634732136e-5,-6.0304870842090665e-9,-2.745641634544586e-4,-4.297583426922976e-5,-6.043429961128174e-9,-2.7439449831047824e-4,-4.307484329777695e-5,-6.060781782144661e-9,-2.7415239183585174e-4,-4.316139154284506e-5,-6.078538519547611e-9,-2.738458939963984e-4,-4.320289628151456e-5,-6.0918223659286445e-9,-2.7349833665268886e-4,-4.317111271140737e-5,-6.095829254040278e-9,-2.731473286401864e-4,-4.305077016877184e-5,-6.087300751131777e-9,-2.728384066406977e-4,-4.284850797286421e-5,-6.0661306830069746e-9,-2.726122464122091e-4,-4.2597682445614436e-5,-6.036317211131248e-9,-2.724883882208636e-4,-4.2353186226421395e-5,-6.005346149629137e-9,-2.724538993112942e-4,-4.21739660621937e-5,-5.981721324392774e-9,-2.7246601864680027e-4,-4.209994110375406e-5,-5.971667694606237e-9,-2.724694960632973e-4,-4.2136627145050584e-5,-5.976871636177898e-9,-2.724184831524113e-4,-4.225643997788255e-5,-5.9944559253544774e-9,-2.7229051896981396e-4,-4.241362759713718e-5,-6.018773549341146e-9,-2.720878961454436e-4,-4.2562043557314734e-5,-6.043635716054438e-9,-2.718303929497391e-4,-4.266714123706157e-5,-6.063913242192316e-9,-2.715458512132313e-4,-4.271024379125761e-5,-6.076285881259704e-9,-2.712626659453091e-4,-4.268748746246162e-5,-6.07938776767281e-9,-2.710052329722968e-4,-4.260653559518088e-5,-6.073631332430156e-9,-2.707916949070718e-4,-4.248307887576607e-5,-6.060863861100873e-9,-2.7063291676093104e-4,-4.233782096456377e-5,-6.043919283576518e-9,-2.70531999054325e-4,-4.2193858972839276e-5,-6.026112658845783e-9,-2.7048412159524855e-4,-4.207417276834723e-5,-6.010749252660998e-9,-2.704768085276078e-4,-4.199898085891688e-5,-6.0007083249929064e-9,-2.7049091718653486e-4,-4.198292846456885e-5,-5.998122765150181e-9,-2.705026716692996e-4,-4.203245930769175e-5,-6.0041500657964715e-9,-2.704867786001442e-4,-4.2143960157053555e-5,-6.018813110137525e-9,-2.7042033326989443e-4,-4.2303217237346e-5,-6.0408918160634616e-9,-2.702869966792254e-4,-4.248659500899885e-5,-6.067897441023674e-9,-2.7008072908028737e-4,-4.26641123975258e-5,-6.096212887106141e-9,-2.698083301299173e-4,-4.2804202514864496e-5,-6.121495193355481e-9,-2.6949017078992116e-4,-4.287971029548579e-5,-6.139410707238995e-9,-2.6915846953213103e-4,-4.287457712691834e-5,-6.146692366322419e-9,-2.688523188530164e-4,-4.2790136468926805e-5,-6.142330933965789e-9,-2.6860905054935876e-4,-4.2648942394378234e-5,-6.128480097984698e-9,-2.684529386021688e-4,-4.249325511328419e-5,-6.110525799006696e-9,-2.683846561272461e-4,-4.237577162193681e-5,-6.0958916495610374e-9,-2.6837713845480256e-4,-4.2343242447415576e-5,-6.091676533973367e-9,-2.6838259865424467e-4,-4.241897119821026e-5,-6.1020278393601044e-9,-2.6834954243159544e-4,-4.259356052706968e-5,-6.126618946744287e-9,-2.682414538672124e-4,-4.282968580925502e-5,-6.161071746178656e-9,-2.680473788683876e-4,-4.307777590451198e-5,-6.198928228542621e-9,-2.6778068952418554e-4,-4.329323584064263e-5,-6.233932842908828e-9,-2.6746984498891765e-4,-4.3447294758245534e-5,-6.261585257801009e-9,-2.6714767994234935e-4,-4.3529579126087075e-5,-6.279696539448954e-9,-2.6684354540698494e-4,-4.3545106782298875e-5,-6.288235271926127e-9,-2.6657927046700944e-4,-4.3509317188260445e-5,-6.288838671033637e-9,-2.6636794026195363e-4,-4.3443465401146905e-5,-6.284232359286678e-9,-2.662140688653375e-4,-4.33711394559145e-5,-6.277670357631493e-9,-2.661141777281877e-4,-4.331570058397092e-5,-6.272450417208355e-9,-2.660574130223562e-4,-4.329813146063895e-5,-6.271533343649169e-9,-2.6602631028516745e-4,-4.3334832510506525e-5,-6.277259574999488e-9,-2.6599810856047266e-4,-4.3435186752350394e-5,-6.291119283070944e-9,-2.6594709819864e-4,-4.35991710667151e-5,-6.313534449691571e-9,-2.6584826187483416e-4,-4.3815728146144786e-5,-6.3436577175095264e-9,-2.6568197080015167e-4,-4.406282185693006e-5,-6.379260979809167e-9,-2.654388737832523e-4,-4.4309976961368614e-5,-6.416844899921613e-9,-2.651235904796523e-4,-4.452352360454744e-5,-6.45208973946681e-9,-2.6475574490715504e-4,-4.467379291793127e-5,-6.480660100582804e-9,-2.643674413816663e-4,-4.474263772198858e-5,-6.499235785255884e-9,-2.639972203386808e-4,-4.472932230357101e-5,-6.506524425656316e-9,-2.636814333534693e-4,-4.4652981742684745e-5,-6.50394943475184e-9,-2.6344474410546685e-4,-4.455031096217054e-5,-6.4957052750673075e-9,-2.6329215242018296e-4,-4.446797824163044e-5,-6.487971527226249e-9,-2.6320539661309406e-4,-4.445066132419316e-5,-6.487318143828218e-9,-2.63146231141766e-4,-4.452761326611089e-5,-6.498693327228091e-9,-2.630670795117471e-4,-4.4702593314460794e-5,-6.523735117410233e-9,-2.629259962418986e-4,-4.495205403355389e-5,-6.560195481816707e-9,-2.626998326199566e-4,-4.523322969000845e-5,-6.6028055138425835e-9,-2.6238984542081514e-4,-4.5498615964264204e-5,-6.645151128486782e-9,-2.620181139265042e-4,-4.57101034480172e-5,-6.681643636040315e-9,-2.6161796896905014e-4,-4.584720776675456e-5,-6.7088001834994565e-9,-2.6122365300701173e-4,-4.590801043953323e-5,-6.725594759670876e-9,-2.608629732320002e-4,-4.590508421570969e-5,-6.733110680725014e-9,-2.605538971319134e-4,-4.585973386898697e-5,-6.733869753505527e-9,-2.6030410219870376e-4,-4.5796853823059685e-5,-6.731122265893311e-9,-2.601120119629486e-4,-4.574121346938611e-5,-6.728248726724007e-9,-2.5996821459528486e-4,-4.571499884470834e-5,-6.728333811525041e-9,-2.5985675252670267e-4,-4.573601546615178e-5,-6.733900781581118e-9,-2.597563470776258e-4,-4.581593891770877e-5,-6.7467347208660815e-9,-2.596420276961034e-4,-4.5958327928148174e-5,-6.76770494879153e-9,-2.594877524327709e-4,-4.6156630892450285e-5,-6.796534200413236e-9,-2.5927042693107434e-4,-4.6392942692009576e-5,-6.8315565589601714e-9,-2.589751849875842e-4,-4.663871238482509e-5,-6.86962752289666e-9,-2.586008062635789e-4,-4.685864046342157e-5,-6.906416881867135e-9,-2.5816311466290005e-4,-4.7018104873896896e-5,-6.937219567577798e-9,-2.5769402554871504e-4,-4.70926588010539e-5,-6.9581636155644655e-9,-2.5723517884218273e-4,-4.707644773329669e-5,-6.967428938305518e-9,-2.568273908815006e-4,-4.6986025040791123e-5,-6.966001210496018e-9,-2.564992393431867e-4,-4.685748280218821e-5,-6.957630999254399e-9,-2.5625871902160277e-4,-4.6737400412949545e-5,-6.947966529409689e-9,-2.5609074998136574e-4,-4.667043573132832e-5,-6.943105351110571e-9,-2.5596122517727485e-4,-4.6687347367702306e-5,-6.947967062704738e-9,-2.5582634783583117e-4,-4.6796866950713174e-5,-6.964938644351132e-9,-2.5564461158371896e-4,-4.698373076282578e-5,-6.993209196686726e-9,-2.553879109156633e-4,-4.7213518226825917E-05,-7.029044733220987e-9,-2.5504832832596024e-4,-4.744277599023395e-5,-7.066933407213379e-9,-2.5463858429774843e-4,-4.7630969964505535e-5,-7.1011838454172516e-9,-2.541865650862485e-4,-4.775023325017012e-5,-7.127396703046114e-9,-2.537265402404863e-4,-4.7790107831489385e-5,-7.143345909601783e-9,-2.532904918374822e-4,-4.775683549761495e-5,-7.1491178104008635e-9,-2.529021042786563e-4,-4.766889086299671e-5,-7.146663004807935e-9,-2.525741732148423e-4,-4.7551249353078e-5,-7.139062192878236e-9,-2.5230871169483677e-4,-4.743029000875771e-5,-7.129782907503167e-9,-2.5209851175530824e-4,-4.733012368995658e-5,-7.12209759254885e-9,-2.519291245187472e-4,-4.7270279788107355e-5,-7.1187265860613594e-9,-2.517806968882801e-4,-4.726422556842384e-5,-7.12166746585097e-9,-2.5162963986732293e-4,-4.731809415808857e-5,-7.132097650423624e-9,-2.514505510713131e-4,-4.742927313984141e-5,-7.1502341423829864e-9,-2.512190030433243e-4,-4.758501628393123e-5,-7.175103678264232e-9,-2.5091568236328035e-4,-4.7761815907209246e-5,-7.204305121348925e-9,-2.5053181294401e-4,-4.7926849500478765e-5,-7.233991717484305e-9,-2.500746237911642e-4,-4.804301276238442e-5,-7.259360514494356e-9,-2.495701519604955e-4,-4.8078046570921506e-5,-7.275783141609628e-9,-2.490601882212913e-4,-4.8015746621047336e-5,-7.280321967292176e-9,-2.4859206990471175e-4,-4.786450499113676e-5,-7.272987851368456e-9,-2.4820404096295365e-4,-4.7657974491023386e-5,-7.2570490683069305e-9,-2.479123719305355e-4,-4.744593983612639e-5,-7.238137844085153e-9,-2.477062542180496e-4,-4.7278801363755583e-5,-7.2225323219480234e-9,-2.475523859045091e-4,-4.719243023421515e-5,-7.2153509223338515e-9,-2.4740634073176207e-4,-4.7199163254914456e-5,-7.21928276128765e-9,-2.472256149075255e-4,-4.728689651818537e-5,-7.234113502680999e-9,-2.469800996566623e-4,-4.742481447800407e-5,-7.2570090226968695e-9,-2.4665781472638505e-4,-4.757279635380423e-5,-7.283374548153914e-9,-2.462655369996502e-4,-4.769151536169288e-5,-7.308038135183422e-9,-2.458251322065457e-4,-4.775085456159175e-5,-7.326465854721028e-9,-2.4536711100036463e-4,-4.77350886691006e-5,-7.3357152755733405e-9,-2.4492329122390537e-4,-4.764420066221715e-5,-7.334911212083219e-9,-2.4452039783219196e-4,-4.749169496663902e-5,-7.3251748443696005e-9,-2.441758732145271e-4,-4.7300134577938174e-5,-7.309112821670338e-9,-2.4389627170717684e-4,-4.7095968591426874e-5,-7.2900891206745445e-9,-2.4367780651202367e-4,-4.6904922721911e-5,-7.2715143086660904e-9,-2.4350820404063506e-4,-4.674862028056588e-5,-7.2563236900772534e-9,-2.4336901910568495e-4,-4.6642494199979074e-5,-7.246701350541432e-9,-2.4323787902715116e-4,-4.6594604978692496e-5,-7.243991435989502e-9,-2.4309057272598025e-4,-4.6604855006113405e-5,-7.248666445835073e-9,-2.4290326713360635e-4,-4.666429753503088e-5,-7.260234391154556e-9,-2.4265533867043101e-4,-4.67546250155109e-5,-7.2770527231963495e-9,-2.4233328045250883e-4,-4.684845105661854e-5,-7.29615811529741e-9,-2.4193563237893614e-4,-4.6911622727816726e-5,-7.313363425619466e-9,-2.4147769061437337e-4,-4.690904210391057e-5,-7.323911274472526e-9,-2.409931846698145e-4,-4.68145030450435e-5,-7.3237831866979765e-9,-2.405293638181594e-4,-4.6622304985804496e-5,-7.311327256640174e-9,-2.4013397134164407e-4,-4.6354911420302454e-5,-7.288398575368516e-9,-2.3983792521253927e-4,-4.606009583001144e-5,-7.260171753226957e-9,-2.396424964711392e-4,-4.579591722183568e-5,-7.233460507133913e-9,-2.3951876787466002e-4,-4.561007369104896e-5,-7.21434469153871e-9,-2.394196251219914e-4,-4.552433842374012e-5,-7.206304347525716e-9,-2.3929702425245816e-4,-4.553082614515197e-5,-7.209572961363757e-9,-2.3911604156302504e-4,-4.559902693265397e-5,-7.221607636814043e-9,-2.3886148969033618e-4,-4.56878141259867e-5,-7.238141334743658e-9,-2.385376124584638e-4,-4.57569458542221e-5,-7.25434375948497e-9,-2.381635151221613e-4,-4.5775227331894453e-5,-7.265844606590987e-9,-2.3776689984276165e-4,-4.57248113055291e-5,-7.26951760352044e-9,-2.3737775512568452e-4,-4.560224089873021e-5,-7.26396202658587e-9,-2.3702288262502963e-4,-4.541701560695537e-5,-7.249620171308552e-9,-2.3672182048234104e-4,-4.518837706556744e-5,-7.228512886555455e-9,-2.3648451210419064e-4,-4.494110071809932e-5,-7.203679129923876e-9,-2.3631073766417756e-4,-4.470112417759971e-5,-7.1784915077864556e-9,-2.3619104748406788e-4,-4.449166637344944e-5,-7.156032804897266e-9,-2.361087730659606e-4,-4.433028327220373e-5,-7.138674148007875e-9,-2.3604256281260482e-4,-4.422705852302139e-5,-7.1278965459513375e-9,-2.3596896071219697e-4,-4.41837594790764e-5,-7.124282211477298e-9,-2.358648734407393e-4,-4.419359846967748e-5,-7.127541904743606e-9,-2.3571005457793368e-4,-4.424139308519803e-5,-7.136477505700135e-9,-2.3548986076137152e-4,-4.4304182265018096e-5,-7.148875985336727e-9,-2.3519855436410849e-4,-4.435271161882365e-5,-7.16145714276836e-9,-2.348430390860336e-4,-4.4354724701945077e-5,-7.170110582162483e-9,-2.3444587375598763e-4,-4.428117792866847e-5,-7.170657306550671e-9,-2.3404509111068765e-4,-4.411557127942225e-5,-7.1601656476032516e-9,-2.3368771973065835e-4,-4.386412570504797e-5,-7.138447255205115e-9,-2.334157329157928e-4,-4.356117057573164e-5,-7.108920211252188e-9,-2.3324859251575434e-4,-4.326304457334257e-5,-7.077986722810363e-9,-2.3317225159038513e-4,-4.3029164658112595e-5,-7.0528241170588876e-9,-2.3314325821755143e-4,-4.289880884221161e-5,-7.038651316312173e-9,-2.3310674475310233e-4,-4.287707539508815e-5,-7.037006731343113e-9,-2.330173793949718e-4,-4.2937138101060195e-5,-7.045793591462278e-9,-2.3285221519255721e-4,-4.303448249497462e-5,-7.060613085178226e-9,-2.3261221161084732e-4,-4.312326355963217e-5,-7.076380098752534e-9,-2.3231616237874106e-4,-4.3167782922615494e-5,-7.0885642907420745e-9,-2.3199226213489643e-4,-4.3147504709399666e-5,-7.093925360427784e-9,-2.3167066135599025e-4,-4.305722178644823e-5,-7.090854405127532e-9,-2.3137815592412457e-4,-4.290464072813479e-5,-7.079431225173229e-9,-2.3113482317374794e-4,-4.2706990561187926e-5,-7.061239222047379e-9,-2.3095210624270325e-4,-4.248733394858226e-5,-7.0389514644621475e-9,-2.3083209319112942e-4,-4.22708356697799e-5,-7.0157556508521975e-9,-2.3076787058155768e-4,-4.208124244565444e-5,-6.994754152444318e-9,-2.3074481404720975e-4,-4.193779429781794e-5,-6.978475418029599e-9,-2.3074269629111773e-4,-4.185278131262165e-5,-6.9685812919441475e-9,-2.3073838954341724e-4,-4.183002690679065e-5,-6.9657828504140465e-9,-2.307087773182823e-4,-4.1864416184094224e-5,-6.969890191920407e-9,-2.3063358371772487e-4,-4.19423194920427e-5,-6.979881232260712e-9,-2.304980447362638e-4,-4.204276810737836e-5,-6.993919691136392e-9,-2.3029541532778425e-4,-4.2139396145542684e-5,-7.00935383163725e-9,-2.3002929420596648e-4,-4.220331442258605e-5,-7.022821179996584e-9,-2.297155277725766e-4,-4.220735882242904e-5,-7.0306406913778314e-9,-2.2938274641947577e-4,-4.2132214476566026e-5,-7.029632424365228e-9,-2.2906972807424893e-4,-4.197407643695822e-5,-7.018296801761733e-9,-2.2881761972917472e-4,-4.175160042946605e-5,-6.997961873684011e-9,-2.286567093282979e-4,-4.15075256296687e-5,-6.9732029722847966e-9,-2.2859182172845228e-4,-4.129977684881916e-5,-6.9508561159118375e-9,-2.2859518852719337e-4,-4.118158264999498e-5,-6.937623078004585e-9,-2.2861445669427582e-4,-4.1179317366699686e-5,-6.937368890191579e-9,-2.2859373178187907e-4,-4.128165726085842e-5,-6.949709434593278e-9,-2.2849535207625107e-4,-4.144683429672747e-5,-6.970641653126126e-9,-2.283102601143957e-4,-4.162180946726997e-5,-6.994513297007544e-9,-2.280546314648973e-4,-4.1760936140705576e-5,-7.015996457807604e-9,-2.2775905137933017e-4,-4.1836162324814815e-5,-7.0312662464705675e-9,-2.2745750303615093e-4,-4.183854159207291e-5,-7.038384862713035e-9,-2.2717978153226345e-4,-4.1774688473891304e-5,-7.037214328561364e-9,-2.269476550317656e-4,-4.166168283592476e-5,-7.029107904443636e-9,-2.2677360769187676e-4,-4.152239765949198e-5,-7.016489998134974e-9,-2.2666086428735168e-4,-4.13817553708349e-5,-7.002360297324509e-9,-2.2660400530891817e-4,-4.126365474609324e-5,-6.989766583218536e-9,-2.2659004542151717e-4,-4.1188304668478054e-5,-6.981333927974789e-9,-2.266000219235072e-4,-4.116989011754661e-5,-6.978931288333946e-9,-2.266111881676761e-4,-4.12146495166316e-5,-6.9835033237536505e-9,-2.2659985001449061e-4,-4.131967774449151e-5,-6.9950455254666655e-9,-2.2654460748588225e-4,-4.147283960401956e-5,-7.012666563520272e-9,-2.264295628693442e-4,-4.165394006870694e-5,-7.034672741319516e-9,-2.2624709886908756e-4,-4.183709352380845e-5,-7.058654437906543e-9,-2.259998866238783e-4,-4.1994173550205136e-5,-7.081632424729571e-9,-2.2570180047419192e-4,-4.20991362790095e-5,-7.100361989265034e-9,-2.2537742095192945e-4,-4.213298776272619e-5,-7.111886301353217e-9,-2.2505959382885995e-4,-4.208912506154797e-5,-7.114348718520941e-9,-2.2478421898691062e-4,-4.197821401236689e-5,-7.107904138739319e-9,-2.2458174592226204e-4,-4.1830607186345735e-5,-7.0953504217620375e-9,-2.244663606137209e-4,-4.169327376221295e-5,-7.081979987657558e-9,-2.2442665203386655e-4,-4.1618683723854355e-5,-7.074284006802257e-9,-2.2442408061700852e-4,-4.1646821969372816e-5,-7.077692877238242e-9,-2.2440397415766895e-4,-4.178786877968106e-5,-7.0943342038050634e-9,-2.2431615173148974e-4,-4.201628734466668e-5,-7.122132208245681e-9,-2.2413418489370047e-4,-4.2281316841771065e-5,-7.155838491573877e-9,-2.238625036955378e-4,-4.252762716447894e-5,-7.189267752364687e-9,-2.2352958981585374e-4,-4.271389191467571e-5,-7.217364886846549e-9,-2.231742512295794e-4,-4.2821232086966055e-5,-7.2372470959088515e-9,-2.2283320562756947e-4,-4.285179730744506e-5,-7.2482661351785805e-9,-2.2253387205703278e-4,-4.282232746248896e-5,-7.2515555960049095e-9,-2.2229206566917885e-4,-4.275713751688142e-5,-7.2494356512215224e-9,-2.2211260756237194e-4,-4.2682685880708425e-5,-7.244838453971768e-9,-2.2199099538278396e-4,-4.262399641811782e-5,-7.240796077498677e-9,-2.2191514949620428e-4,-4.260230497054901e-5,-7.240011891369483e-9,-2.2186707232957353e-4,-4.26332616889838e-5,-7.244543832697758e-9,-2.2182464125580366e-4,-4.2725338241283515e-5,-7.255615619695993e-9,-2.217638453501513e-4,-4.287842690194515e-5,-7.273534478793906e-9,-2.2166170729793913e-4,-4.308298693357485e-5,-7.2976765517466445e-9,-2.2149980429336165e-4,-4.332033803452491e-5,-7.326522432477613e-9,-2.2126785688274673e-4,-4.3564584276414805e-5,-7.357751075488498e-9,-2.20966584781167e-4,-4.3786290015324124e-5,-7.388436436288333e-9,-2.2060898292754956e-4,-4.395759483340187e-5,-7.415404439706891e-9,-2.202193504707468e-4,-4.405796910551689e-5,-7.435775583366592e-9,-2.1982983813928416e-4,-4.407947682940211e-5,-7.4476444040565705e-9,-2.1947474914701923e-4,-4.403040203489803e-5,-7.450766846569757e-9,-2.1918316392070605e-4,-4.393615767618415e-5,-7.447040423172644e-9,-2.1897091886597989e-4,-4.3836355658260945e-5,-7.440501159279104e-9,-2.188338255077648e-4,-4.3777167322247025e-5,-7.4366017543605706e-9,-2.187450180632313e-4,-4.379926707359548e-5,-7.440747299185002e-9,-2.1865951766138927e-4,-4.3924079338995526e-5,-7.456451577868975e-9,-2.1852701523895825e-4,-4.414394644131482e-5,-7.48388495394003e-9,-2.1830915181893224e-4,-4.442241000664643e-5,-7.51964660486929e-9,-2.1799327092026865e-4,-4.47064341649404e-5,-7.558021886353412e-9,-2.1759542948186208e-4,-4.4945093539923776e-5,-7.593080121112747e-9,-2.1715190572061313e-4,-4.510525927973701e-5,-7.62051102463403e-9,-2.1670511352975532e-4,-4.5177775919498044e-5,-7.63846614779529e-9,-2.1629130702600425e-4,-4.5174263035486545e-5,-7.647414111500688e-9,-2.1593400226015044e-4,-4.511913434864514e-5,-7.649461867526958e-9,-2.1564283671687278e-4,-4.504151932089862e-5,-7.647573809127245e-9,-2.1541555700511315e-4,-4.496945565191675e-5,-7.644907915657562e-9,-2.152409460728591e-4,-4.4926547873120016E-05,-7.644326527091175e-9,-2.1510150205944102e-4,-4.493027145003056e-5,-7.648080390942638e-9,-2.1497560662559327e-4,-4.499101379307958e-5,-7.65764086825275e-9,-2.1483945926710325e-4,-4.511125926355644e-5,-7.673632641449619e-9,-2.1466926637521481e-4,-4.528477274004901e-5,-7.695803268049495e-9,-2.144441173207301e-4,-4.549613641988964e-5,-7.722992976764426e-9,-2.1414962209211983e-4,-4.572138551931352e-5,-7.753133503949428e-9,-2.137817825713578e-4,-4.5930557875204e-5,-7.783365806364265e-9,-2.1334992695909555e-4,-4.609259275443571e-5,-7.810385927253544e-9,-2.1287718132165904e-4,-4.6182138061975344e-5,-7.831058043246478e-9,-2.123972901802133e-4,-4.618667111745394e-5,-7.843194529569795e-9,-2.1194776550871445e-4,-4.611156504767954e-5,-7.846275859882824e-9,-2.1156084382754122e-4,-4.598097245517623e-5,-7.841849026160612e-9,-2.1125475027746477e-4,-4.5833615902049135e-5,-7.833415837621815e-9,-2.1102786191385352e-4,-4.57141563789811e-5,-7.825754714870187e-9,-2.1085766176323766e-4,-4.5662121102797614e-5,-7.823773717687805e-9,-2.1070526783781765e-4,-4.570112440445812e-5,-7.831148800367581e-9,-2.1052503260910168e-4,-4.5831388471697066e-5,-7.84914193292144e-9,-2.1027715631769618e-4,-4.602835716858338e-5,-7.876058836978009e-9,-2.0993957436240816e-4,-4.6248926026246374e-5,-7.90766713758257e-9,-2.095146194759454e-4,-4.644402823389973e-5,-7.938509723459188e-9,-2.0902749841148404e-4,-4.6573103373786205e-5,-7.963593692431587e-9,-2.085173003005473e-4,-4.6614726939852604e-5,-7.979751223426029e-9,-2.080247685004384e-4,-4.656971988276465e-5,-7.986202202748241e-9,-2.0758195037667867e-4,-4.645702153575651e-5,-7.984303236040702e-9,-2.0720680107128868e-4,-4.630568678322192e-5,-7.976805592462343e-9,-2.069027746736158e-4,-4.6146864470554793E-05,-7.967006829227965e-9,-2.0666149949068237e-4,-4.6008053738656595e-5,-7.958051544835984e-9,-2.0646643337144435e-4,-4.591001322147901e-5,-7.952478950941206e-9,-2.0629619473845173e-4,-4.586558575032321e-5,-7.952010523962518e-9,-2.0612715730170046e-4,-4.587946155808738e-5,-7.957511462395227e-9,-2.0593551752786214e-4,-4.594814009737746e-5,-7.969025447952002e-9,-2.0569936999224403e-4,-4.6059814191126656e-5,-7.985789917193825e-9,-2.054013396767555e-4,-4.619444426954505e-5,-8.006201300389058e-9,-2.0503200586908336e-4,-4.632476440606799e-5,-8.027795774410303e-9,-2.0459370977526643e-4,-4.6419232557928356e-5,-8.04739911864323e-9,-2.0410341514187733e-4,-4.644771828424737e-5,-8.061606874456355e-9,-2.0359249297940358e-4,-4.6389591386022976e-5,-8.06761967917358e-9,-2.0310152417526018e-4,-4.6241943470151586e-5,-8.064208675557398e-9,-2.026701314330422e-4,-4.602412220191169e-5,-8.05238930586289e-9,-2.0232482212882342e-4,-4.5775201703916056e-5,-8.035415203185357e-9,-2.0206981769589567e-4,-4.5543952383211005e-5,-8.017995799141722e-9,-2.0188503857131567e-4,-4.5374719563007136e-5,-8.005002937932091e-9,-2.0173208974531864e-4,-4.5294685661682146e-5,-8.000132839061242e-9,-2.0156558865288865e-4,-4.530694102432007e-5,-8.004940251523124e-9,-2.0134563404935994e-4,-4.5390862347908655e-5,-8.018476540387911e-9,-2.010477628284383e-4,-4.5508700213428396e-5,-8.037583629336856e-9,-2.0066816008643582e-4,-4.56159424839469e-5,-8.05775420557668e-9,-2.002233040454102e-4,-4.5672547498502866e-5,-8.074324603901956e-9,-1.9974456130923202e-4,-4.5652156194690424e-5,-8.083656540042794e-9,-1.992695170896543e-4,-4.554701856445397e-5,-8.083957366931921e-9,-1.9883270591920156e-4,-4.5367698049175715e-5,-8.075522287619769e-9,-1.9845841745310465e-4,-4.513832170771045e-5,-8.060398815725766e-9,-1.981572124953109e-4,-4.488951139782889e-5,-8.041672208553757e-9,-1.9792619199168255e-4,-4.46514605035761e-5,-8.022654713173082e-9,-1.97751818665741e-4,-4.444885607769098e-5,-8.006221420156825e-9,-1.9761372928278598e-4,-4.429815409582809e-5,-7.994418534127477e-9,-1.9748834183331958e-4,-4.4206787770554826e-5,-7.988349103172298e-9,-1.9735172150645567e-4,-4.417347840913245e-5,-7.988243219864344e-9,-1.9718177685405577e-4,-4.4188897515318655e-5,-7.993577576316224e-9,-1.969602185929472e-4,-4.423633228093872e-5,-8.003137811219496e-9,-1.96674791367231e-4,-4.429249144944042e-5,-8.01500158984719e-9,-1.9632209229852586e-4,-4.43290434847933e-5,-8.026530943997656e-9,-1.9591072087203853e-4,-4.4315855466975366e-5,-8.03455558004738e-9,-1.9546352222861362e-4,-4.422685189198833e-5,-8.035926730100295e-9,-1.9501665604001342e-4,-4.404835137258371e-5,-8.028456381532183e-9,-1.9461311284592976e-4,-4.3787482447394696e-5,-8.011956426634773e-9,-1.9429036612252486e-4,-4.3475903590539156e-5,-7.988819905738023e-9,-1.9406609579109184e-4,-4.31641133352837e-5,-7.963631507898714e-9,-1.939293801808378e-4,-4.290607476846081e-5,-7.941776010191559e-9,-1.9384326424020214e-4,-4.274050836180446e-5,-7.927647618378034e-9,-1.9375801371840964e-4,-4.267820492195053e-5,-7.923311832665135e-9,-1.9362806935360174e-4,-4.270088509049269e-5,-7.928124868965717e-9,-1.934249241067107e-4,-4.277008015595093e-5,-7.93923136862352e-9,-1.931422172148227e-4,-4.284026359050476e-5,-7.952533831849908e-9,-1.9279378906395382e-4,-4.287086605432226e-5,-7.963753390058145e-9,-1.9240746774724533e-4,-4.283438753175265e-5,-7.96935681810304e-9,-1.9201729184363728e-4,-4.272004332166115e-5,-7.967224995384466e-9,-1.9165604145344355e-4,-4.253352928312996e-5,-7.956980058119363e-9,-1.9134921912310286e-4,-4.229384282667856e-5,-7.939923003820991e-9,-1.9111121492372828e-4,-4.202818834980984e-5,-7.91860535841166e-9,-1.9094402083634387e-4,-4.176615800307559e-5,-7.896162848299419e-9,-1.9083831639714896e-4,-4.1534410208336746e-5,-7.87561120850624e-9,-1.9077625422079947e-4,-4.1352743879738196e-5,-7.859295143438076e-9,-1.9073505303328413e-4,-4.123196142628293e-5,-7.848605195695082e-9,-1.9069054410135802e-4,-4.1173414159399545e-5,-7.843964753064974e-9,-1.906201224278099e-4,-4.116971136664543e-5,-7.844982280018888e-9,-1.905050256123524e-4,-4.1205978856558556e-5,-7.850625899117948e-9,-1.9033218543530693e-4,-4.126132493487268e-5,-7.859318656901609e-9,-1.9009597946679268e-4,-4.131052250053904e-5,-7.868951080561997e-9,-1.8980014139863044e-4,-4.1326260782891054e-5,-7.876912836277283e-9,-1.8945967012305145e-4,-4.128269700216912e-5,-7.880323549005257e-9,-1.8910169760086778e-4,-4.116102678475968e-5,-7.876614821307504e-9,-0.00018876338867391296,-4.0956863108143176e-5,-7.864445949430287e-9,-1.884847853602136e-4,-4.0687258733253435e-5,-7.844654109638144e-9,-1.8829616966925856e-4,-4.039278804799636e-5,-7.820672655457958e-9,-1.88203845813791e-4,-4.012954778719805e-5,-7.797856014628003e-9,-1.8818277508791647e-4,-3.995054240701812e-5,-7.781684520999545e-9,-1.881832875362198e-4,-3.988448188439229e-5,-7.77566376533795e-9,-1.8815018874959586e-4,-3.992443525486756e-5,-7.780096416824334e-9,-1.880434791354815e-4,-4.003285000490112e-5,-7.792321866458137e-9,-1.8784973035415947e-4,-4.015822215563545e-5,-7.808013539986401e-9,-1.8758115050261835e-4,-4.025292234742e-5,-7.822655543413694e-9,-1.872668184883031e-4,-4.02846843903453e-5,-7.832609350063291e-9,-1.869421745375567e-4,-4.024036343886389e-5,-7.835668960723405e-9,-1.866405011096358e-4,-4.012421563344865e-5,-7.831233109466725e-9,-1.8638746606769327e-4,-3.9953517066443375e-5,-7.820209997762073e-9,-1.8619833336478678e-4,-3.9753447846682424E-05,-7.804705559277455e-9,-1.8607713456172942e-4,-3.955211791223761e-5,-7.787528077260694e-9,-1.8601733956143633e-4,-3.937609305312275e-5,-7.771594675631029e-9,-1.8600372362801028e-4,-3.924671808006975e-5,-7.759377516311174e-9,-1.860151033940145e-4,-3.9177490549839045e-5,-7.752521038826082e-9,-1.86027579535179e-4,-3.917265795237302e-5,-7.751697825195558e-9,-1.8601784500762417e-4,-3.922712275877602e-5,-7.756683939980297e-9,-1.859660991240961e-4,-3.932748873083235e-5,-7.76655338904938e-9,-1.858583415306685e-4,-3.945386020008228e-5,-7.779863803220138e-9,-1.856880765199331e-4,-3.9582104032858643e-5,-7.794764745634513e-9,-1.8545751111847034e-4,-3.968648336286518e-5,-7.80905273811186e-9,-1.8517832726768282e-4,-3.974272194646584e-5,-7.820277095975539e-9,-1.8487191715710737e-4,-3.973182286832981e-5,-7.826043324454552e-9,-1.84568326062585e-4,-3.964498003485806e-5,-7.824607063924266e-9,-1.8430252736954805e-4,-3.948909619720772e-5,-7.81567723225054e-9,-1.841068015813026e-4,-3.9290916557531185e-5,-7.801120265142914e-9,-1.8399941650295114e-4,-3.9096168023688346e-5,-7.785080204503404e-9,-1.8397315757144196e-4,-3.8959732030985414e-5,-7.773061430941858e-9,-1.8399121969710352e-4,-3.892667494260442e-5,-7.769999153806498e-9,-1.8399720413110593e-4,-3.9012062532908605e-5,-7.778165646339316e-9,-1.8393709799280938e-4,-3.919247414624714e-5,-7.796192327999907e-9,-1.837809253347292e-4,-3.94159913142451e-5,-7.81983562463752e-9,-1.835314504140859e-4,-3.9624174692404916e-5,-7.843866044999501e-9,-1.832175926465497e-4,-3.9772376929694886e-5,-7.863852973816922e-9,-0.00018288007799367867,-3.983939802399363e-5,-7.877101234873762e-9,-1.825581525567214e-4,-3.9826609012344015e-5,-7.88278698428171e-9,-1.8228153953364634e-4,-3.975151493070294e-5,-7.881673076367993e-9,-1.8206747389102235e-4,-3.96403257759107e-5,-7.87567869457065e-9,-1.8192093438847728e-4,-3.952183195728649e-5,-7.867403264403688e-9,-1.818363144226791e-4,-3.94230088792691e-5,-7.859627774104685e-9,-1.8179960057993597e-4,-3.9365938879669173e-5,-7.854836651382487e-9,-1.817908037429815e-4,-3.9365650403408574e-5,-7.85483970570868e-9,-1.817866154295425e-4,-3.9428705477013426e-5,-7.860566324909944e-9,-1.81763290141203e-4,-3.955254076382139e-5,-7.872043997922005e-9,-1.8169966125836646e-4,-3.9725745338659054e-5,-7.888521312020506e-9,-1.8157997375724025e-4,-3.992943179925509e-5,-7.908654800013727e-9,-1.8139615201193202e-4,-4.01395859443014e-5,-7.930677800847704e-9,-1.8114926843234067e-4,-4.0330149429537525e-5,-7.952524911278175e-9,-1.808500494869329e-4,-4.047662276442048e-5,-7.971962158343955e-9,-1.8051827933978514e-4,-4.055992560857808e-5,-7.986810256067089e-9,-1.8018101316444614e-4,-4.0570277674346596e-5,-7.995336625795394e-9,-1.7986930754112723e-4,-4.0510916503467394e-5,-7.996822725172099e-9,-1.796128754203871e-4,-4.0400967753350356e-5,-7.992167447243349e-9,-1.7943243126465743e-4,-4.027577035424067e-5,-7.984224841668468e-9,-1.793308527151646e-4,-4.0182267013651894e-5,-7.97751603843064e-9,-1.7928650189256697e-4,-4.016762654034507e-5,-7.977085620844553e-9,-1.7925412028238575e-4,-4.026237728195528e-5,-7.986681974367066e-9,-1.791774416147169e-4,-4.046502137035069e-5,-8.007050548514257e-9,-1.79010578141659e-4,-4.07384889308924e-5,-8.03541534862946e-9,-1.7873692411944845e-4,-4.102346717380981e-5,-8.066621496285543e-9,-1.783741420058078e-4,-4.1261830836882335e-5,-8.095249938080533e-9,-1.7796361074475225e-4,-4.1416463164230464e-5,-8.117421582789139e-9,-1.7755290410782594e-4,-4.1478368578888085e-5,-8.131520449449486e-9,-1.7718135033389617e-4,-4.146198733197798e-5,-8.13797055610707e-9,-1.768730990346715e-4,-4.139529321745453e-5,-8.138602365296292e-9,-1.766365818208645e-4,-4.131042648440153e-5,-8.135996394797593e-9,-1.7646729539195152e-4,-4.123728457209718e-5,-8.132931548149722e-9,-1.7635140912427015e-4,-4.119998363428822e-5,-8.131940782911007e-9,-1.7626901592075078e-4,-4.1215139264067615e-5,-8.13497319552361e-9,-1.7619688175239353e-4,-4.129104627639256e-5,-8.143187102834443e-9,-1.7611095329391106e-4,-4.142731358893801e-5,-8.156888519239014e-9,-1.7598889716912629e-4,-4.1614887437690714e-5,-8.17558928584182e-9,-1.7581281192462515e-4,-4.183670829192403e-5,-8.198133122013413e-9,-1.7557194116890116e-4,-4.206939570725801e-5,-8.222846596370708e-9,-1.7526489185315834e-4,-4.2286145337228534e-5,-8.247693685378518e-9,-1.749007892130791e-4,-4.246067239676419e-5,-8.27045287578726e-9,-1.7449889291473196e-4,-4.257177890837406e-5,-8.288966601271894e-9,-1.7408636134491067e-4,-4.260785569445014e-5,-8.301502622549816e-9,-1.7369417612683185e-4,-4.257044116629862e-5,-8.307207425135431e-9,-1.733515749373912e-4,-4.247603925671317e-5,-8.306560538240727e-9,-1.7307951561946385e-4,-4.235546258407321e-5,-8.301660768772593e-9,-1.7288404300892215e-4,-4.224980670333177e-5,-8.296116391034056e-9,-1.7275126742316764e-4,-4.220232082429011e-5,-8.29435675977847e-9,-1.7264662508130276e-4,-4.2246603872407674e-5,-8.300377709365537e-9,-1.7252121501086634e-4,-4.239390927424923e-5,-8.316260399484159e-9,-1.723259194563172e-4,-4.262512746453453e-5,-8.341125038747223e-9,-1.7202921853819408e-4,-4.289359303196469e-5,-8.371205255110296e-9,-1.7163005621497463e-4,-4.314027956941037e-5,-8.401196120311941e-9,-1.7115808212438073e-4,-4.3314891182245837e-5,-8.426208336859534e-9,-1.706611339045414e-4,-4.3391899781138715e-5,-8.4432830383759e-9,-1.701876762651756e-4,-4.3374419715413495e-5,-8.4518562411058e-9,-1.6977323193821857e-4,-4.328714577136297e-5,-8.4533209117178e-9,-1.6943492968409378e-4,-4.316484300779904e-5,-8.450215049832509e-9,-1.691728141266524e-4,-4.304229490465962e-5,-8.445454567334958e-9,-1.689743734967421e-4,-4.294814563749508e-5,-8.441762371783732e-9,-1.6881942342299218e-4,-4.2902261156559144e-5,-8.441296223429344e-9,-1.6868404487941965e-4,-4.291519214458628e-5,-8.445444774098598e-9,-1.6854347563705814e-4,-4.2988495594045744e-5,-8.454766529152133e-9,-1.6837439851704656e-4,-4.3115257163194266e-5,-8.469036389597806e-9,-1.681571293442517e-4,-4.3280710287122344e-5,-8.487346444855007e-9,-1.6787800682957013e-4,-4.3463272785180736e-5,-8.508217625345404e-9,-1.675319055511752e-4,-4.363653952219832e-5,-8.529718093993882e-9,-1.6712433065999726e-4,-4.3772654109465174e-5,-8.549625270960761e-9,-1.6667221550076703e-4,-4.3847053130506195e-5,-8.565688893545171e-9,-1.6620251090174813e-4,-4.384394863589244e-5,-8.576022891083493e-9,-1.6574805161057994e-4,-4.3761243185843136e-5,-8.57958137502147e-9,-1.653410166729793e-4,-4.361321227414499e-5,-8.57659196538238e-9,-1.6500526069332353e-4,-4.3429595920686075e-5,-8.568780938240553e-9,-1.6474941938175833e-4,-4.325061380526027e-5,-8.559242374508827e-9,-1.6456278474184848e-4,-4.311845658282386e-5,-8.551872091484495e-9,-1.6441558827007797e-4,-4.306679435913246e-5,-8.55041163875152e-9,-1.6426459590353389e-4,-4.31107428021797e-5,-8.55731514316368e-9,-1.6406370565747632e-4,-4.324040567689213e-5,-8.572814975918328e-9,-1.6377738091422734e-4,-4.3421136814201817e-5,-8.594619277300757e-9,-1.6339259528422065e-4,-4.360218549923664e-5,-8.618509053213847e-9,-1.6292403742707357e-4,-4.3731933663244515e-5,-8.639692356752142e-9,-1.6240945516230828e-4,-4.3773994492029846e-5,-8.654343911008955e-9,-1.618968607756375e-4,-4.371721460881521e-5,-8.660647603934844e-9,-1.614295836691662e-4,-4.357579691594396e-5,-8.658990171403235e-9,-1.6103554540079272e-4,-4.338116258064244e-5,-8.65143750147207e-9,-1.6072371734170566e-4,-4.317072694826411e-5,-8.640899300411265e-9,-1.60486597377181e-4,-4.2978486922922624e-5,-8.630346264051817e-9,-1.6030553083480994e-4,-4.28295955015562e-5,-8.622255741822829e-9,-1.6015613527411944e-4,-4.2738546072660895e-5,-8.618310231123223e-9,-1.6001252941236853e-4,-4.270953342717434e-5,-8.619310983523769e-9,-1.5985023392522713e-4,-4.27376696865566e-5,-8.62524258194941e-9,-1.5964820616548375e-4,-4.281026269130828e-5,-8.635407427994393e-9,-1.5939063606626693e-4,-4.290797545834162e-5,-8.648555381100611e-9,-1.5906893911632526e-4,-4.300622619989431e-5,-8.662980381924239e-9,-1.586839320425307e-4,-4.307745905419132e-5,-8.6766176574788e-9,-1.5824763893893554e-4,-4.309485149551601e-5,-8.687224944489166e-9,-1.577836553301402e-4,-4.303761508032331e-5,-8.692728743322592e-9,-1.5732473003351639e-4,-4.2897150815443866e-5,-8.691735505534104e-9,-1.5690673041701025e-4,-4.2682099455994495e-5,-8.684069583127032e-9,-1.5655967783061677e-4,-4.241963218334136e-5,-8.671100768675983e-9,-1.5629842252569848e-4,-4.215106331379977e-5,-8.65564776892293e-9,-1.5611654367897435e-4,-4.1922027222526855e-5,-8.641393519477788e-9,-1.5598634365727104e-4,-4.1769990723229766e-5,-8.631943434242865e-9,-1.558655337576891e-4,-4.171332468953909e-5,-8.62980875112357e-9,-1.55708599326998e-4,-4.1745676230751626e-5,-8.635639653747643e-9,-1.5547926756793228e-4,-4.183738871643539e-5,-8.64796410233513e-9,-1.5516040876164026e-4,-4.194344529267842e-5,-8.663544317198107e-9,-1.5475857077794318e-4,-4.2015642345345564e-5,-8.678275332417251e-9,-1.5430178219828054e-4,-4.2015487508945786e-5,-8.688346657903147e-9,-1.538312653883322e-4,-4.1923888974596855e-5,-8.691272266061803e-9,-1.5338985144061818e-4,-4.174464729428951e-5,-8.686443715723425e-9,-1.5301108912570144e-4,-4.150107912857046e-5,-8.675074640975934e-9,-1.5271247020407983e-4,-4.1227745509928506e-5,-8.659650972450587e-9,-1.5249412865362623e-4,-4.096082102643691e-5,-8.643154944543995e-9,-1.5234202142190386e-4,-4.0730361657362306e-5,-8.628341074666747e-9,-1.522332666590427e-4,-4.0556036818412694e-5,-8.617240877586801e-9,-1.5214146355814283e-4,-4.044607832465574e-5,-8.610948820189256e-9,-1.5204082770238207e-4,-4.0398276306418136e-5,-8.609649713449356e-9,-1.5190894966737008e-4,-4.040182404940597e-5,-8.612791693953891e-9,-1.5172855998777816e-4,-4.04392073340307e-5,-8.619289651721801e-9,-1.5148890221367985e-4,-4.048788673301634e-5,-8.627671304566296e-9,-1.511871960678653e-4,-4.052207249406931e-5,-8.636154913727928e-9,-1.5083025434630082e-4,-4.051521495503619e-5,-8.642725787473477e-9,-1.5043574158394175e-4,-4.044383852156764e-5,-8.645327734018624e-9,-1.500319353466808e-4,-4.029297377626192e-5,-8.642261093560134e-9,-1.496544166579292e-4,-4.006242686937451e-5,-8.632759521112276e-9,-1.4933857066749907e-4,-3.9771500609913104e-5,-8.61753525645397e-9,-1.4910878327908136e-4,-3.9458613965874134e-5,-8.598961074703302e-9,-1.4896817540041468e-4,-3.9173255620837376e-5,-8.580634729706417e-9,-1.4889434793359147e-4,-3.896143953895252e-5,-8.566369717397555e-9,-1.488446779231985e-4,-3.885027635490195e-5,-8.558992598500318e-9,-1.4876971971684565e-4,-3.883878985692342e-5,-8.559461170923111e-9,-1.4862882605840358e-4,-3.889897430693147e-5,-8.566637964807312e-9,-1.484015496846831e-4,-3.8985699273179814e-5,-8.577719545041904e-9,-1.4809146958670756e-4,-3.9050500471712874e-5,-8.589075917670951e-9,-1.4772283139077166e-4,-3.90541832810773e-5,-8.597200861671296e-9,-1.4733252302452735e-4,-3.8975093804996464e-5,-8.599531021666814e-9,-1.46960319709348e-4,-3.8811988524448995e-5,-8.594969943036304e-9,-1.4663989849332713e-4,-3.8581911562734315e-5,-8.58402541962936e-9,-1.4639243737691714e-4,-3.831439622032589e-5,-8.568556760394407e-9,-1.4622381432699978e-4,-3.8043832331238845e-5,-8.551221326080342e-9,-1.4612546696149864e-4,-3.780203085357788e-5,-8.534793996272362e-9,-1.4607800835754142e-4,-3.761267871861787e-5,-8.521560570514165e-9,-1.46056126596556e-4,-3.748848840769632e-5,-8.512936995642796e-9,-1.4603336462438332e-4,-3.743087337648366e-5,-8.509368863912567e-9,-1.4598588657925202e-4,-3.743138625583485e-5,-8.510465027645555e-9,-1.4589496353338089e-4,-3.747399290628529e-5,-8.515247763091069e-9,-1.4574843347403674e-4,-3.753744263121957e-5,-8.522385868843517e-9,-1.4554162934537264e-4,-3.759745129656199e-5,-8.530332304446479e-9,-1.4527818133022795e-4,-3.7628889350479104e-5,-8.537375532161534e-9,-1.4497079464529807e-4,-3.76084521534279e-5,-8.541699439939246e-9,-1.446416124057033e-4,-3.751836753687077e-5,-8.541581339326527e-9,-1.4432111704455668e-4,-3.7351398285757994e-5,-8.535812444372269e-9,-1.4404404714688575e-4,-3.711638518574359e-5,-8.524282605408122e-9,-1.438412079624837e-4,-3.684187866182322e-5,-8.508477097627533e-9,-1.4372811461076546e-4,-3.657397293866363e-5,-8.491503673689153e-9,-1.436949746655447e-4,-3.636532952138359e-5,-8.477371791217123e-9,-1.437049148338037e-4,-3.625715011489158e-5,-8.469647157873269e-9,-1.4370460041685984e-4,-3.626225419817731e-5,-8.470096677118393e-9,-1.436435657655829e-4,-3.6359182629031623e-5,-8.478059693349249e-9,-1.4349217679652826e-4,-3.650097828056397e-5,-8.49083875172551e-9,-1.4324944734727836e-4,-3.663301747612782e-5,-8.50476357027434e-9,-1.4293924274250757e-4,-3.6710244446883646e-5,-8.516318183217591e-9,-1.42599606440927e-4,-3.670734481993864e-5,-8.522934387042323e-9,-1.4227107692698355e-4,-3.66208983276144e-5,-8.523380609554418e-9,-1.4198762087161575e-4,-3.646586091026803e-5,-8.517827359725516e-9,-1.4177127123896665e-4,-3.626931158012475e-5,-8.507668428407443e-9,-1.4163010445375599e-4,-3.606360234221836e-5,-8.495144285064709e-9,-1.4155881398565556e-4,-3.588006957388633e-5,-8.482821921176052e-9,-1.4154122929864088e-4,-3.574396664003745e-5,-8.473039059830415e-9,-1.4155410250967632e-4,-3.5671120527783085e-5,-8.467454781925923e-9,-1.4157137341078065e-4,-3.5666522461359366e-5,-8.46681890030178e-9,-1.4156819516112225e-4,-3.572468450852716e-5,-8.4709875707388e-9,-1.4152418460917606e-4,-3.58313730753767e-5,-8.47912807725831e-9,-1.4142558873947818e-4,-3.59661705458511e-5,-8.489992557926502e-9,-1.412664184643966e-4,-3.6105261696455e-5,-8.502137383045136e-9,-1.4104888166358994e-4,-3.6224110895191465e-5,-8.514032189748423e-9,-1.4078340386514088e-4,-3.630008132933925e-5,-8.524097794432883e-9,-1.4048831120426743e-4,-3.6315244359799485e-5,-8.530777751256682e-9,-1.4018893987105985e-4,-3.6259700669489686e-5,-8.532761075544734e-9,-1.399154045802046e-4,-3.613554770648095e-5,-8.529406358796928e-9,-1.396978493880879e-4,-3.5960758369385744e-5,-8.5212719609298e-9,-1.395584274220083e-4,-3.5770777754258144e-5,-8.510484614118273e-9,-1.395010799090941e-4,-3.5614419533547606e-5,-8.500584815712752e-9,-1.3950347955379841e-4,-3.554134224026499e-5,-8.495600252331792e-9,-1.395181326667312e-4,-3.5583057711782186e-5,-8.49852886633527e-9,-1.3948692048425989e-4,-3.573661667274257e-5,-8.509976577861838e-9,-1.3936409233349114e-4,-3.596248146847602e-5,-8.52783178092342e-9,-1.3913464178440764e-4,-3.6200002121230084e-5,-8.548219699136488e-9,-1.3881747770678196e-4,-3.6391341144876804e-5,-8.567072309384218e-9,-1.384540237025143e-4,-3.650005380239695e-5,-8.581375137160207e-9,-1.380914704582618e-4,-3.6517145395985524e-5,-8.589669620504838e-9,-1.3776939627770373e-4,-3.645667302158028e-5,-8.591982763540148e-9,-1.375129529417687e-4,-3.634680402050186e-5,-8.589508759325445e-9,-1.373315794560991e-4,-3.622095854655851e-5,-8.584220023840957e-9,-1.3722091216789167e-4,-3.61110737959683e-5,-8.578448656336925e-9,-1.3716598999432205e-4,-3.6043161150447865e-5,-8.574449379800085e-9,-1.37144819913883e-4,-3.6034601772228566e-5,-8.573995788120039e-9,-1.3713202193536196e-4,-3.60927847497726e-5,-8.578098184526851e-9,-1.3710237308793484e-4,-3.621495858814332e-5,-8.586914569799196e-9,-1.3703402980724396e-4,-3.6389181641333254e-5,-8.5998516774355e-9,-1.36911205202354e-4,-3.65962542961265e-5,-8.615789199981454e-9,-1.3672602214730465e-4,-3.68124573584491e-5,-8.633327431858329e-9,-1.36479349089764e-4,-3.701271677512592e-5,-8.650970819822634e-9,-1.3618068653054776e-4,-3.717379627140313e-5,-8.667222550115315e-9,-1.358472662707308e-4,-3.7277344343605105e-5,-8.680647089426607e-9,-1.3550242612119607e-4,-3.731274903926245e-5,-8.68999424871703e-9,-1.3517320152061808e-4,-3.727978006702851e-5,-8.694459140313209e-9,-1.3488680793789882e-4,-3.719092897384664e-5,-8.694073713436727e-9,-1.3466544021457864e-4,-3.707279073129639e-5,-8.69010051987593e-9,-1.3451925275556113e-4,-3.696481485133304e-5,-8.685177236944263e-9,-1.344388658671642e-4,-3.69131046298267e-5,-8.682934876706395e-9,-1.3439108416693466e-4,-3.695778715724225e-5,-8.68695839392729e-9,-1.3432331140892352e-4,-3.7116200157038535e-5,-8.699334814541392e-9,-1.3417981211901297e-4,-3.737010340084863e-5,-8.71951455375979e-9,-1.339246580951755e-4,-3.7667420214442775e-5,-8.744316749020727e-9,-1.3355816900488716e-4,-3.7941435370631326e-5,-8.769244026211392e-9,-1.3311593340372153e-4,-3.813725721253883e-5,-8.79029609068621e-9,-1.3265197371800877e-4,-3.8229929052285945e-5,-8.80518898519348e-9,-1.3221793913426716e-4,-3.822643977336777e-5,-8.813555366407018e-9,-1.318492290963614e-4,-3.8155740932226004e-5,-8.816480101901048e-9,-1.3156091565529496e-4,-3.8055615871408505e-5,-8.815891247203971e-9,-1.3135036452187486e-4,-3.796239043644523e-5,-8.814051427765528e-9,-1.31202438800492e-4,-3.7905049072083586e-5,-8.813160873514698e-9,-1.3109463784149872e-4,-3.79028210263575e-5,-8.81503385420893e-9,-1.3100122611687848e-4,-3.796469387651649e-5,-8.820852830416448e-9,-1.3089648863076503e-4,-3.80897908046812e-5,-8.83104051118581e-9,-1.3075748536931842e-4,-3.826825886682798e-5,-8.84527997381368e-9,-1.3056648321026467e-4,-3.848267424904795e-5,-8.862659526172724e-9,-1.3031305885508222e-4,-3.871009371470224e-5,-8.881878607082005e-9,-1.2999564462678402e-4,-3.8924886973358905e-5,-8.90144922639146e-9,-1.296221126551315e-4,-3.9102224081252054e-5,-8.919852317394064e-9,-1.292091137554164e-4,-3.9221787764163894e-5,-8.935653170963314e-9,-1.287801342980387e-4,-3.9271231345139034e-5,-8.947626178113364e-9,-1.2836237102655372e-4,-3.924893370147562e-5,-8.954946573809908e-9,-1.2798264289840097e-4,-3.916561004732102e-5,-8.957459750970044e-9,-1.2766262594780724e-4,-3.9044431207776e-5,-8.955969094344736e-9,-1.2741366297480022e-4,-3.891923161696911e-5,-8.952404162384802e-9,-1.2723168997357461e-4,-3.883000967390067e-5,-8.949679509496966e-9,-1.27093748029005e-4,-3.881487829910734e-5,-8.951097831921052e-9,-1.2695870357679422e-4,-3.8898685950468335e-5,-8.959323326278861e-9,-1.267751555869125e-4,-3.908106724078372e-5,-8.975233990146882e-9,-1.2649729890266872e-4,-3.933002315131596e-5,-8.997238422616873e-9,-1.2610380646318407e-4,-3.958793924368254e-5,-9.021623338742478e-9,-1.2560933231630603e-4,-3.979117636916569e-5,-9.043949542052622e-9,-1.250601064281325e-4,-3.989428803618717e-5,-9.060747657363913e-9,-1.2451535807132656e-4,-3.988519479442612e-5,-9.070550347589108e-9,-1.2402584828578883e-4,-3.978414776435241e-5,-9.073886011159246e-9,-1.236205981940215e-4,-3.963065544738354e-5,-9.07260038223968e-9,-1.2330492479386814e-4,-3.946804731107443e-5,-9.06907791995821e-9,-1.2306592379153069e-4,-3.9332584341514184e-5,-9.065663183276685e-9,-1.228800828847495e-4,-3.9248605036294036e-5,-9.064298093394783e-9,-1.2271974809462355e-4,-3.9227959023930204e-5,-9.066308761174449e-9,-1.2255751932836511e-4,-3.9271422800291845e-5,-9.07230522767062e-9,-1.2236902385258616e-4,-3.937056825807537e-5,-9.082190481665708e-9,-1.2213485314795255e-4,-3.950953825587356e-5,-9.0952670217167e-9,-1.2184219766310128e-4,-3.966680598205627e-5,-9.110401741288104e-9,-1.2148636162885278e-4,-3.981726696521993e-5,-9.12619905571748e-9,-1.2107197250418744e-4,-3.9935062083796264e-5,-9.141156188037495e-9,-1.2061333772280514e-4,-3.9997258003077964e-5,-9.153805898123638e-9,-1.2013331124746263e-4,-3.998800386203117e-5,-9.162873756252375e-9,-1.1966030668005657e-4,-3.990236796499482e-5,-9.167476141008514e-9,-1.1922355711720542e-4,-3.9748848224879454e-5,-9.16735668291749e-9,-1.1884727409519039e-4,-3.9549573910041856e-5,-9.163106709226148e-9,-1.1854484500946807e-4,-3.9337626281964046e-5,-9.156273357353645e-9,-1.1831435745928925e-4,-3.9151554868869843e-5,-9.149247534449742e-9,-1.1813661119487769e-4,-3.9027669333984225e-5,-9.144851147026704e-9,-1.1797667960421902e-4,-3.899110483450793e-5,-9.145628060950681e-9,-1.1778991790734548e-4,-3.904737063700308e-5,-9.15299150810211e-9,-1.175325624741728e-4,-3.9177091689939015e-5,-9.166537396277783e-9,-1.1717523308225653e-4,-3.933731131848976e-5,-9.183898816605155e-9,-1.1671489921126038e-4,-3.947171279421601e-5,-9.20137620436505e-9,-1.1617906373001206e-4,-3.952820645458404e-5,-9.215188158288917e-9,-1.1561807446250038e-4,-3.947694802803824e-5,-9.222771080593783e-9,-1.1508795403832579e-4,-3.931977427169145e-5,-9.223487247363517e-9,-1.1463218392673738e-4,-3.9086539305895255e-5,-9.21849929028679e-9,-1.142709592978943e-4,-3.8821745934336895e-5,-9.210076040428456e-9,-1.1400074179654687e-4,-3.856946273893001e-5,-9.20078618611514e-9,-1.1380094799943816e-4,-3.836294492571193e-5,-9.192886631995141e-9,-1.1364261812623197e-4,-3.822069459714716e-5,-9.1879765359956e-9,-1.1349551541127026e-4,-3.814719957123449e-5,-9.186871306246775e-9,-1.1333258761490281e-4,-3.8135736535814055e-5,-9.189633338269424e-9,-1.1313230069867286e-4,-3.817141008984336e-5,-9.195706259883106e-9,-1.1287982382393343e-4,-3.823369291997683e-5,-9.204097657482591e-9,-1.1256786310513337e-4,-3.829851605574717e-5,-9.213553802888529e-9,-1.1219751803139118e-4,-3.8340376762559447e-5,-9.22269414066259e-9,-1.1177904223869293e-4,-3.833503671167999e-5,-9.230116686601745e-9,-1.1133191698447232e-4,-3.826315103578705e-5,-9.234523255112086e-9,-1.1088335748373442e-4,-3.811461096830071e-5,-9.234910233392347e-9,-1.1046449079987319e-4,-3.789262697562118e-5,-9.230826308386785e-9,-1.1010413601670693e-4,-3.7615910350771354e-5,-9.222627139411862e-9,-1.0982130517158393e-4,-3.731722308065027e-5,-9.21160402770721e-9,-1.0961868889767661e-4,-3.703748088216355e-5,-9.199872312326249e-9,-1.0947969429209346e-4,-3.681630820680492e-5,-9.189976537874282e-9,-1.0937067838856088e-4,-3.668157414423921e-5,-9.184272074658242e-9,-1.0924829447019257e-4,-3.664109554625678e-5,-9.18424056176897e-9,-1.0907020550257687e-4,-3.667913877536005e-5,-9.189954915184103e-9,-1.0880642515705916e-4,-3.6759033088402764e-5,-9.199907267392656e-9,-1.0844824947981108e-4,-3.683171835853091e-5,-9.211326762762983e-9,-1.0801195079731945e-4,-3.684853152381634e-5,-9.220949393187014e-9,-1.0753533107081977e-4,-3.6774884340293415e-5,-9.225997564122934e-9,-1.0706735543311275e-4,-3.6600269285523224e-5,-9.22499909034669e-9,-1.0665405844386353e-4,-3.634060345263345e-5,-9.218128116932532e-9,-1.0632599695639417e-4,-3.6031911809698865e-5,-9.206981038369621e-9,-1.0609189824736788e-4,-3.5718319405997615e-5,-9.19395506438557e-9,-1.0593992002165717e-4,-3.543962353913638e-5,-9.181522987160879e-9,-1.0584432970216088e-4,-3.5222894444418944e-5,-9.171654265312317e-9,-1.0577377509585269e-4,-3.5079615353876484e-5,-9.165501882736301e-9,-1.0569811427307857e-4,-3.500714701067259e-5,-9.163352800650679e-9,-1.0559264518508524e-4,-3.499226206662488e-5,-9.164771801813917e-9,-1.0544004786505433e-4,-3.5014920510423576e-5,-9.16883982493074e-9,-1.0523095671395252e-4,-3.5051391464275926e-5,-9.174389778026609e-9,-1.0496405295401565e-4,-3.507665669286638e-5,-9.180172150801203e-9,-1.0464618835727268e-4,-3.506655725701059e-5,-9.184939032839345e-9,-1.0429252092118758e-4,-3.500030193581135e-5,-9.187495988674884e-9,-1.039261276946598e-4,-3.48637823947789e-5,-9.186800523449334e-9,-1.0357615793353864e-4,-3.46536541858101e-5,-9.182170455832e-9,-1.0327350441689744e-4,-3.4381246691956354e-5,-9.173580720955574e-9,-1.0304364939716516e-4,-3.4074253186413085e-5,-9.161923230549191e-9,-1.0289802766204464e-4,-3.3773697803369534e-5,-9.149039646343281e-9,-1.0282725778280255e-4,-3.3524929232600696e-5,-9.137394421723031e-9,-1.0280029662432293e-4,-3.336441855594974e-5,-9.129418606410994e-9,-1.0277162008556858e-4,-3.3307298589755e-5,-9.126750143428798e-9,-1.0269452672034878e-4,-3.334132380659976e-5,-9.129679824022376e-9,-1.0253530901109662e-4,-3.3430128766657056e-5,-9.137028969170211e-9,-1.0228281327026914e-4,-3.352418168582912e-5,-9.146483951023313e-9,-1.0195058478501845e-4,-3.357486167811767e-5,-9.155243273725392e-9,-1.0157200536431759e-4,-3.354696552794696e-5,-9.160762004820197e-9,-1.0119077576295845e-4,-3.3426523116505044e-5,-9.161389983981338e-9,-1.0084972538708518e-4,-3.322258471680729e-5,-9.1567428994038e-9,-1.0058085340582454e-4,-3.296319855077416e-5,-9.1477233287177e-9,-1.0039895151362752e-4,-3.268715204906611e-5,-9.13620386476633e-9,-1.0030009479870362e-4,-3.243403248359135e-5,-9.124482475916777e-9,-1.0026481761500761e-4,-3.2235448634192776e-5,-9.114685797381227e-9,-1.002643617789796e-4,-3.210959204158094e-5,-9.108299298278605e-9,-1.0026767382911762e-4,-3.205986487873324e-5,-9.105941746310106e-9,-1.0024717983614368e-4,-3.207681406252085e-5,-9.107401083971613e-9,-1.0018239318013028e-4,-3.214184576455504e-5,-9.111860642617299e-9,-1.0006142614792553e-4,-3.223125875718116e-5,-9.118191582072067e-9,-9.988108258667136e-5,-3.2319691729833556e-5,-9.1251948611398e-9,-9.964632646321523e-5,-3.238278403756544e-5,-9.131729422340635e-9,-9.936964829441685e-5,-3.239938756272473e-5,-9.136742201877834e-9,-9.907040628933112e-5,-3.2353857807257145e-5,-9.139278262243717e-9,-9.877374852922494e-5,-3.22388541842853e-5,-9.138569270716463e-9,-9.850827687016545e-5,-3.2058685656720396e-5,-9.13425646517205e-9,-9.830143939364078e-5,-3.1832365719454527e-5,-9.126703455871307e-9,-9.817223068137955e-5,-3.159432274657247e-5,-9.117234559865558e-9,-9.812252419680496e-5,-3.138997708142053e-5,-9.108071823699427e-9,-9.813089016549055e-5,-3.126452109365012e-5,-9.10182146027846e-9,-9.815412222958905e-5,-3.124710157480261e-5,-9.100604093125194e-9,-9.813914491830552e-5,-3.1337456387429606e-5,-9.105211374499513e-9,-9.804153498796248e-5,-3.150322611607172e-5,-9.11475449547984e-9,-9.784154686536156e-5,-3.1690737195221436e-5,-9.127000792101932e-9,-9.754967528636868e-5,-3.1843765894223964e-5,-9.139172281973027e-9,-9.720055366819144e-5,-3.192085559051927e-5,-9.148776150107598e-9,-9.684015327249356e-5,-3.1904655488520306e-5,-9.154172659673398e-9,-9.651257696551535e-5,-3.180236177111936e-5,-9.154822358487452e-9,-9.62504127431069e-5,-3.163996841124646e-5,-9.151274976782774e-9,-9.60698168291565e-5,-3.145374077091899e-5,-9.144961054288212e-9,-9.596984265486474e-5,-3.128151423757891e-5,-9.137828523893096e-9,-9.593497386265119e-5,-3.115537334164327e-5,-9.131885483864583e-9,-9.593976606922285e-5,-3.109656681303233e-5,-9.128751308860314e-9,-9.595447136657913e-5,-3.111310201829616e-5,-9.129337933414458e-9,-9.595049936624177e-5,-3.119999178987712e-5,-9.133745810921736e-9,-9.590477548725535e-5,-3.134160856925637e-5,-9.141380171958168e-9,-9.580246226255177e-5,-3.151529116825042e-5,-9.151211708597388e-9,-9.563797539391283e-5,-3.16952830703858e-5,-9.162060481302314e-9,-9.541467373049275e-5,-3.185625961327806e-5,-9.172796825714589e-9,-9.514380915860319e-5,-3.197615493895167e-5,-9.182419310694514e-9,-9.48431552537596e-5,-3.2038443093745316e-5,-9.190051974883061e-9,-9.453543133902659e-5,-3.2034182987011704e-5,-9.194952520053085e-9,-9.424633486772374e-5,-3.1964113362905855e-5,-9.19662086089252e-9,-9.400158823504068e-5,-3.18408340759899e-5,-9.195038235111904e-9,-9.382220633420554e-5,-3.169033305608827e-5,-9.19095818861579e-9,-9.371778135278529e-5,-3.155104568024974e-5,-9.186065400464665e-9,-9.367914980804929e-5,-3.1468046822899884e-5,-9.182785199579648e-9,-9.367412170350315e-5,-3.1480918711509026e-5,-9.183626205872267e-9,-9.365156347345576e-5,-3.160755715402989e-5,-9.19020294586336e-9,-9.355668865963729e-5,-3.183175941432533e-5,-9.202419571888166e-9,-9.335267713728581e-5,-3.210430056471749e-5,-9.218371347956345e-9,-9.303667906521569e-5,-3.236020861117679e-5,-9.235103819495216e-9,-9.264032211325917e-5,-3.2543385860012626e-5,-9.249755228307922e-9,-9.221548591093086e-5,-3.262483810785695e-5,-9.26041652356236e-9,-9.181507378196565e-5,-3.260698117914955e-5,-9.266413523353581e-9,-9.147845491400025e-5,-3.251632942914815e-5,-9.268166415699002e-9,-9.122520847559706e-5,-3.239154168921172e-5,-9.266889513425695e-9,-9.105564635912965e-5,-3.227244723700269e-5,-9.2642646836748e-9,-9.095498913811478e-5,-3.219240887699171e-5,-9.262101784399266e-9,-9.08987318910297e-5,-3.217406213098664e-5,-9.261994204243429e-9,-9.085793054099272e-5,-3.222762121230062e-5,-9.265019829464496e-9,-9.080392835417925e-5,-3.2351052738033134e-5,-9.271567916967034e-9,-9.071228168806134e-5,-3.253168391369461e-5,-9.28134185774094e-9,-9.056569168800201e-5,-3.2748874236925676e-5,-9.293522462109239e-9,-9.035578936575062e-5,-3.297739074658915e-5,-9.307015941925984e-9,-9.008365802729651e-5,-3.319108369388331e-5,-9.32068773621464e-9,-8.975916266917992e-5,-3.336636099032471e-5,-9.33350717957054e-9,-8.939940883763627e-5,-3.348509546284864e-5,-9.344592008056796e-9,-8.902663953210632e-5,-3.353691102753202e-5,-9.353211946825554e-9,-8.866569313938621e-5,-3.352090126483869e-5,-9.35883336145802e-9,-8.834103551839693e-5,-3.3446806313605515e-5,-9.361261938630803e-9,-8.807317448099914e-5,-3.333560303798455e-5,-9.360872293875294e-9,-8.787408489854848e-5,-3.321895898344246e-5,-9.35881896249169e-9,-8.774178162211213e-5,-3.313618048205553e-5,-9.357051719661311e-9,-8.765551941425548e-5,-3.312704407820512e-5,-9.357971217288903e-9,-8.75747733839315e-5,-3.3219976944643985e-5,-9.363691049098633e-9,-8.74461410016907e-5,-3.341812218722618e-5,-9.375114762347986e-9,-8.7220065678816e-5,-3.3690479945789706e-5,-9.391311854138805e-9,-8.687212463896635e-5,-3.397702246395055e-5,-9.409699673510456e-9,-8.641654285989432e-5,-3.420979174434094e-5,-9.427069578077248e-9,-8.590181922728967e-5,-3.433967242416912e-5,-9.440848661633535e-9,-8.539061620032401e-5,-3.435314501297649e-5,-9.44984340985916e-9,-8.493672097339013e-5,-3.4271269582614564e-5,-9.454233252297501e-9,-8.45709727893319e-5,-3.413584988272384e-5,-9.45513539359531e-9,-8.429907159057472e-5,-3.399315338192215e-5,-9.454135610822126e-9,-8.410710066635141e-5,-3.388222278476255e-5,-9.452932691116559e-9,-8.39694300761685e-5,-3.382927951155617e-5,-9.453065287658341e-9,-8.385576288840835e-5,-3.384661045247159e-5,-9.455682021020762e-9,-8.373632656338405e-5,-3.39337961074905e-5,-9.461372860972362e-9,-8.358545827544782e-5,-3.407987563331084e-5,-9.470111676055729e-9,-8.338408132706894e-5,-3.426590539557689e-5,-9.481331913003121e-9,-8.312136430352067e-5,-3.446778153328366e-5,-9.494105686910258e-9,-8.279564587432089e-5,-3.465932720987703e-5,-9.507355644814983e-9,-8.241450667287213e-5,-3.481564090403858e-5,-9.520030613693909e-9,-8.19937854235765e-5,-3.491646452503521e-5,-9.531207314372736e-9,-8.155553782746594e-5,-3.494912799250977e-5,-9.540129776878508e-9,-8.112514759519504e-5,-3.491073158250606e-5,-9.546243568285508e-9,-8.072780222779476e-5,-3.480934834136822e-5,-9.549283156140592e-9,-8.038456389393579e-5,-3.466401475530754e-5,-9.549426224657887e-9,-8.010831362600719e-5,-3.450333338545574e-5,-9.54746360191402e-9,-7.989980971585162e-5,-3.4362440274271346e-5,-9.544875278633311e-9,-7.974437782718713e-5,-3.427773727254322e-5,-9.543676237437192e-9,-7.961061805952735e-5,-3.427884237468908e-5,-9.545950110564333e-9,-7.945341861300056e-5,-3.437837958684637e-5,-9.553132576768602e-9,-7.922353858236074e-5,-3.456254513569184e-5,-9.56529984876067e-9,-7.888371631202135e-5,-3.478810345141471e-5,-9.580865713138687e-9,-7.842594949679023e-5,-3.499174125974583e-5,-9.597013547859506e-9,-7.787972052612896e-5,-3.5111823238104886e-5,-9.61077091176288e-9,-7.730339317992335e-5,-3.5112654366270275e-5,-9.620133730535203e-9,-7.676190727235558e-5,-3.4997103078953485e-5,-9.624598331243174e-9,-7.630368913524509e-5,-3.480106932702219e-5,-9.62496228087358e-9,-7.594864786183333e-5,-3.457584341541249e-5,-9.622755990773589e-9,-7.568955618661085e-5,-3.4369955647098174e-5,-9.619710536672963e-9,-7.550120699012476e-5,-3.4218070735318946e-5,-9.617407235355379e-9,-7.53506844299028e-5,-3.4137703834965904e-5,-9.617061902570326e-9,-7.520512620818642e-5,-3.4130887726558557e-5,-9.619389347609227e-9,-7.503635353608889e-5,-3.4187713250424024e-5,-9.624544759331411e-9,-7.482323554456231e-5,-3.4289930549698735e-5,-9.63216195796353e-9,-7.455284746952063e-5,-3.441408243113663e-5,-9.641484197830746e-9,-7.422104933606681e-5,-3.4534311144901265e-5,-9.651545196785234e-9,-7.383266982034839e-5,-3.4625139821498456e-5,-9.661340808730684e-9,-7.340115252227199e-5,-3.466447763315732e-5,-9.669951148188559e-9,-7.29472860281118e-5,-3.4636811794840895e-5,-9.676610258024069e-9,-7.249670181575391e-5,-3.453612755069931e-5,-9.680751536488109e-9,-7.207617225320659e-5,-3.436789907206864e-5,-9.682071150846721e-9,-7.170907254595313e-5,-3.414954611457939e-5,-9.680633872207702e-9,-7.141062395474628e-5,-3.39088790257861e-5,-9.676997430229804e-9,-7.118375946617258e-5,-3.3680346460547944e-5,-9.672282908069223e-9,-7.101650731517465e-5,-3.349931488623629e-5,-9.668098481187566e-9,-7.088172523947388e-5,-3.33948756399492e-5,-9.666247026220778e-9,-7.074007291564022e-5,-3.3381977619494795e-5,-9.668224096412342e-9,-7.054706001923604e-5,-3.345448175111133e-5,-9.674640120668145e-9,-7.026421186175586e-5,-3.358188659485631e-5,-9.68481262676929e-9,-6.987236648803186e-5,-3.371310919852034e-5,-9.69679586348801e-9,-6.938216497629712e-5,-3.3789366876241454e-5,-9.707962916374584e-9,-6.883511643281062e-5,-3.376368965928737e-5,-9.715940864866819e-9,-6.829161852117123e-5,-3.3618736578177726e-5,-9.719434092883315e-9,-6.781005922500603e-5,-3.337302815858778e-5,-9.718519685799377e-9,-6.742756648217968e-5,-3.307197650765509e-5,-9.714369050431293e-9,-6.715167109481134e-5,-3.276964162612763e-5,-9.70868572509175e-9,-6.696431540140377e-5,-3.251149483555875e-5,-9.703181489926008e-9,-6.683272014943683e-5,-3.23249804831107e-5,-9.699229967536756e-9,-6.672046595425307e-5,-3.221830593712131e-5,-9.69768646622021e-9,-6.659514882482948e-5,-3.218413792480631e-5,-9.69883261424372e-9,-6.643222102070501e-5,-3.2204715407059465e-5,-9.702422223220024e-9,-6.621623206383647e-5,-3.225639014403438e-5,-9.707811412099236e-9,-6.594084229704343e-5,-3.231307689206832e-5,-9.714134303646899e-9,-6.560847130759857e-5,-3.234892257240772e-5,-9.720473000120565e-9,-6.522984548096849e-5,-3.2340745725612146e-5,-9.725978398839142e-9,-6.482324202400488e-5,-3.227068092840828e-5,-9.72993539962299e-9,-6.441292964570893e-5,-3.212909927557402e-5,-9.731798587080863e-9,-6.402628163536215e-5,-3.1917364877182857e-5,-9.731239839313383e-9,-6.368937200887575e-5,-3.164953586182567e-5,-9.728232443086724e-9,-6.342148728367543e-5,-3.135192586641782e-5,-9.723155862069091e-9,-6.3229704409613e-5,-3.105968506127635e-5,-9.716864968224381e-9,-6.310518395759158e-5,-3.081035792541784e-5,-9.710646408580894e-9,-6.302274843342547e-5,-3.0635492967811876e-5,-9.706009068758345e-9,-6.294459210654977e-5,-3.055226083848084e-5,-9.704313675315504e-9,-6.282790628516361e-5,-3.0557342633427204e-5,-9.706329094269245e-9,-6.263513206345579e-5,-3.062513212686725e-5,-9.711875217337033e-9]} \ No newline at end of file diff --git a/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json new file mode 100644 index 00000000..76c3a68e --- /dev/null +++ b/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":9000,"numberOfSamples":1000,"samples":[-6.23446137633139e-5,-3.071164556992463e-5,-9.719731332151204e-9,-6.19586809157847e-5,-3.076438157665265e-5,-9.727914890125598e-9,-6.150587794551883e-5,-3.073654937098242e-5,-9.734280833128142e-9,-6.1034943329782044e-5,-3.060168191808949e-5,-9.737216476929997e-9,-6.0601038606681665e-5,-3.036287029042388e-5,-9.736134809126074e-9,-6.024888746053323e-5,-3.0051869736974383e-5,-9.731565682588457e-9,-5.999994090928063e-5,-2.971789522758825e-5,-9.724862066857019e-9,-5.9848834314815545e-5,-2.9411354882677176e-5,-9.71770907732456e-9,-5.976923198886019e-5,-2.916989718887004e-5,-9.711648469978378e-9,-5.972462316432335e-5,-2.9011586735457638e-5,-9.707751149758674e-9,-5.967870819510338e-5,-2.8935387308633597e-5,-9.70647628370283e-9,-5.9602228253192676e-5,-2.89259970676844e-5,-9.707695687073557e-9,-5.947591112549622e-5,-2.8959747148304846e-5,-9.710838540242717e-9,-5.929077173354268e-5,-2.9009608654381066e-5,-9.715094525623705e-9,-5.904719567985657e-5,-2.9048773862964067e-5,-9.71960852884578e-9,-5.8753773367436014e-5,-2.9053136374370507e-5,-9.72361187781754e-9,-5.842624685184096e-5,-2.9003338061866847e-5,-9.726475623750488e-9,-5.8086360356536405e-5,-2.8886966009567993e-5,-9.727714468149827e-9,-5.776002754298137e-5,-2.870105742876016e-5,-9.726995392498005e-9,-5.74741651198525e-5,-2.845449366073143e-5,-9.72419549652686e-9,-5.725183467800746e-5,-2.8169256139263426e-5,-9.71951151762819e-9,-5.7106100541113594e-5,-2.7879041181757347e-5,-9.713564114276547e-9,-5.7034227249689176e-5,-2.7623923778951554e-5,-9.707405962417725e-9,-5.7014849044397024e-5,-2.744114170465607e-5,-9.702361282140308e-9,-5.701050918052841e-5,-2.735425399096375e-5,-9.699698830847758e-9,-5.697609718243167e-5,-2.7364576162975244e-5,-9.700232368303819e-9,-5.6871038817050416e-5,-2.7448633497066595e-5,-9.704002376450864e-9,-5.667116781282969e-5,-2.7563221973356075e-5,-9.710182005555758e-9,-5.637617678776307e-5,-2.765667320675218e-5,-9.717264987992663e-9,-5.601027591624169e-5,-2.7682736375781414e-5,-9.723480590272698e-9,-5.561600483675091e-5,-2.7612936285683867e-5,-9.727297528384073e-9,-5.524303937361784e-5,-2.7443956618506687e-5,-9.727850312943274e-9,-5.493513840003189e-5,-2.7197955922928915e-5,-9.725154651913568e-9,-5.471906725691787e-5,-2.6915691607899557e-5,-9.72005407261872e-9,-5.4598911019501836e-5,-2.6644703453075705e-5,-9.713934027115233e-9,-5.455730383150816e-5,-2.64266189741069e-5,-9.708311206523093e-9,-5.4562420129529145e-5,-2.6287768574123053e-5,-9.704433569738843e-9,-5.457752704343605e-5,-2.623553492658023e-5,-9.703008653848694e-9,-5.456957532646678e-5,-2.6260220049275858e-5,-9.704121931504624e-9,-5.451464446828428e-5,-2.6340246599419492e-5,-9.707335422027123e-9,-5.439995050230707e-5,-2.6448131932234545e-5,-9.711898924726039e-9,-5.422339633670513e-5,-2.6555532499365036e-5,-9.716981565914689e-9,-5.399194066121386e-5,-2.663678226094542e-5,-9.721842938139277e-9,-5.37197431734721e-5,-2.667116151947731e-5,-9.725902670942154e-9,-5.342650643560834e-5,-2.6644534881516494e-5,-9.728727486336505e-9,-5.313587618209729e-5,-2.655097739679037e-5,-9.729995225631237e-9,-5.287334596399925e-5,-2.639462790136861e-5,-9.72950469114869e-9,-5.266297173036476e-5,-2.619143036945524e-5,-9.727266597271218e-9,-5.252243553464907e-5,-2.596971389861331e-5,-9.723645863256587e-9,-5.245681707745194e-5,-2.5767877042401753e-5,-9.719459836489783e-9,-5.245295661436816e-5,-2.562748717562385e-5,-9.715914975816248e-9,-5.247784135201871e-5,-2.558182145120203e-5,-9.714321344765071e-9,-5.248433005910525e-5,-2.5643167778965002e-5,-9.71565414605581e-9,-5.242443255043768e-5,-2.5794981125069657e-5,-9.720157774265109e-9,-5.2265507859568556e-5,-2.599424952537427e-5,-9.727205074415084e-9,-5.200192042456586e-5,-2.6184413784918434e-5,-9.735490249337039e-9,-5.165673914621095e-5,-2.6313264574752945e-5,-9.743443035999223e-9,-5.127351919687404e-5,-2.6348054742647138e-5,-9.749667801257827e-9,-5.0902725125982576e-5,-2.6282713166082426e-5,-9.75326720347049e-9,-5.0588284184408174e-5,-2.6136491038281e-5,-9.754009356253531e-9,-5.0357993370069754e-5,-2.5946393683606597e-5,-9.752342082004198e-9,-5.0219232993974796e-5,-2.5756667981670227e-5,-9.749262933352734e-9,-5.015982106504244e-5,-2.5608303159542794e-5,-9.746061951023208e-9,-5.0152906269271166e-5,-2.5530759317958693e-5,-9.743991748123502e-9,-5.016424167598713e-5,-2.5537314473559887e-5,-9.743957229389409e-9,-5.015987799753719e-5,-2.5624510658344092e-5,-9.746324283706057e-9,-5.011244865581866e-5,-2.5775123374663638e-5,-9.750904754883811e-9,-5.000492623338741e-5,-2.596321755352963e-5,-9.757101352467545e-9,-4.9831698223674514e-5,-2.6159651038122543e-5,-9.764134932390347e-9,-4.959756293540752e-5,-2.6336794409959954e-5,-9.77125471218565e-9,-4.9315586018946434e-5,-2.6471880876366733e-5,-9.777857341227311e-9,-4.900467765247903e-5,-2.6549048296052148e-5,-9.78350042703132e-9,-4.868733505302663e-5,-2.6560573645593127e-5,-9.787854781108205e-9,-4.8387507995782974e-5,-2.6507830841147043e-5,-9.790671063781774e-9,-4.812820015775109e-5,-2.640221991296037e-5,-9.791823659827242e-9,-4.792822925558667e-5,-2.626586053182433e-5,-9.791440657019166e-9,-4.7797688235235664e-5,-2.6131146731513124e-5,-9.790058210807481e-9,-4.7732434736905576e-5,-2.603750245204811e-5,-9.788680030956192e-9,-4.770949127982192e-5,-2.602362103765612e-5,-9.788622629016349e-9,-4.768699088683465e-5,-2.6115132800391774e-5,-9.791115783371455e-9,-4.7612514838547504e-5,-2.6311416798164514e-5,-9.796791594098938e-9,-4.744004786748611e-5,-2.6579162837951064e-5,-9.805340798551625e-9,-4.714894275327642e-5,-2.68596183979786e-5,-9.81558384504337e-9,-4.675409408145582e-5,-2.7088789244523173e-5,-9.82593563524379e-9,-4.63007016373858e-5,-2.7220538865820394e-5,-9.834966162719081e-9,-4.584698755933853e-5,-2.7240537539346205e-5,-9.841756608580806e-9,-4.544489497457328e-5,-2.716612358051693e-5,-9.845989371386469e-9,-4.512720869220526e-5,-2.7035870592725035e-5,-9.847894204339548e-9,-4.490350340869352e-5,-2.6895966227287968e-5,-9.848150476851382e-9,-4.4762813526265216e-5,-2.6788619054627426e-5,-9.847749002642056e-9,-4.467974944751262e-5,-2.6744535726717833e-5,-9.847788854326644e-9,-4.4621551529998665e-5,-2.67793858092927e-5,-9.849227199555758e-9,-4.4554711427458415e-5,-2.6893402551401513e-5,-9.852654250504786e-9,-4.445048423814215e-5,-2.7073346152810357e-5,-9.858177344922723e-9,-4.428881976659844e-5,-2.7296183901073322e-5,-9.865455416384905e-9,-4.406041691263042e-5,-2.753370714423536e-5,-9.873857188997167e-9,-4.376691930956634e-5,-2.7757247847319554e-5,-9.882664459772306e-9,-4.3419538053046194e-5,-2.7941805347373132e-5,-9.891234414250543e-9,-4.303660454191013e-5,-2.8069095603610774e-5,-9.899069051818642e-9,-4.264069174434751e-5,-2.8129368229640377e-5,-9.90579879900749e-9,-4.2255769073996823e-5,-2.8122238695490774e-5,-9.911139409555858e-9,-4.1904486407320275e-5,-2.8056896725693683e-5,-9.914892497705433e-9,-4.160543814119917e-5,-2.7951878164291356e-5,-9.9170275201943e-9,-4.137010911506443e-5,-2.783431847991674e-5,-9.917825281106567e-9,-4.119921521788755e-5,-2.7738086497587085e-5,-9.917998408072091e-9,-4.107878264055179e-5,-2.769954625238172e-5,-9.91867215364473e-9,-4.097763615938715e-5,-2.7749689768273665e-5,-9.921139370467895e-9,-4.0849404904229084e-5,-2.7902797854934692e-5,-9.926407792259145e-9,-4.0642441010064514e-5,-2.8145057541786642e-5,-9.934713814169385e-9,-4.031787237599612e-5,-2.8430538779043658e-5,-9.945298702787681e-9,-3.9868810330146976e-5,-2.8691908882654146e-5,-9.9566665170196e-9,-3.932833565054289e-5,-2.8864961803409028e-5,-9.967212572062042e-9,-3.875854394725441e-5,-2.891437192128338e-5,-9.975808367109482e-9,-3.822616913640833e-5,-2.8845330760606945e-5,-9.98201180056612e-9,-3.777943806979286e-5,-2.869613572190929e-5,-9.98594693625295e-9,-3.743725664498184e-5,-2.8519754654329504e-5,-9.98810862349428e-9,-3.719134397363045e-5,-2.8366020937962917e-5,-9.989234069973608e-9,-3.701525587842487e-5,-2.8270836040562245e-5,-9.99020103086058e-9,-3.6874340673262915e-5,-2.8252557552493445E-05,-9.991881928374356e-9,-3.6733633947777075e-5,-2.831302992680173e-5,-9.994958846882884e-9,-3.656313374093195e-5,-2.844073037686516e-5,-9.999766501751608e-9,-3.634100881655143e-5,-2.8614561011922926e-5,-1.000623541918002e-8,-3.605533964519792e-5,-2.8807801587885512e-5,-1.0013957531492734e-8,-3.570465334841229e-5,-2.8992079074828512e-5,-1.0022338457116705e-8,-3.529734816247884e-5,-2.914116709250595e-5,-1.0030762046344616e-8,-3.485006993645185e-5,-2.92343805861204e-5,-1.0038702615702036e-8,-3.4385142229079815e-5,-2.9259238226273796e-5,-1.0045757091094494e-8,-3.3927359255493513e-5,-2.9213049460563632e-5,-1.0051621058011619e-8,-3.350058407226353e-5,-2.9103332940466208e-5,-1.0056066702504657e-8,-3.3124457063630464e-5,-2.8947189972084985e-5,-1.0058976990550987e-8,-3.2811366323358286e-5,-2.8769735723801098e-5,-1.0060445345746964e-8,-3.256375787328263e-5,-2.8601623226662544e-5,-1.0060897143616392e-8,-3.2371816097269846e-5,-2.8475488693954947e-5,-1.0061145174295647e-8,-3.221189052935458e-5,-2.842075314931494e-5,-1.0062287880142022e-8,-3.204694100578321e-5,-2.8456309260332803e-5,-1.0065415316236122e-8,-3.183109485034811e-5,-2.8581804503757855e-5,-1.007118993199182e-8,-3.152026648812525e-5,-2.877048997646703e-5,-1.0079484318373714e-8,-3.108835216793204e-5,-2.8969238348406404e-5,-1.0089312218910324e-8,-3.0542974461299724e-5,-2.911131486583659e-5,-1.0099182540644034e-8,-2.992994780628945e-5,-2.9140766616140142e-5,-1.0107715115987456e-8,-2.9319253695152042e-5,-2.9036541761832005e-5,-1.0114124886146775e-8,-2.877809393386789e-5,-2.8820960229194144e-5,-1.0118307228329601e-8,-2.8346852894650365e-5,-2.8547443251060635e-5,-1.0120625267983092e-8,-2.803055359693186e-5,-2.8277133796314353e-5,-1.0121677071264258e-8,-2.7805852942645365e-5,-2.8058810315545394e-5,-1.0122171969069935e-8,-2.7634885870697304e-5,-2.7919586021142028e-5,-1.0122851241518537e-8,-2.7477784344898564e-5,-2.7865136011979794e-5,-1.0124374041290903e-8,-2.73005681768325e-5,-2.788470342701019e-5,-1.0127178785398857e-8,-2.707876938176712e-5,-2.7957027015369363e-5,-1.0131386580299943e-8,-2.6798428484780897e-5,-2.8055381987984983e-5,-1.0136799525049531e-8,-2.6455880523470634e-5,-2.8151496961065997e-5,-1.0142993650083491e-8,-2.6056989964450905e-5,-2.8218751221123247e-5,-1.0149458252670142e-8,-2.5615936366383297e-5,-2.82350089513246e-5,-1.0155717100330529e-8,-2.5153423477268736e-5,-2.8185218808561722e-5,-1.0161389371918144e-8,-2.469410784372093e-5,-2.80636100261117e-5,-1.0166188348621973e-8,-2.426321414819864e-5,-2.787501653366006e-5,-1.0169893731105325e-8,-2.3882668480529245e-5,-2.763487038497263e-5,-1.01723489245492e-8,-2.3567286234310905e-5,-2.7367666919278267e-5,-1.017351616196784e-8,-2.332156842397692e-5,-2.7103905438103306e-5,-1.017357593949472e-8,-2.3137641969046203e-5,-2.6875705732266855e-5,-1.0173013410180529e-8,-2.299476051584912e-5,-2.6711500845227497E-05,-1.017261329344951e-8,-2.2860705750699917e-5,-2.663018704620786e-5,-1.0173308322342749e-8,-2.2695665047880168e-5,-2.663518611623227e-5,-1.017589092482202e-8,-2.2459337873909423e-5,-2.6709603552242226e-5,-1.0180685150351775e-8,-2.212140867809451e-5,-2.6814846177850375e-5,-1.0187337375833014e-8,-2.1673671732367735e-5,-2.6895869468464378e-5,-1.0194873028803975e-8,-2.1139047774474032e-5,-2.68952440266726e-5,-1.0202044877588625e-8,-2.0570501852735378e-5,-2.6773653165214853e-5,-1.0207808391111026e-8,-2.0035779945461135e-5,-2.6527596262472074e-5,-1.0211650200164242e-8,-1.95929968856085e-5,-2.6192859779762135e-5,-1.0213616507492086e-8,-1.9270119523824262e-5,-2.5830075681245798e-5,-1.021413380368983e-8,-1.905933904298975e-5,-2.5500927912146165e-5,-1.021381348729072e-8,-1.892657043021345e-5,-2.5248592103061754e-5,-1.0213321886218076e-8,-1.8827443033921196e-5,-2.5090146839981592e-5,-1.0213277816654462e-8,-1.8720869387209668e-5,-2.5019585350191788e-5,-1.0214142627298827e-8,-1.8576464284264876e-5,-2.5015668692887527e-5,-1.0216127260583814e-8,-1.8376611843414558e-5,-2.504980617624261e-5,-1.0219166169699748e-8,-1.8115567499788158e-5,-2.5091878000311348e-5,-1.022297593256864e-8,-1.77975879404375e-5,-2.511396168920078e-5,-1.0227169183059294e-8,-1.743505293856026e-5,-2.5092754555130803e-5,-1.0231368833090536e-8,-1.7046707371919865e-5,-2.5011456803880348e-5,-1.0235274298180084e-8,-1.6655740859370975e-5,-2.4861532084328557e-5,-1.023866489114029e-8,-1.6287282974612118e-5,-2.464432330060455e-5,-1.0241365206381334e-8,-1.596501252310151e-5,-2.4372025169081737e-5,-1.024321801882643e-8,-1.570702113141324e-5,-2.406725812436014e-5,-1.0244103967347291e-8,-1.552160951313559e-5,-2.376063009939192e-5,-1.0244017040254267e-8,-1.5404061827608693e-5,-2.3486101581026236e-5,-1.0243161489551215e-8,-1.5335535519959935e-5,-2.327460877469775e-5,-1.0242006517918706e-8,-1.5284891552236783e-5,-2.314712391361825e-5,-1.0241237021644048e-8,-1.5213603604440276e-5,-2.3108728191468194e-5,-1.0241580512137116e-8,-1.5083201808082548e-5,-2.3145172717351075e-5,-1.0243555303704379e-8,-1.4864218209902013e-5,-2.32231622645874e-5,-1.0247243960115732e-8,-1.4545036900022462e-5,-2.3295366098052616e-5,-1.0252208937023976e-8,-1.4138251105215157e-5,-2.3310524416851092e-5,-1.0257614027791928e-8,-1.368146422366092e-5,-2.322748601135849e-5,-1.0262512342819018e-8,-1.322989051622768e-5,-2.3029486169829173e-5,-1.0266164007946504e-8,-1.2840855736179594e-5,-2.2732545405069593e-5,-1.0268236392507776e-8,-1.2555169579427251e-5,-2.238231187733215e-5,-1.0268825150242116e-8,-1.2383914527037539e-5,-2.2038912589209548e-5,-1.0268347802691693e-8,-1.2307249887307113e-5,-2.1756613087809175e-5,-1.0267393640885903e-8,-1.2284812012886326e-5,-2.156813016555327e-5,-1.0266572608916944e-8,-1.2270971936084373e-5,-2.1479552451146128e-5,-1.0266376938115249e-8,-1.2227457536302338e-5,-2.1474911265539056e-5,-1.0267077590847187e-8,-1.2129749205895953e-5,-2.1525263563921737e-5,-1.0268689111523196e-8,-1.1967892292312714e-5,-2.1597450054922837e-5,-1.0271017429226725e-8,-1.174422548889918e-5,-2.166023896731968e-5,-1.0273764819876203e-8,-1.1470257655664928e-5,-2.1687790859828148e-5,-1.0276640831595281e-8,-1.1163872918540682e-5,-2.16613873970703e-5,-1.0279429528370393e-8,-1.0847087574647729e-5,-2.1570437594962387e-5,-1.0281991235380007e-8,-1.0544002989509588e-5,-2.141339145539365e-5,-1.0284216045362617e-8,-1.0278390240021108e-5,-2.1198652865103365e-5,-1.0285974464584003e-8,-1.0070447996162899e-5,-2.0945037086426453e-5,-1.028711043152021e-8,-9.932690801530476e-6,-2.068088652200719e-5,-1.028749799157689e-8,-9.86563644678306e-6,-2.0440844298465255e-5,-1.0287141168707594e-8,-9.854764583517574e-6,-2.0259766952748523e-5,-1.028626273479879e-8,-9.870619619233569e-6,-2.01644508838674e-5,-1.0285319481300823e-8,-9.8733786193769e-6,-2.0165339281957866e-5,-1.0284908068411034e-8,-9.821625784056985e-6,-2.0251252759600633e-5,-1.0285579389915266e-8,-9.683168074476673e-6,-2.0389683901633625e-5,-1.0287635145367275e-8,-9.444561568473699e-6,-2.053338593781372e-5,-1.0290997813059452e-8,-9.116224347150207e-6,-2.063177957102368e-5,-1.0295216467786993e-8,-8.731339354531077e-6,-2.0644132770129046e-5,-1.0299605534523448e-8,-8.338457137712565e-6,-2.055092931652111e-5,-1.030345694288755e-8,-7.98933323349338e-6,-2.0360097137701205e-5,-1.0306242488373733e-8,-7.72506620945875e-6,-2.0105711184980106e-5,-1.0307743277604975e-8,-7.564775484823967e-6,-1.983876173135379e-5,-1.0308080804889762e-8,-7.500921681843046e-6,-1.9612526930376168e-5,-1.0307656350511951e-8,-7.503139782780013e-6,-1.946768074753192e-5,-1.0307019062928134e-8,-7.528820005869814e-6,-1.9422601531502887e-5,-1.0306699910081859e-8,-7.535794278292598e-6,-1.947177763761887e-5,-1.0307063665786794e-8,-7.492269894596984e-6,-1.959128917115925e-5,-1.0308233957531626e-8,-7.381486721375345e-6,-1.974765598713154e-5,-1.0310113143840973e-8,-7.201498312177095e-6,-1.990624677978869e-5,-1.031247670749912e-8,-6.962107167616799e-6,-2.0037161470478344e-5,-1.031508699283958e-8,-6.680993863389137e-6,-2.011834907841151e-5,-1.0317770097194946e-8,-6.380273436048308e-6,-2.0136768138740442e-5,-1.032042648831648e-8,-6.0838277247680745e-6,-2.0088636779103125e-5,-1.0322983928965702e-8,-5.815108860030673e-6,-1.9979521669310532e-5,-1.0325335032912242e-8,-5.594817165694961e-6,-1.9824453315227466e-5,-1.0327309582072665e-8,-5.437930590768389e-6,-1.9647685779100526e-5,-1.0328712972235372e-8,-5.349939383493514e-6,-1.948122710398913e-5,-1.0329423078834094e-8,-5.3228826376455855e-6,-1.936095973346019e-5,-1.0329498903693821e-8,-5.332864110333339e-6,-1.9319532507723174e-5,-1.0329235310495402e-8,-5.341522628441661e-6,-1.9376734531154476e-5,-1.0329117209882681e-8,-5.303353476159965e-6,-1.953039383977173e-5,-1.0329676054612896e-8,-5.17823507516099e-6,-1.9752454282041895e-5,-1.0331308373795825e-8,-4.945019491343102e-6,-1.9993909540435985e-5,-1.0334140752283602e-8,-4.610138350751177e-6,-2.019829297048899e-5,-1.0337995748268947e-8,-4.206914461260477e-6,-2.0318725218684748e-5,-1.0342450652703292e-8,-3.7858145479968068e-6,-2.033162353691172e-5,-1.0346947057188743e-8,-3.3999204340748854e-6,-2.0242322080569558e-5,-1.0350921705190584e-8,-3.090978422107698e-6,-2.0081863583639396e-5,-1.035394277316305e-8,-2.879939472361453e-6,-1.9897267305424163e-5,-1.0355827001534681e-8,-2.7637461044958318e-6,-1.9738805558921248e-5,-1.035669501194934e-8,-2.7182918430026305e-6,-1.9647845328083208e-5,-1.0356930437472887e-8,-2.706078182001334e-6,-1.964815539595743e-5,-1.0357046501868146e-8,-2.6861280184476436e-6,-1.9742416449230415e-5,-1.035751449251452e-8,-2.623356484294166e-6,-1.9914165200530054e-5,-1.0358627867133187e-8,-2.495051690997066e-6,-2.0133848461016657e-5,-1.0360457505484327e-8,-2.2933525948354025e-6,-2.0366613404506264e-5,-1.0362901596694904e-8,-2.024101506874866e-6,-2.057945330065126e-5,-1.036578541391425e-8,-1.703438490176005e-6,-2.0746243231691587e-5,-1.0368950180661795e-8,-1.353670649395772e-6,-2.085034603832491e-5,-1.0372285844231933e-8,-9.995092065925437e-7,-2.0885306200609506e-5,-1.0375703780683756e-8,-6.650892091385618e-7,-2.085449651147433e-5,-1.0379079635308058e-8,-3.715968940342627e-7,-2.0770428531116953e-5,-1.0382217349452199e-8,-1.3503446063713592e-7,-2.065397945826239e-5,-1.0384871607393536e-8,3.635039213145238e-8,-2.053328258334241e-5,-1.0386834569506982e-8,1.451554926153161e-7,-2.0441523455916053e-5,-1.038805057918194e-8,2.0789280435282035e-7,-2.041250688557186e-5,-1.0388697272151172e-8,2.56355366977416e-7,-2.047315309918241e-5,-1.0389176849844525e-8,3.3464806040304173e-7,-2.0633626967615144e-5,-1.039000389350313e-8,4.896682666698106e-7,-2.0878520990299207e-5,-1.0391635630909641e-8,7.558554175414243e-7,-2.1164864508976094e-5,-1.0394332164603972e-8,1.1400137473200676e-6,-2.143168146622313e-5,-1.039811235383832e-8,1.6149011662753742e-6,-2.161972150492724e-5,-1.040278944838272e-8,2.1267889603254867e-6,-2.169252145724684e-5,-1.0408016370122865e-8,2.613791080986166e-6,-2.1648099623553002e-5,-1.0413314414030032e-8,3.0255611796536674e-6,-2.1516600834236966e-5,-1.0418136661790554e-8,3.335896657502066e-6,-2.1347475609993867e-5,-1.0422008383847894e-8,3.5455028334495375e-6,-2.1193595706788387e-5,-1.0424695027343131e-8,3.6771057866818085e-6,-2.1098205117584193e-5,-1.0426297045670991e-8,3.766730983759074e-6,-2.1087212163472165e-5,-1.0427207186394536e-8,3.8543118584060025e-6,-2.116678673670468e-5,-1.0427955059979016e-8,3.97556153049034e-6,-2.1325112935168602e-5,-1.0429021553114722e-8,4.156112148298531e-6,-2.1536968915716497e-5,-1.043071137120023e-8,4.4083884967787636e-6,-2.1769858276116903e-5,-1.0433124870667529e-8,4.731238299426264e-6,-2.199039967092715e-5,-1.0436213182297564e-8,5.111871251593329e-6,-2.216982148981789e-5,-1.0439862617282118e-8,5.5293180610449155e-6,-2.228781360239789e-5,-1.0443951826756803e-8,5.958483105439134e-6,-2.2334471279948907e-5,-1.0448355486385057e-8,6.3739591557127685e-6,-2.2310548005592115e-5,-1.0452908274701619e-8,6.753167656295747e-6,-2.2226596306971968e-5,-1.0457371227043073e-8,7.0788641774440105e-6,-2.2101555638768476e-5,-1.0461442256004719e-8,7.341270437022586e-6,-2.19610250197676e-5,-1.0464828194753588e-8,7.540107011405848e-6,-2.18351220744106e-5,-1.0467357564690674e-8,7.686656069240698e-6,-2.1755428418429816e-5,-1.0469080980364281e-8,7.805377469636384e-6,-2.175014455624397e-5,-1.047029980195859e-8,7.933563002743403e-6,-2.1836872868918745e-5,-1.0471493607166954e-8,8.116719413656968e-6,-2.2013889674084526e-5,-1.0473170238320335e-8,8.397782946960609e-6,-2.2253242470900754e-5,-1.0475713376965965e-8,8.801167458084262e-6,-2.2501424654771112e-5,-1.0479313312473675e-8,9.31809147430383e-6,-2.2692544610459407e-5,-1.0483994091602052e-8,9.903277804372193e-6,-2.2771894060168208e-5,-1.0489651043077342e-8,1.0488693236733184e-5,-2.2718401944810526e-5,-1.0496011071352977e-8,1.1008517592282977e-5,-2.2552507598399298e-5,-1.0502567400688094e-8,1.14214527653244e-5,-2.2325484053898436e-5,-1.0508639692043991e-8,1.1719729539192924e-5,-2.2098427892878435e-5,-1.051360321451119e-8,1.192434757606461e-5,-2.192293983959106e-5,-1.0517149141774825e-8,1.2073148493867486e-5,-2.1830348879371115e-5,-1.0519399549919799e-8,1.2208507379845121e-5,-2.1829582167914723e-5,-1.0520823108331641e-8,1.2368142087573956e-5,-2.1910517424363665e-5,-1.0522026852220468e-8,1.2579647860001937e-5,-2.204963465047748e-5,-1.0523548294514526e-8,1.2858046046948135e-5,-2.2216044306126058e-5,-1.052573427092128e-8,1.3205504635807662e-5,-2.2377097194277054e-5,-1.0528728383253077e-8,1.3612660353343853e-5,-2.2503232700248113e-5,-1.0532528837699294e-8,1.4061128311368573e-5,-2.257179941745656e-5,-1.053705767622001e-8,1.4526835423976653e-5,-2.2569659248670465e-5,-1.0542194374134102e-8,1.4983796312142356e-5,-2.2494425657141477e-5,-1.0547763574333112e-8,1.5407831934948618e-5,-2.2354282969079747e-5,-1.0553504640982075e-8,1.5779770461427512e-5,-2.2166624359187616e-5,-1.0559067684047334e-8,1.608797482690634e-5,-2.195590135189993e-5,-1.0564065337397685e-8,1.6330245854374478e-5,-2.1750905552668204e-5,-1.0568177866410433e-8,1.6515130621988764e-5,-2.1581513602797013e-5,-1.0571271898841906e-8,1.6662595891771928e-5,-2.1474755707688038e-5,-1.0573475716392125e-8,1.680367989659793e-5,-2.144982680559584e-5,-1.0575164031555221e-8,1.6977991855744892e-5,-2.15119081550659e-5,-1.0576851619497795e-8,1.7227451460833117e-5,-2.164590037929872e-5,-1.0579043607594197e-8,1.758528349482335e-5,-2.1813063305720084e-5,-1.0582122319913347e-8,1.8061786594786307e-5,-2.1955189701945334e-5,-1.058632473338257e-8,1.8632948981106676e-5,-2.200995658499017e-5,-1.0591773118012249e-8,1.9241195983456193e-5,-2.193466323120593e-5,-1.0598445172373046e-8,1.981317133003406e-5,-2.1726452282952587e-5,-1.0606040069575834e-8,2.0287448616256157e-5,-2.1425281858291863e-5,-1.061388459734303e-8,2.0636332778655594e-5,-2.109672690297479e-5,-1.0621077002227759e-8,2.087033260256244e-5,-2.0805852875933422e-5,-1.0626847060734854e-8,2.1026869693195923e-5,-2.0597119217422514e-5,-1.0630882019558624e-8,2.115329294074093e-5,-2.0487273010198692e-5,-1.0633405474768798e-8,2.129300028400665e-5,-2.0468775249628576e-5,-1.0635008899056331e-8,2.1477766769687902e-5,-2.0517857674518222e-5,-1.0636384654839218e-8,2.172530639983127e-5,-2.0602735888928814e-5,-1.0638109815842078e-8,2.203989369531137e-5,-2.0690072956350867e-5,-1.0640550610319622e-8,2.2414327228279076e-5,-2.0749586688981025e-5,-1.0643876480653403e-8,2.2832428864176618e-5,-2.075731437602081e-5,-1.0648123545462657e-8,2.327186373709147e-5,-2.06979052512023e-5,-1.065324691100052e-8,2.370725263408254e-5,-2.056607264478361e-5,-1.065912813728469e-8,2.4113571523498897e-5,-2.0367140342581537e-5,-1.0665546197757955e-8,2.4469666599175597e-5,-2.011644324456059e-5,-1.067215081453571e-8,2.4761457155718238e-5,-1.9837455761494462e-5,-1.0678483547801098e-8,2.4984396740016067e-5,-1.9558825643028435e-5,-1.0684064625935296e-8,2.5144939672969598e-5,-1.9310587473940774e-5,-1.0688525639022025e-8,2.5260818881569855e-5,-1.9119802585786575e-5,-1.06917361236997e-8,2.535994562171527e-5,-1.9005914717674657e-5,-1.069386581323808e-8,2.5477696466233576e-5,-1.897609088271257e-5,-1.0695349149176802e-8,2.5652094341733997e-5,-1.902096367210599e-5,-1.0696767956414568e-8,2.5916298087693046e-5,-1.9111975005796678e-5,-1.0698709732170148e-8,2.628859728374691e-5,-1.9202643001807574e-5,-1.0701666562329869e-8,2.6762094197675117e-5,-1.9236556751696734e-5,-1.0705996336353121e-8,2.729911355674748e-5,-1.9163344524585584e-5,-1.0711891767678148e-8,2.783684602254258e-5,-1.895885387153898e-5,-1.0719277613221644e-8,2.8306670586864564e-5,-1.8639334239086277e-5,-1.072766183557865e-8,2.8659855505782475e-5,-1.8258763113995928e-5,-1.073612159190717e-8,2.8885279659063856e-5,-1.7888184927921706e-5,-1.0743575505291491e-8,2.9009231738796605e-5,-1.7588764782654586e-5,-1.0749225136080199e-8,2.908000233439939e-5,-1.7393518711195572e-5,-1.0752864147570606e-8,2.914855079008243e-5,-1.7304111401313012e-5,-1.0754868997586099e-8,2.9254770735155143e-5,-1.7298721919266967e-5,-1.0755947029287413e-8,2.9421960148790195e-5,-1.73433769434448e-5,-1.0756840443938963e-8,2.9657262395368594e-5,-1.7401543433202763e-5,-1.075813349050785e-8,2.9954830790562838e-5,-1.7440335048629465e-5,-1.0760197584755174e-8,3.0299471035757358e-5,-1.7433879737981824e-5,-1.0763229561035464e-8,3.066988743140981e-5,-1.7365039408173015e-5,-1.0767308977273792e-8,3.104156445903691e-5,-1.7226340848682806e-5,-1.0772421289059723e-8,3.138958150404849e-5,-1.7020431608455362e-5,-1.0778433463519163e-8,3.169160978062888e-5,-1.67599800034654e-5,-1.0785050830896731e-8,3.193113385062856e-5,-1.6466649719056538e-5,-1.0791801522036606e-8,3.2100549457274216e-5,-1.6168735086317945e-5,-1.0798090040294278e-8,3.2203473041458363e-5,-1.5897357896149383e-5,-1.080332573716205e-8,3.225558795119785e-5,-1.568153341658853e-5,-1.0807089151843031e-8,3.2283527758016355e-5,-1.5542734995758057e-5,-1.0809272801144117e-8,3.232156973954858e-5,-1.548986537631878e-5,-1.0810136690642487e-8,3.24062788787755e-5,-1.551564386066977e-5,-1.0810253821627843E-08,3.256954672694955e-5,-1.5595319915829232e-5,-1.0810370807169095e-8,3.2830743045217534e-5,-1.5688646392023816e-5,-1.0811243374832355e-8,3.318930936264058e-5,-1.5746136030541182e-5,-1.0813499406816032e-8,3.362016828548337e-5,-1.572010074949781e-5,-1.0817540474292183e-8,3.4075238666891787e-5,-1.5579179787124913e-5,-1.0823450353064908e-8,3.449382518613816e-5,-1.532196370613026e-5,-1.0830892582439516e-8,3.482107455406541e-5,-1.498254328611866e-5,-1.0839063244369992e-8,3.502767239053273e-5,-1.4622079522363778e-5,-1.0846829814097262e-8,3.5120439857015004e-5,-1.4307820231652071e-5,-1.085309302508078e-8,3.51375862864246e-5,-1.4089687106817873e-5,-1.085719959088525e-8,3.513199200269295e-5,-1.3986345854532377e-5,-1.085914650566585e-8,3.51525500412995e-5,-1.3985560988209588e-5,-1.085947705163363e-8,3.523209339490654e-5,-1.4054646803086456e-5,-1.0858988747294016e-8,3.5384088933798624e-5,-1.4153334684894148e-5,-1.0858452300955869e-8,3.560538153213612e-5,-1.4243709791482467e-5,-1.0858457682387729e-8,3.5881218350812025e-5,-1.4295764431560704e-5,-1.0859389106431877e-8,3.619005612992247e-5,-1.4289538747822578e-5,-1.0861464399875234e-8,3.650727263331189e-5,-1.4215445163763979e-5,-1.0864770150441248e-8,3.680795793798622e-5,-1.4073968871802461e-5,-1.0869255064842456e-8,3.7069338849790505e-5,-1.3875233842953704e-5,-1.0874690311021376e-8,3.7273324238066565e-5,-1.3638322204225281e-5,-1.0880636211450608e-8,3.740935211446729e-5,-1.338984019635138e-5,-1.0886460859978193e-8,3.747723555199965e-5,-1.3161108246832657e-5,-1.0891439508632244e-8,3.748918890039127e-5,-1.2983612439641286e-5,-1.0894923864558378e-8,3.746992648426565e-5,-1.2882969889767162e-5,-1.0896531846094513e-8,3.745388166964016e-5,-1.2872486930655807e-5,-1.089628939077259e-8,3.7479301400060466e-5,-1.2948111531254483e-5,-1.089466332568615e-8,3.758006931596514e-5,-1.3086710784613064e-5,-1.0892467653005773e-8,3.7777099336497654e-5,-1.3248905734680901e-5,-1.0890674230236611e-8,3.807156828641263e-5,-1.3386503835473725e-5,-1.0890190192257392e-8,3.844207700891592e-5,-1.3453370708504295e-5,-1.0891659080748418e-8,3.8847217212184006e-5,-1.341755372714709e-5,-1.0895313751720727e-8,3.9234030267991595e-5,-1.3271607631699584e-5,-1.090089279363746e-8,3.955132226947631e-5,-1.3037539781839813e-5,-1.0907643242370493e-8,3.976462669241938e-5,-1.2763223288738137e-5,-1.0914452499003047e-8,3.9867493531828635e-5,-1.250952451713426e-5,-1.0920130006578416e-8,3.988372523989806e-5,-1.2331758085782543e-5,-1.0923768775661982e-8,3.9858740281902724e-5,-1.226291312067013e-5,-1.0925025267279314e-8,3.98438771345933e-5,-1.2305852412647015e-5,-1.0924174807119913e-8,3.988096864166715e-5,-1.2436775734862486e-5,-1.092193559817097e-8,3.9993234799773925e-5,-1.2616327199137168e-5,-1.0919186656117713e-8,4.0184029323987886e-5,-1.2802124998079611e-5,-1.0916728214422174e-8,4.0441034122307655e-5,-1.295806215039957e-5,-1.0915158387722742e-8,4.07423430323965e-5,-1.3059008181614689e-5,-1.0914851840032176e-8,4.106194258997215e-5,-1.309190696252388e-5,-1.0915982377055156e-8,4.137369026554492e-5,-1.305496471159586e-5,-1.0918538217819229e-8,4.165397699143815e-5,-1.295627528662622e-5,-1.0922312589289403e-8,4.188372567499801e-5,-1.281253335343146e-5,-1.0926886273075621e-8,4.205038798547874e-5,-1.2647779157268254e-5,-1.0931637253225023e-8,4.2150263329725885e-5,-1.2491600175957169e-5,-1.0935808929506866e-8,4.219089514943613e-5,-1.2376014975777942e-5,-1.0938645719799141e-8,4.219264556971658e-5,-1.2330443038611213e-5,-1.0939574041035733e-8,4.2187994684927e-5,-1.2374868917154073e-5,-1.0938381011529256e-8,4.221708942536862e-5,-1.251262722220375e-5,-1.0935330563847715e-8,4.2319148750577894e-5,-1.272563608677644e-5,-1.0931164753811414e-8,4.252146931834362e-5,-1.2975210570017808e-5,-1.0926967333923104e-8,4.282981205890698e-5,-1.3209939979367455e-5,-1.0923913734952636e-8,4.3224317253663856e-5,-1.3379021269503886e-5,-1.092296888156952e-8,4.3663191015489984e-5,-1.3446687017306154e-5,-1.0924616375420668e-8,4.40932553261884e-5,-1.3402692615521834e-5,-1.0928699864093918e-8,4.446391154055205e-5,-1.3265486287865059e-5,-1.0934436131087437e-8,4.4740262897078254e-5,-1.3077370375528966e-5,-1.0940609312170373e-8,4.491180449520049e-5,-1.2893262674070154e-5,-1.0945898968800855e-8,4.49944176700801e-5,-1.2766207079580588e-5,-1.0949239480507803e-8,4.502512200115446e-5,-1.273370298418019e-5,-1.0950092267772875e-8,4.505116850684658e-5,-1.2808910095088956e-5,-1.0948539845884595e-8,4.511705275984765e-5,-1.2979305349759284e-5,-1.0945188231944347e-8,4.5253768849291526e-5,-1.3212635289537497e-5,-1.0940942427650663e-8,4.547343858202198e-5,-1.3467274984818715e-5,-1.093675586758881e-8,4.576991139681106e-5,-1.370288962080165e-5,-1.0933437996680767e-8,4.6123562686564354e-5,-1.3888173614010929e-5,-1.0931552459312198e-8,4.6507586318521756e-5,-1.4004532581867268e-5,-1.0931388495325245e-8,4.689364295154041e-5,-1.404638935558007e-5,-1.0932970781736282e-8,4.725592017948633e-5,-1.401955872819049e-5,-1.0936077710211673e-8,4.7573669880768315e-5,-1.3939013934426217e-5,-1.0940262282537435e-8,4.783282623871706e-5,-1.3826794886489019e-5,-1.0944887017204275e-8,4.8027394648472436e-5,-1.3710116999369636e-5,-1.0949190756732851e-8,4.816102679731794e-5,-1.361918978051325e-5,-1.095239527820225e-8,4.824866180786038e-5,-1.3583965343721564e-5,-1.0953844774146032e-8,4.8317389669767263E-05,-1.3629077500997938e-5,-1.0953156144793383e-8,4.8404937665998705e-5,-1.3766894228811147e-5,-1.0950352515756894e-8,4.85539270343216e-5,-1.3990186698127629e-5,-1.094594628661613e-8,4.880120852726276e-5,-1.4267952993854126e-5,-1.0940929580088114e-8,4.9164604434804093e-5,-1.4548760923785778e-5,-1.0936627198037842e-8,4.963284107903462e-5,-1.4773613411439147e-5,-1.0934389782899522e-8,5.016508945338154e-5,-1.4894876338232566e-5,-1.0935178671721424e-8,5.070227547728938e-5,-1.4892932210451892e-5,-1.0939190020118924e-8,5.118560276541905e-5,-1.4782534477633037e-5,-1.0945713139716886e-8,5.157392379064546e-5,-1.4606625431828425e-5,-1.095332893238933e-8,5.185338963389235e-5,-1.4421810233716862e-5,-1.0960371481365232e-8,5.203770610741841e-5,-1.4282157086463557e-5,-1.0965440644733544e-8,5.216122418436789e-5,-1.422646572966351e-5,-1.0967760623641757e-8,5.226841451573015e-5,-1.4271353392898255e-5,-1.0967288706004566e-8,5.2402901302713924e-5,-1.4410350265664105e-5,-1.0964601820102489e-8,5.2598368352539667e-5,-1.4617978010402564e-5,-1.0960658830434025e-8,5.2872840342696726e-5,-1.4857176091440661e-5,-1.0956540629101209e-8,5.322704970841118e-5,-1.5088075305254894e-5,-1.0953236332976238e-8,5.364663492512684e-5,-1.5275993367745722e-5,-1.0951500603035131e-8,5.410696514106418e-5,-1.539698624027727e-5,-1.095178087382418e-8,5.457893133346143e-5,-1.5440298921740233e-5,-1.0954194761142424e-8,5.50342383558213e-5,-1.540806131983914e-5,-1.0958542424790509e-8,5.544932692850507e-5,-1.5313173657149106e-5,-1.096434545062792e-8,5.580777697902618e-5,-1.5176465955951547e-5,-1.0970910845978872e-8,5.610161114139606e-5,-1.502389729946295e-5,-1.0977420875607443e-8,5.633207828382777e-5,-1.4883981469539802e-5,-1.0983045974823884e-8,5.651030827952544e-5,-1.4785143953867945e-5,-1.0987069782932988e-8,5.6657843445042456E-05,-1.475241870537396e-5,-1.098900869828785e-8,5.68064043339674e-5,-1.480281230944594e-5,-1.0988713689162896e-8,5.6995445257911e-5,-1.493919710310919e-5,-1.0986451645489575e-8,5.726569833881333e-5,-1.5144085304198487e-5,-1.0982961665724738e-8,5.7647873217573626e-5,-1.537676462498628e-5,-1.097945336000276e-8,5.8148783022304093e-5,-1.5578618482013747e-5,-1.0977468969124607e-8,5.8741629395056166e-5,-1.5689303712884644e-5,-1.0978518978595156e-8,5.936880170599819e-5,-1.5669452550320848e-5,-1.0983516728908241e-8,5.995982222233368e-5,-1.5518212400740367e-5,-1.0992265385709335e-8,6.045655109961612e-5,-1.5274524989521094e-5,-1.100336461316192e-8,6.083213388443301e-5,-1.500128721893175e-5,-1.1014687824535179e-8,6.109517706905173e-5,-1.476232162248893e-5,-1.1024177858417426e-8,6.128078642644321e-5,-1.4603933293794295e-5,-1.1030515003487311e-8,6.14360565632286e-5,-1.4546623392676997e-5,-1.1033379525122147e-8,6.160676979381152e-5,-1.4585862441534919e-5,-1.1033325129027129e-8,6.182836446050053e-5,-1.4698115916188576e-5,-1.103144492460905e-8,6.212137962144658e-5,-1.4848716247797194e-5,-1.1029016395917635e-8,6.249043218855688e-5,-1.499957486442772e-5,-1.1027231651313366e-8,6.292575713367833e-5,-1.5115848315998846e-5,-1.1027035010884309e-8,6.340659244996193e-5,-1.5171078050374148e-5,-1.1029042575856415e-8,6.39057084276371e-5,-1.5150397168465046e-5,-1.1033511588368882e-8,6.439430170432664e-5,-1.5051632264841132e-5,-1.1040338007405747e-8,6.484651366485014e-5,-1.4884453987230887e-5,-1.1049078955669309e-8,6.524295871579131e-5,-1.4668006957840344e-5,-1.1059009733669053e-8,6.557293822920603e-5,-1.4427696477046931e-5,-1.106922243082436e-8,6.583546021894932e-5,-1.4191801641639522e-5,-1.1078757988711264e-8,6.603942429151922e-5,-1.3988227254888844e-5,-1.1086754263160646e-8,6.620324712438544e-5,-1.3841351539194972e-5,-1.1092584244638724e-8,6.635399675116738e-5,-1.376871069724712e-5,-1.1095960923446284e-8,6.652567539394843e-5,-1.377713360613599e-5,-1.1097002545640146e-8,6.675562941069513e-5,-1.3858317394900903e-5,-1.109626926494747e-8,6.707780774668518e-5,-1.3985038180359028e-5,-1.1094780789983727e-8,6.751241829499467e-5,-1.4110813964274978e-5,-1.1093985695546706e-8,6.805398404589733e-5,-1.4176969697956724e-5,-1.1095592658974113e-8,6.866384590550756e-5,-1.4129570457204582e-5,-1.1101140430408416e-8,6.927548828970987e-5,-1.3942193950697216e-5,-1.1111323602410547e-8,6.981586375490909e-5,-1.3632135932979031e-5,-1.1125409233657399e-8,7.023376113526364e-5,-1.3257268294156674e-5,-1.1141255562749935e-8,7.051856313032443e-5,-1.2893039413830864e-5,-1.1156102060587921e-8,7.06990864524921e-5,-1.2603544775620664e-5,-1.1167680283957444e-8,7.082667807448929e-5,-1.2422764469719474e-5,-1.1174960488599823e-8,7.095499623308146e-5,-1.2351727669469376e-5,-1.1178226969257668e-8,7.112590319904138e-5,-1.2366745927631601e-5,-1.1178667858819269e-8,7.136360199813396e-5,-1.2431038164156497e-5,-1.117783577309838e-8,7.167471562637514e-5,-1.2504825814492575e-5,-1.1177222677717251e-8,7.20513073116622e-5,-1.2552337068439892e-5,-1.1178022183958767e-8,7.247483939519828e-5,-1.2546082636510993e-5,-1.1181041603564716e-8,7.292025057925622e-5,-1.2469246626440453e-5,-1.1186692155499417e-8,7.335996924164086e-5,-1.2316707228409032e-5,-1.1195001134773114e-8,7.376777185043507e-5,-1.2094851223874839e-5,-1.1205627668886617e-8,7.41223204444516e-5,-1.1820215935622424e-5,-1.1217891224875756e-8,7.441008632046292e-5,-1.1516986111407657e-5,-1.1230839822596301e-8,7.462727595584035e-5,-1.121357421653002e-5,-1.1243374292470443e-8,7.478054238337684e-5,-1.0938760084437633e-5,-1.1254418929902535e-8,7.48865297826223e-5,-1.0717820966566956e-5,-1.1263107130437595e-8,7.497036903850236e-5,-1.0568904309436396e-5,-1.1268942299422062e-8,7.506321783824891e-5,-1.0499811842188604e-5,-1.1271900341615984e-8,7.519881869817697e-5,-1.0505257389349248e-5,-1.1272463646632064e-8,7.540869080999105e-5,-1.056479190521469e-5,-1.1271600290428743e-8,7.571546174872404e-5,-1.0642370424357846e-5,-1.1270700670162078e-8,7.61246291272292e-5,-1.0689513165947758e-5,-1.1271446895380041e-8,7.661678435223831e-5,-1.0654320433158899e-5,-1.1275546237460665e-8,7.71448147730922e-5,-1.0497201563490087e-5,-1.1284249952033519e-8,7.764205458950148e-5,-1.0209521680141907e-5,-1.1297711821998253e-8,7.804347387462571e-5,-9.824875614952504e-6,-1.1314530735816466e-8,7.831185681715099e-5,-9.411967862924406e-6,-1.133196933848187e-8,7.84533388443129e-5,-9.048847109690942e-6,-1.134696307423481e-8,7.851205357156255e-5,-8.792740654590127e-6,-1.1357361358067248e-8,7.854866512846068e-5,-8.662856311024963e-6,-1.1362623719687482e-8,7.861729582289454e-5,-8.642245361453145e-6,-1.1363680031735883e-8,7.875197622822127e-5,-8.691794929389404e-6,-1.1362277223349593e-8,7.896418283479847e-5,-8.765841602924702e-6,-1.1360297098831838e-8,7.924709191886245e-5,-8.823284793479496e-6,-1.1359315593534433e-8,7.95818503140842e-5,-8.833269852576455e-6,-1.1360426738010168e-8,7.994322616848324e-5,-8.777041367256928e-6,-1.1364233495034238e-8,8.030394161526125e-5,-8.647855079034407e-6,-1.1370898907447606e-8,8.063800618353983e-5,-8.450099063104403e-6,-1.13801913797548e-8,8.092351739561471e-5,-8.197986994855086e-6,-1.139151507594174e-8,8.114517708580553e-5,-7.913748681025796e-6,-1.1403947928868321e-8,8.129649091610874e-5,-7.625053643838189e-6,-1.1416325803923466e-8,8.13812925714093e-5,-7.361498470228608e-6,-1.1427396960663914e-8,8.141408671042445e-5,-7.150374877007221e-6,-1.143603391639288e-8,8.141887617018724e-5,-7.012246466696308e-6,-1.1441458496670813e-8,8.142639354204631e-5,-6.9569547070524565e-6,-1.1443423882852663e-8,8.146989071188947e-5,-6.980733178277085e-6,-1.1442305223764873e-8,8.157988588747373e-5,-7.0650386142183395e-6,-1.1439079612900346e-8,8.177834068751832e-5,-7.177494714956207e-6,-1.1435206339439226e-8,8.207274310460953e-5,-7.275416748518267e-6,-1.1432431508335396e-8,8.24510452990543e-5,-7.312655501458012e-6,-1.1432513684254343e-8,8.287939415777408e-5,-7.250137973215447e-6,-1.14368513607406e-8,8.330545375814392e-5,-7.068926237825051e-6,-1.1446018896562171e-8,8.366980628525399e-5,-6.781801504635946e-6,-1.1459328098698728e-8,8.392475651610919e-5,-6.436424280153653e-6,-1.147469615909485e-8,8.405365240588183e-5,-6.103856380286995e-6,-1.1489120917511639e-8,8.407948845031888e-5,-5.853970011362507e-6,-1.1499731792143241e-8,8.405583920133282e-5,-5.729599983451548e-6,-1.1504887252346792e-8,8.404479026302159e-5,-5.733734864168806e-6,-1.1504668019600196e-8,8.409487550610288e-5,-5.8348805222652595e-6,-1.1500567610929476e-8,8.422953279231353e-5,-5.983832090974439e-6,-1.1494726575699467e-8,8.44475135877195e-5,-6.130958240035688e-6,-1.1489203384318796e-8,8.473016954110671e-5,-6.237308506807428e-6,-1.1485549198160168e-8,8.504997460131159e-5,-6.278822698858891e-6,-1.1484684339034437e-8,8.537722202659041e-5,-6.24604350020151e-6,-1.1486947837148801e-8,8.56843216611937e-5,-6.141962433049987e-6,-1.149219497561945e-8,8.594839135529726e-5,-5.979584647913548e-6,-1.1499878642207251e-8,8.615303700245352e-5,-5.7797022876110846e-6,-1.1509108282661373e-8,8.628989016331793e-5,-5.568700527437504e-6,-1.1518717192858226e-8,8.636003840534361e-5,-5.3759285752394796e-6,-1.1527377565087991e-8,8.637502793286532e-5,-5.230188533993722e-6,-1.1533784620290696e-8,8.635675385529202e-5,-5.155286769746592e-6,-1.1536897415011626e-8,8.63355224875678e-5,-5.165182714998419e-6,-1.1536184302568082e-8,8.634591892159362e-5,-5.259775561616308e-6,-1.1531803962477889e-8,8.642073115040163e-5,-5.4226586174864975e-6,-1.152465872996433e-8,8.65839351077441e-5,-5.622046886179956e-6,-1.1516287597576716e-8,8.684430755827092e-5,-5.8153923203604484e-6,-1.1508609070013934e-8,8.719130249188195e-5,-5.95728092691672e-6,-1.1503558232602766e-8,8.759455242721197e-5,-6.009491974966764e-6,-1.150267039330855e-8,8.800800850055604e-5,-5.95147211987009e-6,-1.1506668360848453e-8,8.837913286366379e-5,-5.7886627769627485e-6,-1.1515138637633855e-8,8.866225574551908e-5,-5.555373933240397e-6,-1.1526431984484355e-8,8.883301404506053e-5,-5.309063543337344e-6,-1.1537937388838975e-8,8.889840023466499e-5,-5.115164449411993e-6,-1.1546777723907165e-8,8.889656623832367e-5,-5.026383401286591e-6,-1.1550737585091733e-8,8.888441107440784e-5,-5.065123260574208e-6,-1.154900893343037e-8,8.891787950494431e-5,-5.21765631045529e-6,-1.1542374452129857e-8,8.903443511633252e-5,-5.442337151279303e-6,-1.1532775965427147e-8,8.924516874443352e-5,-5.686194762207577e-6,-1.1522563607641413e-8,8.953744138069596e-5,-5.90108623252899e-6,-1.1513813593362013e-8,8.988360538093972e-5,-6.053558073616242e-6,-1.1507938669655695e-8,9.025045498071756e-5,-6.127657333921901e-6,-1.1505594789433005e-8,9.06062942791196e-5,-6.123105910016481e-6,-1.1506768232466762e-8,9.092503624012695e-5,-6.051676523403866e-6,-1.1510921388865986e-8,9.118813404710323e-5,-5.933591903961702e-6,-1.1517128603869335e-8,9.138545565664259e-5,-5.794575433039127e-6,-1.1524189430321015e-8,9.151591271894805e-5,-5.66334449111308e-6,-1.1530742462923101e-8,9.158811085003475e-5,-5.568946066028995e-6,-1.1535410442970295e-8,9.162072310193748e-5,-5.537335450390624e-6,-1.1536995250412474e-8,9.164182458652515e-5,-5.58694690455087e-6,-1.1534711584048976e-8,9.168620213239225e-5,-5.723696108466005e-6,-1.152841879943091e-8,9.178992959661302e-5,-5.936777568263604e-6,-1.1518779345972147e-8,9.198249027190544e-5,-6.197337314678204e-6,-1.1507263760530225e-8,9.227820821065515e-5,-6.461935833751877e-6,-1.1495944136778205e-8,9.266993147833276e-5,-6.6812950165578724e-6,-1.1487076652143873e-8,9.31278874804674e-5,-6.8125918600802576e-6,-1.1482550916430714e-8,9.360510332344588e-5,-6.831677883244499e-6,-1.1483350519634967e-8,9.404841563306238e-5,-6.741163582188049e-6,-1.1489195433374426e-8,9.441208477567966e-5,-6.57151688468949e-6,-1.1498505989231926e-8,9.467017588287623e-5,-6.374429642810231e-6,-1.1508741618074349e-8,9.482411049793587e-5,-6.20983930092064e-6,-1.1517053215341923e-8,9.490280063124226e-5,-6.12986333255191e-6,-1.1521069363394867e-8,9.49546446025167e-5,-6.164351503798526e-6,-1.1519561592846616e-8,9.503343971679581e-5,-6.312991752990002e-6,-1.1512751366586703e-8,9.518296893644879e-5,-6.546957614728857e-6,-1.1502154648514587e-8,9.54258618892581e-5,-6.819249442704191e-6,-1.1490053068776307e-8,9.576033063758811e-5,-7.079181183195936e-6,-1.147882172959562e-8,9.616458460450145e-5,-7.285251177458946e-6,-1.1470361003639736e-8,9.660557779129375e-5,-7.412533789784719e-6,-1.1465779950685564e-8,9.70480253349657e-5,-7.454061673847203e-6,-1.1465342600263835e-8,9.746107955264904e-5,-7.418094434670623e-6,-1.1468592015480105e-8,9.782204348641294e-5,-7.323724614127018e-6,-1.1474549309030842e-8,9.811778004559563e-5,-7.196576837891347e-6,-1.1481914889362466e-8,9.834488254743438e-5,-7.065336659585935e-6,-1.1489242896633806e-8,9.85094970832235e-5,-6.958985648334306e-6,-1.1495095179541215e-8,9.862717385640469e-5,-6.90413645241066e-6,-1.1498196338733799e-8,9.8722513616579e-5,-6.921815594705209e-6,-1.1497607920369037e-8,9.882784972662761e-5,-7.023345607949021e-6,-1.1492923262731212e-8,9.897986411696639e-5,-7.205665995436498e-6,-1.148446098537155e-8,9.921318771121227e-5,-7.447586546246423e-6,-1.1473395307025696e-8,9.955120060763667e-5,-7.709619295232465e-6,-1.146172404791077e-8,9.999642762624879e-5,-7.940035443749168e-6,-1.1451968869426325e-8,1.0052494732063333e-4,-8.087647613726074e-6,-1.1446579632065744e-8,1.0108913471724907e-4,-8.117933472199266e-6,-1.1447169892722494e-8,1.016297505105532e-4,-8.025879558080473e-6,-1.1453875399227287e-8,1.0209339869072522e-4,-7.839290063002508e-6,-1.1465163461608666e-8,1.0244827762320929e-4,-7.610760831100816e-6,-1.1478236898852096e-8,1.0269227243374284e-4,-7.4019405703705335e-6,-1.1489879553959839e-8,1.0285149371859283e-4,-7.266368505272329e-6,-1.1497391887392736e-8,1.0297118136782965e-4,-7.236336161787715e-6,-1.1499280042755185e-8,1.0310270675950262e-4,-7.316726316035047e-6,-1.1495523318503002e-8,1.0329056362595021e-4,-7.486349598341804e-6,-1.148742159707798e-8,1.0356255453322497e-4,-7.705430672579288e-6,-1.1477144225777614e-8,1.0392519544575366e-4,-7.926623660176716e-6,-1.1467147125266295e-8,1.0436481553339658e-4,-8.106347722194308e-6,-1.1459615835618466e-8,1.048532139215313e-4,-8.213492770649762e-6,-1.1456056721422704e-8,1.0535556460250918e-4,-8.23373787288498e-6,-1.1457100913129077e-8,1.0583805546501133e-4,-8.169439622731186e-6,-1.1462518463608636e-8,1.0627352735391126e-4,-8.036400609196678e-6,-1.1471385560392026e-8,1.066445607363988e-4,-7.859266130393587e-6,-1.1482325768957206e-8,1.0694441306334356e-4,-7.666977342055716e-6,-1.1493758257334187e-8,1.0717666268625118e-4,-7.489017281889044e-6,-1.1504111986789331e-8,1.0735435490295485e-4,-7.35244966639261e-6,-1.1511999323604564e-8,1.0749903983642938e-4,-7.2792806829164845e-6,-1.1516363131548234e-8,1.0763957831135115e-4,-7.283580274524651e-6,-1.151661702847303e-8,1.0781007680501017e-4,-7.368012685883945e-6,-1.1512793302970118e-8,1.0804590054700001e-4,-7.520061810504988e-6,-1.1505692043057436e-8,1.0837680611466255e-4,-7.709425069854278e-6,-1.1496977420176755e-8,1.0881740161785823e-4,-7.889347522041987e-6,-1.1489103221812277e-8,1.0935759791410143e-4,-8.004876957400208e-6,-1.1484917776821892e-8,1.099584343313986e-4,-8.008601428695032e-6,-1.1486882532745956e-8,1.1055881062444225e-4,-7.879155597116695e-6,-1.1496092004950944e-8,1.1109371258594231e-4,-7.633039843956237e-6,-1.1511581608136922E-08,1.1151663459051103e-4,-7.321605202687162e-6,-1.1530431309502565e-8,1.1181492903404441e-4,-7.013454241810893e-6,-1.1548741122352925e-8,1.1201106022014476e-4,-6.771340174468865e-6,-1.1562985724005811e-8,1.1215140197415839e-4,-6.634405209780007e-6,-1.1571068149846324e-8,1.1228984212495073e-4,-6.611278102413541e-6,-1.1572697123814852e-8,1.1247315925664164e-4,-6.6831267112462406e-6,-1.1569144942454731e-8,1.127316993096942e-4,-6.812598750203812e-6,-1.156266778319374e-8,1.1307579932787652e-4,-6.954602663343077e-6,-1.1555859496188551e-8,1.1349688400417341e-4,-7.066217820959545e-6,-1.1551101049908461e-8,1.139717903089487e-4,-7.114299397794903e-6,-1.1550167056351804e-8,1.1446891416054345e-4,-7.080077937874377e-6,-1.1554002562827165e-8,1.149548174283551e-4,-6.960537575809596e-6,-1.1562667346861427e-8,1.1540007923220339e-4,-6.766933444370123e-6,-1.1575426285469924e-8,1.1578354861211906e-4,-6.521295786051894e-6,-1.1590947546989276e-8,1.1609463410885247e-4,-6.2519478086589645e-6,-1.160756007562344e-8,1.1633376296363593e-4,-5.989012039941205e-6,-1.1623518348194946e-8,1.1651156393922294e-4,-5.760573051355079e-6,-1.1637234212047214e-8,1.1664740182339614e-4,-5.589622358594828e-6,-1.1647459659802337e-8,1.1676759334021895e-4,-5.4915067272458905e-6,-1.1653428976732367e-8,1.1690326783015823e-4,-5.471531648050538e-6,-1.1654974611229112e-8,1.1708746557034123e-4,-5.5225030012895636e-6,-1.1652632718742514e-8,1.1735068033667883e-4,-5.622479874781477e-6,-1.1647735276380047e-8,1.1771412944112854e-4,-5.734062550996382e-6,-1.1642435438662262e-8,1.1818113725851937e-4,-5.8076621481172495e-6,-1.163954187668793e-8,1.1872926880585935e-4,-5.791344442245663e-6,-1.1642004245374285e-8,1.1930855430309953e-4,-5.647553044674574e-6,-1.1651984086518556e-8,1.1985155215788543e-4,-5.371443175151925e-6,-1.1669760410394222e-8,1.2029547121095116e-4,-4.99995084485974e-6,-1.1693115291372944e-8,1.2060678781026997e-4,-4.6024408688642385e-6,-1.1717833613867049e-8,1.2079400904598451e-4,-4.255199093046226e-6,-1.173926368756903e-8,1.2090126966665237e-4,-4.0137842781003e-6,-1.1754062382778059e-8,1.2098843584166365e-4,-3.897678566972292e-6,-1.176115704922468e-8,1.2111008984554611e-4,-3.891400665164609e-6,-1.1761637208694449e-8,1.213022496940009e-4,-3.95630760713687e-6,-1.1757971241563372e-8,1.2157839399120963e-4,-4.044896229076136e-6,-1.1753097167220337e-8,1.2193195516922581e-4,-4.112420305157807e-6,-1.1749718015863004e-8,1.2234182152848596e-4,-4.124267718560327e-6,-1.174987984666976e-8,1.227785275255919e-4,-4.059624660286843e-6,-1.1754780294877045e-8,1.2321007408265877e-4,-3.9124489345179326e-6,-1.1764728817057517e-8,1.2360698042256985e-4,-3.6904598768444323e-6,-1.1779212189448352e-8,1.2394631226203136e-4,-3.4126109266878824e-6,-1.1797041115608418e-8,1.242144823774108e-4,-3.1055077065965403e-6,-1.1816559520484416e-8,1.2440867826661164e-4,-2.799226073876711e-6,-1.1835897138338729e-8,1.2453685337986063e-4,-2.523031477587932e-6,-1.1853238148010125e-8,1.2461646512564885e-4,-2.301547896694e-6,-1.186706784611472e-8,1.2467235994619418e-4,-2.1516861724259745e-6,-1.1876371614580685e-8,1.2473410454800834e-4,-2.0803083645591164e-6,-1.1880779589050701e-8,1.2483283115915695e-4,-2.0825349597226646e-6,-1.1880660082478308e-8,1.2499748069359724e-4,-2.14069314709482e-6,-1.1877165836353078e-8,1.2525010295091812e-4,-2.2241823656063393e-6,-1.1872226457607199e-8,1.2559995192754653e-4,-2.2912602137460035e-6,-1.1868437590207958e-8,1.2603705811992328e-4,-2.2945068883105327e-6,-1.1868742828901586e-8,1.2652772420829495e-4,-2.191539426597471e-6,-1.1875794007561012e-8,1.2701630641300356e-4,-1.9604423994929207e-6,-1.1890987874401511e-8,1.2743771444703272e-4,-1.6147035257241735e-6,-1.1913481241468902e-8,1.2774003479321577e-4,-1.2075860053489198e-6,-1.1939854087612531e-8,1.2790733523272295e-4,-8.17705683285339e-7,-1.1965019553764724e-8,1.279679628288094e-4,-5.194673008425952e-7,-1.1984174542305361e-8,1.279816584662349e-4,-3.5470155045429583e-7,-1.1994671485721905e-8,1.280138942373341e-4,-3.2155917529888203e-7,-1.1996712018024326e-8,1.2811314916667707e-4,-3.832848611376374e-7,-1.1992721904466058e-8,1.2830082617175774e-4,-4.869902782138533e-7,-1.198611016092719e-8,1.2857305116365837e-4,-5.810461096132203e-7,-1.1980164163535222E-08,1.289084172136336e-4,-6.257202090277428e-7,-1.197740043466469e-8,1.2927653296285668e-4,-5.972525154990381e-7,-1.1979329944634138e-8,1.2964491995966202e-4,-4.877474608997493e-7,-1.1986472365228349e-8,1.2998387075651414e-4,-3.031311612369654e-7,-1.1998477370081351e-8,1.3026979244258862e-4,-6.038288953220458e-8,-1.2014282732417834e-8,1.3048752957989842e-4,2.1562191863560383e-7,-1.2032296857404085e-8,1.3063183983413705e-4,4.956069602951913e-7,-1.2050612633462722e-8,1.3070798712429174e-4,7.49696777087375e-7,-1.2067254493324593e-8,1.3073127127371782e-4,9.513984761652111e-7,-1.2080450782354818e-8,1.3072533232997706e-4,1.0813761032640532e-6,-1.2088898078971734e-8,1.3071932425519906e-4,1.1305045965556356e-6,-1.2091976791290884e-8,1.3074424349902703e-4,1.1018477731859764e-6,-1.2089887050399828e-8,1.3082870101893535e-4,1.0113362985932872e-6,-1.2083690937629776e-8,1.3099441618179766e-4,8.869501908669666e-7,-1.2075251931326807e-8,1.3125168068481923e-4,7.662116754938402e-7,-1.2067066918911372e-8,1.3159510738595574e-4,6.915586905267705e-7,-1.2061965515433264e-8,1.3200056820097142e-4,7.028841658829567e-7,-1.2062624571151364e-8,1.3242528918228636e-4,8.270198550287169e-7,-1.2070869118686841e-8,1.3281385380364976e-4,1.0657937989025924e-6,-1.2086852795495238e-8,1.3311208615874337e-4,1.3873940278361398e-6,-1.2108442324416934e-8,1.3328674475046086e-4,1.728378788589479e-6,-1.2131335420364398e-8,1.333423026531807e-4,2.011359960326922e-6,-1.2150284217646462e-8,1.333230859574093e-4,2.173641367897251e-6,-1.2161076558038903e-8,1.3329628509418603e-4,2.1916886718834704e-6,-1.2162183678561086e-8,1.3332488742110422e-4,2.0869799011873835e-6,-1.2155091872515184e-8,1.3344631607287334e-4,1.9118834458728775e-6,-1.214330168860428e-8,1.3366614959370036e-4,1.7270017762180142e-6,-1.213081977253317e-8,1.339647660819936e-4,1.5827822630531564e-6,-1.2120978054806648e-8,1.3430900171919165e-4,1.5107505188582636e-6,-1.2115885232530696e-8,1.346625507586368e-4,1.5227555156633589e-6,-1.2116379839448163e-8,1.3499278908367805e-4,1.6143357752029857e-6,-1.2122232655650623e-8,1.352743630890875e-4,1.7691319425712106e-6,-1.2132411706736463e-8,1.3549082147805045e-4,1.9628976716705375e-6,-1.214532559179744e-8,1.3563536205606977e-4,2.1669414090184472e-6,-1.2159041601093816e-8,1.3571114539193986e-4,2.3513531864422336e-6,-1.2171504657912729e-8,1.3573115122892719e-4,2.488365757099318e-6,-1.218077928907646e-8,1.3571726302195615e-4,2.555989521491244e-6,-1.2185316078541546e-8,1.3569814446294577e-4,2.5416602671032738e-6,-1.2184217684665625e-8,1.3570568585111713e-4,2.4452206623935392e-6,-1.2177449976565543e-8,1.3577024230789847e-4,2.280427964073108e-6,-1.216594442676682e-8,1.3591527737192273e-4,2.0743135607314645e-6,-1.2151550454018783e-8,1.361522991152803e-4,1.8640121265254014e-6,-1.213681987513195e-8,1.3647708727637718e-4,1.6911483786144465e-6,-1.2124630980449703e-8,1.3686810998498884e-4,1.5943000966245994e-6,-1.211767957644585e-8,1.3728794824521178e-4,1.6002951590033876e-6,-1.2117875538135754e-8,1.376885995265603e-4,1.715563961241601e-6,-1.2125719871977474e-8,1.380212492054774e-4,1.9198116421548985e-6,-1.2139827416802713e-8,1.3824979653251647e-4,2.16545754172393e-6,-1.2156862702966804e-8,1.3836476748777283e-4,2.3863798766054845e-6,-1.2172165361997345e-8,1.3839118089512586e-4,2.516681597723158e-6,-1.2181109204786456e-8,1.383836958661086e-4,2.5139173425388923e-6,-1.2180756018019766e-8,1.3840809682379775e-4,2.3754960365028225e-6,-1.2170971847677191e-8,1.3851731397930713e-4,2.1385549249810985e-6,-1.2154358737266609e-8,1.387345180742526e-4,1.8635150257748393e-6,-1.2135089041809021e-8,0.00013905061657867654,1.6115027181214983e-6,-1.21173713319074e-8,1.3943376606727773e-4,1.4271981388203693e-6,-1.2104305360794658e-8,1.3984300364040437e-4,1.3321511005655048e-6,-1.2097427842395805e-8,1.4023941764179271e-4,1.3266107575433846e-6,-1.2096814698533307e-8,1.4059252722173118e-4,1.3952876797859035e-6,-1.2101447432625885e-8,1.4088264636512158e-4,1.5134604515907064e-6,-1.2109616882522158e-8,1.4110100645417162e-4,1.651840139911393e-6,-1.211925900245617e-8,1.4124909369002032e-4,1.780117071596497e-6,-1.212821380203447e-8,1.41337902381737e-4,1.8698047521882043e-6,-1.2134441476175163e-8,1.413871243968482e-4,1.897057213198281e-6,-1.2136236886680415e-8,1.4142383018431504e-4,1.845841427761066e-6,-1.2132461012287831e-8,1.4147997719204125e-4,1.7113175489430788e-6,-1.2122777537746821e-8,1.4158823504138685e-4,1.502646517645388e-6,-1.2107840476713205e-8,1.4177619737628733e-4,1.2439767012537168e-6,-1.2089354094720186e-8,1.420599003828967e-4,9.723315462248096e-7,-1.206992596215161e-8,1.4243837480090518e-4,7.317359454874271e-7,-1.205266945550483e-8,1.428912639706557e-4,5.641719353741576e-7,-1.2040586686537376e-8,1.4338097885540922e-4,4.993306811954009e-7,-1.2035847099509482e-8,1.4385960277296563e-4,5.458783176763343e-7,-1.2039139663143369e-8,1.4427940471458366e-4,6.868122641353136e-7,-1.2049291370737595e-8,1.4460478846783334e-4,8.807411239238364e-7,-1.2063317321420302e-8,1.4482281559751307e-4,1.069839105541091e-6,-1.2076991054963683e-8,0.00014494904837242869,1.1937309248725323e-6,-1.2085887289049307e-8,1.4502568900064648e-4,1.2064426101944527e-6,-1.208665562177113e-8,1.4511070047506638e-4,1.0911379333922037e-6,-1.2078100163221958e-8,1.4526028585175462e-4,8.663198283372468e-7,-1.2061600256805915e-8,1.4551122674497707e-4,5.797058648325919e-7,-1.204063541031233e-8,1.45870714182893e-4,2.919007977922922e-7,-1.2019605889673682e-8,1.4631756661427476e-4,5.7383281304037876e-8,-1.2002481688680475e-8,1.4681257082234934e-4,-8.908235910099019e-8,-1.199182771411262e-8,1.4731178048653533e-4,-1.3681974382092278e-7,-1.1988462719314775e-8,1.4777718123388823e-4,-9.589928020150776e-8,-1.1991666707489123e-8,1.4818241807458256e-4,9.827970495226143e-9,-1.1999669866292774e-8,1.4851424057603252e-4,1.4975826284681487e-7,-1.2010174857616424e-8,1.4877150780700368e-4,2.9190903564939884e-7,-1.2020776035974408e-8,1.4896338718739874e-4,4.064988238931833e-7,-1.2029249027716422e-8,1.491076446423247e-4,4.6841038637613003e-7,-1.2033745868534184e-8,1.4922916257107874e-4,4.5938546572257956e-7,-1.2032953779941988e-8,1.493582247095228e-4,3.705242197180493e-7,-1.2026262139108474e-8,1.4952777954767635e-4,2.051005400277564e-7,-1.2013946805018194e-8,1.4976894050346446e-4,-1.904479417246828e-8,-1.19973299130609e-8,1.5010454947427974e-4,-2.6906541765304796e-7,-1.1978814248321542e-8,1.5054183504320976e-4,-5.005400438808663e-7,-1.1961656886072548e-8,1.510667193509588e-4,-6.659267765992611e-7,-1.1949384554955782e-8,1.5164312623254563e-4,-7.269820831206918e-7,-1.1944897119523432e-8,1.5221953156980696e-4,-6.673181911368249e-7,-1.1949511382214759e-8,1.5274192731700445e-4,-4.998737686083151e-7,-1.1962335916114308e-8,1.5316902981055573e-4,-2.655106490847173e-7,-1.198030645635063e-8,1.5348421088217352e-4,-2.266891378647792e-8,-1.1998944827432675e-8,1.537000877768807e-4,1.6834438575237464e-7,-1.2013585861232607e-8,1.538547110431581e-4,2.613132906223005e-7,-1.2020649305678164e-8,1.5400096519828458e-4,2.3581112219275996e-7,-1.2018566303697278e-8,1.5419235863208593e-4,1.0173672189554832e-7,-1.2008120314198619e-8,1.5446908544374386e-4,-1.043344103221339e-7,-1.1992147545698048e-8,1.548482390991489e-4,-3.2985719788034745e-7,-1.1974709621771796e-8,1.5532098094650596e-4,-5.207662508907146e-7,-1.1959996690102956e-8,1.5585716932915963e-4,-6.350241871756243e-7,-1.1951293605787887e-8,1.5641522266013897e-4,-6.511187991959759e-7,-1.1950307300835039e-8,1.569532769257661e-4,-5.697016549164902e-7,-1.1957005001839564e-8,1.5743798528095797e-4,-4.09469379855435e-7,-1.1969906863521253e-8,1.5784917981561064e-4,-2.0015710169451744e-7,-1.1986632887038163e-8,1.5818066995231428e-4,2.4528128874972442e-8,-1.2004482272335572e-8,1.584385964221662e-4,2.3238212408654543e-7,-1.2020894960770384e-8,1.5863886107822444e-4,3.9624199560292434e-7,-1.2033748244121223e-8,1.588046247824748e-4,4.961257588820515e-7,-1.2041519855910776e-8,1.5896414577085214e-4,5.208075434900433e-7,-1.2043387212766305e-8,1.5914861628490783e-4,4.6946391491526275e-7,-1.2039325589190074e-8,1.5938926955830503e-4,3.53541008361074e-7,-1.2030232908600866e-8,1.5971294009466412e-4,1.982741610365036e-7,-1.2018050074089633e-8,1.601357000258253e-4,4.2346553631336995e-8,-1.2005764507559371e-8,1.6065547610377416e-4,-6.653262914643824e-8,-1.199711354071502e-8,1.6124655500583345e-4,-8.178371801242496e-8,-1.1995829366236498e-8,1.618604147678731e-4,2.7237558855628032e-8,-1.200446695222325e-8,1.624361983654284e-4,2.6113543526894443e-7,-1.2023214939678597e-8,1.6291924082183584e-4,5.850389636777833e-7,-1.2049358081100115e-8,1.6328002909722807e-4,9.37029053897171e-7,-1.2077889657121621e-8,1.6352419934365228e-4,1.2479123374621913e-6,-1.2103126439366304e-8,1.6368904604779273e-4,1.4631281062483648e-6,-1.2120552485357369e-8,1.6382956183236765e-4,1.557395384432055e-6,-1.2128060940280816e-8,1.6400122926582002e-4,1.5381144862877748e-6,-1.2126239058948575e-8,1.6424588726093894e-4,1.439208355081074e-6,-1.2117853915445577e-8,1.6458370748174056e-4,1.3096328102448778e-6,-1.2106913755361764e-8,1.6501154402339606e-4,1.200644338827852e-6,-1.2097641160415495e-8,1.6550648589063686e-4,1.1547586852730628e-6,-1.2093577694547275e-8,1.6603290776267415e-4,1.198176070928625e-6,-1.209694831318382e-8,1.665511035023388e-4,1.3375614745420673e-6,-1.2108362039271342e-8,1.6702550418416318e-4,1.5612138983333382e-6,-1.2126873437650308e-8,1.674307780932752e-4,1.8436692523999273e-6,-1.2150349328123835e-8,1.677549195800197e-4,2.152050182706575e-6,-1.2176009110305286e-8,1.6799940801179606e-4,2.4524165413076667e-6,-1.2200981766056503e-8,1.6817724583540448e-4,2.7148658232038214e-6,-1.2222754118217347e-8,1.683099873280913e-4,2.9168866968960664e-6,-1.2239454785978735e-8,1.6842467146592558e-4,3.0452180407235236e-6,-1.224999322944638e-8,1.6855102695086848e-4,3.0968539557096263e-6,-1.2254119042353992e-8,1.6871880126855085e-4,3.079744230574199e-6,-1.2252464324778996e-8,1.6895472067160068e-4,3.0133940896606534e-6,-1.2246598903420829e-8,1.6927840464195295e-4,2.9289893043908684e-6,-1.2239070910506032e-8,1.6969685867088022e-4,2.8677904600524987e-6,-1.2233319274918822e-8,1.7019831718506845e-4,2.875824828445984e-6,-1.2233272151029017e-8,1.7074810284391787e-4,2.993272269193482e-6,-1.224246480019927e-8,1.7129098425295404e-4,3.2394101336393448e-6,-1.2262719249205929e-8,1.7176398102373194e-4,3.5987654038797006e-6,-1.2292867630372567e-8,1.7211809981800891e-4,4.018086806079489e-6,-1.2328398800877828e-8,1.723391427347796e-4,4.420818917734477e-6,-1.2362681188303285e-8,1.7245473153053103e-4,4.734662467285292e-6,-1.2389396409868513e-8,1.7252252726735316e-4,4.917578549027333e-6,-1.2404843785782865e-8,1.726071540897258e-4,4.968749604148368e-6,-1.2408893192054333e-8,1.727589046978858e-4,4.9221724964740185e-6,-1.2404411962237101e-8,1.7300260344177033e-4,4.83048076677902e-6,-1.2395876284086118e-8,1.7333699122422784e-4,4.748210739532242e-6,-1.2387966354953343e-8,1.7374060169450008e-4,4.719717242328655e-6,-1.2384556320964524e-8,1.7417998643729247e-4,4.77276442662093e-6,-1.2388155529251713e-8,1.7461775716833916e-4,4.916710446013261e-6,-1.2399710045232228e-8,1.7501937203030822e-4,5.1438468128633355e-6,-1.24186647572412e-8,1.7535828951289732e-4,5.432860035887848e-6,-1.2443225854658522e-8,1.756192629618798e-4,5.753664444472852e-6,-1.247077258016822e-8,1.7579965373443565e-4,6.07283129609336e-6,-1.249834752183416e-8,1.7590884946030766e-4,6.358829228718526e-6,-1.2523139875377372e-8,1.759661130968674e-4,6.586381943570775e-6,-1.2542883039875933e-8,1.759974500115724e-4,6.739459298134962e-6,-1.2556116611078232e-8,1.760321637278397e-4,6.812845618154416e-6,-1.2562313354106072e-8,1.7609950601134763e-4,6.812603660833107e-6,-1.2561914546371991e-8,1.7622548831381987e-4,6.755770295736606e-6,-1.2556315384687489e-8,1.7642970412317874e-4,6.669448359319251e-6,-1.2547819558221092e-8,1.7672181959903853e-4,6.589129298634931e-6,-1.2539538164845853e-8,1.7709754531837021e-4,6.555409184978373e-6,-1.253513882005936e-8,1.7753484841258758e-4,6.6077367992058346e-6,-1.2538298544744623e-8,1.7799261074736457e-4,6.774298835042637e-6,-1.2551762208519981e-8,1.7841520147040621e-4,7.059131678797954e-6,-1.2576102085454612e-8,1.7874610453487877e-4,7.431432411420299e-6,-1.2608660039097732e-8,1.7894917443968755e-4,7.825953175386766e-6,-1.264353962001558e-8,1.7902774380033063e-4,8.161207083206408e-6,-1.2673296174765145e-8,1.790278108183074e-4,8.37057801926549e-6,-1.2691829535203863e-8,1.7902000252517539e-4,8.429111940731165e-6,-1.2696822098010562e-8,1.7907052731275117e-4,8.359865779353108e-6,-1.2690259514578959e-8,1.792184376056174e-4,8.218710920752939e-6,-1.2677033409507345e-8,1.7946899122588982e-4,8.070217272528202e-6,-1.2662824877992331e-8,1.798005516314884e-4,7.968098174834111e-6,-1.2652431102927129e-8,1.8017678902342154e-4,7.945639373964074e-6,-1.2648941656457344e-8,1.8055783018827178e-4,8.014489469180937e-6,-1.2653594995131369e-8,1.809079743025977e-4,8.167991049630246e-6,-1.2666002492302427e-8,1.8120015594670137e-4,8.386055770599257e-6,-1.2684515636010646e-8,1.81418169137406e-4,8.640136272423779e-6,-1.2706635648062213e-8,1.8155745362714864e-4,8.897929471115659e-6,-1.2729437938407207e-8,1.816247890930127e-4,9.127778918254038e-6,-1.2749994232411722e-8,1.8163698371062952e-4,9.302709168045539e-6,-1.2765766433492419e-8,1.8161856182727902e-4,9.403888438419948e-6,-1.2774938041748913e-8,1.815985642893323e-4,9.423138551089404e-6,-1.2776645313126941e-8,1.8160681506560852e-4,9.36415692920561e-6,-1.2771087603012172e-8,1.8167007529985502e-4,9.242389932513445e-6,-1.2759527269267482e-8,1.8180839374719023e-4,9.083630182385395e-6,-1.2744194260900506e-8,1.8203189191582484e-4,8.921407254932055e-6,-1.272809684680252e-8,1.8233811686921964e-4,8.793234923543979e-6,-1.271472568547752e-8,1.8271007573164471e-4,8.735513832696627e-6,-1.2707603433132443e-8,1.831156226205783e-4,8.776587215035303e-6,-1.2709611967731912e-8,1.835098044135818e-4,8.927979072561361e-6,-1.2722097762312471e-8,1.8384221630675696e-4,9.175500192615347e-6,-1.27439367278731e-8,1.840705475552472e-4,9.474371020128938e-6,-1.2771002906062082e-8,1.841780628060236e-4,9.754616948466088e-6,-1.279667951127827e-8,1.8418683651227492e-4,9.940934290960093e-6,-1.281380356682737e-8,1.8415563603335129e-4,9.98187460304554e-6,-1.281747050358581e-8,1.8415861263877017e-4,9.872544364405676e-6,-1.2807136409084753e-8,1.842552921475183e-4,9.65575714304891e-6,-1.278665574601449e-8,1.8446960989311107e-4,9.401323160175794e-6,-1.2762350921109002e-8,1.847878917819339e-4,9.177921705907351e-6,-1.274048999348862e-8,1.851716145817177e-4,9.033077144764868e-6,-1.2725517880425859e-8,1.8557404333119885e-4,8.98674862545095e-6,-1.2719465951244568e-8,1.8595285565285299e-4,9.03489153155634e-6,-1.2722206457539776e-8,1.8627673471227903e-4,9.156961441484826e-6,-1.2732052732514901e-8,1.8652737698281774e-4,9.323291635298407e-6,-1.2746379558568107e-8,1.8669908398996258e-4,9.500851281252383e-6,-1.276214259667023e-8,1.867974540649122e-4,9.657494220093313e-6,-1.2776296198795173e-8,1.868377674238962e-4,9.765290802188679e-6,-1.2786140679959678e-8,1.8684306967336814e-4,9.803397871508996e-6,-1.2789619363565743e-8,1.868417147083351e-4,9.760610094037025e-6,-1.2785567727151342e-8,1.8686412458466885e-4,9.637324414561794e-6,-1.2773894189412115e-8,1.8693880886411663e-4,9.44635537749392e-6,-1.2755655110877828e-8,1.8708806034181723e-4,9.212124471751703e-6,-1.2732996276901077e-8,1.873239407935784e-4,8.968006164774606e-6,-1.2708946706398693e-8,1.8764524855502274e-4,8.751851247504868e-6,-1.2687053344743047e-8,1.8803613506589658e-4,8.600047003777075e-6,-1.267086308882513e-8,1.884668350213392e-4,8.540750156571121e-6,-1.266327943929974e-8,1.8889688401037388e-4,8.586957156317759e-6,-1.2665841049346619e-8,1.892813662336039e-4,8.7303677532984365E-06,-1.2678028004774141e-8,1.8958055151708885e-4,8.937957777496288e-6,-1.269682650981506e-8,1.8977205698003573e-4,9.154221964303619e-6,-1.2716894887330907e-8,1.8986226816951858e-4,9.312023948278568e-6,-1.2731645634466873e-8,1.8989097282145473e-4,9.3523306591095e-6,-1.2735235873700964e-8,1.899229344963519e-4,9.246977657328054e-6,-1.2724818924541804e-8,1.9002600500419477e-4,9.012639158824845e-6,-1.2701873808086355e-8,1.90245267253111e-4,8.705899735453676e-6,-1.267169944090641e-8,1.9058743747324758e-4,8.400731767561984e-6,-1.2641284800066107e-8,1.9102317062649488e-4,8.161375525659737e-6,-1.261678823134974e-8,1.915028135995743e-4,8.024638131175617e-6,-1.2601877107848063e-8]} \ No newline at end of file diff --git a/cesium/Assets/Images/bing_maps_credit.png b/cesium/Assets/Images/bing_maps_credit.png new file mode 100644 index 00000000..15109db3 Binary files /dev/null and b/cesium/Assets/Images/bing_maps_credit.png differ diff --git a/cesium/Assets/Images/cesium_credit.png b/cesium/Assets/Images/cesium_credit.png new file mode 100644 index 00000000..4d1722b6 Binary files /dev/null and b/cesium/Assets/Images/cesium_credit.png differ diff --git a/cesium/Assets/Images/google_earth_credit.png b/cesium/Assets/Images/google_earth_credit.png new file mode 100644 index 00000000..a7622d82 Binary files /dev/null and b/cesium/Assets/Images/google_earth_credit.png differ diff --git a/cesium/Assets/Images/ion-credit.png b/cesium/Assets/Images/ion-credit.png new file mode 100644 index 00000000..71b7bdf1 Binary files /dev/null and b/cesium/Assets/Images/ion-credit.png differ diff --git a/cesium/Assets/Textures/LensFlare/DirtMask.jpg b/cesium/Assets/Textures/LensFlare/DirtMask.jpg new file mode 100644 index 00000000..53299020 Binary files /dev/null and b/cesium/Assets/Textures/LensFlare/DirtMask.jpg differ diff --git a/cesium/Assets/Textures/LensFlare/StarBurst.jpg b/cesium/Assets/Textures/LensFlare/StarBurst.jpg new file mode 100644 index 00000000..b54ac091 Binary files /dev/null and b/cesium/Assets/Textures/LensFlare/StarBurst.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg b/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg new file mode 100644 index 00000000..0cad6466 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg b/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg new file mode 100644 index 00000000..7e63bd63 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg b/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg new file mode 100644 index 00000000..e65f1c78 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg b/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg new file mode 100644 index 00000000..605f63f1 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg b/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg new file mode 100644 index 00000000..319458e1 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg b/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg new file mode 100644 index 00000000..a6a3859d Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg b/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg new file mode 100644 index 00000000..6913a2b0 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg b/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg new file mode 100644 index 00000000..df89ed22 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg b/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg new file mode 100644 index 00000000..8f27415e Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg b/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg new file mode 100644 index 00000000..ce2b06ec Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg b/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg new file mode 100644 index 00000000..e3c03120 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg b/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg new file mode 100644 index 00000000..f3ec3215 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg b/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg new file mode 100644 index 00000000..b59816c0 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg b/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg new file mode 100644 index 00000000..795f2122 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg b/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg new file mode 100644 index 00000000..822b0651 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg b/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg new file mode 100644 index 00000000..4dd18ea4 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg b/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg new file mode 100644 index 00000000..4540c7c9 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg b/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg new file mode 100644 index 00000000..32c6e5ae Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg b/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg new file mode 100644 index 00000000..7c390948 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg b/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg new file mode 100644 index 00000000..3e7abe71 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg b/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg new file mode 100644 index 00000000..0e0f1e9b Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg b/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg new file mode 100644 index 00000000..732c32f9 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg b/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg new file mode 100644 index 00000000..576ec70e Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg b/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg new file mode 100644 index 00000000..6347041f Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg b/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg new file mode 100644 index 00000000..300aa580 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg b/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg new file mode 100644 index 00000000..cd70fcad Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg b/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg new file mode 100644 index 00000000..eabb83c7 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg b/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg new file mode 100644 index 00000000..54e6b007 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg b/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg new file mode 100644 index 00000000..311241c8 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg b/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg new file mode 100644 index 00000000..5ba398c5 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg b/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg new file mode 100644 index 00000000..e03c0c07 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg b/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg new file mode 100644 index 00000000..01a1caf8 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg b/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg new file mode 100644 index 00000000..372e3ef5 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg b/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg new file mode 100644 index 00000000..fbcfa628 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg b/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg new file mode 100644 index 00000000..334ab258 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg b/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg new file mode 100644 index 00000000..ebbc3a09 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg b/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg new file mode 100644 index 00000000..c3a8e97c Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg b/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg new file mode 100644 index 00000000..8f730f36 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg b/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg new file mode 100644 index 00000000..75235d6f Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg b/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg new file mode 100644 index 00000000..036d682e Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg b/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg new file mode 100644 index 00000000..dfd21446 Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg b/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg new file mode 100644 index 00000000..82c2a34a Binary files /dev/null and b/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg differ diff --git a/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml b/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml new file mode 100644 index 00000000..d7734cce --- /dev/null +++ b/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml @@ -0,0 +1,14 @@ + + + NE2_HR_LC_SR_W_DR_recolored.tif + + EPSG:4326 + + + + + + + + + diff --git a/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg b/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg new file mode 100644 index 00000000..67192282 Binary files /dev/null and b/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg differ diff --git a/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg b/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg new file mode 100644 index 00000000..3dfe883b Binary files /dev/null and b/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg differ diff --git a/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg b/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg new file mode 100644 index 00000000..7ef2363f Binary files /dev/null and b/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg differ diff --git a/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg b/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg new file mode 100644 index 00000000..f5d0d8b1 Binary files /dev/null and b/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg differ diff --git a/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg b/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg new file mode 100644 index 00000000..a8421113 Binary files /dev/null and b/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg differ diff --git a/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg b/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg new file mode 100644 index 00000000..5efcc76e Binary files /dev/null and b/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg differ diff --git a/cesium/Assets/Textures/maki/airfield.png b/cesium/Assets/Textures/maki/airfield.png new file mode 100644 index 00000000..b7746842 Binary files /dev/null and b/cesium/Assets/Textures/maki/airfield.png differ diff --git a/cesium/Assets/Textures/maki/airport.png b/cesium/Assets/Textures/maki/airport.png new file mode 100644 index 00000000..44a8413a Binary files /dev/null and b/cesium/Assets/Textures/maki/airport.png differ diff --git a/cesium/Assets/Textures/maki/alcohol-shop.png b/cesium/Assets/Textures/maki/alcohol-shop.png new file mode 100644 index 00000000..b75a5d9e Binary files /dev/null and b/cesium/Assets/Textures/maki/alcohol-shop.png differ diff --git a/cesium/Assets/Textures/maki/america-football.png b/cesium/Assets/Textures/maki/america-football.png new file mode 100644 index 00000000..5a2c6ba6 Binary files /dev/null and b/cesium/Assets/Textures/maki/america-football.png differ diff --git a/cesium/Assets/Textures/maki/art-gallery.png b/cesium/Assets/Textures/maki/art-gallery.png new file mode 100644 index 00000000..a663512e Binary files /dev/null and b/cesium/Assets/Textures/maki/art-gallery.png differ diff --git a/cesium/Assets/Textures/maki/bakery.png b/cesium/Assets/Textures/maki/bakery.png new file mode 100644 index 00000000..9735d5e5 Binary files /dev/null and b/cesium/Assets/Textures/maki/bakery.png differ diff --git a/cesium/Assets/Textures/maki/bank.png b/cesium/Assets/Textures/maki/bank.png new file mode 100644 index 00000000..a67cee06 Binary files /dev/null and b/cesium/Assets/Textures/maki/bank.png differ diff --git a/cesium/Assets/Textures/maki/bar.png b/cesium/Assets/Textures/maki/bar.png new file mode 100644 index 00000000..8c2812fb Binary files /dev/null and b/cesium/Assets/Textures/maki/bar.png differ diff --git a/cesium/Assets/Textures/maki/baseball.png b/cesium/Assets/Textures/maki/baseball.png new file mode 100644 index 00000000..23f344bb Binary files /dev/null and b/cesium/Assets/Textures/maki/baseball.png differ diff --git a/cesium/Assets/Textures/maki/basketball.png b/cesium/Assets/Textures/maki/basketball.png new file mode 100644 index 00000000..7ed3bfce Binary files /dev/null and b/cesium/Assets/Textures/maki/basketball.png differ diff --git a/cesium/Assets/Textures/maki/beer.png b/cesium/Assets/Textures/maki/beer.png new file mode 100644 index 00000000..a15cf991 Binary files /dev/null and b/cesium/Assets/Textures/maki/beer.png differ diff --git a/cesium/Assets/Textures/maki/bicycle.png b/cesium/Assets/Textures/maki/bicycle.png new file mode 100644 index 00000000..fb871be4 Binary files /dev/null and b/cesium/Assets/Textures/maki/bicycle.png differ diff --git a/cesium/Assets/Textures/maki/building.png b/cesium/Assets/Textures/maki/building.png new file mode 100644 index 00000000..885f1128 Binary files /dev/null and b/cesium/Assets/Textures/maki/building.png differ diff --git a/cesium/Assets/Textures/maki/bus.png b/cesium/Assets/Textures/maki/bus.png new file mode 100644 index 00000000..78305023 Binary files /dev/null and b/cesium/Assets/Textures/maki/bus.png differ diff --git a/cesium/Assets/Textures/maki/cafe.png b/cesium/Assets/Textures/maki/cafe.png new file mode 100644 index 00000000..2050cba3 Binary files /dev/null and b/cesium/Assets/Textures/maki/cafe.png differ diff --git a/cesium/Assets/Textures/maki/camera.png b/cesium/Assets/Textures/maki/camera.png new file mode 100644 index 00000000..ec54e12a Binary files /dev/null and b/cesium/Assets/Textures/maki/camera.png differ diff --git a/cesium/Assets/Textures/maki/campsite.png b/cesium/Assets/Textures/maki/campsite.png new file mode 100644 index 00000000..36e0a92d Binary files /dev/null and b/cesium/Assets/Textures/maki/campsite.png differ diff --git a/cesium/Assets/Textures/maki/car.png b/cesium/Assets/Textures/maki/car.png new file mode 100644 index 00000000..2075afa5 Binary files /dev/null and b/cesium/Assets/Textures/maki/car.png differ diff --git a/cesium/Assets/Textures/maki/cemetery.png b/cesium/Assets/Textures/maki/cemetery.png new file mode 100644 index 00000000..df244fda Binary files /dev/null and b/cesium/Assets/Textures/maki/cemetery.png differ diff --git a/cesium/Assets/Textures/maki/cesium.png b/cesium/Assets/Textures/maki/cesium.png new file mode 100644 index 00000000..ce2755de Binary files /dev/null and b/cesium/Assets/Textures/maki/cesium.png differ diff --git a/cesium/Assets/Textures/maki/chemist.png b/cesium/Assets/Textures/maki/chemist.png new file mode 100644 index 00000000..eb1ea357 Binary files /dev/null and b/cesium/Assets/Textures/maki/chemist.png differ diff --git a/cesium/Assets/Textures/maki/cinema.png b/cesium/Assets/Textures/maki/cinema.png new file mode 100644 index 00000000..56b69256 Binary files /dev/null and b/cesium/Assets/Textures/maki/cinema.png differ diff --git a/cesium/Assets/Textures/maki/circle-stroked.png b/cesium/Assets/Textures/maki/circle-stroked.png new file mode 100644 index 00000000..88689e47 Binary files /dev/null and b/cesium/Assets/Textures/maki/circle-stroked.png differ diff --git a/cesium/Assets/Textures/maki/circle.png b/cesium/Assets/Textures/maki/circle.png new file mode 100644 index 00000000..fbbd5822 Binary files /dev/null and b/cesium/Assets/Textures/maki/circle.png differ diff --git a/cesium/Assets/Textures/maki/city.png b/cesium/Assets/Textures/maki/city.png new file mode 100644 index 00000000..37d8fad8 Binary files /dev/null and b/cesium/Assets/Textures/maki/city.png differ diff --git a/cesium/Assets/Textures/maki/clothing-store.png b/cesium/Assets/Textures/maki/clothing-store.png new file mode 100644 index 00000000..ff5f8a2b Binary files /dev/null and b/cesium/Assets/Textures/maki/clothing-store.png differ diff --git a/cesium/Assets/Textures/maki/college.png b/cesium/Assets/Textures/maki/college.png new file mode 100644 index 00000000..10263870 Binary files /dev/null and b/cesium/Assets/Textures/maki/college.png differ diff --git a/cesium/Assets/Textures/maki/commercial.png b/cesium/Assets/Textures/maki/commercial.png new file mode 100644 index 00000000..fdf3b63c Binary files /dev/null and b/cesium/Assets/Textures/maki/commercial.png differ diff --git a/cesium/Assets/Textures/maki/cricket.png b/cesium/Assets/Textures/maki/cricket.png new file mode 100644 index 00000000..6642a3af Binary files /dev/null and b/cesium/Assets/Textures/maki/cricket.png differ diff --git a/cesium/Assets/Textures/maki/cross.png b/cesium/Assets/Textures/maki/cross.png new file mode 100644 index 00000000..8945b3b4 Binary files /dev/null and b/cesium/Assets/Textures/maki/cross.png differ diff --git a/cesium/Assets/Textures/maki/dam.png b/cesium/Assets/Textures/maki/dam.png new file mode 100644 index 00000000..aed88a88 Binary files /dev/null and b/cesium/Assets/Textures/maki/dam.png differ diff --git a/cesium/Assets/Textures/maki/danger.png b/cesium/Assets/Textures/maki/danger.png new file mode 100644 index 00000000..9479572c Binary files /dev/null and b/cesium/Assets/Textures/maki/danger.png differ diff --git a/cesium/Assets/Textures/maki/disability.png b/cesium/Assets/Textures/maki/disability.png new file mode 100644 index 00000000..1cc35509 Binary files /dev/null and b/cesium/Assets/Textures/maki/disability.png differ diff --git a/cesium/Assets/Textures/maki/dog-park.png b/cesium/Assets/Textures/maki/dog-park.png new file mode 100644 index 00000000..3483e35b Binary files /dev/null and b/cesium/Assets/Textures/maki/dog-park.png differ diff --git a/cesium/Assets/Textures/maki/embassy.png b/cesium/Assets/Textures/maki/embassy.png new file mode 100644 index 00000000..46b7e1e1 Binary files /dev/null and b/cesium/Assets/Textures/maki/embassy.png differ diff --git a/cesium/Assets/Textures/maki/emergency-telephone.png b/cesium/Assets/Textures/maki/emergency-telephone.png new file mode 100644 index 00000000..fac62396 Binary files /dev/null and b/cesium/Assets/Textures/maki/emergency-telephone.png differ diff --git a/cesium/Assets/Textures/maki/entrance.png b/cesium/Assets/Textures/maki/entrance.png new file mode 100644 index 00000000..b0ba8c5d Binary files /dev/null and b/cesium/Assets/Textures/maki/entrance.png differ diff --git a/cesium/Assets/Textures/maki/farm.png b/cesium/Assets/Textures/maki/farm.png new file mode 100644 index 00000000..7b03e825 Binary files /dev/null and b/cesium/Assets/Textures/maki/farm.png differ diff --git a/cesium/Assets/Textures/maki/fast-food.png b/cesium/Assets/Textures/maki/fast-food.png new file mode 100644 index 00000000..9488c263 Binary files /dev/null and b/cesium/Assets/Textures/maki/fast-food.png differ diff --git a/cesium/Assets/Textures/maki/ferry.png b/cesium/Assets/Textures/maki/ferry.png new file mode 100644 index 00000000..58c2f27a Binary files /dev/null and b/cesium/Assets/Textures/maki/ferry.png differ diff --git a/cesium/Assets/Textures/maki/fire-station.png b/cesium/Assets/Textures/maki/fire-station.png new file mode 100644 index 00000000..427512f1 Binary files /dev/null and b/cesium/Assets/Textures/maki/fire-station.png differ diff --git a/cesium/Assets/Textures/maki/fuel.png b/cesium/Assets/Textures/maki/fuel.png new file mode 100644 index 00000000..dc6059b9 Binary files /dev/null and b/cesium/Assets/Textures/maki/fuel.png differ diff --git a/cesium/Assets/Textures/maki/garden.png b/cesium/Assets/Textures/maki/garden.png new file mode 100644 index 00000000..265edb8d Binary files /dev/null and b/cesium/Assets/Textures/maki/garden.png differ diff --git a/cesium/Assets/Textures/maki/gift.png b/cesium/Assets/Textures/maki/gift.png new file mode 100644 index 00000000..866263e1 Binary files /dev/null and b/cesium/Assets/Textures/maki/gift.png differ diff --git a/cesium/Assets/Textures/maki/golf.png b/cesium/Assets/Textures/maki/golf.png new file mode 100644 index 00000000..2169d915 Binary files /dev/null and b/cesium/Assets/Textures/maki/golf.png differ diff --git a/cesium/Assets/Textures/maki/grocery.png b/cesium/Assets/Textures/maki/grocery.png new file mode 100644 index 00000000..05b09d4a Binary files /dev/null and b/cesium/Assets/Textures/maki/grocery.png differ diff --git a/cesium/Assets/Textures/maki/hairdresser.png b/cesium/Assets/Textures/maki/hairdresser.png new file mode 100644 index 00000000..68fbe1e8 Binary files /dev/null and b/cesium/Assets/Textures/maki/hairdresser.png differ diff --git a/cesium/Assets/Textures/maki/harbor.png b/cesium/Assets/Textures/maki/harbor.png new file mode 100644 index 00000000..2814f3cd Binary files /dev/null and b/cesium/Assets/Textures/maki/harbor.png differ diff --git a/cesium/Assets/Textures/maki/heart.png b/cesium/Assets/Textures/maki/heart.png new file mode 100644 index 00000000..82e98082 Binary files /dev/null and b/cesium/Assets/Textures/maki/heart.png differ diff --git a/cesium/Assets/Textures/maki/heliport.png b/cesium/Assets/Textures/maki/heliport.png new file mode 100644 index 00000000..953828d9 Binary files /dev/null and b/cesium/Assets/Textures/maki/heliport.png differ diff --git a/cesium/Assets/Textures/maki/hospital.png b/cesium/Assets/Textures/maki/hospital.png new file mode 100644 index 00000000..faf294e8 Binary files /dev/null and b/cesium/Assets/Textures/maki/hospital.png differ diff --git a/cesium/Assets/Textures/maki/ice-cream.png b/cesium/Assets/Textures/maki/ice-cream.png new file mode 100644 index 00000000..323c9649 Binary files /dev/null and b/cesium/Assets/Textures/maki/ice-cream.png differ diff --git a/cesium/Assets/Textures/maki/industrial.png b/cesium/Assets/Textures/maki/industrial.png new file mode 100644 index 00000000..9b3b525d Binary files /dev/null and b/cesium/Assets/Textures/maki/industrial.png differ diff --git a/cesium/Assets/Textures/maki/land-use.png b/cesium/Assets/Textures/maki/land-use.png new file mode 100644 index 00000000..f86b21bc Binary files /dev/null and b/cesium/Assets/Textures/maki/land-use.png differ diff --git a/cesium/Assets/Textures/maki/laundry.png b/cesium/Assets/Textures/maki/laundry.png new file mode 100644 index 00000000..53fd20de Binary files /dev/null and b/cesium/Assets/Textures/maki/laundry.png differ diff --git a/cesium/Assets/Textures/maki/library.png b/cesium/Assets/Textures/maki/library.png new file mode 100644 index 00000000..8564e84a Binary files /dev/null and b/cesium/Assets/Textures/maki/library.png differ diff --git a/cesium/Assets/Textures/maki/lighthouse.png b/cesium/Assets/Textures/maki/lighthouse.png new file mode 100644 index 00000000..a78e21a5 Binary files /dev/null and b/cesium/Assets/Textures/maki/lighthouse.png differ diff --git a/cesium/Assets/Textures/maki/lodging.png b/cesium/Assets/Textures/maki/lodging.png new file mode 100644 index 00000000..4e41ea6f Binary files /dev/null and b/cesium/Assets/Textures/maki/lodging.png differ diff --git a/cesium/Assets/Textures/maki/logging.png b/cesium/Assets/Textures/maki/logging.png new file mode 100644 index 00000000..4aeef0b7 Binary files /dev/null and b/cesium/Assets/Textures/maki/logging.png differ diff --git a/cesium/Assets/Textures/maki/london-underground.png b/cesium/Assets/Textures/maki/london-underground.png new file mode 100644 index 00000000..94972f7d Binary files /dev/null and b/cesium/Assets/Textures/maki/london-underground.png differ diff --git a/cesium/Assets/Textures/maki/marker-stroked.png b/cesium/Assets/Textures/maki/marker-stroked.png new file mode 100644 index 00000000..f00d1123 Binary files /dev/null and b/cesium/Assets/Textures/maki/marker-stroked.png differ diff --git a/cesium/Assets/Textures/maki/marker.png b/cesium/Assets/Textures/maki/marker.png new file mode 100644 index 00000000..825eeca6 Binary files /dev/null and b/cesium/Assets/Textures/maki/marker.png differ diff --git a/cesium/Assets/Textures/maki/minefield.png b/cesium/Assets/Textures/maki/minefield.png new file mode 100644 index 00000000..60e174ab Binary files /dev/null and b/cesium/Assets/Textures/maki/minefield.png differ diff --git a/cesium/Assets/Textures/maki/mobilephone.png b/cesium/Assets/Textures/maki/mobilephone.png new file mode 100644 index 00000000..a40ef9c1 Binary files /dev/null and b/cesium/Assets/Textures/maki/mobilephone.png differ diff --git a/cesium/Assets/Textures/maki/monument.png b/cesium/Assets/Textures/maki/monument.png new file mode 100644 index 00000000..5b8b7deb Binary files /dev/null and b/cesium/Assets/Textures/maki/monument.png differ diff --git a/cesium/Assets/Textures/maki/museum.png b/cesium/Assets/Textures/maki/museum.png new file mode 100644 index 00000000..23c17900 Binary files /dev/null and b/cesium/Assets/Textures/maki/museum.png differ diff --git a/cesium/Assets/Textures/maki/music.png b/cesium/Assets/Textures/maki/music.png new file mode 100644 index 00000000..dbef56f2 Binary files /dev/null and b/cesium/Assets/Textures/maki/music.png differ diff --git a/cesium/Assets/Textures/maki/oil-well.png b/cesium/Assets/Textures/maki/oil-well.png new file mode 100644 index 00000000..a421f5aa Binary files /dev/null and b/cesium/Assets/Textures/maki/oil-well.png differ diff --git a/cesium/Assets/Textures/maki/park.png b/cesium/Assets/Textures/maki/park.png new file mode 100644 index 00000000..741110e3 Binary files /dev/null and b/cesium/Assets/Textures/maki/park.png differ diff --git a/cesium/Assets/Textures/maki/park2.png b/cesium/Assets/Textures/maki/park2.png new file mode 100644 index 00000000..5f60dcc4 Binary files /dev/null and b/cesium/Assets/Textures/maki/park2.png differ diff --git a/cesium/Assets/Textures/maki/parking-garage.png b/cesium/Assets/Textures/maki/parking-garage.png new file mode 100644 index 00000000..b91a811a Binary files /dev/null and b/cesium/Assets/Textures/maki/parking-garage.png differ diff --git a/cesium/Assets/Textures/maki/parking.png b/cesium/Assets/Textures/maki/parking.png new file mode 100644 index 00000000..6a843d93 Binary files /dev/null and b/cesium/Assets/Textures/maki/parking.png differ diff --git a/cesium/Assets/Textures/maki/pharmacy.png b/cesium/Assets/Textures/maki/pharmacy.png new file mode 100644 index 00000000..d82e4716 Binary files /dev/null and b/cesium/Assets/Textures/maki/pharmacy.png differ diff --git a/cesium/Assets/Textures/maki/pitch.png b/cesium/Assets/Textures/maki/pitch.png new file mode 100644 index 00000000..a8205e80 Binary files /dev/null and b/cesium/Assets/Textures/maki/pitch.png differ diff --git a/cesium/Assets/Textures/maki/place-of-worship.png b/cesium/Assets/Textures/maki/place-of-worship.png new file mode 100644 index 00000000..29f7c317 Binary files /dev/null and b/cesium/Assets/Textures/maki/place-of-worship.png differ diff --git a/cesium/Assets/Textures/maki/playground.png b/cesium/Assets/Textures/maki/playground.png new file mode 100644 index 00000000..5270d3c4 Binary files /dev/null and b/cesium/Assets/Textures/maki/playground.png differ diff --git a/cesium/Assets/Textures/maki/police.png b/cesium/Assets/Textures/maki/police.png new file mode 100644 index 00000000..9787a05e Binary files /dev/null and b/cesium/Assets/Textures/maki/police.png differ diff --git a/cesium/Assets/Textures/maki/polling-place.png b/cesium/Assets/Textures/maki/polling-place.png new file mode 100644 index 00000000..b2d02a90 Binary files /dev/null and b/cesium/Assets/Textures/maki/polling-place.png differ diff --git a/cesium/Assets/Textures/maki/post.png b/cesium/Assets/Textures/maki/post.png new file mode 100644 index 00000000..ee7aaca7 Binary files /dev/null and b/cesium/Assets/Textures/maki/post.png differ diff --git a/cesium/Assets/Textures/maki/prison.png b/cesium/Assets/Textures/maki/prison.png new file mode 100644 index 00000000..355cba44 Binary files /dev/null and b/cesium/Assets/Textures/maki/prison.png differ diff --git a/cesium/Assets/Textures/maki/rail-above.png b/cesium/Assets/Textures/maki/rail-above.png new file mode 100644 index 00000000..e48d7eac Binary files /dev/null and b/cesium/Assets/Textures/maki/rail-above.png differ diff --git a/cesium/Assets/Textures/maki/rail-light.png b/cesium/Assets/Textures/maki/rail-light.png new file mode 100644 index 00000000..895565e0 Binary files /dev/null and b/cesium/Assets/Textures/maki/rail-light.png differ diff --git a/cesium/Assets/Textures/maki/rail-metro.png b/cesium/Assets/Textures/maki/rail-metro.png new file mode 100644 index 00000000..86078c91 Binary files /dev/null and b/cesium/Assets/Textures/maki/rail-metro.png differ diff --git a/cesium/Assets/Textures/maki/rail-underground.png b/cesium/Assets/Textures/maki/rail-underground.png new file mode 100644 index 00000000..42cfeb7e Binary files /dev/null and b/cesium/Assets/Textures/maki/rail-underground.png differ diff --git a/cesium/Assets/Textures/maki/rail.png b/cesium/Assets/Textures/maki/rail.png new file mode 100644 index 00000000..8af055dd Binary files /dev/null and b/cesium/Assets/Textures/maki/rail.png differ diff --git a/cesium/Assets/Textures/maki/religious-christian.png b/cesium/Assets/Textures/maki/religious-christian.png new file mode 100644 index 00000000..201bc81c Binary files /dev/null and b/cesium/Assets/Textures/maki/religious-christian.png differ diff --git a/cesium/Assets/Textures/maki/religious-jewish.png b/cesium/Assets/Textures/maki/religious-jewish.png new file mode 100644 index 00000000..e3c75f6b Binary files /dev/null and b/cesium/Assets/Textures/maki/religious-jewish.png differ diff --git a/cesium/Assets/Textures/maki/religious-muslim.png b/cesium/Assets/Textures/maki/religious-muslim.png new file mode 100644 index 00000000..25cbf08a Binary files /dev/null and b/cesium/Assets/Textures/maki/religious-muslim.png differ diff --git a/cesium/Assets/Textures/maki/restaurant.png b/cesium/Assets/Textures/maki/restaurant.png new file mode 100644 index 00000000..816282a6 Binary files /dev/null and b/cesium/Assets/Textures/maki/restaurant.png differ diff --git a/cesium/Assets/Textures/maki/roadblock.png b/cesium/Assets/Textures/maki/roadblock.png new file mode 100644 index 00000000..539f0ed8 Binary files /dev/null and b/cesium/Assets/Textures/maki/roadblock.png differ diff --git a/cesium/Assets/Textures/maki/rocket.png b/cesium/Assets/Textures/maki/rocket.png new file mode 100644 index 00000000..e6ed7187 Binary files /dev/null and b/cesium/Assets/Textures/maki/rocket.png differ diff --git a/cesium/Assets/Textures/maki/school.png b/cesium/Assets/Textures/maki/school.png new file mode 100644 index 00000000..fb20bf4e Binary files /dev/null and b/cesium/Assets/Textures/maki/school.png differ diff --git a/cesium/Assets/Textures/maki/scooter.png b/cesium/Assets/Textures/maki/scooter.png new file mode 100644 index 00000000..41f74164 Binary files /dev/null and b/cesium/Assets/Textures/maki/scooter.png differ diff --git a/cesium/Assets/Textures/maki/shop.png b/cesium/Assets/Textures/maki/shop.png new file mode 100644 index 00000000..11a6b755 Binary files /dev/null and b/cesium/Assets/Textures/maki/shop.png differ diff --git a/cesium/Assets/Textures/maki/skiing.png b/cesium/Assets/Textures/maki/skiing.png new file mode 100644 index 00000000..4fc11e2e Binary files /dev/null and b/cesium/Assets/Textures/maki/skiing.png differ diff --git a/cesium/Assets/Textures/maki/slaughterhouse.png b/cesium/Assets/Textures/maki/slaughterhouse.png new file mode 100644 index 00000000..9b094cab Binary files /dev/null and b/cesium/Assets/Textures/maki/slaughterhouse.png differ diff --git a/cesium/Assets/Textures/maki/soccer.png b/cesium/Assets/Textures/maki/soccer.png new file mode 100644 index 00000000..2385daf9 Binary files /dev/null and b/cesium/Assets/Textures/maki/soccer.png differ diff --git a/cesium/Assets/Textures/maki/square-stroked.png b/cesium/Assets/Textures/maki/square-stroked.png new file mode 100644 index 00000000..fce75b0d Binary files /dev/null and b/cesium/Assets/Textures/maki/square-stroked.png differ diff --git a/cesium/Assets/Textures/maki/square.png b/cesium/Assets/Textures/maki/square.png new file mode 100644 index 00000000..babc9c53 Binary files /dev/null and b/cesium/Assets/Textures/maki/square.png differ diff --git a/cesium/Assets/Textures/maki/star-stroked.png b/cesium/Assets/Textures/maki/star-stroked.png new file mode 100644 index 00000000..242e42e2 Binary files /dev/null and b/cesium/Assets/Textures/maki/star-stroked.png differ diff --git a/cesium/Assets/Textures/maki/star.png b/cesium/Assets/Textures/maki/star.png new file mode 100644 index 00000000..447dd384 Binary files /dev/null and b/cesium/Assets/Textures/maki/star.png differ diff --git a/cesium/Assets/Textures/maki/suitcase.png b/cesium/Assets/Textures/maki/suitcase.png new file mode 100644 index 00000000..a94f562e Binary files /dev/null and b/cesium/Assets/Textures/maki/suitcase.png differ diff --git a/cesium/Assets/Textures/maki/swimming.png b/cesium/Assets/Textures/maki/swimming.png new file mode 100644 index 00000000..b9fbdcc5 Binary files /dev/null and b/cesium/Assets/Textures/maki/swimming.png differ diff --git a/cesium/Assets/Textures/maki/telephone.png b/cesium/Assets/Textures/maki/telephone.png new file mode 100644 index 00000000..6d57dc61 Binary files /dev/null and b/cesium/Assets/Textures/maki/telephone.png differ diff --git a/cesium/Assets/Textures/maki/tennis.png b/cesium/Assets/Textures/maki/tennis.png new file mode 100644 index 00000000..6cb63205 Binary files /dev/null and b/cesium/Assets/Textures/maki/tennis.png differ diff --git a/cesium/Assets/Textures/maki/theatre.png b/cesium/Assets/Textures/maki/theatre.png new file mode 100644 index 00000000..772c96e4 Binary files /dev/null and b/cesium/Assets/Textures/maki/theatre.png differ diff --git a/cesium/Assets/Textures/maki/toilets.png b/cesium/Assets/Textures/maki/toilets.png new file mode 100644 index 00000000..e87cf19c Binary files /dev/null and b/cesium/Assets/Textures/maki/toilets.png differ diff --git a/cesium/Assets/Textures/maki/town-hall.png b/cesium/Assets/Textures/maki/town-hall.png new file mode 100644 index 00000000..1af5c7ce Binary files /dev/null and b/cesium/Assets/Textures/maki/town-hall.png differ diff --git a/cesium/Assets/Textures/maki/town.png b/cesium/Assets/Textures/maki/town.png new file mode 100644 index 00000000..41661695 Binary files /dev/null and b/cesium/Assets/Textures/maki/town.png differ diff --git a/cesium/Assets/Textures/maki/triangle-stroked.png b/cesium/Assets/Textures/maki/triangle-stroked.png new file mode 100644 index 00000000..131c7d94 Binary files /dev/null and b/cesium/Assets/Textures/maki/triangle-stroked.png differ diff --git a/cesium/Assets/Textures/maki/triangle.png b/cesium/Assets/Textures/maki/triangle.png new file mode 100644 index 00000000..d9c47f42 Binary files /dev/null and b/cesium/Assets/Textures/maki/triangle.png differ diff --git a/cesium/Assets/Textures/maki/village.png b/cesium/Assets/Textures/maki/village.png new file mode 100644 index 00000000..2650af50 Binary files /dev/null and b/cesium/Assets/Textures/maki/village.png differ diff --git a/cesium/Assets/Textures/maki/warehouse.png b/cesium/Assets/Textures/maki/warehouse.png new file mode 100644 index 00000000..910f1e4c Binary files /dev/null and b/cesium/Assets/Textures/maki/warehouse.png differ diff --git a/cesium/Assets/Textures/maki/waste-basket.png b/cesium/Assets/Textures/maki/waste-basket.png new file mode 100644 index 00000000..a71f9e4d Binary files /dev/null and b/cesium/Assets/Textures/maki/waste-basket.png differ diff --git a/cesium/Assets/Textures/maki/water.png b/cesium/Assets/Textures/maki/water.png new file mode 100644 index 00000000..159a557d Binary files /dev/null and b/cesium/Assets/Textures/maki/water.png differ diff --git a/cesium/Assets/Textures/maki/wetland.png b/cesium/Assets/Textures/maki/wetland.png new file mode 100644 index 00000000..1e8dec83 Binary files /dev/null and b/cesium/Assets/Textures/maki/wetland.png differ diff --git a/cesium/Assets/Textures/maki/zoo.png b/cesium/Assets/Textures/maki/zoo.png new file mode 100644 index 00000000..48022999 Binary files /dev/null and b/cesium/Assets/Textures/maki/zoo.png differ diff --git a/cesium/Assets/Textures/moonSmall.jpg b/cesium/Assets/Textures/moonSmall.jpg new file mode 100644 index 00000000..47f52522 Binary files /dev/null and b/cesium/Assets/Textures/moonSmall.jpg differ diff --git a/cesium/Assets/Textures/pin.svg b/cesium/Assets/Textures/pin.svg new file mode 100644 index 00000000..7892c368 --- /dev/null +++ b/cesium/Assets/Textures/pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cesium/Assets/Textures/waterNormals.jpg b/cesium/Assets/Textures/waterNormals.jpg new file mode 100644 index 00000000..eb1baa2d Binary files /dev/null and b/cesium/Assets/Textures/waterNormals.jpg differ diff --git a/cesium/Assets/Textures/waterNormalsSmall.jpg b/cesium/Assets/Textures/waterNormalsSmall.jpg new file mode 100644 index 00000000..57b19d8f Binary files /dev/null and b/cesium/Assets/Textures/waterNormalsSmall.jpg differ diff --git a/cesium/Assets/approximateTerrainHeights.json b/cesium/Assets/approximateTerrainHeights.json new file mode 100644 index 00000000..259b1cbb --- /dev/null +++ b/cesium/Assets/approximateTerrainHeights.json @@ -0,0 +1 @@ +{"6-0-0":[-60.9,1359.39],"6-0-1":[-734.16,2871.77],"6-0-2":[-860.34,14.2],"6-0-3":[-820.07,8.89],"6-0-4":[-822.21,6.8],"6-0-5":[-1287.68,4.22],"6-0-6":[-3806.44,996.64],"6-0-7":[-4083.09,1473.8],"6-0-8":[-4254.47,1405.42],"6-0-9":[-4909.7,9.42],"6-0-10":[-5356.65,10.41],"6-0-11":[-5779.14,9.42],"6-0-12":[-5680.2,10.72],"6-0-13":[-5633.18,1797.13],"6-0-14":[-5473.11,3.24],"6-0-15":[-5073.82,0.06],"6-0-16":[-3112.78,-5.62],"6-0-17":[-4278.61,-10.79],"6-0-18":[-5776.01,-11.56],"6-0-19":[-8664.64,-9.29],"6-0-20":[-10108.73,43.72],"6-0-21":[-6315.74,480.3],"6-0-22":[-3138.45,-0.18],"6-0-23":[-3177.81,259.94],"6-0-24":[-4361.69,195.8],"6-0-25":[-4176.86,1120.83],"6-0-26":[-3604,1188.85],"6-0-27":[-4874.82,377.59],"6-0-28":[-5555.91,212.64],"6-0-29":[-6808.91,32.43],"6-0-30":[-6537.63,36.44],"6-0-31":[-5876.58,41.7],"6-0-32":[-6002.84,43.91],"6-0-33":[-6383.26,48.69],"6-0-34":[-6458.42,56.5],"6-0-35":[-6608.86,79],"6-0-36":[-6499.38,95.12],"6-0-37":[-6382.42,1242.86],"6-0-38":[-5476.07,1197.83],"6-0-39":[-6577.17,149.88],"6-0-40":[-5871.43,105.09],"6-0-41":[-5691.18,101.97],"6-0-42":[-6084.14,550.11],"6-0-43":[-6456.25,92.57],"6-0-44":[-5403.21,77.99],"6-0-45":[-7722.74,46.63],"6-0-46":[-8051.96,43.07],"6-0-47":[-7228.07,29.35],"6-0-48":[-6696.32,6.49],"6-0-49":[-7347.5,-4.52],"6-0-50":[-5663.37,1731.13],"6-0-51":[-4025.96,-29.46],"6-0-52":[-4181.98,-37.9],"6-0-53":[-3554.43,-44.45],"6-0-54":[-175.4,-32.99],"6-0-55":[-119.7,1412.43],"6-0-56":[-126.97,1474.79],"6-0-57":[-126.3,982.63],"6-0-58":[-1295.62,-59.46],"6-0-59":[-1696.92,-54.84],"6-0-60":[-2540.06,-48.64],"6-0-61":[-2969.81,258.8],"6-0-62":[-3982.53,2997.38],"6-0-63":[-4339.64,3098.17],"6-1-0":[-62.92,1400.78],"6-1-1":[-811.24,3723.38],"5-0-0":[-811.24,3723.38],"6-1-2":[-822.56,15.04],"6-1-3":[-767.63,8.36],"5-0-1":[-860.34,15.04],"6-1-4":[-730.48,6.83],"6-1-5":[-3128.49,4.83],"5-0-2":[-3128.49,6.83],"6-1-6":[-4134.79,343.9],"6-1-7":[-4441.09,308.3],"5-0-3":[-4441.09,1473.8],"6-1-8":[-4533.36,906.96],"6-1-9":[-4556.62,286.65],"5-0-4":[-4909.7,1405.42],"6-1-10":[-5768.3,14],"6-1-11":[-5899.35,14.18],"5-0-5":[-5899.35,14.18],"6-1-12":[-5651.2,10.46],"6-1-13":[-6362.61,1734.24],"5-0-6":[-6362.61,1797.13],"6-1-14":[-5667.12,6.52],"6-1-15":[-5396,1.31],"5-0-7":[-5667.12,6.52],"6-1-16":[-3687.33,294.62],"6-1-17":[-5765.96,-10],"5-0-8":[-5765.96,294.62],"6-1-18":[-5729.6,-12.15],"6-1-19":[-6079.81,-9.22],"5-0-9":[-8664.64,-9.22],"6-1-20":[-10076.36,-7.87],"6-1-21":[-9964.92,0.26],"5-0-10":[-10108.73,480.3],"6-1-22":[-9820.47,9.27],"6-1-23":[-10731.15,6.54],"5-0-11":[-10731.15,259.94],"6-1-24":[-8128.35,538.48],"6-1-25":[-3473,974.2],"5-0-12":[-8128.35,1120.83],"6-1-26":[-5852,229.74],"6-1-27":[-5790.22,521.25],"5-0-13":[-5852,1188.85],"6-1-28":[-5704.51,327.62],"6-1-29":[-6687.63,31.23],"5-0-14":[-6808.91,327.62],"6-1-30":[-6552.55,34.4],"6-1-31":[-6370.48,38.74],"5-0-15":[-6552.55,41.7],"6-1-32":[-5715.64,39.97],"6-1-33":[-5857.02,44.11],"5-0-16":[-6383.26,48.69],"6-1-34":[-6145.81,49.53],"6-1-35":[-6715.64,65.95],"5-0-17":[-6715.64,79],"6-1-36":[-5845.01,188.59],"6-1-37":[-5976.36,262.29],"5-0-18":[-6499.38,1242.86],"6-1-38":[-5615.55,1074.21],"6-1-39":[-5961.75,561.48],"5-0-19":[-6577.17,1197.83],"6-1-40":[-5749.3,105.17],"6-1-41":[-5646.26,99.7],"5-0-20":[-5871.43,105.17],"6-1-42":[-6209.24,82.54],"6-1-43":[-6165.22,61.85],"5-0-21":[-6456.25,550.11],"6-1-44":[-6248.43,55.81],"6-1-45":[-7562.16,46.46],"5-0-22":[-7722.74,77.99],"6-1-46":[-6645.44,36.12],"6-1-47":[-7451.64,306.25],"5-0-23":[-8051.96,306.25],"6-1-48":[-6155.38,5.19],"6-1-49":[-7337.43,-11.13],"5-0-24":[-7347.5,6.49],"6-1-50":[-7328.11,1663.23],"6-1-51":[-4298.74,-29.65],"5-0-25":[-7328.11,1731.13],"6-1-52":[-3730.44,-37.51],"6-1-53":[-191.66,-43.07],"5-0-26":[-4181.98,-37.51],"6-1-54":[-117.87,309.64],"6-1-55":[-120.92,886.84],"5-0-27":[-175.4,1412.43],"6-1-56":[-127.84,338.3],"6-1-57":[-130.41,309.89],"5-0-28":[-130.41,1474.79],"6-1-58":[-2110.87,-59.59],"6-1-59":[-2239.39,-55.12],"5-0-29":[-2239.39,-54.84],"6-1-60":[-3264.35,-49.4],"6-1-61":[-3093.55,-11.15],"5-0-30":[-3264.35,258.8],"6-1-62":[-4063.46,3443.81],"6-1-63":[-4241.6,3102.34],"5-0-31":[-4339.64,3443.81],"6-2-0":[-65.96,1535.56],"6-2-1":[-726.95,3893.49],"6-2-2":[-822.56,15.73],"6-2-3":[-756.52,7.2],"6-2-4":[-976.58,5.79],"6-2-5":[-3873.63,5.62],"6-2-6":[-4273.11,2.52],"6-2-7":[-4730.1,3.57],"6-2-8":[-4275.1,1107.58],"6-2-9":[-4203.77,935.49],"6-2-10":[-5335.51,447.82],"6-2-11":[-5754.56,22.33],"6-2-12":[-5580.99,15.33],"6-2-13":[-6324.53,1546.34],"6-2-14":[-5877.47,10.11],"6-2-15":[-5605.22,3.51],"6-2-16":[-5451.88,-3.75],"6-2-17":[-5191.5,-8.48],"6-2-18":[-5888.86,-11.53],"6-2-19":[-6170.07,-11.45],"6-2-20":[-6231.35,-7.64],"6-2-21":[-6591.66,-2.94],"6-2-22":[-6564.98,22.84],"6-2-23":[-9845.18,13.16],"6-2-24":[-9880.17,66.19],"6-2-25":[-9681.78,234.26],"6-2-26":[-9135.58,489.1],"6-2-27":[-5127.54,1851.33],"6-2-28":[-5847.04,276.4],"6-2-29":[-6984.98,26.06],"6-2-30":[-6587.38,259.45],"6-2-31":[-6810.43,34.73],"6-2-32":[-5944.71,36.73],"6-2-33":[-6196.39,38.35],"6-2-34":[-6274.62,45.33],"6-2-35":[-6655.12,56.51],"6-2-36":[-6233.79,1897.33],"6-2-37":[-6086.2,602.11],"6-2-38":[-5770.59,258.3],"6-2-39":[-5644.12,87.93],"6-2-40":[-5280.45,68.5],"6-2-41":[-5640.3,90.18],"6-2-42":[-5794.61,69.11],"6-2-43":[-6212.25,60.23],"6-2-44":[-6473.07,53.69],"6-2-45":[-6649.88,38.48],"6-2-46":[-6137.71,25.76],"6-2-47":[-7286.95,16.06],"6-2-48":[-6428.91,-1.78],"6-2-49":[-7302.54,-12.47],"6-2-50":[-7770.99,1478.35],"6-2-51":[-3880.57,-28.99],"6-2-52":[-3448.8,-36.15],"6-2-53":[-178.92,439.82],"6-2-54":[-123.47,902.48],"6-2-55":[-118.16,1085.57],"6-2-56":[-127.84,-21.84],"6-2-57":[-132.46,-19.72],"6-2-58":[-2110.87,-59.33],"6-2-59":[-2528.11,-55.1],"6-2-60":[-3347.91,-49.58],"6-2-61":[-3384.08,-43.95],"6-2-62":[-3950.67,3904.3],"6-2-63":[-4226.49,3104.92],"6-3-0":[-67.96,1730.59],"6-3-1":[-816.29,4033.51],"5-1-0":[-816.29,4033.51],"6-3-2":[-811.11,16.58],"6-3-3":[-756.52,6.48],"5-1-1":[-822.56,16.58],"4-0-0":[-860.34,4033.51],"6-3-4":[-1287.47,6.76],"6-3-5":[-4053.9,6.63],"5-1-2":[-4053.9,6.76],"6-3-6":[-4347.97,3.03],"6-3-7":[-4616.06,2.79],"5-1-3":[-4730.1,3.57],"4-0-1":[-4730.1,1473.8],"6-3-8":[-4631.95,912.84],"6-3-9":[-3872.37,618.8],"5-1-4":[-4631.95,1107.58],"6-3-10":[-5400.71,21.82],"6-3-11":[-5589.06,311.37],"5-1-5":[-5754.56,447.82],"4-0-2":[-5899.35,1405.42],"6-3-12":[-5676.31,24.46],"6-3-13":[-5899.59,1745.85],"5-1-6":[-6324.53,1745.85],"6-3-14":[-5693.6,13.6],"6-3-15":[-6424.28,5.28],"5-1-7":[-6424.28,13.6],"4-0-3":[-6424.28,1797.13],"6-3-16":[-5503.34,-3.16],"6-3-17":[-5293.32,-8.29],"5-1-8":[-5503.34,-3.16],"6-3-18":[-5706.05,-10.93],"6-3-19":[-5968.6,-12.17],"5-1-9":[-6170.07,-10.93],"4-0-4":[-8664.64,294.62],"6-3-20":[-6353.54,-7.64],"6-3-21":[-6004.34,0.47],"5-1-10":[-6591.66,0.47],"6-3-22":[-6626.4,23.06],"6-3-23":[-7232.28,22.37],"5-1-11":[-9845.18,23.06],"4-0-5":[-10731.15,480.3],"6-3-24":[-6517.94,19.36],"6-3-25":[-5787.28,113.77],"5-1-12":[-9880.17,234.26],"6-3-26":[-5603.42,996.87],"6-3-27":[-5500.68,711.38],"5-1-13":[-9135.58,1851.33],"4-0-6":[-9880.17,1851.33],"6-3-28":[-6128.57,217.04],"6-3-29":[-5976.44,24.86],"5-1-14":[-6984.98,276.4],"6-3-30":[-6431.75,177.46],"6-3-31":[-7363.73,30.64],"5-1-15":[-7363.73,259.45],"4-0-7":[-7363.73,327.62],"6-3-32":[-5957,33.87],"6-3-33":[-6180.13,35.79],"5-1-16":[-6196.39,38.35],"6-3-34":[-6378.4,41.34],"6-3-35":[-5963.3,51.07],"5-1-17":[-6655.12,56.51],"4-0-8":[-6715.64,79],"6-3-36":[-6145.95,771.39],"6-3-37":[-6134.23,997.06],"5-1-18":[-6233.79,1897.33],"6-3-38":[-5498.8,125.79],"6-3-39":[-5122.04,58.96],"5-1-19":[-5770.59,258.3],"4-0-9":[-6577.17,1897.33],"6-3-40":[-5350.19,59.21],"6-3-41":[-5359.87,68.85],"5-1-20":[-5640.3,90.18],"6-3-42":[-5855.5,55.57],"6-3-43":[-6391.29,45.14],"5-1-21":[-6391.29,69.11],"4-0-10":[-6456.25,550.11],"6-3-44":[-6435.56,42.37],"6-3-45":[-6707.23,30.69],"5-1-22":[-6707.23,53.69],"6-3-46":[-6686.73,18.1],"6-3-47":[-7092.52,6.67],"5-1-23":[-7286.95,25.76],"4-0-11":[-8051.96,306.25],"6-3-48":[-6953.08,-4.53],"6-3-49":[-5732.35,-13.01],"5-1-24":[-7302.54,-1.78],"6-3-50":[-7284.14,1619.84],"6-3-51":[-3483.9,-27.95],"5-1-25":[-7770.99,1619.84],"4-0-12":[-7770.99,1731.13],"6-3-52":[-2236.21,269.38],"6-3-53":[-158.69,-15.42],"5-1-26":[-3448.8,439.82],"6-3-54":[-99.02,616.8],"6-3-55":[-114.54,911.84],"5-1-27":[-123.47,1085.57],"4-0-13":[-4181.98,1412.43],"6-3-56":[-126.73,-22.99],"6-3-57":[-132.79,-17.75],"5-1-28":[-132.79,-17.75],"6-3-58":[-1869.44,-59.46],"6-3-59":[-2920.48,-55.06],"5-1-29":[-2920.48,-55.06],"4-0-14":[-2920.48,1474.79],"6-3-60":[-3346.96,-50.05],"6-3-61":[-3572.53,-43.58],"5-1-30":[-3572.53,-43.58],"6-3-62":[-3949.75,3970.41],"6-3-63":[-4299.54,3106.07],"5-1-31":[-4299.54,3970.41],"4-0-15":[-4339.64,3970.41],"6-4-0":[-67.96,1783.47],"6-4-1":[-1161.5,3926.7],"6-4-2":[-828.82,17.11],"6-4-3":[-704.94,7.09],"6-4-4":[-1407.45,8.01],"6-4-5":[-4181.68,6.22],"6-4-6":[-4383.79,2.41],"6-4-7":[-4623.83,611.05],"6-4-8":[-4397.23,1101.35],"6-4-9":[-3605.91,428.48],"6-4-10":[-5268.98,653.36],"6-4-11":[-5379.79,27.57],"6-4-12":[-5644.48,1825.97],"6-4-13":[-5659.92,2084.32],"6-4-14":[-5581.4,18.16],"6-4-15":[-6069.3,6.15],"6-4-16":[-5732.91,-2.51],"6-4-17":[-5561.06,-7.81],"6-4-18":[-5467.07,-10.93],"6-4-19":[-6445.04,-11.62],"6-4-20":[-6164.47,-7.94],"6-4-21":[-5852.56,0.97],"6-4-22":[-6692.69,17.55],"6-4-23":[-6202.21,28.15],"6-4-24":[-6698.19,19.59],"6-4-25":[-9080.84,56.94],"6-4-26":[-6082.57,22.24],"6-4-27":[-5919.39,25.71],"6-4-28":[-5822.56,27.19],"6-4-29":[-6220.26,27.84],"6-4-30":[-6622.88,28.27],"6-4-31":[-8273.64,29.58],"6-4-32":[-6224.53,32.89],"6-4-33":[-6221.95,34.86],"6-4-34":[-5718.7,35.6],"6-4-35":[-5595.88,39.9],"6-4-36":[-5808.46,43.72],"6-4-37":[-5899.51,45.71],"6-4-38":[-6912.49,48.56],"6-4-39":[-6145.04,45.88],"6-4-40":[-5619.26,863.24],"6-4-41":[-5186.7,42.29],"6-4-42":[-6049.87,42.26],"6-4-43":[-6355.98,37.32],"6-4-44":[-6622.78,32.28],"6-4-45":[-6960.65,25.33],"6-4-46":[-6793.71,17.65],"6-4-47":[-6566.43,1.08],"6-4-48":[-6377.69,-7.42],"6-4-49":[-5865.62,-13.57],"6-4-50":[-7273.09,1965.32],"6-4-51":[-5208.92,1802.98],"6-4-52":[-514.98,6.05],"6-4-53":[-481.77,671.37],"6-4-54":[-97.35,455.48],"6-4-55":[-113.49,1067.35],"6-4-56":[-126.75,528.03],"6-4-57":[-131.59,-27.82],"6-4-58":[-546.1,-58.9],"6-4-59":[-2622.06,-55.06],"6-4-60":[-3507.79,-49.97],"6-4-61":[-3821.97,-43.61],"6-4-62":[-3936.9,3807.76],"6-4-63":[-4312.53,3106.13],"6-5-0":[-65.96,1809.17],"6-5-1":[-1123.74,3611.78],"5-2-0":[-1161.5,3926.7],"6-5-2":[-783.29,17.66],"6-5-3":[-769.58,7.26],"5-2-1":[-828.82,17.66],"6-5-4":[-2373.31,8],"6-5-5":[-4237.37,1.64],"5-2-2":[-4237.37,8.01],"6-5-6":[-4523.95,0.57],"6-5-7":[-4449.41,977.81],"5-2-3":[-4623.83,977.81],"6-5-8":[-4776.71,1285.63],"6-5-9":[-3809.51,689.98],"5-2-4":[-4776.71,1285.63],"6-5-10":[-5160.02,574.41],"6-5-11":[-5484.51,29.76],"5-2-5":[-5484.51,653.36],"6-5-12":[-5463.02,2863.96],"6-5-13":[-5510.9,25.08],"5-2-6":[-5659.92,2863.96],"6-5-14":[-5633.47,19.59],"6-5-15":[-6371.35,5.94],"5-2-7":[-6371.35,19.59],"6-5-16":[-5828.33,-2.51],"6-5-17":[-6421.22,-7.99],"5-2-8":[-6421.22,-2.51],"6-5-18":[-5982.99,-11.55],"6-5-19":[-6565.05,-11.81],"5-2-9":[-6565.05,-10.93],"6-5-20":[-6784.16,-7.94],"6-5-21":[-6028.23,-0.19],"5-2-10":[-6784.16,0.97],"6-5-22":[-6399.53,8.23],"6-5-23":[-6135.89,68.18],"5-2-11":[-6692.69,68.18],"6-5-24":[-6055.38,18.67],"6-5-25":[-5836.09,998.66],"5-2-12":[-9080.84,998.66],"6-5-26":[-6060.91,20.47],"6-5-27":[-5996.07,196.74],"5-2-13":[-6082.57,196.74],"6-5-28":[-5155.46,84.53],"6-5-29":[-6004.46,30.66],"5-2-14":[-6220.26,84.53],"6-5-30":[-5896.13,32.3],"6-5-31":[-6776.17,32.65],"5-2-15":[-8273.64,32.65],"6-5-32":[-5810.52,32.3],"6-5-33":[-5562.23,34.31],"5-2-16":[-6224.53,34.86],"6-5-34":[-5388.87,33.96],"6-5-35":[-5395.61,37.54],"5-2-17":[-5718.7,39.9],"6-5-36":[-5752.23,37.44],"6-5-37":[-5924.58,31.1],"5-2-18":[-5924.58,45.71],"6-5-38":[-6440.59,38.62],"6-5-39":[-5463.5,31.7],"5-2-19":[-6912.49,48.56],"6-5-40":[-5484.19,50.2],"6-5-41":[-5747.8,29.27],"5-2-20":[-5747.8,863.24],"6-5-42":[-5919.79,28.59],"6-5-43":[-6218.64,25.16],"5-2-21":[-6355.98,42.26],"6-5-44":[-7345.46,23.39],"6-5-45":[-6835.24,19.09],"5-2-22":[-7345.46,32.28],"6-5-46":[-6802.21,10.74],"6-5-47":[-5979.18,-0.35],"5-2-23":[-6802.21,17.65],"6-5-48":[-5777.25,-8.28],"6-5-49":[-5982.59,-13.41],"5-2-24":[-6377.69,-7.42],"6-5-50":[-7131.76,-19.83],"6-5-51":[-4248.36,2750.95],"5-2-25":[-7273.09,2750.95],"6-5-52":[-82.49,0.95],"6-5-53":[-85.9,583.42],"5-2-26":[-514.98,671.37],"6-5-54":[-96.28,649.97],"6-5-55":[-112.03,1302.63],"5-2-27":[-113.49,1302.63],"6-5-56":[-123.43,899.72],"6-5-57":[-130.93,-28.8],"5-2-28":[-131.59,899.72],"6-5-58":[-2065.53,-59.02],"6-5-59":[-2302.29,-54.72],"5-2-29":[-2622.06,-54.72],"6-5-60":[-3827.92,146.66],"6-5-61":[-3883.39,-43.74],"5-2-30":[-3883.39,146.66],"6-5-62":[-4110.64,3579.75],"6-5-63":[-4229.45,3100.28],"5-2-31":[-4312.53,3807.76],"6-6-0":[-94.11,1778.04],"6-6-1":[-1591.32,2998.88],"6-6-2":[-746.81,17.98],"6-6-3":[-770.17,6.62],"6-6-4":[-3154.74,6.62],"6-6-5":[-4196.81,0.42],"6-6-6":[-4609.89,37.03],"6-6-7":[-4642.27,1376.89],"6-6-8":[-4626.96,982.62],"6-6-9":[-4855.42,985.82],"6-6-10":[-5061.5,1234.98],"6-6-11":[-4882.7,705.14],"6-6-12":[-5664.91,2536.32],"6-6-13":[-5500.81,22.83],"6-6-14":[-5641.77,19.52],"6-6-15":[-6089.63,5.64],"6-6-16":[-6504.35,-3.61],"6-6-17":[-6018.21,-9.15],"6-6-18":[-5722.93,-12.33],"6-6-19":[-6011.9,-12.54],"6-6-20":[-6422.91,-8.27],"6-6-21":[-6422.91,-1.95],"6-6-22":[-6254.61,7.14],"6-6-23":[-5852.12,190.01],"6-6-24":[-5518.96,138.47],"6-6-25":[-5674.11,119.03],"6-6-26":[-6452.43,16.51],"6-6-27":[-5818.55,191.73],"6-6-28":[-5208.22,135.96],"6-6-29":[-6149.2,51.55],"6-6-30":[-6208.7,50.16],"6-6-31":[-5562.63,33.27],"6-6-32":[-5937.47,31.91],"6-6-33":[-5302.58,272.18],"6-6-34":[-5325.41,52.97],"6-6-35":[-5599.08,41.94],"6-6-36":[-6146.87,29.88],"6-6-37":[-6482.14,25.29],"6-6-38":[-6038.67,32.55],"6-6-39":[-5338.91,25.04],"6-6-40":[-5281.24,46.05],"6-6-41":[-5779.94,21.25],"6-6-42":[-6126.98,21.21],"6-6-43":[-6173.19,20.07],"6-6-44":[-6250.7,16.55],"6-6-45":[-7523.68,12.64],"6-6-46":[-6434.49,7.66],"6-6-47":[-5854.24,-0.23],"6-6-48":[-5883.17,-8.01],"6-6-49":[-5303.84,-13.39],"6-6-50":[-6978.57,-19.08],"6-6-51":[-6793.58,2398.31],"6-6-52":[-80.36,612.17],"6-6-53":[-89.66,1323.98],"6-6-54":[-95.47,955.8],"6-6-55":[-110.06,986.95],"6-6-56":[-123.5,1457.88],"6-6-57":[-267.02,37.04],"6-6-58":[-2483.25,-62.06],"6-6-59":[-2735.7,-53.84],"6-6-60":[-3837.89,382.35],"6-6-61":[-3859.19,-36.44],"6-6-62":[-4111.64,3110.85],"6-6-63":[-4265.4,3090.17],"6-7-0":[-114.12,1993.53],"6-7-1":[-1659.34,3802.26],"5-3-0":[-1659.34,3802.26],"6-7-2":[-726.96,18.02],"6-7-3":[-856.88,4.75],"5-3-1":[-856.88,18.02],"4-1-0":[-1659.34,3926.7],"6-7-4":[-3515.76,174.18],"6-7-5":[-4316.77,-0.69],"5-3-2":[-4316.77,174.18],"6-7-6":[-4525.93,40.51],"6-7-7":[-4826.23,1489.28],"5-3-3":[-4826.23,1489.28],"4-1-1":[-4826.23,1489.28],"3-0-0":[-4826.23,4033.51],"6-7-8":[-4705.16,1063.92],"6-7-9":[-4508.79,1104.57],"5-3-4":[-4855.42,1104.57],"6-7-10":[-4405.97,1599.96],"6-7-11":[-4732.4,1740.57],"5-3-5":[-5061.5,1740.57],"4-1-2":[-5484.51,1740.57],"6-7-12":[-5035.8,2512.65],"6-7-13":[-6007.55,22.76],"5-3-6":[-6007.55,2536.32],"6-7-14":[-5655.69,18.21],"6-7-15":[-5490.55,3.05],"5-3-7":[-6089.63,19.52],"4-1-3":[-6371.35,2863.96],"3-0-1":[-6424.28,2863.96],"6-7-16":[-5742.76,-4.09],"6-7-17":[-5608.7,-10.07],"5-3-8":[-6504.35,-3.61],"6-7-18":[-5790.02,-13.47],"6-7-19":[-5942.52,-13.83],"5-3-9":[-6011.9,-12.33],"4-1-4":[-6565.05,-2.51],"6-7-20":[-6122.28,-10],"6-7-21":[-5983.9,-3.54],"5-3-10":[-6422.91,-1.95],"6-7-22":[-5652.19,4.69],"6-7-23":[-5471.5,14.6],"5-3-11":[-6254.61,190.01],"4-1-5":[-6784.16,190.01],"3-0-2":[-10731.15,480.3],"6-7-24":[-5211.11,1613.09],"6-7-25":[-10751.44,366.35],"5-3-12":[-10751.44,1613.09],"6-7-26":[-5776.41,11],"6-7-27":[-6202.43,17.46],"5-3-13":[-6452.43,191.73],"4-1-6":[-10751.44,1613.09],"6-7-28":[-6652.2,1903.24],"6-7-29":[-6197.55,32.99],"5-3-14":[-6652.2,1903.24],"6-7-30":[-5754.01,44.95],"6-7-31":[-5455.55,41.99],"5-3-15":[-6208.7,50.16],"4-1-7":[-8273.64,1903.24],"3-0-3":[-10751.44,1903.24],"6-7-32":[-5343.6,107.13],"6-7-33":[-4698.31,110.78],"5-3-16":[-5937.47,272.18],"6-7-34":[-5062.03,27.02],"6-7-35":[-5630.37,36.94],"5-3-17":[-5630.37,52.97],"4-1-8":[-6224.53,272.18],"6-7-36":[-6164.69,22.36],"6-7-37":[-5971.41,18.93],"5-3-18":[-6482.14,29.88],"6-7-38":[-5951.46,124.3],"6-7-39":[-4961.01,1612.94],"5-3-19":[-6038.67,1612.94],"4-1-9":[-6912.49,1612.94],"3-0-4":[-6912.49,1897.33],"6-7-40":[-6841.68,19.09],"6-7-41":[-6117.84,14.77],"5-3-20":[-6841.68,46.05],"6-7-42":[-6969.86,12.33],"6-7-43":[-6304.07,11.63],"5-3-21":[-6969.86,21.21],"4-1-10":[-6969.86,863.24],"6-7-44":[-6236.81,10.73],"6-7-45":[-6777.07,8.15],"5-3-22":[-7523.68,16.55],"6-7-46":[-5942.92,4.11],"6-7-47":[-6327.91,-2.7],"5-3-23":[-6434.49,7.66],"4-1-11":[-7523.68,32.28],"3-0-5":[-8051.96,863.24],"6-7-48":[-5660.04,-6.48],"6-7-49":[-5377.17,-13.72],"5-3-24":[-5883.17,-6.48],"6-7-50":[-6003.68,-19.18],"6-7-51":[-7476.07,2467.65],"5-3-25":[-7476.07,2467.65],"4-1-12":[-7476.07,2750.95],"6-7-52":[-294.64,1671.56],"6-7-53":[-81.45,1454.97],"5-3-26":[-294.64,1671.56],"6-7-54":[-93.97,1100.59],"6-7-55":[-109.85,1114.85],"5-3-27":[-110.06,1114.85],"4-1-13":[-514.98,1671.56],"3-0-6":[-7770.99,2750.95],"6-7-56":[-122.72,1462.27],"6-7-57":[-2671.74,44.62],"5-3-28":[-2671.74,1462.27],"6-7-58":[-3895.05,-62.74],"6-7-59":[-3863.74,340.29],"5-3-29":[-3895.05,340.29],"4-1-14":[-3895.05,1462.27],"6-7-60":[-3837.37,329.56],"6-7-61":[-3854.32,5.39],"5-3-30":[-3859.19,382.35],"6-7-62":[-3894.65,3872.33],"6-7-63":[-4253.4,3078.77],"5-3-31":[-4265.4,3872.33],"4-1-15":[-4312.53,3872.33],"3-0-7":[-4339.64,3970.41],"6-8-0":[-133.19,2418.18],"6-8-1":[-1497.67,3630.69],"6-8-2":[-725.49,17.9],"6-8-3":[-860.75,4.36],"6-8-4":[-3573.59,698.67],"6-8-5":[-4331.48,-1.15],"6-8-6":[-4503.3,46.22],"6-8-7":[-4850,2230.09],"6-8-8":[-4712.88,2322.75],"6-8-9":[-4566.51,1231.31],"6-8-10":[-4355.63,1286.11],"6-8-11":[-4501.55,2365.52],"6-8-12":[-4660.11,340.69],"6-8-13":[-5966.24,23.37],"6-8-14":[-5682.56,15.39],"6-8-15":[-5231.54,0.65],"6-8-16":[-5608.95,-6.49],"6-8-17":[-5431.41,-11.47],"6-8-18":[-5762.65,-14.68],"6-8-19":[-5770,-15.15],"6-8-20":[-6098.74,-12.28],"6-8-21":[-5777.78,-7.16],"6-8-22":[-5728.06,1],"6-8-23":[-5391.55,7.31],"6-8-24":[-5807.69,4224.76],"6-8-25":[-5219.34,4199.19],"6-8-26":[-9303.29,93.4],"6-8-27":[-5769.45,13.28],"6-8-28":[-6531.38,20.81],"6-8-29":[-6133.11,227.93],"6-8-30":[-5459.96,441.43],"6-8-31":[-5482.43,39.3],"6-8-32":[-5063.73,105.79],"6-8-33":[-4939.68,33.65],"6-8-34":[-5381.15,29.43],"6-8-35":[-5847.02,18.21],"6-8-36":[-6404.77,15.57],"6-8-37":[-6114.51,18.43],"6-8-38":[-5763.74,4199.19],"6-8-39":[-6049.76,4224.65],"6-8-40":[-5216.39,11.5],"6-8-41":[-6204.87,8],"6-8-42":[-6753.63,5.43],"6-8-43":[-6639.76,5.22],"6-8-44":[-6145.45,4.54],"6-8-45":[-6369.08,2.59],"6-8-46":[-6009.01,1.16],"6-8-47":[-6003.66,-3.98],"6-8-48":[-5816.42,-6.48],"6-8-49":[-5499.75,-13.07],"6-8-50":[-5244.21,-18.94],"6-8-51":[-6022.65,229.61],"6-8-52":[-333.13,2312.51],"6-8-53":[-78.98,1236.1],"6-8-54":[-91.83,1205.31],"6-8-55":[-109.23,2269.75],"6-8-56":[-120.92,2154.43],"6-8-57":[-3744.55,41.81],"6-8-58":[-4090.38,-62.51],"6-8-59":[-3900.79,772.25],"6-8-60":[-3952.21,254.93],"6-8-61":[-3830.41,77.33],"6-8-62":[-3849.56,3797.09],"6-8-63":[-4233.39,3066.33],"6-9-0":[-133.33,2625.88],"6-9-1":[-1543.8,2875.32],"5-4-0":[-1543.8,3630.69],"6-9-2":[-750.6,17.45],"6-9-3":[-948.63,3.84],"5-4-1":[-948.63,17.9],"6-9-4":[-3712.36,882.14],"6-9-5":[-4355.95,-2.83],"5-4-2":[-4355.95,882.14],"6-9-6":[-4514.92,52.5],"6-9-7":[-4691.52,2249.45],"5-4-3":[-4850,2249.45],"6-9-8":[-4726.41,1957.92],"6-9-9":[-4515.51,3549.52],"5-4-4":[-4726.41,3549.52],"6-9-10":[-3523.27,3498.22],"6-9-11":[-3809.98,2301.61],"5-4-5":[-4501.55,3498.22],"6-9-12":[-5184.02,28.12],"6-9-13":[-5526.88,22.28],"5-4-6":[-5966.24,340.69],"6-9-14":[-5637.58,10.49],"6-9-15":[-6327.22,-1.66],"5-4-7":[-6327.22,15.39],"6-9-16":[-6383.59,-8.53],"6-9-17":[-5698.62,-13.07],"5-4-8":[-6383.59,-6.49],"6-9-18":[-5820.88,-16.27],"6-9-19":[-5844.73,-16.03],"5-4-9":[-5844.73,-14.68],"6-9-20":[-5753.67,-13.34],"6-9-21":[-5997.64,-9.72],"5-4-10":[-6098.74,-7.16],"6-9-22":[-6149.97,-3.51],"6-9-23":[-5554.04,244.22],"5-4-11":[-6149.97,244.22],"6-9-24":[-5257.94,211.35],"6-9-25":[-5050.78,8.27],"5-4-12":[-5807.69,4224.76],"6-9-26":[-6105.07,325.78],"6-9-27":[-5717.79,7.73],"5-4-13":[-9303.29,325.78],"6-9-28":[-6191.84,3407.2],"6-9-29":[-6202.92,25.09],"5-4-14":[-6531.38,3407.2],"6-9-30":[-6482.71,28.45],"6-9-31":[-5201.78,30.86],"5-4-15":[-6482.71,441.43],"6-9-32":[-5182.24,31.34],"6-9-33":[-5362.99,28.46],"5-4-16":[-5362.99,105.79],"6-9-34":[-5789.15,22.63],"6-9-35":[-5533.58,15.89],"5-4-17":[-5847.02,29.43],"6-9-36":[-6622.39,11.11],"6-9-37":[-6497.61,364.92],"5-4-18":[-6622.39,364.92],"6-9-38":[-5642.43,11.45],"6-9-39":[-5994.03,7.86],"5-4-19":[-6049.76,4224.65],"6-9-40":[-5922.92,87.14],"6-9-41":[-6445.99,2.06],"5-4-20":[-6445.99,87.14],"6-9-42":[-6639.94,0.4],"6-9-43":[-5881.49,0.66],"5-4-21":[-6753.63,5.43],"6-9-44":[-6260.21,0.22],"6-9-45":[-6305.46,-1.28],"5-4-22":[-6369.08,4.54],"6-9-46":[-6130.83,-1.34],"6-9-47":[-6127.19,-5.15],"5-4-23":[-6130.83,1.16],"6-9-48":[-6167.65,-8.73],"6-9-49":[-5701.32,-13.13],"5-4-24":[-6167.65,-6.48],"6-9-50":[-5808.68,-17.8],"6-9-51":[-5585.66,-22.53],"5-4-25":[-6022.65,229.61],"6-9-52":[-3994.2,2166.51],"6-9-53":[-554.63,3405.43],"5-4-26":[-3994.2,3405.43],"6-9-54":[-90.63,3271.87],"6-9-55":[-107.41,1943.8],"5-4-27":[-109.23,3271.87],"6-9-56":[-119.96,2151.83],"6-9-57":[-3879.83,50.13],"5-4-28":[-3879.83,2154.43],"6-9-58":[-3936.01,-58.13],"6-9-59":[-3930.23,1007.23],"5-4-29":[-4090.38,1007.23],"6-9-60":[-3961.21,462.57],"6-9-61":[-3866.34,462.57],"5-4-30":[-3961.21,462.57],"6-9-62":[-3785.04,2783.57],"6-9-63":[-4243.39,3039.73],"5-4-31":[-4243.39,3797.09],"6-10-0":[-168.35,2478.84],"6-10-1":[-1188.55,2541.84],"6-10-2":[-835.74,17.55],"6-10-3":[-1077.31,67.73],"6-10-4":[-1634.85,417.41],"6-10-5":[-4329.28,-2.83],"6-10-6":[-4516.89,31.96],"6-10-7":[-4681.61,2250.87],"6-10-8":[-5159.84,1714.22],"6-10-9":[-4538.5,6207.28],"6-10-10":[-3782.64,2318.12],"6-10-11":[-3750.01,380.19],"6-10-12":[-5228.22,24.81],"6-10-13":[-5185.35,18.21],"6-10-14":[-5553.54,6.41],"6-10-15":[-6417.51,-4.11],"6-10-16":[-5662.92,-11.54],"6-10-17":[-5774.67,-15.64],"6-10-18":[-6844.62,-19.38],"6-10-19":[-6254.77,-18.81],"6-10-20":[-6338.1,-14.67],"6-10-21":[-6350.66,-11.93],"6-10-22":[-5752.27,-8.91],"6-10-23":[-5626.96,337.29],"6-10-24":[-5190.17,300.87],"6-10-25":[-6327.94,1587.33],"6-10-26":[-4919.76,858.44],"6-10-27":[-5755.82,266.32],"6-10-28":[-5400.68,1458.3],"6-10-29":[-5831.18,19.96],"6-10-30":[-5587.29,24.2],"6-10-31":[-5535.76,28.1],"6-10-32":[-5166.66,27.88],"6-10-33":[-5404.48,27.31],"6-10-34":[-5750.11,20.7],"6-10-35":[-5655.89,29.22],"6-10-36":[-6415.07,34.33],"6-10-37":[-6463.93,982.44],"6-10-38":[-5795.6,1738.21],"6-10-39":[-6460.21,368.88],"6-10-40":[-6468.28,399.3],"6-10-41":[-7036.1,-0.9],"6-10-42":[-6744.24,-1.07],"6-10-43":[-6358.02,-1.37],"6-10-44":[-6201.6,-2.29],"6-10-45":[-6329.6,-3.92],"6-10-46":[-5996.93,-4.4],"6-10-47":[-5697.46,-6.94],"6-10-48":[-5653.13,-10.44],"6-10-49":[-5656,-13.58],"6-10-50":[-5893.86,-16.97],"6-10-51":[-5523.63,-20.99],"6-10-52":[-5381.5,346.13],"6-10-53":[-1809.46,2120.75],"6-10-54":[-88.65,6095.63],"6-10-55":[-106.09,1765.96],"6-10-56":[-116.67,2185.42],"6-10-57":[-3874.65,26.49],"6-10-58":[-3919.09,-55.65],"6-10-59":[-3927.57,883.88],"6-10-60":[-3907.83,570.37],"6-10-61":[-3613.14,549.47],"6-10-62":[-3644,2425.34],"6-10-63":[-4227.35,3008.67],"6-11-0":[-183.38,2377.6],"6-11-1":[-1234.31,3176.27],"5-5-0":[-1234.31,3176.27],"6-11-2":[-902.26,18.15],"6-11-3":[-1164.72,75.57],"5-5-1":[-1164.72,75.57],"4-2-0":[-1543.8,3630.69],"6-11-4":[-2094.06,663.6],"6-11-5":[-4260.3,-3.47],"5-5-2":[-4329.28,663.6],"6-11-6":[-4409.85,5.59],"6-11-7":[-4506.16,2337.17],"5-5-3":[-4681.61,2337.17],"4-2-1":[-4850,2337.17],"6-11-8":[-5196.88,1624.53],"6-11-9":[-4768.63,4180.16],"5-5-4":[-5196.88,6207.28],"6-11-10":[-4182.3,4014.2],"6-11-11":[-3864.66,27.09],"5-5-5":[-4182.3,4014.2],"4-2-2":[-5196.88,6207.28],"6-11-12":[-4863.31,20.02],"6-11-13":[-5098.5,12.89],"5-5-6":[-5228.22,24.81],"6-11-14":[-5577.52,1.04],"6-11-15":[-5517.12,-7.02],"5-5-7":[-6417.51,6.41],"4-2-3":[-6417.51,340.69],"6-11-16":[-5726.26,-14.25],"6-11-17":[-6014.63,-18.62],"5-5-8":[-6014.63,-11.54],"6-11-18":[-6047.97,-21.88],"6-11-19":[-5954.95,-21.95],"5-5-9":[-6844.62,-18.81],"4-2-4":[-6844.62,-6.49],"6-11-20":[-6376.27,-17.94],"6-11-21":[-5426.35,-14.48],"5-5-10":[-6376.27,-11.93],"6-11-22":[-5074.5,-12.52],"6-11-23":[-5623.64,309.11],"5-5-11":[-5752.27,337.29],"4-2-5":[-6376.27,337.29],"6-11-24":[-6007.69,-8.2],"6-11-25":[-4854.06,287.11],"5-5-12":[-6327.94,1587.33],"6-11-26":[-4603.51,322.84],"6-11-27":[-5478.68,40.87],"5-5-13":[-5755.82,858.44],"4-2-6":[-9303.29,4224.76],"6-11-28":[-6630.7,3.39],"6-11-29":[-5892.13,13.1],"5-5-14":[-6630.7,1458.3],"6-11-30":[-5587.29,18.24],"6-11-31":[-5106.24,23.18],"5-5-15":[-5587.29,28.1],"4-2-7":[-6630.7,3407.2],"6-11-32":[-5002.41,23.23],"6-11-33":[-5509.79,21.8],"5-5-16":[-5509.79,27.88],"6-11-34":[-5851.53,15.53],"6-11-35":[-5631.96,8.74],"5-5-17":[-5851.53,29.22],"4-2-8":[-5851.53,105.79],"6-11-36":[-6312.55,4.25],"6-11-37":[-6661.84,108.86],"5-5-18":[-6661.84,982.44],"6-11-38":[-6246.69,418.12],"6-11-39":[-6396.35,-1.41],"5-5-19":[-6460.21,1738.21],"4-2-9":[-6661.84,4224.65],"6-11-40":[-6560.2,394.12],"6-11-41":[-6052.54,-2.74],"5-5-20":[-7036.1,399.3],"6-11-42":[-6502.29,-2.09],"6-11-43":[-6219.92,-2.6],"5-5-21":[-6744.24,-1.07],"4-2-10":[-7036.1,399.3],"6-11-44":[-5862.36,-3.6],"6-11-45":[-6436.13,-5.6],"5-5-22":[-6436.13,-2.29],"6-11-46":[-5819.59,-7.76],"6-11-47":[-5495.45,-8.93],"5-5-23":[-5996.93,-4.4],"4-2-11":[-6436.13,4.54],"6-11-48":[-5200.05,-11.9],"6-11-49":[-8103.44,-13.59],"5-5-24":[-8103.44,-10.44],"6-11-50":[-5232.18,-16.5],"6-11-51":[-4750.88,-20.15],"5-5-25":[-5893.86,-16.5],"4-2-12":[-8103.44,229.61],"6-11-52":[-5077.5,-23.76],"6-11-53":[-2754.79,3834.03],"5-5-26":[-5381.5,3834.03],"6-11-54":[-86.21,3972.34],"6-11-55":[-103.18,1602.16],"5-5-27":[-106.09,6095.63],"4-2-13":[-5381.5,6095.63],"6-11-56":[-113.79,2293.15],"6-11-57":[-3765.29,6.83],"5-5-28":[-3874.65,2293.15],"6-11-58":[-3865.62,-30.17],"6-11-59":[-3941.99,896.34],"5-5-29":[-3941.99,896.34],"4-2-14":[-4090.38,2293.15],"6-11-60":[-3893.37,667.99],"6-11-61":[-3732.8,564.8],"5-5-30":[-3907.83,667.99],"6-11-62":[-3422.03,3379.23],"6-11-63":[-4222.37,2977.45],"5-5-31":[-4227.35,3379.23],"4-2-15":[-4243.39,3797.09],"6-12-0":[-181.36,1693.13],"6-12-1":[-1455.74,2871.83],"6-12-2":[-1098.55,18.51],"6-12-3":[-1119.23,2.56],"6-12-4":[-1551.27,1171.54],"6-12-5":[-4185.02,252.83],"6-12-6":[-4455.12,-1.46],"6-12-7":[-4548.47,2626.58],"6-12-8":[-4886.04,1971.14],"6-12-9":[-4860.51,4964.36],"6-12-10":[-4561.15,5003.13],"6-12-11":[-4330.54,17.77],"6-12-12":[-5941.24,17.44],"6-12-13":[-5681.57,8.08],"6-12-14":[-5679.46,-2.54],"6-12-15":[-5618.32,-10.05],"6-12-16":[-5733.88,-16.83],"6-12-17":[-6117.04,-21.69],"6-12-18":[-6699.21,-25],"6-12-19":[-6042.47,-24.8],"6-12-20":[-6163.38,-22.36],"6-12-21":[-5676.67,-17.53],"6-12-22":[-4728.02,419.05],"6-12-23":[-5762.93,154.67],"6-12-24":[-5637.54,138.75],"6-12-25":[-5061.96,265.8],"6-12-26":[-4719.59,549.53],"6-12-27":[-5417.45,-4.41],"6-12-28":[-5746,-0.37],"6-12-29":[-5483.02,6.6],"6-12-30":[-5099.46,13.43],"6-12-31":[-4938.09,18.86],"6-12-32":[-4792.79,19.08],"6-12-33":[-6222.37,16.44],"6-12-34":[-5876.68,12.4],"6-12-35":[-5719.46,3.06],"6-12-36":[-6252.33,-0.47],"6-12-37":[-6689.38,26.39],"6-12-38":[-6041.73,15.85],"6-12-39":[-6382.53,13.14],"6-12-40":[-6633.54,-5.04],"6-12-41":[-5606.01,367.1],"6-12-42":[-6254.81,-4.66],"6-12-43":[-6442.49,-5.49],"6-12-44":[-6251.77,-5.68],"6-12-45":[-5961.27,-7.48],"6-12-46":[-6225.81,-9.37],"6-12-47":[-5200.68,-11.32],"6-12-48":[-4973.03,-13.01],"6-12-49":[-4891.62,-15.16],"6-12-50":[-4935.48,-16.79],"6-12-51":[-4684.63,-19.15],"6-12-52":[-4852.85,-23.29],"6-12-53":[-4722.62,4901.79],"6-12-54":[-84.64,4907.93],"6-12-55":[-100.6,1849.36],"6-12-56":[-110.81,2580.94],"6-12-57":[-3674.95,-28.39],"6-12-58":[-3819.03,732.21],"6-12-59":[-3893.84,1118.71],"6-12-60":[-3872.09,697.82],"6-12-61":[-3706.18,547.44],"6-12-62":[-3461.9,3177.52],"6-12-63":[-4221.36,2958.4],"6-13-0":[-161.34,1474.13],"6-13-1":[-1652.61,2990.28],"5-6-0":[-1652.61,2990.28],"6-13-2":[-922.38,18.69],"6-13-3":[-1307.85,2.29],"5-6-1":[-1307.85,18.69],"6-13-4":[-1245.45,1086.26],"6-13-5":[-4159.76,828.09],"5-6-2":[-4185.02,1171.54],"6-13-6":[-4531.15,-1.51],"6-13-7":[-4629.72,2443.65],"5-6-3":[-4629.72,2626.58],"6-13-8":[-4866.08,1955.52],"6-13-9":[-4896.44,3305.19],"5-6-4":[-4896.44,4964.36],"6-13-10":[-4581.53,5501.18],"6-13-11":[-5943.29,16.19],"5-6-5":[-5943.29,5501.18],"6-13-12":[-6014.26,12.53],"6-13-13":[-5533.57,1.23],"5-6-6":[-6014.26,17.44],"6-13-14":[-5250.64,-5.03],"6-13-15":[-5500.84,-13.68],"5-6-7":[-5679.46,-2.54],"6-13-16":[-5716.49,-19.6],"6-13-17":[-6636.39,-24.29],"5-6-8":[-6636.39,-16.83],"6-13-18":[-6228.62,-29.09],"6-13-19":[-5856.69,-28.05],"5-6-9":[-6699.21,-24.8],"6-13-20":[-5910.84,-25.11],"6-13-21":[-5256.1,-21.57],"5-6-10":[-6163.38,-17.53],"6-13-22":[-4830.29,-19.25],"6-13-23":[-5393,-19.08],"5-6-11":[-5762.93,419.05],"6-13-24":[-5111.43,229.65],"6-13-25":[-4776.85,276.62],"5-6-12":[-5637.54,276.62],"6-13-26":[-4587.09,1606.36],"6-13-27":[-5913.51,-7.34],"5-6-13":[-5913.51,1606.36],"6-13-28":[-5787.05,27.02],"6-13-29":[-4722.33,528.03],"5-6-14":[-5787.05,528.03],"6-13-30":[-5229.34,5.15],"6-13-31":[-5127.76,10.05],"5-6-15":[-5229.34,18.86],"6-13-32":[-4776.14,10.97],"6-13-33":[-5127.13,9.15],"5-6-16":[-6222.37,19.08],"6-13-34":[-5659.07,574],"6-13-35":[-7447.7,3.2],"5-6-17":[-7447.7,574],"6-13-36":[-6016.23,-2.96],"6-13-37":[-6776.68,18.94],"5-6-18":[-6776.68,26.39],"6-13-38":[-5885.01,15.14],"6-13-39":[-6294.03,21.33],"5-6-19":[-6382.53,21.33],"6-13-40":[-6242.29,-7.97],"6-13-41":[-5471.92,-4.36],"5-6-20":[-6633.54,367.1],"6-13-42":[-5640.19,-4.92],"6-13-43":[-6405.01,-8.03],"5-6-21":[-6442.49,-4.66],"6-13-44":[-6316.29,-8.36],"6-13-45":[-6352.55,-9.22],"5-6-22":[-6352.55,-5.68],"6-13-46":[-6171.18,-10.62],"6-13-47":[-5055.96,-11.92],"5-6-23":[-6225.81,-9.37],"6-13-48":[-4727.1,-14.27],"6-13-49":[-6709.55,-15.88],"5-6-24":[-6709.55,-13.01],"6-13-50":[-4532.06,-16.79],"6-13-51":[-4206.32,-18.04],"5-6-25":[-4935.48,-16.79],"6-13-52":[-3930.24,-21.69],"6-13-53":[-3805.7,5374.27],"5-6-26":[-4852.85,5374.27],"6-13-54":[-82.17,3164.74],"6-13-55":[-96.84,1843.66],"5-6-27":[-100.6,4907.93],"6-13-56":[-192.46,2256.65],"6-13-57":[-3560.52,-45.32],"5-6-28":[-3674.95,2580.94],"6-13-58":[-3777.45,799.79],"6-13-59":[-3830.96,1415.24],"5-6-29":[-3893.84,1415.24],"6-13-60":[-3818.7,696.8],"6-13-61":[-3786.2,578.81],"5-6-30":[-3872.09,697.82],"6-13-62":[-3456.9,2807.42],"6-13-63":[-4223.36,2933.27],"5-6-31":[-4223.36,3177.52],"6-14-0":[-215.89,1760.1],"6-14-1":[-1678.19,3160.02],"6-14-2":[-1200.9,18.69],"6-14-3":[-1245.84,2.84],"6-14-4":[-1486.78,1054.84],"6-14-5":[-4124.23,874.8],"6-14-6":[-4464.26,-3.21],"6-14-7":[-4716.03,1629.08],"6-14-8":[-4779.66,2195.84],"6-14-9":[-5029.49,2352.25],"6-14-10":[-4887.53,5990.12],"6-14-11":[-5167.06,1250.79],"6-14-12":[-3998.63,5.47],"6-14-13":[-5641.75,-2.9],"6-14-14":[-5640.26,-9.51],"6-14-15":[-6063.37,-17],"6-14-16":[-6353.19,-23.13],"6-14-17":[-6412.37,-26.79],"6-14-18":[-5979.38,-32.26],"6-14-19":[-5645.82,-30.63],"6-14-20":[-5195.75,-28.02],"6-14-21":[-4903.61,-1.91],"6-14-22":[-4940.46,-23.49],"6-14-23":[-5190.71,-22.95],"6-14-24":[-4875.96,295.99],"6-14-25":[-4544.85,145.6],"6-14-26":[-4451.65,78.85],"6-14-27":[-4792.38,-11.82],"6-14-28":[-4507.28,1173.83],"6-14-29":[-4839.24,388.87],"6-14-30":[-4916.53,-0.54],"6-14-31":[-4887.14,3.14],"6-14-32":[-4975.78,4.38],"6-14-33":[-5142.66,4.04],"6-14-34":[-5322.02,444.87],"6-14-35":[-5384.02,1253.85],"6-14-36":[-6344.65,-4.2],"6-14-37":[-5851.42,11.81],"6-14-38":[-5795.76,12.56],"6-14-39":[-5701.16,29.28],"6-14-40":[-6003.76,-9.96],"6-14-41":[-5477.38,-8.25],"6-14-42":[-5257.35,-7.63],"6-14-43":[-6050.14,-8.79],"6-14-44":[-6456.24,-9.44],"6-14-45":[-6312.83,-9.8],"6-14-46":[-5960.56,-11.59],"6-14-47":[-4585.8,-13.34],"6-14-48":[-4683.62,-14.96],"6-14-49":[-4721.83,-16.64],"6-14-50":[-3984.97,-17.15],"6-14-51":[-3687.61,-17.84],"6-14-52":[-3668.18,1159.79],"6-14-53":[-434.8,5828.29],"6-14-54":[-81.47,2178.34],"6-14-55":[-94.24,2088.55],"6-14-56":[-557.25,1489.78],"6-14-57":[-3334.1,-50.32],"6-14-58":[-3731.79,1501.65],"6-14-59":[-3805.12,1730.64],"6-14-60":[-3800.65,752.21],"6-14-61":[-3796.21,587.99],"6-14-62":[-3065.97,3232.04],"6-14-63":[-4227.36,2914.46],"6-15-0":[-252.92,1750.21],"6-15-1":[-1586.85,3417.75],"5-7-0":[-1678.19,3417.75],"6-15-2":[-1307.4,18.62],"6-15-3":[-1291.03,3.57],"5-7-1":[-1307.4,18.69],"4-3-0":[-1678.19,3417.75],"6-15-4":[-1008.08,3235.77],"6-15-5":[-3901.52,1165.61],"5-7-2":[-4124.23,3235.77],"6-15-6":[-4460.99,-3.02],"6-15-7":[-4699.29,1677.33],"5-7-3":[-4716.03,1677.33],"4-3-1":[-4716.03,3235.77],"3-1-0":[-4850,3630.69],"6-15-8":[-5027.23,2201.64],"6-15-9":[-5359.93,2244.89],"5-7-4":[-5359.93,2352.25],"6-15-10":[-5092.31,3286.53],"6-15-11":[-4715.56,4338.49],"5-7-5":[-5167.06,5990.12],"4-3-2":[-5943.29,5990.12],"6-15-12":[-4457.58,0.26],"6-15-13":[-5147.09,-5.77],"5-7-6":[-5641.75,5.47],"6-15-14":[-5959.55,-12.56],"6-15-15":[-6660.79,-19.83],"5-7-7":[-6660.79,-9.51],"4-3-3":[-6660.79,17.44],"3-1-1":[-6660.79,6207.28],"2-0-0":[-6660.79,6207.28],"6-15-16":[-6324.33,-25.72],"6-15-17":[-6080.83,-29.35],"5-7-8":[-6412.37,-23.13],"6-15-18":[-5404.77,-34.5],"6-15-19":[-5340.82,-33.7],"5-7-9":[-5979.38,-30.63],"4-3-4":[-6699.21,-16.83],"6-15-20":[-5105.14,-31.19],"6-15-21":[-4617.63,-29.89],"5-7-10":[-5195.75,-1.91],"6-15-22":[-4638.21,-28.48],"6-15-23":[-4781.63,1449.55],"5-7-11":[-5190.71,1449.55],"4-3-5":[-6163.38,1449.55],"3-1-2":[-6844.62,1449.55],"6-15-24":[-4774.4,187.4],"6-15-25":[-4764.79,87.27],"5-7-12":[-4875.96,295.99],"6-15-26":[-4780.15,-19.12],"6-15-27":[-5089.12,-17.07],"5-7-13":[-5089.12,78.85],"4-3-6":[-5913.51,1606.36],"6-15-28":[-4769.36,-13.51],"6-15-29":[-4843.95,-9.36],"5-7-14":[-4843.95,1173.83],"6-15-30":[-4850.25,-5.14],"6-15-31":[-4785.05,-2.71],"5-7-15":[-4916.53,3.14],"4-3-7":[-5787.05,1173.83],"3-1-3":[-9303.29,4224.76],"2-0-1":[-10751.44,4224.76],"6-15-32":[-4660.98,-1.71],"6-15-33":[-5517.77,-1.49],"5-7-16":[-5517.77,4.38],"6-15-34":[-5355.58,-2.12],"6-15-35":[-5221.35,-2.93],"5-7-17":[-5384.02,1253.85],"4-3-8":[-7447.7,1253.85],"6-15-36":[-5945.39,-4.46],"6-15-37":[-5896.5,-7.9],"5-7-18":[-6344.65,11.81],"6-15-38":[-5714.69,7.98],"6-15-39":[-5642.41,16.82],"5-7-19":[-5795.76,29.28],"4-3-9":[-6776.68,29.28],"3-1-4":[-7447.7,4224.65],"6-15-40":[-5681.96,210.54],"6-15-41":[-5264.79,-11.38],"5-7-20":[-6003.76,210.54],"6-15-42":[-5490.76,-10.1],"6-15-43":[-6114.44,-10.22],"5-7-21":[-6114.44,-7.63],"4-3-10":[-6633.54,367.1],"6-15-44":[-5810.62,-10.28],"6-15-45":[-6078.66,-10.38],"5-7-22":[-6456.24,-9.44],"6-15-46":[-5516.56,-12.05],"6-15-47":[-5004.1,-13.68],"5-7-23":[-5960.56,-11.59],"4-3-11":[-6456.24,-5.68],"3-1-5":[-7036.1,399.3],"2-0-2":[-8051.96,4224.65],"6-15-48":[-4386.38,-15.28],"6-15-49":[-4351.89,-16.57],"5-7-24":[-4721.83,-14.96],"6-15-50":[-3798.21,-17.93],"6-15-51":[-3479.92,-17.17],"5-7-25":[-3984.97,-17.15],"4-3-12":[-6709.55,-13.01],"6-15-52":[-3159.54,4170.48],"6-15-53":[-822.27,3102.72],"5-7-26":[-3668.18,5828.29],"6-15-54":[-79.48,2084.36],"6-15-55":[-91.99,2173.62],"5-7-27":[-94.24,2178.34],"4-3-13":[-4852.85,5828.29],"3-1-6":[-8103.44,6095.63],"6-15-56":[-143.51,1622.37],"6-15-57":[-2992.58,-47.94],"5-7-28":[-3334.1,1622.37],"6-15-58":[-3641,1582.81],"6-15-59":[-3753.24,3280.76],"5-7-29":[-3805.12,3280.76],"4-3-14":[-3893.84,3280.76],"6-15-60":[-3755.03,1055.95],"6-15-61":[-3729.99,583.66],"5-7-30":[-3800.65,1055.95],"6-15-62":[-2999.82,3299.77],"6-15-63":[-4222.86,2899.4],"5-7-31":[-4227.36,3299.77],"4-3-15":[-4227.36,3299.77],"3-1-7":[-4243.39,3797.09],"2-0-3":[-8103.44,6095.63],"6-16-0":[-250.92,1810.14],"6-16-1":[-1292.23,3415.68],"6-16-2":[-1365.82,18.81],"6-16-3":[-1466.32,3.62],"6-16-4":[-1138.15,2724.76],"6-16-5":[-3589.89,2752.29],"6-16-6":[-4465.85,-2.92],"6-16-7":[-4699.29,358.63],"6-16-8":[-5027.84,2700.74],"6-16-9":[-5450.75,2379.96],"6-16-10":[-5052.16,2349.52],"6-16-11":[-4766.48,3089.83],"6-16-12":[-5372.47,1191.79],"6-16-13":[-5318.08,1099.24],"6-16-14":[-5414.76,-15.25],"6-16-15":[-6829.25,-21.82],"6-16-16":[-6240.03,-27.45],"6-16-17":[-5540.11,-31.05],"6-16-18":[-5487.51,-35.86],"6-16-19":[-5353.62,20.74],"6-16-20":[-5006.12,-34.53],"6-16-21":[-4672.99,-33.65],"6-16-22":[-4556.55,-33.08],"6-16-23":[-4527.94,2112.46],"6-16-24":[-4781.49,-31.17],"6-16-25":[-4721.21,-29.12],"6-16-26":[-4621.98,-25.12],"6-16-27":[-4958.22,-22.61],"6-16-28":[-4911.16,-18.47],"6-16-29":[-5018.64,-14.42],"6-16-30":[-5681.41,-9.88],"6-16-31":[-4890.89,-7.01],"6-16-32":[-4847.19,-5.38],"6-16-33":[-4875.66,-5.07],"6-16-34":[-5164.7,-4.9],"6-16-35":[-6115.42,-5.38],"6-16-36":[-5822.7,-6.96],"6-16-37":[-6357.23,-9.38],"6-16-38":[-5707.43,-10.64],"6-16-39":[-5588.39,-10.88],"6-16-40":[-5367.6,395.5],"6-16-41":[-5450.06,-12.58],"6-16-42":[-5481.79,-11.89],"6-16-43":[-5542.03,-11.48],"6-16-44":[-6548.04,-10.73],"6-16-45":[-5665.39,-11.64],"6-16-46":[-5185,-12.42],"6-16-47":[-4202.64,-13.83],"6-16-48":[-4574.57,-14.63],"6-16-49":[-5094.21,-15.29],"6-16-50":[-3625.99,971.36],"6-16-51":[-3183.7,1215.57],"6-16-52":[-870.18,2897.13],"6-16-53":[-67.1,2248.84],"6-16-54":[-78.95,2468.64],"6-16-55":[-88.41,2460.72],"6-16-56":[-94.87,332.64],"6-16-57":[-2771.85,-36.44],"6-16-58":[-3499.69,2780.28],"6-16-59":[-3699.81,3057.06],"6-16-60":[-3732.88,1251.61],"6-16-61":[-3718.56,729.54],"6-16-62":[-2843.18,3324.73],"6-16-63":[-4214.39,2887.59],"6-17-0":[-199.93,1456.34],"6-17-1":[-1768,3620.15],"5-8-0":[-1768,3620.15],"6-17-2":[-1475.26,19.47],"6-17-3":[-1402.55,3.4],"5-8-1":[-1475.26,19.47],"6-17-4":[-1180.97,1470.8],"6-17-5":[-2625.03,2591.07],"5-8-2":[-3589.89,2752.29],"6-17-6":[-4466.16,-3.57],"6-17-7":[-4549.31,450.81],"5-8-3":[-4699.29,450.81],"6-17-8":[-5008.75,2409.04],"6-17-9":[-5233.55,2941.77],"5-8-4":[-5450.75,2941.77],"6-17-10":[-5119.82,2300.19],"6-17-11":[-4890.47,3041.41],"5-8-5":[-5119.82,3089.83],"6-17-12":[-6658.81,2709.89],"6-17-13":[-4851.18,1110.77],"5-8-6":[-6658.81,2709.89],"6-17-14":[-5821.52,-16.38],"6-17-15":[-5674.88,-22.03],"5-8-7":[-6829.25,-15.25],"6-17-16":[-5851.22,-26.24],"6-17-17":[-5301.91,-30.62],"5-8-8":[-6240.03,-26.24],"6-17-18":[-5466.61,-36.84],"6-17-19":[-5104.24,-38.94],"5-8-9":[-5487.51,20.74],"6-17-20":[-4709.73,-38.14],"6-17-21":[-4666.22,-37.3],"5-8-10":[-5006.12,-33.65],"6-17-22":[-4992.97,-37.32],"6-17-23":[-4460.76,239.39],"5-8-11":[-4992.97,2112.46],"6-17-24":[-4823.9,-36.06],"6-17-25":[-5006.1,-33.99],"5-8-12":[-5006.1,-29.12],"6-17-26":[-4437.45,-31.19],"6-17-27":[-4609.57,-27.45],"5-8-13":[-4958.22,-22.61],"6-17-28":[-4932.8,-23.68],"6-17-29":[-5183.75,-18.06],"5-8-14":[-5183.75,-14.42],"6-17-30":[-5106.77,-13.82],"6-17-31":[-4902.56,-10.34],"5-8-15":[-5681.41,-7.01],"6-17-32":[-4738.9,-8.32],"6-17-33":[-4738.24,-7.81],"5-8-16":[-4875.66,-5.07],"6-17-34":[-5231.72,-7.81],"6-17-35":[-5297.05,-8],"5-8-17":[-6115.42,-4.9],"6-17-36":[-5635.03,-8.25],"6-17-37":[-5415.4,-9.44],"5-8-18":[-6357.23,-6.96],"6-17-38":[-6887.6,-10.07],"6-17-39":[-5911.14,-11.06],"5-8-19":[-6887.6,-10.07],"6-17-40":[-5556.7,315.4],"6-17-41":[-5276.82,-11.32],"5-8-20":[-5556.7,395.5],"6-17-42":[-5701.15,-12.55],"6-17-43":[-5607.75,-11.22],"5-8-21":[-5701.15,-11.22],"6-17-44":[-6593.4,-10.83],"6-17-45":[-5575.85,-11.63],"5-8-22":[-6593.4,-10.73],"6-17-46":[-4741.3,-12.29],"6-17-47":[-4894.74,-13.43],"5-8-23":[-5185,-12.29],"6-17-48":[-4122.26,-14],"6-17-49":[-3621.62,-14.43],"5-8-24":[-5094.21,-14],"6-17-50":[-3957.44,993.74],"6-17-51":[-771.77,2522.54],"5-8-25":[-3957.44,2522.54],"6-17-52":[-216.42,2808.07],"6-17-53":[-64.39,2249.4],"5-8-26":[-870.18,2897.13],"6-17-54":[-75.83,2758.77],"6-17-55":[-84.15,2323.38],"5-8-27":[-88.41,2758.77],"6-17-56":[-89.73,401.81],"6-17-57":[-2441.75,-16.49],"5-8-28":[-2771.85,401.81],"6-17-58":[-2973.68,2730.02],"6-17-59":[-3594.22,2341.32],"5-8-29":[-3699.81,3057.06],"6-17-60":[-3727.72,1350.33],"6-17-61":[-3692.53,803.49],"5-8-30":[-3732.88,1350.33],"6-17-62":[-2811.27,3573.17],"6-17-63":[-4214.39,2879.05],"5-8-31":[-4214.39,3573.17],"6-18-0":[-239.93,1305.63],"6-18-1":[-1961.07,3782.46],"6-18-2":[-1554.87,20.08],"6-18-3":[-1327.79,253.46],"6-18-4":[-1088.12,3239.67],"6-18-5":[-1217.67,3108.19],"6-18-6":[-4824.35,142.08],"6-18-7":[-4475.98,429.97],"6-18-8":[-5097.66,2151.79],"6-18-9":[-5286.88,2614.23],"6-18-10":[-5383.94,2710.75],"6-18-11":[-4674.83,2698.9],"6-18-12":[-6208.63,2746.59],"6-18-13":[-5145.3,2747.57],"6-18-14":[-5330.71,1843.49],"6-18-15":[-5251.84,-22.18],"6-18-16":[-5203.52,-26.44],"6-18-17":[-5196.89,-29.66],"6-18-18":[-5294.47,-35.92],"6-18-19":[-4940.34,-39.87],"6-18-20":[-4969.7,-40.29],"6-18-21":[-4577.18,-40.68],"6-18-22":[-4373.32,-41.38],"6-18-23":[-4278.81,36.16],"6-18-24":[-4720.03,-40.24],"6-18-25":[-5013.32,-38.8],"6-18-26":[-4588.47,-35.89],"6-18-27":[-4400.12,-32.16],"6-18-28":[-5008.64,-27.65],"6-18-29":[-6174.12,-22.1],"6-18-30":[-4934.3,-17.75],"6-18-31":[-4842.18,-14.23],"6-18-32":[-4876.31,-11.43],"6-18-33":[-4758.41,-10.12],"6-18-34":[-5086.71,-9.98],"6-18-35":[-5093.33,-9.16],"6-18-36":[-5155.12,-9.09],"6-18-37":[-5307.78,-8.96],"6-18-38":[-5730.1,-9.07],"6-18-39":[-5129.31,-10.05],"6-18-40":[-5279.34,30.18],"6-18-41":[-5425.68,-10.66],"6-18-42":[-5345.64,-11.58],"6-18-43":[-5141.56,-10.9],"6-18-44":[-5415.73,-10.9],"6-18-45":[-5030.18,-11.37],"6-18-46":[-4788.93,-12.17],"6-18-47":[-4459,-12.57],"6-18-48":[-3487.82,-12.73],"6-18-49":[-3561.32,1575.89],"6-18-50":[-1988.24,2584.28],"6-18-51":[-538.42,2544.16],"6-18-52":[-46.75,2552.9],"6-18-53":[-62.71,2504.4],"6-18-54":[-73.11,2557.92],"6-18-55":[-79.89,2151.24],"6-18-56":[-258.64,398.97],"6-18-57":[-798.4,126.06],"6-18-58":[-1790.31,2750.5],"6-18-59":[-3353.04,2817.84],"6-18-60":[-3629.63,1490.05],"6-18-61":[-3621.66,901.46],"6-18-62":[-2800.02,3682.63],"6-18-63":[-4215.33,2878.07],"6-19-0":[-379.17,1287.38],"6-19-1":[-1593.06,3146.76],"5-9-0":[-1961.07,3782.46],"6-19-2":[-1890.58,20.54],"6-19-3":[-1414.05,2.42],"5-9-1":[-1890.58,253.46],"4-4-0":[-1961.07,3782.46],"6-19-4":[-1211.44,4101.76],"6-19-5":[-1382.71,2119.92],"5-9-2":[-1382.71,4101.76],"6-19-6":[-3876.71,317.55],"6-19-7":[-4530.82,581.34],"5-9-3":[-4824.35,581.34],"4-4-1":[-4824.35,4101.76],"6-19-8":[-4995.54,973.14],"6-19-9":[-5321.16,2480.85],"5-9-4":[-5321.16,2614.23],"6-19-10":[-5607.39,2228.73],"6-19-11":[-4754.48,2929.86],"5-9-5":[-5607.39,2929.86],"4-4-2":[-5607.39,3089.83],"6-19-12":[-6114.42,2399.44],"6-19-13":[-4562,3974.94],"5-9-6":[-6208.63,3974.94],"6-19-14":[-4492.89,2829.29],"6-19-15":[-5013.47,2131.34],"5-9-7":[-5330.71,2829.29],"4-4-3":[-6829.25,3974.94],"6-19-16":[-4953.87,1592.47],"6-19-17":[-4866.48,1595.59],"5-9-8":[-5203.52,1595.59],"6-19-18":[-5637.2,251.63],"6-19-19":[-5637.2,-38.05],"5-9-9":[-5637.2,251.63],"4-4-4":[-6240.03,1595.59],"6-19-20":[-4758.37,-41.29],"6-19-21":[-4461.38,-42.03],"5-9-10":[-4969.7,-40.29],"6-19-22":[-4510.74,-43.78],"6-19-23":[-4246.08,165.38],"5-9-11":[-4510.74,165.38],"4-4-5":[-5006.12,2112.46],"6-19-24":[-4386.55,-43.61],"6-19-25":[-4787.48,-42.14],"5-9-12":[-5013.32,-38.8],"6-19-26":[-4592.84,-39.76],"6-19-27":[-4940.84,-36.36],"5-9-13":[-4940.84,-32.16],"4-4-6":[-5013.32,-22.61],"6-19-28":[-4653.41,-31.27],"6-19-29":[-5351.52,-25.3],"5-9-14":[-6174.12,-22.1],"6-19-30":[-5449.15,-21.14],"6-19-31":[-5024.53,-17.54],"5-9-15":[-5449.15,-14.23],"4-4-7":[-6174.12,-7.01],"6-19-32":[-5169.3,-14.6],"6-19-33":[-5203.96,-12.43],"5-9-16":[-5203.96,-10.12],"6-19-34":[-5208.9,-11.75],"6-19-35":[-5361.21,-9.55],"5-9-17":[-5361.21,-9.16],"4-4-8":[-6115.42,-4.9],"6-19-36":[-5037.02,-8.58],"6-19-37":[-4920.17,-7.73],"5-9-18":[-5307.78,-7.73],"6-19-38":[-5156.8,-7.69],"6-19-39":[-5026.43,-8.18],"5-9-19":[-5730.1,-7.69],"4-4-9":[-6887.6,-6.96],"6-19-40":[-5045.17,0.38],"6-19-41":[-5538.83,-9.49],"5-9-20":[-5538.83,30.18],"6-19-42":[-5356.53,-10.86],"6-19-43":[-5215.62,-10.71],"5-9-21":[-5356.53,-10.71],"4-4-10":[-5701.15,395.5],"6-19-44":[-5127.44,-10.75],"6-19-45":[-5197.76,258.9],"5-9-22":[-5415.73,258.9],"6-19-46":[-4421.91,1557.91],"6-19-47":[-3471,1551.49],"5-9-23":[-4788.93,1557.91],"4-4-11":[-6593.4,1557.91],"6-19-48":[-3140.15,2121.88],"6-19-49":[-2469.93,2675.95],"5-9-24":[-3561.32,2675.95],"6-19-50":[-626.92,3796.99],"6-19-51":[-37.03,2275.43],"5-9-25":[-1988.24,3796.99],"4-4-12":[-5094.21,3796.99],"6-19-52":[-44.46,2778.85],"6-19-53":[-60.61,2131.71],"5-9-26":[-62.71,2778.85],"6-19-54":[-69.03,2392.98],"6-19-55":[-75.62,968.87],"5-9-27":[-79.89,2557.92],"4-4-13":[-870.18,2897.13],"6-19-56":[-347.17,572.32],"6-19-57":[-601.74,288.87],"5-9-28":[-798.4,572.32],"6-19-58":[-515.17,2986.57],"6-19-59":[-2994.68,3530.83],"5-9-29":[-3353.04,3530.83],"4-4-14":[-3699.81,3530.83],"6-19-60":[-3551.26,1514.1],"6-19-61":[-3519.87,956.54],"5-9-30":[-3629.63,1514.1],"6-19-62":[-2747.86,3114.64],"6-19-63":[-4214.39,2878.57],"5-9-31":[-4215.33,3682.63],"4-4-15":[-4215.33,3682.63],"6-20-0":[-417.32,1224.41],"6-20-1":[-1370.96,2452.93],"6-20-2":[-1973.46,20.82],"6-20-3":[-1633.9,2.38],"6-20-4":[-1302.3,1894.43],"6-20-5":[-1304.79,801.61],"6-20-6":[-3626.95,693.54],"6-20-7":[-4536.9,842.66],"6-20-8":[-5055.43,662.44],"6-20-9":[-5264.21,1501.83],"6-20-10":[-5515.35,1335.36],"6-20-11":[-5331.65,2410.7],"6-20-12":[-6105.34,2580.47],"6-20-13":[-4265.75,3118.01],"6-20-14":[-4519.48,3265.41],"6-20-15":[-4565.58,4373.52],"6-20-16":[-4835.84,3180.62],"6-20-17":[-4743.31,4292.74],"6-20-18":[-6588.28,2093.71],"6-20-19":[-4944.06,1757.21],"6-20-20":[-4796.65,-39.45],"6-20-21":[-4565.81,-41.79],"6-20-22":[-4128.01,-44.7],"6-20-23":[-3987,-46.27],"6-20-24":[-4050.55,-46.25],"6-20-25":[-4341.52,-44.61],"6-20-26":[-4080.21,-43],"6-20-27":[-4829.5,-39.48],"6-20-28":[-5119.06,-34.42],"6-20-29":[-5269.86,-28.53],"6-20-30":[-4689.02,-24.48],"6-20-31":[-4770.8,-20.85],"6-20-32":[-5202.52,-17.01],"6-20-33":[-4890.99,-14.29],"6-20-34":[-5023.56,-12.23],"6-20-35":[-4964.45,-9.38],"6-20-36":[-4986.97,-7.52],"6-20-37":[-4880.33,-6.21],"6-20-38":[-4961.7,-6.04],"6-20-39":[-4755.38,-6.16],"6-20-40":[-4689.63,-6.82],"6-20-41":[-4833.3,-7.83],"6-20-42":[-4861.26,-9.86],"6-20-43":[-4844.73,-10.66],"6-20-44":[-5134.28,1750.54],"6-20-45":[-3868.94,2051.18],"6-20-46":[-46.03,4249.41],"6-20-47":[-44.93,3135.77],"6-20-48":[-291.98,4326.16],"6-20-49":[-419.89,3212.16],"6-20-50":[-26.04,3002.43],"6-20-51":[-35.46,2455.47],"6-20-52":[-44.23,2254.26],"6-20-53":[-59.19,1409.29],"6-20-54":[-66.26,1525.83],"6-20-55":[-73.37,629.49],"6-20-56":[-489.3,852.51],"6-20-57":[-671.27,681.52],"6-20-58":[-552.12,1956.61],"6-20-59":[-2448.23,2297.87],"6-20-60":[-3307.66,1535.12],"6-20-61":[-3393.94,1063],"6-20-62":[-2705,2865.19],"6-20-63":[-4214.39,2878.57],"6-21-0":[-337.42,1346.84],"6-21-1":[-1233.6,2030.55],"5-10-0":[-1370.96,2452.93],"6-21-2":[-1772.55,89.14],"6-21-3":[-1871.86,2.72],"5-10-1":[-1973.46,89.14],"6-21-4":[-2467.23,2541.55],"6-21-5":[-1623.25,454.87],"5-10-2":[-2467.23,2541.55],"6-21-6":[-3359.57,413.74],"6-21-7":[-4538.31,781.37],"5-10-3":[-4538.31,842.66],"6-21-8":[-5075.96,696.58],"6-21-9":[-5249.7,880.39],"5-10-4":[-5264.21,1501.83],"6-21-10":[-5445.64,833.93],"6-21-11":[-5899.2,1099.39],"5-10-5":[-5899.2,2410.7],"6-21-12":[-4299.21,3253.8],"6-21-13":[-3763.46,3939.1],"5-10-6":[-6105.34,3939.1],"6-21-14":[-4281.45,2946.16],"6-21-15":[-4207.65,2851.96],"5-10-7":[-4565.58,4373.52],"6-21-16":[-4394.17,2953.97],"6-21-17":[-5603.84,3100.13],"5-10-8":[-5603.84,4292.74],"6-21-18":[-5251.97,4387.58],"6-21-19":[-4621.58,4242],"5-10-9":[-6588.28,4387.58],"6-21-20":[-4530.92,610.58],"6-21-21":[-4249.27,1248.21],"5-10-10":[-4796.65,1248.21],"6-21-22":[-4100.77,-43.26],"6-21-23":[-3917.92,-45.42],"5-10-11":[-4128.01,-43.26],"6-21-24":[-3839.51,-46.3],"6-21-25":[-4146.3,-45.23],"5-10-12":[-4341.52,-44.61],"6-21-26":[-4034.73,-43.77],"6-21-27":[-4622.19,-40.96],"5-10-13":[-4829.5,-39.48],"6-21-28":[-5026.68,-36.11],"6-21-29":[-4710.14,-30.73],"5-10-14":[-5269.86,-28.53],"6-21-30":[-4711.56,-26.83],"6-21-31":[-4649.73,-22.8],"5-10-15":[-4770.8,-20.85],"6-21-32":[-5165.04,-18.67],"6-21-33":[-5124.61,-15.13],"5-10-16":[-5202.52,-14.29],"6-21-34":[-4928.38,-12.89],"6-21-35":[-4817.72,-9.33],"5-10-17":[-5023.56,-9.33],"6-21-36":[-4751.47,-6.07],"6-21-37":[-4705.07,-4.67],"5-10-18":[-4986.97,-4.67],"6-21-38":[-4736.47,-4.21],"6-21-39":[-4814.85,-4.21],"5-10-19":[-4961.7,-4.21],"6-21-40":[-4826.11,-5.08],"6-21-41":[-5135.13,-6.52],"5-10-20":[-5135.13,-5.08],"6-21-42":[-5265.07,1190.2],"6-21-43":[-4590.1,596.6],"5-10-21":[-5265.07,1190.2],"6-21-44":[-2985.45,4155.23],"6-21-45":[-26.05,4282.35],"5-10-22":[-5134.28,4282.35],"6-21-46":[-26.03,3002.91],"6-21-47":[-24,2907.88],"5-10-23":[-46.03,4249.41],"6-21-48":[-22.24,2814],"6-21-49":[-21.6,2800.67],"5-10-24":[-419.89,4326.16],"6-21-50":[-23.2,3778.63],"6-21-51":[-31.43,3065.26],"5-10-25":[-35.46,3778.63],"6-21-52":[-42.02,1088.13],"6-21-53":[-56.28,798.49],"5-10-26":[-59.19,2254.26],"6-21-54":[-63.59,815.62],"6-21-55":[-71.43,688.52],"5-10-27":[-73.37,1525.83],"6-21-56":[-537.59,775.33],"6-21-57":[-441.32,399.72],"5-10-28":[-671.27,852.51],"6-21-58":[-523.41,1699.95],"6-21-59":[-1766.91,2538.05],"5-10-29":[-2448.23,2538.05],"6-21-60":[-3331.72,1626.41],"6-21-61":[-3355.23,1241.73],"5-10-30":[-3393.94,1626.41],"6-21-62":[-2622.98,2638.67],"6-21-63":[-4214.39,2874.63],"5-10-31":[-4214.39,2878.57],"6-22-0":[-398.63,1167.08],"6-22-1":[-651.33,2264.33],"6-22-2":[-1498.06,363.46],"6-22-3":[-1848.36,1220.89],"6-22-4":[-2407.5,3509.49],"6-22-5":[-1967.05,3362.6],"6-22-6":[-3532.52,562.23],"6-22-7":[-4708.86,561.11],"6-22-8":[-5102.62,731.19],"6-22-9":[-5406.44,633.28],"6-22-10":[-5616.21,980.63],"6-22-11":[-5777.27,953.84],"6-22-12":[-4339.32,1945.45],"6-22-13":[-3575.12,3751.07],"6-22-14":[-5353.78,3467.23],"6-22-15":[-3948.99,2981.68],"6-22-16":[-4230.11,2953.81],"6-22-17":[-4698.67,3455.03],"6-22-18":[-4417.21,3616.13],"6-22-19":[-4614.73,3677.07],"6-22-20":[-4612.07,3055.54],"6-22-21":[-4169.26,2579.5],"6-22-22":[-4121.9,227.36],"6-22-23":[-4832.83,-36.74],"6-22-24":[-4589.1,-43.31],"6-22-25":[-6924.66,-42.61],"6-22-26":[-3909.53,-41.08],"6-22-27":[-4173.36,-38.63],"6-22-28":[-5079.89,-34.92],"6-22-29":[-4716.43,-31.11],"6-22-30":[-4620.67,-27.03],"6-22-31":[-4566.09,-23.61],"6-22-32":[-4502.76,-19.66],"6-22-33":[-4557.38,-15.78],"6-22-34":[-4533.81,-12.28],"6-22-35":[-4814.45,-8],"6-22-36":[-4853.38,-4.62],"6-22-37":[-4430.16,-3.04],"6-22-38":[-4409.56,-2.78],"6-22-39":[-4975.84,-2.97],"6-22-40":[-4329.8,195.98],"6-22-41":[-4894.06,155.36],"6-22-42":[-4774.93,2577.48],"6-22-43":[-2521.79,3006.53],"6-22-44":[-112.74,3560.31],"6-22-45":[-107.66,3555.42],"6-22-46":[-25.48,3327.82],"6-22-47":[-23.5,2834],"6-22-48":[-21.38,2971.69],"6-22-49":[-20.27,3240.49],"6-22-50":[-22.59,3550.72],"6-22-51":[-29.7,1888.48],"6-22-52":[-41.54,948.84],"6-22-53":[-53.67,976.63],"6-22-54":[-61.27,681.33],"6-22-55":[-68.78,730.22],"6-22-56":[-498.55,541.09],"6-22-57":[-457.73,551.22],"6-22-58":[-534.91,3383.56],"6-22-59":[-664.24,3626.49],"6-22-60":[-2942.53,1694.94],"6-22-61":[-3274.61,1432.98],"6-22-62":[-2650.99,2576.08],"6-22-63":[-4214.39,2863.29],"6-23-0":[-421.11,1136.69],"6-23-1":[-833.08,2882.18],"5-11-0":[-833.08,2882.18],"6-23-2":[-1737.91,525.6],"6-23-3":[-2333.53,9.47],"5-11-1":[-2333.53,1220.89],"4-5-0":[-2333.53,2882.18],"6-23-4":[-2030.12,2135.73],"6-23-5":[-2116.36,1778.2],"5-11-2":[-2407.5,3509.49],"6-23-6":[-3602.71,628.59],"6-23-7":[-4632.63,437.77],"5-11-3":[-4708.86,628.59],"4-5-1":[-4708.86,3509.49],"3-2-0":[-4824.35,4101.76],"6-23-8":[-5155.37,620.34],"6-23-9":[-5302.33,595],"5-11-4":[-5406.44,731.19],"6-23-10":[-5557.74,952.89],"6-23-11":[-5636.66,969.04],"5-11-5":[-5777.27,980.63],"4-5-2":[-5899.2,2410.7],"6-23-12":[-4315.7,1217.71],"6-23-13":[-3848.72,3152.73],"5-11-6":[-4339.32,3751.07],"6-23-14":[-5731.78,3396.83],"6-23-15":[-3515.08,3385.15],"5-11-7":[-5731.78,3467.23],"4-5-3":[-6105.34,4373.52],"3-2-1":[-6829.25,4373.52],"6-23-16":[-3720.8,3846.98],"6-23-17":[-3729.31,3659.45],"5-11-8":[-4698.67,3846.98],"6-23-18":[-3857.79,3960.27],"6-23-19":[-4665.03,2781.72],"5-11-9":[-4665.03,3960.27],"4-5-4":[-6588.28,4387.58],"6-23-20":[-4586.57,2074.25],"6-23-21":[-3908.44,2324.4],"5-11-10":[-4612.07,3055.54],"6-23-22":[-4234.4,1902.28],"6-23-23":[-4248.98,-37.16],"5-11-11":[-4832.83,1902.28],"4-5-5":[-4832.83,3055.54],"3-2-2":[-6588.28,4387.58],"6-23-24":[-4096.4,-38.53],"6-23-25":[-3684.54,238.06],"5-11-12":[-6924.66,238.06],"6-23-26":[-4079.58,-36.65],"6-23-27":[-4195.46,-34.81],"5-11-13":[-4195.46,-34.81],"4-5-6":[-6924.66,238.06],"6-23-28":[-5581.2,-32.08],"6-23-29":[-5226.21,-29.04],"5-11-14":[-5581.2,-29.04],"6-23-30":[-4536.94,-25.29],"6-23-31":[-4550.37,-21.98],"5-11-15":[-4620.67,-21.98],"4-5-7":[-5581.2,-20.85],"3-2-3":[-6924.66,238.06],"6-23-32":[-4255.85,-18.42],"6-23-33":[-4442.94,-15],"5-11-16":[-4557.38,-15],"6-23-34":[-5616.78,-10.65],"6-23-35":[-4625.81,-6.84],"5-11-17":[-5616.78,-6.84],"4-5-8":[-5616.78,-6.84],"6-23-36":[-4390.47,-3.94],"6-23-37":[-4586.73,-2.35],"5-11-18":[-4853.38,-2.35],"6-23-38":[-4741.58,182.06],"6-23-39":[-4374.02,-2.19],"5-11-19":[-4975.84,182.06],"4-5-9":[-4986.97,182.06],"3-2-4":[-6887.6,182.06],"6-23-40":[-4592.1,-3.43],"6-23-41":[-4363.36,1835.28],"5-11-20":[-4894.06,1835.28],"6-23-42":[-1649.44,2317.4],"6-23-43":[-253.34,2074.33],"5-11-21":[-4774.93,3006.53],"4-5-10":[-5265.07,3006.53],"6-23-44":[-22.86,2716.48],"6-23-45":[-23.63,3833.28],"5-11-22":[-112.74,3833.28],"6-23-46":[-23.44,3527.63],"6-23-47":[-22.17,3624.57],"5-11-23":[-25.48,3624.57],"4-5-11":[-5134.28,4282.35],"3-2-5":[-6593.4,4282.35],"6-23-48":[-20.39,3270.25],"6-23-49":[-21.17,3156.76],"5-11-24":[-21.38,3270.25],"6-23-50":[-23.21,2985.77],"6-23-51":[-30.13,1202.75],"5-11-25":[-30.13,3550.72],"4-5-12":[-419.89,4326.16],"6-23-52":[-43.45,965.03],"6-23-53":[-51.53,945.27],"5-11-26":[-53.67,976.63],"6-23-54":[-58.95,477.09],"6-23-55":[-65.3,616.4],"5-11-27":[-68.78,730.22],"4-5-13":[-73.37,2254.26],"3-2-6":[-5094.21,4326.16],"6-23-56":[-381.19,424.76],"6-23-57":[-248.43,630.55],"5-11-28":[-498.55,630.55],"6-23-58":[-530.93,2010.01],"6-23-59":[-510.12,2194.6],"5-11-29":[-664.24,3626.49],"4-5-14":[-2448.23,3626.49],"6-23-60":[-2788.93,1763.02],"6-23-61":[-3206.53,1638.58],"5-11-30":[-3274.61,1763.02],"6-23-62":[-2569.85,2755.16],"6-23-63":[-4214.39,2834.96],"5-11-31":[-4214.39,2863.29],"4-5-15":[-4214.39,2878.57],"3-2-7":[-4215.33,3682.63],"6-24-0":[-444.11,1186.8],"6-24-1":[-1081.56,1860.38],"6-24-2":[-884.27,780.39],"6-24-3":[-2481.46,11.12],"6-24-4":[-1806.9,3362.09],"6-24-5":[-1623.32,2494.83],"6-24-6":[-3546.49,637.43],"6-24-7":[-4475.39,369.52],"6-24-8":[-5232.42,618.66],"6-24-9":[-5302.19,643.83],"6-24-10":[-5599.09,442.7],"6-24-11":[-5552.22,841.05],"6-24-12":[-4529.43,849.8],"6-24-13":[-4302.91,1071.09],"6-24-14":[-4466.8,2114.96],"6-24-15":[-3366.56,3889.28],"6-24-16":[-3659.9,4191.26],"6-24-17":[-3400.71,4109.88],"6-24-18":[-3545.38,3690.6],"6-24-19":[-4815.26,3824.21],"6-24-20":[-4264.88,3235.29],"6-24-21":[-3729.77,2589.58],"6-24-22":[-4007.02,1702.94],"6-24-23":[-5911.74,2045.21],"6-24-24":[-4035.63,-33.29],"6-24-25":[-4136.33,268.06],"6-24-26":[-4161.32,-31.52],"6-24-27":[-5001.37,-29.62],"6-24-28":[-4128.07,-28.02],"6-24-29":[-4975.29,-25.65],"6-24-30":[-4578.48,-23.11],"6-24-31":[-4349.57,-20.2],"6-24-32":[-4541,-17.27],"6-24-33":[-4341.2,-13.42],"6-24-34":[-4969.11,-9.91],"6-24-35":[-4622.82,-6.43],"6-24-36":[-6027.68,-3.86],"6-24-37":[-4987.2,-2.32],"6-24-38":[-4501.51,906.1],"6-24-39":[-4247.65,-2.13],"6-24-40":[-3703.92,2006.2],"6-24-41":[-3317.83,1625.93],"6-24-42":[-1102.76,2496.57],"6-24-43":[-20.18,3193.33],"6-24-44":[-21.4,3709.46],"6-24-45":[-21.96,3624.72],"6-24-46":[-21.96,3997.5],"6-24-47":[-20.69,3958.09],"6-24-48":[-19.53,3750.79],"6-24-49":[-21.86,2056.55],"6-24-50":[-23.63,1056.01],"6-24-51":[-30.13,836.55],"6-24-52":[-42.54,834.09],"6-24-53":[-50.73,423.69],"6-24-54":[-56.68,479.95],"6-24-55":[-62.37,620.69],"6-24-56":[-397.73,366.7],"6-24-57":[-327.26,618.35],"6-24-58":[-578.4,2438.84],"6-24-59":[-539.33,3441.15],"6-24-60":[-2590.64,1871.81],"6-24-61":[-3123.2,1816.7],"6-24-62":[-2650.65,2575.14],"6-24-63":[-4214.39,2813.19],"6-25-0":[-303.71,1053.33],"6-25-1":[-651.82,1708.98],"5-12-0":[-1081.56,1860.38],"6-25-2":[-922.35,1020.06],"6-25-3":[-2433.51,33.82],"5-12-1":[-2481.46,1020.06],"6-25-4":[-1734.73,293.97],"6-25-5":[-1461.69,334.46],"5-12-2":[-1806.9,3362.09],"6-25-6":[-3803.3,387.52],"6-25-7":[-4628.98,308.5],"5-12-3":[-4628.98,637.43],"6-25-8":[-5084.99,598.61],"6-25-9":[-5252.45,600.19],"5-12-4":[-5302.19,643.83],"6-25-10":[-5484.86,610.76],"6-25-11":[-5604.4,613.75],"5-12-5":[-5604.4,841.05],"6-25-12":[-4715.59,741.32],"6-25-13":[-4517.04,852.58],"5-12-6":[-4715.59,1071.09],"6-25-14":[-4478.47,2093.28],"6-25-15":[-3966.59,3842.68],"5-12-7":[-4478.47,3889.28],"6-25-16":[-3770.45,4204.45],"6-25-17":[-3937.86,3751.43],"5-12-8":[-3937.86,4204.45],"6-25-18":[-4104.8,4348.39],"6-25-19":[-5472.45,3458.34],"5-12-9":[-5472.45,4348.39],"6-25-20":[-5358.88,3295.69],"6-25-21":[-3924,3091.23],"5-12-10":[-5358.88,3295.69],"6-25-22":[-4181.74,3268.31],"6-25-23":[-4107.01,2081.23],"5-12-11":[-5911.74,3268.31],"6-25-24":[-4139.43,-28.52],"6-25-25":[-4417.91,-26.44],"5-12-12":[-4417.91,268.06],"6-25-26":[-4796.18,-25.22],"6-25-27":[-3903.47,-24.16],"5-12-13":[-5001.37,-24.16],"6-25-28":[-4620.9,-15.52],"6-25-29":[-4156.21,-22.31],"5-12-14":[-4975.29,-15.52],"6-25-30":[-4696.61,-20.5],"6-25-31":[-4184.51,-18.74],"5-12-15":[-4696.61,-18.74],"6-25-32":[-4009.76,-16.22],"6-25-33":[-4172.12,-12.95],"5-12-16":[-4541,-12.95],"6-25-34":[-4842.46,-9.78],"6-25-35":[-5609.97,98.48],"5-12-17":[-5609.97,98.48],"6-25-36":[-5165.76,-4.01],"6-25-37":[-5237.78,-2.5],"5-12-18":[-6027.68,-2.32],"6-25-38":[-5867.09,-2.18],"6-25-39":[-5887.61,-2.3],"5-12-19":[-5887.61,906.1],"6-25-40":[-3836.87,2005.22],"6-25-41":[-2624.66,3194.32],"5-12-20":[-3836.87,3194.32],"6-25-42":[-16.08,3023.14],"6-25-43":[-18.48,3241.73],"5-12-21":[-1102.76,3241.73],"6-25-44":[-19.58,3410.37],"6-25-45":[-20.51,4171.18],"5-12-22":[-21.96,4171.18],"6-25-46":[-20.66,3695.94],"6-25-47":[-19.83,4048.21],"5-12-23":[-21.96,4048.21],"6-25-48":[-19.6,3764.34],"6-25-49":[-22.09,1976.48],"5-12-24":[-22.09,3764.34],"6-25-50":[-24.31,843.14],"6-25-51":[-29.53,749.28],"5-12-25":[-30.13,1056.01],"6-25-52":[-38.65,583.75],"6-25-53":[-48.88,527.66],"5-12-26":[-50.73,834.09],"6-25-54":[-53.27,454.9],"6-25-55":[-321.18,564.64],"5-12-27":[-321.18,620.69],"6-25-56":[-365.61,281.37],"6-25-57":[-401.21,416.56],"5-12-28":[-401.21,618.35],"6-25-58":[-659.6,821.96],"6-25-59":[-553.58,1676.69],"5-12-29":[-659.6,3441.15],"6-25-60":[-2291.56,1996.28],"6-25-61":[-3041.73,1996.28],"5-12-30":[-3123.2,1996.28],"6-25-62":[-2813.69,2606.34],"6-25-63":[-4215.39,2795.26],"5-12-31":[-4215.39,2813.19],"6-26-0":[-439.71,1000.01],"6-26-1":[-730.5,1772.1],"6-26-2":[-897.49,2298.54],"6-26-3":[-1713.07,281.71],"6-26-4":[-1913.82,308.77],"6-26-5":[-1684.72,381.74],"6-26-6":[-3787.14,317.75],"6-26-7":[-4740.18,215.89],"6-26-8":[-5062.53,571.32],"6-26-9":[-5238.49,565.77],"6-26-10":[-6488.99,599.94],"6-26-11":[-6644.9,611.84],"6-26-12":[-4903.49,731.39],"6-26-13":[-5400.04,749.4],"6-26-14":[-4879.74,993.24],"6-26-15":[-4103.16,1446.2],"6-26-16":[-4120.52,3114.6],"6-26-17":[-4230.7,4338.56],"6-26-18":[-4413.49,4383.25],"6-26-19":[-5096.75,3998.98],"6-26-20":[-4111.25,3617.02],"6-26-21":[-3860.99,2970.04],"6-26-22":[-4545.1,3258.01],"6-26-23":[-4215.41,3307.88],"6-26-24":[-4394.09,2734.41],"6-26-25":[-4782.29,2861.69],"6-26-26":[-5685.17,-18.54],"6-26-27":[-4949.82,-18.19],"6-26-28":[-5202.13,-18.13],"6-26-29":[-4328.88,-18.06],"6-26-30":[-4889.01,-17.73],"6-26-31":[-4042.13,-17.02],"6-26-32":[-3932.99,-15.49],"6-26-33":[-4611.24,-12.9],"6-26-34":[-4215.41,-10],"6-26-35":[-4437.77,-7.31],"6-26-36":[-4454.44,-4.66],"6-26-37":[-4569.44,-3.18],"6-26-38":[-5094.37,2826.68],"6-26-39":[-4696.56,2654.65],"6-26-40":[-1698.12,3217.88],"6-26-41":[-10.71,3238.99],"6-26-42":[-14.63,2817.94],"6-26-43":[-16.88,3502.89],"6-26-44":[-18.57,3901.67],"6-26-45":[-19.41,4305.19],"6-26-46":[-19.51,4229.83],"6-26-47":[-18.58,3014],"6-26-48":[-19.11,1409.63],"6-26-49":[-22.08,981.78],"6-26-50":[-24.14,734.9],"6-26-51":[-29.38,727.51],"6-26-52":[-38.33,598.01],"6-26-53":[-46.19,511.34],"6-26-54":[-51.2,426.83],"6-26-55":[-57.5,452.88],"6-26-56":[-155.67,204.81],"6-26-57":[-311.85,196.31],"6-26-58":[-599.85,881.64],"6-26-59":[-578.3,1748.55],"6-26-60":[-1765.96,2076.65],"6-26-61":[-2851.24,2181.07],"6-26-62":[-2859.69,2606.49],"6-26-63":[-4215.39,2777.84],"6-27-0":[-553.59,784.94],"6-27-1":[-488.74,1493.87],"5-13-0":[-730.5,1772.1],"6-27-2":[-1148.95,2712.56],"6-27-3":[-2045.61,320.5],"5-13-1":[-2045.61,2712.56],"4-6-0":[-2481.46,2712.56],"6-27-4":[-2032.29,372.69],"6-27-5":[-1445.53,449.81],"5-13-2":[-2032.29,449.81],"6-27-6":[-3787.98,283.15],"6-27-7":[-4721.05,117.7],"5-13-3":[-4740.18,317.75],"4-6-1":[-4740.18,3362.09],"6-27-8":[-5023.3,325.53],"6-27-9":[-5311.91,428.65],"5-13-4":[-5311.91,571.32],"6-27-10":[-6550.67,567.14],"6-27-11":[-5322.93,510.84],"5-13-5":[-6644.9,611.84],"4-6-2":[-6644.9,841.05],"6-27-12":[-5100.87,779.83],"6-27-13":[-4957,797.9],"5-13-6":[-5400.04,797.9],"6-27-14":[-4562.1,843.62],"6-27-15":[-4900.36,1208.11],"5-13-7":[-4900.36,1446.2],"4-6-3":[-5400.04,3889.28],"6-27-16":[-4715.92,2194.75],"6-27-17":[-6020.76,1798.51],"5-13-8":[-6020.76,4338.56],"6-27-18":[-4494.59,2635.83],"6-27-19":[-4926.46,2159.53],"5-13-9":[-5096.75,4383.25],"4-6-4":[-6020.76,4383.25],"6-27-20":[-4552.08,1925.95],"6-27-21":[-3967.39,2697.84],"5-13-10":[-4552.08,3617.02],"6-27-22":[-4104.46,2999.92],"6-27-23":[-4228.95,3424.3],"5-13-11":[-4545.1,3424.3],"4-6-5":[-5911.74,3617.02],"6-27-24":[-4620.51,3479.94],"6-27-25":[-4583.52,4234.29],"5-13-12":[-4782.29,4234.29],"6-27-26":[-5549.86,-13],"6-27-27":[-5063.91,-12.54],"5-13-13":[-5685.17,-12.54],"4-6-6":[-5685.17,4234.29],"6-27-28":[-5516.32,-12.85],"6-27-29":[-5126.11,-13.41],"5-13-14":[-5516.32,-12.85],"6-27-30":[-4940.44,-14.09],"6-27-31":[-3922.85,-14.93],"5-13-15":[-4940.44,-14.09],"4-6-7":[-5516.32,-12.85],"6-27-32":[-10287.73,-14.66],"6-27-33":[-3838.8,-13.29],"5-13-16":[-10287.73,-12.9],"6-27-34":[-3952.86,-11.02],"6-27-35":[-4397.75,-9.21],"5-13-17":[-4437.77,-7.31],"4-6-8":[-10287.73,98.48],"6-27-36":[-3846.19,-6.32],"6-27-37":[-5411.31,-4.11],"5-13-18":[-5411.31,-3.18],"6-27-38":[-5381.88,4089.29],"6-27-39":[-7.82,3353.19],"5-13-19":[-5381.88,4089.29],"4-6-9":[-6027.68,4089.29],"6-27-40":[-6.36,3366.29],"6-27-41":[-8.91,2906.92],"5-13-20":[-1698.12,3366.29],"6-27-42":[-12.62,2615.39],"6-27-43":[-14.88,1857.98],"5-13-21":[-16.88,3502.89],"4-6-10":[-3836.87,3502.89],"6-27-44":[-15.67,2106.54],"6-27-45":[-17.16,2595.28],"5-13-22":[-19.41,4305.19],"6-27-46":[-17.14,1790.4],"6-27-47":[-16.64,2157.81],"5-13-23":[-19.51,4229.83],"4-6-11":[-21.96,4305.19],"6-27-48":[-18.13,1197.65],"6-27-49":[-20.76,806.78],"5-13-24":[-22.08,1409.63],"6-27-50":[-23.03,796.95],"6-27-51":[-27.57,771.94],"5-13-25":[-29.38,796.95],"4-6-12":[-30.13,3764.34],"6-27-52":[-33.04,487.72],"6-27-53":[-43.05,509.42],"5-13-26":[-46.19,598.01],"6-27-54":[-47.85,403.44],"6-27-55":[-55.33,313.6],"5-13-27":[-57.5,452.88],"4-6-13":[-321.18,834.09],"6-27-56":[-165.48,97.2],"6-27-57":[-389.09,647.09],"5-13-28":[-389.09,647.09],"6-27-58":[-464.97,899.06],"6-27-59":[-578.3,1803.34],"5-13-29":[-599.85,1803.34],"4-6-14":[-659.6,3441.15],"6-27-60":[-1164.05,2159.56],"6-27-61":[-2655.88,2197.16],"5-13-30":[-2851.24,2197.16],"6-27-62":[-2735.67,2581.41],"6-27-63":[-4215.89,2769.5],"5-13-31":[-4215.89,2777.84],"4-6-15":[-4215.89,2813.19],"6-28-0":[-589.49,895.88],"6-28-1":[-904.43,1735],"6-28-2":[-1112.91,1235.69],"6-28-3":[-2043.07,844.52],"6-28-4":[-2281.87,373.55],"6-28-5":[-1363.66,836.38],"6-28-6":[-4066.69,674.51],"6-28-7":[-4710.07,37.53],"6-28-8":[-5012.79,273.39],"6-28-9":[-5266.71,404.25],"6-28-10":[-5706.52,438.24],"6-28-11":[-5494.65,436.49],"6-28-12":[-5263.46,375.47],"6-28-13":[-5318.9,807.5],"6-28-14":[-4751.14,785.89],"6-28-15":[-4761.28,755.87],"6-28-16":[-5205.32,1090.39],"6-28-17":[-6497.54,1115.44],"6-28-18":[-4875.35,1003.31],"6-28-19":[-5278.57,1013.68],"6-28-20":[-4266.28,909.81],"6-28-21":[-4277.75,784.58],"6-28-22":[-4135.64,3697.19],"6-28-23":[-5658.77,3685.36],"6-28-24":[-4615.83,3903.97],"6-28-25":[-4879.2,5379.65],"6-28-26":[-6091.1,1685.03],"6-28-27":[-5229.41,-8.02],"6-28-28":[-5370.65,-9.26],"6-28-29":[-5029.2,-9.53],"6-28-30":[-5149.38,-10.39],"6-28-31":[-3741.68,-11.78],"6-28-32":[-4859.21,-13.08],"6-28-33":[-4605.78,-13.91],"6-28-34":[-3888.71,-12.68],"6-28-35":[-4747.63,-10.25],"6-28-36":[-4599.95,-7.52],"6-28-37":[-5655.38,1591.03],"6-28-38":[-3254.97,5307.64],"6-28-39":[-8.33,3851.97],"6-28-40":[-6.04,3653.33],"6-28-41":[-7.12,3606.16],"6-28-42":[-10.83,781.34],"6-28-43":[-12.78,907.4],"6-28-44":[-13.74,1016.87],"6-28-45":[-14.99,1005.18],"6-28-46":[-15.4,1103.03],"6-28-47":[-15.79,1073.93],"6-28-48":[-15.93,729.34],"6-28-49":[-19.25,738.55],"6-28-50":[-20.66,791.33],"6-28-51":[-24.63,359.46],"6-28-52":[-31.19,426.97],"6-28-53":[-40.85,427.93],"6-28-54":[-45.75,331.13],"6-28-55":[-52.39,260.77],"6-28-56":[-249.03,31.77],"6-28-57":[-291.84,721.39],"6-28-58":[-258.27,799.62],"6-28-59":[-519.66,1812.13],"6-28-60":[-695.6,2299.62],"6-28-61":[-2450.61,2175.98],"6-28-62":[-2467.84,2429.87],"6-28-63":[-4216.39,2761.57],"6-29-0":[-670.41,737.08],"6-29-1":[-665.35,1980.27],"5-14-0":[-904.43,1980.27],"6-29-2":[-1176.89,984.33],"6-29-3":[-2142.75,2066.14],"5-14-1":[-2142.75,2066.14],"6-29-4":[-2246.48,424.86],"6-29-5":[-1485.53,801.98],"5-14-2":[-2281.87,836.38],"6-29-6":[-4086.72,546.17],"6-29-7":[-4691.99,188.06],"5-14-3":[-4710.07,674.51],"6-29-8":[-4933.06,258.97],"6-29-9":[-5287.28,265.48],"5-14-4":[-5287.28,404.25],"6-29-10":[-5484.98,362.54],"6-29-11":[-5715.5,333.9],"5-14-5":[-5715.5,438.24],"6-29-12":[-5465.58,353.36],"6-29-13":[-5431.27,297.08],"5-14-6":[-5465.58,807.5],"6-29-14":[-4814.21,507.51],"6-29-15":[-5139.28,624.77],"5-14-7":[-5139.28,785.89],"6-29-16":[-4901.17,602.11],"6-29-17":[-6258.5,668.28],"5-14-8":[-6497.54,1115.44],"6-29-18":[-4824.97,558.27],"6-29-19":[-4787.72,500.16],"5-14-9":[-5278.57,1013.68],"6-29-20":[-4729.79,489.46],"6-29-21":[-4326.7,534.68],"5-14-10":[-4729.79,909.81],"6-29-22":[-4200.36,197.1],"6-29-23":[-5409.91,1437.08],"5-14-11":[-5658.77,3697.19],"6-29-24":[-4759.9,3376.08],"6-29-25":[-5145.15,5601.19],"5-14-12":[-5145.15,5601.19],"6-29-26":[-5646.48,3710.87],"6-29-27":[-5111.49,-5.43],"5-14-13":[-6091.1,3710.87],"6-29-28":[-5198.68,-5.37],"6-29-29":[-4685.05,-5.8],"5-14-14":[-5370.65,-5.37],"6-29-30":[-4562.98,-7.34],"6-29-31":[-3766.53,-8.54],"5-14-15":[-5149.38,-7.34],"6-29-32":[-4270.36,-11.17],"6-29-33":[-4267.65,-12.92],"5-14-16":[-4859.21,-11.17],"6-29-34":[-4304.77,-12.74],"6-29-35":[-5036.16,-10.37],"5-14-17":[-5036.16,-10.25],"6-29-36":[-4927.2,-7.55],"6-29-37":[-5616.3,3669.89],"5-14-18":[-5655.38,3669.89],"6-29-38":[-1835.13,5523.17],"6-29-39":[-3149.73,3283.09],"5-14-19":[-3254.97,5523.17],"6-29-40":[-3378.56,1345.28],"6-29-41":[-1756.43,193.62],"5-14-20":[-3378.56,3653.33],"6-29-42":[-70.76,507.97],"6-29-43":[-11.27,487.69],"5-14-21":[-70.76,907.4],"6-29-44":[-11.15,502.01],"6-29-45":[-11.69,556.71],"5-14-22":[-14.99,1016.87],"6-29-46":[-12.81,657.33],"6-29-47":[-11.24,593.9],"5-14-23":[-15.79,1103.03],"6-29-48":[-12.87,609.26],"6-29-49":[-15.22,481.25],"5-14-24":[-19.25,738.55],"6-29-50":[-18.28,290.43],"6-29-51":[-22.81,343.35],"5-14-25":[-24.63,791.33],"6-29-52":[-28.28,328.57],"6-29-53":[-37.41,365.55],"5-14-26":[-40.85,427.93],"6-29-54":[-82.28,245.7],"6-29-55":[-48.36,222.95],"5-14-27":[-82.28,331.13],"6-29-56":[-184.27,180.06],"6-29-57":[-496.2,695.16],"5-14-28":[-496.2,721.39],"6-29-58":[-343.95,1067.53],"6-29-59":[-491.39,1825.18],"5-14-29":[-519.66,1825.18],"6-29-60":[-664.28,2484.31],"6-29-61":[-2275.16,2200.25],"5-14-30":[-2450.61,2484.31],"6-29-62":[-2669.75,2364.99],"6-29-63":[-4216.39,2744.46],"5-14-31":[-4216.39,2761.57],"6-30-0":[-683.41,733.6],"6-30-1":[-703.44,2104.03],"6-30-2":[-1390.04,936.6],"6-30-3":[-1958,1609.72],"6-30-4":[-2316.35,717.95],"6-30-5":[-1776.88,1397.15],"6-30-6":[-3459.86,559.29],"6-30-7":[-4646.45,433.78],"6-30-8":[-5124.1,458.53],"6-30-9":[-5123.08,174.74],"6-30-10":[-5282.92,106.11],"6-30-11":[-6403.12,228.76],"6-30-12":[-7162.59,294.27],"6-30-13":[-6116.46,456.57],"6-30-14":[-5551.79,564.92],"6-30-15":[-5146.8,584.49],"6-30-16":[-5033.92,471.28],"6-30-17":[-5140.65,446.09],"6-30-18":[-5034.68,490.81],"6-30-19":[-4387.03,806.41],"6-30-20":[-5194.52,204.36],"6-30-21":[-4444.26,125.4],"6-30-22":[-4421.26,-25.61],"6-30-23":[-4321.97,-25.42],"6-30-24":[-4680.88,-14.04],"6-30-25":[-5059.77,2490.71],"6-30-26":[-4874.36,2540.82],"6-30-27":[-4690.19,-2.77],"6-30-28":[-5085.57,-1.84],"6-30-29":[-4909.25,-2.28],"6-30-30":[-4430.52,-4.28],"6-30-31":[-3787.91,-5.31],"6-30-32":[-3813.24,-8.63],"6-30-33":[-4282.62,-11.24],"6-30-34":[-4055.16,-12.14],"6-30-35":[-4888.98,-9.83],"6-30-36":[-6739.12,-7.4],"6-30-37":[-6668.56,2406.1],"6-30-38":[-2535.05,2428.71],"6-30-39":[-3785.54,-0.38],"6-30-40":[-3944.08,1.26],"6-30-41":[-3640.72,1.53],"6-30-42":[-109.86,126.71],"6-30-43":[-9.48,205.26],"6-30-44":[-9.48,795.12],"6-30-45":[-7.66,480.69],"6-30-46":[-9.07,435.79],"6-30-47":[-9.84,460.48],"6-30-48":[-11.72,559.47],"6-30-49":[-14.44,443.49],"6-30-50":[-16.72,447.4],"6-30-51":[-22.37,278.21],"6-30-52":[-110.99,220.76],"6-30-53":[-173.11,114.06],"6-30-54":[-118.63,158.11],"6-30-55":[-48.98,462.53],"6-30-56":[-132.66,437.71],"6-30-57":[-419.5,576.27],"6-30-58":[-337.86,1562.01],"6-30-59":[-652.43,1824.22],"6-30-60":[-559.27,2275.03],"6-30-61":[-2146.95,2180.52],"6-30-62":[-2620.12,2328.81],"6-30-63":[-4214.89,2744.46],"6-31-0":[-632.33,642.36],"6-31-1":[-1311.87,2619.83],"5-15-0":[-1311.87,2619.83],"6-31-2":[-1670.02,1700.11],"6-31-3":[-1505.89,2250.64],"5-15-1":[-1958,2250.64],"4-7-0":[-2142.75,2619.83],"6-31-4":[-2104.87,1374.08],"6-31-5":[-1565.53,583.45],"5-15-2":[-2316.35,1397.15],"6-31-6":[-3638.82,413.34],"6-31-7":[-4686.95,1580.64],"5-15-3":[-4686.95,1580.64],"4-7-1":[-4710.07,1580.64],"3-3-0":[-4740.18,3362.09],"6-31-8":[-5042.89,577.62],"6-31-9":[-4980.95,282.12],"5-15-4":[-5124.1,577.62],"6-31-10":[-5310.1,-46.98],"6-31-11":[-5722.75,190.58],"5-15-5":[-6403.12,228.76],"4-7-2":[-6403.12,577.62],"6-31-12":[-6291.76,324],"6-31-13":[-5111.3,447.15],"5-15-6":[-7162.59,456.57],"6-31-14":[-5530.61,671.12],"6-31-15":[-5164.36,604.9],"5-15-7":[-5551.79,671.12],"4-7-3":[-7162.59,807.5],"3-3-1":[-7162.59,3889.28],"2-1-0":[-7162.59,4373.52],"6-31-16":[-4822.44,422.75],"6-31-17":[-4823.05,300.32],"5-15-8":[-5140.65,471.28],"6-31-18":[-4833.5,509.53],"6-31-19":[-4467.91,590.45],"5-15-9":[-5034.68,806.41],"4-7-4":[-6497.54,1115.44],"6-31-20":[-4946.44,146.09],"6-31-21":[-4407.4,78.7],"5-15-10":[-5194.52,204.36],"6-31-22":[-4533.97,-24.95],"6-31-23":[-5033.68,-3.53],"5-15-11":[-5033.68,-3.53],"4-7-5":[-5658.77,3697.19],"3-3-2":[-6497.54,4383.25],"6-31-24":[-5131.34,129.8],"6-31-25":[-4759.71,2495.76],"5-15-12":[-5131.34,2495.76],"6-31-26":[-4820.52,4217.93],"6-31-27":[-4834.53,1667.28],"5-15-13":[-4874.36,4217.93],"4-7-6":[-6091.1,5601.19],"6-31-28":[-5293.16,3.56],"6-31-29":[-4500.18,1.79],"5-15-14":[-5293.16,3.56],"6-31-30":[-4189.47,-0.95],"6-31-31":[-4104.28,1700.45],"5-15-15":[-4430.52,1700.45],"4-7-7":[-5370.65,1700.45],"3-3-3":[-6091.1,5601.19],"2-1-1":[-6924.66,5601.19],"1-0-0":[-10751.44,6207.28],"6-31-32":[-3510.08,1684.42],"6-31-33":[-4070.18,-8.12],"5-15-16":[-4282.62,1684.42],"6-31-34":[-3905.47,-10.22],"6-31-35":[-4170.38,-8.63],"5-15-17":[-4888.98,-8.63],"4-7-8":[-5036.16,1684.42],"6-31-36":[-6565.97,1589.27],"6-31-37":[-1812.77,4112.94],"5-15-18":[-6739.12,4112.94],"6-31-38":[-859.48,2424.67],"6-31-39":[-3743.15,104.44],"5-15-19":[-3785.54,2428.71],"4-7-9":[-6739.12,5523.17],"3-3-4":[-10287.73,5523.17],"6-31-40":[-3908.65,3.59],"6-31-41":[-3567.18,3.57],"5-15-20":[-3944.08,3.59],"6-31-42":[-397.92,76.86],"6-31-43":[-58.3,146.46],"5-15-21":[-397.92,205.26],"4-7-10":[-3944.08,3653.33],"6-31-44":[-6.17,569.71],"6-31-45":[-5.45,505.58],"5-15-22":[-9.48,795.12],"6-31-46":[-4.53,291.79],"6-31-47":[-5.48,416.99],"5-15-23":[-9.84,460.48],"4-7-11":[-15.79,1103.03],"3-3-5":[-3944.08,4305.19],"2-1-2":[-10287.73,5523.17],"6-31-48":[-132.81,589.98],"6-31-49":[-11.96,638.88],"5-15-24":[-132.81,638.88],"6-31-50":[-15.08,443],"6-31-51":[-19.15,311.46],"5-15-25":[-22.37,447.4],"4-7-12":[-132.81,791.33],"6-31-52":[-198.6,182.6],"6-31-53":[-208.92,-9.98],"5-15-26":[-208.92,220.76],"6-31-54":[-201.71,281.1],"6-31-55":[-39.77,576.62],"5-15-27":[-201.71,576.62],"4-7-13":[-208.92,576.62],"3-3-6":[-321.18,3764.34],"6-31-56":[-270.99,1365.62],"6-31-57":[-502.2,424.34],"5-15-28":[-502.2,1365.62],"6-31-58":[-502.24,1267.01],"6-31-59":[-500.79,1887.87],"5-15-29":[-652.43,1887.87],"4-7-14":[-652.43,1887.87],"6-31-60":[-838.7,2175.26],"6-31-61":[-2146.95,1987.13],"5-15-30":[-2146.95,2275.03],"6-31-62":[-2638.31,2714.87],"6-31-63":[-4214.39,2744.46],"5-15-31":[-4214.89,2744.46],"4-7-15":[-4216.39,2761.57],"3-3-7":[-4216.39,3441.15],"2-1-3":[-5094.21,4326.16],"1-0-1":[-10287.73,6095.63],"6-32-0":[-651.16,891.44],"6-32-1":[-1552.49,1948.79],"6-32-2":[-1753.91,2344.15],"6-32-3":[-1288.78,1880.89],"6-32-4":[-1721.76,2029.25],"6-32-5":[-1511.31,684.11],"6-32-6":[-2539.96,367.14],"6-32-7":[-4349.76,395.57],"6-32-8":[-4839.06,546.23],"6-32-9":[-5001.37,248.1],"6-32-10":[-5439.68,-44.47],"6-32-11":[-5724.72,87.35],"6-32-12":[-6336.83,240.44],"6-32-13":[-5142.35,415.1],"6-32-14":[-5460.52,599.34],"6-32-15":[-4689.89,568.7],"6-32-16":[-4679.1,551.43],"6-32-17":[-5583.01,291.63],"6-32-18":[-5370.29,294.32],"6-32-19":[-5027.02,321.49],"6-32-20":[-4299.38,211.56],"6-32-21":[-4681.53,90.38],"6-32-22":[-4375.93,-7.81],"6-32-23":[-4439.29,-7.65],"6-32-24":[-5208.19,200.24],"6-32-25":[-5459.67,1010.31],"6-32-26":[-4966.32,3009.32],"6-32-27":[-4803.68,2376.93],"6-32-28":[-5024,10.91],"6-32-29":[-4552.19,10.51],"6-32-30":[-4518.06,6.74],"6-32-31":[-3413.49,663.37],"6-32-32":[-3814.72,716.38],"6-32-33":[-4502.59,-4.49],"6-32-34":[-3766.35,-6.53],"6-32-35":[-5498.08,-6.02],"6-32-36":[-6062.39,2332.91],"6-32-37":[-3402.81,2916.82],"6-32-38":[-3812.19,964.29],"6-32-39":[-1204.75,182.66],"6-32-40":[-3737.48,5.45],"6-32-41":[-3492.01,6.31],"6-32-42":[-2792.42,86.86],"6-32-43":[-49.18,196.98],"6-32-44":[-5.26,309.51],"6-32-45":[-4.78,279.02],"6-32-46":[-2.44,284.12],"6-32-47":[-68.64,505.12],"6-32-48":[-161.62,554.68],"6-32-49":[-174.75,577.05],"6-32-50":[-11.84,403.02],"6-32-51":[-80.26,236.41],"6-32-52":[-241.21,84.28],"6-32-53":[-273.09,-8.31],"6-32-54":[-233.27,253.41],"6-32-55":[-129.67,539.22],"6-32-56":[-348.03,403.5],"6-32-57":[-470.07,449.89],"6-32-58":[-496.76,1290.61],"6-32-59":[-472.31,2685.38],"6-32-60":[-800.22,2381.84],"6-32-61":[-1910.19,1985.53],"6-32-62":[-2730.3,2244.93],"6-32-63":[-4214.39,2744.46],"6-33-0":[-350.03,366.89],"6-33-1":[-1236.85,1500.73],"5-16-0":[-1552.49,1948.79],"6-33-2":[-1749.59,1693.18],"6-33-3":[-1626.27,2653.23],"5-16-1":[-1753.91,2653.23],"6-33-4":[-2555.32,4704.79],"6-33-5":[-1385.22,1009.47],"5-16-2":[-2555.32,4704.79],"6-33-6":[-1100.12,819.86],"6-33-7":[-4304.38,557.56],"5-16-3":[-4349.76,819.86],"6-33-8":[-4717.53,444.35],"6-33-9":[-5014.69,366.68],"5-16-4":[-5014.69,546.23],"6-33-10":[-5580.11,-42.25],"6-33-11":[-6310.58,-45.96],"5-16-5":[-6310.58,87.35],"6-33-12":[-5887.78,205.42],"6-33-13":[-5096.82,323.91],"5-16-6":[-6336.83,415.1],"6-33-14":[-5141.14,604.67],"6-33-15":[-5045.87,613.05],"5-16-7":[-5460.52,613.05],"6-33-16":[-4428.48,486.54],"6-33-17":[-5579.29,356.67],"5-16-8":[-5583.01,551.43],"6-33-18":[-5095.04,611.43],"6-33-19":[-4956.22,1256.4],"5-16-9":[-5370.29,1256.4],"6-33-20":[-4459.43,703.65],"6-33-21":[-4536.16,133.72],"5-16-10":[-4681.53,703.65],"6-33-22":[-4327.34,-9.17],"6-33-23":[-5710.56,-15.6],"5-16-11":[-5710.56,-7.65],"6-33-24":[-4728.77,38.89],"6-33-25":[-5255.71,-5.73],"5-16-12":[-5459.67,1010.31],"6-33-26":[-5088.65,2458.87],"6-33-27":[-5143.3,2108.97],"5-16-13":[-5143.3,3009.32],"6-33-28":[-5077.06,2165.37],"6-33-29":[-4768.23,21.34],"5-16-14":[-5077.06,2165.37],"6-33-30":[-4621.04,580.04],"6-33-31":[-3768.75,9.28],"5-16-15":[-4621.04,663.37],"6-33-32":[-4778.61,4.83],"6-33-33":[-3866.48,493.04],"5-16-16":[-4778.61,716.38],"6-33-34":[-3463.64,-2.74],"6-33-35":[-5264.94,2112.86],"5-16-17":[-5498.08,2112.86],"6-33-36":[-1265.04,2015.96],"6-33-37":[-5834.04,2371.84],"5-16-18":[-6062.39,2916.82],"6-33-38":[-5561.97,2.74],"6-33-39":[-4850.21,12.09],"5-16-19":[-5561.97,964.29],"6-33-40":[-3721.53,9.43],"6-33-41":[-3446.02,10.75],"5-16-20":[-3737.48,10.75],"6-33-42":[-2926.21,85.16],"6-33-43":[-6.76,670.08],"5-16-21":[-2926.21,670.08],"6-33-44":[-2.13,1191.3],"6-33-45":[-1.46,564.53],"5-16-22":[-5.26,1191.3],"6-33-46":[-0.15,347.1],"6-33-47":[-135.47,473.44],"5-16-23":[-135.47,505.12],"6-33-48":[-256.34,566.65],"6-33-49":[-167.37,570.37],"5-16-24":[-256.34,577.05],"6-33-50":[-7.73,310.25],"6-33-51":[-187.94,187.42],"5-16-25":[-187.94,403.02],"6-33-52":[-241.18,-3.66],"6-33-53":[-285.94,-5.75],"5-16-26":[-285.94,84.28],"6-33-54":[-219.87,399.59],"6-33-55":[-497.41,430.98],"5-16-27":[-497.41,539.22],"6-33-56":[-420.6,576.62],"6-33-57":[-736.8,864.62],"5-16-28":[-736.8,864.62],"6-33-58":[-774.19,1304.63],"6-33-59":[-793.68,4721.94],"5-16-29":[-793.68,4721.94],"6-33-60":[-800.68,2555.4],"6-33-61":[-1816.41,1732.44],"5-16-30":[-1910.19,2555.4],"6-33-62":[-2782.86,2245.57],"6-33-63":[-4214.89,2744.47],"5-16-31":[-4214.89,2744.47],"6-34-0":[-454.83,542.8],"6-34-1":[-1478.32,428.27],"6-34-2":[-1866.74,1823.83],"6-34-3":[-2047.48,2270.95],"6-34-4":[-2606.71,1556.84],"6-34-5":[-2627.94,1913.68],"6-34-6":[-1191.1,1056.55],"6-34-7":[-4260.54,570.75],"6-34-8":[-4632.93,613.97],"6-34-9":[-4928.09,433.17],"6-34-10":[-5263.71,-38.64],"6-34-11":[-6036.97,-44.35],"6-34-12":[-6155.38,171.79],"6-34-13":[-5688.04,145.12],"6-34-14":[-4849.44,594.92],"6-34-15":[-4302.63,614.36],"6-34-16":[-4708.92,432.14],"6-34-17":[-5187.86,436.84],"6-34-18":[-4796.58,1652.42],"6-34-19":[-4753.59,2004.7],"6-34-20":[-4390.66,358.2],"6-34-21":[-4342.5,76.45],"6-34-22":[-5078.47,86.32],"6-34-23":[-4795.27,678.56],"6-34-24":[-4711.24,565.42],"6-34-25":[-4864.62,19.57],"6-34-26":[-5307.29,735.54],"6-34-27":[-5583.4,729.46],"6-34-28":[-5386.72,3818.31],"6-34-29":[-5922.69,1199.76],"6-34-30":[-5526.33,213.98],"6-34-31":[-4419.31,21.13],"6-34-32":[-4679.46,20.08],"6-34-33":[-4932.19,93.97],"6-34-34":[-4711.18,1158.76],"6-34-35":[-3210.82,3734.31],"6-34-36":[-3366.76,691.45],"6-34-37":[-1999.35,687.54],"6-34-38":[-6807.88,9.8],"6-34-39":[-4726.82,503.41],"6-34-40":[-3500.23,611.32],"6-34-41":[-344.47,88.56],"6-34-42":[-83.1,82.28],"6-34-43":[-41.18,336.97],"6-34-44":[1.55,1938.99],"6-34-45":[1.48,1607.82],"6-34-46":[1.54,428.39],"6-34-47":[-71.85,420.82],"6-34-48":[-80.29,600.77],"6-34-49":[-1.02,564.78],"6-34-50":[-56.04,146.55],"6-34-51":[-187.94,168.79],"6-34-52":[-252.94,-1.44],"6-34-53":[-311.22,-3.74],"6-34-54":[-313.66,517.83],"6-34-55":[-438.4,576.97],"6-34-56":[-237.34,538.73],"6-34-57":[-161.05,1030.58],"6-34-58":[-811.08,1906.63],"6-34-59":[-838.51,1732.84],"6-34-60":[-783.24,2250.43],"6-34-61":[-1769.21,1753.86],"6-34-62":[-2783.53,2251.13],"6-34-63":[-4219.24,2745.47],"6-35-0":[-459.62,452.64],"6-35-1":[-1463.64,603.08],"5-17-0":[-1478.32,603.08],"6-35-2":[-1858.56,1923.59],"6-35-3":[-2344.57,2313.91],"5-17-1":[-2344.57,2313.91],"4-8-0":[-2344.57,2653.23],"6-35-4":[-2871.64,2252.73],"6-35-5":[-2571.35,1712.44],"5-17-2":[-2871.64,2252.73],"6-35-6":[-1027.03,1559.44],"6-35-7":[-4207.3,272.32],"5-17-3":[-4260.54,1559.44],"4-8-1":[-4349.76,4704.79],"6-35-8":[-4447.9,185.61],"6-35-9":[-5050.87,184.52],"5-17-4":[-5050.87,613.97],"6-35-10":[-5719.26,293.27],"6-35-11":[-5529.33,81.87],"5-17-5":[-6036.97,293.27],"4-8-2":[-6310.58,613.97],"6-35-12":[-5305.72,123.7],"6-35-13":[-4672.46,181.36],"5-17-6":[-6155.38,181.36],"6-35-14":[-4394.81,536.17],"6-35-15":[-4785.62,651.7],"5-17-7":[-4849.44,651.7],"4-8-3":[-6336.83,651.7],"6-35-16":[-5189.33,701.76],"6-35-17":[-5118.02,951.43],"5-17-8":[-5189.33,951.43],"6-35-18":[-4407.59,1713.99],"6-35-19":[-4331.47,1476.72],"5-17-9":[-4796.58,2004.7],"4-8-4":[-5583.01,2004.7],"6-35-20":[-4392,1834.6],"6-35-21":[-4783.03,28.94],"5-17-10":[-4783.03,1834.6],"6-35-22":[-4621.18,840.08],"6-35-23":[-4947.87,293.76],"5-17-11":[-5078.47,840.08],"4-8-5":[-5710.56,1834.6],"6-35-24":[-5282.94,1104.62],"6-35-25":[-4816.41,14.26],"5-17-12":[-5282.94,1104.62],"6-35-26":[-5347.3,8.26],"6-35-27":[-6488.32,357.63],"5-17-13":[-6488.32,735.54],"4-8-6":[-6488.32,3009.32],"6-35-28":[-6906.46,1960.73],"6-35-29":[-6336.37,4007.75],"5-17-14":[-6906.46,4007.75],"6-35-30":[-4440.69,4388.45],"6-35-31":[-4459.71,6213.75],"5-17-15":[-5526.33,6213.75],"4-8-7":[-6906.46,6213.75],"6-35-32":[-5218.74,6286.78],"6-35-33":[-5042.7,4458.62],"5-17-16":[-5218.74,6286.78],"6-35-34":[-4708.73,4118.74],"6-35-35":[-4012.1,1896.73],"5-17-17":[-4711.18,4118.74],"4-8-8":[-5498.08,6286.78],"6-35-36":[-3818.41,288.63],"6-35-37":[-2951.15,21.77],"5-17-18":[-3818.41,691.45],"6-35-38":[-7357.49,22.14],"6-35-39":[-4359.2,1048.6],"5-17-19":[-7357.49,1048.6],"4-8-9":[-7357.49,2916.82],"6-35-40":[-1553.17,257.76],"6-35-41":[-946.57,470.08],"5-17-20":[-3500.23,611.32],"6-35-42":[-1053.62,27.72],"6-35-43":[-866.11,1091.31],"5-17-21":[-1053.62,1091.31],"4-8-10":[-3737.48,1091.31],"6-35-44":[-69.43,1392.94],"6-35-45":[4.72,1677.79],"5-17-22":[-69.43,1938.99],"6-35-46":[4.86,939.44],"6-35-47":[-106.62,672.4],"5-17-23":[-106.62,939.44],"4-8-11":[-135.47,1938.99],"6-35-48":[-33.74,618.24],"6-35-49":[-3.08,519.17],"5-17-24":[-80.29,618.24],"6-35-50":[-125.18,177.05],"6-35-51":[-247.54,111.71],"5-17-25":[-247.54,177.05],"4-8-12":[-256.34,618.24],"6-35-52":[-237.66,68.63],"6-35-53":[-245.4,250.26],"5-17-26":[-311.22,250.26],"6-35-54":[-548.44,169.55],"6-35-55":[-478.9,182.61],"5-17-27":[-548.44,576.97],"4-8-13":[-548.44,576.97],"6-35-56":[-197.41,197.49],"6-35-57":[-850.85,1559.44],"5-17-28":[-850.85,1559.44],"6-35-58":[-952.94,1784.85],"6-35-59":[-708.27,2036.4],"5-17-29":[-952.94,2036.4],"4-8-14":[-952.94,4721.94],"6-35-60":[-528.88,2299.86],"6-35-61":[-1592.98,1971.3],"5-17-30":[-1769.21,2299.86],"6-35-62":[-2784.06,2260.72],"6-35-63":[-4215.39,2745.47],"5-17-31":[-4219.24,2745.47],"4-8-15":[-4219.24,2745.47],"6-36-0":[-489.79,822.76],"6-36-1":[-1366.27,1154.63],"6-36-2":[-1683.51,2230.75],"6-36-3":[-1884.8,2258.08],"6-36-4":[-2367.54,1817.36],"6-36-5":[-2385.15,2118.71],"6-36-6":[-1364.35,1862.67],"6-36-7":[-4087.74,611.89],"6-36-8":[-4262.94,282.83],"6-36-9":[-5089.76,575.77],"6-36-10":[-5139.84,428.02],"6-36-11":[-5274.38,430.05],"6-36-12":[-4997.51,408.97],"6-36-13":[-4177.36,406.33],"6-36-14":[-4221.39,610.85],"6-36-15":[-4309.16,575.3],"6-36-16":[-5063.08,700.02],"6-36-17":[-4764.18,927.51],"6-36-18":[-4804.48,1201.61],"6-36-19":[-4436.54,191.41],"6-36-20":[-4791.15,-36.24],"6-36-21":[-4697.14,-34.13],"6-36-22":[-4820.37,29.15],"6-36-23":[-5032.56,55.76],"6-36-24":[-6376.98,1947.58],"6-36-25":[-5043.08,2231.33],"6-36-26":[-5556.63,807.13],"6-36-27":[-6025.05,5673.66],"6-36-28":[-2187.54,6657.51],"6-36-29":[-180.23,4957.44],"6-36-30":[-37.47,5414.88],"6-36-31":[-328.06,5809.48],"6-36-32":[-623.84,5906.18],"6-36-33":[-4269.78,5319.85],"6-36-34":[-4417.62,5607.45],"6-36-35":[-4208.62,6754.44],"6-36-36":[-4176.44,5914.69],"6-36-37":[-4288.99,824.13],"6-36-38":[-6848.89,2167.33],"6-36-39":[-6923.15,1828.57],"6-36-40":[-4947.98,411.38],"6-36-41":[-5170.05,422.7],"6-36-42":[-5116.4,27.55],"6-36-43":[-3615.81,26.75],"6-36-44":[-1006.26,156.63],"6-36-45":[-89.15,1138.15],"6-36-46":[-54.04,900.59],"6-36-47":[-201.99,692.08],"6-36-48":[7.17,548.17],"6-36-49":[4.69,580.92],"6-36-50":[-48.23,396.38],"6-36-51":[-242.98,388.95],"6-36-52":[-185.02,401.03],"6-36-53":[-180.3,428.06],"6-36-54":[-562.17,511.81],"6-36-55":[-206.42,273.04],"6-36-56":[-156.47,519.49],"6-36-57":[-1062.12,1733.71],"6-36-58":[-1087.43,1801.07],"6-36-59":[-759.94,1748.06],"6-36-60":[-275.14,2158.52],"6-36-61":[-1442.57,2325.18],"6-36-62":[-2787.79,2281.25],"6-36-63":[-4215.39,2745.47],"6-37-0":[-529.7,950.33],"6-37-1":[-1610.79,1129.6],"5-18-0":[-1610.79,1154.63],"6-37-2":[-1851.99,2437.47],"6-37-3":[-1683.51,2148.92],"5-18-1":[-1884.8,2437.47],"6-37-4":[-1556.76,1260.24],"6-37-5":[-1695.95,1184.79],"5-18-2":[-2385.15,2118.71],"6-37-6":[-1120.23,1808.19],"6-37-7":[-3519.71,1101.49],"5-18-3":[-4087.74,1862.67],"6-37-8":[-4147.78,282.61],"6-37-9":[-4780.41,642.27],"5-18-4":[-5089.76,642.27],"6-37-10":[-5266.36,648.16],"6-37-11":[-5260.84,410.19],"5-18-5":[-5274.38,648.16],"6-37-12":[-4472.73,1084.61],"6-37-13":[-3802.59,2661.91],"5-18-6":[-4997.51,2661.91],"6-37-14":[-1764.59,3481.08],"6-37-15":[-3424.87,3901.29],"5-18-7":[-4309.16,3901.29],"6-37-16":[-3865.32,1597.57],"6-37-17":[-4566.1,1241.62],"5-18-8":[-5063.08,1597.57],"6-37-18":[-5188.07,1352.53],"6-37-19":[-5441.31,-10.6],"5-18-9":[-5441.31,1352.53],"6-37-20":[-5453.77,-42.73],"6-37-21":[-4766.46,-43.8],"5-18-10":[-5453.77,-34.13],"6-37-22":[-5001.2,-41.08],"6-37-23":[-5070.1,26.27],"5-18-11":[-5070.1,55.76],"6-37-24":[-6091.51,1217.95],"6-37-25":[-7536.97,2330.69],"5-18-12":[-7536.97,2330.69],"6-37-26":[-7556.84,5459.75],"6-37-27":[-346.06,5421.57],"5-18-13":[-7556.84,5673.66],"6-37-28":[-49.02,5700.22],"6-37-29":[-23.52,3844.52],"5-18-14":[-2187.54,6657.51],"6-37-30":[-114.49,5315.89],"6-37-31":[-8.04,3836.77],"5-18-15":[-328.06,5809.48],"6-37-32":[117.06,3769.75],"6-37-33":[-136.42,5266.88],"5-18-16":[-4269.78,5906.18],"6-37-34":[-34.08,3760.52],"6-37-35":[-2679.16,5683.59],"5-18-17":[-4417.62,6754.44],"6-37-36":[-4297.04,5564.58],"6-37-37":[-4632.8,5547.75],"5-18-18":[-4632.8,5914.69],"6-37-38":[-5938.07,2250.67],"6-37-39":[-4564.93,1130.92],"5-18-19":[-6923.15,2250.67],"6-37-40":[-5547.39,781.66],"6-37-41":[-5471.37,37.5],"5-18-20":[-5547.39,781.66],"6-37-42":[-5342.72,34.42],"6-37-43":[-5384.9,32.14],"5-18-21":[-5384.9,34.42],"6-37-44":[-4916.35,34.46],"6-37-45":[-3432.19,1376.54],"5-18-22":[-4916.35,1376.54],"6-37-46":[-122.33,1199.69],"6-37-47":[-70.31,1528.77],"5-18-23":[-201.99,1528.77],"6-37-48":[-68.87,4026.29],"6-37-49":[-269.44,3587.09],"5-18-24":[-269.44,4026.29],"6-37-50":[-96.77,2789.91],"6-37-51":[-222.29,1172.63],"5-18-25":[-242.98,2789.91],"6-37-52":[-5.66,395.16],"6-37-53":[-1.67,603.79],"5-18-26":[-185.02,603.79],"6-37-54":[-542.06,589.74],"6-37-55":[-65.58,231.36],"5-18-27":[-562.17,589.74],"6-37-56":[-96.03,1105.5],"6-37-57":[-923.87,1832.24],"5-18-28":[-1062.12,1832.24],"6-37-58":[-1032.37,1660.76],"6-37-59":[-1613.33,1225.22],"5-18-29":[-1613.33,1801.07],"6-37-60":[-479.28,2166.62],"6-37-61":[-1311.15,2452.46],"5-18-30":[-1442.57,2452.46],"6-37-62":[-2784.78,2321.18],"6-37-63":[-4220.26,2745.47],"5-18-31":[-4220.26,2745.47],"6-38-0":[-519.6,681.02],"6-38-1":[-2198.47,1253.78],"6-38-2":[-2189.44,2116.63],"6-38-3":[-1281.64,2052.81],"6-38-4":[-1351.54,1194.93],"6-38-5":[-1749.15,1667.87],"6-38-6":[-1095.72,1736.55],"6-38-7":[-1549.9,2969.55],"6-38-8":[-3766.38,332.82],"6-38-9":[-4402.36,633.8],"6-38-10":[-4964.76,658.27],"6-38-11":[-5005.56,464.64],"6-38-12":[-4494.31,1846.61],"6-38-13":[-982.8,2481.75],"6-38-14":[-30.94,2821.86],"6-38-15":[-404.7,3452.08],"6-38-16":[-470.67,2451.53],"6-38-17":[-481.26,3626.15],"6-38-18":[-86.89,4659.39],"6-38-19":[-8228.12,4831.22],"6-38-20":[-6381.71,4956.12],"6-38-21":[-6742.27,5115.31],"6-38-22":[-7913.93,2168.25],"6-38-23":[-7969.31,2607.62],"6-38-24":[-8050.34,1152.74],"6-38-25":[-8983.51,5763.75],"6-38-26":[-1820.84,6405.39],"6-38-27":[-65.4,6266.34],"6-38-28":[-114.23,4925.73],"6-38-29":[-32.53,5356.84],"6-38-30":[-54.2,3882.23],"6-38-31":[-58.3,839.2],"6-38-32":[68.16,826.19],"6-38-33":[63.39,3838.4],"6-38-34":[43.63,5193.89],"6-38-35":[-82.22,4760.78],"6-38-36":[-5251.11,6360.34],"6-38-37":[-4600.41,6449.41],"6-38-38":[-4723.57,5847.77],"6-38-39":[-5617.49,1104.68],"6-38-40":[-5800.95,2677.33],"6-38-41":[-5756.35,2243.25],"6-38-42":[-5801.58,5156.32],"6-38-43":[-5646.47,5062.63],"6-38-44":[-5456.02,5023.3],"6-38-45":[-4488.42,4724.4],"6-38-46":[-2637.57,3766.16],"6-38-47":[-218.88,2585.5],"6-38-48":[-268.93,3553.09],"6-38-49":[-290.78,3257.62],"6-38-50":[-72.84,2695.15],"6-38-51":[-106.71,1949.61],"6-38-52":[-22.58,448.63],"6-38-53":[-345.6,645.25],"6-38-54":[-425.69,601.83],"6-38-55":[-34.96,322.36],"6-38-56":[-362.66,2784.58],"6-38-57":[-1715.35,1767.29],"6-38-58":[-1598.79,1790.22],"6-38-59":[-1058.75,1401.52],"6-38-60":[-492.06,2004.84],"6-38-61":[-1191,2082.48],"6-38-62":[-2626.37,2346.02],"6-38-63":[-4248.26,2745.47],"6-39-0":[-540.35,1101.15],"6-39-1":[-2345.14,1569.05],"5-19-0":[-2345.14,1569.05],"6-39-2":[-2346.92,1723.34],"6-39-3":[-1117.86,1651.25],"5-19-1":[-2346.92,2116.63],"4-9-0":[-2346.92,2437.47],"6-39-4":[-1326.57,1535.69],"6-39-5":[-1071.1,1564.82],"5-19-2":[-1749.15,1667.87],"6-39-6":[-1194.75,2245.82],"6-39-7":[-1603.15,2751.69],"5-19-3":[-1603.15,2969.55],"4-9-1":[-4087.74,2969.55],"3-4-0":[-4349.76,4704.79],"6-39-8":[-3410.04,1942.94],"6-39-9":[-4259.66,781.05],"5-19-4":[-4402.36,1942.94],"6-39-10":[-4838.54,360.51],"6-39-11":[-4796.57,596.29],"5-19-5":[-5005.56,658.27],"4-9-2":[-5274.38,1942.94],"6-39-12":[-1992.23,2555.83],"6-39-13":[-110,1077.82],"5-19-6":[-4494.31,2555.83],"6-39-14":[-97.91,1073.14],"6-39-15":[-70.35,1579.36],"5-19-7":[-404.7,3452.08],"4-9-3":[-4997.51,3901.29],"3-4-1":[-6336.83,3901.29],"6-39-16":[-56.2,1927.38],"6-39-17":[-75.76,1953.98],"5-19-8":[-481.26,3626.15],"6-39-18":[-85.75,3926.12],"6-39-19":[-95.04,5824.32],"5-19-9":[-8228.12,5824.32],"4-9-4":[-8228.12,5824.32],"6-39-20":[-101.46,6819.12],"6-39-21":[-103.88,6238.9],"5-19-10":[-6742.27,6819.12],"6-39-22":[-105.29,6823.9],"6-39-23":[-347.5,6678.96],"5-19-11":[-7969.31,6823.9],"4-9-5":[-7969.31,6823.9],"3-4-2":[-8228.12,6823.9],"6-39-24":[-1003.53,6134.25],"6-39-25":[-603.21,6488.27],"5-19-12":[-8983.51,6488.27],"6-39-26":[-133.8,6313.82],"6-39-27":[-89.53,5209.77],"5-19-13":[-1820.84,6405.39],"4-9-6":[-8983.51,6488.27],"6-39-28":[-34.01,3550.67],"6-39-29":[-4.7,404.14],"5-19-14":[-114.23,5356.84],"6-39-30":[-66.26,759.95],"6-39-31":[-103.64,984.95],"5-19-15":[-103.64,3882.23],"4-9-7":[-2187.54,6657.51],"3-4-3":[-8983.51,6657.51],"6-39-32":[-0.58,914.93],"6-39-33":[34.67,648.95],"5-19-16":[-0.58,3838.4],"6-39-34":[29.78,308.24],"6-39-35":[-1861.76,3455.66],"5-19-17":[-1861.76,5193.89],"4-9-8":[-4417.62,6754.44],"6-39-36":[-5294.02,5347.83],"6-39-37":[-5290.9,6455.95],"5-19-18":[-5294.02,6455.95],"6-39-38":[-8591.11,6600.28],"6-39-39":[-8438.23,6222.25],"5-19-19":[-8591.11,6600.28],"4-9-9":[-8591.11,6600.28],"3-4-4":[-8591.11,6754.44],"6-39-40":[-5981.36,6775.96],"6-39-41":[-6284.61,6919.9],"5-19-20":[-6284.61,6919.9],"6-39-42":[-5637.46,6300.89],"6-39-43":[-5662.35,6969.13],"5-19-21":[-5801.58,6969.13],"4-9-10":[-6284.61,6969.13],"6-39-44":[-5728.78,5888.33],"6-39-45":[-5031.43,3998.13],"5-19-22":[-5728.78,5888.33],"6-39-46":[-3807.89,2022.28],"6-39-47":[-332.14,1957.39],"5-19-23":[-3807.89,3766.16],"4-9-11":[-5728.78,5888.33],"3-4-5":[-6284.61,6969.13],"6-39-48":[-175.48,1477.25],"6-39-49":[-384.07,1097.15],"5-19-24":[-384.07,3553.09],"6-39-50":[-1.5,1051.93],"6-39-51":[-63.31,2581.84],"5-19-25":[-106.71,2695.15],"4-9-12":[-384.07,4026.29],"6-39-52":[-197.52,578.19],"6-39-53":[-600.93,341.52],"5-19-26":[-600.93,645.25],"6-39-54":[-718.65,797.88],"6-39-55":[-24.6,1701.66],"5-19-27":[-718.65,1701.66],"4-9-13":[-718.65,1701.66],"3-4-6":[-718.65,4026.29],"6-39-56":[-498.94,2876.77],"6-39-57":[-2351.44,2323.88],"5-19-28":[-2351.44,2876.77],"6-39-58":[-2355.6,2011.29],"6-39-59":[-1040.24,1401.52],"5-19-29":[-2355.6,2011.29],"4-9-14":[-2355.6,2876.77],"6-39-60":[-450.15,1746.17],"6-39-61":[-1380.02,1850.39],"5-19-30":[-1380.02,2082.48],"6-39-62":[-2491.33,2348.16],"6-39-63":[-4221.26,2745.47],"5-19-31":[-4248.26,2745.47],"4-9-15":[-4248.26,2745.47],"3-4-7":[-4248.26,4721.94],"6-40-0":[-518.26,955.16],"6-40-1":[-1903.37,2049.21],"6-40-2":[-2397.96,1837.18],"6-40-3":[-1139.43,1301.31],"6-40-4":[-1317.34,1474.89],"6-40-5":[-852.66,1902.88],"6-40-6":[-1199.74,1790.09],"6-40-7":[-1039.02,2087.2],"6-40-8":[-1484.99,2121.08],"6-40-9":[-4113.48,1148.56],"6-40-10":[-5256.25,1032.11],"6-40-11":[-5559.15,935.94],"6-40-12":[-4034.62,1017.96],"6-40-13":[-239.87,1031.68],"6-40-14":[-129.01,1255.33],"6-40-15":[-156.96,787.13],"6-40-16":[-112.19,1095.82],"6-40-17":[-149.28,1612.57],"6-40-18":[-82.04,560.77],"6-40-19":[-88.7,797.37],"6-40-20":[-92.93,2767.12],"6-40-21":[-98.06,4454.06],"6-40-22":[-101.84,6008.42],"6-40-23":[-104.68,6321.87],"6-40-24":[-138.65,5950.05],"6-40-25":[-141.12,5674.19],"6-40-26":[-90.28,5257.92],"6-40-27":[-82.71,249.83],"6-40-28":[-60.97,2718.19],"6-40-29":[-37.5,2385.74],"6-40-30":[-52.83,2826.62],"6-40-31":[-121.52,2785.87],"6-40-32":[-10.01,2582.86],"6-40-33":[7.09,2809.61],"6-40-34":[-11.96,2317.75],"6-40-35":[-1931.5,2634.17],"6-40-36":[-5900.26,415.46],"6-40-37":[-5292.46,5469.94],"6-40-38":[-8473.44,5778.21],"6-40-39":[-8765.31,6050.05],"6-40-40":[-6184.48,6388.87],"6-40-41":[-6021.8,6039.42],"6-40-42":[-6469.31,4549.07],"6-40-43":[-5770.41,2816.12],"6-40-44":[-5499.84,812.73],"6-40-45":[-5107.82,598.59],"6-40-46":[-4907.4,1675.56],"6-40-47":[-1909.77,1125.83],"6-40-48":[-144.12,739.39],"6-40-49":[-415.2,1230.12],"6-40-50":[9.92,1016.65],"6-40-51":[-12.01,1141.97],"6-40-52":[-177.35,907.17],"6-40-53":[-969.23,971.12],"6-40-54":[-709.63,1167.51],"6-40-55":[-1316.7,2130.8],"6-40-56":[-1953,2245.41],"6-40-57":[-2399.4,2040.57],"6-40-58":[-2406.73,2090.43],"6-40-59":[-957.04,1300.57],"6-40-60":[-820.36,1398.5],"6-40-61":[-1488.61,1801.27],"6-40-62":[-2390.21,2344.27],"6-40-63":[-4215.39,2745.47],"6-41-0":[-375.14,788.95],"6-41-1":[-626.85,1980.15],"5-20-0":[-1903.37,2049.21],"6-41-2":[-2305.3,951.78],"6-41-3":[-1106.51,1019.58],"5-20-1":[-2397.96,1837.18],"6-41-4":[-897.08,1639.31],"6-41-5":[-1223.78,1899.16],"5-20-2":[-1317.34,1902.88],"6-41-6":[-1257.9,2841.54],"6-41-7":[-1237.22,3005.49],"5-20-3":[-1257.9,3005.49],"6-41-8":[-1400.73,2174.82],"6-41-9":[-4875.59,2640.33],"5-20-4":[-4875.59,2640.33],"6-41-10":[-4863.8,1491.48],"6-41-11":[-4557.28,1587.28],"5-20-5":[-5559.15,1587.28],"6-41-12":[-4321.84,864.36],"6-41-13":[-562.25,1005.83],"5-20-6":[-4321.84,1031.68],"6-41-14":[-181.17,588],"6-41-15":[-141.59,347.02],"5-20-7":[-181.17,1255.33],"6-41-16":[-162.09,265.73],"6-41-17":[-160.53,167.98],"5-20-8":[-162.09,1612.57],"6-41-18":[-71.61,1130.86],"6-41-19":[-78.01,364.32],"5-20-9":[-88.7,1130.86],"6-41-20":[-85.81,1807.61],"6-41-21":[-94.07,1879.15],"5-20-10":[-98.06,4454.06],"6-41-22":[-102.75,1192.45],"6-41-23":[-105.57,2546.24],"5-20-11":[-105.57,6321.87],"6-41-24":[-129.54,4079.61],"6-41-25":[-129.48,4284.46],"5-20-12":[-141.12,5950.05],"6-41-26":[-90.4,875.94],"6-41-27":[-83.95,666.67],"5-20-13":[-90.4,5257.92],"6-41-28":[-92.41,2565.59],"6-41-29":[-92.52,2449.21],"5-20-14":[-92.52,2718.19],"6-41-30":[4.52,2659.72],"6-41-31":[-1083.88,2129.57],"5-20-15":[-1083.88,2826.62],"6-41-32":[-35.4,2040.48],"6-41-33":[-58.32,2642.7],"5-20-16":[-58.32,2809.61],"6-41-34":[-21.58,2230.21],"6-41-35":[-1469.01,2467.61],"5-20-17":[-1931.5,2634.17],"6-41-36":[-4732.86,684.67],"6-41-37":[-4486.55,910.63],"5-20-18":[-5900.26,5469.94],"6-41-38":[-7810.98,4327.46],"6-41-39":[-8307.1,4098.61],"5-20-19":[-8765.31,6050.05],"6-41-40":[-6255.3,2622.25],"6-41-41":[-6370.08,1259.46],"5-20-20":[-6370.08,6388.87],"6-41-42":[-6091.27,1956.16],"6-41-43":[-5359.24,1847.62],"5-20-21":[-6469.31,4549.07],"6-41-44":[-5477.52,370.32],"6-41-45":[-5478.14,1242.87],"5-20-22":[-5499.84,1242.87],"6-41-46":[-5151.26,172.48],"6-41-47":[-3392.7,258.78],"5-20-23":[-5151.26,1675.56],"6-41-48":[-137.1,330.93],"6-41-49":[-460.55,546.49],"5-20-24":[-460.55,1230.12],"6-41-50":[10.24,988.83],"6-41-51":[-147.13,987.97],"5-20-25":[-147.13,1141.97],"6-41-52":[-427.03,1511.26],"6-41-53":[-750.68,1408.43],"5-20-26":[-969.23,1511.26],"6-41-54":[-589.21,2255.29],"6-41-55":[-772.02,2099.32],"5-20-27":[-1316.7,2255.29],"6-41-56":[-2123.37,2890.49],"6-41-57":[-2314.58,2528.76],"5-20-28":[-2399.4,2890.49],"6-41-58":[-2174.37,1987.4],"6-41-59":[-704.38,1390.38],"5-20-29":[-2406.73,2090.43],"6-41-60":[-1053.08,1209.84],"6-41-61":[-1736.3,967.78],"5-20-30":[-1736.3,1801.27],"6-41-62":[-2104.34,2332.43],"6-41-63":[-4222.3,2745.47],"5-20-31":[-4222.3,2745.47],"6-42-0":[-453.13,803.72],"6-42-1":[-1912.63,1447.17],"6-42-2":[-2173.89,636.09],"6-42-3":[-1352.22,1412.39],"6-42-4":[-879.27,1850.85],"6-42-5":[-1795.07,1425.68],"6-42-6":[-1103.4,1254.23],"6-42-7":[-613.53,109.47],"6-42-8":[-1048.58,2037.53],"6-42-9":[-4655.1,2218.59],"6-42-10":[-5197,19.12],"6-42-11":[-4779.19,1027.48],"6-42-12":[-4818.14,846.11],"6-42-13":[-1704.28,704.1],"6-42-14":[-1339.29,560.68],"6-42-15":[-2117.74,626.18],"6-42-16":[-2434.12,12.82],"6-42-17":[-97.7,9.64],"6-42-18":[-63.96,727.01],"6-42-19":[-70.71,146.41],"6-42-20":[-79.19,153.45],"6-42-21":[-92.99,121.66],"6-42-22":[-102.26,227.97],"6-42-23":[-104.51,246.54],"6-42-24":[-109.89,620.33],"6-42-25":[-127.72,1291.8],"6-42-26":[-127.8,1415.28],"6-42-27":[-108.65,1174.77],"6-42-28":[-95.38,906.03],"6-42-29":[-54.23,2236.77],"6-42-30":[-10.46,2551.06],"6-42-31":[-8.06,1982.48],"6-42-32":[-47.66,1810.47],"6-42-33":[-73.31,2410.43],"6-42-34":[-221.29,2194.7],"6-42-35":[-2087.24,851],"6-42-36":[-3955.53,1044.76],"6-42-37":[-6015.39,1316.28],"6-42-38":[-7426.7,1325.79],"6-42-39":[-6458.04,644.34],"6-42-40":[-6448.9,249.8],"6-42-41":[-7561.67,233.97],"6-42-42":[-7274.89,142.11],"6-42-43":[-6028.69,159.46],"6-42-44":[-5656.3,171.01],"6-42-45":[-5488.93,773.01],"6-42-46":[-5388.86,27.54],"6-42-47":[-4682.72,24.63],"6-42-48":[-546.32,617.18],"6-42-49":[-1069.25,540.69],"6-42-50":[-212.17,710.18],"6-42-51":[-710.71,831.11],"6-42-52":[-2466.84,974.47],"6-42-53":[-2642.04,41.77],"6-42-54":[-2230.11,2109.78],"6-42-55":[-1447.8,2069.8],"6-42-56":[-1941.74,269.27],"6-42-57":[-1984.8,1250.11],"6-42-58":[-1167.28,1211.47],"6-42-59":[-877.97,1082.45],"6-42-60":[-1133.93,1364.36],"6-42-61":[-1831.57,889.65],"6-42-62":[-2119.05,2326.44],"6-42-63":[-4223.29,2745.48],"6-43-0":[-435.12,768.15],"6-43-1":[-1633.64,761.78],"5-21-0":[-1912.63,1447.17],"6-43-2":[-1955.14,1359.43],"6-43-3":[-1586.09,1941.41],"5-21-1":[-2173.89,1941.41],"4-10-0":[-2397.96,2049.21],"6-43-4":[-843.7,2238.22],"6-43-5":[-674.96,1021.33],"5-21-2":[-1795.07,2238.22],"6-43-6":[-944.44,56.07],"6-43-7":[-951.56,55.35],"5-21-3":[-1103.4,1254.23],"4-10-1":[-1795.07,3005.49],"6-43-8":[-650.15,49.44],"6-43-9":[-2315.61,1677.31],"5-21-4":[-4655.1,2218.59],"6-43-10":[-5276.84,55.02],"6-43-11":[-5621.9,23.83],"5-21-5":[-5621.9,1027.48],"4-10-2":[-5621.9,2640.33],"6-43-12":[-5554.84,1193.16],"6-43-13":[-2774.99,895.93],"5-21-6":[-5554.84,1193.16],"6-43-14":[-4993.64,804.73],"6-43-15":[-5579.67,566.65],"5-21-7":[-5579.67,804.73],"4-10-3":[-5579.67,1255.33],"6-43-16":[-5390.46,-4.42],"6-43-17":[-4092.11,-13.27],"5-21-8":[-5390.46,12.82],"6-43-18":[-95.28,432.02],"6-43-19":[-63.3,214.23],"5-21-9":[-95.28,727.01],"4-10-4":[-5390.46,1612.57],"6-43-20":[-73.49,367.29],"6-43-21":[-87.06,352.61],"5-21-10":[-92.99,367.29],"6-43-22":[-94.59,661.37],"6-43-23":[-97.23,692.98],"5-21-11":[-104.51,692.98],"4-10-5":[-105.57,6321.87],"6-43-24":[-97.15,809.32],"6-43-25":[-102.43,1167.79],"5-21-12":[-127.72,1291.8],"6-43-26":[-113.66,921.21],"6-43-27":[-108.06,686.04],"5-21-13":[-127.8,1415.28],"4-10-6":[-141.12,5950.05],"6-43-28":[-95.84,602.42],"6-43-29":[-77.21,647.02],"5-21-14":[-95.84,2236.77],"6-43-30":[-149.21,1207.52],"6-43-31":[-18.35,1109.8],"5-21-15":[-149.21,2551.06],"4-10-7":[-1083.88,2826.62],"6-43-32":[-59.96,1027.78],"6-43-33":[-57.01,1121.51],"5-21-16":[-73.31,2410.43],"6-43-34":[-2930.18,657.03],"6-43-35":[-4527.52,621.44],"5-21-17":[-4527.52,2194.7],"4-10-8":[-4527.52,2809.61],"6-43-36":[-5297.58,689.04],"6-43-37":[-6039.3,949.21],"5-21-18":[-6039.3,1316.28],"6-43-38":[-6230.06,1245.78],"6-43-39":[-7317.05,856.34],"5-21-19":[-7426.7,1325.79],"4-10-9":[-8765.31,6050.05],"6-43-40":[-7777.47,738.99],"6-43-41":[-8245.68,703.38],"5-21-20":[-8245.68,738.99],"6-43-42":[-6689.99,362.62],"6-43-43":[-6202.56,395.29],"5-21-21":[-7274.89,395.29],"4-10-10":[-8245.68,6388.87],"6-43-44":[-6937.73,228.24],"6-43-45":[-5692.36,445.18],"5-21-22":[-6937.73,773.01],"6-43-46":[-5434.99,26.5],"6-43-47":[-4811.38,19.67],"5-21-23":[-5434.99,27.54],"4-10-11":[-6937.73,1675.56],"6-43-48":[-516.46,521.4],"6-43-49":[-513.94,786.22],"5-21-24":[-1069.25,786.22],"6-43-50":[-303.89,858.37],"6-43-51":[-2693.23,1148.31],"5-21-25":[-2693.23,1148.31],"4-10-12":[-2693.23,1230.12],"6-43-52":[-3342.42,41.03],"6-43-53":[-3212.72,44.21],"5-21-26":[-3342.42,974.47],"6-43-54":[-2665.55,1728.16],"6-43-55":[-1317.01,37.01],"5-21-27":[-2665.55,2109.78],"4-10-13":[-3342.42,2255.29],"6-43-56":[-1257.74,22.37],"6-43-57":[-970.28,259.92],"5-21-28":[-1984.8,1250.11],"6-43-58":[-1268.2,1118.73],"6-43-59":[-649.94,512.61],"5-21-29":[-1268.2,1211.47],"4-10-14":[-2406.73,2890.49],"6-43-60":[-599.83,1177.05],"6-43-61":[-1811.25,1371.37],"5-21-30":[-1831.57,1371.37],"6-43-62":[-2242.68,2317.26],"6-43-63":[-4215.39,2745.48],"5-21-31":[-4223.29,2745.48],"4-10-15":[-4223.29,2745.48],"6-44-0":[-401.99,533.78],"6-44-1":[-1084.56,771.47],"6-44-2":[-1764.29,1711.26],"6-44-3":[-1608.19,2089.38],"6-44-4":[-815.35,2319.04],"6-44-5":[-552.8,1708.39],"6-44-6":[-2155.62,1880.96],"6-44-7":[-2812.72,1854.07],"6-44-8":[-2870.71,1029.06],"6-44-9":[-2580.17,758.51],"6-44-10":[-4212.93,1786.88],"6-44-11":[-5974.95,35.64],"6-44-12":[-5589.14,148.72],"6-44-13":[-3396.26,486.61],"6-44-14":[-6359.32,577.05],"6-44-15":[-6549.98,408.54],"6-44-16":[-5888.74,8.57],"6-44-17":[-5613.75,-6.77],"6-44-18":[-4438.41,0.15],"6-44-19":[-1095.24,485.4],"6-44-20":[-431.29,464.32],"6-44-21":[-77.89,558.14],"6-44-22":[-85.04,878.92],"6-44-23":[-89.27,777.81],"6-44-24":[-91.01,742.52],"6-44-25":[-96.71,869.35],"6-44-26":[-98.96,900.05],"6-44-27":[-95.93,596.31],"6-44-28":[-95.18,733.32],"6-44-29":[-81.6,685.36],"6-44-30":[-61.24,1030.82],"6-44-31":[-99.31,889.3],"6-44-32":[-68.02,823.15],"6-44-33":[-45.24,1008.83],"6-44-34":[-2993.36,694.41],"6-44-35":[-4943.53,753.33],"6-44-36":[-5604.1,612.29],"6-44-37":[-5946.15,914.71],"6-44-38":[-6280.97,880.42],"6-44-39":[-7026.06,752.75],"6-44-40":[-7602.91,799.57],"6-44-41":[-6892.43,899.62],"6-44-42":[-6396.59,584.15],"6-44-43":[-5958.12,482.27],"6-44-44":[-5830.6,526.4],"6-44-45":[-5636.92,25.03],"6-44-46":[-5566.01,22.2],"6-44-47":[-5012.17,4.24],"6-44-48":[-1354.96,372.42],"6-44-49":[-617.47,514.04],"6-44-50":[-571.38,465.61],"6-44-51":[-3493,125.75],"6-44-52":[-3733.16,41.14],"6-44-53":[-3548.01,1523.88],"6-44-54":[-2867.09,578.59],"6-44-55":[-915.51,1108.35],"6-44-56":[-963.76,1813.61],"6-44-57":[-968.04,1896.59],"6-44-58":[-1231.82,1033.64],"6-44-59":[-144.3,780.38],"6-44-60":[-408.65,1172.05],"6-44-61":[-1797.59,1540.95],"6-44-62":[-2498.95,2298.91],"6-44-63":[-4215.39,2745.48],"6-45-0":[-514.14,579.03],"6-45-1":[-1079.97,716.42],"5-22-0":[-1084.56,771.47],"6-45-2":[-1682.8,1919.3],"6-45-3":[-1622.24,2185.38],"5-22-1":[-1764.29,2185.38],"6-45-4":[-758.02,2333.41],"6-45-5":[-564,2344.97],"5-22-2":[-815.35,2344.97],"6-45-6":[-3106.06,2399.4],"6-45-7":[-3469.32,1842.92],"5-22-3":[-3469.32,2399.4],"6-45-8":[-3594.96,2229.6],"6-45-9":[-3416.97,1280.25],"5-22-4":[-3594.96,2229.6],"6-45-10":[-5404.29,59.8],"6-45-11":[-5903.43,52.29],"5-22-5":[-5974.95,1786.88],"6-45-12":[-5584.37,48.25],"6-45-13":[-3699.42,43.66],"5-22-6":[-5589.14,486.61],"6-45-14":[-6475.73,301],"6-45-15":[-6553.82,337.49],"5-22-7":[-6553.82,577.05],"6-45-16":[-6157.36,30.39],"6-45-17":[-5825.15,6.02],"5-22-8":[-6157.36,30.39],"6-45-18":[-5323.59,-1.97],"6-45-19":[-4325.6,21.81],"5-22-9":[-5323.59,485.4],"6-45-20":[-1151.79,503.24],"6-45-21":[-62.29,1073.19],"5-22-10":[-1151.79,1073.19],"6-45-22":[-68.68,1362.48],"6-45-23":[-75.93,1318.62],"5-22-11":[-89.27,1362.48],"6-45-24":[-80.15,605.26],"6-45-25":[-85.3,1036.98],"5-22-12":[-96.71,1036.98],"6-45-26":[-89.68,1009.26],"6-45-27":[-90.85,499.44],"5-22-13":[-98.96,1009.26],"6-45-28":[-90.85,721.91],"6-45-29":[-87.64,772.95],"5-22-14":[-95.18,772.95],"6-45-30":[-71.92,795.54],"6-45-31":[-95.64,654.41],"5-22-15":[-99.31,1030.82],"6-45-32":[-74.95,667.42],"6-45-33":[-2803.2,777.54],"5-22-16":[-2803.2,1008.83],"6-45-34":[-4763.78,806.95],"6-45-35":[-5170.62,772.15],"5-22-17":[-5170.62,806.95],"6-45-36":[-5575.31,508.2],"6-45-37":[-6275.55,1020.26],"5-22-18":[-6275.55,1020.26],"6-45-38":[-6065.98,1043.99],"6-45-39":[-6587.67,630.24],"5-22-19":[-7026.06,1043.99],"6-45-40":[-6536.49,1344.63],"6-45-41":[-6510.29,1399.29],"5-22-20":[-7602.91,1399.29],"6-45-42":[-6285.66,1093.19],"6-45-43":[-6352.74,529.24],"5-22-21":[-6396.59,1093.19],"6-45-44":[-6945.4,38.77],"6-45-45":[-5841.63,9.67],"5-22-22":[-6945.4,526.4],"6-45-46":[-5569.08,2.28],"6-45-47":[-4979.43,-0.34],"5-22-23":[-5569.08,22.2],"6-45-48":[-281.94,314.96],"6-45-49":[-741.17,281],"5-22-24":[-1354.96,514.04],"6-45-50":[-3288.47,17.57],"6-45-51":[-3678.29,35.37],"5-22-25":[-3678.29,465.61],"6-45-52":[-3705.27,40.41],"6-45-53":[-3555.83,47.29],"5-22-26":[-3733.16,1523.88],"6-45-54":[-2954.33,1497.68],"6-45-55":[-561.55,2058.1],"5-22-27":[-2954.33,2058.1],"6-45-56":[-871.87,1991.65],"6-45-57":[-1444.63,2162.43],"5-22-28":[-1444.63,2162.43],"6-45-58":[-213.42,734.96],"6-45-59":[-176.36,717.06],"5-22-29":[-1231.82,1033.64],"6-45-60":[-307.69,1258.22],"6-45-61":[-2043.57,1979.94],"5-22-30":[-2043.57,1979.94],"6-45-62":[-2799.05,2275.47],"6-45-63":[-4215.39,2745.48],"5-22-31":[-4215.39,2745.48],"6-46-0":[-600.57,253.52],"6-46-1":[-1161.49,110.47],"6-46-2":[-1608.38,1909.74],"6-46-3":[-1608.38,2285.51],"6-46-4":[-660.02,2457.14],"6-46-5":[-587.75,2475.02],"6-46-6":[-3468.61,2542.84],"6-46-7":[-3842.71,1831.68],"6-46-8":[-4135.6,2027.72],"6-46-9":[-4164.77,2175.1],"6-46-10":[-5695.74,1494.43],"6-46-11":[-5636.52,68.28],"6-46-12":[-5418.75,63.25],"6-46-13":[-4699.06,55.81],"6-46-14":[-6555.82,52.22],"6-46-15":[-6273.74,53.92],"6-46-16":[-5934.72,41.06],"6-46-17":[-5945.64,21.16],"6-46-18":[-5476.11,10.12],"6-46-19":[-5080.14,1.96],"6-46-20":[-3726.88,-2.52],"6-46-21":[-2797.96,1768.73],"6-46-22":[-304.2,1772.18],"6-46-23":[-114.49,1703.39],"6-46-24":[-68.86,1058.15],"6-46-25":[-75.75,1031.41],"6-46-26":[-82.25,1437.44],"6-46-27":[-86.6,1104.08],"6-46-28":[-87.21,724.61],"6-46-29":[-85.59,850.74],"6-46-30":[-76.08,432.39],"6-46-31":[-188.32,61.63],"6-46-32":[-465.17,69.74],"6-46-33":[-3641.86,521.39],"6-46-34":[-5009.6,882.74],"6-46-35":[-5227.39,737.91],"6-46-36":[-5366.84,1154.07],"6-46-37":[-6065.49,1475.44],"6-46-38":[-5796.67,1034.42],"6-46-39":[-5802.83,1075.16],"6-46-40":[-6118.27,1855.39],"6-46-41":[-6014.32,1825.17],"6-46-42":[-5802.8,1827.75],"6-46-43":[-6312.21,13.98],"6-46-44":[-5836.48,10.93],"6-46-45":[-5773.27,-0.7],"6-46-46":[-5581.92,-1.87],"6-46-47":[-3927.84,-2.14],"6-46-48":[-3192.19,-2.22],"6-46-49":[-2704.45,9.5],"6-46-50":[-4015.33,14.82],"6-46-51":[-4109.31,36.85],"6-46-52":[-3815.7,40.45],"6-46-53":[-3570.03,1495.91],"6-46-54":[-1414.56,1745.13],"6-46-55":[-499.08,1430.54],"6-46-56":[-1211.42,796],"6-46-57":[-792.03,1400.19],"6-46-58":[-20.54,682.53],"6-46-59":[-312.54,445.25],"6-46-60":[-852.59,814.06],"6-46-61":[-2162.89,1965.25],"6-46-62":[-3090.6,2268.09],"6-46-63":[-4215.39,2745.48],"6-47-0":[-904.59,189.53],"6-47-1":[-1300.87,465.89],"5-23-0":[-1300.87,465.89],"6-47-2":[-1956.75,700.91],"6-47-3":[-1479.71,2373.94],"5-23-1":[-1956.75,2373.94],"4-11-0":[-1956.75,2373.94],"6-47-4":[-904.62,2625.24],"6-47-5":[-979.12,2882.05],"5-23-2":[-979.12,2882.05],"6-47-6":[-3656.18,2840.8],"6-47-7":[-4133.21,2476.32],"5-23-3":[-4133.21,2840.8],"4-11-1":[-4133.21,2882.05],"3-5-0":[-4133.21,3005.49],"6-47-8":[-4535.63,2769.8],"6-47-9":[-4542.9,2769.95],"5-23-4":[-4542.9,2769.95],"6-47-10":[-5649.71,2452.69],"6-47-11":[-4390.16,81.26],"5-23-5":[-5695.74,2452.69],"4-11-2":[-5974.95,2769.95],"6-47-12":[-5320.13,78.26],"6-47-13":[-3965.58,72.82],"5-23-6":[-5418.75,78.26],"6-47-14":[-6582.96,69.47],"6-47-15":[-6227.22,70.1],"5-23-7":[-6582.96,70.1],"4-11-3":[-6582.96,577.05],"3-5-1":[-6582.96,2769.95],"2-2-0":[-6582.96,4704.79],"6-47-16":[-5550.89,55.71],"6-47-17":[-5717.71,40.64],"5-23-8":[-5945.64,55.71],"6-47-18":[-5463.7,29.54],"6-47-19":[-5150.83,22.06],"5-23-9":[-5476.11,29.54],"4-11-4":[-6157.36,485.4],"6-47-20":[-4302.71,15.19],"6-47-21":[-3829.03,4.78],"5-23-10":[-4302.71,1768.73],"6-47-22":[-3450.87,-2.17],"6-47-23":[-169.03,2244.32],"5-23-11":[-3450.87,2244.32],"4-11-5":[-4302.71,2244.32],"3-5-2":[-6157.36,6321.87],"6-47-24":[-50.68,2250.32],"6-47-25":[-59.08,1259.93],"5-23-12":[-75.75,2250.32],"6-47-26":[-65.46,1510.11],"6-47-27":[-76.9,1617.75],"5-23-13":[-86.6,1617.75],"4-11-6":[-98.96,2250.32],"6-47-28":[-76.9,862.81],"6-47-29":[-77.77,653.06],"5-23-14":[-87.21,862.81],"6-47-30":[-72.57,423.19],"6-47-31":[-135.46,169.45],"5-23-15":[-188.32,432.39],"4-11-7":[-188.32,1030.82],"3-5-3":[-1083.88,5950.05],"2-2-1":[-8983.51,6823.9],"6-47-32":[-4004.8,198.92],"6-47-33":[-4253.5,442.32],"5-23-16":[-4253.5,521.39],"6-47-34":[-4745.48,663.07],"6-47-35":[-5210.95,868.81],"5-23-17":[-5227.39,882.74],"4-11-8":[-5227.39,1008.83],"6-47-36":[-5300,1657.87],"6-47-37":[-5463.79,1576.13],"5-23-18":[-6065.49,1657.87],"6-47-38":[-4906.81,1269.93],"6-47-39":[-5194.04,2353.32],"5-23-19":[-5802.83,2353.32],"4-11-9":[-7026.06,2353.32],"3-5-4":[-8765.31,6050.05],"6-47-40":[-6046.99,2413.32],"6-47-41":[-5047.25,2.39],"5-23-20":[-6118.27,2413.32],"6-47-42":[-5501.03,2.77],"6-47-43":[-5758.32,-2.9],"5-23-21":[-6312.21,1827.75],"4-11-10":[-7602.91,2413.32],"6-47-44":[-6089.22,-3.31],"6-47-45":[-5767.68,-4],"5-23-22":[-6089.22,10.93],"6-47-46":[-5390.06,-3],"6-47-47":[-5265.74,-2.76],"5-23-23":[-5581.92,-1.87],"4-11-11":[-6945.4,526.4],"3-5-5":[-8245.68,6388.87],"2-2-2":[-8765.31,6969.13],"6-47-48":[-4565.83,-2.42],"6-47-49":[-4375.17,12.36],"5-23-24":[-4565.83,12.36],"6-47-50":[-4451.86,19.2],"6-47-51":[-4093.83,36.67],"5-23-25":[-4451.86,36.85],"4-11-12":[-4565.83,514.04],"6-47-52":[-3679.12,42.39],"6-47-53":[-3118.44,2073.1],"5-23-26":[-3815.7,2073.1],"6-47-54":[14.52,1814.36],"6-47-55":[-56.43,1185.43],"5-23-27":[-1414.56,1814.36],"4-11-13":[-3815.7,2073.1],"3-5-6":[-4565.83,2255.29],"6-47-56":[-821.49,371.23],"6-47-57":[-206.04,937.06],"5-23-28":[-1211.42,1400.19],"6-47-58":[-257.19,355.03],"6-47-59":[-408.52,457.63],"5-23-29":[-408.52,682.53],"4-11-14":[-1444.63,2162.43],"6-47-60":[-393.65,962.23],"6-47-61":[-2075.98,1373.29],"5-23-30":[-2162.89,1965.25],"6-47-62":[-3803.43,2263.16],"6-47-63":[-4215.39,2745.98],"5-23-31":[-4215.39,2745.98],"4-11-15":[-4215.39,2745.98],"3-5-7":[-4223.29,2890.49],"2-2-3":[-4565.83,4721.94],"6-48-0":[-1002.56,89.53],"6-48-1":[-1625.52,784.32],"6-48-2":[-1856.43,949.4],"6-48-3":[-1397.31,2469.75],"6-48-4":[-934.43,2812.59],"6-48-5":[-1655.77,3024.06],"6-48-6":[-3835.14,3047.68],"6-48-7":[-4422.64,2826.07],"6-48-8":[-4694.59,2785.17],"6-48-9":[-4814.83,2833.9],"6-48-10":[-5546.05,2803.26],"6-48-11":[-4563.38,92.57],"6-48-12":[-5098.13,90.15],"6-48-13":[-3690.49,85.22],"6-48-14":[-6580.29,78.86],"6-48-15":[-6151.22,72.39],"6-48-16":[-6074.8,65.89],"6-48-17":[-5427.71,54.55],"6-48-18":[-6129.36,45.38],"6-48-19":[-5109.91,39.31],"6-48-20":[-4602.01,32.2],"6-48-21":[-4278.58,23.36],"6-48-22":[-3719.52,10.3],"6-48-23":[-2324.46,1973.99],"6-48-24":[-36.66,2699.24],"6-48-25":[-48.75,1971.8],"6-48-26":[-52.31,1656.77],"6-48-27":[-60.66,1603.49],"6-48-28":[-65.09,1259.07],"6-48-29":[-65.14,586.2],"6-48-30":[-85.29,344.01],"6-48-31":[-3865.9,57.26],"6-48-32":[-4518.8,80.25],"6-48-33":[-4888.4,366.28],"6-48-34":[-5293.87,588.21],"6-48-35":[-5433.96,1298.57],"6-48-36":[-5101.32,1756.49],"6-48-37":[-5420.55,1788.77],"6-48-38":[-5745.06,2047.81],"6-48-39":[-5639.86,2789.25],"6-48-40":[-6236.13,2060.99],"6-48-41":[-4727.7,-6.95],"6-48-42":[-5242.68,-7.27],"6-48-43":[-5266.3,-5.74],"6-48-44":[-5333.57,-5.85],"6-48-45":[-5726.45,-5.73],"6-48-46":[-5196.72,-5.21],"6-48-47":[-5068.54,-3.49],"6-48-48":[-4815.61,-1.35],"6-48-49":[-4598.65,16.97],"6-48-50":[-4840.96,17.53],"6-48-51":[-3842.65,35.69],"6-48-52":[-4250.99,41.28],"6-48-53":[-2309.22,2448.9],"6-48-54":[-833.91,2176.59],"6-48-55":[-163.3,1316.63],"6-48-56":[-625.27,364.42],"6-48-57":[-429.12,233.82],"6-48-58":[-370.87,131.2],"6-48-59":[-405.36,213.73],"6-48-60":[-403.85,1124.93],"6-48-61":[-2027.94,1548.87],"6-48-62":[-3799.43,2265.71],"6-48-63":[-4215.39,2746.48],"6-49-0":[-884.4,67.53],"6-49-1":[-1576.67,792.41],"5-24-0":[-1625.52,792.41],"6-49-2":[-968.6,1459.96],"6-49-3":[-1449.32,2462.17],"5-24-1":[-1856.43,2469.75],"6-49-4":[-1271.56,2812.59],"6-49-5":[-2510.28,3141.21],"5-24-2":[-2510.28,3141.21],"6-49-6":[-4105.65,3182.09],"6-49-7":[-4433.76,3042.62],"5-24-3":[-4433.76,3182.09],"6-49-8":[-4797.43,2652.87],"6-49-9":[-5015.21,2012.55],"5-24-4":[-5015.21,2833.9],"6-49-10":[-6312.12,334.77],"6-49-11":[-4263.69,101.28],"5-24-5":[-6312.12,2803.26],"6-49-12":[-4042.22,102],"6-49-13":[-4218.24,98.24],"5-24-6":[-5098.13,102],"6-49-14":[-6403.93,93.09],"6-49-15":[-6267.83,86.06],"5-24-7":[-6580.29,93.09],"6-49-16":[-6293.49,81.48],"6-49-17":[-5597.43,73.88],"5-24-8":[-6293.49,81.48],"6-49-18":[-5448.01,66.2],"6-49-19":[-5367.78,60.53],"5-24-9":[-6129.36,66.2],"6-49-20":[-4884.47,55.5],"6-49-21":[-4997.91,39.04],"5-24-10":[-4997.91,55.5],"6-49-22":[-4463.39,22.35],"6-49-23":[-3796.85,590.73],"5-24-11":[-4463.39,1973.99],"6-49-24":[-2425.07,2757.34],"6-49-25":[-305.26,1443.38],"5-24-12":[-2425.07,2757.34],"6-49-26":[-42.33,1372.15],"6-49-27":[-43.85,1922.31],"5-24-13":[-60.66,1922.31],"6-49-28":[-45.31,1258.47],"6-49-29":[-49.21,961.21],"5-24-14":[-65.14,1259.07],"6-49-30":[-109.15,1068.98],"6-49-31":[-4222.06,110.24],"5-24-15":[-4222.06,1068.98],"6-49-32":[-4682.57,79.72],"6-49-33":[-4896.78,1125.05],"5-24-16":[-4896.78,1125.05],"6-49-34":[-5688.41,966.21],"6-49-35":[-5559.66,1272.47],"5-24-17":[-5688.41,1298.57],"6-49-36":[-5912.92,2017.31],"6-49-37":[-5804.87,1423.16],"5-24-18":[-5912.92,2017.31],"6-49-38":[-6106.25,1567.33],"6-49-39":[-6381.23,2863.35],"5-24-19":[-6381.23,2863.35],"6-49-40":[-6341.73,694.74],"6-49-41":[-5511.51,-9.82],"5-24-20":[-6341.73,2060.99],"6-49-42":[-4982.01,-7.66],"6-49-43":[-5465.76,-7.18],"5-24-21":[-5465.76,-5.74],"6-49-44":[-4910.54,-6.72],"6-49-45":[-5277.97,-6.41],"5-24-22":[-5726.45,-5.73],"6-49-46":[-5311.51,-6.33],"6-49-47":[-5095.47,-4.79],"5-24-23":[-5311.51,-3.49],"6-49-48":[-4913.48,-0.71],"6-49-49":[-4767.83,15],"5-24-24":[-4913.48,16.97],"6-49-50":[-5488.9,15.14],"6-49-51":[-3939.76,37.34],"5-24-25":[-5488.9,37.34],"6-49-52":[-3572.36,40.03],"6-49-53":[-3055.63,450.7],"5-24-26":[-4250.99,2448.9],"6-49-54":[-2100.15,1967.18],"6-49-55":[-830.24,1959.77],"5-24-27":[-2100.15,2176.59],"6-49-56":[-499.68,462.22],"6-49-57":[-211.12,297.17],"5-24-28":[-625.27,462.22],"6-49-58":[-274.87,210.95],"6-49-59":[-342.73,50.33],"5-24-29":[-405.36,213.73],"6-49-60":[-160.19,1081.6],"6-49-61":[-2028.98,1679.35],"5-24-30":[-2028.98,1679.35],"6-49-62":[-3790.08,2265.71],"6-49-63":[-4219.2,2746.48],"5-24-31":[-4219.2,2746.48],"6-50-0":[-934.9,69.52],"6-50-1":[-1469.25,976.22],"6-50-2":[-737.71,1457.67],"6-50-3":[-1618.91,2355],"6-50-4":[-1269.34,2629.12],"6-50-5":[-3058.83,3200.74],"6-50-6":[-4224.36,3253.39],"6-50-7":[-4528.57,3209.33],"6-50-8":[-4867.96,3108.37],"6-50-9":[-5389.9,106.81],"6-50-10":[-5404.37,105.78],"6-50-11":[-3936.37,111.91],"6-50-12":[-3975.13,2633.15],"6-50-13":[-5213.59,108.32],"6-50-14":[-6122.93,103.27],"6-50-15":[-6062.21,96.8],"6-50-16":[-5451.29,93],"6-50-17":[-5793.05,87.83],"6-50-18":[-5441.17,80.4],"6-50-19":[-5078.03,76.44],"6-50-20":[-4896.54,68.85],"6-50-21":[-5006.6,47.85],"6-50-22":[-4983.72,31.01],"6-50-23":[-4241.18,12.45],"6-50-24":[-4270.18,2.19],"6-50-25":[-3977.54,109.32],"6-50-26":[-4394.4,914.15],"6-50-27":[-4327.88,559.81],"6-50-28":[-2118.33,1063.79],"6-50-29":[-34.54,1141.75],"6-50-30":[-3552.2,1000.51],"6-50-31":[-4554.15,-8.32],"6-50-32":[-5281.5,-10.92],"6-50-33":[-4950.78,1106.52],"6-50-34":[-6051.37,1190.32],"6-50-35":[-5728.2,1083.8],"6-50-36":[-6319.68,626.82],"6-50-37":[-6294.95,986.18],"6-50-38":[-7008.06,124.34],"6-50-39":[-6739.38,-5.86],"6-50-40":[-6851.27,-8.26],"6-50-41":[-5929.45,-6.03],"6-50-42":[-5432.53,-1.95],"6-50-43":[-4629.98,-2.36],"6-50-44":[-4319.88,-4.64],"6-50-45":[-5375.44,-4.06],"6-50-46":[-5352.82,-3.83],"6-50-47":[-4886.28,-3.1],"6-50-48":[-4927.65,0.55],"6-50-49":[-4878.3,12.98],"6-50-50":[-4465.96,23.35],"6-50-51":[-3742.67,2738.7],"6-50-52":[-3572.36,41.64],"6-50-53":[-3233.45,44],"6-50-54":[-2680.33,41.06],"6-50-55":[-1017.21,3258.28],"6-50-56":[-385.83,2270.17],"6-50-57":[-210.97,833.52],"6-50-58":[-293.35,735.1],"6-50-59":[-224.42,580.16],"6-50-60":[-151.03,1003.54],"6-50-61":[-1755.39,1715.15],"6-50-62":[-3795.59,2262.46],"6-50-63":[-4236.22,2746.48],"6-51-0":[-907.39,120.52],"6-51-1":[-1308.24,740.14],"5-25-0":[-1469.25,976.22],"6-51-2":[-1060.28,1225.55],"6-51-3":[-1586.02,2251.74],"5-25-1":[-1618.91,2355],"4-12-0":[-1856.43,2469.75],"6-51-4":[-1120.27,2558.11],"6-51-5":[-3440.48,3116.18],"5-25-2":[-3440.48,3200.74],"6-51-6":[-4327.81,3190.72],"6-51-7":[-4613.28,3318.44],"5-25-3":[-4613.28,3318.44],"4-12-1":[-4613.28,3318.44],"6-51-8":[-4928.05,2952.11],"6-51-9":[-5317.04,111.55],"5-25-4":[-5389.9,3108.37],"6-51-10":[-5773.22,118.01],"6-51-11":[-3983.49,122.71],"5-25-5":[-5773.22,122.71],"4-12-2":[-6312.12,3108.37],"6-51-12":[-4736.44,2776.21],"6-51-13":[-5062.61,118.71],"5-25-6":[-5213.59,2776.21],"6-51-14":[-5842.32,113.3],"6-51-15":[-5917.21,108.7],"5-25-7":[-6122.93,113.3],"4-12-3":[-6580.29,2776.21],"6-51-16":[-5510.34,107.59],"6-51-17":[-5386.95,102.26],"5-25-8":[-5793.05,107.59],"6-51-18":[-5246.88,98.78],"6-51-19":[-5023.93,94.27],"5-25-9":[-5441.17,98.78],"4-12-4":[-6293.49,107.59],"6-51-20":[-4702.21,77.17],"6-51-21":[-4520.84,56.25],"5-25-10":[-5006.6,77.17],"6-51-22":[-4931.19,41.92],"6-51-23":[-5003.58,22.97],"5-25-11":[-5003.58,41.92],"4-12-5":[-5006.6,1973.99],"6-51-24":[-4927.8,19.11],"6-51-25":[-4549.86,11.37],"5-25-12":[-4927.8,109.32],"6-51-26":[-4810.57,4.22],"6-51-27":[-4861.84,-3.86],"5-25-13":[-4861.84,914.15],"4-12-6":[-4927.8,2757.34],"6-51-28":[-4937.15,981.16],"6-51-29":[-4430.45,1135.93],"5-25-14":[-4937.15,1141.75],"6-51-30":[-4404.87,305.41],"6-51-31":[-4637.59,-1.06],"5-25-15":[-4637.59,1000.51],"4-12-7":[-4937.15,1259.07],"6-51-32":[-5219.05,-5.27],"6-51-33":[-4625.84,315.67],"5-25-16":[-5281.5,1106.52],"6-51-34":[-5717.47,1194.05],"6-51-35":[-6295.78,1027.17],"5-25-17":[-6295.78,1194.05],"4-12-8":[-6295.78,1298.57],"6-51-36":[-6924.46,-9.5],"6-51-37":[-6878,-8.12],"5-25-18":[-6924.46,986.18],"6-51-38":[-6234.42,-6.58],"6-51-39":[-6390.19,-3.54],"5-25-19":[-7008.06,124.34],"4-12-9":[-7008.06,2863.35],"6-51-40":[-7677.07,-6.14],"6-51-41":[-6648.02,-2.7],"5-25-20":[-7677.07,-2.7],"6-51-42":[-5887.74,4.88],"6-51-43":[-4881.84,4.82],"5-25-21":[-5887.74,4.88],"4-12-10":[-7677.07,2060.99],"6-51-44":[-4683.33,-0.42],"6-51-45":[-4718.71,-0.49],"5-25-22":[-5375.44,-0.42],"6-51-46":[-4904.66,-0.3],"6-51-47":[-4464.49,0.52],"5-25-23":[-5352.82,0.52],"4-12-11":[-5726.45,0.52],"6-51-48":[-4783.84,5.1],"6-51-49":[-5104.6,16.37],"5-25-24":[-5104.6,16.37],"6-51-50":[-4801.07,28.17],"6-51-51":[-3120.41,2916.19],"5-25-25":[-4801.07,2916.19],"4-12-12":[-5488.9,2916.19],"6-51-52":[-3181.33,44.42],"6-51-53":[-3383.44,45.57],"5-25-26":[-3572.36,45.57],"6-51-54":[-2894.6,41.85],"6-51-55":[-1321.25,3107.62],"5-25-27":[-2894.6,3258.28],"4-12-13":[-4250.99,3258.28],"6-51-56":[-153.79,2672.67],"6-51-57":[-145.78,1240.65],"5-25-28":[-385.83,2672.67],"6-51-58":[-210.99,1318.26],"6-51-59":[-468.11,682.83],"5-25-29":[-468.11,1318.26],"4-12-14":[-625.27,2672.67],"6-51-60":[-296.25,994.66],"6-51-61":[-1099.16,1785.3],"5-25-30":[-1755.39,1785.3],"6-51-62":[-3959.51,2257.85],"6-51-63":[-4228.8,2746.48],"5-25-31":[-4236.22,2746.48],"4-12-15":[-4236.22,2746.48],"6-52-0":[-733.46,128.52],"6-52-1":[-1214.07,792.32],"6-52-2":[-1144.24,1141.68],"6-52-3":[-1607.7,2076.74],"6-52-4":[-959.91,2521.51],"6-52-5":[-3476.54,2887.36],"6-52-6":[-4419.2,3023.83],"6-52-7":[-4739.83,3002.57],"6-52-8":[-4949.2,1206.68],"6-52-9":[-5254.67,120.01],"6-52-10":[-5012.8,125.87],"6-52-11":[-4183.89,126.28],"6-52-12":[-7086.05,122.56],"6-52-13":[-4742.87,121.98],"6-52-14":[-5741.02,120.69],"6-52-15":[-5712.7,118.59],"6-52-16":[-5649.06,117.92],"6-52-17":[-5750.86,956.08],"6-52-18":[-5457.64,292.1],"6-52-19":[-5232.26,98.45],"6-52-20":[-5260.33,80.32],"6-52-21":[-4887.73,62.32],"6-52-22":[-5495.99,49.65],"6-52-23":[-5492.27,32.21],"6-52-24":[-5015.71,30.74],"6-52-25":[-5073.96,27.03],"6-52-26":[-5048.05,18.42],"6-52-27":[-5662.8,3.79],"6-52-28":[-5485.53,1.81],"6-52-29":[-5441.5,9.77],"6-52-30":[-5026.25,1799.5],"6-52-31":[-4933.34,9.72],"6-52-32":[-4854.58,1.12],"6-52-33":[-5356.72,236.48],"6-52-34":[-5355.94,-6.99],"6-52-35":[-6308.17,-9.64],"6-52-36":[-7469.7,-7.29],"6-52-37":[-6466.58,-6.71],"6-52-38":[-5677.51,-5.18],"6-52-39":[-5879.9,-4.33],"6-52-40":[-6914.98,-5.17],"6-52-41":[-6668.6,0.3],"6-52-42":[-5783.44,5.27],"6-52-43":[-4800.88,6.16],"6-52-44":[-3657.96,8.81],"6-52-45":[-3599.29,299.98],"6-52-46":[-4106.24,909.05],"6-52-47":[-4134.65,9.11],"6-52-48":[-4445.46,11.62],"6-52-49":[-4535.08,20.83],"6-52-50":[-4818.88,31.49],"6-52-51":[-3539.4,44.15],"6-52-52":[-3219.89,48.11],"6-52-53":[-3059.39,47.57],"6-52-54":[-2932.62,39.99],"6-52-55":[-2319.46,1511.36],"6-52-56":[-1028.73,3019.59],"6-52-57":[-6.52,1863.6],"6-52-58":[-117.54,2132.8],"6-52-59":[-470.01,1124.55],"6-52-60":[-286.17,1099.18],"6-52-61":[-908.43,1887.29],"6-52-62":[-4139.66,2271.2],"6-52-63":[-4259.41,2746.48],"6-53-0":[-809.92,127.52],"6-53-1":[-947.44,1084.84],"5-26-0":[-1214.07,1084.84],"6-53-2":[-956.82,1208.94],"6-53-3":[-2013.41,1866.38],"5-26-1":[-2013.41,2076.74],"6-53-4":[-1764.48,2511.91],"6-53-5":[-3618.3,2633.93],"5-26-2":[-3618.3,2887.36],"6-53-6":[-4517.43,2633.93],"6-53-7":[-4776.29,3982.86],"5-26-3":[-4776.29,3982.86],"6-53-8":[-4996.61,121.21],"6-53-9":[-5272.07,128.08],"5-26-4":[-5272.07,1206.68],"6-53-10":[-5305.35,129.5],"6-53-11":[-4591.49,127.45],"5-26-5":[-5305.35,129.5],"6-53-12":[-8129.66,122.28],"6-53-13":[-5430.02,127.23],"5-26-6":[-8129.66,127.23],"6-53-14":[-5642.1,129.8],"6-53-15":[-5516.49,129.69],"5-26-7":[-5741.02,129.8],"6-53-16":[-5390.18,129.28],"6-53-17":[-5280.21,123.07],"5-26-8":[-5750.86,956.08],"6-53-18":[-4871.36,2346.09],"6-53-19":[-5425.47,100.63],"5-26-9":[-5457.64,2346.09],"6-53-20":[-4690.2,83.95],"6-53-21":[-5286.82,69.72],"5-26-10":[-5286.82,83.95],"6-53-22":[-5993.62,52.25],"6-53-23":[-5992.94,40.62],"5-26-11":[-5993.62,52.25],"6-53-24":[-5509.86,1698.2],"6-53-25":[-6172.64,36.9],"5-26-12":[-6172.64,1698.2],"6-53-26":[-5853.26,31.78],"6-53-27":[-6369.72,19.03],"5-26-13":[-6369.72,31.78],"6-53-28":[-5966.33,13.16],"6-53-29":[-5889.03,18.26],"5-26-14":[-5966.33,18.26],"6-53-30":[-5882.35,18.06],"6-53-31":[-5211.23,16.65],"5-26-15":[-5882.35,1799.5],"6-53-32":[-4558.97,11.61],"6-53-33":[-4701.82,-1.77],"5-26-16":[-5356.72,236.48],"6-53-34":[-5295.87,-5.37],"6-53-35":[-6621.27,-7.87],"5-26-17":[-6621.27,-5.37],"6-53-36":[-6149.42,-7.1],"6-53-37":[-6059.63,-6.55],"5-26-18":[-7469.7,-6.55],"6-53-38":[-5287.23,-5.31],"6-53-39":[-6580.97,584.18],"5-26-19":[-6580.97,584.18],"6-53-40":[-6305.15,-3.59],"6-53-41":[-6288.64,2.46],"5-26-20":[-6914.98,2.46],"6-53-42":[-5252.94,10.35],"6-53-43":[-4611.72,13.56],"5-26-21":[-5783.44,13.56],"6-53-44":[-3688.88,18.1],"6-53-45":[-3553.03,2273.57],"5-26-22":[-3688.88,2273.57],"6-53-46":[-3357.17,19.28],"6-53-47":[-3667.73,20.12],"5-26-23":[-4134.65,909.05],"6-53-48":[-3844.29,21.48],"6-53-49":[-4138.56,25.29],"5-26-24":[-4535.08,25.29],"6-53-50":[-4790.72,32.32],"6-53-51":[-3440.33,44.34],"5-26-25":[-4818.88,44.34],"6-53-52":[-3980.63,48.37],"6-53-53":[-2353.14,48.14],"5-26-26":[-3980.63,48.37],"6-53-54":[-2657.56,40.04],"6-53-55":[-2300.41,22.99],"5-26-27":[-2932.62,1511.36],"6-53-56":[-606.79,3601.13],"6-53-57":[-1293.17,2772.76],"5-26-28":[-1293.17,3601.13],"6-53-58":[-778.68,2578.34],"6-53-59":[-343.06,1326.38],"5-26-29":[-778.68,2578.34],"6-53-60":[-301.96,1634.18],"6-53-61":[-1086.2,1960.78],"5-26-30":[-1086.2,1960.78],"6-53-62":[-4340.78,2301.31],"6-53-63":[-4271.39,2746.48],"5-26-31":[-4340.78,2746.48],"6-54-0":[-754.78,88.51],"6-54-1":[-695.88,963.85],"6-54-2":[-418.94,1073.68],"6-54-3":[-2490,1676.23],"6-54-4":[-1598.54,2416.2],"6-54-5":[-3641.22,2217.34],"6-54-6":[-4536.45,2458.39],"6-54-7":[-4805.67,2560.61],"6-54-8":[-5052.79,127.95],"6-54-9":[-5437.3,130.4],"6-54-10":[-7400.45,984.27],"6-54-11":[-6940.26,1259.84],"6-54-12":[-8445.16,122.78],"6-54-13":[-5307.61,127.15],"6-54-14":[-5355.46,131.06],"6-54-15":[-5217.86,132.17],"6-54-16":[-5140.39,129.76],"6-54-17":[-4935.97,122.83],"6-54-18":[-4706.91,1086.32],"6-54-19":[-5082.4,100.89],"6-54-20":[-5179.26,82.99],"6-54-21":[-5666.62,66.49],"6-54-22":[-6090.48,53.95],"6-54-23":[-6169.21,42.86],"6-54-24":[-6313.67,45.39],"6-54-25":[-6126.45,1434.62],"6-54-26":[-6062.27,41.69],"6-54-27":[-6226.38,30.03],"6-54-28":[-6103.99,22.91],"6-54-29":[-6024.65,23.82],"6-54-30":[-6448.31,22.61],"6-54-31":[-5649.85,20.6],"6-54-32":[-5202.51,18.27],"6-54-33":[-5070.73,1.49],"6-54-34":[-5639,-1.98],"6-54-35":[-5982.46,-5.32],"6-54-36":[-6017.65,-6.18],"6-54-37":[-5355.92,-6.1],"6-54-38":[-4934.39,1347.61],"6-54-39":[-5602.69,-5.14],"6-54-40":[-5816.35,-0.74],"6-54-41":[-5840.06,5.66],"6-54-42":[-5618.61,12.5],"6-54-43":[-5587.6,19.2],"6-54-44":[-5458.07,24.93],"6-54-45":[-3690.54,1045.93],"6-54-46":[-4181.35,27.23],"6-54-47":[-3525.7,28],"6-54-48":[-4185.13,28.86],"6-54-49":[-4218.21,32.39],"6-54-50":[-4267.86,35.56],"6-54-51":[-3736.27,43.39],"6-54-52":[-3618.08,1349.09],"6-54-53":[-3154.88,1035.34],"6-54-54":[-1757.64,38.39],"6-54-55":[-1268.84,21.85],"6-54-56":[-1242.39,2823.54],"6-54-57":[-1478.9,2688.59],"6-54-58":[-756.79,2458.1],"6-54-59":[-426.59,2385.99],"6-54-60":[-450.17,1787.39],"6-54-61":[-1732.42,2012.99],"6-54-62":[-4431.77,2336.23],"6-54-63":[-4266.36,2746.48],"6-55-0":[-773.63,75.52],"6-55-1":[-909.04,906.14],"5-27-0":[-909.04,963.85],"6-55-2":[-384.43,939.66],"6-55-3":[-2740.34,1854.31],"5-27-1":[-2740.34,1854.31],"4-13-0":[-2740.34,2076.74],"6-55-4":[-1511.29,2030.68],"6-55-5":[-3639.12,2071.97],"5-27-2":[-3641.22,2416.2],"6-55-6":[-4571.3,2327.64],"6-55-7":[-4921.03,1988.61],"5-27-3":[-4921.03,2560.61],"4-13-1":[-4921.03,3982.86],"3-6-0":[-4921.03,3982.86],"6-55-8":[-5022.04,1471.32],"6-55-9":[-5224.27,194.14],"5-27-4":[-5437.3,1471.32],"6-55-10":[-7788.44,129.91],"6-55-11":[-8273.63,126.1],"5-27-5":[-8273.63,1259.84],"4-13-2":[-8273.63,1471.32],"6-55-12":[-7837.58,126.1],"6-55-13":[-5124.34,126.13],"5-27-6":[-8445.16,127.15],"6-55-14":[-5117.88,129.01],"6-55-15":[-4967.25,131.88],"5-27-7":[-5355.46,132.17],"4-13-3":[-8445.16,132.17],"3-6-1":[-8445.16,3108.37],"6-55-16":[-4833.04,129.91],"6-55-17":[-4637.36,120.26],"5-27-8":[-5140.39,129.91],"6-55-18":[-4526.53,1131.62],"6-55-19":[-4501.61,100.95],"5-27-9":[-5082.4,1131.62],"4-13-4":[-5750.86,2346.09],"6-55-20":[-5093.86,76.17],"6-55-21":[-5753.2,63.94],"5-27-10":[-5753.2,82.99],"6-55-22":[-5978.68,55.85],"6-55-23":[-6224.65,50.59],"5-27-11":[-6224.65,55.85],"4-13-5":[-6224.65,83.95],"3-6-2":[-6293.49,2346.09],"6-55-24":[-6228.02,51.75],"6-55-25":[-6270.35,2003.8],"5-27-12":[-6313.67,2003.8],"6-55-26":[-6240.19,2815.55],"6-55-27":[-6433.11,37.39],"5-27-13":[-6433.11,2815.55],"4-13-6":[-6433.11,2815.55],"6-55-28":[-6295.21,31.14],"6-55-29":[-6099.62,32.89],"5-27-14":[-6295.21,32.89],"6-55-30":[-6399.44,30.93],"6-55-31":[-5954.07,23.87],"5-27-15":[-6448.31,30.93],"4-13-7":[-6448.31,1799.5],"3-6-3":[-6448.31,2815.55],"6-55-32":[-5049.31,20.71],"6-55-33":[-4783.68,8.19],"5-27-16":[-5202.51,20.71],"6-55-34":[-5310.1,4],"6-55-35":[-5627.49,-1.23],"5-27-17":[-5982.46,4],"4-13-8":[-6621.27,236.48],"6-55-36":[-5557.2,-2.77],"6-55-37":[-4574.29,2699.54],"5-27-18":[-6017.65,2699.54],"6-55-38":[-4364.05,1963.83],"6-55-39":[-5227.73,-2.51],"5-27-19":[-5602.69,1963.83],"4-13-9":[-7469.7,2699.54],"3-6-4":[-7469.7,2863.35],"6-55-40":[-5398.44,3.34],"6-55-41":[-5418.06,11.75],"5-27-20":[-5840.06,11.75],"6-55-42":[-5567.95,18.07],"6-55-43":[-5910.79,25.53],"5-27-21":[-5910.79,25.53],"4-13-10":[-6914.98,25.53],"6-55-44":[-5858.3,32.41],"6-55-45":[-5328.4,1066.57],"5-27-22":[-5858.3,1066.57],"6-55-46":[-4416.42,36.95],"6-55-47":[-4492.85,36.98],"5-27-23":[-4492.85,36.98],"4-13-11":[-5858.3,2273.57],"3-6-5":[-7677.07,2273.57],"6-55-48":[-4477.06,36.96],"6-55-49":[-4483.64,37.24],"5-27-24":[-4483.64,37.24],"6-55-50":[-4294.04,39.76],"6-55-51":[-4067.88,42.27],"5-27-25":[-4294.04,43.39],"4-13-12":[-4818.88,44.34],"6-55-52":[-3984.71,37.89],"6-55-53":[-3551.53,38.97],"5-27-26":[-3984.71,1349.09],"6-55-54":[-1641.24,173.11],"6-55-55":[-1355.39,1438.49],"5-27-27":[-1757.64,1438.49],"4-13-13":[-3984.71,1511.36],"3-6-6":[-5488.9,3258.28],"6-55-56":[-1512.26,2044.53],"6-55-57":[-1226.91,2666.25],"5-27-28":[-1512.26,2823.54],"6-55-58":[-678.79,2014.72],"6-55-59":[-910.8,2088.28],"5-27-29":[-910.8,2458.1],"4-13-14":[-1512.26,3601.13],"6-55-60":[-652.73,1737.31],"6-55-61":[-3251.34,2103.65],"5-27-30":[-3251.34,2103.65],"6-55-62":[-4488.79,2360.08],"6-55-63":[-4270.87,2746.48],"5-27-31":[-4488.79,2746.48],"4-13-15":[-4488.79,2746.48],"3-6-7":[-4488.79,3601.13],"6-56-0":[-774.61,63.52],"6-56-1":[-909.04,872.66],"6-56-2":[-422.73,1232.27],"6-56-3":[-2742.33,1544.62],"6-56-4":[-1114.07,1035.02],"6-56-5":[-3179.65,1653.87],"6-56-6":[-4594.77,1002],"6-56-7":[-4924.28,671.1],"6-56-8":[-5019,1784.7],"6-56-9":[-5199.04,1475.57],"6-56-10":[-6481.97,128.25],"6-56-11":[-5268.9,126.29],"6-56-12":[-5631.13,126.29],"6-56-13":[-5336.55,126.21],"6-56-14":[-4959.12,126.55],"6-56-15":[-4734.53,127.18],"6-56-16":[-4920.4,126.5],"6-56-17":[-4441.83,117.02],"6-56-18":[-4364.6,106.96],"6-56-19":[-4479.79,92.67],"6-56-20":[-4807.92,81.82],"6-56-21":[-5147.88,72.03],"6-56-22":[-5777.15,65.54],"6-56-23":[-5742.39,64.24],"6-56-24":[-6087.05,52.11],"6-56-25":[-5930.72,53.98],"6-56-26":[-5982.95,52.63],"6-56-27":[-6107.29,44.22],"6-56-28":[-6675.95,40.2],"6-56-29":[-5957.58,37.67],"6-56-30":[-5964.89,36.23],"6-56-31":[-7097.01,26.97],"6-56-32":[-5371.34,25.11],"6-56-33":[-4808.56,15.56],"6-56-34":[-4714.13,11.93],"6-56-35":[-5258.45,18.59],"6-56-36":[-5112.44,4.11],"6-56-37":[-4736.03,0.85],"6-56-38":[-3880.88,0.68],"6-56-39":[-4794.46,1.89],"6-56-40":[-4889.28,8.4],"6-56-41":[-5026.05,16.04],"6-56-42":[-5214.14,22.14],"6-56-43":[-5362.66,30.63],"6-56-44":[-5615.35,36.65],"6-56-45":[-5576.93,40.5],"6-56-46":[-5354.96,43.37],"6-56-47":[-6001.14,44.13],"6-56-48":[-4965.81,43.98],"6-56-49":[-4608.39,41.79],"6-56-50":[-4520.54,41.65],"6-56-51":[-4015.97,42.33],"6-56-52":[-3435.94,40.96],"6-56-53":[-4034.45,41.96],"6-56-54":[-1992.34,1450.89],"6-56-55":[-566.09,1695.97],"6-56-56":[-1528.23,1011.13],"6-56-57":[-608.36,1329.89],"6-56-58":[-531.53,1771.7],"6-56-59":[-1105.87,1695.38],"6-56-60":[-1294.97,1632.27],"6-56-61":[-3320.58,2172.84],"6-56-62":[-4500.76,2379.92],"6-56-63":[-4387.83,2746.48],"6-57-0":[-830.8,52.51],"6-57-1":[-644.38,541.88],"5-28-0":[-909.04,872.66],"6-57-2":[-469.54,919.88],"6-57-3":[-1635.29,1436.69],"5-28-1":[-2742.33,1544.62],"6-57-4":[-1835.91,748.02],"6-57-5":[-1621.7,949.92],"5-28-2":[-3179.65,1653.87],"6-57-6":[-4643.42,115.49],"6-57-7":[-4970.55,126.66],"5-28-3":[-4970.55,1002],"6-57-8":[-5107.08,1937.43],"6-57-9":[-5242.54,2123.62],"5-28-4":[-5242.54,2123.62],"6-57-10":[-5693.64,124.91],"6-57-11":[-5329.67,123.99],"5-28-5":[-6481.97,128.25],"6-57-12":[-5384.49,123.99],"6-57-13":[-4791.5,122.5],"5-28-6":[-5631.13,126.29],"6-57-14":[-4728.1,124.14],"6-57-15":[-4503.56,123],"5-28-7":[-4959.12,127.18],"6-57-16":[-4242.46,119.6],"6-57-17":[-4149.79,110.36],"5-28-8":[-4920.4,126.5],"6-57-18":[-4243.75,101.63],"6-57-19":[-4386.42,95.46],"5-28-9":[-4479.79,106.96],"6-57-20":[-4570.43,1880.85],"6-57-21":[-4843.17,2439.69],"5-28-10":[-5147.88,2439.69],"6-57-22":[-5236.17,1522.97],"6-57-23":[-5741.26,68.01],"5-28-11":[-5777.15,1522.97],"6-57-24":[-5614.52,116.51],"6-57-25":[-5297.41,60.59],"5-28-12":[-6087.05,116.51],"6-57-26":[-5603.59,171.48],"6-57-27":[-5382.72,57.96],"5-28-13":[-6107.29,171.48],"6-57-28":[-5194.58,53.31],"6-57-29":[-5536.19,43.04],"5-28-14":[-6675.95,53.31],"6-57-30":[-5589.52,37.19],"6-57-31":[-7749.42,33.41],"5-28-15":[-7749.42,37.19],"6-57-32":[-6535.92,34.41],"6-57-33":[-5119.28,26.59],"5-28-16":[-6535.92,34.41],"6-57-34":[-5045.49,24.73],"6-57-35":[-5489.86,64.15],"5-28-17":[-5489.86,64.15],"6-57-36":[-4822.11,32.17],"6-57-37":[-4030.39,167.47],"5-28-18":[-5112.44,167.47],"6-57-38":[-3442.1,26.06],"6-57-39":[-4106.03,77.57],"5-28-19":[-4794.46,77.57],"6-57-40":[-3840.8,15.84],"6-57-41":[-4457.53,1486.33],"5-28-20":[-5026.05,1486.33],"6-57-42":[-4775,2391.26],"6-57-43":[-4880.59,1794.09],"5-28-21":[-5362.66,2391.26],"6-57-44":[-5715.96,40.42],"6-57-45":[-5874.66,45.89],"5-28-22":[-5874.66,45.89],"6-57-46":[-5731.84,49.37],"6-57-47":[-5915.23,50.19],"5-28-23":[-6001.14,50.19],"6-57-48":[-5019.61,50.16],"6-57-49":[-4959.49,48.13],"5-28-24":[-5019.61,50.16],"6-57-50":[-4915.16,45.48],"6-57-51":[-2574.6,44.16],"5-28-25":[-4915.16,45.48],"6-57-52":[-2779.21,42.18],"6-57-53":[-2770.8,42.48],"5-28-26":[-4034.45,42.48],"6-57-54":[-2250.06,2074.83],"6-57-55":[-937.18,1823.2],"5-28-27":[-2250.06,2074.83],"6-57-56":[-2391.06,13.36],"6-57-57":[-1732.19,11.7],"5-28-28":[-2391.06,1329.89],"6-57-58":[-480,1116.85],"6-57-59":[-648.11,1811.71],"5-28-29":[-1105.87,1811.71],"6-57-60":[-581.27,1663.61],"6-57-61":[-3797.26,2225.4],"5-28-30":[-3797.26,2225.4],"6-57-62":[-4462.42,2420.8],"6-57-63":[-4395.9,2746.48],"5-28-31":[-4500.76,2746.48],"6-58-0":[-1148.46,66.14],"6-58-1":[-665.78,663],"6-58-2":[-313.37,1111.16],"6-58-3":[-1468.54,664.4],"6-58-4":[-1187.8,1036.71],"6-58-5":[-1368.34,949.82],"6-58-6":[-4702.71,116.37],"6-58-7":[-4948.55,124.92],"6-58-8":[-5107.83,1885.38],"6-58-9":[-5547.42,2140.58],"6-58-10":[-5606.58,121.69],"6-58-11":[-6067.01,123.87],"6-58-12":[-5079.01,123.87],"6-58-13":[-4653.01,123.14],"6-58-14":[-4703.6,119.28],"6-58-15":[-4200.54,118.34],"6-58-16":[-4449.71,118.05],"6-58-17":[-4235.37,106.08],"6-58-18":[-4790.67,104.94],"6-58-19":[-4811.33,99.37],"6-58-20":[-4716.62,1402.2],"6-58-21":[-4379.44,3730.85],"6-58-22":[-4656.43,1980.83],"6-58-23":[-5347.55,745.87],"6-58-24":[-5267.8,535.71],"6-58-25":[-5167.21,356.34],"6-58-26":[-4869.58,135.29],"6-58-27":[-4636.76,301.55],"6-58-28":[-4670.67,458.6],"6-58-29":[-4517.78,728.66],"6-58-30":[-4838.32,41.91],"6-58-31":[-5688.29,38.21],"6-58-32":[-5734.08,38.21],"6-58-33":[-5055.81,33.98],"6-58-34":[-5032.26,864.67],"6-58-35":[-4600.32,429.6],"6-58-36":[-54.18,293.54],"6-58-37":[-1031.12,160.54],"6-58-38":[-1535.05,305.33],"6-58-39":[-68.02,458.89],"6-58-40":[-2869.5,631.86],"6-58-41":[-3974.67,1938.63],"6-58-42":[-4394.56,3619.16],"6-58-43":[-4562.11,1377.96],"6-58-44":[-5087.64,40.21],"6-58-45":[-5651.93,47.1],"6-58-46":[-5721.22,50.18],"6-58-47":[-5752.16,52.72],"6-58-48":[-4937.63,54.26],"6-58-49":[-4956.28,51.82],"6-58-50":[-4777.71,49.92],"6-58-51":[-3124.35,46.02],"6-58-52":[-1653.76,42.72],"6-58-53":[-2623.27,41.86],"6-58-54":[-2249.64,2067.07],"6-58-55":[-1286.31,1823.02],"6-58-56":[-1838.64,13.48],"6-58-57":[-2627.31,357.87],"6-58-58":[-2489.23,1674.63],"6-58-59":[-525.93,1949.57],"6-58-60":[-412.71,1790.34],"6-58-61":[-3836.73,2289.94],"6-58-62":[-4429.02,2460.86],"6-58-63":[-4376.9,2746.48],"6-59-0":[-1206.49,37.79],"6-59-1":[-771.79,804.61],"5-29-0":[-1206.49,804.61],"6-59-2":[-502.92,913.12],"6-59-3":[-1477.39,666.92],"5-29-1":[-1477.39,1111.16],"4-14-0":[-2742.33,1544.62],"6-59-4":[-1221.06,985.85],"6-59-5":[-1102.26,2634.47],"5-29-2":[-1368.34,2634.47],"6-59-6":[-4507.92,590.06],"6-59-7":[-5028.45,119.95],"5-29-3":[-5028.45,590.06],"4-14-1":[-5028.45,2634.47],"6-59-8":[-5146.03,1189.75],"6-59-9":[-5583.49,125.87],"5-29-4":[-5583.49,2140.58],"6-59-10":[-5586.8,120.74],"6-59-11":[-6953.14,121.48],"5-29-5":[-6953.14,123.87],"4-14-2":[-6953.14,2140.58],"6-59-12":[-5147.12,121.88],"6-59-13":[-4354.82,123],"5-29-6":[-5147.12,123.87],"6-59-14":[-4318.08,118.25],"6-59-15":[-5252.69,112.43],"5-29-7":[-5252.69,119.28],"4-14-3":[-5631.13,127.18],"6-59-16":[-4267.14,112.43],"6-59-17":[-4115.34,102.32],"5-29-8":[-4449.71,118.05],"6-59-18":[-4149.18,1976.1],"6-59-19":[-4477.69,98.54],"5-29-9":[-4811.33,1976.1],"4-14-4":[-4920.4,1976.1],"6-59-20":[-4890.61,88.87],"6-59-21":[-4996.43,731.97],"5-29-10":[-4996.43,3730.85],"6-59-22":[-5046.75,609.23],"6-59-23":[-5769,951.26],"5-29-11":[-5769,1980.83],"4-14-5":[-5777.15,3730.85],"6-59-24":[-5613.69,838.62],"6-59-25":[-4980.13,699.41],"5-29-12":[-5613.69,838.62],"6-59-26":[-4879.62,480.98],"6-59-27":[-4556.45,1567.34],"5-29-13":[-4879.62,1567.34],"4-14-6":[-6107.29,1567.34],"6-59-28":[-3942.58,1463.87],"6-59-29":[-5153.94,935.28],"5-29-14":[-5153.94,1463.87],"6-59-30":[-4808.82,49.38],"6-59-31":[-5536.73,40.51],"5-29-15":[-5688.29,49.38],"4-14-7":[-7749.42,1463.87],"6-59-32":[-5359.65,40.61],"6-59-33":[-4901.26,39.26],"5-29-16":[-5734.08,40.61],"6-59-34":[-4767.54,846.28],"6-59-35":[-25.15,1448.88],"5-29-17":[-5032.26,1448.88],"4-14-8":[-6535.92,1448.88],"6-59-36":[8.78,1514.42],"6-59-37":[8.23,473.97],"5-29-18":[-1031.12,1514.42],"6-59-38":[8.08,659.04],"6-59-39":[8.16,820.4],"5-29-19":[-1535.05,820.4],"4-14-9":[-5112.44,1514.42],"6-59-40":[9.22,900.26],"6-59-41":[-1973.23,613.04],"5-29-20":[-3974.67,1938.63],"6-59-42":[-3432.46,677.68],"6-59-43":[-4528.95,35.12],"5-29-21":[-4562.11,3619.16],"4-14-10":[-5362.66,3619.16],"6-59-44":[-5013.92,39.98],"6-59-45":[-5484.61,2060.11],"5-29-22":[-5651.93,2060.11],"6-59-46":[-5484.61,50.12],"6-59-47":[-5342,52.47],"5-29-23":[-5752.16,52.72],"4-14-11":[-6001.14,2060.11],"6-59-48":[-5782.44,55.19],"6-59-49":[-4748.58,55.91],"5-29-24":[-5782.44,55.91],"6-59-50":[-2644.4,53.48],"6-59-51":[-2954.78,49.06],"5-29-25":[-4777.71,53.48],"4-14-12":[-5782.44,55.91],"6-59-52":[-2619.14,44.55],"6-59-53":[-2018.58,39.12],"5-29-26":[-2623.27,44.55],"6-59-54":[-1697.04,33.19],"6-59-55":[-1710.62,1126.25],"5-29-27":[-2249.64,2067.07],"4-14-13":[-4034.45,2074.83],"6-59-56":[-2070.49,14.62],"6-59-57":[-3062.21,608.1],"5-29-28":[-3062.21,608.1],"6-59-58":[-2999.86,2647.27],"6-59-59":[-474.44,2213.91],"5-29-29":[-2999.86,2647.27],"4-14-14":[-3062.21,2647.27],"6-59-60":[-374.42,1899.59],"6-59-61":[-3953.82,2337.34],"5-29-30":[-3953.82,2337.34],"6-59-62":[-4440.83,2494.91],"6-59-63":[-4361.23,2746.48],"5-29-31":[-4440.83,2746.48],"4-14-15":[-4500.76,2746.48],"6-60-0":[-1299.63,37.78],"6-60-1":[-925.01,799.08],"6-60-2":[-888.63,844.65],"6-60-3":[-1564.59,1285.49],"6-60-4":[-1370.09,821.15],"6-60-5":[-861.46,2604.03],"6-60-6":[-2131.54,850.01],"6-60-7":[-5034.9,115.86],"6-60-8":[-5132.02,123.35],"6-60-9":[-5381,123.85],"6-60-10":[-5892.44,119.67],"6-60-11":[-6972.08,467.08],"6-60-12":[-5129.93,847.15],"6-60-13":[-4115.41,1061.19],"6-60-14":[-5149.97,118.9],"6-60-15":[-4197.74,106.06],"6-60-16":[-4496.35,848.03],"6-60-17":[-4334.49,934.31],"6-60-18":[-4285.89,948.19],"6-60-19":[-4575.69,97.22],"6-60-20":[-4698.24,3428.78],"6-60-21":[-4892.13,3435.16],"6-60-22":[-4748.59,753.26],"6-60-23":[-5350.38,625.45],"6-60-24":[-4910.61,621.86],"6-60-25":[-4648.03,616.33],"6-60-26":[-4676.41,571.22],"6-60-27":[-4867.15,986.01],"6-60-28":[-4699.54,1965.58],"6-60-29":[-4703.7,1465.14],"6-60-30":[-4667.95,448.45],"6-60-31":[-5397.54,41.59],"6-60-32":[-5480.26,40.1],"6-60-33":[-4905.17,384.5],"6-60-34":[-3030.57,1362.69],"6-60-35":[11.08,1866.57],"6-60-36":[9.95,974],"6-60-37":[10.09,560.21],"6-60-38":[10.53,590.61],"6-60-39":[11.82,617.24],"6-60-40":[12.34,504.44],"6-60-41":[13.01,728.38],"6-60-42":[-2724.53,3423.9],"6-60-43":[-4462.04,3558.63],"6-60-44":[-4869.33,38.1],"6-60-45":[-5088.63,920.71],"6-60-46":[-5053.46,931.45],"6-60-47":[-5012.51,826.02],"6-60-48":[-5033.05,56.45],"6-60-49":[-4522.14,56.31],"6-60-50":[-1171.04,965.28],"6-60-51":[-2688.99,777.38],"6-60-52":[-2494.46,322.12],"6-60-53":[-2239.43,37.45],"6-60-54":[-2334.36,27.21],"6-60-55":[-2566.02,18.18],"6-60-56":[-2200.43,18.97],"6-60-57":[-2916.5,1445.48],"6-60-58":[-3327.48,2647.27],"6-60-59":[-1547.91,2378.63],"6-60-60":[-2292.77,2084.27],"6-60-61":[-3981.16,2371.33],"6-60-62":[-4419.87,2524.96],"6-60-63":[-4393.27,2746.49],"6-61-0":[-1249.62,37.76],"6-61-1":[-1112.88,587.07],"5-30-0":[-1299.63,799.08],"6-61-2":[-1546.38,649.12],"6-61-3":[-1554.59,1436.28],"5-30-1":[-1564.59,1436.28],"6-61-4":[-1101.76,882.21],"6-61-5":[-477.94,2622.95],"5-30-2":[-1370.09,2622.95],"6-61-6":[-1793.98,2094.27],"6-61-7":[-4983.68,110.49],"5-30-3":[-5034.9,2094.27],"6-61-8":[-5222.84,113.62],"6-61-9":[-5428.09,792.85],"5-30-4":[-5428.09,792.85],"6-61-10":[-5710.62,472.86],"6-61-11":[-5248.33,998.82],"5-30-5":[-6972.08,998.82],"6-61-12":[-4485.39,911.33],"6-61-13":[-3387.91,978.67],"5-30-6":[-5129.93,1061.19],"6-61-14":[-4788.04,275.17],"6-61-15":[-4478.72,105.85],"5-30-7":[-5149.97,275.17],"6-61-16":[-4586.88,2441.8],"6-61-17":[-4535.47,2479.29],"5-30-8":[-4586.88,2479.29],"6-61-18":[-4473.78,1153.69],"6-61-19":[-4636.74,1045.54],"5-30-9":[-4636.74,1153.69],"6-61-20":[-4641.17,3969.25],"6-61-21":[-4928.56,3240.15],"5-30-10":[-4928.56,3969.25],"6-61-22":[-4945.72,538.03],"6-61-23":[-5865.09,581.24],"5-30-11":[-5865.09,753.26],"6-61-24":[-5850.78,518.07],"6-61-25":[-5370.23,456.49],"5-30-12":[-5850.78,621.86],"6-61-26":[-4853.21,2075.33],"6-61-27":[-5280.81,725.34],"5-30-13":[-5280.81,2075.33],"6-61-28":[-4922.18,1263.81],"6-61-29":[-5222.98,1793.46],"5-30-14":[-5222.98,1965.58],"6-61-30":[-5291.44,563.59],"6-61-31":[-5622.65,40.64],"5-30-15":[-5622.65,563.59],"6-61-32":[-5631.84,39.27],"6-61-33":[-4922.72,482.59],"5-30-16":[-5631.84,482.59],"6-61-34":[14.28,1670.46],"6-61-35":[11.71,1228.8],"5-30-17":[-3030.57,1866.57],"6-61-36":[11.3,718.33],"6-61-37":[-99.67,814.4],"5-30-18":[-99.67,974],"6-61-38":[11.9,417.33],"6-61-39":[12.45,434.7],"5-30-19":[10.53,617.24],"6-61-40":[12.64,544.46],"6-61-41":[13.85,536.59],"5-30-20":[12.34,728.38],"6-61-42":[-160.95,3255.79],"6-61-43":[-137.3,4091.3],"5-30-21":[-4462.04,4091.3],"6-61-44":[-3374.34,1009.54],"6-61-45":[-1542.98,1097.45],"5-30-22":[-5088.63,1097.45],"6-61-46":[21.26,2425.69],"6-61-47":[-4937.09,2341.94],"5-30-23":[-5053.46,2425.69],"6-61-48":[-4955.38,53.23],"6-61-49":[-2050.17,264.6],"5-30-24":[-5033.05,264.6],"6-61-50":[-85.62,935.9],"6-61-51":[-216.07,827.24],"5-30-25":[-2688.99,965.28],"6-61-52":[-1523.2,893.55],"6-61-53":[-1457.29,582.89],"5-30-26":[-2494.46,893.55],"6-61-54":[-3630.65,832.57],"6-61-55":[-3897.67,20.65],"5-30-27":[-3897.67,832.57],"6-61-56":[-3381.61,20.76],"6-61-57":[-3738.02,2173.37],"5-30-28":[-3738.02,2173.37],"6-61-58":[-3509.49,2720.05],"6-61-59":[-2958.98,2519.15],"5-30-29":[-3509.49,2720.05],"6-61-60":[-3517.99,2242.55],"6-61-61":[-4835.02,2404.88],"5-30-30":[-4835.02,2404.88],"6-61-62":[-4382.08,2555.1],"6-61-63":[-4356.44,2747.47],"5-30-31":[-4419.87,2747.47],"6-62-0":[-1240.53,37.73],"6-62-1":[-744.04,572.31],"6-62-2":[-1580.4,576.58],"6-62-3":[-1451.86,615.97],"6-62-4":[-1027.1,702.71],"6-62-5":[-541.12,2552.32],"6-62-6":[-1283.7,2664.01],"6-62-7":[-4784.72,103.88],"6-62-8":[-5202.61,107.83],"6-62-9":[-5387.25,111.74],"6-62-10":[-5726.24,298.22],"6-62-11":[-5787.56,1388.09],"6-62-12":[-5721.89,1035.94],"6-62-13":[-3686.08,1109.06],"6-62-14":[-4480.28,639.9],"6-62-15":[-4790.76,219.03],"6-62-16":[-4896.5,2687.22],"6-62-17":[-5213.44,2577.79],"6-62-18":[-5267.5,3501.33],"6-62-19":[-4911.78,2419.81],"6-62-20":[-5018.1,3718.38],"6-62-21":[-5389.78,1721.06],"6-62-22":[-5293.41,696.4],"6-62-23":[-6394.68,471.46],"6-62-24":[-6204.36,407.06],"6-62-25":[-6073.72,487.53],"6-62-26":[-5931.72,1006.14],"6-62-27":[-5677.56,631.61],"6-62-28":[-6118.85,789.75],"6-62-29":[-6377.35,766.66],"6-62-30":[-5920.61,332.62],"6-62-31":[-5347.75,38.68],"6-62-32":[-5283.42,38.48],"6-62-33":[-5043.38,317.61],"6-62-34":[14.55,749.67],"6-62-35":[12.03,765.74],"6-62-36":[12.1,606.6],"6-62-37":[12.83,948.09],"6-62-38":[12.65,466.53],"6-62-39":[13.05,375.52],"6-62-40":[13.65,421.27],"6-62-41":[15.43,679.87],"6-62-42":[16.17,1792.55],"6-62-43":[16.17,3730.02],"6-62-44":[-1802.42,2423.6],"6-62-45":[-795.86,3440.21],"6-62-46":[17.78,2505.49],"6-62-47":[-4748.41,2581.45],"6-62-48":[-4763.6,209.81],"6-62-49":[-141.99,627.25],"6-62-50":[-120.06,1059.5],"6-62-51":[-251.76,960.71],"6-62-52":[-247.14,1324.16],"6-62-53":[-1590.71,281.57],"6-62-54":[-3485.5,25.96],"6-62-55":[-3904.05,22.36],"6-62-56":[-3764.97,20.96],"6-62-57":[-3158.94,2479.23],"6-62-58":[-3693.62,2850.41],"6-62-59":[-3705.92,2618.27],"6-62-60":[-4289.29,2314.66],"6-62-61":[-4712.91,2457.95],"6-62-62":[-4452.31,2581.14],"6-62-63":[-4363.32,2749.47],"6-63-0":[-1319.19,37.73],"6-63-1":[-591,629.84],"5-31-0":[-1319.19,629.84],"6-63-2":[-1565.59,582.77],"6-63-3":[-787.72,708.63],"5-31-1":[-1580.4,708.63],"4-15-0":[-1580.4,1436.28],"6-63-4":[-1062.91,441.27],"6-63-5":[-825.64,2411.62],"5-31-2":[-1062.91,2552.32],"6-63-6":[-2079.21,2153.36],"6-63-7":[-4632.1,101.1],"5-31-3":[-4784.72,2664.01],"4-15-1":[-5034.9,2664.01],"3-7-0":[-5034.9,2664.01],"6-63-8":[-5168.36,103.66],"6-63-9":[-5405.65,103.55],"5-31-4":[-5405.65,111.74],"6-63-10":[-5625.94,500.18],"6-63-11":[-5368.78,821.88],"5-31-5":[-5787.56,1388.09],"4-15-2":[-6972.08,1388.09],"6-63-12":[-5779.91,942.82],"6-63-13":[-3150.45,686.85],"5-31-6":[-5779.91,1109.06],"6-63-14":[-4455.82,466.81],"6-63-15":[-4710.93,332.21],"5-31-7":[-4790.76,639.9],"4-15-3":[-5779.91,1109.06],"3-7-1":[-6972.08,2140.58],"2-3-0":[-8445.16,3982.86],"6-63-16":[-4828.77,3299.64],"6-63-17":[-5389.17,2357.66],"5-31-8":[-5389.17,3299.64],"6-63-18":[-5668.97,2423.37],"6-63-19":[-5265.41,1802.73],"5-31-9":[-5668.97,3501.33],"4-15-4":[-5668.97,3501.33],"6-63-20":[-5105.1,2177.76],"6-63-21":[-5430.78,856.94],"5-31-10":[-5430.78,3718.38],"6-63-22":[-6103,519.6],"6-63-23":[-6129.72,407.48],"5-31-11":[-6394.68,696.4],"4-15-5":[-6394.68,3969.25],"3-7-2":[-6394.68,3969.25],"6-63-24":[-6145.98,556.84],"6-63-25":[-6723.66,577.03],"5-31-12":[-6723.66,577.03],"6-63-26":[-6115.4,1303.84],"6-63-27":[-6907.8,572.26],"5-31-13":[-6907.8,1303.84],"4-15-6":[-6907.8,2075.33],"6-63-28":[-6077.21,555.42],"6-63-29":[-5349.22,874.92],"5-31-14":[-6377.35,874.92],"6-63-30":[-5907.53,370.77],"6-63-31":[-5392.83,36.2],"5-31-15":[-5920.61,370.77],"4-15-7":[-6377.35,1965.58],"3-7-3":[-7749.42,2075.33],"2-3-1":[-7749.42,3969.25],"1-1-0":[-8983.51,6823.9],"6-63-32":[-5237.08,36.78],"6-63-33":[-5332.47,337.3],"5-31-16":[-5332.47,337.3],"6-63-34":[12.34,850.91],"6-63-35":[10.7,534.42],"5-31-17":[10.7,850.91],"4-15-8":[-5631.84,1866.57],"6-63-36":[11.05,535.26],"6-63-37":[12.72,1059.45],"5-31-18":[11.05,1059.45],"6-63-38":[13.43,539.26],"6-63-39":[14.75,528.02],"5-31-19":[12.65,539.26],"4-15-9":[-99.67,1059.45],"3-7-4":[-6535.92,1866.57],"6-63-40":[15.89,392.77],"6-63-41":[17.66,514.08],"5-31-20":[13.65,679.87],"6-63-42":[18.18,854.51],"6-63-43":[17.22,2207.98],"5-31-21":[16.17,3730.02],"4-15-10":[-4462.04,4091.3],"6-63-44":[-2692.96,1819.27],"6-63-45":[-2727.24,2335.87],"5-31-22":[-2727.24,3440.21],"6-63-46":[-94.68,2294.55],"6-63-47":[-3267.83,3213.77],"5-31-23":[-4748.41,3213.77],"4-15-11":[-5088.63,3440.21],"3-7-5":[-6001.14,4091.3],"2-3-2":[-7677.07,4091.3],"6-63-48":[-2413.96,314.06],"6-63-49":[-125.93,458.45],"5-31-24":[-4763.6,627.25],"6-63-50":[-10.71,680.68],"6-63-51":[-74.8,920.28],"5-31-25":[-251.76,1059.5],"4-15-12":[-5033.05,1059.5],"6-63-52":[-207.69,768.72],"6-63-53":[-1592.49,477.85],"5-31-26":[-1592.49,1324.16],"6-63-54":[-3090.17,27.14],"6-63-55":[-3709.78,26.46],"5-31-27":[-3904.05,27.14],"4-15-13":[-3904.05,1324.16],"3-7-6":[-5782.44,2074.83],"6-63-56":[-3741.06,27.93],"6-63-57":[-3312.16,2064.74],"5-31-28":[-3764.97,2479.23],"6-63-58":[-3792.48,2924.47],"6-63-59":[-3755.19,2804.3],"5-31-29":[-3792.48,2924.47],"4-15-14":[-3792.48,2924.47],"6-63-60":[-4389.4,2430.85],"6-63-61":[-4358.46,2498.87],"5-31-30":[-4712.91,2498.87],"6-63-62":[-4399.93,2597.05],"6-63-63":[-4364.12,2749.47],"5-31-31":[-4452.31,2749.47],"4-15-15":[-4835.02,2749.47],"3-7-7":[-4835.02,2924.47],"2-3-3":[-5782.44,3601.13],"1-1-1":[-8765.31,6969.13],"0-0-0":[-10751.44,6969.13],"6-64-0":[-1334.18,71.4],"6-64-1":[-500.53,635.35],"6-64-2":[-1479.4,533.01],"6-64-3":[-727.38,868.41],"6-64-4":[-758.4,672.79],"6-64-5":[-493.96,1542.28],"6-64-6":[-1124.19,2748.59],"6-64-7":[-4705.66,97.64],"6-64-8":[-4703.7,101.59],"6-64-9":[-5432.74,100.52],"6-64-10":[-5630.75,100.56],"6-64-11":[-5630.75,95.58],"6-64-12":[-5345.91,93.35],"6-64-13":[-3563.83,320.14],"6-64-14":[-4443.47,478.36],"6-64-15":[-5021.66,1880.44],"6-64-16":[-5151.99,3439.27],"6-64-17":[-5464.6,2431.2],"6-64-18":[-5552.88,942.66],"6-64-19":[-5435.68,1847.74],"6-64-20":[-5111.48,1993.84],"6-64-21":[-5001.86,739.39],"6-64-22":[-5851.42,750.53],"6-64-23":[-5757.84,1166.19],"6-64-24":[-5891.23,962.42],"6-64-25":[-6214.46,863.32],"6-64-26":[-6405.06,556.46],"6-64-27":[-5931.02,439.96],"6-64-28":[-5910,880.1],"6-64-29":[-5948.93,1022.44],"6-64-30":[-5525.52,111.21],"6-64-31":[-5035.82,34.38],"6-64-32":[-5581.84,36.77],"6-64-33":[-4837,36.62],"6-64-34":[-3062.65,975.32],"6-64-35":[9.43,830.09],"6-64-36":[10.62,427.95],"6-64-37":[12.53,530.46],"6-64-38":[14.73,818.13],"6-64-39":[16.29,941.03],"6-64-40":[19.97,1131.19],"6-64-41":[19.97,747.03],"6-64-42":[20.9,738.64],"6-64-43":[20.23,1991.34],"6-64-44":[-2678.87,1870.96],"6-64-45":[-3009.41,892.45],"6-64-46":[-2298.84,2396.54],"6-64-47":[20.07,3307.05],"6-64-48":[21.17,1814.23],"6-64-49":[-19.17,460.22],"6-64-50":[-31.06,303.6],"6-64-51":[-119.99,69.5],"6-64-52":[-193.68,48.1],"6-64-53":[-365.14,33.44],"6-64-54":[-2807.25,34.01],"6-64-55":[-3663.22,33.97],"6-64-56":[-3651.68,28.87],"6-64-57":[-3375.09,2706.61],"6-64-58":[-3885.42,2970.03],"6-64-59":[-3243.34,2947.12],"6-64-60":[-5524.14,2543.75],"6-64-61":[-4267.84,2526.16],"6-64-62":[-4884.95,2618.03],"6-64-63":[-4358.43,2752.45],"6-65-0":[-1098.57,57.45],"6-65-1":[-389.02,564.12],"5-32-0":[-1334.18,635.35],"6-65-2":[-1174.16,508.61],"6-65-3":[-740.81,668.75],"5-32-1":[-1479.4,868.41],"6-65-4":[-627.75,699.43],"6-65-5":[-30.98,1367.57],"5-32-2":[-758.4,1542.28],"6-65-6":[-873.13,2772.09],"6-65-7":[-4574.33,94.7],"5-32-3":[-4705.66,2772.09],"6-65-8":[-4519.12,94.18],"6-65-9":[-5430.79,935.72],"5-32-4":[-5432.74,935.72],"6-65-10":[-5726.93,1428.23],"6-65-11":[-6027.37,136.3],"5-32-5":[-6027.37,1428.23],"6-65-12":[-5142.23,676.88],"6-65-13":[-4740.25,286.33],"5-32-6":[-5345.91,676.88],"6-65-14":[-4635.6,643.32],"6-65-15":[-5295.44,2274.24],"5-32-7":[-5295.44,2274.24],"6-65-16":[-5773.02,2373.31],"6-65-17":[-5528.15,1377.73],"5-32-8":[-5773.02,3439.27],"6-65-18":[-5597.07,1623.57],"6-65-19":[-5634.6,2161.99],"5-32-9":[-5634.6,2161.99],"6-65-20":[-5459.42,941.46],"6-65-21":[-5394.57,739.39],"5-32-10":[-5459.42,1993.84],"6-65-22":[-5524.01,1758.12],"6-65-23":[-5571.83,2914.18],"5-32-11":[-5851.42,2914.18],"6-65-24":[-5683.47,1308.02],"6-65-25":[-6049.62,733.03],"5-32-12":[-6214.46,1308.02],"6-65-26":[-5647.11,683.02],"6-65-27":[-5806.28,527.99],"5-32-13":[-6405.06,683.02],"6-65-28":[-5769.39,650.86],"6-65-29":[-5697.53,1095.61],"5-32-14":[-5948.93,1095.61],"6-65-30":[-5530.49,66.62],"6-65-31":[-4657.52,281.88],"5-32-15":[-5530.49,281.88],"6-65-32":[-4440.82,391.88],"6-65-33":[-4218.77,47.91],"5-32-16":[-5581.84,391.88],"6-65-34":[-2997.79,933.61],"6-65-35":[8.94,572.18],"5-32-17":[-3062.65,975.32],"6-65-36":[10.62,508.69],"6-65-37":[12.58,666.01],"5-32-18":[10.62,666.01],"6-65-38":[14.93,725.01],"6-65-39":[17.15,1254.61],"5-32-19":[14.73,1254.61],"6-65-40":[20.87,2815.18],"6-65-41":[22.64,1798.58],"5-32-20":[19.97,2815.18],"6-65-42":[22.51,738.64],"6-65-43":[20.23,937.99],"5-32-21":[20.23,1991.34],"6-65-44":[17.99,2193.6],"6-65-45":[-2963.47,1675],"5-32-22":[-3009.41,2193.6],"6-65-46":[-2928.08,1301.3],"6-65-47":[-2362.09,2234.57],"5-32-23":[-2928.08,3307.05],"6-65-48":[21.17,2126.31],"6-65-49":[-49.16,634.25],"5-32-24":[-49.16,2126.31],"6-65-50":[-3.62,255.51],"6-65-51":[-34.57,778.86],"5-32-25":[-119.99,778.86],"6-65-52":[-310.82,125.03],"6-65-53":[-1207.43,1371.74],"5-32-26":[-1207.43,1371.74],"6-65-54":[-2395.72,894.58],"6-65-55":[-2359.67,34.42],"5-32-27":[-3663.22,894.58],"6-65-56":[-3251.41,29.79],"6-65-57":[-3500.86,3054.91],"5-32-28":[-3651.68,3054.91],"6-65-58":[-3769.91,3100.96],"6-65-59":[-3303.24,3103.71],"5-32-29":[-3885.42,3103.71],"6-65-60":[-5524.14,2692.57],"6-65-61":[-4197.79,2548.45],"5-32-30":[-5524.14,2692.57],"6-65-62":[-5404.2,2639.22],"6-65-63":[-4369.78,2753.44],"5-32-31":[-5404.2,2753.44],"6-66-0":[-1299.53,57.45],"6-66-1":[-546.13,504.13],"6-66-2":[-1357.4,434.6],"6-66-3":[-827.83,430.64],"6-66-4":[-325.44,548.76],"6-66-5":[-25.54,1298.81],"6-66-6":[-925.44,3079.8],"6-66-7":[-4327.24,90.09],"6-66-8":[-4943.8,87.08],"6-66-9":[-5452.19,2049.01],"6-66-10":[-5694.43,2462.53],"6-66-11":[-5794.53,1233.38],"6-66-12":[-5386.45,117],"6-66-13":[-4487.2,876.36],"6-66-14":[-4794.62,1537.53],"6-66-15":[-5225.42,4840.9],"6-66-16":[-5125.62,4069.35],"6-66-17":[-6457.04,838.48],"6-66-18":[-5626.94,1553.78],"6-66-19":[-5791.54,2250.36],"6-66-20":[-5551.91,336.76],"6-66-21":[-5781.56,611.03],"6-66-22":[-5219.71,1857.82],"6-66-23":[-4876.68,2746.4],"6-66-24":[-5426.1,1769.87],"6-66-25":[-5582.63,1672.93],"6-66-26":[-5492.86,774.79],"6-66-27":[-5473.4,874.43],"6-66-28":[-5417.7,1294.91],"6-66-29":[-5122.17,816.36],"6-66-30":[-4914.13,431.08],"6-66-31":[-4204.51,2007.45],"6-66-32":[-3670.86,1816.45],"6-66-33":[-2644.22,362.07],"6-66-34":[7.09,766.35],"6-66-35":[8.79,1258.09],"6-66-36":[11.61,820.42],"6-66-37":[13.1,766.79],"6-66-38":[15.69,1619.97],"6-66-39":[19.55,1713.86],"6-66-40":[22.63,2725.4],"6-66-41":[24.02,1802.55],"6-66-42":[22.8,608.18],"6-66-43":[22.8,289.7],"6-66-44":[-3.93,2284.42],"6-66-45":[-3107.33,1585.24],"6-66-46":[-2944.98,813.79],"6-66-47":[-2724.13,3919.02],"6-66-48":[23.35,4706.54],"6-66-49":[23.35,1505.08],"6-66-50":[-149.54,861.98],"6-66-51":[-21.04,111.68],"6-66-52":[-546.34,1206.24],"6-66-53":[-1225.97,2364.91],"6-66-54":[-740.87,2008.92],"6-66-55":[-1651.18,33.84],"6-66-56":[-3214.03,30.48],"6-66-57":[-3430.56,3138.57],"6-66-58":[-3550.91,3267.05],"6-66-59":[-3667.44,3207.22],"6-66-60":[-2502.69,2800.27],"6-66-61":[-4064.25,2565.62],"6-66-62":[-5150.03,2666.15],"6-66-63":[-4380.24,2755.44],"6-67-0":[-1411.07,38.77],"6-67-1":[-777.85,325.07],"5-33-0":[-1411.07,504.13],"6-67-2":[-1008.17,301.02],"6-67-3":[-841.35,786.22],"5-33-1":[-1357.4,786.22],"4-16-0":[-1479.4,868.41],"6-67-4":[-120.01,946.45],"6-67-5":[24.93,1165.91],"5-33-2":[-325.44,1298.81],"6-67-6":[-675.67,2826.89],"6-67-7":[-4145.22,85.5],"5-33-3":[-4327.24,3079.8],"4-16-1":[-4705.66,3079.8],"6-67-8":[-5265.72,197.75],"6-67-9":[-6317.1,2315.19],"5-33-4":[-6317.1,2315.19],"6-67-10":[-5541.28,2472.36],"6-67-11":[-6275.45,847.8],"5-33-5":[-6275.45,2472.36],"4-16-2":[-6317.1,2472.36],"6-67-12":[-5974.42,217.69],"6-67-13":[-6088.36,1186.21],"5-33-6":[-6088.36,1186.21],"6-67-14":[-4895.96,1069.93],"6-67-15":[-5222.06,4029.26],"5-33-7":[-5225.42,4840.9],"4-16-3":[-6088.36,4840.9],"6-67-16":[-5683.46,2694.01],"6-67-17":[-5551.89,2374.38],"5-33-8":[-6457.04,4069.35],"6-67-18":[-6708.74,1143.75],"6-67-19":[-5720.89,1413.3],"5-33-9":[-6708.74,2250.36],"4-16-4":[-6708.74,4069.35],"6-67-20":[-5387.04,728.47],"6-67-21":[-5364.72,762.97],"5-33-10":[-5781.56,762.97],"6-67-22":[-5068.72,1483.6],"6-67-23":[-4831.99,1924.9],"5-33-11":[-5219.71,2746.4],"4-16-5":[-5851.42,2914.18],"6-67-24":[-5042.96,1977.29],"6-67-25":[-5197.69,2023.83],"5-33-12":[-5582.63,2023.83],"6-67-26":[-5129.75,714.89],"6-67-27":[-4799.44,784.44],"5-33-13":[-5492.86,874.43],"4-16-6":[-6405.06,2023.83],"6-67-28":[-4895.37,1784.96],"6-67-29":[-4493.72,3028.39],"5-33-14":[-5417.7,3028.39],"6-67-30":[-4058.35,4049.43],"6-67-31":[-2094.93,1231.48],"5-33-15":[-4914.13,4049.43],"4-16-7":[-5948.93,4049.43],"6-67-32":[-2544.85,1215.48],"6-67-33":[-2020.52,4000.43],"5-33-16":[-3670.86,4000.43],"6-67-34":[7.15,2977.39],"6-67-35":[9.03,1719.96],"5-33-17":[7.09,2977.39],"4-16-8":[-5581.84,4000.43],"6-67-36":[13.46,738.44],"6-67-37":[14.74,703.93],"5-33-18":[11.61,820.42],"6-67-38":[16.09,1946.83],"6-67-39":[20.85,1936.29],"5-33-19":[15.69,1946.83],"4-16-9":[10.62,1946.83],"6-67-40":[22.3,1877.89],"6-67-41":[23.96,1519.31],"5-33-20":[22.3,2725.4],"6-67-42":[24.8,762.58],"6-67-43":[-5.04,735.58],"5-33-21":[-5.04,762.58],"4-16-10":[-5.04,2815.18],"6-67-44":[-201.67,1518.16],"6-67-45":[-2914.72,1093.52],"5-33-22":[-3107.33,2284.42],"6-67-46":[-3023.85,2311.56],"6-67-47":[-2615.5,2568.33],"5-33-23":[-3023.85,3919.02],"4-16-11":[-3107.33,3919.02],"6-67-48":[-59.72,3904.84],"6-67-49":[23.85,1041.93],"5-33-24":[-59.72,4706.54],"6-67-50":[25.43,1154.04],"6-67-51":[-23.45,205.77],"5-33-25":[-149.54,1154.04],"4-16-12":[-149.54,4706.54],"6-67-52":[-660.53,831.59],"6-67-53":[-319.12,2383.62],"5-33-26":[-1225.97,2383.62],"6-67-54":[-558.14,2178.23],"6-67-55":[-1422.15,180.11],"5-33-27":[-1651.18,2178.23],"4-16-13":[-3663.22,2383.62],"6-67-56":[-3048.46,32.07],"6-67-57":[-2893.81,3175.51],"5-33-28":[-3430.56,3175.51],"6-67-58":[-3427.44,3414.15],"6-67-59":[-2366.66,3300.16],"5-33-29":[-3667.44,3414.15],"4-16-14":[-3885.42,3414.15],"6-67-60":[-2060.67,2920.73],"6-67-61":[-4046.55,2579.65],"5-33-30":[-4064.25,2920.73],"6-67-62":[-5067.2,2681.47],"6-67-63":[-4376.88,2759.37],"5-33-31":[-5150.03,2759.37],"4-16-15":[-5524.14,2920.73],"6-68-0":[-1395.97,228.71],"6-68-1":[-746.57,344.56],"6-68-2":[-1204.84,600.81],"6-68-3":[-573.03,1385.65],"6-68-4":[-211.37,1035.73],"6-68-5":[-227.53,1514.04],"6-68-6":[-1218.75,2800.76],"6-68-7":[-3690.64,1058.54],"6-68-8":[-5160.84,1750.98],"6-68-9":[-6317.1,1810.17],"6-68-10":[-5667.86,1715.33],"6-68-11":[-6260.37,400.65],"6-68-12":[-5691.62,248.2],"6-68-13":[-4704.67,988.47],"6-68-14":[-7020.16,1845.84],"6-68-15":[-5826.45,3777.17],"6-68-16":[-6188.92,2893.68],"6-68-17":[-5692.66,2503.27],"6-68-18":[-5375.56,2005.15],"6-68-19":[-5450.8,209.56],"6-68-20":[-4919.36,965.23],"6-68-21":[-4692.14,1068.73],"6-68-22":[-4667.49,1178.67],"6-68-23":[-4122.01,1310.69],"6-68-24":[-3252.84,1657.37],"6-68-25":[-1445.59,2062.81],"6-68-26":[-3234.01,2330.5],"6-68-27":[-3799.02,2407.12],"6-68-28":[-3849.29,1857.59],"6-68-29":[-2704.63,2461.39],"6-68-30":[-1235.92,1585.63],"6-68-31":[88.63,1076.94],"6-68-32":[52.66,1044.68],"6-68-33":[-17.85,1463.62],"6-68-34":[-25.08,2402.42],"6-68-35":[-3.35,1798.57],"6-68-36":[-2.05,2521.11],"6-68-37":[-19.61,2407.1],"6-68-38":[-21.61,2094.46],"6-68-39":[-59.49,1680.35],"6-68-40":[23.13,1273.22],"6-68-41":[24.24,1174.97],"6-68-42":[25.75,1094.83],"6-68-43":[-510.76,969.01],"6-68-44":[-1838.28,128.05],"6-68-45":[-3559.2,1968.98],"6-68-46":[-3590.74,2422.35],"6-68-47":[-77.86,2768.43],"6-68-48":[-48.75,3568.74],"6-68-49":[26.26,1796.66],"6-68-50":[26.82,970.67],"6-68-51":[-12.7,243.29],"6-68-52":[-81.09,392.83],"6-68-53":[8.74,1613.82],"6-68-54":[-371.45,1720.18],"6-68-55":[-731.98,1680.62],"6-68-56":[-2957.29,876.47],"6-68-57":[-2789.98,3169.81],"6-68-58":[-2473.32,3460.36],"6-68-59":[-2118.53,3384.4],"6-68-60":[-2469.5,3077.24],"6-68-61":[-4044.31,2588.56],"6-68-62":[-5294.54,2693.73],"6-68-63":[-4390.55,2763.36],"6-69-0":[-1534.01,353.71],"6-69-1":[-850.67,488.28],"5-34-0":[-1534.01,488.28],"6-69-2":[-1116.49,724.24],"6-69-3":[-389.05,1634.3],"5-34-1":[-1204.84,1634.3],"6-69-4":[-114.79,1233.17],"6-69-5":[-167.07,1537.33],"5-34-2":[-227.53,1537.33],"6-69-6":[-893.03,2579.46],"6-69-7":[-4333.93,1592.64],"5-34-3":[-4333.93,2800.76],"6-69-8":[-5100.83,1958.98],"6-69-9":[-5438.85,1310.43],"5-34-4":[-6317.1,1958.98],"6-69-10":[-5731.52,797.68],"6-69-11":[-6054.28,411.97],"5-34-5":[-6260.37,1715.33],"6-69-12":[-5152.25,280.51],"6-69-13":[-4670.89,1624.81],"5-34-6":[-5691.62,1624.81],"6-69-14":[-5444.08,1918.97],"6-69-15":[-5602.62,2548.59],"5-34-7":[-7020.16,3777.17],"6-69-16":[-5880.21,1992.85],"6-69-17":[-5615.19,2820.36],"5-34-8":[-6188.92,2893.68],"6-69-18":[-5076.52,3340.97],"6-69-19":[-5031.26,288.67],"5-34-9":[-5450.8,3340.97],"6-69-20":[-4517.89,392.95],"6-69-21":[-2713.93,877.11],"5-34-10":[-4919.36,1068.73],"6-69-22":[-1587.65,1976.43],"6-69-23":[-179.5,2379.26],"5-34-11":[-4667.49,2379.26],"6-69-24":[-76.51,3331.17],"6-69-25":[184,1663.86],"5-34-12":[-3252.84,3331.17],"6-69-26":[148.07,1957.8],"6-69-27":[176.23,2555.3],"5-34-13":[-3799.02,2555.3],"6-69-28":[29.61,2065.15],"6-69-29":[275.12,1747.94],"5-34-14":[-3849.29,2461.39],"6-69-30":[175.88,1070.44],"6-69-31":[253.73,861.8],"5-34-15":[-1235.92,1585.63],"6-69-32":[-26.92,879.81],"6-69-33":[167.87,1051.06],"5-34-16":[-26.92,1463.62],"6-69-34":[256.14,1735.94],"6-69-35":[12.55,2127.16],"5-34-17":[-25.08,2402.42],"6-69-36":[166.21,2639.31],"6-69-37":[175.08,2023.5],"5-34-18":[-19.61,2639.31],"6-69-38":[215,1749.24],"6-69-39":[10.84,3232.15],"5-34-19":[-59.49,3232.15],"6-69-40":[-162.31,2386.26],"6-69-41":[-159.88,2015.68],"5-34-20":[-162.31,2386.26],"6-69-42":[18.98,938.39],"6-69-43":[-2052.93,390.74],"5-34-21":[-2052.93,1094.83],"6-69-44":[-4025.63,257.63],"6-69-45":[-3561.57,3305.09],"5-34-22":[-4025.63,3305.09],"6-69-46":[-3491.33,2729.6],"6-69-47":[-498.59,1910.02],"5-34-23":[-3590.74,2768.43],"6-69-48":[-34.71,2419.32],"6-69-49":[27.99,1810.92],"5-34-24":[-48.75,3568.74],"6-69-50":[27.14,1580.34],"6-69-51":[-65.55,271.04],"5-34-25":[-65.55,1580.34],"6-69-52":[-38.22,401.67],"6-69-53":[22.44,782.08],"5-34-26":[-81.09,1613.82],"6-69-54":[19.27,1264.46],"6-69-55":[-516.11,1855.33],"5-34-27":[-731.98,1855.33],"6-69-56":[-2615.8,1502.36],"6-69-57":[-2563.83,3108.4],"5-34-28":[-2957.29,3169.81],"6-69-58":[-2060.43,3514.26],"6-69-59":[-931.16,3446.22],"5-34-29":[-2473.32,3514.26],"6-69-60":[-2662.69,3147.37],"6-69-61":[-4050.55,2608.3],"5-34-30":[-4050.55,3147.37],"6-69-62":[-4985.7,2704.02],"6-69-63":[-4378.1,2767.34],"5-34-31":[-5294.54,2767.34],"6-70-0":[-1296.53,146.9],"6-70-1":[-771.95,377.43],"6-70-2":[-1112.58,582.7],"6-70-3":[-12.71,1635.74],"6-70-4":[-143.04,1193.37],"6-70-5":[30.17,1777.45],"6-70-6":[-870.06,2266.17],"6-70-7":[-4579.35,2122.75],"6-70-8":[-5091.86,2096.53],"6-70-9":[-5441.27,735.36],"6-70-10":[-5521.23,350.95],"6-70-11":[-5870.11,119.82],"6-70-12":[-5490.68,358.72],"6-70-13":[-4850.2,462.61],"6-70-14":[-5849.2,2057.45],"6-70-15":[-5313.8,1043.38],"6-70-16":[-5533.8,2489.77],"6-70-17":[-5647.65,2049.01],"6-70-18":[-5270.37,753.24],"6-70-19":[-4446.22,1946.4],"6-70-20":[-2062.42,2219.67],"6-70-21":[-190.7,1622.53],"6-70-22":[68.85,2131.4],"6-70-23":[343.56,2428.71],"6-70-24":[27.16,3468.04],"6-70-25":[108.1,2059.93],"6-70-26":[121.91,1646.91],"6-70-27":[274.16,1823.65],"6-70-28":[322.1,1743.04],"6-70-29":[354.64,1235.68],"6-70-30":[262.03,872.26],"6-70-31":[254.18,533.95],"6-70-32":[223.98,518.93],"6-70-33":[192.31,886.28],"6-70-34":[374.92,1242.7],"6-70-35":[339.89,1757.04],"6-70-36":[292.26,1831.76],"6-70-37":[178.82,1687.18],"6-70-38":[175.77,2162.84],"6-70-39":[527.04,3422.04],"6-70-40":[356.51,2505.72],"6-70-41":[47.81,2222.4],"6-70-42":[-651.9,1720.53],"6-70-43":[-3892.14,2268.67],"6-70-44":[-4167.54,2017.39],"6-70-45":[-4024.78,727.91],"6-70-46":[-2423.02,1931.45],"6-70-47":[-1183.92,2422.92],"6-70-48":[29.91,1026.9],"6-70-49":[29.84,2002.07],"6-70-50":[31.81,455.04],"6-70-51":[-106.87,346],"6-70-52":[-425.67,109.12],"6-70-53":[-275.99,320.25],"6-70-54":[-257.87,689.96],"6-70-55":[15.38,1949.22],"6-70-56":[-1496.13,2034.64],"6-70-57":[-1371.09,3052.08],"6-70-58":[-472.27,3536.78],"6-70-59":[-295.51,3480.29],"6-70-60":[-2571.36,3239.33],"6-70-61":[-4037.07,2709.23],"6-70-62":[-4806.88,2724.91],"6-70-63":[-4397.11,2768.65],"6-71-0":[-1366.5,180.42],"6-71-1":[-1045.85,177.35],"5-35-0":[-1366.5,377.43],"6-71-2":[-1106.99,577.96],"6-71-3":[-139.06,862.17],"5-35-1":[-1112.58,1635.74],"4-17-0":[-1534.01,1635.74],"6-71-4":[-31.29,779.54],"6-71-5":[27.24,1826.93],"5-35-2":[-143.04,1826.93],"6-71-6":[-972.15,2236.9],"6-71-7":[-4515.43,1854.14],"5-35-3":[-4579.35,2266.17],"4-17-1":[-4579.35,2800.76],"3-8-0":[-4705.66,3079.8],"6-71-8":[-5083,851.76],"6-71-9":[-5368.62,511.56],"5-35-4":[-5441.27,2096.53],"6-71-10":[-5717.96,158.69],"6-71-11":[-6002.07,214.15],"5-35-5":[-6002.07,350.95],"4-17-2":[-6317.1,2096.53],"6-71-12":[-5985.81,342.67],"6-71-13":[-4829.82,644.43],"5-35-6":[-5985.81,644.43],"6-71-14":[-5630.52,2648.45],"6-71-15":[-5696.39,1842.42],"5-35-7":[-5849.2,2648.45],"4-17-3":[-7020.16,3777.17],"3-8-1":[-7020.16,4840.9],"6-71-16":[-5400.18,2700.03],"6-71-17":[-5606.51,2930.53],"5-35-8":[-5647.65,2930.53],"6-71-18":[-5476.96,2524.92],"6-71-19":[-2974.28,1636.67],"5-35-9":[-5476.96,2524.92],"4-17-4":[-6188.92,3340.97],"6-71-20":[18.37,2264.81],"6-71-21":[-31.98,1643.49],"5-35-10":[-2062.42,2264.81],"6-71-22":[94.19,1557.97],"6-71-23":[273.49,1396.87],"5-35-11":[68.85,2428.71],"4-17-5":[-4919.36,2428.71],"3-8-2":[-6708.74,4069.35],"6-71-24":[452.55,1492.56],"6-71-25":[308.29,1368.77],"5-35-12":[27.16,3468.04],"6-71-26":[326.68,1369.26],"6-71-27":[373.83,1499.67],"5-35-13":[121.91,1823.65],"4-17-6":[-3799.02,3468.04],"6-71-28":[371.4,1383.2],"6-71-29":[382.62,1091.79],"5-35-14":[322.1,1743.04],"6-71-30":[291.34,761.73],"6-71-31":[282.28,584.48],"5-35-15":[254.18,872.26],"4-17-7":[-3849.29,2461.39],"3-8-3":[-6405.06,4049.43],"6-71-32":[271.34,592.5],"6-71-33":[253.5,758.09],"5-35-16":[192.31,886.28],"6-71-34":[393.62,1099.25],"6-71-35":[383.62,1385.35],"5-35-17":[339.89,1757.04],"4-17-8":[-26.92,2402.42],"6-71-36":[388.19,1507.74],"6-71-37":[353.84,1380.25],"5-35-18":[178.82,1831.76],"6-71-38":[344.8,1371.66],"6-71-39":[487.74,1497.56],"5-35-19":[175.77,3422.04],"4-17-9":[-59.49,3422.04],"3-8-4":[-5581.84,4000.43],"6-71-40":[291.96,1399.38],"6-71-41":[101.97,1582.99],"5-35-20":[47.81,2505.72],"6-71-42":[-192.85,1667.49],"6-71-43":[-3939.79,2341.81],"5-35-21":[-3939.79,2341.81],"4-17-10":[-3939.79,2505.72],"6-71-44":[-5096.78,1732.68],"6-71-45":[-5096.08,2430.31],"5-35-22":[-5096.78,2430.31],"6-71-46":[-1220.58,2821.28],"6-71-47":[30.14,2550.27],"5-35-23":[-2423.02,2821.28],"4-17-11":[-5096.78,3305.09],"3-8-5":[-5096.78,3919.02],"6-71-48":[31.75,1822.33],"6-71-49":[32.11,2509.12],"5-35-24":[29.84,2509.12],"6-71-50":[33.7,620.24],"6-71-51":[-70.85,335.96],"5-35-25":[-106.87,620.24],"4-17-12":[-106.87,3568.74],"6-71-52":[-218.92,210.85],"6-71-53":[-209.1,157.78],"5-35-26":[-425.67,320.25],"6-71-54":[-161.71,548.2],"6-71-55":[-109.75,820.05],"5-35-27":[-257.87,1949.22],"4-17-13":[-731.98,1949.22],"3-8-6":[-3663.22,4706.54],"6-71-56":[-427.72,1800.79],"6-71-57":[-457.25,2944.43],"5-35-28":[-1496.13,3052.08],"6-71-58":[-482.06,3600.93],"6-71-59":[-266.53,3598.47],"5-35-29":[-482.06,3600.93],"4-17-14":[-2957.29,3600.93],"6-71-60":[-2661.25,3295.33],"6-71-61":[-4172.92,2810.96],"5-35-30":[-4172.92,3295.33],"6-71-62":[-5181.02,2751.92],"6-71-63":[-4390.32,2771.32],"5-35-31":[-5181.02,2771.32],"4-17-15":[-5294.54,3295.33],"3-8-7":[-5524.14,3600.93],"6-72-0":[-1151.65,235.57],"6-72-1":[-1116.99,366.1],"6-72-2":[-1218.03,841.26],"6-72-3":[-155.53,753.17],"6-72-4":[18.55,948.27],"6-72-5":[22.7,1790.98],"6-72-6":[-847.11,2859.42],"6-72-7":[-4432.93,1167.12],"6-72-8":[-5028.12,435.24],"6-72-9":[-5233.47,286.65],"6-72-10":[-5869.59,241.92],"6-72-11":[-6044.56,275.13],"6-72-12":[-6053.24,318.56],"6-72-13":[-5914.13,382.74],"6-72-14":[-5764.94,1998.12],"6-72-15":[-6150.11,2540.92],"6-72-16":[-5652.67,2847.57],"6-72-17":[-5293.94,2950.99],"6-72-18":[-5648.78,2427.62],"6-72-19":[-5036.24,2464.23],"6-72-20":[7.73,2380.96],"6-72-21":[-11.66,1773.15],"6-72-22":[88.27,1869.59],"6-72-23":[289.98,1464.79],"6-72-24":[470.56,1912.86],"6-72-25":[498.02,1340.77],"6-72-26":[593.56,1710.7],"6-72-27":[454.32,3017.52],"6-72-28":[444.14,1527.59],"6-72-29":[442.37,1113.75],"6-72-30":[352.38,786.57],"6-72-31":[319.72,701.62],"6-72-32":[322.07,733.63],"6-72-33":[332.54,807.65],"6-72-34":[430.54,1119.46],"6-72-35":[449.14,1534.31],"6-72-36":[468.39,2938.51],"6-72-37":[634.18,1558.71],"6-72-38":[538.7,1314.77],"6-72-39":[480.56,1888.87],"6-72-40":[305.79,1498.79],"6-72-41":[87.14,1901.6],"6-72-42":[-6.16,1783.15],"6-72-43":[-3410.48,2501.84],"6-72-44":[-4635.36,2392.7],"6-72-45":[-1535.43,2378.1],"6-72-46":[-1546.81,2846.24],"6-72-47":[32.16,2746.21],"6-72-48":[32.45,2472.37],"6-72-49":[32.5,2002.61],"6-72-50":[34.78,369.41],"6-72-51":[30.32,312.78],"6-72-52":[-33.81,268.25],"6-72-53":[-115.27,236.4],"6-72-54":[-93.35,289.52],"6-72-55":[-118.26,410.07],"6-72-56":[-452.6,1137.67],"6-72-57":[-498.31,3236.81],"6-72-58":[-447.32,3666.27],"6-72-59":[-205.86,3666.27],"6-72-60":[-1730.17,3378.93],"6-72-61":[-4033.67,2968.07],"6-72-62":[-5182.3,2779.15],"6-72-63":[-4400.75,2774.31],"6-73-0":[-1098.45,386.48],"6-73-1":[-252.17,589.35],"5-36-0":[-1151.65,589.35],"6-73-2":[-246.65,1025.36],"6-73-3":[23.45,1256.47],"5-36-1":[-1218.03,1256.47],"6-73-4":[23.04,1575.59],"6-73-5":[22,2167.88],"5-36-2":[18.55,2167.88],"6-73-6":[-768.66,2661.08],"6-73-7":[-4274.15,1083.56],"5-36-3":[-4432.93,2859.42],"6-73-8":[-5101.12,559.12],"6-73-9":[-5237.91,398.6],"5-36-4":[-5237.91,559.12],"6-73-10":[-5410.92,258.06],"6-73-11":[-5818.04,338.7],"5-36-5":[-6044.56,338.7],"6-73-12":[-5916.34,371.65],"6-73-13":[-6576.21,309.64],"5-36-6":[-6576.21,382.74],"6-73-14":[-6043.8,1369.76],"6-73-15":[-6226.23,2520.59],"5-36-7":[-6226.23,2540.92],"6-73-16":[-6031.72,1559.76],"6-73-17":[-4388.63,1798.35],"5-36-8":[-6031.72,2950.99],"6-73-18":[-4756.13,2185.74],"6-73-19":[-4900.81,2137.5],"5-36-9":[-5648.78,2464.23],"6-73-20":[-3072.54,2714.39],"6-73-21":[-117.56,3028.87],"5-36-10":[-3072.54,3028.87],"6-73-22":[27.75,1855.23],"6-73-23":[275.3,2052.36],"5-36-11":[27.75,2052.36],"6-73-24":[280.09,1490.96],"6-73-25":[366.24,1373.07],"5-36-12":[280.09,1912.86],"6-73-26":[428.45,2020.89],"6-73-27":[423.73,1615.01],"5-36-13":[423.73,3017.52],"6-73-28":[386.96,1897.94],"6-73-29":[394.88,1695.64],"5-36-14":[386.96,1897.94],"6-73-30":[425.75,1632.25],"6-73-31":[366.87,1474.32],"5-36-15":[319.72,1632.25],"6-73-32":[374.33,1540.39],"6-73-33":[413.29,1685.26],"5-36-16":[322.07,1685.26],"6-73-34":[408.77,1701.66],"6-73-35":[399.36,1902.71],"5-36-17":[399.36,1902.71],"6-73-36":[436.55,1683.01],"6-73-37":[454.43,2005.89],"5-36-18":[436.55,2938.51],"6-73-38":[387.47,1440.16],"6-73-39":[313.56,1496.99],"5-36-19":[313.56,1888.87],"6-73-40":[303.1,2110.34],"6-73-41":[35.21,1898.28],"5-36-20":[35.21,2110.34],"6-73-42":[-115.12,3126.88],"6-73-43":[-3277.96,2790.11],"5-36-21":[-3410.48,3126.88],"6-73-44":[-4410.36,2087.17],"6-73-45":[-1533.08,2111.08],"5-36-22":[-4635.36,2392.7],"6-73-46":[-1407.82,1782.34],"6-73-47":[-132.5,1515.81],"5-36-23":[-1546.81,2846.24],"6-73-48":[-48.96,2476.4],"6-73-49":[33.33,1341.89],"5-36-24":[-48.96,2476.4],"6-73-50":[35.38,302.26],"6-73-51":[30.59,367.74],"5-36-25":[30.32,369.41],"6-73-52":[27.68,312.58],"6-73-53":[-91.02,254.41],"5-36-26":[-115.27,312.58],"6-73-54":[20.07,387],"6-73-55":[-0.77,495.19],"5-36-27":[-118.26,495.19],"6-73-56":[-62.28,1042.73],"6-73-57":[-430.03,3236.81],"5-36-28":[-498.31,3236.81],"6-73-58":[-439.32,3671.29],"6-73-59":[-323.86,3685.99],"5-36-29":[-447.32,3685.99],"6-73-60":[-1858.42,3441.2],"6-73-61":[-4051.29,3024.01],"5-36-30":[-4051.29,3441.2],"6-73-62":[-4957.74,2818.12],"6-73-63":[-4411.94,2780.49],"5-36-31":[-5182.3,2818.12],"6-74-0":[-1236.82,554.52],"6-74-1":[-115.89,808.27],"6-74-2":[22.03,898.1],"6-74-3":[-214.68,1339.53],"6-74-4":[-109.83,1733.48],"6-74-5":[-19.14,1828.63],"6-74-6":[-1043.71,2004.49],"6-74-7":[-4151.29,736.85],"6-74-8":[-5058.32,3219.23],"6-74-9":[-5278.16,401.9],"6-74-10":[-5420.6,523.35],"6-74-11":[-5510.77,314.28],"6-74-12":[-5800,307.64],"6-74-13":[-6626.98,347.09],"6-74-14":[-6537.35,387.19],"6-74-15":[-6142.73,488.72],"6-74-16":[-6021.75,429.54],"6-74-17":[-5675.14,2570.69],"6-74-18":[-5047.31,3075.92],"6-74-19":[-4902.23,3021.97],"6-74-20":[-3976.43,2037.33],"6-74-21":[-2943.73,3474.34],"6-74-22":[11.08,2304.86],"6-74-23":[11.91,2318.87],"6-74-24":[164.06,1564.06],"6-74-25":[187.45,1723.71],"6-74-26":[300.4,1719.44],"6-74-27":[439.11,1802.88],"6-74-28":[346.35,1700.51],"6-74-29":[356.78,2454.65],"6-74-30":[452.9,3419],"6-74-31":[534,5024.49],"6-74-32":[553.03,4938.48],"6-74-33":[461.33,3461],"6-74-34":[382.42,2489.57],"6-74-35":[381.96,1708.52],"6-74-36":[432.19,1881.89],"6-74-37":[298.55,1739.34],"6-74-38":[217.88,1752.71],"6-74-39":[183.38,1623.82],"6-74-40":[18.19,2352.72],"6-74-41":[18.19,2369.87],"6-74-42":[-47.25,3510.35],"6-74-43":[-3200.67,2075.35],"6-74-44":[-4452.12,2962.7],"6-74-45":[-1603.77,2988.35],"6-74-46":[-2119.52,2510.29],"6-74-47":[-2188.57,416.42],"6-74-48":[-230.72,445.51],"6-74-49":[35.21,379.33],"6-74-50":[35.5,351.6],"6-74-51":[31.79,306.62],"6-74-52":[29.44,332.57],"6-74-53":[-27.17,205.8],"6-74-54":[20.92,394.56],"6-74-55":[18.14,656.54],"6-74-56":[-392.13,716.25],"6-74-57":[-410.17,2976.87],"6-74-58":[-426.08,3667.35],"6-74-59":[-338.34,3732.45],"6-74-60":[-1620.83,3510.17],"6-74-61":[-4272.22,3119.66],"6-74-62":[-4960.26,2893.13],"6-74-63":[-4388.84,2805.44],"6-75-0":[-1220.82,637.81],"6-75-1":[18.94,947.66],"5-37-0":[-1236.82,947.66],"6-75-2":[21.42,1165.87],"6-75-3":[-335.37,1205.39],"5-37-1":[-335.37,1339.53],"4-18-0":[-1236.82,1339.53],"6-75-4":[-108.22,1531.11],"6-75-5":[17.26,1406.61],"5-37-2":[-109.83,1828.63],"6-75-6":[-680,2529.86],"6-75-7":[-3764.21,1181.22],"5-37-3":[-4151.29,2529.86],"4-18-1":[-4432.93,2859.42],"6-75-8":[-4934.93,712.47],"6-75-9":[-5173.02,4110.39],"5-37-4":[-5278.16,4110.39],"6-75-10":[-5338.72,318.43],"6-75-11":[-5582.3,357.76],"5-37-5":[-5582.3,523.35],"4-18-2":[-6044.56,4110.39],"6-75-12":[-5891.33,313.84],"6-75-13":[-5966.26,252.12],"5-37-6":[-6626.98,347.09],"6-75-14":[-6187.44,293.98],"6-75-15":[-5647.59,195.69],"5-37-7":[-6537.35,488.72],"4-18-3":[-6626.98,2540.92],"6-75-16":[-6289.49,673.31],"6-75-17":[-6185.21,2438.12],"5-37-8":[-6289.49,2570.69],"6-75-18":[-5007.04,3012.55],"6-75-19":[-4544.81,2342.54],"5-37-9":[-5047.31,3075.92],"4-18-4":[-6289.49,3075.92],"6-75-20":[-4169.53,223.67],"6-75-21":[-3183.61,1970.91],"5-37-10":[-4169.53,3474.34],"6-75-22":[-1688.18,2002.31],"6-75-23":[-207.39,1362.61],"5-37-11":[-1688.18,2318.87],"4-18-5":[-4169.53,3474.34],"6-75-24":[65.06,2320.42],"6-75-25":[91.67,2518.28],"5-37-12":[65.06,2518.28],"6-75-26":[104.79,1669.47],"6-75-27":[352.02,1809.35],"5-37-13":[104.79,1809.35],"4-18-6":[65.06,3017.52],"6-75-28":[354.16,2864.49],"6-75-29":[356.57,2398.3],"5-37-14":[346.35,2864.49],"6-75-30":[389.82,3166.22],"6-75-31":[594.3,2060.9],"5-37-15":[389.82,5024.49],"4-18-7":[319.72,5024.49],"6-75-32":[585.06,2012.4],"6-75-33":[416.69,3105.21],"5-37-16":[416.69,4938.48],"6-75-34":[392.48,2443.31],"6-75-35":[382.84,2943.5],"5-37-17":[381.96,2943.5],"4-18-8":[322.07,4938.48],"6-75-36":[378.03,1864.36],"6-75-37":[93.22,1716.39],"5-37-18":[93.22,1881.89],"6-75-38":[74.67,2583.3],"6-75-39":[57.48,2427.44],"5-37-19":[57.48,2583.3],"4-18-9":[57.48,2938.51],"6-75-40":[-242.83,1442.62],"6-75-41":[-91.25,2018.31],"5-37-20":[-242.83,2369.87],"6-75-42":[-83.43,1989.17],"6-75-43":[-2707.91,240.08],"5-37-21":[-3200.67,3510.35],"4-18-10":[-3410.48,3510.35],"6-75-44":[-2823.85,2320.44],"6-75-45":[-1210.6,2953.57],"5-37-22":[-4452.12,2988.35],"6-75-46":[-2177.38,2379.21],"6-75-47":[-2265.89,699.95],"5-37-23":[-2265.89,2510.29],"4-18-11":[-4635.36,2988.35],"6-75-48":[-215.43,194.97],"6-75-49":[-173.62,295.62],"5-37-24":[-230.72,445.51],"6-75-50":[36.6,248.97],"6-75-51":[34.25,310.31],"5-37-25":[31.79,351.6],"4-18-12":[-230.72,2476.4],"6-75-52":[30.27,360.14],"6-75-53":[-41.42,701.92],"5-37-26":[-41.42,701.92],"6-75-54":[20.79,428.74],"6-75-55":[-121.89,777.04],"5-37-27":[-121.89,777.04],"4-18-13":[-121.89,777.04],"6-75-56":[-384.7,1213.92],"6-75-57":[-447.71,2787.68],"5-37-28":[-447.71,2976.87],"6-75-58":[-375.05,3670.33],"6-75-59":[-331.06,3745.57],"5-37-29":[-426.08,3745.57],"4-18-14":[-498.31,3745.57],"6-75-60":[-1033.03,3590.97],"6-75-61":[-4324.73,3236.16],"5-37-30":[-4324.73,3590.97],"6-75-62":[-4687.77,2971.57],"6-75-63":[-4404.37,2839.82],"5-37-31":[-4960.26,2971.57],"4-18-15":[-5182.3,3590.97],"6-76-0":[-1100.37,787.46],"6-76-1":[18.88,1369.31],"6-76-2":[20.05,1230.96],"6-76-3":[-173.13,1383.91],"6-76-4":[15.48,1488.42],"6-76-5":[14.03,1534.77],"6-76-6":[-164.43,2313.76],"6-76-7":[-3852.41,1139.05],"6-76-8":[-4903.69,538.64],"6-76-9":[-5169.28,306.08],"6-76-10":[-5362.81,316.75],"6-76-11":[-5483.38,357.69],"6-76-12":[-5573.62,332.1],"6-76-13":[-5588.1,291.25],"6-76-14":[-5682.31,251.97],"6-76-15":[-5514.79,721.64],"6-76-16":[-5255.82,1541.99],"6-76-17":[-5815.38,2603.85],"6-76-18":[-6277.37,3897.68],"6-76-19":[-5944.74,3093.99],"6-76-20":[-4889.87,2689.12],"6-76-21":[-3229.67,2516.84],"6-76-22":[-2487.96,2262.38],"6-76-23":[-2603.95,1972.68],"6-76-24":[-2073.83,2173.07],"6-76-25":[-93.96,1794.5],"6-76-26":[28.49,2849.88],"6-76-27":[217.45,2729.65],"6-76-28":[235.12,3267.45],"6-76-29":[230.59,3342.07],"6-76-30":[309.01,3564.01],"6-76-31":[236.85,4305.91],"6-76-32":[258.3,4251.91],"6-76-33":[330.21,3634.02],"6-76-34":[206.1,3310.07],"6-76-35":[230.19,3133.45],"6-76-36":[-18.37,2712.65],"6-76-37":[7.99,2969.88],"6-76-38":[-27.14,1841.51],"6-76-39":[-90.16,2064.08],"6-76-40":[-2173.17,1805.67],"6-76-41":[-2277.59,2225.38],"6-76-42":[-1756.08,2563.86],"6-76-43":[-2149.83,2801.7],"6-76-44":[-2247.85,3074.25],"6-76-45":[-318.31,3812.51],"6-76-46":[-2278.18,2525.74],"6-76-47":[-2641.23,1537.39],"6-76-48":[-60.34,737.51],"6-76-49":[-15.68,250.51],"6-76-50":[5.94,290.32],"6-76-51":[36.06,326.5],"6-76-52":[32.25,359.97],"6-76-53":[20.17,425.42],"6-76-54":[0.26,323.5],"6-76-55":[-203.89,540.75],"6-76-56":[-284.94,1400],"6-76-57":[-321.47,2930.46],"6-76-58":[-321.94,3670.26],"6-76-59":[-308.26,3781.61],"6-76-60":[-353.67,3628.25],"6-76-61":[-4071.22,3346.55],"6-76-62":[-5122.48,3092.47],"6-76-63":[-4415.19,2876.01],"6-77-0":[-1124.35,1055.36],"6-77-1":[18.74,1392.41],"5-38-0":[-1124.35,1392.41],"6-77-2":[19.64,1229.3],"6-77-3":[-94.34,1373.41],"5-38-1":[-173.13,1383.91],"6-77-4":[12.81,1634.75],"6-77-5":[12.61,1743.61],"5-38-2":[12.61,1743.61],"6-77-6":[-352.38,1813.53],"6-77-7":[-4089.95,676.92],"5-38-3":[-4089.95,2313.76],"6-77-8":[-4882.69,352.95],"6-77-9":[-5215.5,366.87],"5-38-4":[-5215.5,538.64],"6-77-10":[-5498.32,327.96],"6-77-11":[-5772.44,306.61],"5-38-5":[-5772.44,357.69],"6-77-12":[-5701.29,311.33],"6-77-13":[-5196.38,300.03],"5-38-6":[-5701.29,332.1],"6-77-14":[-5259.29,375.52],"6-77-15":[-4338.29,1214.51],"5-38-7":[-5682.31,1214.51],"6-77-16":[-4941.4,1062.09],"6-77-17":[-5667.66,3382.16],"5-38-8":[-5815.38,3382.16],"6-77-18":[-5914.86,3297.16],"6-77-19":[-5911.63,2377.57],"5-38-9":[-6277.37,3897.68],"6-77-20":[-5580.5,1781.74],"6-77-21":[-5357.43,1378.43],"5-38-10":[-5580.5,2689.12],"6-77-22":[-5016.07,2032.54],"6-77-23":[-4117.39,2355.84],"5-38-11":[-5016.07,2355.84],"6-77-24":[-3411.94,2168.09],"6-77-25":[-2838.58,2735.56],"5-38-12":[-3411.94,2735.56],"6-77-26":[-70.43,3016.69],"6-77-27":[82.06,4526.44],"5-38-13":[-70.43,4526.44],"6-77-28":[-83.3,4259.18],"6-77-29":[-358.33,4177.49],"5-38-14":[-358.33,4259.18],"6-77-30":[-934.21,5793.53],"6-77-31":[142.08,4892.29],"5-38-15":[-934.21,5793.53],"6-77-32":[136.09,5158.31],"6-77-33":[-45.68,5869.55],"5-38-16":[-45.68,5869.55],"6-77-34":[-49.58,4123.49],"6-77-35":[-48.06,4205.18],"5-38-17":[-49.58,4205.18],"6-77-36":[-18.95,4458.44],"6-77-37":[-438.11,2927.68],"5-38-18":[-438.11,4458.44],"6-77-38":[-2829.96,2650.56],"6-77-39":[-2796.31,2037.87],"5-38-19":[-2829.96,2650.56],"6-77-40":[-2472.44,2270.84],"6-77-41":[-1743.75,2075.54],"5-38-20":[-2472.44,2270.84],"6-77-42":[9.2,1378.06],"6-77-43":[15.55,1800.57],"5-38-21":[-2149.83,2801.7],"6-77-44":[24.23,2378.7],"6-77-45":[27.4,3201.77],"5-38-22":[-2247.85,3812.51],"6-77-46":[-2116.73,3332.16],"6-77-47":[-2192.81,1046.56],"5-38-23":[-2641.23,3332.16],"6-77-48":[-40.14,1277.56],"6-77-49":[42.15,369.81],"5-38-24":[-60.34,1277.56],"6-77-50":[-102.73,298.77],"6-77-51":[38.18,305.31],"5-38-25":[-102.73,326.5],"6-77-52":[33.28,305.57],"6-77-53":[29.46,331.34],"5-38-26":[20.17,425.42],"6-77-54":[-0.19,369.05],"6-77-55":[-189.27,356.35],"5-38-27":[-203.89,540.75],"6-77-56":[-235.14,1400],"6-77-57":[-372.29,3035.01],"5-38-28":[-372.29,3035.01],"6-77-58":[-287.74,3670.15],"6-77-59":[-274.5,3814.29],"5-38-29":[-321.94,3814.29],"6-77-60":[-469.71,3652.21],"6-77-61":[-3993.76,3460.18],"5-38-30":[-4071.22,3652.21],"6-77-62":[-5243.84,3182.27],"6-77-63":[-4424.23,2907.97],"5-38-31":[-5243.84,3182.27],"6-78-0":[-970.38,939.18],"6-78-1":[18.5,1250.32],"6-78-2":[-30.99,1167.04],"6-78-3":[14.08,1218.6],"6-78-4":[10.33,1687.01],"6-78-5":[8.69,1466.36],"6-78-6":[-400.01,1386.1],"6-78-7":[-3581.29,518.66],"6-78-8":[-4793.25,314.82],"6-78-9":[-5180.83,268.49],"6-78-10":[-5348.63,286.2],"6-78-11":[-5412.25,279.53],"6-78-12":[-4944.88,258.22],"6-78-13":[-4186.19,248.68],"6-78-14":[-4793.25,340.26],"6-78-15":[-4143.61,680.41],"6-78-16":[-5893.98,3881.85],"6-78-17":[-4967.62,3918.41],"6-78-18":[-5507.69,3209.2],"6-78-19":[-5894.31,1446.37],"6-78-20":[-5402.84,949.71],"6-78-21":[-5248.75,1047.17],"6-78-22":[-4866.76,1974.55],"6-78-23":[-4208.66,2149.19],"6-78-24":[-4061.47,2651.93],"6-78-25":[-3288.6,2755.96],"6-78-26":[-3098.02,3297.68],"6-78-27":[-3315.48,3970.6],"6-78-28":[-3578.64,3839.48],"6-78-29":[-3580.79,4373.18],"6-78-30":[-3657.85,1692.99],"6-78-31":[-3167.58,881.98],"6-78-32":[-77.85,835.18],"6-78-33":[-77.15,1678.99],"6-78-34":[-74.93,4326.17],"6-78-35":[-67.51,3769.59],"6-78-36":[-130.64,3880.6],"6-78-37":[-2000.23,3253.67],"6-78-38":[-2030.7,2669.71],"6-78-39":[-711.3,2607.92],"6-78-40":[-3.87,2060.19],"6-78-41":[3.4,2044.8],"6-78-42":[8.86,1048.06],"6-78-43":[15.8,951.21],"6-78-44":[24.72,1433.82],"6-78-45":[29.26,3156.2],"6-78-46":[-2024.01,3821.45],"6-78-47":[-2001.31,3842.94],"6-78-48":[-74.88,677.36],"6-78-49":[11.18,337.93],"6-78-50":[45.44,248.74],"6-78-51":[40.21,253.02],"6-78-52":[34.91,285.29],"6-78-53":[31.4,287.71],"6-78-54":[-3.31,270.42],"6-78-55":[-81.06,316.21],"6-78-56":[-257.78,1829.25],"6-78-57":[-388.9,3049.46],"6-78-58":[-347.69,3654.4],"6-78-59":[-343.6,3814.29],"6-78-60":[-573.3,3676.48],"6-78-61":[-3981.03,3515.55],"6-78-62":[-5253.05,3278.24],"6-78-63":[-4405.8,2956.72],"6-79-0":[-613.35,1108.07],"6-79-1":[-682.84,1001.69],"5-39-0":[-970.38,1250.32],"6-79-2":[-353.21,781.43],"6-79-3":[-157.61,1344.7],"5-39-1":[-353.21,1344.7],"4-19-0":[-1124.35,1392.41],"6-79-4":[-36.17,1629.79],"6-79-5":[7.69,1296.92],"5-39-2":[-36.17,1687.01],"6-79-6":[-355.26,1171.38],"6-79-7":[-2386.01,1544.08],"5-39-3":[-3581.29,1544.08],"4-19-1":[-4089.95,2313.76],"3-9-0":[-4432.93,2859.42],"6-79-8":[-4562.76,224],"6-79-9":[-5148.85,273.71],"5-39-4":[-5180.83,314.82],"6-79-10":[-5415.85,309.09],"6-79-11":[-5462.34,297.07],"5-39-5":[-5462.34,309.09],"4-19-2":[-5772.44,538.64],"6-79-12":[-5180.01,294.44],"6-79-13":[-4272.35,291.7],"5-39-6":[-5180.01,294.44],"6-79-14":[-5007.92,260.4],"6-79-15":[-4145.05,476.12],"5-39-7":[-5007.92,680.41],"4-19-3":[-5701.29,1214.51],"3-9-1":[-6626.98,4110.39],"2-4-0":[-7020.16,4840.9],"6-79-16":[-5156.24,5616.16],"6-79-17":[-5348.51,5133.37],"5-39-8":[-5893.98,5616.16],"6-79-18":[-4972.35,4058.15],"6-79-19":[-4829.8,3448.78],"5-39-9":[-5894.31,4058.15],"4-19-4":[-6277.37,5616.16],"6-79-20":[-4587.19,377.37],"6-79-21":[-4872.25,790.42],"5-39-10":[-5402.84,1047.17],"6-79-22":[-4701.53,1407.05],"6-79-23":[-4057.57,1499.62],"5-39-11":[-4866.76,2149.19],"4-19-5":[-5580.5,2689.12],"3-9-2":[-6289.49,5616.16],"6-79-24":[-3209.08,1721.97],"6-79-25":[-2548.5,2990.34],"5-39-12":[-4061.47,2990.34],"6-79-26":[-3723.11,3647.39],"6-79-27":[-3701.88,3223.81],"5-39-13":[-3723.11,3970.6],"4-19-6":[-4061.47,4526.44],"6-79-28":[-4216.96,3002.22],"6-79-29":[-4531.33,1451.56],"5-39-14":[-4531.33,4373.18],"6-79-30":[-4682.65,913.05],"6-79-31":[-4288.31,587.03],"5-39-15":[-4682.65,1692.99],"4-19-7":[-4682.65,5793.53],"3-9-3":[-4682.65,5793.53],"2-4-1":[-6708.74,5793.53],"6-79-32":[-3596.12,522.02],"6-79-33":[-86.64,869.52],"5-39-16":[-3596.12,1678.99],"6-79-34":[-81.84,1423.53],"6-79-35":[-1528.24,2909.22],"5-39-17":[-1528.24,4326.17],"4-19-8":[-3596.12,5869.55],"6-79-36":[-1674.39,3169.82],"6-79-37":[-933.73,3564.38],"5-39-18":[-2000.23,3880.6],"6-79-38":[-93.44,2963.33],"6-79-39":[-68.11,1691.97],"5-39-19":[-2030.7,2963.33],"4-19-9":[-2829.96,4458.44],"3-9-4":[-3596.12,5869.55],"6-79-40":[-18.99,1441.6],"6-79-41":[-12.01,1436.47],"5-39-20":[-18.99,2060.19],"6-79-42":[8.42,786.4],"6-79-43":[7.66,379.51],"5-39-21":[7.66,1048.06],"4-19-10":[-2472.44,2801.7],"6-79-44":[24.72,3388.51],"6-79-45":[31.3,4034.49],"5-39-22":[24.72,4034.49],"6-79-46":[30.84,5065.49],"6-79-47":[39.44,5582.77],"5-39-23":[-2024.01,5582.77],"4-19-11":[-2641.23,5582.77],"3-9-5":[-4635.36,5582.77],"2-4-2":[-5581.84,5869.55],"6-79-48":[-6.88,476.03],"6-79-49":[-45.43,262.45],"5-39-24":[-74.88,677.36],"6-79-50":[45.58,287.29],"6-79-51":[40.61,298.27],"5-39-25":[40.21,298.27],"4-19-12":[-102.73,1277.56],"6-79-52":[35.82,293.08],"6-79-53":[31.85,306.15],"5-39-26":[31.4,306.15],"6-79-54":[11.02,265.84],"6-79-55":[-22.65,224.63],"5-39-27":[-81.06,316.21],"4-19-13":[-203.89,540.75],"3-9-6":[-230.72,2476.4],"6-79-56":[-132.5,2238.4],"6-79-57":[-376.73,3044.79],"5-39-28":[-388.9,3049.46],"6-79-58":[-382.68,3633.13],"6-79-59":[-360.54,3703.54],"5-39-29":[-382.68,3814.29],"4-19-14":[-388.9,3814.29],"6-79-60":[-487.25,3739.77],"6-79-61":[-3962.4,3596.54],"5-39-30":[-3981.03,3739.77],"6-79-62":[-5147.9,3326.45],"6-79-63":[-4431.66,2985.88],"5-39-31":[-5253.05,3326.45],"4-19-15":[-5253.05,3739.77],"3-9-7":[-5253.05,3814.29],"2-4-3":[-5524.14,4706.54],"6-80-0":[-607.91,1052.02],"6-80-1":[-695.37,916.87],"6-80-2":[-313.43,688.23],"6-80-3":[-506.03,1590.08],"6-80-4":[-302.45,1299.84],"6-80-5":[-41.81,1102.37],"6-80-6":[-257.53,933.24],"6-80-7":[-884.89,1429.72],"6-80-8":[-4242.68,436.57],"6-80-9":[-5126.54,285.08],"6-80-10":[-5387.21,302.02],"6-80-11":[-5405.84,248.97],"6-80-12":[-5239.46,347.27],"6-80-13":[-4483.75,372.83],"6-80-14":[-5189.69,355.61],"6-80-15":[-3747.5,115.89],"6-80-16":[-3686.91,4485.88],"6-80-17":[-5781.09,4116.85],"6-80-18":[-5034.39,4577.24],"6-80-19":[-4691.4,3588.07],"6-80-20":[-4381.02,2783.91],"6-80-21":[-3952.44,444.94],"6-80-22":[-4308.52,925.69],"6-80-23":[-3977.26,1950.83],"6-80-24":[1.69,2559.62],"6-80-25":[11.6,2551.64],"6-80-26":[-3601.77,2444.71],"6-80-27":[-4091.03,2493.24],"6-80-28":[-4677.41,2422.23],"6-80-29":[-4881.94,1006.97],"6-80-30":[-4951.46,501.55],"6-80-31":[-4954.17,235.87],"6-80-32":[-4709.84,231.65],"6-80-33":[-3470.76,497.87],"6-80-34":[-87.49,977.44],"6-80-35":[-1955.8,2394.22],"6-80-36":[-4238.65,2432.86],"6-80-37":[-52.79,2399.7],"6-80-38":[-3.35,2631.65],"6-80-39":[-45.58,2635.66],"6-80-40":[-13.4,1977.92],"6-80-41":[3.13,907.5],"6-80-42":[-48.51,443.94],"6-80-43":[-13.11,2710.9],"6-80-44":[27.43,3527.05],"6-80-45":[35.59,4482.23],"6-80-46":[-2.1,3994.84],"6-80-47":[-76.02,4318.89],"6-80-48":[-36.78,116.54],"6-80-49":[-45.44,351.6],"6-80-50":[4.21,362.82],"6-80-51":[40.48,339.43],"6-80-52":[35.29,243.79],"6-80-53":[31.46,421.25],"6-80-54":[28.44,286.08],"6-80-55":[-16.19,572.15],"6-80-56":[-122.56,2427.48],"6-80-57":[-344.52,3127.78],"6-80-58":[-354.02,3590.93],"6-80-59":[-359.54,3615.32],"6-80-60":[-594.45,3741.77],"6-80-61":[-3969.31,3655.25],"6-80-62":[-5188.16,3360.65],"6-80-63":[-4417.84,3013.02],"6-81-0":[-445.47,790.85],"6-81-1":[-579.87,425.58],"5-40-0":[-695.37,1052.02],"6-81-2":[-242.37,1171.88],"6-81-3":[-234.37,703.61],"5-40-1":[-506.03,1590.08],"6-81-4":[-375.85,887.16],"6-81-5":[-161.15,1045.3],"5-40-2":[-375.85,1299.84],"6-81-6":[-62.37,1221.56],"6-81-7":[-1167.31,1508.82],"5-40-3":[-1167.31,1508.82],"6-81-8":[-4170.54,1226.45],"6-81-9":[-5147.46,477.07],"5-40-4":[-5147.46,1226.45],"6-81-10":[-5384.89,275.89],"6-81-11":[-5567.68,298.46],"5-40-5":[-5567.68,302.02],"6-81-12":[-5556.1,367.95],"6-81-13":[-5033.22,377.5],"5-40-6":[-5556.1,377.5],"6-81-14":[-5015.18,65.52],"6-81-15":[-4002.56,841.67],"5-40-7":[-5189.69,841.67],"6-81-16":[-3685,748.23],"6-81-17":[-4092.46,4455.71],"5-40-8":[-5781.09,4485.88],"6-81-18":[-4444.4,4802.09],"6-81-19":[-4794.15,3898.23],"5-40-9":[-5034.39,4802.09],"6-81-20":[-5198.95,4173.89],"6-81-21":[-5598.2,2032.48],"5-40-10":[-5598.2,4173.89],"6-81-22":[-5621.37,483.61],"6-81-23":[-5224.64,539.09],"5-40-11":[-5621.37,1950.83],"6-81-24":[-5022.02,1587.94],"6-81-25":[-4903.94,1702.56],"5-40-12":[-5022.02,2559.62],"6-81-26":[-3390.66,2723.38],"6-81-27":[-4200.55,2795.35],"5-40-13":[-4200.55,2795.35],"6-81-28":[-5482.93,1996.26],"6-81-29":[-5374.08,846.67],"5-40-14":[-5482.93,2422.23],"6-81-30":[-5361.33,410.82],"6-81-31":[-5223.91,-46.62],"5-40-15":[-5361.33,501.55],"6-81-32":[-5354.28,-45.29],"6-81-33":[-5202.96,382.82],"5-40-16":[-5354.28,497.87],"6-81-34":[-4772.87,840.63],"6-81-35":[-1909.66,1978.24],"5-40-17":[-4772.87,2394.22],"6-81-36":[-4295.27,2866.35],"6-81-37":[-2474.56,2817.4],"5-40-18":[-4295.27,2866.35],"6-81-38":[-37.94,1755.56],"6-81-39":[-49.87,1687.3],"5-40-19":[-49.87,2635.66],"6-81-40":[-57.71,536.44],"6-81-41":[-101.18,464.66],"5-40-20":[-101.18,1977.92],"6-81-42":[-87.87,1944.41],"6-81-43":[-12.99,4091.88],"5-40-21":[-87.87,4091.88],"6-81-44":[27.43,3768.23],"6-81-45":[-1031.88,4731.09],"5-40-22":[-1031.88,4731.09],"6-81-46":[-918.65,4364.68],"6-81-47":[-755.34,705.21],"5-40-23":[-918.65,4364.68],"6-81-48":[-47.43,895.68],"6-81-49":[-43.18,90.78],"5-40-24":[-47.43,895.68],"6-81-50":[2.4,372.49],"6-81-51":[21.02,334.11],"5-40-25":[2.4,372.49],"6-81-52":[33.96,288.46],"6-81-53":[30.7,269.64],"5-40-26":[30.7,421.25],"6-81-54":[28.32,478.06],"6-81-55":[3.1,1099.75],"5-40-27":[-16.19,1099.75],"6-81-56":[-100.26,2482.8],"6-81-57":[-290.32,3161.72],"5-40-28":[-344.52,3161.72],"6-81-58":[-314.37,3513.33],"6-81-59":[-375.95,3613.49],"5-40-29":[-375.95,3615.32],"6-81-60":[-590.56,3745.47],"6-81-61":[-3970.26,3699.75],"5-40-30":[-3970.26,3745.47],"6-81-62":[-5105.72,3382.27],"6-81-63":[-4656.2,3034.71],"5-40-31":[-5188.16,3382.27],"6-82-0":[-599.47,1070.76],"6-82-1":[-348.88,540.96],"6-82-2":[-38.22,899.07],"6-82-3":[-212.45,846.93],"6-82-4":[-648.98,789.11],"6-82-5":[1.27,1323.62],"6-82-6":[-313.5,1189.76],"6-82-7":[-260.3,2246.69],"6-82-8":[-3969.17,1587.85],"6-82-9":[-5168.42,441.34],"6-82-10":[-5365.38,321.16],"6-82-11":[-5536.76,337.16],"6-82-12":[-5534.93,384.64],"6-82-13":[-4880.9,320.68],"6-82-14":[-4736.9,173.57],"6-82-15":[-3958,982.13],"6-82-16":[-4319.35,522.27],"6-82-17":[-4720.05,294.16],"6-82-18":[-6332.17,3417.02],"6-82-19":[-6279.16,5595.76],"6-82-20":[-5617.22,4411.42],"6-82-21":[-5768.11,4366.48],"6-82-22":[-5860.36,1761.32],"6-82-23":[-5726.87,170.47],"6-82-24":[-5743.21,274.33],"6-82-25":[-5255.34,1114.62],"6-82-26":[-4888.06,1466.69],"6-82-27":[-5072.73,1380.57],"6-82-28":[-5232.44,723.52],"6-82-29":[-5364.53,27.68],"6-82-30":[-5545.23,11.01],"6-82-31":[-5332.59,-49.03],"6-82-32":[-5272.06,-45.11],"6-82-33":[-5358.16,-10.81],"6-82-34":[-5287.25,5.08],"6-82-35":[-5185.25,703.52],"6-82-36":[-5425.29,1352.56],"6-82-37":[-5630.71,1423.68],"6-82-38":[-35.86,1084.1],"6-82-39":[-24.06,227.43],"6-82-40":[-103.37,153.45],"6-82-41":[-202.87,1732.32],"6-82-42":[-86.69,4285.49],"6-82-43":[16.23,4287.41],"6-82-44":[-28.43,5494.75],"6-82-45":[-1068.46,3402],"6-82-46":[-987.88,286.16],"6-82-47":[-578.39,474.26],"6-82-48":[-51.84,1115.13],"6-82-49":[-50.16,171.52],"6-82-50":[-1.25,299.67],"6-82-51":[36.22,375.64],"6-82-52":[33.96,329.16],"6-82-53":[30.52,319.15],"6-82-54":[28.32,438.32],"6-82-55":[5.56,1774.62],"6-82-56":[-124.12,2729.04],"6-82-57":[-198.79,3157.08],"6-82-58":[-295.24,3362.16],"6-82-59":[-353.36,3614.29],"6-82-60":[-539.75,3772.23],"6-82-61":[-3953.55,3728.18],"6-82-62":[-5186.27,3397.85],"6-82-63":[-4702.29,3048.46],"6-83-0":[-564.45,1069.71],"6-83-1":[-153.79,796.8],"5-41-0":[-599.47,1070.76],"6-83-2":[15.31,951.14],"6-83-3":[-113.51,904.5],"5-41-1":[-212.45,951.14],"4-20-0":[-695.37,1590.08],"6-83-4":[-485.6,1019.15],"6-83-5":[-11.14,1503.33],"5-41-2":[-648.98,1503.33],"6-83-6":[-272.38,1230.82],"6-83-7":[-311.37,1993.91],"5-41-3":[-313.5,2246.69],"4-20-1":[-1167.31,2246.69],"6-83-8":[-4634.74,1908.12],"6-83-9":[-5125.14,331.03],"5-41-4":[-5168.42,1908.12],"6-83-10":[-5243.09,350.47],"6-83-11":[-5406.52,469.81],"5-41-5":[-5536.76,469.81],"4-20-2":[-5567.68,1908.12],"6-83-12":[-5439.07,476.59],"6-83-13":[-5360.87,627.4],"5-41-6":[-5534.93,627.4],"6-83-14":[-4630.33,323.7],"6-83-15":[-4323.21,232.09],"5-41-7":[-4736.9,982.13],"4-20-3":[-5556.1,982.13],"6-83-16":[-4496.34,321.64],"6-83-17":[-4885.79,1858.17],"5-41-8":[-4885.79,1858.17],"6-83-18":[-5123.35,3878.24],"6-83-19":[-6718.3,3814.01],"5-41-9":[-6718.3,5595.76],"4-20-4":[-6718.3,5595.76],"6-83-20":[-6774,4034.31],"6-83-21":[-6839.22,3448.75],"5-41-10":[-6839.22,4411.42],"6-83-22":[-5620.75,2931.28],"6-83-23":[-5595.05,1395.64],"5-41-11":[-5860.36,2931.28],"4-20-5":[-6839.22,4411.42],"6-83-24":[-5025.44,2920.56],"6-83-25":[-5267.5,1727.17],"5-41-12":[-5743.21,2920.56],"6-83-26":[-5123.87,1060.42],"6-83-27":[-5029.91,1466.16],"5-41-13":[-5123.87,1466.69],"4-20-6":[-5743.21,2920.56],"6-83-28":[-5508.98,-44.27],"6-83-29":[-4389.05,214.21],"5-41-14":[-5508.98,723.52],"6-83-30":[-4357.02,782.79],"6-83-31":[-5137.86,-50.21],"5-41-15":[-5545.23,782.79],"4-20-7":[-5545.23,2422.23],"6-83-32":[-5314.12,-46.38],"6-83-33":[-5614.7,862.8],"5-41-16":[-5614.7,862.8],"6-83-34":[-5577.79,-10.47],"6-83-35":[-5182.77,-31.32],"5-41-17":[-5577.79,703.52],"4-20-8":[-5614.7,2394.22],"6-83-36":[-4511.57,1412.17],"6-83-37":[-3831.85,1030.52],"5-41-18":[-5630.71,1423.68],"6-83-38":[-3585.77,1700.21],"6-83-39":[-27.02,3059.56],"5-41-19":[-3585.77,3059.56],"4-20-9":[-5630.71,3059.56],"6-83-40":[-134.31,1310.57],"6-83-41":[-191.43,2787.3],"5-41-20":[-202.87,2787.3],"6-83-42":[7.73,3357.26],"6-83-43":[16.98,3964.31],"5-41-21":[-86.69,4287.41],"4-20-10":[-202.87,4287.41],"6-83-44":[26.42,3759],"6-83-45":[-63.56,3836.25],"5-41-22":[-1068.46,5494.75],"6-83-46":[-60.94,1827.16],"6-83-47":[-114.1,314.63],"5-41-23":[-987.88,1827.16],"4-20-11":[-1068.46,5494.75],"6-83-48":[-83.21,231.08],"6-83-49":[-35.06,320.69],"5-41-24":[-83.21,1115.13],"6-83-50":[40.86,616.39],"6-83-51":[37.02,459.58],"5-41-25":[-1.25,616.39],"4-20-12":[-83.21,1115.13],"6-83-52":[33.5,442.85],"6-83-53":[30.59,339.47],"5-41-26":[30.52,442.85],"6-83-54":[28.68,337.03],"6-83-55":[18.67,2242.91],"5-41-27":[5.56,2242.91],"4-20-13":[-16.19,2242.91],"6-83-56":[-158.29,2841.08],"6-83-57":[-247.05,3100.22],"5-41-28":[-247.05,3157.08],"6-83-58":[-252.23,3161.67],"6-83-59":[-384,3541.02],"5-41-29":[-384,3614.29],"4-20-14":[-384,3615.32],"6-83-60":[-572.12,3807.22],"6-83-61":[-3879.34,3762.75],"5-41-30":[-3953.55,3807.22],"6-83-62":[-4903.55,3423.55],"6-83-63":[-4589.93,3056.25],"5-41-31":[-5186.27,3423.55],"4-20-15":[-5188.16,3807.22],"6-84-0":[-462.49,582.84],"6-84-1":[-328.81,1037.36],"6-84-2":[14.45,1081.68],"6-84-3":[-387.99,886.04],"6-84-4":[-216.46,1023.47],"6-84-5":[-70.1,1436.73],"6-84-6":[-103.35,1295.71],"6-84-7":[-303.02,1934.97],"6-84-8":[-4182.74,1250.98],"6-84-9":[-4917.61,1096.24],"6-84-10":[-5110.65,1512.31],"6-84-11":[-5270.52,975.89],"6-84-12":[-5290.16,1624.4],"6-84-13":[-5400.11,1020.66],"6-84-14":[-4894.48,630.85],"6-84-15":[-4745.05,381.12],"6-84-16":[-4987.2,265.27],"6-84-17":[-5281.48,292.44],"6-84-18":[-5836.1,3050.69],"6-84-19":[-5818.9,3289.8],"6-84-20":[-6578.1,3513.08],"6-84-21":[-5878.98,4466.14],"6-84-22":[-6534.79,3206.24],"6-84-23":[-5720.73,2955.44],"6-84-24":[-5516.96,1006.29],"6-84-25":[-4756.9,187.1],"6-84-26":[-4678.6,-35.61],"6-84-27":[-4654.95,-39.16],"6-84-28":[-4518.41,-28.72],"6-84-29":[-4208.2,213.94],"6-84-30":[-4538.58,-42.82],"6-84-31":[-4857.68,-53.64],"6-84-32":[-5394.31,-44.62],"6-84-33":[-5613.24,-41.47],"6-84-34":[-5297.8,-15.91],"6-84-35":[-5101.96,-11.7],"6-84-36":[-5499.36,-25.08],"6-84-37":[-4713.67,-16.99],"6-84-38":[-4301.04,185.08],"6-84-39":[-2980.26,961.28],"6-84-40":[-3378.52,2918.44],"6-84-41":[-1151.89,3127.26],"6-84-42":[7.34,4351.1],"6-84-43":[17.48,3400.07],"6-84-44":[21.66,3212.8],"6-84-45":[6.6,2997.69],"6-84-46":[-102.22,286.43],"6-84-47":[-22.51,261.98],"6-84-48":[-26.82,374.17],"6-84-49":[39.19,591.85],"6-84-50":[37.64,993.66],"6-84-51":[36.03,1601.39],"6-84-52":[33.47,925.89],"6-84-53":[30.96,1461.81],"6-84-54":[28.91,1084.24],"6-84-55":[16.37,1261.04],"6-84-56":[-130.15,2834.46],"6-84-57":[-396.29,2971.6],"6-84-58":[-396.29,2944.4],"6-84-59":[-328.25,3405.04],"6-84-60":[-597.8,3828.34],"6-84-61":[-3788.87,3798.94],"6-84-62":[-4848.77,3451.5],"6-84-63":[-4510.96,3061.98],"6-85-0":[-690,433.63],"6-85-1":[-457.37,975.82],"5-42-0":[-690,1037.36],"6-85-2":[13.83,1299.01],"6-85-3":[-419.89,1019.11],"5-42-1":[-419.89,1299.01],"6-85-4":[-830.07,1360.06],"6-85-5":[-695.45,2999.15],"5-42-2":[-830.07,2999.15],"6-85-6":[-266.96,2295.42],"6-85-7":[-1076.55,1778.99],"5-42-3":[-1076.55,2295.42],"6-85-8":[-4190.64,1773.8],"6-85-9":[-4762.25,1487.95],"5-42-4":[-4917.61,1773.8],"6-85-10":[-4948.41,1559.37],"6-85-11":[-5080.07,864.4],"5-42-5":[-5270.52,1559.37],"6-85-12":[-5419.76,1394.5],"6-85-13":[-5594.69,600.13],"5-42-6":[-5594.69,1624.4],"6-85-14":[-5097.9,429.21],"6-85-15":[-4796.18,315.69],"5-42-7":[-5097.9,630.85],"6-85-16":[-5524.4,243.14],"6-85-17":[-5768.88,430.08],"5-42-8":[-5768.88,430.08],"6-85-18":[-5589.1,3092.4],"6-85-19":[-5934.6,3228.78],"5-42-9":[-5934.6,3289.8],"6-85-20":[-6770.5,2831.82],"6-85-21":[-6817.28,3905.23],"5-42-10":[-6817.28,4466.14],"6-85-22":[-6709.38,3453.88],"6-85-23":[-5792.46,2164.41],"5-42-11":[-6709.38,3453.88],"6-85-24":[-5484.88,1992.49],"6-85-25":[-5286.66,25.87],"5-42-12":[-5516.96,1992.49],"6-85-26":[-4248.87,28.92],"6-85-27":[-4210.77,43.52],"5-42-13":[-4678.6,43.52],"6-85-28":[-3781.28,-37.67],"6-85-29":[-4287.62,-44.2],"5-42-14":[-4518.41,213.94],"6-85-30":[-4861.17,-59.06],"6-85-31":[-5132.57,-60.26],"5-42-15":[-5132.57,-42.82],"6-85-32":[-5556.87,-55.88],"6-85-33":[-5144.84,-49.83],"5-42-16":[-5613.24,-41.47],"6-85-34":[-4770.64,-41.73],"6-85-35":[-4833.5,-35.72],"5-42-17":[-5297.8,-11.7],"6-85-36":[-4832.9,-25.51],"6-85-37":[-4426.33,12.57],"5-42-18":[-5499.36,12.57],"6-85-38":[-4177.52,-11.51],"6-85-39":[-4112.02,1927.5],"5-42-19":[-4301.04,1927.5],"6-85-40":[-3664.51,2127.4],"6-85-41":[-89.15,3375.88],"5-42-20":[-3664.51,3375.88],"6-85-42":[7.34,3828.19],"6-85-43":[14.16,2719],"5-42-21":[7.34,4351.1],"6-85-44":[20.8,3176.76],"6-85-45":[23.87,3046.38],"5-42-22":[6.6,3212.8],"6-85-46":[27.26,405.08],"6-85-47":[-1.52,242.14],"5-42-23":[-102.22,405.08],"6-85-48":[-3.54,294.72],"6-85-49":[36.61,408.2],"5-42-24":[-26.82,591.85],"6-85-50":[36.35,551.14],"6-85-51":[-160.1,1362.49],"5-42-25":[-160.1,1601.39],"6-85-52":[-21.22,833.36],"6-85-53":[-20.09,1506.37],"5-42-26":[-21.22,1506.37],"6-85-54":[-4.67,1533.95],"6-85-55":[21.69,1802.8],"5-42-27":[-4.67,1802.8],"6-85-56":[-203.29,2724.67],"6-85-57":[-396.29,2726.3],"5-42-28":[-396.31,2971.6],"6-85-58":[-499.48,2693.03],"6-85-59":[-348.85,3395.87],"5-42-29":[-499.48,3405.04],"6-85-60":[-369.01,3894.08],"6-85-61":[-3796.88,3860.75],"5-42-30":[-3796.88,3894.08],"6-85-62":[-4719.26,3477.38],"6-85-63":[-4513.54,3064.64],"5-42-31":[-4848.77,3477.38],"6-86-0":[-753.27,251.12],"6-86-1":[-466.99,1030.05],"6-86-2":[11.81,1938.39],"6-86-3":[3.34,1421.23],"6-86-4":[-801.92,1600.86],"6-86-5":[-1082.04,3054.14],"6-86-6":[-700.69,2012.28],"6-86-7":[-806.03,2132.78],"6-86-8":[-3912.94,1361.22],"6-86-9":[-4585.29,250.25],"6-86-10":[-4946.48,219.71],"6-86-11":[-5126.76,213.66],"6-86-12":[-5068.99,217.01],"6-86-13":[-5140.98,281.46],"6-86-14":[-4858.96,248.91],"6-86-15":[-4878.06,244.16],"6-86-16":[-5684.41,713.35],"6-86-17":[-5765.18,925.05],"6-86-18":[-5641.98,769.1],"6-86-19":[-5615.16,3625.13],"6-86-20":[-5640.46,4120.59],"6-86-21":[-6897.64,2348.74],"6-86-22":[-6025.99,2575.17],"6-86-23":[-5754.46,426.39],"6-86-24":[-5012.35,324.48],"6-86-25":[-4448.42,182.37],"6-86-26":[-4638.51,-54.84],"6-86-27":[-4395.85,-37.12],"6-86-28":[-4402.76,-38.59],"6-86-29":[-4565.06,-65.77],"6-86-30":[-4843.92,-65.78],"6-86-31":[-5276.07,-67.58],"6-86-32":[-5038.14,-64],"6-86-33":[-4993.52,-57.09],"6-86-34":[-5251.52,-47.83],"6-86-35":[-5106.74,-36.76],"6-86-36":[-4516.21,-30.07],"6-86-37":[-4252,-21.06],"6-86-38":[-4015.79,209.37],"6-86-39":[-4236.3,376.48],"6-86-40":[-4436.02,387.36],"6-86-41":[-173.17,2468.93],"6-86-42":[7.71,2226.7],"6-86-43":[12.56,3995.58],"6-86-44":[18.37,3592.12],"6-86-45":[23.48,762.48],"6-86-46":[-48.04,901.05],"6-86-47":[-23.79,672.29],"6-86-48":[14.5,229.04],"6-86-49":[16.37,243.99],"6-86-50":[-198.8,279.58],"6-86-51":[34.42,205.49],"6-86-52":[31.27,211.66],"6-86-53":[23.66,225.7],"6-86-54":[-6.69,255.71],"6-86-55":[-6.75,1361.22],"6-86-56":[-210.37,2407.49],"6-86-57":[-215.22,2407.49],"6-86-58":[-397.61,2435.25],"6-86-59":[-355.94,3458.7],"6-86-60":[-377.17,3925.85],"6-86-61":[-3648.94,3915.12],"6-86-62":[-4993.61,3500.58],"6-86-63":[-4383.74,3065.4],"6-87-0":[-770.81,59.22],"6-87-1":[-454.18,910.5],"5-43-0":[-770.81,1030.05],"6-87-2":[10.38,2261.07],"6-87-3":[-386.02,2071.45],"5-43-1":[-386.02,2261.07],"4-21-0":[-770.81,2261.07],"6-87-4":[-383.96,1917.49],"6-87-5":[-3800.21,2042.55],"5-43-2":[-3800.21,3054.14],"6-87-6":[-2884.07,2117.36],"6-87-7":[-1727.04,2087.2],"5-43-3":[-2884.07,2132.78],"4-21-1":[-3800.21,3054.14],"3-10-0":[-3800.21,3054.14],"6-87-8":[-3759.02,1275.39],"6-87-9":[-4471.39,200.27],"5-43-4":[-4585.29,1361.22],"6-87-10":[-4763.91,154.26],"6-87-11":[-4755.98,142.53],"5-43-5":[-5126.76,219.71],"4-21-2":[-5270.52,1773.8],"6-87-12":[-4690.1,210.72],"6-87-13":[-5090.98,447.9],"5-43-6":[-5140.98,447.9],"6-87-14":[-3386.43,1084.54],"6-87-15":[-4735.27,566.99],"5-43-7":[-4878.06,1084.54],"4-21-3":[-5594.69,1624.4],"3-10-1":[-5594.69,1908.12],"6-87-16":[-5449.05,821.12],"6-87-17":[-5622.74,2139.17],"5-43-8":[-5765.18,2139.17],"6-87-18":[-5271.62,4103.6],"6-87-19":[-4991.34,4599.84],"5-43-9":[-5641.98,4599.84],"4-21-4":[-5934.6,4599.84],"6-87-20":[-5574.64,4772.12],"6-87-21":[-5572.75,3524.89],"5-43-10":[-6897.64,4772.12],"6-87-22":[-5739.76,2437.68],"6-87-23":[-5238.92,529.04],"5-43-11":[-6025.99,2575.17],"4-21-5":[-6897.64,4772.12],"3-10-2":[-6897.64,5595.76],"6-87-24":[-4481.3,-45.37],"6-87-25":[-6299.64,-54.11],"5-43-12":[-6299.64,324.48],"6-87-26":[-4518.2,-61.38],"6-87-27":[-5566.79,-68.36],"5-43-13":[-5566.79,-37.12],"4-21-6":[-6299.64,1992.49],"6-87-28":[-6365.04,-73.16],"6-87-29":[-4813.22,-76.65],"5-43-14":[-6365.04,-38.59],"6-87-30":[-4724.02,-74.88],"6-87-31":[-4950.65,-74.44],"5-43-15":[-5276.07,-65.78],"4-21-7":[-6365.04,213.94],"3-10-3":[-6365.04,2920.56],"6-87-32":[-5184.39,-70.63],"6-87-33":[-5209.14,-64.32],"5-43-16":[-5209.14,-57.09],"6-87-34":[-5299.08,-55.61],"6-87-35":[-4792.16,-45.34],"5-43-17":[-5299.08,-36.76],"4-21-8":[-5613.24,-11.7],"6-87-36":[-4585.57,-34.09],"6-87-37":[-4374.05,-24.11],"5-43-18":[-4585.57,-21.06],"6-87-38":[-3814.21,-13.14],"6-87-39":[-3394.78,-5.98],"5-43-19":[-4236.3,376.48],"4-21-9":[-5499.36,1927.5],"3-10-4":[-5630.71,3059.56],"6-87-40":[-3357.38,497.04],"6-87-41":[-93,2342.65],"5-43-20":[-4436.02,2468.93],"6-87-42":[5.69,3445.88],"6-87-43":[10.55,4709.11],"5-43-21":[5.69,4709.11],"4-21-10":[-4436.02,4709.11],"6-87-44":[18.37,4506.23],"6-87-45":[20.45,4004.61],"5-43-22":[18.37,4506.23],"6-87-46":[25.88,2081.25],"6-87-47":[28.04,795.12],"5-43-23":[-48.04,2081.25],"4-21-11":[-102.22,4506.23],"3-10-5":[-4436.02,5494.75],"6-87-48":[15.28,553.96],"6-87-49":[35.15,1026.53],"5-43-24":[14.5,1026.53],"6-87-50":[34.57,409.9],"6-87-51":[33.74,203.46],"5-43-25":[-198.8,409.9],"4-21-12":[-198.8,1601.39],"6-87-52":[16.11,133.57],"6-87-53":[-2.86,157.13],"5-43-26":[-2.86,225.7],"6-87-54":[-10.31,212.3],"6-87-55":[-10.62,1282.39],"5-43-27":[-10.62,1361.22],"4-21-13":[-21.22,1802.8],"3-10-6":[-198.8,2242.91],"6-87-56":[-79.71,1925.54],"6-87-57":[-164.03,1897.68],"5-43-28":[-215.22,2407.49],"6-87-58":[-346.65,2297.22],"6-87-59":[-393.73,3491.07],"5-43-29":[-397.61,3491.07],"4-21-14":[-499.48,3491.07],"6-87-60":[-577.11,3965.2],"6-87-61":[-3620.25,3965.2],"5-43-30":[-3648.94,3965.2],"6-87-62":[-5015.61,3512.38],"6-87-63":[-4383.62,3065.32],"5-43-31":[-5015.61,3512.38],"4-21-15":[-5015.61,3965.2],"3-10-7":[-5188.16,3965.2],"6-88-0":[-767.86,36.5],"6-88-1":[-428.44,959.04],"6-88-2":[9.6,2322.15],"6-88-3":[-39.25,2104.93],"6-88-4":[-606.74,2084.95],"6-88-5":[-2859.78,1815.24],"6-88-6":[-2822.2,1622.18],"6-88-7":[-1642.56,344.05],"6-88-8":[-3225.87,223.3],"6-88-9":[-4395.86,226.52],"6-88-10":[-4629.63,136.47],"6-88-11":[-4715.75,131.78],"6-88-12":[-4678.56,332.5],"6-88-13":[-4662.12,893.06],"6-88-14":[-1886.34,1554.79],"6-88-15":[-3945.89,447.99],"6-88-16":[-4579.02,2106.12],"6-88-17":[-4768.15,5451.96],"6-88-18":[-4851.07,5411.27],"6-88-19":[-5345.82,5666.76],"6-88-20":[-5826.83,4714.77],"6-88-21":[-5490.03,3432.07],"6-88-22":[-5665.99,1024.24],"6-88-23":[-4919.76,403.18],"6-88-24":[-4401.41,569.02],"6-88-25":[-4766.29,-59.6],"6-88-26":[-5085.97,-70.97],"6-88-27":[-4713.83,-76.12],"6-88-28":[-6296.59,-81.89],"6-88-29":[-5415.32,-85.59],"6-88-30":[-5415.58,-83.95],"6-88-31":[-5034.84,-81.05],"6-88-32":[-4678.13,-76.23],"6-88-33":[-5091.68,-69.57],"6-88-34":[-5315.04,-60.53],"6-88-35":[-4910.61,-49.91],"6-88-36":[-4700.31,-38.44],"6-88-37":[-4340.52,-27.34],"6-88-38":[-3775.62,-16.67],"6-88-39":[-3259.24,482.01],"6-88-40":[-197.97,378.18],"6-88-41":[-45.65,1001.24],"6-88-42":[1.91,3360.06],"6-88-43":[7.53,4608.76],"6-88-44":[12.64,5486.75],"6-88-45":[17.05,5223.27],"6-88-46":[21.65,5206.96],"6-88-47":[26.11,2040.12],"6-88-48":[30.67,440.1],"6-88-49":[-55.82,1713.79],"6-88-50":[33.89,827.05],"6-88-51":[33.4,306.53],"6-88-52":[7.42,123.77],"6-88-53":[-39.7,327.42],"6-88-54":[3.08,230.49],"6-88-55":[-15.39,234.28],"6-88-56":[-22.57,1116.82],"6-88-57":[-96.74,1564.5],"6-88-58":[-334.85,2295.88],"6-88-59":[-547.49,3490.99],"6-88-60":[-643.72,3997.79],"6-88-61":[-3594.02,4001.34],"6-88-62":[-4474.87,3523.63],"6-88-63":[-4558.49,3065.05],"6-89-0":[-706.47,30.41],"6-89-1":[-440.72,977.07],"5-44-0":[-767.86,977.07],"6-89-2":[9.34,2464.93],"6-89-3":[1.06,2473.48],"5-44-1":[-39.25,2473.48],"6-89-4":[-936.59,2332.14],"6-89-5":[-1376.15,981.03],"5-44-2":[-2859.78,2332.14],"6-89-6":[-1438.63,1303.35],"6-89-7":[-1336.73,318.58],"5-44-3":[-2822.2,1622.18],"6-89-8":[-3587.69,100.53],"6-89-9":[-4154.48,139.63],"5-44-4":[-4395.86,226.52],"6-89-10":[-4569.43,118.52],"6-89-11":[-4715.57,117.67],"5-44-5":[-4715.75,136.47],"6-89-12":[-4169.96,204.12],"6-89-13":[-3830.5,749.66],"5-44-6":[-4678.56,893.06],"6-89-14":[-2468.19,1122.49],"6-89-15":[-4016.9,1082.6],"5-44-7":[-4016.9,1554.79],"6-89-16":[-4414.85,4445.78],"6-89-17":[-4631.89,5979.55],"5-44-8":[-4768.15,5979.55],"6-89-18":[-4974.01,7425.22],"6-89-20":[-5304.14,2777.08],"6-89-19":[-5513.3,7670.17],"5-44-9":[-5513.3,7670.17],"6-89-21":[-5172.38,1028.73],"5-44-10":[-5826.83,4714.77],"6-89-22":[-4626.02,913.48],"6-89-23":[-5042.76,1654.1],"5-44-11":[-5665.99,1654.1],"6-89-24":[-5314.43,1010.35],"6-89-25":[-5903.05,598.43],"5-44-12":[-5903.05,1010.35],"6-89-26":[-6180.12,-75.99],"6-89-27":[-5778.91,-67.66],"5-44-13":[-6180.12,-67.66],"6-89-28":[-5869.67,-72.32],"6-89-29":[-4365.43,48.53],"5-44-14":[-6296.59,48.53],"6-89-30":[-4791.83,15.48],"6-89-31":[-5071.12,1.04],"5-44-15":[-5415.58,15.48],"6-89-32":[-4576.94,-3.46],"6-89-33":[-4785.27,6.33],"5-44-16":[-5091.68,6.33],"6-89-34":[-4574.62,105.2],"6-89-35":[-4689.33,94.67],"5-44-17":[-5315.04,105.2],"6-89-36":[-4438.32,200.09],"6-89-37":[-3765.77,-34.29],"5-44-18":[-4700.31,200.09],"6-89-38":[-3494.6,568.44],"6-89-39":[-182.94,902.33],"5-44-19":[-3775.62,902.33],"6-89-40":[-76.25,1584.1],"6-89-41":[-16.37,827.48],"5-44-20":[-197.97,1584.1],"6-89-42":[-2.98,985.73],"6-89-43":[4.23,2682.07],"5-44-21":[-2.98,4608.76],"6-89-44":[9.98,7438.17],"6-89-45":[13.89,7210.21],"5-44-22":[9.98,7438.17],"6-89-46":[21.65,5961.54],"6-89-47":[23.2,4291.76],"5-44-23":[21.65,5961.54],"6-89-48":[28.47,1036.59],"6-89-49":[32.48,1064.49],"5-44-24":[-55.82,1713.79],"6-89-50":[6.34,715.49],"6-89-51":[-9.37,197.65],"5-44-25":[-9.37,827.05],"6-89-52":[15.38,111.68],"6-89-53":[-3.32,343.8],"5-44-26":[-39.7,343.8],"6-89-54":[14.74,147.43],"6-89-55":[-17.33,117.58],"5-44-27":[-17.33,234.28],"6-89-56":[-17.83,392.26],"6-89-57":[-29.56,1769.28],"5-44-28":[-96.74,1769.28],"6-89-58":[-272.69,2436.17],"6-89-59":[-510.33,3484.93],"5-44-29":[-547.49,3490.99],"6-89-60":[-640.09,4020.7],"6-89-61":[-3575.47,4020.7],"5-44-30":[-3594.02,4020.7],"6-89-62":[-4236.46,3529.73],"6-89-63":[-4514.53,3064.81],"5-44-31":[-4558.49,3529.73],"6-90-0":[-640.98,61.26],"6-90-1":[-390.9,805.39],"6-90-2":[9.21,2183.68],"6-90-3":[0.25,2469.66],"6-90-4":[-1304.8,2425.45],"6-90-5":[-1149.32,1548.99],"6-90-6":[-414.72,2224.46],"6-90-7":[-1632.86,499.7],"6-90-8":[-3548.24,91.65],"6-90-9":[-4053.7,169.41],"6-90-10":[-4212.58,102.52],"6-90-11":[-4304.91,130.71],"6-90-12":[-3505.98,132.71],"6-90-13":[-2934.53,2598.41],"6-90-14":[-3135.99,1507.27],"6-90-15":[-4279.42,1151.88],"6-90-16":[-4489.05,4807.35],"6-90-17":[-4479.4,6513.21],"6-90-18":[-5017.58,7543.41],"6-90-20":[-5217.14,5343.32],"6-90-21":[-4488.37,447.8],"6-90-22":[-4547.42,998],"6-90-19":[-5325.59,8087.96],"6-90-23":[-5040.15,1264.93],"6-90-24":[-5735.98,1499.22],"6-90-25":[-5813.09,1527.78],"6-90-26":[-6081.85,969.76],"6-90-27":[-5744.78,1943.78],"6-90-28":[-5599.69,132.05],"6-90-29":[-5614.43,-76.78],"6-90-30":[-5738.79,-73.55],"6-90-31":[-5224.71,100.88],"6-90-32":[-4737.85,203.27],"6-90-33":[-3727.92,187.82],"6-90-34":[-3145.88,89.54],"6-90-35":[-2988.52,52.04],"6-90-36":[-2425.97,1816.78],"6-90-37":[-1039.44,953.76],"6-90-38":[-113.99,1391.73],"6-90-39":[-64.94,1364.22],"6-90-40":[-47.65,1160.93],"6-90-41":[-26.36,959.99],"6-90-42":[-11.95,366.79],"6-90-43":[1.09,5121.48],"6-90-44":[6.57,7900.96],"6-90-45":[11.56,7428.15],"6-90-46":[16.22,6455.21],"6-90-47":[21.29,4685.71],"6-90-48":[26.15,1023.87],"6-90-49":[29.48,1442.28],"6-90-50":[-31.98,2779.41],"6-90-51":[0.44,113.69],"6-90-52":[21.05,124.69],"6-90-53":[-11.69,331.23],"6-90-54":[10.84,175.41],"6-90-55":[-17.9,105.1],"6-90-56":[-21.34,1525.64],"6-90-57":[-32.68,2210.25],"6-90-58":[-120.9,2619.19],"6-90-59":[-433.61,3487.6],"6-90-60":[-567.12,4037.87],"6-90-61":[-3570.81,4030.9],"6-90-62":[-4219.09,3530.31],"6-90-63":[-4406.28,3064.82],"6-91-0":[-639.31,189.19],"6-91-1":[-384.95,834.08],"5-45-0":[-640.98,834.08],"6-91-2":[8.56,2367.16],"6-91-3":[-0.35,2551.86],"5-45-1":[-0.35,2551.86],"4-22-0":[-767.86,2551.86],"6-91-4":[-1479.06,2480.04],"6-91-5":[-281.82,1619.37],"5-45-2":[-1479.06,2480.04],"6-91-6":[-498.16,1605.36],"6-91-7":[-1553.63,731.58],"5-45-3":[-1632.86,2224.46],"4-22-1":[-2859.78,2480.04],"6-91-8":[-3586.88,81.75],"6-91-9":[-4086.33,122.72],"5-45-4":[-4086.33,169.41],"6-91-10":[-4014.01,110.81],"6-91-11":[-2910.87,118.68],"5-45-5":[-4304.91,130.71],"4-22-2":[-4715.75,226.52],"6-91-12":[-2973.92,133.68],"6-91-13":[-3695.85,487.76],"5-45-6":[-3695.85,2598.41],"6-91-14":[-3738.3,1504.92],"6-91-15":[-4043.82,1384.81],"5-45-7":[-4279.42,1507.27],"4-22-3":[-4678.56,2598.41],"6-91-16":[-4375.35,4930.95],"6-91-17":[-4265.58,5827.63],"5-45-8":[-4489.05,6513.21],"6-91-18":[-4366.17,6379.76],"6-91-19":[-4748.48,8560.58],"5-45-9":[-5325.59,8560.58],"4-22-4":[-5513.3,8560.58],"6-91-20":[-4652.94,6725.08],"6-91-21":[-4609.1,4563.58],"5-45-10":[-5217.14,6725.08],"6-91-22":[-4986.87,732.76],"6-91-23":[-5274.33,994.23],"5-45-11":[-5274.33,1264.93],"4-22-5":[-5826.83,6725.08],"6-91-24":[-5529.09,1273.26],"6-91-25":[-6647.67,698.38],"5-45-12":[-6647.67,1527.78],"6-91-26":[-5942.01,1069.77],"6-91-27":[-5762.94,2543.22],"5-45-13":[-6081.85,2543.22],"4-22-6":[-6647.67,2543.22],"6-91-28":[-5774.81,2590.24],"6-91-29":[-5738.63,1544.94],"5-45-14":[-5774.81,2590.24],"6-91-30":[-5469.78,-102.05],"6-91-31":[-5216.17,-100.58],"5-45-15":[-5738.79,100.88],"4-22-7":[-6296.59,2590.24],"6-91-32":[-5076.96,-96.41],"6-91-33":[-4415.5,-89.47],"5-45-16":[-5076.96,203.27],"6-91-34":[-3876.39,1456.94],"6-91-35":[-1368.49,2500.59],"5-45-17":[-3876.39,2500.59],"4-22-8":[-5315.04,2500.59],"6-91-36":[-142.2,2482.21],"6-91-37":[-116.73,1003.95],"5-45-18":[-2425.97,2482.21],"6-91-38":[-98.13,689.37],"6-91-39":[-76.39,1212.26],"5-45-19":[-113.99,1391.73],"4-22-9":[-4700.31,2482.21],"6-91-40":[-59.57,977.73],"6-91-41":[-39.69,677.26],"5-45-20":[-59.57,1160.93],"6-91-42":[-24.55,4424.66],"6-91-43":[-6.24,6545.87],"5-45-21":[-24.55,6545.87],"4-22-10":[-197.97,6545.87],"6-91-44":[3.69,8392.58],"6-91-45":[-0.46,6247.71],"5-45-22":[-0.46,8392.58],"6-91-46":[14.12,5742.63],"6-91-47":[18.73,4840.78],"5-45-23":[14.12,6455.21],"4-22-11":[-0.46,8392.58],"6-91-48":[26.15,1330.33],"6-91-49":[26.58,1464.91],"5-45-24":[26.15,1464.91],"6-91-50":[19.97,460.76],"6-91-51":[27.46,101.74],"5-45-25":[-31.98,2779.41],"4-22-12":[-55.82,2779.41],"6-91-52":[20.79,113.28],"6-91-53":[-17.77,113.81],"5-45-26":[-17.77,331.23],"6-91-54":[-9.28,129.12],"6-91-55":[-14.96,98.12],"5-45-27":[-17.9,175.41],"4-22-13":[-39.7,343.8],"6-91-56":[-19.59,1873.55],"6-91-57":[-21.81,2662.65],"5-45-28":[-32.68,2662.65],"6-91-58":[-80.34,2841.83],"6-91-59":[-317.86,3506.71],"5-45-29":[-433.61,3506.71],"4-22-14":[-547.49,3506.71],"6-91-60":[-233.74,4042.04],"6-91-61":[-3602.62,4030.73],"5-45-30":[-3602.62,4042.04],"6-91-62":[-4392.18,3527.6],"6-91-63":[-4471.35,3066.42],"5-45-31":[-4471.35,3530.31],"4-22-15":[-4558.49,4042.04],"6-92-0":[-645.12,227.14],"6-92-1":[-397.86,937.13],"6-92-2":[7.88,2366.12],"6-92-3":[-1.45,2837.93],"6-92-4":[-1235.35,2211.57],"6-92-5":[-686.65,1122.37],"6-92-6":[-162.24,1378.61],"6-92-7":[-774.24,1072.09],"6-92-8":[-3708.87,64.43],"6-92-9":[-3896.11,203.65],"6-92-10":[-3247.71,114.52],"6-92-11":[-4588.27,125.15],"6-92-12":[-4759.65,235.48],"6-92-13":[-4573.21,478.3],"6-92-14":[-4218.85,1419.87],"6-92-15":[-4033.49,4532.62],"6-92-16":[-3758.83,6633.62],"6-92-17":[-3919.79,7087.4],"6-92-18":[-4298.67,4976.93],"6-92-19":[-4525.92,7022.3],"6-92-20":[-4589.42,7194.47],"6-92-21":[-4677.75,7787.57],"6-92-22":[-4830.92,295.99],"6-92-23":[-5268.63,1069.67],"6-92-24":[-5627.16,1095.71],"6-92-25":[-6029.63,1197.87],"6-92-26":[-6091.69,1006.73],"6-92-27":[-6323.49,1132.42],"6-92-28":[-5678.07,434.8],"6-92-29":[-5900.81,2430.45],"6-92-30":[-5399.93,-101.01],"6-92-31":[-5206.63,-100.16],"6-92-32":[-5022.99,-94.42],"6-92-33":[-4622.89,-88.59],"6-92-34":[-4222.18,2382.44],"6-92-35":[-3966.9,367.8],"6-92-36":[-3737.67,1082.42],"6-92-37":[-3408.68,924.73],"6-92-38":[-104.92,1135.87],"6-92-39":[-84.27,1075.71],"6-92-40":[-67.56,1049.67],"6-92-41":[-47.53,244.26],"6-92-42":[-33.56,7477.1],"6-92-43":[-15.92,6783.47],"6-92-44":[-3.11,6972.29],"6-92-45":[3.14,4850.94],"6-92-46":[9.41,6956.38],"6-92-47":[15.61,6473.62],"6-92-48":[19.59,4411.61],"6-92-49":[23.34,1366.87],"6-92-50":[24.55,472.32],"6-92-51":[20.83,226.49],"6-92-52":[12.33,118.27],"6-92-53":[-1.93,111.49],"6-92-54":[-18.83,205.66],"6-92-55":[-19.8,76.05],"6-92-56":[-14.79,2339.17],"6-92-57":[-28.39,2935.32],"6-92-58":[-72.76,3173.47],"6-92-59":[-191.46,3593.63],"6-92-60":[-328.07,4042.04],"6-92-61":[-3603.54,4001.04],"6-92-62":[-4413.7,3516.41],"6-92-63":[-4414.53,3066.46],"6-93-0":[-598.54,447.74],"6-93-1":[-405.36,559.4],"5-46-0":[-645.12,937.13],"6-93-2":[7.36,2052.06],"6-93-3":[-1.93,2388.42],"5-46-1":[-1.93,2837.93],"6-93-4":[-825.37,1419.34],"6-93-5":[-321.04,1310.48],"5-46-2":[-1235.35,2211.57],"6-93-6":[-535.25,796.65],"6-93-7":[-1525.55,783.16],"5-46-3":[-1525.55,1378.61],"6-93-8":[-3607.56,149.97],"6-93-9":[-3782.36,236.06],"5-46-4":[-3896.11,236.06],"6-93-10":[-3244.4,155.46],"6-93-11":[-4940.09,162.81],"5-46-5":[-4940.09,162.81],"6-93-12":[-4915.47,446.71],"6-93-13":[-4738.91,2380.4],"5-46-6":[-4915.47,2380.4],"6-93-14":[-4289.66,2712],"6-93-15":[-4355.64,3961.77],"5-46-7":[-4355.64,4532.62],"6-93-16":[-4432.86,5107.74],"6-93-17":[-3773.11,3794.4],"5-46-8":[-4432.86,7087.4],"6-93-18":[-4143.17,6062.91],"6-93-19":[-4597.94,6911.73],"5-46-9":[-4597.94,7022.3],"6-93-20":[-4953.08,6600.18],"6-93-21":[-4693,8103.55],"5-46-10":[-4953.08,8103.55],"6-93-22":[-5242.48,2512.35],"6-93-23":[-5502.72,1178.46],"5-46-11":[-5502.72,2512.35],"6-93-24":[-5927.26,1262.43],"6-93-25":[-5842.24,1608.79],"5-46-12":[-6029.63,1608.79],"6-93-26":[-6117.19,-37.98],"6-93-27":[-6121.17,-86.28],"5-46-13":[-6323.49,1132.42],"6-93-28":[-5759.02,-88.67],"6-93-29":[-5683.35,351.9],"5-46-14":[-5900.81,2430.45],"6-93-30":[-5408.99,-92.98],"6-93-31":[-5189.72,-91.46],"5-46-15":[-5408.99,-91.46],"6-93-32":[-4779.36,-88.46],"6-93-33":[-4502,-84.21],"5-46-16":[-5022.99,-84.21],"6-93-34":[-4405.78,250.19],"6-93-35":[-4122.18,-69.13],"5-46-17":[-4405.78,2382.44],"6-93-36":[-3761.1,-61.65],"6-93-37":[-3546.44,-21.32],"5-46-18":[-3761.1,1082.42],"6-93-38":[-2986.65,1526.78],"6-93-39":[-92.35,1210.44],"5-46-19":[-2986.65,1526.78],"6-93-40":[-75.45,1148.44],"6-93-41":[-57.43,2392.36],"5-46-20":[-75.45,2392.36],"6-93-42":[-43.87,7996.56],"6-93-43":[-26.53,6529.17],"5-46-21":[-43.87,7996.56],"6-93-44":[-14.66,6785.68],"6-93-45":[-1.24,5925.82],"5-46-22":[-14.66,6972.29],"6-93-46":[5.93,3698.38],"6-93-47":[11.24,4974.72],"5-46-23":[5.93,6956.38],"6-93-48":[19.38,3851.93],"6-93-49":[19.38,2590],"5-46-24":[19.38,4411.61],"6-93-50":[20.9,2292.4],"6-93-51":[20.83,411.7],"5-46-25":[20.83,2292.4],"6-93-52":[12.97,151.82],"6-93-53":[18.26,165.91],"5-46-26":[-1.93,165.91],"6-93-54":[-9.15,247.3],"6-93-55":[-19.02,635.17],"5-46-27":[-19.8,635.17],"6-93-56":[-16.08,2519.02],"6-93-57":[-14.95,3197.54],"5-46-28":[-28.39,3197.54],"6-93-58":[-59.02,3364.13],"6-93-59":[-200.6,3621.13],"5-46-29":[-200.6,3621.13],"6-93-60":[-383.88,4025.51],"6-93-61":[-3638.41,3923.74],"5-46-30":[-3638.41,4042.04],"6-93-62":[-4412.72,3499.2],"6-93-63":[-4412.72,3067.15],"5-46-31":[-4414.53,3516.41],"6-94-0":[-576.96,447.74],"6-94-1":[-490.72,533.51],"6-94-2":[-88.61,1993.81],"6-94-3":[-25.35,2256.16],"6-94-4":[-65.53,916.49],"6-94-5":[-226.99,650.86],"6-94-6":[-535.25,744.12],"6-94-7":[-952.38,1128.23],"6-94-8":[-3523.31,216.58],"6-94-9":[-3903.39,232.96],"6-94-10":[-4655.36,204.28],"6-94-11":[-4953.77,252.1],"6-94-12":[-5052.19,544.69],"6-94-13":[-4860.03,2652.03],"6-94-14":[-4450.02,4375.85],"6-94-15":[-4317.75,3786.97],"6-94-16":[-4383.8,5220.28],"6-94-17":[-4658.52,3644.02],"6-94-18":[-4060.5,6686.7],"6-94-19":[-4111.06,6437.5],"6-94-20":[-4733.64,6733.83],"6-94-21":[-4909.98,8019.76],"6-94-22":[-4884.18,8777.15],"6-94-23":[-5346.94,1317.62],"6-94-24":[-5660.98,1124.07],"6-94-25":[-5665.75,1331.06],"6-94-26":[-5692.51,-73.06],"6-94-27":[-5733.14,-76.23],"6-94-28":[-5947.08,-77.26],"6-94-29":[-5808.81,-77.29],"6-94-30":[-5433.18,-78.62],"6-94-31":[-5040.3,-78.17],"6-94-32":[-4752.82,-76.46],"6-94-33":[-4483.87,-74.65],"6-94-34":[-4218.61,-71.13],"6-94-35":[-3868.68,-67.72],"6-94-36":[-3569.03,-60.57],"6-94-37":[-3265.74,-54.12],"6-94-38":[-2992,1261.05],"6-94-39":[-1598.7,1080.07],"6-94-40":[-77.95,1222.62],"6-94-41":[-61.78,8598.15],"6-94-42":[-50.7,7880.79],"6-94-43":[-33.49,6616.83],"6-94-44":[-21.33,6332.71],"6-94-45":[-8.99,6551.71],"6-94-46":[0.56,3604.04],"6-94-47":[7.51,4970.26],"6-94-48":[11.75,3721.8],"6-94-49":[15.47,4235.84],"6-94-50":[16.83,2541.05],"6-94-51":[15.6,525.74],"6-94-52":[12.93,239.09],"6-94-53":[11.48,204.28],"6-94-54":[-14.13,238.32],"6-94-55":[-18.6,1029.1],"6-94-56":[-15.92,2637.61],"6-94-57":[-11.52,3300.48],"6-94-58":[-61.57,3450.97],"6-94-59":[-198.69,3672.41],"6-94-60":[-397.08,3954.97],"6-94-61":[-3665.4,3850.88],"6-94-62":[-4412.06,3480.02],"6-94-63":[-4409.04,3067.91],"6-95-0":[-602.77,562.41],"6-95-1":[-460.9,424.48],"5-47-0":[-602.77,562.41],"6-95-2":[6.2,1674.74],"6-95-3":[-126.18,1339.78],"5-47-1":[-126.18,2256.16],"4-23-0":[-645.12,2837.93],"6-95-4":[-501.23,855.62],"6-95-5":[-355.11,859.48],"5-47-2":[-501.23,916.49],"6-95-6":[-433.11,1054.02],"6-95-7":[-816.66,941.07],"5-47-3":[-952.38,1128.23],"4-23-1":[-1525.55,2211.57],"3-11-0":[-2859.78,2837.93],"6-95-8":[-3578.67,733.23],"6-95-9":[-4260.32,628.73],"5-47-4":[-4260.32,733.23],"6-95-10":[-4696.15,242.85],"6-95-11":[-4872.34,262.78],"5-47-5":[-4953.77,262.78],"4-23-2":[-4953.77,733.23],"6-95-12":[-4878.33,2173.74],"6-95-13":[-4844.26,3529.7],"5-47-6":[-5052.19,3529.7],"6-95-14":[-4336.73,4279.84],"6-95-15":[-4012.33,3328.41],"5-47-7":[-4450.02,4375.85],"4-23-3":[-5052.19,4532.62],"3-11-1":[-5052.19,4532.62],"2-5-0":[-5594.69,4532.62],"6-95-16":[-3897.48,4987.09],"6-95-17":[-4190.29,2654.79],"5-47-8":[-4658.52,5220.28],"6-95-18":[-4529.97,6201.27],"6-95-19":[-4902.77,6890.4],"5-47-9":[-4902.77,6890.4],"4-23-4":[-4902.77,7087.4],"6-95-20":[-4279.48,6254.63],"6-95-21":[-4679.07,7070.27],"5-47-10":[-4909.98,8019.76],"6-95-22":[-5271.01,8478.4],"6-95-23":[-5469.35,533.63],"5-47-11":[-5469.35,8777.15],"4-23-5":[-5502.72,8777.15],"3-11-2":[-5826.83,8777.15],"6-95-24":[-6170.59,26.16],"6-95-25":[-6029.46,-61.4],"5-47-12":[-6170.59,1331.06],"6-95-26":[-6233.8,-63.4],"6-95-27":[-6168.75,-64.19],"5-47-13":[-6233.8,-63.4],"4-23-6":[-6323.49,1608.79],"6-95-28":[-5946.53,-62.12],"6-95-29":[-5563.77,-59.77],"5-47-14":[-5947.08,-59.77],"6-95-30":[-5415.34,-59.81],"6-95-31":[-5091.48,-60.33],"5-47-15":[-5433.18,-59.81],"4-23-7":[-5947.08,2430.45],"3-11-3":[-6647.67,2590.24],"2-5-1":[-6897.64,8777.15],"1-2-0":[-7020.16,8777.15],"6-95-32":[-4840.71,-61.96],"6-95-33":[-4477.56,-62.76],"5-47-16":[-4840.71,-61.96],"6-95-34":[-4145.89,-63.18],"6-95-35":[-4001.9,-62.21],"5-47-17":[-4218.61,-62.21],"4-23-8":[-5022.99,2382.44],"6-95-36":[-3450.75,-58.3],"6-95-37":[-3372.07,-51.25],"5-47-18":[-3569.03,-51.25],"6-95-38":[-2676.42,-44.8],"6-95-39":[-2060.04,21.7],"5-47-19":[-2992,1261.05],"4-23-9":[-3761.1,1526.78],"3-11-4":[-5315.04,2500.59],"6-95-40":[-87.28,515.63],"6-95-41":[-73.3,8337.38],"5-47-20":[-87.28,8598.15],"6-95-42":[-61.25,6940.28],"6-95-43":[-45.22,6206.62],"5-47-21":[-61.25,7880.79],"4-23-10":[-87.28,8598.15],"6-95-44":[-34.87,6723.39],"6-95-45":[-20.9,6097.25],"5-47-22":[-34.87,6723.39],"6-95-46":[-8.31,2575.12],"6-95-47":[-220.5,5153.81],"5-47-23":[-220.5,5153.81],"4-23-11":[-220.5,6972.29],"3-11-5":[-220.5,8598.15],"2-5-2":[-5630.71,8598.15],"6-95-48":[11.13,3250.14],"6-95-49":[11.13,4186.84],"5-47-24":[11.13,4235.84],"6-95-50":[13.37,3407.69],"6-95-51":[13.37,2121.23],"5-47-25":[13.37,3407.69],"4-23-12":[11.13,4411.61],"6-95-52":[10.23,254.78],"6-95-53":[-6.6,249.74],"5-47-26":[-6.6,254.78],"6-95-54":[-14.83,629.23],"6-95-55":[-23.34,1290.06],"5-47-27":[-23.34,1290.06],"4-23-13":[-23.34,1290.06],"3-11-6":[-55.82,4411.61],"6-95-56":[-11.92,2688.65],"6-95-57":[-12.05,3479.02],"5-47-28":[-15.92,3479.02],"6-95-58":[-66.28,3627.63],"6-95-59":[-225.58,3738.39],"5-47-29":[-225.58,3738.39],"4-23-14":[-225.58,3738.39],"6-95-60":[-389.39,3883.62],"6-95-61":[-3689.24,3781.94],"5-47-30":[-3689.24,3954.97],"6-95-62":[-4427.44,3420.26],"6-95-63":[-4395.91,3069.78],"5-47-31":[-4427.44,3480.02],"4-23-15":[-4427.44,4042.04],"3-11-7":[-4558.49,4042.04],"2-5-3":[-5188.16,4411.61],"1-2-1":[-5630.71,8598.15],"6-96-0":[-507.95,550.11],"6-96-1":[-395.05,585.56],"6-96-2":[6.32,1424.65],"6-96-3":[-31.33,1441.83],"6-96-4":[-453.58,1344.57],"6-96-5":[-201.96,1305.47],"6-96-6":[-290.34,1334],"6-96-7":[-358.6,1577.7],"6-96-8":[-3477.28,974.81],"6-96-9":[-4185.57,751.03],"6-96-10":[-4564.8,917.02],"6-96-11":[-4753.73,457.27],"6-96-12":[-4737.6,1266.17],"6-96-13":[-4756.71,3266],"6-96-14":[-4510.66,4151.48],"6-96-15":[-4069.46,4116.23],"6-96-16":[-3473.69,3824.31],"6-96-17":[-3788.26,2504.01],"6-96-18":[-4700.84,5909.96],"6-96-19":[-4874.41,6767.17],"6-96-20":[-5176.8,6522.84],"6-96-21":[-4920.94,7463.69],"6-96-22":[-5332.86,7512.84],"6-96-23":[-5984.55,1663.78],"6-96-24":[-5819.56,1062.24],"6-96-25":[-6172.54,-53.86],"6-96-26":[-6470.49,-59.44],"6-96-27":[-6334.52,407.51],"6-96-28":[-6436.56,114.95],"6-96-29":[-5830.63,-53.59],"6-96-30":[-5438.79,-48.89],"6-96-31":[-4933.77,-47.66],"6-96-32":[-4971.61,-47.94],"6-96-33":[-4598.44,-48.79],"6-96-34":[-4770.86,-51.46],"6-96-35":[-3985.12,95.94],"6-96-36":[-3493.93,364.5],"6-96-37":[-3068.68,-52.16],"6-96-38":[-2570.27,-47.88],"6-96-39":[-1611.51,971.23],"6-96-40":[-110.58,1645.76],"6-96-41":[-79.29,7274.95],"6-96-42":[-69.21,7054.69],"6-96-43":[-55.83,6428.04],"6-96-44":[-44.21,6604.16],"6-96-45":[-29.81,5836.96],"6-96-46":[-17.32,2435],"6-96-47":[-19.04,3762.29],"6-96-48":[3,4053.22],"6-96-49":[6.76,4099.84],"6-96-50":[9.32,3157.99],"6-96-51":[9.2,1217.16],"6-96-52":[7.16,445.77],"6-96-53":[-41.06,924.54],"6-96-54":[2.39,754.02],"6-96-55":[3.38,1584.77],"6-96-56":[14.61,2802.12],"6-96-57":[-13.87,3518.93],"6-96-58":[-60.39,3704.38],"6-96-59":[-114.78,3756.39],"6-96-60":[-212.46,3799.9],"6-96-61":[-3739.84,3696.84],"6-96-62":[-4393.72,3372.98],"6-96-63":[-4412.76,3073.17],"6-97-0":[-364.14,494.02],"6-97-1":[-399.12,366.65],"5-48-0":[-507.95,585.56],"6-97-2":[5.88,988],"6-97-3":[-5.43,1653.63],"5-48-1":[-31.33,1653.63],"6-97-4":[-15.46,1661.74],"6-97-5":[-282.65,1274.66],"5-48-2":[-453.58,1661.74],"6-97-6":[-438.53,1165.53],"6-97-7":[-407.85,1618.98],"5-48-3":[-438.53,1618.98],"6-97-8":[-2713.91,1177.41],"6-97-9":[-4143.19,764.98],"5-48-4":[-4185.57,1177.41],"6-97-10":[-4571.83,1092.04],"6-97-11":[-4667.26,823.06],"5-48-5":[-4753.73,1092.04],"6-97-12":[-4992.04,2561.56],"6-97-13":[-4442.71,2677.49],"5-48-6":[-4992.04,3266],"6-97-14":[-4214.57,2882.06],"6-97-15":[-4045.73,4155.27],"5-48-7":[-4510.66,4155.27],"6-97-16":[-3751.2,4825.04],"6-97-17":[-4087.17,4733.64],"5-48-8":[-4087.17,4825.04],"6-97-18":[-4588.68,5772.12],"6-97-19":[-4985.77,6131.65],"5-48-9":[-4985.77,6767.17],"6-97-20":[-5603.67,6237.58],"6-97-21":[-4539.45,7221.31],"5-48-10":[-5603.67,7463.69],"6-97-22":[-5521.12,5335.5],"6-97-23":[-6178.41,2777.96],"5-48-11":[-6178.41,7512.84],"6-97-24":[-5874.71,3021.9],"6-97-25":[-6475.28,1489.97],"5-48-12":[-6475.28,3021.9],"6-97-26":[-6434.12,365.67],"6-97-27":[-6299.38,671.16],"5-48-13":[-6470.49,671.16],"6-97-28":[-6037.15,253.16],"6-97-29":[-5599.45,634.69],"5-48-14":[-6436.56,634.69],"6-97-30":[-5263.17,2140.29],"6-97-31":[-5140.67,-30.37],"5-48-15":[-5438.79,2140.29],"6-97-32":[-5106.69,-30.41],"6-97-33":[-4931.92,2040.29],"5-48-16":[-5106.69,2040.29],"6-97-34":[-4661.45,548.69],"6-97-35":[-4636.64,171.14],"5-48-17":[-4770.86,548.69],"6-97-36":[-3316.65,618.15],"6-97-37":[-2881.1,316.65],"5-48-18":[-3493.93,618.15],"6-97-38":[-2676.29,1443.77],"6-97-39":[-137.79,2960.9],"5-48-19":[-2676.29,2960.9],"6-97-40":[-91.36,2693.99],"6-97-41":[-84.52,5200.27],"5-48-20":[-110.58,7274.95],"6-97-42":[-74.46,7161.3],"6-97-43":[-60.54,6144.57],"5-48-21":[-74.46,7161.3],"6-97-44":[-55.82,6036.64],"6-97-45":[-41.68,5696.1],"5-48-22":[-55.82,6604.16],"6-97-46":[-29.34,4612.61],"6-97-47":[-13.57,4736.04],"5-48-23":[-29.34,4736.04],"6-97-48":[-3.72,4132.25],"6-97-49":[2.56,2840.06],"5-48-24":[-3.72,4132.25],"6-97-50":[5.93,2600.03],"6-97-51":[6.01,2378.55],"5-48-25":[5.93,3157.99],"6-97-52":[3.78,811.06],"6-97-53":[-1.51,1061.04],"5-48-26":[-41.06,1061.04],"6-97-54":[-2.2,784.39],"6-97-55":[-0.05,1584.77],"5-48-27":[-2.2,1584.77],"6-97-56":[43.27,2824.51],"6-97-57":[-14.89,3500.23],"5-48-28":[-14.89,3518.93],"6-97-58":[-24.5,3719.54],"6-97-59":[-126.51,3755.97],"5-48-29":[-126.51,3756.39],"6-97-60":[-221.84,3775.22],"6-97-61":[-3792.88,3652.34],"5-48-30":[-3792.88,3799.9],"6-97-62":[-4477.7,3341.15],"6-97-63":[-4401.04,3074.67],"5-48-31":[-4477.7,3372.98],"6-98-0":[-371.51,448.58],"6-98-1":[-316.46,300.99],"6-98-2":[4.57,1060.02],"6-98-3":[-254.89,1807.12],"6-98-4":[-16.48,1774.8],"6-98-5":[-298.82,1169.06],"6-98-6":[-774.09,715.29],"6-98-7":[-2340.07,1569.96],"6-98-8":[-1082.6,1090.5],"6-98-9":[-4200.3,887.64],"6-98-10":[-4568.5,775.1],"6-98-11":[-4834.4,615.55],"6-98-12":[-4862.94,2887.36],"6-98-13":[-4329.53,2999.01],"6-98-14":[-4764.12,3482.56],"6-98-15":[-4080.63,3928.85],"6-98-16":[-4130.05,2953.75],"6-98-17":[-4647.34,5415.08],"6-98-18":[-4790.05,5725.81],"6-98-19":[-4988.02,5462.57],"6-98-20":[-5720.28,5731.48],"6-98-21":[-4587.04,6535.05],"6-98-22":[-5777.18,5106.11],"6-98-23":[-6446.93,3346.34],"6-98-24":[-6216.81,2464.8],"6-98-25":[-6329.09,2574.03],"6-98-26":[-6412.8,1748.97],"6-98-27":[-6111.95,1498.37],"6-98-28":[-6037.15,1085.71],"6-98-29":[-6003.77,550.46],"6-98-30":[-5871.84,3433.72],"6-98-31":[-5614.47,1843.03],"6-98-32":[-5471.08,1698.95],"6-98-33":[-1424.27,3384.6],"6-98-34":[-2250.26,448.92],"6-98-35":[-2791.74,954.7],"6-98-36":[-2811.05,1369.36],"6-98-37":[-388.5,1662.98],"6-98-38":[-190.16,2513.02],"6-98-39":[-96.25,2383.84],"6-98-40":[-93.34,3253.33],"6-98-41":[-85,4949.11],"6-98-42":[-76.44,6337.06],"6-98-43":[-68.5,5603.47],"6-98-44":[-62.86,5366.56],"6-98-45":[-50.56,5626.81],"6-98-46":[-38.51,5318.07],"6-98-47":[-23.36,2894.75],"6-98-48":[-12.63,3815.84],"6-98-49":[-1.83,3449.56],"6-98-50":[0.77,2894.03],"6-98-51":[1.97,2716.31],"6-98-52":[-0.24,590.54],"6-98-53":[-6.56,774.1],"6-98-54":[-6.92,878.64],"6-98-55":[-6.32,1715.72],"6-98-56":[12.62,2802.84],"6-98-57":[-12.46,3410],"6-98-58":[-22.47,3708.3],"6-98-59":[-214.72,3736.73],"6-98-60":[-1142.49,3737.71],"6-98-61":[-3792.91,3612.82],"6-98-62":[-4469.7,3317.35],"6-98-63":[-4417.4,3075.47],"6-99-0":[-364.52,447.51],"6-99-1":[-290.13,155.66],"5-49-0":[-371.51,448.58],"6-99-2":[-22.28,953.5],"6-99-3":[-482.07,1748.05],"5-49-1":[-482.07,1807.12],"4-24-0":[-507.95,1807.12],"6-99-4":[-813.43,1651.8],"6-99-5":[-218.72,590],"5-49-2":[-813.43,1774.8],"6-99-6":[-285.15,855.64],"6-99-7":[-3731.89,1480.74],"5-49-3":[-3731.89,1569.96],"4-24-1":[-3731.89,1774.8],"6-99-8":[-3736.42,1436.53],"6-99-9":[-4507.24,868.73],"5-49-4":[-4507.24,1436.53],"6-99-10":[-4621.74,599.89],"6-99-11":[-4707.79,729.83],"5-49-5":[-4834.4,775.1],"4-24-2":[-4834.4,1436.53],"6-99-12":[-5090.06,2274.47],"6-99-13":[-4188.76,3424.72],"5-49-6":[-5090.06,3424.72],"6-99-14":[-4292.66,3181.14],"6-99-15":[-4676.48,3821.64],"5-49-7":[-4764.12,3928.85],"4-24-3":[-5090.06,4155.27],"6-99-16":[-4251.07,3902.64],"6-99-17":[-4738.26,3828.18],"5-49-8":[-4738.26,5415.08],"6-99-18":[-4876.5,5499.12],"6-99-19":[-5960.03,6216.6],"5-49-9":[-5960.03,6216.6],"4-24-4":[-5960.03,6767.17],"6-99-20":[-6992.72,6063.79],"6-99-21":[-4952.91,6434.65],"5-49-10":[-6992.72,6535.05],"6-99-22":[-5781.88,5432.09],"6-99-23":[-6502.07,3530.75],"5-49-11":[-6502.07,5432.09],"4-24-5":[-6992.72,7512.84],"6-99-24":[-7339.17,2554.75],"6-99-25":[-6570.41,2536.99],"5-49-12":[-7339.17,2574.03],"6-99-26":[-6827.32,2080.04],"6-99-27":[-6445.11,2009.72],"5-49-13":[-6827.32,2080.04],"4-24-6":[-7339.17,3021.9],"6-99-28":[-6607.43,1760.05],"6-99-29":[-6362.58,1543.06],"5-49-14":[-6607.43,1760.05],"6-99-30":[-6442.03,2251.47],"6-99-31":[-5733.72,3054.12],"5-49-15":[-6442.03,3433.72],"4-24-7":[-6607.43,3433.72],"6-99-32":[-195.98,3098.13],"6-99-33":[-150.19,2196.47],"5-49-16":[-5471.08,3384.6],"6-99-34":[-147.54,1442.07],"6-99-35":[-118.78,1686.04],"5-49-17":[-2791.74,1686.04],"4-24-8":[-5471.08,3384.6],"6-99-36":[-143.43,1862.71],"6-99-37":[-88.25,2022.05],"5-49-18":[-2811.05,2022.05],"6-99-38":[-94.27,2510.97],"6-99-39":[-95.18,2501.75],"5-49-19":[-190.16,2513.02],"4-24-9":[-3493.93,2960.9],"6-99-40":[-92.2,3411.71],"6-99-41":[-83.68,5229.16],"5-49-20":[-93.34,5229.16],"6-99-42":[-78.69,6352.65],"6-99-43":[-74.99,5945.78],"5-49-21":[-78.69,6352.65],"4-24-10":[-110.58,7274.95],"6-99-44":[-72.56,6157.61],"6-99-45":[-59.76,5387.12],"5-49-22":[-72.56,6157.61],"6-99-46":[-48.96,3739.65],"6-99-47":[-34.76,3871.64],"5-49-23":[-48.96,5318.07],"4-24-11":[-72.56,6604.16],"6-99-48":[-22.48,3771.63],"6-99-49":[-11.77,3171.14],"5-49-24":[-22.48,3815.84],"6-99-50":[-6.68,3321.72],"6-99-51":[-3.06,2161.47],"5-49-25":[-6.68,3321.72],"4-24-12":[-22.48,4132.25],"6-99-52":[-6.11,696.82],"6-99-53":[-14.49,592.88],"5-49-26":[-14.49,774.1],"6-99-54":[-16.12,865.7],"6-99-55":[-5.53,1741.17],"5-49-27":[-16.12,1741.17],"4-24-13":[-41.06,1741.17],"6-99-56":[108.04,2705.18],"6-99-57":[-11.7,3387.35],"5-49-28":[-12.46,3410],"6-99-58":[-9.12,3611.49],"6-99-59":[-229.47,3694.95],"5-49-29":[-229.47,3736.73],"4-24-14":[-229.47,3756.39],"6-99-60":[-2254.34,3696.05],"6-99-61":[-3851.31,3543.3],"5-49-30":[-3851.31,3737.71],"6-99-62":[-4412.98,3284.67],"6-99-63":[-4408.48,3075.96],"5-49-31":[-4469.7,3317.35],"4-24-15":[-4477.7,3799.9],"6-100-0":[-390.94,351.58],"6-100-1":[-450.17,176.67],"6-100-2":[-337.26,852.14],"6-100-3":[-92.47,1463.97],"6-100-4":[-1198.63,1680.37],"6-100-5":[-276.63,702.17],"6-100-6":[-847.1,737.36],"6-100-7":[-779.5,1198.23],"6-100-8":[-1490.09,958.88],"6-100-9":[-4561.87,855.83],"6-100-10":[-4756.31,555.66],"6-100-11":[-4695.48,852.88],"6-100-12":[-4493.8,918],"6-100-13":[-4524.26,3194.59],"6-100-14":[-4412.44,2295.19],"6-100-15":[-4058.81,3379.04],"6-100-16":[-4869.14,3558.09],"6-100-17":[-5072.75,1902.58],"6-100-18":[-5507.87,5176.87],"6-100-19":[-6806.78,4952.19],"6-100-20":[-7047.82,6100.38],"6-100-21":[-5422.5,7111.28],"6-100-22":[-5589.41,4334.26],"6-100-23":[-6273.7,3117.27],"6-100-24":[-6680.93,3084.02],"6-100-25":[-7178.68,2792.64],"6-100-26":[-6925.86,1323.34],"6-100-27":[-5898.05,1726.89],"6-100-28":[-6590.9,1062.2],"6-100-29":[-6749.52,1503.56],"6-100-30":[-4431.14,3063.08],"6-100-31":[-68.74,3673.24],"6-100-32":[-174.08,3783.24],"6-100-33":[-79.57,3170.1],"6-100-34":[-114.16,1437.39],"6-100-35":[-109.27,1036.2],"6-100-36":[-136.16,1688.89],"6-100-37":[-82.44,1262.34],"6-100-38":[-86.64,2743.63],"6-100-39":[-87.84,2954.02],"6-100-40":[-85.52,3019.27],"6-100-41":[-80.19,4227.26],"6-100-42":[-78.68,7011.33],"6-100-43":[-81.4,5829.36],"6-100-44":[-80.06,4840.27],"6-100-45":[-66.32,5057.87],"6-100-46":[-55.39,1867.69],"6-100-47":[-41.05,3437.08],"6-100-48":[-30.56,3288.03],"6-100-49":[-19.26,2279.18],"6-100-50":[-931.09,3069.79],"6-100-51":[-9.52,911],"6-100-52":[-12.52,823.95],"6-100-53":[-17.41,557.51],"6-100-54":[-19.91,858.74],"6-100-55":[-15.87,1791.71],"6-100-56":[62.06,2640.61],"6-100-57":[-13.37,3292.47],"6-100-58":[-6.91,3525.76],"6-100-59":[-234.59,3605.31],"6-100-60":[-2981.06,3601.4],"6-100-61":[-3897.97,3433.72],"6-100-62":[-4391.74,3240.37],"6-100-63":[-4393.37,3075.89],"6-101-0":[-421.01,313.54],"6-101-1":[-512.44,178.89],"5-50-0":[-512.44,351.58],"6-101-2":[-361.24,1063.19],"6-101-3":[-0.04,1302.37],"5-50-1":[-361.24,1463.97],"6-101-4":[-1405.91,935.03],"6-101-5":[-772.36,832.71],"5-50-2":[-1405.91,1680.37],"6-101-6":[-1534.94,728.03],"6-101-7":[-1407.76,1011.68],"5-50-3":[-1534.94,1198.23],"6-101-8":[-2600.51,929.44],"6-101-9":[-4397.62,836.04],"5-50-4":[-4561.87,958.88],"6-101-10":[-4770.73,706.58],"6-101-11":[-4773,984.1],"5-50-5":[-4773,984.1],"6-101-12":[-4525.52,1472.91],"6-101-13":[-4274.01,2280.07],"5-50-6":[-4525.52,3194.59],"6-101-14":[-5036.77,1985.15],"6-101-15":[-4218.02,2132.01],"5-50-7":[-5036.77,3379.04],"6-101-16":[-5245.63,2678.17],"6-101-17":[-5049.38,2311.12],"5-50-8":[-5245.63,3558.09],"6-101-18":[-6178.58,3502.2],"6-101-19":[-6836.91,4106.19],"5-50-9":[-6836.91,5176.87],"6-101-20":[-6222.74,4524.83],"6-101-21":[-6183.09,1942.57],"5-50-10":[-7047.82,7111.28],"6-101-22":[-6217.18,2858.21],"6-101-23":[-6156.22,2530.43],"5-50-11":[-6273.7,4334.26],"6-101-24":[-6127.32,2937.63],"6-101-25":[-6187.88,2686.47],"5-50-12":[-7178.68,3084.02],"6-101-26":[-6708.63,1984.96],"6-101-27":[-6304.3,1793.02],"5-50-13":[-6925.86,1984.96],"6-101-28":[-6890.34,988.31],"6-101-29":[-6807.99,2085.28],"5-50-14":[-6890.34,2085.28],"6-101-30":[-827.51,2120.45],"6-101-31":[-91.17,1041.7],"5-50-15":[-4431.14,3673.24],"6-101-32":[-97.78,1126.85],"6-101-33":[-741.62,2229.43],"5-50-16":[-741.62,3783.24],"6-101-34":[-86,2218.28],"6-101-35":[-91.75,972.31],"5-50-17":[-114.16,2218.28],"6-101-36":[-82.03,1722.02],"6-101-37":[-67.22,1888.96],"5-50-18":[-136.16,1888.96],"6-101-38":[-84.9,2609.46],"6-101-39":[-73.16,2809.62],"5-50-19":[-87.84,2954.02],"6-101-40":[-76.24,2431.42],"6-101-41":[-78.06,2794.21],"5-50-20":[-85.52,4227.26],"6-101-42":[-80.1,1837.51],"6-101-43":[-82.02,4346.82],"5-50-21":[-82.02,7011.33],"6-101-44":[-82.43,4015.21],"6-101-45":[-71.27,3380.19],"5-50-22":[-82.43,5057.87],"6-101-46":[-62.71,2269.12],"6-101-47":[-49.64,2628.18],"5-50-23":[-62.71,3437.08],"6-101-48":[-39.39,2089],"6-101-49":[-28.16,1965.15],"5-50-24":[-39.39,3288.03],"6-101-50":[-1045.89,2237.07],"6-101-51":[-17.14,1465.9],"5-50-25":[-1045.89,3069.79],"6-101-52":[-18.23,975.1],"6-101-53":[-25.73,697.58],"5-50-26":[-25.73,975.1],"6-101-54":[-26.47,842.08],"6-101-55":[-27.05,1793.86],"5-50-27":[-27.05,1793.86],"6-101-56":[130.63,2600.89],"6-101-57":[-15.79,3117.95],"5-50-28":[-15.79,3292.47],"6-101-58":[-21.12,3441.93],"6-101-59":[-223.25,3528.69],"5-50-29":[-234.59,3605.31],"6-101-60":[-3261.12,3498.6],"6-101-61":[-4152.25,3363.74],"5-50-30":[-4152.25,3601.4],"6-101-62":[-4394.82,3196.67],"6-101-63":[-4379.5,3075.29],"5-50-31":[-4394.82,3240.37],"6-102-0":[-536.22,303.03],"6-102-1":[-458.93,93],"6-102-2":[-523.45,1394.62],"6-102-3":[-340.76,1118.35],"6-102-4":[-637.66,963.87],"6-102-5":[-1006.67,1119.08],"6-102-6":[-1697.74,734.39],"6-102-7":[-1650.38,887.81],"6-102-8":[-3194.12,947.89],"6-102-9":[-4309.08,743.5],"6-102-10":[-4735.62,607.14],"6-102-11":[-4787.15,1969.85],"6-102-12":[-4697.47,2509.72],"6-102-13":[-4218.23,1987.12],"6-102-14":[-4472.05,2758.43],"6-102-15":[-4465.68,2221.84],"6-102-16":[-4700.72,1397.18],"6-102-17":[-5315.38,2304.17],"6-102-18":[-6259.92,1918.57],"6-102-19":[-6187.94,3718.19],"6-102-20":[-5971.58,3019.64],"6-102-21":[-5845.44,2199.58],"6-102-22":[-6124.87,2506.96],"6-102-23":[-6381.94,1720.45],"6-102-24":[-5579.24,1495.1],"6-102-25":[-5964.56,1791.56],"6-102-26":[-6228.05,2581.3],"6-102-27":[-6191.63,2426.49],"6-102-28":[-7237.19,1298.21],"6-102-29":[-3650.72,3393.89],"6-102-30":[-84.28,1014.85],"6-102-31":[-93.44,1601.85],"6-102-32":[-104.01,1543.85],"6-102-33":[-125.97,901.87],"6-102-34":[-1367.07,3442.9],"6-102-35":[-1855.07,1260.19],"6-102-36":[-322.96,2328.48],"6-102-37":[-1009.39,2525.3],"6-102-38":[-380.49,1743.52],"6-102-39":[-142.48,1395.18],"6-102-40":[-83.25,1596.45],"6-102-41":[-78.87,2416.96],"6-102-42":[-80.62,2152.58],"6-102-43":[-81.5,2932.67],"6-102-44":[-81.55,3630.19],"6-102-45":[-75.32,1896.56],"6-102-46":[-66.17,2239.16],"6-102-47":[-55.15,1390.17],"6-102-48":[-45.84,2203.77],"6-102-49":[-34.14,2652.43],"6-102-50":[-1232.75,1976.12],"6-102-51":[-1190.99,2418.74],"6-102-52":[-24.4,1885.73],"6-102-53":[-30.23,601.14],"6-102-54":[-36.54,759.49],"6-102-55":[-33.13,1569.32],"6-102-56":[133.31,2518.52],"6-102-57":[-10.76,2973.89],"6-102-58":[-33.46,3288.12],"6-102-59":[-305.74,3458.77],"6-102-60":[-3439.58,3410.38],"6-102-61":[-4199.53,3280.26],"6-102-62":[-4394.84,3169.64],"6-102-63":[-4385.62,3074.68],"6-103-0":[-664.29,385.94],"6-103-1":[-607.48,87.39],"5-51-0":[-664.29,385.94],"6-103-2":[-559,1207.8],"6-103-3":[-287.93,790.24],"5-51-1":[-559,1394.62],"4-25-0":[-664.29,1463.97],"6-103-4":[-231.49,809.08],"6-103-5":[-1283.43,1038.7],"5-51-2":[-1283.43,1119.08],"6-103-6":[-1537.95,689.79],"6-103-7":[-1465.17,820.66],"5-51-3":[-1697.74,887.81],"4-25-1":[-1697.74,1680.37],"3-12-0":[-3731.89,1807.12],"6-103-8":[-3174.17,871.07],"6-103-9":[-4207.91,581.35],"5-51-4":[-4309.08,947.89],"6-103-10":[-4597.12,599.15],"6-103-11":[-4821.39,2526.11],"5-51-5":[-4821.39,2526.11],"4-25-2":[-4821.39,2526.11],"6-103-12":[-4544.45,2781.93],"6-103-13":[-4167.75,2000.38],"5-51-6":[-4697.47,2781.93],"6-103-14":[-4476.17,2483.46],"6-103-15":[-4442.04,1631.54],"5-51-7":[-4476.17,2758.43],"4-25-3":[-5036.77,3379.04],"3-12-1":[-5090.06,4155.27],"6-103-16":[-4817.91,1440.56],"6-103-17":[-5610.41,2312.81],"5-51-8":[-5610.41,2312.81],"6-103-18":[-6311.98,2785.32],"6-103-19":[-6138.44,2608.85],"5-51-9":[-6311.98,3718.19],"4-25-4":[-6836.91,5176.87],"6-103-20":[-5508.45,3075.61],"6-103-21":[-5886.75,2284.9],"5-51-10":[-5971.58,3075.61],"6-103-22":[-6066.19,2090.39],"6-103-23":[-5457.66,1930.57],"5-51-11":[-6381.94,2506.96],"4-25-5":[-7047.82,7111.28],"3-12-2":[-7047.82,7512.84],"6-103-24":[-5713.12,1683.1],"6-103-25":[-5757.33,1775.49],"5-51-12":[-5964.56,1791.56],"6-103-26":[-5922.59,22.84],"6-103-27":[-5849.17,35.12],"5-51-13":[-6228.05,2581.3],"4-25-6":[-7178.68,3084.02],"6-103-28":[-7243.99,50.12],"6-103-29":[-1454.02,3260.42],"5-51-14":[-7243.99,3393.89],"6-103-30":[-58.02,93.68],"6-103-31":[-60.48,1707.53],"5-51-15":[-93.44,1707.53],"4-25-7":[-7243.99,3673.24],"3-12-3":[-7339.17,3673.24],"6-103-32":[-162.28,1767.47],"6-103-33":[-1017.75,98.63],"5-51-16":[-1017.75,1767.47],"6-103-34":[-2341.53,3363.43],"6-103-35":[-4457.98,275.89],"5-51-17":[-4457.98,3442.9],"4-25-8":[-4457.98,3783.24],"6-103-36":[-4499.26,14.72],"6-103-37":[-3941.7,93.37],"5-51-18":[-4499.26,2525.3],"6-103-38":[-2622.21,1699.47],"6-103-39":[-141.96,1600.09],"5-51-19":[-2622.21,1743.52],"4-25-9":[-4499.26,2954.02],"3-12-4":[-5471.08,3783.24],"6-103-40":[-137.39,1823.56],"6-103-41":[-76.31,2004.38],"5-51-20":[-137.39,2416.96],"6-103-42":[-79.55,2165.55],"6-103-43":[-79.53,2984.61],"5-51-21":[-81.5,2984.61],"4-25-10":[-137.39,7011.33],"6-103-44":[-81.64,2519.86],"6-103-45":[-78.43,2732.28],"5-51-22":[-81.64,3630.19],"6-103-46":[-69.24,2273.81],"6-103-47":[-59.94,1433.55],"5-51-23":[-69.24,2273.81],"4-25-11":[-82.43,5057.87],"3-12-5":[-137.39,7274.95],"6-103-48":[-51.3,1616.53],"6-103-49":[-40.42,2462.04],"5-51-24":[-51.3,2652.43],"6-103-50":[-34.48,1978.37],"6-103-51":[-292.05,2624.92],"5-51-25":[-1232.75,2624.92],"4-25-12":[-1232.75,3288.03],"6-103-52":[-31.64,2452.11],"6-103-53":[-39.3,580.7],"5-51-26":[-39.3,2452.11],"6-103-54":[-43.14,595.46],"6-103-55":[-38.79,1241.72],"5-51-27":[-43.14,1569.32],"4-25-13":[-43.14,2452.11],"3-12-6":[-1232.75,4132.25],"6-103-56":[41.8,2536.98],"6-103-57":[-10.42,2925.63],"5-51-28":[-10.76,2973.89],"6-103-58":[-41.3,3218.56],"6-103-59":[-864.59,3373.24],"5-51-29":[-864.59,3458.77],"4-25-14":[-864.59,3605.31],"6-103-60":[-3543.19,3368.42],"6-103-61":[-4192.59,3217.25],"5-51-30":[-4199.53,3410.38],"6-103-62":[-4418.45,3122.3],"6-103-63":[-4379.77,3072.12],"5-51-31":[-4418.45,3169.64],"4-25-15":[-4418.45,3601.4],"3-12-7":[-4477.7,3799.9],"6-104-0":[-526.41,278.25],"6-104-1":[-607.48,84.32],"6-104-2":[-567.79,1215.23],"6-104-3":[-136.97,496.59],"6-104-4":[-530.59,368.79],"6-104-5":[-1286.3,495.96],"6-104-6":[-1290.23,483.95],"6-104-7":[-1728.3,491.06],"6-104-8":[-2795.06,750.89],"6-104-9":[-4321.31,561.53],"6-104-10":[-4660.95,1677.59],"6-104-11":[-4755.16,2530.45],"6-104-12":[-4867.13,2992.37],"6-104-13":[-4319.24,1634.35],"6-104-14":[-4861.02,1654.73],"6-104-15":[-4590.03,1754.54],"6-104-16":[-4680.89,1742.15],"6-104-17":[-5021.65,2838.35],"6-104-18":[-6327.49,3047.6],"6-104-19":[-6022.91,1847.96],"6-104-20":[-5238.09,1280.51],"6-104-21":[-5427.73,1772.77],"6-104-22":[-1527.77,2103.76],"6-104-23":[-3176.09,1877.29],"6-104-24":[-4631.17,953.51],"6-104-25":[-4908.55,27.99],"6-104-26":[-6087.43,44.5],"6-104-27":[-6964.5,55.83],"6-104-28":[-7180.91,944.4],"6-104-29":[-1168.01,3611.18],"6-104-30":[-48.05,2422.76],"6-104-31":[29.67,2305.23],"6-104-32":[-137.09,2345.05],"6-104-33":[-2420.97,2313.76],"6-104-34":[-3121.56,3699.18],"6-104-35":[-4705.71,1042.4],"6-104-36":[-4651.58,248.09],"6-104-37":[-4548.6,171.3],"6-104-38":[-3947.09,13.11],"6-104-39":[-1918.04,879.5],"6-104-40":[-160.75,1768.37],"6-104-41":[-63.64,2023.75],"6-104-42":[-75.39,1680.76],"6-104-43":[-77.46,1192.5],"6-104-44":[-81.92,1797.89],"6-104-45":[-78.44,2994.6],"6-104-46":[-69.89,2749.34],"6-104-47":[-61.52,1693.13],"6-104-48":[-54.23,1689.54],"6-104-49":[-44.26,1624.78],"6-104-50":[-39.25,1606.81],"6-104-51":[-36.43,2574.37],"6-104-52":[-37.17,2397.44],"6-104-53":[-45.54,1602.59],"6-104-54":[-46.98,571.52],"6-104-55":[-44.18,1300.89],"6-104-56":[14.72,2508.46],"6-104-57":[-9.19,2971.73],"6-104-58":[-48.98,3190.51],"6-104-59":[-1971.26,3320.02],"6-104-60":[-3543.17,3317.03],"6-104-61":[-4270.15,3144.59],"6-104-62":[-4463.8,3080.43],"6-104-63":[-4359.14,3069.68],"6-105-0":[-386.63,295.13],"6-105-1":[-530.27,104.53],"5-52-0":[-607.48,295.13],"6-105-2":[-57.63,673.64],"6-105-3":[-142.54,382.73],"5-52-1":[-567.79,1215.23],"6-105-4":[-1219.69,24.28],"6-105-5":[-1293.1,453.82],"5-52-2":[-1293.1,495.96],"6-105-6":[-1282.86,471.8],"6-105-7":[-1513.06,385.91],"5-52-3":[-1728.3,491.06],"6-105-8":[-3081.89,448.35],"6-105-9":[-4301.03,380.42],"5-52-4":[-4321.31,750.89],"6-105-10":[-4774.33,1615.07],"6-105-11":[-4753.47,2962.65],"5-52-5":[-4774.33,2962.65],"6-105-12":[-4793.17,2450.24],"6-105-13":[-4635.6,1532.32],"5-52-6":[-4867.13,2992.37],"6-105-14":[-5474.7,1232.86],"6-105-15":[-4765.11,1464.19],"5-52-7":[-5474.7,1754.54],"6-105-16":[-5081.47,2060.03],"6-105-17":[-5649.49,2407.63],"5-52-8":[-5649.49,2838.35],"6-105-18":[-6192.35,805.59],"6-105-19":[-5515.95,1519.8],"5-52-9":[-6327.49,3047.6],"6-105-20":[-153.64,1755.88],"6-105-21":[-69.59,1735.53],"5-52-10":[-5427.73,1772.77],"6-105-22":[4.65,2160.72],"6-105-23":[-47.98,1800.52],"5-52-11":[-3176.09,2160.72],"6-105-24":[-983.55,1138.97],"6-105-25":[-4898.89,52.59],"5-52-12":[-4908.55,1138.97],"6-105-26":[-6006.98,67.42],"6-105-27":[-7165.68,82.34],"5-52-13":[-7165.68,82.34],"6-105-28":[-7107.38,2813.87],"6-105-29":[-2789.9,4108.68],"5-52-14":[-7180.91,4108.68],"6-105-30":[-2046.22,2687.61],"6-105-31":[-2203.42,2267.3],"5-52-15":[-2203.42,2687.61],"6-105-32":[-2023.09,2189.3],"6-105-33":[-475.58,2628.6],"5-52-16":[-2420.97,2628.6],"6-105-34":[-2993.96,4026.67],"6-105-35":[-3073,2972.87],"5-52-17":[-4705.71,4026.67],"6-105-36":[-5007.8,38.1],"6-105-37":[-4418.38,27.92],"5-52-18":[-5007.8,248.09],"6-105-38":[-4679.05,2.72],"6-105-39":[-3358.64,1205.98],"5-52-19":[-4679.05,1205.98],"6-105-40":[-100.62,1717.53],"6-105-41":[13.76,2116.73],"5-52-20":[-160.75,2116.73],"6-105-42":[-14.21,1651.52],"6-105-43":[-99.76,1646.92],"5-52-21":[-99.76,1680.76],"6-105-44":[-78.53,1437.77],"6-105-45":[-78.21,708.59],"5-52-22":[-81.92,2994.6],"6-105-46":[-69.94,2304.63],"6-105-47":[-61.91,2016.37],"5-52-23":[-69.94,2749.34],"6-105-48":[-54.84,1440.18],"6-105-49":[-47.73,1222.85],"5-52-24":[-54.84,1689.54],"6-105-50":[-42.44,1502.32],"6-105-51":[-41.44,2344.1],"5-52-25":[-42.44,2574.37],"6-105-52":[-43.24,2813.61],"6-105-53":[-52.02,1580.09],"5-52-26":[-52.02,2813.61],"6-105-54":[-54.04,379.62],"6-105-55":[-53.1,680.38],"5-52-27":[-54.04,1300.89],"6-105-56":[19.16,2408.3],"6-105-57":[-6.33,3030.32],"5-52-28":[-9.19,3030.32],"6-105-58":[-48.95,3188.16],"6-105-59":[-2420.07,3235.61],"5-52-29":[-2420.07,3320.02],"6-105-60":[-3653.6,3197.29],"6-105-61":[-4402.41,3081.54],"5-52-30":[-4402.41,3317.03],"6-105-62":[-4442.47,3060.18],"6-105-63":[-4335.36,3063.52],"5-52-31":[-4463.8,3080.43],"6-106-0":[-382.69,518.1],"6-106-1":[-442,276.46],"6-106-2":[-281.26,561.88],"6-106-3":[-169.68,522.34],"6-106-4":[-1384.91,0.13],"6-106-5":[-1025.1,460.29],"6-106-6":[-1225,454.78],"6-106-7":[-1960.43,411.14],"6-106-8":[-3522.54,443.53],"6-106-9":[-4277.44,383.49],"6-106-10":[-4763.29,717.41],"6-106-11":[-4792.44,2548.26],"6-106-12":[-4965.29,2226.52],"6-106-13":[-4754.24,1486.61],"6-106-14":[-5102.45,1598.44],"6-106-15":[-4846.65,1743.81],"6-106-16":[-5136.73,1936.12],"6-106-17":[-5992.39,1887.25],"6-106-18":[-6270.11,785.42],"6-106-19":[-5555.1,1101.77],"6-106-20":[-105.16,584.53],"6-106-21":[-78.25,1795.67],"6-106-22":[-35.2,1934.56],"6-106-23":[-36.2,3691.21],"6-106-24":[-55.29,1951.28],"6-106-25":[-2434.64,2501.63],"6-106-26":[-5844.39,2962.21],"6-106-27":[-7088.95,2343.09],"6-106-28":[-7127.73,2288.03],"6-106-29":[-5085.75,1818.49],"6-106-30":[-2226.25,3403.08],"6-106-31":[-2614.6,3030.91],"6-106-32":[-5551.59,3132.81],"6-106-33":[-5187.49,3490.23],"6-106-34":[-4798.95,1959.49],"6-106-35":[-4231.66,2405.04],"6-106-36":[-5091.52,2311.11],"6-106-37":[-5322.52,2857.2],"6-106-38":[-4356.76,2411.64],"6-106-39":[-4709.05,1867.27],"6-106-40":[-1353.88,3536.2],"6-106-41":[-232.12,1847.54],"6-106-42":[-29.3,1738.68],"6-106-43":[-76.47,544.69],"6-106-44":[-78.18,1063.1],"6-106-45":[-82.72,673.36],"6-106-46":[-69.49,1847.24],"6-106-47":[-61.11,1904.12],"6-106-48":[-54.99,1698.78],"6-106-49":[-48.72,1558.94],"6-106-50":[-45.04,1454.59],"6-106-51":[-45.09,2182.46],"6-106-52":[-47.54,2446.34],"6-106-53":[-57.28,707.41],"6-106-54":[-61.21,389.51],"6-106-55":[-59.83,845.24],"6-106-56":[15,2462.74],"6-106-57":[-18.09,3046.36],"6-106-58":[-77.59,3177.4],"6-106-59":[-2784.49,3172.35],"6-106-60":[-5343.81,3109.06],"6-106-61":[-5227.4,3012.28],"6-106-62":[-4422.66,3048.31],"6-106-63":[-4439.18,3060.25],"6-107-0":[-286.77,546.08],"6-107-1":[-378.19,115.12],"5-53-0":[-442,546.08],"6-107-2":[-455.31,408.6],"6-107-3":[-333.04,478.27],"5-53-1":[-455.31,561.88],"4-26-0":[-607.48,1215.23],"6-107-4":[-681.52,0.24],"6-107-5":[-883.51,565.28],"5-53-2":[-1384.91,565.28],"6-107-6":[-779.35,479.01],"6-107-7":[-986.72,427.06],"5-53-3":[-1960.43,479.01],"4-26-1":[-1960.43,565.28],"6-107-8":[-3454.89,342.41],"6-107-9":[-4321.54,417.22],"5-53-4":[-4321.54,443.53],"6-107-10":[-4617.61,1200.19],"6-107-11":[-4818.58,2000.95],"5-53-5":[-4818.58,2548.26],"4-26-2":[-4818.58,2962.65],"6-107-12":[-5173.19,1644.22],"6-107-13":[-5052,1523.39],"5-53-6":[-5173.19,2226.52],"6-107-14":[-5421.41,1600.44],"6-107-15":[-5348.99,1541.69],"5-53-7":[-5421.41,1743.81],"4-26-3":[-5474.7,2992.37],"6-107-16":[-5283.07,816.14],"6-107-17":[-5990.04,1174.47],"5-53-8":[-5992.39,1936.12],"6-107-18":[-6455.15,918.27],"6-107-19":[-5625.24,284.34],"5-53-9":[-6455.15,1101.77],"4-26-4":[-6455.15,3047.6],"6-107-20":[-52.47,526.37],"6-107-21":[-35.84,1218.7],"5-53-10":[-105.16,1795.67],"6-107-22":[0.69,665.65],"6-107-23":[-53.71,3956.01],"5-53-11":[-53.71,3956.01],"4-26-5":[-5427.73,3956.01],"6-107-24":[11.3,1042.66],"6-107-25":[-140.92,2731.61],"5-53-12":[-2434.64,2731.61],"6-107-26":[-2442.89,2712.33],"6-107-27":[-3959.71,2627.63],"5-53-13":[-7088.95,2962.21],"4-26-6":[-7165.68,2962.21],"6-107-28":[-4124.69,2528.23],"6-107-29":[-5178.42,2469.27],"5-53-14":[-7127.73,2528.23],"6-107-30":[-6397.3,2587.77],"6-107-31":[-4678.95,2851.48],"5-53-15":[-6397.3,3403.08],"4-26-7":[-7180.91,4108.68],"6-107-32":[-5755.48,2955.49],"6-107-33":[-5453.9,2702.65],"5-53-16":[-5755.48,3490.23],"6-107-34":[-5829.92,2335.3],"6-107-35":[-5067.92,2392.22],"5-53-17":[-5829.92,2405.04],"4-26-8":[-5829.92,4026.67],"6-107-36":[-3178.2,2496.62],"6-107-37":[-5674.08,2665.32],"5-53-18":[-5674.08,2857.2],"6-107-38":[-5493.89,2656.26],"6-107-39":[-5934.3,936.67],"5-53-19":[-5934.3,2656.26],"4-26-9":[-5934.3,2857.2],"6-107-40":[-6907.12,3813],"6-107-41":[-1957.5,692.66],"5-53-20":[-6907.12,3813],"6-107-42":[-102.58,1162.16],"6-107-43":[-51.74,610.87],"5-53-21":[-102.58,1738.68],"4-26-10":[-6907.12,3813],"6-107-44":[-79.98,322.34],"6-107-45":[-103.15,850.26],"5-53-22":[-103.15,1063.1],"6-107-46":[-98.51,1077.53],"6-107-47":[-60.78,748.14],"5-53-23":[-98.51,1904.12],"4-26-11":[-103.15,2994.6],"6-107-48":[-54.95,1479.71],"6-107-49":[-49.55,1565.44],"5-53-24":[-54.99,1698.78],"6-107-50":[-47.09,1490.38],"6-107-51":[-49,1610.21],"5-53-25":[-49,2182.46],"4-26-12":[-54.99,2574.37],"6-107-52":[-52.14,1975.45],"6-107-53":[-62.69,1147.18],"5-53-26":[-62.69,2446.34],"6-107-54":[-67.4,422.24],"6-107-55":[-64.36,1172.91],"5-53-27":[-67.4,1172.91],"4-26-13":[-67.4,2813.61],"6-107-56":[0.38,2590.73],"6-107-57":[-18.89,3089.34],"5-53-28":[-18.89,3089.34],"6-107-58":[-68.11,3196.31],"6-107-59":[-2999.96,3163.37],"5-53-29":[-2999.96,3196.31],"4-26-14":[-2999.96,3320.02],"6-107-60":[-5139.66,2994.83],"6-107-61":[-4603,2932.32],"5-53-30":[-5343.81,3109.06],"6-107-62":[-4447.14,3035.5],"6-107-63":[-4391.36,3058.07],"5-53-31":[-4447.14,3060.25],"4-26-15":[-5343.81,3317.03],"6-108-0":[-269.86,460.52],"6-108-1":[-909.85,103.01],"6-108-2":[-934.43,448.87],"6-108-3":[-448.87,410.23],"6-108-4":[-1134.26,783.32],"6-108-5":[-1014.64,707.83],"6-108-6":[-803.54,487.14],"6-108-7":[-492.37,1127.4],"6-108-8":[-3410.5,1401.18],"6-108-9":[-4432.32,816.9],"6-108-10":[-4679.36,804.47],"6-108-11":[-4901.46,1845.92],"6-108-12":[-4877.43,1706.86],"6-108-13":[-5078.78,1269.14],"6-108-14":[-5485.84,878.23],"6-108-15":[-5416.22,339.07],"6-108-16":[-5311.85,1264.57],"6-108-17":[-5872.94,1987.41],"6-108-18":[-6139.97,1234.98],"6-108-19":[-5744.12,581.2],"6-108-20":[-1210.92,1941.55],"6-108-21":[18.57,485.34],"6-108-22":[22.07,547.54],"6-108-23":[8,553.56],"6-108-24":[22.25,451.89],"6-108-25":[12.35,918.99],"6-108-26":[-100.52,825.9],"6-108-27":[-1028.33,1607.31],"6-108-28":[-3782.32,2883.2],"6-108-29":[-5712.91,3011.04],"6-108-30":[-5919.23,2699.58],"6-108-31":[-6130.93,2053.63],"6-108-32":[-5581.72,1989.62],"6-108-33":[-5856.99,2752.59],"6-108-34":[-5125.09,2931.03],"6-108-35":[-9837.42,2985.2],"6-108-36":[-9176.01,1499.32],"6-108-37":[-7403.24,844.91],"6-108-38":[-6431.65,967.01],"6-108-39":[-6750.67,455.4],"6-108-40":[-8904.47,557.1],"6-108-41":[-2245.02,555.5],"6-108-42":[-155.54,497.24],"6-108-43":[-143.34,1897.55],"6-108-44":[-116.63,504.19],"6-108-45":[-69.83,1160],"6-108-46":[-133.68,1895.04],"6-108-47":[-58.68,1225.25],"6-108-48":[-54.09,331.06],"6-108-49":[-49.45,858.23],"6-108-50":[-48.53,1246.12],"6-108-51":[-51.56,1690.85],"6-108-52":[-55.45,1790.32],"6-108-53":[-65.39,785.47],"6-108-54":[-71.76,816.92],"6-108-55":[-65.99,1394.18],"6-108-56":[-2.53,2630.58],"6-108-57":[-6.92,3151.32],"6-108-58":[-53.92,3203.64],"6-108-59":[-2992.28,3159.64],"6-108-60":[-4112.67,2917.97],"6-108-61":[-4420.65,2871.65],"6-108-62":[-4443.67,3023.22],"6-108-63":[-4394.23,3057.86],"6-109-0":[-270.44,656.94],"6-109-1":[-827.99,51.45],"5-54-0":[-909.85,656.94],"6-109-2":[-881.02,445.4],"6-109-3":[-438.51,348.03],"5-54-1":[-934.43,448.87],"6-109-4":[-755.24,1075.1],"6-109-5":[-1021.66,875.53],"5-54-2":[-1134.26,1075.1],"6-109-6":[-964.92,1068.55],"6-109-7":[-1389.91,2201.02],"5-54-3":[-1389.91,2201.02],"6-109-8":[-2933.34,2117.99],"6-109-9":[-4505.72,1848.18],"5-54-4":[-4505.72,2117.99],"6-109-10":[-4787.22,676.85],"6-109-11":[-4862.28,2240.33],"5-54-5":[-4901.46,2240.33],"6-109-12":[-4826.2,2048.94],"6-109-13":[-4454.84,905.39],"5-54-6":[-5078.78,2048.94],"6-109-14":[-5226.57,1057.62],"6-109-15":[-5811.86,1445.43],"5-54-7":[-5811.86,1445.43],"6-109-16":[-6600.71,1718.97],"6-109-17":[-5848.43,2763.77],"5-54-8":[-6600.71,2763.77],"6-109-18":[-6128.18,1727.04],"6-109-19":[-5755.9,1925.58],"5-54-9":[-6139.97,1925.58],"6-109-20":[-2873.02,1453.61],"6-109-21":[16.04,722.76],"5-54-10":[-2873.02,1941.55],"6-109-22":[13.17,993.49],"6-109-23":[24.41,997.46],"5-54-11":[8,997.46],"6-109-24":[29.92,532.19],"6-109-25":[35.9,997.76],"5-54-12":[12.35,997.76],"6-109-26":[-62.41,705.14],"6-109-27":[-155.45,192.69],"5-54-13":[-1028.33,1607.31],"6-109-28":[-3320.92,2276.38],"6-109-29":[-5565.73,1372.75],"5-54-14":[-5712.91,3011.04],"6-109-30":[-5326.65,2446.71],"6-109-31":[-5439.11,2066.98],"5-54-15":[-6130.93,2699.58],"6-109-32":[-5242.54,2152.95],"6-109-33":[-9088.35,2555.71],"5-54-16":[-9088.35,2752.59],"6-109-34":[-9658.18,1415.76],"6-109-35":[-10034.76,2395.35],"5-54-17":[-10034.76,2985.2],"6-109-36":[-7677.31,198.32],"6-109-37":[-6489.8,755.14],"5-54-18":[-9176.01,1499.32],"6-109-38":[-6783.71,1012.77],"6-109-39":[-6707.72,556.98],"5-54-19":[-6783.71,1012.77],"6-109-40":[-7531.73,1049.45],"6-109-41":[-7516.23,1051.49],"5-54-20":[-8904.47,1051.49],"6-109-42":[-1415.28,657.78],"6-109-43":[-917.74,1418.1],"5-54-21":[-1415.28,1897.55],"6-109-44":[-203.47,1825.58],"6-109-45":[-2529.02,1649.03],"5-54-22":[-2529.02,1825.58],"6-109-46":[-2502.26,2676.78],"6-109-47":[-55.65,1688.92],"5-54-23":[-2502.26,2676.78],"6-109-48":[-52.05,1423.43],"6-109-49":[-47.99,1021.62],"5-54-24":[-54.09,1423.43],"6-109-50":[-47.82,876.38],"6-109-51":[-52.39,1918.93],"5-54-25":[-52.39,1918.93],"6-109-52":[-58.59,2139.52],"6-109-53":[-69.44,671.86],"5-54-26":[-69.44,2139.52],"6-109-54":[-76.93,1835.17],"6-109-55":[-75.43,2142.74],"5-54-27":[-76.93,2142.74],"6-109-56":[54.7,2622.61],"6-109-57":[-13.76,3171.09],"5-54-28":[-13.76,3171.09],"6-109-58":[-51.27,3189.23],"6-109-59":[-2937.77,3116.04],"5-54-29":[-2992.28,3203.64],"6-109-60":[-4129.79,2882.89],"6-109-61":[-4476.03,2844.52],"5-54-30":[-4476.03,2917.97],"6-109-62":[-4360.94,3011.97],"6-109-63":[-4379.14,3059.53],"5-54-31":[-4443.67,3059.53],"6-110-0":[-250.66,758.26],"6-110-1":[-639.76,157.09],"6-110-2":[-685.8,661.06],"6-110-3":[-268.85,380.05],"6-110-4":[-297.72,699.79],"6-110-5":[-929.59,824.82],"6-110-6":[-1441.83,856.13],"6-110-7":[-1340.2,1828.99],"6-110-8":[-2191.42,1922.66],"6-110-9":[-4584.62,2002.65],"6-110-10":[-4755.66,531.48],"6-110-11":[-4922.75,2290.58],"6-110-12":[-4734.98,2374.21],"6-110-13":[-4033.09,1509.02],"6-110-14":[-5177.97,1216.44],"6-110-15":[-5122.6,1386.01],"6-110-16":[-5852.6,1509.87],"6-110-17":[-6019.33,1774.19],"6-110-18":[-5925.45,999.37],"6-110-19":[-5864.11,1373.1],"6-110-20":[-1399.53,1801.42],"6-110-21":[-19.03,1948.19],"6-110-22":[24,1394.61],"6-110-23":[28.82,1297.55],"6-110-24":[34.84,856.67],"6-110-25":[38.27,554.6],"6-110-26":[-37.78,444.1],"6-110-27":[-141.33,346.26],"6-110-28":[-2350.94,127.03],"6-110-29":[-7570.28,837.45],"6-110-30":[-7572.68,2981.67],"6-110-31":[-4811.97,1446.01],"6-110-32":[-5014.78,1519.04],"6-110-33":[-5712.41,3088.67],"6-110-34":[-6523.63,862.43],"6-110-35":[-6612.97,116.33],"6-110-36":[-6757,359.52],"6-110-37":[-7622.08,453.11],"6-110-38":[-7728.22,558.61],"6-110-39":[-6469.64,915.42],"6-110-40":[-6273.13,1429.68],"6-110-41":[-6885.04,1437.62],"6-110-42":[-5789.08,1847.18],"6-110-43":[-2607.79,1764.42],"6-110-44":[-2139.1,1318.08],"6-110-45":[-3282.63,927.36],"6-110-46":[-3638.83,1736.18],"6-110-47":[-2977.08,1480.88],"6-110-48":[-49.85,1362.03],"6-110-49":[-46.08,1189.43],"6-110-50":[-46.52,1475],"6-110-51":[-52.46,2242.57],"6-110-52":[-59.62,2260.57],"6-110-53":[-71.74,522.46],"6-110-54":[-80.19,1992.64],"6-110-55":[-74.89,1933.66],"6-110-56":[37.2,2601.74],"6-110-57":[-29.38,3136.57],"6-110-58":[-51.27,3137.89],"6-110-59":[-2933.37,3008.63],"6-110-60":[-4048.36,2819.29],"6-110-61":[-4427.04,2805.69],"6-110-62":[-4352,2999.73],"6-110-63":[-4305.39,3062.38],"6-111-0":[-323.33,754.83],"6-111-1":[-702.85,187.17],"5-55-0":[-702.85,758.26],"6-111-2":[-737.84,648.26],"6-111-3":[-469.89,449.75],"5-55-1":[-737.84,661.06],"4-27-0":[-934.43,758.26],"6-111-4":[-1182.43,490.13],"6-111-5":[-1362,1088.07],"5-55-2":[-1362,1088.07],"6-111-6":[-1166.96,1035.63],"6-111-7":[-1423.87,1221.31],"5-55-3":[-1441.83,1828.99],"4-27-1":[-1441.83,2201.02],"3-13-0":[-1960.43,2201.02],"6-111-8":[-2163.91,1652.58],"6-111-9":[-4546.4,2070.51],"5-55-4":[-4584.62,2070.51],"6-111-10":[-4788.65,825.86],"6-111-11":[-4913.95,1856.83],"5-55-5":[-4922.75,2290.58],"4-27-2":[-4922.75,2290.58],"6-111-12":[-4533.1,2358.55],"6-111-13":[-4006.46,2286.52],"5-55-6":[-4734.98,2374.21],"6-111-14":[-4355.03,2263.84],"6-111-15":[-4810.31,1447.73],"5-55-7":[-5177.97,2263.84],"4-27-3":[-5811.86,2374.21],"3-13-1":[-5811.86,2992.37],"2-6-0":[-5811.86,4155.27],"6-111-16":[-5292.31,1878.55],"6-111-17":[-5825.22,62.05],"5-55-8":[-6019.33,1878.55],"6-111-18":[-5782.95,66.77],"6-111-19":[-6031.55,1986.11],"5-55-9":[-6031.55,1986.11],"4-27-4":[-6600.71,2763.77],"6-111-20":[-178.07,1882.11],"6-111-21":[27.45,387.12],"5-55-10":[-1399.53,1948.19],"6-111-22":[33.04,937.65],"6-111-23":[33.91,1419.55],"5-55-11":[24,1419.55],"4-27-5":[-2873.02,1948.19],"3-13-2":[-6600.71,3956.01],"6-111-24":[37.06,1087.22],"6-111-25":[39.61,455.2],"5-55-12":[34.84,1087.22],"6-111-26":[44.33,446.87],"6-111-27":[0.43,554.22],"5-55-13":[-141.33,554.22],"4-27-6":[-1028.33,1607.31],"6-111-28":[-342.38,125.8],"6-111-29":[-3693.35,614.14],"5-55-14":[-7570.28,837.45],"6-111-30":[-3688.89,1913.09],"6-111-31":[-4778.06,2928.23],"5-55-15":[-7572.68,2981.67],"4-27-7":[-7572.68,3011.04],"3-13-3":[-7572.68,4108.68],"2-6-1":[-7572.68,7512.84],"6-111-32":[-5480.06,3028.24],"6-111-33":[-6076.26,2016.59],"5-55-16":[-6076.26,3088.67],"6-111-34":[-8930.19,670.15],"6-111-35":[-6319.86,174.3],"5-55-17":[-8930.19,862.43],"4-27-8":[-10034.76,3088.67],"6-111-36":[-6662.31,610.22],"6-111-37":[-6727.95,457.36],"5-55-18":[-7622.08,610.22],"6-111-38":[-6703.37,466.21],"6-111-39":[-7157.32,1152.22],"5-55-19":[-7728.22,1152.22],"4-27-9":[-9176.01,1499.32],"3-13-4":[-10034.76,4026.67],"6-111-40":[-5842.52,1528.53],"6-111-41":[-5775.21,1002.66],"5-55-20":[-6885.04,1528.53],"6-111-42":[-5651.27,400.15],"6-111-43":[-4946.41,1791.1],"5-55-21":[-5789.08,1847.18],"4-27-10":[-8904.47,1897.55],"6-111-44":[-1567.69,1916.11],"6-111-45":[-3584.66,-20.77],"5-55-22":[-3584.66,1916.11],"6-111-46":[-3855.55,-20.97],"6-111-47":[-3726.44,1812.54],"5-55-23":[-3855.55,1812.54],"4-27-11":[-3855.55,2676.78],"3-13-5":[-8904.47,3813],"2-6-2":[-10034.76,7274.95],"6-111-48":[-45.23,1405.74],"6-111-49":[-42.63,2153.84],"5-55-24":[-49.85,2153.84],"6-111-50":[-45.55,2160.52],"6-111-51":[-51.95,2239.63],"5-55-25":[-52.46,2242.57],"4-27-12":[-54.09,2242.57],"6-111-52":[-60.12,1808.82],"6-111-53":[-74.09,806.78],"5-55-26":[-74.09,2260.57],"6-111-54":[-82.21,2067.49],"6-111-55":[-78.66,1711.28],"5-55-27":[-82.21,2067.49],"4-27-13":[-82.21,2260.57],"3-13-6":[-82.21,2813.61],"6-111-56":[18.81,2605.54],"6-111-57":[-26.45,2976.73],"5-55-28":[-29.38,3136.57],"6-111-58":[-46.21,2992.85],"6-111-59":[-3028.17,2893.93],"5-55-29":[-3028.17,3137.89],"4-27-14":[-3028.17,3203.64],"6-111-60":[-4045.52,2687.3],"6-111-61":[-4452.97,2763.19],"5-55-30":[-4452.97,2819.29],"6-111-62":[-4321.84,2987.5],"6-111-63":[-4305.39,3065.26],"5-55-31":[-4352,3065.26],"4-27-15":[-4476.03,3065.26],"3-13-7":[-5343.81,3320.02],"2-6-3":[-5343.81,4132.25],"6-112-0":[-315.35,703.8],"6-112-1":[-500.97,188.17],"6-112-2":[-672.54,426.09],"6-112-3":[-637.86,265.05],"6-112-4":[-1182.43,535.81],"6-112-5":[-1178.5,965.91],"6-112-6":[-1309.88,1017.56],"6-112-7":[-2150.48,1767.28],"6-112-8":[-3092.96,1681.65],"6-112-9":[-4395.44,1766.67],"6-112-10":[-4664.57,1755.07],"6-112-11":[-4741.98,1915.02],"6-112-12":[-4452.89,2099.48],"6-112-13":[-3978.01,2155.76],"6-112-14":[-4196.3,1965.97],"6-112-15":[-4806.19,2024.26],"6-112-16":[-5271.91,1410.98],"6-112-17":[-5632.69,66.52],"6-112-18":[-5870.55,3037.73],"6-112-19":[-5099.73,3225.44],"6-112-20":[-42.36,1148.96],"6-112-21":[-8.1,410.71],"6-112-22":[-5.97,293.67],"6-112-23":[36.79,1063.75],"6-112-24":[39.76,637.58],"6-112-25":[41.96,467.74],"6-112-26":[-2.18,358.76],"6-112-27":[-1.62,407.82],"6-112-28":[-55.19,128.34],"6-112-29":[-53.86,134.69],"6-112-30":[-1512.17,4766.85],"6-112-31":[-5137.94,1479.51],"6-112-32":[-5372.95,1532.53],"6-112-33":[-5738.8,4900.75],"6-112-34":[-8241.06,152.9],"6-112-35":[-7154.87,138.86],"6-112-36":[-6266.86,417.68],"6-112-37":[-6347.65,370.77],"6-112-38":[-6180.93,478.74],"6-112-39":[-6935.69,643.8],"6-112-40":[-6887.3,1103.75],"6-112-41":[-6044.18,301.67],"6-112-42":[-5342,426.73],"6-112-43":[-4826.53,1062.96],"6-112-44":[-2697.25,3130.43],"6-112-45":[-3480.96,2969.74],"6-112-46":[-3690.31,-16.66],"6-112-47":[-3710.67,1366.96],"6-112-48":[-2085.48,1915.25],"6-112-49":[-40.23,1848.97],"6-112-50":[-44.52,2039.75],"6-112-51":[-174.25,1981.47],"6-112-52":[-60.31,1859.99],"6-112-53":[-75.15,1697.18],"6-112-54":[-83.59,1769.68],"6-112-55":[-84.73,1703.65],"6-112-56":[14.74,2525.84],"6-112-57":[-27.87,2840.96],"6-112-58":[-40.15,2867.37],"6-112-59":[-2183.56,2794.55],"6-112-60":[-3705.32,2564.78],"6-112-61":[-4506.77,2709.29],"6-112-62":[-4289.6,2977.76],"6-112-63":[-4281.74,3068.14],"6-113-0":[-237.9,609.54],"6-113-1":[-654.94,258.06],"5-56-0":[-654.94,703.8],"6-113-2":[-681.4,461.37],"6-113-3":[-773.18,6.86],"5-56-1":[-773.18,461.37],"6-113-4":[-684.38,493.31],"6-113-5":[-626.54,608.12],"5-56-2":[-1182.43,965.91],"6-113-6":[-1337.5,609.54],"6-113-7":[-1015.02,2177.91],"5-56-3":[-2150.48,2177.91],"6-113-8":[-3386.76,2476.55],"6-113-9":[-4330.29,2650.27],"5-56-4":[-4395.44,2650.27],"6-113-10":[-4642.34,2153.15],"6-113-11":[-4825.16,1760.98],"5-56-5":[-4825.16,2153.15],"6-113-12":[-4357.22,1103.01],"6-113-13":[-4344.99,1633.71],"5-56-6":[-4452.89,2155.76],"6-113-14":[-5073.4,2108.2],"6-113-15":[-5648.56,1700.99],"5-56-7":[-5648.56,2108.2],"6-113-16":[-5457.85,1549.63],"6-113-17":[-5625.96,1641.19],"5-56-8":[-5632.69,1641.19],"6-113-18":[-5664.55,2604.93],"6-113-19":[-78.76,3800.26],"5-56-9":[-5870.55,3800.26],"6-113-20":[-8.36,1074.29],"6-113-21":[-5.83,1038.21],"5-56-10":[-42.36,1148.96],"6-113-22":[6.51,236.01],"6-113-23":[42.43,387.89],"5-56-11":[-5.97,1063.75],"6-113-24":[44.58,634.08],"6-113-25":[-5.67,464.96],"5-56-12":[-5.67,637.58],"6-113-26":[-99.13,216.97],"6-113-27":[-11.67,115.83],"5-56-13":[-99.13,407.82],"6-113-28":[0.49,237.05],"6-113-29":[3.59,230.31],"5-56-14":[-55.19,237.05],"6-113-30":[6.27,4681.3],"6-113-31":[-4723.47,2263.2],"5-56-15":[-5137.94,4766.85],"6-113-32":[-4812.96,2301.21],"6-113-33":[-5291.95,5227.39],"5-56-16":[-5738.8,5227.39],"6-113-34":[-8740.43,203.53],"6-113-35":[-8879.14,194.76],"5-56-17":[-8879.14,203.53],"6-113-36":[-7669.24,131.12],"6-113-37":[-6711.73,223.46],"5-56-18":[-7669.24,417.68],"6-113-38":[-7963.6,475.97],"6-113-39":[-6789.64,657.09],"5-56-19":[-7963.6,657.09],"6-113-40":[-5735.69,421.94],"6-113-41":[-5809.94,242.02],"5-56-20":[-6887.3,1103.75],"6-113-42":[-4854.7,1079.1],"6-113-43":[-4237.08,1164.85],"5-56-21":[-5342,1164.85],"6-113-44":[-6405.63,3720.25],"6-113-45":[-2520.67,2507.92],"5-56-22":[-6405.63,3720.25],"6-113-46":[-4096.61,1520.18],"6-113-47":[-3742.35,1494.65],"5-56-23":[-4096.61,1520.18],"6-113-48":[-2201.39,1675.03],"6-113-49":[-792.69,2012.19],"5-56-24":[-2201.39,2012.19],"6-113-50":[-191.23,1604.7],"6-113-51":[-162.88,1067.01],"5-56-25":[-191.23,2039.75],"6-113-52":[-197.34,1704.07],"6-113-53":[-76.66,2148.55],"5-56-26":[-197.34,2148.55],"6-113-54":[-85.09,2671.32],"6-113-55":[-88.87,2502.55],"5-56-27":[-88.87,2671.32],"6-113-56":[48.36,2522.11],"6-113-57":[-29.31,2629.41],"5-56-28":[-29.31,2840.96],"6-113-58":[-26.26,2726.71],"6-113-59":[-670.83,2693.87],"5-56-29":[-2183.56,2867.37],"6-113-60":[-3387.1,2498.35],"6-113-61":[-4352.21,2666.36],"5-56-30":[-4506.77,2709.29],"6-113-62":[-4113.81,2970.03],"6-113-63":[-4290.72,3070.04],"5-56-31":[-4290.72,3070.04],"6-114-0":[-217.29,631.52],"6-114-1":[-652.96,593.83],"6-114-2":[-652.96,502.69],"6-114-3":[-711.39,7.07],"6-114-4":[-962.46,35.46],"6-114-5":[-969.37,264.4],"6-114-6":[-2060.35,486.19],"6-114-7":[-1457.34,1696.85],"6-114-8":[-3458.33,2512.73],"6-114-9":[-4383.62,2822.43],"6-114-10":[-4900.81,2513.43],"6-114-11":[-4971.59,1227.42],"6-114-12":[-4627.64,627.07],"6-114-13":[-4444.85,1624.43],"6-114-14":[-5259.1,2346.04],"6-114-15":[-6433.58,1737.87],"6-114-16":[-5970.29,2312.97],"6-114-17":[-5424.99,2061.69],"6-114-18":[-4050.6,1666.14],"6-114-19":[-16.18,315.6],"6-114-20":[11.53,433.31],"6-114-21":[17.61,444.66],"6-114-22":[9.96,768.11],"6-114-23":[28.86,604.84],"6-114-24":[41.43,641.31],"6-114-25":[6.21,732.92],"6-114-26":[-2.3,520.43],"6-114-27":[-5.85,880.74],"6-114-28":[7.56,438.76],"6-114-29":[20.35,3629.05],"6-114-30":[-3441.73,3943.74],"6-114-31":[-4244.85,1426.8],"6-114-32":[-4340.52,1467.8],"6-114-33":[-4413.15,4032.23],"6-114-34":[-5477.02,3694.06],"6-114-35":[-10049.63,439.48],"6-114-36":[-10883.73,882.4],"6-114-37":[-5760.92,520.58],"6-114-38":[-8182.96,739.41],"6-114-39":[-5356.9,660.81],"6-114-40":[-8476.64,710.83],"6-114-41":[-9287.43,750.15],"6-114-42":[-9851.17,458.66],"6-114-43":[-9796.6,485.33],"6-114-44":[-9315.04,336.86],"6-114-45":[-7698.82,1596.14],"6-114-46":[-2831.4,1994.69],"6-114-47":[-793.5,2215.96],"6-114-48":[-1277.31,1574.86],"6-114-49":[-960.62,1356.08],"6-114-50":[-94.37,1531.42],"6-114-51":[-709.67,522.06],"6-114-52":[-430.47,1139.42],"6-114-53":[-75.38,2490.43],"6-114-54":[-88.58,2850.78],"6-114-55":[-89.56,2551.72],"6-114-56":[16.7,2298.07],"6-114-57":[-19.08,2577.32],"6-114-58":[-24.95,2638.08],"6-114-59":[-83.74,2612.99],"6-114-60":[-2174.13,2407.18],"6-114-61":[-3518.73,2636.29],"6-114-62":[-3712.95,2964.79],"6-114-63":[-4283.73,3070.97],"6-115-0":[-187.04,530.93],"6-115-1":[-99.37,430.8],"5-57-0":[-652.96,631.52],"6-115-2":[-563.41,825.96],"6-115-3":[-731.31,170.94],"5-57-1":[-731.31,825.96],"4-28-0":[-773.18,825.96],"6-115-4":[-1100.27,5.87],"6-115-5":[-1251.66,73.43],"5-57-2":[-1251.66,264.4],"6-115-6":[-1636.04,115.08],"6-115-7":[-2093.35,672.76],"5-57-3":[-2093.35,1696.85],"4-28-1":[-2150.48,2177.91],"6-115-8":[-3667.84,2830.65],"6-115-9":[-4258.51,2291.47],"5-57-4":[-4383.62,2830.65],"6-115-10":[-4724.92,2265.18],"6-115-11":[-4195.94,34.94],"5-57-5":[-4971.59,2513.43],"4-28-2":[-4971.59,2830.65],"6-115-12":[-3868.98,35.92],"6-115-13":[-5231.94,820.94],"5-57-6":[-5231.94,1624.43],"6-115-14":[-6647.87,1183.3],"6-115-15":[-5281.18,553.47],"5-57-7":[-6647.87,2346.04],"4-28-3":[-6647.87,2346.04],"6-115-16":[-5068.24,1740.56],"6-115-17":[-4365.04,1514.48],"5-57-8":[-5970.29,2312.97],"6-115-18":[-126.48,1481.35],"6-115-19":[16.45,488.33],"5-57-9":[-4050.6,1666.14],"4-28-4":[-5970.29,3800.26],"6-115-20":[24.53,517.03],"6-115-21":[25.92,466.97],"5-57-10":[11.53,517.03],"6-115-22":[27.14,504.64],"6-115-23":[25.23,721.3],"5-57-11":[9.96,768.11],"4-28-5":[-42.36,1148.96],"6-115-24":[19.75,1064.3],"6-115-25":[-5.67,1668.89],"5-57-12":[-5.67,1668.89],"6-115-26":[-2825.97,1447.2],"6-115-27":[-3615.64,572.29],"5-57-13":[-3615.64,1447.2],"4-28-6":[-3615.64,1668.89],"6-115-28":[-2126.29,211.74],"6-115-29":[-404.43,4475.65],"5-57-14":[-2126.29,4475.65],"6-115-30":[-2695.19,3432.98],"6-115-31":[-5029,210.19],"5-57-15":[-5029,3943.74],"4-28-7":[-5137.94,4766.85],"6-115-32":[-4771.84,296.18],"6-115-33":[-5123.4,3477.99],"5-57-16":[-5123.4,4032.23],"6-115-34":[-4997.92,4553.66],"6-115-35":[-7320.04,488.1],"5-57-17":[-10049.63,4553.66],"4-28-8":[-10049.63,5227.39],"6-115-36":[-10739.69,573.48],"6-115-37":[-5915.41,1449.42],"5-57-18":[-10883.73,1449.42],"6-115-38":[-5524.22,1670.14],"6-115-39":[-8932.24,1064.78],"5-57-19":[-8932.24,1670.14],"4-28-9":[-10883.73,1670.14],"6-115-40":[-8812,727.4],"6-115-41":[-8392.96,517.69],"5-57-20":[-9287.43,750.15],"6-115-42":[-7872.39,518.96],"6-115-43":[-6764.45,560.11],"5-57-21":[-9851.17,560.11],"4-28-10":[-9851.17,1164.85],"6-115-44":[-7018.42,521.33],"6-115-45":[-7799.77,1522.55],"5-57-22":[-9315.04,1596.14],"6-115-46":[-7614.84,1610.49],"6-115-47":[-6336.52,1704.56],"5-57-23":[-7614.84,2215.96],"4-28-11":[-9315.04,3720.25],"6-115-48":[-3744.4,504.45],"6-115-49":[-2649.47,1115.29],"5-57-24":[-3744.4,1574.86],"6-115-50":[-1798.94,796.94],"6-115-51":[-1884.46,1.57],"5-57-25":[-1884.46,1531.42],"4-28-12":[-3744.4,2039.75],"6-115-52":[-486.07,-22.55],"6-115-53":[-197.82,2231.18],"5-57-26":[-486.07,2490.43],"6-115-54":[-88.66,2288.35],"6-115-55":[-97.84,2886.75],"5-57-27":[-97.84,2886.75],"4-28-13":[-486.07,2886.75],"6-115-56":[-97.84,2001.44],"6-115-57":[-13.4,2428.6],"5-57-28":[-97.84,2577.32],"6-115-58":[-28.88,2560],"6-115-59":[-79.49,2552.69],"5-57-29":[-83.74,2638.08],"4-28-14":[-2183.56,2867.37],"6-115-60":[-2354.66,2355.28],"6-115-61":[-3053.46,2602.75],"5-57-30":[-3518.73,2636.29],"6-115-62":[-3317.66,2959.59],"6-115-63":[-4448.78,3076],"5-57-31":[-4448.78,3076],"4-28-15":[-4506.77,3076],"6-116-0":[-157.27,588],"6-116-1":[-30.91,619.39],"6-116-2":[-86.06,857.81],"6-116-3":[-594.94,584.08],"6-116-4":[-868.16,361.97],"6-116-5":[-1058.27,89.29],"6-116-6":[-1566.39,341.42],"6-116-7":[-2001.59,925.79],"6-116-8":[-3618.3,2260.37],"6-116-9":[-4360.2,2390.56],"6-116-10":[-4749.94,1856.79],"6-116-11":[-4365.05,37.51],"6-116-12":[-4921.25,37.9],"6-116-13":[-5623.28,37.4],"6-116-14":[-6034.38,40.87],"6-116-15":[-5248.79,1590.34],"6-116-16":[-4152.47,1786.57],"6-116-17":[-3533.65,1543.35],"6-116-18":[-3081.9,1965.18],"6-116-19":[15.73,2197.03],"6-116-20":[16.81,1387.12],"6-116-21":[19.43,339.66],"6-116-22":[23.95,968.42],"6-116-23":[29.01,1287.75],"6-116-24":[-77.95,1323.71],"6-116-25":[-1556,1284.39],"6-116-26":[-4497.18,99.51],"6-116-27":[-5262.69,99.08],"6-116-28":[-3029.54,3997.49],"6-116-29":[-6385.09,4112.66],"6-116-30":[-2568.6,1782.61],"6-116-31":[-6288.19,740.66],"6-116-32":[-7111.28,783.66],"6-116-33":[-5493.91,1907.63],"6-116-34":[-4683.48,4188.78],"6-116-35":[-7034.25,4099.51],"6-116-36":[-9875.02,139.92],"6-116-37":[-9525.81,129.47],"6-116-38":[-8773.83,1285.71],"6-116-39":[-7921.08,1325.23],"6-116-40":[-6582.23,1296.76],"6-116-41":[-6316.23,988.43],"6-116-42":[-8465.08,430.67],"6-116-43":[-6438.18,1421.13],"6-116-44":[-7095.88,2241.03],"6-116-45":[-7675.74,1999.21],"6-116-46":[-7337.56,1568.36],"6-116-47":[-9334.83,1737.57],"6-116-48":[-3739.03,1541.1],"6-116-49":[-3476.14,-13.09],"6-116-50":[-1798.94,-17.24],"6-116-51":[-1811.87,-19.53],"6-116-52":[-301.26,-22.38],"6-116-53":[-167.42,1885.71],"6-116-54":[-87.53,2398.56],"6-116-55":[-101.33,2286.69],"6-116-56":[-102.54,1792.11],"6-116-57":[-13.65,2338.91],"6-116-58":[-31.04,2481.09],"6-116-59":[-75.07,2481.96],"6-116-60":[-2584.8,2344.16],"6-116-61":[-2779.5,2569.82],"6-116-62":[-2768.05,2955.42],"6-116-63":[-4427.28,3081.95],"6-117-0":[-117.15,889.5],"6-117-1":[-8.17,1165.42],"5-58-0":[-157.27,1165.42],"6-117-2":[-333.27,1098.87],"6-117-3":[-364.55,1029.82],"5-58-1":[-594.94,1098.87],"6-117-4":[-777.9,446.39],"6-117-5":[-981.65,58.1],"5-58-2":[-1058.27,446.39],"6-117-6":[-1431.07,341.42],"6-117-7":[-1846.36,692.04],"5-58-3":[-2001.59,925.79],"6-117-8":[-3562.75,2175.65],"6-117-9":[-4180.76,2203.44],"5-58-4":[-4360.2,2390.56],"6-117-10":[-4281.24,2094.72],"6-117-11":[-4335.23,1541.51],"5-58-5":[-4749.94,2094.72],"6-117-12":[-4618.79,39.7],"6-117-13":[-4806.12,40.77],"5-58-6":[-5623.28,40.77],"6-117-14":[-5012.17,43.2],"6-117-15":[-6446.55,1533.21],"5-58-7":[-6446.55,1590.34],"6-117-16":[-4699.4,45.41],"6-117-17":[-4932.33,36.86],"5-58-8":[-4932.33,1786.57],"6-117-18":[-4982.4,1251.5],"6-117-19":[-4968.05,1583.75],"5-58-9":[-4982.4,2197.03],"6-117-20":[-528.87,1608.21],"6-117-21":[14.56,1512.08],"5-58-10":[-528.87,1608.21],"6-117-22":[19.38,1197.94],"6-117-23":[-32.07,1008.31],"5-58-11":[-32.07,1287.75],"6-117-24":[-324.64,868.08],"6-117-25":[-1824.42,88.5],"5-58-12":[-1824.42,1323.71],"6-117-26":[-4890.42,89.46],"6-117-27":[-4788.85,120.54],"5-58-13":[-5262.69,120.54],"6-117-28":[-3189.37,3000.93],"6-117-29":[-8146.74,1965.94],"5-58-14":[-8146.74,4112.66],"6-117-30":[-2812.73,2341.64],"6-117-31":[-7174.86,935.38],"5-58-15":[-7174.86,2341.64],"6-117-32":[-7126.95,964.38],"6-117-33":[-5915.39,2427.64],"5-58-16":[-7126.95,2427.64],"6-117-34":[-5061.26,2022.98],"6-117-35":[-6177.77,3071.93],"5-58-17":[-7034.25,4188.78],"6-117-36":[-6298.8,143.56],"6-117-37":[-6635.98,128.82],"5-58-18":[-9875.02,143.56],"6-117-38":[-6274.6,126.23],"6-117-39":[-6113.61,869.8],"5-58-19":[-8773.83,1325.23],"6-117-40":[-5929.23,1008.41],"6-117-41":[-6305.98,1199.98],"5-58-20":[-6582.23,1296.76],"6-117-42":[-6805.26,1550.43],"6-117-43":[-7008.26,1629.02],"5-58-21":[-8465.08,1629.02],"6-117-44":[-8681.6,1622.97],"6-117-45":[-8183.55,1262.52],"5-58-22":[-8681.6,2241.03],"6-117-46":[-6895.09,1.67],"6-117-47":[-9654.63,-5.89],"5-58-23":[-9654.63,1737.57],"6-117-48":[-7416.93,1460.21],"6-117-49":[-3583.39,-13.2],"5-58-24":[-7416.93,1541.1],"6-117-50":[-1433.49,-17.24],"6-117-51":[-1442.55,-20.04],"5-58-25":[-1811.87,-17.24],"6-117-52":[-456.12,1447.51],"6-117-53":[-164.68,2081.72],"5-58-26":[-456.12,2081.72],"6-117-54":[-86.62,2232.56],"6-117-55":[-101.99,2194.66],"5-58-27":[-101.99,2398.56],"6-117-56":[-106.25,1600.9],"6-117-57":[-18.37,2342.57],"5-58-28":[-106.25,2342.57],"6-117-58":[-30.84,2456.95],"6-117-59":[-74.54,2466.51],"5-58-29":[-75.07,2481.96],"6-117-60":[-2625.71,2291.18],"6-117-61":[-2781.74,2529.67],"5-58-30":[-2781.74,2569.82],"6-117-62":[-2248.52,2953.28],"6-117-63":[-4401.78,3084.91],"5-58-31":[-4427.28,3084.91],"6-118-0":[-129.02,911.99],"6-118-1":[6.64,1219.86],"6-118-2":[-297.72,2134.22],"6-118-3":[-2190.37,2133.38],"6-118-4":[-543.46,1022.63],"6-118-5":[-987.51,871.83],"6-118-6":[-1170.75,75.94],"6-118-7":[-2295.81,559.13],"6-118-8":[-3542.04,1102.21],"6-118-9":[-3936.44,1636.07],"6-118-10":[-4037.5,1813.48],"6-118-11":[-4143.24,1062.27],"6-118-12":[-4447.72,43.51],"6-118-13":[-4632.72,45.98],"6-118-14":[-5518.07,1460.13],"6-118-15":[-5586.61,1395.62],"6-118-16":[-6399.77,30.44],"6-118-17":[-5185.87,30.2],"6-118-18":[-5078.26,24.25],"6-118-19":[-5133.45,23.71],"6-118-20":[-5212.89,1371.43],"6-118-21":[-7297.49,1596.89],"6-118-22":[-4793.53,1262.63],"6-118-23":[-4385.58,466.32],"6-118-24":[-3305.66,72.19],"6-118-25":[-3117.27,81.26],"6-118-26":[-4793.75,84.41],"6-118-27":[-4811.89,769.24],"6-118-28":[-5121.46,987.57],"6-118-29":[-8895.66,337.7],"6-118-30":[-6033.07,2324.77],"6-118-31":[-6318.75,396.72],"6-118-32":[-4831.85,435.72],"6-118-33":[-4739.98,2388.16],"6-118-34":[-5400.43,419.14],"6-118-35":[-6063.11,1094.58],"6-118-36":[-8213.52,866.24],"6-118-37":[-6352.85,127.95],"6-118-38":[-5939.1,126.07],"6-118-39":[-6146.39,114.91],"6-118-40":[-5790.02,468.23],"6-118-41":[-6284.8,1263.13],"6-118-42":[-6559.51,1616.85],"6-118-43":[-6354.62,1396.93],"6-118-44":[-6695.74,40.32],"6-118-45":[-8749.81,22.42],"6-118-46":[-9912.03,6.94],"6-118-47":[-9502.69,-3.98],"6-118-48":[-9591.92,1305.84],"6-118-49":[-3423.16,1389.12],"6-118-50":[-1280.44,-10.19],"6-118-51":[-927.75,-20.43],"6-118-52":[-1013.08,982.96],"6-118-53":[-160.55,1825.48],"6-118-54":[-85.12,1590.07],"6-118-55":[-101.8,1107.21],"6-118-56":[-107,1522.76],"6-118-57":[-31.01,2294.89],"6-118-58":[-31.98,2319.46],"6-118-59":[-91.3,2399.61],"6-118-60":[-2793.15,2218.73],"6-118-61":[-2881.88,2447.37],"6-118-62":[-3368.66,2959.26],"6-118-63":[-4393.23,3089.37],"6-119-0":[-54.55,760],"6-119-1":[6.4,1341.53],"5-59-0":[-129.02,1341.53],"6-119-2":[-449.12,2688.82],"6-119-3":[-3165.15,3402.83],"5-59-1":[-3165.15,3402.83],"4-29-0":[-3165.15,3402.83],"6-119-4":[-610.56,1715.86],"6-119-5":[-1075.15,1249.44],"5-59-2":[-1075.15,1715.86],"6-119-6":[-1268.32,341.83],"6-119-7":[-1805.28,795.87],"5-59-3":[-2295.81,795.87],"4-29-1":[-2295.81,1715.86],"3-14-0":[-3165.15,3402.83],"6-119-8":[-3519.24,1098.37],"6-119-9":[-3570.74,1766.68],"5-59-4":[-3936.44,1766.68],"6-119-10":[-3550.32,1878.57],"6-119-11":[-6470.11,935.54],"5-59-5":[-6470.11,1878.57],"4-29-2":[-6470.11,2390.56],"6-119-12":[-4628.34,2005.12],"6-119-13":[-4845.41,2477.12],"5-59-6":[-4845.41,2477.12],"6-119-14":[-5636.3,1817.92],"6-119-15":[-5622.88,33.35],"5-59-7":[-5636.3,1817.92],"4-29-3":[-6446.55,2477.12],"3-14-1":[-6647.87,2830.65],"6-119-16":[-5611.37,23.39],"6-119-17":[-5516.39,17.38],"5-59-8":[-6399.77,30.44],"6-119-18":[-5476.01,11.21],"6-119-19":[-5309.53,11.2],"5-59-9":[-5476.01,24.25],"4-29-4":[-6399.77,2197.03],"6-119-20":[-5347.62,19.59],"6-119-21":[-5080.75,25.03],"5-59-10":[-7297.49,1596.89],"6-119-22":[-5020.66,34.94],"6-119-23":[-4903.3,56.89],"5-59-11":[-5020.66,1262.63],"4-29-5":[-7297.49,1608.21],"3-14-2":[-7297.49,3800.26],"6-119-24":[-3435.85,58.63],"6-119-25":[-3571.58,64.62],"5-59-12":[-3571.58,81.26],"6-119-26":[-4795.19,76.13],"6-119-27":[-4536.58,78.92],"5-59-13":[-4811.89,769.24],"4-29-6":[-5262.69,1323.71],"6-119-28":[-5330.86,1020.41],"6-119-29":[-7295.87,2736.56],"5-59-14":[-8895.66,2736.56],"6-119-30":[-3608.32,909.88],"6-119-31":[-3154.36,118.67],"5-59-15":[-6318.75,2324.77],"4-29-7":[-8895.66,4112.66],"3-14-3":[-8895.66,4766.85],"6-119-32":[-3114.22,260.46],"6-119-33":[-4255.39,960.88],"5-59-16":[-4831.85,2388.16],"6-119-34":[-5297.69,2782.57],"6-119-35":[-6052.62,1115.42],"5-59-17":[-6063.11,2782.57],"4-29-8":[-7126.95,4188.78],"6-119-36":[-6402.6,138.91],"6-119-37":[-6824.02,131.76],"5-59-18":[-8213.52,866.24],"6-119-38":[-6498.7,123.47],"6-119-39":[-5918.74,110.92],"5-59-19":[-6498.7,126.07],"4-29-9":[-9875.02,1325.23],"3-14-4":[-10883.73,5227.39],"6-119-40":[-6128.03,99.59],"6-119-41":[-6519.49,84.71],"5-59-20":[-6519.49,1263.13],"6-119-42":[-9176.7,74.04],"6-119-43":[-10680.3,59.16],"5-59-21":[-10680.3,1616.85],"4-29-10":[-10680.3,1629.02],"6-119-44":[-6763.45,40.96],"6-119-45":[-6519.66,25.39],"5-59-22":[-8749.81,40.96],"6-119-46":[-9445.89,10.69],"6-119-47":[-6123.65,-2.2],"5-59-23":[-9912.03,10.69],"4-29-11":[-9912.03,2241.03],"3-14-5":[-10680.3,3720.25],"6-119-48":[-10853.54,-8.1],"6-119-49":[-8574.57,1748.92],"5-59-24":[-10853.54,1748.92],"6-119-50":[-1223.57,2383.12],"6-119-51":[-217.21,1893.12],"5-59-25":[-1280.44,2383.12],"4-29-12":[-10853.54,2383.12],"6-119-52":[-433.74,838.54],"6-119-53":[-451.42,1902.57],"5-59-26":[-1013.08,1902.57],"6-119-54":[-84.63,1806.68],"6-119-55":[-101.06,1131.36],"5-59-27":[-101.8,1806.68],"4-29-13":[-1013.08,2398.56],"3-14-6":[-10853.54,2886.75],"6-119-56":[-106.67,1594.21],"6-119-57":[-31.01,2260.16],"5-59-28":[-107,2294.89],"6-119-58":[-40.57,2260.16],"6-119-59":[-122.46,2352.82],"5-59-29":[-122.46,2399.61],"4-29-14":[-122.46,2481.96],"6-119-60":[-2866.22,3169.82],"6-119-61":[-2914.69,2470.74],"5-59-30":[-2914.69,3169.82],"6-119-62":[-3553,2967.24],"6-119-63":[-4413.73,3091.37],"5-59-31":[-4413.73,3091.37],"4-29-15":[-4427.28,3169.82],"3-14-7":[-4506.77,3169.82],"6-120-0":[-55.55,724.25],"6-120-1":[5.52,1874.12],"6-120-2":[-955.47,2936.62],"6-120-3":[-2180.06,3414.83],"6-120-4":[-69.75,2856.44],"6-120-5":[-897.88,2143.79],"6-120-6":[-1157.78,2764.3],"6-120-7":[-2619.95,1481.77],"6-120-8":[-3296.34,1454.04],"6-120-9":[-3345.62,1757.61],"6-120-10":[-6609.18,947.68],"6-120-11":[-6590.7,2605.13],"6-120-12":[-5687.86,3631.59],"6-120-13":[-5276.6,3468.03],"6-120-14":[-5872.65,40.12],"6-120-15":[-5614.35,24.95],"6-120-16":[-5664,17.95],"6-120-17":[-5402.66,7.43],"6-120-18":[-5497,3],"6-120-19":[-5339.46,7.47],"6-120-20":[-4782.38,525.64],"6-120-21":[-4754.25,112.06],"6-120-22":[-4204.44,41.18],"6-120-23":[-3361.51,128.34],"6-120-24":[-2901.96,320.52],"6-120-25":[-4792.78,312.66],"6-120-26":[-5489.9,62.27],"6-120-27":[-4823.71,320.6],"6-120-28":[-5326.13,2329.59],"6-120-29":[-4282.44,1183.15],"6-120-30":[-2845.84,307.69],"6-120-31":[-3113.14,110.31],"6-120-32":[-3457.59,118.16],"6-120-33":[-4809.47,128.82],"6-120-34":[-5306.33,1251.14],"6-120-35":[-5928.98,2387.59],"6-120-36":[-6390.47,264.39],"6-120-37":[-6457.12,130.22],"6-120-38":[-6076.57,121.69],"6-120-39":[-5927.65,115.94],"6-120-40":[-5955.92,105.9],"6-120-41":[-6311.98,90.52],"6-120-42":[-6153.64,74.62],"6-120-43":[-5805.65,495.66],"6-120-44":[-5548.65,48.16],"6-120-45":[-6239.76,25.68],"6-120-46":[-7151.59,12.37],"6-120-47":[-6409.75,-0.49],"6-120-48":[-8360.13,-6.4],"6-120-49":[-7969.09,-10.64],"6-120-50":[-7897.4,3297.03],"6-120-51":[-1959.34,3585.59],"6-120-52":[-113.8,2516.12],"6-120-53":[-197.28,960.68],"6-120-54":[-84.73,1792.6],"6-120-55":[-104.1,1485.04],"6-120-56":[-112.02,1627.11],"6-120-57":[-24.77,2656.26],"6-120-58":[-47.85,2268.9],"6-120-59":[-172.93,2732.99],"6-120-60":[-3015.38,3191.81],"6-120-61":[-3572.17,2726.57],"6-120-62":[-4035.09,2977.2],"6-120-63":[-4362.3,3090.38],"6-121-0":[-56.54,784.16],"6-121-1":[-119.82,2728.02],"5-60-0":[-119.82,2728.02],"6-121-2":[-1558.73,4094.57],"6-121-3":[-1548.62,2241.19],"5-60-1":[-2180.06,4094.57],"6-121-4":[-1757.29,3832.91],"6-121-5":[-2241.05,3569.68],"5-60-2":[-2241.05,3832.91],"6-121-6":[-1300.6,2695.9],"6-121-7":[-2708.34,1052.69],"5-60-3":[-2708.34,2764.3],"6-121-8":[-3358.21,1653.57],"6-121-9":[-4131.5,1415.31],"5-60-4":[-4131.5,1757.61],"6-121-10":[-4858.1,1872.79],"6-121-11":[-5472.05,3277.23],"5-60-5":[-6609.18,3277.23],"6-121-12":[-5350.87,4774.23],"6-121-13":[-5927.84,28.14],"5-60-6":[-5927.84,4774.23],"6-121-14":[-7062.03,18.42],"6-121-15":[-5638.62,16.76],"5-60-7":[-7062.03,40.12],"6-121-16":[-5398.32,7.27],"6-121-17":[-5249.74,-0.26],"5-60-8":[-5664,17.95],"6-121-18":[-5445.67,-2.7],"6-121-19":[-4935,-0.57],"5-60-9":[-5497,7.47],"6-121-20":[-2281.98,2.2],"6-121-21":[-2412.8,8.56],"5-60-10":[-4782.38,525.64],"6-121-22":[-2319.41,15.96],"6-121-23":[-2554.81,30.18],"5-60-11":[-4204.44,128.34],"6-121-24":[-3725.28,107.41],"6-121-25":[-4952.98,278.42],"5-60-12":[-4952.98,320.52],"6-121-26":[-5302.77,60.14],"6-121-27":[-8432.48,310],"5-60-13":[-8432.48,320.6],"6-121-28":[-8445.91,1874.06],"6-121-29":[-4394.15,798.37],"5-60-14":[-8445.91,2329.59],"6-121-30":[-4214.87,673.97],"6-121-31":[-4909.25,96.35],"5-60-15":[-4909.25,673.97],"6-121-32":[-4524.53,101.5],"6-121-33":[-4708.54,1195.58],"5-60-16":[-4809.47,1195.58],"6-121-34":[-5263.16,839.37],"6-121-35":[-5431.78,1980.07],"5-60-17":[-5928.98,2387.59],"6-121-36":[-5881.53,241.22],"6-121-37":[-5906.24,129.2],"5-60-18":[-6457.12,264.39],"6-121-38":[-6153.29,122.21],"6-121-39":[-5665.94,116.7],"5-60-19":[-6153.29,122.21],"6-121-40":[-6068.98,106.12],"6-121-41":[-6769.5,94.44],"5-60-20":[-6769.5,106.12],"6-121-42":[-6326.71,82.35],"6-121-43":[-6475.65,66.27],"5-60-21":[-6475.65,495.66],"6-121-44":[-6585.85,55.75],"6-121-45":[-5665.02,35.28],"5-60-22":[-6585.85,55.75],"6-121-46":[-5980.55,21.22],"6-121-47":[-8565.41,3.98],"5-60-23":[-8565.41,21.22],"6-121-48":[-7688.98,-3.49],"6-121-49":[-6094.09,-8.06],"5-60-24":[-8360.13,-3.49],"6-121-50":[-7925.02,-10.84],"6-121-51":[-7262.98,4714.21],"5-60-25":[-7925.02,4714.21],"6-121-52":[-1254.34,3173.24],"6-121-53":[-279.33,1760.54],"5-60-26":[-1254.34,3173.24],"6-121-54":[-88.46,1430.3],"6-121-55":[-106.46,1636.79],"5-60-27":[-106.46,1792.6],"6-121-56":[-114.63,1037.69],"6-121-57":[-117.59,2620.78],"5-60-28":[-117.59,2656.26],"6-121-58":[-116.47,3433.82],"6-121-59":[-326.4,3317.92],"5-60-29":[-326.4,3433.82],"6-121-60":[-2852.26,2320.2],"6-121-61":[-3608.19,4077.78],"5-60-30":[-3608.19,4077.78],"6-121-62":[-4027.06,2984.14],"6-121-63":[-4301.84,3088.17],"5-60-31":[-4362.3,3090.38],"6-122-0":[-56.54,1014.6],"6-122-1":[-109.77,3546.5],"6-122-2":[-1210.31,4044.71],"6-122-3":[-1409.05,4.81],"6-122-4":[-1085.99,2572.72],"6-122-5":[-1350.81,3255.72],"6-122-6":[-1368.16,3402.98],"6-122-7":[-2794.56,1528.57],"6-122-8":[-3475.81,2107.47],"6-122-9":[-4413.25,1582.28],"6-122-10":[-5290.8,1233.67],"6-122-11":[-5917.39,932.54],"6-122-12":[-5796.65,850.98],"6-122-13":[-4791.57,472.87],"6-122-14":[-9889.98,16.34],"6-122-15":[-5992.39,6.88],"6-122-16":[-5621.81,-0.71],"6-122-17":[-5005.96,-4.25],"6-122-18":[-4194.8,-5.37],"6-122-19":[-3160.01,-6.19],"6-122-20":[-3411.31,-2.87],"6-122-21":[-3636.98,2.46],"6-122-22":[-3840.52,10.62],"6-122-23":[-3781.57,22.49],"6-122-24":[-4206.98,1627.03],"6-122-25":[-6101.98,333.75],"6-122-26":[-5952.12,54.72],"6-122-27":[-9079.48,60.99],"6-122-28":[-8454.89,738.31],"6-122-29":[-5441.79,72.29],"6-122-30":[-4625.54,81.32],"6-122-31":[-4641.51,86.88],"6-122-32":[-4517.57,92.44],"6-122-33":[-4923.32,106.03],"6-122-34":[-5332.06,119.42],"6-122-35":[-5557.99,866.32],"6-122-36":[-5705.71,218.89],"6-122-37":[-5889.42,127.16],"6-122-38":[-5897.43,340.77],"6-122-39":[-6007.07,1689.03],"6-122-40":[-6305.73,106.61],"6-122-41":[-6283.84,96.95],"6-122-42":[-6920.2,82.62],"6-122-43":[-7795.55,66.13],"6-122-44":[-6961.36,57.54],"6-122-45":[-6797.87,44.27],"6-122-46":[-6318.08,29.21],"6-122-47":[-7616.71,13.47],"6-122-48":[-10312.48,-2.93],"6-122-49":[-6228.89,-6.28],"6-122-50":[-6196.34,517.88],"6-122-51":[-6991.8,775.99],"6-122-52":[-4261.65,866.52],"6-122-53":[-1470.63,1246.67],"6-122-54":[-91.49,1594.29],"6-122-55":[-105.7,1756.51],"6-122-56":[-117.38,1533.57],"6-122-57":[-60.46,3075.8],"6-122-58":[-117.89,3148.6],"6-122-59":[-1054.95,2551.83],"6-122-60":[-2851.46,209.78],"6-122-61":[-3431.75,3800.64],"6-122-62":[-3988.49,3358.99],"6-122-63":[-4295.78,3084.48],"6-123-0":[-56.54,1244.65],"6-123-1":[-232.32,3676.75],"5-61-0":[-232.32,3676.75],"6-123-2":[-3382.75,4354.84],"6-123-3":[-1294.36,5.41],"5-61-1":[-3382.75,4354.84],"4-30-0":[-3382.75,4354.84],"6-123-4":[-2791.43,3682.29],"6-123-5":[-1170.46,3170.38],"5-61-2":[-2791.43,3682.29],"6-123-6":[-2127.24,3838.38],"6-123-7":[-3347.99,1680.33],"5-61-3":[-3347.99,3838.38],"4-30-1":[-3347.99,3838.38],"6-123-8":[-3635.38,1646.59],"6-123-9":[-3647.76,1328.47],"5-61-4":[-4413.25,2107.47],"6-123-10":[-5327.86,1210.93],"6-123-11":[-5689.06,20.59],"5-61-5":[-5917.39,1233.67],"4-30-2":[-6609.18,3277.23],"6-123-12":[-5306.98,744.81],"6-123-13":[-1323.94,597.84],"5-61-6":[-5796.65,850.98],"6-123-14":[-3360.99,467.59],"6-123-15":[-4513.17,2234.46],"5-61-7":[-9889.98,2234.46],"4-30-3":[-9889.98,4774.23],"6-123-16":[-4699.05,2752.59],"6-123-17":[-4390.06,-6.72],"5-61-8":[-5621.81,2752.59],"6-123-18":[-3204.99,-8.71],"6-123-19":[-3164.59,-8.81],"5-61-9":[-4194.8,-5.37],"4-30-4":[-5664,2752.59],"6-123-20":[-4217.52,33.69],"6-123-21":[-4274.01,312.86],"5-61-10":[-4274.01,312.86],"6-123-22":[-3827.4,1.5],"6-123-23":[-3830.58,209.11],"5-61-11":[-3840.52,209.11],"4-30-5":[-4782.38,525.64],"6-123-24":[-7245.18,1610.47],"6-123-25":[-7349.14,684.13],"5-61-12":[-7349.14,1627.03],"6-123-26":[-6517.45,1790.76],"6-123-27":[-9033.13,917.4],"5-61-13":[-9079.48,1790.76],"4-30-6":[-9079.48,1790.76],"6-123-28":[-5951.42,556.87],"6-123-29":[-5497.1,68.93],"5-61-14":[-8454.89,738.31],"6-123-30":[-4910.82,72.06],"6-123-31":[-4464.67,236.83],"5-61-15":[-4910.82,236.83],"4-30-7":[-8454.89,2329.59],"6-123-32":[-4593.18,105.9],"6-123-33":[-5101.41,189.87],"5-61-16":[-5101.41,189.87],"6-123-34":[-5266.67,289.81],"6-123-35":[-5291.73,608.86],"5-61-17":[-5557.99,866.32],"4-30-8":[-5928.98,2387.59],"6-123-36":[-5767.79,1017.74],"6-123-37":[-6472.3,1941.75],"5-61-18":[-6472.3,1941.75],"6-123-38":[-5832.98,717.25],"6-123-39":[-9233.31,1664.47],"5-61-19":[-9233.31,1689.03],"4-30-9":[-9233.31,1941.75],"6-123-40":[-6592.72,309.11],"6-123-41":[-6481.34,105.67],"5-61-20":[-6592.72,309.11],"6-123-42":[-6303.27,357.87],"6-123-43":[-6844.66,77.86],"5-61-21":[-7795.55,357.87],"4-30-10":[-7795.55,495.66],"6-123-44":[-7086.51,65.38],"6-123-45":[-5939.97,51.14],"5-61-22":[-7086.51,65.38],"6-123-46":[-6464.77,41.96],"6-123-47":[-5894.23,2939.6],"5-61-23":[-7616.71,2939.6],"4-30-11":[-8565.41,2939.6],"6-123-48":[-6765.22,2088.42],"6-123-49":[-7225.31,566.58],"5-61-24":[-10312.48,2088.42],"6-123-50":[-7023.81,649.83],"6-123-51":[-7022.87,934.21],"5-61-25":[-7023.81,934.21],"4-30-12":[-10312.48,4714.21],"6-123-52":[-4126.33,-32.37],"6-123-53":[-3406.12,1230.43],"5-61-26":[-4261.65,1246.67],"6-123-54":[-95.58,1329.47],"6-123-55":[-108.17,1683.59],"5-61-27":[-108.17,1756.51],"4-30-13":[-4261.65,3173.24],"6-123-56":[-118.68,1650.33],"6-123-57":[-116.81,3530.38],"5-61-28":[-118.68,3530.38],"6-123-58":[-159.87,2686.35],"6-123-59":[-2076.04,3368.3],"5-61-29":[-2076.04,3368.3],"4-30-14":[-2076.04,3530.38],"6-123-60":[-2853.15,-47.93],"6-123-61":[-3435.37,4324.92],"5-61-30":[-3435.37,4324.92],"6-123-62":[-3977.47,3260.29],"6-123-63":[-4287.81,3084.24],"5-61-31":[-4295.78,3358.99],"4-30-15":[-4362.3,4324.92],"6-124-0":[-56.54,1301.6],"6-124-1":[-1191.92,3708.01],"6-124-2":[-1848.48,3644.05],"6-124-3":[-995.03,5.75],"6-124-4":[-1020.34,2277.07],"6-124-5":[-1133.6,1872.18],"6-124-6":[-2735.85,3841.38],"6-124-7":[-3498.04,1617.82],"6-124-8":[-3588.31,1409.69],"6-124-9":[-4799.27,2305.88],"6-124-10":[-5503.23,2164.88],"6-124-11":[-6053.23,14.63],"6-124-12":[-5956.51,14.32],"6-124-13":[-796.01,475.72],"6-124-14":[-1475.84,8.76],"6-124-15":[-1676.68,2157.34],"6-124-16":[-2008.55,3583.72],"6-124-17":[-2140.02,1384.49],"6-124-18":[-2382.68,-6.47],"6-124-19":[-3086.24,3.63],"6-124-20":[-4605.92,-7.51],"6-124-21":[-4715.27,-4.76],"6-124-22":[-4322.05,-0.84],"6-124-23":[-7577.19,199.74],"6-124-24":[-7373.16,963.85],"6-124-25":[-4229.08,1044.88],"6-124-26":[-3856.45,38.19],"6-124-27":[-4605.43,656.26],"6-124-28":[-6193.84,78.61],"6-124-29":[-5618.92,57.21],"6-124-30":[-4139.69,61.69],"6-124-31":[-4704.02,110.26],"6-124-32":[-4720.62,114.26],"6-124-33":[-4885.21,199.85],"6-124-34":[-5006.81,1181.19],"6-124-35":[-5183.38,353.36],"6-124-36":[-5749.76,447.27],"6-124-37":[-5836.57,1039.27],"6-124-38":[-6631,1137.87],"6-124-39":[-6170.25,895.97],"6-124-40":[-6352.28,131.97],"6-124-41":[-6401.53,105.92],"6-124-42":[-6323.16,96.09],"6-124-43":[-6035.82,85.75],"6-124-44":[-6040.28,75.44],"6-124-45":[-6821.76,56.69],"6-124-46":[-7017.19,1441.5],"6-124-47":[-6967.66,3719.73],"6-124-48":[-6885.19,2290.2],"6-124-49":[-6816.74,-3.78],"6-124-50":[-7342.18,535.73],"6-124-51":[-4825.77,-20.62],"6-124-52":[-4087.83,-35.05],"6-124-53":[-3238.86,2185.88],"6-124-54":[-98.04,2328.88],"6-124-55":[-110.57,1461.98],"6-124-56":[-118.68,1628.36],"6-124-57":[-117.84,3544.4],"6-124-58":[-196.58,1962.19],"6-124-59":[-2437.77,2252.06],"6-124-60":[-2814.21,-48.57],"6-124-61":[-3412.93,3812.59],"6-124-62":[-4012.16,3705.94],"6-124-63":[-4284.77,3085.39],"6-125-0":[-56.54,1317.16],"6-125-1":[-572.69,3995.42],"5-62-0":[-1191.92,3995.42],"6-125-2":[-1311.11,2953.97],"6-125-3":[-964.64,6.39],"5-62-1":[-1848.48,3644.05],"6-125-4":[-964.64,6.49],"6-125-5":[-641.47,5.32],"5-62-2":[-1133.6,2277.07],"6-125-6":[-2768.91,6.47],"6-125-7":[-4295,1111.24],"5-62-3":[-4295,3841.38],"6-125-8":[-4019.88,1048.77],"6-125-9":[-4953.31,1518.99],"5-62-4":[-4953.31,2305.88],"6-125-10":[-5798.48,1665.46],"6-125-11":[-5866.14,6.86],"5-62-5":[-6053.23,2164.88],"6-125-12":[-5760.7,8.77],"6-125-13":[-4633.32,953.56],"5-62-6":[-5956.51,953.56],"6-125-14":[-1469.18,5.28],"6-125-15":[-2476.63,-2.39],"5-62-7":[-2476.63,2157.34],"6-125-16":[-2350.31,2480.82],"6-125-17":[-1065.55,2703.39],"5-62-8":[-2350.31,3583.72],"6-125-18":[-2048.5,2435.06],"6-125-19":[-2432.05,771.91],"5-62-9":[-3086.24,2435.06],"6-125-20":[-3878.8,43.61],"6-125-21":[-4100.08,-6.04],"5-62-10":[-4715.27,43.61],"6-125-22":[-5196.44,-3.42],"6-125-23":[-7758.52,4.64],"5-62-11":[-7758.52,199.74],"6-125-24":[-4709.36,513.79],"6-125-25":[-3752.38,24.94],"5-62-12":[-7373.16,1044.88],"6-125-26":[-6621.91,30.26],"6-125-27":[-5178.35,388.48],"5-62-13":[-6621.91,656.26],"6-125-28":[-5685.04,48.13],"6-125-29":[-5834.84,54.5],"5-62-14":[-6193.84,78.61],"6-125-30":[-5675.27,56.85],"6-125-31":[-4961.08,80.57],"5-62-15":[-5675.27,110.26],"6-125-32":[-5122.01,216.12],"6-125-33":[-5296.87,448.44],"5-62-16":[-5296.87,448.44],"6-125-34":[-5462.36,652.65],"6-125-35":[-5659.88,103.05],"5-62-17":[-5659.88,1181.19],"6-125-36":[-5926.4,124.13],"6-125-37":[-5839.93,130.49],"5-62-18":[-5926.4,1039.27],"6-125-38":[-5706.76,131.46],"6-125-39":[-5894.32,288.83],"5-62-19":[-6631,1137.87],"6-125-40":[-6238.28,107.87],"6-125-41":[-6426.06,104.69],"5-62-20":[-6426.06,131.97],"6-125-42":[-6389.68,97.22],"6-125-43":[-5810.29,89.45],"5-62-21":[-6389.68,97.22],"6-125-44":[-6349.71,816.34],"6-125-45":[-6401.67,2517.08],"5-62-22":[-6821.76,2517.08],"6-125-46":[-6548.04,2863.4],"6-125-47":[-7577.65,2605.15],"5-62-23":[-7577.74,3719.73],"6-125-48":[-7742.5,11.03],"6-125-49":[-6175.39,-4.71],"5-62-24":[-7742.5,2290.2],"6-125-50":[-7297.08,855.48],"6-125-51":[-4515.77,-21.91],"5-62-25":[-7342.18,855.48],"6-125-52":[-4005.44,-37.16],"6-125-53":[-3534.25,1715.44],"5-62-26":[-4087.83,2185.88],"6-125-54":[-99.71,1567.95],"6-125-55":[-113.95,1055.77],"5-62-27":[-113.95,2328.88],"6-125-56":[-118.23,1132.25],"6-125-57":[-119.6,-21.59],"5-62-28":[-119.6,3544.4],"6-125-58":[-269.84,-35.5],"6-125-59":[-2414.97,-52.66],"5-62-29":[-2437.77,2252.06],"6-125-60":[-2787.87,-48.63],"6-125-61":[-3242.97,2586.73],"5-62-30":[-3412.93,3812.59],"6-125-62":[-4002.19,3991.97],"6-125-63":[-4279.77,3087.55],"5-62-31":[-4284.77,3991.97],"6-126-0":[-56.54,1326.01],"6-126-1":[6.39,4136.33],"6-126-2":[-1110.71,3023.78],"6-126-3":[-832.6,7.32],"6-126-4":[-882.14,5.6],"6-126-5":[-714.62,4.51],"6-126-6":[-3402.46,5.95],"6-126-7":[-3875.2,1644.02],"6-126-8":[-5179.44,1334.46],"6-126-9":[-4806.11,1348.08],"6-126-10":[-5608.88,360.68],"6-126-11":[-5709.67,3.75],"6-126-12":[-5642.23,11.04],"6-126-13":[-5402.41,663.5],"6-126-14":[-3878.3,1.9],"6-126-15":[-3026,-2.13],"6-126-16":[-2994.81,-6.98],"6-126-17":[-3629.85,1723.22],"6-126-18":[-3098.11,2690.97],"6-126-19":[-3270.73,861.23],"6-126-20":[-4248.84,-6.36],"6-126-21":[-4689.77,-4.68],"6-126-22":[-4958.08,-4.14],"6-126-23":[-5774.74,4.18],"6-126-24":[-5415.15,260.52],"6-126-25":[-4431.02,483.23],"6-126-26":[-5087.7,174.6],"6-126-27":[-4511.06,229.72],"6-126-28":[-5530.34,40.97],"6-126-29":[-5978.96,401.29],"6-126-30":[-5867.38,423.39],"6-126-31":[-5805.77,165.51],"6-126-32":[-6483.05,56],"6-126-33":[-6671.64,66],"6-126-34":[-6545.42,76.55],"6-126-35":[-6624.72,95.02],"6-126-36":[-5934.9,297.72],"6-126-37":[-5555.83,122.31],"6-126-38":[-5267.64,587.24],"6-126-39":[-5478.95,124.15],"6-126-40":[-6264.23,107.99],"6-126-41":[-6215.65,102.99],"6-126-42":[-5936.66,96.7],"6-126-43":[-5953.59,87],"6-126-44":[-5339.24,921.24],"6-126-45":[-5656.73,2784.98],"6-126-46":[-6788.78,1743.24],"6-126-47":[-7214.84,29.21],"6-126-48":[-6130.94,11.4],"6-126-49":[-7290.53,-4.57],"6-126-50":[-7355,491.49],"6-126-51":[-5551.08,-26.38],"6-126-52":[-4441.49,-37.37],"6-126-53":[-3701.8,418.22],"6-126-54":[-122.63,1368.07],"6-126-55":[-115.57,1359.45],"6-126-56":[-120.87,1643.02],"6-126-57":[-122.6,-15.98],"6-126-58":[-624.79,-39.61],"6-126-59":[-2268.14,-52.64],"6-126-60":[-2705.49,-48.23],"6-126-61":[-3105.89,3164.9],"6-126-62":[-4043.65,4009.42],"6-126-63":[-4253.65,3089.77],"6-127-0":[-56.54,1334.33],"6-127-1":[-210.07,3234.37],"5-63-0":[-210.07,4136.33],"6-127-2":[-982.23,1050.27],"6-127-3":[-866.89,8.63],"5-63-1":[-1110.71,3023.78],"4-31-0":[-1848.48,4136.33],"6-127-4":[-866.24,6.79],"6-127-5":[-934.59,4.39],"5-63-2":[-934.59,6.79],"6-127-6":[-3725.21,612.64],"6-127-7":[-4050.17,1712.25],"5-63-3":[-4050.17,1712.25],"4-31-1":[-4295,3841.38],"3-15-0":[-4295,4354.84],"6-127-8":[-5328.81,1465.56],"6-127-9":[-4628.49,918.23],"5-63-4":[-5328.81,1465.56],"6-127-10":[-5971.35,11.47],"6-127-11":[-5641.74,3.44],"5-63-5":[-5971.35,360.68],"4-31-2":[-6053.23,2305.88],"6-127-12":[-5548.55,11.61],"6-127-13":[-5408.37,1210.91],"5-63-6":[-5642.23,1210.91],"6-127-14":[-5040.03,327.38],"6-127-15":[-3895.37,12.41],"5-63-7":[-5040.03,327.38],"4-31-3":[-5956.51,2157.34],"3-15-1":[-9889.98,4774.23],"2-7-0":[-9889.98,4774.23],"6-127-16":[-3066.41,-6.43],"6-127-17":[-4084.12,-10.68],"5-63-8":[-4084.12,1723.22],"6-127-18":[-4617.02,1681.88],"6-127-19":[-4460.78,-7.92],"5-63-9":[-4617.02,2690.97],"4-31-4":[-4617.02,3583.72],"6-127-20":[-4339.84,-7.92],"6-127-21":[-4478.85,40.71],"5-63-10":[-4689.77,40.71],"6-127-22":[-4490.23,-3.04],"6-127-23":[-4568.72,1.26],"5-63-11":[-5774.74,4.18],"4-31-5":[-7758.52,199.74],"3-15-2":[-7758.52,3583.72],"6-127-24":[-4711.94,9.72],"6-127-25":[-4084.66,1312.41],"5-63-12":[-5415.15,1312.41],"6-127-26":[-4195.61,981.61],"6-127-27":[-4943.02,64.11],"5-63-13":[-5087.7,981.61],"4-31-6":[-7373.16,1312.41],"6-127-28":[-5249.7,472.52],"6-127-29":[-5962.93,523.86],"5-63-14":[-5978.96,523.86],"6-127-30":[-6244.65,40.09],"6-127-31":[-5963.28,46.55],"5-63-15":[-6244.65,423.39],"4-31-7":[-6244.65,523.86],"3-15-3":[-9079.48,2329.59],"2-7-1":[-9079.48,4766.85],"1-3-0":[-9889.98,7512.84],"6-127-32":[-5882.89,50.53],"6-127-33":[-6530.92,57.98],"5-63-16":[-6671.64,66],"6-127-34":[-6610.51,69.75],"6-127-35":[-6659.17,86.05],"5-63-17":[-6659.17,95.02],"4-31-8":[-6671.64,1181.19],"6-127-36":[-6695.83,104.68],"6-127-37":[-5931.51,1069.23],"5-63-18":[-6695.83,1069.23],"6-127-38":[-5463.07,1371.15],"6-127-39":[-5548.25,108.66],"5-63-19":[-5548.25,1371.15],"4-31-9":[-6695.83,1371.15],"3-15-4":[-9233.31,2387.59],"6-127-40":[-6217.08,103.15],"6-127-41":[-6232.24,98.56],"5-63-20":[-6264.23,107.99],"6-127-42":[-6540.92,94.48],"6-127-43":[-5834.93,91.71],"5-63-21":[-6540.92,96.7],"4-31-10":[-6540.92,131.97],"6-127-44":[-5276.76,83.16],"6-127-45":[-5718.98,1759.88],"5-63-22":[-5718.98,2784.98],"6-127-46":[-6872.58,42.6],"6-127-47":[-7215.56,30.55],"5-63-23":[-7215.56,1743.24],"4-31-11":[-7577.65,3719.73],"3-15-5":[-8565.41,3719.73],"2-7-2":[-10883.73,5227.39],"6-127-48":[-6546.41,37.42],"6-127-49":[-7350.29,351.39],"5-63-24":[-7350.29,351.39],"6-127-50":[-7318.33,1130.9],"6-127-51":[-4299.75,-28.67],"5-63-25":[-7355,1130.9],"4-31-12":[-7742.5,2290.2],"6-127-52":[-4544.67,-37.45],"6-127-53":[-3726.9,-44.71],"5-63-26":[-4544.67,418.22],"6-127-54":[-175.46,962.23],"6-127-55":[-117.07,1527.58],"5-63-27":[-175.46,1527.58],"4-31-13":[-4544.67,2328.88],"3-15-6":[-10312.48,4714.21],"6-127-56":[-123.45,1789.28],"6-127-57":[-123.93,639.49],"5-63-28":[-123.93,1789.28],"6-127-58":[-1148.1,-47.82],"6-127-59":[-1910.34,-53.65],"5-63-29":[-2268.14,-39.61],"4-31-14":[-2437.77,3544.4],"6-127-60":[-2503.26,-48.22],"6-127-61":[-2903.07,1201.67],"5-63-30":[-3105.89,3164.9],"6-127-62":[-3966.1,3227.47],"6-127-63":[-4341.65,3092.98],"5-63-31":[-4341.65,4009.42],"4-31-15":[-4341.65,4009.42],"3-15-7":[-4362.3,4324.92],"2-7-3":[-10853.54,4714.21],"1-3-1":[-10883.73,7274.95],"0-1-0":[-10883.73,8777.15]} diff --git a/cesium/Cesium.js b/cesium/Cesium.js new file mode 100644 index 00000000..b3444b46 --- /dev/null +++ b/cesium/Cesium.js @@ -0,0 +1,18008 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +"use strict";var Cesium=(()=>{var Ove=Object.create;var ZV=Object.defineProperty;var Bve=Object.getOwnPropertyDescriptor;var zve=Object.getOwnPropertyNames;var Hve=Object.getPrototypeOf,Kve=Object.prototype.hasOwnProperty;var Jve=(e,t,n)=>t in e?ZV(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var dU=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Qu=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},jve=(e,t)=>{for(var n in t)ZV(e,n,{get:t[n],enumerable:!0})},dre=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of zve(t))!Kve.call(e,o)&&o!==n&&ZV(e,o,{get:()=>t[o],enumerable:!(i=Bve(t,o))||i.enumerable});return e};var x=(e,t,n)=>(n=e!=null?Ove(Hve(e)):{},dre(t||!e||!e.__esModule?ZV(n,"default",{value:e,enumerable:!0}):n,e)),Qve=e=>dre(ZV({},"__esModule",{value:!0}),e);var lt=(e,t,n)=>Jve(e,typeof t!="symbol"?t+"":t,n);var T=Qu(()=>{"use strict";globalThis.CESIUM_WORKERS=atob("dmFyIENlc2l1bVdvcmtlcnM9KCgpPT57dmFyIFhTPU9iamVjdC5jcmVhdGU7dmFyIGJmPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgWVM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgSlM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIFpTPU9iamVjdC5nZXRQcm90b3R5cGVPZixRUz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciAkUz0obixlLHQpPT5lIGluIG4/YmYobixlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSk6bltlXT10O3ZhciBsYT0obj0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkobix7Z2V0OihlLHQpPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6ZSlbdF19KTpuKShmdW5jdGlvbihuKXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrbisnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KSxPMT1uPT5lPT57dmFyIHQ9bltlXTtpZih0KXJldHVybiB0KCk7dGhyb3cgbmV3IEVycm9yKCJNb2R1bGUgbm90IGZvdW5kIGluIGJ1bmRsZTogIitlKX07dmFyIFg9KG4sZSx0KT0+KCk9PntpZih0KXRocm93IHRbMF07dHJ5e3JldHVybiBuJiYoZT1uKG49MCkpLGV9Y2F0Y2gobyl7dGhyb3cgdD1bb10sb319O3ZhciBzaT0obixlKT0+KCk9Pnt0cnl7cmV0dXJuIGV8fG4oKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0c31jYXRjaCh0KXt0aHJvdyBlPTAsdH19LCRlPShuLGUpPT57Zm9yKHZhciB0IGluIGUpYmYobix0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9LFMxPShuLGUsdCxvKT0+e2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Inx8dHlwZW9mIGU9PSJmdW5jdGlvbiIpZm9yKGxldCBhIG9mIEpTKGUpKSFRUy5jYWxsKG4sYSkmJmEhPT10JiZiZihuLGEse2dldDooKT0+ZVthXSxlbnVtZXJhYmxlOiEobz1ZUyhlLGEpKXx8by5lbnVtZXJhYmxlfSk7cmV0dXJuIG59O3ZhciBoYT0obixlLHQpPT4odD1uIT1udWxsP1hTKFpTKG4pKTp7fSxTMShlfHwhbnx8IW4uX19lc01vZHVsZT9iZih0LCJkZWZhdWx0Iix7dmFsdWU6bixlbnVtZXJhYmxlOiEwfSk6dCxuKSksZUM9bj0+UzEoYmYoe30sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4pO3ZhciBlbD0obixlLHQpPT4kUyhuLHR5cGVvZiBlIT0ic3ltYm9sIj9lKyIiOmUsdCk7ZnVuY3Rpb24gdEMobil7cmV0dXJuIG4hPW51bGx9dmFyIF8sc2U9WCgoKT0+e189dEN9KTtmdW5jdGlvbiBZaShuKXt0aGlzLm5hbWU9IkRldmVsb3BlckVycm9yIix0aGlzLm1lc3NhZ2U9bjtsZXQgZTt0cnl7dGhyb3cgbmV3IEVycm9yfWNhdGNoKHQpe2U9dC5zdGFja310aGlzLnN0YWNrPWV9dmFyIFZ0LEppPVgoKCk9PntzZSgpO18oT2JqZWN0LmNyZWF0ZSkmJihZaS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLFlpLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1ZaSk7WWkucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7bGV0IG49YCR7dGhpcy5uYW1lfTogJHt0aGlzLm1lc3NhZ2V9YDtyZXR1cm4gXyh0aGlzLnN0YWNrKSYmKG4rPWAKJHt0aGlzLnN0YWNrLnRvU3RyaW5nKCl9YCksbn07WWkudGhyb3dJbnN0YW50aWF0aW9uRXJyb3I9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgWWkoIlRoaXMgZnVuY3Rpb24gZGVmaW5lcyBhbiBpbnRlcmZhY2UgYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiIpfTtWdD1ZaX0pO2Z1bmN0aW9uIG5DKG4pe3JldHVybmAke259IGlzIHJlcXVpcmVkLCBhY3R1YWwgdmFsdWUgd2FzIHVuZGVmaW5lZGB9ZnVuY3Rpb24gS2MobixlLHQpe3JldHVybmBFeHBlY3RlZCAke3R9IHRvIGJlIHR5cGVvZiAke2V9LCBhY3R1YWwgdHlwZW9mIHdhcyAke259YH12YXIgSm4sUm4sSG09WCgoKT0+e3NlKCk7SmkoKTtKbj17fTtKbi50eXBlT2Y9e307Sm4uZGVmaW5lZD1mdW5jdGlvbihuLGUpe2lmKCFfKGUpKXRocm93IG5ldyBWdChuQyhuKSl9O0puLnR5cGVPZi5mdW5jPWZ1bmN0aW9uKG4sZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFZ0KEtjKHR5cGVvZiBlLCJmdW5jdGlvbiIsbikpfTtKbi50eXBlT2Yuc3RyaW5nPWZ1bmN0aW9uKG4sZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBWdChLYyh0eXBlb2YgZSwic3RyaW5nIixuKSl9O0puLnR5cGVPZi5udW1iZXI9ZnVuY3Rpb24obixlKXtpZih0eXBlb2YgZSE9Im51bWJlciIpdGhyb3cgbmV3IFZ0KEtjKHR5cGVvZiBlLCJudW1iZXIiLG4pKX07Sm4udHlwZU9mLm51bWJlci5sZXNzVGhhbj1mdW5jdGlvbihuLGUsdCl7aWYoSm4udHlwZU9mLm51bWJlcihuLGUpLGU+PXQpdGhyb3cgbmV3IFZ0KGBFeHBlY3RlZCAke259IHRvIGJlIGxlc3MgdGhhbiAke3R9LCBhY3R1YWwgdmFsdWUgd2FzICR7ZX1gKX07Sm4udHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzPWZ1bmN0aW9uKG4sZSx0KXtpZihKbi50eXBlT2YubnVtYmVyKG4sZSksZT50KXRocm93IG5ldyBWdChgRXhwZWN0ZWQgJHtufSB0byBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHt0fSwgYWN0dWFsIHZhbHVlIHdhcyAke2V9YCl9O0puLnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW49ZnVuY3Rpb24obixlLHQpe2lmKEpuLnR5cGVPZi5udW1iZXIobixlKSxlPD10KXRocm93IG5ldyBWdChgRXhwZWN0ZWQgJHtufSB0byBiZSBncmVhdGVyIHRoYW4gJHt0fSwgYWN0dWFsIHZhbHVlIHdhcyAke2V9YCl9O0puLnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscz1mdW5jdGlvbihuLGUsdCl7aWYoSm4udHlwZU9mLm51bWJlcihuLGUpLGU8dCl0aHJvdyBuZXcgVnQoYEV4cGVjdGVkICR7bn0gdG8gYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7dH0sIGFjdHVhbCB2YWx1ZSB3YXMgJHtlfWApfTtKbi50eXBlT2Yub2JqZWN0PWZ1bmN0aW9uKG4sZSl7aWYodHlwZW9mIGUhPSJvYmplY3QiKXRocm93IG5ldyBWdChLYyh0eXBlb2YgZSwib2JqZWN0IixuKSl9O0puLnR5cGVPZi5ib29sPWZ1bmN0aW9uKG4sZSl7aWYodHlwZW9mIGUhPSJib29sZWFuIil0aHJvdyBuZXcgVnQoS2ModHlwZW9mIGUsImJvb2xlYW4iLG4pKX07Sm4udHlwZU9mLmJpZ2ludD1mdW5jdGlvbihuLGUpe2lmKHR5cGVvZiBlIT0iYmlnaW50Iil0aHJvdyBuZXcgVnQoS2ModHlwZW9mIGUsImJpZ2ludCIsbikpfTtKbi50eXBlT2YubnVtYmVyLmVxdWFscz1mdW5jdGlvbihuLGUsdCxvKXtpZihKbi50eXBlT2YubnVtYmVyKG4sdCksSm4udHlwZU9mLm51bWJlcihlLG8pLHQhPT1vKXRocm93IG5ldyBWdChgJHtufSBtdXN0IGJlIGVxdWFsIHRvICR7ZX0sIHRoZSBhY3R1YWwgdmFsdWVzIGFyZSAke3R9IGFuZCAke299YCl9O1JuPUpufSk7dmFyIE0xPXNpKCh6RyxDMSk9Pnt2YXIgSXI9ZnVuY3Rpb24obil7bj09bnVsbCYmKG49bmV3IERhdGUoKS5nZXRUaW1lKCkpLHRoaXMuTj02MjQsdGhpcy5NPTM5Nyx0aGlzLk1BVFJJWF9BPTI1Njc0ODM2MTUsdGhpcy5VUFBFUl9NQVNLPTIxNDc0ODM2NDgsdGhpcy5MT1dFUl9NQVNLPTIxNDc0ODM2NDcsdGhpcy5tdD1uZXcgQXJyYXkodGhpcy5OKSx0aGlzLm10aT10aGlzLk4rMSxuLmNvbnN0cnVjdG9yPT1BcnJheT90aGlzLmluaXRfYnlfYXJyYXkobixuLmxlbmd0aCk6dGhpcy5pbml0X3NlZWQobil9O0lyLnByb3RvdHlwZS5pbml0X3NlZWQ9ZnVuY3Rpb24obil7Zm9yKHRoaXMubXRbMF09bj4+PjAsdGhpcy5tdGk9MTt0aGlzLm10aTx0aGlzLk47dGhpcy5tdGkrKyl7dmFyIG49dGhpcy5tdFt0aGlzLm10aS0xXV50aGlzLm10W3RoaXMubXRpLTFdPj4+MzA7dGhpcy5tdFt0aGlzLm10aV09KCgobiY0Mjk0OTAxNzYwKT4+PjE2KSoxODEyNDMzMjUzPDwxNikrKG4mNjU1MzUpKjE4MTI0MzMyNTMrdGhpcy5tdGksdGhpcy5tdFt0aGlzLm10aV0+Pj49MH19O0lyLnByb3RvdHlwZS5pbml0X2J5X2FycmF5PWZ1bmN0aW9uKG4sZSl7dmFyIHQsbyxhO2Zvcih0aGlzLmluaXRfc2VlZCgxOTY1MDIxOCksdD0xLG89MCxhPXRoaXMuTj5lP3RoaXMuTjplO2E7YS0tKXt2YXIgcj10aGlzLm10W3QtMV1edGhpcy5tdFt0LTFdPj4+MzA7dGhpcy5tdFt0XT0odGhpcy5tdFt0XV4oKChyJjQyOTQ5MDE3NjApPj4+MTYpKjE2NjQ1MjU8PDE2KSsociY2NTUzNSkqMTY2NDUyNSkrbltvXStvLHRoaXMubXRbdF0+Pj49MCx0KyssbysrLHQ+PXRoaXMuTiYmKHRoaXMubXRbMF09dGhpcy5tdFt0aGlzLk4tMV0sdD0xKSxvPj1lJiYobz0wKX1mb3IoYT10aGlzLk4tMTthO2EtLSl7dmFyIHI9dGhpcy5tdFt0LTFdXnRoaXMubXRbdC0xXT4+PjMwO3RoaXMubXRbdF09KHRoaXMubXRbdF1eKCgociY0Mjk0OTAxNzYwKT4+PjE2KSoxNTY2MDgzOTQxPDwxNikrKHImNjU1MzUpKjE1NjYwODM5NDEpLXQsdGhpcy5tdFt0XT4+Pj0wLHQrKyx0Pj10aGlzLk4mJih0aGlzLm10WzBdPXRoaXMubXRbdGhpcy5OLTFdLHQ9MSl9dGhpcy5tdFswXT0yMTQ3NDgzNjQ4fTtJci5wcm90b3R5cGUucmFuZG9tX2ludD1mdW5jdGlvbigpe3ZhciBuLGU9bmV3IEFycmF5KDAsdGhpcy5NQVRSSVhfQSk7aWYodGhpcy5tdGk+PXRoaXMuTil7dmFyIHQ7Zm9yKHRoaXMubXRpPT10aGlzLk4rMSYmdGhpcy5pbml0X3NlZWQoNTQ4OSksdD0wO3Q8dGhpcy5OLXRoaXMuTTt0Kyspbj10aGlzLm10W3RdJnRoaXMuVVBQRVJfTUFTS3x0aGlzLm10W3QrMV0mdGhpcy5MT1dFUl9NQVNLLHRoaXMubXRbdF09dGhpcy5tdFt0K3RoaXMuTV1ebj4+PjFeZVtuJjFdO2Zvcig7dDx0aGlzLk4tMTt0Kyspbj10aGlzLm10W3RdJnRoaXMuVVBQRVJfTUFTS3x0aGlzLm10W3QrMV0mdGhpcy5MT1dFUl9NQVNLLHRoaXMubXRbdF09dGhpcy5tdFt0Kyh0aGlzLk0tdGhpcy5OKV1ebj4+PjFeZVtuJjFdO249dGhpcy5tdFt0aGlzLk4tMV0mdGhpcy5VUFBFUl9NQVNLfHRoaXMubXRbMF0mdGhpcy5MT1dFUl9NQVNLLHRoaXMubXRbdGhpcy5OLTFdPXRoaXMubXRbdGhpcy5NLTFdXm4+Pj4xXmVbbiYxXSx0aGlzLm10aT0wfXJldHVybiBuPXRoaXMubXRbdGhpcy5tdGkrK10sbl49bj4+PjExLG5ePW48PDcmMjYzNjkyODY0MCxuXj1uPDwxNSY0MDIyNzMwNzUyLG5ePW4+Pj4xOCxuPj4+MH07SXIucHJvdG90eXBlLnJhbmRvbV9pbnQzMT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmRvbV9pbnQoKT4+PjF9O0lyLnByb3RvdHlwZS5yYW5kb21faW5jbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmRvbV9pbnQoKSooMS80Mjk0OTY3Mjk1KX07SXIucHJvdG90eXBlLnJhbmRvbT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmRvbV9pbnQoKSooMS80Mjk0OTY3Mjk2KX07SXIucHJvdG90eXBlLnJhbmRvbV9leGNsPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmFuZG9tX2ludCgpKy41KSooMS80Mjk0OTY3Mjk2KX07SXIucHJvdG90eXBlLnJhbmRvbV9sb25nPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5yYW5kb21faW50KCk+Pj41LGU9dGhpcy5yYW5kb21faW50KCk+Pj42O3JldHVybihuKjY3MTA4ODY0K2UpKigxLzkwMDcxOTkyNTQ3NDA5OTIpfTtDMS5leHBvcnRzPUlyfSk7dmFyIEttLFJlLHRsLE4xLGssVWU9WCgoKT0+e0ttPWhhKE0xKCksMSksUmU9e307UmUuRVBTSUxPTjE9LjE7UmUuRVBTSUxPTjI9LjAxO1JlLkVQU0lMT04zPS4wMDE7UmUuRVBTSUxPTjQ9MWUtNDtSZS5FUFNJTE9ONT0xZS01O1JlLkVQU0lMT042PTFlLTY7UmUuRVBTSUxPTjc9MWUtNztSZS5FUFNJTE9OOD0xZS04O1JlLkVQU0lMT045PTFlLTk7UmUuRVBTSUxPTjEwPTFlLTEwO1JlLkVQU0lMT04xMT0xZS0xMTtSZS5FUFNJTE9OMTI9MWUtMTI7UmUuRVBTSUxPTjEzPTFlLTEzO1JlLkVQU0lMT04xND0xZS0xNDtSZS5FUFNJTE9OMTU9MWUtMTU7UmUuRVBTSUxPTjE2PTFlLTE2O1JlLkVQU0lMT04xNz0xZS0xNztSZS5FUFNJTE9OMTg9MWUtMTg7UmUuRVBTSUxPTjE5PTFlLTE5O1JlLkVQU0lMT04yMD0xZS0yMDtSZS5FUFNJTE9OMjE9MWUtMjE7UmUuR1JBVklUQVRJT05BTFBBUkFNRVRFUj0zOTg2MDA0NDE4ZTU7UmUuU09MQVJfUkFESVVTPTY5NTVlNTtSZS5MVU5BUl9SQURJVVM9MTczNzQwMDtSZS5TSVhUWV9GT1VSX0tJTE9CWVRFUz02NCoxMDI0O1JlLkZPVVJfR0lHQUJZVEVTPTQqMTAyNCoxMDI0KjEwMjQ7UmUuc2lnbj1NYXRoLnNpZ24/P2Z1bmN0aW9uKGUpe3JldHVybiBlPStlLGU9PT0wfHxlIT09ZT9lOmU+MD8xOi0xfTtSZS5zaWduTm90WmVybz1mdW5jdGlvbihuKXtyZXR1cm4gbjwwPy0xOjF9O1JlLnRvU05vcm09ZnVuY3Rpb24obixlKXtyZXR1cm4gZT1lPz8yNTUsTWF0aC5yb3VuZCgoUmUuY2xhbXAobiwtMSwxKSouNSsuNSkqZSl9O1JlLmZyb21TTm9ybT1mdW5jdGlvbihuLGUpe3JldHVybiBlPWU/PzI1NSxSZS5jbGFtcChuLDAsZSkvZSoyLTF9O1JlLm5vcm1hbGl6ZT1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9TWF0aC5tYXgodC1lLDApLHQ9PT0wPzA6UmUuY2xhbXAoKG4tZSkvdCwwLDEpfTtSZS5zaW5oPU1hdGguc2luaD8/ZnVuY3Rpb24oZSl7cmV0dXJuKE1hdGguZXhwKGUpLU1hdGguZXhwKC1lKSkvMn07UmUuY29zaD1NYXRoLmNvc2g/P2Z1bmN0aW9uKGUpe3JldHVybihNYXRoLmV4cChlKStNYXRoLmV4cCgtZSkpLzJ9O1JlLmxlcnA9ZnVuY3Rpb24obixlLHQpe3JldHVybigxLXQpKm4rdCplfTtSZS5QST1NYXRoLlBJO1JlLk9ORV9PVkVSX1BJPTEvTWF0aC5QSTtSZS5QSV9PVkVSX1RXTz1NYXRoLlBJLzI7UmUuUElfT1ZFUl9USFJFRT1NYXRoLlBJLzM7UmUuUElfT1ZFUl9GT1VSPU1hdGguUEkvNDtSZS5QSV9PVkVSX1NJWD1NYXRoLlBJLzY7UmUuVEhSRUVfUElfT1ZFUl9UV089MypNYXRoLlBJLzI7UmUuVFdPX1BJPTIqTWF0aC5QSTtSZS5PTkVfT1ZFUl9UV09fUEk9MS8oMipNYXRoLlBJKTtSZS5SQURJQU5TX1BFUl9ERUdSRUU9TWF0aC5QSS8xODA7UmUuREVHUkVFU19QRVJfUkFESUFOPTE4MC9NYXRoLlBJO1JlLlJBRElBTlNfUEVSX0FSQ1NFQ09ORD1SZS5SQURJQU5TX1BFUl9ERUdSRUUvMzYwMDtSZS50b1JhZGlhbnM9ZnVuY3Rpb24obil7cmV0dXJuIG4qUmUuUkFESUFOU19QRVJfREVHUkVFfTtSZS50b0RlZ3JlZXM9ZnVuY3Rpb24obil7cmV0dXJuIG4qUmUuREVHUkVFU19QRVJfUkFESUFOfTtSZS5jb252ZXJ0TG9uZ2l0dWRlUmFuZ2U9ZnVuY3Rpb24obil7bGV0IGU9UmUuVFdPX1BJLHQ9bi1NYXRoLmZsb29yKG4vZSkqZTtyZXR1cm4gdDwtTWF0aC5QST90K2U6dD49TWF0aC5QST90LWU6dH07UmUuY2xhbXBUb0xhdGl0dWRlUmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIFJlLmNsYW1wKG4sLTEqUmUuUElfT1ZFUl9UV08sUmUuUElfT1ZFUl9UV08pfTtSZS5uZWdhdGl2ZVBpVG9QaT1mdW5jdGlvbihuKXtyZXR1cm4gbj49LVJlLlBJJiZuPD1SZS5QST9uOlJlLnplcm9Ub1R3b1BpKG4rUmUuUEkpLVJlLlBJfTtSZS56ZXJvVG9Ud29QaT1mdW5jdGlvbihuKXtpZihuPj0wJiZuPD1SZS5UV09fUEkpcmV0dXJuIG47bGV0IGU9UmUubW9kKG4sUmUuVFdPX1BJKTtyZXR1cm4gTWF0aC5hYnMoZSk8UmUuRVBTSUxPTjE0JiZNYXRoLmFicyhuKT5SZS5FUFNJTE9OMTQ/UmUuVFdPX1BJOmV9O1JlLm1vZD1mdW5jdGlvbihuLGUpe3JldHVybiBSZS5zaWduKG4pPT09UmUuc2lnbihlKSYmTWF0aC5hYnMobik8TWF0aC5hYnMoZSk/bjoobiVlK2UpJWV9O1JlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24obixlLHQsbyl7dD10Pz8wLG89bz8/dDtsZXQgYT1NYXRoLmFicyhuLWUpO3JldHVybiBhPD1vfHxhPD10Kk1hdGgubWF4KE1hdGguYWJzKG4pLE1hdGguYWJzKGUpKX07UmUubGVzc1RoYW49ZnVuY3Rpb24obixlLHQpe3JldHVybiBuLWU8LXR9O1JlLmxlc3NUaGFuT3JFcXVhbHM9ZnVuY3Rpb24obixlLHQpe3JldHVybiBuLWU8dH07UmUuZ3JlYXRlclRoYW49ZnVuY3Rpb24obixlLHQpe3JldHVybiBuLWU+dH07UmUuZ3JlYXRlclRoYW5PckVxdWFscz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIG4tZT4tdH07dGw9WzFdO1JlLmZhY3RvcmlhbD1mdW5jdGlvbihuKXtsZXQgZT10bC5sZW5ndGg7aWYobj49ZSl7bGV0IHQ9dGxbZS0xXTtmb3IobGV0IG89ZTtvPD1uO28rKyl7bGV0IGE9dCpvO3RsLnB1c2goYSksdD1hfX1yZXR1cm4gdGxbbl19O1JlLmluY3JlbWVudFdyYXA9ZnVuY3Rpb24obixlLHQpe3JldHVybiB0PXQ/PzAsKytuLG4+ZSYmKG49dCksbn07UmUuaXNQb3dlck9mVHdvPWZ1bmN0aW9uKG4pe3JldHVybiBuIT09MCYmKG4mbi0xKT09PTB9O1JlLm5leHRQb3dlck9mVHdvPWZ1bmN0aW9uKG4pe3JldHVybi0tbixufD1uPj4xLG58PW4+PjIsbnw9bj4+NCxufD1uPj44LG58PW4+PjE2LCsrbixufTtSZS5wcmV2aW91c1Bvd2VyT2ZUd289ZnVuY3Rpb24obil7cmV0dXJuIG58PW4+PjEsbnw9bj4+MixufD1uPj40LG58PW4+Pjgsbnw9bj4+MTYsbnw9bj4+MzIsbj0obj4+PjApLShuPj4+MSksbn07UmUuY2xhbXA9ZnVuY3Rpb24obixlLHQpe3JldHVybiBuPGU/ZTpuPnQ/dDpufTtOMT1uZXcgS20uZGVmYXVsdDtSZS5zZXRSYW5kb21OdW1iZXJTZWVkPWZ1bmN0aW9uKG4pe04xPW5ldyBLbS5kZWZhdWx0KG4pfTtSZS5uZXh0UmFuZG9tTnVtYmVyPWZ1bmN0aW9uKCl7cmV0dXJuIE4xLnJhbmRvbSgpfTtSZS5yYW5kb21CZXR3ZWVuPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIFJlLm5leHRSYW5kb21OdW1iZXIoKSooZS1uKStufTtSZS5hY29zQ2xhbXBlZD1mdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5hY29zKFJlLmNsYW1wKG4sLTEsMSkpfTtSZS5hc2luQ2xhbXBlZD1mdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5hc2luKFJlLmNsYW1wKG4sLTEsMSkpfTtSZS5jaG9yZExlbmd0aD1mdW5jdGlvbihuLGUpe3JldHVybiAyKmUqTWF0aC5zaW4obiouNSl9O1JlLmxvZ0Jhc2U9ZnVuY3Rpb24obixlKXtyZXR1cm4gTWF0aC5sb2cobikvTWF0aC5sb2coZSl9O1JlLmNicnQ9TWF0aC5jYnJ0Pz9mdW5jdGlvbihlKXtsZXQgdD1NYXRoLnBvdyhNYXRoLmFicyhlKSwuMzMzMzMzMzMzMzMzMzMzMyk7cmV0dXJuIGU8MD8tdDp0fTtSZS5sb2cyPU1hdGgubG9nMj8/ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubG9nKGUpKk1hdGguTE9HMkV9O1JlLmZvZz1mdW5jdGlvbihuLGUpe2xldCB0PW4qZTtyZXR1cm4gMS1NYXRoLmV4cCgtKHQqdCkpfTtSZS5mYXN0QXBwcm94aW1hdGVBdGFuPWZ1bmN0aW9uKG4pe3JldHVybiBuKigtLjE3ODQqTWF0aC5hYnMobiktLjA2NjMqbipuKzEuMDMwMSl9O1JlLmZhc3RBcHByb3hpbWF0ZUF0YW4yPWZ1bmN0aW9uKG4sZSl7bGV0IHQsbz1NYXRoLmFicyhuKTt0PU1hdGguYWJzKGUpO2xldCBhPU1hdGgubWF4KG8sdCk7dD1NYXRoLm1pbihvLHQpO2xldCByPXQvYTtyZXR1cm4gbz1SZS5mYXN0QXBwcm94aW1hdGVBdGFuKHIpLG89TWF0aC5hYnMoZSk+TWF0aC5hYnMobik/UmUuUElfT1ZFUl9UV08tbzpvLG89bjwwP1JlLlBJLW86byxvPWU8MD8tbzpvLG99O2s9UmV9KTt2YXIgZm4sbmwsSTEsb2wscW0sb0MsbWEscWMscyxNZT1YKCgpPT57c2UoKTtVZSgpO2ZuPWNsYXNzIG57Y29uc3RydWN0b3IoZSx0LG8pe3RoaXMueD1lPz8wLHRoaXMueT10Pz8wLHRoaXMuej1vPz8wfXN0YXRpYyBmcm9tU3BoZXJpY2FsKGUsdCl7Xyh0KXx8KHQ9bmV3IG4pO2xldCBvPWUuY2xvY2ssYT1lLmNvbmUscj1lLm1hZ25pdHVkZT8/MSxpPXIqTWF0aC5zaW4oYSk7cmV0dXJuIHQueD1pKk1hdGguY29zKG8pLHQueT1pKk1hdGguc2luKG8pLHQuej1yKk1hdGguY29zKGEpLHR9c3RhdGljIGZyb21FbGVtZW50cyhlLHQsbyxhKXtyZXR1cm4gXyhhKT8oYS54PWUsYS55PXQsYS56PW8sYSk6bmV3IG4oZSx0LG8pfXN0YXRpYyBjbG9uZShlLHQpe2lmKF8oZSkpcmV0dXJuIF8odCk/KHQueD1lLngsdC55PWUueSx0Lno9ZS56LHQpOm5ldyBuKGUueCxlLnksZS56KX1zdGF0aWMgcGFjayhlLHQsbyl7cmV0dXJuIG89bz8/MCx0W28rK109ZS54LHRbbysrXT1lLnksdFtvXT1lLnosdH1zdGF0aWMgdW5wYWNrKGUsdCxvKXtyZXR1cm4gdD10Pz8wLF8obyl8fChvPW5ldyBuKSxvLng9ZVt0KytdLG8ueT1lW3QrK10sby56PWVbdF0sb31zdGF0aWMgcGFja0FycmF5KGUsdCl7bGV0IG89ZS5sZW5ndGgsYT1vKjM7Xyh0KT8hQXJyYXkuaXNBcnJheSh0KSYmdC5sZW5ndGghPT1hfHx0Lmxlbmd0aCE9PWEmJih0Lmxlbmd0aD1hKTp0PW5ldyBBcnJheShhKTtmb3IobGV0IHI9MDtyPG87KytyKW4ucGFjayhlW3JdLHQsciozKTtyZXR1cm4gdH1zdGF0aWMgdW5wYWNrQXJyYXkoZSx0KXtsZXQgbz1lLmxlbmd0aDtfKHQpP3QubGVuZ3RoPW8vMzp0PW5ldyBBcnJheShvLzMpO2ZvcihsZXQgYT0wO2E8bzthKz0zKXtsZXQgcj1hLzM7dFtyXT1uLnVucGFjayhlLGEsdFtyXSl9cmV0dXJuIHR9c3RhdGljIG1heGltdW1Db21wb25lbnQoZSl7cmV0dXJuIE1hdGgubWF4KGUueCxlLnksZS56KX1zdGF0aWMgbWluaW11bUNvbXBvbmVudChlKXtyZXR1cm4gTWF0aC5taW4oZS54LGUueSxlLnopfXN0YXRpYyBtaW5pbXVtQnlDb21wb25lbnQoZSx0LG8pe3JldHVybiBvLng9TWF0aC5taW4oZS54LHQueCksby55PU1hdGgubWluKGUueSx0LnkpLG8uej1NYXRoLm1pbihlLnosdC56KSxvfXN0YXRpYyBtYXhpbXVtQnlDb21wb25lbnQoZSx0LG8pe3JldHVybiBvLng9TWF0aC5tYXgoZS54LHQueCksby55PU1hdGgubWF4KGUueSx0LnkpLG8uej1NYXRoLm1heChlLnosdC56KSxvfXN0YXRpYyBjbGFtcChlLHQsbyxhKXtsZXQgcj1rLmNsYW1wKGUueCx0Lngsby54KSxpPWsuY2xhbXAoZS55LHQueSxvLnkpLGY9ay5jbGFtcChlLnosdC56LG8ueik7cmV0dXJuIGEueD1yLGEueT1pLGEuej1mLGF9c3RhdGljIG1hZ25pdHVkZVNxdWFyZWQoZSl7cmV0dXJuIGUueCplLngrZS55KmUueStlLnoqZS56fXN0YXRpYyBtYWduaXR1ZGUoZSl7cmV0dXJuIE1hdGguc3FydChuLm1hZ25pdHVkZVNxdWFyZWQoZSkpfXN0YXRpYyBkaXN0YW5jZShlLHQpe3JldHVybiBuLnN1YnRyYWN0KGUsdCxubCksbi5tYWduaXR1ZGUobmwpfXN0YXRpYyBkaXN0YW5jZVNxdWFyZWQoZSx0KXtyZXR1cm4gbi5zdWJ0cmFjdChlLHQsbmwpLG4ubWFnbml0dWRlU3F1YXJlZChubCl9c3RhdGljIG5vcm1hbGl6ZShlLHQpe2xldCBvPW4ubWFnbml0dWRlKGUpO3JldHVybiB0Lng9ZS54L28sdC55PWUueS9vLHQuej1lLnovbyx0fXN0YXRpYyBkb3QoZSx0KXtyZXR1cm4gZS54KnQueCtlLnkqdC55K2Uueip0Lnp9c3RhdGljIG11bHRpcGx5Q29tcG9uZW50cyhlLHQsbyl7cmV0dXJuIG8ueD1lLngqdC54LG8ueT1lLnkqdC55LG8uej1lLnoqdC56LG99c3RhdGljIGRpdmlkZUNvbXBvbmVudHMoZSx0LG8pe3JldHVybiBvLng9ZS54L3QueCxvLnk9ZS55L3QueSxvLno9ZS56L3QueixvfXN0YXRpYyBhZGQoZSx0LG8pe3JldHVybiBvLng9ZS54K3QueCxvLnk9ZS55K3QueSxvLno9ZS56K3QueixvfXN0YXRpYyBzdWJ0cmFjdChlLHQsbyl7cmV0dXJuIG8ueD1lLngtdC54LG8ueT1lLnktdC55LG8uej1lLnotdC56LG99c3RhdGljIG11bHRpcGx5QnlTY2FsYXIoZSx0LG8pe3JldHVybiBvLng9ZS54KnQsby55PWUueSp0LG8uej1lLnoqdCxvfXN0YXRpYyBkaXZpZGVCeVNjYWxhcihlLHQsbyl7cmV0dXJuIG8ueD1lLngvdCxvLnk9ZS55L3Qsby56PWUuei90LG99c3RhdGljIG5lZ2F0ZShlLHQpe3JldHVybiB0Lng9LWUueCx0Lnk9LWUueSx0Lno9LWUueix0fXN0YXRpYyBhYnMoZSx0KXtyZXR1cm4gdC54PU1hdGguYWJzKGUueCksdC55PU1hdGguYWJzKGUueSksdC56PU1hdGguYWJzKGUueiksdH1zdGF0aWMgbGVycChlLHQsbyxhKXtyZXR1cm4gbi5tdWx0aXBseUJ5U2NhbGFyKHQsbyxJMSksYT1uLm11bHRpcGx5QnlTY2FsYXIoZSwxLW8sYSksbi5hZGQoSTEsYSxhKX1zdGF0aWMgYW5nbGVCZXR3ZWVuKGUsdCl7bi5ub3JtYWxpemUoZSxvbCksbi5ub3JtYWxpemUodCxxbSk7bGV0IG89bi5kb3Qob2wscW0pLGE9bi5tYWduaXR1ZGUobi5jcm9zcyhvbCxxbSxvbCkpO3JldHVybiBNYXRoLmF0YW4yKGEsbyl9c3RhdGljIG1vc3RPcnRob2dvbmFsQXhpcyhlLHQpe2xldCBvPW4ubm9ybWFsaXplKGUsb0MpO3JldHVybiBuLmFicyhvLG8pLG8ueDw9by55P28ueDw9by56P3Q9bi5jbG9uZShuLlVOSVRfWCx0KTp0PW4uY2xvbmUobi5VTklUX1osdCk6by55PD1vLno/dD1uLmNsb25lKG4uVU5JVF9ZLHQpOnQ9bi5jbG9uZShuLlVOSVRfWix0KSx0fXN0YXRpYyBwcm9qZWN0VmVjdG9yKGUsdCxvKXtsZXQgYT1uLmRvdChlLHQpL24uZG90KHQsdCk7cmV0dXJuIG4ubXVsdGlwbHlCeVNjYWxhcih0LGEsbyl9c3RhdGljIGVxdWFscyhlLHQpe3JldHVybiBlPT09dHx8XyhlKSYmXyh0KSYmZS54PT09dC54JiZlLnk9PT10LnkmJmUuej09PXQuen1zdGF0aWMgZXF1YWxzQXJyYXkoZSx0LG8pe3JldHVybiBlLng9PT10W29dJiZlLnk9PT10W28rMV0mJmUuej09PXRbbysyXX1zdGF0aWMgZXF1YWxzRXBzaWxvbihlLHQsbyxhKXtyZXR1cm4gZT09PXR8fF8oZSkmJl8odCkmJmsuZXF1YWxzRXBzaWxvbihlLngsdC54LG8sYSkmJmsuZXF1YWxzRXBzaWxvbihlLnksdC55LG8sYSkmJmsuZXF1YWxzRXBzaWxvbihlLnosdC56LG8sYSl9c3RhdGljIGNyb3NzKGUsdCxvKXtsZXQgYT1lLngscj1lLnksaT1lLnosZj10LngsZD10LnksYz10LnosdT1yKmMtaSpkLGw9aSpmLWEqYyxoPWEqZC1yKmY7cmV0dXJuIG8ueD11LG8ueT1sLG8uej1oLG99c3RhdGljIG1pZHBvaW50KGUsdCxvKXtyZXR1cm4gby54PShlLngrdC54KSouNSxvLnk9KGUueSt0LnkpKi41LG8uej0oZS56K3QueikqLjUsb31zdGF0aWMgZnJvbURlZ3JlZXMoZSx0LG8sYSxyKXtyZXR1cm4gZT1rLnRvUmFkaWFucyhlKSx0PWsudG9SYWRpYW5zKHQpLG4uZnJvbVJhZGlhbnMoZSx0LG8sYSxyKX1zdGF0aWMgZnJvbVJhZGlhbnMoZSx0LG8sYSxyKXtvPW8/PzA7bGV0IGk9XyhhKT9hLnJhZGlpU3F1YXJlZDpuLl9lbGxpcHNvaWRSYWRpaVNxdWFyZWQsZj1NYXRoLmNvcyh0KTttYS54PWYqTWF0aC5jb3MoZSksbWEueT1mKk1hdGguc2luKGUpLG1hLno9TWF0aC5zaW4odCksbWE9bi5ub3JtYWxpemUobWEsbWEpLG4ubXVsdGlwbHlDb21wb25lbnRzKGksbWEscWMpO2xldCBkPU1hdGguc3FydChuLmRvdChtYSxxYykpO3JldHVybiBxYz1uLmRpdmlkZUJ5U2NhbGFyKHFjLGQscWMpLG1hPW4ubXVsdGlwbHlCeVNjYWxhcihtYSxvLG1hKSxfKHIpfHwocj1uZXcgbiksbi5hZGQocWMsbWEscil9c3RhdGljIGZyb21EZWdyZWVzQXJyYXkoZSx0LG8pe2xldCBhPWUubGVuZ3RoO18obyk/by5sZW5ndGg9YS8yOm89bmV3IEFycmF5KGEvMik7Zm9yKGxldCByPTA7cjxhO3IrPTIpe2xldCBpPWVbcl0sZj1lW3IrMV0sZD1yLzI7b1tkXT1uLmZyb21EZWdyZWVzKGksZiwwLHQsb1tkXSl9cmV0dXJuIG99c3RhdGljIGZyb21SYWRpYW5zQXJyYXkoZSx0LG8pe2xldCBhPWUubGVuZ3RoO18obyk/by5sZW5ndGg9YS8yOm89bmV3IEFycmF5KGEvMik7Zm9yKGxldCByPTA7cjxhO3IrPTIpe2xldCBpPWVbcl0sZj1lW3IrMV0sZD1yLzI7b1tkXT1uLmZyb21SYWRpYW5zKGksZiwwLHQsb1tkXSl9cmV0dXJuIG99c3RhdGljIGZyb21EZWdyZWVzQXJyYXlIZWlnaHRzKGUsdCxvKXtsZXQgYT1lLmxlbmd0aDtfKG8pP28ubGVuZ3RoPWEvMzpvPW5ldyBBcnJheShhLzMpO2ZvcihsZXQgcj0wO3I8YTtyKz0zKXtsZXQgaT1lW3JdLGY9ZVtyKzFdLGQ9ZVtyKzJdLGM9ci8zO29bY109bi5mcm9tRGVncmVlcyhpLGYsZCx0LG9bY10pfXJldHVybiBvfXN0YXRpYyBmcm9tUmFkaWFuc0FycmF5SGVpZ2h0cyhlLHQsbyl7bGV0IGE9ZS5sZW5ndGg7XyhvKT9vLmxlbmd0aD1hLzM6bz1uZXcgQXJyYXkoYS8zKTtmb3IobGV0IHI9MDtyPGE7cis9Myl7bGV0IGk9ZVtyXSxmPWVbcisxXSxkPWVbcisyXSxjPXIvMztvW2NdPW4uZnJvbVJhZGlhbnMoaSxmLGQsdCxvW2NdKX1yZXR1cm4gb31jbG9uZShlKXtyZXR1cm4gbi5jbG9uZSh0aGlzLGUpfWVxdWFscyhlKXtyZXR1cm4gbi5lcXVhbHModGhpcyxlKX1lcXVhbHNFcHNpbG9uKGUsdCxvKXtyZXR1cm4gbi5lcXVhbHNFcHNpbG9uKHRoaXMsZSx0LG8pfXRvU3RyaW5nKCl7cmV0dXJuYCgke3RoaXMueH0sICR7dGhpcy55fSwgJHt0aGlzLnp9KWB9fTtmbi5mcm9tQ2FydGVzaWFuND1mbi5jbG9uZTtmbi5wYWNrZWRMZW5ndGg9Mztmbi5mcm9tQXJyYXk9Zm4udW5wYWNrO25sPW5ldyBmbixJMT1uZXcgZm4sb2w9bmV3IGZuLHFtPW5ldyBmbixvQz1uZXcgZm4sbWE9bmV3IGZuLHFjPW5ldyBmbjtmbi5fZWxsaXBzb2lkUmFkaWlTcXVhcmVkPW5ldyBmbig2Mzc4MTM3KjYzNzgxMzcsNjM3ODEzNyo2Mzc4MTM3LDYzNTY3NTIzMTQyNDUxNzllLTkqNjM1Njc1MjMxNDI0NTE3OWUtOSk7Zm4uWkVSTz1PYmplY3QuZnJlZXplKG5ldyBmbigwLDAsMCkpO2ZuLk9ORT1PYmplY3QuZnJlZXplKG5ldyBmbigxLDEsMSkpO2ZuLlVOSVRfWD1PYmplY3QuZnJlZXplKG5ldyBmbigxLDAsMCkpO2ZuLlVOSVRfWT1PYmplY3QuZnJlZXplKG5ldyBmbigwLDEsMCkpO2ZuLlVOSVRfWj1PYmplY3QuZnJlZXplKG5ldyBmbigwLDAsMSkpO3M9Zm59KTtmdW5jdGlvbiBpQyhuLGUsdCxvLGEpe2xldCByPW4ueCxpPW4ueSxmPW4ueixkPWUueCxjPWUueSx1PWUueixsPXIqcipkKmQsaD1pKmkqYypjLG09ZipmKnUqdSxiPWwraCttLHA9TWF0aC5zcXJ0KDEvYikseT1zLm11bHRpcGx5QnlTY2FsYXIobixwLGFDKTtpZihiPG8pcmV0dXJuIGlzRmluaXRlKHApP3MuY2xvbmUoeSxhKTp2b2lkIDA7bGV0IEU9dC54LGc9dC55LEE9dC56LFQ9ckM7VC54PXkueCpFKjIsVC55PXkueSpnKjIsVC56PXkueipBKjI7bGV0IFI9KDEtcCkqcy5tYWduaXR1ZGUobikvKC41KnMubWFnbml0dWRlKFQpKSxTPTAsTSxJLE4sUCxGLHcseCxDLHYsaix6O2Rve1ItPVMsTj0xLygxK1IqRSksUD0xLygxK1IqZyksRj0xLygxK1IqQSksdz1OKk4seD1QKlAsQz1GKkYsdj13Kk4saj14KlAsej1DKkYsTT1sKncraCp4K20qQy0xLEk9bCp2KkUraCpqKmcrbSp6KkE7bGV0IEQ9LTIqSTtTPU0vRH13aGlsZShNYXRoLmFicyhNKT5rLkVQU0lMT04xMik7cmV0dXJuIF8oYSk/KGEueD1yKk4sYS55PWkqUCxhLno9ZipGLGEpOm5ldyBzKHIqTixpKlAsZipGKX12YXIgYUMsckMsYWwsV209WCgoKT0+e01lKCk7c2UoKTtVZSgpO2FDPW5ldyBzLHJDPW5ldyBzO2FsPWlDfSk7dmFyIHZvLHBmLGNDLHNDLGZDLHJlLGd0PVgoKCk9PntNZSgpO3NlKCk7VWUoKTtXbSgpO3ZvPWNsYXNzIHZve2NvbnN0cnVjdG9yKGUsdCxvKXt0aGlzLmxvbmdpdHVkZT1lPz8wLHRoaXMubGF0aXR1ZGU9dD8/MCx0aGlzLmhlaWdodD1vPz8wfXN0YXRpYyBmcm9tUmFkaWFucyhlLHQsbyxhKXtyZXR1cm4gbz1vPz8wLF8oYSk/KGEubG9uZ2l0dWRlPWUsYS5sYXRpdHVkZT10LGEuaGVpZ2h0PW8sYSk6bmV3IHZvKGUsdCxvKX1zdGF0aWMgZnJvbURlZ3JlZXMoZSx0LG8sYSl7cmV0dXJuIGU9ay50b1JhZGlhbnMoZSksdD1rLnRvUmFkaWFucyh0KSx2by5mcm9tUmFkaWFucyhlLHQsbyxhKX1zdGF0aWMgZnJvbUNhcnRlc2lhbihlLHQsbyl7bGV0IGE9Xyh0KT90Lm9uZU92ZXJSYWRpaTp2by5fZWxsaXBzb2lkT25lT3ZlclJhZGlpLHI9Xyh0KT90Lm9uZU92ZXJSYWRpaVNxdWFyZWQ6dm8uX2VsbGlwc29pZE9uZU92ZXJSYWRpaVNxdWFyZWQsaT1fKHQpP3QuX2NlbnRlclRvbGVyYW5jZVNxdWFyZWQ6dm8uX2VsbGlwc29pZENlbnRlclRvbGVyYW5jZVNxdWFyZWQsZj1hbChlLGEscixpLHNDKTtpZighXyhmKSlyZXR1cm47bGV0IGQ9cy5tdWx0aXBseUNvbXBvbmVudHMoZixyLGNDKTtkPXMubm9ybWFsaXplKGQsZCk7bGV0IGM9cy5zdWJ0cmFjdChlLGYsZkMpLHU9TWF0aC5hdGFuMihkLnksZC54KSxsPU1hdGguYXNpbihkLnopLGg9ay5zaWduKHMuZG90KGMsZSkpKnMubWFnbml0dWRlKGMpO3JldHVybiBfKG8pPyhvLmxvbmdpdHVkZT11LG8ubGF0aXR1ZGU9bCxvLmhlaWdodD1oLG8pOm5ldyB2byh1LGwsaCl9c3RhdGljIHRvQ2FydGVzaWFuKGUsdCxvKXtyZXR1cm4gcy5mcm9tUmFkaWFucyhlLmxvbmdpdHVkZSxlLmxhdGl0dWRlLGUuaGVpZ2h0LHQsbyl9c3RhdGljIGNsb25lKGUsdCl7aWYoXyhlKSlyZXR1cm4gXyh0KT8odC5sb25naXR1ZGU9ZS5sb25naXR1ZGUsdC5sYXRpdHVkZT1lLmxhdGl0dWRlLHQuaGVpZ2h0PWUuaGVpZ2h0LHQpOm5ldyB2byhlLmxvbmdpdHVkZSxlLmxhdGl0dWRlLGUuaGVpZ2h0KX1zdGF0aWMgZXF1YWxzKGUsdCl7cmV0dXJuIGU9PT10fHxfKGUpJiZfKHQpJiZlLmxvbmdpdHVkZT09PXQubG9uZ2l0dWRlJiZlLmxhdGl0dWRlPT09dC5sYXRpdHVkZSYmZS5oZWlnaHQ9PT10LmhlaWdodH1zdGF0aWMgZXF1YWxzRXBzaWxvbihlLHQsbyl7cmV0dXJuIG89bz8/MCxlPT09dHx8XyhlKSYmXyh0KSYmTWF0aC5hYnMoZS5sb25naXR1ZGUtdC5sb25naXR1ZGUpPD1vJiZNYXRoLmFicyhlLmxhdGl0dWRlLXQubGF0aXR1ZGUpPD1vJiZNYXRoLmFicyhlLmhlaWdodC10LmhlaWdodCk8PW99Y2xvbmUoZSl7cmV0dXJuIHZvLmNsb25lKHRoaXMsZSl9ZXF1YWxzKGUpe3JldHVybiB2by5lcXVhbHModGhpcyxlKX1lcXVhbHNFcHNpbG9uKGUsdCl7cmV0dXJuIHZvLmVxdWFsc0Vwc2lsb24odGhpcyxlLHQpfXRvU3RyaW5nKCl7cmV0dXJuYCgke3RoaXMubG9uZ2l0dWRlfSwgJHt0aGlzLmxhdGl0dWRlfSwgJHt0aGlzLmhlaWdodH0pYH19O2VsKHZvLCJfZWxsaXBzb2lkT25lT3ZlclJhZGlpIixuZXcgcygxLzYzNzgxMzcsMS82Mzc4MTM3LDEvNjM1Njc1MjMxNDI0NTE3OWUtOSkpLGVsKHZvLCJfZWxsaXBzb2lkT25lT3ZlclJhZGlpU3F1YXJlZCIsbmV3IHMoMS8oNjM3ODEzNyo2Mzc4MTM3KSwxLyg2Mzc4MTM3KjYzNzgxMzcpLDEvKDYzNTY3NTIzMTQyNDUxNzllLTkqNjM1Njc1MjMxNDI0NTE3OWUtOSkpKSxlbCh2bywiX2VsbGlwc29pZENlbnRlclRvbGVyYW5jZVNxdWFyZWQiLGsuRVBTSUxPTjEpO3BmPXZvO3BmLlpFUk89T2JqZWN0LmZyZWV6ZShuZXcgcGYoMCwwLDApKTtjQz1uZXcgcyxzQz1uZXcgcyxmQz1uZXcgcyxyZT1wZn0pO3ZhciBObixybCxQMSxrMSx2MSxkQyxZLHZ0PVgoKCk9PntzZSgpO1VlKCk7Tm49Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLHQpe3RoaXMueD1lPz8wLHRoaXMueT10Pz8wfXN0YXRpYyBmcm9tRWxlbWVudHMoZSx0LG8pe3JldHVybiBfKG8pPyhvLng9ZSxvLnk9dCxvKTpuZXcgbihlLHQpfXN0YXRpYyBjbG9uZShlLHQpe2lmKF8oZSkpcmV0dXJuIF8odCk/KHQueD1lLngsdC55PWUueSx0KTpuZXcgbihlLngsZS55KX1zdGF0aWMgcGFjayhlLHQsbyl7cmV0dXJuIG89bz8/MCx0W28rK109ZS54LHRbb109ZS55LHR9c3RhdGljIHVucGFjayhlLHQsbyl7cmV0dXJuIHQ9dD8/MCxfKG8pfHwobz1uZXcgbiksby54PWVbdCsrXSxvLnk9ZVt0XSxvfXN0YXRpYyBwYWNrQXJyYXkoZSx0KXtsZXQgbz1lLmxlbmd0aCxhPW8qMjtfKHQpPyFBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aCE9PWF8fHQubGVuZ3RoIT09YSYmKHQubGVuZ3RoPWEpOnQ9bmV3IEFycmF5KGEpO2ZvcihsZXQgcj0wO3I8bzsrK3Ipbi5wYWNrKGVbcl0sdCxyKjIpO3JldHVybiB0fXN0YXRpYyB1bnBhY2tBcnJheShlLHQpe2xldCBvPWUubGVuZ3RoO18odCk/dC5sZW5ndGg9by8yOnQ9bmV3IEFycmF5KG8vMik7Zm9yKGxldCBhPTA7YTxvO2ErPTIpe2xldCByPWEvMjt0W3JdPW4udW5wYWNrKGUsYSx0W3JdKX1yZXR1cm4gdH1zdGF0aWMgbWF4aW11bUNvbXBvbmVudChlKXtyZXR1cm4gTWF0aC5tYXgoZS54LGUueSl9c3RhdGljIG1pbmltdW1Db21wb25lbnQoZSl7cmV0dXJuIE1hdGgubWluKGUueCxlLnkpfXN0YXRpYyBtaW5pbXVtQnlDb21wb25lbnQoZSx0LG8pe3JldHVybiBvLng9TWF0aC5taW4oZS54LHQueCksby55PU1hdGgubWluKGUueSx0LnkpLG99c3RhdGljIG1heGltdW1CeUNvbXBvbmVudChlLHQsbyl7cmV0dXJuIG8ueD1NYXRoLm1heChlLngsdC54KSxvLnk9TWF0aC5tYXgoZS55LHQueSksb31zdGF0aWMgY2xhbXAoZSx0LG8sYSl7bGV0IHI9ay5jbGFtcChlLngsdC54LG8ueCksaT1rLmNsYW1wKGUueSx0Lnksby55KTtyZXR1cm4gYS54PXIsYS55PWksYX1zdGF0aWMgbWFnbml0dWRlU3F1YXJlZChlKXtyZXR1cm4gZS54KmUueCtlLnkqZS55fXN0YXRpYyBtYWduaXR1ZGUoZSl7cmV0dXJuIE1hdGguc3FydChuLm1hZ25pdHVkZVNxdWFyZWQoZSkpfXN0YXRpYyBkaXN0YW5jZShlLHQpe3JldHVybiBuLnN1YnRyYWN0KGUsdCxybCksbi5tYWduaXR1ZGUocmwpfXN0YXRpYyBkaXN0YW5jZVNxdWFyZWQoZSx0KXtyZXR1cm4gbi5zdWJ0cmFjdChlLHQscmwpLG4ubWFnbml0dWRlU3F1YXJlZChybCl9c3RhdGljIG5vcm1hbGl6ZShlLHQpe2xldCBvPW4ubWFnbml0dWRlKGUpO3JldHVybiB0Lng9ZS54L28sdC55PWUueS9vLHR9c3RhdGljIGRvdChlLHQpe3JldHVybiBlLngqdC54K2UueSp0Lnl9c3RhdGljIGNyb3NzKGUsdCl7cmV0dXJuIGUueCp0LnktZS55KnQueH1zdGF0aWMgbXVsdGlwbHlDb21wb25lbnRzKGUsdCxvKXtyZXR1cm4gby54PWUueCp0Lngsby55PWUueSp0Lnksb31zdGF0aWMgZGl2aWRlQ29tcG9uZW50cyhlLHQsbyl7cmV0dXJuIG8ueD1lLngvdC54LG8ueT1lLnkvdC55LG99c3RhdGljIGFkZChlLHQsbyl7cmV0dXJuIG8ueD1lLngrdC54LG8ueT1lLnkrdC55LG99c3RhdGljIHN1YnRyYWN0KGUsdCxvKXtyZXR1cm4gby54PWUueC10Lngsby55PWUueS10Lnksb31zdGF0aWMgbXVsdGlwbHlCeVNjYWxhcihlLHQsbyl7cmV0dXJuIG8ueD1lLngqdCxvLnk9ZS55KnQsb31zdGF0aWMgZGl2aWRlQnlTY2FsYXIoZSx0LG8pe3JldHVybiBvLng9ZS54L3Qsby55PWUueS90LG99c3RhdGljIG5lZ2F0ZShlLHQpe3JldHVybiB0Lng9LWUueCx0Lnk9LWUueSx0fXN0YXRpYyBhYnMoZSx0KXtyZXR1cm4gdC54PU1hdGguYWJzKGUueCksdC55PU1hdGguYWJzKGUueSksdH1zdGF0aWMgbGVycChlLHQsbyxhKXtyZXR1cm4gbi5tdWx0aXBseUJ5U2NhbGFyKHQsbyxQMSksYT1uLm11bHRpcGx5QnlTY2FsYXIoZSwxLW8sYSksbi5hZGQoUDEsYSxhKX1zdGF0aWMgYW5nbGVCZXR3ZWVuKGUsdCl7cmV0dXJuIG4ubm9ybWFsaXplKGUsazEpLG4ubm9ybWFsaXplKHQsdjEpLGsuYWNvc0NsYW1wZWQobi5kb3QoazEsdjEpKX1zdGF0aWMgbW9zdE9ydGhvZ29uYWxBeGlzKGUsdCl7bGV0IG89bi5ub3JtYWxpemUoZSxkQyk7cmV0dXJuIG4uYWJzKG8sbyksby54PD1vLnk/dD1uLmNsb25lKG4uVU5JVF9YLHQpOnQ9bi5jbG9uZShuLlVOSVRfWSx0KSx0fXN0YXRpYyBlcXVhbHMoZSx0KXtyZXR1cm4gZT09PXR8fF8oZSkmJl8odCkmJmUueD09PXQueCYmZS55PT09dC55fXN0YXRpYyBlcXVhbHNBcnJheShlLHQsbyl7cmV0dXJuIGUueD09PXRbb10mJmUueT09PXRbbysxXX1zdGF0aWMgZXF1YWxzRXBzaWxvbihlLHQsbyxhKXtyZXR1cm4gZT09PXR8fF8oZSkmJl8odCkmJmsuZXF1YWxzRXBzaWxvbihlLngsdC54LG8sYSkmJmsuZXF1YWxzRXBzaWxvbihlLnksdC55LG8sYSl9Y2xvbmUoZSl7cmV0dXJuIG4uY2xvbmUodGhpcyxlKX1lcXVhbHMoZSl7cmV0dXJuIG4uZXF1YWxzKHRoaXMsZSl9ZXF1YWxzRXBzaWxvbihlLHQsbyl7cmV0dXJuIG4uZXF1YWxzRXBzaWxvbih0aGlzLGUsdCxvKX10b1N0cmluZygpe3JldHVybmAoJHt0aGlzLnh9LCAke3RoaXMueX0pYH19O05uLmZyb21DYXJ0ZXNpYW4zPU5uLmNsb25lO05uLmZyb21DYXJ0ZXNpYW40PU5uLmNsb25lO05uLnBhY2tlZExlbmd0aD0yO05uLmZyb21BcnJheT1Obi51bnBhY2s7cmw9bmV3IE5uLFAxPW5ldyBObixrMT1uZXcgTm4sdjE9bmV3IE5uLGRDPW5ldyBObjtObi5aRVJPPU9iamVjdC5mcmVlemUobmV3IE5uKDAsMCkpO05uLk9ORT1PYmplY3QuZnJlZXplKG5ldyBObigxLDEpKTtObi5VTklUX1g9T2JqZWN0LmZyZWV6ZShuZXcgTm4oMSwwKSk7Tm4uVU5JVF9ZPU9iamVjdC5mcmVlemUobmV3IE5uKDAsMSkpO1k9Tm59KTtmdW5jdGlvbiBGMShuLGUsdCxvKXtlPWU/PzAsdD10Pz8wLG89bz8/MCxuLl9yYWRpaT1uZXcgcyhlLHQsbyksbi5fcmFkaWlTcXVhcmVkPW5ldyBzKGUqZSx0KnQsbypvKSxuLl9yYWRpaVRvVGhlRm91cnRoPW5ldyBzKGUqZSplKmUsdCp0KnQqdCxvKm8qbypvKSxuLl9vbmVPdmVyUmFkaWk9bmV3IHMoZT09PTA/MDoxL2UsdD09PTA/MDoxL3Qsbz09PTA/MDoxL28pLG4uX29uZU92ZXJSYWRpaVNxdWFyZWQ9bmV3IHMoZT09PTA/MDoxLyhlKmUpLHQ9PT0wPzA6MS8odCp0KSxvPT09MD8wOjEvKG8qbykpLG4uX21pbmltdW1SYWRpdXM9TWF0aC5taW4oZSx0LG8pLG4uX21heGltdW1SYWRpdXM9TWF0aC5tYXgoZSx0LG8pLG4uX2NlbnRlclRvbGVyYW5jZVNxdWFyZWQ9ay5FUFNJTE9OMSxuLl9yYWRpaVNxdWFyZWQueiE9PTAmJihuLl9zcXVhcmVkWE92ZXJTcXVhcmVkWj1uLl9yYWRpaVNxdWFyZWQueC9uLl9yYWRpaVNxdWFyZWQueil9ZnVuY3Rpb24gRDEobixlLHQpe2xldCBvPS41KihlK24pLGE9LjUqKGUtbikscj0wO2ZvcihsZXQgaT0wO2k8NTtpKyspe2xldCBmPWEqZ0NbaV07cis9X0NbaV0qKHQobytmKSt0KG8tZikpfXJldHVybiByKj1hLHJ9dmFyIEZvLHVDLGxDLGhDLG1DLGJDLHBDLGdDLF9DLEssVmU9WCgoKT0+e3Z0KCk7TWUoKTtndCgpO3NlKCk7VWUoKTtXbSgpO0ZvPWNsYXNzIG57Y29uc3RydWN0b3IoZSx0LG8pe3RoaXMuX3JhZGlpPXZvaWQgMCx0aGlzLl9yYWRpaVNxdWFyZWQ9dm9pZCAwLHRoaXMuX3JhZGlpVG9UaGVGb3VydGg9dm9pZCAwLHRoaXMuX29uZU92ZXJSYWRpaT12b2lkIDAsdGhpcy5fb25lT3ZlclJhZGlpU3F1YXJlZD12b2lkIDAsdGhpcy5fbWluaW11bVJhZGl1cz12b2lkIDAsdGhpcy5fbWF4aW11bVJhZGl1cz12b2lkIDAsdGhpcy5fY2VudGVyVG9sZXJhbmNlU3F1YXJlZD12b2lkIDAsdGhpcy5fc3F1YXJlZFhPdmVyU3F1YXJlZFo9dm9pZCAwLEYxKHRoaXMsZSx0LG8pfWdldCByYWRpaSgpe3JldHVybiB0aGlzLl9yYWRpaX1nZXQgcmFkaWlTcXVhcmVkKCl7cmV0dXJuIHRoaXMuX3JhZGlpU3F1YXJlZH1nZXQgcmFkaWlUb1RoZUZvdXJ0aCgpe3JldHVybiB0aGlzLl9yYWRpaVRvVGhlRm91cnRofWdldCBvbmVPdmVyUmFkaWkoKXtyZXR1cm4gdGhpcy5fb25lT3ZlclJhZGlpfWdldCBvbmVPdmVyUmFkaWlTcXVhcmVkKCl7cmV0dXJuIHRoaXMuX29uZU92ZXJSYWRpaVNxdWFyZWR9Z2V0IG1pbmltdW1SYWRpdXMoKXtyZXR1cm4gdGhpcy5fbWluaW11bVJhZGl1c31nZXQgbWF4aW11bVJhZGl1cygpe3JldHVybiB0aGlzLl9tYXhpbXVtUmFkaXVzfXN0YXRpYyBjbG9uZShlLHQpe2lmKCFfKGUpKXJldHVybjtsZXQgbz1lLl9yYWRpaTtyZXR1cm4gXyh0KT8ocy5jbG9uZShvLHQuX3JhZGlpKSxzLmNsb25lKGUuX3JhZGlpU3F1YXJlZCx0Ll9yYWRpaVNxdWFyZWQpLHMuY2xvbmUoZS5fcmFkaWlUb1RoZUZvdXJ0aCx0Ll9yYWRpaVRvVGhlRm91cnRoKSxzLmNsb25lKGUuX29uZU92ZXJSYWRpaSx0Ll9vbmVPdmVyUmFkaWkpLHMuY2xvbmUoZS5fb25lT3ZlclJhZGlpU3F1YXJlZCx0Ll9vbmVPdmVyUmFkaWlTcXVhcmVkKSx0Ll9taW5pbXVtUmFkaXVzPWUuX21pbmltdW1SYWRpdXMsdC5fbWF4aW11bVJhZGl1cz1lLl9tYXhpbXVtUmFkaXVzLHQuX2NlbnRlclRvbGVyYW5jZVNxdWFyZWQ9ZS5fY2VudGVyVG9sZXJhbmNlU3F1YXJlZCx0KTpuZXcgbihvLngsby55LG8ueil9c3RhdGljIGZyb21DYXJ0ZXNpYW4zKGUsdCl7cmV0dXJuIF8odCl8fCh0PW5ldyBuKSxfKGUpJiZGMSh0LGUueCxlLnksZS56KSx0fXN0YXRpYyBnZXQgZGVmYXVsdCgpe3JldHVybiBuLl9kZWZhdWx0fXN0YXRpYyBzZXQgZGVmYXVsdChlKXtuLl9kZWZhdWx0PWUscy5fZWxsaXBzb2lkUmFkaWlTcXVhcmVkPWUucmFkaWlTcXVhcmVkLHJlLl9lbGxpcHNvaWRPbmVPdmVyUmFkaWk9ZS5vbmVPdmVyUmFkaWkscmUuX2VsbGlwc29pZE9uZU92ZXJSYWRpaVNxdWFyZWQ9ZS5vbmVPdmVyUmFkaWlTcXVhcmVkLHJlLl9lbGxpcHNvaWRDZW50ZXJUb2xlcmFuY2VTcXVhcmVkPWUuX2NlbnRlclRvbGVyYW5jZVNxdWFyZWR9Y2xvbmUoZSl7cmV0dXJuIG4uY2xvbmUodGhpcyxlKX1zdGF0aWMgcGFjayhlLHQsbyl7cmV0dXJuIG89bz8/MCxzLnBhY2soZS5fcmFkaWksdCxvKSx0fXN0YXRpYyB1bnBhY2soZSx0LG8pe3Q9dD8/MDtsZXQgYT1zLnVucGFjayhlLHQpO3JldHVybiBuLmZyb21DYXJ0ZXNpYW4zKGEsbyl9Z2VvZGV0aWNTdXJmYWNlTm9ybWFsQ2FydG9ncmFwaGljKGUsdCl7bGV0IG89ZS5sb25naXR1ZGUsYT1lLmxhdGl0dWRlLHI9TWF0aC5jb3MoYSksaT1yKk1hdGguY29zKG8pLGY9cipNYXRoLnNpbihvKSxkPU1hdGguc2luKGEpO3JldHVybiBfKHQpfHwodD1uZXcgcyksdC54PWksdC55PWYsdC56PWQscy5ub3JtYWxpemUodCx0KX1nZW9kZXRpY1N1cmZhY2VOb3JtYWwoZSx0KXtpZighcy5lcXVhbHNFcHNpbG9uKGUscy5aRVJPLGsuRVBTSUxPTjE0KSlyZXR1cm4gXyh0KXx8KHQ9bmV3IHMpLHQ9cy5tdWx0aXBseUNvbXBvbmVudHMoZSx0aGlzLl9vbmVPdmVyUmFkaWlTcXVhcmVkLHQpLHMubm9ybWFsaXplKHQsdCl9Y2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oZSx0KXtsZXQgbz11QyxhPWxDO3RoaXMuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsQ2FydG9ncmFwaGljKGUsbykscy5tdWx0aXBseUNvbXBvbmVudHModGhpcy5fcmFkaWlTcXVhcmVkLG8sYSk7bGV0IHI9TWF0aC5zcXJ0KHMuZG90KG8sYSkpO3JldHVybiBzLmRpdmlkZUJ5U2NhbGFyKGEscixhKSxzLm11bHRpcGx5QnlTY2FsYXIobyxlLmhlaWdodCxvKSxfKHQpfHwodD1uZXcgcykscy5hZGQoYSxvLHQpfWNhcnRvZ3JhcGhpY0FycmF5VG9DYXJ0ZXNpYW5BcnJheShlLHQpe2xldCBvPWUubGVuZ3RoO18odCk/dC5sZW5ndGg9bzp0PW5ldyBBcnJheShvKTtmb3IobGV0IGE9MDthPG87YSsrKXRbYV09dGhpcy5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihlW2FdLHRbYV0pO3JldHVybiB0fWNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGUsdCl7bGV0IG89dGhpcy5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGUsbUMpO2lmKCFfKG8pKXJldHVybjtsZXQgYT10aGlzLmdlb2RldGljU3VyZmFjZU5vcm1hbChvLGhDKSxyPXMuc3VidHJhY3QoZSxvLGJDKSxpPU1hdGguYXRhbjIoYS55LGEueCksZj1NYXRoLmFzaW4oYS56KSxkPWsuc2lnbihzLmRvdChyLGUpKSpzLm1hZ25pdHVkZShyKTtyZXR1cm4gXyh0KT8odC5sb25naXR1ZGU9aSx0LmxhdGl0dWRlPWYsdC5oZWlnaHQ9ZCx0KTpuZXcgcmUoaSxmLGQpfWNhcnRlc2lhbkFycmF5VG9DYXJ0b2dyYXBoaWNBcnJheShlLHQpe2xldCBvPWUubGVuZ3RoO18odCk/dC5sZW5ndGg9bzp0PW5ldyBBcnJheShvKTtmb3IobGV0IGE9MDthPG87KythKXRbYV09dGhpcy5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhlW2FdLHRbYV0pO3JldHVybiB0fXNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoZSx0KXtyZXR1cm4gYWwoZSx0aGlzLl9vbmVPdmVyUmFkaWksdGhpcy5fb25lT3ZlclJhZGlpU3F1YXJlZCx0aGlzLl9jZW50ZXJUb2xlcmFuY2VTcXVhcmVkLHQpfXNjYWxlVG9HZW9jZW50cmljU3VyZmFjZShlLHQpe18odCl8fCh0PW5ldyBzKTtsZXQgbz1lLngsYT1lLnkscj1lLnosaT10aGlzLl9vbmVPdmVyUmFkaWlTcXVhcmVkLGY9MS9NYXRoLnNxcnQobypvKmkueCthKmEqaS55K3IqcippLnopO3JldHVybiBzLm11bHRpcGx5QnlTY2FsYXIoZSxmLHQpfXRyYW5zZm9ybVBvc2l0aW9uVG9TY2FsZWRTcGFjZShlLHQpe3JldHVybiBfKHQpfHwodD1uZXcgcykscy5tdWx0aXBseUNvbXBvbmVudHMoZSx0aGlzLl9vbmVPdmVyUmFkaWksdCl9dHJhbnNmb3JtUG9zaXRpb25Gcm9tU2NhbGVkU3BhY2UoZSx0KXtyZXR1cm4gXyh0KXx8KHQ9bmV3IHMpLHMubXVsdGlwbHlDb21wb25lbnRzKGUsdGhpcy5fcmFkaWksdCl9ZXF1YWxzKGUpe3JldHVybiB0aGlzPT09ZXx8XyhlKSYmcy5lcXVhbHModGhpcy5fcmFkaWksZS5fcmFkaWkpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX3JhZGlpLnRvU3RyaW5nKCl9Z2V0U3VyZmFjZU5vcm1hbEludGVyc2VjdGlvbldpdGhaQXhpcyhlLHQsbyl7dD10Pz8wO2xldCBhPXRoaXMuX3NxdWFyZWRYT3ZlclNxdWFyZWRaO2lmKF8obyl8fChvPW5ldyBzKSxvLng9MCxvLnk9MCxvLno9ZS56KigxLWEpLCEoTWF0aC5hYnMoby56KT49dGhpcy5fcmFkaWkuei10KSlyZXR1cm4gb31nZXRMb2NhbEN1cnZhdHVyZShlLHQpe18odCl8fCh0PW5ldyBZKTtsZXQgbz10aGlzLmdldFN1cmZhY2VOb3JtYWxJbnRlcnNlY3Rpb25XaXRoWkF4aXMoZSwwLHBDKSxhPXMuZGlzdGFuY2UoZSxvKSxyPXRoaXMubWluaW11bVJhZGl1cyphL3RoaXMubWF4aW11bVJhZGl1cyoqMixpPWEqcioqMjtyZXR1cm4gWS5mcm9tRWxlbWVudHMoMS9hLDEvaSx0KX1zdXJmYWNlQXJlYShlKXtsZXQgdD1lLndlc3Qsbz1lLmVhc3QsYT1lLnNvdXRoLHI9ZS5ub3J0aDtmb3IoO288dDspbys9ay5UV09fUEk7bGV0IGk9dGhpcy5fcmFkaWlTcXVhcmVkLGY9aS54LGQ9aS55LGM9aS56LHU9ZipkO3JldHVybiBEMShhLHIsZnVuY3Rpb24obCl7bGV0IGg9TWF0aC5jb3MobCksbT1NYXRoLnNpbihsKTtyZXR1cm4gTWF0aC5jb3MobCkqRDEodCxvLGZ1bmN0aW9uKGIpe2xldCBwPU1hdGguY29zKGIpLHk9TWF0aC5zaW4oYik7cmV0dXJuIE1hdGguc3FydCh1Km0qbStjKihkKnAqcCtmKnkqeSkqaCpoKX0pfSl9fTtGby5XR1M4ND1PYmplY3QuZnJlZXplKG5ldyBGbyg2Mzc4MTM3LDYzNzgxMzcsNjM1Njc1MjMxNDI0NTE3OWUtOSkpO0ZvLlVOSVRfU1BIRVJFPU9iamVjdC5mcmVlemUobmV3IEZvKDEsMSwxKSk7Rm8uTU9PTj1PYmplY3QuZnJlZXplKG5ldyBGbyhrLkxVTkFSX1JBRElVUyxrLkxVTkFSX1JBRElVUyxrLkxVTkFSX1JBRElVUykpO0ZvLk1BUlM9T2JqZWN0LmZyZWV6ZShuZXcgRm8oMzM5NjE5MCwzMzk2MTkwLDMzNzYyMDApKTtGby5fZGVmYXVsdD1Gby5XR1M4NDtGby5wYWNrZWRMZW5ndGg9cy5wYWNrZWRMZW5ndGg7Rm8ucHJvdG90eXBlLmdlb2NlbnRyaWNTdXJmYWNlTm9ybWFsPXMubm9ybWFsaXplO3VDPW5ldyBzLGxDPW5ldyBzLGhDPW5ldyBzLG1DPW5ldyBzLGJDPW5ldyBzLHBDPW5ldyBzLGdDPVsuMTQ4ODc0MzM4OTgxNjMsLjQzMzM5NTM5NDEyOTI1LC42Nzk0MDk1NjgyOTkwMiwuODY1MDYzMzY2Njg4OTgsLjk3MzkwNjUyODUxNzE3LDBdLF9DPVsuMjk1NTI0MjI0NzE0NzUsLjI2OTI2NjcxOTMwOTk5LC4yMTkwODYzNjI1MTU5OCwuMTQ5NDUxMzQ5MTUwNTgsLjA2NjY3MTM0NDMwODY4NCwwXTtLPUZvfSk7dmFyIFhtLG5vLFByPVgoKCk9PntNZSgpO2d0KCk7c2UoKTtWZSgpO1htPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuX2VsbGlwc29pZD1lPz9LLmRlZmF1bHQsdGhpcy5fc2VtaW1ham9yQXhpcz10aGlzLl9lbGxpcHNvaWQubWF4aW11bVJhZGl1cyx0aGlzLl9vbmVPdmVyU2VtaW1ham9yQXhpcz0xL3RoaXMuX3NlbWltYWpvckF4aXN9Z2V0IGVsbGlwc29pZCgpe3JldHVybiB0aGlzLl9lbGxpcHNvaWR9cHJvamVjdChlLHQpe2xldCBvPXRoaXMuX3NlbWltYWpvckF4aXMsYT1lLmxvbmdpdHVkZSpvLHI9ZS5sYXRpdHVkZSpvLGk9ZS5oZWlnaHQ7cmV0dXJuIF8odCk/KHQueD1hLHQueT1yLHQuej1pLHQpOm5ldyBzKGEscixpKX11bnByb2plY3QoZSx0KXtsZXQgbz10aGlzLl9vbmVPdmVyU2VtaW1ham9yQXhpcyxhPWUueCpvLHI9ZS55Km8saT1lLno7cmV0dXJuIF8odCk/KHQubG9uZ2l0dWRlPWEsdC5sYXRpdHVkZT1yLHQuaGVpZ2h0PWksdCk6bmV3IHJlKGEscixpKX19LG5vPVhtfSk7dmFyIEIxLFRuLFppPVgoKCk9PntCMT17T1VUU0lERTotMSxJTlRFUlNFQ1RJTkc6MCxJTlNJREU6MX07T2JqZWN0LmZyZWV6ZShCMSk7VG49QjF9KTtmdW5jdGlvbiB5QyhuLGUpe3RoaXMuc3RhcnQ9bj8/MCx0aGlzLnN0b3A9ZT8/MH12YXIgX28sZ2Y9WCgoKT0+e19vPXlDfSk7ZnVuY3Rpb24geEMobil7bGV0IGU9MDtmb3IobGV0IHQ9MDt0PDk7Kyt0KXtsZXQgbz1uW3RdO2UrPW8qb31yZXR1cm4gTWF0aC5zcXJ0KGUpfWZ1bmN0aW9uIE9DKG4pe2xldCBlPTA7Zm9yKGxldCB0PTA7dDwzOysrdCl7bGV0IG89bltCdC5nZXRFbGVtZW50SW5kZXgoWm1bdF0sSm1bdF0pXTtlKz0yKm8qb31yZXR1cm4gTWF0aC5zcXJ0KGUpfWZ1bmN0aW9uIFNDKG4sZSl7bGV0IHQ9ay5FUFNJTE9OMTUsbz0wLGE9MTtmb3IobGV0IGM9MDtjPDM7KytjKXtsZXQgdT1NYXRoLmFicyhuW0J0LmdldEVsZW1lbnRJbmRleChabVtjXSxKbVtjXSldKTt1Pm8mJihhPWMsbz11KX1sZXQgcj0xLGk9MCxmPUptW2FdLGQ9Wm1bYV07aWYoTWF0aC5hYnMobltCdC5nZXRFbGVtZW50SW5kZXgoZCxmKV0pPnQpe2xldCBjPW5bQnQuZ2V0RWxlbWVudEluZGV4KGQsZCldLHU9bltCdC5nZXRFbGVtZW50SW5kZXgoZixmKV0sbD1uW0J0LmdldEVsZW1lbnRJbmRleChkLGYpXSxoPShjLXUpLzIvbCxtO2g8MD9tPS0xLygtaCtNYXRoLnNxcnQoMStoKmgpKTptPTEvKGgrTWF0aC5zcXJ0KDEraCpoKSkscj0xL01hdGguc3FydCgxK20qbSksaT1tKnJ9cmV0dXJuIGU9QnQuY2xvbmUoQnQuSURFTlRJVFksZSksZVtCdC5nZXRFbGVtZW50SW5kZXgoZixmKV09ZVtCdC5nZXRFbGVtZW50SW5kZXgoZCxkKV09cixlW0J0LmdldEVsZW1lbnRJbmRleChkLGYpXT1pLGVbQnQuZ2V0RWxlbWVudEluZGV4KGYsZCldPS1pLGV9dmFyIEJ0LEFDLHdDLFltLGoxLFRDLEVDLGlsLFUxLFJDLEptLFptLEosSW49WCgoKT0+e01lKCk7c2UoKTtVZSgpO0J0PWNsYXNzIG57Y29uc3RydWN0b3IoZSx0LG8sYSxyLGksZixkLGMpe3RoaXNbMF09ZT8/MCx0aGlzWzFdPWE/PzAsdGhpc1syXT1mPz8wLHRoaXNbM109dD8/MCx0aGlzWzRdPXI/PzAsdGhpc1s1XT1kPz8wLHRoaXNbNl09bz8/MCx0aGlzWzddPWk/PzAsdGhpc1s4XT1jPz8wfXN0YXRpYyBwYWNrKGUsdCxvKXtyZXR1cm4gbz1vPz8wLHRbbysrXT1lWzBdLHRbbysrXT1lWzFdLHRbbysrXT1lWzJdLHRbbysrXT1lWzNdLHRbbysrXT1lWzRdLHRbbysrXT1lWzVdLHRbbysrXT1lWzZdLHRbbysrXT1lWzddLHRbbysrXT1lWzhdLHR9c3RhdGljIHVucGFjayhlLHQsbyl7cmV0dXJuIHQ9dD8/MCxfKG8pfHwobz1uZXcgbiksb1swXT1lW3QrK10sb1sxXT1lW3QrK10sb1syXT1lW3QrK10sb1szXT1lW3QrK10sb1s0XT1lW3QrK10sb1s1XT1lW3QrK10sb1s2XT1lW3QrK10sb1s3XT1lW3QrK10sb1s4XT1lW3QrK10sb31zdGF0aWMgcGFja0FycmF5KGUsdCl7bGV0IG89ZS5sZW5ndGgsYT1vKjk7Xyh0KT8hQXJyYXkuaXNBcnJheSh0KSYmdC5sZW5ndGghPT1hfHx0Lmxlbmd0aCE9PWEmJih0Lmxlbmd0aD1hKTp0PW5ldyBBcnJheShhKTtmb3IobGV0IHI9MDtyPG87KytyKW4ucGFjayhlW3JdLHQscio5KTtyZXR1cm4gdH1zdGF0aWMgdW5wYWNrQXJyYXkoZSx0KXtsZXQgbz1lLmxlbmd0aDtfKHQpP3QubGVuZ3RoPW8vOTp0PW5ldyBBcnJheShvLzkpO2ZvcihsZXQgYT0wO2E8bzthKz05KXtsZXQgcj1hLzk7dFtyXT1uLnVucGFjayhlLGEsdFtyXSl9cmV0dXJuIHR9c3RhdGljIGNsb25lKGUsdCl7aWYoXyhlKSlyZXR1cm4gXyh0KT8odFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHRbNF09ZVs0XSx0WzVdPWVbNV0sdFs2XT1lWzZdLHRbN109ZVs3XSx0WzhdPWVbOF0sdCk6bmV3IG4oZVswXSxlWzNdLGVbNl0sZVsxXSxlWzRdLGVbN10sZVsyXSxlWzVdLGVbOF0pfXN0YXRpYyBmcm9tQ29sdW1uTWFqb3JBcnJheShlLHQpe3JldHVybiBuLmNsb25lKGUsdCl9c3RhdGljIGZyb21Sb3dNYWpvckFycmF5KGUsdCl7cmV0dXJuIF8odCk/KHRbMF09ZVswXSx0WzFdPWVbM10sdFsyXT1lWzZdLHRbM109ZVsxXSx0WzRdPWVbNF0sdFs1XT1lWzddLHRbNl09ZVsyXSx0WzddPWVbNV0sdFs4XT1lWzhdLHQpOm5ldyBuKGVbMF0sZVsxXSxlWzJdLGVbM10sZVs0XSxlWzVdLGVbNl0sZVs3XSxlWzhdKX1zdGF0aWMgZnJvbVF1YXRlcm5pb24oZSx0KXtsZXQgbz1lLngqZS54LGE9ZS54KmUueSxyPWUueCplLnosaT1lLngqZS53LGY9ZS55KmUueSxkPWUueSplLnosYz1lLnkqZS53LHU9ZS56KmUueixsPWUueiplLncsaD1lLncqZS53LG09by1mLXUraCxiPTIqKGEtbCkscD0yKihyK2MpLHk9MiooYStsKSxFPS1vK2YtdStoLGc9MiooZC1pKSxBPTIqKHItYyksVD0yKihkK2kpLFI9LW8tZit1K2g7cmV0dXJuIF8odCk/KHRbMF09bSx0WzFdPXksdFsyXT1BLHRbM109Yix0WzRdPUUsdFs1XT1ULHRbNl09cCx0WzddPWcsdFs4XT1SLHQpOm5ldyBuKG0sYixwLHksRSxnLEEsVCxSKX1zdGF0aWMgZnJvbUhlYWRpbmdQaXRjaFJvbGwoZSx0KXtsZXQgbz1NYXRoLmNvcygtZS5waXRjaCksYT1NYXRoLmNvcygtZS5oZWFkaW5nKSxyPU1hdGguY29zKGUucm9sbCksaT1NYXRoLnNpbigtZS5waXRjaCksZj1NYXRoLnNpbigtZS5oZWFkaW5nKSxkPU1hdGguc2luKGUucm9sbCksYz1vKmEsdT0tcipmK2QqaSphLGw9ZCpmK3IqaSphLGg9bypmLG09ciphK2QqaSpmLGI9LWQqYStyKmkqZixwPS1pLHk9ZCpvLEU9cipvO3JldHVybiBfKHQpPyh0WzBdPWMsdFsxXT1oLHRbMl09cCx0WzNdPXUsdFs0XT1tLHRbNV09eSx0WzZdPWwsdFs3XT1iLHRbOF09RSx0KTpuZXcgbihjLHUsbCxoLG0sYixwLHksRSl9c3RhdGljIGZyb21TY2FsZShlLHQpe3JldHVybiBfKHQpPyh0WzBdPWUueCx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPWUueSx0WzVdPTAsdFs2XT0wLHRbN109MCx0WzhdPWUueix0KTpuZXcgbihlLngsMCwwLDAsZS55LDAsMCwwLGUueil9c3RhdGljIGZyb21Vbmlmb3JtU2NhbGUoZSx0KXtyZXR1cm4gXyh0KT8odFswXT1lLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09ZSx0WzVdPTAsdFs2XT0wLHRbN109MCx0WzhdPWUsdCk6bmV3IG4oZSwwLDAsMCxlLDAsMCwwLGUpfXN0YXRpYyBmcm9tQ3Jvc3NQcm9kdWN0KGUsdCl7cmV0dXJuIF8odCk/KHRbMF09MCx0WzFdPWUueix0WzJdPS1lLnksdFszXT0tZS56LHRbNF09MCx0WzVdPWUueCx0WzZdPWUueSx0WzddPS1lLngsdFs4XT0wLHQpOm5ldyBuKDAsLWUueixlLnksZS56LDAsLWUueCwtZS55LGUueCwwKX1zdGF0aWMgZnJvbVJvdGF0aW9uWChlLHQpe2xldCBvPU1hdGguY29zKGUpLGE9TWF0aC5zaW4oZSk7cmV0dXJuIF8odCk/KHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPW8sdFs1XT1hLHRbNl09MCx0WzddPS1hLHRbOF09byx0KTpuZXcgbigxLDAsMCwwLG8sLWEsMCxhLG8pfXN0YXRpYyBmcm9tUm90YXRpb25ZKGUsdCl7bGV0IG89TWF0aC5jb3MoZSksYT1NYXRoLnNpbihlKTtyZXR1cm4gXyh0KT8odFswXT1vLHRbMV09MCx0WzJdPS1hLHRbM109MCx0WzRdPTEsdFs1XT0wLHRbNl09YSx0WzddPTAsdFs4XT1vLHQpOm5ldyBuKG8sMCxhLDAsMSwwLC1hLDAsbyl9c3RhdGljIGZyb21Sb3RhdGlvblooZSx0KXtsZXQgbz1NYXRoLmNvcyhlKSxhPU1hdGguc2luKGUpO3JldHVybiBfKHQpPyh0WzBdPW8sdFsxXT1hLHRbMl09MCx0WzNdPS1hLHRbNF09byx0WzVdPTAsdFs2XT0wLHRbN109MCx0WzhdPTEsdCk6bmV3IG4obywtYSwwLGEsbywwLDAsMCwxKX1zdGF0aWMgdG9BcnJheShlLHQpe3JldHVybiBfKHQpPyh0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFs0XT1lWzRdLHRbNV09ZVs1XSx0WzZdPWVbNl0sdFs3XT1lWzddLHRbOF09ZVs4XSx0KTpbZVswXSxlWzFdLGVbMl0sZVszXSxlWzRdLGVbNV0sZVs2XSxlWzddLGVbOF1dfXN0YXRpYyBnZXRFbGVtZW50SW5kZXgoZSx0KXtyZXR1cm4gZSozK3R9c3RhdGljIGdldENvbHVtbihlLHQsbyl7bGV0IGE9dCozLHI9ZVthXSxpPWVbYSsxXSxmPWVbYSsyXTtyZXR1cm4gby54PXIsby55PWksby56PWYsb31zdGF0aWMgc2V0Q29sdW1uKGUsdCxvLGEpe2E9bi5jbG9uZShlLGEpO2xldCByPXQqMztyZXR1cm4gYVtyXT1vLngsYVtyKzFdPW8ueSxhW3IrMl09by56LGF9c3RhdGljIGdldFJvdyhlLHQsbyl7bGV0IGE9ZVt0XSxyPWVbdCszXSxpPWVbdCs2XTtyZXR1cm4gby54PWEsby55PXIsby56PWksb31zdGF0aWMgc2V0Um93KGUsdCxvLGEpe3JldHVybiBhPW4uY2xvbmUoZSxhKSxhW3RdPW8ueCxhW3QrM109by55LGFbdCs2XT1vLnosYX1zdGF0aWMgc2V0U2NhbGUoZSx0LG8pe2xldCBhPW4uZ2V0U2NhbGUoZSxBQykscj10LngvYS54LGk9dC55L2EueSxmPXQuei9hLno7cmV0dXJuIG9bMF09ZVswXSpyLG9bMV09ZVsxXSpyLG9bMl09ZVsyXSpyLG9bM109ZVszXSppLG9bNF09ZVs0XSppLG9bNV09ZVs1XSppLG9bNl09ZVs2XSpmLG9bN109ZVs3XSpmLG9bOF09ZVs4XSpmLG99c3RhdGljIHNldFVuaWZvcm1TY2FsZShlLHQsbyl7bGV0IGE9bi5nZXRTY2FsZShlLHdDKSxyPXQvYS54LGk9dC9hLnksZj10L2EuejtyZXR1cm4gb1swXT1lWzBdKnIsb1sxXT1lWzFdKnIsb1syXT1lWzJdKnIsb1szXT1lWzNdKmksb1s0XT1lWzRdKmksb1s1XT1lWzVdKmksb1s2XT1lWzZdKmYsb1s3XT1lWzddKmYsb1s4XT1lWzhdKmYsb31zdGF0aWMgZ2V0U2NhbGUoZSx0KXtyZXR1cm4gdC54PXMubWFnbml0dWRlKHMuZnJvbUVsZW1lbnRzKGVbMF0sZVsxXSxlWzJdLFltKSksdC55PXMubWFnbml0dWRlKHMuZnJvbUVsZW1lbnRzKGVbM10sZVs0XSxlWzVdLFltKSksdC56PXMubWFnbml0dWRlKHMuZnJvbUVsZW1lbnRzKGVbNl0sZVs3XSxlWzhdLFltKSksdH1zdGF0aWMgZ2V0TWF4aW11bVNjYWxlKGUpe3JldHVybiBuLmdldFNjYWxlKGUsajEpLHMubWF4aW11bUNvbXBvbmVudChqMSl9c3RhdGljIHNldFJvdGF0aW9uKGUsdCxvKXtsZXQgYT1uLmdldFNjYWxlKGUsVEMpO3JldHVybiBvWzBdPXRbMF0qYS54LG9bMV09dFsxXSphLngsb1syXT10WzJdKmEueCxvWzNdPXRbM10qYS55LG9bNF09dFs0XSphLnksb1s1XT10WzVdKmEueSxvWzZdPXRbNl0qYS56LG9bN109dFs3XSphLnosb1s4XT10WzhdKmEueixvfXN0YXRpYyBnZXRSb3RhdGlvbihlLHQpe2xldCBvPW4uZ2V0U2NhbGUoZSxFQyk7cmV0dXJuIHRbMF09ZVswXS9vLngsdFsxXT1lWzFdL28ueCx0WzJdPWVbMl0vby54LHRbM109ZVszXS9vLnksdFs0XT1lWzRdL28ueSx0WzVdPWVbNV0vby55LHRbNl09ZVs2XS9vLnosdFs3XT1lWzddL28ueix0WzhdPWVbOF0vby56LHR9c3RhdGljIG11bHRpcGx5KGUsdCxvKXtsZXQgYT1lWzBdKnRbMF0rZVszXSp0WzFdK2VbNl0qdFsyXSxyPWVbMV0qdFswXStlWzRdKnRbMV0rZVs3XSp0WzJdLGk9ZVsyXSp0WzBdK2VbNV0qdFsxXStlWzhdKnRbMl0sZj1lWzBdKnRbM10rZVszXSp0WzRdK2VbNl0qdFs1XSxkPWVbMV0qdFszXStlWzRdKnRbNF0rZVs3XSp0WzVdLGM9ZVsyXSp0WzNdK2VbNV0qdFs0XStlWzhdKnRbNV0sdT1lWzBdKnRbNl0rZVszXSp0WzddK2VbNl0qdFs4XSxsPWVbMV0qdFs2XStlWzRdKnRbN10rZVs3XSp0WzhdLGg9ZVsyXSp0WzZdK2VbNV0qdFs3XStlWzhdKnRbOF07cmV0dXJuIG9bMF09YSxvWzFdPXIsb1syXT1pLG9bM109ZixvWzRdPWQsb1s1XT1jLG9bNl09dSxvWzddPWwsb1s4XT1oLG99c3RhdGljIGFkZChlLHQsbyl7cmV0dXJuIG9bMF09ZVswXSt0WzBdLG9bMV09ZVsxXSt0WzFdLG9bMl09ZVsyXSt0WzJdLG9bM109ZVszXSt0WzNdLG9bNF09ZVs0XSt0WzRdLG9bNV09ZVs1XSt0WzVdLG9bNl09ZVs2XSt0WzZdLG9bN109ZVs3XSt0WzddLG9bOF09ZVs4XSt0WzhdLG99c3RhdGljIHN1YnRyYWN0KGUsdCxvKXtyZXR1cm4gb1swXT1lWzBdLXRbMF0sb1sxXT1lWzFdLXRbMV0sb1syXT1lWzJdLXRbMl0sb1szXT1lWzNdLXRbM10sb1s0XT1lWzRdLXRbNF0sb1s1XT1lWzVdLXRbNV0sb1s2XT1lWzZdLXRbNl0sb1s3XT1lWzddLXRbN10sb1s4XT1lWzhdLXRbOF0sb31zdGF0aWMgbXVsdGlwbHlCeVZlY3RvcihlLHQsbyl7bGV0IGE9dC54LHI9dC55LGk9dC56LGY9ZVswXSphK2VbM10qcitlWzZdKmksZD1lWzFdKmErZVs0XSpyK2VbN10qaSxjPWVbMl0qYStlWzVdKnIrZVs4XSppO3JldHVybiBvLng9ZixvLnk9ZCxvLno9YyxvfXN0YXRpYyBtdWx0aXBseUJ5U2NhbGFyKGUsdCxvKXtyZXR1cm4gb1swXT1lWzBdKnQsb1sxXT1lWzFdKnQsb1syXT1lWzJdKnQsb1szXT1lWzNdKnQsb1s0XT1lWzRdKnQsb1s1XT1lWzVdKnQsb1s2XT1lWzZdKnQsb1s3XT1lWzddKnQsb1s4XT1lWzhdKnQsb31zdGF0aWMgbXVsdGlwbHlCeVNjYWxlKGUsdCxvKXtyZXR1cm4gb1swXT1lWzBdKnQueCxvWzFdPWVbMV0qdC54LG9bMl09ZVsyXSp0Lngsb1szXT1lWzNdKnQueSxvWzRdPWVbNF0qdC55LG9bNV09ZVs1XSp0Lnksb1s2XT1lWzZdKnQueixvWzddPWVbN10qdC56LG9bOF09ZVs4XSp0Lnosb31zdGF0aWMgbXVsdGlwbHlCeVVuaWZvcm1TY2FsZShlLHQsbyl7cmV0dXJuIG9bMF09ZVswXSp0LG9bMV09ZVsxXSp0LG9bMl09ZVsyXSp0LG9bM109ZVszXSp0LG9bNF09ZVs0XSp0LG9bNV09ZVs1XSp0LG9bNl09ZVs2XSp0LG9bN109ZVs3XSp0LG9bOF09ZVs4XSp0LG99c3RhdGljIG5lZ2F0ZShlLHQpe3JldHVybiB0WzBdPS1lWzBdLHRbMV09LWVbMV0sdFsyXT0tZVsyXSx0WzNdPS1lWzNdLHRbNF09LWVbNF0sdFs1XT0tZVs1XSx0WzZdPS1lWzZdLHRbN109LWVbN10sdFs4XT0tZVs4XSx0fXN0YXRpYyB0cmFuc3Bvc2UoZSx0KXtsZXQgbz1lWzBdLGE9ZVszXSxyPWVbNl0saT1lWzFdLGY9ZVs0XSxkPWVbN10sYz1lWzJdLHU9ZVs1XSxsPWVbOF07cmV0dXJuIHRbMF09byx0WzFdPWEsdFsyXT1yLHRbM109aSx0WzRdPWYsdFs1XT1kLHRbNl09Yyx0WzddPXUsdFs4XT1sLHR9c3RhdGljIGNvbXB1dGVFaWdlbkRlY29tcG9zaXRpb24oZSx0KXtsZXQgbz1rLkVQU0lMT04yMCxhPTEwLHI9MCxpPTA7Xyh0KXx8KHQ9e30pO2xldCBmPXQudW5pdGFyeT1uLmNsb25lKG4uSURFTlRJVFksdC51bml0YXJ5KSxkPXQuZGlhZ29uYWw9bi5jbG9uZShlLHQuZGlhZ29uYWwpLGM9byp4QyhkKTtmb3IoO2k8YSYmT0MoZCk+YzspU0MoZCxpbCksbi50cmFuc3Bvc2UoaWwsVTEpLG4ubXVsdGlwbHkoZCxpbCxkKSxuLm11bHRpcGx5KFUxLGQsZCksbi5tdWx0aXBseShmLGlsLGYpLCsrcj4yJiYoKytpLHI9MCk7cmV0dXJuIHR9c3RhdGljIGFicyhlLHQpe3JldHVybiB0WzBdPU1hdGguYWJzKGVbMF0pLHRbMV09TWF0aC5hYnMoZVsxXSksdFsyXT1NYXRoLmFicyhlWzJdKSx0WzNdPU1hdGguYWJzKGVbM10pLHRbNF09TWF0aC5hYnMoZVs0XSksdFs1XT1NYXRoLmFicyhlWzVdKSx0WzZdPU1hdGguYWJzKGVbNl0pLHRbN109TWF0aC5hYnMoZVs3XSksdFs4XT1NYXRoLmFicyhlWzhdKSx0fXN0YXRpYyBkZXRlcm1pbmFudChlKXtsZXQgdD1lWzBdLG89ZVszXSxhPWVbNl0scj1lWzFdLGk9ZVs0XSxmPWVbN10sZD1lWzJdLGM9ZVs1XSx1PWVbOF07cmV0dXJuIHQqKGkqdS1jKmYpK3IqKGMqYS1vKnUpK2QqKG8qZi1pKmEpfXN0YXRpYyBpbnZlcnNlKGUsdCl7bGV0IG89ZVswXSxhPWVbMV0scj1lWzJdLGk9ZVszXSxmPWVbNF0sZD1lWzVdLGM9ZVs2XSx1PWVbN10sbD1lWzhdLGg9bi5kZXRlcm1pbmFudChlKTt0WzBdPWYqbC11KmQsdFsxXT11KnItYSpsLHRbMl09YSpkLWYqcix0WzNdPWMqZC1pKmwsdFs0XT1vKmwtYypyLHRbNV09aSpyLW8qZCx0WzZdPWkqdS1jKmYsdFs3XT1jKmEtbyp1LHRbOF09bypmLWkqYTtsZXQgbT0xL2g7cmV0dXJuIG4ubXVsdGlwbHlCeVNjYWxhcih0LG0sdCl9c3RhdGljIGludmVyc2VUcmFuc3Bvc2UoZSx0KXtyZXR1cm4gbi5pbnZlcnNlKG4udHJhbnNwb3NlKGUsUkMpLHQpfXN0YXRpYyBlcXVhbHMoZSx0KXtyZXR1cm4gZT09PXR8fF8oZSkmJl8odCkmJmVbMF09PT10WzBdJiZlWzFdPT09dFsxXSYmZVsyXT09PXRbMl0mJmVbM109PT10WzNdJiZlWzRdPT09dFs0XSYmZVs1XT09PXRbNV0mJmVbNl09PT10WzZdJiZlWzddPT09dFs3XSYmZVs4XT09PXRbOF19c3RhdGljIGVxdWFsc0Vwc2lsb24oZSx0LG8pe3JldHVybiBvPW8/PzAsZT09PXR8fF8oZSkmJl8odCkmJk1hdGguYWJzKGVbMF0tdFswXSk8PW8mJk1hdGguYWJzKGVbMV0tdFsxXSk8PW8mJk1hdGguYWJzKGVbMl0tdFsyXSk8PW8mJk1hdGguYWJzKGVbM10tdFszXSk8PW8mJk1hdGguYWJzKGVbNF0tdFs0XSk8PW8mJk1hdGguYWJzKGVbNV0tdFs1XSk8PW8mJk1hdGguYWJzKGVbNl0tdFs2XSk8PW8mJk1hdGguYWJzKGVbN10tdFs3XSk8PW8mJk1hdGguYWJzKGVbOF0tdFs4XSk8PW99Z2V0IGxlbmd0aCgpe3JldHVybiBuLnBhY2tlZExlbmd0aH1jbG9uZShlKXtyZXR1cm4gbi5jbG9uZSh0aGlzLGUpfWVxdWFscyhlKXtyZXR1cm4gbi5lcXVhbHModGhpcyxlKX1zdGF0aWMgZXF1YWxzQXJyYXkoZSx0LG8pe3JldHVybiBlWzBdPT09dFtvXSYmZVsxXT09PXRbbysxXSYmZVsyXT09PXRbbysyXSYmZVszXT09PXRbbyszXSYmZVs0XT09PXRbbys0XSYmZVs1XT09PXRbbys1XSYmZVs2XT09PXRbbys2XSYmZVs3XT09PXRbbys3XSYmZVs4XT09PXRbbys4XX1lcXVhbHNFcHNpbG9uKGUsdCl7cmV0dXJuIG4uZXF1YWxzRXBzaWxvbih0aGlzLGUsdCl9dG9TdHJpbmcoKXtyZXR1cm5gKCR7dGhpc1swXX0sICR7dGhpc1szXX0sICR7dGhpc1s2XX0pCigke3RoaXNbMV19LCAke3RoaXNbNF19LCAke3RoaXNbN119KQooJHt0aGlzWzJdfSwgJHt0aGlzWzVdfSwgJHt0aGlzWzhdfSlgfX07QnQucGFja2VkTGVuZ3RoPTk7QnQuZnJvbUFycmF5PUJ0LnVucGFjaztCdC5JREVOVElUWT1PYmplY3QuZnJlZXplKG5ldyBCdCgxLDAsMCwwLDEsMCwwLDAsMSkpO0J0LlpFUk89T2JqZWN0LmZyZWV6ZShuZXcgQnQoMCwwLDAsMCwwLDAsMCwwLDApKTtCdC5DT0xVTU4wUk9XMD0wO0J0LkNPTFVNTjBST1cxPTE7QnQuQ09MVU1OMFJPVzI9MjtCdC5DT0xVTU4xUk9XMD0zO0J0LkNPTFVNTjFST1cxPTQ7QnQuQ09MVU1OMVJPVzI9NTtCdC5DT0xVTU4yUk9XMD02O0J0LkNPTFVNTjJST1cxPTc7QnQuQ09MVU1OMlJPVzI9ODtBQz1uZXcgcyx3Qz1uZXcgcyxZbT1uZXcgcyxqMT1uZXcgcyxUQz1uZXcgcyxFQz1uZXcgcyxpbD1uZXcgQnQsVTE9bmV3IEJ0LFJDPW5ldyBCdDtKbT1bMSwwLDBdLFptPVsyLDIsMV07Sj1CdH0pO3ZhciBIbixjbCxMMSxDQyxRbSx4byxNQyxOQyx6MSxydCxiYT1YKCgpPT57c2UoKTtVZSgpO0huPWNsYXNzIG57Y29uc3RydWN0b3IoZSx0LG8sYSl7dGhpcy54PWU/PzAsdGhpcy55PXQ/PzAsdGhpcy56PW8/PzAsdGhpcy53PWE/PzB9c3RhdGljIGZyb21FbGVtZW50cyhlLHQsbyxhLHIpe3JldHVybiBfKHIpPyhyLng9ZSxyLnk9dCxyLno9byxyLnc9YSxyKTpuZXcgbihlLHQsbyxhKX1zdGF0aWMgZnJvbUNvbG9yKGUsdCl7cmV0dXJuIF8odCk/KHQueD1lLnJlZCx0Lnk9ZS5ncmVlbix0Lno9ZS5ibHVlLHQudz1lLmFscGhhLHQpOm5ldyBuKGUucmVkLGUuZ3JlZW4sZS5ibHVlLGUuYWxwaGEpfXN0YXRpYyBjbG9uZShlLHQpe2lmKF8oZSkpcmV0dXJuIF8odCk/KHQueD1lLngsdC55PWUueSx0Lno9ZS56LHQudz1lLncsdCk6bmV3IG4oZS54LGUueSxlLnosZS53KX1zdGF0aWMgcGFjayhlLHQsbyl7cmV0dXJuIG89bz8/MCx0W28rK109ZS54LHRbbysrXT1lLnksdFtvKytdPWUueix0W29dPWUudyx0fXN0YXRpYyB1bnBhY2soZSx0LG8pe3JldHVybiB0PXQ/PzAsXyhvKXx8KG89bmV3IG4pLG8ueD1lW3QrK10sby55PWVbdCsrXSxvLno9ZVt0KytdLG8udz1lW3RdLG99c3RhdGljIHBhY2tBcnJheShlLHQpe2xldCBvPWUubGVuZ3RoLGE9byo0O18odCk/IUFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoIT09YXx8dC5sZW5ndGghPT1hJiYodC5sZW5ndGg9YSk6dD1uZXcgQXJyYXkoYSk7Zm9yKGxldCByPTA7cjxvOysrciluLnBhY2soZVtyXSx0LHIqNCk7cmV0dXJuIHR9c3RhdGljIHVucGFja0FycmF5KGUsdCl7bGV0IG89ZS5sZW5ndGg7Xyh0KT90Lmxlbmd0aD1vLzQ6dD1uZXcgQXJyYXkoby80KTtmb3IobGV0IGE9MDthPG87YSs9NCl7bGV0IHI9YS80O3Rbcl09bi51bnBhY2soZSxhLHRbcl0pfXJldHVybiB0fXN0YXRpYyBtYXhpbXVtQ29tcG9uZW50KGUpe3JldHVybiBNYXRoLm1heChlLngsZS55LGUueixlLncpfXN0YXRpYyBtaW5pbXVtQ29tcG9uZW50KGUpe3JldHVybiBNYXRoLm1pbihlLngsZS55LGUueixlLncpfXN0YXRpYyBtaW5pbXVtQnlDb21wb25lbnQoZSx0LG8pe3JldHVybiBvLng9TWF0aC5taW4oZS54LHQueCksby55PU1hdGgubWluKGUueSx0LnkpLG8uej1NYXRoLm1pbihlLnosdC56KSxvLnc9TWF0aC5taW4oZS53LHQudyksb31zdGF0aWMgbWF4aW11bUJ5Q29tcG9uZW50KGUsdCxvKXtyZXR1cm4gby54PU1hdGgubWF4KGUueCx0LngpLG8ueT1NYXRoLm1heChlLnksdC55KSxvLno9TWF0aC5tYXgoZS56LHQueiksby53PU1hdGgubWF4KGUudyx0LncpLG99c3RhdGljIGNsYW1wKGUsdCxvLGEpe2xldCByPWsuY2xhbXAoZS54LHQueCxvLngpLGk9ay5jbGFtcChlLnksdC55LG8ueSksZj1rLmNsYW1wKGUueix0Lnosby56KSxkPWsuY2xhbXAoZS53LHQudyxvLncpO3JldHVybiBhLng9cixhLnk9aSxhLno9ZixhLnc9ZCxhfXN0YXRpYyBtYWduaXR1ZGVTcXVhcmVkKGUpe3JldHVybiBlLngqZS54K2UueSplLnkrZS56KmUueitlLncqZS53fXN0YXRpYyBtYWduaXR1ZGUoZSl7cmV0dXJuIE1hdGguc3FydChuLm1hZ25pdHVkZVNxdWFyZWQoZSkpfXN0YXRpYyBkaXN0YW5jZShlLHQpe3JldHVybiBuLnN1YnRyYWN0KGUsdCxjbCksbi5tYWduaXR1ZGUoY2wpfXN0YXRpYyBkaXN0YW5jZVNxdWFyZWQoZSx0KXtyZXR1cm4gbi5zdWJ0cmFjdChlLHQsY2wpLG4ubWFnbml0dWRlU3F1YXJlZChjbCl9c3RhdGljIG5vcm1hbGl6ZShlLHQpe2xldCBvPW4ubWFnbml0dWRlKGUpO3JldHVybiB0Lng9ZS54L28sdC55PWUueS9vLHQuej1lLnovbyx0Lnc9ZS53L28sdH1zdGF0aWMgZG90KGUsdCl7cmV0dXJuIGUueCp0LngrZS55KnQueStlLnoqdC56K2Uudyp0Lnd9c3RhdGljIG11bHRpcGx5Q29tcG9uZW50cyhlLHQsbyl7cmV0dXJuIG8ueD1lLngqdC54LG8ueT1lLnkqdC55LG8uej1lLnoqdC56LG8udz1lLncqdC53LG99c3RhdGljIGRpdmlkZUNvbXBvbmVudHMoZSx0LG8pe3JldHVybiBvLng9ZS54L3QueCxvLnk9ZS55L3QueSxvLno9ZS56L3QueixvLnc9ZS53L3QudyxvfXN0YXRpYyBhZGQoZSx0LG8pe3JldHVybiBvLng9ZS54K3QueCxvLnk9ZS55K3QueSxvLno9ZS56K3QueixvLnc9ZS53K3QudyxvfXN0YXRpYyBzdWJ0cmFjdChlLHQsbyl7cmV0dXJuIG8ueD1lLngtdC54LG8ueT1lLnktdC55LG8uej1lLnotdC56LG8udz1lLnctdC53LG99c3RhdGljIG11bHRpcGx5QnlTY2FsYXIoZSx0LG8pe3JldHVybiBvLng9ZS54KnQsby55PWUueSp0LG8uej1lLnoqdCxvLnc9ZS53KnQsb31zdGF0aWMgZGl2aWRlQnlTY2FsYXIoZSx0LG8pe3JldHVybiBvLng9ZS54L3Qsby55PWUueS90LG8uej1lLnovdCxvLnc9ZS53L3Qsb31zdGF0aWMgbmVnYXRlKGUsdCl7cmV0dXJuIHQueD0tZS54LHQueT0tZS55LHQuej0tZS56LHQudz0tZS53LHR9c3RhdGljIGFicyhlLHQpe3JldHVybiB0Lng9TWF0aC5hYnMoZS54KSx0Lnk9TWF0aC5hYnMoZS55KSx0Lno9TWF0aC5hYnMoZS56KSx0Lnc9TWF0aC5hYnMoZS53KSx0fXN0YXRpYyBsZXJwKGUsdCxvLGEpe3JldHVybiBuLm11bHRpcGx5QnlTY2FsYXIodCxvLEwxKSxhPW4ubXVsdGlwbHlCeVNjYWxhcihlLDEtbyxhKSxuLmFkZChMMSxhLGEpfXN0YXRpYyBtb3N0T3J0aG9nb25hbEF4aXMoZSx0KXtsZXQgbz1uLm5vcm1hbGl6ZShlLENDKTtyZXR1cm4gbi5hYnMobyxvKSxvLng8PW8ueT9vLng8PW8uej9vLng8PW8udz90PW4uY2xvbmUobi5VTklUX1gsdCk6dD1uLmNsb25lKG4uVU5JVF9XLHQpOm8uejw9by53P3Q9bi5jbG9uZShuLlVOSVRfWix0KTp0PW4uY2xvbmUobi5VTklUX1csdCk6by55PD1vLno/by55PD1vLnc/dD1uLmNsb25lKG4uVU5JVF9ZLHQpOnQ9bi5jbG9uZShuLlVOSVRfVyx0KTpvLno8PW8udz90PW4uY2xvbmUobi5VTklUX1osdCk6dD1uLmNsb25lKG4uVU5JVF9XLHQpLHR9c3RhdGljIGVxdWFscyhlLHQpe3JldHVybiBlPT09dHx8XyhlKSYmXyh0KSYmZS54PT09dC54JiZlLnk9PT10LnkmJmUuej09PXQueiYmZS53PT09dC53fXN0YXRpYyBlcXVhbHNBcnJheShlLHQsbyl7cmV0dXJuIGUueD09PXRbb10mJmUueT09PXRbbysxXSYmZS56PT09dFtvKzJdJiZlLnc9PT10W28rM119c3RhdGljIGVxdWFsc0Vwc2lsb24oZSx0LG8sYSl7cmV0dXJuIGU9PT10fHxfKGUpJiZfKHQpJiZrLmVxdWFsc0Vwc2lsb24oZS54LHQueCxvLGEpJiZrLmVxdWFsc0Vwc2lsb24oZS55LHQueSxvLGEpJiZrLmVxdWFsc0Vwc2lsb24oZS56LHQueixvLGEpJiZrLmVxdWFsc0Vwc2lsb24oZS53LHQudyxvLGEpfWNsb25lKGUpe3JldHVybiBuLmNsb25lKHRoaXMsZSl9ZXF1YWxzKGUpe3JldHVybiBuLmVxdWFscyh0aGlzLGUpfWVxdWFsc0Vwc2lsb24oZSx0LG8pe3JldHVybiBuLmVxdWFsc0Vwc2lsb24odGhpcyxlLHQsbyl9dG9TdHJpbmcoKXtyZXR1cm5gKCR7dGhpcy54fSwgJHt0aGlzLnl9LCAke3RoaXMuen0sICR7dGhpcy53fSlgfXN0YXRpYyBwYWNrRmxvYXQoZSx0KXtyZXR1cm4gXyh0KXx8KHQ9bmV3IG4pLFFtWzBdPWUsejE/KHQueD14b1swXSx0Lnk9eG9bMV0sdC56PXhvWzJdLHQudz14b1szXSk6KHQueD14b1szXSx0Lnk9eG9bMl0sdC56PXhvWzFdLHQudz14b1swXSksdH1zdGF0aWMgdW5wYWNrRmxvYXQoZSl7cmV0dXJuIHoxPyh4b1swXT1lLngseG9bMV09ZS55LHhvWzJdPWUueix4b1szXT1lLncpOih4b1swXT1lLncseG9bMV09ZS56LHhvWzJdPWUueSx4b1szXT1lLngpLFFtWzBdfX07SG4ucGFja2VkTGVuZ3RoPTQ7SG4uZnJvbUFycmF5PUhuLnVucGFjaztjbD1uZXcgSG4sTDE9bmV3IEhuLENDPW5ldyBIbjtIbi5aRVJPPU9iamVjdC5mcmVlemUobmV3IEhuKDAsMCwwLDApKTtIbi5PTkU9T2JqZWN0LmZyZWV6ZShuZXcgSG4oMSwxLDEsMSkpO0huLlVOSVRfWD1PYmplY3QuZnJlZXplKG5ldyBIbigxLDAsMCwwKSk7SG4uVU5JVF9ZPU9iamVjdC5mcmVlemUobmV3IEhuKDAsMSwwLDApKTtIbi5VTklUX1o9T2JqZWN0LmZyZWV6ZShuZXcgSG4oMCwwLDEsMCkpO0huLlVOSVRfVz1PYmplY3QuZnJlZXplKG5ldyBIbigwLDAsMCwxKSk7UW09bmV3IEZsb2F0MzJBcnJheSgxKSx4bz1uZXcgVWludDhBcnJheShRbS5idWZmZXIpLE1DPW5ldyBVaW50MzJBcnJheShbMjg3NDU0MDIwXSksTkM9bmV3IFVpbnQ4QXJyYXkoTUMuYnVmZmVyKSx6MT1OQ1swXT09PTY4LHJ0PUhufSk7dmFyICRtLE9lLHN0PVgoKCk9PnskbT17fTskbS5FTVBUWV9PQkpFQ1Q9T2JqZWN0LmZyZWV6ZSh7fSk7JG0uRU1QVFlfQVJSQVk9T2JqZWN0LmZyZWV6ZShbXSk7T2U9JG19KTtmdW5jdGlvbiBfZihuKXt0aGlzLm5hbWU9IlJ1bnRpbWVFcnJvciIsdGhpcy5tZXNzYWdlPW47bGV0IGU7dHJ5e3Rocm93IG5ldyBFcnJvcn1jYXRjaCh0KXtlPXQuc3RhY2t9dGhpcy5zdGFjaz1lfXZhciBudCxwYT1YKCgpPT57c2UoKTtfKE9iamVjdC5jcmVhdGUpJiYoX2YucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxfZi5wcm90b3R5cGUuY29uc3RydWN0b3I9X2YpO19mLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe2xldCBuPWAke3RoaXMubmFtZX06ICR7dGhpcy5tZXNzYWdlfWA7cmV0dXJuIF8odGhpcy5zdGFjaykmJihuKz1gCiR7dGhpcy5zdGFjay50b1N0cmluZygpfWApLG59O250PV9mfSk7dmFyIGRuLFdjLFhjLHlmLElDLFBDLGViLEcxLGtDLHZDLEZDLERDLEJDLGpDLFVDLCQsdW49WCgoKT0+e01lKCk7YmEoKTtzdCgpO3NlKCk7VWUoKTtJbigpO3BhKCk7ZG49Y2xhc3Mgbntjb25zdHJ1Y3RvcihlLHQsbyxhLHIsaSxmLGQsYyx1LGwsaCxtLGIscCx5KXt0aGlzWzBdPWU/PzAsdGhpc1sxXT1yPz8wLHRoaXNbMl09Yz8/MCx0aGlzWzNdPW0/PzAsdGhpc1s0XT10Pz8wLHRoaXNbNV09aT8/MCx0aGlzWzZdPXU/PzAsdGhpc1s3XT1iPz8wLHRoaXNbOF09bz8/MCx0aGlzWzldPWY/PzAsdGhpc1sxMF09bD8/MCx0aGlzWzExXT1wPz8wLHRoaXNbMTJdPWE/PzAsdGhpc1sxM109ZD8/MCx0aGlzWzE0XT1oPz8wLHRoaXNbMTVdPXk/PzB9c3RhdGljIHBhY2soZSx0LG8pe3JldHVybiBvPW8/PzAsdFtvKytdPWVbMF0sdFtvKytdPWVbMV0sdFtvKytdPWVbMl0sdFtvKytdPWVbM10sdFtvKytdPWVbNF0sdFtvKytdPWVbNV0sdFtvKytdPWVbNl0sdFtvKytdPWVbN10sdFtvKytdPWVbOF0sdFtvKytdPWVbOV0sdFtvKytdPWVbMTBdLHRbbysrXT1lWzExXSx0W28rK109ZVsxMl0sdFtvKytdPWVbMTNdLHRbbysrXT1lWzE0XSx0W29dPWVbMTVdLHR9c3RhdGljIHVucGFjayhlLHQsbyl7cmV0dXJuIHQ9dD8/MCxfKG8pfHwobz1uZXcgbiksb1swXT1lW3QrK10sb1sxXT1lW3QrK10sb1syXT1lW3QrK10sb1szXT1lW3QrK10sb1s0XT1lW3QrK10sb1s1XT1lW3QrK10sb1s2XT1lW3QrK10sb1s3XT1lW3QrK10sb1s4XT1lW3QrK10sb1s5XT1lW3QrK10sb1sxMF09ZVt0KytdLG9bMTFdPWVbdCsrXSxvWzEyXT1lW3QrK10sb1sxM109ZVt0KytdLG9bMTRdPWVbdCsrXSxvWzE1XT1lW3RdLG99c3RhdGljIHBhY2tBcnJheShlLHQpe2xldCBvPWUubGVuZ3RoLGE9byoxNjtfKHQpPyFBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aCE9PWF8fHQubGVuZ3RoIT09YSYmKHQubGVuZ3RoPWEpOnQ9bmV3IEFycmF5KGEpO2ZvcihsZXQgcj0wO3I8bzsrK3Ipbi5wYWNrKGVbcl0sdCxyKjE2KTtyZXR1cm4gdH1zdGF0aWMgdW5wYWNrQXJyYXkoZSx0KXtsZXQgbz1lLmxlbmd0aDtfKHQpP3QubGVuZ3RoPW8vMTY6dD1uZXcgQXJyYXkoby8xNik7Zm9yKGxldCBhPTA7YTxvO2ErPTE2KXtsZXQgcj1hLzE2O3Rbcl09bi51bnBhY2soZSxhLHRbcl0pfXJldHVybiB0fXN0YXRpYyBjbG9uZShlLHQpe2lmKF8oZSkpcmV0dXJuIF8odCk/KHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0WzRdPWVbNF0sdFs1XT1lWzVdLHRbNl09ZVs2XSx0WzddPWVbN10sdFs4XT1lWzhdLHRbOV09ZVs5XSx0WzEwXT1lWzEwXSx0WzExXT1lWzExXSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSx0KTpuZXcgbihlWzBdLGVbNF0sZVs4XSxlWzEyXSxlWzFdLGVbNV0sZVs5XSxlWzEzXSxlWzJdLGVbNl0sZVsxMF0sZVsxNF0sZVszXSxlWzddLGVbMTFdLGVbMTVdKX1zdGF0aWMgZnJvbUNvbHVtbk1ham9yQXJyYXkoZSx0KXtyZXR1cm4gbi5jbG9uZShlLHQpfXN0YXRpYyBmcm9tUm93TWFqb3JBcnJheShlLHQpe3JldHVybiBfKHQpPyh0WzBdPWVbMF0sdFsxXT1lWzRdLHRbMl09ZVs4XSx0WzNdPWVbMTJdLHRbNF09ZVsxXSx0WzVdPWVbNV0sdFs2XT1lWzldLHRbN109ZVsxM10sdFs4XT1lWzJdLHRbOV09ZVs2XSx0WzEwXT1lWzEwXSx0WzExXT1lWzE0XSx0WzEyXT1lWzNdLHRbMTNdPWVbN10sdFsxNF09ZVsxMV0sdFsxNV09ZVsxNV0sdCk6bmV3IG4oZVswXSxlWzFdLGVbMl0sZVszXSxlWzRdLGVbNV0sZVs2XSxlWzddLGVbOF0sZVs5XSxlWzEwXSxlWzExXSxlWzEyXSxlWzEzXSxlWzE0XSxlWzE1XSl9c3RhdGljIGZyb21Sb3RhdGlvblRyYW5zbGF0aW9uKGUsdCxvKXtyZXR1cm4gdD10Pz9zLlpFUk8sXyhvKT8ob1swXT1lWzBdLG9bMV09ZVsxXSxvWzJdPWVbMl0sb1szXT0wLG9bNF09ZVszXSxvWzVdPWVbNF0sb1s2XT1lWzVdLG9bN109MCxvWzhdPWVbNl0sb1s5XT1lWzddLG9bMTBdPWVbOF0sb1sxMV09MCxvWzEyXT10Lngsb1sxM109dC55LG9bMTRdPXQueixvWzE1XT0xLG8pOm5ldyBuKGVbMF0sZVszXSxlWzZdLHQueCxlWzFdLGVbNF0sZVs3XSx0LnksZVsyXSxlWzVdLGVbOF0sdC56LDAsMCwwLDEpfXN0YXRpYyBmcm9tVHJhbnNsYXRpb25RdWF0ZXJuaW9uUm90YXRpb25TY2FsZShlLHQsbyxhKXtfKGEpfHwoYT1uZXcgbik7bGV0IHI9by54LGk9by55LGY9by56LGQ9dC54KnQueCxjPXQueCp0LnksdT10LngqdC56LGw9dC54KnQudyxoPXQueSp0LnksbT10LnkqdC56LGI9dC55KnQudyxwPXQueip0LnoseT10LnoqdC53LEU9dC53KnQudyxnPWQtaC1wK0UsQT0yKihjLXkpLFQ9MioodStiKSxSPTIqKGMreSksUz0tZCtoLXArRSxNPTIqKG0tbCksST0yKih1LWIpLE49MioobStsKSxQPS1kLWgrcCtFO3JldHVybiBhWzBdPWcqcixhWzFdPVIqcixhWzJdPUkqcixhWzNdPTAsYVs0XT1BKmksYVs1XT1TKmksYVs2XT1OKmksYVs3XT0wLGFbOF09VCpmLGFbOV09TSpmLGFbMTBdPVAqZixhWzExXT0wLGFbMTJdPWUueCxhWzEzXT1lLnksYVsxNF09ZS56LGFbMTVdPTEsYX1zdGF0aWMgZnJvbVRyYW5zbGF0aW9uUm90YXRpb25TY2FsZShlLHQpe3JldHVybiBuLmZyb21UcmFuc2xhdGlvblF1YXRlcm5pb25Sb3RhdGlvblNjYWxlKGUudHJhbnNsYXRpb24sZS5yb3RhdGlvbixlLnNjYWxlLHQpfXN0YXRpYyBmcm9tVHJhbnNsYXRpb24oZSx0KXtyZXR1cm4gbi5mcm9tUm90YXRpb25UcmFuc2xhdGlvbihKLklERU5USVRZLGUsdCl9c3RhdGljIGZyb21TY2FsZShlLHQpe3JldHVybiBfKHQpPyh0WzBdPWUueCx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1lLnksdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPWUueix0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdCk6bmV3IG4oZS54LDAsMCwwLDAsZS55LDAsMCwwLDAsZS56LDAsMCwwLDAsMSl9c3RhdGljIGZyb21Vbmlmb3JtU2NhbGUoZSx0KXtyZXR1cm4gXyh0KT8odFswXT1lLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPWUsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPWUsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHQpOm5ldyBuKGUsMCwwLDAsMCxlLDAsMCwwLDAsZSwwLDAsMCwwLDEpfXN0YXRpYyBmcm9tUm90YXRpb24oZSx0KXtyZXR1cm4gXyh0KXx8KHQ9bmV3IG4pLHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109MCx0WzRdPWVbM10sdFs1XT1lWzRdLHRbNl09ZVs1XSx0WzddPTAsdFs4XT1lWzZdLHRbOV09ZVs3XSx0WzEwXT1lWzhdLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fXN0YXRpYyBmcm9tQ2FtZXJhKGUsdCl7bGV0IG89ZS5wb3NpdGlvbixhPWUuZGlyZWN0aW9uLHI9ZS51cDtzLm5vcm1hbGl6ZShhLFdjKSxzLm5vcm1hbGl6ZShzLmNyb3NzKFdjLHIsWGMpLFhjKSxzLm5vcm1hbGl6ZShzLmNyb3NzKFhjLFdjLHlmKSx5Zik7bGV0IGk9WGMueCxmPVhjLnksZD1YYy56LGM9V2MueCx1PVdjLnksbD1XYy56LGg9eWYueCxtPXlmLnksYj15Zi56LHA9by54LHk9by55LEU9by56LGc9aSotcCtmKi15K2QqLUUsQT1oKi1wK20qLXkrYiotRSxUPWMqcCt1KnkrbCpFO3JldHVybiBfKHQpPyh0WzBdPWksdFsxXT1oLHRbMl09LWMsdFszXT0wLHRbNF09Zix0WzVdPW0sdFs2XT0tdSx0WzddPTAsdFs4XT1kLHRbOV09Yix0WzEwXT0tbCx0WzExXT0wLHRbMTJdPWcsdFsxM109QSx0WzE0XT1ULHRbMTVdPTEsdCk6bmV3IG4oaSxmLGQsZyxoLG0sYixBLC1jLC11LC1sLFQsMCwwLDAsMSl9c3RhdGljIGNvbXB1dGVQZXJzcGVjdGl2ZUZpZWxkT2ZWaWV3KGUsdCxvLGEscil7bGV0IGY9MS9NYXRoLnRhbihlKi41KSxkPWYvdCxjPShhK28pLyhvLWEpLHU9MiphKm8vKG8tYSk7cmV0dXJuIHJbMF09ZCxyWzFdPTAsclsyXT0wLHJbM109MCxyWzRdPTAscls1XT1mLHJbNl09MCxyWzddPTAscls4XT0wLHJbOV09MCxyWzEwXT1jLHJbMTFdPS0xLHJbMTJdPTAsclsxM109MCxyWzE0XT11LHJbMTVdPTAscn1zdGF0aWMgY29tcHV0ZU9ydGhvZ3JhcGhpY09mZkNlbnRlcihlLHQsbyxhLHIsaSxmKXtsZXQgZD0xLyh0LWUpLGM9MS8oYS1vKSx1PTEvKGktciksbD0tKHQrZSkqZCxoPS0oYStvKSpjLG09LShpK3IpKnU7cmV0dXJuIGQqPTIsYyo9Mix1Kj0tMixmWzBdPWQsZlsxXT0wLGZbMl09MCxmWzNdPTAsZls0XT0wLGZbNV09YyxmWzZdPTAsZls3XT0wLGZbOF09MCxmWzldPTAsZlsxMF09dSxmWzExXT0wLGZbMTJdPWwsZlsxM109aCxmWzE0XT1tLGZbMTVdPTEsZn1zdGF0aWMgY29tcHV0ZVBlcnNwZWN0aXZlT2ZmQ2VudGVyKGUsdCxvLGEscixpLGYpe2xldCBkPTIqci8odC1lKSxjPTIqci8oYS1vKSx1PSh0K2UpLyh0LWUpLGw9KGErbykvKGEtbyksaD0tKGkrcikvKGktciksbT0tMSxiPS0yKmkqci8oaS1yKTtyZXR1cm4gZlswXT1kLGZbMV09MCxmWzJdPTAsZlszXT0wLGZbNF09MCxmWzVdPWMsZls2XT0wLGZbN109MCxmWzhdPXUsZls5XT1sLGZbMTBdPWgsZlsxMV09bSxmWzEyXT0wLGZbMTNdPTAsZlsxNF09YixmWzE1XT0wLGZ9c3RhdGljIGNvbXB1dGVJbmZpbml0ZVBlcnNwZWN0aXZlT2ZmQ2VudGVyKGUsdCxvLGEscixpKXtsZXQgZj0yKnIvKHQtZSksZD0yKnIvKGEtbyksYz0odCtlKS8odC1lKSx1PShhK28pLyhhLW8pLGw9LTEsaD0tMSxtPS0yKnI7cmV0dXJuIGlbMF09ZixpWzFdPTAsaVsyXT0wLGlbM109MCxpWzRdPTAsaVs1XT1kLGlbNl09MCxpWzddPTAsaVs4XT1jLGlbOV09dSxpWzEwXT1sLGlbMTFdPWgsaVsxMl09MCxpWzEzXT0wLGlbMTRdPW0saVsxNV09MCxpfXN0YXRpYyBjb21wdXRlVmlld3BvcnRUcmFuc2Zvcm1hdGlvbihlLHQsbyxhKXtfKGEpfHwoYT1uZXcgbiksZT1lPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IHI9ZS54Pz8wLGk9ZS55Pz8wLGY9ZS53aWR0aD8/MCxkPWUuaGVpZ2h0Pz8wO3Q9dD8/MCxvPW8/PzE7bGV0IGM9ZiouNSx1PWQqLjUsbD0oby10KSouNSxoPWMsbT11LGI9bCxwPXIrYyx5PWkrdSxFPXQrbCxnPTE7cmV0dXJuIGFbMF09aCxhWzFdPTAsYVsyXT0wLGFbM109MCxhWzRdPTAsYVs1XT1tLGFbNl09MCxhWzddPTAsYVs4XT0wLGFbOV09MCxhWzEwXT1iLGFbMTFdPTAsYVsxMl09cCxhWzEzXT15LGFbMTRdPUUsYVsxNV09ZyxhfXN0YXRpYyBjb21wdXRlVmlldyhlLHQsbyxhLHIpe3JldHVybiByWzBdPWEueCxyWzFdPW8ueCxyWzJdPS10LngsclszXT0wLHJbNF09YS55LHJbNV09by55LHJbNl09LXQueSxyWzddPTAscls4XT1hLnoscls5XT1vLnosclsxMF09LXQueixyWzExXT0wLHJbMTJdPS1zLmRvdChhLGUpLHJbMTNdPS1zLmRvdChvLGUpLHJbMTRdPXMuZG90KHQsZSksclsxNV09MSxyfXN0YXRpYyB0b0FycmF5KGUsdCl7cmV0dXJuIF8odCk/KHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0WzRdPWVbNF0sdFs1XT1lWzVdLHRbNl09ZVs2XSx0WzddPWVbN10sdFs4XT1lWzhdLHRbOV09ZVs5XSx0WzEwXT1lWzEwXSx0WzExXT1lWzExXSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSx0KTpbZVswXSxlWzFdLGVbMl0sZVszXSxlWzRdLGVbNV0sZVs2XSxlWzddLGVbOF0sZVs5XSxlWzEwXSxlWzExXSxlWzEyXSxlWzEzXSxlWzE0XSxlWzE1XV19c3RhdGljIGdldEVsZW1lbnRJbmRleChlLHQpe3JldHVybiBlKjQrdH1zdGF0aWMgZ2V0Q29sdW1uKGUsdCxvKXtsZXQgYT10KjQscj1lW2FdLGk9ZVthKzFdLGY9ZVthKzJdLGQ9ZVthKzNdO3JldHVybiBvLng9cixvLnk9aSxvLno9ZixvLnc9ZCxvfXN0YXRpYyBzZXRDb2x1bW4oZSx0LG8sYSl7YT1uLmNsb25lKGUsYSk7bGV0IHI9dCo0O3JldHVybiBhW3JdPW8ueCxhW3IrMV09by55LGFbcisyXT1vLnosYVtyKzNdPW8udyxhfXN0YXRpYyBnZXRSb3coZSx0LG8pe2xldCBhPWVbdF0scj1lW3QrNF0saT1lW3QrOF0sZj1lW3QrMTJdO3JldHVybiBvLng9YSxvLnk9cixvLno9aSxvLnc9ZixvfXN0YXRpYyBzZXRSb3coZSx0LG8sYSl7cmV0dXJuIGE9bi5jbG9uZShlLGEpLGFbdF09by54LGFbdCs0XT1vLnksYVt0KzhdPW8ueixhW3QrMTJdPW8udyxhfXN0YXRpYyBzZXRUcmFuc2xhdGlvbihlLHQsbyl7cmV0dXJuIG9bMF09ZVswXSxvWzFdPWVbMV0sb1syXT1lWzJdLG9bM109ZVszXSxvWzRdPWVbNF0sb1s1XT1lWzVdLG9bNl09ZVs2XSxvWzddPWVbN10sb1s4XT1lWzhdLG9bOV09ZVs5XSxvWzEwXT1lWzEwXSxvWzExXT1lWzExXSxvWzEyXT10Lngsb1sxM109dC55LG9bMTRdPXQueixvWzE1XT1lWzE1XSxvfXN0YXRpYyBzZXRTY2FsZShlLHQsbyl7bGV0IGE9bi5nZXRTY2FsZShlLElDKSxyPXQueC9hLngsaT10LnkvYS55LGY9dC56L2EuejtyZXR1cm4gb1swXT1lWzBdKnIsb1sxXT1lWzFdKnIsb1syXT1lWzJdKnIsb1szXT1lWzNdLG9bNF09ZVs0XSppLG9bNV09ZVs1XSppLG9bNl09ZVs2XSppLG9bN109ZVs3XSxvWzhdPWVbOF0qZixvWzldPWVbOV0qZixvWzEwXT1lWzEwXSpmLG9bMTFdPWVbMTFdLG9bMTJdPWVbMTJdLG9bMTNdPWVbMTNdLG9bMTRdPWVbMTRdLG9bMTVdPWVbMTVdLG99c3RhdGljIHNldFVuaWZvcm1TY2FsZShlLHQsbyl7bGV0IGE9bi5nZXRTY2FsZShlLFBDKSxyPXQvYS54LGk9dC9hLnksZj10L2EuejtyZXR1cm4gb1swXT1lWzBdKnIsb1sxXT1lWzFdKnIsb1syXT1lWzJdKnIsb1szXT1lWzNdLG9bNF09ZVs0XSppLG9bNV09ZVs1XSppLG9bNl09ZVs2XSppLG9bN109ZVs3XSxvWzhdPWVbOF0qZixvWzldPWVbOV0qZixvWzEwXT1lWzEwXSpmLG9bMTFdPWVbMTFdLG9bMTJdPWVbMTJdLG9bMTNdPWVbMTNdLG9bMTRdPWVbMTRdLG9bMTVdPWVbMTVdLG99c3RhdGljIGdldFNjYWxlKGUsdCl7cmV0dXJuIHQueD1zLm1hZ25pdHVkZShzLmZyb21FbGVtZW50cyhlWzBdLGVbMV0sZVsyXSxlYikpLHQueT1zLm1hZ25pdHVkZShzLmZyb21FbGVtZW50cyhlWzRdLGVbNV0sZVs2XSxlYikpLHQuej1zLm1hZ25pdHVkZShzLmZyb21FbGVtZW50cyhlWzhdLGVbOV0sZVsxMF0sZWIpKSx0fXN0YXRpYyBnZXRNYXhpbXVtU2NhbGUoZSl7cmV0dXJuIG4uZ2V0U2NhbGUoZSxHMSkscy5tYXhpbXVtQ29tcG9uZW50KEcxKX1zdGF0aWMgc2V0Um90YXRpb24oZSx0LG8pe2xldCBhPW4uZ2V0U2NhbGUoZSxrQyk7cmV0dXJuIG9bMF09dFswXSphLngsb1sxXT10WzFdKmEueCxvWzJdPXRbMl0qYS54LG9bM109ZVszXSxvWzRdPXRbM10qYS55LG9bNV09dFs0XSphLnksb1s2XT10WzVdKmEueSxvWzddPWVbN10sb1s4XT10WzZdKmEueixvWzldPXRbN10qYS56LG9bMTBdPXRbOF0qYS56LG9bMTFdPWVbMTFdLG9bMTJdPWVbMTJdLG9bMTNdPWVbMTNdLG9bMTRdPWVbMTRdLG9bMTVdPWVbMTVdLG99c3RhdGljIGdldFJvdGF0aW9uKGUsdCl7bGV0IG89bi5nZXRTY2FsZShlLHZDKTtyZXR1cm4gdFswXT1lWzBdL28ueCx0WzFdPWVbMV0vby54LHRbMl09ZVsyXS9vLngsdFszXT1lWzRdL28ueSx0WzRdPWVbNV0vby55LHRbNV09ZVs2XS9vLnksdFs2XT1lWzhdL28ueix0WzddPWVbOV0vby56LHRbOF09ZVsxMF0vby56LHR9c3RhdGljIG11bHRpcGx5KGUsdCxvKXtsZXQgYT1lWzBdLHI9ZVsxXSxpPWVbMl0sZj1lWzNdLGQ9ZVs0XSxjPWVbNV0sdT1lWzZdLGw9ZVs3XSxoPWVbOF0sbT1lWzldLGI9ZVsxMF0scD1lWzExXSx5PWVbMTJdLEU9ZVsxM10sZz1lWzE0XSxBPWVbMTVdLFQ9dFswXSxSPXRbMV0sUz10WzJdLE09dFszXSxJPXRbNF0sTj10WzVdLFA9dFs2XSxGPXRbN10sdz10WzhdLHg9dFs5XSxDPXRbMTBdLHY9dFsxMV0saj10WzEyXSx6PXRbMTNdLEQ9dFsxNF0sRz10WzE1XSxWPWEqVCtkKlIraCpTK3kqTSxPPXIqVCtjKlIrbSpTK0UqTSxaPWkqVCt1KlIrYipTK2cqTSxhZT1mKlQrbCpSK3AqUytBKk0sY2U9YSpJK2QqTitoKlAreSpGLGZlPXIqSStjKk4rbSpQK0UqRix0ZT1pKkkrdSpOK2IqUCtnKkYsbWU9ZipJK2wqTitwKlArQSpGLHVlPWEqdytkKngraCpDK3kqdixiZT1yKncrYyp4K20qQytFKnYsaGU9aSp3K3UqeCtiKkMrZyp2LFE9Zip3K2wqeCtwKkMrQSp2LFRlPWEqaitkKnoraCpEK3kqRyxDZT1yKmorYyp6K20qRCtFKkcsV2U9aSpqK3UqeitiKkQrZypHLHplPWYqaitsKnorcCpEK0EqRztyZXR1cm4gb1swXT1WLG9bMV09TyxvWzJdPVosb1szXT1hZSxvWzRdPWNlLG9bNV09ZmUsb1s2XT10ZSxvWzddPW1lLG9bOF09dWUsb1s5XT1iZSxvWzEwXT1oZSxvWzExXT1RLG9bMTJdPVRlLG9bMTNdPUNlLG9bMTRdPVdlLG9bMTVdPXplLG99c3RhdGljIGFkZChlLHQsbyl7cmV0dXJuIG9bMF09ZVswXSt0WzBdLG9bMV09ZVsxXSt0WzFdLG9bMl09ZVsyXSt0WzJdLG9bM109ZVszXSt0WzNdLG9bNF09ZVs0XSt0WzRdLG9bNV09ZVs1XSt0WzVdLG9bNl09ZVs2XSt0WzZdLG9bN109ZVs3XSt0WzddLG9bOF09ZVs4XSt0WzhdLG9bOV09ZVs5XSt0WzldLG9bMTBdPWVbMTBdK3RbMTBdLG9bMTFdPWVbMTFdK3RbMTFdLG9bMTJdPWVbMTJdK3RbMTJdLG9bMTNdPWVbMTNdK3RbMTNdLG9bMTRdPWVbMTRdK3RbMTRdLG9bMTVdPWVbMTVdK3RbMTVdLG99c3RhdGljIHN1YnRyYWN0KGUsdCxvKXtyZXR1cm4gb1swXT1lWzBdLXRbMF0sb1sxXT1lWzFdLXRbMV0sb1syXT1lWzJdLXRbMl0sb1szXT1lWzNdLXRbM10sb1s0XT1lWzRdLXRbNF0sb1s1XT1lWzVdLXRbNV0sb1s2XT1lWzZdLXRbNl0sb1s3XT1lWzddLXRbN10sb1s4XT1lWzhdLXRbOF0sb1s5XT1lWzldLXRbOV0sb1sxMF09ZVsxMF0tdFsxMF0sb1sxMV09ZVsxMV0tdFsxMV0sb1sxMl09ZVsxMl0tdFsxMl0sb1sxM109ZVsxM10tdFsxM10sb1sxNF09ZVsxNF0tdFsxNF0sb1sxNV09ZVsxNV0tdFsxNV0sb31zdGF0aWMgbXVsdGlwbHlUcmFuc2Zvcm1hdGlvbihlLHQsbyl7bGV0IGE9ZVswXSxyPWVbMV0saT1lWzJdLGY9ZVs0XSxkPWVbNV0sYz1lWzZdLHU9ZVs4XSxsPWVbOV0saD1lWzEwXSxtPWVbMTJdLGI9ZVsxM10scD1lWzE0XSx5PXRbMF0sRT10WzFdLGc9dFsyXSxBPXRbNF0sVD10WzVdLFI9dFs2XSxTPXRbOF0sTT10WzldLEk9dFsxMF0sTj10WzEyXSxQPXRbMTNdLEY9dFsxNF0sdz1hKnkrZipFK3UqZyx4PXIqeStkKkUrbCpnLEM9aSp5K2MqRStoKmcsdj1hKkErZipUK3UqUixqPXIqQStkKlQrbCpSLHo9aSpBK2MqVCtoKlIsRD1hKlMrZipNK3UqSSxHPXIqUytkKk0rbCpJLFY9aSpTK2MqTStoKkksTz1hKk4rZipQK3UqRittLFo9cipOK2QqUCtsKkYrYixhZT1pKk4rYypQK2gqRitwO3JldHVybiBvWzBdPXcsb1sxXT14LG9bMl09QyxvWzNdPTAsb1s0XT12LG9bNV09aixvWzZdPXosb1s3XT0wLG9bOF09RCxvWzldPUcsb1sxMF09VixvWzExXT0wLG9bMTJdPU8sb1sxM109WixvWzE0XT1hZSxvWzE1XT0xLG99c3RhdGljIG11bHRpcGx5QnlNYXRyaXgzKGUsdCxvKXtsZXQgYT1lWzBdLHI9ZVsxXSxpPWVbMl0sZj1lWzRdLGQ9ZVs1XSxjPWVbNl0sdT1lWzhdLGw9ZVs5XSxoPWVbMTBdLG09dFswXSxiPXRbMV0scD10WzJdLHk9dFszXSxFPXRbNF0sZz10WzVdLEE9dFs2XSxUPXRbN10sUj10WzhdLFM9YSptK2YqYit1KnAsTT1yKm0rZCpiK2wqcCxJPWkqbStjKmIraCpwLE49YSp5K2YqRSt1KmcsUD1yKnkrZCpFK2wqZyxGPWkqeStjKkUraCpnLHc9YSpBK2YqVCt1KlIseD1yKkErZCpUK2wqUixDPWkqQStjKlQraCpSO3JldHVybiBvWzBdPVMsb1sxXT1NLG9bMl09SSxvWzNdPTAsb1s0XT1OLG9bNV09UCxvWzZdPUYsb1s3XT0wLG9bOF09dyxvWzldPXgsb1sxMF09QyxvWzExXT0wLG9bMTJdPWVbMTJdLG9bMTNdPWVbMTNdLG9bMTRdPWVbMTRdLG9bMTVdPWVbMTVdLG99c3RhdGljIG11bHRpcGx5QnlUcmFuc2xhdGlvbihlLHQsbyl7bGV0IGE9dC54LHI9dC55LGk9dC56LGY9YSplWzBdK3IqZVs0XStpKmVbOF0rZVsxMl0sZD1hKmVbMV0rciplWzVdK2kqZVs5XStlWzEzXSxjPWEqZVsyXStyKmVbNl0raSplWzEwXStlWzE0XTtyZXR1cm4gb1swXT1lWzBdLG9bMV09ZVsxXSxvWzJdPWVbMl0sb1szXT1lWzNdLG9bNF09ZVs0XSxvWzVdPWVbNV0sb1s2XT1lWzZdLG9bN109ZVs3XSxvWzhdPWVbOF0sb1s5XT1lWzldLG9bMTBdPWVbMTBdLG9bMTFdPWVbMTFdLG9bMTJdPWYsb1sxM109ZCxvWzE0XT1jLG9bMTVdPWVbMTVdLG99c3RhdGljIG11bHRpcGx5QnlTY2FsZShlLHQsbyl7bGV0IGE9dC54LHI9dC55LGk9dC56O3JldHVybiBhPT09MSYmcj09PTEmJmk9PT0xP24uY2xvbmUoZSxvKToob1swXT1hKmVbMF0sb1sxXT1hKmVbMV0sb1syXT1hKmVbMl0sb1szXT1lWzNdLG9bNF09ciplWzRdLG9bNV09ciplWzVdLG9bNl09ciplWzZdLG9bN109ZVs3XSxvWzhdPWkqZVs4XSxvWzldPWkqZVs5XSxvWzEwXT1pKmVbMTBdLG9bMTFdPWVbMTFdLG9bMTJdPWVbMTJdLG9bMTNdPWVbMTNdLG9bMTRdPWVbMTRdLG9bMTVdPWVbMTVdLG8pfXN0YXRpYyBtdWx0aXBseUJ5VW5pZm9ybVNjYWxlKGUsdCxvKXtyZXR1cm4gb1swXT1lWzBdKnQsb1sxXT1lWzFdKnQsb1syXT1lWzJdKnQsb1szXT1lWzNdLG9bNF09ZVs0XSp0LG9bNV09ZVs1XSp0LG9bNl09ZVs2XSp0LG9bN109ZVs3XSxvWzhdPWVbOF0qdCxvWzldPWVbOV0qdCxvWzEwXT1lWzEwXSp0LG9bMTFdPWVbMTFdLG9bMTJdPWVbMTJdLG9bMTNdPWVbMTNdLG9bMTRdPWVbMTRdLG9bMTVdPWVbMTVdLG99c3RhdGljIG11bHRpcGx5QnlWZWN0b3IoZSx0LG8pe2xldCBhPXQueCxyPXQueSxpPXQueixmPXQudyxkPWVbMF0qYStlWzRdKnIrZVs4XSppK2VbMTJdKmYsYz1lWzFdKmErZVs1XSpyK2VbOV0qaStlWzEzXSpmLHU9ZVsyXSphK2VbNl0qcitlWzEwXSppK2VbMTRdKmYsbD1lWzNdKmErZVs3XSpyK2VbMTFdKmkrZVsxNV0qZjtyZXR1cm4gby54PWQsby55PWMsby56PXUsby53PWwsb31zdGF0aWMgbXVsdGlwbHlCeVBvaW50QXNWZWN0b3IoZSx0LG8pe2xldCBhPXQueCxyPXQueSxpPXQueixmPWVbMF0qYStlWzRdKnIrZVs4XSppLGQ9ZVsxXSphK2VbNV0qcitlWzldKmksYz1lWzJdKmErZVs2XSpyK2VbMTBdKmk7cmV0dXJuIG8ueD1mLG8ueT1kLG8uej1jLG99c3RhdGljIG11bHRpcGx5QnlQb2ludChlLHQsbyl7bGV0IGE9dC54LHI9dC55LGk9dC56LGY9ZVswXSphK2VbNF0qcitlWzhdKmkrZVsxMl0sZD1lWzFdKmErZVs1XSpyK2VbOV0qaStlWzEzXSxjPWVbMl0qYStlWzZdKnIrZVsxMF0qaStlWzE0XTtyZXR1cm4gby54PWYsby55PWQsby56PWMsb31zdGF0aWMgbXVsdGlwbHlCeVNjYWxhcihlLHQsbyl7cmV0dXJuIG9bMF09ZVswXSp0LG9bMV09ZVsxXSp0LG9bMl09ZVsyXSp0LG9bM109ZVszXSp0LG9bNF09ZVs0XSp0LG9bNV09ZVs1XSp0LG9bNl09ZVs2XSp0LG9bN109ZVs3XSp0LG9bOF09ZVs4XSp0LG9bOV09ZVs5XSp0LG9bMTBdPWVbMTBdKnQsb1sxMV09ZVsxMV0qdCxvWzEyXT1lWzEyXSp0LG9bMTNdPWVbMTNdKnQsb1sxNF09ZVsxNF0qdCxvWzE1XT1lWzE1XSp0LG99c3RhdGljIG5lZ2F0ZShlLHQpe3JldHVybiB0WzBdPS1lWzBdLHRbMV09LWVbMV0sdFsyXT0tZVsyXSx0WzNdPS1lWzNdLHRbNF09LWVbNF0sdFs1XT0tZVs1XSx0WzZdPS1lWzZdLHRbN109LWVbN10sdFs4XT0tZVs4XSx0WzldPS1lWzldLHRbMTBdPS1lWzEwXSx0WzExXT0tZVsxMV0sdFsxMl09LWVbMTJdLHRbMTNdPS1lWzEzXSx0WzE0XT0tZVsxNF0sdFsxNV09LWVbMTVdLHR9c3RhdGljIHRyYW5zcG9zZShlLHQpe2xldCBvPWVbMV0sYT1lWzJdLHI9ZVszXSxpPWVbNl0sZj1lWzddLGQ9ZVsxMV07cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbNF0sdFsyXT1lWzhdLHRbM109ZVsxMl0sdFs0XT1vLHRbNV09ZVs1XSx0WzZdPWVbOV0sdFs3XT1lWzEzXSx0WzhdPWEsdFs5XT1pLHRbMTBdPWVbMTBdLHRbMTFdPWVbMTRdLHRbMTJdPXIsdFsxM109Zix0WzE0XT1kLHRbMTVdPWVbMTVdLHR9c3RhdGljIGFicyhlLHQpe3JldHVybiB0WzBdPU1hdGguYWJzKGVbMF0pLHRbMV09TWF0aC5hYnMoZVsxXSksdFsyXT1NYXRoLmFicyhlWzJdKSx0WzNdPU1hdGguYWJzKGVbM10pLHRbNF09TWF0aC5hYnMoZVs0XSksdFs1XT1NYXRoLmFicyhlWzVdKSx0WzZdPU1hdGguYWJzKGVbNl0pLHRbN109TWF0aC5hYnMoZVs3XSksdFs4XT1NYXRoLmFicyhlWzhdKSx0WzldPU1hdGguYWJzKGVbOV0pLHRbMTBdPU1hdGguYWJzKGVbMTBdKSx0WzExXT1NYXRoLmFicyhlWzExXSksdFsxMl09TWF0aC5hYnMoZVsxMl0pLHRbMTNdPU1hdGguYWJzKGVbMTNdKSx0WzE0XT1NYXRoLmFicyhlWzE0XSksdFsxNV09TWF0aC5hYnMoZVsxNV0pLHR9c3RhdGljIGVxdWFscyhlLHQpe3JldHVybiBlPT09dHx8XyhlKSYmXyh0KSYmZVsxMl09PT10WzEyXSYmZVsxM109PT10WzEzXSYmZVsxNF09PT10WzE0XSYmZVswXT09PXRbMF0mJmVbMV09PT10WzFdJiZlWzJdPT09dFsyXSYmZVs0XT09PXRbNF0mJmVbNV09PT10WzVdJiZlWzZdPT09dFs2XSYmZVs4XT09PXRbOF0mJmVbOV09PT10WzldJiZlWzEwXT09PXRbMTBdJiZlWzNdPT09dFszXSYmZVs3XT09PXRbN10mJmVbMTFdPT09dFsxMV0mJmVbMTVdPT09dFsxNV19c3RhdGljIGVxdWFsc0Vwc2lsb24oZSx0LG8pe3JldHVybiBvPW8/PzAsZT09PXR8fF8oZSkmJl8odCkmJk1hdGguYWJzKGVbMF0tdFswXSk8PW8mJk1hdGguYWJzKGVbMV0tdFsxXSk8PW8mJk1hdGguYWJzKGVbMl0tdFsyXSk8PW8mJk1hdGguYWJzKGVbM10tdFszXSk8PW8mJk1hdGguYWJzKGVbNF0tdFs0XSk8PW8mJk1hdGguYWJzKGVbNV0tdFs1XSk8PW8mJk1hdGguYWJzKGVbNl0tdFs2XSk8PW8mJk1hdGguYWJzKGVbN10tdFs3XSk8PW8mJk1hdGguYWJzKGVbOF0tdFs4XSk8PW8mJk1hdGguYWJzKGVbOV0tdFs5XSk8PW8mJk1hdGguYWJzKGVbMTBdLXRbMTBdKTw9byYmTWF0aC5hYnMoZVsxMV0tdFsxMV0pPD1vJiZNYXRoLmFicyhlWzEyXS10WzEyXSk8PW8mJk1hdGguYWJzKGVbMTNdLXRbMTNdKTw9byYmTWF0aC5hYnMoZVsxNF0tdFsxNF0pPD1vJiZNYXRoLmFicyhlWzE1XS10WzE1XSk8PW99c3RhdGljIGdldFRyYW5zbGF0aW9uKGUsdCl7cmV0dXJuIHQueD1lWzEyXSx0Lnk9ZVsxM10sdC56PWVbMTRdLHR9c3RhdGljIGdldE1hdHJpeDMoZSx0KXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzRdLHRbNF09ZVs1XSx0WzVdPWVbNl0sdFs2XT1lWzhdLHRbN109ZVs5XSx0WzhdPWVbMTBdLHR9c3RhdGljIGludmVyc2UoZSx0KXtsZXQgbz1lWzBdLGE9ZVs0XSxyPWVbOF0saT1lWzEyXSxmPWVbMV0sZD1lWzVdLGM9ZVs5XSx1PWVbMTNdLGw9ZVsyXSxoPWVbNl0sbT1lWzEwXSxiPWVbMTRdLHA9ZVszXSx5PWVbN10sRT1lWzExXSxnPWVbMTVdLEE9bSpnLFQ9YipFLFI9aCpnLFM9Yip5LE09aCpFLEk9bSp5LE49bCpnLFA9YipwLEY9bCpFLHc9bSpwLHg9bCp5LEM9aCpwLHY9QSpkK1MqYytNKnUtKFQqZCtSKmMrSSp1KSxqPVQqZitOKmMrdyp1LShBKmYrUCpjK0YqdSksej1SKmYrUCpkK3gqdS0oUypmK04qZCtDKnUpLEQ9SSpmK0YqZCtDKmMtKE0qZit3KmQreCpjKSxHPVQqYStSKnIrSSppLShBKmErUypyK00qaSksVj1BKm8rUCpyK0YqaS0oVCpvK04qcit3KmkpLE89UypvK04qYStDKmktKFIqbytQKmEreCppKSxaPU0qbyt3KmEreCpyLShJKm8rRiphK0Mqcik7QT1yKnUsVD1pKmMsUj1hKnUsUz1pKmQsTT1hKmMsST1yKmQsTj1vKnUsUD1pKmYsRj1vKmMsdz1yKmYseD1vKmQsQz1hKmY7bGV0IGFlPUEqeStTKkUrTSpnLShUKnkrUipFK0kqZyksY2U9VCpwK04qRSt3KmctKEEqcCtQKkUrRipnKSxmZT1SKnArUCp5K3gqZy0oUypwK04qeStDKmcpLHRlPUkqcCtGKnkrQypFLShNKnArdyp5K3gqRSksbWU9UiptK0kqYitUKmgtKE0qYitBKmgrUyptKSx1ZT1GKmIrQSpsK1AqbS0oTiptK3cqYitUKmwpLGJlPU4qaCtDKmIrUypsLSh4KmIrUipsK1AqaCksaGU9eCptK00qbCt3KmgtKEYqaCtDKm0rSSpsKSxRPW8qdithKmorcip6K2kqRDtpZihNYXRoLmFicyhRKTxrLkVQU0lMT04yMSl7aWYoSi5lcXVhbHNFcHNpbG9uKG4uZ2V0TWF0cml4MyhlLEZDKSxEQyxrLkVQU0lMT043KSYmcnQuZXF1YWxzKG4uZ2V0Um93KGUsMyxCQyksakMpKXJldHVybiB0WzBdPTAsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MCx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MCx0WzExXT0wLHRbMTJdPS1lWzEyXSx0WzEzXT0tZVsxM10sdFsxNF09LWVbMTRdLHRbMTVdPTEsdDt0aHJvdyBuZXcgbnQoIm1hdHJpeCBpcyBub3QgaW52ZXJ0aWJsZSBiZWNhdXNlIGl0cyBkZXRlcm1pbmF0ZSBpcyB6ZXJvLiIpfXJldHVybiBRPTEvUSx0WzBdPXYqUSx0WzFdPWoqUSx0WzJdPXoqUSx0WzNdPUQqUSx0WzRdPUcqUSx0WzVdPVYqUSx0WzZdPU8qUSx0WzddPVoqUSx0WzhdPWFlKlEsdFs5XT1jZSpRLHRbMTBdPWZlKlEsdFsxMV09dGUqUSx0WzEyXT1tZSpRLHRbMTNdPXVlKlEsdFsxNF09YmUqUSx0WzE1XT1oZSpRLHR9c3RhdGljIGludmVyc2VUcmFuc2Zvcm1hdGlvbihlLHQpe2xldCBvPWVbMF0sYT1lWzFdLHI9ZVsyXSxpPWVbNF0sZj1lWzVdLGQ9ZVs2XSxjPWVbOF0sdT1lWzldLGw9ZVsxMF0saD1lWzEyXSxtPWVbMTNdLGI9ZVsxNF0scD0tbypoLWEqbS1yKmIseT0taSpoLWYqbS1kKmIsRT0tYypoLXUqbS1sKmI7cmV0dXJuIHRbMF09byx0WzFdPWksdFsyXT1jLHRbM109MCx0WzRdPWEsdFs1XT1mLHRbNl09dSx0WzddPTAsdFs4XT1yLHRbOV09ZCx0WzEwXT1sLHRbMTFdPTAsdFsxMl09cCx0WzEzXT15LHRbMTRdPUUsdFsxNV09MSx0fXN0YXRpYyBpbnZlcnNlVHJhbnNwb3NlKGUsdCl7cmV0dXJuIG4uaW52ZXJzZShuLnRyYW5zcG9zZShlLFVDKSx0KX1nZXQgbGVuZ3RoKCl7cmV0dXJuIG4ucGFja2VkTGVuZ3RofWNsb25lKGUpe3JldHVybiBuLmNsb25lKHRoaXMsZSl9ZXF1YWxzKGUpe3JldHVybiBuLmVxdWFscyh0aGlzLGUpfXN0YXRpYyBlcXVhbHNBcnJheShlLHQsbyl7cmV0dXJuIGVbMF09PT10W29dJiZlWzFdPT09dFtvKzFdJiZlWzJdPT09dFtvKzJdJiZlWzNdPT09dFtvKzNdJiZlWzRdPT09dFtvKzRdJiZlWzVdPT09dFtvKzVdJiZlWzZdPT09dFtvKzZdJiZlWzddPT09dFtvKzddJiZlWzhdPT09dFtvKzhdJiZlWzldPT09dFtvKzldJiZlWzEwXT09PXRbbysxMF0mJmVbMTFdPT09dFtvKzExXSYmZVsxMl09PT10W28rMTJdJiZlWzEzXT09PXRbbysxM10mJmVbMTRdPT09dFtvKzE0XSYmZVsxNV09PT10W28rMTVdfWVxdWFsc0Vwc2lsb24oZSx0KXtyZXR1cm4gbi5lcXVhbHNFcHNpbG9uKHRoaXMsZSx0KX10b1N0cmluZygpe3JldHVybmAoJHt0aGlzWzBdfSwgJHt0aGlzWzRdfSwgJHt0aGlzWzhdfSwgJHt0aGlzWzEyXX0pCigke3RoaXNbMV19LCAke3RoaXNbNV19LCAke3RoaXNbOV19LCAke3RoaXNbMTNdfSkKKCR7dGhpc1syXX0sICR7dGhpc1s2XX0sICR7dGhpc1sxMF19LCAke3RoaXNbMTRdfSkKKCR7dGhpc1szXX0sICR7dGhpc1s3XX0sICR7dGhpc1sxMV19LCAke3RoaXNbMTVdfSlgfX07ZG4ucGFja2VkTGVuZ3RoPTE2O2RuLmZyb21BcnJheT1kbi51bnBhY2s7ZG4uSURFTlRJVFk9T2JqZWN0LmZyZWV6ZShuZXcgZG4oMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMSkpO2RuLlpFUk89T2JqZWN0LmZyZWV6ZShuZXcgZG4oMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCkpO2RuLkNPTFVNTjBST1cwPTA7ZG4uQ09MVU1OMFJPVzE9MTtkbi5DT0xVTU4wUk9XMj0yO2RuLkNPTFVNTjBST1czPTM7ZG4uQ09MVU1OMVJPVzA9NDtkbi5DT0xVTU4xUk9XMT01O2RuLkNPTFVNTjFST1cyPTY7ZG4uQ09MVU1OMVJPVzM9Nztkbi5DT0xVTU4yUk9XMD04O2RuLkNPTFVNTjJST1cxPTk7ZG4uQ09MVU1OMlJPVzI9MTA7ZG4uQ09MVU1OMlJPVzM9MTE7ZG4uQ09MVU1OM1JPVzA9MTI7ZG4uQ09MVU1OM1JPVzE9MTM7ZG4uQ09MVU1OM1JPVzI9MTQ7ZG4uQ09MVU1OM1JPVzM9MTU7V2M9bmV3IHMsWGM9bmV3IHMseWY9bmV3IHMsSUM9bmV3IHMsUEM9bmV3IHMsZWI9bmV3IHMsRzE9bmV3IHMsa0M9bmV3IHMsdkM9bmV3IHMsRkM9bmV3IEosREM9bmV3IEosQkM9bmV3IHJ0LGpDPW5ldyBydCgwLDAsMCwxKSxVQz1uZXcgZG4sJD1kbn0pO2Z1bmN0aW9uIExDKG4sZSx0KXtsZXQgbz0wLGE9bi5sZW5ndGgtMSxyLGk7Zm9yKDtvPD1hOyl7aWYocj1+figobythKS8yKSxpPXQobltyXSxlKSxpPDApe289cisxO2NvbnRpbnVlfWlmKGk+MCl7YT1yLTE7Y29udGludWV9cmV0dXJuIHJ9cmV0dXJufihhKzEpfXZhciBnYSxzbD1YKCgpPT57Z2E9TEN9KTtmdW5jdGlvbiB6QyhuLGUsdCxvLGEpe3RoaXMueFBvbGVXYW5kZXI9bix0aGlzLnlQb2xlV2FuZGVyPWUsdGhpcy54UG9sZU9mZnNldD10LHRoaXMueVBvbGVPZmZzZXQ9byx0aGlzLnV0MU1pbnVzVXRjPWF9dmFyIEFmLHRiPVgoKCk9PntBZj16Q30pO2Z1bmN0aW9uIEdDKG4pe3JldHVybiBuJTQ9PT0wJiZuJTEwMCE9PTB8fG4lNDAwPT09MH12YXIgd2YsbmI9WCgoKT0+e3dmPUdDfSk7ZnVuY3Rpb24gVkMobixlLHQsbyxhLHIsaSxmKXtuPW4/PzEsZT1lPz8xLHQ9dD8/MSxvPW8/PzAsYT1hPz8wLHI9cj8/MCxpPWk/PzAsZj1mPz8hMSx0aGlzLnllYXI9bix0aGlzLm1vbnRoPWUsdGhpcy5kYXk9dCx0aGlzLmhvdXI9byx0aGlzLm1pbnV0ZT1hLHRoaXMuc2Vjb25kPXIsdGhpcy5taWxsaXNlY29uZD1pLHRoaXMuaXNMZWFwU2Vjb25kPWY7ZnVuY3Rpb24gcCgpe1JuLnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiWWVhciIsbiwxKSxSbi50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIlllYXIiLG4sOTk5OSksUm4udHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJNb250aCIsZSwxKSxSbi50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIk1vbnRoIixlLDEyKSxSbi50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIkRheSIsdCwxKSxSbi50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIkRheSIsdCwzMSksUm4udHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJIb3VyIixvLDApLFJuLnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiSG91ciIsbywyMyksUm4udHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJNaW51dGUiLGEsMCksUm4udHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJNaW51dGUiLGEsNTkpLFJuLnR5cGVPZi5ib29sKCJJc0xlYXBTZWNvbmQiLGYpLFJuLnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiU2Vjb25kIixyLDApLFJuLnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiU2Vjb25kIixyLGY/NjA6NTkpLFJuLnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiTWlsbGlzZWNvbmQiLGksMCksUm4udHlwZU9mLm51bWJlci5sZXNzVGhhbigiTWlsbGlzZWNvbmQiLGksMWUzKX1mdW5jdGlvbiB5KCl7bGV0IEU9ZT09PTImJndmKG4pP1YxW2UtMV0rMTpWMVtlLTFdO2lmKHQ+RSl0aHJvdyBuZXcgVnQoIk1vbnRoIGFuZCBEYXkgcmVwcmVzZW50cyBpbnZhbGlkIGRhdGUiKX19dmFyIFYxLG9iLEgxPVgoKCk9PntIbSgpO0ppKCk7bmIoKTtWMT1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO29iPVZDfSk7ZnVuY3Rpb24gSEMobixlKXt0aGlzLmp1bGlhbkRhdGU9bix0aGlzLm9mZnNldD1lfXZhciBXdCxhYj1YKCgpPT57V3Q9SEN9KTt2YXIgSzEsbG4sZmw9WCgoKT0+e0sxPXtTRUNPTkRTX1BFUl9NSUxMSVNFQ09ORDouMDAxLFNFQ09ORFNfUEVSX01JTlVURTo2MCxNSU5VVEVTX1BFUl9IT1VSOjYwLEhPVVJTX1BFUl9EQVk6MjQsU0VDT05EU19QRVJfSE9VUjozNjAwLE1JTlVURVNfUEVSX0RBWToxNDQwLFNFQ09ORFNfUEVSX0RBWTo4NjQwMCxEQVlTX1BFUl9KVUxJQU5fQ0VOVFVSWTozNjUyNSxQSUNPU0VDT05EOjFlLTksTU9ESUZJRURfSlVMSUFOX0RBVEVfRElGRkVSRU5DRToyNDAwMDAwNWUtMX07T2JqZWN0LmZyZWV6ZShLMSk7bG49SzF9KTt2YXIgcTEsaHQsZGw9WCgoKT0+e3ExPXtVVEM6MCxUQUk6MX07T2JqZWN0LmZyZWV6ZShxMSk7aHQ9cTF9KTtmdW5jdGlvbiBzYihuLGUpe3JldHVybiBmdC5jb21wYXJlKG4uanVsaWFuRGF0ZSxlLmp1bGlhbkRhdGUpfWZ1bmN0aW9uIHVsKG4pe1ljLmp1bGlhbkRhdGU9bjtsZXQgZT1mdC5sZWFwU2Vjb25kcyx0PWdhKGUsWWMsc2IpO3Q8MCYmKHQ9fnQpLHQ+PWUubGVuZ3RoJiYodD1lLmxlbmd0aC0xKTtsZXQgbz1lW3RdLm9mZnNldDt0PjAmJmZ0LnNlY29uZHNEaWZmZXJlbmNlKGVbdF0uanVsaWFuRGF0ZSxuKT5vJiYodC0tLG89ZVt0XS5vZmZzZXQpLGZ0LmFkZFNlY29uZHMobixvLG4pfWZ1bmN0aW9uIFgxKG4sZSl7WWMuanVsaWFuRGF0ZT1uO2xldCB0PWZ0LmxlYXBTZWNvbmRzLG89Z2EodCxZYyxzYik7aWYobzwwJiYobz1+byksbz09PTApcmV0dXJuIGZ0LmFkZFNlY29uZHMobiwtdFswXS5vZmZzZXQsZSk7aWYobz49dC5sZW5ndGgpcmV0dXJuIGZ0LmFkZFNlY29uZHMobiwtdFtvLTFdLm9mZnNldCxlKTtsZXQgYT1mdC5zZWNvbmRzRGlmZmVyZW5jZSh0W29dLmp1bGlhbkRhdGUsbik7aWYoYT09PTApcmV0dXJuIGZ0LmFkZFNlY29uZHMobiwtdFtvXS5vZmZzZXQsZSk7aWYoIShhPD0xKSlyZXR1cm4gZnQuYWRkU2Vjb25kcyhuLC10Wy0tb10ub2Zmc2V0LGUpfWZ1bmN0aW9uIGZpKG4sZSx0KXtsZXQgbz1lL2xuLlNFQ09ORFNfUEVSX0RBWXwwO3JldHVybiBuKz1vLGUtPWxuLlNFQ09ORFNfUEVSX0RBWSpvLGU8MCYmKG4tLSxlKz1sbi5TRUNPTkRTX1BFUl9EQVkpLHQuZGF5TnVtYmVyPW4sdC5zZWNvbmRzT2ZEYXk9ZSx0fWZ1bmN0aW9uIGNiKG4sZSx0LG8sYSxyLGkpe2xldCBmPShlLTE0KS8xMnwwLGQ9bis0ODAwK2YsYz0oMTQ2MSpkLzR8MCkrKDM2NyooZS0yLTEyKmYpLzEyfDApLSgzKigoZCsxMDApLzEwMHwwKS80fDApK3QtMzIwNzU7bz1vLTEyLG88MCYmKG8rPTI0KTtsZXQgdT1yKyhvKmxuLlNFQ09ORFNfUEVSX0hPVVIrYSpsbi5TRUNPTkRTX1BFUl9NSU5VVEUraSpsbi5TRUNPTkRTX1BFUl9NSUxMSVNFQ09ORCk7cmV0dXJuIHU+PTQzMjAwJiYoYy09MSksW2MsdV19dmFyIFcxLHJiLGliLFljLEtDLHFDLFdDLFhDLFlDLGZiLEpDLFpDLFFDLGZ0LGxsLEtuLGhsPVgoKCk9PntzbCgpO3NlKCk7SDEoKTtuYigpO2FiKCk7ZmwoKTtkbCgpO1cxPW5ldyBvYixyYj1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGliPTI5O1ljPW5ldyBXdDtLQz0vXihcZHs0fSkkLyxxQz0vXihcZHs0fSktKFxkezJ9KSQvLFdDPS9eKFxkezR9KS0/KFxkezN9KSQvLFhDPS9eKFxkezR9KS0/VyhcZHsyfSktPyhcZHsxfSk/JC8sWUM9L14oXGR7NH0pLT8oXGR7Mn0pLT8oXGR7Mn0pJC8sZmI9LyhbWitcLV0pPyhcZHsyfSk/Oj8oXGR7Mn0pPyQvLEpDPS9eKFxkezJ9KShcLlxkKyk/Ly5zb3VyY2UrZmIuc291cmNlLFpDPS9eKFxkezJ9KTo/KFxkezJ9KShcLlxkKyk/Ly5zb3VyY2UrZmIuc291cmNlLFFDPS9eKFxkezJ9KTo/KFxkezJ9KTo/KFxkezJ9KShcLlxkKyk/Ly5zb3VyY2UrZmIuc291cmNlLGZ0PWNsYXNzIG57Y29uc3RydWN0b3IoZSx0LG8pe3RoaXMuZGF5TnVtYmVyPXZvaWQgMCx0aGlzLnNlY29uZHNPZkRheT12b2lkIDAsZT1lPz8wLHQ9dD8/MCxvPW8/P2h0LlVUQztsZXQgYT1lfDA7dD10KyhlLWEpKmxuLlNFQ09ORFNfUEVSX0RBWSxmaShhLHQsdGhpcyksbz09PWh0LlVUQyYmdWwodGhpcyl9c3RhdGljIGZyb21HcmVnb3JpYW5EYXRlKGUsdCl7bGV0IG89Y2IoZS55ZWFyLGUubW9udGgsZS5kYXksZS5ob3VyLGUubWludXRlLGUuc2Vjb25kLGUubWlsbGlzZWNvbmQpO3JldHVybiBfKHQpPyhmaShvWzBdLG9bMV0sdCksdWwodCksdCk6bmV3IG4ob1swXSxvWzFdLGh0LlVUQyl9c3RhdGljIGZyb21EYXRlKGUsdCl7bGV0IG89Y2IoZS5nZXRVVENGdWxsWWVhcigpLGUuZ2V0VVRDTW9udGgoKSsxLGUuZ2V0VVRDRGF0ZSgpLGUuZ2V0VVRDSG91cnMoKSxlLmdldFVUQ01pbnV0ZXMoKSxlLmdldFVUQ1NlY29uZHMoKSxlLmdldFVUQ01pbGxpc2Vjb25kcygpKTtyZXR1cm4gXyh0KT8oZmkob1swXSxvWzFdLHQpLHVsKHQpLHQpOm5ldyBuKG9bMF0sb1sxXSxodC5VVEMpfXN0YXRpYyBmcm9tSXNvODYwMShlLHQpe2U9ZS5yZXBsYWNlKCIsIiwiLiIpO2xldCBvPWUuc3BsaXQoIlQiKSxhLHI9MSxpPTEsZj0wLGQ9MCxjPTAsdT0wLGw9b1swXSxoPW9bMV0sbSxiO2lmKG89bC5tYXRjaChZQyksbyE9PW51bGwpYT0rb1sxXSxyPStvWzJdLGk9K29bM107ZWxzZSBpZihvPWwubWF0Y2gocUMpLG8hPT1udWxsKWE9K29bMV0scj0rb1syXTtlbHNlIGlmKG89bC5tYXRjaChLQyksbyE9PW51bGwpYT0rb1sxXTtlbHNle2xldCBnO2lmKG89bC5tYXRjaChXQyksbyE9PW51bGwpYT0rb1sxXSxnPStvWzJdLGI9d2YoYSk7ZWxzZSBpZihvPWwubWF0Y2goWEMpLG8hPT1udWxsKXthPStvWzFdO2xldCBBPStvWzJdLFQ9K29bM118fDAsUj1uZXcgRGF0ZShEYXRlLlVUQyhhLDAsNCkpO2c9QSo3K1QtUi5nZXRVVENEYXkoKS0zfW09bmV3IERhdGUoRGF0ZS5VVEMoYSwwLDEpKSxtLnNldFVUQ0RhdGUoZykscj1tLmdldFVUQ01vbnRoKCkrMSxpPW0uZ2V0VVRDRGF0ZSgpfWI9d2YoYSk7bGV0IHA7aWYoXyhoKSl7bz1oLm1hdGNoKFFDKSxvIT09bnVsbD8oZj0rb1sxXSxkPStvWzJdLGM9K29bM10sdT0rKG9bNF18fDApKjFlMyxwPTUpOihvPWgubWF0Y2goWkMpLG8hPT1udWxsPyhmPStvWzFdLGQ9K29bMl0sYz0rKG9bM118fDApKjYwLHA9NCk6KG89aC5tYXRjaChKQyksbyE9PW51bGwmJihmPStvWzFdLGQ9KyhvWzJdfHwwKSo2MCxwPTMpKSk7bGV0IGc9b1twXSxBPStvW3ArMV0sVD0rKG9bcCsyXXx8MCk7c3dpdGNoKGcpe2Nhc2UiKyI6Zj1mLUEsZD1kLVQ7YnJlYWs7Y2FzZSItIjpmPWYrQSxkPWQrVDticmVhaztjYXNlIloiOmJyZWFrO2RlZmF1bHQ6ZD1kK25ldyBEYXRlKERhdGUuVVRDKGEsci0xLGksZixkKSkuZ2V0VGltZXpvbmVPZmZzZXQoKTticmVha319bGV0IHk9Yz09PTYwO2Zvcih5JiZjLS07ZD49NjA7KWQtPTYwLGYrKztmb3IoO2Y+PTI0OylmLT0yNCxpKys7Zm9yKG09YiYmcj09PTI/aWI6cmJbci0xXTtpPm07KWktPW0scisrLHI+MTImJihyLT0xMixhKyspLG09YiYmcj09PTI/aWI6cmJbci0xXTtmb3IoO2Q8MDspZCs9NjAsZi0tO2Zvcig7ZjwwOylmKz0yNCxpLS07Zm9yKDtpPDE7KXItLSxyPDEmJihyKz0xMixhLS0pLG09YiYmcj09PTI/aWI6cmJbci0xXSxpKz1tO2xldCBFPWNiKGEscixpLGYsZCxjLHUpO3JldHVybiBfKHQpPyhmaShFWzBdLEVbMV0sdCksdWwodCkpOnQ9bmV3IG4oRVswXSxFWzFdLGh0LlVUQykseSYmbi5hZGRTZWNvbmRzKHQsMSx0KSx0fXN0YXRpYyBub3coZSl7cmV0dXJuIG4uZnJvbURhdGUobmV3IERhdGUsZSl9c3RhdGljIHRvR3JlZ29yaWFuRGF0ZShlLHQpe2xldCBvPSExLGE9WDEoZSxsbCk7XyhhKXx8KG4uYWRkU2Vjb25kcyhlLC0xLGxsKSxhPVgxKGxsLGxsKSxvPSEwKTtsZXQgcj1hLmRheU51bWJlcixpPWEuc2Vjb25kc09mRGF5O2k+PTQzMjAwJiYocis9MSk7bGV0IGY9cis2ODU2OXwwLGQ9NCpmLzE0NjA5N3wwO2Y9Zi0oKDE0NjA5NypkKzMpLzR8MCl8MDtsZXQgYz00ZTMqKGYrMSkvMTQ2MTAwMXwwO2Y9Zi0oMTQ2MSpjLzR8MCkrMzF8MDtsZXQgdT04MCpmLzI0NDd8MCxsPWYtKDI0NDcqdS84MHwwKXwwO2Y9dS8xMXwwO2xldCBoPXUrMi0xMipmfDAsbT0xMDAqKGQtNDkpK2MrZnwwLGI9aS9sbi5TRUNPTkRTX1BFUl9IT1VSfDAscD1pLWIqbG4uU0VDT05EU19QRVJfSE9VUix5PXAvbG4uU0VDT05EU19QRVJfTUlOVVRFfDA7cD1wLXkqbG4uU0VDT05EU19QRVJfTUlOVVRFO2xldCBFPXB8MCxnPShwLUUpL2xuLlNFQ09ORFNfUEVSX01JTExJU0VDT05EO3JldHVybiBiKz0xMixiPjIzJiYoYi09MjQpLG8mJihFKz0xKSxfKHQpPyh0LnllYXI9bSx0Lm1vbnRoPWgsdC5kYXk9bCx0LmhvdXI9Yix0Lm1pbnV0ZT15LHQuc2Vjb25kPUUsdC5taWxsaXNlY29uZD1nLHQuaXNMZWFwU2Vjb25kPW8sdCk6bmV3IG9iKG0saCxsLGIseSxFLGcsbyl9c3RhdGljIHRvRGF0ZShlKXtsZXQgdD1uLnRvR3JlZ29yaWFuRGF0ZShlLFcxKSxvPXQuc2Vjb25kO3JldHVybiB0LmlzTGVhcFNlY29uZCYmKG8tPTEpLG5ldyBEYXRlKERhdGUuVVRDKHQueWVhcix0Lm1vbnRoLTEsdC5kYXksdC5ob3VyLHQubWludXRlLG8sdC5taWxsaXNlY29uZCkpfXN0YXRpYyB0b0lzbzg2MDEoZSx0KXtsZXQgbz1uLnRvR3JlZ29yaWFuRGF0ZShlLFcxKSxhPW8ueWVhcixyPW8ubW9udGgsaT1vLmRheSxmPW8uaG91cixkPW8ubWludXRlLGM9by5zZWNvbmQsdT1vLm1pbGxpc2Vjb25kO2E9PT0xZTQmJnI9PT0xJiZpPT09MSYmZj09PTAmJmQ9PT0wJiZjPT09MCYmdT09PTAmJihhPTk5OTkscj0xMixpPTMxLGY9MjQpO2xldCBsO2lmKCFfKHQpJiZ1IT09MCl7bGV0IGg9dSouMDE7cmV0dXJuIGw9aDwxZS02P2gudG9GaXhlZCgyMCkucmVwbGFjZSgiLiIsIiIpLnJlcGxhY2UoLzArJC8sIiIpOmgudG9TdHJpbmcoKS5yZXBsYWNlKCIuIiwiIiksYCR7YS50b1N0cmluZygpLnBhZFN0YXJ0KDQsIjAiKX0tJHtyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2kudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9VCR7Zi50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHtkLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke2MudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LiR7bH1aYH1yZXR1cm4hXyh0KXx8dD09PTA/YCR7YS50b1N0cmluZygpLnBhZFN0YXJ0KDQsIjAiKX0tJHtyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2kudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9VCR7Zi50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHtkLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke2MudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9WmA6KGw9KHUqLjAxKS50b0ZpeGVkKHQpLnJlcGxhY2UoIi4iLCIiKS5zbGljZSgwLHQpLGAke2EudG9TdHJpbmcoKS5wYWRTdGFydCg0LCIwIil9LSR7ci50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHtpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfVQke2YudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7ZC50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHtjLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS4ke2x9WmApfXN0YXRpYyBjbG9uZShlLHQpe2lmKF8oZSkpcmV0dXJuIF8odCk/KHQuZGF5TnVtYmVyPWUuZGF5TnVtYmVyLHQuc2Vjb25kc09mRGF5PWUuc2Vjb25kc09mRGF5LHQpOm5ldyBuKGUuZGF5TnVtYmVyLGUuc2Vjb25kc09mRGF5LGh0LlRBSSl9c3RhdGljIGNvbXBhcmUoZSx0KXtsZXQgbz1lLmRheU51bWJlci10LmRheU51bWJlcjtyZXR1cm4gbyE9PTA/bzplLnNlY29uZHNPZkRheS10LnNlY29uZHNPZkRheX1zdGF0aWMgZXF1YWxzKGUsdCl7cmV0dXJuIGU9PT10fHxfKGUpJiZfKHQpJiZlLmRheU51bWJlcj09PXQuZGF5TnVtYmVyJiZlLnNlY29uZHNPZkRheT09PXQuc2Vjb25kc09mRGF5fXN0YXRpYyBlcXVhbHNFcHNpbG9uKGUsdCxvKXtyZXR1cm4gbz1vPz8wLGU9PT10fHxfKGUpJiZfKHQpJiZNYXRoLmFicyhuLnNlY29uZHNEaWZmZXJlbmNlKGUsdCkpPD1vfXN0YXRpYyB0b3RhbERheXMoZSl7cmV0dXJuIGUuZGF5TnVtYmVyK2Uuc2Vjb25kc09mRGF5L2xuLlNFQ09ORFNfUEVSX0RBWX1zdGF0aWMgc2Vjb25kc0RpZmZlcmVuY2UoZSx0KXtyZXR1cm4oZS5kYXlOdW1iZXItdC5kYXlOdW1iZXIpKmxuLlNFQ09ORFNfUEVSX0RBWSsoZS5zZWNvbmRzT2ZEYXktdC5zZWNvbmRzT2ZEYXkpfXN0YXRpYyBkYXlzRGlmZmVyZW5jZShlLHQpe2xldCBvPWUuZGF5TnVtYmVyLXQuZGF5TnVtYmVyLGE9KGUuc2Vjb25kc09mRGF5LXQuc2Vjb25kc09mRGF5KS9sbi5TRUNPTkRTX1BFUl9EQVk7cmV0dXJuIG8rYX1zdGF0aWMgY29tcHV0ZVRhaU1pbnVzVXRjKGUpe1ljLmp1bGlhbkRhdGU9ZTtsZXQgdD1uLmxlYXBTZWNvbmRzLG89Z2EodCxZYyxzYik7cmV0dXJuIG88MCYmKG89fm8sLS1vLG88MCYmKG89MCkpLHRbb10ub2Zmc2V0fXN0YXRpYyBhZGRTZWNvbmRzKGUsdCxvKXtyZXR1cm4gZmkoZS5kYXlOdW1iZXIsZS5zZWNvbmRzT2ZEYXkrdCxvKX1zdGF0aWMgYWRkTWludXRlcyhlLHQsbyl7bGV0IGE9ZS5zZWNvbmRzT2ZEYXkrdCpsbi5TRUNPTkRTX1BFUl9NSU5VVEU7cmV0dXJuIGZpKGUuZGF5TnVtYmVyLGEsbyl9c3RhdGljIGFkZEhvdXJzKGUsdCxvKXtsZXQgYT1lLnNlY29uZHNPZkRheSt0KmxuLlNFQ09ORFNfUEVSX0hPVVI7cmV0dXJuIGZpKGUuZGF5TnVtYmVyLGEsbyl9c3RhdGljIGFkZERheXMoZSx0LG8pe2xldCBhPWUuZGF5TnVtYmVyK3Q7cmV0dXJuIGZpKGEsZS5zZWNvbmRzT2ZEYXksbyl9c3RhdGljIGxlc3NUaGFuKGUsdCl7cmV0dXJuIG4uY29tcGFyZShlLHQpPDB9c3RhdGljIGxlc3NUaGFuT3JFcXVhbHMoZSx0KXtyZXR1cm4gbi5jb21wYXJlKGUsdCk8PTB9c3RhdGljIGdyZWF0ZXJUaGFuKGUsdCl7cmV0dXJuIG4uY29tcGFyZShlLHQpPjB9c3RhdGljIGdyZWF0ZXJUaGFuT3JFcXVhbHMoZSx0KXtyZXR1cm4gbi5jb21wYXJlKGUsdCk+PTB9Y2xvbmUoZSl7cmV0dXJuIG4uY2xvbmUodGhpcyxlKX1lcXVhbHMoZSl7cmV0dXJuIG4uZXF1YWxzKHRoaXMsZSl9ZXF1YWxzRXBzaWxvbihlLHQpe3JldHVybiBuLmVxdWFsc0Vwc2lsb24odGhpcyxlLHQpfXRvU3RyaW5nKCl7cmV0dXJuIG4udG9Jc284NjAxKHRoaXMpfX0sbGw9bmV3IGZ0KDAsMCxodC5UQUkpO2Z0LmxlYXBTZWNvbmRzPVtuZXcgV3QobmV3IGZ0KDI0NDEzMTcsNDMyMTAsaHQuVEFJKSwxMCksbmV3IFd0KG5ldyBmdCgyNDQxNDk5LDQzMjExLGh0LlRBSSksMTEpLG5ldyBXdChuZXcgZnQoMjQ0MTY4Myw0MzIxMixodC5UQUkpLDEyKSxuZXcgV3QobmV3IGZ0KDI0NDIwNDgsNDMyMTMsaHQuVEFJKSwxMyksbmV3IFd0KG5ldyBmdCgyNDQyNDEzLDQzMjE0LGh0LlRBSSksMTQpLG5ldyBXdChuZXcgZnQoMjQ0Mjc3OCw0MzIxNSxodC5UQUkpLDE1KSxuZXcgV3QobmV3IGZ0KDI0NDMxNDQsNDMyMTYsaHQuVEFJKSwxNiksbmV3IFd0KG5ldyBmdCgyNDQzNTA5LDQzMjE3LGh0LlRBSSksMTcpLG5ldyBXdChuZXcgZnQoMjQ0Mzg3NCw0MzIxOCxodC5UQUkpLDE4KSxuZXcgV3QobmV3IGZ0KDI0NDQyMzksNDMyMTksaHQuVEFJKSwxOSksbmV3IFd0KG5ldyBmdCgyNDQ0Nzg2LDQzMjIwLGh0LlRBSSksMjApLG5ldyBXdChuZXcgZnQoMjQ0NTE1MSw0MzIyMSxodC5UQUkpLDIxKSxuZXcgV3QobmV3IGZ0KDI0NDU1MTYsNDMyMjIsaHQuVEFJKSwyMiksbmV3IFd0KG5ldyBmdCgyNDQ2MjQ3LDQzMjIzLGh0LlRBSSksMjMpLG5ldyBXdChuZXcgZnQoMjQ0NzE2MSw0MzIyNCxodC5UQUkpLDI0KSxuZXcgV3QobmV3IGZ0KDI0NDc4OTIsNDMyMjUsaHQuVEFJKSwyNSksbmV3IFd0KG5ldyBmdCgyNDQ4MjU3LDQzMjI2LGh0LlRBSSksMjYpLG5ldyBXdChuZXcgZnQoMjQ0ODgwNCw0MzIyNyxodC5UQUkpLDI3KSxuZXcgV3QobmV3IGZ0KDI0NDkxNjksNDMyMjgsaHQuVEFJKSwyOCksbmV3IFd0KG5ldyBmdCgyNDQ5NTM0LDQzMjI5LGh0LlRBSSksMjkpLG5ldyBXdChuZXcgZnQoMjQ1MDA4Myw0MzIzMCxodC5UQUkpLDMwKSxuZXcgV3QobmV3IGZ0KDI0NTA2MzAsNDMyMzEsaHQuVEFJKSwzMSksbmV3IFd0KG5ldyBmdCgyNDUxMTc5LDQzMjMyLGh0LlRBSSksMzIpLG5ldyBXdChuZXcgZnQoMjQ1MzczNiw0MzIzMyxodC5UQUkpLDMzKSxuZXcgV3QobmV3IGZ0KDI0NTQ4MzIsNDMyMzQsaHQuVEFJKSwzNCksbmV3IFd0KG5ldyBmdCgyNDU2MTA5LDQzMjM1LGh0LlRBSSksMzUpLG5ldyBXdChuZXcgZnQoMjQ1NzIwNCw0MzIzNixodC5UQUkpLDM2KSxuZXcgV3QobmV3IGZ0KDI0NTc3NTQsNDMyMzcsaHQuVEFJKSwzNyldO0tuPWZ0fSk7dmFyIFkxPXNpKChKYyxaYyk9PnsvKiEgaHR0cHM6Ly9tdGhzLmJlL3B1bnljb2RlIHYxLjQuMCBieSBAbWF0aGlhcyAqLyhmdW5jdGlvbihuKXt2YXIgZT10eXBlb2YgSmM9PSJvYmplY3QiJiZKYyYmIUpjLm5vZGVUeXBlJiZKYyx0PXR5cGVvZiBaYz09Im9iamVjdCImJlpjJiYhWmMubm9kZVR5cGUmJlpjLG89dHlwZW9mIGdsb2JhbD09Im9iamVjdCImJmdsb2JhbDsoby5nbG9iYWw9PT1vfHxvLndpbmRvdz09PW98fG8uc2VsZj09PW8pJiYobj1vKTt2YXIgYSxyPTIxNDc0ODM2NDcsaT0zNixmPTEsZD0yNixjPTM4LHU9NzAwLGw9NzIsaD0xMjgsbT0iLSIsYj0vXnhuLS0vLHA9L1teXHgyMC1ceDdFXS8seT0vW1x4MkVcdTMwMDJcdUZGMEVcdUZGNjFdL2csRT17b3ZlcmZsb3c6Ik92ZXJmbG93OiBpbnB1dCBuZWVkcyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzIiwibm90LWJhc2ljIjoiSWxsZWdhbCBpbnB1dCA+PSAweDgwIChub3QgYSBiYXNpYyBjb2RlIHBvaW50KSIsImludmFsaWQtaW5wdXQiOiJJbnZhbGlkIGlucHV0In0sZz1pLWYsQT1NYXRoLmZsb29yLFQ9U3RyaW5nLmZyb21DaGFyQ29kZSxSO2Z1bmN0aW9uIFMoRCl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoRVtEXSl9ZnVuY3Rpb24gTShELEcpe2Zvcih2YXIgVj1ELmxlbmd0aCxPPVtdO1YtLTspT1tWXT1HKERbVl0pO3JldHVybiBPfWZ1bmN0aW9uIEkoRCxHKXt2YXIgVj1ELnNwbGl0KCJAIiksTz0iIjtWLmxlbmd0aD4xJiYoTz1WWzBdKyJAIixEPVZbMV0pLEQ9RC5yZXBsYWNlKHksIi4iKTt2YXIgWj1ELnNwbGl0KCIuIiksYWU9TShaLEcpLmpvaW4oIi4iKTtyZXR1cm4gTythZX1mdW5jdGlvbiBOKEQpe2Zvcih2YXIgRz1bXSxWPTAsTz1ELmxlbmd0aCxaLGFlO1Y8TzspWj1ELmNoYXJDb2RlQXQoVisrKSxaPj01NTI5NiYmWjw9NTYzMTkmJlY8Tz8oYWU9RC5jaGFyQ29kZUF0KFYrKyksKGFlJjY0NTEyKT09NTYzMjA/Ry5wdXNoKCgoWiYxMDIzKTw8MTApKyhhZSYxMDIzKSs2NTUzNik6KEcucHVzaChaKSxWLS0pKTpHLnB1c2goWik7cmV0dXJuIEd9ZnVuY3Rpb24gUChEKXtyZXR1cm4gTShELGZ1bmN0aW9uKEcpe3ZhciBWPSIiO3JldHVybiBHPjY1NTM1JiYoRy09NjU1MzYsVis9VChHPj4+MTAmMTAyM3w1NTI5NiksRz01NjMyMHxHJjEwMjMpLFYrPVQoRyksVn0pLmpvaW4oIiIpfWZ1bmN0aW9uIEYoRCl7cmV0dXJuIEQtNDg8MTA/RC0yMjpELTY1PDI2P0QtNjU6RC05NzwyNj9ELTk3Oml9ZnVuY3Rpb24gdyhELEcpe3JldHVybiBEKzIyKzc1KihEPDI2KS0oKEchPTApPDw1KX1mdW5jdGlvbiB4KEQsRyxWKXt2YXIgTz0wO2ZvcihEPVY/QShEL3UpOkQ+PjEsRCs9QShEL0cpO0Q+ZypkPj4xO08rPWkpRD1BKEQvZyk7cmV0dXJuIEEoTysoZysxKSpELyhEK2MpKX1mdW5jdGlvbiBDKEQpe3ZhciBHPVtdLFY9RC5sZW5ndGgsTyxaPTAsYWU9aCxjZT1sLGZlLHRlLG1lLHVlLGJlLGhlLFEsVGUsQ2U7Zm9yKGZlPUQubGFzdEluZGV4T2YobSksZmU8MCYmKGZlPTApLHRlPTA7dGU8ZmU7Kyt0ZSlELmNoYXJDb2RlQXQodGUpPj0xMjgmJlMoIm5vdC1iYXNpYyIpLEcucHVzaChELmNoYXJDb2RlQXQodGUpKTtmb3IobWU9ZmU+MD9mZSsxOjA7bWU8Vjspe2Zvcih1ZT1aLGJlPTEsaGU9aTttZT49ViYmUygiaW52YWxpZC1pbnB1dCIpLFE9RihELmNoYXJDb2RlQXQobWUrKykpLChRPj1pfHxRPkEoKHItWikvYmUpKSYmUygib3ZlcmZsb3ciKSxaKz1RKmJlLFRlPWhlPD1jZT9mOmhlPj1jZStkP2Q6aGUtY2UsIShRPFRlKTtoZSs9aSlDZT1pLVRlLGJlPkEoci9DZSkmJlMoIm92ZXJmbG93IiksYmUqPUNlO089Ry5sZW5ndGgrMSxjZT14KFotdWUsTyx1ZT09MCksQShaL08pPnItYWUmJlMoIm92ZXJmbG93IiksYWUrPUEoWi9PKSxaJT1PLEcuc3BsaWNlKForKywwLGFlKX1yZXR1cm4gUChHKX1mdW5jdGlvbiB2KEQpe3ZhciBHLFYsTyxaLGFlLGNlLGZlLHRlLG1lLHVlLGJlLGhlPVtdLFEsVGUsQ2UsV2U7Zm9yKEQ9TihEKSxRPUQubGVuZ3RoLEc9aCxWPTAsYWU9bCxjZT0wO2NlPFE7KytjZSliZT1EW2NlXSxiZTwxMjgmJmhlLnB1c2goVChiZSkpO2ZvcihPPVo9aGUubGVuZ3RoLFomJmhlLnB1c2gobSk7TzxROyl7Zm9yKGZlPXIsY2U9MDtjZTxROysrY2UpYmU9RFtjZV0sYmU+PUcmJmJlPGZlJiYoZmU9YmUpO2ZvcihUZT1PKzEsZmUtRz5BKChyLVYpL1RlKSYmUygib3ZlcmZsb3ciKSxWKz0oZmUtRykqVGUsRz1mZSxjZT0wO2NlPFE7KytjZSlpZihiZT1EW2NlXSxiZTxHJiYrK1Y+ciYmUygib3ZlcmZsb3ciKSxiZT09Ryl7Zm9yKHRlPVYsbWU9aTt1ZT1tZTw9YWU/ZjptZT49YWUrZD9kOm1lLWFlLCEodGU8dWUpO21lKz1pKVdlPXRlLXVlLENlPWktdWUsaGUucHVzaChUKHcodWUrV2UlQ2UsMCkpKSx0ZT1BKFdlL0NlKTtoZS5wdXNoKFQodyh0ZSwwKSkpLGFlPXgoVixUZSxPPT1aKSxWPTAsKytPfSsrViwrK0d9cmV0dXJuIGhlLmpvaW4oIiIpfWZ1bmN0aW9uIGooRCl7cmV0dXJuIEkoRCxmdW5jdGlvbihHKXtyZXR1cm4gYi50ZXN0KEcpP0MoRy5zbGljZSg0KS50b0xvd2VyQ2FzZSgpKTpHfSl9ZnVuY3Rpb24geihEKXtyZXR1cm4gSShELGZ1bmN0aW9uKEcpe3JldHVybiBwLnRlc3QoRyk/InhuLS0iK3YoRyk6R30pfWlmKGE9e3ZlcnNpb246IjEuMy4yIix1Y3MyOntkZWNvZGU6TixlbmNvZGU6UH0sZGVjb2RlOkMsZW5jb2RlOnYsdG9BU0NJSTp6LHRvVW5pY29kZTpqfSx0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZ0eXBlb2YgZGVmaW5lLmFtZD09Im9iamVjdCImJmRlZmluZS5hbWQpZGVmaW5lKCJwdW55Y29kZSIsZnVuY3Rpb24oKXtyZXR1cm4gYX0pO2Vsc2UgaWYoZSYmdClpZihaYy5leHBvcnRzPT1lKXQuZXhwb3J0cz1hO2Vsc2UgZm9yKFIgaW4gYSlhLmhhc093blByb3BlcnR5KFIpJiYoZVtSXT1hW1JdKTtlbHNlIG4ucHVueWNvZGU9YX0pKEpjKX0pO3ZhciBaMT1zaSgoSjEsbWwpPT57LyohCiAqIFVSSS5qcyAtIE11dGF0aW5nIFVSTHMKICogSVB2NiBTdXBwb3J0CiAqCiAqIFZlcnNpb246IDEuMTkuMTEKICoKICogQXV0aG9yOiBSb2RuZXkgUmVobQogKiBXZWI6IGh0dHA6Ly9tZWRpYWxpemUuZ2l0aHViLmlvL1VSSS5qcy8KICoKICogTGljZW5zZWQgdW5kZXIKICogICBNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlCiAqCiAqLyhmdW5jdGlvbihuLGUpeyJ1c2Ugc3RyaWN0Ijt0eXBlb2YgbWw9PSJvYmplY3QiJiZtbC5leHBvcnRzP21sLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOm4uSVB2Nj1lKG4pfSkoSjEsZnVuY3Rpb24obil7InVzZSBzdHJpY3QiO3ZhciBlPW4mJm4uSVB2NjtmdW5jdGlvbiB0KGEpe3ZhciByPWEudG9Mb3dlckNhc2UoKSxpPXIuc3BsaXQoIjoiKSxmPWkubGVuZ3RoLGQ9ODtpWzBdPT09IiImJmlbMV09PT0iIiYmaVsyXT09PSIiPyhpLnNoaWZ0KCksaS5zaGlmdCgpKTppWzBdPT09IiImJmlbMV09PT0iIj9pLnNoaWZ0KCk6aVtmLTFdPT09IiImJmlbZi0yXT09PSIiJiZpLnBvcCgpLGY9aS5sZW5ndGgsaVtmLTFdLmluZGV4T2YoIi4iKSE9PS0xJiYoZD03KTt2YXIgYztmb3IoYz0wO2M8ZiYmaVtjXSE9PSIiO2MrKyk7aWYoYzxkKWZvcihpLnNwbGljZShjLDEsIjAwMDAiKTtpLmxlbmd0aDxkOylpLnNwbGljZShjLDAsIjAwMDAiKTtmb3IodmFyIHUsbD0wO2w8ZDtsKyspe3U9aVtsXS5zcGxpdCgiIik7Zm9yKHZhciBoPTA7aDwzJiYodVswXT09PSIwIiYmdS5sZW5ndGg+MSk7aCsrKXUuc3BsaWNlKDAsMSk7aVtsXT11LmpvaW4oIiIpfXZhciBtPS0xLGI9MCxwPTAseT0tMSxFPSExO2ZvcihsPTA7bDxkO2wrKylFP2lbbF09PT0iMCI/cCs9MTooRT0hMSxwPmImJihtPXksYj1wKSk6aVtsXT09PSIwIiYmKEU9ITAseT1sLHA9MSk7cD5iJiYobT15LGI9cCksYj4xJiZpLnNwbGljZShtLGIsIiIpLGY9aS5sZW5ndGg7dmFyIGc9IiI7Zm9yKGlbMF09PT0iIiYmKGc9IjoiKSxsPTA7bDxmJiYoZys9aVtsXSxsIT09Zi0xKTtsKyspZys9IjoiO3JldHVybiBpW2YtMV09PT0iIiYmKGcrPSI6IiksZ31mdW5jdGlvbiBvKCl7cmV0dXJuIG4uSVB2Nj09PXRoaXMmJihuLklQdjY9ZSksdGhpc31yZXR1cm57YmVzdDp0LG5vQ29uZmxpY3Q6b319KX0pO3ZhciAkMT1zaSgoUTEsYmwpPT57LyohCiAqIFVSSS5qcyAtIE11dGF0aW5nIFVSTHMKICogU2Vjb25kIExldmVsIERvbWFpbiAoU0xEKSBTdXBwb3J0CiAqCiAqIFZlcnNpb246IDEuMTkuMTEKICoKICogQXV0aG9yOiBSb2RuZXkgUmVobQogKiBXZWI6IGh0dHA6Ly9tZWRpYWxpemUuZ2l0aHViLmlvL1VSSS5qcy8KICoKICogTGljZW5zZWQgdW5kZXIKICogICBNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlCiAqCiAqLyhmdW5jdGlvbihuLGUpeyJ1c2Ugc3RyaWN0Ijt0eXBlb2YgYmw9PSJvYmplY3QiJiZibC5leHBvcnRzP2JsLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOm4uU2Vjb25kTGV2ZWxEb21haW5zPWUobil9KShRMSxmdW5jdGlvbihuKXsidXNlIHN0cmljdCI7dmFyIGU9biYmbi5TZWNvbmRMZXZlbERvbWFpbnMsdD17bGlzdDp7YWM6IiBjb20gZ292IG1pbCBuZXQgb3JnICIsYWU6IiBhYyBjbyBnb3YgbWlsIG5hbWUgbmV0IG9yZyBwcm8gc2NoICIsYWY6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsYWw6IiBjb20gZWR1IGdvdiBtaWwgbmV0IG9yZyAiLGFvOiIgY28gZWQgZ3YgaXQgb2cgcGIgIixhcjoiIGNvbSBlZHUgZ29iIGdvdiBpbnQgbWlsIG5ldCBvcmcgdHVyICIsYXQ6IiBhYyBjbyBndiBvciAiLGF1OiIgYXNuIGNvbSBjc2lybyBlZHUgZ292IGlkIG5ldCBvcmcgIixiYToiIGNvIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnIHJzIHVuYmkgdW5tbyB1bnNhIHVudHogdW56ZSAiLGJiOiIgYml6IGNvIGNvbSBlZHUgZ292IGluZm8gbmV0IG9yZyBzdG9yZSB0diAiLGJoOiIgYml6IGNjIGNvbSBlZHUgZ292IGluZm8gbmV0IG9yZyAiLGJuOiIgY29tIGVkdSBnb3YgbmV0IG9yZyAiLGJvOiIgY29tIGVkdSBnb2IgZ292IGludCBtaWwgbmV0IG9yZyB0diAiLGJyOiIgYWRtIGFkdiBhZ3IgYW0gYXJxIGFydCBhdG8gYiBiaW8gYmxvZyBibWQgY2ltIGNuZyBjbnQgY29tIGNvb3AgZWNuIGVkdSBlbmcgZXNwIGV0YyBldGkgZmFyIGZsb2cgZm0gZm5kIGZvdCBmc3QgZzEyIGdnZiBnb3YgaW1iIGluZCBpbmYgam9yIGp1cyBsZWwgbWF0IG1lZCBtaWwgbXVzIG5ldCBub20gbm90IG50ciBvZG8gb3JnIHBwZyBwcm8gcHNjIHBzaSBxc2wgcmVjIHNsZyBzcnYgdG1wIHRyZCB0dXIgdHYgdmV0IHZsb2cgd2lraSB6bGcgIixiczoiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixiejoiIGR1IGV0IG9tIG92IHJnICIsY2E6IiBhYiBiYyBtYiBuYiBuZiBubCBucyBudCBudSBvbiBwZSBxYyBzayB5ayAiLGNrOiIgYml6IGNvIGVkdSBnZW4gZ292IGluZm8gbmV0IG9yZyAiLGNuOiIgYWMgYWggYmogY29tIGNxIGVkdSBmaiBnZCBnb3YgZ3MgZ3ggZ3ogaGEgaGIgaGUgaGkgaGwgaG4gamwganMganggbG4gbWlsIG5ldCBubSBueCBvcmcgcWggc2Mgc2Qgc2ggc24gc3ggdGogdHcgeGogeHogeW4gemogIixjbzoiIGNvbSBlZHUgZ292IG1pbCBuZXQgbm9tIG9yZyAiLGNyOiIgYWMgYyBjbyBlZCBmaSBnbyBvciBzYSAiLGN5OiIgYWMgYml6IGNvbSBla2xvZ2VzIGdvdiBsdGQgbmFtZSBuZXQgb3JnIHBhcmxpYW1lbnQgcHJlc3MgcHJvIHRtICIsZG86IiBhcnQgY29tIGVkdSBnb2IgZ292IG1pbCBuZXQgb3JnIHNsZCB3ZWIgIixkejoiIGFydCBhc3NvIGNvbSBlZHUgZ292IG5ldCBvcmcgcG9sICIsZWM6IiBjb20gZWR1IGZpbiBnb3YgaW5mbyBtZWQgbWlsIG5ldCBvcmcgcHJvICIsZWc6IiBjb20gZWR1IGV1biBnb3YgbWlsIG5hbWUgbmV0IG9yZyBzY2kgIixlcjoiIGNvbSBlZHUgZ292IGluZCBtaWwgbmV0IG9yZyByb2NoZXN0IHcgIixlczoiIGNvbSBlZHUgZ29iIG5vbSBvcmcgIixldDoiIGJpeiBjb20gZWR1IGdvdiBpbmZvIG5hbWUgbmV0IG9yZyAiLGZqOiIgYWMgYml6IGNvbSBpbmZvIG1pbCBuYW1lIG5ldCBvcmcgcHJvICIsZms6IiBhYyBjbyBnb3YgbmV0IG5vbSBvcmcgIixmcjoiIGFzc28gY29tIGYgZ291diBub20gcHJkIHByZXNzZSB0bSAiLGdnOiIgY28gbmV0IG9yZyAiLGdoOiIgY29tIGVkdSBnb3YgbWlsIG9yZyAiLGduOiIgYWMgY29tIGdvdiBuZXQgb3JnICIsZ3I6IiBjb20gZWR1IGdvdiBtaWwgbmV0IG9yZyAiLGd0OiIgY29tIGVkdSBnb2IgaW5kIG1pbCBuZXQgb3JnICIsZ3U6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsaGs6IiBjb20gZWR1IGdvdiBpZHYgbmV0IG9yZyAiLGh1OiIgMjAwMCBhZ3JhciBib2x0IGNhc2lubyBjaXR5IGNvIGVyb3RpY2EgZXJvdGlrYSBmaWxtIGZvcnVtIGdhbWVzIGhvdGVsIGluZm8gaW5nYXRsYW4gam9nYXN6IGtvbnl2ZWxvIGxha2FzIG1lZGlhIG5ld3Mgb3JnIHByaXYgcmVrbGFtIHNleCBzaG9wIHNwb3J0IHN1bGkgc3pleCB0bSB0b3pzZGUgdXRhemFzIHZpZGVvICIsaWQ6IiBhYyBjbyBnbyBtaWwgbmV0IG9yIHNjaCB3ZWIgIixpbDoiIGFjIGNvIGdvdiBpZGYgazEyIG11bmkgbmV0IG9yZyAiLGluOiIgYWMgY28gZWR1IGVybmV0IGZpcm0gZ2VuIGdvdiBpIGluZCBtaWwgbmV0IG5pYyBvcmcgcmVzICIsaXE6IiBjb20gZWR1IGdvdiBpIG1pbCBuZXQgb3JnICIsaXI6IiBhYyBjbyBkbnNzZWMgZ292IGkgaWQgbmV0IG9yZyBzY2ggIixpdDoiIGVkdSBnb3YgIixqZToiIGNvIG5ldCBvcmcgIixqbzoiIGNvbSBlZHUgZ292IG1pbCBuYW1lIG5ldCBvcmcgc2NoICIsanA6IiBhYyBhZCBjbyBlZCBnbyBnciBsZyBuZSBvciAiLGtlOiIgYWMgY28gZ28gaW5mbyBtZSBtb2JpIG5lIG9yIHNjICIsa2g6IiBjb20gZWR1IGdvdiBtaWwgbmV0IG9yZyBwZXIgIixraToiIGJpeiBjb20gZGUgZWR1IGdvdiBpbmZvIG1vYiBuZXQgb3JnIHRlbCAiLGttOiIgYXNzbyBjb20gY29vcCBlZHUgZ291diBrIG1lZGVjaW4gbWlsIG5vbSBub3RhaXJlcyBwaGFybWFjaWVucyBwcmVzc2UgdG0gdmV0ZXJpbmFpcmUgIixrbjoiIGVkdSBnb3YgbmV0IG9yZyAiLGtyOiIgYWMgYnVzYW4gY2h1bmdidWsgY2h1bmduYW0gY28gZGFlZ3UgZGFlamVvbiBlcyBnYW5nd29uIGdvIGd3YW5nanUgZ3llb25nYnVrIGd5ZW9uZ2dpIGd5ZW9uZ25hbSBocyBpbmNoZW9uIGplanUgamVvbmJ1ayBqZW9ubmFtIGsga2cgbWlsIG1zIG5lIG9yIHBlIHJlIHNjIHNlb3VsIHVsc2FuICIsa3c6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsa3k6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsa3o6IiBjb20gZWR1IGdvdiBtaWwgbmV0IG9yZyAiLGxiOiIgY29tIGVkdSBnb3YgbmV0IG9yZyAiLGxrOiIgYXNzbiBjb20gZWR1IGdvdiBncnAgaG90ZWwgaW50IGx0ZCBuZXQgbmdvIG9yZyBzY2ggc29jIHdlYiAiLGxyOiIgY29tIGVkdSBnb3YgbmV0IG9yZyAiLGx2OiIgYXNuIGNvbSBjb25mIGVkdSBnb3YgaWQgbWlsIG5ldCBvcmcgIixseToiIGNvbSBlZHUgZ292IGlkIG1lZCBuZXQgb3JnIHBsYyBzY2ggIixtYToiIGFjIGNvIGdvdiBtIG5ldCBvcmcgcHJlc3MgIixtYzoiIGFzc28gdG0gIixtZToiIGFjIGNvIGVkdSBnb3YgaXRzIG5ldCBvcmcgcHJpdiAiLG1nOiIgY29tIGVkdSBnb3YgbWlsIG5vbSBvcmcgcHJkIHRtICIsbWs6IiBjb20gZWR1IGdvdiBpbmYgbmFtZSBuZXQgb3JnIHBybyAiLG1sOiIgY29tIGVkdSBnb3YgbmV0IG9yZyBwcmVzc2UgIixtbjoiIGVkdSBnb3Ygb3JnICIsbW86IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsbXQ6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsbXY6IiBhZXJvIGJpeiBjb20gY29vcCBlZHUgZ292IGluZm8gaW50IG1pbCBtdXNldW0gbmFtZSBuZXQgb3JnIHBybyAiLG13OiIgYWMgY28gY29tIGNvb3AgZWR1IGdvdiBpbnQgbXVzZXVtIG5ldCBvcmcgIixteDoiIGNvbSBlZHUgZ29iIG5ldCBvcmcgIixteToiIGNvbSBlZHUgZ292IG1pbCBuYW1lIG5ldCBvcmcgc2NoICIsbmY6IiBhcnRzIGNvbSBmaXJtIGluZm8gbmV0IG90aGVyIHBlciByZWMgc3RvcmUgd2ViICIsbmc6IiBiaXogY29tIGVkdSBnb3YgbWlsIG1vYmkgbmFtZSBuZXQgb3JnIHNjaCAiLG5pOiIgYWMgY28gY29tIGVkdSBnb2IgbWlsIG5ldCBub20gb3JnICIsbnA6IiBjb20gZWR1IGdvdiBtaWwgbmV0IG9yZyAiLG5yOiIgYml6IGNvbSBlZHUgZ292IGluZm8gbmV0IG9yZyAiLG9tOiIgYWMgYml6IGNvIGNvbSBlZHUgZ292IG1lZCBtaWwgbXVzZXVtIG5ldCBvcmcgcHJvIHNjaCAiLHBlOiIgY29tIGVkdSBnb2IgbWlsIG5ldCBub20gb3JnIHNsZCAiLHBoOiIgY29tIGVkdSBnb3YgaSBtaWwgbmV0IG5nbyBvcmcgIixwazoiIGJpeiBjb20gZWR1IGZhbSBnb2IgZ29rIGdvbiBnb3AgZ29zIGdvdiBuZXQgb3JnIHdlYiAiLHBsOiIgYXJ0IGJpYWx5c3RvayBiaXogY29tIGVkdSBnZGEgZ2RhbnNrIGdvcnpvdyBnb3YgaW5mbyBrYXRvd2ljZSBrcmFrb3cgbG9keiBsdWJsaW4gbWlsIG5ldCBuZ28gb2xzenR5biBvcmcgcG96bmFuIHB3ciByYWRvbSBzbHVwc2sgc3pjemVjaW4gdG9ydW4gd2Fyc3phd2Egd2F3IHdyb2Mgd3JvY2xhdyB6Z29yYSAiLHByOiIgYWMgYml6IGNvbSBlZHUgZXN0IGdvdiBpbmZvIGlzbGEgbmFtZSBuZXQgb3JnIHBybyBwcm9mICIscHM6IiBjb20gZWR1IGdvdiBuZXQgb3JnIHBsbyBzZWMgIixwdzoiIGJlbGF1IGNvIGVkIGdvIG5lIG9yICIscm86IiBhcnRzIGNvbSBmaXJtIGluZm8gbm9tIG50IG9yZyByZWMgc3RvcmUgdG0gd3d3ICIscnM6IiBhYyBjbyBlZHUgZ292IGluIG9yZyAiLHNiOiIgY29tIGVkdSBnb3YgbmV0IG9yZyAiLHNjOiIgY29tIGVkdSBnb3YgbmV0IG9yZyAiLHNoOiIgY28gY29tIGVkdSBnb3YgbmV0IG5vbSBvcmcgIixzbDoiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixzdDoiIGNvIGNvbSBjb25zdWxhZG8gZWR1IGVtYmFpeGFkYSBnb3YgbWlsIG5ldCBvcmcgcHJpbmNpcGUgc2FvdG9tZSBzdG9yZSAiLHN2OiIgY29tIGVkdSBnb2Igb3JnIHJlZCAiLHN6OiIgYWMgY28gb3JnICIsdHI6IiBhdiBiYnMgYmVsIGJpeiBjb20gZHIgZWR1IGdlbiBnb3YgaW5mbyBrMTIgbmFtZSBuZXQgb3JnIHBvbCB0ZWwgdHNrIHR2IHdlYiAiLHR0OiIgYWVybyBiaXogY2F0IGNvIGNvbSBjb29wIGVkdSBnb3YgaW5mbyBpbnQgam9icyBtaWwgbW9iaSBtdXNldW0gbmFtZSBuZXQgb3JnIHBybyB0ZWwgdHJhdmVsICIsdHc6IiBjbHViIGNvbSBlYml6IGVkdSBnYW1lIGdvdiBpZHYgbWlsIG5ldCBvcmcgIixtdToiIGFjIGNvIGNvbSBnb3YgbmV0IG9yIG9yZyAiLG16OiIgYWMgY28gZWR1IGdvdiBvcmcgIixuYToiIGNvIGNvbSAiLG56OiIgYWMgY28gY3JpIGdlZWsgZ2VuIGdvdnQgaGVhbHRoIGl3aSBtYW9yaSBtaWwgbmV0IG9yZyBwYXJsaWFtZW50IHNjaG9vbCAiLHBhOiIgYWJvIGFjIGNvbSBlZHUgZ29iIGluZyBtZWQgbmV0IG5vbSBvcmcgc2xkICIscHQ6IiBjb20gZWR1IGdvdiBpbnQgbmV0IG5vbWUgb3JnIHB1YmwgIixweToiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIscWE6IiBjb20gZWR1IGdvdiBtaWwgbmV0IG9yZyAiLHJlOiIgYXNzbyBjb20gbm9tICIscnU6IiBhYyBhZHlnZXlhIGFsdGFpIGFtdXIgYXJraGFuZ2Vsc2sgYXN0cmFraGFuIGJhc2hraXJpYSBiZWxnb3JvZCBiaXIgYnJ5YW5zayBidXJ5YXRpYSBjYmcgY2hlbCBjaGVseWFiaW5zayBjaGl0YSBjaHVrb3RrYSBjaHV2YXNoaWEgY29tIGRhZ2VzdGFuIGUtYnVyZyBlZHUgZ292IGdyb3pueSBpbnQgaXJrdXRzayBpdmFub3ZvIGl6aGV2c2sgamFyIGpvc2hrYXItb2xhIGthbG15a2lhIGthbHVnYSBrYW1jaGF0a2Ega2FyZWxpYSBrYXphbiBrY2hyIGtlbWVyb3ZvIGtoYWJhcm92c2sga2hha2Fzc2lhIGtodiBraXJvdiBrb2VuaWcga29taSBrb3N0cm9tYSBrcmFub3lhcnNrIGt1YmFuIGt1cmdhbiBrdXJzayBsaXBldHNrIG1hZ2FkYW4gbWFyaSBtYXJpLWVsIG1hcmluZSBtaWwgbW9yZG92aWEgbW9zcmVnIG1zayBtdXJtYW5zayBuYWxjaGlrIG5ldCBubm92IG5vdiBub3Zvc2liaXJzayBuc2sgb21zayBvcmVuYnVyZyBvcmcgb3J5b2wgcGVuemEgcGVybSBwcCBwc2tvdiBwdHogcm5kIHJ5YXphbiBzYWtoYWxpbiBzYW1hcmEgc2FyYXRvdiBzaW1iaXJzayBzbW9sZW5zayBzcGIgc3RhdnJvcG9sIHN0diBzdXJndXQgdGFtYm92IHRhdGFyc3RhbiB0b20gdG9tc2sgdHNhcml0c3luIHRzayB0dWxhIHR1dmEgdHZlciB0eXVtZW4gdWRtIHVkbXVydGlhIHVsYW4tdWRlIHZsYWRpa2F2a2F6IHZsYWRpbWlyIHZsYWRpdm9zdG9rIHZvbGdvZ3JhZCB2b2xvZ2RhIHZvcm9uZXpoIHZybiB2eWF0a2EgeWFrdXRpYSB5YW1hbCB5ZWthdGVyaW5idXJnIHl1emhuby1zYWtoYWxpbnNrICIscnc6IiBhYyBjbyBjb20gZWR1IGdvdXYgZ292IGludCBtaWwgbmV0ICIsc2E6IiBjb20gZWR1IGdvdiBtZWQgbmV0IG9yZyBwdWIgc2NoICIsc2Q6IiBjb20gZWR1IGdvdiBpbmZvIG1lZCBuZXQgb3JnIHR2ICIsc2U6IiBhIGFjIGIgYmQgYyBkIGUgZiBnIGggaSBrIGwgbSBuIG8gb3JnIHAgcGFydGkgcHAgcHJlc3MgciBzIHQgdG0gdSB3IHggeSB6ICIsc2c6IiBjb20gZWR1IGdvdiBpZG4gbmV0IG9yZyBwZXIgIixzbjoiIGFydCBjb20gZWR1IGdvdXYgb3JnIHBlcnNvIHVuaXYgIixzeToiIGNvbSBlZHUgZ292IG1pbCBuZXQgbmV3cyBvcmcgIix0aDoiIGFjIGNvIGdvIGluIG1pIG5ldCBvciAiLHRqOiIgYWMgYml6IGNvIGNvbSBlZHUgZ28gZ292IGluZm8gaW50IG1pbCBuYW1lIG5ldCBuaWMgb3JnIHRlc3Qgd2ViICIsdG46IiBhZ3JpbmV0IGNvbSBkZWZlbnNlIGVkdW5ldCBlbnMgZmluIGdvdiBpbmQgaW5mbyBpbnRsIG1pbmNvbSBuYXQgbmV0IG9yZyBwZXJzbyBybnJ0IHJucyBybnUgdG91cmlzbSAiLHR6OiIgYWMgY28gZ28gbmUgb3IgIix1YToiIGJpeiBjaGVya2Fzc3kgY2hlcm5pZ292IGNoZXJub3Z0c3kgY2sgY24gY28gY29tIGNyaW1lYSBjdiBkbiBkbmVwcm9wZXRyb3ZzayBkb25ldHNrIGRwIGVkdSBnb3YgaWYgaW4gaXZhbm8tZnJhbmtpdnNrIGtoIGtoYXJrb3Yga2hlcnNvbiBraG1lbG5pdHNraXkga2lldiBraXJvdm9ncmFkIGttIGtyIGtzIGt2IGxnIGx1Z2Fuc2sgbHV0c2sgbHZpdiBtZSBtayBuZXQgbmlrb2xhZXYgb2Qgb2Rlc3NhIG9yZyBwbCBwb2x0YXZhIHBwIHJvdm5vIHJ2IHNlYmFzdG9wb2wgc3VteSB0ZSB0ZXJub3BpbCB1emhnb3JvZCB2aW5uaWNhIHZuIHphcG9yaXpoemhlIHpoaXRvbWlyIHpwIHp0ICIsdWc6IiBhYyBjbyBnbyBuZSBvciBvcmcgc2MgIix1azoiIGFjIGJsIGJyaXRpc2gtbGlicmFyeSBjbyBjeW0gZ292IGdvdnQgaWNuZXQgamV0IGxlYSBsdGQgbWUgbWlsIG1vZCBuYXRpb25hbC1saWJyYXJ5LXNjb3RsYW5kIG5lbCBuZXQgbmhzIG5pYyBubHMgb3JnIG9yZ24gcGFybGlhbWVudCBwbGMgcG9saWNlIHNjaCBzY290IHNvYyAiLHVzOiIgZG5pIGZlZCBpc2Ega2lkcyBuc24gIix1eToiIGNvbSBlZHUgZ3ViIG1pbCBuZXQgb3JnICIsdmU6IiBjbyBjb20gZWR1IGdvYiBpbmZvIG1pbCBuZXQgb3JnIHdlYiAiLHZpOiIgY28gY29tIGsxMiBuZXQgb3JnICIsdm46IiBhYyBiaXogY29tIGVkdSBnb3YgaGVhbHRoIGluZm8gaW50IG5hbWUgbmV0IG9yZyBwcm8gIix5ZToiIGNvIGNvbSBnb3YgbHRkIG1lIG5ldCBvcmcgcGxjICIseXU6IiBhYyBjbyBlZHUgZ292IG9yZyAiLHphOiIgYWMgYWdyaWMgYWx0IGJvdXJzZSBjaXR5IGNvIGN5YmVybmV0IGRiIGVkdSBnb3YgZ3JvbmRhciBpYWNjZXNzIGltdCBpbmNhIGxhbmRlc2lnbiBsYXcgbWlsIG5ldCBuZ28gbmlzIG5vbSBvbGl2ZXR0aSBvcmcgcGl4IHNjaG9vbCB0bSB3ZWIgIix6bToiIGFjIGNvIGNvbSBlZHUgZ292IG5ldCBvcmcgc2NoICIsY29tOiJhciBiciBjbiBkZSBldSBnYiBnciBodSBqcG4ga3Igbm8gcWMgcnUgc2Egc2UgdWsgdXMgdXkgemEgIixuZXQ6ImdiIGpwIHNlIHVrICIsb3JnOiJhZSIsZGU6ImNvbSAifSxoYXM6ZnVuY3Rpb24obyl7dmFyIGE9by5sYXN0SW5kZXhPZigiLiIpO2lmKGE8PTB8fGE+PW8ubGVuZ3RoLTEpcmV0dXJuITE7dmFyIHI9by5sYXN0SW5kZXhPZigiLiIsYS0xKTtpZihyPD0wfHxyPj1hLTEpcmV0dXJuITE7dmFyIGk9dC5saXN0W28uc2xpY2UoYSsxKV07cmV0dXJuIGk/aS5pbmRleE9mKCIgIitvLnNsaWNlKHIrMSxhKSsiICIpPj0wOiExfSxpczpmdW5jdGlvbihvKXt2YXIgYT1vLmxhc3RJbmRleE9mKCIuIik7aWYoYTw9MHx8YT49by5sZW5ndGgtMSlyZXR1cm4hMTt2YXIgcj1vLmxhc3RJbmRleE9mKCIuIixhLTEpO2lmKHI+PTApcmV0dXJuITE7dmFyIGk9dC5saXN0W28uc2xpY2UoYSsxKV07cmV0dXJuIGk/aS5pbmRleE9mKCIgIitvLnNsaWNlKDAsYSkrIiAiKT49MDohMX0sZ2V0OmZ1bmN0aW9uKG8pe3ZhciBhPW8ubGFzdEluZGV4T2YoIi4iKTtpZihhPD0wfHxhPj1vLmxlbmd0aC0xKXJldHVybiBudWxsO3ZhciByPW8ubGFzdEluZGV4T2YoIi4iLGEtMSk7aWYocjw9MHx8cj49YS0xKXJldHVybiBudWxsO3ZhciBpPXQubGlzdFtvLnNsaWNlKGErMSldO3JldHVybiFpfHxpLmluZGV4T2YoIiAiK28uc2xpY2UocisxLGEpKyIgIik8MD9udWxsOm8uc2xpY2UocisxKX0sbm9Db25mbGljdDpmdW5jdGlvbigpe3JldHVybiBuLlNlY29uZExldmVsRG9tYWlucz09PXRoaXMmJihuLlNlY29uZExldmVsRG9tYWlucz1lKSx0aGlzfX07cmV0dXJuIHR9KX0pO3ZhciBkaT1zaSgoZUEscGwpPT57LyohCiAqIFVSSS5qcyAtIE11dGF0aW5nIFVSTHMKICoKICogVmVyc2lvbjogMS4xOS4xMQogKgogKiBBdXRob3I6IFJvZG5leSBSZWhtCiAqIFdlYjogaHR0cDovL21lZGlhbGl6ZS5naXRodWIuaW8vVVJJLmpzLwogKgogKiBMaWNlbnNlZCB1bmRlcgogKiAgIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UKICoKICovKGZ1bmN0aW9uKG4sZSl7InVzZSBzdHJpY3QiO3R5cGVvZiBwbD09Im9iamVjdCImJnBsLmV4cG9ydHM/cGwuZXhwb3J0cz1lKFkxKCksWjEoKSwkMSgpKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShbIi4vcHVueWNvZGUiLCIuL0lQdjYiLCIuL1NlY29uZExldmVsRG9tYWlucyJdLGUpOm4uVVJJPWUobi5wdW55Y29kZSxuLklQdjYsbi5TZWNvbmRMZXZlbERvbWFpbnMsbil9KShlQSxmdW5jdGlvbihuLGUsdCxvKXsidXNlIHN0cmljdCI7dmFyIGE9byYmby5VUkk7ZnVuY3Rpb24gcih3LHgpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+PTEsdj1hcmd1bWVudHMubGVuZ3RoPj0yO2lmKCEodGhpcyBpbnN0YW5jZW9mIHIpKXJldHVybiBDP3Y/bmV3IHIodyx4KTpuZXcgcih3KTpuZXcgcjtpZih3PT09dm9pZCAwKXtpZihDKXRocm93IG5ldyBUeXBlRXJyb3IoInVuZGVmaW5lZCBpcyBub3QgYSB2YWxpZCBhcmd1bWVudCBmb3IgVVJJIik7dHlwZW9mIGxvY2F0aW9uPCJ1Ij93PWxvY2F0aW9uLmhyZWYrIiI6dz0iIn1pZih3PT09bnVsbCYmQyl0aHJvdyBuZXcgVHlwZUVycm9yKCJudWxsIGlzIG5vdCBhIHZhbGlkIGFyZ3VtZW50IGZvciBVUkkiKTtyZXR1cm4gdGhpcy5ocmVmKHcpLHghPT12b2lkIDA/dGhpcy5hYnNvbHV0ZVRvKHgpOnRoaXN9ZnVuY3Rpb24gaSh3KXtyZXR1cm4vXlswLTldKyQvLnRlc3Qodyl9ci52ZXJzaW9uPSIxLjE5LjExIjt2YXIgZj1yLnByb3RvdHlwZSxkPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gYyh3KXtyZXR1cm4gdy5yZXBsYWNlKC8oWy4qKz9ePSE6JHt9KCl8W1xdXC9cXF0pL2csIlxcJDEiKX1mdW5jdGlvbiB1KHcpe3JldHVybiB3PT09dm9pZCAwPyJVbmRlZmluZWQiOlN0cmluZyhPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodykpLnNsaWNlKDgsLTEpfWZ1bmN0aW9uIGwodyl7cmV0dXJuIHUodyk9PT0iQXJyYXkifWZ1bmN0aW9uIGgodyx4KXt2YXIgQz17fSx2LGo7aWYodSh4KT09PSJSZWdFeHAiKUM9bnVsbDtlbHNlIGlmKGwoeCkpZm9yKHY9MCxqPXgubGVuZ3RoO3Y8ajt2KyspQ1t4W3ZdXT0hMDtlbHNlIENbeF09ITA7Zm9yKHY9MCxqPXcubGVuZ3RoO3Y8ajt2Kyspe3ZhciB6PUMmJkNbd1t2XV0hPT12b2lkIDB8fCFDJiZ4LnRlc3Qod1t2XSk7eiYmKHcuc3BsaWNlKHYsMSksai0tLHYtLSl9cmV0dXJuIHd9ZnVuY3Rpb24gbSh3LHgpe3ZhciBDLHY7aWYobCh4KSl7Zm9yKEM9MCx2PXgubGVuZ3RoO0M8djtDKyspaWYoIW0odyx4W0NdKSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgaj11KHgpO2ZvcihDPTAsdj13Lmxlbmd0aDtDPHY7QysrKWlmKGo9PT0iUmVnRXhwIil7aWYodHlwZW9mIHdbQ109PSJzdHJpbmciJiZ3W0NdLm1hdGNoKHgpKXJldHVybiEwfWVsc2UgaWYod1tDXT09PXgpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gYih3LHgpe2lmKCFsKHcpfHwhbCh4KXx8dy5sZW5ndGghPT14Lmxlbmd0aClyZXR1cm4hMTt3LnNvcnQoKSx4LnNvcnQoKTtmb3IodmFyIEM9MCx2PXcubGVuZ3RoO0M8djtDKyspaWYod1tDXSE9PXhbQ10pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gcCh3KXt2YXIgeD0vXlwvK3xcLyskL2c7cmV0dXJuIHcucmVwbGFjZSh4LCIiKX1yLl9wYXJ0cz1mdW5jdGlvbigpe3JldHVybntwcm90b2NvbDpudWxsLHVzZXJuYW1lOm51bGwscGFzc3dvcmQ6bnVsbCxob3N0bmFtZTpudWxsLHVybjpudWxsLHBvcnQ6bnVsbCxwYXRoOm51bGwscXVlcnk6bnVsbCxmcmFnbWVudDpudWxsLHByZXZlbnRJbnZhbGlkSG9zdG5hbWU6ci5wcmV2ZW50SW52YWxpZEhvc3RuYW1lLGR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVyczpyLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycyxlc2NhcGVRdWVyeVNwYWNlOnIuZXNjYXBlUXVlcnlTcGFjZX19LHIucHJldmVudEludmFsaWRIb3N0bmFtZT0hMSxyLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycz0hMSxyLmVzY2FwZVF1ZXJ5U3BhY2U9ITAsci5wcm90b2NvbF9leHByZXNzaW9uPS9eW2Etel1bYS16MC05ListXSokL2ksci5pZG5fZXhwcmVzc2lvbj0vW15hLXowLTlcLl8tXS9pLHIucHVueWNvZGVfZXhwcmVzc2lvbj0vKHhuLS0pL2ksci5pcDRfZXhwcmVzc2lvbj0vXlxkezEsM31cLlxkezEsM31cLlxkezEsM31cLlxkezEsM30kLyxyLmlwNl9leHByZXNzaW9uPS9eXHMqKCgoWzAtOUEtRmEtZl17MSw0fTopezd9KFswLTlBLUZhLWZdezEsNH18OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezZ9KDpbMC05QS1GYS1mXXsxLDR9fCgoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7NX0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSwyfSl8OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7NH0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSwzfSl8KCg6WzAtOUEtRmEtZl17MSw0fSk/OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezN9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNH0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsMn06KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Mn0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw1fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwzfTooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsxfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDZ9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDR9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpfCg6KCgoOlswLTlBLUZhLWZdezEsNH0pezEsN30pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNX06KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSkpKCUuKyk/XHMqJC8sci5maW5kX3VyaV9leHByZXNzaW9uPS9cYigoPzpbYS16XVtcdy1dKzooPzpcL3sxLDN9fFthLXowLTklXSl8d3d3XGR7MCwzfVsuXXxbYS16MC05LlwtXStbLl1bYS16XXsyLDR9XC8pKD86W15ccygpPD5dK3xcKChbXlxzKCk8Pl0rfChcKFteXHMoKTw+XStcKSkpKlwpKSsoPzpcKChbXlxzKCk8Pl0rfChcKFteXHMoKTw+XStcKSkpKlwpfFteXHNgISgpXFtcXXt9OzonIi4sPD4/wqvCu+KAnOKAneKAmOKAmV0pKS9pZyxyLmZpbmRVcmk9e3N0YXJ0Oi9cYig/OihbYS16XVthLXowLTkuKy1dKjpcL1wvKXx3d3dcLikvZ2ksZW5kOi9bXHNcclxuXXwkLyx0cmltOi9bYCEoKVxbXF17fTs6JyIuLDw+P8KrwrvigJzigJ3igJ7igJjigJldKyQvLHBhcmVuczovKFwoW15cKV0qXCl8XFtbXlxdXSpcXXxce1tefV0qXH18PFtePl0qPikvZ30sci5sZWFkaW5nX3doaXRlc3BhY2VfZXhwcmVzc2lvbj0vXltceDAwLVx4MjBcdTAwYTBcdTE2ODBcdTIwMDAtXHUyMDBhXHUyMDI4XHUyMDI5XHUyMDJmXHUyMDVmXHUzMDAwXHVmZWZmXSsvLHIuYXNjaWlfdGFiX3doaXRlc3BhY2U9L1tcdTAwMDlcdTAwMEFcdTAwMERdKy9nLHIuZGVmYXVsdFBvcnRzPXtodHRwOiI4MCIsaHR0cHM6IjQ0MyIsZnRwOiIyMSIsZ29waGVyOiI3MCIsd3M6IjgwIix3c3M6IjQ0MyJ9LHIuaG9zdFByb3RvY29scz1bImh0dHAiLCJodHRwcyJdLHIuaW52YWxpZF9ob3N0bmFtZV9jaGFyYWN0ZXJzPS9bXmEtekEtWjAtOVwuXC06X10vLHIuZG9tQXR0cmlidXRlcz17YToiaHJlZiIsYmxvY2txdW90ZToiY2l0ZSIsbGluazoiaHJlZiIsYmFzZToiaHJlZiIsc2NyaXB0OiJzcmMiLGZvcm06ImFjdGlvbiIsaW1nOiJzcmMiLGFyZWE6ImhyZWYiLGlmcmFtZToic3JjIixlbWJlZDoic3JjIixzb3VyY2U6InNyYyIsdHJhY2s6InNyYyIsaW5wdXQ6InNyYyIsYXVkaW86InNyYyIsdmlkZW86InNyYyJ9LHIuZ2V0RG9tQXR0cmlidXRlPWZ1bmN0aW9uKHcpe2lmKCEoIXd8fCF3Lm5vZGVOYW1lKSl7dmFyIHg9dy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCEoeD09PSJpbnB1dCImJncudHlwZSE9PSJpbWFnZSIpKXJldHVybiByLmRvbUF0dHJpYnV0ZXNbeF19fTtmdW5jdGlvbiB5KHcpe3JldHVybiBlc2NhcGUodyl9ZnVuY3Rpb24gRSh3KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHcpLnJlcGxhY2UoL1shJygpKl0vZyx5KS5yZXBsYWNlKC9cKi9nLCIlMkEiKX1yLmVuY29kZT1FLHIuZGVjb2RlPWRlY29kZVVSSUNvbXBvbmVudCxyLmlzbzg4NTk9ZnVuY3Rpb24oKXtyLmVuY29kZT1lc2NhcGUsci5kZWNvZGU9dW5lc2NhcGV9LHIudW5pY29kZT1mdW5jdGlvbigpe3IuZW5jb2RlPUUsci5kZWNvZGU9ZGVjb2RlVVJJQ29tcG9uZW50fSxyLmNoYXJhY3RlcnM9e3BhdGhuYW1lOntlbmNvZGU6e2V4cHJlc3Npb246LyUoMjR8MjZ8MkJ8MkN8M0J8M0R8M0F8NDApL2lnLG1hcDp7IiUyNCI6IiQiLCIlMjYiOiImIiwiJTJCIjoiKyIsIiUyQyI6IiwiLCIlM0IiOiI7IiwiJTNEIjoiPSIsIiUzQSI6IjoiLCIlNDAiOiJAIn19LGRlY29kZTp7ZXhwcmVzc2lvbjovW1wvXD8jXS9nLG1hcDp7Ii8iOiIlMkYiLCI/IjoiJTNGIiwiIyI6IiUyMyJ9fX0scmVzZXJ2ZWQ6e2VuY29kZTp7ZXhwcmVzc2lvbjovJSgyMXwyM3wyNHwyNnwyN3wyOHwyOXwyQXwyQnwyQ3wyRnwzQXwzQnwzRHwzRnw0MHw1Qnw1RCkvaWcsbWFwOnsiJTNBIjoiOiIsIiUyRiI6Ii8iLCIlM0YiOiI/IiwiJTIzIjoiIyIsIiU1QiI6IlsiLCIlNUQiOiJdIiwiJTQwIjoiQCIsIiUyMSI6IiEiLCIlMjQiOiIkIiwiJTI2IjoiJiIsIiUyNyI6IiciLCIlMjgiOiIoIiwiJTI5IjoiKSIsIiUyQSI6IioiLCIlMkIiOiIrIiwiJTJDIjoiLCIsIiUzQiI6IjsiLCIlM0QiOiI9In19fSx1cm5wYXRoOntlbmNvZGU6e2V4cHJlc3Npb246LyUoMjF8MjR8Mjd8Mjh8Mjl8MkF8MkJ8MkN8M0J8M0R8NDApL2lnLG1hcDp7IiUyMSI6IiEiLCIlMjQiOiIkIiwiJTI3IjoiJyIsIiUyOCI6IigiLCIlMjkiOiIpIiwiJTJBIjoiKiIsIiUyQiI6IisiLCIlMkMiOiIsIiwiJTNCIjoiOyIsIiUzRCI6Ij0iLCIlNDAiOiJAIn19LGRlY29kZTp7ZXhwcmVzc2lvbjovW1wvXD8jOl0vZyxtYXA6eyIvIjoiJTJGIiwiPyI6IiUzRiIsIiMiOiIlMjMiLCI6IjoiJTNBIn19fX0sci5lbmNvZGVRdWVyeT1mdW5jdGlvbih3LHgpe3ZhciBDPXIuZW5jb2RlKHcrIiIpO3JldHVybiB4PT09dm9pZCAwJiYoeD1yLmVzY2FwZVF1ZXJ5U3BhY2UpLHg/Qy5yZXBsYWNlKC8lMjAvZywiKyIpOkN9LHIuZGVjb2RlUXVlcnk9ZnVuY3Rpb24odyx4KXt3Kz0iIix4PT09dm9pZCAwJiYoeD1yLmVzY2FwZVF1ZXJ5U3BhY2UpO3RyeXtyZXR1cm4gci5kZWNvZGUoeD93LnJlcGxhY2UoL1wrL2csIiUyMCIpOncpfWNhdGNoe3JldHVybiB3fX07dmFyIGc9e2VuY29kZToiZW5jb2RlIixkZWNvZGU6ImRlY29kZSJ9LEEsVD1mdW5jdGlvbih3LHgpe3JldHVybiBmdW5jdGlvbihDKXt0cnl7cmV0dXJuIHJbeF0oQysiIikucmVwbGFjZShyLmNoYXJhY3RlcnNbd11beF0uZXhwcmVzc2lvbixmdW5jdGlvbih2KXtyZXR1cm4gci5jaGFyYWN0ZXJzW3ddW3hdLm1hcFt2XX0pfWNhdGNoe3JldHVybiBDfX19O2ZvcihBIGluIGcpcltBKyJQYXRoU2VnbWVudCJdPVQoInBhdGhuYW1lIixnW0FdKSxyW0ErIlVyblBhdGhTZWdtZW50Il09VCgidXJucGF0aCIsZ1tBXSk7dmFyIFI9ZnVuY3Rpb24odyx4LEMpe3JldHVybiBmdW5jdGlvbih2KXt2YXIgajtDP2o9ZnVuY3Rpb24oVil7cmV0dXJuIHJbeF0ocltDXShWKSl9Omo9clt4XTtmb3IodmFyIHo9KHYrIiIpLnNwbGl0KHcpLEQ9MCxHPXoubGVuZ3RoO0Q8RztEKyspeltEXT1qKHpbRF0pO3JldHVybiB6LmpvaW4odyl9fTtyLmRlY29kZVBhdGg9UigiLyIsImRlY29kZVBhdGhTZWdtZW50Iiksci5kZWNvZGVVcm5QYXRoPVIoIjoiLCJkZWNvZGVVcm5QYXRoU2VnbWVudCIpLHIucmVjb2RlUGF0aD1SKCIvIiwiZW5jb2RlUGF0aFNlZ21lbnQiLCJkZWNvZGUiKSxyLnJlY29kZVVyblBhdGg9UigiOiIsImVuY29kZVVyblBhdGhTZWdtZW50IiwiZGVjb2RlIiksci5lbmNvZGVSZXNlcnZlZD1UKCJyZXNlcnZlZCIsImVuY29kZSIpLHIucGFyc2U9ZnVuY3Rpb24odyx4KXt2YXIgQztyZXR1cm4geHx8KHg9e3ByZXZlbnRJbnZhbGlkSG9zdG5hbWU6ci5wcmV2ZW50SW52YWxpZEhvc3RuYW1lfSksdz13LnJlcGxhY2Uoci5sZWFkaW5nX3doaXRlc3BhY2VfZXhwcmVzc2lvbiwiIiksdz13LnJlcGxhY2Uoci5hc2NpaV90YWJfd2hpdGVzcGFjZSwiIiksQz13LmluZGV4T2YoIiMiKSxDPi0xJiYoeC5mcmFnbWVudD13LnN1YnN0cmluZyhDKzEpfHxudWxsLHc9dy5zdWJzdHJpbmcoMCxDKSksQz13LmluZGV4T2YoIj8iKSxDPi0xJiYoeC5xdWVyeT13LnN1YnN0cmluZyhDKzEpfHxudWxsLHc9dy5zdWJzdHJpbmcoMCxDKSksdz13LnJlcGxhY2UoL14oaHR0cHM/fGZ0cHx3c3M/KT86K1svXFxdKi9pLCIkMTovLyIpLHc9dy5yZXBsYWNlKC9eWy9cXF17Mix9L2ksIi8vIiksdy5zdWJzdHJpbmcoMCwyKT09PSIvLyI/KHgucHJvdG9jb2w9bnVsbCx3PXcuc3Vic3RyaW5nKDIpLHc9ci5wYXJzZUF1dGhvcml0eSh3LHgpKTooQz13LmluZGV4T2YoIjoiKSxDPi0xJiYoeC5wcm90b2NvbD13LnN1YnN0cmluZygwLEMpfHxudWxsLHgucHJvdG9jb2wmJiF4LnByb3RvY29sLm1hdGNoKHIucHJvdG9jb2xfZXhwcmVzc2lvbik/eC5wcm90b2NvbD12b2lkIDA6dy5zdWJzdHJpbmcoQysxLEMrMykucmVwbGFjZSgvXFwvZywiLyIpPT09Ii8vIj8odz13LnN1YnN0cmluZyhDKzMpLHc9ci5wYXJzZUF1dGhvcml0eSh3LHgpKToodz13LnN1YnN0cmluZyhDKzEpLHgudXJuPSEwKSkpLHgucGF0aD13LHh9LHIucGFyc2VIb3N0PWZ1bmN0aW9uKHcseCl7d3x8KHc9IiIpLHc9dy5yZXBsYWNlKC9cXC9nLCIvIik7dmFyIEM9dy5pbmRleE9mKCIvIiksdixqO2lmKEM9PT0tMSYmKEM9dy5sZW5ndGgpLHcuY2hhckF0KDApPT09IlsiKXY9dy5pbmRleE9mKCJdIikseC5ob3N0bmFtZT13LnN1YnN0cmluZygxLHYpfHxudWxsLHgucG9ydD13LnN1YnN0cmluZyh2KzIsQyl8fG51bGwseC5wb3J0PT09Ii8iJiYoeC5wb3J0PW51bGwpO2Vsc2V7dmFyIHo9dy5pbmRleE9mKCI6IiksRD13LmluZGV4T2YoIi8iKSxHPXcuaW5kZXhPZigiOiIseisxKTtHIT09LTEmJihEPT09LTF8fEc8RCk/KHguaG9zdG5hbWU9dy5zdWJzdHJpbmcoMCxDKXx8bnVsbCx4LnBvcnQ9bnVsbCk6KGo9dy5zdWJzdHJpbmcoMCxDKS5zcGxpdCgiOiIpLHguaG9zdG5hbWU9alswXXx8bnVsbCx4LnBvcnQ9alsxXXx8bnVsbCl9cmV0dXJuIHguaG9zdG5hbWUmJncuc3Vic3RyaW5nKEMpLmNoYXJBdCgwKSE9PSIvIiYmKEMrKyx3PSIvIit3KSx4LnByZXZlbnRJbnZhbGlkSG9zdG5hbWUmJnIuZW5zdXJlVmFsaWRIb3N0bmFtZSh4Lmhvc3RuYW1lLHgucHJvdG9jb2wpLHgucG9ydCYmci5lbnN1cmVWYWxpZFBvcnQoeC5wb3J0KSx3LnN1YnN0cmluZyhDKXx8Ii8ifSxyLnBhcnNlQXV0aG9yaXR5PWZ1bmN0aW9uKHcseCl7cmV0dXJuIHc9ci5wYXJzZVVzZXJpbmZvKHcseCksci5wYXJzZUhvc3Qodyx4KX0sci5wYXJzZVVzZXJpbmZvPWZ1bmN0aW9uKHcseCl7dmFyIEM9dyx2PXcuaW5kZXhPZigiXFwiKTt2IT09LTEmJih3PXcucmVwbGFjZSgvXFwvZywiLyIpKTt2YXIgaj13LmluZGV4T2YoIi8iKSx6PXcubGFzdEluZGV4T2YoIkAiLGo+LTE/ajp3Lmxlbmd0aC0xKSxEO3JldHVybiB6Pi0xJiYoaj09PS0xfHx6PGopPyhEPXcuc3Vic3RyaW5nKDAseikuc3BsaXQoIjoiKSx4LnVzZXJuYW1lPURbMF0/ci5kZWNvZGUoRFswXSk6bnVsbCxELnNoaWZ0KCkseC5wYXNzd29yZD1EWzBdP3IuZGVjb2RlKEQuam9pbigiOiIpKTpudWxsLHc9Qy5zdWJzdHJpbmcoeisxKSk6KHgudXNlcm5hbWU9bnVsbCx4LnBhc3N3b3JkPW51bGwpLHd9LHIucGFyc2VRdWVyeT1mdW5jdGlvbih3LHgpe2lmKCF3KXJldHVybnt9O2lmKHc9dy5yZXBsYWNlKC8mKy9nLCImIikucmVwbGFjZSgvXlw/KiYqfCYrJC9nLCIiKSwhdylyZXR1cm57fTtmb3IodmFyIEM9e30sdj13LnNwbGl0KCImIiksaj12Lmxlbmd0aCx6LEQsRyxWPTA7VjxqO1YrKyl6PXZbVl0uc3BsaXQoIj0iKSxEPXIuZGVjb2RlUXVlcnkoei5zaGlmdCgpLHgpLEc9ei5sZW5ndGg/ci5kZWNvZGVRdWVyeSh6LmpvaW4oIj0iKSx4KTpudWxsLEQhPT0iX19wcm90b19fIiYmKGQuY2FsbChDLEQpPygodHlwZW9mIENbRF09PSJzdHJpbmcifHxDW0RdPT09bnVsbCkmJihDW0RdPVtDW0RdXSksQ1tEXS5wdXNoKEcpKTpDW0RdPUcpO3JldHVybiBDfSxyLmJ1aWxkPWZ1bmN0aW9uKHcpe3ZhciB4PSIiLEM9ITE7cmV0dXJuIHcucHJvdG9jb2wmJih4Kz13LnByb3RvY29sKyI6IiksIXcudXJuJiYoeHx8dy5ob3N0bmFtZSkmJih4Kz0iLy8iLEM9ITApLHgrPXIuYnVpbGRBdXRob3JpdHkodyl8fCIiLHR5cGVvZiB3LnBhdGg9PSJzdHJpbmciJiYody5wYXRoLmNoYXJBdCgwKSE9PSIvIiYmQyYmKHgrPSIvIikseCs9dy5wYXRoKSx0eXBlb2Ygdy5xdWVyeT09InN0cmluZyImJncucXVlcnkmJih4Kz0iPyIrdy5xdWVyeSksdHlwZW9mIHcuZnJhZ21lbnQ9PSJzdHJpbmciJiZ3LmZyYWdtZW50JiYoeCs9IiMiK3cuZnJhZ21lbnQpLHh9LHIuYnVpbGRIb3N0PWZ1bmN0aW9uKHcpe3ZhciB4PSIiO2lmKHcuaG9zdG5hbWUpci5pcDZfZXhwcmVzc2lvbi50ZXN0KHcuaG9zdG5hbWUpP3grPSJbIit3Lmhvc3RuYW1lKyJdIjp4Kz13Lmhvc3RuYW1lO2Vsc2UgcmV0dXJuIiI7cmV0dXJuIHcucG9ydCYmKHgrPSI6Iit3LnBvcnQpLHh9LHIuYnVpbGRBdXRob3JpdHk9ZnVuY3Rpb24odyl7cmV0dXJuIHIuYnVpbGRVc2VyaW5mbyh3KStyLmJ1aWxkSG9zdCh3KX0sci5idWlsZFVzZXJpbmZvPWZ1bmN0aW9uKHcpe3ZhciB4PSIiO3JldHVybiB3LnVzZXJuYW1lJiYoeCs9ci5lbmNvZGUody51c2VybmFtZSkpLHcucGFzc3dvcmQmJih4Kz0iOiIrci5lbmNvZGUody5wYXNzd29yZCkpLHgmJih4Kz0iQCIpLHh9LHIuYnVpbGRRdWVyeT1mdW5jdGlvbih3LHgsQyl7dmFyIHY9IiIsaix6LEQsRztmb3IoeiBpbiB3KWlmKHohPT0iX19wcm90b19fIiYmZC5jYWxsKHcseikpaWYobCh3W3pdKSlmb3Ioaj17fSxEPTAsRz13W3pdLmxlbmd0aDtEPEc7RCsrKXdbel1bRF0hPT12b2lkIDAmJmpbd1t6XVtEXSsiIl09PT12b2lkIDAmJih2Kz0iJiIrci5idWlsZFF1ZXJ5UGFyYW1ldGVyKHosd1t6XVtEXSxDKSx4IT09ITAmJihqW3dbel1bRF0rIiJdPSEwKSk7ZWxzZSB3W3pdIT09dm9pZCAwJiYodis9IiYiK3IuYnVpbGRRdWVyeVBhcmFtZXRlcih6LHdbel0sQykpO3JldHVybiB2LnN1YnN0cmluZygxKX0sci5idWlsZFF1ZXJ5UGFyYW1ldGVyPWZ1bmN0aW9uKHcseCxDKXtyZXR1cm4gci5lbmNvZGVRdWVyeSh3LEMpKyh4IT09bnVsbD8iPSIrci5lbmNvZGVRdWVyeSh4LEMpOiIiKX0sci5hZGRRdWVyeT1mdW5jdGlvbih3LHgsQyl7aWYodHlwZW9mIHg9PSJvYmplY3QiKWZvcih2YXIgdiBpbiB4KWQuY2FsbCh4LHYpJiZyLmFkZFF1ZXJ5KHcsdix4W3ZdKTtlbHNlIGlmKHR5cGVvZiB4PT0ic3RyaW5nIil7aWYod1t4XT09PXZvaWQgMCl7d1t4XT1DO3JldHVybn1lbHNlIHR5cGVvZiB3W3hdPT0ic3RyaW5nIiYmKHdbeF09W3dbeF1dKTtsKEMpfHwoQz1bQ10pLHdbeF09KHdbeF18fFtdKS5jb25jYXQoQyl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJVUkkuYWRkUXVlcnkoKSBhY2NlcHRzIGFuIG9iamVjdCwgc3RyaW5nIGFzIHRoZSBuYW1lIHBhcmFtZXRlciIpfSxyLnNldFF1ZXJ5PWZ1bmN0aW9uKHcseCxDKXtpZih0eXBlb2YgeD09Im9iamVjdCIpZm9yKHZhciB2IGluIHgpZC5jYWxsKHgsdikmJnIuc2V0UXVlcnkodyx2LHhbdl0pO2Vsc2UgaWYodHlwZW9mIHg9PSJzdHJpbmciKXdbeF09Qz09PXZvaWQgMD9udWxsOkM7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJVUkkuc2V0UXVlcnkoKSBhY2NlcHRzIGFuIG9iamVjdCwgc3RyaW5nIGFzIHRoZSBuYW1lIHBhcmFtZXRlciIpfSxyLnJlbW92ZVF1ZXJ5PWZ1bmN0aW9uKHcseCxDKXt2YXIgdixqLHo7aWYobCh4KSlmb3Iodj0wLGo9eC5sZW5ndGg7djxqO3YrKyl3W3hbdl1dPXZvaWQgMDtlbHNlIGlmKHUoeCk9PT0iUmVnRXhwIilmb3IoeiBpbiB3KXgudGVzdCh6KSYmKHdbel09dm9pZCAwKTtlbHNlIGlmKHR5cGVvZiB4PT0ib2JqZWN0Iilmb3IoeiBpbiB4KWQuY2FsbCh4LHopJiZyLnJlbW92ZVF1ZXJ5KHcseix4W3pdKTtlbHNlIGlmKHR5cGVvZiB4PT0ic3RyaW5nIilDIT09dm9pZCAwP3UoQyk9PT0iUmVnRXhwIj8hbCh3W3hdKSYmQy50ZXN0KHdbeF0pP3dbeF09dm9pZCAwOndbeF09aCh3W3hdLEMpOndbeF09PT1TdHJpbmcoQykmJighbChDKXx8Qy5sZW5ndGg9PT0xKT93W3hdPXZvaWQgMDpsKHdbeF0pJiYod1t4XT1oKHdbeF0sQykpOndbeF09dm9pZCAwO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiVVJJLnJlbW92ZVF1ZXJ5KCkgYWNjZXB0cyBhbiBvYmplY3QsIHN0cmluZywgUmVnRXhwIGFzIHRoZSBmaXJzdCBwYXJhbWV0ZXIiKX0sci5oYXNRdWVyeT1mdW5jdGlvbih3LHgsQyx2KXtzd2l0Y2godSh4KSl7Y2FzZSJTdHJpbmciOmJyZWFrO2Nhc2UiUmVnRXhwIjpmb3IodmFyIGogaW4gdylpZihkLmNhbGwodyxqKSYmeC50ZXN0KGopJiYoQz09PXZvaWQgMHx8ci5oYXNRdWVyeSh3LGosQykpKXJldHVybiEwO3JldHVybiExO2Nhc2UiT2JqZWN0Ijpmb3IodmFyIHogaW4geClpZihkLmNhbGwoeCx6KSYmIXIuaGFzUXVlcnkodyx6LHhbel0pKXJldHVybiExO3JldHVybiEwO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVVJJLmhhc1F1ZXJ5KCkgYWNjZXB0cyBhIHN0cmluZywgcmVndWxhciBleHByZXNzaW9uIG9yIG9iamVjdCBhcyB0aGUgbmFtZSBwYXJhbWV0ZXIiKX1zd2l0Y2godShDKSl7Y2FzZSJVbmRlZmluZWQiOnJldHVybiB4IGluIHc7Y2FzZSJCb29sZWFuIjp2YXIgRD0hIShsKHdbeF0pP3dbeF0ubGVuZ3RoOndbeF0pO3JldHVybiBDPT09RDtjYXNlIkZ1bmN0aW9uIjpyZXR1cm4hIUMod1t4XSx4LHcpO2Nhc2UiQXJyYXkiOmlmKCFsKHdbeF0pKXJldHVybiExO3ZhciBHPXY/bTpiO3JldHVybiBHKHdbeF0sQyk7Y2FzZSJSZWdFeHAiOnJldHVybiBsKHdbeF0pP3Y/bSh3W3hdLEMpOiExOiEhKHdbeF0mJndbeF0ubWF0Y2goQykpO2Nhc2UiTnVtYmVyIjpDPVN0cmluZyhDKTtjYXNlIlN0cmluZyI6cmV0dXJuIGwod1t4XSk/dj9tKHdbeF0sQyk6ITE6d1t4XT09PUM7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJVUkkuaGFzUXVlcnkoKSBhY2NlcHRzIHVuZGVmaW5lZCwgYm9vbGVhbiwgc3RyaW5nLCBudW1iZXIsIFJlZ0V4cCwgRnVuY3Rpb24gYXMgdGhlIHZhbHVlIHBhcmFtZXRlciIpfX0sci5qb2luUGF0aHM9ZnVuY3Rpb24oKXtmb3IodmFyIHc9W10seD1bXSxDPTAsdj0wO3Y8YXJndW1lbnRzLmxlbmd0aDt2Kyspe3ZhciBqPW5ldyByKGFyZ3VtZW50c1t2XSk7dy5wdXNoKGopO2Zvcih2YXIgej1qLnNlZ21lbnQoKSxEPTA7RDx6Lmxlbmd0aDtEKyspdHlwZW9mIHpbRF09PSJzdHJpbmciJiZ4LnB1c2goeltEXSkseltEXSYmQysrfWlmKCF4Lmxlbmd0aHx8IUMpcmV0dXJuIG5ldyByKCIiKTt2YXIgRz1uZXcgcigiIikuc2VnbWVudCh4KTtyZXR1cm4od1swXS5wYXRoKCk9PT0iInx8d1swXS5wYXRoKCkuc2xpY2UoMCwxKT09PSIvIikmJkcucGF0aCgiLyIrRy5wYXRoKCkpLEcubm9ybWFsaXplKCl9LHIuY29tbW9uUGF0aD1mdW5jdGlvbih3LHgpe3ZhciBDPU1hdGgubWluKHcubGVuZ3RoLHgubGVuZ3RoKSx2O2Zvcih2PTA7djxDO3YrKylpZih3LmNoYXJBdCh2KSE9PXguY2hhckF0KHYpKXt2LS07YnJlYWt9cmV0dXJuIHY8MT93LmNoYXJBdCgwKT09PXguY2hhckF0KDApJiZ3LmNoYXJBdCgwKT09PSIvIj8iLyI6IiI6KCh3LmNoYXJBdCh2KSE9PSIvInx8eC5jaGFyQXQodikhPT0iLyIpJiYodj13LnN1YnN0cmluZygwLHYpLmxhc3RJbmRleE9mKCIvIikpLHcuc3Vic3RyaW5nKDAsdisxKSl9LHIud2l0aGluU3RyaW5nPWZ1bmN0aW9uKHcseCxDKXtDfHwoQz17fSk7dmFyIHY9Qy5zdGFydHx8ci5maW5kVXJpLnN0YXJ0LGo9Qy5lbmR8fHIuZmluZFVyaS5lbmQsej1DLnRyaW18fHIuZmluZFVyaS50cmltLEQ9Qy5wYXJlbnN8fHIuZmluZFVyaS5wYXJlbnMsRz0vW2EtejAtOS1dPVsiJ10/JC9pO2Zvcih2Lmxhc3RJbmRleD0wOzspe3ZhciBWPXYuZXhlYyh3KTtpZighVilicmVhazt2YXIgTz1WLmluZGV4O2lmKEMuaWdub3JlSHRtbCl7dmFyIFo9dy5zbGljZShNYXRoLm1heChPLTMsMCksTyk7aWYoWiYmRy50ZXN0KFopKWNvbnRpbnVlfWZvcih2YXIgYWU9Tyt3LnNsaWNlKE8pLnNlYXJjaChqKSxjZT13LnNsaWNlKE8sYWUpLGZlPS0xOzspe3ZhciB0ZT1ELmV4ZWMoY2UpO2lmKCF0ZSlicmVhazt2YXIgbWU9dGUuaW5kZXgrdGVbMF0ubGVuZ3RoO2ZlPU1hdGgubWF4KGZlLG1lKX1pZihmZT4tMT9jZT1jZS5zbGljZSgwLGZlKStjZS5zbGljZShmZSkucmVwbGFjZSh6LCIiKTpjZT1jZS5yZXBsYWNlKHosIiIpLCEoY2UubGVuZ3RoPD1WWzBdLmxlbmd0aCkmJiEoQy5pZ25vcmUmJkMuaWdub3JlLnRlc3QoY2UpKSl7YWU9TytjZS5sZW5ndGg7dmFyIHVlPXgoY2UsTyxhZSx3KTtpZih1ZT09PXZvaWQgMCl7di5sYXN0SW5kZXg9YWU7Y29udGludWV9dWU9U3RyaW5nKHVlKSx3PXcuc2xpY2UoMCxPKSt1ZSt3LnNsaWNlKGFlKSx2Lmxhc3RJbmRleD1PK3VlLmxlbmd0aH19cmV0dXJuIHYubGFzdEluZGV4PTAsd30sci5lbnN1cmVWYWxpZEhvc3RuYW1lPWZ1bmN0aW9uKHcseCl7dmFyIEM9ISF3LHY9ISF4LGo9ITE7aWYodiYmKGo9bShyLmhvc3RQcm90b2NvbHMseCkpLGomJiFDKXRocm93IG5ldyBUeXBlRXJyb3IoIkhvc3RuYW1lIGNhbm5vdCBiZSBlbXB0eSwgaWYgcHJvdG9jb2wgaXMgIit4KTtpZih3JiZ3Lm1hdGNoKHIuaW52YWxpZF9ob3N0bmFtZV9jaGFyYWN0ZXJzKSl7aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcignSG9zdG5hbWUgIicrdysnIiBjb250YWlucyBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gW0EtWjAtOS4tOl9dIGFuZCBQdW55Y29kZS5qcyBpcyBub3QgYXZhaWxhYmxlJyk7aWYobi50b0FTQ0lJKHcpLm1hdGNoKHIuaW52YWxpZF9ob3N0bmFtZV9jaGFyYWN0ZXJzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdIb3N0bmFtZSAiJyt3KyciIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05Li06X10nKX19LHIuZW5zdXJlVmFsaWRQb3J0PWZ1bmN0aW9uKHcpe2lmKHcpe3ZhciB4PU51bWJlcih3KTtpZighKGkoeCkmJng+MCYmeDw2NTUzNikpdGhyb3cgbmV3IFR5cGVFcnJvcignUG9ydCAiJyt3KyciIGlzIG5vdCBhIHZhbGlkIHBvcnQnKX19LHIubm9Db25mbGljdD1mdW5jdGlvbih3KXtpZih3KXt2YXIgeD17VVJJOnRoaXMubm9Db25mbGljdCgpfTtyZXR1cm4gby5VUklUZW1wbGF0ZSYmdHlwZW9mIG8uVVJJVGVtcGxhdGUubm9Db25mbGljdD09ImZ1bmN0aW9uIiYmKHguVVJJVGVtcGxhdGU9by5VUklUZW1wbGF0ZS5ub0NvbmZsaWN0KCkpLG8uSVB2NiYmdHlwZW9mIG8uSVB2Ni5ub0NvbmZsaWN0PT0iZnVuY3Rpb24iJiYoeC5JUHY2PW8uSVB2Ni5ub0NvbmZsaWN0KCkpLG8uU2Vjb25kTGV2ZWxEb21haW5zJiZ0eXBlb2Ygby5TZWNvbmRMZXZlbERvbWFpbnMubm9Db25mbGljdD09ImZ1bmN0aW9uIiYmKHguU2Vjb25kTGV2ZWxEb21haW5zPW8uU2Vjb25kTGV2ZWxEb21haW5zLm5vQ29uZmxpY3QoKSkseH1lbHNlIG8uVVJJPT09dGhpcyYmKG8uVVJJPWEpO3JldHVybiB0aGlzfSxmLmJ1aWxkPWZ1bmN0aW9uKHcpe3JldHVybiB3PT09ITA/dGhpcy5fZGVmZXJyZWRfYnVpbGQ9ITA6KHc9PT12b2lkIDB8fHRoaXMuX2RlZmVycmVkX2J1aWxkKSYmKHRoaXMuX3N0cmluZz1yLmJ1aWxkKHRoaXMuX3BhcnRzKSx0aGlzLl9kZWZlcnJlZF9idWlsZD0hMSksdGhpc30sZi5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgcih0aGlzKX0sZi52YWx1ZU9mPWYudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5idWlsZCghMSkuX3N0cmluZ307ZnVuY3Rpb24gUyh3KXtyZXR1cm4gZnVuY3Rpb24oeCxDKXtyZXR1cm4geD09PXZvaWQgMD90aGlzLl9wYXJ0c1t3XXx8IiI6KHRoaXMuX3BhcnRzW3ddPXh8fG51bGwsdGhpcy5idWlsZCghQyksdGhpcyl9fWZ1bmN0aW9uIE0odyx4KXtyZXR1cm4gZnVuY3Rpb24oQyx2KXtyZXR1cm4gQz09PXZvaWQgMD90aGlzLl9wYXJ0c1t3XXx8IiI6KEMhPT1udWxsJiYoQz1DKyIiLEMuY2hhckF0KDApPT09eCYmKEM9Qy5zdWJzdHJpbmcoMSkpKSx0aGlzLl9wYXJ0c1t3XT1DLHRoaXMuYnVpbGQoIXYpLHRoaXMpfX1mLnByb3RvY29sPVMoInByb3RvY29sIiksZi51c2VybmFtZT1TKCJ1c2VybmFtZSIpLGYucGFzc3dvcmQ9UygicGFzc3dvcmQiKSxmLmhvc3RuYW1lPVMoImhvc3RuYW1lIiksZi5wb3J0PVMoInBvcnQiKSxmLnF1ZXJ5PU0oInF1ZXJ5IiwiPyIpLGYuZnJhZ21lbnQ9TSgiZnJhZ21lbnQiLCIjIiksZi5zZWFyY2g9ZnVuY3Rpb24odyx4KXt2YXIgQz10aGlzLnF1ZXJ5KHcseCk7cmV0dXJuIHR5cGVvZiBDPT0ic3RyaW5nIiYmQy5sZW5ndGg/Ij8iK0M6Q30sZi5oYXNoPWZ1bmN0aW9uKHcseCl7dmFyIEM9dGhpcy5mcmFnbWVudCh3LHgpO3JldHVybiB0eXBlb2YgQz09InN0cmluZyImJkMubGVuZ3RoPyIjIitDOkN9LGYucGF0aG5hbWU9ZnVuY3Rpb24odyx4KXtpZih3PT09dm9pZCAwfHx3PT09ITApe3ZhciBDPXRoaXMuX3BhcnRzLnBhdGh8fCh0aGlzLl9wYXJ0cy5ob3N0bmFtZT8iLyI6IiIpO3JldHVybiB3Pyh0aGlzLl9wYXJ0cy51cm4/ci5kZWNvZGVVcm5QYXRoOnIuZGVjb2RlUGF0aCkoQyk6Q31lbHNlIHJldHVybiB0aGlzLl9wYXJ0cy51cm4/dGhpcy5fcGFydHMucGF0aD13P3IucmVjb2RlVXJuUGF0aCh3KToiIjp0aGlzLl9wYXJ0cy5wYXRoPXc/ci5yZWNvZGVQYXRoKHcpOiIvIix0aGlzLmJ1aWxkKCF4KSx0aGlzfSxmLnBhdGg9Zi5wYXRobmFtZSxmLmhyZWY9ZnVuY3Rpb24odyx4KXt2YXIgQztpZih3PT09dm9pZCAwKXJldHVybiB0aGlzLnRvU3RyaW5nKCk7dGhpcy5fc3RyaW5nPSIiLHRoaXMuX3BhcnRzPXIuX3BhcnRzKCk7dmFyIHY9dyBpbnN0YW5jZW9mIHIsaj10eXBlb2Ygdz09Im9iamVjdCImJih3Lmhvc3RuYW1lfHx3LnBhdGh8fHcucGF0aG5hbWUpO2lmKHcubm9kZU5hbWUpe3ZhciB6PXIuZ2V0RG9tQXR0cmlidXRlKHcpO3c9d1t6XXx8IiIsaj0hMX1pZighdiYmaiYmdy5wYXRobmFtZSE9PXZvaWQgMCYmKHc9dy50b1N0cmluZygpKSx0eXBlb2Ygdz09InN0cmluZyJ8fHcgaW5zdGFuY2VvZiBTdHJpbmcpdGhpcy5fcGFydHM9ci5wYXJzZShTdHJpbmcodyksdGhpcy5fcGFydHMpO2Vsc2UgaWYodnx8ail7dmFyIEQ9dj93Ll9wYXJ0czp3O2ZvcihDIGluIEQpQyE9PSJxdWVyeSImJmQuY2FsbCh0aGlzLl9wYXJ0cyxDKSYmKHRoaXMuX3BhcnRzW0NdPURbQ10pO0QucXVlcnkmJnRoaXMucXVlcnkoRC5xdWVyeSwhMSl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGlucHV0Iik7cmV0dXJuIHRoaXMuYnVpbGQoIXgpLHRoaXN9LGYuaXM9ZnVuY3Rpb24odyl7dmFyIHg9ITEsQz0hMSx2PSExLGo9ITEsej0hMSxEPSExLEc9ITEsVj0hdGhpcy5fcGFydHMudXJuO3N3aXRjaCh0aGlzLl9wYXJ0cy5ob3N0bmFtZSYmKFY9ITEsQz1yLmlwNF9leHByZXNzaW9uLnRlc3QodGhpcy5fcGFydHMuaG9zdG5hbWUpLHY9ci5pcDZfZXhwcmVzc2lvbi50ZXN0KHRoaXMuX3BhcnRzLmhvc3RuYW1lKSx4PUN8fHYsaj0heCx6PWomJnQmJnQuaGFzKHRoaXMuX3BhcnRzLmhvc3RuYW1lKSxEPWomJnIuaWRuX2V4cHJlc3Npb24udGVzdCh0aGlzLl9wYXJ0cy5ob3N0bmFtZSksRz1qJiZyLnB1bnljb2RlX2V4cHJlc3Npb24udGVzdCh0aGlzLl9wYXJ0cy5ob3N0bmFtZSkpLHcudG9Mb3dlckNhc2UoKSl7Y2FzZSJyZWxhdGl2ZSI6cmV0dXJuIFY7Y2FzZSJhYnNvbHV0ZSI6cmV0dXJuIVY7Y2FzZSJkb21haW4iOmNhc2UibmFtZSI6cmV0dXJuIGo7Y2FzZSJzbGQiOnJldHVybiB6O2Nhc2UiaXAiOnJldHVybiB4O2Nhc2UiaXA0IjpjYXNlImlwdjQiOmNhc2UiaW5ldDQiOnJldHVybiBDO2Nhc2UiaXA2IjpjYXNlImlwdjYiOmNhc2UiaW5ldDYiOnJldHVybiB2O2Nhc2UiaWRuIjpyZXR1cm4gRDtjYXNlInVybCI6cmV0dXJuIXRoaXMuX3BhcnRzLnVybjtjYXNlInVybiI6cmV0dXJuISF0aGlzLl9wYXJ0cy51cm47Y2FzZSJwdW55Y29kZSI6cmV0dXJuIEd9cmV0dXJuIG51bGx9O3ZhciBJPWYucHJvdG9jb2wsTj1mLnBvcnQsUD1mLmhvc3RuYW1lO2YucHJvdG9jb2w9ZnVuY3Rpb24odyx4KXtpZih3JiYodz13LnJlcGxhY2UoLzooXC9cLyk/JC8sIiIpLCF3Lm1hdGNoKHIucHJvdG9jb2xfZXhwcmVzc2lvbikpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1Byb3RvY29sICInK3crYCIgY29udGFpbnMgY2hhcmFjdGVycyBvdGhlciB0aGFuIFtBLVowLTkuKy1dIG9yIGRvZXNuJ3Qgc3RhcnQgd2l0aCBbQS1aXWApO3JldHVybiBJLmNhbGwodGhpcyx3LHgpfSxmLnNjaGVtZT1mLnByb3RvY29sLGYucG9ydD1mdW5jdGlvbih3LHgpe3JldHVybiB0aGlzLl9wYXJ0cy51cm4/dz09PXZvaWQgMD8iIjp0aGlzOih3IT09dm9pZCAwJiYodz09PTAmJih3PW51bGwpLHcmJih3Kz0iIix3LmNoYXJBdCgwKT09PSI6IiYmKHc9dy5zdWJzdHJpbmcoMSkpLHIuZW5zdXJlVmFsaWRQb3J0KHcpKSksTi5jYWxsKHRoaXMsdyx4KSl9LGYuaG9zdG5hbWU9ZnVuY3Rpb24odyx4KXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIHc9PT12b2lkIDA/IiI6dGhpcztpZih3IT09dm9pZCAwKXt2YXIgQz17cHJldmVudEludmFsaWRIb3N0bmFtZTp0aGlzLl9wYXJ0cy5wcmV2ZW50SW52YWxpZEhvc3RuYW1lfSx2PXIucGFyc2VIb3N0KHcsQyk7aWYodiE9PSIvIil0aHJvdyBuZXcgVHlwZUVycm9yKCdIb3N0bmFtZSAiJyt3KyciIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05Li1dJyk7dz1DLmhvc3RuYW1lLHRoaXMuX3BhcnRzLnByZXZlbnRJbnZhbGlkSG9zdG5hbWUmJnIuZW5zdXJlVmFsaWRIb3N0bmFtZSh3LHRoaXMuX3BhcnRzLnByb3RvY29sKX1yZXR1cm4gUC5jYWxsKHRoaXMsdyx4KX0sZi5vcmlnaW49ZnVuY3Rpb24odyx4KXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIHc9PT12b2lkIDA/IiI6dGhpcztpZih3PT09dm9pZCAwKXt2YXIgQz10aGlzLnByb3RvY29sKCksdj10aGlzLmF1dGhvcml0eSgpO3JldHVybiB2PyhDP0MrIjovLyI6IiIpK3RoaXMuYXV0aG9yaXR5KCk6IiJ9ZWxzZXt2YXIgaj1yKHcpO3JldHVybiB0aGlzLnByb3RvY29sKGoucHJvdG9jb2woKSkuYXV0aG9yaXR5KGouYXV0aG9yaXR5KCkpLmJ1aWxkKCF4KSx0aGlzfX0sZi5ob3N0PWZ1bmN0aW9uKHcseCl7aWYodGhpcy5fcGFydHMudXJuKXJldHVybiB3PT09dm9pZCAwPyIiOnRoaXM7aWYodz09PXZvaWQgMClyZXR1cm4gdGhpcy5fcGFydHMuaG9zdG5hbWU/ci5idWlsZEhvc3QodGhpcy5fcGFydHMpOiIiO3ZhciBDPXIucGFyc2VIb3N0KHcsdGhpcy5fcGFydHMpO2lmKEMhPT0iLyIpdGhyb3cgbmV3IFR5cGVFcnJvcignSG9zdG5hbWUgIicrdysnIiBjb250YWlucyBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gW0EtWjAtOS4tXScpO3JldHVybiB0aGlzLmJ1aWxkKCF4KSx0aGlzfSxmLmF1dGhvcml0eT1mdW5jdGlvbih3LHgpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gdz09PXZvaWQgMD8iIjp0aGlzO2lmKHc9PT12b2lkIDApcmV0dXJuIHRoaXMuX3BhcnRzLmhvc3RuYW1lP3IuYnVpbGRBdXRob3JpdHkodGhpcy5fcGFydHMpOiIiO3ZhciBDPXIucGFyc2VBdXRob3JpdHkodyx0aGlzLl9wYXJ0cyk7aWYoQyE9PSIvIil0aHJvdyBuZXcgVHlwZUVycm9yKCdIb3N0bmFtZSAiJyt3KyciIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05Li1dJyk7cmV0dXJuIHRoaXMuYnVpbGQoIXgpLHRoaXN9LGYudXNlcmluZm89ZnVuY3Rpb24odyx4KXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIHc9PT12b2lkIDA/IiI6dGhpcztpZih3PT09dm9pZCAwKXt2YXIgQz1yLmJ1aWxkVXNlcmluZm8odGhpcy5fcGFydHMpO3JldHVybiBDJiZDLnN1YnN0cmluZygwLEMubGVuZ3RoLTEpfWVsc2UgcmV0dXJuIHdbdy5sZW5ndGgtMV0hPT0iQCImJih3Kz0iQCIpLHIucGFyc2VVc2VyaW5mbyh3LHRoaXMuX3BhcnRzKSx0aGlzLmJ1aWxkKCF4KSx0aGlzfSxmLnJlc291cmNlPWZ1bmN0aW9uKHcseCl7dmFyIEM7cmV0dXJuIHc9PT12b2lkIDA/dGhpcy5wYXRoKCkrdGhpcy5zZWFyY2goKSt0aGlzLmhhc2goKTooQz1yLnBhcnNlKHcpLHRoaXMuX3BhcnRzLnBhdGg9Qy5wYXRoLHRoaXMuX3BhcnRzLnF1ZXJ5PUMucXVlcnksdGhpcy5fcGFydHMuZnJhZ21lbnQ9Qy5mcmFnbWVudCx0aGlzLmJ1aWxkKCF4KSx0aGlzKX0sZi5zdWJkb21haW49ZnVuY3Rpb24odyx4KXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIHc9PT12b2lkIDA/IiI6dGhpcztpZih3PT09dm9pZCAwKXtpZighdGhpcy5fcGFydHMuaG9zdG5hbWV8fHRoaXMuaXMoIklQIikpcmV0dXJuIiI7dmFyIEM9dGhpcy5fcGFydHMuaG9zdG5hbWUubGVuZ3RoLXRoaXMuZG9tYWluKCkubGVuZ3RoLTE7cmV0dXJuIHRoaXMuX3BhcnRzLmhvc3RuYW1lLnN1YnN0cmluZygwLEMpfHwiIn1lbHNle3ZhciB2PXRoaXMuX3BhcnRzLmhvc3RuYW1lLmxlbmd0aC10aGlzLmRvbWFpbigpLmxlbmd0aCxqPXRoaXMuX3BhcnRzLmhvc3RuYW1lLnN1YnN0cmluZygwLHYpLHo9bmV3IFJlZ0V4cCgiXiIrYyhqKSk7aWYodyYmdy5jaGFyQXQody5sZW5ndGgtMSkhPT0iLiImJih3Kz0iLiIpLHcuaW5kZXhPZigiOiIpIT09LTEpdGhyb3cgbmV3IFR5cGVFcnJvcigiRG9tYWlucyBjYW5ub3QgY29udGFpbiBjb2xvbnMiKTtyZXR1cm4gdyYmci5lbnN1cmVWYWxpZEhvc3RuYW1lKHcsdGhpcy5fcGFydHMucHJvdG9jb2wpLHRoaXMuX3BhcnRzLmhvc3RuYW1lPXRoaXMuX3BhcnRzLmhvc3RuYW1lLnJlcGxhY2Uoeix3KSx0aGlzLmJ1aWxkKCF4KSx0aGlzfX0sZi5kb21haW49ZnVuY3Rpb24odyx4KXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIHc9PT12b2lkIDA/IiI6dGhpcztpZih0eXBlb2Ygdz09ImJvb2xlYW4iJiYoeD13LHc9dm9pZCAwKSx3PT09dm9pZCAwKXtpZighdGhpcy5fcGFydHMuaG9zdG5hbWV8fHRoaXMuaXMoIklQIikpcmV0dXJuIiI7dmFyIEM9dGhpcy5fcGFydHMuaG9zdG5hbWUubWF0Y2goL1wuL2cpO2lmKEMmJkMubGVuZ3RoPDIpcmV0dXJuIHRoaXMuX3BhcnRzLmhvc3RuYW1lO3ZhciB2PXRoaXMuX3BhcnRzLmhvc3RuYW1lLmxlbmd0aC10aGlzLnRsZCh4KS5sZW5ndGgtMTtyZXR1cm4gdj10aGlzLl9wYXJ0cy5ob3N0bmFtZS5sYXN0SW5kZXhPZigiLiIsdi0xKSsxLHRoaXMuX3BhcnRzLmhvc3RuYW1lLnN1YnN0cmluZyh2KXx8IiJ9ZWxzZXtpZighdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYW5ub3Qgc2V0IGRvbWFpbiBlbXB0eSIpO2lmKHcuaW5kZXhPZigiOiIpIT09LTEpdGhyb3cgbmV3IFR5cGVFcnJvcigiRG9tYWlucyBjYW5ub3QgY29udGFpbiBjb2xvbnMiKTtpZihyLmVuc3VyZVZhbGlkSG9zdG5hbWUodyx0aGlzLl9wYXJ0cy5wcm90b2NvbCksIXRoaXMuX3BhcnRzLmhvc3RuYW1lfHx0aGlzLmlzKCJJUCIpKXRoaXMuX3BhcnRzLmhvc3RuYW1lPXc7ZWxzZXt2YXIgaj1uZXcgUmVnRXhwKGModGhpcy5kb21haW4oKSkrIiQiKTt0aGlzLl9wYXJ0cy5ob3N0bmFtZT10aGlzLl9wYXJ0cy5ob3N0bmFtZS5yZXBsYWNlKGosdyl9cmV0dXJuIHRoaXMuYnVpbGQoIXgpLHRoaXN9fSxmLnRsZD1mdW5jdGlvbih3LHgpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gdz09PXZvaWQgMD8iIjp0aGlzO2lmKHR5cGVvZiB3PT0iYm9vbGVhbiImJih4PXcsdz12b2lkIDApLHc9PT12b2lkIDApe2lmKCF0aGlzLl9wYXJ0cy5ob3N0bmFtZXx8dGhpcy5pcygiSVAiKSlyZXR1cm4iIjt2YXIgQz10aGlzLl9wYXJ0cy5ob3N0bmFtZS5sYXN0SW5kZXhPZigiLiIpLHY9dGhpcy5fcGFydHMuaG9zdG5hbWUuc3Vic3RyaW5nKEMrMSk7cmV0dXJuIHghPT0hMCYmdCYmdC5saXN0W3YudG9Mb3dlckNhc2UoKV0mJnQuZ2V0KHRoaXMuX3BhcnRzLmhvc3RuYW1lKXx8dn1lbHNle3ZhciBqO2lmKHcpaWYody5tYXRjaCgvW15hLXpBLVowLTktXS8pKWlmKHQmJnQuaXModykpaj1uZXcgUmVnRXhwKGModGhpcy50bGQoKSkrIiQiKSx0aGlzLl9wYXJ0cy5ob3N0bmFtZT10aGlzLl9wYXJ0cy5ob3N0bmFtZS5yZXBsYWNlKGosdyk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCdUTEQgIicrdysnIiBjb250YWlucyBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gW0EtWjAtOV0nKTtlbHNle2lmKCF0aGlzLl9wYXJ0cy5ob3N0bmFtZXx8dGhpcy5pcygiSVAiKSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoImNhbm5vdCBzZXQgVExEIG9uIG5vbi1kb21haW4gaG9zdCIpO2o9bmV3IFJlZ0V4cChjKHRoaXMudGxkKCkpKyIkIiksdGhpcy5fcGFydHMuaG9zdG5hbWU9dGhpcy5fcGFydHMuaG9zdG5hbWUucmVwbGFjZShqLHcpfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiY2Fubm90IHNldCBUTEQgZW1wdHkiKTtyZXR1cm4gdGhpcy5idWlsZCgheCksdGhpc319LGYuZGlyZWN0b3J5PWZ1bmN0aW9uKHcseCl7aWYodGhpcy5fcGFydHMudXJuKXJldHVybiB3PT09dm9pZCAwPyIiOnRoaXM7aWYodz09PXZvaWQgMHx8dz09PSEwKXtpZighdGhpcy5fcGFydHMucGF0aCYmIXRoaXMuX3BhcnRzLmhvc3RuYW1lKXJldHVybiIiO2lmKHRoaXMuX3BhcnRzLnBhdGg9PT0iLyIpcmV0dXJuIi8iO3ZhciBDPXRoaXMuX3BhcnRzLnBhdGgubGVuZ3RoLXRoaXMuZmlsZW5hbWUoKS5sZW5ndGgtMSx2PXRoaXMuX3BhcnRzLnBhdGguc3Vic3RyaW5nKDAsQyl8fCh0aGlzLl9wYXJ0cy5ob3N0bmFtZT8iLyI6IiIpO3JldHVybiB3P3IuZGVjb2RlUGF0aCh2KTp2fWVsc2V7dmFyIGo9dGhpcy5fcGFydHMucGF0aC5sZW5ndGgtdGhpcy5maWxlbmFtZSgpLmxlbmd0aCx6PXRoaXMuX3BhcnRzLnBhdGguc3Vic3RyaW5nKDAsaiksRD1uZXcgUmVnRXhwKCJeIitjKHopKTtyZXR1cm4gdGhpcy5pcygicmVsYXRpdmUiKXx8KHd8fCh3PSIvIiksdy5jaGFyQXQoMCkhPT0iLyImJih3PSIvIit3KSksdyYmdy5jaGFyQXQody5sZW5ndGgtMSkhPT0iLyImJih3Kz0iLyIpLHc9ci5yZWNvZGVQYXRoKHcpLHRoaXMuX3BhcnRzLnBhdGg9dGhpcy5fcGFydHMucGF0aC5yZXBsYWNlKEQsdyksdGhpcy5idWlsZCgheCksdGhpc319LGYuZmlsZW5hbWU9ZnVuY3Rpb24odyx4KXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIHc9PT12b2lkIDA/IiI6dGhpcztpZih0eXBlb2YgdyE9InN0cmluZyIpe2lmKCF0aGlzLl9wYXJ0cy5wYXRofHx0aGlzLl9wYXJ0cy5wYXRoPT09Ii8iKXJldHVybiIiO3ZhciBDPXRoaXMuX3BhcnRzLnBhdGgubGFzdEluZGV4T2YoIi8iKSx2PXRoaXMuX3BhcnRzLnBhdGguc3Vic3RyaW5nKEMrMSk7cmV0dXJuIHc/ci5kZWNvZGVQYXRoU2VnbWVudCh2KTp2fWVsc2V7dmFyIGo9ITE7dy5jaGFyQXQoMCk9PT0iLyImJih3PXcuc3Vic3RyaW5nKDEpKSx3Lm1hdGNoKC9cLj9cLy8pJiYoaj0hMCk7dmFyIHo9bmV3IFJlZ0V4cChjKHRoaXMuZmlsZW5hbWUoKSkrIiQiKTtyZXR1cm4gdz1yLnJlY29kZVBhdGgodyksdGhpcy5fcGFydHMucGF0aD10aGlzLl9wYXJ0cy5wYXRoLnJlcGxhY2Uoeix3KSxqP3RoaXMubm9ybWFsaXplUGF0aCh4KTp0aGlzLmJ1aWxkKCF4KSx0aGlzfX0sZi5zdWZmaXg9ZnVuY3Rpb24odyx4KXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIHc9PT12b2lkIDA/IiI6dGhpcztpZih3PT09dm9pZCAwfHx3PT09ITApe2lmKCF0aGlzLl9wYXJ0cy5wYXRofHx0aGlzLl9wYXJ0cy5wYXRoPT09Ii8iKXJldHVybiIiO3ZhciBDPXRoaXMuZmlsZW5hbWUoKSx2PUMubGFzdEluZGV4T2YoIi4iKSxqLHo7cmV0dXJuIHY9PT0tMT8iIjooaj1DLnN1YnN0cmluZyh2KzEpLHo9L15bYS16MC05JV0rJC9pLnRlc3Qoaik/ajoiIix3P3IuZGVjb2RlUGF0aFNlZ21lbnQoeik6eil9ZWxzZXt3LmNoYXJBdCgwKT09PSIuIiYmKHc9dy5zdWJzdHJpbmcoMSkpO3ZhciBEPXRoaXMuc3VmZml4KCksRztpZihEKXc/Rz1uZXcgUmVnRXhwKGMoRCkrIiQiKTpHPW5ldyBSZWdFeHAoYygiLiIrRCkrIiQiKTtlbHNle2lmKCF3KXJldHVybiB0aGlzO3RoaXMuX3BhcnRzLnBhdGgrPSIuIityLnJlY29kZVBhdGgodyl9cmV0dXJuIEcmJih3PXIucmVjb2RlUGF0aCh3KSx0aGlzLl9wYXJ0cy5wYXRoPXRoaXMuX3BhcnRzLnBhdGgucmVwbGFjZShHLHcpKSx0aGlzLmJ1aWxkKCF4KSx0aGlzfX0sZi5zZWdtZW50PWZ1bmN0aW9uKHcseCxDKXt2YXIgdj10aGlzLl9wYXJ0cy51cm4/IjoiOiIvIixqPXRoaXMucGF0aCgpLHo9ai5zdWJzdHJpbmcoMCwxKT09PSIvIixEPWouc3BsaXQodik7aWYodyE9PXZvaWQgMCYmdHlwZW9mIHchPSJudW1iZXIiJiYoQz14LHg9dyx3PXZvaWQgMCksdyE9PXZvaWQgMCYmdHlwZW9mIHchPSJudW1iZXIiKXRocm93IG5ldyBFcnJvcignQmFkIHNlZ21lbnQgIicrdysnIiwgbXVzdCBiZSAwLWJhc2VkIGludGVnZXInKTtpZih6JiZELnNoaWZ0KCksdzwwJiYodz1NYXRoLm1heChELmxlbmd0aCt3LDApKSx4PT09dm9pZCAwKXJldHVybiB3PT09dm9pZCAwP0Q6RFt3XTtpZih3PT09bnVsbHx8RFt3XT09PXZvaWQgMClpZihsKHgpKXtEPVtdO2Zvcih2YXIgRz0wLFY9eC5sZW5ndGg7RzxWO0crKykheFtHXS5sZW5ndGgmJighRC5sZW5ndGh8fCFEW0QubGVuZ3RoLTFdLmxlbmd0aCl8fChELmxlbmd0aCYmIURbRC5sZW5ndGgtMV0ubGVuZ3RoJiZELnBvcCgpLEQucHVzaChwKHhbR10pKSl9ZWxzZSh4fHx0eXBlb2YgeD09InN0cmluZyIpJiYoeD1wKHgpLERbRC5sZW5ndGgtMV09PT0iIj9EW0QubGVuZ3RoLTFdPXg6RC5wdXNoKHgpKTtlbHNlIHg/RFt3XT1wKHgpOkQuc3BsaWNlKHcsMSk7cmV0dXJuIHomJkQudW5zaGlmdCgiIiksdGhpcy5wYXRoKEQuam9pbih2KSxDKX0sZi5zZWdtZW50Q29kZWQ9ZnVuY3Rpb24odyx4LEMpe3ZhciB2LGosejtpZih0eXBlb2YgdyE9Im51bWJlciImJihDPXgseD13LHc9dm9pZCAwKSx4PT09dm9pZCAwKXtpZih2PXRoaXMuc2VnbWVudCh3LHgsQyksIWwodikpdj12IT09dm9pZCAwP3IuZGVjb2RlKHYpOnZvaWQgMDtlbHNlIGZvcihqPTAsej12Lmxlbmd0aDtqPHo7aisrKXZbal09ci5kZWNvZGUodltqXSk7cmV0dXJuIHZ9aWYoIWwoeCkpeD10eXBlb2YgeD09InN0cmluZyJ8fHggaW5zdGFuY2VvZiBTdHJpbmc/ci5lbmNvZGUoeCk6eDtlbHNlIGZvcihqPTAsej14Lmxlbmd0aDtqPHo7aisrKXhbal09ci5lbmNvZGUoeFtqXSk7cmV0dXJuIHRoaXMuc2VnbWVudCh3LHgsQyl9O3ZhciBGPWYucXVlcnk7cmV0dXJuIGYucXVlcnk9ZnVuY3Rpb24odyx4KXtpZih3PT09ITApcmV0dXJuIHIucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtpZih0eXBlb2Ygdz09ImZ1bmN0aW9uIil7dmFyIEM9ci5wYXJzZVF1ZXJ5KHRoaXMuX3BhcnRzLnF1ZXJ5LHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLHY9dy5jYWxsKHRoaXMsQyk7cmV0dXJuIHRoaXMuX3BhcnRzLnF1ZXJ5PXIuYnVpbGRRdWVyeSh2fHxDLHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycyx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKSx0aGlzLmJ1aWxkKCF4KSx0aGlzfWVsc2UgcmV0dXJuIHchPT12b2lkIDAmJnR5cGVvZiB3IT0ic3RyaW5nIj8odGhpcy5fcGFydHMucXVlcnk9ci5idWlsZFF1ZXJ5KHcsdGhpcy5fcGFydHMuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLHRoaXMuYnVpbGQoIXgpLHRoaXMpOkYuY2FsbCh0aGlzLHcseCl9LGYuc2V0UXVlcnk9ZnVuY3Rpb24odyx4LEMpe3ZhciB2PXIucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtpZih0eXBlb2Ygdz09InN0cmluZyJ8fHcgaW5zdGFuY2VvZiBTdHJpbmcpdlt3XT14IT09dm9pZCAwP3g6bnVsbDtlbHNlIGlmKHR5cGVvZiB3PT0ib2JqZWN0Iilmb3IodmFyIGogaW4gdylkLmNhbGwodyxqKSYmKHZbal09d1tqXSk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJVUkkuYWRkUXVlcnkoKSBhY2NlcHRzIGFuIG9iamVjdCwgc3RyaW5nIGFzIHRoZSBuYW1lIHBhcmFtZXRlciIpO3JldHVybiB0aGlzLl9wYXJ0cy5xdWVyeT1yLmJ1aWxkUXVlcnkodix0aGlzLl9wYXJ0cy5kdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnMsdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSksdHlwZW9mIHchPSJzdHJpbmciJiYoQz14KSx0aGlzLmJ1aWxkKCFDKSx0aGlzfSxmLmFkZFF1ZXJ5PWZ1bmN0aW9uKHcseCxDKXt2YXIgdj1yLnBhcnNlUXVlcnkodGhpcy5fcGFydHMucXVlcnksdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSk7cmV0dXJuIHIuYWRkUXVlcnkodix3LHg9PT12b2lkIDA/bnVsbDp4KSx0aGlzLl9wYXJ0cy5xdWVyeT1yLmJ1aWxkUXVlcnkodix0aGlzLl9wYXJ0cy5kdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnMsdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSksdHlwZW9mIHchPSJzdHJpbmciJiYoQz14KSx0aGlzLmJ1aWxkKCFDKSx0aGlzfSxmLnJlbW92ZVF1ZXJ5PWZ1bmN0aW9uKHcseCxDKXt2YXIgdj1yLnBhcnNlUXVlcnkodGhpcy5fcGFydHMucXVlcnksdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSk7cmV0dXJuIHIucmVtb3ZlUXVlcnkodix3LHgpLHRoaXMuX3BhcnRzLnF1ZXJ5PXIuYnVpbGRRdWVyeSh2LHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycyx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKSx0eXBlb2YgdyE9InN0cmluZyImJihDPXgpLHRoaXMuYnVpbGQoIUMpLHRoaXN9LGYuaGFzUXVlcnk9ZnVuY3Rpb24odyx4LEMpe3ZhciB2PXIucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtyZXR1cm4gci5oYXNRdWVyeSh2LHcseCxDKX0sZi5zZXRTZWFyY2g9Zi5zZXRRdWVyeSxmLmFkZFNlYXJjaD1mLmFkZFF1ZXJ5LGYucmVtb3ZlU2VhcmNoPWYucmVtb3ZlUXVlcnksZi5oYXNTZWFyY2g9Zi5oYXNRdWVyeSxmLm5vcm1hbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJ0cy51cm4/dGhpcy5ub3JtYWxpemVQcm90b2NvbCghMSkubm9ybWFsaXplUGF0aCghMSkubm9ybWFsaXplUXVlcnkoITEpLm5vcm1hbGl6ZUZyYWdtZW50KCExKS5idWlsZCgpOnRoaXMubm9ybWFsaXplUHJvdG9jb2woITEpLm5vcm1hbGl6ZUhvc3RuYW1lKCExKS5ub3JtYWxpemVQb3J0KCExKS5ub3JtYWxpemVQYXRoKCExKS5ub3JtYWxpemVRdWVyeSghMSkubm9ybWFsaXplRnJhZ21lbnQoITEpLmJ1aWxkKCl9LGYubm9ybWFsaXplUHJvdG9jb2w9ZnVuY3Rpb24odyl7cmV0dXJuIHR5cGVvZiB0aGlzLl9wYXJ0cy5wcm90b2NvbD09InN0cmluZyImJih0aGlzLl9wYXJ0cy5wcm90b2NvbD10aGlzLl9wYXJ0cy5wcm90b2NvbC50b0xvd2VyQ2FzZSgpLHRoaXMuYnVpbGQoIXcpKSx0aGlzfSxmLm5vcm1hbGl6ZUhvc3RuYW1lPWZ1bmN0aW9uKHcpe3JldHVybiB0aGlzLl9wYXJ0cy5ob3N0bmFtZSYmKHRoaXMuaXMoIklETiIpJiZuP3RoaXMuX3BhcnRzLmhvc3RuYW1lPW4udG9BU0NJSSh0aGlzLl9wYXJ0cy5ob3N0bmFtZSk6dGhpcy5pcygiSVB2NiIpJiZlJiYodGhpcy5fcGFydHMuaG9zdG5hbWU9ZS5iZXN0KHRoaXMuX3BhcnRzLmhvc3RuYW1lKSksdGhpcy5fcGFydHMuaG9zdG5hbWU9dGhpcy5fcGFydHMuaG9zdG5hbWUudG9Mb3dlckNhc2UoKSx0aGlzLmJ1aWxkKCF3KSksdGhpc30sZi5ub3JtYWxpemVQb3J0PWZ1bmN0aW9uKHcpe3JldHVybiB0eXBlb2YgdGhpcy5fcGFydHMucHJvdG9jb2w9PSJzdHJpbmciJiZ0aGlzLl9wYXJ0cy5wb3J0PT09ci5kZWZhdWx0UG9ydHNbdGhpcy5fcGFydHMucHJvdG9jb2xdJiYodGhpcy5fcGFydHMucG9ydD1udWxsLHRoaXMuYnVpbGQoIXcpKSx0aGlzfSxmLm5vcm1hbGl6ZVBhdGg9ZnVuY3Rpb24odyl7dmFyIHg9dGhpcy5fcGFydHMucGF0aDtpZigheClyZXR1cm4gdGhpcztpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIHRoaXMuX3BhcnRzLnBhdGg9ci5yZWNvZGVVcm5QYXRoKHRoaXMuX3BhcnRzLnBhdGgpLHRoaXMuYnVpbGQoIXcpLHRoaXM7aWYodGhpcy5fcGFydHMucGF0aD09PSIvIilyZXR1cm4gdGhpczt4PXIucmVjb2RlUGF0aCh4KTt2YXIgQyx2PSIiLGosejtmb3IoeC5jaGFyQXQoMCkhPT0iLyImJihDPSEwLHg9Ii8iK3gpLCh4LnNsaWNlKC0zKT09PSIvLi4ifHx4LnNsaWNlKC0yKT09PSIvLiIpJiYoeCs9Ii8iKSx4PXgucmVwbGFjZSgvKFwvKFwuXC8pKyl8KFwvXC4kKS9nLCIvIikucmVwbGFjZSgvXC97Mix9L2csIi8iKSxDJiYodj14LnN1YnN0cmluZygxKS5tYXRjaCgvXihcLlwuXC8pKy8pfHwiIix2JiYodj12WzBdKSk7aj14LnNlYXJjaCgvXC9cLlwuKFwvfCQpLyksaiE9PS0xOyl7aWYoaj09PTApe3g9eC5zdWJzdHJpbmcoMyk7Y29udGludWV9ej14LnN1YnN0cmluZygwLGopLmxhc3RJbmRleE9mKCIvIiksej09PS0xJiYoej1qKSx4PXguc3Vic3RyaW5nKDAseikreC5zdWJzdHJpbmcoaiszKX1yZXR1cm4gQyYmdGhpcy5pcygicmVsYXRpdmUiKSYmKHg9dit4LnN1YnN0cmluZygxKSksdGhpcy5fcGFydHMucGF0aD14LHRoaXMuYnVpbGQoIXcpLHRoaXN9LGYubm9ybWFsaXplUGF0aG5hbWU9Zi5ub3JtYWxpemVQYXRoLGYubm9ybWFsaXplUXVlcnk9ZnVuY3Rpb24odyl7cmV0dXJuIHR5cGVvZiB0aGlzLl9wYXJ0cy5xdWVyeT09InN0cmluZyImJih0aGlzLl9wYXJ0cy5xdWVyeS5sZW5ndGg/dGhpcy5xdWVyeShyLnBhcnNlUXVlcnkodGhpcy5fcGFydHMucXVlcnksdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSkpOnRoaXMuX3BhcnRzLnF1ZXJ5PW51bGwsdGhpcy5idWlsZCghdykpLHRoaXN9LGYubm9ybWFsaXplRnJhZ21lbnQ9ZnVuY3Rpb24odyl7cmV0dXJuIHRoaXMuX3BhcnRzLmZyYWdtZW50fHwodGhpcy5fcGFydHMuZnJhZ21lbnQ9bnVsbCx0aGlzLmJ1aWxkKCF3KSksdGhpc30sZi5ub3JtYWxpemVTZWFyY2g9Zi5ub3JtYWxpemVRdWVyeSxmLm5vcm1hbGl6ZUhhc2g9Zi5ub3JtYWxpemVGcmFnbWVudCxmLmlzbzg4NTk9ZnVuY3Rpb24oKXt2YXIgdz1yLmVuY29kZSx4PXIuZGVjb2RlO3IuZW5jb2RlPWVzY2FwZSxyLmRlY29kZT1kZWNvZGVVUklDb21wb25lbnQ7dHJ5e3RoaXMubm9ybWFsaXplKCl9ZmluYWxseXtyLmVuY29kZT13LHIuZGVjb2RlPXh9cmV0dXJuIHRoaXN9LGYudW5pY29kZT1mdW5jdGlvbigpe3ZhciB3PXIuZW5jb2RlLHg9ci5kZWNvZGU7ci5lbmNvZGU9RSxyLmRlY29kZT11bmVzY2FwZTt0cnl7dGhpcy5ub3JtYWxpemUoKX1maW5hbGx5e3IuZW5jb2RlPXcsci5kZWNvZGU9eH1yZXR1cm4gdGhpc30sZi5yZWFkYWJsZT1mdW5jdGlvbigpe3ZhciB3PXRoaXMuY2xvbmUoKTt3LnVzZXJuYW1lKCIiKS5wYXNzd29yZCgiIikubm9ybWFsaXplKCk7dmFyIHg9IiI7aWYody5fcGFydHMucHJvdG9jb2wmJih4Kz13Ll9wYXJ0cy5wcm90b2NvbCsiOi8vIiksdy5fcGFydHMuaG9zdG5hbWUmJih3LmlzKCJwdW55Y29kZSIpJiZuPyh4Kz1uLnRvVW5pY29kZSh3Ll9wYXJ0cy5ob3N0bmFtZSksdy5fcGFydHMucG9ydCYmKHgrPSI6Iit3Ll9wYXJ0cy5wb3J0KSk6eCs9dy5ob3N0KCkpLHcuX3BhcnRzLmhvc3RuYW1lJiZ3Ll9wYXJ0cy5wYXRoJiZ3Ll9wYXJ0cy5wYXRoLmNoYXJBdCgwKSE9PSIvIiYmKHgrPSIvIikseCs9dy5wYXRoKCEwKSx3Ll9wYXJ0cy5xdWVyeSl7Zm9yKHZhciBDPSIiLHY9MCxqPXcuX3BhcnRzLnF1ZXJ5LnNwbGl0KCImIiksej1qLmxlbmd0aDt2PHo7disrKXt2YXIgRD0oalt2XXx8IiIpLnNwbGl0KCI9Iik7Qys9IiYiK3IuZGVjb2RlUXVlcnkoRFswXSx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKS5yZXBsYWNlKC8mL2csIiUyNiIpLERbMV0hPT12b2lkIDAmJihDKz0iPSIrci5kZWNvZGVRdWVyeShEWzFdLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLnJlcGxhY2UoLyYvZywiJTI2IikpfXgrPSI/IitDLnN1YnN0cmluZygxKX1yZXR1cm4geCs9ci5kZWNvZGVRdWVyeSh3Lmhhc2goKSwhMCkseH0sZi5hYnNvbHV0ZVRvPWZ1bmN0aW9uKHcpe3ZhciB4PXRoaXMuY2xvbmUoKSxDPVsicHJvdG9jb2wiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiaG9zdG5hbWUiLCJwb3J0Il0sdixqLHo7aWYodGhpcy5fcGFydHMudXJuKXRocm93IG5ldyBFcnJvcigiVVJOcyBkbyBub3QgaGF2ZSBhbnkgZ2VuZXJhbGx5IGRlZmluZWQgaGllcmFyY2hpY2FsIGNvbXBvbmVudHMiKTtpZih3IGluc3RhbmNlb2Ygcnx8KHc9bmV3IHIodykpLHguX3BhcnRzLnByb3RvY29sfHwoeC5fcGFydHMucHJvdG9jb2w9dy5fcGFydHMucHJvdG9jb2wsdGhpcy5fcGFydHMuaG9zdG5hbWUpKXJldHVybiB4O2ZvcihqPTA7ej1DW2pdO2orKyl4Ll9wYXJ0c1t6XT13Ll9wYXJ0c1t6XTtyZXR1cm4geC5fcGFydHMucGF0aD8oeC5fcGFydHMucGF0aC5zdWJzdHJpbmcoLTIpPT09Ii4uIiYmKHguX3BhcnRzLnBhdGgrPSIvIikseC5wYXRoKCkuY2hhckF0KDApIT09Ii8iJiYodj13LmRpcmVjdG9yeSgpLHY9dnx8KHcucGF0aCgpLmluZGV4T2YoIi8iKT09PTA/Ii8iOiIiKSx4Ll9wYXJ0cy5wYXRoPSh2P3YrIi8iOiIiKSt4Ll9wYXJ0cy5wYXRoLHgubm9ybWFsaXplUGF0aCgpKSk6KHguX3BhcnRzLnBhdGg9dy5fcGFydHMucGF0aCx4Ll9wYXJ0cy5xdWVyeXx8KHguX3BhcnRzLnF1ZXJ5PXcuX3BhcnRzLnF1ZXJ5KSkseC5idWlsZCgpLHh9LGYucmVsYXRpdmVUbz1mdW5jdGlvbih3KXt2YXIgeD10aGlzLmNsb25lKCkubm9ybWFsaXplKCksQyx2LGoseixEO2lmKHguX3BhcnRzLnVybil0aHJvdyBuZXcgRXJyb3IoIlVSTnMgZG8gbm90IGhhdmUgYW55IGdlbmVyYWxseSBkZWZpbmVkIGhpZXJhcmNoaWNhbCBjb21wb25lbnRzIik7aWYodz1uZXcgcih3KS5ub3JtYWxpemUoKSxDPXguX3BhcnRzLHY9dy5fcGFydHMsej14LnBhdGgoKSxEPXcucGF0aCgpLHouY2hhckF0KDApIT09Ii8iKXRocm93IG5ldyBFcnJvcigiVVJJIGlzIGFscmVhZHkgcmVsYXRpdmUiKTtpZihELmNoYXJBdCgwKSE9PSIvIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxjdWxhdGUgYSBVUkkgcmVsYXRpdmUgdG8gYW5vdGhlciByZWxhdGl2ZSBVUkkiKTtpZihDLnByb3RvY29sPT09di5wcm90b2NvbCYmKEMucHJvdG9jb2w9bnVsbCksQy51c2VybmFtZSE9PXYudXNlcm5hbWV8fEMucGFzc3dvcmQhPT12LnBhc3N3b3JkfHxDLnByb3RvY29sIT09bnVsbHx8Qy51c2VybmFtZSE9PW51bGx8fEMucGFzc3dvcmQhPT1udWxsKXJldHVybiB4LmJ1aWxkKCk7aWYoQy5ob3N0bmFtZT09PXYuaG9zdG5hbWUmJkMucG9ydD09PXYucG9ydClDLmhvc3RuYW1lPW51bGwsQy5wb3J0PW51bGw7ZWxzZSByZXR1cm4geC5idWlsZCgpO2lmKHo9PT1EKXJldHVybiBDLnBhdGg9IiIseC5idWlsZCgpO2lmKGo9ci5jb21tb25QYXRoKHosRCksIWopcmV0dXJuIHguYnVpbGQoKTt2YXIgRz12LnBhdGguc3Vic3RyaW5nKGoubGVuZ3RoKS5yZXBsYWNlKC9bXlwvXSokLywiIikucmVwbGFjZSgvLio/XC8vZywiLi4vIik7cmV0dXJuIEMucGF0aD1HK0MucGF0aC5zdWJzdHJpbmcoai5sZW5ndGgpfHwiLi8iLHguYnVpbGQoKX0sZi5lcXVhbHM9ZnVuY3Rpb24odyl7dmFyIHg9dGhpcy5jbG9uZSgpLEM9bmV3IHIodyksdj17fSxqPXt9LHo9e30sRCxHLFY7aWYoeC5ub3JtYWxpemUoKSxDLm5vcm1hbGl6ZSgpLHgudG9TdHJpbmcoKT09PUMudG9TdHJpbmcoKSlyZXR1cm4hMDtpZihEPXgucXVlcnkoKSxHPUMucXVlcnkoKSx4LnF1ZXJ5KCIiKSxDLnF1ZXJ5KCIiKSx4LnRvU3RyaW5nKCkhPT1DLnRvU3RyaW5nKCl8fEQubGVuZ3RoIT09Ry5sZW5ndGgpcmV0dXJuITE7dj1yLnBhcnNlUXVlcnkoRCx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKSxqPXIucGFyc2VRdWVyeShHLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpO2ZvcihWIGluIHYpaWYoZC5jYWxsKHYsVikpe2lmKGwodltWXSkpe2lmKCFiKHZbVl0saltWXSkpcmV0dXJuITF9ZWxzZSBpZih2W1ZdIT09altWXSlyZXR1cm4hMTt6W1ZdPSEwfWZvcihWIGluIGopaWYoZC5jYWxsKGosVikmJiF6W1ZdKXJldHVybiExO3JldHVybiEwfSxmLnByZXZlbnRJbnZhbGlkSG9zdG5hbWU9ZnVuY3Rpb24odyl7cmV0dXJuIHRoaXMuX3BhcnRzLnByZXZlbnRJbnZhbGlkSG9zdG5hbWU9ISF3LHRoaXN9LGYuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzPWZ1bmN0aW9uKHcpe3JldHVybiB0aGlzLl9wYXJ0cy5kdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnM9ISF3LHRoaXN9LGYuZXNjYXBlUXVlcnlTcGFjZT1mdW5jdGlvbih3KXtyZXR1cm4gdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZT0hIXcsdGhpc30scn0pfSk7ZnVuY3Rpb24gJEMobil7cmV0dXJuKG4ubGVuZ3RoPT09MHx8bltuLmxlbmd0aC0xXSE9PSIvIikmJihuPWAke259L2ApLG59dmFyIHRBLG5BPVgoKCk9Pnt0QT0kQ30pO2Z1bmN0aW9uIG9BKG4sZSl7aWYobj09PW51bGx8fHR5cGVvZiBuIT0ib2JqZWN0IilyZXR1cm4gbjtlPWU/PyExO2xldCB0PW5ldyBuLmNvbnN0cnVjdG9yO2ZvcihsZXQgbyBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkobykpe2xldCBhPW5bb107ZSYmKGE9b0EoYSxlKSksdFtvXT1hfXJldHVybiB0fXZhciBRYyxhQT1YKCgpPT57UWM9b0F9KTtmdW5jdGlvbiByQShuLGUsdCl7dD10Pz8hMTtsZXQgbz17fSxhPV8obikscj1fKGUpLGksZixkO2lmKGEpZm9yKGkgaW4gbiluLmhhc093blByb3BlcnR5KGkpJiYoZj1uW2ldLHImJnQmJnR5cGVvZiBmPT0ib2JqZWN0IiYmZS5oYXNPd25Qcm9wZXJ0eShpKT8oZD1lW2ldLHR5cGVvZiBkPT0ib2JqZWN0Ij9vW2ldPXJBKGYsZCx0KTpvW2ldPWYpOm9baV09Zik7aWYocilmb3IoaSBpbiBlKWUuaGFzT3duUHJvcGVydHkoaSkmJiFvLmhhc093blByb3BlcnR5KGkpJiYoZD1lW2ldLG9baV09ZCk7cmV0dXJuIG99dmFyIF9hLGdsPVgoKCk9PntzZSgpO19hPXJBfSk7ZnVuY3Rpb24gZU0oKXtsZXQgbixlLHQ9bmV3IFByb21pc2UoZnVuY3Rpb24obyxhKXtuPW8sZT1hfSk7cmV0dXJue3Jlc29sdmU6bixyZWplY3Q6ZSxwcm9taXNlOnR9fXZhciBRaSxkYj1YKCgpPT57UWk9ZU19KTtmdW5jdGlvbiB1YihuLGUpe2xldCB0O3JldHVybiB0eXBlb2YgZG9jdW1lbnQ8InUiJiYodD1kb2N1bWVudCksdWIuX2ltcGxlbWVudGF0aW9uKG4sZSx0KX12YXIgaUEsVGYsbGI9WCgoKT0+e2lBPWhhKGRpKCksMSk7c2UoKTt1Yi5faW1wbGVtZW50YXRpb249ZnVuY3Rpb24obixlLHQpe2lmKCFfKGUpKXtpZih0eXBlb2YgdD4idSIpcmV0dXJuIG47ZT10LmJhc2VVUkk/P3QubG9jYXRpb24uaHJlZn1sZXQgbz1uZXcgaUEuZGVmYXVsdChuKTtyZXR1cm4gby5zY2hlbWUoKSE9PSIiP28udG9TdHJpbmcoKTpvLmFic29sdXRlVG8oZSkudG9TdHJpbmcoKX07VGY9dWJ9KTtmdW5jdGlvbiB0TShuLGUpe2xldCB0PSIiLG89bi5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBvIT09LTEmJih0PW4uc3Vic3RyaW5nKDAsbysxKSksZSYmKG49bmV3IGNBLmRlZmF1bHQobiksbi5xdWVyeSgpLmxlbmd0aCE9PTAmJih0Kz1gPyR7bi5xdWVyeSgpfWApLG4uZnJhZ21lbnQoKS5sZW5ndGghPT0wJiYodCs9YCMke24uZnJhZ21lbnQoKX1gKSksdH12YXIgY0Esc0EsZkE9WCgoKT0+e2NBPWhhKGRpKCksMSk7c0E9dE19KTtmdW5jdGlvbiBuTShuKXtsZXQgZT1uZXcgZEEuZGVmYXVsdChuKTtlLm5vcm1hbGl6ZSgpO2xldCB0PWUucGF0aCgpLG89dC5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBvIT09LTEmJih0PXQuc3Vic3RyKG8rMSkpLG89dC5sYXN0SW5kZXhPZigiLiIpLG89PT0tMT90PSIiOnQ9dC5zdWJzdHIobysxKSx0fXZhciBkQSx1QSxsQT1YKCgpPT57ZEE9aGEoZGkoKSwxKTt1QT1uTX0pO2Z1bmN0aW9uIG9NKG4sZSx0KXtfKGUpfHwoZT1uLndpZHRoKSxfKHQpfHwodD1uLmhlaWdodCk7bGV0IG89aEFbZV07XyhvKXx8KG89e30saEFbZV09byk7bGV0IGE9b1t0XTtpZighXyhhKSl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7ci53aWR0aD1lLHIuaGVpZ2h0PXQsYT1yLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSksYS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLG9bdF09YX1yZXR1cm4gYS5kcmF3SW1hZ2UobiwwLDAsZSx0KSxhLmdldEltYWdlRGF0YSgwLDAsZSx0KS5kYXRhfXZhciBoQSxoYixtQT1YKCgpPT57c2UoKTtoQT17fTtoYj1vTX0pO2Z1bmN0aW9uIHJNKG4pe3JldHVybiBhTS50ZXN0KG4pfXZhciBhTSxfbCxtYj1YKCgpPT57YU09L15ibG9iOi9pO19sPXJNfSk7ZnVuY3Rpb24gaU0obil7Xyhlcil8fChlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpLGVyLmhyZWY9d2luZG93LmxvY2F0aW9uLmhyZWY7bGV0IGU9ZXIuaG9zdCx0PWVyLnByb3RvY29sO3JldHVybiBlci5ocmVmPW4sZXIuaHJlZj1lci5ocmVmLHQhPT1lci5wcm90b2NvbHx8ZSE9PWVyLmhvc3R9dmFyIGVyLEVmLGJiPVgoKCk9PntzZSgpO0VmPWlNfSk7ZnVuY3Rpb24gc00obil7cmV0dXJuIGNNLnRlc3Qobil9dmFyIGNNLHlsLHBiPVgoKCk9PntjTT0vXmRhdGE6L2k7eWw9c019KTtmdW5jdGlvbiBmTShuKXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtyZXR1cm4gZS5hc3luYz0hMCxlLnNyYz1uLG5ldyBQcm9taXNlKCh0LG8pPT57d2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQmJmUuc2V0QXR0cmlidXRlKCJjcm9zc29yaWdpbiIsImFub255bW91cyIpO2xldCBhPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtlLm9ubG9hZD12b2lkIDAsYS5yZW1vdmVDaGlsZChlKSx0KCl9LGUub25lcnJvcj1mdW5jdGlvbihyKXtvKHIpfSxhLmFwcGVuZENoaWxkKGUpfSl9dmFyIGJBLHBBPVgoKCk9PntiQT1mTX0pO2Z1bmN0aW9uIGRNKG4pe2xldCBlPSIiO2ZvcihsZXQgdCBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkodCkpe2xldCBvPW5bdF0sYT1gJHtlbmNvZGVVUklDb21wb25lbnQodCl9PWA7aWYoQXJyYXkuaXNBcnJheShvKSlmb3IobGV0IHI9MCxpPW8ubGVuZ3RoO3I8aTsrK3IpZSs9YCR7YStlbmNvZGVVUklDb21wb25lbnQob1tyXSl9JmA7ZWxzZSBlKz1gJHthK2VuY29kZVVSSUNvbXBvbmVudChvKX0mYH1yZXR1cm4gZT1lLnNsaWNlKDAsLTEpLGV9dmFyIGdBLF9BPVgoKCk9PntnQT1kTX0pO2Z1bmN0aW9uIHVNKG4pe2xldCBlPXt9O2lmKG49PT0iIilyZXR1cm4gZTtsZXQgdD1uLnJlcGxhY2UoL1wrL2csIiUyMCIpLnNwbGl0KC9bJjtdLyk7Zm9yKGxldCBvPTAsYT10Lmxlbmd0aDtvPGE7KytvKXtsZXQgcj10W29dLnNwbGl0KCI9IiksaT1kZWNvZGVVUklDb21wb25lbnQoclswXSksZj1yWzFdO18oZik/Zj1kZWNvZGVVUklDb21wb25lbnQoZik6Zj0iIjtsZXQgZD1lW2ldO3R5cGVvZiBkPT0ic3RyaW5nIj9lW2ldPVtkLGZdOkFycmF5LmlzQXJyYXkoZCk/ZC5wdXNoKGYpOmVbaV09Zn1yZXR1cm4gZX12YXIgeUEsQUE9WCgoKT0+e3NlKCk7eUE9dU19KTt2YXIgd0EsRW4sQWw9WCgoKT0+e3dBPXtVTklTU1VFRDowLElTU1VFRDoxLEFDVElWRToyLFJFQ0VJVkVEOjMsQ0FOQ0VMTEVEOjQsRkFJTEVEOjV9O09iamVjdC5mcmVlemUod0EpO0VuPXdBfSk7dmFyIFRBLEVBLFJBPVgoKCk9PntUQT17VEVSUkFJTjowLElNQUdFUlk6MSxUSUxFUzNEOjIsT1RIRVI6M307T2JqZWN0LmZyZWV6ZShUQSk7RUE9VEF9KTtmdW5jdGlvbiB3bChuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLnRocm90dGxlQnlTZXJ2ZXI/PyExLHQ9bi50aHJvdHRsZT8/ITE7dGhpcy51cmw9bi51cmwsdGhpcy5yZXF1ZXN0RnVuY3Rpb249bi5yZXF1ZXN0RnVuY3Rpb24sdGhpcy5jYW5jZWxGdW5jdGlvbj1uLmNhbmNlbEZ1bmN0aW9uLHRoaXMucHJpb3JpdHlGdW5jdGlvbj1uLnByaW9yaXR5RnVuY3Rpb24sdGhpcy5wcmlvcml0eT1uLnByaW9yaXR5Pz8wLHRoaXMudGhyb3R0bGU9dCx0aGlzLnRocm90dGxlQnlTZXJ2ZXI9ZSx0aGlzLnR5cGU9bi50eXBlPz9FQS5PVEhFUix0aGlzLnNlcnZlcktleT1uLnNlcnZlcktleSx0aGlzLnN0YXRlPUVuLlVOSVNTVUVELHRoaXMuZGVmZXJyZWQ9dm9pZCAwLHRoaXMuY2FuY2VsbGVkPSExfXZhciB4QSxPQT1YKCgpPT57c3QoKTtzZSgpO0FsKCk7UkEoKTt3bC5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxsZWQ9ITB9O3dsLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbihuKXtyZXR1cm4gXyhuKT8obi51cmw9dGhpcy51cmwsbi5yZXF1ZXN0RnVuY3Rpb249dGhpcy5yZXF1ZXN0RnVuY3Rpb24sbi5jYW5jZWxGdW5jdGlvbj10aGlzLmNhbmNlbEZ1bmN0aW9uLG4ucHJpb3JpdHlGdW5jdGlvbj10aGlzLnByaW9yaXR5RnVuY3Rpb24sbi5wcmlvcml0eT10aGlzLnByaW9yaXR5LG4udGhyb3R0bGU9dGhpcy50aHJvdHRsZSxuLnRocm90dGxlQnlTZXJ2ZXI9dGhpcy50aHJvdHRsZUJ5U2VydmVyLG4udHlwZT10aGlzLnR5cGUsbi5zZXJ2ZXJLZXk9dGhpcy5zZXJ2ZXJLZXksbi5zdGF0ZT1Fbi5VTklTU1VFRCxuLmRlZmVycmVkPXZvaWQgMCxuLmNhbmNlbGxlZD0hMSxuKTpuZXcgd2wodGhpcyl9O3hBPXdsfSk7ZnVuY3Rpb24gbE0obil7bGV0IGU9e307aWYoIW4pcmV0dXJuIGU7bGV0IHQ9bi5zcGxpdChgXHIKYCk7Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDsrK28pe2xldCBhPXRbb10scj1hLmluZGV4T2YoIjogIik7aWYocj4wKXtsZXQgaT1hLnN1YnN0cmluZygwLHIpLGY9YS5zdWJzdHJpbmcocisyKTtlW2ldPWZ9fXJldHVybiBlfXZhciBTQSxDQT1YKCgpPT57U0E9bE19KTtmdW5jdGlvbiBNQShuLGUsdCl7dGhpcy5zdGF0dXNDb2RlPW4sdGhpcy5yZXNwb25zZT1lLHRoaXMucmVzcG9uc2VIZWFkZXJzPXQsdHlwZW9mIHRoaXMucmVzcG9uc2VIZWFkZXJzPT0ic3RyaW5nIiYmKHRoaXMucmVzcG9uc2VIZWFkZXJzPVNBKHRoaXMucmVzcG9uc2VIZWFkZXJzKSl9dmFyIFJmLE5BPVgoKCk9PntzZSgpO0NBKCk7TUEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7bGV0IG49IlJlcXVlc3QgaGFzIGZhaWxlZC4iO3JldHVybiBfKHRoaXMuc3RhdHVzQ29kZSkmJihuKz1gIFN0YXR1cyBDb2RlOiAke3RoaXMuc3RhdHVzQ29kZX1gKSxufTtSZj1NQX0pO2Z1bmN0aW9uIHhmKCl7dGhpcy5fbGlzdGVuZXJzPW5ldyBNYXAsdGhpcy5fdG9SZW1vdmU9bmV3IE1hcCx0aGlzLl90b0FkZD1uZXcgTWFwLHRoaXMuX2ludm9raW5nTGlzdGVuZXJzPSExLHRoaXMuX2xpc3RlbmVyQ291bnQ9MH1mdW5jdGlvbiBfYihuLGUsdCxvKXtlLmhhcyh0KXx8ZS5zZXQodCxuZXcgU2V0KTtsZXQgYT1lLmdldCh0KTtyZXR1cm4gYS5oYXMobyk/ITE6KGEuYWRkKG8pLCEwKX1mdW5jdGlvbiBnYihuLGUsdCxvKXtsZXQgYT1lLmdldCh0KTtpZighYXx8IWEuaGFzKG8pKXJldHVybiExO2lmKG4uX2ludm9raW5nTGlzdGVuZXJzKXtpZighX2IobixuLl90b1JlbW92ZSx0LG8pKXJldHVybiExfWVsc2UgYS5kZWxldGUobyksYS5zaXplPT09MCYmZS5kZWxldGUodCk7cmV0dXJuITB9dmFyIFRsLHliPVgoKCk9PntzZSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHhmLnByb3RvdHlwZSx7bnVtYmVyT2ZMaXN0ZW5lcnM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9saXN0ZW5lckNvdW50fX19KTt4Zi5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihuLGUpe2xldCB0PXRoaXMsbz10Ll9pbnZva2luZ0xpc3RlbmVycz90Ll90b0FkZDp0Ll9saXN0ZW5lcnM7cmV0dXJuIF9iKHRoaXMsbyxuLGUpJiZ0Ll9saXN0ZW5lckNvdW50KyssZnVuY3Rpb24oKXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIobixlKX19O3hmLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9Z2IodGhpcyx0aGlzLl9saXN0ZW5lcnMsbixlKSxvPWdiKHRoaXMsdGhpcy5fdG9BZGQsbixlKSxhPXR8fG87cmV0dXJuIGEmJnRoaXMuX2xpc3RlbmVyQ291bnQtLSxhfTt4Zi5wcm90b3R5cGUucmFpc2VFdmVudD1mdW5jdGlvbigpe3RoaXMuX2ludm9raW5nTGlzdGVuZXJzPSEwO2ZvcihsZXRbbixlXW9mIHRoaXMuX2xpc3RlbmVycy5lbnRyaWVzKCkpaWYoXyhuKSlmb3IobGV0IHQgb2YgZSluLmFwcGx5KHQsYXJndW1lbnRzKTt0aGlzLl9pbnZva2luZ0xpc3RlbmVycz0hMTtmb3IobGV0W24sZV1vZiB0aGlzLl90b0FkZC5lbnRyaWVzKCkpZm9yKGxldCB0IG9mIGUpX2IodGhpcyx0aGlzLl9saXN0ZW5lcnMsbix0KTt0aGlzLl90b0FkZC5jbGVhcigpO2ZvcihsZXRbbixlXW9mIHRoaXMuX3RvUmVtb3ZlLmVudHJpZXMoKSlmb3IobGV0IHQgb2YgZSlnYih0aGlzLHRoaXMuX2xpc3RlbmVycyxuLHQpO3RoaXMuX3RvUmVtb3ZlLmNsZWFyKCl9O1RsPXhmfSk7ZnVuY3Rpb24gJGkobil7dGhpcy5fY29tcGFyYXRvcj1uLmNvbXBhcmF0b3IsdGhpcy5fYXJyYXk9W10sdGhpcy5fbGVuZ3RoPTAsdGhpcy5fbWF4aW11bUxlbmd0aD12b2lkIDB9ZnVuY3Rpb24gQWIobixlLHQpe2xldCBvPW5bZV07bltlXT1uW3RdLG5bdF09b312YXIgSUEsUEE9WCgoKT0+e3NlKCk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoJGkucHJvdG90eXBlLHtsZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sZW5ndGh9fSxpbnRlcm5hbEFycmF5OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXJyYXl9fSxtYXhpbXVtTGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF4aW11bUxlbmd0aH0sc2V0OmZ1bmN0aW9uKG4pe2xldCBlPXRoaXMuX2xlbmd0aDtpZihuPGUpe2xldCB0PXRoaXMuX2FycmF5O2ZvcihsZXQgbz1uO288ZTsrK28pdFtvXT12b2lkIDA7dGhpcy5fbGVuZ3RoPW4sdC5sZW5ndGg9bn10aGlzLl9tYXhpbXVtTGVuZ3RoPW59fSxjb21wYXJhdG9yOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29tcGFyYXRvcn19fSk7JGkucHJvdG90eXBlLnJlc2VydmU9ZnVuY3Rpb24obil7bj1uPz90aGlzLl9sZW5ndGgsdGhpcy5fYXJyYXkubGVuZ3RoPW59OyRpLnByb3RvdHlwZS5oZWFwaWZ5PWZ1bmN0aW9uKG4pe249bj8/MDtsZXQgZT10aGlzLl9sZW5ndGgsdD10aGlzLl9jb21wYXJhdG9yLG89dGhpcy5fYXJyYXksYT0tMSxyPSEwO2Zvcig7cjspe2xldCBpPTIqKG4rMSksZj1pLTE7ZjxlJiZ0KG9bZl0sb1tuXSk8MD9hPWY6YT1uLGk8ZSYmdChvW2ldLG9bYV0pPDAmJihhPWkpLGEhPT1uPyhBYihvLGEsbiksbj1hKTpyPSExfX07JGkucHJvdG90eXBlLnJlc29ydD1mdW5jdGlvbigpe2xldCBuPXRoaXMuX2xlbmd0aDtmb3IobGV0IGU9TWF0aC5jZWlsKG4vMik7ZT49MDstLWUpdGhpcy5oZWFwaWZ5KGUpfTskaS5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKG4pe2xldCBlPXRoaXMuX2FycmF5LHQ9dGhpcy5fY29tcGFyYXRvcixvPXRoaXMuX21heGltdW1MZW5ndGgsYT10aGlzLl9sZW5ndGgrKztmb3IoYTxlLmxlbmd0aD9lW2FdPW46ZS5wdXNoKG4pO2EhPT0wOyl7bGV0IGk9TWF0aC5mbG9vcigoYS0xKS8yKTtpZih0KGVbYV0sZVtpXSk8MClBYihlLGEsaSksYT1pO2Vsc2UgYnJlYWt9bGV0IHI7cmV0dXJuIF8obykmJnRoaXMuX2xlbmd0aD5vJiYocj1lW29dLHRoaXMuX2xlbmd0aD1vKSxyfTskaS5wcm90b3R5cGUucG9wPWZ1bmN0aW9uKG4pe2lmKG49bj8/MCx0aGlzLl9sZW5ndGg9PT0wKXJldHVybjtsZXQgZT10aGlzLl9hcnJheSx0PWVbbl07cmV0dXJuIEFiKGUsbiwtLXRoaXMuX2xlbmd0aCksdGhpcy5oZWFwaWZ5KG4pLGVbdGhpcy5fbGVuZ3RoXT12b2lkIDAsdH07SUE9JGl9KTtmdW5jdGlvbiBoTShuLGUpe3JldHVybiBuLnByaW9yaXR5LWUucHJpb3JpdHl9ZnVuY3Rpb24gX24oKXt9ZnVuY3Rpb24ga0Eobil7XyhuLnByaW9yaXR5RnVuY3Rpb24pJiYobi5wcmlvcml0eT1uLnByaW9yaXR5RnVuY3Rpb24oKSl9ZnVuY3Rpb24gdkEobil7cmV0dXJuIG4uc3RhdGU9PT1Fbi5VTklTU1VFRCYmKG4uc3RhdGU9RW4uSVNTVUVELG4uZGVmZXJyZWQ9UWkoKSksbi5kZWZlcnJlZC5wcm9taXNlfWZ1bmN0aW9uIGJNKG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihuLnN0YXRlPT09RW4uQ0FOQ0VMTEVEKXJldHVybjtsZXQgdD1uLmRlZmVycmVkOy0tSHQubnVtYmVyT2ZBY3RpdmVSZXF1ZXN0cywtLWtyW24uc2VydmVyS2V5XSxSbC5yYWlzZUV2ZW50KCksbi5zdGF0ZT1Fbi5SRUNFSVZFRCxuLmRlZmVycmVkPXZvaWQgMCx0LnJlc29sdmUoZSl9fWZ1bmN0aW9uIHBNKG4pe3JldHVybiBmdW5jdGlvbihlKXtuLnN0YXRlIT09RW4uQ0FOQ0VMTEVEJiYoKytIdC5udW1iZXJPZkZhaWxlZFJlcXVlc3RzLC0tSHQubnVtYmVyT2ZBY3RpdmVSZXF1ZXN0cywtLWtyW24uc2VydmVyS2V5XSxSbC5yYWlzZUV2ZW50KGUpLG4uc3RhdGU9RW4uRkFJTEVELG4uZGVmZXJyZWQucmVqZWN0KGUpKX19ZnVuY3Rpb24gRkEobil7bGV0IGU9dkEobik7cmV0dXJuIG4uc3RhdGU9RW4uQUNUSVZFLHRyLnB1c2gobiksKytIdC5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzLCsrSHQubnVtYmVyT2ZBY3RpdmVSZXF1ZXN0c0V2ZXIsKytrcltuLnNlcnZlcktleV0sbi5yZXF1ZXN0RnVuY3Rpb24oKS50aGVuKGJNKG4pKS5jYXRjaChwTShuKSksZX1mdW5jdGlvbiBlYyhuKXtsZXQgZT1uLnN0YXRlPT09RW4uQUNUSVZFO2lmKG4uc3RhdGU9RW4uQ0FOQ0VMTEVELCsrSHQubnVtYmVyT2ZDYW5jZWxsZWRSZXF1ZXN0cyxfKG4uZGVmZXJyZWQpKXtsZXQgdD1uLmRlZmVycmVkO3QucHJvbWlzZS5jYXRjaCgoKT0+e30pLG4uZGVmZXJyZWQ9dm9pZCAwLHQucmVqZWN0KG5ldyBudChgUmVxdWVzdCBjYW5jZWxsZWQ6ICIke24udXJsfSJgKSl9ZSYmKC0tSHQubnVtYmVyT2ZBY3RpdmVSZXF1ZXN0cywtLWtyW24uc2VydmVyS2V5XSwrK0h0Lm51bWJlck9mQ2FuY2VsbGVkQWN0aXZlUmVxdWVzdHMpLF8obi5jYW5jZWxGdW5jdGlvbikmJm4uY2FuY2VsRnVuY3Rpb24oKX1mdW5jdGlvbiBnTSgpe19uLmRlYnVnU2hvd1N0YXRpc3RpY3MmJihIdC5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzPT09MCYmSHQubGFzdE51bWJlck9mQWN0aXZlUmVxdWVzdHM+MCYmKEh0Lm51bWJlck9mQXR0ZW1wdGVkUmVxdWVzdHM+MCYmKGNvbnNvbGUubG9nKGBOdW1iZXIgb2YgYXR0ZW1wdGVkIHJlcXVlc3RzOiAke0h0Lm51bWJlck9mQXR0ZW1wdGVkUmVxdWVzdHN9YCksSHQubnVtYmVyT2ZBdHRlbXB0ZWRSZXF1ZXN0cz0wKSxIdC5udW1iZXJPZkNhbmNlbGxlZFJlcXVlc3RzPjAmJihjb25zb2xlLmxvZyhgTnVtYmVyIG9mIGNhbmNlbGxlZCByZXF1ZXN0czogJHtIdC5udW1iZXJPZkNhbmNlbGxlZFJlcXVlc3RzfWApLEh0Lm51bWJlck9mQ2FuY2VsbGVkUmVxdWVzdHM9MCksSHQubnVtYmVyT2ZDYW5jZWxsZWRBY3RpdmVSZXF1ZXN0cz4wJiYoY29uc29sZS5sb2coYE51bWJlciBvZiBjYW5jZWxsZWQgYWN0aXZlIHJlcXVlc3RzOiAke0h0Lm51bWJlck9mQ2FuY2VsbGVkQWN0aXZlUmVxdWVzdHN9YCksSHQubnVtYmVyT2ZDYW5jZWxsZWRBY3RpdmVSZXF1ZXN0cz0wKSxIdC5udW1iZXJPZkZhaWxlZFJlcXVlc3RzPjAmJihjb25zb2xlLmxvZyhgTnVtYmVyIG9mIGZhaWxlZCByZXF1ZXN0czogJHtIdC5udW1iZXJPZkZhaWxlZFJlcXVlc3RzfWApLEh0Lm51bWJlck9mRmFpbGVkUmVxdWVzdHM9MCkpLEh0Lmxhc3ROdW1iZXJPZkFjdGl2ZVJlcXVlc3RzPUh0Lm51bWJlck9mQWN0aXZlUmVxdWVzdHMpfXZhciBFbCxIdCwkYyxPbyx0cixrcixtTSxSbCx4bCxEQT1YKCgpPT57RWw9aGEoZGkoKSwxKTtkYigpO3NlKCk7eWIoKTtQQSgpO21iKCk7cGIoKTtBbCgpO3BhKCk7SHQ9e251bWJlck9mQXR0ZW1wdGVkUmVxdWVzdHM6MCxudW1iZXJPZkFjdGl2ZVJlcXVlc3RzOjAsbnVtYmVyT2ZDYW5jZWxsZWRSZXF1ZXN0czowLG51bWJlck9mQ2FuY2VsbGVkQWN0aXZlUmVxdWVzdHM6MCxudW1iZXJPZkZhaWxlZFJlcXVlc3RzOjAsbnVtYmVyT2ZBY3RpdmVSZXF1ZXN0c0V2ZXI6MCxsYXN0TnVtYmVyT2ZBY3RpdmVSZXF1ZXN0czowfSwkYz0yMCxPbz1uZXcgSUEoe2NvbXBhcmF0b3I6aE19KTtPby5tYXhpbXVtTGVuZ3RoPSRjO09vLnJlc2VydmUoJGMpO3RyPVtdLGtyPXt9LG1NPXR5cGVvZiBkb2N1bWVudDwidSI/bmV3IEVsLmRlZmF1bHQoZG9jdW1lbnQubG9jYXRpb24uaHJlZik6bmV3IEVsLmRlZmF1bHQsUmw9bmV3IFRsO19uLm1heGltdW1SZXF1ZXN0cz01MDtfbi5tYXhpbXVtUmVxdWVzdHNQZXJTZXJ2ZXI9MTg7X24ucmVxdWVzdHNCeVNlcnZlcj17fTtfbi50aHJvdHRsZVJlcXVlc3RzPSEwO19uLmRlYnVnU2hvd1N0YXRpc3RpY3M9ITE7X24ucmVxdWVzdENvbXBsZXRlZEV2ZW50PVJsO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKF9uLHtzdGF0aXN0aWNzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSHR9fSxwcmlvcml0eUhlYXBMZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiAkY30sc2V0OmZ1bmN0aW9uKG4pe2lmKG48JGMpZm9yKDtPby5sZW5ndGg+bjspe2xldCBlPU9vLnBvcCgpO2VjKGUpfSRjPW4sT28ubWF4aW11bUxlbmd0aD1uLE9vLnJlc2VydmUobil9fX0pO19uLnNlcnZlckhhc09wZW5TbG90cz1mdW5jdGlvbihuLGUpe2U9ZT8/MTtsZXQgdD1fbi5yZXF1ZXN0c0J5U2VydmVyW25dPz9fbi5tYXhpbXVtUmVxdWVzdHNQZXJTZXJ2ZXI7cmV0dXJuIGtyW25dK2U8PXR9O19uLmhlYXBIYXNPcGVuU2xvdHM9ZnVuY3Rpb24obil7cmV0dXJuIE9vLmxlbmd0aCtuPD0kY307X24udXBkYXRlPWZ1bmN0aW9uKCl7bGV0IG4sZSx0PTAsbz10ci5sZW5ndGg7Zm9yKG49MDtuPG87KytuKXtpZihlPXRyW25dLGUuY2FuY2VsbGVkJiZlYyhlKSxlLnN0YXRlIT09RW4uQUNUSVZFKXsrK3Q7Y29udGludWV9dD4wJiYodHJbbi10XT1lKX10ci5sZW5ndGgtPXQ7bGV0IGE9T28uaW50ZXJuYWxBcnJheSxyPU9vLmxlbmd0aDtmb3Iobj0wO248cjsrK24pa0EoYVtuXSk7T28ucmVzb3J0KCk7bGV0IGk9TWF0aC5tYXgoX24ubWF4aW11bVJlcXVlc3RzLXRyLmxlbmd0aCwwKSxmPTA7Zm9yKDtmPGkmJk9vLmxlbmd0aD4wOyl7aWYoZT1Pby5wb3AoKSxlLmNhbmNlbGxlZCl7ZWMoZSk7Y29udGludWV9aWYoZS50aHJvdHRsZUJ5U2VydmVyJiYhX24uc2VydmVySGFzT3BlblNsb3RzKGUuc2VydmVyS2V5KSl7ZWMoZSk7Y29udGludWV9RkEoZSksKytmfWdNKCl9O19uLmdldFNlcnZlcktleT1mdW5jdGlvbihuKXtsZXQgZT1uZXcgRWwuZGVmYXVsdChuKTtlLnNjaGVtZSgpPT09IiImJihlPWUuYWJzb2x1dGVUbyhtTSksZS5ub3JtYWxpemUoKSk7bGV0IHQ9ZS5hdXRob3JpdHkoKTsvOi8udGVzdCh0KXx8KHQ9YCR7dH06JHtlLnNjaGVtZSgpPT09Imh0dHBzIj8iNDQzIjoiODAifWApO2xldCBvPWtyW3RdO3JldHVybiBfKG8pfHwoa3JbdF09MCksdH07X24ucmVxdWVzdD1mdW5jdGlvbihuKXtpZih5bChuLnVybCl8fF9sKG4udXJsKSlyZXR1cm4gUmwucmFpc2VFdmVudCgpLG4uc3RhdGU9RW4uUkVDRUlWRUQsbi5yZXF1ZXN0RnVuY3Rpb24oKTtpZigrK0h0Lm51bWJlck9mQXR0ZW1wdGVkUmVxdWVzdHMsXyhuLnNlcnZlcktleSl8fChuLnNlcnZlcktleT1fbi5nZXRTZXJ2ZXJLZXkobi51cmwpKSxfbi50aHJvdHRsZVJlcXVlc3RzJiZuLnRocm90dGxlQnlTZXJ2ZXImJiFfbi5zZXJ2ZXJIYXNPcGVuU2xvdHMobi5zZXJ2ZXJLZXkpKXJldHVybjtpZighX24udGhyb3R0bGVSZXF1ZXN0c3x8IW4udGhyb3R0bGUpcmV0dXJuIEZBKG4pO2lmKHRyLmxlbmd0aD49X24ubWF4aW11bVJlcXVlc3RzKXJldHVybjtrQShuKTtsZXQgZT1Pby5pbnNlcnQobik7aWYoXyhlKSl7aWYoZT09PW4pcmV0dXJuO2VjKGUpfXJldHVybiB2QShuKX07X24uY2xlYXJGb3JTcGVjcz1mdW5jdGlvbigpe2Zvcig7T28ubGVuZ3RoPjA7KXtsZXQgZT1Pby5wb3AoKTtlYyhlKX1sZXQgbj10ci5sZW5ndGg7Zm9yKGxldCBlPTA7ZTxuOysrZSllYyh0cltlXSk7dHIubGVuZ3RoPTAsa3I9e30sSHQubnVtYmVyT2ZBdHRlbXB0ZWRSZXF1ZXN0cz0wLEh0Lm51bWJlck9mQWN0aXZlUmVxdWVzdHM9MCxIdC5udW1iZXJPZkNhbmNlbGxlZFJlcXVlc3RzPTAsSHQubnVtYmVyT2ZDYW5jZWxsZWRBY3RpdmVSZXF1ZXN0cz0wLEh0Lm51bWJlck9mRmFpbGVkUmVxdWVzdHM9MCxIdC5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzRXZlcj0wLEh0Lmxhc3ROdW1iZXJPZkFjdGl2ZVJlcXVlc3RzPTB9O19uLm51bWJlck9mQWN0aXZlUmVxdWVzdHNCeVNlcnZlcj1mdW5jdGlvbihuKXtyZXR1cm4ga3Jbbl19O19uLnJlcXVlc3RIZWFwPU9vO3hsPV9ufSk7ZnVuY3Rpb24gX00obil7bGV0IGU9bmV3IEJBLmRlZmF1bHQobik7ZS5ub3JtYWxpemUoKTtsZXQgdD1lLmF1dGhvcml0eSgpO2lmKHQubGVuZ3RoIT09MCl7aWYoZS5hdXRob3JpdHkodCksdC5pbmRleE9mKCJAIikhPT0tMSYmKHQ9dC5zcGxpdCgiQCIpWzFdKSx0LmluZGV4T2YoIjoiKT09PS0xKXtsZXQgbz1lLnNjaGVtZSgpO2lmKG8ubGVuZ3RoPT09MCYmKG89d2luZG93LmxvY2F0aW9uLnByb3RvY29sLG89by5zdWJzdHJpbmcoMCxvLmxlbmd0aC0xKSksbz09PSJodHRwIil0Kz0iOjgwIjtlbHNlIGlmKG89PT0iaHR0cHMiKXQrPSI6NDQzIjtlbHNlIHJldHVybn1yZXR1cm4gdH19dmFyIEJBLE9mLGVzLHdiLGpBPVgoKCk9PntCQT1oYShkaSgpLDEpO3NlKCk7T2Y9e30sZXM9e307T2YuYWRkPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9YCR7bi50b0xvd2VyQ2FzZSgpfToke2V9YDtfKGVzW3RdKXx8KGVzW3RdPSEwKX07T2YucmVtb3ZlPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9YCR7bi50b0xvd2VyQ2FzZSgpfToke2V9YDtfKGVzW3RdKSYmZGVsZXRlIGVzW3RdfTtPZi5jb250YWlucz1mdW5jdGlvbihuKXtsZXQgZT1fTShuKTtyZXR1cm4hIShfKGUpJiZfKGVzW2VdKSl9O09mLmNsZWFyPWZ1bmN0aW9uKCl7ZXM9e319O3diPU9mfSk7ZnVuY3Rpb24gdmUobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1QsdHlwZW9mIG49PSJzdHJpbmciJiYobj17dXJsOm59KSx0aGlzLl91cmw9dm9pZCAwLHRoaXMuX3RlbXBsYXRlVmFsdWVzPW5yKG4udGVtcGxhdGVWYWx1ZXMse30pLHRoaXMuX3F1ZXJ5UGFyYW1ldGVycz1ucihuLnF1ZXJ5UGFyYW1ldGVycyx7fSksdGhpcy5oZWFkZXJzPW5yKG4uaGVhZGVycyx7fSksdGhpcy5yZXF1ZXN0PW4ucmVxdWVzdD8/bmV3IHhBLHRoaXMucHJveHk9bi5wcm94eSx0aGlzLnJldHJ5Q2FsbGJhY2s9bi5yZXRyeUNhbGxiYWNrLHRoaXMucmV0cnlBdHRlbXB0cz1uLnJldHJ5QXR0ZW1wdHM/PzAsdGhpcy5fcmV0cnlDb3VudD0wLG4ucGFyc2VVcmw/PyEwP3RoaXMucGFyc2VVcmwobi51cmwsITAsITApOnRoaXMuX3VybD1uLnVybCx0aGlzLl9jcmVkaXRzPW4uY3JlZGl0c31mdW5jdGlvbiBucihuLGUpe3JldHVybiBfKG4pP1FjKG4pOmV9ZnVuY3Rpb24geU0obil7cmV0dXJuIG4ubGVuZ3RoPT09MD97fTpuLmluZGV4T2YoIj0iKT09PS0xP3tbbl06dm9pZCAwfTp5QShuKX1mdW5jdGlvbiBTbChuLGUsdCl7aWYoIXQpcmV0dXJuIF9hKG4sZSk7bGV0IG89UWMobiwhMCk7Zm9yKGxldCBhIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShhKSl7bGV0IHI9b1thXSxpPWVbYV07XyhyKT8oQXJyYXkuaXNBcnJheShyKXx8KHI9b1thXT1bcl0pLG9bYV09ci5jb25jYXQoaSkpOm9bYV09QXJyYXkuaXNBcnJheShpKT9pLnNsaWNlKCk6aX1yZXR1cm4gb31mdW5jdGlvbiBBTShuKXtsZXQgZT1PYmplY3Qua2V5cyhuKTtyZXR1cm4gZS5sZW5ndGg9PT0wPyIiOmUubGVuZ3RoPT09MSYmIV8obltlWzBdXSk/YD8ke2VbMF19YDpgPyR7Z0Eobil9YH1mdW5jdGlvbiBHQShuLGUsdCl7bGV0IG89e307b1tlXT10LG4uc2V0UXVlcnlQYXJhbWV0ZXJzKG8pO2xldCBhPW4ucmVxdWVzdCxyPW4udXJsO2EudXJsPXIsYS5yZXF1ZXN0RnVuY3Rpb249ZnVuY3Rpb24oKXtsZXQgZj1RaSgpO3JldHVybiB3aW5kb3dbdF09ZnVuY3Rpb24oZCl7Zi5yZXNvbHZlKGQpO3RyeXtkZWxldGUgd2luZG93W3RdfWNhdGNoe3dpbmRvd1t0XT12b2lkIDB9fSx2ZS5fSW1wbGVtZW50YXRpb25zLmxvYWRBbmRFeGVjdXRlU2NyaXB0KHIsdCxmKSxmLnByb21pc2V9O2xldCBpPXhsLnJlcXVlc3QoYSk7aWYoXyhpKSlyZXR1cm4gaS5jYXRjaChmdW5jdGlvbihmKXtyZXR1cm4gYS5zdGF0ZSE9PUVuLkZBSUxFRD9Qcm9taXNlLnJlamVjdChmKTpuLnJldHJ5T25FcnJvcihmKS50aGVuKGZ1bmN0aW9uKGQpe3JldHVybiBkPyhhLnN0YXRlPUVuLlVOSVNTVUVELGEuZGVmZXJyZWQ9dm9pZCAwLEdBKG4sZSx0KSk6UHJvbWlzZS5yZWplY3QoZil9KX0pfWZ1bmN0aW9uIFRiKG4pe2lmKG4uc3RhdGU9PT1Fbi5JU1NVRUR8fG4uc3RhdGU9PT1Fbi5BQ1RJVkUpdGhyb3cgbmV3IG50KCJUaGUgUmVzb3VyY2UgaXMgYWxyZWFkeSBiZWluZyBmZXRjaGVkLiIpO24uc3RhdGU9RW4uVU5JU1NVRUQsbi5kZWZlcnJlZD12b2lkIDB9ZnVuY3Rpb24gT2wobixlKXtsZXQgdD1kZWNvZGVVUklDb21wb25lbnQoZSk7cmV0dXJuIG4/YXRvYih0KTp0fWZ1bmN0aW9uIFVBKG4sZSl7bGV0IHQ9T2wobixlKSxvPW5ldyBBcnJheUJ1ZmZlcih0Lmxlbmd0aCksYT1uZXcgVWludDhBcnJheShvKTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKylhW3JdPXQuY2hhckNvZGVBdChyKTtyZXR1cm4gb31mdW5jdGlvbiBUTShuLGUpe2U9ZT8/IiI7bGV0IHQ9blsxXSxvPSEhblsyXSxhPW5bM10scixpO3N3aXRjaChlKXtjYXNlIiI6Y2FzZSJ0ZXh0IjpyZXR1cm4gT2wobyxhKTtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gVUEobyxhKTtjYXNlImJsb2IiOnJldHVybiByPVVBKG8sYSksbmV3IEJsb2IoW3JdLHt0eXBlOnR9KTtjYXNlImRvY3VtZW50IjpyZXR1cm4gaT1uZXcgRE9NUGFyc2VyLGkucGFyc2VGcm9tU3RyaW5nKE9sKG8sYSksdCk7Y2FzZSJqc29uIjpyZXR1cm4gSlNPTi5wYXJzZShPbChvLGEpKTtkZWZhdWx0On19ZnVuY3Rpb24gRU0obixlLHQsbyxhLHIsaSl7ZmV0Y2gobix7bWV0aG9kOnQsaGVhZGVyczphfSkudGhlbihhc3luYyBmPT57aWYoIWYub2spe2xldCBkPXt9O2YuaGVhZGVycy5mb3JFYWNoKChjLHUpPT57ZFt1XT1jfSksci5yZWplY3QobmV3IFJmKGYuc3RhdHVzLGYsZCkpO3JldHVybn1zd2l0Y2goZSl7Y2FzZSJ0ZXh0IjpyLnJlc29sdmUoZi50ZXh0KCkpO2JyZWFrO2Nhc2UianNvbiI6ci5yZXNvbHZlKGYuanNvbigpKTticmVhaztkZWZhdWx0OnIucmVzb2x2ZShuZXcgVWludDhBcnJheShhd2FpdCBmLmFycmF5QnVmZmVyKCkpLmJ1ZmZlcik7YnJlYWt9fSkuY2F0Y2goKCk9PntyLnJlamVjdChuZXcgUmYpfSl9dmFyIExBLHpBLHRzLHdNLFJNLHlhLG5zPVgoKCk9PntMQT1oYShkaSgpLDEpO25BKCk7SG0oKTthQSgpO2dsKCk7c3QoKTtkYigpO3NlKCk7bGIoKTtmQSgpO2xBKCk7bUEoKTttYigpO2JiKCk7cGIoKTtwQSgpO1VlKCk7X0EoKTtBQSgpO09BKCk7TkEoKTtEQSgpO0FsKCk7cGEoKTtqQSgpO3pBPShmdW5jdGlvbigpe3RyeXtsZXQgbj1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIG4ub3BlbigiR0VUIiwiIyIsITApLG4ucmVzcG9uc2VUeXBlPSJibG9iIixuLnJlc3BvbnNlVHlwZT09PSJibG9iIn1jYXRjaHtyZXR1cm4hMX19KSgpO3ZlLmNyZWF0ZUlmTmVlZGVkPWZ1bmN0aW9uKG4pe3JldHVybiBuIGluc3RhbmNlb2YgdmU/bi5nZXREZXJpdmVkUmVzb3VyY2Uoe3JlcXVlc3Q6bi5yZXF1ZXN0fSk6dHlwZW9mIG4hPSJzdHJpbmciP246bmV3IHZlKHt1cmw6bn0pfTt2ZS5zdXBwb3J0c0ltYWdlQml0bWFwT3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiBfKHRzKT90czp0eXBlb2YgY3JlYXRlSW1hZ2VCaXRtYXAhPSJmdW5jdGlvbiI/KHRzPVByb21pc2UucmVzb2x2ZSghMSksdHMpOih0cz12ZS5mZXRjaEJsb2Ioe3VybDoiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FJQUFBQ1FkMVBlQUFBQUJHZEJUVUVBQUU0ZzNyRWlEZ0FBQUNCalNGSk5BQUI2SmdBQWdJUUFBUG9BQUFDQTZBQUFkVEFBQU9wZ0FBQTZtQUFBRjNDY3VsRThBQUFBREVsRVFWUUkxMk5nNkdBQUFBRVVBSW5nRTNaaUFBQUFBRWxGVGtTdVFtQ0MifSkudGhlbihmdW5jdGlvbihlKXtsZXQgdD17aW1hZ2VPcmllbnRhdGlvbjoiZmxpcFkiLHByZW11bHRpcGx5QWxwaGE6Im5vbmUiLGNvbG9yU3BhY2VDb252ZXJzaW9uOiJub25lIn07cmV0dXJuIFByb21pc2UuYWxsKFtjcmVhdGVJbWFnZUJpdG1hcChlLHQpLGNyZWF0ZUltYWdlQml0bWFwKGUpXSl9KS50aGVuKGZ1bmN0aW9uKGUpe2xldCB0PWhiKGVbMF0pLG89aGIoZVsxXSk7cmV0dXJuIHRbMV0hPT1vWzFdfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4hMX0pLHRzKX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXModmUse2lzQmxvYlN1cHBvcnRlZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHpBfX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyh2ZS5wcm90b3R5cGUse3F1ZXJ5UGFyYW1ldGVyczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1ldGVyc319LHRlbXBsYXRlVmFsdWVzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGVtcGxhdGVWYWx1ZXN9fSx1cmw6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFVybENvbXBvbmVudCghMCwhMCl9LHNldDpmdW5jdGlvbihuKXt0aGlzLnBhcnNlVXJsKG4sITEsITEpfX0sZXh0ZW5zaW9uOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdUEodGhpcy5fdXJsKX19LGlzRGF0YVVyaTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHlsKHRoaXMuX3VybCl9fSxpc0Jsb2JVcmk6e2dldDpmdW5jdGlvbigpe3JldHVybiBfbCh0aGlzLl91cmwpfX0saXNDcm9zc09yaWdpblVybDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEVmKHRoaXMuX3VybCl9fSxoYXNIZWFkZXJzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5oZWFkZXJzKS5sZW5ndGg+MH19LGNyZWRpdHM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVkaXRzfX19KTt2ZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRVcmxDb21wb25lbnQoITAsITApfTt2ZS5wcm90b3R5cGUucGFyc2VVcmw9ZnVuY3Rpb24obixlLHQsbyl7bGV0IGE9bmV3IExBLmRlZmF1bHQobikscj15TShhLnF1ZXJ5KCkpO3RoaXMuX3F1ZXJ5UGFyYW1ldGVycz1lP1NsKHIsdGhpcy5xdWVyeVBhcmFtZXRlcnMsdCk6cixhLnNlYXJjaCgiIiksYS5mcmFnbWVudCgiIiksXyhvKSYmYS5zY2hlbWUoKT09PSIiJiYoYT1hLmFic29sdXRlVG8oVGYobykpKSx0aGlzLl91cmw9YS50b1N0cmluZygpfTt2ZS5wcm90b3R5cGUuZ2V0VXJsQ29tcG9uZW50PWZ1bmN0aW9uKG4sZSl7aWYodGhpcy5pc0RhdGFVcmkpcmV0dXJuIHRoaXMuX3VybDtsZXQgdD10aGlzLl91cmw7biYmKHQ9YCR7dH0ke0FNKHRoaXMucXVlcnlQYXJhbWV0ZXJzKX1gKSx0PXQucmVwbGFjZSgvJTdCL2csInsiKS5yZXBsYWNlKC8lN0QvZywifSIpO2xldCBvPXRoaXMuX3RlbXBsYXRlVmFsdWVzO3JldHVybiBPYmplY3Qua2V5cyhvKS5sZW5ndGg+MCYmKHQ9dC5yZXBsYWNlKC97KC4qPyl9L2csZnVuY3Rpb24oYSxyKXtsZXQgaT1vW3JdO3JldHVybiBfKGkpP2VuY29kZVVSSUNvbXBvbmVudChpKTphfSkpLGUmJl8odGhpcy5wcm94eSkmJih0PXRoaXMucHJveHkuZ2V0VVJMKHQpKSx0fTt2ZS5wcm90b3R5cGUuc2V0UXVlcnlQYXJhbWV0ZXJzPWZ1bmN0aW9uKG4sZSl7ZT90aGlzLl9xdWVyeVBhcmFtZXRlcnM9U2wodGhpcy5fcXVlcnlQYXJhbWV0ZXJzLG4sITEpOnRoaXMuX3F1ZXJ5UGFyYW1ldGVycz1TbChuLHRoaXMuX3F1ZXJ5UGFyYW1ldGVycywhMSl9O3ZlLnByb3RvdHlwZS5hcHBlbmRRdWVyeVBhcmFtZXRlcnM9ZnVuY3Rpb24obil7dGhpcy5fcXVlcnlQYXJhbWV0ZXJzPVNsKG4sdGhpcy5fcXVlcnlQYXJhbWV0ZXJzLCEwKX07dmUucHJvdG90eXBlLnNldFRlbXBsYXRlVmFsdWVzPWZ1bmN0aW9uKG4sZSl7ZT90aGlzLl90ZW1wbGF0ZVZhbHVlcz1fYSh0aGlzLl90ZW1wbGF0ZVZhbHVlcyxuKTp0aGlzLl90ZW1wbGF0ZVZhbHVlcz1fYShuLHRoaXMuX3RlbXBsYXRlVmFsdWVzKX07dmUucHJvdG90eXBlLmdldERlcml2ZWRSZXNvdXJjZT1mdW5jdGlvbihuKXtsZXQgZT10aGlzLmNsb25lKCk7aWYoZS5fcmV0cnlDb3VudD0wLF8obi51cmwpKXtsZXQgdD1uLnByZXNlcnZlUXVlcnlQYXJhbWV0ZXJzPz8hMTtlLnBhcnNlVXJsKG4udXJsLCEwLHQsdGhpcy5fdXJsKX1yZXR1cm4gXyhuLnF1ZXJ5UGFyYW1ldGVycykmJihlLl9xdWVyeVBhcmFtZXRlcnM9X2Eobi5xdWVyeVBhcmFtZXRlcnMsZS5xdWVyeVBhcmFtZXRlcnMpKSxfKG4udGVtcGxhdGVWYWx1ZXMpJiYoZS5fdGVtcGxhdGVWYWx1ZXM9X2Eobi50ZW1wbGF0ZVZhbHVlcyxlLnRlbXBsYXRlVmFsdWVzKSksXyhuLmhlYWRlcnMpJiYoZS5oZWFkZXJzPV9hKG4uaGVhZGVycyxlLmhlYWRlcnMpKSxfKG4ucHJveHkpJiYoZS5wcm94eT1uLnByb3h5KSxfKG4ucmVxdWVzdCkmJihlLnJlcXVlc3Q9bi5yZXF1ZXN0KSxfKG4ucmV0cnlDYWxsYmFjaykmJihlLnJldHJ5Q2FsbGJhY2s9bi5yZXRyeUNhbGxiYWNrKSxfKG4ucmV0cnlBdHRlbXB0cykmJihlLnJldHJ5QXR0ZW1wdHM9bi5yZXRyeUF0dGVtcHRzKSxlfTt2ZS5wcm90b3R5cGUucmV0cnlPbkVycm9yPWZ1bmN0aW9uKG4pe2xldCBlPXRoaXMucmV0cnlDYWxsYmFjaztpZih0eXBlb2YgZSE9ImZ1bmN0aW9uInx8dGhpcy5fcmV0cnlDb3VudD49dGhpcy5yZXRyeUF0dGVtcHRzKXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpO2xldCB0PXRoaXM7cmV0dXJuIFByb21pc2UucmVzb2x2ZShlKHRoaXMsbikpLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuKyt0Ll9yZXRyeUNvdW50LG99KX07dmUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKG4pe3JldHVybiBfKG4pPyhuLl91cmw9dGhpcy5fdXJsLG4uX3F1ZXJ5UGFyYW1ldGVycz1RYyh0aGlzLl9xdWVyeVBhcmFtZXRlcnMpLG4uX3RlbXBsYXRlVmFsdWVzPVFjKHRoaXMuX3RlbXBsYXRlVmFsdWVzKSxuLmhlYWRlcnM9UWModGhpcy5oZWFkZXJzKSxuLnByb3h5PXRoaXMucHJveHksbi5yZXRyeUNhbGxiYWNrPXRoaXMucmV0cnlDYWxsYmFjayxuLnJldHJ5QXR0ZW1wdHM9dGhpcy5yZXRyeUF0dGVtcHRzLG4uX3JldHJ5Q291bnQ9MCxuLnJlcXVlc3Q9dGhpcy5yZXF1ZXN0LmNsb25lKCksbik6bmV3IHZlKHt1cmw6dGhpcy5fdXJsLHF1ZXJ5UGFyYW1ldGVyczp0aGlzLnF1ZXJ5UGFyYW1ldGVycyx0ZW1wbGF0ZVZhbHVlczp0aGlzLnRlbXBsYXRlVmFsdWVzLGhlYWRlcnM6dGhpcy5oZWFkZXJzLHByb3h5OnRoaXMucHJveHkscmV0cnlDYWxsYmFjazp0aGlzLnJldHJ5Q2FsbGJhY2sscmV0cnlBdHRlbXB0czp0aGlzLnJldHJ5QXR0ZW1wdHMscmVxdWVzdDp0aGlzLnJlcXVlc3QuY2xvbmUoKSxwYXJzZVVybDohMSxjcmVkaXRzOl8odGhpcy5jcmVkaXRzKT90aGlzLmNyZWRpdHMuc2xpY2UoKTp2b2lkIDB9KX07dmUucHJvdG90eXBlLmdldEJhc2VVcmk9ZnVuY3Rpb24obil7cmV0dXJuIHNBKHRoaXMuZ2V0VXJsQ29tcG9uZW50KG4pLG4pfTt2ZS5wcm90b3R5cGUuYXBwZW5kRm9yd2FyZFNsYXNoPWZ1bmN0aW9uKCl7dGhpcy5fdXJsPXRBKHRoaXMuX3VybCl9O3ZlLnByb3RvdHlwZS5mZXRjaEFycmF5QnVmZmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmV0Y2goe3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIifSl9O3ZlLmZldGNoQXJyYXlCdWZmZXI9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB2ZShuKS5mZXRjaEFycmF5QnVmZmVyKCl9O3ZlLnByb3RvdHlwZS5mZXRjaEJsb2I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mZXRjaCh7cmVzcG9uc2VUeXBlOiJibG9iIn0pfTt2ZS5mZXRjaEJsb2I9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB2ZShuKS5mZXRjaEJsb2IoKX07dmUucHJvdG90eXBlLmZldGNoSW1hZ2U9ZnVuY3Rpb24obil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5wcmVmZXJJbWFnZUJpdG1hcD8/ITEsdD1uLnByZWZlckJsb2I/PyExLG89bi5mbGlwWT8/ITEsYT1uLnNraXBDb2xvclNwYWNlQ29udmVyc2lvbj8/ITE7aWYoVGIodGhpcy5yZXF1ZXN0KSwhekF8fHRoaXMuaXNEYXRhVXJpfHx0aGlzLmlzQmxvYlVyaXx8IXRoaXMuaGFzSGVhZGVycyYmIXQpcmV0dXJuIHRoaXMuX2ZldGNoSW1hZ2Uoe3Jlc291cmNlOnRoaXMsZmxpcFk6byxza2lwQ29sb3JTcGFjZUNvbnZlcnNpb246YSxwcmVmZXJJbWFnZUJpdG1hcDplfSk7bGV0IHI9dGhpcy5mZXRjaEJsb2IoKTtpZighXyhyKSlyZXR1cm47bGV0IGksZixkLGM7cmV0dXJuIHZlLnN1cHBvcnRzSW1hZ2VCaXRtYXBPcHRpb25zKCkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gaT11LGY9aSYmZSxyfSkudGhlbihmdW5jdGlvbih1KXtpZighXyh1KSlyZXR1cm47aWYoYz11LGYpcmV0dXJuIHZlLmNyZWF0ZUltYWdlQml0bWFwRnJvbUJsb2IodSx7ZmxpcFk6byxwcmVtdWx0aXBseUFscGhhOiExLHNraXBDb2xvclNwYWNlQ29udmVyc2lvbjphfSk7bGV0IGw9d2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwodSk7cmV0dXJuIGQ9bmV3IHZlKHt1cmw6bH0pLGQuX2ZldGNoSW1hZ2Uoe2ZsaXBZOm8sc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uOmEscHJlZmVySW1hZ2VCaXRtYXA6ITF9KX0pLnRoZW4oZnVuY3Rpb24odSl7aWYoXyh1KSlyZXR1cm4gdS5ibG9iPWMsZnx8d2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoZC51cmwpLHV9KS5jYXRjaChmdW5jdGlvbih1KXtyZXR1cm4gXyhkKSYmd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoZC51cmwpLHUuYmxvYj1jLFByb21pc2UucmVqZWN0KHUpfSl9O3ZlLnByb3RvdHlwZS5fZmV0Y2hJbWFnZT1mdW5jdGlvbihuKXtsZXQgZT10aGlzLHQ9bi5mbGlwWSxvPW4uc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uLGE9bi5wcmVmZXJJbWFnZUJpdG1hcCxyPWUucmVxdWVzdDtyLnVybD1lLnVybCxyLnJlcXVlc3RGdW5jdGlvbj1mdW5jdGlvbigpe2xldCBmPSExOyFlLmlzRGF0YVVyaSYmIWUuaXNCbG9iVXJpJiYoZj1lLmlzQ3Jvc3NPcmlnaW5VcmwpO2xldCBkPVFpKCk7cmV0dXJuIHZlLl9JbXBsZW1lbnRhdGlvbnMuY3JlYXRlSW1hZ2UocixmLGQsdCxvLGEpLGQucHJvbWlzZX07bGV0IGk9eGwucmVxdWVzdChyKTtpZihfKGkpKXJldHVybiBpLmNhdGNoKGZ1bmN0aW9uKGYpe3JldHVybiByLnN0YXRlIT09RW4uRkFJTEVEP1Byb21pc2UucmVqZWN0KGYpOmUucmV0cnlPbkVycm9yKGYpLnRoZW4oZnVuY3Rpb24oZCl7cmV0dXJuIGQ/KHIuc3RhdGU9RW4uVU5JU1NVRUQsci5kZWZlcnJlZD12b2lkIDAsZS5fZmV0Y2hJbWFnZSh7ZmxpcFk6dCxza2lwQ29sb3JTcGFjZUNvbnZlcnNpb246byxwcmVmZXJJbWFnZUJpdG1hcDphfSkpOlByb21pc2UucmVqZWN0KGYpfSl9KX07dmUuZmV0Y2hJbWFnZT1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHZlKG4pLmZldGNoSW1hZ2Uoe2ZsaXBZOm4uZmxpcFksc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uOm4uc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uLHByZWZlckJsb2I6bi5wcmVmZXJCbG9iLHByZWZlckltYWdlQml0bWFwOm4ucHJlZmVySW1hZ2VCaXRtYXB9KX07dmUucHJvdG90eXBlLmZldGNoVGV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZldGNoKHtyZXNwb25zZVR5cGU6InRleHQifSl9O3ZlLmZldGNoVGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHZlKG4pLmZldGNoVGV4dCgpfTt2ZS5wcm90b3R5cGUuZmV0Y2hKc29uPWZ1bmN0aW9uKCl7bGV0IG49dGhpcy5mZXRjaCh7cmVzcG9uc2VUeXBlOiJ0ZXh0IixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sKi8qO3E9MC4wMSJ9fSk7aWYoXyhuKSlyZXR1cm4gbi50aGVuKGZ1bmN0aW9uKGUpe2lmKF8oZSkpcmV0dXJuIEpTT04ucGFyc2UoZSl9KX07dmUuZmV0Y2hKc29uPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgdmUobikuZmV0Y2hKc29uKCl9O3ZlLnByb3RvdHlwZS5mZXRjaFhNTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZldGNoKHtyZXNwb25zZVR5cGU6ImRvY3VtZW50IixvdmVycmlkZU1pbWVUeXBlOiJ0ZXh0L3htbCJ9KX07dmUuZmV0Y2hYTUw9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB2ZShuKS5mZXRjaFhNTCgpfTt2ZS5wcm90b3R5cGUuZmV0Y2hKc29ucD1mdW5jdGlvbihuKXtuPW4/PyJjYWxsYmFjayIsVGIodGhpcy5yZXF1ZXN0KTtsZXQgZTtkbyBlPWBsb2FkSnNvbnAke2submV4dFJhbmRvbU51bWJlcigpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIsOCl9YDt3aGlsZShfKHdpbmRvd1tlXSkpO3JldHVybiBHQSh0aGlzLG4sZSl9O3ZlLmZldGNoSnNvbnA9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB2ZShuKS5mZXRjaEpzb25wKG4uY2FsbGJhY2tQYXJhbWV0ZXJOYW1lKX07dmUucHJvdG90eXBlLl9tYWtlUmVxdWVzdD1mdW5jdGlvbihuKXtsZXQgZT10aGlzO1RiKGUucmVxdWVzdCk7bGV0IHQ9ZS5yZXF1ZXN0LG89ZS51cmw7dC51cmw9byx0LnJlcXVlc3RGdW5jdGlvbj1mdW5jdGlvbigpe2xldCByPW4ucmVzcG9uc2VUeXBlLGk9X2Eobi5oZWFkZXJzLGUuaGVhZGVycyksZj1uLm92ZXJyaWRlTWltZVR5cGUsZD1uLm1ldGhvZCxjPW4uZGF0YSx1PVFpKCksbD12ZS5fSW1wbGVtZW50YXRpb25zLmxvYWRXaXRoWGhyKG8scixkLGMsaSx1LGYpO3JldHVybiBfKGwpJiZfKGwuYWJvcnQpJiYodC5jYW5jZWxGdW5jdGlvbj1mdW5jdGlvbigpe2wuYWJvcnQoKX0pLHUucHJvbWlzZX07bGV0IGE9eGwucmVxdWVzdCh0KTtpZihfKGEpKXJldHVybiBhLnRoZW4oZnVuY3Rpb24ocil7cmV0dXJuIHQuY2FuY2VsRnVuY3Rpb249dm9pZCAwLHJ9KS5jYXRjaChmdW5jdGlvbihyKXtyZXR1cm4gdC5jYW5jZWxGdW5jdGlvbj12b2lkIDAsdC5zdGF0ZSE9PUVuLkZBSUxFRD9Qcm9taXNlLnJlamVjdChyKTplLnJldHJ5T25FcnJvcihyKS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpPyh0LnN0YXRlPUVuLlVOSVNTVUVELHQuZGVmZXJyZWQ9dm9pZCAwLGUuZmV0Y2gobikpOlByb21pc2UucmVqZWN0KHIpfSl9KX07d009L15kYXRhOiguKj8pKDtiYXNlNjQpPywoLiopJC87dmUucHJvdG90eXBlLmZldGNoPWZ1bmN0aW9uKG4pe3JldHVybiBuPW5yKG4se30pLG4ubWV0aG9kPSJHRVQiLHRoaXMuX21ha2VSZXF1ZXN0KG4pfTt2ZS5mZXRjaD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHZlKG4pLmZldGNoKHtyZXNwb25zZVR5cGU6bi5yZXNwb25zZVR5cGUsb3ZlcnJpZGVNaW1lVHlwZTpuLm92ZXJyaWRlTWltZVR5cGV9KX07dmUucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbihuKXtyZXR1cm4gbj1ucihuLHt9KSxuLm1ldGhvZD0iREVMRVRFIix0aGlzLl9tYWtlUmVxdWVzdChuKX07dmUuZGVsZXRlPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgdmUobikuZGVsZXRlKHtyZXNwb25zZVR5cGU6bi5yZXNwb25zZVR5cGUsb3ZlcnJpZGVNaW1lVHlwZTpuLm92ZXJyaWRlTWltZVR5cGUsZGF0YTpuLmRhdGF9KX07dmUucHJvdG90eXBlLmhlYWQ9ZnVuY3Rpb24obil7cmV0dXJuIG49bnIobix7fSksbi5tZXRob2Q9IkhFQUQiLHRoaXMuX21ha2VSZXF1ZXN0KG4pfTt2ZS5oZWFkPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgdmUobikuaGVhZCh7cmVzcG9uc2VUeXBlOm4ucmVzcG9uc2VUeXBlLG92ZXJyaWRlTWltZVR5cGU6bi5vdmVycmlkZU1pbWVUeXBlfSl9O3ZlLnByb3RvdHlwZS5vcHRpb25zPWZ1bmN0aW9uKG4pe3JldHVybiBuPW5yKG4se30pLG4ubWV0aG9kPSJPUFRJT05TIix0aGlzLl9tYWtlUmVxdWVzdChuKX07dmUub3B0aW9ucz1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHZlKG4pLm9wdGlvbnMoe3Jlc3BvbnNlVHlwZTpuLnJlc3BvbnNlVHlwZSxvdmVycmlkZU1pbWVUeXBlOm4ub3ZlcnJpZGVNaW1lVHlwZX0pfTt2ZS5wcm90b3R5cGUucG9zdD1mdW5jdGlvbihuLGUpe3JldHVybiBSbi5kZWZpbmVkKCJkYXRhIixuKSxlPW5yKGUse30pLGUubWV0aG9kPSJQT1NUIixlLmRhdGE9bix0aGlzLl9tYWtlUmVxdWVzdChlKX07dmUucG9zdD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHZlKG4pLnBvc3Qobi5kYXRhLHtyZXNwb25zZVR5cGU6bi5yZXNwb25zZVR5cGUsb3ZlcnJpZGVNaW1lVHlwZTpuLm92ZXJyaWRlTWltZVR5cGV9KX07dmUucHJvdG90eXBlLnB1dD1mdW5jdGlvbihuLGUpe3JldHVybiBSbi5kZWZpbmVkKCJkYXRhIixuKSxlPW5yKGUse30pLGUubWV0aG9kPSJQVVQiLGUuZGF0YT1uLHRoaXMuX21ha2VSZXF1ZXN0KGUpfTt2ZS5wdXQ9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB2ZShuKS5wdXQobi5kYXRhLHtyZXNwb25zZVR5cGU6bi5yZXNwb25zZVR5cGUsb3ZlcnJpZGVNaW1lVHlwZTpuLm92ZXJyaWRlTWltZVR5cGV9KX07dmUucHJvdG90eXBlLnBhdGNoPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIFJuLmRlZmluZWQoImRhdGEiLG4pLGU9bnIoZSx7fSksZS5tZXRob2Q9IlBBVENIIixlLmRhdGE9bix0aGlzLl9tYWtlUmVxdWVzdChlKX07dmUucGF0Y2g9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB2ZShuKS5wYXRjaChuLmRhdGEse3Jlc3BvbnNlVHlwZTpuLnJlc3BvbnNlVHlwZSxvdmVycmlkZU1pbWVUeXBlOm4ub3ZlcnJpZGVNaW1lVHlwZX0pfTt2ZS5fSW1wbGVtZW50YXRpb25zPXt9O3ZlLl9JbXBsZW1lbnRhdGlvbnMubG9hZEltYWdlRWxlbWVudD1mdW5jdGlvbihuLGUsdCl7bGV0IG89bmV3IEltYWdlO28ub25sb2FkPWZ1bmN0aW9uKCl7by5uYXR1cmFsV2lkdGg9PT0wJiZvLm5hdHVyYWxIZWlnaHQ9PT0wJiZvLndpZHRoPT09MCYmby5oZWlnaHQ9PT0wJiYoby53aWR0aD0zMDAsby5oZWlnaHQ9MTUwKSx0LnJlc29sdmUobyl9LG8ub25lcnJvcj1mdW5jdGlvbihhKXt0LnJlamVjdChhKX0sZSYmKHdiLmNvbnRhaW5zKG4pP28uY3Jvc3NPcmlnaW49InVzZS1jcmVkZW50aWFscyI6by5jcm9zc09yaWdpbj0iIiksby5zcmM9bn07dmUuX0ltcGxlbWVudGF0aW9ucy5jcmVhdGVJbWFnZT1mdW5jdGlvbihuLGUsdCxvLGEscixpKXtsZXQgZj1uLnVybDt2ZS5zdXBwb3J0c0ltYWdlQml0bWFwT3B0aW9ucygpLnRoZW4oZnVuY3Rpb24oZCl7aWYoIShkJiZyKSl7dmUuX0ltcGxlbWVudGF0aW9ucy5sb2FkSW1hZ2VFbGVtZW50KGYsZSx0KTtyZXR1cm59bGV0IGM9ImJsb2IiLHU9IkdFVCIsbD1RaSgpLGg9dmUuX0ltcGxlbWVudGF0aW9ucy5sb2FkV2l0aFhocihmLGMsdSx2b2lkIDAsaSxsLHZvaWQgMCx2b2lkIDAsdm9pZCAwKTtyZXR1cm4gXyhoKSYmXyhoLmFib3J0KSYmKG4uY2FuY2VsRnVuY3Rpb249ZnVuY3Rpb24oKXtoLmFib3J0KCl9KSxsLnByb21pc2UudGhlbihmdW5jdGlvbihtKXtpZighXyhtKSl7dC5yZWplY3QobmV3IG50KGBTdWNjZXNzZnVsbHkgcmV0cmlldmVkICR7Zn0gYnV0IGl0IGNvbnRhaW5lZCBubyBjb250ZW50LmApKTtyZXR1cm59cmV0dXJuIHZlLmNyZWF0ZUltYWdlQml0bWFwRnJvbUJsb2IobSx7ZmxpcFk6byxwcmVtdWx0aXBseUFscGhhOiExLHNraXBDb2xvclNwYWNlQ29udmVyc2lvbjphfSl9KS50aGVuKGZ1bmN0aW9uKG0pe3QucmVzb2x2ZShtKX0pfSkuY2F0Y2goZnVuY3Rpb24oZCl7dC5yZWplY3QoZCl9KX07dmUuY3JlYXRlSW1hZ2VCaXRtYXBGcm9tQmxvYj1mdW5jdGlvbihuLGUpe3JldHVybiBSbi5kZWZpbmVkKCJvcHRpb25zIixlKSxSbi50eXBlT2YuYm9vbCgib3B0aW9ucy5mbGlwWSIsZS5mbGlwWSksUm4udHlwZU9mLmJvb2woIm9wdGlvbnMucHJlbXVsdGlwbHlBbHBoYSIsZS5wcmVtdWx0aXBseUFscGhhKSxSbi50eXBlT2YuYm9vbCgib3B0aW9ucy5za2lwQ29sb3JTcGFjZUNvbnZlcnNpb24iLGUuc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uKSxjcmVhdGVJbWFnZUJpdG1hcChuLHtpbWFnZU9yaWVudGF0aW9uOmUuZmxpcFk/ImZsaXBZIjoibm9uZSIscHJlbXVsdGlwbHlBbHBoYTplLnByZW11bHRpcGx5QWxwaGE/InByZW11bHRpcGx5Ijoibm9uZSIsY29sb3JTcGFjZUNvbnZlcnNpb246ZS5za2lwQ29sb3JTcGFjZUNvbnZlcnNpb24/Im5vbmUiOiJkZWZhdWx0In0pfTtSTT10eXBlb2YgWE1MSHR0cFJlcXVlc3Q+InUiO3ZlLl9JbXBsZW1lbnRhdGlvbnMubG9hZFdpdGhYaHI9ZnVuY3Rpb24obixlLHQsbyxhLHIsaSl7bGV0IGY9d00uZXhlYyhuKTtpZihmIT09bnVsbCl7ci5yZXNvbHZlKFRNKGYsZSkpO3JldHVybn1pZihSTSl7RU0obixlLHQsbyxhLHIsaSk7cmV0dXJufWxldCBkPW5ldyBYTUxIdHRwUmVxdWVzdDtpZih3Yi5jb250YWlucyhuKSYmKGQud2l0aENyZWRlbnRpYWxzPSEwKSxkLm9wZW4odCxuLCEwKSxfKGkpJiZfKGQub3ZlcnJpZGVNaW1lVHlwZSkmJmQub3ZlcnJpZGVNaW1lVHlwZShpKSxfKGEpKWZvcihsZXQgdSBpbiBhKWEuaGFzT3duUHJvcGVydHkodSkmJmQuc2V0UmVxdWVzdEhlYWRlcih1LGFbdV0pO18oZSkmJihkLnJlc3BvbnNlVHlwZT1lKTtsZXQgYz0hMTtyZXR1cm4gdHlwZW9mIG49PSJzdHJpbmciJiYoYz1uLmluZGV4T2YoImZpbGU6Ly8iKT09PTB8fHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cubG9jYXRpb24ub3JpZ2luPT09ImZpbGU6Ly8iKSxkLm9ubG9hZD1mdW5jdGlvbigpe2lmKChkLnN0YXR1czwyMDB8fGQuc3RhdHVzPj0zMDApJiYhKGMmJmQuc3RhdHVzPT09MCkpe3IucmVqZWN0KG5ldyBSZihkLnN0YXR1cyxkLnJlc3BvbnNlLGQuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpKTtyZXR1cm59bGV0IHU9ZC5yZXNwb25zZSxsPWQucmVzcG9uc2VUeXBlO2lmKHQ9PT0iSEVBRCJ8fHQ9PT0iT1BUSU9OUyIpe2xldCBtPWQuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkudHJpbSgpLnNwbGl0KC9bXHJcbl0rLyksYj17fTttLmZvckVhY2goZnVuY3Rpb24ocCl7bGV0IHk9cC5zcGxpdCgiOiAiKSxFPXkuc2hpZnQoKTtiW0VdPXkuam9pbigiOiAiKX0pLHIucmVzb2x2ZShiKTtyZXR1cm59aWYoZC5zdGF0dXM9PT0yMDQpci5yZXNvbHZlKHZvaWQgMCk7ZWxzZSBpZihfKHUpJiYoIV8oZSl8fGw9PT1lKSlyLnJlc29sdmUodSk7ZWxzZSBpZihlPT09Impzb24iJiZ0eXBlb2YgdT09InN0cmluZyIpdHJ5e3IucmVzb2x2ZShKU09OLnBhcnNlKHUpKX1jYXRjaChoKXtyLnJlamVjdChoKX1lbHNlKGw9PT0iInx8bD09PSJkb2N1bWVudCIpJiZfKGQucmVzcG9uc2VYTUwpJiZkLnJlc3BvbnNlWE1MLmhhc0NoaWxkTm9kZXMoKT9yLnJlc29sdmUoZC5yZXNwb25zZVhNTCk6KGw9PT0iInx8bD09PSJ0ZXh0IikmJl8oZC5yZXNwb25zZVRleHQpP3IucmVzb2x2ZShkLnJlc3BvbnNlVGV4dCk6ci5yZWplY3QobmV3IG50KCJJbnZhbGlkIFhNTEh0dHBSZXF1ZXN0IHJlc3BvbnNlIHR5cGUuIikpfSxkLm9uZXJyb3I9ZnVuY3Rpb24odSl7ci5yZWplY3QobmV3IFJmKX0sZC5zZW5kKG8pLGR9O3ZlLl9JbXBsZW1lbnRhdGlvbnMubG9hZEFuZEV4ZWN1dGVTY3JpcHQ9ZnVuY3Rpb24obixlLHQpe3JldHVybiBiQShuLGUpLmNhdGNoKGZ1bmN0aW9uKG8pe3QucmVqZWN0KG8pfSl9O3ZlLl9EZWZhdWx0SW1wbGVtZW50YXRpb25zPXt9O3ZlLl9EZWZhdWx0SW1wbGVtZW50YXRpb25zLmNyZWF0ZUltYWdlPXZlLl9JbXBsZW1lbnRhdGlvbnMuY3JlYXRlSW1hZ2U7dmUuX0RlZmF1bHRJbXBsZW1lbnRhdGlvbnMubG9hZFdpdGhYaHI9dmUuX0ltcGxlbWVudGF0aW9ucy5sb2FkV2l0aFhocjt2ZS5fRGVmYXVsdEltcGxlbWVudGF0aW9ucy5sb2FkQW5kRXhlY3V0ZVNjcmlwdD12ZS5fSW1wbGVtZW50YXRpb25zLmxvYWRBbmRFeGVjdXRlU2NyaXB0O3ZlLkRFRkFVTFQ9T2JqZWN0LmZyZWV6ZShuZXcgdmUoe3VybDp0eXBlb2YgZG9jdW1lbnQ+InUiPyIiOmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVswXX0pKTt5YT12ZX0pO2Z1bmN0aW9uIENmKG4pe249bj8/T2UuRU1QVFlfT0JKRUNULHRoaXMuX2RhdGVzPXZvaWQgMCx0aGlzLl9zYW1wbGVzPXZvaWQgMCx0aGlzLl9kYXRlQ29sdW1uPS0xLHRoaXMuX3hQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbj0tMSx0aGlzLl95UG9sZVdhbmRlclJhZGlhbnNDb2x1bW49LTEsdGhpcy5fdXQxTWludXNVdGNTZWNvbmRzQ29sdW1uPS0xLHRoaXMuX3hDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFuc0NvbHVtbj0tMSx0aGlzLl95Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW49LTEsdGhpcy5fdGFpTWludXNVdGNTZWNvbmRzQ29sdW1uPS0xLHRoaXMuX2NvbHVtbkNvdW50PTAsdGhpcy5fbGFzdEluZGV4PS0xLHRoaXMuX2FkZE5ld0xlYXBTZWNvbmRzPW4uYWRkTmV3TGVhcFNlY29uZHM/PyEwLF8obi5kYXRhKT9WQSh0aGlzLG4uZGF0YSk6VkEodGhpcyx7Y29sdW1uTmFtZXM6WyJkYXRlSXNvODYwMSIsIm1vZGlmaWVkSnVsaWFuRGF0ZVV0YyIsInhQb2xlV2FuZGVyUmFkaWFucyIsInlQb2xlV2FuZGVyUmFkaWFucyIsInV0MU1pbnVzVXRjU2Vjb25kcyIsImxlbmd0aE9mRGF5Q29ycmVjdGlvblNlY29uZHMiLCJ4Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnMiLCJ5Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnMiLCJ0YWlNaW51c1V0Y1NlY29uZHMiXSxzYW1wbGVzOltdfSl9ZnVuY3Rpb24geE0obixlKXtyZXR1cm4gS24uY29tcGFyZShuLmp1bGlhbkRhdGUsZSl9ZnVuY3Rpb24gVkEobixlKXtpZighXyhlLmNvbHVtbk5hbWVzKSl0aHJvdyBuZXcgbnQoIkVycm9yIGluIGxvYWRlZCBFT1AgZGF0YTogVGhlIGNvbHVtbk5hbWVzIHByb3BlcnR5IGlzIHJlcXVpcmVkLiIpO2lmKCFfKGUuc2FtcGxlcykpdGhyb3cgbmV3IG50KCJFcnJvciBpbiBsb2FkZWQgRU9QIGRhdGE6IFRoZSBzYW1wbGVzIHByb3BlcnR5IGlzIHJlcXVpcmVkLiIpO2xldCB0PWUuY29sdW1uTmFtZXMuaW5kZXhPZigibW9kaWZpZWRKdWxpYW5EYXRlVXRjIiksbz1lLmNvbHVtbk5hbWVzLmluZGV4T2YoInhQb2xlV2FuZGVyUmFkaWFucyIpLGE9ZS5jb2x1bW5OYW1lcy5pbmRleE9mKCJ5UG9sZVdhbmRlclJhZGlhbnMiKSxyPWUuY29sdW1uTmFtZXMuaW5kZXhPZigidXQxTWludXNVdGNTZWNvbmRzIiksaT1lLmNvbHVtbk5hbWVzLmluZGV4T2YoInhDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFucyIpLGY9ZS5jb2x1bW5OYW1lcy5pbmRleE9mKCJ5Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnMiKSxkPWUuY29sdW1uTmFtZXMuaW5kZXhPZigidGFpTWludXNVdGNTZWNvbmRzIik7aWYodDwwfHxvPDB8fGE8MHx8cjwwfHxpPDB8fGY8MHx8ZDwwKXRocm93IG5ldyBudCgiRXJyb3IgaW4gbG9hZGVkIEVPUCBkYXRhOiBUaGUgY29sdW1uTmFtZXMgcHJvcGVydHkgbXVzdCBpbmNsdWRlIG1vZGlmaWVkSnVsaWFuRGF0ZVV0YywgeFBvbGVXYW5kZXJSYWRpYW5zLCB5UG9sZVdhbmRlclJhZGlhbnMsIHV0MU1pbnVzVXRjU2Vjb25kcywgeENlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zLCB5Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnMsIGFuZCB0YWlNaW51c1V0Y1NlY29uZHMgY29sdW1ucyIpO2xldCBjPW4uX3NhbXBsZXM9ZS5zYW1wbGVzLHU9bi5fZGF0ZXM9W107bi5fZGF0ZUNvbHVtbj10LG4uX3hQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbj1vLG4uX3lQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbj1hLG4uX3V0MU1pbnVzVXRjU2Vjb25kc0NvbHVtbj1yLG4uX3hDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFuc0NvbHVtbj1pLG4uX3lDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFuc0NvbHVtbj1mLG4uX3RhaU1pbnVzVXRjU2Vjb25kc0NvbHVtbj1kLG4uX2NvbHVtbkNvdW50PWUuY29sdW1uTmFtZXMubGVuZ3RoLG4uX2xhc3RJbmRleD12b2lkIDA7bGV0IGwsaD1uLl9hZGROZXdMZWFwU2Vjb25kcztmb3IobGV0IG09MCxiPWMubGVuZ3RoO208YjttKz1uLl9jb2x1bW5Db3VudCl7bGV0IHA9Y1ttK3RdLHk9Y1ttK2RdLEU9cCtsbi5NT0RJRklFRF9KVUxJQU5fREFURV9ESUZGRVJFTkNFLGc9bmV3IEtuKEUseSxodC5UQUkpO2lmKHUucHVzaChnKSxoKXtpZih5IT09bCYmXyhsKSl7bGV0IEE9S24ubGVhcFNlY29uZHMsVD1nYShBLGcseE0pO2lmKFQ8MCl7bGV0IFI9bmV3IFd0KGcseSk7QS5zcGxpY2UoflQsMCxSKX19bD15fX19ZnVuY3Rpb24gSEEobixlLHQsbyxhKXtsZXQgcj10Km87YS54UG9sZVdhbmRlcj1lW3Irbi5feFBvbGVXYW5kZXJSYWRpYW5zQ29sdW1uXSxhLnlQb2xlV2FuZGVyPWVbcituLl95UG9sZVdhbmRlclJhZGlhbnNDb2x1bW5dLGEueFBvbGVPZmZzZXQ9ZVtyK24uX3hDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFuc0NvbHVtbl0sYS55UG9sZU9mZnNldD1lW3Irbi5feUNlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zQ29sdW1uXSxhLnV0MU1pbnVzVXRjPWVbcituLl91dDFNaW51c1V0Y1NlY29uZHNDb2x1bW5dfWZ1bmN0aW9uIFNmKG4sZSx0KXtyZXR1cm4gZStuKih0LWUpfWZ1bmN0aW9uIEtBKG4sZSx0LG8sYSxyLGkpe2xldCBmPW4uX2NvbHVtbkNvdW50O2lmKHI+ZS5sZW5ndGgtMSlyZXR1cm4gaS54UG9sZVdhbmRlcj0wLGkueVBvbGVXYW5kZXI9MCxpLnhQb2xlT2Zmc2V0PTAsaS55UG9sZU9mZnNldD0wLGkudXQxTWludXNVdGM9MCxpO2xldCBkPWVbYV0sYz1lW3JdO2lmKGQuZXF1YWxzKGMpfHxvLmVxdWFscyhkKSlyZXR1cm4gSEEobix0LGEsZixpKSxpO2lmKG8uZXF1YWxzKGMpKXJldHVybiBIQShuLHQscixmLGkpLGk7bGV0IHU9S24uc2Vjb25kc0RpZmZlcmVuY2UobyxkKS9Lbi5zZWNvbmRzRGlmZmVyZW5jZShjLGQpLGw9YSpmLGg9cipmLG09dFtsK24uX3V0MU1pbnVzVXRjU2Vjb25kc0NvbHVtbl0sYj10W2grbi5fdXQxTWludXNVdGNTZWNvbmRzQ29sdW1uXSxwPWItbTtpZihwPi41fHxwPC0uNSl7bGV0IHk9dFtsK24uX3RhaU1pbnVzVXRjU2Vjb25kc0NvbHVtbl0sRT10W2grbi5fdGFpTWludXNVdGNTZWNvbmRzQ29sdW1uXTt5IT09RSYmKGMuZXF1YWxzKG8pP209YjpiLT1FLXkpfXJldHVybiBpLnhQb2xlV2FuZGVyPVNmKHUsdFtsK24uX3hQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbl0sdFtoK24uX3hQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbl0pLGkueVBvbGVXYW5kZXI9U2YodSx0W2wrbi5feVBvbGVXYW5kZXJSYWRpYW5zQ29sdW1uXSx0W2grbi5feVBvbGVXYW5kZXJSYWRpYW5zQ29sdW1uXSksaS54UG9sZU9mZnNldD1TZih1LHRbbCtuLl94Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW5dLHRbaCtuLl94Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW5dKSxpLnlQb2xlT2Zmc2V0PVNmKHUsdFtsK24uX3lDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFuc0NvbHVtbl0sdFtoK24uX3lDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFuc0NvbHVtbl0pLGkudXQxTWludXNVdGM9U2YodSxtLGIpLGl9dmFyIHFBLFdBPVgoKCk9PntzbCgpO3N0KCk7c2UoKTt0YigpO2hsKCk7YWIoKTtucygpO3BhKCk7ZmwoKTtkbCgpO0NmLmZyb21Vcmw9YXN5bmMgZnVuY3Rpb24obixlKXtlPWU/P09lLkVNUFRZX09CSkVDVDtsZXQgdD15YS5jcmVhdGVJZk5lZWRlZChuKSxvO3RyeXtvPWF3YWl0IHQuZmV0Y2hKc29uKCl9Y2F0Y2h7dGhyb3cgbmV3IG50KGBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSByZXRyaWV2aW5nIHRoZSBFT1AgZGF0YSBmcm9tIHRoZSBVUkwgJHt0LnVybH0uYCl9cmV0dXJuIG5ldyBDZih7YWRkTmV3TGVhcFNlY29uZHM6ZS5hZGROZXdMZWFwU2Vjb25kcyxkYXRhOm99KX07Q2YuTk9ORT1PYmplY3QuZnJlZXplKHtjb21wdXRlOmZ1bmN0aW9uKG4sZSl7cmV0dXJuIF8oZSk/KGUueFBvbGVXYW5kZXI9MCxlLnlQb2xlV2FuZGVyPTAsZS54UG9sZU9mZnNldD0wLGUueVBvbGVPZmZzZXQ9MCxlLnV0MU1pbnVzVXRjPTApOmU9bmV3IEFmKDAsMCwwLDAsMCksZX19KTtDZi5wcm90b3R5cGUuY29tcHV0ZT1mdW5jdGlvbihuLGUpe2lmKCFfKHRoaXMuX3NhbXBsZXMpKXJldHVybjtpZihfKGUpfHwoZT1uZXcgQWYoMCwwLDAsMCwwKSksdGhpcy5fc2FtcGxlcy5sZW5ndGg9PT0wKXJldHVybiBlLnhQb2xlV2FuZGVyPTAsZS55UG9sZVdhbmRlcj0wLGUueFBvbGVPZmZzZXQ9MCxlLnlQb2xlT2Zmc2V0PTAsZS51dDFNaW51c1V0Yz0wLGU7bGV0IHQ9dGhpcy5fZGF0ZXMsbz10aGlzLl9sYXN0SW5kZXgsYT0wLHI9MDtpZihfKG8pKXtsZXQgZj10W29dLGQ9dFtvKzFdLGM9S24ubGVzc1RoYW5PckVxdWFscyhmLG4pLHU9IV8oZCksbD11fHxLbi5ncmVhdGVyVGhhbk9yRXF1YWxzKGQsbik7aWYoYyYmbClyZXR1cm4gYT1vLCF1JiZkLmVxdWFscyhuKSYmKythLHI9YSsxLEtBKHRoaXMsdCx0aGlzLl9zYW1wbGVzLG4sYSxyLGUpLGV9bGV0IGk9Z2EodCxuLEtuLmNvbXBhcmUsdGhpcy5fZGF0ZUNvbHVtbik7cmV0dXJuIGk+PTA/KGk8dC5sZW5ndGgtMSYmdFtpKzFdLmVxdWFscyhuKSYmKytpLGE9aSxyPWkpOihyPX5pLGE9ci0xLGE8MCYmKGE9MCkpLHRoaXMuX2xhc3RJbmRleD1hLEtBKHRoaXMsdCx0aGlzLl9zYW1wbGVzLG4sYSxyLGUpLGV9O3FBPUNmfSk7ZnVuY3Rpb24gU28obixlLHQpe3RoaXMuaGVhZGluZz1uPz8wLHRoaXMucGl0Y2g9ZT8/MCx0aGlzLnJvbGw9dD8/MH12YXIgQ2wsWEE9WCgoKT0+e3NlKCk7VWUoKTtTby5mcm9tUXVhdGVybmlvbj1mdW5jdGlvbihuLGUpe18oZSl8fChlPW5ldyBTbyk7bGV0IHQ9Mioobi53Km4ueS1uLnoqbi54KSxvPTEtMioobi54Km4ueCtuLnkqbi55KSxhPTIqKG4udypuLngrbi55Km4ueikscj0xLTIqKG4ueSpuLnkrbi56Km4ueiksaT0yKihuLncqbi56K24ueCpuLnkpO3JldHVybiBlLmhlYWRpbmc9LU1hdGguYXRhbjIoaSxyKSxlLnJvbGw9TWF0aC5hdGFuMihhLG8pLGUucGl0Y2g9LWsuYXNpbkNsYW1wZWQodCksZX07U28uZnJvbURlZ3JlZXM9ZnVuY3Rpb24obixlLHQsbyl7cmV0dXJuIF8obyl8fChvPW5ldyBTbyksby5oZWFkaW5nPW4qay5SQURJQU5TX1BFUl9ERUdSRUUsby5waXRjaD1lKmsuUkFESUFOU19QRVJfREVHUkVFLG8ucm9sbD10KmsuUkFESUFOU19QRVJfREVHUkVFLG99O1NvLmNsb25lPWZ1bmN0aW9uKG4sZSl7aWYoXyhuKSlyZXR1cm4gXyhlKT8oZS5oZWFkaW5nPW4uaGVhZGluZyxlLnBpdGNoPW4ucGl0Y2gsZS5yb2xsPW4ucm9sbCxlKTpuZXcgU28obi5oZWFkaW5nLG4ucGl0Y2gsbi5yb2xsKX07U28uZXF1YWxzPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIG49PT1lfHxfKG4pJiZfKGUpJiZuLmhlYWRpbmc9PT1lLmhlYWRpbmcmJm4ucGl0Y2g9PT1lLnBpdGNoJiZuLnJvbGw9PT1lLnJvbGx9O1NvLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24obixlLHQsbyl7cmV0dXJuIG49PT1lfHxfKG4pJiZfKGUpJiZrLmVxdWFsc0Vwc2lsb24obi5oZWFkaW5nLGUuaGVhZGluZyx0LG8pJiZrLmVxdWFsc0Vwc2lsb24obi5waXRjaCxlLnBpdGNoLHQsbykmJmsuZXF1YWxzRXBzaWxvbihuLnJvbGwsZS5yb2xsLHQsbyl9O1NvLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbihuKXtyZXR1cm4gU28uY2xvbmUodGhpcyxuKX07U28ucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihuKXtyZXR1cm4gU28uZXF1YWxzKHRoaXMsbil9O1NvLnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gU28uZXF1YWxzRXBzaWxvbih0aGlzLG4sZSx0KX07U28ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXMuaGVhZGluZ30sICR7dGhpcy5waXRjaH0sICR7dGhpcy5yb2xsfSlgfTtDbD1Tb30pO2Z1bmN0aW9uIE9NKCl7bGV0IG49ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO2ZvcihsZXQgZT0wLHQ9bi5sZW5ndGg7ZTx0OysrZSl7bGV0IG89bltlXS5nZXRBdHRyaWJ1dGUoInNyYyIpLGE9SkEuZXhlYyhvKTtpZihhIT09bnVsbClyZXR1cm4gYVsxXX19ZnVuY3Rpb24gWkEobil7cmV0dXJuIHR5cGVvZiBkb2N1bWVudD4idSI/bjooXyhNbCl8fChNbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpLE1sLmhyZWY9bixNbC5ocmVmKX1mdW5jdGlvbiBRQSgpe2lmKF8odGMpKXJldHVybiB0YztsZXQgbjtyZXR1cm4gdHlwZW9mIENFU0lVTV9CQVNFX1VSTDwidSI/bj1DRVNJVU1fQkFTRV9VUkw6XyhZQT8udXJsKT9uPVRmKCIuIixZQS51cmwpOnR5cGVvZiBkZWZpbmU9PSJvYmplY3QiJiZfKGRlZmluZS5hbWQpJiYhZGVmaW5lLmFtZC50b1VybFVuZGVmaW5lZCYmXyhsYS50b1VybCk/bj1UZigiLi4iLG5jKCJDb3JlL2J1aWxkTW9kdWxlVXJsLmpzIikpOm49T00oKSx0Yz1uZXcgeWEoe3VybDpaQShuKX0pLHRjLmFwcGVuZEZvcndhcmRTbGFzaCgpLHRjfWZ1bmN0aW9uIFNNKG4pe3JldHVybiBaQShsYS50b1VybChgLi4vJHtufWApKX1mdW5jdGlvbiAkQShuKXtyZXR1cm4gUUEoKS5nZXREZXJpdmVkUmVzb3VyY2Uoe3VybDpufSkudXJsfWZ1bmN0aW9uIG5jKG4pe3JldHVybiBfKE5sKXx8KHR5cGVvZiBkZWZpbmU9PSJvYmplY3QiJiZfKGRlZmluZS5hbWQpJiYhZGVmaW5lLmFtZC50b1VybFVuZGVmaW5lZCYmXyhsYS50b1VybCk/Tmw9U006Tmw9JEEpLE5sKG4pfXZhciBZQSxKQSxNbCx0YyxObCxvcixJbD1YKCgpPT57c2UoKTtsYigpO25zKCk7WUE9e30sSkE9LygoPzouKlwvKXxeKUNlc2l1bVwuanMoPzpcP3xcI3wkKS87bmMuX2Nlc2l1bVNjcmlwdFJlZ2V4PUpBO25jLl9idWlsZE1vZHVsZVVybEZyb21CYXNlVXJsPSRBO25jLl9jbGVhckJhc2VSZXNvdXJjZT1mdW5jdGlvbigpe3RjPXZvaWQgMH07bmMuc2V0QmFzZVVybD1mdW5jdGlvbihuKXt0Yz15YS5ERUZBVUxULmdldERlcml2ZWRSZXNvdXJjZSh7dXJsOm59KX07bmMuZ2V0Q2VzaXVtQmFzZVVybD1RQTtvcj1uY30pO2Z1bmN0aW9uIENNKG4sZSx0KXt0aGlzLng9bix0aGlzLnk9ZSx0aGlzLnM9dH12YXIgUGwsRWI9WCgoKT0+e1BsPUNNfSk7ZnVuY3Rpb24ga2wobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1QsdGhpcy5feHlzRmlsZVVybFRlbXBsYXRlPXlhLmNyZWF0ZUlmTmVlZGVkKG4ueHlzRmlsZVVybFRlbXBsYXRlKSx0aGlzLl9pbnRlcnBvbGF0aW9uT3JkZXI9bi5pbnRlcnBvbGF0aW9uT3JkZXI/PzksdGhpcy5fc2FtcGxlWmVyb0p1bGlhbkVwaGVtZXJpc0RhdGU9bi5zYW1wbGVaZXJvSnVsaWFuRXBoZW1lcmlzRGF0ZT8/MjQ0MjM5NjVlLTEsdGhpcy5fc2FtcGxlWmVyb0RhdGVUVD1uZXcgS24odGhpcy5fc2FtcGxlWmVyb0p1bGlhbkVwaGVtZXJpc0RhdGUsMCxodC5UQUkpLHRoaXMuX3N0ZXBTaXplRGF5cz1uLnN0ZXBTaXplRGF5cz8/MSx0aGlzLl9zYW1wbGVzUGVyWHlzRmlsZT1uLnNhbXBsZXNQZXJYeXNGaWxlPz8xZTMsdGhpcy5fdG90YWxTYW1wbGVzPW4udG90YWxTYW1wbGVzPz8yNzQyNix0aGlzLl9zYW1wbGVzPW5ldyBBcnJheSh0aGlzLl90b3RhbFNhbXBsZXMqMyksdGhpcy5fY2h1bmtEb3dubG9hZHNJblByb2dyZXNzPVtdO2xldCBlPXRoaXMuX2ludGVycG9sYXRpb25PcmRlcix0PXRoaXMuX2Rlbm9taW5hdG9ycz1uZXcgQXJyYXkoZSsxKSxvPXRoaXMuX3hUYWJsZT1uZXcgQXJyYXkoZSsxKSxhPU1hdGgucG93KHRoaXMuX3N0ZXBTaXplRGF5cyxlKTtmb3IobGV0IHI9MDtyPD1lOysrcil7dFtyXT1hLG9bcl09cip0aGlzLl9zdGVwU2l6ZURheXM7Zm9yKGxldCBpPTA7aTw9ZTsrK2kpaSE9PXImJih0W3JdKj1yLWkpO3Rbcl09MS90W3JdfXRoaXMuX3dvcms9bmV3IEFycmF5KGUrMSksdGhpcy5fY29lZj1uZXcgQXJyYXkoZSsxKX1mdW5jdGlvbiBSYihuLGUsdCl7bGV0IG89TU07cmV0dXJuIG8uZGF5TnVtYmVyPWUsby5zZWNvbmRzT2ZEYXk9dCxLbi5kYXlzRGlmZmVyZW5jZShvLG4uX3NhbXBsZVplcm9EYXRlVFQpfWFzeW5jIGZ1bmN0aW9uIE5NKG4sZSx0KXt0cnl7bGV0IG89YXdhaXQgbi5mZXRjaEpzb24oKTt0Ll91cGRhdGVDaHVua0RhdGEoZSxvKX1jYXRjaHt9fWZ1bmN0aW9uIHhiKG4sZSl7aWYoXyhuLl9jaHVua0Rvd25sb2Fkc0luUHJvZ3Jlc3NbZV0pKXJldHVybiBuLl9jaHVua0Rvd25sb2Fkc0luUHJvZ3Jlc3NbZV07bGV0IHQsbz1uLl94eXNGaWxlVXJsVGVtcGxhdGU7XyhvKT90PW8uZ2V0RGVyaXZlZFJlc291cmNlKHt0ZW1wbGF0ZVZhbHVlczp7MDplfX0pOnQ9bmV3IHlhKHt1cmw6b3IoYEFzc2V0cy9JQVUyMDA2X1hZUy9JQVUyMDA2X1hZU18ke2V9Lmpzb25gKX0pO2xldCBhPU5NKHQsZSxuKTtyZXR1cm4gbi5fY2h1bmtEb3dubG9hZHNJblByb2dyZXNzW2VdPWEsYX12YXIgTU0sZXcsdHc9WCgoKT0+e0lsKCk7c3QoKTtzZSgpO0ViKCk7aGwoKTtucygpO2RsKCk7TU09bmV3IEtuKDAsMCxodC5UQUkpO2tsLnByb3RvdHlwZS5wcmVsb2FkPWZ1bmN0aW9uKG4sZSx0LG8pe2xldCBhPVJiKHRoaXMsbixlKSxyPVJiKHRoaXMsdCxvKSxpPWEvdGhpcy5fc3RlcFNpemVEYXlzLXRoaXMuX2ludGVycG9sYXRpb25PcmRlci8yfDA7aTwwJiYoaT0wKTtsZXQgZj1yL3RoaXMuX3N0ZXBTaXplRGF5cy10aGlzLl9pbnRlcnBvbGF0aW9uT3JkZXIvMnwwK3RoaXMuX2ludGVycG9sYXRpb25PcmRlcjtmPj10aGlzLl90b3RhbFNhbXBsZXMmJihmPXRoaXMuX3RvdGFsU2FtcGxlcy0xKTtsZXQgZD1pL3RoaXMuX3NhbXBsZXNQZXJYeXNGaWxlfDAsYz1mL3RoaXMuX3NhbXBsZXNQZXJYeXNGaWxlfDAsdT1bXTtmb3IobGV0IGw9ZDtsPD1jOysrbCl1LnB1c2goeGIodGhpcyxsKSk7cmV0dXJuIFByb21pc2UuYWxsKHUpfTtrbC5wcm90b3R5cGUuY29tcHV0ZVh5c1JhZGlhbnM9ZnVuY3Rpb24obixlLHQpe2xldCBvPVJiKHRoaXMsbixlKTtpZihvPDApcmV0dXJuO2xldCBhPW8vdGhpcy5fc3RlcFNpemVEYXlzfDA7aWYoYT49dGhpcy5fdG90YWxTYW1wbGVzKXJldHVybjtsZXQgcj10aGlzLl9pbnRlcnBvbGF0aW9uT3JkZXIsaT1hLShyLzJ8MCk7aTwwJiYoaT0wKTtsZXQgZj1pK3I7Zj49dGhpcy5fdG90YWxTYW1wbGVzJiYoZj10aGlzLl90b3RhbFNhbXBsZXMtMSxpPWYtcixpPDAmJihpPTApKTtsZXQgZD0hMSxjPXRoaXMuX3NhbXBsZXM7aWYoXyhjW2kqM10pfHwoeGIodGhpcyxpL3RoaXMuX3NhbXBsZXNQZXJYeXNGaWxlfDApLGQ9ITApLF8oY1tmKjNdKXx8KHhiKHRoaXMsZi90aGlzLl9zYW1wbGVzUGVyWHlzRmlsZXwwKSxkPSEwKSxkKXJldHVybjtfKHQpPyh0Lng9MCx0Lnk9MCx0LnM9MCk6dD1uZXcgUGwoMCwwLDApO2xldCB1PW8taSp0aGlzLl9zdGVwU2l6ZURheXMsbD10aGlzLl93b3JrLGg9dGhpcy5fZGVub21pbmF0b3JzLG09dGhpcy5fY29lZixiPXRoaXMuX3hUYWJsZSxwLHk7Zm9yKHA9MDtwPD1yOysrcClsW3BdPXUtYltwXTtmb3IocD0wO3A8PXI7KytwKXtmb3IobVtwXT0xLHk9MDt5PD1yOysreSl5IT09cCYmKG1bcF0qPWxbeV0pO21bcF0qPWhbcF07bGV0IEU9KGkrcCkqMzt0LngrPW1bcF0qY1tFKytdLHQueSs9bVtwXSpjW0UrK10sdC5zKz1tW3BdKmNbRV19cmV0dXJuIHR9O2tsLnByb3RvdHlwZS5fdXBkYXRlQ2h1bmtEYXRhPWZ1bmN0aW9uKG4se3NhbXBsZXM6ZX0pe3RoaXMuX2NodW5rRG93bmxvYWRzSW5Qcm9ncmVzc1tuXT12b2lkIDA7bGV0IHQ9dGhpcy5fc2FtcGxlc1Blclh5c0ZpbGUsbz1uKnQqMztmb3IobGV0IGE9MDthPGUubGVuZ3RoOysrYSl0aGlzLl9zYW1wbGVzW28rYV09ZVthXX07ZXc9a2x9KTt2YXIgdWksUG4scW8sbncsb3c9WCgoKT0+e3NlKCk7UG49e3JlcXVlc3RGdWxsc2NyZWVuOnZvaWQgMCxleGl0RnVsbHNjcmVlbjp2b2lkIDAsZnVsbHNjcmVlbkVuYWJsZWQ6dm9pZCAwLGZ1bGxzY3JlZW5FbGVtZW50OnZvaWQgMCxmdWxsc2NyZWVuY2hhbmdlOnZvaWQgMCxmdWxsc2NyZWVuZXJyb3I6dm9pZCAwfSxxbz17fTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhxbyx7ZWxlbWVudDp7Z2V0OmZ1bmN0aW9uKCl7aWYocW8uc3VwcG9ydHNGdWxsc2NyZWVuKCkpcmV0dXJuIGRvY3VtZW50W1BuLmZ1bGxzY3JlZW5FbGVtZW50XX19LGNoYW5nZUV2ZW50TmFtZTp7Z2V0OmZ1bmN0aW9uKCl7aWYocW8uc3VwcG9ydHNGdWxsc2NyZWVuKCkpcmV0dXJuIFBuLmZ1bGxzY3JlZW5jaGFuZ2V9fSxlcnJvckV2ZW50TmFtZTp7Z2V0OmZ1bmN0aW9uKCl7aWYocW8uc3VwcG9ydHNGdWxsc2NyZWVuKCkpcmV0dXJuIFBuLmZ1bGxzY3JlZW5lcnJvcn19LGVuYWJsZWQ6e2dldDpmdW5jdGlvbigpe2lmKHFvLnN1cHBvcnRzRnVsbHNjcmVlbigpKXJldHVybiBkb2N1bWVudFtQbi5mdWxsc2NyZWVuRW5hYmxlZF19fSxmdWxsc2NyZWVuOntnZXQ6ZnVuY3Rpb24oKXtpZihxby5zdXBwb3J0c0Z1bGxzY3JlZW4oKSlyZXR1cm4gcW8uZWxlbWVudCE9PW51bGx9fX0pO3FvLnN1cHBvcnRzRnVsbHNjcmVlbj1mdW5jdGlvbigpe2lmKF8odWkpKXJldHVybiB1aTt1aT0hMTtsZXQgbj1kb2N1bWVudC5ib2R5O2lmKHR5cGVvZiBuLnJlcXVlc3RGdWxsc2NyZWVuPT0iZnVuY3Rpb24iKXJldHVybiBQbi5yZXF1ZXN0RnVsbHNjcmVlbj0icmVxdWVzdEZ1bGxzY3JlZW4iLFBuLmV4aXRGdWxsc2NyZWVuPSJleGl0RnVsbHNjcmVlbiIsUG4uZnVsbHNjcmVlbkVuYWJsZWQ9ImZ1bGxzY3JlZW5FbmFibGVkIixQbi5mdWxsc2NyZWVuRWxlbWVudD0iZnVsbHNjcmVlbkVsZW1lbnQiLFBuLmZ1bGxzY3JlZW5jaGFuZ2U9ImZ1bGxzY3JlZW5jaGFuZ2UiLFBuLmZ1bGxzY3JlZW5lcnJvcj0iZnVsbHNjcmVlbmVycm9yIix1aT0hMCx1aTtsZXQgZT1bIndlYmtpdCIsIm1veiIsIm8iLCJtcyIsImtodG1sIl0sdDtmb3IobGV0IG89MCxhPWUubGVuZ3RoO288YTsrK28pe2xldCByPWVbb107dD1gJHtyfVJlcXVlc3RGdWxsc2NyZWVuYCx0eXBlb2Ygblt0XT09ImZ1bmN0aW9uIj8oUG4ucmVxdWVzdEZ1bGxzY3JlZW49dCx1aT0hMCk6KHQ9YCR7cn1SZXF1ZXN0RnVsbFNjcmVlbmAsdHlwZW9mIG5bdF09PSJmdW5jdGlvbiImJihQbi5yZXF1ZXN0RnVsbHNjcmVlbj10LHVpPSEwKSksdD1gJHtyfUV4aXRGdWxsc2NyZWVuYCx0eXBlb2YgZG9jdW1lbnRbdF09PSJmdW5jdGlvbiI/UG4uZXhpdEZ1bGxzY3JlZW49dDoodD1gJHtyfUNhbmNlbEZ1bGxTY3JlZW5gLHR5cGVvZiBkb2N1bWVudFt0XT09ImZ1bmN0aW9uIiYmKFBuLmV4aXRGdWxsc2NyZWVuPXQpKSx0PWAke3J9RnVsbHNjcmVlbkVuYWJsZWRgLGRvY3VtZW50W3RdIT09dm9pZCAwP1BuLmZ1bGxzY3JlZW5FbmFibGVkPXQ6KHQ9YCR7cn1GdWxsU2NyZWVuRW5hYmxlZGAsZG9jdW1lbnRbdF0hPT12b2lkIDAmJihQbi5mdWxsc2NyZWVuRW5hYmxlZD10KSksdD1gJHtyfUZ1bGxzY3JlZW5FbGVtZW50YCxkb2N1bWVudFt0XSE9PXZvaWQgMD9Qbi5mdWxsc2NyZWVuRWxlbWVudD10Oih0PWAke3J9RnVsbFNjcmVlbkVsZW1lbnRgLGRvY3VtZW50W3RdIT09dm9pZCAwJiYoUG4uZnVsbHNjcmVlbkVsZW1lbnQ9dCkpLHQ9YCR7cn1mdWxsc2NyZWVuY2hhbmdlYCxkb2N1bWVudFtgb24ke3R9YF0hPT12b2lkIDAmJihyPT09Im1zIiYmKHQ9Ik1TRnVsbHNjcmVlbkNoYW5nZSIpLFBuLmZ1bGxzY3JlZW5jaGFuZ2U9dCksdD1gJHtyfWZ1bGxzY3JlZW5lcnJvcmAsZG9jdW1lbnRbYG9uJHt0fWBdIT09dm9pZCAwJiYocj09PSJtcyImJih0PSJNU0Z1bGxzY3JlZW5FcnJvciIpLFBuLmZ1bGxzY3JlZW5lcnJvcj10KX1yZXR1cm4gdWl9O3FvLnJlcXVlc3RGdWxsc2NyZWVuPWZ1bmN0aW9uKG4sZSl7cW8uc3VwcG9ydHNGdWxsc2NyZWVuKCkmJm5bUG4ucmVxdWVzdEZ1bGxzY3JlZW5dKHt2ckRpc3BsYXk6ZX0pfTtxby5leGl0RnVsbHNjcmVlbj1mdW5jdGlvbigpe3FvLnN1cHBvcnRzRnVsbHNjcmVlbigpJiZkb2N1bWVudFtQbi5leGl0RnVsbHNjcmVlbl0oKX07cW8uX25hbWVzPVBuO253PXFvfSk7ZnVuY3Rpb24gTWYobil7bGV0IGU9bi5zcGxpdCgiLiIpO2ZvcihsZXQgdD0wLG89ZS5sZW5ndGg7dDxvOysrdCllW3RdPXBhcnNlSW50KGVbdF0sMTApO3JldHVybiBlfWZ1bmN0aW9uIE5iKCl7aWYoIV8odmwpJiYodmw9ITEsIUxsKCkpKXtsZXQgbj0vIENocm9tZVwvKFtcLjAtOV0rKS8uZXhlYyhBYS51c2VyQWdlbnQpO24hPT1udWxsJiYodmw9ITAsYXc9TWYoblsxXSkpfXJldHVybiB2bH1mdW5jdGlvbiBJTSgpe3JldHVybiBOYigpJiZhd31mdW5jdGlvbiBpdygpe2lmKCFfKEZsKSYmKEZsPSExLCFOYigpJiYhTGwoKSYmLyBTYWZhcmlcL1tcLjAtOV0rLy50ZXN0KEFhLnVzZXJBZ2VudCkpKXtsZXQgbj0vIFZlcnNpb25cLyhbXC4wLTldKykvLmV4ZWMoQWEudXNlckFnZW50KTtuIT09bnVsbCYmKEZsPSEwLHJ3PU1mKG5bMV0pKX1yZXR1cm4gRmx9ZnVuY3Rpb24gUE0oKXtyZXR1cm4gaXcoKSYmcnd9ZnVuY3Rpb24gY3coKXtpZighXyhEbCkpe0RsPSExO2xldCBuPS8gQXBwbGVXZWJLaXRcLyhbXC4wLTldKykoXCs/KS8uZXhlYyhBYS51c2VyQWdlbnQpO24hPT1udWxsJiYoRGw9ITAsTWI9TWYoblsxXSksTWIuaXNOaWdodGx5PSEhblsyXSl9cmV0dXJuIERsfWZ1bmN0aW9uIGtNKCl7cmV0dXJuIGN3KCkmJk1ifWZ1bmN0aW9uIExsKCl7aWYoIV8oQmwpKXtCbD0hMTtsZXQgbj0vIEVkZ1wvKFtcLjAtOV0rKS8uZXhlYyhBYS51c2VyQWdlbnQpO24hPT1udWxsJiYoQmw9ITAsc3c9TWYoblsxXSkpfXJldHVybiBCbH1mdW5jdGlvbiB2TSgpe3JldHVybiBMbCgpJiZzd31mdW5jdGlvbiB6bCgpe2lmKCFfKGpsKSl7amw9ITE7bGV0IG49L0ZpcmVmb3hcLyhbXC4wLTldKykvLmV4ZWMoQWEudXNlckFnZW50KTtuIT09bnVsbCYmKGpsPSEwLEliPU1mKG5bMV0pKX1yZXR1cm4gamx9ZnVuY3Rpb24gRk0oKXtyZXR1cm4gXyhPYil8fChPYj0vV2luZG93cy9pLnRlc3QoQWEuYXBwVmVyc2lvbikpLE9ifWZ1bmN0aW9uIERNKCl7cmV0dXJuIF8oU2IpfHwoU2I9bmF2aWdhdG9yLnBsYXRmb3JtPT09ImlQaG9uZSJ8fG5hdmlnYXRvci5wbGF0Zm9ybT09PSJpUG9kInx8bmF2aWdhdG9yLnBsYXRmb3JtPT09ImlQYWQiKSxTYn1mdW5jdGlvbiBCTSgpe3JldHVybiB6bCgpJiZJYn1mdW5jdGlvbiBqTSgpe3JldHVybiBfKENiKXx8KENiPSF6bCgpJiZ0eXBlb2YgUG9pbnRlckV2ZW50PCJ1IiYmKCFfKEFhLnBvaW50ZXJFbmFibGVkKXx8QWEucG9pbnRlckVuYWJsZWQpKSxDYn1mdW5jdGlvbiBkdygpe2lmKCFfKFVsKSl7bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7bi5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO2ltYWdlLXJlbmRlcmluZzogcGl4ZWxhdGVkOyIpO2xldCBlPW4uc3R5bGUuaW1hZ2VSZW5kZXJpbmc7VWw9XyhlKSYmZSE9PSIiLFVsJiYoZnc9ZSl9cmV0dXJuIFVsfWZ1bmN0aW9uIFVNKCl7cmV0dXJuIGR3KCk/Znc6dm9pZCAwfWZ1bmN0aW9uIERvKCl7cmV0dXJuIERvLl9yZXN1bHR9dmFyIEFhLHZsLGF3LEZsLHJ3LERsLE1iLEJsLHN3LGpsLEliLE9iLFNiLENiLGZ3LFVsLG9zLHdhLGFyLEdsPVgoKCk9PntzZSgpO293KCk7dHlwZW9mIG5hdmlnYXRvcjwidSI/QWE9bmF2aWdhdG9yOkFhPXt9O0RvLl9wcm9taXNlPXZvaWQgMDtEby5fcmVzdWx0PXZvaWQgMDtEby5pbml0aWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIF8oRG8uX3Byb21pc2UpfHwoRG8uX3Byb21pc2U9bmV3IFByb21pc2Uobj0+e2xldCBlPW5ldyBJbWFnZTtlLm9ubG9hZD1mdW5jdGlvbigpe0RvLl9yZXN1bHQ9ZS53aWR0aD4wJiZlLmhlaWdodD4wLG4oRG8uX3Jlc3VsdCl9LGUub25lcnJvcj1mdW5jdGlvbigpe0RvLl9yZXN1bHQ9ITEsbihEby5fcmVzdWx0KX0sZS5zcmM9ImRhdGE6aW1hZ2Uvd2VicDtiYXNlNjQsVWtsR1JpSUFBQUJYUlVKUVZsQTRJQllBQUFBd0FRQ2RBU29CQUFFQURzRCtKYVFBQTNBQUFBQUEifSkpLERvLl9wcm9taXNlfTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhEbyx7aW5pdGlhbGl6ZWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBfKERvLl9yZXN1bHQpfX19KTtvcz1bXTt0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiYob3MucHVzaChJbnQ4QXJyYXksVWludDhBcnJheSxJbnQxNkFycmF5LFVpbnQxNkFycmF5LEludDMyQXJyYXksVWludDMyQXJyYXksRmxvYXQzMkFycmF5LEZsb2F0NjRBcnJheSksdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5PCJ1IiYmb3MucHVzaChVaW50OENsYW1wZWRBcnJheSksdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5PCJ1IiYmb3MucHVzaChVaW50OENsYW1wZWRBcnJheSksdHlwZW9mIEJpZ0ludDY0QXJyYXk8InUiJiZvcy5wdXNoKEJpZ0ludDY0QXJyYXkpLHR5cGVvZiBCaWdVaW50NjRBcnJheTwidSImJm9zLnB1c2goQmlnVWludDY0QXJyYXkpKTt3YT17aXNDaHJvbWU6TmIsY2hyb21lVmVyc2lvbjpJTSxpc1NhZmFyaTppdyxzYWZhcmlWZXJzaW9uOlBNLGlzV2Via2l0OmN3LHdlYmtpdFZlcnNpb246a00saXNFZGdlOkxsLGVkZ2VWZXJzaW9uOnZNLGlzRmlyZWZveDp6bCxmaXJlZm94VmVyc2lvbjpCTSxpc1dpbmRvd3M6Rk0saXNJUGFkT3JJT1M6RE0saGFyZHdhcmVDb25jdXJyZW5jeTpBYS5oYXJkd2FyZUNvbmN1cnJlbmN5Pz8zLHN1cHBvcnRzUG9pbnRlckV2ZW50czpqTSxzdXBwb3J0c0ltYWdlUmVuZGVyaW5nUGl4ZWxhdGVkOmR3LHN1cHBvcnRzV2ViUDpEbyxpbWFnZVJlbmRlcmluZ1ZhbHVlOlVNLHR5cGVkQXJyYXlUeXBlczpvc307d2Euc3VwcG9ydHNCYXNpcz1mdW5jdGlvbihuKXtyZXR1cm4gd2Euc3VwcG9ydHNXZWJBc3NlbWJseSgpJiZuLmNvbnRleHQuc3VwcG9ydHNCYXNpc307d2Euc3VwcG9ydHNGdWxsc2NyZWVuPWZ1bmN0aW9uKCl7cmV0dXJuIG53LnN1cHBvcnRzRnVsbHNjcmVlbigpfTt3YS5zdXBwb3J0c1R5cGVkQXJyYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSJ9O3dhLnN1cHBvcnRzQmlnSW50NjRBcnJheT1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgQmlnSW50NjRBcnJheTwidSJ9O3dhLnN1cHBvcnRzQmlnVWludDY0QXJyYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEJpZ1VpbnQ2NEFycmF5PCJ1In07d2Euc3VwcG9ydHNCaWdJbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEJpZ0ludDwidSJ9O3dhLnN1cHBvcnRzV2ViV29ya2Vycz1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgV29ya2VyPCJ1In07d2Euc3VwcG9ydHNXZWJBc3NlbWJseT1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgV2ViQXNzZW1ibHk8InUifTt3YS5zdXBwb3J0c1dlYmdsMj1mdW5jdGlvbihuKXtyZXR1cm4gbi5jb250ZXh0LndlYmdsMn07d2Euc3VwcG9ydHNFc21XZWJXb3JrZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIXpsKCl8fHBhcnNlSW50KEliKT49MTE0fTthcj13YX0pO2Z1bmN0aW9uIHdlKG4sZSx0LG8pe3RoaXMueD1uPz8wLHRoaXMueT1lPz8wLHRoaXMuej10Pz8wLHRoaXMudz1vPz8wfXZhciBOZixMTSx6TSx1dyxsdyxQYixodyxWbCxrYixqYSxtdyxIbCx2YixidyxGYixEYixHTSxWTSxJZixhcyxITSxwdyxLbCxxbCx2cixGcixZZSxXbz1YKCgpPT57TWUoKTtzZSgpO0dsKCk7VWUoKTtJbigpO05mPW5ldyBzO3dlLmZyb21BeGlzQW5nbGU9ZnVuY3Rpb24obixlLHQpe2xldCBvPWUvMixhPU1hdGguc2luKG8pO05mPXMubm9ybWFsaXplKG4sTmYpO2xldCByPU5mLngqYSxpPU5mLnkqYSxmPU5mLnoqYSxkPU1hdGguY29zKG8pO3JldHVybiBfKHQpPyh0Lng9cix0Lnk9aSx0Lno9Zix0Lnc9ZCx0KTpuZXcgd2UocixpLGYsZCl9O0xNPVsxLDIsMF0sek09bmV3IEFycmF5KDMpO3dlLmZyb21Sb3RhdGlvbk1hdHJpeD1mdW5jdGlvbihuLGUpe2xldCB0LG8sYSxyLGksZj1uW0ouQ09MVU1OMFJPVzBdLGQ9bltKLkNPTFVNTjFST1cxXSxjPW5bSi5DT0xVTU4yUk9XMl0sdT1mK2QrYztpZih1PjApdD1NYXRoLnNxcnQodSsxKSxpPS41KnQsdD0uNS90LG89KG5bSi5DT0xVTU4xUk9XMl0tbltKLkNPTFVNTjJST1cxXSkqdCxhPShuW0ouQ09MVU1OMlJPVzBdLW5bSi5DT0xVTU4wUk9XMl0pKnQscj0obltKLkNPTFVNTjBST1cxXS1uW0ouQ09MVU1OMVJPVzBdKSp0O2Vsc2V7bGV0IGw9TE0saD0wO2Q+ZiYmKGg9MSksYz5mJiZjPmQmJihoPTIpO2xldCBtPWxbaF0sYj1sW21dO3Q9TWF0aC5zcXJ0KG5bSi5nZXRFbGVtZW50SW5kZXgoaCxoKV0tbltKLmdldEVsZW1lbnRJbmRleChtLG0pXS1uW0ouZ2V0RWxlbWVudEluZGV4KGIsYildKzEpO2xldCBwPXpNO3BbaF09LjUqdCx0PS41L3QsaT0obltKLmdldEVsZW1lbnRJbmRleChiLG0pXS1uW0ouZ2V0RWxlbWVudEluZGV4KG0sYildKSp0LHBbbV09KG5bSi5nZXRFbGVtZW50SW5kZXgobSxoKV0rbltKLmdldEVsZW1lbnRJbmRleChoLG0pXSkqdCxwW2JdPShuW0ouZ2V0RWxlbWVudEluZGV4KGIsaCldK25bSi5nZXRFbGVtZW50SW5kZXgoaCxiKV0pKnQsbz0tcFswXSxhPS1wWzFdLHI9LXBbMl19cmV0dXJuIF8oZSk/KGUueD1vLGUueT1hLGUuej1yLGUudz1pLGUpOm5ldyB3ZShvLGEscixpKX07dXc9bmV3IHdlLGx3PW5ldyB3ZSxQYj1uZXcgd2UsaHc9bmV3IHdlO3dlLmZyb21IZWFkaW5nUGl0Y2hSb2xsPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIGh3PXdlLmZyb21BeGlzQW5nbGUocy5VTklUX1gsbi5yb2xsLHV3KSxQYj13ZS5mcm9tQXhpc0FuZ2xlKHMuVU5JVF9ZLC1uLnBpdGNoLGUpLGU9d2UubXVsdGlwbHkoUGIsaHcsUGIpLGx3PXdlLmZyb21BeGlzQW5nbGUocy5VTklUX1osLW4uaGVhZGluZyx1dyksd2UubXVsdGlwbHkobHcsZSxlKX07Vmw9bmV3IHMsa2I9bmV3IHMsamE9bmV3IHdlLG13PW5ldyB3ZSxIbD1uZXcgd2U7d2UucGFja2VkTGVuZ3RoPTQ7d2UucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCxlW3QrK109bi54LGVbdCsrXT1uLnksZVt0KytdPW4ueixlW3RdPW4udyxlfTt3ZS51bnBhY2s9ZnVuY3Rpb24obixlLHQpe3JldHVybiBlPWU/PzAsXyh0KXx8KHQ9bmV3IHdlKSx0Lng9bltlXSx0Lnk9bltlKzFdLHQuej1uW2UrMl0sdC53PW5bZSszXSx0fTt3ZS5wYWNrZWRJbnRlcnBvbGF0aW9uTGVuZ3RoPTM7d2UuY29udmVydFBhY2tlZEFycmF5Rm9ySW50ZXJwb2xhdGlvbj1mdW5jdGlvbihuLGUsdCxvKXt3ZS51bnBhY2sobix0KjQsSGwpLHdlLmNvbmp1Z2F0ZShIbCxIbCk7Zm9yKGxldCBhPTAscj10LWUrMTthPHI7YSsrKXtsZXQgaT1hKjM7d2UudW5wYWNrKG4sKGUrYSkqNCxqYSksd2UubXVsdGlwbHkoamEsSGwsamEpLGphLnc8MCYmd2UubmVnYXRlKGphLGphKSx3ZS5jb21wdXRlQXhpcyhqYSxWbCk7bGV0IGY9d2UuY29tcHV0ZUFuZ2xlKGphKTtfKG8pfHwobz1bXSksb1tpXT1WbC54KmYsb1tpKzFdPVZsLnkqZixvW2krMl09VmwueipmfX07d2UudW5wYWNrSW50ZXJwb2xhdGlvblJlc3VsdD1mdW5jdGlvbihuLGUsdCxvLGEpe18oYSl8fChhPW5ldyB3ZSkscy5mcm9tQXJyYXkobiwwLGtiKTtsZXQgcj1zLm1hZ25pdHVkZShrYik7cmV0dXJuIHdlLnVucGFjayhlLG8qNCxtdykscj09PTA/d2UuY2xvbmUod2UuSURFTlRJVFksamEpOndlLmZyb21BeGlzQW5nbGUoa2IscixqYSksd2UubXVsdGlwbHkoamEsbXcsYSl9O3dlLmNsb25lPWZ1bmN0aW9uKG4sZSl7aWYoXyhuKSlyZXR1cm4gXyhlKT8oZS54PW4ueCxlLnk9bi55LGUuej1uLnosZS53PW4udyxlKTpuZXcgd2Uobi54LG4ueSxuLnosbi53KX07d2UuY29uanVnYXRlPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIGUueD0tbi54LGUueT0tbi55LGUuej0tbi56LGUudz1uLncsZX07d2UubWFnbml0dWRlU3F1YXJlZD1mdW5jdGlvbihuKXtyZXR1cm4gbi54Km4ueCtuLnkqbi55K24ueipuLnorbi53Km4ud307d2UubWFnbml0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnNxcnQod2UubWFnbml0dWRlU3F1YXJlZChuKSl9O3dlLm5vcm1hbGl6ZT1mdW5jdGlvbihuLGUpe2xldCB0PTEvd2UubWFnbml0dWRlKG4pLG89bi54KnQsYT1uLnkqdCxyPW4ueip0LGk9bi53KnQ7cmV0dXJuIGUueD1vLGUueT1hLGUuej1yLGUudz1pLGV9O3dlLmludmVyc2U9ZnVuY3Rpb24obixlKXtsZXQgdD13ZS5tYWduaXR1ZGVTcXVhcmVkKG4pO3JldHVybiBlPXdlLmNvbmp1Z2F0ZShuLGUpLHdlLm11bHRpcGx5QnlTY2FsYXIoZSwxL3QsZSl9O3dlLmFkZD1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQueD1uLngrZS54LHQueT1uLnkrZS55LHQuej1uLnorZS56LHQudz1uLncrZS53LHR9O3dlLnN1YnRyYWN0PWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gdC54PW4ueC1lLngsdC55PW4ueS1lLnksdC56PW4uei1lLnosdC53PW4udy1lLncsdH07d2UubmVnYXRlPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIGUueD0tbi54LGUueT0tbi55LGUuej0tbi56LGUudz0tbi53LGV9O3dlLmRvdD1mdW5jdGlvbihuLGUpe3JldHVybiBuLngqZS54K24ueSplLnkrbi56KmUueituLncqZS53fTt3ZS5tdWx0aXBseT1mdW5jdGlvbihuLGUsdCl7bGV0IG89bi54LGE9bi55LHI9bi56LGk9bi53LGY9ZS54LGQ9ZS55LGM9ZS56LHU9ZS53LGw9aSpmK28qdSthKmMtcipkLGg9aSpkLW8qYythKnUrcipmLG09aSpjK28qZC1hKmYrcip1LGI9aSp1LW8qZi1hKmQtcipjO3JldHVybiB0Lng9bCx0Lnk9aCx0Lno9bSx0Lnc9Yix0fTt3ZS5tdWx0aXBseUJ5U2NhbGFyPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gdC54PW4ueCplLHQueT1uLnkqZSx0Lno9bi56KmUsdC53PW4udyplLHR9O3dlLmRpdmlkZUJ5U2NhbGFyPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gdC54PW4ueC9lLHQueT1uLnkvZSx0Lno9bi56L2UsdC53PW4udy9lLHR9O3dlLmNvbXB1dGVBeGlzPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9bi53O2lmKE1hdGguYWJzKHQtMSk8ay5FUFNJTE9ONnx8TWF0aC5hYnModCsxKTxrLkVQU0lMT042KXJldHVybiBlLng9MSxlLnk9ZS56PTAsZTtsZXQgbz0xL01hdGguc3FydCgxLXQqdCk7cmV0dXJuIGUueD1uLngqbyxlLnk9bi55Km8sZS56PW4ueipvLGV9O3dlLmNvbXB1dGVBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5hYnMobi53LTEpPGsuRVBTSUxPTjY/MDoyKk1hdGguYWNvcyhuLncpfTt2Yj1uZXcgd2U7d2UubGVycD1mdW5jdGlvbihuLGUsdCxvKXtyZXR1cm4gdmI9d2UubXVsdGlwbHlCeVNjYWxhcihlLHQsdmIpLG89d2UubXVsdGlwbHlCeVNjYWxhcihuLDEtdCxvKSx3ZS5hZGQodmIsbyxvKX07Ync9bmV3IHdlLEZiPW5ldyB3ZSxEYj1uZXcgd2U7d2Uuc2xlcnA9ZnVuY3Rpb24obixlLHQsbyl7bGV0IGE9d2UuZG90KG4sZSkscj1lO2lmKGE8MCYmKGE9LWEscj1idz13ZS5uZWdhdGUoZSxidykpLDEtYTxrLkVQU0lMT042KXJldHVybiB3ZS5sZXJwKG4scix0LG8pO2xldCBpPU1hdGguYWNvcyhhKTtyZXR1cm4gRmI9d2UubXVsdGlwbHlCeVNjYWxhcihuLE1hdGguc2luKCgxLXQpKmkpLEZiKSxEYj13ZS5tdWx0aXBseUJ5U2NhbGFyKHIsTWF0aC5zaW4odCppKSxEYiksbz13ZS5hZGQoRmIsRGIsbyksd2UubXVsdGlwbHlCeVNjYWxhcihvLDEvTWF0aC5zaW4oaSksbyl9O3dlLmxvZz1mdW5jdGlvbihuLGUpe2xldCB0PWsuYWNvc0NsYW1wZWQobi53KSxvPTA7cmV0dXJuIHQhPT0wJiYobz10L01hdGguc2luKHQpKSxzLm11bHRpcGx5QnlTY2FsYXIobixvLGUpfTt3ZS5leHA9ZnVuY3Rpb24obixlKXtsZXQgdD1zLm1hZ25pdHVkZShuKSxvPTA7cmV0dXJuIHQhPT0wJiYobz1NYXRoLnNpbih0KS90KSxlLng9bi54Km8sZS55PW4ueSpvLGUuej1uLnoqbyxlLnc9TWF0aC5jb3ModCksZX07R009bmV3IHMsVk09bmV3IHMsSWY9bmV3IHdlLGFzPW5ldyB3ZTt3ZS5jb21wdXRlSW5uZXJRdWFkcmFuZ2xlPWZ1bmN0aW9uKG4sZSx0LG8pe2xldCBhPXdlLmNvbmp1Z2F0ZShlLElmKTt3ZS5tdWx0aXBseShhLHQsYXMpO2xldCByPXdlLmxvZyhhcyxHTSk7d2UubXVsdGlwbHkoYSxuLGFzKTtsZXQgaT13ZS5sb2coYXMsVk0pO3JldHVybiBzLmFkZChyLGkscikscy5tdWx0aXBseUJ5U2NhbGFyKHIsLjI1LHIpLHMubmVnYXRlKHIsciksd2UuZXhwKHIsSWYpLHdlLm11bHRpcGx5KGUsSWYsbyl9O3dlLnNxdWFkPWZ1bmN0aW9uKG4sZSx0LG8sYSxyKXtsZXQgaT13ZS5zbGVycChuLGUsYSxJZiksZj13ZS5zbGVycCh0LG8sYSxhcyk7cmV0dXJuIHdlLnNsZXJwKGksZiwyKmEqKDEtYSkscil9O0hNPW5ldyB3ZSxwdz0xLjkwMTEwNzQ1MzUxNzMwMDMsS2w9YXIuc3VwcG9ydHNUeXBlZEFycmF5cygpP25ldyBGbG9hdDMyQXJyYXkoOCk6W10scWw9YXIuc3VwcG9ydHNUeXBlZEFycmF5cygpP25ldyBGbG9hdDMyQXJyYXkoOCk6W10sdnI9YXIuc3VwcG9ydHNUeXBlZEFycmF5cygpP25ldyBGbG9hdDMyQXJyYXkoOCk6W10sRnI9YXIuc3VwcG9ydHNUeXBlZEFycmF5cygpP25ldyBGbG9hdDMyQXJyYXkoOCk6W107Zm9yKGxldCBuPTA7bjw3Oysrbil7bGV0IGU9bisxLHQ9MiplKzE7S2xbbl09MS8oZSp0KSxxbFtuXT1lL3R9S2xbN109cHcvMTM2O3FsWzddPXB3KjgvMTc7d2UuZmFzdFNsZXJwPWZ1bmN0aW9uKG4sZSx0LG8pe2xldCBhPXdlLmRvdChuLGUpLHI7YT49MD9yPTE6KHI9LTEsYT0tYSk7bGV0IGk9YS0xLGY9MS10LGQ9dCp0LGM9ZipmO2ZvcihsZXQgbT03O20+PTA7LS1tKXZyW21dPShLbFttXSpkLXFsW21dKSppLEZyW21dPShLbFttXSpjLXFsW21dKSppO2xldCB1PXIqdCooMSt2clswXSooMSt2clsxXSooMSt2clsyXSooMSt2clszXSooMSt2cls0XSooMSt2cls1XSooMSt2cls2XSooMSt2cls3XSkpKSkpKSkpLGw9ZiooMStGclswXSooMStGclsxXSooMStGclsyXSooMStGclszXSooMStGcls0XSooMStGcls1XSooMStGcls2XSooMStGcls3XSkpKSkpKSkpLGg9d2UubXVsdGlwbHlCeVNjYWxhcihuLGwsSE0pO3JldHVybiB3ZS5tdWx0aXBseUJ5U2NhbGFyKGUsdSxvKSx3ZS5hZGQoaCxvLG8pfTt3ZS5mYXN0U3F1YWQ9ZnVuY3Rpb24obixlLHQsbyxhLHIpe2xldCBpPXdlLmZhc3RTbGVycChuLGUsYSxJZiksZj13ZS5mYXN0U2xlcnAodCxvLGEsYXMpO3JldHVybiB3ZS5mYXN0U2xlcnAoaSxmLDIqYSooMS1hKSxyKX07d2UuZXF1YWxzPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIG49PT1lfHxfKG4pJiZfKGUpJiZuLng9PT1lLngmJm4ueT09PWUueSYmbi56PT09ZS56JiZuLnc9PT1lLnd9O3dlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24obixlLHQpe3JldHVybiB0PXQ/PzAsbj09PWV8fF8obikmJl8oZSkmJk1hdGguYWJzKG4ueC1lLngpPD10JiZNYXRoLmFicyhuLnktZS55KTw9dCYmTWF0aC5hYnMobi56LWUueik8PXQmJk1hdGguYWJzKG4udy1lLncpPD10fTt3ZS5aRVJPPU9iamVjdC5mcmVlemUobmV3IHdlKDAsMCwwLDApKTt3ZS5JREVOVElUWT1PYmplY3QuZnJlZXplKG5ldyB3ZSgwLDAsMCwxKSk7d2UucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKG4pe3JldHVybiB3ZS5jbG9uZSh0aGlzLG4pfTt3ZS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKG4pe3JldHVybiB3ZS5lcXVhbHModGhpcyxuKX07d2UucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24obixlKXtyZXR1cm4gd2UuZXF1YWxzRXBzaWxvbih0aGlzLG4sZSl9O3dlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybmAoJHt0aGlzLnh9LCAke3RoaXMueX0sICR7dGhpcy56fSwgJHt0aGlzLnd9KWB9O1llPXdlfSk7dmFyIGR0LEJiLHJzLGpiLFhvLGxpLGhpLG1pLEtNLHFNLFdNLFhNLFlNLEpNLFpNLGd3LFFNLCRNLGVOLHROLG5OLG9OLGFOLHJOLGlOLGNOLFdsLHpiLHNOLGZOLGROLFhsLHVOLGxOLGhOLG1OLFViLExiLGJOLHBOLGdOLF9OLF93LEdiLHlOLEFOLFZiLHl3LG9vLHJyPVgoKCk9Pnt2dCgpO01lKCk7YmEoKTtndCgpO3NlKCk7SmkoKTtXQSgpO3RiKCk7VmUoKTtYQSgpO3R3KCk7RWIoKTtobCgpO1VlKCk7SW4oKTt1bigpO1dvKCk7ZmwoKTtkdD17fSxCYj17dXA6e3NvdXRoOiJlYXN0Iixub3J0aDoid2VzdCIsd2VzdDoic291dGgiLGVhc3Q6Im5vcnRoIn0sZG93bjp7c291dGg6Indlc3QiLG5vcnRoOiJlYXN0Iix3ZXN0OiJub3J0aCIsZWFzdDoic291dGgifSxzb3V0aDp7dXA6Indlc3QiLGRvd246ImVhc3QiLHdlc3Q6ImRvd24iLGVhc3Q6InVwIn0sbm9ydGg6e3VwOiJlYXN0Iixkb3duOiJ3ZXN0Iix3ZXN0OiJ1cCIsZWFzdDoiZG93biJ9LHdlc3Q6e3VwOiJub3J0aCIsZG93bjoic291dGgiLG5vcnRoOiJkb3duIixzb3V0aDoidXAifSxlYXN0Ont1cDoic291dGgiLGRvd246Im5vcnRoIixub3J0aDoidXAiLHNvdXRoOiJkb3duIn19LHJzPXtub3J0aDpbLTEsMCwwXSxlYXN0OlswLDEsMF0sdXA6WzAsMCwxXSxzb3V0aDpbMSwwLDBdLHdlc3Q6WzAsLTEsMF0sZG93bjpbMCwwLC0xXX0samI9e30sWG89e2Vhc3Q6bmV3IHMsbm9ydGg6bmV3IHMsdXA6bmV3IHMsd2VzdDpuZXcgcyxzb3V0aDpuZXcgcyxkb3duOm5ldyBzfSxsaT1uZXcgcyxoaT1uZXcgcyxtaT1uZXcgcztkdC5sb2NhbEZyYW1lVG9GaXhlZEZyYW1lR2VuZXJhdG9yPWZ1bmN0aW9uKG4sZSl7aWYoIUJiLmhhc093blByb3BlcnR5KG4pfHwhQmJbbl0uaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IFZ0KCJmaXJzdEF4aXMgYW5kIHNlY29uZEF4aXMgbXVzdCBiZSBlYXN0LCBub3J0aCwgdXAsIHdlc3QsIHNvdXRoIG9yIGRvd24uIik7bGV0IHQ9QmJbbl1bZV0sbyxhPW4rZTtyZXR1cm4gXyhqYlthXSk/bz1qYlthXToobz1mdW5jdGlvbihyLGksZil7aWYoXyhmKXx8KGY9bmV3ICQpLHMuZXF1YWxzRXBzaWxvbihyLHMuWkVSTyxrLkVQU0lMT04xNCkpcy51bnBhY2socnNbbl0sMCxsaSkscy51bnBhY2socnNbZV0sMCxoaSkscy51bnBhY2socnNbdF0sMCxtaSk7ZWxzZSBpZihrLmVxdWFsc0Vwc2lsb24oci54LDAsay5FUFNJTE9OMTQpJiZrLmVxdWFsc0Vwc2lsb24oci55LDAsay5FUFNJTE9OMTQpKXtsZXQgZD1rLnNpZ24oci56KTtzLnVucGFjayhyc1tuXSwwLGxpKSxuIT09ImVhc3QiJiZuIT09Indlc3QiJiZzLm11bHRpcGx5QnlTY2FsYXIobGksZCxsaSkscy51bnBhY2socnNbZV0sMCxoaSksZSE9PSJlYXN0IiYmZSE9PSJ3ZXN0IiYmcy5tdWx0aXBseUJ5U2NhbGFyKGhpLGQsaGkpLHMudW5wYWNrKHJzW3RdLDAsbWkpLHQhPT0iZWFzdCImJnQhPT0id2VzdCImJnMubXVsdGlwbHlCeVNjYWxhcihtaSxkLG1pKX1lbHNle2k9aT8/Sy5kZWZhdWx0LGkuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHIsWG8udXApO2xldCBkPVhvLnVwLGM9WG8uZWFzdDtjLng9LXIueSxjLnk9ci54LGMuej0wLHMubm9ybWFsaXplKGMsWG8uZWFzdCkscy5jcm9zcyhkLGMsWG8ubm9ydGgpLHMubXVsdGlwbHlCeVNjYWxhcihYby51cCwtMSxYby5kb3duKSxzLm11bHRpcGx5QnlTY2FsYXIoWG8uZWFzdCwtMSxYby53ZXN0KSxzLm11bHRpcGx5QnlTY2FsYXIoWG8ubm9ydGgsLTEsWG8uc291dGgpLGxpPVhvW25dLGhpPVhvW2VdLG1pPVhvW3RdfXJldHVybiBmWzBdPWxpLngsZlsxXT1saS55LGZbMl09bGkueixmWzNdPTAsZls0XT1oaS54LGZbNV09aGkueSxmWzZdPWhpLnosZls3XT0wLGZbOF09bWkueCxmWzldPW1pLnksZlsxMF09bWkueixmWzExXT0wLGZbMTJdPXIueCxmWzEzXT1yLnksZlsxNF09ci56LGZbMTVdPTEsZn0samJbYV09byksb307ZHQuZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWU9ZHQubG9jYWxGcmFtZVRvRml4ZWRGcmFtZUdlbmVyYXRvcigiZWFzdCIsIm5vcnRoIik7ZHQubm9ydGhFYXN0RG93blRvRml4ZWRGcmFtZT1kdC5sb2NhbEZyYW1lVG9GaXhlZEZyYW1lR2VuZXJhdG9yKCJub3J0aCIsImVhc3QiKTtkdC5ub3J0aFVwRWFzdFRvRml4ZWRGcmFtZT1kdC5sb2NhbEZyYW1lVG9GaXhlZEZyYW1lR2VuZXJhdG9yKCJub3J0aCIsInVwIik7ZHQubm9ydGhXZXN0VXBUb0ZpeGVkRnJhbWU9ZHQubG9jYWxGcmFtZVRvRml4ZWRGcmFtZUdlbmVyYXRvcigibm9ydGgiLCJ3ZXN0Iik7S009bmV3IFllLHFNPW5ldyBzKDEsMSwxKSxXTT1uZXcgJDtkdC5oZWFkaW5nUGl0Y2hSb2xsVG9GaXhlZEZyYW1lPWZ1bmN0aW9uKG4sZSx0LG8sYSl7bz1vPz9kdC5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZTtsZXQgcj1ZZS5mcm9tSGVhZGluZ1BpdGNoUm9sbChlLEtNKSxpPSQuZnJvbVRyYW5zbGF0aW9uUXVhdGVybmlvblJvdGF0aW9uU2NhbGUocy5aRVJPLHIscU0sV00pO3JldHVybiBhPW8obix0LGEpLCQubXVsdGlwbHkoYSxpLGEpfTtYTT1uZXcgJCxZTT1uZXcgSjtkdC5oZWFkaW5nUGl0Y2hSb2xsUXVhdGVybmlvbj1mdW5jdGlvbihuLGUsdCxvLGEpe2xldCByPWR0LmhlYWRpbmdQaXRjaFJvbGxUb0ZpeGVkRnJhbWUobixlLHQsbyxYTSksaT0kLmdldE1hdHJpeDMocixZTSk7cmV0dXJuIFllLmZyb21Sb3RhdGlvbk1hdHJpeChpLGEpfTtKTT1uZXcgcygxLDEsMSksWk09bmV3IHMsZ3c9bmV3ICQsUU09bmV3ICQsJE09bmV3IEosZU49bmV3IFllO2R0LmZpeGVkRnJhbWVUb0hlYWRpbmdQaXRjaFJvbGw9ZnVuY3Rpb24obixlLHQsbyl7ZT1lPz9LLmRlZmF1bHQsdD10Pz9kdC5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZSxfKG8pfHwobz1uZXcgQ2wpO2xldCBhPSQuZ2V0VHJhbnNsYXRpb24obixaTSk7aWYocy5lcXVhbHMoYSxzLlpFUk8pKXJldHVybiBvLmhlYWRpbmc9MCxvLnBpdGNoPTAsby5yb2xsPTAsbztsZXQgcj0kLmludmVyc2VUcmFuc2Zvcm1hdGlvbih0KGEsZSxndyksZ3cpLGk9JC5zZXRTY2FsZShuLEpNLFFNKTtpPSQuc2V0VHJhbnNsYXRpb24oaSxzLlpFUk8saSkscj0kLm11bHRpcGx5KHIsaSxyKTtsZXQgZj1ZZS5mcm9tUm90YXRpb25NYXRyaXgoJC5nZXRNYXRyaXgzKHIsJE0pLGVOKTtyZXR1cm4gZj1ZZS5ub3JtYWxpemUoZixmKSxDbC5mcm9tUXVhdGVybmlvbihmLG8pfTt0Tj02KjM2MDArMjQ2MCs1MC41NDg0MSxuTj04NjQwMTg0ODEyODY2ZS02LG9OPS4wOTMxMDQsYU49LTYyZS03LHJOPTExNzcyNzU4Mzg0NjY4ZS0zMixpTj03MjkyMTE1ODU1M2UtMTUsY049ay5UV09fUEkvODY0MDAsV2w9bmV3IEtuO2R0LmNvbXB1dGVJY3JmVG9DZW50cmFsQm9keUZpeGVkTWF0cml4PWZ1bmN0aW9uKG4sZSl7bGV0IHQ9ZHQuY29tcHV0ZUljcmZUb0ZpeGVkTWF0cml4KG4sZSk7cmV0dXJuIF8odCl8fCh0PWR0LmNvbXB1dGVUZW1lVG9Qc2V1ZG9GaXhlZE1hdHJpeChuLGUpKSx0fTtkdC5jb21wdXRlVGVtZVRvUHNldWRvRml4ZWRNYXRyaXg9ZnVuY3Rpb24obixlKXtXbD1Lbi5hZGRTZWNvbmRzKG4sLUtuLmNvbXB1dGVUYWlNaW51c1V0YyhuKSxXbCk7bGV0IHQ9V2wuZGF5TnVtYmVyLG89V2wuc2Vjb25kc09mRGF5LGEscj10LTI0NTE1NDU7bz49NDMyMDA/YT0ocisuNSkvbG4uREFZU19QRVJfSlVMSUFOX0NFTlRVUlk6YT0oci0uNSkvbG4uREFZU19QRVJfSlVMSUFOX0NFTlRVUlk7bGV0IGY9KHROK2EqKG5OK2EqKG9OK2EqYU4pKSkqY04lay5UV09fUEksZD1pTityTioodC0yNDUxNTQ1NWUtMSksYz0obytsbi5TRUNPTkRTX1BFUl9EQVkqLjUpJWxuLlNFQ09ORFNfUEVSX0RBWSx1PWYrZCpjLGw9TWF0aC5jb3ModSksaD1NYXRoLnNpbih1KTtyZXR1cm4gXyhlKT8oZVswXT1sLGVbMV09LWgsZVsyXT0wLGVbM109aCxlWzRdPWwsZVs1XT0wLGVbNl09MCxlWzddPTAsZVs4XT0xLGUpOm5ldyBKKGwsaCwwLC1oLGwsMCwwLDAsMSl9O2R0LmlhdTIwMDZYeXNEYXRhPW5ldyBldztkdC5lYXJ0aE9yaWVudGF0aW9uUGFyYW1ldGVycz1xQS5OT05FO3piPTMyLjE4NCxzTj0yNDUxNTQ1O2R0LnByZWxvYWRJY3JmRml4ZWQ9ZnVuY3Rpb24obil7bGV0IGU9bi5zdGFydC5kYXlOdW1iZXIsdD1uLnN0YXJ0LnNlY29uZHNPZkRheSt6YixvPW4uc3RvcC5kYXlOdW1iZXIsYT1uLnN0b3Auc2Vjb25kc09mRGF5K3piO3JldHVybiBkdC5pYXUyMDA2WHlzRGF0YS5wcmVsb2FkKGUsdCxvLGEpfTtkdC5jb21wdXRlSWNyZlRvRml4ZWRNYXRyaXg9ZnVuY3Rpb24obixlKXtfKGUpfHwoZT1uZXcgSik7bGV0IHQ9ZHQuY29tcHV0ZUZpeGVkVG9JY3JmTWF0cml4KG4sZSk7aWYoXyh0KSlyZXR1cm4gSi50cmFuc3Bvc2UodCxlKX07Zk49MzIuMTg0LGROPTI0NTE1NDUsWGw9bmV3IENsLHVOPW5ldyBKLGxOPW5ldyBLbjtkdC5jb21wdXRlTW9vbkZpeGVkVG9JY3JmTWF0cml4PWZ1bmN0aW9uKG4sZSl7XyhlKXx8KGU9bmV3IEopO2xldCB0PUtuLmFkZFNlY29uZHMobixmTixsTiksbz1Lbi50b3RhbERheXModCktZE4sYT1rLnRvUmFkaWFucygxMi4xMTIpLWsudG9SYWRpYW5zKC4wNTI5OTIpKm8scj1rLnRvUmFkaWFucygyNC4yMjQpLWsudG9SYWRpYW5zKC4xMDU5ODQpKm8saT1rLnRvUmFkaWFucygyMjcuNjQ1KStrLnRvUmFkaWFucygxMy4wMTIpKm8sZj1rLnRvUmFkaWFucygyNjEuMTA1KStrLnRvUmFkaWFucygxMy4zNDA3MTYpKm8sZD1rLnRvUmFkaWFucygzNTgpK2sudG9SYWRpYW5zKC45ODU2KSpvO3JldHVybiBYbC5waXRjaD1rLnRvUmFkaWFucygxODApLWsudG9SYWRpYW5zKDMuODc4KSpNYXRoLnNpbihhKS1rLnRvUmFkaWFucyguMTIpKk1hdGguc2luKHIpK2sudG9SYWRpYW5zKC4wNykqTWF0aC5zaW4oaSktay50b1JhZGlhbnMoLjAxNykqTWF0aC5zaW4oZiksWGwucm9sbD1rLnRvUmFkaWFucyg2Ni41My05MCkray50b1JhZGlhbnMoMS41NDMpKk1hdGguY29zKGEpK2sudG9SYWRpYW5zKC4yNCkqTWF0aC5jb3Mociktay50b1JhZGlhbnMoLjAyOCkqTWF0aC5jb3MoaSkray50b1JhZGlhbnMoLjAwNykqTWF0aC5jb3MoZiksWGwuaGVhZGluZz1rLnRvUmFkaWFucygyNDQuMzc1LTkwKStrLnRvUmFkaWFucygxMy4xNzYzNTgzMSkqbytrLnRvUmFkaWFucygzLjU1OCkqTWF0aC5zaW4oYSkray50b1JhZGlhbnMoLjEyMSkqTWF0aC5zaW4ociktay50b1JhZGlhbnMoLjA2NCkqTWF0aC5zaW4oaSkray50b1JhZGlhbnMoLjAxNikqTWF0aC5zaW4oZikray50b1JhZGlhbnMoLjAyNSkqTWF0aC5zaW4oZCksSi5mcm9tSGVhZGluZ1BpdGNoUm9sbChYbCx1Til9O2R0LmNvbXB1dGVJY3JmVG9Nb29uRml4ZWRNYXRyaXg9ZnVuY3Rpb24obixlKXtfKGUpfHwoZT1uZXcgSik7bGV0IHQ9ZHQuY29tcHV0ZU1vb25GaXhlZFRvSWNyZk1hdHJpeChuLGUpO2lmKF8odCkpcmV0dXJuIEoudHJhbnNwb3NlKHQsZSl9O2hOPW5ldyBQbCgwLDAsMCksbU49bmV3IEFmKDAsMCwwLDAsMCwwKSxVYj1uZXcgSixMYj1uZXcgSjtkdC5jb21wdXRlRml4ZWRUb0ljcmZNYXRyaXg9ZnVuY3Rpb24obixlKXtfKGUpfHwoZT1uZXcgSik7bGV0IHQ9ZHQuZWFydGhPcmllbnRhdGlvblBhcmFtZXRlcnMuY29tcHV0ZShuLG1OKTtpZighXyh0KSlyZXR1cm47bGV0IG89bi5kYXlOdW1iZXIsYT1uLnNlY29uZHNPZkRheSt6YixyPWR0LmlhdTIwMDZYeXNEYXRhLmNvbXB1dGVYeXNSYWRpYW5zKG8sYSxoTik7aWYoIV8ocikpcmV0dXJuO2xldCBpPXIueCt0LnhQb2xlT2Zmc2V0LGY9ci55K3QueVBvbGVPZmZzZXQsZD0xLygxK01hdGguc3FydCgxLWkqaS1mKmYpKSxjPVViO2NbMF09MS1kKmkqaSxjWzNdPS1kKmkqZixjWzZdPWksY1sxXT0tZCppKmYsY1s0XT0xLWQqZipmLGNbN109ZixjWzJdPS1pLGNbNV09LWYsY1s4XT0xLWQqKGkqaStmKmYpO2xldCB1PUouZnJvbVJvdGF0aW9uWigtci5zLExiKSxsPUoubXVsdGlwbHkoYyx1LFViKSxoPW4uZGF5TnVtYmVyLG09bi5zZWNvbmRzT2ZEYXktS24uY29tcHV0ZVRhaU1pbnVzVXRjKG4pK3QudXQxTWludXNVdGMsYj1oLTI0NTE1NDUscD1tL2xuLlNFQ09ORFNfUEVSX0RBWSx5PS43NzkwNTcyNzMyNjQrcCsuMDAyNzM3ODExOTExMzU0NDgqKGIrcCk7eT15JTEqay5UV09fUEk7bGV0IEU9Si5mcm9tUm90YXRpb25aKHksTGIpLGc9Si5tdWx0aXBseShsLEUsVWIpLEE9TWF0aC5jb3ModC54UG9sZVdhbmRlciksVD1NYXRoLmNvcyh0LnlQb2xlV2FuZGVyKSxSPU1hdGguc2luKHQueFBvbGVXYW5kZXIpLFM9TWF0aC5zaW4odC55UG9sZVdhbmRlciksTT1vLXNOK2EvbG4uU0VDT05EU19QRVJfREFZO00vPTM2NTI1O2xldCBJPS00N2UtNipNKmsuUkFESUFOU19QRVJfREVHUkVFLzM2MDAsTj1NYXRoLmNvcyhJKSxQPU1hdGguc2luKEkpLEY9TGI7cmV0dXJuIEZbMF09QSpOLEZbMV09QSpQLEZbMl09UixGWzNdPS1UKlArUypSKk4sRls0XT1UKk4rUypSKlAsRls1XT0tUypBLEZbNl09LVMqUC1UKlIqTixGWzddPVMqTi1UKlIqUCxGWzhdPVQqQSxKLm11bHRpcGx5KGcsRixlKX07Yk49bmV3IHJ0O2R0LnBvaW50VG9XaW5kb3dDb29yZGluYXRlcz1mdW5jdGlvbihuLGUsdCxvKXtyZXR1cm4gbz1kdC5wb2ludFRvR0xXaW5kb3dDb29yZGluYXRlcyhuLGUsdCxvKSxvLnk9MiplWzVdLW8ueSxvfTtkdC5wb2ludFRvR0xXaW5kb3dDb29yZGluYXRlcz1mdW5jdGlvbihuLGUsdCxvKXtfKG8pfHwobz1uZXcgWSk7bGV0IGE9Yk47cmV0dXJuICQubXVsdGlwbHlCeVZlY3RvcihuLHJ0LmZyb21FbGVtZW50cyh0LngsdC55LHQueiwxLGEpLGEpLHJ0Lm11bHRpcGx5QnlTY2FsYXIoYSwxL2EudyxhKSwkLm11bHRpcGx5QnlWZWN0b3IoZSxhLGEpLFkuZnJvbUNhcnRlc2lhbjQoYSxvKX07cE49bmV3IHMsZ049bmV3IHMsX049bmV3IHM7ZHQucm90YXRpb25NYXRyaXhGcm9tUG9zaXRpb25WZWxvY2l0eT1mdW5jdGlvbihuLGUsdCxvKXtsZXQgYT0odD8/Sy5kZWZhdWx0KS5nZW9kZXRpY1N1cmZhY2VOb3JtYWwobixwTikscj1zLmNyb3NzKGUsYSxnTik7cy5lcXVhbHNFcHNpbG9uKHIscy5aRVJPLGsuRVBTSUxPTjYpJiYocj1zLmNsb25lKHMuVU5JVF9YLHIpKTtsZXQgaT1zLmNyb3NzKHIsZSxfTik7cmV0dXJuIHMubm9ybWFsaXplKGksaSkscy5jcm9zcyhlLGkscikscy5uZWdhdGUocixyKSxzLm5vcm1hbGl6ZShyLHIpLF8obyl8fChvPW5ldyBKKSxvWzBdPWUueCxvWzFdPWUueSxvWzJdPWUueixvWzNdPXIueCxvWzRdPXIueSxvWzVdPXIueixvWzZdPWkueCxvWzddPWkueSxvWzhdPWkueixvfTtkdC5TV0laWkxFXzNEX1RPXzJEX01BVFJJWD1PYmplY3QuZnJlZXplKG5ldyAkKDAsMCwxLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwwLDEpKTtfdz1uZXcgcmUsR2I9bmV3IHMseU49bmV3IHMsQU49bmV3IEosVmI9bmV3ICQseXc9bmV3ICQ7ZHQuYmFzaXNUbzJEPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz0kLmdldFRyYW5zbGF0aW9uKGUseU4pLGE9bi5lbGxpcHNvaWQscjtpZihzLmVxdWFscyhvLHMuWkVSTykpcj1zLmNsb25lKHMuWkVSTyxHYik7ZWxzZXtsZXQgdT1hLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG8sX3cpO3I9bi5wcm9qZWN0KHUsR2IpLHMuZnJvbUVsZW1lbnRzKHIueixyLngsci55LHIpfWxldCBpPWR0LmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKG8sYSxWYiksZj0kLmludmVyc2VUcmFuc2Zvcm1hdGlvbihpLHl3KSxkPSQuZ2V0TWF0cml4MyhlLEFOKSxjPSQubXVsdGlwbHlCeU1hdHJpeDMoZixkLHQpO3JldHVybiAkLm11bHRpcGx5KGR0LlNXSVpaTEVfM0RfVE9fMkRfTUFUUklYLGMsdCksJC5zZXRUcmFuc2xhdGlvbih0LHIsdCksdH07ZHQuZWxsaXBzb2lkVG8yRE1vZGVsTWF0cml4PWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1uLmVsbGlwc29pZCxhPWR0LmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKGUsbyxWYikscj0kLmludmVyc2VUcmFuc2Zvcm1hdGlvbihhLHl3KSxpPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZSxfdyksZj1uLnByb2plY3QoaSxHYik7cy5mcm9tRWxlbWVudHMoZi56LGYueCxmLnksZik7bGV0IGQ9JC5mcm9tVHJhbnNsYXRpb24oZixWYik7cmV0dXJuICQubXVsdGlwbHkoZHQuU1dJWlpMRV8zRF9UT18yRF9NQVRSSVgscix0KSwkLm11bHRpcGx5KGQsdCx0KSx0fTtvbz1kdH0pO3ZhciBpcyx3TixUTixFTixSTix4TixIYixPTix4ZSxobj1YKCgpPT57TWUoKTtndCgpO3NlKCk7VmUoKTtVZSgpO3JyKCk7dW4oKTtpcz1jbGFzcyBue2NvbnN0cnVjdG9yKGUsdCxvLGEpe3RoaXMud2VzdD1lPz8wLHRoaXMuc291dGg9dD8/MCx0aGlzLmVhc3Q9bz8/MCx0aGlzLm5vcnRoPWE/PzB9Z2V0IHdpZHRoKCl7cmV0dXJuIG4uY29tcHV0ZVdpZHRoKHRoaXMpfWdldCBoZWlnaHQoKXtyZXR1cm4gbi5jb21wdXRlSGVpZ2h0KHRoaXMpfXN0YXRpYyBwYWNrKGUsdCxvKXtyZXR1cm4gbz1vPz8wLHRbbysrXT1lLndlc3QsdFtvKytdPWUuc291dGgsdFtvKytdPWUuZWFzdCx0W29dPWUubm9ydGgsdH1zdGF0aWMgdW5wYWNrKGUsdCxvKXtyZXR1cm4gdD10Pz8wLF8obyl8fChvPW5ldyBuKSxvLndlc3Q9ZVt0KytdLG8uc291dGg9ZVt0KytdLG8uZWFzdD1lW3QrK10sby5ub3J0aD1lW3RdLG99c3RhdGljIGNvbXB1dGVXaWR0aChlKXtsZXQgdD1lLmVhc3Qsbz1lLndlc3Q7cmV0dXJuIHQ8byYmKHQrPWsuVFdPX1BJKSx0LW99c3RhdGljIGNvbXB1dGVIZWlnaHQoZSl7cmV0dXJuIGUubm9ydGgtZS5zb3V0aH1zdGF0aWMgZnJvbURlZ3JlZXMoZSx0LG8sYSxyKXtyZXR1cm4gZT1rLnRvUmFkaWFucyhlPz8wKSx0PWsudG9SYWRpYW5zKHQ/PzApLG89ay50b1JhZGlhbnMobz8/MCksYT1rLnRvUmFkaWFucyhhPz8wKSxfKHIpPyhyLndlc3Q9ZSxyLnNvdXRoPXQsci5lYXN0PW8sci5ub3J0aD1hLHIpOm5ldyBuKGUsdCxvLGEpfXN0YXRpYyBmcm9tUmFkaWFucyhlLHQsbyxhLHIpe3JldHVybiBfKHIpPyhyLndlc3Q9ZT8/MCxyLnNvdXRoPXQ/PzAsci5lYXN0PW8/PzAsci5ub3J0aD1hPz8wLHIpOm5ldyBuKGUsdCxvLGEpfXN0YXRpYyBmcm9tQ2FydG9ncmFwaGljQXJyYXkoZSx0KXtsZXQgbz1OdW1iZXIuTUFYX1ZBTFVFLGE9LU51bWJlci5NQVhfVkFMVUUscj1OdW1iZXIuTUFYX1ZBTFVFLGk9LU51bWJlci5NQVhfVkFMVUUsZj1OdW1iZXIuTUFYX1ZBTFVFLGQ9LU51bWJlci5NQVhfVkFMVUU7Zm9yKGxldCBjPTAsdT1lLmxlbmd0aDtjPHU7YysrKXtsZXQgbD1lW2NdO289TWF0aC5taW4obyxsLmxvbmdpdHVkZSksYT1NYXRoLm1heChhLGwubG9uZ2l0dWRlKSxmPU1hdGgubWluKGYsbC5sYXRpdHVkZSksZD1NYXRoLm1heChkLGwubGF0aXR1ZGUpO2xldCBoPWwubG9uZ2l0dWRlPj0wP2wubG9uZ2l0dWRlOmwubG9uZ2l0dWRlK2suVFdPX1BJO3I9TWF0aC5taW4ocixoKSxpPU1hdGgubWF4KGksaCl9cmV0dXJuIGEtbz5pLXImJihvPXIsYT1pLGE+ay5QSSYmKGE9YS1rLlRXT19QSSksbz5rLlBJJiYobz1vLWsuVFdPX1BJKSksXyh0KT8odC53ZXN0PW8sdC5zb3V0aD1mLHQuZWFzdD1hLHQubm9ydGg9ZCx0KTpuZXcgbihvLGYsYSxkKX1zdGF0aWMgZnJvbUNhcnRlc2lhbkFycmF5KGUsdCxvKXt0PXQ/P0suZGVmYXVsdDtsZXQgYT1OdW1iZXIuTUFYX1ZBTFVFLHI9LU51bWJlci5NQVhfVkFMVUUsaT1OdW1iZXIuTUFYX1ZBTFVFLGY9LU51bWJlci5NQVhfVkFMVUUsZD1OdW1iZXIuTUFYX1ZBTFVFLGM9LU51bWJlci5NQVhfVkFMVUU7Zm9yKGxldCB1PTAsbD1lLmxlbmd0aDt1PGw7dSsrKXtsZXQgaD10LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGVbdV0pO2E9TWF0aC5taW4oYSxoLmxvbmdpdHVkZSkscj1NYXRoLm1heChyLGgubG9uZ2l0dWRlKSxkPU1hdGgubWluKGQsaC5sYXRpdHVkZSksYz1NYXRoLm1heChjLGgubGF0aXR1ZGUpO2xldCBtPWgubG9uZ2l0dWRlPj0wP2gubG9uZ2l0dWRlOmgubG9uZ2l0dWRlK2suVFdPX1BJO2k9TWF0aC5taW4oaSxtKSxmPU1hdGgubWF4KGYsbSl9cmV0dXJuIHItYT5mLWkmJihhPWkscj1mLHI+ay5QSSYmKHI9ci1rLlRXT19QSSksYT5rLlBJJiYoYT1hLWsuVFdPX1BJKSksXyhvKT8oby53ZXN0PWEsby5zb3V0aD1kLG8uZWFzdD1yLG8ubm9ydGg9YyxvKTpuZXcgbihhLGQscixjKX1zdGF0aWMgZnJvbUJvdW5kaW5nU3BoZXJlKGUsdCxvKXtsZXQgYT1lLmNlbnRlcixyPWUucmFkaXVzO2lmKF8odCl8fCh0PUsuZGVmYXVsdCksXyhvKXx8KG89bmV3IG4pLHMuZXF1YWxzKGEscy5aRVJPKSlyZXR1cm4gbi5jbG9uZShuLk1BWF9WQUxVRSxvKSxvO2xldCBpPW9vLmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKGEsdCx3TiksZj0kLm11bHRpcGx5QnlQb2ludEFzVmVjdG9yKGkscy5VTklUX1gsVE4pO3Mubm9ybWFsaXplKGYsZik7bGV0IGQ9JC5tdWx0aXBseUJ5UG9pbnRBc1ZlY3RvcihpLHMuVU5JVF9ZLEVOKTtzLm5vcm1hbGl6ZShkLGQpLHMubXVsdGlwbHlCeVNjYWxhcihkLHIsZCkscy5tdWx0aXBseUJ5U2NhbGFyKGYscixmKTtsZXQgYz1zLm5lZ2F0ZShkLHhOKSx1PXMubmVnYXRlKGYsUk4pLGw9SGIsaD1sWzBdO3JldHVybiBzLmFkZChhLGQsaCksaD1sWzFdLHMuYWRkKGEsdSxoKSxoPWxbMl0scy5hZGQoYSxjLGgpLGg9bFszXSxzLmFkZChhLGYsaCksbFs0XT1hLG4uZnJvbUNhcnRlc2lhbkFycmF5KGwsdCxvKX1zdGF0aWMgY2xvbmUoZSx0KXtpZihfKGUpKXJldHVybiBfKHQpPyh0Lndlc3Q9ZS53ZXN0LHQuc291dGg9ZS5zb3V0aCx0LmVhc3Q9ZS5lYXN0LHQubm9ydGg9ZS5ub3J0aCx0KTpuZXcgbihlLndlc3QsZS5zb3V0aCxlLmVhc3QsZS5ub3J0aCl9c3RhdGljIGVxdWFsc0Vwc2lsb24oZSx0LG8pe3JldHVybiBvPW8/PzAsZT09PXR8fF8oZSkmJl8odCkmJk1hdGguYWJzKGUud2VzdC10Lndlc3QpPD1vJiZNYXRoLmFicyhlLnNvdXRoLXQuc291dGgpPD1vJiZNYXRoLmFicyhlLmVhc3QtdC5lYXN0KTw9byYmTWF0aC5hYnMoZS5ub3J0aC10Lm5vcnRoKTw9b31jbG9uZShlKXtyZXR1cm4gbi5jbG9uZSh0aGlzLGUpfWVxdWFscyhlKXtyZXR1cm4gbi5lcXVhbHModGhpcyxlKX1zdGF0aWMgZXF1YWxzKGUsdCl7cmV0dXJuIGU9PT10fHxfKGUpJiZfKHQpJiZlLndlc3Q9PT10Lndlc3QmJmUuc291dGg9PT10LnNvdXRoJiZlLmVhc3Q9PT10LmVhc3QmJmUubm9ydGg9PT10Lm5vcnRofWVxdWFsc0Vwc2lsb24oZSx0KXtyZXR1cm4gbi5lcXVhbHNFcHNpbG9uKHRoaXMsZSx0KX1zdGF0aWMgX3ZhbGlkYXRlKGUpe31zdGF0aWMgc291dGh3ZXN0KGUsdCl7cmV0dXJuIF8odCk/KHQubG9uZ2l0dWRlPWUud2VzdCx0LmxhdGl0dWRlPWUuc291dGgsdC5oZWlnaHQ9MCx0KTpuZXcgcmUoZS53ZXN0LGUuc291dGgpfXN0YXRpYyBub3J0aHdlc3QoZSx0KXtyZXR1cm4gXyh0KT8odC5sb25naXR1ZGU9ZS53ZXN0LHQubGF0aXR1ZGU9ZS5ub3J0aCx0LmhlaWdodD0wLHQpOm5ldyByZShlLndlc3QsZS5ub3J0aCl9c3RhdGljIG5vcnRoZWFzdChlLHQpe3JldHVybiBfKHQpPyh0LmxvbmdpdHVkZT1lLmVhc3QsdC5sYXRpdHVkZT1lLm5vcnRoLHQuaGVpZ2h0PTAsdCk6bmV3IHJlKGUuZWFzdCxlLm5vcnRoKX1zdGF0aWMgc291dGhlYXN0KGUsdCl7cmV0dXJuIF8odCk/KHQubG9uZ2l0dWRlPWUuZWFzdCx0LmxhdGl0dWRlPWUuc291dGgsdC5oZWlnaHQ9MCx0KTpuZXcgcmUoZS5lYXN0LGUuc291dGgpfXN0YXRpYyBjZW50ZXIoZSx0KXtsZXQgbz1lLmVhc3QsYT1lLndlc3Q7bzxhJiYobys9ay5UV09fUEkpO2xldCByPWsubmVnYXRpdmVQaVRvUGkoKGErbykqLjUpLGk9KGUuc291dGgrZS5ub3J0aCkqLjU7cmV0dXJuIF8odCk/KHQubG9uZ2l0dWRlPXIsdC5sYXRpdHVkZT1pLHQuaGVpZ2h0PTAsdCk6bmV3IHJlKHIsaSl9c3RhdGljIGludGVyc2VjdGlvbihlLHQsbyl7bGV0IGE9ZS5lYXN0LHI9ZS53ZXN0LGk9dC5lYXN0LGY9dC53ZXN0O2E8ciYmaT4wP2ErPWsuVFdPX1BJOmk8ZiYmYT4wJiYoaSs9ay5UV09fUEkpLGE8ciYmZjwwP2YrPWsuVFdPX1BJOmk8ZiYmcjwwJiYocis9ay5UV09fUEkpO2xldCBkPWsubmVnYXRpdmVQaVRvUGkoTWF0aC5tYXgocixmKSksYz1rLm5lZ2F0aXZlUGlUb1BpKE1hdGgubWluKGEsaSkpO2lmKChlLndlc3Q8ZS5lYXN0fHx0Lndlc3Q8dC5lYXN0KSYmYzw9ZClyZXR1cm47bGV0IHU9TWF0aC5tYXgoZS5zb3V0aCx0LnNvdXRoKSxsPU1hdGgubWluKGUubm9ydGgsdC5ub3J0aCk7aWYoISh1Pj1sKSlyZXR1cm4gXyhvKT8oby53ZXN0PWQsby5zb3V0aD11LG8uZWFzdD1jLG8ubm9ydGg9bCxvKTpuZXcgbihkLHUsYyxsKX1zdGF0aWMgc2ltcGxlSW50ZXJzZWN0aW9uKGUsdCxvKXtsZXQgYT1NYXRoLm1heChlLndlc3QsdC53ZXN0KSxyPU1hdGgubWF4KGUuc291dGgsdC5zb3V0aCksaT1NYXRoLm1pbihlLmVhc3QsdC5lYXN0KSxmPU1hdGgubWluKGUubm9ydGgsdC5ub3J0aCk7aWYoIShyPj1mfHxhPj1pKSlyZXR1cm4gXyhvKT8oby53ZXN0PWEsby5zb3V0aD1yLG8uZWFzdD1pLG8ubm9ydGg9ZixvKTpuZXcgbihhLHIsaSxmKX1zdGF0aWMgdW5pb24oZSx0LG8pe18obyl8fChvPW5ldyBuKTtsZXQgYT1lLmVhc3Qscj1lLndlc3QsaT10LmVhc3QsZj10Lndlc3Q7YTxyJiZpPjA/YSs9ay5UV09fUEk6aTxmJiZhPjAmJihpKz1rLlRXT19QSSksYTxyJiZmPDA/Zis9ay5UV09fUEk6aTxmJiZyPDAmJihyKz1rLlRXT19QSSk7bGV0IGQ9ay5uZWdhdGl2ZVBpVG9QaShNYXRoLm1pbihyLGYpKSxjPWsubmVnYXRpdmVQaVRvUGkoTWF0aC5tYXgoYSxpKSk7cmV0dXJuIG8ud2VzdD1kLG8uc291dGg9TWF0aC5taW4oZS5zb3V0aCx0LnNvdXRoKSxvLmVhc3Q9YyxvLm5vcnRoPU1hdGgubWF4KGUubm9ydGgsdC5ub3J0aCksb31zdGF0aWMgZXhwYW5kKGUsdCxvKXtyZXR1cm4gXyhvKXx8KG89bmV3IG4pLG8ud2VzdD1NYXRoLm1pbihlLndlc3QsdC5sb25naXR1ZGUpLG8uc291dGg9TWF0aC5taW4oZS5zb3V0aCx0LmxhdGl0dWRlKSxvLmVhc3Q9TWF0aC5tYXgoZS5lYXN0LHQubG9uZ2l0dWRlKSxvLm5vcnRoPU1hdGgubWF4KGUubm9ydGgsdC5sYXRpdHVkZSksb31zdGF0aWMgY29udGFpbnMoZSx0KXtsZXQgbz10LmxvbmdpdHVkZSxhPXQubGF0aXR1ZGUscj1lLndlc3QsaT1lLmVhc3Q7cmV0dXJuIGk8ciYmKGkrPWsuVFdPX1BJLG88MCYmKG8rPWsuVFdPX1BJKSksKG8+cnx8ay5lcXVhbHNFcHNpbG9uKG8scixrLkVQU0lMT04xNCkpJiYobzxpfHxrLmVxdWFsc0Vwc2lsb24obyxpLGsuRVBTSUxPTjE0KSkmJmE+PWUuc291dGgmJmE8PWUubm9ydGh9c3RhdGljIHN1YnNhbXBsZShlLHQsbyxhKXt0PXQ/P0suZGVmYXVsdCxvPW8/PzAsXyhhKXx8KGE9W10pO2xldCByPTAsaT1lLm5vcnRoLGY9ZS5zb3V0aCxkPWUuZWFzdCxjPWUud2VzdCx1PU9OO3UuaGVpZ2h0PW8sdS5sb25naXR1ZGU9Yyx1LmxhdGl0dWRlPWksYVtyXT10LmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHUsYVtyXSkscisrLHUubG9uZ2l0dWRlPWQsYVtyXT10LmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHUsYVtyXSkscisrLHUubGF0aXR1ZGU9ZixhW3JdPXQuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4odSxhW3JdKSxyKyssdS5sb25naXR1ZGU9YyxhW3JdPXQuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4odSxhW3JdKSxyKyssaTwwP3UubGF0aXR1ZGU9aTpmPjA/dS5sYXRpdHVkZT1mOnUubGF0aXR1ZGU9MDtmb3IobGV0IGw9MTtsPDg7KytsKXUubG9uZ2l0dWRlPS1NYXRoLlBJK2wqay5QSV9PVkVSX1RXTyxuLmNvbnRhaW5zKGUsdSkmJihhW3JdPXQuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4odSxhW3JdKSxyKyspO3JldHVybiB1LmxhdGl0dWRlPT09MCYmKHUubG9uZ2l0dWRlPWMsYVtyXT10LmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHUsYVtyXSkscisrLHUubG9uZ2l0dWRlPWQsYVtyXT10LmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHUsYVtyXSkscisrKSxhLmxlbmd0aD1yLGF9c3RhdGljIHN1YnNlY3Rpb24oZSx0LG8sYSxyLGkpe2lmKF8oaSl8fChpPW5ldyBuKSxlLndlc3Q8PWUuZWFzdCl7bGV0IGQ9ZS5lYXN0LWUud2VzdDtpLndlc3Q9ZS53ZXN0K3QqZCxpLmVhc3Q9ZS53ZXN0K2EqZH1lbHNle2xldCBkPWsuVFdPX1BJK2UuZWFzdC1lLndlc3Q7aS53ZXN0PWsubmVnYXRpdmVQaVRvUGkoZS53ZXN0K3QqZCksaS5lYXN0PWsubmVnYXRpdmVQaVRvUGkoZS53ZXN0K2EqZCl9bGV0IGY9ZS5ub3J0aC1lLnNvdXRoO3JldHVybiBpLnNvdXRoPWUuc291dGgrbypmLGkubm9ydGg9ZS5zb3V0aCtyKmYsdD09PTEmJihpLndlc3Q9ZS5lYXN0KSxhPT09MSYmKGkuZWFzdD1lLmVhc3QpLG89PT0xJiYoaS5zb3V0aD1lLm5vcnRoKSxyPT09MSYmKGkubm9ydGg9ZS5ub3J0aCksaX19O2lzLnBhY2tlZExlbmd0aD00O3dOPW5ldyAkLFROPW5ldyBzLEVOPW5ldyBzLFJOPW5ldyBzLHhOPW5ldyBzLEhiPW5ldyBBcnJheSg1KTtmb3IobGV0IG49MDtuPEhiLmxlbmd0aDsrK24pSGJbbl09bmV3IHM7T049bmV3IHJlO2lzLk1BWF9WQUxVRT1PYmplY3QuZnJlZXplKG5ldyBpcygtTWF0aC5QSSwtay5QSV9PVkVSX1RXTyxNYXRoLlBJLGsuUElfT1ZFUl9UV08pKTt4ZT1pc30pO3ZhciBZbCxLYixxYixXYixYYixZYixKYixaYixmbyxRYiwkYixlcCx0cCxTTixBdyxDTixNTixucCxvcCxOTixJTixQTixrTix2TixGTixETixCTixqTixVTixMTix3dyx6TixHTixWTixITixLTixFdyxUdyxnZSxFdD1YKCgpPT57TWUoKTtndCgpO3NlKCk7VmUoKTtQcigpO1ppKCk7Z2YoKTtVZSgpO0luKCk7dW4oKTtobigpO1lsPWNsYXNzIG57Y29uc3RydWN0b3IoZSx0KXt0aGlzLmNlbnRlcj1zLmNsb25lKGU/P3MuWkVSTyksdGhpcy5yYWRpdXM9dD8/MH1zdGF0aWMgZnJvbVBvaW50cyhlLHQpe2lmKF8odCl8fCh0PW5ldyBuKSwhXyhlKXx8ZS5sZW5ndGg9PT0wKXJldHVybiB0LmNlbnRlcj1zLmNsb25lKHMuWkVSTyx0LmNlbnRlciksdC5yYWRpdXM9MCx0O2xldCBvPXMuY2xvbmUoZVswXSxaYiksYT1zLmNsb25lKG8sS2IpLHI9cy5jbG9uZShvLHFiKSxpPXMuY2xvbmUobyxXYiksZj1zLmNsb25lKG8sWGIpLGQ9cy5jbG9uZShvLFliKSxjPXMuY2xvbmUobyxKYiksdT1lLmxlbmd0aCxsO2ZvcihsPTE7bDx1O2wrKyl7cy5jbG9uZShlW2xdLG8pO2xldCBOPW8ueCxQPW8ueSxGPW8uejtOPGEueCYmcy5jbG9uZShvLGEpLE4+Zi54JiZzLmNsb25lKG8sZiksUDxyLnkmJnMuY2xvbmUobyxyKSxQPmQueSYmcy5jbG9uZShvLGQpLEY8aS56JiZzLmNsb25lKG8saSksRj5jLnomJnMuY2xvbmUobyxjKX1sZXQgaD1zLm1hZ25pdHVkZVNxdWFyZWQocy5zdWJ0cmFjdChmLGEsZm8pKSxtPXMubWFnbml0dWRlU3F1YXJlZChzLnN1YnRyYWN0KGQscixmbykpLGI9cy5tYWduaXR1ZGVTcXVhcmVkKHMuc3VidHJhY3QoYyxpLGZvKSkscD1hLHk9ZixFPWg7bT5FJiYoRT1tLHA9cix5PWQpLGI+RSYmKEU9YixwPWkseT1jKTtsZXQgZz1RYjtnLng9KHAueCt5LngpKi41LGcueT0ocC55K3kueSkqLjUsZy56PShwLnoreS56KSouNTtsZXQgQT1zLm1hZ25pdHVkZVNxdWFyZWQocy5zdWJ0cmFjdCh5LGcsZm8pKSxUPU1hdGguc3FydChBKSxSPSRiO1IueD1hLngsUi55PXIueSxSLno9aS56O2xldCBTPWVwO1MueD1mLngsUy55PWQueSxTLno9Yy56O2xldCBNPXMubWlkcG9pbnQoUixTLHRwKSxJPTA7Zm9yKGw9MDtsPHU7bCsrKXtzLmNsb25lKGVbbF0sbyk7bGV0IE49cy5tYWduaXR1ZGUocy5zdWJ0cmFjdChvLE0sZm8pKTtOPkkmJihJPU4pO2xldCBQPXMubWFnbml0dWRlU3F1YXJlZChzLnN1YnRyYWN0KG8sZyxmbykpO2lmKFA+QSl7bGV0IEY9TWF0aC5zcXJ0KFApO1Q9KFQrRikqLjUsQT1UKlQ7bGV0IHc9Ri1UO2cueD0oVCpnLngrdypvLngpL0YsZy55PShUKmcueSt3Km8ueSkvRixnLno9KFQqZy56K3cqby56KS9GfX1yZXR1cm4gVDxJPyhzLmNsb25lKGcsdC5jZW50ZXIpLHQucmFkaXVzPVQpOihzLmNsb25lKE0sdC5jZW50ZXIpLHQucmFkaXVzPUkpLHR9c3RhdGljIGZyb21SZWN0YW5nbGUyRChlLHQsbyl7cmV0dXJuIG4uZnJvbVJlY3RhbmdsZVdpdGhIZWlnaHRzMkQoZSx0LDAsMCxvKX1zdGF0aWMgZnJvbVJlY3RhbmdsZVdpdGhIZWlnaHRzMkQoZSx0LG8sYSxyKXtpZihfKHIpfHwocj1uZXcgbiksIV8oZSkpcmV0dXJuIHIuY2VudGVyPXMuY2xvbmUocy5aRVJPLHIuY2VudGVyKSxyLnJhZGl1cz0wLHI7QXcuX2VsbGlwc29pZD1LLmRlZmF1bHQsdD10Pz9Bdyx4ZS5zb3V0aHdlc3QoZSxucCksbnAuaGVpZ2h0PW8seGUubm9ydGhlYXN0KGUsb3ApLG9wLmhlaWdodD1hO2xldCBpPXQucHJvamVjdChucCxDTiksZj10LnByb2plY3Qob3AsTU4pLGQ9Zi54LWkueCxjPWYueS1pLnksdT1mLnotaS56O3IucmFkaXVzPU1hdGguc3FydChkKmQrYypjK3UqdSkqLjU7bGV0IGw9ci5jZW50ZXI7cmV0dXJuIGwueD1pLngrZCouNSxsLnk9aS55K2MqLjUsbC56PWkueit1Ki41LHJ9c3RhdGljIGZyb21SZWN0YW5nbGUzRChlLHQsbyxhKXtpZih0PXQ/P0suZGVmYXVsdCxvPW8/PzAsXyhhKXx8KGE9bmV3IG4pLCFfKGUpKXJldHVybiBhLmNlbnRlcj1zLmNsb25lKHMuWkVSTyxhLmNlbnRlciksYS5yYWRpdXM9MCxhO2xldCByPXhlLnN1YnNhbXBsZShlLHQsbyxOTik7cmV0dXJuIG4uZnJvbVBvaW50cyhyLGEpfXN0YXRpYyBmcm9tVmVydGljZXMoZSx0LG8sYSl7aWYoXyhhKXx8KGE9bmV3IG4pLCFfKGUpfHxlLmxlbmd0aD09PTApcmV0dXJuIGEuY2VudGVyPXMuY2xvbmUocy5aRVJPLGEuY2VudGVyKSxhLnJhZGl1cz0wLGE7dD10Pz9zLlpFUk8sbz1vPz8zO2xldCByPVpiO3IueD1lWzBdK3QueCxyLnk9ZVsxXSt0Lnksci56PWVbMl0rdC56O2xldCBpPXMuY2xvbmUocixLYiksZj1zLmNsb25lKHIscWIpLGQ9cy5jbG9uZShyLFdiKSxjPXMuY2xvbmUocixYYiksdT1zLmNsb25lKHIsWWIpLGw9cy5jbG9uZShyLEpiKSxoPWUubGVuZ3RoLG07Zm9yKG09MDttPGg7bSs9byl7bGV0IEY9ZVttXSt0Lngsdz1lW20rMV0rdC55LHg9ZVttKzJdK3QuejtyLng9RixyLnk9dyxyLno9eCxGPGkueCYmcy5jbG9uZShyLGkpLEY+Yy54JiZzLmNsb25lKHIsYyksdzxmLnkmJnMuY2xvbmUocixmKSx3PnUueSYmcy5jbG9uZShyLHUpLHg8ZC56JiZzLmNsb25lKHIsZCkseD5sLnomJnMuY2xvbmUocixsKX1sZXQgYj1zLm1hZ25pdHVkZVNxdWFyZWQocy5zdWJ0cmFjdChjLGksZm8pKSxwPXMubWFnbml0dWRlU3F1YXJlZChzLnN1YnRyYWN0KHUsZixmbykpLHk9cy5tYWduaXR1ZGVTcXVhcmVkKHMuc3VidHJhY3QobCxkLGZvKSksRT1pLGc9YyxBPWI7cD5BJiYoQT1wLEU9ZixnPXUpLHk+QSYmKEE9eSxFPWQsZz1sKTtsZXQgVD1RYjtULng9KEUueCtnLngpKi41LFQueT0oRS55K2cueSkqLjUsVC56PShFLnorZy56KSouNTtsZXQgUj1zLm1hZ25pdHVkZVNxdWFyZWQocy5zdWJ0cmFjdChnLFQsZm8pKSxTPU1hdGguc3FydChSKSxNPSRiO00ueD1pLngsTS55PWYueSxNLno9ZC56O2xldCBJPWVwO0kueD1jLngsSS55PXUueSxJLno9bC56O2xldCBOPXMubWlkcG9pbnQoTSxJLHRwKSxQPTA7Zm9yKG09MDttPGg7bSs9byl7ci54PWVbbV0rdC54LHIueT1lW20rMV0rdC55LHIuej1lW20rMl0rdC56O2xldCBGPXMubWFnbml0dWRlKHMuc3VidHJhY3QocixOLGZvKSk7Rj5QJiYoUD1GKTtsZXQgdz1zLm1hZ25pdHVkZVNxdWFyZWQocy5zdWJ0cmFjdChyLFQsZm8pKTtpZih3PlIpe2xldCB4PU1hdGguc3FydCh3KTtTPShTK3gpKi41LFI9UypTO2xldCBDPXgtUztULng9KFMqVC54K0Mqci54KS94LFQueT0oUypULnkrQypyLnkpL3gsVC56PShTKlQueitDKnIueikveH19cmV0dXJuIFM8UD8ocy5jbG9uZShULGEuY2VudGVyKSxhLnJhZGl1cz1TKToocy5jbG9uZShOLGEuY2VudGVyKSxhLnJhZGl1cz1QKSxhfXN0YXRpYyBmcm9tRW5jb2RlZENhcnRlc2lhblZlcnRpY2VzKGUsdCxvKXtpZihfKG8pfHwobz1uZXcgbiksIV8oZSl8fCFfKHQpfHxlLmxlbmd0aCE9PXQubGVuZ3RofHxlLmxlbmd0aD09PTApcmV0dXJuIG8uY2VudGVyPXMuY2xvbmUocy5aRVJPLG8uY2VudGVyKSxvLnJhZGl1cz0wLG87bGV0IGE9WmI7YS54PWVbMF0rdFswXSxhLnk9ZVsxXSt0WzFdLGEuej1lWzJdK3RbMl07bGV0IHI9cy5jbG9uZShhLEtiKSxpPXMuY2xvbmUoYSxxYiksZj1zLmNsb25lKGEsV2IpLGQ9cy5jbG9uZShhLFhiKSxjPXMuY2xvbmUoYSxZYiksdT1zLmNsb25lKGEsSmIpLGw9ZS5sZW5ndGgsaDtmb3IoaD0wO2g8bDtoKz0zKXtsZXQgUD1lW2hdK3RbaF0sRj1lW2grMV0rdFtoKzFdLHc9ZVtoKzJdK3RbaCsyXTthLng9UCxhLnk9RixhLno9dyxQPHIueCYmcy5jbG9uZShhLHIpLFA+ZC54JiZzLmNsb25lKGEsZCksRjxpLnkmJnMuY2xvbmUoYSxpKSxGPmMueSYmcy5jbG9uZShhLGMpLHc8Zi56JiZzLmNsb25lKGEsZiksdz51LnomJnMuY2xvbmUoYSx1KX1sZXQgbT1zLm1hZ25pdHVkZVNxdWFyZWQocy5zdWJ0cmFjdChkLHIsZm8pKSxiPXMubWFnbml0dWRlU3F1YXJlZChzLnN1YnRyYWN0KGMsaSxmbykpLHA9cy5tYWduaXR1ZGVTcXVhcmVkKHMuc3VidHJhY3QodSxmLGZvKSkseT1yLEU9ZCxnPW07Yj5nJiYoZz1iLHk9aSxFPWMpLHA+ZyYmKGc9cCx5PWYsRT11KTtsZXQgQT1RYjtBLng9KHkueCtFLngpKi41LEEueT0oeS55K0UueSkqLjUsQS56PSh5LnorRS56KSouNTtsZXQgVD1zLm1hZ25pdHVkZVNxdWFyZWQocy5zdWJ0cmFjdChFLEEsZm8pKSxSPU1hdGguc3FydChUKSxTPSRiO1MueD1yLngsUy55PWkueSxTLno9Zi56O2xldCBNPWVwO00ueD1kLngsTS55PWMueSxNLno9dS56O2xldCBJPXMubWlkcG9pbnQoUyxNLHRwKSxOPTA7Zm9yKGg9MDtoPGw7aCs9Myl7YS54PWVbaF0rdFtoXSxhLnk9ZVtoKzFdK3RbaCsxXSxhLno9ZVtoKzJdK3RbaCsyXTtsZXQgUD1zLm1hZ25pdHVkZShzLnN1YnRyYWN0KGEsSSxmbykpO1A+TiYmKE49UCk7bGV0IEY9cy5tYWduaXR1ZGVTcXVhcmVkKHMuc3VidHJhY3QoYSxBLGZvKSk7aWYoRj5UKXtsZXQgdz1NYXRoLnNxcnQoRik7Uj0oUit3KSouNSxUPVIqUjtsZXQgeD13LVI7QS54PShSKkEueCt4KmEueCkvdyxBLnk9KFIqQS55K3gqYS55KS93LEEuej0oUipBLnoreCphLnopL3d9fXJldHVybiBSPE4/KHMuY2xvbmUoQSxvLmNlbnRlciksby5yYWRpdXM9Uik6KHMuY2xvbmUoSSxvLmNlbnRlciksby5yYWRpdXM9Tiksb31zdGF0aWMgZnJvbUNvcm5lclBvaW50cyhlLHQsbyl7XyhvKXx8KG89bmV3IG4pO2xldCBhPXMubWlkcG9pbnQoZSx0LG8uY2VudGVyKTtyZXR1cm4gby5yYWRpdXM9cy5kaXN0YW5jZShhLHQpLG99c3RhdGljIGZyb21FbGxpcHNvaWQoZSx0KXtyZXR1cm4gXyh0KXx8KHQ9bmV3IG4pLHMuY2xvbmUocy5aRVJPLHQuY2VudGVyKSx0LnJhZGl1cz1lLm1heGltdW1SYWRpdXMsdH1zdGF0aWMgZnJvbUJvdW5kaW5nU3BoZXJlcyhlLHQpe2lmKF8odCl8fCh0PW5ldyBuKSwhXyhlKXx8ZS5sZW5ndGg9PT0wKXJldHVybiB0LmNlbnRlcj1zLmNsb25lKHMuWkVSTyx0LmNlbnRlciksdC5yYWRpdXM9MCx0O2xldCBvPWUubGVuZ3RoO2lmKG89PT0xKXJldHVybiBuLmNsb25lKGVbMF0sdCk7aWYobz09PTIpcmV0dXJuIG4udW5pb24oZVswXSxlWzFdLHQpO2xldCBhPVtdLHI7Zm9yKHI9MDtyPG87cisrKWEucHVzaChlW3JdLmNlbnRlcik7dD1uLmZyb21Qb2ludHMoYSx0KTtsZXQgaT10LmNlbnRlcixmPXQucmFkaXVzO2ZvcihyPTA7cjxvO3IrKyl7bGV0IGQ9ZVtyXTtmPU1hdGgubWF4KGYscy5kaXN0YW5jZShpLGQuY2VudGVyKStkLnJhZGl1cyl9cmV0dXJuIHQucmFkaXVzPWYsdH1zdGF0aWMgZnJvbU9yaWVudGVkQm91bmRpbmdCb3goZSx0KXtfKHQpfHwodD1uZXcgbik7bGV0IG89ZS5oYWxmQXhlcyxhPUouZ2V0Q29sdW1uKG8sMCxJTikscj1KLmdldENvbHVtbihvLDEsUE4pLGk9Si5nZXRDb2x1bW4obywyLGtOKTtyZXR1cm4gcy5hZGQoYSxyLGEpLHMuYWRkKGEsaSxhKSx0LmNlbnRlcj1zLmNsb25lKGUuY2VudGVyLHQuY2VudGVyKSx0LnJhZGl1cz1zLm1hZ25pdHVkZShhKSx0fXN0YXRpYyBmcm9tVHJhbnNmb3JtYXRpb24oZSx0KXtfKHQpfHwodD1uZXcgbik7bGV0IG89JC5nZXRUcmFuc2xhdGlvbihlLHZOKSxhPSQuZ2V0U2NhbGUoZSxGTikscj0uNSpzLm1hZ25pdHVkZShhKTtyZXR1cm4gdC5jZW50ZXI9cy5jbG9uZShvLHQuY2VudGVyKSx0LnJhZGl1cz1yLHR9c3RhdGljIGNsb25lKGUsdCl7aWYoXyhlKSlyZXR1cm4gXyh0KT8odC5jZW50ZXI9cy5jbG9uZShlLmNlbnRlcix0LmNlbnRlciksdC5yYWRpdXM9ZS5yYWRpdXMsdCk6bmV3IG4oZS5jZW50ZXIsZS5yYWRpdXMpfXN0YXRpYyBwYWNrKGUsdCxvKXtvPW8/PzA7bGV0IGE9ZS5jZW50ZXI7cmV0dXJuIHRbbysrXT1hLngsdFtvKytdPWEueSx0W28rK109YS56LHRbb109ZS5yYWRpdXMsdH1zdGF0aWMgdW5wYWNrKGUsdCxvKXt0PXQ/PzAsXyhvKXx8KG89bmV3IG4pO2xldCBhPW8uY2VudGVyO3JldHVybiBhLng9ZVt0KytdLGEueT1lW3QrK10sYS56PWVbdCsrXSxvLnJhZGl1cz1lW3RdLG99c3RhdGljIHVuaW9uKGUsdCxvKXtfKG8pfHwobz1uZXcgbik7bGV0IGE9ZS5jZW50ZXIscj1lLnJhZGl1cyxpPXQuY2VudGVyLGY9dC5yYWRpdXMsZD1zLnN1YnRyYWN0KGksYSxETiksYz1zLm1hZ25pdHVkZShkKTtpZihyPj1jK2YpcmV0dXJuIGUuY2xvbmUobyksbztpZihmPj1jK3IpcmV0dXJuIHQuY2xvbmUobyksbztsZXQgdT0ocitjK2YpKi41LGw9cy5tdWx0aXBseUJ5U2NhbGFyKGQsKC1yK3UpL2MsQk4pO3JldHVybiBzLmFkZChsLGEsbCkscy5jbG9uZShsLG8uY2VudGVyKSxvLnJhZGl1cz11LG99c3RhdGljIGV4cGFuZChlLHQsbyl7bz1uLmNsb25lKGUsbyk7bGV0IGE9cy5tYWduaXR1ZGUocy5zdWJ0cmFjdCh0LG8uY2VudGVyLGpOKSk7cmV0dXJuIGE+by5yYWRpdXMmJihvLnJhZGl1cz1hKSxvfXN0YXRpYyBpbnRlcnNlY3RQbGFuZShlLHQpe2xldCBvPWUuY2VudGVyLGE9ZS5yYWRpdXMscj10Lm5vcm1hbCxpPXMuZG90KHIsbykrdC5kaXN0YW5jZTtyZXR1cm4gaTwtYT9Ubi5PVVRTSURFOmk8YT9Ubi5JTlRFUlNFQ1RJTkc6VG4uSU5TSURFfXN0YXRpYyB0cmFuc2Zvcm0oZSx0LG8pe3JldHVybiBfKG8pfHwobz1uZXcgbiksby5jZW50ZXI9JC5tdWx0aXBseUJ5UG9pbnQodCxlLmNlbnRlcixvLmNlbnRlciksby5yYWRpdXM9JC5nZXRNYXhpbXVtU2NhbGUodCkqZS5yYWRpdXMsb31zdGF0aWMgZGlzdGFuY2VTcXVhcmVkVG8oZSx0KXtsZXQgbz1zLnN1YnRyYWN0KGUuY2VudGVyLHQsVU4pLGE9cy5tYWduaXR1ZGUobyktZS5yYWRpdXM7cmV0dXJuIGE8PTA/MDphKmF9c3RhdGljIHRyYW5zZm9ybVdpdGhvdXRTY2FsZShlLHQsbyl7cmV0dXJuIF8obyl8fChvPW5ldyBuKSxvLmNlbnRlcj0kLm11bHRpcGx5QnlQb2ludCh0LGUuY2VudGVyLG8uY2VudGVyKSxvLnJhZGl1cz1lLnJhZGl1cyxvfXN0YXRpYyBjb21wdXRlUGxhbmVEaXN0YW5jZXMoZSx0LG8sYSl7XyhhKXx8KGE9bmV3IF9vKTtsZXQgcj1zLnN1YnRyYWN0KGUuY2VudGVyLHQsTE4pLGk9cy5kb3QobyxyKTtyZXR1cm4gYS5zdGFydD1pLWUucmFkaXVzLGEuc3RvcD1pK2UucmFkaXVzLGF9c3RhdGljIHByb2plY3RUbzJEKGUsdCxvKXtUdy5fZWxsaXBzb2lkPUsuZGVmYXVsdCx0PXQ/P1R3O2xldCBhPXQuZWxsaXBzb2lkLHI9ZS5jZW50ZXIsaT1lLnJhZGl1cyxmO3MuZXF1YWxzKHIscy5aRVJPKT9mPXMuY2xvbmUocy5VTklUX1gsd3cpOmY9YS5nZW9kZXRpY1N1cmZhY2VOb3JtYWwocix3dyk7bGV0IGQ9cy5jcm9zcyhzLlVOSVRfWixmLHpOKTtzLm5vcm1hbGl6ZShkLGQpO2xldCBjPXMuY3Jvc3MoZixkLEdOKTtzLm5vcm1hbGl6ZShjLGMpLHMubXVsdGlwbHlCeVNjYWxhcihmLGksZikscy5tdWx0aXBseUJ5U2NhbGFyKGMsaSxjKSxzLm11bHRpcGx5QnlTY2FsYXIoZCxpLGQpO2xldCB1PXMubmVnYXRlKGMsSE4pLGw9cy5uZWdhdGUoZCxWTiksaD1FdyxtPWhbMF07cy5hZGQoZixjLG0pLHMuYWRkKG0sZCxtKSxtPWhbMV0scy5hZGQoZixjLG0pLHMuYWRkKG0sbCxtKSxtPWhbMl0scy5hZGQoZix1LG0pLHMuYWRkKG0sbCxtKSxtPWhbM10scy5hZGQoZix1LG0pLHMuYWRkKG0sZCxtKSxzLm5lZ2F0ZShmLGYpLG09aFs0XSxzLmFkZChmLGMsbSkscy5hZGQobSxkLG0pLG09aFs1XSxzLmFkZChmLGMsbSkscy5hZGQobSxsLG0pLG09aFs2XSxzLmFkZChmLHUsbSkscy5hZGQobSxsLG0pLG09aFs3XSxzLmFkZChmLHUsbSkscy5hZGQobSxkLG0pO2xldCBiPWgubGVuZ3RoO2ZvcihsZXQgZz0wO2c8YjsrK2cpe2xldCBBPWhbZ107cy5hZGQocixBLEEpO2xldCBUPWEuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoQSxLTik7dC5wcm9qZWN0KFQsQSl9bz1uLmZyb21Qb2ludHMoaCxvKSxyPW8uY2VudGVyO2xldCBwPXIueCx5PXIueSxFPXIuejtyZXR1cm4gci54PUUsci55PXAsci56PXksb31zdGF0aWMgaXNPY2NsdWRlZChlLHQpe3JldHVybiF0LmlzQm91bmRpbmdTcGhlcmVWaXNpYmxlKGUpfXN0YXRpYyBlcXVhbHMoZSx0KXtyZXR1cm4gZT09PXR8fF8oZSkmJl8odCkmJnMuZXF1YWxzKGUuY2VudGVyLHQuY2VudGVyKSYmZS5yYWRpdXM9PT10LnJhZGl1c31pbnRlcnNlY3RQbGFuZShlKXtyZXR1cm4gbi5pbnRlcnNlY3RQbGFuZSh0aGlzLGUpfWRpc3RhbmNlU3F1YXJlZFRvKGUpe3JldHVybiBuLmRpc3RhbmNlU3F1YXJlZFRvKHRoaXMsZSl9Y29tcHV0ZVBsYW5lRGlzdGFuY2VzKGUsdCxvKXtyZXR1cm4gbi5jb21wdXRlUGxhbmVEaXN0YW5jZXModGhpcyxlLHQsbyl9aXNPY2NsdWRlZChlKXtyZXR1cm4gbi5pc09jY2x1ZGVkKHRoaXMsZSl9ZXF1YWxzKGUpe3JldHVybiBuLmVxdWFscyh0aGlzLGUpfWNsb25lKGUpe3JldHVybiBuLmNsb25lKHRoaXMsZSl9dm9sdW1lKCl7bGV0IGU9dGhpcy5yYWRpdXM7cmV0dXJuIFNOKmUqZSplfX07WWwucGFja2VkTGVuZ3RoPTQ7S2I9bmV3IHMscWI9bmV3IHMsV2I9bmV3IHMsWGI9bmV3IHMsWWI9bmV3IHMsSmI9bmV3IHMsWmI9bmV3IHMsZm89bmV3IHMsUWI9bmV3IHMsJGI9bmV3IHMsZXA9bmV3IHMsdHA9bmV3IHMsU049NC8zKmsuUEksQXc9bmV3IG5vLENOPW5ldyBzLE1OPW5ldyBzLG5wPW5ldyByZSxvcD1uZXcgcmUsTk49W10sSU49bmV3IHMsUE49bmV3IHMsa049bmV3IHMsdk49bmV3IHMsRk49bmV3IHMsRE49bmV3IHMsQk49bmV3IHMsak49bmV3IHMsVU49bmV3IHMsTE49bmV3IHMsd3c9bmV3IHMsek49bmV3IHMsR049bmV3IHMsVk49bmV3IHMsSE49bmV3IHMsS049bmV3IHJlLEV3PW5ldyBBcnJheSg4KTtmb3IobGV0IG49MDtuPDg7KytuKUV3W25dPW5ldyBzO1R3PW5ldyBubyxnZT1ZbH0pO3ZhciBSdyxOZSxvYz1YKCgpPT57Unc9e0RFUFRIX0JVRkZFUl9CSVQ6MjU2LFNURU5DSUxfQlVGRkVSX0JJVDoxMDI0LENPTE9SX0JVRkZFUl9CSVQ6MTYzODQsUE9JTlRTOjAsTElORVM6MSxMSU5FX0xPT1A6MixMSU5FX1NUUklQOjMsVFJJQU5HTEVTOjQsVFJJQU5HTEVfU1RSSVA6NSxUUklBTkdMRV9GQU46NixaRVJPOjAsT05FOjEsU1JDX0NPTE9SOjc2OCxPTkVfTUlOVVNfU1JDX0NPTE9SOjc2OSxTUkNfQUxQSEE6NzcwLE9ORV9NSU5VU19TUkNfQUxQSEE6NzcxLERTVF9BTFBIQTo3NzIsT05FX01JTlVTX0RTVF9BTFBIQTo3NzMsRFNUX0NPTE9SOjc3NCxPTkVfTUlOVVNfRFNUX0NPTE9SOjc3NSxTUkNfQUxQSEFfU0FUVVJBVEU6Nzc2LEZVTkNfQUREOjMyNzc0LEJMRU5EX0VRVUFUSU9OOjMyNzc3LEJMRU5EX0VRVUFUSU9OX1JHQjozMjc3NyxCTEVORF9FUVVBVElPTl9BTFBIQTozNDg3NyxGVU5DX1NVQlRSQUNUOjMyNzc4LEZVTkNfUkVWRVJTRV9TVUJUUkFDVDozMjc3OSxCTEVORF9EU1RfUkdCOjMyOTY4LEJMRU5EX1NSQ19SR0I6MzI5NjksQkxFTkRfRFNUX0FMUEhBOjMyOTcwLEJMRU5EX1NSQ19BTFBIQTozMjk3MSxDT05TVEFOVF9DT0xPUjozMjc2OSxPTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1I6MzI3NzAsQ09OU1RBTlRfQUxQSEE6MzI3NzEsT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBOjMyNzcyLEJMRU5EX0NPTE9SOjMyNzczLEFSUkFZX0JVRkZFUjozNDk2MixFTEVNRU5UX0FSUkFZX0JVRkZFUjozNDk2MyxBUlJBWV9CVUZGRVJfQklORElORzozNDk2NCxFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HOjM0OTY1LFNUUkVBTV9EUkFXOjM1MDQwLFNUQVRJQ19EUkFXOjM1MDQ0LERZTkFNSUNfRFJBVzozNTA0OCxCVUZGRVJfU0laRTozNDY2MCxCVUZGRVJfVVNBR0U6MzQ2NjEsQ1VSUkVOVF9WRVJURVhfQVRUUklCOjM0MzQyLEZST05UOjEwMjgsQkFDSzoxMDI5LEZST05UX0FORF9CQUNLOjEwMzIsQ1VMTF9GQUNFOjI4ODQsQkxFTkQ6MzA0MixESVRIRVI6MzAyNCxTVEVOQ0lMX1RFU1Q6Mjk2MCxERVBUSF9URVNUOjI5MjksU0NJU1NPUl9URVNUOjMwODksUE9MWUdPTl9PRkZTRVRfRklMTDozMjgyMyxTQU1QTEVfQUxQSEFfVE9fQ09WRVJBR0U6MzI5MjYsU0FNUExFX0NPVkVSQUdFOjMyOTI4LE5PX0VSUk9SOjAsSU5WQUxJRF9FTlVNOjEyODAsSU5WQUxJRF9WQUxVRToxMjgxLElOVkFMSURfT1BFUkFUSU9OOjEyODIsT1VUX09GX01FTU9SWToxMjg1LENXOjIzMDQsQ0NXOjIzMDUsTElORV9XSURUSDoyODQ5LEFMSUFTRURfUE9JTlRfU0laRV9SQU5HRTozMzkwMSxBTElBU0VEX0xJTkVfV0lEVEhfUkFOR0U6MzM5MDIsQ1VMTF9GQUNFX01PREU6Mjg4NSxGUk9OVF9GQUNFOjI4ODYsREVQVEhfUkFOR0U6MjkyOCxERVBUSF9XUklURU1BU0s6MjkzMCxERVBUSF9DTEVBUl9WQUxVRToyOTMxLERFUFRIX0ZVTkM6MjkzMixTVEVOQ0lMX0NMRUFSX1ZBTFVFOjI5NjEsU1RFTkNJTF9GVU5DOjI5NjIsU1RFTkNJTF9GQUlMOjI5NjQsU1RFTkNJTF9QQVNTX0RFUFRIX0ZBSUw6Mjk2NSxTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUzoyOTY2LFNURU5DSUxfUkVGOjI5NjcsU1RFTkNJTF9WQUxVRV9NQVNLOjI5NjMsU1RFTkNJTF9XUklURU1BU0s6Mjk2OCxTVEVOQ0lMX0JBQ0tfRlVOQzozNDgxNixTVEVOQ0lMX0JBQ0tfRkFJTDozNDgxNyxTVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9GQUlMOjM0ODE4LFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1M6MzQ4MTksU1RFTkNJTF9CQUNLX1JFRjozNjAwMyxTVEVOQ0lMX0JBQ0tfVkFMVUVfTUFTSzozNjAwNCxTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLOjM2MDA1LFZJRVdQT1JUOjI5NzgsU0NJU1NPUl9CT1g6MzA4OCxDT0xPUl9DTEVBUl9WQUxVRTozMTA2LENPTE9SX1dSSVRFTUFTSzozMTA3LFVOUEFDS19BTElHTk1FTlQ6MzMxNyxQQUNLX0FMSUdOTUVOVDozMzMzLE1BWF9URVhUVVJFX1NJWkU6MzM3OSxNQVhfVklFV1BPUlRfRElNUzozMzg2LFNVQlBJWEVMX0JJVFM6MzQwOCxSRURfQklUUzozNDEwLEdSRUVOX0JJVFM6MzQxMSxCTFVFX0JJVFM6MzQxMixBTFBIQV9CSVRTOjM0MTMsREVQVEhfQklUUzozNDE0LFNURU5DSUxfQklUUzozNDE1LFBPTFlHT05fT0ZGU0VUX1VOSVRTOjEwNzUyLFBPTFlHT05fT0ZGU0VUX0ZBQ1RPUjozMjgyNCxURVhUVVJFX0JJTkRJTkdfMkQ6MzI4NzMsU0FNUExFX0JVRkZFUlM6MzI5MzYsU0FNUExFUzozMjkzNyxTQU1QTEVfQ09WRVJBR0VfVkFMVUU6MzI5MzgsU0FNUExFX0NPVkVSQUdFX0lOVkVSVDozMjkzOSxDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzozNDQ2NyxET05UX0NBUkU6NDM1MixGQVNURVNUOjQzNTMsTklDRVNUOjQzNTQsR0VORVJBVEVfTUlQTUFQX0hJTlQ6MzMxNzAsQllURTo1MTIwLFVOU0lHTkVEX0JZVEU6NTEyMSxTSE9SVDo1MTIyLFVOU0lHTkVEX1NIT1JUOjUxMjMsSU5UOjUxMjQsVU5TSUdORURfSU5UOjUxMjUsRkxPQVQ6NTEyNixERVBUSF9DT01QT05FTlQ6NjQwMixBTFBIQTo2NDA2LFJHQjo2NDA3LFJHQkE6NjQwOCxMVU1JTkFOQ0U6NjQwOSxMVU1JTkFOQ0VfQUxQSEE6NjQxMCxVTlNJR05FRF9TSE9SVF80XzRfNF80OjMyODE5LFVOU0lHTkVEX1NIT1JUXzVfNV81XzE6MzI4MjAsVU5TSUdORURfU0hPUlRfNV82XzU6MzM2MzUsRlJBR01FTlRfU0hBREVSOjM1NjMyLFZFUlRFWF9TSEFERVI6MzU2MzMsTUFYX1ZFUlRFWF9BVFRSSUJTOjM0OTIxLE1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTOjM2MzQ3LE1BWF9WQVJZSU5HX1ZFQ1RPUlM6MzYzNDgsTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFM6MzU2NjEsTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VOSVRTOjM1NjYwLE1BWF9URVhUVVJFX0lNQUdFX1VOSVRTOjM0OTMwLE1BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlM6MzYzNDksU0hBREVSX1RZUEU6MzU2NjMsREVMRVRFX1NUQVRVUzozNTcxMixMSU5LX1NUQVRVUzozNTcxNCxWQUxJREFURV9TVEFUVVM6MzU3MTUsQVRUQUNIRURfU0hBREVSUzozNTcxNyxBQ1RJVkVfVU5JRk9STVM6MzU3MTgsQUNUSVZFX0FUVFJJQlVURVM6MzU3MjEsU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OOjM1NzI0LENVUlJFTlRfUFJPR1JBTTozNTcyNSxORVZFUjo1MTIsTEVTUzo1MTMsRVFVQUw6NTE0LExFUVVBTDo1MTUsR1JFQVRFUjo1MTYsTk9URVFVQUw6NTE3LEdFUVVBTDo1MTgsQUxXQVlTOjUxOSxLRUVQOjc2ODAsUkVQTEFDRTo3NjgxLElOQ1I6NzY4MixERUNSOjc2ODMsSU5WRVJUOjUzODYsSU5DUl9XUkFQOjM0MDU1LERFQ1JfV1JBUDozNDA1NixWRU5ET1I6NzkzNixSRU5ERVJFUjo3OTM3LFZFUlNJT046NzkzOCxORUFSRVNUOjk3MjgsTElORUFSOjk3MjksTkVBUkVTVF9NSVBNQVBfTkVBUkVTVDo5OTg0LExJTkVBUl9NSVBNQVBfTkVBUkVTVDo5OTg1LE5FQVJFU1RfTUlQTUFQX0xJTkVBUjo5OTg2LExJTkVBUl9NSVBNQVBfTElORUFSOjk5ODcsVEVYVFVSRV9NQUdfRklMVEVSOjEwMjQwLFRFWFRVUkVfTUlOX0ZJTFRFUjoxMDI0MSxURVhUVVJFX1dSQVBfUzoxMDI0MixURVhUVVJFX1dSQVBfVDoxMDI0MyxURVhUVVJFXzJEOjM1NTMsVEVYVFVSRTo1ODkwLFRFWFRVUkVfQ1VCRV9NQVA6MzQwNjcsVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQOjM0MDY4LFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWDozNDA2OSxURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1g6MzQwNzAsVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZOjM0MDcxLFRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWTozNDA3MixURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1o6MzQwNzMsVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aOjM0MDc0LE1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkU6MzQwNzYsVEVYVFVSRTA6MzM5ODQsVEVYVFVSRTE6MzM5ODUsVEVYVFVSRTI6MzM5ODYsVEVYVFVSRTM6MzM5ODcsVEVYVFVSRTQ6MzM5ODgsVEVYVFVSRTU6MzM5ODksVEVYVFVSRTY6MzM5OTAsVEVYVFVSRTc6MzM5OTEsVEVYVFVSRTg6MzM5OTIsVEVYVFVSRTk6MzM5OTMsVEVYVFVSRTEwOjMzOTk0LFRFWFRVUkUxMTozMzk5NSxURVhUVVJFMTI6MzM5OTYsVEVYVFVSRTEzOjMzOTk3LFRFWFRVUkUxNDozMzk5OCxURVhUVVJFMTU6MzM5OTksVEVYVFVSRTE2OjM0ZTMsVEVYVFVSRTE3OjM0MDAxLFRFWFRVUkUxODozNDAwMixURVhUVVJFMTk6MzQwMDMsVEVYVFVSRTIwOjM0MDA0LFRFWFRVUkUyMTozNDAwNSxURVhUVVJFMjI6MzQwMDYsVEVYVFVSRTIzOjM0MDA3LFRFWFRVUkUyNDozNDAwOCxURVhUVVJFMjU6MzQwMDksVEVYVFVSRTI2OjM0MDEwLFRFWFRVUkUyNzozNDAxMSxURVhUVVJFMjg6MzQwMTIsVEVYVFVSRTI5OjM0MDEzLFRFWFRVUkUzMDozNDAxNCxURVhUVVJFMzE6MzQwMTUsQUNUSVZFX1RFWFRVUkU6MzQwMTYsUkVQRUFUOjEwNDk3LENMQU1QX1RPX0VER0U6MzMwNzEsTUlSUk9SRURfUkVQRUFUOjMzNjQ4LEZMT0FUX1ZFQzI6MzU2NjQsRkxPQVRfVkVDMzozNTY2NSxGTE9BVF9WRUM0OjM1NjY2LElOVF9WRUMyOjM1NjY3LElOVF9WRUMzOjM1NjY4LElOVF9WRUM0OjM1NjY5LEJPT0w6MzU2NzAsQk9PTF9WRUMyOjM1NjcxLEJPT0xfVkVDMzozNTY3MixCT09MX1ZFQzQ6MzU2NzMsRkxPQVRfTUFUMjozNTY3NCxGTE9BVF9NQVQzOjM1Njc1LEZMT0FUX01BVDQ6MzU2NzYsU0FNUExFUl8yRDozNTY3OCxTQU1QTEVSX0NVQkU6MzU2ODAsVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEOjM0MzM4LFZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRTozNDMzOSxWRVJURVhfQVRUUklCX0FSUkFZX1NUUklERTozNDM0MCxWRVJURVhfQVRUUklCX0FSUkFZX1RZUEU6MzQzNDEsVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEOjM0OTIyLFZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUjozNDM3MyxWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HOjM0OTc1LElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQRTozNTczOCxJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVDozNTczOSxDT01QSUxFX1NUQVRVUzozNTcxMyxMT1dfRkxPQVQ6MzYzMzYsTUVESVVNX0ZMT0FUOjM2MzM3LEhJR0hfRkxPQVQ6MzYzMzgsTE9XX0lOVDozNjMzOSxNRURJVU1fSU5UOjM2MzQwLEhJR0hfSU5UOjM2MzQxLEZSQU1FQlVGRkVSOjM2MTYwLFJFTkRFUkJVRkZFUjozNjE2MSxSR0JBNDozMjg1NCxSR0I1X0ExOjMyODU1LFJHQjU2NTozNjE5NCxERVBUSF9DT01QT05FTlQxNjozMzE4OSxTVEVOQ0lMX0lOREVYOjY0MDEsU1RFTkNJTF9JTkRFWDg6MzYxNjgsREVQVEhfU1RFTkNJTDozNDA0MSxSRU5ERVJCVUZGRVJfV0lEVEg6MzYxNjIsUkVOREVSQlVGRkVSX0hFSUdIVDozNjE2MyxSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUOjM2MTY0LFJFTkRFUkJVRkZFUl9SRURfU0laRTozNjE3NixSRU5ERVJCVUZGRVJfR1JFRU5fU0laRTozNjE3NyxSRU5ERVJCVUZGRVJfQkxVRV9TSVpFOjM2MTc4LFJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFOjM2MTc5LFJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFOjM2MTgwLFJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkU6MzYxODEsRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRTozNjA0OCxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOjM2MDQ5LEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTDozNjA1MCxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRTozNjA1MSxDT0xPUl9BVFRBQ0hNRU5UMDozNjA2NCxERVBUSF9BVFRBQ0hNRU5UOjM2MDk2LFNURU5DSUxfQVRUQUNITUVOVDozNjEyOCxERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6MzMzMDYsTk9ORTowLEZSQU1FQlVGRkVSX0NPTVBMRVRFOjM2MDUzLEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVDozNjA1NCxGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVDozNjA1NSxGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlM6MzYwNTcsRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQ6MzYwNjEsRlJBTUVCVUZGRVJfQklORElORzozNjAwNixSRU5ERVJCVUZGRVJfQklORElORzozNjAwNyxNQVhfUkVOREVSQlVGRkVSX1NJWkU6MzQwMjQsSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT046MTI4NixVTlBBQ0tfRkxJUF9ZX1dFQkdMOjM3NDQwLFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTDozNzQ0MSxDT05URVhUX0xPU1RfV0VCR0w6Mzc0NDIsVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTDozNzQ0MyxCUk9XU0VSX0RFRkFVTFRfV0VCR0w6Mzc0NDQsQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVDozMzc3NixDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVDozMzc3NyxDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQzX0VYVDozMzc3OCxDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVDozMzc3OSxDT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HOjM1ODQwLENPTVBSRVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUc6MzU4NDEsQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBWMV9JTUc6MzU4NDIsQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUc6MzU4NDMsQ09NUFJFU1NFRF9SR0JBX0FTVENfNHg0X1dFQkdMOjM3ODA4LENPTVBSRVNTRURfUkdCX0VUQzFfV0VCR0w6MzYxOTYsQ09NUFJFU1NFRF9SR0JBX0JQVENfVU5PUk06MzY0OTIsSEFMRl9GTE9BVF9PRVM6MzYxOTMsRE9VQkxFOjUxMzAsUkVBRF9CVUZGRVI6MzA3NCxVTlBBQ0tfUk9XX0xFTkdUSDozMzE0LFVOUEFDS19TS0lQX1JPV1M6MzMxNSxVTlBBQ0tfU0tJUF9QSVhFTFM6MzMxNixQQUNLX1JPV19MRU5HVEg6MzMzMCxQQUNLX1NLSVBfUk9XUzozMzMxLFBBQ0tfU0tJUF9QSVhFTFM6MzMzMixDT0xPUjo2MTQ0LERFUFRIOjYxNDUsU1RFTkNJTDo2MTQ2LFJFRDo2NDAzLFJHQjg6MzI4NDksUkdCQTg6MzI4NTYsUkdCMTBfQTI6MzI4NTcsVEVYVFVSRV9CSU5ESU5HXzNEOjMyODc0LFVOUEFDS19TS0lQX0lNQUdFUzozMjg3NyxVTlBBQ0tfSU1BR0VfSEVJR0hUOjMyODc4LFRFWFRVUkVfM0Q6MzI4NzksVEVYVFVSRV9XUkFQX1I6MzI4ODIsTUFYXzNEX1RFWFRVUkVfU0laRTozMjg4MyxVTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVY6MzM2NDAsTUFYX0VMRU1FTlRTX1ZFUlRJQ0VTOjMzZTMsTUFYX0VMRU1FTlRTX0lORElDRVM6MzMwMDEsVEVYVFVSRV9NSU5fTE9EOjMzMDgyLFRFWFRVUkVfTUFYX0xPRDozMzA4MyxURVhUVVJFX0JBU0VfTEVWRUw6MzMwODQsVEVYVFVSRV9NQVhfTEVWRUw6MzMwODUsTUlOOjMyNzc1LE1BWDozMjc3NixERVBUSF9DT01QT05FTlQyNDozMzE5MCxNQVhfVEVYVFVSRV9MT0RfQklBUzozNDA0NSxURVhUVVJFX0NPTVBBUkVfTU9ERTozNDg5MixURVhUVVJFX0NPTVBBUkVfRlVOQzozNDg5MyxDVVJSRU5UX1FVRVJZOjM0OTE3LFFVRVJZX1JFU1VMVDozNDkxOCxRVUVSWV9SRVNVTFRfQVZBSUxBQkxFOjM0OTE5LFNUUkVBTV9SRUFEOjM1MDQxLFNUUkVBTV9DT1BZOjM1MDQyLFNUQVRJQ19SRUFEOjM1MDQ1LFNUQVRJQ19DT1BZOjM1MDQ2LERZTkFNSUNfUkVBRDozNTA0OSxEWU5BTUlDX0NPUFk6MzUwNTAsTUFYX0RSQVdfQlVGRkVSUzozNDg1MixEUkFXX0JVRkZFUjA6MzQ4NTMsRFJBV19CVUZGRVIxOjM0ODU0LERSQVdfQlVGRkVSMjozNDg1NSxEUkFXX0JVRkZFUjM6MzQ4NTYsRFJBV19CVUZGRVI0OjM0ODU3LERSQVdfQlVGRkVSNTozNDg1OCxEUkFXX0JVRkZFUjY6MzQ4NTksRFJBV19CVUZGRVI3OjM0ODYwLERSQVdfQlVGRkVSODozNDg2MSxEUkFXX0JVRkZFUjk6MzQ4NjIsRFJBV19CVUZGRVIxMDozNDg2MyxEUkFXX0JVRkZFUjExOjM0ODY0LERSQVdfQlVGRkVSMTI6MzQ4NjUsRFJBV19CVUZGRVIxMzozNDg2NixEUkFXX0JVRkZFUjE0OjM0ODY3LERSQVdfQlVGRkVSMTU6MzQ4NjgsTUFYX0ZSQUdNRU5UX1VOSUZPUk1fQ09NUE9ORU5UUzozNTY1NyxNQVhfVkVSVEVYX1VOSUZPUk1fQ09NUE9ORU5UUzozNTY1OCxTQU1QTEVSXzNEOjM1Njc5LFNBTVBMRVJfMkRfU0hBRE9XOjM1NjgyLEZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlQ6MzU3MjMsUElYRUxfUEFDS19CVUZGRVI6MzUwNTEsUElYRUxfVU5QQUNLX0JVRkZFUjozNTA1MixQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HOjM1MDUzLFBJWEVMX1VOUEFDS19CVUZGRVJfQklORElORzozNTA1NSxGTE9BVF9NQVQyeDM6MzU2ODUsRkxPQVRfTUFUMng0OjM1Njg2LEZMT0FUX01BVDN4MjozNTY4NyxGTE9BVF9NQVQzeDQ6MzU2ODgsRkxPQVRfTUFUNHgyOjM1Njg5LEZMT0FUX01BVDR4MzozNTY5MCxTUkdCOjM1OTA0LFNSR0I4OjM1OTA1LFNSR0I4X0FMUEhBODozNTkwNyxDT01QQVJFX1JFRl9UT19URVhUVVJFOjM0ODk0LFJHQkEzMkY6MzQ4MzYsUkdCMzJGOjM0ODM3LFJHQkExNkY6MzQ4NDIsUkdCMTZGOjM0ODQzLFZFUlRFWF9BVFRSSUJfQVJSQVlfSU5URUdFUjozNTA2OSxNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlM6MzUwNzEsTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUOjM1MDc2LE1BWF9QUk9HUkFNX1RFWEVMX09GRlNFVDozNTA3NyxNQVhfVkFSWUlOR19DT01QT05FTlRTOjM1NjU5LFRFWFRVUkVfMkRfQVJSQVk6MzU4NjYsVEVYVFVSRV9CSU5ESU5HXzJEX0FSUkFZOjM1ODY5LFIxMUZfRzExRl9CMTBGOjM1ODk4LFVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVY6MzU4OTksUkdCOV9FNTozNTkwMSxVTlNJR05FRF9JTlRfNV85XzlfOV9SRVY6MzU5MDIsVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9NT0RFOjM1OTY3LE1BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQ09NUE9ORU5UUzozNTk2OCxUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1M6MzU5NzEsVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVDozNTk3MixUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NJWkU6MzU5NzMsVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTjozNTk3NixSQVNURVJJWkVSX0RJU0NBUkQ6MzU5NzcsTUFYX1RSQU5TRk9STV9GRUVEQkFDS19JTlRFUkxFQVZFRF9DT01QT05FTlRTOjM1OTc4LE1BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCUzozNTk3OSxJTlRFUkxFQVZFRF9BVFRSSUJTOjM1OTgwLFNFUEFSQVRFX0FUVFJJQlM6MzU5ODEsVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUjozNTk4MixUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkc6MzU5ODMsUkdCQTMyVUk6MzYyMDgsUkdCMzJVSTozNjIwOSxSR0JBMTZVSTozNjIxNCxSR0IxNlVJOjM2MjE1LFJHQkE4VUk6MzYyMjAsUkdCOFVJOjM2MjIxLFJHQkEzMkk6MzYyMjYsUkdCMzJJOjM2MjI3LFJHQkExNkk6MzYyMzIsUkdCMTZJOjM2MjMzLFJHQkE4STozNjIzOCxSR0I4STozNjIzOSxSRURfSU5URUdFUjozNjI0NCxSR0JfSU5URUdFUjozNjI0OCxSR0JBX0lOVEVHRVI6MzYyNDksU0FNUExFUl8yRF9BUlJBWTozNjI4OSxTQU1QTEVSXzJEX0FSUkFZX1NIQURPVzozNjI5MixTQU1QTEVSX0NVQkVfU0hBRE9XOjM2MjkzLFVOU0lHTkVEX0lOVF9WRUMyOjM2Mjk0LFVOU0lHTkVEX0lOVF9WRUMzOjM2Mjk1LFVOU0lHTkVEX0lOVF9WRUM0OjM2Mjk2LElOVF9TQU1QTEVSXzJEOjM2Mjk4LElOVF9TQU1QTEVSXzNEOjM2Mjk5LElOVF9TQU1QTEVSX0NVQkU6MzYzMDAsSU5UX1NBTVBMRVJfMkRfQVJSQVk6MzYzMDMsVU5TSUdORURfSU5UX1NBTVBMRVJfMkQ6MzYzMDYsVU5TSUdORURfSU5UX1NBTVBMRVJfM0Q6MzYzMDcsVU5TSUdORURfSU5UX1NBTVBMRVJfQ1VCRTozNjMwOCxVTlNJR05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWTozNjMxMSxERVBUSF9DT01QT05FTlQzMkY6MzYwMTIsREVQVEgzMkZfU1RFTkNJTDg6MzYwMTMsRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWOjM2MjY5LEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkc6MzMyOTYsRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRTozMzI5NyxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFOjMzMjk4LEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRTozMzI5OSxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRTozMzMwMCxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkU6MzMzMDEsRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFOjMzMzAyLEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfU1RFTkNJTF9TSVpFOjMzMzAzLEZSQU1FQlVGRkVSX0RFRkFVTFQ6MzMzMDQsVU5TSUdORURfSU5UXzI0Xzg6MzQwNDIsREVQVEgyNF9TVEVOQ0lMODozNTA1NixVTlNJR05FRF9OT1JNQUxJWkVEOjM1ODYzLERSQVdfRlJBTUVCVUZGRVJfQklORElORzozNjAwNixSRUFEX0ZSQU1FQlVGRkVSOjM2MDA4LERSQVdfRlJBTUVCVUZGRVI6MzYwMDksUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HOjM2MDEwLFJFTkRFUkJVRkZFUl9TQU1QTEVTOjM2MDExLEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MQVlFUjozNjA1MixNQVhfQ09MT1JfQVRUQUNITUVOVFM6MzYwNjMsQ09MT1JfQVRUQUNITUVOVDE6MzYwNjUsQ09MT1JfQVRUQUNITUVOVDI6MzYwNjYsQ09MT1JfQVRUQUNITUVOVDM6MzYwNjcsQ09MT1JfQVRUQUNITUVOVDQ6MzYwNjgsQ09MT1JfQVRUQUNITUVOVDU6MzYwNjksQ09MT1JfQVRUQUNITUVOVDY6MzYwNzAsQ09MT1JfQVRUQUNITUVOVDc6MzYwNzEsQ09MT1JfQVRUQUNITUVOVDg6MzYwNzIsQ09MT1JfQVRUQUNITUVOVDk6MzYwNzMsQ09MT1JfQVRUQUNITUVOVDEwOjM2MDc0LENPTE9SX0FUVEFDSE1FTlQxMTozNjA3NSxDT0xPUl9BVFRBQ0hNRU5UMTI6MzYwNzYsQ09MT1JfQVRUQUNITUVOVDEzOjM2MDc3LENPTE9SX0FUVEFDSE1FTlQxNDozNjA3OCxDT0xPUl9BVFRBQ0hNRU5UMTU6MzYwNzksRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NVUxUSVNBTVBMRTozNjE4MixNQVhfU0FNUExFUzozNjE4MyxIQUxGX0ZMT0FUOjUxMzEsUkc6MzMzMTksUkdfSU5URUdFUjozMzMyMCxSODozMzMyMSxSRzg6MzMzMjMsUjE2RjozMzMyNSxSMzJGOjMzMzI2LFJHMTZGOjMzMzI3LFJHMzJGOjMzMzI4LFI4STozMzMyOSxSOFVJOjMzMzMwLFIxNkk6MzMzMzEsUjE2VUk6MzMzMzIsUjMySTozMzMzMyxSMzJVSTozMzMzNCxSRzhJOjMzMzM1LFJHOFVJOjMzMzM2LFJHMTZJOjMzMzM3LFJHMTZVSTozMzMzOCxSRzMySTozMzMzOSxSRzMyVUk6MzMzNDAsVkVSVEVYX0FSUkFZX0JJTkRJTkc6MzQyMjksUjhfU05PUk06MzY3NTYsUkc4X1NOT1JNOjM2NzU3LFJHQjhfU05PUk06MzY3NTgsUkdCQThfU05PUk06MzY3NTksU0lHTkVEX05PUk1BTElaRUQ6MzY3NjQsQ09QWV9SRUFEX0JVRkZFUjozNjY2MixDT1BZX1dSSVRFX0JVRkZFUjozNjY2MyxDT1BZX1JFQURfQlVGRkVSX0JJTkRJTkc6MzY2NjIsQ09QWV9XUklURV9CVUZGRVJfQklORElORzozNjY2MyxVTklGT1JNX0JVRkZFUjozNTM0NSxVTklGT1JNX0JVRkZFUl9CSU5ESU5HOjM1MzY4LFVOSUZPUk1fQlVGRkVSX1NUQVJUOjM1MzY5LFVOSUZPUk1fQlVGRkVSX1NJWkU6MzUzNzAsTUFYX1ZFUlRFWF9VTklGT1JNX0JMT0NLUzozNTM3MSxNQVhfRlJBR01FTlRfVU5JRk9STV9CTE9DS1M6MzUzNzMsTUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tTOjM1Mzc0LE1BWF9VTklGT1JNX0JVRkZFUl9CSU5ESU5HUzozNTM3NSxNQVhfVU5JRk9STV9CTE9DS19TSVpFOjM1Mzc2LE1BWF9DT01CSU5FRF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTOjM1Mzc3LE1BWF9DT01CSU5FRF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFM6MzUzNzksVU5JRk9STV9CVUZGRVJfT0ZGU0VUX0FMSUdOTUVOVDozNTM4MCxBQ1RJVkVfVU5JRk9STV9CTE9DS1M6MzUzODIsVU5JRk9STV9UWVBFOjM1MzgzLFVOSUZPUk1fU0laRTozNTM4NCxVTklGT1JNX0JMT0NLX0lOREVYOjM1Mzg2LFVOSUZPUk1fT0ZGU0VUOjM1Mzg3LFVOSUZPUk1fQVJSQVlfU1RSSURFOjM1Mzg4LFVOSUZPUk1fTUFUUklYX1NUUklERTozNTM4OSxVTklGT1JNX0lTX1JPV19NQUpPUjozNTM5MCxVTklGT1JNX0JMT0NLX0JJTkRJTkc6MzUzOTEsVU5JRk9STV9CTE9DS19EQVRBX1NJWkU6MzUzOTIsVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STVM6MzUzOTQsVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STV9JTkRJQ0VTOjM1Mzk1LFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJURVhfU0hBREVSOjM1Mzk2LFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVI6MzUzOTgsSU5WQUxJRF9JTkRFWDo0Mjk0OTY3Mjk1LE1BWF9WRVJURVhfT1VUUFVUX0NPTVBPTkVOVFM6MzcxNTQsTUFYX0ZSQUdNRU5UX0lOUFVUX0NPTVBPTkVOVFM6MzcxNTcsTUFYX1NFUlZFUl9XQUlUX1RJTUVPVVQ6MzcxMzcsT0JKRUNUX1RZUEU6MzcxMzgsU1lOQ19DT05ESVRJT046MzcxMzksU1lOQ19TVEFUVVM6MzcxNDAsU1lOQ19GTEFHUzozNzE0MSxTWU5DX0ZFTkNFOjM3MTQyLFNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFOjM3MTQzLFVOU0lHTkFMRUQ6MzcxNDQsU0lHTkFMRUQ6MzcxNDUsQUxSRUFEWV9TSUdOQUxFRDozNzE0NixUSU1FT1VUX0VYUElSRUQ6MzcxNDcsQ09ORElUSU9OX1NBVElTRklFRDozNzE0OCxXQUlUX0ZBSUxFRDozNzE0OSxTWU5DX0ZMVVNIX0NPTU1BTkRTX0JJVDoxLFZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUjozNTA3MCxBTllfU0FNUExFU19QQVNTRUQ6MzU4ODcsQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRTozNjIwMixTQU1QTEVSX0JJTkRJTkc6MzUwOTcsUkdCMTBfQTJVSTozNjk3NSxJTlRfMl8xMF8xMF8xMF9SRVY6MzYyNTUsVFJBTlNGT1JNX0ZFRURCQUNLOjM2Mzg2LFRSQU5TRk9STV9GRUVEQkFDS19QQVVTRUQ6MzYzODcsVFJBTlNGT1JNX0ZFRURCQUNLX0FDVElWRTozNjM4OCxUUkFOU0ZPUk1fRkVFREJBQ0tfQklORElORzozNjM4OSxDT01QUkVTU0VEX1IxMV9FQUM6Mzc0ODgsQ09NUFJFU1NFRF9TSUdORURfUjExX0VBQzozNzQ4OSxDT01QUkVTU0VEX1JHMTFfRUFDOjM3NDkwLENPTVBSRVNTRURfU0lHTkVEX1JHMTFfRUFDOjM3NDkxLENPTVBSRVNTRURfUkdCOF9FVEMyOjM3NDkyLENPTVBSRVNTRURfU1JHQjhfRVRDMjozNzQ5MyxDT01QUkVTU0VEX1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyOjM3NDk0LENPTVBSRVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyOjM3NDk1LENPTVBSRVNTRURfUkdCQThfRVRDMl9FQUM6Mzc0OTYsQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfRVRDMl9FQUM6Mzc0OTcsVEVYVFVSRV9JTU1VVEFCTEVfRk9STUFUOjM3MTY3LE1BWF9FTEVNRU5UX0lOREVYOjM2MjAzLFRFWFRVUkVfSU1NVVRBQkxFX0xFVkVMUzozMzUwMyxNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQ6MzQwNDd9O09iamVjdC5mcmVlemUoUncpO05lPVJ3fSk7dmFyIEhlLG9lLEN0PVgoKCk9PntzZSgpO29jKCk7SGU9e0JZVEU6TmUuQllURSxVTlNJR05FRF9CWVRFOk5lLlVOU0lHTkVEX0JZVEUsU0hPUlQ6TmUuU0hPUlQsVU5TSUdORURfU0hPUlQ6TmUuVU5TSUdORURfU0hPUlQsSU5UOk5lLklOVCxVTlNJR05FRF9JTlQ6TmUuVU5TSUdORURfSU5ULEZMT0FUOk5lLkZMT0FULERPVUJMRTpOZS5ET1VCTEV9O0hlLmdldFNpemVJbkJ5dGVzPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIEhlLkJZVEU6cmV0dXJuIEludDhBcnJheS5CWVRFU19QRVJfRUxFTUVOVDtjYXNlIEhlLlVOU0lHTkVEX0JZVEU6cmV0dXJuIFVpbnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBIZS5TSE9SVDpyZXR1cm4gSW50MTZBcnJheS5CWVRFU19QRVJfRUxFTUVOVDtjYXNlIEhlLlVOU0lHTkVEX1NIT1JUOnJldHVybiBVaW50MTZBcnJheS5CWVRFU19QRVJfRUxFTUVOVDtjYXNlIEhlLklOVDpyZXR1cm4gSW50MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVDtjYXNlIEhlLlVOU0lHTkVEX0lOVDpyZXR1cm4gVWludDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBIZS5GTE9BVDpyZXR1cm4gRmxvYXQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UO2Nhc2UgSGUuRE9VQkxFOnJldHVybiBGbG9hdDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlR9fTtIZS5mcm9tVHlwZWRBcnJheT1mdW5jdGlvbihuKXtpZihuIGluc3RhbmNlb2YgSW50OEFycmF5KXJldHVybiBIZS5CWVRFO2lmKG4gaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBIZS5VTlNJR05FRF9CWVRFO2lmKG4gaW5zdGFuY2VvZiBJbnQxNkFycmF5KXJldHVybiBIZS5TSE9SVDtpZihuIGluc3RhbmNlb2YgVWludDE2QXJyYXkpcmV0dXJuIEhlLlVOU0lHTkVEX1NIT1JUO2lmKG4gaW5zdGFuY2VvZiBJbnQzMkFycmF5KXJldHVybiBIZS5JTlQ7aWYobiBpbnN0YW5jZW9mIFVpbnQzMkFycmF5KXJldHVybiBIZS5VTlNJR05FRF9JTlQ7aWYobiBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSlyZXR1cm4gSGUuRkxPQVQ7aWYobiBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSlyZXR1cm4gSGUuRE9VQkxFfTtIZS52YWxpZGF0ZT1mdW5jdGlvbihuKXtyZXR1cm4gXyhuKSYmKG49PT1IZS5CWVRFfHxuPT09SGUuVU5TSUdORURfQllURXx8bj09PUhlLlNIT1JUfHxuPT09SGUuVU5TSUdORURfU0hPUlR8fG49PT1IZS5JTlR8fG49PT1IZS5VTlNJR05FRF9JTlR8fG49PT1IZS5GTE9BVHx8bj09PUhlLkRPVUJMRSl9O0hlLmNyZWF0ZVR5cGVkQXJyYXk9ZnVuY3Rpb24obixlKXtzd2l0Y2gobil7Y2FzZSBIZS5CWVRFOnJldHVybiBuZXcgSW50OEFycmF5KGUpO2Nhc2UgSGUuVU5TSUdORURfQllURTpyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZSk7Y2FzZSBIZS5TSE9SVDpyZXR1cm4gbmV3IEludDE2QXJyYXkoZSk7Y2FzZSBIZS5VTlNJR05FRF9TSE9SVDpyZXR1cm4gbmV3IFVpbnQxNkFycmF5KGUpO2Nhc2UgSGUuSU5UOnJldHVybiBuZXcgSW50MzJBcnJheShlKTtjYXNlIEhlLlVOU0lHTkVEX0lOVDpyZXR1cm4gbmV3IFVpbnQzMkFycmF5KGUpO2Nhc2UgSGUuRkxPQVQ6cmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoZSk7Y2FzZSBIZS5ET1VCTEU6cmV0dXJuIG5ldyBGbG9hdDY0QXJyYXkoZSl9fTtIZS5jcmVhdGVBcnJheUJ1ZmZlclZpZXc9ZnVuY3Rpb24obixlLHQsbyl7c3dpdGNoKHQ9dD8/MCxvPW8/PyhlLmJ5dGVMZW5ndGgtdCkvSGUuZ2V0U2l6ZUluQnl0ZXMobiksbil7Y2FzZSBIZS5CWVRFOnJldHVybiBuZXcgSW50OEFycmF5KGUsdCxvKTtjYXNlIEhlLlVOU0lHTkVEX0JZVEU6cmV0dXJuIG5ldyBVaW50OEFycmF5KGUsdCxvKTtjYXNlIEhlLlNIT1JUOnJldHVybiBuZXcgSW50MTZBcnJheShlLHQsbyk7Y2FzZSBIZS5VTlNJR05FRF9TSE9SVDpyZXR1cm4gbmV3IFVpbnQxNkFycmF5KGUsdCxvKTtjYXNlIEhlLklOVDpyZXR1cm4gbmV3IEludDMyQXJyYXkoZSx0LG8pO2Nhc2UgSGUuVU5TSUdORURfSU5UOnJldHVybiBuZXcgVWludDMyQXJyYXkoZSx0LG8pO2Nhc2UgSGUuRkxPQVQ6cmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoZSx0LG8pO2Nhc2UgSGUuRE9VQkxFOnJldHVybiBuZXcgRmxvYXQ2NEFycmF5KGUsdCxvKX19O0hlLmZyb21OYW1lPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIkJZVEUiOnJldHVybiBIZS5CWVRFO2Nhc2UiVU5TSUdORURfQllURSI6cmV0dXJuIEhlLlVOU0lHTkVEX0JZVEU7Y2FzZSJTSE9SVCI6cmV0dXJuIEhlLlNIT1JUO2Nhc2UiVU5TSUdORURfU0hPUlQiOnJldHVybiBIZS5VTlNJR05FRF9TSE9SVDtjYXNlIklOVCI6cmV0dXJuIEhlLklOVDtjYXNlIlVOU0lHTkVEX0lOVCI6cmV0dXJuIEhlLlVOU0lHTkVEX0lOVDtjYXNlIkZMT0FUIjpyZXR1cm4gSGUuRkxPQVQ7Y2FzZSJET1VCTEUiOnJldHVybiBIZS5ET1VCTEV9fTtIZS5kZXF1YW50aXplPWZ1bmN0aW9uKG4sZSl7c3dpdGNoKGUpe2Nhc2UgSGUuQllURTpyZXR1cm4gTWF0aC5tYXgobi8xMjcsLTEpO2Nhc2UgSGUuVU5TSUdORURfQllURTpyZXR1cm4gbi8yNTU7Y2FzZSBIZS5TSE9SVDpyZXR1cm4gTWF0aC5tYXgobi8zMjc2NywtMSk7Y2FzZSBIZS5VTlNJR05FRF9TSE9SVDpyZXR1cm4gbi82NTUzNTtjYXNlIEhlLklOVDpyZXR1cm4gTWF0aC5tYXgobi8yMTQ3NDgzNjQ3LC0xKTtjYXNlIEhlLlVOU0lHTkVEX0lOVDpyZXR1cm4gbi80Mjk0OTY3Mjk1fX07T2JqZWN0LmZyZWV6ZShIZSk7b2U9SGV9KTt2YXIgeHcsRHIsSmw9WCgoKT0+e3h3PXtOT05FOjAsVFJJQU5HTEVTOjEsTElORVM6MixQT0xZTElORVM6M307T2JqZWN0LmZyZWV6ZSh4dyk7RHI9eHd9KTt2YXIgWW8scU4sV04sT3csU3csWE4sWU4sSm8sUGY9WCgoKT0+e3Z0KCk7c2UoKTtZbz1jbGFzcyBue2NvbnN0cnVjdG9yKGUsdCxvLGEpe3RoaXNbMF09ZT8/MCx0aGlzWzFdPW8/PzAsdGhpc1syXT10Pz8wLHRoaXNbM109YT8/MH1zdGF0aWMgcGFjayhlLHQsbyl7cmV0dXJuIG89bz8/MCx0W28rK109ZVswXSx0W28rK109ZVsxXSx0W28rK109ZVsyXSx0W28rK109ZVszXSx0fXN0YXRpYyB1bnBhY2soZSx0LG8pe3JldHVybiB0PXQ/PzAsXyhvKXx8KG89bmV3IG4pLG9bMF09ZVt0KytdLG9bMV09ZVt0KytdLG9bMl09ZVt0KytdLG9bM109ZVt0KytdLG99c3RhdGljIHBhY2tBcnJheShlLHQpe2xldCBvPWUubGVuZ3RoLGE9byo0O18odCk/IUFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoIT09YXx8dC5sZW5ndGghPT1hJiYodC5sZW5ndGg9YSk6dD1uZXcgQXJyYXkoYSk7Zm9yKGxldCByPTA7cjxvOysrciluLnBhY2soZVtyXSx0LHIqNCk7cmV0dXJuIHR9c3RhdGljIHVucGFja0FycmF5KGUsdCl7bGV0IG89ZS5sZW5ndGg7Xyh0KT90Lmxlbmd0aD1vLzQ6dD1uZXcgQXJyYXkoby80KTtmb3IobGV0IGE9MDthPG87YSs9NCl7bGV0IHI9YS80O3Rbcl09bi51bnBhY2soZSxhLHRbcl0pfXJldHVybiB0fXN0YXRpYyBjbG9uZShlLHQpe2lmKF8oZSkpcmV0dXJuIF8odCk/KHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0KTpuZXcgbihlWzBdLGVbMl0sZVsxXSxlWzNdKX1zdGF0aWMgZnJvbUNvbHVtbk1ham9yQXJyYXkoZSx0KXtyZXR1cm4gbi5jbG9uZShlLHQpfXN0YXRpYyBmcm9tUm93TWFqb3JBcnJheShlLHQpe3JldHVybiBfKHQpPyh0WzBdPWVbMF0sdFsxXT1lWzJdLHRbMl09ZVsxXSx0WzNdPWVbM10sdCk6bmV3IG4oZVswXSxlWzFdLGVbMl0sZVszXSl9c3RhdGljIGZyb21TY2FsZShlLHQpe3JldHVybiBfKHQpPyh0WzBdPWUueCx0WzFdPTAsdFsyXT0wLHRbM109ZS55LHQpOm5ldyBuKGUueCwwLDAsZS55KX1zdGF0aWMgZnJvbVVuaWZvcm1TY2FsZShlLHQpe3JldHVybiBfKHQpPyh0WzBdPWUsdFsxXT0wLHRbMl09MCx0WzNdPWUsdCk6bmV3IG4oZSwwLDAsZSl9c3RhdGljIGZyb21Sb3RhdGlvbihlLHQpe2xldCBvPU1hdGguY29zKGUpLGE9TWF0aC5zaW4oZSk7cmV0dXJuIF8odCk/KHRbMF09byx0WzFdPWEsdFsyXT0tYSx0WzNdPW8sdCk6bmV3IG4obywtYSxhLG8pfXN0YXRpYyB0b0FycmF5KGUsdCl7cmV0dXJuIF8odCk/KHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0KTpbZVswXSxlWzFdLGVbMl0sZVszXV19c3RhdGljIGdldEVsZW1lbnRJbmRleChlLHQpe3JldHVybiBlKjIrdH1zdGF0aWMgZ2V0Q29sdW1uKGUsdCxvKXtsZXQgYT10KjIscj1lW2FdLGk9ZVthKzFdO3JldHVybiBvLng9cixvLnk9aSxvfXN0YXRpYyBzZXRDb2x1bW4oZSx0LG8sYSl7YT1uLmNsb25lKGUsYSk7bGV0IHI9dCoyO3JldHVybiBhW3JdPW8ueCxhW3IrMV09by55LGF9c3RhdGljIGdldFJvdyhlLHQsbyl7bGV0IGE9ZVt0XSxyPWVbdCsyXTtyZXR1cm4gby54PWEsby55PXIsb31zdGF0aWMgc2V0Um93KGUsdCxvLGEpe3JldHVybiBhPW4uY2xvbmUoZSxhKSxhW3RdPW8ueCxhW3QrMl09by55LGF9c3RhdGljIHNldFNjYWxlKGUsdCxvKXtsZXQgYT1uLmdldFNjYWxlKGUscU4pLHI9dC54L2EueCxpPXQueS9hLnk7cmV0dXJuIG9bMF09ZVswXSpyLG9bMV09ZVsxXSpyLG9bMl09ZVsyXSppLG9bM109ZVszXSppLG99c3RhdGljIHNldFVuaWZvcm1TY2FsZShlLHQsbyl7bGV0IGE9bi5nZXRTY2FsZShlLFdOKSxyPXQvYS54LGk9dC9hLnk7cmV0dXJuIG9bMF09ZVswXSpyLG9bMV09ZVsxXSpyLG9bMl09ZVsyXSppLG9bM109ZVszXSppLG99c3RhdGljIGdldFNjYWxlKGUsdCl7cmV0dXJuIHQueD1ZLm1hZ25pdHVkZShZLmZyb21FbGVtZW50cyhlWzBdLGVbMV0sT3cpKSx0Lnk9WS5tYWduaXR1ZGUoWS5mcm9tRWxlbWVudHMoZVsyXSxlWzNdLE93KSksdH1zdGF0aWMgZ2V0TWF4aW11bVNjYWxlKGUpe3JldHVybiBuLmdldFNjYWxlKGUsU3cpLFkubWF4aW11bUNvbXBvbmVudChTdyl9c3RhdGljIHNldFJvdGF0aW9uKGUsdCxvKXtsZXQgYT1uLmdldFNjYWxlKGUsWE4pO3JldHVybiBvWzBdPXRbMF0qYS54LG9bMV09dFsxXSphLngsb1syXT10WzJdKmEueSxvWzNdPXRbM10qYS55LG99c3RhdGljIGdldFJvdGF0aW9uKGUsdCl7bGV0IG89bi5nZXRTY2FsZShlLFlOKTtyZXR1cm4gdFswXT1lWzBdL28ueCx0WzFdPWVbMV0vby54LHRbMl09ZVsyXS9vLnksdFszXT1lWzNdL28ueSx0fXN0YXRpYyBtdWx0aXBseShlLHQsbyl7bGV0IGE9ZVswXSp0WzBdK2VbMl0qdFsxXSxyPWVbMF0qdFsyXStlWzJdKnRbM10saT1lWzFdKnRbMF0rZVszXSp0WzFdLGY9ZVsxXSp0WzJdK2VbM10qdFszXTtyZXR1cm4gb1swXT1hLG9bMV09aSxvWzJdPXIsb1szXT1mLG99c3RhdGljIGFkZChlLHQsbyl7cmV0dXJuIG9bMF09ZVswXSt0WzBdLG9bMV09ZVsxXSt0WzFdLG9bMl09ZVsyXSt0WzJdLG9bM109ZVszXSt0WzNdLG99c3RhdGljIHN1YnRyYWN0KGUsdCxvKXtyZXR1cm4gb1swXT1lWzBdLXRbMF0sb1sxXT1lWzFdLXRbMV0sb1syXT1lWzJdLXRbMl0sb1szXT1lWzNdLXRbM10sb31zdGF0aWMgbXVsdGlwbHlCeVZlY3RvcihlLHQsbyl7bGV0IGE9ZVswXSp0LngrZVsyXSp0Lnkscj1lWzFdKnQueCtlWzNdKnQueTtyZXR1cm4gby54PWEsby55PXIsb31zdGF0aWMgbXVsdGlwbHlCeVNjYWxhcihlLHQsbyl7cmV0dXJuIG9bMF09ZVswXSp0LG9bMV09ZVsxXSp0LG9bMl09ZVsyXSp0LG9bM109ZVszXSp0LG99c3RhdGljIG11bHRpcGx5QnlTY2FsZShlLHQsbyl7cmV0dXJuIG9bMF09ZVswXSp0Lngsb1sxXT1lWzFdKnQueCxvWzJdPWVbMl0qdC55LG9bM109ZVszXSp0Lnksb31zdGF0aWMgbXVsdGlwbHlCeVVuaWZvcm1TY2FsZShlLHQsbyl7cmV0dXJuIG9bMF09ZVswXSp0LG9bMV09ZVsxXSp0LG9bMl09ZVsyXSp0LG9bM109ZVszXSp0LG99c3RhdGljIG5lZ2F0ZShlLHQpe3JldHVybiB0WzBdPS1lWzBdLHRbMV09LWVbMV0sdFsyXT0tZVsyXSx0WzNdPS1lWzNdLHR9c3RhdGljIHRyYW5zcG9zZShlLHQpe2xldCBvPWVbMF0sYT1lWzJdLHI9ZVsxXSxpPWVbM107cmV0dXJuIHRbMF09byx0WzFdPWEsdFsyXT1yLHRbM109aSx0fXN0YXRpYyBhYnMoZSx0KXtyZXR1cm4gdFswXT1NYXRoLmFicyhlWzBdKSx0WzFdPU1hdGguYWJzKGVbMV0pLHRbMl09TWF0aC5hYnMoZVsyXSksdFszXT1NYXRoLmFicyhlWzNdKSx0fXN0YXRpYyBlcXVhbHMoZSx0KXtyZXR1cm4gZT09PXR8fF8oZSkmJl8odCkmJmVbMF09PT10WzBdJiZlWzFdPT09dFsxXSYmZVsyXT09PXRbMl0mJmVbM109PT10WzNdfXN0YXRpYyBlcXVhbHNBcnJheShlLHQsbyl7cmV0dXJuIGVbMF09PT10W29dJiZlWzFdPT09dFtvKzFdJiZlWzJdPT09dFtvKzJdJiZlWzNdPT09dFtvKzNdfXN0YXRpYyBlcXVhbHNFcHNpbG9uKGUsdCxvKXtyZXR1cm4gbz1vPz8wLGU9PT10fHxfKGUpJiZfKHQpJiZNYXRoLmFicyhlWzBdLXRbMF0pPD1vJiZNYXRoLmFicyhlWzFdLXRbMV0pPD1vJiZNYXRoLmFicyhlWzJdLXRbMl0pPD1vJiZNYXRoLmFicyhlWzNdLXRbM10pPD1vfWdldCBsZW5ndGgoKXtyZXR1cm4gbi5wYWNrZWRMZW5ndGh9Y2xvbmUoZSl7cmV0dXJuIG4uY2xvbmUodGhpcyxlKX1lcXVhbHMoZSl7cmV0dXJuIG4uZXF1YWxzKHRoaXMsZSl9ZXF1YWxzRXBzaWxvbihlLHQpe3JldHVybiBuLmVxdWFsc0Vwc2lsb24odGhpcyxlLHQpfXRvU3RyaW5nKCl7cmV0dXJuYCgke3RoaXNbMF19LCAke3RoaXNbMl19KQooJHt0aGlzWzFdfSwgJHt0aGlzWzNdfSlgfX07WW8ucGFja2VkTGVuZ3RoPTQ7WW8uZnJvbUFycmF5PVlvLnVucGFjaztZby5JREVOVElUWT1PYmplY3QuZnJlZXplKG5ldyBZbygxLDAsMCwxKSk7WW8uWkVSTz1PYmplY3QuZnJlZXplKG5ldyBZbygwLDAsMCwwKSk7WW8uQ09MVU1OMFJPVzA9MDtZby5DT0xVTU4wUk9XMT0xO1lvLkNPTFVNTjFST1cwPTI7WW8uQ09MVU1OMVJPVzE9MztxTj1uZXcgWSxXTj1uZXcgWSxPdz1uZXcgWSxTdz1uZXcgWSxYTj1uZXcgWSxZTj1uZXcgWSxKbz1Zb30pO3ZhciB1byxGZSx0bj1YKCgpPT57b2MoKTt1bz17UE9JTlRTOk5lLlBPSU5UUyxMSU5FUzpOZS5MSU5FUyxMSU5FX0xPT1A6TmUuTElORV9MT09QLExJTkVfU1RSSVA6TmUuTElORV9TVFJJUCxUUklBTkdMRVM6TmUuVFJJQU5HTEVTLFRSSUFOR0xFX1NUUklQOk5lLlRSSUFOR0xFX1NUUklQLFRSSUFOR0xFX0ZBTjpOZS5UUklBTkdMRV9GQU59O3VvLmlzTGluZXM9ZnVuY3Rpb24obil7cmV0dXJuIG49PT11by5MSU5FU3x8bj09PXVvLkxJTkVfTE9PUHx8bj09PXVvLkxJTkVfU1RSSVB9O3VvLmlzVHJpYW5nbGVzPWZ1bmN0aW9uKG4pe3JldHVybiBuPT09dW8uVFJJQU5HTEVTfHxuPT09dW8uVFJJQU5HTEVfU1RSSVB8fG49PT11by5UUklBTkdMRV9GQU59O3VvLnZhbGlkYXRlPWZ1bmN0aW9uKG4pe3JldHVybiBuPT09dW8uUE9JTlRTfHxuPT09dW8uTElORVN8fG49PT11by5MSU5FX0xPT1B8fG49PT11by5MSU5FX1NUUklQfHxuPT09dW8uVFJJQU5HTEVTfHxuPT09dW8uVFJJQU5HTEVfU1RSSVB8fG49PT11by5UUklBTkdMRV9GQU59O09iamVjdC5mcmVlemUodW8pO0ZlPXVvfSk7ZnVuY3Rpb24gYXAobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1QsdGhpcy5hdHRyaWJ1dGVzPW4uYXR0cmlidXRlcyx0aGlzLmluZGljZXM9bi5pbmRpY2VzLHRoaXMucHJpbWl0aXZlVHlwZT1uLnByaW1pdGl2ZVR5cGU/P0ZlLlRSSUFOR0xFUyx0aGlzLmJvdW5kaW5nU3BoZXJlPW4uYm91bmRpbmdTcGhlcmUsdGhpcy5nZW9tZXRyeVR5cGU9bi5nZW9tZXRyeVR5cGU/P0RyLk5PTkUsdGhpcy5ib3VuZGluZ1NwaGVyZUNWPW4uYm91bmRpbmdTcGhlcmVDVix0aGlzLm9mZnNldEF0dHJpYnV0ZT1uLm9mZnNldEF0dHJpYnV0ZX12YXIgSk4sWk4sQ3csUU4sJE4sZUksdEksbkksb0ksYUksUGUsWHQ9WCgoKT0+e3Z0KCk7TWUoKTtndCgpO3N0KCk7c2UoKTtKbCgpO1BmKCk7SW4oKTt1bigpO3RuKCk7V28oKTtobigpO3JyKCk7YXAuY29tcHV0ZU51bWJlck9mVmVydGljZXM9ZnVuY3Rpb24obil7bGV0IGU9LTE7Zm9yKGxldCB0IGluIG4uYXR0cmlidXRlcylpZihuLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkodCkmJl8obi5hdHRyaWJ1dGVzW3RdKSYmXyhuLmF0dHJpYnV0ZXNbdF0udmFsdWVzKSl7bGV0IG89bi5hdHRyaWJ1dGVzW3RdO2U9by52YWx1ZXMubGVuZ3RoL28uY29tcG9uZW50c1BlckF0dHJpYnV0ZX1yZXR1cm4gZX07Sk49bmV3IHJlLFpOPW5ldyBzLEN3PW5ldyAkLFFOPVtuZXcgcmUsbmV3IHJlLG5ldyByZV0sJE49W25ldyBZLG5ldyBZLG5ldyBZXSxlST1bbmV3IFksbmV3IFksbmV3IFldLHRJPW5ldyBzLG5JPW5ldyBZZSxvST1uZXcgJCxhST1uZXcgSm87YXAuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM9ZnVuY3Rpb24obixlLHQsbyl7bGV0IGEscj14ZS5jZW50ZXIobyxKTiksaT1yZS50b0NhcnRlc2lhbihyLHQsWk4pLGY9b28uZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWUoaSx0LEN3KSxkPSQuaW52ZXJzZShmLEN3KSxjPSROLHU9UU47dVswXS5sb25naXR1ZGU9by53ZXN0LHVbMF0ubGF0aXR1ZGU9by5zb3V0aCx1WzFdLmxvbmdpdHVkZT1vLndlc3QsdVsxXS5sYXRpdHVkZT1vLm5vcnRoLHVbMl0ubG9uZ2l0dWRlPW8uZWFzdCx1WzJdLmxhdGl0dWRlPW8uc291dGg7bGV0IGw9dEk7Zm9yKGE9MDthPDM7YSsrKXJlLnRvQ2FydGVzaWFuKHVbYV0sdCxsKSxsPSQubXVsdGlwbHlCeVBvaW50QXNWZWN0b3IoZCxsLGwpLGNbYV0ueD1sLngsY1thXS55PWwueTtsZXQgaD1ZZS5mcm9tQXhpc0FuZ2xlKHMuVU5JVF9aLC1lLG5JKSxtPUouZnJvbVF1YXRlcm5pb24oaCxvSSksYj1uLmxlbmd0aCxwPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx5PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxFPU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxnPU51bWJlci5ORUdBVElWRV9JTkZJTklUWTtmb3IoYT0wO2E8YjthKyspbD0kLm11bHRpcGx5QnlQb2ludEFzVmVjdG9yKGQsblthXSxsKSxsPUoubXVsdGlwbHlCeVZlY3RvcihtLGwsbCkscD1NYXRoLm1pbihwLGwueCkseT1NYXRoLm1pbih5LGwueSksRT1NYXRoLm1heChFLGwueCksZz1NYXRoLm1heChnLGwueSk7bGV0IEE9Sm8uZnJvbVJvdGF0aW9uKGUsYUkpLFQ9ZUk7VFswXS54PXAsVFswXS55PXksVFsxXS54PXAsVFsxXS55PWcsVFsyXS54PUUsVFsyXS55PXk7bGV0IFI9Y1swXSxTPWNbMl0ueC1SLngsTT1jWzFdLnktUi55O2ZvcihhPTA7YTwzO2ErKyl7bGV0IHc9VFthXTtKby5tdWx0aXBseUJ5VmVjdG9yKEEsdyx3KSx3Lng9KHcueC1SLngpL1Msdy55PSh3LnktUi55KS9NfWxldCBJPVRbMF0sTj1UWzFdLFA9VFsyXSxGPW5ldyBBcnJheSg2KTtyZXR1cm4gWS5wYWNrKEksRiksWS5wYWNrKE4sRiwyKSxZLnBhY2soUCxGLDQpLEZ9O1BlPWFwfSk7ZnVuY3Rpb24gckkobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1QsdGhpcy5jb21wb25lbnREYXRhdHlwZT1uLmNvbXBvbmVudERhdGF0eXBlLHRoaXMuY29tcG9uZW50c1BlckF0dHJpYnV0ZT1uLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGUsdGhpcy5ub3JtYWxpemU9bi5ub3JtYWxpemU/PyExLHRoaXMudmFsdWVzPW4udmFsdWVzfXZhciBpZSxZdD1YKCgpPT57c3QoKTtpZT1ySX0pO2Z1bmN0aW9uIGlJKG4pe249bj8/T2UuRU1QVFlfT0JKRUNULHRoaXMucG9zaXRpb249bi5wb3NpdGlvbix0aGlzLm5vcm1hbD1uLm5vcm1hbCx0aGlzLnN0PW4uc3QsdGhpcy5iaXRhbmdlbnQ9bi5iaXRhbmdlbnQsdGhpcy50YW5nZW50PW4udGFuZ2VudCx0aGlzLmNvbG9yPW4uY29sb3J9dmFyIFFlLHJuPVgoKCk9PntzdCgpO1FlPWlJfSk7dmFyIGp0LE13LE53PVgoKCk9Pnt2dCgpO01lKCk7YmEoKTtQZigpO0luKCk7dW4oKTtqdD17U0NBTEFSOiJTQ0FMQVIiLFZFQzI6IlZFQzIiLFZFQzM6IlZFQzMiLFZFQzQ6IlZFQzQiLE1BVDI6Ik1BVDIiLE1BVDM6Ik1BVDMiLE1BVDQ6Ik1BVDQifTtqdC5nZXRNYXRoVHlwZT1mdW5jdGlvbihuKXtzd2l0Y2gobil7Y2FzZSBqdC5TQ0FMQVI6cmV0dXJuIE51bWJlcjtjYXNlIGp0LlZFQzI6cmV0dXJuIFk7Y2FzZSBqdC5WRUMzOnJldHVybiBzO2Nhc2UganQuVkVDNDpyZXR1cm4gcnQ7Y2FzZSBqdC5NQVQyOnJldHVybiBKbztjYXNlIGp0Lk1BVDM6cmV0dXJuIEo7Y2FzZSBqdC5NQVQ0OnJldHVybiAkfX07anQuZ2V0TnVtYmVyT2ZDb21wb25lbnRzPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIGp0LlNDQUxBUjpyZXR1cm4gMTtjYXNlIGp0LlZFQzI6cmV0dXJuIDI7Y2FzZSBqdC5WRUMzOnJldHVybiAzO2Nhc2UganQuVkVDNDpjYXNlIGp0Lk1BVDI6cmV0dXJuIDQ7Y2FzZSBqdC5NQVQzOnJldHVybiA5O2Nhc2UganQuTUFUNDpyZXR1cm4gMTZ9fTtqdC5nZXRBdHRyaWJ1dGVMb2NhdGlvbkNvdW50PWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIGp0LlNDQUxBUjpjYXNlIGp0LlZFQzI6Y2FzZSBqdC5WRUMzOmNhc2UganQuVkVDNDpyZXR1cm4gMTtjYXNlIGp0Lk1BVDI6cmV0dXJuIDI7Y2FzZSBqdC5NQVQzOnJldHVybiAzO2Nhc2UganQuTUFUNDpyZXR1cm4gNH19O2p0LmdldEdsc2xUeXBlPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIGp0LlNDQUxBUjpyZXR1cm4iZmxvYXQiO2Nhc2UganQuVkVDMjpyZXR1cm4idmVjMiI7Y2FzZSBqdC5WRUMzOnJldHVybiJ2ZWMzIjtjYXNlIGp0LlZFQzQ6cmV0dXJuInZlYzQiO2Nhc2UganQuTUFUMjpyZXR1cm4ibWF0MiI7Y2FzZSBqdC5NQVQzOnJldHVybiJtYXQzIjtjYXNlIGp0Lk1BVDQ6cmV0dXJuIm1hdDQifX07T2JqZWN0LmZyZWV6ZShqdCk7TXc9anR9KTtmdW5jdGlvbiBabChuKXtyZXR1cm4gUHdbMF09bixQd1swXX1mdW5jdGlvbiBycChuKXtyZXR1cm4gbj4+MV4tKG4mMSl9dmFyIEl3LGNJLGlwLEp0LGtmLFB3LGNwLFV0LEJyPVgoKCk9Pnt2dCgpO01lKCk7Q3QoKTtzZSgpO1VlKCk7TncoKTtJdz0xLzI1NixjST02NTUzNixpcD0yNTYsSnQ9e307SnQub2N0RW5jb2RlSW5SYW5nZT1mdW5jdGlvbihuLGUsdCl7aWYodC54PW4ueC8oTWF0aC5hYnMobi54KStNYXRoLmFicyhuLnkpK01hdGguYWJzKG4ueikpLHQueT1uLnkvKE1hdGguYWJzKG4ueCkrTWF0aC5hYnMobi55KStNYXRoLmFicyhuLnopKSxuLno8MCl7bGV0IG89dC54LGE9dC55O3QueD0oMS1NYXRoLmFicyhhKSkqay5zaWduTm90WmVybyhvKSx0Lnk9KDEtTWF0aC5hYnMobykpKmsuc2lnbk5vdFplcm8oYSl9cmV0dXJuIHQueD1rLnRvU05vcm0odC54LGUpLHQueT1rLnRvU05vcm0odC55LGUpLHR9O0p0Lm9jdEVuY29kZT1mdW5jdGlvbihuLGUpe3JldHVybiBKdC5vY3RFbmNvZGVJblJhbmdlKG4sMjU1LGUpfTtrZj1uZXcgWSxQdz1uZXcgVWludDhBcnJheSgxKTtKdC5vY3RFbmNvZGVUb0NhcnRlc2lhbjQ9ZnVuY3Rpb24obixlKXtyZXR1cm4gSnQub2N0RW5jb2RlSW5SYW5nZShuLDY1NTM1LGtmKSxlLng9Wmwoa2YueCpJdyksZS55PVpsKGtmLngpLGUuej1abChrZi55Kkl3KSxlLnc9Wmwoa2YueSksZX07SnQub2N0RGVjb2RlSW5SYW5nZT1mdW5jdGlvbihuLGUsdCxvKXtpZihvLng9ay5mcm9tU05vcm0obix0KSxvLnk9ay5mcm9tU05vcm0oZSx0KSxvLno9MS0oTWF0aC5hYnMoby54KStNYXRoLmFicyhvLnkpKSxvLno8MCl7bGV0IGE9by54O28ueD0oMS1NYXRoLmFicyhvLnkpKSprLnNpZ25Ob3RaZXJvKGEpLG8ueT0oMS1NYXRoLmFicyhhKSkqay5zaWduTm90WmVybyhvLnkpfXJldHVybiBzLm5vcm1hbGl6ZShvLG8pfTtKdC5vY3REZWNvZGU9ZnVuY3Rpb24obixlLHQpe3JldHVybiBKdC5vY3REZWNvZGVJblJhbmdlKG4sZSwyNTUsdCl9O0p0Lm9jdERlY29kZUZyb21DYXJ0ZXNpYW40PWZ1bmN0aW9uKG4sZSl7bGV0IHQ9bi54LG89bi55LGE9bi56LHI9bi53LGk9dCppcCtvLGY9YSppcCtyO3JldHVybiBKdC5vY3REZWNvZGVJblJhbmdlKGksZiw2NTUzNSxlKX07SnQub2N0UGFja0Zsb2F0PWZ1bmN0aW9uKG4pe3JldHVybiAyNTYqbi54K24ueX07Y3A9bmV3IFk7SnQub2N0RW5jb2RlRmxvYXQ9ZnVuY3Rpb24obil7cmV0dXJuIEp0Lm9jdEVuY29kZShuLGNwKSxKdC5vY3RQYWNrRmxvYXQoY3ApfTtKdC5vY3REZWNvZGVGbG9hdD1mdW5jdGlvbihuLGUpe2xldCB0PW4vMjU2LG89TWF0aC5mbG9vcih0KSxhPSh0LW8pKjI1NjtyZXR1cm4gSnQub2N0RGVjb2RlKG8sYSxlKX07SnQub2N0UGFjaz1mdW5jdGlvbihuLGUsdCxvKXtsZXQgYT1KdC5vY3RFbmNvZGVGbG9hdChuKSxyPUp0Lm9jdEVuY29kZUZsb2F0KGUpLGk9SnQub2N0RW5jb2RlKHQsY3ApO3JldHVybiBvLng9NjU1MzYqaS54K2Esby55PTY1NTM2KmkueStyLG99O0p0Lm9jdFVucGFjaz1mdW5jdGlvbihuLGUsdCxvKXtsZXQgYT1uLngvNjU1MzYscj1NYXRoLmZsb29yKGEpLGk9KGEtcikqNjU1MzY7YT1uLnkvNjU1MzY7bGV0IGY9TWF0aC5mbG9vcihhKSxkPShhLWYpKjY1NTM2O0p0Lm9jdERlY29kZUZsb2F0KGksZSksSnQub2N0RGVjb2RlRmxvYXQoZCx0KSxKdC5vY3REZWNvZGUocixmLG8pfTtKdC5jb21wcmVzc1RleHR1cmVDb29yZGluYXRlcz1mdW5jdGlvbihuKXtsZXQgZT1uLngqNDA5NXwwLHQ9bi55KjQwOTV8MDtyZXR1cm4gNDA5NiplK3R9O0p0LmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXM9ZnVuY3Rpb24obixlKXtsZXQgdD1uLzQwOTYsbz1NYXRoLmZsb29yKHQpO3JldHVybiBlLng9by80MDk1LGUueT0obi1vKjQwOTYpLzQwOTUsZX07SnQuemlnWmFnRGVsdGFEZWNvZGU9ZnVuY3Rpb24obixlLHQpe2xldCBvPW4ubGVuZ3RoLGE9MCxyPTAsaT0wO2ZvcihsZXQgZj0wO2Y8bzsrK2YpYSs9cnAobltmXSkscis9cnAoZVtmXSksbltmXT1hLGVbZl09cixfKHQpJiYoaSs9cnAodFtmXSksdFtmXT1pKX07SnQuZGVxdWFudGl6ZT1mdW5jdGlvbihuLGUsdCxvKXtsZXQgYT1Ndy5nZXROdW1iZXJPZkNvbXBvbmVudHModCkscjtzd2l0Y2goZSl7Y2FzZSBvZS5CWVRFOnI9MTI3O2JyZWFrO2Nhc2Ugb2UuVU5TSUdORURfQllURTpyPTI1NTticmVhaztjYXNlIG9lLlNIT1JUOnI9MzI3Njc7YnJlYWs7Y2FzZSBvZS5VTlNJR05FRF9TSE9SVDpyPTY1NTM1O2JyZWFrO2Nhc2Ugb2UuSU5UOnI9MjE0NzQ4MzY0NzticmVhaztjYXNlIG9lLlVOU0lHTkVEX0lOVDpyPTQyOTQ5NjcyOTU7YnJlYWt9bGV0IGk9bmV3IEZsb2F0MzJBcnJheShvKmEpO2ZvcihsZXQgZj0wO2Y8bztmKyspZm9yKGxldCBkPTA7ZDxhO2QrKyl7bGV0IGM9ZiphK2Q7aVtjXT1NYXRoLm1heChuW2NdL3IsLTEpfXJldHVybiBpfTtKdC5lbmNvZGVSR0I4PWZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnJvdW5kKGsuY2xhbXAobi5yZWQqMjU1LDAsMjU1KSkqY0krTWF0aC5yb3VuZChrLmNsYW1wKG4uZ3JlZW4qMjU1LDAsMjU1KSkqaXArTWF0aC5yb3VuZChrLmNsYW1wKG4uYmx1ZSoyNTUsMCwyNTUpKX07SnQuZGVjb2RlUkdCOD1mdW5jdGlvbihuLGUpe3JldHVybiBuPU1hdGguZmxvb3IobiksZS5yZWQ9KG4+PjE2JjI1NSkvMjU1LGUuZ3JlZW49KG4+PjgmMjU1KS8yNTUsZS5ibHVlPShuJjI1NSkvMjU1LGV9O0p0LmRlY29kZVJHQjU2NT1mdW5jdGlvbihuLGUpe2xldCB0PW4ubGVuZ3RoO18oZSl8fChlPW5ldyBGbG9hdDMyQXJyYXkodCozKSk7bGV0IG89MzEsYT02MyxyPTEvMzEsaT0xLzYzO2ZvcihsZXQgZj0wO2Y8dDtmKyspe2xldCBkPW5bZl0sYz1kPj4xMSx1PWQ+PjUmYSxsPWQmbyxoPTMqZjtlW2hdPWMqcixlW2grMV09dSppLGVbaCsyXT1sKnJ9cmV0dXJuIGV9O1V0PUp0fSk7ZnVuY3Rpb24gc0kobixlLHQsbyxhKXtfKGEpfHwoYT1uZXcgcyk7bGV0IHIsaSxmLGQsYyx1LGwsaDtpZihfKGUueikpe2lmKHMuZXF1YWxzRXBzaWxvbihuLGUsay5FUFNJTE9OMTQpKXJldHVybiBzLmNsb25lKHMuVU5JVF9YLGEpO2lmKHMuZXF1YWxzRXBzaWxvbihuLHQsay5FUFNJTE9OMTQpKXJldHVybiBzLmNsb25lKHMuVU5JVF9ZLGEpO2lmKHMuZXF1YWxzRXBzaWxvbihuLG8say5FUFNJTE9OMTQpKXJldHVybiBzLmNsb25lKHMuVU5JVF9aLGEpO3I9cy5zdWJ0cmFjdCh0LGUsa3cpLGk9cy5zdWJ0cmFjdChvLGUsdncpLGY9cy5zdWJ0cmFjdChuLGUsRncpLGQ9cy5kb3QocixyKSxjPXMuZG90KHIsaSksdT1zLmRvdChyLGYpLGw9cy5kb3QoaSxpKSxoPXMuZG90KGksZil9ZWxzZXtpZihZLmVxdWFsc0Vwc2lsb24obixlLGsuRVBTSUxPTjE0KSlyZXR1cm4gcy5jbG9uZShzLlVOSVRfWCxhKTtpZihZLmVxdWFsc0Vwc2lsb24obix0LGsuRVBTSUxPTjE0KSlyZXR1cm4gcy5jbG9uZShzLlVOSVRfWSxhKTtpZihZLmVxdWFsc0Vwc2lsb24obixvLGsuRVBTSUxPTjE0KSlyZXR1cm4gcy5jbG9uZShzLlVOSVRfWixhKTtyPVkuc3VidHJhY3QodCxlLGt3KSxpPVkuc3VidHJhY3QobyxlLHZ3KSxmPVkuc3VidHJhY3QobixlLEZ3KSxkPVkuZG90KHIsciksYz1ZLmRvdChyLGkpLHU9WS5kb3QocixmKSxsPVkuZG90KGksaSksaD1ZLmRvdChpLGYpfWEueT1sKnUtYypoLGEuej1kKmgtYyp1O2xldCBtPWQqbC1jKmM7aWYobSE9PTApcmV0dXJuIGEueS89bSxhLnovPW0sYS54PTEtYS55LWEueixhfXZhciBrdyx2dyxGdyxEdyxCdz1YKCgpPT57dnQoKTtNZSgpO3NlKCk7VWUoKTtrdz1uZXcgcyx2dz1uZXcgcyxGdz1uZXcgcztEdz1zSX0pO2Z1bmN0aW9uIGlyKCl7dGhpcy5oaWdoPXMuY2xvbmUocy5aRVJPKSx0aGlzLmxvdz1zLmNsb25lKHMuWkVSTyl9dmFyIGpyLHNwLGFjLGZwPVgoKCk9PntNZSgpO3NlKCk7aXIuZW5jb2RlPWZ1bmN0aW9uKG4sZSl7XyhlKXx8KGU9e2hpZ2g6MCxsb3c6MH0pO2xldCB0O3JldHVybiBuPj0wPyh0PU1hdGguZmxvb3Iobi82NTUzNikqNjU1MzYsZS5oaWdoPXQsZS5sb3c9bi10KToodD1NYXRoLmZsb29yKC1uLzY1NTM2KSo2NTUzNixlLmhpZ2g9LXQsZS5sb3c9bit0KSxlfTtqcj17aGlnaDowLGxvdzowfTtpci5mcm9tQ2FydGVzaWFuPWZ1bmN0aW9uKG4sZSl7XyhlKXx8KGU9bmV3IGlyKTtsZXQgdD1lLmhpZ2gsbz1lLmxvdztyZXR1cm4gaXIuZW5jb2RlKG4ueCxqciksdC54PWpyLmhpZ2gsby54PWpyLmxvdyxpci5lbmNvZGUobi55LGpyKSx0Lnk9anIuaGlnaCxvLnk9anIubG93LGlyLmVuY29kZShuLnosanIpLHQuej1qci5oaWdoLG8uej1qci5sb3csZX07c3A9bmV3IGlyO2lyLndyaXRlRWxlbWVudHM9ZnVuY3Rpb24obixlLHQpe2lyLmZyb21DYXJ0ZXNpYW4obixzcCk7bGV0IG89c3AuaGlnaCxhPXNwLmxvdztlW3RdPW8ueCxlW3QrMV09by55LGVbdCsyXT1vLnosZVt0KzNdPWEueCxlW3QrNF09YS55LGVbdCs1XT1hLnp9O2FjPWlyfSk7dmFyIFpuLEllLFp0PVgoKCk9PntzZSgpO1VlKCk7b2MoKTtabj17VU5TSUdORURfQllURTpOZS5VTlNJR05FRF9CWVRFLFVOU0lHTkVEX1NIT1JUOk5lLlVOU0lHTkVEX1NIT1JULFVOU0lHTkVEX0lOVDpOZS5VTlNJR05FRF9JTlR9O1puLmdldFNpemVJbkJ5dGVzPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIFpuLlVOU0lHTkVEX0JZVEU6cmV0dXJuIFVpbnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBabi5VTlNJR05FRF9TSE9SVDpyZXR1cm4gVWludDE2QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBabi5VTlNJR05FRF9JTlQ6cmV0dXJuIFVpbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UfX07Wm4uZnJvbVNpemVJbkJ5dGVzPWZ1bmN0aW9uKG4pe3N3aXRjaChuKXtjYXNlIDI6cmV0dXJuIFpuLlVOU0lHTkVEX1NIT1JUO2Nhc2UgNDpyZXR1cm4gWm4uVU5TSUdORURfSU5UO2Nhc2UgMTpyZXR1cm4gWm4uVU5TSUdORURfQllURX19O1puLnZhbGlkYXRlPWZ1bmN0aW9uKG4pe3JldHVybiBfKG4pJiYobj09PVpuLlVOU0lHTkVEX0JZVEV8fG49PT1abi5VTlNJR05FRF9TSE9SVHx8bj09PVpuLlVOU0lHTkVEX0lOVCl9O1puLmNyZWF0ZVR5cGVkQXJyYXk9ZnVuY3Rpb24obixlKXtyZXR1cm4gbj49ay5TSVhUWV9GT1VSX0tJTE9CWVRFUz9uZXcgVWludDMyQXJyYXkoZSk6bmV3IFVpbnQxNkFycmF5KGUpfTtabi5jcmVhdGVUeXBlZEFycmF5RnJvbUFycmF5QnVmZmVyPWZ1bmN0aW9uKG4sZSx0LG8pe3JldHVybiBuPj1rLlNJWFRZX0ZPVVJfS0lMT0JZVEVTP25ldyBVaW50MzJBcnJheShlLHQsbyk6bmV3IFVpbnQxNkFycmF5KGUsdCxvKX07Wm4uZnJvbVR5cGVkQXJyYXk9ZnVuY3Rpb24obil7aWYobiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIFpuLlVOU0lHTkVEX0JZVEU7aWYobiBpbnN0YW5jZW9mIFVpbnQxNkFycmF5KXJldHVybiBabi5VTlNJR05FRF9TSE9SVDtpZihuIGluc3RhbmNlb2YgVWludDMyQXJyYXkpcmV0dXJuIFpuLlVOU0lHTkVEX0lOVH07T2JqZWN0LmZyZWV6ZShabik7SWU9Wm59KTtmdW5jdGlvbiBqdyhuLGUsdCl7bGV0IG89bitlO3JldHVybiBrLnNpZ24obikhPT1rLnNpZ24oZSkmJk1hdGguYWJzKG8vTWF0aC5tYXgoTWF0aC5hYnMobiksTWF0aC5hYnMoZSkpKTx0PzA6b312YXIgZHAsVGEsUWw9WCgoKT0+e1VlKCk7ZHA9e307ZHAuY29tcHV0ZURpc2NyaW1pbmFudD1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIGUqZS00Km4qdH07ZHAuY29tcHV0ZVJlYWxSb290cz1mdW5jdGlvbihuLGUsdCl7bGV0IG87aWYobj09PTApcmV0dXJuIGU9PT0wP1tdOlstdC9lXTtpZihlPT09MCl7aWYodD09PTApcmV0dXJuWzAsMF07bGV0IGQ9TWF0aC5hYnModCksYz1NYXRoLmFicyhuKTtpZihkPGMmJmQvYzxrLkVQU0lMT04xNClyZXR1cm5bMCwwXTtpZihkPmMmJmMvZDxrLkVQU0lMT04xNClyZXR1cm5bXTtpZihvPS10L24sbzwwKXJldHVybltdO2xldCB1PU1hdGguc3FydChvKTtyZXR1cm5bLXUsdV19ZWxzZSBpZih0PT09MClyZXR1cm4gbz0tZS9uLG88MD9bbywwXTpbMCxvXTtsZXQgYT1lKmUscj00Km4qdCxpPWp3KGEsLXIsay5FUFNJTE9OMTQpO2lmKGk8MClyZXR1cm5bXTtsZXQgZj0tLjUqancoZSxrLnNpZ24oZSkqTWF0aC5zcXJ0KGkpLGsuRVBTSUxPTjE0KTtyZXR1cm4gZT4wP1tmL24sdC9mXTpbdC9mLGYvbl19O1RhPWRwfSk7ZnVuY3Rpb24gdXAobixlLHQsbyl7bGV0IGE9bixyPWUvMyxpPXQvMyxmPW8sZD1hKmksYz1yKmYsdT1yKnIsbD1pKmksaD1hKmktdSxtPWEqZi1yKmksYj1yKmYtbCxwPTQqaCpiLW0qbSx5LEU7aWYocDwwKXtsZXQgTyxaLGFlO3UqYz49ZCpsPyhPPWEsWj1oLGFlPS0yKnIqaCthKm0pOihPPWYsWj1iLGFlPS1mKm0rMippKmIpO2xldCBmZT0tKGFlPDA/LTE6MSkqTWF0aC5hYnMoTykqTWF0aC5zcXJ0KC1wKTtFPS1hZStmZTtsZXQgdGU9RS8yLG1lPXRlPDA/LU1hdGgucG93KC10ZSwxLzMpOk1hdGgucG93KHRlLDEvMyksdWU9RT09PWZlPy1tZTotWi9tZTtyZXR1cm4geT1aPD0wP21lK3VlOi1hZS8obWUqbWUrdWUqdWUrWiksdSpjPj1kKmw/Wyh5LXIpL2FdOlstZi8oeStpKV19bGV0IGc9aCxBPS0yKnIqaCthKm0sVD1iLFI9LWYqbSsyKmkqYixTPU1hdGguc3FydChwKSxNPU1hdGguc3FydCgzKS8yLEk9TWF0aC5hYnMoTWF0aC5hdGFuMihhKlMsLUEpLzMpO3k9MipNYXRoLnNxcnQoLWcpO2xldCBOPU1hdGguY29zKEkpO0U9eSpOO2xldCBQPXkqKC1OLzItTSpNYXRoLnNpbihJKSksRj1FK1A+MipyP0UtcjpQLXIsdz1hLHg9Ri93O0k9TWF0aC5hYnMoTWF0aC5hdGFuMihmKlMsLVIpLzMpLHk9MipNYXRoLnNxcnQoLVQpLE49TWF0aC5jb3MoSSksRT15Kk4sUD15KigtTi8yLU0qTWF0aC5zaW4oSSkpO2xldCBDPS1mLHY9RStQPDIqaT9FK2k6UCtpLGo9Qy92LHo9dyp2LEQ9LUYqdi13KkMsRz1GKkMsVj0oaSpELXIqRykvKC1yKkQraSp6KTtyZXR1cm4geDw9Vj94PD1qP1Y8PWo/W3gsVixqXTpbeCxqLFZdOltqLHgsVl06eDw9aj9bVix4LGpdOlY8PWo/W1Ysaix4XTpbaixWLHhdfXZhciBscCwkbCxVdz1YKCgpPT57UWwoKTtscD17fTtscC5jb21wdXRlRGlzY3JpbWluYW50PWZ1bmN0aW9uKG4sZSx0LG8pe2xldCBhPW4qbixyPWUqZSxpPXQqdCxmPW8qbztyZXR1cm4gMTgqbiplKnQqbytyKmktMjcqYSpmLTQqKG4qaSp0K3IqZSpvKX07bHAuY29tcHV0ZVJlYWxSb290cz1mdW5jdGlvbihuLGUsdCxvKXtsZXQgYSxyO2lmKG49PT0wKXJldHVybiBUYS5jb21wdXRlUmVhbFJvb3RzKGUsdCxvKTtpZihlPT09MCl7aWYodD09PTApe2lmKG89PT0wKXJldHVyblswLDAsMF07cj0tby9uO2xldCBpPXI8MD8tTWF0aC5wb3coLXIsMS8zKTpNYXRoLnBvdyhyLDEvMyk7cmV0dXJuW2ksaSxpXX1lbHNlIGlmKG89PT0wKXJldHVybiBhPVRhLmNvbXB1dGVSZWFsUm9vdHMobiwwLHQpLGEuTGVuZ3RoPT09MD9bMF06W2FbMF0sMCxhWzFdXTtyZXR1cm4gdXAobiwwLHQsbyl9ZWxzZXtpZih0PT09MClyZXR1cm4gbz09PTA/KHI9LWUvbixyPDA/W3IsMCwwXTpbMCwwLHJdKTp1cChuLGUsMCxvKTtpZihvPT09MClyZXR1cm4gYT1UYS5jb21wdXRlUmVhbFJvb3RzKG4sZSx0KSxhLmxlbmd0aD09PTA/WzBdOmFbMV08PTA/W2FbMF0sYVsxXSwwXTphWzBdPj0wP1swLGFbMF0sYVsxXV06W2FbMF0sMCxhWzFdXX1yZXR1cm4gdXAobixlLHQsbyl9OyRsPWxwfSk7ZnVuY3Rpb24gVWEobixlLHQsbyl7bGV0IGE9bipuLHI9ZS0zKmEvOCxpPXQtZSpuLzIrYSpuLzgsZj1vLXQqbi80K2UqYS8xNi0zKmEqYS8yNTYsZD0kbC5jb21wdXRlUmVhbFJvb3RzKDEsMipyLHIqci00KmYsLWkqaSk7aWYoZC5sZW5ndGg+MCl7bGV0IGM9LW4vNCx1PWRbZC5sZW5ndGgtMV07aWYoTWF0aC5hYnModSk8ay5FUFNJTE9OMTQpe2xldCBsPVRhLmNvbXB1dGVSZWFsUm9vdHMoMSxyLGYpO2lmKGwubGVuZ3RoPT09Mil7bGV0IGg9bFswXSxtPWxbMV0sYjtpZihoPj0wJiZtPj0wKXtsZXQgcD1NYXRoLnNxcnQoaCkseT1NYXRoLnNxcnQobSk7cmV0dXJuW2MteSxjLXAsYytwLGMreV19ZWxzZXtpZihoPj0wJiZtPDApcmV0dXJuIGI9TWF0aC5zcXJ0KGgpLFtjLWIsYytiXTtpZihoPDAmJm0+PTApcmV0dXJuIGI9TWF0aC5zcXJ0KG0pLFtjLWIsYytiXX19cmV0dXJuW119ZWxzZSBpZih1PjApe2xldCBsPU1hdGguc3FydCh1KSxoPShyK3UtaS9sKS8yLG09KHIrdStpL2wpLzIsYj1UYS5jb21wdXRlUmVhbFJvb3RzKDEsbCxoKSxwPVRhLmNvbXB1dGVSZWFsUm9vdHMoMSwtbCxtKTtyZXR1cm4gYi5sZW5ndGghPT0wPyhiWzBdKz1jLGJbMV0rPWMscC5sZW5ndGghPT0wPyhwWzBdKz1jLHBbMV0rPWMsYlsxXTw9cFswXT9bYlswXSxiWzFdLHBbMF0scFsxXV06cFsxXTw9YlswXT9bcFswXSxwWzFdLGJbMF0sYlsxXV06YlswXT49cFswXSYmYlsxXTw9cFsxXT9bcFswXSxiWzBdLGJbMV0scFsxXV06cFswXT49YlswXSYmcFsxXTw9YlsxXT9bYlswXSxwWzBdLHBbMV0sYlsxXV06YlswXT5wWzBdJiZiWzBdPHBbMV0/W3BbMF0sYlswXSxwWzFdLGJbMV1dOltiWzBdLHBbMF0sYlsxXSxwWzFdXSk6Yik6cC5sZW5ndGghPT0wPyhwWzBdKz1jLHBbMV0rPWMscCk6W119fXJldHVybltdfWZ1bmN0aW9uIHZmKG4sZSx0LG8pe2xldCBhPXQqdCxyPWUqZSxpPW4qbixmPS0yKmUsZD10Km4rci00Km8sYz1pKm8tdCplKm4rYSx1PSRsLmNvbXB1dGVSZWFsUm9vdHMoMSxmLGQsYyk7aWYodS5sZW5ndGg+MCl7bGV0IGw9dVswXSxoPWUtbCxtPWgqaCxiPW4vMixwPWgvMix5PW0tNCpvLEU9bSs0Kk1hdGguYWJzKG8pLGc9aS00KmwsQT1pKzQqTWF0aC5hYnMobCksVCxSO2lmKGw8MHx8eSpBPGcqRSl7bGV0IHc9TWF0aC5zcXJ0KGcpO1Q9dy8yLFI9dz09PTA/MDoobipwLXQpL3d9ZWxzZXtsZXQgdz1NYXRoLnNxcnQoeSk7VD13PT09MD8wOihuKnAtdCkvdyxSPXcvMn1sZXQgUyxNO2I9PT0wJiZUPT09MD8oUz0wLE09MCk6ay5zaWduKGIpPT09ay5zaWduKFQpPyhTPWIrVCxNPWwvUyk6KE09Yi1ULFM9bC9NKTtsZXQgSSxOO3A9PT0wJiZSPT09MD8oST0wLE49MCk6ay5zaWduKHApPT09ay5zaWduKFIpPyhJPXArUixOPW8vSSk6KE49cC1SLEk9by9OKTtsZXQgUD1UYS5jb21wdXRlUmVhbFJvb3RzKDEsUyxJKSxGPVRhLmNvbXB1dGVSZWFsUm9vdHMoMSxNLE4pO2lmKFAubGVuZ3RoIT09MClyZXR1cm4gRi5sZW5ndGghPT0wP1BbMV08PUZbMF0/W1BbMF0sUFsxXSxGWzBdLEZbMV1dOkZbMV08PVBbMF0/W0ZbMF0sRlsxXSxQWzBdLFBbMV1dOlBbMF0+PUZbMF0mJlBbMV08PUZbMV0/W0ZbMF0sUFswXSxQWzFdLEZbMV1dOkZbMF0+PVBbMF0mJkZbMV08PVBbMV0/W1BbMF0sRlswXSxGWzFdLFBbMV1dOlBbMF0+RlswXSYmUFswXTxGWzFdP1tGWzBdLFBbMF0sRlsxXSxQWzFdXTpbUFswXSxGWzBdLFBbMV0sRlsxXV06UDtpZihGLmxlbmd0aCE9PTApcmV0dXJuIEZ9cmV0dXJuW119dmFyIGhwLEx3LHp3PVgoKCk9PntVdygpO1VlKCk7UWwoKTtocD17fTtocC5jb21wdXRlRGlzY3JpbWluYW50PWZ1bmN0aW9uKG4sZSx0LG8sYSl7bGV0IHI9bipuLGk9cipuLGY9ZSplLGQ9ZiplLGM9dCp0LHU9Yyp0LGw9bypvLGg9bCpvLG09YSphLGI9bSphO3JldHVybiBmKmMqbC00KmQqaC00Km4qdSpsKzE4Km4qZSp0KmgtMjcqcipsKmwrMjU2KmkqYithKigxOCpkKnQqby00KmYqdSsxNipuKmMqYy04MCpuKmUqYypvLTYqbipmKmwrMTQ0KnIqdCpsKSttKigxNDQqbipmKnQtMjcqZipmLTEyOCpyKmMtMTkyKnIqZSpvKX07aHAuY29tcHV0ZVJlYWxSb290cz1mdW5jdGlvbihuLGUsdCxvLGEpe2lmKE1hdGguYWJzKG4pPGsuRVBTSUxPTjE1KXJldHVybiAkbC5jb21wdXRlUmVhbFJvb3RzKGUsdCxvLGEpO2xldCByPWUvbixpPXQvbixmPW8vbixkPWEvbixjPXI8MD8xOjA7c3dpdGNoKGMrPWk8MD9jKzE6YyxjKz1mPDA/YysxOmMsYys9ZDwwP2MrMTpjLGMpe2Nhc2UgMDpyZXR1cm4gVWEocixpLGYsZCk7Y2FzZSAxOnJldHVybiB2ZihyLGksZixkKTtjYXNlIDI6cmV0dXJuIHZmKHIsaSxmLGQpO2Nhc2UgMzpyZXR1cm4gVWEocixpLGYsZCk7Y2FzZSA0OnJldHVybiBVYShyLGksZixkKTtjYXNlIDU6cmV0dXJuIHZmKHIsaSxmLGQpO2Nhc2UgNjpyZXR1cm4gVWEocixpLGYsZCk7Y2FzZSA3OnJldHVybiBVYShyLGksZixkKTtjYXNlIDg6cmV0dXJuIHZmKHIsaSxmLGQpO2Nhc2UgOTpyZXR1cm4gVWEocixpLGYsZCk7Y2FzZSAxMDpyZXR1cm4gVWEocixpLGYsZCk7Y2FzZSAxMTpyZXR1cm4gdmYocixpLGYsZCk7Y2FzZSAxMjpyZXR1cm4gVWEocixpLGYsZCk7Y2FzZSAxMzpyZXR1cm4gVWEocixpLGYsZCk7Y2FzZSAxNDpyZXR1cm4gVWEocixpLGYsZCk7Y2FzZSAxNTpyZXR1cm4gVWEocixpLGYsZCk7ZGVmYXVsdDpyZXR1cm59fTtMdz1ocH0pO3ZhciBtcCxjcixGZj1YKCgpPT57TWUoKTtzZSgpO21wPWNsYXNzIG57Y29uc3RydWN0b3IoZSx0KXt0PXMuY2xvbmUodD8/cy5aRVJPKSxzLmVxdWFscyh0LHMuWkVSTyl8fHMubm9ybWFsaXplKHQsdCksdGhpcy5vcmlnaW49cy5jbG9uZShlPz9zLlpFUk8pLHRoaXMuZGlyZWN0aW9uPXR9c3RhdGljIGNsb25lKGUsdCl7aWYoXyhlKSlyZXR1cm4gXyh0KT8odC5vcmlnaW49cy5jbG9uZShlLm9yaWdpbiksdC5kaXJlY3Rpb249cy5jbG9uZShlLmRpcmVjdGlvbiksdCk6bmV3IG4oZS5vcmlnaW4sZS5kaXJlY3Rpb24pfXN0YXRpYyBnZXRQb2ludChlLHQsbyl7cmV0dXJuIF8obyl8fChvPW5ldyBzKSxvPXMubXVsdGlwbHlCeVNjYWxhcihlLmRpcmVjdGlvbix0LG8pLHMuYWRkKGUub3JpZ2luLG8sbyl9fSxjcj1tcH0pO2Z1bmN0aW9uIGxJKG4sZSx0LG8pe2xldCBhPWUqZS00Km4qdDtpZihhPDApcmV0dXJuO2lmKGE+MCl7bGV0IGk9MS8oMipuKSxmPU1hdGguc3FydChhKSxkPSgtZStmKSppLGM9KC1lLWYpKmk7cmV0dXJuIGQ8Yz8oby5yb290MD1kLG8ucm9vdDE9Yyk6KG8ucm9vdDA9YyxvLnJvb3QxPWQpLG99bGV0IHI9LWUvKDIqbik7aWYociE9PTApcmV0dXJuIG8ucm9vdDA9by5yb290MT1yLG99ZnVuY3Rpb24gSncobixlLHQpe18odCl8fCh0PW5ldyBfbyk7bGV0IG89bi5vcmlnaW4sYT1uLmRpcmVjdGlvbixyPWUuY2VudGVyLGk9ZS5yYWRpdXMqZS5yYWRpdXMsZj1zLnN1YnRyYWN0KG8scixZdyksZD1zLmRvdChhLGEpLGM9MipzLmRvdChhLGYpLHU9cy5tYWduaXR1ZGVTcXVhcmVkKGYpLWksbD1sSShkLGMsdSxoSSk7aWYoXyhsKSlyZXR1cm4gdC5zdGFydD1sLnJvb3QwLHQuc3RvcD1sLnJvb3QxLHR9ZnVuY3Rpb24gYnAobixlLHQsbyxhKXtpZihhLnN0YXJ0PSh0LW4pL2UsYS5zdG9wPShvLW4pL2UsYS5zdG9wPGEuc3RhcnQpe2xldCByPWEuc3RvcDthLnN0b3A9YS5zdGFydCxhLnN0YXJ0PXJ9cmV0dXJuIGF9ZnVuY3Rpb24gcmMobixlLHQpe2xldCBvPW4rZTtyZXR1cm4gay5zaWduKG4pIT09ay5zaWduKGUpJiZNYXRoLmFicyhvL01hdGgubWF4KE1hdGguYWJzKG4pLE1hdGguYWJzKGUpKSk8dD8wOm99dmFyIGNuLGZJLGRJLFl3LEd3LFZ3LHVJLGhJLG1JLGJJLHBJLGdJLF9JLHlJLHBwLEh3LEt3LGVoLEFJLHdJLFRJLEVJLFJJLHhJLHF3LFd3LFh3LE9JLFNJLENJLFFuLGJpPVgoKCk9PntNZSgpO2d0KCk7c2UoKTtnZigpO1VlKCk7SW4oKTtRbCgpO3p3KCk7RmYoKTtjbj17fTtjbi5yYXlQbGFuZT1mdW5jdGlvbihuLGUsdCl7Xyh0KXx8KHQ9bmV3IHMpO2xldCBvPW4ub3JpZ2luLGE9bi5kaXJlY3Rpb24scj1lLm5vcm1hbCxpPXMuZG90KHIsYSk7aWYoTWF0aC5hYnMoaSk8ay5FUFNJTE9OMTUpcmV0dXJuO2xldCBmPSgtZS5kaXN0YW5jZS1zLmRvdChyLG8pKS9pO2lmKCEoZjwwKSlyZXR1cm4gdD1zLm11bHRpcGx5QnlTY2FsYXIoYSxmLHQpLHMuYWRkKG8sdCx0KX07Zkk9bmV3IHMsZEk9bmV3IHMsWXc9bmV3IHMsR3c9bmV3IHMsVnc9bmV3IHM7Y24ucmF5VHJpYW5nbGVQYXJhbWV0cmljPWZ1bmN0aW9uKG4sZSx0LG8sYSl7YT1hPz8hMTtsZXQgcj1uLm9yaWdpbixpPW4uZGlyZWN0aW9uLGY9cy5zdWJ0cmFjdCh0LGUsZkkpLGQ9cy5zdWJ0cmFjdChvLGUsZEkpLGM9cy5jcm9zcyhpLGQsWXcpLHU9cy5kb3QoZixjKSxsLGgsbSxiLHA7aWYoYSl7aWYodTxrLkVQU0lMT042fHwobD1zLnN1YnRyYWN0KHIsZSxHdyksbT1zLmRvdChsLGMpLG08MHx8bT51KXx8KGg9cy5jcm9zcyhsLGYsVncpLGI9cy5kb3QoaSxoKSxiPDB8fG0rYj51KSlyZXR1cm47cD1zLmRvdChkLGgpL3V9ZWxzZXtpZihNYXRoLmFicyh1KTxrLkVQU0lMT042KXJldHVybjtsZXQgeT0xL3U7aWYobD1zLnN1YnRyYWN0KHIsZSxHdyksbT1zLmRvdChsLGMpKnksbTwwfHxtPjF8fChoPXMuY3Jvc3MobCxmLFZ3KSxiPXMuZG90KGksaCkqeSxiPDB8fG0rYj4xKSlyZXR1cm47cD1zLmRvdChkLGgpKnl9cmV0dXJuIHB9O2NuLnJheVRyaWFuZ2xlPWZ1bmN0aW9uKG4sZSx0LG8sYSxyKXtsZXQgaT1jbi5yYXlUcmlhbmdsZVBhcmFtZXRyaWMobixlLHQsbyxhKTtpZighKCFfKGkpfHxpPDApKXJldHVybiBfKHIpfHwocj1uZXcgcykscy5tdWx0aXBseUJ5U2NhbGFyKG4uZGlyZWN0aW9uLGkscikscy5hZGQobi5vcmlnaW4scixyKX07dUk9bmV3IGNyO2NuLmxpbmVTZWdtZW50VHJpYW5nbGU9ZnVuY3Rpb24obixlLHQsbyxhLHIsaSl7bGV0IGY9dUk7cy5jbG9uZShuLGYub3JpZ2luKSxzLnN1YnRyYWN0KGUsbixmLmRpcmVjdGlvbikscy5ub3JtYWxpemUoZi5kaXJlY3Rpb24sZi5kaXJlY3Rpb24pO2xldCBkPWNuLnJheVRyaWFuZ2xlUGFyYW1ldHJpYyhmLHQsbyxhLHIpO2lmKCEoIV8oZCl8fGQ8MHx8ZD5zLmRpc3RhbmNlKG4sZSkpKXJldHVybiBfKGkpfHwoaT1uZXcgcykscy5tdWx0aXBseUJ5U2NhbGFyKGYuZGlyZWN0aW9uLGQsaSkscy5hZGQoZi5vcmlnaW4saSxpKX07aEk9e3Jvb3QwOjAscm9vdDE6MH07Y24ucmF5U3BoZXJlPWZ1bmN0aW9uKG4sZSx0KXtpZih0PUp3KG4sZSx0KSwhKCFfKHQpfHx0LnN0b3A8MCkpcmV0dXJuIHQuc3RhcnQ9TWF0aC5tYXgodC5zdGFydCwwKSx0fTttST1uZXcgY3I7Y24ubGluZVNlZ21lbnRTcGhlcmU9ZnVuY3Rpb24obixlLHQsbyl7bGV0IGE9bUk7cy5jbG9uZShuLGEub3JpZ2luKTtsZXQgcj1zLnN1YnRyYWN0KGUsbixhLmRpcmVjdGlvbiksaT1zLm1hZ25pdHVkZShyKTtpZihzLm5vcm1hbGl6ZShyLHIpLG89SncoYSx0LG8pLCEoIV8obyl8fG8uc3RvcDwwfHxvLnN0YXJ0PmkpKXJldHVybiBvLnN0YXJ0PU1hdGgubWF4KG8uc3RhcnQsMCksby5zdG9wPU1hdGgubWluKG8uc3RvcCxpKSxvfTtiST1uZXcgcyxwST1uZXcgcztjbi5yYXlFbGxpcHNvaWQ9ZnVuY3Rpb24obixlKXtsZXQgdD1lLm9uZU92ZXJSYWRpaSxvPXMubXVsdGlwbHlDb21wb25lbnRzKHQsbi5vcmlnaW4sYkkpLGE9cy5tdWx0aXBseUNvbXBvbmVudHModCxuLmRpcmVjdGlvbixwSSkscj1zLm1hZ25pdHVkZVNxdWFyZWQobyksaT1zLmRvdChvLGEpLGYsZCxjLHUsbDtpZihyPjEpe2lmKGk+PTApcmV0dXJuO2xldCBoPWkqaTtpZihmPXItMSxkPXMubWFnbml0dWRlU3F1YXJlZChhKSxjPWQqZixoPGMpcmV0dXJuO2lmKGg+Yyl7dT1pKmktYyxsPS1pK01hdGguc3FydCh1KTtsZXQgYj1sL2QscD1mL2w7cmV0dXJuIGI8cD9uZXcgX28oYixwKTp7c3RhcnQ6cCxzdG9wOmJ9fWxldCBtPU1hdGguc3FydChmL2QpO3JldHVybiBuZXcgX28obSxtKX1lbHNlIGlmKHI8MSlyZXR1cm4gZj1yLTEsZD1zLm1hZ25pdHVkZVNxdWFyZWQoYSksYz1kKmYsdT1pKmktYyxsPS1pK01hdGguc3FydCh1KSxuZXcgX28oMCxsL2QpO2lmKGk8MClyZXR1cm4gZD1zLm1hZ25pdHVkZVNxdWFyZWQoYSksbmV3IF9vKDAsLWkvZCl9O2dJPW5ldyBfbyxfST1uZXcgX28seUk9bmV3IF9vO2NuLnJheUF4aXNBbGlnbmVkQm91bmRpbmdCb3g9ZnVuY3Rpb24obixlLHQpe18odCl8fCh0PW5ldyBfbyk7bGV0IG89YnAobi5vcmlnaW4ueCxuLmRpcmVjdGlvbi54LGUubWluaW11bS54LGUubWF4aW11bS54LGdJKSxhPWJwKG4ub3JpZ2luLnksbi5kaXJlY3Rpb24ueSxlLm1pbmltdW0ueSxlLm1heGltdW0ueSxfSSkscj1icChuLm9yaWdpbi56LG4uZGlyZWN0aW9uLnosZS5taW5pbXVtLnosZS5tYXhpbXVtLnoseUkpO2lmKHQuc3RhcnQ9by5zdGFydD5hLnN0YXJ0P28uc3RhcnQ6YS5zdGFydCx0LnN0b3A9by5zdG9wPGEuc3RvcD9vLnN0b3A6YS5zdG9wLCEoby5zdGFydD5hLnN0b3B8fGEuc3RhcnQ+by5zdG9wKSYmISh0LnN0YXJ0PnIuc3RvcHx8ci5zdGFydD50LnN0b3ApKXJldHVybiByLnN0YXJ0PnQuc3RhcnQmJih0LnN0YXJ0PXIuc3RhcnQpLHIuc3RvcDx0LnN0b3AmJih0LnN0b3A9ci5zdG9wKSx0fTtjbi5xdWFkcmF0aWNWZWN0b3JFeHByZXNzaW9uPWZ1bmN0aW9uKG4sZSx0LG8sYSl7bGV0IHI9bypvLGk9YSphLGY9KG5bSi5DT0xVTU4xUk9XMV0tbltKLkNPTFVNTjJST1cyXSkqaSxkPWEqKG8qcmMobltKLkNPTFVNTjFST1cwXSxuW0ouQ09MVU1OMFJPVzFdLGsuRVBTSUxPTjE1KStlLnkpLGM9bltKLkNPTFVNTjBST1cwXSpyK25bSi5DT0xVTU4yUk9XMl0qaStvKmUueCt0LHU9aSpyYyhuW0ouQ09MVU1OMlJPVzFdLG5bSi5DT0xVTU4xUk9XMl0say5FUFNJTE9OMTUpLGw9YSoobypyYyhuW0ouQ09MVU1OMlJPVzBdLG5bSi5DT0xVTU4wUk9XMl0pK2UueiksaCxtPVtdO2lmKGw9PT0wJiZ1PT09MCl7aWYoaD1UYS5jb21wdXRlUmVhbFJvb3RzKGYsZCxjKSxoLmxlbmd0aD09PTApcmV0dXJuIG07bGV0IEk9aFswXSxOPU1hdGguc3FydChNYXRoLm1heCgxLUkqSSwwKSk7aWYobS5wdXNoKG5ldyBzKG8sYSpJLGEqLU4pKSxtLnB1c2gobmV3IHMobyxhKkksYSpOKSksaC5sZW5ndGg9PT0yKXtsZXQgUD1oWzFdLEY9TWF0aC5zcXJ0KE1hdGgubWF4KDEtUCpQLDApKTttLnB1c2gobmV3IHMobyxhKlAsYSotRikpLG0ucHVzaChuZXcgcyhvLGEqUCxhKkYpKX1yZXR1cm4gbX1sZXQgYj1sKmwscD11KnUseT1mKmYsRT1sKnUsZz15K3AsQT0yKihkKmYrRSksVD0yKmMqZitkKmQtcCtiLFI9MiooYypkLUUpLFM9YypjLWI7aWYoZz09PTAmJkE9PT0wJiZUPT09MCYmUj09PTApcmV0dXJuIG07aD1Mdy5jb21wdXRlUmVhbFJvb3RzKGcsQSxULFIsUyk7bGV0IE09aC5sZW5ndGg7aWYoTT09PTApcmV0dXJuIG07Zm9yKGxldCBJPTA7STxNOysrSSl7bGV0IE49aFtJXSxQPU4qTixGPU1hdGgubWF4KDEtUCwwKSx3PU1hdGguc3FydChGKSx4O2suc2lnbihmKT09PWsuc2lnbihjKT94PXJjKGYqUCtjLGQqTixrLkVQU0lMT04xMik6ay5zaWduKGMpPT09ay5zaWduKGQqTik/eD1yYyhmKlAsZCpOK2Msay5FUFNJTE9OMTIpOng9cmMoZipQK2QqTixjLGsuRVBTSUxPTjEyKTtsZXQgQz1yYyh1Kk4sbCxrLkVQU0lMT04xNSksdj14KkM7djwwP20ucHVzaChuZXcgcyhvLGEqTixhKncpKTp2PjA/bS5wdXNoKG5ldyBzKG8sYSpOLGEqLXcpKTp3IT09MD8obS5wdXNoKG5ldyBzKG8sYSpOLGEqLXcpKSxtLnB1c2gobmV3IHMobyxhKk4sYSp3KSksKytJKTptLnB1c2gobmV3IHMobyxhKk4sYSp3KSl9cmV0dXJuIG19O3BwPW5ldyBzLEh3PW5ldyBzLEt3PW5ldyBzLGVoPW5ldyBzLEFJPW5ldyBzLHdJPW5ldyBKLFRJPW5ldyBKLEVJPW5ldyBKLFJJPW5ldyBKLHhJPW5ldyBKLHF3PW5ldyBKLFd3PW5ldyBKLFh3PW5ldyBzLE9JPW5ldyBzLFNJPW5ldyByZTtjbi5ncmF6aW5nQWx0aXR1ZGVMb2NhdGlvbj1mdW5jdGlvbihuLGUpe2xldCB0PW4ub3JpZ2luLG89bi5kaXJlY3Rpb247aWYoIXMuZXF1YWxzKHQscy5aRVJPKSl7bGV0IFM9ZS5nZW9kZXRpY1N1cmZhY2VOb3JtYWwodCxwcCk7aWYocy5kb3QobyxTKT49MClyZXR1cm4gdH1sZXQgYT1fKHRoaXMucmF5RWxsaXBzb2lkKG4sZSkpLHI9ZS50cmFuc2Zvcm1Qb3NpdGlvblRvU2NhbGVkU3BhY2UobyxwcCksaT1zLm5vcm1hbGl6ZShyLHIpLGY9cy5tb3N0T3J0aG9nb25hbEF4aXMocixlaCksZD1zLm5vcm1hbGl6ZShzLmNyb3NzKGYsaSxIdyksSHcpLGM9cy5ub3JtYWxpemUocy5jcm9zcyhpLGQsS3cpLEt3KSx1PXdJO3VbMF09aS54LHVbMV09aS55LHVbMl09aS56LHVbM109ZC54LHVbNF09ZC55LHVbNV09ZC56LHVbNl09Yy54LHVbN109Yy55LHVbOF09Yy56O2xldCBsPUoudHJhbnNwb3NlKHUsVEkpLGg9Si5mcm9tU2NhbGUoZS5yYWRpaSxFSSksbT1KLmZyb21TY2FsZShlLm9uZU92ZXJSYWRpaSxSSSksYj14STtiWzBdPTAsYlsxXT0tby56LGJbMl09by55LGJbM109by56LGJbNF09MCxiWzVdPS1vLngsYls2XT0tby55LGJbN109by54LGJbOF09MDtsZXQgcD1KLm11bHRpcGx5KEoubXVsdGlwbHkobCxtLHF3KSxiLHF3KSx5PUoubXVsdGlwbHkoSi5tdWx0aXBseShwLGgsV3cpLHUsV3cpLEU9Si5tdWx0aXBseUJ5VmVjdG9yKHAsdCxBSSksZz1jbi5xdWFkcmF0aWNWZWN0b3JFeHByZXNzaW9uKHkscy5uZWdhdGUoRSxwcCksMCwwLDEpLEEsVCxSPWcubGVuZ3RoO2lmKFI+MCl7bGV0IFM9cy5jbG9uZShzLlpFUk8sT0kpLE09TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2ZvcihsZXQgTj0wO048UjsrK04pe0E9Si5tdWx0aXBseUJ5VmVjdG9yKGgsSi5tdWx0aXBseUJ5VmVjdG9yKHUsZ1tOXSxYdyksWHcpO2xldCBQPXMubm9ybWFsaXplKHMuc3VidHJhY3QoQSx0LGVoKSxlaCksRj1zLmRvdChQLG8pO0Y+TSYmKE09RixTPXMuY2xvbmUoQSxTKSl9bGV0IEk9ZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhTLFNJKTtyZXR1cm4gTT1rLmNsYW1wKE0sMCwxKSxUPXMubWFnbml0dWRlKHMuc3VidHJhY3QoUyx0LGVoKSkqTWF0aC5zcXJ0KDEtTSpNKSxUPWE/LVQ6VCxJLmhlaWdodD1ULGUuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oSSxuZXcgcyl9fTtDST1uZXcgcztjbi5saW5lU2VnbWVudFBsYW5lPWZ1bmN0aW9uKG4sZSx0LG8pe18obyl8fChvPW5ldyBzKTtsZXQgYT1zLnN1YnRyYWN0KGUsbixDSSkscj10Lm5vcm1hbCxpPXMuZG90KHIsYSk7aWYoTWF0aC5hYnMoaSk8ay5FUFNJTE9ONilyZXR1cm47bGV0IGY9cy5kb3QocixuKSxkPS0odC5kaXN0YW5jZStmKS9pO2lmKCEoZDwwfHxkPjEpKXJldHVybiBzLm11bHRpcGx5QnlTY2FsYXIoYSxkLG8pLHMuYWRkKG4sbyxvKSxvfTtjbi50cmlhbmdsZVBsYW5lSW50ZXJzZWN0aW9uPWZ1bmN0aW9uKG4sZSx0LG8pe2xldCBhPW8ubm9ybWFsLHI9by5kaXN0YW5jZSxpPXMuZG90KGEsbikrcjwwLGY9cy5kb3QoYSxlKStyPDAsZD1zLmRvdChhLHQpK3I8MCxjPTA7Yys9aT8xOjAsYys9Zj8xOjAsYys9ZD8xOjA7bGV0IHUsbDtpZigoYz09PTF8fGM9PT0yKSYmKHU9bmV3IHMsbD1uZXcgcyksYz09PTEpe2lmKGkpcmV0dXJuIGNuLmxpbmVTZWdtZW50UGxhbmUobixlLG8sdSksY24ubGluZVNlZ21lbnRQbGFuZShuLHQsbyxsKSx7cG9zaXRpb25zOltuLGUsdCx1LGxdLGluZGljZXM6WzAsMyw0LDEsMiw0LDEsNCwzXX07aWYoZilyZXR1cm4gY24ubGluZVNlZ21lbnRQbGFuZShlLHQsbyx1KSxjbi5saW5lU2VnbWVudFBsYW5lKGUsbixvLGwpLHtwb3NpdGlvbnM6W24sZSx0LHUsbF0saW5kaWNlczpbMSwzLDQsMiwwLDQsMiw0LDNdfTtpZihkKXJldHVybiBjbi5saW5lU2VnbWVudFBsYW5lKHQsbixvLHUpLGNuLmxpbmVTZWdtZW50UGxhbmUodCxlLG8sbCkse3Bvc2l0aW9uczpbbixlLHQsdSxsXSxpbmRpY2VzOlsyLDMsNCwwLDEsNCwwLDQsM119fWVsc2UgaWYoYz09PTIpaWYoaSlpZihmKXtpZighZClyZXR1cm4gY24ubGluZVNlZ21lbnRQbGFuZShuLHQsbyx1KSxjbi5saW5lU2VnbWVudFBsYW5lKGUsdCxvLGwpLHtwb3NpdGlvbnM6W24sZSx0LHUsbF0saW5kaWNlczpbMCwxLDQsMCw0LDMsMiwzLDRdfX1lbHNlIHJldHVybiBjbi5saW5lU2VnbWVudFBsYW5lKHQsZSxvLHUpLGNuLmxpbmVTZWdtZW50UGxhbmUobixlLG8sbCkse3Bvc2l0aW9uczpbbixlLHQsdSxsXSxpbmRpY2VzOlsyLDAsNCwyLDQsMywxLDMsNF19O2Vsc2UgcmV0dXJuIGNuLmxpbmVTZWdtZW50UGxhbmUoZSxuLG8sdSksY24ubGluZVNlZ21lbnRQbGFuZSh0LG4sbyxsKSx7cG9zaXRpb25zOltuLGUsdCx1LGxdLGluZGljZXM6WzEsMiw0LDEsNCwzLDAsMyw0XX19O1FuPWNufSk7ZnVuY3Rpb24gYW8obixlKXt0aGlzLm5vcm1hbD1zLmNsb25lKG4pLHRoaXMuZGlzdGFuY2U9ZX12YXIgTUksTkksSUksUEksa0ksbm4scGk9WCgoKT0+e01lKCk7YmEoKTtzZSgpO3VuKCk7YW8uZnJvbVBvaW50Tm9ybWFsPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz0tcy5kb3QoZSxuKTtyZXR1cm4gXyh0KT8ocy5jbG9uZShlLHQubm9ybWFsKSx0LmRpc3RhbmNlPW8sdCk6bmV3IGFvKGUsbyl9O01JPW5ldyBzO2FvLmZyb21DYXJ0ZXNpYW40PWZ1bmN0aW9uKG4sZSl7bGV0IHQ9cy5mcm9tQ2FydGVzaWFuNChuLE1JKSxvPW4udztyZXR1cm4gXyhlKT8ocy5jbG9uZSh0LGUubm9ybWFsKSxlLmRpc3RhbmNlPW8sZSk6bmV3IGFvKHQsbyl9O2FvLmdldFBvaW50RGlzdGFuY2U9ZnVuY3Rpb24obixlKXtyZXR1cm4gcy5kb3Qobi5ub3JtYWwsZSkrbi5kaXN0YW5jZX07Tkk9bmV3IHM7YW8ucHJvamVjdFBvaW50T250b1BsYW5lPWZ1bmN0aW9uKG4sZSx0KXtfKHQpfHwodD1uZXcgcyk7bGV0IG89YW8uZ2V0UG9pbnREaXN0YW5jZShuLGUpLGE9cy5tdWx0aXBseUJ5U2NhbGFyKG4ubm9ybWFsLG8sTkkpO3JldHVybiBzLnN1YnRyYWN0KGUsYSx0KX07SUk9bmV3ICQsUEk9bmV3IHJ0LGtJPW5ldyBzO2FvLnRyYW5zZm9ybT1mdW5jdGlvbihuLGUsdCl7bGV0IG89bi5ub3JtYWwsYT1uLmRpc3RhbmNlLHI9JC5pbnZlcnNlVHJhbnNwb3NlKGUsSUkpLGk9cnQuZnJvbUVsZW1lbnRzKG8ueCxvLnksby56LGEsUEkpO2k9JC5tdWx0aXBseUJ5VmVjdG9yKHIsaSxpKTtsZXQgZj1zLmZyb21DYXJ0ZXNpYW40KGksa0kpO3JldHVybiBpPXJ0LmRpdmlkZUJ5U2NhbGFyKGkscy5tYWduaXR1ZGUoZiksaSksYW8uZnJvbUNhcnRlc2lhbjQoaSx0KX07YW8uY2xvbmU9ZnVuY3Rpb24obixlKXtyZXR1cm4gXyhlKT8ocy5jbG9uZShuLm5vcm1hbCxlLm5vcm1hbCksZS5kaXN0YW5jZT1uLmRpc3RhbmNlLGUpOm5ldyBhbyhuLm5vcm1hbCxuLmRpc3RhbmNlKX07YW8uZXF1YWxzPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIG4uZGlzdGFuY2U9PT1lLmRpc3RhbmNlJiZzLmVxdWFscyhuLm5vcm1hbCxlLm5vcm1hbCl9O2FvLk9SSUdJTl9YWV9QTEFORT1PYmplY3QuZnJlZXplKG5ldyBhbyhzLlVOSVRfWiwwKSk7YW8uT1JJR0lOX1laX1BMQU5FPU9iamVjdC5mcmVlemUobmV3IGFvKHMuVU5JVF9YLDApKTthby5PUklHSU5fWlhfUExBTkU9T2JqZWN0LmZyZWV6ZShuZXcgYW8ocy5VTklUX1ksMCkpO25uPWFvfSk7dmFyIGdwLFp3LFF3PVgoKCk9PntzdCgpO3NlKCk7Z3A9e307Z3AuY2FsY3VsYXRlQUNNUj1mdW5jdGlvbihuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLmluZGljZXMsdD1uLm1heGltdW1JbmRleCxvPW4uY2FjaGVTaXplPz8yNCxhPWUubGVuZ3RoO2lmKCFfKHQpKXt0PTA7bGV0IGY9MCxkPWVbZl07Zm9yKDtmPGE7KWQ+dCYmKHQ9ZCksKytmLGQ9ZVtmXX1sZXQgcj1bXTtmb3IobGV0IGY9MDtmPHQrMTtmKyspcltmXT0wO2xldCBpPW8rMTtmb3IobGV0IGY9MDtmPGE7KytmKWktcltlW2ZdXT5vJiYocltlW2ZdXT1pLCsraSk7cmV0dXJuKGktbysxKS8oYS8zKX07Z3AudGlwc2lmeT1mdW5jdGlvbihuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLmluZGljZXMsdD1uLm1heGltdW1JbmRleCxvPW4uY2FjaGVTaXplPz8yNCxhO2Z1bmN0aW9uIHIoRix3LHgsQyl7Zm9yKDt3Lmxlbmd0aD49MTspe2xldCB2PXdbdy5sZW5ndGgtMV07aWYody5zcGxpY2Uody5sZW5ndGgtMSwxKSxGW3ZdLm51bUxpdmVUcmlhbmdsZXM+MClyZXR1cm4gdn1mb3IoO2E8Qzspe2lmKEZbYV0ubnVtTGl2ZVRyaWFuZ2xlcz4wKXJldHVybisrYSxhLTE7KythfXJldHVybi0xfWZ1bmN0aW9uIGkoRix3LHgsQyx2LGoseil7bGV0IEQ9LTEsRyxWPS0xLE89MDtmb3IoO088eC5sZW5ndGg7KXtsZXQgWj14W09dO0NbWl0ubnVtTGl2ZVRyaWFuZ2xlcyYmKEc9MCx2LUNbWl0udGltZVN0YW1wKzIqQ1taXS5udW1MaXZlVHJpYW5nbGVzPD13JiYoRz12LUNbWl0udGltZVN0YW1wKSwoRz5WfHxWPT09LTEpJiYoVj1HLEQ9WikpLCsrT31yZXR1cm4gRD09PS0xP3IoQyxqLEYseik6RH1sZXQgZj1lLmxlbmd0aCxkPTAsYz0wLHU9ZVtjXSxsPWY7aWYoXyh0KSlkPXQrMTtlbHNle2Zvcig7YzxsOyl1PmQmJihkPXUpLCsrYyx1PWVbY107aWYoZD09PS0xKXJldHVybiAwOysrZH1sZXQgaD1bXSxtO2ZvcihtPTA7bTxkO20rKyloW21dPXtudW1MaXZlVHJpYW5nbGVzOjAsdGltZVN0YW1wOjAsdmVydGV4VHJpYW5nbGVzOltdfTtjPTA7bGV0IGI9MDtmb3IoO2M8bDspaFtlW2NdXS52ZXJ0ZXhUcmlhbmdsZXMucHVzaChiKSwrK2hbZVtjXV0ubnVtTGl2ZVRyaWFuZ2xlcyxoW2VbYysxXV0udmVydGV4VHJpYW5nbGVzLnB1c2goYiksKytoW2VbYysxXV0ubnVtTGl2ZVRyaWFuZ2xlcyxoW2VbYysyXV0udmVydGV4VHJpYW5nbGVzLnB1c2goYiksKytoW2VbYysyXV0ubnVtTGl2ZVRyaWFuZ2xlcywrK2IsYys9MztsZXQgcD0wLHk9bysxO2E9MTtsZXQgRT1bXSxnPVtdLEEsVCxSPTAsUz1bXSxNPWYvMyxJPVtdO2ZvcihtPTA7bTxNO20rKylJW21dPSExO2xldCBOLFA7Zm9yKDtwIT09LTE7KXtFPVtdLFQ9aFtwXSxQPVQudmVydGV4VHJpYW5nbGVzLmxlbmd0aDtmb3IobGV0IEY9MDtGPFA7KytGKWlmKGI9VC52ZXJ0ZXhUcmlhbmdsZXNbRl0sIUlbYl0pe0lbYl09ITAsYz1iK2IrYjtmb3IobGV0IHc9MDt3PDM7Kyt3KU49ZVtjXSxFLnB1c2goTiksZy5wdXNoKE4pLFNbUl09TiwrK1IsQT1oW05dLC0tQS5udW1MaXZlVHJpYW5nbGVzLHktQS50aW1lU3RhbXA+byYmKEEudGltZVN0YW1wPXksKyt5KSwrK2N9cD1pKGUsbyxFLGgseSxnLGQpfXJldHVybiBTfTtadz1ncH0pO2Z1bmN0aW9uIGNoKG4sZSx0LG8sYSl7bltlKytdPXQsbltlKytdPW8sbltlKytdPW8sbltlKytdPWEsbltlKytdPWEsbltlXT10fWZ1bmN0aW9uIHZJKG4pe2xldCBlPW4ubGVuZ3RoLHQ9ZS8zKjYsbz1JZS5jcmVhdGVUeXBlZEFycmF5KGUsdCksYT0wO2ZvcihsZXQgcj0wO3I8ZTtyKz0zLGErPTYpY2gobyxhLG5bcl0sbltyKzFdLG5bcisyXSk7cmV0dXJuIG99ZnVuY3Rpb24gRkkobil7bGV0IGU9bi5sZW5ndGg7aWYoZT49Myl7bGV0IHQ9KGUtMikqNixvPUllLmNyZWF0ZVR5cGVkQXJyYXkoZSx0KTtjaChvLDAsblswXSxuWzFdLG5bMl0pO2xldCBhPTY7Zm9yKGxldCByPTM7cjxlOysrcixhKz02KWNoKG8sYSxuW3ItMV0sbltyXSxuW3ItMl0pO3JldHVybiBvfXJldHVybiBuZXcgVWludDE2QXJyYXl9ZnVuY3Rpb24gREkobil7aWYobi5sZW5ndGg+MCl7bGV0IGU9bi5sZW5ndGgtMSx0PShlLTEpKjYsbz1JZS5jcmVhdGVUeXBlZEFycmF5KGUsdCksYT1uWzBdLHI9MDtmb3IobGV0IGk9MTtpPGU7KytpLHIrPTYpY2gobyxyLGEsbltpXSxuW2krMV0pO3JldHVybiBvfXJldHVybiBuZXcgVWludDE2QXJyYXl9ZnVuY3Rpb24gJHcobil7bGV0IGU9e307Zm9yKGxldCB0IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh0KSYmXyhuW3RdKSYmXyhuW3RdLnZhbHVlcykpe2xldCBvPW5bdF07ZVt0XT1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm8uY29tcG9uZW50RGF0YXR5cGUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpvLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGUsbm9ybWFsaXplOm8ubm9ybWFsaXplLHZhbHVlczpbXX0pfXJldHVybiBlfWZ1bmN0aW9uIEJJKG4sZSx0KXtmb3IobGV0IG8gaW4gZSlpZihlLmhhc093blByb3BlcnR5KG8pJiZfKGVbb10pJiZfKGVbb10udmFsdWVzKSl7bGV0IGE9ZVtvXTtmb3IobGV0IHI9MDtyPGEuY29tcG9uZW50c1BlckF0dHJpYnV0ZTsrK3IpbltvXS52YWx1ZXMucHVzaChhLnZhbHVlc1t0KmEuY29tcG9uZW50c1BlckF0dHJpYnV0ZStyXSl9fWZ1bmN0aW9uIHlwKG4sZSl7aWYoXyhlKSl7bGV0IHQ9ZS52YWx1ZXMsbz10Lmxlbmd0aDtmb3IobGV0IGE9MDthPG87YSs9MylzLnVucGFjayh0LGEsemEpLCQubXVsdGlwbHlCeVBvaW50KG4semEsemEpLHMucGFjayh6YSx0LGEpfX1mdW5jdGlvbiBBcChuLGUpe2lmKF8oZSkpe2xldCB0PWUudmFsdWVzLG89dC5sZW5ndGg7Zm9yKGxldCBhPTA7YTxvO2ErPTMpcy51bnBhY2sodCxhLHphKSxKLm11bHRpcGx5QnlWZWN0b3Iobix6YSx6YSksemE9cy5ub3JtYWxpemUoemEsemEpLHMucGFjayh6YSx0LGEpfX1mdW5jdGlvbiBVSShuLGUpe2xldCB0PW4ubGVuZ3RoLG89e30sYT1uWzBdW2VdLmF0dHJpYnV0ZXMscjtmb3IociBpbiBhKWlmKGEuaGFzT3duUHJvcGVydHkocikmJl8oYVtyXSkmJl8oYVtyXS52YWx1ZXMpKXtsZXQgaT1hW3JdLGY9aS52YWx1ZXMubGVuZ3RoLGQ9ITA7Zm9yKGxldCBjPTE7Yzx0OysrYyl7bGV0IHU9bltjXVtlXS5hdHRyaWJ1dGVzW3JdO2lmKCFfKHUpfHxpLmNvbXBvbmVudERhdGF0eXBlIT09dS5jb21wb25lbnREYXRhdHlwZXx8aS5jb21wb25lbnRzUGVyQXR0cmlidXRlIT09dS5jb21wb25lbnRzUGVyQXR0cmlidXRlfHxpLm5vcm1hbGl6ZSE9PXUubm9ybWFsaXplKXtkPSExO2JyZWFrfWYrPXUudmFsdWVzLmxlbmd0aH1kJiYob1tyXT1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOmkuY29tcG9uZW50RGF0YXR5cGUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTppLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGUsbm9ybWFsaXplOmkubm9ybWFsaXplLHZhbHVlczpvZS5jcmVhdGVUeXBlZEFycmF5KGkuY29tcG9uZW50RGF0YXR5cGUsZil9KSl9cmV0dXJuIG99ZnVuY3Rpb24gd3AobixlKXtsZXQgdD1uLmxlbmd0aCxvLGEscixpLGY9blswXS5tb2RlbE1hdHJpeCxkPV8oblswXVtlXS5pbmRpY2VzKSxjPW5bMF1bZV0ucHJpbWl0aXZlVHlwZSx1PVVJKG4sZSksbCxoLG07Zm9yKG8gaW4gdSlpZih1Lmhhc093blByb3BlcnR5KG8pKWZvcihsPXVbb10udmFsdWVzLGk9MCxhPTA7YTx0OysrYSlmb3IoaD1uW2FdW2VdLmF0dHJpYnV0ZXNbb10udmFsdWVzLG09aC5sZW5ndGgscj0wO3I8bTsrK3IpbFtpKytdPWhbcl07bGV0IGI7aWYoZCl7bGV0IGc9MDtmb3IoYT0wO2E8dDsrK2EpZys9blthXVtlXS5pbmRpY2VzLmxlbmd0aDtsZXQgQT1QZS5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyhuZXcgUGUoe2F0dHJpYnV0ZXM6dSxwcmltaXRpdmVUeXBlOkZlLlBPSU5UU30pKSxUPUllLmNyZWF0ZVR5cGVkQXJyYXkoQSxnKSxSPTAsUz0wO2ZvcihhPTA7YTx0OysrYSl7bGV0IE09blthXVtlXS5pbmRpY2VzLEk9TS5sZW5ndGg7Zm9yKGk9MDtpPEk7KytpKVRbUisrXT1TK01baV07Uys9UGUuY29tcHV0ZU51bWJlck9mVmVydGljZXMoblthXVtlXSl9Yj1UfWxldCBwPW5ldyBzLHk9MCxFO2ZvcihhPTA7YTx0OysrYSl7aWYoRT1uW2FdW2VdLmJvdW5kaW5nU3BoZXJlLCFfKEUpKXtwPXZvaWQgMDticmVha31zLmFkZChFLmNlbnRlcixwLHApfWlmKF8ocCkpZm9yKHMuZGl2aWRlQnlTY2FsYXIocCx0LHApLGE9MDthPHQ7KythKXtFPW5bYV1bZV0uYm91bmRpbmdTcGhlcmU7bGV0IGc9cy5tYWduaXR1ZGUocy5zdWJ0cmFjdChFLmNlbnRlcixwLExJKSkrRS5yYWRpdXM7Zz55JiYoeT1nKX1yZXR1cm4gbmV3IFBlKHthdHRyaWJ1dGVzOnUsaW5kaWNlczpiLHByaW1pdGl2ZVR5cGU6Yyxib3VuZGluZ1NwaGVyZTpfKHApP25ldyBnZShwLHkpOnZvaWQgMH0pfWZ1bmN0aW9uIFZJKG4pe2lmKF8obi5pbmRpY2VzKSlyZXR1cm4gbjtsZXQgZT1QZS5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyhuKSx0PUllLmNyZWF0ZVR5cGVkQXJyYXkoZSxlKTtmb3IobGV0IG89MDtvPGU7KytvKXRbb109bztyZXR1cm4gbi5pbmRpY2VzPXQsbn1mdW5jdGlvbiBISShuKXtsZXQgZT1QZS5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyhuKSx0PUllLmNyZWF0ZVR5cGVkQXJyYXkoZSwoZS0yKSozKTt0WzBdPTEsdFsxXT0wLHRbMl09MjtsZXQgbz0zO2ZvcihsZXQgYT0zO2E8ZTsrK2EpdFtvKytdPWEtMSx0W28rK109MCx0W28rK109YTtyZXR1cm4gbi5pbmRpY2VzPXQsbi5wcmltaXRpdmVUeXBlPUZlLlRSSUFOR0xFUyxufWZ1bmN0aW9uIEtJKG4pe2xldCBlPVBlLmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKG4pLHQ9SWUuY3JlYXRlVHlwZWRBcnJheShlLChlLTIpKjMpO3RbMF09MCx0WzFdPTEsdFsyXT0yLGU+MyYmKHRbM109MCx0WzRdPTIsdFs1XT0zKTtsZXQgbz02O2ZvcihsZXQgYT0zO2E8ZS0xO2ErPTIpdFtvKytdPWEsdFtvKytdPWEtMSx0W28rK109YSsxLGErMjxlJiYodFtvKytdPWEsdFtvKytdPWErMSx0W28rK109YSsyKTtyZXR1cm4gbi5pbmRpY2VzPXQsbi5wcmltaXRpdmVUeXBlPUZlLlRSSUFOR0xFUyxufWZ1bmN0aW9uIHFJKG4pe2lmKF8obi5pbmRpY2VzKSlyZXR1cm4gbjtsZXQgZT1QZS5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyhuKSx0PUllLmNyZWF0ZVR5cGVkQXJyYXkoZSxlKTtmb3IobGV0IG89MDtvPGU7KytvKXRbb109bztyZXR1cm4gbi5pbmRpY2VzPXQsbn1mdW5jdGlvbiBXSShuKXtsZXQgZT1QZS5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyhuKSx0PUllLmNyZWF0ZVR5cGVkQXJyYXkoZSwoZS0xKSoyKTt0WzBdPTAsdFsxXT0xO2xldCBvPTI7Zm9yKGxldCBhPTI7YTxlOysrYSl0W28rK109YS0xLHRbbysrXT1hO3JldHVybiBuLmluZGljZXM9dCxuLnByaW1pdGl2ZVR5cGU9RmUuTElORVMsbn1mdW5jdGlvbiBYSShuKXtsZXQgZT1QZS5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyhuKSx0PUllLmNyZWF0ZVR5cGVkQXJyYXkoZSxlKjIpO3RbMF09MCx0WzFdPTE7bGV0IG89Mjtmb3IobGV0IGE9MjthPGU7KythKXRbbysrXT1hLTEsdFtvKytdPWE7cmV0dXJuIHRbbysrXT1lLTEsdFtvXT0wLG4uaW5kaWNlcz10LG4ucHJpbWl0aXZlVHlwZT1GZS5MSU5FUyxufWZ1bmN0aW9uIFlJKG4pe3N3aXRjaChuLnByaW1pdGl2ZVR5cGUpe2Nhc2UgRmUuVFJJQU5HTEVfRkFOOnJldHVybiBISShuKTtjYXNlIEZlLlRSSUFOR0xFX1NUUklQOnJldHVybiBLSShuKTtjYXNlIEZlLlRSSUFOR0xFUzpyZXR1cm4gVkkobik7Y2FzZSBGZS5MSU5FX1NUUklQOnJldHVybiBXSShuKTtjYXNlIEZlLkxJTkVfTE9PUDpyZXR1cm4gWEkobik7Y2FzZSBGZS5MSU5FUzpyZXR1cm4gcUkobil9cmV0dXJuIG59ZnVuY3Rpb24gZ2kobixlKXtNYXRoLmFicyhuLnkpPGsuRVBTSUxPTjYmJihlP24ueT0tay5FUFNJTE9ONjpuLnk9ay5FUFNJTE9ONil9ZnVuY3Rpb24gSkkobixlLHQpe2lmKG4ueSE9PTAmJmUueSE9PTAmJnQueSE9PTApe2dpKG4sbi55PDApLGdpKGUsZS55PDApLGdpKHQsdC55PDApO3JldHVybn1sZXQgbz1NYXRoLmFicyhuLnkpLGE9TWF0aC5hYnMoZS55KSxyPU1hdGguYWJzKHQueSksaTtvPmE/bz5yP2k9ay5zaWduKG4ueSk6aT1rLnNpZ24odC55KTphPnI/aT1rLnNpZ24oZS55KTppPWsuc2lnbih0LnkpO2xldCBmPWk8MDtnaShuLGYpLGdpKGUsZiksZ2kodCxmKX1mdW5jdGlvbiBSYShuLGUsdCxvKXtzLmFkZChuLHMubXVsdGlwbHlCeVNjYWxhcihzLnN1YnRyYWN0KGUsbixhVCksbi55LyhuLnktZS55KSxhVCksdCkscy5jbG9uZSh0LG8pLGdpKHQsITApLGdpKG8sITEpfWZ1bmN0aW9uIFpJKG4sZSx0KXtpZihuLng+PTB8fGUueD49MHx8dC54Pj0wKXJldHVybjtKSShuLGUsdCk7bGV0IG89bi55PDAsYT1lLnk8MCxyPXQueTwwLGk9MDtpKz1vPzE6MCxpKz1hPzE6MCxpKz1yPzE6MDtsZXQgZj1UcC5pbmRpY2VzO2k9PT0xPyhmWzFdPTMsZlsyXT00LGZbNV09NixmWzddPTYsZls4XT01LG8/KFJhKG4sZSxpYyxzYyksUmEobix0LGNjLGZjKSxmWzBdPTAsZlszXT0xLGZbNF09MixmWzZdPTEpOmE/KFJhKGUsdCxpYyxzYyksUmEoZSxuLGNjLGZjKSxmWzBdPTEsZlszXT0yLGZbNF09MCxmWzZdPTIpOnImJihSYSh0LG4saWMsc2MpLFJhKHQsZSxjYyxmYyksZlswXT0yLGZbM109MCxmWzRdPTEsZls2XT0wKSk6aT09PTImJihmWzJdPTQsZls0XT00LGZbNV09MyxmWzddPTUsZls4XT02LG8/YT9yfHwoUmEodCxuLGljLHNjKSxSYSh0LGUsY2MsZmMpLGZbMF09MCxmWzFdPTEsZlszXT0wLGZbNl09Mik6KFJhKGUsdCxpYyxzYyksUmEoZSxuLGNjLGZjKSxmWzBdPTIsZlsxXT0wLGZbM109MixmWzZdPTEpOihSYShuLGUsaWMsc2MpLFJhKG4sdCxjYyxmYyksZlswXT0xLGZbMV09MixmWzNdPTEsZls2XT0wKSk7bGV0IGQ9VHAucG9zaXRpb25zO3JldHVybiBkWzBdPW4sZFsxXT1lLGRbMl09dCxkLmxlbmd0aD0zLChpPT09MXx8aT09PTIpJiYoZFszXT1pYyxkWzRdPWNjLGRbNV09c2MsZFs2XT1mYyxkLmxlbmd0aD03KSxUcH1mdW5jdGlvbiByVChuLGUpe2xldCB0PW4uYXR0cmlidXRlcztpZih0LnBvc2l0aW9uLnZhbHVlcy5sZW5ndGg9PT0wKXJldHVybjtmb3IobGV0IGEgaW4gdClpZih0Lmhhc093blByb3BlcnR5KGEpJiZfKHRbYV0pJiZfKHRbYV0udmFsdWVzKSl7bGV0IHI9dFthXTtyLnZhbHVlcz1vZS5jcmVhdGVUeXBlZEFycmF5KHIuY29tcG9uZW50RGF0YXR5cGUsci52YWx1ZXMpfWxldCBvPVBlLmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKG4pO3JldHVybiBuLmluZGljZXM9SWUuY3JlYXRlVHlwZWRBcnJheShvLG4uaW5kaWNlcyksZSYmKG4uYm91bmRpbmdTcGhlcmU9Z2UuZnJvbVZlcnRpY2VzKHQucG9zaXRpb24udmFsdWVzKSksbn1mdW5jdGlvbiBkcyhuKXtsZXQgZT1uLmF0dHJpYnV0ZXMsdD17fTtmb3IobGV0IG8gaW4gZSlpZihlLmhhc093blByb3BlcnR5KG8pJiZfKGVbb10pJiZfKGVbb10udmFsdWVzKSl7bGV0IGE9ZVtvXTt0W29dPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6YS5jb21wb25lbnREYXRhdHlwZSxjb21wb25lbnRzUGVyQXR0cmlidXRlOmEuY29tcG9uZW50c1BlckF0dHJpYnV0ZSxub3JtYWxpemU6YS5ub3JtYWxpemUsdmFsdWVzOltdfSl9cmV0dXJuIG5ldyBQZSh7YXR0cmlidXRlczp0LGluZGljZXM6W10scHJpbWl0aXZlVHlwZTpuLnByaW1pdGl2ZVR5cGV9KX1mdW5jdGlvbiBPcChuLGUsdCl7bGV0IG89XyhuLmdlb21ldHJ5LmJvdW5kaW5nU3BoZXJlKTtlPXJUKGUsbyksdD1yVCh0LG8pLF8odCkmJiFfKGUpP24uZ2VvbWV0cnk9dDohXyh0KSYmXyhlKT9uLmdlb21ldHJ5PWU6KG4ud2VzdEhlbWlzcGhlcmVHZW9tZXRyeT1lLG4uZWFzdEhlbWlzcGhlcmVHZW9tZXRyeT10LG4uZ2VvbWV0cnk9dm9pZCAwKX1mdW5jdGlvbiBTcChuLGUpe2xldCB0PW5ldyBuLG89bmV3IG4sYT1uZXcgbjtyZXR1cm4gZnVuY3Rpb24ocixpLGYsZCxjLHUsbCxoKXtsZXQgbT1uLmZyb21BcnJheShjLHIqZSx0KSxiPW4uZnJvbUFycmF5KGMsaSplLG8pLHA9bi5mcm9tQXJyYXkoYyxmKmUsYSk7bi5tdWx0aXBseUJ5U2NhbGFyKG0sZC54LG0pLG4ubXVsdGlwbHlCeVNjYWxhcihiLGQueSxiKSxuLm11bHRpcGx5QnlTY2FsYXIocCxkLnoscCk7bGV0IHk9bi5hZGQobSxiLG0pO24uYWRkKHkscCx5KSxoJiZuLm5vcm1hbGl6ZSh5LHkpLG4ucGFjayh5LHUsbCplKX19ZnVuY3Rpb24gYWgobixlLHQsbyxhLHIsaSxmLGQsYyx1LGwsaCxtLGIscCl7aWYoIV8ocikmJiFfKGkpJiYhXyhmKSYmIV8oZCkmJiFfKGMpJiZtPT09MClyZXR1cm47bGV0IHk9cy5mcm9tQXJyYXkoYSxuKjMsamYpLEU9cy5mcm9tQXJyYXkoYSxlKjMsRXApLGc9cy5mcm9tQXJyYXkoYSx0KjMsUnApLEE9RHcobyx5LEUsZyxlMyk7aWYoXyhBKSl7aWYoXyhyKSYmaWgobixlLHQsQSxyLGwubm9ybWFsLnZhbHVlcyxwLCEwKSxfKGMpKXtsZXQgVD1zLmZyb21BcnJheShjLG4qMyxqZiksUj1zLmZyb21BcnJheShjLGUqMyxFcCksUz1zLmZyb21BcnJheShjLHQqMyxScCk7cy5tdWx0aXBseUJ5U2NhbGFyKFQsQS54LFQpLHMubXVsdGlwbHlCeVNjYWxhcihSLEEueSxSKSxzLm11bHRpcGx5QnlTY2FsYXIoUyxBLnosUyk7bGV0IE07IXMuZXF1YWxzKFQscy5aRVJPKXx8IXMuZXF1YWxzKFIscy5aRVJPKXx8IXMuZXF1YWxzKFMscy5aRVJPKT8oTT1zLmFkZChULFIsVCkscy5hZGQoTSxTLE0pLHMubm9ybWFsaXplKE0sTSkpOihNPWpmLE0ueD0wLE0ueT0wLE0uej0wKSxzLnBhY2soTSxsLmV4dHJ1ZGVEaXJlY3Rpb24udmFsdWVzLHAqMyl9aWYoXyh1KSYmJEkobixlLHQsQSx1LGwuYXBwbHlPZmZzZXQudmFsdWVzLHApLF8oaSkmJmloKG4sZSx0LEEsaSxsLnRhbmdlbnQudmFsdWVzLHAsITApLF8oZikmJmloKG4sZSx0LEEsZixsLmJpdGFuZ2VudC52YWx1ZXMscCwhMCksXyhkKSYmdVQobixlLHQsQSxkLGwuc3QudmFsdWVzLHApLG0+MClmb3IobGV0IFQ9MDtUPG07VCsrKXtsZXQgUj1oW1RdO3QzKG4sZSx0LEEscCxiW1JdLGxbUl0pfX19ZnVuY3Rpb24gdDMobixlLHQsbyxhLHIsaSl7bGV0IGY9ci5jb21wb25lbnRzUGVyQXR0cmlidXRlLGQ9ci52YWx1ZXMsYz1pLnZhbHVlcztzd2l0Y2goZil7Y2FzZSA0OlFJKG4sZSx0LG8sZCxjLGEsITEpO2JyZWFrO2Nhc2UgMzppaChuLGUsdCxvLGQsYyxhLCExKTticmVhaztjYXNlIDI6dVQobixlLHQsbyxkLGMsYSwhMSk7YnJlYWs7ZGVmYXVsdDpjW2FdPWRbbl0qby54K2RbZV0qby55K2RbdF0qby56fX1mdW5jdGlvbiBzcihuLGUsdCxvLGEscil7bGV0IGk9bi5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzM7aWYoYSE9PS0xKXtsZXQgZj1vW2FdLGQ9dFtmXTtyZXR1cm4gZD09PS0xPyh0W2ZdPWksbi5wb3NpdGlvbi52YWx1ZXMucHVzaChyLngsci55LHIueiksZS5wdXNoKGkpLGkpOihlLnB1c2goZCksZCl9cmV0dXJuIG4ucG9zaXRpb24udmFsdWVzLnB1c2goci54LHIueSxyLnopLGUucHVzaChpKSxpfWZ1bmN0aW9uIGlUKG4pe2xldCBlPW4uZ2VvbWV0cnksdD1lLmF0dHJpYnV0ZXMsbz10LnBvc2l0aW9uLnZhbHVlcyxhPV8odC5ub3JtYWwpP3Qubm9ybWFsLnZhbHVlczp2b2lkIDAscj1fKHQuYml0YW5nZW50KT90LmJpdGFuZ2VudC52YWx1ZXM6dm9pZCAwLGk9Xyh0LnRhbmdlbnQpP3QudGFuZ2VudC52YWx1ZXM6dm9pZCAwLGY9Xyh0LnN0KT90LnN0LnZhbHVlczp2b2lkIDAsZD1fKHQuZXh0cnVkZURpcmVjdGlvbik/dC5leHRydWRlRGlyZWN0aW9uLnZhbHVlczp2b2lkIDAsYz1fKHQuYXBwbHlPZmZzZXQpP3QuYXBwbHlPZmZzZXQudmFsdWVzOnZvaWQgMCx1PWUuaW5kaWNlcyxsPVtdO2ZvcihsZXQgTSBpbiB0KXQuaGFzT3duUHJvcGVydHkoTSkmJiFuM1tNXSYmXyh0W01dKSYmbC5wdXNoKE0pO2xldCBoPWwubGVuZ3RoLG09ZHMoZSksYj1kcyhlKSxwLHksRSxnLEEsVD1bXTtULmxlbmd0aD1vLmxlbmd0aC8zO2xldCBSPVtdO2ZvcihSLmxlbmd0aD1vLmxlbmd0aC8zLEE9MDtBPFQubGVuZ3RoOysrQSlUW0FdPS0xLFJbQV09LTE7bGV0IFM9dS5sZW5ndGg7Zm9yKEE9MDtBPFM7QSs9Myl7bGV0IE09dVtBXSxJPXVbQSsxXSxOPXVbQSsyXSxQPXMuZnJvbUFycmF5KG8sTSozKSxGPXMuZnJvbUFycmF5KG8sSSozKSx3PXMuZnJvbUFycmF5KG8sTiozKSx4PVpJKFAsRix3KTtpZihfKHgpJiZ4LnBvc2l0aW9ucy5sZW5ndGg+Myl7bGV0IEM9eC5wb3NpdGlvbnMsdj14LmluZGljZXMsaj12Lmxlbmd0aDtmb3IobGV0IHo9MDt6PGo7Kyt6KXtsZXQgRD12W3pdLEc9Q1tEXTtHLnk8MD8ocD1iLmF0dHJpYnV0ZXMseT1iLmluZGljZXMsRT1UKToocD1tLmF0dHJpYnV0ZXMseT1tLmluZGljZXMsRT1SKSxnPXNyKHAseSxFLHUsRDwzP0ErRDotMSxHKSxhaChNLEksTixHLG8sYSxpLHIsZixkLGMscCxsLGgsdCxnKX19ZWxzZSBfKHgpJiYoUD14LnBvc2l0aW9uc1swXSxGPXgucG9zaXRpb25zWzFdLHc9eC5wb3NpdGlvbnNbMl0pLFAueTwwPyhwPWIuYXR0cmlidXRlcyx5PWIuaW5kaWNlcyxFPVQpOihwPW0uYXR0cmlidXRlcyx5PW0uaW5kaWNlcyxFPVIpLGc9c3IocCx5LEUsdSxBLFApLGFoKE0sSSxOLFAsbyxhLGkscixmLGQsYyxwLGwsaCx0LGcpLGc9c3IocCx5LEUsdSxBKzEsRiksYWgoTSxJLE4sRixvLGEsaSxyLGYsZCxjLHAsbCxoLHQsZyksZz1zcihwLHksRSx1LEErMix3KSxhaChNLEksTix3LG8sYSxpLHIsZixkLGMscCxsLGgsdCxnKX1PcChuLGIsbSl9ZnVuY3Rpb24gZnMobixlLHQsbyxhLHIsaSl7aWYoIV8oaSkpcmV0dXJuO2xldCBmPXMuZnJvbUFycmF5KG8sbiozLGpmKTtzLmVxdWFsc0Vwc2lsb24oZix0LGsuRVBTSUxPTjEwKT9yLmFwcGx5T2Zmc2V0LnZhbHVlc1thXT1pW25dOnIuYXBwbHlPZmZzZXQudmFsdWVzW2FdPWlbZV19ZnVuY3Rpb24gY1Qobil7bGV0IGU9bi5nZW9tZXRyeSx0PWUuYXR0cmlidXRlcyxvPXQucG9zaXRpb24udmFsdWVzLGE9Xyh0LmFwcGx5T2Zmc2V0KT90LmFwcGx5T2Zmc2V0LnZhbHVlczp2b2lkIDAscj1lLmluZGljZXMsaT1kcyhlKSxmPWRzKGUpLGQsYz1yLmxlbmd0aCx1PVtdO3UubGVuZ3RoPW8ubGVuZ3RoLzM7bGV0IGw9W107Zm9yKGwubGVuZ3RoPW8ubGVuZ3RoLzMsZD0wO2Q8dS5sZW5ndGg7KytkKXVbZF09LTEsbFtkXT0tMTtmb3IoZD0wO2Q8YztkKz0yKXtsZXQgaD1yW2RdLG09cltkKzFdLGI9cy5mcm9tQXJyYXkobyxoKjMsamYpLHA9cy5mcm9tQXJyYXkobyxtKjMsRXApLHk7TWF0aC5hYnMoYi55KTxrLkVQU0lMT042JiYoYi55PDA/Yi55PS1rLkVQU0lMT042OmIueT1rLkVQU0lMT042KSxNYXRoLmFicyhwLnkpPGsuRVBTSUxPTjYmJihwLnk8MD9wLnk9LWsuRVBTSUxPTjY6cC55PWsuRVBTSUxPTjYpO2xldCBFPWkuYXR0cmlidXRlcyxnPWkuaW5kaWNlcyxBPWwsVD1mLmF0dHJpYnV0ZXMsUj1mLmluZGljZXMsUz11LE09UW4ubGluZVNlZ21lbnRQbGFuZShiLHAsbFQsUnApO2lmKF8oTSkpe2xldCBJPXMubXVsdGlwbHlCeVNjYWxhcihzLlVOSVRfWSw1KmsuRVBTSUxPTjksbzMpO2IueTwwJiYocy5uZWdhdGUoSSxJKSxFPWYuYXR0cmlidXRlcyxnPWYuaW5kaWNlcyxBPXUsVD1pLmF0dHJpYnV0ZXMsUj1pLmluZGljZXMsUz1sKTtsZXQgTj1zLmFkZChNLEksYTMpO3k9c3IoRSxnLEEscixkLGIpLGZzKGgsbSxiLG8seSxFLGEpLHk9c3IoRSxnLEEsciwtMSxOKSxmcyhoLG0sTixvLHksRSxhKSxzLm5lZ2F0ZShJLEkpLHMuYWRkKE0sSSxOKSx5PXNyKFQsUixTLHIsLTEsTiksZnMoaCxtLE4sbyx5LFQsYSkseT1zcihULFIsUyxyLGQrMSxwKSxmcyhoLG0scCxvLHksVCxhKX1lbHNle2xldCBJLE4sUDtiLnk8MD8oST1mLmF0dHJpYnV0ZXMsTj1mLmluZGljZXMsUD11KTooST1pLmF0dHJpYnV0ZXMsTj1pLmluZGljZXMsUD1sKSx5PXNyKEksTixQLHIsZCxiKSxmcyhoLG0sYixvLHksSSxhKSx5PXNyKEksTixQLHIsZCsxLHApLGZzKGgsbSxwLG8seSxJLGEpfX1PcChuLGYsaSl9ZnVuY3Rpb24gZFQobil7bGV0IGU9bi5hdHRyaWJ1dGVzLHQ9ZS5wb3NpdGlvbi52YWx1ZXMsbz1lLnByZXZQb3NpdGlvbi52YWx1ZXMsYT1lLm5leHRQb3NpdGlvbi52YWx1ZXMscj10Lmxlbmd0aDtmb3IobGV0IGk9MDtpPHI7aSs9Myl7bGV0IGY9cy51bnBhY2sodCxpLGhUKTtpZihmLng+MCljb250aW51ZTtsZXQgZD1zLnVucGFjayhvLGksbVQpOyhmLnk8MCYmZC55PjB8fGYueT4wJiZkLnk8MCkmJihpLTM+MD8ob1tpXT10W2ktM10sb1tpKzFdPXRbaS0yXSxvW2krMl09dFtpLTFdKTpzLnBhY2soZixvLGkpKTtsZXQgYz1zLnVucGFjayhhLGkseHApOyhmLnk8MCYmYy55PjB8fGYueT4wJiZjLnk8MCkmJihpKzM8cj8oYVtpXT10W2krM10sYVtpKzFdPXRbaSs0XSxhW2krMl09dFtpKzVdKTpzLnBhY2soZixhLGkpKX19ZnVuY3Rpb24gZDMobil7bGV0IGU9bi5nZW9tZXRyeSx0PWUuYXR0cmlidXRlcyxvPXQucG9zaXRpb24udmFsdWVzLGE9dC5wcmV2UG9zaXRpb24udmFsdWVzLHI9dC5uZXh0UG9zaXRpb24udmFsdWVzLGk9dC5leHBhbmRBbmRXaWR0aC52YWx1ZXMsZj1fKHQuc3QpP3Quc3QudmFsdWVzOnZvaWQgMCxkPV8odC5jb2xvcik/dC5jb2xvci52YWx1ZXM6dm9pZCAwLGM9ZHMoZSksdT1kcyhlKSxsLGgsbSxiPSExLHA9by5sZW5ndGgvMztmb3IobD0wO2w8cDtsKz00KXtsZXQgeT1sLEU9bCsyLGc9cy5mcm9tQXJyYXkobyx5KjMsaFQpLEE9cy5mcm9tQXJyYXkobyxFKjMsbVQpO2lmKE1hdGguYWJzKGcueSk8cmgpZm9yKGcueT1yaCooQS55PDA/LTE6MSksb1tsKjMrMV09Zy55LG9bKGwrMSkqMysxXT1nLnksaD15KjM7aDx5KjMrMTI7aCs9MylhW2hdPW9bbCozXSxhW2grMV09b1tsKjMrMV0sYVtoKzJdPW9bbCozKzJdO2lmKE1hdGguYWJzKEEueSk8cmgpZm9yKEEueT1yaCooZy55PDA/LTE6MSksb1sobCsyKSozKzFdPUEueSxvWyhsKzMpKjMrMV09QS55LGg9eSozO2g8eSozKzEyO2grPTMpcltoXT1vWyhsKzIpKjNdLHJbaCsxXT1vWyhsKzIpKjMrMV0scltoKzJdPW9bKGwrMikqMysyXTtsZXQgVD1jLmF0dHJpYnV0ZXMsUj1jLmluZGljZXMsUz11LmF0dHJpYnV0ZXMsTT11LmluZGljZXMsST1Rbi5saW5lU2VnbWVudFBsYW5lKGcsQSxsVCxpMyk7aWYoXyhJKSl7Yj0hMDtsZXQgTj1zLm11bHRpcGx5QnlTY2FsYXIocy5VTklUX1ksZjMsYzMpO2cueTwwJiYocy5uZWdhdGUoTixOKSxUPXUuYXR0cmlidXRlcyxSPXUuaW5kaWNlcyxTPWMuYXR0cmlidXRlcyxNPWMuaW5kaWNlcyk7bGV0IFA9cy5hZGQoSSxOLHMzKTtULnBvc2l0aW9uLnZhbHVlcy5wdXNoKGcueCxnLnksZy56LGcueCxnLnksZy56KSxULnBvc2l0aW9uLnZhbHVlcy5wdXNoKFAueCxQLnksUC56KSxULnBvc2l0aW9uLnZhbHVlcy5wdXNoKFAueCxQLnksUC56KSxULnByZXZQb3NpdGlvbi52YWx1ZXMucHVzaChhW3kqM10sYVt5KjMrMV0sYVt5KjMrMl0pLFQucHJldlBvc2l0aW9uLnZhbHVlcy5wdXNoKGFbeSozKzNdLGFbeSozKzRdLGFbeSozKzVdKSxULnByZXZQb3NpdGlvbi52YWx1ZXMucHVzaChnLngsZy55LGcueixnLngsZy55LGcueiksVC5uZXh0UG9zaXRpb24udmFsdWVzLnB1c2goUC54LFAueSxQLnopLFQubmV4dFBvc2l0aW9uLnZhbHVlcy5wdXNoKFAueCxQLnksUC56KSxULm5leHRQb3NpdGlvbi52YWx1ZXMucHVzaChQLngsUC55LFAueiksVC5uZXh0UG9zaXRpb24udmFsdWVzLnB1c2goUC54LFAueSxQLnopLHMubmVnYXRlKE4sTikscy5hZGQoSSxOLFApLFMucG9zaXRpb24udmFsdWVzLnB1c2goUC54LFAueSxQLnopLFMucG9zaXRpb24udmFsdWVzLnB1c2goUC54LFAueSxQLnopLFMucG9zaXRpb24udmFsdWVzLnB1c2goQS54LEEueSxBLnosQS54LEEueSxBLnopLFMucHJldlBvc2l0aW9uLnZhbHVlcy5wdXNoKFAueCxQLnksUC56KSxTLnByZXZQb3NpdGlvbi52YWx1ZXMucHVzaChQLngsUC55LFAueiksUy5wcmV2UG9zaXRpb24udmFsdWVzLnB1c2goUC54LFAueSxQLnopLFMucHJldlBvc2l0aW9uLnZhbHVlcy5wdXNoKFAueCxQLnksUC56KSxTLm5leHRQb3NpdGlvbi52YWx1ZXMucHVzaChBLngsQS55LEEueixBLngsQS55LEEueiksUy5uZXh0UG9zaXRpb24udmFsdWVzLnB1c2gocltFKjNdLHJbRSozKzFdLHJbRSozKzJdKSxTLm5leHRQb3NpdGlvbi52YWx1ZXMucHVzaChyW0UqMyszXSxyW0UqMys0XSxyW0UqMys1XSk7bGV0IEY9WS5mcm9tQXJyYXkoaSx5KjIsc1QpLHc9TWF0aC5hYnMoRi55KTtULmV4cGFuZEFuZFdpZHRoLnZhbHVlcy5wdXNoKC0xLHcsMSx3KSxULmV4cGFuZEFuZFdpZHRoLnZhbHVlcy5wdXNoKC0xLC13LDEsLXcpLFMuZXhwYW5kQW5kV2lkdGgudmFsdWVzLnB1c2goLTEsdywxLHcpLFMuZXhwYW5kQW5kV2lkdGgudmFsdWVzLnB1c2goLTEsLXcsMSwtdyk7bGV0IHg9cy5tYWduaXR1ZGVTcXVhcmVkKHMuc3VidHJhY3QoSSxnLHhwKSk7aWYoeC89cy5tYWduaXR1ZGVTcXVhcmVkKHMuc3VidHJhY3QoQSxnLHhwKSksXyhkKSl7bGV0IEM9cnQuZnJvbUFycmF5KGQseSo0LGZUKSx2PXJ0LmZyb21BcnJheShkLEUqNCxmVCksaj1rLmxlcnAoQy54LHYueCx4KSx6PWsubGVycChDLnksdi55LHgpLEQ9ay5sZXJwKEMueix2LnoseCksRz1rLmxlcnAoQy53LHYudyx4KTtmb3IoaD15KjQ7aDx5KjQrODsrK2gpVC5jb2xvci52YWx1ZXMucHVzaChkW2hdKTtmb3IoVC5jb2xvci52YWx1ZXMucHVzaChqLHosRCxHKSxULmNvbG9yLnZhbHVlcy5wdXNoKGoseixELEcpLFMuY29sb3IudmFsdWVzLnB1c2goaix6LEQsRyksUy5jb2xvci52YWx1ZXMucHVzaChqLHosRCxHKSxoPUUqNDtoPEUqNCs4OysraClTLmNvbG9yLnZhbHVlcy5wdXNoKGRbaF0pfWlmKF8oZikpe2xldCBDPVkuZnJvbUFycmF5KGYseSoyLHNUKSx2PVkuZnJvbUFycmF5KGYsKGwrMykqMixyMyksaj1rLmxlcnAoQy54LHYueCx4KTtmb3IoaD15KjI7aDx5KjIrNDsrK2gpVC5zdC52YWx1ZXMucHVzaChmW2hdKTtmb3IoVC5zdC52YWx1ZXMucHVzaChqLEMueSksVC5zdC52YWx1ZXMucHVzaChqLHYueSksUy5zdC52YWx1ZXMucHVzaChqLEMueSksUy5zdC52YWx1ZXMucHVzaChqLHYueSksaD1FKjI7aDxFKjIrNDsrK2gpUy5zdC52YWx1ZXMucHVzaChmW2hdKX1tPVQucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLTQsUi5wdXNoKG0sbSsyLG0rMSksUi5wdXNoKG0rMSxtKzIsbSszKSxtPVMucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLTQsTS5wdXNoKG0sbSsyLG0rMSksTS5wdXNoKG0rMSxtKzIsbSszKX1lbHNle2xldCBOLFA7Zm9yKGcueTwwPyhOPXUuYXR0cmlidXRlcyxQPXUuaW5kaWNlcyk6KE49Yy5hdHRyaWJ1dGVzLFA9Yy5pbmRpY2VzKSxOLnBvc2l0aW9uLnZhbHVlcy5wdXNoKGcueCxnLnksZy56KSxOLnBvc2l0aW9uLnZhbHVlcy5wdXNoKGcueCxnLnksZy56KSxOLnBvc2l0aW9uLnZhbHVlcy5wdXNoKEEueCxBLnksQS56KSxOLnBvc2l0aW9uLnZhbHVlcy5wdXNoKEEueCxBLnksQS56KSxoPWwqMztoPGwqMysxMjsrK2gpTi5wcmV2UG9zaXRpb24udmFsdWVzLnB1c2goYVtoXSksTi5uZXh0UG9zaXRpb24udmFsdWVzLnB1c2gocltoXSk7Zm9yKGg9bCoyO2g8bCoyKzg7KytoKU4uZXhwYW5kQW5kV2lkdGgudmFsdWVzLnB1c2goaVtoXSksXyhmKSYmTi5zdC52YWx1ZXMucHVzaChmW2hdKTtpZihfKGQpKWZvcihoPWwqNDtoPGwqNCsxNjsrK2gpTi5jb2xvci52YWx1ZXMucHVzaChkW2hdKTttPU4ucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLTQsUC5wdXNoKG0sbSsyLG0rMSksUC5wdXNoKG0rMSxtKzIsbSszKX19YiYmKGRUKHUpLGRUKGMpKSxPcChuLHUsYyl9dmFyIEJvLGVULGpJLF9wLHphLHRoLG5oLExJLEVhLERmLGNzLHNzLHpJLHRULEdJLEJmLExhLG5ULG9ULG9oLGFULGljLGNjLHNjLGZjLFRwLFFJLGloLHVULCRJLGpmLEVwLFJwLGUzLG4zLGxULG8zLGEzLHNULHIzLGhULG1ULHhwLGkzLGMzLHMzLGZULGYzLHJoLEx0LGZyPVgoKCk9PntCcigpO0J3KCk7RXQoKTt2dCgpO01lKCk7YmEoKTtndCgpO0N0KCk7c2UoKTtmcCgpO1ByKCk7WHQoKTtZdCgpO0psKCk7WnQoKTtaaSgpO2JpKCk7VWUoKTtJbigpO3VuKCk7cGkoKTt0bigpO1F3KCk7Qm89e307Qm8udG9XaXJlZnJhbWU9ZnVuY3Rpb24obil7bGV0IGU9bi5pbmRpY2VzO2lmKF8oZSkpe3N3aXRjaChuLnByaW1pdGl2ZVR5cGUpe2Nhc2UgRmUuVFJJQU5HTEVTOm4uaW5kaWNlcz12SShlKTticmVhaztjYXNlIEZlLlRSSUFOR0xFX1NUUklQOm4uaW5kaWNlcz1GSShlKTticmVhaztjYXNlIEZlLlRSSUFOR0xFX0ZBTjpuLmluZGljZXM9REkoZSk7YnJlYWt9bi5wcmltaXRpdmVUeXBlPUZlLkxJTkVTfXJldHVybiBufTtCby5jcmVhdGVMaW5lU2VnbWVudHNGb3JWZWN0b3JzPWZ1bmN0aW9uKG4sZSx0KXtlPWU/PyJub3JtYWwiLHQ9dD8/MWU0O2xldCBvPW4uYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsYT1uLmF0dHJpYnV0ZXNbZV0udmFsdWVzLHI9by5sZW5ndGgsaT1uZXcgRmxvYXQ2NEFycmF5KDIqciksZj0wO2ZvcihsZXQgdT0wO3U8cjt1Kz0zKWlbZisrXT1vW3VdLGlbZisrXT1vW3UrMV0saVtmKytdPW9bdSsyXSxpW2YrK109b1t1XSthW3VdKnQsaVtmKytdPW9bdSsxXSthW3UrMV0qdCxpW2YrK109b1t1KzJdK2FbdSsyXSp0O2xldCBkLGM9bi5ib3VuZGluZ1NwaGVyZTtyZXR1cm4gXyhjKSYmKGQ9bmV3IGdlKGMuY2VudGVyLGMucmFkaXVzK3QpKSxuZXcgUGUoe2F0dHJpYnV0ZXM6e3Bvc2l0aW9uOm5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6aX0pfSxwcmltaXRpdmVUeXBlOkZlLkxJTkVTLGJvdW5kaW5nU3BoZXJlOmR9KX07Qm8uY3JlYXRlQXR0cmlidXRlTG9jYXRpb25zPWZ1bmN0aW9uKG4pe2xldCBlPVsicG9zaXRpb24iLCJwb3NpdGlvbkhpZ2giLCJwb3NpdGlvbkxvdyIsInBvc2l0aW9uM0RIaWdoIiwicG9zaXRpb24zRExvdyIsInBvc2l0aW9uMkRIaWdoIiwicG9zaXRpb24yRExvdyIsInBpY2tDb2xvciIsIm5vcm1hbCIsInN0IiwidGFuZ2VudCIsImJpdGFuZ2VudCIsImV4dHJ1ZGVEaXJlY3Rpb24iLCJjb21wcmVzc2VkQXR0cmlidXRlcyJdLHQ9bi5hdHRyaWJ1dGVzLG89e30sYT0wLHIsaT1lLmxlbmd0aDtmb3Iocj0wO3I8aTsrK3Ipe2xldCBmPWVbcl07Xyh0W2ZdKSYmKG9bZl09YSsrKX1mb3IobGV0IGYgaW4gdCl0Lmhhc093blByb3BlcnR5KGYpJiYhXyhvW2ZdKSYmKG9bZl09YSsrKTtyZXR1cm4gb307Qm8ucmVvcmRlckZvclByZVZlcnRleENhY2hlPWZ1bmN0aW9uKG4pe2xldCBlPVBlLmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKG4pLHQ9bi5pbmRpY2VzO2lmKF8odCkpe2xldCBvPW5ldyBJbnQzMkFycmF5KGUpO2ZvcihsZXQgaD0wO2g8ZTtoKyspb1toXT0tMTtsZXQgYT10LHI9YS5sZW5ndGgsaT1JZS5jcmVhdGVUeXBlZEFycmF5KGUsciksZj0wLGQ9MCxjPTAsdTtmb3IoO2Y8cjspdT1vW2FbZl1dLHUhPT0tMT9pW2RdPXU6KHU9YVtmXSxvW3VdPWMsaVtkXT1jLCsrYyksKytmLCsrZDtuLmluZGljZXM9aTtsZXQgbD1uLmF0dHJpYnV0ZXM7Zm9yKGxldCBoIGluIGwpaWYobC5oYXNPd25Qcm9wZXJ0eShoKSYmXyhsW2hdKSYmXyhsW2hdLnZhbHVlcykpe2xldCBtPWxbaF0sYj1tLnZhbHVlcyxwPTAseT1tLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGUsRT1vZS5jcmVhdGVUeXBlZEFycmF5KG0uY29tcG9uZW50RGF0YXR5cGUsYyp5KTtmb3IoO3A8ZTspe2xldCBnPW9bcF07aWYoZyE9PS0xKWZvcihsZXQgQT0wO0E8eTtBKyspRVt5KmcrQV09Ylt5KnArQV07KytwfW0udmFsdWVzPUV9fXJldHVybiBufTtCby5yZW9yZGVyRm9yUG9zdFZlcnRleENhY2hlPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9bi5pbmRpY2VzO2lmKG4ucHJpbWl0aXZlVHlwZT09PUZlLlRSSUFOR0xFUyYmXyh0KSl7bGV0IG89dC5sZW5ndGgsYT0wO2ZvcihsZXQgcj0wO3I8bztyKyspdFtyXT5hJiYoYT10W3JdKTtuLmluZGljZXM9WncudGlwc2lmeSh7aW5kaWNlczp0LG1heGltdW1JbmRleDphLGNhY2hlU2l6ZTplfSl9cmV0dXJuIG59O0JvLmZpdFRvVW5zaWduZWRTaG9ydEluZGljZXM9ZnVuY3Rpb24obil7bGV0IGU9W10sdD1QZS5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyhuKTtpZihfKG4uaW5kaWNlcykmJnQ+PWsuU0lYVFlfRk9VUl9LSUxPQllURVMpe2xldCBvPVtdLGE9W10scj0wLGk9JHcobi5hdHRyaWJ1dGVzKSxmPW4uaW5kaWNlcyxkPWYubGVuZ3RoLGM7bi5wcmltaXRpdmVUeXBlPT09RmUuVFJJQU5HTEVTP2M9MzpuLnByaW1pdGl2ZVR5cGU9PT1GZS5MSU5FUz9jPTI6bi5wcmltaXRpdmVUeXBlPT09RmUuUE9JTlRTJiYoYz0xKTtmb3IobGV0IHU9MDt1PGQ7dSs9Yyl7Zm9yKGxldCBsPTA7bDxjOysrbCl7bGV0IGg9Zlt1K2xdLG09b1toXTtfKG0pfHwobT1yKyssb1toXT1tLEJJKGksbi5hdHRyaWJ1dGVzLGgpKSxhLnB1c2gobSl9citjPj1rLlNJWFRZX0ZPVVJfS0lMT0JZVEVTJiYoZS5wdXNoKG5ldyBQZSh7YXR0cmlidXRlczppLGluZGljZXM6YSxwcmltaXRpdmVUeXBlOm4ucHJpbWl0aXZlVHlwZSxib3VuZGluZ1NwaGVyZTpuLmJvdW5kaW5nU3BoZXJlLGJvdW5kaW5nU3BoZXJlQ1Y6bi5ib3VuZGluZ1NwaGVyZUNWfSkpLG89W10sYT1bXSxyPTAsaT0kdyhuLmF0dHJpYnV0ZXMpKX1hLmxlbmd0aCE9PTAmJmUucHVzaChuZXcgUGUoe2F0dHJpYnV0ZXM6aSxpbmRpY2VzOmEscHJpbWl0aXZlVHlwZTpuLnByaW1pdGl2ZVR5cGUsYm91bmRpbmdTcGhlcmU6bi5ib3VuZGluZ1NwaGVyZSxib3VuZGluZ1NwaGVyZUNWOm4uYm91bmRpbmdTcGhlcmVDVn0pKX1lbHNlIGUucHVzaChuKTtyZXR1cm4gZX07ZVQ9bmV3IHMsakk9bmV3IHJlO0JvLnByb2plY3RUbzJEPWZ1bmN0aW9uKG4sZSx0LG8sYSl7bGV0IHI9bi5hdHRyaWJ1dGVzW2VdO2E9XyhhKT9hOm5ldyBubztsZXQgaT1hLmVsbGlwc29pZCxmPXIudmFsdWVzLGQ9bmV3IEZsb2F0NjRBcnJheShmLmxlbmd0aCksYz0wO2ZvcihsZXQgdT0wO3U8Zi5sZW5ndGg7dSs9Myl7bGV0IGw9cy5mcm9tQXJyYXkoZix1LGVUKSxoPWkuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMobCxqSSksbT1hLnByb2plY3QoaCxlVCk7ZFtjKytdPW0ueCxkW2MrK109bS55LGRbYysrXT1tLnp9cmV0dXJuIG4uYXR0cmlidXRlc1t0XT1yLG4uYXR0cmlidXRlc1tvXT1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmR9KSxkZWxldGUgbi5hdHRyaWJ1dGVzW2VdLG59O19wPXtoaWdoOjAsbG93OjB9O0JvLmVuY29kZUF0dHJpYnV0ZT1mdW5jdGlvbihuLGUsdCxvKXtsZXQgYT1uLmF0dHJpYnV0ZXNbZV0scj1hLnZhbHVlcyxpPXIubGVuZ3RoLGY9bmV3IEZsb2F0MzJBcnJheShpKSxkPW5ldyBGbG9hdDMyQXJyYXkoaSk7Zm9yKGxldCB1PTA7dTxpOysrdSlhYy5lbmNvZGUoclt1XSxfcCksZlt1XT1fcC5oaWdoLGRbdV09X3AubG93O2xldCBjPWEuY29tcG9uZW50c1BlckF0dHJpYnV0ZTtyZXR1cm4gbi5hdHRyaWJ1dGVzW3RdPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpjLHZhbHVlczpmfSksbi5hdHRyaWJ1dGVzW29dPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpjLHZhbHVlczpkfSksZGVsZXRlIG4uYXR0cmlidXRlc1tlXSxufTt6YT1uZXcgczt0aD1uZXcgJCxuaD1uZXcgSjtCby50cmFuc2Zvcm1Ub1dvcmxkQ29vcmRpbmF0ZXM9ZnVuY3Rpb24obil7bGV0IGU9bi5tb2RlbE1hdHJpeDtpZigkLmVxdWFscyhlLCQuSURFTlRJVFkpKXJldHVybiBuO2xldCB0PW4uZ2VvbWV0cnkuYXR0cmlidXRlczt5cChlLHQucG9zaXRpb24pLHlwKGUsdC5wcmV2UG9zaXRpb24pLHlwKGUsdC5uZXh0UG9zaXRpb24pLChfKHQubm9ybWFsKXx8Xyh0LnRhbmdlbnQpfHxfKHQuYml0YW5nZW50KSkmJigkLmludmVyc2UoZSx0aCksJC50cmFuc3Bvc2UodGgsdGgpLCQuZ2V0TWF0cml4Myh0aCxuaCksQXAobmgsdC5ub3JtYWwpLEFwKG5oLHQudGFuZ2VudCksQXAobmgsdC5iaXRhbmdlbnQpKTtsZXQgbz1uLmdlb21ldHJ5LmJvdW5kaW5nU3BoZXJlO3JldHVybiBfKG8pJiYobi5nZW9tZXRyeS5ib3VuZGluZ1NwaGVyZT1nZS50cmFuc2Zvcm0obyxlLG8pKSxuLm1vZGVsTWF0cml4PSQuY2xvbmUoJC5JREVOVElUWSksbn07TEk9bmV3IHM7Qm8uY29tYmluZUluc3RhbmNlcz1mdW5jdGlvbihuKXtsZXQgZT1bXSx0PVtdLG89bi5sZW5ndGg7Zm9yKGxldCByPTA7cjxvOysrcil7bGV0IGk9bltyXTtfKGkuZ2VvbWV0cnkpP2UucHVzaChpKTpfKGkud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSkmJl8oaS5lYXN0SGVtaXNwaGVyZUdlb21ldHJ5KSYmdC5wdXNoKGkpfWxldCBhPVtdO3JldHVybiBlLmxlbmd0aD4wJiZhLnB1c2god3AoZSwiZ2VvbWV0cnkiKSksdC5sZW5ndGg+MCYmKGEucHVzaCh3cCh0LCJ3ZXN0SGVtaXNwaGVyZUdlb21ldHJ5IikpLGEucHVzaCh3cCh0LCJlYXN0SGVtaXNwaGVyZUdlb21ldHJ5IikpKSxhfTtFYT1uZXcgcyxEZj1uZXcgcyxjcz1uZXcgcyxzcz1uZXcgcztCby5jb21wdXRlTm9ybWFsPWZ1bmN0aW9uKG4pe2xldCBlPW4uaW5kaWNlcyx0PW4uYXR0cmlidXRlcyxvPXQucG9zaXRpb24udmFsdWVzLGE9dC5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMscj1lLmxlbmd0aCxpPW5ldyBBcnJheShhKSxmPW5ldyBBcnJheShyLzMpLGQ9bmV3IEFycmF5KHIpLGM7Zm9yKGM9MDtjPGE7YysrKWlbY109e2luZGV4T2Zmc2V0OjAsY291bnQ6MCxjdXJyZW50Q291bnQ6MH07bGV0IHU9MDtmb3IoYz0wO2M8cjtjKz0zKXtsZXQgYj1lW2NdLHA9ZVtjKzFdLHk9ZVtjKzJdLEU9YiozLGc9cCozLEE9eSozO0RmLng9b1tFXSxEZi55PW9bRSsxXSxEZi56PW9bRSsyXSxjcy54PW9bZ10sY3MueT1vW2crMV0sY3Muej1vW2crMl0sc3MueD1vW0FdLHNzLnk9b1tBKzFdLHNzLno9b1tBKzJdLGlbYl0uY291bnQrKyxpW3BdLmNvdW50KyssaVt5XS5jb3VudCsrLHMuc3VidHJhY3QoY3MsRGYsY3MpLHMuc3VidHJhY3Qoc3MsRGYsc3MpLGZbdV09cy5jcm9zcyhjcyxzcyxuZXcgcyksdSsrfWxldCBsPTA7Zm9yKGM9MDtjPGE7YysrKWlbY10uaW5kZXhPZmZzZXQrPWwsbCs9aVtjXS5jb3VudDt1PTA7bGV0IGg7Zm9yKGM9MDtjPHI7Yys9Myl7aD1pW2VbY11dO2xldCBiPWguaW5kZXhPZmZzZXQraC5jdXJyZW50Q291bnQ7ZFtiXT11LGguY3VycmVudENvdW50KyssaD1pW2VbYysxXV0sYj1oLmluZGV4T2Zmc2V0K2guY3VycmVudENvdW50LGRbYl09dSxoLmN1cnJlbnRDb3VudCsrLGg9aVtlW2MrMl1dLGI9aC5pbmRleE9mZnNldCtoLmN1cnJlbnRDb3VudCxkW2JdPXUsaC5jdXJyZW50Q291bnQrKyx1Kyt9bGV0IG09bmV3IEZsb2F0MzJBcnJheShhKjMpO2ZvcihjPTA7YzxhO2MrKyl7bGV0IGI9YyozO2lmKGg9aVtjXSxzLmNsb25lKHMuWkVSTyxFYSksaC5jb3VudD4wKXtmb3IodT0wO3U8aC5jb3VudDt1Kyspcy5hZGQoRWEsZltkW2guaW5kZXhPZmZzZXQrdV1dLEVhKTtzLmVxdWFsc0Vwc2lsb24ocy5aRVJPLEVhLGsuRVBTSUxPTjEwKSYmcy5jbG9uZShmW2RbaC5pbmRleE9mZnNldF1dLEVhKX1zLmVxdWFsc0Vwc2lsb24ocy5aRVJPLEVhLGsuRVBTSUxPTjEwKSYmKEVhLno9MSkscy5ub3JtYWxpemUoRWEsRWEpLG1bYl09RWEueCxtW2IrMV09RWEueSxtW2IrMl09RWEuen1yZXR1cm4gbi5hdHRyaWJ1dGVzLm5vcm1hbD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bX0pLG59O3pJPW5ldyBzLHRUPW5ldyBzLEdJPW5ldyBzO0JvLmNvbXB1dGVUYW5nZW50QW5kQml0YW5nZW50PWZ1bmN0aW9uKG4pe2xldCBlPW4uYXR0cmlidXRlcyx0PW4uaW5kaWNlcyxvPW4uYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsYT1uLmF0dHJpYnV0ZXMubm9ybWFsLnZhbHVlcyxyPW4uYXR0cmlidXRlcy5zdC52YWx1ZXMsaT1uLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLGY9dC5sZW5ndGgsZD1uZXcgQXJyYXkoaSozKSxjO2ZvcihjPTA7YzxkLmxlbmd0aDtjKyspZFtjXT0wO2xldCB1LGwsaDtmb3IoYz0wO2M8ZjtjKz0zKXtsZXQgcD10W2NdLHk9dFtjKzFdLEU9dFtjKzJdO3U9cCozLGw9eSozLGg9RSozO2xldCBnPXAqMixBPXkqMixUPUUqMixSPW9bdV0sUz1vW3UrMV0sTT1vW3UrMl0sST1yW2ddLE49cltnKzFdLFA9cltBKzFdLU4sRj1yW1QrMV0tTix3PTEvKChyW0FdLUkpKkYtKHJbVF0tSSkqUCkseD0oRioob1tsXS1SKS1QKihvW2hdLVIpKSp3LEM9KEYqKG9bbCsxXS1TKS1QKihvW2grMV0tUykpKncsdj0oRioob1tsKzJdLU0pLVAqKG9baCsyXS1NKSkqdztkW3VdKz14LGRbdSsxXSs9QyxkW3UrMl0rPXYsZFtsXSs9eCxkW2wrMV0rPUMsZFtsKzJdKz12LGRbaF0rPXgsZFtoKzFdKz1DLGRbaCsyXSs9dn1sZXQgbT1uZXcgRmxvYXQzMkFycmF5KGkqMyksYj1uZXcgRmxvYXQzMkFycmF5KGkqMyk7Zm9yKGM9MDtjPGk7YysrKXt1PWMqMyxsPXUrMSxoPXUrMjtsZXQgcD1zLmZyb21BcnJheShhLHUsekkpLHk9cy5mcm9tQXJyYXkoZCx1LEdJKSxFPXMuZG90KHAseSk7cy5tdWx0aXBseUJ5U2NhbGFyKHAsRSx0VCkscy5ub3JtYWxpemUocy5zdWJ0cmFjdCh5LHRULHkpLHkpLG1bdV09eS54LG1bbF09eS55LG1baF09eS56LHMubm9ybWFsaXplKHMuY3Jvc3MocCx5LHkpLHkpLGJbdV09eS54LGJbbF09eS55LGJbaF09eS56fXJldHVybiBuLmF0dHJpYnV0ZXMudGFuZ2VudD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bX0pLG4uYXR0cmlidXRlcy5iaXRhbmdlbnQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmJ9KSxufTtCZj1uZXcgWSxMYT1uZXcgcyxuVD1uZXcgcyxvVD1uZXcgcyxvaD1uZXcgWTtCby5jb21wcmVzc1ZlcnRpY2VzPWZ1bmN0aW9uKG4pe2xldCBlPW4uYXR0cmlidXRlcy5leHRydWRlRGlyZWN0aW9uLHQsbztpZihfKGUpKXtsZXQgUz1lLnZhbHVlcztvPVMubGVuZ3RoLzM7bGV0IE09bmV3IEZsb2F0MzJBcnJheShvKjIpLEk9MDtmb3IodD0wO3Q8bzsrK3Qpe2lmKHMuZnJvbUFycmF5KFMsdCozLExhKSxzLmVxdWFscyhMYSxzLlpFUk8pKXtJKz0yO2NvbnRpbnVlfW9oPVV0Lm9jdEVuY29kZUluUmFuZ2UoTGEsNjU1MzUsb2gpLE1bSSsrXT1vaC54LE1bSSsrXT1vaC55fXJldHVybiBuLmF0dHJpYnV0ZXMuY29tcHJlc3NlZEF0dHJpYnV0ZXM9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOk19KSxkZWxldGUgbi5hdHRyaWJ1dGVzLmV4dHJ1ZGVEaXJlY3Rpb24sbn1sZXQgYT1uLmF0dHJpYnV0ZXMubm9ybWFsLHI9bi5hdHRyaWJ1dGVzLnN0LGk9XyhhKSxmPV8ocik7aWYoIWkmJiFmKXJldHVybiBuO2xldCBkPW4uYXR0cmlidXRlcy50YW5nZW50LGM9bi5hdHRyaWJ1dGVzLmJpdGFuZ2VudCx1PV8oZCksbD1fKGMpLGgsbSxiLHA7aSYmKGg9YS52YWx1ZXMpLGYmJihtPXIudmFsdWVzKSx1JiYoYj1kLnZhbHVlcyksbCYmKHA9Yy52YWx1ZXMpLG89KGk/aC5sZW5ndGg6bS5sZW5ndGgpLyhpPzM6Mik7bGV0IGc9byxBPWYmJmk/MjoxO0ErPXV8fGw/MTowLGcqPUE7bGV0IFQ9bmV3IEZsb2F0MzJBcnJheShnKSxSPTA7Zm9yKHQ9MDt0PG87Kyt0KXtmJiYoWS5mcm9tQXJyYXkobSx0KjIsQmYpLFRbUisrXT1VdC5jb21wcmVzc1RleHR1cmVDb29yZGluYXRlcyhCZikpO2xldCBTPXQqMztpJiZfKGIpJiZfKHApPyhzLmZyb21BcnJheShoLFMsTGEpLHMuZnJvbUFycmF5KGIsUyxuVCkscy5mcm9tQXJyYXkocCxTLG9UKSxVdC5vY3RQYWNrKExhLG5ULG9ULEJmKSxUW1IrK109QmYueCxUW1IrK109QmYueSk6KGkmJihzLmZyb21BcnJheShoLFMsTGEpLFRbUisrXT1VdC5vY3RFbmNvZGVGbG9hdChMYSkpLHUmJihzLmZyb21BcnJheShiLFMsTGEpLFRbUisrXT1VdC5vY3RFbmNvZGVGbG9hdChMYSkpLGwmJihzLmZyb21BcnJheShwLFMsTGEpLFRbUisrXT1VdC5vY3RFbmNvZGVGbG9hdChMYSkpKX1yZXR1cm4gbi5hdHRyaWJ1dGVzLmNvbXByZXNzZWRBdHRyaWJ1dGVzPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpBLHZhbHVlczpUfSksaSYmZGVsZXRlIG4uYXR0cmlidXRlcy5ub3JtYWwsZiYmZGVsZXRlIG4uYXR0cmlidXRlcy5zdCxsJiZkZWxldGUgbi5hdHRyaWJ1dGVzLmJpdGFuZ2VudCx1JiZkZWxldGUgbi5hdHRyaWJ1dGVzLnRhbmdlbnQsbn07YVQ9bmV3IHM7aWM9bmV3IHMsY2M9bmV3IHMsc2M9bmV3IHMsZmM9bmV3IHMsVHA9e3Bvc2l0aW9uczpuZXcgQXJyYXkoNyksaW5kaWNlczpuZXcgQXJyYXkoOSl9O1FJPVNwKHJ0LDQpLGloPVNwKHMsMyksdVQ9U3AoWSwyKSwkST1mdW5jdGlvbihuLGUsdCxvLGEscixpKXtsZXQgZj1hW25dKm8ueCxkPWFbZV0qby55LGM9YVt0XSpvLno7cltpXT1mK2QrYz5rLkVQU0lMT042PzE6MH0samY9bmV3IHMsRXA9bmV3IHMsUnA9bmV3IHMsZTM9bmV3IHM7bjM9e3Bvc2l0aW9uOiEwLG5vcm1hbDohMCxiaXRhbmdlbnQ6ITAsdGFuZ2VudDohMCxzdDohMCxleHRydWRlRGlyZWN0aW9uOiEwLGFwcGx5T2Zmc2V0OiEwfTtsVD1ubi5mcm9tUG9pbnROb3JtYWwocy5aRVJPLHMuVU5JVF9ZKSxvMz1uZXcgcyxhMz1uZXcgcztzVD1uZXcgWSxyMz1uZXcgWSxoVD1uZXcgcyxtVD1uZXcgcyx4cD1uZXcgcyxpMz1uZXcgcyxjMz1uZXcgcyxzMz1uZXcgcyxmVD1uZXcgcnQ7ZjM9NSprLkVQU0lMT045LHJoPWsuRVBTSUxPTjY7Qm8uc3BsaXRMb25naXR1ZGU9ZnVuY3Rpb24obil7bGV0IGU9bi5nZW9tZXRyeSx0PWUuYm91bmRpbmdTcGhlcmU7aWYoXyh0KSYmKHQuY2VudGVyLngtdC5yYWRpdXM+MHx8Z2UuaW50ZXJzZWN0UGxhbmUodCxubi5PUklHSU5fWlhfUExBTkUpIT09VG4uSU5URVJTRUNUSU5HKSlyZXR1cm4gbjtpZihlLmdlb21ldHJ5VHlwZSE9PURyLk5PTkUpc3dpdGNoKGUuZ2VvbWV0cnlUeXBlKXtjYXNlIERyLlBPTFlMSU5FUzpkMyhuKTticmVhaztjYXNlIERyLlRSSUFOR0xFUzppVChuKTticmVhaztjYXNlIERyLkxJTkVTOmNUKG4pO2JyZWFrfWVsc2UgWUkoZSksZS5wcmltaXRpdmVUeXBlPT09RmUuVFJJQU5HTEVTP2lUKG4pOmUucHJpbWl0aXZlVHlwZT09PUZlLkxJTkVTJiZjVChuKTtyZXR1cm4gbn07THQ9Qm99KTtmdW5jdGlvbiBVZihuLGUsdCl7bj1uPz8wLGU9ZT8/MCx0PXQ/PzAsdGhpcy52YWx1ZT1uZXcgRmxvYXQzMkFycmF5KFtuLGUsdF0pfXZhciBiVCxwVD1YKCgpPT57Q3QoKTtzZSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFVmLnByb3RvdHlwZSx7Y29tcG9uZW50RGF0YXR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBvZS5GTE9BVH19LGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6e2dldDpmdW5jdGlvbigpe3JldHVybiAzfX0sbm9ybWFsaXplOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX19fSk7VWYuZnJvbUNhcnRlc2lhbjM9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBVZihuLngsbi55LG4ueil9O1VmLnRvVmFsdWU9ZnVuY3Rpb24obixlKXtyZXR1cm4gXyhlKXx8KGU9bmV3IEZsb2F0MzJBcnJheShbbi54LG4ueSxuLnpdKSksZVswXT1uLngsZVsxXT1uLnksZVsyXT1uLnosZX07YlQ9VWZ9KTt2YXIgTGYseW4sX2k9WCgoKT0+e01lKCk7Z3QoKTtzZSgpO1ZlKCk7VWUoKTtMZj1jbGFzcyBue2NvbnN0cnVjdG9yKGUpe3RoaXMuX2VsbGlwc29pZD1lPz9LLldHUzg0LHRoaXMuX3NlbWltYWpvckF4aXM9dGhpcy5fZWxsaXBzb2lkLm1heGltdW1SYWRpdXMsdGhpcy5fb25lT3ZlclNlbWltYWpvckF4aXM9MS90aGlzLl9zZW1pbWFqb3JBeGlzfWdldCBlbGxpcHNvaWQoKXtyZXR1cm4gdGhpcy5fZWxsaXBzb2lkfXN0YXRpYyBtZXJjYXRvckFuZ2xlVG9HZW9kZXRpY0xhdGl0dWRlKGUpe3JldHVybiBrLlBJX09WRVJfVFdPLTIqTWF0aC5hdGFuKE1hdGguZXhwKC1lKSl9c3RhdGljIGdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoZSl7ZT5uLk1heGltdW1MYXRpdHVkZT9lPW4uTWF4aW11bUxhdGl0dWRlOmU8LW4uTWF4aW11bUxhdGl0dWRlJiYoZT0tbi5NYXhpbXVtTGF0aXR1ZGUpO2xldCB0PU1hdGguc2luKGUpO3JldHVybiAuNSpNYXRoLmxvZygoMSt0KS8oMS10KSl9cHJvamVjdChlLHQpe2xldCBvPXRoaXMuX3NlbWltYWpvckF4aXMsYT1lLmxvbmdpdHVkZSpvLHI9bi5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlKGUubGF0aXR1ZGUpKm8saT1lLmhlaWdodDtyZXR1cm4gXyh0KT8odC54PWEsdC55PXIsdC56PWksdCk6bmV3IHMoYSxyLGkpfXVucHJvamVjdChlLHQpe2xldCBvPXRoaXMuX29uZU92ZXJTZW1pbWFqb3JBeGlzLGE9ZS54Km8scj1uLm1lcmNhdG9yQW5nbGVUb0dlb2RldGljTGF0aXR1ZGUoZS55Km8pLGk9ZS56O3JldHVybiBfKHQpPyh0LmxvbmdpdHVkZT1hLHQubGF0aXR1ZGU9cix0LmhlaWdodD1pLHQpOm5ldyByZShhLHIsaSl9fTtMZi5NYXhpbXVtTGF0aXR1ZGU9TGYubWVyY2F0b3JBbmdsZVRvR2VvZGV0aWNMYXRpdHVkZShNYXRoLlBJKTt5bj1MZn0pO2Z1bmN0aW9uIHUzKG4sZSx0KXtsZXQgbz0hdCxhPW4ubGVuZ3RoLHI7aWYoIW8mJmE+MSl7bGV0IGk9blswXS5tb2RlbE1hdHJpeDtmb3Iocj0xO3I8YTsrK3IpaWYoISQuZXF1YWxzKGksbltyXS5tb2RlbE1hdHJpeCkpe289ITA7YnJlYWt9fWlmKG8pZm9yKHI9MDtyPGE7KytyKV8obltyXS5nZW9tZXRyeSkmJkx0LnRyYW5zZm9ybVRvV29ybGRDb29yZGluYXRlcyhuW3JdKTtlbHNlICQubXVsdGlwbHlUcmFuc2Zvcm1hdGlvbihlLG5bMF0ubW9kZWxNYXRyaXgsZSl9ZnVuY3Rpb24gQ3AobixlKXtsZXQgdD1uLmF0dHJpYnV0ZXMsbz10LnBvc2l0aW9uLGE9by52YWx1ZXMubGVuZ3RoL28uY29tcG9uZW50c1BlckF0dHJpYnV0ZTt0LmJhdGNoSWQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOm5ldyBGbG9hdDMyQXJyYXkoYSl9KTtsZXQgcj10LmJhdGNoSWQudmFsdWVzO2ZvcihsZXQgaT0wO2k8YTsrK2kpcltpXT1lfWZ1bmN0aW9uIGwzKG4pe2xldCBlPW4ubGVuZ3RoO2ZvcihsZXQgdD0wO3Q8ZTsrK3Qpe2xldCBvPW5bdF07XyhvLmdlb21ldHJ5KT9DcChvLmdlb21ldHJ5LHQpOl8oby53ZXN0SGVtaXNwaGVyZUdlb21ldHJ5KSYmXyhvLmVhc3RIZW1pc3BoZXJlR2VvbWV0cnkpJiYoQ3Aoby53ZXN0SGVtaXNwaGVyZUdlb21ldHJ5LHQpLENwKG8uZWFzdEhlbWlzcGhlcmVHZW9tZXRyeSx0KSl9fWZ1bmN0aW9uIGgzKG4pe2xldCBlPW4uaW5zdGFuY2VzLHQ9bi5wcm9qZWN0aW9uLG89bi5lbGVtZW50SW5kZXhVaW50U3VwcG9ydGVkLGE9bi5zY2VuZTNET25seSxyPW4udmVydGV4Q2FjaGVPcHRpbWl6ZSxpPW4uY29tcHJlc3NWZXJ0aWNlcyxmPW4ubW9kZWxNYXRyaXgsZCxjLHUsbD1lLmxlbmd0aDtmb3IoZD0wO2Q8bDsrK2QpaWYoXyhlW2RdLmdlb21ldHJ5KSl7dT1lW2RdLmdlb21ldHJ5LnByaW1pdGl2ZVR5cGU7YnJlYWt9aWYodTMoZSxmLGEpLCFhKWZvcihkPTA7ZDxsOysrZClfKGVbZF0uZ2VvbWV0cnkpJiZMdC5zcGxpdExvbmdpdHVkZShlW2RdKTtpZihsMyhlKSxyKWZvcihkPTA7ZDxsOysrZCl7bGV0IG09ZVtkXTtfKG0uZ2VvbWV0cnkpPyhMdC5yZW9yZGVyRm9yUG9zdFZlcnRleENhY2hlKG0uZ2VvbWV0cnkpLEx0LnJlb3JkZXJGb3JQcmVWZXJ0ZXhDYWNoZShtLmdlb21ldHJ5KSk6XyhtLndlc3RIZW1pc3BoZXJlR2VvbWV0cnkpJiZfKG0uZWFzdEhlbWlzcGhlcmVHZW9tZXRyeSkmJihMdC5yZW9yZGVyRm9yUG9zdFZlcnRleENhY2hlKG0ud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSksTHQucmVvcmRlckZvclByZVZlcnRleENhY2hlKG0ud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSksTHQucmVvcmRlckZvclBvc3RWZXJ0ZXhDYWNoZShtLmVhc3RIZW1pc3BoZXJlR2VvbWV0cnkpLEx0LnJlb3JkZXJGb3JQcmVWZXJ0ZXhDYWNoZShtLmVhc3RIZW1pc3BoZXJlR2VvbWV0cnkpKX1sZXQgaD1MdC5jb21iaW5lSW5zdGFuY2VzKGUpO2ZvcihsPWgubGVuZ3RoLGQ9MDtkPGw7KytkKXtjPWhbZF07bGV0IG09Yy5hdHRyaWJ1dGVzO2lmKGEpZm9yKGxldCBiIGluIG0pbS5oYXNPd25Qcm9wZXJ0eShiKSYmbVtiXS5jb21wb25lbnREYXRhdHlwZT09PW9lLkRPVUJMRSYmTHQuZW5jb2RlQXR0cmlidXRlKGMsYixgJHtifTNESGlnaGAsYCR7Yn0zRExvd2ApO2Vsc2UgZm9yKGxldCBiIGluIG0paWYobS5oYXNPd25Qcm9wZXJ0eShiKSYmbVtiXS5jb21wb25lbnREYXRhdHlwZT09PW9lLkRPVUJMRSl7bGV0IHA9YCR7Yn0zRGAseT1gJHtifTJEYDtMdC5wcm9qZWN0VG8yRChjLGIscCx5LHQpLF8oYy5ib3VuZGluZ1NwaGVyZSkmJmI9PT0icG9zaXRpb24iJiYoYy5ib3VuZGluZ1NwaGVyZUNWPWdlLmZyb21WZXJ0aWNlcyhjLmF0dHJpYnV0ZXMucG9zaXRpb24yRC52YWx1ZXMpKSxMdC5lbmNvZGVBdHRyaWJ1dGUoYyxwLGAke3B9SGlnaGAsYCR7cH1Mb3dgKSxMdC5lbmNvZGVBdHRyaWJ1dGUoYyx5LGAke3l9SGlnaGAsYCR7eX1Mb3dgKX1pJiZMdC5jb21wcmVzc1ZlcnRpY2VzKGMpfWlmKCFvKXtsZXQgbT1bXTtmb3IobD1oLmxlbmd0aCxkPTA7ZDxsOysrZCljPWhbZF0sbT1tLmNvbmNhdChMdC5maXRUb1Vuc2lnbmVkU2hvcnRJbmRpY2VzKGMpKTtoPW19cmV0dXJuIGh9ZnVuY3Rpb24gTXAobixlLHQsbyl7bGV0IGEscixpLGY9by5sZW5ndGgtMTtpZihmPj0wKXtsZXQgYz1vW2ZdO2E9Yy5vZmZzZXQrYy5jb3VudCxpPWMuaW5kZXgscj10W2ldLmluZGljZXMubGVuZ3RofWVsc2UgYT0wLGk9MCxyPXRbaV0uaW5kaWNlcy5sZW5ndGg7bGV0IGQ9bi5sZW5ndGg7Zm9yKGxldCBjPTA7YzxkOysrYyl7bGV0IGw9bltjXVtlXTtpZighXyhsKSljb250aW51ZTtsZXQgaD1sLmluZGljZXMubGVuZ3RoO2EraD5yJiYoYT0wLHI9dFsrK2ldLmluZGljZXMubGVuZ3RoKSxvLnB1c2goe2luZGV4Omksb2Zmc2V0OmEsY291bnQ6aH0pLGErPWh9fWZ1bmN0aW9uIG0zKG4sZSl7bGV0IHQ9W107cmV0dXJuIE1wKG4sImdlb21ldHJ5IixlLHQpLE1wKG4sIndlc3RIZW1pc3BoZXJlR2VvbWV0cnkiLGUsdCksTXAobiwiZWFzdEhlbWlzcGhlcmVHZW9tZXRyeSIsZSx0KSx0fWZ1bmN0aW9uIGIzKG4sZSl7bGV0IHQ9bi5hdHRyaWJ1dGVzO2ZvcihsZXQgbyBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkobykpe2xldCBhPXRbb107XyhhKSYmXyhhLnZhbHVlcykmJmUucHVzaChhLnZhbHVlcy5idWZmZXIpfV8obi5pbmRpY2VzKSYmZS5wdXNoKG4uaW5kaWNlcy5idWZmZXIpfWZ1bmN0aW9uIHAzKG4sZSl7bGV0IHQ9bi5sZW5ndGg7Zm9yKGxldCBvPTA7bzx0OysrbyliMyhuW29dLGUpfWZ1bmN0aW9uIGczKG4pe2xldCBlPTEsdD1uLmxlbmd0aDtmb3IobGV0IG89MDtvPHQ7bysrKXtsZXQgYT1uW29dO2lmKCsrZSwhXyhhKSljb250aW51ZTtsZXQgcj1hLmF0dHJpYnV0ZXM7ZSs9NysyKmdlLnBhY2tlZExlbmd0aCsoXyhhLmluZGljZXMpP2EuaW5kaWNlcy5sZW5ndGg6MCk7Zm9yKGxldCBpIGluIHIpaWYoci5oYXNPd25Qcm9wZXJ0eShpKSYmXyhyW2ldKSl7bGV0IGY9cltpXTtlKz01K2YudmFsdWVzLmxlbmd0aH19cmV0dXJuIGV9ZnVuY3Rpb24gXzMobixlKXtsZXQgdD1uLmxlbmd0aCxvPW5ldyBGbG9hdDY0QXJyYXkoMSt0KjE5KSxhPTA7b1thKytdPXQ7Zm9yKGxldCByPTA7cjx0O3IrKyl7bGV0IGk9bltyXTtpZigkLnBhY2soaS5tb2RlbE1hdHJpeCxvLGEpLGErPSQucGFja2VkTGVuZ3RoLF8oaS5hdHRyaWJ1dGVzKSYmXyhpLmF0dHJpYnV0ZXMub2Zmc2V0KSl7bGV0IGY9aS5hdHRyaWJ1dGVzLm9mZnNldC52YWx1ZTtvW2FdPWZbMF0sb1thKzFdPWZbMV0sb1thKzJdPWZbMl19YSs9M31yZXR1cm4gZS5wdXNoKG8uYnVmZmVyKSxvfWZ1bmN0aW9uIHkzKG4pe2xldCBlPW4sdD1uZXcgQXJyYXkoZVswXSksbz0wLGE9MTtmb3IoO2E8ZS5sZW5ndGg7KXtsZXQgcj0kLnVucGFjayhlLGEpLGk7YSs9JC5wYWNrZWRMZW5ndGgsXyhlW2FdKSYmKGk9e29mZnNldDpuZXcgYlQoZVthXSxlW2ErMV0sZVthKzJdKX0pLGErPTMsdFtvKytdPXttb2RlbE1hdHJpeDpyLGF0dHJpYnV0ZXM6aX19cmV0dXJuIHR9ZnVuY3Rpb24gZ1Qobil7bGV0IGU9bi5sZW5ndGgsdD0xKyhnZS5wYWNrZWRMZW5ndGgrMSkqZSxvPW5ldyBGbG9hdDMyQXJyYXkodCksYT0wO29bYSsrXT1lO2ZvcihsZXQgcj0wO3I8ZTsrK3Ipe2xldCBpPW5bcl07XyhpKT8ob1thKytdPTEsZ2UucGFjayhuW3JdLG8sYSkpOm9bYSsrXT0wLGErPWdlLnBhY2tlZExlbmd0aH1yZXR1cm4gb31mdW5jdGlvbiBfVChuKXtsZXQgZT1uZXcgQXJyYXkoblswXSksdD0wLG89MTtmb3IoO288bi5sZW5ndGg7KW5bbysrXT09PTEmJihlW3RdPWdlLnVucGFjayhuLG8pKSwrK3Qsbys9Z2UucGFja2VkTGVuZ3RoO3JldHVybiBlfXZhciBVcix1cyxOcD1YKCgpPT57RXQoKTtDdCgpO3NlKCk7VmUoKTtQcigpO1h0KCk7WXQoKTtybigpO2ZyKCk7WnQoKTt1bigpO3BUKCk7X2koKTtVcj17fTtVci5jb21iaW5lR2VvbWV0cnk9ZnVuY3Rpb24obil7bGV0IGUsdCxvPW4uaW5zdGFuY2VzLGE9by5sZW5ndGgscixpLGY9ITE7YT4wJiYoZT1oMyhuKSxlLmxlbmd0aD4wJiYodD1MdC5jcmVhdGVBdHRyaWJ1dGVMb2NhdGlvbnMoZVswXSksbi5jcmVhdGVQaWNrT2Zmc2V0cyYmKHI9bTMobyxlKSkpLF8ob1swXS5hdHRyaWJ1dGVzKSYmXyhvWzBdLmF0dHJpYnV0ZXMub2Zmc2V0KSYmKGk9bmV3IEFycmF5KGEpLGY9ITApKTtsZXQgZD1uZXcgQXJyYXkoYSksYz1uZXcgQXJyYXkoYSk7Zm9yKGxldCB1PTA7dTxhOysrdSl7bGV0IGw9b1t1XSxoPWwuZ2VvbWV0cnk7XyhoKSYmKGRbdV09aC5ib3VuZGluZ1NwaGVyZSxjW3VdPWguYm91bmRpbmdTcGhlcmVDVixmJiYoaVt1XT1sLmdlb21ldHJ5Lm9mZnNldEF0dHJpYnV0ZSkpO2xldCBtPWwuZWFzdEhlbWlzcGhlcmVHZW9tZXRyeSxiPWwud2VzdEhlbWlzcGhlcmVHZW9tZXRyeTtfKG0pJiZfKGIpJiYoXyhtLmJvdW5kaW5nU3BoZXJlKSYmXyhiLmJvdW5kaW5nU3BoZXJlKSYmKGRbdV09Z2UudW5pb24obS5ib3VuZGluZ1NwaGVyZSxiLmJvdW5kaW5nU3BoZXJlKSksXyhtLmJvdW5kaW5nU3BoZXJlQ1YpJiZfKGIuYm91bmRpbmdTcGhlcmVDVikmJihjW3VdPWdlLnVuaW9uKG0uYm91bmRpbmdTcGhlcmVDVixiLmJvdW5kaW5nU3BoZXJlQ1YpKSl9cmV0dXJue2dlb21ldHJpZXM6ZSxtb2RlbE1hdHJpeDpuLm1vZGVsTWF0cml4LGF0dHJpYnV0ZUxvY2F0aW9uczp0LHBpY2tPZmZzZXRzOnIsb2Zmc2V0SW5zdGFuY2VFeHRlbmQ6aSxib3VuZGluZ1NwaGVyZXM6ZCxib3VuZGluZ1NwaGVyZXNDVjpjfX07VXIucGFja0NyZWF0ZUdlb21ldHJ5UmVzdWx0cz1mdW5jdGlvbihuLGUpe2xldCB0PW5ldyBGbG9hdDY0QXJyYXkoZzMobikpLG89W10sYT17fSxyPW4ubGVuZ3RoLGk9MDt0W2krK109cjtmb3IobGV0IGY9MDtmPHI7ZisrKXtsZXQgZD1uW2ZdLGM9XyhkKTtpZih0W2krK109Yz8xOjAsIWMpY29udGludWU7dFtpKytdPWQucHJpbWl0aXZlVHlwZSx0W2krK109ZC5nZW9tZXRyeVR5cGUsdFtpKytdPWQub2Zmc2V0QXR0cmlidXRlPz8tMTtsZXQgdT1fKGQuYm91bmRpbmdTcGhlcmUpPzE6MDt0W2krK109dSx1JiZnZS5wYWNrKGQuYm91bmRpbmdTcGhlcmUsdCxpKSxpKz1nZS5wYWNrZWRMZW5ndGg7bGV0IGw9XyhkLmJvdW5kaW5nU3BoZXJlQ1YpPzE6MDt0W2krK109bCxsJiZnZS5wYWNrKGQuYm91bmRpbmdTcGhlcmVDVix0LGkpLGkrPWdlLnBhY2tlZExlbmd0aDtsZXQgaD1kLmF0dHJpYnV0ZXMsbT1bXTtmb3IobGV0IHAgaW4gaCloLmhhc093blByb3BlcnR5KHApJiZfKGhbcF0pJiYobS5wdXNoKHApLF8oYVtwXSl8fChhW3BdPW8ubGVuZ3RoLG8ucHVzaChwKSkpO3RbaSsrXT1tLmxlbmd0aDtmb3IobGV0IHA9MDtwPG0ubGVuZ3RoO3ArKyl7bGV0IHk9bVtwXSxFPWhbeV07dFtpKytdPWFbeV0sdFtpKytdPUUuY29tcG9uZW50RGF0YXR5cGUsdFtpKytdPUUuY29tcG9uZW50c1BlckF0dHJpYnV0ZSx0W2krK109RS5ub3JtYWxpemU/MTowLHRbaSsrXT1FLnZhbHVlcy5sZW5ndGgsdC5zZXQoRS52YWx1ZXMsaSksaSs9RS52YWx1ZXMubGVuZ3RofWxldCBiPV8oZC5pbmRpY2VzKT9kLmluZGljZXMubGVuZ3RoOjA7dFtpKytdPWIsYj4wJiYodC5zZXQoZC5pbmRpY2VzLGkpLGkrPWIpfXJldHVybiBlLnB1c2godC5idWZmZXIpLHtzdHJpbmdUYWJsZTpvLHBhY2tlZERhdGE6dH19O1VyLnVucGFja0NyZWF0ZUdlb21ldHJ5UmVzdWx0cz1mdW5jdGlvbihuKXtsZXQgZT1uLnN0cmluZ1RhYmxlLHQ9bi5wYWNrZWREYXRhLG8sYT1uZXcgQXJyYXkodFswXSkscj0wLGk9MTtmb3IoO2k8dC5sZW5ndGg7KXtpZighKHRbaSsrXT09PTEpKXthW3IrK109dm9pZCAwO2NvbnRpbnVlfWxldCBkPXRbaSsrXSxjPXRbaSsrXSx1PXRbaSsrXTt1PT09LTEmJih1PXZvaWQgMCk7bGV0IGwsaDt0W2krK109PT0xJiYobD1nZS51bnBhY2sodCxpKSksaSs9Z2UucGFja2VkTGVuZ3RoLHRbaSsrXT09PTEmJihoPWdlLnVucGFjayh0LGkpKSxpKz1nZS5wYWNrZWRMZW5ndGg7bGV0IHAseSxFLGc9bmV3IFFlLEE9dFtpKytdO2ZvcihvPTA7bzxBO28rKyl7bGV0IFI9ZVt0W2krK11dLFM9dFtpKytdO0U9dFtpKytdO2xldCBNPXRbaSsrXSE9PTA7cD10W2krK10seT1vZS5jcmVhdGVUeXBlZEFycmF5KFMscCk7Zm9yKGxldCBJPTA7STxwO0krKyl5W0ldPXRbaSsrXTtnW1JdPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6Uyxjb21wb25lbnRzUGVyQXR0cmlidXRlOkUsbm9ybWFsaXplOk0sdmFsdWVzOnl9KX1sZXQgVDtpZihwPXRbaSsrXSxwPjApe2xldCBSPXkubGVuZ3RoL0U7Zm9yKFQ9SWUuY3JlYXRlVHlwZWRBcnJheShSLHApLG89MDtvPHA7bysrKVRbb109dFtpKytdfWFbcisrXT1uZXcgUGUoe3ByaW1pdGl2ZVR5cGU6ZCxnZW9tZXRyeVR5cGU6Yyxib3VuZGluZ1NwaGVyZTpsLGJvdW5kaW5nU3BoZXJlQ1Y6aCxpbmRpY2VzOlQsYXR0cmlidXRlczpnLG9mZnNldEF0dHJpYnV0ZTp1fSl9cmV0dXJuIGF9O1VyLnBhY2tDb21iaW5lR2VvbWV0cnlQYXJhbWV0ZXJzPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9bi5jcmVhdGVHZW9tZXRyeVJlc3VsdHMsbz10Lmxlbmd0aDtmb3IobGV0IGE9MDthPG87YSsrKWUucHVzaCh0W2FdLnBhY2tlZERhdGEuYnVmZmVyKTtyZXR1cm57Y3JlYXRlR2VvbWV0cnlSZXN1bHRzOm4uY3JlYXRlR2VvbWV0cnlSZXN1bHRzLHBhY2tlZEluc3RhbmNlczpfMyhuLmluc3RhbmNlcyxlKSxlbGxpcHNvaWQ6bi5lbGxpcHNvaWQsaXNHZW9ncmFwaGljOm4ucHJvamVjdGlvbiBpbnN0YW5jZW9mIG5vLGVsZW1lbnRJbmRleFVpbnRTdXBwb3J0ZWQ6bi5lbGVtZW50SW5kZXhVaW50U3VwcG9ydGVkLHNjZW5lM0RPbmx5Om4uc2NlbmUzRE9ubHksdmVydGV4Q2FjaGVPcHRpbWl6ZTpuLnZlcnRleENhY2hlT3B0aW1pemUsY29tcHJlc3NWZXJ0aWNlczpuLmNvbXByZXNzVmVydGljZXMsbW9kZWxNYXRyaXg6bi5tb2RlbE1hdHJpeCxjcmVhdGVQaWNrT2Zmc2V0czpuLmNyZWF0ZVBpY2tPZmZzZXRzfX07VXIudW5wYWNrQ29tYmluZUdlb21ldHJ5UGFyYW1ldGVycz1mdW5jdGlvbihuKXtsZXQgZT15MyhuLnBhY2tlZEluc3RhbmNlcyksdD1uLmNyZWF0ZUdlb21ldHJ5UmVzdWx0cyxvPXQubGVuZ3RoLGE9MDtmb3IobGV0IGY9MDtmPG87ZisrKXtsZXQgZD1Vci51bnBhY2tDcmVhdGVHZW9tZXRyeVJlc3VsdHModFtmXSksYz1kLmxlbmd0aDtmb3IobGV0IHU9MDt1PGM7dSsrKXtsZXQgbD1kW3VdLGg9ZVthXTtoLmdlb21ldHJ5PWwsKythfX1sZXQgcj1LLmNsb25lKG4uZWxsaXBzb2lkKSxpPW4uaXNHZW9ncmFwaGljP25ldyBubyhyKTpuZXcgeW4ocik7cmV0dXJue2luc3RhbmNlczplLGVsbGlwc29pZDpyLHByb2plY3Rpb246aSxlbGVtZW50SW5kZXhVaW50U3VwcG9ydGVkOm4uZWxlbWVudEluZGV4VWludFN1cHBvcnRlZCxzY2VuZTNET25seTpuLnNjZW5lM0RPbmx5LHZlcnRleENhY2hlT3B0aW1pemU6bi52ZXJ0ZXhDYWNoZU9wdGltaXplLGNvbXByZXNzVmVydGljZXM6bi5jb21wcmVzc1ZlcnRpY2VzLG1vZGVsTWF0cml4OiQuY2xvbmUobi5tb2RlbE1hdHJpeCksY3JlYXRlUGlja09mZnNldHM6bi5jcmVhdGVQaWNrT2Zmc2V0c319O1VyLnBhY2tDb21iaW5lR2VvbWV0cnlSZXN1bHRzPWZ1bmN0aW9uKG4sZSl7XyhuLmdlb21ldHJpZXMpJiZwMyhuLmdlb21ldHJpZXMsZSk7bGV0IHQ9Z1Qobi5ib3VuZGluZ1NwaGVyZXMpLG89Z1Qobi5ib3VuZGluZ1NwaGVyZXNDVik7cmV0dXJuIGUucHVzaCh0LmJ1ZmZlcixvLmJ1ZmZlcikse2dlb21ldHJpZXM6bi5nZW9tZXRyaWVzLGF0dHJpYnV0ZUxvY2F0aW9uczpuLmF0dHJpYnV0ZUxvY2F0aW9ucyxtb2RlbE1hdHJpeDpuLm1vZGVsTWF0cml4LHBpY2tPZmZzZXRzOm4ucGlja09mZnNldHMsb2Zmc2V0SW5zdGFuY2VFeHRlbmQ6bi5vZmZzZXRJbnN0YW5jZUV4dGVuZCxib3VuZGluZ1NwaGVyZXM6dCxib3VuZGluZ1NwaGVyZXNDVjpvfX07VXIudW5wYWNrQ29tYmluZUdlb21ldHJ5UmVzdWx0cz1mdW5jdGlvbihuKXtyZXR1cm57Z2VvbWV0cmllczpuLmdlb21ldHJpZXMsYXR0cmlidXRlTG9jYXRpb25zOm4uYXR0cmlidXRlTG9jYXRpb25zLG1vZGVsTWF0cml4Om4ubW9kZWxNYXRyaXgscGlja09mZnNldHM6bi5waWNrT2Zmc2V0cyxvZmZzZXRJbnN0YW5jZUV4dGVuZDpuLm9mZnNldEluc3RhbmNlRXh0ZW5kLGJvdW5kaW5nU3BoZXJlczpfVChuLmJvdW5kaW5nU3BoZXJlcyksYm91bmRpbmdTcGhlcmVzQ1Y6X1Qobi5ib3VuZGluZ1NwaGVyZXNDVil9fTt1cz1Vcn0pO2Z1bmN0aW9uIEEzKG4pe2xldCBlLHQ9bi5uYW1lLG89bi5tZXNzYWdlO18odCkmJl8obyk/ZT1gJHt0fTogJHtvfWA6ZT1uLnRvU3RyaW5nKCk7bGV0IGE9bi5zdGFjaztyZXR1cm4gXyhhKSYmKGUrPWAKJHthfWApLGV9dmFyIHlULEFUPVgoKCk9PntzZSgpO3lUPUEzfSk7dmFyIElwPXt9OyRlKElwLHtkZWZhdWx0OigpPT5tdH0pO2Z1bmN0aW9uIHczKG4pe2FzeW5jIGZ1bmN0aW9uIGUoe2RhdGE6b30pe2xldCBhPVtdLHI9e2lkOm8uaWQscmVzdWx0OnZvaWQgMCxlcnJvcjp2b2lkIDB9O3NlbGYuQ0VTSVVNX0JBU0VfVVJMPW8uYmFzZVVybDt0cnl7bGV0IGk9YXdhaXQgbihvLnBhcmFtZXRlcnMsYSk7ci5yZXN1bHQ9aX1jYXRjaChpKXtpIGluc3RhbmNlb2YgRXJyb3I/ci5lcnJvcj17bmFtZTppLm5hbWUsbWVzc2FnZTppLm1lc3NhZ2Usc3RhY2s6aS5zdGFja306ci5lcnJvcj1pfW8uY2FuVHJhbnNmZXJBcnJheUJ1ZmZlcnx8KGEubGVuZ3RoPTApO3RyeXtwb3N0TWVzc2FnZShyLGEpfWNhdGNoKGkpe3IucmVzdWx0PXZvaWQgMCxyLmVycm9yPWBwb3N0TWVzc2FnZSBmYWlsZWQgd2l0aCBlcnJvcjogJHt5VChpKX0KICB3aXRoIHJlc3BvbnNlTWVzc2FnZTogJHtKU09OLnN0cmluZ2lmeShyKX1gLHBvc3RNZXNzYWdlKHIpfX1mdW5jdGlvbiB0KG8pe3Bvc3RNZXNzYWdlKHtpZDpvLmRhdGE/LmlkLGVycm9yOmBwb3N0TWVzc2FnZSBmYWlsZWQgd2l0aCBlcnJvcjogJHtKU09OLnN0cmluZ2lmeShvKX1gfSl9cmV0dXJuIHNlbGYub25tZXNzYWdlPWUsc2VsZi5vbm1lc3NhZ2VlcnJvcj10LHNlbGZ9dmFyIG10LGtuPVgoKCk9PntBVCgpO210PXczfSk7dmFyIFBwPXt9OyRlKFBwLHtkZWZhdWx0OigpPT5FM30pO2Z1bmN0aW9uIFQzKG4sZSl7bGV0IHQ9dXMudW5wYWNrQ29tYmluZUdlb21ldHJ5UGFyYW1ldGVycyhuKSxvPXVzLmNvbWJpbmVHZW9tZXRyeSh0KTtyZXR1cm4gdXMucGFja0NvbWJpbmVHZW9tZXRyeVJlc3VsdHMobyxlKX12YXIgRTMsa3A9WCgoKT0+e05wKCk7a24oKTtFMz1tdChUMyl9KTt2YXIgd1Qsb3Qsam89WCgoKT0+e3dUPXtOT05FOjAsVE9QOjEsQUxMOjJ9O09iamVjdC5mcmVlemUod1QpO290PXdUfSk7ZnVuY3Rpb24gcW4obil7bj1uPz9PZS5FTVBUWV9PQkpFQ1QsdGhpcy5wb3NpdGlvbj1uLnBvc2l0aW9uPz8hMSx0aGlzLm5vcm1hbD1uLm5vcm1hbD8/ITEsdGhpcy5zdD1uLnN0Pz8hMSx0aGlzLmJpdGFuZ2VudD1uLmJpdGFuZ2VudD8/ITEsdGhpcy50YW5nZW50PW4udGFuZ2VudD8/ITEsdGhpcy5jb2xvcj1uLmNvbG9yPz8hMX12YXIgbGUsQ289WCgoKT0+e3N0KCk7c2UoKTtxbi5QT1NJVElPTl9PTkxZPU9iamVjdC5mcmVlemUobmV3IHFuKHtwb3NpdGlvbjohMH0pKTtxbi5QT1NJVElPTl9BTkRfTk9STUFMPU9iamVjdC5mcmVlemUobmV3IHFuKHtwb3NpdGlvbjohMCxub3JtYWw6ITB9KSk7cW4uUE9TSVRJT05fTk9STUFMX0FORF9TVD1PYmplY3QuZnJlZXplKG5ldyBxbih7cG9zaXRpb246ITAsbm9ybWFsOiEwLHN0OiEwfSkpO3FuLlBPU0lUSU9OX0FORF9TVD1PYmplY3QuZnJlZXplKG5ldyBxbih7cG9zaXRpb246ITAsc3Q6ITB9KSk7cW4uUE9TSVRJT05fQU5EX0NPTE9SPU9iamVjdC5mcmVlemUobmV3IHFuKHtwb3NpdGlvbjohMCxjb2xvcjohMH0pKTtxbi5BTEw9T2JqZWN0LmZyZWV6ZShuZXcgcW4oe3Bvc2l0aW9uOiEwLG5vcm1hbDohMCxzdDohMCx0YW5nZW50OiEwLGJpdGFuZ2VudDohMH0pKTtxbi5ERUZBVUxUPXFuLlBPU0lUSU9OX05PUk1BTF9BTkRfU1Q7cW4ucGFja2VkTGVuZ3RoPTY7cW4ucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCxlW3QrK109bi5wb3NpdGlvbj8xOjAsZVt0KytdPW4ubm9ybWFsPzE6MCxlW3QrK109bi5zdD8xOjAsZVt0KytdPW4udGFuZ2VudD8xOjAsZVt0KytdPW4uYml0YW5nZW50PzE6MCxlW3RdPW4uY29sb3I/MTowLGV9O3FuLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIGU9ZT8/MCxfKHQpfHwodD1uZXcgcW4pLHQucG9zaXRpb249bltlKytdPT09MSx0Lm5vcm1hbD1uW2UrK109PT0xLHQuc3Q9bltlKytdPT09MSx0LnRhbmdlbnQ9bltlKytdPT09MSx0LmJpdGFuZ2VudD1uW2UrK109PT0xLHQuY29sb3I9bltlXT09PTEsdH07cW4uY2xvbmU9ZnVuY3Rpb24obixlKXtpZihfKG4pKXJldHVybiBfKGUpfHwoZT1uZXcgcW4pLGUucG9zaXRpb249bi5wb3NpdGlvbixlLm5vcm1hbD1uLm5vcm1hbCxlLnN0PW4uc3QsZS50YW5nZW50PW4udGFuZ2VudCxlLmJpdGFuZ2VudD1uLmJpdGFuZ2VudCxlLmNvbG9yPW4uY29sb3IsZX07bGU9cW59KTtmdW5jdGlvbiBhYShuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLm1pbmltdW0sdD1uLm1heGltdW0sbz1uLnZlcnRleEZvcm1hdD8/bGUuREVGQVVMVDt0aGlzLl9taW5pbXVtPXMuY2xvbmUoZSksdGhpcy5fbWF4aW11bT1zLmNsb25lKHQpLHRoaXMuX3ZlcnRleEZvcm1hdD1vLHRoaXMuX29mZnNldEF0dHJpYnV0ZT1uLm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVCb3hHZW9tZXRyeSJ9dmFyIFIzLEVULFJULHhULFRULHZwLHpmLEZwPVgoKCk9PntFdCgpO01lKCk7Q3QoKTtzdCgpO3NlKCk7WHQoKTtZdCgpO3JuKCk7am8oKTt0bigpO0NvKCk7UjM9bmV3IHM7YWEuZnJvbURpbWVuc2lvbnM9ZnVuY3Rpb24obil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5kaW1lbnNpb25zLHQ9cy5tdWx0aXBseUJ5U2NhbGFyKGUsLjUsbmV3IHMpO3JldHVybiBuZXcgYWEoe21pbmltdW06cy5uZWdhdGUodCxuZXcgcyksbWF4aW11bTp0LHZlcnRleEZvcm1hdDpuLnZlcnRleEZvcm1hdCxvZmZzZXRBdHRyaWJ1dGU6bi5vZmZzZXRBdHRyaWJ1dGV9KX07YWEuZnJvbUF4aXNBbGlnbmVkQm91bmRpbmdCb3g9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBhYSh7bWluaW11bTpuLm1pbmltdW0sbWF4aW11bTpuLm1heGltdW19KX07YWEucGFja2VkTGVuZ3RoPTIqcy5wYWNrZWRMZW5ndGgrbGUucGFja2VkTGVuZ3RoKzE7YWEucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCxzLnBhY2sobi5fbWluaW11bSxlLHQpLHMucGFjayhuLl9tYXhpbXVtLGUsdCtzLnBhY2tlZExlbmd0aCksbGUucGFjayhuLl92ZXJ0ZXhGb3JtYXQsZSx0KzIqcy5wYWNrZWRMZW5ndGgpLGVbdCsyKnMucGFja2VkTGVuZ3RoK2xlLnBhY2tlZExlbmd0aF09bi5fb2Zmc2V0QXR0cmlidXRlPz8tMSxlfTtFVD1uZXcgcyxSVD1uZXcgcyx4VD1uZXcgbGUsVFQ9e21pbmltdW06RVQsbWF4aW11bTpSVCx2ZXJ0ZXhGb3JtYXQ6eFQsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07YWEudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtlPWU/PzA7bGV0IG89cy51bnBhY2sobixlLEVUKSxhPXMudW5wYWNrKG4sZStzLnBhY2tlZExlbmd0aCxSVCkscj1sZS51bnBhY2sobixlKzIqcy5wYWNrZWRMZW5ndGgseFQpLGk9bltlKzIqcy5wYWNrZWRMZW5ndGgrbGUucGFja2VkTGVuZ3RoXTtyZXR1cm4gXyh0KT8odC5fbWluaW11bT1zLmNsb25lKG8sdC5fbWluaW11bSksdC5fbWF4aW11bT1zLmNsb25lKGEsdC5fbWF4aW11bSksdC5fdmVydGV4Rm9ybWF0PWxlLmNsb25lKHIsdC5fdmVydGV4Rm9ybWF0KSx0Ll9vZmZzZXRBdHRyaWJ1dGU9aT09PS0xP3ZvaWQgMDppLHQpOihUVC5vZmZzZXRBdHRyaWJ1dGU9aT09PS0xP3ZvaWQgMDppLG5ldyBhYShUVCkpfTthYS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbihuKXtsZXQgZT1uLl9taW5pbXVtLHQ9bi5fbWF4aW11bSxvPW4uX3ZlcnRleEZvcm1hdDtpZihzLmVxdWFscyhlLHQpKXJldHVybjtsZXQgYT1uZXcgUWUscixpO2lmKG8ucG9zaXRpb24mJihvLnN0fHxvLm5vcm1hbHx8by50YW5nZW50fHxvLmJpdGFuZ2VudCkpe2lmKG8ucG9zaXRpb24mJihpPW5ldyBGbG9hdDY0QXJyYXkoNzIpLGlbMF09ZS54LGlbMV09ZS55LGlbMl09dC56LGlbM109dC54LGlbNF09ZS55LGlbNV09dC56LGlbNl09dC54LGlbN109dC55LGlbOF09dC56LGlbOV09ZS54LGlbMTBdPXQueSxpWzExXT10LnosaVsxMl09ZS54LGlbMTNdPWUueSxpWzE0XT1lLnosaVsxNV09dC54LGlbMTZdPWUueSxpWzE3XT1lLnosaVsxOF09dC54LGlbMTldPXQueSxpWzIwXT1lLnosaVsyMV09ZS54LGlbMjJdPXQueSxpWzIzXT1lLnosaVsyNF09dC54LGlbMjVdPWUueSxpWzI2XT1lLnosaVsyN109dC54LGlbMjhdPXQueSxpWzI5XT1lLnosaVszMF09dC54LGlbMzFdPXQueSxpWzMyXT10LnosaVszM109dC54LGlbMzRdPWUueSxpWzM1XT10LnosaVszNl09ZS54LGlbMzddPWUueSxpWzM4XT1lLnosaVszOV09ZS54LGlbNDBdPXQueSxpWzQxXT1lLnosaVs0Ml09ZS54LGlbNDNdPXQueSxpWzQ0XT10LnosaVs0NV09ZS54LGlbNDZdPWUueSxpWzQ3XT10LnosaVs0OF09ZS54LGlbNDldPXQueSxpWzUwXT1lLnosaVs1MV09dC54LGlbNTJdPXQueSxpWzUzXT1lLnosaVs1NF09dC54LGlbNTVdPXQueSxpWzU2XT10LnosaVs1N109ZS54LGlbNThdPXQueSxpWzU5XT10LnosaVs2MF09ZS54LGlbNjFdPWUueSxpWzYyXT1lLnosaVs2M109dC54LGlbNjRdPWUueSxpWzY1XT1lLnosaVs2Nl09dC54LGlbNjddPWUueSxpWzY4XT10LnosaVs2OV09ZS54LGlbNzBdPWUueSxpWzcxXT10LnosYS5wb3NpdGlvbj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOml9KSksby5ub3JtYWwpe2xldCBjPW5ldyBGbG9hdDMyQXJyYXkoNzIpO2NbMF09MCxjWzFdPTAsY1syXT0xLGNbM109MCxjWzRdPTAsY1s1XT0xLGNbNl09MCxjWzddPTAsY1s4XT0xLGNbOV09MCxjWzEwXT0wLGNbMTFdPTEsY1sxMl09MCxjWzEzXT0wLGNbMTRdPS0xLGNbMTVdPTAsY1sxNl09MCxjWzE3XT0tMSxjWzE4XT0wLGNbMTldPTAsY1syMF09LTEsY1syMV09MCxjWzIyXT0wLGNbMjNdPS0xLGNbMjRdPTEsY1syNV09MCxjWzI2XT0wLGNbMjddPTEsY1syOF09MCxjWzI5XT0wLGNbMzBdPTEsY1szMV09MCxjWzMyXT0wLGNbMzNdPTEsY1szNF09MCxjWzM1XT0wLGNbMzZdPS0xLGNbMzddPTAsY1szOF09MCxjWzM5XT0tMSxjWzQwXT0wLGNbNDFdPTAsY1s0Ml09LTEsY1s0M109MCxjWzQ0XT0wLGNbNDVdPS0xLGNbNDZdPTAsY1s0N109MCxjWzQ4XT0wLGNbNDldPTEsY1s1MF09MCxjWzUxXT0wLGNbNTJdPTEsY1s1M109MCxjWzU0XT0wLGNbNTVdPTEsY1s1Nl09MCxjWzU3XT0wLGNbNThdPTEsY1s1OV09MCxjWzYwXT0wLGNbNjFdPS0xLGNbNjJdPTAsY1s2M109MCxjWzY0XT0tMSxjWzY1XT0wLGNbNjZdPTAsY1s2N109LTEsY1s2OF09MCxjWzY5XT0wLGNbNzBdPS0xLGNbNzFdPTAsYS5ub3JtYWw9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmN9KX1pZihvLnN0KXtsZXQgYz1uZXcgRmxvYXQzMkFycmF5KDQ4KTtjWzBdPTAsY1sxXT0wLGNbMl09MSxjWzNdPTAsY1s0XT0xLGNbNV09MSxjWzZdPTAsY1s3XT0xLGNbOF09MSxjWzldPTAsY1sxMF09MCxjWzExXT0wLGNbMTJdPTAsY1sxM109MSxjWzE0XT0xLGNbMTVdPTEsY1sxNl09MCxjWzE3XT0wLGNbMThdPTEsY1sxOV09MCxjWzIwXT0xLGNbMjFdPTEsY1syMl09MCxjWzIzXT0xLGNbMjRdPTEsY1syNV09MCxjWzI2XT0wLGNbMjddPTAsY1syOF09MCxjWzI5XT0xLGNbMzBdPTEsY1szMV09MSxjWzMyXT0xLGNbMzNdPTAsY1szNF09MCxjWzM1XT0wLGNbMzZdPTAsY1szN109MSxjWzM4XT0xLGNbMzldPTEsY1s0MF09MCxjWzQxXT0wLGNbNDJdPTEsY1s0M109MCxjWzQ0XT0xLGNbNDVdPTEsY1s0Nl09MCxjWzQ3XT0xLGEuc3Q9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOmN9KX1pZihvLnRhbmdlbnQpe2xldCBjPW5ldyBGbG9hdDMyQXJyYXkoNzIpO2NbMF09MSxjWzFdPTAsY1syXT0wLGNbM109MSxjWzRdPTAsY1s1XT0wLGNbNl09MSxjWzddPTAsY1s4XT0wLGNbOV09MSxjWzEwXT0wLGNbMTFdPTAsY1sxMl09LTEsY1sxM109MCxjWzE0XT0wLGNbMTVdPS0xLGNbMTZdPTAsY1sxN109MCxjWzE4XT0tMSxjWzE5XT0wLGNbMjBdPTAsY1syMV09LTEsY1syMl09MCxjWzIzXT0wLGNbMjRdPTAsY1syNV09MSxjWzI2XT0wLGNbMjddPTAsY1syOF09MSxjWzI5XT0wLGNbMzBdPTAsY1szMV09MSxjWzMyXT0wLGNbMzNdPTAsY1szNF09MSxjWzM1XT0wLGNbMzZdPTAsY1szN109LTEsY1szOF09MCxjWzM5XT0wLGNbNDBdPS0xLGNbNDFdPTAsY1s0Ml09MCxjWzQzXT0tMSxjWzQ0XT0wLGNbNDVdPTAsY1s0Nl09LTEsY1s0N109MCxjWzQ4XT0tMSxjWzQ5XT0wLGNbNTBdPTAsY1s1MV09LTEsY1s1Ml09MCxjWzUzXT0wLGNbNTRdPS0xLGNbNTVdPTAsY1s1Nl09MCxjWzU3XT0tMSxjWzU4XT0wLGNbNTldPTAsY1s2MF09MSxjWzYxXT0wLGNbNjJdPTAsY1s2M109MSxjWzY0XT0wLGNbNjVdPTAsY1s2Nl09MSxjWzY3XT0wLGNbNjhdPTAsY1s2OV09MSxjWzcwXT0wLGNbNzFdPTAsYS50YW5nZW50PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpjfSl9aWYoby5iaXRhbmdlbnQpe2xldCBjPW5ldyBGbG9hdDMyQXJyYXkoNzIpO2NbMF09MCxjWzFdPTEsY1syXT0wLGNbM109MCxjWzRdPTEsY1s1XT0wLGNbNl09MCxjWzddPTEsY1s4XT0wLGNbOV09MCxjWzEwXT0xLGNbMTFdPTAsY1sxMl09MCxjWzEzXT0xLGNbMTRdPTAsY1sxNV09MCxjWzE2XT0xLGNbMTddPTAsY1sxOF09MCxjWzE5XT0xLGNbMjBdPTAsY1syMV09MCxjWzIyXT0xLGNbMjNdPTAsY1syNF09MCxjWzI1XT0wLGNbMjZdPTEsY1syN109MCxjWzI4XT0wLGNbMjldPTEsY1szMF09MCxjWzMxXT0wLGNbMzJdPTEsY1szM109MCxjWzM0XT0wLGNbMzVdPTEsY1szNl09MCxjWzM3XT0wLGNbMzhdPTEsY1szOV09MCxjWzQwXT0wLGNbNDFdPTEsY1s0Ml09MCxjWzQzXT0wLGNbNDRdPTEsY1s0NV09MCxjWzQ2XT0wLGNbNDddPTEsY1s0OF09MCxjWzQ5XT0wLGNbNTBdPTEsY1s1MV09MCxjWzUyXT0wLGNbNTNdPTEsY1s1NF09MCxjWzU1XT0wLGNbNTZdPTEsY1s1N109MCxjWzU4XT0wLGNbNTldPTEsY1s2MF09MCxjWzYxXT0wLGNbNjJdPTEsY1s2M109MCxjWzY0XT0wLGNbNjVdPTEsY1s2Nl09MCxjWzY3XT0wLGNbNjhdPTEsY1s2OV09MCxjWzcwXT0wLGNbNzFdPTEsYS5iaXRhbmdlbnQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmN9KX1yPW5ldyBVaW50MTZBcnJheSgzNiksclswXT0wLHJbMV09MSxyWzJdPTIsclszXT0wLHJbNF09MixyWzVdPTMscls2XT02LHJbN109NSxyWzhdPTQscls5XT03LHJbMTBdPTYsclsxMV09NCxyWzEyXT04LHJbMTNdPTksclsxNF09MTAsclsxNV09OCxyWzE2XT0xMCxyWzE3XT0xMSxyWzE4XT0xNCxyWzE5XT0xMyxyWzIwXT0xMixyWzIxXT0xNSxyWzIyXT0xNCxyWzIzXT0xMixyWzI0XT0xOCxyWzI1XT0xNyxyWzI2XT0xNixyWzI3XT0xOSxyWzI4XT0xOCxyWzI5XT0xNixyWzMwXT0yMCxyWzMxXT0yMSxyWzMyXT0yMixyWzMzXT0yMCxyWzM0XT0yMixyWzM1XT0yM31lbHNlIGk9bmV3IEZsb2F0NjRBcnJheSgyNCksaVswXT1lLngsaVsxXT1lLnksaVsyXT1lLnosaVszXT10LngsaVs0XT1lLnksaVs1XT1lLnosaVs2XT10LngsaVs3XT10LnksaVs4XT1lLnosaVs5XT1lLngsaVsxMF09dC55LGlbMTFdPWUueixpWzEyXT1lLngsaVsxM109ZS55LGlbMTRdPXQueixpWzE1XT10LngsaVsxNl09ZS55LGlbMTddPXQueixpWzE4XT10LngsaVsxOV09dC55LGlbMjBdPXQueixpWzIxXT1lLngsaVsyMl09dC55LGlbMjNdPXQueixhLnBvc2l0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6aX0pLHI9bmV3IFVpbnQxNkFycmF5KDM2KSxyWzBdPTQsclsxXT01LHJbMl09NixyWzNdPTQscls0XT02LHJbNV09NyxyWzZdPTEscls3XT0wLHJbOF09MyxyWzldPTEsclsxMF09MyxyWzExXT0yLHJbMTJdPTEsclsxM109NixyWzE0XT01LHJbMTVdPTEsclsxNl09MixyWzE3XT02LHJbMThdPTIsclsxOV09MyxyWzIwXT03LHJbMjFdPTIsclsyMl09NyxyWzIzXT02LHJbMjRdPTMsclsyNV09MCxyWzI2XT00LHJbMjddPTMsclsyOF09NCxyWzI5XT03LHJbMzBdPTAsclszMV09MSxyWzMyXT01LHJbMzNdPTAsclszNF09NSxyWzM1XT00O2xldCBmPXMuc3VidHJhY3QodCxlLFIzKSxkPXMubWFnbml0dWRlKGYpKi41O2lmKF8obi5fb2Zmc2V0QXR0cmlidXRlKSl7bGV0IGM9aS5sZW5ndGgsdT1uLl9vZmZzZXRBdHRyaWJ1dGU9PT1vdC5OT05FPzA6MSxsPW5ldyBVaW50OEFycmF5KGMvMykuZmlsbCh1KTthLmFwcGx5T2Zmc2V0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOmx9KX1yZXR1cm4gbmV3IFBlKHthdHRyaWJ1dGVzOmEsaW5kaWNlczpyLHByaW1pdGl2ZVR5cGU6RmUuVFJJQU5HTEVTLGJvdW5kaW5nU3BoZXJlOm5ldyBnZShzLlpFUk8sZCksb2Zmc2V0QXR0cmlidXRlOm4uX29mZnNldEF0dHJpYnV0ZX0pfTthYS5nZXRVbml0Qm94PWZ1bmN0aW9uKCl7cmV0dXJuIF8odnApfHwodnA9YWEuY3JlYXRlR2VvbWV0cnkoYWEuZnJvbURpbWVuc2lvbnMoe2RpbWVuc2lvbnM6bmV3IHMoMSwxLDEpLHZlcnRleEZvcm1hdDpsZS5QT1NJVElPTl9PTkxZfSkpKSx2cH07emY9YWF9KTt2YXIgRHA9e307JGUoRHAse2RlZmF1bHQ6KCk9Pk8zfSk7ZnVuY3Rpb24geDMobixlKXtyZXR1cm4gXyhlKSYmKG49emYudW5wYWNrKG4sZSkpLHpmLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBPMyxCcD1YKCgpPT57RnAoKTtzZSgpO08zPXgzfSk7ZnVuY3Rpb24gZHIobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5taW5pbXVtLHQ9bi5tYXhpbXVtO3RoaXMuX21pbj1zLmNsb25lKGUpLHRoaXMuX21heD1zLmNsb25lKHQpLHRoaXMuX29mZnNldEF0dHJpYnV0ZT1uLm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVCb3hPdXRsaW5lR2VvbWV0cnkifXZhciBTMyxTVCxDVCxPVCxqcCxNVD1YKCgpPT57RXQoKTtNZSgpO0N0KCk7c3QoKTtzZSgpO1h0KCk7WXQoKTtybigpO2pvKCk7dG4oKTtTMz1uZXcgcztkci5mcm9tRGltZW5zaW9ucz1mdW5jdGlvbihuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLmRpbWVuc2lvbnMsdD1zLm11bHRpcGx5QnlTY2FsYXIoZSwuNSxuZXcgcyk7cmV0dXJuIG5ldyBkcih7bWluaW11bTpzLm5lZ2F0ZSh0LG5ldyBzKSxtYXhpbXVtOnQsb2Zmc2V0QXR0cmlidXRlOm4ub2Zmc2V0QXR0cmlidXRlfSl9O2RyLmZyb21BeGlzQWxpZ25lZEJvdW5kaW5nQm94PWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgZHIoe21pbmltdW06bi5taW5pbXVtLG1heGltdW06bi5tYXhpbXVtfSl9O2RyLnBhY2tlZExlbmd0aD0yKnMucGFja2VkTGVuZ3RoKzE7ZHIucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCxzLnBhY2sobi5fbWluLGUsdCkscy5wYWNrKG4uX21heCxlLHQrcy5wYWNrZWRMZW5ndGgpLGVbdCtzLnBhY2tlZExlbmd0aCoyXT1uLl9vZmZzZXRBdHRyaWJ1dGU/Py0xLGV9O1NUPW5ldyBzLENUPW5ldyBzLE9UPXttaW5pbXVtOlNULG1heGltdW06Q1Qsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07ZHIudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtlPWU/PzA7bGV0IG89cy51bnBhY2sobixlLFNUKSxhPXMudW5wYWNrKG4sZStzLnBhY2tlZExlbmd0aCxDVCkscj1uW2Urcy5wYWNrZWRMZW5ndGgqMl07cmV0dXJuIF8odCk/KHQuX21pbj1zLmNsb25lKG8sdC5fbWluKSx0Ll9tYXg9cy5jbG9uZShhLHQuX21heCksdC5fb2Zmc2V0QXR0cmlidXRlPXI9PT0tMT92b2lkIDA6cix0KTooT1Qub2Zmc2V0QXR0cmlidXRlPXI9PT0tMT92b2lkIDA6cixuZXcgZHIoT1QpKX07ZHIuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7bGV0IGU9bi5fbWluLHQ9bi5fbWF4O2lmKHMuZXF1YWxzKGUsdCkpcmV0dXJuO2xldCBvPW5ldyBRZSxhPW5ldyBVaW50MTZBcnJheSgyNCkscj1uZXcgRmxvYXQ2NEFycmF5KDI0KTtyWzBdPWUueCxyWzFdPWUueSxyWzJdPWUueixyWzNdPXQueCxyWzRdPWUueSxyWzVdPWUueixyWzZdPXQueCxyWzddPXQueSxyWzhdPWUueixyWzldPWUueCxyWzEwXT10LnksclsxMV09ZS56LHJbMTJdPWUueCxyWzEzXT1lLnksclsxNF09dC56LHJbMTVdPXQueCxyWzE2XT1lLnksclsxN109dC56LHJbMThdPXQueCxyWzE5XT10LnksclsyMF09dC56LHJbMjFdPWUueCxyWzIyXT10LnksclsyM109dC56LG8ucG9zaXRpb249bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpyfSksYVswXT00LGFbMV09NSxhWzJdPTUsYVszXT02LGFbNF09NixhWzVdPTcsYVs2XT03LGFbN109NCxhWzhdPTAsYVs5XT0xLGFbMTBdPTEsYVsxMV09MixhWzEyXT0yLGFbMTNdPTMsYVsxNF09MyxhWzE1XT0wLGFbMTZdPTAsYVsxN109NCxhWzE4XT0xLGFbMTldPTUsYVsyMF09MixhWzIxXT02LGFbMjJdPTMsYVsyM109NztsZXQgaT1zLnN1YnRyYWN0KHQsZSxTMyksZj1zLm1hZ25pdHVkZShpKSouNTtpZihfKG4uX29mZnNldEF0dHJpYnV0ZSkpe2xldCBkPXIubGVuZ3RoLGM9bi5fb2Zmc2V0QXR0cmlidXRlPT09b3QuTk9ORT8wOjEsdT1uZXcgVWludDhBcnJheShkLzMpLmZpbGwoYyk7by5hcHBseU9mZnNldD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczp1fSl9cmV0dXJuIG5ldyBQZSh7YXR0cmlidXRlczpvLGluZGljZXM6YSxwcmltaXRpdmVUeXBlOkZlLkxJTkVTLGJvdW5kaW5nU3BoZXJlOm5ldyBnZShzLlpFUk8sZiksb2Zmc2V0QXR0cmlidXRlOm4uX29mZnNldEF0dHJpYnV0ZX0pfTtqcD1kcn0pO3ZhciBVcD17fTskZShVcCx7ZGVmYXVsdDooKT0+TTN9KTtmdW5jdGlvbiBDMyhuLGUpe3JldHVybiBfKGUpJiYobj1qcC51bnBhY2sobixlKSksanAuY3JlYXRlR2VvbWV0cnkobil9dmFyIE0zLExwPVgoKCk9PntNVCgpO3NlKCk7TTM9QzN9KTtmdW5jdGlvbiBscyhuLGUsdCxvLGEscixpLGYsZCxjKXtsZXQgdT1uK2U7cy5tdWx0aXBseUJ5U2NhbGFyKG8sTWF0aC5jb3ModSksc2gpLHMubXVsdGlwbHlCeVNjYWxhcih0LE1hdGguc2luKHUpLE5UKSxzLmFkZChzaCxOVCxzaCk7bGV0IGw9TWF0aC5jb3Mobik7bD1sKmw7bGV0IGg9TWF0aC5zaW4obik7aD1oKmg7bGV0IGI9ci9NYXRoLnNxcnQoaSpsK2EqaCkvZjtyZXR1cm4gWWUuZnJvbUF4aXNBbmdsZShzaCxiLElUKSxKLmZyb21RdWF0ZXJuaW9uKElULFBUKSxKLm11bHRpcGx5QnlWZWN0b3IoUFQsZCxjKSxzLm5vcm1hbGl6ZShjLGMpLHMubXVsdGlwbHlCeVNjYWxhcihjLGYsYyksY312YXIgR3Asc2gsTlQsSVQsUFQsa1QsdlQsenAsTjMsSTMsUDMsazMsR2EsVnA9WCgoKT0+e01lKCk7VWUoKTtJbigpO1dvKCk7R3A9e30sc2g9bmV3IHMsTlQ9bmV3IHMsSVQ9bmV3IFllLFBUPW5ldyBKO2tUPW5ldyBzLHZUPW5ldyBzLHpwPW5ldyBzLE4zPW5ldyBzO0dwLnJhaXNlUG9zaXRpb25zVG9IZWlnaHQ9ZnVuY3Rpb24obixlLHQpe2xldCBvPWUuZWxsaXBzb2lkLGE9ZS5oZWlnaHQscj1lLmV4dHJ1ZGVkSGVpZ2h0LGk9dD9uLmxlbmd0aC8zKjI6bi5sZW5ndGgvMyxmPW5ldyBGbG9hdDY0QXJyYXkoaSozKSxkPW4ubGVuZ3RoLGM9dD9kOjA7Zm9yKGxldCB1PTA7dTxkO3UrPTMpe2xldCBsPXUrMSxoPXUrMixtPXMuZnJvbUFycmF5KG4sdSxrVCk7by5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKG0sbSk7bGV0IGI9cy5jbG9uZShtLHZUKSxwPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKG0sTjMpLHk9cy5tdWx0aXBseUJ5U2NhbGFyKHAsYSx6cCk7cy5hZGQobSx5LG0pLHQmJihzLm11bHRpcGx5QnlTY2FsYXIocCxyLHkpLHMuYWRkKGIseSxiKSxmW3UrY109Yi54LGZbbCtjXT1iLnksZltoK2NdPWIueiksZlt1XT1tLngsZltsXT1tLnksZltoXT1tLnp9cmV0dXJuIGZ9O0kzPW5ldyBzLFAzPW5ldyBzLGszPW5ldyBzO0dwLmNvbXB1dGVFbGxpcHNlUG9zaXRpb25zPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1uLnNlbWlNaW5vckF4aXMsYT1uLnNlbWlNYWpvckF4aXMscj1uLnJvdGF0aW9uLGk9bi5jZW50ZXIsZj1uLmdyYW51bGFyaXR5KjgsZD1vKm8sYz1hKmEsdT1hKm8sbD1zLm1hZ25pdHVkZShpKSxoPXMubm9ybWFsaXplKGksSTMpLG09cy5jcm9zcyhzLlVOSVRfWixpLFAzKTttPXMubm9ybWFsaXplKG0sbSk7bGV0IGI9cy5jcm9zcyhoLG0sazMpLHA9MStNYXRoLmNlaWwoay5QSV9PVkVSX1RXTy9mKSx5PWsuUElfT1ZFUl9UV08vKHAtMSksRT1rLlBJX09WRVJfVFdPLXAqeTtFPDAmJihwLT1NYXRoLmNlaWwoTWF0aC5hYnMoRSkveSkpO2xldCBnPTIqKHAqKHArMikpLEE9ZT9uZXcgQXJyYXkoZyozKTp2b2lkIDAsVD0wLFI9a1QsUz12VCxNPXAqNCozLEk9TS0xLE49MCxQPXQ/bmV3IEFycmF5KE0pOnZvaWQgMCxGLHcseCxDLHY7Zm9yKEU9ay5QSV9PVkVSX1RXTyxSPWxzKEUscixiLG0sZCx1LGMsbCxoLFIpLGUmJihBW1QrK109Ui54LEFbVCsrXT1SLnksQVtUKytdPVIueiksdCYmKFBbSS0tXT1SLnosUFtJLS1dPVIueSxQW0ktLV09Ui54KSxFPWsuUElfT1ZFUl9UV08teSxGPTE7RjxwKzE7KytGKXtpZihSPWxzKEUscixiLG0sZCx1LGMsbCxoLFIpLFM9bHMoTWF0aC5QSS1FLHIsYixtLGQsdSxjLGwsaCxTKSxlKXtmb3IoQVtUKytdPVIueCxBW1QrK109Ui55LEFbVCsrXT1SLnoseD0yKkYrMix3PTE7dzx4LTE7Kyt3KUM9dy8oeC0xKSx2PXMubGVycChSLFMsQyx6cCksQVtUKytdPXYueCxBW1QrK109di55LEFbVCsrXT12Lno7QVtUKytdPVMueCxBW1QrK109Uy55LEFbVCsrXT1TLnp9dCYmKFBbSS0tXT1SLnosUFtJLS1dPVIueSxQW0ktLV09Ui54LFBbTisrXT1TLngsUFtOKytdPVMueSxQW04rK109Uy56KSxFPWsuUElfT1ZFUl9UV08tKEYrMSkqeX1mb3IoRj1wO0Y+MTstLUYpe2lmKEU9ay5QSV9PVkVSX1RXTy0oRi0xKSp5LFI9bHMoLUUscixiLG0sZCx1LGMsbCxoLFIpLFM9bHMoRStNYXRoLlBJLHIsYixtLGQsdSxjLGwsaCxTKSxlKXtmb3IoQVtUKytdPVIueCxBW1QrK109Ui55LEFbVCsrXT1SLnoseD0yKihGLTEpKzIsdz0xO3c8eC0xOysrdylDPXcvKHgtMSksdj1zLmxlcnAoUixTLEMsenApLEFbVCsrXT12LngsQVtUKytdPXYueSxBW1QrK109di56O0FbVCsrXT1TLngsQVtUKytdPVMueSxBW1QrK109Uy56fXQmJihQW0ktLV09Ui56LFBbSS0tXT1SLnksUFtJLS1dPVIueCxQW04rK109Uy54LFBbTisrXT1TLnksUFtOKytdPVMueil9RT1rLlBJX09WRVJfVFdPLFI9bHMoLUUscixiLG0sZCx1LGMsbCxoLFIpO2xldCBqPXt9O3JldHVybiBlJiYoQVtUKytdPVIueCxBW1QrK109Ui55LEFbVCsrXT1SLnosai5wb3NpdGlvbnM9QSxqLm51bVB0cz1wKSx0JiYoUFtJLS1dPVIueixQW0ktLV09Ui55LFBbSS0tXT1SLngsai5vdXRlclBvc2l0aW9ucz1QKSxqfTtHYT1HcH0pO2Z1bmN0aW9uIHYzKG4pe249bj8/T2UuRU1QVFlfT0JKRUNULHRoaXMuZ2VvbWV0cnk9bi5nZW9tZXRyeSx0aGlzLm1vZGVsTWF0cml4PSQuY2xvbmUobi5tb2RlbE1hdHJpeD8/JC5JREVOVElUWSksdGhpcy5pZD1uLmlkLHRoaXMucGlja1ByaW1pdGl2ZT1uLnBpY2tQcmltaXRpdmUsdGhpcy5hdHRyaWJ1dGVzPW4uYXR0cmlidXRlcz8/e30sdGhpcy53ZXN0SGVtaXNwaGVyZUdlb21ldHJ5PXZvaWQgMCx0aGlzLmVhc3RIZW1pc3BoZXJlR2VvbWV0cnk9dm9pZCAwfXZhciBsbyxkYz1YKCgpPT57c3QoKTt1bigpO2xvPXYzfSk7ZnVuY3Rpb24gVlQobixlLHQpe2xldCBvPWUudmVydGV4Rm9ybWF0LGE9ZS5jZW50ZXIscj1lLnNlbWlNYWpvckF4aXMsaT1lLnNlbWlNaW5vckF4aXMsZj1lLmVsbGlwc29pZCxkPWUuc3RSb3RhdGlvbixjPXQ/bi5sZW5ndGgvMyoyOm4ubGVuZ3RoLzMsdT1lLnNoYWRvd1ZvbHVtZSxsPW8uc3Q/bmV3IEZsb2F0MzJBcnJheShjKjIpOnZvaWQgMCxoPW8ubm9ybWFsP25ldyBGbG9hdDMyQXJyYXkoYyozKTp2b2lkIDAsbT1vLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShjKjMpOnZvaWQgMCxiPW8uYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoYyozKTp2b2lkIDAscD11P25ldyBGbG9hdDMyQXJyYXkoYyozKTp2b2lkIDAseT0wLEU9QlQsZz1qVCxBPVVULFQ9bmV3IG5vKGYpLFI9VC5wcm9qZWN0KGYuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoYSx1aCksTFQpLFM9Zi5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGEsaHMpO2YuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKFMsUyk7bGV0IE09RFQsST1GMztpZihkIT09MCl7bGV0IHY9WWUuZnJvbUF4aXNBbmdsZShTLGQscXApO009Si5mcm9tUXVhdGVybmlvbih2LE0pLHY9WWUuZnJvbUF4aXNBbmdsZShTLC1kLHFwKSxJPUouZnJvbVF1YXRlcm5pb24odixJKX1lbHNlIE09Si5jbG9uZShKLklERU5USVRZLE0pLEk9Si5jbG9uZShKLklERU5USVRZLEkpO2xldCBOPVkuZnJvbUVsZW1lbnRzKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkselQpLFA9WS5mcm9tRWxlbWVudHMoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLE51bWJlci5ORUdBVElWRV9JTkZJTklUWSxHVCksRj1uLmxlbmd0aCx3PXQ/RjowLHg9dy8zKjI7Zm9yKGxldCB2PTA7djxGO3YrPTMpe2xldCBqPXYrMSx6PXYrMixEPXMuZnJvbUFycmF5KG4sdixocyk7aWYoby5zdCl7bGV0IEc9Si5tdWx0aXBseUJ5VmVjdG9yKE0sRCxIcCksVj1ULnByb2plY3QoZi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhHLHVoKSxLcCk7cy5zdWJ0cmFjdChWLFIsViksJG4ueD0oVi54K3IpLygyKnIpLCRuLnk9KFYueStpKS8oMippKSxOLng9TWF0aC5taW4oJG4ueCxOLngpLE4ueT1NYXRoLm1pbigkbi55LE4ueSksUC54PU1hdGgubWF4KCRuLngsUC54KSxQLnk9TWF0aC5tYXgoJG4ueSxQLnkpLHQmJihsW3kreF09JG4ueCxsW3krMSt4XT0kbi55KSxsW3krK109JG4ueCxsW3krK109JG4ueX0oby5ub3JtYWx8fG8udGFuZ2VudHx8by5iaXRhbmdlbnR8fHUpJiYoRT1mLmdlb2RldGljU3VyZmFjZU5vcm1hbChELEUpLHUmJihwW3Yrd109LUUueCxwW2ord109LUUueSxwW3ord109LUUueiksKG8ubm9ybWFsfHxvLnRhbmdlbnR8fG8uYml0YW5nZW50KSYmKChvLnRhbmdlbnR8fG8uYml0YW5nZW50KSYmKGc9cy5ub3JtYWxpemUocy5jcm9zcyhzLlVOSVRfWixFLGcpLGcpLEoubXVsdGlwbHlCeVZlY3RvcihJLGcsZykpLG8ubm9ybWFsJiYoaFt2XT1FLngsaFtqXT1FLnksaFt6XT1FLnosdCYmKGhbdit3XT0tRS54LGhbait3XT0tRS55LGhbeit3XT0tRS56KSksby50YW5nZW50JiYobVt2XT1nLngsbVtqXT1nLnksbVt6XT1nLnosdCYmKG1bdit3XT0tZy54LG1bait3XT0tZy55LG1beit3XT0tZy56KSksby5iaXRhbmdlbnQmJihBPXMubm9ybWFsaXplKHMuY3Jvc3MoRSxnLEEpLEEpLGJbdl09QS54LGJbal09QS55LGJbel09QS56LHQmJihiW3Yrd109QS54LGJbait3XT1BLnksYlt6K3ddPUEueikpKSl9aWYoby5zdCl7Rj1sLmxlbmd0aDtmb3IobGV0IHY9MDt2PEY7dis9MilsW3ZdPShsW3ZdLU4ueCkvKFAueC1OLngpLGxbdisxXT0obFt2KzFdLU4ueSkvKFAueS1OLnkpfWxldCBDPW5ldyBRZTtpZihvLnBvc2l0aW9uKXtsZXQgdj1HYS5yYWlzZVBvc2l0aW9uc1RvSGVpZ2h0KG4sZSx0KTtDLnBvc2l0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6dn0pfWlmKG8uc3QmJihDLnN0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpsfSkpLG8ubm9ybWFsJiYoQy5ub3JtYWw9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmh9KSksby50YW5nZW50JiYoQy50YW5nZW50PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczptfSkpLG8uYml0YW5nZW50JiYoQy5iaXRhbmdlbnQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmJ9KSksdSYmKEMuZXh0cnVkZURpcmVjdGlvbj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6cH0pKSx0JiZfKGUub2Zmc2V0QXR0cmlidXRlKSl7bGV0IHY9bmV3IFVpbnQ4QXJyYXkoYyk7aWYoZS5vZmZzZXRBdHRyaWJ1dGU9PT1vdC5UT1Apdj12LmZpbGwoMSwwLGMvMik7ZWxzZXtsZXQgaj1lLm9mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxO3Y9di5maWxsKGopfUMuYXBwbHlPZmZzZXQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6dn0pfXJldHVybiBDfWZ1bmN0aW9uIEhUKG4pe2xldCBlPW5ldyBBcnJheSgxMioobioobisxKSktNiksdD0wLG8sYSxyLGksZjtmb3Iobz0wLHI9MSxpPTA7aTwzO2krKyllW3QrK109cisrLGVbdCsrXT1vLGVbdCsrXT1yO2ZvcihpPTI7aTxuKzE7KytpKXtmb3Iocj1pKihpKzEpLTEsbz0oaS0xKSppLTEsZVt0KytdPXIrKyxlW3QrK109byxlW3QrK109cixhPTIqaSxmPTA7ZjxhLTE7KytmKWVbdCsrXT1yLGVbdCsrXT1vKyssZVt0KytdPW8sZVt0KytdPXIrKyxlW3QrK109byxlW3QrK109cjtlW3QrK109cisrLGVbdCsrXT1vLGVbdCsrXT1yfWZvcihhPW4qMiwrK3IsKytvLGk9MDtpPGEtMTsrK2kpZVt0KytdPXIsZVt0KytdPW8rKyxlW3QrK109byxlW3QrK109cisrLGVbdCsrXT1vLGVbdCsrXT1yO2ZvcihlW3QrK109cixlW3QrK109bysrLGVbdCsrXT1vLGVbdCsrXT1yKyssZVt0KytdPW8rKyxlW3QrK109bywrK28saT1uLTE7aT4xOy0taSl7Zm9yKGVbdCsrXT1vKyssZVt0KytdPW8sZVt0KytdPXIsYT0yKmksZj0wO2Y8YS0xOysrZillW3QrK109cixlW3QrK109bysrLGVbdCsrXT1vLGVbdCsrXT1yKyssZVt0KytdPW8sZVt0KytdPXI7ZVt0KytdPW8rKyxlW3QrK109bysrLGVbdCsrXT1yKyt9Zm9yKGk9MDtpPDM7aSsrKWVbdCsrXT1vKyssZVt0KytdPW8sZVt0KytdPXI7cmV0dXJuIGV9ZnVuY3Rpb24gRDMobil7bGV0IGU9bi5jZW50ZXI7dWM9cy5tdWx0aXBseUJ5U2NhbGFyKG4uZWxsaXBzb2lkLmdlb2RldGljU3VyZmFjZU5vcm1hbChlLHVjKSxuLmhlaWdodCx1YyksdWM9cy5hZGQoZSx1Yyx1Yyk7bGV0IHQ9bmV3IGdlKHVjLG4uc2VtaU1ham9yQXhpcyksbz1HYS5jb21wdXRlRWxsaXBzZVBvc2l0aW9ucyhuLCEwLCExKSxhPW8ucG9zaXRpb25zLHI9by5udW1QdHMsaT1WVChhLG4sITEpLGY9SFQocik7cmV0dXJuIGY9SWUuY3JlYXRlVHlwZWRBcnJheShhLmxlbmd0aC8zLGYpLHtib3VuZGluZ1NwaGVyZTp0LGF0dHJpYnV0ZXM6aSxpbmRpY2VzOmZ9fWZ1bmN0aW9uIEIzKG4sZSl7bGV0IHQ9ZS52ZXJ0ZXhGb3JtYXQsbz1lLmNlbnRlcixhPWUuc2VtaU1ham9yQXhpcyxyPWUuc2VtaU1pbm9yQXhpcyxpPWUuZWxsaXBzb2lkLGY9ZS5oZWlnaHQsZD1lLmV4dHJ1ZGVkSGVpZ2h0LGM9ZS5zdFJvdGF0aW9uLHU9bi5sZW5ndGgvMyoyLGw9bmV3IEZsb2F0NjRBcnJheSh1KjMpLGg9dC5zdD9uZXcgRmxvYXQzMkFycmF5KHUqMik6dm9pZCAwLG09dC5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheSh1KjMpOnZvaWQgMCxiPXQudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KHUqMyk6dm9pZCAwLHA9dC5iaXRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheSh1KjMpOnZvaWQgMCx5PWUuc2hhZG93Vm9sdW1lLEU9eT9uZXcgRmxvYXQzMkFycmF5KHUqMyk6dm9pZCAwLGc9MCxBPUJULFQ9alQsUj1VVCxTPW5ldyBubyhpKSxNPVMucHJvamVjdChpLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG8sdWgpLExUKSxJPWkuc2NhbGVUb0dlb2RldGljU3VyZmFjZShvLGhzKTtpLmdlb2RldGljU3VyZmFjZU5vcm1hbChJLEkpO2xldCBOPVllLmZyb21BeGlzQW5nbGUoSSxjLHFwKSxQPUouZnJvbVF1YXRlcm5pb24oTixEVCksRj1ZLmZyb21FbGVtZW50cyhOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHpUKSx3PVkuZnJvbUVsZW1lbnRzKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSxOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksR1QpLHg9bi5sZW5ndGgsQz14LzMqMjtmb3IobGV0IGo9MDtqPHg7ais9Myl7bGV0IHo9aisxLEQ9aisyLEc9cy5mcm9tQXJyYXkobixqLGhzKSxWO2lmKHQuc3Qpe2xldCBaPUoubXVsdGlwbHlCeVZlY3RvcihQLEcsSHApLGFlPVMucHJvamVjdChpLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKFosdWgpLEtwKTtzLnN1YnRyYWN0KGFlLE0sYWUpLCRuLng9KGFlLngrYSkvKDIqYSksJG4ueT0oYWUueStyKS8oMipyKSxGLng9TWF0aC5taW4oJG4ueCxGLngpLEYueT1NYXRoLm1pbigkbi55LEYueSksdy54PU1hdGgubWF4KCRuLngsdy54KSx3Lnk9TWF0aC5tYXgoJG4ueSx3LnkpLGhbZytDXT0kbi54LGhbZysxK0NdPSRuLnksaFtnKytdPSRuLngsaFtnKytdPSRuLnl9Rz1pLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoRyxHKSxWPXMuY2xvbmUoRyxIcCksQT1pLmdlb2RldGljU3VyZmFjZU5vcm1hbChHLEEpLHkmJihFW2oreF09LUEueCxFW3oreF09LUEueSxFW0QreF09LUEueik7bGV0IE89cy5tdWx0aXBseUJ5U2NhbGFyKEEsZixGVCk7aWYoRz1zLmFkZChHLE8sRyksTz1zLm11bHRpcGx5QnlTY2FsYXIoQSxkLE8pLFY9cy5hZGQoVixPLFYpLHQucG9zaXRpb24mJihsW2oreF09Vi54LGxbeit4XT1WLnksbFtEK3hdPVYueixsW2pdPUcueCxsW3pdPUcueSxsW0RdPUcueiksdC5ub3JtYWx8fHQudGFuZ2VudHx8dC5iaXRhbmdlbnQpe1I9cy5jbG9uZShBLFIpO2xldCBaPXMuZnJvbUFycmF5KG4sKGorMykleCxGVCk7cy5zdWJ0cmFjdChaLEcsWik7bGV0IGFlPXMuc3VidHJhY3QoVixHLEtwKTtBPXMubm9ybWFsaXplKHMuY3Jvc3MoYWUsWixBKSxBKSx0Lm5vcm1hbCYmKG1bal09QS54LG1bel09QS55LG1bRF09QS56LG1bait4XT1BLngsbVt6K3hdPUEueSxtW0QreF09QS56KSx0LnRhbmdlbnQmJihUPXMubm9ybWFsaXplKHMuY3Jvc3MoUixBLFQpLFQpLGJbal09VC54LGJbel09VC55LGJbRF09VC56LGJbait4XT1ULngsYltqKzEreF09VC55LGJbaisyK3hdPVQueiksdC5iaXRhbmdlbnQmJihwW2pdPVIueCxwW3pdPVIueSxwW0RdPVIueixwW2oreF09Ui54LHBbeit4XT1SLnkscFtEK3hdPVIueil9fWlmKHQuc3Qpe3g9aC5sZW5ndGg7Zm9yKGxldCBqPTA7ajx4O2orPTIpaFtqXT0oaFtqXS1GLngpLyh3LngtRi54KSxoW2orMV09KGhbaisxXS1GLnkpLyh3LnktRi55KX1sZXQgdj1uZXcgUWU7aWYodC5wb3NpdGlvbiYmKHYucG9zaXRpb249bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpsfSkpLHQuc3QmJih2LnN0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpofSkpLHQubm9ybWFsJiYodi5ub3JtYWw9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOm19KSksdC50YW5nZW50JiYodi50YW5nZW50PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpifSkpLHQuYml0YW5nZW50JiYodi5iaXRhbmdlbnQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnB9KSkseSYmKHYuZXh0cnVkZURpcmVjdGlvbj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6RX0pKSxfKGUub2Zmc2V0QXR0cmlidXRlKSl7bGV0IGo9bmV3IFVpbnQ4QXJyYXkodSk7aWYoZS5vZmZzZXRBdHRyaWJ1dGU9PT1vdC5UT1Apaj1qLmZpbGwoMSwwLHUvMik7ZWxzZXtsZXQgej1lLm9mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxO2o9ai5maWxsKHopfXYuYXBwbHlPZmZzZXQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6an0pfXJldHVybiB2fWZ1bmN0aW9uIGozKG4pe2xldCBlPW4ubGVuZ3RoLzMsdD1JZS5jcmVhdGVUeXBlZEFycmF5KGUsZSo2KSxvPTA7Zm9yKGxldCBhPTA7YTxlO2ErKyl7bGV0IHI9YSxpPWErZSxmPShyKzEpJWUsZD1mK2U7dFtvKytdPXIsdFtvKytdPWksdFtvKytdPWYsdFtvKytdPWYsdFtvKytdPWksdFtvKytdPWR9cmV0dXJuIHR9ZnVuY3Rpb24gVTMobil7bGV0IGU9bi5jZW50ZXIsdD1uLmVsbGlwc29pZCxvPW4uc2VtaU1ham9yQXhpcyxhPXMubXVsdGlwbHlCeVNjYWxhcih0Lmdlb2RldGljU3VyZmFjZU5vcm1hbChlLGhzKSxuLmhlaWdodCxocyk7ZmguY2VudGVyPXMuYWRkKGUsYSxmaC5jZW50ZXIpLGZoLnJhZGl1cz1vLGE9cy5tdWx0aXBseUJ5U2NhbGFyKHQuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGUsYSksbi5leHRydWRlZEhlaWdodCxhKSxkaC5jZW50ZXI9cy5hZGQoZSxhLGRoLmNlbnRlciksZGgucmFkaXVzPW87bGV0IHI9R2EuY29tcHV0ZUVsbGlwc2VQb3NpdGlvbnMobiwhMCwhMCksaT1yLnBvc2l0aW9ucyxmPXIubnVtUHRzLGQ9ci5vdXRlclBvc2l0aW9ucyxjPWdlLnVuaW9uKGZoLGRoKSx1PVZUKGksbiwhMCksbD1IVChmKSxoPWwubGVuZ3RoO2wubGVuZ3RoPWgqMjtsZXQgbT1pLmxlbmd0aC8zO2ZvcihsZXQgVD0wO1Q8aDtUKz0zKWxbVCtoXT1sW1QrMl0rbSxsW1QrMStoXT1sW1QrMV0rbSxsW1QrMitoXT1sW1RdK207bGV0IGI9SWUuY3JlYXRlVHlwZWRBcnJheShtKjIvMyxsKSxwPW5ldyBQZSh7YXR0cmlidXRlczp1LGluZGljZXM6YixwcmltaXRpdmVUeXBlOkZlLlRSSUFOR0xFU30pLHk9QjMoZCxuKTtsPWozKGQpO2xldCBFPUllLmNyZWF0ZVR5cGVkQXJyYXkoZC5sZW5ndGgqMi8zLGwpLGc9bmV3IFBlKHthdHRyaWJ1dGVzOnksaW5kaWNlczpFLHByaW1pdGl2ZVR5cGU6RmUuVFJJQU5HTEVTfSksQT1MdC5jb21iaW5lSW5zdGFuY2VzKFtuZXcgbG8oe2dlb21ldHJ5OnB9KSxuZXcgbG8oe2dlb21ldHJ5Omd9KV0pO3JldHVybntib3VuZGluZ1NwaGVyZTpjLGF0dHJpYnV0ZXM6QVswXS5hdHRyaWJ1dGVzLGluZGljZXM6QVswXS5pbmRpY2VzfX1mdW5jdGlvbiBLVChuLGUsdCxvLGEscixpKXtsZXQgZD1HYS5jb21wdXRlRWxsaXBzZVBvc2l0aW9ucyh7Y2VudGVyOm4sc2VtaU1ham9yQXhpczplLHNlbWlNaW5vckF4aXM6dCxyb3RhdGlvbjpvLGdyYW51bGFyaXR5OmF9LCExLCEwKS5vdXRlclBvc2l0aW9ucyxjPWQubGVuZ3RoLzMsdT1uZXcgQXJyYXkoYyk7Zm9yKGxldCBoPTA7aDxjOysraCl1W2hdPXMuZnJvbUFycmF5KGQsaCozKTtsZXQgbD14ZS5mcm9tQ2FydGVzaWFuQXJyYXkodSxyLGkpO3JldHVybiBsLndpZHRoPmsuUEkmJihsLm5vcnRoPWwubm9ydGg+MD9rLlBJX09WRVJfVFdPLWsuRVBTSUxPTjc6bC5ub3J0aCxsLnNvdXRoPWwuc291dGg8MD9rLkVQU0lMT043LWsuUElfT1ZFUl9UV086bC5zb3V0aCxsLmVhc3Q9ay5QSSxsLndlc3Q9LWsuUEkpLGx9ZnVuY3Rpb24gbHIobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5jZW50ZXIsdD1uLmVsbGlwc29pZD8/Sy5kZWZhdWx0LG89bi5zZW1pTWFqb3JBeGlzLGE9bi5zZW1pTWlub3JBeGlzLHI9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUsaT1uLnZlcnRleEZvcm1hdD8/bGUuREVGQVVMVCxmPW4uaGVpZ2h0Pz8wLGQ9bi5leHRydWRlZEhlaWdodD8/Zjt0aGlzLl9jZW50ZXI9cy5jbG9uZShlKSx0aGlzLl9zZW1pTWFqb3JBeGlzPW8sdGhpcy5fc2VtaU1pbm9yQXhpcz1hLHRoaXMuX2VsbGlwc29pZD1LLmNsb25lKHQpLHRoaXMuX3JvdGF0aW9uPW4ucm90YXRpb24/PzAsdGhpcy5fc3RSb3RhdGlvbj1uLnN0Um90YXRpb24/PzAsdGhpcy5faGVpZ2h0PU1hdGgubWF4KGQsZiksdGhpcy5fZ3JhbnVsYXJpdHk9cix0aGlzLl92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUoaSksdGhpcy5fZXh0cnVkZWRIZWlnaHQ9TWF0aC5taW4oZCxmKSx0aGlzLl9zaGFkb3dWb2x1bWU9bi5zaGFkb3dWb2x1bWU/PyExLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUVsbGlwc2VHZW9tZXRyeSIsdGhpcy5fb2Zmc2V0QXR0cmlidXRlPW4ub2Zmc2V0QXR0cmlidXRlLHRoaXMuX3JlY3RhbmdsZT12b2lkIDAsdGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50cz12b2lkIDB9ZnVuY3Rpb24gTDMobil7bGV0IGU9LW4uX3N0Um90YXRpb247aWYoZT09PTApcmV0dXJuWzAsMCwwLDEsMSwwXTtsZXQgbz1HYS5jb21wdXRlRWxsaXBzZVBvc2l0aW9ucyh7Y2VudGVyOm4uX2NlbnRlcixzZW1pTWFqb3JBeGlzOm4uX3NlbWlNYWpvckF4aXMsc2VtaU1pbm9yQXhpczpuLl9zZW1pTWlub3JBeGlzLHJvdGF0aW9uOm4uX3JvdGF0aW9uLGdyYW51bGFyaXR5Om4uX2dyYW51bGFyaXR5fSwhMSwhMCkub3V0ZXJQb3NpdGlvbnMsYT1vLmxlbmd0aC8zLHI9bmV3IEFycmF5KGEpO2ZvcihsZXQgZD0wO2Q8YTsrK2QpcltkXT1zLmZyb21BcnJheShvLGQqMyk7bGV0IGk9bi5fZWxsaXBzb2lkLGY9bi5yZWN0YW5nbGU7cmV0dXJuIFBlLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzKHIsZSxpLGYpfXZhciBocyxIcCxLcCxGVCwkbixEVCxGMyxxcCxCVCxqVCxVVCx1aCxMVCx6VCxHVCx1YyxmaCxkaCxxVCxXVCxYVCx1cixWYSxXcD1YKCgpPT57RXQoKTt2dCgpO01lKCk7Z3QoKTtDdCgpO3N0KCk7c2UoKTtWcCgpO1ZlKCk7UHIoKTtYdCgpO1l0KCk7cm4oKTtkYygpO2pvKCk7ZnIoKTtadCgpO1VlKCk7SW4oKTt0bigpO1dvKCk7aG4oKTtDbygpO2hzPW5ldyBzLEhwPW5ldyBzLEtwPW5ldyBzLEZUPW5ldyBzLCRuPW5ldyBZLERUPW5ldyBKLEYzPW5ldyBKLHFwPW5ldyBZZSxCVD1uZXcgcyxqVD1uZXcgcyxVVD1uZXcgcyx1aD1uZXcgcmUsTFQ9bmV3IHMselQ9bmV3IFksR1Q9bmV3IFk7dWM9bmV3IHM7Zmg9bmV3IGdlLGRoPW5ldyBnZTtsci5wYWNrZWRMZW5ndGg9cy5wYWNrZWRMZW5ndGgrSy5wYWNrZWRMZW5ndGgrbGUucGFja2VkTGVuZ3RoKzk7bHIucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCxzLnBhY2sobi5fY2VudGVyLGUsdCksdCs9cy5wYWNrZWRMZW5ndGgsSy5wYWNrKG4uX2VsbGlwc29pZCxlLHQpLHQrPUsucGFja2VkTGVuZ3RoLGxlLnBhY2sobi5fdmVydGV4Rm9ybWF0LGUsdCksdCs9bGUucGFja2VkTGVuZ3RoLGVbdCsrXT1uLl9zZW1pTWFqb3JBeGlzLGVbdCsrXT1uLl9zZW1pTWlub3JBeGlzLGVbdCsrXT1uLl9yb3RhdGlvbixlW3QrK109bi5fc3RSb3RhdGlvbixlW3QrK109bi5faGVpZ2h0LGVbdCsrXT1uLl9ncmFudWxhcml0eSxlW3QrK109bi5fZXh0cnVkZWRIZWlnaHQsZVt0KytdPW4uX3NoYWRvd1ZvbHVtZT8xOjAsZVt0XT1uLl9vZmZzZXRBdHRyaWJ1dGU/Py0xLGV9O3FUPW5ldyBzLFdUPW5ldyBLLFhUPW5ldyBsZSx1cj17Y2VudGVyOnFULGVsbGlwc29pZDpXVCx2ZXJ0ZXhGb3JtYXQ6WFQsc2VtaU1ham9yQXhpczp2b2lkIDAsc2VtaU1pbm9yQXhpczp2b2lkIDAscm90YXRpb246dm9pZCAwLHN0Um90YXRpb246dm9pZCAwLGhlaWdodDp2b2lkIDAsZ3JhbnVsYXJpdHk6dm9pZCAwLGV4dHJ1ZGVkSGVpZ2h0OnZvaWQgMCxzaGFkb3dWb2x1bWU6dm9pZCAwLG9mZnNldEF0dHJpYnV0ZTp2b2lkIDB9O2xyLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvPXMudW5wYWNrKG4sZSxxVCk7ZSs9cy5wYWNrZWRMZW5ndGg7bGV0IGE9Sy51bnBhY2sobixlLFdUKTtlKz1LLnBhY2tlZExlbmd0aDtsZXQgcj1sZS51bnBhY2sobixlLFhUKTtlKz1sZS5wYWNrZWRMZW5ndGg7bGV0IGk9bltlKytdLGY9bltlKytdLGQ9bltlKytdLGM9bltlKytdLHU9bltlKytdLGw9bltlKytdLGg9bltlKytdLG09bltlKytdPT09MSxiPW5bZV07cmV0dXJuIF8odCk/KHQuX2NlbnRlcj1zLmNsb25lKG8sdC5fY2VudGVyKSx0Ll9lbGxpcHNvaWQ9Sy5jbG9uZShhLHQuX2VsbGlwc29pZCksdC5fdmVydGV4Rm9ybWF0PWxlLmNsb25lKHIsdC5fdmVydGV4Rm9ybWF0KSx0Ll9zZW1pTWFqb3JBeGlzPWksdC5fc2VtaU1pbm9yQXhpcz1mLHQuX3JvdGF0aW9uPWQsdC5fc3RSb3RhdGlvbj1jLHQuX2hlaWdodD11LHQuX2dyYW51bGFyaXR5PWwsdC5fZXh0cnVkZWRIZWlnaHQ9aCx0Ll9zaGFkb3dWb2x1bWU9bSx0Ll9vZmZzZXRBdHRyaWJ1dGU9Yj09PS0xP3ZvaWQgMDpiLHQpOih1ci5oZWlnaHQ9dSx1ci5leHRydWRlZEhlaWdodD1oLHVyLmdyYW51bGFyaXR5PWwsdXIuc3RSb3RhdGlvbj1jLHVyLnJvdGF0aW9uPWQsdXIuc2VtaU1ham9yQXhpcz1pLHVyLnNlbWlNaW5vckF4aXM9Zix1ci5zaGFkb3dWb2x1bWU9bSx1ci5vZmZzZXRBdHRyaWJ1dGU9Yj09PS0xP3ZvaWQgMDpiLG5ldyBscih1cikpfTtsci5jb21wdXRlUmVjdGFuZ2xlPWZ1bmN0aW9uKG4sZSl7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IHQ9bi5jZW50ZXIsbz1uLmVsbGlwc29pZD8/Sy5kZWZhdWx0LGE9bi5zZW1pTWFqb3JBeGlzLHI9bi5zZW1pTWlub3JBeGlzLGk9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUsZj1uLnJvdGF0aW9uPz8wO3JldHVybiBLVCh0LGEscixmLGksbyxlKX07bHIuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7aWYobi5fc2VtaU1ham9yQXhpczw9MHx8bi5fc2VtaU1pbm9yQXhpczw9MClyZXR1cm47bGV0IGU9bi5faGVpZ2h0LHQ9bi5fZXh0cnVkZWRIZWlnaHQsbz0hay5lcXVhbHNFcHNpbG9uKGUsdCwwLGsuRVBTSUxPTjIpO24uX2NlbnRlcj1uLl9lbGxpcHNvaWQuc2NhbGVUb0dlb2RldGljU3VyZmFjZShuLl9jZW50ZXIsbi5fY2VudGVyKTtsZXQgYT17Y2VudGVyOm4uX2NlbnRlcixzZW1pTWFqb3JBeGlzOm4uX3NlbWlNYWpvckF4aXMsc2VtaU1pbm9yQXhpczpuLl9zZW1pTWlub3JBeGlzLGVsbGlwc29pZDpuLl9lbGxpcHNvaWQscm90YXRpb246bi5fcm90YXRpb24saGVpZ2h0OmUsZ3JhbnVsYXJpdHk6bi5fZ3JhbnVsYXJpdHksdmVydGV4Rm9ybWF0Om4uX3ZlcnRleEZvcm1hdCxzdFJvdGF0aW9uOm4uX3N0Um90YXRpb259LHI7aWYobylhLmV4dHJ1ZGVkSGVpZ2h0PXQsYS5zaGFkb3dWb2x1bWU9bi5fc2hhZG93Vm9sdW1lLGEub2Zmc2V0QXR0cmlidXRlPW4uX29mZnNldEF0dHJpYnV0ZSxyPVUzKGEpO2Vsc2UgaWYocj1EMyhhKSxfKG4uX29mZnNldEF0dHJpYnV0ZSkpe2xldCBpPXIuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLGY9bi5fb2Zmc2V0QXR0cmlidXRlPT09b3QuTk9ORT8wOjEsZD1uZXcgVWludDhBcnJheShpLzMpLmZpbGwoZik7ci5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOmR9KX1yZXR1cm4gbmV3IFBlKHthdHRyaWJ1dGVzOnIuYXR0cmlidXRlcyxpbmRpY2VzOnIuaW5kaWNlcyxwcmltaXRpdmVUeXBlOkZlLlRSSUFOR0xFUyxib3VuZGluZ1NwaGVyZTpyLmJvdW5kaW5nU3BoZXJlLG9mZnNldEF0dHJpYnV0ZTpuLl9vZmZzZXRBdHRyaWJ1dGV9KX07bHIuY3JlYXRlU2hhZG93Vm9sdW1lPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1uLl9ncmFudWxhcml0eSxhPW4uX2VsbGlwc29pZCxyPWUobyxhKSxpPXQobyxhKTtyZXR1cm4gbmV3IGxyKHtjZW50ZXI6bi5fY2VudGVyLHNlbWlNYWpvckF4aXM6bi5fc2VtaU1ham9yQXhpcyxzZW1pTWlub3JBeGlzOm4uX3NlbWlNaW5vckF4aXMsZWxsaXBzb2lkOmEscm90YXRpb246bi5fcm90YXRpb24sc3RSb3RhdGlvbjpuLl9zdFJvdGF0aW9uLGdyYW51bGFyaXR5Om8sZXh0cnVkZWRIZWlnaHQ6cixoZWlnaHQ6aSx2ZXJ0ZXhGb3JtYXQ6bGUuUE9TSVRJT05fT05MWSxzaGFkb3dWb2x1bWU6ITB9KX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobHIucHJvdG90eXBlLHtyZWN0YW5nbGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBfKHRoaXMuX3JlY3RhbmdsZSl8fCh0aGlzLl9yZWN0YW5nbGU9S1QodGhpcy5fY2VudGVyLHRoaXMuX3NlbWlNYWpvckF4aXMsdGhpcy5fc2VtaU1pbm9yQXhpcyx0aGlzLl9yb3RhdGlvbix0aGlzLl9ncmFudWxhcml0eSx0aGlzLl9lbGxpcHNvaWQpKSx0aGlzLl9yZWN0YW5nbGV9fSx0ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzKXx8KHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM9TDModGhpcykpLHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHN9fX0pO1ZhPWxyfSk7ZnVuY3Rpb24gTHIobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5yYWRpdXMsdD17Y2VudGVyOm4uY2VudGVyLHNlbWlNYWpvckF4aXM6ZSxzZW1pTWlub3JBeGlzOmUsZWxsaXBzb2lkOm4uZWxsaXBzb2lkLGhlaWdodDpuLmhlaWdodCxleHRydWRlZEhlaWdodDpuLmV4dHJ1ZGVkSGVpZ2h0LGdyYW51bGFyaXR5Om4uZ3JhbnVsYXJpdHksdmVydGV4Rm9ybWF0Om4udmVydGV4Rm9ybWF0LHN0Um90YXRpb246bi5zdFJvdGF0aW9uLHNoYWRvd1ZvbHVtZTpuLnNoYWRvd1ZvbHVtZX07dGhpcy5fZWxsaXBzZUdlb21ldHJ5PW5ldyBWYSh0KSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVDaXJjbGVHZW9tZXRyeSJ9dmFyIFlULHlvLFhwLEpUPVgoKCk9PntNZSgpO3N0KCk7c2UoKTtXcCgpO1ZlKCk7Q28oKTtMci5wYWNrZWRMZW5ndGg9VmEucGFja2VkTGVuZ3RoO0xyLnBhY2s9ZnVuY3Rpb24obixlLHQpe3JldHVybiBWYS5wYWNrKG4uX2VsbGlwc2VHZW9tZXRyeSxlLHQpfTtZVD1uZXcgVmEoe2NlbnRlcjpuZXcgcyxzZW1pTWFqb3JBeGlzOjEsc2VtaU1pbm9yQXhpczoxfSkseW89e2NlbnRlcjpuZXcgcyxyYWRpdXM6dm9pZCAwLGVsbGlwc29pZDpLLmNsb25lKEsuZGVmYXVsdCksaGVpZ2h0OnZvaWQgMCxleHRydWRlZEhlaWdodDp2b2lkIDAsZ3JhbnVsYXJpdHk6dm9pZCAwLHZlcnRleEZvcm1hdDpuZXcgbGUsc3RSb3RhdGlvbjp2b2lkIDAsc2VtaU1ham9yQXhpczp2b2lkIDAsc2VtaU1pbm9yQXhpczp2b2lkIDAsc2hhZG93Vm9sdW1lOnZvaWQgMH07THIudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1WYS51bnBhY2sobixlLFlUKTtyZXR1cm4geW8uY2VudGVyPXMuY2xvbmUoby5fY2VudGVyLHlvLmNlbnRlcikseW8uZWxsaXBzb2lkPUsuY2xvbmUoby5fZWxsaXBzb2lkLHlvLmVsbGlwc29pZCkseW8uZWxsaXBzb2lkPUsuY2xvbmUoby5fZWxsaXBzb2lkLFlULl9lbGxpcHNvaWQpLHlvLmhlaWdodD1vLl9oZWlnaHQseW8uZXh0cnVkZWRIZWlnaHQ9by5fZXh0cnVkZWRIZWlnaHQseW8uZ3JhbnVsYXJpdHk9by5fZ3JhbnVsYXJpdHkseW8udmVydGV4Rm9ybWF0PWxlLmNsb25lKG8uX3ZlcnRleEZvcm1hdCx5by52ZXJ0ZXhGb3JtYXQpLHlvLnN0Um90YXRpb249by5fc3RSb3RhdGlvbix5by5zaGFkb3dWb2x1bWU9by5fc2hhZG93Vm9sdW1lLF8odCk/KHlvLnNlbWlNYWpvckF4aXM9by5fc2VtaU1ham9yQXhpcyx5by5zZW1pTWlub3JBeGlzPW8uX3NlbWlNaW5vckF4aXMsdC5fZWxsaXBzZUdlb21ldHJ5PW5ldyBWYSh5byksdCk6KHlvLnJhZGl1cz1vLl9zZW1pTWFqb3JBeGlzLG5ldyBMcih5bykpfTtMci5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbihuKXtyZXR1cm4gVmEuY3JlYXRlR2VvbWV0cnkobi5fZWxsaXBzZUdlb21ldHJ5KX07THIuY3JlYXRlU2hhZG93Vm9sdW1lPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1uLl9lbGxpcHNlR2VvbWV0cnkuX2dyYW51bGFyaXR5LGE9bi5fZWxsaXBzZUdlb21ldHJ5Ll9lbGxpcHNvaWQscj1lKG8sYSksaT10KG8sYSk7cmV0dXJuIG5ldyBMcih7Y2VudGVyOm4uX2VsbGlwc2VHZW9tZXRyeS5fY2VudGVyLHJhZGl1czpuLl9lbGxpcHNlR2VvbWV0cnkuX3NlbWlNYWpvckF4aXMsZWxsaXBzb2lkOmEsc3RSb3RhdGlvbjpuLl9lbGxpcHNlR2VvbWV0cnkuX3N0Um90YXRpb24sZ3JhbnVsYXJpdHk6byxleHRydWRlZEhlaWdodDpyLGhlaWdodDppLHZlcnRleEZvcm1hdDpsZS5QT1NJVElPTl9PTkxZLHNoYWRvd1ZvbHVtZTohMH0pfTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhMci5wcm90b3R5cGUse3JlY3RhbmdsZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsbGlwc2VHZW9tZXRyeS5yZWN0YW5nbGV9fSx0ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxsaXBzZUdlb21ldHJ5LnRleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHN9fX0pO1hwPUxyfSk7dmFyIFlwPXt9OyRlKFlwLHtkZWZhdWx0OigpPT5HM30pO2Z1bmN0aW9uIHozKG4sZSl7cmV0dXJuIF8oZSkmJihuPVhwLnVucGFjayhuLGUpKSxuLl9lbGxpcHNlR2VvbWV0cnkuX2NlbnRlcj1zLmNsb25lKG4uX2VsbGlwc2VHZW9tZXRyeS5fY2VudGVyKSxuLl9lbGxpcHNlR2VvbWV0cnkuX2VsbGlwc29pZD1LLmNsb25lKG4uX2VsbGlwc2VHZW9tZXRyeS5fZWxsaXBzb2lkKSxYcC5jcmVhdGVHZW9tZXRyeShuKX12YXIgRzMsSnA9WCgoKT0+e01lKCk7SlQoKTtzZSgpO1ZlKCk7RzM9ejN9KTtmdW5jdGlvbiBWMyhuKXtsZXQgZT1uLmNlbnRlcjtsYz1zLm11bHRpcGx5QnlTY2FsYXIobi5lbGxpcHNvaWQuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGUsbGMpLG4uaGVpZ2h0LGxjKSxsYz1zLmFkZChlLGxjLGxjKTtsZXQgdD1uZXcgZ2UobGMsbi5zZW1pTWFqb3JBeGlzKSxvPUdhLmNvbXB1dGVFbGxpcHNlUG9zaXRpb25zKG4sITEsITApLm91dGVyUG9zaXRpb25zLGE9bmV3IFFlKHtwb3NpdGlvbjpuZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkdhLnJhaXNlUG9zaXRpb25zVG9IZWlnaHQobyxuLCExKX0pfSkscj1vLmxlbmd0aC8zLGk9SWUuY3JlYXRlVHlwZWRBcnJheShyLHIqMiksZj0wO2ZvcihsZXQgZD0wO2Q8cjsrK2QpaVtmKytdPWQsaVtmKytdPShkKzEpJXI7cmV0dXJue2JvdW5kaW5nU3BoZXJlOnQsYXR0cmlidXRlczphLGluZGljZXM6aX19ZnVuY3Rpb24gSDMobil7bGV0IGU9bi5jZW50ZXIsdD1uLmVsbGlwc29pZCxvPW4uc2VtaU1ham9yQXhpcyxhPXMubXVsdGlwbHlCeVNjYWxhcih0Lmdlb2RldGljU3VyZmFjZU5vcm1hbChlLFpUKSxuLmhlaWdodCxaVCk7bGguY2VudGVyPXMuYWRkKGUsYSxsaC5jZW50ZXIpLGxoLnJhZGl1cz1vLGE9cy5tdWx0aXBseUJ5U2NhbGFyKHQuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGUsYSksbi5leHRydWRlZEhlaWdodCxhKSxoaC5jZW50ZXI9cy5hZGQoZSxhLGhoLmNlbnRlciksaGgucmFkaXVzPW87bGV0IHI9R2EuY29tcHV0ZUVsbGlwc2VQb3NpdGlvbnMobiwhMSwhMCkub3V0ZXJQb3NpdGlvbnMsaT1uZXcgUWUoe3Bvc2l0aW9uOm5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6R2EucmFpc2VQb3NpdGlvbnNUb0hlaWdodChyLG4sITApfSl9KTtyPWkucG9zaXRpb24udmFsdWVzO2xldCBmPWdlLnVuaW9uKGxoLGhoKSxkPXIubGVuZ3RoLzM7aWYoXyhuLm9mZnNldEF0dHJpYnV0ZSkpe2xldCBiPW5ldyBVaW50OEFycmF5KGQpO2lmKG4ub2Zmc2V0QXR0cmlidXRlPT09b3QuVE9QKWI9Yi5maWxsKDEsMCxkLzIpO2Vsc2V7bGV0IHA9bi5vZmZzZXRBdHRyaWJ1dGU9PT1vdC5OT05FPzA6MTtiPWIuZmlsbChwKX1pLmFwcGx5T2Zmc2V0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOmJ9KX1sZXQgYz1uLm51bWJlck9mVmVydGljYWxMaW5lcz8/MTY7Yz1rLmNsYW1wKGMsMCxkLzIpO2xldCB1PUllLmNyZWF0ZVR5cGVkQXJyYXkoZCxkKjIrYyoyKTtkLz0yO2xldCBsPTAsaDtmb3IoaD0wO2g8ZDsrK2gpdVtsKytdPWgsdVtsKytdPShoKzEpJWQsdVtsKytdPWgrZCx1W2wrK109KGgrMSklZCtkO2xldCBtO2lmKGM+MCl7bGV0IGI9TWF0aC5taW4oYyxkKTttPU1hdGgucm91bmQoZC9iKTtsZXQgcD1NYXRoLm1pbihtKmMsZCk7Zm9yKGg9MDtoPHA7aCs9bSl1W2wrK109aCx1W2wrK109aCtkfXJldHVybntib3VuZGluZ1NwaGVyZTpmLGF0dHJpYnV0ZXM6aSxpbmRpY2VzOnV9fWZ1bmN0aW9uIG1zKG4pe249bj8/T2UuRU1QVFlfT0JKRUNUO2xldCBlPW4uY2VudGVyLHQ9bi5lbGxpcHNvaWQ/P0suZGVmYXVsdCxvPW4uc2VtaU1ham9yQXhpcyxhPW4uc2VtaU1pbm9yQXhpcyxyPW4uZ3JhbnVsYXJpdHk/P2suUkFESUFOU19QRVJfREVHUkVFLGk9bi5oZWlnaHQ/PzAsZj1uLmV4dHJ1ZGVkSGVpZ2h0Pz9pO3RoaXMuX2NlbnRlcj1zLmNsb25lKGUpLHRoaXMuX3NlbWlNYWpvckF4aXM9byx0aGlzLl9zZW1pTWlub3JBeGlzPWEsdGhpcy5fZWxsaXBzb2lkPUsuY2xvbmUodCksdGhpcy5fcm90YXRpb249bi5yb3RhdGlvbj8/MCx0aGlzLl9oZWlnaHQ9TWF0aC5tYXgoZixpKSx0aGlzLl9ncmFudWxhcml0eT1yLHRoaXMuX2V4dHJ1ZGVkSGVpZ2h0PU1hdGgubWluKGYsaSksdGhpcy5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzPU1hdGgubWF4KG4ubnVtYmVyT2ZWZXJ0aWNhbExpbmVzPz8xNiwwKSx0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9bi5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlRWxsaXBzZU91dGxpbmVHZW9tZXRyeSJ9dmFyIFpULGxjLGxoLGhoLFFULCRULHpyLEhhLFpwPVgoKCk9PntFdCgpO01lKCk7Q3QoKTtzdCgpO3NlKCk7VnAoKTtWZSgpO1h0KCk7WXQoKTtybigpO2pvKCk7WnQoKTtVZSgpO3RuKCk7WlQ9bmV3IHMsbGM9bmV3IHM7bGg9bmV3IGdlLGhoPW5ldyBnZTttcy5wYWNrZWRMZW5ndGg9cy5wYWNrZWRMZW5ndGgrSy5wYWNrZWRMZW5ndGgrODttcy5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gdD10Pz8wLHMucGFjayhuLl9jZW50ZXIsZSx0KSx0Kz1zLnBhY2tlZExlbmd0aCxLLnBhY2sobi5fZWxsaXBzb2lkLGUsdCksdCs9Sy5wYWNrZWRMZW5ndGgsZVt0KytdPW4uX3NlbWlNYWpvckF4aXMsZVt0KytdPW4uX3NlbWlNaW5vckF4aXMsZVt0KytdPW4uX3JvdGF0aW9uLGVbdCsrXT1uLl9oZWlnaHQsZVt0KytdPW4uX2dyYW51bGFyaXR5LGVbdCsrXT1uLl9leHRydWRlZEhlaWdodCxlW3QrK109bi5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzLGVbdF09bi5fb2Zmc2V0QXR0cmlidXRlPz8tMSxlfTtRVD1uZXcgcywkVD1uZXcgSyx6cj17Y2VudGVyOlFULGVsbGlwc29pZDokVCxzZW1pTWFqb3JBeGlzOnZvaWQgMCxzZW1pTWlub3JBeGlzOnZvaWQgMCxyb3RhdGlvbjp2b2lkIDAsaGVpZ2h0OnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDAsZXh0cnVkZWRIZWlnaHQ6dm9pZCAwLG51bWJlck9mVmVydGljYWxMaW5lczp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07bXMudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtlPWU/PzA7bGV0IG89cy51bnBhY2sobixlLFFUKTtlKz1zLnBhY2tlZExlbmd0aDtsZXQgYT1LLnVucGFjayhuLGUsJFQpO2UrPUsucGFja2VkTGVuZ3RoO2xldCByPW5bZSsrXSxpPW5bZSsrXSxmPW5bZSsrXSxkPW5bZSsrXSxjPW5bZSsrXSx1PW5bZSsrXSxsPW5bZSsrXSxoPW5bZV07cmV0dXJuIF8odCk/KHQuX2NlbnRlcj1zLmNsb25lKG8sdC5fY2VudGVyKSx0Ll9lbGxpcHNvaWQ9Sy5jbG9uZShhLHQuX2VsbGlwc29pZCksdC5fc2VtaU1ham9yQXhpcz1yLHQuX3NlbWlNaW5vckF4aXM9aSx0Ll9yb3RhdGlvbj1mLHQuX2hlaWdodD1kLHQuX2dyYW51bGFyaXR5PWMsdC5fZXh0cnVkZWRIZWlnaHQ9dSx0Ll9udW1iZXJPZlZlcnRpY2FsTGluZXM9bCx0Ll9vZmZzZXRBdHRyaWJ1dGU9aD09PS0xP3ZvaWQgMDpoLHQpOih6ci5oZWlnaHQ9ZCx6ci5leHRydWRlZEhlaWdodD11LHpyLmdyYW51bGFyaXR5PWMsenIucm90YXRpb249Zix6ci5zZW1pTWFqb3JBeGlzPXIsenIuc2VtaU1pbm9yQXhpcz1pLHpyLm51bWJlck9mVmVydGljYWxMaW5lcz1sLHpyLm9mZnNldEF0dHJpYnV0ZT1oPT09LTE/dm9pZCAwOmgsbmV3IG1zKHpyKSl9O21zLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKG4pe2lmKG4uX3NlbWlNYWpvckF4aXM8PTB8fG4uX3NlbWlNaW5vckF4aXM8PTApcmV0dXJuO2xldCBlPW4uX2hlaWdodCx0PW4uX2V4dHJ1ZGVkSGVpZ2h0LG89IWsuZXF1YWxzRXBzaWxvbihlLHQsMCxrLkVQU0lMT04yKTtuLl9jZW50ZXI9bi5fZWxsaXBzb2lkLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2Uobi5fY2VudGVyLG4uX2NlbnRlcik7bGV0IGE9e2NlbnRlcjpuLl9jZW50ZXIsc2VtaU1ham9yQXhpczpuLl9zZW1pTWFqb3JBeGlzLHNlbWlNaW5vckF4aXM6bi5fc2VtaU1pbm9yQXhpcyxlbGxpcHNvaWQ6bi5fZWxsaXBzb2lkLHJvdGF0aW9uOm4uX3JvdGF0aW9uLGhlaWdodDplLGdyYW51bGFyaXR5Om4uX2dyYW51bGFyaXR5LG51bWJlck9mVmVydGljYWxMaW5lczpuLl9udW1iZXJPZlZlcnRpY2FsTGluZXN9LHI7aWYobylhLmV4dHJ1ZGVkSGVpZ2h0PXQsYS5vZmZzZXRBdHRyaWJ1dGU9bi5fb2Zmc2V0QXR0cmlidXRlLHI9SDMoYSk7ZWxzZSBpZihyPVYzKGEpLF8obi5fb2Zmc2V0QXR0cmlidXRlKSl7bGV0IGk9ci5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgsZj1uLl9vZmZzZXRBdHRyaWJ1dGU9PT1vdC5OT05FPzA6MSxkPW5ldyBVaW50OEFycmF5KGkvMykuZmlsbChmKTtyLmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6ZH0pfXJldHVybiBuZXcgUGUoe2F0dHJpYnV0ZXM6ci5hdHRyaWJ1dGVzLGluZGljZXM6ci5pbmRpY2VzLHByaW1pdGl2ZVR5cGU6RmUuTElORVMsYm91bmRpbmdTcGhlcmU6ci5ib3VuZGluZ1NwaGVyZSxvZmZzZXRBdHRyaWJ1dGU6bi5fb2Zmc2V0QXR0cmlidXRlfSl9O0hhPW1zfSk7ZnVuY3Rpb24gYnMobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5yYWRpdXMsdD17Y2VudGVyOm4uY2VudGVyLHNlbWlNYWpvckF4aXM6ZSxzZW1pTWlub3JBeGlzOmUsZWxsaXBzb2lkOm4uZWxsaXBzb2lkLGhlaWdodDpuLmhlaWdodCxleHRydWRlZEhlaWdodDpuLmV4dHJ1ZGVkSGVpZ2h0LGdyYW51bGFyaXR5Om4uZ3JhbnVsYXJpdHksbnVtYmVyT2ZWZXJ0aWNhbExpbmVzOm4ubnVtYmVyT2ZWZXJ0aWNhbExpbmVzfTt0aGlzLl9lbGxpcHNlR2VvbWV0cnk9bmV3IEhhKHQpLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUNpcmNsZU91dGxpbmVHZW9tZXRyeSJ9dmFyIEszLHJhLFFwLGVFPVgoKCk9PntNZSgpO3N0KCk7c2UoKTtacCgpO1ZlKCk7YnMucGFja2VkTGVuZ3RoPUhhLnBhY2tlZExlbmd0aDticy5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gSGEucGFjayhuLl9lbGxpcHNlR2VvbWV0cnksZSx0KX07SzM9bmV3IEhhKHtjZW50ZXI6bmV3IHMsc2VtaU1ham9yQXhpczoxLHNlbWlNaW5vckF4aXM6MX0pLHJhPXtjZW50ZXI6bmV3IHMscmFkaXVzOnZvaWQgMCxlbGxpcHNvaWQ6Sy5jbG9uZShLLlVOSVRfU1BIRVJFKSxoZWlnaHQ6dm9pZCAwLGV4dHJ1ZGVkSGVpZ2h0OnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDAsbnVtYmVyT2ZWZXJ0aWNhbExpbmVzOnZvaWQgMCxzZW1pTWFqb3JBeGlzOnZvaWQgMCxzZW1pTWlub3JBeGlzOnZvaWQgMH07YnMudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1IYS51bnBhY2sobixlLEszKTtyZXR1cm4gcmEuY2VudGVyPXMuY2xvbmUoby5fY2VudGVyLHJhLmNlbnRlcikscmEuZWxsaXBzb2lkPUsuY2xvbmUoby5fZWxsaXBzb2lkLHJhLmVsbGlwc29pZCkscmEuaGVpZ2h0PW8uX2hlaWdodCxyYS5leHRydWRlZEhlaWdodD1vLl9leHRydWRlZEhlaWdodCxyYS5ncmFudWxhcml0eT1vLl9ncmFudWxhcml0eSxyYS5udW1iZXJPZlZlcnRpY2FsTGluZXM9by5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzLF8odCk/KHJhLnNlbWlNYWpvckF4aXM9by5fc2VtaU1ham9yQXhpcyxyYS5zZW1pTWlub3JBeGlzPW8uX3NlbWlNaW5vckF4aXMsdC5fZWxsaXBzZUdlb21ldHJ5PW5ldyBIYShyYSksdCk6KHJhLnJhZGl1cz1vLl9zZW1pTWFqb3JBeGlzLG5ldyBicyhyYSkpfTticy5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbihuKXtyZXR1cm4gSGEuY3JlYXRlR2VvbWV0cnkobi5fZWxsaXBzZUdlb21ldHJ5KX07UXA9YnN9KTt2YXIgJHA9e307JGUoJHAse2RlZmF1bHQ6KCk9PlczfSk7ZnVuY3Rpb24gcTMobixlKXtyZXR1cm4gXyhlKSYmKG49UXAudW5wYWNrKG4sZSkpLG4uX2VsbGlwc2VHZW9tZXRyeS5fY2VudGVyPXMuY2xvbmUobi5fZWxsaXBzZUdlb21ldHJ5Ll9jZW50ZXIpLG4uX2VsbGlwc2VHZW9tZXRyeS5fZWxsaXBzb2lkPUsuY2xvbmUobi5fZWxsaXBzZUdlb21ldHJ5Ll9lbGxpcHNvaWQpLFFwLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBXMyxlMD1YKCgpPT57TWUoKTtlRSgpO3NlKCk7VmUoKTtXMz1xM30pO2Z1bmN0aW9uIFgzKG4sZSx0LG8pe2lmKCFfKG4pKXJldHVybjt0PXQ/PyExO2xldCBhPV8obykscj1uLmxlbmd0aDtpZihyPDIpcmV0dXJuIG47bGV0IGksZj1uWzBdLGQsYyx1PTAsbD0tMTtmb3IoaT0xO2k8cjsrK2kpZD1uW2ldLGUoZixkLHRFKT8oXyhjKXx8KGM9bi5zbGljZSgwLGkpLHU9aS0xLGw9MCksYSYmby5wdXNoKGkpKTooXyhjKSYmKGMucHVzaChkKSx1PWksYSYmKGw9by5sZW5ndGgpKSxmPWQpO3JldHVybiB0JiZlKG5bMF0sbltyLTFdLHRFKSYmKGEmJihfKGMpP28uc3BsaWNlKGwsMCx1KTpvLnB1c2goci0xKSksXyhjKT9jLmxlbmd0aC09MTpjPW4uc2xpY2UoMCwtMSkpLF8oYyk/YzpufXZhciB0RSx4bixLYT1YKCgpPT57c2UoKTtVZSgpO3RFPWsuRVBTSUxPTjEwO3huPVgzfSk7ZnVuY3Rpb24gdm4obixlLHQsbyl7dGhpcy54PW4/PzAsdGhpcy55PWU/PzAsdGhpcy53aWR0aD10Pz8wLHRoaXMuaGVpZ2h0PW8/PzB9dmFyIG5FLFkzLEozLHFhLEdmPVgoKCk9Pnt2dCgpO2d0KCk7c2UoKTtWZSgpO1ByKCk7WmkoKTtobigpO3ZuLnBhY2tlZExlbmd0aD00O3ZuLnBhY2s9ZnVuY3Rpb24obixlLHQpe3JldHVybiB0PXQ/PzAsZVt0KytdPW4ueCxlW3QrK109bi55LGVbdCsrXT1uLndpZHRoLGVbdF09bi5oZWlnaHQsZX07dm4udW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gZT1lPz8wLF8odCl8fCh0PW5ldyB2biksdC54PW5bZSsrXSx0Lnk9bltlKytdLHQud2lkdGg9bltlKytdLHQuaGVpZ2h0PW5bZV0sdH07dm4uZnJvbVBvaW50cz1mdW5jdGlvbihuLGUpe2lmKF8oZSl8fChlPW5ldyB2biksIV8obil8fG4ubGVuZ3RoPT09MClyZXR1cm4gZS54PTAsZS55PTAsZS53aWR0aD0wLGUuaGVpZ2h0PTAsZTtsZXQgdD1uLmxlbmd0aCxvPW5bMF0ueCxhPW5bMF0ueSxyPW5bMF0ueCxpPW5bMF0ueTtmb3IobGV0IGY9MTtmPHQ7ZisrKXtsZXQgZD1uW2ZdLGM9ZC54LHU9ZC55O289TWF0aC5taW4oYyxvKSxyPU1hdGgubWF4KGMsciksYT1NYXRoLm1pbih1LGEpLGk9TWF0aC5tYXgodSxpKX1yZXR1cm4gZS54PW8sZS55PWEsZS53aWR0aD1yLW8sZS5oZWlnaHQ9aS1hLGV9O25FPW5ldyBubyxZMz1uZXcgcmUsSjM9bmV3IHJlO3ZuLmZyb21SZWN0YW5nbGU9ZnVuY3Rpb24obixlLHQpe2lmKF8odCl8fCh0PW5ldyB2biksIV8obikpcmV0dXJuIHQueD0wLHQueT0wLHQud2lkdGg9MCx0LmhlaWdodD0wLHQ7bkUuX2VsbGlwc29pZD1LLmRlZmF1bHQsZT1lPz9uRTtsZXQgbz1lLnByb2plY3QoeGUuc291dGh3ZXN0KG4sWTMpKSxhPWUucHJvamVjdCh4ZS5ub3J0aGVhc3QobixKMykpO3JldHVybiBZLnN1YnRyYWN0KGEsbyxhKSx0Lng9by54LHQueT1vLnksdC53aWR0aD1hLngsdC5oZWlnaHQ9YS55LHR9O3ZuLmNsb25lPWZ1bmN0aW9uKG4sZSl7aWYoXyhuKSlyZXR1cm4gXyhlKT8oZS54PW4ueCxlLnk9bi55LGUud2lkdGg9bi53aWR0aCxlLmhlaWdodD1uLmhlaWdodCxlKTpuZXcgdm4obi54LG4ueSxuLndpZHRoLG4uaGVpZ2h0KX07dm4udW5pb249ZnVuY3Rpb24obixlLHQpe18odCl8fCh0PW5ldyB2bik7bGV0IG89TWF0aC5taW4obi54LGUueCksYT1NYXRoLm1pbihuLnksZS55KSxyPU1hdGgubWF4KG4ueCtuLndpZHRoLGUueCtlLndpZHRoKSxpPU1hdGgubWF4KG4ueStuLmhlaWdodCxlLnkrZS5oZWlnaHQpO3JldHVybiB0Lng9byx0Lnk9YSx0LndpZHRoPXItbyx0LmhlaWdodD1pLWEsdH07dm4uZXhwYW5kPWZ1bmN0aW9uKG4sZSx0KXt0PXZuLmNsb25lKG4sdCk7bGV0IG89ZS54LXQueCxhPWUueS10Lnk7cmV0dXJuIG8+dC53aWR0aD90LndpZHRoPW86bzwwJiYodC53aWR0aC09byx0Lng9ZS54KSxhPnQuaGVpZ2h0P3QuaGVpZ2h0PWE6YTwwJiYodC5oZWlnaHQtPWEsdC55PWUueSksdH07dm4uaW50ZXJzZWN0PWZ1bmN0aW9uKG4sZSl7bGV0IHQ9bi54LG89bi55LGE9ZS54LHI9ZS55O3JldHVybiB0PmErZS53aWR0aHx8dCtuLndpZHRoPGF8fG8rbi5oZWlnaHQ8cnx8bz5yK2UuaGVpZ2h0P1RuLk9VVFNJREU6VG4uSU5URVJTRUNUSU5HfTt2bi5lcXVhbHM9ZnVuY3Rpb24obixlKXtyZXR1cm4gbj09PWV8fF8obikmJl8oZSkmJm4ueD09PWUueCYmbi55PT09ZS55JiZuLndpZHRoPT09ZS53aWR0aCYmbi5oZWlnaHQ9PT1lLmhlaWdodH07dm4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKG4pe3JldHVybiB2bi5jbG9uZSh0aGlzLG4pfTt2bi5wcm90b3R5cGUuaW50ZXJzZWN0PWZ1bmN0aW9uKG4pe3JldHVybiB2bi5pbnRlcnNlY3QodGhpcyxuKX07dm4ucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihuKXtyZXR1cm4gdm4uZXF1YWxzKHRoaXMsbil9O3FhPXZufSk7ZnVuY3Rpb24gaG8obixlLHQpe3RoaXMubWluaW11bT1zLmNsb25lKG4/P3MuWkVSTyksdGhpcy5tYXhpbXVtPXMuY2xvbmUoZT8/cy5aRVJPKSxfKHQpP3Q9cy5jbG9uZSh0KTp0PXMubWlkcG9pbnQodGhpcy5taW5pbXVtLHRoaXMubWF4aW11bSxuZXcgcyksdGhpcy5jZW50ZXI9dH12YXIgbWgscm8seWk9WCgoKT0+e01lKCk7c2UoKTtaaSgpO2hvLmZyb21Db3JuZXJzPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gXyh0KXx8KHQ9bmV3IGhvKSx0Lm1pbmltdW09cy5jbG9uZShuLHQubWluaW11bSksdC5tYXhpbXVtPXMuY2xvbmUoZSx0Lm1heGltdW0pLHQuY2VudGVyPXMubWlkcG9pbnQobixlLHQuY2VudGVyKSx0fTtoby5mcm9tUG9pbnRzPWZ1bmN0aW9uKG4sZSl7aWYoXyhlKXx8KGU9bmV3IGhvKSwhXyhuKXx8bi5sZW5ndGg9PT0wKXJldHVybiBlLm1pbmltdW09cy5jbG9uZShzLlpFUk8sZS5taW5pbXVtKSxlLm1heGltdW09cy5jbG9uZShzLlpFUk8sZS5tYXhpbXVtKSxlLmNlbnRlcj1zLmNsb25lKHMuWkVSTyxlLmNlbnRlciksZTtsZXQgdD1uWzBdLngsbz1uWzBdLnksYT1uWzBdLnoscj1uWzBdLngsaT1uWzBdLnksZj1uWzBdLnosZD1uLmxlbmd0aDtmb3IobGV0IGw9MTtsPGQ7bCsrKXtsZXQgaD1uW2xdLG09aC54LGI9aC55LHA9aC56O3Q9TWF0aC5taW4obSx0KSxyPU1hdGgubWF4KG0sciksbz1NYXRoLm1pbihiLG8pLGk9TWF0aC5tYXgoYixpKSxhPU1hdGgubWluKHAsYSksZj1NYXRoLm1heChwLGYpfWxldCBjPWUubWluaW11bTtjLng9dCxjLnk9byxjLno9YTtsZXQgdT1lLm1heGltdW07cmV0dXJuIHUueD1yLHUueT1pLHUuej1mLGUuY2VudGVyPXMubWlkcG9pbnQoYyx1LGUuY2VudGVyKSxlfTtoby5jbG9uZT1mdW5jdGlvbihuLGUpe2lmKF8obikpcmV0dXJuIF8oZSk/KGUubWluaW11bT1zLmNsb25lKG4ubWluaW11bSxlLm1pbmltdW0pLGUubWF4aW11bT1zLmNsb25lKG4ubWF4aW11bSxlLm1heGltdW0pLGUuY2VudGVyPXMuY2xvbmUobi5jZW50ZXIsZS5jZW50ZXIpLGUpOm5ldyBobyhuLm1pbmltdW0sbi5tYXhpbXVtLG4uY2VudGVyKX07aG8uZXF1YWxzPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIG49PT1lfHxfKG4pJiZfKGUpJiZzLmVxdWFscyhuLmNlbnRlcixlLmNlbnRlcikmJnMuZXF1YWxzKG4ubWluaW11bSxlLm1pbmltdW0pJiZzLmVxdWFscyhuLm1heGltdW0sZS5tYXhpbXVtKX07bWg9bmV3IHM7aG8uaW50ZXJzZWN0UGxhbmU9ZnVuY3Rpb24obixlKXttaD1zLnN1YnRyYWN0KG4ubWF4aW11bSxuLm1pbmltdW0sbWgpO2xldCB0PXMubXVsdGlwbHlCeVNjYWxhcihtaCwuNSxtaCksbz1lLm5vcm1hbCxhPXQueCpNYXRoLmFicyhvLngpK3QueSpNYXRoLmFicyhvLnkpK3QueipNYXRoLmFicyhvLnopLHI9cy5kb3Qobi5jZW50ZXIsbykrZS5kaXN0YW5jZTtyZXR1cm4gci1hPjA/VG4uSU5TSURFOnIrYTwwP1RuLk9VVFNJREU6VG4uSU5URVJTRUNUSU5HfTtoby5pbnRlcnNlY3RBeGlzQWxpZ25lZEJvdW5kaW5nQm94PWZ1bmN0aW9uKG4sZSl7cmV0dXJuIG4ubWluaW11bS54PD1lLm1heGltdW0ueCYmbi5tYXhpbXVtLng+PWUubWluaW11bS54JiZuLm1pbmltdW0ueTw9ZS5tYXhpbXVtLnkmJm4ubWF4aW11bS55Pj1lLm1pbmltdW0ueSYmbi5taW5pbXVtLno8PWUubWF4aW11bS56JiZuLm1heGltdW0uej49ZS5taW5pbXVtLnp9O2hvLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbihuKXtyZXR1cm4gaG8uY2xvbmUodGhpcyxuKX07aG8ucHJvdG90eXBlLmludGVyc2VjdFBsYW5lPWZ1bmN0aW9uKG4pe3JldHVybiBoby5pbnRlcnNlY3RQbGFuZSh0aGlzLG4pfTtoby5wcm90b3R5cGUuaW50ZXJzZWN0QXhpc0FsaWduZWRCb3VuZGluZ0JveD1mdW5jdGlvbihuKXtyZXR1cm4gaG8uaW50ZXJzZWN0QXhpc0FsaWduZWRCb3VuZGluZ0JveCh0aGlzLG4pfTtoby5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKG4pe3JldHVybiBoby5lcXVhbHModGhpcyxuKX07cm89aG99KTtmdW5jdGlvbiBocihuLGUpe2U9ZT8/Sy5kZWZhdWx0LG49ZS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKG4pO2xldCB0PW9vLmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKG4sZSk7dGhpcy5fZWxsaXBzb2lkPWUsdGhpcy5fb3JpZ2luPW4sdGhpcy5feEF4aXM9cy5mcm9tQ2FydGVzaWFuNCgkLmdldENvbHVtbih0LDAsdDApKSx0aGlzLl95QXhpcz1zLmZyb21DYXJ0ZXNpYW40KCQuZ2V0Q29sdW1uKHQsMSx0MCkpO2xldCBvPXMuZnJvbUNhcnRlc2lhbjQoJC5nZXRDb2x1bW4odCwyLHQwKSk7dGhpcy5fcGxhbmU9bm4uZnJvbVBvaW50Tm9ybWFsKG4sbyl9dmFyIHQwLFozLG9FLGJoLFEzLEFvLHBzPVgoKCk9Pnt5aSgpO3Z0KCk7TWUoKTtiYSgpO3NlKCk7VmUoKTtiaSgpO3VuKCk7cGkoKTtGZigpO3JyKCk7dDA9bmV3IHJ0O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGhyLnByb3RvdHlwZSx7ZWxsaXBzb2lkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxsaXBzb2lkfX0sb3JpZ2luOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3JpZ2lufX0scGxhbmU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wbGFuZX19LHhBeGlzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5feEF4aXN9fSx5QXhpczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3lBeGlzfX0sekF4aXM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wbGFuZS5ub3JtYWx9fX0pO1ozPW5ldyBybztoci5mcm9tUG9pbnRzPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9cm8uZnJvbVBvaW50cyhuLFozKTtyZXR1cm4gbmV3IGhyKHQuY2VudGVyLGUpfTtvRT1uZXcgY3IsYmg9bmV3IHM7aHIucHJvdG90eXBlLnByb2plY3RQb2ludE9udG9QbGFuZT1mdW5jdGlvbihuLGUpe2xldCB0PW9FO3Qub3JpZ2luPW4scy5ub3JtYWxpemUobix0LmRpcmVjdGlvbik7bGV0IG89UW4ucmF5UGxhbmUodCx0aGlzLl9wbGFuZSxiaCk7aWYoXyhvKXx8KHMubmVnYXRlKHQuZGlyZWN0aW9uLHQuZGlyZWN0aW9uKSxvPVFuLnJheVBsYW5lKHQsdGhpcy5fcGxhbmUsYmgpKSxfKG8pKXtsZXQgYT1zLnN1YnRyYWN0KG8sdGhpcy5fb3JpZ2luLG8pLHI9cy5kb3QodGhpcy5feEF4aXMsYSksaT1zLmRvdCh0aGlzLl95QXhpcyxhKTtyZXR1cm4gXyhlKT8oZS54PXIsZS55PWksZSk6bmV3IFkocixpKX19O2hyLnByb3RvdHlwZS5wcm9qZWN0UG9pbnRzT250b1BsYW5lPWZ1bmN0aW9uKG4sZSl7XyhlKXx8KGU9W10pO2xldCB0PTAsbz1uLmxlbmd0aDtmb3IobGV0IGE9MDthPG87YSsrKXtsZXQgcj10aGlzLnByb2plY3RQb2ludE9udG9QbGFuZShuW2FdLGVbdF0pO18ocikmJihlW3RdPXIsdCsrKX1yZXR1cm4gZS5sZW5ndGg9dCxlfTtoci5wcm90b3R5cGUucHJvamVjdFBvaW50VG9OZWFyZXN0T25QbGFuZT1mdW5jdGlvbihuLGUpe18oZSl8fChlPW5ldyBZKTtsZXQgdD1vRTt0Lm9yaWdpbj1uLHMuY2xvbmUodGhpcy5fcGxhbmUubm9ybWFsLHQuZGlyZWN0aW9uKTtsZXQgbz1Rbi5yYXlQbGFuZSh0LHRoaXMuX3BsYW5lLGJoKTtfKG8pfHwocy5uZWdhdGUodC5kaXJlY3Rpb24sdC5kaXJlY3Rpb24pLG89UW4ucmF5UGxhbmUodCx0aGlzLl9wbGFuZSxiaCkpO2xldCBhPXMuc3VidHJhY3Qobyx0aGlzLl9vcmlnaW4sbykscj1zLmRvdCh0aGlzLl94QXhpcyxhKSxpPXMuZG90KHRoaXMuX3lBeGlzLGEpO3JldHVybiBlLng9cixlLnk9aSxlfTtoci5wcm90b3R5cGUucHJvamVjdFBvaW50c1RvTmVhcmVzdE9uUGxhbmU9ZnVuY3Rpb24obixlKXtfKGUpfHwoZT1bXSk7bGV0IHQ9bi5sZW5ndGg7ZS5sZW5ndGg9dDtmb3IobGV0IG89MDtvPHQ7bysrKWVbb109dGhpcy5wcm9qZWN0UG9pbnRUb05lYXJlc3RPblBsYW5lKG5bb10sZVtvXSk7cmV0dXJuIGV9O1EzPW5ldyBzO2hyLnByb3RvdHlwZS5wcm9qZWN0UG9pbnRPbnRvRWxsaXBzb2lkPWZ1bmN0aW9uKG4sZSl7XyhlKXx8KGU9bmV3IHMpO2xldCB0PXRoaXMuX2VsbGlwc29pZCxvPXRoaXMuX29yaWdpbixhPXRoaXMuX3hBeGlzLHI9dGhpcy5feUF4aXMsaT1RMztyZXR1cm4gcy5tdWx0aXBseUJ5U2NhbGFyKGEsbi54LGkpLGU9cy5hZGQobyxpLGUpLHMubXVsdGlwbHlCeVNjYWxhcihyLG4ueSxpKSxzLmFkZChlLGksZSksdC5zY2FsZVRvR2VvY2VudHJpY1N1cmZhY2UoZSxlKSxlfTtoci5wcm90b3R5cGUucHJvamVjdFBvaW50c09udG9FbGxpcHNvaWQ9ZnVuY3Rpb24obixlKXtsZXQgdD1uLmxlbmd0aDtfKGUpP2UubGVuZ3RoPXQ6ZT1uZXcgQXJyYXkodCk7Zm9yKGxldCBvPTA7bzx0OysrbyllW29dPXRoaXMucHJvamVjdFBvaW50T250b0VsbGlwc29pZChuW29dLGVbb10pO3JldHVybiBlfTtBbz1ocn0pO2Z1bmN0aW9uIFB0KG4sZSl7dGhpcy5jZW50ZXI9cy5jbG9uZShuPz9zLlpFUk8pLHRoaXMuaGFsZkF4ZXM9Si5jbG9uZShlPz9KLlpFUk8pfWZ1bmN0aW9uIGFFKG4sZSx0LG8sYSxyLGksZixkLGMsdSl7Xyh1KXx8KHU9bmV3IFB0KTtsZXQgbD11LmhhbGZBeGVzO0ouc2V0Q29sdW1uKGwsMCxlLGwpLEouc2V0Q29sdW1uKGwsMSx0LGwpLEouc2V0Q29sdW1uKGwsMixvLGwpO2xldCBoPWZFO2gueD0oYStyKS8yLGgueT0oaStmKS8yLGguej0oZCtjKS8yO2xldCBtPWNQO20ueD0oci1hKS8yLG0ueT0oZi1pKS8yLG0uej0oYy1kKS8yO2xldCBiPXUuY2VudGVyO3JldHVybiBoPUoubXVsdGlwbHlCeVZlY3RvcihsLGgsaCkscy5hZGQobixoLGIpLEoubXVsdGlwbHlCeVNjYWxlKGwsbSxsKSx1fXZhciAkMyxlUCx0UCxuUCxvUCxhUCxyUCxpUCxmRSxjUCxyRSxzUCxmUCxkUCx1UCxsUCxoUCxtUCxpRSxiUCxjRSxwUCxnUCxfUCx5UCxBUCx3UCxUUCxFUCxSUCx4UCxPUCxTUCxDUCxNUCxOUCxkRSx1RSxsRSxJUCxzRSxQUCxrUCx2UCxGUCxEUCxCUCxqUCxVUCxtbixBaT1YKCgpPT57RXQoKTt2dCgpO01lKCk7Z3QoKTtzZSgpO1ZlKCk7cHMoKTtaaSgpO2dmKCk7VWUoKTtJbigpO3VuKCk7cGkoKTtobigpO1B0LnBhY2tlZExlbmd0aD1zLnBhY2tlZExlbmd0aCtKLnBhY2tlZExlbmd0aDtQdC5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gdD10Pz8wLHMucGFjayhuLmNlbnRlcixlLHQpLEoucGFjayhuLmhhbGZBeGVzLGUsdCtzLnBhY2tlZExlbmd0aCksZX07UHQudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gZT1lPz8wLF8odCl8fCh0PW5ldyBQdCkscy51bnBhY2sobixlLHQuY2VudGVyKSxKLnVucGFjayhuLGUrcy5wYWNrZWRMZW5ndGgsdC5oYWxmQXhlcyksdH07JDM9bmV3IHMsZVA9bmV3IHMsdFA9bmV3IHMsblA9bmV3IHMsb1A9bmV3IHMsYVA9bmV3IHMsclA9bmV3IEosaVA9e3VuaXRhcnk6bmV3IEosZGlhZ29uYWw6bmV3IEp9O1B0LmZyb21Qb2ludHM9ZnVuY3Rpb24obixlKXtpZihfKGUpfHwoZT1uZXcgUHQpLCFfKG4pfHxuLmxlbmd0aD09PTApcmV0dXJuIGUuaGFsZkF4ZXM9Si5aRVJPLGUuY2VudGVyPXMuWkVSTyxlO2xldCB0LG89bi5sZW5ndGgsYT1zLmNsb25lKG5bMF0sJDMpO2Zvcih0PTE7dDxvO3QrKylzLmFkZChhLG5bdF0sYSk7bGV0IHI9MS9vO3MubXVsdGlwbHlCeVNjYWxhcihhLHIsYSk7bGV0IGk9MCxmPTAsZD0wLGM9MCx1PTAsbD0wLGg7Zm9yKHQ9MDt0PG87dCsrKWg9cy5zdWJ0cmFjdChuW3RdLGEsZVApLGkrPWgueCpoLngsZis9aC54KmgueSxkKz1oLngqaC56LGMrPWgueSpoLnksdSs9aC55KmgueixsKz1oLnoqaC56O2kqPXIsZio9cixkKj1yLGMqPXIsdSo9cixsKj1yO2xldCBtPXJQO21bMF09aSxtWzFdPWYsbVsyXT1kLG1bM109ZixtWzRdPWMsbVs1XT11LG1bNl09ZCxtWzddPXUsbVs4XT1sO2xldCBiPUouY29tcHV0ZUVpZ2VuRGVjb21wb3NpdGlvbihtLGlQKSxwPUouY2xvbmUoYi51bml0YXJ5LGUuaGFsZkF4ZXMpLHk9Si5nZXRDb2x1bW4ocCwwLG5QKSxFPUouZ2V0Q29sdW1uKHAsMSxvUCksZz1KLmdldENvbHVtbihwLDIsYVApLEE9LU51bWJlci5NQVhfVkFMVUUsVD0tTnVtYmVyLk1BWF9WQUxVRSxSPS1OdW1iZXIuTUFYX1ZBTFVFLFM9TnVtYmVyLk1BWF9WQUxVRSxNPU51bWJlci5NQVhfVkFMVUUsST1OdW1iZXIuTUFYX1ZBTFVFO2Zvcih0PTA7dDxvO3QrKyloPW5bdF0sQT1NYXRoLm1heChzLmRvdCh5LGgpLEEpLFQ9TWF0aC5tYXgocy5kb3QoRSxoKSxUKSxSPU1hdGgubWF4KHMuZG90KGcsaCksUiksUz1NYXRoLm1pbihzLmRvdCh5LGgpLFMpLE09TWF0aC5taW4ocy5kb3QoRSxoKSxNKSxJPU1hdGgubWluKHMuZG90KGcsaCksSSk7eT1zLm11bHRpcGx5QnlTY2FsYXIoeSwuNSooUytBKSx5KSxFPXMubXVsdGlwbHlCeVNjYWxhcihFLC41KihNK1QpLEUpLGc9cy5tdWx0aXBseUJ5U2NhbGFyKGcsLjUqKEkrUiksZyk7bGV0IE49cy5hZGQoeSxFLGUuY2VudGVyKTtzLmFkZChOLGcsTik7bGV0IFA9dFA7cmV0dXJuIFAueD1BLVMsUC55PVQtTSxQLno9Ui1JLHMubXVsdGlwbHlCeVNjYWxhcihQLC41LFApLEoubXVsdGlwbHlCeVNjYWxlKGUuaGFsZkF4ZXMsUCxlLmhhbGZBeGVzKSxlfTtmRT1uZXcgcyxjUD1uZXcgcztyRT1uZXcgcmUsc1A9bmV3IHMsZlA9bmV3IHJlLGRQPW5ldyByZSx1UD1uZXcgcmUsbFA9bmV3IHJlLGhQPW5ldyByZSxtUD1uZXcgcyxpRT1uZXcgcyxiUD1uZXcgcyxjRT1uZXcgcyxwUD1uZXcgcyxnUD1uZXcgWSxfUD1uZXcgWSx5UD1uZXcgWSxBUD1uZXcgWSx3UD1uZXcgWSxUUD1uZXcgcyxFUD1uZXcgcyxSUD1uZXcgcyx4UD1uZXcgcyxPUD1uZXcgWSxTUD1uZXcgcyxDUD1uZXcgcyxNUD1uZXcgcyxOUD1uZXcgbm4ocy5VTklUX1gsMCk7UHQuZnJvbVJlY3RhbmdsZT1mdW5jdGlvbihuLGUsdCxvLGEpe2U9ZT8/MCx0PXQ/PzAsbz1vPz9LLmRlZmF1bHQ7bGV0IHIsaSxmLGQsYyx1LGw7aWYobi53aWR0aDw9ay5QSSl7bGV0IE09eGUuY2VudGVyKG4sckUpLEk9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihNLHNQKSxOPW5ldyBBbyhJLG8pO2w9Ti5wbGFuZTtsZXQgUD1NLmxvbmdpdHVkZSxGPW4uc291dGg8MCYmbi5ub3J0aD4wPzA6TS5sYXRpdHVkZSx3PXJlLmZyb21SYWRpYW5zKFAsbi5ub3J0aCx0LGZQKSx4PXJlLmZyb21SYWRpYW5zKG4ud2VzdCxuLm5vcnRoLHQsZFApLEM9cmUuZnJvbVJhZGlhbnMobi53ZXN0LEYsdCx1UCksdj1yZS5mcm9tUmFkaWFucyhuLndlc3Qsbi5zb3V0aCx0LGxQKSxqPXJlLmZyb21SYWRpYW5zKFAsbi5zb3V0aCx0LGhQKSx6PW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4odyxtUCksRD1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHgsaUUpLEc9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihDLGJQKSxWPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4odixjRSksTz1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGoscFApLFo9Ti5wcm9qZWN0UG9pbnRUb05lYXJlc3RPblBsYW5lKHosZ1ApLGFlPU4ucHJvamVjdFBvaW50VG9OZWFyZXN0T25QbGFuZShELF9QKSxjZT1OLnByb2plY3RQb2ludFRvTmVhcmVzdE9uUGxhbmUoRyx5UCksZmU9Ti5wcm9qZWN0UG9pbnRUb05lYXJlc3RPblBsYW5lKFYsQVApLHRlPU4ucHJvamVjdFBvaW50VG9OZWFyZXN0T25QbGFuZShPLHdQKTtyZXR1cm4gcj1NYXRoLm1pbihhZS54LGNlLngsZmUueCksaT0tcixkPU1hdGgubWF4KGFlLnksWi55KSxmPU1hdGgubWluKGZlLnksdGUueSkseC5oZWlnaHQ9di5oZWlnaHQ9ZSxEPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oeCxpRSksVj1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHYsY0UpLGM9TWF0aC5taW4obm4uZ2V0UG9pbnREaXN0YW5jZShsLEQpLG5uLmdldFBvaW50RGlzdGFuY2UobCxWKSksdT10LGFFKE4ub3JpZ2luLE4ueEF4aXMsTi55QXhpcyxOLnpBeGlzLHIsaSxmLGQsYyx1LGEpfWxldCBoPW4uc291dGg+MCxtPW4ubm9ydGg8MCxiPWg/bi5zb3V0aDptP24ubm9ydGg6MCxwPXhlLmNlbnRlcihuLHJFKS5sb25naXR1ZGUseT1zLmZyb21SYWRpYW5zKHAsYix0LG8sVFApO3kuej0wO2xldCBnPU1hdGguYWJzKHkueCk8ay5FUFNJTE9OMTAmJk1hdGguYWJzKHkueSk8ay5FUFNJTE9OMTA/cy5VTklUX1g6cy5ub3JtYWxpemUoeSxFUCksQT1zLlVOSVRfWixUPXMuY3Jvc3MoZyxBLFJQKTtsPW5uLmZyb21Qb2ludE5vcm1hbCh5LGcsTlApO2xldCBSPXMuZnJvbVJhZGlhbnMocCtrLlBJX09WRVJfVFdPLGIsdCxvLHhQKTtpPXMuZG90KG5uLnByb2plY3RQb2ludE9udG9QbGFuZShsLFIsT1ApLFQpLHI9LWksZD1zLmZyb21SYWRpYW5zKDAsbi5ub3J0aCxtP2U6dCxvLFNQKS56LGY9cy5mcm9tUmFkaWFucygwLG4uc291dGgsaD9lOnQsbyxDUCkuejtsZXQgUz1zLmZyb21SYWRpYW5zKG4uZWFzdCxiLHQsbyxNUCk7cmV0dXJuIGM9bm4uZ2V0UG9pbnREaXN0YW5jZShsLFMpLHU9MCxhRSh5LFQsQSxnLHIsaSxmLGQsYyx1LGEpfTtQdC5mcm9tVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24obixlKXtyZXR1cm4gXyhlKXx8KGU9bmV3IFB0KSxlLmNlbnRlcj0kLmdldFRyYW5zbGF0aW9uKG4sZS5jZW50ZXIpLGUuaGFsZkF4ZXM9JC5nZXRNYXRyaXgzKG4sZS5oYWxmQXhlcyksZS5oYWxmQXhlcz1KLm11bHRpcGx5QnlTY2FsYXIoZS5oYWxmQXhlcywuNSxlLmhhbGZBeGVzKSxlfTtQdC5jbG9uZT1mdW5jdGlvbihuLGUpe2lmKF8obikpcmV0dXJuIF8oZSk/KHMuY2xvbmUobi5jZW50ZXIsZS5jZW50ZXIpLEouY2xvbmUobi5oYWxmQXhlcyxlLmhhbGZBeGVzKSxlKTpuZXcgUHQobi5jZW50ZXIsbi5oYWxmQXhlcyl9O1B0LmludGVyc2VjdFBsYW5lPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9bi5jZW50ZXIsbz1lLm5vcm1hbCxhPW4uaGFsZkF4ZXMscj1vLngsaT1vLnksZj1vLnosZD1NYXRoLmFicyhyKmFbSi5DT0xVTU4wUk9XMF0raSphW0ouQ09MVU1OMFJPVzFdK2YqYVtKLkNPTFVNTjBST1cyXSkrTWF0aC5hYnMociphW0ouQ09MVU1OMVJPVzBdK2kqYVtKLkNPTFVNTjFST1cxXStmKmFbSi5DT0xVTU4xUk9XMl0pK01hdGguYWJzKHIqYVtKLkNPTFVNTjJST1cwXStpKmFbSi5DT0xVTU4yUk9XMV0rZiphW0ouQ09MVU1OMlJPVzJdKSxjPXMuZG90KG8sdCkrZS5kaXN0YW5jZTtyZXR1cm4gYzw9LWQ/VG4uT1VUU0lERTpjPj1kP1RuLklOU0lERTpUbi5JTlRFUlNFQ1RJTkd9O2RFPW5ldyBzLHVFPW5ldyBzLGxFPW5ldyBzLElQPW5ldyBzLHNFPW5ldyBzLFBQPW5ldyBzO1B0LmRpc3RhbmNlU3F1YXJlZFRvPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9cy5zdWJ0cmFjdChlLG4uY2VudGVyLGZFKSxvPW4uaGFsZkF4ZXMsYT1KLmdldENvbHVtbihvLDAsZEUpLHI9Si5nZXRDb2x1bW4obywxLHVFKSxpPUouZ2V0Q29sdW1uKG8sMixsRSksZj1zLm1hZ25pdHVkZShhKSxkPXMubWFnbml0dWRlKHIpLGM9cy5tYWduaXR1ZGUoaSksdT0hMCxsPSEwLGg9ITA7Zj4wP3MuZGl2aWRlQnlTY2FsYXIoYSxmLGEpOnU9ITEsZD4wP3MuZGl2aWRlQnlTY2FsYXIocixkLHIpOmw9ITEsYz4wP3MuZGl2aWRlQnlTY2FsYXIoaSxjLGkpOmg9ITE7bGV0IG09IXUrIWwrIWgsYixwLHk7aWYobT09PTEpe2xldCBUPWE7Yj1yLHA9aSxsP2h8fChUPWkscD1hKTooVD1yLGI9YSkseT1zLmNyb3NzKGIscCxzRSksVD09PWE/YT15OlQ9PT1yP3I9eTpUPT09aSYmKGk9eSl9ZWxzZSBpZihtPT09Mil7Yj1hLGw/Yj1yOmgmJihiPWkpO2xldCBUPXMuVU5JVF9ZO1QuZXF1YWxzRXBzaWxvbihiLGsuRVBTSUxPTjMpJiYoVD1zLlVOSVRfWCkscD1zLmNyb3NzKGIsVCxJUCkscy5ub3JtYWxpemUocCxwKSx5PXMuY3Jvc3MoYixwLHNFKSxzLm5vcm1hbGl6ZSh5LHkpLGI9PT1hPyhyPXAsaT15KTpiPT09cj8oaT1wLGE9eSk6Yj09PWkmJihhPXAscj15KX1lbHNlIG09PT0zJiYoYT1zLlVOSVRfWCxyPXMuVU5JVF9ZLGk9cy5VTklUX1opO2xldCBFPVBQO0UueD1zLmRvdCh0LGEpLEUueT1zLmRvdCh0LHIpLEUuej1zLmRvdCh0LGkpO2xldCBnPTAsQTtyZXR1cm4gRS54PC1mPyhBPUUueCtmLGcrPUEqQSk6RS54PmYmJihBPUUueC1mLGcrPUEqQSksRS55PC1kPyhBPUUueStkLGcrPUEqQSk6RS55PmQmJihBPUUueS1kLGcrPUEqQSksRS56PC1jPyhBPUUueitjLGcrPUEqQSk6RS56PmMmJihBPUUuei1jLGcrPUEqQSksZ307a1A9bmV3IHMsdlA9bmV3IHM7UHQuY29tcHV0ZVBsYW5lRGlzdGFuY2VzPWZ1bmN0aW9uKG4sZSx0LG8pe18obyl8fChvPW5ldyBfbyk7bGV0IGE9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHI9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLGk9bi5jZW50ZXIsZj1uLmhhbGZBeGVzLGQ9Si5nZXRDb2x1bW4oZiwwLGRFKSxjPUouZ2V0Q29sdW1uKGYsMSx1RSksdT1KLmdldENvbHVtbihmLDIsbEUpLGw9cy5hZGQoZCxjLGtQKTtzLmFkZChsLHUsbCkscy5hZGQobCxpLGwpO2xldCBoPXMuc3VidHJhY3QobCxlLHZQKSxtPXMuZG90KHQsaCk7cmV0dXJuIGE9TWF0aC5taW4obSxhKSxyPU1hdGgubWF4KG0scikscy5hZGQoaSxkLGwpLHMuYWRkKGwsYyxsKSxzLnN1YnRyYWN0KGwsdSxsKSxzLnN1YnRyYWN0KGwsZSxoKSxtPXMuZG90KHQsaCksYT1NYXRoLm1pbihtLGEpLHI9TWF0aC5tYXgobSxyKSxzLmFkZChpLGQsbCkscy5zdWJ0cmFjdChsLGMsbCkscy5hZGQobCx1LGwpLHMuc3VidHJhY3QobCxlLGgpLG09cy5kb3QodCxoKSxhPU1hdGgubWluKG0sYSkscj1NYXRoLm1heChtLHIpLHMuYWRkKGksZCxsKSxzLnN1YnRyYWN0KGwsYyxsKSxzLnN1YnRyYWN0KGwsdSxsKSxzLnN1YnRyYWN0KGwsZSxoKSxtPXMuZG90KHQsaCksYT1NYXRoLm1pbihtLGEpLHI9TWF0aC5tYXgobSxyKSxzLnN1YnRyYWN0KGksZCxsKSxzLmFkZChsLGMsbCkscy5hZGQobCx1LGwpLHMuc3VidHJhY3QobCxlLGgpLG09cy5kb3QodCxoKSxhPU1hdGgubWluKG0sYSkscj1NYXRoLm1heChtLHIpLHMuc3VidHJhY3QoaSxkLGwpLHMuYWRkKGwsYyxsKSxzLnN1YnRyYWN0KGwsdSxsKSxzLnN1YnRyYWN0KGwsZSxoKSxtPXMuZG90KHQsaCksYT1NYXRoLm1pbihtLGEpLHI9TWF0aC5tYXgobSxyKSxzLnN1YnRyYWN0KGksZCxsKSxzLnN1YnRyYWN0KGwsYyxsKSxzLmFkZChsLHUsbCkscy5zdWJ0cmFjdChsLGUsaCksbT1zLmRvdCh0LGgpLGE9TWF0aC5taW4obSxhKSxyPU1hdGgubWF4KG0scikscy5zdWJ0cmFjdChpLGQsbCkscy5zdWJ0cmFjdChsLGMsbCkscy5zdWJ0cmFjdChsLHUsbCkscy5zdWJ0cmFjdChsLGUsaCksbT1zLmRvdCh0LGgpLGE9TWF0aC5taW4obSxhKSxyPU1hdGgubWF4KG0sciksby5zdGFydD1hLG8uc3RvcD1yLG99O0ZQPW5ldyBzLERQPW5ldyBzLEJQPW5ldyBzO1B0LmNvbXB1dGVDb3JuZXJzPWZ1bmN0aW9uKG4sZSl7XyhlKXx8KGU9W25ldyBzLG5ldyBzLG5ldyBzLG5ldyBzLG5ldyBzLG5ldyBzLG5ldyBzLG5ldyBzXSk7bGV0IHQ9bi5jZW50ZXIsbz1uLmhhbGZBeGVzLGE9Si5nZXRDb2x1bW4obywwLEZQKSxyPUouZ2V0Q29sdW1uKG8sMSxEUCksaT1KLmdldENvbHVtbihvLDIsQlApO3JldHVybiBzLmNsb25lKHQsZVswXSkscy5zdWJ0cmFjdChlWzBdLGEsZVswXSkscy5zdWJ0cmFjdChlWzBdLHIsZVswXSkscy5zdWJ0cmFjdChlWzBdLGksZVswXSkscy5jbG9uZSh0LGVbMV0pLHMuc3VidHJhY3QoZVsxXSxhLGVbMV0pLHMuc3VidHJhY3QoZVsxXSxyLGVbMV0pLHMuYWRkKGVbMV0saSxlWzFdKSxzLmNsb25lKHQsZVsyXSkscy5zdWJ0cmFjdChlWzJdLGEsZVsyXSkscy5hZGQoZVsyXSxyLGVbMl0pLHMuc3VidHJhY3QoZVsyXSxpLGVbMl0pLHMuY2xvbmUodCxlWzNdKSxzLnN1YnRyYWN0KGVbM10sYSxlWzNdKSxzLmFkZChlWzNdLHIsZVszXSkscy5hZGQoZVszXSxpLGVbM10pLHMuY2xvbmUodCxlWzRdKSxzLmFkZChlWzRdLGEsZVs0XSkscy5zdWJ0cmFjdChlWzRdLHIsZVs0XSkscy5zdWJ0cmFjdChlWzRdLGksZVs0XSkscy5jbG9uZSh0LGVbNV0pLHMuYWRkKGVbNV0sYSxlWzVdKSxzLnN1YnRyYWN0KGVbNV0scixlWzVdKSxzLmFkZChlWzVdLGksZVs1XSkscy5jbG9uZSh0LGVbNl0pLHMuYWRkKGVbNl0sYSxlWzZdKSxzLmFkZChlWzZdLHIsZVs2XSkscy5zdWJ0cmFjdChlWzZdLGksZVs2XSkscy5jbG9uZSh0LGVbN10pLHMuYWRkKGVbN10sYSxlWzddKSxzLmFkZChlWzddLHIsZVs3XSkscy5hZGQoZVs3XSxpLGVbN10pLGV9O2pQPW5ldyBKO1B0LmNvbXB1dGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbihuLGUpe18oZSl8fChlPW5ldyAkKTtsZXQgdD1uLmNlbnRlcixvPUoubXVsdGlwbHlCeVVuaWZvcm1TY2FsZShuLmhhbGZBeGVzLDIsalApO3JldHVybiAkLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uKG8sdCxlKX07VVA9bmV3IGdlO1B0LmlzT2NjbHVkZWQ9ZnVuY3Rpb24obixlKXtsZXQgdD1nZS5mcm9tT3JpZW50ZWRCb3VuZGluZ0JveChuLFVQKTtyZXR1cm4hZS5pc0JvdW5kaW5nU3BoZXJlVmlzaWJsZSh0KX07UHQucHJvdG90eXBlLmludGVyc2VjdFBsYW5lPWZ1bmN0aW9uKG4pe3JldHVybiBQdC5pbnRlcnNlY3RQbGFuZSh0aGlzLG4pfTtQdC5wcm90b3R5cGUuZGlzdGFuY2VTcXVhcmVkVG89ZnVuY3Rpb24obil7cmV0dXJuIFB0LmRpc3RhbmNlU3F1YXJlZFRvKHRoaXMsbil9O1B0LnByb3RvdHlwZS5jb21wdXRlUGxhbmVEaXN0YW5jZXM9ZnVuY3Rpb24obixlLHQpe3JldHVybiBQdC5jb21wdXRlUGxhbmVEaXN0YW5jZXModGhpcyxuLGUsdCl9O1B0LnByb3RvdHlwZS5jb21wdXRlQ29ybmVycz1mdW5jdGlvbihuKXtyZXR1cm4gUHQuY29tcHV0ZUNvcm5lcnModGhpcyxuKX07UHQucHJvdG90eXBlLmNvbXB1dGVUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbihuKXtyZXR1cm4gUHQuY29tcHV0ZVRyYW5zZm9ybWF0aW9uKHRoaXMsbil9O1B0LnByb3RvdHlwZS5pc09jY2x1ZGVkPWZ1bmN0aW9uKG4pe3JldHVybiBQdC5pc09jY2x1ZGVkKHRoaXMsbil9O1B0LmVxdWFscz1mdW5jdGlvbihuLGUpe3JldHVybiBuPT09ZXx8XyhuKSYmXyhlKSYmcy5lcXVhbHMobi5jZW50ZXIsZS5jZW50ZXIpJiZKLmVxdWFscyhuLmhhbGZBeGVzLGUuaGFsZkF4ZXMpfTtQdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24obil7cmV0dXJuIFB0LmNsb25lKHRoaXMsbil9O1B0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24obil7cmV0dXJuIFB0LmVxdWFscyh0aGlzLG4pfTttbj1QdH0pO2Z1bmN0aW9uIGdFKG4sZSx0LG8sYSl7bGV0IHI9cy5zdWJ0cmFjdChuLGUsTFApLGk9cy5kb3QodCxyKSxmPXMuZG90KG8scik7cmV0dXJuIFkuZnJvbUVsZW1lbnRzKGksZixhKX12YXIgVmYsTFAsaEUsbUUsYkUscEUsZ3MsbjA9WCgoKT0+e3Z0KCk7TWUoKTtJbigpO0FpKCk7VmY9e30sTFA9bmV3IHMsaEU9bmV3IHMsbUU9bmV3IHMsYkU9bmV3IHMscEU9bmV3IG1uO1ZmLnZhbGlkT3V0bGluZT1mdW5jdGlvbihuKXtsZXQgdD1tbi5mcm9tUG9pbnRzKG4scEUpLmhhbGZBeGVzLG89Si5nZXRDb2x1bW4odCwwLGhFKSxhPUouZ2V0Q29sdW1uKHQsMSxtRSkscj1KLmdldENvbHVtbih0LDIsYkUpLGk9cy5tYWduaXR1ZGUobyksZj1zLm1hZ25pdHVkZShhKSxkPXMubWFnbml0dWRlKHIpO3JldHVybiEoaT09PTAmJihmPT09MHx8ZD09PTApfHxmPT09MCYmZD09PTApfTtWZi5jb21wdXRlUHJvamVjdFRvMkRBcmd1bWVudHM9ZnVuY3Rpb24obixlLHQsbyl7bGV0IGE9bW4uZnJvbVBvaW50cyhuLHBFKSxyPWEuaGFsZkF4ZXMsaT1KLmdldENvbHVtbihyLDAsaEUpLGY9Si5nZXRDb2x1bW4ociwxLG1FKSxkPUouZ2V0Q29sdW1uKHIsMixiRSksYz1zLm1hZ25pdHVkZShpKSx1PXMubWFnbml0dWRlKGYpLGw9cy5tYWduaXR1ZGUoZCksaD1NYXRoLm1pbihjLHUsbCk7aWYoYz09PTAmJih1PT09MHx8bD09PTApfHx1PT09MCYmbD09PTApcmV0dXJuITE7bGV0IG0sYjtyZXR1cm4oaD09PXV8fGg9PT1sKSYmKG09aSksaD09PWM/bT1mOmg9PT1sJiYoYj1mKSwoaD09PWN8fGg9PT11KSYmKGI9ZCkscy5ub3JtYWxpemUobSx0KSxzLm5vcm1hbGl6ZShiLG8pLHMuY2xvbmUoYS5jZW50ZXIsZSksITB9O1ZmLmNyZWF0ZVByb2plY3RQb2ludHNUbzJERnVuY3Rpb249ZnVuY3Rpb24obixlLHQpe3JldHVybiBmdW5jdGlvbihvKXtsZXQgYT1uZXcgQXJyYXkoby5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8by5sZW5ndGg7cisrKWFbcl09Z0Uob1tyXSxuLGUsdCk7cmV0dXJuIGF9fTtWZi5jcmVhdGVQcm9qZWN0UG9pbnRUbzJERnVuY3Rpb249ZnVuY3Rpb24obixlLHQpe3JldHVybiBmdW5jdGlvbihvLGEpe3JldHVybiBnRShvLG4sZSx0LGEpfX07Z3M9VmZ9KTt2YXIgX0UsYnQsaGM9WCgoKT0+e19FPXtOT05FOjAsR0VPREVTSUM6MSxSSFVNQjoyfTtPYmplY3QuZnJlZXplKF9FKTtidD1fRX0pO2Z1bmN0aW9uIGEwKG4sZSx0KXtpZihuPT09MClyZXR1cm4gZSp0O2xldCBvPW4qbixhPW8qbyxyPWEqbyxpPXIqbyxmPWkqbyxkPWYqbyxjPXQsdT1NYXRoLnNpbigyKmMpLGw9TWF0aC5zaW4oNCpjKSxoPU1hdGguc2luKDYqYyksbT1NYXRoLnNpbig4KmMpLGI9TWF0aC5zaW4oMTAqYykscD1NYXRoLnNpbigxMipjKTtyZXR1cm4gZSooKDEtby80LTMqYS82NC01KnIvMjU2LTE3NSppLzE2Mzg0LTQ0MSpmLzY1NTM2LTQ4NTEqZC8xMDQ4NTc2KSpjLSgzKm8vOCszKmEvMzIrNDUqci8xMDI0KzEwNSppLzQwOTYrMjIwNSpmLzEzMTA3Mis2MjM3KmQvNTI0Mjg4KSp1KygxNSphLzI1Nis0NSpyLzEwMjQrNTI1KmkvMTYzODQrMTU3NSpmLzY1NTM2KzE1NTkyNSpkLzgzODg2MDgpKmwtKDM1KnIvMzA3MisxNzUqaS8xMjI4OCszNjc1KmYvMjYyMTQ0KzEzNDc1KmQvMTA0ODU3NikqaCsoMzE1KmkvMTMxMDcyKzIyMDUqZi81MjQyODgrNDM2NTkqZC84Mzg4NjA4KSptLSg2OTMqZi8xMzEwNzIwKzYyMzcqZC81MjQyODgwKSpiKzEwMDEqZC84Mzg4NjA4KnApfWZ1bmN0aW9uIHpQKG4sZSx0KXtsZXQgbz1uL3Q7aWYoZT09PTApcmV0dXJuIG87bGV0IGE9bypvLHI9YSpvLGk9cipvLGY9ZSxkPWYqZixjPWQqZCx1PWMqZCxsPXUqZCxoPWwqZCxtPWgqZCxiPU1hdGguc2luKDIqbykscD1NYXRoLmNvcygyKm8pLHk9TWF0aC5zaW4oNCpvKSxFPU1hdGguY29zKDQqbyksZz1NYXRoLnNpbig2Km8pLEE9TWF0aC5jb3MoNipvKSxUPU1hdGguc2luKDgqbyksUj1NYXRoLmNvcyg4Km8pLFM9TWF0aC5zaW4oMTAqbyksTT1NYXRoLmNvcygxMCpvKSxJPU1hdGguc2luKDEyKm8pO3JldHVybiBvK28qZC80KzcqbypjLzY0KzE1Km8qdS8yNTYrNTc5Km8qbC8xNjM4NCsxNTE1Km8qaC82NTUzNisxNjgzNypvKm0vMTA0ODU3NisoMypvKmMvMTYrNDUqbyp1LzI1Ni1vKigzMiphLTU2MSkqbC80MDk2LW8qKDIzMiphLTE2NzcpKmgvMTYzODQrbyooMzk5OTg1LTkwNTYwKmErNTEyKmkpKm0vNTI0Mjg4MCkqcCsoMjEqbyp1LzI1Nis0ODMqbypsLzQwOTYtbyooMjI0KmEtMTk2OSkqaC8xNjM4NC1vKigzMzE1MiphLTExMjU5OSkqbS8xMDQ4NTc2KSpFKygxNTEqbypsLzQwOTYrNDY4MSpvKmgvNjU1MzYrMTQ3OSpvKm0vMTYzODQtNDUzKnIqbS8zMjc2OCkqQSsoMTA5NypvKmgvNjU1MzYrNDI3ODMqbyptLzEwNDg1NzYpKlIrODAxMSpvKm0vMTA0ODU3NipNKygzKmQvOCszKmMvMTYrMjEzKnUvMjA0OC0zKmEqdS82NCsyNTUqbC80MDk2LTMzKmEqbC81MTIrMjA4NjEqaC81MjQyODgtMzMqYSpoLzUxMitpKmgvMTAyNCsyODI3MyptLzEwNDg1NzYtNDcxKmEqbS84MTkyKzkqaSptLzQwOTYpKmIrKDIxKmMvMjU2KzIxKnUvMjU2KzUzMypsLzgxOTItMjEqYSpsLzUxMisxOTcqaC80MDk2LTMxNSphKmgvNDA5Nis1ODQwMzkqbS8xNjc3NzIxNi0xMjUxNyphKm0vMTMxMDcyKzcqaSptLzIwNDgpKnkrKDE1MSp1LzYxNDQrMTUxKmwvNDA5Nis1MDE5KmgvMTMxMDcyLTQ1MyphKmgvMTYzODQrMjY5NjUqbS83ODY0MzItODYwNyphKm0vMTMxMDcyKSpnKygxMDk3KmwvMTMxMDcyKzEwOTcqaC82NTUzNisyMjU3OTcqbS8xMDQ4NTc2MC0xMDk3KmEqbS82NTUzNikqVCsoODAxMSpoLzI2MjE0NDArODAxMSptLzEwNDg1NzYpKlMrMjkzMzkzKm0vMjUxNjU4MjQwKkl9ZnVuY3Rpb24gX3MobixlKXtpZihuPT09MClyZXR1cm4gTWF0aC5sb2coTWF0aC50YW4oLjUqKGsuUElfT1ZFUl9UV08rZSkpKTtsZXQgdD1uKk1hdGguc2luKGUpO3JldHVybiBNYXRoLmxvZyhNYXRoLnRhbiguNSooay5QSV9PVkVSX1RXTytlKSkpLW4vMipNYXRoLmxvZygoMSt0KS8oMS10KSl9ZnVuY3Rpb24gR1AobixlLHQsbyxhKXtsZXQgcj1fcyhuLl9lbGxpcHRpY2l0eSx0KSxpPV9zKG4uX2VsbGlwdGljaXR5LGEpO3JldHVybiBNYXRoLmF0YW4yKGsubmVnYXRpdmVQaVRvUGkoby1lKSxpLXIpfWZ1bmN0aW9uIFZQKG4sZSx0LG8sYSxyLGkpe2xldCBmPW4uX2hlYWRpbmcsZD1yLW8sYz0wO2lmKGsuZXF1YWxzRXBzaWxvbihNYXRoLmFicyhmKSxrLlBJX09WRVJfVFdPLGsuRVBTSUxPTjgpKWlmKGU9PT10KWM9ZSpNYXRoLmNvcyhhKSprLm5lZ2F0aXZlUGlUb1BpKGQpO2Vsc2V7bGV0IHU9TWF0aC5zaW4oYSk7Yz1lKk1hdGguY29zKGEpKmsubmVnYXRpdmVQaVRvUGkoZCkvTWF0aC5zcXJ0KDEtbi5fZWxsaXB0aWNpdHlTcXVhcmVkKnUqdSl9ZWxzZXtsZXQgdT1hMChuLl9lbGxpcHRpY2l0eSxlLGEpO2M9KGEwKG4uX2VsbGlwdGljaXR5LGUsaSktdSkvTWF0aC5jb3MoZil9cmV0dXJuIE1hdGguYWJzKGMpfWZ1bmN0aW9uIHlFKG4sZSx0LG8pe2xldCBhPXMubm9ybWFsaXplKG8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oZSxvMCksSFApLHI9cy5ub3JtYWxpemUoby5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbih0LG8wKSxvMCksaT1vLm1heGltdW1SYWRpdXMsZj1vLm1pbmltdW1SYWRpdXMsZD1pKmksYz1mKmY7bi5fZWxsaXB0aWNpdHlTcXVhcmVkPShkLWMpL2Qsbi5fZWxsaXB0aWNpdHk9TWF0aC5zcXJ0KG4uX2VsbGlwdGljaXR5U3F1YXJlZCksbi5fc3RhcnQ9cmUuY2xvbmUoZSxuLl9zdGFydCksbi5fc3RhcnQuaGVpZ2h0PTAsbi5fZW5kPXJlLmNsb25lKHQsbi5fZW5kKSxuLl9lbmQuaGVpZ2h0PTAsbi5faGVhZGluZz1HUChuLGUubG9uZ2l0dWRlLGUubGF0aXR1ZGUsdC5sb25naXR1ZGUsdC5sYXRpdHVkZSksbi5fZGlzdGFuY2U9VlAobixvLm1heGltdW1SYWRpdXMsby5taW5pbXVtUmFkaXVzLGUubG9uZ2l0dWRlLGUubGF0aXR1ZGUsdC5sb25naXR1ZGUsdC5sYXRpdHVkZSl9ZnVuY3Rpb24gQUUobixlLHQsbyxhLHIpe2lmKHQ9PT0wKXJldHVybiByZS5jbG9uZShuLHIpO2xldCBpPWEqYSxmLGQsYztpZihNYXRoLmFicyhrLlBJX09WRVJfVFdPLU1hdGguYWJzKGUpKT5rLkVQU0lMT044KXtsZXQgdT1hMChhLG8sbi5sYXRpdHVkZSksbD10Kk1hdGguY29zKGUpLGg9dStsO2lmKGQ9elAoaCxhLG8pLE1hdGguYWJzKGUpPGsuRVBTSUxPTjEwKWY9ay5uZWdhdGl2ZVBpVG9QaShuLmxvbmdpdHVkZSk7ZWxzZXtsZXQgbT1fcyhhLG4ubGF0aXR1ZGUpLGI9X3MoYSxkKTtjPU1hdGgudGFuKGUpKihiLW0pLGY9ay5uZWdhdGl2ZVBpVG9QaShuLmxvbmdpdHVkZStjKX19ZWxzZXtkPW4ubGF0aXR1ZGU7bGV0IHU7aWYoYT09PTApdT1vKk1hdGguY29zKG4ubGF0aXR1ZGUpO2Vsc2V7bGV0IGw9TWF0aC5zaW4obi5sYXRpdHVkZSk7dT1vKk1hdGguY29zKG4ubGF0aXR1ZGUpL01hdGguc3FydCgxLWkqbCpsKX1jPXQvdSxlPjA/Zj1rLm5lZ2F0aXZlUGlUb1BpKG4ubG9uZ2l0dWRlK2MpOmY9ay5uZWdhdGl2ZVBpVG9QaShuLmxvbmdpdHVkZS1jKX1yZXR1cm4gXyhyKT8oci5sb25naXR1ZGU9ZixyLmxhdGl0dWRlPWQsci5oZWlnaHQ9MCxyKTpuZXcgcmUoZixkLDApfWZ1bmN0aW9uIEdyKG4sZSx0KXtsZXQgbz10Pz9LLmRlZmF1bHQ7dGhpcy5fZWxsaXBzb2lkPW8sdGhpcy5fc3RhcnQ9bmV3IHJlLHRoaXMuX2VuZD1uZXcgcmUsdGhpcy5faGVhZGluZz12b2lkIDAsdGhpcy5fZGlzdGFuY2U9dm9pZCAwLHRoaXMuX2VsbGlwdGljaXR5PXZvaWQgMCx0aGlzLl9lbGxpcHRpY2l0eVNxdWFyZWQ9dm9pZCAwLF8obikmJl8oZSkmJnlFKHRoaXMsbixlLG8pfXZhciBIUCxvMCxabyxIZj1YKCgpPT57TWUoKTtndCgpO3NlKCk7VmUoKTtVZSgpO0hQPW5ldyBzLG8wPW5ldyBzO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEdyLnByb3RvdHlwZSx7ZWxsaXBzb2lkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxsaXBzb2lkfX0sc3VyZmFjZURpc3RhbmNlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGlzdGFuY2V9fSxzdGFydDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXJ0fX0sZW5kOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5kfX0saGVhZGluZzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hlYWRpbmd9fX0pO0dyLmZyb21TdGFydEhlYWRpbmdEaXN0YW5jZT1mdW5jdGlvbihuLGUsdCxvLGEpe2xldCByPW8/P0suZGVmYXVsdCxpPXIubWF4aW11bVJhZGl1cyxmPXIubWluaW11bVJhZGl1cyxkPWkqaSxjPWYqZix1PU1hdGguc3FydCgoZC1jKS9kKTtlPWsubmVnYXRpdmVQaVRvUGkoZSk7bGV0IGw9QUUobixlLHQsci5tYXhpbXVtUmFkaXVzLHUpO3JldHVybiFfKGEpfHxfKG8pJiYhby5lcXVhbHMoYS5lbGxpcHNvaWQpP25ldyBHcihuLGwscik6KGEuc2V0RW5kUG9pbnRzKG4sbCksYSl9O0dyLnByb3RvdHlwZS5zZXRFbmRQb2ludHM9ZnVuY3Rpb24obixlKXt5RSh0aGlzLG4sZSx0aGlzLl9lbGxpcHNvaWQpfTtHci5wcm90b3R5cGUuaW50ZXJwb2xhdGVVc2luZ0ZyYWN0aW9uPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIHRoaXMuaW50ZXJwb2xhdGVVc2luZ1N1cmZhY2VEaXN0YW5jZShuKnRoaXMuX2Rpc3RhbmNlLGUpfTtHci5wcm90b3R5cGUuaW50ZXJwb2xhdGVVc2luZ1N1cmZhY2VEaXN0YW5jZT1mdW5jdGlvbihuLGUpe3JldHVybiBBRSh0aGlzLl9zdGFydCx0aGlzLl9oZWFkaW5nLG4sdGhpcy5fZWxsaXBzb2lkLm1heGltdW1SYWRpdXMsdGhpcy5fZWxsaXB0aWNpdHksZSl9O0dyLnByb3RvdHlwZS5maW5kSW50ZXJzZWN0aW9uV2l0aExvbmdpdHVkZT1mdW5jdGlvbihuLGUpe2xldCB0PXRoaXMuX2VsbGlwdGljaXR5LG89dGhpcy5faGVhZGluZyxhPU1hdGguYWJzKG8pLHI9dGhpcy5fc3RhcnQ7aWYobj1rLm5lZ2F0aXZlUGlUb1BpKG4pLGsuZXF1YWxzRXBzaWxvbihNYXRoLmFicyhuKSxNYXRoLlBJLGsuRVBTSUxPTjE0KSYmKG49ay5zaWduKHIubG9uZ2l0dWRlKSpNYXRoLlBJKSxfKGUpfHwoZT1uZXcgcmUpLE1hdGguYWJzKGsuUElfT1ZFUl9UV08tYSk8PWsuRVBTSUxPTjgpcmV0dXJuIGUubG9uZ2l0dWRlPW4sZS5sYXRpdHVkZT1yLmxhdGl0dWRlLGUuaGVpZ2h0PTAsZTtpZihrLmVxdWFsc0Vwc2lsb24oTWF0aC5hYnMoay5QSV9PVkVSX1RXTy1hKSxrLlBJX09WRVJfVFdPLGsuRVBTSUxPTjgpKXJldHVybiBrLmVxdWFsc0Vwc2lsb24obixyLmxvbmdpdHVkZSxrLkVQU0lMT04xMik/dm9pZCAwOihlLmxvbmdpdHVkZT1uLGUubGF0aXR1ZGU9ay5QSV9PVkVSX1RXTyprLnNpZ24oay5QSV9PVkVSX1RXTy1vKSxlLmhlaWdodD0wLGUpO2xldCBpPXIubGF0aXR1ZGUsZj10Kk1hdGguc2luKGkpLGQ9TWF0aC50YW4oLjUqKGsuUElfT1ZFUl9UV08raSkpKk1hdGguZXhwKChuLXIubG9uZ2l0dWRlKS9NYXRoLnRhbihvKSksYz0oMStmKS8oMS1mKSx1PXIubGF0aXR1ZGUsbDtkb3tsPXU7bGV0IGg9dCpNYXRoLnNpbihsKSxtPSgxK2gpLygxLWgpO3U9MipNYXRoLmF0YW4oZCpNYXRoLnBvdyhtL2MsdC8yKSktay5QSV9PVkVSX1RXT313aGlsZSghay5lcXVhbHNFcHNpbG9uKHUsbCxrLkVQU0lMT04xMikpO3JldHVybiBlLmxvbmdpdHVkZT1uLGUubGF0aXR1ZGU9dSxlLmhlaWdodD0wLGV9O0dyLnByb3RvdHlwZS5maW5kSW50ZXJzZWN0aW9uV2l0aExhdGl0dWRlPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9dGhpcy5fZWxsaXB0aWNpdHksbz10aGlzLl9oZWFkaW5nLGE9dGhpcy5fc3RhcnQ7aWYoay5lcXVhbHNFcHNpbG9uKE1hdGguYWJzKG8pLGsuUElfT1ZFUl9UV08say5FUFNJTE9OOCkpcmV0dXJuO2xldCByPV9zKHQsYS5sYXRpdHVkZSksaT1fcyh0LG4pLGY9TWF0aC50YW4obykqKGktciksZD1rLm5lZ2F0aXZlUGlUb1BpKGEubG9uZ2l0dWRlK2YpO3JldHVybiBfKGUpPyhlLmxvbmdpdHVkZT1kLGUubGF0aXR1ZGU9bixlLmhlaWdodD0wLGUpOm5ldyByZShkLG4sMCl9O1pvPUdyfSk7ZnVuY3Rpb24gS1AobixlKXt0aGlzLnBvc2l0aW9ucz1fKG4pP246W10sdGhpcy5ob2xlcz1fKGUpP2U6W119dmFyIHdFLFRFPVgoKCk9PntzZSgpO3dFPUtQfSk7ZnVuY3Rpb24gYzAobixlLHQ9Mil7bGV0IG89ZSYmZS5sZW5ndGgsYT1vP2VbMF0qdDpuLmxlbmd0aCxyPVJFKG4sMCxhLHQsITApLGk9W107aWYoIXJ8fHIubmV4dD09PXIucHJldilyZXR1cm4gaTtsZXQgZixkLGM7aWYobyYmKHI9SlAobixlLHIsdCkpLG4ubGVuZ3RoPjgwKnQpe2Y9blswXSxkPW5bMV07bGV0IHU9ZixsPWQ7Zm9yKGxldCBoPXQ7aDxhO2grPXQpe2xldCBtPW5baF0sYj1uW2grMV07bTxmJiYoZj1tKSxiPGQmJihkPWIpLG0+dSYmKHU9bSksYj5sJiYobD1iKX1jPU1hdGgubWF4KHUtZixsLWQpLGM9YyE9PTA/MzI3NjcvYzowfXJldHVybiBxZihyLGksdCxmLGQsYywwKSxpfWZ1bmN0aW9uIFJFKG4sZSx0LG8sYSl7bGV0IHI7aWYoYT09PWNrKG4sZSx0LG8pPjApZm9yKGxldCBpPWU7aTx0O2krPW8pcj1FRShpL298MCxuW2ldLG5baSsxXSxyKTtlbHNlIGZvcihsZXQgaT10LW87aT49ZTtpLT1vKXI9RUUoaS9vfDAsbltpXSxuW2krMV0scik7cmV0dXJuIHImJnlzKHIsci5uZXh0KSYmKFhmKHIpLHI9ci5uZXh0KSxyfWZ1bmN0aW9uIG1jKG4sZSl7aWYoIW4pcmV0dXJuIG47ZXx8KGU9bik7bGV0IHQ9bixvO2RvIGlmKG89ITEsIXQuc3RlaW5lciYmKHlzKHQsdC5uZXh0KXx8Rm4odC5wcmV2LHQsdC5uZXh0KT09PTApKXtpZihYZih0KSx0PWU9dC5wcmV2LHQ9PT10Lm5leHQpYnJlYWs7bz0hMH1lbHNlIHQ9dC5uZXh0O3doaWxlKG98fHQhPT1lKTtyZXR1cm4gZX1mdW5jdGlvbiBxZihuLGUsdCxvLGEscixpKXtpZighbilyZXR1cm47IWkmJnImJnRrKG4sbyxhLHIpO2xldCBmPW47Zm9yKDtuLnByZXYhPT1uLm5leHQ7KXtsZXQgZD1uLnByZXYsYz1uLm5leHQ7aWYocj9XUChuLG8sYSxyKTpxUChuKSl7ZS5wdXNoKGQuaSxuLmksYy5pKSxYZihuKSxuPWMubmV4dCxmPWMubmV4dDtjb250aW51ZX1pZihuPWMsbj09PWYpe2k/aT09PTE/KG49WFAobWMobiksZSkscWYobixlLHQsbyxhLHIsMikpOmk9PT0yJiZZUChuLGUsdCxvLGEscik6cWYobWMobiksZSx0LG8sYSxyLDEpO2JyZWFrfX19ZnVuY3Rpb24gcVAobil7bGV0IGU9bi5wcmV2LHQ9bixvPW4ubmV4dDtpZihGbihlLHQsbyk+PTApcmV0dXJuITE7bGV0IGE9ZS54LHI9dC54LGk9by54LGY9ZS55LGQ9dC55LGM9by55LHU9TWF0aC5taW4oYSxyLGkpLGw9TWF0aC5taW4oZixkLGMpLGg9TWF0aC5tYXgoYSxyLGkpLG09TWF0aC5tYXgoZixkLGMpLGI9by5uZXh0O2Zvcig7YiE9PWU7KXtpZihiLng+PXUmJmIueDw9aCYmYi55Pj1sJiZiLnk8PW0mJktmKGEsZixyLGQsaSxjLGIueCxiLnkpJiZGbihiLnByZXYsYixiLm5leHQpPj0wKXJldHVybiExO2I9Yi5uZXh0fXJldHVybiEwfWZ1bmN0aW9uIFdQKG4sZSx0LG8pe2xldCBhPW4ucHJldixyPW4saT1uLm5leHQ7aWYoRm4oYSxyLGkpPj0wKXJldHVybiExO2xldCBmPWEueCxkPXIueCxjPWkueCx1PWEueSxsPXIueSxoPWkueSxtPU1hdGgubWluKGYsZCxjKSxiPU1hdGgubWluKHUsbCxoKSxwPU1hdGgubWF4KGYsZCxjKSx5PU1hdGgubWF4KHUsbCxoKSxFPXIwKG0sYixlLHQsbyksZz1yMChwLHksZSx0LG8pLEE9bi5wcmV2WixUPW4ubmV4dFo7Zm9yKDtBJiZBLno+PUUmJlQmJlQuejw9Zzspe2lmKEEueD49bSYmQS54PD1wJiZBLnk+PWImJkEueTw9eSYmQSE9PWEmJkEhPT1pJiZLZihmLHUsZCxsLGMsaCxBLngsQS55KSYmRm4oQS5wcmV2LEEsQS5uZXh0KT49MHx8KEE9QS5wcmV2WixULng+PW0mJlQueDw9cCYmVC55Pj1iJiZULnk8PXkmJlQhPT1hJiZUIT09aSYmS2YoZix1LGQsbCxjLGgsVC54LFQueSkmJkZuKFQucHJldixULFQubmV4dCk+PTApKXJldHVybiExO1Q9VC5uZXh0Wn1mb3IoO0EmJkEuej49RTspe2lmKEEueD49bSYmQS54PD1wJiZBLnk+PWImJkEueTw9eSYmQSE9PWEmJkEhPT1pJiZLZihmLHUsZCxsLGMsaCxBLngsQS55KSYmRm4oQS5wcmV2LEEsQS5uZXh0KT49MClyZXR1cm4hMTtBPUEucHJldlp9Zm9yKDtUJiZULno8PWc7KXtpZihULng+PW0mJlQueDw9cCYmVC55Pj1iJiZULnk8PXkmJlQhPT1hJiZUIT09aSYmS2YoZix1LGQsbCxjLGgsVC54LFQueSkmJkZuKFQucHJldixULFQubmV4dCk+PTApcmV0dXJuITE7VD1ULm5leHRafXJldHVybiEwfWZ1bmN0aW9uIFhQKG4sZSl7bGV0IHQ9bjtkb3tsZXQgbz10LnByZXYsYT10Lm5leHQubmV4dDsheXMobyxhKSYmT0Uobyx0LHQubmV4dCxhKSYmV2YobyxhKSYmV2YoYSxvKSYmKGUucHVzaChvLmksdC5pLGEuaSksWGYodCksWGYodC5uZXh0KSx0PW49YSksdD10Lm5leHR9d2hpbGUodCE9PW4pO3JldHVybiBtYyh0KX1mdW5jdGlvbiBZUChuLGUsdCxvLGEscil7bGV0IGk9bjtkb3tsZXQgZj1pLm5leHQubmV4dDtmb3IoO2YhPT1pLnByZXY7KXtpZihpLmkhPT1mLmkmJmFrKGksZikpe2xldCBkPVNFKGksZik7aT1tYyhpLGkubmV4dCksZD1tYyhkLGQubmV4dCkscWYoaSxlLHQsbyxhLHIsMCkscWYoZCxlLHQsbyxhLHIsMCk7cmV0dXJufWY9Zi5uZXh0fWk9aS5uZXh0fXdoaWxlKGkhPT1uKX1mdW5jdGlvbiBKUChuLGUsdCxvKXtsZXQgYT1bXTtmb3IobGV0IHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspe2xldCBmPWVbcl0qbyxkPXI8aS0xP2VbcisxXSpvOm4ubGVuZ3RoLGM9UkUobixmLGQsbywhMSk7Yz09PWMubmV4dCYmKGMuc3RlaW5lcj0hMCksYS5wdXNoKG9rKGMpKX1hLnNvcnQoWlApO2ZvcihsZXQgcj0wO3I8YS5sZW5ndGg7cisrKXQ9UVAoYVtyXSx0KTtyZXR1cm4gdH1mdW5jdGlvbiBaUChuLGUpe2xldCB0PW4ueC1lLng7aWYodD09PTAmJih0PW4ueS1lLnksdD09PTApKXtsZXQgbz0obi5uZXh0Lnktbi55KS8obi5uZXh0Lngtbi54KSxhPShlLm5leHQueS1lLnkpLyhlLm5leHQueC1lLngpO3Q9by1hfXJldHVybiB0fWZ1bmN0aW9uIFFQKG4sZSl7bGV0IHQ9JFAobixlKTtpZighdClyZXR1cm4gZTtsZXQgbz1TRSh0LG4pO3JldHVybiBtYyhvLG8ubmV4dCksbWModCx0Lm5leHQpfWZ1bmN0aW9uICRQKG4sZSl7bGV0IHQ9ZSxvPW4ueCxhPW4ueSxyPS0xLzAsaTtpZih5cyhuLHQpKXJldHVybiB0O2Rve2lmKHlzKG4sdC5uZXh0KSlyZXR1cm4gdC5uZXh0O2lmKGE8PXQueSYmYT49dC5uZXh0LnkmJnQubmV4dC55IT09dC55KXtsZXQgbD10LngrKGEtdC55KSoodC5uZXh0LngtdC54KS8odC5uZXh0LnktdC55KTtpZihsPD1vJiZsPnImJihyPWwsaT10Lng8dC5uZXh0Lng/dDp0Lm5leHQsbD09PW8pKXJldHVybiBpfXQ9dC5uZXh0fXdoaWxlKHQhPT1lKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgZj1pLGQ9aS54LGM9aS55LHU9MS8wO3Q9aTtkb3tpZihvPj10LngmJnQueD49ZCYmbyE9PXQueCYmeEUoYTxjP286cixhLGQsYyxhPGM/cjpvLGEsdC54LHQueSkpe2xldCBsPU1hdGguYWJzKGEtdC55KS8oby10LngpO1dmKHQsbikmJihsPHV8fGw9PT11JiYodC54PmkueHx8dC54PT09aS54JiZlayhpLHQpKSkmJihpPXQsdT1sKX10PXQubmV4dH13aGlsZSh0IT09Zik7cmV0dXJuIGl9ZnVuY3Rpb24gZWsobixlKXtyZXR1cm4gRm4obi5wcmV2LG4sZS5wcmV2KTwwJiZGbihlLm5leHQsbixuLm5leHQpPDB9ZnVuY3Rpb24gdGsobixlLHQsbyl7bGV0IGE9bjtkbyBhLno9PT0wJiYoYS56PXIwKGEueCxhLnksZSx0LG8pKSxhLnByZXZaPWEucHJldixhLm5leHRaPWEubmV4dCxhPWEubmV4dDt3aGlsZShhIT09bik7YS5wcmV2Wi5uZXh0Wj1udWxsLGEucHJldlo9bnVsbCxuayhhKX1mdW5jdGlvbiBuayhuKXtsZXQgZSx0PTE7ZG97bGV0IG89bixhO249bnVsbDtsZXQgcj1udWxsO2ZvcihlPTA7bzspe2UrKztsZXQgaT1vLGY9MDtmb3IobGV0IGM9MDtjPHQmJihmKyssaT1pLm5leHRaLCEhaSk7YysrKTtsZXQgZD10O2Zvcig7Zj4wfHxkPjAmJmk7KWYhPT0wJiYoZD09PTB8fCFpfHxvLno8PWkueik/KGE9byxvPW8ubmV4dFosZi0tKTooYT1pLGk9aS5uZXh0WixkLS0pLHI/ci5uZXh0Wj1hOm49YSxhLnByZXZaPXIscj1hO289aX1yLm5leHRaPW51bGwsdCo9Mn13aGlsZShlPjEpO3JldHVybiBufWZ1bmN0aW9uIHIwKG4sZSx0LG8sYSl7cmV0dXJuIG49KG4tdCkqYXwwLGU9KGUtbykqYXwwLG49KG58bjw8OCkmMTY3MTE5MzUsbj0obnxuPDw0KSYyNTI2NDUxMzUsbj0obnxuPDwyKSY4NTg5OTM0NTksbj0obnxuPDwxKSYxNDMxNjU1NzY1LGU9KGV8ZTw8OCkmMTY3MTE5MzUsZT0oZXxlPDw0KSYyNTI2NDUxMzUsZT0oZXxlPDwyKSY4NTg5OTM0NTksZT0oZXxlPDwxKSYxNDMxNjU1NzY1LG58ZTw8MX1mdW5jdGlvbiBvayhuKXtsZXQgZT1uLHQ9bjtkbyhlLng8dC54fHxlLng9PT10LngmJmUueTx0LnkpJiYodD1lKSxlPWUubmV4dDt3aGlsZShlIT09bik7cmV0dXJuIHR9ZnVuY3Rpb24geEUobixlLHQsbyxhLHIsaSxmKXtyZXR1cm4oYS1pKSooZS1mKT49KG4taSkqKHItZikmJihuLWkpKihvLWYpPj0odC1pKSooZS1mKSYmKHQtaSkqKHItZik+PShhLWkpKihvLWYpfWZ1bmN0aW9uIEtmKG4sZSx0LG8sYSxyLGksZil7cmV0dXJuIShuPT09aSYmZT09PWYpJiZ4RShuLGUsdCxvLGEscixpLGYpfWZ1bmN0aW9uIGFrKG4sZSl7cmV0dXJuIG4ubmV4dC5pIT09ZS5pJiZuLnByZXYuaSE9PWUuaSYmIXJrKG4sZSkmJihXZihuLGUpJiZXZihlLG4pJiZpayhuLGUpJiYoRm4obi5wcmV2LG4sZS5wcmV2KXx8Rm4obixlLnByZXYsZSkpfHx5cyhuLGUpJiZGbihuLnByZXYsbixuLm5leHQpPjAmJkZuKGUucHJldixlLGUubmV4dCk+MCl9ZnVuY3Rpb24gRm4obixlLHQpe3JldHVybihlLnktbi55KSoodC54LWUueCktKGUueC1uLngpKih0LnktZS55KX1mdW5jdGlvbiB5cyhuLGUpe3JldHVybiBuLng9PT1lLngmJm4ueT09PWUueX1mdW5jdGlvbiBPRShuLGUsdCxvKXtsZXQgYT1naChGbihuLGUsdCkpLHI9Z2goRm4obixlLG8pKSxpPWdoKEZuKHQsbyxuKSksZj1naChGbih0LG8sZSkpO3JldHVybiEhKGEhPT1yJiZpIT09Znx8YT09PTAmJnBoKG4sdCxlKXx8cj09PTAmJnBoKG4sbyxlKXx8aT09PTAmJnBoKHQsbixvKXx8Zj09PTAmJnBoKHQsZSxvKSl9ZnVuY3Rpb24gcGgobixlLHQpe3JldHVybiBlLng8PU1hdGgubWF4KG4ueCx0LngpJiZlLng+PU1hdGgubWluKG4ueCx0LngpJiZlLnk8PU1hdGgubWF4KG4ueSx0LnkpJiZlLnk+PU1hdGgubWluKG4ueSx0LnkpfWZ1bmN0aW9uIGdoKG4pe3JldHVybiBuPjA/MTpuPDA/LTE6MH1mdW5jdGlvbiByayhuLGUpe2xldCB0PW47ZG97aWYodC5pIT09bi5pJiZ0Lm5leHQuaSE9PW4uaSYmdC5pIT09ZS5pJiZ0Lm5leHQuaSE9PWUuaSYmT0UodCx0Lm5leHQsbixlKSlyZXR1cm4hMDt0PXQubmV4dH13aGlsZSh0IT09bik7cmV0dXJuITF9ZnVuY3Rpb24gV2YobixlKXtyZXR1cm4gRm4obi5wcmV2LG4sbi5uZXh0KTwwP0ZuKG4sZSxuLm5leHQpPj0wJiZGbihuLG4ucHJldixlKT49MDpGbihuLGUsbi5wcmV2KTwwfHxGbihuLG4ubmV4dCxlKTwwfWZ1bmN0aW9uIGlrKG4sZSl7bGV0IHQ9bixvPSExLGE9KG4ueCtlLngpLzIscj0obi55K2UueSkvMjtkbyB0Lnk+ciE9dC5uZXh0Lnk+ciYmdC5uZXh0LnkhPT10LnkmJmE8KHQubmV4dC54LXQueCkqKHItdC55KS8odC5uZXh0LnktdC55KSt0LngmJihvPSFvKSx0PXQubmV4dDt3aGlsZSh0IT09bik7cmV0dXJuIG99ZnVuY3Rpb24gU0UobixlKXtsZXQgdD1pMChuLmksbi54LG4ueSksbz1pMChlLmksZS54LGUueSksYT1uLm5leHQscj1lLnByZXY7cmV0dXJuIG4ubmV4dD1lLGUucHJldj1uLHQubmV4dD1hLGEucHJldj10LG8ubmV4dD10LHQucHJldj1vLHIubmV4dD1vLG8ucHJldj1yLG99ZnVuY3Rpb24gRUUobixlLHQsbyl7bGV0IGE9aTAobixlLHQpO3JldHVybiBvPyhhLm5leHQ9by5uZXh0LGEucHJldj1vLG8ubmV4dC5wcmV2PWEsby5uZXh0PWEpOihhLnByZXY9YSxhLm5leHQ9YSksYX1mdW5jdGlvbiBYZihuKXtuLm5leHQucHJldj1uLnByZXYsbi5wcmV2Lm5leHQ9bi5uZXh0LG4ucHJldlomJihuLnByZXZaLm5leHRaPW4ubmV4dFopLG4ubmV4dFomJihuLm5leHRaLnByZXZaPW4ucHJldlopfWZ1bmN0aW9uIGkwKG4sZSx0KXtyZXR1cm57aTpuLHg6ZSx5OnQscHJldjpudWxsLG5leHQ6bnVsbCx6OjAscHJldlo6bnVsbCxuZXh0WjpudWxsLHN0ZWluZXI6ITF9fWZ1bmN0aW9uIGNrKG4sZSx0LG8pe2xldCBhPTA7Zm9yKGxldCByPWUsaT10LW87cjx0O3IrPW8pYSs9KG5baV0tbltyXSkqKG5bcisxXStuW2krMV0pLGk9cjtyZXR1cm4gYX12YXIgQ0U9WCgoKT0+e30pO3ZhciBZZixNbyxiYz1YKCgpPT57b2MoKTtZZj17Q0xPQ0tXSVNFOk5lLkNXLENPVU5URVJfQ0xPQ0tXSVNFOk5lLkNDV307WWYudmFsaWRhdGU9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1ZZi5DTE9DS1dJU0V8fG49PT1ZZi5DT1VOVEVSX0NMT0NLV0lTRX07T2JqZWN0LmZyZWV6ZShZZik7TW89WWZ9KTt2YXIgc2ssZmssd2ksUEUsa0UsdkUsTUUsTkUsSUUsVnIsRkUsREUsQkUsQXMsZGssdWssbGssczAsd3QsV2E9WCgoKT0+e0NFKCk7dnQoKTtNZSgpO2d0KCk7Q3QoKTtzZSgpO1ZlKCk7SGYoKTtYdCgpO1l0KCk7VWUoKTt0bigpO2JjKCk7c2s9bmV3IHMsZms9bmV3IHMsd2k9e307d2kuY29tcHV0ZUFyZWEyRD1mdW5jdGlvbihuKXtsZXQgZT1uLmxlbmd0aCx0PTA7Zm9yKGxldCBvPWUtMSxhPTA7YTxlO289YSsrKXtsZXQgcj1uW29dLGk9blthXTt0Kz1yLngqaS55LWkueCpyLnl9cmV0dXJuIHQqLjV9O3dpLmNvbXB1dGVXaW5kaW5nT3JkZXIyRD1mdW5jdGlvbihuKXtyZXR1cm4gd2kuY29tcHV0ZUFyZWEyRChuKT4wP01vLkNPVU5URVJfQ0xPQ0tXSVNFOk1vLkNMT0NLV0lTRX07d2kudHJpYW5ndWxhdGU9ZnVuY3Rpb24obixlKXtsZXQgdD1ZLnBhY2tBcnJheShuKTtyZXR1cm4gYzAodCxlLDIpfTtQRT1uZXcgcyxrRT1uZXcgcyx2RT1uZXcgcyxNRT1uZXcgcyxORT1uZXcgcyxJRT1uZXcgcyxWcj1uZXcgcyxGRT1uZXcgWSxERT1uZXcgWSxCRT1uZXcgWSxBcz1uZXcgWTt3aS5jb21wdXRlU3ViZGl2aXNpb249ZnVuY3Rpb24obixlLHQsbyxhKXthPWE/P2suUkFESUFOU19QRVJfREVHUkVFO2xldCByPV8obyksaT10LnNsaWNlKDApLGYsZD1lLmxlbmd0aCxjPW5ldyBBcnJheShkKjMpLHU9bmV3IEFycmF5KGQqMiksbD0wLGg9MDtmb3IoZj0wO2Y8ZDtmKyspe2xldCBBPWVbZl07aWYoY1tsKytdPUEueCxjW2wrK109QS55LGNbbCsrXT1BLnoscil7bGV0IFQ9b1tmXTt1W2grK109VC54LHVbaCsrXT1ULnl9fWxldCBtPVtdLGI9e30scD1uLm1heGltdW1SYWRpdXMseT1rLmNob3JkTGVuZ3RoKGEscCksRT15Knk7Zm9yKDtpLmxlbmd0aD4wOyl7bGV0IEE9aS5wb3AoKSxUPWkucG9wKCksUj1pLnBvcCgpLFM9cy5mcm9tQXJyYXkoYyxSKjMsUEUpLE09cy5mcm9tQXJyYXkoYyxUKjMsa0UpLEk9cy5mcm9tQXJyYXkoYyxBKjMsdkUpLE4sUCxGO3ImJihOPVkuZnJvbUFycmF5KHUsUioyLEZFKSxQPVkuZnJvbUFycmF5KHUsVCoyLERFKSxGPVkuZnJvbUFycmF5KHUsQSoyLEJFKSk7bGV0IHc9cy5tdWx0aXBseUJ5U2NhbGFyKHMubm9ybWFsaXplKFMsTUUpLHAsTUUpLHg9cy5tdWx0aXBseUJ5U2NhbGFyKHMubm9ybWFsaXplKE0sTkUpLHAsTkUpLEM9cy5tdWx0aXBseUJ5U2NhbGFyKHMubm9ybWFsaXplKEksSUUpLHAsSUUpLHY9cy5tYWduaXR1ZGVTcXVhcmVkKHMuc3VidHJhY3Qodyx4LFZyKSksaj1zLm1hZ25pdHVkZVNxdWFyZWQocy5zdWJ0cmFjdCh4LEMsVnIpKSx6PXMubWFnbml0dWRlU3F1YXJlZChzLnN1YnRyYWN0KEMsdyxWcikpLEQ9TWF0aC5tYXgodixqLHopLEcsVixPO0Q+RT92PT09RD8oRz1gJHtNYXRoLm1pbihSLFQpfSAke01hdGgubWF4KFIsVCl9YCxmPWJbR10sXyhmKXx8KFY9cy5hZGQoUyxNLFZyKSxzLm11bHRpcGx5QnlTY2FsYXIoViwuNSxWKSxjLnB1c2goVi54LFYueSxWLnopLGY9Yy5sZW5ndGgvMy0xLGJbR109ZixyJiYoTz1ZLmFkZChOLFAsQXMpLFkubXVsdGlwbHlCeVNjYWxhcihPLC41LE8pLHUucHVzaChPLngsTy55KSkpLGkucHVzaChSLGYsQSksaS5wdXNoKGYsVCxBKSk6aj09PUQ/KEc9YCR7TWF0aC5taW4oVCxBKX0gJHtNYXRoLm1heChULEEpfWAsZj1iW0ddLF8oZil8fChWPXMuYWRkKE0sSSxWcikscy5tdWx0aXBseUJ5U2NhbGFyKFYsLjUsViksYy5wdXNoKFYueCxWLnksVi56KSxmPWMubGVuZ3RoLzMtMSxiW0ddPWYsciYmKE89WS5hZGQoUCxGLEFzKSxZLm11bHRpcGx5QnlTY2FsYXIoTywuNSxPKSx1LnB1c2goTy54LE8ueSkpKSxpLnB1c2goVCxmLFIpLGkucHVzaChmLEEsUikpOno9PT1EJiYoRz1gJHtNYXRoLm1pbihBLFIpfSAke01hdGgubWF4KEEsUil9YCxmPWJbR10sXyhmKXx8KFY9cy5hZGQoSSxTLFZyKSxzLm11bHRpcGx5QnlTY2FsYXIoViwuNSxWKSxjLnB1c2goVi54LFYueSxWLnopLGY9Yy5sZW5ndGgvMy0xLGJbR109ZixyJiYoTz1ZLmFkZChGLE4sQXMpLFkubXVsdGlwbHlCeVNjYWxhcihPLC41LE8pLHUucHVzaChPLngsTy55KSkpLGkucHVzaChBLGYsVCksaS5wdXNoKGYsUixUKSk6KG0ucHVzaChSKSxtLnB1c2goVCksbS5wdXNoKEEpKX1sZXQgZz17YXR0cmlidXRlczp7cG9zaXRpb246bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpjfSl9LGluZGljZXM6bSxwcmltaXRpdmVUeXBlOkZlLlRSSUFOR0xFU307cmV0dXJuIHImJihnLmF0dHJpYnV0ZXMuc3Q9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOnV9KSksbmV3IFBlKGcpfTtkaz1uZXcgcmUsdWs9bmV3IHJlLGxrPW5ldyByZSxzMD1uZXcgcmU7d2kuY29tcHV0ZVJodW1iTGluZVN1YmRpdmlzaW9uPWZ1bmN0aW9uKG4sZSx0LG8sYSl7YT1hPz9rLlJBRElBTlNfUEVSX0RFR1JFRTtsZXQgcj1fKG8pLGk9dC5zbGljZSgwKSxmLGQ9ZS5sZW5ndGgsYz1uZXcgQXJyYXkoZCozKSx1PW5ldyBBcnJheShkKjIpLGw9MCxoPTA7Zm9yKGY9MDtmPGQ7ZisrKXtsZXQgUj1lW2ZdO2lmKGNbbCsrXT1SLngsY1tsKytdPVIueSxjW2wrK109Ui56LHIpe2xldCBTPW9bZl07dVtoKytdPVMueCx1W2grK109Uy55fX1sZXQgbT1bXSxiPXt9LHA9bi5tYXhpbXVtUmFkaXVzLHk9ay5jaG9yZExlbmd0aChhLHApLEU9bmV3IFpvKHZvaWQgMCx2b2lkIDAsbiksZz1uZXcgWm8odm9pZCAwLHZvaWQgMCxuKSxBPW5ldyBabyh2b2lkIDAsdm9pZCAwLG4pO2Zvcig7aS5sZW5ndGg+MDspe2xldCBSPWkucG9wKCksUz1pLnBvcCgpLE09aS5wb3AoKSxJPXMuZnJvbUFycmF5KGMsTSozLFBFKSxOPXMuZnJvbUFycmF5KGMsUyozLGtFKSxQPXMuZnJvbUFycmF5KGMsUiozLHZFKSxGLHcseDtyJiYoRj1ZLmZyb21BcnJheSh1LE0qMixGRSksdz1ZLmZyb21BcnJheSh1LFMqMixERSkseD1ZLmZyb21BcnJheSh1LFIqMixCRSkpO2xldCBDPW4uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoSSxkayksdj1uLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKE4sdWspLGo9bi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhQLGxrKTtFLnNldEVuZFBvaW50cyhDLHYpO2xldCB6PUUuc3VyZmFjZURpc3RhbmNlO2cuc2V0RW5kUG9pbnRzKHYsaik7bGV0IEQ9Zy5zdXJmYWNlRGlzdGFuY2U7QS5zZXRFbmRQb2ludHMoaixDKTtsZXQgRz1BLnN1cmZhY2VEaXN0YW5jZSxWPU1hdGgubWF4KHosRCxHKSxPLFosYWUsY2UsZmU7Vj55P3o9PT1WPyhPPWAke01hdGgubWluKE0sUyl9ICR7TWF0aC5tYXgoTSxTKX1gLGY9YltPXSxfKGYpfHwoWj1FLmludGVycG9sYXRlVXNpbmdGcmFjdGlvbiguNSxzMCksYWU9KEMuaGVpZ2h0K3YuaGVpZ2h0KSouNSxjZT1zLmZyb21SYWRpYW5zKFoubG9uZ2l0dWRlLFoubGF0aXR1ZGUsYWUsbixWciksYy5wdXNoKGNlLngsY2UueSxjZS56KSxmPWMubGVuZ3RoLzMtMSxiW09dPWYsciYmKGZlPVkuYWRkKEYsdyxBcyksWS5tdWx0aXBseUJ5U2NhbGFyKGZlLC41LGZlKSx1LnB1c2goZmUueCxmZS55KSkpLGkucHVzaChNLGYsUiksaS5wdXNoKGYsUyxSKSk6RD09PVY/KE89YCR7TWF0aC5taW4oUyxSKX0gJHtNYXRoLm1heChTLFIpfWAsZj1iW09dLF8oZil8fChaPWcuaW50ZXJwb2xhdGVVc2luZ0ZyYWN0aW9uKC41LHMwKSxhZT0odi5oZWlnaHQrai5oZWlnaHQpKi41LGNlPXMuZnJvbVJhZGlhbnMoWi5sb25naXR1ZGUsWi5sYXRpdHVkZSxhZSxuLFZyKSxjLnB1c2goY2UueCxjZS55LGNlLnopLGY9Yy5sZW5ndGgvMy0xLGJbT109ZixyJiYoZmU9WS5hZGQodyx4LEFzKSxZLm11bHRpcGx5QnlTY2FsYXIoZmUsLjUsZmUpLHUucHVzaChmZS54LGZlLnkpKSksaS5wdXNoKFMsZixNKSxpLnB1c2goZixSLE0pKTpHPT09ViYmKE89YCR7TWF0aC5taW4oUixNKX0gJHtNYXRoLm1heChSLE0pfWAsZj1iW09dLF8oZil8fChaPUEuaW50ZXJwb2xhdGVVc2luZ0ZyYWN0aW9uKC41LHMwKSxhZT0oai5oZWlnaHQrQy5oZWlnaHQpKi41LGNlPXMuZnJvbVJhZGlhbnMoWi5sb25naXR1ZGUsWi5sYXRpdHVkZSxhZSxuLFZyKSxjLnB1c2goY2UueCxjZS55LGNlLnopLGY9Yy5sZW5ndGgvMy0xLGJbT109ZixyJiYoZmU9WS5hZGQoeCxGLEFzKSxZLm11bHRpcGx5QnlTY2FsYXIoZmUsLjUsZmUpLHUucHVzaChmZS54LGZlLnkpKSksaS5wdXNoKFIsZixTKSxpLnB1c2goZixNLFMpKToobS5wdXNoKE0pLG0ucHVzaChTKSxtLnB1c2goUikpfWxldCBUPXthdHRyaWJ1dGVzOntwb3NpdGlvbjpuZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmN9KX0saW5kaWNlczptLHByaW1pdGl2ZVR5cGU6RmUuVFJJQU5HTEVTfTtyZXR1cm4gciYmKFQuYXR0cmlidXRlcy5zdD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6dX0pKSxuZXcgUGUoVCl9O3dpLnNjYWxlVG9HZW9kZXRpY0hlaWdodD1mdW5jdGlvbihuLGUsdCxvKXt0PXQ/P0suZGVmYXVsdDtsZXQgYT1zayxyPWZrO2lmKGU9ZT8/MCxvPW8/PyEwLF8obikpe2xldCBpPW4ubGVuZ3RoO2ZvcihsZXQgZj0wO2Y8aTtmKz0zKXMuZnJvbUFycmF5KG4sZixyKSxvJiYocj10LnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UocixyKSksZSE9PTAmJihhPXQuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHIsYSkscy5tdWx0aXBseUJ5U2NhbGFyKGEsZSxhKSxzLmFkZChyLGEscikpLG5bZl09ci54LG5bZisxXT1yLnksbltmKzJdPXIuen1yZXR1cm4gbn07d3Q9d2l9KTtmdW5jdGlvbiBUaSgpe3RoaXMuX2FycmF5PVtdLHRoaXMuX29mZnNldD0wLHRoaXMuX2xlbmd0aD0wfXZhciBmMCxqRT1YKCgpPT57T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoVGkucHJvdG90eXBlLHtsZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sZW5ndGh9fX0pO1RpLnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKG4pe3RoaXMuX2FycmF5LnB1c2gobiksdGhpcy5fbGVuZ3RoKyt9O1RpLnByb3RvdHlwZS5kZXF1ZXVlPWZ1bmN0aW9uKCl7aWYodGhpcy5fbGVuZ3RoPT09MClyZXR1cm47bGV0IG49dGhpcy5fYXJyYXksZT10aGlzLl9vZmZzZXQsdD1uW2VdO3JldHVybiBuW2VdPXZvaWQgMCxlKyssZT4xMCYmZSoyPm4ubGVuZ3RoJiYodGhpcy5fYXJyYXk9bi5zbGljZShlKSxlPTApLHRoaXMuX29mZnNldD1lLHRoaXMuX2xlbmd0aC0tLHR9O1RpLnByb3RvdHlwZS5wZWVrPWZ1bmN0aW9uKCl7aWYodGhpcy5fbGVuZ3RoIT09MClyZXR1cm4gdGhpcy5fYXJyYXlbdGhpcy5fb2Zmc2V0XX07VGkucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLl9hcnJheS5pbmRleE9mKG4pIT09LTF9O1RpLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX2FycmF5Lmxlbmd0aD10aGlzLl9vZmZzZXQ9dGhpcy5fbGVuZ3RoPTB9O1RpLnByb3RvdHlwZS5zb3J0PWZ1bmN0aW9uKG4pe3RoaXMuX29mZnNldD4wJiYodGhpcy5fYXJyYXk9dGhpcy5fYXJyYXkuc2xpY2UodGhpcy5fb2Zmc2V0KSx0aGlzLl9vZmZzZXQ9MCksdGhpcy5fYXJyYXkuc29ydChuKX07ZjA9VGl9KTtmdW5jdGlvbiB6RShuLGUsdCxvKXtyZXR1cm4gWS5zdWJ0cmFjdChlLG4scGMpLFkubXVsdGlwbHlCeVNjYWxhcihwYyx0L28scGMpLFkuYWRkKG4scGMscGMpLFtwYy54LHBjLnldfWZ1bmN0aW9uIGhrKG4sZSx0LG8pe3JldHVybiBzLnN1YnRyYWN0KGUsbixFaSkscy5tdWx0aXBseUJ5U2NhbGFyKEVpLHQvbyxFaSkscy5hZGQobixFaSxFaSksW0VpLngsRWkueSxFaS56XX1mdW5jdGlvbiB3ayhuLGUsdCl7bGV0IG89dC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhuLHloKSxhPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZSxBaCk7aWYoTWF0aC5zaWduKG8ubGF0aXR1ZGUpPT09TWF0aC5zaWduKGEubGF0aXR1ZGUpKXJldHVybjtfaC5zZXRFbmRQb2ludHMobyxhKTtsZXQgcj1faC5maW5kSW50ZXJzZWN0aW9uV2l0aExhdGl0dWRlKDAsQWspO2lmKCFfKHIpKXJldHVybjtsZXQgaT1NYXRoLm1pbihvLmxvbmdpdHVkZSxhLmxvbmdpdHVkZSksZj1NYXRoLm1heChvLmxvbmdpdHVkZSxhLmxvbmdpdHVkZSk7aWYoTWF0aC5hYnMoZi1pKT5rLlBJKXtsZXQgZD1pO2k9ZixmPWR9aWYoIShyLmxvbmdpdHVkZTxpfHxyLmxvbmdpdHVkZT5mKSlyZXR1cm4gdC5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihyKX1mdW5jdGlvbiBUayhuLGUsdCxvKXtpZihvPT09YnQuUkhVTUIpcmV0dXJuIHdrKG4sZSx0KTtsZXQgYT1Rbi5saW5lU2VnbWVudFBsYW5lKG4sZSxubi5PUklHSU5fWFlfUExBTkUpO2lmKF8oYSkpcmV0dXJuIHQuc2NhbGVUb0dlb2RldGljU3VyZmFjZShhLGEpfWZ1bmN0aW9uIFJrKG4sZSx0KXtsZXQgbz1bXSxhLHIsaSxmLGQsYz0wO2Zvcig7YzxuLmxlbmd0aDspe2E9bltjXSxyPW5bKGMrMSklbi5sZW5ndGhdLGk9ay5zaWduKGEueiksZj1rLnNpZ24oci56KTtsZXQgdT1sPT5lLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGwsRWspLmxvbmdpdHVkZTtpZihpPT09MClvLnB1c2goe3Bvc2l0aW9uOmMsdHlwZTppLHZpc2l0ZWQ6ITEsbmV4dDpmLHRoZXRhOnUoYSl9KTtlbHNlIGlmKGYhPT0wKXtpZihkPVRrKGEscixlLHQpLCsrYywhXyhkKSljb250aW51ZTtuLnNwbGljZShjLDAsZCksby5wdXNoKHtwb3NpdGlvbjpjLHR5cGU6aSx2aXNpdGVkOiExLG5leHQ6Zix0aGV0YTp1KGQpfSl9KytjfXJldHVybiBvfWZ1bmN0aW9uIEdFKG4sZSx0LG8sYSxyLGkpe2xldCBmPVtdLGQ9cixjPWw9Pmg9PmgucG9zaXRpb249PT1sLHU9W107ZG97bGV0IGw9dFtkXTtmLnB1c2gobCk7bGV0IGg9by5maW5kSW5kZXgoYyhkKSksbT1vW2hdO2lmKCFfKG0pKXsrK2Q7Y29udGludWV9bGV0e3Zpc2l0ZWQ6Yix0eXBlOnAsbmV4dDp5fT1tO2lmKG0udmlzaXRlZD0hMCxwPT09MCl7aWYoeT09PTApe2xldCBUPW9baC0oaT8xOi0xKV07aWYoVD8ucG9zaXRpb249PT1kKzEpVC52aXNpdGVkPSEwO2Vsc2V7KytkO2NvbnRpbnVlfX1pZighYiYmaSYmeT4wfHxyPT09ZCYmIWkmJnk8MCl7KytkO2NvbnRpbnVlfX1pZighKGk/cD49MDpwPD0wKSl7KytkO2NvbnRpbnVlfWJ8fHUucHVzaChkKTtsZXQgZz1oKyhpPzE6LTEpLEE9b1tnXTtpZighXyhBKSl7KytkO2NvbnRpbnVlfWQ9QS5wb3NpdGlvbn13aGlsZShkPHQubGVuZ3RoJiZkPj0wJiZkIT09ciYmZi5sZW5ndGg8dC5sZW5ndGgpO24uc3BsaWNlKGUsYSxmKTtmb3IobGV0IGwgb2YgdSllPUdFKG4sKytlLHQsbywwLGwsIWkpO3JldHVybiBlfXZhciBBbixwYyxFaSx5aCxBaCxtayxiayxfaCxwayxnayxfayx5ayxBayxFayx4ayxPayxTayxDayxVRSxMRSxNayxOayxpdCxKZj1YKCgpPT57aGMoKTtLYSgpO3Z0KCk7TWUoKTtndCgpO0N0KCk7c2UoKTtWZSgpO0hmKCk7WHQoKTtZdCgpO3JuKCk7ZnIoKTtadCgpO2JpKCk7VWUoKTtJbigpO3BpKCk7VEUoKTtXYSgpO3RuKCk7V28oKTtqRSgpO2JjKCk7QW49e307QW4uY29tcHV0ZUhpZXJhcmNoeVBhY2tlZExlbmd0aD1mdW5jdGlvbihuLGUpe2xldCB0PTAsbz1bbl07Zm9yKDtvLmxlbmd0aD4wOyl7bGV0IGE9by5wb3AoKTtpZighXyhhKSljb250aW51ZTt0Kz0yO2xldCByPWEucG9zaXRpb25zLGk9YS5ob2xlcztpZihfKHIpJiZyLmxlbmd0aD4wJiYodCs9ci5sZW5ndGgqZS5wYWNrZWRMZW5ndGgpLF8oaSkpe2xldCBmPWkubGVuZ3RoO2ZvcihsZXQgZD0wO2Q8ZjsrK2Qpby5wdXNoKGlbZF0pfX1yZXR1cm4gdH07QW4ucGFja1BvbHlnb25IaWVyYXJjaHk9ZnVuY3Rpb24obixlLHQsbyl7bGV0IGE9W25dO2Zvcig7YS5sZW5ndGg+MDspe2xldCByPWEucG9wKCk7aWYoIV8ocikpY29udGludWU7bGV0IGk9ci5wb3NpdGlvbnMsZj1yLmhvbGVzO2lmKGVbdCsrXT1fKGkpP2kubGVuZ3RoOjAsZVt0KytdPV8oZik/Zi5sZW5ndGg6MCxfKGkpKXtsZXQgZD1pLmxlbmd0aDtmb3IobGV0IGM9MDtjPGQ7KytjLHQrPW8ucGFja2VkTGVuZ3RoKW8ucGFjayhpW2NdLGUsdCl9aWYoXyhmKSl7bGV0IGQ9Zi5sZW5ndGg7Zm9yKGxldCBjPTA7YzxkOysrYylhLnB1c2goZltjXSl9fXJldHVybiB0fTtBbi51bnBhY2tQb2x5Z29uSGllcmFyY2h5PWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1uW2UrK10sYT1uW2UrK10scj1uZXcgQXJyYXkobyksaT1hPjA/bmV3IEFycmF5KGEpOnZvaWQgMDtmb3IobGV0IGY9MDtmPG87KytmLGUrPXQucGFja2VkTGVuZ3RoKXJbZl09dC51bnBhY2sobixlKTtmb3IobGV0IGY9MDtmPGE7KytmKWlbZl09QW4udW5wYWNrUG9seWdvbkhpZXJhcmNoeShuLGUsdCksZT1pW2ZdLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIGlbZl0uc3RhcnRpbmdJbmRleDtyZXR1cm57cG9zaXRpb25zOnIsaG9sZXM6aSxzdGFydGluZ0luZGV4OmV9fTtwYz1uZXcgWTtFaT1uZXcgcztBbi5zdWJkaXZpZGVMaW5lQ291bnQ9ZnVuY3Rpb24obixlLHQpe2xldCBhPXMuZGlzdGFuY2UobixlKS90LHI9TWF0aC5tYXgoMCxNYXRoLmNlaWwoay5sb2cyKGEpKSk7cmV0dXJuIE1hdGgucG93KDIscil9O3loPW5ldyByZSxBaD1uZXcgcmUsbWs9bmV3IHJlLGJrPW5ldyBzLF9oPW5ldyBabztBbi5zdWJkaXZpZGVSaHVtYkxpbmVDb3VudD1mdW5jdGlvbihuLGUsdCxvKXtsZXQgYT1uLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGUseWgpLHI9bi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyh0LEFoKSxmPW5ldyBabyhhLHIsbikuc3VyZmFjZURpc3RhbmNlL28sZD1NYXRoLm1heCgwLE1hdGguY2VpbChrLmxvZzIoZikpKTtyZXR1cm4gTWF0aC5wb3coMixkKX07QW4uc3ViZGl2aWRlVGV4Y29vcmRMaW5lPWZ1bmN0aW9uKG4sZSx0LG8sYSxyKXtsZXQgaT1Bbi5zdWJkaXZpZGVMaW5lQ291bnQodCxvLGEpLGY9WS5kaXN0YW5jZShuLGUpLGQ9Zi9pLGM9cjtjLmxlbmd0aD1pKjI7bGV0IHU9MDtmb3IobGV0IGw9MDtsPGk7bCsrKXtsZXQgaD16RShuLGUsbCpkLGYpO2NbdSsrXT1oWzBdLGNbdSsrXT1oWzFdfXJldHVybiBjfTtBbi5zdWJkaXZpZGVMaW5lPWZ1bmN0aW9uKG4sZSx0LG8pe2xldCBhPUFuLnN1YmRpdmlkZUxpbmVDb3VudChuLGUsdCkscj1zLmRpc3RhbmNlKG4sZSksaT1yL2E7XyhvKXx8KG89W10pO2xldCBmPW87Zi5sZW5ndGg9YSozO2xldCBkPTA7Zm9yKGxldCBjPTA7YzxhO2MrKyl7bGV0IHU9aGsobixlLGMqaSxyKTtmW2QrK109dVswXSxmW2QrK109dVsxXSxmW2QrK109dVsyXX1yZXR1cm4gZn07QW4uc3ViZGl2aWRlVGV4Y29vcmRSaHVtYkxpbmU9ZnVuY3Rpb24obixlLHQsbyxhLHIsaSl7bGV0IGY9dC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhvLHloKSxkPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoYSxBaCk7X2guc2V0RW5kUG9pbnRzKGYsZCk7bGV0IGM9X2guc3VyZmFjZURpc3RhbmNlL3IsdT1NYXRoLm1heCgwLE1hdGguY2VpbChrLmxvZzIoYykpKSxsPU1hdGgucG93KDIsdSksaD1ZLmRpc3RhbmNlKG4sZSksbT1oL2wsYj1pO2IubGVuZ3RoPWwqMjtsZXQgcD0wO2ZvcihsZXQgeT0wO3k8bDt5Kyspe2xldCBFPXpFKG4sZSx5Km0saCk7YltwKytdPUVbMF0sYltwKytdPUVbMV19cmV0dXJuIGJ9O0FuLnN1YmRpdmlkZVJodW1iTGluZT1mdW5jdGlvbihuLGUsdCxvLGEpe2xldCByPW4uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZSx5aCksaT1uLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHQsQWgpLGY9bmV3IFpvKHIsaSxuKTtpZihfKGEpfHwoYT1bXSksZi5zdXJmYWNlRGlzdGFuY2U8PW8pcmV0dXJuIGEubGVuZ3RoPTMsYVswXT1lLngsYVsxXT1lLnksYVsyXT1lLnosYTtsZXQgZD1mLnN1cmZhY2VEaXN0YW5jZS9vLGM9TWF0aC5tYXgoMCxNYXRoLmNlaWwoay5sb2cyKGQpKSksdT1NYXRoLnBvdygyLGMpLGw9Zi5zdXJmYWNlRGlzdGFuY2UvdSxoPWE7aC5sZW5ndGg9dSozO2xldCBtPTA7Zm9yKGxldCBiPTA7Yjx1O2IrKyl7bGV0IHA9Zi5pbnRlcnBvbGF0ZVVzaW5nU3VyZmFjZURpc3RhbmNlKGIqbCxtaykseT1uLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHAsYmspO2hbbSsrXT15LngsaFttKytdPXkueSxoW20rK109eS56fXJldHVybiBofTtwaz1uZXcgcyxnaz1uZXcgcyxfaz1uZXcgcyx5az1uZXcgcztBbi5zY2FsZVRvR2VvZGV0aWNIZWlnaHRFeHRydWRlZD1mdW5jdGlvbihuLGUsdCxvLGEpe289bz8/Sy5kZWZhdWx0O2xldCByPXBrLGk9Z2ssZj1fayxkPXlrO2lmKF8obikmJl8obi5hdHRyaWJ1dGVzKSYmXyhuLmF0dHJpYnV0ZXMucG9zaXRpb24pKXtsZXQgYz1uLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLHU9Yy5sZW5ndGgvMjtmb3IobGV0IGw9MDtsPHU7bCs9MylzLmZyb21BcnJheShjLGwsZiksby5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoZixyKSxkPW8uc2NhbGVUb0dlb2RldGljU3VyZmFjZShmLGQpLGk9cy5tdWx0aXBseUJ5U2NhbGFyKHIsdCxpKSxpPXMuYWRkKGQsaSxpKSxjW2wrdV09aS54LGNbbCsxK3VdPWkueSxjW2wrMit1XT1pLnosYSYmKGQ9cy5jbG9uZShmLGQpKSxpPXMubXVsdGlwbHlCeVNjYWxhcihyLGUsaSksaT1zLmFkZChkLGksaSksY1tsXT1pLngsY1tsKzFdPWkueSxjW2wrMl09aS56fXJldHVybiBufTtBbi5wb2x5Z29uT3V0bGluZXNGcm9tSGllcmFyY2h5PWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1bXSxhPW5ldyBmMDthLmVucXVldWUobik7bGV0IHIsaSxmO2Zvcig7YS5sZW5ndGghPT0wOyl7bGV0IGQ9YS5kZXF1ZXVlKCksYz1kLnBvc2l0aW9ucztpZihlKWZvcihmPWMubGVuZ3RoLHI9MDtyPGY7cisrKXQuc2NhbGVUb0dlb2RldGljU3VyZmFjZShjW3JdLGNbcl0pO2lmKGM9eG4oYyxzLmVxdWFsc0Vwc2lsb24sITApLGMubGVuZ3RoPDMpY29udGludWU7bGV0IHU9ZC5ob2xlcz9kLmhvbGVzLmxlbmd0aDowO2ZvcihyPTA7cjx1O3IrKyl7bGV0IGw9ZC5ob2xlc1tyXSxoPWwucG9zaXRpb25zO2lmKGUpZm9yKGY9aC5sZW5ndGgsaT0wO2k8ZjsrK2kpdC5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGhbaV0saFtpXSk7aWYoaD14bihoLHMuZXF1YWxzRXBzaWxvbiwhMCksaC5sZW5ndGg8Myljb250aW51ZTtvLnB1c2goaCk7bGV0IG09MDtmb3IoXyhsLmhvbGVzKSYmKG09bC5ob2xlcy5sZW5ndGgpLGk9MDtpPG07aSsrKWEuZW5xdWV1ZShsLmhvbGVzW2ldKX1vLnB1c2goYyl9cmV0dXJuIG99O0FrPW5ldyByZTtFaz1uZXcgcmU7QW4uc3BsaXRQb2x5Z29uc09uRXF1YXRvcj1mdW5jdGlvbihuLGUsdCxvKXtfKG8pfHwobz1bXSksby5zcGxpY2UoMCwwLC4uLm4pLG8ubGVuZ3RoPW4ubGVuZ3RoO2xldCBhPTA7Zm9yKDthPG8ubGVuZ3RoOyl7bGV0IHI9b1thXSxpPXIuc2xpY2UoKTtpZihyLmxlbmd0aDwzKXtvW2FdPWksKythO2NvbnRpbnVlfWxldCBmPVJrKGksZSx0KTtpZihpLmxlbmd0aD09PXIubGVuZ3RofHxmLmxlbmd0aDw9MSl7b1thXT1pLCsrYTtjb250aW51ZX1mLnNvcnQoKGMsdSk9PmMudGhldGEtdS50aGV0YSk7bGV0IGQ9aVswXS56Pj0wO2E9R0UobyxhLGksZiwxLDAsZCl9cmV0dXJuIG99O0FuLnBvbHlnb25zRnJvbUhpZXJhcmNoeT1mdW5jdGlvbihuLGUsdCxvLGEscil7bGV0IGk9W10sZj1bXSxkPW5ldyBmMDtkLmVucXVldWUobik7bGV0IGM9XyhyKTtmb3IoO2QubGVuZ3RoIT09MDspe2xldCB1PWQuZGVxdWV1ZSgpLGw9dS5wb3NpdGlvbnMsaD11LmhvbGVzLG0sYjtpZihvKWZvcihiPWwubGVuZ3RoLG09MDttPGI7bSsrKWEuc2NhbGVUb0dlb2RldGljU3VyZmFjZShsW21dLGxbbV0pO2lmKGV8fChsPXhuKGwscy5lcXVhbHNFcHNpbG9uLCEwKSksbC5sZW5ndGg8Myljb250aW51ZTtsZXQgcD10KGwpO2lmKCFfKHApKWNvbnRpbnVlO2xldCB5PVtdLEU9d3QuY29tcHV0ZVdpbmRpbmdPcmRlcjJEKHApO2lmKEU9PT1Nby5DTE9DS1dJU0UmJihwLnJldmVyc2UoKSxsPWwuc2xpY2UoKS5yZXZlcnNlKCkpLGMpe2M9ITE7bGV0IFM9W2xdO2lmKFM9cihTLFMpLFMubGVuZ3RoPjEpe2ZvcihsZXQgTSBvZiBTKWQuZW5xdWV1ZShuZXcgd0UoTSxoKSk7Y29udGludWV9fWxldCBnPWwuc2xpY2UoKSxBPV8oaCk/aC5sZW5ndGg6MCxUPVtdLFI7Zm9yKG09MDttPEE7bSsrKXtsZXQgUz1oW21dLE09Uy5wb3NpdGlvbnM7aWYobylmb3IoYj1NLmxlbmd0aCxSPTA7UjxiOysrUilhLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoTVtSXSxNW1JdKTtpZihlfHwoTT14bihNLHMuZXF1YWxzRXBzaWxvbiwhMCkpLE0ubGVuZ3RoPDMpY29udGludWU7bGV0IEk9dChNKTtpZighXyhJKSljb250aW51ZTtFPXd0LmNvbXB1dGVXaW5kaW5nT3JkZXIyRChJKSxFPT09TW8uQ0xPQ0tXSVNFJiYoSS5yZXZlcnNlKCksTT1NLnNsaWNlKCkucmV2ZXJzZSgpKSxULnB1c2goTSkseS5wdXNoKGcubGVuZ3RoKSxnPWcuY29uY2F0KE0pLHA9cC5jb25jYXQoSSk7bGV0IE49MDtmb3IoXyhTLmhvbGVzKSYmKE49Uy5ob2xlcy5sZW5ndGgpLFI9MDtSPE47UisrKWQuZW5xdWV1ZShTLmhvbGVzW1JdKX1pLnB1c2goe291dGVyUmluZzpsLGhvbGVzOlR9KSxmLnB1c2goe3Bvc2l0aW9uczpnLHBvc2l0aW9uczJEOnAsaG9sZXM6eX0pfXJldHVybntoaWVyYXJjaHk6aSxwb2x5Z29uczpmfX07eGs9bmV3IFksT2s9bmV3IHMsU2s9bmV3IFllLENrPW5ldyBKO0FuLmNvbXB1dGVCb3VuZGluZ1JlY3RhbmdsZT1mdW5jdGlvbihuLGUsdCxvLGEpe2xldCByPVllLmZyb21BeGlzQW5nbGUobixvLFNrKSxpPUouZnJvbVF1YXRlcm5pb24ocixDayksZj1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksZD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksYz1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksbD10Lmxlbmd0aDtmb3IobGV0IGg9MDtoPGw7KytoKXtsZXQgbT1zLmNsb25lKHRbaF0sT2spO0oubXVsdGlwbHlCeVZlY3RvcihpLG0sbSk7bGV0IGI9ZShtLHhrKTtfKGIpJiYoZj1NYXRoLm1pbihmLGIueCksZD1NYXRoLm1heChkLGIueCksYz1NYXRoLm1pbihjLGIueSksdT1NYXRoLm1heCh1LGIueSkpfXJldHVybiBhLng9ZixhLnk9YyxhLndpZHRoPWQtZixhLmhlaWdodD11LWMsYX07QW4uY3JlYXRlR2VvbWV0cnlGcm9tUG9zaXRpb25zPWZ1bmN0aW9uKG4sZSx0LG8sYSxyLGkpe2xldCBmPXd0LnRyaWFuZ3VsYXRlKGUucG9zaXRpb25zMkQsZS5ob2xlcyk7Zi5sZW5ndGg8MyYmKGY9WzAsMSwyXSk7bGV0IGQ9ZS5wb3NpdGlvbnMsYz1fKHQpLHU9Yz90LnBvc2l0aW9uczp2b2lkIDA7aWYoYSl7bGV0IGw9ZC5sZW5ndGgsaD1uZXcgQXJyYXkobCozKSxtPTA7Zm9yKGxldCB5PTA7eTxsO3krKyl7bGV0IEU9ZFt5XTtoW20rK109RS54LGhbbSsrXT1FLnksaFttKytdPUUuen1sZXQgYj17YXR0cmlidXRlczp7cG9zaXRpb246bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpofSl9LGluZGljZXM6ZixwcmltaXRpdmVUeXBlOkZlLlRSSUFOR0xFU307YyYmKGIuYXR0cmlidXRlcy5zdD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6WS5wYWNrQXJyYXkodSl9KSk7bGV0IHA9bmV3IFBlKGIpO3JldHVybiByLm5vcm1hbD9MdC5jb21wdXRlTm9ybWFsKHApOnB9aWYoaT09PWJ0LkdFT0RFU0lDKXJldHVybiB3dC5jb21wdXRlU3ViZGl2aXNpb24obixkLGYsdSxvKTtpZihpPT09YnQuUkhVTUIpcmV0dXJuIHd0LmNvbXB1dGVSaHVtYkxpbmVTdWJkaXZpc2lvbihuLGQsZix1LG8pfTtVRT1bXSxMRT1bXSxNaz1uZXcgcyxOaz1uZXcgcztBbi5jb21wdXRlV2FsbEdlb21ldHJ5PWZ1bmN0aW9uKG4sZSx0LG8sYSxyKXtsZXQgaSxmLGQsYyx1LGwsaCxtLGIscD1uLmxlbmd0aCx5PTAsRT0wLGc9XyhlKSxBPWc/ZS5wb3NpdGlvbnM6dm9pZCAwO2lmKGEpZm9yKGY9cCozKjIsaT1uZXcgQXJyYXkoZioyKSxnJiYoYj1wKjIqMixtPW5ldyBBcnJheShiKjIpKSxkPTA7ZDxwO2QrKyljPW5bZF0sdT1uWyhkKzEpJXBdLGlbeV09aVt5K2ZdPWMueCwrK3ksaVt5XT1pW3krZl09Yy55LCsreSxpW3ldPWlbeStmXT1jLnosKyt5LGlbeV09aVt5K2ZdPXUueCwrK3ksaVt5XT1pW3krZl09dS55LCsreSxpW3ldPWlbeStmXT11LnosKyt5LGcmJihsPUFbZF0saD1BWyhkKzEpJXBdLG1bRV09bVtFK2JdPWwueCwrK0UsbVtFXT1tW0UrYl09bC55LCsrRSxtW0VdPW1bRStiXT1oLngsKytFLG1bRV09bVtFK2JdPWgueSwrK0UpO2Vsc2V7bGV0IEk9ay5jaG9yZExlbmd0aChvLHQubWF4aW11bVJhZGl1cyksTj0wO2lmKHI9PT1idC5HRU9ERVNJQylmb3IoZD0wO2Q8cDtkKyspTis9QW4uc3ViZGl2aWRlTGluZUNvdW50KG5bZF0sblsoZCsxKSVwXSxJKTtlbHNlIGlmKHI9PT1idC5SSFVNQilmb3IoZD0wO2Q8cDtkKyspTis9QW4uc3ViZGl2aWRlUmh1bWJMaW5lQ291bnQodCxuW2RdLG5bKGQrMSklcF0sSSk7Zm9yKGY9KE4rcCkqMyxpPW5ldyBBcnJheShmKjIpLGcmJihiPShOK3ApKjIsbT1uZXcgQXJyYXkoYioyKSksZD0wO2Q8cDtkKyspe2M9bltkXSx1PW5bKGQrMSklcF07bGV0IFAsRjtnJiYobD1BW2RdLGg9QVsoZCsxKSVwXSkscj09PWJ0LkdFT0RFU0lDPyhQPUFuLnN1YmRpdmlkZUxpbmUoYyx1LEksTEUpLGcmJihGPUFuLnN1YmRpdmlkZVRleGNvb3JkTGluZShsLGgsYyx1LEksVUUpKSk6cj09PWJ0LlJIVU1CJiYoUD1Bbi5zdWJkaXZpZGVSaHVtYkxpbmUodCxjLHUsSSxMRSksZyYmKEY9QW4uc3ViZGl2aWRlVGV4Y29vcmRSaHVtYkxpbmUobCxoLHQsYyx1LEksVUUpKSk7bGV0IHc9UC5sZW5ndGg7Zm9yKGxldCB4PTA7eDx3OysreCwrK3kpaVt5XT1QW3hdLGlbeStmXT1QW3hdO2lmKGlbeV09dS54LGlbeStmXT11LngsKyt5LGlbeV09dS55LGlbeStmXT11LnksKyt5LGlbeV09dS56LGlbeStmXT11LnosKyt5LGcpe2xldCB4PUYubGVuZ3RoO2ZvcihsZXQgQz0wO0M8eDsrK0MsKytFKW1bRV09RltDXSxtW0UrYl09RltDXTttW0VdPWgueCxtW0UrYl09aC54LCsrRSxtW0VdPWgueSxtW0UrYl09aC55LCsrRX19fXA9aS5sZW5ndGg7bGV0IFQ9SWUuY3JlYXRlVHlwZWRBcnJheShwLzMscC1uLmxlbmd0aCo2KSxSPTA7Zm9yKHAvPTYsZD0wO2Q8cDtkKyspe2xldCBJPWQsTj1JKzEsUD1JK3AsRj1QKzE7Yz1zLmZyb21BcnJheShpLEkqMyxNayksdT1zLmZyb21BcnJheShpLE4qMyxOayksIXMuZXF1YWxzRXBzaWxvbihjLHUsay5FUFNJTE9OMTAsay5FUFNJTE9OMTApJiYoVFtSKytdPUksVFtSKytdPVAsVFtSKytdPU4sVFtSKytdPU4sVFtSKytdPVAsVFtSKytdPUYpfWxldCBTPXthdHRyaWJ1dGVzOm5ldyBRZSh7cG9zaXRpb246bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczppfSl9KSxpbmRpY2VzOlQscHJpbWl0aXZlVHlwZTpGZS5UUklBTkdMRVN9O3JldHVybiBnJiYoUy5hdHRyaWJ1dGVzLnN0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczptfSkpLG5ldyBQZShTKX07aXQ9QW59KTtmdW5jdGlvbiBWayhuLGUsdCxvLGEscixpLGYsZCl7bGV0IGM9bi5wb3NpdGlvbnMsdT13dC50cmlhbmd1bGF0ZShuLnBvc2l0aW9uczJELG4uaG9sZXMpO3UubGVuZ3RoPDMmJih1PVswLDEsMl0pO2xldCBsPUllLmNyZWF0ZVR5cGVkQXJyYXkoYy5sZW5ndGgsdS5sZW5ndGgpO2wuc2V0KHUpO2xldCBoPUxrO2lmKG8hPT0wKXtsZXQgRj1ZZS5mcm9tQXhpc0FuZ2xlKGksbyxWRSk7aWYoaD1KLmZyb21RdWF0ZXJuaW9uKEYsaCksZS50YW5nZW50fHxlLmJpdGFuZ2VudCl7Rj1ZZS5mcm9tQXhpc0FuZ2xlKGksLW8sVkUpO2xldCB3PUouZnJvbVF1YXRlcm5pb24oRix6ayk7Zj1zLm5vcm1hbGl6ZShKLm11bHRpcGx5QnlWZWN0b3IodyxmLGYpLGYpLGUuYml0YW5nZW50JiYoZD1zLm5vcm1hbGl6ZShzLmNyb3NzKGksZixkKSxkKSl9fWVsc2UgaD1KLmNsb25lKEouSURFTlRJVFksaCk7bGV0IG09dms7ZS5zdCYmKG0ueD10LngsbS55PXQueSk7bGV0IGI9Yy5sZW5ndGgscD1iKjMseT1uZXcgRmxvYXQ2NEFycmF5KHApLEU9ZS5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShwKTp2b2lkIDAsZz1lLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShwKTp2b2lkIDAsQT1lLmJpdGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KHApOnZvaWQgMCxUPWUuc3Q/bmV3IEZsb2F0MzJBcnJheShiKjIpOnZvaWQgMCxSPTAsUz0wLE09MCxJPTAsTj0wO2ZvcihsZXQgRj0wO0Y8YjtGKyspe2xldCB3PWNbRl07aWYoeVtSKytdPXcueCx5W1IrK109dy55LHlbUisrXT13LnosZS5zdClpZihfKGEpJiZhLnBvc2l0aW9ucy5sZW5ndGg9PT1iKVRbTisrXT1hLnBvc2l0aW9uc1tGXS54LFRbTisrXT1hLnBvc2l0aW9uc1tGXS55O2Vsc2V7bGV0IHg9Si5tdWx0aXBseUJ5VmVjdG9yKGgsdyxJayksQz1yKHgsa2spO1kuc3VidHJhY3QoQyxtLEMpO2xldCB2PWsuY2xhbXAoQy54L3Qud2lkdGgsMCwxKSxqPWsuY2xhbXAoQy55L3QuaGVpZ2h0LDAsMSk7VFtOKytdPXYsVFtOKytdPWp9ZS5ub3JtYWwmJihFW1MrK109aS54LEVbUysrXT1pLnksRVtTKytdPWkueiksZS50YW5nZW50JiYoZ1tJKytdPWYueCxnW0krK109Zi55LGdbSSsrXT1mLnopLGUuYml0YW5nZW50JiYoQVtNKytdPWQueCxBW00rK109ZC55LEFbTSsrXT1kLnopfWxldCBQPW5ldyBRZTtyZXR1cm4gZS5wb3NpdGlvbiYmKFAucG9zaXRpb249bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczp5fSkpLGUubm9ybWFsJiYoUC5ub3JtYWw9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkV9KSksZS50YW5nZW50JiYoUC50YW5nZW50PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpnfSkpLGUuYml0YW5nZW50JiYoUC5iaXRhbmdlbnQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkF9KSksZS5zdCYmKFAuc3Q9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOlR9KSksbmV3IFBlKHthdHRyaWJ1dGVzOlAsaW5kaWNlczpsLHByaW1pdGl2ZVR5cGU6RmUuVFJJQU5HTEVTfSl9ZnVuY3Rpb24gZ2Mobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5wb2x5Z29uSGllcmFyY2h5LHQ9bi50ZXh0dXJlQ29vcmRpbmF0ZXMsbz1uLnZlcnRleEZvcm1hdD8/bGUuREVGQVVMVDt0aGlzLl92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUobyksdGhpcy5fcG9seWdvbkhpZXJhcmNoeT1lLHRoaXMuX3N0Um90YXRpb249bi5zdFJvdGF0aW9uPz8wLHRoaXMuX2VsbGlwc29pZD1LLmNsb25lKG4uZWxsaXBzb2lkPz9LLmRlZmF1bHQpLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUNvcGxhbmFyUG9seWdvbkdlb21ldHJ5Iix0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZXM9dCx0aGlzLnBhY2tlZExlbmd0aD1pdC5jb21wdXRlSGllcmFyY2h5UGFja2VkTGVuZ3RoKGUscykrbGUucGFja2VkTGVuZ3RoK0sucGFja2VkTGVuZ3RoKyhfKHQpP2l0LmNvbXB1dGVIaWVyYXJjaHlQYWNrZWRMZW5ndGgodCxZKToxKSsyfXZhciBJayxQayxrayx2ayxGayxEayxCayxaZixqayxVayxWRSxMayx6ayxHayxIayxLayxxayxkMCxIRT1YKCgpPT57S2EoKTtHZigpO0V0KCk7dnQoKTtNZSgpO0N0KCk7bjAoKTtzdCgpO3NlKCk7VmUoKTtYdCgpO1l0KCk7cm4oKTtkYygpO2ZyKCk7WnQoKTtVZSgpO0luKCk7SmYoKTtXYSgpO3RuKCk7V28oKTtDbygpO0lrPW5ldyBzLFBrPW5ldyBxYSxraz1uZXcgWSx2az1uZXcgWSxGaz1uZXcgcyxEaz1uZXcgcyxCaz1uZXcgcyxaZj1uZXcgcyxqaz1uZXcgcyxVaz1uZXcgcyxWRT1uZXcgWWUsTGs9bmV3IEosems9bmV3IEosR2s9bmV3IHM7Z2MuZnJvbVBvc2l0aW9ucz1mdW5jdGlvbihuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT17cG9seWdvbkhpZXJhcmNoeTp7cG9zaXRpb25zOm4ucG9zaXRpb25zfSx2ZXJ0ZXhGb3JtYXQ6bi52ZXJ0ZXhGb3JtYXQsc3RSb3RhdGlvbjpuLnN0Um90YXRpb24sZWxsaXBzb2lkOm4uZWxsaXBzb2lkLHRleHR1cmVDb29yZGluYXRlczpuLnRleHR1cmVDb29yZGluYXRlc307cmV0dXJuIG5ldyBnYyhlKX07Z2MucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCx0PWl0LnBhY2tQb2x5Z29uSGllcmFyY2h5KG4uX3BvbHlnb25IaWVyYXJjaHksZSx0LHMpLEsucGFjayhuLl9lbGxpcHNvaWQsZSx0KSx0Kz1LLnBhY2tlZExlbmd0aCxsZS5wYWNrKG4uX3ZlcnRleEZvcm1hdCxlLHQpLHQrPWxlLnBhY2tlZExlbmd0aCxlW3QrK109bi5fc3RSb3RhdGlvbixfKG4uX3RleHR1cmVDb29yZGluYXRlcyk/dD1pdC5wYWNrUG9seWdvbkhpZXJhcmNoeShuLl90ZXh0dXJlQ29vcmRpbmF0ZXMsZSx0LFkpOmVbdCsrXT0tMSxlW3QrK109bi5wYWNrZWRMZW5ndGgsZX07SGs9Sy5jbG9uZShLLlVOSVRfU1BIRVJFKSxLaz1uZXcgbGUscWs9e3BvbHlnb25IaWVyYXJjaHk6e319O2djLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvPWl0LnVucGFja1BvbHlnb25IaWVyYXJjaHkobixlLHMpO2U9by5zdGFydGluZ0luZGV4LGRlbGV0ZSBvLnN0YXJ0aW5nSW5kZXg7bGV0IGE9Sy51bnBhY2sobixlLEhrKTtlKz1LLnBhY2tlZExlbmd0aDtsZXQgcj1sZS51bnBhY2sobixlLEtrKTtlKz1sZS5wYWNrZWRMZW5ndGg7bGV0IGk9bltlKytdLGY9bltlXT09PS0xP3ZvaWQgMDppdC51bnBhY2tQb2x5Z29uSGllcmFyY2h5KG4sZSxZKTtfKGYpPyhlPWYuc3RhcnRpbmdJbmRleCxkZWxldGUgZi5zdGFydGluZ0luZGV4KTplKys7bGV0IGQ9bltlKytdO3JldHVybiBfKHQpfHwodD1uZXcgZ2MocWspKSx0Ll9wb2x5Z29uSGllcmFyY2h5PW8sdC5fZWxsaXBzb2lkPUsuY2xvbmUoYSx0Ll9lbGxpcHNvaWQpLHQuX3ZlcnRleEZvcm1hdD1sZS5jbG9uZShyLHQuX3ZlcnRleEZvcm1hdCksdC5fc3RSb3RhdGlvbj1pLHQuX3RleHR1cmVDb29yZGluYXRlcz1mLHQucGFja2VkTGVuZ3RoPWQsdH07Z2MuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7bGV0IGU9bi5fdmVydGV4Rm9ybWF0LHQ9bi5fcG9seWdvbkhpZXJhcmNoeSxvPW4uX3N0Um90YXRpb24sYT1uLl90ZXh0dXJlQ29vcmRpbmF0ZXMscj1fKGEpLGk9dC5wb3NpdGlvbnM7aWYoaT14bihpLHMuZXF1YWxzRXBzaWxvbiwhMCksaS5sZW5ndGg8MylyZXR1cm47bGV0IGY9RmssZD1EayxjPUJrLHU9amssbD1VaztpZighZ3MuY29tcHV0ZVByb2plY3RUbzJEQXJndW1lbnRzKGksWmYsdSxsKSlyZXR1cm47aWYoZj1zLmNyb3NzKHUsbCxmKSxmPXMubm9ybWFsaXplKGYsZiksIXMuZXF1YWxzRXBzaWxvbihaZixzLlpFUk8say5FUFNJTE9ONikpe2xldCBOPW4uX2VsbGlwc29pZC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoWmYsR2spO3MuZG90KGYsTik8MCYmKGY9cy5uZWdhdGUoZixmKSx1PXMubmVnYXRlKHUsdSkpfWxldCBtPWdzLmNyZWF0ZVByb2plY3RQb2ludHNUbzJERnVuY3Rpb24oWmYsdSxsKSxiPWdzLmNyZWF0ZVByb2plY3RQb2ludFRvMkRGdW5jdGlvbihaZix1LGwpO2UudGFuZ2VudCYmKGQ9cy5jbG9uZSh1LGQpKSxlLmJpdGFuZ2VudCYmKGM9cy5jbG9uZShsLGMpKTtsZXQgcD1pdC5wb2x5Z29uc0Zyb21IaWVyYXJjaHkodCxyLG0sITEpLHk9cC5oaWVyYXJjaHksRT1wLnBvbHlnb25zLGc9ZnVuY3Rpb24oTil7cmV0dXJuIE59LEE9cj9pdC5wb2x5Z29uc0Zyb21IaWVyYXJjaHkoYSwhMCxnLCExKS5wb2x5Z29uczp2b2lkIDA7aWYoeS5sZW5ndGg9PT0wKXJldHVybjtpPXlbMF0ub3V0ZXJSaW5nO2xldCBUPWdlLmZyb21Qb2ludHMoaSksUj1pdC5jb21wdXRlQm91bmRpbmdSZWN0YW5nbGUoZixiLGksbyxQayksUz1bXTtmb3IobGV0IE49MDtOPEUubGVuZ3RoO04rKyl7bGV0IFA9bmV3IGxvKHtnZW9tZXRyeTpWayhFW05dLGUsUixvLHI/QVtOXTp2b2lkIDAsYixmLGQsYyl9KTtTLnB1c2goUCl9bGV0IE09THQuY29tYmluZUluc3RhbmNlcyhTKVswXTtNLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPW5ldyBGbG9hdDY0QXJyYXkoTS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyksTS5pbmRpY2VzPUllLmNyZWF0ZVR5cGVkQXJyYXkoTS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgvMyxNLmluZGljZXMpO2xldCBJPU0uYXR0cmlidXRlcztyZXR1cm4gZS5wb3NpdGlvbnx8ZGVsZXRlIEkucG9zaXRpb24sbmV3IFBlKHthdHRyaWJ1dGVzOkksaW5kaWNlczpNLmluZGljZXMscHJpbWl0aXZlVHlwZTpNLnByaW1pdGl2ZVR5cGUsYm91bmRpbmdTcGhlcmU6VH0pfTtkMD1nY30pO3ZhciB1MD17fTskZSh1MCx7ZGVmYXVsdDooKT0+WGt9KTtmdW5jdGlvbiBXayhuLGUpe3JldHVybiBfKGUpJiYobj1kMC51bnBhY2sobixlKSksZDAuY3JlYXRlR2VvbWV0cnkobil9dmFyIFhrLGwwPVgoKCk9PntIRSgpO3NlKCk7WGs9V2t9KTtmdW5jdGlvbiBZayhuKXtsZXQgZT1uLmxlbmd0aCx0PW5ldyBGbG9hdDY0QXJyYXkoZSozKSxvPUllLmNyZWF0ZVR5cGVkQXJyYXkoZSxlKjIpLGE9MCxyPTA7Zm9yKGxldCBmPTA7ZjxlO2YrKyl7bGV0IGQ9bltmXTt0W2ErK109ZC54LHRbYSsrXT1kLnksdFthKytdPWQueixvW3IrK109ZixvW3IrK109KGYrMSklZX1sZXQgaT1uZXcgUWUoe3Bvc2l0aW9uOm5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6dH0pfSk7cmV0dXJuIG5ldyBQZSh7YXR0cmlidXRlczppLGluZGljZXM6byxwcmltaXRpdmVUeXBlOkZlLkxJTkVTfSl9ZnVuY3Rpb24gX2Mobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5wb2x5Z29uSGllcmFyY2h5O3RoaXMuX3BvbHlnb25IaWVyYXJjaHk9ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVDb3BsYW5hclBvbHlnb25PdXRsaW5lR2VvbWV0cnkiLHRoaXMucGFja2VkTGVuZ3RoPWl0LmNvbXB1dGVIaWVyYXJjaHlQYWNrZWRMZW5ndGgoZSxzKSsxfXZhciBKayxoMCxLRT1YKCgpPT57S2EoKTtFdCgpO01lKCk7Q3QoKTtuMCgpO3N0KCk7c2UoKTtYdCgpO1l0KCk7cm4oKTtkYygpO2ZyKCk7WnQoKTtKZigpO3RuKCk7X2MuZnJvbVBvc2l0aW9ucz1mdW5jdGlvbihuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT17cG9seWdvbkhpZXJhcmNoeTp7cG9zaXRpb25zOm4ucG9zaXRpb25zfX07cmV0dXJuIG5ldyBfYyhlKX07X2MucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCx0PWl0LnBhY2tQb2x5Z29uSGllcmFyY2h5KG4uX3BvbHlnb25IaWVyYXJjaHksZSx0LHMpLGVbdF09bi5wYWNrZWRMZW5ndGgsZX07Sms9e3BvbHlnb25IaWVyYXJjaHk6e319O19jLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvPWl0LnVucGFja1BvbHlnb25IaWVyYXJjaHkobixlLHMpO2U9by5zdGFydGluZ0luZGV4LGRlbGV0ZSBvLnN0YXJ0aW5nSW5kZXg7bGV0IGE9bltlXTtyZXR1cm4gXyh0KXx8KHQ9bmV3IF9jKEprKSksdC5fcG9seWdvbkhpZXJhcmNoeT1vLHQucGFja2VkTGVuZ3RoPWEsdH07X2MuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7bGV0IGU9bi5fcG9seWdvbkhpZXJhcmNoeSx0PWUucG9zaXRpb25zO2lmKHQ9eG4odCxzLmVxdWFsc0Vwc2lsb24sITApLHQubGVuZ3RoPDN8fCFncy52YWxpZE91dGxpbmUodCkpcmV0dXJuO2xldCBhPWl0LnBvbHlnb25PdXRsaW5lc0Zyb21IaWVyYXJjaHkoZSwhMSk7aWYoYS5sZW5ndGg9PT0wKXJldHVybjtsZXQgcj1bXTtmb3IobGV0IGQ9MDtkPGEubGVuZ3RoO2QrKyl7bGV0IGM9bmV3IGxvKHtnZW9tZXRyeTpZayhhW2RdKX0pO3IucHVzaChjKX1sZXQgaT1MdC5jb21iaW5lSW5zdGFuY2VzKHIpWzBdLGY9Z2UuZnJvbVBvaW50cyhlLnBvc2l0aW9ucyk7cmV0dXJuIG5ldyBQZSh7YXR0cmlidXRlczppLmF0dHJpYnV0ZXMsaW5kaWNlczppLmluZGljZXMscHJpbWl0aXZlVHlwZTppLnByaW1pdGl2ZVR5cGUsYm91bmRpbmdTcGhlcmU6Zn0pfTtoMD1fY30pO3ZhciBtMD17fTskZShtMCx7ZGVmYXVsdDooKT0+UWt9KTtmdW5jdGlvbiBaayhuLGUpe3JldHVybiBfKGUpJiYobj1oMC51bnBhY2sobixlKSksbi5fZWxsaXBzb2lkPUsuY2xvbmUobi5fZWxsaXBzb2lkKSxoMC5jcmVhdGVHZW9tZXRyeShuKX12YXIgUWssYjA9WCgoKT0+e0tFKCk7c2UoKTtWZSgpO1FrPVprfSk7dmFyIHFFLHNuLHljPVgoKCk9PntxRT17Uk9VTkRFRDowLE1JVEVSRUQ6MSxCRVZFTEVEOjJ9O09iamVjdC5mcmVlemUocUUpO3NuPXFFfSk7ZnVuY3Rpb24gJGsobil7bGV0IGU9bi5fdVNxdWFyZWQsdD1uLl9lbGxpcHNvaWQubWF4aW11bVJhZGl1cyxvPW4uX2VsbGlwc29pZC5taW5pbXVtUmFkaXVzLGE9KHQtbykvdCxyPU1hdGguY29zKG4uX3N0YXJ0SGVhZGluZyksaT1NYXRoLnNpbihuLl9zdGFydEhlYWRpbmcpLGY9KDEtYSkqTWF0aC50YW4obi5fc3RhcnQubGF0aXR1ZGUpLGQ9MS9NYXRoLnNxcnQoMStmKmYpLGM9ZCpmLHU9TWF0aC5hdGFuMihmLHIpLGw9ZCppLGg9bCpsLG09MS1oLGI9TWF0aC5zcXJ0KG0pLHA9ZS80LHk9cCpwLEU9eSpwLGc9eSp5LEE9MStwLTMqeS80KzUqRS80LTE3NSpnLzY0LFQ9MS1wKzE1KnkvOC0zNSpFLzgsUj0xLTMqcCszNSp5LzQsUz0xLTUqcCxNPUEqdS1UKk1hdGguc2luKDIqdSkqcC8yLVIqTWF0aC5zaW4oNCp1KSp5LzE2LVMqTWF0aC5zaW4oNip1KSpFLzQ4LU1hdGguc2luKDgqdSkqNSpnLzUxMixJPW4uX2NvbnN0YW50cztJLmE9dCxJLmI9byxJLmY9YSxJLmNvc2luZUhlYWRpbmc9cixJLnNpbmVIZWFkaW5nPWksSS50YW5VPWYsSS5jb3NpbmVVPWQsSS5zaW5lVT1jLEkuc2lnbWE9dSxJLnNpbmVBbHBoYT1sLEkuc2luZVNxdWFyZWRBbHBoYT1oLEkuY29zaW5lU3F1YXJlZEFscGhhPW0sSS5jb3NpbmVBbHBoYT1iLEkudTJPdmVyND1wLEkudTRPdmVyMTY9eSxJLnU2T3ZlcjY0PUUsSS51OE92ZXIyNTY9ZyxJLmEwPUEsSS5hMT1ULEkuYTI9UixJLmEzPVMsSS5kaXN0YW5jZVJhdGlvPU19ZnVuY3Rpb24gZXYobixlKXtyZXR1cm4gbiplKig0K24qKDQtMyplKSkvMTZ9ZnVuY3Rpb24gV0UobixlLHQsbyxhLHIsaSl7bGV0IGY9ZXYobix0KTtyZXR1cm4oMS1mKSpuKmUqKG8rZiphKihpK2YqciooMippKmktMSkpKX1mdW5jdGlvbiB0dihuLGUsdCxvLGEscixpKXtsZXQgZj0oZS10KS9lLGQ9ci1vLGM9TWF0aC5hdGFuKCgxLWYpKk1hdGgudGFuKGEpKSx1PU1hdGguYXRhbigoMS1mKSpNYXRoLnRhbihpKSksbD1NYXRoLmNvcyhjKSxoPU1hdGguc2luKGMpLG09TWF0aC5jb3ModSksYj1NYXRoLnNpbih1KSxwPWwqbSx5PWwqYixFPWgqYixnPWgqbSxBPWQsVD1rLlRXT19QSSxSPU1hdGguY29zKEEpLFM9TWF0aC5zaW4oQSksTSxJLE4sUCxGO2Rve1I9TWF0aC5jb3MoQSksUz1NYXRoLnNpbihBKTtsZXQgVj15LWcqUjtOPU1hdGguc3FydChtKm0qUypTK1YqViksST1FK3AqUixNPU1hdGguYXRhbjIoTixJKTtsZXQgTztOPT09MD8oTz0wLFA9MSk6KE89cCpTL04sUD0xLU8qTyksVD1BLEY9SS0yKkUvUCxpc0Zpbml0ZShGKXx8KEY9MCksQT1kK1dFKGYsTyxQLE0sTixJLEYpfXdoaWxlKE1hdGguYWJzKEEtVCk+ay5FUFNJTE9OMTIpO2xldCB3PVAqKGUqZS10KnQpLyh0KnQpLHg9MSt3Kig0MDk2K3cqKHcqKDMyMC0xNzUqdyktNzY4KSkvMTYzODQsQz13KigyNTYrdyoodyooNzQtNDcqdyktMTI4KSkvMTAyNCx2PUYqRixqPUMqTiooRitDKihJKigyKnYtMSktQypGKig0Kk4qTi0zKSooNCp2LTMpLzYpLzQpLHo9dCp4KihNLWopLEQ9TWF0aC5hdGFuMihtKlMseS1nKlIpLEc9TWF0aC5hdGFuMihsKlMseSpSLWcpO24uX2Rpc3RhbmNlPXosbi5fc3RhcnRIZWFkaW5nPUQsbi5fZW5kSGVhZGluZz1HLG4uX3VTcXVhcmVkPXd9ZnVuY3Rpb24gWEUobixlLHQsbyl7bGV0IGE9cy5ub3JtYWxpemUoby5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihlLHAwKSxudikscj1zLm5vcm1hbGl6ZShvLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHQscDApLHAwKTt0dihuLG8ubWF4aW11bVJhZGl1cyxvLm1pbmltdW1SYWRpdXMsZS5sb25naXR1ZGUsZS5sYXRpdHVkZSx0LmxvbmdpdHVkZSx0LmxhdGl0dWRlKSxuLl9zdGFydD1yZS5jbG9uZShlLG4uX3N0YXJ0KSxuLl9lbmQ9cmUuY2xvbmUodCxuLl9lbmQpLG4uX3N0YXJ0LmhlaWdodD0wLG4uX2VuZC5oZWlnaHQ9MCwkayhuKX1mdW5jdGlvbiBRZihuLGUsdCl7bGV0IG89dD8/Sy5kZWZhdWx0O3RoaXMuX2VsbGlwc29pZD1vLHRoaXMuX3N0YXJ0PW5ldyByZSx0aGlzLl9lbmQ9bmV3IHJlLHRoaXMuX2NvbnN0YW50cz17fSx0aGlzLl9zdGFydEhlYWRpbmc9dm9pZCAwLHRoaXMuX2VuZEhlYWRpbmc9dm9pZCAwLHRoaXMuX2Rpc3RhbmNlPXZvaWQgMCx0aGlzLl91U3F1YXJlZD12b2lkIDAsXyhuKSYmXyhlKSYmWEUodGhpcyxuLGUsbyl9dmFyIG52LHAwLHdoLGcwPVgoKCk9PntNZSgpO2d0KCk7c2UoKTtWZSgpO1VlKCk7bnY9bmV3IHMscDA9bmV3IHM7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoUWYucHJvdG90eXBlLHtlbGxpcHNvaWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGxpcHNvaWR9fSxzdXJmYWNlRGlzdGFuY2U6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kaXN0YW5jZX19LHN0YXJ0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RhcnR9fSxlbmQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmR9fSxzdGFydEhlYWRpbmc6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdGFydEhlYWRpbmd9fSxlbmRIZWFkaW5nOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5kSGVhZGluZ319fSk7UWYucHJvdG90eXBlLnNldEVuZFBvaW50cz1mdW5jdGlvbihuLGUpe1hFKHRoaXMsbixlLHRoaXMuX2VsbGlwc29pZCl9O1FmLnByb3RvdHlwZS5pbnRlcnBvbGF0ZVVzaW5nRnJhY3Rpb249ZnVuY3Rpb24obixlKXtyZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZVVzaW5nU3VyZmFjZURpc3RhbmNlKHRoaXMuX2Rpc3RhbmNlKm4sZSl9O1FmLnByb3RvdHlwZS5pbnRlcnBvbGF0ZVVzaW5nU3VyZmFjZURpc3RhbmNlPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9dGhpcy5fY29uc3RhbnRzLG89dC5kaXN0YW5jZVJhdGlvK24vdC5iLGE9TWF0aC5jb3MoMipvKSxyPU1hdGguY29zKDQqbyksaT1NYXRoLmNvcyg2Km8pLGY9TWF0aC5zaW4oMipvKSxkPU1hdGguc2luKDQqbyksYz1NYXRoLnNpbig2Km8pLHU9TWF0aC5zaW4oOCpvKSxsPW8qbyxoPW8qbCxtPXQudThPdmVyMjU2LGI9dC51Mk92ZXI0LHA9dC51Nk92ZXI2NCx5PXQudTRPdmVyMTYsRT0yKmgqbSphLzMrbyooMS1iKzcqeS80LTE1KnAvNCs1NzkqbS82NC0oeS0xNSpwLzQrMTg3Km0vMTYpKmEtKDUqcC80LTExNSptLzE2KSpyLTI5Km0qaS8xNikrKGIvMi15KzcxKnAvMzItODUqbS8xNikqZisoNSp5LzE2LTUqcC80KzM4MyptLzk2KSpkLWwqKChwLTExKm0vMikqZis1Km0qZC8yKSsoMjkqcC85Ni0yOSptLzE2KSpjKzUzOSptKnUvMTUzNixnPU1hdGguYXNpbihNYXRoLnNpbihFKSp0LmNvc2luZUFscGhhKSxBPU1hdGguYXRhbih0LmEvdC5iKk1hdGgudGFuKGcpKTtFPUUtdC5zaWdtYTtsZXQgVD1NYXRoLmNvcygyKnQuc2lnbWErRSksUj1NYXRoLnNpbihFKSxTPU1hdGguY29zKEUpLE09dC5jb3NpbmVVKlMsST10LnNpbmVVKlIsUD1NYXRoLmF0YW4yKFIqdC5zaW5lSGVhZGluZyxNLUkqdC5jb3NpbmVIZWFkaW5nKS1XRSh0LmYsdC5zaW5lQWxwaGEsdC5jb3NpbmVTcXVhcmVkQWxwaGEsRSxSLFMsVCk7cmV0dXJuIF8oZSk/KGUubG9uZ2l0dWRlPXRoaXMuX3N0YXJ0LmxvbmdpdHVkZStQLGUubGF0aXR1ZGU9QSxlLmhlaWdodD0wLGUpOm5ldyByZSh0aGlzLl9zdGFydC5sb25naXR1ZGUrUCxBLDApfTt3aD1RZn0pO2Z1bmN0aW9uIFFFKG4sZSx0KXtsZXQgbz15MDtvLmxlbmd0aD1uO2xldCBhO2lmKGU9PT10KXtmb3IoYT0wO2E8bjthKyspb1thXT1lO3JldHVybiBvfWxldCBpPSh0LWUpL247Zm9yKGE9MDthPG47YSsrKXtsZXQgZj1lK2EqaTtvW2FdPWZ9cmV0dXJuIG99ZnVuY3Rpb24gdXYobixlLHQsbyxhLHIsaSxmKXtsZXQgZD1vLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UobixBMCksYz1vLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoZSxkdiksdT1Vby5udW1iZXJPZlBvaW50cyhuLGUsdCksbD1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGQsRWgpLGg9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhjLFRoKSxtPVFFKHUsYSxyKTtfMC5zZXRFbmRQb2ludHMobCxoKTtsZXQgYj1fMC5zdXJmYWNlRGlzdGFuY2UvdSxwPWY7bC5oZWlnaHQ9YTtsZXQgeT1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGwsUmkpO3MucGFjayh5LGkscCkscCs9Mztmb3IobGV0IEU9MTtFPHU7RSsrKXtsZXQgZz1fMC5pbnRlcnBvbGF0ZVVzaW5nU3VyZmFjZURpc3RhbmNlKEUqYixUaCk7Zy5oZWlnaHQ9bVtFXSx5PW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oZyxSaSkscy5wYWNrKHksaSxwKSxwKz0zfXJldHVybiBwfWZ1bmN0aW9uIGx2KG4sZSx0LG8sYSxyLGksZil7bGV0IGQ9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhuLEVoKSxjPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZSxUaCksdT1Vby5udW1iZXJPZlBvaW50c1JodW1iTGluZShkLGMsdCk7ZC5oZWlnaHQ9MCxjLmhlaWdodD0wO2xldCBsPVFFKHUsYSxyKTskZi5lbGxpcHNvaWQuZXF1YWxzKG8pfHwoJGY9bmV3IFpvKHZvaWQgMCx2b2lkIDAsbykpLCRmLnNldEVuZFBvaW50cyhkLGMpO2xldCBoPSRmLnN1cmZhY2VEaXN0YW5jZS91LG09ZjtkLmhlaWdodD1hO2xldCBiPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oZCxSaSk7cy5wYWNrKGIsaSxtKSxtKz0zO2ZvcihsZXQgcD0xO3A8dTtwKyspe2xldCB5PSRmLmludGVycG9sYXRlVXNpbmdTdXJmYWNlRGlzdGFuY2UocCpoLFRoKTt5LmhlaWdodD1sW3BdLGI9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbih5LFJpKSxzLnBhY2soYixpLG0pLG0rPTN9cmV0dXJuIG19dmFyIFVvLG92LGF2LHJ2LFlFLGl2LEpFLGN2LHN2LGZ2LHkwLEVoLFRoLFJpLEEwLGR2LF8wLCRmLFpFLGh2LGJuLHdzPVgoKCk9PntNZSgpO2d0KCk7c2UoKTtWZSgpO2cwKCk7SGYoKTtiaSgpO1VlKCk7dW4oKTtwaSgpO1VvPXt9O1VvLm51bWJlck9mUG9pbnRzPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1zLmRpc3RhbmNlKG4sZSk7cmV0dXJuIE1hdGguY2VpbChvL3QpfTtVby5udW1iZXJPZlBvaW50c1JodW1iTGluZT1mdW5jdGlvbihuLGUsdCl7bGV0IG89TWF0aC5wb3cobi5sb25naXR1ZGUtZS5sb25naXR1ZGUsMikrTWF0aC5wb3cobi5sYXRpdHVkZS1lLmxhdGl0dWRlLDIpO3JldHVybiBNYXRoLm1heCgxLE1hdGguY2VpbChNYXRoLnNxcnQoby8odCp0KSkpKX07b3Y9bmV3IHJlO1VvLmV4dHJhY3RIZWlnaHRzPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9bi5sZW5ndGgsbz1uZXcgQXJyYXkodCk7Zm9yKGxldCBhPTA7YTx0O2ErKyl7bGV0IHI9blthXTtvW2FdPWUuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMocixvdikuaGVpZ2h0fXJldHVybiBvfTthdj1uZXcgJCxydj1uZXcgcyxZRT1uZXcgcyxpdj1uZXcgbm4ocy5VTklUX1gsMCksSkU9bmV3IHMsY3Y9bmV3IG5uKHMuVU5JVF9YLDApLHN2PW5ldyBzLGZ2PW5ldyBzLHkwPVtdO0VoPW5ldyByZSxUaD1uZXcgcmUsUmk9bmV3IHMsQTA9bmV3IHMsZHY9bmV3IHMsXzA9bmV3IHdoLCRmPW5ldyBabztVby53cmFwTG9uZ2l0dWRlPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9W10sbz1bXTtpZihfKG4pJiZuLmxlbmd0aD4wKXtlPWU/PyQuSURFTlRJVFk7bGV0IGE9JC5pbnZlcnNlVHJhbnNmb3JtYXRpb24oZSxhdikscj0kLm11bHRpcGx5QnlQb2ludChhLHMuWkVSTyxydiksaT1zLm5vcm1hbGl6ZSgkLm11bHRpcGx5QnlQb2ludEFzVmVjdG9yKGEscy5VTklUX1ksWUUpLFlFKSxmPW5uLmZyb21Qb2ludE5vcm1hbChyLGksaXYpLGQ9cy5ub3JtYWxpemUoJC5tdWx0aXBseUJ5UG9pbnRBc1ZlY3RvcihhLHMuVU5JVF9YLEpFKSxKRSksYz1ubi5mcm9tUG9pbnROb3JtYWwocixkLGN2KSx1PTE7dC5wdXNoKHMuY2xvbmUoblswXSkpO2xldCBsPXRbMF0saD1uLmxlbmd0aDtmb3IobGV0IG09MTttPGg7KyttKXtsZXQgYj1uW21dO2lmKG5uLmdldFBvaW50RGlzdGFuY2UoYyxsKTwwfHxubi5nZXRQb2ludERpc3RhbmNlKGMsYik8MCl7bGV0IHA9UW4ubGluZVNlZ21lbnRQbGFuZShsLGIsZixzdik7aWYoXyhwKSl7bGV0IHk9cy5tdWx0aXBseUJ5U2NhbGFyKGksNWUtOSxmdik7bm4uZ2V0UG9pbnREaXN0YW5jZShmLGwpPDAmJnMubmVnYXRlKHkseSksdC5wdXNoKHMuYWRkKHAseSxuZXcgcykpLG8ucHVzaCh1KzEpLHMubmVnYXRlKHkseSksdC5wdXNoKHMuYWRkKHAseSxuZXcgcykpLHU9MX19dC5wdXNoKHMuY2xvbmUoblttXSkpLHUrKyxsPWJ9by5wdXNoKHUpfXJldHVybntwb3NpdGlvbnM6dCxsZW5ndGhzOm99fTtVby5nZW5lcmF0ZUFyYz1mdW5jdGlvbihuKXtfKG4pfHwobj17fSk7bGV0IGU9bi5wb3NpdGlvbnMsdD1lLmxlbmd0aCxvPW4uZWxsaXBzb2lkPz9LLmRlZmF1bHQsYT1uLmhlaWdodD8/MCxyPUFycmF5LmlzQXJyYXkoYSk7aWYodDwxKXJldHVybltdO2lmKHQ9PT0xKXtsZXQgcD1vLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoZVswXSxBMCk7aWYoYT1yP2FbMF06YSxhIT09MCl7bGV0IHk9by5nZW9kZXRpY1N1cmZhY2VOb3JtYWwocCxSaSk7cy5tdWx0aXBseUJ5U2NhbGFyKHksYSx5KSxzLmFkZChwLHkscCl9cmV0dXJuW3AueCxwLnkscC56XX1sZXQgaT1uLm1pbkRpc3RhbmNlO2lmKCFfKGkpKXtsZXQgcD1uLmdyYW51bGFyaXR5Pz9rLlJBRElBTlNfUEVSX0RFR1JFRTtpPWsuY2hvcmRMZW5ndGgocCxvLm1heGltdW1SYWRpdXMpfWxldCBmPTAsZDtmb3IoZD0wO2Q8dC0xO2QrKylmKz1Vby5udW1iZXJPZlBvaW50cyhlW2RdLGVbZCsxXSxpKTtsZXQgYz0oZisxKSozLHU9bmV3IEFycmF5KGMpLGw9MDtmb3IoZD0wO2Q8dC0xO2QrKyl7bGV0IHA9ZVtkXSx5PWVbZCsxXSxFPXI/YVtkXTphLGc9cj9hW2QrMV06YTtsPXV2KHAseSxpLG8sRSxnLHUsbCl9eTAubGVuZ3RoPTA7bGV0IGg9ZVt0LTFdLG09by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhoLEVoKTttLmhlaWdodD1yP2FbdC0xXTphO2xldCBiPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4obSxSaSk7cmV0dXJuIHMucGFjayhiLHUsYy0zKSx1fTtaRT1uZXcgcmUsaHY9bmV3IHJlO1VvLmdlbmVyYXRlUmh1bWJBcmM9ZnVuY3Rpb24obil7XyhuKXx8KG49e30pO2xldCBlPW4ucG9zaXRpb25zLHQ9ZS5sZW5ndGgsbz1uLmVsbGlwc29pZD8/Sy5kZWZhdWx0LGE9bi5oZWlnaHQ/PzAscj1BcnJheS5pc0FycmF5KGEpO2lmKHQ8MSlyZXR1cm5bXTtpZih0PT09MSl7bGV0IEU9by5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGVbMF0sQTApO2lmKGE9cj9hWzBdOmEsYSE9PTApe2xldCBnPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKEUsUmkpO3MubXVsdGlwbHlCeVNjYWxhcihnLGEsZykscy5hZGQoRSxnLEUpfXJldHVybltFLngsRS55LEUuel19bGV0IGk9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUsZj0wLGQsYz1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGVbMF0sWkUpLHU7Zm9yKGQ9MDtkPHQtMTtkKyspdT1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGVbZCsxXSxodiksZis9VW8ubnVtYmVyT2ZQb2ludHNSaHVtYkxpbmUoYyx1LGkpLGM9cmUuY2xvbmUodSxaRSk7bGV0IGw9KGYrMSkqMyxoPW5ldyBBcnJheShsKSxtPTA7Zm9yKGQ9MDtkPHQtMTtkKyspe2xldCBFPWVbZF0sZz1lW2QrMV0sQT1yP2FbZF06YSxUPXI/YVtkKzFdOmE7bT1sdihFLGcsaSxvLEEsVCxoLG0pfXkwLmxlbmd0aD0wO2xldCBiPWVbdC0xXSxwPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoYixFaCk7cC5oZWlnaHQ9cj9hW3QtMV06YTtsZXQgeT1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHAsUmkpO3JldHVybiBzLnBhY2soeSxoLGwtMyksaH07VW8uZ2VuZXJhdGVDYXJ0ZXNpYW5BcmM9ZnVuY3Rpb24obil7bGV0IGU9VW8uZ2VuZXJhdGVBcmMobiksdD1lLmxlbmd0aC8zLG89bmV3IEFycmF5KHQpO2ZvcihsZXQgYT0wO2E8dDthKyspb1thXT1zLnVucGFjayhlLGEqMyk7cmV0dXJuIG99O1VvLmdlbmVyYXRlQ2FydGVzaWFuUmh1bWJBcmM9ZnVuY3Rpb24obil7bGV0IGU9VW8uZ2VuZXJhdGVSaHVtYkFyYyhuKSx0PWUubGVuZ3RoLzMsbz1uZXcgQXJyYXkodCk7Zm9yKGxldCBhPTA7YTx0O2ErKylvW2FdPXMudW5wYWNrKGUsYSozKTtyZXR1cm4gb307Ym49VW99KTtmdW5jdGlvbiBlZChuLGUpe18oJEVbbl0pfHwoJEVbbl09ITAsY29uc29sZS53YXJuKGU/P24pKX12YXIgJEUsUmgsdzA9WCgoKT0+e3NlKCk7JEU9e307ZWQuZ2VvbWV0cnlPdXRsaW5lcz0iRW50aXR5IGdlb21ldHJ5IG91dGxpbmVzIGFyZSB1bnN1cHBvcnRlZCBvbiB0ZXJyYWluLiBPdXRsaW5lcyB3aWxsIGJlIGRpc2FibGVkLiBUbyBlbmFibGUgb3V0bGluZXMsIGRpc2FibGUgZ2VvbWV0cnkgdGVycmFpbiBjbGFtcGluZyBieSBleHBsaWNpdGx5IHNldHRpbmcgaGVpZ2h0IHRvIDAuIjtlZC5nZW9tZXRyeVpJbmRleD0iRW50aXR5IGdlb21ldHJ5IHdpdGggekluZGV4IGFyZSB1bnN1cHBvcnRlZCB3aGVuIGhlaWdodCBvciBleHRydWRlZEhlaWdodCBhcmUgZGVmaW5lZC4gIHpJbmRleCB3aWxsIGJlIGlnbm9yZWQiO2VkLmdlb21ldHJ5SGVpZ2h0UmVmZXJlbmNlPSJFbnRpdHkgY29ycmlkb3IsIGVsbGlwc2UsIHBvbHlnb24gb3IgcmVjdGFuZ2xlIHdpdGggaGVpZ2h0UmVmZXJlbmNlIG11c3QgYWxzbyBoYXZlIGEgZGVmaW5lZCBoZWlnaHQuICBoZWlnaHRSZWZlcmVuY2Ugd2lsbCBiZSBpZ25vcmVkIjtlZC5nZW9tZXRyeUV4dHJ1ZGVkSGVpZ2h0UmVmZXJlbmNlPSJFbnRpdHkgY29ycmlkb3IsIGVsbGlwc2UsIHBvbHlnb24gb3IgcmVjdGFuZ2xlIHdpdGggZXh0cnVkZWRIZWlnaHRSZWZlcmVuY2UgbXVzdCBhbHNvIGhhdmUgYSBkZWZpbmVkIGV4dHJ1ZGVkSGVpZ2h0LiAgZXh0cnVkZWRIZWlnaHRSZWZlcmVuY2Ugd2lsbCBiZSBpZ25vcmVkIjtSaD1lZH0pO2Z1bmN0aW9uIEV2KG4sZSl7bGV0IHQ9bmV3IEFycmF5KG4ubGVuZ3RoKTtmb3IobGV0IG89MDtvPG4ubGVuZ3RoO28rKyl7bGV0IGE9bltvXTtUMD1lLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGEsVDApLHRbb109VDAuaGVpZ2h0LG5bb109ZS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGEsYSl9cmV0dXJuIHR9ZnVuY3Rpb24gRTAobixlLHQsbyl7bGV0IGE9blswXSxyPW5bMV0saT1zLmFuZ2xlQmV0d2VlbihhLHIpLGY9TWF0aC5jZWlsKGkvbyksZD1uZXcgQXJyYXkoZiksYztpZihlPT09dCl7Zm9yKGM9MDtjPGY7YysrKWRbY109ZTtyZXR1cm4gZC5wdXNoKHQpLGR9bGV0IGw9KHQtZSkvZjtmb3IoYz0xO2M8ZjtjKyspe2xldCBoPWUrYypsO2RbY109aH1yZXR1cm4gZFswXT1lLGQucHVzaCh0KSxkfWZ1bmN0aW9uIFJ2KG4sZSx0LG8pe2xldCBhPW5ldyBBbyh0LG8pLHI9YS5wcm9qZWN0UG9pbnRPbnRvUGxhbmUocy5hZGQodCxuLE9oKSxPaCksaT1hLnByb2plY3RQb2ludE9udG9QbGFuZShzLmFkZCh0LGUsU2gpLFNoKSxmPVkuYW5nbGVCZXR3ZWVuKHIsaSk7cmV0dXJuIGkueCpyLnktaS55KnIueD49MD8tZjpmfWZ1bmN0aW9uIEhyKG4sZSx0LG8sYSxyLGksZil7bGV0IGQ9Q3YsYz1NdjtBYz1vby5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZShuLGEsQWMpLGQ9JC5tdWx0aXBseUJ5UG9pbnRBc1ZlY3RvcihBYyx4dixkKSxkPXMubm9ybWFsaXplKGQsZCk7bGV0IHU9UnYoZCxlLG4sYSk7UjA9Si5mcm9tUm90YXRpb25aKHUsUjApLGU4Lno9cixBYz0kLm11bHRpcGx5VHJhbnNmb3JtYXRpb24oQWMsJC5mcm9tUm90YXRpb25UcmFuc2xhdGlvbihSMCxlOCxPdiksQWMpO2xldCBsPVN2O2xbMF09aTtmb3IobGV0IGg9MDtoPGY7aCsrKWZvcihsZXQgbT0wO208dC5sZW5ndGg7bSs9MyljPXMuZnJvbUFycmF5KHQsbSxjKSxjPUoubXVsdGlwbHlCeVZlY3RvcihsLGMsYyksYz0kLm11bHRpcGx5QnlQb2ludChBYyxjLGMpLG8ucHVzaChjLngsYy55LGMueik7cmV0dXJuIG99ZnVuY3Rpb24geDAobixlLHQsbyxhLHIsaSl7Zm9yKGxldCBmPTA7ZjxuLmxlbmd0aDtmKz0zKXtsZXQgZD1zLmZyb21BcnJheShuLGYsTnYpO289SHIoZCxlLHQsbyxhLHJbZi8zXSxpLDEpfXJldHVybiBvfWZ1bmN0aW9uIEl2KG4sZSl7bGV0IHQ9bi5sZW5ndGgsbz1uZXcgQXJyYXkodCo2KSxhPTAscj1lLngrZS53aWR0aC8yLGk9ZS55K2UuaGVpZ2h0LzIsZj1uWzBdO29bYSsrXT1mLngtcixvW2ErK109MCxvW2ErK109Zi55LWk7Zm9yKGxldCBkPTE7ZDx0O2QrKyl7Zj1uW2RdO2xldCBjPWYueC1yLHU9Zi55LWk7b1thKytdPWMsb1thKytdPTAsb1thKytdPXUsb1thKytdPWMsb1thKytdPTAsb1thKytdPXV9cmV0dXJuIGY9blswXSxvW2ErK109Zi54LXIsb1thKytdPTAsb1thKytdPWYueS1pLG99ZnVuY3Rpb24gdDgobixlKXtsZXQgdD1uLmxlbmd0aCxvPW5ldyBBcnJheSh0KjMpLGE9MCxyPWUueCtlLndpZHRoLzIsaT1lLnkrZS5oZWlnaHQvMjtmb3IobGV0IGY9MDtmPHQ7ZisrKW9bYSsrXT1uW2ZdLngtcixvW2ErK109MCxvW2ErK109bltmXS55LWk7cmV0dXJuIG99ZnVuY3Rpb24gcjgobixlLHQsbyxhLHIsaSxmLGQsYyl7bGV0IHU9cy5hbmdsZUJldHdlZW4ocy5zdWJ0cmFjdChlLG4sVHMpLHMuc3VidHJhY3QodCxuLHhoKSksbD1vPT09c24uQkVWRUxFRD8wOk1hdGguY2VpbCh1L2sudG9SYWRpYW5zKDUpKSxoO2E/aD1KLmZyb21RdWF0ZXJuaW9uKFllLmZyb21BeGlzQW5nbGUocy5uZWdhdGUobixUcyksdS8obCsxKSxuOCksYTgpOmg9Si5mcm9tUXVhdGVybmlvbihZZS5mcm9tQXhpc0FuZ2xlKG4sdS8obCsxKSxuOCksYTgpO2xldCBtLGI7aWYoZT1zLmNsb25lKGUsbzgpLGw+MCl7bGV0IHA9Yz8yOjE7Zm9yKGxldCB5PTA7eTxsO3krKyllPUoubXVsdGlwbHlCeVZlY3RvcihoLGUsZSksbT1zLnN1YnRyYWN0KGUsbixUcyksbT1zLm5vcm1hbGl6ZShtLG0pLGF8fChtPXMubmVnYXRlKG0sbSkpLGI9ci5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGUseGgpLGk9SHIoYixtLGYsaSxyLGQsMSxwKX1lbHNlIG09cy5zdWJ0cmFjdChlLG4sVHMpLG09cy5ub3JtYWxpemUobSxtKSxhfHwobT1zLm5lZ2F0ZShtLG0pKSxiPXIuc2NhbGVUb0dlb2RldGljU3VyZmFjZShlLHhoKSxpPUhyKGIsbSxmLGkscixkLDEsMSksdD1zLmNsb25lKHQsbzgpLG09cy5zdWJ0cmFjdCh0LG4sVHMpLG09cy5ub3JtYWxpemUobSxtKSxhfHwobT1zLm5lZ2F0ZShtLG0pKSxiPXIuc2NhbGVUb0dlb2RldGljU3VyZmFjZSh0LHhoKSxpPUhyKGIsbSxmLGkscixkLDEsMSk7cmV0dXJuIGl9dmFyIG1vLG12LGJ2LHB2LGd2LF92LHl2LEF2LHd2LFR2LFRzLHhoLHRkLFQwLE9oLFNoLHh2LEFjLE92LFIwLFN2LEN2LE12LGU4LE52LG44LG84LGE4LFB2LGt2LHhpLENoPVgoKCk9Pnt2dCgpO01lKCk7YmEoKTtndCgpO3ljKCk7cHMoKTtVZSgpO0luKCk7dW4oKTt3cygpO1dvKCk7cnIoKTt3MCgpO21vPVtuZXcgcyxuZXcgc10sbXY9bmV3IHMsYnY9bmV3IHMscHY9bmV3IHMsZ3Y9bmV3IHMsX3Y9bmV3IHMseXY9bmV3IHMsQXY9bmV3IHMsd3Y9bmV3IHMsVHY9bmV3IHMsVHM9bmV3IHMseGg9bmV3IHMsdGQ9e30sVDA9bmV3IHJlO09oPW5ldyBzLFNoPW5ldyBzO3h2PW5ldyBzKC0xLDAsMCksQWM9bmV3ICQsT3Y9bmV3ICQsUjA9bmV3IEosU3Y9Si5JREVOVElUWS5jbG9uZSgpLEN2PW5ldyBzLE12PW5ldyBydCxlOD1uZXcgcztOdj1uZXcgcztuOD1uZXcgWWUsbzg9bmV3IHMsYTg9bmV3IEo7dGQucmVtb3ZlRHVwbGljYXRlc0Zyb21TaGFwZT1mdW5jdGlvbihuKXtsZXQgZT1uLmxlbmd0aCx0PVtdO2ZvcihsZXQgbz1lLTEsYT0wO2E8ZTtvPWErKyl7bGV0IHI9bltvXSxpPW5bYV07WS5lcXVhbHMocixpKXx8dC5wdXNoKGkpfXJldHVybiB0fTt0ZC5hbmdsZUlzR3JlYXRlclRoYW5QaT1mdW5jdGlvbihuLGUsdCxvKXtsZXQgYT1uZXcgQW8odCxvKSxyPWEucHJvamVjdFBvaW50T250b1BsYW5lKHMuYWRkKHQsbixPaCksT2gpLGk9YS5wcm9qZWN0UG9pbnRPbnRvUGxhbmUocy5hZGQodCxlLFNoKSxTaCk7cmV0dXJuIGkueCpyLnktaS55KnIueD49MH07UHY9bmV3IHMsa3Y9bmV3IHM7dGQuY29tcHV0ZVBvc2l0aW9ucz1mdW5jdGlvbihuLGUsdCxvLGEpe2xldCByPW8uX2VsbGlwc29pZCxpPUV2KG4sciksZj1vLl9ncmFudWxhcml0eSxkPW8uX2Nvcm5lclR5cGUsYz1hP0l2KGUsdCk6dDgoZSx0KSx1PWE/dDgoZSx0KTp2b2lkIDAsbD10LmhlaWdodC8yLGg9dC53aWR0aC8yLG09bi5sZW5ndGgsYj1bXSxwPWE/W106dm9pZCAwLHk9bXYsRT1idixnPXB2LEE9Z3YsVD1fdixSPXl2LFM9QXYsTT13dixJPVR2LE49blswXSxQPW5bMV07QT1yLmdlb2RldGljU3VyZmFjZU5vcm1hbChOLEEpLHk9cy5zdWJ0cmFjdChQLE4seSkseT1zLm5vcm1hbGl6ZSh5LHkpLE09cy5jcm9zcyhBLHksTSksTT1zLm5vcm1hbGl6ZShNLE0pO2xldCBGPWlbMF0sdz1pWzFdO2EmJihwPUhyKE4sTSx1LHAscixGK2wsMSwxKSksST1zLmNsb25lKE4sSSksTj1QLEU9cy5uZWdhdGUoeSxFKTtsZXQgeCxDO2ZvcihsZXQgej0xO3o8bS0xO3orKyl7bGV0IEQ9YT8yOjE7aWYoUD1uW3orMV0sTi5lcXVhbHMoUCkpe1JoKCJQb3NpdGlvbnMgYXJlIHRvbyBjbG9zZSBhbmQgYXJlIGNvbnNpZGVyZWQgZXF1aXZhbGVudCB3aXRoIHJvdW5kaW5nIGVycm9yLiIpO2NvbnRpbnVlfXk9cy5zdWJ0cmFjdChQLE4seSkseT1zLm5vcm1hbGl6ZSh5LHkpLEE9ci5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoTixBKTtsZXQgRz1zLm11bHRpcGx5QnlTY2FsYXIoQSxzLmRvdCh5LEEpLFB2KTtzLnN1YnRyYWN0KHksRyxHKSxzLm5vcm1hbGl6ZShHLEcpO2xldCBWPXMubXVsdGlwbHlCeVNjYWxhcihBLHMuZG90KEUsQSksa3YpO2lmKHMuc3VidHJhY3QoRSxWLFYpLHMubm9ybWFsaXplKFYsViksIWsuZXF1YWxzRXBzaWxvbihNYXRoLmFicyhzLmRvdChHLFYpKSwxLGsuRVBTSUxPTjcpKXtnPXMuYWRkKHksRSxnKSxnPXMubm9ybWFsaXplKGcsZyksZz1zLmNyb3NzKGcsQSxnKSxnPXMuY3Jvc3MoQSxnLGcpLGc9cy5ub3JtYWxpemUoZyxnKTtsZXQgWj0xL01hdGgubWF4KC4yNSxzLm1hZ25pdHVkZShzLmNyb3NzKGcsRSxUcykpKSxhZT10ZC5hbmdsZUlzR3JlYXRlclRoYW5QaSh5LEUsTixyKTthZT8oVD1zLmFkZChOLHMubXVsdGlwbHlCeVNjYWxhcihnLFoqaCxnKSxUKSxSPXMuYWRkKFQscy5tdWx0aXBseUJ5U2NhbGFyKE0saCxSKSxSKSxtb1swXT1zLmNsb25lKEksbW9bMF0pLG1vWzFdPXMuY2xvbmUoUixtb1sxXSkseD1FMChtbyxGK2wsdytsLGYpLEM9Ym4uZ2VuZXJhdGVBcmMoe3Bvc2l0aW9uczptbyxncmFudWxhcml0eTpmLGVsbGlwc29pZDpyfSksYj14MChDLE0sYyxiLHIseCwxKSxNPXMuY3Jvc3MoQSx5LE0pLE09cy5ub3JtYWxpemUoTSxNKSxTPXMuYWRkKFQscy5tdWx0aXBseUJ5U2NhbGFyKE0saCxTKSxTKSxkPT09c24uUk9VTkRFRHx8ZD09PXNuLkJFVkVMRUQ/cjgoVCxSLFMsZCxhZSxyLGIsYyx3K2wsYSk6KGc9cy5uZWdhdGUoZyxnKSxiPUhyKE4sZyxjLGIscix3K2wsWixEKSksST1zLmNsb25lKFMsSSkpOihUPXMuYWRkKE4scy5tdWx0aXBseUJ5U2NhbGFyKGcsWipoLGcpLFQpLFI9cy5hZGQoVCxzLm11bHRpcGx5QnlTY2FsYXIoTSwtaCxSKSxSKSxtb1swXT1zLmNsb25lKEksbW9bMF0pLG1vWzFdPXMuY2xvbmUoUixtb1sxXSkseD1FMChtbyxGK2wsdytsLGYpLEM9Ym4uZ2VuZXJhdGVBcmMoe3Bvc2l0aW9uczptbyxncmFudWxhcml0eTpmLGVsbGlwc29pZDpyfSksYj14MChDLE0sYyxiLHIseCwxKSxNPXMuY3Jvc3MoQSx5LE0pLE09cy5ub3JtYWxpemUoTSxNKSxTPXMuYWRkKFQscy5tdWx0aXBseUJ5U2NhbGFyKE0sLWgsUyksUyksZD09PXNuLlJPVU5ERUR8fGQ9PT1zbi5CRVZFTEVEP3I4KFQsUixTLGQsYWUscixiLGMsdytsLGEpOmI9SHIoTixnLGMsYixyLHcrbCxaLEQpLEk9cy5jbG9uZShTLEkpKSxFPXMubmVnYXRlKHksRSl9ZWxzZSBiPUhyKEksTSxjLGIscixGK2wsMSwxKSxJPU47Rj13LHc9aVt6KzFdLE49UH1tb1swXT1zLmNsb25lKEksbW9bMF0pLG1vWzFdPXMuY2xvbmUoTixtb1sxXSkseD1FMChtbyxGK2wsdytsLGYpLEM9Ym4uZ2VuZXJhdGVBcmMoe3Bvc2l0aW9uczptbyxncmFudWxhcml0eTpmLGVsbGlwc29pZDpyfSksYj14MChDLE0sYyxiLHIseCwxKSxhJiYocD1IcihOLE0sdSxwLHIsdytsLDEsMSkpLG09Yi5sZW5ndGg7bGV0IHY9YT9tK3AubGVuZ3RoOm0saj1uZXcgRmxvYXQ2NEFycmF5KHYpO3JldHVybiBqLnNldChiKSxhJiZqLnNldChwLG0pLGp9O3hpPXRkfSk7ZnVuY3Rpb24gTWgobixlLHQsbyxhKXtsZXQgcj1zLmFuZ2xlQmV0d2VlbihzLnN1YnRyYWN0KGUsbixFcykscy5zdWJ0cmFjdCh0LG4sZDgpKSxpPW89PT1zbi5CRVZFTEVEPzE6TWF0aC5jZWlsKHIvay50b1JhZGlhbnMoNSkpKzEsZj1pKjMsZD1uZXcgQXJyYXkoZik7ZFtmLTNdPXQueCxkW2YtMl09dC55LGRbZi0xXT10Lno7bGV0IGM7YT9jPUouZnJvbVF1YXRlcm5pb24oWWUuZnJvbUF4aXNBbmdsZShzLm5lZ2F0ZShuLEVzKSxyL2ksYzgpLHM4KTpjPUouZnJvbVF1YXRlcm5pb24oWWUuZnJvbUF4aXNBbmdsZShuLHIvaSxjOCksczgpO2xldCB1PTA7ZT1zLmNsb25lKGUsRXMpO2ZvcihsZXQgbD0wO2w8aTtsKyspZT1KLm11bHRpcGx5QnlWZWN0b3IoYyxlLGUpLGRbdSsrXT1lLngsZFt1KytdPWUueSxkW3UrK109ZS56O3JldHVybiBkfWZ1bmN0aW9uIEd2KG4pe2xldCBlPXU4LHQ9bDgsbz1oOCxhPW5bMV07dD1zLmZyb21BcnJheShuWzFdLGEubGVuZ3RoLTMsdCksbz1zLmZyb21BcnJheShuWzBdLDAsbyksZT1zLm1pZHBvaW50KHQsbyxlKTtsZXQgcj1NaChlLHQsbyxzbi5ST1VOREVELCExKSxpPW4ubGVuZ3RoLTEsZj1uW2ktMV07YT1uW2ldLHQ9cy5mcm9tQXJyYXkoZixmLmxlbmd0aC0zLHQpLG89cy5mcm9tQXJyYXkoYSwwLG8pLGU9cy5taWRwb2ludCh0LG8sZSk7bGV0IGQ9TWgoZSx0LG8sc24uUk9VTkRFRCwhMSk7cmV0dXJuW3IsZF19ZnVuY3Rpb24gZjgobixlLHQsbyl7bGV0IGE9RXM7cmV0dXJuIG8/YT1zLmFkZChuLGUsYSk6KGU9cy5uZWdhdGUoZSxlKSxhPXMuYWRkKG4sZSxhKSksW2EueCxhLnksYS56LHQueCx0LnksdC56XX1mdW5jdGlvbiBPMChuLGUsdCxvKXtsZXQgYT1uZXcgQXJyYXkobi5sZW5ndGgpLHI9bmV3IEFycmF5KG4ubGVuZ3RoKSxpPXMubXVsdGlwbHlCeVNjYWxhcihlLHQsRXMpLGY9cy5uZWdhdGUoaSxkOCksZD0wLGM9bi5sZW5ndGgtMTtmb3IobGV0IHU9MDt1PG4ubGVuZ3RoO3UrPTMpe2xldCBsPXMuZnJvbUFycmF5KG4sdSx2diksaD1zLmFkZChsLGYsaTgpO2FbZCsrXT1oLngsYVtkKytdPWgueSxhW2QrK109aC56O2xldCBtPXMuYWRkKGwsaSxpOCk7cltjLS1dPW0ueixyW2MtLV09bS55LHJbYy0tXT1tLnh9cmV0dXJuIG8ucHVzaChhLHIpLG99dmFyIFMwLEVzLGQ4LHZ2LGk4LExvLHU4LGw4LGg4LEZ2LER2LEJ2LGp2LFV2LEx2LHp2LGM4LHM4LFZ2LEh2LEt0LEMwPVgoKCk9PntNZSgpO3ljKCk7c2UoKTtVZSgpO0luKCk7d3MoKTtDaCgpO1dvKCk7UzA9e30sRXM9bmV3IHMsZDg9bmV3IHMsdnY9bmV3IHMsaTg9bmV3IHMsTG89W25ldyBzLG5ldyBzXSx1OD1uZXcgcyxsOD1uZXcgcyxoOD1uZXcgcyxGdj1uZXcgcyxEdj1uZXcgcyxCdj1uZXcgcyxqdj1uZXcgcyxVdj1uZXcgcyxMdj1uZXcgcyx6dj1uZXcgcyxjOD1uZXcgWWUsczg9bmV3IEo7UzAuYWRkQXR0cmlidXRlPWZ1bmN0aW9uKG4sZSx0LG8pe2xldCBhPWUueCxyPWUueSxpPWUuejtfKHQpJiYoblt0XT1hLG5bdCsxXT1yLG5bdCsyXT1pKSxfKG8pJiYobltvXT1pLG5bby0xXT1yLG5bby0yXT1hKX07VnY9bmV3IHMsSHY9bmV3IHM7UzAuY29tcHV0ZVBvc2l0aW9ucz1mdW5jdGlvbihuKXtsZXQgZT1uLmdyYW51bGFyaXR5LHQ9bi5wb3NpdGlvbnMsbz1uLmVsbGlwc29pZCxhPW4ud2lkdGgvMixyPW4uY29ybmVyVHlwZSxpPW4uc2F2ZUF0dHJpYnV0ZXMsZj11OCxkPWw4LGM9aDgsdT1GdixsPUR2LGg9QnYsbT1qdixiPVV2LHA9THYseT16dixFPVtdLGc9aT9bXTp2b2lkIDAsQT1pP1tdOnZvaWQgMCxUPXRbMF0sUj10WzFdO2Q9cy5ub3JtYWxpemUocy5zdWJ0cmFjdChSLFQsZCksZCksZj1vLmdlb2RldGljU3VyZmFjZU5vcm1hbChULGYpLHU9cy5ub3JtYWxpemUocy5jcm9zcyhmLGQsdSksdSksaSYmKGcucHVzaCh1LngsdS55LHUueiksQS5wdXNoKGYueCxmLnksZi56KSksbT1zLmNsb25lKFQsbSksVD1SLGM9cy5uZWdhdGUoZCxjKTtsZXQgUyxNPVtdLEksTj10Lmxlbmd0aDtmb3IoST0xO0k8Ti0xO0krKyl7Zj1vLmdlb2RldGljU3VyZmFjZU5vcm1hbChULGYpLFI9dFtJKzFdLGQ9cy5ub3JtYWxpemUocy5zdWJ0cmFjdChSLFQsZCksZCk7bGV0IEY9cy5tdWx0aXBseUJ5U2NhbGFyKGYscy5kb3QoZCxmKSxWdik7cy5zdWJ0cmFjdChkLEYsRikscy5ub3JtYWxpemUoRixGKTtsZXQgdz1zLm11bHRpcGx5QnlTY2FsYXIoZixzLmRvdChjLGYpLEh2KTtpZihzLnN1YnRyYWN0KGMsdyx3KSxzLm5vcm1hbGl6ZSh3LHcpLCFrLmVxdWFsc0Vwc2lsb24oTWF0aC5hYnMocy5kb3QoRix3KSksMSxrLkVQU0lMT043KSl7bD1zLm5vcm1hbGl6ZShzLmFkZChkLGMsbCksbCksbD1zLmNyb3NzKGwsZixsKSxsPXMuY3Jvc3MoZixsLGwpLGw9cy5ub3JtYWxpemUobCxsKTtsZXQgQz1hL01hdGgubWF4KC4yNSxzLm1hZ25pdHVkZShzLmNyb3NzKGwsYyxFcykpKSx2PXhpLmFuZ2xlSXNHcmVhdGVyVGhhblBpKGQsYyxULG8pO2w9cy5tdWx0aXBseUJ5U2NhbGFyKGwsQyxsKSx2PyhiPXMuYWRkKFQsbCxiKSx5PXMuYWRkKGIscy5tdWx0aXBseUJ5U2NhbGFyKHUsYSx5KSx5KSxwPXMuYWRkKGIscy5tdWx0aXBseUJ5U2NhbGFyKHUsYSoyLHApLHApLExvWzBdPXMuY2xvbmUobSxMb1swXSksTG9bMV09cy5jbG9uZSh5LExvWzFdKSxTPWJuLmdlbmVyYXRlQXJjKHtwb3NpdGlvbnM6TG8sZ3JhbnVsYXJpdHk6ZSxlbGxpcHNvaWQ6b30pLEU9TzAoUyx1LGEsRSksaSYmKGcucHVzaCh1LngsdS55LHUueiksQS5wdXNoKGYueCxmLnksZi56KSksaD1zLmNsb25lKHAsaCksdT1zLm5vcm1hbGl6ZShzLmNyb3NzKGYsZCx1KSx1KSxwPXMuYWRkKGIscy5tdWx0aXBseUJ5U2NhbGFyKHUsYSoyLHApLHApLG09cy5hZGQoYixzLm11bHRpcGx5QnlTY2FsYXIodSxhLG0pLG0pLHI9PT1zbi5ST1VOREVEfHxyPT09c24uQkVWRUxFRD9NLnB1c2goe2xlZnRQb3NpdGlvbnM6TWgoYixoLHAscix2KX0pOk0ucHVzaCh7bGVmdFBvc2l0aW9uczpmOChULHMubmVnYXRlKGwsbCkscCx2KX0pKToocD1zLmFkZChULGwscCkseT1zLmFkZChwLHMubmVnYXRlKHMubXVsdGlwbHlCeVNjYWxhcih1LGEseSkseSkseSksYj1zLmFkZChwLHMubmVnYXRlKHMubXVsdGlwbHlCeVNjYWxhcih1LGEqMixiKSxiKSxiKSxMb1swXT1zLmNsb25lKG0sTG9bMF0pLExvWzFdPXMuY2xvbmUoeSxMb1sxXSksUz1ibi5nZW5lcmF0ZUFyYyh7cG9zaXRpb25zOkxvLGdyYW51bGFyaXR5OmUsZWxsaXBzb2lkOm99KSxFPU8wKFMsdSxhLEUpLGkmJihnLnB1c2godS54LHUueSx1LnopLEEucHVzaChmLngsZi55LGYueikpLGg9cy5jbG9uZShiLGgpLHU9cy5ub3JtYWxpemUocy5jcm9zcyhmLGQsdSksdSksYj1zLmFkZChwLHMubmVnYXRlKHMubXVsdGlwbHlCeVNjYWxhcih1LGEqMixiKSxiKSxiKSxtPXMuYWRkKHAscy5uZWdhdGUocy5tdWx0aXBseUJ5U2NhbGFyKHUsYSxtKSxtKSxtKSxyPT09c24uUk9VTkRFRHx8cj09PXNuLkJFVkVMRUQ/TS5wdXNoKHtyaWdodFBvc2l0aW9uczpNaChwLGgsYixyLHYpfSk6TS5wdXNoKHtyaWdodFBvc2l0aW9uczpmOChULGwsYix2KX0pKSxjPXMubmVnYXRlKGQsYyl9VD1SfWY9by5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoVCxmKSxMb1swXT1zLmNsb25lKG0sTG9bMF0pLExvWzFdPXMuY2xvbmUoVCxMb1sxXSksUz1ibi5nZW5lcmF0ZUFyYyh7cG9zaXRpb25zOkxvLGdyYW51bGFyaXR5OmUsZWxsaXBzb2lkOm99KSxFPU8wKFMsdSxhLEUpLGkmJihnLnB1c2godS54LHUueSx1LnopLEEucHVzaChmLngsZi55LGYueikpO2xldCBQO3JldHVybiByPT09c24uUk9VTkRFRCYmKFA9R3YoRSkpLHtwb3NpdGlvbnM6RSxjb3JuZXJzOk0sbGVmdHM6Zyxub3JtYWxzOkEsZW5kUG9zaXRpb25zOlB9fTtLdD1TMH0pO2Z1bmN0aW9uIHk4KG4sZSl7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kyspblt0XT1lLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2Uoblt0XSxuW3RdKTtyZXR1cm4gbn1mdW5jdGlvbiBYYShuLGUsdCxvLGEscil7bGV0IGk9bi5ub3JtYWxzLGY9bi50YW5nZW50cyxkPW4uYml0YW5nZW50cyxjPXMubm9ybWFsaXplKHMuY3Jvc3ModCxlLE9pKSxPaSk7ci5ub3JtYWwmJkt0LmFkZEF0dHJpYnV0ZShpLGUsbyxhKSxyLnRhbmdlbnQmJkt0LmFkZEF0dHJpYnV0ZShmLGMsbyxhKSxyLmJpdGFuZ2VudCYmS3QuYWRkQXR0cmlidXRlKGQsdCxvLGEpfWZ1bmN0aW9uIEE4KG4sZSx0KXtsZXQgbz1uLnBvc2l0aW9ucyxhPW4uY29ybmVycyxyPW4uZW5kUG9zaXRpb25zLGk9bi5sZWZ0cyxmPW4ubm9ybWFscyxkPW5ldyBRZSxjLHU9MCxsPTAsaCxtPTAsYjtmb3IoaD0wO2g8by5sZW5ndGg7aCs9MiliPW9baF0ubGVuZ3RoLTMsdSs9YixtKz1iKjIsbCs9b1toKzFdLmxlbmd0aC0zO2Zvcih1Kz0zLGwrPTMsaD0wO2g8YS5sZW5ndGg7aCsrKXtjPWFbaF07bGV0IHRlPWFbaF0ubGVmdFBvc2l0aW9ucztfKHRlKT8oYj10ZS5sZW5ndGgsdSs9YixtKz1iKTooYj1hW2hdLnJpZ2h0UG9zaXRpb25zLmxlbmd0aCxsKz1iLG0rPWIpfWxldCBwPV8ocikseTtwJiYoeT1yWzBdLmxlbmd0aC0zLHUrPXksbCs9eSx5Lz0zLG0rPXkqNik7bGV0IEU9dStsLGc9bmV3IEZsb2F0NjRBcnJheShFKSxBPWUubm9ybWFsP25ldyBGbG9hdDMyQXJyYXkoRSk6dm9pZCAwLFQ9ZS50YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoRSk6dm9pZCAwLFI9ZS5iaXRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShFKTp2b2lkIDAsUz17bm9ybWFsczpBLHRhbmdlbnRzOlQsYml0YW5nZW50czpSfSxNPTAsST1FLTEsTixQLEYsdyx4PXA4LEM9ZzgsdixqLHo9eS8yLEQ9SWUuY3JlYXRlVHlwZWRBcnJheShFLzMsbSksRz0wO2lmKHApe2o9Tmgsdj1JaDtsZXQgdGU9clswXTtmb3IoeD1zLmZyb21BcnJheShmLDAseCksQz1zLmZyb21BcnJheShpLDAsQyksaD0wO2g8ejtoKyspaj1zLmZyb21BcnJheSh0ZSwoei0xLWgpKjMsaiksdj1zLmZyb21BcnJheSh0ZSwoeitoKSozLHYpLEt0LmFkZEF0dHJpYnV0ZShnLHYsTSksS3QuYWRkQXR0cmlidXRlKGcsaix2b2lkIDAsSSksWGEoUyx4LEMsTSxJLGUpLFA9TS8zLHc9UCsxLE49KEktMikvMyxGPU4tMSxEW0crK109TixEW0crK109UCxEW0crK109RixEW0crK109RixEW0crK109UCxEW0crK109dyxNKz0zLEktPTN9bGV0IFY9MCxPPTAsWj1vW1YrK10sYWU9b1tWKytdO2cuc2V0KFosTSksZy5zZXQoYWUsSS1hZS5sZW5ndGgrMSksQz1zLmZyb21BcnJheShpLE8sQyk7bGV0IGNlLGZlO2ZvcihiPWFlLmxlbmd0aC0zLGg9MDtoPGI7aCs9MyljZT10Lmdlb2RldGljU3VyZmFjZU5vcm1hbChzLmZyb21BcnJheShaLGgsT2kpLE9pKSxmZT10Lmdlb2RldGljU3VyZmFjZU5vcm1hbChzLmZyb21BcnJheShhZSxiLWgsUnMpLFJzKSx4PXMubm9ybWFsaXplKHMuYWRkKGNlLGZlLHgpLHgpLFhhKFMseCxDLE0sSSxlKSxQPU0vMyx3PVArMSxOPShJLTIpLzMsRj1OLTEsRFtHKytdPU4sRFtHKytdPVAsRFtHKytdPUYsRFtHKytdPUYsRFtHKytdPVAsRFtHKytdPXcsTSs9MyxJLT0zO2ZvcihjZT10Lmdlb2RldGljU3VyZmFjZU5vcm1hbChzLmZyb21BcnJheShaLGIsT2kpLE9pKSxmZT10Lmdlb2RldGljU3VyZmFjZU5vcm1hbChzLmZyb21BcnJheShhZSxiLFJzKSxScykseD1zLm5vcm1hbGl6ZShzLmFkZChjZSxmZSx4KSx4KSxPKz0zLGg9MDtoPGEubGVuZ3RoO2grKyl7bGV0IHRlO2M9YVtoXTtsZXQgbWU9Yy5sZWZ0UG9zaXRpb25zLHVlPWMucmlnaHRQb3NpdGlvbnMsYmUsaGUsUT1fOCxUZT1OaCxDZT1JaDtpZih4PXMuZnJvbUFycmF5KGYsTyx4KSxfKG1lKSl7Zm9yKFhhKFMseCxDLHZvaWQgMCxJLGUpLEktPTMsYmU9dyxoZT1GLHRlPTA7dGU8bWUubGVuZ3RoLzM7dGUrKylRPXMuZnJvbUFycmF5KG1lLHRlKjMsUSksRFtHKytdPWJlLERbRysrXT1oZS10ZS0xLERbRysrXT1oZS10ZSxLdC5hZGRBdHRyaWJ1dGUoZyxRLHZvaWQgMCxJKSxUZT1zLmZyb21BcnJheShnLChoZS10ZS0xKSozLFRlKSxDZT1zLmZyb21BcnJheShnLGJlKjMsQ2UpLEM9cy5ub3JtYWxpemUocy5zdWJ0cmFjdChUZSxDZSxDKSxDKSxYYShTLHgsQyx2b2lkIDAsSSxlKSxJLT0zO1E9cy5mcm9tQXJyYXkoZyxiZSozLFEpLFRlPXMuc3VidHJhY3Qocy5mcm9tQXJyYXkoZyxoZSozLFRlKSxRLFRlKSxDZT1zLnN1YnRyYWN0KHMuZnJvbUFycmF5KGcsKGhlLXRlKSozLENlKSxRLENlKSxDPXMubm9ybWFsaXplKHMuYWRkKFRlLENlLEMpLEMpLFhhKFMseCxDLE0sdm9pZCAwLGUpLE0rPTN9ZWxzZXtmb3IoWGEoUyx4LEMsTSx2b2lkIDAsZSksTSs9MyxiZT1GLGhlPXcsdGU9MDt0ZTx1ZS5sZW5ndGgvMzt0ZSsrKVE9cy5mcm9tQXJyYXkodWUsdGUqMyxRKSxEW0crK109YmUsRFtHKytdPWhlK3RlLERbRysrXT1oZSt0ZSsxLEt0LmFkZEF0dHJpYnV0ZShnLFEsTSksVGU9cy5mcm9tQXJyYXkoZyxiZSozLFRlKSxDZT1zLmZyb21BcnJheShnLChoZSt0ZSkqMyxDZSksQz1zLm5vcm1hbGl6ZShzLnN1YnRyYWN0KFRlLENlLEMpLEMpLFhhKFMseCxDLE0sdm9pZCAwLGUpLE0rPTM7UT1zLmZyb21BcnJheShnLGJlKjMsUSksVGU9cy5zdWJ0cmFjdChzLmZyb21BcnJheShnLChoZSt0ZSkqMyxUZSksUSxUZSksQ2U9cy5zdWJ0cmFjdChzLmZyb21BcnJheShnLGhlKjMsQ2UpLFEsQ2UpLEM9cy5ub3JtYWxpemUocy5uZWdhdGUocy5hZGQoQ2UsVGUsQyksQyksQyksWGEoUyx4LEMsdm9pZCAwLEksZSksSS09M31mb3IoWj1vW1YrK10sYWU9b1tWKytdLFouc3BsaWNlKDAsMyksYWUuc3BsaWNlKGFlLmxlbmd0aC0zLDMpLGcuc2V0KFosTSksZy5zZXQoYWUsSS1hZS5sZW5ndGgrMSksYj1hZS5sZW5ndGgtMyxPKz0zLEM9cy5mcm9tQXJyYXkoaSxPLEMpLHRlPTA7dGU8YWUubGVuZ3RoO3RlKz0zKWNlPXQuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHMuZnJvbUFycmF5KFosdGUsT2kpLE9pKSxmZT10Lmdlb2RldGljU3VyZmFjZU5vcm1hbChzLmZyb21BcnJheShhZSxiLXRlLFJzKSxScykseD1zLm5vcm1hbGl6ZShzLmFkZChjZSxmZSx4KSx4KSxYYShTLHgsQyxNLEksZSksdz1NLzMsUD13LTEsRj0oSS0yKS8zLE49RisxLERbRysrXT1OLERbRysrXT1QLERbRysrXT1GLERbRysrXT1GLERbRysrXT1QLERbRysrXT13LE0rPTMsSS09MztNLT0zLEkrPTN9aWYoeD1zLmZyb21BcnJheShmLGYubGVuZ3RoLTMseCksWGEoUyx4LEMsTSxJLGUpLHApe00rPTMsSS09MyxqPU5oLHY9SWg7bGV0IHRlPXJbMV07Zm9yKGg9MDtoPHo7aCsrKWo9cy5mcm9tQXJyYXkodGUsKHktaC0xKSozLGopLHY9cy5mcm9tQXJyYXkodGUsaCozLHYpLEt0LmFkZEF0dHJpYnV0ZShnLGosdm9pZCAwLEkpLEt0LmFkZEF0dHJpYnV0ZShnLHYsTSksWGEoUyx4LEMsTSxJLGUpLHc9TS8zLFA9dy0xLEY9KEktMikvMyxOPUYrMSxEW0crK109TixEW0crK109UCxEW0crK109RixEW0crK109RixEW0crK109UCxEW0crK109dyxNKz0zLEktPTN9aWYoZC5wb3NpdGlvbj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmd9KSxlLnN0KXtsZXQgdGU9bmV3IEZsb2F0MzJBcnJheShFLzMqMiksbWUsdWUsYmU9MDtpZihwKXt1Lz0zLGwvPTM7bGV0IGhlPU1hdGguUEkvKHkrMSk7dWU9MS8odS15KzEpLG1lPTEvKGwteSsxKTtsZXQgUSxUZT15LzI7Zm9yKGg9VGUrMTtoPHkrMTtoKyspUT1rLlBJX09WRVJfVFdPK2hlKmgsdGVbYmUrK109bWUqKDErTWF0aC5jb3MoUSkpLHRlW2JlKytdPS41KigxK01hdGguc2luKFEpKTtmb3IoaD0xO2g8bC15KzE7aCsrKXRlW2JlKytdPWgqbWUsdGVbYmUrK109MDtmb3IoaD15O2g+VGU7aC0tKVE9ay5QSV9PVkVSX1RXTy1oKmhlLHRlW2JlKytdPTEtbWUqKDErTWF0aC5jb3MoUSkpLHRlW2JlKytdPS41KigxK01hdGguc2luKFEpKTtmb3IoaD1UZTtoPjA7aC0tKVE9ay5QSV9PVkVSX1RXTy1oZSpoLHRlW2JlKytdPTEtdWUqKDErTWF0aC5jb3MoUSkpLHRlW2JlKytdPS41KigxK01hdGguc2luKFEpKTtmb3IoaD11LXk7aD4wO2gtLSl0ZVtiZSsrXT1oKnVlLHRlW2JlKytdPTE7Zm9yKGg9MTtoPFRlKzE7aCsrKVE9ay5QSV9PVkVSX1RXTytoZSpoLHRlW2JlKytdPXVlKigxK01hdGguY29zKFEpKSx0ZVtiZSsrXT0uNSooMStNYXRoLnNpbihRKSl9ZWxzZXtmb3IodS89MyxsLz0zLHVlPTEvKHUtMSksbWU9MS8obC0xKSxoPTA7aDxsO2grKyl0ZVtiZSsrXT1oKm1lLHRlW2JlKytdPTA7Zm9yKGg9dTtoPjA7aC0tKXRlW2JlKytdPShoLTEpKnVlLHRlW2JlKytdPTF9ZC5zdD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6dGV9KX1yZXR1cm4gZS5ub3JtYWwmJihkLm5vcm1hbD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Uy5ub3JtYWxzfSkpLGUudGFuZ2VudCYmKGQudGFuZ2VudD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Uy50YW5nZW50c30pKSxlLmJpdGFuZ2VudCYmKGQuYml0YW5nZW50PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpTLmJpdGFuZ2VudHN9KSkse2F0dHJpYnV0ZXM6ZCxpbmRpY2VzOkR9fWZ1bmN0aW9uIHF2KG4sZSl7aWYoIWUubm9ybWFsJiYhZS50YW5nZW50JiYhZS5iaXRhbmdlbnQmJiFlLnN0KXJldHVybiBuO2xldCB0PW4ucG9zaXRpb24udmFsdWVzLG8sYTsoZS5ub3JtYWx8fGUuYml0YW5nZW50KSYmKG89bi5ub3JtYWwudmFsdWVzLGE9bi5iaXRhbmdlbnQudmFsdWVzKTtsZXQgcj1uLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgvMTgsaT1yKjMsZj1yKjIsZD1pKjIsYztpZihlLm5vcm1hbHx8ZS5iaXRhbmdlbnR8fGUudGFuZ2VudCl7bGV0IHU9ZS5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShpKjYpOnZvaWQgMCxsPWUudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGkqNik6dm9pZCAwLGg9ZS5iaXRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShpKjYpOnZvaWQgMCxtPXA4LGI9ZzgscD1OaCx5PUloLEU9S3YsZz1fOCxBPWQ7Zm9yKGM9MDtjPGk7Yys9Myl7bGV0IFQ9QStkO209cy5mcm9tQXJyYXkodCxjLG0pLGI9cy5mcm9tQXJyYXkodCxjK2ksYikscD1zLmZyb21BcnJheSh0LChjKzMpJWkscCksYj1zLnN1YnRyYWN0KGIsbSxiKSxwPXMuc3VidHJhY3QocCxtLHApLHk9cy5ub3JtYWxpemUocy5jcm9zcyhiLHAseSkseSksZS5ub3JtYWwmJihLdC5hZGRBdHRyaWJ1dGUodSx5LFQpLEt0LmFkZEF0dHJpYnV0ZSh1LHksVCszKSxLdC5hZGRBdHRyaWJ1dGUodSx5LEEpLEt0LmFkZEF0dHJpYnV0ZSh1LHksQSszKSksKGUudGFuZ2VudHx8ZS5iaXRhbmdlbnQpJiYoZz1zLmZyb21BcnJheShvLGMsZyksZS5iaXRhbmdlbnQmJihLdC5hZGRBdHRyaWJ1dGUoaCxnLFQpLEt0LmFkZEF0dHJpYnV0ZShoLGcsVCszKSxLdC5hZGRBdHRyaWJ1dGUoaCxnLEEpLEt0LmFkZEF0dHJpYnV0ZShoLGcsQSszKSksZS50YW5nZW50JiYoRT1zLm5vcm1hbGl6ZShzLmNyb3NzKGcseSxFKSxFKSxLdC5hZGRBdHRyaWJ1dGUobCxFLFQpLEt0LmFkZEF0dHJpYnV0ZShsLEUsVCszKSxLdC5hZGRBdHRyaWJ1dGUobCxFLEEpLEt0LmFkZEF0dHJpYnV0ZShsLEUsQSszKSkpLEErPTZ9aWYoZS5ub3JtYWwpe2Zvcih1LnNldChvKSxjPTA7YzxpO2MrPTMpdVtjK2ldPS1vW2NdLHVbYytpKzFdPS1vW2MrMV0sdVtjK2krMl09LW9bYysyXTtuLm5vcm1hbC52YWx1ZXM9dX1lbHNlIG4ubm9ybWFsPXZvaWQgMDtpZihlLmJpdGFuZ2VudD8oaC5zZXQoYSksaC5zZXQoYSxpKSxuLmJpdGFuZ2VudC52YWx1ZXM9aCk6bi5iaXRhbmdlbnQ9dm9pZCAwLGUudGFuZ2VudCl7bGV0IFQ9bi50YW5nZW50LnZhbHVlcztsLnNldChUKSxsLnNldChULGkpLG4udGFuZ2VudC52YWx1ZXM9bH19aWYoZS5zdCl7bGV0IHU9bi5zdC52YWx1ZXMsbD1uZXcgRmxvYXQzMkFycmF5KGYqNik7bC5zZXQodSksbC5zZXQodSxmKTtsZXQgaD1mKjI7Zm9yKGxldCBtPTA7bTwyO20rKyl7Zm9yKGxbaCsrXT11WzBdLGxbaCsrXT11WzFdLGM9MjtjPGY7Yys9Mil7bGV0IGI9dVtjXSxwPXVbYysxXTtsW2grK109YixsW2grK109cCxsW2grK109YixsW2grK109cH1sW2grK109dVswXSxsW2grK109dVsxXX1uLnN0LnZhbHVlcz1sfXJldHVybiBufWZ1bmN0aW9uIE0wKG4sZSx0KXt0W2UrK109blswXSx0W2UrK109blsxXSx0W2UrK109blsyXTtmb3IobGV0IG89MztvPG4ubGVuZ3RoO28rPTMpe2xldCBhPW5bb10scj1uW28rMV0saT1uW28rMl07dFtlKytdPWEsdFtlKytdPXIsdFtlKytdPWksdFtlKytdPWEsdFtlKytdPXIsdFtlKytdPWl9cmV0dXJuIHRbZSsrXT1uWzBdLHRbZSsrXT1uWzFdLHRbZSsrXT1uWzJdLHR9ZnVuY3Rpb24gV3YobixlKXtsZXQgdD1uZXcgbGUoe3Bvc2l0aW9uOmUucG9zaXRpb24sbm9ybWFsOmUubm9ybWFsfHxlLmJpdGFuZ2VudHx8bi5zaGFkb3dWb2x1bWUsdGFuZ2VudDplLnRhbmdlbnQsYml0YW5nZW50OmUubm9ybWFsfHxlLmJpdGFuZ2VudCxzdDplLnN0fSksbz1uLmVsbGlwc29pZCxhPUt0LmNvbXB1dGVQb3NpdGlvbnMobikscj1BOChhLHQsbyksaT1uLmhlaWdodCxmPW4uZXh0cnVkZWRIZWlnaHQsZD1yLmF0dHJpYnV0ZXMsYz1yLmluZGljZXMsdT1kLnBvc2l0aW9uLnZhbHVlcyxsPXUubGVuZ3RoLGg9bmV3IEZsb2F0NjRBcnJheShsKjYpLG09bmV3IEZsb2F0NjRBcnJheShsKTttLnNldCh1KTtsZXQgYj1uZXcgRmxvYXQ2NEFycmF5KGwqNCk7dT13dC5zY2FsZVRvR2VvZGV0aWNIZWlnaHQodSxpLG8pLGI9TTAodSwwLGIpLG09d3Quc2NhbGVUb0dlb2RldGljSGVpZ2h0KG0sZixvKSxiPU0wKG0sbCoyLGIpLGguc2V0KHUpLGguc2V0KG0sbCksaC5zZXQoYixsKjIpLGQucG9zaXRpb24udmFsdWVzPWgsZD1xdihkLGUpO2xldCBwLHk9bC8zO2lmKG4uc2hhZG93Vm9sdW1lKXtsZXQgTj1kLm5vcm1hbC52YWx1ZXM7bD1OLmxlbmd0aDtsZXQgUD1uZXcgRmxvYXQzMkFycmF5KGwqNik7Zm9yKHA9MDtwPGw7cCsrKU5bcF09LU5bcF07UC5zZXQoTixsKSxQPU0wKE4sbCo0LFApLGQuZXh0cnVkZURpcmVjdGlvbj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6UH0pLGUubm9ybWFsfHwoZC5ub3JtYWw9dm9pZCAwKX1pZihfKG4ub2Zmc2V0QXR0cmlidXRlKSl7bGV0IE49bmV3IFVpbnQ4QXJyYXkoeSo2KTtpZihuLm9mZnNldEF0dHJpYnV0ZT09PW90LlRPUClOPU4uZmlsbCgxLDAseSkuZmlsbCgxLHkqMix5KjQpO2Vsc2V7bGV0IFA9bi5vZmZzZXRBdHRyaWJ1dGU9PT1vdC5OT05FPzA6MTtOPU4uZmlsbChQKX1kLmFwcGx5T2Zmc2V0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOk59KX1sZXQgRT1jLmxlbmd0aCxnPXkreSxBPUllLmNyZWF0ZVR5cGVkQXJyYXkoaC5sZW5ndGgvMyxFKjIrZyozKTtBLnNldChjKTtsZXQgVD1FO2ZvcihwPTA7cDxFO3ArPTMpe2xldCBOPWNbcF0sUD1jW3ArMV0sRj1jW3ArMl07QVtUKytdPUYreSxBW1QrK109UCt5LEFbVCsrXT1OK3l9bGV0IFIsUyxNLEk7Zm9yKHA9MDtwPGc7cCs9MilSPXArZyxTPVIrZyxNPVIrMSxJPVMrMSxBW1QrK109UixBW1QrK109UyxBW1QrK109TSxBW1QrK109TSxBW1QrK109UyxBW1QrK109STtyZXR1cm57YXR0cmlidXRlczpkLGluZGljZXM6QX19ZnVuY3Rpb24gYjgobixlLHQsbyxhLHIpe2xldCBpPXMuc3VidHJhY3QoZSxuLG04KTtzLm5vcm1hbGl6ZShpLGkpO2xldCBmPXQuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKG4sbmQpLGQ9cy5jcm9zcyhpLGYsbTgpO3MubXVsdGlwbHlCeVNjYWxhcihkLG8sZCk7bGV0IGM9YS5sYXRpdHVkZSx1PWEubG9uZ2l0dWRlLGw9ci5sYXRpdHVkZSxoPXIubG9uZ2l0dWRlO3MuYWRkKG4sZCxuZCksdC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhuZCxPYSk7bGV0IG09T2EubGF0aXR1ZGUsYj1PYS5sb25naXR1ZGU7Yz1NYXRoLm1pbihjLG0pLHU9TWF0aC5taW4odSxiKSxsPU1hdGgubWF4KGwsbSksaD1NYXRoLm1heChoLGIpLHMuc3VidHJhY3QobixkLG5kKSx0LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG5kLE9hKSxtPU9hLmxhdGl0dWRlLGI9T2EubG9uZ2l0dWRlLGM9TWF0aC5taW4oYyxtKSx1PU1hdGgubWluKHUsYiksbD1NYXRoLm1heChsLG0pLGg9TWF0aC5tYXgoaCxiKSxhLmxhdGl0dWRlPWMsYS5sb25naXR1ZGU9dSxyLmxhdGl0dWRlPWwsci5sb25naXR1ZGU9aH1mdW5jdGlvbiB3OChuLGUsdCxvLGEpe249eTgobixlKTtsZXQgcj14bihuLHMuZXF1YWxzRXBzaWxvbiksaT1yLmxlbmd0aDtpZihpPDJ8fHQ8PTApcmV0dXJuIG5ldyB4ZTtsZXQgZj10Ki41O1FvLmxhdGl0dWRlPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxRby5sb25naXR1ZGU9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLCRvLmxhdGl0dWRlPU51bWJlci5ORUdBVElWRV9JTkZJTklUWSwkby5sb25naXR1ZGU9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2xldCBkLGM7aWYobz09PXNuLlJPVU5ERUQpe2xldCBoPXJbMF07cy5zdWJ0cmFjdChoLHJbMV0seGEpLHMubm9ybWFsaXplKHhhLHhhKSxzLm11bHRpcGx5QnlTY2FsYXIoeGEsZix4YSkscy5hZGQoaCx4YSxvZCksZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhvZCxPYSksZD1PYS5sYXRpdHVkZSxjPU9hLmxvbmdpdHVkZSxRby5sYXRpdHVkZT1NYXRoLm1pbihRby5sYXRpdHVkZSxkKSxRby5sb25naXR1ZGU9TWF0aC5taW4oUW8ubG9uZ2l0dWRlLGMpLCRvLmxhdGl0dWRlPU1hdGgubWF4KCRvLmxhdGl0dWRlLGQpLCRvLmxvbmdpdHVkZT1NYXRoLm1heCgkby5sb25naXR1ZGUsYyl9Zm9yKGxldCBoPTA7aDxpLTE7KytoKWI4KHJbaF0scltoKzFdLGUsZixRbywkbyk7bGV0IHU9cltpLTFdO3Muc3VidHJhY3QodSxyW2ktMl0seGEpLHMubm9ybWFsaXplKHhhLHhhKSxzLm11bHRpcGx5QnlTY2FsYXIoeGEsZix4YSkscy5hZGQodSx4YSxvZCksYjgodSxvZCxlLGYsUW8sJG8pLG89PT1zbi5ST1VOREVEJiYoZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhvZCxPYSksZD1PYS5sYXRpdHVkZSxjPU9hLmxvbmdpdHVkZSxRby5sYXRpdHVkZT1NYXRoLm1pbihRby5sYXRpdHVkZSxkKSxRby5sb25naXR1ZGU9TWF0aC5taW4oUW8ubG9uZ2l0dWRlLGMpLCRvLmxhdGl0dWRlPU1hdGgubWF4KCRvLmxhdGl0dWRlLGQpLCRvLmxvbmdpdHVkZT1NYXRoLm1heCgkby5sb25naXR1ZGUsYykpO2xldCBsPV8oYSk/YTpuZXcgeGU7cmV0dXJuIGwubm9ydGg9JG8ubGF0aXR1ZGUsbC5zb3V0aD1Rby5sYXRpdHVkZSxsLmVhc3Q9JG8ubG9uZ2l0dWRlLGwud2VzdD1Rby5sb25naXR1ZGUsbH1mdW5jdGlvbiBxcihuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLnBvc2l0aW9ucyx0PW4ud2lkdGgsbz1uLmhlaWdodD8/MCxhPW4uZXh0cnVkZWRIZWlnaHQ/P287dGhpcy5fcG9zaXRpb25zPWUsdGhpcy5fZWxsaXBzb2lkPUsuY2xvbmUobi5lbGxpcHNvaWQ/P0suZGVmYXVsdCksdGhpcy5fdmVydGV4Rm9ybWF0PWxlLmNsb25lKG4udmVydGV4Rm9ybWF0Pz9sZS5ERUZBVUxUKSx0aGlzLl93aWR0aD10LHRoaXMuX2hlaWdodD1NYXRoLm1heChvLGEpLHRoaXMuX2V4dHJ1ZGVkSGVpZ2h0PU1hdGgubWluKG8sYSksdGhpcy5fY29ybmVyVHlwZT1uLmNvcm5lclR5cGU/P3NuLlJPVU5ERUQsdGhpcy5fZ3JhbnVsYXJpdHk9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUsdGhpcy5fc2hhZG93Vm9sdW1lPW4uc2hhZG93Vm9sdW1lPz8hMSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVDb3JyaWRvckdlb21ldHJ5Iix0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9bi5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fcmVjdGFuZ2xlPXZvaWQgMCx0aGlzLnBhY2tlZExlbmd0aD0xK2UubGVuZ3RoKnMucGFja2VkTGVuZ3RoK0sucGFja2VkTGVuZ3RoK2xlLnBhY2tlZExlbmd0aCs3fXZhciBwOCxnOCxOaCxJaCxLdixfOCxPaSxScyxtOCxuZCxPYSx4YSxvZCxRbywkbyxUOCxFOCxLcixOMCxSOD1YKCgpPT57S2EoKTtFdCgpO01lKCk7Z3QoKTtDdCgpO3ljKCk7QzAoKTtzdCgpO3NlKCk7VmUoKTtYdCgpO1l0KCk7cm4oKTtqbygpO1p0KCk7VWUoKTtXYSgpO3RuKCk7aG4oKTtDbygpO3A4PW5ldyBzLGc4PW5ldyBzLE5oPW5ldyBzLEloPW5ldyBzLEt2PW5ldyBzLF84PW5ldyBzLE9pPW5ldyBzLFJzPW5ldyBzO204PW5ldyBzLG5kPW5ldyBzLE9hPW5ldyByZTt4YT1uZXcgcyxvZD1uZXcgcyxRbz1uZXcgcmUsJG89bmV3IHJlO3FyLnBhY2s9ZnVuY3Rpb24obixlLHQpe3Q9dD8/MDtsZXQgbz1uLl9wb3NpdGlvbnMsYT1vLmxlbmd0aDtlW3QrK109YTtmb3IobGV0IHI9MDtyPGE7KytyLHQrPXMucGFja2VkTGVuZ3RoKXMucGFjayhvW3JdLGUsdCk7cmV0dXJuIEsucGFjayhuLl9lbGxpcHNvaWQsZSx0KSx0Kz1LLnBhY2tlZExlbmd0aCxsZS5wYWNrKG4uX3ZlcnRleEZvcm1hdCxlLHQpLHQrPWxlLnBhY2tlZExlbmd0aCxlW3QrK109bi5fd2lkdGgsZVt0KytdPW4uX2hlaWdodCxlW3QrK109bi5fZXh0cnVkZWRIZWlnaHQsZVt0KytdPW4uX2Nvcm5lclR5cGUsZVt0KytdPW4uX2dyYW51bGFyaXR5LGVbdCsrXT1uLl9zaGFkb3dWb2x1bWU/MTowLGVbdF09bi5fb2Zmc2V0QXR0cmlidXRlPz8tMSxlfTtUOD1LLmNsb25lKEsuVU5JVF9TUEhFUkUpLEU4PW5ldyBsZSxLcj17cG9zaXRpb25zOnZvaWQgMCxlbGxpcHNvaWQ6VDgsdmVydGV4Rm9ybWF0OkU4LHdpZHRoOnZvaWQgMCxoZWlnaHQ6dm9pZCAwLGV4dHJ1ZGVkSGVpZ2h0OnZvaWQgMCxjb3JuZXJUeXBlOnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDAsc2hhZG93Vm9sdW1lOnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTtxci51bnBhY2s9ZnVuY3Rpb24obixlLHQpe2U9ZT8/MDtsZXQgbz1uW2UrK10sYT1uZXcgQXJyYXkobyk7Zm9yKGxldCBiPTA7YjxvOysrYixlKz1zLnBhY2tlZExlbmd0aClhW2JdPXMudW5wYWNrKG4sZSk7bGV0IHI9Sy51bnBhY2sobixlLFQ4KTtlKz1LLnBhY2tlZExlbmd0aDtsZXQgaT1sZS51bnBhY2sobixlLEU4KTtlKz1sZS5wYWNrZWRMZW5ndGg7bGV0IGY9bltlKytdLGQ9bltlKytdLGM9bltlKytdLHU9bltlKytdLGw9bltlKytdLGg9bltlKytdPT09MSxtPW5bZV07cmV0dXJuIF8odCk/KHQuX3Bvc2l0aW9ucz1hLHQuX2VsbGlwc29pZD1LLmNsb25lKHIsdC5fZWxsaXBzb2lkKSx0Ll92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUoaSx0Ll92ZXJ0ZXhGb3JtYXQpLHQuX3dpZHRoPWYsdC5faGVpZ2h0PWQsdC5fZXh0cnVkZWRIZWlnaHQ9Yyx0Ll9jb3JuZXJUeXBlPXUsdC5fZ3JhbnVsYXJpdHk9bCx0Ll9zaGFkb3dWb2x1bWU9aCx0Ll9vZmZzZXRBdHRyaWJ1dGU9bT09PS0xP3ZvaWQgMDptLHQpOihLci5wb3NpdGlvbnM9YSxLci53aWR0aD1mLEtyLmhlaWdodD1kLEtyLmV4dHJ1ZGVkSGVpZ2h0PWMsS3IuY29ybmVyVHlwZT11LEtyLmdyYW51bGFyaXR5PWwsS3Iuc2hhZG93Vm9sdW1lPWgsS3Iub2Zmc2V0QXR0cmlidXRlPW09PT0tMT92b2lkIDA6bSxuZXcgcXIoS3IpKX07cXIuY29tcHV0ZVJlY3RhbmdsZT1mdW5jdGlvbihuLGUpe249bj8/T2UuRU1QVFlfT0JKRUNUO2xldCB0PW4ucG9zaXRpb25zLG89bi53aWR0aCxhPW4uZWxsaXBzb2lkPz9LLmRlZmF1bHQscj1uLmNvcm5lclR5cGU/P3NuLlJPVU5ERUQ7cmV0dXJuIHc4KHQsYSxvLHIsZSl9O3FyLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKG4pe2xldCBlPW4uX3Bvc2l0aW9ucyx0PW4uX3dpZHRoLG89bi5fZWxsaXBzb2lkO2U9eTgoZSxvKTtsZXQgYT14bihlLHMuZXF1YWxzRXBzaWxvbik7aWYoYS5sZW5ndGg8Mnx8dDw9MClyZXR1cm47bGV0IHI9bi5faGVpZ2h0LGk9bi5fZXh0cnVkZWRIZWlnaHQsZj0hay5lcXVhbHNFcHNpbG9uKHIsaSwwLGsuRVBTSUxPTjIpLGQ9bi5fdmVydGV4Rm9ybWF0LGM9e2VsbGlwc29pZDpvLHBvc2l0aW9uczphLHdpZHRoOnQsY29ybmVyVHlwZTpuLl9jb3JuZXJUeXBlLGdyYW51bGFyaXR5Om4uX2dyYW51bGFyaXR5LHNhdmVBdHRyaWJ1dGVzOiEwfSx1O2lmKGYpYy5oZWlnaHQ9cixjLmV4dHJ1ZGVkSGVpZ2h0PWksYy5zaGFkb3dWb2x1bWU9bi5fc2hhZG93Vm9sdW1lLGMub2Zmc2V0QXR0cmlidXRlPW4uX29mZnNldEF0dHJpYnV0ZSx1PVd2KGMsZCk7ZWxzZXtsZXQgbT1LdC5jb21wdXRlUG9zaXRpb25zKGMpO2lmKHU9QTgobSxkLG8pLHUuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9d3Quc2NhbGVUb0dlb2RldGljSGVpZ2h0KHUuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMscixvKSxfKG4uX29mZnNldEF0dHJpYnV0ZSkpe2xldCBiPW4uX29mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxLHA9dS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgseT1uZXcgVWludDhBcnJheShwLzMpLmZpbGwoYik7dS5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOnl9KX19bGV0IGw9dS5hdHRyaWJ1dGVzLGg9Z2UuZnJvbVZlcnRpY2VzKGwucG9zaXRpb24udmFsdWVzLHZvaWQgMCwzKTtyZXR1cm4gZC5wb3NpdGlvbnx8KHUuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9dm9pZCAwKSxuZXcgUGUoe2F0dHJpYnV0ZXM6bCxpbmRpY2VzOnUuaW5kaWNlcyxwcmltaXRpdmVUeXBlOkZlLlRSSUFOR0xFUyxib3VuZGluZ1NwaGVyZTpoLG9mZnNldEF0dHJpYnV0ZTpuLl9vZmZzZXRBdHRyaWJ1dGV9KX07cXIuY3JlYXRlU2hhZG93Vm9sdW1lPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1uLl9ncmFudWxhcml0eSxhPW4uX2VsbGlwc29pZCxyPWUobyxhKSxpPXQobyxhKTtyZXR1cm4gbmV3IHFyKHtwb3NpdGlvbnM6bi5fcG9zaXRpb25zLHdpZHRoOm4uX3dpZHRoLGNvcm5lclR5cGU6bi5fY29ybmVyVHlwZSxlbGxpcHNvaWQ6YSxncmFudWxhcml0eTpvLGV4dHJ1ZGVkSGVpZ2h0OnIsaGVpZ2h0OmksdmVydGV4Rm9ybWF0OmxlLlBPU0lUSU9OX09OTFksc2hhZG93Vm9sdW1lOiEwfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHFyLnByb3RvdHlwZSx7cmVjdGFuZ2xlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLl9yZWN0YW5nbGUpfHwodGhpcy5fcmVjdGFuZ2xlPXc4KHRoaXMuX3Bvc2l0aW9ucyx0aGlzLl9lbGxpcHNvaWQsdGhpcy5fd2lkdGgsdGhpcy5fY29ybmVyVHlwZSkpLHRoaXMuX3JlY3RhbmdsZX19LHRleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM6e2dldDpmdW5jdGlvbigpe3JldHVyblswLDAsMCwxLDEsMF19fX0pO04wPXFyfSk7dmFyIEkwPXt9OyRlKEkwLHtkZWZhdWx0OigpPT5Zdn0pO2Z1bmN0aW9uIFh2KG4sZSl7cmV0dXJuIF8oZSkmJihuPU4wLnVucGFjayhuLGUpKSxuLl9lbGxpcHNvaWQ9Sy5jbG9uZShuLl9lbGxpcHNvaWQpLE4wLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBZdixQMD1YKCgpPT57UjgoKTtzZSgpO1ZlKCk7WXY9WHZ9KTtmdW5jdGlvbiBadihuLGUpe2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF09ZS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKG5bdF0sblt0XSk7cmV0dXJuIG59ZnVuY3Rpb24gUzgobixlKXtsZXQgdD1bXSxvPW4ucG9zaXRpb25zLGE9bi5jb3JuZXJzLHI9bi5lbmRQb3NpdGlvbnMsaT1uZXcgUWUsZixkPTAsYz0wLHUsbD0wLGg7Zm9yKHU9MDt1PG8ubGVuZ3RoO3UrPTIpaD1vW3VdLmxlbmd0aC0zLGQrPWgsbCs9aC8zKjQsYys9b1t1KzFdLmxlbmd0aC0zO2ZvcihkKz0zLGMrPTMsdT0wO3U8YS5sZW5ndGg7dSsrKXtmPWFbdV07bGV0IHY9YVt1XS5sZWZ0UG9zaXRpb25zO18odik/KGg9di5sZW5ndGgsZCs9aCxsKz1oLzMqMik6KGg9YVt1XS5yaWdodFBvc2l0aW9ucy5sZW5ndGgsYys9aCxsKz1oLzMqMil9bGV0IG09XyhyKSxiO20mJihiPXJbMF0ubGVuZ3RoLTMsZCs9YixjKz1iLGIvPTMsbCs9Yio0KTtsZXQgcD1kK2MseT1uZXcgRmxvYXQ2NEFycmF5KHApLEU9MCxnPXAtMSxBLFQsUixTLE0sSSxOPWIvMixQPUllLmNyZWF0ZVR5cGVkQXJyYXkocC8zLGwrNCksRj0wO2lmKFBbRisrXT1FLzMsUFtGKytdPShnLTIpLzMsbSl7dC5wdXNoKEUvMyksST14OCxNPU84O2xldCB2PXJbMF07Zm9yKHU9MDt1PE47dSsrKUk9cy5mcm9tQXJyYXkodiwoTi0xLXUpKjMsSSksTT1zLmZyb21BcnJheSh2LChOK3UpKjMsTSksS3QuYWRkQXR0cmlidXRlKHksTSxFKSxLdC5hZGRBdHRyaWJ1dGUoeSxJLHZvaWQgMCxnKSxUPUUvMyxTPVQrMSxBPShnLTIpLzMsUj1BLTEsUFtGKytdPUEsUFtGKytdPVIsUFtGKytdPVQsUFtGKytdPVMsRSs9MyxnLT0zfWxldCB3PTAseD1vW3crK10sQz1vW3crK107Zm9yKHkuc2V0KHgsRSkseS5zZXQoQyxnLUMubGVuZ3RoKzEpLGg9Qy5sZW5ndGgtMyx0LnB1c2goRS8zLChnLTIpLzMpLHU9MDt1PGg7dSs9MylUPUUvMyxTPVQrMSxBPShnLTIpLzMsUj1BLTEsUFtGKytdPUEsUFtGKytdPVIsUFtGKytdPVQsUFtGKytdPVMsRSs9MyxnLT0zO2Zvcih1PTA7dTxhLmxlbmd0aDt1Kyspe2xldCB2O2Y9YVt1XTtsZXQgaj1mLmxlZnRQb3NpdGlvbnMsej1mLnJpZ2h0UG9zaXRpb25zLEQsRz1KdjtpZihfKGopKXtmb3IoZy09MyxEPVIsdC5wdXNoKFMpLHY9MDt2PGoubGVuZ3RoLzM7disrKUc9cy5mcm9tQXJyYXkoaix2KjMsRyksUFtGKytdPUQtdi0xLFBbRisrXT1ELXYsS3QuYWRkQXR0cmlidXRlKHksRyx2b2lkIDAsZyksZy09Mzt0LnB1c2goRC1NYXRoLmZsb29yKGoubGVuZ3RoLzYpKSxlPT09c24uQkVWRUxFRCYmdC5wdXNoKChnLTIpLzMrMSksRSs9M31lbHNle2ZvcihFKz0zLEQ9Uyx0LnB1c2goUiksdj0wO3Y8ei5sZW5ndGgvMzt2KyspRz1zLmZyb21BcnJheSh6LHYqMyxHKSxQW0YrK109RCt2LFBbRisrXT1EK3YrMSxLdC5hZGRBdHRyaWJ1dGUoeSxHLEUpLEUrPTM7dC5wdXNoKEQrTWF0aC5mbG9vcih6Lmxlbmd0aC82KSksZT09PXNuLkJFVkVMRUQmJnQucHVzaChFLzMtMSksZy09M31mb3IoeD1vW3crK10sQz1vW3crK10seC5zcGxpY2UoMCwzKSxDLnNwbGljZShDLmxlbmd0aC0zLDMpLHkuc2V0KHgsRSkseS5zZXQoQyxnLUMubGVuZ3RoKzEpLGg9Qy5sZW5ndGgtMyx2PTA7djxDLmxlbmd0aDt2Kz0zKVM9RS8zLFQ9Uy0xLFI9KGctMikvMyxBPVIrMSxQW0YrK109QSxQW0YrK109UixQW0YrK109VCxQW0YrK109UyxFKz0zLGctPTM7RS09MyxnKz0zLHQucHVzaChFLzMsKGctMikvMyl9aWYobSl7RSs9MyxnLT0zLEk9eDgsTT1PODtsZXQgdj1yWzFdO2Zvcih1PTA7dTxOO3UrKylJPXMuZnJvbUFycmF5KHYsKGItdS0xKSozLEkpLE09cy5mcm9tQXJyYXkodix1KjMsTSksS3QuYWRkQXR0cmlidXRlKHksSSx2b2lkIDAsZyksS3QuYWRkQXR0cmlidXRlKHksTSxFKSxTPUUvMyxUPVMtMSxSPShnLTIpLzMsQT1SKzEsUFtGKytdPUEsUFtGKytdPVIsUFtGKytdPVQsUFtGKytdPVMsRSs9MyxnLT0zO3QucHVzaChFLzMpfWVsc2UgdC5wdXNoKEUvMywoZy0yKS8zKTtyZXR1cm4gUFtGKytdPUUvMyxQW0YrK109KGctMikvMyxpLnBvc2l0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6eX0pLHthdHRyaWJ1dGVzOmksaW5kaWNlczpQLHdhbGxJbmRpY2VzOnR9fWZ1bmN0aW9uIFF2KG4pe2xldCBlPW4uZWxsaXBzb2lkLHQ9S3QuY29tcHV0ZVBvc2l0aW9ucyhuKSxvPVM4KHQsbi5jb3JuZXJUeXBlKSxhPW8ud2FsbEluZGljZXMscj1uLmhlaWdodCxpPW4uZXh0cnVkZWRIZWlnaHQsZj1vLmF0dHJpYnV0ZXMsZD1vLmluZGljZXMsYz1mLnBvc2l0aW9uLnZhbHVlcyx1PWMubGVuZ3RoLGw9bmV3IEZsb2F0NjRBcnJheSh1KTtsLnNldChjKTtsZXQgaD1uZXcgRmxvYXQ2NEFycmF5KHUqMik7aWYoYz13dC5zY2FsZVRvR2VvZGV0aWNIZWlnaHQoYyxyLGUpLGw9d3Quc2NhbGVUb0dlb2RldGljSGVpZ2h0KGwsaSxlKSxoLnNldChjKSxoLnNldChsLHUpLGYucG9zaXRpb24udmFsdWVzPWgsdS89MyxfKG4ub2Zmc2V0QXR0cmlidXRlKSl7bGV0IEE9bmV3IFVpbnQ4QXJyYXkodSoyKTtpZihuLm9mZnNldEF0dHJpYnV0ZT09PW90LlRPUClBPUEuZmlsbCgxLDAsdSk7ZWxzZXtsZXQgVD1uLm9mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxO0E9QS5maWxsKFQpfWYuYXBwbHlPZmZzZXQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6QX0pfWxldCBtLGI9ZC5sZW5ndGgscD1JZS5jcmVhdGVUeXBlZEFycmF5KGgubGVuZ3RoLzMsKGIrYS5sZW5ndGgpKjIpO3Auc2V0KGQpO2xldCB5PWI7Zm9yKG09MDttPGI7bSs9Mil7bGV0IEE9ZFttXSxUPWRbbSsxXTtwW3krK109QSt1LHBbeSsrXT1UK3V9bGV0IEUsZztmb3IobT0wO208YS5sZW5ndGg7bSsrKUU9YVttXSxnPUUrdSxwW3krK109RSxwW3krK109ZztyZXR1cm57YXR0cmlidXRlczpmLGluZGljZXM6cH19ZnVuY3Rpb24gYWQobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5wb3NpdGlvbnMsdD1uLndpZHRoLG89bi5oZWlnaHQ/PzAsYT1uLmV4dHJ1ZGVkSGVpZ2h0Pz9vO3RoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuX2VsbGlwc29pZD1LLmNsb25lKG4uZWxsaXBzb2lkPz9LLmRlZmF1bHQpLHRoaXMuX3dpZHRoPXQsdGhpcy5faGVpZ2h0PU1hdGgubWF4KG8sYSksdGhpcy5fZXh0cnVkZWRIZWlnaHQ9TWF0aC5taW4obyxhKSx0aGlzLl9jb3JuZXJUeXBlPW4uY29ybmVyVHlwZT8/c24uUk9VTkRFRCx0aGlzLl9ncmFudWxhcml0eT1uLmdyYW51bGFyaXR5Pz9rLlJBRElBTlNfUEVSX0RFR1JFRSx0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9bi5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlQ29ycmlkb3JPdXRsaW5lR2VvbWV0cnkiLHRoaXMucGFja2VkTGVuZ3RoPTErZS5sZW5ndGgqcy5wYWNrZWRMZW5ndGgrSy5wYWNrZWRMZW5ndGgrNn12YXIgeDgsTzgsSnYsQzgsU2ksazAsTTg9WCgoKT0+e0thKCk7RXQoKTtNZSgpO0N0KCk7eWMoKTtDMCgpO3N0KCk7c2UoKTtWZSgpO1h0KCk7WXQoKTtybigpO2pvKCk7WnQoKTtVZSgpO1dhKCk7dG4oKTt4OD1uZXcgcyxPOD1uZXcgcyxKdj1uZXcgczthZC5wYWNrPWZ1bmN0aW9uKG4sZSx0KXt0PXQ/PzA7bGV0IG89bi5fcG9zaXRpb25zLGE9by5sZW5ndGg7ZVt0KytdPWE7Zm9yKGxldCByPTA7cjxhOysrcix0Kz1zLnBhY2tlZExlbmd0aClzLnBhY2sob1tyXSxlLHQpO3JldHVybiBLLnBhY2sobi5fZWxsaXBzb2lkLGUsdCksdCs9Sy5wYWNrZWRMZW5ndGgsZVt0KytdPW4uX3dpZHRoLGVbdCsrXT1uLl9oZWlnaHQsZVt0KytdPW4uX2V4dHJ1ZGVkSGVpZ2h0LGVbdCsrXT1uLl9jb3JuZXJUeXBlLGVbdCsrXT1uLl9ncmFudWxhcml0eSxlW3RdPW4uX29mZnNldEF0dHJpYnV0ZT8/LTEsZX07Qzg9Sy5jbG9uZShLLlVOSVRfU1BIRVJFKSxTaT17cG9zaXRpb25zOnZvaWQgMCxlbGxpcHNvaWQ6Qzgsd2lkdGg6dm9pZCAwLGhlaWdodDp2b2lkIDAsZXh0cnVkZWRIZWlnaHQ6dm9pZCAwLGNvcm5lclR5cGU6dm9pZCAwLGdyYW51bGFyaXR5OnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTthZC51bnBhY2s9ZnVuY3Rpb24obixlLHQpe2U9ZT8/MDtsZXQgbz1uW2UrK10sYT1uZXcgQXJyYXkobyk7Zm9yKGxldCBoPTA7aDxvOysraCxlKz1zLnBhY2tlZExlbmd0aClhW2hdPXMudW5wYWNrKG4sZSk7bGV0IHI9Sy51bnBhY2sobixlLEM4KTtlKz1LLnBhY2tlZExlbmd0aDtsZXQgaT1uW2UrK10sZj1uW2UrK10sZD1uW2UrK10sYz1uW2UrK10sdT1uW2UrK10sbD1uW2VdO3JldHVybiBfKHQpPyh0Ll9wb3NpdGlvbnM9YSx0Ll9lbGxpcHNvaWQ9Sy5jbG9uZShyLHQuX2VsbGlwc29pZCksdC5fd2lkdGg9aSx0Ll9oZWlnaHQ9Zix0Ll9leHRydWRlZEhlaWdodD1kLHQuX2Nvcm5lclR5cGU9Yyx0Ll9ncmFudWxhcml0eT11LHQuX29mZnNldEF0dHJpYnV0ZT1sPT09LTE/dm9pZCAwOmwsdCk6KFNpLnBvc2l0aW9ucz1hLFNpLndpZHRoPWksU2kuaGVpZ2h0PWYsU2kuZXh0cnVkZWRIZWlnaHQ9ZCxTaS5jb3JuZXJUeXBlPWMsU2kuZ3JhbnVsYXJpdHk9dSxTaS5vZmZzZXRBdHRyaWJ1dGU9bD09PS0xP3ZvaWQgMDpsLG5ldyBhZChTaSkpfTthZC5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbihuKXtsZXQgZT1uLl9wb3NpdGlvbnMsdD1uLl93aWR0aCxvPW4uX2VsbGlwc29pZDtlPVp2KGUsbyk7bGV0IGE9eG4oZSxzLmVxdWFsc0Vwc2lsb24pO2lmKGEubGVuZ3RoPDJ8fHQ8PTApcmV0dXJuO2xldCByPW4uX2hlaWdodCxpPW4uX2V4dHJ1ZGVkSGVpZ2h0LGY9IWsuZXF1YWxzRXBzaWxvbihyLGksMCxrLkVQU0lMT04yKSxkPXtlbGxpcHNvaWQ6byxwb3NpdGlvbnM6YSx3aWR0aDp0LGNvcm5lclR5cGU6bi5fY29ybmVyVHlwZSxncmFudWxhcml0eTpuLl9ncmFudWxhcml0eSxzYXZlQXR0cmlidXRlczohMX0sYztpZihmKWQuaGVpZ2h0PXIsZC5leHRydWRlZEhlaWdodD1pLGQub2Zmc2V0QXR0cmlidXRlPW4uX29mZnNldEF0dHJpYnV0ZSxjPVF2KGQpO2Vsc2V7bGV0IGg9S3QuY29tcHV0ZVBvc2l0aW9ucyhkKTtpZihjPVM4KGgsZC5jb3JuZXJUeXBlKSxjLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPXd0LnNjYWxlVG9HZW9kZXRpY0hlaWdodChjLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLHIsbyksXyhuLl9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgbT1jLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aCxiPW4uX29mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxLHA9bmV3IFVpbnQ4QXJyYXkobS8zKS5maWxsKGIpO2MuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpwfSl9fWxldCB1PWMuYXR0cmlidXRlcyxsPWdlLmZyb21WZXJ0aWNlcyh1LnBvc2l0aW9uLnZhbHVlcyx2b2lkIDAsMyk7cmV0dXJuIG5ldyBQZSh7YXR0cmlidXRlczp1LGluZGljZXM6Yy5pbmRpY2VzLHByaW1pdGl2ZVR5cGU6RmUuTElORVMsYm91bmRpbmdTcGhlcmU6bCxvZmZzZXRBdHRyaWJ1dGU6bi5fb2Zmc2V0QXR0cmlidXRlfSl9O2swPWFkfSk7dmFyIHYwPXt9OyRlKHYwLHtkZWZhdWx0OigpPT5lOX0pO2Z1bmN0aW9uICR2KG4sZSl7cmV0dXJuIF8oZSkmJihuPWswLnVucGFjayhuLGUpKSxuLl9lbGxpcHNvaWQ9Sy5jbG9uZShuLl9lbGxpcHNvaWQpLGswLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBlOSxGMD1YKCgpPT57TTgoKTtzZSgpO1ZlKCk7ZTk9JHZ9KTt2YXIgTjgsUGgsRDA9WCgoKT0+e1VlKCk7Tjg9e307TjguY29tcHV0ZVBvc2l0aW9ucz1mdW5jdGlvbihuLGUsdCxvLGEpe2xldCByPW4qLjUsaT0tcixmPW8rbyxkPWE/MipmOmYsYz1uZXcgRmxvYXQ2NEFycmF5KGQqMyksdSxsPTAsaD0wLG09YT9mKjM6MCxiPWE/KGYrbykqMzpvKjM7Zm9yKHU9MDt1PG87dSsrKXtsZXQgcD11L28qay5UV09fUEkseT1NYXRoLmNvcyhwKSxFPU1hdGguc2luKHApLGc9eSp0LEE9RSp0LFQ9eSplLFI9RSplO2NbaCttXT1nLGNbaCttKzFdPUEsY1toK20rMl09aSxjW2grYl09VCxjW2grYisxXT1SLGNbaCtiKzJdPXIsaCs9MyxhJiYoY1tsKytdPWcsY1tsKytdPUEsY1tsKytdPWksY1tsKytdPVQsY1tsKytdPVIsY1tsKytdPXIpfXJldHVybiBjfTtQaD1OOH0pO2Z1bmN0aW9uIFdyKG4pe249bj8/T2UuRU1QVFlfT0JKRUNUO2xldCBlPW4ubGVuZ3RoLHQ9bi50b3BSYWRpdXMsbz1uLmJvdHRvbVJhZGl1cyxhPW4udmVydGV4Rm9ybWF0Pz9sZS5ERUZBVUxULHI9bi5zbGljZXM/PzEyODt0aGlzLl9sZW5ndGg9ZSx0aGlzLl90b3BSYWRpdXM9dCx0aGlzLl9ib3R0b21SYWRpdXM9byx0aGlzLl92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUoYSksdGhpcy5fc2xpY2VzPXIsdGhpcy5fb2Zmc2V0QXR0cmlidXRlPW4ub2Zmc2V0QXR0cmlidXRlLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUN5bGluZGVyR2VvbWV0cnkifXZhciBCMCx0OSxuOSxvOSxhOSxJOCx4cyxqMCxyZCxVMD1YKCgpPT57RXQoKTt2dCgpO01lKCk7Q3QoKTtEMCgpO3N0KCk7c2UoKTtYdCgpO1l0KCk7cm4oKTtqbygpO1p0KCk7VWUoKTt0bigpO0NvKCk7QjA9bmV3IFksdDk9bmV3IHMsbjk9bmV3IHMsbzk9bmV3IHMsYTk9bmV3IHM7V3IucGFja2VkTGVuZ3RoPWxlLnBhY2tlZExlbmd0aCs1O1dyLnBhY2s9ZnVuY3Rpb24obixlLHQpe3JldHVybiB0PXQ/PzAsbGUucGFjayhuLl92ZXJ0ZXhGb3JtYXQsZSx0KSx0Kz1sZS5wYWNrZWRMZW5ndGgsZVt0KytdPW4uX2xlbmd0aCxlW3QrK109bi5fdG9wUmFkaXVzLGVbdCsrXT1uLl9ib3R0b21SYWRpdXMsZVt0KytdPW4uX3NsaWNlcyxlW3RdPW4uX29mZnNldEF0dHJpYnV0ZT8/LTEsZX07STg9bmV3IGxlLHhzPXt2ZXJ0ZXhGb3JtYXQ6STgsbGVuZ3RoOnZvaWQgMCx0b3BSYWRpdXM6dm9pZCAwLGJvdHRvbVJhZGl1czp2b2lkIDAsc2xpY2VzOnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTtXci51bnBhY2s9ZnVuY3Rpb24obixlLHQpe2U9ZT8/MDtsZXQgbz1sZS51bnBhY2sobixlLEk4KTtlKz1sZS5wYWNrZWRMZW5ndGg7bGV0IGE9bltlKytdLHI9bltlKytdLGk9bltlKytdLGY9bltlKytdLGQ9bltlXTtyZXR1cm4gXyh0KT8odC5fdmVydGV4Rm9ybWF0PWxlLmNsb25lKG8sdC5fdmVydGV4Rm9ybWF0KSx0Ll9sZW5ndGg9YSx0Ll90b3BSYWRpdXM9cix0Ll9ib3R0b21SYWRpdXM9aSx0Ll9zbGljZXM9Zix0Ll9vZmZzZXRBdHRyaWJ1dGU9ZD09PS0xP3ZvaWQgMDpkLHQpOih4cy5sZW5ndGg9YSx4cy50b3BSYWRpdXM9cix4cy5ib3R0b21SYWRpdXM9aSx4cy5zbGljZXM9Zix4cy5vZmZzZXRBdHRyaWJ1dGU9ZD09PS0xP3ZvaWQgMDpkLG5ldyBXcih4cykpfTtXci5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbihuKXtsZXQgZT1uLl9sZW5ndGgsdD1uLl90b3BSYWRpdXMsbz1uLl9ib3R0b21SYWRpdXMsYT1uLl92ZXJ0ZXhGb3JtYXQscj1uLl9zbGljZXM7aWYoZTw9MHx8dDwwfHxvPDB8fHQ9PT0wJiZvPT09MClyZXR1cm47bGV0IGk9cityLGY9citpLGQ9aStpLGM9UGguY29tcHV0ZVBvc2l0aW9ucyhlLHQsbyxyLCEwKSx1PWEuc3Q/bmV3IEZsb2F0MzJBcnJheShkKjIpOnZvaWQgMCxsPWEubm9ybWFsP25ldyBGbG9hdDMyQXJyYXkoZCozKTp2b2lkIDAsaD1hLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShkKjMpOnZvaWQgMCxtPWEuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoZCozKTp2b2lkIDAsYixwPWEubm9ybWFsfHxhLnRhbmdlbnR8fGEuYml0YW5nZW50O2lmKHApe2xldCBNPWEudGFuZ2VudHx8YS5iaXRhbmdlbnQsST0wLE49MCxQPTAsRj1NYXRoLmF0YW4yKG8tdCxlKSx3PXQ5O3cuej1NYXRoLnNpbihGKTtsZXQgeD1NYXRoLmNvcyhGKSxDPW85LHY9bjk7Zm9yKGI9MDtiPHI7YisrKXtsZXQgaj1iL3Iqay5UV09fUEksej14Kk1hdGguY29zKGopLEQ9eCpNYXRoLnNpbihqKTtwJiYody54PXosdy55PUQsTSYmKEM9cy5ub3JtYWxpemUocy5jcm9zcyhzLlVOSVRfWix3LEMpLEMpKSxhLm5vcm1hbCYmKGxbSSsrXT13LngsbFtJKytdPXcueSxsW0krK109dy56LGxbSSsrXT13LngsbFtJKytdPXcueSxsW0krK109dy56KSxhLnRhbmdlbnQmJihoW04rK109Qy54LGhbTisrXT1DLnksaFtOKytdPUMueixoW04rK109Qy54LGhbTisrXT1DLnksaFtOKytdPUMueiksYS5iaXRhbmdlbnQmJih2PXMubm9ybWFsaXplKHMuY3Jvc3ModyxDLHYpLHYpLG1bUCsrXT12LngsbVtQKytdPXYueSxtW1ArK109di56LG1bUCsrXT12LngsbVtQKytdPXYueSxtW1ArK109di56KSl9Zm9yKGI9MDtiPHI7YisrKWEubm9ybWFsJiYobFtJKytdPTAsbFtJKytdPTAsbFtJKytdPS0xKSxhLnRhbmdlbnQmJihoW04rK109MSxoW04rK109MCxoW04rK109MCksYS5iaXRhbmdlbnQmJihtW1ArK109MCxtW1ArK109LTEsbVtQKytdPTApO2ZvcihiPTA7YjxyO2IrKylhLm5vcm1hbCYmKGxbSSsrXT0wLGxbSSsrXT0wLGxbSSsrXT0xKSxhLnRhbmdlbnQmJihoW04rK109MSxoW04rK109MCxoW04rK109MCksYS5iaXRhbmdlbnQmJihtW1ArK109MCxtW1ArK109MSxtW1ArK109MCl9bGV0IHk9MTIqci0xMixFPUllLmNyZWF0ZVR5cGVkQXJyYXkoZCx5KSxnPTAsQT0wO2ZvcihiPTA7YjxyLTE7YisrKUVbZysrXT1BLEVbZysrXT1BKzIsRVtnKytdPUErMyxFW2crK109QSxFW2crK109QSszLEVbZysrXT1BKzEsQSs9Mjtmb3IoRVtnKytdPWktMixFW2crK109MCxFW2crK109MSxFW2crK109aS0yLEVbZysrXT0xLEVbZysrXT1pLTEsYj0xO2I8ci0xO2IrKylFW2crK109aStiKzEsRVtnKytdPWkrYixFW2crK109aTtmb3IoYj0xO2I8ci0xO2IrKylFW2crK109ZixFW2crK109ZitiLEVbZysrXT1mK2IrMTtsZXQgVD0wO2lmKGEuc3Qpe2xldCBNPU1hdGgubWF4KHQsbyk7Zm9yKGI9MDtiPGQ7YisrKXtsZXQgST1zLmZyb21BcnJheShjLGIqMyxhOSk7dVtUKytdPShJLngrTSkvKDIqTSksdVtUKytdPShJLnkrTSkvKDIqTSl9fWxldCBSPW5ldyBRZTthLnBvc2l0aW9uJiYoUi5wb3NpdGlvbj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmN9KSksYS5ub3JtYWwmJihSLm5vcm1hbD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bH0pKSxhLnRhbmdlbnQmJihSLnRhbmdlbnQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmh9KSksYS5iaXRhbmdlbnQmJihSLmJpdGFuZ2VudD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bX0pKSxhLnN0JiYoUi5zdD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6dX0pKSxCMC54PWUqLjUsQjAueT1NYXRoLm1heChvLHQpO2xldCBTPW5ldyBnZShzLlpFUk8sWS5tYWduaXR1ZGUoQjApKTtpZihfKG4uX29mZnNldEF0dHJpYnV0ZSkpe2U9Yy5sZW5ndGg7bGV0IE09bi5fb2Zmc2V0QXR0cmlidXRlPT09b3QuTk9ORT8wOjEsST1uZXcgVWludDhBcnJheShlLzMpLmZpbGwoTSk7Ui5hcHBseU9mZnNldD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpJfSl9cmV0dXJuIG5ldyBQZSh7YXR0cmlidXRlczpSLGluZGljZXM6RSxwcmltaXRpdmVUeXBlOkZlLlRSSUFOR0xFUyxib3VuZGluZ1NwaGVyZTpTLG9mZnNldEF0dHJpYnV0ZTpuLl9vZmZzZXRBdHRyaWJ1dGV9KX07V3IuZ2V0VW5pdEN5bGluZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIF8oajApfHwoajA9V3IuY3JlYXRlR2VvbWV0cnkobmV3IFdyKHt0b3BSYWRpdXM6MSxib3R0b21SYWRpdXM6MSxsZW5ndGg6MSx2ZXJ0ZXhGb3JtYXQ6bGUuUE9TSVRJT05fT05MWX0pKSksajB9O3JkPVdyfSk7dmFyIEwwPXt9OyRlKEwwLHtkZWZhdWx0OigpPT5pOX0pO2Z1bmN0aW9uIHI5KG4sZSl7cmV0dXJuIF8oZSkmJihuPXJkLnVucGFjayhuLGUpKSxyZC5jcmVhdGVHZW9tZXRyeShuKX12YXIgaTksejA9WCgoKT0+e1UwKCk7c2UoKTtpOT1yOX0pO2Z1bmN0aW9uIE9zKG4pe249bj8/T2UuRU1QVFlfT0JKRUNUO2xldCBlPW4ubGVuZ3RoLHQ9bi50b3BSYWRpdXMsbz1uLmJvdHRvbVJhZGl1cyxhPW4uc2xpY2VzPz8xMjgscj1NYXRoLm1heChuLm51bWJlck9mVmVydGljYWxMaW5lcz8/MTYsMCk7dGhpcy5fbGVuZ3RoPWUsdGhpcy5fdG9wUmFkaXVzPXQsdGhpcy5fYm90dG9tUmFkaXVzPW8sdGhpcy5fc2xpY2VzPWEsdGhpcy5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzPXIsdGhpcy5fb2Zmc2V0QXR0cmlidXRlPW4ub2Zmc2V0QXR0cmlidXRlLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUN5bGluZGVyT3V0bGluZUdlb21ldHJ5In12YXIgRzAsd2MsVjAsUDg9WCgoKT0+e0V0KCk7dnQoKTtNZSgpO0N0KCk7RDAoKTtzdCgpO3NlKCk7WHQoKTtZdCgpO3JuKCk7am8oKTtadCgpO3RuKCk7RzA9bmV3IFk7T3MucGFja2VkTGVuZ3RoPTY7T3MucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCxlW3QrK109bi5fbGVuZ3RoLGVbdCsrXT1uLl90b3BSYWRpdXMsZVt0KytdPW4uX2JvdHRvbVJhZGl1cyxlW3QrK109bi5fc2xpY2VzLGVbdCsrXT1uLl9udW1iZXJPZlZlcnRpY2FsTGluZXMsZVt0XT1uLl9vZmZzZXRBdHRyaWJ1dGU/Py0xLGV9O3djPXtsZW5ndGg6dm9pZCAwLHRvcFJhZGl1czp2b2lkIDAsYm90dG9tUmFkaXVzOnZvaWQgMCxzbGljZXM6dm9pZCAwLG51bWJlck9mVmVydGljYWxMaW5lczp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07T3MudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtlPWU/PzA7bGV0IG89bltlKytdLGE9bltlKytdLHI9bltlKytdLGk9bltlKytdLGY9bltlKytdLGQ9bltlXTtyZXR1cm4gXyh0KT8odC5fbGVuZ3RoPW8sdC5fdG9wUmFkaXVzPWEsdC5fYm90dG9tUmFkaXVzPXIsdC5fc2xpY2VzPWksdC5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzPWYsdC5fb2Zmc2V0QXR0cmlidXRlPWQ9PT0tMT92b2lkIDA6ZCx0KTood2MubGVuZ3RoPW8sd2MudG9wUmFkaXVzPWEsd2MuYm90dG9tUmFkaXVzPXIsd2Muc2xpY2VzPWksd2MubnVtYmVyT2ZWZXJ0aWNhbExpbmVzPWYsd2Mub2Zmc2V0QXR0cmlidXRlPWQ9PT0tMT92b2lkIDA6ZCxuZXcgT3Mod2MpKX07T3MuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7bGV0IGU9bi5fbGVuZ3RoLHQ9bi5fdG9wUmFkaXVzLG89bi5fYm90dG9tUmFkaXVzLGE9bi5fc2xpY2VzLHI9bi5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzO2lmKGU8PTB8fHQ8MHx8bzwwfHx0PT09MCYmbz09PTApcmV0dXJuO2xldCBpPWEqMixmPVBoLmNvbXB1dGVQb3NpdGlvbnMoZSx0LG8sYSwhMSksZD1hKjIsYztpZihyPjApe2xldCBwPU1hdGgubWluKHIsYSk7Yz1NYXRoLnJvdW5kKGEvcCksZCs9cH1sZXQgdT1JZS5jcmVhdGVUeXBlZEFycmF5KGksZCoyKSxsPTAsaDtmb3IoaD0wO2g8YS0xO2grKyl1W2wrK109aCx1W2wrK109aCsxLHVbbCsrXT1oK2EsdVtsKytdPWgrMSthO2lmKHVbbCsrXT1hLTEsdVtsKytdPTAsdVtsKytdPWErYS0xLHVbbCsrXT1hLHI+MClmb3IoaD0wO2g8YTtoKz1jKXVbbCsrXT1oLHVbbCsrXT1oK2E7bGV0IG09bmV3IFFlO20ucG9zaXRpb249bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpmfSksRzAueD1lKi41LEcwLnk9TWF0aC5tYXgobyx0KTtsZXQgYj1uZXcgZ2Uocy5aRVJPLFkubWFnbml0dWRlKEcwKSk7aWYoXyhuLl9vZmZzZXRBdHRyaWJ1dGUpKXtlPWYubGVuZ3RoO2xldCBwPW4uX29mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxLHk9bmV3IFVpbnQ4QXJyYXkoZS8zKS5maWxsKHApO20uYXBwbHlPZmZzZXQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6eX0pfXJldHVybiBuZXcgUGUoe2F0dHJpYnV0ZXM6bSxpbmRpY2VzOnUscHJpbWl0aXZlVHlwZTpGZS5MSU5FUyxib3VuZGluZ1NwaGVyZTpiLG9mZnNldEF0dHJpYnV0ZTpuLl9vZmZzZXRBdHRyaWJ1dGV9KX07VjA9T3N9KTt2YXIgSDA9e307JGUoSDAse2RlZmF1bHQ6KCk9PnM5fSk7ZnVuY3Rpb24gYzkobixlKXtyZXR1cm4gXyhlKSYmKG49VjAudW5wYWNrKG4sZSkpLFYwLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBzOSxLMD1YKCgpPT57UDgoKTtzZSgpO3M5PWM5fSk7dmFyIHEwPXt9OyRlKHEwLHtkZWZhdWx0OigpPT5kOX0pO2Z1bmN0aW9uIGY5KG4sZSl7cmV0dXJuIF8oZSkmJihuPVZhLnVucGFjayhuLGUpKSxuLl9jZW50ZXI9cy5jbG9uZShuLl9jZW50ZXIpLG4uX2VsbGlwc29pZD1LLmNsb25lKG4uX2VsbGlwc29pZCksVmEuY3JlYXRlR2VvbWV0cnkobil9dmFyIGQ5LFcwPVgoKCk9PntNZSgpO3NlKCk7V3AoKTtWZSgpO2Q5PWY5fSk7dmFyIFgwPXt9OyRlKFgwLHtkZWZhdWx0OigpPT5sOX0pO2Z1bmN0aW9uIHU5KG4sZSl7cmV0dXJuIF8oZSkmJihuPUhhLnVucGFjayhuLGUpKSxuLl9jZW50ZXI9cy5jbG9uZShuLl9jZW50ZXIpLG4uX2VsbGlwc29pZD1LLmNsb25lKG4uX2VsbGlwc29pZCksSGEuY3JlYXRlR2VvbWV0cnkobil9dmFyIGw5LFkwPVgoKCk9PntNZSgpO3NlKCk7WnAoKTtWZSgpO2w5PXU5fSk7ZnVuY3Rpb24gWHIobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5yYWRpaT8/XzksdD1uLmlubmVyUmFkaWk/P2Usbz1uLm1pbmltdW1DbG9jaz8/MCxhPW4ubWF4aW11bUNsb2NrPz9rLlRXT19QSSxyPW4ubWluaW11bUNvbmU/PzAsaT1uLm1heGltdW1Db25lPz9rLlBJLGY9TWF0aC5yb3VuZChuLnN0YWNrUGFydGl0aW9ucz8/NjQpLGQ9TWF0aC5yb3VuZChuLnNsaWNlUGFydGl0aW9ucz8/NjQpLGM9bi52ZXJ0ZXhGb3JtYXQ/P2xlLkRFRkFVTFQ7dGhpcy5fcmFkaWk9cy5jbG9uZShlKSx0aGlzLl9pbm5lclJhZGlpPXMuY2xvbmUodCksdGhpcy5fbWluaW11bUNsb2NrPW8sdGhpcy5fbWF4aW11bUNsb2NrPWEsdGhpcy5fbWluaW11bUNvbmU9cix0aGlzLl9tYXhpbXVtQ29uZT1pLHRoaXMuX3N0YWNrUGFydGl0aW9ucz1mLHRoaXMuX3NsaWNlUGFydGl0aW9ucz1kLHRoaXMuX3ZlcnRleEZvcm1hdD1sZS5jbG9uZShjKSx0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9bi5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlRWxsaXBzb2lkR2VvbWV0cnkifXZhciBoOSxtOSxiOSxwOSxnOSxfOSxrOCx2OCxGOCxEOCxCOCxDaSxKMCxpYSxraD1YKCgpPT57RXQoKTt2dCgpO01lKCk7Q3QoKTtzdCgpO3NlKCk7VmUoKTtYdCgpO1l0KCk7cm4oKTtqbygpO1p0KCk7VWUoKTt0bigpO0NvKCk7aDk9bmV3IHMsbTk9bmV3IHMsYjk9bmV3IHMscDk9bmV3IHMsZzk9bmV3IHMsXzk9bmV3IHMoMSwxLDEpLGs4PU1hdGguY29zLHY4PU1hdGguc2luO1hyLnBhY2tlZExlbmd0aD0yKnMucGFja2VkTGVuZ3RoK2xlLnBhY2tlZExlbmd0aCs3O1hyLnBhY2s9ZnVuY3Rpb24obixlLHQpe3JldHVybiB0PXQ/PzAscy5wYWNrKG4uX3JhZGlpLGUsdCksdCs9cy5wYWNrZWRMZW5ndGgscy5wYWNrKG4uX2lubmVyUmFkaWksZSx0KSx0Kz1zLnBhY2tlZExlbmd0aCxsZS5wYWNrKG4uX3ZlcnRleEZvcm1hdCxlLHQpLHQrPWxlLnBhY2tlZExlbmd0aCxlW3QrK109bi5fbWluaW11bUNsb2NrLGVbdCsrXT1uLl9tYXhpbXVtQ2xvY2ssZVt0KytdPW4uX21pbmltdW1Db25lLGVbdCsrXT1uLl9tYXhpbXVtQ29uZSxlW3QrK109bi5fc3RhY2tQYXJ0aXRpb25zLGVbdCsrXT1uLl9zbGljZVBhcnRpdGlvbnMsZVt0XT1uLl9vZmZzZXRBdHRyaWJ1dGU/Py0xLGV9O0Y4PW5ldyBzLEQ4PW5ldyBzLEI4PW5ldyBsZSxDaT17cmFkaWk6RjgsaW5uZXJSYWRpaTpEOCx2ZXJ0ZXhGb3JtYXQ6QjgsbWluaW11bUNsb2NrOnZvaWQgMCxtYXhpbXVtQ2xvY2s6dm9pZCAwLG1pbmltdW1Db25lOnZvaWQgMCxtYXhpbXVtQ29uZTp2b2lkIDAsc3RhY2tQYXJ0aXRpb25zOnZvaWQgMCxzbGljZVBhcnRpdGlvbnM6dm9pZCAwLG9mZnNldEF0dHJpYnV0ZTp2b2lkIDB9O1hyLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvPXMudW5wYWNrKG4sZSxGOCk7ZSs9cy5wYWNrZWRMZW5ndGg7bGV0IGE9cy51bnBhY2sobixlLEQ4KTtlKz1zLnBhY2tlZExlbmd0aDtsZXQgcj1sZS51bnBhY2sobixlLEI4KTtlKz1sZS5wYWNrZWRMZW5ndGg7bGV0IGk9bltlKytdLGY9bltlKytdLGQ9bltlKytdLGM9bltlKytdLHU9bltlKytdLGw9bltlKytdLGg9bltlXTtyZXR1cm4gXyh0KT8odC5fcmFkaWk9cy5jbG9uZShvLHQuX3JhZGlpKSx0Ll9pbm5lclJhZGlpPXMuY2xvbmUoYSx0Ll9pbm5lclJhZGlpKSx0Ll92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUocix0Ll92ZXJ0ZXhGb3JtYXQpLHQuX21pbmltdW1DbG9jaz1pLHQuX21heGltdW1DbG9jaz1mLHQuX21pbmltdW1Db25lPWQsdC5fbWF4aW11bUNvbmU9Yyx0Ll9zdGFja1BhcnRpdGlvbnM9dSx0Ll9zbGljZVBhcnRpdGlvbnM9bCx0Ll9vZmZzZXRBdHRyaWJ1dGU9aD09PS0xP3ZvaWQgMDpoLHQpOihDaS5taW5pbXVtQ2xvY2s9aSxDaS5tYXhpbXVtQ2xvY2s9ZixDaS5taW5pbXVtQ29uZT1kLENpLm1heGltdW1Db25lPWMsQ2kuc3RhY2tQYXJ0aXRpb25zPXUsQ2kuc2xpY2VQYXJ0aXRpb25zPWwsQ2kub2Zmc2V0QXR0cmlidXRlPWg9PT0tMT92b2lkIDA6aCxuZXcgWHIoQ2kpKX07WHIuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7bGV0IGU9bi5fcmFkaWk7aWYoZS54PD0wfHxlLnk8PTB8fGUuejw9MClyZXR1cm47bGV0IHQ9bi5faW5uZXJSYWRpaTtpZih0Lng8PTB8fHQueTw9MHx8dC56PD0wKXJldHVybjtsZXQgbz1uLl9taW5pbXVtQ2xvY2ssYT1uLl9tYXhpbXVtQ2xvY2sscj1uLl9taW5pbXVtQ29uZSxpPW4uX21heGltdW1Db25lLGY9bi5fdmVydGV4Rm9ybWF0LGQ9bi5fc2xpY2VQYXJ0aXRpb25zKzEsYz1uLl9zdGFja1BhcnRpdGlvbnMrMTtkPU1hdGgucm91bmQoZCpNYXRoLmFicyhhLW8pL2suVFdPX1BJKSxjPU1hdGgucm91bmQoYypNYXRoLmFicyhpLXIpL2suUEkpLGQ8MiYmKGQ9MiksYzwyJiYoYz0yKTtsZXQgdSxsLGg9MCxtPVtyXSxiPVtvXTtmb3IodT0wO3U8Yzt1KyspbS5wdXNoKHIrdSooaS1yKS8oYy0xKSk7Zm9yKG0ucHVzaChpKSxsPTA7bDxkO2wrKyliLnB1c2gobytsKihhLW8pLyhkLTEpKTtiLnB1c2goYSk7bGV0IHA9bS5sZW5ndGgseT1iLmxlbmd0aCxFPTAsZz0xLEE9dC54IT09ZS54fHx0LnkhPT1lLnl8fHQueiE9PWUueixUPSExLFI9ITEsUz0hMTtBJiYoZz0yLHI+MCYmKFQ9ITAsRSs9ZC0xKSxpPE1hdGguUEkmJihSPSEwLEUrPWQtMSksKGEtbyklay5UV09fUEk/KFM9ITAsRSs9KGMtMSkqMisxKTpFKz0xKTtsZXQgTT15KnAqZyxJPW5ldyBGbG9hdDY0QXJyYXkoTSozKSxOPW5ldyBBcnJheShNKS5maWxsKCExKSxQPW5ldyBBcnJheShNKS5maWxsKCExKSxGPWQqYypnLHc9NiooRitFKzEtKGQrYykqZykseD1JZS5jcmVhdGVUeXBlZEFycmF5KEYsdyksQz1mLm5vcm1hbD9uZXcgRmxvYXQzMkFycmF5KE0qMyk6dm9pZCAwLHY9Zi50YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoTSozKTp2b2lkIDAsaj1mLmJpdGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KE0qMyk6dm9pZCAwLHo9Zi5zdD9uZXcgRmxvYXQzMkFycmF5KE0qMik6dm9pZCAwLEQ9bmV3IEFycmF5KHApLEc9bmV3IEFycmF5KHApO2Zvcih1PTA7dTxwO3UrKylEW3VdPXY4KG1bdV0pLEdbdV09azgobVt1XSk7bGV0IFY9bmV3IEFycmF5KHkpLE89bmV3IEFycmF5KHkpO2ZvcihsPTA7bDx5O2wrKylPW2xdPWs4KGJbbF0pLFZbbF09djgoYltsXSk7Zm9yKHU9MDt1PHA7dSsrKWZvcihsPTA7bDx5O2wrKylJW2grK109ZS54KkRbdV0qT1tsXSxJW2grK109ZS55KkRbdV0qVltsXSxJW2grK109ZS56KkdbdV07bGV0IFo9TS8yO2lmKEEpZm9yKHU9MDt1PHA7dSsrKWZvcihsPTA7bDx5O2wrKylJW2grK109dC54KkRbdV0qT1tsXSxJW2grK109dC55KkRbdV0qVltsXSxJW2grK109dC56KkdbdV0sTltaXT0hMCx1PjAmJnUhPT1wLTEmJmwhPT0wJiZsIT09eS0xJiYoUFtaXT0hMCksWisrO2g9MDtsZXQgYWUsY2U7Zm9yKHU9MTt1PHAtMjt1KyspZm9yKGFlPXUqeSxjZT0odSsxKSp5LGw9MTtsPHktMjtsKyspeFtoKytdPWNlK2wseFtoKytdPWNlK2wrMSx4W2grK109YWUrbCsxLHhbaCsrXT1jZStsLHhbaCsrXT1hZStsKzEseFtoKytdPWFlK2w7aWYoQSl7bGV0IFplPXAqeTtmb3IodT0xO3U8cC0yO3UrKylmb3IoYWU9WmUrdSp5LGNlPVplKyh1KzEpKnksbD0xO2w8eS0yO2wrKyl4W2grK109Y2UrbCx4W2grK109YWUrbCx4W2grK109YWUrbCsxLHhbaCsrXT1jZStsLHhbaCsrXT1hZStsKzEseFtoKytdPWNlK2wrMX1sZXQgZmUsdGU7aWYoQSl7aWYoVClmb3IodGU9cCp5LHU9MTt1PHktMjt1KyspeFtoKytdPXUseFtoKytdPXUrMSx4W2grK109dGUrdSsxLHhbaCsrXT11LHhbaCsrXT10ZSt1KzEseFtoKytdPXRlK3U7aWYoUilmb3IoZmU9cCp5LXksdGU9cCp5KmcteSx1PTE7dTx5LTI7dSsrKXhbaCsrXT1mZSt1KzEseFtoKytdPWZlK3UseFtoKytdPXRlK3UseFtoKytdPWZlK3UrMSx4W2grK109dGUrdSx4W2grK109dGUrdSsxfWlmKFMpe2Zvcih1PTE7dTxwLTI7dSsrKXRlPXkqcCt5KnUsZmU9eSp1LHhbaCsrXT10ZSx4W2grK109ZmUreSx4W2grK109ZmUseFtoKytdPXRlLHhbaCsrXT10ZSt5LHhbaCsrXT1mZSt5O2Zvcih1PTE7dTxwLTI7dSsrKXRlPXkqcCt5Kih1KzEpLTEsZmU9eSoodSsxKS0xLHhbaCsrXT1mZSt5LHhbaCsrXT10ZSx4W2grK109ZmUseFtoKytdPWZlK3kseFtoKytdPXRlK3kseFtoKytdPXRlfWxldCBtZT1uZXcgUWU7Zi5wb3NpdGlvbiYmKG1lLnBvc2l0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6SX0pKTtsZXQgdWU9MCxiZT0wLGhlPTAsUT0wLFRlPU0vMixDZSxXZT1LLmZyb21DYXJ0ZXNpYW4zKGUpLHplPUsuZnJvbUNhcnRlc2lhbjModCk7aWYoZi5zdHx8Zi5ub3JtYWx8fGYudGFuZ2VudHx8Zi5iaXRhbmdlbnQpe2Zvcih1PTA7dTxNO3UrKyl7Q2U9Tlt1XT96ZTpXZTtsZXQgWmU9cy5mcm9tQXJyYXkoSSx1KjMsaDkpLEtlPUNlLmdlb2RldGljU3VyZmFjZU5vcm1hbChaZSxtOSk7aWYoUFt1XSYmcy5uZWdhdGUoS2UsS2UpLGYuc3Qpe2xldCBEZT1ZLm5lZ2F0ZShLZSxnOSk7elt1ZSsrXT1NYXRoLmF0YW4yKERlLnksRGUueCkvay5UV09fUEkrLjUselt1ZSsrXT1NYXRoLmFzaW4oS2UueikvTWF0aC5QSSsuNX1pZihmLm5vcm1hbCYmKENbYmUrK109S2UueCxDW2JlKytdPUtlLnksQ1tiZSsrXT1LZS56KSxmLnRhbmdlbnR8fGYuYml0YW5nZW50KXtsZXQgRGU9YjksQmU9MCxldDtpZihOW3VdJiYoQmU9VGUpLCFUJiZ1Pj1CZSYmdTxCZSt5KjI/ZXQ9cy5VTklUX1g6ZXQ9cy5VTklUX1oscy5jcm9zcyhldCxLZSxEZSkscy5ub3JtYWxpemUoRGUsRGUpLGYudGFuZ2VudCYmKHZbaGUrK109RGUueCx2W2hlKytdPURlLnksdltoZSsrXT1EZS56KSxmLmJpdGFuZ2VudCl7bGV0IHFlPXMuY3Jvc3MoS2UsRGUscDkpO3Mubm9ybWFsaXplKHFlLHFlKSxqW1ErK109cWUueCxqW1ErK109cWUueSxqW1ErK109cWUuen19fWYuc3QmJihtZS5zdD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6en0pKSxmLm5vcm1hbCYmKG1lLm5vcm1hbD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Q30pKSxmLnRhbmdlbnQmJihtZS50YW5nZW50PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczp2fSkpLGYuYml0YW5nZW50JiYobWUuYml0YW5nZW50PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpqfSkpfWlmKF8obi5fb2Zmc2V0QXR0cmlidXRlKSl7bGV0IFplPUkubGVuZ3RoLEtlPW4uX29mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxLERlPW5ldyBVaW50OEFycmF5KFplLzMpLmZpbGwoS2UpO21lLmFwcGx5T2Zmc2V0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOkRlfSl9cmV0dXJuIG5ldyBQZSh7YXR0cmlidXRlczptZSxpbmRpY2VzOngscHJpbWl0aXZlVHlwZTpGZS5UUklBTkdMRVMsYm91bmRpbmdTcGhlcmU6Z2UuZnJvbUVsbGlwc29pZChXZSksb2Zmc2V0QXR0cmlidXRlOm4uX29mZnNldEF0dHJpYnV0ZX0pfTtYci5nZXRVbml0RWxsaXBzb2lkPWZ1bmN0aW9uKCl7cmV0dXJuIF8oSjApfHwoSjA9WHIuY3JlYXRlR2VvbWV0cnkobmV3IFhyKHtyYWRpaTpuZXcgcygxLDEsMSksdmVydGV4Rm9ybWF0OmxlLlBPU0lUSU9OX09OTFl9KSkpLEowfTtpYT1Ycn0pO3ZhciBaMD17fTskZShaMCx7ZGVmYXVsdDooKT0+QTl9KTtmdW5jdGlvbiB5OShuLGUpe3JldHVybiBfKGUpJiYobj1pYS51bnBhY2sobixlKSksaWEuY3JlYXRlR2VvbWV0cnkobil9dmFyIEE5LFEwPVgoKCk9PntzZSgpO2toKCk7QTk9eTl9KTtmdW5jdGlvbiBTcyhuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLnJhZGlpPz93OSx0PW4uaW5uZXJSYWRpaT8/ZSxvPW4ubWluaW11bUNsb2NrPz8wLGE9bi5tYXhpbXVtQ2xvY2s/P2suVFdPX1BJLHI9bi5taW5pbXVtQ29uZT8/MCxpPW4ubWF4aW11bUNvbmU/P2suUEksZj1NYXRoLnJvdW5kKG4uc3RhY2tQYXJ0aXRpb25zPz8xMCksZD1NYXRoLnJvdW5kKG4uc2xpY2VQYXJ0aXRpb25zPz84KSxjPU1hdGgucm91bmQobi5zdWJkaXZpc2lvbnM/PzEyOCk7dGhpcy5fcmFkaWk9cy5jbG9uZShlKSx0aGlzLl9pbm5lclJhZGlpPXMuY2xvbmUodCksdGhpcy5fbWluaW11bUNsb2NrPW8sdGhpcy5fbWF4aW11bUNsb2NrPWEsdGhpcy5fbWluaW11bUNvbmU9cix0aGlzLl9tYXhpbXVtQ29uZT1pLHRoaXMuX3N0YWNrUGFydGl0aW9ucz1mLHRoaXMuX3NsaWNlUGFydGl0aW9ucz1kLHRoaXMuX3N1YmRpdmlzaW9ucz1jLHRoaXMuX29mZnNldEF0dHJpYnV0ZT1uLm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVFbGxpcHNvaWRPdXRsaW5lR2VvbWV0cnkifXZhciB3OSx2aCxGaCxqOCxVOCxZcixZYSwkMD1YKCgpPT57RXQoKTtNZSgpO0N0KCk7c3QoKTtzZSgpO1ZlKCk7WHQoKTtZdCgpO3JuKCk7am8oKTtadCgpO1VlKCk7dG4oKTt3OT1uZXcgcygxLDEsMSksdmg9TWF0aC5jb3MsRmg9TWF0aC5zaW47U3MucGFja2VkTGVuZ3RoPTIqcy5wYWNrZWRMZW5ndGgrODtTcy5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gdD10Pz8wLHMucGFjayhuLl9yYWRpaSxlLHQpLHQrPXMucGFja2VkTGVuZ3RoLHMucGFjayhuLl9pbm5lclJhZGlpLGUsdCksdCs9cy5wYWNrZWRMZW5ndGgsZVt0KytdPW4uX21pbmltdW1DbG9jayxlW3QrK109bi5fbWF4aW11bUNsb2NrLGVbdCsrXT1uLl9taW5pbXVtQ29uZSxlW3QrK109bi5fbWF4aW11bUNvbmUsZVt0KytdPW4uX3N0YWNrUGFydGl0aW9ucyxlW3QrK109bi5fc2xpY2VQYXJ0aXRpb25zLGVbdCsrXT1uLl9zdWJkaXZpc2lvbnMsZVt0XT1uLl9vZmZzZXRBdHRyaWJ1dGU/Py0xLGV9O2o4PW5ldyBzLFU4PW5ldyBzLFlyPXtyYWRpaTpqOCxpbm5lclJhZGlpOlU4LG1pbmltdW1DbG9jazp2b2lkIDAsbWF4aW11bUNsb2NrOnZvaWQgMCxtaW5pbXVtQ29uZTp2b2lkIDAsbWF4aW11bUNvbmU6dm9pZCAwLHN0YWNrUGFydGl0aW9uczp2b2lkIDAsc2xpY2VQYXJ0aXRpb25zOnZvaWQgMCxzdWJkaXZpc2lvbnM6dm9pZCAwLG9mZnNldEF0dHJpYnV0ZTp2b2lkIDB9O1NzLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvPXMudW5wYWNrKG4sZSxqOCk7ZSs9cy5wYWNrZWRMZW5ndGg7bGV0IGE9cy51bnBhY2sobixlLFU4KTtlKz1zLnBhY2tlZExlbmd0aDtsZXQgcj1uW2UrK10saT1uW2UrK10sZj1uW2UrK10sZD1uW2UrK10sYz1uW2UrK10sdT1uW2UrK10sbD1uW2UrK10saD1uW2VdO3JldHVybiBfKHQpPyh0Ll9yYWRpaT1zLmNsb25lKG8sdC5fcmFkaWkpLHQuX2lubmVyUmFkaWk9cy5jbG9uZShhLHQuX2lubmVyUmFkaWkpLHQuX21pbmltdW1DbG9jaz1yLHQuX21heGltdW1DbG9jaz1pLHQuX21pbmltdW1Db25lPWYsdC5fbWF4aW11bUNvbmU9ZCx0Ll9zdGFja1BhcnRpdGlvbnM9Yyx0Ll9zbGljZVBhcnRpdGlvbnM9dSx0Ll9zdWJkaXZpc2lvbnM9bCx0Ll9vZmZzZXRBdHRyaWJ1dGU9aD09PS0xP3ZvaWQgMDpoLHQpOihZci5taW5pbXVtQ2xvY2s9cixZci5tYXhpbXVtQ2xvY2s9aSxZci5taW5pbXVtQ29uZT1mLFlyLm1heGltdW1Db25lPWQsWXIuc3RhY2tQYXJ0aXRpb25zPWMsWXIuc2xpY2VQYXJ0aXRpb25zPXUsWXIuc3ViZGl2aXNpb25zPWwsWXIub2Zmc2V0QXR0cmlidXRlPWg9PT0tMT92b2lkIDA6aCxuZXcgU3MoWXIpKX07U3MuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7bGV0IGU9bi5fcmFkaWk7aWYoZS54PD0wfHxlLnk8PTB8fGUuejw9MClyZXR1cm47bGV0IHQ9bi5faW5uZXJSYWRpaTtpZih0Lng8PTB8fHQueTw9MHx8dC56PD0wKXJldHVybjtsZXQgbz1uLl9taW5pbXVtQ2xvY2ssYT1uLl9tYXhpbXVtQ2xvY2sscj1uLl9taW5pbXVtQ29uZSxpPW4uX21heGltdW1Db25lLGY9bi5fc3ViZGl2aXNpb25zLGQ9Sy5mcm9tQ2FydGVzaWFuMyhlKSxjPW4uX3NsaWNlUGFydGl0aW9ucysxLHU9bi5fc3RhY2tQYXJ0aXRpb25zKzE7Yz1NYXRoLnJvdW5kKGMqTWF0aC5hYnMoYS1vKS9rLlRXT19QSSksdT1NYXRoLnJvdW5kKHUqTWF0aC5hYnMoaS1yKS9rLlBJKSxjPDImJihjPTIpLHU8MiYmKHU9Mik7bGV0IGw9MCxoPTEsbT10LnghPT1lLnh8fHQueSE9PWUueXx8dC56IT09ZS56LGI9ITEscD0hMTttJiYoaD0yLHI+MCYmKGI9ITAsbCs9YyksaTxNYXRoLlBJJiYocD0hMCxsKz1jKSk7bGV0IHk9ZipoKih1K2MpLEU9bmV3IEZsb2F0NjRBcnJheSh5KjMpLGc9MiooeStsLShjK3UpKmgpLEE9SWUuY3JlYXRlVHlwZWRBcnJheSh5LGcpLFQsUixTLE0sST0wLE49bmV3IEFycmF5KHUpLFA9bmV3IEFycmF5KHUpO2ZvcihUPTA7VDx1O1QrKylNPXIrVCooaS1yKS8odS0xKSxOW1RdPUZoKE0pLFBbVF09dmgoTSk7bGV0IEY9bmV3IEFycmF5KGYpLHc9bmV3IEFycmF5KGYpO2ZvcihUPTA7VDxmO1QrKylTPW8rVCooYS1vKS8oZi0xKSxGW1RdPUZoKFMpLHdbVF09dmgoUyk7Zm9yKFQ9MDtUPHU7VCsrKWZvcihSPTA7UjxmO1IrKylFW0krK109ZS54Kk5bVF0qd1tSXSxFW0krK109ZS55Kk5bVF0qRltSXSxFW0krK109ZS56KlBbVF07aWYobSlmb3IoVD0wO1Q8dTtUKyspZm9yKFI9MDtSPGY7UisrKUVbSSsrXT10LngqTltUXSp3W1JdLEVbSSsrXT10LnkqTltUXSpGW1JdLEVbSSsrXT10LnoqUFtUXTtmb3IoTi5sZW5ndGg9ZixQLmxlbmd0aD1mLFQ9MDtUPGY7VCsrKU09citUKihpLXIpLyhmLTEpLE5bVF09RmgoTSksUFtUXT12aChNKTtmb3IoRi5sZW5ndGg9Yyx3Lmxlbmd0aD1jLFQ9MDtUPGM7VCsrKVM9bytUKihhLW8pLyhjLTEpLEZbVF09RmgoUyksd1tUXT12aChTKTtmb3IoVD0wO1Q8ZjtUKyspZm9yKFI9MDtSPGM7UisrKUVbSSsrXT1lLngqTltUXSp3W1JdLEVbSSsrXT1lLnkqTltUXSpGW1JdLEVbSSsrXT1lLnoqUFtUXTtpZihtKWZvcihUPTA7VDxmO1QrKylmb3IoUj0wO1I8YztSKyspRVtJKytdPXQueCpOW1RdKndbUl0sRVtJKytdPXQueSpOW1RdKkZbUl0sRVtJKytdPXQueipQW1RdO2ZvcihJPTAsVD0wO1Q8dSpoO1QrKyl7bGV0IHY9VCpmO2ZvcihSPTA7UjxmLTE7UisrKUFbSSsrXT12K1IsQVtJKytdPXYrUisxfWxldCB4PXUqZipoO2ZvcihUPTA7VDxjO1QrKylmb3IoUj0wO1I8Zi0xO1IrKylBW0krK109eCtUK1IqYyxBW0krK109eCtUKyhSKzEpKmM7aWYobSlmb3IoeD11KmYqaCtjKmYsVD0wO1Q8YztUKyspZm9yKFI9MDtSPGYtMTtSKyspQVtJKytdPXgrVCtSKmMsQVtJKytdPXgrVCsoUisxKSpjO2lmKG0pe2xldCB2PXUqZipoLGo9ditmKmM7aWYoYilmb3IoVD0wO1Q8YztUKyspQVtJKytdPXYrVCxBW0krK109aitUO2lmKHApZm9yKHYrPWYqYy1jLGorPWYqYy1jLFQ9MDtUPGM7VCsrKUFbSSsrXT12K1QsQVtJKytdPWorVH1sZXQgQz1uZXcgUWUoe3Bvc2l0aW9uOm5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6RX0pfSk7aWYoXyhuLl9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgdj1FLmxlbmd0aCxqPW4uX29mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxLHo9bmV3IFVpbnQ4QXJyYXkodi8zKS5maWxsKGopO0MuYXBwbHlPZmZzZXQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6en0pfXJldHVybiBuZXcgUGUoe2F0dHJpYnV0ZXM6QyxpbmRpY2VzOkEscHJpbWl0aXZlVHlwZTpGZS5MSU5FUyxib3VuZGluZ1NwaGVyZTpnZS5mcm9tRWxsaXBzb2lkKGQpLG9mZnNldEF0dHJpYnV0ZTpuLl9vZmZzZXRBdHRyaWJ1dGV9KX07WWE9U3N9KTt2YXIgZWc9e307JGUoZWcse2RlZmF1bHQ6KCk9PkU5fSk7ZnVuY3Rpb24gVDkobixlKXtyZXR1cm4gXyhuLmJ1ZmZlcixlKSYmKG49WWEudW5wYWNrKG4sZSkpLFlhLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBFOSx0Zz1YKCgpPT57c2UoKTskMCgpO0U5PVQ5fSk7ZnVuY3Rpb24gU2Eobil7dGhpcy5wbGFuZXM9bj8/W119dmFyIGlkLE1pLFI5LEw4LERoLG5nPVgoKCk9PntNZSgpO2JhKCk7c2UoKTtaaSgpO3BpKCk7aWQ9W25ldyBzLG5ldyBzLG5ldyBzXTtzLmNsb25lKHMuVU5JVF9YLGlkWzBdKTtzLmNsb25lKHMuVU5JVF9ZLGlkWzFdKTtzLmNsb25lKHMuVU5JVF9aLGlkWzJdKTtNaT1uZXcgcyxSOT1uZXcgcyxMOD1uZXcgbm4obmV3IHMoMSwwLDApLDApO1NhLmZyb21Cb3VuZGluZ1NwaGVyZT1mdW5jdGlvbihuLGUpe18oZSl8fChlPW5ldyBTYSk7bGV0IHQ9aWQubGVuZ3RoLG89ZS5wbGFuZXM7by5sZW5ndGg9Mip0O2xldCBhPW4uY2VudGVyLHI9bi5yYWRpdXMsaT0wO2ZvcihsZXQgZj0wO2Y8dDsrK2Ype2xldCBkPWlkW2ZdLGM9b1tpXSx1PW9baSsxXTtfKGMpfHwoYz1vW2ldPW5ldyBydCksXyh1KXx8KHU9b1tpKzFdPW5ldyBydCkscy5tdWx0aXBseUJ5U2NhbGFyKGQsLXIsTWkpLHMuYWRkKGEsTWksTWkpLGMueD1kLngsYy55PWQueSxjLno9ZC56LGMudz0tcy5kb3QoZCxNaSkscy5tdWx0aXBseUJ5U2NhbGFyKGQscixNaSkscy5hZGQoYSxNaSxNaSksdS54PS1kLngsdS55PS1kLnksdS56PS1kLnosdS53PS1zLmRvdChzLm5lZ2F0ZShkLFI5KSxNaSksaSs9Mn1yZXR1cm4gZX07U2EucHJvdG90eXBlLmNvbXB1dGVWaXNpYmlsaXR5PWZ1bmN0aW9uKG4pe2xldCBlPXRoaXMucGxhbmVzLHQ9ITE7Zm9yKGxldCBvPTAsYT1lLmxlbmd0aDtvPGE7KytvKXtsZXQgcj1uLmludGVyc2VjdFBsYW5lKG5uLmZyb21DYXJ0ZXNpYW40KGVbb10sTDgpKTtpZihyPT09VG4uT1VUU0lERSlyZXR1cm4gVG4uT1VUU0lERTtyPT09VG4uSU5URVJTRUNUSU5HJiYodD0hMCl9cmV0dXJuIHQ/VG4uSU5URVJTRUNUSU5HOlRuLklOU0lERX07U2EucHJvdG90eXBlLmNvbXB1dGVWaXNpYmlsaXR5V2l0aFBsYW5lTWFzaz1mdW5jdGlvbihuLGUpe2lmKGU9PT1TYS5NQVNLX09VVFNJREV8fGU9PT1TYS5NQVNLX0lOU0lERSlyZXR1cm4gZTtsZXQgdD1TYS5NQVNLX0lOU0lERSxvPXRoaXMucGxhbmVzO2ZvcihsZXQgYT0wLHI9by5sZW5ndGg7YTxyOysrYSl7bGV0IGk9YTwzMT8xPDxhOjA7aWYoYTwzMSYmKGUmaSk9PT0wKWNvbnRpbnVlO2xldCBmPW4uaW50ZXJzZWN0UGxhbmUobm4uZnJvbUNhcnRlc2lhbjQob1thXSxMOCkpO2lmKGY9PT1Ubi5PVVRTSURFKXJldHVybiBTYS5NQVNLX09VVFNJREU7Zj09PVRuLklOVEVSU0VDVElORyYmKHR8PWkpfXJldHVybiB0fTtTYS5NQVNLX09VVFNJREU9NDI5NDk2NzI5NTtTYS5NQVNLX0lOU0lERT0wO1NhLk1BU0tfSU5ERVRFUk1JTkFURT0yMTQ3NDgzNjQ3O0RoPVNhfSk7ZnVuY3Rpb24gbXIobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1QsdGhpcy5sZWZ0PW4ubGVmdCx0aGlzLl9sZWZ0PXZvaWQgMCx0aGlzLnJpZ2h0PW4ucmlnaHQsdGhpcy5fcmlnaHQ9dm9pZCAwLHRoaXMudG9wPW4udG9wLHRoaXMuX3RvcD12b2lkIDAsdGhpcy5ib3R0b209bi5ib3R0b20sdGhpcy5fYm90dG9tPXZvaWQgMCx0aGlzLm5lYXI9bi5uZWFyPz8xLHRoaXMuX25lYXI9dGhpcy5uZWFyLHRoaXMuZmFyPW4uZmFyPz81ZTgsdGhpcy5fZmFyPXRoaXMuZmFyLHRoaXMuX2N1bGxpbmdWb2x1bWU9bmV3IERoLHRoaXMuX29ydGhvZ3JhcGhpY01hdHJpeD1uZXcgJH1mdW5jdGlvbiB6OChuKXsobi50b3AhPT1uLl90b3B8fG4uYm90dG9tIT09bi5fYm90dG9tfHxuLmxlZnQhPT1uLl9sZWZ0fHxuLnJpZ2h0IT09bi5fcmlnaHR8fG4ubmVhciE9PW4uX25lYXJ8fG4uZmFyIT09bi5fZmFyKSYmKG4uX2xlZnQ9bi5sZWZ0LG4uX3JpZ2h0PW4ucmlnaHQsbi5fdG9wPW4udG9wLG4uX2JvdHRvbT1uLmJvdHRvbSxuLl9uZWFyPW4ubmVhcixuLl9mYXI9bi5mYXIsbi5fb3J0aG9ncmFwaGljTWF0cml4PSQuY29tcHV0ZU9ydGhvZ3JhcGhpY09mZkNlbnRlcihuLmxlZnQsbi5yaWdodCxuLmJvdHRvbSxuLnRvcCxuLm5lYXIsbi5mYXIsbi5fb3J0aG9ncmFwaGljTWF0cml4KSl9dmFyIHg5LE85LFM5LG9nLEc4LFY4PVgoKCk9PntNZSgpO2JhKCk7bmcoKTtzdCgpO3NlKCk7VWUoKTt1bigpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG1yLnByb3RvdHlwZSx7cHJvamVjdGlvbk1hdHJpeDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHo4KHRoaXMpLHRoaXMuX29ydGhvZ3JhcGhpY01hdHJpeH19fSk7eDk9bmV3IHMsTzk9bmV3IHMsUzk9bmV3IHMsb2c9bmV3IHM7bXIucHJvdG90eXBlLmNvbXB1dGVDdWxsaW5nVm9sdW1lPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz10aGlzLl9jdWxsaW5nVm9sdW1lLnBsYW5lcyxhPXRoaXMudG9wLHI9dGhpcy5ib3R0b20saT10aGlzLnJpZ2h0LGY9dGhpcy5sZWZ0LGQ9dGhpcy5uZWFyLGM9dGhpcy5mYXIsdT1zLmNyb3NzKGUsdCx4OSk7cy5ub3JtYWxpemUodSx1KTtsZXQgbD1POTtzLm11bHRpcGx5QnlTY2FsYXIoZSxkLGwpLHMuYWRkKG4sbCxsKTtsZXQgaD1TOTtzLm11bHRpcGx5QnlTY2FsYXIodSxmLGgpLHMuYWRkKGwsaCxoKTtsZXQgbT1vWzBdO3JldHVybiBfKG0pfHwobT1vWzBdPW5ldyBydCksbS54PXUueCxtLnk9dS55LG0uej11LnosbS53PS1zLmRvdCh1LGgpLHMubXVsdGlwbHlCeVNjYWxhcih1LGksaCkscy5hZGQobCxoLGgpLG09b1sxXSxfKG0pfHwobT1vWzFdPW5ldyBydCksbS54PS11LngsbS55PS11LnksbS56PS11LnosbS53PS1zLmRvdChzLm5lZ2F0ZSh1LG9nKSxoKSxzLm11bHRpcGx5QnlTY2FsYXIodCxyLGgpLHMuYWRkKGwsaCxoKSxtPW9bMl0sXyhtKXx8KG09b1syXT1uZXcgcnQpLG0ueD10LngsbS55PXQueSxtLno9dC56LG0udz0tcy5kb3QodCxoKSxzLm11bHRpcGx5QnlTY2FsYXIodCxhLGgpLHMuYWRkKGwsaCxoKSxtPW9bM10sXyhtKXx8KG09b1szXT1uZXcgcnQpLG0ueD0tdC54LG0ueT0tdC55LG0uej0tdC56LG0udz0tcy5kb3Qocy5uZWdhdGUodCxvZyksaCksbT1vWzRdLF8obSl8fChtPW9bNF09bmV3IHJ0KSxtLng9ZS54LG0ueT1lLnksbS56PWUueixtLnc9LXMuZG90KGUsbCkscy5tdWx0aXBseUJ5U2NhbGFyKGUsYyxoKSxzLmFkZChuLGgsaCksbT1vWzVdLF8obSl8fChtPW9bNV09bmV3IHJ0KSxtLng9LWUueCxtLnk9LWUueSxtLno9LWUueixtLnc9LXMuZG90KHMubmVnYXRlKGUsb2cpLGgpLHRoaXMuX2N1bGxpbmdWb2x1bWV9O21yLnByb3RvdHlwZS5nZXRQaXhlbERpbWVuc2lvbnM9ZnVuY3Rpb24obixlLHQsbyxhKXt6OCh0aGlzKTtsZXQgcj10aGlzLnJpZ2h0LXRoaXMubGVmdCxpPXRoaXMudG9wLXRoaXMuYm90dG9tLGY9bypyL24sZD1vKmkvZTtyZXR1cm4gYS54PWYsYS55PWQsYX07bXIucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKG4pe3JldHVybiBfKG4pfHwobj1uZXcgbXIpLG4ubGVmdD10aGlzLmxlZnQsbi5yaWdodD10aGlzLnJpZ2h0LG4udG9wPXRoaXMudG9wLG4uYm90dG9tPXRoaXMuYm90dG9tLG4ubmVhcj10aGlzLm5lYXIsbi5mYXI9dGhpcy5mYXIsbi5fbGVmdD12b2lkIDAsbi5fcmlnaHQ9dm9pZCAwLG4uX3RvcD12b2lkIDAsbi5fYm90dG9tPXZvaWQgMCxuLl9uZWFyPXZvaWQgMCxuLl9mYXI9dm9pZCAwLG59O21yLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24obil7cmV0dXJuIF8obikmJm4gaW5zdGFuY2VvZiBtciYmdGhpcy5yaWdodD09PW4ucmlnaHQmJnRoaXMubGVmdD09PW4ubGVmdCYmdGhpcy50b3A9PT1uLnRvcCYmdGhpcy5ib3R0b209PT1uLmJvdHRvbSYmdGhpcy5uZWFyPT09bi5uZWFyJiZ0aGlzLmZhcj09PW4uZmFyfTttci5wcm90b3R5cGUuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIG49PT10aGlzfHxfKG4pJiZuIGluc3RhbmNlb2YgbXImJmsuZXF1YWxzRXBzaWxvbih0aGlzLnJpZ2h0LG4ucmlnaHQsZSx0KSYmay5lcXVhbHNFcHNpbG9uKHRoaXMubGVmdCxuLmxlZnQsZSx0KSYmay5lcXVhbHNFcHNpbG9uKHRoaXMudG9wLG4udG9wLGUsdCkmJmsuZXF1YWxzRXBzaWxvbih0aGlzLmJvdHRvbSxuLmJvdHRvbSxlLHQpJiZrLmVxdWFsc0Vwc2lsb24odGhpcy5uZWFyLG4ubmVhcixlLHQpJiZrLmVxdWFsc0Vwc2lsb24odGhpcy5mYXIsbi5mYXIsZSx0KX07Rzg9bXJ9KTtmdW5jdGlvbiBlYShuKXtuPW4/P09lLkVNUFRZX09CSkVDVCx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtPW5ldyBHOCx0aGlzLndpZHRoPW4ud2lkdGgsdGhpcy5fd2lkdGg9dm9pZCAwLHRoaXMuYXNwZWN0UmF0aW89bi5hc3BlY3RSYXRpbyx0aGlzLl9hc3BlY3RSYXRpbz12b2lkIDAsdGhpcy5uZWFyPW4ubmVhcj8/MSx0aGlzLl9uZWFyPXRoaXMubmVhcix0aGlzLmZhcj1uLmZhcj8/NWU4LHRoaXMuX2Zhcj10aGlzLmZhcn1mdW5jdGlvbiBOaShuKXtsZXQgZT1uLl9vZmZDZW50ZXJGcnVzdHVtO2lmKG4ud2lkdGghPT1uLl93aWR0aHx8bi5hc3BlY3RSYXRpbyE9PW4uX2FzcGVjdFJhdGlvfHxuLm5lYXIhPT1uLl9uZWFyfHxuLmZhciE9PW4uX2Zhcil7bi5fYXNwZWN0UmF0aW89bi5hc3BlY3RSYXRpbyxuLl93aWR0aD1uLndpZHRoLG4uX25lYXI9bi5uZWFyLG4uX2Zhcj1uLmZhcjtsZXQgdD0xL24uYXNwZWN0UmF0aW87ZS5yaWdodD1uLndpZHRoKi41LGUubGVmdD0tZS5yaWdodCxlLnRvcD10KmUucmlnaHQsZS5ib3R0b209LWUudG9wLGUubmVhcj1uLm5lYXIsZS5mYXI9bi5mYXJ9fXZhciBObyxhZz1YKCgpPT57c3QoKTtzZSgpO1VlKCk7VjgoKTtlYS5wYWNrZWRMZW5ndGg9NDtlYS5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gdD10Pz8wLGVbdCsrXT1uLndpZHRoLGVbdCsrXT1uLmFzcGVjdFJhdGlvLGVbdCsrXT1uLm5lYXIsZVt0XT1uLmZhcixlfTtlYS51bnBhY2s9ZnVuY3Rpb24obixlLHQpe3JldHVybiBlPWU/PzAsXyh0KXx8KHQ9bmV3IGVhKSx0LndpZHRoPW5bZSsrXSx0LmFzcGVjdFJhdGlvPW5bZSsrXSx0Lm5lYXI9bltlKytdLHQuZmFyPW5bZV0sdH07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZWEucHJvdG90eXBlLHtwcm9qZWN0aW9uTWF0cml4OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTmkodGhpcyksdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bS5wcm9qZWN0aW9uTWF0cml4fX0sb2ZmQ2VudGVyRnJ1c3R1bTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5pKHRoaXMpLHRoaXMuX29mZkNlbnRlckZydXN0dW19fX0pO2VhLnByb3RvdHlwZS5jb21wdXRlQ3VsbGluZ1ZvbHVtZT1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIE5pKHRoaXMpLHRoaXMuX29mZkNlbnRlckZydXN0dW0uY29tcHV0ZUN1bGxpbmdWb2x1bWUobixlLHQpfTtlYS5wcm90b3R5cGUuZ2V0UGl4ZWxEaW1lbnNpb25zPWZ1bmN0aW9uKG4sZSx0LG8sYSl7cmV0dXJuIE5pKHRoaXMpLHRoaXMuX29mZkNlbnRlckZydXN0dW0uZ2V0UGl4ZWxEaW1lbnNpb25zKG4sZSx0LG8sYSl9O2VhLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbihuKXtyZXR1cm4gXyhuKXx8KG49bmV3IGVhKSxuLmFzcGVjdFJhdGlvPXRoaXMuYXNwZWN0UmF0aW8sbi53aWR0aD10aGlzLndpZHRoLG4ubmVhcj10aGlzLm5lYXIsbi5mYXI9dGhpcy5mYXIsbi5fYXNwZWN0UmF0aW89dm9pZCAwLG4uX3dpZHRoPXZvaWQgMCxuLl9uZWFyPXZvaWQgMCxuLl9mYXI9dm9pZCAwLHRoaXMuX29mZkNlbnRlckZydXN0dW0uY2xvbmUobi5fb2ZmQ2VudGVyRnJ1c3R1bSksbn07ZWEucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihuKXtyZXR1cm4hXyhuKXx8IShuIGluc3RhbmNlb2YgZWEpPyExOihOaSh0aGlzKSxOaShuKSx0aGlzLndpZHRoPT09bi53aWR0aCYmdGhpcy5hc3BlY3RSYXRpbz09PW4uYXNwZWN0UmF0aW8mJnRoaXMuX29mZkNlbnRlckZydXN0dW0uZXF1YWxzKG4uX29mZkNlbnRlckZydXN0dW0pKX07ZWEucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24obixlLHQpe3JldHVybiFfKG4pfHwhKG4gaW5zdGFuY2VvZiBlYSk/ITE6KE5pKHRoaXMpLE5pKG4pLGsuZXF1YWxzRXBzaWxvbih0aGlzLndpZHRoLG4ud2lkdGgsZSx0KSYmay5lcXVhbHNFcHNpbG9uKHRoaXMuYXNwZWN0UmF0aW8sbi5hc3BlY3RSYXRpbyxlLHQpJiZ0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmVxdWFsc0Vwc2lsb24obi5fb2ZmQ2VudGVyRnJ1c3R1bSxlLHQpKX07Tm89ZWF9KTtmdW5jdGlvbiBicihuKXtuPW4/P09lLkVNUFRZX09CSkVDVCx0aGlzLmxlZnQ9bi5sZWZ0LHRoaXMuX2xlZnQ9dm9pZCAwLHRoaXMucmlnaHQ9bi5yaWdodCx0aGlzLl9yaWdodD12b2lkIDAsdGhpcy50b3A9bi50b3AsdGhpcy5fdG9wPXZvaWQgMCx0aGlzLmJvdHRvbT1uLmJvdHRvbSx0aGlzLl9ib3R0b209dm9pZCAwLHRoaXMubmVhcj1uLm5lYXI/PzEsdGhpcy5fbmVhcj10aGlzLm5lYXIsdGhpcy5mYXI9bi5mYXI/PzVlOCx0aGlzLl9mYXI9dGhpcy5mYXIsdGhpcy5fY3VsbGluZ1ZvbHVtZT1uZXcgRGgsdGhpcy5fcGVyc3BlY3RpdmVNYXRyaXg9bmV3ICQsdGhpcy5faW5maW5pdGVQZXJzcGVjdGl2ZT1uZXcgJH1mdW5jdGlvbiByZyhuKXtsZXR7dG9wOmUsYm90dG9tOnQscmlnaHQ6byxsZWZ0OmEsbmVhcjpyLGZhcjppfT1uOyhlIT09bi5fdG9wfHx0IT09bi5fYm90dG9tfHxhIT09bi5fbGVmdHx8byE9PW4uX3JpZ2h0fHxyIT09bi5fbmVhcnx8aSE9PW4uX2ZhcikmJihuLl9sZWZ0PWEsbi5fcmlnaHQ9byxuLl90b3A9ZSxuLl9ib3R0b209dCxuLl9uZWFyPXIsbi5fZmFyPWksbi5fcGVyc3BlY3RpdmVNYXRyaXg9JC5jb21wdXRlUGVyc3BlY3RpdmVPZmZDZW50ZXIoYSxvLHQsZSxyLGksbi5fcGVyc3BlY3RpdmVNYXRyaXgpLG4uX2luZmluaXRlUGVyc3BlY3RpdmU9JC5jb21wdXRlSW5maW5pdGVQZXJzcGVjdGl2ZU9mZkNlbnRlcihhLG8sdCxlLHIsbi5faW5maW5pdGVQZXJzcGVjdGl2ZSkpfXZhciBDOSxNOSxOOSxJOSxIOCxLOD1YKCgpPT57TWUoKTtiYSgpO25nKCk7c3QoKTtzZSgpO1VlKCk7dW4oKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhici5wcm90b3R5cGUse3Byb2plY3Rpb25NYXRyaXg6e2dldDpmdW5jdGlvbigpe3JldHVybiByZyh0aGlzKSx0aGlzLl9wZXJzcGVjdGl2ZU1hdHJpeH19LGluZmluaXRlUHJvamVjdGlvbk1hdHJpeDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJnKHRoaXMpLHRoaXMuX2luZmluaXRlUGVyc3BlY3RpdmV9fX0pO0M5PW5ldyBzLE05PW5ldyBzLE45PW5ldyBzLEk5PW5ldyBzO2JyLnByb3RvdHlwZS5jb21wdXRlQ3VsbGluZ1ZvbHVtZT1mdW5jdGlvbihuLGUsdCl7bGV0IG89dGhpcy5fY3VsbGluZ1ZvbHVtZS5wbGFuZXMsYT10aGlzLnRvcCxyPXRoaXMuYm90dG9tLGk9dGhpcy5yaWdodCxmPXRoaXMubGVmdCxkPXRoaXMubmVhcixjPXRoaXMuZmFyLHU9cy5jcm9zcyhlLHQsQzkpLGw9TTk7cy5tdWx0aXBseUJ5U2NhbGFyKGUsZCxsKSxzLmFkZChuLGwsbCk7bGV0IGg9Tjk7cy5tdWx0aXBseUJ5U2NhbGFyKGUsYyxoKSxzLmFkZChuLGgsaCk7bGV0IG09STk7cy5tdWx0aXBseUJ5U2NhbGFyKHUsZixtKSxzLmFkZChsLG0sbSkscy5zdWJ0cmFjdChtLG4sbSkscy5ub3JtYWxpemUobSxtKSxzLmNyb3NzKG0sdCxtKSxzLm5vcm1hbGl6ZShtLG0pO2xldCBiPW9bMF07cmV0dXJuIF8oYil8fChiPW9bMF09bmV3IHJ0KSxiLng9bS54LGIueT1tLnksYi56PW0ueixiLnc9LXMuZG90KG0sbikscy5tdWx0aXBseUJ5U2NhbGFyKHUsaSxtKSxzLmFkZChsLG0sbSkscy5zdWJ0cmFjdChtLG4sbSkscy5jcm9zcyh0LG0sbSkscy5ub3JtYWxpemUobSxtKSxiPW9bMV0sXyhiKXx8KGI9b1sxXT1uZXcgcnQpLGIueD1tLngsYi55PW0ueSxiLno9bS56LGIudz0tcy5kb3QobSxuKSxzLm11bHRpcGx5QnlTY2FsYXIodCxyLG0pLHMuYWRkKGwsbSxtKSxzLnN1YnRyYWN0KG0sbixtKSxzLmNyb3NzKHUsbSxtKSxzLm5vcm1hbGl6ZShtLG0pLGI9b1syXSxfKGIpfHwoYj1vWzJdPW5ldyBydCksYi54PW0ueCxiLnk9bS55LGIuej1tLnosYi53PS1zLmRvdChtLG4pLHMubXVsdGlwbHlCeVNjYWxhcih0LGEsbSkscy5hZGQobCxtLG0pLHMuc3VidHJhY3QobSxuLG0pLHMuY3Jvc3MobSx1LG0pLHMubm9ybWFsaXplKG0sbSksYj1vWzNdLF8oYil8fChiPW9bM109bmV3IHJ0KSxiLng9bS54LGIueT1tLnksYi56PW0ueixiLnc9LXMuZG90KG0sbiksYj1vWzRdLF8oYil8fChiPW9bNF09bmV3IHJ0KSxiLng9ZS54LGIueT1lLnksYi56PWUueixiLnc9LXMuZG90KGUsbCkscy5uZWdhdGUoZSxtKSxiPW9bNV0sXyhiKXx8KGI9b1s1XT1uZXcgcnQpLGIueD1tLngsYi55PW0ueSxiLno9bS56LGIudz0tcy5kb3QobSxoKSx0aGlzLl9jdWxsaW5nVm9sdW1lfTtici5wcm90b3R5cGUuZ2V0UGl4ZWxEaW1lbnNpb25zPWZ1bmN0aW9uKG4sZSx0LG8sYSl7cmcodGhpcyk7bGV0IHI9MS90aGlzLm5lYXIsaT10aGlzLnRvcCpyLGY9MipvKnQqaS9lO2k9dGhpcy5yaWdodCpyO2xldCBkPTIqbyp0KmkvbjtyZXR1cm4gYS54PWQsYS55PWYsYX07YnIucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKG4pe3JldHVybiBfKG4pfHwobj1uZXcgYnIpLG4ucmlnaHQ9dGhpcy5yaWdodCxuLmxlZnQ9dGhpcy5sZWZ0LG4udG9wPXRoaXMudG9wLG4uYm90dG9tPXRoaXMuYm90dG9tLG4ubmVhcj10aGlzLm5lYXIsbi5mYXI9dGhpcy5mYXIsbi5fbGVmdD12b2lkIDAsbi5fcmlnaHQ9dm9pZCAwLG4uX3RvcD12b2lkIDAsbi5fYm90dG9tPXZvaWQgMCxuLl9uZWFyPXZvaWQgMCxuLl9mYXI9dm9pZCAwLG59O2JyLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24obil7cmV0dXJuIF8obikmJm4gaW5zdGFuY2VvZiBiciYmdGhpcy5yaWdodD09PW4ucmlnaHQmJnRoaXMubGVmdD09PW4ubGVmdCYmdGhpcy50b3A9PT1uLnRvcCYmdGhpcy5ib3R0b209PT1uLmJvdHRvbSYmdGhpcy5uZWFyPT09bi5uZWFyJiZ0aGlzLmZhcj09PW4uZmFyfTtici5wcm90b3R5cGUuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIG49PT10aGlzfHxfKG4pJiZuIGluc3RhbmNlb2YgYnImJmsuZXF1YWxzRXBzaWxvbih0aGlzLnJpZ2h0LG4ucmlnaHQsZSx0KSYmay5lcXVhbHNFcHNpbG9uKHRoaXMubGVmdCxuLmxlZnQsZSx0KSYmay5lcXVhbHNFcHNpbG9uKHRoaXMudG9wLG4udG9wLGUsdCkmJmsuZXF1YWxzRXBzaWxvbih0aGlzLmJvdHRvbSxuLmJvdHRvbSxlLHQpJiZrLmVxdWFsc0Vwc2lsb24odGhpcy5uZWFyLG4ubmVhcixlLHQpJiZrLmVxdWFsc0Vwc2lsb24odGhpcy5mYXIsbi5mYXIsZSx0KX07SDg9YnJ9KTtmdW5jdGlvbiB0YShuKXtuPW4/P09lLkVNUFRZX09CSkVDVCx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtPW5ldyBIOCx0aGlzLmZvdj1uLmZvdix0aGlzLl9mb3Y9dm9pZCAwLHRoaXMuX2Zvdnk9dm9pZCAwLHRoaXMuX3NzZURlbm9taW5hdG9yPXZvaWQgMCx0aGlzLmFzcGVjdFJhdGlvPW4uYXNwZWN0UmF0aW8sdGhpcy5fYXNwZWN0UmF0aW89dm9pZCAwLHRoaXMubmVhcj1uLm5lYXI/PzEsdGhpcy5fbmVhcj10aGlzLm5lYXIsdGhpcy5mYXI9bi5mYXI/PzVlOCx0aGlzLl9mYXI9dGhpcy5mYXIsdGhpcy54T2Zmc2V0PW4ueE9mZnNldD8/MCx0aGlzLl94T2Zmc2V0PXRoaXMueE9mZnNldCx0aGlzLnlPZmZzZXQ9bi55T2Zmc2V0Pz8wLHRoaXMuX3lPZmZzZXQ9dGhpcy55T2Zmc2V0fWZ1bmN0aW9uIEphKG4pe2lmKCEobi5mb3YhPT1uLl9mb3Z8fG4uYXNwZWN0UmF0aW8hPT1uLl9hc3BlY3RSYXRpb3x8bi5uZWFyIT09bi5fbmVhcnx8bi5mYXIhPT1uLl9mYXJ8fG4ueE9mZnNldCE9PW4uX3hPZmZzZXR8fG4ueU9mZnNldCE9PW4uX3lPZmZzZXQpKXJldHVybjtuLl9hc3BlY3RSYXRpbz1uLmFzcGVjdFJhdGlvLG4uX2Zvdj1uLmZvdixuLl9mb3Z5PW4uYXNwZWN0UmF0aW88PTE/bi5mb3Y6TWF0aC5hdGFuKE1hdGgudGFuKG4uZm92Ki41KS9uLmFzcGVjdFJhdGlvKSoyLG4uX25lYXI9bi5uZWFyLG4uX2Zhcj1uLmZhcixuLl9zc2VEZW5vbWluYXRvcj0yKk1hdGgudGFuKC41Km4uX2ZvdnkpLG4uX3hPZmZzZXQ9bi54T2Zmc2V0LG4uX3lPZmZzZXQ9bi55T2Zmc2V0O2xldCB0PW4uX29mZkNlbnRlckZydXN0dW07dC50b3A9bi5uZWFyKk1hdGgudGFuKC41Km4uX2ZvdnkpLHQuYm90dG9tPS10LnRvcCx0LnJpZ2h0PW4uYXNwZWN0UmF0aW8qdC50b3AsdC5sZWZ0PS10LnJpZ2h0LHQubmVhcj1uLm5lYXIsdC5mYXI9bi5mYXIsdC5yaWdodCs9bi54T2Zmc2V0LHQubGVmdCs9bi54T2Zmc2V0LHQudG9wKz1uLnlPZmZzZXQsdC5ib3R0b20rPW4ueU9mZnNldH12YXIgSW8saWc9WCgoKT0+e3N0KCk7c2UoKTtVZSgpO0s4KCk7dGEucGFja2VkTGVuZ3RoPTY7dGEucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCxlW3QrK109bi5mb3YsZVt0KytdPW4uYXNwZWN0UmF0aW8sZVt0KytdPW4ubmVhcixlW3QrK109bi5mYXIsZVt0KytdPW4ueE9mZnNldCxlW3RdPW4ueU9mZnNldCxlfTt0YS51bnBhY2s9ZnVuY3Rpb24obixlLHQpe3JldHVybiBlPWU/PzAsXyh0KXx8KHQ9bmV3IHRhKSx0LmZvdj1uW2UrK10sdC5hc3BlY3RSYXRpbz1uW2UrK10sdC5uZWFyPW5bZSsrXSx0LmZhcj1uW2UrK10sdC54T2Zmc2V0PW5bZSsrXSx0LnlPZmZzZXQ9bltlXSx0fTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YS5wcm90b3R5cGUse3Byb2plY3Rpb25NYXRyaXg6e2dldDpmdW5jdGlvbigpe3JldHVybiBKYSh0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLnByb2plY3Rpb25NYXRyaXh9fSxpbmZpbml0ZVByb2plY3Rpb25NYXRyaXg6e2dldDpmdW5jdGlvbigpe3JldHVybiBKYSh0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmluZmluaXRlUHJvamVjdGlvbk1hdHJpeH19LGZvdnk6e2dldDpmdW5jdGlvbigpe3JldHVybiBKYSh0aGlzKSx0aGlzLl9mb3Z5fX0sc3NlRGVub21pbmF0b3I6e2dldDpmdW5jdGlvbigpe3JldHVybiBKYSh0aGlzKSx0aGlzLl9zc2VEZW5vbWluYXRvcn19LG9mZkNlbnRlckZydXN0dW06e2dldDpmdW5jdGlvbigpe3JldHVybiBKYSh0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtfX19KTt0YS5wcm90b3R5cGUuY29tcHV0ZUN1bGxpbmdWb2x1bWU9ZnVuY3Rpb24obixlLHQpe3JldHVybiBKYSh0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmNvbXB1dGVDdWxsaW5nVm9sdW1lKG4sZSx0KX07dGEucHJvdG90eXBlLmdldFBpeGVsRGltZW5zaW9ucz1mdW5jdGlvbihuLGUsdCxvLGEpe3JldHVybiBKYSh0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmdldFBpeGVsRGltZW5zaW9ucyhuLGUsdCxvLGEpfTt0YS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24obil7cmV0dXJuIF8obil8fChuPW5ldyB0YSksbi5hc3BlY3RSYXRpbz10aGlzLmFzcGVjdFJhdGlvLG4uZm92PXRoaXMuZm92LG4ubmVhcj10aGlzLm5lYXIsbi5mYXI9dGhpcy5mYXIsbi5fYXNwZWN0UmF0aW89dm9pZCAwLG4uX2Zvdj12b2lkIDAsbi5fbmVhcj12b2lkIDAsbi5fZmFyPXZvaWQgMCx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmNsb25lKG4uX29mZkNlbnRlckZydXN0dW0pLG59O3RhLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24obil7cmV0dXJuIV8obil8fCEobiBpbnN0YW5jZW9mIHRhKT8hMTooSmEodGhpcyksSmEobiksdGhpcy5mb3Y9PT1uLmZvdiYmdGhpcy5hc3BlY3RSYXRpbz09PW4uYXNwZWN0UmF0aW8mJnRoaXMuX29mZkNlbnRlckZydXN0dW0uZXF1YWxzKG4uX29mZkNlbnRlckZydXN0dW0pKX07dGEucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24obixlLHQpe3JldHVybiFfKG4pfHwhKG4gaW5zdGFuY2VvZiB0YSk/ITE6KEphKHRoaXMpLEphKG4pLGsuZXF1YWxzRXBzaWxvbih0aGlzLmZvdixuLmZvdixlLHQpJiZrLmVxdWFsc0Vwc2lsb24odGhpcy5hc3BlY3RSYXRpbyxuLmFzcGVjdFJhdGlvLGUsdCkmJnRoaXMuX29mZkNlbnRlckZydXN0dW0uZXF1YWxzRXBzaWxvbihuLl9vZmZDZW50ZXJGcnVzdHVtLGUsdCkpfTtJbz10YX0pO2Z1bmN0aW9uIFRjKG4pe2xldCBlPW4uZnJ1c3R1bSx0PW4ub3JpZW50YXRpb24sbz1uLm9yaWdpbixhPW4udmVydGV4Rm9ybWF0Pz9sZS5ERUZBVUxULHI9bi5fZHJhd05lYXJQbGFuZT8/ITAsaSxmO2UgaW5zdGFuY2VvZiBJbz8oaT1CaCxmPUlvLnBhY2tlZExlbmd0aCk6ZSBpbnN0YW5jZW9mIE5vJiYoaT1QOSxmPU5vLnBhY2tlZExlbmd0aCksdGhpcy5fZnJ1c3R1bVR5cGU9aSx0aGlzLl9mcnVzdHVtPWUuY2xvbmUoKSx0aGlzLl9vcmlnaW49cy5jbG9uZShvKSx0aGlzLl9vcmllbnRhdGlvbj1ZZS5jbG9uZSh0KSx0aGlzLl9kcmF3TmVhclBsYW5lPXIsdGhpcy5fdmVydGV4Rm9ybWF0PWEsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlRnJ1c3R1bUdlb21ldHJ5Iix0aGlzLnBhY2tlZExlbmd0aD0yK2Yrcy5wYWNrZWRMZW5ndGgrWWUucGFja2VkTGVuZ3RoK2xlLnBhY2tlZExlbmd0aH1mdW5jdGlvbiBDcyhuLGUsdCxvLGEscixpLGYpe2xldCBkPW4vMyoyO2ZvcihsZXQgYz0wO2M8NDsrK2MpXyhlKSYmKGVbbl09ci54LGVbbisxXT1yLnksZVtuKzJdPXIueiksXyh0KSYmKHRbbl09aS54LHRbbisxXT1pLnksdFtuKzJdPWkueiksXyhvKSYmKG9bbl09Zi54LG9bbisxXT1mLnksb1tuKzJdPWYueiksbis9MzthW2RdPTAsYVtkKzFdPTAsYVtkKzJdPTEsYVtkKzNdPTAsYVtkKzRdPTEsYVtkKzVdPTEsYVtkKzZdPTAsYVtkKzddPTF9dmFyIEJoLFA5LGs5LHY5LEY5LEQ5LEI5LGo5LFU5LGNnLHE4LFc4LFg4LEw5LHo5LEc5LElpLGNkLFk4LHNkLHNnPVgoKCk9PntFdCgpO01lKCk7YmEoKTtDdCgpO3NlKCk7WHQoKTtZdCgpO3JuKCk7SW4oKTt1bigpO2FnKCk7aWcoKTt0bigpO1dvKCk7Q28oKTtCaD0wLFA5PTE7VGMucGFjaz1mdW5jdGlvbihuLGUsdCl7dD10Pz8wO2xldCBvPW4uX2ZydXN0dW1UeXBlLGE9bi5fZnJ1c3R1bTtyZXR1cm4gZVt0KytdPW8sbz09PUJoPyhJby5wYWNrKGEsZSx0KSx0Kz1Jby5wYWNrZWRMZW5ndGgpOihOby5wYWNrKGEsZSx0KSx0Kz1Oby5wYWNrZWRMZW5ndGgpLHMucGFjayhuLl9vcmlnaW4sZSx0KSx0Kz1zLnBhY2tlZExlbmd0aCxZZS5wYWNrKG4uX29yaWVudGF0aW9uLGUsdCksdCs9WWUucGFja2VkTGVuZ3RoLGxlLnBhY2sobi5fdmVydGV4Rm9ybWF0LGUsdCksdCs9bGUucGFja2VkTGVuZ3RoLGVbdF09bi5fZHJhd05lYXJQbGFuZT8xOjAsZX07azk9bmV3IElvLHY5PW5ldyBObyxGOT1uZXcgWWUsRDk9bmV3IHMsQjk9bmV3IGxlO1RjLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvPW5bZSsrXSxhO289PT1CaD8oYT1Jby51bnBhY2sobixlLGs5KSxlKz1Jby5wYWNrZWRMZW5ndGgpOihhPU5vLnVucGFjayhuLGUsdjkpLGUrPU5vLnBhY2tlZExlbmd0aCk7bGV0IHI9cy51bnBhY2sobixlLEQ5KTtlKz1zLnBhY2tlZExlbmd0aDtsZXQgaT1ZZS51bnBhY2sobixlLEY5KTtlKz1ZZS5wYWNrZWRMZW5ndGg7bGV0IGY9bGUudW5wYWNrKG4sZSxCOSk7ZSs9bGUucGFja2VkTGVuZ3RoO2xldCBkPW5bZV09PT0xO2lmKCFfKHQpKXJldHVybiBuZXcgVGMoe2ZydXN0dW06YSxvcmlnaW46cixvcmllbnRhdGlvbjppLHZlcnRleEZvcm1hdDpmLF9kcmF3TmVhclBsYW5lOmR9KTtsZXQgYz1vPT09dC5fZnJ1c3R1bVR5cGU/dC5fZnJ1c3R1bTp2b2lkIDA7cmV0dXJuIHQuX2ZydXN0dW09YS5jbG9uZShjKSx0Ll9mcnVzdHVtVHlwZT1vLHQuX29yaWdpbj1zLmNsb25lKHIsdC5fb3JpZ2luKSx0Ll9vcmllbnRhdGlvbj1ZZS5jbG9uZShpLHQuX29yaWVudGF0aW9uKSx0Ll92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUoZix0Ll92ZXJ0ZXhGb3JtYXQpLHQuX2RyYXdOZWFyUGxhbmU9ZCx0fTtqOT1uZXcgSixVOT1uZXcgJCxjZz1uZXcgJCxxOD1uZXcgcyxXOD1uZXcgcyxYOD1uZXcgcyxMOT1uZXcgcyx6OT1uZXcgcyxHOT1uZXcgcyxJaT1uZXcgQXJyYXkoMyksY2Q9bmV3IEFycmF5KDQpO2NkWzBdPW5ldyBydCgtMSwtMSwxLDEpO2NkWzFdPW5ldyBydCgxLC0xLDEsMSk7Y2RbMl09bmV3IHJ0KDEsMSwxLDEpO2NkWzNdPW5ldyBydCgtMSwxLDEsMSk7WTg9bmV3IEFycmF5KDQpO2ZvcihsZXQgbj0wO248NDsrK24pWThbbl09bmV3IHJ0O1RjLl9jb21wdXRlTmVhckZhclBsYW5lcz1mdW5jdGlvbihuLGUsdCxvLGEscixpLGYpe2xldCBkPUouZnJvbVF1YXRlcm5pb24oZSxqOSksYz1yPz9xOCx1PWk/P1c4LGw9Zj8/WDg7Yz1KLmdldENvbHVtbihkLDAsYyksdT1KLmdldENvbHVtbihkLDEsdSksbD1KLmdldENvbHVtbihkLDIsbCkscy5ub3JtYWxpemUoYyxjKSxzLm5vcm1hbGl6ZSh1LHUpLHMubm9ybWFsaXplKGwsbCkscy5uZWdhdGUoYyxjKTtsZXQgaD0kLmNvbXB1dGVWaWV3KG4sbCx1LGMsVTkpLG0sYixwPW8ucHJvamVjdGlvbk1hdHJpeDtpZih0PT09Qmgpe2xldCB5PSQubXVsdGlwbHkocCxoLGNnKTtiPSQuaW52ZXJzZSh5LGNnKX1lbHNlIG09JC5pbnZlcnNlVHJhbnNmb3JtYXRpb24oaCxjZyk7XyhiKT8oSWlbMF09by5uZWFyLElpWzFdPW8uZmFyKTooSWlbMF09MCxJaVsxXT1vLm5lYXIsSWlbMl09by5mYXIpO2ZvcihsZXQgeT0wO3k8MjsrK3kpZm9yKGxldCBFPTA7RTw0OysrRSl7bGV0IGc9cnQuY2xvbmUoY2RbRV0sWThbRV0pO2lmKF8oYikpe2c9JC5tdWx0aXBseUJ5VmVjdG9yKGIsZyxnKTtsZXQgQT0xL2cudztzLm11bHRpcGx5QnlTY2FsYXIoZyxBLGcpLHMuc3VidHJhY3QoZyxuLGcpLHMubm9ybWFsaXplKGcsZyk7bGV0IFQ9cy5kb3QobCxnKTtzLm11bHRpcGx5QnlTY2FsYXIoZyxJaVt5XS9ULGcpLHMuYWRkKGcsbixnKX1lbHNle2xldCBBPW8ub2ZmQ2VudGVyRnJ1c3R1bTtfKEEpJiYobz1BKTtsZXQgVD1JaVt5XSxSPUlpW3krMV07Zy54PShnLngqKG8ucmlnaHQtby5sZWZ0KStvLmxlZnQrby5yaWdodCkqLjUsZy55PShnLnkqKG8udG9wLW8uYm90dG9tKStvLmJvdHRvbStvLnRvcCkqLjUsZy56PShnLnoqKFQtUiktVC1SKSouNSxnLnc9MSwkLm11bHRpcGx5QnlWZWN0b3IobSxnLGcpfWFbMTIqeStFKjNdPWcueCxhWzEyKnkrRSozKzFdPWcueSxhWzEyKnkrRSozKzJdPWcuen19O1RjLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKG4pe2xldCBlPW4uX2ZydXN0dW1UeXBlLHQ9bi5fZnJ1c3R1bSxvPW4uX29yaWdpbixhPW4uX29yaWVudGF0aW9uLHI9bi5fZHJhd05lYXJQbGFuZSxpPW4uX3ZlcnRleEZvcm1hdCxmPXI/Njo1LGQ9bmV3IEZsb2F0NjRBcnJheSg3Mik7VGMuX2NvbXB1dGVOZWFyRmFyUGxhbmVzKG8sYSxlLHQsZCk7bGV0IGM9MjQ7ZFtjXT1kWzEyXSxkW2MrMV09ZFsxM10sZFtjKzJdPWRbMTRdLGRbYyszXT1kWzBdLGRbYys0XT1kWzFdLGRbYys1XT1kWzJdLGRbYys2XT1kWzldLGRbYys3XT1kWzEwXSxkW2MrOF09ZFsxMV0sZFtjKzldPWRbMjFdLGRbYysxMF09ZFsyMl0sZFtjKzExXT1kWzIzXSxjKz0xMixkW2NdPWRbMTVdLGRbYysxXT1kWzE2XSxkW2MrMl09ZFsxN10sZFtjKzNdPWRbM10sZFtjKzRdPWRbNF0sZFtjKzVdPWRbNV0sZFtjKzZdPWRbMF0sZFtjKzddPWRbMV0sZFtjKzhdPWRbMl0sZFtjKzldPWRbMTJdLGRbYysxMF09ZFsxM10sZFtjKzExXT1kWzE0XSxjKz0xMixkW2NdPWRbM10sZFtjKzFdPWRbNF0sZFtjKzJdPWRbNV0sZFtjKzNdPWRbMTVdLGRbYys0XT1kWzE2XSxkW2MrNV09ZFsxN10sZFtjKzZdPWRbMThdLGRbYys3XT1kWzE5XSxkW2MrOF09ZFsyMF0sZFtjKzldPWRbNl0sZFtjKzEwXT1kWzddLGRbYysxMV09ZFs4XSxjKz0xMixkW2NdPWRbNl0sZFtjKzFdPWRbN10sZFtjKzJdPWRbOF0sZFtjKzNdPWRbMThdLGRbYys0XT1kWzE5XSxkW2MrNV09ZFsyMF0sZFtjKzZdPWRbMjFdLGRbYys3XT1kWzIyXSxkW2MrOF09ZFsyM10sZFtjKzldPWRbOV0sZFtjKzEwXT1kWzEwXSxkW2MrMTFdPWRbMTFdLHJ8fChkPWQuc3ViYXJyYXkoMTIpKTtsZXQgdT1uZXcgUWUoe3Bvc2l0aW9uOm5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6ZH0pfSk7aWYoXyhpLm5vcm1hbCl8fF8oaS50YW5nZW50KXx8XyhpLmJpdGFuZ2VudCl8fF8oaS5zdCkpe2xldCBoPV8oaS5ub3JtYWwpP25ldyBGbG9hdDMyQXJyYXkoMTIqZik6dm9pZCAwLG09XyhpLnRhbmdlbnQpP25ldyBGbG9hdDMyQXJyYXkoMTIqZik6dm9pZCAwLGI9XyhpLmJpdGFuZ2VudCk/bmV3IEZsb2F0MzJBcnJheSgxMipmKTp2b2lkIDAscD1fKGkuc3QpP25ldyBGbG9hdDMyQXJyYXkoOCpmKTp2b2lkIDAseT1xOCxFPVc4LGc9WDgsQT1zLm5lZ2F0ZSh5LEw5KSxUPXMubmVnYXRlKEUsejkpLFI9cy5uZWdhdGUoZyxHOSk7Yz0wLHImJihDcyhjLGgsbSxiLHAsUix5LEUpLGMrPTEyKSxDcyhjLGgsbSxiLHAsZyxBLEUpLGMrPTEyLENzKGMsaCxtLGIscCxBLFIsRSksYys9MTIsQ3MoYyxoLG0sYixwLFQsUixBKSxjKz0xMixDcyhjLGgsbSxiLHAseSxnLEUpLGMrPTEyLENzKGMsaCxtLGIscCxFLGcsQSksXyhoKSYmKHUubm9ybWFsPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpofSkpLF8obSkmJih1LnRhbmdlbnQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOm19KSksXyhiKSYmKHUuYml0YW5nZW50PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpifSkpLF8ocCkmJih1LnN0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpwfSkpfWxldCBsPW5ldyBVaW50MTZBcnJheSg2KmYpO2ZvcihsZXQgaD0wO2g8ZjsrK2gpe2xldCBtPWgqNixiPWgqNDtsW21dPWIsbFttKzFdPWIrMSxsW20rMl09YisyLGxbbSszXT1iLGxbbSs0XT1iKzIsbFttKzVdPWIrM31yZXR1cm4gbmV3IFBlKHthdHRyaWJ1dGVzOnUsaW5kaWNlczpsLHByaW1pdGl2ZVR5cGU6RmUuVFJJQU5HTEVTLGJvdW5kaW5nU3BoZXJlOmdlLmZyb21WZXJ0aWNlcyhkKX0pfTtzZD1UY30pO3ZhciBmZz17fTskZShmZyx7ZGVmYXVsdDooKT0+SDl9KTtmdW5jdGlvbiBWOShuLGUpe3JldHVybiBfKGUpJiYobj1zZC51bnBhY2sobixlKSksc2QuY3JlYXRlR2VvbWV0cnkobil9dmFyIEg5LGRnPVgoKCk9PntzZSgpO3NnKCk7SDk9Vjl9KTtmdW5jdGlvbiBmZChuKXtsZXQgZT1uLmZydXN0dW0sdD1uLm9yaWVudGF0aW9uLG89bi5vcmlnaW4sYT1uLl9kcmF3TmVhclBsYW5lPz8hMCxyLGk7ZSBpbnN0YW5jZW9mIElvPyhyPXVnLGk9SW8ucGFja2VkTGVuZ3RoKTplIGluc3RhbmNlb2YgTm8mJihyPUs5LGk9Tm8ucGFja2VkTGVuZ3RoKSx0aGlzLl9mcnVzdHVtVHlwZT1yLHRoaXMuX2ZydXN0dW09ZS5jbG9uZSgpLHRoaXMuX29yaWdpbj1zLmNsb25lKG8pLHRoaXMuX29yaWVudGF0aW9uPVllLmNsb25lKHQpLHRoaXMuX2RyYXdOZWFyUGxhbmU9YSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVGcnVzdHVtT3V0bGluZUdlb21ldHJ5Iix0aGlzLnBhY2tlZExlbmd0aD0yK2krcy5wYWNrZWRMZW5ndGgrWWUucGFja2VkTGVuZ3RofXZhciB1ZyxLOSxxOSxXOSxYOSxZOSxsZyxKOD1YKCgpPT57RXQoKTtNZSgpO0N0KCk7c2UoKTtzZygpO1h0KCk7WXQoKTtybigpO2FnKCk7aWcoKTt0bigpO1dvKCk7dWc9MCxLOT0xO2ZkLnBhY2s9ZnVuY3Rpb24obixlLHQpe3Q9dD8/MDtsZXQgbz1uLl9mcnVzdHVtVHlwZSxhPW4uX2ZydXN0dW07cmV0dXJuIGVbdCsrXT1vLG89PT11Zz8oSW8ucGFjayhhLGUsdCksdCs9SW8ucGFja2VkTGVuZ3RoKTooTm8ucGFjayhhLGUsdCksdCs9Tm8ucGFja2VkTGVuZ3RoKSxzLnBhY2sobi5fb3JpZ2luLGUsdCksdCs9cy5wYWNrZWRMZW5ndGgsWWUucGFjayhuLl9vcmllbnRhdGlvbixlLHQpLHQrPVllLnBhY2tlZExlbmd0aCxlW3RdPW4uX2RyYXdOZWFyUGxhbmU/MTowLGV9O3E5PW5ldyBJbyxXOT1uZXcgTm8sWDk9bmV3IFllLFk5PW5ldyBzO2ZkLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvPW5bZSsrXSxhO289PT11Zz8oYT1Jby51bnBhY2sobixlLHE5KSxlKz1Jby5wYWNrZWRMZW5ndGgpOihhPU5vLnVucGFjayhuLGUsVzkpLGUrPU5vLnBhY2tlZExlbmd0aCk7bGV0IHI9cy51bnBhY2sobixlLFk5KTtlKz1zLnBhY2tlZExlbmd0aDtsZXQgaT1ZZS51bnBhY2sobixlLFg5KTtlKz1ZZS5wYWNrZWRMZW5ndGg7bGV0IGY9bltlXT09PTE7aWYoIV8odCkpcmV0dXJuIG5ldyBmZCh7ZnJ1c3R1bTphLG9yaWdpbjpyLG9yaWVudGF0aW9uOmksX2RyYXdOZWFyUGxhbmU6Zn0pO2xldCBkPW89PT10Ll9mcnVzdHVtVHlwZT90Ll9mcnVzdHVtOnZvaWQgMDtyZXR1cm4gdC5fZnJ1c3R1bT1hLmNsb25lKGQpLHQuX2ZydXN0dW1UeXBlPW8sdC5fb3JpZ2luPXMuY2xvbmUocix0Ll9vcmlnaW4pLHQuX29yaWVudGF0aW9uPVllLmNsb25lKGksdC5fb3JpZW50YXRpb24pLHQuX2RyYXdOZWFyUGxhbmU9Zix0fTtmZC5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbihuKXtsZXQgZT1uLl9mcnVzdHVtVHlwZSx0PW4uX2ZydXN0dW0sbz1uLl9vcmlnaW4sYT1uLl9vcmllbnRhdGlvbixyPW4uX2RyYXdOZWFyUGxhbmUsaT1uZXcgRmxvYXQ2NEFycmF5KDI0KTtzZC5fY29tcHV0ZU5lYXJGYXJQbGFuZXMobyxhLGUsdCxpKTtsZXQgZj1uZXcgUWUoe3Bvc2l0aW9uOm5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6aX0pfSksZCxjLHU9cj8yOjEsbD1uZXcgVWludDE2QXJyYXkoOCoodSsxKSksaD1yPzA6MTtmb3IoO2g8MjsrK2gpZD1yP2gqODowLGM9aCo0LGxbZF09YyxsW2QrMV09YysxLGxbZCsyXT1jKzEsbFtkKzNdPWMrMixsW2QrNF09YysyLGxbZCs1XT1jKzMsbFtkKzZdPWMrMyxsW2QrN109Yztmb3IoaD0wO2g8MjsrK2gpZD0odStoKSo4LGM9aCo0LGxbZF09YyxsW2QrMV09Yys0LGxbZCsyXT1jKzEsbFtkKzNdPWMrNSxsW2QrNF09YysyLGxbZCs1XT1jKzYsbFtkKzZdPWMrMyxsW2QrN109Yys3O3JldHVybiBuZXcgUGUoe2F0dHJpYnV0ZXM6ZixpbmRpY2VzOmwscHJpbWl0aXZlVHlwZTpGZS5MSU5FUyxib3VuZGluZ1NwaGVyZTpnZS5mcm9tVmVydGljZXMoaSl9KX07bGc9ZmR9KTt2YXIgaGc9e307JGUoaGcse2RlZmF1bHQ6KCk9Plo5fSk7ZnVuY3Rpb24gSjkobixlKXtyZXR1cm4gXyhlKSYmKG49bGcudW5wYWNrKG4sZSkpLGxnLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBaOSxtZz1YKCgpPT57c2UoKTtKOCgpO1o5PUo5fSk7dmFyIGJnLFo4LFE4PVgoKCk9Pnt2dCgpO3N0KCk7c2UoKTtWZSgpO1ByKCk7VWUoKTtobigpO2JnPWNsYXNze2NvbnN0cnVjdG9yKGUpe2U9ZT8/T2UuRU1QVFlfT0JKRUNULHRoaXMuX2VsbGlwc29pZD1lLmVsbGlwc29pZD8/Sy5kZWZhdWx0LHRoaXMuX3JlY3RhbmdsZT1lLnJlY3RhbmdsZT8/eGUuTUFYX1ZBTFVFLHRoaXMuX3Byb2plY3Rpb249bmV3IG5vKHRoaXMuX2VsbGlwc29pZCksdGhpcy5fbnVtYmVyT2ZMZXZlbFplcm9UaWxlc1g9ZS5udW1iZXJPZkxldmVsWmVyb1RpbGVzWD8/Mix0aGlzLl9udW1iZXJPZkxldmVsWmVyb1RpbGVzWT1lLm51bWJlck9mTGV2ZWxaZXJvVGlsZXNZPz8xfWdldCBlbGxpcHNvaWQoKXtyZXR1cm4gdGhpcy5fZWxsaXBzb2lkfWdldCByZWN0YW5nbGUoKXtyZXR1cm4gdGhpcy5fcmVjdGFuZ2xlfWdldCBwcm9qZWN0aW9uKCl7cmV0dXJuIHRoaXMuX3Byb2plY3Rpb259Z2V0TnVtYmVyT2ZYVGlsZXNBdExldmVsKGUpe3JldHVybiB0aGlzLl9udW1iZXJPZkxldmVsWmVyb1RpbGVzWDw8ZX1nZXROdW1iZXJPZllUaWxlc0F0TGV2ZWwoZSl7cmV0dXJuIHRoaXMuX251bWJlck9mTGV2ZWxaZXJvVGlsZXNZPDxlfXJlY3RhbmdsZVRvTmF0aXZlUmVjdGFuZ2xlKGUsdCl7bGV0IG89ay50b0RlZ3JlZXMoZS53ZXN0KSxhPWsudG9EZWdyZWVzKGUuc291dGgpLHI9ay50b0RlZ3JlZXMoZS5lYXN0KSxpPWsudG9EZWdyZWVzKGUubm9ydGgpO3JldHVybiBfKHQpPyh0Lndlc3Q9byx0LnNvdXRoPWEsdC5lYXN0PXIsdC5ub3J0aD1pLHQpOm5ldyB4ZShvLGEscixpKX10aWxlWFlUb05hdGl2ZVJlY3RhbmdsZShlLHQsbyxhKXtsZXQgcj10aGlzLnRpbGVYWVRvUmVjdGFuZ2xlKGUsdCxvLGEpO3JldHVybiByLndlc3Q9ay50b0RlZ3JlZXMoci53ZXN0KSxyLnNvdXRoPWsudG9EZWdyZWVzKHIuc291dGgpLHIuZWFzdD1rLnRvRGVncmVlcyhyLmVhc3QpLHIubm9ydGg9ay50b0RlZ3JlZXMoci5ub3J0aCkscn10aWxlWFlUb1JlY3RhbmdsZShlLHQsbyxhKXtsZXQgcj10aGlzLl9yZWN0YW5nbGUsaT10aGlzLmdldE51bWJlck9mWFRpbGVzQXRMZXZlbChvKSxmPXRoaXMuZ2V0TnVtYmVyT2ZZVGlsZXNBdExldmVsKG8pLGQ9ci53aWR0aC9pLGM9ZSpkK3Iud2VzdCx1PShlKzEpKmQrci53ZXN0LGw9ci5oZWlnaHQvZixoPXIubm9ydGgtdCpsLG09ci5ub3J0aC0odCsxKSpsO3JldHVybiBfKGEpfHwoYT1uZXcgeGUoYyxtLHUsaCkpLGEud2VzdD1jLGEuc291dGg9bSxhLmVhc3Q9dSxhLm5vcnRoPWgsYX1wb3NpdGlvblRvVGlsZVhZKGUsdCxvKXtsZXQgYT10aGlzLl9yZWN0YW5nbGU7aWYoIXhlLmNvbnRhaW5zKGEsZSkpcmV0dXJuO2xldCByPXRoaXMuZ2V0TnVtYmVyT2ZYVGlsZXNBdExldmVsKHQpLGk9dGhpcy5nZXROdW1iZXJPZllUaWxlc0F0TGV2ZWwodCksZj1hLndpZHRoL3IsZD1hLmhlaWdodC9pLGM9ZS5sb25naXR1ZGU7YS5lYXN0PGEud2VzdCYmKGMrPWsuVFdPX1BJKTtsZXQgdT0oYy1hLndlc3QpL2Z8MDt1Pj1yJiYodT1yLTEpO2xldCBsPShhLm5vcnRoLWUubGF0aXR1ZGUpL2R8MDtyZXR1cm4gbD49aSYmKGw9aS0xKSxfKG8pPyhvLng9dSxvLnk9bCxvKTpuZXcgWSh1LGwpfX0sWjg9Ymd9KTtmdW5jdGlvbiBvUihuKXtyZS5mcm9tUmFkaWFucyhuLmVhc3Qsbi5ub3J0aCwwLGRkWzBdKSxyZS5mcm9tUmFkaWFucyhuLndlc3Qsbi5ub3J0aCwwLGRkWzFdKSxyZS5mcm9tUmFkaWFucyhuLmVhc3Qsbi5zb3V0aCwwLGRkWzJdKSxyZS5mcm9tUmFkaWFucyhuLndlc3Qsbi5zb3V0aCwwLGRkWzNdKTtsZXQgZT0wLHQ9MCxvPTAsYT0wLHI9em4uX3RlcnJhaW5IZWlnaHRzTWF4TGV2ZWwsaTtmb3IoaT0wO2k8PXI7KytpKXtsZXQgZj0hMTtmb3IobGV0IGQ9MDtkPDQ7KytkKXtsZXQgYz1kZFtkXTtpZigkOS5wb3NpdGlvblRvVGlsZVhZKGMsaSx1ZCksZD09PTApbz11ZC54LGE9dWQueTtlbHNlIGlmKG8hPT11ZC54fHxhIT09dWQueSl7Zj0hMDticmVha319aWYoZilicmVhaztlPW8sdD1hfWlmKGkhPT0wKXJldHVybnt4OmUseTp0LGxldmVsOmk+cj9yOmktMX19dmFyICQ4LGVSLHRSLHBnLFE5LG5SLCQ5LGRkLHVkLHpuLGpoLGdnPVgoKCk9PntFdCgpO0lsKCk7dnQoKTtNZSgpO2d0KCk7c2UoKTtWZSgpO1E4KCk7aG4oKTtucygpOyQ4PW5ldyBzLGVSPW5ldyBzLHRSPW5ldyByZSxwZz1uZXcgcyxROT1uZXcgcyxuUj1uZXcgZ2UsJDk9bmV3IFo4LGRkPVtuZXcgcmUsbmV3IHJlLG5ldyByZSxuZXcgcmVdLHVkPW5ldyBZLHpuPXt9O3puLmluaXRpYWxpemU9ZnVuY3Rpb24oKXtsZXQgbj16bi5faW5pdFByb21pc2U7cmV0dXJuIF8obil8fChuPXlhLmZldGNoSnNvbihvcigiQXNzZXRzL2FwcHJveGltYXRlVGVycmFpbkhlaWdodHMuanNvbiIpKS50aGVuKGZ1bmN0aW9uKGUpe3puLl90ZXJyYWluSGVpZ2h0cz1lfSksem4uX2luaXRQcm9taXNlPW4pLG59O3puLmdldE1pbmltdW1NYXhpbXVtSGVpZ2h0cz1mdW5jdGlvbihuLGUpe2U9ZT8/Sy5kZWZhdWx0O2xldCB0PW9SKG4pLG89em4uX2RlZmF1bHRNaW5UZXJyYWluSGVpZ2h0LGE9em4uX2RlZmF1bHRNYXhUZXJyYWluSGVpZ2h0O2lmKF8odCkpe2xldCByPWAke3QubGV2ZWx9LSR7dC54fS0ke3QueX1gLGk9em4uX3RlcnJhaW5IZWlnaHRzW3JdO18oaSkmJihvPWlbMF0sYT1pWzFdKSxlLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHhlLm5vcnRoZWFzdChuLHRSKSwkOCksZS5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbih4ZS5zb3V0aHdlc3Qobix0UiksZVIpLHMubWlkcG9pbnQoZVIsJDgscGcpO2xldCBmPWUuc2NhbGVUb0dlb2RldGljU3VyZmFjZShwZyxROSk7aWYoXyhmKSl7bGV0IGQ9cy5kaXN0YW5jZShwZyxmKTtvPU1hdGgubWluKG8sLWQpfWVsc2Ugbz16bi5fZGVmYXVsdE1pblRlcnJhaW5IZWlnaHR9cmV0dXJuIG89TWF0aC5tYXgoem4uX2RlZmF1bHRNaW5UZXJyYWluSGVpZ2h0LG8pLHttaW5pbXVtVGVycmFpbkhlaWdodDpvLG1heGltdW1UZXJyYWluSGVpZ2h0OmF9fTt6bi5nZXRCb3VuZGluZ1NwaGVyZT1mdW5jdGlvbihuLGUpe2U9ZT8/Sy5kZWZhdWx0O2xldCB0PW9SKG4pLG89em4uX2RlZmF1bHRNYXhUZXJyYWluSGVpZ2h0O2lmKF8odCkpe2xldCByPWAke3QubGV2ZWx9LSR7dC54fS0ke3QueX1gLGk9em4uX3RlcnJhaW5IZWlnaHRzW3JdO18oaSkmJihvPWlbMV0pfWxldCBhPWdlLmZyb21SZWN0YW5nbGUzRChuLGUsMCk7cmV0dXJuIGdlLmZyb21SZWN0YW5nbGUzRChuLGUsbyxuUiksZ2UudW5pb24oYSxuUixhKX07em4uX3RlcnJhaW5IZWlnaHRzTWF4TGV2ZWw9Njt6bi5fZGVmYXVsdE1heFRlcnJhaW5IZWlnaHQ9OWUzO3puLl9kZWZhdWx0TWluVGVycmFpbkhlaWdodD0tMWU1O3puLl90ZXJyYWluSGVpZ2h0cz12b2lkIDA7em4uX2luaXRQcm9taXNlPXZvaWQgMDtPYmplY3QuZGVmaW5lUHJvcGVydGllcyh6bix7aW5pdGlhbGl6ZWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBfKHpuLl90ZXJyYWluSGVpZ2h0cyl9fX0pO2poPXpufSk7ZnVuY3Rpb24ga2kobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5wb3NpdGlvbnM7dGhpcy53aWR0aD1uLndpZHRoPz8xLHRoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuZ3JhbnVsYXJpdHk9bi5ncmFudWxhcml0eT8/OTk5OSx0aGlzLmxvb3A9bi5sb29wPz8hMSx0aGlzLmFyY1R5cGU9bi5hcmNUeXBlPz9idC5HRU9ERVNJQyx0aGlzLl9lbGxpcHNvaWQ9Sy5kZWZhdWx0LHRoaXMuX3Byb2plY3Rpb25JbmRleD0wLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUdyb3VuZFBvbHlsaW5lR2VvbWV0cnkiLHRoaXMuX3NjZW5lM0RPbmx5PSExfWZ1bmN0aW9uIFJnKG4sZSx0LG8sYSl7bGV0IHI9em8obyxuLDAsdEYpLGk9em8obyxuLHQsclIpLGY9em8obyxlLDAsaVIpLGQ9SnIoaSxyLHJSKSxjPUpyKGYscixpUik7cmV0dXJuIHMuY3Jvc3MoYyxkLGEpLHMubm9ybWFsaXplKGEsYSl9ZnVuY3Rpb24gX2cobixlLHQsbyxhLHIsaSxmLGQsYyx1KXtpZihhPT09MClyZXR1cm47bGV0IGw7cj09PWJ0LkdFT0RFU0lDP2w9bmV3IHdoKG4sZSxpKTpyPT09YnQuUkhVTUImJihsPW5ldyBabyhuLGUsaSkpO2xldCBoPWwuc3VyZmFjZURpc3RhbmNlO2lmKGg8YSlyZXR1cm47bGV0IG09UmcobixlLG8saSxyRiksYj1NYXRoLmNlaWwoaC9hKSxwPWgvYix5PXAsRT1iLTEsZz1mLmxlbmd0aDtmb3IobGV0IEE9MDtBPEU7QSsrKXtsZXQgVD1sLmludGVycG9sYXRlVXNpbmdTdXJmYWNlRGlzdGFuY2UoeSxuRiksUj16byhpLFQsdCxvRiksUz16byhpLFQsbyxhRik7cy5wYWNrKG0sZixnKSxzLnBhY2soUixkLGcpLHMucGFjayhTLGMsZyksdS5wdXNoKFQubGF0aXR1ZGUpLHUucHVzaChULmxvbmdpdHVkZSksZys9Myx5Kz1wfX1mdW5jdGlvbiB6byhuLGUsdCxvKXtyZXR1cm4gcmUuY2xvbmUoZSx5ZykseWcuaGVpZ2h0PXQscmUudG9DYXJ0ZXNpYW4oeWcsbixvKX1mdW5jdGlvbiBKcihuLGUsdCl7cmV0dXJuIHMuc3VidHJhY3QobixlLHQpLHMubm9ybWFsaXplKHQsdCksdH1mdW5jdGlvbiBjUihuLGUsdCxvKXtyZXR1cm4gbz1KcihuLGUsbyksbz1zLmNyb3NzKG8sdCxvKSxvPXMubm9ybWFsaXplKG8sbyksbz1zLmNyb3NzKHQsbyxvKSxvfWZ1bmN0aW9uIEFnKG4sZSx0LG8sYSl7bGV0IHI9SnIodCxlLE9SKSxpPWNSKG4sZSxyLGlGKSxmPWNSKG8sZSxyLGNGKTtpZihrLmVxdWFsc0Vwc2lsb24ocy5kb3QoaSxmKSxkRixrLkVQU0lMT041KSlyZXR1cm4gYT1zLmNyb3NzKHIsaSxhKSxhPXMubm9ybWFsaXplKGEsYSksYTthPXMuYWRkKGYsaSxhKSxhPXMubm9ybWFsaXplKGEsYSk7bGV0IGQ9cy5jcm9zcyhyLGEsc0YpO3JldHVybiBzLmRvdChmLGQpPGZGJiYoYT1zLm5lZ2F0ZShhLGEpKSxhfWZ1bmN0aW9uIGRSKG4sZSx0LG8pe2xldCBhPUpyKHQsZSxwRikscj1zLmRvdChhLG4pO2lmKHI+RVJ8fHI8YVIpe2xldCBpPUpyKG8sdCxPUiksZj1yPGFSP2suUElfT1ZFUl9UV086LWsuUElfT1ZFUl9UV08sZD1ZZS5mcm9tQXhpc0FuZ2xlKGksZixfRiksYz1KLmZyb21RdWF0ZXJuaW9uKGQsZ0YpO3JldHVybiBKLm11bHRpcGx5QnlWZWN0b3IoYyxuLG4pLCEwfXJldHVybiExfWZ1bmN0aW9uIGxkKG4sZSx0LG8sYSl7bGV0IHI9cmUudG9DYXJ0ZXNpYW4oZSxuLl9lbGxpcHNvaWQseUYpLGk9cy5hZGQocix0LGxSKSxmPSExLGQ9bi5fZWxsaXBzb2lkLGM9ZC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhpLHVSKTtNYXRoLmFicyhlLmxvbmdpdHVkZS1jLmxvbmdpdHVkZSk+ay5QSV9PVkVSX1RXTyYmKGY9ITAsaT1zLnN1YnRyYWN0KHIsdCxsUiksYz1kLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGksdVIpKSxjLmhlaWdodD0wO2xldCB1PW4ucHJvamVjdChjLGEpO3JldHVybiBhPXMuc3VidHJhY3QodSxvLGEpLGEuej0wLGE9cy5ub3JtYWxpemUoYSxhKSxmJiZzLm5lZ2F0ZShhLGEpLGF9ZnVuY3Rpb24gbVIobixlLHQsbyxhLHIpe2xldCBpPXMuc3VidHJhY3QoZSxuLEFGKTtzLm5vcm1hbGl6ZShpLGkpO2xldCBmPXQtUlIsZD1zLm11bHRpcGx5QnlTY2FsYXIoaSxmLGhSKTtzLmFkZChuLGQsYSk7bGV0IGM9by14UjtkPXMubXVsdGlwbHlCeVNjYWxhcihpLGMsaFIpLHMuYWRkKGUsZCxyKX1mdW5jdGlvbiB6aChuLGUpe2xldCB0PW5uLmdldFBvaW50RGlzdGFuY2UoR2gsbiksbz1ubi5nZXRQb2ludERpc3RhbmNlKEdoLGUpLGE9d0Y7ay5lcXVhbHNFcHNpbG9uKHQsMCxrLkVQU0lMT04yKT8oYT1KcihlLG4sYSkscy5tdWx0aXBseUJ5U2NhbGFyKGEsay5FUFNJTE9OMixhKSxzLmFkZChuLGEsbikpOmsuZXF1YWxzRXBzaWxvbihvLDAsay5FUFNJTE9OMikmJihhPUpyKG4sZSxhKSxzLm11bHRpcGx5QnlTY2FsYXIoYSxrLkVQU0lMT04yLGEpLHMuYWRkKGUsYSxlKSl9ZnVuY3Rpb24gVEYobixlKXtsZXQgdD1NYXRoLmFicyhuLmxvbmdpdHVkZSksbz1NYXRoLmFicyhlLmxvbmdpdHVkZSk7aWYoay5lcXVhbHNFcHNpbG9uKHQsay5QSSxrLkVQU0lMT04xMSkpe2xldCBhPWsuc2lnbihlLmxvbmdpdHVkZSk7cmV0dXJuIG4ubG9uZ2l0dWRlPWEqKHQtay5FUFNJTE9OMTEpLDF9ZWxzZSBpZihrLmVxdWFsc0Vwc2lsb24obyxrLlBJLGsuRVBTSUxPTjExKSl7bGV0IGE9ay5zaWduKG4ubG9uZ2l0dWRlKTtyZXR1cm4gZS5sb25naXR1ZGU9YSooby1rLkVQU0lMT04xMSksMn1yZXR1cm4gMH1mdW5jdGlvbiB6RihuLGUsdCxvLGEscixpKXtsZXQgZixkLGM9ZS5fZWxsaXBzb2lkLHU9dC5sZW5ndGgvMy0xLGw9dSo4LGg9bCo0LG09dSozNixiPWw+NjU1MzU/bmV3IFVpbnQzMkFycmF5KG0pOm5ldyBVaW50MTZBcnJheShtKSxwPW5ldyBGbG9hdDY0QXJyYXkobCozKSx5PW5ldyBGbG9hdDMyQXJyYXkoaCksRT1uZXcgRmxvYXQzMkFycmF5KGgpLGc9bmV3IEZsb2F0MzJBcnJheShoKSxBPW5ldyBGbG9hdDMyQXJyYXkoaCksVD1uZXcgRmxvYXQzMkFycmF5KGgpLFIsUyxNLEk7aSYmKFI9bmV3IEZsb2F0MzJBcnJheShoKSxTPW5ldyBGbG9hdDMyQXJyYXkoaCksTT1uZXcgRmxvYXQzMkFycmF5KGgpLEk9bmV3IEZsb2F0MzJBcnJheShsKjIpKTtsZXQgTj1yLmxlbmd0aC8yLFA9MCxGPVNSO0YuaGVpZ2h0PTA7bGV0IHc9Q1I7dy5oZWlnaHQ9MDtsZXQgeD1iUixDPXdnO2lmKGkpZm9yKGQ9MCxmPTE7ZjxOO2YrKylGLmxhdGl0dWRlPXJbZF0sRi5sb25naXR1ZGU9cltkKzFdLHcubGF0aXR1ZGU9cltkKzJdLHcubG9uZ2l0dWRlPXJbZCszXSx4PWUucHJvamVjdChGLHgpLEM9ZS5wcm9qZWN0KHcsQyksUCs9cy5kaXN0YW5jZSh4LEMpLGQrPTI7bGV0IHY9by5sZW5ndGgvMztDPXMudW5wYWNrKG8sMCxDKTtsZXQgaj0wO2ZvcihkPTMsZj0xO2Y8djtmKyspeD1zLmNsb25lKEMseCksQz1zLnVucGFjayhvLGQsQyksais9cy5kaXN0YW5jZSh4LEMpLGQrPTM7bGV0IHo7ZD0zO2xldCBEPTAsRz0wLFY9MCxPPTAsWj0hMSxhZT1zLnVucGFjayh0LDAsZ1IpLGNlPXMudW5wYWNrKG8sMCx3ZyksZmU9cy51bnBhY2soYSwwLF9SKTtpZihuKXtsZXQgQ2U9cy51bnBhY2sodCx0Lmxlbmd0aC02LHBSKTtkUihmZSxDZSxhZSxjZSkmJihmZT1zLm5lZ2F0ZShmZSxmZSkpfWxldCB0ZT0wLG1lPTAsdWU9MDtmb3IoZj0wO2Y8dTtmKyspe2xldCBDZT1zLmNsb25lKGFlLHBSKSxXZT1zLmNsb25lKGNlLGJSKSx6ZT1zLmNsb25lKGZlLEVGKTtaJiYoemU9cy5uZWdhdGUoemUsemUpKSxhZT1zLnVucGFjayh0LGQsZ1IpLGNlPXMudW5wYWNrKG8sZCx3ZyksZmU9cy51bnBhY2soYSxkLF9SKSxaPWRSKGZlLENlLGFlLGNlKSxGLmxhdGl0dWRlPXJbRF0sRi5sb25naXR1ZGU9cltEKzFdLHcubGF0aXR1ZGU9cltEKzJdLHcubG9uZ2l0dWRlPXJbRCszXTtsZXQgWmUsS2UsRGUsQmU7aWYoaSl7bGV0IHl0PVRGKEYsdyk7WmU9ZS5wcm9qZWN0KEYsTkYpLEtlPWUucHJvamVjdCh3LElGKTtsZXQgd249SnIoS2UsWmUsQVIpO3duLnk9TWF0aC5hYnMod24ueSksRGU9VGcsQmU9RWcseXQ9PT0wfHxzLmRvdCh3bixzLlVOSVRfWSk+RVI/KERlPWxkKGUsRix6ZSxaZSxUZyksQmU9bGQoZSx3LGZlLEtlLEVnKSk6eXQ9PT0xPyhCZT1sZChlLHcsZmUsS2UsRWcpLERlLng9MCxEZS55PWsuc2lnbihGLmxvbmdpdHVkZS1NYXRoLmFicyh3LmxvbmdpdHVkZSkpLERlLno9MCk6KERlPWxkKGUsRix6ZSxaZSxUZyksQmUueD0wLEJlLnk9ay5zaWduKEYubG9uZ2l0dWRlLXcubG9uZ2l0dWRlKSxCZS56PTApfWxldCBldD1zLmRpc3RhbmNlKFdlLGNlKSxxZT1hYy5mcm9tQ2FydGVzaWFuKENlLEJGKSxhdD1zLnN1YnRyYWN0KGFlLENlLFBGKSx4dD1zLm5vcm1hbGl6ZShhdCx5UiksVHQ9cy5zdWJ0cmFjdChXZSxDZSxrRik7VHQ9cy5ub3JtYWxpemUoVHQsVHQpO2xldCBjdD1zLmNyb3NzKHh0LFR0LHlSKTtjdD1zLm5vcm1hbGl6ZShjdCxjdCk7bGV0IHp0PXMuY3Jvc3MoVHQsemUsRkYpO3p0PXMubm9ybWFsaXplKHp0LHp0KTtsZXQgT3Q9cy5zdWJ0cmFjdChjZSxhZSx2Rik7T3Q9cy5ub3JtYWxpemUoT3QsT3QpO2xldCBrdD1zLmNyb3NzKGZlLE90LERGKTtrdD1zLm5vcm1hbGl6ZShrdCxrdCk7bGV0IEdlPWV0L2osTGU9dGUvaixfdD0wLE10LEd0LHF0LFF0PTAscG49MDtpZihpKXtfdD1zLmRpc3RhbmNlKFplLEtlKSxNdD1hYy5mcm9tQ2FydGVzaWFuKFplLGpGKSxHdD1zLnN1YnRyYWN0KEtlLFplLEFSKSxxdD1zLm5vcm1hbGl6ZShHdCxVRik7bGV0IHl0PXF0Lng7cXQueD1xdC55LHF0Lnk9LXl0LFF0PV90L1AscG49bWUvUH1mb3Ioej0wO3o8ODt6Kyspe2xldCB5dD1PK3oqNCx3bj1HK3oqMixDbj15dCszLHBvPXo8ND8xOi0xLER0PXo9PT0yfHx6PT09M3x8ej09PTZ8fHo9PT03PzE6LTE7cy5wYWNrKHFlLmhpZ2gseSx5dCkseVtDbl09YXQueCxzLnBhY2socWUubG93LEUseXQpLEVbQ25dPWF0Lnkscy5wYWNrKHp0LGcseXQpLGdbQ25dPWF0Lnoscy5wYWNrKGt0LEEseXQpLEFbQ25dPUdlKnBvLHMucGFjayhjdCxULHl0KTtsZXQgYW49TGUqRHQ7YW49PT0wJiZEdDwwJiYoYW49OSksVFtDbl09YW4saSYmKFJbeXRdPU10LmhpZ2gueCxSW3l0KzFdPU10LmhpZ2gueSxSW3l0KzJdPU10Lmxvdy54LFJbeXQrM109TXQubG93LnksTVt5dF09LURlLnksTVt5dCsxXT1EZS54LE1beXQrMl09QmUueSxNW3l0KzNdPS1CZS54LFNbeXRdPUd0LngsU1t5dCsxXT1HdC55LFNbeXQrMl09cXQueCxTW3l0KzNdPXF0LnksSVt3bl09UXQqcG8sYW49cG4qRHQsYW49PT0wJiZEdDwwJiYoYW49OSksSVt3bisxXT1hbil9bGV0IE50PUNGLCR0PU1GLEZ0PU9GLG9uPVNGLGpuPXhlLmZyb21DYXJ0b2dyYXBoaWNBcnJheShSRix4RiksVW49amguZ2V0TWluaW11bU1heGltdW1IZWlnaHRzKGpuLGMpLFNuPVVuLm1pbmltdW1UZXJyYWluSGVpZ2h0LHRvPVVuLm1heGltdW1UZXJyYWluSGVpZ2h0O3VlKz1NYXRoLmFicyhTbiksdWUrPU1hdGguYWJzKHRvKSxtUihDZSxXZSxTbix0byxOdCxGdCksbVIoYWUsY2UsU24sdG8sJHQsb24pO2xldCBTdD1zLm11bHRpcGx5QnlTY2FsYXIoY3Qsay5FUFNJTE9ONSx3Uik7cy5hZGQoTnQsU3QsTnQpLHMuYWRkKCR0LFN0LCR0KSxzLmFkZChGdCxTdCxGdCkscy5hZGQob24sU3Qsb24pLHpoKE50LCR0KSx6aChGdCxvbikscy5wYWNrKE50LHAsVikscy5wYWNrKCR0LHAsViszKSxzLnBhY2sob24scCxWKzYpLHMucGFjayhGdCxwLFYrOSksU3Q9cy5tdWx0aXBseUJ5U2NhbGFyKGN0LC0yKmsuRVBTSUxPTjUsd1IpLHMuYWRkKE50LFN0LE50KSxzLmFkZCgkdCxTdCwkdCkscy5hZGQoRnQsU3QsRnQpLHMuYWRkKG9uLFN0LG9uKSx6aChOdCwkdCksemgoRnQsb24pLHMucGFjayhOdCxwLFYrMTIpLHMucGFjaygkdCxwLFYrMTUpLHMucGFjayhvbixwLFYrMTgpLHMucGFjayhGdCxwLFYrMjEpLEQrPTIsZCs9MyxHKz0xNixWKz0yNCxPKz0zMix0ZSs9ZXQsbWUrPV90fWQ9MDtsZXQgYmU9MDtmb3IoZj0wO2Y8dTtmKyspe2Zvcih6PTA7ejxUUjt6KyspYltkK3pdPU1SW3pdK2JlO2JlKz04LGQrPVRSfWxldCBoZT1MRjtnZS5mcm9tVmVydGljZXModCxzLlpFUk8sMyxoZVswXSksZ2UuZnJvbVZlcnRpY2VzKG8scy5aRVJPLDMsaGVbMV0pO2xldCBRPWdlLmZyb21Cb3VuZGluZ1NwaGVyZXMoaGUpO1EucmFkaXVzKz11ZS8odSoyKTtsZXQgVGU9e3Bvc2l0aW9uOm5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myxub3JtYWxpemU6ITEsdmFsdWVzOnB9KSxzdGFydEhpQW5kRm9yd2FyZE9mZnNldFg6UGkoeSksc3RhcnRMb0FuZEZvcndhcmRPZmZzZXRZOlBpKEUpLHN0YXJ0Tm9ybWFsQW5kRm9yd2FyZE9mZnNldFo6UGkoZyksZW5kTm9ybWFsQW5kVGV4dHVyZUNvb3JkaW5hdGVOb3JtYWxpemF0aW9uWDpQaShBKSxyaWdodE5vcm1hbEFuZFRleHR1cmVDb29yZGluYXRlTm9ybWFsaXphdGlvblk6UGkoVCl9O3JldHVybiBpJiYoVGUuc3RhcnRIaUxvMkQ9UGkoUiksVGUub2Zmc2V0QW5kUmlnaHQyRD1QaShTKSxUZS5zdGFydEVuZE5vcm1hbHMyRD1QaShNKSxUZS50ZXhjb29yZE5vcm1hbGl6YXRpb24yRD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mixub3JtYWxpemU6ITEsdmFsdWVzOkl9KSksbmV3IFBlKHthdHRyaWJ1dGVzOlRlLGluZGljZXM6Yixib3VuZGluZ1NwaGVyZTpRfSl9ZnVuY3Rpb24gUGkobil7cmV0dXJuIG5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTo0LG5vcm1hbGl6ZTohMSx2YWx1ZXM6bn0pfXZhciB4ZyxlRixFUixhUixSUix4Uix0RixyUixpUixuRixvRixhRixyRix5ZyxpRixjRixzRixPUixmRixkRixHaCx1RixsRixoRixtRixiRixVaCxMaCxzUixmUixwRixnRixfRix1Uix5RixsUixBRixoUix3RixTUixDUixiUix3ZyxwUixnUixFRixfUixSRix4RixPRixTRixDRixNRixORixJRixUZyxFZyxQRixrRix2Rix5UixGRixERixCRixqRixBUixVRix3UixMRixNUixUUixPZyxOUj1YKCgpPT57Z2coKTtoYygpO0thKCk7RXQoKTtNZSgpO2d0KCk7Q3QoKTtzdCgpO3NlKCk7VmUoKTtnMCgpO0hmKCk7ZnAoKTtQcigpO1h0KCk7WXQoKTtiaSgpO1VlKCk7SW4oKTtwaSgpO1dvKCk7aG4oKTtfaSgpO3hnPVtubyx5bl0sZUY9eGcubGVuZ3RoLEVSPU1hdGguY29zKGsudG9SYWRpYW5zKDMwKSksYVI9TWF0aC5jb3Moay50b1JhZGlhbnMoMTUwKSksUlI9MCx4Uj0xZTM7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoa2kucHJvdG90eXBlLHtwYWNrZWRMZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiAxK3RoaXMuX3Bvc2l0aW9ucy5sZW5ndGgqMysxKzErMStLLnBhY2tlZExlbmd0aCsxKzF9fX0pO2tpLnNldFByb2plY3Rpb25BbmRFbGxpcHNvaWQ9ZnVuY3Rpb24obixlKXtsZXQgdD0wO2ZvcihsZXQgbz0wO288ZUY7bysrKWlmKGUgaW5zdGFuY2VvZiB4Z1tvXSl7dD1vO2JyZWFrfW4uX3Byb2plY3Rpb25JbmRleD10LG4uX2VsbGlwc29pZD1lLmVsbGlwc29pZH07dEY9bmV3IHMsclI9bmV3IHMsaVI9bmV3IHM7bkY9bmV3IHJlLG9GPW5ldyBzLGFGPW5ldyBzLHJGPW5ldyBzO3lnPW5ldyByZTtraS5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz10Pz8wLGE9bi5fcG9zaXRpb25zLHI9YS5sZW5ndGg7ZVtvKytdPXI7Zm9yKGxldCBpPTA7aTxyOysraSl7bGV0IGY9YVtpXTtzLnBhY2soZixlLG8pLG8rPTN9cmV0dXJuIGVbbysrXT1uLmdyYW51bGFyaXR5LGVbbysrXT1uLmxvb3A/MTowLGVbbysrXT1uLmFyY1R5cGUsSy5wYWNrKG4uX2VsbGlwc29pZCxlLG8pLG8rPUsucGFja2VkTGVuZ3RoLGVbbysrXT1uLl9wcm9qZWN0aW9uSW5kZXgsZVtvKytdPW4uX3NjZW5lM0RPbmx5PzE6MCxlfTtraS51bnBhY2s9ZnVuY3Rpb24obixlLHQpe2xldCBvPWU/PzAsYT1uW28rK10scj1uZXcgQXJyYXkoYSk7Zm9yKGxldCBoPTA7aDxhO2grKylyW2hdPXMudW5wYWNrKG4sbyksbys9MztsZXQgaT1uW28rK10sZj1uW28rK109PT0xLGQ9bltvKytdLGM9Sy51bnBhY2sobixvKTtvKz1LLnBhY2tlZExlbmd0aDtsZXQgdT1uW28rK10sbD1uW28rK109PT0xO3JldHVybiBfKHQpfHwodD1uZXcga2koe3Bvc2l0aW9uczpyfSkpLHQuX3Bvc2l0aW9ucz1yLHQuZ3JhbnVsYXJpdHk9aSx0Lmxvb3A9Zix0LmFyY1R5cGU9ZCx0Ll9lbGxpcHNvaWQ9Yyx0Ll9wcm9qZWN0aW9uSW5kZXg9dSx0Ll9zY2VuZTNET25seT1sLHR9O2lGPW5ldyBzLGNGPW5ldyBzLHNGPW5ldyBzLE9SPW5ldyBzLGZGPTAsZEY9LTE7R2g9bm4uZnJvbVBvaW50Tm9ybWFsKHMuWkVSTyxzLlVOSVRfWSksdUY9bmV3IHMsbEY9bmV3IHMsaEY9bmV3IHMsbUY9bmV3IHMsYkY9bmV3IHMsVWg9bmV3IHMsTGg9bmV3IHJlLHNSPW5ldyByZSxmUj1uZXcgcmU7a2kuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7bGV0IGU9IW4uX3NjZW5lM0RPbmx5LHQ9bi5sb29wLG89bi5fZWxsaXBzb2lkLGE9bi5ncmFudWxhcml0eSxyPW4uYXJjVHlwZSxpPW5ldyB4Z1tuLl9wcm9qZWN0aW9uSW5kZXhdKG8pLGY9UlIsZD14UixjLHUsbD1uLl9wb3NpdGlvbnMsaD1sLmxlbmd0aDtoPT09MiYmKHQ9ITEpO2xldCBtLGIscCx5LEU9bmV3IFpvKHZvaWQgMCx2b2lkIDAsbyksZyxBLFQsUj1bbFswXV07Zm9yKHU9MDt1PGgtMTt1KyspbT1sW3VdLGI9bFt1KzFdLGc9UW4ubGluZVNlZ21lbnRQbGFuZShtLGIsR2gsVWgpLF8oZykmJiFzLmVxdWFsc0Vwc2lsb24oZyxtLGsuRVBTSUxPTjcpJiYhcy5lcXVhbHNFcHNpbG9uKGcsYixrLkVQU0lMT043KSYmKG4uYXJjVHlwZT09PWJ0LkdFT0RFU0lDP1IucHVzaChzLmNsb25lKGcpKTpuLmFyY1R5cGU9PT1idC5SSFVNQiYmKFQ9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhnLExoKS5sb25naXR1ZGUscD1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG0sTGgpLHk9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhiLHNSKSxFLnNldEVuZFBvaW50cyhwLHkpLEE9RS5maW5kSW50ZXJzZWN0aW9uV2l0aExvbmdpdHVkZShULGZSKSxnPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oQSxVaCksXyhnKSYmIXMuZXF1YWxzRXBzaWxvbihnLG0say5FUFNJTE9ONykmJiFzLmVxdWFsc0Vwc2lsb24oZyxiLGsuRVBTSUxPTjcpJiZSLnB1c2gocy5jbG9uZShnKSkpKSxSLnB1c2goYik7dCYmKG09bFtoLTFdLGI9bFswXSxnPVFuLmxpbmVTZWdtZW50UGxhbmUobSxiLEdoLFVoKSxfKGcpJiYhcy5lcXVhbHNFcHNpbG9uKGcsbSxrLkVQU0lMT043KSYmIXMuZXF1YWxzRXBzaWxvbihnLGIsay5FUFNJTE9ONykmJihuLmFyY1R5cGU9PT1idC5HRU9ERVNJQz9SLnB1c2gocy5jbG9uZShnKSk6bi5hcmNUeXBlPT09YnQuUkhVTUImJihUPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZyxMaCkubG9uZ2l0dWRlLHA9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhtLExoKSx5PW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoYixzUiksRS5zZXRFbmRQb2ludHMocCx5KSxBPUUuZmluZEludGVyc2VjdGlvbldpdGhMb25naXR1ZGUoVCxmUiksZz1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKEEsVWgpLF8oZykmJiFzLmVxdWFsc0Vwc2lsb24oZyxtLGsuRVBTSUxPTjcpJiYhcy5lcXVhbHNFcHNpbG9uKGcsYixrLkVQU0lMT043KSYmUi5wdXNoKHMuY2xvbmUoZykpKSkpO2xldCBTPVIubGVuZ3RoLE09bmV3IEFycmF5KFMpO2Zvcih1PTA7dTxTO3UrKyl7bGV0IFo9cmUuZnJvbUNhcnRlc2lhbihSW3VdLG8pO1ouaGVpZ2h0PTAsTVt1XT1afWlmKE09eG4oTSxyZS5lcXVhbHNFcHNpbG9uKSxTPU0ubGVuZ3RoLFM8MilyZXR1cm47bGV0IEk9W10sTj1bXSxQPVtdLEY9W10sdz11Rix4PWxGLEM9aEYsdj1tRixqPWJGLHo9TVswXSxEPU1bMV0sRz1NW1MtMV07Zm9yKHc9em8obyxHLGYsdyksdj16byhvLEQsZix2KSx4PXpvKG8seixmLHgpLEM9em8obyx6LGQsQyksdD9qPUFnKHcseCxDLHYsaik6aj1SZyh6LEQsZCxvLGopLHMucGFjayhqLE4sMCkscy5wYWNrKHgsUCwwKSxzLnBhY2soQyxGLDApLEkucHVzaCh6LmxhdGl0dWRlKSxJLnB1c2goei5sb25naXR1ZGUpLF9nKHosRCxmLGQsYSxyLG8sTixQLEYsSSksdT0xO3U8Uy0xOysrdSl7dz1zLmNsb25lKHgsdykseD1zLmNsb25lKHYseCk7bGV0IFo9TVt1XTt6byhvLFosZCxDKSx6byhvLE1bdSsxXSxmLHYpLEFnKHcseCxDLHYsaiksYz1OLmxlbmd0aCxzLnBhY2soaixOLGMpLHMucGFjayh4LFAsYykscy5wYWNrKEMsRixjKSxJLnB1c2goWi5sYXRpdHVkZSksSS5wdXNoKFoubG9uZ2l0dWRlKSxfZyhNW3VdLE1bdSsxXSxmLGQsYSxyLG8sTixQLEYsSSl9bGV0IFY9TVtTLTFdLE89TVtTLTJdO2lmKHg9em8obyxWLGYseCksQz16byhvLFYsZCxDKSx0KXtsZXQgWj1NWzBdO3c9em8obyxPLGYsdyksdj16byhvLFosZix2KSxqPUFnKHcseCxDLHYsail9ZWxzZSBqPVJnKE8sVixkLG8saik7aWYoYz1OLmxlbmd0aCxzLnBhY2soaixOLGMpLHMucGFjayh4LFAsYykscy5wYWNrKEMsRixjKSxJLnB1c2goVi5sYXRpdHVkZSksSS5wdXNoKFYubG9uZ2l0dWRlKSx0KXtmb3IoX2coVix6LGYsZCxhLHIsbyxOLFAsRixJKSxjPU4ubGVuZ3RoLHU9MDt1PDM7Kyt1KU5bYyt1XT1OW3VdLFBbYyt1XT1QW3VdLEZbYyt1XT1GW3VdO0kucHVzaCh6LmxhdGl0dWRlKSxJLnB1c2goei5sb25naXR1ZGUpfXJldHVybiB6Rih0LGksUCxGLE4sSSxlKX07cEY9bmV3IHMsZ0Y9bmV3IEosX0Y9bmV3IFllO3VSPW5ldyByZSx5Rj1uZXcgcyxsUj1uZXcgcztBRj1uZXcgcyxoUj1uZXcgczt3Rj1uZXcgcztTUj1uZXcgcmUsQ1I9bmV3IHJlLGJSPW5ldyBzLHdnPW5ldyBzLHBSPW5ldyBzLGdSPW5ldyBzLEVGPW5ldyBzLF9SPW5ldyBzLFJGPVtTUixDUl0seEY9bmV3IHhlLE9GPW5ldyBzLFNGPW5ldyBzLENGPW5ldyBzLE1GPW5ldyBzLE5GPW5ldyBzLElGPW5ldyBzLFRnPW5ldyBzLEVnPW5ldyBzLFBGPW5ldyBzLGtGPW5ldyBzLHZGPW5ldyBzLHlSPW5ldyBzLEZGPW5ldyBzLERGPW5ldyBzLEJGPW5ldyBhYyxqRj1uZXcgYWMsQVI9bmV3IHMsVUY9bmV3IHMsd1I9bmV3IHMsTEY9W25ldyBnZSxuZXcgZ2VdLE1SPVswLDIsMSwwLDMsMiwwLDcsMywwLDQsNywwLDUsNCwwLDEsNSw1LDcsNCw1LDYsNyw1LDIsNiw1LDEsMiwzLDYsMiwzLDcsNl0sVFI9TVIubGVuZ3RoO2tpLl9wcm9qZWN0Tm9ybWFsPWxkO09nPWtpfSk7dmFyIFNnPXt9OyRlKFNnLHtkZWZhdWx0OigpPT5WRn0pO2Z1bmN0aW9uIEdGKG4sZSl7cmV0dXJuIGpoLmluaXRpYWxpemUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIF8oZSkmJihuPU9nLnVucGFjayhuLGUpKSxPZy5jcmVhdGVHZW9tZXRyeShuKX0pfXZhciBWRixDZz1YKCgpPT57Z2coKTtzZSgpO05SKCk7VkY9R0Z9KTtmdW5jdGlvbiBNcyhuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLnZlcnRleEZvcm1hdD8/bGUuREVGQVVMVDt0aGlzLl92ZXJ0ZXhGb3JtYXQ9ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVQbGFuZUdlb21ldHJ5In12YXIgSVIsSEYsVmgsSGgsTWcsUFI9WCgoKT0+e0V0KCk7TWUoKTtDdCgpO3N0KCk7c2UoKTtYdCgpO1l0KCk7cm4oKTt0bigpO0NvKCk7TXMucGFja2VkTGVuZ3RoPWxlLnBhY2tlZExlbmd0aDtNcy5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gdD10Pz8wLGxlLnBhY2sobi5fdmVydGV4Rm9ybWF0LGUsdCksZX07SVI9bmV3IGxlLEhGPXt2ZXJ0ZXhGb3JtYXQ6SVJ9O01zLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvPWxlLnVucGFjayhuLGUsSVIpO3JldHVybiBfKHQpPyh0Ll92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUobyx0Ll92ZXJ0ZXhGb3JtYXQpLHQpOm5ldyBNcyhIRil9O1ZoPW5ldyBzKC0uNSwtLjUsMCksSGg9bmV3IHMoLjUsLjUsMCk7TXMuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7bGV0IGU9bi5fdmVydGV4Rm9ybWF0LHQ9bmV3IFFlLG8sYTtpZihlLnBvc2l0aW9uKXtpZihhPW5ldyBGbG9hdDY0QXJyYXkoMTIpLGFbMF09VmgueCxhWzFdPVZoLnksYVsyXT0wLGFbM109SGgueCxhWzRdPVZoLnksYVs1XT0wLGFbNl09SGgueCxhWzddPUhoLnksYVs4XT0wLGFbOV09VmgueCxhWzEwXT1IaC55LGFbMTFdPTAsdC5wb3NpdGlvbj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmF9KSxlLm5vcm1hbCl7bGV0IHI9bmV3IEZsb2F0MzJBcnJheSgxMik7clswXT0wLHJbMV09MCxyWzJdPTEsclszXT0wLHJbNF09MCxyWzVdPTEscls2XT0wLHJbN109MCxyWzhdPTEscls5XT0wLHJbMTBdPTAsclsxMV09MSx0Lm5vcm1hbD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6cn0pfWlmKGUuc3Qpe2xldCByPW5ldyBGbG9hdDMyQXJyYXkoOCk7clswXT0wLHJbMV09MCxyWzJdPTEsclszXT0wLHJbNF09MSxyWzVdPTEscls2XT0wLHJbN109MSx0LnN0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpyfSl9aWYoZS50YW5nZW50KXtsZXQgcj1uZXcgRmxvYXQzMkFycmF5KDEyKTtyWzBdPTEsclsxXT0wLHJbMl09MCxyWzNdPTEscls0XT0wLHJbNV09MCxyWzZdPTEscls3XT0wLHJbOF09MCxyWzldPTEsclsxMF09MCxyWzExXT0wLHQudGFuZ2VudD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6cn0pfWlmKGUuYml0YW5nZW50KXtsZXQgcj1uZXcgRmxvYXQzMkFycmF5KDEyKTtyWzBdPTAsclsxXT0xLHJbMl09MCxyWzNdPTAscls0XT0xLHJbNV09MCxyWzZdPTAscls3XT0xLHJbOF09MCxyWzldPTAsclsxMF09MSxyWzExXT0wLHQuYml0YW5nZW50PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpyfSl9bz1uZXcgVWludDE2QXJyYXkoNiksb1swXT0wLG9bMV09MSxvWzJdPTIsb1szXT0wLG9bNF09MixvWzVdPTN9cmV0dXJuIG5ldyBQZSh7YXR0cmlidXRlczp0LGluZGljZXM6byxwcmltaXRpdmVUeXBlOkZlLlRSSUFOR0xFUyxib3VuZGluZ1NwaGVyZTpuZXcgZ2Uocy5aRVJPLE1hdGguc3FydCgyKSl9KX07TWc9TXN9KTt2YXIgTmc9e307JGUoTmcse2RlZmF1bHQ6KCk9PnFGfSk7ZnVuY3Rpb24gS0YobixlKXtyZXR1cm4gXyhlKSYmKG49TWcudW5wYWNrKG4sZSkpLE1nLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBxRixJZz1YKCgpPT57c2UoKTtQUigpO3FGPUtGfSk7ZnVuY3Rpb24gTnMoKXt0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVQbGFuZU91dGxpbmVHZW9tZXRyeSJ9dmFyIHZpLEtoLFBnLGtSPVgoKCk9PntFdCgpO01lKCk7Q3QoKTtzZSgpO1h0KCk7WXQoKTtybigpO3RuKCk7TnMucGFja2VkTGVuZ3RoPTA7TnMucGFjaz1mdW5jdGlvbihuLGUpe3JldHVybiBlfTtOcy51bnBhY2s9ZnVuY3Rpb24obixlLHQpe3JldHVybiBfKHQpP3Q6bmV3IE5zfTt2aT1uZXcgcygtLjUsLS41LDApLEtoPW5ldyBzKC41LC41LDApO05zLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKCl7bGV0IG49bmV3IFFlLGU9bmV3IFVpbnQxNkFycmF5KDgpLHQ9bmV3IEZsb2F0NjRBcnJheSgxMik7cmV0dXJuIHRbMF09dmkueCx0WzFdPXZpLnksdFsyXT12aS56LHRbM109S2gueCx0WzRdPXZpLnksdFs1XT12aS56LHRbNl09S2gueCx0WzddPUtoLnksdFs4XT12aS56LHRbOV09dmkueCx0WzEwXT1LaC55LHRbMTFdPXZpLnosbi5wb3NpdGlvbj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnR9KSxlWzBdPTAsZVsxXT0xLGVbMl09MSxlWzNdPTIsZVs0XT0yLGVbNV09MyxlWzZdPTMsZVs3XT0wLG5ldyBQZSh7YXR0cmlidXRlczpuLGluZGljZXM6ZSxwcmltaXRpdmVUeXBlOkZlLkxJTkVTLGJvdW5kaW5nU3BoZXJlOm5ldyBnZShzLlpFUk8sTWF0aC5zcXJ0KDIpKX0pfTtQZz1Oc30pO3ZhciBrZz17fTskZShrZyx7ZGVmYXVsdDooKT0+WEZ9KTtmdW5jdGlvbiBXRihuLGUpe3JldHVybiBfKGUpJiYobj1QZy51bnBhY2sobixlKSksUGcuY3JlYXRlR2VvbWV0cnkobil9dmFyIFhGLHZnPVgoKCk9PntzZSgpO2tSKCk7WEY9V0Z9KTtmdW5jdGlvbiBEbihuLGUpe3RoaXMucG9zaXRpb249bixfKHRoaXMucG9zaXRpb24pfHwodGhpcy5wb3NpdGlvbj1uZXcgWSksdGhpcy50YW5nZW50UGxhbmU9ZSxfKHRoaXMudGFuZ2VudFBsYW5lKXx8KHRoaXMudGFuZ2VudFBsYW5lPURuLk5PUlRIX1BPTEVfVEFOR0VOVF9QTEFORSl9dmFyIElzLFlGLEpGLFpGLFFGLGNhLHZSPVgoKCk9Pnt2dCgpO01lKCk7Z3QoKTtzZSgpO1ZlKCk7cHMoKTtiaSgpO1VlKCk7RmYoKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhEbi5wcm90b3R5cGUse2VsbGlwc29pZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFuZ2VudFBsYW5lLmVsbGlwc29pZH19LHg6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uLnh9fSx5OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb3NpdGlvbi55fX0sY29uZm9ybWFsTGF0aXR1ZGU6e2dldDpmdW5jdGlvbigpe2xldCBuPVkubWFnbml0dWRlKHRoaXMucG9zaXRpb24pLGU9Mip0aGlzLmVsbGlwc29pZC5tYXhpbXVtUmFkaXVzO3JldHVybiB0aGlzLnRhbmdlbnRQbGFuZS5wbGFuZS5ub3JtYWwueiooay5QSV9PVkVSX1RXTy0yKk1hdGguYXRhbjIobixlKSl9fSxsb25naXR1ZGU6e2dldDpmdW5jdGlvbigpe2xldCBuPWsuUElfT1ZFUl9UV08rTWF0aC5hdGFuMih0aGlzLnksdGhpcy54KTtyZXR1cm4gbj5NYXRoLlBJJiYobi09ay5UV09fUEkpLG59fX0pO0lzPW5ldyByZSxZRj1uZXcgcztEbi5wcm90b3R5cGUuZ2V0TGF0aXR1ZGU9ZnVuY3Rpb24obil7XyhuKXx8KG49Sy5kZWZhdWx0KSxJcy5sYXRpdHVkZT10aGlzLmNvbmZvcm1hbExhdGl0dWRlLElzLmxvbmdpdHVkZT10aGlzLmxvbmdpdHVkZSxJcy5oZWlnaHQ9MDtsZXQgZT10aGlzLmVsbGlwc29pZC5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihJcyxZRik7cmV0dXJuIG4uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZSxJcyksSXMubGF0aXR1ZGV9O0pGPW5ldyBjcixaRj1uZXcgcyxRRj1uZXcgcztEbi5mcm9tQ2FydGVzaWFuPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9ay5zaWduTm90WmVybyhuLnopLG89RG4uTk9SVEhfUE9MRV9UQU5HRU5UX1BMQU5FLGE9RG4uU09VVEhfUE9MRTt0PDAmJihvPURuLlNPVVRIX1BPTEVfVEFOR0VOVF9QTEFORSxhPURuLk5PUlRIX1BPTEUpO2xldCByPUpGO3Iub3JpZ2luPW8uZWxsaXBzb2lkLnNjYWxlVG9HZW9jZW50cmljU3VyZmFjZShuLHIub3JpZ2luKSxyLmRpcmVjdGlvbj1zLnN1YnRyYWN0KHIub3JpZ2luLGEsWkYpLHMubm9ybWFsaXplKHIuZGlyZWN0aW9uLHIuZGlyZWN0aW9uKTtsZXQgaT1Rbi5yYXlQbGFuZShyLG8ucGxhbmUsUUYpLGY9cy5zdWJ0cmFjdChpLGEsaSksZD1zLmRvdChvLnhBeGlzLGYpLGM9dCpzLmRvdChvLnlBeGlzLGYpO3JldHVybiBfKGUpPyhlLnBvc2l0aW9uPW5ldyBZKGQsYyksZS50YW5nZW50UGxhbmU9byxlKTpuZXcgRG4obmV3IFkoZCxjKSxvKX07RG4uZnJvbUNhcnRlc2lhbkFycmF5PWZ1bmN0aW9uKG4sZSl7bGV0IHQ9bi5sZW5ndGg7XyhlKT9lLmxlbmd0aD10OmU9bmV3IEFycmF5KHQpO2ZvcihsZXQgbz0wO288dDtvKyspZVtvXT1Ebi5mcm9tQ2FydGVzaWFuKG5bb10sZVtvXSk7cmV0dXJuIGV9O0RuLmNsb25lPWZ1bmN0aW9uKG4sZSl7aWYoXyhuKSlyZXR1cm4gXyhlKT8oZS5wb3NpdGlvbj1uLnBvc2l0aW9uLGUudGFuZ2VudFBsYW5lPW4udGFuZ2VudFBsYW5lLGUpOm5ldyBEbihuLnBvc2l0aW9uLG4udGFuZ2VudFBsYW5lKX07RG4uSEFMRl9VTklUX1NQSEVSRT1PYmplY3QuZnJlZXplKG5ldyBLKC41LC41LC41KSk7RG4uTk9SVEhfUE9MRT1PYmplY3QuZnJlZXplKG5ldyBzKDAsMCwuNSkpO0RuLlNPVVRIX1BPTEU9T2JqZWN0LmZyZWV6ZShuZXcgcygwLDAsLS41KSk7RG4uTk9SVEhfUE9MRV9UQU5HRU5UX1BMQU5FPU9iamVjdC5mcmVlemUobmV3IEFvKERuLk5PUlRIX1BPTEUsRG4uSEFMRl9VTklUX1NQSEVSRSkpO0RuLlNPVVRIX1BPTEVfVEFOR0VOVF9QTEFORT1PYmplY3QuZnJlZXplKG5ldyBBbyhEbi5TT1VUSF9QT0xFLERuLkhBTEZfVU5JVF9TUEhFUkUpKTtjYT1Ebn0pO2Z1bmN0aW9uIGVEKG4sZSx0LG8pe2xldCByPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMobiwkRikuaGVpZ2h0LGk9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhlLEZSKTtpLmhlaWdodD1yLG8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oaSxlKTtsZXQgZj1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHQsRlIpO2YuaGVpZ2h0PXItMTAwLG8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oZix0KX1mdW5jdGlvbiBGZyhuKXtsZXQgZT1uLnZlcnRleEZvcm1hdCx0PW4uZ2VvbWV0cnksbz1uLnNoYWRvd1ZvbHVtZSxhPXQuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMscj1fKHQuYXR0cmlidXRlcy5zdCk/dC5hdHRyaWJ1dGVzLnN0LnZhbHVlczp2b2lkIDAsaT1hLmxlbmd0aCxmPW4ud2FsbCxkPW4udG9wfHxmLGM9bi5ib3R0b218fGY7aWYoZS5zdHx8ZS5ub3JtYWx8fGUudGFuZ2VudHx8ZS5iaXRhbmdlbnR8fG8pe2xldCB1PW4uYm91bmRpbmdSZWN0YW5nbGUsbD1uLnJvdGF0aW9uQXhpcyxoPW4ucHJvamVjdFRvMmQsbT1uLmVsbGlwc29pZCxiPW4uc3RSb3RhdGlvbixwPW4ucGVyUG9zaXRpb25IZWlnaHQseT1jRDt5Lng9dS54LHkueT11Lnk7bGV0IEU9ZS5zdD9uZXcgRmxvYXQzMkFycmF5KDIqKGkvMykpOnZvaWQgMCxnO2Uubm9ybWFsJiYocCYmZCYmIWY/Zz10LmF0dHJpYnV0ZXMubm9ybWFsLnZhbHVlczpnPW5ldyBGbG9hdDMyQXJyYXkoaSkpO2xldCBBPWUudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGkpOnZvaWQgMCxUPWUuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoaSk6dm9pZCAwLFI9bz9uZXcgRmxvYXQzMkFycmF5KGkpOnZvaWQgMCxTPTAsTT0wLEk9bkQsTj1vRCxQPWFELEY9ITAsdz1kRCx4PXVEO2lmKGIhPT0wKXtsZXQgaj1ZZS5mcm9tQXhpc0FuZ2xlKGwsYixCUik7dz1KLmZyb21RdWF0ZXJuaW9uKGosdyksaj1ZZS5mcm9tQXhpc0FuZ2xlKGwsLWIsQlIpLHg9Si5mcm9tUXVhdGVybmlvbihqLHgpfWVsc2Ugdz1KLmNsb25lKEouSURFTlRJVFksdykseD1KLmNsb25lKEouSURFTlRJVFkseCk7bGV0IEM9MCx2PTA7ZCYmYyYmKEM9aS8yLHY9aS8zLGkvPTIpO2ZvcihsZXQgaj0wO2o8aTtqKz0zKXtsZXQgej1zLmZyb21BcnJheShhLGosZkQpO2lmKGUuc3QmJiFfKHIpKXtsZXQgRD1KLm11bHRpcGx5QnlWZWN0b3Iodyx6LHREKTtEPW0uc2NhbGVUb0dlb2RldGljU3VyZmFjZShELEQpO2xldCBHPWgoW0RdLHNEKVswXTtZLnN1YnRyYWN0KEcseSxHKTtsZXQgVj1rLmNsYW1wKEcueC91LndpZHRoLDAsMSksTz1rLmNsYW1wKEcueS91LmhlaWdodCwwLDEpO2MmJihFW1Mrdl09VixFW1MrMSt2XT1PKSxkJiYoRVtTXT1WLEVbUysxXT1PKSxTKz0yfWlmKGUubm9ybWFsfHxlLnRhbmdlbnR8fGUuYml0YW5nZW50fHxvKXtsZXQgRD1NKzEsRz1NKzI7aWYoZil7aWYoaiszPGkpe2xldCBWPXMuZnJvbUFycmF5KGEsaiszLHJEKTtpZihGKXtsZXQgTz1zLmZyb21BcnJheShhLGoraSxpRCk7cCYmZUQoeixWLE8sbSkscy5zdWJ0cmFjdChWLHosVikscy5zdWJ0cmFjdChPLHosTyksST1zLm5vcm1hbGl6ZShzLmNyb3NzKE8sVixJKSxJKSxGPSExfXMuZXF1YWxzRXBzaWxvbihWLHosay5FUFNJTE9OMTApJiYoRj0hMCl9KGUudGFuZ2VudHx8ZS5iaXRhbmdlbnQpJiYoUD1tLmdlb2RldGljU3VyZmFjZU5vcm1hbCh6LFApLGUudGFuZ2VudCYmKE49cy5ub3JtYWxpemUocy5jcm9zcyhQLEksTiksTikpKX1lbHNlIEk9bS5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoeixJKSwoZS50YW5nZW50fHxlLmJpdGFuZ2VudCkmJihwJiYocWg9cy5mcm9tQXJyYXkoZyxNLHFoKSxwcj1zLmNyb3NzKHMuVU5JVF9aLHFoLHByKSxwcj1zLm5vcm1hbGl6ZShKLm11bHRpcGx5QnlWZWN0b3IoeCxwcixwcikscHIpLGUuYml0YW5nZW50JiYoUHM9cy5ub3JtYWxpemUocy5jcm9zcyhxaCxwcixQcyksUHMpKSksTj1zLmNyb3NzKHMuVU5JVF9aLEksTiksTj1zLm5vcm1hbGl6ZShKLm11bHRpcGx5QnlWZWN0b3IoeCxOLE4pLE4pLGUuYml0YW5nZW50JiYoUD1zLm5vcm1hbGl6ZShzLmNyb3NzKEksTixQKSxQKSkpO2Uubm9ybWFsJiYobi53YWxsPyhnW00rQ109SS54LGdbRCtDXT1JLnksZ1tHK0NdPUkueik6YyYmKGdbTStDXT0tSS54LGdbRCtDXT0tSS55LGdbRytDXT0tSS56KSwoZCYmIXB8fGYpJiYoZ1tNXT1JLngsZ1tEXT1JLnksZ1tHXT1JLnopKSxvJiYoZiYmKEk9bS5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoeixJKSksUltNK0NdPS1JLngsUltEK0NdPS1JLnksUltHK0NdPS1JLnopLGUudGFuZ2VudCYmKG4ud2FsbD8oQVtNK0NdPU4ueCxBW0QrQ109Ti55LEFbRytDXT1OLnopOmMmJihBW00rQ109LU4ueCxBW0QrQ109LU4ueSxBW0crQ109LU4ueiksZCYmKHA/KEFbTV09cHIueCxBW0RdPXByLnksQVtHXT1wci56KTooQVtNXT1OLngsQVtEXT1OLnksQVtHXT1OLnopKSksZS5iaXRhbmdlbnQmJihjJiYoVFtNK0NdPVAueCxUW0QrQ109UC55LFRbRytDXT1QLnopLGQmJihwPyhUW01dPVBzLngsVFtEXT1Qcy55LFRbR109UHMueik6KFRbTV09UC54LFRbRF09UC55LFRbR109UC56KSkpLE0rPTN9fWUuc3QmJiFfKHIpJiYodC5hdHRyaWJ1dGVzLnN0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpFfSkpLGUubm9ybWFsJiYodC5hdHRyaWJ1dGVzLm5vcm1hbD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Z30pKSxlLnRhbmdlbnQmJih0LmF0dHJpYnV0ZXMudGFuZ2VudD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6QX0pKSxlLmJpdGFuZ2VudCYmKHQuYXR0cmlidXRlcy5iaXRhbmdlbnQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOlR9KSksbyYmKHQuYXR0cmlidXRlcy5leHRydWRlRGlyZWN0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpSfSkpfWlmKG4uZXh0cnVkZSYmXyhuLm9mZnNldEF0dHJpYnV0ZSkpe2xldCB1PWEubGVuZ3RoLzMsbD1uZXcgVWludDhBcnJheSh1KTtpZihuLm9mZnNldEF0dHJpYnV0ZT09PW90LlRPUClkJiZjfHxmP2w9bC5maWxsKDEsMCx1LzIpOmQmJihsPWwuZmlsbCgxKSk7ZWxzZXtsZXQgaD1uLm9mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxO2w9bC5maWxsKGgpfXQuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpsfSl9cmV0dXJuIHR9ZnVuY3Rpb24gbEQobixlLHQsbyxhLHIsaSxmLGQsYyl7bGV0IHU9e3dhbGxzOltdfSxsO2lmKGl8fGYpe2xldCBnPWl0LmNyZWF0ZUdlb21ldHJ5RnJvbVBvc2l0aW9ucyhuLGUsdCxvLHIsZCxjKSxBPWcuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsVD1nLmluZGljZXMsUixTO2lmKGkmJmYpe2xldCBNPUEuY29uY2F0KEEpO1I9TS5sZW5ndGgvMyxTPUllLmNyZWF0ZVR5cGVkQXJyYXkoUixULmxlbmd0aCoyKSxTLnNldChUKTtsZXQgST1ULmxlbmd0aCxOPVIvMjtmb3IobD0wO2w8STtsKz0zKXtsZXQgUD1TW2xdK04sRj1TW2wrMV0rTix3PVNbbCsyXStOO1NbbCtJXT13LFNbbCsxK0ldPUYsU1tsKzIrSV09UH1pZihnLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPU0sciYmZC5ub3JtYWwpe2xldCBQPWcuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzO2cuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzPW5ldyBGbG9hdDMyQXJyYXkoTS5sZW5ndGgpLGcuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzLnNldChQKX1pZihkLnN0JiZfKHQpKXtsZXQgUD1nLmF0dHJpYnV0ZXMuc3QudmFsdWVzO2cuYXR0cmlidXRlcy5zdC52YWx1ZXM9bmV3IEZsb2F0MzJBcnJheShSKjIpLGcuYXR0cmlidXRlcy5zdC52YWx1ZXM9UC5jb25jYXQoUCl9Zy5pbmRpY2VzPVN9ZWxzZSBpZihmKXtmb3IoUj1BLmxlbmd0aC8zLFM9SWUuY3JlYXRlVHlwZWRBcnJheShSLFQubGVuZ3RoKSxsPTA7bDxULmxlbmd0aDtsKz0zKVNbbF09VFtsKzJdLFNbbCsxXT1UW2wrMV0sU1tsKzJdPVRbbF07Zy5pbmRpY2VzPVN9dS50b3BBbmRCb3R0b209bmV3IGxvKHtnZW9tZXRyeTpnfSl9bGV0IGg9YS5vdXRlclJpbmcsbT1Bby5mcm9tUG9pbnRzKGgsbiksYj1tLnByb2plY3RQb2ludHNPbnRvUGxhbmUoaCxqUikscD13dC5jb21wdXRlV2luZGluZ09yZGVyMkQoYik7cD09PU1vLkNMT0NLV0lTRSYmKGg9aC5zbGljZSgpLnJldmVyc2UoKSk7bGV0IHk9aXQuY29tcHV0ZVdhbGxHZW9tZXRyeShoLHQsbixvLHIsYyk7dS53YWxscy5wdXNoKG5ldyBsbyh7Z2VvbWV0cnk6eX0pKTtsZXQgRT1hLmhvbGVzO2ZvcihsPTA7bDxFLmxlbmd0aDtsKyspe2xldCBnPUVbbF07Yj1tLnByb2plY3RQb2ludHNPbnRvUGxhbmUoZyxqUikscD13dC5jb21wdXRlV2luZGluZ09yZGVyMkQoYikscD09PU1vLkNPVU5URVJfQ0xPQ0tXSVNFJiYoZz1nLnNsaWNlKCkucmV2ZXJzZSgpKSx5PWl0LmNvbXB1dGVXYWxsR2VvbWV0cnkoZyx0LG4sbyxyLGMpLHUud2FsbHMucHVzaChuZXcgbG8oe2dlb21ldHJ5Onl9KSl9cmV0dXJuIHV9ZnVuY3Rpb24gTWEobil7bGV0IGU9bi5wb2x5Z29uSGllcmFyY2h5LHQ9bi52ZXJ0ZXhGb3JtYXQ/P2xlLkRFRkFVTFQsbz1uLmVsbGlwc29pZD8/Sy5kZWZhdWx0LGE9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUscj1uLnN0Um90YXRpb24/PzAsaT1uLnRleHR1cmVDb29yZGluYXRlcyxmPW4ucGVyUG9zaXRpb25IZWlnaHQ/PyExLGQ9ZiYmXyhuLmV4dHJ1ZGVkSGVpZ2h0KSxjPW4uaGVpZ2h0Pz8wLHU9bi5leHRydWRlZEhlaWdodD8/YztpZighZCl7bGV0IGw9TWF0aC5tYXgoYyx1KTt1PU1hdGgubWluKGMsdSksYz1sfXRoaXMuX3ZlcnRleEZvcm1hdD1sZS5jbG9uZSh0KSx0aGlzLl9lbGxpcHNvaWQ9Sy5jbG9uZShvKSx0aGlzLl9ncmFudWxhcml0eT1hLHRoaXMuX3N0Um90YXRpb249cix0aGlzLl9oZWlnaHQ9Yyx0aGlzLl9leHRydWRlZEhlaWdodD11LHRoaXMuX2Nsb3NlVG9wPW4uY2xvc2VUb3A/PyEwLHRoaXMuX2Nsb3NlQm90dG9tPW4uY2xvc2VCb3R0b20/PyEwLHRoaXMuX3BvbHlnb25IaWVyYXJjaHk9ZSx0aGlzLl9wZXJQb3NpdGlvbkhlaWdodD1mLHRoaXMuX3BlclBvc2l0aW9uSGVpZ2h0RXh0cnVkZT1kLHRoaXMuX3NoYWRvd1ZvbHVtZT1uLnNoYWRvd1ZvbHVtZT8/ITEsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUG9seWdvbkdlb21ldHJ5Iix0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9bi5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fYXJjVHlwZT1uLmFyY1R5cGU/P2J0LkdFT0RFU0lDLHRoaXMuX3JlY3RhbmdsZT12b2lkIDAsdGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50cz12b2lkIDAsdGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVzPWksdGhpcy5wYWNrZWRMZW5ndGg9aXQuY29tcHV0ZUhpZXJhcmNoeVBhY2tlZExlbmd0aChlLHMpK0sucGFja2VkTGVuZ3RoK2xlLnBhY2tlZExlbmd0aCsoaT9pdC5jb21wdXRlSGllcmFyY2h5UGFja2VkTGVuZ3RoKGksWSk6MSkrMTJ9ZnVuY3Rpb24gVVIobixlLHQsbyxhLHIpe2xldCBpPW4ubG9uZ2l0dWRlLGY9aT49MD9pOmkray5UV09fUEk7YS53ZXN0T3ZlcklkbD1NYXRoLm1pbihhLndlc3RPdmVySWRsLGYpLGEuZWFzdE92ZXJJZGw9TWF0aC5tYXgoYS5lYXN0T3ZlcklkbCxmKSxyLndlc3Q9TWF0aC5taW4oci53ZXN0LGkpLHIuZWFzdD1NYXRoLm1heChyLmVhc3QsaSk7bGV0IGQ9bi5nZXRMYXRpdHVkZSh0KSxjPWQ7aWYoci5zb3V0aD1NYXRoLm1pbihyLnNvdXRoLGQpLHIubm9ydGg9TWF0aC5tYXgoci5ub3J0aCxkKSxvIT09YnQuUkhVTUIpe2xldCBoPVkuc3VidHJhY3QoZS5wb3NpdGlvbixuLnBvc2l0aW9uLHBEKSxtPVkuZG90KGUucG9zaXRpb24saCkvWS5kb3QoaCxoKTtpZihtPjAmJm08MSl7bGV0IGI9WS5hZGQoZS5wb3NpdGlvbixZLm11bHRpcGx5QnlTY2FsYXIoaCwtbSxoKSxnRCkscD1jYS5jbG9uZShlLF9EKTtwLnBvc2l0aW9uPWI7bGV0IHk9cC5nZXRMYXRpdHVkZSh0KTtyLnNvdXRoPU1hdGgubWluKHIuc291dGgseSksci5ub3J0aD1NYXRoLm1heChyLm5vcnRoLHkpLE1hdGguYWJzKGQpPk1hdGguYWJzKHkpJiYoYz15KX19bGV0IHU9ZS54Km4ueS1uLngqZS55LGw9TWF0aC5zaWduKHUpO2whPT0wJiYobCo9WS5hbmdsZUJldHdlZW4oZS5wb3NpdGlvbixuLnBvc2l0aW9uKSksYz49MCYmKGEubm9ydGhBbmdsZSs9bCksYzw9MCYmKGEuc291dGhBbmdsZSs9bCl9ZnVuY3Rpb24gd0QobixlLHQpe3JldHVybiBuLmhlaWdodD49ay5QSXx8bi53aWR0aD49ay5QST9jYS5mcm9tQ2FydGVzaWFuKGVbMF0sQUQpLnRhbmdlbnRQbGFuZTpBby5mcm9tUG9pbnRzKGUsdCl9ZnVuY3Rpb24gVEQobixlLHQpe3JldHVybihvLGEpPT57aWYobi5oZWlnaHQ+PWsuUEl8fG4ud2lkdGg+PWsuUEkpe2lmKG4uc291dGg8MCYmbi5ub3J0aD4wKXtfKGEpfHwoYT1bXSk7Zm9yKGxldCBpPTA7aTxvLmxlbmd0aDsrK2kpe2xldCBmPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMob1tpXSx6Uik7YVtpXT1uZXcgWShmLmxvbmdpdHVkZS9rLlBJLGYubGF0aXR1ZGUvay5QSV9PVkVSX1RXTyl9cmV0dXJuIGEubGVuZ3RoPW8ubGVuZ3RoLGF9cmV0dXJuIGNhLmZyb21DYXJ0ZXNpYW5BcnJheShvLGEpfXJldHVybiBBby5mcm9tUG9pbnRzKGUsdCkucHJvamVjdFBvaW50c09udG9QbGFuZShvLGEpfX1mdW5jdGlvbiBFRChuLGUsdCl7aWYobi5oZWlnaHQ+PWsuUEl8fG4ud2lkdGg+PWsuUEkpcmV0dXJuKGEscik9PntpZihuLnNvdXRoPDAmJm4ubm9ydGg+MCl7bGV0IGk9dC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhhLHpSKTtyZXR1cm4gXyhyKXx8KHI9bmV3IFkpLHIueD1pLmxvbmdpdHVkZS9rLlBJLHIueT1pLmxhdGl0dWRlL2suUElfT1ZFUl9UV08scn1yZXR1cm4gY2EuZnJvbUNhcnRlc2lhbihhLHIpfTtsZXQgbz1Bby5mcm9tUG9pbnRzKGUsdCk7cmV0dXJuKGEscik9Pm8ucHJvamVjdFBvaW50c09udG9QbGFuZShhLHIpfWZ1bmN0aW9uIFJEKG4sZSx0LG8pe3JldHVybihhLHIpPT4hbyYmKG4uaGVpZ2h0Pj1rLlBJX09WRVJfVFdPfHxuLndpZHRoPj0yKmsuUElfT1ZFUl9USFJFRSk/aXQuc3BsaXRQb2x5Z29uc09uRXF1YXRvcihhLGUsdCxyKTphfWZ1bmN0aW9uIHhEKG4sZSx0LG8pe2lmKGUuaGVpZ2h0Pj1rLlBJfHxlLndpZHRoPj1rLlBJKXJldHVybiBxYS5mcm9tUmVjdGFuZ2xlKGUsdm9pZCAwLERSKTtsZXQgYT1uLHI9QW8uZnJvbVBvaW50cyhhLHQpO3JldHVybiBpdC5jb21wdXRlQm91bmRpbmdSZWN0YW5nbGUoci5wbGFuZS5ub3JtYWwsci5wcm9qZWN0UG9pbnRPbnRvUGxhbmUuYmluZChyKSxhLG8sRFIpfWZ1bmN0aW9uIE9EKG4pe2xldCBlPS1uLl9zdFJvdGF0aW9uO2lmKGU9PT0wKXJldHVyblswLDAsMCwxLDEsMF07bGV0IHQ9bi5fZWxsaXBzb2lkLG89bi5fcG9seWdvbkhpZXJhcmNoeS5wb3NpdGlvbnMsYT1uLnJlY3RhbmdsZTtyZXR1cm4gUGUuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHMobyxlLHQsYSl9dmFyICRGLEZSLERSLHRELG5ELG9ELGFELHJELGlELHFoLHByLFBzLGNELHNELGZELEJSLGRELHVELGpSLGhELG1ELGJELHBELGdELF9ELExSLHlELENhLEFELHpSLERnLEdSPVgoKCk9PntoYygpO0dmKCk7RXQoKTt2dCgpO01lKCk7Z3QoKTtDdCgpO3N0KCk7c2UoKTtWZSgpO3BzKCk7WHQoKTtZdCgpO2RjKCk7am8oKTtmcigpO1p0KCk7VWUoKTtJbigpO0pmKCk7V2EoKTtXbygpO2huKCk7dlIoKTtDbygpO2JjKCk7JEY9bmV3IHJlLEZSPW5ldyByZTtEUj1uZXcgcWEsdEQ9bmV3IHMsbkQ9bmV3IHMsb0Q9bmV3IHMsYUQ9bmV3IHMsckQ9bmV3IHMsaUQ9bmV3IHMscWg9bmV3IHMscHI9bmV3IHMsUHM9bmV3IHMsY0Q9bmV3IFksc0Q9bmV3IFksZkQ9bmV3IHMsQlI9bmV3IFllLGREPW5ldyBKLHVEPW5ldyBKO2pSPVtdO01hLmZyb21Qb3NpdGlvbnM9ZnVuY3Rpb24obil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9e3BvbHlnb25IaWVyYXJjaHk6e3Bvc2l0aW9uczpuLnBvc2l0aW9uc30saGVpZ2h0Om4uaGVpZ2h0LGV4dHJ1ZGVkSGVpZ2h0Om4uZXh0cnVkZWRIZWlnaHQsdmVydGV4Rm9ybWF0Om4udmVydGV4Rm9ybWF0LHN0Um90YXRpb246bi5zdFJvdGF0aW9uLGVsbGlwc29pZDpuLmVsbGlwc29pZCxncmFudWxhcml0eTpuLmdyYW51bGFyaXR5LHBlclBvc2l0aW9uSGVpZ2h0Om4ucGVyUG9zaXRpb25IZWlnaHQsY2xvc2VUb3A6bi5jbG9zZVRvcCxjbG9zZUJvdHRvbTpuLmNsb3NlQm90dG9tLG9mZnNldEF0dHJpYnV0ZTpuLm9mZnNldEF0dHJpYnV0ZSxhcmNUeXBlOm4uYXJjVHlwZSx0ZXh0dXJlQ29vcmRpbmF0ZXM6bi50ZXh0dXJlQ29vcmRpbmF0ZXN9O3JldHVybiBuZXcgTWEoZSl9O01hLnBhY2s9ZnVuY3Rpb24obixlLHQpe3JldHVybiB0PXQ/PzAsdD1pdC5wYWNrUG9seWdvbkhpZXJhcmNoeShuLl9wb2x5Z29uSGllcmFyY2h5LGUsdCxzKSxLLnBhY2sobi5fZWxsaXBzb2lkLGUsdCksdCs9Sy5wYWNrZWRMZW5ndGgsbGUucGFjayhuLl92ZXJ0ZXhGb3JtYXQsZSx0KSx0Kz1sZS5wYWNrZWRMZW5ndGgsZVt0KytdPW4uX2hlaWdodCxlW3QrK109bi5fZXh0cnVkZWRIZWlnaHQsZVt0KytdPW4uX2dyYW51bGFyaXR5LGVbdCsrXT1uLl9zdFJvdGF0aW9uLGVbdCsrXT1uLl9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGU/MTowLGVbdCsrXT1uLl9wZXJQb3NpdGlvbkhlaWdodD8xOjAsZVt0KytdPW4uX2Nsb3NlVG9wPzE6MCxlW3QrK109bi5fY2xvc2VCb3R0b20/MTowLGVbdCsrXT1uLl9zaGFkb3dWb2x1bWU/MTowLGVbdCsrXT1uLl9vZmZzZXRBdHRyaWJ1dGU/Py0xLGVbdCsrXT1uLl9hcmNUeXBlLF8obi5fdGV4dHVyZUNvb3JkaW5hdGVzKT90PWl0LnBhY2tQb2x5Z29uSGllcmFyY2h5KG4uX3RleHR1cmVDb29yZGluYXRlcyxlLHQsWSk6ZVt0KytdPS0xLGVbdCsrXT1uLnBhY2tlZExlbmd0aCxlfTtoRD1LLmNsb25lKEsuVU5JVF9TUEhFUkUpLG1EPW5ldyBsZSxiRD17cG9seWdvbkhpZXJhcmNoeTp7fX07TWEudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtlPWU/PzA7bGV0IG89aXQudW5wYWNrUG9seWdvbkhpZXJhcmNoeShuLGUscyk7ZT1vLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIG8uc3RhcnRpbmdJbmRleDtsZXQgYT1LLnVucGFjayhuLGUsaEQpO2UrPUsucGFja2VkTGVuZ3RoO2xldCByPWxlLnVucGFjayhuLGUsbUQpO2UrPWxlLnBhY2tlZExlbmd0aDtsZXQgaT1uW2UrK10sZj1uW2UrK10sZD1uW2UrK10sYz1uW2UrK10sdT1uW2UrK109PT0xLGw9bltlKytdPT09MSxoPW5bZSsrXT09PTEsbT1uW2UrK109PT0xLGI9bltlKytdPT09MSxwPW5bZSsrXSx5PW5bZSsrXSxFPW5bZV09PT0tMT92b2lkIDA6aXQudW5wYWNrUG9seWdvbkhpZXJhcmNoeShuLGUsWSk7XyhFKT8oZT1FLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIEUuc3RhcnRpbmdJbmRleCk6ZSsrO2xldCBnPW5bZSsrXTtyZXR1cm4gXyh0KXx8KHQ9bmV3IE1hKGJEKSksdC5fcG9seWdvbkhpZXJhcmNoeT1vLHQuX2VsbGlwc29pZD1LLmNsb25lKGEsdC5fZWxsaXBzb2lkKSx0Ll92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUocix0Ll92ZXJ0ZXhGb3JtYXQpLHQuX2hlaWdodD1pLHQuX2V4dHJ1ZGVkSGVpZ2h0PWYsdC5fZ3JhbnVsYXJpdHk9ZCx0Ll9zdFJvdGF0aW9uPWMsdC5fcGVyUG9zaXRpb25IZWlnaHRFeHRydWRlPXUsdC5fcGVyUG9zaXRpb25IZWlnaHQ9bCx0Ll9jbG9zZVRvcD1oLHQuX2Nsb3NlQm90dG9tPW0sdC5fc2hhZG93Vm9sdW1lPWIsdC5fb2Zmc2V0QXR0cmlidXRlPXA9PT0tMT92b2lkIDA6cCx0Ll9hcmNUeXBlPXksdC5fdGV4dHVyZUNvb3JkaW5hdGVzPUUsdC5wYWNrZWRMZW5ndGg9Zyx0fTtwRD1uZXcgWSxnRD1uZXcgWSxfRD1uZXcgY2E7TFI9bmV3IGNhLHlEPW5ldyBjYSxDYT17bm9ydGhBbmdsZTowLHNvdXRoQW5nbGU6MCx3ZXN0T3ZlcklkbDowLGVhc3RPdmVySWRsOjB9O01hLmNvbXB1dGVSZWN0YW5nbGVGcm9tUG9zaXRpb25zPWZ1bmN0aW9uKG4sZSx0LG8pe2lmKF8obyl8fChvPW5ldyB4ZSksbi5sZW5ndGg8MylyZXR1cm4gbztvLndlc3Q9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLG8uZWFzdD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksby5zb3V0aD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksby5ub3J0aD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksQ2Eubm9ydGhBbmdsZT0wLENhLnNvdXRoQW5nbGU9MCxDYS53ZXN0T3ZlcklkbD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksQ2EuZWFzdE92ZXJJZGw9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2xldCBhPW4ubGVuZ3RoLHI9Y2EuZnJvbUNhcnRlc2lhbihuWzBdLHlEKTtmb3IobGV0IGk9MTtpPGE7aSsrKXtsZXQgZj1jYS5mcm9tQ2FydGVzaWFuKG5baV0sTFIpO1VSKGYscixlLHQsQ2Esbykscj1jYS5jbG9uZShmLHIpfXJldHVybiBVUihjYS5mcm9tQ2FydGVzaWFuKG5bMF0sTFIpLHIsZSx0LENhLG8pLG8uZWFzdC1vLndlc3Q+Q2EuZWFzdE92ZXJJZGwtQ2Eud2VzdE92ZXJJZGwmJihvLndlc3Q9Q2Eud2VzdE92ZXJJZGwsby5lYXN0PUNhLmVhc3RPdmVySWRsLG8uZWFzdD5rLlBJJiYoby5lYXN0PW8uZWFzdC1rLlRXT19QSSksby53ZXN0PmsuUEkmJihvLndlc3Q9by53ZXN0LWsuVFdPX1BJKSksay5lcXVhbHNFcHNpbG9uKE1hdGguYWJzKENhLm5vcnRoQW5nbGUpLGsuVFdPX1BJLGsuRVBTSUxPTjEwKSYmKG8ubm9ydGg9ay5QSV9PVkVSX1RXTyxvLmVhc3Q9ay5QSSxvLndlc3Q9LWsuUEkpLGsuZXF1YWxzRXBzaWxvbihNYXRoLmFicyhDYS5zb3V0aEFuZ2xlKSxrLlRXT19QSSxrLkVQU0lMT04xMCkmJihvLnNvdXRoPS1rLlBJX09WRVJfVFdPLG8uZWFzdD1rLlBJLG8ud2VzdD0tay5QSSksb307QUQ9bmV3IGNhO3pSPW5ldyByZTtNYS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbihuKXtsZXQgZT1uLl92ZXJ0ZXhGb3JtYXQsdD1uLl9lbGxpcHNvaWQsbz1uLl9ncmFudWxhcml0eSxhPW4uX3N0Um90YXRpb24scj1uLl9wb2x5Z29uSGllcmFyY2h5LGk9bi5fcGVyUG9zaXRpb25IZWlnaHQsZj1uLl9jbG9zZVRvcCxkPW4uX2Nsb3NlQm90dG9tLGM9bi5fYXJjVHlwZSx1PW4uX3RleHR1cmVDb29yZGluYXRlcyxsPV8odSksaD1yLnBvc2l0aW9ucztpZihoLmxlbmd0aDwzKXJldHVybjtsZXQgbT1uLnJlY3RhbmdsZSxiPWl0LnBvbHlnb25zRnJvbUhpZXJhcmNoeShyLGwsVEQobSxoLHQpLCFpLHQsUkQobSx0LGMsaSkpLHA9Yi5oaWVyYXJjaHkseT1iLnBvbHlnb25zLEU9ZnVuY3Rpb24oQyl7cmV0dXJuIEN9LGc9bD9pdC5wb2x5Z29uc0Zyb21IaWVyYXJjaHkodSwhMCxFLCExLHQpLnBvbHlnb25zOnZvaWQgMDtpZihwLmxlbmd0aD09PTApcmV0dXJuO2xldCBBPXBbMF0ub3V0ZXJSaW5nLFQ9eEQoQSxtLHQsYSksUj1bXSxTPW4uX2hlaWdodCxNPW4uX2V4dHJ1ZGVkSGVpZ2h0LEk9bi5fcGVyUG9zaXRpb25IZWlnaHRFeHRydWRlfHwhay5lcXVhbHNFcHNpbG9uKFMsTSwwLGsuRVBTSUxPTjIpLE49e3BlclBvc2l0aW9uSGVpZ2h0OmksdmVydGV4Rm9ybWF0OmUsZ2VvbWV0cnk6dm9pZCAwLHJvdGF0aW9uQXhpczp3RChtLEEsdCkucGxhbmUubm9ybWFsLHByb2plY3RUbzJkOkVEKG0sQSx0KSxib3VuZGluZ1JlY3RhbmdsZTpULGVsbGlwc29pZDp0LHN0Um90YXRpb246YSx0ZXh0dXJlQ29vcmRpbmF0ZXM6dm9pZCAwLGJvdHRvbTohMSx0b3A6ITAsd2FsbDohMSxleHRydWRlOiExLGFyY1R5cGU6Y30sUDtpZihJKWZvcihOLmV4dHJ1ZGU9ITAsTi50b3A9ZixOLmJvdHRvbT1kLE4uc2hhZG93Vm9sdW1lPW4uX3NoYWRvd1ZvbHVtZSxOLm9mZnNldEF0dHJpYnV0ZT1uLl9vZmZzZXRBdHRyaWJ1dGUsUD0wO1A8eS5sZW5ndGg7UCsrKXtsZXQgQz1sRCh0LHlbUF0sbD9nW1BdOnZvaWQgMCxvLHBbUF0saSxmLGQsZSxjKSx2O2YmJmQ/KHY9Qy50b3BBbmRCb3R0b20sTi5nZW9tZXRyeT1pdC5zY2FsZVRvR2VvZGV0aWNIZWlnaHRFeHRydWRlZCh2Lmdlb21ldHJ5LFMsTSx0LGkpKTpmPyh2PUMudG9wQW5kQm90dG9tLHYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9d3Quc2NhbGVUb0dlb2RldGljSGVpZ2h0KHYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsUyx0LCFpKSxOLmdlb21ldHJ5PXYuZ2VvbWV0cnkpOmQmJih2PUMudG9wQW5kQm90dG9tLHYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9d3Quc2NhbGVUb0dlb2RldGljSGVpZ2h0KHYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsTSx0LCEwKSxOLmdlb21ldHJ5PXYuZ2VvbWV0cnkpLChmfHxkKSYmKE4ud2FsbD0hMSx2Lmdlb21ldHJ5PUZnKE4pLFIucHVzaCh2KSk7bGV0IGo9Qy53YWxscztOLndhbGw9ITA7Zm9yKGxldCB6PTA7ejxqLmxlbmd0aDt6Kyspe2xldCBEPWpbel07Ti5nZW9tZXRyeT1pdC5zY2FsZVRvR2VvZGV0aWNIZWlnaHRFeHRydWRlZChELmdlb21ldHJ5LFMsTSx0LGkpLEQuZ2VvbWV0cnk9RmcoTiksUi5wdXNoKEQpfX1lbHNlIGZvcihQPTA7UDx5Lmxlbmd0aDtQKyspe2xldCBDPW5ldyBsbyh7Z2VvbWV0cnk6aXQuY3JlYXRlR2VvbWV0cnlGcm9tUG9zaXRpb25zKHQseVtQXSxsP2dbUF06dm9pZCAwLG8saSxlLGMpfSk7aWYoQy5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz13dC5zY2FsZVRvR2VvZGV0aWNIZWlnaHQoQy5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxTLHQsIWkpLE4uZ2VvbWV0cnk9Qy5nZW9tZXRyeSxDLmdlb21ldHJ5PUZnKE4pLF8obi5fb2Zmc2V0QXR0cmlidXRlKSl7bGV0IHY9Qy5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgsaj1uLl9vZmZzZXRBdHRyaWJ1dGU9PT1vdC5OT05FPzA6MSx6PW5ldyBVaW50OEFycmF5KHYvMykuZmlsbChqKTtDLmdlb21ldHJ5LmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6en0pfVIucHVzaChDKX1sZXQgRj1MdC5jb21iaW5lSW5zdGFuY2VzKFIpWzBdO0YuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9bmV3IEZsb2F0NjRBcnJheShGLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzKSxGLmluZGljZXM9SWUuY3JlYXRlVHlwZWRBcnJheShGLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLEYuaW5kaWNlcyk7bGV0IHc9Ri5hdHRyaWJ1dGVzLHg9Z2UuZnJvbVZlcnRpY2VzKHcucG9zaXRpb24udmFsdWVzKTtyZXR1cm4gZS5wb3NpdGlvbnx8ZGVsZXRlIHcucG9zaXRpb24sbmV3IFBlKHthdHRyaWJ1dGVzOncsaW5kaWNlczpGLmluZGljZXMscHJpbWl0aXZlVHlwZTpGLnByaW1pdGl2ZVR5cGUsYm91bmRpbmdTcGhlcmU6eCxvZmZzZXRBdHRyaWJ1dGU6bi5fb2Zmc2V0QXR0cmlidXRlfSl9O01hLmNyZWF0ZVNoYWRvd1ZvbHVtZT1mdW5jdGlvbihuLGUsdCl7bGV0IG89bi5fZ3JhbnVsYXJpdHksYT1uLl9lbGxpcHNvaWQscj1lKG8sYSksaT10KG8sYSk7cmV0dXJuIG5ldyBNYSh7cG9seWdvbkhpZXJhcmNoeTpuLl9wb2x5Z29uSGllcmFyY2h5LGVsbGlwc29pZDphLHN0Um90YXRpb246bi5fc3RSb3RhdGlvbixncmFudWxhcml0eTpvLHBlclBvc2l0aW9uSGVpZ2h0OiExLGV4dHJ1ZGVkSGVpZ2h0OnIsaGVpZ2h0OmksdmVydGV4Rm9ybWF0OmxlLlBPU0lUSU9OX09OTFksc2hhZG93Vm9sdW1lOiEwLGFyY1R5cGU6bi5fYXJjVHlwZX0pfTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhNYS5wcm90b3R5cGUse3JlY3RhbmdsZTp7Z2V0OmZ1bmN0aW9uKCl7aWYoIV8odGhpcy5fcmVjdGFuZ2xlKSl7bGV0IG49dGhpcy5fcG9seWdvbkhpZXJhcmNoeS5wb3NpdGlvbnM7dGhpcy5fcmVjdGFuZ2xlPU1hLmNvbXB1dGVSZWN0YW5nbGVGcm9tUG9zaXRpb25zKG4sdGhpcy5fZWxsaXBzb2lkLHRoaXMuX2FyY1R5cGUpfXJldHVybiB0aGlzLl9yZWN0YW5nbGV9fSx0ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzKXx8KHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM9T0QodGhpcykpLHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHN9fX0pO0RnPU1hfSk7dmFyIEJnPXt9OyRlKEJnLHtkZWZhdWx0OigpPT5DRH0pO2Z1bmN0aW9uIFNEKG4sZSl7cmV0dXJuIF8oZSkmJihuPURnLnVucGFjayhuLGUpKSxuLl9lbGxpcHNvaWQ9Sy5jbG9uZShuLl9lbGxpcHNvaWQpLERnLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBDRCxqZz1YKCgpPT57c2UoKTtWZSgpO0dSKCk7Q0Q9U0R9KTtmdW5jdGlvbiBNRChuLGUsdCxvLGEpe2xldCBpPUFvLmZyb21Qb2ludHMoZSxuKS5wcm9qZWN0UG9pbnRzT250b1BsYW5lKGUsVlIpO3d0LmNvbXB1dGVXaW5kaW5nT3JkZXIyRChpKT09PU1vLkNMT0NLV0lTRSYmKGkucmV2ZXJzZSgpLGU9ZS5zbGljZSgpLnJldmVyc2UoKSk7bGV0IGQsYyx1PWUubGVuZ3RoLGw9MDtpZihvKWZvcihkPW5ldyBGbG9hdDY0QXJyYXkodSoyKjMpLGM9MDtjPHU7YysrKXtsZXQgYj1lW2NdLHA9ZVsoYysxKSV1XTtkW2wrK109Yi54LGRbbCsrXT1iLnksZFtsKytdPWIueixkW2wrK109cC54LGRbbCsrXT1wLnksZFtsKytdPXAuen1lbHNle2xldCBiPTA7aWYoYT09PWJ0LkdFT0RFU0lDKWZvcihjPTA7Yzx1O2MrKyliKz1pdC5zdWJkaXZpZGVMaW5lQ291bnQoZVtjXSxlWyhjKzEpJXVdLHQpO2Vsc2UgaWYoYT09PWJ0LlJIVU1CKWZvcihjPTA7Yzx1O2MrKyliKz1pdC5zdWJkaXZpZGVSaHVtYkxpbmVDb3VudChuLGVbY10sZVsoYysxKSV1XSx0KTtmb3IoZD1uZXcgRmxvYXQ2NEFycmF5KGIqMyksYz0wO2M8dTtjKyspe2xldCBwO2E9PT1idC5HRU9ERVNJQz9wPWl0LnN1YmRpdmlkZUxpbmUoZVtjXSxlWyhjKzEpJXVdLHQsV2gpOmE9PT1idC5SSFVNQiYmKHA9aXQuc3ViZGl2aWRlUmh1bWJMaW5lKG4sZVtjXSxlWyhjKzEpJXVdLHQsV2gpKTtsZXQgeT1wLmxlbmd0aDtmb3IobGV0IEU9MDtFPHk7KytFKWRbbCsrXT1wW0VdfX11PWQubGVuZ3RoLzM7bGV0IGg9dSoyLG09SWUuY3JlYXRlVHlwZWRBcnJheSh1LGgpO2ZvcihsPTAsYz0wO2M8dS0xO2MrKyltW2wrK109YyxtW2wrK109YysxO3JldHVybiBtW2wrK109dS0xLG1bbCsrXT0wLG5ldyBsbyh7Z2VvbWV0cnk6bmV3IFBlKHthdHRyaWJ1dGVzOm5ldyBRZSh7cG9zaXRpb246bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpkfSl9KSxpbmRpY2VzOm0scHJpbWl0aXZlVHlwZTpGZS5MSU5FU30pfSl9ZnVuY3Rpb24gTkQobixlLHQsbyxhKXtsZXQgaT1Bby5mcm9tUG9pbnRzKGUsbikucHJvamVjdFBvaW50c09udG9QbGFuZShlLFZSKTt3dC5jb21wdXRlV2luZGluZ09yZGVyMkQoaSk9PT1Nby5DTE9DS1dJU0UmJihpLnJldmVyc2UoKSxlPWUuc2xpY2UoKS5yZXZlcnNlKCkpO2xldCBkLGMsdT1lLmxlbmd0aCxsPW5ldyBBcnJheSh1KSxoPTA7aWYobylmb3IoZD1uZXcgRmxvYXQ2NEFycmF5KHUqMiozKjIpLGM9MDtjPHU7KytjKXtsW2NdPWgvMztsZXQgeT1lW2NdLEU9ZVsoYysxKSV1XTtkW2grK109eS54LGRbaCsrXT15LnksZFtoKytdPXkueixkW2grK109RS54LGRbaCsrXT1FLnksZFtoKytdPUUuen1lbHNle2xldCB5PTA7aWYoYT09PWJ0LkdFT0RFU0lDKWZvcihjPTA7Yzx1O2MrKyl5Kz1pdC5zdWJkaXZpZGVMaW5lQ291bnQoZVtjXSxlWyhjKzEpJXVdLHQpO2Vsc2UgaWYoYT09PWJ0LlJIVU1CKWZvcihjPTA7Yzx1O2MrKyl5Kz1pdC5zdWJkaXZpZGVSaHVtYkxpbmVDb3VudChuLGVbY10sZVsoYysxKSV1XSx0KTtmb3IoZD1uZXcgRmxvYXQ2NEFycmF5KHkqMyoyKSxjPTA7Yzx1OysrYyl7bFtjXT1oLzM7bGV0IEU7YT09PWJ0LkdFT0RFU0lDP0U9aXQuc3ViZGl2aWRlTGluZShlW2NdLGVbKGMrMSkldV0sdCxXaCk6YT09PWJ0LlJIVU1CJiYoRT1pdC5zdWJkaXZpZGVSaHVtYkxpbmUobixlW2NdLGVbKGMrMSkldV0sdCxXaCkpO2xldCBnPUUubGVuZ3RoO2ZvcihsZXQgQT0wO0E8ZzsrK0EpZFtoKytdPUVbQV19fXU9ZC5sZW5ndGgvNjtsZXQgbT1sLmxlbmd0aCxiPSh1KjIrbSkqMixwPUllLmNyZWF0ZVR5cGVkQXJyYXkodSttLGIpO2ZvcihoPTAsYz0wO2M8dTsrK2MpcFtoKytdPWMscFtoKytdPShjKzEpJXUscFtoKytdPWMrdSxwW2grK109KGMrMSkldSt1O2ZvcihjPTA7YzxtO2MrKyl7bGV0IHk9bFtjXTtwW2grK109eSxwW2grK109eSt1fXJldHVybiBuZXcgbG8oe2dlb21ldHJ5Om5ldyBQZSh7YXR0cmlidXRlczpuZXcgUWUoe3Bvc2l0aW9uOm5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6ZH0pfSksaW5kaWNlczpwLHByaW1pdGl2ZVR5cGU6RmUuTElORVN9KX0pfWZ1bmN0aW9uIEVjKG4pe2xldCBlPW4ucG9seWdvbkhpZXJhcmNoeSx0PW4uZWxsaXBzb2lkPz9LLmRlZmF1bHQsbz1uLmdyYW51bGFyaXR5Pz9rLlJBRElBTlNfUEVSX0RFR1JFRSxhPW4ucGVyUG9zaXRpb25IZWlnaHQ/PyExLHI9YSYmXyhuLmV4dHJ1ZGVkSGVpZ2h0KSxpPW4uYXJjVHlwZT8/YnQuR0VPREVTSUMsZj1uLmhlaWdodD8/MCxkPW4uZXh0cnVkZWRIZWlnaHQ/P2Y7aWYoIXIpe2xldCBjPU1hdGgubWF4KGYsZCk7ZD1NYXRoLm1pbihmLGQpLGY9Y310aGlzLl9lbGxpcHNvaWQ9Sy5jbG9uZSh0KSx0aGlzLl9ncmFudWxhcml0eT1vLHRoaXMuX2hlaWdodD1mLHRoaXMuX2V4dHJ1ZGVkSGVpZ2h0PWQsdGhpcy5fYXJjVHlwZT1pLHRoaXMuX3BvbHlnb25IaWVyYXJjaHk9ZSx0aGlzLl9wZXJQb3NpdGlvbkhlaWdodD1hLHRoaXMuX3BlclBvc2l0aW9uSGVpZ2h0RXh0cnVkZT1yLHRoaXMuX29mZnNldEF0dHJpYnV0ZT1uLm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVQb2x5Z29uT3V0bGluZUdlb21ldHJ5Iix0aGlzLnBhY2tlZExlbmd0aD1pdC5jb21wdXRlSGllcmFyY2h5UGFja2VkTGVuZ3RoKGUscykrSy5wYWNrZWRMZW5ndGgrOH12YXIgVlIsV2gsSUQsUEQsVWcsSFI9WCgoKT0+e2hjKCk7RXQoKTtNZSgpO0N0KCk7c3QoKTtzZSgpO1ZlKCk7cHMoKTtYdCgpO1l0KCk7cm4oKTtkYygpO2pvKCk7ZnIoKTtadCgpO1VlKCk7SmYoKTtXYSgpO3RuKCk7YmMoKTtWUj1bXSxXaD1bXTtFYy5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gdD10Pz8wLHQ9aXQucGFja1BvbHlnb25IaWVyYXJjaHkobi5fcG9seWdvbkhpZXJhcmNoeSxlLHQscyksSy5wYWNrKG4uX2VsbGlwc29pZCxlLHQpLHQrPUsucGFja2VkTGVuZ3RoLGVbdCsrXT1uLl9oZWlnaHQsZVt0KytdPW4uX2V4dHJ1ZGVkSGVpZ2h0LGVbdCsrXT1uLl9ncmFudWxhcml0eSxlW3QrK109bi5fcGVyUG9zaXRpb25IZWlnaHRFeHRydWRlPzE6MCxlW3QrK109bi5fcGVyUG9zaXRpb25IZWlnaHQ/MTowLGVbdCsrXT1uLl9hcmNUeXBlLGVbdCsrXT1uLl9vZmZzZXRBdHRyaWJ1dGU/Py0xLGVbdF09bi5wYWNrZWRMZW5ndGgsZX07SUQ9Sy5jbG9uZShLLlVOSVRfU1BIRVJFKSxQRD17cG9seWdvbkhpZXJhcmNoeTp7fX07RWMudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtlPWU/PzA7bGV0IG89aXQudW5wYWNrUG9seWdvbkhpZXJhcmNoeShuLGUscyk7ZT1vLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIG8uc3RhcnRpbmdJbmRleDtsZXQgYT1LLnVucGFjayhuLGUsSUQpO2UrPUsucGFja2VkTGVuZ3RoO2xldCByPW5bZSsrXSxpPW5bZSsrXSxmPW5bZSsrXSxkPW5bZSsrXT09PTEsYz1uW2UrK109PT0xLHU9bltlKytdLGw9bltlKytdLGg9bltlXTtyZXR1cm4gXyh0KXx8KHQ9bmV3IEVjKFBEKSksdC5fcG9seWdvbkhpZXJhcmNoeT1vLHQuX2VsbGlwc29pZD1LLmNsb25lKGEsdC5fZWxsaXBzb2lkKSx0Ll9oZWlnaHQ9cix0Ll9leHRydWRlZEhlaWdodD1pLHQuX2dyYW51bGFyaXR5PWYsdC5fcGVyUG9zaXRpb25IZWlnaHQ9Yyx0Ll9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGU9ZCx0Ll9hcmNUeXBlPXUsdC5fb2Zmc2V0QXR0cmlidXRlPWw9PT0tMT92b2lkIDA6bCx0LnBhY2tlZExlbmd0aD1oLHR9O0VjLmZyb21Qb3NpdGlvbnM9ZnVuY3Rpb24obil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9e3BvbHlnb25IaWVyYXJjaHk6e3Bvc2l0aW9uczpuLnBvc2l0aW9uc30saGVpZ2h0Om4uaGVpZ2h0LGV4dHJ1ZGVkSGVpZ2h0Om4uZXh0cnVkZWRIZWlnaHQsZWxsaXBzb2lkOm4uZWxsaXBzb2lkLGdyYW51bGFyaXR5Om4uZ3JhbnVsYXJpdHkscGVyUG9zaXRpb25IZWlnaHQ6bi5wZXJQb3NpdGlvbkhlaWdodCxhcmNUeXBlOm4uYXJjVHlwZSxvZmZzZXRBdHRyaWJ1dGU6bi5vZmZzZXRBdHRyaWJ1dGV9O3JldHVybiBuZXcgRWMoZSl9O0VjLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKG4pe2xldCBlPW4uX2VsbGlwc29pZCx0PW4uX2dyYW51bGFyaXR5LG89bi5fcG9seWdvbkhpZXJhcmNoeSxhPW4uX3BlclBvc2l0aW9uSGVpZ2h0LHI9bi5fYXJjVHlwZSxpPWl0LnBvbHlnb25PdXRsaW5lc0Zyb21IaWVyYXJjaHkobywhYSxlKTtpZihpLmxlbmd0aD09PTApcmV0dXJuO2xldCBmLGQ9W10sYz1rLmNob3JkTGVuZ3RoKHQsZS5tYXhpbXVtUmFkaXVzKSx1PW4uX2hlaWdodCxsPW4uX2V4dHJ1ZGVkSGVpZ2h0LGg9bi5fcGVyUG9zaXRpb25IZWlnaHRFeHRydWRlfHwhay5lcXVhbHNFcHNpbG9uKHUsbCwwLGsuRVBTSUxPTjIpLG0sYjtpZihoKWZvcihiPTA7YjxpLmxlbmd0aDtiKyspe2lmKGY9TkQoZSxpW2JdLGMsYSxyKSxmLmdlb21ldHJ5PWl0LnNjYWxlVG9HZW9kZXRpY0hlaWdodEV4dHJ1ZGVkKGYuZ2VvbWV0cnksdSxsLGUsYSksXyhuLl9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgRT1mLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLGc9bmV3IFVpbnQ4QXJyYXkoRSk7bi5fb2Zmc2V0QXR0cmlidXRlPT09b3QuVE9QP2c9Zy5maWxsKDEsMCxFLzIpOihtPW4uX29mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxLGc9Zy5maWxsKG0pKSxmLmdlb21ldHJ5LmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6Z30pfWQucHVzaChmKX1lbHNlIGZvcihiPTA7YjxpLmxlbmd0aDtiKyspe2lmKGY9TUQoZSxpW2JdLGMsYSxyKSxmLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPXd0LnNjYWxlVG9HZW9kZXRpY0hlaWdodChmLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLHUsZSwhYSksXyhuLl9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgRT1mLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aDttPW4uX29mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxO2xldCBnPW5ldyBVaW50OEFycmF5KEUvMykuZmlsbChtKTtmLmdlb21ldHJ5LmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6Z30pfWQucHVzaChmKX1sZXQgcD1MdC5jb21iaW5lSW5zdGFuY2VzKGQpWzBdLHk9Z2UuZnJvbVZlcnRpY2VzKHAuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMpO3JldHVybiBuZXcgUGUoe2F0dHJpYnV0ZXM6cC5hdHRyaWJ1dGVzLGluZGljZXM6cC5pbmRpY2VzLHByaW1pdGl2ZVR5cGU6cC5wcmltaXRpdmVUeXBlLGJvdW5kaW5nU3BoZXJlOnksb2Zmc2V0QXR0cmlidXRlOm4uX29mZnNldEF0dHJpYnV0ZX0pfTtVZz1FY30pO3ZhciBMZz17fTskZShMZyx7ZGVmYXVsdDooKT0+dkR9KTtmdW5jdGlvbiBrRChuLGUpe3JldHVybiBfKGUpJiYobj1VZy51bnBhY2sobixlKSksbi5fZWxsaXBzb2lkPUsuY2xvbmUobi5fZWxsaXBzb2lkKSxVZy5jcmVhdGVHZW9tZXRyeShuKX12YXIgdkQsemc9WCgoKT0+e3NlKCk7VmUoKTtIUigpO3ZEPWtEfSk7ZnVuY3Rpb24gR2cobixlLHQpe3JldHVybiB0PDAmJih0Kz0xKSx0PjEmJih0LT0xKSx0KjY8MT9uKyhlLW4pKjYqdDp0KjI8MT9lOnQqMzwyP24rKGUtbikqKDIvMy10KSo2Om59dmFyIFcsVmcsSGcsWnIsRkQsREQsQkQsakQsSmUsa3M9WCgoKT0+e3N0KCk7c2UoKTtHbCgpO1VlKCk7Vz1jbGFzcyBue2NvbnN0cnVjdG9yKGUsdCxvLGEpe3RoaXMucmVkPWU/PzEsdGhpcy5ncmVlbj10Pz8xLHRoaXMuYmx1ZT1vPz8xLHRoaXMuYWxwaGE9YT8/MX1zdGF0aWMgZnJvbUNhcnRlc2lhbjQoZSx0KXtyZXR1cm4gXyh0KT8odC5yZWQ9ZS54LHQuZ3JlZW49ZS55LHQuYmx1ZT1lLnosdC5hbHBoYT1lLncsdCk6bmV3IG4oZS54LGUueSxlLnosZS53KX1zdGF0aWMgZnJvbUJ5dGVzKGUsdCxvLGEscil7cmV0dXJuIGU9bi5ieXRlVG9GbG9hdChlPz8yNTUpLHQ9bi5ieXRlVG9GbG9hdCh0Pz8yNTUpLG89bi5ieXRlVG9GbG9hdChvPz8yNTUpLGE9bi5ieXRlVG9GbG9hdChhPz8yNTUpLF8ocik/KHIucmVkPWUsci5ncmVlbj10LHIuYmx1ZT1vLHIuYWxwaGE9YSxyKTpuZXcgbihlLHQsbyxhKX1zdGF0aWMgZnJvbUFscGhhKGUsdCxvKXtyZXR1cm4gXyhvKT8oby5yZWQ9ZS5yZWQsby5ncmVlbj1lLmdyZWVuLG8uYmx1ZT1lLmJsdWUsby5hbHBoYT10LG8pOm5ldyBuKGUucmVkLGUuZ3JlZW4sZS5ibHVlLHQpfXN0YXRpYyBmcm9tUmdiYShlLHQpe3JldHVybiBIZ1swXT1lLG4uZnJvbUJ5dGVzKFpyWzBdLFpyWzFdLFpyWzJdLFpyWzNdLHQpfXN0YXRpYyBmcm9tSHNsKGUsdCxvLGEscil7ZT0oZT8/MCklMSx0PXQ/PzAsbz1vPz8wLGE9YT8/MTtsZXQgaT1vLGY9byxkPW87aWYodCE9PTApe2xldCBjO288LjU/Yz1vKigxK3QpOmM9byt0LW8qdDtsZXQgdT0yKm8tYztpPUdnKHUsYyxlKzEvMyksZj1HZyh1LGMsZSksZD1HZyh1LGMsZS0xLzMpfXJldHVybiBfKHIpPyhyLnJlZD1pLHIuZ3JlZW49ZixyLmJsdWU9ZCxyLmFscGhhPWEscik6bmV3IG4oaSxmLGQsYSl9c3RhdGljIGZyb21SYW5kb20oZSx0KXtlPWU/P09lLkVNUFRZX09CSkVDVDtsZXQgbz1lLnJlZDtpZighXyhvKSl7bGV0IGY9ZS5taW5pbXVtUmVkPz8wLGQ9ZS5tYXhpbXVtUmVkPz8xO289ZitrLm5leHRSYW5kb21OdW1iZXIoKSooZC1mKX1sZXQgYT1lLmdyZWVuO2lmKCFfKGEpKXtsZXQgZj1lLm1pbmltdW1HcmVlbj8/MCxkPWUubWF4aW11bUdyZWVuPz8xO2E9ZitrLm5leHRSYW5kb21OdW1iZXIoKSooZC1mKX1sZXQgcj1lLmJsdWU7aWYoIV8ocikpe2xldCBmPWUubWluaW11bUJsdWU/PzAsZD1lLm1heGltdW1CbHVlPz8xO3I9ZitrLm5leHRSYW5kb21OdW1iZXIoKSooZC1mKX1sZXQgaT1lLmFscGhhO2lmKCFfKGkpKXtsZXQgZj1lLm1pbmltdW1BbHBoYT8/MCxkPWUubWF4aW11bUFscGhhPz8xO2k9ZitrLm5leHRSYW5kb21OdW1iZXIoKSooZC1mKX1yZXR1cm4gXyh0KT8odC5yZWQ9byx0LmdyZWVuPWEsdC5ibHVlPXIsdC5hbHBoYT1pLHQpOm5ldyBuKG8sYSxyLGkpfXN0YXRpYyBmcm9tQ3NzQ29sb3JTdHJpbmcoZSx0KXtfKHQpfHwodD1uZXcgbiksZT1lLnRyaW0oKTtsZXQgbz1uW2UudG9VcHBlckNhc2UoKV07aWYoXyhvKSlyZXR1cm4gbi5jbG9uZShvLHQpLHQ7bGV0IGE9RkQuZXhlYyhlKTtyZXR1cm4gYSE9PW51bGw/KHQucmVkPXBhcnNlSW50KGFbMV0sMTYpLzE1LHQuZ3JlZW49cGFyc2VJbnQoYVsyXSwxNikvMTUsdC5ibHVlPXBhcnNlSW50KGFbM10sMTYpLzE1LHQuYWxwaGE9cGFyc2VJbnQoYVs0XT8/ImYiLDE2KS8xNSx0KTooYT1ERC5leGVjKGUpLGEhPT1udWxsPyh0LnJlZD1wYXJzZUludChhWzFdLDE2KS8yNTUsdC5ncmVlbj1wYXJzZUludChhWzJdLDE2KS8yNTUsdC5ibHVlPXBhcnNlSW50KGFbM10sMTYpLzI1NSx0LmFscGhhPXBhcnNlSW50KGFbNF0/PyJmZiIsMTYpLzI1NSx0KTooYT1CRC5leGVjKGUpLGEhPT1udWxsPyh0LnJlZD1wYXJzZUZsb2F0KGFbMV0pLyhhWzFdLnN1YnN0cigtMSk9PT0iJSI/MTAwOjI1NSksdC5ncmVlbj1wYXJzZUZsb2F0KGFbMl0pLyhhWzJdLnN1YnN0cigtMSk9PT0iJSI/MTAwOjI1NSksdC5ibHVlPXBhcnNlRmxvYXQoYVszXSkvKGFbM10uc3Vic3RyKC0xKT09PSIlIj8xMDA6MjU1KSx0LmFscGhhPXBhcnNlRmxvYXQoYVs0XT8/IjEuMCIpLHQpOihhPWpELmV4ZWMoZSksYSE9PW51bGw/bi5mcm9tSHNsKHBhcnNlRmxvYXQoYVsxXSkvMzYwLHBhcnNlRmxvYXQoYVsyXSkvMTAwLHBhcnNlRmxvYXQoYVszXSkvMTAwLHBhcnNlRmxvYXQoYVs0XT8/IjEuMCIpLHQpOih0PXZvaWQgMCx0KSkpKX1zdGF0aWMgcGFjayhlLHQsbyl7cmV0dXJuIG89bz8/MCx0W28rK109ZS5yZWQsdFtvKytdPWUuZ3JlZW4sdFtvKytdPWUuYmx1ZSx0W29dPWUuYWxwaGEsdH1zdGF0aWMgdW5wYWNrKGUsdCxvKXtyZXR1cm4gdD10Pz8wLF8obyl8fChvPW5ldyBuKSxvLnJlZD1lW3QrK10sby5ncmVlbj1lW3QrK10sby5ibHVlPWVbdCsrXSxvLmFscGhhPWVbdF0sb31zdGF0aWMgYnl0ZVRvRmxvYXQoZSl7cmV0dXJuIGUvMjU1fXN0YXRpYyBmbG9hdFRvQnl0ZShlKXtyZXR1cm4gZT09PTE/MjU1OmUqMjU2fDB9c3RhdGljIGNsb25lKGUsdCl7aWYoXyhlKSlyZXR1cm4gXyh0KT8odC5yZWQ9ZS5yZWQsdC5ncmVlbj1lLmdyZWVuLHQuYmx1ZT1lLmJsdWUsdC5hbHBoYT1lLmFscGhhLHQpOm5ldyBuKGUucmVkLGUuZ3JlZW4sZS5ibHVlLGUuYWxwaGEpfXN0YXRpYyBlcXVhbHMoZSx0KXtyZXR1cm4gZT09PXR8fF8oZSkmJl8odCkmJmUucmVkPT09dC5yZWQmJmUuZ3JlZW49PT10LmdyZWVuJiZlLmJsdWU9PT10LmJsdWUmJmUuYWxwaGE9PT10LmFscGhhfXN0YXRpYyBlcXVhbHNBcnJheShlLHQsbyl7cmV0dXJuIGUucmVkPT09dFtvXSYmZS5ncmVlbj09PXRbbysxXSYmZS5ibHVlPT09dFtvKzJdJiZlLmFscGhhPT09dFtvKzNdfWNsb25lKGUpe3JldHVybiBuLmNsb25lKHRoaXMsZSl9ZXF1YWxzKGUpe3JldHVybiBuLmVxdWFscyh0aGlzLGUpfWVxdWFsc0Vwc2lsb24oZSx0KXtyZXR1cm4gdGhpcz09PWV8fF8oZSkmJk1hdGguYWJzKHRoaXMucmVkLWUucmVkKTw9dCYmTWF0aC5hYnModGhpcy5ncmVlbi1lLmdyZWVuKTw9dCYmTWF0aC5hYnModGhpcy5ibHVlLWUuYmx1ZSk8PXQmJk1hdGguYWJzKHRoaXMuYWxwaGEtZS5hbHBoYSk8PXR9dG9TdHJpbmcoKXtyZXR1cm5gKCR7dGhpcy5yZWR9LCAke3RoaXMuZ3JlZW59LCAke3RoaXMuYmx1ZX0sICR7dGhpcy5hbHBoYX0pYH10b0Nzc0NvbG9yU3RyaW5nKCl7bGV0IGU9bi5mbG9hdFRvQnl0ZSh0aGlzLnJlZCksdD1uLmZsb2F0VG9CeXRlKHRoaXMuZ3JlZW4pLG89bi5mbG9hdFRvQnl0ZSh0aGlzLmJsdWUpO3JldHVybiB0aGlzLmFscGhhPT09MT9gcmdiKCR7ZX0sJHt0fSwke299KWA6YHJnYmEoJHtlfSwke3R9LCR7b30sJHt0aGlzLmFscGhhfSlgfXRvQ3NzSGV4U3RyaW5nKCl7bGV0IGU9bi5mbG9hdFRvQnl0ZSh0aGlzLnJlZCkudG9TdHJpbmcoMTYpO2UubGVuZ3RoPDImJihlPWAwJHtlfWApO2xldCB0PW4uZmxvYXRUb0J5dGUodGhpcy5ncmVlbikudG9TdHJpbmcoMTYpO3QubGVuZ3RoPDImJih0PWAwJHt0fWApO2xldCBvPW4uZmxvYXRUb0J5dGUodGhpcy5ibHVlKS50b1N0cmluZygxNik7aWYoby5sZW5ndGg8MiYmKG89YDAke299YCksdGhpcy5hbHBoYTwxKXtsZXQgYT1uLmZsb2F0VG9CeXRlKHRoaXMuYWxwaGEpLnRvU3RyaW5nKDE2KTtyZXR1cm4gYS5sZW5ndGg8MiYmKGE9YDAke2F9YCksYCMke2V9JHt0fSR7b30ke2F9YH1yZXR1cm5gIyR7ZX0ke3R9JHtvfWB9dG9CeXRlcyhlKXtsZXQgdD1uLmZsb2F0VG9CeXRlKHRoaXMucmVkKSxvPW4uZmxvYXRUb0J5dGUodGhpcy5ncmVlbiksYT1uLmZsb2F0VG9CeXRlKHRoaXMuYmx1ZSkscj1uLmZsb2F0VG9CeXRlKHRoaXMuYWxwaGEpO3JldHVybiBfKGUpPyhlWzBdPXQsZVsxXT1vLGVbMl09YSxlWzNdPXIsZSk6W3QsbyxhLHJdfXN0YXRpYyBieXRlc1RvUmdiYShlLHQsbyxhKXtyZXR1cm4gWnJbMF09ZSxaclsxXT10LFpyWzJdPW8sWnJbM109YSxIZ1swXX10b1JnYmEoKXtyZXR1cm4gbi5ieXRlc1RvUmdiYShuLmZsb2F0VG9CeXRlKHRoaXMucmVkKSxuLmZsb2F0VG9CeXRlKHRoaXMuZ3JlZW4pLG4uZmxvYXRUb0J5dGUodGhpcy5ibHVlKSxuLmZsb2F0VG9CeXRlKHRoaXMuYWxwaGEpKX1icmlnaHRlbihlLHQpe3JldHVybiBlPTEtZSx0LnJlZD0xLSgxLXRoaXMucmVkKSplLHQuZ3JlZW49MS0oMS10aGlzLmdyZWVuKSplLHQuYmx1ZT0xLSgxLXRoaXMuYmx1ZSkqZSx0LmFscGhhPXRoaXMuYWxwaGEsdH1kYXJrZW4oZSx0KXtyZXR1cm4gZT0xLWUsdC5yZWQ9dGhpcy5yZWQqZSx0LmdyZWVuPXRoaXMuZ3JlZW4qZSx0LmJsdWU9dGhpcy5ibHVlKmUsdC5hbHBoYT10aGlzLmFscGhhLHR9d2l0aEFscGhhKGUsdCl7cmV0dXJuIG4uZnJvbUFscGhhKHRoaXMsZSx0KX1zdGF0aWMgYWRkKGUsdCxvKXtyZXR1cm4gby5yZWQ9ZS5yZWQrdC5yZWQsby5ncmVlbj1lLmdyZWVuK3QuZ3JlZW4sby5ibHVlPWUuYmx1ZSt0LmJsdWUsby5hbHBoYT1lLmFscGhhK3QuYWxwaGEsb31zdGF0aWMgc3VidHJhY3QoZSx0LG8pe3JldHVybiBvLnJlZD1lLnJlZC10LnJlZCxvLmdyZWVuPWUuZ3JlZW4tdC5ncmVlbixvLmJsdWU9ZS5ibHVlLXQuYmx1ZSxvLmFscGhhPWUuYWxwaGEtdC5hbHBoYSxvfXN0YXRpYyBtdWx0aXBseShlLHQsbyl7cmV0dXJuIG8ucmVkPWUucmVkKnQucmVkLG8uZ3JlZW49ZS5ncmVlbip0LmdyZWVuLG8uYmx1ZT1lLmJsdWUqdC5ibHVlLG8uYWxwaGE9ZS5hbHBoYSp0LmFscGhhLG99c3RhdGljIGRpdmlkZShlLHQsbyl7cmV0dXJuIG8ucmVkPWUucmVkL3QucmVkLG8uZ3JlZW49ZS5ncmVlbi90LmdyZWVuLG8uYmx1ZT1lLmJsdWUvdC5ibHVlLG8uYWxwaGE9ZS5hbHBoYS90LmFscGhhLG99c3RhdGljIG1vZChlLHQsbyl7cmV0dXJuIG8ucmVkPWUucmVkJXQucmVkLG8uZ3JlZW49ZS5ncmVlbiV0LmdyZWVuLG8uYmx1ZT1lLmJsdWUldC5ibHVlLG8uYWxwaGE9ZS5hbHBoYSV0LmFscGhhLG99c3RhdGljIGxlcnAoZSx0LG8sYSl7cmV0dXJuIGEucmVkPWsubGVycChlLnJlZCx0LnJlZCxvKSxhLmdyZWVuPWsubGVycChlLmdyZWVuLHQuZ3JlZW4sbyksYS5ibHVlPWsubGVycChlLmJsdWUsdC5ibHVlLG8pLGEuYWxwaGE9ay5sZXJwKGUuYWxwaGEsdC5hbHBoYSxvKSxhfXN0YXRpYyBtdWx0aXBseUJ5U2NhbGFyKGUsdCxvKXtyZXR1cm4gby5yZWQ9ZS5yZWQqdCxvLmdyZWVuPWUuZ3JlZW4qdCxvLmJsdWU9ZS5ibHVlKnQsby5hbHBoYT1lLmFscGhhKnQsb31zdGF0aWMgZGl2aWRlQnlTY2FsYXIoZSx0LG8pe3JldHVybiBvLnJlZD1lLnJlZC90LG8uZ3JlZW49ZS5ncmVlbi90LG8uYmx1ZT1lLmJsdWUvdCxvLmFscGhhPWUuYWxwaGEvdCxvfX07YXIuc3VwcG9ydHNUeXBlZEFycmF5cygpJiYoVmc9bmV3IEFycmF5QnVmZmVyKDQpLEhnPW5ldyBVaW50MzJBcnJheShWZyksWnI9bmV3IFVpbnQ4QXJyYXkoVmcpKTtGRD0vXiMoWzAtOWEtZl0pKFswLTlhLWZdKShbMC05YS1mXSkoWzAtOWEtZl0pPyQvaSxERD0vXiMoWzAtOWEtZl17Mn0pKFswLTlhLWZdezJ9KShbMC05YS1mXXsyfSkoWzAtOWEtZl17Mn0pPyQvaSxCRD0vXnJnYmE/XHMqXChccyooWzAtOS5dKyU/KVxzKlssXHNdK1xzKihbMC05Ll0rJT8pXHMqWyxcc10rXHMqKFswLTkuXSslPykoPzpccypbLFxzL10rXHMqKFswLTkuXSspKT9ccypcKSQvaSxqRD0vXmhzbGE/XHMqXChccyooWzAtOS5dKylccypbLFxzXStccyooWzAtOS5dKyUpXHMqWyxcc10rXHMqKFswLTkuXSslKSg/OlxzKlssXHMvXStccyooWzAtOS5dKykpP1xzKlwpJC9pO1cucGFja2VkTGVuZ3RoPTQ7Vy5BTElDRUJMVUU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0YwRjhGRiIpKTtXLkFOVElRVUVXSElURT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkFFQkQ3IikpO1cuQVFVQT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDBGRkZGIikpO1cuQVFVQU1BUklORT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjN0ZGRkQ0IikpO1cuQVpVUkU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0YwRkZGRiIpKTtXLkJFSUdFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGNUY1REMiKSk7Vy5CSVNRVUU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRTRDNCIpKTtXLkJMQUNLPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDAwMDAiKSk7Vy5CTEFOQ0hFREFMTU9ORD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZFQkNEIikpO1cuQkxVRT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDAwMEZGIikpO1cuQkxVRVZJT0xFVD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjOEEyQkUyIikpO1cuQlJPV049T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0E1MkEyQSIpKTtXLkJVUkxZV09PRD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjREVCODg3IikpO1cuQ0FERVRCTFVFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM1RjlFQTAiKSk7Vy5DSEFSVFJFVVNFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM3RkZGMDAiKSk7Vy5DSE9DT0xBVEU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0QyNjkxRSIpKTtXLkNPUkFMPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRjdGNTAiKSk7Vy5DT1JORkxPV0VSQkxVRT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNjQ5NUVEIikpO1cuQ09STlNJTEs9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRjhEQyIpKTtXLkNSSU1TT049T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0RDMTQzQyIpKTtXLkNZQU49T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzAwRkZGRiIpKTtXLkRBUktCTFVFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDAwOEIiKSk7Vy5EQVJLQ1lBTj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDA4QjhCIikpO1cuREFSS0dPTERFTlJPRD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQjg4NjBCIikpO1cuREFSS0dSQVk9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0E5QTlBOSIpKTtXLkRBUktHUkVFTj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDA2NDAwIikpO1cuREFSS0dSRVk9Vy5EQVJLR1JBWTtXLkRBUktLSEFLST1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQkRCNzZCIikpO1cuREFSS01BR0VOVEE9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzhCMDA4QiIpKTtXLkRBUktPTElWRUdSRUVOPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM1NTZCMkYiKSk7Vy5EQVJLT1JBTkdFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRjhDMDAiKSk7Vy5EQVJLT1JDSElEPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM5OTMyQ0MiKSk7Vy5EQVJLUkVEPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM4QjAwMDAiKSk7Vy5EQVJLU0FMTU9OPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNFOTk2N0EiKSk7Vy5EQVJLU0VBR1JFRU49T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzhGQkM4RiIpKTtXLkRBUktTTEFURUJMVUU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzQ4M0Q4QiIpKTtXLkRBUktTTEFURUdSQVk9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzJGNEY0RiIpKTtXLkRBUktTTEFURUdSRVk9Vy5EQVJLU0xBVEVHUkFZO1cuREFSS1RVUlFVT0lTRT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDBDRUQxIikpO1cuREFSS1ZJT0xFVD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjOTQwMEQzIikpO1cuREVFUFBJTks9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGMTQ5MyIpKTtXLkRFRVBTS1lCTFVFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMEJGRkYiKSk7Vy5ESU1HUkFZPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM2OTY5NjkiKSk7Vy5ESU1HUkVZPVcuRElNR1JBWTtXLkRPREdFUkJMVUU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzFFOTBGRiIpKTtXLkZJUkVCUklDSz1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQjIyMjIyIikpO1cuRkxPUkFMV0hJVEU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRkFGMCIpKTtXLkZPUkVTVEdSRUVOPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMyMjhCMjIiKSk7Vy5GVUNIU0lBPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRjAwRkYiKSk7Vy5HQUlOU0JPUk89T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0RDRENEQyIpKTtXLkdIT1NUV0hJVEU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0Y4RjhGRiIpKTtXLkdPTEQ9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRDcwMCIpKTtXLkdPTERFTlJPRD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjREFBNTIwIikpO1cuR1JBWT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjODA4MDgwIikpO1cuR1JFRU49T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzAwODAwMCIpKTtXLkdSRUVOWUVMTE9XPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNBREZGMkYiKSk7Vy5HUkVZPVcuR1JBWTtXLkhPTkVZREVXPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGMEZGRjAiKSk7Vy5IT1RQSU5LPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRjY5QjQiKSk7Vy5JTkRJQU5SRUQ9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0NENUM1QyIpKTtXLklORElHTz1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNEIwMDgyIikpO1cuSVZPUlk9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRkZGMCIpKTtXLktIQUtJPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGMEU2OEMiKSk7Vy5MQVZFTkRFUj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRTZFNkZBIikpO1cuTEFWRU5EQVJfQkxVU0g9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRjBGNSIpKTtXLkxBV05HUkVFTj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjN0NGQzAwIikpO1cuTEVNT05DSElGRk9OPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkZBQ0QiKSk7Vy5MSUdIVEJMVUU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0FERDhFNiIpKTtXLkxJR0hUQ09SQUw9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0YwODA4MCIpKTtXLkxJR0hUQ1lBTj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRTBGRkZGIikpO1cuTElHSFRHT0xERU5ST0RZRUxMT1c9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZBRkFEMiIpKTtXLkxJR0hUR1JBWT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRDNEM0QzIikpO1cuTElHSFRHUkVFTj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjOTBFRTkwIikpO1cuTElHSFRHUkVZPVcuTElHSFRHUkFZO1cuTElHSFRQSU5LPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkI2QzEiKSk7Vy5MSUdIVFNFQUdSRUVOPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMyMEIyQUEiKSk7Vy5MSUdIVFNLWUJMVUU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzg3Q0VGQSIpKTtXLkxJR0hUU0xBVEVHUkFZPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM3Nzg4OTkiKSk7Vy5MSUdIVFNMQVRFR1JFWT1XLkxJR0hUU0xBVEVHUkFZO1cuTElHSFRTVEVFTEJMVUU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0IwQzRERSIpKTtXLkxJR0hUWUVMTE9XPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkZGRTAiKSk7Vy5MSU1FPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMEZGMDAiKSk7Vy5MSU1FR1JFRU49T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzMyQ0QzMiIpKTtXLkxJTkVOPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGQUYwRTYiKSk7Vy5NQUdFTlRBPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRjAwRkYiKSk7Vy5NQVJPT049T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzgwMDAwMCIpKTtXLk1FRElVTUFRVUFNQVJJTkU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzY2Q0RBQSIpKTtXLk1FRElVTUJMVUU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzAwMDBDRCIpKTtXLk1FRElVTU9SQ0hJRD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQkE1NUQzIikpO1cuTUVESVVNUFVSUExFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM5MzcwREIiKSk7Vy5NRURJVU1TRUFHUkVFTj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjM0NCMzcxIikpO1cuTUVESVVNU0xBVEVCTFVFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM3QjY4RUUiKSk7Vy5NRURJVU1TUFJJTkdHUkVFTj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDBGQTlBIikpO1cuTUVESVVNVFVSUVVPSVNFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM0OEQxQ0MiKSk7Vy5NRURJVU1WSU9MRVRSRUQ9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0M3MTU4NSIpKTtXLk1JRE5JR0hUQkxVRT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMTkxOTcwIikpO1cuTUlOVENSRUFNPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGNUZGRkEiKSk7Vy5NSVNUWVJPU0U9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRTRFMSIpKTtXLk1PQ0NBU0lOPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkU0QjUiKSk7Vy5OQVZBSk9XSElURT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZERUFEIikpO1cuTkFWWT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDAwMDgwIikpO1cuT0xETEFDRT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkRGNUU2IikpO1cuT0xJVkU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzgwODAwMCIpKTtXLk9MSVZFRFJBQj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNkI4RTIzIikpO1cuT1JBTkdFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkE1MDAiKSk7Vy5PUkFOR0VSRUQ9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGNDUwMCIpKTtXLk9SQ0hJRD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjREE3MEQ2IikpO1cuUEFMRUdPTERFTlJPRD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRUVFOEFBIikpO1cuUEFMRUdSRUVOPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM5OEZCOTgiKSk7Vy5QQUxFVFVSUVVPSVNFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNBRkVFRUUiKSk7Vy5QQUxFVklPTEVUUkVEPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEQjcwOTMiKSk7Vy5QQVBBWUFXSElQPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkVGRDUiKSk7Vy5QRUFDSFBVRkY9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGREFCOSIpKTtXLlBFUlU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0NEODUzRiIpKTtXLlBJTks9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGQzBDQiIpKTtXLlBMVU09T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0REQTBERCIpKTtXLlBPV0RFUkJMVUU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0IwRTBFNiIpKTtXLlBVUlBMRT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjODAwMDgwIikpO1cuUkVEPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRjAwMDAiKSk7Vy5ST1NZQlJPV049T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0JDOEY4RiIpKTtXLlJPWUFMQkxVRT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNDE2OUUxIikpO1cuU0FERExFQlJPV049T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzhCNDUxMyIpKTtXLlNBTE1PTj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkE4MDcyIikpO1cuU0FORFlCUk9XTj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjRBNDYwIikpO1cuU0VBR1JFRU49T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzJFOEI1NyIpKTtXLlNFQVNIRUxMPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkY1RUUiKSk7Vy5TSUVOTkE9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0EwNTIyRCIpKTtXLlNJTFZFUj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQzBDMEMwIikpO1cuU0tZQkxVRT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjODdDRUVCIikpO1cuU0xBVEVCTFVFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM2QTVBQ0QiKSk7Vy5TTEFURUdSQVk9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzcwODA5MCIpKTtXLlNMQVRFR1JFWT1XLlNMQVRFR1JBWTtXLlNOT1c9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRkFGQSIpKTtXLlNQUklOR0dSRUVOPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMEZGN0YiKSk7Vy5TVEVFTEJMVUU9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzQ2ODJCNCIpKTtXLlRBTj1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRDJCNDhDIikpO1cuVEVBTD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDA4MDgwIikpO1cuVEhJU1RMRT1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRDhCRkQ4IikpO1cuVE9NQVRPPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRjYzNDciKSk7Vy5UVVJRVU9JU0U9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiIzQwRTBEMCIpKTtXLlZJT0xFVD1PYmplY3QuZnJlZXplKFcuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRUU4MkVFIikpO1cuV0hFQVQ9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0Y1REVCMyIpKTtXLldISVRFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkZGRkYiKSk7Vy5XSElURVNNT0tFPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGNUY1RjUiKSk7Vy5ZRUxMT1c9T2JqZWN0LmZyZWV6ZShXLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRkYwMCIpKTtXLllFTExPV0dSRUVOPU9iamVjdC5mcmVlemUoVy5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM5QUNEMzIiKSk7Vy5UUkFOU1BBUkVOVD1PYmplY3QuZnJlZXplKG5ldyBXKDAsMCwwLDApKTtKZT1XfSk7ZnVuY3Rpb24gVUQobixlLHQsbyxhKXtsZXQgcj1ZUjtyLmxlbmd0aD1hO2xldCBpLGY9dC5yZWQsZD10LmdyZWVuLGM9dC5ibHVlLHU9dC5hbHBoYSxsPW8ucmVkLGg9by5ncmVlbixtPW8uYmx1ZSxiPW8uYWxwaGE7aWYoSmUuZXF1YWxzKHQsbykpe2ZvcihpPTA7aTxhO2krKylyW2ldPUplLmNsb25lKHQpO3JldHVybiByfWxldCBwPShsLWYpL2EseT0oaC1kKS9hLEU9KG0tYykvYSxnPShiLXUpL2E7Zm9yKGk9MDtpPGE7aSsrKXJbaV09bmV3IEplKGYraSpwLGQraSp5LGMraSpFLHUraSpnKTtyZXR1cm4gcn1mdW5jdGlvbiBoZChuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLnBvc2l0aW9ucyx0PW4uY29sb3JzLG89bi53aWR0aD8/MSxhPW4uY29sb3JzUGVyVmVydGV4Pz8hMTt0aGlzLl9wb3NpdGlvbnM9ZSx0aGlzLl9jb2xvcnM9dCx0aGlzLl93aWR0aD1vLHRoaXMuX2NvbG9yc1BlclZlcnRleD1hLHRoaXMuX3ZlcnRleEZvcm1hdD1sZS5jbG9uZShuLnZlcnRleEZvcm1hdD8/bGUuREVGQVVMVCksdGhpcy5fYXJjVHlwZT1uLmFyY1R5cGU/P2J0LkdFT0RFU0lDLHRoaXMuX2dyYW51bGFyaXR5PW4uZ3JhbnVsYXJpdHk/P2suUkFESUFOU19QRVJfREVHUkVFLHRoaXMuX2VsbGlwc29pZD1LLmNsb25lKG4uZWxsaXBzb2lkPz9LLmRlZmF1bHQpLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVBvbHlsaW5lR2VvbWV0cnkiO2xldCByPTErZS5sZW5ndGgqcy5wYWNrZWRMZW5ndGg7cis9Xyh0KT8xK3QubGVuZ3RoKkplLnBhY2tlZExlbmd0aDoxLHRoaXMucGFja2VkTGVuZ3RoPXIrSy5wYWNrZWRMZW5ndGgrbGUucGFja2VkTGVuZ3RoKzR9dmFyIFlSLEpSLFpSLFJjLEtSLHFSLFdSLFhSLEtnLFFSPVgoKCk9PntoYygpO0thKCk7RXQoKTtNZSgpO2tzKCk7Q3QoKTtzdCgpO3NlKCk7VmUoKTtYdCgpO1l0KCk7cm4oKTtKbCgpO1p0KCk7VWUoKTt3cygpO3RuKCk7Q28oKTtZUj1bXTtoZC5wYWNrPWZ1bmN0aW9uKG4sZSx0KXt0PXQ/PzA7bGV0IG8sYT1uLl9wb3NpdGlvbnMscj1hLmxlbmd0aDtmb3IoZVt0KytdPXIsbz0wO288cjsrK28sdCs9cy5wYWNrZWRMZW5ndGgpcy5wYWNrKGFbb10sZSx0KTtsZXQgaT1uLl9jb2xvcnM7Zm9yKHI9XyhpKT9pLmxlbmd0aDowLGVbdCsrXT1yLG89MDtvPHI7KytvLHQrPUplLnBhY2tlZExlbmd0aClKZS5wYWNrKGlbb10sZSx0KTtyZXR1cm4gSy5wYWNrKG4uX2VsbGlwc29pZCxlLHQpLHQrPUsucGFja2VkTGVuZ3RoLGxlLnBhY2sobi5fdmVydGV4Rm9ybWF0LGUsdCksdCs9bGUucGFja2VkTGVuZ3RoLGVbdCsrXT1uLl93aWR0aCxlW3QrK109bi5fY29sb3JzUGVyVmVydGV4PzE6MCxlW3QrK109bi5fYXJjVHlwZSxlW3RdPW4uX2dyYW51bGFyaXR5LGV9O0pSPUsuY2xvbmUoSy5VTklUX1NQSEVSRSksWlI9bmV3IGxlLFJjPXtwb3NpdGlvbnM6dm9pZCAwLGNvbG9yczp2b2lkIDAsZWxsaXBzb2lkOkpSLHZlcnRleEZvcm1hdDpaUix3aWR0aDp2b2lkIDAsY29sb3JzUGVyVmVydGV4OnZvaWQgMCxhcmNUeXBlOnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDB9O2hkLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvLGE9bltlKytdLHI9bmV3IEFycmF5KGEpO2ZvcihvPTA7bzxhOysrbyxlKz1zLnBhY2tlZExlbmd0aClyW29dPXMudW5wYWNrKG4sZSk7YT1uW2UrK107bGV0IGk9YT4wP25ldyBBcnJheShhKTp2b2lkIDA7Zm9yKG89MDtvPGE7KytvLGUrPUplLnBhY2tlZExlbmd0aClpW29dPUplLnVucGFjayhuLGUpO2xldCBmPUsudW5wYWNrKG4sZSxKUik7ZSs9Sy5wYWNrZWRMZW5ndGg7bGV0IGQ9bGUudW5wYWNrKG4sZSxaUik7ZSs9bGUucGFja2VkTGVuZ3RoO2xldCBjPW5bZSsrXSx1PW5bZSsrXT09PTEsbD1uW2UrK10saD1uW2VdO3JldHVybiBfKHQpPyh0Ll9wb3NpdGlvbnM9cix0Ll9jb2xvcnM9aSx0Ll9lbGxpcHNvaWQ9Sy5jbG9uZShmLHQuX2VsbGlwc29pZCksdC5fdmVydGV4Rm9ybWF0PWxlLmNsb25lKGQsdC5fdmVydGV4Rm9ybWF0KSx0Ll93aWR0aD1jLHQuX2NvbG9yc1BlclZlcnRleD11LHQuX2FyY1R5cGU9bCx0Ll9ncmFudWxhcml0eT1oLHQpOihSYy5wb3NpdGlvbnM9cixSYy5jb2xvcnM9aSxSYy53aWR0aD1jLFJjLmNvbG9yc1BlclZlcnRleD11LFJjLmFyY1R5cGU9bCxSYy5ncmFudWxhcml0eT1oLG5ldyBoZChSYykpfTtLUj1uZXcgcyxxUj1uZXcgcyxXUj1uZXcgcyxYUj1uZXcgcztoZC5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbihuKXtsZXQgZT1uLl93aWR0aCx0PW4uX3ZlcnRleEZvcm1hdCxvPW4uX2NvbG9ycyxhPW4uX2NvbG9yc1BlclZlcnRleCxyPW4uX2FyY1R5cGUsaT1uLl9ncmFudWxhcml0eSxmPW4uX2VsbGlwc29pZCxkLGMsdSxsPVtdLGg9eG4obi5fcG9zaXRpb25zLHMuZXF1YWxzRXBzaWxvbiwhMSxsKTtpZihfKG8pJiZsLmxlbmd0aD4wKXtsZXQgdj0wLGo9bFswXTtvPW8uZmlsdGVyKGZ1bmN0aW9uKHosRCl7bGV0IEc9ITE7cmV0dXJuIGE/Rz1EPT09anx8RD09PTAmJmo9PT0xOkc9RCsxPT09aixHPyh2Kyssaj1sW3ZdLCExKTohMH0pfWxldCBtPWgubGVuZ3RoO2lmKG08Mnx8ZTw9MClyZXR1cm47aWYocj09PWJ0LkdFT0RFU0lDfHxyPT09YnQuUkhVTUIpe2xldCB2LGo7cj09PWJ0LkdFT0RFU0lDPyh2PWsuY2hvcmRMZW5ndGgoaSxmLm1heGltdW1SYWRpdXMpLGo9Ym4ubnVtYmVyT2ZQb2ludHMpOih2PWksaj1ibi5udW1iZXJPZlBvaW50c1JodW1iTGluZSk7bGV0IHo9Ym4uZXh0cmFjdEhlaWdodHMoaCxmKTtpZihfKG8pKXtsZXQgRD0xO2ZvcihkPTA7ZDxtLTE7KytkKUQrPWooaFtkXSxoW2QrMV0sdik7bGV0IEc9bmV3IEFycmF5KEQpLFY9MDtmb3IoZD0wO2Q8bS0xOysrZCl7bGV0IE89aFtkXSxaPWhbZCsxXSxhZT1vW2RdLGNlPWooTyxaLHYpO2lmKGEmJmQ8RCl7bGV0IGZlPW9bZCsxXSx0ZT1VRChPLFosYWUsZmUsY2UpLG1lPXRlLmxlbmd0aDtmb3IoYz0wO2M8bWU7KytjKUdbVisrXT10ZVtjXX1lbHNlIGZvcihjPTA7YzxjZTsrK2MpR1tWKytdPUplLmNsb25lKGFlKX1HW1ZdPUplLmNsb25lKG9bby5sZW5ndGgtMV0pLG89RyxZUi5sZW5ndGg9MH1yPT09YnQuR0VPREVTSUM/aD1ibi5nZW5lcmF0ZUNhcnRlc2lhbkFyYyh7cG9zaXRpb25zOmgsbWluRGlzdGFuY2U6dixlbGxpcHNvaWQ6ZixoZWlnaHQ6en0pOmg9Ym4uZ2VuZXJhdGVDYXJ0ZXNpYW5SaHVtYkFyYyh7cG9zaXRpb25zOmgsZ3JhbnVsYXJpdHk6dixlbGxpcHNvaWQ6ZixoZWlnaHQ6en0pfW09aC5sZW5ndGg7bGV0IGI9bSo0LTQscD1uZXcgRmxvYXQ2NEFycmF5KGIqMykseT1uZXcgRmxvYXQ2NEFycmF5KGIqMyksRT1uZXcgRmxvYXQ2NEFycmF5KGIqMyksZz1uZXcgRmxvYXQzMkFycmF5KGIqMiksQT10LnN0P25ldyBGbG9hdDMyQXJyYXkoYioyKTp2b2lkIDAsVD1fKG8pP25ldyBVaW50OEFycmF5KGIqNCk6dm9pZCAwLFI9MCxTPTAsTT0wLEk9MCxOO2ZvcihjPTA7YzxtOysrYyl7Yz09PTA/KE49S1Iscy5zdWJ0cmFjdChoWzBdLGhbMV0sTikscy5hZGQoaFswXSxOLE4pKTpOPWhbYy0xXSxzLmNsb25lKE4sV1IpLHMuY2xvbmUoaFtjXSxxUiksYz09PW0tMT8oTj1LUixzLnN1YnRyYWN0KGhbbS0xXSxoW20tMl0sTikscy5hZGQoaFttLTFdLE4sTikpOk49aFtjKzFdLHMuY2xvbmUoTixYUik7bGV0IHYsajtfKFQpJiYoYyE9PTAmJiFhP3Y9b1tjLTFdOnY9b1tjXSxjIT09bS0xJiYoaj1vW2NdKSk7bGV0IHo9Yz09PTA/MjowLEQ9Yz09PW0tMT8yOjQ7Zm9yKHU9ejt1PEQ7Kyt1KXtzLnBhY2socVIscCxSKSxzLnBhY2soV1IseSxSKSxzLnBhY2soWFIsRSxSKSxSKz0zO2xldCBHPXUtMjwwPy0xOjE7aWYoZ1tTKytdPTIqKHUlMiktMSxnW1MrK109RyplLHQuc3QmJihBW00rK109Yy8obS0xKSxBW00rK109TWF0aC5tYXgoZ1tTLTJdLDApKSxfKFQpKXtsZXQgVj11PDI/djpqO1RbSSsrXT1KZS5mbG9hdFRvQnl0ZShWLnJlZCksVFtJKytdPUplLmZsb2F0VG9CeXRlKFYuZ3JlZW4pLFRbSSsrXT1KZS5mbG9hdFRvQnl0ZShWLmJsdWUpLFRbSSsrXT1KZS5mbG9hdFRvQnl0ZShWLmFscGhhKX19fWxldCBQPW5ldyBRZTtQLnBvc2l0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6cH0pLFAucHJldlBvc2l0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6eX0pLFAubmV4dFBvc2l0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6RX0pLFAuZXhwYW5kQW5kV2lkdGg9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOmd9KSx0LnN0JiYoUC5zdD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6QX0pKSxfKFQpJiYoUC5jb2xvcj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTo0LHZhbHVlczpULG5vcm1hbGl6ZTohMH0pKTtsZXQgRj1JZS5jcmVhdGVUeXBlZEFycmF5KGIsbSo2LTYpLHc9MCx4PTAsQz1tLTE7Zm9yKGM9MDtjPEM7KytjKUZbeCsrXT13LEZbeCsrXT13KzIsRlt4KytdPXcrMSxGW3grK109dysxLEZbeCsrXT13KzIsRlt4KytdPXcrMyx3Kz00O3JldHVybiBuZXcgUGUoe2F0dHJpYnV0ZXM6UCxpbmRpY2VzOkYscHJpbWl0aXZlVHlwZTpGZS5UUklBTkdMRVMsYm91bmRpbmdTcGhlcmU6Z2UuZnJvbVBvaW50cyhoKSxnZW9tZXRyeVR5cGU6RHIuUE9MWUxJTkVTfSl9O0tnPWhkfSk7dmFyIHFnPXt9OyRlKHFnLHtkZWZhdWx0OigpPT56RH0pO2Z1bmN0aW9uIExEKG4sZSl7cmV0dXJuIF8oZSkmJihuPUtnLnVucGFjayhuLGUpKSxuLl9lbGxpcHNvaWQ9Sy5jbG9uZShuLl9lbGxpcHNvaWQpLEtnLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciB6RCxXZz1YKCgpPT57c2UoKTtWZSgpO1FSKCk7ekQ9TER9KTtmdW5jdGlvbiBHRChuLGUsdCxvKXtsZXQgYT1uZXcgUWU7by5wb3NpdGlvbiYmKGEucG9zaXRpb249bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpufSkpO2xldCByPWUubGVuZ3RoLGk9bi5sZW5ndGgvMyxmPShpLXIqMikvKHIqMiksZD13dC50cmlhbmd1bGF0ZShlKSxjPShmLTEpKnIqNitkLmxlbmd0aCoyLHU9SWUuY3JlYXRlVHlwZWRBcnJheShpLGMpLGwsaCxtLGIscCx5LEU9cioyLGc9MDtmb3IobD0wO2w8Zi0xO2wrKyl7Zm9yKGg9MDtoPHItMTtoKyspbT1oKjIrbCpyKjIseT1tK0UsYj1tKzEscD1iK0UsdVtnKytdPWIsdVtnKytdPW0sdVtnKytdPXAsdVtnKytdPXAsdVtnKytdPW0sdVtnKytdPXk7bT1yKjItMitsKnIqMixiPW0rMSxwPWIrRSx5PW0rRSx1W2crK109Yix1W2crK109bSx1W2crK109cCx1W2crK109cCx1W2crK109bSx1W2crK109eX1pZihvLnN0fHxvLnRhbmdlbnR8fG8uYml0YW5nZW50KXtsZXQgUj1uZXcgRmxvYXQzMkFycmF5KGkqMiksUz0xLyhmLTEpLE09MS90LmhlaWdodCxJPXQuaGVpZ2h0LzIsTixQLEY9MDtmb3IobD0wO2w8ZjtsKyspe2ZvcihOPWwqUyxQPU0qKGVbMF0ueStJKSxSW0YrK109TixSW0YrK109UCxoPTE7aDxyO2grKylQPU0qKGVbaF0ueStJKSxSW0YrK109TixSW0YrK109UCxSW0YrK109TixSW0YrK109UDtQPU0qKGVbMF0ueStJKSxSW0YrK109TixSW0YrK109UH1mb3IoaD0wO2g8cjtoKyspTj0wLFA9TSooZVtoXS55K0kpLFJbRisrXT1OLFJbRisrXT1QO2ZvcihoPTA7aDxyO2grKylOPShmLTEpKlMsUD1NKihlW2hdLnkrSSksUltGKytdPU4sUltGKytdPVA7YS5zdD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6bmV3IEZsb2F0MzJBcnJheShSKX0pfWxldCBBPWktcioyO2ZvcihsPTA7bDxkLmxlbmd0aDtsKz0zKXtsZXQgUj1kW2xdK0EsUz1kW2wrMV0rQSxNPWRbbCsyXStBO3VbZysrXT1SLHVbZysrXT1TLHVbZysrXT1NLHVbZysrXT1NK3IsdVtnKytdPVMrcix1W2crK109UityfWxldCBUPW5ldyBQZSh7YXR0cmlidXRlczphLGluZGljZXM6dSxib3VuZGluZ1NwaGVyZTpnZS5mcm9tVmVydGljZXMobikscHJpbWl0aXZlVHlwZTpGZS5UUklBTkdMRVN9KTtpZihvLm5vcm1hbCYmKFQ9THQuY29tcHV0ZU5vcm1hbChUKSksby50YW5nZW50fHxvLmJpdGFuZ2VudCl7dHJ5e1Q9THQuY29tcHV0ZVRhbmdlbnRBbmRCaXRhbmdlbnQoVCl9Y2F0Y2h7UmgoInBvbHlsaW5lLXZvbHVtZS10YW5nZW50LWJpdGFuZ2VudCIsIlVuYWJsZSB0byBjb21wdXRlIHRhbmdlbnRzIGFuZCBiaXRhbmdlbnRzIGZvciBwb2x5bGluZSB2b2x1bWUgZ2VvbWV0cnkiKX1vLnRhbmdlbnR8fChULmF0dHJpYnV0ZXMudGFuZ2VudD12b2lkIDApLG8uYml0YW5nZW50fHwoVC5hdHRyaWJ1dGVzLmJpdGFuZ2VudD12b2lkIDApLG8uc3R8fChULmF0dHJpYnV0ZXMuc3Q9dm9pZCAwKX1yZXR1cm4gVH1mdW5jdGlvbiBiZChuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLnBvbHlsaW5lUG9zaXRpb25zLHQ9bi5zaGFwZVBvc2l0aW9uczt0aGlzLl9wb3NpdGlvbnM9ZSx0aGlzLl9zaGFwZT10LHRoaXMuX2VsbGlwc29pZD1LLmNsb25lKG4uZWxsaXBzb2lkPz9LLmRlZmF1bHQpLHRoaXMuX2Nvcm5lclR5cGU9bi5jb3JuZXJUeXBlPz9zbi5ST1VOREVELHRoaXMuX3ZlcnRleEZvcm1hdD1sZS5jbG9uZShuLnZlcnRleEZvcm1hdD8/bGUuREVGQVVMVCksdGhpcy5fZ3JhbnVsYXJpdHk9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUG9seWxpbmVWb2x1bWVHZW9tZXRyeSI7bGV0IG89MStlLmxlbmd0aCpzLnBhY2tlZExlbmd0aDtvKz0xK3QubGVuZ3RoKlkucGFja2VkTGVuZ3RoLHRoaXMucGFja2VkTGVuZ3RoPW8rSy5wYWNrZWRMZW5ndGgrbGUucGFja2VkTGVuZ3RoKzJ9dmFyICRSLGUyLG1kLFZELFhnLHQyPVgoKCk9PntLYSgpO0dmKCk7RXQoKTt2dCgpO01lKCk7Q3QoKTt5YygpO3N0KCk7c2UoKTtWZSgpO1h0KCk7WXQoKTtybigpO2ZyKCk7WnQoKTtVZSgpO3cwKCk7V2EoKTtDaCgpO3RuKCk7Q28oKTtiYygpO2JkLnBhY2s9ZnVuY3Rpb24obixlLHQpe3Q9dD8/MDtsZXQgbyxhPW4uX3Bvc2l0aW9ucyxyPWEubGVuZ3RoO2ZvcihlW3QrK109cixvPTA7bzxyOysrbyx0Kz1zLnBhY2tlZExlbmd0aClzLnBhY2soYVtvXSxlLHQpO2xldCBpPW4uX3NoYXBlO2ZvcihyPWkubGVuZ3RoLGVbdCsrXT1yLG89MDtvPHI7KytvLHQrPVkucGFja2VkTGVuZ3RoKVkucGFjayhpW29dLGUsdCk7cmV0dXJuIEsucGFjayhuLl9lbGxpcHNvaWQsZSx0KSx0Kz1LLnBhY2tlZExlbmd0aCxsZS5wYWNrKG4uX3ZlcnRleEZvcm1hdCxlLHQpLHQrPWxlLnBhY2tlZExlbmd0aCxlW3QrK109bi5fY29ybmVyVHlwZSxlW3RdPW4uX2dyYW51bGFyaXR5LGV9OyRSPUsuY2xvbmUoSy5VTklUX1NQSEVSRSksZTI9bmV3IGxlLG1kPXtwb2x5bGluZVBvc2l0aW9uczp2b2lkIDAsc2hhcGVQb3NpdGlvbnM6dm9pZCAwLGVsbGlwc29pZDokUix2ZXJ0ZXhGb3JtYXQ6ZTIsY29ybmVyVHlwZTp2b2lkIDAsZ3JhbnVsYXJpdHk6dm9pZCAwfTtiZC51bnBhY2s9ZnVuY3Rpb24obixlLHQpe2U9ZT8/MDtsZXQgbyxhPW5bZSsrXSxyPW5ldyBBcnJheShhKTtmb3Iobz0wO288YTsrK28sZSs9cy5wYWNrZWRMZW5ndGgpcltvXT1zLnVucGFjayhuLGUpO2E9bltlKytdO2xldCBpPW5ldyBBcnJheShhKTtmb3Iobz0wO288YTsrK28sZSs9WS5wYWNrZWRMZW5ndGgpaVtvXT1ZLnVucGFjayhuLGUpO2xldCBmPUsudW5wYWNrKG4sZSwkUik7ZSs9Sy5wYWNrZWRMZW5ndGg7bGV0IGQ9bGUudW5wYWNrKG4sZSxlMik7ZSs9bGUucGFja2VkTGVuZ3RoO2xldCBjPW5bZSsrXSx1PW5bZV07cmV0dXJuIF8odCk/KHQuX3Bvc2l0aW9ucz1yLHQuX3NoYXBlPWksdC5fZWxsaXBzb2lkPUsuY2xvbmUoZix0Ll9lbGxpcHNvaWQpLHQuX3ZlcnRleEZvcm1hdD1sZS5jbG9uZShkLHQuX3ZlcnRleEZvcm1hdCksdC5fY29ybmVyVHlwZT1jLHQuX2dyYW51bGFyaXR5PXUsdCk6KG1kLnBvbHlsaW5lUG9zaXRpb25zPXIsbWQuc2hhcGVQb3NpdGlvbnM9aSxtZC5jb3JuZXJUeXBlPWMsbWQuZ3JhbnVsYXJpdHk9dSxuZXcgYmQobWQpKX07VkQ9bmV3IHFhO2JkLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKG4pe2xldCBlPW4uX3Bvc2l0aW9ucyx0PXhuKGUscy5lcXVhbHNFcHNpbG9uKSxvPW4uX3NoYXBlO2lmKG89eGkucmVtb3ZlRHVwbGljYXRlc0Zyb21TaGFwZShvKSx0Lmxlbmd0aDwyfHxvLmxlbmd0aDwzKXJldHVybjt3dC5jb21wdXRlV2luZGluZ09yZGVyMkQobyk9PT1Nby5DTE9DS1dJU0UmJm8ucmV2ZXJzZSgpO2xldCBhPXFhLmZyb21Qb2ludHMobyxWRCkscj14aS5jb21wdXRlUG9zaXRpb25zKHQsbyxhLG4sITApO3JldHVybiBHRChyLG8sYSxuLl92ZXJ0ZXhGb3JtYXQpfTtYZz1iZH0pO3ZhciBZZz17fTskZShZZyx7ZGVmYXVsdDooKT0+S0R9KTtmdW5jdGlvbiBIRChuLGUpe3JldHVybiBfKGUpJiYobj1YZy51bnBhY2sobixlKSksbi5fZWxsaXBzb2lkPUsuY2xvbmUobi5fZWxsaXBzb2lkKSxYZy5jcmVhdGVHZW9tZXRyeShuKX12YXIgS0QsSmc9WCgoKT0+e3NlKCk7VmUoKTt0MigpO0tEPUhEfSk7ZnVuY3Rpb24gcUQobixlKXtsZXQgdD1uZXcgUWU7dC5wb3NpdGlvbj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOm59KTtsZXQgbz1lLmxlbmd0aCxhPXQucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLGk9bi5sZW5ndGgvMy9vLGY9SWUuY3JlYXRlVHlwZWRBcnJheShhLDIqbyooaSsxKSksZCxjLHU9MDtkPTA7bGV0IGw9ZCpvO2ZvcihjPTA7YzxvLTE7YysrKWZbdSsrXT1jK2wsZlt1KytdPWMrbCsxO2ZvcihmW3UrK109by0xK2wsZlt1KytdPWwsZD1pLTEsbD1kKm8sYz0wO2M8by0xO2MrKylmW3UrK109YytsLGZbdSsrXT1jK2wrMTtmb3IoZlt1KytdPW8tMStsLGZbdSsrXT1sLGQ9MDtkPGktMTtkKyspe2xldCBtPW8qZCxiPW0rbztmb3IoYz0wO2M8bztjKyspZlt1KytdPWMrbSxmW3UrK109YytifXJldHVybiBuZXcgUGUoe2F0dHJpYnV0ZXM6dCxpbmRpY2VzOkllLmNyZWF0ZVR5cGVkQXJyYXkoYSxmKSxib3VuZGluZ1NwaGVyZTpnZS5mcm9tVmVydGljZXMobikscHJpbWl0aXZlVHlwZTpGZS5MSU5FU30pfWZ1bmN0aW9uIGdkKG4pe249bj8/T2UuRU1QVFlfT0JKRUNUO2xldCBlPW4ucG9seWxpbmVQb3NpdGlvbnMsdD1uLnNoYXBlUG9zaXRpb25zO3RoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuX3NoYXBlPXQsdGhpcy5fZWxsaXBzb2lkPUsuY2xvbmUobi5lbGxpcHNvaWQ/P0suZGVmYXVsdCksdGhpcy5fY29ybmVyVHlwZT1uLmNvcm5lclR5cGU/P3NuLlJPVU5ERUQsdGhpcy5fZ3JhbnVsYXJpdHk9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUG9seWxpbmVWb2x1bWVPdXRsaW5lR2VvbWV0cnkiO2xldCBvPTErZS5sZW5ndGgqcy5wYWNrZWRMZW5ndGg7bys9MSt0Lmxlbmd0aCpZLnBhY2tlZExlbmd0aCx0aGlzLnBhY2tlZExlbmd0aD1vK0sucGFja2VkTGVuZ3RoKzJ9dmFyIG4yLHBkLFdELFpnLG8yPVgoKCk9PntLYSgpO0dmKCk7RXQoKTt2dCgpO01lKCk7Q3QoKTt5YygpO3N0KCk7c2UoKTtWZSgpO1h0KCk7WXQoKTtybigpO1p0KCk7VWUoKTtXYSgpO0NoKCk7dG4oKTtiYygpO2dkLnBhY2s9ZnVuY3Rpb24obixlLHQpe3Q9dD8/MDtsZXQgbyxhPW4uX3Bvc2l0aW9ucyxyPWEubGVuZ3RoO2ZvcihlW3QrK109cixvPTA7bzxyOysrbyx0Kz1zLnBhY2tlZExlbmd0aClzLnBhY2soYVtvXSxlLHQpO2xldCBpPW4uX3NoYXBlO2ZvcihyPWkubGVuZ3RoLGVbdCsrXT1yLG89MDtvPHI7KytvLHQrPVkucGFja2VkTGVuZ3RoKVkucGFjayhpW29dLGUsdCk7cmV0dXJuIEsucGFjayhuLl9lbGxpcHNvaWQsZSx0KSx0Kz1LLnBhY2tlZExlbmd0aCxlW3QrK109bi5fY29ybmVyVHlwZSxlW3RdPW4uX2dyYW51bGFyaXR5LGV9O24yPUsuY2xvbmUoSy5VTklUX1NQSEVSRSkscGQ9e3BvbHlsaW5lUG9zaXRpb25zOnZvaWQgMCxzaGFwZVBvc2l0aW9uczp2b2lkIDAsZWxsaXBzb2lkOm4yLGhlaWdodDp2b2lkIDAsY29ybmVyVHlwZTp2b2lkIDAsZ3JhbnVsYXJpdHk6dm9pZCAwfTtnZC51bnBhY2s9ZnVuY3Rpb24obixlLHQpe2U9ZT8/MDtsZXQgbyxhPW5bZSsrXSxyPW5ldyBBcnJheShhKTtmb3Iobz0wO288YTsrK28sZSs9cy5wYWNrZWRMZW5ndGgpcltvXT1zLnVucGFjayhuLGUpO2E9bltlKytdO2xldCBpPW5ldyBBcnJheShhKTtmb3Iobz0wO288YTsrK28sZSs9WS5wYWNrZWRMZW5ndGgpaVtvXT1ZLnVucGFjayhuLGUpO2xldCBmPUsudW5wYWNrKG4sZSxuMik7ZSs9Sy5wYWNrZWRMZW5ndGg7bGV0IGQ9bltlKytdLGM9bltlXTtyZXR1cm4gXyh0KT8odC5fcG9zaXRpb25zPXIsdC5fc2hhcGU9aSx0Ll9lbGxpcHNvaWQ9Sy5jbG9uZShmLHQuX2VsbGlwc29pZCksdC5fY29ybmVyVHlwZT1kLHQuX2dyYW51bGFyaXR5PWMsdCk6KHBkLnBvbHlsaW5lUG9zaXRpb25zPXIscGQuc2hhcGVQb3NpdGlvbnM9aSxwZC5jb3JuZXJUeXBlPWQscGQuZ3JhbnVsYXJpdHk9YyxuZXcgZ2QocGQpKX07V0Q9bmV3IHFhO2dkLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKG4pe2xldCBlPW4uX3Bvc2l0aW9ucyx0PXhuKGUscy5lcXVhbHNFcHNpbG9uKSxvPW4uX3NoYXBlO2lmKG89eGkucmVtb3ZlRHVwbGljYXRlc0Zyb21TaGFwZShvKSx0Lmxlbmd0aDwyfHxvLmxlbmd0aDwzKXJldHVybjt3dC5jb21wdXRlV2luZGluZ09yZGVyMkQobyk9PT1Nby5DTE9DS1dJU0UmJm8ucmV2ZXJzZSgpO2xldCBhPXFhLmZyb21Qb2ludHMobyxXRCkscj14aS5jb21wdXRlUG9zaXRpb25zKHQsbyxhLG4sITEpO3JldHVybiBxRChyLG8pfTtaZz1nZH0pO3ZhciBRZz17fTskZShRZyx7ZGVmYXVsdDooKT0+WUR9KTtmdW5jdGlvbiBYRChuLGUpe3JldHVybiBfKGUpJiYobj1aZy51bnBhY2sobixlKSksbi5fZWxsaXBzb2lkPUsuY2xvbmUobi5fZWxsaXBzb2lkKSxaZy5jcmVhdGVHZW9tZXRyeShuKX12YXIgWUQsJGc9WCgoKT0+e3NlKCk7VmUoKTtvMigpO1lEPVhEfSk7ZnVuY3Rpb24gaTIobixlLHQsbyxhLHIsaSl7bGV0IGY9TWF0aC5jb3MoZSksZD1vKmYsYz10KmYsdT1NYXRoLnNpbihlKSxsPW8qdSxoPXQqdTtfZC5fZWxsaXBzb2lkPUsuZGVmYXVsdCxOYT1fZC5wcm9qZWN0KG4sTmEpLE5hPXMuc3VidHJhY3QoTmEsWGgsTmEpO2xldCBtPUpvLmZyb21Sb3RhdGlvbihlLFpEKTtOYT1Kby5tdWx0aXBseUJ5VmVjdG9yKG0sTmEsTmEpLE5hPXMuYWRkKE5hLFhoLE5hKSxuPV9kLnVucHJvamVjdChOYSxuKSxyLT0xLGktPTE7bGV0IGI9bi5sYXRpdHVkZSxwPWIrcipoLHk9Yi1kKmksRT1iLWQqaStyKmgsZz1NYXRoLm1heChiLHAseSxFKSxBPU1hdGgubWluKGIscCx5LEUpLFQ9bi5sb25naXR1ZGUsUj1UK3IqYyxTPVQraSpsLE09VCtpKmwrcipjLEk9TWF0aC5tYXgoVCxSLFMsTSksTj1NYXRoLm1pbihULFIsUyxNKTtyZXR1cm57bm9ydGg6Zyxzb3V0aDpBLGVhc3Q6SSx3ZXN0Ok4sZ3JhbllDb3M6ZCxncmFuWVNpbjpsLGdyYW5YQ29zOmMsZ3JhblhTaW46aCxud0Nvcm5lcjpufX12YXIgYTIscjIsSkQsZV8sWkQsTmEsUUQsWGgsX2Qsd28sdF89WCgoKT0+e01lKCk7Z3QoKTtzZSgpO1ZlKCk7UHIoKTtVZSgpO1BmKCk7aG4oKTthMj1NYXRoLmNvcyxyMj1NYXRoLnNpbixKRD1NYXRoLnNxcnQsZV89e307ZV8uY29tcHV0ZVBvc2l0aW9uPWZ1bmN0aW9uKG4sZSx0LG8sYSxyLGkpe2xldCBmPWUucmFkaWlTcXVhcmVkLGQ9bi5ud0Nvcm5lcixjPW4uYm91bmRpbmdSZWN0YW5nbGUsdT1kLmxhdGl0dWRlLW4uZ3JhbllDb3MqbythKm4uZ3JhblhTaW4sbD1hMih1KSxoPXIyKHUpLG09Zi56KmgsYj1kLmxvbmdpdHVkZStvKm4uZ3JhbllTaW4rYSpuLmdyYW5YQ29zLHA9bCphMihiKSx5PWwqcjIoYiksRT1mLngqcCxnPWYueSp5LEE9SkQoRSpwK2cqeSttKmgpO2lmKHIueD1FL0Esci55PWcvQSxyLno9bS9BLHQpe2xldCBUPW4uc3ROd0Nvcm5lcjtfKFQpPyh1PVQubGF0aXR1ZGUtbi5zdEdyYW5ZQ29zKm8rYSpuLnN0R3JhblhTaW4sYj1ULmxvbmdpdHVkZStvKm4uc3RHcmFuWVNpbithKm4uc3RHcmFuWENvcyxpLng9KGItbi5zdFdlc3QpKm4ubG9uU2NhbGFyLGkueT0odS1uLnN0U291dGgpKm4ubGF0U2NhbGFyKTooaS54PShiLWMud2VzdCkqbi5sb25TY2FsYXIsaS55PSh1LWMuc291dGgpKm4ubGF0U2NhbGFyKX19O1pEPW5ldyBKbyxOYT1uZXcgcyxRRD1uZXcgcmUsWGg9bmV3IHMsX2Q9bmV3IG5vO2VfLmNvbXB1dGVPcHRpb25zPWZ1bmN0aW9uKG4sZSx0LG8sYSxyLGkpe2xldCBmPW4uZWFzdCxkPW4ud2VzdCxjPW4ubm9ydGgsdT1uLnNvdXRoLGw9ITEsaD0hMTtjPT09ay5QSV9PVkVSX1RXTyYmKGw9ITApLHU9PT0tay5QSV9PVkVSX1RXTyYmKGg9ITApO2xldCBtLGI9Yy11O2Q+Zj9tPWsuVFdPX1BJLWQrZjptPWYtZDtsZXQgcD1NYXRoLmNlaWwobS9lKSsxLHk9TWF0aC5jZWlsKGIvZSkrMSxFPW0vKHAtMSksZz1iLyh5LTEpLEE9eGUubm9ydGh3ZXN0KG4sciksVD14ZS5jZW50ZXIobixRRCk7KHQhPT0wfHxvIT09MCkmJihULmxvbmdpdHVkZTxBLmxvbmdpdHVkZSYmKFQubG9uZ2l0dWRlKz1rLlRXT19QSSksX2QuX2VsbGlwc29pZD1LLmRlZmF1bHQsWGg9X2QucHJvamVjdChULFhoKSk7bGV0IFI9ZyxTPUUsTT0wLEk9MCxOPXhlLmNsb25lKG4sYSksUD17Z3JhbllDb3M6UixncmFuWVNpbjpNLGdyYW5YQ29zOlMsZ3JhblhTaW46SSxud0Nvcm5lcjpBLGJvdW5kaW5nUmVjdGFuZ2xlOk4sd2lkdGg6cCxoZWlnaHQ6eSxub3J0aENhcDpsLHNvdXRoQ2FwOmh9O2lmKHQhPT0wKXtsZXQgRj1pMihBLHQsRSxnLFQscCx5KTtjPUYubm9ydGgsdT1GLnNvdXRoLGY9Ri5lYXN0LGQ9Ri53ZXN0LFAuZ3JhbllDb3M9Ri5ncmFuWUNvcyxQLmdyYW5ZU2luPUYuZ3JhbllTaW4sUC5ncmFuWENvcz1GLmdyYW5YQ29zLFAuZ3JhblhTaW49Ri5ncmFuWFNpbixOLm5vcnRoPWMsTi5zb3V0aD11LE4uZWFzdD1mLE4ud2VzdD1kfWlmKG8hPT0wKXt0PXQtbztsZXQgRj14ZS5ub3J0aHdlc3QoTixpKSx3PWkyKEYsdCxFLGcsVCxwLHkpO1Auc3RHcmFuWUNvcz13LmdyYW5ZQ29zLFAuc3RHcmFuWENvcz13LmdyYW5YQ29zLFAuc3RHcmFuWVNpbj13LmdyYW5ZU2luLFAuc3RHcmFuWFNpbj13LmdyYW5YU2luLFAuc3ROd0Nvcm5lcj1GLFAuc3RXZXN0PXcud2VzdCxQLnN0U291dGg9dy5zb3V0aH1yZXR1cm4gUH07d289ZV99KTtmdW5jdGlvbiBoMihuLGUpe2xldCB0PW5ldyBQZSh7YXR0cmlidXRlczpuZXcgUWUscHJpbWl0aXZlVHlwZTpGZS5UUklBTkdMRVN9KTtyZXR1cm4gdC5hdHRyaWJ1dGVzLnBvc2l0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6ZS5wb3NpdGlvbnN9KSxuLm5vcm1hbCYmKHQuYXR0cmlidXRlcy5ub3JtYWw9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmUubm9ybWFsc30pKSxuLnRhbmdlbnQmJih0LmF0dHJpYnV0ZXMudGFuZ2VudD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6ZS50YW5nZW50c30pKSxuLmJpdGFuZ2VudCYmKHQuYXR0cmlidXRlcy5iaXRhbmdlbnQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmUuYml0YW5nZW50c30pKSx0fWZ1bmN0aW9uIG5CKG4sZSx0LG8pe2xldCBhPW4ubGVuZ3RoLHI9ZS5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShhKTp2b2lkIDAsaT1lLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShhKTp2b2lkIDAsZj1lLmJpdGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGEpOnZvaWQgMCxkPTAsYz11Mix1PWQyLGw9ZjI7aWYoZS5ub3JtYWx8fGUudGFuZ2VudHx8ZS5iaXRhbmdlbnQpZm9yKGxldCBoPTA7aDxhO2grPTMpe2xldCBtPXMuZnJvbUFycmF5KG4saCxuXyksYj1kKzEscD1kKzI7bD10Lmdlb2RldGljU3VyZmFjZU5vcm1hbChtLGwpLChlLnRhbmdlbnR8fGUuYml0YW5nZW50KSYmKHMuY3Jvc3Mocy5VTklUX1osbCx1KSxKLm11bHRpcGx5QnlWZWN0b3Iobyx1LHUpLHMubm9ybWFsaXplKHUsdSksZS5iaXRhbmdlbnQmJnMubm9ybWFsaXplKHMuY3Jvc3MobCx1LGMpLGMpKSxlLm5vcm1hbCYmKHJbZF09bC54LHJbYl09bC55LHJbcF09bC56KSxlLnRhbmdlbnQmJihpW2RdPXUueCxpW2JdPXUueSxpW3BdPXUueiksZS5iaXRhbmdlbnQmJihmW2RdPWMueCxmW2JdPWMueSxmW3BdPWMueiksZCs9M31yZXR1cm4gaDIoZSx7cG9zaXRpb25zOm4sbm9ybWFsczpyLHRhbmdlbnRzOmksYml0YW5nZW50czpmfSl9ZnVuY3Rpb24gb0IobixlLHQpe2xldCBvPW4ubGVuZ3RoLGE9ZS5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShvKTp2b2lkIDAscj1lLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShvKTp2b2lkIDAsaT1lLmJpdGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KG8pOnZvaWQgMCxmPTAsZD0wLGM9MCx1PSEwLGw9dTIsaD1kMixtPWYyO2lmKGUubm9ybWFsfHxlLnRhbmdlbnR8fGUuYml0YW5nZW50KWZvcihsZXQgYj0wO2I8bztiKz02KXtsZXQgcD1zLmZyb21BcnJheShuLGIsbl8pLHk9cy5mcm9tQXJyYXkobiwoYis2KSVvLG9fKTtpZih1KXtsZXQgRT1zLmZyb21BcnJheShuLChiKzMpJW8sbTIpO3Muc3VidHJhY3QoeSxwLHkpLHMuc3VidHJhY3QoRSxwLEUpLG09cy5ub3JtYWxpemUocy5jcm9zcyhFLHksbSksbSksdT0hMX1zLmVxdWFsc0Vwc2lsb24oeSxwLGsuRVBTSUxPTjEwKSYmKHU9ITApLChlLnRhbmdlbnR8fGUuYml0YW5nZW50KSYmKGw9dC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwocCxsKSxlLnRhbmdlbnQmJihoPXMubm9ybWFsaXplKHMuY3Jvc3MobCxtLGgpLGgpKSksZS5ub3JtYWwmJihhW2YrK109bS54LGFbZisrXT1tLnksYVtmKytdPW0ueixhW2YrK109bS54LGFbZisrXT1tLnksYVtmKytdPW0ueiksZS50YW5nZW50JiYocltkKytdPWgueCxyW2QrK109aC55LHJbZCsrXT1oLnoscltkKytdPWgueCxyW2QrK109aC55LHJbZCsrXT1oLnopLGUuYml0YW5nZW50JiYoaVtjKytdPWwueCxpW2MrK109bC55LGlbYysrXT1sLnosaVtjKytdPWwueCxpW2MrK109bC55LGlbYysrXT1sLnopfXJldHVybiBoMihlLHtwb3NpdGlvbnM6bixub3JtYWxzOmEsdGFuZ2VudHM6cixiaXRhbmdlbnRzOml9KX1mdW5jdGlvbiBiMihuLGUpe2xldCB0PW4uX3ZlcnRleEZvcm1hdCxvPW4uX2VsbGlwc29pZCxhPWUuaGVpZ2h0LHI9ZS53aWR0aCxpPWUubm9ydGhDYXAsZj1lLnNvdXRoQ2FwLGQ9MCxjPWEsdT1hLGw9MDtpJiYoZD0xLHUtPTEsbCs9MSksZiYmKGMtPTEsdS09MSxsKz0xKSxsKz1yKnU7bGV0IGg9dC5wb3NpdGlvbj9uZXcgRmxvYXQ2NEFycmF5KGwqMyk6dm9pZCAwLG09dC5zdD9uZXcgRmxvYXQzMkFycmF5KGwqMik6dm9pZCAwLGI9MCxwPTAseT1uXyxFPSRELGc9TnVtYmVyLk1BWF9WQUxVRSxBPU51bWJlci5NQVhfVkFMVUUsVD0tTnVtYmVyLk1BWF9WQUxVRSxSPS1OdW1iZXIuTUFYX1ZBTFVFO2ZvcihsZXQgdz1kO3c8YzsrK3cpZm9yKGxldCB4PTA7eDxyOysreCl3by5jb21wdXRlUG9zaXRpb24oZSxvLHQuc3Qsdyx4LHksRSksaFtiKytdPXkueCxoW2IrK109eS55LGhbYisrXT15LnosdC5zdCYmKG1bcCsrXT1FLngsbVtwKytdPUUueSxnPU1hdGgubWluKGcsRS54KSxBPU1hdGgubWluKEEsRS55KSxUPU1hdGgubWF4KFQsRS54KSxSPU1hdGgubWF4KFIsRS55KSk7aWYoaSYmKHdvLmNvbXB1dGVQb3NpdGlvbihlLG8sdC5zdCwwLDAseSxFKSxoW2IrK109eS54LGhbYisrXT15LnksaFtiKytdPXkueix0LnN0JiYobVtwKytdPUUueCxtW3ArK109RS55LGc9RS54LEE9RS55LFQ9RS54LFI9RS55KSksZiYmKHdvLmNvbXB1dGVQb3NpdGlvbihlLG8sdC5zdCxhLTEsMCx5LEUpLGhbYisrXT15LngsaFtiKytdPXkueSxoW2JdPXkueix0LnN0JiYobVtwKytdPUUueCxtW3BdPUUueSxnPU1hdGgubWluKGcsRS54KSxBPU1hdGgubWluKEEsRS55KSxUPU1hdGgubWF4KFQsRS54KSxSPU1hdGgubWF4KFIsRS55KSkpLHQuc3QmJihnPDB8fEE8MHx8VD4xfHxSPjEpKWZvcihsZXQgdz0wO3c8bS5sZW5ndGg7dys9MiltW3ddPShtW3ddLWcpLyhULWcpLG1bdysxXT0obVt3KzFdLUEpLyhSLUEpO2xldCBTPW5CKGgsdCxvLGUudGFuZ2VudFJvdGF0aW9uTWF0cml4KSxNPTYqKHItMSkqKHUtMSk7aSYmKE0rPTMqKHItMSkpLGYmJihNKz0zKihyLTEpKTtsZXQgST1JZS5jcmVhdGVUeXBlZEFycmF5KGwsTSksTj0wLFA9MCxGO2ZvcihGPTA7Rjx1LTE7KytGKXtmb3IobGV0IHc9MDt3PHItMTsrK3cpe2xldCB4PU4sQz14K3Isdj1DKzEsaj14KzE7SVtQKytdPXgsSVtQKytdPUMsSVtQKytdPWosSVtQKytdPWosSVtQKytdPUMsSVtQKytdPXYsKytOfSsrTn1pZihpfHxmKXtsZXQgdz1sLTEseD1sLTE7aSYmZiYmKHc9bC0yKTtsZXQgQyx2O2lmKE49MCxpKWZvcihGPTA7RjxyLTE7RisrKUM9Tix2PUMrMSxJW1ArK109dyxJW1ArK109QyxJW1ArK109diwrK047aWYoZilmb3IoTj0odS0xKSpyLEY9MDtGPHItMTtGKyspQz1OLHY9QysxLElbUCsrXT1DLElbUCsrXT14LElbUCsrXT12LCsrTn1yZXR1cm4gUy5pbmRpY2VzPUksdC5zdCYmKFMuYXR0cmlidXRlcy5zdD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6bX0pKSxTfWZ1bmN0aW9uIHZzKG4sZSx0LG8sYSl7cmV0dXJuIG5bZSsrXT1vW3RdLG5bZSsrXT1vW3QrMV0sbltlKytdPW9bdCsyXSxuW2UrK109YVt0XSxuW2UrK109YVt0KzFdLG5bZV09YVt0KzJdLG59ZnVuY3Rpb24gRnMobixlLHQsbyl7cmV0dXJuIG5bZSsrXT1vW3RdLG5bZSsrXT1vW3QrMV0sbltlKytdPW9bdF0sbltlXT1vW3QrMV0sbn1mdW5jdGlvbiBhQihuLGUpe2xldCB0PW4uX3NoYWRvd1ZvbHVtZSxvPW4uX29mZnNldEF0dHJpYnV0ZSxhPW4uX3ZlcnRleEZvcm1hdCxyPW4uX2V4dHJ1ZGVkSGVpZ2h0LGk9bi5fc3VyZmFjZUhlaWdodCxmPW4uX2VsbGlwc29pZCxkPWUuaGVpZ2h0LGM9ZS53aWR0aCx1O2lmKHQpe2xldCBCZT1sZS5jbG9uZShhLGFfKTtCZS5ub3JtYWw9ITAsbi5fdmVydGV4Rm9ybWF0PUJlfWxldCBsPWIyKG4sZSk7dCYmKG4uX3ZlcnRleEZvcm1hdD1hKTtsZXQgaD13dC5zY2FsZVRvR2VvZGV0aWNIZWlnaHQobC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxpLGYsITEpO2g9bmV3IEZsb2F0NjRBcnJheShoKTtsZXQgbT1oLmxlbmd0aCxiPW0qMixwPW5ldyBGbG9hdDY0QXJyYXkoYik7cC5zZXQoaCk7bGV0IHk9d3Quc2NhbGVUb0dlb2RldGljSGVpZ2h0KGwuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMscixmKTtwLnNldCh5LG0pLGwuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9cDtsZXQgRT1hLm5vcm1hbD9uZXcgRmxvYXQzMkFycmF5KGIpOnZvaWQgMCxnPWEudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGIpOnZvaWQgMCxBPWEuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoYik6dm9pZCAwLFQ9YS5zdD9uZXcgRmxvYXQzMkFycmF5KGIvMyoyKTp2b2lkIDAsUixTO2lmKGEubm9ybWFsKXtmb3IoUz1sLmF0dHJpYnV0ZXMubm9ybWFsLnZhbHVlcyxFLnNldChTKSx1PTA7dTxtO3UrKylTW3VdPS1TW3VdO0Uuc2V0KFMsbSksbC5hdHRyaWJ1dGVzLm5vcm1hbC52YWx1ZXM9RX1pZih0KXtTPWwuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzLGEubm9ybWFsfHwobC5hdHRyaWJ1dGVzLm5vcm1hbD12b2lkIDApO2xldCBCZT1uZXcgRmxvYXQzMkFycmF5KGIpO2Zvcih1PTA7dTxtO3UrKylTW3VdPS1TW3VdO0JlLnNldChTLG0pLGwuYXR0cmlidXRlcy5leHRydWRlRGlyZWN0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpCZX0pfWxldCBNLEk9XyhvKTtpZihJKXtsZXQgQmU9bS8zKjIsZXQ9bmV3IFVpbnQ4QXJyYXkoQmUpO289PT1vdC5UT1A/ZXQ9ZXQuZmlsbCgxLDAsQmUvMik6KE09bz09PW90Lk5PTkU/MDoxLGV0PWV0LmZpbGwoTSkpLGwuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpldH0pfWlmKGEudGFuZ2VudCl7bGV0IEJlPWwuYXR0cmlidXRlcy50YW5nZW50LnZhbHVlcztmb3IoZy5zZXQoQmUpLHU9MDt1PG07dSsrKUJlW3VdPS1CZVt1XTtnLnNldChCZSxtKSxsLmF0dHJpYnV0ZXMudGFuZ2VudC52YWx1ZXM9Z31pZihhLmJpdGFuZ2VudCl7bGV0IEJlPWwuYXR0cmlidXRlcy5iaXRhbmdlbnQudmFsdWVzO0Euc2V0KEJlKSxBLnNldChCZSxtKSxsLmF0dHJpYnV0ZXMuYml0YW5nZW50LnZhbHVlcz1BfWEuc3QmJihSPWwuYXR0cmlidXRlcy5zdC52YWx1ZXMsVC5zZXQoUiksVC5zZXQoUixtLzMqMiksbC5hdHRyaWJ1dGVzLnN0LnZhbHVlcz1UKTtsZXQgTj1sLmluZGljZXMsUD1OLmxlbmd0aCxGPW0vMyx3PUllLmNyZWF0ZVR5cGVkQXJyYXkoYi8zLFAqMik7Zm9yKHcuc2V0KE4pLHU9MDt1PFA7dSs9Myl3W3UrUF09Tlt1KzJdK0Ysd1t1KzErUF09Tlt1KzFdK0Ysd1t1KzIrUF09Tlt1XStGO2wuaW5kaWNlcz13O2xldCB4PWUubm9ydGhDYXAsQz1lLnNvdXRoQ2FwLHY9ZCxqPTIsej0wLEQ9NCxHPTQ7eCYmKGotPTEsdi09MSx6Kz0xLEQtPTIsRy09MSksQyYmKGotPTEsdi09MSx6Kz0xLEQtPTIsRy09MSkseis9aipjKzIqdi1EO2xldCBWPSh6K0cpKjIsTz1uZXcgRmxvYXQ2NEFycmF5KFYqMyksWj10P25ldyBGbG9hdDMyQXJyYXkoViozKTp2b2lkIDAsYWU9ST9uZXcgVWludDhBcnJheShWKTp2b2lkIDAsY2U9YS5zdD9uZXcgRmxvYXQzMkFycmF5KFYqMik6dm9pZCAwLGZlPW89PT1vdC5UT1A7SSYmIWZlJiYoTT1vPT09b3QuQUxMPzE6MCxhZT1hZS5maWxsKE0pKTtsZXQgdGU9MCxtZT0wLHVlPTAsYmU9MCxoZT1jKnYsUTtmb3IodT0wO3U8aGU7dSs9YylRPXUqMyxPPXZzKE8sdGUsUSxoLHkpLHRlKz02LGEuc3QmJihjZT1GcyhjZSxtZSx1KjIsUiksbWUrPTQpLHQmJih1ZSs9MyxaW3VlKytdPVNbUV0sWlt1ZSsrXT1TW1ErMV0sWlt1ZSsrXT1TW1ErMl0pLGZlJiYoYWVbYmUrK109MSxiZSs9MSk7aWYoQyl7bGV0IEJlPXg/aGUrMTpoZTtmb3IoUT1CZSozLHU9MDt1PDI7dSsrKU89dnMoTyx0ZSxRLGgseSksdGUrPTYsYS5zdCYmKGNlPUZzKGNlLG1lLEJlKjIsUiksbWUrPTQpLHQmJih1ZSs9MyxaW3VlKytdPVNbUV0sWlt1ZSsrXT1TW1ErMV0sWlt1ZSsrXT1TW1ErMl0pLGZlJiYoYWVbYmUrK109MSxiZSs9MSl9ZWxzZSBmb3IodT1oZS1jO3U8aGU7dSsrKVE9dSozLE89dnMoTyx0ZSxRLGgseSksdGUrPTYsYS5zdCYmKGNlPUZzKGNlLG1lLHUqMixSKSxtZSs9NCksdCYmKHVlKz0zLFpbdWUrK109U1tRXSxaW3VlKytdPVNbUSsxXSxaW3VlKytdPVNbUSsyXSksZmUmJihhZVtiZSsrXT0xLGJlKz0xKTtmb3IodT1oZS0xO3U+MDt1LT1jKVE9dSozLE89dnMoTyx0ZSxRLGgseSksdGUrPTYsYS5zdCYmKGNlPUZzKGNlLG1lLHUqMixSKSxtZSs9NCksdCYmKHVlKz0zLFpbdWUrK109U1tRXSxaW3VlKytdPVNbUSsxXSxaW3VlKytdPVNbUSsyXSksZmUmJihhZVtiZSsrXT0xLGJlKz0xKTtpZih4KXtsZXQgQmU9aGU7Zm9yKFE9QmUqMyx1PTA7dTwyO3UrKylPPXZzKE8sdGUsUSxoLHkpLHRlKz02LGEuc3QmJihjZT1GcyhjZSxtZSxCZSoyLFIpLG1lKz00KSx0JiYodWUrPTMsWlt1ZSsrXT1TW1FdLFpbdWUrK109U1tRKzFdLFpbdWUrK109U1tRKzJdKSxmZSYmKGFlW2JlKytdPTEsYmUrPTEpfWVsc2UgZm9yKHU9Yy0xO3U+PTA7dS0tKVE9dSozLE89dnMoTyx0ZSxRLGgseSksdGUrPTYsYS5zdCYmKGNlPUZzKGNlLG1lLHUqMixSKSxtZSs9NCksdCYmKHVlKz0zLFpbdWUrK109U1tRXSxaW3VlKytdPVNbUSsxXSxaW3VlKytdPVNbUSsyXSksZmUmJihhZVtiZSsrXT0xLGJlKz0xKTtsZXQgVGU9b0IoTyxhLGYpO2Euc3QmJihUZS5hdHRyaWJ1dGVzLnN0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpjZX0pKSx0JiYoVGUuYXR0cmlidXRlcy5leHRydWRlRGlyZWN0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpafSkpLEkmJihUZS5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOmFlfSkpO2xldCBDZT1JZS5jcmVhdGVUeXBlZEFycmF5KFYseio2KSxXZSx6ZSxaZSxLZTttPU8ubGVuZ3RoLzM7bGV0IERlPTA7Zm9yKHU9MDt1PG0tMTt1Kz0yKXtXZT11LEtlPShXZSsyKSVtO2xldCBCZT1zLmZyb21BcnJheShPLFdlKjMsb18pLGV0PXMuZnJvbUFycmF5KE8sS2UqMyxtMik7cy5lcXVhbHNFcHNpbG9uKEJlLGV0LGsuRVBTSUxPTjEwKXx8KHplPShXZSsxKSVtLFplPSh6ZSsyKSVtLENlW0RlKytdPVdlLENlW0RlKytdPXplLENlW0RlKytdPUtlLENlW0RlKytdPUtlLENlW0RlKytdPXplLENlW0RlKytdPVplKX1yZXR1cm4gVGUuaW5kaWNlcz1DZSxUZT1MdC5jb21iaW5lSW5zdGFuY2VzKFtuZXcgbG8oe2dlb21ldHJ5Omx9KSxuZXcgbG8oe2dlb21ldHJ5OlRlfSldKSxUZVswXX1mdW5jdGlvbiByXyhuLGUsdCxvLGEpe2lmKHQ9PT0wKXJldHVybiB4ZS5jbG9uZShuLGEpO2xldCByPXdvLmNvbXB1dGVPcHRpb25zKG4sZSx0LDAsbDIscDIpLGk9ci5oZWlnaHQsZj1yLndpZHRoLGQ9ckI7cmV0dXJuIHdvLmNvbXB1dGVQb3NpdGlvbihyLG8sITEsMCwwLGRbMF0pLHdvLmNvbXB1dGVQb3NpdGlvbihyLG8sITEsMCxmLTEsZFsxXSksd28uY29tcHV0ZVBvc2l0aW9uKHIsbywhMSxpLTEsMCxkWzJdKSx3by5jb21wdXRlUG9zaXRpb24ocixvLCExLGktMSxmLTEsZFszXSkseGUuZnJvbUNhcnRlc2lhbkFycmF5KGQsbyxhKX1mdW5jdGlvbiBncihuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLnJlY3RhbmdsZSx0PW4uaGVpZ2h0Pz8wLG89bi5leHRydWRlZEhlaWdodD8/dDt0aGlzLl9yZWN0YW5nbGU9eGUuY2xvbmUoZSksdGhpcy5fZ3JhbnVsYXJpdHk9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUsdGhpcy5fZWxsaXBzb2lkPUsuY2xvbmUobi5lbGxpcHNvaWQ/P0suZGVmYXVsdCksdGhpcy5fc3VyZmFjZUhlaWdodD1NYXRoLm1heCh0LG8pLHRoaXMuX3JvdGF0aW9uPW4ucm90YXRpb24/PzAsdGhpcy5fc3RSb3RhdGlvbj1uLnN0Um90YXRpb24/PzAsdGhpcy5fdmVydGV4Rm9ybWF0PWxlLmNsb25lKG4udmVydGV4Rm9ybWF0Pz9sZS5ERUZBVUxUKSx0aGlzLl9leHRydWRlZEhlaWdodD1NYXRoLm1pbih0LG8pLHRoaXMuX3NoYWRvd1ZvbHVtZT1uLnNoYWRvd1ZvbHVtZT8/ITEsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUmVjdGFuZ2xlR2VvbWV0cnkiLHRoaXMuX29mZnNldEF0dHJpYnV0ZT1uLm9mZnNldEF0dHJpYnV0ZSx0aGlzLl9yb3RhdGVkUmVjdGFuZ2xlPXZvaWQgMCx0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzPXZvaWQgMH1mdW5jdGlvbiBsQihuKXtpZihuLl9zdFJvdGF0aW9uPT09MClyZXR1cm5bMCwwLDAsMSwxLDBdO2xldCBlPXhlLmNsb25lKG4uX3JlY3RhbmdsZSxzMiksdD1uLl9ncmFudWxhcml0eSxvPW4uX2VsbGlwc29pZCxhPW4uX3JvdGF0aW9uLW4uX3N0Um90YXRpb24scj1yXyhlLHQsYSxvLHMyKSxpPWZCO2lbMF0ueD1yLndlc3QsaVswXS55PXIuc291dGgsaVsxXS54PXIud2VzdCxpWzFdLnk9ci5ub3J0aCxpWzJdLng9ci5lYXN0LGlbMl0ueT1yLnNvdXRoO2xldCBmPW4ucmVjdGFuZ2xlLGQ9Sm8uZnJvbVJvdGF0aW9uKG4uX3N0Um90YXRpb24sZEIpLGM9eGUuY2VudGVyKGYsdUIpO2ZvcihsZXQgYj0wO2I8MzsrK2Ipe2xldCBwPWlbYl07cC54LT1jLmxvbmdpdHVkZSxwLnktPWMubGF0aXR1ZGUsSm8ubXVsdGlwbHlCeVZlY3RvcihkLHAscCkscC54Kz1jLmxvbmdpdHVkZSxwLnkrPWMubGF0aXR1ZGUscC54PShwLngtZi53ZXN0KS9mLndpZHRoLHAueT0ocC55LWYuc291dGgpL2YuaGVpZ2h0fWxldCB1PWlbMF0sbD1pWzFdLGg9aVsyXSxtPW5ldyBBcnJheSg2KTtyZXR1cm4gWS5wYWNrKHUsbSksWS5wYWNrKGwsbSwyKSxZLnBhY2soaCxtLDQpLG19dmFyIG5fLGYyLGQyLHUyLGwyLCRELGVCLHRCLG9fLG0yLGFfLHJCLHAyLGlCLGcyLF8yLEZpLGNCLGMyLHNCLHMyLGZCLGRCLHVCLGlfLHkyPVgoKCk9PntFdCgpO3Z0KCk7TWUoKTtndCgpO0N0KCk7c3QoKTtzZSgpO1ZlKCk7WHQoKTtZdCgpO3JuKCk7ZGMoKTtqbygpO2ZyKCk7WnQoKTtVZSgpO1BmKCk7SW4oKTtXYSgpO3RuKCk7V28oKTtobigpO3RfKCk7Q28oKTtuXz1uZXcgcyxmMj1uZXcgcyxkMj1uZXcgcyx1Mj1uZXcgcyxsMj1uZXcgeGUsJEQ9bmV3IFksZUI9bmV3IGdlLHRCPW5ldyBnZTtvXz1uZXcgcyxtMj1uZXcgczthXz1uZXcgbGU7ckI9W25ldyBzLG5ldyBzLG5ldyBzLG5ldyBzXSxwMj1uZXcgcmUsaUI9bmV3IHJlO2dyLnBhY2tlZExlbmd0aD14ZS5wYWNrZWRMZW5ndGgrSy5wYWNrZWRMZW5ndGgrbGUucGFja2VkTGVuZ3RoKzc7Z3IucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCx4ZS5wYWNrKG4uX3JlY3RhbmdsZSxlLHQpLHQrPXhlLnBhY2tlZExlbmd0aCxLLnBhY2sobi5fZWxsaXBzb2lkLGUsdCksdCs9Sy5wYWNrZWRMZW5ndGgsbGUucGFjayhuLl92ZXJ0ZXhGb3JtYXQsZSx0KSx0Kz1sZS5wYWNrZWRMZW5ndGgsZVt0KytdPW4uX2dyYW51bGFyaXR5LGVbdCsrXT1uLl9zdXJmYWNlSGVpZ2h0LGVbdCsrXT1uLl9yb3RhdGlvbixlW3QrK109bi5fc3RSb3RhdGlvbixlW3QrK109bi5fZXh0cnVkZWRIZWlnaHQsZVt0KytdPW4uX3NoYWRvd1ZvbHVtZT8xOjAsZVt0XT1uLl9vZmZzZXRBdHRyaWJ1dGU/Py0xLGV9O2cyPW5ldyB4ZSxfMj1LLmNsb25lKEsuVU5JVF9TUEhFUkUpLEZpPXtyZWN0YW5nbGU6ZzIsZWxsaXBzb2lkOl8yLHZlcnRleEZvcm1hdDphXyxncmFudWxhcml0eTp2b2lkIDAsaGVpZ2h0OnZvaWQgMCxyb3RhdGlvbjp2b2lkIDAsc3RSb3RhdGlvbjp2b2lkIDAsZXh0cnVkZWRIZWlnaHQ6dm9pZCAwLHNoYWRvd1ZvbHVtZTp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07Z3IudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtlPWU/PzA7bGV0IG89eGUudW5wYWNrKG4sZSxnMik7ZSs9eGUucGFja2VkTGVuZ3RoO2xldCBhPUsudW5wYWNrKG4sZSxfMik7ZSs9Sy5wYWNrZWRMZW5ndGg7bGV0IHI9bGUudW5wYWNrKG4sZSxhXyk7ZSs9bGUucGFja2VkTGVuZ3RoO2xldCBpPW5bZSsrXSxmPW5bZSsrXSxkPW5bZSsrXSxjPW5bZSsrXSx1PW5bZSsrXSxsPW5bZSsrXT09PTEsaD1uW2VdO3JldHVybiBfKHQpPyh0Ll9yZWN0YW5nbGU9eGUuY2xvbmUobyx0Ll9yZWN0YW5nbGUpLHQuX2VsbGlwc29pZD1LLmNsb25lKGEsdC5fZWxsaXBzb2lkKSx0Ll92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUocix0Ll92ZXJ0ZXhGb3JtYXQpLHQuX2dyYW51bGFyaXR5PWksdC5fc3VyZmFjZUhlaWdodD1mLHQuX3JvdGF0aW9uPWQsdC5fc3RSb3RhdGlvbj1jLHQuX2V4dHJ1ZGVkSGVpZ2h0PXUsdC5fc2hhZG93Vm9sdW1lPWwsdC5fb2Zmc2V0QXR0cmlidXRlPWg9PT0tMT92b2lkIDA6aCx0KTooRmkuZ3JhbnVsYXJpdHk9aSxGaS5oZWlnaHQ9ZixGaS5yb3RhdGlvbj1kLEZpLnN0Um90YXRpb249YyxGaS5leHRydWRlZEhlaWdodD11LEZpLnNoYWRvd1ZvbHVtZT1sLEZpLm9mZnNldEF0dHJpYnV0ZT1oPT09LTE/dm9pZCAwOmgsbmV3IGdyKEZpKSl9O2dyLmNvbXB1dGVSZWN0YW5nbGU9ZnVuY3Rpb24obixlKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgdD1uLnJlY3RhbmdsZSxvPW4uZ3JhbnVsYXJpdHk/P2suUkFESUFOU19QRVJfREVHUkVFLGE9bi5lbGxpcHNvaWQ/P0suZGVmYXVsdCxyPW4ucm90YXRpb24/PzA7cmV0dXJuIHJfKHQsbyxyLGEsZSl9O2NCPW5ldyBKLGMyPW5ldyBZZSxzQj1uZXcgcmU7Z3IuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7aWYoay5lcXVhbHNFcHNpbG9uKG4uX3JlY3RhbmdsZS5ub3J0aCxuLl9yZWN0YW5nbGUuc291dGgsay5FUFNJTE9OMTApfHxrLmVxdWFsc0Vwc2lsb24obi5fcmVjdGFuZ2xlLmVhc3Qsbi5fcmVjdGFuZ2xlLndlc3Qsay5FUFNJTE9OMTApKXJldHVybjtsZXQgZT1uLl9yZWN0YW5nbGUsdD1uLl9lbGxpcHNvaWQsbz1uLl9yb3RhdGlvbixhPW4uX3N0Um90YXRpb24scj1uLl92ZXJ0ZXhGb3JtYXQsaT13by5jb21wdXRlT3B0aW9ucyhlLG4uX2dyYW51bGFyaXR5LG8sYSxsMixwMixpQiksZj1jQjtpZihhIT09MHx8byE9PTApe2xldCBtPXhlLmNlbnRlcihlLHNCKSxiPXQuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsQ2FydG9ncmFwaGljKG0sb18pO1llLmZyb21BeGlzQW5nbGUoYiwtYSxjMiksSi5mcm9tUXVhdGVybmlvbihjMixmKX1lbHNlIEouY2xvbmUoSi5JREVOVElUWSxmKTtsZXQgZD1uLl9zdXJmYWNlSGVpZ2h0LGM9bi5fZXh0cnVkZWRIZWlnaHQsdT0hay5lcXVhbHNFcHNpbG9uKGQsYywwLGsuRVBTSUxPTjIpO2kubG9uU2NhbGFyPTEvbi5fcmVjdGFuZ2xlLndpZHRoLGkubGF0U2NhbGFyPTEvbi5fcmVjdGFuZ2xlLmhlaWdodCxpLnRhbmdlbnRSb3RhdGlvbk1hdHJpeD1mO2xldCBsLGg7aWYoZT1uLl9yZWN0YW5nbGUsdSl7bD1hQihuLGkpO2xldCBtPWdlLmZyb21SZWN0YW5nbGUzRChlLHQsZCx0QiksYj1nZS5mcm9tUmVjdGFuZ2xlM0QoZSx0LGMsZUIpO2g9Z2UudW5pb24obSxiKX1lbHNle2lmKGw9YjIobixpKSxsLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPXd0LnNjYWxlVG9HZW9kZXRpY0hlaWdodChsLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLGQsdCwhMSksXyhuLl9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgbT1sLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aCxiPW4uX29mZnNldEF0dHJpYnV0ZT09PW90Lk5PTkU/MDoxLHA9bmV3IFVpbnQ4QXJyYXkobS8zKS5maWxsKGIpO2wuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpwfSl9aD1nZS5mcm9tUmVjdGFuZ2xlM0QoZSx0LGQpfXJldHVybiByLnBvc2l0aW9ufHxkZWxldGUgbC5hdHRyaWJ1dGVzLnBvc2l0aW9uLG5ldyBQZSh7YXR0cmlidXRlczpsLmF0dHJpYnV0ZXMsaW5kaWNlczpsLmluZGljZXMscHJpbWl0aXZlVHlwZTpsLnByaW1pdGl2ZVR5cGUsYm91bmRpbmdTcGhlcmU6aCxvZmZzZXRBdHRyaWJ1dGU6bi5fb2Zmc2V0QXR0cmlidXRlfSl9O2dyLmNyZWF0ZVNoYWRvd1ZvbHVtZT1mdW5jdGlvbihuLGUsdCl7bGV0IG89bi5fZ3JhbnVsYXJpdHksYT1uLl9lbGxpcHNvaWQscj1lKG8sYSksaT10KG8sYSk7cmV0dXJuIG5ldyBncih7cmVjdGFuZ2xlOm4uX3JlY3RhbmdsZSxyb3RhdGlvbjpuLl9yb3RhdGlvbixlbGxpcHNvaWQ6YSxzdFJvdGF0aW9uOm4uX3N0Um90YXRpb24sZ3JhbnVsYXJpdHk6byxleHRydWRlZEhlaWdodDppLGhlaWdodDpyLHZlcnRleEZvcm1hdDpsZS5QT1NJVElPTl9PTkxZLHNoYWRvd1ZvbHVtZTohMH0pfTtzMj1uZXcgeGUsZkI9W25ldyBZLG5ldyBZLG5ldyBZXSxkQj1uZXcgSm8sdUI9bmV3IHJlO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGdyLnByb3RvdHlwZSx7cmVjdGFuZ2xlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLl9yb3RhdGVkUmVjdGFuZ2xlKXx8KHRoaXMuX3JvdGF0ZWRSZWN0YW5nbGU9cl8odGhpcy5fcmVjdGFuZ2xlLHRoaXMuX2dyYW51bGFyaXR5LHRoaXMuX3JvdGF0aW9uLHRoaXMuX2VsbGlwc29pZCkpLHRoaXMuX3JvdGF0ZWRSZWN0YW5nbGV9fSx0ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzKXx8KHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM9bEIodGhpcykpLHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHN9fX0pO2lfPWdyfSk7dmFyIGNfPXt9OyRlKGNfLHtkZWZhdWx0OigpPT5tQn0pO2Z1bmN0aW9uIGhCKG4sZSl7cmV0dXJuIF8oZSkmJihuPWlfLnVucGFjayhuLGUpKSxuLl9lbGxpcHNvaWQ9Sy5jbG9uZShuLl9lbGxpcHNvaWQpLG4uX3JlY3RhbmdsZT14ZS5jbG9uZShuLl9yZWN0YW5nbGUpLGlfLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBtQixzXz1YKCgpPT57c2UoKTtWZSgpO2huKCk7eTIoKTttQj1oQn0pO2Z1bmN0aW9uIEEyKG4sZSl7bGV0IHQ9bi5fZWxsaXBzb2lkLG89ZS5oZWlnaHQsYT1lLndpZHRoLHI9ZS5ub3J0aENhcCxpPWUuc291dGhDYXAsZj1vLGQ9MixjPTAsdT00O3ImJihkLT0xLGYtPTEsYys9MSx1LT0yKSxpJiYoZC09MSxmLT0xLGMrPTEsdS09MiksYys9ZCphKzIqZi11O2xldCBsPW5ldyBGbG9hdDY0QXJyYXkoYyozKSxoPTAsbT0wLGIscD1nQjtpZihyKXdvLmNvbXB1dGVQb3NpdGlvbihlLHQsITEsbSwwLHApLGxbaCsrXT1wLngsbFtoKytdPXAueSxsW2grK109cC56O2Vsc2UgZm9yKGI9MDtiPGE7YisrKXdvLmNvbXB1dGVQb3NpdGlvbihlLHQsITEsbSxiLHApLGxbaCsrXT1wLngsbFtoKytdPXAueSxsW2grK109cC56O2ZvcihiPWEtMSxtPTE7bTxvO20rKyl3by5jb21wdXRlUG9zaXRpb24oZSx0LCExLG0sYixwKSxsW2grK109cC54LGxbaCsrXT1wLnksbFtoKytdPXAuejtpZihtPW8tMSwhaSlmb3IoYj1hLTI7Yj49MDtiLS0pd28uY29tcHV0ZVBvc2l0aW9uKGUsdCwhMSxtLGIscCksbFtoKytdPXAueCxsW2grK109cC55LGxbaCsrXT1wLno7Zm9yKGI9MCxtPW8tMjttPjA7bS0tKXdvLmNvbXB1dGVQb3NpdGlvbihlLHQsITEsbSxiLHApLGxbaCsrXT1wLngsbFtoKytdPXAueSxsW2grK109cC56O2xldCB5PWwubGVuZ3RoLzMqMixFPUllLmNyZWF0ZVR5cGVkQXJyYXkobC5sZW5ndGgvMyx5KSxnPTA7Zm9yKGxldCBUPTA7VDxsLmxlbmd0aC8zLTE7VCsrKUVbZysrXT1ULEVbZysrXT1UKzE7RVtnKytdPWwubGVuZ3RoLzMtMSxFW2crK109MDtsZXQgQT1uZXcgUGUoe2F0dHJpYnV0ZXM6bmV3IFFlLHByaW1pdGl2ZVR5cGU6RmUuTElORVN9KTtyZXR1cm4gQS5hdHRyaWJ1dGVzLnBvc2l0aW9uPW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bH0pLEEuaW5kaWNlcz1FLEF9ZnVuY3Rpb24geUIobixlKXtsZXQgdD1uLl9zdXJmYWNlSGVpZ2h0LG89bi5fZXh0cnVkZWRIZWlnaHQsYT1uLl9lbGxpcHNvaWQscj1BMihuLGUpLGk9ZS5oZWlnaHQsZj1lLndpZHRoLGQ9d3Quc2NhbGVUb0dlb2RldGljSGVpZ2h0KHIuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsdCxhLCExKSxjPWQubGVuZ3RoLHU9bmV3IEZsb2F0NjRBcnJheShjKjIpO3Uuc2V0KGQpO2xldCBsPXd0LnNjYWxlVG9HZW9kZXRpY0hlaWdodChyLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLG8sYSk7dS5zZXQobCxjKSxyLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPXU7bGV0IGg9ZS5ub3J0aENhcCxtPWUuc291dGhDYXAsYj00O2gmJihiLT0xKSxtJiYoYi09MSk7bGV0IHA9KHUubGVuZ3RoLzMrYikqMix5PUllLmNyZWF0ZVR5cGVkQXJyYXkodS5sZW5ndGgvMyxwKTtjPXUubGVuZ3RoLzY7bGV0IEU9MDtmb3IobGV0IEE9MDtBPGMtMTtBKyspeVtFKytdPUEseVtFKytdPUErMSx5W0UrK109QStjLHlbRSsrXT1BK2MrMTt5W0UrK109Yy0xLHlbRSsrXT0wLHlbRSsrXT1jK2MtMSx5W0UrK109Yyx5W0UrK109MCx5W0UrK109YztsZXQgZztpZihoKWc9aS0xO2Vsc2V7bGV0IEE9Zi0xO3lbRSsrXT1BLHlbRSsrXT1BK2MsZz1mK2ktMn1pZih5W0UrK109Zyx5W0UrK109ZytjLCFtKXtsZXQgQT1mK2ctMTt5W0UrK109QSx5W0VdPUErY31yZXR1cm4gci5pbmRpY2VzPXkscn1mdW5jdGlvbiBCcyhuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLnJlY3RhbmdsZSx0PW4uZ3JhbnVsYXJpdHk/P2suUkFESUFOU19QRVJfREVHUkVFLG89bi5lbGxpcHNvaWQ/P0suZGVmYXVsdCxhPW4ucm90YXRpb24/PzAscj1uLmhlaWdodD8/MCxpPW4uZXh0cnVkZWRIZWlnaHQ/P3I7dGhpcy5fcmVjdGFuZ2xlPXhlLmNsb25lKGUpLHRoaXMuX2dyYW51bGFyaXR5PXQsdGhpcy5fZWxsaXBzb2lkPW8sdGhpcy5fc3VyZmFjZUhlaWdodD1NYXRoLm1heChyLGkpLHRoaXMuX3JvdGF0aW9uPWEsdGhpcy5fZXh0cnVkZWRIZWlnaHQ9TWF0aC5taW4ocixpKSx0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9bi5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUmVjdGFuZ2xlT3V0bGluZUdlb21ldHJ5In12YXIgYkIscEIsZ0IsX0IsdzIsVDIsRHMsQUIsZl8sRTI9WCgoKT0+e0V0KCk7TWUoKTtndCgpO0N0KCk7c3QoKTtzZSgpO1ZlKCk7WHQoKTtZdCgpO3JuKCk7am8oKTtadCgpO1VlKCk7V2EoKTt0bigpO2huKCk7dF8oKTtiQj1uZXcgZ2UscEI9bmV3IGdlLGdCPW5ldyBzLF9CPW5ldyB4ZTtCcy5wYWNrZWRMZW5ndGg9eGUucGFja2VkTGVuZ3RoK0sucGFja2VkTGVuZ3RoKzU7QnMucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHQ9dD8/MCx4ZS5wYWNrKG4uX3JlY3RhbmdsZSxlLHQpLHQrPXhlLnBhY2tlZExlbmd0aCxLLnBhY2sobi5fZWxsaXBzb2lkLGUsdCksdCs9Sy5wYWNrZWRMZW5ndGgsZVt0KytdPW4uX2dyYW51bGFyaXR5LGVbdCsrXT1uLl9zdXJmYWNlSGVpZ2h0LGVbdCsrXT1uLl9yb3RhdGlvbixlW3QrK109bi5fZXh0cnVkZWRIZWlnaHQsZVt0XT1uLl9vZmZzZXRBdHRyaWJ1dGU/Py0xLGV9O3cyPW5ldyB4ZSxUMj1LLmNsb25lKEsuVU5JVF9TUEhFUkUpLERzPXtyZWN0YW5nbGU6dzIsZWxsaXBzb2lkOlQyLGdyYW51bGFyaXR5OnZvaWQgMCxoZWlnaHQ6dm9pZCAwLHJvdGF0aW9uOnZvaWQgMCxleHRydWRlZEhlaWdodDp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07QnMudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtlPWU/PzA7bGV0IG89eGUudW5wYWNrKG4sZSx3Mik7ZSs9eGUucGFja2VkTGVuZ3RoO2xldCBhPUsudW5wYWNrKG4sZSxUMik7ZSs9Sy5wYWNrZWRMZW5ndGg7bGV0IHI9bltlKytdLGk9bltlKytdLGY9bltlKytdLGQ9bltlKytdLGM9bltlXTtyZXR1cm4gXyh0KT8odC5fcmVjdGFuZ2xlPXhlLmNsb25lKG8sdC5fcmVjdGFuZ2xlKSx0Ll9lbGxpcHNvaWQ9Sy5jbG9uZShhLHQuX2VsbGlwc29pZCksdC5fc3VyZmFjZUhlaWdodD1pLHQuX3JvdGF0aW9uPWYsdC5fZXh0cnVkZWRIZWlnaHQ9ZCx0Ll9vZmZzZXRBdHRyaWJ1dGU9Yz09PS0xP3ZvaWQgMDpjLHQpOihEcy5ncmFudWxhcml0eT1yLERzLmhlaWdodD1pLERzLnJvdGF0aW9uPWYsRHMuZXh0cnVkZWRIZWlnaHQ9ZCxEcy5vZmZzZXRBdHRyaWJ1dGU9Yz09PS0xP3ZvaWQgMDpjLG5ldyBCcyhEcykpfTtBQj1uZXcgcmU7QnMuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7bGV0IGU9bi5fcmVjdGFuZ2xlLHQ9bi5fZWxsaXBzb2lkLG89d28uY29tcHV0ZU9wdGlvbnMoZSxuLl9ncmFudWxhcml0eSxuLl9yb3RhdGlvbiwwLF9CLEFCKSxhLHI7aWYoay5lcXVhbHNFcHNpbG9uKGUubm9ydGgsZS5zb3V0aCxrLkVQU0lMT04xMCl8fGsuZXF1YWxzRXBzaWxvbihlLmVhc3QsZS53ZXN0LGsuRVBTSUxPTjEwKSlyZXR1cm47bGV0IGk9bi5fc3VyZmFjZUhlaWdodCxmPW4uX2V4dHJ1ZGVkSGVpZ2h0LGQ9IWsuZXF1YWxzRXBzaWxvbihpLGYsMCxrLkVQU0lMT04yKSxjO2lmKGQpe2lmKGE9eUIobixvKSxfKG4uX29mZnNldEF0dHJpYnV0ZSkpe2xldCBoPWEuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMsbT1uZXcgVWludDhBcnJheShoKTtuLl9vZmZzZXRBdHRyaWJ1dGU9PT1vdC5UT1A/bT1tLmZpbGwoMSwwLGgvMik6KGM9bi5fb2Zmc2V0QXR0cmlidXRlPT09b3QuTk9ORT8wOjEsbT1tLmZpbGwoYykpLGEuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczptfSl9bGV0IHU9Z2UuZnJvbVJlY3RhbmdsZTNEKGUsdCxpLHBCKSxsPWdlLmZyb21SZWN0YW5nbGUzRChlLHQsZixiQik7cj1nZS51bmlvbih1LGwpfWVsc2V7aWYoYT1BMihuLG8pLGEuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9d3Quc2NhbGVUb0dlb2RldGljSGVpZ2h0KGEuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsaSx0LCExKSxfKG4uX29mZnNldEF0dHJpYnV0ZSkpe2xldCB1PWEuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoO2M9bi5fb2Zmc2V0QXR0cmlidXRlPT09b3QuTk9ORT8wOjE7bGV0IGw9bmV3IFVpbnQ4QXJyYXkodS8zKS5maWxsKGMpO2EuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpsfSl9cj1nZS5mcm9tUmVjdGFuZ2xlM0QoZSx0LGkpfXJldHVybiBuZXcgUGUoe2F0dHJpYnV0ZXM6YS5hdHRyaWJ1dGVzLGluZGljZXM6YS5pbmRpY2VzLHByaW1pdGl2ZVR5cGU6RmUuTElORVMsYm91bmRpbmdTcGhlcmU6cixvZmZzZXRBdHRyaWJ1dGU6bi5fb2Zmc2V0QXR0cmlidXRlfSl9O2ZfPUJzfSk7dmFyIGRfPXt9OyRlKGRfLHtkZWZhdWx0OigpPT5UQn0pO2Z1bmN0aW9uIHdCKG4sZSl7cmV0dXJuIF8oZSkmJihuPWZfLnVucGFjayhuLGUpKSxuLl9lbGxpcHNvaWQ9Sy5jbG9uZShuLl9lbGxpcHNvaWQpLG4uX3JlY3RhbmdsZT14ZS5jbG9uZShuLl9yZWN0YW5nbGUpLGZfLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBUQix1Xz1YKCgpPT57c2UoKTtWZSgpO2huKCk7RTIoKTtUQj13Qn0pO2Z1bmN0aW9uIEVCKG4sZSx0LG8sYSxyLGkpe2xldCBmPWJuLm51bWJlck9mUG9pbnRzKG4sZSxhKSxkLGM9dC5yZWQsdT10LmdyZWVuLGw9dC5ibHVlLGg9dC5hbHBoYSxtPW8ucmVkLGI9by5ncmVlbixwPW8uYmx1ZSx5PW8uYWxwaGE7aWYoSmUuZXF1YWxzKHQsbykpe2ZvcihkPTA7ZDxmO2QrKylyW2krK109SmUuZmxvYXRUb0J5dGUoYykscltpKytdPUplLmZsb2F0VG9CeXRlKHUpLHJbaSsrXT1KZS5mbG9hdFRvQnl0ZShsKSxyW2krK109SmUuZmxvYXRUb0J5dGUoaCk7cmV0dXJuIGl9bGV0IEU9KG0tYykvZixnPShiLXUpL2YsQT0ocC1sKS9mLFQ9KHktaCkvZixSPWk7Zm9yKGQ9MDtkPGY7ZCsrKXJbUisrXT1KZS5mbG9hdFRvQnl0ZShjK2QqRSkscltSKytdPUplLmZsb2F0VG9CeXRlKHUrZCpnKSxyW1IrK109SmUuZmxvYXRUb0J5dGUobCtkKkEpLHJbUisrXT1KZS5mbG9hdFRvQnl0ZShoK2QqVCk7cmV0dXJuIFJ9ZnVuY3Rpb24geWQobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5wb3NpdGlvbnMsdD1uLmNvbG9ycyxvPW4uY29sb3JzUGVyVmVydGV4Pz8hMTt0aGlzLl9wb3NpdGlvbnM9ZSx0aGlzLl9jb2xvcnM9dCx0aGlzLl9jb2xvcnNQZXJWZXJ0ZXg9byx0aGlzLl9hcmNUeXBlPW4uYXJjVHlwZT8/YnQuR0VPREVTSUMsdGhpcy5fZ3JhbnVsYXJpdHk9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUsdGhpcy5fZWxsaXBzb2lkPW4uZWxsaXBzb2lkPz9LLmRlZmF1bHQsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlU2ltcGxlUG9seWxpbmVHZW9tZXRyeSI7bGV0IGE9MStlLmxlbmd0aCpzLnBhY2tlZExlbmd0aDthKz1fKHQpPzErdC5sZW5ndGgqSmUucGFja2VkTGVuZ3RoOjEsdGhpcy5wYWNrZWRMZW5ndGg9YStLLnBhY2tlZExlbmd0aCszfXZhciBZaCxKaCxSQixsXyxSMj1YKCgpPT57aGMoKTtFdCgpO01lKCk7a3MoKTtDdCgpO3N0KCk7c2UoKTtWZSgpO1h0KCk7WXQoKTtybigpO1p0KCk7VWUoKTt3cygpO3RuKCk7eWQucGFjaz1mdW5jdGlvbihuLGUsdCl7dD10Pz8wO2xldCBvLGE9bi5fcG9zaXRpb25zLHI9YS5sZW5ndGg7Zm9yKGVbdCsrXT1yLG89MDtvPHI7KytvLHQrPXMucGFja2VkTGVuZ3RoKXMucGFjayhhW29dLGUsdCk7bGV0IGk9bi5fY29sb3JzO2ZvcihyPV8oaSk/aS5sZW5ndGg6MCxlW3QrK109cixvPTA7bzxyOysrbyx0Kz1KZS5wYWNrZWRMZW5ndGgpSmUucGFjayhpW29dLGUsdCk7cmV0dXJuIEsucGFjayhuLl9lbGxpcHNvaWQsZSx0KSx0Kz1LLnBhY2tlZExlbmd0aCxlW3QrK109bi5fY29sb3JzUGVyVmVydGV4PzE6MCxlW3QrK109bi5fYXJjVHlwZSxlW3RdPW4uX2dyYW51bGFyaXR5LGV9O3lkLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvLGE9bltlKytdLHI9bmV3IEFycmF5KGEpO2ZvcihvPTA7bzxhOysrbyxlKz1zLnBhY2tlZExlbmd0aClyW29dPXMudW5wYWNrKG4sZSk7YT1uW2UrK107bGV0IGk9YT4wP25ldyBBcnJheShhKTp2b2lkIDA7Zm9yKG89MDtvPGE7KytvLGUrPUplLnBhY2tlZExlbmd0aClpW29dPUplLnVucGFjayhuLGUpO2xldCBmPUsudW5wYWNrKG4sZSk7ZSs9Sy5wYWNrZWRMZW5ndGg7bGV0IGQ9bltlKytdPT09MSxjPW5bZSsrXSx1PW5bZV07cmV0dXJuIF8odCk/KHQuX3Bvc2l0aW9ucz1yLHQuX2NvbG9ycz1pLHQuX2VsbGlwc29pZD1mLHQuX2NvbG9yc1BlclZlcnRleD1kLHQuX2FyY1R5cGU9Yyx0Ll9ncmFudWxhcml0eT11LHQpOm5ldyB5ZCh7cG9zaXRpb25zOnIsY29sb3JzOmksZWxsaXBzb2lkOmYsY29sb3JzUGVyVmVydGV4OmQsYXJjVHlwZTpjLGdyYW51bGFyaXR5OnV9KX07WWg9bmV3IEFycmF5KDIpLEpoPW5ldyBBcnJheSgyKSxSQj17cG9zaXRpb25zOlloLGhlaWdodDpKaCxlbGxpcHNvaWQ6dm9pZCAwLG1pbkRpc3RhbmNlOnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDB9O3lkLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKG4pe2xldCBlPW4uX3Bvc2l0aW9ucyx0PW4uX2NvbG9ycyxvPW4uX2NvbG9yc1BlclZlcnRleCxhPW4uX2FyY1R5cGUscj1uLl9ncmFudWxhcml0eSxpPW4uX2VsbGlwc29pZCxmPWsuY2hvcmRMZW5ndGgocixpLm1heGltdW1SYWRpdXMpLGQ9Xyh0KSYmIW8sYyx1PWUubGVuZ3RoLGwsaCxtLGIscD0wO2lmKGE9PT1idC5HRU9ERVNJQ3x8YT09PWJ0LlJIVU1CKXtsZXQgVCxSLFM7YT09PWJ0LkdFT0RFU0lDPyhUPWsuY2hvcmRMZW5ndGgocixpLm1heGltdW1SYWRpdXMpLFI9Ym4ubnVtYmVyT2ZQb2ludHMsUz1ibi5nZW5lcmF0ZUFyYyk6KFQ9cixSPWJuLm51bWJlck9mUG9pbnRzUmh1bWJMaW5lLFM9Ym4uZ2VuZXJhdGVSaHVtYkFyYyk7bGV0IE09Ym4uZXh0cmFjdEhlaWdodHMoZSxpKSxJPVJCO2lmKGE9PT1idC5HRU9ERVNJQz9JLm1pbkRpc3RhbmNlPWY6SS5ncmFudWxhcml0eT1yLEkuZWxsaXBzb2lkPWksZCl7bGV0IE49MDtmb3IoYz0wO2M8dS0xO2MrKylOKz1SKGVbY10sZVtjKzFdLFQpKzE7bD1uZXcgRmxvYXQ2NEFycmF5KE4qMyksbT1uZXcgVWludDhBcnJheShOKjQpLEkucG9zaXRpb25zPVloLEkuaGVpZ2h0PUpoO2xldCBQPTA7Zm9yKGM9MDtjPHUtMTsrK2Mpe1loWzBdPWVbY10sWWhbMV09ZVtjKzFdLEpoWzBdPU1bY10sSmhbMV09TVtjKzFdO2xldCBGPVMoSSk7aWYoXyh0KSl7bGV0IHc9Ri5sZW5ndGgvMztiPXRbY107Zm9yKGxldCB4PTA7eDx3OysreCltW1ArK109SmUuZmxvYXRUb0J5dGUoYi5yZWQpLG1bUCsrXT1KZS5mbG9hdFRvQnl0ZShiLmdyZWVuKSxtW1ArK109SmUuZmxvYXRUb0J5dGUoYi5ibHVlKSxtW1ArK109SmUuZmxvYXRUb0J5dGUoYi5hbHBoYSl9bC5zZXQoRixwKSxwKz1GLmxlbmd0aH19ZWxzZSBpZihJLnBvc2l0aW9ucz1lLEkuaGVpZ2h0PU0sbD1uZXcgRmxvYXQ2NEFycmF5KFMoSSkpLF8odCkpe2ZvcihtPW5ldyBVaW50OEFycmF5KGwubGVuZ3RoLzMqNCksYz0wO2M8dS0xOysrYyl7bGV0IFA9ZVtjXSxGPWVbYysxXSx3PXRbY10seD10W2MrMV07cD1FQihQLEYsdyx4LGYsbSxwKX1sZXQgTj10W3UtMV07bVtwKytdPUplLmZsb2F0VG9CeXRlKE4ucmVkKSxtW3ArK109SmUuZmxvYXRUb0J5dGUoTi5ncmVlbiksbVtwKytdPUplLmZsb2F0VG9CeXRlKE4uYmx1ZSksbVtwKytdPUplLmZsb2F0VG9CeXRlKE4uYWxwaGEpfX1lbHNle2g9ZD91KjItMjp1LGw9bmV3IEZsb2F0NjRBcnJheShoKjMpLG09Xyh0KT9uZXcgVWludDhBcnJheShoKjQpOnZvaWQgMDtsZXQgVD0wLFI9MDtmb3IoYz0wO2M8dTsrK2Mpe2xldCBTPWVbY107aWYoZCYmYz4wJiYocy5wYWNrKFMsbCxUKSxUKz0zLGI9dFtjLTFdLG1bUisrXT1KZS5mbG9hdFRvQnl0ZShiLnJlZCksbVtSKytdPUplLmZsb2F0VG9CeXRlKGIuZ3JlZW4pLG1bUisrXT1KZS5mbG9hdFRvQnl0ZShiLmJsdWUpLG1bUisrXT1KZS5mbG9hdFRvQnl0ZShiLmFscGhhKSksZCYmYz09PXUtMSlicmVhaztzLnBhY2soUyxsLFQpLFQrPTMsXyh0KSYmKGI9dFtjXSxtW1IrK109SmUuZmxvYXRUb0J5dGUoYi5yZWQpLG1bUisrXT1KZS5mbG9hdFRvQnl0ZShiLmdyZWVuKSxtW1IrK109SmUuZmxvYXRUb0J5dGUoYi5ibHVlKSxtW1IrK109SmUuZmxvYXRUb0J5dGUoYi5hbHBoYSkpfX1sZXQgeT1uZXcgUWU7eS5wb3NpdGlvbj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmx9KSxfKHQpJiYoeS5jb2xvcj1uZXcgaWUoe2NvbXBvbmVudERhdGF0eXBlOm9lLlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTo0LHZhbHVlczptLG5vcm1hbGl6ZTohMH0pKSxoPWwubGVuZ3RoLzM7bGV0IEU9KGgtMSkqMixnPUllLmNyZWF0ZVR5cGVkQXJyYXkoaCxFKSxBPTA7Zm9yKGM9MDtjPGgtMTsrK2MpZ1tBKytdPWMsZ1tBKytdPWMrMTtyZXR1cm4gbmV3IFBlKHthdHRyaWJ1dGVzOnksaW5kaWNlczpnLHByaW1pdGl2ZVR5cGU6RmUuTElORVMsYm91bmRpbmdTcGhlcmU6Z2UuZnJvbVBvaW50cyhlKX0pfTtsXz15ZH0pO3ZhciBoXz17fTskZShoXyx7ZGVmYXVsdDooKT0+T0J9KTtmdW5jdGlvbiB4QihuLGUpe3JldHVybiBfKGUpJiYobj1sXy51bnBhY2sobixlKSksbi5fZWxsaXBzb2lkPUsuY2xvbmUobi5fZWxsaXBzb2lkKSxsXy5jcmVhdGVHZW9tZXRyeShuKX12YXIgT0IsbV89WCgoKT0+e3NlKCk7VmUoKTtSMigpO09CPXhCfSk7ZnVuY3Rpb24ganMobil7bGV0IGU9bi5yYWRpdXM/PzEsbz17cmFkaWk6bmV3IHMoZSxlLGUpLHN0YWNrUGFydGl0aW9uczpuLnN0YWNrUGFydGl0aW9ucyxzbGljZVBhcnRpdGlvbnM6bi5zbGljZVBhcnRpdGlvbnMsdmVydGV4Rm9ybWF0Om4udmVydGV4Rm9ybWF0fTt0aGlzLl9lbGxpcHNvaWRHZW9tZXRyeT1uZXcgaWEobyksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlU3BoZXJlR2VvbWV0cnkifXZhciBTQixEaSxiXyx4Mj1YKCgpPT57TWUoKTtzZSgpO2toKCk7Q28oKTtqcy5wYWNrZWRMZW5ndGg9aWEucGFja2VkTGVuZ3RoO2pzLnBhY2s9ZnVuY3Rpb24obixlLHQpe3JldHVybiBpYS5wYWNrKG4uX2VsbGlwc29pZEdlb21ldHJ5LGUsdCl9O1NCPW5ldyBpYSxEaT17cmFkaXVzOnZvaWQgMCxyYWRpaTpuZXcgcyx2ZXJ0ZXhGb3JtYXQ6bmV3IGxlLHN0YWNrUGFydGl0aW9uczp2b2lkIDAsc2xpY2VQYXJ0aXRpb25zOnZvaWQgMH07anMudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1pYS51bnBhY2sobixlLFNCKTtyZXR1cm4gRGkudmVydGV4Rm9ybWF0PWxlLmNsb25lKG8uX3ZlcnRleEZvcm1hdCxEaS52ZXJ0ZXhGb3JtYXQpLERpLnN0YWNrUGFydGl0aW9ucz1vLl9zdGFja1BhcnRpdGlvbnMsRGkuc2xpY2VQYXJ0aXRpb25zPW8uX3NsaWNlUGFydGl0aW9ucyxfKHQpPyhzLmNsb25lKG8uX3JhZGlpLERpLnJhZGlpKSx0Ll9lbGxpcHNvaWRHZW9tZXRyeT1uZXcgaWEoRGkpLHQpOihEaS5yYWRpdXM9by5fcmFkaWkueCxuZXcganMoRGkpKX07anMuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7cmV0dXJuIGlhLmNyZWF0ZUdlb21ldHJ5KG4uX2VsbGlwc29pZEdlb21ldHJ5KX07Yl89anN9KTt2YXIgcF89e307JGUocF8se2RlZmF1bHQ6KCk9Pk1CfSk7ZnVuY3Rpb24gQ0IobixlKXtyZXR1cm4gXyhlKSYmKG49Yl8udW5wYWNrKG4sZSkpLGJfLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBNQixnXz1YKCgpPT57c2UoKTt4MigpO01CPUNCfSk7ZnVuY3Rpb24gVXMobil7bGV0IGU9bi5yYWRpdXM/PzEsbz17cmFkaWk6bmV3IHMoZSxlLGUpLHN0YWNrUGFydGl0aW9uczpuLnN0YWNrUGFydGl0aW9ucyxzbGljZVBhcnRpdGlvbnM6bi5zbGljZVBhcnRpdGlvbnMsc3ViZGl2aXNpb25zOm4uc3ViZGl2aXNpb25zfTt0aGlzLl9lbGxpcHNvaWRHZW9tZXRyeT1uZXcgWWEobyksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlU3BoZXJlT3V0bGluZUdlb21ldHJ5In12YXIgTkIseGMsX18sTzI9WCgoKT0+e01lKCk7c2UoKTskMCgpO1VzLnBhY2tlZExlbmd0aD1ZYS5wYWNrZWRMZW5ndGg7VXMucGFjaz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIFlhLnBhY2sobi5fZWxsaXBzb2lkR2VvbWV0cnksZSx0KX07TkI9bmV3IFlhLHhjPXtyYWRpdXM6dm9pZCAwLHJhZGlpOm5ldyBzLHN0YWNrUGFydGl0aW9uczp2b2lkIDAsc2xpY2VQYXJ0aXRpb25zOnZvaWQgMCxzdWJkaXZpc2lvbnM6dm9pZCAwfTtVcy51bnBhY2s9ZnVuY3Rpb24obixlLHQpe2xldCBvPVlhLnVucGFjayhuLGUsTkIpO3JldHVybiB4Yy5zdGFja1BhcnRpdGlvbnM9by5fc3RhY2tQYXJ0aXRpb25zLHhjLnNsaWNlUGFydGl0aW9ucz1vLl9zbGljZVBhcnRpdGlvbnMseGMuc3ViZGl2aXNpb25zPW8uX3N1YmRpdmlzaW9ucyxfKHQpPyhzLmNsb25lKG8uX3JhZGlpLHhjLnJhZGlpKSx0Ll9lbGxpcHNvaWRHZW9tZXRyeT1uZXcgWWEoeGMpLHQpOih4Yy5yYWRpdXM9by5fcmFkaWkueCxuZXcgVXMoeGMpKX07VXMuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24obil7cmV0dXJuIFlhLmNyZWF0ZUdlb21ldHJ5KG4uX2VsbGlwc29pZEdlb21ldHJ5KX07X189VXN9KTt2YXIgeV89e307JGUoeV8se2RlZmF1bHQ6KCk9PlBCfSk7ZnVuY3Rpb24gSUIobixlKXtyZXR1cm4gXyhlKSYmKG49X18udW5wYWNrKG4sZSkpLF9fLmNyZWF0ZUdlb21ldHJ5KG4pfXZhciBQQixBXz1YKCgpPT57c2UoKTtPMigpO1BCPUlCfSk7dmFyIHdfPXt9OyRlKHdfLHtkZWZhdWx0OigpPT5RQn0pO2Z1bmN0aW9uIERCKG4sZSx0LG8sYSxyLGkpe2xldCBmPW4ubGVuZ3RoLGQ9bmV3IEZsb2F0NjRBcnJheShmKjMpO2ZvcihsZXQgYz0wO2M8ZjsrK2Mpe2xldCB1PW5bY10sbD1lW2NdLGg9dFtjXSxtPWsubGVycChvLndlc3Qsby5lYXN0LHUvQWQpLGI9ay5sZXJwKG8uc291dGgsby5ub3J0aCxsL0FkKSxwPWsubGVycChhLHIsaC9BZCkseT1yZS5mcm9tUmFkaWFucyhtLGIscCx2QiksRT1pLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHksRkIpO3MucGFjayhFLGQsYyozKX1yZXR1cm4gZH1mdW5jdGlvbiBCQihuKXtsZXQgZT1uLmxlbmd0aCx0PW5ldyBVaW50MzJBcnJheShlKzEpLG89MDtmb3IobGV0IGE9MDthPGU7KythKXRbYV09byxvKz1uW2FdO3JldHVybiB0W2VdPW8sdH1mdW5jdGlvbiBMQihuLGUsdCxvKXtsZXQgYT1vLmxlbmd0aCxyPW4ubGVuZ3RoLGk9bmV3IFVpbnQ4QXJyYXkociksZj1qQixkPVVCLGM9MDtmb3IobGV0IGw9MDtsPGE7bCsrKXtsZXQgaD1vW2xdLG09aDtmb3IobGV0IGI9MTtiPGg7YisrKXtsZXQgcD1jK2IseT1wLTE7ZC5sb25naXR1ZGU9bltwXSxkLmxhdGl0dWRlPWVbcF0sZi5sb25naXR1ZGU9blt5XSxmLmxhdGl0dWRlPWVbeV0scmUuZXF1YWxzKGQsZikmJihtLS0saVt5XT0xKX1vW2xdPW0sYys9aH1sZXQgdT0wO2ZvcihsZXQgbD0wO2w8cjtsKyspaVtsXSE9PTEmJihuW3VdPW5bbF0sZVt1XT1lW2xdLHRbdV09dFtsXSx1KyspfWZ1bmN0aW9uIEkyKG4pe2xldCBlPW4qOCx0PWUqMyxvPWUqNDt0aGlzLnN0YXJ0RWxsaXBzb2lkTm9ybWFscz1uZXcgRmxvYXQzMkFycmF5KHQpLHRoaXMuZW5kRWxsaXBzb2lkTm9ybWFscz1uZXcgRmxvYXQzMkFycmF5KHQpLHRoaXMuc3RhcnRQb3NpdGlvbkFuZEhlaWdodHM9bmV3IEZsb2F0MzJBcnJheShvKSx0aGlzLnN0YXJ0RmFjZU5vcm1hbEFuZFZlcnRleENvcm5lcklkcz1uZXcgRmxvYXQzMkFycmF5KG8pLHRoaXMuZW5kUG9zaXRpb25BbmRIZWlnaHRzPW5ldyBGbG9hdDMyQXJyYXkobyksdGhpcy5lbmRGYWNlTm9ybWFsQW5kSGFsZldpZHRocz1uZXcgRmxvYXQzMkFycmF5KG8pLHRoaXMudmVydGV4QmF0Y2hJZHM9bmV3IFVpbnQxNkFycmF5KGUpLHRoaXMuaW5kaWNlcz1JZS5jcmVhdGVUeXBlZEFycmF5KGUsMzYqbiksdGhpcy52ZWMzT2Zmc2V0PTAsdGhpcy52ZWM0T2Zmc2V0PTAsdGhpcy5iYXRjaElkT2Zmc2V0PTAsdGhpcy5pbmRleE9mZnNldD0wLHRoaXMudm9sdW1lU3RhcnRJbmRleD0wfWZ1bmN0aW9uIEMyKG4sZSx0LG8sYSl7bGV0IHI9cy5zdWJ0cmFjdCh0LGUsekIpLGk9cy5zdWJ0cmFjdChlLG4sUzIpO3JldHVybiBzLm5vcm1hbGl6ZShyLHIpLHMubm9ybWFsaXplKGksaSkscy5kb3QocixpKTxrQiYmKGk9cy5tdWx0aXBseUJ5U2NhbGFyKGksLTEsUzIpKSxzLmFkZChyLGksYSkscy5lcXVhbHMoYSxzLlpFUk8pJiYoYT1zLnN1YnRyYWN0KG4sZSkpLHMuY3Jvc3MoYSxvLGEpLHMuY3Jvc3MobyxhLGEpLHMubm9ybWFsaXplKGEsYSksYX1mdW5jdGlvbiBaQihuLGUpe2xldCB0PW5ldyBVaW50MTZBcnJheShuLnBvc2l0aW9ucyksbz1uZXcgVWludDE2QXJyYXkobi53aWR0aHMpLGE9bmV3IFVpbnQzMkFycmF5KG4uY291bnRzKSxyPW5ldyBVaW50MTZBcnJheShuLmJhdGNoSWRzKSxpPXFCLGY9V0IsZD1YQixjPW5ldyBGbG9hdDY0QXJyYXkobi5wYWNrZWRCdWZmZXIpLHU9MCxsPWNbdSsrXSxoPWNbdSsrXTt4ZS51bnBhY2soYyx1LGkpLHUrPXhlLnBhY2tlZExlbmd0aCxLLnVucGFjayhjLHUsZiksdSs9Sy5wYWNrZWRMZW5ndGgscy51bnBhY2soYyx1LGQpO2xldCBtLGI9dC5sZW5ndGgvMyxwPXQuc3ViYXJyYXkoMCxiKSx5PXQuc3ViYXJyYXkoYiwyKmIpLEU9dC5zdWJhcnJheSgyKmIsMypiKTtVdC56aWdaYWdEZWx0YURlY29kZShwLHksRSksTEIocCx5LEUsYSk7bGV0IGc9YS5sZW5ndGgsQT0wO2ZvcihtPTA7bTxnO20rKyl7bGV0IEY9YVttXTtBKz1GLTF9bGV0IFQ9bmV3IEkyKEEpLFI9REIocCx5LEUsaSxsLGgsZixkKTtiPXAubGVuZ3RoO2xldCBTPW5ldyBGbG9hdDMyQXJyYXkoYiozKTtmb3IobT0wO208YjsrK20pU1ttKjNdPVJbbSozXS1kLngsU1ttKjMrMV09UlttKjMrMV0tZC55LFNbbSozKzJdPVJbbSozKzJdLWQuejtsZXQgTT0wLEk9MDtmb3IobT0wO208ZzttKyspe2xldCBGPWFbbV0tMSx3PW9bbV0qLjUseD1yW21dLEM9TTtmb3IobGV0IHY9MDt2PEY7disrKXtsZXQgaj1zLnVucGFjayhTLE0sWUIpLHo9cy51bnBhY2soUyxNKzMsSkIpLEQ9RVtJXSxHPUVbSSsxXTtEPWsubGVycChsLGgsRC9BZCksRz1rLmxlcnAobCxoLEcvQWQpLEkrKztsZXQgVj1aaCxPPVFoO2lmKHY9PT0wKXtsZXQgWj1DK0YqMyxhZT1zLnVucGFjayhTLFosWmgpO2lmKHMuZXF1YWxzKGFlLGopKXMudW5wYWNrKFMsWi0zLFYpO2Vsc2V7bGV0IGNlPXMuc3VidHJhY3Qoaix6LFpoKTtWPXMuYWRkKGNlLGosWmgpfX1lbHNlIHMudW5wYWNrKFMsTS0zLFYpO2lmKHY9PT1GLTEpe2xldCBaPXMudW5wYWNrKFMsQyxRaCk7aWYocy5lcXVhbHMoWix6KSlzLnVucGFjayhTLEMrMyxPKTtlbHNle2xldCBhZT1zLnN1YnRyYWN0KHosaixRaCk7Tz1zLmFkZChhZSx6LFFoKX19ZWxzZSBzLnVucGFjayhTLE0rNixPKTtULmFkZFZvbHVtZShWLGoseixPLEQsRyx3LHgsZCxmKSxNKz0zfU0rPTMsSSsrfWxldCBOPVQuaW5kaWNlcztlLnB1c2goVC5zdGFydEVsbGlwc29pZE5vcm1hbHMuYnVmZmVyKSxlLnB1c2goVC5lbmRFbGxpcHNvaWROb3JtYWxzLmJ1ZmZlciksZS5wdXNoKFQuc3RhcnRQb3NpdGlvbkFuZEhlaWdodHMuYnVmZmVyKSxlLnB1c2goVC5zdGFydEZhY2VOb3JtYWxBbmRWZXJ0ZXhDb3JuZXJJZHMuYnVmZmVyKSxlLnB1c2goVC5lbmRQb3NpdGlvbkFuZEhlaWdodHMuYnVmZmVyKSxlLnB1c2goVC5lbmRGYWNlTm9ybWFsQW5kSGFsZldpZHRocy5idWZmZXIpLGUucHVzaChULnZlcnRleEJhdGNoSWRzLmJ1ZmZlciksZS5wdXNoKE4uYnVmZmVyKTtsZXQgUD17aW5kZXhEYXRhdHlwZTpOLkJZVEVTX1BFUl9FTEVNRU5UPT09Mj9JZS5VTlNJR05FRF9TSE9SVDpJZS5VTlNJR05FRF9JTlQsc3RhcnRFbGxpcHNvaWROb3JtYWxzOlQuc3RhcnRFbGxpcHNvaWROb3JtYWxzLmJ1ZmZlcixlbmRFbGxpcHNvaWROb3JtYWxzOlQuZW5kRWxsaXBzb2lkTm9ybWFscy5idWZmZXIsc3RhcnRQb3NpdGlvbkFuZEhlaWdodHM6VC5zdGFydFBvc2l0aW9uQW5kSGVpZ2h0cy5idWZmZXIsc3RhcnRGYWNlTm9ybWFsQW5kVmVydGV4Q29ybmVySWRzOlQuc3RhcnRGYWNlTm9ybWFsQW5kVmVydGV4Q29ybmVySWRzLmJ1ZmZlcixlbmRQb3NpdGlvbkFuZEhlaWdodHM6VC5lbmRQb3NpdGlvbkFuZEhlaWdodHMuYnVmZmVyLGVuZEZhY2VOb3JtYWxBbmRIYWxmV2lkdGhzOlQuZW5kRmFjZU5vcm1hbEFuZEhhbGZXaWR0aHMuYnVmZmVyLHZlcnRleEJhdGNoSWRzOlQudmVydGV4QmF0Y2hJZHMuYnVmZmVyLGluZGljZXM6Ti5idWZmZXJ9O2lmKG4ua2VlcERlY29kZWRQb3NpdGlvbnMpe2xldCBGPUJCKGEpO2UucHVzaChSLmJ1ZmZlcixGLmJ1ZmZlciksUD1fYShQLHtkZWNvZGVkUG9zaXRpb25zOlIuYnVmZmVyLGRlY29kZWRQb3NpdGlvbk9mZnNldHM6Ri5idWZmZXJ9KX1yZXR1cm4gUH12YXIgQWQsa0IsdkIsRkIsakIsVUIsUzIsekIsUDIsTTIsTjIsR0IsVkIsSEIsS0IscUIsV0IsWEIsWmgsWUIsSkIsUWgsUUIsVF89WCgoKT0+e0JyKCk7TWUoKTtndCgpO2dsKCk7VmUoKTtadCgpO1VlKCk7aG4oKTtrbigpO0FkPTMyNzY3LGtCPU1hdGguY29zKGsudG9SYWRpYW5zKDE1MCkpLHZCPW5ldyByZSxGQj1uZXcgcztqQj1uZXcgcmUsVUI9bmV3IHJlO1MyPW5ldyBzLHpCPW5ldyBzO1AyPVswLDIsNiwwLDYsNCwwLDEsMywwLDMsMiwwLDQsNSwwLDUsMSw1LDMsMSw1LDcsMyw3LDUsNCw3LDQsNiw3LDYsMiw3LDIsM10sTTI9UDIubGVuZ3RoLE4yPW5ldyBzLEdCPW5ldyBzLFZCPW5ldyBzLEhCPW5ldyBzLEtCPW5ldyBzO0kyLnByb3RvdHlwZS5hZGRWb2x1bWU9ZnVuY3Rpb24obixlLHQsbyxhLHIsaSxmLGQsYyl7bGV0IHU9cy5hZGQoZSxkLE4yKSxsPWMuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHUsR0IpO3U9cy5hZGQodCxkLE4yKTtsZXQgaD1jLmdlb2RldGljU3VyZmFjZU5vcm1hbCh1LEhCKSxtPUMyKG4sZSx0LGwsVkIpLGI9QzIobyx0LGUsaCxLQikscD10aGlzLnN0YXJ0RWxsaXBzb2lkTm9ybWFscyx5PXRoaXMuZW5kRWxsaXBzb2lkTm9ybWFscyxFPXRoaXMuc3RhcnRQb3NpdGlvbkFuZEhlaWdodHMsZz10aGlzLnN0YXJ0RmFjZU5vcm1hbEFuZFZlcnRleENvcm5lcklkcyxBPXRoaXMuZW5kUG9zaXRpb25BbmRIZWlnaHRzLFQ9dGhpcy5lbmRGYWNlTm9ybWFsQW5kSGFsZldpZHRocyxSPXRoaXMudmVydGV4QmF0Y2hJZHMsUz10aGlzLmJhdGNoSWRPZmZzZXQsTT10aGlzLnZlYzNPZmZzZXQsST10aGlzLnZlYzRPZmZzZXQsTjtmb3IoTj0wO048ODtOKyspcy5wYWNrKGwscCxNKSxzLnBhY2soaCx5LE0pLHMucGFjayhlLEUsSSksRVtJKzNdPWEscy5wYWNrKHQsQSxJKSxBW0krM109cixzLnBhY2sobSxnLEkpLGdbSSszXT1OLHMucGFjayhiLFQsSSksVFtJKzNdPWksUltTKytdPWYsTSs9MyxJKz00O3RoaXMuYmF0Y2hJZE9mZnNldD1TLHRoaXMudmVjM09mZnNldD1NLHRoaXMudmVjNE9mZnNldD1JO2xldCBQPXRoaXMuaW5kaWNlcyxGPXRoaXMudm9sdW1lU3RhcnRJbmRleCx3PXRoaXMuaW5kZXhPZmZzZXQ7Zm9yKE49MDtOPE0yO04rKylQW3crTl09UDJbTl0rRjt0aGlzLnZvbHVtZVN0YXJ0SW5kZXgrPTgsdGhpcy5pbmRleE9mZnNldCs9TTJ9O3FCPW5ldyB4ZSxXQj1uZXcgSyxYQj1uZXcgcyxaaD1uZXcgcyxZQj1uZXcgcyxKQj1uZXcgcyxRaD1uZXcgcztRQj1tdChaQil9KTtmdW5jdGlvbiAkQihuKXt0aGlzLm9mZnNldD1uLm9mZnNldCx0aGlzLmNvdW50PW4uY291bnQsdGhpcy5jb2xvcj1uLmNvbG9yLHRoaXMuYmF0Y2hJZHM9bi5iYXRjaElkc312YXIgazIsdjI9WCgoKT0+e2syPSRCfSk7dmFyIEVfPXt9OyRlKEVfLHtkZWZhdWx0OigpPT5oan0pO2Z1bmN0aW9uIGFqKG4sZSl7bGV0IHQ9ZSplaixvPXMudW5wYWNrKG4sdCxlbSk7dCs9cy5wYWNrZWRMZW5ndGg7bGV0IGE9JC51bnBhY2sobix0LElhLm1vZGVsTWF0cml4KTskLm11bHRpcGx5QnlTY2FsZShhLG8sYSk7bGV0IHI9SWEuYm91bmRpbmdWb2x1bWU7cmV0dXJuIHMuY2xvbmUocy5aRVJPLHIuY2VudGVyKSxyLnJhZGl1cz1NYXRoLnNxcnQoMyksSWF9ZnVuY3Rpb24gcmoobixlKXtsZXQgdD1lKnRqLG89blt0KytdLGE9blt0KytdLHI9cy5mcm9tRWxlbWVudHMobyxvLGEsZW0pLGk9JC51bnBhY2sobix0LElhLm1vZGVsTWF0cml4KTskLm11bHRpcGx5QnlTY2FsZShpLHIsaSk7bGV0IGY9SWEuYm91bmRpbmdWb2x1bWU7cmV0dXJuIHMuY2xvbmUocy5aRVJPLGYuY2VudGVyKSxmLnJhZGl1cz1NYXRoLnNxcnQoMiksSWF9ZnVuY3Rpb24gaWoobixlKXtsZXQgdD1lKm5qLG89cy51bnBhY2sobix0LGVtKTt0Kz1zLnBhY2tlZExlbmd0aDtsZXQgYT0kLnVucGFjayhuLHQsSWEubW9kZWxNYXRyaXgpOyQubXVsdGlwbHlCeVNjYWxlKGEsbyxhKTtsZXQgcj1JYS5ib3VuZGluZ1ZvbHVtZTtyZXR1cm4gcy5jbG9uZShzLlpFUk8sci5jZW50ZXIpLHIucmFkaXVzPTEsSWF9ZnVuY3Rpb24gY2oobixlKXtsZXQgdD1lKm9qLG89blt0KytdLGE9cy51bnBhY2sobix0LGVtKSxyPSQuZnJvbVRyYW5zbGF0aW9uKGEsSWEubW9kZWxNYXRyaXgpOyQubXVsdGlwbHlCeVVuaWZvcm1TY2FsZShyLG8scik7bGV0IGk9SWEuYm91bmRpbmdWb2x1bWU7cmV0dXJuIHMuY2xvbmUocy5aRVJPLGkuY2VudGVyKSxpLnJhZGl1cz0xLElhfWZ1bmN0aW9uICRoKG4sZSx0LG8sYSl7aWYoIV8oZSkpcmV0dXJuO2xldCByPXQubGVuZ3RoLGk9by5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxmPW8uaW5kaWNlcyxkPW4ucG9zaXRpb25zLGM9bi52ZXJ0ZXhCYXRjaElkcyx1PW4uaW5kaWNlcyxsPW4uYmF0Y2hJZHMsaD1uLmJhdGNoVGFibGVDb2xvcnMsbT1uLmJhdGNoZWRJbmRpY2VzLGI9bi5pbmRleE9mZnNldHMscD1uLmluZGV4Q291bnRzLHk9bi5ib3VuZGluZ1ZvbHVtZXMsRT1uLm1vZGVsTWF0cml4LGc9bi5jZW50ZXIsQT1uLnBvc2l0aW9uT2Zmc2V0LFQ9bi5iYXRjaElkSW5kZXgsUj1uLmluZGV4T2Zmc2V0LFM9bi5iYXRjaGVkSW5kaWNlc09mZnNldDtmb3IobGV0IE09MDtNPHI7KytNKXtsZXQgST1hKGUsTSksTj1JLm1vZGVsTWF0cml4OyQubXVsdGlwbHkoRSxOLE4pO2xldCBQPXRbTV0sRj1pLmxlbmd0aDtmb3IobGV0IEM9MDtDPEY7Qys9Myl7bGV0IHY9cy51bnBhY2soaSxDLHNqKTskLm11bHRpcGx5QnlQb2ludChOLHYsdikscy5zdWJ0cmFjdCh2LGcsdikscy5wYWNrKHYsZCxBKjMrQyksY1tUKytdPVB9bGV0IHc9Zi5sZW5ndGg7Zm9yKGxldCBDPTA7Qzx3OysrQyl1W1IrQ109ZltDXStBO2xldCB4PU0rUzttW3hdPW5ldyBrMih7b2Zmc2V0OlIsY291bnQ6dyxjb2xvcjpKZS5mcm9tUmdiYShoW1BdKSxiYXRjaElkczpbUF19KSxsW3hdPVAsYlt4XT1SLHBbeF09dyx5W3hdPWdlLnRyYW5zZm9ybShJLmJvdW5kaW5nVm9sdW1lLE4pLEErPUYvMyxSKz13fW4ucG9zaXRpb25PZmZzZXQ9QSxuLmJhdGNoSWRJbmRleD1ULG4uaW5kZXhPZmZzZXQ9UixuLmJhdGNoZWRJbmRpY2VzT2Zmc2V0Kz1yfWZ1bmN0aW9uIGZqKG4pe2xldCBlPW5ldyBGbG9hdDY0QXJyYXkobiksdD0wO3MudW5wYWNrKGUsdCxGMiksdCs9cy5wYWNrZWRMZW5ndGgsJC51bnBhY2soZSx0LEQyKX1mdW5jdGlvbiBkaihuKXtsZXQgZT1uLmxlbmd0aCx0PTA7Zm9yKGxldCBvPTA7bzxlOysrbyl0Kz1KZS5wYWNrZWRMZW5ndGgrMytuW29dLmJhdGNoSWRzLmxlbmd0aDtyZXR1cm4gdH1mdW5jdGlvbiB1aihuLGUsdCl7bGV0IG89dC5sZW5ndGgsYT0yK28qZ2UucGFja2VkTGVuZ3RoKzErZGooZSkscj1uZXcgRmxvYXQ2NEFycmF5KGEpLGk9MDtyW2krK109bixyW2krK109bztmb3IobGV0IGQ9MDtkPG87KytkKWdlLnBhY2sodFtkXSxyLGkpLGkrPWdlLnBhY2tlZExlbmd0aDtsZXQgZj1lLmxlbmd0aDtyW2krK109Zjtmb3IobGV0IGQ9MDtkPGY7KytkKXtsZXQgYz1lW2RdO0plLnBhY2soYy5jb2xvcixyLGkpLGkrPUplLnBhY2tlZExlbmd0aCxyW2krK109Yy5vZmZzZXQscltpKytdPWMuY291bnQ7bGV0IHU9Yy5iYXRjaElkcyxsPXUubGVuZ3RoO3JbaSsrXT1sO2ZvcihsZXQgaD0wO2g8bDsrK2gpcltpKytdPXVbaF19cmV0dXJuIHJ9ZnVuY3Rpb24gbGoobixlKXtsZXQgdD1fKG4uYm94ZXMpP25ldyBGbG9hdDMyQXJyYXkobi5ib3hlcyk6dm9pZCAwLG89XyhuLmJveEJhdGNoSWRzKT9uZXcgVWludDE2QXJyYXkobi5ib3hCYXRjaElkcyk6dm9pZCAwLGE9XyhuLmN5bGluZGVycyk/bmV3IEZsb2F0MzJBcnJheShuLmN5bGluZGVycyk6dm9pZCAwLHI9XyhuLmN5bGluZGVyQmF0Y2hJZHMpP25ldyBVaW50MTZBcnJheShuLmN5bGluZGVyQmF0Y2hJZHMpOnZvaWQgMCxpPV8obi5lbGxpcHNvaWRzKT9uZXcgRmxvYXQzMkFycmF5KG4uZWxsaXBzb2lkcyk6dm9pZCAwLGY9XyhuLmVsbGlwc29pZEJhdGNoSWRzKT9uZXcgVWludDE2QXJyYXkobi5lbGxpcHNvaWRCYXRjaElkcyk6dm9pZCAwLGQ9XyhuLnNwaGVyZXMpP25ldyBGbG9hdDMyQXJyYXkobi5zcGhlcmVzKTp2b2lkIDAsYz1fKG4uc3BoZXJlQmF0Y2hJZHMpP25ldyBVaW50MTZBcnJheShuLnNwaGVyZUJhdGNoSWRzKTp2b2lkIDAsdT1fKHQpP28ubGVuZ3RoOjAsbD1fKGEpP3IubGVuZ3RoOjAsaD1fKGkpP2YubGVuZ3RoOjAsbT1fKGQpP2MubGVuZ3RoOjAsYj16Zi5nZXRVbml0Qm94KCkscD1yZC5nZXRVbml0Q3lsaW5kZXIoKSx5PWlhLmdldFVuaXRFbGxpcHNvaWQoKSxFPWIuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsZz1wLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLEE9eS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxUPUUubGVuZ3RoKnU7VCs9Zy5sZW5ndGgqbCxUKz1BLmxlbmd0aCooaCttKTtsZXQgUj1iLmluZGljZXMsUz1wLmluZGljZXMsTT15LmluZGljZXMsST1SLmxlbmd0aCp1O0krPVMubGVuZ3RoKmwsSSs9TS5sZW5ndGgqKGgrbSk7bGV0IE49bmV3IEZsb2F0MzJBcnJheShUKSxQPW5ldyBVaW50MTZBcnJheShULzMpLEY9SWUuY3JlYXRlVHlwZWRBcnJheShULzMsSSksdz11K2wraCttLHg9bmV3IFVpbnQxNkFycmF5KHcpLEM9bmV3IEFycmF5KHcpLHY9bmV3IFVpbnQzMkFycmF5KHcpLGo9bmV3IFVpbnQzMkFycmF5KHcpLHo9bmV3IEFycmF5KHcpO2ZqKG4ucGFja2VkQnVmZmVyKTtsZXQgRD17YmF0Y2hUYWJsZUNvbG9yczpuZXcgVWludDMyQXJyYXkobi5iYXRjaFRhYmxlQ29sb3JzKSxwb3NpdGlvbnM6Tix2ZXJ0ZXhCYXRjaElkczpQLGluZGljZXM6RixiYXRjaElkczp4LGJhdGNoZWRJbmRpY2VzOkMsaW5kZXhPZmZzZXRzOnYsaW5kZXhDb3VudHM6aixib3VuZGluZ1ZvbHVtZXM6eixwb3NpdGlvbk9mZnNldDowLGJhdGNoSWRJbmRleDowLGluZGV4T2Zmc2V0OjAsYmF0Y2hlZEluZGljZXNPZmZzZXQ6MCxtb2RlbE1hdHJpeDpEMixjZW50ZXI6RjJ9OyRoKEQsdCxvLGIsYWopLCRoKEQsYSxyLHAscmopLCRoKEQsaSxmLHksaWopLCRoKEQsZCxjLHksY2opO2xldCBHPXVqKEYuQllURVNfUEVSX0VMRU1FTlQsQyx6KTtyZXR1cm4gZS5wdXNoKE4uYnVmZmVyLFAuYnVmZmVyLEYuYnVmZmVyKSxlLnB1c2goeC5idWZmZXIsdi5idWZmZXIsai5idWZmZXIpLGUucHVzaChHLmJ1ZmZlcikse3Bvc2l0aW9uczpOLmJ1ZmZlcix2ZXJ0ZXhCYXRjaElkczpQLmJ1ZmZlcixpbmRpY2VzOkYuYnVmZmVyLGluZGV4T2Zmc2V0czp2LmJ1ZmZlcixpbmRleENvdW50czpqLmJ1ZmZlcixiYXRjaElkczp4LmJ1ZmZlcixwYWNrZWRCdWZmZXI6Ry5idWZmZXJ9fXZhciBlbSxlaix0aixuaixvaixJYSxzaixGMixEMixoaixSXz1YKCgpPT57RXQoKTtGcCgpO01lKCk7a3MoKTtVMCgpO3NlKCk7a2goKTtadCgpO3VuKCk7djIoKTtrbigpO2VtPW5ldyBzLGVqPSQucGFja2VkTGVuZ3RoK3MucGFja2VkTGVuZ3RoLHRqPSQucGFja2VkTGVuZ3RoKzIsbmo9JC5wYWNrZWRMZW5ndGgrcy5wYWNrZWRMZW5ndGgsb2o9cy5wYWNrZWRMZW5ndGgrMSxJYT17bW9kZWxNYXRyaXg6bmV3ICQsYm91bmRpbmdWb2x1bWU6bmV3IGdlfTtzaj1uZXcgcztGMj1uZXcgcyxEMj1uZXcgJDtoaj1tdChsail9KTt2YXIgT189e307JGUoT18se2RlZmF1bHQ6KCk9Pl9qfSk7ZnVuY3Rpb24gcGoobil7bj1uZXcgRmxvYXQ2NEFycmF5KG4pO2xldCBlPTA7dG0ubWluPW5bZSsrXSx0bS5tYXg9bltlKytdLHhlLnVucGFjayhuLGUsQjIpLGUrPXhlLnBhY2tlZExlbmd0aCxLLnVucGFjayhuLGUsajIpfWZ1bmN0aW9uIGdqKG4sZSl7bGV0IHQ9bmV3IFVpbnQxNkFycmF5KG4ucG9zaXRpb25zKTtwaihuLnBhY2tlZEJ1ZmZlcik7bGV0IG89QjIsYT1qMixyPXRtLm1pbixpPXRtLm1heCxmPXQubGVuZ3RoLzMsZD10LnN1YmFycmF5KDAsZiksYz10LnN1YmFycmF5KGYsMipmKSx1PXQuc3ViYXJyYXkoMipmLDMqZik7VXQuemlnWmFnRGVsdGFEZWNvZGUoZCxjLHUpO2xldCBsPW5ldyBGbG9hdDY0QXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgaD0wO2g8ZjsrK2gpe2xldCBtPWRbaF0sYj1jW2hdLHA9dVtoXSx5PWsubGVycChvLndlc3Qsby5lYXN0LG0veF8pLEU9ay5sZXJwKG8uc291dGgsby5ub3J0aCxiL3hfKSxnPWsubGVycChyLGkscC94XyksQT1yZS5mcm9tUmFkaWFucyh5LEUsZyxtaiksVD1hLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKEEsYmopO3MucGFjayhULGwsaCozKX1yZXR1cm4gZS5wdXNoKGwuYnVmZmVyKSx7cG9zaXRpb25zOmwuYnVmZmVyfX12YXIgeF8sbWosYmosQjIsajIsdG0sX2osU189WCgoKT0+e0JyKCk7TWUoKTtndCgpO1ZlKCk7VWUoKTtobigpO2tuKCk7eF89MzI3NjcsbWo9bmV3IHJlLGJqPW5ldyBzLEIyPW5ldyB4ZSxqMj1uZXcgSyx0bT17bWluOnZvaWQgMCxtYXg6dm9pZCAwfTtfaj1tdChnail9KTt2YXIgQ189e307JGUoQ18se2RlZmF1bHQ6KCk9PkNqfSk7ZnVuY3Rpb24geWoobil7bGV0IGU9bmV3IEZsb2F0NjRBcnJheShuKSx0PTA7THMuaW5kZXhCeXRlc1BlckVsZW1lbnQ9ZVt0KytdLExzLm1pbj1lW3QrK10sTHMubWF4PWVbdCsrXSxzLnVucGFjayhlLHQsRzIpLHQrPXMucGFja2VkTGVuZ3RoLEsudW5wYWNrKGUsdCxWMiksdCs9Sy5wYWNrZWRMZW5ndGgseGUudW5wYWNrKGUsdCxIMil9ZnVuY3Rpb24gQWoobil7bGV0IGU9bi5sZW5ndGgsdD0wO2ZvcihsZXQgbz0wO288ZTsrK28pdCs9SmUucGFja2VkTGVuZ3RoKzMrbltvXS5iYXRjaElkcy5sZW5ndGg7cmV0dXJuIHR9ZnVuY3Rpb24gd2oobixlLHQpe2xldCBvPWUubGVuZ3RoLGE9MitvKm1uLnBhY2tlZExlbmd0aCsxK0FqKHQpLHI9bmV3IEZsb2F0NjRBcnJheShhKSxpPTA7cltpKytdPW4scltpKytdPW87Zm9yKGxldCBkPTA7ZDxvOysrZCltbi5wYWNrKGVbZF0scixpKSxpKz1tbi5wYWNrZWRMZW5ndGg7bGV0IGY9dC5sZW5ndGg7cltpKytdPWY7Zm9yKGxldCBkPTA7ZDxmOysrZCl7bGV0IGM9dFtkXTtKZS5wYWNrKGMuY29sb3IscixpKSxpKz1KZS5wYWNrZWRMZW5ndGgscltpKytdPWMub2Zmc2V0LHJbaSsrXT1jLmNvdW50O2xldCB1PWMuYmF0Y2hJZHMsbD11Lmxlbmd0aDtyW2krK109bDtmb3IobGV0IGg9MDtoPGw7KytoKXJbaSsrXT11W2hdfXJldHVybiByfWZ1bmN0aW9uIFNqKG4sZSl7eWoobi5wYWNrZWRCdWZmZXIpO2xldCB0O0xzLmluZGV4Qnl0ZXNQZXJFbGVtZW50PT09Mj90PW5ldyBVaW50MTZBcnJheShuLmluZGljZXMpOnQ9bmV3IFVpbnQzMkFycmF5KG4uaW5kaWNlcyk7bGV0IGE9bmV3IFVpbnQxNkFycmF5KG4ucG9zaXRpb25zKSxyPW5ldyBVaW50MzJBcnJheShuLmNvdW50cyksaT1uZXcgVWludDMyQXJyYXkobi5pbmRleENvdW50cyksZj1uZXcgVWludDMyQXJyYXkobi5iYXRjaElkcyksZD1uZXcgVWludDMyQXJyYXkobi5iYXRjaFRhYmxlQ29sb3JzKSxjPW5ldyBBcnJheShyLmxlbmd0aCksdT1HMixsPVYyLGg9SDIsbT1Mcy5taW4sYj1Mcy5tYXgscD1uLm1pbmltdW1IZWlnaHRzLHk9bi5tYXhpbXVtSGVpZ2h0cztfKHApJiZfKHkpJiYocD1uZXcgRmxvYXQzMkFycmF5KHApLHk9bmV3IEZsb2F0MzJBcnJheSh5KSk7bGV0IEUsZyxBLFQ9YS5sZW5ndGgvMixSPWEuc3ViYXJyYXkoMCxUKSxTPWEuc3ViYXJyYXkoVCwyKlQpO1V0LnppZ1phZ0RlbHRhRGVjb2RlKFIsUyk7bGV0IE09bmV3IEZsb2F0NjRBcnJheShUKjMpO2ZvcihFPTA7RTxUOysrRSl7bGV0IHRlPVJbRV0sbWU9U1tFXSx1ZT1rLmxlcnAoaC53ZXN0LGguZWFzdCx0ZS9VMiksYmU9ay5sZXJwKGguc291dGgsaC5ub3J0aCxtZS9VMiksaGU9cmUuZnJvbVJhZGlhbnModWUsYmUsMCx6MiksUT1sLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGhlLEwyKTtzLnBhY2soUSxNLEUqMyl9bGV0IEk9ci5sZW5ndGgsTj1uZXcgQXJyYXkoSSksUD1uZXcgQXJyYXkoSSksRj0wLHc9MDtmb3IoRT0wO0U8STsrK0UpTltFXT1GLFBbRV09dyxGKz1yW0VdLHcrPWlbRV07bGV0IHg9bmV3IEZsb2F0MzJBcnJheShUKjMqMiksQz1uZXcgVWludDE2QXJyYXkoVCoyKSx2PW5ldyBVaW50MzJBcnJheShQLmxlbmd0aCksaj1uZXcgVWludDMyQXJyYXkoaS5sZW5ndGgpLHo9W10sRD17fTtmb3IoRT0wO0U8STsrK0UpQT1kW0VdLF8oRFtBXSk/KERbQV0ucG9zaXRpb25MZW5ndGgrPXJbRV0sRFtBXS5pbmRleExlbmd0aCs9aVtFXSxEW0FdLmJhdGNoSWRzLnB1c2goRSkpOkRbQV09e3Bvc2l0aW9uTGVuZ3RoOnJbRV0saW5kZXhMZW5ndGg6aVtFXSxvZmZzZXQ6MCxpbmRleE9mZnNldDowLGJhdGNoSWRzOltFXX07bGV0IEcsVj0wLE89MDtmb3IoQSBpbiBEKWlmKEQuaGFzT3duUHJvcGVydHkoQSkpe0c9RFtBXSxHLm9mZnNldD1WLEcuaW5kZXhPZmZzZXQ9TztsZXQgdGU9Ry5wb3NpdGlvbkxlbmd0aCoyLG1lPUcuaW5kZXhMZW5ndGgqMitHLnBvc2l0aW9uTGVuZ3RoKjY7Vis9dGUsTys9bWUsRy5pbmRleExlbmd0aD1tZX1sZXQgWj1bXTtmb3IoQSBpbiBEKUQuaGFzT3duUHJvcGVydHkoQSkmJihHPURbQV0sWi5wdXNoKHtjb2xvcjpKZS5mcm9tUmdiYShwYXJzZUludChBKSksb2Zmc2V0OkcuaW5kZXhPZmZzZXQsY291bnQ6Ry5pbmRleExlbmd0aCxiYXRjaElkczpHLmJhdGNoSWRzfSkpO2ZvcihFPTA7RTxJOysrRSl7QT1kW0VdLEc9RFtBXTtsZXQgdGU9Ry5vZmZzZXQsbWU9dGUqMyx1ZT10ZSxiZT1OW0VdLGhlPXJbRV0sUT1mW0VdLFRlPW0sQ2U9YjtfKHApJiZfKHkpJiYoVGU9cFtFXSxDZT15W0VdKTtsZXQgV2U9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHplPU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxaZT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksS2U9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2ZvcihnPTA7ZzxoZTsrK2cpe2xldCBxZT1zLnVucGFjayhNLGJlKjMrZyozLEwyKTtsLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UocWUscWUpO2xldCBhdD1sLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHFlLHoyKSx4dD1hdC5sYXRpdHVkZSxUdD1hdC5sb25naXR1ZGU7V2U9TWF0aC5taW4oeHQsV2UpLHplPU1hdGgubWF4KHh0LHplKSxaZT1NYXRoLm1pbihUdCxaZSksS2U9TWF0aC5tYXgoVHQsS2UpO2xldCBjdD1sLmdlb2RldGljU3VyZmFjZU5vcm1hbChxZSxUaiksenQ9cy5tdWx0aXBseUJ5U2NhbGFyKGN0LFRlLEVqKSxPdD1zLmFkZChxZSx6dCxSaik7enQ9cy5tdWx0aXBseUJ5U2NhbGFyKGN0LENlLHp0KTtsZXQga3Q9cy5hZGQocWUsenQseGopO3Muc3VidHJhY3Qoa3QsdSxrdCkscy5zdWJ0cmFjdChPdCx1LE90KSxzLnBhY2soa3QseCxtZSkscy5wYWNrKE90LHgsbWUrMyksQ1t1ZV09USxDW3VlKzFdPVEsbWUrPTYsdWUrPTJ9aD1PaixoLndlc3Q9WmUsaC5lYXN0PUtlLGguc291dGg9V2UsaC5ub3J0aD16ZSxjW0VdPW1uLmZyb21SZWN0YW5nbGUoaCxtLGIsbCk7bGV0IERlPUcuaW5kZXhPZmZzZXQsQmU9UFtFXSxldD1pW0VdO2Zvcih2W0VdPURlLGc9MDtnPGV0O2crPTMpe2xldCBxZT10W0JlK2ddLWJlLGF0PXRbQmUrZysxXS1iZSx4dD10W0JlK2crMl0tYmU7eltEZSsrXT1xZSoyK3RlLHpbRGUrK109YXQqMit0ZSx6W0RlKytdPXh0KjIrdGUseltEZSsrXT14dCoyKzErdGUseltEZSsrXT1hdCoyKzErdGUseltEZSsrXT1xZSoyKzErdGV9Zm9yKGc9MDtnPGhlOysrZyl7bGV0IHFlPWcsYXQ9KGcrMSklaGU7eltEZSsrXT1xZSoyKzErdGUseltEZSsrXT1hdCoyK3RlLHpbRGUrK109cWUqMit0ZSx6W0RlKytdPXFlKjIrMSt0ZSx6W0RlKytdPWF0KjIrMSt0ZSx6W0RlKytdPWF0KjIrdGV9Ry5vZmZzZXQrPWhlKjIsRy5pbmRleE9mZnNldD1EZSxqW0VdPURlLXZbRV19ej1JZS5jcmVhdGVUeXBlZEFycmF5KHgubGVuZ3RoLzMseik7bGV0IGFlPVoubGVuZ3RoO2ZvcihsZXQgdGU9MDt0ZTxhZTsrK3RlKXtsZXQgbWU9Wlt0ZV0uYmF0Y2hJZHMsdWU9MCxiZT1tZS5sZW5ndGg7Zm9yKGxldCBoZT0wO2hlPGJlOysraGUpdWUrPWpbbWVbaGVdXTtaW3RlXS5jb3VudD11ZX1sZXQgY2U9ei5CWVRFU19QRVJfRUxFTUVOVD09PTI/SWUuVU5TSUdORURfU0hPUlQ6SWUuVU5TSUdORURfSU5ULGZlPXdqKGNlLGMsWik7cmV0dXJuIGUucHVzaCh4LmJ1ZmZlcix6LmJ1ZmZlcix2LmJ1ZmZlcixqLmJ1ZmZlcixDLmJ1ZmZlcixmZS5idWZmZXIpLHtwb3NpdGlvbnM6eC5idWZmZXIsaW5kaWNlczp6LmJ1ZmZlcixpbmRleE9mZnNldHM6di5idWZmZXIsaW5kZXhDb3VudHM6ai5idWZmZXIsYmF0Y2hJZHM6Qy5idWZmZXIscGFja2VkQnVmZmVyOmZlLmJ1ZmZlcn19dmFyIEcyLFYyLEgyLExzLFUyLEwyLFRqLEVqLFJqLHhqLHoyLE9qLENqLE1fPVgoKCk9PntCcigpO01lKCk7Z3QoKTtrcygpO3NlKCk7VmUoKTtadCgpO1VlKCk7QWkoKTtobigpO2tuKCk7RzI9bmV3IHMsVjI9bmV3IEssSDI9bmV3IHhlLExzPXttaW46dm9pZCAwLG1heDp2b2lkIDAsaW5kZXhCeXRlc1BlckVsZW1lbnQ6dm9pZCAwfTtVMj0zMjc2NyxMMj1uZXcgcyxUaj1uZXcgcyxFaj1uZXcgcyxSaj1uZXcgcyx4aj1uZXcgcyx6Mj1uZXcgcmUsT2o9bmV3IHhlO0NqPW10KFNqKX0pO2Z1bmN0aW9uIElqKG4sZSx0LG8sYSl7bGV0IHI9bi5sZW5ndGgvMyxpPW4uc3ViYXJyYXkoMCxyKSxmPW4uc3ViYXJyYXkociwyKnIpLGQ9bi5zdWJhcnJheSgyKnIsMypyKTtVdC56aWdaYWdEZWx0YURlY29kZShpLGYsZCk7bGV0IGM9bmV3IEZsb2F0NjRBcnJheShuLmxlbmd0aCk7Zm9yKGxldCB1PTA7dTxyOysrdSl7bGV0IGw9aVt1XSxoPWZbdV0sbT1kW3VdLGI9ay5sZXJwKGUud2VzdCxlLmVhc3QsbC9OXykscD1rLmxlcnAoZS5zb3V0aCxlLm5vcnRoLGgvTl8pLHk9ay5sZXJwKHQsbyxtL05fKSxFPXJlLmZyb21SYWRpYW5zKGIscCx5LE1qKSxnPWEuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oRSxOaik7cy5wYWNrKGcsYyx1KjMpfXJldHVybiBjfXZhciBOXyxNaixOaixLMixxMj1YKCgpPT57QnIoKTtNZSgpO2d0KCk7VWUoKTtOXz0zMjc2NyxNaj1uZXcgcmUsTmo9bmV3IHM7SzI9SWp9KTt2YXIgSV89e307JGUoSV8se2RlZmF1bHQ6KCk9PkRqfSk7ZnVuY3Rpb24gUGoobil7bj1uZXcgRmxvYXQ2NEFycmF5KG4pO2xldCBlPTA7bm0ubWluPW5bZSsrXSxubS5tYXg9bltlKytdLHhlLnVucGFjayhuLGUsWjIpLGUrPXhlLnBhY2tlZExlbmd0aCxLLnVucGFjayhuLGUsUTIpLGUrPUsucGFja2VkTGVuZ3RoLHMudW5wYWNrKG4sZSwkMil9ZnVuY3Rpb24ga2oobil7bGV0IGU9bi5sZW5ndGgsdD1uZXcgVWludDMyQXJyYXkoZSsxKSxvPTA7Zm9yKGxldCBhPTA7YTxlOysrYSl0W2FdPW8sbys9blthXTtyZXR1cm4gdFtlXT1vLHR9ZnVuY3Rpb24gRmoobixlKXtsZXQgdD1uZXcgVWludDE2QXJyYXkobi5wb3NpdGlvbnMpLG89bmV3IFVpbnQxNkFycmF5KG4ud2lkdGhzKSxhPW5ldyBVaW50MzJBcnJheShuLmNvdW50cykscj1uZXcgVWludDE2QXJyYXkobi5iYXRjaElkcyk7UGoobi5wYWNrZWRCdWZmZXIpO2xldCBpPVoyLGY9UTIsZD0kMixjPW5tLm1pbix1PW5tLm1heCxsPUsyKHQsaSxjLHUsZiksaD1sLmxlbmd0aC8zLG09aCo0LTQsYj1uZXcgRmxvYXQzMkFycmF5KG0qMykscD1uZXcgRmxvYXQzMkFycmF5KG0qMykseT1uZXcgRmxvYXQzMkFycmF5KG0qMyksRT1uZXcgRmxvYXQzMkFycmF5KG0qMiksZz1uZXcgVWludDE2QXJyYXkobSksQT0wLFQ9MCxSPTAsUyxNPTAsST1hLmxlbmd0aDtmb3IoUz0wO1M8STsrK1Mpe2xldCB4PWFbU10sQz1vW1NdLHY9cltTXTtmb3IobGV0IGo9MDtqPHg7KytqKXtsZXQgejtpZihqPT09MCl7bGV0IFo9cy51bnBhY2sobCxNKjMsVzIpLGFlPXMudW5wYWNrKGwsKE0rMSkqMyxYMik7ej1zLnN1YnRyYWN0KFosYWUsWTIpLHMuYWRkKFoseix6KX1lbHNlIHo9cy51bnBhY2sobCwoTStqLTEpKjMsWTIpO2xldCBEPXMudW5wYWNrKGwsKE0raikqMyx2aiksRztpZihqPT09eC0xKXtsZXQgWj1zLnVucGFjayhsLChNK3gtMSkqMyxXMiksYWU9cy51bnBhY2sobCwoTSt4LTIpKjMsWDIpO0c9cy5zdWJ0cmFjdChaLGFlLEoyKSxzLmFkZChaLEcsRyl9ZWxzZSBHPXMudW5wYWNrKGwsKE0raisxKSozLEoyKTtzLnN1YnRyYWN0KHosZCx6KSxzLnN1YnRyYWN0KEQsZCxEKSxzLnN1YnRyYWN0KEcsZCxHKTtsZXQgVj1qPT09MD8yOjAsTz1qPT09eC0xPzI6NDtmb3IobGV0IFo9VjtaPE87KytaKXtzLnBhY2soRCxiLEEpLHMucGFjayh6LHAsQSkscy5wYWNrKEcseSxBKSxBKz0zO2xldCBhZT1aLTI8MD8tMToxO0VbVCsrXT0yKihaJTIpLTEsRVtUKytdPWFlKkMsZ1tSKytdPXZ9fU0rPXh9bGV0IE49SWUuY3JlYXRlVHlwZWRBcnJheShtLGgqNi02KSxQPTAsRj0wO2ZvcihJPWgtMSxTPTA7UzxJOysrUylOW0YrK109UCxOW0YrK109UCsyLE5bRisrXT1QKzEsTltGKytdPVArMSxOW0YrK109UCsyLE5bRisrXT1QKzMsUCs9NDtlLnB1c2goYi5idWZmZXIscC5idWZmZXIseS5idWZmZXIpLGUucHVzaChFLmJ1ZmZlcixnLmJ1ZmZlcixOLmJ1ZmZlcik7bGV0IHc9e2luZGV4RGF0YXR5cGU6Ti5CWVRFU19QRVJfRUxFTUVOVD09PTI/SWUuVU5TSUdORURfU0hPUlQ6SWUuVU5TSUdORURfSU5ULGN1cnJlbnRQb3NpdGlvbnM6Yi5idWZmZXIscHJldmlvdXNQb3NpdGlvbnM6cC5idWZmZXIsbmV4dFBvc2l0aW9uczp5LmJ1ZmZlcixleHBhbmRBbmRXaWR0aDpFLmJ1ZmZlcixiYXRjaElkczpnLmJ1ZmZlcixpbmRpY2VzOk4uYnVmZmVyfTtpZihuLmtlZXBEZWNvZGVkUG9zaXRpb25zKXtsZXQgeD1raihhKTtlLnB1c2gobC5idWZmZXIseC5idWZmZXIpLHc9X2Eodyx7ZGVjb2RlZFBvc2l0aW9uczpsLmJ1ZmZlcixkZWNvZGVkUG9zaXRpb25PZmZzZXRzOnguYnVmZmVyfSl9cmV0dXJuIHd9dmFyIFoyLFEyLCQyLG5tLFcyLFgyLFkyLHZqLEoyLERqLFBfPVgoKCk9PntNZSgpO2dsKCk7cTIoKTtWZSgpO1p0KCk7aG4oKTtrbigpO1oyPW5ldyB4ZSxRMj1uZXcgSywkMj1uZXcgcyxubT17bWluOnZvaWQgMCxtYXg6dm9pZCAwfTtXMj1uZXcgcyxYMj1uZXcgcyxZMj1uZXcgcyx2aj1uZXcgcyxKMj1uZXcgcztEaj1tdChGail9KTt2YXIgSXNlLGV4PVgoKCk9PntJc2U9KGZ1bmN0aW9uKCl7dmFyIG49ImI5SDc5VGViYmJlOW9rOUdldWV1OUdldWI5R2JiOUdydXV1dXV1dWV1OUd2dXV1dXVldTlHZHV1ZXU5R2x1dXV1ZXU5R3Z1dXV1dWI5R291dXV1dXViOUdsdXV1dWI5R2l1dXVldWlFOEFkaWx2ZW92ZW92cnJ3cnJyRERvRHJicXFiZWx2ZTlXZWlpdmllYmVvd2V1ZWNqOkdka3I6UGxDbzlUVzlUOVZWOTVkYkg5RjlGOTM5SDc5VDlGOUo5SDIyOUY5SnQ5VlY3YmI4RjlUVzc5TzlWOVd0OUZXOVU5SjlWOUtXOXdXVnRXOTQ5YzkxOU05TVdWOW1XNFcyYmU4QTlUVzc5TzlWOVd0OUZXOVU5SjlWOUtXOXdXVnRXOTQ5YzkxOU05TVdWYmQ4RjlUVzc5TzlWOVd0OUZXOVU5SjlWOUtXOXdXVnRXOTQ5YzkxOU05TVdWOWM5VjkxOVU5S2JpRTlUVzc5TzlWOVd0OUZXOVU5SjlWOUtXOXdXVnRXOTQ5d1dWNzlQOVY5VWJsWTlUVzc5TzlWOVd0OUZXOVU5SjlWOUtXNjlVOUtXOTQ5YzkxOU05TVdWYnY4RTlUVzc5TzlWOVd0OUZXOVU5SjlWOUtXNjlVOUtXOTQ5YzkxOU05TVdWOWM5VjkxOVU5S2JvOEE5VFc3OU85VjlXdDlGVzlVOUo5VjlLVzY5VTlLVzk0OXdXVjc5UDlWOVVickU5VFc3OU85VjlXdDlGVzlVOUo5VjlLVzY5VTlLVzk0OXRXRzkxVzlVOUpXYndhOVRXNzlPOVY5V3Q5Rlc5VTlKOVY5S1c2OVU5S1c5NDl0V0c5MVc5VTlKVzljOVY5MTlVOUtiREw5VFc3OU85VjlXdDlGVzlVOUo5VjlLV1M5UDJ0V1Y5cDlKdGJxSzlUVzc5TzlWOVd0OUZXOVU5SjlWOUtXUzlQMnRXVjlyOTE5SHRia0w5VFc3OU85VjlXdDlGVzlVOUo5VjlLV1M5UDJ0V1ZUOTQ5V2J4WTlUVzc5TzlWOVd0OUZXOVU5SjlWOUtXUzlQMnRXVko5VjI5VlZibUU5VFc3OU85VjlXdDlGOVY5V3Q5UDlUOVA5Nlc5d1dWdFc5NEo5SDlKOU9XYnphOVRXNzlPOVY5V3Q5RjlWOVd0OVA5VDlQOTZXOXdXVnRXOTRKOUg5SjlPVzl0dFY5UDlXYkhhOVRXNzlPOVY5V3Q5RjlWOVd0OVA5VDlQOTZXOXdXVnRXOTRTV3Q5SjlPOXNXOVQ5SDlXYk9LOVRXNzlPOVY5V3Q5Rjc5VzlIdDlQOUgyOXQ5VlZ0OXNXOVQ5SDlXYkFsNzlJVjlSYlhEd2ViY2VrZEtZcTp6ZjhBZGJrO3dhZGh1ZDk6OEpqampqYmM7cXc5UmdyOEtqampqYmNiaHdkbmFlVG1iYWJjYnlkO2k6STpjamJhb2FvY2I5aUVnRGM6R2VWODZiYmFyYzthZGZjYmNqZHo6eGpqamI4QWRuYWlUbWJhcmM7YWRmYWRhbHo6d2pqamI4QWthcmM7YWJmYWxmY2JjYmNqZGFsOVJhbGNGZTBFejp4ampqYjhBYXJjO2FiZmFyYzthZGZhbHo6d2pqamI4QWFyOWNiODNpVWFyOWNiODNpOFdhcjljYjgzaXlhcjljYjgzaWFhcjljYjgzaUthcjljYjgzaXphcjljYjgzaXdhcjljYjgzaWJjajthYmFsOVVjO1dGYkdjamRhbGNhMEVocWRuYWljZDZtYmF2Y2Q5aW1iYURUbWJhZGNlZmhrYXFjaTJneGFsMmhtYXJjO2FsZmNsZmhQYXJjO3FsZmNlVmhzYXJjO3FvZmNsVmh6Y2JoSGluY2RoT2NiaEFkbmF2Y2k2bWJhcjljYjgzaTtPb2FyOWNiODNpO0dvYXI5Y2I4M2k7eW9hcjljYjgzaTtxb2FkYUhmZ295YmJoQ2NiaFhpbmNiaHdjYmhRZG5pbmFvYWxmaExhb3liYmdLYUM3YVFWaFFhd2NQMG1lYUxob2FLaENhd2NlZmd3YVhmYWk2bWJra2NiaENhcmM7cW9maHdpbmN3aFljd2g4QWRuYVFhQzkzZ29jRmVHZ0VjczBtYmNsaDhBYUVjaTBtYmNkY2JhRUVoOEFrZG5hb2N3NGNGZUdnRWNzMG1iY2xoWWFFY2kwbWJjZGNiYUVFaFlrYVlhOEFmaEVhd3lkYmgzY3doWWN3aDhBZG5hb2N6NGNGZUdnNWNzMG1iY2xoOEFhNWNpMG1iY2RjYmE1RWg4QWthRWEzZmhFZG5hb2NGRkZGYjBtYmNsaFlhb2NGRkY4RjBtYmNiY2Rhb2Nqamp3NkVoWWthd2FFYThBZmFZZkJkYmF3Y2xmaHdhQ2NlZmdDY3c5aG1ia2FMaG9hS2hDYVhjemZnWGFpNm1ia2NiaG9jZWh3YXpoUWluYXdhb2FReWRiYXJjO3FvZmFvY2R0ZnlkYjZFaG9hUWNsZmhRYXdjZWZnd2N3OWhtYmthb2NsdGhBY2loT2tjYmhFYXJjO3FsZmNiY2pkejp4ampqYjhBYXJjYkJkO2lsYXI5Y2I4M2k7YWxhZGg4RWFxaDhGYWtoM2luYXJjO3FsZmFkYUVhRWNiOWg5UmFsMmZhbHo6d2pqamI4QWFpYThGYWlhOEY2RWhhZG5hcWFpYUU5UmFFYXFmYWk2RWdLY3NmYzlXR2dvYUs5bm1iYXJjO3FvZmFLZmNiYW9hSzlSejp4ampqYjhBa2FkYUVhbDJmaGhjYmhnaW5hZ2FBVmNsNGhYYXJjO2FsZmFnY2R0Zmg4SmFIaDhLY2JoOExpbmE4TGFIZmh3ZG5kbmRuZG5kbmRuZG5hZ1BsYmVkaWJrYUtUbXZhaGF3ZmhvYXJjO3FsZmF3ZlJiYmhRYXJjO3FvZmh3YWFoQ2luYXdhb1JiYmdZYVE5UmdRY2V0YVFjS3RjOEY5MTc4NmJiYXdjZWZod2FvYWxmaG9hWWhRYUVhQ2N1ZmdDOWhtYnh2a2thS1RtbGE4S2M5Okdob2E4TGNpdGN3R2g4QWFyYztxbGZhd2NlVmZSYmJjd3RhcmM7cWxmYXdjOTpHZlJiYlZoUWFyYztxb2Zod2FhaENpbmF3YTNhb2ZSYmJjd3RhOEVhb2ZSYmJWZ1lhUTlSZ1FjZXRhUWN6dGM4RjkxN2NGRmlHYThBNDg2YmJhb2FsZmhvYXdjZWZod2FZaFFhRWFDY3VmZ0M5aG1ieGxra2FzYThLYzk4R2dRZmhvYTNhUWZoWWFyYztxbGZhd2M5OEdnUWZSYmJoQ2N3aHdpbmFvUmJiYXd0YUNWaENhb2NlZmhvYXdjd2Znd2NhOWhtYnhka2thS1RtZHhla2FLVG1lYThMY2l0aDVhaGFRZmg4QWNiaExpbmE4QVJiYmhRY3dob2FZaHdpbmF3UmJiYW90YVFWaFFhd2NlZmh3YW9jd2Znb2NhOWhtYmthcmM7cW9mYUxmYVFhQzdhWDkzYTU0ODZiYmFZYWxmaFlhOEFhbGZoOEFhUWhDYUxjZWZnTGFLOWhtYmtrYThKeWRiaDhBY2JoTGFyYztxb2Zob2luY2RoUWNiaHdpbmFRYW9hd2ZSYmJjYjloZmhRYXdjZWZnd2N6OWhtYmtjbGhDY2Jod2luYUNhb2F3ZlJiYmNkMGZoQ2F3Y2VmZ3djejlobWJrY3doWWNiaHdpbmFZYW9hd2ZSYmJjUDBmaFlhd2NlZmd3Y3o5aG1ia2FRYUNhUWFDNkVnd2FZYXdhWTZFZ3djemF3Y3o2RWE4QWZoOEFhb2N6ZmhvYUxjemZnTGFLNm1ia2E4SmE4QUJkYmthOEtjZWZoOEthOExjZWZnOExjbDlobWJrYWdjZWZnZ2FPOWhtYmthOEVhbWZoOEVhOEZheGZoOEZhM2FtZmgzYUVheGZnRWFpNm1ia2NiaG9jZWh3YVBoUWluYXdhb2FReWRiYXJjO2FsZmFvY2R0ZnlkYjZFaG9hUWNsZmhRYU9hd2NlZmd3OWhtYmthcmFIY2Q0ZmFBY2RWYW9hb2NkU0U4NmJiYUhjbGZnSGFsNm1ia2thYmFlZmhnYWJjZWZob2FsY2Q0ZzhNY2JhREVoa2FkY2VmaDhOYXJjO2FiZmNlVmhlY2JobWRuZG5pbmFpYW05bm1lYXJjO3FvZmNiY2pkejp4ampqYjhBYWdhbzlSYWs2bWRhZGFtYWwyZ3dmaHhjYmhIYThOYXdmaHphb2NiYWt6OnhqampiZzhGYWtmaDNhcWFpYW05UmFtYXFmYWk2RWdzY3NmZ29jbDRjaWZjZDRoT2FvYzlXR2c4SlRoUGluZG5kbmRuZG5kbmRuZG5kbmRuZG5hRFRtYmFyYUhjZDRmUmJiZ1FjaUdQbGJlZGxia2FzVG1kYXhhSGZob2FyYzthYmZhSGZSYmJoUWFyYztxb2Zod2FzaENpbmF3YW9SYmJnWWFROVJnUWNldGFRY0t0YzhGOTE3ODZiYmF3Y2VmaHdhb2FsZmhvYVloUWFDY3VmZ0NtYnhpa2thc1RtaWFIY2l0Y3dHaDhBYXJjO2FiZmFIY2VWZlJiYmN3dGFyYzthYmZhSGM5Okdnb2ZSYmJWaFFheGFvZmhvYXJjO3FvZmh3YXNoQ2luYXdhbzhWYmJnWWFROVJnUWNldGFRY3p0YzhGOTE3Y0ZGaUdhOEE0ODZiYmF3Y2VmaHdhb2FsZmhvYVloUWFDY3VmZ0NtYnhpa2thZWFIYzk4R2c4QWZob2F6YThBZmhZYXJjO2FiZmE4QWZSYmJoQ2N3aHdpbmFvUmJiYXd0YUNWaENhb2NlZmhvYXdjd2Znd2NhOWhtYmthc1RtZGFRY2w0aEthSGNpdGNLR2hFYXhhOEFmaDhBY2JoTGluYThBUmJiaFFjd2hvYVlod2luYXdSYmJhb3RhUVZoUWF3Y2VmaHdhb2N3ZmdvY2E5aG1ia2FyYztxb2ZhTGZhUWFDN2FLOTNhRTQ4NmJiYVlhbGZoWWE4QWFsZmg4QWFRaENhTGNlZmdMYXM5aG1ia2thRG1iY2Job3hsa2E4SlRtYmNiaG9kbmluYXJjO3FvZmFvZmd3Y3dmOFBpYmF3OFBpYjplOXFUbWVhb2N6ZmdvYThKOXBtZHhia2tkbmF2bWJjZWhveGlrY2JoOEFhT2hMYU9oS2luYXJjO3FvZmE4QWZnb2N3ZjhQaWJoeWFvOFBpYmg4UGNkaFFjYmh3aW5hUWFvYXdmUmJiY2I5aGZoUWF3Y2VmZ3djejlobWJrY2xoQ2NiaHdpbmFDYW9hd2ZSYmJjZDBmaENhd2NlZmd3Y3o5aG1ia2N3aFljYmh3aW5hWWFvYXdmUmJiY1AwZmhZYXdjZWZnd2N6OWhtYmthUWFDYVFhQzZFZ29hWWFvYVk2RWdvY3phb2N6NkVhS2ZoS2FvY3VjYmF5YThQOmU5Y2I5c0Vnd2FvYXc2RWFMZmhMYThBY3pmZzhBYThKOXBtZHhia2thOEZhSGNkNGZnb2FvUmJiY2RhSGNldGNvR3RWODZiYnhpa2RuYUxhczZtYmFLYXM2bWJhOEZhSGNkNGZnb2FvUmJiY2lhSGNldGNvR3RWODZiYmFnYTM5UmFzNm1yYTNhcmM7cW9mYXN6OndqampiYXNmaDN4aWthTGFLOXBob2thOEZhSGNkNGZnd2F3UmJiYW9hSGNldGNvR3RWODZiYmthZ2EzOVJhTzZtbGEzY2JhT3o6eGpqamJnYWFPZmhLZG5kbmE4Sm1iYVBob3hla2RuYWdhSzlSY0s5cG1iYVBob3hla2FvY2R0YzpxOkc6Y2piZmNqOkc6Y2piYURFZzN5ZHhnaGNldGM7OkZGRmVHaEFjdWhFY3VhaHRjdTdjRmVHaDhFY2JoOEthcmM7cW9maFFpbmFyYztxb2ZhOEtmaFhjemg4QWRuZG5kbmFoUERiZWVlZWVlZWRla2N1Y2JhWGN3ZjhQaWJhWDhQaWI6ZTljYjlzRWg4QXhla2NiaG9hQWg4QWluYThBYThFYVFhb2ZSYmI5bmZoOEFhb2NlZmdvY3o5aG1ia2tjaWg1Y2JoWWluY3pod2RuZG5kbmEzYVljZHRmeWRiZ0xQRGJlZWVlZWVlZGVrY3VjYmFYY3dmOFBpYmFYOFBpYjplOWNiOXNFaHd4ZWthTGNldGM7OkZGRmVHaHdjdWFMdGN1N2NGZUdoQ2NiaG9pbmF3YUNhUWFvZlJiYjluZmh3YW9jZWZnb2N6OWhtYmtrZG5kbmF3YThBNm1iYUxhRTlobWVhd2E4QTlobWVhM2E1Y2R0ZnlkYmN3U21la2FZaDVhd2g4QWthWWNlZmdZY2k5aG1ia2FhYThLY280ZmdvYW9SYmJhNWE4S2NpNGNvR3RWODZiYmRuZG5kbmEzYTVjZHRmeWRiZ0VQRGRiYmJiYmJiZWJrZG5jd2FFOVRnNVRtYmN1YUV0Y3U3aHdkbmRuYUVjZVNtYmNiaDhMYVFoWGluYVhob2E1aFljYmhDaW5hb1JiYmc4QWF3Y0ZlR2dMYThBYUw2RWFDYUV0VmhDYW9jZWZob2FZY3VmZ1ltYmthS2FDODZiYmFYYTVmaFhhS2NlZmhLYThMYTVmZzhMY3o2bWJ4ZGtrY2JoOExhUWhYaW5hWGhvYTVoWWNiaENpbmFvUmJiZzhBYXdjRmVHZ0xhOEFhTDZFYUNjZXRWaENhb2NlZmhvYVljdWZnWW1ia2FLYUM6VDljRmU6ZDljOmM6cWo6Ync5OjljOnE7YzE6STFlOmQ5YzpiOmM6ZTF6OTo5Y2ExODhiYmFYYTVmaFhhS2NlZmhLYThMYTVmZzhMY3o2bWJra2NiaG9pbmFLYVFhb2ZSYmJnQzg2YmJhS2FDYXdjRmVHOXBmaEthb2NlZmdvY3o5aG1ieGlra2RuYUVjZVNtYmluYUtjYjg2YmJhS2NlZmhLeGJra2luYUtjYjg2YmJhS2NlZmhLeGJra2FLYVg4UGJ3ODNid2FLYVg4UGJiODNiYmFLY3pmaEtrYThLY3pmZzhLYThKOXBnb21lYVFjemZoUWFnYUs5UmNLOXBtYmtrYW9UbWxhS2gzYUtUbWxrYUhjZWZnSGFsOWhtYmthcmM7YWJmYXhhc2N1ZmFsMmZhbHo6d2pqamI4QWFzYW1maG1hM2hvYTNtYmtjYmh3eGRrZG5hZ2FvOVJha2FsZmd3Y0tjYWFERWdRYXdhUTBFZ0M5cG1iY2Jod3hka2RuYXdhUTlwbWJhb2NiYUNhdzlSZ3d6OnhqampiYXdmaG9rYW9hcmM7YWRmYWx6OndqampiYWxmaG9kbmFEVG1iYW9hcmE4TXo6d2pqamJhOE1maG9rYW9hYjlSaHd4ZWtjYmh3a2FyYztxd2Y4S2pqampiYXdrNWJhYmFlYWRhaWFsY2RjYnlkO2k6STpjamJ6OmJqampiazlyZWR1YWVjZDRnZGFlZmdpY2FhaWNhMEVhYmNqO2FiYWU5VWM7V0ZiR2NqZGFlY2EwRWdpZmN1ZmFpOVVhZTJhaWFkZmFpY2w0Y2lmY2Q0ZjJmY2Vma21iY2JhYkJkO2k6STpjamJrO0hQZUx1OEpqampqYmM7YWU5UmdsOEtqampqYmNiaHZkbmFlYWljaTlVZ29jSGY2bWJhYmNieWQ7bTpJOmNqYmdyYztHZVY4NmJiYWxjO2FiZmNGZWNqZXo6eGpqamI4QWFsOWN1ODNpVWFsOWN1ODNpOFdhbDljdTgzaXlhbDljdTgzaWFhbDljdTgzaUthbDljdTgzaXphbDljdTgzaXdhbDljdTgzaWJhYmFlZmM5V2Zod2FiY2VmZ0Rhb2ZoZWRuYWlUbWJjbWNzYXJjYjlrZ3FFaGtjYmh4Y2JobWNiaFBjYmhzY2JoemluZG5hZWF3OW5tYmNiaHZ4aWthemN1Zmh2YWRhUGNkdGZnSHlkYmhPYUhjd2Z5ZGJoQWFIY2xmeWRiaENjYmhYZG5kbmRuaW5hbGM7YWJmYXZjc0djaXRmZ295ZGxoUWRuZG5kbmFveWRiZ29hTzlobWJhUWFDU21la2RuYW9hQzlobWJhUWFBOWhtYmFYY2VmaFh4ZWthb2FBOWhtZWFRYU85aG1lYVhjZGZoWGthWGM4NzBtZGFzY3VmaHZhSGFYY2R0Z0FjeEdnb3lkOjQ6RzpjamJjZHRmeWRiaFFhSGFveWQ6MDpHOmNqYmNkdGZ5ZGJoQ2FIYW95ZDpXOkc6Y2piY2R0ZnlkYmhPY2Job2RuaW5kbmFsYXZjc0djZHRmeWRiYVE5aG1iYW9oWHhka2N1aFhhdmN1Zmh2YW9jZWZnb2N6OWhtYmtrYXhhUWF4U2d2YVhjZTlpYVhhazlvVmdvR2ZoeGRuZG5kbmNiY3NhdkVhWGFvRWd2Y3M5aG1iYXJjZTlpbWJhUWFRYW1hUWNlZmFtU2d2RWdtY2VmU21lY21jc2F2RWh2a2FEYXZhQWM7V2VHVjg2YmJhdmNzOWhtZWFRYW05Umd2Y2V0YXZjOEY5MTdodmluYWVjYmNqZWF2Y2plNkVhdmNGYkdWODZiYmFlY2VmaGVhdmNyNGd2bWJrYVFobXh2a2NQaHZhRGFBY1BWODZiYmFRaG1rYXZUbWlhdmFrOW9taWNkaG9jZWhYYXpoQXhsa2F2Y3VmaHZhWGNsZmdYYzthYjlobWJra2RuYUhjZWNkY2JhQWF4U0VhQ2F4U0VjZHRndnlkOlc6RzpjamJjZHRmeWRiZ09UYUhhdnlkOjA6RzpjamJjZHRmeWRiZ0NjZVNHYUhhdnlkOjQ6RzpjamJjZHRmeWRiZ1FjZFNHYXhjYjloR2FxR2dMY2U5aG1iYWw5Y3U4M2lVYWw5Y3U4M2k4V2FsOWN1ODNpeWFsOWN1ODNpYWFsOWN1ODNpS2FsOWN1ODNpemFsOWN1ODNpd2FsOWN1ODNpYmNiaHhrY2JoWGFzY3VmZ3Zob2RuaW5kbmFsYW9jc0djZHRmeWRiYUM5aG1iYVhoQXhka2N1aEFhb2N1ZmhvYVhjZWZnWGN6OWhtYmtrY2Job2RuaW5kbmFsYXZjc0djZHRmeWRiYVE5aG1iYW9oWHhka2N1aFhhdmN1Zmh2YW9jZWZnb2N6OWhtYmtrYXhhT2F4U2dLZmhIZG5kbmFBY20wbWJhQWNlZmhBeGVrY2Jjc2FDYUhTZ3ZFaEFhSGF2ZmhIa2RuZG5hWGNtMG1iYVhjZWZoWHhla2NiY3NhUWFIU2d2RWhYYUhhdmZoSGtjOTpjdWFLRWhZY2JodmFYYUFjbHRWZzhBY0ZlR2hvZG5kbmRuaW5hdmM7cTpHOmNqYmZSYmJhb1NtZWF2Y2VmZ3ZjejlobWJ4ZGtrYUxhT2F4OWhhdmNtMFZWbWJhRGF2YztXZVY4NmJieGVrYURhWTg2YmJhZWE4QTg2YmJhZWNlZmhla2RuYUttYmFPYW05Umd2Y2V0YXZjOEY5MTdodmluYWVjYmNqZWF2Y2plNkVhdmNGYkdWODZiYmFlY2VmaGVhdmNyNGd2bWJrYU9obWtkbmFBY3M5aG1iYUNhbTlSZ3ZjZXRhdmM4RjkxN2h2aW5hZWNiY2plYXZjamU2RWF2Y0ZiR1Y4NmJiYWVjZWZoZWF2Y3I0Z3ZtYmthQ2hta2RuYVhjczlobWJhUWFtOVJndmNldGF2YzhGOTE3aHZpbmFlY2JjamVhdmNqZTZFYXZjRmJHVjg2YmJhZWNlZmhlYXZjcjRndm1ia2FRaG1rYWxhc2NkdGZhT0JkYmFzY2VmY3NHaHZkbmRuYUFQemJlZWVlZWVlZWVlZWVlZWJla2FsYXZjZHRmYUNCZGJhc2NkZmNzR2h2a2RuZG5hWFB6YmVlZWVlZWVlZWVlZWVlYmVrYWxhdmNkdGZhUUJkYmF2Y2VmY3NHaHZrY2lob2FsYzthYmZhemNpdGZnWGFPQmRsYVhhQ0JkYmF6Y2VmY3NHaEFjZGhYYXZoc2FIaHh4ZWtjZGhvYWxhc2NkdGZhUUJkYmNlaFhhc2NlZmNzR2hzYXpoQWthbGM7YWJmYUFjaXRmZ3ZhQ0JkbGF2YVFCZGJhbGM7YWJmYXphWGZjc0djaXRmZ3ZhUUJkbGF2YU9CZGJhRGNlZmhEYXphb2Zjc0doemFQY2lmZ1BhaTZtYmtrZG5hZWF3OW5tYmNiaHZ4ZWtjYmh2aW5hZWF2ZmF2YztxOkc6Y2piZlJiYjg2YmJhdmNlZmd2Y3o5aG1ia2FlYWI5UmF2Zmh2a2FsYzthZWY4S2pqampiYXZrWmVldWNiaGRkbmluYWRjZWZnZGM4RjBtZWFlY2VhZHQwbWJra2FkY3JmY0ZlR2NyOVVjaTJjZGZhYmNpOVUyY0hma21iY2JhYkJkO206STpjamJrOnpkZXJ1OEpqampqYmN6OVJobGNiaHZkbmFlYWljdmY2bWJhYmNiUmI7bTpJOmNqYmM7cWVWODZiYmFsOWNiODNpd2FiY2VmaHZhYmFlZmM5OGZob2RuYWlUbWJjYmhlY2JocmNiaHdpbmRuYXZhbzZtYmNic2thZGF3Y2R0ZnlkYmdEYWxjd2ZhcmFEYWU5UmdlYWVjOEY5MWdlN2FlOVJjNTA3Z3JjZHRmZ3F5ZGI5UmdlYzhFOTFjOTpHYWVjZHQ3YXJWaGVpbmF2Y2JjamVhZWNqZTZFYWVjRmJHVjg2YmJhdmNlZmh2YWVjcjRnZW1ia2FxYURCZGJhRGhlYXdjZWZnd2FpOWhtYmtrZG5hdmFvOW5tYmNic2thdmNiQmJiYXZhYjlSY2xmaHZrYXZrQmVldWNiaGRkbmluYWRjZWZnZGM4RjBtZWFlY2VhZHQwbWJra2FiYWRjd2ZjRmVHY3I5VTJjdmZrOmR2bGk5OWR1aTk5bHVkbmFlVG1iY3VhZGNldGN1ZnRjdTc6Wmh2ZG5kbmN1YWljdWZ0Y3U3Olpnb0piYmJaTWdyOmxKYmJiOXA5RFRtYmFyOk9od3hla2NqampqOTRod2tjYmhpY2JoRGluYWxjbGZJZGJnckpiYmJiSmJialphbElkYmdxOmxhcjpsTWFsY3dmSWRiZ2s6bE1ncjp2YXJKYmJiYjlCRWdyTmh4YXFhck5ocmFsY3hmSWRiaHFkbmRuYWtKYmJiYjlHVG1iYXhoa3hla0piYmpaYXI6bDp0Z2thazptYXhKYmJiYjlHRWhrSmJialpheDpsOnRneGF4Om1hckpiYmJiOUdFaHJrZG5kbmFxSmJiajo7YXFKYmJqOjs5R0VneEpiYmpaYXhKYmJqWjlGRWF2TkpiYmJaSmJiYjo7YXFKYmJiYjlHRU1ncTpsSmJiYjlwOURUbWJhcTpPaG14ZWtjampqajk0aG1rZG5kbmFrSmJiajo7YWtKYmJqOjs5R0VncUpiYmpaYXFKYmJqWjlGRWFvTkpiYmJaSmJiYjo7YWtKYmJiYjlHRU1ncTpsSmJiYjlwOURUbWJhcTpPaFB4ZWtjampqajk0aFBrZG5kbmFySmJiajo7YXJKYmJqOjs5R0VncUpiYmpaYXFKYmJqWjlGRWFvTkpiYmJaSmJiYjo7YXJKYmJiYjlHRU1ncjpsSmJiYjlwOURUbWJhcjpPaHN4ZWtjampqajk0aHNrZG5kbmFkY2w5aG1iYWJhRGZnemFzODZiYmF6Y2lmYW04NmJiYXpjZGZhdzg2YmJhemNlZmFQODZiYnhla2FiYWlmZ3phczg3ZWJhemNvZmFtODdlYmF6Y2xmYXc4N2ViYXpjZGZhUDg3ZWJrYWljd2ZoaWFEY2xmaERhbGN6ZmhsYWVjdWZnZW1ia2trO2hsbGQ5OWV1ZDk5ZXVkbmFlVG1iZG5kbmN1YWljdWZ0Y3U3OlpndkpiYmJaTWdvOmxKYmJiOXA5RFRtYmFvOk9oaXhla2NqampqOTRoaWthaWM7OEZpR2hyaW5hYmNvZmNpY2RhbGNsZklkYjpsYWxJZGI6bDlFZ2lhbGN3ZklkYjpsYWxhaWNkdGZJZGI6bDlFRWdpYWxjeGZJZGI6bGFsYWljZHRmSWRiOmw5RUVnaWFyVjg3ZWJkbmRuSmJiajo7SmJialphbGFpY2R0ZklkYkpiYmJiOURFZ29hbGFpY2Q3Y2R0ZklkYko7Wmw6MVpOTmd3SmJiajo7YXdKYmJqOjs5R0VnREpiYmpaYURKYmJqWjlGRWF2TkpiYmJaSmJiYjo7YXdKYmJiYjlHRU1ndzpsSmJiYjlwOURUbWJhdzpPaHF4ZWtjampqajk0aHFrYWJjZGZhcTg3ZWJkbmRuYWxhaWNlZmNpR2NkdGZJZGJKO1psOjFaTmFvTmd3SmJiajo7YXdKYmJqOjs5R0VnREpiYmpaYURKYmJqWjlGRWF2TkpiYmJaSmJiYjo7YXdKYmJiYjlHRU1ndzpsSmJiYjlwOURUbWJhdzpPaHF4ZWtjampqajk0aHFrYWJhcTg3ZWJkbmRuYW9hbGFpY3VmY2lHY2R0ZklkYko7Wmw6MVpOTmdvSmJiajo7YW9KYmJqOjs5R0Vnd0piYmpaYXdKYmJqWjlGRWF2TkpiYmJaSmJiYjo7YW9KYmJiYjlHRU1nbzpsSmJiYjlwOURUbWJhbzpPaGl4ZWtjampqajk0aGlrYWJjbGZhaTg3ZWJhYmN3ZmhiYWxjemZobGFlY3VmZ2VtYmtraztndmREdWU5OThKampqamJjamQ5UmdvOEtqampqYmRuZG5kbmFkY2Q0Z3JUbWJjOkN1Y2JhdkVod2FvaGRhcmhEaW5hZGF3QmRiYWRjbGZoZGFEY3VmZ0RtYmthdmNkOWhtYmFlVG1iYXJjZHRocWNiaGthbGh4aW5hb2hkYXhoRGFyaHdpbmFkYWR5ZGJnbWFEeWRiY0w0Y0ZlR2M6Y3VmZ1BhbWFQOWtFQmRiYURjbGZoRGFkY2xmaGRhd2N1Zmd3bWJrYXhhcWZoeGFrY2VmZ2thZTlobWJ4ZGtrYWVUbWVrYXJjZHRoeGF2Y2U5aGhxY2Joa2luZG5kbmRuYXFtYmFyVG1kYzpDdWhEYWxoZGFyaHdpbmFEYWR5ZGJjTDRjRmVHYzpjdWZnbWFEYW05a0VoRGFkY2xmaGRhd2N1Zmd3bWJ4ZGtrZG5kbmRuZG5hdlBsZWRkYmRrYXJUbWxhb2hkYWxoRGFyaHdpbmFkY2JhRHlkYmNMNGNGZUdnbWM6Y3VmZ1BhUGFtMEVCZGJhZGNsZmhkYURjbGZoRGF3Y3VmZ3dtYnhpa2thclRtaWNiaGRhcmhEaW5kbmFsYWRmSWRiZ3NKYmJiYjlCbWJhb2FkZmFzOjhjTDRjRmVHZ3djOEFhd2M4QTBFYzpjdWZCZGJrYWRjbGZoZGFEY3VmZ0RtYnhka2thclRtZGtjOkN1aERrY2JoZGFyaG1pbmFEaHdkbmF2Y2VTbWJhb2FkZnlkYmh3a2RuZG5hbGFkZklkYmdzY2pqajs4aWF3YWk5UmNlZmd3Y0x0OVI6Ok5KYmJiWkpiYmI6O2FzSmJiYmI5R0VNZ3M6bEpiYmI5cDlEVG1iYXM6T2hQeGVrY2pqamo5NGhQa2FiYWRmYVBjRkZGckdhd2NLdFZCZGJhZGNsZmhkYW1jdWZnbW1ia2thYmF4ZmhiYWxheGZobGFrY2VmZ2thZTlobWJra2FvY2pkZjhLampqamJrOk9sdmV1ZTk5aXVlOTlpdWRuYWVUbWJjZWFpY3VmdGh2Y3VhaXRjdTc6WmhvY2JocmFkY2w5aGh3Y2JoRGluZG5kbmFsY3dmSWRiZ3FKYmJiYmFxSmJiYmI5R0VncUpiYmpaYXFKYmJqWjlGRWFvTkpiYmJaTWdxOmxKYmJiOXA5RFRtYmFxOk9oaXhla2NqampqOTRoaWtkbmRuYWxJZGJncUpiYmJiYXFKYmJiYjlHRWdxSmJialphcUpiYmpaOUZFYW9OSmJiYlpNZ3E6bEpiYmI5cDlEVG1iYXE6T2hkeGVrY2pqamo5NGhka2FkYWk5UmNkOVRna2FpZmhpZG5kbmFsY2xmSWRiZ3FKYmJiYmFxSmJiYmI5R0VncUpiYmpaYXFKYmJqWjlGRWFvTkpiYmJaTWdxOmxKYmJiOXA5RFRtYmFxOk9oZHhla2NqampqOTRoZGthZGFpOVJjZDlUaGRkbmRuYWxjeGZJZGJncUpiYmJiYXFKYmJiYjlHRWdxSmJialphcUpiYmpaOUZFYW9OSmJiYlpNZ3E6bEpiYmI5cDlEVG1iYXE6T2h4eGVrY2pqamo5NGh4a2FkYWlmaGlheGNlOTFhdlZoeGRuZG5hd21iYWJhRGZnbWFpODZiYmFtY2lmYXg4NmJiYW1jZGZhZDg2YmJhbWNlZmFrODZiYnhla2FiYXJmZ21haTg3ZWJhbWNvZmF4ODdlYmFtY2xmYWQ4N2ViYW1jZGZhazg3ZWJrYXJjd2ZocmFEY2xmaERhbGN6ZmhsYWVjdWZnZW1ia2trO21xZFF1aTk5OEpqampqYmM6cWQ5Umd2OEtqampqYmF2YzpTZWZjYmM7S2J6OnhqampiOEFkbmFkVG1iYWlUbWJkbmRuYWJhZVNtYmFlaG94ZWthdmN1YWRjZHRncmFkY0ZGRkZpMEVjYnlkO3E6STpjamJIampqamJiZ29CZDpTZWF2Y2VCZDptZGFvYWVhcno6d2pqamI4QWthdmNiQmQ6T2VhdjljYjgzaTpHZWF2YzpHZWZhb2FkYWlhdmM6U2VmejpwampqYmF2eWQ6R2Vod2FkY2k5VWdEY2J5ZDtxOkk6Y2piSGpqampiYmhlYXZjOlNlZmF2eWQ6bWRncWNkdGZhZUJkYmF2YXFjZWZnckJkOm1kYWVjYmFEejp4ampqYmhrYXZjOlNlZmFyY2R0ZmN1YWljZHRhaWNGRkZGaTBFY2J5ZDtxOkk6Y2piSGpqampiYmd4QmRiYXZhcWNkZmdtQmQ6bWRhbGM7ZWJmaFBhd2hlYXhocmluYXJhbElkYmFQYWV5ZGJnc2N3YXNjdzZFY2R0ZklkYk1VZGJhZWNsZmhlYXJjbGZocmFpY3VmZ2ltYmthdmM6U2VmYW1jZHRmY3VhRGNkdGFkY0ZGRkY5NzBFY2J5ZDtxOkk6Y2piSGpqampiYmdtQmRiZG5hZGNpNm1iYW9oZWFtaHJhRGhpaW5hcmF4YWV5ZGJjZHRmSWRiYXhhZWNsZnlkYmNkdGZJZGJNYXhhZWN3ZnlkYmNkdGZJZGJNVWRiYWVjeGZoZWFyY2xmaHJhaWN1ZmdpbWJra2FxY2lmaHphbGM7ZWJmaEhhdmM7cWJmaE9hdmhlYXZ5ZDpLZWhBYXZ5ZDpPZWhDY2Joc2NiaHJjYmhYY2VoUWluYWVoTGFvYXJjeDJmZ0t5ZGJoUGFLY2xmeWRiaGRhYmFYY3gyZmdlY3dmYUtjd2Z5ZGJnWUJkYmFlY2xmYWRCZGJhZWFQQmRiYWthcmZjZTg2YmJhT2FZQmR3YU9hZEJkbGFPYVBCZGJhbWFyY2R0ZmNiQmRiY2loOEFkbmFzVG1iYUxoaWluYU9hOEFjZHRmYWl5ZGJnZUJkYmE4QWFlYVk5aGFlYVA5aGFlYWQ5aEdHZmg4QWFpY2xmaGlhc2N1ZmdzbWJra2FYY2VmaFhjYmhzaW5hQ2FBYUthc2NkdGZ5ZGJjZHRnaWZ5ZGJjZHRmZ1loZWF3YWlmZ2R5ZGJnUGhpZG5hUFRtYmRuaW5hZXlkYmFyU21lYWVjbGZoZWFpY3VmZ2lUbWR4YmtrYWVhWWFQY2R0ZmM5OGZ5ZGJCZGJhZGFkeWRiY3VmQmRia2FzY2VmZ3NjaTlobWJrZG5kbmRuYThBVG1iY3VockpiYmJiaEVjYmhkYXZ5ZDpLZWhZYXZ5ZDpPZWhLaW5kbmF3YU9hZGNkdGZ5ZGJjZHRnc2Z5ZGJnZVRtYmF4YXNmZ2lJZGJoM2FpYWxjdWFkYWRjczBFY2R0ZmNsZklkYmFIYWVjd2FlY3c2RWNkdGZJZGJNZzVVZGJhNWEzOnRoNWFlY2R0aGlhS2FZYXNmeWRiY2R0ZmhlaW5hbWFleWRiZ3NjZHRmZ1BhNWFQSWRiTWczVWRiYTNhRWFFYTM5RGdQRWhFYXNhcmFQRWhyYWVjbGZoZWFpYzk4ZmdpbWJra2FkY2VmZ2RhOEE5aG1ia2FyY3U5aG1la2FRYUQ5cG1laW5kbmFrYVFmUmJibWJhUWhyeGRrYURhUWNlZmdROWhtYnhka2thOEFjemE4QWN6NkVoc2FPaGVhTGhPYXJjdTlobWVra2F6VG1iYXFjZHRhdmM6U2VmZmN3ZmhlaW5hZXlkYmNieWQ7dTpJOmNqYkg6YmpqamJiYWVjOThmaGVhemN1Zmd6bWJra2F2YzpxZGY4S2pqampiazowbGVvdWN1YWljZHRndmFpY0ZGRkZpMEVnb2NieWQ7cTpJOmNqYkhqampqYmJocmFsYWx5ZDlHZ3djZHRmYXJCZGJhbGF3Y2VmQmQ5R2FiYXJCZGJhb2NieWQ7cTpJOmNqYkhqampqYmJocmFsYWx5ZDlHZ29jZHRmYXJCZGJhbGFvY2VmQmQ5R2FiYXJCZGxjdWFkY2R0YWRjRkZGRmkwRWNieWQ7cTpJOmNqYkhqampqYmJocmFsYWx5ZDlHZ29jZHRmYXJCZGJhbGFvY2VmQmQ5R2FiYXJCZHdhYnlkYmNiYXZ6OnhqampiOEFhYnlkYmhyYWVobGFkaHZpbmFyYWx5ZGJjZHRmZ29hb3lkYmNlZkJkYmFsY2xmaGxhdmN1Zmd2bWJrY2JodmFieWRsZ2xob2FyaHdhaWhEaW5hb2F2QmRiYW9jbGZob2F3eWRiYXZmaHZhd2NsZmh3YURjdWZnRG1ia2FkY2k5VWhxZG5hZGNkOW5tYmFieWR3aG9jYmh2aW5hZWN3ZnlkYmh3YWVjbGZ5ZGJoRGFsYWV5ZGJjZHRmZ2JhYnlkYmdiY2VmQmRiYW9hYmNkdGZhdkJkYmFsYURjZHRmZ0RhRHlkYmdEY2VmQmRiYW9hRGNkdGZhdkJkYmFsYXdjZHRmZ3dhd3lkYmd3Y2VmQmRiYW9hd2NkdGZhdkJkYmFlY3hmaGVhcWF2Y2VmZ3Y5aG1ia2tpbmFsYWx5ZGJhcnlkYjlSQmRiYXJjbGZocmFsY2xmaGxhaWN1ZmdpbWJra1FiYWJhZWFkYWljO0c6RzpjamJ6Om9qampia1FiYWJhZWFkYWljO2k6SDpjamJ6Om9qampiazlEZWV1YWJjRmVhaWNkdHo6eGpqamJobGNiaGJkbmFkVG1iaW5kbmFsYWV5ZGJjZHRmZ2l5ZGJjdTlobWJhaWFiQmRiYWJjZWZoYmthZWNsZmhlYWRjdWZnZG1ia2thYms6M3Zpb3VkOTpkdThKampqamJjO1dhOVJnbDhLampqamJjYmh2YWxjeGZjYmM7S2J6OnhqampiOEFhbGN1YWRjaXRnb2FkY0ZGRkZlMEVjYnlkO3E6STpjamJIampqamJiZ3JCZHhhbGNlQmQyYXJhZWFkYWljZXpOampqYmFsY3Vhb2FkY2pqampvR0VjYnlkO3E6STpjamJIampqamJiZ3dCZHphZGNkdGhlZG5hZFRtYmFiaGlpbmFpYXZCZGJhaWNsZmhpYWRhdmNlZmd2OWhtYmtrYXdhZWZoRGFsYWJCZHdhbGF3QmRsOWNiaHFpbmRuYWRUbWJhcTljcTk6aGthcmh2YURoaWFkaGVpbmFpYXY4UGliYWsxOk5jRnJHODdlYmF2Y3dmaHZhaWNkZmhpYWVjdWZnZW1ia2thbGNsZmFxOk5jZUdjZHRmeWRiaHhhbGNsZmFxOWNlOThncTpOY2VHY2R0ZnlkYmhtYWxjO1diZmNiY2phejp4ampqYjhBYURodmFkaGlkbmFkVG1iaW5hbGM7V2JmYXY4VmViY2R0ZmdlYWV5ZGJjZWZCZGJhdmNkZmh2YWljdWZnaW1ia2tjYmh2Y2JoaWluYWxjO1diZmF2ZmdleWRiaG9hZWFpQmRiYW9haWZoaWF2Y2xmZ3ZjamE5aG1ia2FkaHZkbmRuYWRUbWJpbmFsYztXYmZhRGFteWRiZ2ljZXRmOFZlYmNkdGZnZWFleWRiZ2VjZWZCZGJheGFlY2R0ZmFpQmRiYW1jbGZobWF2Y3VmZ3ZtYmthcTljdjlzbWRjYmh2aW5hYmF3eWRiY2R0ZmF2QmRiYXdjbGZod2FkYXZjZWZndjlobWJ4ZGtrYXE5Y3Y5c21la2tjd2h2Y2JoaWluYWxjeGZhdmZjOThmeWRiY2J5ZDt1Okk6Y2piSDpiampqYmJhaWNlR2hlY2xodmNlaGlhZVRtYmthbGM7V2FmOEtqampqYms6QXdsaXVvOTlpdWQ5OmNiaHY4SmpqampiY2E5UmdvY2J5ZDo0Okk6Y2piQmRLYW9jYjhQZDpXOkk6Y2piODNpemFvY2J5ZDtlOkk6Y2piQmR3YW9jYjhQZDo4Okk6Y2piODNpYmFpY2Q0aHJkbmRuYWRtYkpGRnVGaHdKRkZ1dWhESkZGdXVocUpGRnVGaGtKRkZ1dWh4SkZGdUZobXhla2FyY2R0aFBhZWhzaW5jYmhpaW5hb2N6ZmFpZmd6YXNhaWZJZGJnd2F6SWRiZ0RhRGF3OUVFVWRiYW9haWZnemF3YXpJZGJnRGFEYXc5REVVZGJhaWNsZmdpY3g5aG1ia2FzYVBmaHNhdmNlZmd2YWQ5aG1ia2FvSWRLaERhb0lkd2h3YW9JZENocWFvSWRsaGthb0lkemh4YW9JZGJobWtkbmFkVG1iSmJiYmJKYkZ1OWhKYmJiYmFtYXg6dGdtYW1KYmJiYjlERWdtYWthcTp0Z2tha2FtOURFZ2thd2FEOnRnd2F3YWs5REVndzp2YXdKYmJiYjlCRWh3ZG5hbG1iYXJjZHRob2luZG5kbmFlY2xmSWRiYXE6dGF3TkpiYmJaTWdrOmxKYmJiOXA5RFRtYmFrOk9oaXhla2NqampqOTRoaWthaTpTOWNDOmdoSGRuZG5hZUlkYmF4OnRhd05KYmJiWk1nazpsSmJiYjlwOURUbWJhazpPaGl4ZWtjampqajk0aGlrYUhhaTpTOmVoSGRuZG5hZWN3ZklkYmFEOnRhd05KYmJiWk1nazpsSmJiYjlwOURUbWJhazpPaGl4ZWtjampqajk0aGlrYWJhSGFpOlQ5Y3k6ZzplODNpYmFlYW9maGVhYmN3ZmhiYWRjdWZnZG1ieGRra2FyY2R0aG9pbmRuZG5hZUlkYmF4OnRhd05KYmJiWk1nazpsSmJiYjlwOURUbWJhazpPaGl4ZWtjampqajk0aGlrYWk6U2dIOWNhOmdhSDljejpnOWNqamo7NHM6ZDplYUg5Y0ZlOmQ6ZTljRjpiajs0OnBqO2FyOmQ5YzpiZDk6OWM6cDtHOmQ7NGo6RTthcjpkOWNIOTo5YztkO0g6Vzp5Om06ZztkO0hiOmQ5Y3Y5OjljO2o6S007ajpLTTtqOktkOmRoT2RuZG5hZWNsZklkYmFxOnRhd05KYmJiWk1nazpsSmJiYjlwOURUbWJhazpPaGl4ZWtjampqajk0aGlrYWk6U2dIOWNhOmdhSDljejpnOWNqamo7NHM6ZDplYUg5Y0ZlOmQ6ZTljRjpiajs0OnBqO2FyOmQ5YzpiZDk6OWM6cDtHOmQ7NGo6RTthcjpkOWNIOTo5YztkO0g6Vzp5Om06ZztkO0hiOmQ5Y3E5OjljTTtqOktNO2o6S007amw6ZGFPOmVoT2RuZG5hZWN3ZklkYmFEOnRhd05KYmJiWk1nazpsSmJiYjlwOURUbWJhazpPaGl4ZWtjampqajk0aGlrYWJhT2FpOlNnSDljYTpnYUg5Y3o6ZzljampqOzRzOmQ6ZWFIOWNGZTpkOmU5Y0Y6Ymo7NDpwajthcjpkOWM6YmQ5OjljOnA7RzpkOzRqOkU7YXI6ZDljSDk6OWM7ZDtIOlc6eTptOmc7ZDtIYjpkOWNDOTo5YzpLTTtqOktNO2o6S01EOmQ6ZTgzaWJhZWFvZmhlYWJjd2ZoYmFkY3VmZ2RtYmtrazl0ZWl1Y2JjYnlkO3k6STpjamJnZWFiY2lmYzk4R2ZnYkJkO3k6STpjamJkbmRuYWJaYmN6dGdkOW5tYmN1aGlhYmFkOVJjRkZpZmN6NG5iY3VTbWVrYWVoaWthaWs7TGVlZXVkbmRuYWVhYlZjaUdUbWJhYmhpeGVrZG5kbmFkY3o5cG1iYWJoaXhla2FiaGlpbmFpYWV5ZGJCZGJhaWNsZmFlY2xmeWRiQmRiYWljd2ZhZWN3ZnlkYkJkYmFpY3hmYWVjeGZ5ZGJCZGJhZWN6ZmhlYWljemZoaWFkYzlXZmdkY3MwbWJra2FkY2w2bWJpbmFpYWV5ZGJCZGJhZWNsZmhlYWljbGZoaWFkYzk4ZmdkY2kwbWJra2RuYWRUbWJpbmFpYWVSYmI4NmJiYWljZWZoaWFlY2VmaGVhZGN1ZmdkbWJra2FiazthZWVkdWRuZG5hYmNpR1RtYmFiaGl4ZWthZWNGZUdjOmI6YzpldzJobGRuZG5hZGN6OXBtYmFiaGl4ZWthYmhpaW5haWFsQmRiYWljeGZhbEJkYmFpY3dmYWxCZGJhaWNsZmFsQmRiYWljemZoaWFkYzlXZmdkY3MwbWJra2FkY2w2bWJpbmFpYWxCZGJhaWNsZmhpYWRjOThmZ2RjaTBtYmtrZG5hZFRtYmluYWlhZTg2YmJhaWNlZmhpYWRjdWZnZG1ia2thYms5dGVpdWNiY2J5ZDt5Okk6Y2piZ2VhYmNyZmM5NEdmZ2JCZDt5Okk6Y2piZG5kbmFiWmJjenRnZDlubWJjdWhpYWJhZDlSY0ZGaWZjejRuYmN1U21la2FlaGlrYWlrVGVldWNiYWJjYnlkO3k6STpjamJnZTlSY2lmYzk4R2FlZmdiQmQ7eTpJOmNqYmRuYWJaYmN6dGdlOW5tYmFiYWU5UmNGRmlmY3o0bmI4QWtraztTZGRiY2o6R2RrO2lkYmJiYmRiYmJsYmJid2JiYmJiYmJlYmJiZGJiYmxiYmJ3YmJiYmJiYmJiYmJiYmJiYmJiYmViYmJkYmJiYmJiYmViYmJiYmJiYmJiYmJiYmJiNDpoOXc5Tjk0OlA6Z1c6ajlPOnllOVBiYmJiYmI6bDI5aFo7Njk6OWtaO047NzZaO3JnOTdaO3o7bzl4WjhKO0I4NVo7Ojt1OXlaO2I7azlIWjoyO1o5RFo5ZTpsOW1aNTlBOEtaOnI7VDNaOkE6ellaNzlPSFo7ajQ6Ojg6Olk6RDlWODpiYmJiOXM6NDk6WjhSOmhCWjlNOU07TTg6TDt6O284Ojs4OlBHODlxO3g6Sjg3OFI6aFE4OjpNOkI7ZTg3YmJiYmJialpiYmpaYmJqWjpFO1Y7Tjg6Olk6RHNaOWk7SDs2ODp4ZDtSODo7aDA4Mzg6O1c6Tm9aYmJiYjpXVjlPODp1Zjg4ODo5aTtIOzY4OjljOUc7TDg5O247bTltODk7RDhLbzg6YmJiYmY6OHRaOW04MzZaUzoyQVpMO3pQWlo4MThFWjllOmx4WjtVOThGODo4MTlFOzY4OkZGdXVGRnV1RkZ1dUZGdUZGRnVGRkZ1RmJjO2k6SWRrQ2ViYmJlYmJiZWJiYmRiYmI5RzpyYmIiLGU9bmV3IFVpbnQ4QXJyYXkoWzMyLDAsNjUsMiwxLDEwNiwzNCwzMywzLDEyOCwxMSw0LDEzLDY0LDYsMjUzLDEwLDcsMTUsMTE2LDEyNyw1LDgsMTIsNDAsMTYsMTksNTQsMjAsOSwyNywyNTUsMTEzLDE3LDQyLDY3LDI0LDIzLDE0NiwxNDgsMTgsMTQsMjIsNDUsNzAsNjksNTYsMTE0LDEwMSwyMSwyNSw2Myw3NSwxMzYsMTA4LDI4LDExOCwyOSw3MywxMTVdKTtpZih0eXBlb2YgV2ViQXNzZW1ibHkhPSJvYmplY3QiKXJldHVybntzdXBwb3J0ZWQ6ITF9O3ZhciB0LG89V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYShuKSx7fSkudGhlbihmdW5jdGlvbihtKXt0PW0uaW5zdGFuY2UsdC5leHBvcnRzLl9fd2FzbV9jYWxsX2N0b3JzKCksdC5leHBvcnRzLm1lc2hvcHRfZW5jb2RlVmVydGV4VmVyc2lvbigxKSx0LmV4cG9ydHMubWVzaG9wdF9lbmNvZGVJbmRleFZlcnNpb24oMSl9KTtmdW5jdGlvbiBhKG0pe2Zvcih2YXIgYj1uZXcgVWludDhBcnJheShtLmxlbmd0aCkscD0wO3A8bS5sZW5ndGg7KytwKXt2YXIgeT1tLmNoYXJDb2RlQXQocCk7YltwXT15Pjk2P3ktOTc6eT42ND95LTM5OnkrNH1mb3IodmFyIEU9MCxwPTA7cDxtLmxlbmd0aDsrK3ApYltFKytdPWJbcF08NjA/ZVtiW3BdXTooYltwXS02MCkqNjQrYlsrK3BdO3JldHVybiBiLmJ1ZmZlci5zbGljZSgwLEUpfWZ1bmN0aW9uIHIobSl7aWYoIW0pdGhyb3cgbmV3IEVycm9yKCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gaShtKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobS5idWZmZXIsbS5ieXRlT2Zmc2V0LG0uYnl0ZUxlbmd0aCl9ZnVuY3Rpb24gZihtLGIscCx5KXt2YXIgRT10LmV4cG9ydHMuc2JyayxnPUUoYi5sZW5ndGgqNCksQT1FKHAqNCksVD1uZXcgVWludDhBcnJheSh0LmV4cG9ydHMubWVtb3J5LmJ1ZmZlciksUj1pKGIpO1Quc2V0KFIsZykseSYmeShnLGcsYi5sZW5ndGgscCk7dmFyIFM9bShBLGcsYi5sZW5ndGgscCk7VD1uZXcgVWludDhBcnJheSh0LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcik7dmFyIE09bmV3IFVpbnQzMkFycmF5KHApO25ldyBVaW50OEFycmF5KE0uYnVmZmVyKS5zZXQoVC5zdWJhcnJheShBLEErcCo0KSksUi5zZXQoVC5zdWJhcnJheShnLGcrYi5sZW5ndGgqNCkpLEUoZy1FKDApKTtmb3IodmFyIEk9MDtJPGIubGVuZ3RoOysrSSliW0ldPU1bYltJXV07cmV0dXJuW00sU119ZnVuY3Rpb24gZChtLGIscCx5KXt2YXIgRT10LmV4cG9ydHMuc2JyayxnPUUocCo0KSxBPUUocCp5KSxUPW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTtULnNldChpKGIpLEEpLG0oZyxBLHAseSksVD1uZXcgVWludDhBcnJheSh0LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcik7dmFyIFI9bmV3IFVpbnQzMkFycmF5KHApO3JldHVybiBuZXcgVWludDhBcnJheShSLmJ1ZmZlcikuc2V0KFQuc3ViYXJyYXkoZyxnK3AqNCkpLEUoZy1FKDApKSxSfWZ1bmN0aW9uIGMobSxiLHAseSxFLGcsQSl7dmFyIFQ9dC5leHBvcnRzLnNicmssUj1UKGIpLFM9VCh5KkUpLE09bmV3IFVpbnQ4QXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIpO00uc2V0KGkocCksUyk7dmFyIEk9bShSLGIsUyx5LEUsZyxBKSxOPW5ldyBVaW50OEFycmF5KEkpO3JldHVybiBOLnNldChNLnN1YmFycmF5KFIsUitJKSksVChSLVQoMCkpLE59ZnVuY3Rpb24gdShtKXtmb3IodmFyIGI9MCxwPTA7cDxtLmxlbmd0aDsrK3Ape3ZhciB5PW1bcF07Yj1iPHk/eTpifXJldHVybiBifWZ1bmN0aW9uIGwobSxiKXtpZihyKGI9PTJ8fGI9PTQpLGI9PTQpcmV0dXJuIG5ldyBVaW50MzJBcnJheShtLmJ1ZmZlcixtLmJ5dGVPZmZzZXQsbS5ieXRlTGVuZ3RoLzQpO3ZhciBwPW5ldyBVaW50MTZBcnJheShtLmJ1ZmZlcixtLmJ5dGVPZmZzZXQsbS5ieXRlTGVuZ3RoLzIpO3JldHVybiBuZXcgVWludDMyQXJyYXkocCl9ZnVuY3Rpb24gaChtLGIscCx5LEUsZyxBKXt2YXIgVD10LmV4cG9ydHMuc2JyayxSPVQocCp5KSxTPVQocCpnKSxNPW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTtNLnNldChpKGIpLFMpLG0oUixwLHksRSxTLEEpO3ZhciBJPW5ldyBVaW50OEFycmF5KHAqeSk7cmV0dXJuIEkuc2V0KE0uc3ViYXJyYXkoUixSK3AqeSkpLFQoUi1UKDApKSxJfXJldHVybntyZWFkeTpvLHN1cHBvcnRlZDohMCxyZW9yZGVyTWVzaDpmdW5jdGlvbihtLGIscCl7cihtIGluc3RhbmNlb2YgVWludDMyQXJyYXl8fG0gaW5zdGFuY2VvZiBJbnQzMkFycmF5KSxyKCFifHxtLmxlbmd0aCUzPT0wKTt2YXIgeT1iP3A/dC5leHBvcnRzLm1lc2hvcHRfb3B0aW1pemVWZXJ0ZXhDYWNoZVN0cmlwOnQuZXhwb3J0cy5tZXNob3B0X29wdGltaXplVmVydGV4Q2FjaGU6dm9pZCAwO3JldHVybiBmKHQuZXhwb3J0cy5tZXNob3B0X29wdGltaXplVmVydGV4RmV0Y2hSZW1hcCxtLHUobSkrMSx5KX0scmVvcmRlclBvaW50czpmdW5jdGlvbihtLGIpe3JldHVybiByKG0gaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpLHIobS5sZW5ndGglYj09MCkscihiPj0zKSxkKHQuZXhwb3J0cy5tZXNob3B0X3NwYXRpYWxTb3J0UmVtYXAsbSxtLmxlbmd0aC9iLGIqNCl9LGVuY29kZVZlcnRleEJ1ZmZlcjpmdW5jdGlvbihtLGIscCl7cihwPjAmJnA8PTI1NikscihwJTQ9PTApO3ZhciB5PXQuZXhwb3J0cy5tZXNob3B0X2VuY29kZVZlcnRleEJ1ZmZlckJvdW5kKGIscCk7cmV0dXJuIGModC5leHBvcnRzLm1lc2hvcHRfZW5jb2RlVmVydGV4QnVmZmVyLHksbSxiLHApfSxlbmNvZGVWZXJ0ZXhCdWZmZXJMZXZlbDpmdW5jdGlvbihtLGIscCx5LEUpe3IocD4wJiZwPD0yNTYpLHIocCU0PT0wKSxyKHk+PTAmJnk8PTMpLHIoRT09PXZvaWQgMHx8RT09MHx8RT09MSk7dmFyIGc9dC5leHBvcnRzLm1lc2hvcHRfZW5jb2RlVmVydGV4QnVmZmVyQm91bmQoYixwKTtyZXR1cm4gYyh0LmV4cG9ydHMubWVzaG9wdF9lbmNvZGVWZXJ0ZXhCdWZmZXJMZXZlbCxnLG0sYixwLHksRT09PXZvaWQgMD8tMTpFKX0sZW5jb2RlSW5kZXhCdWZmZXI6ZnVuY3Rpb24obSxiLHApe3IocD09Mnx8cD09NCkscihiJTM9PTApO3ZhciB5PWwobSxwKSxFPXQuZXhwb3J0cy5tZXNob3B0X2VuY29kZUluZGV4QnVmZmVyQm91bmQoYix1KHkpKzEpO3JldHVybiBjKHQuZXhwb3J0cy5tZXNob3B0X2VuY29kZUluZGV4QnVmZmVyLEUseSxiLDQpfSxlbmNvZGVJbmRleFNlcXVlbmNlOmZ1bmN0aW9uKG0sYixwKXtyKHA9PTJ8fHA9PTQpO3ZhciB5PWwobSxwKSxFPXQuZXhwb3J0cy5tZXNob3B0X2VuY29kZUluZGV4U2VxdWVuY2VCb3VuZChiLHUoeSkrMSk7cmV0dXJuIGModC5leHBvcnRzLm1lc2hvcHRfZW5jb2RlSW5kZXhTZXF1ZW5jZSxFLHksYiw0KX0sZW5jb2RlR2x0ZkJ1ZmZlcjpmdW5jdGlvbihtLGIscCx5LEUpe3ZhciBnPXtBVFRSSUJVVEVTOnRoaXMuZW5jb2RlVmVydGV4QnVmZmVyTGV2ZWwsVFJJQU5HTEVTOnRoaXMuZW5jb2RlSW5kZXhCdWZmZXIsSU5ESUNFUzp0aGlzLmVuY29kZUluZGV4U2VxdWVuY2V9O3JldHVybiByKGdbeV0pLGdbeV0obSxiLHAsMixFPT09dm9pZCAwPzA6RSl9LGVuY29kZUZpbHRlck9jdDpmdW5jdGlvbihtLGIscCx5KXtyZXR1cm4gcihwPT00fHxwPT04KSxyKHk+PTImJnk8PTE2KSxoKHQuZXhwb3J0cy5tZXNob3B0X2VuY29kZUZpbHRlck9jdCxtLGIscCx5LDE2KX0sZW5jb2RlRmlsdGVyUXVhdDpmdW5jdGlvbihtLGIscCx5KXtyZXR1cm4gcihwPT04KSxyKHk+PTQmJnk8PTE2KSxoKHQuZXhwb3J0cy5tZXNob3B0X2VuY29kZUZpbHRlclF1YXQsbSxiLHAseSwxNil9LGVuY29kZUZpbHRlckV4cDpmdW5jdGlvbihtLGIscCx5LEUpe3IocD4wJiZwJTQ9PTApLHIoeT49MSYmeTw9MjQpO3ZhciBnPXtTZXBhcmF0ZTowLFNoYXJlZFZlY3RvcjoxLFNoYXJlZENvbXBvbmVudDoyLENsYW1wZWQ6M307cmV0dXJuIHIoIUV8fEUgaW4gZyksaCh0LmV4cG9ydHMubWVzaG9wdF9lbmNvZGVGaWx0ZXJFeHAsbSxiLHAseSxwLEU/Z1tFXToxKX0sZW5jb2RlRmlsdGVyQ29sb3I6ZnVuY3Rpb24obSxiLHAseSl7cmV0dXJuIHIocD09NHx8cD09OCkscih5Pj0yJiZ5PD0xNiksaCh0LmV4cG9ydHMubWVzaG9wdF9lbmNvZGVGaWx0ZXJDb2xvcixtLGIscCx5LDE2KX19fSkoKX0pO3ZhciB6cyx0eD1YKCgpPT57enM9KGZ1bmN0aW9uKCl7dmFyIG49ImI5SDc5VGViYmJlOEZ2OUdiYjlHdnV1dXV1ZXU5R2l1dXViOUdldWV1OUdpdXV1ZXVpeGtiZWVlZGRkZGlsbHZpZWJlb3dldWVjajpHZGtyO05lcW85VFc5VDlWVjk1ZGJIOUY5RjkzOUg3OVQ5RjlKOUgyMjlGOUp0OVZWN2JiOEE5VFc3OU85VjlXdDlGOUtXOUo5VjlLVzl3V1Z0Vzk0OWM5MTlNOU1XVmJlWTlUVzc5TzlWOVd0OUY5S1c5SjlWOUtXNjlVOUtXOTQ5YzkxOU05TVdWYmRFOVRXNzlPOVY5V3Q5RjlLVzlKOVY5S1c2OVU5S1c5NDl0V0c5MVc5VTlKV2JpTDlUVzc5TzlWOVd0OUY5S1c5SjlWOUtXUzlQMnRXVjlwOUp0YmxLOVRXNzlPOVY5V3Q5RjlLVzlKOVY5S1dTOVAydFdWOXI5MTlIdGJ2TDlUVzc5TzlWOVd0OUY5S1c5SjlWOUtXUzlQMnRXVlQ5NDlXYm9ZOVRXNzlPOVY5V3Q5RjlLVzlKOVY5S1dTOVAydFdWSjlWMjlWVmJybDc5SVY5UmJ3cTFaa2RiazprWWk1dWQ5OmR1OEpqampqYmNqcTlSZ3Y4S2pqampiYzk6aG9kbmFsVG1iY3Vob2FpUmJiZ3JjO1dlR2M6R2U5aG1iYXJjc0dnd2NlMG1iYzk6aG9hbGN1ZmFkY2Q0Y2Jhd0VnRGFkZmdyY0tjYWF3RWdxYXJhcTBFZ2s2bWJhaWNlZmh4Y2o7YWJhZDlVYztXRmJHY2pkYWRjYTBFaG1haWFsZmdQYXI5UmdvYWRmaHNhdmFvYWR6OmpqampiZ3pjZVZoSGNiaE9kbmRuaW5hZWFPOW5tZWFQYXg5UmFENm1kYW1hZWFPOVJhT2FtZmdvYWU2RWdBY3NmZ2xjOVdHaENhQWNldGhYYXhhRGZoaWFPYWVhb2FlYW82RTlSaFFhbGNsNGNpZmNkNGhMYXpjamRmYUFmaEtjYmhZYWJhT2FkMmZnOEFoRWFIaDNpbmNiaDVkbmF3VG1iYXhhWWNkNGZSYmJoNWtjYmg4RWF6Y2pkZmhxaW5haWg4RmRuZG5kbmRuYTVhOEVjZXQ0Y2lHZ29jOTpmUGRlYmRrYVBhOEY5UmFBNm1yYXpjamRmYThFYUEyZmE4RmFBejpqampqYjhBYThGYUFmaGl4ZGthemNqZGZhOEVhQTJmY2JhQXo6a2pqamI4QWE4RmhpeGVrYVBhOEY5UmFMNm12YThGYUxmaGlkbmFDVG1iYVBhaTlSY0s2bWJhb2NkdGM6cTpHOmNqYmZjajpHOmNqYmF3RWhhY3pocmNiaGxpbmFyZ29jOVdmZ2hhcWZocmRuZG5kbmRuZG5kbmFhYThGYWhjbzRmUmJiYWxjb0c0Y2lHY2R0ZnlkYlBEYmVkdml2dnZsdmthcjljYjgzYndhcjljYjgzYmJ4bGthcmNiYWlSYmRhaThYYmI5YzpjOnFqOmJ3OTo5YzpxO2MxOkkxZTpkOWM6YjpjOmUxejk6Z2c5Y2pqampqejpkZzhKOXFFODZiYmFxYW9mZ3JjR2ZjYmFpY2RmYThKOWM4TjE6TmZnaFJiYmFnOWNqampqanc6ZGc4SjlxRTg2YmJhcmNWZmNiYWhhOEo5YzhNMTpOZmdoUmJiYWc5Y2pqampqbDpkZzhKOXFFODZiYmFyYzdmY2JhaGE4SjljOEwxOk5mZ2hSYmJhZzljampqampkOmRnOEo5cUU4NmJiYXJjdGZjYmFoYThKOWM4SzE6TmZnaFJiYmFnOWNqampqamU6ZGc4SjlxRTg2YmJhcmM5MWZjYmFoYThKOWM4SjE6TmZnaFJiYmFnOWNqampqO2FiOmRnOEo5cUU4NmJiYXJjNGZjYmFoYThKOWNnMTpOZmdoUmJiYWc5Y2pqamphOmRnOEo5cUU4NmJiYXJjOTNmY2JhaGE4SjljaDE6TmZnaFJiYmFnOWNqampqejpkZ2c5cUU4NmJiYXJjOTRmY2JhaGFnOWNhMTpOZmdoUmJiYWk4WGJlOWM6Yzpxajpidzk6OWM6cTtjMTpJMWU6ZDljOmI6YzplMXo5OmdnOWNqampqano6ZGc4SjlxRTg2YmJhcmM5NWZjYmFoYThKOWM4TjE6TmZnaVJiYmFnOWNqampqanc6ZGc4SjlxRTg2YmJhcmM5NmZjYmFpYThKOWM4TTE6TmZnaVJiYmFnOWNqampqamw6ZGc4SjlxRTg2YmJhcmM5N2ZjYmFpYThKOWM4TDE6TmZnaVJiYmFnOWNqampqamQ6ZGc4SjlxRTg2YmJhcmM5OGZjYmFpYThKOWM4SzE6TmZnaVJiYmFnOWNqampqamU6ZGc4SjlxRTg2YmJhcmM5OWZjYmFpYThKOWM4SjE6TmZnaVJiYmFnOWNqampqO2FiOmRnOEo5cUU4NmJiYXJjOTpmY2JhaWE4SjljZzE6TmZnaVJiYmFnOWNqampqYTpkZzhKOXFFODZiYmFyY3VmY2JhaWE4SjljaDE6TmZnaVJiYmFnOWNqampqejpkZ2c5cUU4NmJiYWlhZzljYTE6TmZoaXhpa2FyYWlSYmxhaVJiYmdoY280ZzhLYThLY2lTZzhLRTg2YmJhcWFvZmdyY0dmYWljbGZhOEtmZzhLUmJiYWhjbDRjaUdnOExhOExjaVNnOExFODZiYmFyY1ZmYThLYThMZmc4S1JiYmFoY2Q0Y2lHZzhMYThMY2lTZzhMRTg2YmJhcmM3ZmE4S2E4TGZnOEtSYmJhaGNpR2doYWhjaVNnaEU4NmJiYXJjdGZhOEthaGZnOEtSYmJhaVJiZWdoY280ZzhMYThMY2lTZzhMRTg2YmJhcmM5MWZhOEthOExmZzhLUmJiYWhjbDRjaUdnOExhOExjaVNnOExFODZiYmFyYzRmYThLYThMZmc4S1JiYmFoY2Q0Y2lHZzhMYThMY2lTZzhMRTg2YmJhcmM5M2ZhOEthOExmZzhLUmJiYWhjaUdnaGFoY2lTZ2hFODZiYmFyYzk0ZmE4S2FoZmc4S1JiYmFpUmJkZ2hjbzRnOExhOExjaVNnOExFODZiYmFyYzk1ZmE4S2E4TGZnOEtSYmJhaGNsNGNpR2c4TGE4TGNpU2c4TEU4NmJiYXJjOTZmYThLYThMZmc4S1JiYmFoY2Q0Y2lHZzhMYThMY2lTZzhMRTg2YmJhcmM5N2ZhOEthOExmZzhLUmJiYWhjaUdnaGFoY2lTZ2hFODZiYmFyYzk4ZmE4S2FoZmdoUmJiYWlSYmlnaWNvNGc4S2E4S2NpU2c4S0U4NmJiYXJjOTlmYWhhOEtmZ2hSYmJhaWNsNGNpR2c4S2E4S2NpU2c4S0U4NmJiYXJjOTpmYWhhOEtmZ2hSYmJhaWNkNGNpR2c4S2E4S2NpU2c4S0U4NmJiYXJjdWZhaGE4S2ZnclJiYmFpY2lHZ2lhaWNpU2dpRTg2YmJhcmFpZmhpeGRrYXJhaVJid2FpUmJiZ2hjbDRnOEthOEtjc1NnOEtFODZiYmFxYW9mZ3JjR2ZhaWN3ZmE4S2ZnOEtSYmJhaGNzR2doYWhjc1NnaEU4NmJiYXJjVmZhOEthaGZnaFJiYmFpUmJlZzhLY2w0ZzhMYThMY3NTZzhMRTg2YmJhcmM3ZmFoYThMZmdoUmJiYThLY3NHZzhLYThLY3NTZzhLRTg2YmJhcmN0ZmFoYThLZmdoUmJiYWlSYmRnOEtjbDRnOExhOExjc1NnOExFODZiYmFyYzkxZmFoYThMZmdoUmJiYThLY3NHZzhLYThLY3NTZzhLRTg2YmJhcmM0ZmFoYThLZmdoUmJiYWlSYmlnOEtjbDRnOExhOExjc1NnOExFODZiYmFyYzkzZmFoYThMZmdoUmJiYThLY3NHZzhLYThLY3NTZzhLRTg2YmJhcmM5NGZhaGE4S2ZnaFJiYmFpUmJsZzhLY2w0ZzhMYThMY3NTZzhMRTg2YmJhcmM5NWZhaGE4TGZnaFJiYmE4S2NzR2c4S2E4S2NzU2c4S0U4NmJiYXJjOTZmYWhhOEtmZ2hSYmJhaVJidmc4S2NsNGc4TGE4TGNzU2c4TEU4NmJiYXJjOTdmYWhhOExmZ2hSYmJhOEtjc0dnOEthOEtjc1NnOEtFODZiYmFyYzk4ZmFoYThLZmdoUmJiYWlSYm9nOEtjbDRnOExhOExjc1NnOExFODZiYmFyYzk5ZmFoYThMZmdoUmJiYThLY3NHZzhLYThLY3NTZzhLRTg2YmJhcmM5OmZhaGE4S2ZnaFJiYmFpUmJyZ2ljbDRnOEthOEtjc1NnOEtFODZiYmFyY3VmYWhhOEtmZ3JSYmJhaWNzR2dpYWljc1NnaUU4NmJiYXJhaWZoaXhla2FyYWk4UGJ3ODNid2FyYWk4UGJiODNiYmFpY3pmaGlrZG5hb2FDOXBtYmFsY2RmaGxhb2N6ZmhyYVBhaTlSY0wwbWVra2FvYUM2bW9haW1leG9rYUNtdmE4RlRtdmthcWFBZmhxYThFY2VmZzhFY2w5aG1ia2RuZG5kbmRuYXdUbWJhc2FZY2Q0ZlJiYmdvY2lHUGxiZWRyYmthQVRtZGF6YVlmaDhGYXpjamRmaGhjYmg4RWFFaGFpbmE4RlJiYmhyYWFob2NiaGxpbmFvYWhhbGZSYmJncWNlNGNiYXFjZUc5UjdhcmZncjg2YmJhb2FkZmhvYUFhbGNlZmdsOWhtYmthYWNlZmhhYThGY2VmaDhGYWhhQWZoaGE4RWNlZmc4RWNsOWhtYnhpa2thQVRtZWF6YVlmaGFhemNqZGZoaGNiaG9jZWg4RWFLaDhGaW5hRWFvZmhsYWE4VmJiaHJjYmhvaW5hbGE4RmFvZlJiYmN3dGFoYW9mUmJiZ3FWYzs6RmlHY2U0Y2JhcWNlRzlSN2FyZmdyODdiYmFsYWRmaGxhUWFvY2VmZ29mbWJrYThGYVhmaDhGY2Rob2FhY2RmaGFhaGFYZmhoYThFY2VHaGxjYmg4RWFsbWJ4ZGtrYUFUbWJhb2NsNGg4RWF6YVlmUmJiaHFjd2hvYTNobGluYWxSYmJhb3RhcVZocWFsY2VmaGxhb2N3ZmdvY2E5aG1ia2NiaGhhRWg4RmFLaGFpbmF6Y2pkZmFoZlJiYmhyY3dob2FhaGxpbmFsUmJiYW90YXJWaHJhbGFBZmhsYW9jd2Znb2NhOWhtYmthcmE4RTk0YXE3aHFjYmhvYThGaGxpbmFsYXFhbzQ4NmJiYWxjZWZobGFvY3dmZ29jYTlobWJrYThGYWRmaDhGYWFjZWZoYWFoY2VmZ2hhQTlobWJra2FFY2xmaEVhM2NsZmgzYVljbGZnWWFkNm1ia2F6YThBYUFjdWZhZDJmYWR6OmpqampiOEFhQWFPZmhPYWloeGFpbWJrYzk6aG94ZGtjYmM5OWFQYXg5UmFrU0Vob3hla2M5Omhva2F2Y2pxZjhLampqamJhb2s6eXNlenU4SmpqampiYzthZTlSZ3Y4S2pqampiYzk6aG9kbmFsYWVjaTlVZ3JjSGY2bWJjdWhvYWlSYmJnd2M7V2VHYztHZTlobWJhd2NzR2dEY2UwbWJhdmM7YWJmY0ZlY2plejprampqYjhBYXY5Y3U4M2lVYXY5Y3U4M2k4V2F2OWN1ODNpeWF2OWN1ODNpYWF2OWN1ODNpS2F2OWN1ODNpemF2OWN1ODNpd2F2OWN1ODNpYmFpYWxmYzlXZmhxYWljZWZnd2FyZmhsZG5hZVRtYmNtY3NhRGNlU0Voa2NiaHhjYmhtY2JocmNiaGljYmhvaW5kbmFsYXE5bm1iYzk6aG94aWtkbmRuYXdSYmJnRGM7VmUwbWJhdmM7YWJmYW9hRGN1N2dQY2w0ZmNzR2NpdGZnc3lkbGh6YXN5ZGJoSGRuZG5hRGNzR2dzYWs5cG1iYXZhaWFQZmNzR2NkdGZ5ZGJheGFzRWhEYXhhc1RnT2ZoeHhla2RuZG5hc2NzU21iY2VoT2FzYzk4N2FzYW1mZmNlZmhEeGVrYWxjZWZoRGFsOFNiYmdzY0ZlR2hQZG5kbmFzY3U5bW1iYURobHhla2FsY3ZmaGxhUGNGYkdoUGNyaHNkbmluYUQ4U2JiZ09jRmJHYXN0YVBWaFBhT2N1OWttZWFEY2VmaERhc2NyZmdzYzhKOWhtYnhka2thRGNlZmhsa2NlaE9hUGNlNGNiYVBjZUc5UjdhbWZoRGthRGhta2F2YzthYmZhb2NpdGZnc2FEQmRiYXNhekJkbGF2YWljZHRmYURCZGJhdmM7YWJmYW9jZWZjc0djaXRmZ3NhSEJkYmFzYURCZGxhb2NkZmhvYU9haWZoaWRuYWRjZDlobWJhYmFyY2V0ZmdzYUg4N2ViYXNjbGZhRDg3ZWJhc2NkZmF6ODdlYnhka2FiYXJjZHRmZ3NhSEJkYmFzY3dmYURCZGJhc2NsZmF6QmRieGVrZG5hRGNwZTBtYmF2YWlhcWFEY3NHZlJiYmdzY2w0Z1A5UmNzR2NkdGZ5ZGJheGNlZmdPYVBFaERhdmFpYXM5UmNzR2NkdGZ5ZGJhT2FQVGd6ZmdPYXNjc0dnUEVoc2FQVGhQZG5kbmFkY2Q5aG1iYWJhcmNldGZnSGF4ODdlYmFIY2xmYXM4N2ViYUhjZGZhRDg3ZWJ4ZWthYmFyY2R0ZmdIYXhCZGJhSGN3ZmFzQmRiYUhjbGZhREJkYmthdmFpY2R0ZmF4QmRiYXZjO2FiZmFvY2l0ZmdIYURCZGJhSGF4QmRsYXZhaWNlZmdpY3NHY2R0ZmFEQmRiYXZjO2FiZmFvY2VmY3NHY2l0ZmdIYXNCZGJhSGFEQmRsYXZhaWF6ZmdpY3NHY2R0ZmFzQmRiYXZjO2FiZmFvY2RmY3NHY2l0ZmdEYXhCZGJhRGFzQmRsYW9jaWZob2FpYVBmaGlhT2FQZmh4eGVrYXhjYmFsUmJiZ3NFZ0hhRGM7OmVTZ0RmaE9hc2NzR2hBZG5kbmFzY2w0Z0NtYmFPY2VmaHp4ZWthT2h6YXZhaWFDOVJjc0djZHRmeWRiaE9rZG5kbmFBbWJhemNlZmh4eGVrYXpoeGF2YWlhczlSY3NHY2R0ZnlkYmh6a2RuZG5hRFRtYmFsY2VmaER4ZWthbGNkZmhEYWw4U2JlZ1BjRmVHaHNkbmFQY3U5a21iYWxjb2ZoSGFzY0ZiR2hzY3JobGRuaW5hRDhTYmJnUGNGYkdhbHRhc1Zoc2FQY3U5a21lYURjZWZoRGFsY3JmZ2xjOEo5aG1ia2FIaER4ZWthRGNlZmhEa2FzY2U0Y2Jhc2NlRzlSN2FtZmdtaEhrZG5kbmFDY3NTbWJhRGhzeGVrYURjZWZoc2FEOFNiYmdsY0ZlR2hQZG5hbGN1OWttYmFEY3ZmaE9hUGNGYkdoUGNyaGxkbmluYXM4U2JiZ0RjRmJHYWx0YVBWaFBhRGN1OWttZWFzY2VmaHNhbGNyZmdsYzhKOWhtYmthT2hzeGVrYXNjZWZoc2thUGNlNGNiYVBjZUc5UjdhbWZnbWhPa2RuZG5hQWNzU21iYXNobHhla2FzY2VmaGxhczhTYmJnRGNGZUdoUGRuYURjdTlrbWJhc2N2Zmh6YVBjRmJHaFBjcmhEZG5pbmFsOFNiYmdzY0ZiR2FEdGFQVmhQYXNjdTlrbWVhbGNlZmhsYURjcmZnRGM4SjlobWJrYXpobHhla2FsY2VmaGxrYVBjZTRjYmFQY2VHOVI3YW1mZ21oemtkbmRuYWRjZDlobWJhYmFyY2V0ZmdEYUg4N2ViYURjbGZhejg3ZWJhRGNkZmFPODdlYnhla2FiYXJjZHRmZ0RhSEJkYmFEY3dmYXpCZGJhRGNsZmFPQmRia2F2YzthYmZhb2NpdGZnRGFPQmRiYURhSEJkbGF2YWljZHRmYUhCZGJhdmM7YWJmYW9jZWZjc0djaXRmZ0RhekJkYmFEYU9CZGxhdmFpY2VmZ2ljc0djZHRmYU9CZGJhdmM7YWJmYW9jZGZjc0djaXRmZ0RhSEJkYmFEYXpCZGxhdmFpYUNUYUNjc1NWZmdpY3NHY2R0ZmF6QmRiYWlhQVRhQWNzU1ZmaGlhb2NpZmhva2F3Y2VmaHdhb2NzR2hvYWljc0doaWFyY2lmZ3JhZTZtYmtrY2JjOTlhbGFxU0Vob2thdmM7YWVmOEtqampqYmFvazpjbGV2dThKampqamJjejlSaHZkbmFsYWVjdmY5cG1iYzk6c2tkbmFpUmJiYzs6ZUdjO3FlU21iY3Vza2F2OWNiODNpd2FpY2VmaG9haWFsZmM5OGZocmRuYWVUbWJkbmFkY2RTbWJjYmh3aW5kbmFvYXI2bWJjOTpza2FvY2VmaGxhbzhTYmJnaWNGZUdoZGRuZG5haWN1OW1tYmFsaG94ZWthb2N2ZmhvYWRjRmJHaGRjcmhpZG5pbmFsOFNiYmdEY0ZiR2FpdGFkVmhkYURjdTlrbWVhbGNlZmhsYWljcmZnaWM4SjlobWJ4ZGtrYWxjZWZob2thYmF3Y2R0ZmFkYzhFdGM4RjkxYWRjZDQ3YXZjd2ZhZGNlR2NkdFZnbHlkYmZnaUJkYmFsYWlCZGJhd2NlZmd3YWU5aG1ieGRra2NiaHdpbmRuYW9hcjZtYmM5OnNrYW9jZWZobGFvOFNiYmdpY0ZlR2hkZG5kbmFpY3U5bW1iYWxob3hla2FvY3ZmaG9hZGNGYkdoZGNyaGlkbmluYWw4U2JiZ0RjRmJHYWl0YWRWaGRhRGN1OWttZWFsY2VmaGxhaWNyZmdpYzhKOWhtYnhka2thbGNlZmhva2FiYXdjZXRmYWRjOEV0YzhGOTFhZGNkNDdhdmN3ZmFkY2VHY2R0VmdseWRiZmdpODdlYmFsYWlCZGJhd2NlZmd3YWU5aG1ia2tjYmM5OWFvYXJTRWs6THZvZXVlOTlkdWQ5OWV1ZDk5ZG5kbmFkY2w5aG1iYWVUbWVpbmRuZG5hYmNkZmdkOFNiYjpZYWI4U2JiZ2k6WWdsOmw6dGFiY2VmZ3Y4U2JiZ286WWdyOmw6dGd3SmJiOzo5Y2F3YXdOSmJiYmJhd2F3SmJiYmI5R2dERWdxOm1na2FxYWljYjlpRWFsTWd3YXdOYWthcWFvY2I5aUVhck1ncWFxTk1NOnI6dmdsTkpiYmJaSmJiYjo7YURFTWdyOmxKYmJiOXA5RFRtYmFyOk9oaXhla2NqampqOTRoaWthZGFpODZiYmRuZG5hcWFsTkpiYmJaSmJiYjo7YXFKYmJiYjlHRU1ncTpsSmJiYjlwOURUbWJhcTpPaGR4ZWtjampqajk0aGRrYXZhZDg2YmJkbmRuYXdhbE5KYmJiWkpiYmI6O2F3SmJiYmI5R0VNZ3c6bEpiYmI5cDlEVG1iYXc6T2hkeGVrY2pqamo5NGhka2FiYWQ4NmJiYWJjbGZoYmFlY3VmZ2VtYnhka2thZVRtYmluZG5kbmFiY2xmZ2Q4VWViOllhYjhVZWJnaTpZZ2w6bDp0YWJjZGZndjhVZWJnbzpZZ3I6bDp0Z3dKYjs6RlNhd2F3TkpiYmJiYXdhd0piYmJiOUdnREVncTptZ2thcWFpY2I5aUVhbE1nd2F3TmFrYXFhb2NiOWlFYXJNZ3FhcU5NTTpyOnZnbE5KYmJiWkpiYmI6O2FERU1ncjpsSmJiYjlwOURUbWJhcjpPaGl4ZWtjampqajk0aGlrYWRhaTg3ZWJkbmRuYXFhbE5KYmJiWkpiYmI6O2FxSmJiYmI5R0VNZ3E6bEpiYmI5cDlEVG1iYXE6T2hkeGVrY2pqamo5NGhka2F2YWQ4N2ViZG5kbmF3YWxOSmJiYlpKYmJiOjthd0piYmJiOUdFTWd3OmxKYmJiOXA5RFRtYmF3Ok9oZHhla2NqampqOTRoZGthYmFkODdlYmFiY3dmaGJhZWN1ZmdlbWJra2s6NGlvaXVlOTlkdWQ5OWR1ZDk5ZG5hZVRtYmNiaGlhYmhsaW5kbmRuYWw4VWViZ3Y6WWdvSjpqaToxU2FsY29mOFVlYmdyY2lWZ3c6WTp2Z0ROSmJiYlpKYmJiOjthdmN1OWtFTWdxOmxKYmJiOXA5RFRtYmFxOk9oa3hla2NqampqOTRoa2thbGNsZjhVZWJodmFsY2RmOFVlYmh4YWxhcmNlZmNpR2NldGZhazg3ZWJkbmRuYXg6WWdxYUROSmJiYlpKYmJiOjtheGN1OWtFTWdtOmxKYmJiOXA5RFRtYmFtOk9oeHhla2NqampqOTRoeGthYmFpYXJjaUdna2ZjZDdjZXRmYXg4N2ViZG5kbmF2OllnbWFETkpiYmJaSmJiYjo7YXZjdTlrRU1nUDpsSmJiYjlwOURUbWJhUDpPaHZ4ZWtjampqajk0aHZrYWxhcmN1ZmNpR2NldGZhdjg3ZWJkbmRuYXdhdzI6WmdQYVBNYW9hb046dGFxYXFOOnRhbWFtTjp0Z29KYmJiYmFvSmJiYmI5R0U6cmFETkpiYmJaTWdEOmxKYmJiOXA5RFRtYmFEOk9ocnhla2NqampqOTRocmthbGFrY2V0ZmFyODdlYmFsY3dmaGxhaWNsZmhpYWVjdWZnZW1ia2trOW1iZG5hZGNkNGFlMmdkVG1iaW5hYmFieWRiZ2Vjd3RjdzkxOllhZWNlOTFjampqOThHY2pqajs4aWY6Ok5VZGJhYmNsZmhiYWRjdWZnZG1ia2trOlR2aXJ1ZDk5ZXVkbmRuYWRjbDlobWJhZVRtZWluZG5kbmFiUmJiZ2lhYmNlZmdsOFNiYmd2YWJjZGZnbzhTYmJncmY5UjpZSmJidUphYmNpZmd3UmJiZ2RjZTRhZFZnRGNkNGFEVmdEY2w0YURWZ0Q6Wjp2Z3FOSmJiYlpNZ2s6bEpiYmI5cDlEVG1iYWs6T2h4eGVrY2pqamo5NGh4a2FvYXg4NmJiZG5kbmFyYWlmOllhcU5KYmJiWk1nazpsSmJiYjlwOURUbWJhazpPaG94ZWtjampqajk0aG9rYWxhbzg2YmJkbmRuYXZhaWZhcjlSOllhcU5KYmJiWk1nazpsSmJiYjlwOURUbWJhazpPaGl4ZWtjampqajk0aGlrYWJhaTg2YmJkbmRuYURhZGNldEdhZGNlR1Y6WmFxTkpiYmJaTWdxOmxKYmJiOXA5RFRtYmFxOk9oZHhla2NqampqOTRoZGthd2FkODZiYmFiY2xmaGJhZWN1ZmdlbWJ4ZGtrYWVUbWJpbmRuZG5hYjhWZWJnaWFiY2RmZ2w4VWViZ3ZhYmNsZmdvOFVlYmdyZjlSOllKYkZ1OWhhYmNvZmd3OFZlYmdkY2U0YWRWZ0RjZDRhRFZnRGNsNGFEVmdEY3c0YURWZ0Q6Wjp2Z3FOSmJiYlpNZ2s6bEpiYmI5cDlEVG1iYWs6T2h4eGVrY2pqamo5NGh4a2FvYXg4N2ViZG5kbmFyYWlmOllhcU5KYmJiWk1nazpsSmJiYjlwOURUbWJhazpPaG94ZWtjampqajk0aG9rYWxhbzg3ZWJkbmRuYXZhaWZhcjlSOllhcU5KYmJiWk1nazpsSmJiYjlwOURUbWJhazpPaGl4ZWtjampqajk0aGlrYWJhaTg3ZWJkbmRuYURhZGNldEdhZGNlR1Y6WmFxTkpiYmJaTWdxOmxKYmJiOXA5RFRtYmFxOk9oZHhla2NqampqOTRoZGthd2FkODdlYmFiY3dmaGJhZWN1ZmdlbWJra2s5dGVpdWNiY2J5ZDpLOkc6Y2piZ2VhYmNpZmM5OEdmZ2JCZDpLOkc6Y2piZG5kbmFiWmJjenRnZDlubWJjdWhpYWJhZDlSY0ZGaWZjejRuYmN1U21la2FlaGlrYWlrO0xlZWV1ZG5kbmFlYWJWY2lHVG1iYWJoaXhla2RuZG5hZGN6OXBtYmFiaGl4ZWthYmhpaW5haWFleWRiQmRiYWljbGZhZWNsZnlkYkJkYmFpY3dmYWVjd2Z5ZGJCZGJhaWN4ZmFlY3hmeWRiQmRiYWVjemZoZWFpY3pmaGlhZGM5V2ZnZGNzMG1ia2thZGNsNm1iaW5haWFleWRiQmRiYWVjbGZoZWFpY2xmaGlhZGM5OGZnZGNpMG1ia2tkbmFkVG1iaW5haWFlUmJiODZiYmFpY2VmaGlhZWNlZmhlYWRjdWZnZG1ia2thYms7YWVlZHVkbmRuYWJjaUdUbWJhYmhpeGVrYWVjRmVHYzpiOmM6ZXcyaGxkbmRuYWRjejlwbWJhYmhpeGVrYWJoaWluYWlhbEJkYmFpY3hmYWxCZGJhaWN3ZmFsQmRiYWljbGZhbEJkYmFpY3pmaGlhZGM5V2ZnZGNzMG1ia2thZGNsNm1iaW5haWFsQmRiYWljbGZoaWFkYzk4ZmdkY2kwbWJra2RuYWRUbWJpbmFpYWU4NmJiYWljZWZoaWFkY3VmZ2RtYmtrYWJrazgzZGJjajpHZGs4S2JiYmJkYmJibGJiYndiYmJiYmJiZWJiYmRiYmJsYmJid2JiYmJjOks6R2RrbDhXOnFiYiIsZT0iYjlINzlUZWJiYmVLbDlHYmI5R3Z1dXV1dWV1OUdpdXV1YjlHZXVldWl4a2JiZWJlZWRkZGRpbHZlOVdlZWV2aWViZW93ZXVlY2o6R2RrcjtOZXFvOVRXOVQ5VlY5NWRiSDlGOUY5MzlINzlUOUY5SjlIMjI5RjlKdDlWVjdiYjhBOVRXNzlPOVY5V3Q5RjlLVzlKOVY5S1c5d1dWdFc5NDljOTE5TTlNV1ZiZFk5VFc3OU85VjlXdDlGOUtXOUo5VjlLVzY5VTlLVzk0OWM5MTlNOU1XVmJsRTlUVzc5TzlWOVd0OUY5S1c5SjlWOUtXNjlVOUtXOTQ5dFdHOTFXOVU5Sldidkw5VFc3OU85VjlXdDlGOUtXOUo5VjlLV1M5UDJ0V1Y5cDlKdGJvSzlUVzc5TzlWOVd0OUY5S1c5SjlWOUtXUzlQMnRXVjlyOTE5SHRickw5VFc3OU85VjlXdDlGOUtXOUo5VjlLV1M5UDJ0V1ZUOTQ5V2J3WTlUVzc5TzlWOVd0OUY5S1c5SjlWOUtXUzlQMnRXVko5VjI5VlZiRGw3OUlWOVJicXE6NTlEa2xiemlrOTRldnU4SmpqampiY3o5UmhiY2JoZWluY2JoZGNiaGlpbmFiY3dmYWRmYWljanVhZWFkNGNlR2dsRTg2YmJhaWFsZmhpYWRjZWZnZGN3OWhtYmthZWFpODZiOnE6VzpjamJhZWNpdGFiOFBpdzgzaTpxOkc6Y2piYWVjZWZnZWNqZDlobWJrazpTQmxFdWQ5N2R1cjk3OEpqampqYmNqO2tiOVJndjhLampqamJjOTpob2RuYWxUbWJjdWhvYWlSYmJncmM7V2VHYzpHZTlobWJhcmNzR2d3Y2UwbWJjOTpob2FsY3VmYWRjZDRjYmF3RWdEYWRmZ3JjS2NhYXdFZ3FhcmFxMEVnazZtYmFpYWxmZ3hhcjlSaG9kbmFkVGdtbWJhdmFvYWQ7OHFiYmthaWNlZmhQY2o7YWJhZDlVYztXRmJHY2pkYWRjYTBFaHNkbmRuZG5hZFRtYmFvYWRmaHpjYmhIaW5hZWFIOW5tZGF4YVA5UmFENm1pYWJhSGFkMmZnT2F2Y2pkZmFzYWVhSDlSYUhhc2ZhZTZFZ0FhQWNzZmdvYzlXR2dDU0VoWGFQYURmaFFhb2NsNGNpZmNkNGhMYXZjajtjYmZhQ2NldGZoS2F2Y2o7Y2JmYUNjaTJmaFlhdmNqO2NiZmFDZmg4QWNiaEVhb2M7YWI2aDNpbmNiaDVkbmF3VG1iYVBhRWNkNGZSYmJoNWtjYmg4RWF2Y2o7Y2JmaDhGaW5kbmRuZG5kbmE1YThFY2V0NGNpR2dvYzk6ZlBkZWJka2F4YVE5UmFDNm13ZG5hQ1RtYmF2Y2o7Y2JmYThFYUMyZmFRYUM7OHFiYmthUWFBZmhReGRrYUNUbWVhdmNqO2NiZmE4RWFDMmZjYmFDOzhrYnhla2F4YVE5UmFMNm1vYW9jbFZjYmF3RWhyYVFhTGZob2NiaGlkbmEzbWJheGFvOVJjO0diNm1iY2JobGluYThGYWxmaGlkbmRuZG5kbmRuZG5hUWFsY280ZlJiYmdxY2lHYXJmUERiZWRpYmxlZGlia2FpcHhiYmJiYmJiYmJiYmJiYmJicGtsYnhsa2FpYW9wYmJsYW9wYmJiZ2FjbHA6bWVhYXBtYnplSGRPaUFsQ3ZYb1FyTGdhY2RwOm1lYWFwbWJ6ZUhkT2lBbEN2WG9RckxweGlpaWlpaWlpaWlpaWlpaWlwOW9naHB4aWlpaWlpaWlpaWlpaWlpaXA4SmdhcDViOWNqRjs4OzQ7VztHO2FiOTo5Y1UxOk5nZ2NpdHBiaTpxOkc6Y2piYWdSYjpxOlc6Y2piZ2dwc2FhcDVlOWNqRjs4OzQ7VztHO2FiOTo5Y1UxOk5nOEpjaXRwYmk6cTpHOmNqYnA5VXBtYmVkaWx2b3J6SE9BQ1hRTHBQYWhhYXA5c3BrbGJhZ2FvY2xmZmE4SlJiOnE6VzpjamJmaG94aWthaWFvcGJid2FvcGJiYmdhY2xwOm1lYWFwbWJ6ZUhkT2lBbEN2WG9RckxweHNzc3Nzc3Nzc3Nzc3Nzc3NwOW9naHB4c3Nzc3Nzc3Nzc3Nzc3Nzc3A4SmdhcDViOWNqRjs4OzQ7VztHO2FiOTo5Y1UxOk5nZ2NpdHBiaTpxOkc6Y2piYWdSYjpxOlc6Y2piZ2dwc2FhcDVlOWNqRjs4OzQ7VztHO2FiOTo5Y1UxOk5nOEpjaXRwYmk6cTpHOmNqYnA5VXBtYmVkaWx2b3J6SE9BQ1hRTHBQYWhhYXA5c3BrbGJhZ2FvY3dmZmE4SlJiOnE6VzpjamJmaG94ZGthaWFvcGJiYnBrbGJhb2N6ZmhveGVrYWlhb3BiYmRhb1JiYmdnY2l0cGJpOnE6RzpjamJhZ1JiOnE6VzpjamJnZ3BzYW9SYmVnOEpjaXRwYmk6cTpHOmNqYnA5VXBtYmVkaWx2b3J6SE9BQ1hRTHBQcGtsYmFnYW9jZGZmYThKUmI6cTpXOmNqYmZob2tkbmRuZG5kbmRuZG5hcWNkNGNpR2FyZlBEYmVkaWJsZWRpYmthaWN6ZnB4YmJiYmJiYmJiYmJiYmJiYnBrbGJ4bGthaWN6ZmFvcGJibGFvcGJiYmdhY2xwOm1lYWFwbWJ6ZUhkT2lBbEN2WG9RckxnYWNkcDptZWFhcG1iemVIZE9pQWxDdlhvUXJMcHhpaWlpaWlpaWlpaWlpaWlpcDlvZ2hweGlpaWlpaWlpaWlpaWlpaWlwOEpnYXA1YjljakY7ODs0O1c7RzthYjk6OWNVMTpOZ2djaXRwYmk6cTpHOmNqYmFnUmI6cTpXOmNqYmdncHNhYXA1ZTljakY7ODs0O1c7RzthYjk6OWNVMTpOZzhKY2l0cGJpOnE6RzpjamJwOVVwbWJlZGlsdm9yekhPQUNYUUxwUGFoYWFwOXNwa2xiYWdhb2NsZmZhOEpSYjpxOlc6Y2piZmhveGlrYWljemZhb3BiYndhb3BiYmJnYWNscDptZWFhcG1iemVIZE9pQWxDdlhvUXJMcHhzc3Nzc3Nzc3Nzc3Nzc3NzcDlvZ2hweHNzc3Nzc3Nzc3Nzc3Nzc3NwOEpnYXA1YjljakY7ODs0O1c7RzthYjk6OWNVMTpOZ2djaXRwYmk6cTpHOmNqYmFnUmI6cTpXOmNqYmdncHNhYXA1ZTljakY7ODs0O1c7RzthYjk6OWNVMTpOZzhKY2l0cGJpOnE6RzpjamJwOVVwbWJlZGlsdm9yekhPQUNYUUxwUGFoYWFwOXNwa2xiYWdhb2N3ZmZhOEpSYjpxOlc6Y2piZmhveGRrYWljemZhb3BiYmJwa2xiYW9jemZob3hla2FpY3pmYW9wYmJkYW9SYmJnZ2NpdHBiaTpxOkc6Y2piYWdSYjpxOlc6Y2piZ2dwc2FvUmJlZzhKY2l0cGJpOnE6RzpjamJwOVVwbWJlZGlsdm9yekhPQUNYUUxwUHBrbGJhZ2FvY2RmZmE4SlJiOnE6VzpjamJmaG9rZG5kbmRuZG5kbmRuYXFjbDRjaUdhcmZQRGJlZGlibGVkaWJrYWljYWZweGJiYmJiYmJiYmJiYmJiYmJwa2xieGxrYWljYWZhb3BiYmxhb3BiYmJnYWNscDptZWFhcG1iemVIZE9pQWxDdlhvUXJMZ2FjZHA6bWVhYXBtYnplSGRPaUFsQ3ZYb1FyTHB4aWlpaWlpaWlpaWlpaWlpaXA5b2docHhpaWlpaWlpaWlpaWlpaWlpcDhKZ2FwNWI5Y2pGOzg7NDtXO0c7YWI5OjljVTE6TmdnY2l0cGJpOnE6RzpjamJhZ1JiOnE6VzpjamJnZ3BzYWFwNWU5Y2pGOzg7NDtXO0c7YWI5OjljVTE6Tmc4SmNpdHBiaTpxOkc6Y2picDlVcG1iZWRpbHZvcnpIT0FDWFFMcFBhaGFhcDlzcGtsYmFnYW9jbGZmYThKUmI6cTpXOmNqYmZob3hpa2FpY2FmYW9wYmJ3YW9wYmJiZ2FjbHA6bWVhYXBtYnplSGRPaUFsQ3ZYb1FyTHB4c3Nzc3Nzc3Nzc3Nzc3Nzc3A5b2docHhzc3Nzc3Nzc3Nzc3Nzc3NzcDhKZ2FwNWI5Y2pGOzg7NDtXO0c7YWI5OjljVTE6TmdnY2l0cGJpOnE6RzpjamJhZ1JiOnE6VzpjamJnZ3BzYWFwNWU5Y2pGOzg7NDtXO0c7YWI5OjljVTE6Tmc4SmNpdHBiaTpxOkc6Y2picDlVcG1iZWRpbHZvcnpIT0FDWFFMcFBhaGFhcDlzcGtsYmFnYW9jd2ZmYThKUmI6cTpXOmNqYmZob3hka2FpY2FmYW9wYmJicGtsYmFvY3pmaG94ZWthaWNhZmFvcGJiZGFvUmJiZ2djaXRwYmk6cTpHOmNqYmFnUmI6cTpXOmNqYmdncHNhb1JiZWc4SmNpdHBiaTpxOkc6Y2picDlVcG1iZWRpbHZvcnpIT0FDWFFMcFBwa2xiYWdhb2NkZmZhOEpSYjpxOlc6Y2piZmhva2RuZG5kbmRuZG5kbmFxY280YXJmUERiZWRpYmxlZGlia2FpYzhXZnB4YmJiYmJiYmJiYmJiYmJiYnBrbGJ4bGthaWM4V2Zhb3BiYmxhb3BiYmJnYWNscDptZWFhcG1iemVIZE9pQWxDdlhvUXJMZ2FjZHA6bWVhYXBtYnplSGRPaUFsQ3ZYb1FyTHB4aWlpaWlpaWlpaWlpaWlpaXA5b2docHhpaWlpaWlpaWlpaWlpaWlpcDhKZ2FwNWI5Y2pGOzg7NDtXO0c7YWI5OjljVTE6TmdpY2l0cGJpOnE6RzpjamJhaVJiOnE6VzpjamJnaXBzYWFwNWU5Y2pGOzg7NDtXO0c7YWI5OjljVTE6TmdxY2l0cGJpOnE6RzpjamJwOVVwbWJlZGlsdm9yekhPQUNYUUxwUGFoYWFwOXNwa2xiYWlhb2NsZmZhcVJiOnE6VzpjamJmaG94aWthaWM4V2Zhb3BiYndhb3BiYmJnYWNscDptZWFhcG1iemVIZE9pQWxDdlhvUXJMcHhzc3Nzc3Nzc3Nzc3Nzc3NzcDlvZ2hweHNzc3Nzc3Nzc3Nzc3Nzc3NwOEpnYXA1YjljakY7ODs0O1c7RzthYjk6OWNVMTpOZ2ljaXRwYmk6cTpHOmNqYmFpUmI6cTpXOmNqYmdpcHNhYXA1ZTljakY7ODs0O1c7RzthYjk6OWNVMTpOZ3FjaXRwYmk6cTpHOmNqYnA5VXBtYmVkaWx2b3J6SE9BQ1hRTHBQYWhhYXA5c3BrbGJhaWFvY3dmZmFxUmI6cTpXOmNqYmZob3hka2FpYzhXZmFvcGJiYnBrbGJhb2N6ZmhveGVrYWljOFdmYW9wYmJkYW9SYmJnaWNpdHBiaTpxOkc6Y2piYWlSYjpxOlc6Y2piZ2lwc2FvUmJlZ3FjaXRwYmk6cTpHOmNqYnA5VXBtYmVkaWx2b3J6SE9BQ1hRTHBQcGtsYmFpYW9jZGZmYXFSYjpxOlc6Y2piZmhva2FsYzthYmZoaWFsY2plZmFDMG1lYWlobGF4YW85UmM7RmIwbWJra2RuYWlhQzlwbWJhaWNpNGhsaW5heGFvOVJjSzZtd2E4RmFpZmhxZG5kbmRuZG5kbmRuYVFhaWNvNGZSYmJhbGNvRzRjaUdhcmZQRGJlZGlibGVkaWJrYXFweGJiYmJiYmJiYmJiYmJiYmJwa2JieGxrYXFhb3BiYmxhb3BiYmJnYWNscDptZWFhcG1iemVIZE9pQWxDdlhvUXJMZ2FjZHA6bWVhYXBtYnplSGRPaUFsQ3ZYb1FyTHB4aWlpaWlpaWlpaWlpaWlpaXA5b2docHhpaWlpaWlpaWlpaWlpaWlpcDhKZ2FwNWI5Y2pGOzg7NDtXO0c7YWI5OjljVTE6TmdnY2l0cGJpOnE6RzpjamJhZ1JiOnE6VzpjamJnZ3BzYWFwNWU5Y2pGOzg7NDtXO0c7YWI5OjljVTE6Tmc4SmNpdHBiaTpxOkc6Y2picDlVcG1iZWRpbHZvcnpIT0FDWFFMcFBhaGFhcDlzcGtiYmFnYW9jbGZmYThKUmI6cTpXOmNqYmZob3hpa2FxYW9wYmJ3YW9wYmJiZ2FjbHA6bWVhYXBtYnplSGRPaUFsQ3ZYb1FyTHB4c3Nzc3Nzc3Nzc3Nzc3Nzc3A5b2docHhzc3Nzc3Nzc3Nzc3Nzc3NzcDhKZ2FwNWI5Y2pGOzg7NDtXO0c7YWI5OjljVTE6TmdnY2l0cGJpOnE6RzpjamJhZ1JiOnE6VzpjamJnZ3BzYWFwNWU5Y2pGOzg7NDtXO0c7YWI5OjljVTE6Tmc4SmNpdHBiaTpxOkc6Y2picDlVcG1iZWRpbHZvcnpIT0FDWFFMcFBhaGFhcDlzcGtiYmFnYW9jd2ZmYThKUmI6cTpXOmNqYmZob3hka2FxYW9wYmJicGtiYmFvY3pmaG94ZWthcWFvcGJiZGFvUmJiZ2djaXRwYmk6cTpHOmNqYmFnUmI6cTpXOmNqYmdncHNhb1JiZWc4SmNpdHBiaTpxOkc6Y2picDlVcG1iZWRpbHZvcnpIT0FDWFFMcFBwa2JiYWdhb2NkZmZhOEpSYjpxOlc6Y2piZmhva2FsY2RmaGxhaWN6ZmdpYUM2bWJra2FvaFFhb1Rtb2thOEZhQ2ZoOEZhOEVjZWZnOEVjbDlobWJrZG5kbmRuZG5hd1RtYmF6YUVjZDRmUmJiZ2xjaUdQbGJlZHdia2FDVG1kYVhhRWZobGF2YUVmcGJkYmg4S2NiaG9pbmFsYXZjajtjYmZhb2ZwYmxiZzhMYThBYW9mcGJsYmc4TXBtYnplSGRPaUFsQ3ZYb1FyTGc4TmFLYW9mcGJsYmd5YVlhb2ZwYmxiZzhQcG1iemVIZE9pQWxDdlhvUXJMZ0lwbWJlekhkaU9BbHZDWG9yUUxnYWNlcDlUYWFweGVlZWVlZWVlZWVlZWVlZWVnaHA5b3A5SHA5cmdhYThLcDlVZzhLcDlBYmJiYWxhZGZnbGE4S2FhYWFwbWx2b3Jsdm9ybHZvcmx2b3JwOVVnOEtwOUFiYmJhbGFkZmdsYThLYWFhYXBtd0Rxa3dEcWt3RHFrd0Rxa3A5VWc4S3A5QWJiYmFsYWRmZ2xhOEthYWFhcG14bVBzeG1Qc3htUHN4bVBzcDlVZzhLcDlBYmJiYWxhZGZnbGE4S2E4TmFJcG13REtZcWs4QUV4bTM1UHM4RThGZ2FjZXA5VGFhYWhwOW9wOUhwOXJnYXA5VWc4S3A5QWJiYmFsYWRmZ2xhOEthYWFhcG1sdm9ybHZvcmx2b3Jsdm9ycDlVZzhLcDlBYmJiYWxhZGZnbGE4S2FhYWFwbXdEcWt3RHFrd0Rxa3dEcWtwOVVnOEtwOUFiYmJhbGFkZmdsYThLYWFhYXBteG1Qc3htUHN4bVBzeG1Qc3A5VWc4S3A5QWJiYmFsYWRmZ2xhOEthOExhOE1wbXdLRFlxOEFrRXgzbTVQOEVzOEZnOExheWE4UHBtd0tEWXE4QWtFeDNtNVA4RXM4Rmc4TXBtYmV6SGRpT0FsdkNYb3JRTGdhY2VwOVRhYWFocDlvcDlIcDlyZ2FwOVVnOEtwOUFiYmJhbGFkZmdsYThLYWFhYXBtbHZvcmx2b3Jsdm9ybHZvcnA5VWc4S3A5QWJiYmFsYWRmZ2xhOEthYWFhcG13RHFrd0Rxa3dEcWt3RHFrcDlVZzhLcDlBYmJiYWxhZGZnbGE4S2FhYWFwbXhtUHN4bVBzeG1Qc3htUHNwOVVnOEtwOUFiYmJhbGFkZmdsYThLYThMYThNcG13REtZcWs4QUV4bTM1UHM4RThGZ2FjZXA5VGFhYWhwOW9wOUhwOXJnYXA5VWdocDlBYmJiYWxhZGZnbGFoYWFhYXBtbHZvcmx2b3Jsdm9ybHZvcnA5VWdocDlBYmJiYWxhZGZnbGFoYWFhYXBtd0Rxa3dEcWt3RHFrd0Rxa3A5VWdocDlBYmJiYWxhZGZnbGFoYWFhYXBteG1Qc3htUHN4bVBzeG1Qc3A5VWc4S3A5QWJiYmFsYWRmaGxhb2N6ZmdvYUM2bWJ4aWtrYUNUbWVhWGFFZmhsYXZhRWZwYmRiaDhLY2Job2luYWxhdmNqO2NiZmFvZnBibGJnOExhOEFhb2ZwYmxiZzhNcG1iemVIZE9pQWxDdlhvUXJMZzhOYUthb2ZwYmxiZ3lhWWFvZnBibGJnOFBwbWJ6ZUhkT2lBbEN2WG9RckxnSXBtYmV6SGRpT0FsdkNYb3JRTGdhY2VwOm5lYWFweGViZWJlYmViZWJlYmViZWJnaHA5b3A6YmVwOXJnYWE4S3A6b2VnOEtwOUFiYmJhbGFkZmdsYThLYWFhYXBtbHZvcmx2b3Jsdm9ybHZvcnA6b2VnOEtwOUFiYmJhbGFkZmdsYThLYWFhYXBtd0Rxa3dEcWt3RHFrd0Rxa3A6b2VnOEtwOUFiYmJhbGFkZmdsYThLYWFhYXBteG1Qc3htUHN4bVBzeG1Qc3A6b2VnOEtwOUFiYmJhbGFkZmdsYThLYThOYUlwbXdES1lxazhBRXhtMzVQczhFOEZnYWNlcDpuZWFhYWhwOW9wOmJlcDlyZ2FwOm9lZzhLcDlBYmJiYWxhZGZnbGE4S2FhYWFwbWx2b3Jsdm9ybHZvcmx2b3JwOm9lZzhLcDlBYmJiYWxhZGZnbGE4S2FhYWFwbXdEcWt3RHFrd0Rxa3dEcWtwOm9lZzhLcDlBYmJiYWxhZGZnbGE4S2FhYWFwbXhtUHN4bVBzeG1Qc3htUHNwOm9lZzhLcDlBYmJiYWxhZGZnbGE4S2E4TGE4TXBtd0tEWXE4QWtFeDNtNVA4RXM4Rmc4TGF5YThQcG13S0RZcThBa0V4M201UDhFczhGZzhNcG1iZXpIZGlPQWx2Q1hvclFMZ2FjZXA6bmVhYWFocDlvcDpiZXA5cmdhcDpvZWc4S3A5QWJiYmFsYWRmZ2xhOEthYWFhcG1sdm9ybHZvcmx2b3Jsdm9ycDpvZWc4S3A5QWJiYmFsYWRmZ2xhOEthYWFhcG13RHFrd0Rxa3dEcWt3RHFrcDpvZWc4S3A5QWJiYmFsYWRmZ2xhOEthYWFhcG14bVBzeG1Qc3htUHN4bVBzcDpvZWc4S3A5QWJiYmFsYWRmZ2xhOEthOExhOE1wbXdES1lxazhBRXhtMzVQczhFOEZnYWNlcDpuZWFhYWhwOW9wOmJlcDlyZ2FwOm9lZ2hwOUFiYmJhbGFkZmdsYWhhYWFhcG1sdm9ybHZvcmx2b3Jsdm9ycDpvZWdocDlBYmJiYWxhZGZnbGFoYWFhYXBtd0Rxa3dEcWt3RHFrd0Rxa3A6b2VnaHA5QWJiYmFsYWRmZ2xhaGFhYWFwbXhtUHN4bVBzeG1Qc3htUHNwOm9lZzhLcDlBYmJiYWxhZGZobGFvY3pmZ29hQzZtYnhka2thQ1RtYmFYYUVmaHJjYmhvY2JhbGNsNGdsOVJjOEZHaGlhdmFFZnBiZGJoaGluYXJhdmNqO2NiZmFvZnBibGJnOEthOEFhb2ZwYmxiZzhMcG1iemVIZE9pQWxDdlhvUXJMZzhNYUthb2ZwYmxiZzhOYVlhb2ZwYmxiZ3lwbWJ6ZUhkT2lBbEN2WG9RckxnOFBwbWJlekhkaU9BbHZDWG9yUUxnYWFpcDpSZWFhYWxwOlRlcDlxZ2FhaHA5cmdocDlBYmJiYXJhZGZncmFoYWFhYXBtbHZvcmx2b3Jsdm9ybHZvcnA5cmdocDlBYmJiYXJhZGZncmFoYWFhYXBtd0Rxa3dEcWt3RHFrd0Rxa3A5cmdocDlBYmJiYXJhZGZncmFoYWFhYXBteG1Qc3htUHN4bVBzeG1Qc3A5cmdocDlBYmJiYXJhZGZncmFoYThNYThQcG13REtZcWs4QUV4bTM1UHM4RThGZ2FhaXA6UmVhYWFscDpUZXA5cWdhcDlyZ2hwOUFiYmJhcmFkZmdyYWhhYWFhcG1sdm9ybHZvcmx2b3Jsdm9ycDlyZ2hwOUFiYmJhcmFkZmdyYWhhYWFhcG13RHFrd0Rxa3dEcWt3RHFrcDlyZ2hwOUFiYmJhcmFkZmdyYWhhYWFhcG14bVBzeG1Qc3htUHN4bVBzcDlyZ2hwOUFiYmJhcmFkZmdyYWhhOEthOExwbXdLRFlxOEFrRXgzbTVQOEVzOEZnOEthOE5heXBtd0tEWXE4QWtFeDNtNVA4RXM4Rmc4THBtYmV6SGRpT0FsdkNYb3JRTGdhYWlwOlJlYWFhbHA6VGVwOXFnYXA5cmdocDlBYmJiYXJhZGZncmFoYWFhYXBtbHZvcmx2b3Jsdm9ybHZvcnA5cmdocDlBYmJiYXJhZGZncmFoYWFhYXBtd0Rxa3dEcWt3RHFrd0Rxa3A5cmdocDlBYmJiYXJhZGZncmFoYWFhYXBteG1Qc3htUHN4bVBzeG1Qc3A5cmdocDlBYmJiYXJhZGZncmFoYThLYThMcG13REtZcWs4QUV4bTM1UHM4RThGZ2FhaXA6UmVhYWFscDpUZXA5cWdhcDlyZ2hwOUFiYmJhcmFkZmdyYWhhYWFhcG1sdm9ybHZvcmx2b3Jsdm9ycDlyZ2hwOUFiYmJhcmFkZmdyYWhhYWFhcG13RHFrd0Rxa3dEcWt3RHFrcDlyZ2hwOUFiYmJhcmFkZmdyYWhhYWFhcG14bVBzeG1Qc3htUHN4bVBzcDlyZ2hwOUFiYmJhcmFkZmhyYW9jemZnb2FDNm1ia2thRWNsZmdFYWQ2bWJrZG5hWGF2Y2pkZjlobWJhQWFkMmdvVG1iYU9hdmNqZGZhbzs4cWJia2RuYW1tYmF2YVhhQWN1ZmFkMmZhZDs4cWJia2FBYUhmaEhjOTpob2FRaFBhUW1ieGxra2FlVG1iYURhbGZocmNiaG9jdWhsaW5hcmFsYUQ5UmdsZmFENm1kYXNhZWFvOVJhb2FzZmFlNkVhb2Znb2FlNm1ia2FpYWw5UmhQa2NiYzk5YXhhUDlSYWtTRWhveGVrYzk6aG9rYXZjajtrYmY4S2pqampiYW9rd2J6OmJqampia05zZXp1OEpqampqYmM7YWU5Umd2OEtqampqYmM5OmhvZG5hbGFlY2k5VWdyY0hmNm1iY3Vob2FpUmJiZ3djO1dlR2M7R2U5aG1iYXdjc0dnRGNlMG1iYXZjO2FiZmNGZWNqZTs4a2JhdjljdTgzaVVhdjljdTgzaThXYXY5Y3U4M2l5YXY5Y3U4M2lhYXY5Y3U4M2lLYXY5Y3U4M2l6YXY5Y3U4M2l3YXY5Y3U4M2liYWlhbGZjOVdmaHFhaWNlZmd3YXJmaGxkbmFlVG1iY21jc2FEY2VTRWhrY2JoeGNiaG1jYmhyY2JoaWNiaG9pbmRuYWxhcTlubWJjOTpob3hpa2RuZG5hd1JiYmdEYztWZTBtYmF2YzthYmZhb2FEY3U3Z1BjbDRmY3NHY2l0ZmdzeWRsaHphc3lkYmhIZG5kbmFEY3NHZ3NhazlwbWJhdmFpYVBmY3NHY2R0ZnlkYmF4YXNFaERheGFzVGdPZmh4eGVrZG5kbmFzY3NTbWJjZWhPYXNjOTg3YXNhbWZmY2VmaER4ZWthbGNlZmhEYWw4U2JiZ3NjRmVHaFBkbmRuYXNjdTltbWJhRGhseGVrYWxjdmZobGFQY0ZiR2hQY3Joc2RuaW5hRDhTYmJnT2NGYkdhc3RhUFZoUGFPY3U5a21lYURjZWZoRGFzY3JmZ3NjOEo5aG1ieGRra2FEY2VmaGxrY2VoT2FQY2U0Y2JhUGNlRzlSN2FtZmhEa2FEaG1rYXZjO2FiZmFvY2l0ZmdzYURCZGJhc2F6QmRsYXZhaWNkdGZhREJkYmF2YzthYmZhb2NlZmNzR2NpdGZnc2FIQmRiYXNhREJkbGFvY2RmaG9hT2FpZmhpZG5hZGNkOWhtYmFiYXJjZXRmZ3NhSDg3ZWJhc2NsZmFEODdlYmFzY2RmYXo4N2VieGRrYWJhcmNkdGZnc2FIQmRiYXNjd2ZhREJkYmFzY2xmYXpCZGJ4ZWtkbmFEY3BlMG1iYXZhaWFxYURjc0dmUmJiZ3NjbDRnUDlSY3NHY2R0ZnlkYmF4Y2VmZ09hUEVoRGF2YWlhczlSY3NHY2R0ZnlkYmFPYVBUZ3pmZ09hc2NzR2dQRWhzYVBUaFBkbmRuYWRjZDlobWJhYmFyY2V0ZmdIYXg4N2ViYUhjbGZhczg3ZWJhSGNkZmFEODdlYnhla2FiYXJjZHRmZ0hheEJkYmFIY3dmYXNCZGJhSGNsZmFEQmRia2F2YWljZHRmYXhCZGJhdmM7YWJmYW9jaXRmZ0hhREJkYmFIYXhCZGxhdmFpY2VmZ2ljc0djZHRmYURCZGJhdmM7YWJmYW9jZWZjc0djaXRmZ0hhc0JkYmFIYURCZGxhdmFpYXpmZ2ljc0djZHRmYXNCZGJhdmM7YWJmYW9jZGZjc0djaXRmZ0RheEJkYmFEYXNCZGxhb2NpZmhvYWlhUGZoaWFPYVBmaHh4ZWtheGNiYWxSYmJnc0VnSGFEYzs6ZVNnRGZoT2FzY3NHaEFkbmRuYXNjbDRnQ21iYU9jZWZoenhla2FPaHphdmFpYUM5UmNzR2NkdGZ5ZGJoT2tkbmRuYUFtYmF6Y2VmaHh4ZWthemh4YXZhaWFzOVJjc0djZHRmeWRiaHprZG5kbmFEVG1iYWxjZWZoRHhla2FsY2RmaERhbDhTYmVnUGNGZUdoc2RuYVBjdTlrbWJhbGNvZmhIYXNjRmJHaHNjcmhsZG5pbmFEOFNiYmdQY0ZiR2FsdGFzVmhzYVBjdTlrbWVhRGNlZmhEYWxjcmZnbGM4SjlobWJrYUhoRHhla2FEY2VmaERrYXNjZTRjYmFzY2VHOVI3YW1mZ21oSGtkbmRuYUNjc1NtYmFEaHN4ZWthRGNlZmhzYUQ4U2JiZ2xjRmVHaFBkbmFsY3U5a21iYURjdmZoT2FQY0ZiR2hQY3JobGRuaW5hczhTYmJnRGNGYkdhbHRhUFZoUGFEY3U5a21lYXNjZWZoc2FsY3JmZ2xjOEo5aG1ia2FPaHN4ZWthc2NlZmhza2FQY2U0Y2JhUGNlRzlSN2FtZmdtaE9rZG5kbmFBY3NTbWJhc2hseGVrYXNjZWZobGFzOFNiYmdEY0ZlR2hQZG5hRGN1OWttYmFzY3ZmaHphUGNGYkdoUGNyaERkbmluYWw4U2JiZ3NjRmJHYUR0YVBWaFBhc2N1OWttZWFsY2VmaGxhRGNyZmdEYzhKOWhtYmthemhseGVrYWxjZWZobGthUGNlNGNiYVBjZUc5UjdhbWZnbWh6a2RuZG5hZGNkOWhtYmFiYXJjZXRmZ0RhSDg3ZWJhRGNsZmF6ODdlYmFEY2RmYU84N2VieGVrYWJhcmNkdGZnRGFIQmRiYURjd2ZhekJkYmFEY2xmYU9CZGJrYXZjO2FiZmFvY2l0ZmdEYU9CZGJhRGFIQmRsYXZhaWNkdGZhSEJkYmF2YzthYmZhb2NlZmNzR2NpdGZnRGF6QmRiYURhT0JkbGF2YWljZWZnaWNzR2NkdGZhT0JkYmF2YzthYmZhb2NkZmNzR2NpdGZnRGFIQmRiYURhekJkbGF2YWlhQ1RhQ2NzU1ZmZ2ljc0djZHRmYXpCZGJhaWFBVGFBY3NTVmZoaWFvY2lmaG9rYXdjZWZod2FvY3NHaG9haWNzR2hpYXJjaWZncmFlNm1ia2tjYmM5OWFsYXFTRWhva2F2YzthZWY4S2pqampiYW9rOmNsZXZ1OEpqampqYmN6OVJodmRuYWxhZWN2ZjlwbWJjOTpza2RuYWlSYmJjOzplR2M7cWVTbWJjdXNrYXY5Y2I4M2l3YWljZWZob2FpYWxmYzk4ZmhyZG5hZVRtYmRuYWRjZFNtYmNiaHdpbmRuYW9hcjZtYmM5OnNrYW9jZWZobGFvOFNiYmdpY0ZlR2hkZG5kbmFpY3U5bW1iYWxob3hla2FvY3ZmaG9hZGNGYkdoZGNyaGlkbmluYWw4U2JiZ0RjRmJHYWl0YWRWaGRhRGN1OWttZWFsY2VmaGxhaWNyZmdpYzhKOWhtYnhka2thbGNlZmhva2FiYXdjZHRmYWRjOEV0YzhGOTFhZGNkNDdhdmN3ZmFkY2VHY2R0VmdseWRiZmdpQmRiYWxhaUJkYmF3Y2VmZ3dhZTlobWJ4ZGtrY2Jod2luZG5hb2FyNm1iYzk6c2thb2NlZmhsYW84U2JiZ2ljRmVHaGRkbmRuYWljdTltbWJhbGhveGVrYW9jdmZob2FkY0ZiR2hkY3JoaWRuaW5hbDhTYmJnRGNGYkdhaXRhZFZoZGFEY3U5a21lYWxjZWZobGFpY3JmZ2ljOEo5aG1ieGRra2FsY2VmaG9rYWJhd2NldGZhZGM4RXRjOEY5MWFkY2Q0N2F2Y3dmYWRjZUdjZHRWZ2x5ZGJmZ2k4N2ViYWxhaUJkYmF3Y2VmZ3dhZTlobWJra2NiYzk5YW9hclNFaztUb2lvOTdldWU5N2FlYzk4R2hlZG5kbmFkY2w5aG1iYWVUbWVjYmhkaW5hYmFicGJiYmdpY0twOlJlY0twOlNlcDs2ZWdsYWljd3A6UmVjS3A6U2VwOzZlYWxwO0dlYWljenA6UmVjS3A6U2VwOzZlZ3ZwO0dlcDtLZXA7TGVnb3B4YmJiYmJiYmJiYmJiYmJiYnA6MmVncmFscHhiYmJqYmJiamJiYmpiYmJqZ3dwOW9wOXJwO0tlZ2xweGJiOzo5Y2JiOzo5Y2JiOzo5Y2JiOzo5Y2FsYWxwO01lYW9hb3A7TWVhdmFyYXZhd3A5b3A5cnA7S2VnbGFscDtNZXA7S2VwO0tlcDtKZXA7TmVndnA7TWVweGJibjBiYm4wYmJuMGJibjBncnA7S2VweEZiYmJGYmJiRmJiYkZiYmJwOW9haXB4YmJiRmJiYkZiYmJGYmJiRnA5b3A5cWFsYXZwO01lYXJwO0tlY3dwOlJlcHhiRmJiYkZiYmJGYmJiRmJicDlvcDlxYW9hdnA7TWVhcnA7S2VjenA6UmVweGJiRmJiYkZiYmJGYmJiRmJwOW9wOXFwa2JiYWJjemZoYmFkY2xmZ2RhZTZtYnhka2thZVRtYmNiaGRpbmFiY3pmZ0RhRHBiYmJnaXB4YmJiYmJiRkZiYmJiYmJGRmd3cDlvYWJwYmJiZ29haXBtYmVkaXdEcWt6SE9BS1k4QUVndmN6cDpSZWN6cDpTZXA7NmVnbGFvYWlwbWx2b3J4bVBzQ1hRTDM1OEU4RnB4RnViYkZ1YmJGdWJiRnViYnA5b3A7NmVhdmN6cDpTZXA7NmVndnA7R2VhbHA7R2VwO0tlcDtMZWdpcHhiYmJiYmJiYmJiYmJiYmJicDoyZWdyYWxweGJiYmpiYmJqYmJiamJiYmpncXA5b3A5cnA7S2VnbHB4Yjs6RlNiOzpGU2I7OkZTYjs6RlNhbGFscDtNZWFpYWlwO01lYXZhcmF2YXFwOW9wOXJwO0tlZ2xhbHA7TWVwO0tlcDtLZXA7SmVwO05lZ3ZwO01lcHhiYm4wYmJuMGJibjBiYm4wZ3JwO0tlcHhGRmJiRkZiYkZGYmJGRmJicDlvYWlhdnA7TWVhcnA7S2VjenA6UmVwOXFnaWFsYXZwO01lYXJwO0tlcHhGRmJiRkZiYkZGYmJGRmJicDlvZ2xwbXdES1lxazhBRXhtMzVQczhFOEZwOXFwa2JiYWJhb2F3cDlvYWlhbHBtYmV6SGRpT0FsdkNYb3JRTHA5cXBrYmJhYmNhZmhiYWRjbGZnZGFlNm1ia2trOzJpbGV1ZTk3ZXVvOTdkbmFlYzk4R2dpVG1iY2JoZWluYWJjS2ZweDpqaToxUzpqaToxUzpqaToxUzpqaToxU2FicGJiYmdsYWJjemZndnBiYmJnb3BtbHZvcnhtUHNDWFFMMzU4RThGZ3JjenA6U2Vnd3B4aWJiYmliYmJpYmJiaWJiYnA5cXA7NmVnRHA7TmVncWFEYURwO01lZ0RhRHA7S2VhbGFvcG1iZWRpd0Rxa3pIT0FLWThBRWdEY3pwOlJlY3pwOlNlcDs2ZWdsYWxwO01lYURjenA6U2VwOzZlZ29hb3A7TWVhcmN6cDpSZWN6cDpTZXA7NmVncmFycDtNZXA7S2VwO0tlcDtMZXB4YmJiYmJiYmJiYmJiYmJiYnA6NGVwO0plcDtNZXB4YmJuMGJibjBiYm4wYmJuMGdEcDtLZXB4RkZiYkZGYmJGRmJiRkZiYmdrcDlvYXFhb3A7TWVhRHA7S2VjenA6UmVwOXFnb2FxYWxwO01lYURwO0tlYWtwOW9hcWFycDtNZWFEcDtLZWN6cDpSZXA5cWdEcG13REtZcWs4QUV4bTM1UHM4RThGZ2xwNWVhd2NscDpSZWdxcEVpOlQ6ajgzaWJhdmFscDViYXFwRWQ6VDpqODNpYmFiY3dmYW9hRHBtYmV6SGRpT0FsdkNYb3JRTGdEcDVlYXFwRWU6VDpqODNpYmFiYURwNWJhcXBFYjpUOmo4M2liYWJjYWZoYmFlY2xmZ2VhaTZtYmtra3VlZTk3ZG5hZGNkNGFlMmM5OEdnZVRtYmNiaGRpbmFiYWJwYmJiZ2ljd3A6UmVjd3A6U2VwOzZlYWljZXA6U2VweGJiakZiYmpGYmJqRmJiakZwOW9weGJialpiYmpaYmJqWmJialpwOlVlcDtNZXBrYmJhYmN6ZmhiYWRjbGZnZGFlNm1ia2trOlNvZHc5N2V1YWVjOThHaGVkbmRuYWRjbDlobWJhZVRtZWNiaGRpbmFicHhiYnVKYmJ1SmJidUpiYnVKYWJwYmJiZ2ljS3A6VGVnbGFpY1lwOlRlcDlxZ3ZjZHA6VGVhdnA5cWd2Y2xwOlRlYXZwOXFnb3A7NmVwO05lZ3ZhaWN3cDpSZWNLcDpTZWdyYWlweEZiYmJGYmJiRmJiYkZiYmJnd3A5b2dEcDpVZXA7NmVwO01lcHhiYm4wYmJuMGJibjBiYm4wZ3FwO0tlY3dwOlJlcHhiRmJiYkZiYmJGYmJiRmJicDlvYXZhRGFycDpYZWFpY3pwOlJlY0twOlNlZ2lwOlVlcDs2ZXA7TWVhcXA7S2Vhd3A5b3A5cWF2YURhcmFpcDpVZXA6WGVwOzZlcDtNZWFxcDtLZWN6cDpSZXB4YmJGYmJiRmJiYkZiYmJGYnA5b3A5cWF2YW9hbGNlcDpSZXA5b2FscHhlYmJiZWJiYmViYmJlYmJicDlvcDlxcDs2ZXA7TWVhcXA7S2VjS3A6UmVwOXFwa2JiYWJjemZoYmFkY2xmZ2RhZTZtYnhka2thZVRtYmNiaGRpbmFiY3pmZ2tweGJGdTloYkZ1OWhiRnU5aGJGdTloYWJwYmJiZ2xha3BiYmJncnBtbHZvcnhtUHNDWFFMMzU4RThGZ3ZjenA6VGVncWF2Y0hwOlRlcDlxZ2ljZHA6VGVhaXA5cWdpY2xwOlRlYWlwOXFnaWN3cDpUZWFpcDlxZ29wOzZlcDtOZWdpYWxhcnBtYmVkaXdEcWt6SE9BS1k4QUVnRHB4RkZiYkZGYmJGRmJiRkZiYmdscDlvZ3JhRGN6cDpTZWd3cDpVZWF2Y3pwOlJlY3pwOlNlZ0RwOlhlcDs2ZXA7TWVweGJibjBiYm4wYmJuMGJibjBndnA7S2VhbHA5b2FpYXJhd2FEcDpVZXA6WGVwOzZlcDtNZWF2cDtLZWN6cDpSZXA5cWd3YWlhb2FxY2VwOlJlcDlvYXFweGViYmJlYmJiZWJiYmViYmJwOW9wOXFwOzZlcDtNZWF2cDtLZWN6cDpSZWFpYURhcnA6VWVwOzZlcDtNZWF2cDtLZWFscDlvcDlxZ2lwbXdES1lxazhBRXhtMzVQczhFOEZwa2JiYWJhd2FpcG1iZXpIZGlPQWx2Q1hvclFMcGtiYmFiY2FmaGJhZGNsZmdkYWU2bWJra2s5dGVpdWNiY2J5ZGo6RzpjamJnZWFiY2lmYzk4R2ZnYkJkajpHOmNqYmRuZG5hYlpiY3p0Z2Q5bm1iY3VoaWFiYWQ5UmNGRmlmY3o0bmJjdVNtZWthZWhpa2Fpa2t4ZWJjajpHZGtsejp6YmIiLHQ9bmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNCwxLDk2LDAsMCwzLDMsMiwwLDAsNSwzLDEsMCwxLDEyLDEsMCwxMCwyMiwyLDEyLDAsNjUsMCw2NSwwLDY1LDAsMjUyLDEwLDAsMCwxMSw3LDAsNjUsMCwyNTMsMTUsMjYsMTFdKSxvPW5ldyBVaW50OEFycmF5KFszMiwwLDY1LDIsMSwxMDYsMzQsMzMsMywxMjgsMTEsNCwxMyw2NCw2LDI1MywxMCw3LDE1LDExNiwxMjcsNSw4LDEyLDQwLDE2LDE5LDU0LDIwLDksMjcsMjU1LDExMywxNyw0Miw2NywyNCwyMywxNDYsMTQ4LDE4LDE0LDIyLDQ1LDcwLDY5LDU2LDExNCwxMDEsMjEsMjUsNjMsNzUsMTM2LDEwOCwyOCwxMTgsMjksNzMsMTE1XSk7aWYodHlwZW9mIFdlYkFzc2VtYmx5IT0ib2JqZWN0IilyZXR1cm57c3VwcG9ydGVkOiExfTt2YXIgYT1XZWJBc3NlbWJseS52YWxpZGF0ZSh0KT9mKGUpOmYobikscixpPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGEse30pLnRoZW4oZnVuY3Rpb24oRSl7cj1FLmluc3RhbmNlLHIuZXhwb3J0cy5fX3dhc21fY2FsbF9jdG9ycygpfSk7ZnVuY3Rpb24gZihFKXtmb3IodmFyIGc9bmV3IFVpbnQ4QXJyYXkoRS5sZW5ndGgpLEE9MDtBPEUubGVuZ3RoOysrQSl7dmFyIFQ9RS5jaGFyQ29kZUF0KEEpO2dbQV09VD45Nj9ULTk3OlQ+NjQ/VC0zOTpUKzR9Zm9yKHZhciBSPTAsQT0wO0E8RS5sZW5ndGg7KytBKWdbUisrXT1nW0FdPDYwP29bZ1tBXV06KGdbQV0tNjApKjY0K2dbKytBXTtyZXR1cm4gZy5idWZmZXIuc2xpY2UoMCxSKX1mdW5jdGlvbiBkKEUsZyxBLFQsUixTLE0pe3ZhciBJPUUuZXhwb3J0cy5zYnJrLE49VCszJi00LFA9SShOKlIpLEY9SShTLmxlbmd0aCksdz1uZXcgVWludDhBcnJheShFLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcik7dy5zZXQoUyxGKTt2YXIgeD1nKFAsVCxSLEYsUy5sZW5ndGgpO2lmKHg9PTAmJk0mJk0oUCxOLFIpLEEuc2V0KHcuc3ViYXJyYXkoUCxQK1QqUikpLEkoUC1JKDApKSx4IT0wKXRocm93IG5ldyBFcnJvcigiTWFsZm9ybWVkIGJ1ZmZlciBkYXRhOiAiK3gpfXZhciBjPXtOT05FOiIiLE9DVEFIRURSQUw6Im1lc2hvcHRfZGVjb2RlRmlsdGVyT2N0IixRVUFURVJOSU9OOiJtZXNob3B0X2RlY29kZUZpbHRlclF1YXQiLEVYUE9ORU5USUFMOiJtZXNob3B0X2RlY29kZUZpbHRlckV4cCIsQ09MT1I6Im1lc2hvcHRfZGVjb2RlRmlsdGVyQ29sb3IifSx1PXtBVFRSSUJVVEVTOiJtZXNob3B0X2RlY29kZVZlcnRleEJ1ZmZlciIsVFJJQU5HTEVTOiJtZXNob3B0X2RlY29kZUluZGV4QnVmZmVyIixJTkRJQ0VTOiJtZXNob3B0X2RlY29kZUluZGV4U2VxdWVuY2UifSxsPVtdLGg9MDtmdW5jdGlvbiBtKEUpe3ZhciBnPXtvYmplY3Q6bmV3IFdvcmtlcihFKSxwZW5kaW5nOjAscmVxdWVzdHM6e319O3JldHVybiBnLm9iamVjdC5vbm1lc3NhZ2U9ZnVuY3Rpb24oQSl7dmFyIFQ9QS5kYXRhO2cucGVuZGluZy09VC5jb3VudCxnLnJlcXVlc3RzW1QuaWRdW1QuYWN0aW9uXShULnZhbHVlKSxkZWxldGUgZy5yZXF1ZXN0c1tULmlkXX0sZ31mdW5jdGlvbiBiKEUpe2Zvcih2YXIgZz0ic2VsZi5yZWFkeSA9IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKG5ldyBVaW50OEFycmF5KFsiK25ldyBVaW50OEFycmF5KGEpKyJdKSwge30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7IHJlc3VsdC5pbnN0YW5jZS5leHBvcnRzLl9fd2FzbV9jYWxsX2N0b3JzKCk7IHJldHVybiByZXN1bHQuaW5zdGFuY2U7IH0pO3NlbGYub25tZXNzYWdlID0gIit5Lm5hbWUrIjsiK2QudG9TdHJpbmcoKSt5LnRvU3RyaW5nKCksQT1uZXcgQmxvYihbZ10se3R5cGU6InRleHQvamF2YXNjcmlwdCJ9KSxUPVVSTC5jcmVhdGVPYmplY3RVUkwoQSksUj1sLmxlbmd0aDtSPEU7KytSKWxbUl09bShUKTtmb3IodmFyIFI9RTtSPGwubGVuZ3RoOysrUilsW1JdLm9iamVjdC5wb3N0TWVzc2FnZSh7fSk7bC5sZW5ndGg9RSxVUkwucmV2b2tlT2JqZWN0VVJMKFQpfWZ1bmN0aW9uIHAoRSxnLEEsVCxSKXtmb3IodmFyIFM9bFswXSxNPTE7TTxsLmxlbmd0aDsrK00pbFtNXS5wZW5kaW5nPFMucGVuZGluZyYmKFM9bFtNXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEksTil7dmFyIFA9bmV3IFVpbnQ4QXJyYXkoQSksRj0rK2g7Uy5wZW5kaW5nKz1FLFMucmVxdWVzdHNbRl09e3Jlc29sdmU6SSxyZWplY3Q6Tn0sUy5vYmplY3QucG9zdE1lc3NhZ2Uoe2lkOkYsY291bnQ6RSxzaXplOmcsc291cmNlOlAsbW9kZTpULGZpbHRlcjpSfSxbUC5idWZmZXJdKX0pfWZ1bmN0aW9uIHkoRSl7dmFyIGc9RS5kYXRhO3NlbGYucmVhZHkudGhlbihmdW5jdGlvbihBKXtpZighZy5pZClyZXR1cm4gc2VsZi5jbG9zZSgpO3RyeXt2YXIgVD1uZXcgVWludDhBcnJheShnLmNvdW50Kmcuc2l6ZSk7ZChBLEEuZXhwb3J0c1tnLm1vZGVdLFQsZy5jb3VudCxnLnNpemUsZy5zb3VyY2UsQS5leHBvcnRzW2cuZmlsdGVyXSksc2VsZi5wb3N0TWVzc2FnZSh7aWQ6Zy5pZCxjb3VudDpnLmNvdW50LGFjdGlvbjoicmVzb2x2ZSIsdmFsdWU6VH0sW1QuYnVmZmVyXSl9Y2F0Y2goUil7c2VsZi5wb3N0TWVzc2FnZSh7aWQ6Zy5pZCxjb3VudDpnLmNvdW50LGFjdGlvbjoicmVqZWN0Iix2YWx1ZTpSfSl9fSl9cmV0dXJue3JlYWR5Omksc3VwcG9ydGVkOiEwLHVzZVdvcmtlcnM6ZnVuY3Rpb24oRSl7YihFKX0sZGVjb2RlVmVydGV4QnVmZmVyOmZ1bmN0aW9uKEUsZyxBLFQsUil7ZChyLHIuZXhwb3J0cy5tZXNob3B0X2RlY29kZVZlcnRleEJ1ZmZlcixFLGcsQSxULHIuZXhwb3J0c1tjW1JdXSl9LGRlY29kZUluZGV4QnVmZmVyOmZ1bmN0aW9uKEUsZyxBLFQpe2QocixyLmV4cG9ydHMubWVzaG9wdF9kZWNvZGVJbmRleEJ1ZmZlcixFLGcsQSxUKX0sZGVjb2RlSW5kZXhTZXF1ZW5jZTpmdW5jdGlvbihFLGcsQSxUKXtkKHIsci5leHBvcnRzLm1lc2hvcHRfZGVjb2RlSW5kZXhTZXF1ZW5jZSxFLGcsQSxUKX0sZGVjb2RlR2x0ZkJ1ZmZlcjpmdW5jdGlvbihFLGcsQSxULFIsUyl7ZChyLHIuZXhwb3J0c1t1W1JdXSxFLGcsQSxULHIuZXhwb3J0c1tjW1NdXSl9LGRlY29kZUdsdGZCdWZmZXJBc3luYzpmdW5jdGlvbihFLGcsQSxULFIpe3JldHVybiBsLmxlbmd0aD4wP3AoRSxnLEEsdVtUXSxjW1JdKTppLnRoZW4oZnVuY3Rpb24oKXt2YXIgUz1uZXcgVWludDhBcnJheShFKmcpO3JldHVybiBkKHIsci5leHBvcnRzW3VbVF1dLFMsRSxnLEEsci5leHBvcnRzW2NbUl1dKSxTfSl9fX0pKCl9KTt2YXIgdnNlLG54PVgoKCk9Pnt2c2U9KGZ1bmN0aW9uKCl7dmFyIG49ImI5SDc5VGViYmJlOjZlTzlHZXVldTlHZXViOUdiYjlHc3V1dXV1dXV1dXV1dTk5dXVldTlHdnV1dXV1YjlHcnV1dXV1dXViOUdvdXV1dXV1ZTk5OUd2dXV1dXVldTlHenV1dXV1dXV1dXV1OTl1dXV1YjlHcXV1dXV1dXU5OXV1ZXU5R1B1dXV1dXV1dXV1dTk5dXVldTlHcXV1dXV1dXV1OTl1ZXU5R3J1dXV1dXU5OWV1OUd3dXV1dXV1OTl1ZXU5R2l1dXVlOTk5R2x1dXV1ZXU5R2x1dXV1YjlHaXV1dWV1aUxRZGlsdm9ybHdEaXFreG1Qc3piSEhiZWx2ZTlXZWlpdmllYmVvd2V1ZWNqOkdka3I6QmR4bzlUVzlUOVZWOTVkYkg5RjlGOTM5SDc5VDlGOUo5SDIyOUY5SnQ5VlY3YmJ6OVRXNzlPOVY5V3Q5Rjc5UDlUOVcyOVA5TTk1Ync4RTlUVzc5TzlWOVd0OUY3OVA5VDlXMjlQOU05NTl4OVB0OU9jdHRWOVA5STkxdFc3YkQ4QTlUVzc5TzlWOVd0OUY3OVA5VDlXMjlQOU05NTl4OVB0OU85djlXOUs5SHRXYnFROVRXNzlPOVY5V3Q5Rjc5UDlUOVcyOVA5TTk1OXQyOVY5VzlXOTVia1g5VFc3OU85VjlXdDlGNzlQOVQ5VzI5UDlNOTU5cVY5MTlVV2J4UTlUVzc5TzlWOVd0OUY3OVA5VDlXMjlQOU05NTlxOVY5UDlVdDdibVg5VFc3OU85VjlXdDlGNzlQOVQ5VzI5UDlNOTU5dDlKOUgyV2JQYTlUVzc5TzlWOVd0OUY5VjlXdDlQOVQ5UDk2Vzl3V1Z0Vzk0U1d0OUo5TzlzVzlUOUg5V2JzNTlUVzc5TzlWOVd0OUY5Tlc5VVdWOUh0VzlxOVY3OVB0OVA5VjlVOXNXOVQ5SDlXYnpsNzlJVjlSYkhEd2ViY2VrZENYcTt5O1dlUWRiaztyOmhlcll1ZTk5aXVZOTlYdWU5OkQ5OThKampqamJjajtzYjlSZ3M4S2pqampiY2JoemFzYzpDZWZjYmM7S2J6OnRqampiOEFkbmFiYWVTbWJhYmFlYWRjZHR6TWpqamI4QWtkbmFtY2RHVG1iYWxjcmZjaTRjYnlkMTpIOmNqYkhqampqYmJoSGFzYzpDZWZhc3lkOzhlZ2VjZHRmYUhCZGJhc2FlY2VmQmQ7OGVjYmhsY2JoZWRuYWRUbWJhYmhlYWRoT2luYUhhZXlkYmNpNGZjYjg2YmJhZWNsZmhlYU9jdWZnT21ia2NiaGxhYmhlYWRoT2luYUhhZXlkYmdBY2k0ZmdDYUNSYmJnQ2NlYUFjckdnQXRWODZiYmFDY3U3YUE0Y2VHYWxmaGxhZWNsZmhlYU9jdWZnT21ia2N1YWxjZHRhbGNGRkZGaTBFaGVrYWVjYnlkMTpIOmNqYkhqampqYmJoemFzYzpDZWZhc3lkOzhlZ2VjZHRmYXpCZGJhc2FlY2VmQmQ7OGVhbGNkNGFsZmhPY2VoSGluYUhnZWNldGhIYWVhTzZtYmtjYmhYY3VhZWNkdGdPYWVjRkZGRmkwRWNieWQxOkg6Y2piSGpqampiYmhIYXNjOkNlZmFzeWQ7OGVnQWNkdGZhSEJkYmFzYUFjZWZCZDs4ZWFIY0ZlYU96OnRqampiaFFkbmFkVG1iYWVjdWZoTGNiaEtpbmRuZG5hUWFiYUtjZHRmZ1l5ZGJnQWM6djt0O2g7RXYyYUxHZ09jZHRmZ0N5ZGJnSGN1U21iY2VoZWluYXphSGNkdGZ5ZGJhQVNtZGFPYWVmaEhhZWNlZmhlYVFhSGFMR2dPY2R0ZmdDeWRiZ0hjdTlobWJra2F6YVhjZHRmYUFCZGJhQ2FYQmRiYVhoSGFYY2VmaFhrYVlhSEJkYmFLY2VmZ0thZDlobWJra2FRY2J5ZDptOkg6Y2piSDpiampqYmJhc2FzeWQ7OGVjdWZCZDs4ZWtjYmg4QWN1YWxjZWZnZWNkdGFlY0ZGRkZpMEVjYnlkMTpIOmNqYkhqampqYmJoTGFzYzpDZWZhc3lkOzhlZ2VjZHRmYUxCZGJhc2FMQmROZWFzYWVjZWZCZDs4ZWN1YWRjaXRhZGNGRkZGZTBFY2J5ZDE6SDpjamJIampqamJiaEVhc2M6Q2VmYXN5ZDs4ZWdlY2R0ZmFFQmRiYXNhRUJkOnllYXNhZWNlZkJkOzhlYXNjTmVmYWJhZGFsY2J6OmNqampiY3VhbGNkdGdlYWxjRkZGRmkwRWczY2J5ZDE6SDpjamJIampqamJiaE9hc2M6Q2VmYXN5ZDs4ZWdIY2R0ZmFPQmRiYXNhSGNlZkJkOzhlYTNjYnlkMTpIOmNqYkhqampqYmJoUWFzYzpDZWZhc3lkOzhlZ0hjZHRmYVFCZGJhc2FIY2VmQmQ7OGVhT2FRYWlhbGF2YXphc2M6Q2VmejpkampqYmFsY2J5ZDE6SDpjamJIampqamJiaFlhc2M6Q2VmYXN5ZDs4ZWdIY2R0ZmFZQmRiYXNhSGNlZkJkOzhlYTNjYnlkMTpIOmNqYkhqampqYmJoSGFzYzpDZWZhc3lkOzhlZ0FjZHRmYUhCZGJhc2FBY2VmQmQ7OGVhM2NieWQxOkg6Y2piSGpqampiYmhBYXNjOkNlZmFzeWQ7OGVnQ2NkdGZhQUJkYmFzYUNjZWZCZDs4ZWFIY0ZlYWV6OnRqampiaDVhQWNGZWFlejp0ampqYmg4RWRuYWxUbWJpbmRuYUxhOEFnQWNlZmc4QWNkdGZ5ZGJnQ2FMYUFjZHRnZWZ5ZGJnSFNtYmFDYUg5Umg4RmFFYUhjaXRmaGFhOEVhZWZoaGE1YWVmaEtjYmhDaW5kbmRuYWFhQ2NpdGZ5ZGJnWGFBOWhtYmFLYUFCZGJhaGFBQmRieGVrZG5hTGFYY2R0Z2dmZ2VjbGZ5ZGJnSGFleWRiZ2VTbWJhSGFlOVJoSGFFYWVjaXRmaGVpbmFleWRiYUFTbWRhZWN3ZmhlYUhjdWZnSG1ia2thOEVhZ2ZnZWFBYVhhZXlkYmN1U0VCZGJhS2FYYUFhS3lkYmN1U0VCZGJrYUNjZWZnQ2E4RjlobWJra2E4QWFsOWhtYmthT2hIYVFoQWE1aFhhOEVoQ2NiaGVpbmRuZG5hZWFIeWRiZ0s5aG1iZG5hZWFBeWRiZ0s5aG1iYVh5ZGJoS2RuYUN5ZGJnOEZjdTlobWJhS2N1OWhtYmFZYWVmY2I4NmJieGlrZG5hOEZjdVNtYmFLY3VTbWJhZWE4RlNtYmFPYThGY2R0ZnlkYmFPYUtjZHRmeWRiOWhtYmFZYWVmY2Q4NmJieGlrYVlhZWZoYWRuYWVhOEZTbWJhZWFLU21iYWFjZTg2YmJ4aWthYWNsODZiYnhka2RuYWVhUWFLY2R0ZzhGZnlkYjlobWJkbmFDeWRiZ2FjdVNtYmFlYWFTbWJhWHlkYmdnY3VTbWJhZWFnU21iYThFYThGZnlkYmdoY3VTbWJhaGFLU21iYTVhOEZmeWRiZzhGY3VTbWJhOEZhS1NtYmRuYU9hYWNkdGZ5ZGJnS2FPYThGY2R0ZnlkYjlobWJhS2FPYWdjZHRmeWRiZzhGU21iYThGYU9haGNkdGZ5ZGI5aG1iYVlhZWZjZDg2YmJ4bGthWWFlZmNsODZiYnhpa2FZYWVmY2w4NmJieGRrYVlhZWZjbDg2YmJ4ZWthWWFlZmFZYUtmUmJiODZiYmthSGNsZmhIYUFjbGZoQWFYY2xmaFhhQ2NsZmhDYWxhZWNlZmdlOWhtYmtkbmFtY2FHVG1iY2JoOEppbmRuZG5hWWE4SmZnOEtSYmJnOExjOTpmUGliZWJla2RuZG5kbmFPYThKY2R0ZnlkYmdlYThKOWhtYmRuYXFtYmNiaDhGeGRrZG5helRtYmNiaDhGYThKaGVpbmFxYXphZWNkdGdlZnlkYmZSYmJjZTRhOEZWY2VHaDhGYVFhZWZ5ZGJnZWE4SjlobWJ4aWtrY2JoOEZhOEpoZWluYXFhZWZSYmJjZTRhOEZWY2VHaDhGYVFhZWNkdGZ5ZGJnZWE4SjlobWJ4ZGtrYVlhZWZSYmJoZXhla2E4SmhlaW5kbmFMYWVjZHRnOEFmZ2VjbGZ5ZGJnSGFleWRiZ2VTbWJhSGFlOVJoZ2FFYWVjaXRmaGhhT2E4QWZoYWNiaEtpbmFoYUtjaXRmeWRiZ1hoZWRuaW5kbmFMYWVjZHRnQ2ZnZWNsZnlkYmdIYWV5ZGJnZVNtYmFIYWU5UmhIYUVhZWNpdGZoZWFheWRiaEFkbmluYU9hZXlkYmNkdGZ5ZGJhQVNtZWFlY3dmaGVhSGN1ZmdIVG1keGJra2NiaGV4ZGthUWFDZnlkYmdlYVg5aG1ia2NlaGVrYThGYWVWaDhGYUtjZWZnS2FnOWhtYmtrYVFhOEFmeWRiZ2VhOEo5aG1ia2E4TGNpYThGY2VHRWhla2E4S2FlODZiYmthOEpjZWZnOEphbDlobWJra2RuYXFUbWJkbmRuYXpUbWJhemhlYU9oSGFsaEFpbmRuYXFhZXlkYmZSYmJjZUdUbWJhWWFIeWRiZmNsODZiYmthZWNsZmhlYUhjbGZoSGFBY3VmZ0FtYnhka2thcWhlYU9oSGFsaEFpbmRuYWVSYmJjZUdUbWJhWWFIeWRiZmNsODZiYmthZWNlZmhlYUhjbGZoSGFBY3VmZ0FtYmtrYU9oZWFsaEFhWWhIaW5kbmFZYWV5ZGJmUmJiY2w5aG1iYUhjbDg2YmJrYWVjbGZoZWFIY2VmaEhhQWN1ZmdBbWJra2FtY2VHVG1iYVloZWFsaEhpbmRuYWVSYmJjZTlobWJhZWNsODZiYmthZWNlZmhlYUhjdWZnSG1ia2tjYmg4TWN1YWxjeDJhbGM7djpRO3Y6UWUwRWNieWQxOkg6Y2piSGpqampiYmg4TmFzYzpDZWZhc3lkOzhlZ2VjZHRmYThOQmRiYXNhZWNlZkJkOzhlYXNjYkJkOnFlYXM5Y2I4M2kxZWE4TmFpYWxhdmF6YXNjMWVmejplampqYmh5ZG5kbmFEbWJjYmg4UGNiaEN4ZWtjYmhDYXdoZWNiaEhpbmRuYWVJZGJKYmJiYjlFVG1iYXNhQ2NkdGZhSEJkYmFDY2VmaENrYWVjbGZoZWFEYUhjZWZnSDlobWJrY3VhQ2FsMmdlY2R0YWVjRkZGRmkwRWNieWQxOkg6Y2piSGpqampiYmg4UGFzYzpDZWZhc3lkOzhlZ2VjZHRmYThQQmRiYXNhZWNlZkJkOzhlYWxUbWJkbmFDbWJjYmhDeGVrYXJjZDRoZ2RuYXpUbWJhQ2NkdGhoY2JoOEZhOFBoYWluYW9hemE4RmNkdGZ5ZGJhZzJjZHRmaEthc2hlYWFoSGFDaEFpbmFIYUthZXlkYmNkdGdYZklkYmF3YVhmSWRiTlVkYmFlY2xmaGVhSGNsZmhIYUFjdWZnQW1ia2FhYWhmaGFhOEZjZWZnOEZhbDlobWJ4ZGtrYUNjZHRoaGNiaDhGYThQaGFpbmFvYThGYWcyY2R0ZmhLYXNoZWFhaEhhQ2hBaW5hSGFLYWV5ZGJjZHRnWGZJZGJhd2FYZklkYk5VZGJhZWNsZmhlYUhjbGZoSGFBY3VmZ0FtYmthYWFoZmhhYThGY2VmZzhGYWw5aG1ia2tjdWFsYzhTMmdIYWxjO0Q7TztmOFUwRWdYY2J5ZDE6SDpjamJIampqamJiaGVhc2M6Q2VmYXN5ZDs4ZWdBY2R0ZmFlQmRiYXNhQWNlZkJkOzhlYWVjYmFIejp0ampqYmhJY2JoOFJjYmhnZG5hQ1RtYmNiaDhNYVhjYnlkMTpIOmNqYkhqampqYmJoZ2FzYzpDZWZhc3lkOzhlZ2VjZHRmYWdCZGJhc2FlY2VmQmQ7OGVhZ2NiYUh6OnRqampiOEFjdWFDYWwyZ2VjbHRnSGFlY0ZGRkZiMEVjYnlkMTpIOmNqYkhqampqYmJoOFJhc2M6Q2VmYXN5ZDs4ZWdlY2R0ZmE4UkJkYmFzYWVjZWZCZDs4ZWE4UmNiYUh6OnRqampiOEFhbWNqampqZEdUbWJjdWFsY2x0Z2VhbGNGRkZGYjBFY2J5ZDE6SDpjamJIampqamJiaDhNYXNjOkNlZmFzeWQ7OGVnSGNkdGZhOE1CZGJhc2FIY2VmQmQ7OGVhOE1jYmFlejp0ampqYjhBa2RuYWRUbWJjYmhLYWJoSGluYThOYUhjbGZ5ZGJnOEZjeDJmZ2VJZGJhOE5hSHlkYmdhY3gyZmdBSWRiZzhTOnRnUmE4TmFIY3dmeWRiZ2hjeDJmZ1hJZGxhQUlkbGc4VTp0ZzhWTmFlSWRsYThVOnRnOFdhWElkYmE4Uzp0ZzhYTjp0ZzhZYThZTmE4V2FYSWR3YUFJZHdnOFo6dGc4ME5hZUlkd2E4Wjp0ZzhXYThWTjp0ZzgxYTgxTmE4V2E4WE5hUmE4ME46dGc4MGE4ME5NTWc4VjpyaEJhOFloOFhhODBoOFdhODFoUmRuYThWSmJiYmI5RWdBVG1iYThZYUI6dmg4WGE4MGFCOnZoOFdhODFhQjp2aFJrYUlhT2FhY2R0ZnlkYmdYYzhTMmZnZWFSYUI6cmc4VmFSTk5nODNhZUlkYk1VZGJhZWE4V2E4VmE4V05nVU5nODVhZUlkbE1VZGxhZWE4WGE4VmE4WE5nODZOZzg3YWVJZHdNVWR3YWVhUmFVTmdVYWVJZHhNVWR4YWVhODZhUk5nODhhZUlkek1VZHphZWE4V2E4Nk5nODlhZUlkQ01VZENhZWFSYThWYThYYThaTmFSYThTTmE4VWE4V05NTTptZzg6Tmc4Nk5nUmFlSWRLTVVkS2FlYThXYTg2Tmc4V2FlSWQzTVVkM2FlYThYYTg2Tmc4WGFlSWRhTVVkYWFlYTg2YTg6Tmc4NmFlSWQ4S01VZDhLYWVhOFZhZUlkeU1VZHlhSWFPYThGY2R0ZnlkYmc4RmM4UzJmZ2VhODNhZUlkYk1VZGJhZWE4NWFlSWRsTVVkbGFlYTg3YWVJZHdNVWR3YWVhVWFlSWR4TVVkeGFlYTg4YWVJZHpNVWR6YWVhODlhZUlkQ01VZENhZWFSYWVJZEtNVWRLYWVhOFdhZUlkM01VZDNhZWE4WGFlSWRhTVVkYWFlYTg2YWVJZDhLTVVkOEthZWE4VmFlSWR5TVVkeWFJYU9haGNkdGZ5ZGJnYWM4UzJmZ2VhODNhZUlkYk1VZGJhZWE4NWFlSWRsTVVkbGFlYTg3YWVJZHdNVWR3YWVhVWFlSWR4TVVkeGFlYTg4YWVJZHpNVWR6YWVhODlhZUlkQ01VZENhZWFSYWVJZEtNVWRLYWVhOFdhZUlkM01VZDNhZWE4WGFlSWRhTVVkYWFlYTg2YWVJZDhLTVVkOEthZWE4VmFlSWR5TVVkeWRuYThNVG1iZG5hQVRtYmE4WWFCOnZoOFlhODBhQjp2aDgwYTgxYUI6dmg4MWthOE1hWGNsdGZnZWFCSmJiYlpOZ1JhODBOZzhWYWVJZGxNVWRsYWVhUmE4WU5nOFdhZUlkd01VZHdhZWFSYTgxTmc4WGFlSWRiTVVkYmFlYVJhOFM6bWE4MU5hOFVhODBOOnRhOFphOFlOOnROZ1JhZUlkeE1VZHhhOE1hOEZjbHRmZ2VhOFZhZUlkbE1VZGxhZWE4V2FlSWR3TVVkd2FlYThYYWVJZGJNVWRiYWVhUmFlSWR4TVVkeGE4TWFhY2x0ZmdlYThWYWVJZGxNVWRsYWVhOFdhZUlkd01VZHdhZWE4WGFlSWRiTVVkYmFlYVJhZUlkeE1VZHhrYUhjeGZoSGFLY2lmZ0thZDZtYmtrZG5hbFRtYkpxO3g4Sjg4SjtuO207bTg5Sjp2Ojs7dzhaYW1jekdFYW1jO2FiR0VoODBjYmhIYU9oWGF6aEthSWhlYThOaEFpbmRuYUhhWHlkYjlobWJhSGg4RmRuYXpUbWJhS3lkYmg4RmthODBoUmRuYXFUbWJKYmJqWmE4MGFxYThGZlJiYmNsR0VoUmthZWN4Zmc4RmE4RklkYkpiYmJiTVVkYmFlY3pmZzhGYThGSWRiSmJiYmJNVWRiYWVjQ2ZnOEZhOEZJZGJKYmJiYk1VZGJhZWFSYWVjeWZnOEZJZGJnOFlOZ1JhZUlkYk1VZGJhZWNsZmdhYVJhYUlkYk1VZGJhZWN3ZmdhYVJhYUlkYk1VZGJhZWNLZmdhYWFJZGJhQUlkYmc4V2FSTjp0VWRiYUFjd2ZJZGJoOFZhZWMzZmdhYWFJZGJhUmFBY2xmSWRiZzhYTjp0VWRiYWVjYWZnYWFhSWRiYVJhOFZOOnRVZGJhZWM4S2ZnYUlkYmg4MWE4RmE4WWFSTVVkYmFhYTgxYVJhOFZhOFZOYThXYThXTmE4WGE4WE5NTU5NVWRia2FYY2xmaFhhS2NsZmhLYWVjOFNmaGVhQWN4ZmhBYWxhSGNlZmdIOWhtYmtrZG5hZFRtYmNiaDhBYWJoYWluYWJhOEFjZHRmaDhGY2JoSGluYVlhOEZhSGM6RzpHOmNqYmZ5ZGJjZHRmeWRiZ0FmUmJiaGVkbmRuYVlhYWFIZnlkYmdYZlJiYmdLYzk5ZmNGZUdjcGUwbWJhZWM5OWZjRmVHYzs6ZTZtZWtkbmFLY3VmY0ZlR2NlMG1iYTVhWGNkdGZ5ZGJhQTlobWVrZG5hZWN1ZmNGZUdjZTBtYmE4RWFBY2R0ZnlkYmFYOWhtZWtKYmJhY0piYmFjSmJiYlphZWNGZUdjZVNFYUtjRmVHY2VTRWhVZG5hOE5hOEZhSGM6SzpHOmNqYmZ5ZGJjZHRmeWRiY3gyZmdlSWR3YThOYVhjeDJmZ0tJZHdnODY6dGc4U2E4TmFBY3gyZmdoSWR3YTg2OnRnOFhhOFhOYWhJZGJhS0lkYmc4VTp0ZzgwYTgwTmFoSWRsYUtJZGxnOFo6dGc4VmE4Vk5NTWc4MU5hOFhhOFNhOFhOYWVJZGJhOFU6dGc4M2E4ME5hOFZhZUlkbGE4Wjp0Zzg1Tk1NZzhXTjp0ZzhZYThZTmE4M2E4MU5hODBhOFdOOnRnUmFSTmE4NWE4MU5hOFZhOFdOOnRnOFdhOFdOTU1nQkpiYmJiOUVUbWJhOFlhQjpyZ0I6dmg4WWE4V2FCOnZoOFdhUmFCOnZoUmthVWE4MTpyTmdCYThZYTg2TmFSYThVTmE4WmE4V05NTTptZzgxTmc4N2E4MU5oODhhODBhODVOYThWYTgzTjp0ZzgxYTgxTmE4VmE4U05hOFhhODVOOnRnOFZhOFZOYThYYTgzTmE4MGE4U046dGc4WGE4WE5NTWc4MzpyaDgwYThZYTg3Tmg4NWE4V2E4N05oODlhUmE4N05oODdhOFdhQmE4WU5nOFNOaDg6YThTYVJOaFphUmFCYThXTmduTmhjYThZYThTTmg4WWE4V2FuTmg4V2FSYUJhUk5OaDhTZG5hODNKYmJiYjlFVG1iYTgxYTgwOnZoODFhOFhhODA6dmg4WGE4VmE4MDp2aDhWa2FJYU9hWGNkdGZ5ZGJjOFMyZmdlYWVJZGJhOFNhOFZhVWE4MDpyTmdSYThWTk5NZzgwTVVkYmFlYThXYThYYVJhOFhOZzhTTk1nODNhZUlkbE1VZGxhZWE4WWE4MWFSYTgxTmc4V05NZzhZYWVJZHdNVWR3YWVhY2E4VmE4U05NZzhTYWVJZHhNVWR4YWVhWmE4V2E4Vk5NZ1VhZUlkek1VZHphZWE4OmE4WGE4V05NZzhXYWVJZENNVWRDYWVhODdhOFZhUmE4MWE4Nk5hOFZhOFVOYThaYThYTk1NZzg2Om1OZ1JOTWc4VmFlSWRLTVVkS2FlYTg5YThYYVJOTWc4WGFlSWQzTVVkM2FlYTg1YTgxYVJOTWc4MWFlSWRhTVVkYWFlYTg4YTg2YVJOOnRnUmFlSWQ4S01VZDhLYWVhQmFlSWR5TVVkeWFJYU9hQWNkdGZ5ZGJjOFMyZmdlYTgwYWVJZGJNVWRiYWVhODNhZUlkbE1VZGxhZWE4WWFlSWR3TVVkd2FlYThTYWVJZHhNVWR4YWVhVWFlSWR6TVVkemFlYThXYWVJZENNVWRDYWVhOFZhZUlkS01VZEthZWE4WGFlSWQzTVVkM2FlYTgxYWVJZGFNVWRhYWVhUmFlSWQ4S01VZDhLYWVhQmFlSWR5TVVkeWthSGNsZmdIY3g5aG1ia2FhY3hmaGFhOEFjaWZnOEFhZDZtYmthQ1RtYmNiaGFpbkpiYmJiaDgwYThOYWJhYWNkdGZnZWNsZnlkYmc4RmN4MmZnSElkd2E4TmFleWRiZ2hjeDJmZ0FJZHdnOFo6dGc4VmE4Vk5hSElkYmFBSWRiZzgzOnRnOFdhOFdOYUhJZGxhQUlkbGc4NTp0ZzhYYThYTk1NZzhTYThOYWVjd2Z5ZGJnOEFjeDJmZ2VJZHdhOFo6dGc4WU5hOFZhOFlOYThXYWVJZGJhODM6dGc4MU5hOFhhZUlkbGE4NTp0Z0JOTU1nUmE4Vk46dEpiYmJiSmJialphOFNhOFlhOFlOYTgxYTgxTmFCYUJOTU1nOFVOYVJhUk46dGc4Njp2YTg2SmJiYmI5QkVnODZOaDg4YThVYThWTmFSYThZTjp0YTg2Tmg4OWE4U2FCTmFSYThYTjp0YTg2Tmg4OmE4VWE4WE5hUmFCTjp0YTg2TmhaYThTYTgxTmFSYThXTjp0YTg2TmhuYThVYThXTmFSYTgxTjp0YTg2TmhjYThXYUJOYThYYTgxTjp0Z1JhUk5hOFhhOFlOYThWYUJOOnRnUmFSTmE4VmE4MU5hOFdhOFlOOnRnUmFSTk1NOnJKYmJiWk5oUmE4UGFoYUMyZzhKY2R0ZmhIYThQYThBYUMyZ0RjZHRmaEFhOFBhOEZhQzJnOEtjZHRmaFhhOFo6bWg5Y2E4NTptaEphODM6bWg5ZWFzY2pkZmhlYUNoS0piYmJiaEJKYmJiYmg4NkpiYmJiaDhTSmJiYmJoOFVKYmJiYmg4WkpiYmJiaDgzSmJiYmJoODVKYmJiYmg4N0piYmJiaFVpbmFlY3dmYVJhODlhWElkYmFISWRiZzhZOnRnOFhOYTg4YUFJZGJhOFk6dGc4MU5NZzhWTlVkYmFlY2xmYVJhWmE4WE5hODphODFOTWc4V05VZGJhZWFSYWNhOFhOYW5hODFOTWc4WE5VZGJhZWN4ZmFSYTljYThWTmFKYThXTmE4WWE5ZWE4WE5NTU1nOFlOVWRiYVJhOFZhOFdOTmE4Wk1oOFphUmE4VmE4WE5OYThVTWg4VWFSYThXYThYTk5hOFNNaDhTYVJhOFlhOFlOTmFVTWhVYVJhOFZhOFlOTmE4N01oODdhUmE4V2E4WU5OYTg1TWg4NWFSYThYYThZTk5hODNNaDgzYVJhOFZhOFZOTmE4Nk1oODZhUmE4V2E4V05OYUJNaEJhUmE4WGE4WE5OYTgwTWg4MGFIY2xmaEhhWGNsZmhYYUFjbGZoQWFlY3pmaGVhS2N1ZmdLbWJrYWdhaGM4UzJmZ2VhODBhZUlkYk1VZGJhZWFCYWVJZGxNVWRsYWVhODZhZUlkd01VZHdhZWE4U2FlSWR4TVVkeGFlYThVYWVJZHpNVWR6YWVhOFphZUlkQ01VZENhZWE4M2FlSWRLTVVkS2FlYTg1YWVJZDNNVWQzYWVhODdhZUlkYU1VZGFhZWFVYWVJZDhLTVVkOEthZWFSYWVJZHlNVWR5YWdhOEZjOFMyZmdlYTgwYWVJZGJNVWRiYWVhQmFlSWRsTVVkbGFlYTg2YWVJZHdNVWR3YWVhOFNhZUlkeE1VZHhhZWE4VWFlSWR6TVVkemFlYThaYWVJZENNVWRDYWVhODNhZUlkS01VZEthZWE4NWFlSWQzTVVkM2FlYTg3YWVJZGFNVWRhYWVhVWFlSWQ4S01VZDhLYWVhUmFlSWR5TVVkeWFnYThBYzhTMmZnZWE4MGFlSWRiTVVkYmFlYUJhZUlkbE1VZGxhZWE4NmFlSWR3TVVkd2FlYThTYWVJZHhNVWR4YWVhOFVhZUlkek1VZHphZWE4WmFlSWRDTVVkQ2FlYTgzYWVJZEtNVWRLYWVhODVhZUlkM01VZDNhZWE4N2FlSWRhTVVkYWFlYVVhZUlkOEtNVWQ4S2FlYVJhZUlkeU1VZHlhOFJhOEpjbHRmaDhGY2JoSGFDaFhpbmE4RmFIZmdlYXNjamRmYUhmZ0FJZGJhZUlkYk1VZGJhZWNsZmdLYUFjbGZJZGJhS0lkYk1VZGJhZWN3ZmdLYUFjd2ZJZGJhS0lkYk1VZGJhZWN4ZmdlYUFjeGZJZGJhZUlkYk1VZGJhSGN6ZmhIYVhjdWZnWG1ia2E4UmE4S2NsdGZoOEZjYmhIYUNoWGluYThGYUhmZ2Vhc2NqZGZhSGZnQUlkYmFlSWRiTVVkYmFlY2xmZ0thQWNsZklkYmFLSWRiTVVkYmFlY3dmZ0thQWN3ZklkYmFLSWRiTVVkYmFlY3hmZ2VhQWN4ZklkYmFlSWRiTVVkYmFIY3pmaEhhWGN1ZmdYbWJrYThSYURjbHRmaDhGY2JoSGFDaFhpbmE4RmFIZmdlYXNjamRmYUhmZ0FJZGJhZUlkYk1VZGJhZWNsZmdLYUFjbGZJZGJhS0lkYk1VZGJhZWN3ZmdLYUFjd2ZJZGJhS0lkYk1VZGJhZWN4ZmdlYUFjeGZJZGJhZUlkYk1VZGJhSGN6ZmhIYVhjdWZnWG1ia2FhY2lmZ2FhZDZtYmtrY2JoQWRuZG5hbWN3R2dUbWJKYmJiYmg4U2NiaFNjYmg5aGNiaDlpeGVrY2JoU2EzY2J5ZDE6SDpjamJIampqamJiaDlpYXNjOkNlZmFzeWQ7OGVnZWNkdGZhOWlCZGJhc2FlY2VmQmQ7OGVjdWE5aWFsYWJhZGFPejpmampqYmdYY2x0YVhjampqamlHRWNieWQxOkg6Y2piSGpqampiYmg5aGFzYzpDZWZhc3lkOzhlZ2VjZHRmYTloQmRiYXNhZWNlZkJkOzhlYTloYVhhOWlhOE5hbHo6Z2pqamJKRkZ1dWg4U2FYVG1iYTloaGVhWGhIaW5hZUlkYmdSYThTYThTYVI5RUVoOFNhZWNsZmhlYUhjdWZnSG1ia2FYaFNrZG5hbFRtYmFMY2xmaGVhTHlkYmhYYVloSGFsaEtjYmhBaW5jYmFleWRiZzhGYVg5UmFIUmJiY3BlR0VhQWZoQWFIY2VmaEhhZWNsZmhlYThGaFhhS2N1ZmdLbWJrYUFjZTRoQWtjdWFkYUE5UmNpZmc2Y3gyYTZjO3Y6UTt2OlFlMEVjYnlkMTpIOmNqYkhqampqYmJoOWthc2M6Q2VmYXN5ZDs4ZWdlY2R0ZmE5a0JkYmFzYWVjZWZCZDs4ZWN1YTZjZHRhNmNGRkZGaTBFY2J5ZDE6SDpjamJIampqamJiaDBhc2M6Q2VmYXN5ZDs4ZWdlY2R0ZmEwQmRiYXNhZWNlZkJkOzhlYTNjYnlkMTpIOmNqYkhqampqYmJoOW1hc2M6Q2VmYXN5ZDs4ZWdlY2R0ZmE5bUJkYmFzYWVjZWZCZDs4ZWFsY2J5ZDE6SDpjamJIampqamJiaDluYXNjOkNlZmFzeWQ7OGVnZWNkdGZhOW5CZGJhc2FlY2VmQmQ7OGVheGF4TmF5SmJialphbWNsR0VnWmFaTjp2aDg3SmJiYmJoVWRuYWRhazlubWJkbmE2Y2k2bWJhQ2NsdGg5b2E5a2N3Zmg5cEpiYmJiaDg1SmJiYmJoVWluYXNjTmVmYWJhZGFsYU96OmNqampiYWJoOEFjYmg5cWNiaDlyaW5hYmE5cmNkdGZoRGNiaGVpbmRuYU9hOEFhZWZ5ZGJnQWNkdGdoZnlkYmdYYU9hRGFlYzpXOkc6Y2piZnlkYmNkdGZ5ZGJnSGNkdGc4SmZ5ZGJnS1NtYmFZYUhmUmJiZ2FjdjJhWWFBZlJiYmc4RmZSYjthOkc6Y2piZzhMYThGY3YyYWFmZzhLUmI7YTpHOmNqYmczVmNGZUdUbWJkbmFLYVg5bm1iYThLUmI7RzpHOmNqYmNGZUdtZWtkbmE4RmN1ZmNGZUdjZTBtYmFhVG1iYTVhaGZ5ZGJhSDlobWVrZG5hOEZUbWJhYWN1ZmNGZUdjZTBtYmE4RWE4SmZ5ZGJhQTlobWVrYTlrYTlxY3gyZmdYYUhhQWEzY0ZlR2dLRUJkbGFYYUFhSGFLRUJkYmFYYUthOExHY2I5aEJkd2E5cWNlZmg5cWthZWNsZmdlY3g5aG1ia2RuYTlyY2lmZzlyYWQ5cG1iYThBY3hmaDhBYTlxY2lmYTY5bm1la2thOXFUbWRjYmg4S2luYUlhT2E5a2E4S2N4MmZnaHlkYmdLY2R0Z1hmeWRiZzhBYzhTMmZnZUlkd2E4TmFoeWRsZzhGY3gyZmdISWR3ZzhXTmFlSWR6YUhJZGJnOFhOYWVJZGFNZ1JhUk1NYThXTmFlSWRsYUhJZGxnOFlOYWVJZENhOFdOYWVJZDNNZ1JhUk1NYThZTmFlSWRiYThYTmFlSWR4YThZTmFlSWRLTWdSYVJNTWE4WE5hZUlkOEtNTU06bGhSSmJiYmJKYmJqWmFlSWR5ZzhWOnZhOFZKYmJiYjlCRWg4VmRuZG5haHlkd2dEbWJKRkZ1dWg4Nnhla0piYmJiSmJialphSWFPYThGY2R0ZnlkYmM4UzJmZ2VJZHlnODE6dmE4MUpiYmJiOUJFYWVJZHdhOE5hS2N4MmZnSElkd2c4MU5hZUlkemFISWRiZzgwTmFlSWRhTWdCYUJNTWE4MU5hZUlkbGFISWRsZ0JOYWVJZENhODFOYWVJZDNNZzgxYTgxTU1hQk5hZUlkYmE4ME5hZUlkeGFCTmFlSWRLTWc4MWE4MU1NYTgwTmFlSWQ4S01NTTpsTmg4NmthOFZhUk5oQmRuYUNUbWJhZ2FLYzhTMmZnQUlkd2E4V05hQUlkemE4WE5hQUlkYU1nUmFSTU1hOFdOYUFJZGxhOFlOYUFJZENhOFdOYUFJZDNNZ1JhUk1NYThZTmFBSWRiYThYTmFBSWR4YThZTmFBSWRLTWdSYVJNTWE4WE5hQUlkOEtNTU1oUmE4UGE4RmFDMmdhY2R0ZmhIYThSYUthQzJnOEpjbHRmaGVhQUlkeWg4MWFDaEFpbmFISWRiZzhWYThWYTgxTmFlY3hmSWRiYThXYWVjd2ZJZGJOYThYYWVJZGJOYThZYWVjbGZJZGJOTU1NZzhWYThWTTp0TmFSTWhSYUhjbGZoSGFlY3pmaGVhQWN1ZmdBbWJrZG5kbmFEbWJKYmJiYmg4Vnhla2FnYThGYzhTMmZnQUlkd2E4TmFLY3gyZmdlSWR3ZzhYTmFBSWR6YWVJZGJnOFlOYUFJZGFNZzhWYThWTU1hOFhOYUFJZGxhZUlkbGc4MU5hQUlkQ2E4WE5hQUlkM01nOFZhOFZNTWE4MU5hQUlkYmE4WU5hQUlkeGE4MU5hQUlkS01nOFZhOFZNTWE4WU5hQUlkOEtNTU1oOFZhOFBhOEpjZHRmaEhhOFJhYWNsdGZoZWFBSWR5aDgwYUNoQWluYUhJZGJnOFdhOFdhODBOYWVjeGZJZGJhOFhhZWN3ZklkYk5hOFlhZUlkYk5hODFhZWNsZklkYk5NTU1nOFdhOFdNOnROYThWTWg4VmFIY2xmaEhhZWN6ZmhlYUFjdWZnQW1ia2E4VjpsaDhWa2FCYVI6bE1oQmE4NmE4Vk1oODZkbmRuZG5hWWFLZlJiYmM5OmZQZGRiZWthUWFYZnlkYmdYYUtTbWJhT2E4RmNkdGZ5ZGJoOEppbmRuZG5hNWFYY2R0Z2FmeWRiZ2VjdVNtYmFPYWVjZHRmeWRiYThKU21la2RuYThFYWFmeWRiZ2VjdVNtYmFPYWVjZHRmeWRiYThKU21la2E4Rmhla2FnYVhjOFMyZmdBSWR3YThOYWVjeDJmZ0hJZHdnOFdOYUFJZHphSElkYmc4WE5hQUlkYU1nUmFSTU1hOFdOYUFJZGxhSElkbGc4WU5hQUlkQ2E4V05hQUlkM01nUmFSTU1hOFlOYUFJZGJhOFhOYUFJZHhhOFlOYUFJZEtNZ1JhUk1NYThYTmFBSWQ4S01NTWhSYThQYWVhQzJjZHRmaEhhOFJhWGFDMmNsdGZoZWFBSWR5aDgxYUNoQWluYUhJZGJnOFZhOFZhODFOYWVjeGZJZGJhOFdhZWN3ZklkYk5hOFhhZUlkYk5hOFlhZWNsZklkYk5NTU1nOFZhOFZNOnROYVJNaFJhSGNsZmhIYWVjemZoZWFBY3VmZ0FtYmthQmFSOmxNaEJhUWFhZnlkYmdYYUs5aG1ia2thWWE4RmZSYmJjaTlobWVhRFRtZWFRYThGY2R0ZnlkYmdYYThGU21laW5kbmRuYTVhWGNkdGdhZnlkYmdlY3VTbWJhT2FlY2R0ZnlkYmE4QVNtZWtkbmE4RWFhZnlkYmdlY3VTbWJhT2FlY2R0ZnlkYmE4QVNtZWthS2hla2FnYVhjOFMyZmdBSWR3YThOYWVjeDJmZ0hJZHdnOFdOYUFJZHphSElkYmc4WE5hQUlkYU1nUmFSTU1hOFdOYUFJZGxhSElkbGc4WU5hQUlkQ2E4V05hQUlkM01nUmFSTU1hOFlOYUFJZGJhOFhOYUFJZHhhOFlOYUFJZEtNZ1JhUk1NYThYTmFBSWQ4S01NTWhSYThQYWVhQzJjZHRmaEhhOFJhWGFDMmNsdGZoZWFBSWR5aDgxYUNoQWluYUhJZGJnOFZhOFZhODFOYWVjeGZJZGJhOFdhZWN3ZklkYk5hOFhhZUlkYk5hOFlhZWNsZklkYk5NTU1nOFZhOFZNOnROYVJNaFJhSGNsZmhIYWVjemZoZWFBY3VmZ0FtYmthODZhUjpsTWg4NmFRYWFmeWRiZ1hhOEY5aG1ieGRra2RuYThFYTVhNWFYZnlkYmE4RlNFYVFhWGZ5ZGJnYWNkdGZ5ZGJnWGN1OWhtYmFRYThGY2R0ZnlkYmhYa2FnYWFjOFMyZmdBSWR3YThOYVhjeDJmZ2VJZHdnOFdOYUFJZHphZUlkYmc4WE5hQUlkYU1nUmFSTU1hOFdOYUFJZGxhZUlkbGc4WU5hQUlkQ2E4V05hQUlkM01nUmFSTU1hOFlOYUFJZGJhOFhOYUFJZHhhOFlOYUFJZEtNZ1JhUk1NYThYTmFBSWQ4S01NTWhSYThQYVhhQzJnOEFjZHRmaEhhOFJhYWFDMmc4SmNsdGZoZWFBSWR5aDgxYUNoQWluYUhJZGJnOFZhOFZhODFOYWVjeGZJZGJhOFdhZWN3ZklkYk5hOFhhZUlkYk5hOFlhZWNsZklkYk5NTU1nOFZhOFZNOnROYVJNaFJhSGNsZmhIYWVjemZoZWFBY3VmZ0FtYmtkbmRuYURtYkpiYmJiaDhWeGVrYWdhWGM4UzJmZ0FJZHdhOE5hYWN4MmZnZUlkd2c4WE5hQUlkemFlSWRiZzhZTmFBSWRhTWc4VmE4Vk1NYThYTmFBSWRsYWVJZGxnODFOYUFJZENhOFhOYUFJZDNNZzhWYThWTU1hODFOYUFJZGJhOFlOYUFJZHhhODFOYUFJZEtNZzhWYThWTU1hOFlOYUFJZDhLTU1NaDhWYThQYThKY2R0ZmhIYThSYThBY2x0ZmhlYUFJZHloODBhQ2hBaW5hSElkYmc4V2E4V2E4ME5hZWN4ZklkYmE4WGFlY3dmSWRiTmE4WWFlSWRiTmE4MWFlY2xmSWRiTk1NTWc4V2E4V006dE5hOFZNaDhWYUhjbGZoSGFlY3pmaGVhQWN1ZmdBbWJrYThWOmxoOFZrYUJhUjpsTWhCYTg2YThWTWg4NmthaGE4NmFCYTg2YUI5RGdlRVVkd2FoYUthOEZhZWFEY2I5aEdnZUVCZGxhaGE4RmFLYWVFQmRiYThLY2VmZzhLYTlxOWhtYmthc2NqZGZjYmNqO3Fiejp0ampqYjhBYTlwaGVhOXFoSGluYXNjamRmYWV5ZGJjQTRjRjhGR2dBY0ZBYUFjRkE2RWNkdGZnQWFBeWRiY2VmQmRiYWVjeGZoZWFIY3VmZ0htYmtjYmhlY2JoSGluYXNjamRmYWVmZ0F5ZGJoWGFBYUhCZGJhWGFIZmhIYWVjbGZnZWNqO3FiOWhtYmtjYmhlYTlwaEhpbmFzY2pkZmFIeWRiY0E0Y0Y4RkdnQWNGQWFBY0ZBNkVjZHRmZ0FhQXlkYmdBY2VmQmRiYTBhQWNkdGZhZUJkYmFIY3hmaEhhOXFhZWNlZmdlOWhtYmthZGFrOVJnQWNpOVVoOXNkbmFsVG1iY2JoZWE5bWhIaW5hSGFlQmRiYUhjbGZoSGFsYWVjZWZnZTlobWJra2NiaDl0YTluY2JhbHo6dGpqamJoM2FBY085VWg5dWE5c2NlNGg5cmNiaDhMY2JoOEtkbmluYTlrYTBhOEtjZHRmeWRiY3gyZmc4Sklkd2dSYTg3OUVtZWE4TGE5czlwbWVKRkZ1dWg4VmRuYTlyYTlxOXBtYmE5a2EwYTlyY2R0ZnlkYmN4MmZJZHdKYmI7YVpOaDhWa2RuYVJhOFY5RVRtYmFSYVU5RVRtYmE4TGE5dTBtZGtkbmEzYU9hOEp5ZGxnRGNkdGc5dmZnOEF5ZGJnQWZnOXdSYmJhM2FPYThKeWRiZ2hjZHRnOXhmeWRiZ2VmZzl5UmJiVm1iYVlhaGZSYmJoOXpkbmRuYUxhZWNkdGZnSGNsZnlkYmdYYUh5ZGJnSFNtYmFYYUg5UmhYYThOYUFjeDJmaDhGYThOYWVjeDJmaGFhRWFIY2l0ZmhlaW5kbmE5bWFleWRiY2R0ZnlkYmdIYUFTbWJhOW1hZWNsZnlkYmNkdGZ5ZGJnS2FBU21iYUhhS1NtYmE4TmFLY3gyZmdLSWRiYThOYUhjeDJmZ0hJZGJnOFc6dGdSYWFJZGxhSElkbGc4WDp0ZzgwTmFLSWRsYThYOnRnOFZhYUlkYmE4Vzp0Z0JOOnRnOFlhUmE4RklkbGE4WDp0Zzg2TmE4VmE4RklkYmE4Vzp0ZzhVTjp0ZzhYTmE4VmFhSWR3YUhJZHdnODE6dGc4Wk5hS0lkd2E4MTp0ZzhXYTgwTjp0ZzgwYThWYThGSWR3YTgxOnRnODNOYThXYTg2Tjp0ZzhWTmE4V2FCTmFSYThaTjp0ZzgxYThXYThVTmFSYTgzTjp0Z1JOTU1hOFlhOFlOYTgwYTgwTmE4MWE4MU5NTWE4WGE4WE5hOFZhOFZOYVJhUk5NTU46ckpiYmo4Ok45Rm1pa2FlY3dmaGVhWGN1ZmdYbWJra2RuZG5kbmRuYTl6Yzk6ZlBkZWJka2FoaGVpbmE4QXlkYmhBZG5kbmE1YWVjZHRnSGZ5ZGJnZWN1U21iYU9hZWNkdGZ5ZGJhQVNtZWtkbmE4RWFIZnlkYmdlY3VTbWJhT2FlY2R0ZnlkYmFBU21la2FEaGVrYTltYUhmYWVCZGJhUWFIZnlkYmdlYWg5aG1ieGlra2RuYThFYTVhNWE5eGZ5ZGJhRFNFYVFhOXhmeWRiZ2hjZHRmeWRiZ2VjdTlobWJhUWE5dmZ5ZGJoZWthOW1hOXhmYURCZGJhZWhEa2E5bWFoY2R0ZmFEQmRia2E5eWNlODZiYmE5d2NlODZiYmE4Sklkd2dSYVVhVWFSOURFaFVhOXRjZWZoOXRjZWNkYTl6Y2VTRWE4TGZoOEx4ZWthOXJjZWZoOXJrYThLY2VmZzhLYTlxOWhtYmtrYTl0VG1kZG5hbFRtYmNiaDhGY2JoaGluZG5hOW1haGNkdGdlZnlkYmdBYWhTbWJhT2FBY2R0ZnlkYmg4QWRuYWhhT2FlZnlkYjloZzhKbWJhSWE4QWM4UzJmZ2VhSWFoYzhTMmZnSElkYmFlSWRiTVVkYmFlYUhJZGxhZUlkbE1VZGxhZWFISWR3YWVJZHdNVWR3YWVhSElkeGFlSWR4TVVkeGFlYUhJZHphZUlkek1VZHphZWFISWRDYWVJZENNVWRDYWVhSElkS2FlSWRLTVVkS2FlYUhJZDNhZUlkM01VZDNhZWFISWRhYWVJZGFNVWRhYWVhSElkOEthZUlkOEtNVWQ4S2FlYUhJZHlhZUlkeU1VZHlhOE1UbWJhOE1hOEFjbHRmZ2VhOE1haGNsdGZnSElkYmFlSWRiTVVkYmFlYUhJZGxhZUlkbE1VZGxhZWFISWR3YWVJZHdNVWR3YWVhSElkeGFlSWR4TVVkeGthQ1RtYmFnYUFjOFMyZmdlYWdhaGM4UzJnRGZnSElkYmFlSWRiTVVkYmFlYUhJZGxhZUlkbE1VZGxhZWFISWR3YWVJZHdNVWR3YWVhSElkeGFlSWR4TVVkeGFlYUhJZHphZUlkek1VZHphZWFISWRDYWVJZENNVWRDYWVhSElkS2FlSWRLTVVkS2FlYUhJZDNhZUlkM01VZDNhZWFISWRhYWVJZGFNVWRhYWVhSElkOEthZUlkOEtNVWQ4S2FlYUhJZHlhZUlkeU1VZHlhOW9hQTJoYWE4UmhIYUNoWGluYUhhYWZnZWFIYThGZmdBSWRiYWVJZGJNVWRiYWVjbGZnS2FBY2xmSWRiYUtJZGJNVWRiYWVjd2ZnS2FBY3dmSWRiYUtJZGJNVWRiYWVjeGZnZWFBY3hmSWRiYWVJZGJNVWRiYUhjemZoSGFYY3VmZ1htYmthOEptYkpiYmJiSmJialphSWFEZmdlSWR5Z1I6dmFSSmJiYmI5QkVhZUlkd2E4TmE4QWN4MmZnSElkd2dSTmFlSWR6YUhJZGJnOFZOYWVJZGFNZzhXYThXTU1hUk5hZUlkbGFISWRsZzhXTmFlSWRDYVJOYWVJZDNNZ1JhUk1NYThXTmFlSWRiYThWTmFlSWR4YThXTmFlSWRLTWdSYVJNTWE4Vk5hZUlkOEtNTU06bE5nUmE4NWE4NWFSOURFaDg1a2E4RmE5b2ZoOEZhaGNlZmdoYWw5aG1ia2NiaEhhNWhlaW5kbmFleWRiZ0FjdVNtYmRuYUhhOW1hQWNkdGdYZnlkYmdBOWhtYmN1aEFhNWFYZnlkYmdYY3VTbWJhOW1hWGNkdGZ5ZGJoQWthZWFBQmRia2FlY2xmaGVhbGFIY2VmZ0g5aG1ia2NiaEhhOEVoZWluZG5hZXlkYmdBY3VTbWJkbmFIYTltYUFjZHRnWGZ5ZGJnQTlobWJjdWhBYThFYVhmeWRiZ1hjdVNtYmE5bWFYY2R0ZnlkYmhBa2FlYUFCZGJrYWVjbGZoZWFsYUhjZWZnSDlobWJra2E4NWFVYUNFaDg1Y2JoSGFiaGVjYmhBaW5kbmFPYTltYWV5ZGJjZHRmeWRiZzhGY2R0ZnlkYmdYYU9hOW1hZWNsZnlkYmNkdGZ5ZGJnYWNkdGZ5ZGJnS1NtYmFYYU9hOW1hZWN3ZnlkYmNkdGZ5ZGJnOEFjZHRmeWRiZ2hTbWJhS2FoU21iYWJhSGNkdGZnWGE4RkJkYmFYY3dmYThBQmRiYVhjbGZhYUJkYmFIY2lmaEhrYWVjeGZoZWFBY2lmZ0FhZDZtYmtkbmRuYVRtYmFIaGR4ZWtkbmFIYWswbWJhSGhkeGVrZG5hOFNhODU5Rm1iYUhoZHhla0pGRnV1aDhTY2JoZGFiaGVjYmhBaW5kbmE5aGE5aWFleWRiZ1hjZHRmeWRiY2R0ZklkYmdSYTg1OUVUbWJhZWNsZjhQZGJoOUFhYmFkY2R0ZmdLYVhCZGJhS2NsZmE5QTgzZGJhUmE4U2E4U2FSOUVFaDhTYWRjaWZoZGthZWN4ZmhlYUFjaWZnQWFINm1ia2thZGFrMG1ieGRra2FzY05lZmFiYWRhbGFPejpjampqYmtkbmRuYWRhazBtYmFkaGF4ZWtkbmFUbWJhZGhheGVrZG5hOFNhODc5Rm1iYWRoYXhla2NlaEtpbmE4U0piYjthWk5nUmE4N2FSYTg3OURFaDhXSmJiYmJoUmRuYVNUbWJhOWhoZWFTaEhpbmFlSWRiZzhWYVJhOFZhOFc5RkVhUmE4VmFSOUVFaFJhZWNsZmhlYUhjdWZnSG1ia2tKRkZ1dWg4U2NiaGFhYmhlY2JoSGluZG5hOWhhOWlhZXlkYmdBY2R0ZnlkYmNkdGZJZGJnOFZhOFc5RVRtYmFlY2xmOFBkYmg5QWFiYWFjZHRmZ1hhQUJkYmFYY2xmYTlBODNkYmE4VmE4U2E4U2E4VjlFRWg4U2FhY2lmaGFrYWVjeGZoZWFIY2lmZ0hhZDZtYmtkbmFLYWFhZDloVmNlR21iYWRoYXhka2FSYVVhVWFSOURFaFVhYWFrOW5tZWNiaEthYWhkYThTYTg3OUZtYmtrZG5hbWNqampqZEdUbWJhOW5jYmFsejp0ampqYmg4QWRuYWFUbWJhYmhlYWFoSGluYThBYWV5ZGJnQWZjZTg2YmJhOEFhT2FBY2R0ZnlkYmZjZTg2YmJhZWNsZmhlYUhjdWZnSG1ia2thc2NOZWZhYmFhYWxhT3o6Y2pqamJkbmRuYWxUbWJjYmhYaW5kbmE4QWFYZlJiYlRtYmRuYVlhWGZSYmJnZWNsMG1iY2VhZXRjUUdtZWtkbmFPYVhjZHRnOEZmeWRiZ2VhWFNtYmE4TmFYY3gyZmdIYThOYWVjeDJmZ2V5ZHdCZHdhSGFlOFBkYjgzZGJ4ZWthSWFYYzhTMmZnS0lkeWdjYWNKTDozO3JVTmdSTWg4N2FLSWR3ZzlCYVJNaDhTYUtJZGxnOUNhUk1oOFVhS0lkYmc5RGFSTWg4MWFLSWRhZzlFYVJhOE5hWGN4MmZnOEpJZHdnODhOOnRoOFphS0lkM2c5RmFSYThKSWRsZzg5Tjp0aDgzYUtJZEtnOUdhOEpJZGJnODphUk46dGg4MEpiYmJiaG5hS0lkQ2c5SEpiYmJiTWg4NWFLSWR6ZzlJSmJiYmJNaEJhS0lkeGc5SkpiYmJiTWg4NmRuZG5hQ1RtYmFYaEFpbkpiYmJiYTg3YWdhQWM4UzJmZ0hJZHlnUjp2YVJKYmJiYjlCRWhSYThSYUFhQzJjbHRmaGVhSElkYWE4N05hOFpNaDhaYUhJZDNhODdOYTgzTWg4M2FISWRLYTg3TmE4ME1oODBhSElkQ2E4N05hODVNaDg1YUhJZHphODdOYUJNaEJhSElkeGE4N05hODZNaDg2YUhJZHdhODdOYThTTWg4U2FISWRsYTg3TmE4VU1oOFVhSElkYmE4N05hODFNaDgxYUNoSGluYThaYWVjd2ZJZGJnOFZhZWN4ZklkYmc4WU5hUk46dGg4WmE4M2FlY2xmSWRiZzhXYThZTmFSTjp0aDgzYTg1YThXYThWTmFSTjp0aDg1YTgxYWVJZGJnOFhhOFhOYVJOOnRoODFhODBhOFhhOFlOYVJOOnRoODBhQmE4WGE4Vk5hUk46dGhCYTg2YThYYThXTmFSTjp0aDg2YThTYThWYThWTmFSTjp0aDhTYThVYThXYThXTmFSTjp0aDhVYWVjemZoZWFIY3VmZ0htYmthUWFBY2R0ZnlkYmdBYVg5aG1ia2E4TVRtYmE4TWFYY2x0ZmdlSWR4aHhhZUlkd2g5Y2FlSWRsaEphZUlkYmhSeGVrSmJiYmJoeEpiYmJiaDljSmJiYmJoSkpiYmJiaFJrYUJhODE6dmc4V2E4ME5hOFo6dGE4NWFCYTg2YTgxOnZnOFZOOnRnOFphOFVhODZhOFZOOnRnOFk6dmc4WGE4VmE4ME5hODM6dGc4VU46dGg4M2E5Y2FSYThXTjp0YUphUmE4Vk46dGc4NmE4WE46dGc4NWE4U2FCYThXTjp0YThaYThYTjp0Z0I6dmc4UzptaDhaYTg2YThZOnZnOWM6bWhKZG5KYmJiYmFSYVJhODE6dmc5ZU46dGE4NmE5Y046dGE4NWE4U046dGc4NjpsYTg3Sjo5ODM6ZzgxTmdSOUVUbWJhOFphODNOYUphOFVOYTllYTgwTmF4OnRNTWE4Njp2aG5rYTgxOmxhUjlFVG1iYThZOmxhUjlFVG1iYUI6bGFSOUVUbWJhOWU6bWFuTmE4VzptYThaYW5OYTgzYUI6dk1nQk5hOFY6bWFKYW5OYThYOm1hQk5hOFVhOFk6dk1NZzg1TmE4MDptYTgxOnZNTU1oODdhTGE4RmZnZWNsZnlkYmdIYWV5ZGJnZTlSaGhhRWFlY2l0Zmg4RkpiYmJiaFJkbmFIYWVTZ0RtYkpiYmJiaFJhOEZoZWFoaEFpbmE4TmFlY2xmeWRiY3gyZmdISWR3YTg4OnRnOFZhOFZOYUhJZGJhODo6dGc4VmE4Vk5hSElkbGE4OTp0ZzhWYThWTk1NZzhWYThOYWV5ZGJjeDJmZ0hJZHdhODg6dGc4V2E4V05hSElkYmE4Ojp0ZzhXYThXTmFISWRsYTg5OnRnOFdhOFdOTU1nOFdhUmFSYThXOURFZ1JhUmE4VjlERWhSYWVjd2ZoZWFBY3VmZ0FtYmthUjpyZ1JhUk5oUmthQmE4ODp0ZzhWYThWTmE4N2E4Ojp0ZzhWYThWTmE4NWE4OTp0ZzhWYThWTk1NYVI5RW1iYUtJZDhLaG5kbmFEbWJpbmE4TmE4RmNsZnlkYmN4MmZnZUlkYmE4TmE4RnlkYmN4MmZnSElkYmc4Vzp0Z1JhODlhSElkbGc4WDp0ZzgwTmFlSWRsYThYOnRnOFZhODphOFc6dGc4Nk46dGc4WWFSYTg1YThYOnRnOFNOYThWYTg3YThXOnRnOFVOOnRnOFhOYThWYTg4YUhJZHdnODE6dGc4Wk5hZUlkd2E4MTp0ZzhXYTgwTjp0ZzgwYThWYUJhODE6dGc4M05hOFdhOFNOOnRnOFZOYThXYTg2TmFSYThaTjp0ZzgxYThXYThVTmFSYTgzTjp0Z1JOTU1hOFlhOFlOYTgwYTgwTmE4MWE4MU5NTWE4WGE4WE5hOFZhOFZOYVJhUk5NTU46ckpiYmo4Ok45Rm1kYThGY3dmaDhGYWhjdWZnaG1ia2tKYmJiYkpiYmpaYWM6dmFjSmJiYmI5QkVnUmE5QmFCTmE5SWE4N05hOUVNZzhWYThWTU1hQk5hOUNhODVOYTlIYUJOYTlGTWc4VmE4Vk1NYTg1TmE5RGE4N05hOUphODVOYTlHTWc4VmE4Vk1NYTg3TmFuTU1NOmxOYVJhOUJhODhOYTlJYTg6TmE5RU1nOFZhOFZNTWE4OE5hOUNhODlOYTlIYTg4TmE5Rk1nOFZhOFZNTWE4OU5hOURhODpOYTlKYTg5TmE5R01nOFZhOFZNTWE4Ok5hbk1NTTpsTkpiYjthWk5KOjk4MzpnODFNOUVtYmE4SmFCVWR3YThKYTg1VWRsYThKYTg3VWRia2FYY2VmZ1hhbDlobWJrZG5hQ21iY2JoQ3hka2NiaFhpbmRuYThBYVhmUmJiVG1iYU9hWGNkdGdlZnlkYmFYOWhtYmFZYVhmaGhhUWFlZmg4SmE4TmFYY3gyZmhBYThQYVhhQzJjZHRmaERjYmhFaW5jdWhMZG5haFJiYmNpOWhtYmFYaExhOEp5ZGJnZWFYU21iYThQYUVjZHRnSGZoS2FEYUhmSWRiaFJhWGhMaW5hTGhIY3VoTGRuYUthZWFDMmNkdGZJZGJhUjlDbWJhSGN1U21iYUhoTGFnYWVjOFMyZklkeWFnYUhjOFMyZklkeTlFVG1iYWVoTGthUWFlY2R0ZnlkYmdlYVg5aG1ia2thOFBhRWNkdGZoS2E4UmFFY2x0Zmg4RmFYaGVpbmFLYWVhQzJjZHRmSmJiYmJKYmJqWmFnYWVhTGFMY3VTRWdIYzhTMmZJZHlnUjp2YVJKYmJiYjlCRWE4RmFIYUMyY2x0ZmdISWR3YUFJZHdOYUhJZGJhQUlkYk5hSElkbGFBSWRsTk1NYUhJZHhNTlVkYmFRYWVjZHRmeWRiZ2VhWDlobWJrYUVjZWZnRWFDOWhtYmtrYVhjZWZnWGFsOWhtYnhka2thQ21iY2JoQ2thaWF2YW9hcmF3YUNhbGE4TmE4UGF6YXNheWFzYzFlZmFZYThBYXF6Omhqampia2RuYW1jampqamxHVG1iYXptYmFhVG1iYWJoZWNiaExpbmFZYWV5ZGJnQWZSYmJjM3RoUWFlY3dmZ1h5ZGJoSGNqampqOTRoQ2RuYTVhQWNkdGdFZnlkYmFlY2xmZ0t5ZGJnT1NtYmNqampqOTRjYmE4RWFPY2R0ZnlkYmFBU0VoQ2thZWFRYUNWYUFWQmRiYVlhT2ZSYmJjM3RoOEZjampqajk0aENjampqajk0aFFkbmE1YU9jZHRmeWRiYUhTbWJjampqajk0Y2JhOEVhSGNkdGZ5ZGJhT1NFaFFrYUthOEZhUVZhT1ZCZGJhWWFIZlJiYmMzdGhPZG5hNWFIY2R0ZnlkYmFBU21iY2pqamo5NGNiYThFYUVmeWRiYUhTRWhDa2FYYU9hQ1ZhSFZCZGJhZWN4ZmhlYUxjaWZnTGFhNm1ia2tkbmF6VG1iYWFUbWJhYWhlaW5hYmF6YWJ5ZGJjZHRmeWRiQmRiYWJjbGZoYmFlY3VmZ2VtYmtrZG5hUFRtYmFQYVphVTpyTlVkYmtkbmFzeWQ7OGVnSFRtYmFIY2R0YXNjOkNlZmZjOThmaGVpbmFleWRiY2J5ZDptOkg6Y2piSDpiampqYmJhZWM5OGZoZWFIY3VmZ0htYmtrYXNjajtzYmY4S2pqampiYWFrO1lpZW91YWJ5ZGxodmFieWRiY2xmY2JhaWNkdHo6dGpqamJob2FkY2k5VWhyZG5hZFRtYmRuYWxUbWJhZWh3YWRoRGluYW9hbGF3eWRiY2R0ZnlkYmNkdGZncWFxeWRiY2VmQmRiYXdjbGZod2FEY3VmZ0RtYnhka2thZWh3YWRoRGluYW9hd3lkYmNkdGZncWFxeWRiY2VmQmRiYXdjbGZod2FEY3VmZ0RtYmtrZG5haVRtYmNiaERhb2h3aW5hd3lkYmhxYXdhREJkYmF3Y2xmaHdhcWFEZmhEYWljdWZnaW1ia2tkbmFkY2k2bWJpbmFlY3dmeWRiaHdhZWNsZnlkYmhEYWV5ZGJoaWRuYWxUbWJhbGF3Y2R0ZnlkYmh3YWxhRGNkdGZ5ZGJoRGFsYWljZHRmeWRiaGlrYXZhb2FpY2R0ZmdxeWRiY2l0ZmFEQmRiYXZhcXlkYmNpdGZhd0JkbGFxYXF5ZGJjZWZCZGJhdmFvYURjZHRmZ3F5ZGJjaXRmYXdCZGJhdmFxeWRiY2l0ZmFpQmRsYXFhcXlkYmNlZkJkYmF2YW9hd2NkdGZnd3lkYmNpdGZhaUJkYmF2YXd5ZGJjaXRmYURCZGxhd2F3eWRiY2VmQmRiYWVjeGZoZWFyY3VmZ3JtYmtrYWJ5ZGJjYkJkYms6dG9kRHVlOTlhaWNkNGFpZmhyY2Vod2luYXdnRGNldGh3YURhcjZtYmtjdWFEY2R0Z3JhRGNGRkZGaTBFY2J5ZDE6SDpjamJIampqamJiaHdhb2FveWQ5R2dxY2VmQmQ5R2FvYXFjZHRmYXdCZGJhd2NGZWFyejp0ampqYmhrZG5haVRtYmFsY2Q0aGxhRGN1Zmh4Y2JobWluYW1oRGRuYXZUbWJhdmFtY2R0ZnlkYmhEa2NiYWRhRGFsMmNkdGZnRHlkbGd3YXdjampqajk0U0Vnd2NINGF3N2M6RjpiOkREMmNiYUR5ZGJnd2F3Y2pqamo5NFNFZ3djSDRhdzdjO0Q7TzpCOEoyN2NiYUR5ZHdnRGFEY2pqamo5NFNFZ0RjSDRhRDdjOjNGO044TjI3YXhHaHdhbWNkdGhQZG5kbmRuYXZUbWJha2F3Y2R0ZmdyeWRiZ0RjdVNtZWFkYXZhUGZ5ZGJhbDJjZHRmZ3NJZGJoemNlaHFpbmFxaHJkbmFkYXZhRGNkdGZ5ZGJhbDJjZHRmZ3FJZGJhejlDbWJhcUlkbGFzSWRsOUNtYmFxSWR3YXNJZHc5Qm1sa2FyY2VmaHFha2F3YXJmYXhHZ3djZHRmZ3J5ZGJnRGN1OWhtYnhka2tha2F3Y2R0ZmdyeWRiZ0RjdVNtYmFkYW1hbDJjZHRmZ3NJZGJoemNlaHFpbmFxaHJkbmFkYURhbDJjZHRmZ3FJZGJhejlDbWJhcUlkbGFzSWRsOUNtYmFxSWR3YXNJZHc5Qm1pa2FyY2VmaHFha2F3YXJmYXhHZ3djZHRmZ3J5ZGJnRGN1OWhtYmtrYXJhbUJkYmFtaERrYWJhUGZhREJkYmFtY2VmZ21haTlobWJra2FrY2J5ZDptOkg6Y2piSDpiampqYmJhb2FveWQ5R2N1ZkJkOUdkbmFlVG1iYWlUbWJjYmhEYWVod2luYXdhREJkYmF3Y2xmaHdhaWFEY2VmZ0Q5aG1ia2NiaERhZWh3aW5kbmFEYWJ5ZGJnclNtYmF3YWVhcmNkdGZncnlkYkJkYmFyYURCZGJrYWJjbGZoYmF3Y2xmaHdhaWFEY2VmZ0Q5aG1ia2trOzpvZHZ1djk5OEpqampqYmNhOVJnb2NieWQxOkc6Y2piQmRLYW9jYjhQZGo6RzpjamI4M2l6YW9jYnlkTjpHOmNqYkJkd2FvY2I4UGQ6bTpHOmNqYjgzaWJkbmFkVG1iYWljZDRocmRuYWJtYmRuYWxUbWJjYmh3aW5hZWFsYXdjZHRmeWRiYXIyY2R0ZmhEY2JoaWluYW9jemZhaWZncWFEYWlmSWRiZ2thcUlkYmd4YXhhazlFRVVkYmFvYWlmZ3Fha2FxSWRiZ3hheGFrOURFVWRiYWljbGZnaWN4OWhtYmthd2NlZmd3YWQ5aG1ieGlra2FyY2R0aHdjYmhEaW5jYmhpaW5hb2N6ZmFpZmdxYWVhaWZJZGJna2FxSWRiZ3hheGFrOUVFVWRiYW9haWZncWFrYXFJZGJneGF4YWs5REVVZGJhaWNsZmdpY3g5aG1ia2FlYXdmaGVhRGNlZmdEYWQ5aG1ieGRra2RuYWxUbWJjYmh3aW5hYmF3Y3gyZmdpYWVhbGF3Y2R0ZnlkYmFyMmNkdGZnRElkYlVkYmFpYURJZGxVZGxhaWFESWR3VWR3Y2JoaWluYW9jemZhaWZncWFEYWlmSWRiZ2thcUlkYmd4YXhhazlFRVVkYmFvYWlmZ3Fha2FxSWRiZ3hheGFrOURFVWRiYWljbGZnaWN4OWhtYmthd2NlZmd3YWQ5aG1ieGRra2FyY2R0aGxjYmh3YWVoRGluYWJhd2N4MmZnaWFlYXdhcjJjZHRmZ3FJZGJVZGJhaWFxSWRsVWRsYWlhcUlkd1Vkd2NiaGlpbmFvY3pmYWlmZ3FhRGFpZklkYmdrYXFJZGJneGF4YWs5RUVVZGJhb2FpZmdxYWthcUlkYmd4YXhhazlERVVkYmFpY2xmZ2ljeDlobWJrYURhbGZoRGF3Y2VmZ3dhZDlobWJra0piYmJiYW9JZGJhb0lkemd4OnRna2FrSmJiYmI5REVna2FvSWRsYW9JZENnbTp0Z1BhUGFrOURFZ2thb0lkd2FvSWRLZ1A6dGdzYXNhazlERWhzZG5hYlRtYmFkVG1iSmJiYmJKYmJqWmFzOnZhc0piYmJiOUJFaGtpbmFiYWthYklkYmF4OnROVWRiYWJjbGZnb2FrYW9JZGJhbTp0TlVkYmFiY3dmZ29ha2FvSWRiYVA6dE5VZGJhYmN4ZmhiYWRjdWZnZG1ia2tkbmF2VG1iYXZhUFVkd2F2YW1VZGxhdmF4VWRia2FzazpXbGV3dWRuYWVUbWJjYmh2YWJob2luYW9hdkJkYmFvY2xmaG9hZWF2Y2VmZ3Y5aG1ia2tkbmFpVG1iY2JocmluYWRhcmNkdGZod2NiaERpbmFsYXdhRGNkdGd2eWQ6RzpHOmNqYmNkdGZ5ZGJjZHRmeWRiaG9kbmFsYXdhdmZ5ZGJjZHRmeWRiZ3FhYmFxY2R0ZmdreWRiZ3ZTbWJpbmFrYWJhdmdxY2R0Zmd4eWRiZ3ZCZGJheGhrYXFhdjlobWJra2RuYW9hYmFvY2R0ZmdreWRiZ3ZTbWJpbmFrYWJhdmdvY2R0Zmd4eWRiZ3ZCZGJheGhrYW9hdjlobWJra2RuYXFhb1NtYmFiYXFhb2FxYW8wRWNkdGZhcWFvYXFhbzZFQmRia2FEY2VmZ0RjaTlobWJrYXJjaWZncmFpNm1ia2tkbmFlbWJjYnNrY2JoeGluZG5hbGF4Y2R0Z3ZmeWRiYXg5aG1iYXhob2RuYXhhYmF2ZmdEeWRiZ3ZTbWJhRGhxaW5hcWFiYXZnb2NkdGZna3lkYmd2QmRiYWtocWFvYXY5aG1ia2thRGFvQmRia2F4Y2VmZ3hhZTlobWJrY2Joa2FiaHZjYmhvaW5kbmRuYW9hbHlkYmdxOWhtYmRuYW9hdnlkYmdxOWhtYmF2YWtCZGJha2NlZmhreGRrYXZhYmFxY2R0ZnlkYkJkYnhla2F2YWJhcWNkdGZ5ZGJCZGJrYWxjbGZobGF2Y2xmaHZhZWFvY2VmZ285aG1ia2FraztqaWlsdWQ5OWV1YWJjYmFlY2x0ejp0ampqYmh2ZG5hbFRtYmFkaG9haWhyYWxod2luYXJjd2ZJZGJoRGFyY2xmSWRiaHFhdmFveWRiY2x0ZmdrYXJJZGJha0lkYk1VZGJha2FxYWtJZGxNVWRsYWthRGFrSWR3TVVkd2FrYWtJZHhKYmJqWk1VZHhhb2NsZmhvYXJjeGZocmF3Y3VmZ3dtYmtrZG5hZVRtYmF2aGthZWhyaW5ha2N4ZmdvSWRiaERhb2NiQmRiYWtha0lkYkpiYmJiSmJialphRDp2YURKYmJiYjlCRWdETlVkYmFrY2xmZ29hRGFvSWRiTlVkYmFrY3dmZ29hRGFvSWRiTlVkYmFrY3pmaGthcmN1ZmdybWJra2RuYWxUbWJpbmF2YWR5ZGJjbHRmZ2thaWN3ZklkYmFrSWR3OnRnRGFETmFpSWRiYWtJZGI6dGdEYUROYWljbGZJZGJha0lkbDp0Z0RhRE5NTWdEYWtJZHhncWFxYUQ5REVVZHhhZGNsZmhkYWljeGZoaWFsY3VmZ2xtYmtrZG5hZVRtYmF2Y3hmaGtpbmFiYWtJZGJVZGJha2N6ZmhrYWJjbGZoYmFlY3VmZ2VtYmtrazptb2VydWRuYW9UbWJhZWNkNGh6ZG5hdlRtYmFpY2Q0aEhhdmNkdGhPY2JoQWluZG5hUGFBZlJiYlRtYmFBaGVkbmFEVG1iYURhQWNkdGZ5ZGJoZWtkbmFzVG1iYXNhZWZSYmJjZUdtZWtkbmFtYUFmUmJiY2xTbWJhYmFlYXoyY2R0ZmdpYXJhQWN4MmZnQ0lkYmFrTmF4SWRiTVVkYmFpYUNJZGxha05heElkbE1VZGxhaWFDSWR3YWtOYXhJZHdNVWR3a2FkYWVhSDJjZHRmaFhhcWhlYXdoaWF2aENpbmFYYWV5ZGJjZHRnUWZhaUlkYmFsYVFmSWRiOnZVZGJhZWNsZmhlYWljbGZoaWFDY3VmZ0NtYmtrYXdhT2Zod2FBY2VmZ0FhbzlobWJ4ZGtrZG5hc21iY2JoZWFEaGlpbmRuYVBhZWZSYmJUbWJhZWhDZG5hRFRtYmFpeWRiaENrYW1hZWZSYmJjbFNtYmFiYUNhejJjZHRmZ0NhcklkYmFrTmF4SWRiTVVkYmFDYXJjbGZJZGJha05heElkbE1VZGxhQ2FyY3dmSWRiYWtOYXhJZHdNVWR3a2FpY2xmaGlhcmN4ZmhyYW9hZWNlZmdlOWhtYnhka2tkbmFEVG1iaW5kbmFQUmJiVG1iYXNhRHlkYmdlZlJiYmNlR21iYW1SYmJjbFNtYmFiYWVhejJjZHRmZ2VhcklkYmFrTmF4SWRiTVVkYmFlYXJjbGZJZGJha05heElkbE1VZGxhZWFyY3dmSWRiYWtOYXhJZHdNVWR3a2FQY2VmaFBhRGNsZmhEYW1jZWZobWFyY3hmaHJhb2N1ZmdvbWJ4ZGtrYXpjZHRoaWNiaGVpbmRuYVBhZWZSYmJUbWJhc2FlZlJiYmNlR21iYW1hZWZSYmJjbFNtYmFiYXJJZGJha05heElkYk1VZGJhYmNsZmFyY2xmSWRiYWtOYXhJZGxNVWRiYWJjd2ZhcmN3ZklkYmFrTmF4SWR3TVVkYmthcmN4ZmhyYWJhaWZoYmFvYWVjZWZnZTlobWJra2s4TWJhYmFlYWRhaWFsYXZjYmNiY2JjYmNiYW9hcmF3YUR6OmJqampiazhNYmFiYWVhZGFpYWxhdmFvYXJhd2FEYXFha2F4YW1hUHo6YmpqamJrUmJhYmFiYWVhZGFpYWxhdmFvYXJhd2FEYXFha2F4Y2pqampkVmFtejpiampqYms6ZzhLb3F1ZTk5ZHVlOTlkdXE5OThKampqamJjO1diOVJncThLampqamJjYmhrYXFjeGZjYmM7S2J6OnRqampiOEFhcWN1YWxjeDJhbGM7djpRO3Y6UWUwRWNieWQxOkg6Y2piSGpqampiYmd4QmR4YXFjZUJkMmF4YWlhbGF2Y2JjYno6ZWpqamI4QWFxY3VhbGNkdGFsY0ZGRkZpMEVnbWNieWQxOkg6Y2piSGpqampiYmdpQmR6YXFjZEJkMmRuZG5KRkY5NTllSmJialphd0piYmpaYXdKYmJqWjlERTp2YXdKOVZPOmQ4NjlERWd3OmxKYmJiOXA5RFRtYmF3Ok9oUHhla2NqampqOTRoUGthZGNpOVVoc2FyY285VWh6ZG5kbmFvbWJhUGNkOWltZWtkbmFsVG1iYVBjdWY6WWh3ZG5hb1RtYmNiaHZhaWhIYXhoT2luZG5kbmFvYXZmUmJiY2VHVG1iYXZjampqamxWaEF4ZWtkbmRuYU9jbGZJZGJhd05KYmJiWk1nQzpsSmJiYjlwOURUbWJhQzpPaEF4ZWtjampqajk0aEFrYUFjcXRoQWRuZG5hT2N3ZklkYmF3TkpiYmJaTWdDOmxKYmJiOXA5RFRtYmFDOk9oWHhla2NqampqOTRoWGthQWFYVmhBZG5kbmFPSWRiYXdOSmJiYlpNZ0M6bEpiYmI5cDlEVG1iYUM6T2hYeGVrY2pqamo5NGhYa2FBYVhjQ3RWaEFrYUhhQUJkYmFIY2xmaEhhT2N4ZmhPYWxhdmNlZmd2OWhtYnhka2theGh2YWloT2FsaEhpbmRuZG5hdklkYmF3TkpiYmJaTWdDOmxKYmJiOXA5RFRtYmFDOk9oQXhla2NqampqOTRoQWthQWNDdGhBZG5kbmF2Y2xmSWRiYXdOSmJiYlpNZ0M6bEpiYmI5cDlEVG1iYUM6T2hYeGVrY2pqamo5NGhYa2FYY3F0YUFWaEFkbmRuYXZjd2ZJZGJhd05KYmJiWk1nQzpsSmJiYjlwOURUbWJhQzpPaFh4ZWtjampqajk0aFhrYU9hQWFYVkJkYmF2Y3hmaHZhT2NsZmhPYUhjdWZnSG1ia2thZFRtYmNiaGthZWh2Y2JoT2luYWthaWF2Y2xmeWRiY2R0ZnlkYmdIYWlhdmN3ZnlkYmNkdGZ5ZGJnQTloYWlhdnlkYmNkdGZ5ZGJnWGFIOWhhWGFBOWhHR2Zoa2F2Y3hmaHZhT2NpZmdPYWQ2bWJra2FyY2k5VWhRZG5kbmF6Olo6ckpiYmJaTWd3OmxKYmJiOXA5RFRtYmF3Ok9odnhla2NqampqOTRodmthUTpaaExjYmhLYzpid2h6ZG5pbmFrYVE5cG1lYXphUDlSY2Q5aW1lYXZhemN1ZmdPYXZhTzlpRWFQY2VmYXZhUDlrRWhZZG5hbFRtYmFZY3VmOllod2RuYW9UbWJjYmhPYWloSGF4aHZpbmRuZG5hb2FPZlJiYmNlR1RtYmFPY2pqampsVmhBeGVrZG5kbmF2Y2xmSWRiYXdOSmJiYlpNZ0M6bEpiYmI5cDlEVG1iYUM6T2hBeGVrY2pqamo5NGhBa2FBY3F0aEFkbmRuYXZjd2ZJZGJhd05KYmJiWk1nQzpsSmJiYjlwOURUbWJhQzpPaFh4ZWtjampqajk0aFhrYUFhWFZoQWRuZG5hdklkYmF3TkpiYmJaTWdDOmxKYmJiOXA5RFRtYmFDOk9oWHhla2NqampqOTRoWGthQWFYY0N0VmhBa2FIYUFCZGJhSGNsZmhIYXZjeGZodmFsYU9jZWZnTzlobWJ4ZGtrYXhodmFpaE9hbGhIaW5kbmRuYXZJZGJhd05KYmJiWk1nQzpsSmJiYjlwOURUbWJhQzpPaEF4ZWtjampqajk0aEFrYUFjQ3RoQWRuZG5hdmNsZklkYmF3TkpiYmJaTWdDOmxKYmJiOXA5RFRtYmFDOk9oWHhla2NqampqOTRoWGthWGNxdGFBVmhBZG5kbmF2Y3dmSWRiYXdOSmJiYlpNZ0M6bEpiYmI5cDlEVG1iYUM6T2hYeGVrY2pqamo5NGhYa2FPYUFhWFZCZGJhdmN4Zmh2YU9jbGZoT2FIY3VmZ0htYmtrY2JoT2RuYWRUbWJhZWh2Y2JoSGluYU9haWF2Y2xmeWRiY2R0ZnlkYmdBYWlhdmN3ZnlkYmNkdGZ5ZGJnWDloYWlhdnlkYmNkdGZ5ZGJncmFBOWhhcmFYOWhHR2ZoT2F2Y3hmaHZhSGNpZmdIYWQ2bWJra2RuYXM6WmdDYUw6dGFZOllnd2F6Olk6dGc4QU5hazpaZ0VhTzpaZzM6dE5hRWFMOnRhd2FQOlk6dGc1TmEzYUM6dE5NZzhFSmJiYmI5Qm1iYUNhRTp0YTVhOEFhM2FMOnROTk5hOEU6dmF3TWh3a2RuZG5hT2FRMG1iYU9oa2FZaFB4ZWthT2hzYVloemtkbmRuYUtjbDBtYmRuYXdKYmJiWk1ndzpsSmJiYjlwOURUbWJhdzpPaHZ4ZGtjampqajk0aHZ4ZWthUGF6ZmNkOVRodmthS2NlZmdLY3M5aG1ia2tkbmRuZG5ha21iSmJialpod2NiaE9jZGh2YURtZXhka2FsY2Q0YWxmaEhjZWhPaW5hT2d2Y2V0aE9hdmFINm1ia2NiaE9hcWN1YXZjZHRnWWF2Y0ZGRkZpMEVjYnlkMTpIOmNqYkhqampqYmJnS0JkQ2FxY2lCZDJhcWFtY2J5ZDE6SDpjamJIampqamJiZ3pCZEthcWNsQmQyZG5kbmRuZG5hbFRtYmFQY3VmOllod2FvVG1lY2JoT2FpaEFheGhIaW5kbmRuYW9hT2ZSYmJjZUdUbWJhT2NqampqbFZoWHhla2RuZG5hSGNsZklkYmF3TkpiYmJaTWdDOmxKYmJiOXA5RFRtYmFDOk9oWHhla2NqampqOTRoWGthWGNxdGhYZG5kbmFIY3dmSWRiYXdOSmJiYlpNZ0M6bEpiYmI5cDlEVG1iYUM6T2hyeGVrY2pqamo5NGhya2FYYXJWaFhkbmRuYUhJZGJhd05KYmJiWk1nQzpsSmJiYjlwOURUbWJhQzpPaHJ4ZWtjampqajk0aHJrYVhhcmNDdFZoWGthQWFYQmRiYUFjbGZoQWFIY3hmaEhhbGFPY2VmZ085aG1ieGlra2FLY0ZlYVl6OnRqampiOEFjYmhQY2Jodnhka2F4aE9haWhIYWxoQWluZG5kbmFPSWRiYXdOSmJiYlpNZ0M6bEpiYmI5cDlEVG1iYUM6T2hYeGVrY2pqamo5NGhYa2FYY0N0aFhkbmRuYU9jbGZJZGJhd05KYmJiWk1nQzpsSmJiYjlwOURUbWJhQzpPaHJ4ZWtjampqajk0aHJrYXJjcXRhWFZoWGRuZG5hT2N3ZklkYmF3TkpiYmJaTWdDOmxKYmJiOXA5RFRtYmFDOk9ocnhla2NqampqOTRocmthSGFYYXJWQmRiYU9jeGZoT2FIY2xmaEhhQWN1ZmdBbWJra2FLY0ZlYVl6OnRqampiaHJhdmN1ZmhvY2JoUGNiaFlpbmRuZG5kbmFyYWlhWWNkdGdLZnlkYmdBY200YUE3Yzp2O3Q7aDtFdjJndmNzNGF2N2FvR2dIY2R0ZmdYeWRiZ09jdVNtYmNlaHZpbmFpYU9jZHRnT2Z5ZGJhQVNtZGFIYXZmaE9hdmNlZmh2YXJhT2FvR2dIY2R0ZmdYeWRiZ09jdTlobWJra2FYYVlCZGJhUGh2YVBjZWZoUHhla2F6YU9meWRiaHZrYXphS2ZhdkJkYmFZY2VmZ1lhbDlobWJrY3VhUGM4UzJnT2FQYztEO087ZjhVMEVodmtjYmhYYXFhdmNieWQxOkg6Y2piSGpqampiYmd2QmQzYXFjdkJkMmF2Y2JhT3o6dGpqamJoT2RuYWRUbWJhZWhpaW5heGFpY2xmeWRiZ3JjeDJmZ3ZJZGJheGFpeWRiZ29jeDJmZ0hJZGJnMzp0Z0NheGFpY3dmeWRiZ1ljeDJmZ0FJZGxhSElkbGc4QTp0Z3dOYXZJZGxhOEE6dGdFYUFJZGJhMzp0ZzhFTjp0Z0xhTE5hRWFBSWR3YUhJZHdnNTp0ZzhGTmF2SWR3YTU6dGdFYXdOOnRnd2F3TmFFYThFTmFDYThGTjp0Z0NhQ05NTWc4RTpyaEVKYmJubkpiYmpaYXphb2NkdGZ5ZGJndmF6YXJjZHRmeWRiZ0FTYXZhemFZY2R0ZnlkYmdyU0dnSEVoOEZkbmE4RUpiYmJiOUVUbWJhTGFFOnZoTGFDYUU6dmhDYXdhRTp2aHdrYU9hdmM4UzJmZ3ZhdklkYmF3YThGYUU6ck5nRWF3Tk5nOEZNVWRiYXZhQ2FFYUNOZ2FOZ2hhdklkbE1VZGxhdmFMYUVhTE5nOEVOZ2dhdklkd01VZHdhdmF3YWFOZ2FhdklkeE1VZHhhdmE4RWF3Tmc4SmF2SWR6TVVkemF2YUNhOEVOZzhFYXZJZENNVWRDYXZhd2FFYUxhNU5hd2EzTmE4QWFDTk1NOm1nOEFOZzNOZ3dhdklkS01VZEthdmFDYTNOZ0NhdklkM01VZDNhdmFMYTNOZ0xhdklkYU1VZGFhdmEzYThBTmczYXZJZDhLTVVkOEthdmFFYXZJZHlNVWR5ZG5hSG1iYU9hQWM4UzJmZ3ZhOEZhdklkYk1VZGJhdmFoYXZJZGxNVWRsYXZhZ2F2SWR3TVVkd2F2YWFhdklkeE1VZHhhdmE4SmF2SWR6TVVkemF2YThFYXZJZENNVWRDYXZhd2F2SWRLTVVkS2F2YUNhdklkM01VZDNhdmFMYXZJZGFNVWRhYXZhM2F2SWQ4S01VZDhLYXZhRWF2SWR5TVVkeWFPYXJjOFMyZmd2YThGYXZJZGJNVWRiYXZhaGF2SWRsTVVkbGF2YWdhdklkd01VZHdhdmFhYXZJZHhNVWR4YXZhOEphdklkek1VZHphdmE4RWF2SWRDTVVkQ2F2YXdhdklkS01VZEthdmFDYXZJZDNNVWQzYXZhTGF2SWRhTVVkYWF2YTNhdklkOEtNVWQ4S2F2YUVhdklkeU1VZHlrYWljeGZoaWFYY2lmZ1hhZDZtYmtrY2JoQWFxY3VhUGNkdGd2YVBjRkZGRmkwRWdpY2J5ZDE6SDpjamJIampqamJiZ0hCZGFhcWNvQmQyYXFhaWNieWQxOkg6Y2piSGpqampiYmdpQmQ4S2FxY3JCZDJhSGNGZWF2ejp0ampqYmhZZG5hbFRtYmF6aEhpbkpiYmJiSmJialphT2FIeWRiZ1hjOFMyZmd2SWR5Z3c6dmF3SmJiYmI5QkVhdklkd2F4Y3dmSWRiZ3dOYXZJZHpheElkYmdDTmF2SWRhTWdMYUxNTWF3TmF2SWRsYXhjbGZJZGJnTE5hdklkQ2F3TmF2SWQzTWd3YXdNTWFMTmF2SWRiYUNOYXZJZHhhTE5hdklkS01nd2F3TU1hQ05hdklkOEtNTU06bE5od2RuZG5hWWFYY2R0Z3ZmZ1h5ZGJjdVNtYmFpYXZmSWRiYXc5RVRtZWthWGFBQmRiYWlhdmZhd1VkYmthSGNsZmhIYXhjeGZoeGFsYUFjZWZnQTlobWJra2RuZG5hUG1iSmJiYmJod3hla0piYmJiaHdpbmFpSWRiZ0Nhd2F3YUM5REVod2FpY2xmaGlhUGN1ZmdQbWJrYXc6cmh3a2FrY2Q0YWtmaE9jZWhpaW5haWd2Y2V0aGlhdmFPNm1ia2NiaE9hcWN1YXZjZHRnaWF2Y0ZGRkZpMEVjYnlkMTpIOmNqYkhqampqYmJnSEJkeWFIY0ZlYWl6OnRqampiaFhkbmFkVG1iYXZjdWZocmNiaFBjYmh4aW5kbmF6YWVheGNkdGZndnlkYmNkdGZ5ZGJnaWF6YXZjbGZ5ZGJjZHRmeWRiZ09TbWJhaWF6YXZjd2Z5ZGJjZHRmeWRiZ3ZTbWJhT2F2U21iYVlhdmNkdGZ5ZGJoQWRuZG5hWWFPY2R0ZnlkYmd2YVlhaWNkdGZ5ZGJnaTlwbWJhdmFBOXBtYmFBaGxhaWhvYXZoQXhla2RuYUFhaTlwbWJhQWF2OXBtYmFpaGxhdmhveGVrYXZobGFBaG9haWhBa2FiYVBjeDJmZ3ZhQUJkYmF2Y3dmYW9CZGJhdmNsZmFsQmRiZG5hWGFvYzozRjtOOE4yYWxjOkY6YjpERDI3YUFjO0Q7TzpCOEoyN2FyR2dPY2R0Zmd2eWRiZ2ljdVNtYmNlaEhpbmFIaHZkbmFiYWljeDJmZ2l5ZGJhQTlobWJhaXlkbGFsOWhtYmFpeWR3YW9TbWlrYXZjZWZoSGFYYU9hdmZhckdnT2NkdGZndnlkYmdpY3U5aG1ia2thdmFQQmRiYVBjZWZoUGtheGNpZmd4YWQ2bWJrYVBjaTJoT2tjd2h2YURUbWVrYURhd1VkYmthdmNkdGh2YXFjeGZjOThmaGlpbmFpYXZmeWRiY2J5ZDptOkg6Y2piSDpiampqYmJhdmM5OGZndm1ia2FxYztXYmY4S2pqampiYU9rOjNsZHJ1ZTk6OEpqampqYmM7V2I5UmdyOEtqampqYmNiaHdhcmN4ZmNiYztLYno6dGpqamI4QWRuYWJhZVNtYmFiYWVhZGNkdHpNampqYjhBa2FyY3VhbGNkdGFsY0ZGRkZpMEVnRGNieWQxOkg6Y2piSGpqampiYmdxQmR4YXJjZUJkMmFxY2JhaWFsYXZjYmFyY3hmejpkampqYmN1YWxjeDJhbGM7djpRO3Y6UWUwRWNieWQxOkg6Y2piSGpqampiYmhrYXJjeGZhcnlkMmd4Y2R0ZmFrQmRiYXJheGNlZmdtQmQyYWthaWFsYXZjYmNiejplampqYjhBYXJjeGZhbWNkdGZhRGNieWQxOkg6Y2piSGpqampiYmdpQmRiYXJheGNkZmd2QmQyYXJjeGZhdmNkdGZjdWFpYWxhZWFkYXF6OmZqampiZ2VjbHRhZWNqampqaUdFY2J5ZDE6SDpjamJIampqamJiZ3FCZGJhcWFlYWlha2FsejpnampqYmF4Y2lmaGtkbmFkVG1iYW9hb05ob2NiaHdhYmhsY2JoZWluZG5hcWFpYWx5ZGJndmNkdGZ5ZGJjZHRmSWRiYW85RVRtYmFsY2xmOFBkYmhQYWJhd2NkdGZnRGF2QmRiYURjbGZhUDgzZGJhd2NpZmh3a2FsY3hmaGxhZWNpZmdlYWQ2bWJra2RuYWtUbWJheGNkdGFyY3hmZmN3ZmhsaW5hbHlkYmNieWQ6bTpIOmNqYkg6YmpqamJiYWxjOThmaGxha2N1ZmdrbWJra2FyYztXYmY4S2pqampiYXdrOldDb0R1ZDk5dnVlOTl2dXY5OThKampqamJjO1diOVJndzhLampqamJkbmRuYXJtYmNiaER4ZWthd2N4ZmNiYztLYno6dGpqamI4QWF3Y3VhZGN4MmFkYzt2OlE7djpRZTBFY2J5ZDE6SDpjamJIampqamJiZ3FCZHhhd2NlQmQyYXFhZWFkYWljYmNiejplampqYjhBYXdjdWFkY2R0YWRjRkZGRmkwRWdrY2J5ZDE6SDpjamJIampqamJiZ3hCZHphd2NkQmQyYWRjZDRhZGZobWNlaGVpbmFlZ2ljZXRoZWFpYW02bWJrY2JoUGF3Y3VhaWNkdGdzYWljRkZGRmkwRWNieWQxOkg6Y2piSGpqampiYmd6QmRDYXdjaUJkMmRuZG5hcjpaZ0g6ckpiYmJaTWdPOmxKYmJiOXA5RFRtYmFPOk9oZXhla2NqampqOTRoZWthaWN1ZmhBYzpid2hDY2JoWGFkaFFjYmhMaW5hZWFDY3VmZ2lhZWFpOWlFYVBjZWZhZWFQOWtFaERkbmRuYWRUbWJhRGN1ZjpZaE9hcWhpYXhoZWFkaG1pbmRuZG5haUlkYmFPTkpiYmJaTWdLOmxKYmJiOXA5RFRtYmFLOk9oWXhla2NqampqOTRoWWthWWNDdGhZZG5kbmFpY2xmSWRiYU9OSmJiYlpNZ0s6bEpiYmI5cDlEVG1iYUs6T2g4QXhla2NqampqOTRoOEFrYThBY3F0YVlWaFlkbmRuYWljd2ZJZGJhT05KYmJiWk1nSzpsSmJiYjlwOURUbWJhSzpPaDhBeGVrY2pqamo5NGg4QWthZWFZYThBVkJkYmFpY3hmaGlhZWNsZmhlYW1jdWZnbW1ia2F6Y0ZlYXN6OnRqampiaEVjYmgzY2JoNWluZG5hRWF4YTVjZHRmeWRiZ1ljbTRhWTdjOnY7dDtoO0V2MmdpY3M0YWk3YUFHZ21jZHRmZzhBeWRiZ2VjdVNtYmFlYVlTbWJjZWhpaW5hRWFtYWlmYUFHZ21jZHRmZzhBeWRiZ2VjdVNtZWFpY2VmaGlhZWFZOWhtYmtrYThBYVlCZGJhM2FlY3VTZmgzYTVjZWZnNWFkOWhtYnhka2themNGZWFzejp0ampqYjhBY2JoM2tkbmFROlpnS2FIOnRhRDpZZ09hQzpZOnRnOEVOYVg6Wmc4RmEzOlpnYTp0TmE4RmFIOnRhT2FQOlk6dGdoTmFhYUs6dE5NZ2dKYmJiYjlCbWJhS2E4Rjp0YWhhOEVhYWFIOnROTk5hZzp2YU9NaE9rYVBhRGEzYXIwZ2lFaFBhWGEzYWlFaFhkbmEzYXJTbWJhRGFDYWlFZ0NhUDlSY2Q5aW1iZG5kbmFMY2wwbWJkbmFPSmJiYlpNZ086bEpiYmI5cDlEVG1iYU86T2hleGRrY2pqamo5NGhleGVrYVBhQ2ZjZDlUaGVrYTNhUWFpRWhRYUxjZWZnTGNzOWhtZWtrZG5kbmFYbWJjaWhpY2JoRHhla2NiaGlhd2FrY2J5ZDE6SDpjamJIampqamJiZzVCZEthd2NsQmQyYVBjdWY6WWhLZG5kbmFkVG1iYXFoaWF4aGVhZGhtaW5kbmRuYWlJZGJhS05KYmJiWk1nTzpsSmJiYjlwOURUbWJhTzpPaFl4ZWtjampqajk0aFlrYVljQ3RoWWRuZG5haWNsZklkYmFLTkpiYmJaTWdPOmxKYmJiOXA5RFRtYmFPOk9oOEF4ZWtjampqajk0aDhBa2E4QWNxdGFZVmhZZG5kbmFpY3dmSWRiYUtOSmJiYlpNZ086bEpiYmI5cDlEVG1iYU86T2g4QXhla2NqampqOTRoOEFrYWVhWWE4QVZCZGJhaWN4ZmhpYWVjbGZoZWFtY3VmZ21tYmthemNGZWFzejp0ampqYmhFY2JoRGNiaDNpbmRuZG5kbmFFYXhhM2NkdGdDZnlkYmdZY200YVk3Yzp2O3Q7aDtFdjJnaWNzNGFpN2FBR2dtY2R0Zmc4QXlkYmdlY3VTbWJjZWhpaW5heGFlY2R0Z2VmeWRiYVlTbWRhbWFpZmhlYWljZWZoaWFFYWVhQUdnbWNkdGZnOEF5ZGJnZWN1OWhtYmtrYThBYTNCZGJhRGhpYURjZWZoRHhla2E1YWVmeWRiaGlrYTVhQ2ZhaUJkYmEzY2VmZzNhZDlobWJrY3VhRGMzMmdpYURjO2o6S007amIwRWhleGVrYXpjRmVhc3o6dGpqamI4QWNiaERjYmhla2F3YWVjYnlkMTpIOmNqYkhqampqYmJnZUJkM2F3Y3ZCZDJhZWNiYWl6OnRqampiaDhBYXZjZDRoeGRuYWRUbWJkbmFsVG1iYXhjZHRoRWE1aFlhcWhlYWxobWFkaEFpbmE4QWFZeWRiYzMyZmdpYWVJZGJhaUlkYk1VZGJhaWFlY2xmSWRiYWlJZGxNVWRsYWlhZWN3ZklkYmFpSWR3TVVkd2FpYW1JZGJhaUlkeE1VZHhhaWFtY2xmSWRiYWlJZHpNVWR6YWlhbWN3ZklkYmFpSWRDTVVkQ2FpYWlJZEtKYmJqWk1VZEthWWNsZmhZYWVjeGZoZWFtYUVmaG1hQWN1ZmdBbWJ4ZGtrYTVobWFxaGVhZGhZaW5hOEFhbXlkYmMzMmZnaWFlSWRiYWlJZGJNVWRiYWlhZWNsZklkYmFpSWRsTVVkbGFpYWVjd2ZJZGJhaUlkd01VZHdhaWFpSWR4SmJiYmJNVWR4YWlhaUlkekpiYmJiTVVkemFpYWlJZENKYmJiYk1VZENhaWFpSWRLSmJialpNVWRLYW1jbGZobWFlY3hmaGVhWWN1ZmdZbWJra2RuYURUbWJhOEFoaWFEaGVpbmFpYWlJZGJKYmJiYkpiYmpaYWljS2ZJZGJnTzp2YU9KYmJiYjlCRWdPTlVkYmFpY2xmZ21hT2FtSWRiTlVkYmFpY3dmZ21hT2FtSWRiTlVkYmFpY3hmZ21hT2FtSWRiTlVkYmFpY3pmZ21hT2FtSWRiTlVkYmFpY0NmZ21hT2FtSWRiTlVkYmFpYzNmaGlhZWN1ZmdlbWJra2NiaFlhd2N1YURjZHRnQ2FEY0ZGRkZpMEVnaWNieWQxOkg6Y2piSGpqampiYmdlQmRhYXdjb0JkMmF3YWljYnlkMTpIOmNqYkhqampqYmJnRUJkOEthZWNGZWFDejp0ampqYmgzZG5hZFRtYmFvSmJialpKYmJqWmFLOnZhUGNlU0VOZ09hT05oS2F4Y2R0aHhhbGhlaW5hS2FlYzs4Okc6Y2piYWxFZ21JZHdhOEFhNXlkYmdBYzMyZmdpSWRDOnRnT2FPTmFtSWRiYWlJZHg6dGdPYU9OYW1JZGxhaUlkejp0Z09hT05NTU5hcWN3ZklkYmFpSWR3OnRnT2FPTmFxSWRiYWlJZGI6dGdPYU9OYXFjbGZJZGJhaUlkbDp0Z09hT05NTU1oT2RuZG5hM2FBY2R0Z2lmZ215ZGJjdVNtYmFFYWlmSWRiYU85RVRtZWthbWFZQmRiYUVhaWZhT1VkYmthNWNsZmg1YXFjeGZocWFlYXhmaGVhZGFZY2VmZ1k5aG1ia2thYmEzYUN6TWpqamI4QWNyaGlrYWljZHRoaWF3Y3hmYzk4ZmhlaW5hZWFpZnlkYmNieWQ6bTpIOmNqYkg6YmpqamJiYWljOThmZ2ltYmtrYXdjO1diZjhLampqamJhRGs6UGRpZHVpOTlkdWNiaGk4SmpqampiY2E5UmdsY2J5ZDE6RzpjamJCZEthbGNiOFBkajpHOmNqYjgzaXphbGNieWROOkc6Y2piQmR3YWxjYjhQZDptOkc6Y2piODNpYmRuZG5hZW1iSmJiakZodkpiYmpGaG9KYmJqRmhyeGVrYWRjZDRjZHRod2luY2JoZGluYWxjemZhZGZnRGFiYWRmSWRiZ3ZhRElkYmdvYW9hdjlFRVVkYmFsYWRmZ0RhdmFESWRiZ29hb2F2OURFVWRiYWRjbGZnZGN4OWhtYmthYmF3ZmhiYWljZWZnaWFlOWhtYmthbElkd2FsSWRLOnRocmFsSWRsYWxJZEM6dGhvYWxJZGJhbElkejp0aHZrSmJiYmJhdmF2SmJiYmI5REVndmFvYW9hdjlERWd2YXJhcmF2OURFazlEZWV1YWJjRmVhaWNkdHo6dGpqamJobGNiaGJkbmFkVG1iaW5kbmFsYWV5ZGJjZHRmZ2l5ZGJjdTlobWJhaWFiQmRiYWJjZWZoYmthZWNsZmhlYWRjdWZnZG1ia2thYms7QmlkcXVpOTk4SmpqampiYztXYjlSZ2w4S2pqampiYWxjeGZjYmM7S2J6OnRqampiOEFhZGNkNGFkZmh2Y2Vob2luYW9ncmNldGhvYXJhdjZtYmthbGN1YXJjZHRnb2FyY0ZGRkZpMEVjYnlkMTpIOmNqYkhqampqYmJndkJkeGF2Y0ZlYW96OnRqampiaHdkbmFkVG1iYWljZDRoRGFyY3VmaHFjYmhraW5kbmRuYXdjYmFlYWthRDJjZHRmZ3J5ZGxnaWFpY2pqamo5NFNFZ29jSDRhbzdjOkY6YjpERDJjYmFyeWRiZ3hheGNqampqOTRTRWdvY0g0YW83YztEO086QjhKMjdjYmFyeWR3Z21hbWNqampqOTRTRWdyY0g0YXI3YzozRjtOOE4yN2FxR2d2Y2R0ZmdyeWRiZ29jdVNtYmFtOjpoUGFpOjpoc2F4OjpoemNlaGlpbmFpaHJkbmFlYW9hRDJjZHRmZ2lJZGJhejlDbWJhaUlkbGFzOUNtYmFpSWR3YVA5Qm1pa2FyY2VmaGlhd2F2YXJmYXFHZ3ZjZHRmZ3J5ZGJnb2N1OWhtYmtrYXJha0JkYmFraG9rYWJha2NkdGZhb0JkYmFrY2VmZ2thZDlobWJra2FseWR4Y2J5ZDptOkg6Y2piSDpiampqYmJhbGM7V2JmOEtqampqYms5dGVpdWNiY2J5ZDpxOkg6Y2piZ2VhYmNpZmM5OEdmZ2JCZDpxOkg6Y2piZG5kbmFiWmJjenRnZDlubWJjdWhpYWJhZDlSY0ZGaWZjejRuYmN1U21la2FlaGlrYWlrO0xlZWV1ZG5kbmFlYWJWY2lHVG1iYWJoaXhla2RuZG5hZGN6OXBtYmFiaGl4ZWthYmhpaW5haWFleWRiQmRiYWljbGZhZWNsZnlkYkJkYmFpY3dmYWVjd2Z5ZGJCZGJhaWN4ZmFlY3hmeWRiQmRiYWVjemZoZWFpY3pmaGlhZGM5V2ZnZGNzMG1ia2thZGNsNm1iaW5haWFleWRiQmRiYWVjbGZoZWFpY2xmaGlhZGM5OGZnZGNpMG1ia2tkbmFkVG1iaW5haWFlUmJiODZiYmFpY2VmaGlhZWNlZmhlYWRjdWZnZG1ia2thYms7YWVlZHVkbmRuYWJjaUdUbWJhYmhpeGVrYWVjRmVHYzpiOmM6ZXcyaGxkbmRuYWRjejlwbWJhYmhpeGVrYWJoaWluYWlhbEJkYmFpY3hmYWxCZGJhaWN3ZmFsQmRiYWljbGZhbEJkYmFpY3pmaGlhZGM5V2ZnZGNzMG1ia2thZGNsNm1iaW5haWFsQmRiYWljbGZoaWFkYzk4ZmdkY2kwbWJra2RuYWRUbWJpbmFpYWU4NmJiYWljZWZoaWFkY3VmZ2RtYmtrYWJrOXRlaXVjYmNieWQ6cTpIOmNqYmdlYWJjcmZjOTRHZmdiQmQ6cTpIOmNqYmRuZG5hYlpiY3p0Z2Q5bm1iY3VoaWFiYWQ5UmNGRmlmY3o0bmJjdVNtZWthZWhpa2Fpa1RlZXVjYmFiY2J5ZDpxOkg6Y2piZ2U5UmNpZmM5OEdhZWZnYkJkOnE6SDpjamJkbmFiWmJjenRnZTlubWJhYmFlOVJjRkZpZmN6NG5iOEFra2s6S2VkYmNqOkdkazFlRkZ1dUZGdXVGRnV1RkZ1RkZGdUZGRnVGYmJiYmJiYmJlYmJiZGJiYmJiYmJlYmJiZWJiYmRiYmJiYmJiYmJiYmVlZWVlYmViYmViYmViZWJiYmVlYmJiYmJiYmJiYmJiZWVlZWVlYmViYmVlZWJlZWJiYmJlYmViYmJiYmJiYmJiYmJiYmJiYmJjMTpIZGt4ZWJiYmRiYmI6RzpxYmIiLGU9bmV3IFVpbnQ4QXJyYXkoWzMyLDAsNjUsMiwxLDEwNiwzNCwzMywzLDEyOCwxMSw0LDEzLDY0LDYsMjUzLDEwLDcsMTUsMTE2LDEyNyw1LDgsMTIsNDAsMTYsMTksNTQsMjAsOSwyNywyNTUsMTEzLDE3LDQyLDY3LDI0LDIzLDE0NiwxNDgsMTgsMTQsMjIsNDUsNzAsNjksNTYsMTE0LDEwMSwyMSwyNSw2Myw3NSwxMzYsMTA4LDI4LDExOCwyOSw3MywxMTVdKTtpZih0eXBlb2YgV2ViQXNzZW1ibHkhPSJvYmplY3QiKXJldHVybntzdXBwb3J0ZWQ6ITF9O3ZhciB0LG89V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYShuKSx7fSkudGhlbihmdW5jdGlvbihnKXt0PWcuaW5zdGFuY2UsdC5leHBvcnRzLl9fd2FzbV9jYWxsX2N0b3JzKCl9KTtmdW5jdGlvbiBhKGcpe2Zvcih2YXIgQT1uZXcgVWludDhBcnJheShnLmxlbmd0aCksVD0wO1Q8Zy5sZW5ndGg7KytUKXt2YXIgUj1nLmNoYXJDb2RlQXQoVCk7QVtUXT1SPjk2P1ItOTc6Uj42ND9SLTM5OlIrNH1mb3IodmFyIFM9MCxUPTA7VDxnLmxlbmd0aDsrK1QpQVtTKytdPUFbVF08NjA/ZVtBW1RdXTooQVtUXS02MCkqNjQrQVsrK1RdO3JldHVybiBBLmJ1ZmZlci5zbGljZSgwLFMpfWZ1bmN0aW9uIHIoZyl7aWYoIWcpdGhyb3cgbmV3IEVycm9yKCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gaShnKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZy5idWZmZXIsZy5ieXRlT2Zmc2V0LGcuYnl0ZUxlbmd0aCl9ZnVuY3Rpb24gZihnLEEsVCxSKXt2YXIgUz10LmV4cG9ydHMuc2JyayxNPVMoVCo0KSxJPVMoVCpSKjQpLE49bmV3IFVpbnQ4QXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIpO04uc2V0KGkoQSksSSksZyhNLEksVCxSKjQpLE49bmV3IFVpbnQ4QXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIpO3ZhciBQPW5ldyBVaW50MzJBcnJheShUKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoUC5idWZmZXIpLnNldChOLnN1YmFycmF5KE0sTStUKjQpKSxTKE0tUygwKSksUH1mdW5jdGlvbiBkKGcsQSxUKXt2YXIgUj10LmV4cG9ydHMuc2JyayxTPVIoQS5sZW5ndGgqNCksTT1SKFQqNCksST1uZXcgVWludDhBcnJheSh0LmV4cG9ydHMubWVtb3J5LmJ1ZmZlciksTj1pKEEpO0kuc2V0KE4sUyk7dmFyIFA9ZyhNLFMsQS5sZW5ndGgsVCk7ST1uZXcgVWludDhBcnJheSh0LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcik7dmFyIEY9bmV3IFVpbnQzMkFycmF5KFQpO25ldyBVaW50OEFycmF5KEYuYnVmZmVyKS5zZXQoSS5zdWJhcnJheShNLE0rVCo0KSksUihTLVIoMCkpO2Zvcih2YXIgdz0wO3c8QS5sZW5ndGg7Kyt3KUFbd109RltBW3ddXTtyZXR1cm5bRixQXX1mdW5jdGlvbiBjKGcpe2Zvcih2YXIgQT0wLFQ9MDtUPGcubGVuZ3RoOysrVCl7dmFyIFI9Z1tUXTtBPUE8Uj9SOkF9cmV0dXJuIEF9ZnVuY3Rpb24gdShnLEEsVCxSLFMsTSxJLE4sUCl7dmFyIEY9dC5leHBvcnRzLnNicmssdz1GKDQpLHg9RihUKjQpLEM9RihTKk0pLHY9RihUKjQpLGo9bmV3IFVpbnQ4QXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIpO2ouc2V0KGkoUiksQyksai5zZXQoaShBKSx2KTt2YXIgej1nKHgsdixULEMsUyxNLEksTixQLHcpO2o9bmV3IFVpbnQ4QXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIpO3ZhciBEPW5ldyBVaW50MzJBcnJheSh6KTtpKEQpLnNldChqLnN1YmFycmF5KHgseCt6KjQpKTt2YXIgRz1uZXcgRmxvYXQzMkFycmF5KDEpO3JldHVybiBpKEcpLnNldChqLnN1YmFycmF5KHcsdys0KSksRih3LUYoMCkpLFtELEdbMF1dfWZ1bmN0aW9uIGwoZyxBLFQsUixTLE0sSSxOLFAsRix3LHgsQyl7dmFyIHY9dC5leHBvcnRzLnNicmssaj12KDQpLHo9dihUKjQpLEQ9dihTKk0pLEc9dihTKk4pLFY9dihQLmxlbmd0aCo0KSxPPXYoVCo0KSxaPUY/dihTKTowLGFlPW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTthZS5zZXQoaShSKSxEKSxhZS5zZXQoaShJKSxHKSxhZS5zZXQoaShQKSxWKSxhZS5zZXQoaShBKSxPKSxGJiZhZS5zZXQoaShGKSxaKTt2YXIgY2U9Zyh6LE8sVCxELFMsTSxHLE4sVixQLmxlbmd0aCxaLHcseCxDLGopO2FlPW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTt2YXIgZmU9bmV3IFVpbnQzMkFycmF5KGNlKTtpKGZlKS5zZXQoYWUuc3ViYXJyYXkoeix6K2NlKjQpKTt2YXIgdGU9bmV3IEZsb2F0MzJBcnJheSgxKTtyZXR1cm4gaSh0ZSkuc2V0KGFlLnN1YmFycmF5KGosais0KSksdihqLXYoMCkpLFtmZSx0ZVswXV19ZnVuY3Rpb24gaChnLEEsVCxSLFMsTSxJLE4sUCxGLHcseCxDKXt2YXIgdj10LmV4cG9ydHMuc2JyayxqPXYoNCksej12KFMqTSksRD12KFMqTiksRz12KFAubGVuZ3RoKjQpLFY9dihUKjQpLE89Rj92KFMpOjAsWj1uZXcgVWludDhBcnJheSh0LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcik7Wi5zZXQoaShSKSx6KSxaLnNldChpKEkpLEQpLFouc2V0KGkoUCksRyksWi5zZXQoaShBKSxWKSxGJiZaLnNldChpKEYpLE8pO3ZhciBhZT1nKFYsVCx6LFMsTSxELE4sRyxQLmxlbmd0aCxPLHcseCxDLGopO1o9bmV3IFVpbnQ4QXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIpLGkoQSkuc2V0KFouc3ViYXJyYXkoVixWK2FlKjQpKSxpKFIpLnNldChaLnN1YmFycmF5KHoseitTKk0pKSxpKEkpLnNldChaLnN1YmFycmF5KEQsRCtTKk4pKTt2YXIgY2U9bmV3IEZsb2F0MzJBcnJheSgxKTtyZXR1cm4gaShjZSkuc2V0KFouc3ViYXJyYXkoaixqKzQpKSx2KGotdigwKSksW2FlLGNlWzBdXX1mdW5jdGlvbiBtKGcsQSxULFIpe3ZhciBTPXQuZXhwb3J0cy5zYnJrLE09UyhUKlIpLEk9bmV3IFVpbnQ4QXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIpO0kuc2V0KGkoQSksTSk7dmFyIE49ZyhNLFQsUik7cmV0dXJuIFMoTS1TKDApKSxOfWZ1bmN0aW9uIGIoZyxBLFQsUixTLE0sSSxOKXt2YXIgUD10LmV4cG9ydHMuc2JyayxGPVAoTio0KSx3PVAoVCpSKSx4PVM/UChUKk0pOjAsQz1uZXcgVWludDhBcnJheSh0LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcik7Qy5zZXQoaShBKSx3KSxTJiZDLnNldChpKFMpLHgpO3ZhciB2PWcoRix3LFQsUix4LE0sSSxOKTtDPW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTt2YXIgaj1uZXcgVWludDMyQXJyYXkodik7cmV0dXJuIGkoaikuc2V0KEMuc3ViYXJyYXkoRixGK3YqNCkpLFAoRi1QKDApKSxqfWZ1bmN0aW9uIHAoZyxBLFQsUixTLE0sSSxOLFApe3ZhciBGPXQuZXhwb3J0cy5zYnJrLHc9Rig0KSx4PUYoVCo0KSxDPUYoUypNKSx2PUYoVCo0KSxqPUk/RihTKTowLHo9bmV3IFVpbnQ4QXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIpO3ouc2V0KGkoUiksQyksei5zZXQoaShBKSx2KSxJJiZ6LnNldChpKEkpLGopO3ZhciBEPWcoeCx2LFQsQyxTLE0saixOLFAsdyk7ej1uZXcgVWludDhBcnJheSh0LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcik7dmFyIEc9bmV3IFVpbnQzMkFycmF5KEQpO2koRykuc2V0KHouc3ViYXJyYXkoeCx4K0QqNCkpO3ZhciBWPW5ldyBGbG9hdDMyQXJyYXkoMSk7cmV0dXJuIGkoVikuc2V0KHouc3ViYXJyYXkodyx3KzQpKSxGKHctRigwKSksW0csVlswXV19ZnVuY3Rpb24geShnLEEsVCxSLFMsTSxJKXt2YXIgTj10LmV4cG9ydHMuc2JyayxQPU4oVCo0KSxGPU4oUypNKSx3PU4oVCo0KSx4PW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTt4LnNldChpKFIpLEYpLHguc2V0KGkoQSksdyk7dmFyIEM9ZyhQLHcsVCxGLFMsTSxJKTt4PW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTt2YXIgdj1uZXcgVWludDMyQXJyYXkoQyk7cmV0dXJuIGkodikuc2V0KHguc3ViYXJyYXkoUCxQK0MqNCkpLE4oUC1OKDApKSx2fXZhciBFPXtMb2NrQm9yZGVyOjEsU3BhcnNlOjIsRXJyb3JBYnNvbHV0ZTo0LFBydW5lOjgsUmVndWxhcml6ZToxNixQZXJtaXNzaXZlOjMyLFJlZ3VsYXJpemVMaWdodDo2NCxfSW50ZXJuYWxEZWJ1ZzoxPDwzMH07cmV0dXJue3JlYWR5Om8sc3VwcG9ydGVkOiEwLGNvbXBhY3RNZXNoOmZ1bmN0aW9uKGcpe3IoZyBpbnN0YW5jZW9mIFVpbnQzMkFycmF5fHxnIGluc3RhbmNlb2YgSW50MzJBcnJheXx8ZyBpbnN0YW5jZW9mIFVpbnQxNkFycmF5fHxnIGluc3RhbmNlb2YgSW50MTZBcnJheSkscihnLmxlbmd0aCUzPT0wKTt2YXIgQT1nLkJZVEVTX1BFUl9FTEVNRU5UPT00P2c6bmV3IFVpbnQzMkFycmF5KGcpLFQ9ZCh0LmV4cG9ydHMubWVzaG9wdF9vcHRpbWl6ZVZlcnRleEZldGNoUmVtYXAsQSxjKGcpKzEpO2lmKGchPT1BKWZvcih2YXIgUj0wO1I8QS5sZW5ndGg7KytSKWdbUl09QVtSXTtyZXR1cm4gVH0sZ2VuZXJhdGVQb3NpdGlvblJlbWFwOmZ1bmN0aW9uKGcsQSl7cmV0dXJuIHIoZyBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkscihnLmxlbmd0aCVBPT0wKSxyKEE+PTMpLGYodC5leHBvcnRzLm1lc2hvcHRfZ2VuZXJhdGVQb3NpdGlvblJlbWFwLGcsZy5sZW5ndGgvQSxBKX0sc2ltcGxpZnk6ZnVuY3Rpb24oZyxBLFQsUixTLE0pe3IoZyBpbnN0YW5jZW9mIFVpbnQzMkFycmF5fHxnIGluc3RhbmNlb2YgSW50MzJBcnJheXx8ZyBpbnN0YW5jZW9mIFVpbnQxNkFycmF5fHxnIGluc3RhbmNlb2YgSW50MTZBcnJheSkscihnLmxlbmd0aCUzPT0wKSxyKEEgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpLHIoQS5sZW5ndGglVD09MCkscihUPj0zKSxyKFI+PTAmJlI8PWcubGVuZ3RoKSxyKFIlMz09MCkscihTPj0wKTtmb3IodmFyIEk9MCxOPTA7TjwoTT9NLmxlbmd0aDowKTsrK04pcihNW05daW4gRSksSXw9RVtNW05dXTt2YXIgUD1nLkJZVEVTX1BFUl9FTEVNRU5UPT00P2c6bmV3IFVpbnQzMkFycmF5KGcpLEY9dSh0LmV4cG9ydHMubWVzaG9wdF9zaW1wbGlmeSxQLGcubGVuZ3RoLEEsQS5sZW5ndGgvVCxUKjQsUixTLEkpO3JldHVybiBGWzBdPWcgaW5zdGFuY2VvZiBVaW50MzJBcnJheT9GWzBdOm5ldyBnLmNvbnN0cnVjdG9yKEZbMF0pLEZ9LHNpbXBsaWZ5V2l0aEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZyxBLFQsUixTLE0sSSxOLFAsRil7cihnIGluc3RhbmNlb2YgVWludDMyQXJyYXl8fGcgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHxnIGluc3RhbmNlb2YgVWludDE2QXJyYXl8fGcgaW5zdGFuY2VvZiBJbnQxNkFycmF5KSxyKGcubGVuZ3RoJTM9PTApLHIoQSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkscihBLmxlbmd0aCVUPT0wKSxyKFQ+PTMpLHIoUiBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkscihSLmxlbmd0aD09UyooQS5sZW5ndGgvVCkpLHIoUz49MCkscihJPT1udWxsfHxJIGluc3RhbmNlb2YgVWludDhBcnJheSkscihJPT1udWxsfHxJLmxlbmd0aD09QS5sZW5ndGgvVCkscihOPj0wJiZOPD1nLmxlbmd0aCkscihOJTM9PTApLHIoUD49MCkscihBcnJheS5pc0FycmF5KE0pKSxyKFM+PU0ubGVuZ3RoKSxyKE0ubGVuZ3RoPD0zMik7Zm9yKHZhciB3PTA7dzxNLmxlbmd0aDsrK3cpcihNW3ddPj0wKTtmb3IodmFyIHg9MCx3PTA7dzwoRj9GLmxlbmd0aDowKTsrK3cpcihGW3ddaW4gRSkseHw9RVtGW3ddXTt2YXIgQz1nLkJZVEVTX1BFUl9FTEVNRU5UPT00P2c6bmV3IFVpbnQzMkFycmF5KGcpLHY9bCh0LmV4cG9ydHMubWVzaG9wdF9zaW1wbGlmeVdpdGhBdHRyaWJ1dGVzLEMsZy5sZW5ndGgsQSxBLmxlbmd0aC9ULFQqNCxSLFMqNCxuZXcgRmxvYXQzMkFycmF5KE0pLEksTixQLHgpO3JldHVybiB2WzBdPWcgaW5zdGFuY2VvZiBVaW50MzJBcnJheT92WzBdOm5ldyBnLmNvbnN0cnVjdG9yKHZbMF0pLHZ9LHNpbXBsaWZ5V2l0aFVwZGF0ZTpmdW5jdGlvbihnLEEsVCxSLFMsTSxJLE4sUCxGKXtyKGcgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8ZyBpbnN0YW5jZW9mIEludDMyQXJyYXl8fGcgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8ZyBpbnN0YW5jZW9mIEludDE2QXJyYXkpLHIoZy5sZW5ndGglMz09MCkscihBIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSxyKEEubGVuZ3RoJVQ9PTApLHIoVD49MykscihSIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSxyKFIubGVuZ3RoPT1TKihBLmxlbmd0aC9UKSkscihTPj0wKSxyKEk9PW51bGx8fEkgaW5zdGFuY2VvZiBVaW50OEFycmF5KSxyKEk9PW51bGx8fEkubGVuZ3RoPT1BLmxlbmd0aC9UKSxyKE4+PTAmJk48PWcubGVuZ3RoKSxyKE4lMz09MCkscihQPj0wKSxyKEFycmF5LmlzQXJyYXkoTSkpLHIoUz49TS5sZW5ndGgpLHIoTS5sZW5ndGg8PTMyKTtmb3IodmFyIHc9MDt3PE0ubGVuZ3RoOysrdylyKE1bd10+PTApO2Zvcih2YXIgeD0wLHc9MDt3PChGP0YubGVuZ3RoOjApOysrdylyKEZbd11pbiBFKSx4fD1FW0Zbd11dO3ZhciBDPWcuQllURVNfUEVSX0VMRU1FTlQ9PTQ/ZzpuZXcgVWludDMyQXJyYXkoZyksdj1oKHQuZXhwb3J0cy5tZXNob3B0X3NpbXBsaWZ5V2l0aFVwZGF0ZSxDLGcubGVuZ3RoLEEsQS5sZW5ndGgvVCxUKjQsUixTKjQsbmV3IEZsb2F0MzJBcnJheShNKSxJLE4sUCx4KTtpZihnIT09Qylmb3IodmFyIHc9MDt3PHZbMF07Kyt3KWdbd109Q1t3XTtyZXR1cm4gdn0sZ2V0U2NhbGU6ZnVuY3Rpb24oZyxBKXtyZXR1cm4gcihnIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSxyKGcubGVuZ3RoJUE9PTApLHIoQT49MyksbSh0LmV4cG9ydHMubWVzaG9wdF9zaW1wbGlmeVNjYWxlLGcsZy5sZW5ndGgvQSxBKjQpfSxzaW1wbGlmeVBvaW50czpmdW5jdGlvbihnLEEsVCxSLFMsTSl7cmV0dXJuIHIoZyBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkscihnLmxlbmd0aCVBPT0wKSxyKEE+PTMpLHIoVD49MCYmVDw9Zy5sZW5ndGgvQSksUj8ocihSIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSxyKFIubGVuZ3RoJVM9PTApLHIoUz49MykscihnLmxlbmd0aC9BPT1SLmxlbmd0aC9TKSxiKHQuZXhwb3J0cy5tZXNob3B0X3NpbXBsaWZ5UG9pbnRzLGcsZy5sZW5ndGgvQSxBKjQsUixTKjQsTXx8MCxUKSk6Yih0LmV4cG9ydHMubWVzaG9wdF9zaW1wbGlmeVBvaW50cyxnLGcubGVuZ3RoL0EsQSo0LHZvaWQgMCwwLDAsVCl9LHNpbXBsaWZ5U2xvcHB5OmZ1bmN0aW9uKGcsQSxULFIsUyxNKXtyKGcgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8ZyBpbnN0YW5jZW9mIEludDMyQXJyYXl8fGcgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8ZyBpbnN0YW5jZW9mIEludDE2QXJyYXkpLHIoZy5sZW5ndGglMz09MCkscihBIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSxyKEEubGVuZ3RoJVQ9PTApLHIoVD49MykscihSPT1udWxsfHxSIGluc3RhbmNlb2YgVWludDhBcnJheSkscihSPT1udWxsfHxSLmxlbmd0aD09QS5sZW5ndGgvVCkscihTPj0wJiZTPD1nLmxlbmd0aCkscihTJTM9PTApLHIoTT49MCk7dmFyIEk9Zy5CWVRFU19QRVJfRUxFTUVOVD09ND9nOm5ldyBVaW50MzJBcnJheShnKSxOPXAodC5leHBvcnRzLm1lc2hvcHRfc2ltcGxpZnlTbG9wcHksSSxnLmxlbmd0aCxBLEEubGVuZ3RoL1QsVCo0LFIsUyxNKTtyZXR1cm4gTlswXT1nIGluc3RhbmNlb2YgVWludDMyQXJyYXk/TlswXTpuZXcgZy5jb25zdHJ1Y3RvcihOWzBdKSxOfSxzaW1wbGlmeVBydW5lOmZ1bmN0aW9uKGcsQSxULFIpe3IoZyBpbnN0YW5jZW9mIFVpbnQzMkFycmF5fHxnIGluc3RhbmNlb2YgSW50MzJBcnJheXx8ZyBpbnN0YW5jZW9mIFVpbnQxNkFycmF5fHxnIGluc3RhbmNlb2YgSW50MTZBcnJheSkscihnLmxlbmd0aCUzPT0wKSxyKEEgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpLHIoQS5sZW5ndGglVD09MCkscihUPj0zKSxyKFI+PTApO3ZhciBTPWcuQllURVNfUEVSX0VMRU1FTlQ9PTQ/ZzpuZXcgVWludDMyQXJyYXkoZyksTT15KHQuZXhwb3J0cy5tZXNob3B0X3NpbXBsaWZ5UHJ1bmUsUyxnLmxlbmd0aCxBLEEubGVuZ3RoL1QsVCo0LFIpO3JldHVybiBNPWcgaW5zdGFuY2VvZiBVaW50MzJBcnJheT9NOm5ldyBnLmNvbnN0cnVjdG9yKE0pLE19fX0pKCl9KTt2YXIgRHNlLG94PVgoKCk9PntEc2U9KGZ1bmN0aW9uKCl7dmFyIG49ImI5SDc5VGViYmJlOm5lUDlHZXVldTlHZXViOUdiYjlHaXV1dWV1OUdtdXV1dXV1dXV1dXU5OTk5ZXU5R291dXV1dXVldTlHcnV1dXV1dXViOUd4dXV1dXV1dXV1dXV1ZXU5R3h1dXV1dXV1dXV1dTk5ZXU5R1B1dXV1dXV1dXV1dXV1OTliOUdvdXV1dXV1YjlHd3V1dXV1dXV1YjlHdnV1dXV1YjlHbHV1dXViaVFYZGlsdm9yd0Rxb2tvcXhtYmlpYmVpbHZlOVdlaWl2aWViZW93ZXVlY2o6R2RrcjtaZXFvOVRXOVQ5VlY5NWRiSDlGOUY5MzlINzlUOUY5SjlIMjI5RjlKdDlWVjdiYjhBOVRXNzlPOVY5V3Q5RjlJOTE5UDI5SzluVzc5TzJXdDc5YzlWOTE5VTlLYmVZOVRXNzlPOVY5V3Q5RjlJOTE5UDI5SzluVzc5TzJXdDdTMlc5NGJkMzlUVzc5TzlWOVd0OUY5STkxOVAyOUs5blc3OU8yV3Q3OXQ5VzlIdDlQOUgyYm8zOVRXNzlPOVY5V3Q5RjlKOVY5VDlXOTF0V0oyOTE3dFdWOWM5VjkxOVU5SzdidzM5VFc3OU85VjlXdDlGOUo5VjlUOVc5MXRXOW5XNzlPMld0OWM5VjkxOVU5Szdia0U5VFc3OU85VjlXdDlGOUo5VjlUOVc5MXRXOXQ5VzlPV1ZXOWM5VjkxOVU5SzdieEw5VFc3OU85VjlXdDlGOVY5V3Q5UDlUOVA5Nlc5blc3OU8yV3RiUGw3OUlWOVJic0R3ZWJjZWtkT0FxO1c6bGVYZGJrSWJhYmFlYzk6ZmdlZmN1ZmFlOVVnZWFiY2k5VWFkZmN1ZmFkOVVnYmFlYWIwRWs6ODhKRFB1ZTk5ZXV4OTlkdWU5OWV1bzk5aXU4SmpqampiYzpXRDlSZ204S2pqampiZG5kbmFsbWJjYmhQeGVrYW1jOkN3ZmNiYztLYno6cmpqamI4QWN1YW9jZHRnc2FvY0ZGRkZpMEVoemNieWQ7MDpHOmNqYmhIZG5kbmFsY2I5aW1iYW9hbDlubWJhbWF6YUhIampqamJiZ0hCZDpDd2FtY2VCZDs4d2FtYXpjYnlkOzA6RzpjamJIampqamJiZ09CZDpHd2FtY2RCZDs4d2FtY3VhbGNkdGFsY0ZGRkZpMEVjYnlkOzA6RzpjamJIampqamJiZ0FCZDpLd2FtY2lCZDs4d2FpaHphbGhzaW5hSGF6eWRiY2R0ZmNiQmRiYXpjbGZoemFzY3VmZ3NtYmthaWh6YWxoc2luYUhhenlkYmNkdGZnQ2FDeWRiY2VmQmRiYXpjbGZoemFzY3VmZ3NtYmthaWh6YWxoQ2NiaFhpbmRuYUhhenlkYmNkdGdRZmdzeWRiY2I5aW1iYU9hUWZhWEJkYmFzYXN5ZGJnUWNqampqOTRWQmRiYVFhWGZoWGthemNsZmh6YUNjdWZnQ21ia2FsY2k5VWhMZG5hbGNpNm1iY2JoemFpaHNpbmFzY3dmeWRiaENhc2NsZnlkYmhYYU9hc3lkYmNkdGZnUWFReWRiZ1FjZWZCZGJhQWFRY2R0ZmF6QmRiYU9hWGNkdGZnWGFYeWRiZ1hjZWZCZGJhQWFYY2R0ZmF6QmRiYU9hQ2NkdGZnQ2FDeWRiZ0NjZWZCZGJhQWFDY2R0ZmF6QmRiYXNjeGZoc2FMYXpjZWZnejlobWJra2FpaHphbGhzaW5kbmFIYXp5ZGJjZHRnQ2ZnWHlkYmdRY3U5a21iYVhhUWNGRkZGckdnUUJkYmFPYUNmZ0NhQ3lkYmFROVJCZGJrYXpjbGZoemFzY3VmZ3NtYnhka2thbWF6YUhIampqamJiZ0hCZDpDd2FtY2VCZDs4d2FtYXpjYnlkOzA6RzpjamJIampqamJiZ09CZDpHd2FtY2RCZDs4d2FtY3VhbGNkdGFsY0ZGRkZpMEVjYnlkOzA6RzpjamJIampqamJiZ0FCZDpLd2FtY2lCZDs4d2FIY2Jhc3o6cmpqamJoWGFpaHphbGhzaW5hWGF6eWRiY2R0ZmdDYUN5ZGJjZWZCZGJhemNsZmh6YXNjdWZnc21ia2FsY2k5VWhMZG5hb1RtYmNiaHphT2hzYVhoQ2FvaFFpbmFzYXpCZGJhc2NsZmhzYUN5ZGJhemZoemFDY2xmaENhUWN1ZmdRbWJra2RuYWxjaTZtYmNiaHphaWhzaW5hc2N3ZnlkYmhDYXNjbGZ5ZGJoUWFPYXN5ZGJjZHRmZ0thS3lkYmdLY2VmQmRiYUFhS2NkdGZhekJkYmFPYVFjZHRmZ1FhUXlkYmdRY2VmQmRiYUFhUWNkdGZhekJkYmFPYUNjZHRmZ0NhQ3lkYmdDY2VmQmRiYUFhQ2NkdGZhekJkYmFzY3hmaHNhTGF6Y2VmZ3o5aG1ia2thb1RtYmNiaHphb2hzaW5hT2F6ZmdDYUN5ZGJhWGF6ZnlkYjlSQmRiYXpjbGZoemFzY3VmZ3NtYmtrYW1hTGNieWQ7MDpHOmNqYkhqampqYmJnekJkOk93YW1jbEJkOzh3YXpjYmFMejpyampqYmhZYW1jdWFMY0syYWxjampqamQwRWNieWQ7MDpHOmNqYkhqampqYmJnOEFCZDpTd2FtY3ZCZDs4d0piYmJiaEVkbmFsY2k2ZzNtYmFyY2Q0aEthaWhzYThBaHphTGhySmJiYmJoNWluYXZhc2NsZnlkYmFLMmNkdGZnQ0lkbGg4RWF2YXN5ZGJhSzJjZHRmZ1hJZGxoRWF2YXNjd2Z5ZGJhSzJjZHRmZ1FJZGxoOEZhQ0lkd2hhYVhJZHdoaGFRSWR3aGdhemFDSWRiZzhKYVhJZGJnOEtNYVFJZGJnOExNSmJibm46dlVkYmF6Y2xmYVhJZGxhQ0lkbE1hUUlkbE1KYmJubjp2VWRiYVFJZHdoOE1hQ0lkd2g4TmFYSWR3aHlhemN4ZmE4RWFFOnRnOEVhZ2FoOnRnZ05hYWFoOnRnYWE4RmFFOnRnaE46dGdFSmJiYmJKYmJqWmE4SmE4Szp0ZzhGYWhOYThFYThMYThLOnRnOEtOOnRnaGFoTmFFYUVOYWFhOEtOYThGYWdOOnRnRWFFTk1NZzhLOnJnOEU6dmE4S0piYmJiOUJFZzhLTlVkYmF6Y3pmYUVhOEtOVWRiYXpjQ2ZhaGE4S05VZGJhemN3ZmE4TWF5YThOTU1KYmJubjp2VWRiYTVhOEVNaDVhc2N4ZmhzYXpjS2ZoemFyY3VmZ3JtYmthNWFMOlo6dkpiYmJaTmhFa2FtY3VhTGNkdGFsY0ZGRkY5NzBFY2J5ZDswOkc6Y2piSGpqampiYmdDQmQ6V3dhbWNvQmQ7OHdhcTpaaGhkbmEzbWJjYmh6YUNoc2luYXNhekJkYmFzY2xmaHNhTGF6Y2VmZ3o5aG1ia2thRWFoTmhoYW1jdWFMY2x0YWxjRkZGRmQwRWNieWQ7MDpHOmNqYkhqampqYmJnOFBCZDowd2FtY3JCZDs4d2NiYThQYThBYUNhTGNiejpkampqYjhBSkZGdXVoOE1KRkZ1dWg4TkpGRnV1aHlkbmFsY2k2bWJKRkZ1dWh5YThBaHphTGhzSkZGdXVoOE5KRkZ1dWg4TWluYXpjd2ZJZGJnRWE4TWE4TWFFOUVFaDhNYXpjbGZJZGJnRWE4TmE4TmFFOUVFaDhOYXpJZGJnRWF5YXlhRTlFRWh5YXpjS2ZoemFzY3VmZ3NtYmtrYWg6cmhFYW1hb2NldGd6Y3Vhb2N1OWtFY2J5ZDswOkc6Y2piSGpqampiYmdDQmQ6NHdkbmRuYW9hbDlubWJhaWh6YWxoc2luYUNhenlkYmNldGZjRkZpODdlYmF6Y2xmaHphc2N1ZmdzbWJ4ZGtrYUNjRmVheno6cmpqamI4QWthRUpiYmJaTmg4SmN1aElkbmFsY2k2bWJjYmhzSkZGdXVoRWE4QWh6Y3VoSWluYXpjd2ZJZGJhOE06dGdoYWhOYXpJZGJheTp0Z2hhaE5hemNsZklkYmE4Tjp0Z2hhaE5NTTpyZ2hhRWFJY3VTYWhhRTlEVmdYRWhFYXNhSWFYRWhJYXpjS2ZoemFMYXNjZWZnczlobWJra2FtY3pmY2Jjand6OnJqampiOEFhbTljYjgzaXdhbTljYjgzaWJheGE4Sk5oOFJKYmJqWmFrOnRoOExjYmg4U0piYmJiaFJKYmJiYmg4VUpiYmJiaDhWSmJiYmJoOFdKYmJiYmg4WEpiYmJiaDhZY2JoOFpjYmhQaW5KYmJiYmhFZG5hOFNUbWJKYmJqWmE4UzpaOnZoRWtKYmJiYmhoZG5hOFlhOFlOYThXYThXTmE4WGE4WE5NTWc4S0piYmJiOUJtYkpiYmpaYThLOnI6dmhoa2E4VmFFTmg4S2E4VWFFTmg1YVJhRU5oOEVhSWhMZG5kbmRuZG5kbmE4U2FQVlRtYmFteWR3ZzgwVG1lYThZYWhOaDhGYThYYWhOaGFhOFdhaE5oZ2FlYW15ZGJjZHRmaDgxY2JoM0pGRnV1aEVjdmhRY3VoTGluZG5hSGE4MWEzY2R0ZnlkYmNkdGd6ZnlkYmd2VG1iYUFhT2F6ZnlkYmNkdGZoc2luZG5kbmFDYWlhc3lkYmdLY3gyZmd6Y2xmeWRiZ3JjZXRmOFZlYmNzNGFDYXp5ZGJnWGNldGY4VmViY3M0ZmFDYXpjd2Z5ZGJnbGNldGY4VmViY3M0ZmdvbWJjYmh6eGVrY2VoemFIYVhjZHRmeWRiZ1hjZVNtYmNlaHphSGFyY2R0ZnlkYmdyY2VTbWJjZWh6YUhhbGNkdGZ5ZGJnbGNlU21iZG5hcmNkU2FYY2RTZmFsY2RTZmNkNm1iYW9jZWZoenhla2FvY2RmaHprZG5hemFROWttYmE4QWFLY0syZmdYSWR3YThLOnRnaGFoTmFYSWRiYThFOnRnaGFoTmFYSWRsYTU6dGdoYWhOTU06cmE4Sjp2YThMTkpiYmpaTUo5Vk86ZDg2SmJialphWElkQ2E4Rk5hWElkeGFnTmFhYVhJZHpOTU1ha046dGdoYWhKOVZPOmQ4NjlERU5naGFFYXphUTZhaGFFOURWZ1hFaEVhS2FMYVhFaExhemFRYVhFaFFrYXNjbGZoc2F2Y3VmZ3ZtYmtrYTNjZWZnM2E4MDlobWJra2FMY3U5aG1la2FtYThLVWQ6T0RhbWE1VWQ6S0RhbWE4RVVkOkdEYW1jdUJkOnFEYW1jRkZGOzdyQmRqRGE4UGNiYThBYVlhbWM6R0RmYW1jOnFEZmFtY2pEZno6ZWpqamJhbXlkOnFEaExkbmRuYXhKYmJiYjlFVG1iYThTYUQ2bWJhTGN1U21lY2VoM2FtSWRqRGE4UjlFbWl4ZGthTGN1OWhtZWtkbmE4U1RtYmFiYVBjbHRmZ0hhbThQaXc4M2R3YUhhbThQaWI4M2RiYVBjZWZoUGtjM2hIaW5hbWM6Q3dmYUhmeWRiY2J5ZDs0Okc6Y2piSDpiampqYmJhSGM5OGZnSGM5ODlobWJ4dmtrY2JoM2E4U2FxOXBtYmFteWR3YUNhaWFMY3gyZmd6eWRiY2V0ZjhWZWJjczRhQ2F6Y3dmeWRiY2V0ZjhWZWJjczRmYUNhemNsZnlkYmNldGY4VmViY3M0ZmZhdzlubWVrY2JoemNiaHNkbmE4WlRtYmNiaHNhbWN6ZmhYaW5hbWN6ZmFzY2R0ZmFYeWRiZ1FCZGJhWGNsZmhYYXNhWWFRZlJiYlRmaHNhOFpjdWZnOFptYmtrYW15ZHdobGFteWRiaFhhbTljdTgzaTpHRGFtOWN1ODNpOk9EYW05Y3U4M2k6cURhbTljdTgzaTp5RGluYW1jakRmYXpmY0ZGRjs3ckJkYmF6Y2xmZ3pjejlobWJrYXNjOzhlYXNjbGZjOmJkNkVnOFpjZHRoODBkbmFsVG1iYWVhWGNkdGZob2NiaHJpbmRuYUhhb2FyY2R0ZnlkYmNkdGd6ZnlkYmd2VG1iYUFhT2F6ZnlkYmNkdGZoc2N1aFFjdWh6aW5hSGFpYXN5ZGJnS2N4MmZnWGNsZnlkYmNkdGZ5ZGJhSGFYeWRiY2R0ZnlkYmZhSGFYY3dmeWRiY2R0ZnlkYmZnWGF6YVhhejZnWEVoemFLYVFhWEVoUWFzY2xmaHNhdmN1Zmd2bWJrYVFjdVNtYmE4QWFRY0syZmdzSWR3YThNOnRnRWFFTmFzSWRiYXk6dGdFYUVOYXNJZGxhOE46dGdFYUVOTU06cmhFY2Joc2luZG5kbmF6YW1jOnFEZmFzZmd2eWRiZ1g2bWJhemFYOWhtZWFFYW1jakRmYXNmSWRiOUZUbWVrYXZhekJkYmFtYzpHRGZhc2ZhUUJkYmFtY2pEZmFzZmFFVWRieGRrYXNjbGZnc2N6OWhtYmtrYXJjZWZncmFsOWhtYmtrYW1jemZhODBmaFFjYmh6Y2Joc2luZG5hbWM6R0RmYXpmeWRiZ1hjdVNtYmFRYXNjZHRmYVhCZGJhc2NlZmhza2F6Y2xmZ3pjejlobWJrYXNhOFpmZzhaVG1iSkZGdXVoaGN1aEthbWN6Zmh6YThaaHZjdWhRaW5hOEFhenlkYmdYY0syZmdzSWR3YThNOnRnRWFFTmFzSWRiYXk6dGdFYUVOYXNJZGxhOE46dGdFYUVOTU06cmhFZG5kbmFIYWlhWGN4MmZnc2NsZnlkYmNkdGZ5ZGJhSGFzeWRiY2R0ZnlkYmZhSGFzY3dmeWRiY2R0ZnlkYmZnc2FRNm1iYXNhUTlobWVhRWFoOURUbWVrYUVoaGFzaFFhWGhLa2F6Y2xmaHphdmN1Zmd2bWJrYUtjdVNtYmFLaExrZG5hbWFpYUxjeDJmZ3J5ZGJhcmNsZnlkYmFyY3dmeWRiYUNhYmFlYWRhUGF3YXFhM3o6ZmpqamJUbWJhUGNlZmhQSmJiYmJoUkpiYmJiaDhVSmJiYmJoOFZKYmJiYmg4V0piYmJiaDhYSmJiYmJoOFlrY2JoWGluYUFhT2FyYVhjZHRmeWRiY2R0Z3NmeWRiY2R0ZmdLaHphSGFzZmd2eWRiZ1Foc2RuYVFUbWJkbmluYXp5ZGJhTFNtZWF6Y2xmaHphc2N1ZmdzVG1keGJra2F6YUthUWNkdGZjOThmeWRiQmRiYXZhdnlkYmN1ZkJkYmthWGNlZmdYY2k5aG1ia2E4QWFMY0syZmd6SWRiaEVheklkbGhoYXpJZHdoOEtheklkeGg1YXpJZHpoOEVheklkQ2g4RmFZYUxmY2U4NmJiYThZYThGTWg4WWE4WGE4RU1oOFhhOFdhNU1oOFdhOFZhOEtNaDhWYThVYWhNaDhVYVJhRU1oUmFteWR4aDhTeGJra2FtYzpXRGY4S2pqampiYVBram9pdnV2OTlsdThKampqamJjYTlSZ284S2pqampiZG5kbmFsY3cwbWJhaXlkYmhyYWVhYmNpdGZnd2FsY2R0Y2lWQmRsYXdhckJkYmRuYWxjZDZtYmFpY2xmaHJhbGN1ZmhEYXdjeGZod2luYXJ5ZGJocWF3Y3VCZGJhd2M5OGZhcUJkYmF3Y3dmaHdhcmNsZmhyYURjdWZnRG1ia2thbGFiZmh3eGVrY2JocWFvY2JCZEthbzljYjgzaXphb2NiQmR3YW85Y2I4M2liSmJialpoa0piYmpaaHhpbmFkYWlhcWNkdGZ5ZGJjSzJmaERjYmh3aW5hb2N6ZmF3ZmdyYURhd2ZJZGJnbWFySWRiZ1A6dGdzYXhOYVBNZ1BVZGJhb2F3ZmdyYXNhbWFQOnROYXJJZGJNVWRiYXdjbGZnd2N4OWhtYmtKYmJqWmFrSmJialpNZ2s6dmh4YXFjZWZncWFsOWhtYmtjYmhyYWRjYmNlY2Rhb0lkbGdtYW9JZHdnUDlHRWd3YW9JZGJnc2FQOUdFYXdhc2FtOUdFZ3pjZHRnd2ZoSGFvY3pmYXdmSWRiaG1haWh3YWxoRGluYWlhcmNkdGZncXlkYmhPYXFhd3lkYmdBQmRiYXdhT0JkYmF3Y2xmaHdhcmFIYUFjSzJmSWRiYW05RGZocmFEY3VmZ0RtYmtkbmRuYXJjdjZtYmF2YzhYOWttYmFyYWxjOThmNm1la2FpeWRiaHJhZWFiY2l0Zmd3YWxjZHRjaVZCZGxhd2FyQmRiYWljbGZocmFsY3VmaERhd2N4Zmh3aW5hcnlkYmhxYXdjdUJkYmF3Yzk4ZmFxQmRiYXdjd2Zod2FyY2xmaHJhRGN1ZmdEbWJrYWxhYmZod3hla2FlYWJjaXRmZ3dhbVVkYmF3YXd5ZGxjOThHYXpWQmRsYWJjZWZhZWFkYWlhcmF2Y2VmZ3F6OmRqampiaERhd2F3eWRsY2lHYURhYmN1N2ZjZHRWQmRsYURhZWFkYWlhcmNkdGZhbGFyOVJhcXo6ZGpqamJod2thb2NhZjhLampqamJhd2s7T2RkdnVlOTlkbmluYWJhZWNpdGZncnlkbGd3Y2Q0Z0RUbWVkbmF3Y2lHZ3FjaTlobWJjaWhxZG5hd2NsNm1iYWJhZWNpdGZoYmNiaGVhd2hxY2Voa2luZG5haWFieWRiZ0RmUmJibWJjYmhrYWRhRGNLMmZnd0lkd2FsSWR3OnRneGF4TmF3SWRiYWxJZGI6dGd4YXhOYXdJZGxhbElkbDp0Z3hheE5NTTpyZ3hhb0lkYjlEVG1iYW9heFVkYmF2YURCZGJhcnlkbGhxa2FiY3dmaGJhZWNlZmdlYXFjZDQ2bWJrYWtjZUdUbWlrYXJhcWNpR0JkbHNrZG5hYmNiYURhbGFxY2R0ZklkYmFySWRiOnRneEpiYmJiOUZFZ3dhRDdhZWNlZmdEZmdlY2l0ZnlkbGFiYXdhRGZnRGNpdGZ5ZGxWY2kwbWJhcmFxQmRsa2FiYURhZGFpYWxhdmFvejplampqYmF4Omxhb0lkYjlGbWJra2tqbGV2dWRuZG5hYnlkd2d4YWxhZGNldGZnbThWZWJjczRhbGFlY2V0ZmdQOFZlYmdzY3M0ZmFsYWljZXRmZ3o4VmViY3M0ZmZhRDBtYmFrbWJjYmhEYWJ5ZHhhcTZtZWthdmF3Y2x0Zmd4YWI4UGR3ODNkd2F4YWI4UGRiODNkYmFieWRiaERkbmFieWR3Z3dUbWJhb2FEY2R0Zmh4YXdoc2luYWxheHlkYmNldGZjRkZpODdlYmF4Y2xmaHhhc2N1ZmdzbWJra2FiYURhd2ZCZGJhYnlkeGh4YWI5Y2I4M2R3YWJhYnlkbGF4Y2kyZkJkbGFQOFZlYmhzY2VoRGNiaHhrZG5hc2N6dGN6OTFjdTlrbWJhYmF4Y2VmQmR3YVBheDg3ZWJhb2FieWRiY2R0ZmF4Y2R0ZmFlQmRia2RuYW04VWViY3U5a21iYWJhYnlkd2d4Y2VmQmR3YW1heDg3ZWJhb2FieWRiY2R0ZmF4Y2R0ZmFkQmRia2RuYXo4VWViY3U5a21iYWJhYnlkd2d4Y2VmQmR3YXpheDg3ZWJhb2FieWRiY2R0ZmF4Y2R0ZmFpQmRia2FyYWJ5ZGxmYWJ5ZHhjaTJmYVBSYmI4NmJiYXJhYnlkbGZhYnlkeGNpMmZjZWZhbVJiYjg2YmJhcmFieWRsZmFieWR4Y2kyZmNkZmF6UmJiODZiYmFiYWJ5ZHhjZWZCZHhhRGs6bVBySHVlOTlldWU5OWV1ZTk5aXU4SmpqampiYztXO0diOVJneDhLampqamJkbmRuYWxtYmNiaG14ZWtjYmhQYXhjOm07R2JmY2JjO0tiejpyampqYjhBYXhjdWFsY2k5VWdzY2x0YXNjampqamlHRWNieWQ7MDpHOmNqYkhqampqYmJnekJkOm05R2F4Y2VCZDtTOUdheGN1YXNjSzJnSGNLZmFsY3BGRkZlMEVjYnlkOzA6RzpjamJIampqamJiZ09CZDpxOUdheGNkQmQ7UzlHZG5hbGNpNmdBbWJhcmNkNGhDYXNjZHRoWGFPaFFhemhMaW5hdmFpYVBjeDJmZ3J5ZHdhQzJjZHRmaEthdmFyeWRsYUMyY2R0ZmhZYXZhcnlkYmFDMmNkdGZoOEFjYmhyYUxoRWluYVFhcmZnbWE4QWFyZmczSWRiZzVhWWFyZmc4RUlkYmc4RmE1YThGOURFZzVVZGJhbWFLYXJmZ2FJZGJnOEZhNWE4RmE1OURFZzhGVWRiYW1jeGZnbWEzSWRiZzVhOEVJZGJnaGE1YWg5RUVnNVVkYmFtYWFJZGJnaGE1YWhhNTlFRWc1VWRiYUVhOEZhNU1KYmJiWk5VZGJhRWFYZmhFYXJjbGZncmN4OWhtYmthUWNLZmhRYUxjbGZoTGFQY2VmZ1BhczlobWJra2FPYUhmZ3I5Y2I4M2RiYXI5Y2I4M2R6YXI5Y2I4M2R3YXhjdWFzY3gyZ3JhbGM6YmpqamwwRWNieWQ7MDpHOmNqYkhqampqYmJnSEJkTjlHYXhjaUJkO1M5R2FzY2R0aGdhemFyZmh2YXhjd1ZoUGF4Y2xWaENhSGg4SmF6aDhLY2JoTGluYXhjYmNqO0diejpyampqYmhFYUxhczJjZHRoYWRuYUFtYmE4S2hyYXNoM2luYUVhcnlkYmdtYzhGOTFjampqajk0VmFtN2dtY1E0Y3gyZmc4RWE4RXlkd2NlZkJkd2FFYW1jZDRjRnJHY3gyZmc4RWE4RXlkYmNlZkJkYmFFYW1jeDRjRnJHY3gyZmdtYW15ZGxjZWZCZGxhcmNsZmhyYTNjdWZnM21ia2themFhZmg4QWFIYWFmaFhjYmhtY2JoM2NiaDhFY2JoYWluYUVhbWZncnlkYmhRYXJhM0JkYmFyY3dmZ0t5ZGJoWWFLYWFCZGJhcmNsZmdyeWRiaEthcmE4RUJkYmFRYTNmaDNhWWFhZmhhYUthOEVmaDhFYW1jeGZnbWNqO0diOWhtYmtkbmFBbWJjYmhyYXZobWluYW1hckJkYmFtY2xmaG1hc2FyY2VmZ3I5aG1ia2F2aHJhc2htaW5hRWE4QWFyeWRiZzNjZHRmeWRiZzhFYzhGOTFhOEU3Y2Q0Y0ZyR2N4MmZnOEVhOEV5ZGJnOEVjZWZCZGJhWGE4RWNkdGZhM0JkYmFyY2xmaHJhbWN1ZmdtbWJrYThKaHJhc2htaW5hQ2E4QWFyeWRiZzNjZHRmeWRiZzhFYzhGOTFhOEU3Y3g0Y0ZyR2N4MmZnOEVhOEV5ZGJnOEVjZWZCZGJhdmE4RWNkdGZhM0JkYmFyY2xmaHJhbWN1ZmdtbWJrYXZocmFzaG1pbmFQYThBYXJ5ZGJnM2NkdGZ5ZGJnOEVjOEY5MWNqampqOTRWYThFN2NRNGN4MmZnOEVhOEV5ZGJnOEVjZWZCZGJhWGE4RWNkdGZhM0JkYmFyY2xmaHJhbWN1ZmdtbWJra2E4SmFnZmg4SmE4S2FnZmg4S2FMY2VmZ0xjaTlobWJrYUVhb2NldGdyY3Vhb2N1OWtFY2J5ZDswOkc6Y2piSGpqampiYmdLQmQ6eTlHYUVjbEJkO1M5R2RuZG5hb2FsOW5tYmFpaHJhbGhtaW5hS2FyeWRiY2V0ZmNGRmk4N2ViYXJjbGZocmFtY3VmZ21tYnhka2thS2NGZWFyejpyampqYjhBa2NiaDhFYUVhc2NieWQ7MDpHOmNqYkhqampqYmJnOEFCZDpDOUdhT2FIYUhhc2NkdGZhSGFzY2l0ZmE4QWFzY2JhemFLYWlhd2FEYXFha3o6aGpqamJkbmRuYWxjaTZtYmE4QWhyYXNobWluYThFYXJSYmJmaDhFYXJjZWZocmFtY3VmZ21tYmthRTljYjgzaXdhRTljYjgzaWJhbGF3Yzk6ZmdyZmN1ZmFyOVVncmFzYURmY3VmYUQ5VWdtYXJhbTBFaFljYmhtY2JocmE4RWhhaW5jYmgzZG5hclRtYmE4QWFyZlJiYmNlU2gza2FtYUVhaWFIeWRiY3gyZmdReWRiYVFjbGZ5ZGJhUWN3ZnlkYmFLYWJhZWFkYW1hd2FxYTNhM2NlN2E4RWFZOW5WYWFhbWZhWTZWR3o6ZmpqamJmaG1hSGNsZmhIYWFhOEFhcmZSYmI5UmhhYXNhcmNlZmdyOWhtYmthRXlkeFRtZWFiYW1jbHRmZ3JhRThQaXc4M2R3YXJhRThQaWI4M2RiYW1jZWZobXhla2FFOWNiODNpd2FFOWNiODNpYmNiaG1rY3pocmluYUVjOm07R2JmYXJmeWRiY2J5ZDs0Okc6Y2piSDpiampqYmJhcmM5OGZncmM5ODlobWJra2F4YztXO0diZjhLampqamJhbWs6d0tEUXVlOTlpdWU5OWl1bDk6ZXV3OTlpdThKampqamJjO3FiOVJnUDhLampqamJheGhzYXhoemRuZG5hdmF4MGdIbWJkbmF2VG1iY2JoT2FlaHphdmhBaW5hd2FEYXp5ZGJjeDJmZ0Njd2Z5ZGJjZXRmZ1g4VmViaFFhd2FDY2xmeWRiY2V0ZmdMOFZlYmhLYXdhQ3lkYmNldGZnQzhWZWJoWWFYY2U4N2ViYUxjZTg3ZWJhQ2NlODdlYmFPYUtjczRhWWNzNGZhUWNzNGZmaE9hemNsZmh6YUFjdWZnQW1ia2FlaHphdmhBaW5hd2FEYXp5ZGJjeDJmZ0Njd2Z5ZGJjZXRmY0ZGaTg3ZWJhd2FDY2xmeWRiY2V0ZmNGRmk4N2ViYXdhQ3lkYmNldGZjRkZpODdlYmF6Y2xmaHphQWN1ZmdBbWJrY2VoemFxaHNhT2FxMG1la2FsY2U4NmJiYWxjZWZjYmF2Y3VmejpyampqYjhBeGVrYVBhaUJkeGFQYWRCZHdhUGFlQmRsYXZha2FxY2k5VWc4QWFrYThBYWs2RWFIRWdLOVJoRWF4YUs5UmgzYUtjdWZoNWFLY2V0aDhFYUtjZHRnQ2M5OGZoOEZhdmNpdGdPYUM5UmFyZmM5OGZoYWFzY3VmaGhhdmN1ZmhnYXJhT2ZoOEpKYmJqWmFzOlk6dmg4S2NiYXpjZWFrYXhTRWc4TGNkdGc4TTlSaDhOSkZGdXVoeWN1aDhQY2JoSWNiaDhSaW5hUGNsZmE4UmNkdGZ5ZGJoUWFQY2I4UGQ6eTpHOmNqYmc4UzgzaTlpYVBjYjhQZDpxOkc6Y2piZ1I4M2luYVBjYjhQZDE6RzpjamJnOFU4M2lVYVBjYjhQZGo6RzpjamJnOFY4M2k4V2FQYThTODNpeWFQYVI4M2lhYVBhOFU4M2lLYVBhOFY4M2l6YVFhdmNkdGdZZmg4V2NiaFhpbmFiYVFhWGNkdGdMZnlkYmNLMmZoQWNiaHppbmFQYzhXZmF6ZmdDYUFhemZnT0lkYmc4WGFDSWRiZzhZYThYYThZOURFVWRiYUNjemZnQ2FPY3hmSWRiZzhYYUNJZGJnOFlhOFhhOFk5RUVVZGJhemNsZmd6Y3g5aG1ia2FiYThXYVhjdTdjZHRmeWRiY0syZmhBY2JoemFQSWRVaDhaYVBJZDlpaDgwYVBJZDgwaDgxYVBJZDllaEJhUElkOFdoODNhUElkbmhVaW5hUGN6ZmF6ZmdDYUFhemZnT0lkYmc4WGFDSWRiZzhZYThYYThZOURFVWRiYUNjemZnQ2FPY3hmSWRiZzhYYUNJZGJnOFlhOFhhOFk5RUVVZGJhemNsZmd6Y3g5aG1ia2FyYUxmZ3phODBhOFo6dGc4WGFVYTgzOnRnOFlOYThZYUJhODE6dGc4Wk5hOFphOFhOTU1VZGJhemFZZmFQSWR5YVBJZEs6dGc4WGFQSWRhYVBJZHo6dGc4WU5hOFlhUElkOEthUElkQzp0ZzhaTmE4WmE4WE5NTVVkYmFYY2VmZ1hhdjlobWJrY2JoODVkbmFIbWJjYmhBYVFoemE4SmhDYXZoWGluYXdhRGF6eWRiY3gyZmdPY3dmeWRiY2V0ZmdMOFZlYmg4V2F3YU9jbGZ5ZGJjZXRmZzg1OFZlYmg4NmF3YU95ZGJjZXRmZ084VmViaDg3YUxjZTg3ZWJhODVjZTg3ZWJhT2NlODdlYmFDYUFhODZjczRhODdjczRmYThXY3M0ZmZnQUJkYmF6Y2xmaHphQ2NsZmhDYVhjdWZnWG1ia2F2aENpbmF3YURhUXlkYmN4MmZnemN3ZnlkYmNldGZjRkZpODdlYmF3YXpjbGZ5ZGJjZXRmY0ZGaTg3ZWJhd2F6eWRiY2V0ZmNGRmk4N2ViYVFjbGZoUWFDY3VmZ0NtYmthOEpoODVrZG5kbmRuZG5kbmRuZG5kbmRuZG5kbmF2YThFNm1iYThFYXg5bm1lYXZhdmFLOVVnemFLMjlSYXphMzIwbWRhNWFFOXBtcWE4NVRoODdjZWg4V2FFaFF4d2thNWFnOXBtRGE4RWF4OW5taXhva2F2YUs2bWVhNWFFOXBtd2NlaFFhRWhYYTg1VG1peGxrYTVhZzZtbHhya2E1YWc5cG1va2NiaFFhZ2hYYTg1bWVrSkZGdXVoOFhjYmhMYTVoemluZG5hemNlZmdDYUs2bWJhUWF2YUM5UmdPYUs2R21iYXJhemNkdGZJZGJnOFlhQzpZTmFyYXZhejlSY2R0ZmFZZmM5NGZJZGJnOFphTzpZTk1nODBhOFg5RW1iZG5kbmE4S2FPYWhmOllOZzgxOmxKYmJiOXA5RFRtYmE4MTpPaEF4ZWtjampqajk0aEFrYThaYXNhQTJhTzlSOllOaDhaZG5kbmE4S2F6YXNmOllOZzgxOmxKYmJiOXA5RFRtYmE4MTpPaE94ZWtjampqajk0aE9rYW1hc2FPMmFDOVI6WWE4WU5hOFpNTmE4ME1nOFlhOFhhOFlhOFg5RGdPRWg4WGFDYUxhT0VoTGthemE4TGZnemFYNm1ieGxra0pGRnV1aDhYY2JoTGFFaENhYWhBYThGaE9hS2h6aW5kbmF6YUs2bWJhUWFDYUs2R21iYXJhT2ZJZGJnOFlhejpZTmFBSWRiZzhaYUM6WU5NZzgwYThYOUVtYmRuZG5hOEthODVhT2Z5ZGJnWWFoZjpZTmc4MTpsSmJiYjlwOURUbWJhODE6T2g4V3hla2NqampqOTRoOFdrYW1hc2E4VzJhWTlSOllnODFhOFlOYThaYTgxTk1OYTgwTWc4WWE4WGE4WWE4WDlEZ1lFaDhYYXphTGFZRWhMa2FDYThMOVJoQ2FBYThOZmhBYU9hOE1maE9hemE4TGZnemN1ZmFYNm1ieGlra2E4NVRoODdjYmg4V2FnaFFrSkZGdXVoOFhjYmhMYUVoQ2FhaEFhOEZoT2FLaHppbmRuYXphemFLOVVnWGFLMjlSYVhhMzIwbWJkbmE4V1RtYmFDYUNhSzlVZ1hhSzI5UmFYYTMyMG1la2FyYU9mSWRiZzhZYXo6WU5hQUlkYmc4WmFDOllOTWc4MGE4WDlFbWJhemhYYUNoWWRuYTg3bWJhODVhT2Z5ZGJnWGhZa2RuZG5hOEthWWFoZjpZTmc4MTpsSmJiYjlwOURUbWJhODE6T2g4Nnhla2NqampqOTRoODZrYThaYXNhODYyYVk5UjpZTmg4WmRuZG5hOEthWGFoZjpZTmc4MTpsSmJiYjlwOURUbWJhODE6T2hZeGVrY2pqamo5NGhZa2FtYXNhWTJhWDlSOllhOFlOYThaTU5hODBNZzhZYThYYThZYThYOURnWEVoOFhhemFMYVhFaExrYUNhOEw5UmhDYUFhOE5maEFhT2E4TWZoT2F6YThMZmd6Y3VmYVE2bWJra2FMVG1iYThYYXk5RFRtYmE4WGh5YUxoSWE4Umg4UGthOFJjZWZnOFJjaTlobWJrZG5kbmFvYzhYOWttYmE4UGNiOW9tZWthOEFjdWZoODVjYmhZaW5kbmRuZG5hdmFZOVJheGFZYXhmYXYwRWc4V1RtYmNiaEFhZWFZY2R0Zmd6aENhOFdoWGluYXdhRGFDeWRiY3gyZmdPY3dmeWRiY2V0ZmdROFZlYmhiYXdhT2NsZnlkYmNldGZnTDhWZWJocmF3YU95ZGJjZXRmZ084VmViaEthUWNlODdlYmFMY2U4N2ViYU9jZTg3ZWJhQWFyY3M0YUtjczRmYWJjczRmZmhBYUNjbGZoQ2FYY3VmZ1htYmthOFdoT2luYXdhRGF6eWRiY3gyZmdDY3dmeWRiY2V0ZmNGRmk4N2ViYXdhQ2NsZnlkYmNldGZjRkZpODdlYmF3YUN5ZGJjZXRmY0ZGaTg3ZWJhemNsZmh6YU9jdWZnT21ia2FBYXEwbWVrYWxhWWZnemNlODZiYmF6Y2VmY2JhOFdjdWZ6OnJqampiOEF4ZWthbGFZZmd6Y2U4NmJiYXpjZWZjYmE4NXo6cmpqamI4QWE4QWg4V2thOFdhWWZnWWF2OXBtZHhia2thcmF2Y2R0ZzhXZmhMZG5hSVRtYmFQY2xmYThQY2R0ZnlkYmh6YUloQ2luYUxhenlkYmZjYjg2YmJhemNsZmh6YUNjdWZnQ21ia2tkbmF2YUk5bm1iYVBjbGZhOFBjZHRmeWRiYUljZHRmaHphdmFJOVJoQ2luYUxhenlkYmZjZTg2YmJhemNsZmh6YUNjdWZnQ21ia2tjYmhZaW5kbmFZYThQU21iY2JoemFyYVBjbGZhWWNkdGZ5ZGJnS2E4V3o6cWpqamJoQ2F2aFhhSWhPaW5hS2FPYXphTGFDeWRiZ1FmUmJiZ0FFY2R0ZmFRQmRiYUNjbGZoQ2FPYUFmaE9hemFBOVJjZWZoemFYY3VmZ1htYmtrYVljZWZnWWNpOWhtYmthYmFlYWRhaWFsYUlhb2NlZmdDYXJhd2FEYXFha2F4YW16OmhqampiYWJhZWFJY2R0Z3pmYWRhemZhaWF6ZmFsYUlmYXZhSTlSYUNhcmF3YURhcWFrYXhhbXo6aGpqamJrYVBjO3FiZjhLampqamJrOlNlZXJ1OEpqampqYmM6cTthYjlSZ284S2pqampiYW9jOnE4V2ZjRmVjanp6OnJqampiOEFjYmhyZG5hZFRtYmFlaHdhZGhEaW5hb2FyY2R0ZmF3eWRiZ3FCZGJhb2M6cThXZmFxY0ZpR2NkdGZna3lkYmh4YWthcUJkYmF3Y2xmaHdhcmF4YXE5aGZocmFEY3VmZ0RtYmtrYWJhZWFkYW9hcmFpYXZ6OmpqampiYW9jOnE7YWJmOEtqampqYms7U3Fsb3VkOTlldUQ5OThKampqamJjOlc7YWI5UmdyOEtqampqYmRuZG5hZFRtYmFvY2Q0aHdjYmhEY2JocWluZG5hdmFlY2xmeWRiYXcyY2R0ZmdrSWRiYXZhZXlkYmF3MmNkdGZneElkYmdtOnRnUGF2YWVjd2Z5ZGJhdzJjZHRmZ3NJZGxheElkbGd6OnRnSE5ha0lkbGF6OnRnT2FzSWRiYW06dGdBTjp0Z0NhQ05hT2FzSWR3YXhJZHdnWDp0Z1FOYWtJZHdhWDp0Z09hSE46dGdIYUhOYU9hQU5hUGFRTjp0Z1BhUE5NTWdPSmJiYmI5Qm1iYXJjOFdmYURjbHRmZ2thQ2FPOnJnTzp2Z0NVZHdha2FQYU86dmdQVWRsYWthSGFPOnZnSFVkYmFrYUNhWE5hSGFtTmF6YVBOTU06bVVkeGFEY2VmaERrYWVjeGZoZWFxY2lmZ3FhZDZtYmthYjljYjgzZHlhYjljYjgzZGFhYjljYjgzZEthYjljYjgzZHphYjljYjgzZHdhYjljYjgzZGJhRFRtZWFyY2JCZDhTYXI5Y2I4M2lLYXI5Y2I4M2l6YXJjemZhdmFsYW9hcmM4U2ZjYmNyYWl6OmtqampiYXJJZEtoUWFySWRDaExhcklkemhLYXI5Y2I4M2l3YXI5Y2I4M2liYXJhcmM4V2ZhRGN6YXJjOFNmY2JjaWNiejprampqYkpiYmJiaG1kbmFySWR3Z3phek5hcklkYmdIYUhOYXJJZGxnWGFYTk1NZ0NKYmJiYjlCbWJKYmJqWmFDOnI6dmhta2F6YW1OaENhWGFtTmhYYUhhbU5oSEpiYmpaaG1hcmM4V2ZoZWFEaHZpbmFlY3dmSWRiYUNOYWVJZGJhSE5hWGFlY2xmSWRiTk1NZ3phbWF6YW05REVobWFlY3pmaGVhdmN1Zmd2bWJrYWJhUVVkd2FiYUxVZGxhYmFLVWRiYWJhcklkM1VkeGRuZG5hbUo7bjttO204OTlGbWJKYmJiYmh6YXJjOFdmaGVpbmFlY3hmSWRiYVFhZWN3ZklkYmdQTmFLYWVJZGJnT05hTGFlY2xmSWRiZ0FOTU1NYUNhUE5hSGFPTmFYYUFOTU06dmdQYXphUGF6OUVFaHphZWN6ZmhlYURjdWZnRG1ia2FiYUNVZDhLYWJhWFVkYWFiYUhVZDNhYmFRYUNhek46dFVkS2FiYUxhWGF6Tjp0VWRDYWJhS2FIYXpOOnRVZHphYkpiYmpaYW1hbU46dDpyZ21VZHlkbmRuYUNKYmJqOjthQ0piYmo6OzlHRWd6SmJialphekpiYmpaOUZFSmJiOzo5Y05KYmJiWkpiYmI6O2FDSmJiYmI5R0VNZ3o6bEpiYmI5cDlEVG1iYXo6T2hleGVrY2pqamo5NGhla2FiYWU4NmI4VWRuZG5hWEpiYmo6O2FYSmJiajo7OUdFZ3pKYmJqWmF6SmJialo5RkVKYmI7OjljTkpiYmJaSmJiYjo7YVhKYmJiYjlHRU1nejpsSmJiYjlwOURUbWJhejpPaHZ4ZWtjampqajk0aHZrYWJhdjg2YlJkbmRuYUhKYmJqOjthSEpiYmo6OzlHRWd6SmJialphekpiYmpaOUZFSmJiOzo5Y05KYmJiWkpiYmI6O2FISmJiYmI5R0VNZ3o6bEpiYmI5cDlEVG1iYXo6T2h3eGVrY2pqamo5NGh3a2FiYXc4NmI4U2RuZG5hZWNLdGNLOTE6WUpiYjs6OWM6dmFDOnQ6bGF2Y0t0Y0s5MTpZSmJiOzo5Yzp2YVg6dDpsYXdjS3RjSzkxOllKYmI7OjljOnZhSDp0OmxhbU1NTUpiYjs6OWNOSmJialpNZ206bEpiYmI5cDlEVG1iYW06T2hleGVrY2pqamo5NGhla2FlY0ZiYWVjRmI5aUVoZXhla2FiY2pqajs4aUJkeWNGYmhla2FiYWU4NmI4Vnhla2FiOWNiODNkeWFiOWNiODNkYWFiOWNiODNkS2FiOWNiODNkemFiOWNiODNkd2FiOWNiODNkYmthcmM6VzthYmY4S2pqampiazs3d29EdW85OWV1ZTk5ZXV2OTk4SmpqampiY2plOVJndzhLampqamJhd2M7YWJmY2Jhb2NkdGdEejpyampqYjhBYXdjO0diZmNiYUR6OnJqampiOEFhd2NhZmhEYXdocWFvaGtpbmFxY0ZGRjk3QmRiYURjRkZGOzdyQmRiYXFjbGZocWFEY2xmaERha2N1ZmdrbWJrYXZjZDRoeGFpY2Q0aG1kbmFkVG1iYW9jeDJoUGNiaHNpbmFzaHpkbmFyVG1iYXJhc2NkdGZ5ZGJoemthZWF6YW0yY2R0ZmdESWR3aEhhRElkbGhPYURJZGJoQWFsYXpheDJjZHRmSWRiaENjYmhEYXdjYWZocWF3YztHYmZodmF3aGthd2M7YWJmaGlpbmFDYURjOk86RzpjamJmSWRiYUhOYURjOkc6RzpjamJmSWRiYUFOYURjOks6RzpjamJmSWRiYU9OTU1nWE1oUWF6aExkbmFYYUM6dGdYYXFJZGJnSzlEZ1ltYmF2eWRiaExrYXZhTEJkYmF6aExkbmFRYWtJZGJnOEE5RW1iYWl5ZGJoTGE4QWhRa2FpYUxCZGJha2FRVWRiYXFhWGFLYVlFVWRiYWljbGZoaWFrY2xmaGthdmNsZmh2YXFjbGZocWFQYURjeGZnRDlobWJrYXNjZWZnc2FkOWhtYmtrSmJiYmJoUWNiaExhd2M7R2JmaERhd2M7YWJmaHFjYmhraW5hbGFxeWRiZ3ZheDJjZHRmSWRiYWxhRHlkYmdpYXgyY2R0ZklkYmFlYXZhbTJjZHRmZ3ZJZHdhZWFpYW0yY2R0ZmdpSWR3OnRnQ2FDTmF2SWRiYWlJZGI6dGdDYUNOYXZJZGxhaUlkbDp0Z0NhQ05NTTpyTU1nQ2FRYUNhUTlFZ3ZFaFFha2FMYXZFaExhcWNsZmhxYURjbGZoRGFvYWtjZWZnazlobWJrSmJiYmJoQ2RuYWVhd2M7YWJmYUxjZHRncWZ5ZGJna2FtMmNkdGZnRElkd2FlYXdjO0diZmFxZnlkYmd2YW0yY2R0ZmdxSWR3Z0g6dGdYYVhOYURJZGJhcUlkYmdBOnRnOEFhOEFOYURJZGxhcUlkbGdFOnRnT2FPTk1NZ0tKYmJiYjlFVG1iYUs6cmdDYWxha2F4MmNkdGZJZGJNYWxhdmF4MmNkdGZJZGI6dGFDYUNNOnZoQ2thUUpiYmJaTmhLYVhhQ05hSE1oSGFPYUNOYUVNaE9hOEFhQ05hQU1oQWRuYWRUbWJjYmhxYXJoa2luYXFoRGRuYXJUbWJha3lkYmhEa2RuYWxhRGF4MmNkdGZJZGJnM2FlYURhbTJjZHRmZ0RJZHdhSDp0Z1FhUU5hRElkYmFBOnRnQ2FDTmFESWRsYU86dGdYYVhOTU1nNTpyZ0VNZzhFYUs5RVRtYkpiYmJiaDhBZG5hNUpiYmJiOUVUbWJhOEVhSzp0YUVhRU06dmg4QWthOEFhUU5hSE1oSGE4QWFYTmFPTWhPYThBYUNOYUFNaEFhM2FLYUVNTUpiYmJaTmhLa2FrY2xmaGthZGFxY2VmZ3E5aG1ia2thYmFLVWR4YWJhSFVkd2FiYU9VZGxhYmFBVWRiYXdjamVmOEtqampqYms6cmVldnU4SmpqampiY2o4VzlSZ3I4S2pqampiYWljaTJod2NiaERkbmFpVG1iYXJoaWF3aHFpbmFpYWVhZFJiYmdrY2R0ZnlkYkJkYmFEYWtjZWZna2FEYWswRWhEYWljbGZoaWFkY2VmaGRhcWN1ZmdxbWJra2FiYXJhd2FlYURhbGFvejpqampqYmFyY2o4V2Y4S2pqampiazpFZWVldThKampqamJjYTlSZ284S2pqampiYWI5Y2I4M2R5YWI5Y2I4M2RhYWI5Y2I4M2RLYWI5Y2I4M2R6YWI5Y2I4M2R3YWI5Y2I4M2RiZG5hZFRtYmFvY2JCZDNhbzljYjgzaXdhbzljYjgzaWJhb2FlYWRhaWFsYW9jM2ZhbEVhdmNiYWxFY3JjYno6a2pqamJhYmFvOFBpYjgzZGJhYmFvOFBpdzgzZHdrYW9jYWY4S2pqampiazo6bWVRdThKampqamJjano5Umd2OEtqampqYmNiaG9hdmNqUGZjYmFlejpyampqYjhBYXZjanhmY2JhZXo6cmpqamI4QWRuYWlUbWJhZGhvYWlocmluYXZjanhmYW9SYmJmZ3dhd1JiYmNlZjg2YmJhdmNqeGZhb2NlZlJiYmZnd2F3UmJiY2VmODZiYmF2Y2p4ZmFvY2RmUmJiZmd3YXdSYmJjZWY4NmJiYW9jaWZob2FyY3VmZ3JtYmtjYmhEY2plaG9hZGhxY2Voa2luZG5kbmFsVG1iY2JoeGN1aG1hcWhyYWtod2N1aFBpbmF3Y3VmYW1hb2F2Y2pQZmFyY2VmUmJiZ3NmUmJiOVJjRmVHZ3pjaTZhb2F2Y2pQZmFyUmJiZ0hmUmJiOVJjRmVHZ09jaTZmYW9hdmNqUGZhcmNkZlJiYmdBZlJiYjlSY0ZlR2dDY2k2ZmdYY090YU9jRnI3YXphQ2Y5UmN3dFZhdmNqeGZhQWZSYmJnemF2Y2p4ZmFIZlJiYmdIYXZjanhmYXNmUmJiZ3NhSGFzNkVnc2F6YXM2RWNGZTdWZ3NhUDlrZ3pFaG1hWGNkNmdIYXhjZWZnT2FsOWlWY2U5aG1kYXNhUGF6RWhQYXhhT2FIRWh4YXJjaWZocmF3YWk2aHNhd2NlZmh3YXNtYnhka2tjdWhtYXFocmFraHdjdWh4aW5hd2N1ZmFtYW9hdmNqUGZhcmNlZlJiYmZSYmI5UmNGZUdjaTZhb2F2Y2pQZmFyUmJiZlJiYjlSY0ZlR2NpNmZhb2F2Y2pQZmFyY2RmUmJiZlJiYjlSY0ZlR2NpNmZnUGF4OWtnc0VobWFQY2UwbWVhUGF4YXNFaHhhcmNpZmhyYXdhaTZoUGF3Y2VmaHdhUG1ia2thZGFtY2kyZmdyY2RmUmJiaHdhcmNlZlJiYmh4YXJSYmJoUGFkYURjaTJmZ3JjaWZhcmFtYUQ5UmNpMnpOampqYjhBYVBhdmNqUGZmYW9jZWZnbzg2YmJhUGF2Y2p4ZmZnbWFtUmJiY3VmODZiYmF4YXZjalBmZmFvODZiYmF4YXZjanhmZmdtYW1SYmJjdWY4NmJiYXJjZGZhdzg2YmJhcmNlZmF4ODZiYmFyYVA4NmJiYXdhdmNqUGZmYW84NmJiYXdhdmNqeGZmZ3JhclJiYmN1Zjg2YmJhcWNpZmhxYWtjZWZoa2FEY2VmZ0RhaTlobWJrY2JoemRuYWxjYjltbWJjYmhzYXZjalBmY2JhZXo6cmpqamI4QWFkY3ZmaGxpbmFkYXNjaTJmZ3hjZWZnRFJiYmhvYXhjZGZncVJiYmhyZG5kbmF2Y2pQZmF4UmJiZ21mUmJibWJhdmNqUGZhcmZSYmJod2RuZG5kbmF2Y2pQZmFvZlJiYlRtYmF3Y0ZlR1RtZXhpa2F3Y0ZlR21kYXNjZWZnQWFpOXBtZGFzYzk4MG1kYXNjaWZoUWNiaExhcmNGZUdoQ2FtY0ZlR2hYYWxod2NiaEtjYmhZaW5hd2N1ZlJiYmhQYXdSYmJoT2NlaGtkbmRuYXdjOTpmUmJiZ0hhbzlobWJhUGNGZUdhbVNtZWtkbmFQY0ZlR2FvOWhtYmFPY0ZlR2FtU21la2FIYW1TYU9jRmVHYW9TR2hra2NlaDhBYVljZUdoWWRuZG5hSGFyOWhtYmFQY0ZlR2FvU21la2RuYVBjRmVHYXI5aG1iYU9jRmVHYW9TbWVrYUhhb1NhT2NGZUdhclNHaDhBa2FrYVlWaFlhTGFIY0ZlR2dIYVhTYVBjRmVHZ1BhQ1NHYVBhWFNhT2NGZUdnUGFDU0dWYUhhQ1NhUGFYU0dWVmhMYThBYUtjZUdWaEtkbmFBY2VmZ1BhaTlwbWJhd2NpZmh3YUFhUTZoSGFQaEFhSG1la2thWVRtZWFLbWVrYXJod2FvaFBhb2hIYXJoT2FtaHJ4ZGtkbmFZVGFMVmNlR1RtYmFZYUtUVmFMVmNlR21la2FtaHdhcmhQYXJoSGFtaE9hb2hyeGVrYW9od2FtaFBhbWhIYW9oT2thdmNqUGZhcmZjZTg2YmJhdmNqUGZhd2ZjZTg2YmJheGFIODZiYmFxYXI4NmJiYURhTzg2YmJhdmNqUGZhUGZjZTg2YmJhbGNpZmhsYXNjZWZnc2FpOWhtYmtrYXZjRmVhZWNldHo6cmpqamJod2FpY2kyaHJpbmRuYXdhZFJiYmdtY2V0Zmd4OFVlYmdvY3U5a21iYXhhejg3ZWJhd2NqbGZhemNkdGZhYmFtY2R0ZnlkYkJkYmF6aG9hemNlZmh6a2FkYW84NmJiYWRjZWZoZGFyY3VmZ3JtYmthemNkdGhva2FiYXZjamxmYW96OnFqampiOEFhdmNqemY4S2pqampia09iYWJhaWFlYWRjYno6bmpqamJrOXRlaXVjYmNieWQ7ODpHOmNqYmdlYWJjaWZjOThHZmdiQmQ7ODpHOmNqYmRuZG5hYlpiY3p0Z2Q5bm1iY3VoaWFiYWQ5UmNGRmlmY3o0bmJjdVNtZWthZWhpa2FpaztMZWVldWRuZG5hZWFiVmNpR1RtYmFiaGl4ZWtkbmRuYWRjejlwbWJhYmhpeGVrYWJoaWluYWlhZXlkYkJkYmFpY2xmYWVjbGZ5ZGJCZGJhaWN3ZmFlY3dmeWRiQmRiYWljeGZhZWN4ZnlkYkJkYmFlY3pmaGVhaWN6ZmhpYWRjOVdmZ2RjczBtYmtrYWRjbDZtYmluYWlhZXlkYkJkYmFlY2xmaGVhaWNsZmhpYWRjOThmZ2RjaTBtYmtrZG5hZFRtYmluYWlhZVJiYjg2YmJhaWNlZmhpYWVjZWZoZWFkY3VmZ2RtYmtrYWJrO2FlZWR1ZG5kbmFiY2lHVG1iYWJoaXhla2FlY0ZlR2M6YjpjOmV3MmhsZG5kbmFkY3o5cG1iYWJoaXhla2FiaGlpbmFpYWxCZGJhaWN4ZmFsQmRiYWljd2ZhbEJkYmFpY2xmYWxCZGJhaWN6ZmhpYWRjOVdmZ2RjczBtYmtrYWRjbDZtYmluYWlhbEJkYmFpY2xmaGlhZGM5OGZnZGNpMG1ia2tkbmFkVG1iaW5haWFlODZiYmFpY2VmaGlhZGN1ZmdkbWJra2Fiazl0ZWl1Y2JjYnlkOzg6RzpjamJnZWFiY3JmYzk0R2ZnYkJkOzg6RzpjamJkbmRuYWJaYmN6dGdkOW5tYmN1aGlhYmFkOVJjRkZpZmN6NG5iY3VTbWVrYWVoaWthaWtUZWV1Y2JhYmNieWQ7ODpHOmNqYmdlOVJjaWZjOThHYWVmZ2JCZDs4Okc6Y2piZG5hYlpiY3p0Z2U5bm1iYWJhZTlSY0ZGaWZjejRuYjhBa2s6M3FlbHVkbmRuYWRjaDZtYmFkVG1lYWJhZWFkOzhxYmJhYnNrYWJhZVNtYmRuYWVhZGFiZmdpOVJjYmFkY2V0OVIwbWJhZFRtZWFiYWVhZDs4cWJiYWJza2FlYWI3Y2lHaGxkbmRuZG5hYmFlOXBtYmRuYWxUbWJhZGh2YWJoaXhpa2RuYWJjaUdtYmFkaHZhYmhpeGRrYWRUbWlhYmFlUmJiODZiYmFkY3VmaHZkbmFiY2VmZ2ljaUdtYmFlY2VmaGV4ZGthdlRtaWFiYWVSYmU4NmJlYWRjOTpmaHZkbmFiY2RmZ2ljaUdtYmFlY2RmaGV4ZGthdlRtaWFiYWVSYmQ4NmJkYWRjOTlmaHZkbmFiY2lmZ2ljaUdtYmFlY2lmaGV4ZGthdlRtaWFiYWVSYmk4NmJpYWJjbGZoaWFlY2xmaGVhZGM5OGZodnhla2RuYWxtYmRuYWljaUdUbWJhZFRtbGFiYWRjdWZnaWZnbGFlYWlmUmJiODZiYmRuYWxjaUdtYmFpaGR4ZWthaVRtbGFiYWRjOTpmZ2lmZ2xhZWFpZlJiYjg2YmJkbmFsY2lHbWJhaWhkeGVrYWlUbWxhYmFkYzk5ZmdpZmdsYWVhaWZSYmI4NmJiZG5hbGNpR21iYWloZHhla2FpVG1sYWJhZGM5OGZnZGZhZWFkZlJiYjg2YmJrYWRjbDZtYmRuYWRjOThmZ29jeEdjeFNtYmFvY2Q0Y2VmY2lHaGlhZWM5OGZobGFiYzk4Zmh2aW5hdmFkZmFsYWRmeWRiQmRiYWRjOThmaGRhaWN1ZmdpbWJra2FvY3g2bWJhZWM5V2ZodmFiYzlXZmhvaW5hb2FkZmdpY3hmYXZhZGZnbGN4ZnlkYkJkYmFpY3dmYWxjd2Z5ZGJCZGJhaWNsZmFsY2xmeWRiQmRiYWlhbHlkYkJkYmFkYzlXZmdkY2kwbWJra2FkVG1kYWRoaWRuYWRjaUdnbFRtYmFlY3VmaHZhYmN1ZmhvYWRoaWluYW9haWZhdmFpZlJiYjg2YmJhaWN1ZmhpYWxjdWZnbG1ia2thZGNsNm1kYWVjOThmaGxhYmM5OGZodmluYXZhaWZnZWNpZmFsYWlmZ2RjaWZSYmI4NmJiYWVjZGZhZGNkZlJiYjg2YmJhZWNlZmFkY2VmUmJiODZiYmFlYWRSYmI4NmJiYWljOThmZ2ltYnhpa2thdmNsNm1iZG5hdmM5OGZnbGMzR2MzU21iYXZhbGNkNGNlZmNyR2dkY2R0OVJodmluYWlhZXlkYkJkYmFlY2xmaGVhaWNsZmhpYWRjdWZnZG1ia2thbGMzNm1iaW5haWFleWRiQmRiYWljbGZhZWNsZnlkYkJkYmFpY3dmYWVjd2Z5ZGJCZGJhaWN4ZmFlY3hmeWRiQmRiYWljemZhZWN6ZnlkYkJkYmFpY0NmYWVjQ2Z5ZGJCZGJhaWNLZmFlY0tmeWRiQmRiYWljM2ZhZWMzZnlkYkJkYmFlY2FmaGVhaWNhZmhpYXZjOUdmZ3ZjaTBtYmtrYXZUbWJkbmRuYXZjckdnZG1iYXZobHhla2F2Yzk0R2hsaW5haWFlUmJiODZiYmFpY2VmaGlhZWNlZmhlYWRjdWZnZG1ia2thdmN3Nm1iaW5haWFlUmJiODZiYmFpY2VmYWVjZWZSYmI4NmJiYWljZGZhZWNkZlJiYjg2YmJhaWNpZmFlY2lmUmJiODZiYmFpY2xmYWVjbGZSYmI4NmJiYWljdmZhZWN2ZlJiYjg2YmJhaWNvZmFlY29mUmJiODZiYmFpY3JmYWVjcmZSYmI4NmJiYWljd2ZoaWFlY3dmaGVhbGM5NGZnbG1ia2thYmtrOnBlZGJjajpHZGt0RkZ1dUZGdXVGRnV1YmJiYkZGdUZGRnVGRkZ1RmJiYmJiYmpaYmJiYmJiYmJiYmJiYmJqWmJiYmJiYmJiYmJiYmJialo4NjtuQVo4NjtuQVo4NjtuQVo4NjtuQTo7ODY7bkFaODY7bkFaODY7bkFaODY7bkE6Ozg2O25BWjg2O25BWjg2O25BWjg2O25BOjtiYzswOkdka3hlYmJiZGJiYmo6cWJiIixlPW5ldyBVaW50OEFycmF5KFszMiwwLDY1LDIsMSwxMDYsMzQsMzMsMywxMjgsMTEsNCwxMyw2NCw2LDI1MywxMCw3LDE1LDExNiwxMjcsNSw4LDEyLDQwLDE2LDE5LDU0LDIwLDksMjcsMjU1LDExMywxNyw0Miw2NywyNCwyMywxNDYsMTQ4LDE4LDE0LDIyLDQ1LDcwLDY5LDU2LDExNCwxMDEsMjEsMjUsNjMsNzUsMTM2LDEwOCwyOCwxMTgsMjksNzMsMTE1XSk7aWYodHlwZW9mIFdlYkFzc2VtYmx5IT0ib2JqZWN0IilyZXR1cm57c3VwcG9ydGVkOiExfTt2YXIgdCxvPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGEobikse30pLnRoZW4oZnVuY3Rpb24ocCl7dD1wLmluc3RhbmNlLHQuZXhwb3J0cy5fX3dhc21fY2FsbF9jdG9ycygpfSk7ZnVuY3Rpb24gYShwKXtmb3IodmFyIHk9bmV3IFVpbnQ4QXJyYXkocC5sZW5ndGgpLEU9MDtFPHAubGVuZ3RoOysrRSl7dmFyIGc9cC5jaGFyQ29kZUF0KEUpO3lbRV09Zz45Nj9nLTk3Omc+NjQ/Zy0zOTpnKzR9Zm9yKHZhciBBPTAsRT0wO0U8cC5sZW5ndGg7KytFKXlbQSsrXT15W0VdPDYwP2VbeVtFXV06KHlbRV0tNjApKjY0K3lbKytFXTtyZXR1cm4geS5idWZmZXIuc2xpY2UoMCxBKX1mdW5jdGlvbiByKHApe2lmKCFwKXRocm93IG5ldyBFcnJvcigiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIGkocCl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHAuYnVmZmVyLHAuYnl0ZU9mZnNldCxwLmJ5dGVMZW5ndGgpfXZhciBmPTQ4LGQ9MTY7ZnVuY3Rpb24gYyhwLHkpe3ZhciBFPXAubWVzaGxldHNbeSo0KzBdLGc9cC5tZXNobGV0c1t5KjQrMV0sQT1wLm1lc2hsZXRzW3kqNCsyXSxUPXAubWVzaGxldHNbeSo0KzNdO3JldHVybnt2ZXJ0aWNlczpwLnZlcnRpY2VzLnN1YmFycmF5KEUsRStBKSx0cmlhbmdsZXM6cC50cmlhbmdsZXMuc3ViYXJyYXkoZyxnK1QqMyl9fWZ1bmN0aW9uIHUocCx5LEUsZyxBLFQsUixTLE0sSSl7dmFyIE49dC5leHBvcnRzLnNicmssUD10LmV4cG9ydHMubWVzaG9wdF9idWlsZE1lc2hsZXRzQm91bmQoeS5sZW5ndGgsVCxSKSxGPU4oUCpkKSx3PU4oeS5sZW5ndGgqNCkseD1OKHkubGVuZ3RoKSxDPU4oeS5ieXRlTGVuZ3RoKSx2PU4oRS5ieXRlTGVuZ3RoKSxqPW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTtqLnNldChpKHkpLEMpLGouc2V0KGkoRSksdik7dmFyIHo9cChGLHcseCxDLHkubGVuZ3RoLHYsZyxBLFQsUixTLE0sSSk7aj1uZXcgVWludDhBcnJheSh0LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcik7Zm9yKHZhciBEPWouc3ViYXJyYXkoRixGK3oqZCksRz1uZXcgVWludDMyQXJyYXkoRC5idWZmZXIsRC5ieXRlT2Zmc2V0LEQuYnl0ZUxlbmd0aC80KS5zbGljZSgpLFY9MDtWPHo7KytWKXt2YXIgTz1HW1YqNCswXSxaPUdbVio0KzFdLGc9R1tWKjQrMl0sYWU9R1tWKjQrM107dC5leHBvcnRzLm1lc2hvcHRfb3B0aW1pemVNZXNobGV0KHcrTyo0LHgrWixhZSxnKX12YXIgY2U9ej9HWyh6LTEpKjQrMF0rR1soei0xKSo0KzJdOjAsZmU9ej9HWyh6LTEpKjQrMV0rR1soei0xKSo0KzNdKjM6MCx0ZT17bWVzaGxldHM6Ryx2ZXJ0aWNlczpuZXcgVWludDMyQXJyYXkoai5idWZmZXIsdyxjZSkuc2xpY2UoKSx0cmlhbmdsZXM6bmV3IFVpbnQ4QXJyYXkoai5idWZmZXIseCxmZSkuc2xpY2UoKSxtZXNobGV0Q291bnQ6en07cmV0dXJuIE4oRi1OKDApKSx0ZX1mdW5jdGlvbiBsKHApe3ZhciB5PW5ldyBGbG9hdDMyQXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIscCxmLzQpO3JldHVybntjZW50ZXJYOnlbMF0sY2VudGVyWTp5WzFdLGNlbnRlclo6eVsyXSxyYWRpdXM6eVszXSxjb25lQXBleFg6eVs0XSxjb25lQXBleFk6eVs1XSxjb25lQXBleFo6eVs2XSxjb25lQXhpc1g6eVs3XSxjb25lQXhpc1k6eVs4XSxjb25lQXhpc1o6eVs5XSxjb25lQ3V0b2ZmOnlbMTBdfX1mdW5jdGlvbiBoKHAseSxFLGcpe3ZhciBBPXQuZXhwb3J0cy5zYnJrLFQ9W10sUj1BKHkuYnl0ZUxlbmd0aCksUz1BKHAudmVydGljZXMuYnl0ZUxlbmd0aCksTT1BKHAudHJpYW5nbGVzLmJ5dGVMZW5ndGgpLEk9QShmKSxOPW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTtOLnNldChpKHkpLFIpLE4uc2V0KGkocC52ZXJ0aWNlcyksUyksTi5zZXQoaShwLnRyaWFuZ2xlcyksTSk7Zm9yKHZhciBQPTA7UDxwLm1lc2hsZXRDb3VudDsrK1Ape3ZhciBGPXAubWVzaGxldHNbUCo0KzBdLHc9cC5tZXNobGV0c1tQKjQrMV0seD1wLm1lc2hsZXRzW1AqNCszXTt0LmV4cG9ydHMubWVzaG9wdF9jb21wdXRlTWVzaGxldEJvdW5kcyhJLFMrRio0LE0rdyx4LFIsRSxnKSxULnB1c2gobChJKSl9cmV0dXJuIEEoUi1BKDApKSxUfWZ1bmN0aW9uIG0ocCx5LEUsZyl7dmFyIEE9dC5leHBvcnRzLnNicmssVD1BKGYpLFI9QShwLmJ5dGVMZW5ndGgpLFM9QSh5LmJ5dGVMZW5ndGgpLE09bmV3IFVpbnQ4QXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIpO00uc2V0KGkocCksUiksTS5zZXQoaSh5KSxTKSx0LmV4cG9ydHMubWVzaG9wdF9jb21wdXRlQ2x1c3RlckJvdW5kcyhULFIscC5sZW5ndGgsUyxFLGcpO3ZhciBJPWwoVCk7cmV0dXJuIEEoVC1BKDApKSxJfWZ1bmN0aW9uIGIocCx5LEUsZyxBKXt2YXIgVD10LmV4cG9ydHMuc2JyayxSPVQoZiksUz1UKHAuYnl0ZUxlbmd0aCksTT1nP1QoZy5ieXRlTGVuZ3RoKTowLEk9bmV3IFVpbnQ4QXJyYXkodC5leHBvcnRzLm1lbW9yeS5idWZmZXIpO0kuc2V0KGkocCksUyksZyYmSS5zZXQoaShnKSxNKSx0LmV4cG9ydHMubWVzaG9wdF9jb21wdXRlU3BoZXJlQm91bmRzKFIsUyx5LEUsTSxnP0E6MCk7dmFyIE49bChSKTtyZXR1cm4gVChSLVQoMCkpLE59cmV0dXJue3JlYWR5Om8sc3VwcG9ydGVkOiEwLGJ1aWxkTWVzaGxldHM6ZnVuY3Rpb24ocCx5LEUsZyxBLFQpe3IocC5sZW5ndGglMz09MCkscih5IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSxyKHkubGVuZ3RoJUU9PTApLHIoRT49MykscihnPj0zJiZnPD0yNTYpLHIoQT49MSYmQTw9NTEyKSxUPVR8fDA7dmFyIFI9cC5CWVRFU19QRVJfRUxFTUVOVD09ND9wOm5ldyBVaW50MzJBcnJheShwKTtyZXR1cm4gdSh0LmV4cG9ydHMubWVzaG9wdF9idWlsZE1lc2hsZXRzRmxleCxSLHkseS5sZW5ndGgvRSxFKjQsZyxBLEEsVCwwKX0sYnVpbGRNZXNobGV0c0ZsZXg6ZnVuY3Rpb24ocCx5LEUsZyxBLFQsUixTKXtyKHAubGVuZ3RoJTM9PTApLHIoeSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkscih5Lmxlbmd0aCVFPT0wKSxyKEU+PTMpLHIoZz49MyYmZzw9MjU2KSxyKEE+PTEmJlQ8PTUxMikscihBPD1UKSxSPVJ8fDAsUz1TfHwwO3ZhciBNPXAuQllURVNfUEVSX0VMRU1FTlQ9PTQ/cDpuZXcgVWludDMyQXJyYXkocCk7cmV0dXJuIHUodC5leHBvcnRzLm1lc2hvcHRfYnVpbGRNZXNobGV0c0ZsZXgsTSx5LHkubGVuZ3RoL0UsRSo0LGcsQSxULFIsUyl9LGJ1aWxkTWVzaGxldHNTcGF0aWFsOmZ1bmN0aW9uKHAseSxFLGcsQSxULFIpe3IocC5sZW5ndGglMz09MCkscih5IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSxyKHkubGVuZ3RoJUU9PTApLHIoRT49MykscihnPj0zJiZnPD0yNTYpLHIoQT49MSYmVDw9NTEyKSxyKEE8PVQpLFI9Unx8MDt2YXIgUz1wLkJZVEVTX1BFUl9FTEVNRU5UPT00P3A6bmV3IFVpbnQzMkFycmF5KHApO3JldHVybiB1KHQuZXhwb3J0cy5tZXNob3B0X2J1aWxkTWVzaGxldHNTcGF0aWFsLFMseSx5Lmxlbmd0aC9FLEUqNCxnLEEsVCxSKX0sZXh0cmFjdE1lc2hsZXQ6ZnVuY3Rpb24ocCx5KXtyZXR1cm4gcih5Pj0wJiZ5PHAubWVzaGxldENvdW50KSxjKHAseSl9LGNvbXB1dGVDbHVzdGVyQm91bmRzOmZ1bmN0aW9uKHAseSxFKXtyKHAubGVuZ3RoJTM9PTApLHIocC5sZW5ndGgvMzw9NTEyKSxyKHkgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpLHIoeS5sZW5ndGglRT09MCkscihFPj0zKTt2YXIgZz1wLkJZVEVTX1BFUl9FTEVNRU5UPT00P3A6bmV3IFVpbnQzMkFycmF5KHApO3JldHVybiBtKGcseSx5Lmxlbmd0aC9FLEUqNCl9LGNvbXB1dGVNZXNobGV0Qm91bmRzOmZ1bmN0aW9uKHAseSxFKXtyZXR1cm4gcih5IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSxyKHkubGVuZ3RoJUU9PTApLHIoRT49MyksaChwLHkseS5sZW5ndGgvRSxFKjQpfSxjb21wdXRlU3BoZXJlQm91bmRzOmZ1bmN0aW9uKHAseSxFLGcpe3JldHVybiByKHAgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpLHIocC5sZW5ndGgleT09MCkscih5Pj0zKSxyKCFFfHxFIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSxyKCFFfHxFLmxlbmd0aCVnPT0wKSxyKCFFfHxnPj0xKSxyKCFFfHxwLmxlbmd0aC95PT1FLmxlbmd0aC9nKSxnPWd8fDAsYihwLHAubGVuZ3RoL3kseSo0LEUsZyo0KX19fSkoKX0pO3ZhciBqc2UsYXg9WCgoKT0+e2pzZT0oZnVuY3Rpb24oKXt2YXIgbj0iYjlINzlUZWJiYmVndjlHZXVldTlHZXViOUdiYjlHa3V1dXV1dXV1dXV1YjlHaXV1dWV1aXJvZGlibGJlbHZlOVdlaWl2aWViZW93ZXVlY2o6R2Rrcm5sbzlUVzlUOVZWOTVkYkg5RjlGOTM5SDc5VDlGOUo5SDIyOUY5SnQ5VlY3YmJLOVRXNzlPOVY5V3Q5RjlOVzlVV1Y5SHRXOXU5SDlVOU5XOVV0N2JlbDc5SVY5UmJkRHdlYmNla2RsdnE7bThMb2Riazp3Z3ZPdXc5OWl1djk5dnU4SmpqampiYztXYjlSZ2s4S2pqampiYWtjeGZjYmM7S2J6OmRqampiOEFha2N1YWxjZHRneGFsY0ZGRkZpMEVjYnlkOnE6RzpjamJIampqamJiZ21CZHhha2NlQmQyYWRjaTlVaFBhbGNkNGFsZmhzY2VoemluYXpnSGNldGh6YUhhczZtYmtha2N1YUhjZHRnemFIY0ZGRkZpMEVjYnlkOnE6RzpjamJIampqamJiZ3NCZHpha2NkQmQyYXNjRmVheno6ZGpqamJoT2FEY2Q0aEFhcmNkNGhDYXZjZDRoWGRuYWxUbWJhSGN1ZmhyY2JodmluZG5kbmFPY2JhaWF2YVgyY2R0ZmdIeWRsZ0RhRGNqampqOTRTRWdzY0g0Y2Jhb2F2YUMyY2R0Zmd6eWRsZ1FjczRhUWNqampqOTRTRTdhczdjOkY6YjpERDJjYmFIeWRiZ0xhTGNqampqOTRTRWdzY0g0Y2JhenlkYmdLY3M0YUtjampqajk0U0U3YXM3YztEO086QjhKMjdjYmFIeWR3Z1lhWWNqampqOTRTRWdIY0g0Y2Jhenlkd2c4QWNzNGE4QWNqampqOTRTRTdhSDdjOjNGO044TjI3YXdhdmFBMmNkdGZnSHlkbGdFYUh5ZGJnMzdjRkZGRnJHZ0hjbTRhSDdjOmZqaksyN2FyR2dzY2R0ZmdIeWRiZ3pjdVNtYmFFOjpoNWEzOjpoOEVhOEE6Omg4RmFROjpoYWFLOjpoaGFZOjpoZ2FEOjpoOEphTDo6aDhLY2VoRGluYURoSGRuYWlhemFYMmNkdGZnRElkYmE4SzlDbWJhRElkbGE4SjlDbWJhRElkd2FnOUNtYmFvYXphQzJjZHRmZ0RJZGJhaDlDbWJhRElkbGFhOUNtYmFESWR3YThGOUNtYmF3YXphQTJjZHRmZ0RJZGJhOEU5Q21iYURJZGxhNTlCbWlrYUhjZWZoRGFPYXNhSGZhckdnc2NkdGZnSHlkYmd6Y3U5aG1ia2thSGF2QmRiYXZoemthbWF2Y2R0ZmF6QmRiYXZjZWZndmFsOWhtYmtrYU9jYnlkTjpHOmNqYkg6YmpqamJiYWtjZUJkMmFrY3VhbGNlZmdIY2R0YUhjRkZGRmkwRWNieWQ6cTpHOmNqYkhqampqYmJnOExCZHpha2NkQmQyYWtjdWFkY2R0YWRjRkZGRmkwRWdZY2J5ZDpxOkc6Y2piSGpqampiYmc4TUJkQ2FrY2lCZDJhOExjbGZjYmF4ejpkampqYmh6ZG5hZFRtYmRuYWVUbWJhZWhIYWRoc2luYXphbWFIeWRiY2R0ZnlkYmNkdGZnRGFEeWRiY2VmQmRiYUhjbGZoSGFzY3VmZ3NtYnhka2thbWhIYWRoc2luYXphSHlkYmNkdGZnRGFEeWRiY2VmQmRiYUhjbGZoSGFzY3VmZ3NtYmtrZG5hbFRtYmNiaHNhemhIYWxoRGluYUh5ZGJoT2FIYXNCZGJhSGNsZmhIYU9hc2Zoc2FEY3VmZ0RtYmtrZG5hZGNpNmdRbWJjYmhzY2RoSGFQaE9pbmRuZG5hZVRtYmFtYWVhc2ZndnlkYmNkdGZoRGFtYXZjd2Z5ZGJjZHRmaHJhbWF2Y2xmeWRiY2R0Zmh2eGVrYW1hc2ZnRGN3ZmhyYURjbGZodmthcnlkYmhyYXZ5ZGJodmF6YUR5ZGJjZHRmZ0RhRHlkYmdEY2VmQmRiYThNYURjZHRmYUhjOTpmQmRiYXphdmNkdGZnRGFEeWRiZ0RjZWZCZGJhOE1hRGNkdGZhSGN1ZkJkYmF6YXJjZHRmZ0RhRHlkYmdEY2VmQmRiYThNYURjZHRmYUhCZGJhc2N4ZmhzYUhjbGZoSGFPY3VmZ09tYmtrY2Joc2E4TGNiQmRiYWtjdWFQY2x0YWRjRkZGRmQwRWNieWQ6cTpHOmNqYkhqampqYmJnOE5CZEtha2NsQmQyZG5hUW1iYWVoemE4TmhIYVBodmluZG5kbmFlVG1iYXpjd2Z5ZGJoRGF6Y2xmeWRiaE9henlkYmhyeGVrYXNjZGZoRGFzY2VmaE9hc2hya0piYmJiaDhLSmJiYmJKYmJiYkpiYmJiSmJiYmJKYmJqWkpiYmo6O2F3YU9hQTJjZHRmZ1FJZGJhd2FyYUEyY2R0ZmdMSWRiZ2g6dGF3YURhQTJjZHRmZ0tJZGxhTElkbGdnOnRnOEpOYVFJZGxhZzp0Z2dhS0lkYmFoOnROOnRnaEpiYmJiOUVFYWhKYmJiYjlCRWc4RWFpYXJhWDJjZHRmZ3JJZHdnaGFpYU9hWDJjZHRmZ09JZHdnNTlCRWE4RWFySWRsZ2FhT0lkbGd5OUJFYThFYXJJZGJnOEZhT0lkYmc4UDlCRWc4RWFoYWlhRGFYMmNkdGZnRElkd2dJOUJFYThFYWFhRElkbGc4UjlCRWE4RWE4RmFESWRiZzhTOUJFZzhFYTVhSTlCRWE4RWF5YThSOUJFYThFYThQYThTOUJFaDhFZG5hOEphNWFoOnROYWdhSWFoOnROOnRnaGFoTmE4SmE4UGE4Rjp0TmFnYThTYThGOnROOnRnOEZhOEZOYThKYXlhYTp0TmFnYThSYWE6dE46dGc4SmE4Sk5NTWdnSmJiYmI5Qm1iYThFYWc6cjp2aDhLa2FIY3hmYThFVWRiYUhjd2ZhaGE4S05VZGJhSGNsZmE4SmE4S05VZGJhSGE4RmE4S05VZGJhemN4Zmh6YUhjemZoSGFzY2lmaHNhdmN1Zmd2bWJra2NiaEhha2FZY2J5ZDpxOkc6Y2piSGpqampiYmdEQmQzYWtjdkJkMmRuYWRUbWJhRGh6aW5hemFIQmRiYXpjbGZoemFkYUhjZWZnSDlobWJra2FrY3VhUGNkdGFkY0ZGRkY5NzBFY2J5ZDpxOkc6Y2piSGpqampiYmd2QmRhYWtjb0JkMmFrYVBjYnlkOnE6RzpjamJIampqamJiZzhBQmQ4S2FrY3JCZDJkbmFkY2k2bWJhOE5jeGZoemF2aHNjYmhIaW5hc2FIQmRiYThBYUhmY2RjYmF6SWRiZzhLSmJiYmI5REVhOEtKYmJiYjlFVjg2YmJhc2NsZmhzYXpjemZoemFQYUhjZWZnSDlobWJra2RuYWxUbWJjYmhSaW5hUmNkdGhIZG5hOExhUmNlZmdSY2R0ZnlkYmd6YThMYUhmeWRiZ0hTbWJhemFIOVJoTGE4TWFIY2R0ZmhLY2JoOFVpbmFLYThVY2R0Zmc4VnlkYmdIY2Q0ZzhXY2kyZ3hhSGNpR2NkdGd6eWQ6ZTpHOmNqYmZoSGF4YXp5ZGo6RzpjamJmaHpkbmFlVG1iYWVhSGNkdGZ5ZGJoSGFlYXpjZHRmeWRiaHprZG5hOFVjZWZnOFVhTDlwbWJhbWFIY2R0ZnlkYmhZYW1hemNkdGZ5ZGJoM2E4QWE4V2ZoRWF2YThXY2R0Zmg4WGE4VWh3aW5hS2F3Y2R0ZmdReWRiZ0hjZDRnemNpMmdBYUhjaUdjZHRnSHlkOmU6RzpjamJmaHNhQWFIeWRqOkc6Y2piZmhIZG5hZVRtYmFlYXNjZHRmeWRiaHNhZWFIY2R0ZnlkYmhIa2RuZG5hbWFIY2R0ZnlkYmFZU21iYW1hc2NkdGZ5ZGJhMzlobWVrYThBYXpmUmJiZ0hhRVJiYmdzVmNpU21iZG5hSGFzR21iYThXaHNkbmE4V2E4WHlkYmdIU21iYThYaE9pbmFPYXZhSGdzY2R0ZmdyeWRiZ0hCZGJhcmhPYXNhSDlobWJra2RuYXphdmF6Y2R0ZmdPeWRiZ0hTbWJpbmFPYXZhSGd6Y2R0ZmdyeWRiZ0hCZGJhcmhPYXphSDlobWJra2FzYXpTbWJhOEFhemZnT1JiYmE4QWFzZmdIUmJiVmNpU21lYXZhemNkdGZhc0JkYmFIYUhSYmJhT1JiYlY4NmJia2RuYThWeWRiY2lHYXhmZ3phRGF6Y2R0ZmdzeWRiZ0hTbWJpbmFzYURhSGd6Y2R0ZmdPeWRiZ0hCZGJhT2hzYXphSDlobWJra2RuYVF5ZGJjaUdhQWZnc2FEYXNjZHRmZ095ZGJnSFNtYmluYU9hRGFIZ3NjZHRmZ3J5ZGJnSEJkYmFyaE9hc2FIOWhtYmtrYXphc1NtYmFEYXNjZHRmYXpCZGJrYXdjZWZnd2FMOWhtYmtrYThVYUw5aG1ia2thUmFsOWhtYmtrZG5hZFRtYmNiaHJpbmFyaHpkbmFyYURhcmNkdGZnd3lkYmdIU21iYXdoc2luYXNhRGFIZ3pjZHRmZ095ZGJnSEJkYmFPaHNhemFIOWhtYmtrYXdhekJkYmFyY2VmZ3JhZDlobWJrY2JoOFZhYmNiYWRjbHR6OmRqampiaEtkbmFkY2k2bWJhcWNlR2hFYURoWWFlaDNjYmg4V2luZG5hOE5hOFdjbHRmZ3NJZHhKYmJiYjlCbWJhbWE4V2N4MmdIZmh4YWVhSGZoTGNiaHphOFZod2luYUthWWF6ZnlkYmNsdGZoSGRuZG5hZVRtYmFtYUxhemM6ZTpHOmNqYmZ5ZGJjZHRmeWRiY2R0ZmhBYW1hTGF6Y2o6RzpjamJmeWRiY2R0ZnlkYmNkdGZocmEzYXpmeWRiaE94ZWtheGF6YzplOkc6Y2piZnlkYmNkdGZoQWF4YXpjajpHOmNqYmZ5ZGJjZHRmaHJhd2hPa2FIYXNJZGJnZ2FvYW1hT2NkdGZ5ZGJnUWFDMmNkdGZnT0lkYmc4S2FzSWR3ZzhGYU9JZHdnOEpOYWdhOEtOYXNJZGxnOEVhT0lkbGdnTk1NZ2hOOnRnYUpiYmJiSmJialphOEZhOEphaE46dGc4RmE4Rk5hYWFhTmE4RWFnYWhOOnRnaGFoTk1NZ2E6cjp2YWFKYmJiYjlCRUo7QXM2bkpiYmpaYWlhcnlkYmFYMmNkdGZnT0lkd2FpYVFhWDJjZHRmZ3JJZHdnNTp0Z2FhOEphYWE4Sk5hT0lkYmFySWRiZ3k6dGc4UGE4S05hZ2FPSWRsYXJJZGxnSTp0ZzhSTk1NZ2FOOnRnOEVhaWFBeWRiYVgyY2R0ZmdPSWR3YTU6dGc1YThKYTVhOEpOYU9JZGJheTp0ZzhTYThLTmFnYU9JZGxhSTp0Z0lOTU1nNU46dGc4Sk5hOFBhOEthYU46dGd5YThTYThLYTVOOnRnOEtOYThSYWdhYU46dGdhYUlhZ2E1Tjp0Z2dOTU1KYmJiYkpiYmpaYThFYThFTmF5YXlOYWFhYU5NTWE4SmE4Sk5hOEthOEtOYWdhZ05NTU5nOEs6cmc4Sjp2YThLSmJiYmI5QkVOZ2c6bGc4S2E4S0piYmpaOUVFZzhLYThLSjc7QTlzODlOSjpMOXQ5czo6TU5KO29iO2paTUpiYmpaYThLOnQ6ck5nOEs6dGE4S2FnSmJiYmI5REVOZzhLYThKYThLTmFFRWc4S05hSElkYk1VZGJhSGFoYThLTmFISWRsTVVkbGFIYThGYThLTmFISWR3TVVkd2F3Y2VmaHdhemNsZmd6Y3g5aG1ia2thWWN4ZmhZYTNjeGZoM2E4VmNpZmg4VmE4V2NlZmc4V2FQOWhtYmtjYmhyaW5hcmh6ZG5hcmF2YXJjZHRmZ3N5ZGJnSFNtYmluYXNhdmFIZ3pjZHRmZ095ZGJnSEJkYmFPaHNhemFIOWhtYmtrYUthcmM4VzJmZ0hjM2ZKYmJqWkpiYmo6O2E4QWF6ZlJiYmNlR0VnOEtVZGJhSGM4U2ZhOEtVZGJhSGE4S1VkeGFyY2VmZ3JhUDlobWJra2FxY2RHaHZjYmh6YURoc2FLaEhpbmRuYXphc3lkYjlobWJKYmJiYmg4S2RuYUhjd2ZnT0lkYmc4SmE4Sk5hSElkYmdnYWdOYUhjbGZncklkYmdoYWhOTU1nYUpiYmJiOUJtYkpiYmpaYWE6cjp2aDhLa2FPYThKYThLTlVkYmFyYWhhOEtOVWRiYUhhZ2E4S05nOEpVZGJhdm1iYUhKYmJqWmE4SmE4S0piYmJiOUJFVWRia2FzY2xmaHNhSGN6ZmhIYWRhemNlZmd6OWhtYmtjYmhIYUtoemluZG5hSGFEeWRiZ3NTbWJhemFLYXNjbHRmZ3N5ZHdCZHdhemFzOFBkYjgzZGJrYURjbGZoRGF6Y3pmaHphZGFIY2VmZ0g5aG1ia2tkbmFreWQyZ3pUbWJhemNkdGFrY3hmZmM5OGZoSGluYUh5ZGJjYnlkTjpHOmNqYkg6YmpqamJiYUhjOThmaEhhemN1Zmd6bWJra2FrYztXYmY4S2pqampiazl0ZWl1Y2JjYnlkOnk6RzpjamJnZWFiY2lmYzk4R2ZnYkJkOnk6RzpjamJkbmRuYWJaYmN6dGdkOW5tYmN1aGlhYmFkOVJjRkZpZmN6NG5iY3VTbWVrYWVoaWthaWs7YWVlZHVkbmRuYWJjaUdUbWJhYmhpeGVrYWVjRmVHYzpiOmM6ZXcyaGxkbmRuYWRjejlwbWJhYmhpeGVrYWJoaWluYWlhbEJkYmFpY3hmYWxCZGJhaWN3ZmFsQmRiYWljbGZhbEJkYmFpY3pmaGlhZGM5V2ZnZGNzMG1ia2thZGNsNm1iaW5haWFsQmRiYWljbGZoaWFkYzk4ZmdkY2kwbWJra2RuYWRUbWJpbmFpYWU4NmJiYWljZWZoaWFkY3VmZ2RtYmtrYWJrOXRlaXVjYmNieWQ6eTpHOmNqYmdlYWJjcmZjOTRHZmdiQmQ6eTpHOmNqYmRuZG5hYlpiY3p0Z2Q5bm1iY3VoaWFiYWQ5UmNGRmlmY3o0bmJjdVNtZWthZWhpa2Fpa1RlZXVjYmFiY2J5ZDp5Okc6Y2piZ2U5UmNpZmM5OEdhZWZnYkJkOnk6RzpjamJkbmFiWmJjenRnZTlubWJhYmFlOVJjRkZpZmN6NG5iOEFra2s4UmRiY2o6R2RremViYmJkYmJiYmJiYmViYmJiYzpxOkdka3hlYmJiZGJiYmE6cWJiIixlPW5ldyBVaW50OEFycmF5KFszMiwwLDY1LDIsMSwxMDYsMzQsMzMsMywxMjgsMTEsNCwxMyw2NCw2LDI1MywxMCw3LDE1LDExNiwxMjcsNSw4LDEyLDQwLDE2LDE5LDU0LDIwLDksMjcsMjU1LDExMywxNyw0Miw2NywyNCwyMywxNDYsMTQ4LDE4LDE0LDIyLDQ1LDcwLDY5LDU2LDExNCwxMDEsMjEsMjUsNjMsNzUsMTM2LDEwOCwyOCwxMTgsMjksNzMsMTE1XSk7aWYodHlwZW9mIFdlYkFzc2VtYmx5IT0ib2JqZWN0IilyZXR1cm57c3VwcG9ydGVkOiExfTt2YXIgdCxvPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGEobikse30pLnRoZW4oZnVuY3Rpb24oYyl7dD1jLmluc3RhbmNlLHQuZXhwb3J0cy5fX3dhc21fY2FsbF9jdG9ycygpfSk7ZnVuY3Rpb24gYShjKXtmb3IodmFyIHU9bmV3IFVpbnQ4QXJyYXkoYy5sZW5ndGgpLGw9MDtsPGMubGVuZ3RoOysrbCl7dmFyIGg9Yy5jaGFyQ29kZUF0KGwpO3VbbF09aD45Nj9oLTk3Omg+NjQ/aC0zOTpoKzR9Zm9yKHZhciBtPTAsbD0wO2w8Yy5sZW5ndGg7KytsKXVbbSsrXT11W2xdPDYwP2VbdVtsXV06KHVbbF0tNjApKjY0K3VbKytsXTtyZXR1cm4gdS5idWZmZXIuc2xpY2UoMCxtKX1mdW5jdGlvbiByKGMpe2lmKCFjKXRocm93IG5ldyBFcnJvcigiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIGkoYyl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGMuYnVmZmVyLGMuYnl0ZU9mZnNldCxjLmJ5dGVMZW5ndGgpfWZ1bmN0aW9uIGYoYyx1LGwsaCxtLGIscCx5LEUsZyl7dmFyIEE9dC5leHBvcnRzLnNicmssVD1BKHUqMTYpLFI9Yz9BKGMuYnl0ZUxlbmd0aCk6MCxTPUEobC5ieXRlTGVuZ3RoKSxNPUEoYi5ieXRlTGVuZ3RoKSxJPUEoeS5ieXRlTGVuZ3RoKSxOPW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTtjJiZOLnNldChpKGMpLFIpLE4uc2V0KGkobCksUyksTi5zZXQoaShiKSxNKSxOLnNldChpKHkpLEkpLHQuZXhwb3J0cy5tZXNob3B0X2dlbmVyYXRlVGFuZ2VudHMoVCxSLHUsUyxoLG0qNCxNLHAqNCxJLEUqNCxnKSxOPW5ldyBVaW50OEFycmF5KHQuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKTt2YXIgUD1uZXcgRmxvYXQzMkFycmF5KE4uYnVmZmVyLFQsdSo0KS5zbGljZSgpO3JldHVybiBBKFQtQSgwKSksUH12YXIgZD17Q29tcGF0aWJsZToxLFplcm9GYWxsYmFjazoyfTtyZXR1cm57cmVhZHk6byxzdXBwb3J0ZWQ6ITAsZ2VuZXJhdGVUYW5nZW50czpmdW5jdGlvbihjLHUsbCxoLG0sYixwLHkpe3IoYz09PW51bGx8fGMgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8YyBpbnN0YW5jZW9mIEludDMyQXJyYXl8fGMgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8YyBpbnN0YW5jZW9mIEludDE2QXJyYXkpLHIoYz09PW51bGx8fGMubGVuZ3RoJTM9PTApLHIodSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkscih1Lmxlbmd0aCVsPT0wKSxyKGw+PTMpLHIoaCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkscihoLmxlbmd0aCVtPT0wKSxyKG0+PTMpLHIoYiBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkscihiLmxlbmd0aCVwPT0wKSxyKHA+PTIpLHIodS5sZW5ndGgvbD09aC5sZW5ndGgvbSkscih1Lmxlbmd0aC9sPT1iLmxlbmd0aC9wKSxyKGMhPT1udWxsfHx1Lmxlbmd0aC9sJTM9PTApO2Zvcih2YXIgRT0wLGc9MDtnPCh5P3kubGVuZ3RoOjApOysrZylyKHlbZ11pbiBkKSxFfD1kW3lbZ11dO3ZhciBBPXUubGVuZ3RoL2wsVD1jP2MubGVuZ3RoOkEsUj1jPT09bnVsbHx8Yy5CWVRFU19QRVJfRUxFTUVOVD09ND9jOm5ldyBVaW50MzJBcnJheShjKTtyZXR1cm4gZihSLFQsdSxBLGwsaCxtLGIscCxFKX19fSkoKX0pO3ZhciByeD1YKCgpPT57ZXgoKTt0eCgpO254KCk7b3goKTtheCgpfSk7dmFyIF9yLGl4LGN4PVgoKCk9PntJbigpO3VuKCk7X3I9e1g6MCxZOjEsWjoyfTtfci5ZX1VQX1RPX1pfVVA9JC5mcm9tUm90YXRpb25UcmFuc2xhdGlvbihKLmZyb21BcnJheShbMSwwLDAsMCwwLDEsMCwtMSwwXSkpO19yLlpfVVBfVE9fWV9VUD0kLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uKEouZnJvbUFycmF5KFsxLDAsMCwwLDAsLTEsMCwxLDBdKSk7X3IuWF9VUF9UT19aX1VQPSQuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24oSi5mcm9tQXJyYXkoWzAsMCwxLDAsMSwwLC0xLDAsMF0pKTtfci5aX1VQX1RPX1hfVVA9JC5mcm9tUm90YXRpb25UcmFuc2xhdGlvbihKLmZyb21BcnJheShbMCwwLC0xLDAsMSwwLDEsMCwwXSkpO19yLlhfVVBfVE9fWV9VUD0kLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uKEouZnJvbUFycmF5KFswLDEsMCwtMSwwLDAsMCwwLDFdKSk7X3IuWV9VUF9UT19YX1VQPSQuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24oSi5mcm9tQXJyYXkoWzAsLTEsMCwxLDAsMCwwLDAsMV0pKTtfci5mcm9tTmFtZT1mdW5jdGlvbihuKXtyZXR1cm4gX3Jbbl19O09iamVjdC5mcmVlemUoX3IpO2l4PV9yfSk7ZnVuY3Rpb24geXIobixlKXt0aGlzLl9lbGxpcHNvaWQ9bix0aGlzLl9jYW1lcmFQb3NpdGlvbj1uZXcgcyx0aGlzLl9jYW1lcmFQb3NpdGlvbkluU2NhbGVkU3BhY2U9bmV3IHMsdGhpcy5fZGlzdGFuY2VUb0xpbWJJblNjYWxlZFNwYWNlU3F1YXJlZD0wLF8oZSkmJih0aGlzLmNhbWVyYVBvc2l0aW9uPWUpfWZ1bmN0aW9uIGR4KG4sZSx0KXtpZihfKGUpJiZlPDAmJm4ubWluaW11bVJhZGl1cz4tZSl7bGV0IG89cy5mcm9tRWxlbWVudHMobi5yYWRpaS54K2Usbi5yYWRpaS55K2Usbi5yYWRpaS56K2UsVWopO249Sy5mcm9tQ2FydGVzaWFuMyhvLHQpfXJldHVybiBufWZ1bmN0aW9uIHV4KG4sZSx0LG8pe18obyl8fChvPW5ldyBzKTtsZXQgYT1ieChuLGUpLHI9MDtmb3IobGV0IGk9MCxmPXQubGVuZ3RoO2k8ZjsrK2kpe2xldCBkPXRbaV0sYz1oeChuLGQsYSk7aWYoYzwwKXJldHVybjtyPU1hdGgubWF4KHIsYyl9cmV0dXJuIG14KGEscixvKX1mdW5jdGlvbiBseChuLGUsdCxvLGEscil7XyhyKXx8KHI9bmV3IHMpLG89bz8/MyxhPWE/P3MuWkVSTztsZXQgaT1ieChuLGUpLGY9MDtmb3IobGV0IGQ9MCxjPXQubGVuZ3RoO2Q8YztkKz1vKXtvbS54PXRbZF0rYS54LG9tLnk9dFtkKzFdK2EueSxvbS56PXRbZCsyXSthLno7bGV0IHU9aHgobixvbSxpKTtpZih1PDApcmV0dXJuO2Y9TWF0aC5tYXgoZix1KX1yZXR1cm4gbXgoaSxmLHIpfWZ1bmN0aW9uIHZfKG4sZSx0KXtsZXQgbz1lLGE9dCxyPXMuc3VidHJhY3QobixvLHN4KSxpPS1zLmRvdChyLG8pO3JldHVybiEoYTwwP2k+MDppPmEmJmkqaS9zLm1hZ25pdHVkZVNxdWFyZWQocik+YSl9ZnVuY3Rpb24gaHgobixlLHQpe2xldCBvPW4udHJhbnNmb3JtUG9zaXRpb25Ub1NjYWxlZFNwYWNlKGUsTGopLGE9cy5tYWduaXR1ZGVTcXVhcmVkKG8pLHI9TWF0aC5zcXJ0KGEpLGk9cy5kaXZpZGVCeVNjYWxhcihvLHIsemopO2E9TWF0aC5tYXgoMSxhKSxyPU1hdGgubWF4KDEscik7bGV0IGY9cy5kb3QoaSx0KSxkPXMubWFnbml0dWRlKHMuY3Jvc3MoaSx0LGkpKSxjPTEvcix1PU1hdGguc3FydChhLTEpKmM7cmV0dXJuIDEvKGYqYy1kKnUpfWZ1bmN0aW9uIG14KG4sZSx0KXtpZighKGU8PTB8fGU9PT0xLzB8fGUhPT1lKSlyZXR1cm4gcy5tdWx0aXBseUJ5U2NhbGFyKG4sZSx0KX1mdW5jdGlvbiBieChuLGUpe3JldHVybiBzLmVxdWFscyhlLHMuWkVSTyk/ZToobi50cmFuc2Zvcm1Qb3NpdGlvblRvU2NhbGVkU3BhY2UoZSxrXykscy5ub3JtYWxpemUoa18sa18pKX12YXIgc3gsQmosZngsamosVWosb20sTGosemosa18sQXIsR3M9WCgoKT0+e0V0KCk7TWUoKTtzZSgpO1ZlKCk7aG4oKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyh5ci5wcm90b3R5cGUse2VsbGlwc29pZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsbGlwc29pZH19LGNhbWVyYVBvc2l0aW9uOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FtZXJhUG9zaXRpb259LHNldDpmdW5jdGlvbihuKXtsZXQgdD10aGlzLl9lbGxpcHNvaWQudHJhbnNmb3JtUG9zaXRpb25Ub1NjYWxlZFNwYWNlKG4sdGhpcy5fY2FtZXJhUG9zaXRpb25JblNjYWxlZFNwYWNlKSxvPXMubWFnbml0dWRlU3F1YXJlZCh0KS0xO3MuY2xvbmUobix0aGlzLl9jYW1lcmFQb3NpdGlvbiksdGhpcy5fY2FtZXJhUG9zaXRpb25JblNjYWxlZFNwYWNlPXQsdGhpcy5fZGlzdGFuY2VUb0xpbWJJblNjYWxlZFNwYWNlU3F1YXJlZD1vfX19KTtzeD1uZXcgczt5ci5wcm90b3R5cGUuaXNQb2ludFZpc2libGU9ZnVuY3Rpb24obil7bGV0IHQ9dGhpcy5fZWxsaXBzb2lkLnRyYW5zZm9ybVBvc2l0aW9uVG9TY2FsZWRTcGFjZShuLHN4KTtyZXR1cm4gdl8odCx0aGlzLl9jYW1lcmFQb3NpdGlvbkluU2NhbGVkU3BhY2UsdGhpcy5fZGlzdGFuY2VUb0xpbWJJblNjYWxlZFNwYWNlU3F1YXJlZCl9O3lyLnByb3RvdHlwZS5pc1NjYWxlZFNwYWNlUG9pbnRWaXNpYmxlPWZ1bmN0aW9uKG4pe3JldHVybiB2XyhuLHRoaXMuX2NhbWVyYVBvc2l0aW9uSW5TY2FsZWRTcGFjZSx0aGlzLl9kaXN0YW5jZVRvTGltYkluU2NhbGVkU3BhY2VTcXVhcmVkKX07Qmo9bmV3IHM7eXIucHJvdG90eXBlLmlzU2NhbGVkU3BhY2VQb2ludFZpc2libGVQb3NzaWJseVVuZGVyRWxsaXBzb2lkPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9dGhpcy5fZWxsaXBzb2lkLG8sYTtyZXR1cm4gXyhlKSYmZTwwJiZ0Lm1pbmltdW1SYWRpdXM+LWU/KGE9QmosYS54PXRoaXMuX2NhbWVyYVBvc2l0aW9uLngvKHQucmFkaWkueCtlKSxhLnk9dGhpcy5fY2FtZXJhUG9zaXRpb24ueS8odC5yYWRpaS55K2UpLGEuej10aGlzLl9jYW1lcmFQb3NpdGlvbi56Lyh0LnJhZGlpLnorZSksbz1hLngqYS54K2EueSphLnkrYS56KmEuei0xKTooYT10aGlzLl9jYW1lcmFQb3NpdGlvbkluU2NhbGVkU3BhY2Usbz10aGlzLl9kaXN0YW5jZVRvTGltYkluU2NhbGVkU3BhY2VTcXVhcmVkKSx2XyhuLGEsbyl9O3lyLnByb3RvdHlwZS5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludD1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIHV4KHRoaXMuX2VsbGlwc29pZCxuLGUsdCl9O2Z4PUsuY2xvbmUoSy5VTklUX1NQSEVSRSk7eXIucHJvdG90eXBlLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50UG9zc2libHlVbmRlckVsbGlwc29pZD1mdW5jdGlvbihuLGUsdCxvKXtsZXQgYT1keCh0aGlzLl9lbGxpcHNvaWQsdCxmeCk7cmV0dXJuIHV4KGEsbixlLG8pfTt5ci5wcm90b3R5cGUuY29tcHV0ZUhvcml6b25DdWxsaW5nUG9pbnRGcm9tVmVydGljZXM9ZnVuY3Rpb24obixlLHQsbyxhKXtyZXR1cm4gbHgodGhpcy5fZWxsaXBzb2lkLG4sZSx0LG8sYSl9O3lyLnByb3RvdHlwZS5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludEZyb21WZXJ0aWNlc1Bvc3NpYmx5VW5kZXJFbGxpcHNvaWQ9ZnVuY3Rpb24obixlLHQsbyxhLHIpe2xldCBpPWR4KHRoaXMuX2VsbGlwc29pZCxhLGZ4KTtyZXR1cm4gbHgoaSxuLGUsdCxvLHIpfTtqaj1bXTt5ci5wcm90b3R5cGUuY29tcHV0ZUhvcml6b25DdWxsaW5nUG9pbnRGcm9tUmVjdGFuZ2xlPWZ1bmN0aW9uKG4sZSx0KXtsZXQgbz14ZS5zdWJzYW1wbGUobixlLDAsamopLGE9Z2UuZnJvbVBvaW50cyhvKTtpZighKHMubWFnbml0dWRlKGEuY2VudGVyKTwuMSplLm1pbmltdW1SYWRpdXMpKXJldHVybiB0aGlzLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50KGEuY2VudGVyLG8sdCl9O1VqPW5ldyBzO29tPW5ldyBzO0xqPW5ldyBzLHpqPW5ldyBzO2tfPW5ldyBzO0FyPXlyfSk7dmFyIGFtLEdqLE9jLEZfPVgoKCk9PntNZSgpO2d0KCk7c2UoKTthbT17fTthbS5nZXRIZWlnaHQ9ZnVuY3Rpb24obixlLHQpe3JldHVybihuLXQpKmUrdH07R2o9bmV3IHJlO2FtLmdldFBvc2l0aW9uPWZ1bmN0aW9uKG4sZSx0LG8sYSl7bGV0IHI9ZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhuLEdqKTtpZighXyhyKSlyZXR1cm4gcy5jbG9uZShuLGEpO2xldCBpPWFtLmdldEhlaWdodChyLmhlaWdodCx0LG8pO3JldHVybiBzLmZyb21SYWRpYW5zKHIubG9uZ2l0dWRlLHIubGF0aXR1ZGUsaSxlLGEpfTtPYz1hbX0pO3ZhciBweCxQYSxneD1YKCgpPT57cHg9e05PTkU6MCxCSVRTMTI6MX07T2JqZWN0LmZyZWV6ZShweCk7UGE9cHh9KTtmdW5jdGlvbiBUbyhuLGUsdCxvLGEscixpLGYsZCxjKXtsZXQgdT1QYS5OT05FLGwsaDtpZihfKGUpJiZfKHQpJiZfKG8pJiZfKGEpKXtsZXQgbT1lLm1pbmltdW0sYj1lLm1heGltdW0scD1zLnN1YnRyYWN0KGIsbSxWaikseT1vLXQ7TWF0aC5tYXgocy5tYXhpbXVtQ29tcG9uZW50KHApLHkpPHFqLTE/dT1QYS5CSVRTMTI6dT1QYS5OT05FO2xldCBnPSQuZnJvbVNjYWxlKHAsSGopO2c9JC5zZXRUcmFuc2xhdGlvbihnLG0sZyk7bGV0IEE9JC5mcm9tU2NhbGUocy5mcm9tRWxlbWVudHMoMS9wLngsMS9wLnksMS9wLnosd2QpLEtqKTtBPSQubXVsdGlwbHlCeVRyYW5zbGF0aW9uKEEscy5uZWdhdGUobSx3ZCksQSksaD0kLmNsb25lKGEsbmV3ICQpO2xldCBUPSQuZ2V0VHJhbnNsYXRpb24oYSx3ZCk7VD1zLnN1YnRyYWN0KFQsbix3ZCksaD0kLnNldFRyYW5zbGF0aW9uKGgsVCxoKSxoPSQubXVsdGlwbHkoaCxnLGgpLGw9JC5pbnZlcnNlVHJhbnNmb3JtYXRpb24oYSxuZXcgJCksbD0kLm11bHRpcGx5KEEsbCxsKSxhPSQubXVsdGlwbHkoYSxnLG5ldyAkKX10aGlzLnF1YW50aXphdGlvbj11LHRoaXMubWluaW11bUhlaWdodD10LHRoaXMubWF4aW11bUhlaWdodD1vLHRoaXMuY2VudGVyPXMuY2xvbmUobiksdGhpcy50b1NjYWxlZEVOVT1sLHRoaXMuZnJvbVNjYWxlZEVOVT1hLHRoaXMubWF0cml4PWgsdGhpcy5oYXNWZXJ0ZXhOb3JtYWxzPXI/PyExLHRoaXMuaGFzV2ViTWVyY2F0b3JUPWk/PyExLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscz1mPz8hMSx0aGlzLmV4YWdnZXJhdGlvbj1kPz8xLHRoaXMuZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQ9Yz8/MCx0aGlzLnN0cmlkZT0wLHRoaXMuX29mZnNldEdlb2RldGljU3VyZmFjZU5vcm1hbD0wLHRoaXMuX29mZnNldFZlcnRleE5vcm1hbD0wLHRoaXMuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHMoKX12YXIgd2QsVmosa2EsSGosS2oscWosV2osX3gscm0saW0sbmEsVnM9WCgoKT0+e0JyKCk7dnQoKTtNZSgpO0N0KCk7c2UoKTtVZSgpO3VuKCk7Rl8oKTtneCgpO3dkPW5ldyBzLFZqPW5ldyBzLGthPW5ldyBZLEhqPW5ldyAkLEtqPW5ldyAkLHFqPU1hdGgucG93KDIsMTIpO1RvLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24obixlLHQsbyxhLHIsaSxmKXtsZXQgZD1vLngsYz1vLnk7aWYodGhpcy5xdWFudGl6YXRpb249PT1QYS5CSVRTMTIpe3Q9JC5tdWx0aXBseUJ5UG9pbnQodGhpcy50b1NjYWxlZEVOVSx0LHdkKSx0Lng9ay5jbGFtcCh0LngsMCwxKSx0Lnk9ay5jbGFtcCh0LnksMCwxKSx0Lno9ay5jbGFtcCh0LnosMCwxKTtsZXQgdT10aGlzLm1heGltdW1IZWlnaHQtdGhpcy5taW5pbXVtSGVpZ2h0LGw9ay5jbGFtcCgoYS10aGlzLm1pbmltdW1IZWlnaHQpL3UsMCwxKTtZLmZyb21FbGVtZW50cyh0LngsdC55LGthKTtsZXQgaD1VdC5jb21wcmVzc1RleHR1cmVDb29yZGluYXRlcyhrYSk7WS5mcm9tRWxlbWVudHModC56LGwsa2EpO2xldCBtPVV0LmNvbXByZXNzVGV4dHVyZUNvb3JkaW5hdGVzKGthKTtZLmZyb21FbGVtZW50cyhkLGMsa2EpO2xldCBiPVV0LmNvbXByZXNzVGV4dHVyZUNvb3JkaW5hdGVzKGthKTtpZihuW2UrK109aCxuW2UrK109bSxuW2UrK109Yix0aGlzLmhhc1dlYk1lcmNhdG9yVCl7WS5mcm9tRWxlbWVudHMoaSwwLGthKTtsZXQgcD1VdC5jb21wcmVzc1RleHR1cmVDb29yZGluYXRlcyhrYSk7bltlKytdPXB9fWVsc2UgbltlKytdPXQueC10aGlzLmNlbnRlci54LG5bZSsrXT10LnktdGhpcy5jZW50ZXIueSxuW2UrK109dC56LXRoaXMuY2VudGVyLnosbltlKytdPWEsbltlKytdPWQsbltlKytdPWMsdGhpcy5oYXNXZWJNZXJjYXRvclQmJihuW2UrK109aSk7cmV0dXJuIHRoaXMuaGFzVmVydGV4Tm9ybWFscyYmKG5bZSsrXT1VdC5vY3RQYWNrRmxvYXQocikpLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyYmKG5bZSsrXT1mLngsbltlKytdPWYueSxuW2UrK109Zi56KSxlfTtXaj1uZXcgcyxfeD1uZXcgcztUby5wcm90b3R5cGUuYWRkR2VvZGV0aWNTdXJmYWNlTm9ybWFscz1mdW5jdGlvbihuLGUsdCl7aWYodGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzKXJldHVybjtsZXQgbz10aGlzLnN0cmlkZSxhPW4ubGVuZ3RoL287dGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzPSEwLHRoaXMuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHMoKTtsZXQgcj10aGlzLnN0cmlkZTtmb3IobGV0IGk9MDtpPGE7aSsrKXtmb3IobGV0IHU9MDt1PG87dSsrKXtsZXQgbD1pKm8rdSxoPWkqcit1O2VbaF09bltsXX1sZXQgZj10aGlzLmRlY29kZVBvc2l0aW9uKGUsaSxXaiksZD10Lmdlb2RldGljU3VyZmFjZU5vcm1hbChmLF94KSxjPWkqcit0aGlzLl9vZmZzZXRHZW9kZXRpY1N1cmZhY2VOb3JtYWw7ZVtjXT1kLngsZVtjKzFdPWQueSxlW2MrMl09ZC56fX07VG8ucHJvdG90eXBlLnJlbW92ZUdlb2RldGljU3VyZmFjZU5vcm1hbHM9ZnVuY3Rpb24obixlKXtpZighdGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzKXJldHVybjtsZXQgdD10aGlzLnN0cmlkZSxvPW4ubGVuZ3RoL3Q7dGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzPSExLHRoaXMuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHMoKTtsZXQgYT10aGlzLnN0cmlkZTtmb3IobGV0IHI9MDtyPG87cisrKWZvcihsZXQgaT0wO2k8YTtpKyspe2xldCBmPXIqdCtpLGQ9ciphK2k7ZVtkXT1uW2ZdfX07VG8ucHJvdG90eXBlLmRlY29kZVBvc2l0aW9uPWZ1bmN0aW9uKG4sZSx0KXtpZihfKHQpfHwodD1uZXcgcyksZSo9dGhpcy5zdHJpZGUsdGhpcy5xdWFudGl6YXRpb249PT1QYS5CSVRTMTIpe2xldCBvPVV0LmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXMobltlXSxrYSk7dC54PW8ueCx0Lnk9by55O2xldCBhPVV0LmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXMobltlKzFdLGthKTtyZXR1cm4gdC56PWEueCwkLm11bHRpcGx5QnlQb2ludCh0aGlzLmZyb21TY2FsZWRFTlUsdCx0KX1yZXR1cm4gdC54PW5bZV0sdC55PW5bZSsxXSx0Lno9bltlKzJdLHMuYWRkKHQsdGhpcy5jZW50ZXIsdCl9O1RvLnByb3RvdHlwZS5nZXRFeGFnZ2VyYXRlZFBvc2l0aW9uPWZ1bmN0aW9uKG4sZSx0KXt0PXRoaXMuZGVjb2RlUG9zaXRpb24obixlLHQpO2xldCBvPXRoaXMuZXhhZ2dlcmF0aW9uLGE9dGhpcy5leGFnZ2VyYXRpb25SZWxhdGl2ZUhlaWdodDtpZihvIT09MSYmdGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzKXtsZXQgaT10aGlzLmRlY29kZUdlb2RldGljU3VyZmFjZU5vcm1hbChuLGUsX3gpLGY9dGhpcy5kZWNvZGVIZWlnaHQobixlKSxkPU9jLmdldEhlaWdodChmLG8sYSktZjt0LngrPWkueCpkLHQueSs9aS55KmQsdC56Kz1pLnoqZH1yZXR1cm4gdH07VG8ucHJvdG90eXBlLmRlY29kZVRleHR1cmVDb29yZGluYXRlcz1mdW5jdGlvbihuLGUsdCl7cmV0dXJuIF8odCl8fCh0PW5ldyBZKSxlKj10aGlzLnN0cmlkZSx0aGlzLnF1YW50aXphdGlvbj09PVBhLkJJVFMxMj9VdC5kZWNvbXByZXNzVGV4dHVyZUNvb3JkaW5hdGVzKG5bZSsyXSx0KTpZLmZyb21FbGVtZW50cyhuW2UrNF0sbltlKzVdLHQpfTtUby5wcm90b3R5cGUuZGVjb2RlSGVpZ2h0PWZ1bmN0aW9uKG4sZSl7cmV0dXJuIGUqPXRoaXMuc3RyaWRlLHRoaXMucXVhbnRpemF0aW9uPT09UGEuQklUUzEyP1V0LmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXMobltlKzFdLGthKS55Kih0aGlzLm1heGltdW1IZWlnaHQtdGhpcy5taW5pbXVtSGVpZ2h0KSt0aGlzLm1pbmltdW1IZWlnaHQ6bltlKzNdfTtUby5wcm90b3R5cGUuZGVjb2RlV2ViTWVyY2F0b3JUPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIGUqPXRoaXMuc3RyaWRlLHRoaXMucXVhbnRpemF0aW9uPT09UGEuQklUUzEyP1V0LmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXMobltlKzNdLGthKS54Om5bZSs2XX07VG8ucHJvdG90eXBlLmdldE9jdEVuY29kZWROb3JtYWw9ZnVuY3Rpb24obixlLHQpe2U9ZSp0aGlzLnN0cmlkZSt0aGlzLl9vZmZzZXRWZXJ0ZXhOb3JtYWw7bGV0IG89bltlXS8yNTYsYT1NYXRoLmZsb29yKG8pLHI9KG8tYSkqMjU2O3JldHVybiBZLmZyb21FbGVtZW50cyhhLHIsdCl9O1RvLnByb3RvdHlwZS5kZWNvZGVOb3JtYWw9ZnVuY3Rpb24obixlLHQpe2xldCBvPWU9ZSp0aGlzLnN0cmlkZSt0aGlzLl9vZmZzZXRWZXJ0ZXhOb3JtYWw7cmV0dXJuIFV0Lm9jdERlY29kZUZsb2F0KG5bb10sdCl9O1RvLnByb3RvdHlwZS5kZWNvZGVHZW9kZXRpY1N1cmZhY2VOb3JtYWw9ZnVuY3Rpb24obixlLHQpe3JldHVybiBlPWUqdGhpcy5zdHJpZGUrdGhpcy5fb2Zmc2V0R2VvZGV0aWNTdXJmYWNlTm9ybWFsLHQueD1uW2VdLHQueT1uW2UrMV0sdC56PW5bZSsyXSx0fTtUby5wcm90b3R5cGUuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHM9ZnVuY3Rpb24oKXtsZXQgbj0wO3RoaXMucXVhbnRpemF0aW9uPT09UGEuQklUUzEyP24rPTM6bis9Nix0aGlzLmhhc1dlYk1lcmNhdG9yVCYmKG4rPTEpLHRoaXMuaGFzVmVydGV4Tm9ybWFscyYmKHRoaXMuX29mZnNldFZlcnRleE5vcm1hbD1uLG4rPTEpLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyYmKHRoaXMuX29mZnNldEdlb2RldGljU3VyZmFjZU5vcm1hbD1uLG4rPTMpLHRoaXMuc3RyaWRlPW59O3JtPXtwb3NpdGlvbjNEQW5kSGVpZ2h0OjAsdGV4dHVyZUNvb3JkQW5kRW5jb2RlZE5vcm1hbHM6MSxnZW9kZXRpY1N1cmZhY2VOb3JtYWw6Mn0saW09e2NvbXByZXNzZWQwOjAsY29tcHJlc3NlZDE6MSxnZW9kZXRpY1N1cmZhY2VOb3JtYWw6Mn07VG8ucHJvdG90eXBlLmdldEF0dHJpYnV0ZXM9ZnVuY3Rpb24obil7bGV0IGU9b2UuRkxPQVQsdD1vZS5nZXRTaXplSW5CeXRlcyhlKSxvPXRoaXMuc3RyaWRlKnQsYT0wLHI9W107ZnVuY3Rpb24gaShmLGQpe3IucHVzaCh7aW5kZXg6Zix2ZXJ0ZXhCdWZmZXI6bixjb21wb25lbnREYXRhdHlwZTplLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6ZCxvZmZzZXRJbkJ5dGVzOmEsc3RyaWRlSW5CeXRlczpvfSksYSs9ZCp0fWlmKHRoaXMucXVhbnRpemF0aW9uPT09UGEuTk9ORSl7aShybS5wb3NpdGlvbjNEQW5kSGVpZ2h0LDQpO2xldCBmPTI7Zis9dGhpcy5oYXNXZWJNZXJjYXRvclQ/MTowLGYrPXRoaXMuaGFzVmVydGV4Tm9ybWFscz8xOjAsaShybS50ZXh0dXJlQ29vcmRBbmRFbmNvZGVkTm9ybWFscyxmKSx0aGlzLmhhc0dlb2RldGljU3VyZmFjZU5vcm1hbHMmJmkocm0uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsLDMpfWVsc2V7bGV0IGY9dGhpcy5oYXNXZWJNZXJjYXRvclR8fHRoaXMuaGFzVmVydGV4Tm9ybWFscyxkPXRoaXMuaGFzV2ViTWVyY2F0b3JUJiZ0aGlzLmhhc1ZlcnRleE5vcm1hbHM7aShpbS5jb21wcmVzc2VkMCxmPzQ6MyksZCYmaShpbS5jb21wcmVzc2VkMSwxKSx0aGlzLmhhc0dlb2RldGljU3VyZmFjZU5vcm1hbHMmJmkoaW0uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsLDMpfXJldHVybiByfTtUby5wcm90b3R5cGUuZ2V0QXR0cmlidXRlTG9jYXRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVhbnRpemF0aW9uPT09UGEuTk9ORT9ybTppbX07VG8uY2xvbmU9ZnVuY3Rpb24obixlKXtpZihfKG4pKXJldHVybiBfKGUpfHwoZT1uZXcgVG8pLGUucXVhbnRpemF0aW9uPW4ucXVhbnRpemF0aW9uLGUubWluaW11bUhlaWdodD1uLm1pbmltdW1IZWlnaHQsZS5tYXhpbXVtSGVpZ2h0PW4ubWF4aW11bUhlaWdodCxlLmNlbnRlcj1zLmNsb25lKG4uY2VudGVyKSxlLnRvU2NhbGVkRU5VPSQuY2xvbmUobi50b1NjYWxlZEVOVSksZS5mcm9tU2NhbGVkRU5VPSQuY2xvbmUobi5mcm9tU2NhbGVkRU5VKSxlLm1hdHJpeD0kLmNsb25lKG4ubWF0cml4KSxlLmhhc1ZlcnRleE5vcm1hbHM9bi5oYXNWZXJ0ZXhOb3JtYWxzLGUuaGFzV2ViTWVyY2F0b3JUPW4uaGFzV2ViTWVyY2F0b3JULGUuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscz1uLmhhc0dlb2RldGljU3VyZmFjZU5vcm1hbHMsZS5leGFnZ2VyYXRpb249bi5leGFnZ2VyYXRpb24sZS5leGFnZ2VyYXRpb25SZWxhdGl2ZUhlaWdodD1uLmV4YWdnZXJhdGlvblJlbGF0aXZlSGVpZ2h0LGUuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHMoKSxlfTtuYT1Ub30pO3ZhciBUZCxjbSxEXz1YKCgpPT57VGQ9e01PUlBISU5HOjAsQ09MVU1CVVNfVklFVzoxLFNDRU5FMkQ6MixTQ0VORTNEOjN9O1RkLmdldE1vcnBoVGltZT1mdW5jdGlvbihuKXtyZXR1cm4gbj09PVRkLlNDRU5FM0Q/MTpuPT09VGQuTU9SUEhJTkc/dm9pZCAwOjB9O09iamVjdC5mcmVlemUoVGQpO2NtPVRkfSk7ZnVuY3Rpb24gWGooKXtyZXR1cm4hMH1mdW5jdGlvbiBZaihuLGUpe2U9ZT8/IlRoaXMgb2JqZWN0IHdhcyBkZXN0cm95ZWQsIGkuZS4sIGRlc3Ryb3koKSB3YXMgY2FsbGVkLiI7ZnVuY3Rpb24gdCgpe31mb3IobGV0IG8gaW4gbil0eXBlb2YgbltvXT09ImZ1bmN0aW9uIiYmKG5bb109dCk7bi5pc0Rlc3Ryb3llZD1Yan12YXIgeXgsQXg9WCgoKT0+e3l4PVlqfSk7ZnVuY3Rpb24gVHgoKXtpZighXyhiby5fY2FuVHJhbnNmZXJBcnJheUJ1ZmZlcikpe2xldCBuPVVfKCJ0cmFuc2ZlclR5cGVkQXJyYXlUZXN0Iik7bi5wb3N0TWVzc2FnZT1uLndlYmtpdFBvc3RNZXNzYWdlPz9uLnBvc3RNZXNzYWdlO2xldCBlPTk5LHQ9bmV3IEludDhBcnJheShbZV0pO3RyeXtuLnBvc3RNZXNzYWdlKHthcnJheTp0fSxbdC5idWZmZXJdKX1jYXRjaHtyZXR1cm4gYm8uX2NhblRyYW5zZmVyQXJyYXlCdWZmZXI9ITEsYm8uX2NhblRyYW5zZmVyQXJyYXlCdWZmZXJ9Ym8uX2NhblRyYW5zZmVyQXJyYXlCdWZmZXI9bmV3IFByb21pc2Uobz0+e24ub25tZXNzYWdlPWZ1bmN0aW9uKGEpe2xldCByPWEuZGF0YS5hcnJheSxpPV8ocikmJnJbMF09PT1lO28oaSksbi50ZXJtaW5hdGUoKSxiby5fY2FuVHJhbnNmZXJBcnJheUJ1ZmZlcj1pfX0pfXJldHVybiBiby5fY2FuVHJhbnNmZXJBcnJheUJ1ZmZlcn1mdW5jdGlvbiBCXyhuKXtsZXQgZTt0cnl7ZT1uZXcgQmxvYihbbl0se3R5cGU6ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifSl9Y2F0Y2h7bGV0IGE9d2luZG93LkJsb2JCdWlsZGVyfHx3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXJ8fHdpbmRvdy5Nb3pCbG9iQnVpbGRlcnx8d2luZG93Lk1TQmxvYkJ1aWxkZXIscj1uZXcgYTtyLmFwcGVuZChuKSxlPXIuZ2V0QmxvYigiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpfXJldHVybih3aW5kb3cuVVJMfHx3aW5kb3cud2Via2l0VVJMKS5jcmVhdGVPYmplY3RVUkwoZSl9ZnVuY3Rpb24gVV8obil7bGV0IGU9bmV3IHd4LmRlZmF1bHQobiksdD1lLnNjaGVtZSgpLmxlbmd0aCE9PTAmJmUuZnJhZ21lbnQoKS5sZW5ndGg9PT0wLG89bi5yZXBsYWNlKC9cLmpzJC8sIiIpLGE9e30scixpO2lmKEVmKG4pKWk9bjtlbHNlIGlmKCF0KXtsZXQgZj1vcihgJHtiby5fd29ya2VyTW9kdWxlUHJlZml4fS8ke299LmpzYCk7RWYoZikmJihpPWYpfWlmKGkpe2xldCBmPWBpbXBvcnQgIiR7aX0iO2A7cmV0dXJuIHI9Ql8oZiksYS50eXBlPSJtb2R1bGUiLG5ldyBXb3JrZXIocixhKX1pZighdCYmdHlwZW9mIENFU0lVTV9XT1JLRVJTPCJ1Iil7bGV0IGY9YAogICAgICBpbXBvcnRTY3JpcHRzKCIke0JfKENFU0lVTV9XT1JLRVJTKX0iKTsKICAgICAgQ2VzaXVtV29ya2Vyc1siJHtvfSJdKCk7CiAgICBgO3JldHVybiByPUJfKGYpLG5ldyBXb3JrZXIocixhKX1pZihyPW4sdHx8KHI9b3IoYCR7Ym8uX3dvcmtlck1vZHVsZVByZWZpeCtvfS5qc2ApKSwhYXIuc3VwcG9ydHNFc21XZWJXb3JrZXJzKCkpdGhyb3cgbmV3IG50KCJUaGlzIGJyb3dzZXIgaXMgbm90IHN1cHBvcnRlZC4gUGxlYXNlIHVwZGF0ZSB5b3VyIGJyb3dzZXIgdG8gY29udGludWUuIik7cmV0dXJuIGEudHlwZT0ibW9kdWxlIixuZXcgV29ya2VyKHIsYSl9YXN5bmMgZnVuY3Rpb24gSmoobixlKXtsZXQgdD17bW9kdWxlUGF0aDp2b2lkIDAsd2FzbUJpbmFyeUZpbGU6dm9pZCAwLHdhc21CaW5hcnk6dm9pZCAwfTtpZighYXIuc3VwcG9ydHNXZWJBc3NlbWJseSgpKXtpZighXyhlLmZhbGxiYWNrTW9kdWxlUGF0aCkpdGhyb3cgbmV3IG50KGBUaGlzIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWIgQXNzZW1ibHksIGFuZCBubyBiYWNrdXAgbW9kdWxlIHdhcyBwcm92aWRlZCBmb3IgJHtuLl93b3JrZXJQYXRofWApO3JldHVybiB0Lm1vZHVsZVBhdGg9b3IoZS5mYWxsYmFja01vZHVsZVBhdGgpLHR9dC53YXNtQmluYXJ5RmlsZT1vcihlLndhc21CaW5hcnlGaWxlKTtsZXQgbz1hd2FpdCB5YS5mZXRjaEFycmF5QnVmZmVyKHt1cmw6dC53YXNtQmluYXJ5RmlsZX0pO3JldHVybiB0Lndhc21CaW5hcnk9byx0fWZ1bmN0aW9uIGJvKG4sZSl7dGhpcy5fd29ya2VyUGF0aD1uLHRoaXMuX21heGltdW1BY3RpdmVUYXNrcz1lPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdGhpcy5fYWN0aXZlVGFza3M9MCx0aGlzLl9uZXh0SUQ9MCx0aGlzLl93ZWJBc3NlbWJseVByb21pc2U9dm9pZCAwfWFzeW5jIGZ1bmN0aW9uICRqKG4sZSx0KXtsZXQgbz1hd2FpdCBQcm9taXNlLnJlc29sdmUoVHgoKSk7Xyh0KT9vfHwodC5sZW5ndGg9MCk6dD1RajtsZXQgYT1uLl9uZXh0SUQrKyxyPW5ldyBQcm9taXNlKChpLGYpPT57bi5fd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLFpqKG4uX3dvcmtlcixhLGksZikpfSk7cmV0dXJuIG4uX3dvcmtlci5wb3N0TWVzc2FnZSh7aWQ6YSxiYXNlVXJsOm9yLmdldENlc2l1bUJhc2VVcmwoKS51cmwscGFyYW1ldGVyczplLGNhblRyYW5zZmVyQXJyYXlCdWZmZXI6b30sdCkscn1hc3luYyBmdW5jdGlvbiBlVShuLGUsdCl7KytuLl9hY3RpdmVUYXNrczt0cnl7bGV0IG89YXdhaXQgJGoobixlLHQpO3JldHVybi0tbi5fYWN0aXZlVGFza3Msb31jYXRjaChvKXt0aHJvdy0tbi5fYWN0aXZlVGFza3Msb319dmFyIHd4LGpfLFpqLFFqLEV4LFJ4PVgoKCk9Pnt3eD1oYShkaSgpLDEpO0lsKCk7c2UoKTtBeCgpO0ppKCk7eWIoKTtHbCgpO2JiKCk7bnMoKTtwYSgpO2pfPW5ldyBUbDtaaj0obixlLHQsbyk9PntsZXQgYT0oe2RhdGE6cn0pPT57aWYoci5pZD09PWUpe2lmKF8oci5lcnJvcikpe2xldCBpPXIuZXJyb3I7aS5uYW1lPT09IlJ1bnRpbWVFcnJvciI/KGk9bmV3IG50KHIuZXJyb3IubWVzc2FnZSksaS5zdGFjaz1yLmVycm9yLnN0YWNrKTppLm5hbWU9PT0iRGV2ZWxvcGVyRXJyb3IiPyhpPW5ldyBWdChyLmVycm9yLm1lc3NhZ2UpLGkuc3RhY2s9ci5lcnJvci5zdGFjayk6aS5uYW1lPT09IkVycm9yIiYmKGk9bmV3IEVycm9yKHIuZXJyb3IubWVzc2FnZSksaS5zdGFjaz1yLmVycm9yLnN0YWNrKSxqXy5yYWlzZUV2ZW50KGkpLG8oaSl9ZWxzZSBqXy5yYWlzZUV2ZW50KCksdChyLnJlc3VsdCk7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixhKX19O3JldHVybiBhfSxRaj1bXTtiby5wcm90b3R5cGUuc2NoZWR1bGVUYXNrPWZ1bmN0aW9uKG4sZSl7aWYoXyh0aGlzLl93b3JrZXIpfHwodGhpcy5fd29ya2VyPVVfKHRoaXMuX3dvcmtlclBhdGgpKSwhKHRoaXMuX2FjdGl2ZVRhc2tzPj10aGlzLl9tYXhpbXVtQWN0aXZlVGFza3MpKXJldHVybiBlVSh0aGlzLG4sZSl9O2JvLnByb3RvdHlwZS5pbml0V2ViQXNzZW1ibHlNb2R1bGU9YXN5bmMgZnVuY3Rpb24obil7aWYoXyh0aGlzLl93ZWJBc3NlbWJseVByb21pc2UpKXJldHVybiB0aGlzLl93ZWJBc3NlbWJseVByb21pc2U7bGV0IGU9YXN5bmMoKT0+e2xldCB0PXRoaXMuX3dvcmtlcj1VXyh0aGlzLl93b3JrZXJQYXRoKSxvPWF3YWl0IEpqKHRoaXMsbiksYT1hd2FpdCBQcm9taXNlLnJlc29sdmUoVHgoKSkscixpPW8ud2FzbUJpbmFyeTtfKGkpJiZhJiYocj1baV0pO2xldCBmPW5ldyBQcm9taXNlKChkLGMpPT57dC5vbm1lc3NhZ2U9ZnVuY3Rpb24oe2RhdGE6dX0pe18odSk/ZCh1LnJlc3VsdCk6YyhuZXcgbnQoIkNvdWxkIG5vdCBjb25maWd1cmUgd2FzbSBtb2R1bGUiKSl9fSk7cmV0dXJuIHQucG9zdE1lc3NhZ2Uoe2NhblRyYW5zZmVyQXJyYXlCdWZmZXI6YSxwYXJhbWV0ZXJzOnt3ZWJBc3NlbWJseUNvbmZpZzpvfX0sciksZn07cmV0dXJuIHRoaXMuX3dlYkFzc2VtYmx5UHJvbWlzZT1lKCksdGhpcy5fd2ViQXNzZW1ibHlQcm9taXNlfTtiby5wcm90b3R5cGUuaXNEZXN0cm95ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX07Ym8ucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLl93b3JrZXIpJiZ0aGlzLl93b3JrZXIudGVybWluYXRlKCkseXgodGhpcyl9O2JvLnRhc2tDb21wbGV0ZWRFdmVudD1qXztiby5fZGVmYXVsdFdvcmtlck1vZHVsZVByZWZpeD0iV29ya2Vycy8iO2JvLl93b3JrZXJNb2R1bGVQcmVmaXg9Ym8uX2RlZmF1bHRXb3JrZXJNb2R1bGVQcmVmaXg7Ym8uX2NhblRyYW5zZmVyQXJyYXlCdWZmZXI9dm9pZCAwO0V4PWJvfSk7ZnVuY3Rpb24gR18obixlLHQpe3RoaXMuX3ZlcnRpY2VzPW4sdGhpcy5faW5kaWNlcz1lLHRoaXMuX2VuY29kaW5nPXQsdGhpcy5faW52ZXJzZVRyYW5zZm9ybT1uZXcgJCx0aGlzLl9uZWVkc1JlYnVpbGQ9ITAsdGhpcy5fcm9vdE5vZGU9bmV3IHpffWZ1bmN0aW9uIHpfKCl7dGhpcy54PTAsdGhpcy55PTAsdGhpcy5sZXZlbD0wLHRoaXMuYWFiYj14eCh0aGlzLngsdGhpcy55LHRoaXMubGV2ZWwpLHRoaXMuaW50ZXJzZWN0aW5nVHJpYW5nbGVzPW5ldyBVaW50MzJBcnJheSgwKSx0aGlzLmNoaWxkcmVuPVtdLHRoaXMuYnVpbGRpbmdDaGlsZHJlbj0hMX1mdW5jdGlvbiBhVShuLGUpeyQuaW52ZXJzZShlLG4uX2ludmVyc2VUcmFuc2Zvcm0pLG4uX25lZWRzUmVidWlsZD0hMTtsZXQgdD1uLl9pbmRpY2VzLmxlbmd0aC8zLG89bmV3IFVpbnQzMkFycmF5KHQpO2ZvcihsZXQgYT0wO2E8dDsrK2Epb1thXT1hO24uX3Jvb3ROb2RlLmludGVyc2VjdGluZ1RyaWFuZ2xlcz1vLG4uX3Jvb3ROb2RlLmNoaWxkcmVuLmxlbmd0aD0wfWZ1bmN0aW9uIHh4KG4sZSx0KXtsZXQgbz0xL01hdGgucG93KDIsdCksYT1zLmZyb21FbGVtZW50cyhuKm8tLjUsZSpvLS41LC0uNSxyVSkscj1zLmZyb21FbGVtZW50cygobisxKSpvLS41LChlKzEpKm8tLjUsLjUsaVUpO3JldHVybiByby5mcm9tQ29ybmVycyhhLHIpfWZ1bmN0aW9uIGNVKG4sZSx0LG8sYSl7cy5wYWNrKHRbMF0sbiw5KmEpLHMucGFjayh0WzFdLG4sOSphKzMpLHMucGFjayh0WzJdLG4sOSphKzYpLGVbYV09b31mdW5jdGlvbiBPeChuLGUsdCl7bGV0IG89UW4ucmF5QXhpc0FsaWduZWRCb3VuZGluZ0JveChlLG4uYWFiYixzVSk7aWYoIV8obykpcmV0dXJuO2lmKCFuLmNoaWxkcmVuLmxlbmd0aHx8bi5idWlsZGluZ0NoaWxkcmVuKXt0LnB1c2goe25vZGU6bixpbnRlcnZhbDpuZXcgX28oby5zdGFydCxvLnN0b3ApfSk7cmV0dXJufWZvcihsZXQgcj0wO3I8bi5jaGlsZHJlbi5sZW5ndGg7cisrKU94KG4uY2hpbGRyZW5bcl0sZSx0KX1mdW5jdGlvbiBmVShuLGUsdCxvLGEscil7bGV0IGk9ZS5zb3J0KGZ1bmN0aW9uKGQsYyl7cmV0dXJuIGQuaW50ZXJ2YWwuc3RhcnQtYy5pbnRlcnZhbC5zdGFydH0pLGY9TnVtYmVyLk1BWF9WQUxVRTtmb3IobGV0IGQ9MDtkPGkubGVuZ3RoO2QrKyl7bGV0IGM9aVtkXSx1PWRVKG4sdCxjLm5vZGUsbyxhLHIpO2lmKGY9TWF0aC5taW4odSxmKSxmIT09TnVtYmVyLk1BWF9WQUxVRSlicmVha31pZihmIT09TnVtYmVyLk1BWF9WQUxVRSlyZXR1cm4gY3IuZ2V0UG9pbnQodCxmKX1mdW5jdGlvbiBkVShuLGUsdCxvLGEscil7bGV0IGk9TnVtYmVyLk1BWF9WQUxVRSxmPW4uX2VuY29kaW5nLGQ9bi5faW5kaWNlcyxjPW4uX3ZlcnRpY2VzLHU9dC5pbnRlcnNlY3RpbmdUcmlhbmdsZXMubGVuZ3RoLGg9ISh0LmxldmVsPj10VSkmJiF0LmJ1aWxkaW5nQ2hpbGRyZW4sbSxiO2gmJihtPW5ldyBGbG9hdDY0QXJyYXkodSo5KSxiPW5ldyBVaW50MzJBcnJheSh1KSk7Zm9yKGxldCBwPTA7cDx1O3ArKyl7bGV0IHk9dC5pbnRlcnNlY3RpbmdUcmlhbmdsZXNbcF0sRT1MXyhmLGEscixlLGMsZFszKnldLHNtWzBdKSxnPUxfKGYsYSxyLGUsYyxkWzMqeSsxXSxzbVsxXSksQT1MXyhmLGEscixlLGMsZFszKnkrMl0sc21bMl0pLFQ9UW4ucmF5VHJpYW5nbGVQYXJhbWV0cmljKGUsRSxnLEEsbyk7XyhUKSYmVDxpJiZUPj0wJiYoaT1UKSxoJiZjVShtLGIsc20seSxwKX1pZihoKXtmb3IobGV0IHA9MDtwPDQ7cCsrKXQuYWRkQ2hpbGQocCk7bFUobi5faW52ZXJzZVRyYW5zZm9ybSx0LGIsbSl9cmV0dXJuIGl9ZnVuY3Rpb24gTF8obixlLHQsbyxhLHIsaSl7bGV0IGY9bi5nZXRFeGFnZ2VyYXRlZFBvc2l0aW9uKGEscixpKTtpZihlPT09Y20uU0NFTkUzRClyZXR1cm4gZjtsZXQgYz10LmVsbGlwc29pZC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhmLHVVKTtmPXQucHJvamVjdChjLGkpLGY9cy5mcm9tRWxlbWVudHMoZi56LGYueCxmLnksaSk7bGV0IHU9ay5UV09fUEkqdC5lbGxpcHNvaWQubWF4aW11bVJhZGl1cyxsPU1hdGgucm91bmQoKG8ub3JpZ2luLnktZi55KS91KTtyZXR1cm4gZi55Kz1sKnUsZn1hc3luYyBmdW5jdGlvbiBsVShuLGUsdCxvKXtlLmJ1aWxkaW5nQ2hpbGRyZW49ITA7bGV0IGE9bmV3IEZsb2F0NjRBcnJheSgxNik7JC5wYWNrKG4sYSwwKTtsZXQgcj1uZXcgRmxvYXQ2NEFycmF5KDI0KTtmb3IobGV0IHU9MDt1PDQ7dSsrKXMucGFjayhlLmNoaWxkcmVuW3VdLmFhYmIubWluaW11bSxyLHUqNikscy5wYWNrKGUuY2hpbGRyZW5bdV0uYWFiYi5tYXhpbXVtLHIsdSo2KzMpO2xldCBpPXthYWJiczpyLGludmVyc2VUcmFuc2Zvcm06YSx0cmlhbmdsZUluZGljZXM6dCx0cmlhbmdsZVBvc2l0aW9uczpvfSxmPVtyLmJ1ZmZlcixhLmJ1ZmZlcix0LmJ1ZmZlcixvLmJ1ZmZlcl0sZD1uVS5zY2hlZHVsZVRhc2soaSxmKTtpZighXyhkKSl7ZS5idWlsZGluZ0NoaWxkcmVuPSExO3JldHVybn0oYXdhaXQgZCkuaW50ZXJzZWN0aW5nVHJpYW5nbGVzQXJyYXlzLmZvckVhY2goKHUsbCk9PntfKGUuY2hpbGRyZW5bbF0pJiYoZS5jaGlsZHJlbltsXS5pbnRlcnNlY3RpbmdUcmlhbmdsZXM9bmV3IFVpbnQzMkFycmF5KHUpKX0pLGUuaW50ZXJzZWN0aW5nVHJpYW5nbGVzPW5ldyBVaW50MzJBcnJheSgwKSxlLmJ1aWxkaW5nQ2hpbGRyZW49ITF9dmFyIHRVLG5VLG9VLHNtLHJVLGlVLHNVLHVVLFN4LEN4PVgoKCk9Pnt5aSgpO01lKCk7c2UoKTtiaSgpO3VuKCk7RmYoKTtSeCgpO2d0KCk7RF8oKTtnZigpO1VlKCk7dFU9MztuVT1uZXcgRXgoImluY3JlbWVudGFsbHlCdWlsZFRlcnJhaW5QaWNrZXIiKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhHXy5wcm90b3R5cGUse25lZWRzUmVidWlsZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lZWRzUmVidWlsZH0sc2V0OmZ1bmN0aW9uKG4pe3RoaXMuX25lZWRzUmVidWlsZD1ufX19KTt6Xy5wcm90b3R5cGUuYWRkQ2hpbGQ9ZnVuY3Rpb24obil7bGV0IGU9bmV3IHpfO2UueD10aGlzLngqMisobiYxKSxlLnk9dGhpcy55KjIrKG4+PjEmMSksZS5sZXZlbD10aGlzLmxldmVsKzEsZS5hYWJiPXh4KGUueCxlLnksZS5sZXZlbCksdGhpcy5jaGlsZHJlbltuXT1lfTtvVT1uZXcgY3Isc209W25ldyBzLG5ldyBzLG5ldyBzXTtHXy5wcm90b3R5cGUucmF5SW50ZXJzZWN0PWZ1bmN0aW9uKG4sZSx0LG8sYSl7dGhpcy5fbmVlZHNSZWJ1aWxkJiZhVSh0aGlzLGUpO2xldCByPXRoaXMuX2ludmVyc2VUcmFuc2Zvcm0saT1vVTtpLm9yaWdpbj0kLm11bHRpcGx5QnlQb2ludChyLG4ub3JpZ2luLGkub3JpZ2luKSxpLmRpcmVjdGlvbj0kLm11bHRpcGx5QnlQb2ludEFzVmVjdG9yKHIsbi5kaXJlY3Rpb24saS5kaXJlY3Rpb24pO2xldCBmPVtdO3JldHVybiBPeCh0aGlzLl9yb290Tm9kZSxpLGYpLGZVKHRoaXMsZixuLHQsbyxhKX07clU9bmV3IHMsaVU9bmV3IHM7c1U9bmV3IF9vO3VVPW5ldyByZTtTeD1HX30pO2Z1bmN0aW9uIEVkKG4sZSx0LG8sYSxyLGksZixkLGMsdSxsLGgsbSxiLHAseSl7dGhpcy5jZW50ZXI9bix0aGlzLnZlcnRpY2VzPWUsdGhpcy5zdHJpZGU9dT8/Nix0aGlzLmluZGljZXM9dCx0aGlzLmluZGV4Q291bnRXaXRob3V0U2tpcnRzPW8sdGhpcy52ZXJ0ZXhDb3VudFdpdGhvdXRTa2lydHM9YSx0aGlzLm1pbmltdW1IZWlnaHQ9cix0aGlzLm1heGltdW1IZWlnaHQ9aSx0aGlzLnJlY3RhbmdsZT1mLHRoaXMuYm91bmRpbmdTcGhlcmUzRD1kLHRoaXMub2NjbHVkZWVQb2ludEluU2NhbGVkU3BhY2U9Yyx0aGlzLm9yaWVudGVkQm91bmRpbmdCb3g9bCx0aGlzLmVuY29kaW5nPWgsdGhpcy53ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aD1tLHRoaXMuc291dGhJbmRpY2VzRWFzdFRvV2VzdD1iLHRoaXMuZWFzdEluZGljZXNOb3J0aFRvU291dGg9cCx0aGlzLm5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q9eSx0aGlzLl90cmFuc2Zvcm09bmV3ICQsdGhpcy5fbGFzdFBpY2tTY2VuZU1vZGU9dm9pZCAwLHRoaXMuX3RlcnJhaW5QaWNrZXI9bmV3IFN4KGUsdCxoKX1mdW5jdGlvbiBoVShuLGUpe2xldCB0PW4uZW5jb2RpbmcuZXhhZ2dlcmF0aW9uLG89bi5lbmNvZGluZy5leGFnZ2VyYXRpb25SZWxhdGl2ZUhlaWdodCxhPU9jLmdldEhlaWdodChuLm1pbmltdW1IZWlnaHQsdCxvKSxyPU9jLmdldEhlaWdodChuLm1heGltdW1IZWlnaHQsdCxvKSxpPW1uLmZyb21SZWN0YW5nbGUobi5yZWN0YW5nbGUsYSxyLEsuZGVmYXVsdCxuLm9yaWVudGVkQm91bmRpbmdCb3gpO3JldHVybiBtbi5jb21wdXRlVHJhbnNmb3JtYXRpb24oaSxlKSwkLmdldFNjYWxlKGUsVl8pLno8PWsuRVBTSUxPTjE2JiYoVl8uej0xLCQuc2V0U2NhbGUoZSxWXyxlKSksZX1mdW5jdGlvbiBBVShuLGUsdCl7bGV0IG89bi5lbmNvZGluZy5leGFnZ2VyYXRpb24sYT1uLmVuY29kaW5nLmV4YWdnZXJhdGlvblJlbGF0aXZlSGVpZ2h0LHI9T2MuZ2V0SGVpZ2h0KG4ubWluaW11bUhlaWdodCxvLGEpLGk9T2MuZ2V0SGVpZ2h0KG4ubWF4aW11bUhlaWdodCxvLGEpLGY9ZS5wcm9qZWN0KHJlLmZyb21SYWRpYW5zKG4ucmVjdGFuZ2xlLndlc3Qsbi5yZWN0YW5nbGUuc291dGgsMCxwVSksbVUpLGQ9ZS5wcm9qZWN0KHJlLmZyb21SYWRpYW5zKG4ucmVjdGFuZ2xlLmVhc3Qsbi5yZWN0YW5nbGUubm9ydGgsMCxnVSksYlUpLGM9aS1yLHU9cy5mcm9tRWxlbWVudHMoZC54LWYueCxkLnktZi55LGM+MD9jOjEsX1UpLGw9cy5mcm9tRWxlbWVudHMoZi54K3UueCouNSxmLnkrdS55Ki41LHIrdS56Ki41LHlVKTtyZXR1cm4gJC5mcm9tVHJhbnNsYXRpb24obCx0KSwkLnNldFNjYWxlKHQsdSx0KSwkLm11bHRpcGx5KG9vLlNXSVpaTEVfM0RfVE9fMkRfTUFUUklYLHQsdCksdH12YXIgbVUsYlUscFUsZ1UsX1UseVUsVl8sSF8sTXg9WCgoKT0+e0RfKCk7TWUoKTtndCgpO3NlKCk7VmUoKTtVZSgpO3VuKCk7QWkoKTtDeCgpO3JyKCk7Rl8oKTtFZC5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIHRoaXMuX2xhc3RQaWNrU2NlbmVNb2RlPT09bj90aGlzLl90cmFuc2Zvcm06KHRoaXMuX3RlcnJhaW5QaWNrZXIubmVlZHNSZWJ1aWxkPSEwLCFfKG4pfHxuPT09Y20uU0NFTkUzRD9oVSh0aGlzLHRoaXMuX3RyYW5zZm9ybSk6QVUodGhpcyxlLHRoaXMuX3RyYW5zZm9ybSkpfTttVT1uZXcgcyxiVT1uZXcgcyxwVT1uZXcgcmUsZ1U9bmV3IHJlLF9VPW5ldyBzLHlVPW5ldyBzLFZfPW5ldyBzO0VkLnByb3RvdHlwZS5waWNrPWZ1bmN0aW9uKG4sZSx0LG8pe2xldCBhPXRoaXMuX3RlcnJhaW5QaWNrZXIucmF5SW50ZXJzZWN0KG4sdGhpcy5nZXRUcmFuc2Zvcm0odCxvKSxlLHQsbyk7cmV0dXJuIHRoaXMuX2xhc3RQaWNrU2NlbmVNb2RlPXQsYX07RWQucHJvdG90eXBlLnVwZGF0ZUV4YWdnZXJhdGlvbj1mdW5jdGlvbihuLGUpe3RoaXMuX3RlcnJhaW5QaWNrZXIuX3ZlcnRpY2VzPXRoaXMudmVydGljZXMsdGhpcy5fdGVycmFpblBpY2tlci5uZWVkc1JlYnVpbGQ9ITAsdGhpcy5fbGFzdFBpY2tTY2VuZU1vZGU9dm9pZCAwfTtFZC5wcm90b3R5cGUudXBkYXRlU2NlbmVNb2RlPWZ1bmN0aW9uKG4pe3RoaXMuX3RlcnJhaW5QaWNrZXIubmVlZHNSZWJ1aWxkPSEwLHRoaXMuX2xhc3RQaWNrU2NlbmVNb2RlPXZvaWQgMH07SF89RWR9KTtmdW5jdGlvbiBHbigpe1Z0LnRocm93SW5zdGFudGlhdGlvbkVycm9yKCl9ZnVuY3Rpb24ga3gobixlKXtsZXQgdD1uZXcgQXJyYXkoZSksbz1uZXcgQXJyYXkobiksYT1uZXcgQXJyYXkoZSkscj1uZXcgQXJyYXkobiksaTtmb3IoaT0wO2k8bjsrK2kpcltpXT1pLG9baV09biplLTEtaTtmb3IoaT0wO2k8ZTsrK2kpYVtpXT0oaSsxKSpuLTEsdFtpXT0oZS1pLTEpKm47cmV0dXJue3dlc3RJbmRpY2VzU291dGhUb05vcnRoOnQsc291dGhJbmRpY2VzRWFzdFRvV2VzdDpvLGVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoOmEsbm9ydGhJbmRpY2VzV2VzdFRvRWFzdDpyfX1mdW5jdGlvbiB2eChuLGUsdCxvKXtsZXQgYT0wO2ZvcihsZXQgcj0wO3I8ZS0xOysrcil7Zm9yKGxldCBpPTA7aTxuLTE7KytpKXtsZXQgZj1hLGQ9ZituLGM9ZCsxLHU9ZisxO3RbbysrXT1mLHRbbysrXT1kLHRbbysrXT11LHRbbysrXT11LHRbbysrXT1kLHRbbysrXT1jLCsrYX0rK2F9fWZ1bmN0aW9uIGZtKG4sZSx0LG8pe2xldCBhPW5bMF0scj1uLmxlbmd0aDtmb3IobGV0IGk9MTtpPHI7KytpKXtsZXQgZj1uW2ldO3RbbysrXT1hLHRbbysrXT1mLHRbbysrXT1lLHRbbysrXT1lLHRbbysrXT1mLHRbbysrXT1lKzEsYT1mLCsrZX1yZXR1cm4gb312YXIgTngsSXgsUHgsQmksS189WCgoKT0+e3NlKCk7SmkoKTtadCgpO1VlKCk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoR24ucHJvdG90eXBlLHtlcnJvckV2ZW50OntnZXQ6VnQudGhyb3dJbnN0YW50aWF0aW9uRXJyb3J9LGNyZWRpdDp7Z2V0OlZ0LnRocm93SW5zdGFudGlhdGlvbkVycm9yfSx0aWxpbmdTY2hlbWU6e2dldDpWdC50aHJvd0luc3RhbnRpYXRpb25FcnJvcn0saGFzV2F0ZXJNYXNrOntnZXQ6VnQudGhyb3dJbnN0YW50aWF0aW9uRXJyb3J9LGhhc1ZlcnRleE5vcm1hbHM6e2dldDpWdC50aHJvd0luc3RhbnRpYXRpb25FcnJvcn0sYXZhaWxhYmlsaXR5OntnZXQ6VnQudGhyb3dJbnN0YW50aWF0aW9uRXJyb3J9fSk7Tng9W107R24uZ2V0UmVndWxhckdyaWRJbmRpY2VzPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9Tnhbbl07Xyh0KXx8KE54W25dPXQ9W10pO2xldCBvPXRbZV07cmV0dXJuIF8obyl8fChuKmU8ay5TSVhUWV9GT1VSX0tJTE9CWVRFUz9vPXRbZV09bmV3IFVpbnQxNkFycmF5KChuLTEpKihlLTEpKjYpOm89dFtlXT1uZXcgVWludDMyQXJyYXkoKG4tMSkqKGUtMSkqNiksdngobixlLG8sMCkpLG99O0l4PVtdO0duLmdldFJlZ3VsYXJHcmlkSW5kaWNlc0FuZEVkZ2VJbmRpY2VzPWZ1bmN0aW9uKG4sZSl7bGV0IHQ9SXhbbl07Xyh0KXx8KEl4W25dPXQ9W10pO2xldCBvPXRbZV07aWYoIV8obykpe2xldCBhPUduLmdldFJlZ3VsYXJHcmlkSW5kaWNlcyhuLGUpLHI9a3gobixlKSxpPXIud2VzdEluZGljZXNTb3V0aFRvTm9ydGgsZj1yLnNvdXRoSW5kaWNlc0Vhc3RUb1dlc3QsZD1yLmVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoLGM9ci5ub3J0aEluZGljZXNXZXN0VG9FYXN0O289dFtlXT17aW5kaWNlczphLHdlc3RJbmRpY2VzU291dGhUb05vcnRoOmksc291dGhJbmRpY2VzRWFzdFRvV2VzdDpmLGVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoOmQsbm9ydGhJbmRpY2VzV2VzdFRvRWFzdDpjfX1yZXR1cm4gb307UHg9W107R24uZ2V0UmVndWxhckdyaWRBbmRTa2lydEluZGljZXNBbmRFZGdlSW5kaWNlcz1mdW5jdGlvbihuLGUpe2xldCB0PVB4W25dO18odCl8fChQeFtuXT10PVtdKTtsZXQgbz10W2VdO2lmKCFfKG8pKXtsZXQgYT1uKmUscj0obi0xKSooZS0xKSo2LGk9bioyK2UqMixmPU1hdGgubWF4KDAsaS00KSo2LGQ9YStpLGM9citmLHU9a3gobixlKSxsPXUud2VzdEluZGljZXNTb3V0aFRvTm9ydGgsaD11LnNvdXRoSW5kaWNlc0Vhc3RUb1dlc3QsbT11LmVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoLGI9dS5ub3J0aEluZGljZXNXZXN0VG9FYXN0LHA9SWUuY3JlYXRlVHlwZWRBcnJheShkLGMpO3Z4KG4sZSxwLDApLEduLmFkZFNraXJ0SW5kaWNlcyhsLGgsbSxiLGEscCxyKSxvPXRbZV09e2luZGljZXM6cCx3ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aDpsLHNvdXRoSW5kaWNlc0Vhc3RUb1dlc3Q6aCxlYXN0SW5kaWNlc05vcnRoVG9Tb3V0aDptLG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6YixpbmRleENvdW50V2l0aG91dFNraXJ0czpyfX1yZXR1cm4gb307R24uZ2V0U2tpcnRWZXJ0ZXhDb3VudD1mdW5jdGlvbihuLGUsdCxvKXtyZXR1cm4gbi5sZW5ndGgrZS5sZW5ndGgrdC5sZW5ndGgrby5sZW5ndGh9O0duLmdldFNraXJ0SW5kZXhDb3VudD1mdW5jdGlvbihuKXtyZXR1cm4obi00KSoyKjN9O0duLmdldFNraXJ0SW5kZXhDb3VudFdpdGhGaWxsZWRDb3JuZXJzPWZ1bmN0aW9uKG4pe3JldHVybigobi00KSoyKzQpKjN9O0duLmFkZFNraXJ0SW5kaWNlcz1mdW5jdGlvbihuLGUsdCxvLGEscixpKXtsZXQgZj1hO2k9Zm0obixmLHIsaSksZis9bi5sZW5ndGgsaT1mbShlLGYscixpKSxmKz1lLmxlbmd0aCxpPWZtKHQsZixyLGkpLGYrPXQubGVuZ3RoLGZtKG8sZixyLGkpfTtHbi5hZGRTa2lydEluZGljZXNXaXRoRmlsbGVkQ29ybmVycz1mdW5jdGlvbihuLGUsdCxvLGEscixpKXtHbi5hZGRTa2lydEluZGljZXMobixlLHQsbyxhLHIsaSk7bGV0IGY9R24uZ2V0U2tpcnRWZXJ0ZXhDb3VudChuLGUsdCxvKSxkPUduLmdldFNraXJ0SW5kZXhDb3VudChmKSxjPWkrZCx1PW5bMF0sbD1vWzBdLGg9dFswXSxtPWVbMF0sYj1hLHA9YituLmxlbmd0aC0xLHk9cCsxLEU9eStlLmxlbmd0aC0xLGc9RSsxLEE9Zyt0Lmxlbmd0aC0xLFQ9QSsxLFI9VCtvLmxlbmd0aC0xO3JbYyswXT11LHJbYysxXT1iLHJbYysyXT1FLHJbYyszXT1tLHJbYys0XT15LHJbYys1XT1BLHJbYys2XT1oLHJbYys3XT1nLHJbYys4XT1SLHJbYys5XT1sLHJbYysxMF09VCxyW2MrMTFdPXB9O0duLmhlaWdodG1hcFRlcnJhaW5RdWFsaXR5PS4yNTtHbi5nZXRFc3RpbWF0ZWRMZXZlbFplcm9HZW9tZXRyaWNFcnJvckZvckFIZWlnaHRtYXA9ZnVuY3Rpb24obixlLHQpe3JldHVybiBuLm1heGltdW1SYWRpdXMqMipNYXRoLlBJKkduLmhlaWdodG1hcFRlcnJhaW5RdWFsaXR5LyhlKnQpfTtHbi5wcm90b3R5cGUucmVxdWVzdFRpbGVHZW9tZXRyeT1WdC50aHJvd0luc3RhbnRpYXRpb25FcnJvcjtHbi5wcm90b3R5cGUuZ2V0TGV2ZWxNYXhpbXVtR2VvbWV0cmljRXJyb3I9VnQudGhyb3dJbnN0YW50aWF0aW9uRXJyb3I7R24ucHJvdG90eXBlLmdldFRpbGVEYXRhQXZhaWxhYmxlPVZ0LnRocm93SW5zdGFudGlhdGlvbkVycm9yO0duLnByb3RvdHlwZS5sb2FkVGlsZURhdGFBdmFpbGFiaWxpdHk9VnQudGhyb3dJbnN0YW50aWF0aW9uRXJyb3I7Qmk9R259KTtmdW5jdGlvbiB1TChuKXtsZXQgZT1uLm1lc2hlc1swXS5wcmltaXRpdmVzWzBdLHQ9bi5hY2Nlc3NvcnNbZS5hdHRyaWJ1dGVzLlBPU0lUSU9OXSxvPW4uYnVmZmVyVmlld3NbdC5idWZmZXJWaWV3XSxhPXQuY291bnQscj1vLmV4dGVuc2lvbnM/by5leHRlbnNpb25zLkVYVF9tZXNob3B0X2NvbXByZXNzaW9uOnZvaWQgMDtpZihyPT09dm9pZCAwKXtsZXQgbT1uLmJ1ZmZlcnNbby5idWZmZXJdLmV4dHJhcy5fcGlwZWxpbmUuc291cmNlO3JldHVybiBuZXcgRmxvYXQzMkFycmF5KG0uYnVmZmVyLG0uYnl0ZU9mZnNldCsoby5ieXRlT2Zmc2V0Pz8wKSsodC5ieXRlT2Zmc2V0Pz8wKSxhKjMpfWxldCBpPW4uYnVmZmVyc1tyLmJ1ZmZlcl0uZXh0cmFzLl9waXBlbGluZS5zb3VyY2UsZj1uZXcgVWludDhBcnJheShpLmJ1ZmZlcixpLmJ5dGVPZmZzZXQrKHIuYnl0ZU9mZnNldD8/MCkrKHQuYnl0ZU9mZnNldD8/MCksci5ieXRlTGVuZ3RoKSxkPXIuYnl0ZVN0cmlkZSxjPWQ9PT00P1VpbnQ4QXJyYXk6VWludDE2QXJyYXksdT1uZXcgYyhhKjQpO3pzLmRlY29kZVZlcnRleEJ1ZmZlcihuZXcgVWludDhBcnJheSh1LmJ1ZmZlciksYSxkLGYpO2xldCBsPSgxPDx1LkJZVEVTX1BFUl9FTEVNRU5UKjgpLTEsaD1uZXcgRmxvYXQzMkFycmF5KGEqMyk7Zm9yKGxldCBtPTA7bTxhO20rKyloW20qMyswXT11W20qNCswXS9sLGhbbSozKzFdPXVbbSo0KzFdL2wsaFttKjMrMl09dVttKjQrMl0vbDtyZXR1cm4gaH1mdW5jdGlvbiBsTChuKXtsZXQgZT1uLm1lc2hlc1swXS5wcmltaXRpdmVzWzBdLHQ9bi5hY2Nlc3NvcnNbZS5hdHRyaWJ1dGVzLk5PUk1BTF0sbz1uLmJ1ZmZlclZpZXdzW3QuYnVmZmVyVmlld10sYT10LmNvdW50LHI9by5leHRlbnNpb25zP28uZXh0ZW5zaW9ucy5FWFRfbWVzaG9wdF9jb21wcmVzc2lvbjp2b2lkIDA7aWYocj09PXZvaWQgMCl7bGV0IGw9bi5idWZmZXJzW28uYnVmZmVyXS5leHRyYXMuX3BpcGVsaW5lLnNvdXJjZTtyZXR1cm4gbmV3IEZsb2F0MzJBcnJheShsLmJ1ZmZlcixsLmJ5dGVPZmZzZXQrKG8uYnl0ZU9mZnNldD8/MCkrKHQuYnl0ZU9mZnNldD8/MCksYSozKX1sZXQgaT1uLmJ1ZmZlcnNbci5idWZmZXJdLmV4dHJhcy5fcGlwZWxpbmUuc291cmNlLGY9bmV3IFVpbnQ4QXJyYXkoaS5idWZmZXIsaS5ieXRlT2Zmc2V0KyhyLmJ5dGVPZmZzZXQ/PzApKyh0LmJ5dGVPZmZzZXQ/PzApLHIuYnl0ZUxlbmd0aCksZD1yLmJ5dGVTdHJpZGUsYz1uZXcgSW50OEFycmF5KGEqZCk7enMuZGVjb2RlVmVydGV4QnVmZmVyKG5ldyBVaW50OEFycmF5KGMuYnVmZmVyKSxhLGQsZik7bGV0IHU9bmV3IEZsb2F0MzJBcnJheShhKjMpO2ZvcihsZXQgbD0wO2w8YTtsKyspe2xldCBoPU1hdGgubWF4KGNbbCo0KzBdLzEyNywtMSksbT1NYXRoLm1heChjW2wqNCsxXS8xMjcsLTEpLGI9MS0oTWF0aC5hYnMoaCkrTWF0aC5hYnMobSkpO2lmKGI8MCl7bGV0IHk9aCxFPW07aD0oMS1NYXRoLmFicyhFKSkqay5zaWduTm90WmVybyh5KSxtPSgxLU1hdGguYWJzKHkpKSprLnNpZ25Ob3RaZXJvKEUpfWxldCBwPVJkO3AueD1oLHAueT1tLHAuej1iLHA9cy5ub3JtYWxpemUocCxSZCksdVtsKjMrMF09cC54LHVbbCozKzFdPXAueSx1W2wqMysyXT1wLnp9cmV0dXJuIHV9ZnVuY3Rpb24gaEwobil7bGV0IGU9bi5tZXNoZXNbMF0ucHJpbWl0aXZlc1swXSx0PW4uYWNjZXNzb3JzW2UuaW5kaWNlc10sbz1uLmJ1ZmZlclZpZXdzW3QuYnVmZmVyVmlld10sYT10LmNvdW50LHI9dC5jb21wb25lbnRUeXBlPT09b2UuVU5TSUdORURfU0hPUlQ/VWludDE2QXJyYXk6VWludDMyQXJyYXksaT1vLmV4dGVuc2lvbnM/by5leHRlbnNpb25zLkVYVF9tZXNob3B0X2NvbXByZXNzaW9uOnZvaWQgMDtpZihpPT09dm9pZCAwKXtsZXQgdT1uLmJ1ZmZlcnNbby5idWZmZXJdLmV4dHJhcy5fcGlwZWxpbmUuc291cmNlO3JldHVybiBuZXcgcih1LmJ1ZmZlcix1LmJ5dGVPZmZzZXQrKG8uYnl0ZU9mZnNldD8/MCkrKHQuYnl0ZU9mZnNldD8/MCksYSl9bGV0IGY9bi5idWZmZXJzW2kuYnVmZmVyXS5leHRyYXMuX3BpcGVsaW5lLnNvdXJjZSxkPW5ldyBVaW50OEFycmF5KGYuYnVmZmVyLGYuYnl0ZU9mZnNldCsoaS5ieXRlT2Zmc2V0Pz8wKSsodC5ieXRlT2Zmc2V0Pz8wKSxpLmJ5dGVMZW5ndGgpLGM9bmV3IHIoYSk7cmV0dXJuIHpzLmRlY29kZUluZGV4QnVmZmVyKG5ldyBVaW50OEFycmF5KGMuYnVmZmVyKSxhLGkuYnl0ZVN0cmlkZSxkKSxjfWZ1bmN0aW9uIHVtKG4sZSl7bGV0IHQ9bi5tZXNoZXNbMF0ucHJpbWl0aXZlc1swXSxvPW4uYWNjZXNzb3JzW3QuZXh0ZW5zaW9ucy5DRVNJVU1fdGlsZV9lZGdlc1tlXV0sYT1uLmJ1ZmZlclZpZXdzW28uYnVmZmVyVmlld10scj1vLmNvdW50LGk9by5jb21wb25lbnRUeXBlPT09b2UuVU5TSUdORURfU0hPUlQ/VWludDE2QXJyYXk6VWludDMyQXJyYXksZj1hLmV4dGVuc2lvbnM/YS5leHRlbnNpb25zLkVYVF9tZXNob3B0X2NvbXByZXNzaW9uOnZvaWQgMDtpZihmPT09dm9pZCAwKXtsZXQgaD1uLmJ1ZmZlcnNbYS5idWZmZXJdLmV4dHJhcy5fcGlwZWxpbmUuc291cmNlO3JldHVybiBuZXcgaShoLmJ1ZmZlcixoLmJ5dGVPZmZzZXQrKGEuYnl0ZU9mZnNldD8/MCkrKG8uYnl0ZU9mZnNldD8/MCkscil9bGV0IGQ9bi5idWZmZXJzW2YuYnVmZmVyXS5leHRyYXMuX3BpcGVsaW5lLnNvdXJjZSxjPW5ldyBVaW50OEFycmF5KGQuYnVmZmVyLGQuYnl0ZU9mZnNldCsoZi5ieXRlT2Zmc2V0Pz8wKSsoby5ieXRlT2Zmc2V0Pz8wKSxmLmJ5dGVMZW5ndGgpLHU9bmV3IGkociksbD1mLmJ5dGVTdHJpZGU7cmV0dXJuIHpzLmRlY29kZUluZGV4U2VxdWVuY2UobmV3IFVpbnQ4QXJyYXkodS5idWZmZXIpLHIsbCxjKSx1fWZ1bmN0aW9uIG1MKG4sZSx0KXtyZXR1cm4gdC5wb3NpdGlvbnM9dUwobiksdC5ub3JtYWxzPWU/bEwobik6dm9pZCAwLHQuaW5kaWNlcz1oTChuKSx0LmVkZ2VJbmRpY2VzV2VzdD11bShuLCJsZWZ0IiksdC5lZGdlSW5kaWNlc1NvdXRoPXVtKG4sImJvdHRvbSIpLHQuZWRnZUluZGljZXNFYXN0PXVtKG4sInJpZ2h0IiksdC5lZGdlSW5kaWNlc05vcnRoPXVtKG4sInRvcCIpLHR9ZnVuY3Rpb24gengobixlLHQsbyxhLHIsaSxmKXtsZXR7ZW5jb2Rpbmc6ZH09bixjPWQuc3RyaWRlLHU9bi52ZXJ0aWNlcyx7aGFzVmVydGV4Tm9ybWFsczpsLGhhc1dlYk1lcmNhdG9yVDpoLGV4YWdnZXJhdGlvbjptLGV4YWdnZXJhdGlvblJlbGF0aXZlSGVpZ2h0OmJ9PWQseT1tIT09MSxFPW4udmVydGV4Q291bnRXaXRob3V0U2tpcnRzLGc9RSpjLEE9dS5sZW5ndGgvYyxUPUEtRSxSPW4uaW5kaWNlcyxTPW4uaW5kZXhDb3VudFdpdGhvdXRTa2lydHMsTT1uLndlc3RJbmRpY2VzU291dGhUb05vcnRoLEk9bi5zb3V0aEluZGljZXNFYXN0VG9XZXN0LE49bi5lYXN0SW5kaWNlc05vcnRoVG9Tb3V0aCxQPW4ubm9ydGhJbmRpY2VzV2VzdFRvRWFzdDtCaS5hZGRTa2lydEluZGljZXNXaXRoRmlsbGVkQ29ybmVycyhNLEksTixQLEUsUixTKTtsZXQgRj0wLHc9RitNLmxlbmd0aCx4PXcrSS5sZW5ndGgsQz14K04ubGVuZ3RoLHY9W00sSSxOLFBdLGo9W0Ysdyx4LENdLHo9Wy0xLDAsMSwwXSxEPVswLC0xLDAsMV0sRz1zLmNsb25lKG8sUVUpLFY9cy5jbG9uZShhLCRVKSxPPW4ubWF4aW11bUhlaWdodCxaPW4ubWluaW11bUhlaWdodC1mO2ZvcihsZXQgZmU9MDtmZTxUO2ZlKyspe2xldCB0ZT0wO2Zvcih0ZT0wO3RlPDMmJiEoZmU8alt0ZSsxXSk7dGUrKyk7bGV0IG1lPXZbdGVdW2ZlLWpbdGVdXSx1ZT1kLmRlY29kZVRleHR1cmVDb29yZGluYXRlcyh1LG1lLER4KSxiZT0xZS00LGhlPXVlLngrelt0ZV0qYmUsUT11ZS55K0RbdGVdKmJlLFRlPWsubGVycChlLndlc3QsZS5lYXN0LGhlKSxDZT1rLmNsYW1wKGsubGVycChlLnNvdXRoLGUubm9ydGgsUSksLWsuUElfT1ZFUl9UV08sK2suUElfT1ZFUl9UV08pLHplPWQuZGVjb2RlSGVpZ2h0KHUsbWUpLWYsWmU9cmUuZnJvbVJhZGlhbnMoVGUsQ2UsemUsV1UpLEtlPXJlLnRvQ2FydGVzaWFuKFplLHQsRngpLERlO2wmJihEZT1kLmdldE9jdEVuY29kZWROb3JtYWwodSxtZSxqeCkpO2xldCBCZTtoJiYoQmU9ZC5kZWNvZGVXZWJNZXJjYXRvclQodSxtZSkpO2xldCBldDt5JiYoZXQ9dC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoS2UsVXgpKSxnPWQuZW5jb2RlKHUsZyxLZSx1ZSx6ZSxEZSxCZSxldCk7bGV0IHFlPSQubXVsdGlwbHlCeVBvaW50KGksS2UsSlUpO3MubWluaW11bUJ5Q29tcG9uZW50KHFlLEcsRykscy5tYXhpbXVtQnlDb21wb25lbnQocWUsVixWKX1sZXQgYWU9cm8uZnJvbUNvcm5lcnMoRyxWLHNMKSxjZT1uZXcgbmEoZC5jZW50ZXIsYWUsWixPLHIsZC5oYXNWZXJ0ZXhOb3JtYWxzLGQuaGFzV2ViTWVyY2F0b3JULHksbSxiKTtpZihkLnF1YW50aXphdGlvbiE9PWNlLnF1YW50aXphdGlvbil7bGV0IGZlPWNlLHRlPWZlLnN0cmlkZSxtZT1uZXcgRmxvYXQzMkFycmF5KEEqdGUpLHVlPTA7Zm9yKGxldCBiZT0wO2JlPEE7YmUrKyl1ZT1mZS5lbmNvZGUobWUsdWUsZC5kZWNvZGVQb3NpdGlvbih1LGJlLEZ4KSxkLmRlY29kZVRleHR1cmVDb29yZGluYXRlcyh1LGJlLER4KSxkLmRlY29kZUhlaWdodCh1LGJlKSxkLmhhc1ZlcnRleE5vcm1hbHM/ZC5nZXRPY3RFbmNvZGVkTm9ybWFsKHUsYmUsangpOnZvaWQgMCxkLmhhc1dlYk1lcmNhdG9yVD9kLmRlY29kZVdlYk1lcmNhdG9yVCh1LGJlKTp2b2lkIDAsZC5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzP2QuZGVjb2RlR2VvZGV0aWNTdXJmYWNlTm9ybWFsKHUsYmUsVXgpOnZvaWQgMCk7bi52ZXJ0aWNlcz1tZSxuLnN0cmlkZT10ZSxuLmVuY29kaW5nPWZlfXJldHVybiBufWZ1bmN0aW9uIEx4KG4sZSx0LG8pe3N3aXRjaCh0KXtjYXNlIFdfOnJldHVybiBrLnNpZ24oby54LW4ueCk7Y2FzZSBYXzpyZXR1cm4gay5zaWduKGUueC1vLngpO2Nhc2UgWV86cmV0dXJuIGsuc2lnbihvLnktbi55KTtkZWZhdWx0OnJldHVybiBrLnNpZ24oZS55LW8ueSl9fWZ1bmN0aW9uIFRMKG4sZSx0LG8sYSxyKXtsZXQgaSxmLGQ7c3dpdGNoKHQpe2Nhc2UgV186aT0obi54LW8ueCkvKGEueC1vLngpLGY9bi54LGQ9by55KyhhLnktby55KSppO2JyZWFrO2Nhc2UgWF86aT0oZS54LW8ueCkvKGEueC1vLngpLGY9ZS54LGQ9by55KyhhLnktby55KSppO2JyZWFrO2Nhc2UgWV86aT0obi55LW8ueSkvKGEueS1vLnkpLGY9by54KyhhLngtby54KSppLGQ9bi55O2JyZWFrO2RlZmF1bHQ6aT0oZS55LW8ueSkvKGEueS1vLnkpLGY9by54KyhhLngtby54KSppLGQ9ZS55O2JyZWFrfXJldHVybiBzLmZyb21FbGVtZW50cyhmLGQsaSxyKX1mdW5jdGlvbiBSTChuLGUsdCxvLGEscixpLGYpe2xldCBkPTAsYz15TCx1PV9MLGw9MyxoPXdMO1kuY2xvbmUoYSxoWzBdKSxZLmNsb25lKHIsaFsxXSksWS5jbG9uZShpLGhbMl0pO2xldCBtPUFMO3MuZnJvbUVsZW1lbnRzKDEsMCwwLG1bMF0pLHMuZnJvbUVsZW1lbnRzKDAsMSwwLG1bMV0pLHMuZnJvbUVsZW1lbnRzKDAsMCwxLG1bMl0pO2ZvcihsZXQgYj0wO2I8ZTtiKyspe2xldCBwPShuK2IpJXBMLHk9YyxFPXU7Yz1oLHU9bSxkPWwsaD15LG09RSxsPTA7bGV0IGc9ZC0xLEE9Y1tnXSxUPXVbZ10sUj1MeCh0LG8scCxBKTtmb3IobGV0IFM9MDtTPGQ7UysrKXtsZXQgTT1jW1NdLEk9dVtTXSxOPUx4KHQsbyxwLE0pO2lmKFIqTj09PS0xKXtsZXQgUD1UTCh0LG8scCxBLE0sZ0wpLHt4OkYseTp3LHo6eH09UCxDPTEteCx2PVQueCpDK0kueCp4LGo9VC55KkMrSS55Kngsej1ULnoqQytJLnoqeDtZLmZyb21FbGVtZW50cyhGLHcsaFtsXSkscy5mcm9tRWxlbWVudHModixqLHosbVtsXSksbCsrfU4+PTAmJihZLmNsb25lKE0saFtsXSkscy5jbG9uZShJLG1bbF0pLGwrKyksZz1TLEE9TSxUPUksUj1OfWlmKGw9PT0wKWJyZWFrfWYubGVuZ3RoPWw7Zm9yKGxldCBiPTA7YjxsO2IrKylZLmNsb25lKGhbYl0sZi5jb29yZGluYXRlc1tiXSkscy5jbG9uZShtW2JdLGYuYmFyeWNlbnRyaWNDb29yZGluYXRlc1tiXSk7cmV0dXJuIGZ9ZnVuY3Rpb24geEwobixlLHQsbyxhLHIsaSxmKXtyZXR1cm4gUkwobj9lP1lfOldfOmU/WF86YkwsMix0LG8sYSxyLGksZil9ZnVuY3Rpb24gU0wobixlLHQsbyxhLHIsaSxmLGQsYyx1LGwsaCxtLGIpe2xldCBwPXt9LHk9bj8uNTowLEU9bj8xOi41LGc9ZT8uNTowLEE9ZT8xOi41LFQ9RFU7VC54PXksVC55PWc7bGV0IFI9QlU7Ui54PUUsUi55PUE7bGV0IFM9MDtmb3IobGV0IE09MDtNPHQ7TSs9Myl7bGV0IEk9b1tNKzBdLE49b1tNKzFdLFA9b1tNKzJdLEY9aS5kZWNvZGVUZXh0dXJlQ29vcmRpbmF0ZXMocixJLFVVKSx3PWkuZGVjb2RlVGV4dHVyZUNvb3JkaW5hdGVzKHIsTixMVSkseD1pLmRlY29kZVRleHR1cmVDb29yZGluYXRlcyhyLFAselUpLEM9eEwobixlLFQsUixGLHcseCxFTCksdj1DLmxlbmd0aDtpZih2PDMpY29udGludWU7bGV0IGo9alU7Zm9yKGxldCBWPTA7Vjx2O1YrKyl7bGV0IE89Qy5iYXJ5Y2VudHJpY0Nvb3JkaW5hdGVzW1ZdLFo9Ty54LGFlPU8ueSxjZT1PLnosZmU9TWF0aC5jZWlsKFopfE1hdGguY2VpbChhZSk8PDF8TWF0aC5jZWlsKGNlKTw8Mix0ZT1PTFtmZV0sbWUsdWU9ITE7aWYodGUubGVuZ3RoPT09MSl7bGV0IGJlPXRlWzBdLFE9b1tNK2JlXTttZT1wW1FdLG1lPT09dm9pZCAwJiYodWU9ITAsbWU9UysrLHBbUV09bWUpfWVsc2UgaWYodGUubGVuZ3RoPT09Mil7bGV0IGJlPXRlWzBdLGhlPXRlWzFdLFE9b1tNK2JlXSxUZT1vW00raGVdLENlPUMuYmFyeWNlbnRyaWNDb29yZGluYXRlc1soVit2LTEpJXZdLFdlPU1hdGguY2VpbChDZS54KXxNYXRoLmNlaWwoQ2UueSk8PDF8TWF0aC5jZWlsKENlLnopPDwyLHplPWZlPT09V2UsWmU9TWF0aC5taW4oUSxUZSksS2U9TWF0aC5tYXgoUSxUZSksRGU9YSsyKihaZSphK0tlKSxCZT1EZSswLGV0PURlKzEscWU9cFtCZV0sYXQ9cFtldF0seHQ9IXplPT0ocWU9PT12b2lkIDB8fGF0PT09dm9pZCAwKTtpZihtZT14dD9xZTphdCxtZT09PXZvaWQgMCl7dWU9ITAsbWU9UysrO2xldCBUdD14dD9CZTpldDtwW1R0XT1tZX19ZWxzZSB1ZT0hMCxtZT1TKys7aWYoaltWXT1tZSx1ZSl7bGV0IGJlPU0vMztoLnB1c2goYmUpO2xldCBoZT1DLmNvb3JkaW5hdGVzW1ZdLFE9KGhlLngteSkvKEUteSksVGU9KGhlLnktZykvKEEtZyk7Yi5wdXNoKFEsVGUpLG0ucHVzaChaLGFlKSxRPT09MD9kLnB1c2gobWUpOlE9PT0xJiZ1LnB1c2gobWUpLFRlPT09MD9jLnB1c2gobWUpOlRlPT09MSYmbC5wdXNoKG1lKX19bGV0IHo9alswXSxEPWpbMV0sRz1qWzJdO2YucHVzaCh6LEQsRyk7Zm9yKGxldCBWPTM7Vjx2O1YrKylEPUcsRz1qW1ZdLGYucHVzaCh6LEQsRyl9ZC5zb3J0KGZ1bmN0aW9uKE0sSSl7cmV0dXJuIGJbTSoyKzFdLWJbSSoyKzFdfSksYy5zb3J0KGZ1bmN0aW9uKE0sSSl7cmV0dXJuIGJbSSoyKzBdLWJbTSoyKzBdfSksdS5zb3J0KGZ1bmN0aW9uKE0sSSl7cmV0dXJuIGJbSSoyKzFdLWJbTSoyKzFdfSksbC5zb3J0KGZ1bmN0aW9uKE0sSSl7cmV0dXJuIGJbTSoyKzBdLWJbSSoyKzBdfSl9dmFyIHFfLHdVLFRVLEVVLFJVLHhVLE9VLFNVLENVLE1VLE5VLElVLFBVLFJkLGtVLHZVLEZVLGRtLERVLEJVLGpVLFVVLExVLHpVLEdVLFZVLEhVLEtVLHFVLFdVLFhVLEZ4LFlVLEpVLFpVLFFVLCRVLGVMLHRMLG5MLG9MLER4LGFMLHJMLGlMLGNMLHNMLEJ4LGp4LGZMLFV4LGRMLFdfLGJMLFhfLFlfLHBMLGdMLF9MLHlMLEFMLHdMLEVMLE9MLGxtLEpfPVgoKCk9PntyeCgpO0JyKCk7Y3goKTt5aSgpO3NsKCk7RXQoKTt2dCgpO01lKCk7Z3QoKTtVZSgpO0N0KCk7VmUoKTtHcygpO3N0KCk7dW4oKTtBaSgpO2huKCk7VnMoKTtNeCgpO0tfKCk7cnIoKTtfaSgpO3FfPXt9LHdVPXtwb3NpdGlvbnM6dm9pZCAwLG5vcm1hbHM6dm9pZCAwLGluZGljZXM6dm9pZCAwLGVkZ2VJbmRpY2VzV2VzdDp2b2lkIDAsZWRnZUluZGljZXNTb3V0aDp2b2lkIDAsZWRnZUluZGljZXNFYXN0OnZvaWQgMCxlZGdlSW5kaWNlc05vcnRoOnZvaWQgMH0sVFU9bmV3IHJlLEVVPW5ldyBzLFJVPW5ldyAkLHhVPW5ldyAkLE9VPW5ldyAkLFNVPW5ldyBzLENVPW5ldyBzLE1VPW5ldyBzLE5VPW5ldyBzLElVPW5ldyByZSxQVT1uZXcgWSxSZD1uZXcgcyxrVT1uZXcgWSx2VT1uZXcgcyxGVT1uZXcgcyxkbT1mdW5jdGlvbihuLGUpe3JldHVybiBuLWV9O3FfLmNyZWF0ZU1lc2g9YXN5bmMgZnVuY3Rpb24obil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0e2V4YWdnZXJhdGlvbjplPTEsZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQ6dD0wLGhhc1ZlcnRleE5vcm1hbHM6byxoYXNXZWJNZXJjYXRvclQ6YSxnbHRmOnIsbWluaW11bUhlaWdodDppLG1heGltdW1IZWlnaHQ6Zixza2lydEhlaWdodDpkfT1uLHU9ZSE9PTEsbD1nZS5jbG9uZShuLmJvdW5kaW5nU3BoZXJlLG5ldyBnZSksaD1tbi5jbG9uZShuLm9yaWVudGVkQm91bmRpbmdCb3gsbmV3IG1uKSxtPXMuY2xvbmUobi5ob3Jpem9uT2NjbHVzaW9uUG9pbnQsbmV3IHMpLGI9Sy5jbG9uZShuLmVsbGlwc29pZCxuZXcgSykscD14ZS5jbG9uZShuLnJlY3RhbmdsZSxuZXcgeGUpO2F3YWl0KHIuZXh0ZW5zaW9uc1JlcXVpcmVkIT09dm9pZCAwJiZyLmV4dGVuc2lvbnNSZXF1aXJlZC5pbmRleE9mKCJFWFRfbWVzaG9wdF9jb21wcmVzc2lvbiIpIT09LTE/enMucmVhZHk6UHJvbWlzZS5yZXNvbHZlKHZvaWQgMCkpO2xldCBnPXAud2VzdCxBPXAuc291dGgsVD1wLm5vcnRoLFI9cC53aWR0aCxTPXAuaGVpZ2h0LE09eGUuY2VudGVyKHAsVFUpO00uaGVpZ2h0PS41KihpK2YpO2xldCBJPXJlLnRvQ2FydGVzaWFuKE0sYixFVSksTj1vby5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZShJLGIsUlUpLFA9JC5pbnZlcnNlVHJhbnNmb3JtYXRpb24oTix4VSksRj0kLnVucGFjayhyLm5vZGVzWzBdLm1hdHJpeCwwLE9VKTtGPSQubXVsdGlwbHkoaXguWV9VUF9UT19aX1VQLEYsRik7bGV0IHc9bUwocixvLHdVKSx4PUJpLmdldFNraXJ0VmVydGV4Q291bnQody5lZGdlSW5kaWNlc1dlc3Qsdy5lZGdlSW5kaWNlc1NvdXRoLHcuZWRnZUluZGljZXNFYXN0LHcuZWRnZUluZGljZXNOb3J0aCksQz13LnBvc2l0aW9ucyx2PXcubm9ybWFscyxqPXcuaW5kaWNlcyx6PUMubGVuZ3RoLzMsRD16K3gsRz1qLmxlbmd0aCxWPUJpLmdldFNraXJ0SW5kZXhDb3VudFdpdGhGaWxsZWRDb3JuZXJzKHgpLE89RDw9NjU1MzU/VWludDE2QXJyYXk6VWludDMyQXJyYXksWj1uZXcgTyhHK1YpO1ouc2V0KGopO2xldCBhZT1uZXcgTyh3LmVkZ2VJbmRpY2VzV2VzdCksY2U9bmV3IE8ody5lZGdlSW5kaWNlc1NvdXRoKSxmZT1uZXcgTyh3LmVkZ2VJbmRpY2VzRWFzdCksdGU9bmV3IE8ody5lZGdlSW5kaWNlc05vcnRoKSxtZT1uZXcgTyhhZSkuc29ydCgpLHVlPW5ldyBPKGNlKS5zb3J0KCksYmU9bmV3IE8oZmUpLnNvcnQoKSxoZT1uZXcgTyh0ZSkuc29ydCgpLFE9eW4uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZShBKSxDZT0xLyh5bi5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlKFQpLVEpLFdlPXMuZnJvbUVsZW1lbnRzKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFNVKSx6ZT1zLmZyb21FbGVtZW50cyhOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLE51bWJlci5ORUdBVElWRV9JTkZJTklUWSxDVSksWmU9bmV3IG5hKGwuY2VudGVyLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCxvLGEsdSxlLHQpLEtlPVplLnN0cmlkZSxEZT1uZXcgRmxvYXQzMkFycmF5KEQqS2UpLEJlPTA7Zm9yKGxldCBxZT0wO3FlPHo7cWUrKyl7bGV0IGF0PXMudW5wYWNrKEMscWUqMyxNVSkseHQ9JC5tdWx0aXBseUJ5UG9pbnQoRixhdCxOVSksVHQ9cmUuZnJvbUNhcnRlc2lhbih4dCxiLElVKSx7bG9uZ2l0dWRlOmN0LGxhdGl0dWRlOnp0LGhlaWdodDpPdH09VHQsa3Q9KGN0LWcpL1IsR2U9KHp0LUEpL1M7a3Q9ay5jbGFtcChrdCwwLDEpLEdlPWsuY2xhbXAoR2UsMCwxKSxnYShtZSxxZSxkbSk+PTA/a3Q9MDpnYShiZSxxZSxkbSk+PTAmJihrdD0xKSxnYSh1ZSxxZSxkbSk+PTA/R2U9MDpnYShoZSxxZSxkbSk+PTAmJihHZT0xKTtsZXQgTGU9WS5mcm9tRWxlbWVudHMoa3QsR2UsUFUpLF90O2lmKG8pe2xldCBRdD1zLnVucGFjayh2LHFlKjMsUmQpO1F0PSQubXVsdGlwbHlCeVBvaW50QXNWZWN0b3IoRixRdCxSZCksUXQ9cy5ub3JtYWxpemUoUXQsUmQpLF90PVV0Lm9jdEVuY29kZShRdCxrVSl9bGV0IE10O2EmJihNdD0oeW4uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZSh6dCktUSkqQ2UpO2xldCBHdDt1JiYoR3Q9Yi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoeHQsdlUpKSxCZT1aZS5lbmNvZGUoRGUsQmUseHQsTGUsT3QsX3QsTXQsR3QpO2xldCBxdD0kLm11bHRpcGx5QnlQb2ludChQLHh0LEZVKTtXZT1zLm1pbmltdW1CeUNvbXBvbmVudChxdCxXZSxXZSksemU9cy5tYXhpbXVtQnlDb21wb25lbnQocXQsemUsemUpfWxldCBldD1uZXcgSF8ocy5jbG9uZShaZS5jZW50ZXIsbmV3IHMpLERlLFosRyx6LGksZixwLGdlLmNsb25lKGwsbmV3IGdlKSxzLmNsb25lKG0sbmV3IHMpLEtlLG1uLmNsb25lKGgsbmV3IG1uKSxaZSxhZSxjZSxmZSx0ZSk7cmV0dXJuIHp4KGV0LHAsYixXZSx6ZSxOLFAsZCksUHJvbWlzZS5yZXNvbHZlKGV0KX07RFU9bmV3IFksQlU9bmV3IFksalU9bmV3IEFycmF5KDYpLFVVPW5ldyBZLExVPW5ldyBZLHpVPW5ldyBZLEdVPW5ldyBzLFZVPW5ldyBzLEhVPW5ldyBzLEtVPW5ldyByZSxxVT1uZXcgcyxXVT1uZXcgcmUsWFU9bmV3IHJlLEZ4PW5ldyBzLFlVPW5ldyBzLEpVPW5ldyBzLFpVPW5ldyBzLFFVPW5ldyBzLCRVPW5ldyBzLGVMPW5ldyBzLHRMPW5ldyBzLG5MPW5ldyAkLG9MPW5ldyAkLER4PW5ldyBZLGFMPW5ldyBZLHJMPW5ldyBzLGlMPW5ldyBnZSxjTD1uZXcgbW4sc0w9bmV3IHJvLEJ4PW5ldyBzLGp4PW5ldyBZLGZMPW5ldyBZLFV4PW5ldyBzLGRMPW5ldyBzO3FfLnVwc2FtcGxlTWVzaD1mdW5jdGlvbihuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXR7aXNFYXN0Q2hpbGQ6ZSxpc05vcnRoQ2hpbGQ6dCxwYXJlbnRNaW5pbXVtSGVpZ2h0Om8scGFyZW50TWF4aW11bUhlaWdodDphLHNraXJ0SGVpZ2h0OnJ9PW4saT1uLnBhcmVudEluZGV4Q291bnRXaXRob3V0U2tpcnRzLGY9bi5wYXJlbnRJbmRpY2VzLGQ9bi5wYXJlbnRWZXJ0ZXhDb3VudFdpdGhvdXRTa2lydHMsYz1uLnBhcmVudFZlcnRpY2VzLHU9bmEuY2xvbmUobi5wYXJlbnRFbmNvZGluZyxuZXcgbmEpLGw9dS5oYXNWZXJ0ZXhOb3JtYWxzLGg9dS5oYXNXZWJNZXJjYXRvclQsbT11LmV4YWdnZXJhdGlvbixiPXUuZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQseT1tIT09MSxFPXhlLmNsb25lKG4ucmVjdGFuZ2xlLG5ldyB4ZSksZz1LLmNsb25lKG4uZWxsaXBzb2lkKSxBPVtdLFQ9W10sUj1bXSxTPVtdLE09W10sST1bXSxOPVtdLFA9W107U0woZSx0LGksZixkLGMsdSxTLE0sSSxOLFAsQSxSLFQpO2xldCBGPXhlLmNlbnRlcihFLEtVKTtGLmhlaWdodD0uNSoobythKTtsZXQgdz1yZS50b0NhcnRlc2lhbihGLGcscVUpLHg9QS5sZW5ndGgsQz1uZXcgbmEodyx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsbCxoLHksbSxiKSx2PUMuc3RyaWRlLGo9QmkuZ2V0U2tpcnRWZXJ0ZXhDb3VudChNLEksTixQKSx6PXgraixEPVMubGVuZ3RoLEc9QmkuZ2V0U2tpcnRJbmRleENvdW50V2l0aEZpbGxlZENvcm5lcnMoaiksVj1EK0csTz16PD02NTUzNT9VaW50MTZBcnJheTpVaW50MzJBcnJheSxaPW5ldyBPKFYpO1ouc2V0KFMpO2xldCBhZT1uZXcgTyhNKSxjZT1uZXcgTyhJKSxmZT1uZXcgTyhOKSx0ZT1uZXcgTyhQKSxtZT1uZXcgRmxvYXQzMkFycmF5KHoqdiksdWU9MCxiZT1vby5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZSh3LGcsbkwpLGhlPSQuaW52ZXJzZVRyYW5zZm9ybWF0aW9uKGJlLG9MKSxRPUUud2VzdCxUZT1FLmVhc3QsQ2U9RS5zb3V0aCxXZT1FLm5vcnRoLHplPXluLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoQ2UpLEtlPTEvKHluLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoV2UpLXplKSxEZT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksQmU9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLGV0PXMuZnJvbUVsZW1lbnRzKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGVMKSxxZT1zLmZyb21FbGVtZW50cyhOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLE51bWJlci5ORUdBVElWRV9JTkZJTklUWSx0TCk7Zm9yKGxldCBPdD0wO090PHg7T3QrKyl7bGV0IGt0PUFbT3RdLEdlPWZba3QqMyswXSxMZT1mW2t0KjMrMV0sX3Q9ZltrdCozKzJdLE10PWFMO010Lng9VFtPdCoyKzBdLE10Lnk9VFtPdCoyKzFdO2xldCBHdD1NdC54LHF0PU10LnksUXQ9UltPdCoyKzBdLHBuPVJbT3QqMisxXSxOdD0xLVF0LXBuLCR0PXUuZGVjb2RlSGVpZ2h0KGMsR2UpLEZ0PXUuZGVjb2RlSGVpZ2h0KGMsTGUpLG9uPXUuZGVjb2RlSGVpZ2h0KGMsX3QpLGpuPSR0KlF0K0Z0KnBuK29uKk50O0RlPU1hdGgubWluKGpuLERlKSxCZT1NYXRoLm1heChqbixCZSk7bGV0IFVuPWsubGVycChRLFRlLEd0KSxTbj1rLmxlcnAoQ2UsV2UscXQpLHRvPXJlLmZyb21SYWRpYW5zKFVuLFNuLGpuLFhVKSxTdD1yZS50b0NhcnRlc2lhbih0byxnLFlVKSx5dD0kLm11bHRpcGx5QnlQb2ludChoZSxTdCxaVSk7ZXQ9cy5taW5pbXVtQnlDb21wb25lbnQoeXQsZXQsZXQpLHFlPXMubWF4aW11bUJ5Q29tcG9uZW50KHl0LHFlLHFlKTtsZXQgd247aWYobCl7bGV0IER0PXUuZGVjb2RlTm9ybWFsKGMsR2UsR1UpLGFuPXUuZGVjb2RlTm9ybWFsKGMsTGUsVlUpLEVvPXUuZGVjb2RlTm9ybWFsKGMsX3QsSFUpLE1uPXMuZnJvbUVsZW1lbnRzKER0LngqUXQrYW4ueCpwbitFby54Kk50LER0LnkqUXQrYW4ueSpwbitFby55Kk50LER0LnoqUXQrYW4ueipwbitFby56Kk50LEJ4KTtNbj1zLm5vcm1hbGl6ZShNbixCeCksd249VXQub2N0RW5jb2RlKE1uLGZMKX1sZXQgQ247aCYmKENuPSh5bi5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlKFNuKS16ZSkqS2UpO2xldCBwbzt5JiYocG89Zy5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoU3QsZEwpKSx1ZT1DLmVuY29kZShtZSx1ZSxTdCxNdCxqbix3bixDbixwbyl9bGV0IGF0PW1uLmZyb21SZWN0YW5nbGUoRSxEZSxCZSxnLGNMKSx4dD1nZS5mcm9tVmVydGljZXMobWUsQy5jZW50ZXIsdixpTCksY3Q9bmV3IEFyKGcpLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50RnJvbVZlcnRpY2VzUG9zc2libHlVbmRlckVsbGlwc29pZChDLmNlbnRlcixtZSx2LEMuY2VudGVyLERlLHJMKSx6dD1uZXcgSF8ocy5jbG9uZShDLmNlbnRlcixuZXcgcyksbWUsWixELHgsRGUsQmUsRSxnZS5jbG9uZSh4dCkscy5jbG9uZShjdCksdixtbi5jbG9uZShhdCksQyxhZSxjZSxmZSx0ZSk7cmV0dXJuIHp4KHp0LEUsZyxldCxxZSxiZSxoZSxyKSx6dH07V189MCxiTD0xLFhfPTIsWV89MyxwTD00LGdMPW5ldyBzLF9MPVtuZXcgcyxuZXcgcyxuZXcgcyxuZXcgcyxuZXcgcyxuZXcgc10seUw9W25ldyBZLG5ldyBZLG5ldyBZLG5ldyBZLG5ldyBZLG5ldyBZXSxBTD1bbmV3IHMsbmV3IHMsbmV3IHMsbmV3IHMsbmV3IHMsbmV3IHNdLHdMPVtuZXcgWSxuZXcgWSxuZXcgWSxuZXcgWSxuZXcgWSxuZXcgWV07RUw9e2xlbmd0aDowLGNvb3JkaW5hdGVzOltuZXcgWSxuZXcgWSxuZXcgWSxuZXcgWSxuZXcgWSxuZXcgWV0sYmFyeWNlbnRyaWNDb29yZGluYXRlczpbbmV3IHMsbmV3IHMsbmV3IHMsbmV3IHMsbmV3IHMsbmV3IHNdfTtPTD1bW10sWzBdLFsxXSxbMCwxXSxbMl0sWzAsMl0sWzEsMl0sWzAsMSwyXV07bG09cV99KTt2YXIgWl89e307JGUoWl8se2RlZmF1bHQ6KCk9Pk1MfSk7ZnVuY3Rpb24gQ0wobixlKXtyZXR1cm4gbG0uY3JlYXRlTWVzaChuKS50aGVuKGZ1bmN0aW9uKG8pe2xldCBhPW8udmVydGljZXMuYnVmZmVyLHI9by5pbmRpY2VzLmJ1ZmZlcixpPW8ud2VzdEluZGljZXNTb3V0aFRvTm9ydGguYnVmZmVyLGY9by5zb3V0aEluZGljZXNFYXN0VG9XZXN0LmJ1ZmZlcixkPW8uZWFzdEluZGljZXNOb3J0aFRvU291dGguYnVmZmVyLGM9by5ub3J0aEluZGljZXNXZXN0VG9FYXN0LmJ1ZmZlcjtyZXR1cm4gZS5wdXNoKGEscixpLGYsZCxjKSx7dmVydGljZXNCdWZmZXI6YSxpbmRpY2VzQnVmZmVyOnIsdmVydGV4Q291bnRXaXRob3V0U2tpcnRzOm8udmVydGV4Q291bnRXaXRob3V0U2tpcnRzLGluZGV4Q291bnRXaXRob3V0U2tpcnRzOm8uaW5kZXhDb3VudFdpdGhvdXRTa2lydHMsZW5jb2Rpbmc6by5lbmNvZGluZyx3ZXN0SW5kaWNlc0J1ZmZlcjppLHNvdXRoSW5kaWNlc0J1ZmZlcjpmLGVhc3RJbmRpY2VzQnVmZmVyOmQsbm9ydGhJbmRpY2VzQnVmZmVyOmN9fSl9dmFyIE1MLFFfPVgoKCk9PntKXygpO2tuKCk7TUw9bXQoQ0wpfSk7dmFyIGV5PXt9OyRlKGV5LHtkZWZhdWx0OigpPT5CTH0pO2Z1bmN0aW9uIHhkKG4sZSx0KXt0PXQ/P2s7bGV0IG89bi5sZW5ndGg7Zm9yKGxldCBhPTA7YTxvOysrYSlpZih0LmVxdWFsc0Vwc2lsb24oblthXSxlLGsuRVBTSUxPTjEyKSlyZXR1cm4gYTtyZXR1cm4tMX1mdW5jdGlvbiBQTChuLGUpe24uZWxsaXBzb2lkPUsuY2xvbmUobi5lbGxpcHNvaWQpLG4ucmVjdGFuZ2xlPXhlLmNsb25lKG4ucmVjdGFuZ2xlKTtsZXQgdD1ETChuLmJ1ZmZlcixuLnJlbGF0aXZlVG9DZW50ZXIsbi5lbGxpcHNvaWQsbi5yZWN0YW5nbGUsbi5uYXRpdmVSZWN0YW5nbGUsbi5leGFnZ2VyYXRpb24sbi5leGFnZ2VyYXRpb25SZWxhdGl2ZUhlaWdodCxuLnNraXJ0SGVpZ2h0LG4uaW5jbHVkZVdlYk1lcmNhdG9yVCxuLm5lZ2F0aXZlQWx0aXR1ZGVFeHBvbmVudEJpYXMsbi5uZWdhdGl2ZUVsZXZhdGlvblRocmVzaG9sZCksbz10LnZlcnRpY2VzO2UucHVzaChvLmJ1ZmZlcik7bGV0IGE9dC5pbmRpY2VzO3JldHVybiBlLnB1c2goYS5idWZmZXIpLHt2ZXJ0aWNlczpvLmJ1ZmZlcixpbmRpY2VzOmEuYnVmZmVyLG51bWJlck9mQXR0cmlidXRlczp0LmVuY29kaW5nLnN0cmlkZSxtaW5pbXVtSGVpZ2h0OnQubWluaW11bUhlaWdodCxtYXhpbXVtSGVpZ2h0OnQubWF4aW11bUhlaWdodCxib3VuZGluZ1NwaGVyZTNEOnQuYm91bmRpbmdTcGhlcmUzRCxvcmllbnRlZEJvdW5kaW5nQm94OnQub3JpZW50ZWRCb3VuZGluZ0JveCxvY2NsdWRlZVBvaW50SW5TY2FsZWRTcGFjZTp0Lm9jY2x1ZGVlUG9pbnRJblNjYWxlZFNwYWNlLGVuY29kaW5nOnQuZW5jb2RpbmcsdmVydGV4Q291bnRXaXRob3V0U2tpcnRzOnQudmVydGV4Q291bnRXaXRob3V0U2tpcnRzLGluZGV4Q291bnRXaXRob3V0U2tpcnRzOnQuaW5kZXhDb3VudFdpdGhvdXRTa2lydHMsd2VzdEluZGljZXNTb3V0aFRvTm9ydGg6dC53ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aCxzb3V0aEluZGljZXNFYXN0VG9XZXN0OnQuc291dGhJbmRpY2VzRWFzdFRvV2VzdCxlYXN0SW5kaWNlc05vcnRoVG9Tb3V0aDp0LmVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoLG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6dC5ub3J0aEluZGljZXNXZXN0VG9FYXN0fX1mdW5jdGlvbiBETChuLGUsdCxvLGEscixpLGYsZCxjLHUpe2xldCBsLGgsbSxiLHAseTtfKG8pPyhsPW8ud2VzdCxoPW8uc291dGgsbT1vLmVhc3QsYj1vLm5vcnRoLHA9by53aWR0aCx5PW8uaGVpZ2h0KToobD1rLnRvUmFkaWFucyhhLndlc3QpLGg9ay50b1JhZGlhbnMoYS5zb3V0aCksbT1rLnRvUmFkaWFucyhhLmVhc3QpLGI9ay50b1JhZGlhbnMoYS5ub3J0aCkscD1rLnRvUmFkaWFucyhvLndpZHRoKSx5PWsudG9SYWRpYW5zKG8uaGVpZ2h0KSk7bGV0IEU9W2gsYl0sZz1bbCxtXSxBPW9vLmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKGUsdCksVD0kLmludmVyc2VUcmFuc2Zvcm1hdGlvbihBLEZMKSxSLFM7ZCYmKFI9eW4uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZShoKSxTPTEvKHluLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoYiktUikpO2xldCBJPXIhPT0xLE49bmV3IERhdGFWaWV3KG4pLFA9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLEY9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHc9a0w7dy54PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx3Lnk9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHcuej1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7bGV0IHg9dkw7eC54PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSx4Lnk9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHguej1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7bGV0IEM9MCx2PTAsaj0wLHosRDtmb3IoRD0wO0Q8NDsrK0Qpe2xldCBHZT1DO3o9Ti5nZXRVaW50MzIoR2UsITApLEdlKz0kXztsZXQgTGU9ay50b1JhZGlhbnMoTi5nZXRGbG9hdDY0KEdlLCEwKSoxODApO0dlKz1TYyx4ZChnLExlKT09PS0xJiZnLnB1c2goTGUpO2xldCBfdD1rLnRvUmFkaWFucyhOLmdldEZsb2F0NjQoR2UsITApKjE4MCk7R2UrPVNjLHhkKEUsX3QpPT09LTEmJkUucHVzaChfdCksR2UrPTIqU2M7bGV0IE10PU4uZ2V0SW50MzIoR2UsITApO0dlKz1obSx2Kz1NdCxNdD1OLmdldEludDMyKEdlLCEwKSxqKz1NdCozLEMrPXorJF99bGV0IEc9W10sVj1bXSxPPW5ldyBBcnJheSh2KSxaPW5ldyBBcnJheSh2KSxhZT1uZXcgQXJyYXkodiksY2U9ZD9uZXcgQXJyYXkodik6W10sZmU9ST9uZXcgQXJyYXkodik6W10sdGU9bmV3IEFycmF5KGopLG1lPVtdLHVlPVtdLGJlPVtdLGhlPVtdLFE9MCxUZT0wO2ZvcihDPTAsRD0wO0Q8NDsrK0Qpe3o9Ti5nZXRVaW50MzIoQywhMCksQys9JF87bGV0IEdlPUMsTGU9ay50b1JhZGlhbnMoTi5nZXRGbG9hdDY0KEMsITApKjE4MCk7Qys9U2M7bGV0IF90PWsudG9SYWRpYW5zKE4uZ2V0RmxvYXQ2NChDLCEwKSoxODApO0MrPVNjO2xldCBNdD1rLnRvUmFkaWFucyhOLmdldEZsb2F0NjQoQywhMCkqMTgwKSxHdD1NdCouNTtDKz1TYztsZXQgcXQ9ay50b1JhZGlhbnMoTi5nZXRGbG9hdDY0KEMsITApKjE4MCksUXQ9cXQqLjU7Qys9U2M7bGV0IHBuPU4uZ2V0SW50MzIoQywhMCk7Qys9aG07bGV0IE50PU4uZ2V0SW50MzIoQywhMCk7Qys9aG0sQys9aG07bGV0ICR0PW5ldyBBcnJheShwbik7Zm9yKGxldCBvbj0wO29uPHBuOysrb24pe2xldCBqbj1MZStOLmdldFVpbnQ4KEMrKykqTXQ7UG8ubG9uZ2l0dWRlPWpuO2xldCBVbj1fdCtOLmdldFVpbnQ4KEMrKykqcXQ7UG8ubGF0aXR1ZGU9VW47bGV0IFNuPU4uZ2V0RmxvYXQzMihDLCEwKTtpZihDKz1JTCxTbiE9PTAmJlNuPHUmJihTbio9LU1hdGgucG93KDIsYykpLFNuKj02MzcxMDEwLFBvLmhlaWdodD1Tbix4ZChnLGpuKSE9PS0xfHx4ZChFLFVuKSE9PS0xKXtsZXQgd249eGQoRyxQbyxyZSk7aWYod249PT0tMSlHLnB1c2gocmUuY2xvbmUoUG8pKSxWLnB1c2goUSk7ZWxzZXskdFtvbl09Vlt3bl07Y29udGludWV9fSR0W29uXT1RLE1hdGguYWJzKGpuLWwpPEd0P21lLnB1c2goe2luZGV4OlEsY2FydG9ncmFwaGljOnJlLmNsb25lKFBvKX0pOk1hdGguYWJzKGpuLW0pPEd0P2JlLnB1c2goe2luZGV4OlEsY2FydG9ncmFwaGljOnJlLmNsb25lKFBvKX0pOk1hdGguYWJzKFVuLWgpPFF0P3VlLnB1c2goe2luZGV4OlEsY2FydG9ncmFwaGljOnJlLmNsb25lKFBvKX0pOk1hdGguYWJzKFVuLWIpPFF0JiZoZS5wdXNoKHtpbmRleDpRLGNhcnRvZ3JhcGhpYzpyZS5jbG9uZShQbyl9KSxQPU1hdGgubWluKFNuLFApLEY9TWF0aC5tYXgoU24sRiksYWVbUV09U247bGV0IHRvPXQuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oUG8pO2lmKE9bUV09dG8sZCYmKGNlW1FdPSh5bi5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlKFVuKS1SKSpTKSxJKXtsZXQgd249dC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwodG8pO2ZlW1FdPXdufSQubXVsdGlwbHlCeVBvaW50KFQsdG8sSHMpLHMubWluaW11bUJ5Q29tcG9uZW50KEhzLHcsdykscy5tYXhpbXVtQnlDb21wb25lbnQoSHMseCx4KTtsZXQgU3Q9KGpuLWwpLyhtLWwpO1N0PWsuY2xhbXAoU3QsMCwxKTtsZXQgeXQ9KFVuLWgpLyhiLWgpO3l0PWsuY2xhbXAoeXQsMCwxKSxaW1FdPW5ldyBZKFN0LHl0KSwrK1F9bGV0IEZ0PU50KjM7Zm9yKGxldCBvbj0wO29uPEZ0Oysrb24sKytUZSl0ZVtUZV09JHRbTi5nZXRVaW50MTYoQywhMCldLEMrPU5MO2lmKHohPT1DLUdlKXRocm93IG5ldyBudCgiSW52YWxpZCB0ZXJyYWluIHRpbGUuIil9Ty5sZW5ndGg9USxaLmxlbmd0aD1RLGFlLmxlbmd0aD1RLGQmJihjZS5sZW5ndGg9USksSSYmKGZlLmxlbmd0aD1RKTtsZXQgQ2U9USxXZT1UZSx6ZT17aE1pbjpQLGxhc3RCb3JkZXJQb2ludDp2b2lkIDAsc2tpcnRIZWlnaHQ6Zix0b0VOVTpULGVsbGlwc29pZDp0LG1pbmltdW06dyxtYXhpbXVtOnh9O21lLnNvcnQoZnVuY3Rpb24oR2UsTGUpe3JldHVybiBMZS5jYXJ0b2dyYXBoaWMubGF0aXR1ZGUtR2UuY2FydG9ncmFwaGljLmxhdGl0dWRlfSksdWUuc29ydChmdW5jdGlvbihHZSxMZSl7cmV0dXJuIEdlLmNhcnRvZ3JhcGhpYy5sb25naXR1ZGUtTGUuY2FydG9ncmFwaGljLmxvbmdpdHVkZX0pLGJlLnNvcnQoZnVuY3Rpb24oR2UsTGUpe3JldHVybiBHZS5jYXJ0b2dyYXBoaWMubGF0aXR1ZGUtTGUuY2FydG9ncmFwaGljLmxhdGl0dWRlfSksaGUuc29ydChmdW5jdGlvbihHZSxMZSl7cmV0dXJuIExlLmNhcnRvZ3JhcGhpYy5sb25naXR1ZGUtR2UuY2FydG9ncmFwaGljLmxvbmdpdHVkZX0pO2xldCBaZT0xZS01O2lmKG1tKE8sYWUsWixjZSxmZSx0ZSx6ZSxtZSwtWmUqcCwhMCwtWmUqeSksbW0oTyxhZSxaLGNlLGZlLHRlLHplLHVlLC1aZSp5LCExKSxtbShPLGFlLFosY2UsZmUsdGUsemUsYmUsWmUqcCwhMCxaZSp5KSxtbShPLGFlLFosY2UsZmUsdGUsemUsaGUsWmUqeSwhMSksbWUubGVuZ3RoPjAmJmhlLmxlbmd0aD4wKXtsZXQgR2U9bWVbMF0uaW5kZXgsTGU9Q2UsX3Q9aGVbaGUubGVuZ3RoLTFdLmluZGV4LE10PU8ubGVuZ3RoLTE7dGUucHVzaChfdCxNdCxMZSxMZSxHZSxfdCl9dj1PLmxlbmd0aDtsZXQgS2U9Z2UuZnJvbVBvaW50cyhPKSxEZTtfKG8pJiYoRGU9bW4uZnJvbVJlY3RhbmdsZShvLFAsRix0KSk7bGV0IGV0PW5ldyBBcih0KS5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludFBvc3NpYmx5VW5kZXJFbGxpcHNvaWQoZSxPLFApLHFlPW5ldyBybyh3LHgsZSksYXQ9bmV3IG5hKGUscWUsemUuaE1pbixGLEEsITEsZCxJLHIsaSkseHQ9bmV3IEZsb2F0MzJBcnJheSh2KmF0LnN0cmlkZSksVHQ9MDtmb3IobGV0IEdlPTA7R2U8djsrK0dlKVR0PWF0LmVuY29kZSh4dCxUdCxPW0dlXSxaW0dlXSxhZVtHZV0sdm9pZCAwLGNlW0dlXSxmZVtHZV0pO2xldCBjdD1tZS5tYXAoZnVuY3Rpb24oR2Upe3JldHVybiBHZS5pbmRleH0pLnJldmVyc2UoKSx6dD11ZS5tYXAoZnVuY3Rpb24oR2Upe3JldHVybiBHZS5pbmRleH0pLnJldmVyc2UoKSxPdD1iZS5tYXAoZnVuY3Rpb24oR2Upe3JldHVybiBHZS5pbmRleH0pLnJldmVyc2UoKSxrdD1oZS5tYXAoZnVuY3Rpb24oR2Upe3JldHVybiBHZS5pbmRleH0pLnJldmVyc2UoKTtyZXR1cm4genQudW5zaGlmdChPdFtPdC5sZW5ndGgtMV0pLHp0LnB1c2goY3RbMF0pLGt0LnVuc2hpZnQoY3RbY3QubGVuZ3RoLTFdKSxrdC5wdXNoKE90WzBdKSx7dmVydGljZXM6eHQsaW5kaWNlczpuZXcgVWludDE2QXJyYXkodGUpLG1heGltdW1IZWlnaHQ6RixtaW5pbXVtSGVpZ2h0OlAsZW5jb2Rpbmc6YXQsYm91bmRpbmdTcGhlcmUzRDpLZSxvcmllbnRlZEJvdW5kaW5nQm94OkRlLG9jY2x1ZGVlUG9pbnRJblNjYWxlZFNwYWNlOmV0LHZlcnRleENvdW50V2l0aG91dFNraXJ0czpDZSxpbmRleENvdW50V2l0aG91dFNraXJ0czpXZSx3ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aDpjdCxzb3V0aEluZGljZXNFYXN0VG9XZXN0Onp0LGVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoOk90LG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6a3R9fWZ1bmN0aW9uIG1tKG4sZSx0LG8sYSxyLGksZixkLGMsdSl7bGV0IGw9Zi5sZW5ndGg7Zm9yKGxldCBoPTA7aDxsOysraCl7bGV0IG09ZltoXSxiPW0uY2FydG9ncmFwaGljLHA9bS5pbmRleCx5PW4ubGVuZ3RoLEU9Yi5sb25naXR1ZGUsZz1iLmxhdGl0dWRlO2c9ay5jbGFtcChnLC1rLlBJX09WRVJfVFdPLGsuUElfT1ZFUl9UV08pO2xldCBBPWIuaGVpZ2h0LWkuc2tpcnRIZWlnaHQ7aS5oTWluPU1hdGgubWluKGkuaE1pbixBKSxyZS5mcm9tUmFkaWFucyhFLGcsQSxQbyksYyYmKFBvLmxvbmdpdHVkZSs9ZCksYz9oPT09bC0xP1BvLmxhdGl0dWRlKz11Omg9PT0wJiYoUG8ubGF0aXR1ZGUtPXUpOlBvLmxhdGl0dWRlKz1kO2xldCBUPWkuZWxsaXBzb2lkLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKFBvKTtuLnB1c2goVCksZS5wdXNoKEEpLHQucHVzaChZLmNsb25lKHRbcF0pKSxvLmxlbmd0aD4wJiZvLnB1c2gob1twXSksYS5sZW5ndGg+MCYmYS5wdXNoKGFbcF0pLCQubXVsdGlwbHlCeVBvaW50KGkudG9FTlUsVCxIcyk7bGV0IFI9aS5taW5pbXVtLFM9aS5tYXhpbXVtO3MubWluaW11bUJ5Q29tcG9uZW50KEhzLFIsUikscy5tYXhpbXVtQnlDb21wb25lbnQoSHMsUyxTKTtsZXQgTT1pLmxhc3RCb3JkZXJQb2ludDtpZihfKE0pKXtsZXQgST1NLmluZGV4O3IucHVzaChJLHktMSx5LHkscCxJKX1pLmxhc3RCb3JkZXJQb2ludD1tfX12YXIgTkwsaG0sJF8sSUwsU2MsUG8sSHMsa0wsdkwsRkwsQkwsdHk9WCgoKT0+e3lpKCk7RXQoKTt2dCgpO01lKCk7Z3QoKTtzZSgpO1ZlKCk7R3MoKTtVZSgpO3VuKCk7QWkoKTtobigpO3BhKCk7VnMoKTtycigpO19pKCk7a24oKTtOTD1VaW50MTZBcnJheS5CWVRFU19QRVJfRUxFTUVOVCxobT1JbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5ULCRfPVVpbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5ULElMPUZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCxTYz1GbG9hdDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7UG89bmV3IHJlLEhzPW5ldyBzLGtMPW5ldyBzLHZMPW5ldyBzLEZMPW5ldyAkO0JMPW10KFBMKX0pO3ZhciBHeCxWeCxIeD1YKCgpPT57R3g9e05PTkU6MCxMRVJDOjF9O09iamVjdC5mcmVlemUoR3gpO1Z4PUd4fSk7dmFyIHdyLG55LGpMLFVMLExMLEt4LHF4PVgoKCk9Pnt5aSgpO0V0KCk7dnQoKTtNZSgpO3NlKCk7VmUoKTtHcygpO1VlKCk7dW4oKTtBaSgpO2huKCk7VnMoKTtycigpO19pKCk7d3I9e307d3IuREVGQVVMVF9TVFJVQ1RVUkU9T2JqZWN0LmZyZWV6ZSh7aGVpZ2h0U2NhbGU6MSxoZWlnaHRPZmZzZXQ6MCxlbGVtZW50c1BlckhlaWdodDoxLHN0cmlkZToxLGVsZW1lbnRNdWx0aXBsaWVyOjI1Nixpc0JpZ0VuZGlhbjohMX0pO255PW5ldyBzLGpMPW5ldyAkLFVMPW5ldyBzLExMPW5ldyBzO3dyLmNvbXB1dGVWZXJ0aWNlcz1mdW5jdGlvbihuKXtsZXQgZT1NYXRoLmNvcyx0PU1hdGguc2luLG89TWF0aC5zcXJ0LGE9TWF0aC5hdGFuLHI9TWF0aC5leHAsaT1rLlBJX09WRVJfVFdPLGY9ay50b1JhZGlhbnMsZD1uLmhlaWdodG1hcCxjPW4ud2lkdGgsdT1uLmhlaWdodCxsPW4uc2tpcnRIZWlnaHQsaD1sPjAsbT1uLmlzR2VvZ3JhcGhpYz8/ITAsYj1uLmVsbGlwc29pZD8/Sy5kZWZhdWx0LHA9MS9iLm1heGltdW1SYWRpdXMseT14ZS5jbG9uZShuLm5hdGl2ZVJlY3RhbmdsZSksRT14ZS5jbG9uZShuLnJlY3RhbmdsZSksZyxBLFQsUjtfKEUpPyhnPUUud2VzdCxBPUUuc291dGgsVD1FLmVhc3QsUj1FLm5vcnRoKTptPyhnPWYoeS53ZXN0KSxBPWYoeS5zb3V0aCksVD1mKHkuZWFzdCksUj1mKHkubm9ydGgpKTooZz15Lndlc3QqcCxBPWktMiphKHIoLXkuc291dGgqcCkpLFQ9eS5lYXN0KnAsUj1pLTIqYShyKC15Lm5vcnRoKnApKSk7bGV0IFM9bi5yZWxhdGl2ZVRvQ2VudGVyLE09XyhTKTtTPU0/UzpzLlpFUk87bGV0IEk9bi5pbmNsdWRlV2ViTWVyY2F0b3JUPz8hMSxOPW4uZXhhZ2dlcmF0aW9uPz8xLFA9bi5leGFnZ2VyYXRpb25SZWxhdGl2ZUhlaWdodD8/MCx3PU4hPT0xLHg9bi5zdHJ1Y3R1cmU/P3dyLkRFRkFVTFRfU1RSVUNUVVJFLEM9eC5oZWlnaHRTY2FsZT8/d3IuREVGQVVMVF9TVFJVQ1RVUkUuaGVpZ2h0U2NhbGUsdj14LmhlaWdodE9mZnNldD8/d3IuREVGQVVMVF9TVFJVQ1RVUkUuaGVpZ2h0T2Zmc2V0LGo9eC5lbGVtZW50c1BlckhlaWdodD8/d3IuREVGQVVMVF9TVFJVQ1RVUkUuZWxlbWVudHNQZXJIZWlnaHQsej14LnN0cmlkZT8/d3IuREVGQVVMVF9TVFJVQ1RVUkUuc3RyaWRlLEQ9eC5lbGVtZW50TXVsdGlwbGllcj8/d3IuREVGQVVMVF9TVFJVQ1RVUkUuZWxlbWVudE11bHRpcGxpZXIsRz14LmlzQmlnRW5kaWFuPz93ci5ERUZBVUxUX1NUUlVDVFVSRS5pc0JpZ0VuZGlhbixWPXhlLmNvbXB1dGVXaWR0aCh5KSxPPXhlLmNvbXB1dGVIZWlnaHQoeSksWj1WLyhjLTEpLGFlPU8vKHUtMSk7bXx8KFYqPXAsTyo9cCk7bGV0IGNlPWIucmFkaWlTcXVhcmVkLGZlPWNlLngsdGU9Y2UueSxtZT1jZS56LHVlPTY1NTM2LGJlPS02NTUzNixoZT1vby5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZShTLGIpLFE9JC5pbnZlcnNlVHJhbnNmb3JtYXRpb24oaGUsakwpLFRlLENlO0kmJihUZT15bi5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlKEEpLENlPTEvKHluLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoUiktVGUpKTtsZXQgV2U9VUw7V2UueD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksV2UueT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksV2Uuej1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7bGV0IHplPUxMO3plLng9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHplLnk9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHplLno9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2xldCBaZT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksS2U9Yyp1LERlPWw+MD9jKjIrdSoyOjAsQmU9S2UrRGUsZXQ9bmV3IEFycmF5KEJlKSxxZT1uZXcgQXJyYXkoQmUpLGF0PW5ldyBBcnJheShCZSkseHQ9ST9uZXcgQXJyYXkoQmUpOltdLFR0PXc/bmV3IEFycmF5KEJlKTpbXSxjdD0wLHp0PXUsT3Q9MCxrdD1jO2gmJigtLWN0LCsrenQsLS1PdCwrK2t0KTtsZXQgR2U9MWUtNTtmb3IobGV0IE50PWN0O050PHp0OysrTnQpe2xldCAkdD1OdDskdDwwJiYoJHQ9MCksJHQ+PXUmJigkdD11LTEpO2xldCBGdD15Lm5vcnRoLWFlKiR0O20/RnQ9ZihGdCk6RnQ9aS0yKmEocigtRnQqcCkpO2xldCBvbj0oRnQtQSkvKFItQSk7b249ay5jbGFtcChvbiwwLDEpO2xldCBqbj1OdD09PWN0LFVuPU50PT09enQtMTtsPjAmJihqbj9GdCs9R2UqTzpVbiYmKEZ0LT1HZSpPKSk7bGV0IFNuPWUoRnQpLHRvPXQoRnQpLFN0PW1lKnRvLHl0O0kmJih5dD0oeW4uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZShGdCktVGUpKkNlKTtmb3IobGV0IHduPU90O3duPGt0Oysrd24pe2xldCBDbj13bjtDbjwwJiYoQ249MCksQ24+PWMmJihDbj1jLTEpO2xldCBwbz0kdCooYyp6KStDbip6LER0O2lmKGo9PT0xKUR0PWRbcG9dO2Vsc2V7RHQ9MDtsZXQgZ287aWYoRylmb3IoZ289MDtnbzxqOysrZ28pRHQ9RHQqRCtkW3BvK2dvXTtlbHNlIGZvcihnbz1qLTE7Z28+PTA7LS1nbylEdD1EdCpEK2RbcG8rZ29dfUR0PUR0KkMrdixiZT1NYXRoLm1heChiZSxEdCksdWU9TWF0aC5taW4odWUsRHQpO2xldCBhbj15Lndlc3QrWipDbjttP2FuPWYoYW4pOmFuPWFuKnA7bGV0IEVvPShhbi1nKS8oVC1nKTtFbz1rLmNsYW1wKEVvLDAsMSk7bGV0IE1uPSR0KmMrQ247aWYobD4wKXtsZXQgZ289d249PT1PdCxEYT13bj09PWt0LTEsa2M9am58fFVufHxnb3x8RGE7aWYoKGpufHxVbikmJihnb3x8RGEpKWNvbnRpbnVlO2tjJiYoRHQtPWwsZ28/KE1uPUtlKyh1LSR0LTEpLGFuLT1HZSpWKTpVbj9Nbj1LZSt1KyhjLUNuLTEpOkRhPyhNbj1LZSt1K2MrJHQsYW4rPUdlKlYpOmpuJiYoTW49S2UrdStjK3UrQ24pKX1sZXQgSG89U24qZShhbiksdmE9U24qdChhbiksemk9ZmUqSG8sR2k9dGUqdmEsRmE9MS9vKHppKkhvK0dpKnZhK1N0KnRvKSxuaT16aSpGYSxWaT1HaSpGYSxPcj1TdCpGYSxjbz1uZXcgcztjby54PW5pK0hvKkR0LGNvLnk9VmkrdmEqRHQsY28uej1Pcit0bypEdCwkLm11bHRpcGx5QnlQb2ludChRLGNvLG55KSxzLm1pbmltdW1CeUNvbXBvbmVudChueSxXZSxXZSkscy5tYXhpbXVtQnlDb21wb25lbnQobnksemUsemUpLFplPU1hdGgubWluKFplLER0KSxldFtNbl09Y28sYXRbTW5dPW5ldyBZKEVvLG9uKSxxZVtNbl09RHQsSSYmKHh0W01uXT15dCksdyYmKFR0W01uXT1iLmdlb2RldGljU3VyZmFjZU5vcm1hbChjbykpfX1sZXQgTGU9Z2UuZnJvbVBvaW50cyhldCksX3Q7XyhFKSYmKF90PW1uLmZyb21SZWN0YW5nbGUoRSx1ZSxiZSxiKSk7bGV0IE10O00mJihNdD1uZXcgQXIoYikuY29tcHV0ZUhvcml6b25DdWxsaW5nUG9pbnRQb3NzaWJseVVuZGVyRWxsaXBzb2lkKFMsZXQsdWUpKTtsZXQgR3Q9bmV3IHJvKFdlLHplLFMpLHF0PW5ldyBuYShTLEd0LFplLGJlLGhlLCExLEksdyxOLFApLFF0PW5ldyBGbG9hdDMyQXJyYXkoQmUqcXQuc3RyaWRlKSxwbj0wO2ZvcihsZXQgTnQ9MDtOdDxCZTsrK050KXBuPXF0LmVuY29kZShRdCxwbixldFtOdF0sYXRbTnRdLHFlW050XSx2b2lkIDAseHRbTnRdLFR0W050XSk7cmV0dXJue3ZlcnRpY2VzOlF0LG1heGltdW1IZWlnaHQ6YmUsbWluaW11bUhlaWdodDp1ZSxlbmNvZGluZzpxdCxib3VuZGluZ1NwaGVyZTNEOkxlLG9yaWVudGVkQm91bmRpbmdCb3g6X3Qsb2NjbHVkZWVQb2ludEluU2NhbGVkU3BhY2U6TXR9fTtLeD13cn0pO3ZhciBXeD1zaSgoY3VlLGJtKT0+ey8qIENvcHlyaWdodCAyMDE1LTIwMTggRXNyaS4gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCBAcHJlc2VydmUgKi8oZnVuY3Rpb24oKXt2YXIgbj0oZnVuY3Rpb24oKXt2YXIgYT17fTthLmRlZmF1bHROb0RhdGFWYWx1ZT0tMzQwMjc5OTkzODc5MDE0ODRlMjIsYS5kZWNvZGU9ZnVuY3Rpb24odSxsKXtsPWx8fHt9O3ZhciBoPWwuZW5jb2RlZE1hc2tEYXRhfHxsLmVuY29kZWRNYXNrRGF0YT09PW51bGwsbT1kKHUsbC5pbnB1dE9mZnNldHx8MCxoKSxiPWwubm9EYXRhVmFsdWUhPT1udWxsP2wubm9EYXRhVmFsdWU6YS5kZWZhdWx0Tm9EYXRhVmFsdWUscD1yKG0sbC5waXhlbFR5cGV8fEZsb2F0MzJBcnJheSxsLmVuY29kZWRNYXNrRGF0YSxiLGwucmV0dXJuTWFzaykseT17d2lkdGg6bS53aWR0aCxoZWlnaHQ6bS5oZWlnaHQscGl4ZWxEYXRhOnAucmVzdWx0UGl4ZWxzLG1pblZhbHVlOnAubWluVmFsdWUsbWF4VmFsdWU6bS5waXhlbHMubWF4VmFsdWUsbm9EYXRhVmFsdWU6Yn07cmV0dXJuIHAucmVzdWx0TWFzayYmKHkubWFza0RhdGE9cC5yZXN1bHRNYXNrKSxsLnJldHVybkVuY29kZWRNYXNrJiZtLm1hc2smJih5LmVuY29kZWRNYXNrRGF0YT1tLm1hc2suYml0c2V0P20ubWFzay5iaXRzZXQ6bnVsbCksbC5yZXR1cm5GaWxlSW5mbyYmKHkuZmlsZUluZm89aShtKSxsLmNvbXB1dGVVc2VkQml0RGVwdGhzJiYoeS5maWxlSW5mby5iaXREZXB0aHM9ZihtKSkpLHl9O3ZhciByPWZ1bmN0aW9uKHUsbCxoLG0sYil7dmFyIHA9MCx5PXUucGl4ZWxzLm51bUJsb2Nrc1gsRT11LnBpeGVscy5udW1CbG9ja3NZLGc9TWF0aC5mbG9vcih1LndpZHRoL3kpLEE9TWF0aC5mbG9vcih1LmhlaWdodC9FKSxUPTIqdS5tYXhaRXJyb3IsUj1OdW1iZXIuTUFYX1ZBTFVFLFM7aD1ofHwodS5tYXNrP3UubWFzay5iaXRzZXQ6bnVsbCk7dmFyIE0sSTtNPW5ldyBsKHUud2lkdGgqdS5oZWlnaHQpLGImJmgmJihJPW5ldyBVaW50OEFycmF5KHUud2lkdGgqdS5oZWlnaHQpKTtmb3IodmFyIE49bmV3IEZsb2F0MzJBcnJheShnKkEpLFAsRix3PTA7dzw9RTt3Kyspe3ZhciB4PXchPT1FP0E6dS5oZWlnaHQlRTtpZih4IT09MClmb3IodmFyIEM9MDtDPD15O0MrKyl7dmFyIHY9QyE9PXk/Zzp1LndpZHRoJXk7aWYodiE9PTApe3ZhciBqPXcqdS53aWR0aCpBK0MqZyx6PXUud2lkdGgtdixEPXUucGl4ZWxzLmJsb2Nrc1twXSxHLFYsTztELmVuY29kaW5nPDI/KEQuZW5jb2Rpbmc9PT0wP0c9RC5yYXdEYXRhOihjKEQuc3R1ZmZlZERhdGEsRC5iaXRzUGVyUGl4ZWwsRC5udW1WYWxpZFBpeGVscyxELm9mZnNldCxULE4sdS5waXhlbHMubWF4VmFsdWUpLEc9TiksVj0wKTpELmVuY29kaW5nPT09Mj9PPTA6Tz1ELm9mZnNldDt2YXIgWjtpZihoKWZvcihGPTA7Rjx4O0YrKyl7Zm9yKGomNyYmKFo9aFtqPj4zXSxaPDw9aiY3KSxQPTA7UDx2O1ArKylqJjd8fChaPWhbaj4+M10pLFomMTI4PyhJJiYoSVtqXT0xKSxTPUQuZW5jb2Rpbmc8Mj9HW1YrK106TyxSPVI+Uz9TOlIsTVtqKytdPVMpOihJJiYoSVtqXT0wKSxNW2orK109bSksWjw8PTE7ais9en1lbHNlIGlmKEQuZW5jb2Rpbmc8Milmb3IoRj0wO0Y8eDtGKyspe2ZvcihQPTA7UDx2O1ArKylTPUdbVisrXSxSPVI+Uz9TOlIsTVtqKytdPVM7ais9en1lbHNlIGZvcihSPVI+Tz9POlIsRj0wO0Y8eDtGKyspe2ZvcihQPTA7UDx2O1ArKylNW2orK109TztqKz16fWlmKEQuZW5jb2Rpbmc9PT0xJiZWIT09RC5udW1WYWxpZFBpeGVscyl0aHJvdyJCbG9jayBhbmQgTWFzayBkbyBub3QgbWF0Y2giO3ArK319fXJldHVybntyZXN1bHRQaXhlbHM6TSxyZXN1bHRNYXNrOkksbWluVmFsdWU6Un19LGk9ZnVuY3Rpb24odSl7cmV0dXJue2ZpbGVJZGVudGlmaWVyU3RyaW5nOnUuZmlsZUlkZW50aWZpZXJTdHJpbmcsZmlsZVZlcnNpb246dS5maWxlVmVyc2lvbixpbWFnZVR5cGU6dS5pbWFnZVR5cGUsaGVpZ2h0OnUuaGVpZ2h0LHdpZHRoOnUud2lkdGgsbWF4WkVycm9yOnUubWF4WkVycm9yLGVvZk9mZnNldDp1LmVvZk9mZnNldCxtYXNrOnUubWFzaz97bnVtQmxvY2tzWDp1Lm1hc2subnVtQmxvY2tzWCxudW1CbG9ja3NZOnUubWFzay5udW1CbG9ja3NZLG51bUJ5dGVzOnUubWFzay5udW1CeXRlcyxtYXhWYWx1ZTp1Lm1hc2subWF4VmFsdWV9Om51bGwscGl4ZWxzOntudW1CbG9ja3NYOnUucGl4ZWxzLm51bUJsb2Nrc1gsbnVtQmxvY2tzWTp1LnBpeGVscy5udW1CbG9ja3NZLG51bUJ5dGVzOnUucGl4ZWxzLm51bUJ5dGVzLG1heFZhbHVlOnUucGl4ZWxzLm1heFZhbHVlLG5vRGF0YVZhbHVlOnUubm9EYXRhVmFsdWV9fX0sZj1mdW5jdGlvbih1KXtmb3IodmFyIGw9dS5waXhlbHMubnVtQmxvY2tzWCp1LnBpeGVscy5udW1CbG9ja3NZLGg9e30sbT0wO208bDttKyspe3ZhciBiPXUucGl4ZWxzLmJsb2Nrc1ttXTtiLmVuY29kaW5nPT09MD9oLmZsb2F0MzI9ITA6Yi5lbmNvZGluZz09PTE/aFtiLmJpdHNQZXJQaXhlbF09ITA6aFswXT0hMH1yZXR1cm4gT2JqZWN0LmtleXMoaCl9LGQ9ZnVuY3Rpb24odSxsLGgpe3ZhciBtPXt9LGI9bmV3IFVpbnQ4QXJyYXkodSxsLDEwKTtpZihtLmZpbGVJZGVudGlmaWVyU3RyaW5nPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxiKSxtLmZpbGVJZGVudGlmaWVyU3RyaW5nLnRyaW0oKSE9PSJDbnRaSW1hZ2UiKXRocm93IlVuZXhwZWN0ZWQgZmlsZSBpZGVudGlmaWVyIHN0cmluZzogIittLmZpbGVJZGVudGlmaWVyU3RyaW5nO2wrPTEwO3ZhciBwPW5ldyBEYXRhVmlldyh1LGwsMjQpO2lmKG0uZmlsZVZlcnNpb249cC5nZXRJbnQzMigwLCEwKSxtLmltYWdlVHlwZT1wLmdldEludDMyKDQsITApLG0uaGVpZ2h0PXAuZ2V0VWludDMyKDgsITApLG0ud2lkdGg9cC5nZXRVaW50MzIoMTIsITApLG0ubWF4WkVycm9yPXAuZ2V0RmxvYXQ2NCgxNiwhMCksbCs9MjQsIWgpaWYocD1uZXcgRGF0YVZpZXcodSxsLDE2KSxtLm1hc2s9e30sbS5tYXNrLm51bUJsb2Nrc1k9cC5nZXRVaW50MzIoMCwhMCksbS5tYXNrLm51bUJsb2Nrc1g9cC5nZXRVaW50MzIoNCwhMCksbS5tYXNrLm51bUJ5dGVzPXAuZ2V0VWludDMyKDgsITApLG0ubWFzay5tYXhWYWx1ZT1wLmdldEZsb2F0MzIoMTIsITApLGwrPTE2LG0ubWFzay5udW1CeXRlcz4wKXt2YXIgeT1uZXcgVWludDhBcnJheShNYXRoLmNlaWwobS53aWR0aCptLmhlaWdodC84KSk7cD1uZXcgRGF0YVZpZXcodSxsLG0ubWFzay5udW1CeXRlcyk7dmFyIEU9cC5nZXRJbnQxNigwLCEwKSxnPTIsQT0wO2Rve2lmKEU+MClmb3IoO0UtLTspeVtBKytdPXAuZ2V0VWludDgoZysrKTtlbHNle3ZhciBUPXAuZ2V0VWludDgoZysrKTtmb3IoRT0tRTtFLS07KXlbQSsrXT1UfUU9cC5nZXRJbnQxNihnLCEwKSxnKz0yfXdoaWxlKGc8bS5tYXNrLm51bUJ5dGVzKTtpZihFIT09LTMyNzY4fHxBPHkubGVuZ3RoKXRocm93IlVuZXhwZWN0ZWQgZW5kIG9mIG1hc2sgUkxFIGVuY29kaW5nIjttLm1hc2suYml0c2V0PXksbCs9bS5tYXNrLm51bUJ5dGVzfWVsc2UobS5tYXNrLm51bUJ5dGVzfG0ubWFzay5udW1CbG9ja3NZfG0ubWFzay5tYXhWYWx1ZSk9PT0wJiYobS5tYXNrLmJpdHNldD1uZXcgVWludDhBcnJheShNYXRoLmNlaWwobS53aWR0aCptLmhlaWdodC84KSkpO3A9bmV3IERhdGFWaWV3KHUsbCwxNiksbS5waXhlbHM9e30sbS5waXhlbHMubnVtQmxvY2tzWT1wLmdldFVpbnQzMigwLCEwKSxtLnBpeGVscy5udW1CbG9ja3NYPXAuZ2V0VWludDMyKDQsITApLG0ucGl4ZWxzLm51bUJ5dGVzPXAuZ2V0VWludDMyKDgsITApLG0ucGl4ZWxzLm1heFZhbHVlPXAuZ2V0RmxvYXQzMigxMiwhMCksbCs9MTY7dmFyIFI9bS5waXhlbHMubnVtQmxvY2tzWCxTPW0ucGl4ZWxzLm51bUJsb2Nrc1ksTT1SKyhtLndpZHRoJVI+MD8xOjApLEk9UysobS5oZWlnaHQlUz4wPzE6MCk7bS5waXhlbHMuYmxvY2tzPW5ldyBBcnJheShNKkkpO2Zvcih2YXIgTj0wLFA9MDtQPEk7UCsrKWZvcih2YXIgRj0wO0Y8TTtGKyspe3ZhciB3PTAseD11LmJ5dGVMZW5ndGgtbDtwPW5ldyBEYXRhVmlldyh1LGwsTWF0aC5taW4oMTAseCkpO3ZhciBDPXt9O20ucGl4ZWxzLmJsb2Nrc1tOKytdPUM7dmFyIHY9cC5nZXRVaW50OCgwKTtpZih3KyssQy5lbmNvZGluZz12JjYzLEMuZW5jb2Rpbmc+Myl0aHJvdyJJbnZhbGlkIGJsb2NrIGVuY29kaW5nICgiK0MuZW5jb2RpbmcrIikiO2lmKEMuZW5jb2Rpbmc9PT0yKXtsKys7Y29udGludWV9aWYodiE9PTAmJnYhPT0yKXtpZih2Pj49NixDLm9mZnNldFR5cGU9dix2PT09MilDLm9mZnNldD1wLmdldEludDgoMSksdysrO2Vsc2UgaWYodj09PTEpQy5vZmZzZXQ9cC5nZXRJbnQxNigxLCEwKSx3Kz0yO2Vsc2UgaWYodj09PTApQy5vZmZzZXQ9cC5nZXRGbG9hdDMyKDEsITApLHcrPTQ7ZWxzZSB0aHJvdyJJbnZhbGlkIGJsb2NrIG9mZnNldCB0eXBlIjtpZihDLmVuY29kaW5nPT09MSlpZih2PXAuZ2V0VWludDgodyksdysrLEMuYml0c1BlclBpeGVsPXYmNjMsdj4+PTYsQy5udW1WYWxpZFBpeGVsc1R5cGU9dix2PT09MilDLm51bVZhbGlkUGl4ZWxzPXAuZ2V0VWludDgodyksdysrO2Vsc2UgaWYodj09PTEpQy5udW1WYWxpZFBpeGVscz1wLmdldFVpbnQxNih3LCEwKSx3Kz0yO2Vsc2UgaWYodj09PTApQy5udW1WYWxpZFBpeGVscz1wLmdldFVpbnQzMih3LCEwKSx3Kz00O2Vsc2UgdGhyb3ciSW52YWxpZCB2YWxpZCBwaXhlbCBjb3VudCB0eXBlIn1pZihsKz13LEMuZW5jb2RpbmchPT0zKXt2YXIgaix6O2lmKEMuZW5jb2Rpbmc9PT0wKXt2YXIgRD0obS5waXhlbHMubnVtQnl0ZXMtMSkvNDtpZihEIT09TWF0aC5mbG9vcihEKSl0aHJvdyJ1bmNvbXByZXNzZWQgYmxvY2sgaGFzIGludmFsaWQgbGVuZ3RoIjtqPW5ldyBBcnJheUJ1ZmZlcihEKjQpLHo9bmV3IFVpbnQ4QXJyYXkoaiksei5zZXQobmV3IFVpbnQ4QXJyYXkodSxsLEQqNCkpO3ZhciBHPW5ldyBGbG9hdDMyQXJyYXkoaik7Qy5yYXdEYXRhPUcsbCs9RCo0fWVsc2UgaWYoQy5lbmNvZGluZz09PTEpe3ZhciBWPU1hdGguY2VpbChDLm51bVZhbGlkUGl4ZWxzKkMuYml0c1BlclBpeGVsLzgpLE89TWF0aC5jZWlsKFYvNCk7aj1uZXcgQXJyYXlCdWZmZXIoTyo0KSx6PW5ldyBVaW50OEFycmF5KGopLHouc2V0KG5ldyBVaW50OEFycmF5KHUsbCxWKSksQy5zdHVmZmVkRGF0YT1uZXcgVWludDMyQXJyYXkoaiksbCs9Vn19fXJldHVybiBtLmVvZk9mZnNldD1sLG19LGM9ZnVuY3Rpb24odSxsLGgsbSxiLHAseSl7dmFyIEU9KDE8PGwpLTEsZz0wLEEsVD0wLFIsUyxNPU1hdGguY2VpbCgoeS1tKS9iKSxJPXUubGVuZ3RoKjQtTWF0aC5jZWlsKGwqaC84KTtmb3IodVt1Lmxlbmd0aC0xXTw8PTgqSSxBPTA7QTxoO0ErKyl7aWYoVD09PTAmJihTPXVbZysrXSxUPTMyKSxUPj1sKVI9Uz4+PlQtbCZFLFQtPWw7ZWxzZXt2YXIgTj1sLVQ7Uj0oUyZFKTw8TiZFLFM9dVtnKytdLFQ9MzItTixSKz1TPj4+VH1wW0FdPVI8TT9tK1IqYjp5fXJldHVybiBwfTtyZXR1cm4gYX0pKCksZT0oZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGE9e3Vuc3R1ZmY6ZnVuY3Rpb24oZCxjLHUsbCxoLG0sYixwKXt2YXIgeT0oMTw8dSktMSxFPTAsZyxBPTAsVCxSLFMsTSxJPWQubGVuZ3RoKjQtTWF0aC5jZWlsKHUqbC84KTtpZihkW2QubGVuZ3RoLTFdPDw9OCpJLGgpZm9yKGc9MDtnPGw7ZysrKUE9PT0wJiYoUj1kW0UrK10sQT0zMiksQT49dT8oVD1SPj4+QS11JnksQS09dSk6KFM9dS1BLFQ9KFImeSk8PFMmeSxSPWRbRSsrXSxBPTMyLVMsVCs9Uj4+PkEpLGNbZ109aFtUXTtlbHNlIGZvcihNPU1hdGguY2VpbCgocC1tKS9iKSxnPTA7ZzxsO2crKylBPT09MCYmKFI9ZFtFKytdLEE9MzIpLEE+PXU/KFQ9Uj4+PkEtdSZ5LEEtPXUpOihTPXUtQSxUPShSJnkpPDxTJnksUj1kW0UrK10sQT0zMi1TLFQrPVI+Pj5BKSxjW2ddPVQ8TT9tK1QqYjpwfSx1bnN0dWZmTFVUOmZ1bmN0aW9uKGQsYyx1LGwsaCxtKXt2YXIgYj0oMTw8YyktMSxwPTAseT0wLEU9MCxnPTAsQT0wLFQsUj1bXSxTPWQubGVuZ3RoKjQtTWF0aC5jZWlsKGMqdS84KTtkW2QubGVuZ3RoLTFdPDw9OCpTO3ZhciBNPU1hdGguY2VpbCgobS1sKS9oKTtmb3IoeT0wO3k8dTt5KyspZz09PTAmJihUPWRbcCsrXSxnPTMyKSxnPj1jPyhBPVQ+Pj5nLWMmYixnLT1jKTooRT1jLWcsQT0oVCZiKTw8RSZiLFQ9ZFtwKytdLGc9MzItRSxBKz1UPj4+ZyksUlt5XT1BPE0/bCtBKmg6bTtyZXR1cm4gUi51bnNoaWZ0KGwpLFJ9LHVuc3R1ZmYyOmZ1bmN0aW9uKGQsYyx1LGwsaCxtLGIscCl7dmFyIHk9KDE8PHUpLTEsRT0wLGcsQT0wLFQ9MCxSLFMsTTtpZihoKWZvcihnPTA7ZzxsO2crKylBPT09MCYmKFM9ZFtFKytdLEE9MzIsVD0wKSxBPj11PyhSPVM+Pj5UJnksQS09dSxUKz11KTooTT11LUEsUj1TPj4+VCZ5LFM9ZFtFKytdLEE9MzItTSxSfD0oUyYoMTw8TSktMSk8PHUtTSxUPU0pLGNbZ109aFtSXTtlbHNle3ZhciBJPU1hdGguY2VpbCgocC1tKS9iKTtmb3IoZz0wO2c8bDtnKyspQT09PTAmJihTPWRbRSsrXSxBPTMyLFQ9MCksQT49dT8oUj1TPj4+VCZ5LEEtPXUsVCs9dSk6KE09dS1BLFI9Uz4+PlQmeSxTPWRbRSsrXSxBPTMyLU0sUnw9KFMmKDE8PE0pLTEpPDx1LU0sVD1NKSxjW2ddPVI8ST9tK1IqYjpwfXJldHVybiBjfSx1bnN0dWZmTFVUMjpmdW5jdGlvbihkLGMsdSxsLGgsbSl7dmFyIGI9KDE8PGMpLTEscD0wLHk9MCxFPTAsZz0wLEE9MCxUPTAsUixTPVtdLE09TWF0aC5jZWlsKChtLWwpL2gpO2Zvcih5PTA7eTx1O3krKylnPT09MCYmKFI9ZFtwKytdLGc9MzIsVD0wKSxnPj1jPyhBPVI+Pj5UJmIsZy09YyxUKz1jKTooRT1jLWcsQT1SPj4+VCZiLFI9ZFtwKytdLGc9MzItRSxBfD0oUiYoMTw8RSktMSk8PGMtRSxUPUUpLFNbeV09QTxNP2wrQSpoOm07cmV0dXJuIFMudW5zaGlmdChsKSxTfSxvcmlnaW5hbFVuc3R1ZmY6ZnVuY3Rpb24oZCxjLHUsbCl7dmFyIGg9KDE8PHUpLTEsbT0wLGIscD0wLHksRSxnLEE9ZC5sZW5ndGgqNC1NYXRoLmNlaWwodSpsLzgpO2ZvcihkW2QubGVuZ3RoLTFdPDw9OCpBLGI9MDtiPGw7YisrKXA9PT0wJiYoRT1kW20rK10scD0zMikscD49dT8oeT1FPj4+cC11JmgscC09dSk6KGc9dS1wLHk9KEUmaCk8PGcmaCxFPWRbbSsrXSxwPTMyLWcseSs9RT4+PnApLGNbYl09eTtyZXR1cm4gY30sb3JpZ2luYWxVbnN0dWZmMjpmdW5jdGlvbihkLGMsdSxsKXt2YXIgaD0oMTw8dSktMSxtPTAsYixwPTAseT0wLEUsZyxBO2ZvcihiPTA7YjxsO2IrKylwPT09MCYmKGc9ZFttKytdLHA9MzIseT0wKSxwPj11PyhFPWc+Pj55JmgscC09dSx5Kz11KTooQT11LXAsRT1nPj4+eSZoLGc9ZFttKytdLHA9MzItQSxFfD0oZyYoMTw8QSktMSk8PHUtQSx5PUEpLGNbYl09RTtyZXR1cm4gY319LHI9e0hVRkZNQU5fTFVUX0JJVFNfTUFYOjEyLGNvbXB1dGVDaGVja3N1bUZsZXRjaGVyMzI6ZnVuY3Rpb24oZCl7Zm9yKHZhciBjPTY1NTM1LHU9NjU1MzUsbD1kLmxlbmd0aCxoPU1hdGguZmxvb3IobC8yKSxtPTA7aDspe3ZhciBiPWg+PTM1OT8zNTk6aDtoLT1iO2RvIGMrPWRbbSsrXTw8OCx1Kz1jKz1kW20rK107d2hpbGUoLS1iKTtjPShjJjY1NTM1KSsoYz4+PjE2KSx1PSh1JjY1NTM1KSsodT4+PjE2KX1yZXR1cm4gbCYxJiYodSs9Yys9ZFttXTw8OCksYz0oYyY2NTUzNSkrKGM+Pj4xNiksdT0odSY2NTUzNSkrKHU+Pj4xNiksKHU8PDE2fGMpPj4+MH0scmVhZEhlYWRlckluZm86ZnVuY3Rpb24oZCxjKXt2YXIgdT1jLnB0cixsPW5ldyBVaW50OEFycmF5KGQsdSw2KSxoPXt9O2lmKGguZmlsZUlkZW50aWZpZXJTdHJpbmc9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGwpLGguZmlsZUlkZW50aWZpZXJTdHJpbmcubGFzdEluZGV4T2YoIkxlcmMyIiwwKSE9PTApdGhyb3ciVW5leHBlY3RlZCBmaWxlIGlkZW50aWZpZXIgc3RyaW5nIChleHBlY3QgTGVyYzIgKTogIitoLmZpbGVJZGVudGlmaWVyU3RyaW5nO3UrPTY7dmFyIG09bmV3IERhdGFWaWV3KGQsdSw4KSxiPW0uZ2V0SW50MzIoMCwhMCk7aC5maWxlVmVyc2lvbj1iLHUrPTQsYj49MyYmKGguY2hlY2tzdW09bS5nZXRVaW50MzIoNCwhMCksdSs9NCksbT1uZXcgRGF0YVZpZXcoZCx1LDEyKSxoLmhlaWdodD1tLmdldFVpbnQzMigwLCEwKSxoLndpZHRoPW0uZ2V0VWludDMyKDQsITApLHUrPTgsYj49ND8oaC5udW1EaW1zPW0uZ2V0VWludDMyKDgsITApLHUrPTQpOmgubnVtRGltcz0xLG09bmV3IERhdGFWaWV3KGQsdSw0MCksaC5udW1WYWxpZFBpeGVsPW0uZ2V0VWludDMyKDAsITApLGgubWljcm9CbG9ja1NpemU9bS5nZXRJbnQzMig0LCEwKSxoLmJsb2JTaXplPW0uZ2V0SW50MzIoOCwhMCksaC5pbWFnZVR5cGU9bS5nZXRJbnQzMigxMiwhMCksaC5tYXhaRXJyb3I9bS5nZXRGbG9hdDY0KDE2LCEwKSxoLnpNaW49bS5nZXRGbG9hdDY0KDI0LCEwKSxoLnpNYXg9bS5nZXRGbG9hdDY0KDMyLCEwKSx1Kz00MCxjLmhlYWRlckluZm89aCxjLnB0cj11O3ZhciBwLHk7aWYoYj49MyYmKHk9Yj49ND81Mjo0OCxwPXRoaXMuY29tcHV0ZUNoZWNrc3VtRmxldGNoZXIzMihuZXcgVWludDhBcnJheShkLHUteSxoLmJsb2JTaXplLTE0KSkscCE9PWguY2hlY2tzdW0pKXRocm93IkNoZWNrc3VtIGZhaWxlZC4iO3JldHVybiEwfSxjaGVja01pbk1heFJhbmdlczpmdW5jdGlvbihkLGMpe3ZhciB1PWMuaGVhZGVySW5mbyxsPXRoaXMuZ2V0RGF0YVR5cGVBcnJheSh1LmltYWdlVHlwZSksaD11Lm51bURpbXMqdGhpcy5nZXREYXRhVHlwZVNpemUodS5pbWFnZVR5cGUpLG09dGhpcy5yZWFkU3ViQXJyYXkoZCxjLnB0cixsLGgpLGI9dGhpcy5yZWFkU3ViQXJyYXkoZCxjLnB0citoLGwsaCk7Yy5wdHIrPTIqaDt2YXIgcCx5PSEwO2ZvcihwPTA7cDx1Lm51bURpbXM7cCsrKWlmKG1bcF0hPT1iW3BdKXt5PSExO2JyZWFrfXJldHVybiB1Lm1pblZhbHVlcz1tLHUubWF4VmFsdWVzPWIseX0scmVhZFN1YkFycmF5OmZ1bmN0aW9uKGQsYyx1LGwpe3ZhciBoO2lmKHU9PT1VaW50OEFycmF5KWg9bmV3IFVpbnQ4QXJyYXkoZCxjLGwpO2Vsc2V7dmFyIG09bmV3IEFycmF5QnVmZmVyKGwpLGI9bmV3IFVpbnQ4QXJyYXkobSk7Yi5zZXQobmV3IFVpbnQ4QXJyYXkoZCxjLGwpKSxoPW5ldyB1KG0pfXJldHVybiBofSxyZWFkTWFzazpmdW5jdGlvbihkLGMpe3ZhciB1PWMucHRyLGw9Yy5oZWFkZXJJbmZvLGg9bC53aWR0aCpsLmhlaWdodCxtPWwubnVtVmFsaWRQaXhlbCxiPW5ldyBEYXRhVmlldyhkLHUsNCkscD17fTtpZihwLm51bUJ5dGVzPWIuZ2V0VWludDMyKDAsITApLHUrPTQsKG09PT0wfHxoPT09bSkmJnAubnVtQnl0ZXMhPT0wKXRocm93ImludmFsaWQgbWFzayI7dmFyIHksRTtpZihtPT09MCl5PW5ldyBVaW50OEFycmF5KE1hdGguY2VpbChoLzgpKSxwLmJpdHNldD15LEU9bmV3IFVpbnQ4QXJyYXkoaCksYy5waXhlbHMucmVzdWx0TWFzaz1FLHUrPXAubnVtQnl0ZXM7ZWxzZSBpZihwLm51bUJ5dGVzPjApe3k9bmV3IFVpbnQ4QXJyYXkoTWF0aC5jZWlsKGgvOCkpLGI9bmV3IERhdGFWaWV3KGQsdSxwLm51bUJ5dGVzKTt2YXIgZz1iLmdldEludDE2KDAsITApLEE9MixUPTAsUj0wO2Rve2lmKGc+MClmb3IoO2ctLTspeVtUKytdPWIuZ2V0VWludDgoQSsrKTtlbHNlIGZvcihSPWIuZ2V0VWludDgoQSsrKSxnPS1nO2ctLTspeVtUKytdPVI7Zz1iLmdldEludDE2KEEsITApLEErPTJ9d2hpbGUoQTxwLm51bUJ5dGVzKTtpZihnIT09LTMyNzY4fHxUPHkubGVuZ3RoKXRocm93IlVuZXhwZWN0ZWQgZW5kIG9mIG1hc2sgUkxFIGVuY29kaW5nIjtFPW5ldyBVaW50OEFycmF5KGgpO3ZhciBTPTAsTT0wO2ZvcihNPTA7TTxoO00rKylNJjc/KFM9eVtNPj4zXSxTPDw9TSY3KTpTPXlbTT4+M10sUyYxMjgmJihFW01dPTEpO2MucGl4ZWxzLnJlc3VsdE1hc2s9RSxwLmJpdHNldD15LHUrPXAubnVtQnl0ZXN9cmV0dXJuIGMucHRyPXUsYy5tYXNrPXAsITB9LHJlYWREYXRhT25lU3dlZXA6ZnVuY3Rpb24oZCxjLHUpe3ZhciBsPWMucHRyLGg9Yy5oZWFkZXJJbmZvLG09aC5udW1EaW1zLGI9aC53aWR0aCpoLmhlaWdodCxwPWguaW1hZ2VUeXBlLHk9aC5udW1WYWxpZFBpeGVsKnIuZ2V0RGF0YVR5cGVTaXplKHApKm0sRSxnPWMucGl4ZWxzLnJlc3VsdE1hc2s7aWYodT09PVVpbnQ4QXJyYXkpRT1uZXcgVWludDhBcnJheShkLGwseSk7ZWxzZXt2YXIgQT1uZXcgQXJyYXlCdWZmZXIoeSksVD1uZXcgVWludDhBcnJheShBKTtULnNldChuZXcgVWludDhBcnJheShkLGwseSkpLEU9bmV3IHUoQSl9aWYoRS5sZW5ndGg9PT1iKm0pYy5waXhlbHMucmVzdWx0UGl4ZWxzPUU7ZWxzZXtjLnBpeGVscy5yZXN1bHRQaXhlbHM9bmV3IHUoYiptKTt2YXIgUj0wLFM9MCxNPTAsST0wO2lmKG0+MSlmb3IoTT0wO008bTtNKyspZm9yKEk9TSpiLFM9MDtTPGI7UysrKWdbU10mJihjLnBpeGVscy5yZXN1bHRQaXhlbHNbSStTXT1FW1IrK10pO2Vsc2UgZm9yKFM9MDtTPGI7UysrKWdbU10mJihjLnBpeGVscy5yZXN1bHRQaXhlbHNbU109RVtSKytdKX1yZXR1cm4gbCs9eSxjLnB0cj1sLCEwfSxyZWFkSHVmZm1hblRyZWU6ZnVuY3Rpb24oZCxjKXt2YXIgdT10aGlzLkhVRkZNQU5fTFVUX0JJVFNfTUFYLGw9bmV3IERhdGFWaWV3KGQsYy5wdHIsMTYpO2MucHRyKz0xNjt2YXIgaD1sLmdldEludDMyKDAsITApO2lmKGg8Mil0aHJvdyJ1bnN1cHBvcnRlZCBIdWZmbWFuIHZlcnNpb24iO3ZhciBtPWwuZ2V0SW50MzIoNCwhMCksYj1sLmdldEludDMyKDgsITApLHA9bC5nZXRJbnQzMigxMiwhMCk7aWYoYj49cClyZXR1cm4hMTt2YXIgeT1uZXcgVWludDMyQXJyYXkocC1iKTtyLmRlY29kZUJpdHMoZCxjLHkpO3ZhciBFPVtdLGcsQSxULFI7Zm9yKGc9YjtnPHA7ZysrKUE9Zy0oZzxtPzA6bSksRVtBXT17Zmlyc3Q6eVtnLWJdLHNlY29uZDpudWxsfTt2YXIgUz1kLmJ5dGVMZW5ndGgtYy5wdHIsTT1NYXRoLmNlaWwoUy80KSxJPW5ldyBBcnJheUJ1ZmZlcihNKjQpLE49bmV3IFVpbnQ4QXJyYXkoSSk7Ti5zZXQobmV3IFVpbnQ4QXJyYXkoZCxjLnB0cixTKSk7dmFyIFA9bmV3IFVpbnQzMkFycmF5KEkpLEY9MCx3LHg9MDtmb3Iodz1QWzBdLGc9YjtnPHA7ZysrKUE9Zy0oZzxtPzA6bSksUj1FW0FdLmZpcnN0LFI+MCYmKEVbQV0uc2Vjb25kPXc8PEY+Pj4zMi1SLDMyLUY+PVI/KEYrPVIsRj09PTMyJiYoRj0wLHgrKyx3PVBbeF0pKTooRis9Ui0zMix4Kyssdz1QW3hdLEVbQV0uc2Vjb25kfD13Pj4+MzItRikpO3ZhciBDPTAsdj0wLGo9bmV3IGk7Zm9yKGc9MDtnPEUubGVuZ3RoO2crKylFW2ddIT09dm9pZCAwJiYoQz1NYXRoLm1heChDLEVbZ10uZmlyc3QpKTtDPj11P3Y9dTp2PUMsQz49MzAmJmNvbnNvbGUubG9nKCJXQVJuaW5nLCBsYXJnZSBOVU0gTFVUIEJJVFMgSVMgIitDKTt2YXIgej1bXSxELEcsVixPLFosYWU7Zm9yKGc9YjtnPHA7ZysrKWlmKEE9Zy0oZzxtPzA6bSksUj1FW0FdLmZpcnN0LFI+MClpZihEPVtSLEFdLFI8PXYpZm9yKEc9RVtBXS5zZWNvbmQ8PHYtUixWPTE8PHYtUixUPTA7VDxWO1QrKyl6W0d8VF09RDtlbHNlIGZvcihHPUVbQV0uc2Vjb25kLGFlPWosTz1SLTE7Tz49MDtPLS0pWj1HPj4+TyYxLFo/KGFlLnJpZ2h0fHwoYWUucmlnaHQ9bmV3IGkpLGFlPWFlLnJpZ2h0KTooYWUubGVmdHx8KGFlLmxlZnQ9bmV3IGkpLGFlPWFlLmxlZnQpLE89PT0wJiYhYWUudmFsJiYoYWUudmFsPURbMV0pO3JldHVybntkZWNvZGVMdXQ6eixudW1CaXRzTFVUUWljazp2LG51bUJpdHNMVVQ6Qyx0cmVlOmosc3R1ZmZlZERhdGE6UCxzcmNQdHI6eCxiaXRQb3M6Rn19LHJlYWRIdWZmbWFuOmZ1bmN0aW9uKGQsYyx1KXt2YXIgbD1jLmhlYWRlckluZm8saD1sLm51bURpbXMsbT1jLmhlYWRlckluZm8uaGVpZ2h0LGI9Yy5oZWFkZXJJbmZvLndpZHRoLHA9YiptLHk9dGhpcy5yZWFkSHVmZm1hblRyZWUoZCxjKSxFPXkuZGVjb2RlTHV0LGc9eS50cmVlLEE9eS5zdHVmZmVkRGF0YSxUPXkuc3JjUHRyLFI9eS5iaXRQb3MsUz15Lm51bUJpdHNMVVRRaWNrLE09eS5udW1CaXRzTFVULEk9Yy5oZWFkZXJJbmZvLmltYWdlVHlwZT09PTA/MTI4OjAsTixQLEYsdz1jLnBpeGVscy5yZXN1bHRNYXNrLHgsQyx2LGoseixELEcsVj0wO1I+MCYmKFQrKyxSPTApO3ZhciBPPUFbVF0sWj1jLmVuY29kZU1vZGU9PT0xLGFlPW5ldyB1KHAqaCksY2U9YWUsZmU7Zm9yKGZlPTA7ZmU8bC5udW1EaW1zO2ZlKyspe2lmKGg+MSYmKGNlPW5ldyB1KGFlLmJ1ZmZlcixwKmZlLHApLFY9MCksYy5oZWFkZXJJbmZvLm51bVZhbGlkUGl4ZWw9PT1iKm0pZm9yKEQ9MCxqPTA7ajxtO2orKylmb3Ioej0wO3o8Yjt6KyssRCsrKXtpZihQPTAseD1PPDxSPj4+MzItUyxDPXgsMzItUjxTJiYoeHw9QVtUKzFdPj4+NjQtUi1TLEM9eCksRVtDXSlQPUVbQ11bMV0sUis9RVtDXVswXTtlbHNlIGZvcih4PU88PFI+Pj4zMi1NLEM9eCwzMi1SPE0mJih4fD1BW1QrMV0+Pj42NC1SLU0sQz14KSxOPWcsRz0wO0c8TTtHKyspaWYodj14Pj4+TS1HLTEmMSxOPXY/Ti5yaWdodDpOLmxlZnQsIShOLmxlZnR8fE4ucmlnaHQpKXtQPU4udmFsLFI9UitHKzE7YnJlYWt9Uj49MzImJihSLT0zMixUKyssTz1BW1RdKSxGPVAtSSxaPyh6PjA/Ris9VjpqPjA/Ris9Y2VbRC1iXTpGKz1WLEYmPTI1NSxjZVtEXT1GLFY9Rik6Y2VbRF09Rn1lbHNlIGZvcihEPTAsaj0wO2o8bTtqKyspZm9yKHo9MDt6PGI7eisrLEQrKylpZih3W0RdKXtpZihQPTAseD1PPDxSPj4+MzItUyxDPXgsMzItUjxTJiYoeHw9QVtUKzFdPj4+NjQtUi1TLEM9eCksRVtDXSlQPUVbQ11bMV0sUis9RVtDXVswXTtlbHNlIGZvcih4PU88PFI+Pj4zMi1NLEM9eCwzMi1SPE0mJih4fD1BW1QrMV0+Pj42NC1SLU0sQz14KSxOPWcsRz0wO0c8TTtHKyspaWYodj14Pj4+TS1HLTEmMSxOPXY/Ti5yaWdodDpOLmxlZnQsIShOLmxlZnR8fE4ucmlnaHQpKXtQPU4udmFsLFI9UitHKzE7YnJlYWt9Uj49MzImJihSLT0zMixUKyssTz1BW1RdKSxGPVAtSSxaPyh6PjAmJndbRC0xXT9GKz1WOmo+MCYmd1tELWJdP0YrPWNlW0QtYl06Ris9VixGJj0yNTUsY2VbRF09RixWPUYpOmNlW0RdPUZ9Yy5wdHI9Yy5wdHIrKFQrMSkqNCsoUj4wPzQ6MCl9Yy5waXhlbHMucmVzdWx0UGl4ZWxzPWFlfSxkZWNvZGVCaXRzOmZ1bmN0aW9uKGQsYyx1LGwsaCl7e3ZhciBtPWMuaGVhZGVySW5mbyxiPW0uZmlsZVZlcnNpb24scD0wLHk9bmV3IERhdGFWaWV3KGQsYy5wdHIsNSksRT15LmdldFVpbnQ4KDApO3ArKzt2YXIgZz1FPj42LEE9Zz09PTA/NDozLWcsVD0oRSYzMik+MCxSPUUmMzEsUz0wO2lmKEE9PT0xKVM9eS5nZXRVaW50OChwKSxwKys7ZWxzZSBpZihBPT09MilTPXkuZ2V0VWludDE2KHAsITApLHArPTI7ZWxzZSBpZihBPT09NClTPXkuZ2V0VWludDMyKHAsITApLHArPTQ7ZWxzZSB0aHJvdyJJbnZhbGlkIHZhbGlkIHBpeGVsIGNvdW50IHR5cGUiO3ZhciBNPTIqbS5tYXhaRXJyb3IsSSxOLFAsRix3LHgsQyx2LGoseixEPW0ubnVtRGltcz4xP20ubWF4VmFsdWVzW2hdOm0uek1heDtpZihUKXtmb3IoYy5jb3VudGVyLmx1dCsrLHY9eS5nZXRVaW50OChwKSxqPVIscCsrLEY9TWF0aC5jZWlsKCh2LTEpKlIvOCksdz1NYXRoLmNlaWwoRi80KSxOPW5ldyBBcnJheUJ1ZmZlcih3KjQpLFA9bmV3IFVpbnQ4QXJyYXkoTiksYy5wdHIrPXAsUC5zZXQobmV3IFVpbnQ4QXJyYXkoZCxjLnB0cixGKSksQz1uZXcgVWludDMyQXJyYXkoTiksYy5wdHIrPUYsej0wO3YtMT4+Pno7KXorKztGPU1hdGguY2VpbChTKnovOCksdz1NYXRoLmNlaWwoRi80KSxOPW5ldyBBcnJheUJ1ZmZlcih3KjQpLFA9bmV3IFVpbnQ4QXJyYXkoTiksUC5zZXQobmV3IFVpbnQ4QXJyYXkoZCxjLnB0cixGKSksST1uZXcgVWludDMyQXJyYXkoTiksYy5wdHIrPUYsYj49Mz94PWEudW5zdHVmZkxVVDIoQyxSLHYtMSxsLE0sRCk6eD1hLnVuc3R1ZmZMVVQoQyxSLHYtMSxsLE0sRCksYj49Mz9hLnVuc3R1ZmYyKEksdSx6LFMseCk6YS51bnN0dWZmKEksdSx6LFMseCl9ZWxzZSBjLmNvdW50ZXIuYml0c3R1ZmZlcisrLHo9UixjLnB0cis9cCx6PjAmJihGPU1hdGguY2VpbChTKnovOCksdz1NYXRoLmNlaWwoRi80KSxOPW5ldyBBcnJheUJ1ZmZlcih3KjQpLFA9bmV3IFVpbnQ4QXJyYXkoTiksUC5zZXQobmV3IFVpbnQ4QXJyYXkoZCxjLnB0cixGKSksST1uZXcgVWludDMyQXJyYXkoTiksYy5wdHIrPUYsYj49Mz9sPT1udWxsP2Eub3JpZ2luYWxVbnN0dWZmMihJLHUseixTKTphLnVuc3R1ZmYyKEksdSx6LFMsITEsbCxNLEQpOmw9PW51bGw/YS5vcmlnaW5hbFVuc3R1ZmYoSSx1LHosUyk6YS51bnN0dWZmKEksdSx6LFMsITEsbCxNLEQpKX19LHJlYWRUaWxlczpmdW5jdGlvbihkLGMsdSl7dmFyIGw9Yy5oZWFkZXJJbmZvLGg9bC53aWR0aCxtPWwuaGVpZ2h0LGI9bC5taWNyb0Jsb2NrU2l6ZSxwPWwuaW1hZ2VUeXBlLHk9ci5nZXREYXRhVHlwZVNpemUocCksRT1NYXRoLmNlaWwoaC9iKSxnPU1hdGguY2VpbChtL2IpO2MucGl4ZWxzLm51bUJsb2Nrc1k9ZyxjLnBpeGVscy5udW1CbG9ja3NYPUUsYy5waXhlbHMucHRyPTA7dmFyIEE9MCxUPTAsUj0wLFM9MCxNPTAsST0wLE49MCxQPTAsRj0wLHc9MCx4PTAsQz0wLHY9MCxqPTAsej0wLEQ9MCxHLFYsTyxaLGFlLGNlLGZlPW5ldyB1KGIqYiksdGU9bSVifHxiLG1lPWglYnx8Yix1ZSxiZSxoZT1sLm51bURpbXMsUSxUZT1jLnBpeGVscy5yZXN1bHRNYXNrLENlPWMucGl4ZWxzLnJlc3VsdFBpeGVscztmb3IoUj0wO1I8ZztSKyspZm9yKE09UiE9PWctMT9iOnRlLFM9MDtTPEU7UysrKWZvcihJPVMhPT1FLTE/YjptZSx4PVIqaCpiK1MqYixDPWgtSSxRPTA7UTxoZTtRKyspe2lmKGhlPjEmJihDZT1uZXcgdShjLnBpeGVscy5yZXN1bHRQaXhlbHMuYnVmZmVyLGgqbSpRKnksaCptKSksTj1kLmJ5dGVMZW5ndGgtYy5wdHIsRz1uZXcgRGF0YVZpZXcoZCxjLnB0cixNYXRoLm1pbigxMCxOKSksVj17fSxEPTAsUD1HLmdldFVpbnQ4KDApLEQrKyxGPVA+PjYmMjU1LHc9UD4+MiYxNSx3IT09KFMqYj4+MyYxNSkpdGhyb3ciaW50ZWdyaXR5IGlzc3VlIjtpZihjZT1QJjMsY2U+Myl0aHJvdyBjLnB0cis9RCwiSW52YWxpZCBibG9jayBlbmNvZGluZyAoIitjZSsiKSI7aWYoY2U9PT0yKXtjLmNvdW50ZXIuY29uc3RhbnQrKyxjLnB0cis9RDtjb250aW51ZX1lbHNlIGlmKGNlPT09MCl7aWYoYy5jb3VudGVyLnVuY29tcHJlc3NlZCsrLGMucHRyKz1ELHY9TSpJKnksaj1kLmJ5dGVMZW5ndGgtYy5wdHIsdj12PGo/djpqLE89bmV3IEFycmF5QnVmZmVyKHYleT09PTA/djp2K3ktdiV5KSxaPW5ldyBVaW50OEFycmF5KE8pLFouc2V0KG5ldyBVaW50OEFycmF5KGQsYy5wdHIsdikpLGFlPW5ldyB1KE8pLHo9MCxUZSlmb3IoQT0wO0E8TTtBKyspe2ZvcihUPTA7VDxJO1QrKylUZVt4XSYmKENlW3hdPWFlW3orK10pLHgrKzt4Kz1DfWVsc2UgZm9yKEE9MDtBPE07QSsrKXtmb3IoVD0wO1Q8STtUKyspQ2VbeCsrXT1hZVt6KytdO3grPUN9Yy5wdHIrPXoqeX1lbHNlIGlmKHVlPXIuZ2V0RGF0YVR5cGVVc2VkKHAsRiksYmU9ci5nZXRPbmVQaXhlbChWLEQsdWUsRyksRCs9ci5nZXREYXRhVHlwZVNpemUodWUpLGNlPT09MylpZihjLnB0cis9RCxjLmNvdW50ZXIuY29uc3RhbnRvZmZzZXQrKyxUZSlmb3IoQT0wO0E8TTtBKyspe2ZvcihUPTA7VDxJO1QrKylUZVt4XSYmKENlW3hdPWJlKSx4Kys7eCs9Q31lbHNlIGZvcihBPTA7QTxNO0ErKyl7Zm9yKFQ9MDtUPEk7VCsrKUNlW3grK109YmU7eCs9Q31lbHNlIGlmKGMucHRyKz1ELHIuZGVjb2RlQml0cyhkLGMsZmUsYmUsUSksRD0wLFRlKWZvcihBPTA7QTxNO0ErKyl7Zm9yKFQ9MDtUPEk7VCsrKVRlW3hdJiYoQ2VbeF09ZmVbRCsrXSkseCsrO3grPUN9ZWxzZSBmb3IoQT0wO0E8TTtBKyspe2ZvcihUPTA7VDxJO1QrKylDZVt4KytdPWZlW0QrK107eCs9Q319fSxmb3JtYXRGaWxlSW5mbzpmdW5jdGlvbihkKXtyZXR1cm57ZmlsZUlkZW50aWZpZXJTdHJpbmc6ZC5oZWFkZXJJbmZvLmZpbGVJZGVudGlmaWVyU3RyaW5nLGZpbGVWZXJzaW9uOmQuaGVhZGVySW5mby5maWxlVmVyc2lvbixpbWFnZVR5cGU6ZC5oZWFkZXJJbmZvLmltYWdlVHlwZSxoZWlnaHQ6ZC5oZWFkZXJJbmZvLmhlaWdodCx3aWR0aDpkLmhlYWRlckluZm8ud2lkdGgsbnVtVmFsaWRQaXhlbDpkLmhlYWRlckluZm8ubnVtVmFsaWRQaXhlbCxtaWNyb0Jsb2NrU2l6ZTpkLmhlYWRlckluZm8ubWljcm9CbG9ja1NpemUsYmxvYlNpemU6ZC5oZWFkZXJJbmZvLmJsb2JTaXplLG1heFpFcnJvcjpkLmhlYWRlckluZm8ubWF4WkVycm9yLHBpeGVsVHlwZTpyLmdldFBpeGVsVHlwZShkLmhlYWRlckluZm8uaW1hZ2VUeXBlKSxlb2ZPZmZzZXQ6ZC5lb2ZPZmZzZXQsbWFzazpkLm1hc2s/e251bUJ5dGVzOmQubWFzay5udW1CeXRlc306bnVsbCxwaXhlbHM6e251bUJsb2Nrc1g6ZC5waXhlbHMubnVtQmxvY2tzWCxudW1CbG9ja3NZOmQucGl4ZWxzLm51bUJsb2Nrc1ksbWF4VmFsdWU6ZC5oZWFkZXJJbmZvLnpNYXgsbWluVmFsdWU6ZC5oZWFkZXJJbmZvLnpNaW4sbm9EYXRhVmFsdWU6ZC5ub0RhdGFWYWx1ZX19fSxjb25zdHJ1Y3RDb25zdGFudFN1cmZhY2U6ZnVuY3Rpb24oZCl7dmFyIGM9ZC5oZWFkZXJJbmZvLnpNYXgsdT1kLmhlYWRlckluZm8ubnVtRGltcyxsPWQuaGVhZGVySW5mby5oZWlnaHQqZC5oZWFkZXJJbmZvLndpZHRoLGg9bCp1LG09MCxiPTAscD0wLHk9ZC5waXhlbHMucmVzdWx0TWFzaztpZih5KWlmKHU+MSlmb3IobT0wO208dTttKyspZm9yKHA9bSpsLGI9MDtiPGw7YisrKXlbYl0mJihkLnBpeGVscy5yZXN1bHRQaXhlbHNbcCtiXT1jKTtlbHNlIGZvcihiPTA7YjxsO2IrKyl5W2JdJiYoZC5waXhlbHMucmVzdWx0UGl4ZWxzW2JdPWMpO2Vsc2UgaWYoZC5waXhlbHMucmVzdWx0UGl4ZWxzLmZpbGwpZC5waXhlbHMucmVzdWx0UGl4ZWxzLmZpbGwoYyk7ZWxzZSBmb3IoYj0wO2I8aDtiKyspZC5waXhlbHMucmVzdWx0UGl4ZWxzW2JdPWN9LGdldERhdGFUeXBlQXJyYXk6ZnVuY3Rpb24oZCl7dmFyIGM7c3dpdGNoKGQpe2Nhc2UgMDpjPUludDhBcnJheTticmVhaztjYXNlIDE6Yz1VaW50OEFycmF5O2JyZWFrO2Nhc2UgMjpjPUludDE2QXJyYXk7YnJlYWs7Y2FzZSAzOmM9VWludDE2QXJyYXk7YnJlYWs7Y2FzZSA0OmM9SW50MzJBcnJheTticmVhaztjYXNlIDU6Yz1VaW50MzJBcnJheTticmVhaztjYXNlIDY6Yz1GbG9hdDMyQXJyYXk7YnJlYWs7Y2FzZSA3OmM9RmxvYXQ2NEFycmF5O2JyZWFrO2RlZmF1bHQ6Yz1GbG9hdDMyQXJyYXl9cmV0dXJuIGN9LGdldFBpeGVsVHlwZTpmdW5jdGlvbihkKXt2YXIgYztzd2l0Y2goZCl7Y2FzZSAwOmM9IlM4IjticmVhaztjYXNlIDE6Yz0iVTgiO2JyZWFrO2Nhc2UgMjpjPSJTMTYiO2JyZWFrO2Nhc2UgMzpjPSJVMTYiO2JyZWFrO2Nhc2UgNDpjPSJTMzIiO2JyZWFrO2Nhc2UgNTpjPSJVMzIiO2JyZWFrO2Nhc2UgNjpjPSJGMzIiO2JyZWFrO2Nhc2UgNzpjPSJGNjQiO2JyZWFrO2RlZmF1bHQ6Yz0iRjMyIn1yZXR1cm4gY30saXNWYWxpZFBpeGVsVmFsdWU6ZnVuY3Rpb24oZCxjKXtpZihjPT1udWxsKXJldHVybiExO3ZhciB1O3N3aXRjaChkKXtjYXNlIDA6dT1jPj0tMTI4JiZjPD0xMjc7YnJlYWs7Y2FzZSAxOnU9Yz49MCYmYzw9MjU1O2JyZWFrO2Nhc2UgMjp1PWM+PS0zMjc2OCYmYzw9MzI3Njc7YnJlYWs7Y2FzZSAzOnU9Yz49MCYmYzw9NjU1MzY7YnJlYWs7Y2FzZSA0OnU9Yz49LTIxNDc0ODM2NDgmJmM8PTIxNDc0ODM2NDc7YnJlYWs7Y2FzZSA1OnU9Yz49MCYmYzw9NDI5NDk2NzI5NjticmVhaztjYXNlIDY6dT1jPj0tMzQwMjc5OTkzODc5MDE0ODRlMjImJmM8PTM0MDI3OTk5Mzg3OTAxNDg0ZTIyO2JyZWFrO2Nhc2UgNzp1PWM+PTVlLTMyNCYmYzw9MTc5NzY5MzEzNDg2MjMxNTdlMjkyO2JyZWFrO2RlZmF1bHQ6dT0hMX1yZXR1cm4gdX0sZ2V0RGF0YVR5cGVTaXplOmZ1bmN0aW9uKGQpe3ZhciBjPTA7c3dpdGNoKGQpe2Nhc2UgMDpjYXNlIDE6Yz0xO2JyZWFrO2Nhc2UgMjpjYXNlIDM6Yz0yO2JyZWFrO2Nhc2UgNDpjYXNlIDU6Y2FzZSA2OmM9NDticmVhaztjYXNlIDc6Yz04O2JyZWFrO2RlZmF1bHQ6Yz1kfXJldHVybiBjfSxnZXREYXRhVHlwZVVzZWQ6ZnVuY3Rpb24oZCxjKXt2YXIgdT1kO3N3aXRjaChkKXtjYXNlIDI6Y2FzZSA0OnU9ZC1jO2JyZWFrO2Nhc2UgMzpjYXNlIDU6dT1kLTIqYzticmVhaztjYXNlIDY6Yz09PTA/dT1kOmM9PT0xP3U9Mjp1PTE7YnJlYWs7Y2FzZSA3OmM9PT0wP3U9ZDp1PWQtMipjKzE7YnJlYWs7ZGVmYXVsdDp1PWQ7YnJlYWt9cmV0dXJuIHV9LGdldE9uZVBpeGVsOmZ1bmN0aW9uKGQsYyx1LGwpe3ZhciBoPTA7c3dpdGNoKHUpe2Nhc2UgMDpoPWwuZ2V0SW50OChjKTticmVhaztjYXNlIDE6aD1sLmdldFVpbnQ4KGMpO2JyZWFrO2Nhc2UgMjpoPWwuZ2V0SW50MTYoYywhMCk7YnJlYWs7Y2FzZSAzOmg9bC5nZXRVaW50MTYoYywhMCk7YnJlYWs7Y2FzZSA0Omg9bC5nZXRJbnQzMihjLCEwKTticmVhaztjYXNlIDU6aD1sLmdldFVJbnQzMihjLCEwKTticmVhaztjYXNlIDY6aD1sLmdldEZsb2F0MzIoYywhMCk7YnJlYWs7Y2FzZSA3Omg9bC5nZXRGbG9hdDY0KGMsITApO2JyZWFrO2RlZmF1bHQ6dGhyb3cidGhlIGRlY29kZXIgZG9lcyBub3QgdW5kZXJzdGFuZCB0aGlzIHBpeGVsIHR5cGUifXJldHVybiBofX0saT1mdW5jdGlvbihkLGMsdSl7dGhpcy52YWw9ZCx0aGlzLmxlZnQ9Yyx0aGlzLnJpZ2h0PXV9LGY9e2RlY29kZTpmdW5jdGlvbihkLGMpe2M9Y3x8e307dmFyIHU9Yy5ub0RhdGFWYWx1ZSxsPTAsaD17fTtpZihoLnB0cj1jLmlucHV0T2Zmc2V0fHwwLGgucGl4ZWxzPXt9LCEhci5yZWFkSGVhZGVySW5mbyhkLGgpKXt2YXIgbT1oLmhlYWRlckluZm8sYj1tLmZpbGVWZXJzaW9uLHA9ci5nZXREYXRhVHlwZUFycmF5KG0uaW1hZ2VUeXBlKTtyLnJlYWRNYXNrKGQsaCksbS5udW1WYWxpZFBpeGVsIT09bS53aWR0aCptLmhlaWdodCYmIWgucGl4ZWxzLnJlc3VsdE1hc2smJihoLnBpeGVscy5yZXN1bHRNYXNrPWMubWFza0RhdGEpO3ZhciB5PW0ud2lkdGgqbS5oZWlnaHQ7aWYoaC5waXhlbHMucmVzdWx0UGl4ZWxzPW5ldyBwKHkqbS5udW1EaW1zKSxoLmNvdW50ZXI9e29uZXN3ZWVwOjAsdW5jb21wcmVzc2VkOjAsbHV0OjAsYml0c3R1ZmZlcjowLGNvbnN0YW50OjAsY29uc3RhbnRvZmZzZXQ6MH0sbS5udW1WYWxpZFBpeGVsIT09MClpZihtLnpNYXg9PT1tLnpNaW4pci5jb25zdHJ1Y3RDb25zdGFudFN1cmZhY2UoaCk7ZWxzZSBpZihiPj00JiZyLmNoZWNrTWluTWF4UmFuZ2VzKGQsaCkpci5jb25zdHJ1Y3RDb25zdGFudFN1cmZhY2UoaCk7ZWxzZXt2YXIgRT1uZXcgRGF0YVZpZXcoZCxoLnB0ciwyKSxnPUUuZ2V0VWludDgoMCk7aWYoaC5wdHIrKyxnKXIucmVhZERhdGFPbmVTd2VlcChkLGgscCk7ZWxzZSBpZihiPjEmJm0uaW1hZ2VUeXBlPD0xJiZNYXRoLmFicyhtLm1heFpFcnJvci0uNSk8MWUtNSl7dmFyIEE9RS5nZXRVaW50OCgxKTtpZihoLnB0cisrLGguZW5jb2RlTW9kZT1BLEE+Mnx8Yjw0JiZBPjEpdGhyb3ciSW52YWxpZCBIdWZmbWFuIGZsYWcgIitBO0E/ci5yZWFkSHVmZm1hbihkLGgscCk6ci5yZWFkVGlsZXMoZCxoLHApfWVsc2Ugci5yZWFkVGlsZXMoZCxoLHApfWguZW9mT2Zmc2V0PWgucHRyO3ZhciBUO2MuaW5wdXRPZmZzZXQ/KFQ9aC5oZWFkZXJJbmZvLmJsb2JTaXplK2MuaW5wdXRPZmZzZXQtaC5wdHIsTWF0aC5hYnMoVCk+PTEmJihoLmVvZk9mZnNldD1jLmlucHV0T2Zmc2V0K2guaGVhZGVySW5mby5ibG9iU2l6ZSkpOihUPWguaGVhZGVySW5mby5ibG9iU2l6ZS1oLnB0cixNYXRoLmFicyhUKT49MSYmKGguZW9mT2Zmc2V0PWguaGVhZGVySW5mby5ibG9iU2l6ZSkpO3ZhciBSPXt3aWR0aDptLndpZHRoLGhlaWdodDptLmhlaWdodCxwaXhlbERhdGE6aC5waXhlbHMucmVzdWx0UGl4ZWxzLG1pblZhbHVlOm0uek1pbixtYXhWYWx1ZTptLnpNYXgsdmFsaWRQaXhlbENvdW50Om0ubnVtVmFsaWRQaXhlbCxkaW1Db3VudDptLm51bURpbXMsZGltU3RhdHM6e21pblZhbHVlczptLm1pblZhbHVlcyxtYXhWYWx1ZXM6bS5tYXhWYWx1ZXN9LG1hc2tEYXRhOmgucGl4ZWxzLnJlc3VsdE1hc2t9O2lmKGgucGl4ZWxzLnJlc3VsdE1hc2smJnIuaXNWYWxpZFBpeGVsVmFsdWUobS5pbWFnZVR5cGUsdSkpe3ZhciBTPWgucGl4ZWxzLnJlc3VsdE1hc2s7Zm9yKGw9MDtsPHk7bCsrKVNbbF18fChSLnBpeGVsRGF0YVtsXT11KTtSLm5vRGF0YVZhbHVlPXV9cmV0dXJuIGgubm9EYXRhVmFsdWU9dSxjLnJldHVybkZpbGVJbmZvJiYoUi5maWxlSW5mbz1yLmZvcm1hdEZpbGVJbmZvKGgpKSxSfX0sZ2V0QmFuZENvdW50OmZ1bmN0aW9uKGQpe3ZhciBjPTAsdT0wLGw9e307Zm9yKGwucHRyPTAsbC5waXhlbHM9e307dTxkLmJ5dGVMZW5ndGgtNTg7KXIucmVhZEhlYWRlckluZm8oZCxsKSx1Kz1sLmhlYWRlckluZm8uYmxvYlNpemUsYysrLGwucHRyPXU7cmV0dXJuIGN9fTtyZXR1cm4gZn0pKCksdD0oZnVuY3Rpb24oKXt2YXIgYT1uZXcgQXJyYXlCdWZmZXIoNCkscj1uZXcgVWludDhBcnJheShhKSxpPW5ldyBVaW50MzJBcnJheShhKTtyZXR1cm4gaVswXT0xLHJbMF09PT0xfSkoKSxvPXtkZWNvZGU6ZnVuY3Rpb24oYSxyKXtpZighdCl0aHJvdyJCaWcgZW5kaWFuIHN5c3RlbSBpcyBub3Qgc3VwcG9ydGVkLiI7cj1yfHx7fTt2YXIgaT1yLmlucHV0T2Zmc2V0fHwwLGY9bmV3IFVpbnQ4QXJyYXkoYSxpLDEwKSxkPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxmKSxjLHU7aWYoZC50cmltKCk9PT0iQ250WkltYWdlIiljPW4sdT0xO2Vsc2UgaWYoZC5zdWJzdHJpbmcoMCw1KT09PSJMZXJjMiIpYz1lLHU9MjtlbHNlIHRocm93IlVuZXhwZWN0ZWQgZmlsZSBpZGVudGlmaWVyIHN0cmluZzogIitkO2Zvcih2YXIgbD0wLGg9YS5ieXRlTGVuZ3RoLTEwLG0sYj1bXSxwLHksRT17d2lkdGg6MCxoZWlnaHQ6MCxwaXhlbHM6W10scGl4ZWxUeXBlOnIucGl4ZWxUeXBlLG1hc2s6bnVsbCxzdGF0aXN0aWNzOltdfTtpPGg7KXt2YXIgZz1jLmRlY29kZShhLHtpbnB1dE9mZnNldDppLGVuY29kZWRNYXNrRGF0YTptLG1hc2tEYXRhOnkscmV0dXJuTWFzazpsPT09MCxyZXR1cm5FbmNvZGVkTWFzazpsPT09MCxyZXR1cm5GaWxlSW5mbzohMCxwaXhlbFR5cGU6ci5waXhlbFR5cGV8fG51bGwsbm9EYXRhVmFsdWU6ci5ub0RhdGFWYWx1ZXx8bnVsbH0pO2k9Zy5maWxlSW5mby5lb2ZPZmZzZXQsbD09PTAmJihtPWcuZW5jb2RlZE1hc2tEYXRhLHk9Zy5tYXNrRGF0YSxFLndpZHRoPWcud2lkdGgsRS5oZWlnaHQ9Zy5oZWlnaHQsRS5kaW1Db3VudD1nLmRpbUNvdW50fHwxLEUucGl4ZWxUeXBlPWcucGl4ZWxUeXBlfHxnLmZpbGVJbmZvLnBpeGVsVHlwZSxFLm1hc2s9Zy5tYXNrRGF0YSksdT4xJiZnLmZpbGVJbmZvLm1hc2smJmcuZmlsZUluZm8ubWFzay5udW1CeXRlcz4wJiZiLnB1c2goZy5tYXNrRGF0YSksbCsrLEUucGl4ZWxzLnB1c2goZy5waXhlbERhdGEpLEUuc3RhdGlzdGljcy5wdXNoKHttaW5WYWx1ZTpnLm1pblZhbHVlLG1heFZhbHVlOmcubWF4VmFsdWUsbm9EYXRhVmFsdWU6Zy5ub0RhdGFWYWx1ZSxkaW1TdGF0czpnLmRpbVN0YXRzfSl9dmFyIEEsVCxSO2lmKHU+MSYmYi5sZW5ndGg+MSl7Zm9yKFI9RS53aWR0aCpFLmhlaWdodCxFLmJhbmRNYXNrcz1iLHk9bmV3IFVpbnQ4QXJyYXkoUikseS5zZXQoYlswXSksQT0xO0E8Yi5sZW5ndGg7QSsrKWZvcihwPWJbQV0sVD0wO1Q8UjtUKyspeVtUXT15W1RdJnBbVF07RS5tYXNrRGF0YT15fXJldHVybiBFfX07dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoW10sZnVuY3Rpb24oKXtyZXR1cm4gb30pOnR5cGVvZiBibTwidSImJmJtLmV4cG9ydHM/Ym0uZXhwb3J0cz1vOnRoaXMuTGVyYz1vfSkoKX0pO3ZhciBveT17fTskZShveSx7ZGVmYXVsdDooKT0+R0x9KTtmdW5jdGlvbiB6TChuLGUpe2lmKG4uZW5jb2Rpbmc9PT1WeC5MRVJDKXtsZXQgYTt0cnl7YT1YeC5kZWZhdWx0LmRlY29kZShuLmhlaWdodG1hcCl9Y2F0Y2goaSl7dGhyb3cgbmV3IG50KGkpfWlmKGEuc3RhdGlzdGljc1swXS5taW5WYWx1ZT09PU51bWJlci5NQVhfVkFMVUUpdGhyb3cgbmV3IG50KCJJbnZhbGlkIHRpbGUgZGF0YSIpO24uaGVpZ2h0bWFwPWEucGl4ZWxzWzBdLG4ud2lkdGg9YS53aWR0aCxuLmhlaWdodD1hLmhlaWdodH1uLmVsbGlwc29pZD1LLmNsb25lKG4uZWxsaXBzb2lkKSxuLnJlY3RhbmdsZT14ZS5jbG9uZShuLnJlY3RhbmdsZSk7bGV0IHQ9S3guY29tcHV0ZVZlcnRpY2VzKG4pLG89dC52ZXJ0aWNlcztyZXR1cm4gZS5wdXNoKG8uYnVmZmVyKSx7dmVydGljZXM6by5idWZmZXIsbnVtYmVyT2ZBdHRyaWJ1dGVzOnQuZW5jb2Rpbmcuc3RyaWRlLG1pbmltdW1IZWlnaHQ6dC5taW5pbXVtSGVpZ2h0LG1heGltdW1IZWlnaHQ6dC5tYXhpbXVtSGVpZ2h0LGdyaWRXaWR0aDpuLndpZHRoLGdyaWRIZWlnaHQ6bi5oZWlnaHQsYm91bmRpbmdTcGhlcmUzRDp0LmJvdW5kaW5nU3BoZXJlM0Qsb3JpZW50ZWRCb3VuZGluZ0JveDp0Lm9yaWVudGVkQm91bmRpbmdCb3gsb2NjbHVkZWVQb2ludEluU2NhbGVkU3BhY2U6dC5vY2NsdWRlZVBvaW50SW5TY2FsZWRTcGFjZSxlbmNvZGluZzp0LmVuY29kaW5nLHdlc3RJbmRpY2VzU291dGhUb05vcnRoOnQud2VzdEluZGljZXNTb3V0aFRvTm9ydGgsc291dGhJbmRpY2VzRWFzdFRvV2VzdDp0LnNvdXRoSW5kaWNlc0Vhc3RUb1dlc3QsZWFzdEluZGljZXNOb3J0aFRvU291dGg6dC5lYXN0SW5kaWNlc05vcnRoVG9Tb3V0aCxub3J0aEluZGljZXNXZXN0VG9FYXN0OnQubm9ydGhJbmRpY2VzV2VzdFRvRWFzdH19dmFyIFh4LEdMLGF5PVgoKCk9PntWZSgpO0h4KCk7cXgoKTtobigpO3BhKCk7WHg9aGEoV3goKSwxKTtrbigpO0dMPW10KHpMKX0pO3ZhciBpeT17fTskZShpeSx7ZGVmYXVsdDooKT0+cUx9KTtmdW5jdGlvbiBLTChuLGUpe2xldCB0PW4ucXVhbnRpemVkVmVydGljZXMsbz10Lmxlbmd0aC8zLGE9bi5vY3RFbmNvZGVkTm9ybWFscyxyPW4ud2VzdEluZGljZXMubGVuZ3RoK24uZWFzdEluZGljZXMubGVuZ3RoK24uc291dGhJbmRpY2VzLmxlbmd0aCtuLm5vcnRoSW5kaWNlcy5sZW5ndGgsaT1uLmluY2x1ZGVXZWJNZXJjYXRvclQsZj1uLmV4YWdnZXJhdGlvbixkPW4uZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQsdT1mIT09MSxsPXhlLmNsb25lKG4ucmVjdGFuZ2xlKSxoPWwud2VzdCxtPWwuc291dGgsYj1sLmVhc3QscD1sLm5vcnRoLHk9Sy5jbG9uZShuLmVsbGlwc29pZCksRT1uLm1pbmltdW1IZWlnaHQsZz1uLm1heGltdW1IZWlnaHQsQT1uLnJlbGF0aXZlVG9DZW50ZXIsVD1vby5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZShBLHkpLFI9JC5pbnZlcnNlVHJhbnNmb3JtYXRpb24oVCxuZXcgJCksUyxNO2kmJihTPXluLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUobSksTT0xLyh5bi5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlKHApLVMpKTtsZXQgST10LnN1YmFycmF5KDAsbyksTj10LnN1YmFycmF5KG8sMipvKSxQPXQuc3ViYXJyYXkobyoyLDMqbyksRj1fKGEpLHc9bmV3IEFycmF5KG8pLHg9bmV3IEFycmF5KG8pLEM9bmV3IEFycmF5KG8pLHY9aT9uZXcgQXJyYXkobyk6W10saj11P25ldyBBcnJheShvKTpbXSx6PVZMO3oueD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksei55PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx6Lno9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO2xldCBEPUhMO0QueD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksRC55PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxELno9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2xldCBHPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxWPU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxPPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxaPU51bWJlci5ORUdBVElWRV9JTkZJTklUWTtmb3IobGV0IExlPTA7TGU8bzsrK0xlKXtsZXQgX3Q9SVtMZV0sTXQ9TltMZV0sR3Q9X3QvcnkscXQ9TXQvcnksUXQ9ay5sZXJwKEUsZyxQW0xlXS9yeSk7ZW8ubG9uZ2l0dWRlPWsubGVycChoLGIsR3QpLGVvLmxhdGl0dWRlPWsubGVycChtLHAscXQpLGVvLmhlaWdodD1RdCxHPU1hdGgubWluKGVvLmxvbmdpdHVkZSxHKSxWPU1hdGgubWF4KGVvLmxvbmdpdHVkZSxWKSxPPU1hdGgubWluKGVvLmxhdGl0dWRlLE8pLFo9TWF0aC5tYXgoZW8ubGF0aXR1ZGUsWik7bGV0IHBuPXkuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oZW8pO3dbTGVdPW5ldyBZKEd0LHF0KSx4W0xlXT1RdCxDW0xlXT1wbixpJiYodltMZV09KHluLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoZW8ubGF0aXR1ZGUpLVMpKk0pLHUmJihqW0xlXT15Lmdlb2RldGljU3VyZmFjZU5vcm1hbChwbikpLCQubXVsdGlwbHlCeVBvaW50KFIscG4sT2QpLHMubWluaW11bUJ5Q29tcG9uZW50KE9kLHoseikscy5tYXhpbXVtQnlDb21wb25lbnQoT2QsRCxEKX1sZXQgYWU9X20obi53ZXN0SW5kaWNlcyxmdW5jdGlvbihMZSxfdCl7cmV0dXJuIHdbTGVdLnktd1tfdF0ueX0pLGNlPV9tKG4uZWFzdEluZGljZXMsZnVuY3Rpb24oTGUsX3Qpe3JldHVybiB3W190XS55LXdbTGVdLnl9KSxmZT1fbShuLnNvdXRoSW5kaWNlcyxmdW5jdGlvbihMZSxfdCl7cmV0dXJuIHdbX3RdLngtd1tMZV0ueH0pLHRlPV9tKG4ubm9ydGhJbmRpY2VzLGZ1bmN0aW9uKExlLF90KXtyZXR1cm4gd1tMZV0ueC13W190XS54fSksbWU7RTwwJiYobWU9bmV3IEFyKHkpLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50UG9zc2libHlVbmRlckVsbGlwc29pZChBLEMsRSkpO2xldCB1ZT1FO3VlPU1hdGgubWluKHVlLHBtKG4ud2VzdEluZGljZXMsbi53ZXN0U2tpcnRIZWlnaHQseCx3LGwseSxSLHosRCkpLHVlPU1hdGgubWluKHVlLHBtKG4uc291dGhJbmRpY2VzLG4uc291dGhTa2lydEhlaWdodCx4LHcsbCx5LFIseixEKSksdWU9TWF0aC5taW4odWUscG0obi5lYXN0SW5kaWNlcyxuLmVhc3RTa2lydEhlaWdodCx4LHcsbCx5LFIseixEKSksdWU9TWF0aC5taW4odWUscG0obi5ub3J0aEluZGljZXMsbi5ub3J0aFNraXJ0SGVpZ2h0LHgsdyxsLHksUix6LEQpKTtsZXQgYmU9bmV3IHJvKHosRCxBKSxoZT1uZXcgbmEoQSxiZSx1ZSxnLFQsRixpLHUsZixkKSxRPWhlLnN0cmlkZSxUZT1vKlErcipRLENlPW5ldyBGbG9hdDMyQXJyYXkoVGUpLFdlPTA7Zm9yKGxldCBMZT0wO0xlPG87KytMZSl7aWYoRil7bGV0IF90PUxlKjI7S3MueD1hW190XSxLcy55PWFbX3QrMV19V2U9aGUuZW5jb2RlKENlLFdlLENbTGVdLHdbTGVdLHhbTGVdLEtzLHZbTGVdLGpbTGVdKX1sZXQgemU9TWF0aC5tYXgoMCwoci00KSoyKSxaZT1uLmluZGljZXMubGVuZ3RoK3plKjMsS2U9SWUuY3JlYXRlVHlwZWRBcnJheShvK3IsWmUpO0tlLnNldChuLmluZGljZXMsMCk7bGV0IERlPTFlLTQsQmU9KFYtRykqRGUsZXQ9KFotTykqRGUscWU9LUJlLGF0PTAseHQ9QmUsVHQ9MCxjdD0wLHp0PWV0LE90PTAsa3Q9LWV0LEdlPW8qUTtyZXR1cm4gZ20oQ2UsR2UsYWUsaGUseCx3LGEseSxsLG4ud2VzdFNraXJ0SGVpZ2h0LFMsTSxxZSxhdCksR2UrPW4ud2VzdEluZGljZXMubGVuZ3RoKlEsZ20oQ2UsR2UsZmUsaGUseCx3LGEseSxsLG4uc291dGhTa2lydEhlaWdodCxTLE0sT3Qsa3QpLEdlKz1uLnNvdXRoSW5kaWNlcy5sZW5ndGgqUSxnbShDZSxHZSxjZSxoZSx4LHcsYSx5LGwsbi5lYXN0U2tpcnRIZWlnaHQsUyxNLHh0LFR0KSxHZSs9bi5lYXN0SW5kaWNlcy5sZW5ndGgqUSxnbShDZSxHZSx0ZSxoZSx4LHcsYSx5LGwsbi5ub3J0aFNraXJ0SGVpZ2h0LFMsTSxjdCx6dCksQmkuYWRkU2tpcnRJbmRpY2VzKGFlLGZlLGNlLHRlLG8sS2Usbi5pbmRpY2VzLmxlbmd0aCksZS5wdXNoKENlLmJ1ZmZlcixLZS5idWZmZXIpLHt2ZXJ0aWNlczpDZS5idWZmZXIsaW5kaWNlczpLZS5idWZmZXIsd2VzdEluZGljZXNTb3V0aFRvTm9ydGg6YWUsc291dGhJbmRpY2VzRWFzdFRvV2VzdDpmZSxlYXN0SW5kaWNlc05vcnRoVG9Tb3V0aDpjZSxub3J0aEluZGljZXNXZXN0VG9FYXN0OnRlLHZlcnRleFN0cmlkZTpRLGNlbnRlcjpBLG1pbmltdW1IZWlnaHQ6RSxtYXhpbXVtSGVpZ2h0Omcsb2NjbHVkZWVQb2ludEluU2NhbGVkU3BhY2U6bWUsZW5jb2Rpbmc6aGUsaW5kZXhDb3VudFdpdGhvdXRTa2lydHM6bi5pbmRpY2VzLmxlbmd0aH19ZnVuY3Rpb24gcG0obixlLHQsbyxhLHIsaSxmLGQpe2xldCBjPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1PWEubm9ydGgsbD1hLnNvdXRoLGg9YS5lYXN0LG09YS53ZXN0O2g8bSYmKGgrPWsuVFdPX1BJKTtsZXQgYj1uLmxlbmd0aDtmb3IobGV0IHA9MDtwPGI7KytwKXtsZXQgeT1uW3BdLEU9dFt5XSxnPW9beV07ZW8ubG9uZ2l0dWRlPWsubGVycChtLGgsZy54KSxlby5sYXRpdHVkZT1rLmxlcnAobCx1LGcueSksZW8uaGVpZ2h0PUUtZTtsZXQgQT1yLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGVvLE9kKTskLm11bHRpcGx5QnlQb2ludChpLEEsQSkscy5taW5pbXVtQnlDb21wb25lbnQoQSxmLGYpLHMubWF4aW11bUJ5Q29tcG9uZW50KEEsZCxkKSxjPU1hdGgubWluKGMsZW8uaGVpZ2h0KX1yZXR1cm4gY31mdW5jdGlvbiBnbShuLGUsdCxvLGEscixpLGYsZCxjLHUsbCxoLG0pe2xldCBiPV8oaSkscD1kLm5vcnRoLHk9ZC5zb3V0aCxFPWQuZWFzdCxnPWQud2VzdDtFPGcmJihFKz1rLlRXT19QSSk7bGV0IEE9dC5sZW5ndGg7Zm9yKGxldCBUPTA7VDxBOysrVCl7bGV0IFI9dFtUXSxTPWFbUl0sTT1yW1JdO2VvLmxvbmdpdHVkZT1rLmxlcnAoZyxFLE0ueCkraCxlby5sYXRpdHVkZT1rLmxlcnAoeSxwLE0ueSkrbSxlby5oZWlnaHQ9Uy1jO2xldCBJPWYuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oZW8sT2QpO2lmKGIpe2xldCBGPVIqMjtLcy54PWlbRl0sS3MueT1pW0YrMV19bGV0IE47by5oYXNXZWJNZXJjYXRvclQmJihOPSh5bi5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlKGVvLmxhdGl0dWRlKS11KSpsKTtsZXQgUDtvLmhhc0dlb2RldGljU3VyZmFjZU5vcm1hbHMmJihQPWYuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKEkpKSxlPW8uZW5jb2RlKG4sZSxJLE0sZW8uaGVpZ2h0LEtzLE4sUCl9fWZ1bmN0aW9uIF9tKG4sZSl7bGV0IHQ7cmV0dXJuIHR5cGVvZiBuLnNsaWNlPT0iZnVuY3Rpb24iJiYodD1uLnNsaWNlKCksdHlwZW9mIHQuc29ydCE9ImZ1bmN0aW9uIiYmKHQ9dm9pZCAwKSksXyh0KXx8KHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobikpLHQuc29ydChlKSx0fXZhciByeSxPZCxWTCxITCxlbyxLcyxxTCxjeT1YKCgpPT57eWkoKTt2dCgpO01lKCk7Z3QoKTtzZSgpO1ZlKCk7R3MoKTtadCgpO1VlKCk7dW4oKTtobigpO1ZzKCk7S18oKTtycigpO19pKCk7a24oKTtyeT0zMjc2NyxPZD1uZXcgcyxWTD1uZXcgcyxITD1uZXcgcyxlbz1uZXcgcmUsS3M9bmV3IFk7cUw9bXQoS0wpfSk7ZnVuY3Rpb24gV0wobixlKXtyZXR1cm4gay5lcXVhbHNFcHNpbG9uKG4ubGF0aXR1ZGUsZS5sYXRpdHVkZSxrLkVQU0lMT04xMCkmJmsuZXF1YWxzRXBzaWxvbihuLmxvbmdpdHVkZSxlLmxvbmdpdHVkZSxrLkVQU0lMT04xMCl9ZnVuY3Rpb24gSkwobixlLHQsbyl7ZT14bihlLHMuZXF1YWxzRXBzaWxvbik7bGV0IGE9ZS5sZW5ndGg7aWYoYTwyKXJldHVybjtsZXQgcj1fKG8pLGk9Xyh0KSxmPW5ldyBBcnJheShhKSxkPW5ldyBBcnJheShhKSxjPW5ldyBBcnJheShhKSx1PWVbMF07ZlswXT11O2xldCBsPW4uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWModSxYTCk7aSYmKGwuaGVpZ2h0PXRbMF0pLGRbMF09bC5oZWlnaHQscj9jWzBdPW9bMF06Y1swXT0wO2xldCBoPWRbMF0sbT1jWzBdLGI9aD09PW0scD0xO2ZvcihsZXQgeT0xO3k8YTsrK3kpe2xldCBFPWVbeV0sZz1uLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKEUsWUwpO2kmJihnLmhlaWdodD10W3ldKSxiPWImJmcuaGVpZ2h0PT09MCxXTChsLGcpP2wuaGVpZ2h0PGcuaGVpZ2h0JiYoZFtwLTFdPWcuaGVpZ2h0KTooZltwXT1FLGRbcF09Zy5oZWlnaHQscj9jW3BdPW9beV06Y1twXT0wLGI9YiYmZFtwXT09PWNbcF0scmUuY2xvbmUoZyxsKSwrK3ApfWlmKCEoYnx8cDwyKSlyZXR1cm4gZi5sZW5ndGg9cCxkLmxlbmd0aD1wLGMubGVuZ3RoPXAse3Bvc2l0aW9uczpmLHRvcEhlaWdodHM6ZCxib3R0b21IZWlnaHRzOmN9fXZhciBZeCxYTCxZTCxaTCxRTCwkTCx5bSxzeT1YKCgpPT57S2EoKTtNZSgpO2d0KCk7c2UoKTtVZSgpO3dzKCk7WXg9e307WEw9bmV3IHJlLFlMPW5ldyByZTtaTD1uZXcgQXJyYXkoMiksUUw9bmV3IEFycmF5KDIpLCRMPXtwb3NpdGlvbnM6dm9pZCAwLGhlaWdodDp2b2lkIDAsZ3JhbnVsYXJpdHk6dm9pZCAwLGVsbGlwc29pZDp2b2lkIDB9O1l4LmNvbXB1dGVQb3NpdGlvbnM9ZnVuY3Rpb24obixlLHQsbyxhLHIpe2xldCBpPUpMKG4sZSx0LG8pO2lmKCFfKGkpKXJldHVybjtlPWkucG9zaXRpb25zLHQ9aS50b3BIZWlnaHRzLG89aS5ib3R0b21IZWlnaHRzO2xldCBmPWUubGVuZ3RoLGQ9Zi0yLGMsdSxsPWsuY2hvcmRMZW5ndGgoYSxuLm1heGltdW1SYWRpdXMpLGg9JEw7aWYoaC5taW5EaXN0YW5jZT1sLGguZWxsaXBzb2lkPW4scil7bGV0IG09MCxiO2ZvcihiPTA7YjxmLTE7YisrKW0rPWJuLm51bWJlck9mUG9pbnRzKGVbYl0sZVtiKzFdLGwpKzE7Yz1uZXcgRmxvYXQ2NEFycmF5KG0qMyksdT1uZXcgRmxvYXQ2NEFycmF5KG0qMyk7bGV0IHA9WkwseT1RTDtoLnBvc2l0aW9ucz1wLGguaGVpZ2h0PXk7bGV0IEU9MDtmb3IoYj0wO2I8Zi0xO2IrKyl7cFswXT1lW2JdLHBbMV09ZVtiKzFdLHlbMF09dFtiXSx5WzFdPXRbYisxXTtsZXQgZz1ibi5nZW5lcmF0ZUFyYyhoKTtjLnNldChnLEUpLHlbMF09b1tiXSx5WzFdPW9bYisxXSx1LnNldChibi5nZW5lcmF0ZUFyYyhoKSxFKSxFKz1nLmxlbmd0aH19ZWxzZSBoLnBvc2l0aW9ucz1lLGguaGVpZ2h0PXQsYz1uZXcgRmxvYXQ2NEFycmF5KGJuLmdlbmVyYXRlQXJjKGgpKSxoLmhlaWdodD1vLHU9bmV3IEZsb2F0NjRBcnJheShibi5nZW5lcmF0ZUFyYyhoKSk7cmV0dXJue2JvdHRvbVBvc2l0aW9uczp1LHRvcFBvc2l0aW9uczpjLG51bUNvcm5lcnM6ZH19O3ltPVl4fSk7ZnVuY3Rpb24gQ2Mobil7bj1uPz9PZS5FTVBUWV9PQkpFQ1Q7bGV0IGU9bi5wb3NpdGlvbnMsdD1uLm1heGltdW1IZWlnaHRzLG89bi5taW5pbXVtSGVpZ2h0cyxhPW4udmVydGV4Rm9ybWF0Pz9sZS5ERUZBVUxULHI9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUsaT1uLmVsbGlwc29pZD8/Sy5kZWZhdWx0O3RoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuX21pbmltdW1IZWlnaHRzPW8sdGhpcy5fbWF4aW11bUhlaWdodHM9dCx0aGlzLl92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUoYSksdGhpcy5fZ3JhbnVsYXJpdHk9cix0aGlzLl9lbGxpcHNvaWQ9Sy5jbG9uZShpKSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVXYWxsR2VvbWV0cnkiO2xldCBmPTErZS5sZW5ndGgqcy5wYWNrZWRMZW5ndGgrMjtfKG8pJiYoZis9by5sZW5ndGgpLF8odCkmJihmKz10Lmxlbmd0aCksdGhpcy5wYWNrZWRMZW5ndGg9ZitLLnBhY2tlZExlbmd0aCtsZS5wYWNrZWRMZW5ndGgrMX12YXIgZnksQW0sZTQsSngsdDQsbjQsbzQsWngsUXgsU2QsZHksJHg9WCgoKT0+e0V0KCk7TWUoKTtDdCgpO3N0KCk7c2UoKTtWZSgpO1h0KCk7WXQoKTtybigpO1p0KCk7VWUoKTt0bigpO0NvKCk7c3koKTtmeT1uZXcgcyxBbT1uZXcgcyxlND1uZXcgcyxKeD1uZXcgcyx0ND1uZXcgcyxuND1uZXcgcyxvND1uZXcgcztDYy5wYWNrPWZ1bmN0aW9uKG4sZSx0KXt0PXQ/PzA7bGV0IG8sYT1uLl9wb3NpdGlvbnMscj1hLmxlbmd0aDtmb3IoZVt0KytdPXIsbz0wO288cjsrK28sdCs9cy5wYWNrZWRMZW5ndGgpcy5wYWNrKGFbb10sZSx0KTtsZXQgaT1uLl9taW5pbXVtSGVpZ2h0cztpZihyPV8oaSk/aS5sZW5ndGg6MCxlW3QrK109cixfKGkpKWZvcihvPTA7bzxyOysrbyllW3QrK109aVtvXTtsZXQgZj1uLl9tYXhpbXVtSGVpZ2h0cztpZihyPV8oZik/Zi5sZW5ndGg6MCxlW3QrK109cixfKGYpKWZvcihvPTA7bzxyOysrbyllW3QrK109ZltvXTtyZXR1cm4gSy5wYWNrKG4uX2VsbGlwc29pZCxlLHQpLHQrPUsucGFja2VkTGVuZ3RoLGxlLnBhY2sobi5fdmVydGV4Rm9ybWF0LGUsdCksdCs9bGUucGFja2VkTGVuZ3RoLGVbdF09bi5fZ3JhbnVsYXJpdHksZX07Wng9Sy5jbG9uZShLLlVOSVRfU1BIRVJFKSxReD1uZXcgbGUsU2Q9e3Bvc2l0aW9uczp2b2lkIDAsbWluaW11bUhlaWdodHM6dm9pZCAwLG1heGltdW1IZWlnaHRzOnZvaWQgMCxlbGxpcHNvaWQ6WngsdmVydGV4Rm9ybWF0OlF4LGdyYW51bGFyaXR5OnZvaWQgMH07Q2MudW5wYWNrPWZ1bmN0aW9uKG4sZSx0KXtlPWU/PzA7bGV0IG8sYT1uW2UrK10scj1uZXcgQXJyYXkoYSk7Zm9yKG89MDtvPGE7KytvLGUrPXMucGFja2VkTGVuZ3RoKXJbb109cy51bnBhY2sobixlKTthPW5bZSsrXTtsZXQgaTtpZihhPjApZm9yKGk9bmV3IEFycmF5KGEpLG89MDtvPGE7KytvKWlbb109bltlKytdO2E9bltlKytdO2xldCBmO2lmKGE+MClmb3IoZj1uZXcgQXJyYXkoYSksbz0wO288YTsrK28pZltvXT1uW2UrK107bGV0IGQ9Sy51bnBhY2sobixlLFp4KTtlKz1LLnBhY2tlZExlbmd0aDtsZXQgYz1sZS51bnBhY2sobixlLFF4KTtlKz1sZS5wYWNrZWRMZW5ndGg7bGV0IHU9bltlXTtyZXR1cm4gXyh0KT8odC5fcG9zaXRpb25zPXIsdC5fbWluaW11bUhlaWdodHM9aSx0Ll9tYXhpbXVtSGVpZ2h0cz1mLHQuX2VsbGlwc29pZD1LLmNsb25lKGQsdC5fZWxsaXBzb2lkKSx0Ll92ZXJ0ZXhGb3JtYXQ9bGUuY2xvbmUoYyx0Ll92ZXJ0ZXhGb3JtYXQpLHQuX2dyYW51bGFyaXR5PXUsdCk6KFNkLnBvc2l0aW9ucz1yLFNkLm1pbmltdW1IZWlnaHRzPWksU2QubWF4aW11bUhlaWdodHM9ZixTZC5ncmFudWxhcml0eT11LG5ldyBDYyhTZCkpfTtDYy5mcm9tQ29uc3RhbnRIZWlnaHRzPWZ1bmN0aW9uKG4pe249bj8/T2UuRU1QVFlfT0JKRUNUO2xldCBlPW4ucG9zaXRpb25zLHQsbyxhPW4ubWluaW11bUhlaWdodCxyPW4ubWF4aW11bUhlaWdodCxpPV8oYSksZj1fKHIpO2lmKGl8fGYpe2xldCBjPWUubGVuZ3RoO3Q9aT9uZXcgQXJyYXkoYyk6dm9pZCAwLG89Zj9uZXcgQXJyYXkoYyk6dm9pZCAwO2ZvcihsZXQgdT0wO3U8YzsrK3UpaSYmKHRbdV09YSksZiYmKG9bdV09cil9bGV0IGQ9e3Bvc2l0aW9uczplLG1heGltdW1IZWlnaHRzOm8sbWluaW11bUhlaWdodHM6dCxlbGxpcHNvaWQ6bi5lbGxpcHNvaWQsdmVydGV4Rm9ybWF0Om4udmVydGV4Rm9ybWF0fTtyZXR1cm4gbmV3IENjKGQpfTtDYy5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbihuKXtsZXQgZT1uLl9wb3NpdGlvbnMsdD1uLl9taW5pbXVtSGVpZ2h0cyxvPW4uX21heGltdW1IZWlnaHRzLGE9bi5fdmVydGV4Rm9ybWF0LHI9bi5fZ3JhbnVsYXJpdHksaT1uLl9lbGxpcHNvaWQsZj15bS5jb21wdXRlUG9zaXRpb25zKGksZSxvLHQsciwhMCk7aWYoIV8oZikpcmV0dXJuO2xldCBkPWYuYm90dG9tUG9zaXRpb25zLGM9Zi50b3BQb3NpdGlvbnMsdT1mLm51bUNvcm5lcnMsbD1jLmxlbmd0aCxoPWwqMixtPWEucG9zaXRpb24/bmV3IEZsb2F0NjRBcnJheShoKTp2b2lkIDAsYj1hLm5vcm1hbD9uZXcgRmxvYXQzMkFycmF5KGgpOnZvaWQgMCxwPWEudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGgpOnZvaWQgMCx5PWEuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoaCk6dm9pZCAwLEU9YS5zdD9uZXcgRmxvYXQzMkFycmF5KGgvMyoyKTp2b2lkIDAsZz0wLEE9MCxUPTAsUj0wLFM9MCxNPW80LEk9bjQsTj10NCxQPSEwO2wvPTM7bGV0IEYsdz0wLHg9MS8obC11LTEpO2ZvcihGPTA7RjxsOysrRil7bGV0IEQ9RiozLEc9cy5mcm9tQXJyYXkoYyxELGZ5KSxWPXMuZnJvbUFycmF5KGQsRCxBbSk7aWYoYS5wb3NpdGlvbiYmKG1bZysrXT1WLngsbVtnKytdPVYueSxtW2crK109Vi56LG1bZysrXT1HLngsbVtnKytdPUcueSxtW2crK109Ry56KSxhLnN0JiYoRVtTKytdPXcsRVtTKytdPTAsRVtTKytdPXcsRVtTKytdPTEpLGEubm9ybWFsfHxhLnRhbmdlbnR8fGEuYml0YW5nZW50KXtsZXQgTz1zLmNsb25lKHMuWkVSTyxKeCksWj1zLnN1YnRyYWN0KEcsaS5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoRyxBbSksQW0pO2lmKEYrMTxsJiYoTz1zLmZyb21BcnJheShjLEQrMyxKeCkpLFApe2xldCBhZT1zLnN1YnRyYWN0KE8sRyxlNCksY2U9cy5zdWJ0cmFjdChaLEcsZnkpO009cy5ub3JtYWxpemUocy5jcm9zcyhjZSxhZSxNKSxNKSxQPSExfXMuZXF1YWxzRXBzaWxvbihHLE8say5FUFNJTE9OMTApP1A9ITA6KHcrPXgsYS50YW5nZW50JiYoST1zLm5vcm1hbGl6ZShzLnN1YnRyYWN0KE8sRyxJKSxJKSksYS5iaXRhbmdlbnQmJihOPXMubm9ybWFsaXplKHMuY3Jvc3MoTSxJLE4pLE4pKSksYS5ub3JtYWwmJihiW0ErK109TS54LGJbQSsrXT1NLnksYltBKytdPU0ueixiW0ErK109TS54LGJbQSsrXT1NLnksYltBKytdPU0ueiksYS50YW5nZW50JiYocFtSKytdPUkueCxwW1IrK109SS55LHBbUisrXT1JLnoscFtSKytdPUkueCxwW1IrK109SS55LHBbUisrXT1JLnopLGEuYml0YW5nZW50JiYoeVtUKytdPU4ueCx5W1QrK109Ti55LHlbVCsrXT1OLnoseVtUKytdPU4ueCx5W1QrK109Ti55LHlbVCsrXT1OLnopfX1sZXQgQz1uZXcgUWU7YS5wb3NpdGlvbiYmKEMucG9zaXRpb249bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczptfSkpLGEubm9ybWFsJiYoQy5ub3JtYWw9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmJ9KSksYS50YW5nZW50JiYoQy50YW5nZW50PW5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpwfSkpLGEuYml0YW5nZW50JiYoQy5iaXRhbmdlbnQ9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnl9KSksYS5zdCYmKEMuc3Q9bmV3IGllKHtjb21wb25lbnREYXRhdHlwZTpvZS5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOkV9KSk7bGV0IHY9aC8zO2gtPTYqKHUrMSk7bGV0IGo9SWUuY3JlYXRlVHlwZWRBcnJheSh2LGgpLHo9MDtmb3IoRj0wO0Y8di0yO0YrPTIpe2xldCBEPUYsRz1GKzIsVj1zLmZyb21BcnJheShtLEQqMyxmeSksTz1zLmZyb21BcnJheShtLEcqMyxBbSk7aWYocy5lcXVhbHNFcHNpbG9uKFYsTyxrLkVQU0lMT04xMCkpY29udGludWU7bGV0IFo9RisxLGFlPUYrMztqW3orK109WixqW3orK109RCxqW3orK109YWUsalt6KytdPWFlLGpbeisrXT1ELGpbeisrXT1HfXJldHVybiBuZXcgUGUoe2F0dHJpYnV0ZXM6QyxpbmRpY2VzOmoscHJpbWl0aXZlVHlwZTpGZS5UUklBTkdMRVMsYm91bmRpbmdTcGhlcmU6Z2UuZnJvbVZlcnRpY2VzKG0pfSl9O2R5PUNjfSk7dmFyIHV5PXt9OyRlKHV5LHtkZWZhdWx0OigpPT5yNH0pO2Z1bmN0aW9uIGE0KG4sZSl7cmV0dXJuIF8oZSkmJihuPWR5LnVucGFjayhuLGUpKSxuLl9lbGxpcHNvaWQ9Sy5jbG9uZShuLl9lbGxpcHNvaWQpLGR5LmNyZWF0ZUdlb21ldHJ5KG4pfXZhciByNCxseT1YKCgpPT57c2UoKTtWZSgpOyR4KCk7cjQ9YTR9KTtmdW5jdGlvbiBNYyhuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLnBvc2l0aW9ucyx0PW4ubWF4aW11bUhlaWdodHMsbz1uLm1pbmltdW1IZWlnaHRzLGE9bi5ncmFudWxhcml0eT8/ay5SQURJQU5TX1BFUl9ERUdSRUUscj1uLmVsbGlwc29pZD8/Sy5kZWZhdWx0O3RoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuX21pbmltdW1IZWlnaHRzPW8sdGhpcy5fbWF4aW11bUhlaWdodHM9dCx0aGlzLl9ncmFudWxhcml0eT1hLHRoaXMuX2VsbGlwc29pZD1LLmNsb25lKHIpLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVdhbGxPdXRsaW5lR2VvbWV0cnkiO2xldCBpPTErZS5sZW5ndGgqcy5wYWNrZWRMZW5ndGgrMjtfKG8pJiYoaSs9by5sZW5ndGgpLF8odCkmJihpKz10Lmxlbmd0aCksdGhpcy5wYWNrZWRMZW5ndGg9aStLLnBhY2tlZExlbmd0aCsxfXZhciBlTyx0TyxuTyxDZCxoeSxvTz1YKCgpPT57RXQoKTtNZSgpO0N0KCk7c3QoKTtzZSgpO1ZlKCk7WHQoKTtZdCgpO3JuKCk7WnQoKTtVZSgpO3RuKCk7c3koKTtlTz1uZXcgcyx0Tz1uZXcgcztNYy5wYWNrPWZ1bmN0aW9uKG4sZSx0KXt0PXQ/PzA7bGV0IG8sYT1uLl9wb3NpdGlvbnMscj1hLmxlbmd0aDtmb3IoZVt0KytdPXIsbz0wO288cjsrK28sdCs9cy5wYWNrZWRMZW5ndGgpcy5wYWNrKGFbb10sZSx0KTtsZXQgaT1uLl9taW5pbXVtSGVpZ2h0cztpZihyPV8oaSk/aS5sZW5ndGg6MCxlW3QrK109cixfKGkpKWZvcihvPTA7bzxyOysrbyllW3QrK109aVtvXTtsZXQgZj1uLl9tYXhpbXVtSGVpZ2h0cztpZihyPV8oZik/Zi5sZW5ndGg6MCxlW3QrK109cixfKGYpKWZvcihvPTA7bzxyOysrbyllW3QrK109ZltvXTtyZXR1cm4gSy5wYWNrKG4uX2VsbGlwc29pZCxlLHQpLHQrPUsucGFja2VkTGVuZ3RoLGVbdF09bi5fZ3JhbnVsYXJpdHksZX07bk89Sy5jbG9uZShLLlVOSVRfU1BIRVJFKSxDZD17cG9zaXRpb25zOnZvaWQgMCxtaW5pbXVtSGVpZ2h0czp2b2lkIDAsbWF4aW11bUhlaWdodHM6dm9pZCAwLGVsbGlwc29pZDpuTyxncmFudWxhcml0eTp2b2lkIDB9O01jLnVucGFjaz1mdW5jdGlvbihuLGUsdCl7ZT1lPz8wO2xldCBvLGE9bltlKytdLHI9bmV3IEFycmF5KGEpO2ZvcihvPTA7bzxhOysrbyxlKz1zLnBhY2tlZExlbmd0aClyW29dPXMudW5wYWNrKG4sZSk7YT1uW2UrK107bGV0IGk7aWYoYT4wKWZvcihpPW5ldyBBcnJheShhKSxvPTA7bzxhOysrbylpW29dPW5bZSsrXTthPW5bZSsrXTtsZXQgZjtpZihhPjApZm9yKGY9bmV3IEFycmF5KGEpLG89MDtvPGE7KytvKWZbb109bltlKytdO2xldCBkPUsudW5wYWNrKG4sZSxuTyk7ZSs9Sy5wYWNrZWRMZW5ndGg7bGV0IGM9bltlXTtyZXR1cm4gXyh0KT8odC5fcG9zaXRpb25zPXIsdC5fbWluaW11bUhlaWdodHM9aSx0Ll9tYXhpbXVtSGVpZ2h0cz1mLHQuX2VsbGlwc29pZD1LLmNsb25lKGQsdC5fZWxsaXBzb2lkKSx0Ll9ncmFudWxhcml0eT1jLHQpOihDZC5wb3NpdGlvbnM9cixDZC5taW5pbXVtSGVpZ2h0cz1pLENkLm1heGltdW1IZWlnaHRzPWYsQ2QuZ3JhbnVsYXJpdHk9YyxuZXcgTWMoQ2QpKX07TWMuZnJvbUNvbnN0YW50SGVpZ2h0cz1mdW5jdGlvbihuKXtuPW4/P09lLkVNUFRZX09CSkVDVDtsZXQgZT1uLnBvc2l0aW9ucyx0LG8sYT1uLm1pbmltdW1IZWlnaHQscj1uLm1heGltdW1IZWlnaHQsaT1fKGEpLGY9XyhyKTtpZihpfHxmKXtsZXQgYz1lLmxlbmd0aDt0PWk/bmV3IEFycmF5KGMpOnZvaWQgMCxvPWY/bmV3IEFycmF5KGMpOnZvaWQgMDtmb3IobGV0IHU9MDt1PGM7Kyt1KWkmJih0W3VdPWEpLGYmJihvW3VdPXIpfWxldCBkPXtwb3NpdGlvbnM6ZSxtYXhpbXVtSGVpZ2h0czpvLG1pbmltdW1IZWlnaHRzOnQsZWxsaXBzb2lkOm4uZWxsaXBzb2lkfTtyZXR1cm4gbmV3IE1jKGQpfTtNYy5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbihuKXtsZXQgZT1uLl9wb3NpdGlvbnMsdD1uLl9taW5pbXVtSGVpZ2h0cyxvPW4uX21heGltdW1IZWlnaHRzLGE9bi5fZ3JhbnVsYXJpdHkscj1uLl9lbGxpcHNvaWQsaT15bS5jb21wdXRlUG9zaXRpb25zKHIsZSxvLHQsYSwhMSk7aWYoIV8oaSkpcmV0dXJuO2xldCBmPWkuYm90dG9tUG9zaXRpb25zLGQ9aS50b3BQb3NpdGlvbnMsYz1kLmxlbmd0aCx1PWMqMixsPW5ldyBGbG9hdDY0QXJyYXkodSksaD0wO2MvPTM7bGV0IG07Zm9yKG09MDttPGM7KyttKXtsZXQgZz1tKjMsQT1zLmZyb21BcnJheShkLGcsZU8pLFQ9cy5mcm9tQXJyYXkoZixnLHRPKTtsW2grK109VC54LGxbaCsrXT1ULnksbFtoKytdPVQueixsW2grK109QS54LGxbaCsrXT1BLnksbFtoKytdPUEuen1sZXQgYj1uZXcgUWUoe3Bvc2l0aW9uOm5ldyBpZSh7Y29tcG9uZW50RGF0YXR5cGU6b2UuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bH0pfSkscD11LzM7dT0yKnAtNCtwO2xldCB5PUllLmNyZWF0ZVR5cGVkQXJyYXkocCx1KSxFPTA7Zm9yKG09MDttPHAtMjttKz0yKXtsZXQgZz1tLEE9bSsyLFQ9cy5mcm9tQXJyYXkobCxnKjMsZU8pLFI9cy5mcm9tQXJyYXkobCxBKjMsdE8pO2lmKHMuZXF1YWxzRXBzaWxvbihULFIsay5FUFNJTE9OMTApKWNvbnRpbnVlO2xldCBTPW0rMSxNPW0rMzt5W0UrK109Uyx5W0UrK109Zyx5W0UrK109Uyx5W0UrK109TSx5W0UrK109Zyx5W0UrK109QX1yZXR1cm4geVtFKytdPXAtMix5W0UrK109cC0xLG5ldyBQZSh7YXR0cmlidXRlczpiLGluZGljZXM6eSxwcmltaXRpdmVUeXBlOkZlLkxJTkVTLGJvdW5kaW5nU3BoZXJlOmdlLmZyb21WZXJ0aWNlcyhsKX0pfTtoeT1NY30pO3ZhciBteT17fTskZShteSx7ZGVmYXVsdDooKT0+YzR9KTtmdW5jdGlvbiBpNChuLGUpe3JldHVybiBfKGUpJiYobj1oeS51bnBhY2sobixlKSksbi5fZWxsaXBzb2lkPUsuY2xvbmUobi5fZWxsaXBzb2lkKSxoeS5jcmVhdGVHZW9tZXRyeShuKX12YXIgYzQsYnk9WCgoKT0+e3NlKCk7VmUoKTtvTygpO2M0PWk0fSk7dmFyIF95PXNpKChNZCxneSk9Pnt2YXIga2U9a2V8fHt9O2tlLnNjb3BlPXt9O2tlLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKG4pe3ZhciBlPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGU8bi5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6bltlKytdfTp7ZG9uZTohMH19fTtrZS5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKG4pe3JldHVybntuZXh0OmtlLmFycmF5SXRlcmF0b3JJbXBsKG4pfX07a2UubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKG4pe3ZhciBlPXR5cGVvZiBTeW1ib2w8InUiJiZTeW1ib2wuaXRlcmF0b3ImJm5bU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gZT9lLmNhbGwobik6a2UuYXJyYXlJdGVyYXRvcihuKX07a2UuQVNTVU1FX0VTNT0hMTtrZS5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTtrZS5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTtrZS5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExO2tlLklTT0xBVEVfUE9MWUZJTExTPSExO2tlLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7a2UuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7a2UuZ2V0R2xvYmFsPWZ1bmN0aW9uKG4pe249W3R5cGVvZiBnbG9iYWxUaGlzPT0ib2JqZWN0IiYmZ2xvYmFsVGhpcyxuLHR5cGVvZiB3aW5kb3c9PSJvYmplY3QiJiZ3aW5kb3csdHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmLHR5cGVvZiBnbG9iYWw9PSJvYmplY3QiJiZnbG9iYWxdO2Zvcih2YXIgZT0wO2U8bi5sZW5ndGg7KytlKXt2YXIgdD1uW2VdO2lmKHQmJnQuTWF0aD09TWF0aClyZXR1cm4gdH10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpfTtrZS5nbG9iYWw9a2UuZ2V0R2xvYmFsKE1kKTtrZS5kZWZpbmVQcm9wZXJ0eT1rZS5BU1NVTUVfRVM1fHx0eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9PSJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKG4sZSx0KXtyZXR1cm4gbj09QXJyYXkucHJvdG90eXBlfHxuPT1PYmplY3QucHJvdG90eXBlfHwobltlXT10LnZhbHVlKSxufTtrZS5JU19TWU1CT0xfTkFUSVZFPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woIngiKT09InN5bWJvbCI7a2UuVFJVU1RfRVM2X1BPTFlGSUxMUz0ha2UuSVNPTEFURV9QT0xZRklMTFN8fGtlLklTX1NZTUJPTF9OQVRJVkU7a2UucG9seWZpbGxzPXt9O2tlLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTtrZS5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7a2UucG9seWZpbGw9ZnVuY3Rpb24obixlLHQsbyl7ZSYmKGtlLklTT0xBVEVfUE9MWUZJTExTP2tlLnBvbHlmaWxsSXNvbGF0ZWQobixlLHQsbyk6a2UucG9seWZpbGxVbmlzb2xhdGVkKG4sZSx0LG8pKX07a2UucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKG4sZSx0LG8pe2Zvcih0PWtlLmdsb2JhbCxuPW4uc3BsaXQoIi4iKSxvPTA7bzxuLmxlbmd0aC0xO28rKyl7dmFyIGE9bltvXTtpZighKGEgaW4gdCkpcmV0dXJuO3Q9dFthXX1uPW5bbi5sZW5ndGgtMV0sbz10W25dLGU9ZShvKSxlIT1vJiZlIT1udWxsJiZrZS5kZWZpbmVQcm9wZXJ0eSh0LG4se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTplfSl9O2tlLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24obixlLHQsbyl7dmFyIGE9bi5zcGxpdCgiLiIpO249YS5sZW5ndGg9PT0xLG89YVswXSxvPSFuJiZvIGluIGtlLnBvbHlmaWxscz9rZS5wb2x5ZmlsbHM6a2UuZ2xvYmFsO2Zvcih2YXIgcj0wO3I8YS5sZW5ndGgtMTtyKyspe3ZhciBpPWFbcl07aWYoIShpIGluIG8pKXJldHVybjtvPW9baV19YT1hW2EubGVuZ3RoLTFdLHQ9a2UuSVNfU1lNQk9MX05BVElWRSYmdD09PSJlczYiP29bYV06bnVsbCxlPWUodCksZSE9bnVsbCYmKG4/a2UuZGVmaW5lUHJvcGVydHkoa2UucG9seWZpbGxzLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTplfSk6ZSE9PXQmJihrZS5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYV09PT12b2lkIDAmJih0PTFlOSpNYXRoLnJhbmRvbSgpPj4+MCxrZS5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYV09a2UuSVNfU1lNQk9MX05BVElWRT9rZS5nbG9iYWwuU3ltYm9sKGEpOmtlLlBPTFlGSUxMX1BSRUZJWCt0KyIkIithKSxrZS5kZWZpbmVQcm9wZXJ0eShvLGtlLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFthXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmV9KSkpfTtrZS5wb2x5ZmlsbCgiUHJvbWlzZSIsZnVuY3Rpb24obil7ZnVuY3Rpb24gZSgpe3RoaXMuYmF0Y2hfPW51bGx9ZnVuY3Rpb24gdChpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIGE/aTpuZXcgYShmdW5jdGlvbihmLGQpe2YoaSl9KX1pZihuJiYoIShrZS5GT1JDRV9QT0xZRklMTF9QUk9NSVNFfHxrZS5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTiYmdHlwZW9mIGtlLmdsb2JhbC5Qcm9taXNlUmVqZWN0aW9uRXZlbnQ+InUiKXx8IWtlLmdsb2JhbC5Qcm9taXNlfHxrZS5nbG9iYWwuUHJvbWlzZS50b1N0cmluZygpLmluZGV4T2YoIltuYXRpdmUgY29kZV0iKT09PS0xKSlyZXR1cm4gbjtlLnByb3RvdHlwZS5hc3luY0V4ZWN1dGU9ZnVuY3Rpb24oaSl7aWYodGhpcy5iYXRjaF89PW51bGwpe3RoaXMuYmF0Y2hfPVtdO3ZhciBmPXRoaXM7dGhpcy5hc3luY0V4ZWN1dGVGdW5jdGlvbihmdW5jdGlvbigpe2YuZXhlY3V0ZUJhdGNoXygpfSl9dGhpcy5iYXRjaF8ucHVzaChpKX07dmFyIG89a2UuZ2xvYmFsLnNldFRpbWVvdXQ7ZS5wcm90b3R5cGUuYXN5bmNFeGVjdXRlRnVuY3Rpb249ZnVuY3Rpb24oaSl7byhpLDApfSxlLnByb3RvdHlwZS5leGVjdXRlQmF0Y2hfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmJhdGNoXyYmdGhpcy5iYXRjaF8ubGVuZ3RoOyl7dmFyIGk9dGhpcy5iYXRjaF87dGhpcy5iYXRjaF89W107Zm9yKHZhciBmPTA7ZjxpLmxlbmd0aDsrK2Ype3ZhciBkPWlbZl07aVtmXT1udWxsO3RyeXtkKCl9Y2F0Y2goYyl7dGhpcy5hc3luY1Rocm93XyhjKX19fXRoaXMuYmF0Y2hfPW51bGx9LGUucHJvdG90eXBlLmFzeW5jVGhyb3dfPWZ1bmN0aW9uKGkpe3RoaXMuYXN5bmNFeGVjdXRlRnVuY3Rpb24oZnVuY3Rpb24oKXt0aHJvdyBpfSl9O3ZhciBhPWZ1bmN0aW9uKGkpe3RoaXMuc3RhdGVfPTAsdGhpcy5yZXN1bHRfPXZvaWQgMCx0aGlzLm9uU2V0dGxlZENhbGxiYWNrc189W10sdGhpcy5pc1JlamVjdGlvbkhhbmRsZWRfPSExO3ZhciBmPXRoaXMuY3JlYXRlUmVzb2x2ZUFuZFJlamVjdF8oKTt0cnl7aShmLnJlc29sdmUsZi5yZWplY3QpfWNhdGNoKGQpe2YucmVqZWN0KGQpfX07YS5wcm90b3R5cGUuY3JlYXRlUmVzb2x2ZUFuZFJlamVjdF89ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKGMpe3JldHVybiBmdW5jdGlvbih1KXtkfHwoZD0hMCxjLmNhbGwoZix1KSl9fXZhciBmPXRoaXMsZD0hMTtyZXR1cm57cmVzb2x2ZTppKHRoaXMucmVzb2x2ZVRvXykscmVqZWN0OmkodGhpcy5yZWplY3RfKX19LGEucHJvdG90eXBlLnJlc29sdmVUb189ZnVuY3Rpb24oaSl7aWYoaT09PXRoaXMpdGhpcy5yZWplY3RfKG5ldyBUeXBlRXJyb3IoIkEgUHJvbWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGYiKSk7ZWxzZSBpZihpIGluc3RhbmNlb2YgYSl0aGlzLnNldHRsZVNhbWVBc1Byb21pc2VfKGkpO2Vsc2V7ZTpzd2l0Y2godHlwZW9mIGkpe2Nhc2Uib2JqZWN0Ijp2YXIgZj1pIT1udWxsO2JyZWFrIGU7Y2FzZSJmdW5jdGlvbiI6Zj0hMDticmVhayBlO2RlZmF1bHQ6Zj0hMX1mP3RoaXMucmVzb2x2ZVRvTm9uUHJvbWlzZU9ial8oaSk6dGhpcy5mdWxmaWxsXyhpKX19LGEucHJvdG90eXBlLnJlc29sdmVUb05vblByb21pc2VPYmpfPWZ1bmN0aW9uKGkpe3ZhciBmPXZvaWQgMDt0cnl7Zj1pLnRoZW59Y2F0Y2goZCl7dGhpcy5yZWplY3RfKGQpO3JldHVybn10eXBlb2YgZj09ImZ1bmN0aW9uIj90aGlzLnNldHRsZVNhbWVBc1RoZW5hYmxlXyhmLGkpOnRoaXMuZnVsZmlsbF8oaSl9LGEucHJvdG90eXBlLnJlamVjdF89ZnVuY3Rpb24oaSl7dGhpcy5zZXR0bGVfKDIsaSl9LGEucHJvdG90eXBlLmZ1bGZpbGxfPWZ1bmN0aW9uKGkpe3RoaXMuc2V0dGxlXygxLGkpfSxhLnByb3RvdHlwZS5zZXR0bGVfPWZ1bmN0aW9uKGksZil7aWYodGhpcy5zdGF0ZV8hPTApdGhyb3cgRXJyb3IoIkNhbm5vdCBzZXR0bGUoIitpKyIsICIrZisiKTogUHJvbWlzZSBhbHJlYWR5IHNldHRsZWQgaW4gc3RhdGUiK3RoaXMuc3RhdGVfKTt0aGlzLnN0YXRlXz1pLHRoaXMucmVzdWx0Xz1mLHRoaXMuc3RhdGVfPT09MiYmdGhpcy5zY2hlZHVsZVVuaGFuZGxlZFJlamVjdGlvbkNoZWNrXygpLHRoaXMuZXhlY3V0ZU9uU2V0dGxlZENhbGxiYWNrc18oKX0sYS5wcm90b3R5cGUuc2NoZWR1bGVVbmhhbmRsZWRSZWplY3Rpb25DaGVja189ZnVuY3Rpb24oKXt2YXIgaT10aGlzO28oZnVuY3Rpb24oKXtpZihpLm5vdGlmeVVuaGFuZGxlZFJlamVjdGlvbl8oKSl7dmFyIGY9a2UuZ2xvYmFsLmNvbnNvbGU7dHlwZW9mIGY8InUiJiZmLmVycm9yKGkucmVzdWx0Xyl9fSwxKX0sYS5wcm90b3R5cGUubm90aWZ5VW5oYW5kbGVkUmVqZWN0aW9uXz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSZWplY3Rpb25IYW5kbGVkXylyZXR1cm4hMTt2YXIgaT1rZS5nbG9iYWwuQ3VzdG9tRXZlbnQsZj1rZS5nbG9iYWwuRXZlbnQsZD1rZS5nbG9iYWwuZGlzcGF0Y2hFdmVudDtyZXR1cm4gdHlwZW9mIGQ+InUiPyEwOih0eXBlb2YgaT09ImZ1bmN0aW9uIj9pPW5ldyBpKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6dHlwZW9mIGY9PSJmdW5jdGlvbiI/aT1uZXcgZigidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOihpPWtlLmdsb2JhbC5kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxpLmluaXRDdXN0b21FdmVudCgidW5oYW5kbGVkcmVqZWN0aW9uIiwhMSwhMCxpKSksaS5wcm9taXNlPXRoaXMsaS5yZWFzb249dGhpcy5yZXN1bHRfLGQoaSkpfSxhLnByb3RvdHlwZS5leGVjdXRlT25TZXR0bGVkQ2FsbGJhY2tzXz1mdW5jdGlvbigpe2lmKHRoaXMub25TZXR0bGVkQ2FsbGJhY2tzXyE9bnVsbCl7Zm9yKHZhciBpPTA7aTx0aGlzLm9uU2V0dGxlZENhbGxiYWNrc18ubGVuZ3RoOysraSlyLmFzeW5jRXhlY3V0ZSh0aGlzLm9uU2V0dGxlZENhbGxiYWNrc19baV0pO3RoaXMub25TZXR0bGVkQ2FsbGJhY2tzXz1udWxsfX07dmFyIHI9bmV3IGU7cmV0dXJuIGEucHJvdG90eXBlLnNldHRsZVNhbWVBc1Byb21pc2VfPWZ1bmN0aW9uKGkpe3ZhciBmPXRoaXMuY3JlYXRlUmVzb2x2ZUFuZFJlamVjdF8oKTtpLmNhbGxXaGVuU2V0dGxlZF8oZi5yZXNvbHZlLGYucmVqZWN0KX0sYS5wcm90b3R5cGUuc2V0dGxlU2FtZUFzVGhlbmFibGVfPWZ1bmN0aW9uKGksZil7dmFyIGQ9dGhpcy5jcmVhdGVSZXNvbHZlQW5kUmVqZWN0XygpO3RyeXtpLmNhbGwoZixkLnJlc29sdmUsZC5yZWplY3QpfWNhdGNoKGMpe2QucmVqZWN0KGMpfX0sYS5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihpLGYpe2Z1bmN0aW9uIGQoaCxtKXtyZXR1cm4gdHlwZW9mIGg9PSJmdW5jdGlvbiI/ZnVuY3Rpb24oYil7dHJ5e2MoaChiKSl9Y2F0Y2gocCl7dShwKX19Om19dmFyIGMsdSxsPW5ldyBhKGZ1bmN0aW9uKGgsbSl7Yz1oLHU9bX0pO3JldHVybiB0aGlzLmNhbGxXaGVuU2V0dGxlZF8oZChpLGMpLGQoZix1KSksbH0sYS5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsaSl9LGEucHJvdG90eXBlLmNhbGxXaGVuU2V0dGxlZF89ZnVuY3Rpb24oaSxmKXtmdW5jdGlvbiBkKCl7c3dpdGNoKGMuc3RhdGVfKXtjYXNlIDE6aShjLnJlc3VsdF8pO2JyZWFrO2Nhc2UgMjpmKGMucmVzdWx0Xyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5leHBlY3RlZCBzdGF0ZTogIitjLnN0YXRlXyl9fXZhciBjPXRoaXM7dGhpcy5vblNldHRsZWRDYWxsYmFja3NfPT1udWxsP3IuYXN5bmNFeGVjdXRlKGQpOnRoaXMub25TZXR0bGVkQ2FsbGJhY2tzXy5wdXNoKGQpLHRoaXMuaXNSZWplY3Rpb25IYW5kbGVkXz0hMH0sYS5yZXNvbHZlPXQsYS5yZWplY3Q9ZnVuY3Rpb24oaSl7cmV0dXJuIG5ldyBhKGZ1bmN0aW9uKGYsZCl7ZChpKX0pfSxhLnJhY2U9ZnVuY3Rpb24oaSl7cmV0dXJuIG5ldyBhKGZ1bmN0aW9uKGYsZCl7Zm9yKHZhciBjPWtlLm1ha2VJdGVyYXRvcihpKSx1PWMubmV4dCgpOyF1LmRvbmU7dT1jLm5leHQoKSl0KHUudmFsdWUpLmNhbGxXaGVuU2V0dGxlZF8oZixkKX0pfSxhLmFsbD1mdW5jdGlvbihpKXt2YXIgZj1rZS5tYWtlSXRlcmF0b3IoaSksZD1mLm5leHQoKTtyZXR1cm4gZC5kb25lP3QoW10pOm5ldyBhKGZ1bmN0aW9uKGMsdSl7ZnVuY3Rpb24gbChiKXtyZXR1cm4gZnVuY3Rpb24ocCl7aFtiXT1wLG0tLSxtPT0wJiZjKGgpfX12YXIgaD1bXSxtPTA7ZG8gaC5wdXNoKHZvaWQgMCksbSsrLHQoZC52YWx1ZSkuY2FsbFdoZW5TZXR0bGVkXyhsKGgubGVuZ3RoLTEpLHUpLGQ9Zi5uZXh0KCk7d2hpbGUoIWQuZG9uZSl9KX0sYX0sImVzNiIsImVzMyIpO2tlLm93bnM9ZnVuY3Rpb24obixlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sZSl9O2tlLmFzc2lnbj1rZS5UUlVTVF9FUzZfUE9MWUZJTExTJiZ0eXBlb2YgT2JqZWN0LmFzc2lnbj09ImZ1bmN0aW9uIj9PYmplY3QuYXNzaWduOmZ1bmN0aW9uKG4sZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG89YXJndW1lbnRzW3RdO2lmKG8pZm9yKHZhciBhIGluIG8pa2Uub3ducyhvLGEpJiYoblthXT1vW2FdKX1yZXR1cm4gbn07a2UucG9seWZpbGwoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKG4pe3JldHVybiBufHxrZS5hc3NpZ259LCJlczYiLCJlczMiKTtrZS5jaGVja1N0cmluZ0FyZ3M9ZnVuY3Rpb24obixlLHQpe2lmKG49PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlICd0aGlzJyB2YWx1ZSBmb3IgU3RyaW5nLnByb3RvdHlwZS4iK3QrIiBtdXN0IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpO2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApdGhyb3cgbmV3IFR5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgdG8gU3RyaW5nLnByb3RvdHlwZS4iK3QrIiBtdXN0IG5vdCBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiIpO3JldHVybiBuKyIifTtrZS5wb2x5ZmlsbCgiU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoIixmdW5jdGlvbihuKXtyZXR1cm4gbnx8ZnVuY3Rpb24oZSx0KXt2YXIgbz1rZS5jaGVja1N0cmluZ0FyZ3ModGhpcyxlLCJzdGFydHNXaXRoIik7ZSs9IiI7dmFyIGE9by5sZW5ndGgscj1lLmxlbmd0aDt0PU1hdGgubWF4KDAsTWF0aC5taW4odHwwLG8ubGVuZ3RoKSk7Zm9yKHZhciBpPTA7aTxyJiZ0PGE7KWlmKG9bdCsrXSE9ZVtpKytdKXJldHVybiExO3JldHVybiBpPj1yfX0sImVzNiIsImVzMyIpO2tlLnBvbHlmaWxsKCJBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsZnVuY3Rpb24obil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gdD1OdW1iZXIodCksdD09PTEvMHx8dD09PS0xLzA/dDp0fDB9cmV0dXJuIG58fGZ1bmN0aW9uKHQsbyxhKXt2YXIgcj10aGlzLmxlbmd0aDtpZih0PWUodCksbz1lKG8pLGE9YT09PXZvaWQgMD9yOmUoYSksdD0wPnQ/TWF0aC5tYXgocit0LDApOk1hdGgubWluKHQsciksbz0wPm8/TWF0aC5tYXgocitvLDApOk1hdGgubWluKG8sciksYT0wPmE/TWF0aC5tYXgocithLDApOk1hdGgubWluKGEsciksdDxvKWZvcig7bzxhOylvIGluIHRoaXM/dGhpc1t0KytdPXRoaXNbbysrXTooZGVsZXRlIHRoaXNbdCsrXSxvKyspO2Vsc2UgZm9yKGE9TWF0aC5taW4oYSxyK28tdCksdCs9YS1vO2E+bzspLS1hIGluIHRoaXM/dGhpc1stLXRdPXRoaXNbYV06ZGVsZXRlIHRoaXNbLS10XTtyZXR1cm4gdGhpc319LCJlczYiLCJlczMiKTtrZS50eXBlZEFycmF5Q29weVdpdGhpbj1mdW5jdGlvbihuKXtyZXR1cm4gbnx8QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW59O2tlLnBvbHlmaWxsKCJJbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4iLGtlLnR5cGVkQXJyYXlDb3B5V2l0aGluLCJlczYiLCJlczUiKTtrZS5wb2x5ZmlsbCgiVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsa2UudHlwZWRBcnJheUNvcHlXaXRoaW4sImVzNiIsImVzNSIpO2tlLnBvbHlmaWxsKCJVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsa2UudHlwZWRBcnJheUNvcHlXaXRoaW4sImVzNiIsImVzNSIpO2tlLnBvbHlmaWxsKCJJbnQxNkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIixrZS50eXBlZEFycmF5Q29weVdpdGhpbiwiZXM2IiwiZXM1Iik7a2UucG9seWZpbGwoIlVpbnQxNkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIixrZS50eXBlZEFycmF5Q29weVdpdGhpbiwiZXM2IiwiZXM1Iik7a2UucG9seWZpbGwoIkludDMyQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4iLGtlLnR5cGVkQXJyYXlDb3B5V2l0aGluLCJlczYiLCJlczUiKTtrZS5wb2x5ZmlsbCgiVWludDMyQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4iLGtlLnR5cGVkQXJyYXlDb3B5V2l0aGluLCJlczYiLCJlczUiKTtrZS5wb2x5ZmlsbCgiRmxvYXQzMkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIixrZS50eXBlZEFycmF5Q29weVdpdGhpbiwiZXM2IiwiZXM1Iik7a2UucG9seWZpbGwoIkZsb2F0NjRBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsa2UudHlwZWRBcnJheUNvcHlXaXRoaW4sImVzNiIsImVzNSIpO3ZhciBweT0oZnVuY3Rpb24oKXt2YXIgbj10eXBlb2YgZG9jdW1lbnQ8InUiJiZkb2N1bWVudC5jdXJyZW50U2NyaXB0P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjOnZvaWQgMDtyZXR1cm4gdHlwZW9mIF9fZmlsZW5hbWU8InUiJiYobj1ufHxfX2ZpbGVuYW1lKSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KEwpe3JldHVybiBPLmxvY2F0ZUZpbGU/Ty5sb2NhdGVGaWxlKEwsaGUpOmhlK0x9ZnVuY3Rpb24gbyhMLEgsbmUpe3ZhciBTZT1IK25lO2ZvcihuZT1IO0xbbmVdJiYhKG5lPj1TZSk7KSsrbmU7aWYoMTY8bmUtSCYmTC5idWZmZXImJnFlKXJldHVybiBxZS5kZWNvZGUoTC5zdWJhcnJheShILG5lKSk7Zm9yKFNlPSIiO0g8bmU7KXt2YXIgdHQ9TFtIKytdO2lmKHR0JjEyOCl7dmFyIHV0PUxbSCsrXSY2MztpZigodHQmMjI0KT09MTkyKVNlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCh0dCYzMSk8PDZ8dXQpO2Vsc2V7dmFyIE1yPUxbSCsrXSY2Mzt0dD0odHQmMjQwKT09MjI0Pyh0dCYxNSk8PDEyfHV0PDw2fE1yOih0dCY3KTw8MTh8dXQ8PDEyfE1yPDw2fExbSCsrXSY2Myw2NTUzNj50dD9TZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh0dCk6KHR0LT02NTUzNixTZSs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5Nnx0dD4+MTAsNTYzMjB8dHQmMTAyMykpfX1lbHNlIFNlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHR0KX1yZXR1cm4gU2V9ZnVuY3Rpb24gYShMLEgpe3JldHVybiBMP28oeHQsTCxIKToiIn1mdW5jdGlvbiByKCl7dmFyIEw9QmUuYnVmZmVyO08uSEVBUDg9YXQ9bmV3IEludDhBcnJheShMKSxPLkhFQVAxNj1uZXcgSW50MTZBcnJheShMKSxPLkhFQVAzMj1UdD1uZXcgSW50MzJBcnJheShMKSxPLkhFQVBVOD14dD1uZXcgVWludDhBcnJheShMKSxPLkhFQVBVMTY9bmV3IFVpbnQxNkFycmF5KEwpLE8uSEVBUFUzMj1jdD1uZXcgVWludDMyQXJyYXkoTCksTy5IRUFQRjMyPW5ldyBGbG9hdDMyQXJyYXkoTCksTy5IRUFQRjY0PW5ldyBGbG9hdDY0QXJyYXkoTCl9ZnVuY3Rpb24gaShMKXt0aHJvdyBPLm9uQWJvcnQmJk8ub25BYm9ydChMKSxMPSJBYm9ydGVkKCIrTCsiKSIsS2UoTCksZXQ9ITAsTD1uZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKEwrIi4gQnVpbGQgd2l0aCAtc0FTU0VSVElPTlMgZm9yIG1vcmUgaW5mby4iKSxhZShMKSxMfWZ1bmN0aW9uIGYoTCl7dHJ5e2lmKEw9PUd0JiZEZSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoRGUpO2lmKFdlKXJldHVybiBXZShMKTt0aHJvdyJib3RoIGFzeW5jIGFuZCBzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZhaWxlZCJ9Y2F0Y2goSCl7aShIKX19ZnVuY3Rpb24gZCgpe2lmKCFEZSYmKG1lfHx1ZSkpe2lmKHR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIiYmIUd0LnN0YXJ0c1dpdGgoImZpbGU6Ly8iKSlyZXR1cm4gZmV0Y2goR3Qse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKEwpe2lmKCFMLm9rKXRocm93ImZhaWxlZCB0byBsb2FkIHdhc20gYmluYXJ5IGZpbGUgYXQgJyIrR3QrIiciO3JldHVybiBMLmFycmF5QnVmZmVyKCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBmKEd0KX0pO2lmKHplKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihMLEgpe3plKEd0LGZ1bmN0aW9uKG5lKXtMKG5ldyBVaW50OEFycmF5KG5lKSl9LEgpfSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZihHdCl9KX1mdW5jdGlvbiBjKEwpe2Zvcig7MDxMLmxlbmd0aDspTC5zaGlmdCgpKE8pfWZ1bmN0aW9uIHUoTCl7dGhpcy5leGNQdHI9TCx0aGlzLnB0cj1MLTI0LHRoaXMuc2V0X3R5cGU9ZnVuY3Rpb24oSCl7Y3RbdGhpcy5wdHIrND4+Ml09SH0sdGhpcy5nZXRfdHlwZT1mdW5jdGlvbigpe3JldHVybiBjdFt0aGlzLnB0cis0Pj4yXX0sdGhpcy5zZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbihIKXtjdFt0aGlzLnB0cis4Pj4yXT1IfSx0aGlzLmdldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGN0W3RoaXMucHRyKzg+PjJdfSx0aGlzLnNldF9yZWZjb3VudD1mdW5jdGlvbihIKXtUdFt0aGlzLnB0cj4+Ml09SH0sdGhpcy5zZXRfY2F1Z2h0PWZ1bmN0aW9uKEgpe2F0W3RoaXMucHRyKzEyPj4wXT1IPzE6MH0sdGhpcy5nZXRfY2F1Z2h0PWZ1bmN0aW9uKCl7cmV0dXJuIGF0W3RoaXMucHRyKzEyPj4wXSE9MH0sdGhpcy5zZXRfcmV0aHJvd249ZnVuY3Rpb24oSCl7YXRbdGhpcy5wdHIrMTM+PjBdPUg/MTowfSx0aGlzLmdldF9yZXRocm93bj1mdW5jdGlvbigpe3JldHVybiBhdFt0aGlzLnB0cisxMz4+MF0hPTB9LHRoaXMuaW5pdD1mdW5jdGlvbihILG5lKXt0aGlzLnNldF9hZGp1c3RlZF9wdHIoMCksdGhpcy5zZXRfdHlwZShIKSx0aGlzLnNldF9kZXN0cnVjdG9yKG5lKSx0aGlzLnNldF9yZWZjb3VudCgwKSx0aGlzLnNldF9jYXVnaHQoITEpLHRoaXMuc2V0X3JldGhyb3duKCExKX0sdGhpcy5hZGRfcmVmPWZ1bmN0aW9uKCl7VHRbdGhpcy5wdHI+PjJdKz0xfSx0aGlzLnJlbGVhc2VfcmVmPWZ1bmN0aW9uKCl7dmFyIEg9VHRbdGhpcy5wdHI+PjJdO3JldHVybiBUdFt0aGlzLnB0cj4+Ml09SC0xLEg9PT0xfSx0aGlzLnNldF9hZGp1c3RlZF9wdHI9ZnVuY3Rpb24oSCl7Y3RbdGhpcy5wdHIrMTY+PjJdPUh9LHRoaXMuZ2V0X2FkanVzdGVkX3B0cj1mdW5jdGlvbigpe3JldHVybiBjdFt0aGlzLnB0cisxNj4+Ml19LHRoaXMuZ2V0X2V4Y2VwdGlvbl9wdHI9ZnVuY3Rpb24oKXtpZigkdSh0aGlzLmdldF90eXBlKCkpKXJldHVybiBjdFt0aGlzLmV4Y1B0cj4+Ml07dmFyIEg9dGhpcy5nZXRfYWRqdXN0ZWRfcHRyKCk7cmV0dXJuIEghPT0wP0g6dGhpcy5leGNQdHJ9fWZ1bmN0aW9uIGwoKXtmdW5jdGlvbiBMKCl7aWYoIWhmJiYoaGY9ITAsTy5jYWxsZWRSdW49ITAsIWV0KSl7aWYoR2U9ITAsYyhPdCksWihPKSxPLm9uUnVudGltZUluaXRpYWxpemVkJiZPLm9uUnVudGltZUluaXRpYWxpemVkKCksTy5wb3N0UnVuKWZvcih0eXBlb2YgTy5wb3N0UnVuPT0iZnVuY3Rpb24iJiYoTy5wb3N0UnVuPVtPLnBvc3RSdW5dKTtPLnBvc3RSdW4ubGVuZ3RoOylrdC51bnNoaWZ0KE8ucG9zdFJ1bi5zaGlmdCgpKTtjKGt0KX19aWYoISgwPExlKSl7aWYoTy5wcmVSdW4pZm9yKHR5cGVvZiBPLnByZVJ1bj09ImZ1bmN0aW9uIiYmKE8ucHJlUnVuPVtPLnByZVJ1bl0pO08ucHJlUnVuLmxlbmd0aDspenQudW5zaGlmdChPLnByZVJ1bi5zaGlmdCgpKTtjKHp0KSwwPExlfHwoTy5zZXRTdGF0dXM/KE8uc2V0U3RhdHVzKCJSdW5uaW5nLi4uIiksc2V0VGltZW91dChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtPLnNldFN0YXR1cygiIil9LDEpLEwoKX0sMSkpOkwoKSl9fWZ1bmN0aW9uIGgoKXt9ZnVuY3Rpb24gbShMKXtyZXR1cm4oTHx8aCkuX19jYWNoZV9ffWZ1bmN0aW9uIGIoTCxIKXt2YXIgbmU9bShIKSxTZT1uZVtMXTtyZXR1cm4gU2V8fChTZT1PYmplY3QuY3JlYXRlKChIfHxoKS5wcm90b3R5cGUpLFNlLnB0cj1MLG5lW0xdPVNlKX1mdW5jdGlvbiBwKEwpe2lmKHR5cGVvZiBMPT0ic3RyaW5nIil7Zm9yKHZhciBIPTAsbmU9MDtuZTxMLmxlbmd0aDsrK25lKXt2YXIgU2U9TC5jaGFyQ29kZUF0KG5lKTsxMjc+PVNlP0grKzoyMDQ3Pj1TZT9IKz0yOjU1Mjk2PD1TZSYmNTczNDM+PVNlPyhIKz00LCsrbmUpOkgrPTN9aWYoSD1BcnJheShIKzEpLG5lPTAsU2U9SC5sZW5ndGgsMDxTZSl7U2U9bmUrU2UtMTtmb3IodmFyIHR0PTA7dHQ8TC5sZW5ndGg7Kyt0dCl7dmFyIHV0PUwuY2hhckNvZGVBdCh0dCk7aWYoNTUyOTY8PXV0JiY1NzM0Mz49dXQpe3ZhciBNcj1MLmNoYXJDb2RlQXQoKyt0dCk7dXQ9NjU1MzYrKCh1dCYxMDIzKTw8MTApfE1yJjEwMjN9aWYoMTI3Pj11dCl7aWYobmU+PVNlKWJyZWFrO0hbbmUrK109dXR9ZWxzZXtpZigyMDQ3Pj11dCl7aWYobmUrMT49U2UpYnJlYWs7SFtuZSsrXT0xOTJ8dXQ+PjZ9ZWxzZXtpZig2NTUzNT49dXQpe2lmKG5lKzI+PVNlKWJyZWFrO0hbbmUrK109MjI0fHV0Pj4xMn1lbHNle2lmKG5lKzM+PVNlKWJyZWFrO0hbbmUrK109MjQwfHV0Pj4xOCxIW25lKytdPTEyOHx1dD4+MTImNjN9SFtuZSsrXT0xMjh8dXQ+PjYmNjN9SFtuZSsrXT0xMjh8dXQmNjN9fUhbbmVdPTB9cmV0dXJuIEw9QXQuYWxsb2MoSCxhdCksQXQuY29weShILGF0LEwpLEx9cmV0dXJuIEx9ZnVuY3Rpb24geShMKXtpZih0eXBlb2YgTD09Im9iamVjdCIpe3ZhciBIPUF0LmFsbG9jKEwsYXQpO3JldHVybiBBdC5jb3B5KEwsYXQsSCksSH1yZXR1cm4gTH1mdW5jdGlvbiBFKCl7dGhyb3ciY2Fubm90IGNvbnN0cnVjdCBhIFZvaWRQdHIsIG5vIGNvbnN0cnVjdG9yIGluIElETCJ9ZnVuY3Rpb24gZygpe3RoaXMucHRyPSR0KCksbShnKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBBKCl7dGhpcy5wdHI9am4oKSxtKEEpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIFQoKXt0aGlzLnB0cj10bygpLG0oVClbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gUigpe3RoaXMucHRyPXl0KCksbShSKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBTKCl7dGhpcy5wdHI9R2koKSxtKFMpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIE0oKXt0aGlzLnB0cj1jbygpLG0oTSlbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gSSgpe3RoaXMucHRyPXZjKCksbShJKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBOKCl7dGhpcy5wdHI9b2EoKSxtKE4pW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIFAoKXt0aGlzLnB0cj1EYygpLG0oUClbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gRigpe3Rocm93ImNhbm5vdCBjb25zdHJ1Y3QgYSBTdGF0dXMsIG5vIGNvbnN0cnVjdG9yIGluIElETCJ9ZnVuY3Rpb24gdygpe3RoaXMucHRyPXpkKCksbSh3KVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiB4KCl7dGhpcy5wdHI9QmMoKSxtKHgpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIEMoKXt0aGlzLnB0cj1uZigpLG0oQylbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gdigpe3RoaXMucHRyPVVjKCksbSh2KVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBqKCl7dGhpcy5wdHI9WWQoKSxtKGopW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIHooKXt0aGlzLnB0cj1RZCgpLG0oeilbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gRCgpe3RoaXMucHRyPWlpKCksbShEKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBHKCl7dGhpcy5wdHI9YXUoKSxtKEcpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIFYoKXt0aGlzLnB0cj1zZigpLG0oVilbdGhpcy5wdHJdPXRoaXN9ZT1lPT09dm9pZCAwP3t9OmU7dmFyIE89dHlwZW9mIGU8InUiP2U6e30sWixhZTtPLnJlYWR5PW5ldyBQcm9taXNlKGZ1bmN0aW9uKEwsSCl7Wj1MLGFlPUh9KTt2YXIgY2U9ITEsZmU9ITE7Ty5vblJ1bnRpbWVJbml0aWFsaXplZD1mdW5jdGlvbigpe2NlPSEwLGZlJiZ0eXBlb2YgTy5vbk1vZHVsZUxvYWRlZD09ImZ1bmN0aW9uIiYmTy5vbk1vZHVsZUxvYWRlZChPKX0sTy5vbk1vZHVsZVBhcnNlZD1mdW5jdGlvbigpe2ZlPSEwLGNlJiZ0eXBlb2YgTy5vbk1vZHVsZUxvYWRlZD09ImZ1bmN0aW9uIiYmTy5vbk1vZHVsZUxvYWRlZChPKX0sTy5pc1ZlcnNpb25TdXBwb3J0ZWQ9ZnVuY3Rpb24oTCl7cmV0dXJuIHR5cGVvZiBMIT0ic3RyaW5nIj8hMTooTD1MLnNwbGl0KCIuIiksMj5MLmxlbmd0aHx8MzxMLmxlbmd0aD8hMTpMWzBdPT0xJiYwPD1MWzFdJiY1Pj1MWzFdPyEwOiEoTFswXSE9MHx8MTA8TFsxXSkpfTt2YXIgdGU9T2JqZWN0LmFzc2lnbih7fSxPKSxtZT10eXBlb2Ygd2luZG93PT0ib2JqZWN0Iix1ZT10eXBlb2YgaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixiZT10eXBlb2YgcHJvY2Vzcz09Im9iamVjdCImJnR5cGVvZiBwcm9jZXNzLnZlcnNpb25zPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMubm9kZT09InN0cmluZyIsaGU9IiI7aWYoYmUpe3ZhciBRPWxhKCJmcyIpLFRlPWxhKCJwYXRoIik7aGU9dWU/VGUuZGlybmFtZShoZSkrIi8iOl9fZGlybmFtZSsiLyI7dmFyIENlPWZ1bmN0aW9uKEwsSCl7cmV0dXJuIEw9TC5zdGFydHNXaXRoKCJmaWxlOi8vIik/bmV3IFVSTChMKTpUZS5ub3JtYWxpemUoTCksUS5yZWFkRmlsZVN5bmMoTCxIP3ZvaWQgMDoidXRmOCIpfSxXZT1mdW5jdGlvbihMKXtyZXR1cm4gTD1DZShMLCEwKSxMLmJ1ZmZlcnx8KEw9bmV3IFVpbnQ4QXJyYXkoTCkpLEx9LHplPWZ1bmN0aW9uKEwsSCxuZSl7TD1MLnN0YXJ0c1dpdGgoImZpbGU6Ly8iKT9uZXcgVVJMKEwpOlRlLm5vcm1hbGl6ZShMKSxRLnJlYWRGaWxlKEwsZnVuY3Rpb24oU2UsdHQpe1NlP25lKFNlKTpIKHR0LmJ1ZmZlcil9KX07MTxwcm9jZXNzLmFyZ3YubGVuZ3RoJiZwcm9jZXNzLmFyZ3ZbMV0ucmVwbGFjZSgvXFwvZywiLyIpLHByb2Nlc3MuYXJndi5zbGljZSgyKSxPLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4iW0Vtc2NyaXB0ZW4gTW9kdWxlIG9iamVjdF0ifX1lbHNlKG1lfHx1ZSkmJih1ZT9oZT1zZWxmLmxvY2F0aW9uLmhyZWY6dHlwZW9mIGRvY3VtZW50PCJ1IiYmZG9jdW1lbnQuY3VycmVudFNjcmlwdCYmKGhlPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjKSxuJiYoaGU9biksaGU9aGUuaW5kZXhPZigiYmxvYjoiKSE9PTA/aGUuc3Vic3RyKDAsaGUucmVwbGFjZSgvWz8jXS4qLywiIikubGFzdEluZGV4T2YoIi8iKSsxKToiIixDZT1mdW5jdGlvbihMKXt2YXIgSD1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIEgub3BlbigiR0VUIixMLCExKSxILnNlbmQobnVsbCksSC5yZXNwb25zZVRleHR9LHVlJiYoV2U9ZnVuY3Rpb24oTCl7dmFyIEg9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBILm9wZW4oIkdFVCIsTCwhMSksSC5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixILnNlbmQobnVsbCksbmV3IFVpbnQ4QXJyYXkoSC5yZXNwb25zZSl9KSx6ZT1mdW5jdGlvbihMLEgsbmUpe3ZhciBTZT1uZXcgWE1MSHR0cFJlcXVlc3Q7U2Uub3BlbigiR0VUIixMLCEwKSxTZS5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixTZS5vbmxvYWQ9ZnVuY3Rpb24oKXtTZS5zdGF0dXM9PTIwMHx8U2Uuc3RhdHVzPT0wJiZTZS5yZXNwb25zZT9IKFNlLnJlc3BvbnNlKTpuZSgpfSxTZS5vbmVycm9yPW5lLFNlLnNlbmQobnVsbCl9KTt2YXIgWmU9Ty5wcmludHx8Y29uc29sZS5sb2cuYmluZChjb25zb2xlKSxLZT1PLnByaW50RXJyfHxjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtPYmplY3QuYXNzaWduKE8sdGUpLHRlPW51bGw7dmFyIERlO08ud2FzbUJpbmFyeSYmKERlPU8ud2FzbUJpbmFyeSksdHlwZW9mIFdlYkFzc2VtYmx5IT0ib2JqZWN0IiYmaSgibm8gbmF0aXZlIHdhc20gc3VwcG9ydCBkZXRlY3RlZCIpO3ZhciBCZSxldD0hMSxxZT10eXBlb2YgVGV4dERlY29kZXI8InUiP25ldyBUZXh0RGVjb2RlcigidXRmOCIpOnZvaWQgMCxhdCx4dCxUdCxjdCx6dD1bXSxPdD1bXSxrdD1bXSxHZT0hMSxMZT0wLF90PW51bGwsTXQ9bnVsbCxHdD0iZHJhY29fZGVjb2Rlci53YXNtIjtHdC5zdGFydHNXaXRoKCJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsIil8fChHdD10KEd0KSk7dmFyIHF0PTAsUXQ9W251bGwsW10sW11dLHBuPXtiOmZ1bmN0aW9uKEwsSCxuZSl7dGhyb3cgbmV3IHUoTCkuaW5pdChILG5lKSxxdCsrLEx9LGE6ZnVuY3Rpb24oKXtpKCIiKX0sZzpmdW5jdGlvbihMLEgsbmUpe3h0LmNvcHlXaXRoaW4oTCxILEgrbmUpfSxlOmZ1bmN0aW9uKEwpe3ZhciBIPXh0Lmxlbmd0aDtpZihMPj4+PTAsMjE0NzQ4MzY0ODxMKXJldHVybiExO2Zvcih2YXIgbmU9MTs0Pj1uZTtuZSo9Mil7dmFyIFNlPUgqKDErLjIvbmUpO1NlPU1hdGgubWluKFNlLEwrMTAwNjYzMjk2KTt2YXIgdHQ9TWF0aDtTZT1NYXRoLm1heChMLFNlKSx0dD10dC5taW4uY2FsbCh0dCwyMTQ3NDgzNjQ4LFNlKyg2NTUzNi1TZSU2NTUzNiklNjU1MzYpO2U6e1NlPUJlLmJ1ZmZlcjt0cnl7QmUuZ3Jvdyh0dC1TZS5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpLHIoKTt2YXIgdXQ9MTticmVhayBlfWNhdGNoe311dD12b2lkIDB9aWYodXQpcmV0dXJuITB9cmV0dXJuITF9LGY6ZnVuY3Rpb24oTCl7cmV0dXJuIDUyfSxkOmZ1bmN0aW9uKEwsSCxuZSxTZSx0dCl7cmV0dXJuIDcwfSxjOmZ1bmN0aW9uKEwsSCxuZSxTZSl7Zm9yKHZhciB0dD0wLHV0PTA7dXQ8bmU7dXQrKyl7dmFyIE1yPWN0W0g+PjJdLEhjPWN0W0grND4+Ml07SCs9ODtmb3IodmFyIEI9MDtCPEhjO0IrKyl7dmFyIFU9eHRbTXIrQl0scT1RdFtMXTtVPT09MHx8VT09PTEwPygoTD09PTE/WmU6S2UpKG8ocSwwKSkscS5sZW5ndGg9MCk6cS5wdXNoKFUpfXR0Kz1IY31yZXR1cm4gY3RbU2U+PjJdPXR0LDB9fTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBMKHR0LHV0KXtPLmFzbT10dC5leHBvcnRzLEJlPU8uYXNtLmgscigpLE90LnVuc2hpZnQoTy5hc20uaSksTGUtLSxPLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJk8ubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhMZSksTGU9PTAmJihfdCE9PW51bGwmJihjbGVhckludGVydmFsKF90KSxfdD1udWxsKSxNdCYmKHR0PU10LE10PW51bGwsdHQoKSkpfWZ1bmN0aW9uIEgodHQpe0wodHQuaW5zdGFuY2UpfWZ1bmN0aW9uIG5lKHR0KXtyZXR1cm4gZCgpLnRoZW4oZnVuY3Rpb24odXQpe3JldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh1dCxTZSl9KS50aGVuKGZ1bmN0aW9uKHV0KXtyZXR1cm4gdXR9KS50aGVuKHR0LGZ1bmN0aW9uKHV0KXtLZSgiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIit1dCksaSh1dCl9KX12YXIgU2U9e2E6cG59O2lmKExlKyssTy5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZPLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMoTGUpLE8uaW5zdGFudGlhdGVXYXNtKXRyeXtyZXR1cm4gTy5pbnN0YW50aWF0ZVdhc20oU2UsTCl9Y2F0Y2godHQpe0tlKCJNb2R1bGUuaW5zdGFudGlhdGVXYXNtIGNhbGxiYWNrIGZhaWxlZCB3aXRoIGVycm9yOiAiK3R0KSxhZSh0dCl9cmV0dXJuKGZ1bmN0aW9uKCl7cmV0dXJuIERlfHx0eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmchPSJmdW5jdGlvbiJ8fEd0LnN0YXJ0c1dpdGgoImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiKXx8R3Quc3RhcnRzV2l0aCgiZmlsZTovLyIpfHxiZXx8dHlwZW9mIGZldGNoIT0iZnVuY3Rpb24iP25lKEgpOmZldGNoKEd0LHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0dCl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKHR0LFNlKS50aGVuKEgsZnVuY3Rpb24odXQpe3JldHVybiBLZSgid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrdXQpLEtlKCJmYWxsaW5nIGJhY2sgdG8gQXJyYXlCdWZmZXIgaW5zdGFudGlhdGlvbiIpLG5lKEgpfSl9KX0pKCkuY2F0Y2goYWUpLHt9fSkoKTt2YXIgTnQ9Ty5fZW1zY3JpcHRlbl9iaW5kX1ZvaWRQdHJfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihOdD1PLl9lbXNjcmlwdGVuX2JpbmRfVm9pZFB0cl9fX2Rlc3Ryb3lfX18wPU8uYXNtLmspLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sJHQ9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJCdWZmZXJfRGVjb2RlckJ1ZmZlcl8wPWZ1bmN0aW9uKCl7cmV0dXJuKCR0PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyQnVmZmVyX0RlY29kZXJCdWZmZXJfMD1PLmFzbS5sKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEZ0PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyQnVmZmVyX0luaXRfMj1mdW5jdGlvbigpe3JldHVybihGdD1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2RlckJ1ZmZlcl9Jbml0XzI9Ty5hc20ubSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxvbj1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2RlckJ1ZmZlcl9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKG9uPU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyQnVmZmVyX19fZGVzdHJveV9fXzA9Ty5hc20ubikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxqbj1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlVHJhbnNmb3JtRGF0YV9BdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhXzA9ZnVuY3Rpb24oKXtyZXR1cm4oam49Ty5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfQXR0cmlidXRlVHJhbnNmb3JtRGF0YV8wPU8uYXNtLm8pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVW49Ty5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfdHJhbnNmb3JtX3R5cGVfMD1mdW5jdGlvbigpe3JldHVybihVbj1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlVHJhbnNmb3JtRGF0YV90cmFuc2Zvcm1fdHlwZV8wPU8uYXNtLnApLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sU249Ty5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihTbj1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlVHJhbnNmb3JtRGF0YV9fX2Rlc3Ryb3lfX18wPU8uYXNtLnEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdG89Ty5fZW1zY3JpcHRlbl9iaW5kX0dlb21ldHJ5QXR0cmlidXRlX0dlb21ldHJ5QXR0cmlidXRlXzA9ZnVuY3Rpb24oKXtyZXR1cm4odG89Ty5fZW1zY3JpcHRlbl9iaW5kX0dlb21ldHJ5QXR0cmlidXRlX0dlb21ldHJ5QXR0cmlidXRlXzA9Ty5hc20ucikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxTdD1PLl9lbXNjcmlwdGVuX2JpbmRfR2VvbWV0cnlBdHRyaWJ1dGVfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihTdD1PLl9lbXNjcmlwdGVuX2JpbmRfR2VvbWV0cnlBdHRyaWJ1dGVfX19kZXN0cm95X19fMD1PLmFzbS5zKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHl0PU8uX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9Qb2ludEF0dHJpYnV0ZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKHl0PU8uX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9Qb2ludEF0dHJpYnV0ZV8wPU8uYXNtLnQpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sd249Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX3NpemVfMD1mdW5jdGlvbigpe3JldHVybih3bj1PLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfc2l6ZV8wPU8uYXNtLnUpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQ249Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX0dldEF0dHJpYnV0ZVRyYW5zZm9ybURhdGFfMD1mdW5jdGlvbigpe3JldHVybihDbj1PLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfR2V0QXR0cmlidXRlVHJhbnNmb3JtRGF0YV8wPU8uYXNtLnYpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scG89Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX2F0dHJpYnV0ZV90eXBlXzA9ZnVuY3Rpb24oKXtyZXR1cm4ocG89Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX2F0dHJpYnV0ZV90eXBlXzA9Ty5hc20udykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxEdD1PLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfZGF0YV90eXBlXzA9ZnVuY3Rpb24oKXtyZXR1cm4oRHQ9Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX2RhdGFfdHlwZV8wPU8uYXNtLngpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sYW49Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX251bV9jb21wb25lbnRzXzA9ZnVuY3Rpb24oKXtyZXR1cm4oYW49Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX251bV9jb21wb25lbnRzXzA9Ty5hc20ueSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxFbz1PLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfbm9ybWFsaXplZF8wPWZ1bmN0aW9uKCl7cmV0dXJuKEVvPU8uX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9ub3JtYWxpemVkXzA9Ty5hc20ueikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxNbj1PLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfYnl0ZV9zdHJpZGVfMD1mdW5jdGlvbigpe3JldHVybihNbj1PLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfYnl0ZV9zdHJpZGVfMD1PLmFzbS5BKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEhvPU8uX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9ieXRlX29mZnNldF8wPWZ1bmN0aW9uKCl7cmV0dXJuKEhvPU8uX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9ieXRlX29mZnNldF8wPU8uYXNtLkIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdmE9Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX3VuaXF1ZV9pZF8wPWZ1bmN0aW9uKCl7cmV0dXJuKHZhPU8uX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV91bmlxdWVfaWRfMD1PLmFzbS5DKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHppPU8uX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKHppPU8uX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9fX2Rlc3Ryb3lfX18wPU8uYXNtLkQpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sR2k9Ty5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fMD1mdW5jdGlvbigpe3JldHVybihHaT1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV8wPU8uYXNtLkUpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdGk9Ty5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9Jbml0RnJvbUF0dHJpYnV0ZV8xPWZ1bmN0aW9uKCl7cmV0dXJuKHRpPU8uX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fSW5pdEZyb21BdHRyaWJ1dGVfMT1PLmFzbS5GKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEZhPU8uX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fcXVhbnRpemF0aW9uX2JpdHNfMD1mdW5jdGlvbigpe3JldHVybihGYT1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX3F1YW50aXphdGlvbl9iaXRzXzA9Ty5hc20uRykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxuaT1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX21pbl92YWx1ZV8xPWZ1bmN0aW9uKCl7cmV0dXJuKG5pPU8uX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fbWluX3ZhbHVlXzE9Ty5hc20uSCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxWaT1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX3JhbmdlXzA9ZnVuY3Rpb24oKXtyZXR1cm4oVmk9Ty5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9yYW5nZV8wPU8uYXNtLkkpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sT3I9Ty5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKE9yPU8uX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fX19kZXN0cm95X19fMD1PLmFzbS5KKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGNvPU8uX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtX0F0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1fMD1mdW5jdGlvbigpe3JldHVybihjbz1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9BdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtXzA9Ty5hc20uSykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxnbz1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9Jbml0RnJvbUF0dHJpYnV0ZV8xPWZ1bmN0aW9uKCl7cmV0dXJuKGdvPU8uX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtX0luaXRGcm9tQXR0cmlidXRlXzE9Ty5hc20uTCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxEYT1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9xdWFudGl6YXRpb25fYml0c18wPWZ1bmN0aW9uKCl7cmV0dXJuKERhPU8uX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtX3F1YW50aXphdGlvbl9iaXRzXzA9Ty5hc20uTSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxrYz1PLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKGtjPU8uX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtX19fZGVzdHJveV9fXzA9Ty5hc20uTikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx2Yz1PLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRDbG91ZF9Qb2ludENsb3VkXzA9ZnVuY3Rpb24oKXtyZXR1cm4odmM9Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50Q2xvdWRfUG9pbnRDbG91ZF8wPU8uYXNtLk8pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTG49Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50Q2xvdWRfbnVtX2F0dHJpYnV0ZXNfMD1mdW5jdGlvbigpe3JldHVybihMbj1PLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRDbG91ZF9udW1fYXR0cmlidXRlc18wPU8uYXNtLlApLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sU3I9Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50Q2xvdWRfbnVtX3BvaW50c18wPWZ1bmN0aW9uKCl7cmV0dXJuKFNyPU8uX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludENsb3VkX251bV9wb2ludHNfMD1PLmFzbS5RKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEl0PU8uX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludENsb3VkX19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oSXQ9Ty5fZW1zY3JpcHRlbl9iaW5kX1BvaW50Q2xvdWRfX19kZXN0cm95X19fMD1PLmFzbS5SKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LG9hPU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXNoX01lc2hfMD1mdW5jdGlvbigpe3JldHVybihvYT1PLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9NZXNoXzA9Ty5hc20uUykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxEZD1PLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9udW1fZmFjZXNfMD1mdW5jdGlvbigpe3JldHVybihEZD1PLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9udW1fZmFjZXNfMD1PLmFzbS5UKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEJkPU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXNoX251bV9hdHRyaWJ1dGVzXzA9ZnVuY3Rpb24oKXtyZXR1cm4oQmQ9Ty5fZW1zY3JpcHRlbl9iaW5kX01lc2hfbnVtX2F0dHJpYnV0ZXNfMD1PLmFzbS5VKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGpkPU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXNoX251bV9wb2ludHNfMD1mdW5jdGlvbigpe3JldHVybihqZD1PLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9udW1fcG9pbnRzXzA9Ty5hc20uVikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxGYz1PLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKEZjPU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXNoX19fZGVzdHJveV9fXzA9Ty5hc20uVykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxEYz1PLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFfTWV0YWRhdGFfMD1mdW5jdGlvbigpe3JldHVybihEYz1PLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFfTWV0YWRhdGFfMD1PLmFzbS5YKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGVmPU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKGVmPU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YV9fX2Rlc3Ryb3lfX18wPU8uYXNtLlkpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVWQ9Ty5fZW1zY3JpcHRlbl9iaW5kX1N0YXR1c19jb2RlXzA9ZnVuY3Rpb24oKXtyZXR1cm4oVWQ9Ty5fZW1zY3JpcHRlbl9iaW5kX1N0YXR1c19jb2RlXzA9Ty5hc20uWikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx0Zj1PLl9lbXNjcmlwdGVuX2JpbmRfU3RhdHVzX29rXzA9ZnVuY3Rpb24oKXtyZXR1cm4odGY9Ty5fZW1zY3JpcHRlbl9iaW5kX1N0YXR1c19va18wPU8uYXNtLl8pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sb2k9Ty5fZW1zY3JpcHRlbl9iaW5kX1N0YXR1c19lcnJvcl9tc2dfMD1mdW5jdGlvbigpe3JldHVybihvaT1PLl9lbXNjcmlwdGVuX2JpbmRfU3RhdHVzX2Vycm9yX21zZ18wPU8uYXNtLiQpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTGQ9Ty5fZW1zY3JpcHRlbl9iaW5kX1N0YXR1c19fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKExkPU8uX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfX19kZXN0cm95X19fMD1PLmFzbS5hYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx6ZD1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29GbG9hdDMyQXJyYXlfRHJhY29GbG9hdDMyQXJyYXlfMD1mdW5jdGlvbigpe3JldHVybih6ZD1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29GbG9hdDMyQXJyYXlfRHJhY29GbG9hdDMyQXJyYXlfMD1PLmFzbS5iYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxHZD1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29GbG9hdDMyQXJyYXlfR2V0VmFsdWVfMT1mdW5jdGlvbigpe3JldHVybihHZD1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29GbG9hdDMyQXJyYXlfR2V0VmFsdWVfMT1PLmFzbS5jYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxhaT1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29GbG9hdDMyQXJyYXlfc2l6ZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKGFpPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0Zsb2F0MzJBcnJheV9zaXplXzA9Ty5hc20uZGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scmk9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4ocmk9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X19fZGVzdHJveV9fXzA9Ty5hc20uZWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQmM9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50OEFycmF5X0RyYWNvSW50OEFycmF5XzA9ZnVuY3Rpb24oKXtyZXR1cm4oQmM9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50OEFycmF5X0RyYWNvSW50OEFycmF5XzA9Ty5hc20uZmEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVmQ9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50OEFycmF5X0dldFZhbHVlXzE9ZnVuY3Rpb24oKXtyZXR1cm4oVmQ9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50OEFycmF5X0dldFZhbHVlXzE9Ty5hc20uZ2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSGQ9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50OEFycmF5X3NpemVfMD1mdW5jdGlvbigpe3JldHVybihIZD1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQ4QXJyYXlfc2l6ZV8wPU8uYXNtLmhhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEJhPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKEJhPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9fX2Rlc3Ryb3lfX18wPU8uYXNtLmlhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LG5mPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQ4QXJyYXlfRHJhY29VSW50OEFycmF5XzA9ZnVuY3Rpb24oKXtyZXR1cm4obmY9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDhBcnJheV9EcmFjb1VJbnQ4QXJyYXlfMD1PLmFzbS5qYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxvZj1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50OEFycmF5X0dldFZhbHVlXzE9ZnVuY3Rpb24oKXtyZXR1cm4ob2Y9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDhBcnJheV9HZXRWYWx1ZV8xPU8uYXNtLmthKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGpjPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQ4QXJyYXlfc2l6ZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKGpjPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQ4QXJyYXlfc2l6ZV8wPU8uYXNtLmxhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEtkPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQ4QXJyYXlfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihLZD1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50OEFycmF5X19fZGVzdHJveV9fXzA9Ty5hc20ubWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVWM9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MTZBcnJheV9EcmFjb0ludDE2QXJyYXlfMD1mdW5jdGlvbigpe3JldHVybihVYz1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQxNkFycmF5X0RyYWNvSW50MTZBcnJheV8wPU8uYXNtLm5hKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHFkPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDE2QXJyYXlfR2V0VmFsdWVfMT1mdW5jdGlvbigpe3JldHVybihxZD1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQxNkFycmF5X0dldFZhbHVlXzE9Ty5hc20ub2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sV2Q9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MTZBcnJheV9zaXplXzA9ZnVuY3Rpb24oKXtyZXR1cm4oV2Q9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MTZBcnJheV9zaXplXzA9Ty5hc20ucGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWGQ9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MTZBcnJheV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKFhkPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDE2QXJyYXlfX19kZXN0cm95X19fMD1PLmFzbS5xYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxZZD1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MTZBcnJheV9EcmFjb1VJbnQxNkFycmF5XzA9ZnVuY3Rpb24oKXtyZXR1cm4oWWQ9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDE2QXJyYXlfRHJhY29VSW50MTZBcnJheV8wPU8uYXNtLnJhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEpkPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQxNkFycmF5X0dldFZhbHVlXzE9ZnVuY3Rpb24oKXtyZXR1cm4oSmQ9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDE2QXJyYXlfR2V0VmFsdWVfMT1PLmFzbS5zYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxaZD1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MTZBcnJheV9zaXplXzA9ZnVuY3Rpb24oKXtyZXR1cm4oWmQ9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDE2QXJyYXlfc2l6ZV8wPU8uYXNtLnRhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGFmPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQxNkFycmF5X19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oYWY9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDE2QXJyYXlfX19kZXN0cm95X19fMD1PLmFzbS51YSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxRZD1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQzMkFycmF5X0RyYWNvSW50MzJBcnJheV8wPWZ1bmN0aW9uKCl7cmV0dXJuKFFkPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDMyQXJyYXlfRHJhY29JbnQzMkFycmF5XzA9Ty5hc20udmEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sJGQ9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MzJBcnJheV9HZXRWYWx1ZV8xPWZ1bmN0aW9uKCl7cmV0dXJuKCRkPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDMyQXJyYXlfR2V0VmFsdWVfMT1PLmFzbS53YSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxldT1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQzMkFycmF5X3NpemVfMD1mdW5jdGlvbigpe3JldHVybihldT1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQzMkFycmF5X3NpemVfMD1PLmFzbS54YSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx0dT1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQzMkFycmF5X19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4odHU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MzJBcnJheV9fX2Rlc3Ryb3lfX18wPU8uYXNtLnlhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGlpPU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQzMkFycmF5X0RyYWNvVUludDMyQXJyYXlfMD1mdW5jdGlvbigpe3JldHVybihpaT1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MzJBcnJheV9EcmFjb1VJbnQzMkFycmF5XzA9Ty5hc20uemEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sbnU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDMyQXJyYXlfR2V0VmFsdWVfMT1mdW5jdGlvbigpe3JldHVybihudT1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MzJBcnJheV9HZXRWYWx1ZV8xPU8uYXNtLkFhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LG91PU8uX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQzMkFycmF5X3NpemVfMD1mdW5jdGlvbigpe3JldHVybihvdT1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MzJBcnJheV9zaXplXzA9Ty5hc20uQmEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSGk9Ty5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDMyQXJyYXlfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihIaT1PLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MzJBcnJheV9fX2Rlc3Ryb3lfX18wPU8uYXNtLkNhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGF1PU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfTWV0YWRhdGFRdWVyaWVyXzA9ZnVuY3Rpb24oKXtyZXR1cm4oYXU9Ty5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9NZXRhZGF0YVF1ZXJpZXJfMD1PLmFzbS5EYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxydT1PLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX0hhc0VudHJ5XzI9ZnVuY3Rpb24oKXtyZXR1cm4ocnU9Ty5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9IYXNFbnRyeV8yPU8uYXNtLkVhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGZhPU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0SW50RW50cnlfMj1mdW5jdGlvbigpe3JldHVybihmYT1PLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX0dldEludEVudHJ5XzI9Ty5hc20uRmEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scmY9Ty5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9HZXRJbnRFbnRyeUFycmF5XzM9ZnVuY3Rpb24oKXtyZXR1cm4ocmY9Ty5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9HZXRJbnRFbnRyeUFycmF5XzM9Ty5hc20uR2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0saXU9Ty5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9HZXREb3VibGVFbnRyeV8yPWZ1bmN0aW9uKCl7cmV0dXJuKGl1PU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0RG91YmxlRW50cnlfMj1PLmFzbS5IYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxjdT1PLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX0dldFN0cmluZ0VudHJ5XzI9ZnVuY3Rpb24oKXtyZXR1cm4oY3U9Ty5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9HZXRTdHJpbmdFbnRyeV8yPU8uYXNtLklhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHN1PU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfTnVtRW50cmllc18xPWZ1bmN0aW9uKCl7cmV0dXJuKHN1PU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfTnVtRW50cmllc18xPU8uYXNtLkphKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEtvPU8uX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0RW50cnlOYW1lXzI9ZnVuY3Rpb24oKXtyZXR1cm4oS289Ty5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9HZXRFbnRyeU5hbWVfMj1PLmFzbS5LYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxjZj1PLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oY2Y9Ty5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9fX2Rlc3Ryb3lfX18wPU8uYXNtLkxhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHNmPU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0RlY29kZXJfMD1mdW5jdGlvbigpe3JldHVybihzZj1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVyXzA9Ty5hc20uTWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sS2k9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfRGVjb2RlQXJyYXlUb1BvaW50Q2xvdWRfMz1mdW5jdGlvbigpe3JldHVybihLaT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVBcnJheVRvUG9pbnRDbG91ZF8zPU8uYXNtLk5hKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGZ1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0RlY29kZUFycmF5VG9NZXNoXzM9ZnVuY3Rpb24oKXtyZXR1cm4oZnU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfRGVjb2RlQXJyYXlUb01lc2hfMz1PLmFzbS5PYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxMYz1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJZF8yPWZ1bmN0aW9uKCl7cmV0dXJuKExjPU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUlkXzI9Ty5hc20uUGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZHU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSWRCeU5hbWVfMj1mdW5jdGlvbigpe3JldHVybihkdT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJZEJ5TmFtZV8yPU8uYXNtLlFhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGZmPU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUlkQnlNZXRhZGF0YUVudHJ5XzM9ZnVuY3Rpb24oKXtyZXR1cm4oZmY9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSWRCeU1ldGFkYXRhRW50cnlfMz1PLmFzbS5SYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxkZj1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVfMj1mdW5jdGlvbigpe3JldHVybihkZj1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVfMj1PLmFzbS5TYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx1dT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVCeVVuaXF1ZUlkXzI9ZnVuY3Rpb24oKXtyZXR1cm4odXU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlQnlVbmlxdWVJZF8yPU8uYXNtLlRhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGx1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldE1ldGFkYXRhXzE9ZnVuY3Rpb24oKXtyZXR1cm4obHU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0TWV0YWRhdGFfMT1PLmFzbS5VYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx6Yz1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVNZXRhZGF0YV8yPWZ1bmN0aW9uKCl7cmV0dXJuKHpjPU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZU1ldGFkYXRhXzI9Ty5hc20uVmEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sUm89Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0RmFjZUZyb21NZXNoXzM9ZnVuY3Rpb24oKXtyZXR1cm4oUm89Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0RmFjZUZyb21NZXNoXzM9Ty5hc20uV2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sR2M9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0VHJpYW5nbGVTdHJpcHNGcm9tTWVzaF8yPWZ1bmN0aW9uKCl7cmV0dXJuKEdjPU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldFRyaWFuZ2xlU3RyaXBzRnJvbU1lc2hfMj1PLmFzbS5YYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxodT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRUcmlhbmdsZXNVSW50MTZBcnJheV8zPWZ1bmN0aW9uKCl7cmV0dXJuKGh1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldFRyaWFuZ2xlc1VJbnQxNkFycmF5XzM9Ty5hc20uWWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sbXU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0VHJpYW5nbGVzVUludDMyQXJyYXlfMz1mdW5jdGlvbigpe3JldHVybihtdT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRUcmlhbmdsZXNVSW50MzJBcnJheV8zPU8uYXNtLlphKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGJ1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUZsb2F0XzM9ZnVuY3Rpb24oKXtyZXR1cm4oYnU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlRmxvYXRfMz1PLmFzbS5fYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxkYT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVGbG9hdEZvckFsbFBvaW50c18zPWZ1bmN0aW9uKCl7cmV0dXJuKGRhPU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUZsb2F0Rm9yQWxsUG9pbnRzXzM9Ty5hc20uJGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scHU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSW50Rm9yQWxsUG9pbnRzXzM9ZnVuY3Rpb24oKXtyZXR1cm4ocHU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSW50Rm9yQWxsUG9pbnRzXzM9Ty5hc20uYWIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZ3U9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSW50OEZvckFsbFBvaW50c18zPWZ1bmN0aW9uKCl7cmV0dXJuKGd1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludDhGb3JBbGxQb2ludHNfMz1PLmFzbS5iYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxfdT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVVSW50OEZvckFsbFBvaW50c18zPWZ1bmN0aW9uKCl7cmV0dXJuKF91PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZVVJbnQ4Rm9yQWxsUG9pbnRzXzM9Ty5hc20uY2IpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scWk9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSW50MTZGb3JBbGxQb2ludHNfMz1mdW5jdGlvbigpe3JldHVybihxaT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJbnQxNkZvckFsbFBvaW50c18zPU8uYXNtLmRiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHl1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZVVJbnQxNkZvckFsbFBvaW50c18zPWZ1bmN0aW9uKCl7cmV0dXJuKHl1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZVVJbnQxNkZvckFsbFBvaW50c18zPU8uYXNtLmViKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LENyPU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludDMyRm9yQWxsUG9pbnRzXzM9ZnVuY3Rpb24oKXtyZXR1cm4oQ3I9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSW50MzJGb3JBbGxQb2ludHNfMz1PLmFzbS5mYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxBdT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVVSW50MzJGb3JBbGxQb2ludHNfMz1mdW5jdGlvbigpe3JldHVybihBdT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVVSW50MzJGb3JBbGxQb2ludHNfMz1PLmFzbS5nYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx3dT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVEYXRhQXJyYXlGb3JBbGxQb2ludHNfNT1mdW5jdGlvbigpe3JldHVybih3dT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVEYXRhQXJyYXlGb3JBbGxQb2ludHNfNT1PLmFzbS5oYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxUdT1PLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9Ta2lwQXR0cmlidXRlVHJhbnNmb3JtXzE9ZnVuY3Rpb24oKXtyZXR1cm4oVHU9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfU2tpcEF0dHJpYnV0ZVRyYW5zZm9ybV8xPU8uYXNtLmliKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEV1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEVuY29kZWRHZW9tZXRyeVR5cGVfRGVwcmVjYXRlZF8xPWZ1bmN0aW9uKCl7cmV0dXJuKEV1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEVuY29kZWRHZW9tZXRyeVR5cGVfRGVwcmVjYXRlZF8xPU8uYXNtLmpiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFJ1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0RlY29kZUJ1ZmZlclRvUG9pbnRDbG91ZF8yPWZ1bmN0aW9uKCl7cmV0dXJuKFJ1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0RlY29kZUJ1ZmZlclRvUG9pbnRDbG91ZF8yPU8uYXNtLmtiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHh1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0RlY29kZUJ1ZmZlclRvTWVzaF8yPWZ1bmN0aW9uKCl7cmV0dXJuKHh1PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0RlY29kZUJ1ZmZlclRvTWVzaF8yPU8uYXNtLmxiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE91PU8uX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oT3U9Ty5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfX19kZXN0cm95X19fMD1PLmFzbS5tYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxTdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fQXR0cmlidXRlVHJhbnNmb3JtVHlwZV9BVFRSSUJVVEVfSU5WQUxJRF9UUkFOU0ZPUk09ZnVuY3Rpb24oKXtyZXR1cm4oU3U9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX0lOVkFMSURfVFJBTlNGT1JNPU8uYXNtLm5iKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEN1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19BdHRyaWJ1dGVUcmFuc2Zvcm1UeXBlX0FUVFJJQlVURV9OT19UUkFOU0ZPUk09ZnVuY3Rpb24oKXtyZXR1cm4oQ3U9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX05PX1RSQU5TRk9STT1PLmFzbS5vYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxNdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fQXR0cmlidXRlVHJhbnNmb3JtVHlwZV9BVFRSSUJVVEVfUVVBTlRJWkFUSU9OX1RSQU5TRk9STT1mdW5jdGlvbigpe3JldHVybihNdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fQXR0cmlidXRlVHJhbnNmb3JtVHlwZV9BVFRSSUJVVEVfUVVBTlRJWkFUSU9OX1RSQU5TRk9STT1PLmFzbS5wYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxOdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fQXR0cmlidXRlVHJhbnNmb3JtVHlwZV9BVFRSSUJVVEVfT0NUQUhFRFJPTl9UUkFOU0ZPUk09ZnVuY3Rpb24oKXtyZXR1cm4oTnU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX09DVEFIRURST05fVFJBTlNGT1JNPU8uYXNtLnFiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGNpPU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19HZW9tZXRyeUF0dHJpYnV0ZV9UeXBlX0lOVkFMSUQ9ZnVuY3Rpb24oKXtyZXR1cm4oY2k9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfSU5WQUxJRD1PLmFzbS5yYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9QT1NJVElPTj1mdW5jdGlvbigpe3JldHVybihJdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9QT1NJVElPTj1PLmFzbS5zYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxQdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9OT1JNQUw9ZnVuY3Rpb24oKXtyZXR1cm4oUHU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfTk9STUFMPU8uYXNtLnRiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFdpPU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19HZW9tZXRyeUF0dHJpYnV0ZV9UeXBlX0NPTE9SPWZ1bmN0aW9uKCl7cmV0dXJuKFdpPU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19HZW9tZXRyeUF0dHJpYnV0ZV9UeXBlX0NPTE9SPU8uYXNtLnViKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFZjPU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19HZW9tZXRyeUF0dHJpYnV0ZV9UeXBlX1RFWF9DT09SRD1mdW5jdGlvbigpe3JldHVybihWYz1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9URVhfQ09PUkQ9Ty5hc20udmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sa3U9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfR0VORVJJQz1mdW5jdGlvbigpe3JldHVybihrdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9HRU5FUklDPU8uYXNtLndiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHVmPU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19FbmNvZGVkR2VvbWV0cnlUeXBlX0lOVkFMSURfR0VPTUVUUllfVFlQRT1mdW5jdGlvbigpe3JldHVybih1Zj1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRW5jb2RlZEdlb21ldHJ5VHlwZV9JTlZBTElEX0dFT01FVFJZX1RZUEU9Ty5hc20ueGIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdnU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0VuY29kZWRHZW9tZXRyeVR5cGVfUE9JTlRfQ0xPVUQ9ZnVuY3Rpb24oKXtyZXR1cm4odnU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0VuY29kZWRHZW9tZXRyeVR5cGVfUE9JTlRfQ0xPVUQ9Ty5hc20ueWIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRnU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0VuY29kZWRHZW9tZXRyeVR5cGVfVFJJQU5HVUxBUl9NRVNIPWZ1bmN0aW9uKCl7cmV0dXJuKEZ1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19FbmNvZGVkR2VvbWV0cnlUeXBlX1RSSUFOR1VMQVJfTUVTSD1PLmFzbS56YikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxEdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5WQUxJRD1mdW5jdGlvbigpe3JldHVybihEdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5WQUxJRD1PLmFzbS5BYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxCdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UOD1mdW5jdGlvbigpe3JldHVybihCdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UOD1PLmFzbS5CYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxqdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfVUlOVDg9ZnVuY3Rpb24oKXtyZXR1cm4oanU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQ4PU8uYXNtLkNiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFV1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9JTlQxNj1mdW5jdGlvbigpe3JldHVybihVdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UMTY9Ty5hc20uRGIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTHU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQxNj1mdW5jdGlvbigpe3JldHVybihMdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfVUlOVDE2PU8uYXNtLkViKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHp1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9JTlQzMj1mdW5jdGlvbigpe3JldHVybih6dT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UMzI9Ty5hc20uRmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sbGY9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQzMj1mdW5jdGlvbigpe3JldHVybihsZj1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfVUlOVDMyPU8uYXNtLkdiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEd1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9JTlQ2ND1mdW5jdGlvbigpe3JldHVybihHdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UNjQ9Ty5hc20uSGIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVnU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQ2ND1mdW5jdGlvbigpe3JldHVybihWdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfVUlOVDY0PU8uYXNtLkliKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEh1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9GTE9BVDMyPWZ1bmN0aW9uKCl7cmV0dXJuKEh1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9GTE9BVDMyPU8uYXNtLkpiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEt1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9GTE9BVDY0PWZ1bmN0aW9uKCl7cmV0dXJuKEt1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9GTE9BVDY0PU8uYXNtLktiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHF1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9CT09MPWZ1bmN0aW9uKCl7cmV0dXJuKHF1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9CT09MPU8uYXNtLkxiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFd1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9UWVBFU19DT1VOVD1mdW5jdGlvbigpe3JldHVybihXdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfVFlQRVNfQ09VTlQ9Ty5hc20uTWIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWHU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfT0s9ZnVuY3Rpb24oKXtyZXR1cm4oWHU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfT0s9Ty5hc20uTmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWGk9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfRFJBQ09fRVJST1I9ZnVuY3Rpb24oKXtyZXR1cm4oWGk9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfRFJBQ09fRVJST1I9Ty5hc20uT2IpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWXU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfSU9fRVJST1I9ZnVuY3Rpb24oKXtyZXR1cm4oWXU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfSU9fRVJST1I9Ty5hc20uUGIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSnU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfSU5WQUxJRF9QQVJBTUVURVI9ZnVuY3Rpb24oKXtyZXR1cm4oSnU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfSU5WQUxJRF9QQVJBTUVURVI9Ty5hc20uUWIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWnU9Ty5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfVU5TVVBQT1JURURfVkVSU0lPTj1mdW5jdGlvbigpe3JldHVybihadT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fU3RhdHVzQ29kZV9VTlNVUFBPUlRFRF9WRVJTSU9OPU8uYXNtLlJiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFF1PU8uX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX1VOS05PV05fVkVSU0lPTj1mdW5jdGlvbigpe3JldHVybihRdT1PLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fU3RhdHVzQ29kZV9VTktOT1dOX1ZFUlNJT049Ty5hc20uU2IpLmFwcGx5KG51bGwsYXJndW1lbnRzKX07Ty5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKE8uX21hbGxvYz1PLmFzbS5UYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxPLl9mcmVlPWZ1bmN0aW9uKCl7cmV0dXJuKE8uX2ZyZWU9Ty5hc20uVWIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyICR1PWZ1bmN0aW9uKCl7cmV0dXJuKCR1PU8uYXNtLlZiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O08uX19fc3RhcnRfZW1fanM9MTU4NTYsTy5fX19zdG9wX2VtX2pzPTE1OTU0O3ZhciBoZjtpZihNdD1mdW5jdGlvbiBMKCl7aGZ8fGwoKSxoZnx8KE10PUwpfSxPLnByZUluaXQpZm9yKHR5cGVvZiBPLnByZUluaXQ9PSJmdW5jdGlvbiImJihPLnByZUluaXQ9W08ucHJlSW5pdF0pOzA8Ty5wcmVJbml0Lmxlbmd0aDspTy5wcmVJbml0LnBvcCgpKCk7bCgpLGgucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpLGgucHJvdG90eXBlLmNvbnN0cnVjdG9yPWgsaC5wcm90b3R5cGUuX19jbGFzc19fPWgsaC5fX2NhY2hlX189e30sTy5XcmFwcGVyT2JqZWN0PWgsTy5nZXRDYWNoZT1tLE8ud3JhcFBvaW50ZXI9YixPLmNhc3RPYmplY3Q9ZnVuY3Rpb24oTCxIKXtyZXR1cm4gYihMLnB0cixIKX0sTy5OVUxMPWIoMCksTy5kZXN0cm95PWZ1bmN0aW9uKEwpe2lmKCFMLl9fZGVzdHJveV9fKXRocm93IkVycm9yOiBDYW5ub3QgZGVzdHJveSBvYmplY3QuIChEaWQgeW91IGNyZWF0ZSBpdCB5b3Vyc2VsZj8pIjtMLl9fZGVzdHJveV9fKCksZGVsZXRlIG0oTC5fX2NsYXNzX18pW0wucHRyXX0sTy5jb21wYXJlPWZ1bmN0aW9uKEwsSCl7cmV0dXJuIEwucHRyPT09SC5wdHJ9LE8uZ2V0UG9pbnRlcj1mdW5jdGlvbihMKXtyZXR1cm4gTC5wdHJ9LE8uZ2V0Q2xhc3M9ZnVuY3Rpb24oTCl7cmV0dXJuIEwuX19jbGFzc19ffTt2YXIgQXQ9e2J1ZmZlcjowLHNpemU6MCxwb3M6MCx0ZW1wczpbXSxuZWVkZWQ6MCxwcmVwYXJlOmZ1bmN0aW9uKCl7aWYoQXQubmVlZGVkKXtmb3IodmFyIEw9MDtMPEF0LnRlbXBzLmxlbmd0aDtMKyspTy5fZnJlZShBdC50ZW1wc1tMXSk7QXQudGVtcHMubGVuZ3RoPTAsTy5fZnJlZShBdC5idWZmZXIpLEF0LmJ1ZmZlcj0wLEF0LnNpemUrPUF0Lm5lZWRlZCxBdC5uZWVkZWQ9MH1BdC5idWZmZXJ8fChBdC5zaXplKz0xMjgsQXQuYnVmZmVyPU8uX21hbGxvYyhBdC5zaXplKSxBdC5idWZmZXJ8fGkodm9pZCAwKSksQXQucG9zPTB9LGFsbG9jOmZ1bmN0aW9uKEwsSCl7cmV0dXJuIEF0LmJ1ZmZlcnx8aSh2b2lkIDApLEw9TC5sZW5ndGgqSC5CWVRFU19QRVJfRUxFTUVOVCxMPUwrNyYtOCxBdC5wb3MrTD49QXQuc2l6ZT8oMDxMfHxpKHZvaWQgMCksQXQubmVlZGVkKz1MLEg9Ty5fbWFsbG9jKEwpLEF0LnRlbXBzLnB1c2goSCkpOihIPUF0LmJ1ZmZlcitBdC5wb3MsQXQucG9zKz1MKSxIfSxjb3B5OmZ1bmN0aW9uKEwsSCxuZSl7c3dpdGNoKG5lPj4+PTAsSC5CWVRFU19QRVJfRUxFTUVOVCl7Y2FzZSAyOm5lPj4+PTE7YnJlYWs7Y2FzZSA0Om5lPj4+PTI7YnJlYWs7Y2FzZSA4Om5lPj4+PTN9Zm9yKHZhciBTZT0wO1NlPEwubGVuZ3RoO1NlKyspSFtuZStTZV09TFtTZV19fTtyZXR1cm4gRS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShoLnByb3RvdHlwZSksRS5wcm90b3R5cGUuY29uc3RydWN0b3I9RSxFLnByb3RvdHlwZS5fX2NsYXNzX189RSxFLl9fY2FjaGVfXz17fSxPLlZvaWRQdHI9RSxFLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1FLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe050KHRoaXMucHRyKX0sZy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShoLnByb3RvdHlwZSksZy5wcm90b3R5cGUuY29uc3RydWN0b3I9ZyxnLnByb3RvdHlwZS5fX2NsYXNzX189ZyxnLl9fY2FjaGVfXz17fSxPLkRlY29kZXJCdWZmZXI9ZyxnLnByb3RvdHlwZS5Jbml0PWcucHJvdG90eXBlLkluaXQ9ZnVuY3Rpb24oTCxIKXt2YXIgbmU9dGhpcy5wdHI7QXQucHJlcGFyZSgpLHR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9eShMKSksSCYmdHlwZW9mIEg9PSJvYmplY3QiJiYoSD1ILnB0ciksRnQobmUsTCxIKX0sZy5wcm90b3R5cGUuX19kZXN0cm95X189Zy5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtvbih0aGlzLnB0cil9LEEucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpLEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPUEsQS5wcm90b3R5cGUuX19jbGFzc19fPUEsQS5fX2NhY2hlX189e30sTy5BdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhPUEsQS5wcm90b3R5cGUudHJhbnNmb3JtX3R5cGU9QS5wcm90b3R5cGUudHJhbnNmb3JtX3R5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gVW4odGhpcy5wdHIpfSxBLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1BLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe1NuKHRoaXMucHRyKX0sVC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShoLnByb3RvdHlwZSksVC5wcm90b3R5cGUuY29uc3RydWN0b3I9VCxULnByb3RvdHlwZS5fX2NsYXNzX189VCxULl9fY2FjaGVfXz17fSxPLkdlb21ldHJ5QXR0cmlidXRlPVQsVC5wcm90b3R5cGUuX19kZXN0cm95X189VC5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtTdCh0aGlzLnB0cil9LFIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpLFIucHJvdG90eXBlLmNvbnN0cnVjdG9yPVIsUi5wcm90b3R5cGUuX19jbGFzc19fPVIsUi5fX2NhY2hlX189e30sTy5Qb2ludEF0dHJpYnV0ZT1SLFIucHJvdG90eXBlLnNpemU9Ui5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiB3bih0aGlzLnB0cil9LFIucHJvdG90eXBlLkdldEF0dHJpYnV0ZVRyYW5zZm9ybURhdGE9Ui5wcm90b3R5cGUuR2V0QXR0cmlidXRlVHJhbnNmb3JtRGF0YT1mdW5jdGlvbigpe3JldHVybiBiKENuKHRoaXMucHRyKSxBKX0sUi5wcm90b3R5cGUuYXR0cmlidXRlX3R5cGU9Ui5wcm90b3R5cGUuYXR0cmlidXRlX3R5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gcG8odGhpcy5wdHIpfSxSLnByb3RvdHlwZS5kYXRhX3R5cGU9Ui5wcm90b3R5cGUuZGF0YV90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIER0KHRoaXMucHRyKX0sUi5wcm90b3R5cGUubnVtX2NvbXBvbmVudHM9Ui5wcm90b3R5cGUubnVtX2NvbXBvbmVudHM9ZnVuY3Rpb24oKXtyZXR1cm4gYW4odGhpcy5wdHIpfSxSLnByb3RvdHlwZS5ub3JtYWxpemVkPVIucHJvdG90eXBlLm5vcm1hbGl6ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hIUVvKHRoaXMucHRyKX0sUi5wcm90b3R5cGUuYnl0ZV9zdHJpZGU9Ui5wcm90b3R5cGUuYnl0ZV9zdHJpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gTW4odGhpcy5wdHIpfSxSLnByb3RvdHlwZS5ieXRlX29mZnNldD1SLnByb3RvdHlwZS5ieXRlX29mZnNldD1mdW5jdGlvbigpe3JldHVybiBIbyh0aGlzLnB0cil9LFIucHJvdG90eXBlLnVuaXF1ZV9pZD1SLnByb3RvdHlwZS51bmlxdWVfaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdmEodGhpcy5wdHIpfSxSLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1SLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe3ppKHRoaXMucHRyKX0sUy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShoLnByb3RvdHlwZSksUy5wcm90b3R5cGUuY29uc3RydWN0b3I9UyxTLnByb3RvdHlwZS5fX2NsYXNzX189UyxTLl9fY2FjaGVfXz17fSxPLkF0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybT1TLFMucHJvdG90eXBlLkluaXRGcm9tQXR0cmlidXRlPVMucHJvdG90eXBlLkluaXRGcm9tQXR0cmlidXRlPWZ1bmN0aW9uKEwpe3ZhciBIPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSwhIXRpKEgsTCl9LFMucHJvdG90eXBlLnF1YW50aXphdGlvbl9iaXRzPVMucHJvdG90eXBlLnF1YW50aXphdGlvbl9iaXRzPWZ1bmN0aW9uKCl7cmV0dXJuIEZhKHRoaXMucHRyKX0sUy5wcm90b3R5cGUubWluX3ZhbHVlPVMucHJvdG90eXBlLm1pbl92YWx1ZT1mdW5jdGlvbihMKXt2YXIgSD10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksbmkoSCxMKX0sUy5wcm90b3R5cGUucmFuZ2U9Uy5wcm90b3R5cGUucmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gVmkodGhpcy5wdHIpfSxTLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1TLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe09yKHRoaXMucHRyKX0sTS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShoLnByb3RvdHlwZSksTS5wcm90b3R5cGUuY29uc3RydWN0b3I9TSxNLnByb3RvdHlwZS5fX2NsYXNzX189TSxNLl9fY2FjaGVfXz17fSxPLkF0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm09TSxNLnByb3RvdHlwZS5Jbml0RnJvbUF0dHJpYnV0ZT1NLnByb3RvdHlwZS5Jbml0RnJvbUF0dHJpYnV0ZT1mdW5jdGlvbihMKXt2YXIgSD10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksISFnbyhILEwpfSxNLnByb3RvdHlwZS5xdWFudGl6YXRpb25fYml0cz1NLnByb3RvdHlwZS5xdWFudGl6YXRpb25fYml0cz1mdW5jdGlvbigpe3JldHVybiBEYSh0aGlzLnB0cil9LE0ucHJvdG90eXBlLl9fZGVzdHJveV9fPU0ucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7a2ModGhpcy5wdHIpfSxJLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGgucHJvdG90eXBlKSxJLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1JLEkucHJvdG90eXBlLl9fY2xhc3NfXz1JLEkuX19jYWNoZV9fPXt9LE8uUG9pbnRDbG91ZD1JLEkucHJvdG90eXBlLm51bV9hdHRyaWJ1dGVzPUkucHJvdG90eXBlLm51bV9hdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIExuKHRoaXMucHRyKX0sSS5wcm90b3R5cGUubnVtX3BvaW50cz1JLnByb3RvdHlwZS5udW1fcG9pbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIFNyKHRoaXMucHRyKX0sSS5wcm90b3R5cGUuX19kZXN0cm95X189SS5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtJdCh0aGlzLnB0cil9LE4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpLE4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPU4sTi5wcm90b3R5cGUuX19jbGFzc19fPU4sTi5fX2NhY2hlX189e30sTy5NZXNoPU4sTi5wcm90b3R5cGUubnVtX2ZhY2VzPU4ucHJvdG90eXBlLm51bV9mYWNlcz1mdW5jdGlvbigpe3JldHVybiBEZCh0aGlzLnB0cil9LE4ucHJvdG90eXBlLm51bV9hdHRyaWJ1dGVzPU4ucHJvdG90eXBlLm51bV9hdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIEJkKHRoaXMucHRyKX0sTi5wcm90b3R5cGUubnVtX3BvaW50cz1OLnByb3RvdHlwZS5udW1fcG9pbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIGpkKHRoaXMucHRyKX0sTi5wcm90b3R5cGUuX19kZXN0cm95X189Ti5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtGYyh0aGlzLnB0cil9LFAucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpLFAucHJvdG90eXBlLmNvbnN0cnVjdG9yPVAsUC5wcm90b3R5cGUuX19jbGFzc19fPVAsUC5fX2NhY2hlX189e30sTy5NZXRhZGF0YT1QLFAucHJvdG90eXBlLl9fZGVzdHJveV9fPVAucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7ZWYodGhpcy5wdHIpfSxGLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGgucHJvdG90eXBlKSxGLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1GLEYucHJvdG90eXBlLl9fY2xhc3NfXz1GLEYuX19jYWNoZV9fPXt9LE8uU3RhdHVzPUYsRi5wcm90b3R5cGUuY29kZT1GLnByb3RvdHlwZS5jb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIFVkKHRoaXMucHRyKX0sRi5wcm90b3R5cGUub2s9Ri5wcm90b3R5cGUub2s9ZnVuY3Rpb24oKXtyZXR1cm4hIXRmKHRoaXMucHRyKX0sRi5wcm90b3R5cGUuZXJyb3JfbXNnPUYucHJvdG90eXBlLmVycm9yX21zZz1mdW5jdGlvbigpe3JldHVybiBhKG9pKHRoaXMucHRyKSl9LEYucHJvdG90eXBlLl9fZGVzdHJveV9fPUYucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7TGQodGhpcy5wdHIpfSx3LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGgucHJvdG90eXBlKSx3LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj13LHcucHJvdG90eXBlLl9fY2xhc3NfXz13LHcuX19jYWNoZV9fPXt9LE8uRHJhY29GbG9hdDMyQXJyYXk9dyx3LnByb3RvdHlwZS5HZXRWYWx1ZT13LnByb3RvdHlwZS5HZXRWYWx1ZT1mdW5jdGlvbihMKXt2YXIgSD10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksR2QoSCxMKX0sdy5wcm90b3R5cGUuc2l6ZT13LnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIGFpKHRoaXMucHRyKX0sdy5wcm90b3R5cGUuX19kZXN0cm95X189dy5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtyaSh0aGlzLnB0cil9LHgucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpLHgucHJvdG90eXBlLmNvbnN0cnVjdG9yPXgseC5wcm90b3R5cGUuX19jbGFzc19fPXgseC5fX2NhY2hlX189e30sTy5EcmFjb0ludDhBcnJheT14LHgucHJvdG90eXBlLkdldFZhbHVlPXgucHJvdG90eXBlLkdldFZhbHVlPWZ1bmN0aW9uKEwpe3ZhciBIPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxWZChILEwpfSx4LnByb3RvdHlwZS5zaXplPXgucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gSGQodGhpcy5wdHIpfSx4LnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz14LnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe0JhKHRoaXMucHRyKX0sQy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShoLnByb3RvdHlwZSksQy5wcm90b3R5cGUuY29uc3RydWN0b3I9QyxDLnByb3RvdHlwZS5fX2NsYXNzX189QyxDLl9fY2FjaGVfXz17fSxPLkRyYWNvVUludDhBcnJheT1DLEMucHJvdG90eXBlLkdldFZhbHVlPUMucHJvdG90eXBlLkdldFZhbHVlPWZ1bmN0aW9uKEwpe3ZhciBIPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxvZihILEwpfSxDLnByb3RvdHlwZS5zaXplPUMucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gamModGhpcy5wdHIpfSxDLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1DLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe0tkKHRoaXMucHRyKX0sdi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShoLnByb3RvdHlwZSksdi5wcm90b3R5cGUuY29uc3RydWN0b3I9dix2LnByb3RvdHlwZS5fX2NsYXNzX189dix2Ll9fY2FjaGVfXz17fSxPLkRyYWNvSW50MTZBcnJheT12LHYucHJvdG90eXBlLkdldFZhbHVlPXYucHJvdG90eXBlLkdldFZhbHVlPWZ1bmN0aW9uKEwpe3ZhciBIPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxxZChILEwpfSx2LnByb3RvdHlwZS5zaXplPXYucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gV2QodGhpcy5wdHIpfSx2LnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz12LnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe1hkKHRoaXMucHRyKX0sai5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShoLnByb3RvdHlwZSksai5wcm90b3R5cGUuY29uc3RydWN0b3I9aixqLnByb3RvdHlwZS5fX2NsYXNzX189aixqLl9fY2FjaGVfXz17fSxPLkRyYWNvVUludDE2QXJyYXk9aixqLnByb3RvdHlwZS5HZXRWYWx1ZT1qLnByb3RvdHlwZS5HZXRWYWx1ZT1mdW5jdGlvbihMKXt2YXIgSD10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSmQoSCxMKX0sai5wcm90b3R5cGUuc2l6ZT1qLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIFpkKHRoaXMucHRyKX0sai5wcm90b3R5cGUuX19kZXN0cm95X189ai5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXthZih0aGlzLnB0cil9LHoucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpLHoucHJvdG90eXBlLmNvbnN0cnVjdG9yPXosei5wcm90b3R5cGUuX19jbGFzc19fPXosei5fX2NhY2hlX189e30sTy5EcmFjb0ludDMyQXJyYXk9eix6LnByb3RvdHlwZS5HZXRWYWx1ZT16LnByb3RvdHlwZS5HZXRWYWx1ZT1mdW5jdGlvbihMKXt2YXIgSD10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksJGQoSCxMKX0sei5wcm90b3R5cGUuc2l6ZT16LnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIGV1KHRoaXMucHRyKX0sei5wcm90b3R5cGUuX19kZXN0cm95X189ei5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXt0dSh0aGlzLnB0cil9LEQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpLEQucHJvdG90eXBlLmNvbnN0cnVjdG9yPUQsRC5wcm90b3R5cGUuX19jbGFzc19fPUQsRC5fX2NhY2hlX189e30sTy5EcmFjb1VJbnQzMkFycmF5PUQsRC5wcm90b3R5cGUuR2V0VmFsdWU9RC5wcm90b3R5cGUuR2V0VmFsdWU9ZnVuY3Rpb24oTCl7dmFyIEg9dGhpcy5wdHI7cmV0dXJuIEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLG51KEgsTCl9LEQucHJvdG90eXBlLnNpemU9RC5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiBvdSh0aGlzLnB0cil9LEQucHJvdG90eXBlLl9fZGVzdHJveV9fPUQucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7SGkodGhpcy5wdHIpfSxHLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGgucHJvdG90eXBlKSxHLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1HLEcucHJvdG90eXBlLl9fY2xhc3NfXz1HLEcuX19jYWNoZV9fPXt9LE8uTWV0YWRhdGFRdWVyaWVyPUcsRy5wcm90b3R5cGUuSGFzRW50cnk9Ry5wcm90b3R5cGUuSGFzRW50cnk9ZnVuY3Rpb24oTCxIKXt2YXIgbmU9dGhpcy5wdHI7cmV0dXJuIEF0LnByZXBhcmUoKSxMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxIPUgmJnR5cGVvZiBIPT0ib2JqZWN0Ij9ILnB0cjpwKEgpLCEhcnUobmUsTCxIKX0sRy5wcm90b3R5cGUuR2V0SW50RW50cnk9Ry5wcm90b3R5cGUuR2V0SW50RW50cnk9ZnVuY3Rpb24oTCxIKXt2YXIgbmU9dGhpcy5wdHI7cmV0dXJuIEF0LnByZXBhcmUoKSxMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxIPUgmJnR5cGVvZiBIPT0ib2JqZWN0Ij9ILnB0cjpwKEgpLGZhKG5lLEwsSCl9LEcucHJvdG90eXBlLkdldEludEVudHJ5QXJyYXk9Ry5wcm90b3R5cGUuR2V0SW50RW50cnlBcnJheT1mdW5jdGlvbihMLEgsbmUpe3ZhciBTZT10aGlzLnB0cjtBdC5wcmVwYXJlKCksTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSD1IJiZ0eXBlb2YgSD09Im9iamVjdCI/SC5wdHI6cChIKSxuZSYmdHlwZW9mIG5lPT0ib2JqZWN0IiYmKG5lPW5lLnB0cikscmYoU2UsTCxILG5lKX0sRy5wcm90b3R5cGUuR2V0RG91YmxlRW50cnk9Ry5wcm90b3R5cGUuR2V0RG91YmxlRW50cnk9ZnVuY3Rpb24oTCxIKXt2YXIgbmU9dGhpcy5wdHI7cmV0dXJuIEF0LnByZXBhcmUoKSxMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxIPUgmJnR5cGVvZiBIPT0ib2JqZWN0Ij9ILnB0cjpwKEgpLGl1KG5lLEwsSCl9LEcucHJvdG90eXBlLkdldFN0cmluZ0VudHJ5PUcucHJvdG90eXBlLkdldFN0cmluZ0VudHJ5PWZ1bmN0aW9uKEwsSCl7dmFyIG5lPXRoaXMucHRyO3JldHVybiBBdC5wcmVwYXJlKCksTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSD1IJiZ0eXBlb2YgSD09Im9iamVjdCI/SC5wdHI6cChIKSxhKGN1KG5lLEwsSCkpfSxHLnByb3RvdHlwZS5OdW1FbnRyaWVzPUcucHJvdG90eXBlLk51bUVudHJpZXM9ZnVuY3Rpb24oTCl7dmFyIEg9dGhpcy5wdHI7cmV0dXJuIEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLHN1KEgsTCl9LEcucHJvdG90eXBlLkdldEVudHJ5TmFtZT1HLnByb3RvdHlwZS5HZXRFbnRyeU5hbWU9ZnVuY3Rpb24oTCxIKXt2YXIgbmU9dGhpcy5wdHI7cmV0dXJuIEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLEgmJnR5cGVvZiBIPT0ib2JqZWN0IiYmKEg9SC5wdHIpLGEoS28obmUsTCxIKSl9LEcucHJvdG90eXBlLl9fZGVzdHJveV9fPUcucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7Y2YodGhpcy5wdHIpfSxWLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGgucHJvdG90eXBlKSxWLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1WLFYucHJvdG90eXBlLl9fY2xhc3NfXz1WLFYuX19jYWNoZV9fPXt9LE8uRGVjb2Rlcj1WLFYucHJvdG90eXBlLkRlY29kZUFycmF5VG9Qb2ludENsb3VkPVYucHJvdG90eXBlLkRlY29kZUFycmF5VG9Qb2ludENsb3VkPWZ1bmN0aW9uKEwsSCxuZSl7dmFyIFNlPXRoaXMucHRyO3JldHVybiBBdC5wcmVwYXJlKCksdHlwZW9mIEw9PSJvYmplY3QiJiYoTD15KEwpKSxIJiZ0eXBlb2YgSD09Im9iamVjdCImJihIPUgucHRyKSxuZSYmdHlwZW9mIG5lPT0ib2JqZWN0IiYmKG5lPW5lLnB0ciksYihLaShTZSxMLEgsbmUpLEYpfSxWLnByb3RvdHlwZS5EZWNvZGVBcnJheVRvTWVzaD1WLnByb3RvdHlwZS5EZWNvZGVBcnJheVRvTWVzaD1mdW5jdGlvbihMLEgsbmUpe3ZhciBTZT10aGlzLnB0cjtyZXR1cm4gQXQucHJlcGFyZSgpLHR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9eShMKSksSCYmdHlwZW9mIEg9PSJvYmplY3QiJiYoSD1ILnB0ciksbmUmJnR5cGVvZiBuZT09Im9iamVjdCImJihuZT1uZS5wdHIpLGIoZnUoU2UsTCxILG5lKSxGKX0sVi5wcm90b3R5cGUuR2V0QXR0cmlidXRlSWQ9Vi5wcm90b3R5cGUuR2V0QXR0cmlidXRlSWQ9ZnVuY3Rpb24oTCxIKXt2YXIgbmU9dGhpcy5wdHI7cmV0dXJuIEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLEgmJnR5cGVvZiBIPT0ib2JqZWN0IiYmKEg9SC5wdHIpLExjKG5lLEwsSCl9LFYucHJvdG90eXBlLkdldEF0dHJpYnV0ZUlkQnlOYW1lPVYucHJvdG90eXBlLkdldEF0dHJpYnV0ZUlkQnlOYW1lPWZ1bmN0aW9uKEwsSCl7dmFyIG5lPXRoaXMucHRyO3JldHVybiBBdC5wcmVwYXJlKCksTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSD1IJiZ0eXBlb2YgSD09Im9iamVjdCI/SC5wdHI6cChIKSxkdShuZSxMLEgpfSxWLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJZEJ5TWV0YWRhdGFFbnRyeT1WLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJZEJ5TWV0YWRhdGFFbnRyeT1mdW5jdGlvbihMLEgsbmUpe3ZhciBTZT10aGlzLnB0cjtyZXR1cm4gQXQucHJlcGFyZSgpLEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLEg9SCYmdHlwZW9mIEg9PSJvYmplY3QiP0gucHRyOnAoSCksbmU9bmUmJnR5cGVvZiBuZT09Im9iamVjdCI/bmUucHRyOnAobmUpLGZmKFNlLEwsSCxuZSl9LFYucHJvdG90eXBlLkdldEF0dHJpYnV0ZT1WLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGU9ZnVuY3Rpb24oTCxIKXt2YXIgbmU9dGhpcy5wdHI7cmV0dXJuIEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLEgmJnR5cGVvZiBIPT0ib2JqZWN0IiYmKEg9SC5wdHIpLGIoZGYobmUsTCxIKSxSKX0sVi5wcm90b3R5cGUuR2V0QXR0cmlidXRlQnlVbmlxdWVJZD1WLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVCeVVuaXF1ZUlkPWZ1bmN0aW9uKEwsSCl7dmFyIG5lPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxIJiZ0eXBlb2YgSD09Im9iamVjdCImJihIPUgucHRyKSxiKHV1KG5lLEwsSCksUil9LFYucHJvdG90eXBlLkdldE1ldGFkYXRhPVYucHJvdG90eXBlLkdldE1ldGFkYXRhPWZ1bmN0aW9uKEwpe3ZhciBIPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxiKGx1KEgsTCksUCl9LFYucHJvdG90eXBlLkdldEF0dHJpYnV0ZU1ldGFkYXRhPVYucHJvdG90eXBlLkdldEF0dHJpYnV0ZU1ldGFkYXRhPWZ1bmN0aW9uKEwsSCl7dmFyIG5lPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxIJiZ0eXBlb2YgSD09Im9iamVjdCImJihIPUgucHRyKSxiKHpjKG5lLEwsSCksUCl9LFYucHJvdG90eXBlLkdldEZhY2VGcm9tTWVzaD1WLnByb3RvdHlwZS5HZXRGYWNlRnJvbU1lc2g9ZnVuY3Rpb24oTCxILG5lKXt2YXIgU2U9dGhpcy5wdHI7cmV0dXJuIEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLEgmJnR5cGVvZiBIPT0ib2JqZWN0IiYmKEg9SC5wdHIpLG5lJiZ0eXBlb2YgbmU9PSJvYmplY3QiJiYobmU9bmUucHRyKSwhIVJvKFNlLEwsSCxuZSl9LFYucHJvdG90eXBlLkdldFRyaWFuZ2xlU3RyaXBzRnJvbU1lc2g9Vi5wcm90b3R5cGUuR2V0VHJpYW5nbGVTdHJpcHNGcm9tTWVzaD1mdW5jdGlvbihMLEgpe3ZhciBuZT10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSCYmdHlwZW9mIEg9PSJvYmplY3QiJiYoSD1ILnB0ciksR2MobmUsTCxIKX0sVi5wcm90b3R5cGUuR2V0VHJpYW5nbGVzVUludDE2QXJyYXk9Vi5wcm90b3R5cGUuR2V0VHJpYW5nbGVzVUludDE2QXJyYXk9ZnVuY3Rpb24oTCxILG5lKXt2YXIgU2U9dGhpcy5wdHI7cmV0dXJuIEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLEgmJnR5cGVvZiBIPT0ib2JqZWN0IiYmKEg9SC5wdHIpLG5lJiZ0eXBlb2YgbmU9PSJvYmplY3QiJiYobmU9bmUucHRyKSwhIWh1KFNlLEwsSCxuZSl9LFYucHJvdG90eXBlLkdldFRyaWFuZ2xlc1VJbnQzMkFycmF5PVYucHJvdG90eXBlLkdldFRyaWFuZ2xlc1VJbnQzMkFycmF5PWZ1bmN0aW9uKEwsSCxuZSl7dmFyIFNlPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxIJiZ0eXBlb2YgSD09Im9iamVjdCImJihIPUgucHRyKSxuZSYmdHlwZW9mIG5lPT0ib2JqZWN0IiYmKG5lPW5lLnB0ciksISFtdShTZSxMLEgsbmUpfSxWLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVGbG9hdD1WLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVGbG9hdD1mdW5jdGlvbihMLEgsbmUpe3ZhciBTZT10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSCYmdHlwZW9mIEg9PSJvYmplY3QiJiYoSD1ILnB0ciksbmUmJnR5cGVvZiBuZT09Im9iamVjdCImJihuZT1uZS5wdHIpLCEhYnUoU2UsTCxILG5lKX0sVi5wcm90b3R5cGUuR2V0QXR0cmlidXRlRmxvYXRGb3JBbGxQb2ludHM9Vi5wcm90b3R5cGUuR2V0QXR0cmlidXRlRmxvYXRGb3JBbGxQb2ludHM9ZnVuY3Rpb24oTCxILG5lKXt2YXIgU2U9dGhpcy5wdHI7cmV0dXJuIEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLEgmJnR5cGVvZiBIPT0ib2JqZWN0IiYmKEg9SC5wdHIpLG5lJiZ0eXBlb2YgbmU9PSJvYmplY3QiJiYobmU9bmUucHRyKSwhIWRhKFNlLEwsSCxuZSl9LFYucHJvdG90eXBlLkdldEF0dHJpYnV0ZUludEZvckFsbFBvaW50cz1WLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnRGb3JBbGxQb2ludHM9ZnVuY3Rpb24oTCxILG5lKXt2YXIgU2U9dGhpcy5wdHI7cmV0dXJuIEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLEgmJnR5cGVvZiBIPT0ib2JqZWN0IiYmKEg9SC5wdHIpLG5lJiZ0eXBlb2YgbmU9PSJvYmplY3QiJiYobmU9bmUucHRyKSwhIXB1KFNlLEwsSCxuZSl9LFYucHJvdG90eXBlLkdldEF0dHJpYnV0ZUludDhGb3JBbGxQb2ludHM9Vi5wcm90b3R5cGUuR2V0QXR0cmlidXRlSW50OEZvckFsbFBvaW50cz1mdW5jdGlvbihMLEgsbmUpe3ZhciBTZT10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSCYmdHlwZW9mIEg9PSJvYmplY3QiJiYoSD1ILnB0ciksbmUmJnR5cGVvZiBuZT09Im9iamVjdCImJihuZT1uZS5wdHIpLCEhZ3UoU2UsTCxILG5lKX0sVi5wcm90b3R5cGUuR2V0QXR0cmlidXRlVUludDhGb3JBbGxQb2ludHM9Vi5wcm90b3R5cGUuR2V0QXR0cmlidXRlVUludDhGb3JBbGxQb2ludHM9ZnVuY3Rpb24oTCxILG5lKXt2YXIgU2U9dGhpcy5wdHI7cmV0dXJuIEwmJnR5cGVvZiBMPT0ib2JqZWN0IiYmKEw9TC5wdHIpLEgmJnR5cGVvZiBIPT0ib2JqZWN0IiYmKEg9SC5wdHIpLG5lJiZ0eXBlb2YgbmU9PSJvYmplY3QiJiYobmU9bmUucHRyKSwhIV91KFNlLEwsSCxuZSl9LFYucHJvdG90eXBlLkdldEF0dHJpYnV0ZUludDE2Rm9yQWxsUG9pbnRzPVYucHJvdG90eXBlLkdldEF0dHJpYnV0ZUludDE2Rm9yQWxsUG9pbnRzPWZ1bmN0aW9uKEwsSCxuZSl7dmFyIFNlPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxIJiZ0eXBlb2YgSD09Im9iamVjdCImJihIPUgucHRyKSxuZSYmdHlwZW9mIG5lPT0ib2JqZWN0IiYmKG5lPW5lLnB0ciksISFxaShTZSxMLEgsbmUpfSxWLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVVSW50MTZGb3JBbGxQb2ludHM9Vi5wcm90b3R5cGUuR2V0QXR0cmlidXRlVUludDE2Rm9yQWxsUG9pbnRzPWZ1bmN0aW9uKEwsSCxuZSl7dmFyIFNlPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxIJiZ0eXBlb2YgSD09Im9iamVjdCImJihIPUgucHRyKSxuZSYmdHlwZW9mIG5lPT0ib2JqZWN0IiYmKG5lPW5lLnB0ciksISF5dShTZSxMLEgsbmUpfSxWLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnQzMkZvckFsbFBvaW50cz1WLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnQzMkZvckFsbFBvaW50cz1mdW5jdGlvbihMLEgsbmUpe3ZhciBTZT10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSCYmdHlwZW9mIEg9PSJvYmplY3QiJiYoSD1ILnB0ciksbmUmJnR5cGVvZiBuZT09Im9iamVjdCImJihuZT1uZS5wdHIpLCEhQ3IoU2UsTCxILG5lKX0sVi5wcm90b3R5cGUuR2V0QXR0cmlidXRlVUludDMyRm9yQWxsUG9pbnRzPVYucHJvdG90eXBlLkdldEF0dHJpYnV0ZVVJbnQzMkZvckFsbFBvaW50cz1mdW5jdGlvbihMLEgsbmUpe3ZhciBTZT10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSCYmdHlwZW9mIEg9PSJvYmplY3QiJiYoSD1ILnB0ciksbmUmJnR5cGVvZiBuZT09Im9iamVjdCImJihuZT1uZS5wdHIpLCEhQXUoU2UsTCxILG5lKX0sVi5wcm90b3R5cGUuR2V0QXR0cmlidXRlRGF0YUFycmF5Rm9yQWxsUG9pbnRzPVYucHJvdG90eXBlLkdldEF0dHJpYnV0ZURhdGFBcnJheUZvckFsbFBvaW50cz1mdW5jdGlvbihMLEgsbmUsU2UsdHQpe3ZhciB1dD10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSCYmdHlwZW9mIEg9PSJvYmplY3QiJiYoSD1ILnB0ciksbmUmJnR5cGVvZiBuZT09Im9iamVjdCImJihuZT1uZS5wdHIpLFNlJiZ0eXBlb2YgU2U9PSJvYmplY3QiJiYoU2U9U2UucHRyKSx0dCYmdHlwZW9mIHR0PT0ib2JqZWN0IiYmKHR0PXR0LnB0ciksISF3dSh1dCxMLEgsbmUsU2UsdHQpfSxWLnByb3RvdHlwZS5Ta2lwQXR0cmlidXRlVHJhbnNmb3JtPVYucHJvdG90eXBlLlNraXBBdHRyaWJ1dGVUcmFuc2Zvcm09ZnVuY3Rpb24oTCl7dmFyIEg9dGhpcy5wdHI7TCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksVHUoSCxMKX0sVi5wcm90b3R5cGUuR2V0RW5jb2RlZEdlb21ldHJ5VHlwZV9EZXByZWNhdGVkPVYucHJvdG90eXBlLkdldEVuY29kZWRHZW9tZXRyeVR5cGVfRGVwcmVjYXRlZD1mdW5jdGlvbihMKXt2YXIgSD10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksRXUoSCxMKX0sVi5wcm90b3R5cGUuRGVjb2RlQnVmZmVyVG9Qb2ludENsb3VkPVYucHJvdG90eXBlLkRlY29kZUJ1ZmZlclRvUG9pbnRDbG91ZD1mdW5jdGlvbihMLEgpe3ZhciBuZT10aGlzLnB0cjtyZXR1cm4gTCYmdHlwZW9mIEw9PSJvYmplY3QiJiYoTD1MLnB0ciksSCYmdHlwZW9mIEg9PSJvYmplY3QiJiYoSD1ILnB0ciksYihSdShuZSxMLEgpLEYpfSxWLnByb3RvdHlwZS5EZWNvZGVCdWZmZXJUb01lc2g9Vi5wcm90b3R5cGUuRGVjb2RlQnVmZmVyVG9NZXNoPWZ1bmN0aW9uKEwsSCl7dmFyIG5lPXRoaXMucHRyO3JldHVybiBMJiZ0eXBlb2YgTD09Im9iamVjdCImJihMPUwucHRyKSxIJiZ0eXBlb2YgSD09Im9iamVjdCImJihIPUgucHRyKSxiKHh1KG5lLEwsSCksRil9LFYucHJvdG90eXBlLl9fZGVzdHJveV9fPVYucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7T3UodGhpcy5wdHIpfSwoZnVuY3Rpb24oKXtmdW5jdGlvbiBMKCl7Ty5BVFRSSUJVVEVfSU5WQUxJRF9UUkFOU0ZPUk09U3UoKSxPLkFUVFJJQlVURV9OT19UUkFOU0ZPUk09Q3UoKSxPLkFUVFJJQlVURV9RVUFOVElaQVRJT05fVFJBTlNGT1JNPU11KCksTy5BVFRSSUJVVEVfT0NUQUhFRFJPTl9UUkFOU0ZPUk09TnUoKSxPLklOVkFMSUQ9Y2koKSxPLlBPU0lUSU9OPUl1KCksTy5OT1JNQUw9UHUoKSxPLkNPTE9SPVdpKCksTy5URVhfQ09PUkQ9VmMoKSxPLkdFTkVSSUM9a3UoKSxPLklOVkFMSURfR0VPTUVUUllfVFlQRT11ZigpLE8uUE9JTlRfQ0xPVUQ9dnUoKSxPLlRSSUFOR1VMQVJfTUVTSD1GdSgpLE8uRFRfSU5WQUxJRD1EdSgpLE8uRFRfSU5UOD1CdSgpLE8uRFRfVUlOVDg9anUoKSxPLkRUX0lOVDE2PVV1KCksTy5EVF9VSU5UMTY9THUoKSxPLkRUX0lOVDMyPXp1KCksTy5EVF9VSU5UMzI9bGYoKSxPLkRUX0lOVDY0PUd1KCksTy5EVF9VSU5UNjQ9VnUoKSxPLkRUX0ZMT0FUMzI9SHUoKSxPLkRUX0ZMT0FUNjQ9S3UoKSxPLkRUX0JPT0w9cXUoKSxPLkRUX1RZUEVTX0NPVU5UPVd1KCksTy5PSz1YdSgpLE8uRFJBQ09fRVJST1I9WGkoKSxPLklPX0VSUk9SPVl1KCksTy5JTlZBTElEX1BBUkFNRVRFUj1KdSgpLE8uVU5TVVBQT1JURURfVkVSU0lPTj1adSgpLE8uVU5LTk9XTl9WRVJTSU9OPVF1KCl9R2U/TCgpOk90LnVuc2hpZnQoTCl9KSgpLHR5cGVvZiBPLm9uTW9kdWxlUGFyc2VkPT0iZnVuY3Rpb24iJiZPLm9uTW9kdWxlUGFyc2VkKCksTy5EZWNvZGVyLnByb3RvdHlwZS5HZXRFbmNvZGVkR2VvbWV0cnlUeXBlPWZ1bmN0aW9uKEwpe2lmKEwuX19jbGFzc19fJiZMLl9fY2xhc3NfXz09PU8uRGVjb2RlckJ1ZmZlcilyZXR1cm4gTy5EZWNvZGVyLnByb3RvdHlwZS5HZXRFbmNvZGVkR2VvbWV0cnlUeXBlX0RlcHJlY2F0ZWQoTCk7aWYoOD5MLmJ5dGVMZW5ndGgpcmV0dXJuIE8uSU5WQUxJRF9HRU9NRVRSWV9UWVBFO3N3aXRjaChMWzddKXtjYXNlIDA6cmV0dXJuIE8uUE9JTlRfQ0xPVUQ7Y2FzZSAxOnJldHVybiBPLlRSSUFOR1VMQVJfTUVTSDtkZWZhdWx0OnJldHVybiBPLklOVkFMSURfR0VPTUVUUllfVFlQRX19LGUucmVhZHl9fSkoKTt0eXBlb2YgTWQ9PSJvYmplY3QiJiZ0eXBlb2YgZ3k9PSJvYmplY3QiP2d5LmV4cG9ydHM9cHk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoW10sZnVuY3Rpb24oKXtyZXR1cm4gcHl9KTp0eXBlb2YgTWQ9PSJvYmplY3QiJiYoTWQuRHJhY29EZWNvZGVyTW9kdWxlPXB5KX0pO3ZhciBBeT17fTskZShBeSx7ZGVmYXVsdDooKT0+cDR9KTtmdW5jdGlvbiBzNChuLGUpe2xldCB0PW4ubnVtX3BvaW50cygpLG89bi5udW1fZmFjZXMoKSxhPW5ldyBSdC5EcmFjb0ludDMyQXJyYXkscj1vKjMsaT1JZS5jcmVhdGVUeXBlZEFycmF5KHQsciksZj0wO2ZvcihsZXQgZD0wO2Q8bzsrK2QpZS5HZXRGYWNlRnJvbU1lc2gobixkLGEpLGlbZiswXT1hLkdldFZhbHVlKDApLGlbZisxXT1hLkdldFZhbHVlKDEpLGlbZisyXT1hLkdldFZhbHVlKDIpLGYrPTM7cmV0dXJuIFJ0LmRlc3Ryb3koYSkse3R5cGVkQXJyYXk6aSxudW1iZXJPZkluZGljZXM6cn19ZnVuY3Rpb24gZjQobixlLHQsbyxhKXtsZXQgcixpO28ucXVhbnRpemF0aW9uQml0czw9OD8oaT1uZXcgUnQuRHJhY29VSW50OEFycmF5LHI9bmV3IFVpbnQ4QXJyYXkoYSksZS5HZXRBdHRyaWJ1dGVVSW50OEZvckFsbFBvaW50cyhuLHQsaSkpOm8ucXVhbnRpemF0aW9uQml0czw9MTY/KGk9bmV3IFJ0LkRyYWNvVUludDE2QXJyYXkscj1uZXcgVWludDE2QXJyYXkoYSksZS5HZXRBdHRyaWJ1dGVVSW50MTZGb3JBbGxQb2ludHMobix0LGkpKTooaT1uZXcgUnQuRHJhY29GbG9hdDMyQXJyYXkscj1uZXcgRmxvYXQzMkFycmF5KGEpLGUuR2V0QXR0cmlidXRlRmxvYXRGb3JBbGxQb2ludHMobix0LGkpKTtmb3IobGV0IGY9MDtmPGE7KytmKXJbZl09aS5HZXRWYWx1ZShmKTtyZXR1cm4gUnQuZGVzdHJveShpKSxyfWZ1bmN0aW9uIGQ0KG4sZSx0LG8pe2xldCBhLHI7c3dpdGNoKHQuZGF0YV90eXBlKCkpe2Nhc2UgMTpjYXNlIDExOnI9bmV3IFJ0LkRyYWNvSW50OEFycmF5LGE9bmV3IEludDhBcnJheShvKSxlLkdldEF0dHJpYnV0ZUludDhGb3JBbGxQb2ludHMobix0LHIpO2JyZWFrO2Nhc2UgMjpyPW5ldyBSdC5EcmFjb1VJbnQ4QXJyYXksYT1uZXcgVWludDhBcnJheShvKSxlLkdldEF0dHJpYnV0ZVVJbnQ4Rm9yQWxsUG9pbnRzKG4sdCxyKTticmVhaztjYXNlIDM6cj1uZXcgUnQuRHJhY29JbnQxNkFycmF5LGE9bmV3IEludDE2QXJyYXkobyksZS5HZXRBdHRyaWJ1dGVJbnQxNkZvckFsbFBvaW50cyhuLHQscik7YnJlYWs7Y2FzZSA0OnI9bmV3IFJ0LkRyYWNvVUludDE2QXJyYXksYT1uZXcgVWludDE2QXJyYXkobyksZS5HZXRBdHRyaWJ1dGVVSW50MTZGb3JBbGxQb2ludHMobix0LHIpO2JyZWFrO2Nhc2UgNTpjYXNlIDc6cj1uZXcgUnQuRHJhY29JbnQzMkFycmF5LGE9bmV3IEludDMyQXJyYXkobyksZS5HZXRBdHRyaWJ1dGVJbnQzMkZvckFsbFBvaW50cyhuLHQscik7YnJlYWs7Y2FzZSA2OmNhc2UgODpyPW5ldyBSdC5EcmFjb1VJbnQzMkFycmF5LGE9bmV3IFVpbnQzMkFycmF5KG8pLGUuR2V0QXR0cmlidXRlVUludDMyRm9yQWxsUG9pbnRzKG4sdCxyKTticmVhaztjYXNlIDk6Y2FzZSAxMDpyPW5ldyBSdC5EcmFjb0Zsb2F0MzJBcnJheSxhPW5ldyBGbG9hdDMyQXJyYXkobyksZS5HZXRBdHRyaWJ1dGVGbG9hdEZvckFsbFBvaW50cyhuLHQscik7YnJlYWt9Zm9yKGxldCBpPTA7aTxvOysraSlhW2ldPXIuR2V0VmFsdWUoaSk7cmV0dXJuIFJ0LmRlc3Ryb3kociksYX1mdW5jdGlvbiBhTyhuLGUsdCl7bGV0IG89bi5udW1fcG9pbnRzKCksYT10Lm51bV9jb21wb25lbnRzKCkscixpPW5ldyBSdC5BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm07aWYoaS5Jbml0RnJvbUF0dHJpYnV0ZSh0KSl7bGV0IHU9bmV3IEFycmF5KGEpO2ZvcihsZXQgbD0wO2w8YTsrK2wpdVtsXT1pLm1pbl92YWx1ZShsKTtyPXtxdWFudGl6YXRpb25CaXRzOmkucXVhbnRpemF0aW9uX2JpdHMoKSxtaW5WYWx1ZXM6dSxyYW5nZTppLnJhbmdlKCksb2N0RW5jb2RlZDohMX19UnQuZGVzdHJveShpKSxpPW5ldyBSdC5BdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtLGkuSW5pdEZyb21BdHRyaWJ1dGUodCkmJihyPXtxdWFudGl6YXRpb25CaXRzOmkucXVhbnRpemF0aW9uX2JpdHMoKSxvY3RFbmNvZGVkOiEwfSksUnQuZGVzdHJveShpKTtsZXQgZj1vKmEsZDtfKHIpP2Q9ZjQobixlLHQscixmKTpkPWQ0KG4sZSx0LGYpO2xldCBjPW9lLmZyb21UeXBlZEFycmF5KGQpO3JldHVybnthcnJheTpkLGRhdGE6e2NvbXBvbmVudHNQZXJBdHRyaWJ1dGU6YSxjb21wb25lbnREYXRhdHlwZTpjLGJ5dGVPZmZzZXQ6dC5ieXRlX29mZnNldCgpLGJ5dGVTdHJpZGU6b2UuZ2V0U2l6ZUluQnl0ZXMoYykqYSxub3JtYWxpemVkOnQubm9ybWFsaXplZCgpLHF1YW50aXphdGlvbjpyfX19ZnVuY3Rpb24gdTQobil7bGV0IGU9bmV3IFJ0LkRlY29kZXI7bi5kZXF1YW50aXplSW5TaGFkZXImJihlLlNraXBBdHRyaWJ1dGVUcmFuc2Zvcm0oUnQuUE9TSVRJT04pLGUuU2tpcEF0dHJpYnV0ZVRyYW5zZm9ybShSdC5OT1JNQUwpKTtsZXQgdD1uZXcgUnQuRGVjb2RlckJ1ZmZlcjtpZih0LkluaXQobi5idWZmZXIsbi5idWZmZXIubGVuZ3RoKSxlLkdldEVuY29kZWRHZW9tZXRyeVR5cGUodCkhPT1SdC5QT0lOVF9DTE9VRCl0aHJvdyBuZXcgbnQoIkRyYWNvIGdlb21ldHJ5IHR5cGUgbXVzdCBiZSBQT0lOVF9DTE9VRC4iKTtsZXQgYT1uZXcgUnQuUG9pbnRDbG91ZCxyPWUuRGVjb2RlQnVmZmVyVG9Qb2ludENsb3VkKHQsYSk7aWYoIXIub2soKXx8YS5wdHI9PT0wKXRocm93IG5ldyBudChgRXJyb3IgZGVjb2RpbmcgZHJhY28gcG9pbnQgY2xvdWQ6ICR7ci5lcnJvcl9tc2coKX1gKTtSdC5kZXN0cm95KHQpO2xldCBpPXt9LGY9bi5wcm9wZXJ0aWVzO2ZvcihsZXQgZCBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoZCkpe2xldCBjO2lmKGQ9PT0iUE9TSVRJT04ifHxkPT09Ik5PUk1BTCIpe2xldCB1PWUuR2V0QXR0cmlidXRlSWQoYSxSdFtkXSk7Yz1lLkdldEF0dHJpYnV0ZShhLHUpfWVsc2V7bGV0IHU9ZltkXTtjPWUuR2V0QXR0cmlidXRlQnlVbmlxdWVJZChhLHUpfWlbZF09YU8oYSxlLGMpfXJldHVybiBSdC5kZXN0cm95KGEpLFJ0LmRlc3Ryb3koZSksaX1mdW5jdGlvbiBsNChuKXtsZXQgZT1uZXcgUnQuRGVjb2RlcjtpZihuLmRlcXVhbnRpemVJblNoYWRlcilmb3IobGV0IHU9MDt1PG4uYXR0cmlidXRlc1RvU2tpcFRyYW5zZm9ybS5sZW5ndGg7Kyt1KWUuU2tpcEF0dHJpYnV0ZVRyYW5zZm9ybShSdFtuLmF0dHJpYnV0ZXNUb1NraXBUcmFuc2Zvcm1bdV1dKTtsZXQgdD1uLmJ1ZmZlclZpZXcsbz1uZXcgUnQuRGVjb2RlckJ1ZmZlcjtpZihvLkluaXQobi5hcnJheSx0LmJ5dGVMZW5ndGgpLGUuR2V0RW5jb2RlZEdlb21ldHJ5VHlwZShvKSE9PVJ0LlRSSUFOR1VMQVJfTUVTSCl0aHJvdyBuZXcgbnQoIlVuc3VwcG9ydGVkIGRyYWNvIG1lc2ggZ2VvbWV0cnkgdHlwZS4iKTtsZXQgcj1uZXcgUnQuTWVzaCxpPWUuRGVjb2RlQnVmZmVyVG9NZXNoKG8scik7aWYoIWkub2soKXx8ci5wdHI9PT0wKXRocm93IG5ldyBudChgRXJyb3IgZGVjb2RpbmcgZHJhY28gbWVzaCBnZW9tZXRyeTogJHtpLmVycm9yX21zZygpfWApO1J0LmRlc3Ryb3kobyk7bGV0IGY9e30sZD1uLmNvbXByZXNzZWRBdHRyaWJ1dGVzO2ZvcihsZXQgdSBpbiBkKWlmKGQuaGFzT3duUHJvcGVydHkodSkpe2xldCBsPWRbdV0saD1lLkdldEF0dHJpYnV0ZUJ5VW5pcXVlSWQocixsKTtmW3VdPWFPKHIsZSxoKX1sZXQgYz17aW5kZXhBcnJheTpzNChyLGUpLGF0dHJpYnV0ZURhdGE6Zn07cmV0dXJuIFJ0LmRlc3Ryb3kociksUnQuZGVzdHJveShlKSxjfWFzeW5jIGZ1bmN0aW9uIGg0KG4sZSl7cmV0dXJuIF8obi5idWZmZXJWaWV3KT9sNChuKTp1NChuKX1hc3luYyBmdW5jdGlvbiBtNChuLGUpe2xldCB0PW4ud2ViQXNzZW1ibHlDb25maWc7cmV0dXJuIF8odCkmJl8odC53YXNtQmluYXJ5RmlsZSk/UnQ9YXdhaXQoMCx5eS5kZWZhdWx0KSh0KTpSdD1hd2FpdCgwLHl5LmRlZmF1bHQpKCksITB9YXN5bmMgZnVuY3Rpb24gYjQobixlKXtsZXQgdD1uLndlYkFzc2VtYmx5Q29uZmlnO3JldHVybiBfKHQpP200KG4sZSk6aDQobixlKX12YXIgeXksUnQscDQsd3k9WCgoKT0+e0N0KCk7c2UoKTtadCgpO3BhKCk7a24oKTt5eT1oYShfeSgpLDEpO3A0PW10KGI0KX0pO2Z1bmN0aW9uIFR5KG4sZSl7aWYoVHkucGFzc1Rocm91Z2hEYXRhRm9yVGVzdGluZylyZXR1cm4gZTtsZXQgdD1uLmJ5dGVMZW5ndGg7aWYodD09PTB8fHQlNCE9PTApdGhyb3cgbmV3IG50KCJUaGUgbGVuZ3RoIG9mIGtleSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIGFuZCBhIG11bHRpcGxlIG9mIDQuIik7bGV0IG89bmV3IERhdGFWaWV3KGUpLGE9by5nZXRVaW50MzIoMCwhMCk7aWYoYT09PWc0fHxhPT09XzQpcmV0dXJuIGU7bGV0IHI9bmV3IERhdGFWaWV3KG4pLGk9MCxmPWUuYnl0ZUxlbmd0aCxkPWYtZiU4LGM9dCx1LGw9ODtmb3IoO2k8ZDspZm9yKGw9KGwrOCklMjQsdT1sO2k8ZCYmdTxjOylvLnNldFVpbnQzMihpLG8uZ2V0VWludDMyKGksITApXnIuZ2V0VWludDMyKHUsITApLCEwKSxvLnNldFVpbnQzMihpKzQsby5nZXRVaW50MzIoaSs0LCEwKV5yLmdldFVpbnQzMih1KzQsITApLCEwKSxpKz04LHUrPTI0O2lmKGk8Zilmb3IodT49YyYmKGw9KGwrOCklMjQsdT1sKTtpPGY7KW8uc2V0VWludDgoaSxvLmdldFVpbnQ4KGkpXnIuZ2V0VWludDgodSkpLGkrKyx1Kyt9dmFyIGc0LF80LHJPLGlPPVgoKCk9PntwYSgpO2c0PTE5NTMwMjk4MDUsXzQ9MjkxNzAzNDEwMDtUeS5wYXNzVGhyb3VnaERhdGFGb3JUZXN0aW5nPSExO3JPPVR5fSk7ZnVuY3Rpb24geTQobixlKXtyZXR1cm4obiZlKSE9PTB9dmFyIHFzLGNPPVgoKCk9Pntxcz15NH0pO2Z1bmN0aW9uIFRyKG4sZSx0LG8sYSxyKXt0aGlzLl9iaXRzPW4sdGhpcy5jbm9kZVZlcnNpb249ZSx0aGlzLmltYWdlcnlWZXJzaW9uPXQsdGhpcy50ZXJyYWluVmVyc2lvbj1vLHRoaXMuaW1hZ2VyeVByb3ZpZGVyPWEsdGhpcy50ZXJyYWluUHJvdmlkZXI9cix0aGlzLmFuY2VzdG9ySGFzVGVycmFpbj0hMSx0aGlzLnRlcnJhaW5TdGF0ZT12b2lkIDB9dmFyIEE0LHNPLHc0LFQ0LEU0LGZPLGRPPVgoKCk9PntzZSgpO2NPKCk7QTQ9WzEsMiw0LDhdLHNPPTE1LHc0PTE2LFQ0PTY0LEU0PTEyODtUci5jbG9uZT1mdW5jdGlvbihuLGUpe3JldHVybiBfKGUpPyhlLl9iaXRzPW4uX2JpdHMsZS5jbm9kZVZlcnNpb249bi5jbm9kZVZlcnNpb24sZS5pbWFnZXJ5VmVyc2lvbj1uLmltYWdlcnlWZXJzaW9uLGUudGVycmFpblZlcnNpb249bi50ZXJyYWluVmVyc2lvbixlLmltYWdlcnlQcm92aWRlcj1uLmltYWdlcnlQcm92aWRlcixlLnRlcnJhaW5Qcm92aWRlcj1uLnRlcnJhaW5Qcm92aWRlcik6ZT1uZXcgVHIobi5fYml0cyxuLmNub2RlVmVyc2lvbixuLmltYWdlcnlWZXJzaW9uLG4udGVycmFpblZlcnNpb24sbi5pbWFnZXJ5UHJvdmlkZXIsbi50ZXJyYWluUHJvdmlkZXIpLGUuYW5jZXN0b3JIYXNUZXJyYWluPW4uYW5jZXN0b3JIYXNUZXJyYWluLGUudGVycmFpblN0YXRlPW4udGVycmFpblN0YXRlLGV9O1RyLnByb3RvdHlwZS5zZXRQYXJlbnQ9ZnVuY3Rpb24obil7dGhpcy5hbmNlc3Rvckhhc1RlcnJhaW49bi5hbmNlc3Rvckhhc1RlcnJhaW58fHRoaXMuaGFzVGVycmFpbigpfTtUci5wcm90b3R5cGUuaGFzU3VidHJlZT1mdW5jdGlvbigpe3JldHVybiBxcyh0aGlzLl9iaXRzLHc0KX07VHIucHJvdG90eXBlLmhhc0ltYWdlcnk9ZnVuY3Rpb24oKXtyZXR1cm4gcXModGhpcy5fYml0cyxUNCl9O1RyLnByb3RvdHlwZS5oYXNUZXJyYWluPWZ1bmN0aW9uKCl7cmV0dXJuIHFzKHRoaXMuX2JpdHMsRTQpfTtUci5wcm90b3R5cGUuaGFzQ2hpbGRyZW49ZnVuY3Rpb24oKXtyZXR1cm4gcXModGhpcy5fYml0cyxzTyl9O1RyLnByb3RvdHlwZS5oYXNDaGlsZD1mdW5jdGlvbihuKXtyZXR1cm4gcXModGhpcy5fYml0cyxBNFtuXSl9O1RyLnByb3RvdHlwZS5nZXRDaGlsZEJpdG1hc2s9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYml0cyZzT307Zk89VHJ9KTtmdW5jdGlvbiBZcyhuKXtsZXQgZT1uLmxlbmd0aDtmb3IoOy0tZT49MDspbltlXT0wfWZ1bmN0aW9uIEw0KG4sZSl7bGV0IHQsbyxhLHIsaSxmLGQsYyx1LGwsaCxtLGIscCx5LEUsZyxBLFQsUixTLE0sSSxOLFA9bi5zdGF0ZTt0PW4ubmV4dF9pbixJPW4uaW5wdXQsbz10KyhuLmF2YWlsX2luLTUpLGE9bi5uZXh0X291dCxOPW4ub3V0cHV0LHI9YS0oZS1uLmF2YWlsX291dCksaT1hKyhuLmF2YWlsX291dC0yNTcpLGY9UC5kbWF4LGQ9UC53c2l6ZSxjPVAud2hhdmUsdT1QLnduZXh0LGw9UC53aW5kb3csaD1QLmhvbGQsbT1QLmJpdHMsYj1QLmxlbmNvZGUscD1QLmRpc3Rjb2RlLHk9KDE8PFAubGVuYml0cyktMSxFPSgxPDxQLmRpc3RiaXRzKS0xO2U6ZG97bTwxNSYmKGgrPUlbdCsrXTw8bSxtKz04LGgrPUlbdCsrXTw8bSxtKz04KSxnPWJbaCZ5XTt0OmZvcig7Oyl7aWYoQT1nPj4+MjQsaD4+Pj1BLG0tPUEsQT1nPj4+MTYmMjU1LEE9PT0wKU5bYSsrXT1nJjY1NTM1O2Vsc2UgaWYoQSYxNil7VD1nJjY1NTM1LEEmPTE1LEEmJihtPEEmJihoKz1JW3QrK108PG0sbSs9OCksVCs9aCYoMTw8QSktMSxoPj4+PUEsbS09QSksbTwxNSYmKGgrPUlbdCsrXTw8bSxtKz04LGgrPUlbdCsrXTw8bSxtKz04KSxnPXBbaCZFXTtuOmZvcig7Oyl7aWYoQT1nPj4+MjQsaD4+Pj1BLG0tPUEsQT1nPj4+MTYmMjU1LEEmMTYpe2lmKFI9ZyY2NTUzNSxBJj0xNSxtPEEmJihoKz1JW3QrK108PG0sbSs9OCxtPEEmJihoKz1JW3QrK108PG0sbSs9OCkpLFIrPWgmKDE8PEEpLTEsUj5mKXtuLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLFAubW9kZT13bTticmVhayBlfWlmKGg+Pj49QSxtLT1BLEE9YS1yLFI+QSl7aWYoQT1SLUEsQT5jJiZQLnNhbmUpe24ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsUC5tb2RlPXdtO2JyZWFrIGV9aWYoUz0wLE09bCx1PT09MCl7aWYoUys9ZC1BLEE8VCl7VC09QTtkbyBOW2ErK109bFtTKytdO3doaWxlKC0tQSk7Uz1hLVIsTT1OfX1lbHNlIGlmKHU8QSl7aWYoUys9ZCt1LUEsQS09dSxBPFQpe1QtPUE7ZG8gTlthKytdPWxbUysrXTt3aGlsZSgtLUEpO2lmKFM9MCx1PFQpe0E9dSxULT1BO2RvIE5bYSsrXT1sW1MrK107d2hpbGUoLS1BKTtTPWEtUixNPU59fX1lbHNlIGlmKFMrPXUtQSxBPFQpe1QtPUE7ZG8gTlthKytdPWxbUysrXTt3aGlsZSgtLUEpO1M9YS1SLE09Tn1mb3IoO1Q+MjspTlthKytdPU1bUysrXSxOW2ErK109TVtTKytdLE5bYSsrXT1NW1MrK10sVC09MztUJiYoTlthKytdPU1bUysrXSxUPjEmJihOW2ErK109TVtTKytdKSl9ZWxzZXtTPWEtUjtkbyBOW2ErK109TltTKytdLE5bYSsrXT1OW1MrK10sTlthKytdPU5bUysrXSxULT0zO3doaWxlKFQ+Mik7VCYmKE5bYSsrXT1OW1MrK10sVD4xJiYoTlthKytdPU5bUysrXSkpfX1lbHNlIGlmKEEmNjQpe24ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLFAubW9kZT13bTticmVhayBlfWVsc2V7Zz1wWyhnJjY1NTM1KSsoaCYoMTw8QSktMSldO2NvbnRpbnVlIG59YnJlYWt9fWVsc2UgaWYoQSY2NClpZihBJjMyKXtQLm1vZGU9VTQ7YnJlYWsgZX1lbHNle24ubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLFAubW9kZT13bTticmVhayBlfWVsc2V7Zz1iWyhnJjY1NTM1KSsoaCYoMTw8QSktMSldO2NvbnRpbnVlIHR9YnJlYWt9fXdoaWxlKHQ8byYmYTxpKTtUPW0+PjMsdC09VCxtLT1UPDwzLGgmPSgxPDxtKS0xLG4ubmV4dF9pbj10LG4ubmV4dF9vdXQ9YSxuLmF2YWlsX2luPXQ8bz81KyhvLXQpOjUtKHQtbyksbi5hdmFpbF9vdXQ9YTxpPzI1NysoaS1hKToyNTctKGEtaSksUC5ob2xkPWgsUC5iaXRzPW19ZnVuY3Rpb24gUGQobil7IkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mIjtyZXR1cm4gUGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09InN5bWJvbCI/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LFBkKG4pfWZ1bmN0aW9uIHQ2KG4sZSl7aWYoUGQobikhPSJvYmplY3QifHwhbilyZXR1cm4gbjt2YXIgdD1uW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodCE9PXZvaWQgMCl7dmFyIG89dC5jYWxsKG4sZXx8ImRlZmF1bHQiKTtpZihQZChvKSE9Im9iamVjdCIpcmV0dXJuIG87dGhyb3cgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybihlPT09InN0cmluZyI/U3RyaW5nOk51bWJlcikobil9ZnVuY3Rpb24gbjYobil7dmFyIGU9dDYobiwic3RyaW5nIik7cmV0dXJuIFBkKGUpPT0ic3ltYm9sIj9lOmUrIiJ9ZnVuY3Rpb24gamkobixlLHQpe3JldHVybihlPW42KGUpKWluIG4/T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSx7dmFsdWU6dCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOm5bZV09dCxufWZ1bmN0aW9uIG1TKG4sZT17fSl7bGV0IHQ9bmV3IGE2KGUpO2lmKHQucHVzaChuLCEwKSx0LmVycil0aHJvdyBFcnJvcih0Lm1zZyk7bGV0IG89dC5yZXN1bHQ7cmV0dXJuIGUudG9UZXh0P25ldyBUZXh0RGVjb2RlcigpLmRlY29kZShvKTpvfXZhciB1TyxsTyxSNCx6eSxHeSxXTyxYTyxZTyxFeSxKTyxaTyxRTywkTyx4NCxPNCxlUyxTNCx0UyxuUyxGeSxWeSxvUyxhUyxyUyx4bSxzYSwkcixDNCxNNCxONCxJNCxpUyxoTyxSeSxtTyxEeSxiTyxwTyxQNCxrNCx2NCxCeSxGNCxOZCxPbSxENCxaYSx4eSxXbixPeSxScixVaSxIeSxLeSxxeSxCNCxXeSxYcyxqeSxOYyxVeSxjUyxzUyxqNCxTeSxXcyxFcix3bSxVNCxUbSxnTyxfTyx5TyxDeSxBTyx6NCxHNCxWNCxINCxJZCxLNCxmUyxkUyxDbSx3TyxUTyxFTyxSTyx4TyxPTyxTTyxDTyxNTyxTbSxRcixNeSxOTyxOeSxJTyxQTyxrTyx2TyxFbSxSbSxGTyxETyxCTyxqTyxVTyxJeSxMTyx6TyxPbixMeSx1UyxxNCxXNCxHTyxYNCxKcyxZNCxsUyxKNCxaNCxWTyxQeSxreSxRNCxoUyx2eSxITyxLTywkNCxlNixxTyxvNixhNixiUz1YKCgpPT57dU89MCxsTz0xO1I0PTI5LHp5PTI1NixHeT0zMCxXTz0xOSxYTz01NzMsWU89MTUsRXk9MTYsSk89MjU2LFpPPTE2LFFPPTE3LCRPPTE4LHg0PW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDBdKSxPND1uZXcgVWludDhBcnJheShbMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM10pO25ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMyw3XSk7ZVM9bmV3IFVpbnQ4QXJyYXkoWzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdKSxTND01MTIsdFM9QXJyYXkoMjg4KjIpO1lzKHRTKTtuUz1BcnJheShHeSoyKTtZcyhuUyk7Rnk9QXJyYXkoUzQpO1lzKEZ5KTtWeT1BcnJheSgyNTYpO1lzKFZ5KTtvUz1BcnJheShSNCk7WXMob1MpO2FTPUFycmF5KEd5KTtZcyhhUyk7clM9bj0+bjwyNTY/Rnlbbl06RnlbMjU2KyhuPj4+NyldLHhtPShuLGUpPT57bi5wZW5kaW5nX2J1ZltuLnBlbmRpbmcrK109ZSYyNTUsbi5wZW5kaW5nX2J1ZltuLnBlbmRpbmcrK109ZT4+PjgmMjU1fSxzYT0obixlLHQpPT57bi5iaV92YWxpZD5FeS10PyhuLmJpX2J1Znw9ZTw8bi5iaV92YWxpZCY2NTUzNSx4bShuLG4uYmlfYnVmKSxuLmJpX2J1Zj1lPj5FeS1uLmJpX3ZhbGlkLG4uYmlfdmFsaWQrPXQtRXkpOihuLmJpX2J1Znw9ZTw8bi5iaV92YWxpZCY2NTUzNSxuLmJpX3ZhbGlkKz10KX0sJHI9KG4sZSx0KT0+e3NhKG4sdFtlKjJdLHRbZSoyKzFdKX0sQzQ9KG4sZSk9PntsZXQgdD0wO2RvIHR8PW4mMSxuPj4+PTEsdDw8PTE7d2hpbGUoLS1lPjApO3JldHVybiB0Pj4+MX0sTTQ9KG4sZSk9PntsZXQgdD1lLmR5bl90cmVlLG89ZS5tYXhfY29kZSxhPWUuc3RhdF9kZXNjLnN0YXRpY190cmVlLHI9ZS5zdGF0X2Rlc2MuaGFzX3N0cmVlLGk9ZS5zdGF0X2Rlc2MuZXh0cmFfYml0cyxmPWUuc3RhdF9kZXNjLmV4dHJhX2Jhc2UsZD1lLnN0YXRfZGVzYy5tYXhfbGVuZ3RoLGMsdSxsLGgsbSxiLHA9MDtmb3IoaD0wO2g8PVlPO2grKyluLmJsX2NvdW50W2hdPTA7Zm9yKHRbbi5oZWFwW24uaGVhcF9tYXhdKjIrMV09MCxjPW4uaGVhcF9tYXgrMTtjPFhPO2MrKyl1PW4uaGVhcFtjXSxoPXRbdFt1KjIrMV0qMisxXSsxLGg+ZCYmKGg9ZCxwKyspLHRbdSoyKzFdPWgsISh1Pm8pJiYobi5ibF9jb3VudFtoXSsrLG09MCx1Pj1mJiYobT1pW3UtZl0pLGI9dFt1KjJdLG4ub3B0X2xlbis9YiooaCttKSxyJiYobi5zdGF0aWNfbGVuKz1iKihhW3UqMisxXSttKSkpO2lmKHAhPT0wKXtkb3tmb3IoaD1kLTE7bi5ibF9jb3VudFtoXT09PTA7KWgtLTtuLmJsX2NvdW50W2hdLS0sbi5ibF9jb3VudFtoKzFdKz0yLG4uYmxfY291bnRbZF0tLSxwLT0yfXdoaWxlKHA+MCk7Zm9yKGg9ZDtoIT09MDtoLS0pZm9yKHU9bi5ibF9jb3VudFtoXTt1IT09MDspbD1uLmhlYXBbLS1jXSwhKGw+bykmJih0W2wqMisxXSE9PWgmJihuLm9wdF9sZW4rPShoLXRbbCoyKzFdKSp0W2wqMl0sdFtsKjIrMV09aCksdS0tKX19LE40PShuLGUsdCk9PntsZXQgbz1BcnJheSgxNiksYT0wLHIsaTtmb3Iocj0xO3I8PVlPO3IrKylhPWErdFtyLTFdPDwxLG9bcl09YTtmb3IoaT0wO2k8PWU7aSsrKXtsZXQgZj1uW2kqMisxXTtmIT09MCYmKG5baSoyXT1DNChvW2ZdKyssZikpfX0sSTQ9bj0+e2xldCBlO2ZvcihlPTA7ZTwyODY7ZSsrKW4uZHluX2x0cmVlW2UqMl09MDtmb3IoZT0wO2U8R3k7ZSsrKW4uZHluX2R0cmVlW2UqMl09MDtmb3IoZT0wO2U8V087ZSsrKW4uYmxfdHJlZVtlKjJdPTA7bi5keW5fbHRyZWVbSk8qMl09MSxuLm9wdF9sZW49bi5zdGF0aWNfbGVuPTAsbi5zeW1fbmV4dD1uLm1hdGNoZXM9MH0saVM9bj0+e24uYmlfdmFsaWQ+OD94bShuLG4uYmlfYnVmKTpuLmJpX3ZhbGlkPjAmJihuLnBlbmRpbmdfYnVmW24ucGVuZGluZysrXT1uLmJpX2J1Ziksbi5iaV9idWY9MCxuLmJpX3ZhbGlkPTB9LGhPPShuLGUsdCxvKT0+e2xldCBhPWUqMixyPXQqMjtyZXR1cm4gblthXTxuW3JdfHxuW2FdPT09bltyXSYmb1tlXTw9b1t0XX0sUnk9KG4sZSx0KT0+e2xldCBvPW4uaGVhcFt0XSxhPXQ8PDE7Zm9yKDthPD1uLmhlYXBfbGVuJiYoYTxuLmhlYXBfbGVuJiZoTyhlLG4uaGVhcFthKzFdLG4uaGVhcFthXSxuLmRlcHRoKSYmYSsrLCFoTyhlLG8sbi5oZWFwW2FdLG4uZGVwdGgpKTspbi5oZWFwW3RdPW4uaGVhcFthXSx0PWEsYTw8PTE7bi5oZWFwW3RdPW99LG1PPShuLGUsdCk9PntsZXQgbyxhLHI9MCxpLGY7aWYobi5zeW1fbmV4dCE9PTApZG8gbz1uLnBlbmRpbmdfYnVmW24uc3ltX2J1ZityKytdJjI1NSxvKz0obi5wZW5kaW5nX2J1ZltuLnN5bV9idWYrcisrXSYyNTUpPDw4LGE9bi5wZW5kaW5nX2J1ZltuLnN5bV9idWYrcisrXSxvPT09MD8kcihuLGEsZSk6KGk9VnlbYV0sJHIobixpK3p5KzEsZSksZj14NFtpXSxmIT09MCYmKGEtPW9TW2ldLHNhKG4sYSxmKSksby0tLGk9clMobyksJHIobixpLHQpLGY9TzRbaV0sZiE9PTAmJihvLT1hU1tpXSxzYShuLG8sZikpKTt3aGlsZShyPG4uc3ltX25leHQpOyRyKG4sSk8sZSl9LER5PShuLGUpPT57bGV0IHQ9ZS5keW5fdHJlZSxvPWUuc3RhdF9kZXNjLnN0YXRpY190cmVlLGE9ZS5zdGF0X2Rlc2MuaGFzX3N0cmVlLHI9ZS5zdGF0X2Rlc2MuZWxlbXMsaSxmLGQ9LTEsYztmb3Iobi5oZWFwX2xlbj0wLG4uaGVhcF9tYXg9WE8saT0wO2k8cjtpKyspdFtpKjJdPT09MD90W2kqMisxXT0wOihuLmhlYXBbKytuLmhlYXBfbGVuXT1kPWksbi5kZXB0aFtpXT0wKTtmb3IoO24uaGVhcF9sZW48MjspYz1uLmhlYXBbKytuLmhlYXBfbGVuXT1kPDI/KytkOjAsdFtjKjJdPTEsbi5kZXB0aFtjXT0wLG4ub3B0X2xlbi0tLGEmJihuLnN0YXRpY19sZW4tPW9bYyoyKzFdKTtmb3IoZS5tYXhfY29kZT1kLGk9bi5oZWFwX2xlbj4+MTtpPj0xO2ktLSlSeShuLHQsaSk7Yz1yO2RvIGk9bi5oZWFwWzFdLG4uaGVhcFsxXT1uLmhlYXBbbi5oZWFwX2xlbi0tXSxSeShuLHQsMSksZj1uLmhlYXBbMV0sbi5oZWFwWy0tbi5oZWFwX21heF09aSxuLmhlYXBbLS1uLmhlYXBfbWF4XT1mLHRbYyoyXT10W2kqMl0rdFtmKjJdLG4uZGVwdGhbY109KG4uZGVwdGhbaV0+PW4uZGVwdGhbZl0/bi5kZXB0aFtpXTpuLmRlcHRoW2ZdKSsxLHRbaSoyKzFdPXRbZioyKzFdPWMsbi5oZWFwWzFdPWMrKyxSeShuLHQsMSk7d2hpbGUobi5oZWFwX2xlbj49Mik7bi5oZWFwWy0tbi5oZWFwX21heF09bi5oZWFwWzFdLE00KG4sZSksTjQodCxkLG4uYmxfY291bnQpfSxiTz0obixlLHQpPT57bGV0IG8sYT0tMSxyLGk9ZVsxXSxmPTAsZD03LGM9NDtmb3IoaT09PTAmJihkPTEzOCxjPTMpLGVbKHQrMSkqMisxXT02NTUzNSxvPTA7bzw9dDtvKyspcj1pLGk9ZVsobysxKSoyKzFdLCEoKytmPGQmJnI9PT1pKSYmKGY8Yz9uLmJsX3RyZWVbcioyXSs9ZjpyPT09MD9mPD0xMD9uLmJsX3RyZWVbUU8qMl0rKzpuLmJsX3RyZWVbJE8qMl0rKzoociE9PWEmJm4uYmxfdHJlZVtyKjJdKyssbi5ibF90cmVlW1pPKjJdKyspLGY9MCxhPXIsaT09PTA/KGQ9MTM4LGM9Myk6cj09PWk/KGQ9NixjPTMpOihkPTcsYz00KSl9LHBPPShuLGUsdCk9PntsZXQgbyxhPS0xLHIsaT1lWzFdLGY9MCxkPTcsYz00O2ZvcihpPT09MCYmKGQ9MTM4LGM9Myksbz0wO288PXQ7bysrKWlmKHI9aSxpPWVbKG8rMSkqMisxXSwhKCsrZjxkJiZyPT09aSkpe2lmKGY8YylkbyAkcihuLHIsbi5ibF90cmVlKTt3aGlsZSgtLWYhPT0wKTtlbHNlIHI9PT0wP2Y8PTEwPygkcihuLFFPLG4uYmxfdHJlZSksc2EobixmLTMsMykpOigkcihuLCRPLG4uYmxfdHJlZSksc2EobixmLTExLDcpKToociE9PWEmJigkcihuLHIsbi5ibF90cmVlKSxmLS0pLCRyKG4sWk8sbi5ibF90cmVlKSxzYShuLGYtMywyKSk7Zj0wLGE9cixpPT09MD8oZD0xMzgsYz0zKTpyPT09aT8oZD02LGM9Myk6KGQ9NyxjPTQpfX0sUDQ9bj0+e2xldCBlO2ZvcihiTyhuLG4uZHluX2x0cmVlLG4ubF9kZXNjLm1heF9jb2RlKSxiTyhuLG4uZHluX2R0cmVlLG4uZF9kZXNjLm1heF9jb2RlKSxEeShuLG4uYmxfZGVzYyksZT1XTy0xO2U+PTMmJm4uYmxfdHJlZVtlU1tlXSoyKzFdPT09MDtlLS0pO3JldHVybiBuLm9wdF9sZW4rPTMqKGUrMSkrNSs1KzQsZX0sazQ9KG4sZSx0LG8pPT57bGV0IGE7Zm9yKHNhKG4sZS0yNTcsNSksc2Eobix0LTEsNSksc2EobixvLTQsNCksYT0wO2E8bzthKyspc2EobixuLmJsX3RyZWVbZVNbYV0qMisxXSwzKTtwTyhuLG4uZHluX2x0cmVlLGUtMSkscE8obixuLmR5bl9kdHJlZSx0LTEpfSx2ND1uPT57bGV0IGU9NDA5MzYyNDQ0Nyx0O2Zvcih0PTA7dDw9MzE7dCsrLGU+Pj49MSlpZihlJjEmJm4uZHluX2x0cmVlW3QqMl0hPT0wKXJldHVybiB1TztpZihuLmR5bl9sdHJlZVsxOF0hPT0wfHxuLmR5bl9sdHJlZVsyMF0hPT0wfHxuLmR5bl9sdHJlZVsyNl0hPT0wKXJldHVybiBsTztmb3IodD0zMjt0PHp5O3QrKylpZihuLmR5bl9sdHJlZVt0KjJdIT09MClyZXR1cm4gbE87cmV0dXJuIHVPfSxCeT0obixlLHQsbyk9PntzYShuLDArICshIW8sMyksaVMobikseG0obix0KSx4bShuLH50KSx0JiZuLnBlbmRpbmdfYnVmLnNldChuLndpbmRvdy5zdWJhcnJheShlLGUrdCksbi5wZW5kaW5nKSxuLnBlbmRpbmcrPXR9LEY0PShuLGUsdCxvKT0+e2xldCBhLHIsaT0wO24ubGV2ZWw+MD8obi5zdHJtLmRhdGFfdHlwZT09PTImJihuLnN0cm0uZGF0YV90eXBlPXY0KG4pKSxEeShuLG4ubF9kZXNjKSxEeShuLG4uZF9kZXNjKSxpPVA0KG4pLGE9bi5vcHRfbGVuKzMrNz4+PjMscj1uLnN0YXRpY19sZW4rMys3Pj4+MyxyPD1hJiYoYT1yKSk6YT1yPXQrNSx0KzQ8PWEmJmUhPT0tMT9CeShuLGUsdCxvKTpuLnN0cmF0ZWd5PT09NHx8cj09PWE/KHNhKG4sMisgKyEhbywzKSxtTyhuLHRTLG5TKSk6KHNhKG4sNCsgKyEhbywzKSxrNChuLG4ubF9kZXNjLm1heF9jb2RlKzEsbi5kX2Rlc2MubWF4X2NvZGUrMSxpKzEpLG1PKG4sbi5keW5fbHRyZWUsbi5keW5fZHRyZWUpKSxJNChuKSxvJiZpUyhuKX0sTmQ9KG4sZSx0KT0+KG4ucGVuZGluZ19idWZbbi5zeW1fYnVmK24uc3ltX25leHQrK109ZSxuLnBlbmRpbmdfYnVmW24uc3ltX2J1ZituLnN5bV9uZXh0KytdPWU+Pjgsbi5wZW5kaW5nX2J1ZltuLnN5bV9idWYrbi5zeW1fbmV4dCsrXT10LGU9PT0wP24uZHluX2x0cmVlW3QqMl0rKzoobi5tYXRjaGVzKyssZS0tLG4uZHluX2x0cmVlWyhWeVt0XSt6eSsxKSoyXSsrLG4uZHluX2R0cmVlW3JTKGUpKjJdKyspLG4uc3ltX25leHQ9PT1uLnN5bV9lbmQpLE9tPShuLGUsdCxvKT0+e2xldCBhPW4mNjU1MzV8MCxyPW4+Pj4xNiY2NTUzNXwwLGk9MDtmb3IoO3QhPT0wOyl7aT10PjJlMz8yZTM6dCx0LT1pO2RvIGE9YStlW28rK118MCxyPXIrYXwwO3doaWxlKC0taSk7YSU9NjU1MjEsciU9NjU1MjF9cmV0dXJuIGF8cjw8MTZ8MH0sRDQ9bmV3IFVpbnQzMkFycmF5KCgoKT0+e2xldCBuLGU9W107Zm9yKHZhciB0PTA7dDwyNTY7dCsrKXtuPXQ7Zm9yKHZhciBvPTA7bzw4O28rKyluPW4mMT8zOTg4MjkyMzg0Xm4+Pj4xOm4+Pj4xO2VbdF09bn1yZXR1cm4gZX0pKCkpLFphPShuLGUsdCxvKT0+e2xldCBhPUQ0LHI9byt0O25ePS0xO2ZvcihsZXQgaT1vO2k8cjtpKyspbj1uPj4+OF5hWyhuXmVbaV0pJjI1NV07cmV0dXJuIG5eLTF9LHh5PXsyOiJuZWVkIGRpY3Rpb25hcnkiLDE6InN0cmVhbSBlbmQiLDA6IiIsIi0xIjoiZmlsZSBlcnJvciIsIi0yIjoic3RyZWFtIGVycm9yIiwiLTMiOiJkYXRhIGVycm9yIiwiLTQiOiJpbnN1ZmZpY2llbnQgbWVtb3J5IiwiLTUiOiJidWZmZXIgZXJyb3IiLCItNiI6ImluY29tcGF0aWJsZSB2ZXJzaW9uIn0sV249MyxPeT0yNTgsUnI9MjYyLFVpPTEsSHk9MixLeT0zLHF5PTQsQjQ9bj0+e2xldCBlLHQsbyxhPW4ud19zaXplO2U9bi5oYXNoX3NpemUsbz1lO2RvIHQ9bi5oZWFkWy0tb10sbi5oZWFkW29dPXQ+PWE/dC1hOjA7d2hpbGUoLS1lKTtlPWEsbz1lO2RvIHQ9bi5wcmV2Wy0tb10sbi5wcmV2W29dPXQ+PWE/dC1hOjA7d2hpbGUoLS1lKX0sV3k9KG4sZSx0KT0+KGU8PG4uaGFzaF9zaGlmdF50KSZuLmhhc2hfbWFzayxYcz0obixlKT0+e2xldCB0O2lmKG4ubGVnYWN5X2hhc2gpdD1uLmluc19oPVd5KG4sbi5pbnNfaCxuLndpbmRvd1tlK1duLTFdKTtlbHNle2xldCBhPW4ud2luZG93LHI9YVtlXXxhW2UrMV08PDh8YVtlKzJdPDwxNnxhW2UrM108PDI0O3Q9bi5pbnNfaD1NYXRoLmltdWwociw2NjUyMSkrNjY1MjE+Pj4xNiZuLmhhc2hfbWFza31sZXQgbz1uLnByZXZbZSZuLndfbWFza109bi5oZWFkW3RdO3JldHVybiBuLmhlYWRbdF09ZSxvfSxqeT1uPT57bGV0IGU9bi5zdGF0ZSx0PWUucGVuZGluZzt0Pm4uYXZhaWxfb3V0JiYodD1uLmF2YWlsX291dCksdCE9PTAmJihuLm91dHB1dC5zZXQoZS5wZW5kaW5nX2J1Zi5zdWJhcnJheShlLnBlbmRpbmdfb3V0LGUucGVuZGluZ19vdXQrdCksbi5uZXh0X291dCksbi5uZXh0X291dCs9dCxlLnBlbmRpbmdfb3V0Kz10LG4udG90YWxfb3V0Kz10LG4uYXZhaWxfb3V0LT10LGUucGVuZGluZy09dCxlLnBlbmRpbmc9PT0wJiYoZS5wZW5kaW5nX291dD0wKSl9LE5jPShuLGUpPT57RjQobixuLmJsb2NrX3N0YXJ0Pj0wP24uYmxvY2tfc3RhcnQ6LTEsbi5zdHJzdGFydC1uLmJsb2NrX3N0YXJ0LGUpLG4uYmxvY2tfc3RhcnQ9bi5zdHJzdGFydCxqeShuLnN0cm0pfSxVeT0obixlLHQsbyk9PntsZXQgYT1uLmF2YWlsX2luO3JldHVybiBhPm8mJihhPW8pLGE9PT0wPzA6KG4uYXZhaWxfaW4tPWEsZS5zZXQobi5pbnB1dC5zdWJhcnJheShuLm5leHRfaW4sbi5uZXh0X2luK2EpLHQpLG4uc3RhdGUud3JhcD09PTE/bi5hZGxlcj1PbShuLmFkbGVyLGUsYSx0KTpuLnN0YXRlLndyYXA9PT0yJiYobi5hZGxlcj1aYShuLmFkbGVyLGUsYSx0KSksbi5uZXh0X2luKz1hLG4udG90YWxfaW4rPWEsYSl9LGNTPShuLGUpPT57bGV0IHQ9bi5tYXhfY2hhaW5fbGVuZ3RoLG89bi5zdHJzdGFydCxhLHIsaT1uLnByZXZfbGVuZ3RoLGY9bi5uaWNlX21hdGNoLGQ9bi5zdHJzdGFydD5uLndfc2l6ZS1Scj9uLnN0cnN0YXJ0LShuLndfc2l6ZS1Scik6MCxjPW4ud2luZG93LHU9bi53X21hc2ssbD1uLnByZXYsaD1uLnN0cnN0YXJ0K095LG09Y1tvK2ktMV0sYj1jW28raV07bi5wcmV2X2xlbmd0aD49bi5nb29kX21hdGNoJiYodD4+PTIpLGY+bi5sb29rYWhlYWQmJihmPW4ubG9va2FoZWFkKTtkbyBpZihhPWUsIShjW2EraV0hPT1ifHxjW2EraS0xXSE9PW18fGNbYV0hPT1jW29dfHxjWysrYV0hPT1jW28rMV0pKXtvKz0yLGErKztkbzt3aGlsZShjWysrb109PT1jWysrYV0mJmNbKytvXT09PWNbKythXSYmY1srK29dPT09Y1srK2FdJiZjWysrb109PT1jWysrYV0mJmNbKytvXT09PWNbKythXSYmY1srK29dPT09Y1srK2FdJiZjWysrb109PT1jWysrYV0mJmNbKytvXT09PWNbKythXSYmbzxoKTtpZihyPU95LShoLW8pLG89aC1PeSxyPmkpe2lmKG4ubWF0Y2hfc3RhcnQ9ZSxpPXIscj49ZilicmVhazttPWNbbytpLTFdLGI9Y1tvK2ldfX13aGlsZSgoZT1sW2UmdV0pPmQmJi0tdCE9PTApO3JldHVybiBpPD1uLmxvb2thaGVhZD9pOm4ubG9va2FoZWFkfSxzUz1uPT57bGV0IGU9bi53X3NpemUsdCxvLGE7ZG97aWYobz1uLndpbmRvd19zaXplLW4ubG9va2FoZWFkLW4uc3Ryc3RhcnQsbi5zdHJzdGFydD49ZSsoZS1ScikmJihuLndpbmRvdy5zZXQobi53aW5kb3cuc3ViYXJyYXkoZSxlK2UtbyksMCksbi5tYXRjaF9zdGFydC09ZSxuLnN0cnN0YXJ0LT1lLG4uYmxvY2tfc3RhcnQtPWUsbi5pbnNlcnQ+bi5zdHJzdGFydCYmKG4uaW5zZXJ0PW4uc3Ryc3RhcnQpLEI0KG4pLG8rPWUpLG4uc3RybS5hdmFpbF9pbj09PTApYnJlYWs7aWYodD1VeShuLnN0cm0sbi53aW5kb3csbi5zdHJzdGFydCtuLmxvb2thaGVhZCxvKSxuLmxvb2thaGVhZCs9dCwhbi5sZWdhY3lfaGFzaCl7aWYobi5sb29rYWhlYWQrbi5pbnNlcnQ+V24pZm9yKGE9bi5zdHJzdGFydC1uLmluc2VydDtuLmluc2VydCYmKFhzKG4sYSksYSsrLG4uaW5zZXJ0LS0sIShuLmxvb2thaGVhZCtuLmluc2VydDw9V24pKTspO31lbHNlIGlmKG4ubG9va2FoZWFkK24uaW5zZXJ0Pj1Xbilmb3IoYT1uLnN0cnN0YXJ0LW4uaW5zZXJ0LG4uaW5zX2g9bi53aW5kb3dbYV0sbi5pbnNfaD1XeShuLG4uaW5zX2gsbi53aW5kb3dbYSsxXSk7bi5pbnNlcnQmJihYcyhuLGEpLGErKyxuLmluc2VydC0tLCEobi5sb29rYWhlYWQrbi5pbnNlcnQ8V24pKTspO313aGlsZShuLmxvb2thaGVhZDxSciYmbi5zdHJtLmF2YWlsX2luIT09MCl9LGo0PShuLGUpPT57bGV0IHQ9bi5wZW5kaW5nX2J1Zl9zaXplLTU+bi53X3NpemU/bi53X3NpemU6bi5wZW5kaW5nX2J1Zl9zaXplLTUsbyxhLHIsaT0wLGY9bi5zdHJtLmF2YWlsX2luO2Rve2lmKG89NjU1MzUscj1uLmJpX3ZhbGlkKzQyPj4zLG4uc3RybS5hdmFpbF9vdXQ8cnx8KHI9bi5zdHJtLmF2YWlsX291dC1yLGE9bi5zdHJzdGFydC1uLmJsb2NrX3N0YXJ0LG8+YStuLnN0cm0uYXZhaWxfaW4mJihvPWErbi5zdHJtLmF2YWlsX2luKSxvPnImJihvPXIpLG88dCYmKG89PT0wJiZlIT09NHx8ZT09PTB8fG8hPT1hK24uc3RybS5hdmFpbF9pbikpKWJyZWFrO2k9KyhlPT09NCYmbz09PWErbi5zdHJtLmF2YWlsX2luKSxCeShuLDAsMCxpKSxuLnBlbmRpbmdfYnVmW24ucGVuZGluZy00XT1vLG4ucGVuZGluZ19idWZbbi5wZW5kaW5nLTNdPW8+Pjgsbi5wZW5kaW5nX2J1ZltuLnBlbmRpbmctMl09fm8sbi5wZW5kaW5nX2J1ZltuLnBlbmRpbmctMV09fm8+Pjgsankobi5zdHJtKSxhJiYoYT5vJiYoYT1vKSxuLnN0cm0ub3V0cHV0LnNldChuLndpbmRvdy5zdWJhcnJheShuLmJsb2NrX3N0YXJ0LG4uYmxvY2tfc3RhcnQrYSksbi5zdHJtLm5leHRfb3V0KSxuLnN0cm0ubmV4dF9vdXQrPWEsbi5zdHJtLmF2YWlsX291dC09YSxuLnN0cm0udG90YWxfb3V0Kz1hLG4uYmxvY2tfc3RhcnQrPWEsby09YSksbyYmKFV5KG4uc3RybSxuLnN0cm0ub3V0cHV0LG4uc3RybS5uZXh0X291dCxvKSxuLnN0cm0ubmV4dF9vdXQrPW8sbi5zdHJtLmF2YWlsX291dC09byxuLnN0cm0udG90YWxfb3V0Kz1vKX13aGlsZShpPT09MCk7cmV0dXJuIGYtPW4uc3RybS5hdmFpbF9pbixmJiYoZj49bi53X3NpemU/KG4ubWF0Y2hlcz0yLG4ud2luZG93LnNldChuLnN0cm0uaW5wdXQuc3ViYXJyYXkobi5zdHJtLm5leHRfaW4tbi53X3NpemUsbi5zdHJtLm5leHRfaW4pLDApLG4uc3Ryc3RhcnQ9bi53X3NpemUsbi5pbnNlcnQ9bi5zdHJzdGFydCk6KG4ud2luZG93X3NpemUtbi5zdHJzdGFydDw9ZiYmKG4uc3Ryc3RhcnQtPW4ud19zaXplLG4ud2luZG93LnNldChuLndpbmRvdy5zdWJhcnJheShuLndfc2l6ZSxuLndfc2l6ZStuLnN0cnN0YXJ0KSwwKSxuLm1hdGNoZXM8MiYmbi5tYXRjaGVzKyssbi5pbnNlcnQ+bi5zdHJzdGFydCYmKG4uaW5zZXJ0PW4uc3Ryc3RhcnQpKSxuLndpbmRvdy5zZXQobi5zdHJtLmlucHV0LnN1YmFycmF5KG4uc3RybS5uZXh0X2luLWYsbi5zdHJtLm5leHRfaW4pLG4uc3Ryc3RhcnQpLG4uc3Ryc3RhcnQrPWYsbi5pbnNlcnQrPWY+bi53X3NpemUtbi5pbnNlcnQ/bi53X3NpemUtbi5pbnNlcnQ6Ziksbi5ibG9ja19zdGFydD1uLnN0cnN0YXJ0KSxuLmhpZ2hfd2F0ZXI8bi5zdHJzdGFydCYmKG4uaGlnaF93YXRlcj1uLnN0cnN0YXJ0KSxpP3F5OmUhPT0wJiZlIT09NCYmbi5zdHJtLmF2YWlsX2luPT09MCYmbi5zdHJzdGFydD09PW4uYmxvY2tfc3RhcnQ/SHk6KHI9bi53aW5kb3dfc2l6ZS1uLnN0cnN0YXJ0LG4uc3RybS5hdmFpbF9pbj5yJiZuLmJsb2NrX3N0YXJ0Pj1uLndfc2l6ZSYmKG4uYmxvY2tfc3RhcnQtPW4ud19zaXplLG4uc3Ryc3RhcnQtPW4ud19zaXplLG4ud2luZG93LnNldChuLndpbmRvdy5zdWJhcnJheShuLndfc2l6ZSxuLndfc2l6ZStuLnN0cnN0YXJ0KSwwKSxuLm1hdGNoZXM8MiYmbi5tYXRjaGVzKysscis9bi53X3NpemUsbi5pbnNlcnQ+bi5zdHJzdGFydCYmKG4uaW5zZXJ0PW4uc3Ryc3RhcnQpKSxyPm4uc3RybS5hdmFpbF9pbiYmKHI9bi5zdHJtLmF2YWlsX2luKSxyJiYoVXkobi5zdHJtLG4ud2luZG93LG4uc3Ryc3RhcnQsciksbi5zdHJzdGFydCs9cixuLmluc2VydCs9cj5uLndfc2l6ZS1uLmluc2VydD9uLndfc2l6ZS1uLmluc2VydDpyKSxuLmhpZ2hfd2F0ZXI8bi5zdHJzdGFydCYmKG4uaGlnaF93YXRlcj1uLnN0cnN0YXJ0KSxyPW4uYmlfdmFsaWQrNDI+PjMscj1uLnBlbmRpbmdfYnVmX3NpemUtcj42NTUzNT82NTUzNTpuLnBlbmRpbmdfYnVmX3NpemUtcix0PXI+bi53X3NpemU/bi53X3NpemU6cixhPW4uc3Ryc3RhcnQtbi5ibG9ja19zdGFydCwoYT49dHx8KGF8fGU9PT00KSYmZSE9PTAmJm4uc3RybS5hdmFpbF9pbj09PTAmJmE8PXIpJiYobz1hPnI/cjphLGk9KyhlPT09NCYmbi5zdHJtLmF2YWlsX2luPT09MCYmbz09PWEpLEJ5KG4sbi5ibG9ja19zdGFydCxvLGkpLG4uYmxvY2tfc3RhcnQrPW8sankobi5zdHJtKSksaT9LeTpVaSl9LFN5PShuLGUpPT57bGV0IHQsbztmb3IoOzspe2lmKG4ubG9va2FoZWFkPFJyKXtpZihzUyhuKSxuLmxvb2thaGVhZDxSciYmZT09PTApcmV0dXJuIFVpO2lmKG4ubG9va2FoZWFkPT09MClicmVha31pZih0PTAsbi5sb29rYWhlYWQ+PVduJiYodD1YcyhuLG4uc3Ryc3RhcnQpKSx0IT09MCYmbi5zdHJzdGFydC10PD1uLndfc2l6ZS1SciYmKG4ubWF0Y2hfbGVuZ3RoPWNTKG4sdCkpLG4ubWF0Y2hfbGVuZ3RoPj1XbilpZihvPU5kKG4sbi5zdHJzdGFydC1uLm1hdGNoX3N0YXJ0LG4ubWF0Y2hfbGVuZ3RoLVduKSxuLmxvb2thaGVhZC09bi5tYXRjaF9sZW5ndGgsbi5tYXRjaF9sZW5ndGg8PW4ubWF4X2xhenlfbWF0Y2gmJm4ubG9va2FoZWFkPj1Xbil7bi5tYXRjaF9sZW5ndGgtLTtkbyBuLnN0cnN0YXJ0KyssdD1YcyhuLG4uc3Ryc3RhcnQpO3doaWxlKC0tbi5tYXRjaF9sZW5ndGghPT0wKTtuLnN0cnN0YXJ0Kyt9ZWxzZSBuLnN0cnN0YXJ0Kz1uLm1hdGNoX2xlbmd0aCxuLm1hdGNoX2xlbmd0aD0wLG4ubGVnYWN5X2hhc2gmJihuLmluc19oPW4ud2luZG93W24uc3Ryc3RhcnRdLG4uaW5zX2g9V3kobixuLmluc19oLG4ud2luZG93W24uc3Ryc3RhcnQrMV0pKTtlbHNlIG89TmQobiwwLG4ud2luZG93W24uc3Ryc3RhcnRdKSxuLmxvb2thaGVhZC0tLG4uc3Ryc3RhcnQrKztpZihvJiYoTmMobiwhMSksbi5zdHJtLmF2YWlsX291dD09PTApKXJldHVybiBVaX1yZXR1cm4gbi5pbnNlcnQ9bi5zdHJzdGFydDxXbi0xP24uc3Ryc3RhcnQ6V24tMSxlPT09ND8oTmMobiwhMCksbi5zdHJtLmF2YWlsX291dD09PTA/S3k6cXkpOm4uc3ltX25leHQmJihOYyhuLCExKSxuLnN0cm0uYXZhaWxfb3V0PT09MCk/VWk6SHl9LFdzPShuLGUpPT57bGV0IHQsbyxhO2Zvcig7Oyl7aWYobi5sb29rYWhlYWQ8UnIpe2lmKHNTKG4pLG4ubG9va2FoZWFkPFJyJiZlPT09MClyZXR1cm4gVWk7aWYobi5sb29rYWhlYWQ9PT0wKWJyZWFrfWlmKHQ9MCxuLmxvb2thaGVhZD49V24mJih0PVhzKG4sbi5zdHJzdGFydCkpLG4ucHJldl9sZW5ndGg9bi5tYXRjaF9sZW5ndGgsbi5wcmV2X21hdGNoPW4ubWF0Y2hfc3RhcnQsbi5tYXRjaF9sZW5ndGg9V24tMSx0IT09MCYmbi5wcmV2X2xlbmd0aDxuLm1heF9sYXp5X21hdGNoJiZuLnN0cnN0YXJ0LXQ8PW4ud19zaXplLVJyJiYobi5tYXRjaF9sZW5ndGg9Y1Mobix0KSxuLm1hdGNoX2xlbmd0aDw9NSYmKG4uc3RyYXRlZ3k9PT0xfHxuLm1hdGNoX2xlbmd0aD09PVduJiZuLnN0cnN0YXJ0LW4ubWF0Y2hfc3RhcnQ+NDA5NikmJihuLm1hdGNoX2xlbmd0aD1Xbi0xKSksbi5wcmV2X2xlbmd0aD49V24mJm4ubWF0Y2hfbGVuZ3RoPD1uLnByZXZfbGVuZ3RoKXthPW4uc3Ryc3RhcnQrbi5sb29rYWhlYWQtV24sbz1OZChuLG4uc3Ryc3RhcnQtMS1uLnByZXZfbWF0Y2gsbi5wcmV2X2xlbmd0aC1Xbiksbi5sb29rYWhlYWQtPW4ucHJldl9sZW5ndGgtMSxuLnByZXZfbGVuZ3RoLT0yO2RvKytuLnN0cnN0YXJ0PD1hJiYodD1YcyhuLG4uc3Ryc3RhcnQpKTt3aGlsZSgtLW4ucHJldl9sZW5ndGghPT0wKTtpZihuLm1hdGNoX2F2YWlsYWJsZT0wLG4ubWF0Y2hfbGVuZ3RoPVduLTEsbi5zdHJzdGFydCsrLG8mJihOYyhuLCExKSxuLnN0cm0uYXZhaWxfb3V0PT09MCkpcmV0dXJuIFVpfWVsc2UgaWYobi5tYXRjaF9hdmFpbGFibGUpe2lmKG89TmQobiwwLG4ud2luZG93W24uc3Ryc3RhcnQtMV0pLG8mJk5jKG4sITEpLG4uc3Ryc3RhcnQrKyxuLmxvb2thaGVhZC0tLG4uc3RybS5hdmFpbF9vdXQ9PT0wKXJldHVybiBVaX1lbHNlIG4ubWF0Y2hfYXZhaWxhYmxlPTEsbi5zdHJzdGFydCsrLG4ubG9va2FoZWFkLS19cmV0dXJuIG4ubWF0Y2hfYXZhaWxhYmxlJiYobz1OZChuLDAsbi53aW5kb3dbbi5zdHJzdGFydC0xXSksbi5tYXRjaF9hdmFpbGFibGU9MCksbi5pbnNlcnQ9bi5zdHJzdGFydDxXbi0xP24uc3Ryc3RhcnQ6V24tMSxlPT09ND8oTmMobiwhMCksbi5zdHJtLmF2YWlsX291dD09PTA/S3k6cXkpOm4uc3ltX25leHQmJihOYyhuLCExKSxuLnN0cm0uYXZhaWxfb3V0PT09MCk/VWk6SHl9LEVyPWNsYXNze2NvbnN0cnVjdG9yKG4sZSx0LG8sYSl7dGhpcy5nb29kX2xlbmd0aD1uLHRoaXMubWF4X2xhenk9ZSx0aGlzLm5pY2VfbGVuZ3RoPXQsdGhpcy5tYXhfY2hhaW49byx0aGlzLmZ1bmM9YX19O25ldyBFcigwLDAsMCwwLGo0KSxuZXcgRXIoNCw0LDgsNCxTeSksbmV3IEVyKDQsNSwxNiw4LFN5KSxuZXcgRXIoNCw2LDMyLDMyLFN5KSxuZXcgRXIoNCw0LDE2LDE2LFdzKSxuZXcgRXIoOCwxNiwzMiwzMixXcyksbmV3IEVyKDgsMTYsMTI4LDEyOCxXcyksbmV3IEVyKDgsMzIsMTI4LDI1NixXcyksbmV3IEVyKDMyLDEyOCwyNTgsMTAyNCxXcyksbmV3IEVyKDMyLDI1OCwyNTgsNDA5NixXcyk7d209MTYyMDksVTQ9MTYxOTE7VG09MTUsZ089ODUyLF9PPTU5Mix5Tz0wLEN5PTEsQU89Mix6ND1uZXcgVWludDE2QXJyYXkoWzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIyNywyNTgsMCwwXSksRzQ9bmV3IFVpbnQ4QXJyYXkoWzE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE3LDE3LDE3LDE3LDE4LDE4LDE4LDE4LDE5LDE5LDE5LDE5LDIwLDIwLDIwLDIwLDIxLDIxLDIxLDIxLDE2LDE5OSw3NV0pLFY0PW5ldyBVaW50MTZBcnJheShbMSwyLDMsNCw1LDcsOSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1NywzODUsNTEzLDc2OSwxMDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEyMjg5LDE2Mzg1LDI0NTc3LDAsMF0pLEg0PW5ldyBVaW50OEFycmF5KFsxNiwxNiwxNiwxNiwxNywxNywxOCwxOCwxOSwxOSwyMCwyMCwyMSwyMSwyMiwyMiwyMywyMywyNCwyNCwyNSwyNSwyNiwyNiwyNywyNywyOCwyOCwyOSwyOSw2NCw2NF0pLElkPShuLGUsdCxvLGEscixpLGYpPT57bGV0IGQ9Zi5iaXRzLGM9MCx1PTAsbD0wLGg9MCxtPTAsYj0wLHA9MCx5PTAsRT0wLGc9MCxBLFQsUixTLE0sST1udWxsLE4sUD1uZXcgVWludDE2QXJyYXkoMTYpLEY9bmV3IFVpbnQxNkFycmF5KDE2KSx3PW51bGwseCxDLHY7Zm9yKGM9MDtjPD1UbTtjKyspUFtjXT0wO2Zvcih1PTA7dTxvO3UrKylQW2VbdCt1XV0rKztmb3IobT1kLGg9VG07aD49MSYmUFtoXT09PTA7aC0tKTtpZihtPmgmJihtPWgpLGg9PT0wKXJldHVybiBhW3IrK109MjA5NzE1MjAsYVtyKytdPTIwOTcxNTIwLGYuYml0cz0xLDA7Zm9yKGw9MTtsPGgmJlBbbF09PT0wO2wrKyk7Zm9yKG08bCYmKG09bCkseT0xLGM9MTtjPD1UbTtjKyspaWYoeTw8PTEseS09UFtjXSx5PDApcmV0dXJuLTE7aWYoeT4wJiYobj09PXlPfHxoIT09MSkpcmV0dXJuLTE7Zm9yKEZbMV09MCxjPTE7YzxUbTtjKyspRltjKzFdPUZbY10rUFtjXTtmb3IodT0wO3U8bzt1KyspZVt0K3VdIT09MCYmKGlbRltlW3QrdV1dKytdPXUpO2lmKG49PT15Tz8oST13PWksTj0yMCk6bj09PUN5PyhJPXo0LHc9RzQsTj0yNTcpOihJPVY0LHc9SDQsTj0wKSxnPTAsdT0wLGM9bCxNPXIsYj1tLHA9MCxSPS0xLEU9MTw8bSxTPUUtMSxuPT09Q3kmJkU+Z098fG49PT1BTyYmRT5fTylyZXR1cm4gMTtmb3IoOzspe3g9Yy1wLGlbdV0rMTxOPyhDPTAsdj1pW3VdKTppW3VdPj1OPyhDPXdbaVt1XS1OXSx2PUlbaVt1XS1OXSk6KEM9OTYsdj0wKSxBPTE8PGMtcCxUPTE8PGIsbD1UO2RvIFQtPUEsYVtNKyhnPj5wKStUXT14PDwyNHxDPDwxNnx2fDA7d2hpbGUoVCE9PTApO2ZvcihBPTE8PGMtMTtnJkE7KUE+Pj0xO2lmKEE9PT0wP2c9MDooZyY9QS0xLGcrPUEpLHUrKywtLVBbY109PT0wKXtpZihjPT09aClicmVhaztjPWVbdCtpW3VdXX1pZihjPm0mJihnJlMpIT09Uil7Zm9yKHA9PT0wJiYocD1tKSxNKz1sLGI9Yy1wLHk9MTw8YjtiK3A8aCYmKHktPVBbYitwXSwhKHk8PTApKTspYisrLHk8PD0xO2lmKEUrPTE8PGIsbj09PUN5JiZFPmdPfHxuPT09QU8mJkU+X08pcmV0dXJuIDE7Uj1nJlMsYVtSXT1tPDwyNHxiPDwxNnxNLXJ8MH19cmV0dXJuIGchPT0wJiYoYVtNK2ddPWMtcDw8MjR8NDE5NDMwNCksZi5iaXRzPW0sMH0sSzQ9MCxmUz0xLGRTPTIsQ209MTYxODAsd089MTYxODEsVE89MTYxODIsRU89MTYxODMsUk89MTYxODQseE89MTYxODUsT089MTYxODYsU089MTYxODcsQ089MTYxODgsTU89MTYxODksU209MTYxOTAsUXI9MTYxOTEsTXk9MTYxOTIsTk89MTYxOTMsTnk9MTYxOTQsSU89MTYxOTUsUE89MTYxOTYsa089MTYxOTcsdk89MTYxOTgsRW09MTYxOTksUm09MTYyMDAsRk89MTYyMDEsRE89MTYyMDIsQk89MTYyMDMsak89MTYyMDQsVU89MTYyMDUsSXk9MTYyMDYsTE89MTYyMDcsek89MTYyMDgsT249MTYyMDksTHk9MTYyMTAsdVM9MTYyMTEscTQ9ODUyLFc0PTU5MixHTz1uPT4obj4+PjI0JjI1NSkrKG4+Pj44JjY1MjgwKSsoKG4mNjUyODApPDw4KSsoKG4mMjU1KTw8MjQpLFg0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zdHJtPW51bGwsdGhpcy5tb2RlPTAsdGhpcy5sYXN0PSExLHRoaXMud3JhcD0wLHRoaXMuaGF2ZWRpY3Q9ITEsdGhpcy5mbGFncz0wLHRoaXMuZG1heD0wLHRoaXMuY2hlY2s9MCx0aGlzLnRvdGFsPTAsdGhpcy5oZWFkPW51bGwsdGhpcy53Yml0cz0wLHRoaXMud3NpemU9MCx0aGlzLndoYXZlPTAsdGhpcy53bmV4dD0wLHRoaXMud2luZG93PW51bGwsdGhpcy5ob2xkPTAsdGhpcy5iaXRzPTAsdGhpcy5sZW5ndGg9MCx0aGlzLm9mZnNldD0wLHRoaXMuZXh0cmE9MCx0aGlzLmxlbmNvZGU9bnVsbCx0aGlzLmRpc3Rjb2RlPW51bGwsdGhpcy5sZW5iaXRzPTAsdGhpcy5kaXN0Yml0cz0wLHRoaXMubmNvZGU9MCx0aGlzLm5sZW49MCx0aGlzLm5kaXN0PTAsdGhpcy5oYXZlPTAsdGhpcy5uZXh0PW51bGwsdGhpcy5sZW5zPW5ldyBVaW50MTZBcnJheSgzMjApLHRoaXMud29yaz1uZXcgVWludDE2QXJyYXkoMjg4KSx0aGlzLmxlbmR5bj1udWxsLHRoaXMuZGlzdGR5bj1udWxsLHRoaXMuc2FuZT0wLHRoaXMuYmFjaz0wLHRoaXMud2FzPTB9fSxKcz1uPT57aWYoIW4pcmV0dXJuIDE7bGV0IGU9bi5zdGF0ZTtyZXR1cm4rKCFlfHxlLnN0cm0hPT1ufHxlLm1vZGU8Q218fGUubW9kZT51Uyl9LFk0PW49PntpZihKcyhuKSlyZXR1cm4tMjtsZXQgZT1uLnN0YXRlO3JldHVybiBuLnRvdGFsX2luPW4udG90YWxfb3V0PWUudG90YWw9MCxuLm1zZz0iIixlLndyYXAmJihuLmFkbGVyPWUud3JhcCYxKSxlLm1vZGU9Q20sZS5sYXN0PTAsZS5oYXZlZGljdD0wLGUuZmxhZ3M9LTEsZS5kbWF4PTMyNzY4LGUuaGVhZD1udWxsLGUuaG9sZD0wLGUuYml0cz0wLGUubGVuY29kZT1lLmxlbmR5bj1uZXcgSW50MzJBcnJheShxNCksZS5kaXN0Y29kZT1lLmRpc3RkeW49bmV3IEludDMyQXJyYXkoVzQpLGUuc2FuZT0xLGUuYmFjaz0tMSwwfSxsUz1uPT57aWYoSnMobikpcmV0dXJuLTI7bGV0IGU9bi5zdGF0ZTtyZXR1cm4gZS53c2l6ZT0wLGUud2hhdmU9MCxlLnduZXh0PTAsWTQobil9LEo0PShuLGUpPT57bGV0IHQ7aWYoSnMobikpcmV0dXJuLTI7bGV0IG89bi5zdGF0ZTtyZXR1cm4gZTwwPyh0PTAsZT0tZSk6KHQ9KGU+PjQpKzUsZTw0OCYmKGUmPTE1KSksZSYmKGU8OHx8ZT4xNSk/LTI6KG8ud2luZG93IT09bnVsbCYmby53Yml0cyE9PWUmJihvLndpbmRvdz1udWxsKSxvLndyYXA9dCxvLndiaXRzPWUsbFMobikpfSxaND0obixlKT0+e2lmKCFuKXJldHVybi0yO2xldCB0PW5ldyBYNDtuLnN0YXRlPXQsdC5zdHJtPW4sdC53aW5kb3c9bnVsbCx0Lm1vZGU9Q207bGV0IG89SjQobixlKTtyZXR1cm4gbyE9PTAmJihuLnN0YXRlPW51bGwpLG99LFZPPSEwLFE0PW49PntpZihWTyl7UHk9bmV3IEludDMyQXJyYXkoNTEyKSxreT1uZXcgSW50MzJBcnJheSgzMik7bGV0IGU9MDtmb3IoO2U8MTQ0OyluLmxlbnNbZSsrXT04O2Zvcig7ZTwyNTY7KW4ubGVuc1tlKytdPTk7Zm9yKDtlPDI4MDspbi5sZW5zW2UrK109Nztmb3IoO2U8Mjg4OyluLmxlbnNbZSsrXT04O2ZvcihJZChmUyxuLmxlbnMsMCwyODgsUHksMCxuLndvcmsse2JpdHM6OX0pLGU9MDtlPDMyOyluLmxlbnNbZSsrXT01O0lkKGRTLG4ubGVucywwLDMyLGt5LDAsbi53b3JrLHtiaXRzOjV9KSxWTz0hMX1uLmxlbmNvZGU9UHksbi5sZW5iaXRzPTksbi5kaXN0Y29kZT1reSxuLmRpc3RiaXRzPTV9LGhTPShuLGUsdCxvKT0+e2xldCBhLHI9bi5zdGF0ZTtyZXR1cm4gci53aW5kb3c9PT1udWxsJiYoci53aW5kb3c9bmV3IFVpbnQ4QXJyYXkoMTw8ci53Yml0cykpLHIud3NpemU9PT0wJiYoci53c2l6ZT0xPDxyLndiaXRzLHIud25leHQ9MCxyLndoYXZlPTApLG8+PXIud3NpemU/KHIud2luZG93LnNldChlLnN1YmFycmF5KHQtci53c2l6ZSx0KSwwKSxyLnduZXh0PTAsci53aGF2ZT1yLndzaXplKTooYT1yLndzaXplLXIud25leHQsYT5vJiYoYT1vKSxyLndpbmRvdy5zZXQoZS5zdWJhcnJheSh0LW8sdC1vK2EpLHIud25leHQpLG8tPWEsbz8oci53aW5kb3cuc2V0KGUuc3ViYXJyYXkodC1vLHQpLDApLHIud25leHQ9byxyLndoYXZlPXIud3NpemUpOihyLnduZXh0Kz1hLHIud25leHQ9PT1yLndzaXplJiYoci53bmV4dD0wKSxyLndoYXZlPHIud3NpemUmJihyLndoYXZlKz1hKSkpLDB9LHZ5PShuLGUpPT57bGV0IHQsbyxhLHIsaSxmLGQsYyx1LGwsaCxtLGIscCx5PTAsRSxnLEEsVCxSLFMsTSxJLE49bmV3IFVpbnQ4QXJyYXkoNCksUCxGLHc9bmV3IFVpbnQ4QXJyYXkoWzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdKTtpZihKcyhuKXx8IW4ub3V0cHV0fHwhbi5pbnB1dCYmbi5hdmFpbF9pbiE9PTApcmV0dXJuLTI7dD1uLnN0YXRlLHQubW9kZT09PVFyJiYodC5tb2RlPU15KSxpPW4ubmV4dF9vdXQsYT1uLm91dHB1dCxkPW4uYXZhaWxfb3V0LHI9bi5uZXh0X2luLG89bi5pbnB1dCxmPW4uYXZhaWxfaW4sYz10LmhvbGQsdT10LmJpdHMsbD1mLGg9ZCxJPTA7ZTpmb3IoOzspc3dpdGNoKHQubW9kZSl7Y2FzZSBDbTppZih0LndyYXA9PT0wKXt0Lm1vZGU9TXk7YnJlYWt9Zm9yKDt1PDE2Oyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9aWYodC53cmFwJjImJmM9PT0zNTYxNSl7dC53Yml0cz09PTAmJih0LndiaXRzPTE1KSx0LmNoZWNrPTAsTlswXT1jJjI1NSxOWzFdPWM+Pj44JjI1NSx0LmNoZWNrPVphKHQuY2hlY2ssTiwyLDApLGM9MCx1PTAsdC5tb2RlPXdPO2JyZWFrfWlmKHQuaGVhZCYmKHQuaGVhZC5kb25lPSExKSwhKHQud3JhcCYxKXx8KCgoYyYyNTUpPDw4KSsoYz4+OCkpJTMxKXtuLm1zZz0iaW5jb3JyZWN0IGhlYWRlciBjaGVjayIsdC5tb2RlPU9uO2JyZWFrfWlmKChjJjE1KSE9OCl7bi5tc2c9InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIix0Lm1vZGU9T247YnJlYWt9aWYoYz4+Pj00LHUtPTQsTT0oYyYxNSkrOCx0LndiaXRzPT09MCYmKHQud2JpdHM9TSksTT4xNXx8TT50LndiaXRzKXtuLm1zZz0iaW52YWxpZCB3aW5kb3cgc2l6ZSIsdC5tb2RlPU9uO2JyZWFrfXQuZG1heD0xPDx0LndiaXRzLHQuZmxhZ3M9MCxuLmFkbGVyPXQuY2hlY2s9MSx0Lm1vZGU9YyY1MTI/TU86UXIsYz0wLHU9MDticmVhaztjYXNlIHdPOmZvcig7dTwxNjspe2lmKGY9PT0wKWJyZWFrIGU7Zi0tLGMrPW9bcisrXTw8dSx1Kz04fWlmKHQuZmxhZ3M9YywodC5mbGFncyYyNTUpIT04KXtuLm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLHQubW9kZT1PbjticmVha31pZih0LmZsYWdzJjU3MzQ0KXtuLm1zZz0idW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0Iix0Lm1vZGU9T247YnJlYWt9dC5oZWFkJiYodC5oZWFkLnRleHQ9Yz4+OCYxKSx0LmZsYWdzJjUxMiYmdC53cmFwJjQmJihOWzBdPWMmMjU1LE5bMV09Yz4+PjgmMjU1LHQuY2hlY2s9WmEodC5jaGVjayxOLDIsMCkpLGM9MCx1PTAsdC5tb2RlPVRPO2Nhc2UgVE86Zm9yKDt1PDMyOyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9dC5oZWFkJiYodC5oZWFkLnRpbWU9YyksdC5mbGFncyY1MTImJnQud3JhcCY0JiYoTlswXT1jJjI1NSxOWzFdPWM+Pj44JjI1NSxOWzJdPWM+Pj4xNiYyNTUsTlszXT1jPj4+MjQmMjU1LHQuY2hlY2s9WmEodC5jaGVjayxOLDQsMCkpLGM9MCx1PTAsdC5tb2RlPUVPO2Nhc2UgRU86Zm9yKDt1PDE2Oyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9dC5oZWFkJiYodC5oZWFkLnhmbGFncz1jJjI1NSx0LmhlYWQub3M9Yz4+OCksdC5mbGFncyY1MTImJnQud3JhcCY0JiYoTlswXT1jJjI1NSxOWzFdPWM+Pj44JjI1NSx0LmNoZWNrPVphKHQuY2hlY2ssTiwyLDApKSxjPTAsdT0wLHQubW9kZT1STztjYXNlIFJPOmlmKHQuZmxhZ3MmMTAyNCl7Zm9yKDt1PDE2Oyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9dC5sZW5ndGg9Yyx0LmhlYWQmJih0LmhlYWQuZXh0cmFfbGVuPWMpLHQuZmxhZ3MmNTEyJiZ0LndyYXAmNCYmKE5bMF09YyYyNTUsTlsxXT1jPj4+OCYyNTUsdC5jaGVjaz1aYSh0LmNoZWNrLE4sMiwwKSksYz0wLHU9MH1lbHNlIHQuaGVhZCYmKHQuaGVhZC5leHRyYT1udWxsKTt0Lm1vZGU9eE87Y2FzZSB4TzppZih0LmZsYWdzJjEwMjQmJihtPXQubGVuZ3RoLG0+ZiYmKG09ZiksbSYmKHQuaGVhZCYmKE09dC5oZWFkLmV4dHJhX2xlbi10Lmxlbmd0aCx0LmhlYWQuZXh0cmF8fCh0LmhlYWQuZXh0cmE9bmV3IFVpbnQ4QXJyYXkodC5oZWFkLmV4dHJhX2xlbikpLHQuaGVhZC5leHRyYS5zZXQoby5zdWJhcnJheShyLHIrbSksTSkpLHQuZmxhZ3MmNTEyJiZ0LndyYXAmNCYmKHQuY2hlY2s9WmEodC5jaGVjayxvLG0scikpLGYtPW0scis9bSx0Lmxlbmd0aC09bSksdC5sZW5ndGgpKWJyZWFrIGU7dC5sZW5ndGg9MCx0Lm1vZGU9T087Y2FzZSBPTzppZih0LmZsYWdzJjIwNDgpe2lmKGY9PT0wKWJyZWFrIGU7bT0wO2RvIE09b1tyK20rK10sdC5oZWFkJiZNJiZ0Lmxlbmd0aDw2NTUzNiYmKHQuaGVhZC5uYW1lKz1TdHJpbmcuZnJvbUNoYXJDb2RlKE0pKTt3aGlsZShNJiZtPGYpO2lmKHQuZmxhZ3MmNTEyJiZ0LndyYXAmNCYmKHQuY2hlY2s9WmEodC5jaGVjayxvLG0scikpLGYtPW0scis9bSxNKWJyZWFrIGV9ZWxzZSB0LmhlYWQmJih0LmhlYWQubmFtZT1udWxsKTt0Lmxlbmd0aD0wLHQubW9kZT1TTztjYXNlIFNPOmlmKHQuZmxhZ3MmNDA5Nil7aWYoZj09PTApYnJlYWsgZTttPTA7ZG8gTT1vW3IrbSsrXSx0LmhlYWQmJk0mJnQubGVuZ3RoPDY1NTM2JiYodC5oZWFkLmNvbW1lbnQrPVN0cmluZy5mcm9tQ2hhckNvZGUoTSkpO3doaWxlKE0mJm08Zik7aWYodC5mbGFncyY1MTImJnQud3JhcCY0JiYodC5jaGVjaz1aYSh0LmNoZWNrLG8sbSxyKSksZi09bSxyKz1tLE0pYnJlYWsgZX1lbHNlIHQuaGVhZCYmKHQuaGVhZC5jb21tZW50PW51bGwpO3QubW9kZT1DTztjYXNlIENPOmlmKHQuZmxhZ3MmNTEyKXtmb3IoO3U8MTY7KXtpZihmPT09MClicmVhayBlO2YtLSxjKz1vW3IrK108PHUsdSs9OH1pZih0LndyYXAmNCYmYyE9PSh0LmNoZWNrJjY1NTM1KSl7bi5tc2c9ImhlYWRlciBjcmMgbWlzbWF0Y2giLHQubW9kZT1PbjticmVha31jPTAsdT0wfXQuaGVhZCYmKHQuaGVhZC5oY3JjPXQuZmxhZ3M+PjkmMSx0LmhlYWQuZG9uZT0hMCksbi5hZGxlcj10LmNoZWNrPTAsdC5tb2RlPVFyO2JyZWFrO2Nhc2UgTU86Zm9yKDt1PDMyOyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9bi5hZGxlcj10LmNoZWNrPUdPKGMpLGM9MCx1PTAsdC5tb2RlPVNtO2Nhc2UgU206aWYodC5oYXZlZGljdD09PTApcmV0dXJuIG4ubmV4dF9vdXQ9aSxuLmF2YWlsX291dD1kLG4ubmV4dF9pbj1yLG4uYXZhaWxfaW49Zix0LmhvbGQ9Yyx0LmJpdHM9dSwyO24uYWRsZXI9dC5jaGVjaz0xLHQubW9kZT1RcjtjYXNlIFFyOmlmKGU9PT01fHxlPT09NilicmVhayBlO2Nhc2UgTXk6aWYodC5sYXN0KXtjPj4+PXUmNyx1LT11JjcsdC5tb2RlPUl5O2JyZWFrfWZvcig7dTwzOyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9c3dpdGNoKHQubGFzdD1jJjEsYz4+Pj0xLC0tdSxjJjMpe2Nhc2UgMDp0Lm1vZGU9Tk87YnJlYWs7Y2FzZSAxOmlmKFE0KHQpLHQubW9kZT1FbSxlPT09Nil7Yz4+Pj0yLHUtPTI7YnJlYWsgZX1icmVhaztjYXNlIDI6dC5tb2RlPVBPO2JyZWFrO2Nhc2UgMzpuLm1zZz0iaW52YWxpZCBibG9jayB0eXBlIix0Lm1vZGU9T259Yz4+Pj0yLHUtPTI7YnJlYWs7Y2FzZSBOTzpmb3IoYz4+Pj11JjcsdS09dSY3O3U8MzI7KXtpZihmPT09MClicmVhayBlO2YtLSxjKz1vW3IrK108PHUsdSs9OH1pZigoYyY2NTUzNSkhPShjPj4+MTZeNjU1MzUpKXtuLm1zZz0iaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocyIsdC5tb2RlPU9uO2JyZWFrfWlmKHQubGVuZ3RoPWMmNjU1MzUsYz0wLHU9MCx0Lm1vZGU9TnksZT09PTYpYnJlYWsgZTtjYXNlIE55OnQubW9kZT1JTztjYXNlIElPOmlmKG09dC5sZW5ndGgsbSl7aWYobT5mJiYobT1mKSxtPmQmJihtPWQpLG09PT0wKWJyZWFrIGU7YS5zZXQoby5zdWJhcnJheShyLHIrbSksaSksZi09bSxyKz1tLGQtPW0saSs9bSx0Lmxlbmd0aC09bTticmVha310Lm1vZGU9UXI7YnJlYWs7Y2FzZSBQTzpmb3IoO3U8MTQ7KXtpZihmPT09MClicmVhayBlO2YtLSxjKz1vW3IrK108PHUsdSs9OH1pZih0Lm5sZW49KGMmMzEpKzI1NyxjPj4+PTUsdS09NSx0Lm5kaXN0PShjJjMxKSsxLGM+Pj49NSx1LT01LHQubmNvZGU9KGMmMTUpKzQsYz4+Pj00LHUtPTQsdC5ubGVuPjI4Nnx8dC5uZGlzdD4zMCl7bi5tc2c9InRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzIix0Lm1vZGU9T247YnJlYWt9dC5oYXZlPTAsdC5tb2RlPWtPO2Nhc2Uga086Zm9yKDt0LmhhdmU8dC5uY29kZTspe2Zvcig7dTwzOyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9dC5sZW5zW3dbdC5oYXZlKytdXT1jJjcsYz4+Pj0zLHUtPTN9Zm9yKDt0LmhhdmU8MTk7KXQubGVuc1t3W3QuaGF2ZSsrXV09MDtpZih0LmxlbmNvZGU9dC5sZW5keW4sdC5sZW5iaXRzPTcsUD17Yml0czp0LmxlbmJpdHN9LEk9SWQoSzQsdC5sZW5zLDAsMTksdC5sZW5jb2RlLDAsdC53b3JrLFApLHQubGVuYml0cz1QLmJpdHMsSSl7bi5tc2c9ImludmFsaWQgY29kZSBsZW5ndGhzIHNldCIsdC5tb2RlPU9uO2JyZWFrfXQuaGF2ZT0wLHQubW9kZT12TztjYXNlIHZPOmZvcig7dC5oYXZlPHQubmxlbit0Lm5kaXN0Oyl7Zm9yKDt5PXQubGVuY29kZVtjJigxPDx0LmxlbmJpdHMpLTFdLEU9eT4+PjI0LGc9eT4+PjE2JjI1NSxBPXkmNjU1MzUsIShFPD11KTspe2lmKGY9PT0wKWJyZWFrIGU7Zi0tLGMrPW9bcisrXTw8dSx1Kz04fWlmKEE8MTYpYz4+Pj1FLHUtPUUsdC5sZW5zW3QuaGF2ZSsrXT1BO2Vsc2V7aWYoQT09PTE2KXtmb3IoRj1FKzI7dTxGOyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9aWYoYz4+Pj1FLHUtPUUsdC5oYXZlPT09MCl7bi5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLHQubW9kZT1PbjticmVha31NPXQubGVuc1t0LmhhdmUtMV0sbT0zKyhjJjMpLGM+Pj49Mix1LT0yfWVsc2UgaWYoQT09PTE3KXtmb3IoRj1FKzM7dTxGOyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9Yz4+Pj1FLHUtPUUsTT0wLG09MysoYyY3KSxjPj4+PTMsdS09M31lbHNle2ZvcihGPUUrNzt1PEY7KXtpZihmPT09MClicmVhayBlO2YtLSxjKz1vW3IrK108PHUsdSs9OH1jPj4+PUUsdS09RSxNPTAsbT0xMSsoYyYxMjcpLGM+Pj49Nyx1LT03fWlmKHQuaGF2ZSttPnQubmxlbit0Lm5kaXN0KXtuLm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsdC5tb2RlPU9uO2JyZWFrfWZvcig7bS0tOyl0LmxlbnNbdC5oYXZlKytdPU19fWlmKHQubW9kZT09PU9uKWJyZWFrO2lmKHQubGVuc1syNTZdPT09MCl7bi5tc2c9ImludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jayIsdC5tb2RlPU9uO2JyZWFrfWlmKHQubGVuYml0cz05LFA9e2JpdHM6dC5sZW5iaXRzfSxJPUlkKGZTLHQubGVucywwLHQubmxlbix0LmxlbmNvZGUsMCx0LndvcmssUCksdC5sZW5iaXRzPVAuYml0cyxJKXtuLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0Iix0Lm1vZGU9T247YnJlYWt9aWYodC5kaXN0Yml0cz02LHQuZGlzdGNvZGU9dC5kaXN0ZHluLFA9e2JpdHM6dC5kaXN0Yml0c30sST1JZChkUyx0LmxlbnMsdC5ubGVuLHQubmRpc3QsdC5kaXN0Y29kZSwwLHQud29yayxQKSx0LmRpc3RiaXRzPVAuYml0cyxJKXtuLm1zZz0iaW52YWxpZCBkaXN0YW5jZXMgc2V0Iix0Lm1vZGU9T247YnJlYWt9aWYodC5tb2RlPUVtLGU9PT02KWJyZWFrIGU7Y2FzZSBFbTp0Lm1vZGU9Um07Y2FzZSBSbTppZihmPj02JiZkPj0yNTgpe24ubmV4dF9vdXQ9aSxuLmF2YWlsX291dD1kLG4ubmV4dF9pbj1yLG4uYXZhaWxfaW49Zix0LmhvbGQ9Yyx0LmJpdHM9dSxMNChuLGgpLGk9bi5uZXh0X291dCxhPW4ub3V0cHV0LGQ9bi5hdmFpbF9vdXQscj1uLm5leHRfaW4sbz1uLmlucHV0LGY9bi5hdmFpbF9pbixjPXQuaG9sZCx1PXQuYml0cyx0Lm1vZGU9PT1RciYmKHQuYmFjaz0tMSk7YnJlYWt9Zm9yKHQuYmFjaz0wO3k9dC5sZW5jb2RlW2MmKDE8PHQubGVuYml0cyktMV0sRT15Pj4+MjQsZz15Pj4+MTYmMjU1LEE9eSY2NTUzNSwhKEU8PXUpOyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9aWYoZyYmIShnJjI0MCkpe2ZvcihUPUUsUj1nLFM9QTt5PXQubGVuY29kZVtTKygoYyYoMTw8VCtSKS0xKT4+VCldLEU9eT4+PjI0LGc9eT4+PjE2JjI1NSxBPXkmNjU1MzUsIShUK0U8PXUpOyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9Yz4+Pj1ULHUtPVQsdC5iYWNrKz1UfWlmKGM+Pj49RSx1LT1FLHQuYmFjays9RSx0Lmxlbmd0aD1BLGc9PT0wKXt0Lm1vZGU9VU87YnJlYWt9aWYoZyYzMil7dC5iYWNrPS0xLHQubW9kZT1RcjticmVha31pZihnJjY0KXtuLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlIix0Lm1vZGU9T247YnJlYWt9dC5leHRyYT1nJjE1LHQubW9kZT1GTztjYXNlIEZPOmlmKHQuZXh0cmEpe2ZvcihGPXQuZXh0cmE7dTxGOyl7aWYoZj09PTApYnJlYWsgZTtmLS0sYys9b1tyKytdPDx1LHUrPTh9dC5sZW5ndGgrPWMmKDE8PHQuZXh0cmEpLTEsYz4+Pj10LmV4dHJhLHUtPXQuZXh0cmEsdC5iYWNrKz10LmV4dHJhfXQud2FzPXQubGVuZ3RoLHQubW9kZT1ETztjYXNlIERPOmZvcig7eT10LmRpc3Rjb2RlW2MmKDE8PHQuZGlzdGJpdHMpLTFdLEU9eT4+PjI0LGc9eT4+PjE2JjI1NSxBPXkmNjU1MzUsIShFPD11KTspe2lmKGY9PT0wKWJyZWFrIGU7Zi0tLGMrPW9bcisrXTw8dSx1Kz04fWlmKCEoZyYyNDApKXtmb3IoVD1FLFI9ZyxTPUE7eT10LmRpc3Rjb2RlW1MrKChjJigxPDxUK1IpLTEpPj5UKV0sRT15Pj4+MjQsZz15Pj4+MTYmMjU1LEE9eSY2NTUzNSwhKFQrRTw9dSk7KXtpZihmPT09MClicmVhayBlO2YtLSxjKz1vW3IrK108PHUsdSs9OH1jPj4+PVQsdS09VCx0LmJhY2srPVR9aWYoYz4+Pj1FLHUtPUUsdC5iYWNrKz1FLGcmNjQpe24ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLHQubW9kZT1PbjticmVha310Lm9mZnNldD1BLHQuZXh0cmE9ZyYxNSx0Lm1vZGU9Qk87Y2FzZSBCTzppZih0LmV4dHJhKXtmb3IoRj10LmV4dHJhO3U8Rjspe2lmKGY9PT0wKWJyZWFrIGU7Zi0tLGMrPW9bcisrXTw8dSx1Kz04fXQub2Zmc2V0Kz1jJigxPDx0LmV4dHJhKS0xLGM+Pj49dC5leHRyYSx1LT10LmV4dHJhLHQuYmFjays9dC5leHRyYX1pZih0Lm9mZnNldD50LmRtYXgpe24ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsdC5tb2RlPU9uO2JyZWFrfXQubW9kZT1qTztjYXNlIGpPOmlmKGQ9PT0wKWJyZWFrIGU7aWYobT1oLWQsdC5vZmZzZXQ+bSl7aWYobT10Lm9mZnNldC1tLG0+dC53aGF2ZSYmdC5zYW5lKXtuLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLHQubW9kZT1PbjticmVha31tPnQud25leHQ/KG0tPXQud25leHQsYj10LndzaXplLW0pOmI9dC53bmV4dC1tLG0+dC5sZW5ndGgmJihtPXQubGVuZ3RoKSxwPXQud2luZG93fWVsc2UgcD1hLGI9aS10Lm9mZnNldCxtPXQubGVuZ3RoO20+ZCYmKG09ZCksZC09bSx0Lmxlbmd0aC09bTtkbyBhW2krK109cFtiKytdO3doaWxlKC0tbSk7dC5sZW5ndGg9PT0wJiYodC5tb2RlPVJtKTticmVhaztjYXNlIFVPOmlmKGQ9PT0wKWJyZWFrIGU7YVtpKytdPXQubGVuZ3RoLGQtLSx0Lm1vZGU9Um07YnJlYWs7Y2FzZSBJeTppZih0LndyYXApe2Zvcig7dTwzMjspe2lmKGY9PT0wKWJyZWFrIGU7Zi0tLGN8PW9bcisrXTw8dSx1Kz04fWlmKGgtPWQsbi50b3RhbF9vdXQrPWgsdC50b3RhbCs9aCx0LndyYXAmNCYmaCYmKG4uYWRsZXI9dC5jaGVjaz10LmZsYWdzP1phKHQuY2hlY2ssYSxoLGktaCk6T20odC5jaGVjayxhLGgsaS1oKSksaD1kLHQud3JhcCY0JiYodC5mbGFncz9jOkdPKGMpKSE9PXQuY2hlY2spe24ubXNnPSJpbmNvcnJlY3QgZGF0YSBjaGVjayIsdC5tb2RlPU9uO2JyZWFrfWM9MCx1PTB9dC5tb2RlPUxPO2Nhc2UgTE86aWYodC53cmFwJiZ0LmZsYWdzKXtmb3IoO3U8MzI7KXtpZihmPT09MClicmVhayBlO2YtLSxjKz1vW3IrK108PHUsdSs9OH1pZih0LndyYXAmNCYmYyE9PSh0LnRvdGFsJjQyOTQ5NjcyOTUpKXtuLm1zZz0iaW5jb3JyZWN0IGxlbmd0aCBjaGVjayIsdC5tb2RlPU9uO2JyZWFrfWM9MCx1PTB9dC5tb2RlPXpPO2Nhc2Ugek86ST0xO2JyZWFrIGU7Y2FzZSBPbjpJPS0zO2JyZWFrIGU7Y2FzZSBMeTpyZXR1cm4tNDtjYXNlIHVTOmRlZmF1bHQ6cmV0dXJuLTJ9cmV0dXJuIG4ubmV4dF9vdXQ9aSxuLmF2YWlsX291dD1kLG4ubmV4dF9pbj1yLG4uYXZhaWxfaW49Zix0LmhvbGQ9Yyx0LmJpdHM9dSwodC53c2l6ZXx8aCE9PW4uYXZhaWxfb3V0JiZ0Lm1vZGU8T24mJih0Lm1vZGU8SXl8fGUhPT00KSkmJmhTKG4sbi5vdXRwdXQsbi5uZXh0X291dCxoLW4uYXZhaWxfb3V0KT8odC5tb2RlPUx5LC00KToobC09bi5hdmFpbF9pbixoLT1uLmF2YWlsX291dCxuLnRvdGFsX2luKz1sLG4udG90YWxfb3V0Kz1oLHQudG90YWwrPWgsdC53cmFwJjQmJmgmJihuLmFkbGVyPXQuY2hlY2s9dC5mbGFncz9aYSh0LmNoZWNrLGEsaCxuLm5leHRfb3V0LWgpOk9tKHQuY2hlY2ssYSxoLG4ubmV4dF9vdXQtaCkpLG4uZGF0YV90eXBlPXQuYml0cysodC5sYXN0PzY0OjApKyh0Lm1vZGU9PT1Rcj8xMjg6MCkrKHQubW9kZT09PUVtfHx0Lm1vZGU9PT1OeT8yNTY6MCksKGw9PT0wJiZoPT09MHx8ZT09PTQpJiZJPT09MCYmKEk9LTUpLEkpfSxITz1uPT57aWYoSnMobikpcmV0dXJuLTI7bGV0IGU9bi5zdGF0ZTtyZXR1cm4gZS53aW5kb3cmJihlLndpbmRvdz1udWxsKSxuLnN0YXRlPW51bGwsMH0sS089KG4sZSk9PntsZXQgdD1lLmxlbmd0aCxvLGEscjtyZXR1cm4gSnMobil8fChvPW4uc3RhdGUsby53cmFwIT09MCYmby5tb2RlIT09U20pPy0yOm8ubW9kZT09PVNtJiYoYT0xLGE9T20oYSxlLHQsMCksYSE9PW8uY2hlY2spPy0zOihyPWhTKG4sZSx0LHQpLHI/KG8ubW9kZT1MeSwtNCk6KG8uaGF2ZWRpY3Q9MSwwKSl9LCQ0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5pbnB1dD1udWxsLHRoaXMubmV4dF9pbj0wLHRoaXMuYXZhaWxfaW49MCx0aGlzLnRvdGFsX2luPTAsdGhpcy5vdXRwdXQ9bnVsbCx0aGlzLm5leHRfb3V0PTAsdGhpcy5hdmFpbF9vdXQ9MCx0aGlzLnRvdGFsX291dD0wLHRoaXMubXNnPSIiLHRoaXMuc3RhdGU9bnVsbCx0aGlzLmRhdGFfdHlwZT0yLHRoaXMuYWRsZXI9MH19LGU2PW49PntsZXQgZT1uZXcgVWludDhBcnJheShuLnJlZHVjZSgobyxhKT0+bythLmxlbmd0aCwwKSksdD0wO2ZvcihsZXQgbyBvZiBuKWUuc2V0KG8sdCksdCs9by5sZW5ndGg7cmV0dXJuIGV9O3FPPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsbzY9e2NodW5rU2l6ZToxMDI0KjY0LHdpbmRvd0JpdHM6MTUscmF3OiExLGRpY3Rpb25hcnk6bmV3IFVpbnQ4QXJyYXl9LGE2PWNsYXNze2NvbnN0cnVjdG9yKG49e30pe2ppKHRoaXMsIm9wdGlvbnMiLHZvaWQgMCksamkodGhpcywiZXJyIix2b2lkIDApLGppKHRoaXMsIm1zZyIsdm9pZCAwKSxqaSh0aGlzLCJlbmRlZCIsdm9pZCAwKSxqaSh0aGlzLCJzdGFydGVkIix2b2lkIDApLGppKHRoaXMsImNodW5rcyIsdm9pZCAwKSxqaSh0aGlzLCJzdHJtIix2b2lkIDApLGppKHRoaXMsInJlc3VsdCIsdm9pZCAwKSx0aGlzLm9wdGlvbnM9T2JqZWN0LmFzc2lnbih7fSxvNixuKTtsZXQgZT10aGlzLm9wdGlvbnM7ZS5yYXcmJmUud2luZG93Qml0cz49MCYmZS53aW5kb3dCaXRzPDE2JiYoZS53aW5kb3dCaXRzPS1lLndpbmRvd0JpdHMsZS53aW5kb3dCaXRzPT09MCYmKGUud2luZG93Qml0cz0tMTUpKSxlLndpbmRvd0JpdHM+PTAmJmUud2luZG93Qml0czwxNiYmIW4ud2luZG93Qml0cyYmKGUud2luZG93Qml0cys9MzIpLGUud2luZG93Qml0cz4xNSYmZS53aW5kb3dCaXRzPDQ4JiYoZS53aW5kb3dCaXRzJjE1fHwoZS53aW5kb3dCaXRzfD0xNSkpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLnN0YXJ0ZWQ9ITEsdGhpcy5jaHVua3M9W10sdGhpcy5yZXN1bHQ9bmV3IFVpbnQ4QXJyYXksdGhpcy5zdHJtPW5ldyAkNCx0aGlzLnN0cm0uYXZhaWxfb3V0PTA7bGV0IHQ9WjQodGhpcy5zdHJtLGUud2luZG93Qml0cyk7aWYodCE9PTApdGhyb3cgRXJyb3IoeHlbdF0pO3FPLmNhbGwoZS5kaWN0aW9uYXJ5KT09PSJbb2JqZWN0IEFycmF5QnVmZmVyXSImJihlLmRpY3Rpb25hcnk9bmV3IFVpbnQ4QXJyYXkoZS5kaWN0aW9uYXJ5KSk7bGV0IG89ZS5kaWN0aW9uYXJ5O2lmKGUucmF3JiZvLmxlbmd0aCYmKHQ9S08odGhpcy5zdHJtLG8pLHQhPT0wKSl0aHJvdyBFcnJvcih4eVt0XSl9cHVzaChuLGU9ITEpe2xldCB0PXRoaXMuc3RybSxvPXRoaXMub3B0aW9ucy5jaHVua1NpemUsYSxyLGk7aWYodGhpcy5lbmRlZClyZXR1cm4gdGhpcy5lcnI9PT0wO2ZvcihyPXR5cGVvZiBlPT0ibnVtYmVyIj9lOmU9PT0hMD80OjAscU8uY2FsbChuKT09PSJbb2JqZWN0IEFycmF5QnVmZmVyXSI/dC5pbnB1dD1uZXcgVWludDhBcnJheShuKTp0LmlucHV0PW4sdC5uZXh0X2luPTAsdC5hdmFpbF9pbj10LmlucHV0Lmxlbmd0aCx0aGlzLnN0YXJ0ZWR8fCh0aGlzLnN0YXJ0ZWQ9ITAsdGhpcy5vblN0YXJ0KHQpKTs7KXtpZih0LmF2YWlsX291dD09PTAmJih0Lm91dHB1dD1uZXcgVWludDhBcnJheShvKSx0Lm5leHRfb3V0PTAsdC5hdmFpbF9vdXQ9byksYT12eSh0LHIpLGE9PT0yKXtsZXQgZj10aGlzLm9wdGlvbnMuZGljdGlvbmFyeTtmLmxlbmd0aCYmKGE9S08odCxmKSxhPT09MD9hPXZ5KHQscik6YT09PS0zJiYoYT0yKSl9Zm9yKDt0LmF2YWlsX2luPjAmJmE9PT0xJiZ0LnN0YXRlLndyYXAmMiYmdC5zdGF0ZS5mbGFncyE9PTAmJnQuaW5wdXRbdC5uZXh0X2luXSE9PTA7KWxTKHQpLGE9dnkodCxyKTtpZihhPT09LTJ8fGE9PT0tM3x8YT09PTJ8fGE9PT0tNClicmVhaztpZihpPXQuYXZhaWxfb3V0LHQubmV4dF9vdXQmJih0LmF2YWlsX291dD09PTB8fGE9PT0xfHxyPjApJiYodGhpcy5vbkRhdGEodC5vdXRwdXQubGVuZ3RoPT09dC5uZXh0X291dD90Lm91dHB1dDp0Lm91dHB1dC5zdWJhcnJheSgwLHQubmV4dF9vdXQpKSx0LmF2YWlsX291dD0wLHQubmV4dF9vdXQ9MCksISgoYT09PTB8fGE9PT0tNSkmJmk9PT0wKSl7aWYoYT09PTEpe2E9SE8odGhpcy5zdHJtKTticmVha31pZih0LmF2YWlsX2luPT09MCl7aWYocj09PTQpe2E9SE8odGhpcy5zdHJtKSxhPT09MCYmKGE9LTUpO2JyZWFrfXJldHVybiEwfX19cmV0dXJuIHRoaXMuZXJyPWEsdGhpcy5tc2c9dC5tc2d8fHh5W2FdLHRoaXMuZW5kZWQ9ITAsdGhpcy5vbkVuZChhKSxhPT09MH1vblN0YXJ0KG4pe31vbkRhdGEobil7dGhpcy5jaHVua3MucHVzaChuKX1vbkVuZChuKXtuPT09MCYmKHRoaXMucmVzdWx0PWU2KHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W119fX0pO3ZhciBYeT17fTskZShYeSx7ZGVmYXVsdDooKT0+aDZ9KTtmdW5jdGlvbiByNihuLGUpe2xldCB0PUxpLmZyb21TdHJpbmcobi50eXBlKSxvPW4uYnVmZmVyO3JPKG4ua2V5LG8pO2xldCBhPWw2KG8pO289YS5idWZmZXI7bGV0IHI9YS5sZW5ndGg7c3dpdGNoKHQpe2Nhc2UgTGkuTUVUQURBVEE6cmV0dXJuIGM2KG8scixuLnF1YWRLZXkpO2Nhc2UgTGkuVEVSUkFJTjpyZXR1cm4gZDYobyxyLGUpO2Nhc2UgTGkuREJST09UOnJldHVybiBlLnB1c2gobykse2J1ZmZlcjpvfX19ZnVuY3Rpb24gYzYobixlLHQpe2xldCBvPW5ldyBEYXRhVmlldyhuKSxhPTAscj1vLmdldFVpbnQzMihhLCEwKTtpZihhKz1RcyxyIT09aTYpdGhyb3cgbmV3IG50KCJJbnZhbGlkIG1hZ2ljIik7bGV0IGk9by5nZXRVaW50MzIoYSwhMCk7aWYoYSs9UXMsaSE9PTEpdGhyb3cgbmV3IG50KCJJbnZhbGlkIGRhdGEgdHlwZS4gTXVzdCBiZSAxIGZvciBRdWFkVHJlZVBhY2tldCIpO2xldCBmPW8uZ2V0VWludDMyKGEsITApO2lmKGErPVFzLGYhPT0yKXRocm93IG5ldyBudCgiSW52YWxpZCBRdWFkVHJlZVBhY2tldCB2ZXJzaW9uLiBPbmx5IHZlcnNpb24gMiBpcyBzdXBwb3J0ZWQuIik7bGV0IGQ9by5nZXRJbnQzMihhLCEwKTthKz1JYztsZXQgYz1vLmdldEludDMyKGEsITApO2lmKGErPUljLGMhPT0zMil0aHJvdyBuZXcgbnQoIkludmFsaWQgaW5zdGFuY2Ugc2l6ZS4iKTtsZXQgdT1vLmdldEludDMyKGEsITApO2ErPUljO2xldCBsPW8uZ2V0SW50MzIoYSwhMCk7YSs9SWM7bGV0IGg9by5nZXRJbnQzMihhLCEwKTtpZihhKz1JYyx1IT09ZCpjK2EpdGhyb3cgbmV3IG50KCJJbnZhbGlkIGRhdGFCdWZmZXJPZmZzZXQiKTtpZih1K2wraCE9PWUpdGhyb3cgbmV3IG50KCJJbnZhbGlkIHBhY2tldCBvZmZzZXRzIik7bGV0IG09W107Zm9yKGxldCBBPTA7QTxkOysrQSl7bGV0IFQ9by5nZXRVaW50OChhKTsrK2EsKythO2xldCBSPW8uZ2V0VWludDE2KGEsITApO2ErPVpzO2xldCBTPW8uZ2V0VWludDE2KGEsITApO2ErPVpzO2xldCBNPW8uZ2V0VWludDE2KGEsITApO2ErPVpzLGErPVpzLGErPVpzLGErPUljLGErPUljLGErPTg7bGV0IEk9by5nZXRVaW50OChhKyspLE49by5nZXRVaW50OChhKyspO2ErPVpzLG0ucHVzaChuZXcgZk8oVCxSLFMsTSxJLE4pKX1sZXQgYj1bXSxwPTA7ZnVuY3Rpb24geShBLFQsUil7bGV0IFM9ITE7aWYoUj09PTQpe2lmKFQuaGFzU3VidHJlZSgpKXJldHVybjtTPSEwfWZvcihsZXQgTT0wO008NDsrK00pe2xldCBJPUErTS50b1N0cmluZygpO2lmKFMpYltJXT1udWxsO2Vsc2UgaWYoUjw0KWlmKCFULmhhc0NoaWxkKE0pKWJbSV09bnVsbDtlbHNle2lmKHA9PT1kKXtjb25zb2xlLmxvZygiSW5jb3JyZWN0IG51bWJlciBvZiBpbnN0YW5jZXMiKTtyZXR1cm59bGV0IE49bVtwKytdO2JbSV09Tix5KEksTixSKzEpfX19bGV0IEU9MCxnPW1bcCsrXTtyZXR1cm4gdD09PSIiPysrRTpiW3RdPWcseSh0LGcsRSksYn1mdW5jdGlvbiBkNihuLGUsdCl7bGV0IG89bmV3IERhdGFWaWV3KG4pLGE9ZnVuY3Rpb24oZil7Zm9yKGxldCBkPTA7ZDxmNjsrK2Qpe2xldCBjPW8uZ2V0VWludDMyKGYsITApO2lmKGYrPVFzLGYrPWMsZj5lKXRocm93IG5ldyBudCgiTWFsZm9ybWVkIHRlcnJhaW4gcGFja2V0IGZvdW5kLiIpfXJldHVybiBmfSxyPTAsaT1bXTtmb3IoO2kubGVuZ3RoPHM2Oyl7bGV0IGY9cjtyPWEocik7bGV0IGQ9bi5zbGljZShmLHIpO3QucHVzaChkKSxpLnB1c2goZCl9cmV0dXJuIGl9ZnVuY3Rpb24gbDYobil7bGV0IGU9bmV3IERhdGFWaWV3KG4pLHQ9MCxvPWUuZ2V0VWludDMyKHQsITApO2lmKHQrPVFzLG8hPT1wUyYmbyE9PXU2KXRocm93IG5ldyBudCgiSW52YWxpZCBtYWdpYyIpO2xldCBhPWUuZ2V0VWludDMyKHQsbz09PXBTKTt0Kz1RcztsZXQgcj1uZXcgVWludDhBcnJheShuLHQpLGk9bVMocik7aWYoaS5sZW5ndGghPT1hKXRocm93IG5ldyBudCgiU2l6ZSBvZiBwYWNrZXQgZG9lc24ndCBtYXRjaCBoZWFkZXIiKTtyZXR1cm4gaX12YXIgWnMsSWMsUXMsTGksaTYsczYsZjYscFMsdTYsaDYsWXk9WCgoKT0+e2lPKCk7ZE8oKTtwYSgpO2JTKCk7a24oKTtacz1VaW50MTZBcnJheS5CWVRFU19QRVJfRUxFTUVOVCxJYz1JbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5ULFFzPVVpbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5ULExpPXtNRVRBREFUQTowLFRFUlJBSU46MSxEQlJPT1Q6Mn07TGkuZnJvbVN0cmluZz1mdW5jdGlvbihuKXtpZihuPT09Ik1ldGFkYXRhIilyZXR1cm4gTGkuTUVUQURBVEE7aWYobj09PSJUZXJyYWluIilyZXR1cm4gTGkuVEVSUkFJTjtpZihuPT09IkRiUm9vdCIpcmV0dXJuIExpLkRCUk9PVH07aTY9MzIzMDE7czY9NSxmNj00O3BTPTE5NTMwMjk4MDUsdTY9MjkxNzAzNDEwMDtoNj1tdChyNil9KTtmdW5jdGlvbiBtNihuKXtyZXR1cm4gbjw9LjA0MDQ1P24qLjA3NzM5OTM4MDgwNDk1MzU3Ok1hdGgucG93KChuKy4wNTUpKi45NDc4NjcyOTg1NzgxOTkxLDIuNCl9dmFyIE1tLGdTPVgoKCk9PntNbT1tNn0pO3ZhciAkeT17fTskZSgkeSx7ZGVmYXVsdDooKT0+TDZ9KTtmdW5jdGlvbiBiNihuLGUsdCxvLGEscil7bGV0IGk9dCooMS1uKStvKm4sZj1hKigxLW4pK3IqbjtyZXR1cm4gaSooMS1lKStmKmV9ZnVuY3Rpb24gTm0obixlLHQsbyl7bGV0IGE9bitlKnQ7cmV0dXJuIG9bYV19ZnVuY3Rpb24gcDYobixlLHQpe2xldCBvPXQubmF0aXZlRXh0ZW50LGE9KG4tby53ZXN0KS8oby5lYXN0LW8ud2VzdCkqKHQud2lkdGgtMSkscj0oZS1vLnNvdXRoKS8oby5ub3J0aC1vLnNvdXRoKSoodC5oZWlnaHQtMSksaT1NYXRoLmZsb29yKGEpLGY9TWF0aC5mbG9vcihyKTthLT1pLHItPWY7bGV0IGQ9aTx0LndpZHRoP2krMTppLGM9Zjx0LmhlaWdodD9mKzE6ZjtmPXQuaGVpZ2h0LTEtZixjPXQuaGVpZ2h0LTEtYztsZXQgdT1ObShpLGYsdC53aWR0aCx0LmJ1ZmZlciksbD1ObShkLGYsdC53aWR0aCx0LmJ1ZmZlciksaD1ObShpLGMsdC53aWR0aCx0LmJ1ZmZlciksbT1ObShkLGMsdC53aWR0aCx0LmJ1ZmZlciksYj1iNihhLHIsdSxsLGgsbSk7cmV0dXJuIGI9Yip0LnNjYWxlK3Qub2Zmc2V0LGJ9ZnVuY3Rpb24gX1MobixlLHQpe2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtsZXQgYT10W29dLm5hdGl2ZUV4dGVudCxyPW5ldyBzO2lmKHRbb10ucHJvamVjdGlvblR5cGU9PT0iV2ViTWVyY2F0b3IiKXtsZXQgaT10W29dLnByb2plY3Rpb24uX2VsbGlwc29pZC5fcmFkaWk7cj1uZXcgeW4obmV3IEsoaS54LGkueSxpLnopKS5wcm9qZWN0KG5ldyByZShuLGUsMCkpfWVsc2Ugci54PW4sci55PWU7aWYoci54PmEud2VzdCYmci54PGEuZWFzdCYmci55PmEuc291dGgmJnIueTxhLm5vcnRoKXJldHVybiBwNihyLngsci55LHRbb10pfXJldHVybiAwfWZ1bmN0aW9uIGc2KG4sZSx0LG8sYSxyLGkpe2lmKGkpcmV0dXJuO2xldCBmPV9TKGEubG9uZ2l0dWRlLGEubGF0aXR1ZGUscik7Zm9yKGxldCBkPTA7ZDxuOysrZCl7bGV0IGM9X1MoYS5sb25naXR1ZGUray50b1JhZGlhbnModCplW2QqM10pLGEubGF0aXR1ZGUray50b1JhZGlhbnMobyplW2QqMysxXSkscik7ZVtkKjMrMl0rPWMtZn19ZnVuY3Rpb24gXzYobixlLHQsbyxhLHIsaSxmLGQpe2lmKG49PT0wfHwhXyhlKXx8ZS5sZW5ndGg9PT0wKXJldHVybjtsZXQgYz1uZXcgSyhNYXRoLnNxcnQoaS54KSxNYXRoLnNxcnQoaS55KSxNYXRoLnNxcnQoaS56KSk7Zm9yKGxldCB1PTA7dTxuOysrdSl7bGV0IGw9dSozLGg9bCsxLG09bCsyLGI9bmV3IHJlO2IubG9uZ2l0dWRlPW8ubG9uZ2l0dWRlK2sudG9SYWRpYW5zKGYqZVtsXSksYi5sYXRpdHVkZT1vLmxhdGl0dWRlK2sudG9SYWRpYW5zKGQqZVtoXSksYi5oZWlnaHQ9by5oZWlnaHQrZVttXTtsZXQgcD17fTtjLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGIscCkscC54LT1hLngscC55LT1hLnkscC56LT1hLno7bGV0IHk9e307aWYoSi5tdWx0aXBseUJ5VmVjdG9yKHIscCx5KSxlW2xdPXkueCxlW2hdPXkueSxlW21dPXkueixfKHQpKXtsZXQgRT1uZXcgcyh0W2xdLHRbaF0sdFttXSksZz17fTtKLm11bHRpcGx5QnlWZWN0b3IocixFLGcpLHRbbF09Zy54LHRbaF09Zy55LHRbbV09Zy56fX19ZnVuY3Rpb24geTYobixlLHQpe2ZvcihsZXQgbz0wO288bjsrK28pe2xldCBhPXRbbyo0XS82NTUzNSxyPXRbbyo0KzFdLzY1NTM1LGk9KHRbbyo0KzJdLXRbbyo0XSkvNjU1MzUsZj0odFtvKjQrM10tdFtvKjQrMV0pLzY1NTM1O2VbbyoyXSo9aSxlW28qMl0rPWEsZVtvKjIrMV0qPWYsZVtvKjIrMV0rPXJ9fWZ1bmN0aW9uIEE2KG4sZSx0LG8pe2xldCBhPW5ldyBVaW50MzJBcnJheShuKSxyPV8oZSk/Zj0+ZVtmXTpmPT5mLGk9MDtpZihvJiZfKHQpKXtsZXQgZj1kPT50W3IoZCkqNCszXTwyNTU7Zm9yKGxldCBkPTA7ZDxuO2QrPTMpIWYoZCkmJiFmKGQrMSkmJiFmKGQrMikmJihhW2krK109cihkKSxhW2krK109cihkKzEpLGFbaSsrXT1yKGQrMikpO2lmKGk+MCl7bGV0IGQ9aTtmb3IobGV0IGM9MDtjPG47Yys9MykoZihjKXx8ZihjKzEpfHxmKGMrMikpJiYoYVtkKytdPXIoYyksYVtkKytdPXIoYysxKSxhW2QrK109cihjKzIpKX1lbHNlIGZvcihsZXQgZD0wO2Q8bjsrK2QpYVtkXT1yKGQpfWVsc2V7aT1uO2ZvcihsZXQgZj0wO2Y8bjsrK2YpYVtmXT1yKGYpfXJldHVybntpbmRleEFycmF5OmEsdHJhbnNwYXJlbnRWZXJ0ZXhPZmZzZXQ6aX19ZnVuY3Rpb24gdzYobixlLHQpe2xldCBvPWVbdF07aWYoXyhvKSlyZXR1cm4gbztsZXQgYT1lW3RdPXtwb3NpdGlvbnM6e30saW5kaWNlczp7fSxlZGdlczp7fX0scj1uW3RdPz9uLmRlZmF1bHQ7cmV0dXJuIGEuaGFzT3V0bGluZT1fKHI/LmVkZ2VzKSxhfWZ1bmN0aW9uIFQ2KG4sZSx0LG8pe2lmKCFfKG5bdF0pKXtsZXQgYT10KjMscj1lO2ZvcihsZXQgaT0wO2k8MztpKyspe2xldCBmPW9bYStpXTtfKHJbZl0pfHwocltmXT17fSkscj1yW2ZdfV8oci5pbmRleCl8fChyLmluZGV4PXQpLG5bdF09ci5pbmRleH19ZnVuY3Rpb24gRTYobixlLHQsbyxhLHIpe2xldCBpLGY7bzxhPyhpPW8sZj1hKTooaT1hLGY9byk7bGV0IGQ9bltpXTtfKGQpfHwoZD1uW2ldPXt9KTtsZXQgYz1kW2ZdO18oYyl8fChjPWRbZl09e25vcm1hbHNJbmRleDpbXSxvdXRsaW5lczpbXX0pLGMubm9ybWFsc0luZGV4LnB1c2gociksKGMub3V0bGluZXMubGVuZ3RoPT09MHx8ZSE9PW98fHQhPT1hKSYmYy5vdXRsaW5lcy5wdXNoKGUsdCl9ZnVuY3Rpb24gUjYobixlLHQsbyl7bGV0IGE9W107Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKz0zKXtsZXQgaT1fKGUpP2VbdFtyXV06ImRlZmF1bHQiLGY9dzYobixhLGkpO2lmKCFmLmhhc091dGxpbmUpY29udGludWU7bGV0IGQ9Zi5pbmRpY2VzLGM9Zi5wb3NpdGlvbnM7Zm9yKGxldCBsPTA7bDwzO2wrKyl7bGV0IGg9dFtyK2xdO1Q2KGQsYyxoLG8pfWxldCB1PWYuZWRnZXM7Zm9yKGxldCBsPTA7bDwzO2wrKyl7bGV0IGg9dFtyK2xdLG09dFtyKyhsKzEpJTNdLGI9ZFtoXSxwPWRbbV07RTYodSxoLG0sYixwLHIpfX1yZXR1cm4gYX1mdW5jdGlvbiB5UyhuLGUsdCxvKXtsZXQgYT10W2VdKjMscj10W2UrMV0qMyxpPXRbZSsyXSozO3MuZnJvbUFycmF5KG8sYSx4cikscy5mcm9tQXJyYXkobyxyLEltKSxzLmZyb21BcnJheShvLGksUG0pLHMuc3VidHJhY3QoSW0seHIsSW0pLHMuc3VidHJhY3QoUG0seHIsUG0pLHMuY3Jvc3MoSW0sUG0seHIpO2xldCBmPXMubWFnbml0dWRlKHhyKTtmIT09MCYmcy5kaXZpZGVCeVNjYWxhcih4cixmLHhyKTtsZXQgZD1lKjMsYz0oZSsxKSozLHU9KGUrMikqMztzLnBhY2soeHIsbixkKSxzLnBhY2soeHIsbixjKSxzLnBhY2soeHIsbix1KX1mdW5jdGlvbiB4NihuLGUsdCl7cy5mcm9tQXJyYXkobixlLGttKSxzLmZyb21BcnJheShuLHQsSnkpO2xldCBvPXMuZG90KGttLEp5KSxhPXMubWFnbml0dWRlKHMuY3Jvc3Moa20sSnksa20pKTtyZXR1cm4gTWF0aC5hdGFuMihhLG8pPC4yNX1mdW5jdGlvbiBPNihuLGUsdCxvLGEpe2lmKGUubm9ybWFsc0luZGV4Lmxlbmd0aD4xKXtsZXQgcj1vLmxlbmd0aD09PWEubGVuZ3RoO2ZvcihsZXQgaT0wO2k8ZS5ub3JtYWxzSW5kZXgubGVuZ3RoO2krKyl7bGV0IGY9ZS5ub3JtYWxzSW5kZXhbaV07aWYoXyhhW2YqM10pfHx5UyhhLGYsdCxvKSxpIT09MClmb3IobGV0IGQ9MDtkPGk7ZCsrKXtsZXQgYz1lLm5vcm1hbHNJbmRleFtkXSx1PXI/dFtmXSozOmYqMyxsPXI/dFtjXSozOmMqMztpZih4NihhLHUsbCkpcmV0dXJufX19bi5wdXNoKC4uLmUub3V0bGluZXMpfWZ1bmN0aW9uIFM2KG4sZSx0LG8sYSl7bGV0IHI9T2JqZWN0LmtleXMoZSk7Zm9yKGxldCBpPTA7aTxyLmxlbmd0aDtpKyspe2xldCBmPWVbcltpXV0sZD1PYmplY3Qua2V5cyhmKTtmb3IobGV0IGM9MDtjPGQubGVuZ3RoO2MrKyl7bGV0IHU9ZltkW2NdXTtPNihuLHUsdCxvLGEpfX19ZnVuY3Rpb24gQzYobixlLHQsbyl7bGV0IGE9W10scj1PYmplY3Qua2V5cyhuKTtmb3IobGV0IGk9MDtpPHIubGVuZ3RoO2krKyl7bGV0IGY9bltyW2ldXS5lZGdlcztTNihhLGYsZSx0LG8pfXJldHVybiBhfWZ1bmN0aW9uIE02KG4sZSx0LG8sYSl7aWYoIV8obil8fE9iamVjdC5rZXlzKG4pLmxlbmd0aD09PTApcmV0dXJuO2xldCByPVI2KG4sZSx0LG8pOyghXyhhKXx8dC5sZW5ndGgqMyE9PWEubGVuZ3RoKSYmKGE9W10pO2xldCBpPUM2KHIsdCxvLGEpO3JldHVybiBpLmxlbmd0aD4wP25ldyBVaW50MzJBcnJheShpKTp2b2lkIDB9ZnVuY3Rpb24gTjYobil7bGV0IGU9bmV3IEZsb2F0MzJBcnJheShuLmxlbmd0aCk7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kz00KWVbdF09TW0oSmUuYnl0ZVRvRmxvYXQoblt0XSkpLGVbdCsxXT1NbShKZS5ieXRlVG9GbG9hdChuW3QrMV0pKSxlW3QrMl09TW0oSmUuYnl0ZVRvRmxvYXQoblt0KzJdKSksZVt0KzNdPUplLmJ5dGVUb0Zsb2F0KG5bdCszXSk7cmV0dXJuIGV9ZnVuY3Rpb24gSTYobixlLHQsbyxhLHIsaSl7bGV0IGY9e25vcm1hbHM6dm9pZCAwLHBvc2l0aW9uczp2b2lkIDAsdXYwczp2b2lkIDAsY29sb3JzOnZvaWQgMCxmZWF0dXJlSW5kZXg6dm9pZCAwLHZlcnRleENvdW50OnZvaWQgMH07aWYobj09PTB8fCFfKHQpfHx0Lmxlbmd0aD09PTB8fF8obykpcmV0dXJuIGY7aWYoXyhlKSl7Zi52ZXJ0ZXhDb3VudD1lLmxlbmd0aCxmLnBvc2l0aW9ucz1uZXcgRmxvYXQzMkFycmF5KGUubGVuZ3RoKjMpLGYudXYwcz1fKGEpP25ldyBGbG9hdDMyQXJyYXkoZS5sZW5ndGgqMik6dm9pZCAwLGYuY29sb3JzPV8ocik/bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgqNCk6dm9pZCAwLGYuZmVhdHVyZUluZGV4PV8oaSk/bmV3IEFycmF5KGUubGVuZ3RoKTp2b2lkIDA7Zm9yKGxldCBkPTA7ZDxlLmxlbmd0aDtkKyspe2xldCBjPWVbZF07Zi5wb3NpdGlvbnNbZCozXT10W2MqM10sZi5wb3NpdGlvbnNbZCozKzFdPXRbYyozKzFdLGYucG9zaXRpb25zW2QqMysyXT10W2MqMysyXSxfKGYudXYwcykmJihmLnV2MHNbZCoyXT1hW2MqMl0sZi51djBzW2QqMisxXT1hW2MqMisxXSksXyhmLmNvbG9ycykmJihmLmNvbG9yc1tkKjRdPXJbYyo0XSxmLmNvbG9yc1tkKjQrMV09cltjKjQrMV0sZi5jb2xvcnNbZCo0KzJdPXJbYyo0KzJdLGYuY29sb3JzW2QqNCszXT1yW2MqNCszXSksXyhmLmZlYXR1cmVJbmRleCkmJihmLmZlYXR1cmVJbmRleFtkXT1pW2NdKX1uPWUubGVuZ3RoLHQ9Zi5wb3NpdGlvbnN9ZT1uZXcgQXJyYXkobik7Zm9yKGxldCBkPTA7ZDxuO2QrKyllW2RdPWQ7Zi5ub3JtYWxzPW5ldyBGbG9hdDMyQXJyYXkoZS5sZW5ndGgqMyk7Zm9yKGxldCBkPTA7ZDxlLmxlbmd0aDtkKz0zKXlTKGYubm9ybWFscyxkLGUsdCk7cmV0dXJuIGZ9ZnVuY3Rpb24gUDYobixlLHQsbyxhLHIsaSxmKXtpZihuPT09MHx8IV8odCl8fHQubGVuZ3RoPT09MClyZXR1cm57YnVmZmVyczpbXSxidWZmZXJWaWV3czpbXSxhY2Nlc3NvcnM6W10sbWVzaGVzOltdLG5vZGVzOltdLG5vZGVzSW5TY2VuZTpbXX07bGV0IGQ9W10sYz1bXSx1PVtdLGw9W10saD1bXSxtPVtdLGI9e30scD1bXTtfKGUpJiYobj1lLmxlbmd0aCk7bGV0e2luZGV4QXJyYXk6eSx0cmFuc3BhcmVudFZlcnRleE9mZnNldDpFfT1BNihuLGUscixmLnNwbGl0R2VvbWV0cnlCeUNvbG9yVHJhbnNwYXJlbmN5KSxnPW5ldyBCbG9iKFt5XSx7dHlwZToiYXBwbGljYXRpb24vYmluYXJ5In0pLEE9VVJMLmNyZWF0ZU9iamVjdFVSTChnKSxUPW4sUj1mLmVuYWJsZUZlYXR1cmVzJiZfKGkpP25ldyBGbG9hdDMyQXJyYXkoaS5sZW5ndGgpOnZvaWQgMCxTPTA7aWYoXyhSKSlmb3IobGV0IFE9MDtRPGkubGVuZ3RoOysrUSl7UltRXT1pW1FdO2xldCBUZT1pW1FdKzE7UzxUZSYmKFM9VGUpfWxldCBNLEk9TTYoZi5zeW1ib2xvZ3lEYXRhLGkseSx0LG8pO2lmKF8oSSkpe2xldCBRPW5ldyBCbG9iKFtJXSx7dHlwZToiYXBwbGljYXRpb24vYmluYXJ5In0pO009VVJMLmNyZWF0ZU9iamVjdFVSTChRKX1sZXQgTj10LnN1YmFycmF5KDAsVCozKSxQPW5ldyBCbG9iKFtOXSx7dHlwZToiYXBwbGljYXRpb24vYmluYXJ5In0pLEY9VVJMLmNyZWF0ZU9iamVjdFVSTChQKSx3PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx4PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxDPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx2PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxqPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx6PU51bWJlci5ORUdBVElWRV9JTkZJTklUWTtmb3IobGV0IFE9MDtRPE4ubGVuZ3RoLzM7USsrKXc9TWF0aC5taW4odyxOW1EqMyswXSkseD1NYXRoLm1heCh4LE5bUSozKzBdKSxDPU1hdGgubWluKEMsTltRKjMrMV0pLHY9TWF0aC5tYXgodixOW1EqMysxXSksaj1NYXRoLm1pbihqLE5bUSozKzJdKSx6PU1hdGgubWF4KHosTltRKjMrMl0pO2xldCBEPW8/by5zdWJhcnJheSgwLFQqMyk6dm9pZCAwLEc7aWYoXyhEKSl7bGV0IFE9bmV3IEJsb2IoW0RdLHt0eXBlOiJhcHBsaWNhdGlvbi9iaW5hcnkifSk7Rz1VUkwuY3JlYXRlT2JqZWN0VVJMKFEpfWxldCBWPWE/YS5zdWJhcnJheSgwLFQqMik6dm9pZCAwLE87aWYoXyhWKSl7bGV0IFE9bmV3IEJsb2IoW1ZdLHt0eXBlOiJhcHBsaWNhdGlvbi9iaW5hcnkifSk7Tz1VUkwuY3JlYXRlT2JqZWN0VVJMKFEpfWxldCBaPV8ocik/TjYoci5zdWJhcnJheSgwLFQqNCkpOnZvaWQgMCxhZTtpZihfKFopKXtsZXQgUT1uZXcgQmxvYihbWl0se3R5cGU6ImFwcGxpY2F0aW9uL2JpbmFyeSJ9KTthZT1VUkwuY3JlYXRlT2JqZWN0VVJMKFEpfWxldCBjZT1fKFIpP1Iuc3ViYXJyYXkoMCxUKTp2b2lkIDAsZmU7aWYoXyhjZSkpe2xldCBRPW5ldyBCbG9iKFtjZV0se3R5cGU6ImFwcGxpY2F0aW9uL2JpbmFyeSJ9KTtmZT1VUkwuY3JlYXRlT2JqZWN0VVJMKFEpfWxldCB0ZT1fKFIpP25ldyBGbG9hdDMyQXJyYXkoUyk6dm9pZCAwLG1lO2lmKF8odGUpKXtmb3IobGV0IFRlPTA7VGU8dGUubGVuZ3RoOysrVGUpdGVbVGVdPVRlO2xldCBRPW5ldyBCbG9iKFt0ZV0se3R5cGU6ImFwcGxpY2F0aW9uL2JpbmFyeSJ9KTttZT1VUkwuY3JlYXRlT2JqZWN0VVJMKFEpfWxldCB1ZT17fSxiZT17fTt1ZS5QT1NJVElPTj11Lmxlbmd0aCxkLnB1c2goe3VyaTpGLGJ5dGVMZW5ndGg6Ti5ieXRlTGVuZ3RofSksYy5wdXNoKHtidWZmZXI6ZC5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsYnl0ZUxlbmd0aDpOLmJ5dGVMZW5ndGgsdGFyZ2V0OjM0OTYyfSksdS5wdXNoKHtidWZmZXJWaWV3OmMubGVuZ3RoLTEsYnl0ZU9mZnNldDowLGNvbXBvbmVudFR5cGU6NTEyNixjb3VudDpOLmxlbmd0aC8zLHR5cGU6IlZFQzMiLG1pbjpbdyxDLGpdLG1heDpbeCx2LHpdfSksXyhHKSYmKHVlLk5PUk1BTD11Lmxlbmd0aCxkLnB1c2goe3VyaTpHLGJ5dGVMZW5ndGg6RC5ieXRlTGVuZ3RofSksYy5wdXNoKHtidWZmZXI6ZC5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsYnl0ZUxlbmd0aDpELmJ5dGVMZW5ndGgsdGFyZ2V0OjM0OTYyfSksdS5wdXNoKHtidWZmZXJWaWV3OmMubGVuZ3RoLTEsYnl0ZU9mZnNldDowLGNvbXBvbmVudFR5cGU6NTEyNixjb3VudDpELmxlbmd0aC8zLHR5cGU6IlZFQzMifSkpLF8oTykmJih1ZS5URVhDT09SRF8wPXUubGVuZ3RoLGQucHVzaCh7dXJpOk8sYnl0ZUxlbmd0aDpWLmJ5dGVMZW5ndGh9KSxjLnB1c2goe2J1ZmZlcjpkLmxlbmd0aC0xLGJ5dGVPZmZzZXQ6MCxieXRlTGVuZ3RoOlYuYnl0ZUxlbmd0aCx0YXJnZXQ6MzQ5NjJ9KSx1LnB1c2goe2J1ZmZlclZpZXc6Yy5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsY29tcG9uZW50VHlwZTo1MTI2LGNvdW50OlYubGVuZ3RoLzIsdHlwZToiVkVDMiJ9KSksXyhhZSkmJih1ZS5DT0xPUl8wPXUubGVuZ3RoLGQucHVzaCh7dXJpOmFlLGJ5dGVMZW5ndGg6Wi5ieXRlTGVuZ3RofSksYy5wdXNoKHtidWZmZXI6ZC5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsYnl0ZUxlbmd0aDpaLmJ5dGVMZW5ndGgsdGFyZ2V0OjM0OTYyfSksdS5wdXNoKHtidWZmZXJWaWV3OmMubGVuZ3RoLTEsYnl0ZU9mZnNldDowLGNvbXBvbmVudFR5cGU6NTEyNixjb3VudDpaLmxlbmd0aC80LHR5cGU6IlZFQzQifSkpLF8oZmUpJiYodWUuX0ZFQVRVUkVfSURfMD11Lmxlbmd0aCxkLnB1c2goe3VyaTpmZSxieXRlTGVuZ3RoOmNlLmJ5dGVMZW5ndGh9KSxjLnB1c2goe2J1ZmZlcjpkLmxlbmd0aC0xLGJ5dGVPZmZzZXQ6MCxieXRlTGVuZ3RoOmNlLmJ5dGVMZW5ndGgsdGFyZ2V0OjM0OTYzfSksdS5wdXNoKHtidWZmZXJWaWV3OmMubGVuZ3RoLTEsYnl0ZU9mZnNldDowLGNvbXBvbmVudFR5cGU6NTEyNixjb3VudDpjZS5sZW5ndGgsdHlwZToiU0NBTEFSIn0pLGJlLkVYVF9tZXNoX2ZlYXR1cmVzPXtmZWF0dXJlSWRzOlt7YXR0cmlidXRlOjAscHJvcGVydHlUYWJsZTowLGZlYXR1cmVDb3VudDpTfV19LHAucHVzaCgiRVhUX21lc2hfZmVhdHVyZXMiKSksXyhtZSkmJihkLnB1c2goe3VyaTptZSxieXRlTGVuZ3RoOnRlLmJ5dGVMZW5ndGh9KSxjLnB1c2goe2J1ZmZlcjpkLmxlbmd0aC0xLGJ5dGVPZmZzZXQ6MCxieXRlTGVuZ3RoOnRlLmJ5dGVMZW5ndGgsdGFyZ2V0OjM0OTYzfSksYi5FWFRfc3RydWN0dXJhbF9tZXRhZGF0YT17c2NoZW1hOntpZDoiaTNzLW1ldGFkYXRhLXNjaGVtYS0wMDEiLG5hbWU6IkkzUyBtZXRhZGF0YSBzY2hlbWEgMDAxIixkZXNjcmlwdGlvbjoiVGhlIHNjaGVtYSBmb3IgSTNTIG1ldGFkYXRhIix2ZXJzaW9uOiIxLjAiLGNsYXNzZXM6e2ZlYXR1cmU6e25hbWU6ImZlYXR1cmUiLGRlc2NyaXB0aW9uOiJGZWF0dXJlIG1ldGFkYXRhIixwcm9wZXJ0aWVzOntpbmRleDp7ZGVzY3JpcHRpb246IlRoZSBmZWF0dXJlIGluZGV4Iix0eXBlOiJTQ0FMQVIiLGNvbXBvbmVudFR5cGU6IkZMT0FUMzIiLHJlcXVpcmVkOiEwfX19fX0scHJvcGVydHlUYWJsZXM6W3tuYW1lOiJmZWF0dXJlLWluZGljZXMtbWFwcGluZyIsY2xhc3M6ImZlYXR1cmUiLGNvdW50OlMscHJvcGVydGllczp7aW5kZXg6e3ZhbHVlczpjLmxlbmd0aC0xfX19XX0scC5wdXNoKCJFWFRfc3RydWN0dXJhbF9tZXRhZGF0YSIpKSxfKE0pJiYoZC5wdXNoKHt1cmk6TSxieXRlTGVuZ3RoOkkuYnl0ZUxlbmd0aH0pLGMucHVzaCh7YnVmZmVyOmQubGVuZ3RoLTEsYnl0ZU9mZnNldDowLGJ5dGVMZW5ndGg6SS5ieXRlTGVuZ3RoLHRhcmdldDozNDk2M30pLHUucHVzaCh7YnVmZmVyVmlldzpjLmxlbmd0aC0xLGJ5dGVPZmZzZXQ6MCxjb21wb25lbnRUeXBlOjUxMjUsY291bnQ6SS5sZW5ndGgsdHlwZToiU0NBTEFSIn0pLGJlLkNFU0lVTV9wcmltaXRpdmVfb3V0bGluZT17aW5kaWNlczp1Lmxlbmd0aC0xfSxwLnB1c2goIkNFU0lVTV9wcmltaXRpdmVfb3V0bGluZSIpKSxkLnB1c2goe3VyaTpBLGJ5dGVMZW5ndGg6eS5ieXRlTGVuZ3RofSksYy5wdXNoKHtidWZmZXI6ZC5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsYnl0ZUxlbmd0aDp5LmJ5dGVMZW5ndGgsdGFyZ2V0OjM0OTYzfSk7bGV0IGhlPVtdO3JldHVybiBFPjAmJih1LnB1c2goe2J1ZmZlclZpZXc6Yy5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsY29tcG9uZW50VHlwZTo1MTI1LGNvdW50OkUsdHlwZToiU0NBTEFSIn0pLGhlLnB1c2goe2F0dHJpYnV0ZXM6dWUsaW5kaWNlczp1Lmxlbmd0aC0xLG1hdGVyaWFsOmhlLmxlbmd0aCxleHRlbnNpb25zOmJlfSkpLEU8biYmKHUucHVzaCh7YnVmZmVyVmlldzpjLmxlbmd0aC0xLGJ5dGVPZmZzZXQ6NCpFLGNvbXBvbmVudFR5cGU6NTEyNSxjb3VudDpuLUUsdHlwZToiU0NBTEFSIn0pLGhlLnB1c2goe2F0dHJpYnV0ZXM6dWUsaW5kaWNlczp1Lmxlbmd0aC0xLG1hdGVyaWFsOmhlLmxlbmd0aCxleHRlbnNpb25zOmJlLGV4dHJhOntpc1RyYW5zcGFyZW50OiEwfX0pKSxsLnB1c2goe3ByaW1pdGl2ZXM6aGV9KSxtLnB1c2goMCksaC5wdXNoKHttZXNoOjB9KSx7YnVmZmVyczpkLGJ1ZmZlclZpZXdzOmMsYWNjZXNzb3JzOnUsbWVzaGVzOmwsbm9kZXM6aCxub2Rlc0luU2NlbmU6bSxyb290RXh0ZW5zaW9uczpiLGV4dGVuc2lvbnNVc2VkOnB9fWZ1bmN0aW9uIGs2KG4sZSx0LG8pe2xldCBhPW5ldyBVaW50OEFycmF5KG4sMCw1KTtyZXR1cm4gYVswXT09PTY4JiZhWzFdPT09ODImJmFbMl09PT02NSYmYVszXT09PTY3JiZhWzRdPT09Nzk/djYobix0KTpENihuLGUsdCxvKX1mdW5jdGlvbiB2NihuKXtsZXQgZT1ReSx0PW5ldyBlLkRlY29kZXJCdWZmZXIsbz1uZXcgVWludDhBcnJheShuKTt0LkluaXQobyxvLmxlbmd0aCk7bGV0IGE9bmV3IGUuRGVjb2RlcixyPWEuR2V0RW5jb2RlZEdlb21ldHJ5VHlwZSh0KSxpPW5ldyBlLk1ldGFkYXRhUXVlcmllcixmLGQ7cj09PWUuVFJJQU5HVUxBUl9NRVNIJiYoZj1uZXcgZS5NZXNoLGQ9YS5EZWNvZGVCdWZmZXJUb01lc2godCxmKSk7bGV0IGM9e3ZlcnRleENvdW50OlswXSxmZWF0dXJlQ291bnQ6MH07aWYoXyhkKSYmZC5vaygpJiZmLnB0ciE9PTApe2xldCB1PWYubnVtX2ZhY2VzKCksbD1mLm51bV9hdHRyaWJ1dGVzKCksaD1mLm51bV9wb2ludHMoKTtjLmluZGljZXM9bmV3IFVpbnQzMkFycmF5KHUqMyk7bGV0IG09Yy5pbmRpY2VzO2MudmVydGV4Q291bnRbMF09aCxjLnNjYWxlX3g9MSxjLnNjYWxlX3k9MTtsZXQgYj1uZXcgZS5EcmFjb0ludDMyQXJyYXkoMyk7Zm9yKGxldCBwPTA7cDx1OysrcClhLkdldEZhY2VGcm9tTWVzaChmLHAsYiksbVtwKjNdPWIuR2V0VmFsdWUoMCksbVtwKjMrMV09Yi5HZXRWYWx1ZSgxKSxtW3AqMysyXT1iLkdldFZhbHVlKDIpO2UuZGVzdHJveShiKTtmb3IobGV0IHA9MDtwPGw7KytwKXtsZXQgeT1hLkdldEF0dHJpYnV0ZShmLHApLEU9RjYoZSxhLGYseSxoKSxnPXkuYXR0cmlidXRlX3R5cGUoKSxBPSJ1bmtub3duIjtnPT09ZS5QT1NJVElPTj9BPSJwb3NpdGlvbnMiOmc9PT1lLk5PUk1BTD9BPSJub3JtYWxzIjpnPT09ZS5DT0xPUj9BPSJjb2xvcnMiOmc9PT1lLlRFWF9DT09SRCYmKEE9InV2MHMiKTtsZXQgVD1hLkdldEF0dHJpYnV0ZU1ldGFkYXRhKGYscCk7aWYoVC5wdHIhPT0wKXtsZXQgUj1pLk51bUVudHJpZXMoVCk7Zm9yKGxldCBTPTA7UzxSOysrUyl7bGV0IE09aS5HZXRFbnRyeU5hbWUoVCxTKTtNPT09Imkzcy1zY2FsZV94Ij9jLnNjYWxlX3g9aS5HZXREb3VibGVFbnRyeShULCJpM3Mtc2NhbGVfeCIpOk09PT0iaTNzLXNjYWxlX3kiP2Muc2NhbGVfeT1pLkdldERvdWJsZUVudHJ5KFQsImkzcy1zY2FsZV95Iik6TT09PSJpM3MtYXR0cmlidXRlLXR5cGUiJiYoQT1pLkdldFN0cmluZ0VudHJ5KFQsImkzcy1hdHRyaWJ1dGUtdHlwZSIpKX19XyhjW0FdKSYmY29uc29sZS5sb2coIkF0dHJpYnV0ZSBhbHJlYWR5IGV4aXN0cyIsQSksY1tBXT1FLEE9PT0iZmVhdHVyZS1pbmRleCImJmMuZmVhdHVyZUNvdW50Kyt9ZS5kZXN0cm95KGYpfXJldHVybiBlLmRlc3Ryb3koaSksZS5kZXN0cm95KGEpLGN9ZnVuY3Rpb24gRjYobixlLHQsbyxhKXtsZXQgcj1vLm51bV9jb21wb25lbnRzKCkqYSxpLGQ9W2Z1bmN0aW9uKCl7fSxmdW5jdGlvbigpe2k9bmV3IG4uRHJhY29JbnQ4QXJyYXkociksZS5HZXRBdHRyaWJ1dGVJbnQ4Rm9yQWxsUG9pbnRzKHQsbyxpKXx8Y29uc29sZS5lcnJvcigiQmFkIHN0cmVhbSIpO2xldCB1PW5ldyBJbnQ4QXJyYXkocik7Zm9yKGxldCBsPTA7bDxyOysrbCl1W2xdPWkuR2V0VmFsdWUobCk7cmV0dXJuIHV9LGZ1bmN0aW9uKCl7aT1uZXcgbi5EcmFjb0ludDhBcnJheShyKSxlLkdldEF0dHJpYnV0ZVVJbnQ4Rm9yQWxsUG9pbnRzKHQsbyxpKXx8Y29uc29sZS5lcnJvcigiQmFkIHN0cmVhbSIpO2xldCB1PW5ldyBVaW50OEFycmF5KHIpO2ZvcihsZXQgbD0wO2w8cjsrK2wpdVtsXT1pLkdldFZhbHVlKGwpO3JldHVybiB1fSxmdW5jdGlvbigpe2k9bmV3IG4uRHJhY29JbnQxNkFycmF5KHIpLGUuR2V0QXR0cmlidXRlSW50MTZGb3JBbGxQb2ludHModCxvLGkpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IHU9bmV3IEludDE2QXJyYXkocik7Zm9yKGxldCBsPTA7bDxyOysrbCl1W2xdPWkuR2V0VmFsdWUobCk7cmV0dXJuIHV9LGZ1bmN0aW9uKCl7aT1uZXcgbi5EcmFjb0ludDE2QXJyYXkociksZS5HZXRBdHRyaWJ1dGVVSW50MTZGb3JBbGxQb2ludHModCxvLGkpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IHU9bmV3IFVpbnQxNkFycmF5KHIpO2ZvcihsZXQgbD0wO2w8cjsrK2wpdVtsXT1pLkdldFZhbHVlKGwpO3JldHVybiB1fSxmdW5jdGlvbigpe2k9bmV3IG4uRHJhY29JbnQzMkFycmF5KHIpLGUuR2V0QXR0cmlidXRlSW50MzJGb3JBbGxQb2ludHModCxvLGkpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IHU9bmV3IEludDMyQXJyYXkocik7Zm9yKGxldCBsPTA7bDxyOysrbCl1W2xdPWkuR2V0VmFsdWUobCk7cmV0dXJuIHV9LGZ1bmN0aW9uKCl7aT1uZXcgbi5EcmFjb0ludDMyQXJyYXkociksZS5HZXRBdHRyaWJ1dGVVSW50MzJGb3JBbGxQb2ludHModCxvLGkpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IHU9bmV3IFVpbnQzMkFycmF5KHIpO2ZvcihsZXQgbD0wO2w8cjsrK2wpdVtsXT1pLkdldFZhbHVlKGwpO3JldHVybiB1fSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7aT1uZXcgbi5EcmFjb0Zsb2F0MzJBcnJheShyKSxlLkdldEF0dHJpYnV0ZUZsb2F0Rm9yQWxsUG9pbnRzKHQsbyxpKXx8Y29uc29sZS5lcnJvcigiQmFkIHN0cmVhbSIpO2xldCB1PW5ldyBGbG9hdDMyQXJyYXkocik7Zm9yKGxldCBsPTA7bDxyOysrbCl1W2xdPWkuR2V0VmFsdWUobCk7cmV0dXJuIHV9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe2k9bmV3IG4uRHJhY29VSW50OEFycmF5KHIpLGUuR2V0QXR0cmlidXRlVUludDhGb3JBbGxQb2ludHModCxvLGkpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IHU9bmV3IFVpbnQ4QXJyYXkocik7Zm9yKGxldCBsPTA7bDxyOysrbCl1W2xdPWkuR2V0VmFsdWUobCk7cmV0dXJuIHV9XVtvLmRhdGFfdHlwZSgpXSgpO3JldHVybiBfKGkpJiZuLmRlc3Ryb3koaSksZH1mdW5jdGlvbiBENihuLGUsdCxvKXtsZXQgYT17dmVydGV4Q291bnQ6MH0scj1uZXcgRGF0YVZpZXcobik7dHJ5e2xldCBpPTA7aWYoYS52ZXJ0ZXhDb3VudD1yLmdldFVpbnQzMihpLDEpLGkrPTQsYS5mZWF0dXJlQ291bnQ9ci5nZXRVaW50MzIoaSwxKSxpKz00LF8odCkpZm9yKGxldCBmPTA7Zjx0LmF0dHJpYnV0ZXMubGVuZ3RoO2YrKylfKHZtW3QuYXR0cmlidXRlc1tmXV0pP2k9dm1bdC5hdHRyaWJ1dGVzW2ZdXShhLG4saSk6Y29uc29sZS5lcnJvcigiVW5rbm93biBkZWNvZGVyIGZvciIsdC5hdHRyaWJ1dGVzW2ZdKTtlbHNle2xldCBmPWUub3JkZXJpbmcsZD1lLmZlYXR1cmVBdHRyaWJ1dGVPcmRlcjtfKG8pJiZfKG8uZ2VvbWV0cnlEYXRhKSYmXyhvLmdlb21ldHJ5RGF0YVswXSkmJl8oby5nZW9tZXRyeURhdGFbMF0ucGFyYW1zKSYmKGY9T2JqZWN0LmtleXMoby5nZW9tZXRyeURhdGFbMF0ucGFyYW1zLnZlcnRleEF0dHJpYnV0ZXMpLGQ9T2JqZWN0LmtleXMoby5nZW9tZXRyeURhdGFbMF0ucGFyYW1zLmZlYXR1cmVBdHRyaWJ1dGVzKSk7Zm9yKGxldCBjPTA7YzxmLmxlbmd0aDtjKyspe2xldCB1PXZtW2ZbY11dO2k9dShhLG4saSl9Zm9yKGxldCBjPTA7YzxkLmxlbmd0aDtjKyspe2xldCB1PXZtW2RbY11dO2k9dShhLG4saSl9fX1jYXRjaChpKXtjb25zb2xlLmVycm9yKGkpfXJldHVybiBhLnNjYWxlX3g9MSxhLnNjYWxlX3k9MSxhfWZ1bmN0aW9uIEI2KG4pe2xldCBlPWs2KG4uYmluYXJ5RGF0YSxuLnNjaGVtYSxuLmJ1ZmZlckluZm8sbi5mZWF0dXJlRGF0YSk7XyhuLmdlb2lkRGF0YUxpc3QpJiZuLmdlb2lkRGF0YUxpc3QubGVuZ3RoPjAmJmc2KGUudmVydGV4Q291bnQsZS5wb3NpdGlvbnMsZS5zY2FsZV94LGUuc2NhbGVfeSxuLmNhcnRvZ3JhcGhpY0NlbnRlcixuLmdlb2lkRGF0YUxpc3QsITEpLF82KGUudmVydGV4Q291bnQsZS5wb3NpdGlvbnMsZS5ub3JtYWxzLG4uY2FydG9ncmFwaGljQ2VudGVyLG4uY2FydGVzaWFuQ2VudGVyLG4ucGFyZW50Um90YXRpb24sbi5lbGxpcHNvaWRSYWRpaVNxdWFyZSxlLnNjYWxlX3gsZS5zY2FsZV95KSxfKGUudXYwcykmJl8oZVsidXYtcmVnaW9uIl0pJiZ5NihlLnZlcnRleENvdW50LGUudXYwcyxlWyJ1di1yZWdpb24iXSk7bGV0IHQ7aWYoXyhlWyJmZWF0dXJlLWluZGV4Il0pKXQ9ZVsiZmVhdHVyZS1pbmRleCJdO2Vsc2UgaWYoXyhlLmZhY2VSYW5nZSkpe3Q9bmV3IEFycmF5KGUudmVydGV4Q291bnQpO2ZvcihsZXQgaT0wO2k8ZS5mYWNlUmFuZ2UubGVuZ3RoLTE7aSs9Mil7bGV0IGY9aS8yLGQ9ZS5mYWNlUmFuZ2VbaV0sYz1lLmZhY2VSYW5nZVtpKzFdO2ZvcihsZXQgdT1kO3U8PWM7dSsrKXRbdSozXT1mLHRbdSozKzFdPWYsdFt1KjMrMl09Zn19aWYobi5jYWxjdWxhdGVOb3JtYWxzKXtsZXQgaT1JNihlLnZlcnRleENvdW50LGUuaW5kaWNlcyxlLnBvc2l0aW9ucyxlLm5vcm1hbHMsZS51djBzLGUuY29sb3JzLHQpO18oaS5ub3JtYWxzKSYmKGUubm9ybWFscz1pLm5vcm1hbHMsXyhpLnZlcnRleENvdW50KSYmKGUudmVydGV4Q291bnQ9aS52ZXJ0ZXhDb3VudCxlLmluZGljZXM9aS5pbmRpY2VzLGUucG9zaXRpb25zPWkucG9zaXRpb25zLGUudXYwcz1pLnV2MHMsZS5jb2xvcnM9aS5jb2xvcnMsdD1pLmZlYXR1cmVJbmRleCkpfWxldCBvPVA2KGUudmVydGV4Q291bnQsZS5pbmRpY2VzLGUucG9zaXRpb25zLGUubm9ybWFscyxlLnV2MHMsZS5jb2xvcnMsdCxuKSxhPXtwb3NpdGlvbnM6ZS5wb3NpdGlvbnMsaW5kaWNlczplLmluZGljZXMsZmVhdHVyZUluZGV4OnQsc291cmNlVVJMOm4udXJsLGNhcnRlc2lhbkNlbnRlcjpuLmNhcnRlc2lhbkNlbnRlcixwYXJlbnRSb3RhdGlvbjpuLnBhcmVudFJvdGF0aW9ufTtyZXR1cm4gby5fY3VzdG9tQXR0cmlidXRlcz1hLHttZXNoRGF0YTpvfX1hc3luYyBmdW5jdGlvbiBqNihuLGUpe2xldCB0PW4ud2ViQXNzZW1ibHlDb25maWc7cmV0dXJuIF8odCkmJl8odC53YXNtQmluYXJ5RmlsZSk/UXk9YXdhaXQoMCxaeS5kZWZhdWx0KSh0KTpReT1hd2FpdCgwLFp5LmRlZmF1bHQpKCksITB9ZnVuY3Rpb24gVTYobixlKXtsZXQgdD1uLndlYkFzc2VtYmx5Q29uZmlnO3JldHVybiBfKHQpP2o2KG4sZSk6QjYobixlKX12YXIgWnksUXkseHIsSW0sUG0sa20sSnksdm0sTDYsZTE9WCgoKT0+e2tuKCk7c2UoKTtfaSgpO1ZlKCk7Z3QoKTtNZSgpO2tzKCk7SW4oKTtVZSgpO1p5PWhhKF95KCksMSk7Z1MoKTt4cj1uZXcgcyxJbT1uZXcgcyxQbT1uZXcgcztrbT1uZXcgcyxKeT1uZXcgczt2bT17cG9zaXRpb246ZnVuY3Rpb24obixlLHQpe2xldCBvPW4udmVydGV4Q291bnQqMztyZXR1cm4gbi5wb3NpdGlvbnM9bmV3IEZsb2F0MzJBcnJheShlLHQsbyksdCs9byo0LHR9LG5vcm1hbDpmdW5jdGlvbihuLGUsdCl7bGV0IG89bi52ZXJ0ZXhDb3VudCozO3JldHVybiBuLm5vcm1hbHM9bmV3IEZsb2F0MzJBcnJheShlLHQsbyksdCs9byo0LHR9LHV2MDpmdW5jdGlvbihuLGUsdCl7bGV0IG89bi52ZXJ0ZXhDb3VudCoyO3JldHVybiBuLnV2MHM9bmV3IEZsb2F0MzJBcnJheShlLHQsbyksdCs9byo0LHR9LGNvbG9yOmZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1uLnZlcnRleENvdW50KjQ7cmV0dXJuIG4uY29sb3JzPW5ldyBVaW50OEFycmF5KGUsdCxvKSx0Kz1vLHR9LGZlYXR1cmVJZDpmdW5jdGlvbihuLGUsdCl7bGV0IG89bi5mZWF0dXJlQ291bnQ7cmV0dXJuIHQrPW8qOCx0fSxpZDpmdW5jdGlvbihuLGUsdCl7bGV0IG89bi5mZWF0dXJlQ291bnQ7cmV0dXJuIHQrPW8qOCx0fSxmYWNlUmFuZ2U6ZnVuY3Rpb24obixlLHQpe2xldCBvPW4uZmVhdHVyZUNvdW50KjI7cmV0dXJuIG4uZmFjZVJhbmdlPW5ldyBVaW50MzJBcnJheShlLHQsbyksdCs9byo0LHR9LHV2UmVnaW9uOmZ1bmN0aW9uKG4sZSx0KXtsZXQgbz1uLnZlcnRleENvdW50KjQ7cmV0dXJuIG5bInV2LXJlZ2lvbiJdPW5ldyBVaW50MTZBcnJheShlLHQsbyksdCs9byoyLHR9LHJlZ2lvbjpmdW5jdGlvbihuLGUsdCl7bGV0IG89bi52ZXJ0ZXhDb3VudCo0O3JldHVybiBuWyJ1di1yZWdpb24iXT1uZXcgVWludDE2QXJyYXkoZSx0LG8pLHQrPW8qMix0fX07TDY9bXQoVTYpfSk7ZnVuY3Rpb24gejYoKXtyZXR1cm4oa2Q9PT1udWxsfHxrZC5ieXRlTGVuZ3RoPT09MCkmJihrZD1uZXcgVWludDhBcnJheShCbi5tZW1vcnkuYnVmZmVyKSksa2R9ZnVuY3Rpb24gQVMobixlKXtyZXR1cm4gbj1uPj4+MCxUUy5kZWNvZGUoejYoKS5zdWJhcnJheShuLG4rZSkpfWZ1bmN0aW9uIEVTKCl7cmV0dXJuKHZkPT09bnVsbHx8dmQuYnl0ZUxlbmd0aD09PTApJiYodmQ9bmV3IFVpbnQzMkFycmF5KEJuLm1lbW9yeS5idWZmZXIpKSx2ZH1mdW5jdGlvbiBHNihuLGUpe3JldHVybiBuPW4+Pj4wLEVTKCkuc3ViYXJyYXkobi80LG4vNCtlKX1mdW5jdGlvbiBWNihuLGUpe2xldCB0PWUobi5sZW5ndGgqNCw0KT4+PjA7cmV0dXJuIEVTKCkuc2V0KG4sdC80KSxSUz1uLmxlbmd0aCx0fWZ1bmN0aW9uIHQxKG4pe2xldCBlPUJuLl9fd2JpbmRnZW5fZXhwb3J0XzAuZ2V0KG4pO3JldHVybiBCbi5fX2V4dGVybnJlZl90YWJsZV9kZWFsbG9jKG4pLGV9ZnVuY3Rpb24geFMobixlLHQsbyxhKXtsZXQgcj1Cbi5nZW5lcmF0ZV9zcGxhdF90ZXh0dXJlKG4sZSx0LG8sYSk7aWYoclsyXSl0aHJvdyB0MShyWzFdKTtyZXR1cm4gbjEuX193cmFwKHJbMF0pfWZ1bmN0aW9uIE9TKG4sZSx0KXtsZXQgbz1Cbi5yYWRpeF9zb3J0X2dhdXNzaWFuc19pbmRleGVzKG4sZSx0KTtpZihvWzJdKXRocm93IHQxKG9bMV0pO3JldHVybiB0MShvWzBdKX1hc3luYyBmdW5jdGlvbiBINihuLGUpe2lmKHR5cGVvZiBSZXNwb25zZT09ImZ1bmN0aW9uIiYmbiBpbnN0YW5jZW9mIFJlc3BvbnNlKXtpZih0eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmc9PSJmdW5jdGlvbiIpdHJ5e3JldHVybiBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhuLGUpfWNhdGNoKG8pe2lmKG4uaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpIT0iYXBwbGljYXRpb24vd2FzbSIpY29uc29sZS53YXJuKCJgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmdgIGZhaWxlZCBiZWNhdXNlIHlvdXIgc2VydmVyIGRvZXMgbm90IHNlcnZlIFdhc20gd2l0aCBgYXBwbGljYXRpb24vd2FzbWAgTUlNRSB0eXBlLiBGYWxsaW5nIGJhY2sgdG8gYFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlYCB3aGljaCBpcyBzbG93ZXIuIE9yaWdpbmFsIGVycm9yOlxuIixvKTtlbHNlIHRocm93IG99bGV0IHQ9YXdhaXQgbi5hcnJheUJ1ZmZlcigpO3JldHVybiBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0LGUpfWVsc2V7bGV0IHQ9YXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUobixlKTtyZXR1cm4gdCBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lkluc3RhbmNlP3tpbnN0YW5jZTp0LG1vZHVsZTpufTp0fX1mdW5jdGlvbiBTUygpe2xldCBuPXt9O3JldHVybiBuLndiZz17fSxuLndiZy5fX3diZ19idWZmZXJfNjA5Y2MzZWVlNTFlZDE1OD1mdW5jdGlvbihlKXtyZXR1cm4gZS5idWZmZXJ9LG4ud2JnLl9fd2JnX2xlbmd0aF8zYjRmMDIyMTg4YWU4ZGI2PWZ1bmN0aW9uKGUpe3JldHVybiBlLmxlbmd0aH0sbi53YmcuX193YmdfbGVuZ3RoX2E0NDYxOTNkYzIyYzEyZjg9ZnVuY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RofSxuLndiZy5fX3diZ19uZXdfNzgwYWJlZTVjMTczOWZkNz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IEZsb2F0MzJBcnJheShlKX0sbi53YmcuX193YmdfbmV3X2ExMjAwMmE3ZjkxYzc1YmU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGUpfSxuLndiZy5fX3diZ19uZXdfZTNiMzIxZGNmZWY4OWZjNz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFVpbnQzMkFycmF5KGUpfSxuLndiZy5fX3diZ19uZXd3aXRoYnl0ZW9mZnNldGFuZGxlbmd0aF9mMWRlYWQ0NGQxZmM3MjEyPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gbmV3IFVpbnQzMkFycmF5KGUsdD4+PjAsbz4+PjApfSxuLndiZy5fX3diZ19zZXRfMTBiYWQ5YmVlMGU5YzU4Yj1mdW5jdGlvbihlLHQsbyl7ZS5zZXQodCxvPj4+MCl9LG4ud2JnLl9fd2JnX3NldF82NTU5NWJkZDg2OGIzMDA5PWZ1bmN0aW9uKGUsdCxvKXtlLnNldCh0LG8+Pj4wKX0sbi53YmcuX193YmluZGdlbl9pbml0X2V4dGVybnJlZl90YWJsZT1mdW5jdGlvbigpe2xldCBlPUJuLl9fd2JpbmRnZW5fZXhwb3J0XzAsdD1lLmdyb3coNCk7ZS5zZXQoMCx2b2lkIDApLGUuc2V0KHQrMCx2b2lkIDApLGUuc2V0KHQrMSxudWxsKSxlLnNldCh0KzIsITApLGUuc2V0KHQrMywhMSl9LG4ud2JnLl9fd2JpbmRnZW5fbWVtb3J5PWZ1bmN0aW9uKCl7cmV0dXJuIEJuLm1lbW9yeX0sbi53YmcuX193YmluZGdlbl9zdHJpbmdfbmV3PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEFTKGUsdCl9LG4ud2JnLl9fd2JpbmRnZW5fdGhyb3c9ZnVuY3Rpb24oZSx0KXt0aHJvdyBuZXcgRXJyb3IoQVMoZSx0KSl9LG59ZnVuY3Rpb24gQ1MobixlKXtyZXR1cm4gQm49bi5leHBvcnRzLEs2Ll9fd2JpbmRnZW5fd2FzbV9tb2R1bGU9ZSx2ZD1udWxsLGtkPW51bGwsQm4uX193YmluZGdlbl9zdGFydCgpLEJufWZ1bmN0aW9uIEZtKG4pe2lmKEJuIT09dm9pZCAwKXJldHVybiBCbjt0eXBlb2YgbjwidSImJihPYmplY3QuZ2V0UHJvdG90eXBlT2Yobik9PT1PYmplY3QucHJvdG90eXBlP3ttb2R1bGU6bn09bjpjb25zb2xlLndhcm4oInVzaW5nIGRlcHJlY2F0ZWQgcGFyYW1ldGVycyBmb3IgYGluaXRTeW5jKClgOyBwYXNzIGEgc2luZ2xlIG9iamVjdCBpbnN0ZWFkIikpO2xldCBlPVNTKCk7biBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lk1vZHVsZXx8KG49bmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShuKSk7bGV0IHQ9bmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG4sZSk7cmV0dXJuIENTKHQsbil9YXN5bmMgZnVuY3Rpb24gSzYobil7aWYoQm4hPT12b2lkIDApcmV0dXJuIEJuO3R5cGVvZiBuPCJ1IiYmKE9iamVjdC5nZXRQcm90b3R5cGVPZihuKT09PU9iamVjdC5wcm90b3R5cGU/e21vZHVsZV9vcl9wYXRoOm59PW46Y29uc29sZS53YXJuKCJ1c2luZyBkZXByZWNhdGVkIHBhcmFtZXRlcnMgZm9yIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbjsgcGFzcyBhIHNpbmdsZSBvYmplY3QgaW5zdGVhZCIpKSx0eXBlb2Ygbj4idSImJihuPW5ldyBVUkwoIndhc21fc3BsYXRzX2JnLndhc20iLHE2LnVybCkpO2xldCBlPVNTKCk7KHR5cGVvZiBuPT0ic3RyaW5nInx8dHlwZW9mIFJlcXVlc3Q9PSJmdW5jdGlvbiImJm4gaW5zdGFuY2VvZiBSZXF1ZXN0fHx0eXBlb2YgVVJMPT0iZnVuY3Rpb24iJiZuIGluc3RhbmNlb2YgVVJMKSYmKG49ZmV0Y2gobikpO2xldHtpbnN0YW5jZTp0LG1vZHVsZTpvfT1hd2FpdCBINihhd2FpdCBuLGUpO3JldHVybiBDUyh0LG8pfXZhciBxNixCbixUUyxrZCx2ZCxSUyx3UyxuMSxvMT1YKCgpPT57cTY9e30sVFM9dHlwZW9mIFRleHREZWNvZGVyPCJ1Ij9uZXcgVGV4dERlY29kZXIoInV0Zi04Iix7aWdub3JlQk9NOiEwLGZhdGFsOiEwfSk6e2RlY29kZTooKT0+e3Rocm93IEVycm9yKCJUZXh0RGVjb2RlciBub3QgYXZhaWxhYmxlIil9fTt0eXBlb2YgVGV4dERlY29kZXI8InUiJiZUUy5kZWNvZGUoKTtrZD1udWxsO3ZkPW51bGw7UlM9MDt3Uz10eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnk+InUiP3tyZWdpc3RlcjooKT0+e30sdW5yZWdpc3RlcjooKT0+e319Om5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShuPT5Cbi5fX3diZ190ZXh0dXJlZGF0YV9mcmVlKG4+Pj4wLDEpKSxuMT1jbGFzcyBue3N0YXRpYyBfX3dyYXAoZSl7ZT1lPj4+MDtsZXQgdD1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKTtyZXR1cm4gdC5fX3diZ19wdHI9ZSx3Uy5yZWdpc3Rlcih0LHQuX193YmdfcHRyLHQpLHR9X19kZXN0cm95X2ludG9fcmF3KCl7bGV0IGU9dGhpcy5fX3diZ19wdHI7cmV0dXJuIHRoaXMuX193YmdfcHRyPTAsd1MudW5yZWdpc3Rlcih0aGlzKSxlfWZyZWUoKXtsZXQgZT10aGlzLl9fZGVzdHJveV9pbnRvX3JhdygpO0JuLl9fd2JnX3RleHR1cmVkYXRhX2ZyZWUoZSwwKX1nZXQgZGF0YSgpe2xldCBlPUJuLnRleHR1cmVkYXRhX2RhdGEodGhpcy5fX3diZ19wdHIpO3ZhciB0PUc2KGVbMF0sZVsxXSkuc2xpY2UoKTtyZXR1cm4gQm4uX193YmluZGdlbl9mcmVlKGVbMF0sZVsxXSo0LDQpLHR9Z2V0IHdpZHRoKCl7cmV0dXJuIEJuLnRleHR1cmVkYXRhX3dpZHRoKHRoaXMuX193YmdfcHRyKT4+PjB9Z2V0IGhlaWdodCgpe3JldHVybiBCbi50ZXh0dXJlZGF0YV9oZWlnaHQodGhpcy5fX3diZ19wdHIpPj4+MH1zdGF0aWMgbmV3KGUsdCxvKXtsZXQgYT1WNihlLEJuLl9fd2JpbmRnZW5fbWFsbG9jKSxyPVJTLGk9Qm4udGV4dHVyZWRhdGFfbmV3KGEscix0LG8pO3JldHVybiBuLl9fd3JhcChpKX19fSk7dmFyIGExPXt9OyRlKGExLHtkZWZhdWx0OigpPT5ZNn0pO2FzeW5jIGZ1bmN0aW9uIFc2KG4sZSl7bGV0IHQ9bi53ZWJBc3NlbWJseUNvbmZpZztpZihfKHQpJiZfKHQud2FzbUJpbmFyeSkpcmV0dXJuIEZtKHttb2R1bGU6dC53YXNtQmluYXJ5fSksITB9ZnVuY3Rpb24gWDYobixlKXtsZXQgdD1uLndlYkFzc2VtYmx5Q29uZmlnO2lmKF8odCkpcmV0dXJuIFc2KG4sZSk7bGV0e3ByaW1pdGl2ZTpvLHNvcnRUeXBlOmF9PW47aWYoYT09PSJJbmRleCIpcmV0dXJuIE9TKG8ucG9zaXRpb25zLG8ubW9kZWxWaWV3LG8uY291bnQpfXZhciBZNixyMT1YKCgpPT57a24oKTtzZSgpO28xKCk7WTY9bXQoWDYpfSk7dmFyIGkxPXt9OyRlKGkxLHtkZWZhdWx0OigpPT5RNn0pO2FzeW5jIGZ1bmN0aW9uIEo2KG4sZSl7bGV0IHQ9bi53ZWJBc3NlbWJseUNvbmZpZztyZXR1cm4gXyh0KSYmXyh0Lndhc21CaW5hcnkpPyhGbSh7bW9kdWxlOnQud2FzbUJpbmFyeX0pLCEwKTohMX1hc3luYyBmdW5jdGlvbiBaNihuLGUpe2xldCB0PW4ud2ViQXNzZW1ibHlDb25maWc7aWYoXyh0KSlyZXR1cm4gSjYobixlKTtsZXR7YXR0cmlidXRlczpvLGNvdW50OmF9PW4scj14UyhvLnBvc2l0aW9ucyxvLnNjYWxlcyxvLnJvdGF0aW9ucyxvLmNvbG9ycyxhKTtyZXR1cm57ZGF0YTpyLmRhdGEsd2lkdGg6ci53aWR0aCxoZWlnaHQ6ci5oZWlnaHR9fXZhciBRNixjMT1YKCgpPT57a24oKTtzZSgpO28xKCk7UTY9bXQoWjYpfSk7dmFyIHMxPXt9OyRlKHMxLHtkZWZhdWx0OigpPT5hen0pO2Z1bmN0aW9uIG56KG4sZSl7bGV0IHQ9bmV3IEZsb2F0NjRBcnJheShuLmFhYmJzKSxvPUFycmF5LmZyb20oe2xlbmd0aDo0fSwodSxsKT0+e2xldCBoPXMudW5wYWNrKHQsbCo2LCQ2KSxtPXMudW5wYWNrKHQsbCo2KzMsZXopO3JldHVybiByby5mcm9tQ29ybmVycyhoLG0sbmV3IHJvKX0pLGE9bmV3IEZsb2F0NjRBcnJheShuLmludmVyc2VUcmFuc2Zvcm0pLHI9JC51bnBhY2soYSwwLG5ldyAkKSxpPW5ldyBVaW50MzJBcnJheShuLnRyaWFuZ2xlSW5kaWNlcyksZj1uZXcgRmxvYXQ2NEFycmF5KG4udHJpYW5nbGVQb3NpdGlvbnMpLGQ9QXJyYXkuZnJvbSh7bGVuZ3RoOjR9LCgpPT5bXSk7Zm9yKGxldCB1PTA7dTxpLmxlbmd0aDt1Kyspe3MudW5wYWNrKGYsdSo5LERtWzBdKSxzLnVucGFjayhmLHUqOSszLERtWzFdKSxzLnVucGFjayhmLHUqOSs2LERtWzJdKTtsZXQgbD1veihyLERtKTtmb3IobGV0IGg9MDtoPDQ7aCsrKW9baF0uaW50ZXJzZWN0QXhpc0FsaWduZWRCb3VuZGluZ0JveChsKSYmZFtoXS5wdXNoKGlbdV0pfXJldHVybntpbnRlcnNlY3RpbmdUcmlhbmdsZXNBcnJheXM6ZC5tYXAodT0+e2xldCBsPW5ldyBVaW50MzJBcnJheSh1KTtyZXR1cm4gZS5wdXNoKGwuYnVmZmVyKSxsLmJ1ZmZlcn0pfX1mdW5jdGlvbiBveihuLGUpeyQubXVsdGlwbHlCeVBvaW50KG4sZVswXSxlWzBdKSwkLm11bHRpcGx5QnlQb2ludChuLGVbMV0sZVsxXSksJC5tdWx0aXBseUJ5UG9pbnQobixlWzJdLGVbMl0pO2xldCB0PXJvLmZyb21Qb2ludHMoZSx0eik7cmV0dXJuIHMuY2xhbXAodC5taW5pbXVtLE5TLE1TLHQubWluaW11bSkscy5jbGFtcCh0Lm1heGltdW0sTlMsTVMsdC5tYXhpbXVtKSx0fXZhciAkNixleixEbSx0eixNUyxOUyxheixmMT1YKCgpPT57a24oKTt1bigpO01lKCk7eWkoKTskNj1uZXcgcyxlej1uZXcgcyxEbT1bbmV3IHMsbmV3IHMsbmV3IHNdLHR6PW5ldyBybyxNUz1uZXcgcyguNSwuNSwuNSksTlM9bmV3IHMoLS41LC0uNSwtLjUpO2F6PW10KG56KX0pO3ZhciBwdCxpbyxkMT1YKCgpPT57b2MoKTtwdD17VU5TSUdORURfQllURTpOZS5VTlNJR05FRF9CWVRFLFVOU0lHTkVEX1NIT1JUOk5lLlVOU0lHTkVEX1NIT1JULFVOU0lHTkVEX0lOVDpOZS5VTlNJR05FRF9JTlQsRkxPQVQ6TmUuRkxPQVQsSEFMRl9GTE9BVDpOZS5IQUxGX0ZMT0FUX09FUyxVTlNJR05FRF9JTlRfMjRfODpOZS5VTlNJR05FRF9JTlRfMjRfOCxVTlNJR05FRF9TSE9SVF80XzRfNF80Ok5lLlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsVU5TSUdORURfU0hPUlRfNV81XzVfMTpOZS5VTlNJR05FRF9TSE9SVF81XzVfNV8xLFVOU0lHTkVEX1NIT1JUXzVfNl81Ok5lLlVOU0lHTkVEX1NIT1JUXzVfNl81fTtwdC50b1dlYkdMQ29uc3RhbnQ9ZnVuY3Rpb24obixlKXtzd2l0Y2gobil7Y2FzZSBwdC5VTlNJR05FRF9CWVRFOnJldHVybiBOZS5VTlNJR05FRF9CWVRFO2Nhc2UgcHQuVU5TSUdORURfU0hPUlQ6cmV0dXJuIE5lLlVOU0lHTkVEX1NIT1JUO2Nhc2UgcHQuVU5TSUdORURfSU5UOnJldHVybiBOZS5VTlNJR05FRF9JTlQ7Y2FzZSBwdC5GTE9BVDpyZXR1cm4gTmUuRkxPQVQ7Y2FzZSBwdC5IQUxGX0ZMT0FUOnJldHVybiBlLndlYmdsMj9OZS5IQUxGX0ZMT0FUOk5lLkhBTEZfRkxPQVRfT0VTO2Nhc2UgcHQuVU5TSUdORURfSU5UXzI0Xzg6cmV0dXJuIE5lLlVOU0lHTkVEX0lOVF8yNF84O2Nhc2UgcHQuVU5TSUdORURfU0hPUlRfNF80XzRfNDpyZXR1cm4gTmUuVU5TSUdORURfU0hPUlRfNF80XzRfNDtjYXNlIHB0LlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6cmV0dXJuIE5lLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE7Y2FzZSBwdC5VTlNJR05FRF9TSE9SVF81XzZfNTpyZXR1cm4gcHQuVU5TSUdORURfU0hPUlRfNV82XzV9fTtwdC5pc1BhY2tlZD1mdW5jdGlvbihuKXtyZXR1cm4gbj09PXB0LlVOU0lHTkVEX0lOVF8yNF84fHxuPT09cHQuVU5TSUdORURfU0hPUlRfNF80XzRfNHx8bj09PXB0LlVOU0lHTkVEX1NIT1JUXzVfNV81XzF8fG49PT1wdC5VTlNJR05FRF9TSE9SVF81XzZfNX07cHQuc2l6ZUluQnl0ZXM9ZnVuY3Rpb24obil7c3dpdGNoKG4pe2Nhc2UgcHQuVU5TSUdORURfQllURTpyZXR1cm4gMTtjYXNlIHB0LlVOU0lHTkVEX1NIT1JUOmNhc2UgcHQuVU5TSUdORURfU0hPUlRfNF80XzRfNDpjYXNlIHB0LlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6Y2FzZSBwdC5VTlNJR05FRF9TSE9SVF81XzZfNTpjYXNlIHB0LkhBTEZfRkxPQVQ6cmV0dXJuIDI7Y2FzZSBwdC5VTlNJR05FRF9JTlQ6Y2FzZSBwdC5GTE9BVDpjYXNlIHB0LlVOU0lHTkVEX0lOVF8yNF84OnJldHVybiA0fX07cHQudmFsaWRhdGU9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1wdC5VTlNJR05FRF9CWVRFfHxuPT09cHQuVU5TSUdORURfU0hPUlR8fG49PT1wdC5VTlNJR05FRF9JTlR8fG49PT1wdC5GTE9BVHx8bj09PXB0LkhBTEZfRkxPQVR8fG49PT1wdC5VTlNJR05FRF9JTlRfMjRfOHx8bj09PXB0LlVOU0lHTkVEX1NIT1JUXzRfNF80XzR8fG49PT1wdC5VTlNJR05FRF9TSE9SVF81XzVfNV8xfHxuPT09cHQuVU5TSUdORURfU0hPUlRfNV82XzV9O3B0LmdldFR5cGVkQXJyYXlDb25zdHJ1Y3Rvcj1mdW5jdGlvbihuKXtsZXQgZT1wdC5zaXplSW5CeXRlcyhuKTtyZXR1cm4gZT09PVVpbnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ/VWludDhBcnJheTplPT09VWludDE2QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ/VWludDE2QXJyYXk6ZT09PUZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCYmbj09PXB0LkZMT0FUP0Zsb2F0MzJBcnJheTpVaW50MzJBcnJheX07T2JqZWN0LmZyZWV6ZShwdCk7aW89cHR9KTt2YXIgcGUsVm4sSVM9WCgoKT0+e2QxKCk7b2MoKTtwZT17REVQVEhfQ09NUE9ORU5UOk5lLkRFUFRIX0NPTVBPTkVOVCxERVBUSF9TVEVOQ0lMOk5lLkRFUFRIX1NURU5DSUwsQUxQSEE6TmUuQUxQSEEsUkVEOk5lLlJFRCxSRzpOZS5SRyxSR0I6TmUuUkdCLFJHQkE6TmUuUkdCQSxSRURfSU5URUdFUjpOZS5SRURfSU5URUdFUixSR19JTlRFR0VSOk5lLlJHX0lOVEVHRVIsUkdCX0lOVEVHRVI6TmUuUkdCX0lOVEVHRVIsUkdCQV9JTlRFR0VSOk5lLlJHQkFfSU5URUdFUixMVU1JTkFOQ0U6TmUuTFVNSU5BTkNFLExVTUlOQU5DRV9BTFBIQTpOZS5MVU1JTkFOQ0VfQUxQSEEsUkdCX0RYVDE6TmUuQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVCxSR0JBX0RYVDE6TmUuQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQsUkdCQV9EWFQzOk5lLkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDNfRVhULFJHQkFfRFhUNTpOZS5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVCxSR0JfUFZSVENfNEJQUFYxOk5lLkNPTVBSRVNTRURfUkdCX1BWUlRDXzRCUFBWMV9JTUcsUkdCX1BWUlRDXzJCUFBWMTpOZS5DT01QUkVTU0VEX1JHQl9QVlJUQ18yQlBQVjFfSU1HLFJHQkFfUFZSVENfNEJQUFYxOk5lLkNPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HLFJHQkFfUFZSVENfMkJQUFYxOk5lLkNPTVBSRVNTRURfUkdCQV9QVlJUQ18yQlBQVjFfSU1HLFJHQkFfQVNUQzpOZS5DT01QUkVTU0VEX1JHQkFfQVNUQ180eDRfV0VCR0wsUkdCX0VUQzE6TmUuQ09NUFJFU1NFRF9SR0JfRVRDMV9XRUJHTCxSR0I4X0VUQzI6TmUuQ09NUFJFU1NFRF9SR0I4X0VUQzIsUkdCQThfRVRDMl9FQUM6TmUuQ09NUFJFU1NFRF9SR0JBOF9FVEMyX0VBQyxSR0JBX0JDNzpOZS5DT01QUkVTU0VEX1JHQkFfQlBUQ19VTk9STX07cGUuY29tcG9uZW50c0xlbmd0aD1mdW5jdGlvbihuKXtzd2l0Y2gobil7Y2FzZSBwZS5SR0I6Y2FzZSBwZS5SR0JfSU5URUdFUjpyZXR1cm4gMztjYXNlIHBlLlJHQkE6Y2FzZSBwZS5SR0JBX0lOVEVHRVI6cmV0dXJuIDQ7Y2FzZSBwZS5MVU1JTkFOQ0VfQUxQSEE6Y2FzZSBwZS5SRzpjYXNlIHBlLlJHX0lOVEVHRVI6cmV0dXJuIDI7Y2FzZSBwZS5BTFBIQTpjYXNlIHBlLlJFRDpjYXNlIHBlLlJFRF9JTlRFR0VSOmNhc2UgcGUuTFVNSU5BTkNFOnJldHVybiAxO2RlZmF1bHQ6cmV0dXJuIDF9fTtwZS52YWxpZGF0ZT1mdW5jdGlvbihuKXtyZXR1cm4gbj09PXBlLkRFUFRIX0NPTVBPTkVOVHx8bj09PXBlLkRFUFRIX1NURU5DSUx8fG49PT1wZS5BTFBIQXx8bj09PXBlLlJFRHx8bj09PXBlLlJHfHxuPT09cGUuUkdCfHxuPT09cGUuUkdCQXx8bj09PXBlLlJFRF9JTlRFR0VSfHxuPT09cGUuUkdfSU5URUdFUnx8bj09PXBlLlJHQl9JTlRFR0VSfHxuPT09cGUuUkdCQV9JTlRFR0VSfHxuPT09cGUuTFVNSU5BTkNFfHxuPT09cGUuTFVNSU5BTkNFX0FMUEhBfHxuPT09cGUuUkdCX0RYVDF8fG49PT1wZS5SR0JBX0RYVDF8fG49PT1wZS5SR0JBX0RYVDN8fG49PT1wZS5SR0JBX0RYVDV8fG49PT1wZS5SR0JfUFZSVENfNEJQUFYxfHxuPT09cGUuUkdCX1BWUlRDXzJCUFBWMXx8bj09PXBlLlJHQkFfUFZSVENfNEJQUFYxfHxuPT09cGUuUkdCQV9QVlJUQ18yQlBQVjF8fG49PT1wZS5SR0JBX0FTVEN8fG49PT1wZS5SR0JfRVRDMXx8bj09PXBlLlJHQjhfRVRDMnx8bj09PXBlLlJHQkE4X0VUQzJfRUFDfHxuPT09cGUuUkdCQV9CQzd9O3BlLmlzQ29sb3JGb3JtYXQ9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1wZS5SRUR8fG49PT1wZS5BTFBIQXx8bj09PXBlLlJHQnx8bj09PXBlLlJHQkF8fG49PT1wZS5MVU1JTkFOQ0V8fG49PT1wZS5MVU1JTkFOQ0VfQUxQSEF9O3BlLmlzRGVwdGhGb3JtYXQ9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1wZS5ERVBUSF9DT01QT05FTlR8fG49PT1wZS5ERVBUSF9TVEVOQ0lMfTtwZS5pc0NvbXByZXNzZWRGb3JtYXQ9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1wZS5SR0JfRFhUMXx8bj09PXBlLlJHQkFfRFhUMXx8bj09PXBlLlJHQkFfRFhUM3x8bj09PXBlLlJHQkFfRFhUNXx8bj09PXBlLlJHQl9QVlJUQ180QlBQVjF8fG49PT1wZS5SR0JfUFZSVENfMkJQUFYxfHxuPT09cGUuUkdCQV9QVlJUQ180QlBQVjF8fG49PT1wZS5SR0JBX1BWUlRDXzJCUFBWMXx8bj09PXBlLlJHQkFfQVNUQ3x8bj09PXBlLlJHQl9FVEMxfHxuPT09cGUuUkdCOF9FVEMyfHxuPT09cGUuUkdCQThfRVRDMl9FQUN8fG49PT1wZS5SR0JBX0JDN307cGUuaXNEWFRGb3JtYXQ9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1wZS5SR0JfRFhUMXx8bj09PXBlLlJHQkFfRFhUMXx8bj09PXBlLlJHQkFfRFhUM3x8bj09PXBlLlJHQkFfRFhUNX07cGUuaXNQVlJUQ0Zvcm1hdD1mdW5jdGlvbihuKXtyZXR1cm4gbj09PXBlLlJHQl9QVlJUQ180QlBQVjF8fG49PT1wZS5SR0JfUFZSVENfMkJQUFYxfHxuPT09cGUuUkdCQV9QVlJUQ180QlBQVjF8fG49PT1wZS5SR0JBX1BWUlRDXzJCUFBWMX07cGUuaXNBU1RDRm9ybWF0PWZ1bmN0aW9uKG4pe3JldHVybiBuPT09cGUuUkdCQV9BU1RDfTtwZS5pc0VUQzFGb3JtYXQ9ZnVuY3Rpb24obil7cmV0dXJuIG49PT1wZS5SR0JfRVRDMX07cGUuaXNFVEMyRm9ybWF0PWZ1bmN0aW9uKG4pe3JldHVybiBuPT09cGUuUkdCOF9FVEMyfHxuPT09cGUuUkdCQThfRVRDMl9FQUN9O3BlLmlzQkM3Rm9ybWF0PWZ1bmN0aW9uKG4pe3JldHVybiBuPT09cGUuUkdCQV9CQzd9O3BlLmNvbXByZXNzZWRUZXh0dXJlU2l6ZUluQnl0ZXM9ZnVuY3Rpb24obixlLHQpe3N3aXRjaChuKXtjYXNlIHBlLlJHQl9EWFQxOmNhc2UgcGUuUkdCQV9EWFQxOmNhc2UgcGUuUkdCX0VUQzE6Y2FzZSBwZS5SR0I4X0VUQzI6cmV0dXJuIE1hdGguZmxvb3IoKGUrMykvNCkqTWF0aC5mbG9vcigodCszKS80KSo4O2Nhc2UgcGUuUkdCQV9EWFQzOmNhc2UgcGUuUkdCQV9EWFQ1OmNhc2UgcGUuUkdCQV9BU1RDOmNhc2UgcGUuUkdCQThfRVRDMl9FQUM6cmV0dXJuIE1hdGguZmxvb3IoKGUrMykvNCkqTWF0aC5mbG9vcigodCszKS80KSoxNjtjYXNlIHBlLlJHQl9QVlJUQ180QlBQVjE6Y2FzZSBwZS5SR0JBX1BWUlRDXzRCUFBWMTpyZXR1cm4gTWF0aC5mbG9vcigoTWF0aC5tYXgoZSw4KSpNYXRoLm1heCh0LDgpKjQrNykvOCk7Y2FzZSBwZS5SR0JfUFZSVENfMkJQUFYxOmNhc2UgcGUuUkdCQV9QVlJUQ18yQlBQVjE6cmV0dXJuIE1hdGguZmxvb3IoKE1hdGgubWF4KGUsMTYpKk1hdGgubWF4KHQsOCkqMis3KS84KTtjYXNlIHBlLlJHQkFfQkM3OnJldHVybiBNYXRoLmNlaWwoZS80KSpNYXRoLmNlaWwodC80KSoxNjtkZWZhdWx0OnJldHVybiAwfX07cGUudGV4dHVyZVNpemVJbkJ5dGVzPWZ1bmN0aW9uKG4sZSx0LG8pe2xldCBhPXBlLmNvbXBvbmVudHNMZW5ndGgobik7cmV0dXJuIGlvLmlzUGFja2VkKGUpJiYoYT0xKSxhKmlvLnNpemVJbkJ5dGVzKGUpKnQqb307cGUudGV4dHVyZTNEU2l6ZUluQnl0ZXM9ZnVuY3Rpb24obixlLHQsbyxhKXtsZXQgcj1wZS5jb21wb25lbnRzTGVuZ3RoKG4pO3JldHVybiBpby5pc1BhY2tlZChlKSYmKHI9MSkscippby5zaXplSW5CeXRlcyhlKSp0Km8qYX07cGUuYWxpZ25tZW50SW5CeXRlcz1mdW5jdGlvbihuLGUsdCl7bGV0IG89cGUudGV4dHVyZVNpemVJbkJ5dGVzKG4sZSx0LDEpJTQ7cmV0dXJuIG89PT0wPzQ6bz09PTI/MjoxfTtwZS5jcmVhdGVUeXBlZEFycmF5PWZ1bmN0aW9uKG4sZSx0LG8pe2xldCBhPWlvLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcihlKSxyPXBlLmNvbXBvbmVudHNMZW5ndGgobikqdCpvO3JldHVybiBuZXcgYShyKX07cGUuZmxpcFk9ZnVuY3Rpb24obixlLHQsbyxhKXtpZihhPT09MSlyZXR1cm4gbjtsZXQgcj1wZS5jcmVhdGVUeXBlZEFycmF5KGUsdCxvLGEpLGk9cGUuY29tcG9uZW50c0xlbmd0aChlKSxmPW8qaTtmb3IobGV0IGQ9MDtkPGE7KytkKXtsZXQgYz1kKm8qaSx1PShhLWQtMSkqbyppO2ZvcihsZXQgbD0wO2w8ZjsrK2wpclt1K2xdPW5bYytsXX1yZXR1cm4gcn07cGUudG9JbnRlcm5hbEZvcm1hdD1mdW5jdGlvbihuLGUsdCl7aWYoIXQud2ViZ2wyKXJldHVybiBuO2lmKG49PT1wZS5ERVBUSF9TVEVOQ0lMKXJldHVybiBOZS5ERVBUSDI0X1NURU5DSUw4O2lmKG49PT1wZS5ERVBUSF9DT01QT05FTlQpe2lmKGU9PT1pby5VTlNJR05FRF9TSE9SVClyZXR1cm4gTmUuREVQVEhfQ09NUE9ORU5UMTY7aWYoZT09PWlvLlVOU0lHTkVEX0lOVClyZXR1cm4gTmUuREVQVEhfQ09NUE9ORU5UMjR9aWYoZT09PWlvLkZMT0FUKXN3aXRjaChuKXtjYXNlIHBlLlJHQkE6cmV0dXJuIE5lLlJHQkEzMkY7Y2FzZSBwZS5SR0I6cmV0dXJuIE5lLlJHQjMyRjtjYXNlIHBlLlJHOnJldHVybiBOZS5SRzMyRjtjYXNlIHBlLlJFRDpyZXR1cm4gTmUuUjMyRn1pZihlPT09aW8uSEFMRl9GTE9BVClzd2l0Y2gobil7Y2FzZSBwZS5SR0JBOnJldHVybiBOZS5SR0JBMTZGO2Nhc2UgcGUuUkdCOnJldHVybiBOZS5SR0IxNkY7Y2FzZSBwZS5SRzpyZXR1cm4gTmUuUkcxNkY7Y2FzZSBwZS5SRUQ6cmV0dXJuIE5lLlIxNkZ9aWYoZT09PWlvLlVOU0lHTkVEX0JZVEUpc3dpdGNoKG4pe2Nhc2UgcGUuUkdCQTpyZXR1cm4gTmUuUkdCQTg7Y2FzZSBwZS5SR0I6cmV0dXJuIE5lLlJHQjg7Y2FzZSBwZS5SRzpyZXR1cm4gTmUuUkc4O2Nhc2UgcGUuUkVEOnJldHVybiBOZS5SOH1pZihlPT09aW8uSU5UKXN3aXRjaChuKXtjYXNlIHBlLlJHQkFfSU5URUdFUjpyZXR1cm4gTmUuUkdCQTMySTtjYXNlIHBlLlJHQl9JTlRFR0VSOnJldHVybiBOZS5SR0IzMkk7Y2FzZSBwZS5SR19JTlRFR0VSOnJldHVybiBOZS5SRzMySTtjYXNlIHBlLlJFRF9JTlRFR0VSOnJldHVybiBOZS5SMzJJfWlmKGU9PT1pby5VTlNJR05FRF9JTlQpc3dpdGNoKG4pe2Nhc2UgcGUuUkdCQV9JTlRFR0VSOnJldHVybiBOZS5SR0JBMzJVSTtjYXNlIHBlLlJHQl9JTlRFR0VSOnJldHVybiBOZS5SR0IzMlVJO2Nhc2UgcGUuUkdfSU5URUdFUjpyZXR1cm4gTmUuUkczMlVJO2Nhc2UgcGUuUkVEX0lOVEVHRVI6cmV0dXJuIE5lLlIzMlVJfXJldHVybiBufTtPYmplY3QuZnJlZXplKHBlKTtWbj1wZX0pO3ZhciBQUyxGZCxrUz1YKCgpPT57UFM9e1ZLX0ZPUk1BVF9VTkRFRklORUQ6MCxWS19GT1JNQVRfUjRHNF9VTk9STV9QQUNLODoxLFZLX0ZPUk1BVF9SNEc0QjRBNF9VTk9STV9QQUNLMTY6MixWS19GT1JNQVRfQjRHNFI0QTRfVU5PUk1fUEFDSzE2OjMsVktfRk9STUFUX1I1RzZCNV9VTk9STV9QQUNLMTY6NCxWS19GT1JNQVRfQjVHNlI1X1VOT1JNX1BBQ0sxNjo1LFZLX0ZPUk1BVF9SNUc1QjVBMV9VTk9STV9QQUNLMTY6NixWS19GT1JNQVRfQjVHNVI1QTFfVU5PUk1fUEFDSzE2OjcsVktfRk9STUFUX0ExUjVHNUI1X1VOT1JNX1BBQ0sxNjo4LFZLX0ZPUk1BVF9SOF9VTk9STTo5LFZLX0ZPUk1BVF9SOF9TTk9STToxMCxWS19GT1JNQVRfUjhfVVNDQUxFRDoxMSxWS19GT1JNQVRfUjhfU1NDQUxFRDoxMixWS19GT1JNQVRfUjhfVUlOVDoxMyxWS19GT1JNQVRfUjhfU0lOVDoxNCxWS19GT1JNQVRfUjhfU1JHQjoxNSxWS19GT1JNQVRfUjhHOF9VTk9STToxNixWS19GT1JNQVRfUjhHOF9TTk9STToxNyxWS19GT1JNQVRfUjhHOF9VU0NBTEVEOjE4LFZLX0ZPUk1BVF9SOEc4X1NTQ0FMRUQ6MTksVktfRk9STUFUX1I4RzhfVUlOVDoyMCxWS19GT1JNQVRfUjhHOF9TSU5UOjIxLFZLX0ZPUk1BVF9SOEc4X1NSR0I6MjIsVktfRk9STUFUX1I4RzhCOF9VTk9STToyMyxWS19GT1JNQVRfUjhHOEI4X1NOT1JNOjI0LFZLX0ZPUk1BVF9SOEc4QjhfVVNDQUxFRDoyNSxWS19GT1JNQVRfUjhHOEI4X1NTQ0FMRUQ6MjYsVktfRk9STUFUX1I4RzhCOF9VSU5UOjI3LFZLX0ZPUk1BVF9SOEc4QjhfU0lOVDoyOCxWS19GT1JNQVRfUjhHOEI4X1NSR0I6MjksVktfRk9STUFUX0I4RzhSOF9VTk9STTozMCxWS19GT1JNQVRfQjhHOFI4X1NOT1JNOjMxLFZLX0ZPUk1BVF9COEc4UjhfVVNDQUxFRDozMixWS19GT1JNQVRfQjhHOFI4X1NTQ0FMRUQ6MzMsVktfRk9STUFUX0I4RzhSOF9VSU5UOjM0LFZLX0ZPUk1BVF9COEc4UjhfU0lOVDozNSxWS19GT1JNQVRfQjhHOFI4X1NSR0I6MzYsVktfRk9STUFUX1I4RzhCOEE4X1VOT1JNOjM3LFZLX0ZPUk1BVF9SOEc4QjhBOF9TTk9STTozOCxWS19GT1JNQVRfUjhHOEI4QThfVVNDQUxFRDozOSxWS19GT1JNQVRfUjhHOEI4QThfU1NDQUxFRDo0MCxWS19GT1JNQVRfUjhHOEI4QThfVUlOVDo0MSxWS19GT1JNQVRfUjhHOEI4QThfU0lOVDo0MixWS19GT1JNQVRfUjhHOEI4QThfU1JHQjo0MyxWS19GT1JNQVRfQjhHOFI4QThfVU5PUk06NDQsVktfRk9STUFUX0I4RzhSOEE4X1NOT1JNOjQ1LFZLX0ZPUk1BVF9COEc4UjhBOF9VU0NBTEVEOjQ2LFZLX0ZPUk1BVF9COEc4UjhBOF9TU0NBTEVEOjQ3LFZLX0ZPUk1BVF9COEc4UjhBOF9VSU5UOjQ4LFZLX0ZPUk1BVF9COEc4UjhBOF9TSU5UOjQ5LFZLX0ZPUk1BVF9COEc4UjhBOF9TUkdCOjUwLFZLX0ZPUk1BVF9BOEI4RzhSOF9VTk9STV9QQUNLMzI6NTEsVktfRk9STUFUX0E4QjhHOFI4X1NOT1JNX1BBQ0szMjo1MixWS19GT1JNQVRfQThCOEc4UjhfVVNDQUxFRF9QQUNLMzI6NTMsVktfRk9STUFUX0E4QjhHOFI4X1NTQ0FMRURfUEFDSzMyOjU0LFZLX0ZPUk1BVF9BOEI4RzhSOF9VSU5UX1BBQ0szMjo1NSxWS19GT1JNQVRfQThCOEc4UjhfU0lOVF9QQUNLMzI6NTYsVktfRk9STUFUX0E4QjhHOFI4X1NSR0JfUEFDSzMyOjU3LFZLX0ZPUk1BVF9BMlIxMEcxMEIxMF9VTk9STV9QQUNLMzI6NTgsVktfRk9STUFUX0EyUjEwRzEwQjEwX1NOT1JNX1BBQ0szMjo1OSxWS19GT1JNQVRfQTJSMTBHMTBCMTBfVVNDQUxFRF9QQUNLMzI6NjAsVktfRk9STUFUX0EyUjEwRzEwQjEwX1NTQ0FMRURfUEFDSzMyOjYxLFZLX0ZPUk1BVF9BMlIxMEcxMEIxMF9VSU5UX1BBQ0szMjo2MixWS19GT1JNQVRfQTJSMTBHMTBCMTBfU0lOVF9QQUNLMzI6NjMsVktfRk9STUFUX0EyQjEwRzEwUjEwX1VOT1JNX1BBQ0szMjo2NCxWS19GT1JNQVRfQTJCMTBHMTBSMTBfU05PUk1fUEFDSzMyOjY1LFZLX0ZPUk1BVF9BMkIxMEcxMFIxMF9VU0NBTEVEX1BBQ0szMjo2NixWS19GT1JNQVRfQTJCMTBHMTBSMTBfU1NDQUxFRF9QQUNLMzI6NjcsVktfRk9STUFUX0EyQjEwRzEwUjEwX1VJTlRfUEFDSzMyOjY4LFZLX0ZPUk1BVF9BMkIxMEcxMFIxMF9TSU5UX1BBQ0szMjo2OSxWS19GT1JNQVRfUjE2X1VOT1JNOjcwLFZLX0ZPUk1BVF9SMTZfU05PUk06NzEsVktfRk9STUFUX1IxNl9VU0NBTEVEOjcyLFZLX0ZPUk1BVF9SMTZfU1NDQUxFRDo3MyxWS19GT1JNQVRfUjE2X1VJTlQ6NzQsVktfRk9STUFUX1IxNl9TSU5UOjc1LFZLX0ZPUk1BVF9SMTZfU0ZMT0FUOjc2LFZLX0ZPUk1BVF9SMTZHMTZfVU5PUk06NzcsVktfRk9STUFUX1IxNkcxNl9TTk9STTo3OCxWS19GT1JNQVRfUjE2RzE2X1VTQ0FMRUQ6NzksVktfRk9STUFUX1IxNkcxNl9TU0NBTEVEOjgwLFZLX0ZPUk1BVF9SMTZHMTZfVUlOVDo4MSxWS19GT1JNQVRfUjE2RzE2X1NJTlQ6ODIsVktfRk9STUFUX1IxNkcxNl9TRkxPQVQ6ODMsVktfRk9STUFUX1IxNkcxNkIxNl9VTk9STTo4NCxWS19GT1JNQVRfUjE2RzE2QjE2X1NOT1JNOjg1LFZLX0ZPUk1BVF9SMTZHMTZCMTZfVVNDQUxFRDo4NixWS19GT1JNQVRfUjE2RzE2QjE2X1NTQ0FMRUQ6ODcsVktfRk9STUFUX1IxNkcxNkIxNl9VSU5UOjg4LFZLX0ZPUk1BVF9SMTZHMTZCMTZfU0lOVDo4OSxWS19GT1JNQVRfUjE2RzE2QjE2X1NGTE9BVDo5MCxWS19GT1JNQVRfUjE2RzE2QjE2QTE2X1VOT1JNOjkxLFZLX0ZPUk1BVF9SMTZHMTZCMTZBMTZfU05PUk06OTIsVktfRk9STUFUX1IxNkcxNkIxNkExNl9VU0NBTEVEOjkzLFZLX0ZPUk1BVF9SMTZHMTZCMTZBMTZfU1NDQUxFRDo5NCxWS19GT1JNQVRfUjE2RzE2QjE2QTE2X1VJTlQ6OTUsVktfRk9STUFUX1IxNkcxNkIxNkExNl9TSU5UOjk2LFZLX0ZPUk1BVF9SMTZHMTZCMTZBMTZfU0ZMT0FUOjk3LFZLX0ZPUk1BVF9SMzJfVUlOVDo5OCxWS19GT1JNQVRfUjMyX1NJTlQ6OTksVktfRk9STUFUX1IzMl9TRkxPQVQ6MTAwLFZLX0ZPUk1BVF9SMzJHMzJfVUlOVDoxMDEsVktfRk9STUFUX1IzMkczMl9TSU5UOjEwMixWS19GT1JNQVRfUjMyRzMyX1NGTE9BVDoxMDMsVktfRk9STUFUX1IzMkczMkIzMl9VSU5UOjEwNCxWS19GT1JNQVRfUjMyRzMyQjMyX1NJTlQ6MTA1LFZLX0ZPUk1BVF9SMzJHMzJCMzJfU0ZMT0FUOjEwNixWS19GT1JNQVRfUjMyRzMyQjMyQTMyX1VJTlQ6MTA3LFZLX0ZPUk1BVF9SMzJHMzJCMzJBMzJfU0lOVDoxMDgsVktfRk9STUFUX1IzMkczMkIzMkEzMl9TRkxPQVQ6MTA5LFZLX0ZPUk1BVF9SNjRfVUlOVDoxMTAsVktfRk9STUFUX1I2NF9TSU5UOjExMSxWS19GT1JNQVRfUjY0X1NGTE9BVDoxMTIsVktfRk9STUFUX1I2NEc2NF9VSU5UOjExMyxWS19GT1JNQVRfUjY0RzY0X1NJTlQ6MTE0LFZLX0ZPUk1BVF9SNjRHNjRfU0ZMT0FUOjExNSxWS19GT1JNQVRfUjY0RzY0QjY0X1VJTlQ6MTE2LFZLX0ZPUk1BVF9SNjRHNjRCNjRfU0lOVDoxMTcsVktfRk9STUFUX1I2NEc2NEI2NF9TRkxPQVQ6MTE4LFZLX0ZPUk1BVF9SNjRHNjRCNjRBNjRfVUlOVDoxMTksVktfRk9STUFUX1I2NEc2NEI2NEE2NF9TSU5UOjEyMCxWS19GT1JNQVRfUjY0RzY0QjY0QTY0X1NGTE9BVDoxMjEsVktfRk9STUFUX0IxMEcxMVIxMV9VRkxPQVRfUEFDSzMyOjEyMixWS19GT1JNQVRfRTVCOUc5UjlfVUZMT0FUX1BBQ0szMjoxMjMsVktfRk9STUFUX0QxNl9VTk9STToxMjQsVktfRk9STUFUX1g4X0QyNF9VTk9STV9QQUNLMzI6MTI1LFZLX0ZPUk1BVF9EMzJfU0ZMT0FUOjEyNixWS19GT1JNQVRfUzhfVUlOVDoxMjcsVktfRk9STUFUX0QxNl9VTk9STV9TOF9VSU5UOjEyOCxWS19GT1JNQVRfRDI0X1VOT1JNX1M4X1VJTlQ6MTI5LFZLX0ZPUk1BVF9EMzJfU0ZMT0FUX1M4X1VJTlQ6MTMwLFZLX0ZPUk1BVF9CQzFfUkdCX1VOT1JNX0JMT0NLOjEzMSxWS19GT1JNQVRfQkMxX1JHQl9TUkdCX0JMT0NLOjEzMixWS19GT1JNQVRfQkMxX1JHQkFfVU5PUk1fQkxPQ0s6MTMzLFZLX0ZPUk1BVF9CQzFfUkdCQV9TUkdCX0JMT0NLOjEzNCxWS19GT1JNQVRfQkMyX1VOT1JNX0JMT0NLOjEzNSxWS19GT1JNQVRfQkMyX1NSR0JfQkxPQ0s6MTM2LFZLX0ZPUk1BVF9CQzNfVU5PUk1fQkxPQ0s6MTM3LFZLX0ZPUk1BVF9CQzNfU1JHQl9CTE9DSzoxMzgsVktfRk9STUFUX0JDNF9VTk9STV9CTE9DSzoxMzksVktfRk9STUFUX0JDNF9TTk9STV9CTE9DSzoxNDAsVktfRk9STUFUX0JDNV9VTk9STV9CTE9DSzoxNDEsVktfRk9STUFUX0JDNV9TTk9STV9CTE9DSzoxNDIsVktfRk9STUFUX0JDNkhfVUZMT0FUX0JMT0NLOjE0MyxWS19GT1JNQVRfQkM2SF9TRkxPQVRfQkxPQ0s6MTQ0LFZLX0ZPUk1BVF9CQzdfVU5PUk1fQkxPQ0s6MTQ1LFZLX0ZPUk1BVF9CQzdfU1JHQl9CTE9DSzoxNDYsVktfRk9STUFUX0VUQzJfUjhHOEI4X1VOT1JNX0JMT0NLOjE0NyxWS19GT1JNQVRfRVRDMl9SOEc4QjhfU1JHQl9CTE9DSzoxNDgsVktfRk9STUFUX0VUQzJfUjhHOEI4QTFfVU5PUk1fQkxPQ0s6MTQ5LFZLX0ZPUk1BVF9FVEMyX1I4RzhCOEExX1NSR0JfQkxPQ0s6MTUwLFZLX0ZPUk1BVF9FVEMyX1I4RzhCOEE4X1VOT1JNX0JMT0NLOjE1MSxWS19GT1JNQVRfRVRDMl9SOEc4QjhBOF9TUkdCX0JMT0NLOjE1MixWS19GT1JNQVRfRUFDX1IxMV9VTk9STV9CTE9DSzoxNTMsVktfRk9STUFUX0VBQ19SMTFfU05PUk1fQkxPQ0s6MTU0LFZLX0ZPUk1BVF9FQUNfUjExRzExX1VOT1JNX0JMT0NLOjE1NSxWS19GT1JNQVRfRUFDX1IxMUcxMV9TTk9STV9CTE9DSzoxNTYsVktfRk9STUFUX0FTVENfNHg0X1VOT1JNX0JMT0NLOjE1NyxWS19GT1JNQVRfQVNUQ180eDRfU1JHQl9CTE9DSzoxNTgsVktfRk9STUFUX0FTVENfNXg0X1VOT1JNX0JMT0NLOjE1OSxWS19GT1JNQVRfQVNUQ181eDRfU1JHQl9CTE9DSzoxNjAsVktfRk9STUFUX0FTVENfNXg1X1VOT1JNX0JMT0NLOjE2MSxWS19GT1JNQVRfQVNUQ181eDVfU1JHQl9CTE9DSzoxNjIsVktfRk9STUFUX0FTVENfNng1X1VOT1JNX0JMT0NLOjE2MyxWS19GT1JNQVRfQVNUQ182eDVfU1JHQl9CTE9DSzoxNjQsVktfRk9STUFUX0FTVENfNng2X1VOT1JNX0JMT0NLOjE2NSxWS19GT1JNQVRfQVNUQ182eDZfU1JHQl9CTE9DSzoxNjYsVktfRk9STUFUX0FTVENfOHg1X1VOT1JNX0JMT0NLOjE2NyxWS19GT1JNQVRfQVNUQ184eDVfU1JHQl9CTE9DSzoxNjgsVktfRk9STUFUX0FTVENfOHg2X1VOT1JNX0JMT0NLOjE2OSxWS19GT1JNQVRfQVNUQ184eDZfU1JHQl9CTE9DSzoxNzAsVktfRk9STUFUX0FTVENfOHg4X1VOT1JNX0JMT0NLOjE3MSxWS19GT1JNQVRfQVNUQ184eDhfU1JHQl9CTE9DSzoxNzIsVktfRk9STUFUX0FTVENfMTB4NV9VTk9STV9CTE9DSzoxNzMsVktfRk9STUFUX0FTVENfMTB4NV9TUkdCX0JMT0NLOjE3NCxWS19GT1JNQVRfQVNUQ18xMHg2X1VOT1JNX0JMT0NLOjE3NSxWS19GT1JNQVRfQVNUQ18xMHg2X1NSR0JfQkxPQ0s6MTc2LFZLX0ZPUk1BVF9BU1RDXzEweDhfVU5PUk1fQkxPQ0s6MTc3LFZLX0ZPUk1BVF9BU1RDXzEweDhfU1JHQl9CTE9DSzoxNzgsVktfRk9STUFUX0FTVENfMTB4MTBfVU5PUk1fQkxPQ0s6MTc5LFZLX0ZPUk1BVF9BU1RDXzEweDEwX1NSR0JfQkxPQ0s6MTgwLFZLX0ZPUk1BVF9BU1RDXzEyeDEwX1VOT1JNX0JMT0NLOjE4MSxWS19GT1JNQVRfQVNUQ18xMngxMF9TUkdCX0JMT0NLOjE4MixWS19GT1JNQVRfQVNUQ18xMngxMl9VTk9STV9CTE9DSzoxODMsVktfRk9STUFUX0FTVENfMTJ4MTJfU1JHQl9CTE9DSzoxODQsVktfRk9STUFUX0c4QjhHOFI4XzQyMl9VTk9STToxMDAwMTU2ZTMsVktfRk9STUFUX0I4RzhSOEc4XzQyMl9VTk9STToxMDAwMTU2MDAxLFZLX0ZPUk1BVF9HOF9COF9SOF8zUExBTkVfNDIwX1VOT1JNOjEwMDAxNTYwMDIsVktfRk9STUFUX0c4X0I4UjhfMlBMQU5FXzQyMF9VTk9STToxMDAwMTU2MDAzLFZLX0ZPUk1BVF9HOF9COF9SOF8zUExBTkVfNDIyX1VOT1JNOjEwMDAxNTYwMDQsVktfRk9STUFUX0c4X0I4UjhfMlBMQU5FXzQyMl9VTk9STToxMDAwMTU2MDA1LFZLX0ZPUk1BVF9HOF9COF9SOF8zUExBTkVfNDQ0X1VOT1JNOjEwMDAxNTYwMDYsVktfRk9STUFUX1IxMFg2X1VOT1JNX1BBQ0sxNjoxMDAwMTU2MDA3LFZLX0ZPUk1BVF9SMTBYNkcxMFg2X1VOT1JNXzJQQUNLMTY6MTAwMDE1NjAwOCxWS19GT1JNQVRfUjEwWDZHMTBYNkIxMFg2QTEwWDZfVU5PUk1fNFBBQ0sxNjoxMDAwMTU2MDA5LFZLX0ZPUk1BVF9HMTBYNkIxMFg2RzEwWDZSMTBYNl80MjJfVU5PUk1fNFBBQ0sxNjoxMDAwMTU2MDEwLFZLX0ZPUk1BVF9CMTBYNkcxMFg2UjEwWDZHMTBYNl80MjJfVU5PUk1fNFBBQ0sxNjoxMDAwMTU2MDExLFZLX0ZPUk1BVF9HMTBYNl9CMTBYNl9SMTBYNl8zUExBTkVfNDIwX1VOT1JNXzNQQUNLMTY6MTAwMDE1NjAxMixWS19GT1JNQVRfRzEwWDZfQjEwWDZSMTBYNl8yUExBTkVfNDIwX1VOT1JNXzNQQUNLMTY6MTAwMDE1NjAxMyxWS19GT1JNQVRfRzEwWDZfQjEwWDZfUjEwWDZfM1BMQU5FXzQyMl9VTk9STV8zUEFDSzE2OjEwMDAxNTYwMTQsVktfRk9STUFUX0cxMFg2X0IxMFg2UjEwWDZfMlBMQU5FXzQyMl9VTk9STV8zUEFDSzE2OjEwMDAxNTYwMTUsVktfRk9STUFUX0cxMFg2X0IxMFg2X1IxMFg2XzNQTEFORV80NDRfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDE2LFZLX0ZPUk1BVF9SMTJYNF9VTk9STV9QQUNLMTY6MTAwMDE1NjAxNyxWS19GT1JNQVRfUjEyWDRHMTJYNF9VTk9STV8yUEFDSzE2OjEwMDAxNTYwMTgsVktfRk9STUFUX1IxMlg0RzEyWDRCMTJYNEExMlg0X1VOT1JNXzRQQUNLMTY6MTAwMDE1NjAxOSxWS19GT1JNQVRfRzEyWDRCMTJYNEcxMlg0UjEyWDRfNDIyX1VOT1JNXzRQQUNLMTY6MTAwMDE1NjAyMCxWS19GT1JNQVRfQjEyWDRHMTJYNFIxMlg0RzEyWDRfNDIyX1VOT1JNXzRQQUNLMTY6MTAwMDE1NjAyMSxWS19GT1JNQVRfRzEyWDRfQjEyWDRfUjEyWDRfM1BMQU5FXzQyMF9VTk9STV8zUEFDSzE2OjEwMDAxNTYwMjIsVktfRk9STUFUX0cxMlg0X0IxMlg0UjEyWDRfMlBMQU5FXzQyMF9VTk9STV8zUEFDSzE2OjEwMDAxNTYwMjMsVktfRk9STUFUX0cxMlg0X0IxMlg0X1IxMlg0XzNQTEFORV80MjJfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDI0LFZLX0ZPUk1BVF9HMTJYNF9CMTJYNFIxMlg0XzJQTEFORV80MjJfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDI1LFZLX0ZPUk1BVF9HMTJYNF9CMTJYNF9SMTJYNF8zUExBTkVfNDQ0X1VOT1JNXzNQQUNLMTY6MTAwMDE1NjAyNixWS19GT1JNQVRfRzE2QjE2RzE2UjE2XzQyMl9VTk9STToxMDAwMTU2MDI3LFZLX0ZPUk1BVF9CMTZHMTZSMTZHMTZfNDIyX1VOT1JNOjEwMDAxNTYwMjgsVktfRk9STUFUX0cxNl9CMTZfUjE2XzNQTEFORV80MjBfVU5PUk06MTAwMDE1NjAyOSxWS19GT1JNQVRfRzE2X0IxNlIxNl8yUExBTkVfNDIwX1VOT1JNOjEwMDAxNTYwMzAsVktfRk9STUFUX0cxNl9CMTZfUjE2XzNQTEFORV80MjJfVU5PUk06MTAwMDE1NjAzMSxWS19GT1JNQVRfRzE2X0IxNlIxNl8yUExBTkVfNDIyX1VOT1JNOjEwMDAxNTYwMzIsVktfRk9STUFUX0cxNl9CMTZfUjE2XzNQTEFORV80NDRfVU5PUk06MTAwMDE1NjAzMyxWS19GT1JNQVRfUFZSVEMxXzJCUFBfVU5PUk1fQkxPQ0tfSU1HOjEwMDAwNTRlMyxWS19GT1JNQVRfUFZSVEMxXzRCUFBfVU5PUk1fQkxPQ0tfSU1HOjEwMDAwNTQwMDEsVktfRk9STUFUX1BWUlRDMl8yQlBQX1VOT1JNX0JMT0NLX0lNRzoxMDAwMDU0MDAyLFZLX0ZPUk1BVF9QVlJUQzJfNEJQUF9VTk9STV9CTE9DS19JTUc6MTAwMDA1NDAwMyxWS19GT1JNQVRfUFZSVEMxXzJCUFBfU1JHQl9CTE9DS19JTUc6MTAwMDA1NDAwNCxWS19GT1JNQVRfUFZSVEMxXzRCUFBfU1JHQl9CTE9DS19JTUc6MTAwMDA1NDAwNSxWS19GT1JNQVRfUFZSVEMyXzJCUFBfU1JHQl9CTE9DS19JTUc6MTAwMDA1NDAwNixWS19GT1JNQVRfUFZSVEMyXzRCUFBfU1JHQl9CTE9DS19JTUc6MTAwMDA1NDAwNyxWS19GT1JNQVRfQVNUQ180eDRfU0ZMT0FUX0JMT0NLX0VYVDoxMDAwMDY2ZTMsVktfRk9STUFUX0FTVENfNXg0X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAwMSxWS19GT1JNQVRfQVNUQ181eDVfU0ZMT0FUX0JMT0NLX0VYVDoxMDAwMDY2MDAyLFZLX0ZPUk1BVF9BU1RDXzZ4NV9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDMsVktfRk9STUFUX0FTVENfNng2X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAwNCxWS19GT1JNQVRfQVNUQ184eDVfU0ZMT0FUX0JMT0NLX0VYVDoxMDAwMDY2MDA1LFZLX0ZPUk1BVF9BU1RDXzh4Nl9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDYsVktfRk9STUFUX0FTVENfOHg4X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAwNyxWS19GT1JNQVRfQVNUQ18xMHg1X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAwOCxWS19GT1JNQVRfQVNUQ18xMHg2X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAwOSxWS19GT1JNQVRfQVNUQ18xMHg4X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAxMCxWS19GT1JNQVRfQVNUQ18xMHgxMF9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMTEsVktfRk9STUFUX0FTVENfMTJ4MTBfU0ZMT0FUX0JMT0NLX0VYVDoxMDAwMDY2MDEyLFZLX0ZPUk1BVF9BU1RDXzEyeDEyX1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAxMyxWS19GT1JNQVRfRzhCOEc4UjhfNDIyX1VOT1JNX0tIUjoxMDAwMTU2ZTMsVktfRk9STUFUX0I4RzhSOEc4XzQyMl9VTk9STV9LSFI6MTAwMDE1NjAwMSxWS19GT1JNQVRfRzhfQjhfUjhfM1BMQU5FXzQyMF9VTk9STV9LSFI6MTAwMDE1NjAwMixWS19GT1JNQVRfRzhfQjhSOF8yUExBTkVfNDIwX1VOT1JNX0tIUjoxMDAwMTU2MDAzLFZLX0ZPUk1BVF9HOF9COF9SOF8zUExBTkVfNDIyX1VOT1JNX0tIUjoxMDAwMTU2MDA0LFZLX0ZPUk1BVF9HOF9COFI4XzJQTEFORV80MjJfVU5PUk1fS0hSOjEwMDAxNTYwMDUsVktfRk9STUFUX0c4X0I4X1I4XzNQTEFORV80NDRfVU5PUk1fS0hSOjEwMDAxNTYwMDYsVktfRk9STUFUX1IxMFg2X1VOT1JNX1BBQ0sxNl9LSFI6MTAwMDE1NjAwNyxWS19GT1JNQVRfUjEwWDZHMTBYNl9VTk9STV8yUEFDSzE2X0tIUjoxMDAwMTU2MDA4LFZLX0ZPUk1BVF9SMTBYNkcxMFg2QjEwWDZBMTBYNl9VTk9STV80UEFDSzE2X0tIUjoxMDAwMTU2MDA5LFZLX0ZPUk1BVF9HMTBYNkIxMFg2RzEwWDZSMTBYNl80MjJfVU5PUk1fNFBBQ0sxNl9LSFI6MTAwMDE1NjAxMCxWS19GT1JNQVRfQjEwWDZHMTBYNlIxMFg2RzEwWDZfNDIyX1VOT1JNXzRQQUNLMTZfS0hSOjEwMDAxNTYwMTEsVktfRk9STUFUX0cxMFg2X0IxMFg2X1IxMFg2XzNQTEFORV80MjBfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAxMixWS19GT1JNQVRfRzEwWDZfQjEwWDZSMTBYNl8yUExBTkVfNDIwX1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMTMsVktfRk9STUFUX0cxMFg2X0IxMFg2X1IxMFg2XzNQTEFORV80MjJfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAxNCxWS19GT1JNQVRfRzEwWDZfQjEwWDZSMTBYNl8yUExBTkVfNDIyX1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMTUsVktfRk9STUFUX0cxMFg2X0IxMFg2X1IxMFg2XzNQTEFORV80NDRfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAxNixWS19GT1JNQVRfUjEyWDRfVU5PUk1fUEFDSzE2X0tIUjoxMDAwMTU2MDE3LFZLX0ZPUk1BVF9SMTJYNEcxMlg0X1VOT1JNXzJQQUNLMTZfS0hSOjEwMDAxNTYwMTgsVktfRk9STUFUX1IxMlg0RzEyWDRCMTJYNEExMlg0X1VOT1JNXzRQQUNLMTZfS0hSOjEwMDAxNTYwMTksVktfRk9STUFUX0cxMlg0QjEyWDRHMTJYNFIxMlg0XzQyMl9VTk9STV80UEFDSzE2X0tIUjoxMDAwMTU2MDIwLFZLX0ZPUk1BVF9CMTJYNEcxMlg0UjEyWDRHMTJYNF80MjJfVU5PUk1fNFBBQ0sxNl9LSFI6MTAwMDE1NjAyMSxWS19GT1JNQVRfRzEyWDRfQjEyWDRfUjEyWDRfM1BMQU5FXzQyMF9VTk9STV8zUEFDSzE2X0tIUjoxMDAwMTU2MDIyLFZLX0ZPUk1BVF9HMTJYNF9CMTJYNFIxMlg0XzJQTEFORV80MjBfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAyMyxWS19GT1JNQVRfRzEyWDRfQjEyWDRfUjEyWDRfM1BMQU5FXzQyMl9VTk9STV8zUEFDSzE2X0tIUjoxMDAwMTU2MDI0LFZLX0ZPUk1BVF9HMTJYNF9CMTJYNFIxMlg0XzJQTEFORV80MjJfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAyNSxWS19GT1JNQVRfRzEyWDRfQjEyWDRfUjEyWDRfM1BMQU5FXzQ0NF9VTk9STV8zUEFDSzE2X0tIUjoxMDAwMTU2MDI2LFZLX0ZPUk1BVF9HMTZCMTZHMTZSMTZfNDIyX1VOT1JNX0tIUjoxMDAwMTU2MDI3LFZLX0ZPUk1BVF9CMTZHMTZSMTZHMTZfNDIyX1VOT1JNX0tIUjoxMDAwMTU2MDI4LFZLX0ZPUk1BVF9HMTZfQjE2X1IxNl8zUExBTkVfNDIwX1VOT1JNX0tIUjoxMDAwMTU2MDI5LFZLX0ZPUk1BVF9HMTZfQjE2UjE2XzJQTEFORV80MjBfVU5PUk1fS0hSOjEwMDAxNTYwMzAsVktfRk9STUFUX0cxNl9CMTZfUjE2XzNQTEFORV80MjJfVU5PUk1fS0hSOjEwMDAxNTYwMzEsVktfRk9STUFUX0cxNl9CMTZSMTZfMlBMQU5FXzQyMl9VTk9STV9LSFI6MTAwMDE1NjAzMixWS19GT1JNQVRfRzE2X0IxNl9SMTZfM1BMQU5FXzQ0NF9VTk9STV9LSFI6MTAwMDE1NjAzM307T2JqZWN0LmZyZWV6ZShQUyk7RmQ9UFN9KTtmdW5jdGlvbiByeigpe3JldHVybnt2a0Zvcm1hdDowLHR5cGVTaXplOjEscGl4ZWxXaWR0aDowLHBpeGVsSGVpZ2h0OjAscGl4ZWxEZXB0aDowLGxheWVyQ291bnQ6MCxmYWNlQ291bnQ6MSxsZXZlbENvdW50OjAsc3VwZXJjb21wcmVzc2lvblNjaGVtZTowLGxldmVsczpbXSxkYXRhRm9ybWF0RGVzY3JpcHRvcjpbe3ZlbmRvcklkOjAsZGVzY3JpcHRvclR5cGU6MCx2ZXJzaW9uTnVtYmVyOjIsY29sb3JNb2RlbDowLGNvbG9yUHJpbWFyaWVzOjEsdHJhbnNmZXJGdW5jdGlvbjoyLGZsYWdzOjAsdGV4ZWxCbG9ja0RpbWVuc2lvbjpbMCwwLDAsMF0sYnl0ZXNQbGFuZTpbMCwwLDAsMCwwLDAsMCwwXSxzYW1wbGVzOltdfV0sa2V5VmFsdWU6e30sZ2xvYmFsRGF0YTpudWxsfX1mdW5jdGlvbiB2UyhuKXtyZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG4pfWZ1bmN0aW9uIEZTKG4pe2xldCBlPW5ldyBVaW50OEFycmF5KG4uYnVmZmVyLG4uYnl0ZU9mZnNldCxHby5sZW5ndGgpO2lmKGVbMF0hPT1Hb1swXXx8ZVsxXSE9PUdvWzFdfHxlWzJdIT09R29bMl18fGVbM10hPT1Hb1szXXx8ZVs0XSE9PUdvWzRdfHxlWzVdIT09R29bNV18fGVbNl0hPT1Hb1s2XXx8ZVs3XSE9PUdvWzddfHxlWzhdIT09R29bOF18fGVbOV0hPT1Hb1s5XXx8ZVsxMF0hPT1Hb1sxMF18fGVbMTFdIT09R29bMTFdKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBLVFggMi4wIGlkZW50aWZpZXIuIik7bGV0IHQ9cnooKSxvPTE3KlVpbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5ULGE9bmV3IFBjKG4sR28ubGVuZ3RoLG8sITApO3QudmtGb3JtYXQ9YS5fbmV4dFVpbnQzMigpLHQudHlwZVNpemU9YS5fbmV4dFVpbnQzMigpLHQucGl4ZWxXaWR0aD1hLl9uZXh0VWludDMyKCksdC5waXhlbEhlaWdodD1hLl9uZXh0VWludDMyKCksdC5waXhlbERlcHRoPWEuX25leHRVaW50MzIoKSx0LmxheWVyQ291bnQ9YS5fbmV4dFVpbnQzMigpLHQuZmFjZUNvdW50PWEuX25leHRVaW50MzIoKSx0LmxldmVsQ291bnQ9YS5fbmV4dFVpbnQzMigpLHQuc3VwZXJjb21wcmVzc2lvblNjaGVtZT1hLl9uZXh0VWludDMyKCk7bGV0IHI9YS5fbmV4dFVpbnQzMigpLGk9YS5fbmV4dFVpbnQzMigpLGY9YS5fbmV4dFVpbnQzMigpLGQ9YS5fbmV4dFVpbnQzMigpLGM9YS5fbmV4dFVpbnQ2NCgpLHU9YS5fbmV4dFVpbnQ2NCgpLGw9TWF0aC5tYXgodC5sZXZlbENvdW50LDEpKjMqOCxoPW5ldyBQYyhuLEdvLmxlbmd0aCtvLGwsITApO2ZvcihsZXQgaGU9MCxRPU1hdGgubWF4KHQubGV2ZWxDb3VudCwxKTtoZTxRO2hlKyspdC5sZXZlbHMucHVzaCh7bGV2ZWxEYXRhOm5ldyBVaW50OEFycmF5KG4uYnVmZmVyLG4uYnl0ZU9mZnNldCtoLl9uZXh0VWludDY0KCksaC5fbmV4dFVpbnQ2NCgpKSx1bmNvbXByZXNzZWRCeXRlTGVuZ3RoOmguX25leHRVaW50NjQoKX0pO2xldCBtPW5ldyBQYyhuLHIsaSwhMCk7bS5fc2tpcCg0KTtsZXQgYj1tLl9uZXh0VWludDE2KCkscD1tLl9uZXh0VWludDE2KCkseT1tLl9uZXh0VWludDE2KCksRT1tLl9uZXh0VWludDE2KCksZz1tLl9uZXh0VWludDgoKSxBPW0uX25leHRVaW50OCgpLFQ9bS5fbmV4dFVpbnQ4KCksUj1tLl9uZXh0VWludDgoKSxTPVttLl9uZXh0VWludDgoKSxtLl9uZXh0VWludDgoKSxtLl9uZXh0VWludDgoKSxtLl9uZXh0VWludDgoKV0sTT1bbS5fbmV4dFVpbnQ4KCksbS5fbmV4dFVpbnQ4KCksbS5fbmV4dFVpbnQ4KCksbS5fbmV4dFVpbnQ4KCksbS5fbmV4dFVpbnQ4KCksbS5fbmV4dFVpbnQ4KCksbS5fbmV4dFVpbnQ4KCksbS5fbmV4dFVpbnQ4KCldLE49e3ZlbmRvcklkOmIsZGVzY3JpcHRvclR5cGU6cCx2ZXJzaW9uTnVtYmVyOnksY29sb3JNb2RlbDpnLGNvbG9yUHJpbWFyaWVzOkEsdHJhbnNmZXJGdW5jdGlvbjpULGZsYWdzOlIsdGV4ZWxCbG9ja0RpbWVuc2lvbjpTLGJ5dGVzUGxhbmU6TSxzYW1wbGVzOltdfSx3PShFLzQtNikvNDtmb3IobGV0IGhlPTA7aGU8dztoZSsrKXtsZXQgUT17Yml0T2Zmc2V0Om0uX25leHRVaW50MTYoKSxiaXRMZW5ndGg6bS5fbmV4dFVpbnQ4KCksY2hhbm5lbFR5cGU6bS5fbmV4dFVpbnQ4KCksc2FtcGxlUG9zaXRpb246W20uX25leHRVaW50OCgpLG0uX25leHRVaW50OCgpLG0uX25leHRVaW50OCgpLG0uX25leHRVaW50OCgpXSxzYW1wbGVMb3dlcjpOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksc2FtcGxlVXBwZXI6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZfTtRLmNoYW5uZWxUeXBlJjY0PyhRLnNhbXBsZUxvd2VyPW0uX25leHRJbnQzMigpLFEuc2FtcGxlVXBwZXI9bS5fbmV4dEludDMyKCkpOihRLnNhbXBsZUxvd2VyPW0uX25leHRVaW50MzIoKSxRLnNhbXBsZVVwcGVyPW0uX25leHRVaW50MzIoKSksTi5zYW1wbGVzW2hlXT1RfXQuZGF0YUZvcm1hdERlc2NyaXB0b3IubGVuZ3RoPTAsdC5kYXRhRm9ybWF0RGVzY3JpcHRvci5wdXNoKE4pO2xldCB4PW5ldyBQYyhuLGYsZCwhMCk7Zm9yKDt4Ll9vZmZzZXQ8ZDspe2xldCBoZT14Ll9uZXh0VWludDMyKCksUT14Ll9zY2FuKGhlKSxUZT12UyhRKTtpZih0LmtleVZhbHVlW1RlXT14Ll9uZXh0VWludDhBcnJheShoZS1RLmJ5dGVMZW5ndGgtMSksVGUubWF0Y2goL15rdHgvaSkpe2xldCBXZT12Uyh0LmtleVZhbHVlW1RlXSk7dC5rZXlWYWx1ZVtUZV09V2Uuc3Vic3RyaW5nKDAsV2UubGFzdEluZGV4T2YoIlwwIikpfWxldCBDZT1oZSU0PzQtaGUlNDowO3guX3NraXAoQ2UpfWlmKHU8PTApcmV0dXJuIHQ7bGV0IEM9bmV3IFBjKG4sYyx1LCEwKSx2PUMuX25leHRVaW50MTYoKSxqPUMuX25leHRVaW50MTYoKSx6PUMuX25leHRVaW50MzIoKSxEPUMuX25leHRVaW50MzIoKSxHPUMuX25leHRVaW50MzIoKSxWPUMuX25leHRVaW50MzIoKSxPPVtdO2ZvcihsZXQgaGU9MCxRPU1hdGgubWF4KHQubGV2ZWxDb3VudCwxKTtoZTxRO2hlKyspTy5wdXNoKHtpbWFnZUZsYWdzOkMuX25leHRVaW50MzIoKSxyZ2JTbGljZUJ5dGVPZmZzZXQ6Qy5fbmV4dFVpbnQzMigpLHJnYlNsaWNlQnl0ZUxlbmd0aDpDLl9uZXh0VWludDMyKCksYWxwaGFTbGljZUJ5dGVPZmZzZXQ6Qy5fbmV4dFVpbnQzMigpLGFscGhhU2xpY2VCeXRlTGVuZ3RoOkMuX25leHRVaW50MzIoKX0pO2xldCBaPWMrQy5fb2Zmc2V0LGFlPVoreixjZT1hZStELGZlPWNlK0csdGU9bmV3IFVpbnQ4QXJyYXkobi5idWZmZXIsbi5ieXRlT2Zmc2V0K1oseiksbWU9bmV3IFVpbnQ4QXJyYXkobi5idWZmZXIsbi5ieXRlT2Zmc2V0K2FlLEQpLHVlPW5ldyBVaW50OEFycmF5KG4uYnVmZmVyLG4uYnl0ZU9mZnNldCtjZSxHKSxiZT1uZXcgVWludDhBcnJheShuLmJ1ZmZlcixuLmJ5dGVPZmZzZXQrZmUsVik7cmV0dXJuIHQuZ2xvYmFsRGF0YT17ZW5kcG9pbnRDb3VudDp2LHNlbGVjdG9yQ291bnQ6aixpbWFnZURlc2NzOk8sZW5kcG9pbnRzRGF0YTp0ZSxzZWxlY3RvcnNEYXRhOm1lLHRhYmxlc0RhdGE6dWUsZXh0ZW5kZWREYXRhOmJlfSx0fXZhciBQYyxoaGUsR28sRFM9WCgoKT0+e1BjPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxvLGEpe3RoaXMuX2RhdGFWaWV3PXZvaWQgMCx0aGlzLl9saXR0bGVFbmRpYW49dm9pZCAwLHRoaXMuX29mZnNldD12b2lkIDAsdGhpcy5fZGF0YVZpZXc9bmV3IERhdGFWaWV3KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCt0LG8pLHRoaXMuX2xpdHRsZUVuZGlhbj1hLHRoaXMuX29mZnNldD0wfV9uZXh0VWludDgoKXtsZXQgZT10aGlzLl9kYXRhVmlldy5nZXRVaW50OCh0aGlzLl9vZmZzZXQpO3JldHVybiB0aGlzLl9vZmZzZXQrPTEsZX1fbmV4dFVpbnQxNigpe2xldCBlPXRoaXMuX2RhdGFWaWV3LmdldFVpbnQxNih0aGlzLl9vZmZzZXQsdGhpcy5fbGl0dGxlRW5kaWFuKTtyZXR1cm4gdGhpcy5fb2Zmc2V0Kz0yLGV9X25leHRVaW50MzIoKXtsZXQgZT10aGlzLl9kYXRhVmlldy5nZXRVaW50MzIodGhpcy5fb2Zmc2V0LHRoaXMuX2xpdHRsZUVuZGlhbik7cmV0dXJuIHRoaXMuX29mZnNldCs9NCxlfV9uZXh0VWludDY0KCl7bGV0IGU9dGhpcy5fZGF0YVZpZXcuZ2V0VWludDMyKHRoaXMuX29mZnNldCx0aGlzLl9saXR0bGVFbmRpYW4pLHQ9dGhpcy5fZGF0YVZpZXcuZ2V0VWludDMyKHRoaXMuX29mZnNldCs0LHRoaXMuX2xpdHRsZUVuZGlhbiksbz1lKzIqKjMyKnQ7cmV0dXJuIHRoaXMuX29mZnNldCs9OCxvfV9uZXh0SW50MzIoKXtsZXQgZT10aGlzLl9kYXRhVmlldy5nZXRJbnQzMih0aGlzLl9vZmZzZXQsdGhpcy5fbGl0dGxlRW5kaWFuKTtyZXR1cm4gdGhpcy5fb2Zmc2V0Kz00LGV9X25leHRVaW50OEFycmF5KGUpe2xldCB0PW5ldyBVaW50OEFycmF5KHRoaXMuX2RhdGFWaWV3LmJ1ZmZlcix0aGlzLl9kYXRhVmlldy5ieXRlT2Zmc2V0K3RoaXMuX29mZnNldCxlKTtyZXR1cm4gdGhpcy5fb2Zmc2V0Kz1lLHR9X3NraXAoZSl7cmV0dXJuIHRoaXMuX29mZnNldCs9ZSx0aGlzfV9zY2FuKGUsdD0wKXtsZXQgbz10aGlzLl9vZmZzZXQsYT0wO2Zvcig7dGhpcy5fZGF0YVZpZXcuZ2V0VWludDgodGhpcy5fb2Zmc2V0KSE9PXQmJmE8ZTspYSsrLHRoaXMuX29mZnNldCsrO3JldHVybiBhPGUmJnRoaXMuX29mZnNldCsrLG5ldyBVaW50OEFycmF5KHRoaXMuX2RhdGFWaWV3LmJ1ZmZlcix0aGlzLl9kYXRhVmlldy5ieXRlT2Zmc2V0K28sYSl9fSxoaGU9bmV3IFVpbnQ4QXJyYXkoWzBdKSxHbz1bMTcxLDc1LDg0LDg4LDMyLDUwLDQ4LDE4NywxMywxMCwyNiwxMF19KTt2YXIgQlM9c2koKEJtLGwxKT0+e3ZhciB1MT0oZnVuY3Rpb24oKXt2YXIgbj10eXBlb2YgZG9jdW1lbnQ8InUiJiZkb2N1bWVudC5jdXJyZW50U2NyaXB0P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjOnZvaWQgMDtyZXR1cm4gdHlwZW9mIF9fZmlsZW5hbWU8InUiJiYobj1ufHxfX2ZpbGVuYW1lKSwoZnVuY3Rpb24oZSl7ZT1lfHx7fTt2YXIgdD10eXBlb2YgZTwidSI/ZTp7fSxvLGE7dC5yZWFkeT1uZXcgUHJvbWlzZShmdW5jdGlvbihCLFUpe289QixhPVV9KTt2YXIgcj17fSxpO2ZvcihpIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShpKSYmKHJbaV09dFtpXSk7dmFyIGY9W10sZD0iLi90aGlzLnByb2dyYW0iLGM9ZnVuY3Rpb24oQixVKXt0aHJvdyBVfSx1PSExLGw9ITEsaD0hMSxtPSExO3U9dHlwZW9mIHdpbmRvdz09Im9iamVjdCIsbD10eXBlb2YgaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixoPXR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM9PSJvYmplY3QiJiZ0eXBlb2YgcHJvY2Vzcy52ZXJzaW9ucy5ub2RlPT0ic3RyaW5nIixtPSF1JiYhaCYmIWw7dmFyIGI9IiI7ZnVuY3Rpb24gcChCKXtyZXR1cm4gdC5sb2NhdGVGaWxlP3QubG9jYXRlRmlsZShCLGIpOmIrQn12YXIgeSxFLGcsQSxULFI7aD8obD9iPWxhKCJwYXRoIikuZGlybmFtZShiKSsiLyI6Yj1fX2Rpcm5hbWUrIi8iLHk9ZnVuY3Rpb24oVSxxKXtyZXR1cm4gVHx8KFQ9bGEoImZzIikpLFJ8fChSPWxhKCJwYXRoIikpLFU9Ui5ub3JtYWxpemUoVSksVC5yZWFkRmlsZVN5bmMoVSxxP251bGw6InV0ZjgiKX0sZz1mdW5jdGlvbihVKXt2YXIgcT15KFUsITApO3JldHVybiBxLmJ1ZmZlcnx8KHE9bmV3IFVpbnQ4QXJyYXkocSkpLHYocS5idWZmZXIpLHF9LHByb2Nlc3MuYXJndi5sZW5ndGg+MSYmKGQ9cHJvY2Vzcy5hcmd2WzFdLnJlcGxhY2UoL1xcL2csIi8iKSksZj1wcm9jZXNzLmFyZ3Yuc2xpY2UoMikscHJvY2Vzcy5vbigidW5jYXVnaHRFeGNlcHRpb24iLGZ1bmN0aW9uKEIpe2lmKCEoQiBpbnN0YW5jZW9mIE1yKSl0aHJvdyBCfSkscHJvY2Vzcy5vbigidW5oYW5kbGVkUmVqZWN0aW9uIixGdCksYz1mdW5jdGlvbihCKXtwcm9jZXNzLmV4aXQoQil9LHQuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiJbRW1zY3JpcHRlbiBNb2R1bGUgb2JqZWN0XSJ9KTptPyh0eXBlb2YgcmVhZDwidSImJih5PWZ1bmN0aW9uKFUpe3JldHVybiByZWFkKFUpfSksZz1mdW5jdGlvbihVKXt2YXIgcTtyZXR1cm4gdHlwZW9mIHJlYWRidWZmZXI9PSJmdW5jdGlvbiI/bmV3IFVpbnQ4QXJyYXkocmVhZGJ1ZmZlcihVKSk6KHE9cmVhZChVLCJiaW5hcnkiKSx2KHR5cGVvZiBxPT0ib2JqZWN0IikscSl9LHR5cGVvZiBzY3JpcHRBcmdzPCJ1Ij9mPXNjcmlwdEFyZ3M6dHlwZW9mIGFyZ3VtZW50czwidSImJihmPWFyZ3VtZW50cyksdHlwZW9mIHF1aXQ9PSJmdW5jdGlvbiImJihjPWZ1bmN0aW9uKEIpe3F1aXQoQil9KSx0eXBlb2YgcHJpbnQ8InUiJiYodHlwZW9mIGNvbnNvbGU+InUiJiYoY29uc29sZT17fSksY29uc29sZS5sb2c9cHJpbnQsY29uc29sZS53YXJuPWNvbnNvbGUuZXJyb3I9dHlwZW9mIHByaW50RXJyPCJ1Ij9wcmludEVycjpwcmludCkpOih1fHxsKSYmKGw/Yj1zZWxmLmxvY2F0aW9uLmhyZWY6dHlwZW9mIGRvY3VtZW50PCJ1IiYmZG9jdW1lbnQuY3VycmVudFNjcmlwdCYmKGI9ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmMpLG4mJihiPW4pLGIuaW5kZXhPZigiYmxvYjoiKSE9PTA/Yj1iLnN1YnN0cigwLGIubGFzdEluZGV4T2YoIi8iKSsxKTpiPSIiLHk9ZnVuY3Rpb24oQil7dmFyIFU9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBVLm9wZW4oIkdFVCIsQiwhMSksVS5zZW5kKG51bGwpLFUucmVzcG9uc2VUZXh0fSxsJiYoZz1mdW5jdGlvbihCKXt2YXIgVT1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIFUub3BlbigiR0VUIixCLCExKSxVLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLFUuc2VuZChudWxsKSxuZXcgVWludDhBcnJheShVLnJlc3BvbnNlKX0pLEU9ZnVuY3Rpb24oQixVLHEpe3ZhciBlZT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZWUub3BlbigiR0VUIixCLCEwKSxlZS5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixlZS5vbmxvYWQ9ZnVuY3Rpb24oKXtpZihlZS5zdGF0dXM9PTIwMHx8ZWUuc3RhdHVzPT0wJiZlZS5yZXNwb25zZSl7VShlZS5yZXNwb25zZSk7cmV0dXJufXEoKX0sZWUub25lcnJvcj1xLGVlLnNlbmQobnVsbCl9LEE9ZnVuY3Rpb24oQil7ZG9jdW1lbnQudGl0bGU9Qn0pO3ZhciBTPXQucHJpbnR8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSksTT10LnByaW50RXJyfHxjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtmb3IoaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJih0W2ldPXJbaV0pO3I9bnVsbCx0LmFyZ3VtZW50cyYmKGY9dC5hcmd1bWVudHMpLHQudGhpc1Byb2dyYW0mJihkPXQudGhpc1Byb2dyYW0pLHQucXVpdCYmKGM9dC5xdWl0KTt2YXIgST0wLE49ZnVuY3Rpb24oQil7ST1CfSxQO3Qud2FzbUJpbmFyeSYmKFA9dC53YXNtQmluYXJ5KTt2YXIgRj10Lm5vRXhpdFJ1bnRpbWV8fCEwO3R5cGVvZiBXZWJBc3NlbWJseSE9Im9iamVjdCImJkZ0KCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkIik7dmFyIHcseD0hMSxDO2Z1bmN0aW9uIHYoQixVKXtCfHxGdCgiQXNzZXJ0aW9uIGZhaWxlZDogIitVKX12YXIgaj10eXBlb2YgVGV4dERlY29kZXI8InUiP25ldyBUZXh0RGVjb2RlcigidXRmOCIpOnZvaWQgMDtmdW5jdGlvbiB6KEIsVSxxKXtmb3IodmFyIGVlPVUrcSxkZT1VO0JbZGVdJiYhKGRlPj1lZSk7KSsrZGU7aWYoZGUtVT4xNiYmQi5zdWJhcnJheSYmailyZXR1cm4gai5kZWNvZGUoQi5zdWJhcnJheShVLGRlKSk7Zm9yKHZhciBBZT0iIjtVPGRlOyl7dmFyIEVlPUJbVSsrXTtpZighKEVlJjEyOCkpe0FlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEVlKTtjb250aW51ZX12YXIgX2U9QltVKytdJjYzO2lmKChFZSYyMjQpPT0xOTIpe0FlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChFZSYzMSk8PDZ8X2UpO2NvbnRpbnVlfXZhciB5ZT1CW1UrK10mNjM7aWYoKEVlJjI0MCk9PTIyND9FZT0oRWUmMTUpPDwxMnxfZTw8Nnx5ZTpFZT0oRWUmNyk8PDE4fF9lPDwxMnx5ZTw8NnxCW1UrK10mNjMsRWU8NjU1MzYpQWUrPVN0cmluZy5mcm9tQ2hhckNvZGUoRWUpO2Vsc2V7dmFyIGplPUVlLTY1NTM2O0FlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fGplPj4xMCw1NjMyMHxqZSYxMDIzKX19cmV0dXJuIEFlfWZ1bmN0aW9uIEQoQixVKXtyZXR1cm4gQj96KFRlLEIsVSk6IiJ9ZnVuY3Rpb24gRyhCLFUscSxlZSl7aWYoIShlZT4wKSlyZXR1cm4gMDtmb3IodmFyIGRlPXEsQWU9cStlZS0xLEVlPTA7RWU8Qi5sZW5ndGg7KytFZSl7dmFyIF9lPUIuY2hhckNvZGVBdChFZSk7aWYoX2U+PTU1Mjk2JiZfZTw9NTczNDMpe3ZhciB5ZT1CLmNoYXJDb2RlQXQoKytFZSk7X2U9NjU1MzYrKChfZSYxMDIzKTw8MTApfHllJjEwMjN9aWYoX2U8PTEyNyl7aWYocT49QWUpYnJlYWs7VVtxKytdPV9lfWVsc2UgaWYoX2U8PTIwNDcpe2lmKHErMT49QWUpYnJlYWs7VVtxKytdPTE5MnxfZT4+NixVW3ErK109MTI4fF9lJjYzfWVsc2UgaWYoX2U8PTY1NTM1KXtpZihxKzI+PUFlKWJyZWFrO1VbcSsrXT0yMjR8X2U+PjEyLFVbcSsrXT0xMjh8X2U+PjYmNjMsVVtxKytdPTEyOHxfZSY2M31lbHNle2lmKHErMz49QWUpYnJlYWs7VVtxKytdPTI0MHxfZT4+MTgsVVtxKytdPTEyOHxfZT4+MTImNjMsVVtxKytdPTEyOHxfZT4+NiY2MyxVW3ErK109MTI4fF9lJjYzfX1yZXR1cm4gVVtxXT0wLHEtZGV9ZnVuY3Rpb24gVihCLFUscSl7cmV0dXJuIEcoQixUZSxVLHEpfWZ1bmN0aW9uIE8oQil7Zm9yKHZhciBVPTAscT0wO3E8Qi5sZW5ndGg7KytxKXt2YXIgZWU9Qi5jaGFyQ29kZUF0KHEpO2VlPj01NTI5NiYmZWU8PTU3MzQzJiYoZWU9NjU1MzYrKChlZSYxMDIzKTw8MTApfEIuY2hhckNvZGVBdCgrK3EpJjEwMjMpLGVlPD0xMjc/KytVOmVlPD0yMDQ3P1UrPTI6ZWU8PTY1NTM1P1UrPTM6VSs9NH1yZXR1cm4gVX12YXIgWj10eXBlb2YgVGV4dERlY29kZXI8InUiP25ldyBUZXh0RGVjb2RlcigidXRmLTE2bGUiKTp2b2lkIDA7ZnVuY3Rpb24gYWUoQixVKXtmb3IodmFyIHE9QixlZT1xPj4xLGRlPWVlK1UvMjshKGVlPj1kZSkmJldlW2VlXTspKytlZTtpZihxPWVlPDwxLHEtQj4zMiYmWilyZXR1cm4gWi5kZWNvZGUoVGUuc3ViYXJyYXkoQixxKSk7Zm9yKHZhciBBZT0iIixFZT0wOyEoRWU+PVUvMik7KytFZSl7dmFyIF9lPUNlW0IrRWUqMj4+MV07aWYoX2U9PTApYnJlYWs7QWUrPVN0cmluZy5mcm9tQ2hhckNvZGUoX2UpfXJldHVybiBBZX1mdW5jdGlvbiBjZShCLFUscSl7aWYocT09PXZvaWQgMCYmKHE9MjE0NzQ4MzY0NykscTwyKXJldHVybiAwO3EtPTI7Zm9yKHZhciBlZT1VLGRlPXE8Qi5sZW5ndGgqMj9xLzI6Qi5sZW5ndGgsQWU9MDtBZTxkZTsrK0FlKXt2YXIgRWU9Qi5jaGFyQ29kZUF0KEFlKTtDZVtVPj4xXT1FZSxVKz0yfXJldHVybiBDZVtVPj4xXT0wLFUtZWV9ZnVuY3Rpb24gZmUoQil7cmV0dXJuIEIubGVuZ3RoKjJ9ZnVuY3Rpb24gdGUoQixVKXtmb3IodmFyIHE9MCxlZT0iIjshKHE+PVUvNCk7KXt2YXIgZGU9emVbQitxKjQ+PjJdO2lmKGRlPT0wKWJyZWFrO2lmKCsrcSxkZT49NjU1MzYpe3ZhciBBZT1kZS02NTUzNjtlZSs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxBZT4+MTAsNTYzMjB8QWUmMTAyMyl9ZWxzZSBlZSs9U3RyaW5nLmZyb21DaGFyQ29kZShkZSl9cmV0dXJuIGVlfWZ1bmN0aW9uIG1lKEIsVSxxKXtpZihxPT09dm9pZCAwJiYocT0yMTQ3NDgzNjQ3KSxxPDQpcmV0dXJuIDA7Zm9yKHZhciBlZT1VLGRlPWVlK3EtNCxBZT0wO0FlPEIubGVuZ3RoOysrQWUpe3ZhciBFZT1CLmNoYXJDb2RlQXQoQWUpO2lmKEVlPj01NTI5NiYmRWU8PTU3MzQzKXt2YXIgX2U9Qi5jaGFyQ29kZUF0KCsrQWUpO0VlPTY1NTM2KygoRWUmMTAyMyk8PDEwKXxfZSYxMDIzfWlmKHplW1U+PjJdPUVlLFUrPTQsVSs0PmRlKWJyZWFrfXJldHVybiB6ZVtVPj4yXT0wLFUtZWV9ZnVuY3Rpb24gdWUoQil7Zm9yKHZhciBVPTAscT0wO3E8Qi5sZW5ndGg7KytxKXt2YXIgZWU9Qi5jaGFyQ29kZUF0KHEpO2VlPj01NTI5NiYmZWU8PTU3MzQzJiYrK3EsVSs9NH1yZXR1cm4gVX1mdW5jdGlvbiBiZShCLFUpe3JldHVybiBCJVU+MCYmKEIrPVUtQiVVKSxCfXZhciBoZSxRLFRlLENlLFdlLHplLFplLEtlLERlO2Z1bmN0aW9uIEJlKEIpe2hlPUIsdC5IRUFQOD1RPW5ldyBJbnQ4QXJyYXkoQiksdC5IRUFQMTY9Q2U9bmV3IEludDE2QXJyYXkoQiksdC5IRUFQMzI9emU9bmV3IEludDMyQXJyYXkoQiksdC5IRUFQVTg9VGU9bmV3IFVpbnQ4QXJyYXkoQiksdC5IRUFQVTE2PVdlPW5ldyBVaW50MTZBcnJheShCKSx0LkhFQVBVMzI9WmU9bmV3IFVpbnQzMkFycmF5KEIpLHQuSEVBUEYzMj1LZT1uZXcgRmxvYXQzMkFycmF5KEIpLHQuSEVBUEY2ND1EZT1uZXcgRmxvYXQ2NEFycmF5KEIpfXZhciBldD10LklOSVRJQUxfTUVNT1JZfHwxNjc3NzIxNixxZSxhdD1bXSx4dD1bXSxUdD1bXSxjdD1bXSx6dD0hMTtmdW5jdGlvbiBPdCgpe2lmKHQucHJlUnVuKWZvcih0eXBlb2YgdC5wcmVSdW49PSJmdW5jdGlvbiImJih0LnByZVJ1bj1bdC5wcmVSdW5dKTt0LnByZVJ1bi5sZW5ndGg7KV90KHQucHJlUnVuLnNoaWZ0KCkpO3BvKGF0KX1mdW5jdGlvbiBrdCgpe3p0PSEwLHBvKHh0KX1mdW5jdGlvbiBHZSgpe3BvKFR0KX1mdW5jdGlvbiBMZSgpe2lmKHQucG9zdFJ1bilmb3IodHlwZW9mIHQucG9zdFJ1bj09ImZ1bmN0aW9uIiYmKHQucG9zdFJ1bj1bdC5wb3N0UnVuXSk7dC5wb3N0UnVuLmxlbmd0aDspR3QodC5wb3N0UnVuLnNoaWZ0KCkpO3BvKGN0KX1mdW5jdGlvbiBfdChCKXthdC51bnNoaWZ0KEIpfWZ1bmN0aW9uIE10KEIpe3h0LnVuc2hpZnQoQil9ZnVuY3Rpb24gR3QoQil7Y3QudW5zaGlmdChCKX12YXIgcXQ9MCxRdD1udWxsLHBuPW51bGw7ZnVuY3Rpb24gTnQoQil7cXQrKyx0Lm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJnQubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhxdCl9ZnVuY3Rpb24gJHQoQil7aWYocXQtLSx0Lm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJnQubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhxdCkscXQ9PTAmJihRdCE9PW51bGwmJihjbGVhckludGVydmFsKFF0KSxRdD1udWxsKSxwbikpe3ZhciBVPXBuO3BuPW51bGwsVSgpfX10LnByZWxvYWRlZEltYWdlcz17fSx0LnByZWxvYWRlZEF1ZGlvcz17fTtmdW5jdGlvbiBGdChCKXt0Lm9uQWJvcnQmJnQub25BYm9ydChCKSxCKz0iIixNKEIpLHg9ITAsQz0xLEI9ImFib3J0KCIrQisiKS4gQnVpbGQgd2l0aCAtcyBBU1NFUlRJT05TPTEgZm9yIG1vcmUgaW5mby4iO3ZhciBVPW5ldyBXZWJBc3NlbWJseS5SdW50aW1lRXJyb3IoQik7dGhyb3cgYShVKSxVfWZ1bmN0aW9uIG9uKEIsVSl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aD9CLnN0YXJ0c1dpdGgoVSk6Qi5pbmRleE9mKFUpPT09MH12YXIgam49ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiO2Z1bmN0aW9uIFVuKEIpe3JldHVybiBvbihCLGpuKX12YXIgU249ImZpbGU6Ly8iO2Z1bmN0aW9uIHRvKEIpe3JldHVybiBvbihCLFNuKX12YXIgU3Q9ImJhc2lzX3RyYW5zY29kZXIud2FzbSI7VW4oU3QpfHwoU3Q9cChTdCkpO2Z1bmN0aW9uIHl0KEIpe3RyeXtpZihCPT1TdCYmUClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoUCk7aWYoZylyZXR1cm4gZyhCKTt0aHJvdyJib3RoIGFzeW5jIGFuZCBzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZhaWxlZCJ9Y2F0Y2goVSl7RnQoVSl9fWZ1bmN0aW9uIHduKCl7aWYoIVAmJih1fHxsKSl7aWYodHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiYhdG8oU3QpKXJldHVybiBmZXRjaChTdCx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oQil7aWYoIUIub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitTdCsiJyI7cmV0dXJuIEIuYXJyYXlCdWZmZXIoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIHl0KFN0KX0pO2lmKEUpcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEIsVSl7RShTdCxmdW5jdGlvbihxKXtCKG5ldyBVaW50OEFycmF5KHEpKX0sVSl9KX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB5dChTdCl9KX1mdW5jdGlvbiBDbigpe3ZhciBCPXthOiR1fTtmdW5jdGlvbiBVKEVlLF9lKXt2YXIgeWU9RWUuZXhwb3J0czt0LmFzbT15ZSx3PXQuYXNtLkssQmUody5idWZmZXIpLHFlPXQuYXNtLk8sTXQodC5hc20uTCksJHQoIndhc20taW5zdGFudGlhdGUiKX1OdCgid2FzbS1pbnN0YW50aWF0ZSIpO2Z1bmN0aW9uIHEoRWUpe1UoRWUuaW5zdGFuY2UpfWZ1bmN0aW9uIGVlKEVlKXtyZXR1cm4gd24oKS50aGVuKGZ1bmN0aW9uKF9lKXt2YXIgeWU9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoX2UsQik7cmV0dXJuIHllfSkudGhlbihFZSxmdW5jdGlvbihfZSl7TSgiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIitfZSksRnQoX2UpfSl9ZnVuY3Rpb24gZGUoKXtyZXR1cm4hUCYmdHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nPT0iZnVuY3Rpb24iJiYhVW4oU3QpJiYhdG8oU3QpJiZ0eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiI/ZmV0Y2goU3Qse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKEVlKXt2YXIgX2U9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoRWUsQik7cmV0dXJuIF9lLnRoZW4ocSxmdW5jdGlvbih5ZSl7cmV0dXJuIE0oIndhc20gc3RyZWFtaW5nIGNvbXBpbGUgZmFpbGVkOiAiK3llKSxNKCJmYWxsaW5nIGJhY2sgdG8gQXJyYXlCdWZmZXIgaW5zdGFudGlhdGlvbiIpLGVlKHEpfSl9KTplZShxKX1pZih0Lmluc3RhbnRpYXRlV2FzbSl0cnl7dmFyIEFlPXQuaW5zdGFudGlhdGVXYXNtKEIsVSk7cmV0dXJuIEFlfWNhdGNoKEVlKXtyZXR1cm4gTSgiTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogIitFZSksITF9cmV0dXJuIGRlKCkuY2F0Y2goYSkse319ZnVuY3Rpb24gcG8oQil7Zm9yKDtCLmxlbmd0aD4wOyl7dmFyIFU9Qi5zaGlmdCgpO2lmKHR5cGVvZiBVPT0iZnVuY3Rpb24iKXtVKHQpO2NvbnRpbnVlfXZhciBxPVUuZnVuYzt0eXBlb2YgcT09Im51bWJlciI/VS5hcmc9PT12b2lkIDA/cWUuZ2V0KHEpKCk6cWUuZ2V0KHEpKFUuYXJnKTpxKFUuYXJnPT09dm9pZCAwP251bGw6VS5hcmcpfX12YXIgRHQ9e307ZnVuY3Rpb24gYW4oQil7Zm9yKDtCLmxlbmd0aDspe3ZhciBVPUIucG9wKCkscT1CLnBvcCgpO3EoVSl9fWZ1bmN0aW9uIEVvKEIpe3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShaZVtCPj4yXSl9dmFyIE1uPXt9LEhvPXt9LHZhPXt9LHppPTQ4LEdpPTU3O2Z1bmN0aW9uIHRpKEIpe2lmKEI9PT12b2lkIDApcmV0dXJuIl91bmtub3duIjtCPUIucmVwbGFjZSgvW15hLXpBLVowLTlfXS9nLCIkIik7dmFyIFU9Qi5jaGFyQ29kZUF0KDApO3JldHVybiBVPj16aSYmVTw9R2k/Il8iK0I6Qn1mdW5jdGlvbiBGYShCLFUpe3JldHVybiBCPXRpKEIpLG5ldyBGdW5jdGlvbigiYm9keSIsInJldHVybiBmdW5jdGlvbiAiK0IrYCgpIHsKICAgICJ1c2Ugc3RyaWN0IjsgICAgcmV0dXJuIGJvZHkuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKfTsKYCkoVSl9ZnVuY3Rpb24gbmkoQixVKXt2YXIgcT1GYShVLGZ1bmN0aW9uKGVlKXt0aGlzLm5hbWU9VSx0aGlzLm1lc3NhZ2U9ZWU7dmFyIGRlPW5ldyBFcnJvcihlZSkuc3RhY2s7ZGUhPT12b2lkIDAmJih0aGlzLnN0YWNrPXRoaXMudG9TdHJpbmcoKStgCmArZGUucmVwbGFjZSgvXkVycm9yKDpbXlxuXSopP1xuLywiIikpfSk7cmV0dXJuIHEucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoQi5wcm90b3R5cGUpLHEucHJvdG90eXBlLmNvbnN0cnVjdG9yPXEscS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXNzYWdlPT09dm9pZCAwP3RoaXMubmFtZTp0aGlzLm5hbWUrIjogIit0aGlzLm1lc3NhZ2V9LHF9dmFyIFZpPXZvaWQgMDtmdW5jdGlvbiBPcihCKXt0aHJvdyBuZXcgVmkoQil9ZnVuY3Rpb24gY28oQixVLHEpe0IuZm9yRWFjaChmdW5jdGlvbihfZSl7dmFbX2VdPVV9KTtmdW5jdGlvbiBlZShfZSl7dmFyIHllPXEoX2UpO3llLmxlbmd0aCE9PUIubGVuZ3RoJiZPcigiTWlzbWF0Y2hlZCB0eXBlIGNvbnZlcnRlciBjb3VudCIpO2Zvcih2YXIgamU9MDtqZTxCLmxlbmd0aDsrK2plKW9hKEJbamVdLHllW2plXSl9dmFyIGRlPW5ldyBBcnJheShVLmxlbmd0aCksQWU9W10sRWU9MDtVLmZvckVhY2goZnVuY3Rpb24oX2UseWUpe0hvLmhhc093blByb3BlcnR5KF9lKT9kZVt5ZV09SG9bX2VdOihBZS5wdXNoKF9lKSxNbi5oYXNPd25Qcm9wZXJ0eShfZSl8fChNbltfZV09W10pLE1uW19lXS5wdXNoKGZ1bmN0aW9uKCl7ZGVbeWVdPUhvW19lXSwrK0VlLEVlPT09QWUubGVuZ3RoJiZlZShkZSl9KSl9KSxBZS5sZW5ndGg9PT0wJiZlZShkZSl9ZnVuY3Rpb24gZ28oQil7dmFyIFU9RHRbQl07ZGVsZXRlIER0W0JdO3ZhciBxPVUucmF3Q29uc3RydWN0b3IsZWU9VS5yYXdEZXN0cnVjdG9yLGRlPVUuZmllbGRzLEFlPWRlLm1hcChmdW5jdGlvbihFZSl7cmV0dXJuIEVlLmdldHRlclJldHVyblR5cGV9KS5jb25jYXQoZGUubWFwKGZ1bmN0aW9uKEVlKXtyZXR1cm4gRWUuc2V0dGVyQXJndW1lbnRUeXBlfSkpO2NvKFtCXSxBZSxmdW5jdGlvbihFZSl7dmFyIF9lPXt9O3JldHVybiBkZS5mb3JFYWNoKGZ1bmN0aW9uKHllLGplKXt2YXIgWGU9eWUuZmllbGROYW1lLGx0PUVlW2plXSxlbj15ZS5nZXR0ZXIsZ249eWUuZ2V0dGVyQ29udGV4dCxzbz1FZVtqZStkZS5sZW5ndGhdLGtvPXllLnNldHRlcix1YT15ZS5zZXR0ZXJDb250ZXh0O19lW1hlXT17cmVhZDpmdW5jdGlvbigkYSl7cmV0dXJuIGx0LmZyb21XaXJlVHlwZShlbihnbiwkYSkpfSx3cml0ZTpmdW5jdGlvbigkYSxtZil7dmFyIE5yPVtdO2tvKHVhLCRhLHNvLnRvV2lyZVR5cGUoTnIsbWYpKSxhbihOcil9fX0pLFt7bmFtZTpVLm5hbWUsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKHllKXt2YXIgamU9e307Zm9yKHZhciBYZSBpbiBfZSlqZVtYZV09X2VbWGVdLnJlYWQoeWUpO3JldHVybiBlZSh5ZSksamV9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oeWUsamUpe2Zvcih2YXIgWGUgaW4gX2UpaWYoIShYZSBpbiBqZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignTWlzc2luZyBmaWVsZDogICInK1hlKyciJyk7dmFyIGx0PXEoKTtmb3IoWGUgaW4gX2UpX2VbWGVdLndyaXRlKGx0LGplW1hlXSk7cmV0dXJuIHllIT09bnVsbCYmeWUucHVzaChlZSxsdCksbHR9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6RW8sZGVzdHJ1Y3RvckZ1bmN0aW9uOmVlfV19KX1mdW5jdGlvbiBEYShCKXtzd2l0Y2goQil7Y2FzZSAxOnJldHVybiAwO2Nhc2UgMjpyZXR1cm4gMTtjYXNlIDQ6cmV0dXJuIDI7Y2FzZSA4OnJldHVybiAzO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biB0eXBlIHNpemU6ICIrQil9fWZ1bmN0aW9uIGtjKCl7Zm9yKHZhciBCPW5ldyBBcnJheSgyNTYpLFU9MDtVPDI1NjsrK1UpQltVXT1TdHJpbmcuZnJvbUNoYXJDb2RlKFUpO3ZjPUJ9dmFyIHZjPXZvaWQgMDtmdW5jdGlvbiBMbihCKXtmb3IodmFyIFU9IiIscT1CO1RlW3FdOylVKz12Y1tUZVtxKytdXTtyZXR1cm4gVX12YXIgU3I9dm9pZCAwO2Z1bmN0aW9uIEl0KEIpe3Rocm93IG5ldyBTcihCKX1mdW5jdGlvbiBvYShCLFUscSl7aWYocT1xfHx7fSwhKCJhcmdQYWNrQWR2YW5jZSJpbiBVKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJyZWdpc3RlclR5cGUgcmVnaXN0ZXJlZEluc3RhbmNlIHJlcXVpcmVzIGFyZ1BhY2tBZHZhbmNlIik7dmFyIGVlPVUubmFtZTtpZihCfHxJdCgndHlwZSAiJytlZSsnIiBtdXN0IGhhdmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHR5cGVpZCBwb2ludGVyJyksSG8uaGFzT3duUHJvcGVydHkoQikpe2lmKHEuaWdub3JlRHVwbGljYXRlUmVnaXN0cmF0aW9ucylyZXR1cm47SXQoIkNhbm5vdCByZWdpc3RlciB0eXBlICciK2VlKyInIHR3aWNlIil9aWYoSG9bQl09VSxkZWxldGUgdmFbQl0sTW4uaGFzT3duUHJvcGVydHkoQikpe3ZhciBkZT1NbltCXTtkZWxldGUgTW5bQl0sZGUuZm9yRWFjaChmdW5jdGlvbihBZSl7QWUoKX0pfX1mdW5jdGlvbiBEZChCLFUscSxlZSxkZSl7dmFyIEFlPURhKHEpO1U9TG4oVSksb2EoQix7bmFtZTpVLGZyb21XaXJlVHlwZTpmdW5jdGlvbihFZSl7cmV0dXJuISFFZX0sdG9XaXJlVHlwZTpmdW5jdGlvbihFZSxfZSl7cmV0dXJuIF9lP2VlOmRlfSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOmZ1bmN0aW9uKEVlKXt2YXIgX2U7aWYocT09PTEpX2U9UTtlbHNlIGlmKHE9PT0yKV9lPUNlO2Vsc2UgaWYocT09PTQpX2U9emU7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGJvb2xlYW4gdHlwZSBzaXplOiAiK1UpO3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShfZVtFZT4+QWVdKX0sZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KX1mdW5jdGlvbiBCZChCKXtpZighKHRoaXMgaW5zdGFuY2VvZiBCYSl8fCEoQiBpbnN0YW5jZW9mIEJhKSlyZXR1cm4hMTtmb3IodmFyIFU9dGhpcy4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcyxxPXRoaXMuJCQucHRyLGVlPUIuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MsZGU9Qi4kJC5wdHI7VS5iYXNlQ2xhc3M7KXE9VS51cGNhc3QocSksVT1VLmJhc2VDbGFzcztmb3IoO2VlLmJhc2VDbGFzczspZGU9ZWUudXBjYXN0KGRlKSxlZT1lZS5iYXNlQ2xhc3M7cmV0dXJuIFU9PT1lZSYmcT09PWRlfWZ1bmN0aW9uIGpkKEIpe3JldHVybntjb3VudDpCLmNvdW50LGRlbGV0ZVNjaGVkdWxlZDpCLmRlbGV0ZVNjaGVkdWxlZCxwcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZTpCLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlLHB0cjpCLnB0cixwdHJUeXBlOkIucHRyVHlwZSxzbWFydFB0cjpCLnNtYXJ0UHRyLHNtYXJ0UHRyVHlwZTpCLnNtYXJ0UHRyVHlwZX19ZnVuY3Rpb24gRmMoQil7ZnVuY3Rpb24gVShxKXtyZXR1cm4gcS4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcy5uYW1lfUl0KFUoQikrIiBpbnN0YW5jZSBhbHJlYWR5IGRlbGV0ZWQiKX12YXIgRGM9ITE7ZnVuY3Rpb24gZWYoQil7fWZ1bmN0aW9uIFVkKEIpe0Iuc21hcnRQdHI/Qi5zbWFydFB0clR5cGUucmF3RGVzdHJ1Y3RvcihCLnNtYXJ0UHRyKTpCLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLnJhd0Rlc3RydWN0b3IoQi5wdHIpfWZ1bmN0aW9uIHRmKEIpe0IuY291bnQudmFsdWUtPTE7dmFyIFU9Qi5jb3VudC52YWx1ZT09PTA7VSYmVWQoQil9ZnVuY3Rpb24gb2koQil7cmV0dXJuIHR5cGVvZiBGaW5hbGl6YXRpb25Hcm91cD4idSI/KG9pPWZ1bmN0aW9uKFUpe3JldHVybiBVfSxCKTooRGM9bmV3IEZpbmFsaXphdGlvbkdyb3VwKGZ1bmN0aW9uKFUpe2Zvcih2YXIgcT1VLm5leHQoKTshcS5kb25lO3E9VS5uZXh0KCkpe3ZhciBlZT1xLnZhbHVlO2VlLnB0cj90ZihlZSk6Y29uc29sZS53YXJuKCJvYmplY3QgYWxyZWFkeSBkZWxldGVkOiAiK2VlLnB0cil9fSksb2k9ZnVuY3Rpb24oVSl7cmV0dXJuIERjLnJlZ2lzdGVyKFUsVS4kJCxVLiQkKSxVfSxlZj1mdW5jdGlvbihVKXtEYy51bnJlZ2lzdGVyKFUuJCQpfSxvaShCKSl9ZnVuY3Rpb24gTGQoKXtpZih0aGlzLiQkLnB0cnx8RmModGhpcyksdGhpcy4kJC5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSlyZXR1cm4gdGhpcy4kJC5jb3VudC52YWx1ZSs9MSx0aGlzO3ZhciBCPW9pKE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLHskJDp7dmFsdWU6amQodGhpcy4kJCl9fSkpO3JldHVybiBCLiQkLmNvdW50LnZhbHVlKz0xLEIuJCQuZGVsZXRlU2NoZWR1bGVkPSExLEJ9ZnVuY3Rpb24gemQoKXt0aGlzLiQkLnB0cnx8RmModGhpcyksdGhpcy4kJC5kZWxldGVTY2hlZHVsZWQmJiF0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlJiZJdCgiT2JqZWN0IGFscmVhZHkgc2NoZWR1bGVkIGZvciBkZWxldGlvbiIpLGVmKHRoaXMpLHRmKHRoaXMuJCQpLHRoaXMuJCQucHJlc2VydmVQb2ludGVyT25EZWxldGV8fCh0aGlzLiQkLnNtYXJ0UHRyPXZvaWQgMCx0aGlzLiQkLnB0cj12b2lkIDApfWZ1bmN0aW9uIEdkKCl7cmV0dXJuIXRoaXMuJCQucHRyfXZhciBhaT12b2lkIDAscmk9W107ZnVuY3Rpb24gQmMoKXtmb3IoO3JpLmxlbmd0aDspe3ZhciBCPXJpLnBvcCgpO0IuJCQuZGVsZXRlU2NoZWR1bGVkPSExLEIuZGVsZXRlKCl9fWZ1bmN0aW9uIFZkKCl7cmV0dXJuIHRoaXMuJCQucHRyfHxGYyh0aGlzKSx0aGlzLiQkLmRlbGV0ZVNjaGVkdWxlZCYmIXRoaXMuJCQucHJlc2VydmVQb2ludGVyT25EZWxldGUmJkl0KCJPYmplY3QgYWxyZWFkeSBzY2hlZHVsZWQgZm9yIGRlbGV0aW9uIikscmkucHVzaCh0aGlzKSxyaS5sZW5ndGg9PT0xJiZhaSYmYWkoQmMpLHRoaXMuJCQuZGVsZXRlU2NoZWR1bGVkPSEwLHRoaXN9ZnVuY3Rpb24gSGQoKXtCYS5wcm90b3R5cGUuaXNBbGlhc09mPUJkLEJhLnByb3RvdHlwZS5jbG9uZT1MZCxCYS5wcm90b3R5cGUuZGVsZXRlPXpkLEJhLnByb3RvdHlwZS5pc0RlbGV0ZWQ9R2QsQmEucHJvdG90eXBlLmRlbGV0ZUxhdGVyPVZkfWZ1bmN0aW9uIEJhKCl7fXZhciBuZj17fTtmdW5jdGlvbiBvZihCLFUscSl7aWYoQltVXS5vdmVybG9hZFRhYmxlPT09dm9pZCAwKXt2YXIgZWU9QltVXTtCW1VdPWZ1bmN0aW9uKCl7cmV0dXJuIEJbVV0ub3ZlcmxvYWRUYWJsZS5oYXNPd25Qcm9wZXJ0eShhcmd1bWVudHMubGVuZ3RoKXx8SXQoIkZ1bmN0aW9uICciK3ErIicgY2FsbGVkIHdpdGggYW4gaW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzICgiK2FyZ3VtZW50cy5sZW5ndGgrIikgLSBleHBlY3RzIG9uZSBvZiAoIitCW1VdLm92ZXJsb2FkVGFibGUrIikhIiksQltVXS5vdmVybG9hZFRhYmxlW2FyZ3VtZW50cy5sZW5ndGhdLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sQltVXS5vdmVybG9hZFRhYmxlPVtdLEJbVV0ub3ZlcmxvYWRUYWJsZVtlZS5hcmdDb3VudF09ZWV9fWZ1bmN0aW9uIGpjKEIsVSxxKXt0Lmhhc093blByb3BlcnR5KEIpPygocT09PXZvaWQgMHx8dFtCXS5vdmVybG9hZFRhYmxlIT09dm9pZCAwJiZ0W0JdLm92ZXJsb2FkVGFibGVbcV0hPT12b2lkIDApJiZJdCgiQ2Fubm90IHJlZ2lzdGVyIHB1YmxpYyBuYW1lICciK0IrIicgdHdpY2UiKSxvZih0LEIsQiksdC5oYXNPd25Qcm9wZXJ0eShxKSYmSXQoIkNhbm5vdCByZWdpc3RlciBtdWx0aXBsZSBvdmVybG9hZHMgb2YgYSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBhcmd1bWVudHMgKCIrcSsiKSEiKSx0W0JdLm92ZXJsb2FkVGFibGVbcV09VSk6KHRbQl09VSxxIT09dm9pZCAwJiYodFtCXS5udW1Bcmd1bWVudHM9cSkpfWZ1bmN0aW9uIEtkKEIsVSxxLGVlLGRlLEFlLEVlLF9lKXt0aGlzLm5hbWU9Qix0aGlzLmNvbnN0cnVjdG9yPVUsdGhpcy5pbnN0YW5jZVByb3RvdHlwZT1xLHRoaXMucmF3RGVzdHJ1Y3Rvcj1lZSx0aGlzLmJhc2VDbGFzcz1kZSx0aGlzLmdldEFjdHVhbFR5cGU9QWUsdGhpcy51cGNhc3Q9RWUsdGhpcy5kb3duY2FzdD1fZSx0aGlzLnB1cmVWaXJ0dWFsRnVuY3Rpb25zPVtdfWZ1bmN0aW9uIFVjKEIsVSxxKXtmb3IoO1UhPT1xOylVLnVwY2FzdHx8SXQoIkV4cGVjdGVkIG51bGwgb3IgaW5zdGFuY2Ugb2YgIitxLm5hbWUrIiwgZ290IGFuIGluc3RhbmNlIG9mICIrVS5uYW1lKSxCPVUudXBjYXN0KEIpLFU9VS5iYXNlQ2xhc3M7cmV0dXJuIEJ9ZnVuY3Rpb24gcWQoQixVKXtpZihVPT09bnVsbClyZXR1cm4gdGhpcy5pc1JlZmVyZW5jZSYmSXQoIm51bGwgaXMgbm90IGEgdmFsaWQgIit0aGlzLm5hbWUpLDA7VS4kJHx8SXQoJ0Nhbm5vdCBwYXNzICInK0NyKFUpKyciIGFzIGEgJyt0aGlzLm5hbWUpLFUuJCQucHRyfHxJdCgiQ2Fubm90IHBhc3MgZGVsZXRlZCBvYmplY3QgYXMgYSBwb2ludGVyIG9mIHR5cGUgIit0aGlzLm5hbWUpO3ZhciBxPVUuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MsZWU9VWMoVS4kJC5wdHIscSx0aGlzLnJlZ2lzdGVyZWRDbGFzcyk7cmV0dXJuIGVlfWZ1bmN0aW9uIFdkKEIsVSl7dmFyIHE7aWYoVT09PW51bGwpcmV0dXJuIHRoaXMuaXNSZWZlcmVuY2UmJkl0KCJudWxsIGlzIG5vdCBhIHZhbGlkICIrdGhpcy5uYW1lKSx0aGlzLmlzU21hcnRQb2ludGVyPyhxPXRoaXMucmF3Q29uc3RydWN0b3IoKSxCIT09bnVsbCYmQi5wdXNoKHRoaXMucmF3RGVzdHJ1Y3RvcixxKSxxKTowO1UuJCR8fEl0KCdDYW5ub3QgcGFzcyAiJytDcihVKSsnIiBhcyBhICcrdGhpcy5uYW1lKSxVLiQkLnB0cnx8SXQoIkNhbm5vdCBwYXNzIGRlbGV0ZWQgb2JqZWN0IGFzIGEgcG9pbnRlciBvZiB0eXBlICIrdGhpcy5uYW1lKSwhdGhpcy5pc0NvbnN0JiZVLiQkLnB0clR5cGUuaXNDb25zdCYmSXQoIkNhbm5vdCBjb252ZXJ0IGFyZ3VtZW50IG9mIHR5cGUgIisoVS4kJC5zbWFydFB0clR5cGU/VS4kJC5zbWFydFB0clR5cGUubmFtZTpVLiQkLnB0clR5cGUubmFtZSkrIiB0byBwYXJhbWV0ZXIgdHlwZSAiK3RoaXMubmFtZSk7dmFyIGVlPVUuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3M7aWYocT1VYyhVLiQkLnB0cixlZSx0aGlzLnJlZ2lzdGVyZWRDbGFzcyksdGhpcy5pc1NtYXJ0UG9pbnRlcilzd2l0Y2goVS4kJC5zbWFydFB0cj09PXZvaWQgMCYmSXQoIlBhc3NpbmcgcmF3IHBvaW50ZXIgdG8gc21hcnQgcG9pbnRlciBpcyBpbGxlZ2FsIiksdGhpcy5zaGFyaW5nUG9saWN5KXtjYXNlIDA6VS4kJC5zbWFydFB0clR5cGU9PT10aGlzP3E9VS4kJC5zbWFydFB0cjpJdCgiQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAiKyhVLiQkLnNtYXJ0UHRyVHlwZT9VLiQkLnNtYXJ0UHRyVHlwZS5uYW1lOlUuJCQucHRyVHlwZS5uYW1lKSsiIHRvIHBhcmFtZXRlciB0eXBlICIrdGhpcy5uYW1lKTticmVhaztjYXNlIDE6cT1VLiQkLnNtYXJ0UHRyO2JyZWFrO2Nhc2UgMjppZihVLiQkLnNtYXJ0UHRyVHlwZT09PXRoaXMpcT1VLiQkLnNtYXJ0UHRyO2Vsc2V7dmFyIGRlPVUuY2xvbmUoKTtxPXRoaXMucmF3U2hhcmUocSxkYShmdW5jdGlvbigpe2RlLmRlbGV0ZSgpfSkpLEIhPT1udWxsJiZCLnB1c2godGhpcy5yYXdEZXN0cnVjdG9yLHEpfWJyZWFrO2RlZmF1bHQ6SXQoIlVuc3VwcG9ydGluZyBzaGFyaW5nIHBvbGljeSIpfXJldHVybiBxfWZ1bmN0aW9uIFhkKEIsVSl7aWYoVT09PW51bGwpcmV0dXJuIHRoaXMuaXNSZWZlcmVuY2UmJkl0KCJudWxsIGlzIG5vdCBhIHZhbGlkICIrdGhpcy5uYW1lKSwwO1UuJCR8fEl0KCdDYW5ub3QgcGFzcyAiJytDcihVKSsnIiBhcyBhICcrdGhpcy5uYW1lKSxVLiQkLnB0cnx8SXQoIkNhbm5vdCBwYXNzIGRlbGV0ZWQgb2JqZWN0IGFzIGEgcG9pbnRlciBvZiB0eXBlICIrdGhpcy5uYW1lKSxVLiQkLnB0clR5cGUuaXNDb25zdCYmSXQoIkNhbm5vdCBjb252ZXJ0IGFyZ3VtZW50IG9mIHR5cGUgIitVLiQkLnB0clR5cGUubmFtZSsiIHRvIHBhcmFtZXRlciB0eXBlICIrdGhpcy5uYW1lKTt2YXIgcT1VLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLGVlPVVjKFUuJCQucHRyLHEsdGhpcy5yZWdpc3RlcmVkQ2xhc3MpO3JldHVybiBlZX1mdW5jdGlvbiBZZChCKXtyZXR1cm4gdGhpcy5yYXdHZXRQb2ludGVlJiYoQj10aGlzLnJhd0dldFBvaW50ZWUoQikpLEJ9ZnVuY3Rpb24gSmQoQil7dGhpcy5yYXdEZXN0cnVjdG9yJiZ0aGlzLnJhd0Rlc3RydWN0b3IoQil9ZnVuY3Rpb24gWmQoQil7QiE9PW51bGwmJkIuZGVsZXRlKCl9ZnVuY3Rpb24gYWYoQixVLHEpe2lmKFU9PT1xKXJldHVybiBCO2lmKHEuYmFzZUNsYXNzPT09dm9pZCAwKXJldHVybiBudWxsO3ZhciBlZT1hZihCLFUscS5iYXNlQ2xhc3MpO3JldHVybiBlZT09PW51bGw/bnVsbDpxLmRvd25jYXN0KGVlKX1mdW5jdGlvbiBRZCgpe3JldHVybiBPYmplY3Qua2V5cyhpaSkubGVuZ3RofWZ1bmN0aW9uICRkKCl7dmFyIEI9W107Zm9yKHZhciBVIGluIGlpKWlpLmhhc093blByb3BlcnR5KFUpJiZCLnB1c2goaWlbVV0pO3JldHVybiBCfWZ1bmN0aW9uIGV1KEIpe2FpPUIscmkubGVuZ3RoJiZhaSYmYWkoQmMpfWZ1bmN0aW9uIHR1KCl7dC5nZXRJbmhlcml0ZWRJbnN0YW5jZUNvdW50PVFkLHQuZ2V0TGl2ZUluaGVyaXRlZEluc3RhbmNlcz0kZCx0LmZsdXNoUGVuZGluZ0RlbGV0ZXM9QmMsdC5zZXREZWxheUZ1bmN0aW9uPWV1fXZhciBpaT17fTtmdW5jdGlvbiBudShCLFUpe2ZvcihVPT09dm9pZCAwJiZJdCgicHRyIHNob3VsZCBub3QgYmUgdW5kZWZpbmVkIik7Qi5iYXNlQ2xhc3M7KVU9Qi51cGNhc3QoVSksQj1CLmJhc2VDbGFzcztyZXR1cm4gVX1mdW5jdGlvbiBvdShCLFUpe3JldHVybiBVPW51KEIsVSksaWlbVV19ZnVuY3Rpb24gSGkoQixVKXsoIVUucHRyVHlwZXx8IVUucHRyKSYmT3IoIm1ha2VDbGFzc0hhbmRsZSByZXF1aXJlcyBwdHIgYW5kIHB0clR5cGUiKTt2YXIgcT0hIVUuc21hcnRQdHJUeXBlLGVlPSEhVS5zbWFydFB0cjtyZXR1cm4gcSE9PWVlJiZPcigiQm90aCBzbWFydFB0clR5cGUgYW5kIHNtYXJ0UHRyIG11c3QgYmUgc3BlY2lmaWVkIiksVS5jb3VudD17dmFsdWU6MX0sb2koT2JqZWN0LmNyZWF0ZShCLHskJDp7dmFsdWU6VX19KSl9ZnVuY3Rpb24gYXUoQil7dmFyIFU9dGhpcy5nZXRQb2ludGVlKEIpO2lmKCFVKXJldHVybiB0aGlzLmRlc3RydWN0b3IoQiksbnVsbDt2YXIgcT1vdSh0aGlzLnJlZ2lzdGVyZWRDbGFzcyxVKTtpZihxIT09dm9pZCAwKXtpZihxLiQkLmNvdW50LnZhbHVlPT09MClyZXR1cm4gcS4kJC5wdHI9VSxxLiQkLnNtYXJ0UHRyPUIscS5jbG9uZSgpO3ZhciBlZT1xLmNsb25lKCk7cmV0dXJuIHRoaXMuZGVzdHJ1Y3RvcihCKSxlZX1mdW5jdGlvbiBkZSgpe3JldHVybiB0aGlzLmlzU21hcnRQb2ludGVyP0hpKHRoaXMucmVnaXN0ZXJlZENsYXNzLmluc3RhbmNlUHJvdG90eXBlLHtwdHJUeXBlOnRoaXMucG9pbnRlZVR5cGUscHRyOlUsc21hcnRQdHJUeXBlOnRoaXMsc21hcnRQdHI6Qn0pOkhpKHRoaXMucmVnaXN0ZXJlZENsYXNzLmluc3RhbmNlUHJvdG90eXBlLHtwdHJUeXBlOnRoaXMscHRyOkJ9KX12YXIgQWU9dGhpcy5yZWdpc3RlcmVkQ2xhc3MuZ2V0QWN0dWFsVHlwZShVKSxFZT1uZltBZV07aWYoIUVlKXJldHVybiBkZS5jYWxsKHRoaXMpO3ZhciBfZTt0aGlzLmlzQ29uc3Q/X2U9RWUuY29uc3RQb2ludGVyVHlwZTpfZT1FZS5wb2ludGVyVHlwZTt2YXIgeWU9YWYoVSx0aGlzLnJlZ2lzdGVyZWRDbGFzcyxfZS5yZWdpc3RlcmVkQ2xhc3MpO3JldHVybiB5ZT09PW51bGw/ZGUuY2FsbCh0aGlzKTp0aGlzLmlzU21hcnRQb2ludGVyP0hpKF9lLnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSx7cHRyVHlwZTpfZSxwdHI6eWUsc21hcnRQdHJUeXBlOnRoaXMsc21hcnRQdHI6Qn0pOkhpKF9lLnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSx7cHRyVHlwZTpfZSxwdHI6eWV9KX1mdW5jdGlvbiBydSgpe2ZhLnByb3RvdHlwZS5nZXRQb2ludGVlPVlkLGZhLnByb3RvdHlwZS5kZXN0cnVjdG9yPUpkLGZhLnByb3RvdHlwZS5hcmdQYWNrQWR2YW5jZT04LGZhLnByb3RvdHlwZS5yZWFkVmFsdWVGcm9tUG9pbnRlcj1FbyxmYS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0PVpkLGZhLnByb3RvdHlwZS5mcm9tV2lyZVR5cGU9YXV9ZnVuY3Rpb24gZmEoQixVLHEsZWUsZGUsQWUsRWUsX2UseWUsamUsWGUpe3RoaXMubmFtZT1CLHRoaXMucmVnaXN0ZXJlZENsYXNzPVUsdGhpcy5pc1JlZmVyZW5jZT1xLHRoaXMuaXNDb25zdD1lZSx0aGlzLmlzU21hcnRQb2ludGVyPWRlLHRoaXMucG9pbnRlZVR5cGU9QWUsdGhpcy5zaGFyaW5nUG9saWN5PUVlLHRoaXMucmF3R2V0UG9pbnRlZT1fZSx0aGlzLnJhd0NvbnN0cnVjdG9yPXllLHRoaXMucmF3U2hhcmU9amUsdGhpcy5yYXdEZXN0cnVjdG9yPVhlLCFkZSYmVS5iYXNlQ2xhc3M9PT12b2lkIDA/ZWU/KHRoaXMudG9XaXJlVHlwZT1xZCx0aGlzLmRlc3RydWN0b3JGdW5jdGlvbj1udWxsKToodGhpcy50b1dpcmVUeXBlPVhkLHRoaXMuZGVzdHJ1Y3RvckZ1bmN0aW9uPW51bGwpOnRoaXMudG9XaXJlVHlwZT1XZH1mdW5jdGlvbiByZihCLFUscSl7dC5oYXNPd25Qcm9wZXJ0eShCKXx8T3IoIlJlcGxhY2luZyBub25leGlzdGFudCBwdWJsaWMgc3ltYm9sIiksdFtCXS5vdmVybG9hZFRhYmxlIT09dm9pZCAwJiZxIT09dm9pZCAwP3RbQl0ub3ZlcmxvYWRUYWJsZVtxXT1VOih0W0JdPVUsdFtCXS5hcmdDb3VudD1xKX1mdW5jdGlvbiBpdShCLFUscSl7dmFyIGVlPXRbImR5bkNhbGxfIitCXTtyZXR1cm4gcSYmcS5sZW5ndGg/ZWUuYXBwbHkobnVsbCxbVV0uY29uY2F0KHEpKTplZS5jYWxsKG51bGwsVSl9ZnVuY3Rpb24gY3UoQixVLHEpe3JldHVybiBCLmluZGV4T2YoImoiKSE9LTE/aXUoQixVLHEpOnFlLmdldChVKS5hcHBseShudWxsLHEpfWZ1bmN0aW9uIHN1KEIsVSl7dmFyIHE9W107cmV0dXJuIGZ1bmN0aW9uKCl7cS5sZW5ndGg9YXJndW1lbnRzLmxlbmd0aDtmb3IodmFyIGVlPTA7ZWU8YXJndW1lbnRzLmxlbmd0aDtlZSsrKXFbZWVdPWFyZ3VtZW50c1tlZV07cmV0dXJuIGN1KEIsVSxxKX19ZnVuY3Rpb24gS28oQixVKXtCPUxuKEIpO2Z1bmN0aW9uIHEoKXtyZXR1cm4gQi5pbmRleE9mKCJqIikhPS0xP3N1KEIsVSk6cWUuZ2V0KFUpfXZhciBlZT1xKCk7cmV0dXJuIHR5cGVvZiBlZSE9ImZ1bmN0aW9uIiYmSXQoInVua25vd24gZnVuY3Rpb24gcG9pbnRlciB3aXRoIHNpZ25hdHVyZSAiK0IrIjogIitVKSxlZX12YXIgY2Y9dm9pZCAwO2Z1bmN0aW9uIHNmKEIpe3ZhciBVPW5lKEIpLHE9TG4oVSk7cmV0dXJuIEgoVSkscX1mdW5jdGlvbiBLaShCLFUpe3ZhciBxPVtdLGVlPXt9O2Z1bmN0aW9uIGRlKEFlKXtpZighZWVbQWVdJiYhSG9bQWVdKXtpZih2YVtBZV0pe3ZhW0FlXS5mb3JFYWNoKGRlKTtyZXR1cm59cS5wdXNoKEFlKSxlZVtBZV09ITB9fXRocm93IFUuZm9yRWFjaChkZSksbmV3IGNmKEIrIjogIitxLm1hcChzZikuam9pbihbIiwgIl0pKX1mdW5jdGlvbiBmdShCLFUscSxlZSxkZSxBZSxFZSxfZSx5ZSxqZSxYZSxsdCxlbil7WGU9TG4oWGUpLEFlPUtvKGRlLEFlKSxfZSYmKF9lPUtvKEVlLF9lKSksamUmJihqZT1Lbyh5ZSxqZSkpLGVuPUtvKGx0LGVuKTt2YXIgZ249dGkoWGUpO2pjKGduLGZ1bmN0aW9uKCl7S2koIkNhbm5vdCBjb25zdHJ1Y3QgIitYZSsiIGR1ZSB0byB1bmJvdW5kIHR5cGVzIixbZWVdKX0pLGNvKFtCLFUscV0sZWU/W2VlXTpbXSxmdW5jdGlvbihzbyl7c289c29bMF07dmFyIGtvLHVhO2VlPyhrbz1zby5yZWdpc3RlcmVkQ2xhc3MsdWE9a28uaW5zdGFuY2VQcm90b3R5cGUpOnVhPUJhLnByb3RvdHlwZTt2YXIgJGE9RmEoZ24sZnVuY3Rpb24oKXtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykhPT1tZil0aHJvdyBuZXcgU3IoIlVzZSAnbmV3JyB0byBjb25zdHJ1Y3QgIitYZSk7aWYoTnIuY29uc3RydWN0b3JfYm9keT09PXZvaWQgMCl0aHJvdyBuZXcgU3IoWGUrIiBoYXMgbm8gYWNjZXNzaWJsZSBjb25zdHJ1Y3RvciIpO3ZhciB4MT1Oci5jb25zdHJ1Y3Rvcl9ib2R5W2FyZ3VtZW50cy5sZW5ndGhdO2lmKHgxPT09dm9pZCAwKXRocm93IG5ldyBTcigiVHJpZWQgdG8gaW52b2tlIGN0b3Igb2YgIitYZSsiIHdpdGggaW52YWxpZCBudW1iZXIgb2YgcGFyYW1ldGVycyAoIithcmd1bWVudHMubGVuZ3RoKyIpIC0gZXhwZWN0ZWQgKCIrT2JqZWN0LmtleXMoTnIuY29uc3RydWN0b3JfYm9keSkudG9TdHJpbmcoKSsiKSBwYXJhbWV0ZXJzIGluc3RlYWQhIik7cmV0dXJuIHgxLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLG1mPU9iamVjdC5jcmVhdGUodWEse2NvbnN0cnVjdG9yOnt2YWx1ZTokYX19KTskYS5wcm90b3R5cGU9bWY7dmFyIE5yPW5ldyBLZChYZSwkYSxtZixlbixrbyxBZSxfZSxqZSksV1M9bmV3IGZhKFhlLE5yLCEwLCExLCExKSxFMT1uZXcgZmEoWGUrIioiLE5yLCExLCExLCExKSxSMT1uZXcgZmEoWGUrIiBjb25zdCoiLE5yLCExLCEwLCExKTtyZXR1cm4gbmZbQl09e3BvaW50ZXJUeXBlOkUxLGNvbnN0UG9pbnRlclR5cGU6UjF9LHJmKGduLCRhKSxbV1MsRTEsUjFdfSl9ZnVuY3Rpb24gTGMoQixVKXtmb3IodmFyIHE9W10sZWU9MDtlZTxCO2VlKyspcS5wdXNoKHplWyhVPj4yKStlZV0pO3JldHVybiBxfWZ1bmN0aW9uIGR1KEIsVSxxLGVlLGRlLEFlKXt2KFU+MCk7dmFyIEVlPUxjKFUscSk7ZGU9S28oZWUsZGUpO3ZhciBfZT1bQWVdLHllPVtdO2NvKFtdLFtCXSxmdW5jdGlvbihqZSl7amU9amVbMF07dmFyIFhlPSJjb25zdHJ1Y3RvciAiK2plLm5hbWU7aWYoamUucmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHk9PT12b2lkIDAmJihqZS5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keT1bXSksamUucmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHlbVS0xXSE9PXZvaWQgMCl0aHJvdyBuZXcgU3IoIkNhbm5vdCByZWdpc3RlciBtdWx0aXBsZSBjb25zdHJ1Y3RvcnMgd2l0aCBpZGVudGljYWwgbnVtYmVyIG9mIHBhcmFtZXRlcnMgKCIrKFUtMSkrIikgZm9yIGNsYXNzICciK2plLm5hbWUrIichIE92ZXJsb2FkIHJlc29sdXRpb24gaXMgY3VycmVudGx5IG9ubHkgcGVyZm9ybWVkIHVzaW5nIHRoZSBwYXJhbWV0ZXIgY291bnQsIG5vdCBhY3R1YWwgdHlwZSBpbmZvISIpO3JldHVybiBqZS5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keVtVLTFdPWZ1bmN0aW9uKCl7S2koIkNhbm5vdCBjb25zdHJ1Y3QgIitqZS5uYW1lKyIgZHVlIHRvIHVuYm91bmQgdHlwZXMiLEVlKX0sY28oW10sRWUsZnVuY3Rpb24obHQpe3JldHVybiBqZS5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keVtVLTFdPWZ1bmN0aW9uKCl7YXJndW1lbnRzLmxlbmd0aCE9PVUtMSYmSXQoWGUrIiBjYWxsZWQgd2l0aCAiK2FyZ3VtZW50cy5sZW5ndGgrIiBhcmd1bWVudHMsIGV4cGVjdGVkICIrKFUtMSkpLHllLmxlbmd0aD0wLF9lLmxlbmd0aD1VO2Zvcih2YXIgZ249MTtnbjxVOysrZ24pX2VbZ25dPWx0W2duXS50b1dpcmVUeXBlKHllLGFyZ3VtZW50c1tnbi0xXSk7dmFyIHNvPWRlLmFwcGx5KG51bGwsX2UpO3JldHVybiBhbih5ZSksbHRbMF0uZnJvbVdpcmVUeXBlKHNvKX0sW119KSxbXX0pfWZ1bmN0aW9uIGZmKEIsVSl7aWYoIShCIGluc3RhbmNlb2YgRnVuY3Rpb24pKXRocm93IG5ldyBUeXBlRXJyb3IoIm5ld18gY2FsbGVkIHdpdGggY29uc3RydWN0b3IgdHlwZSAiK3R5cGVvZiBCKyIgd2hpY2ggaXMgbm90IGEgZnVuY3Rpb24iKTt2YXIgcT1GYShCLm5hbWV8fCJ1bmtub3duRnVuY3Rpb25OYW1lIixmdW5jdGlvbigpe30pO3EucHJvdG90eXBlPUIucHJvdG90eXBlO3ZhciBlZT1uZXcgcSxkZT1CLmFwcGx5KGVlLFUpO3JldHVybiBkZSBpbnN0YW5jZW9mIE9iamVjdD9kZTplZX1mdW5jdGlvbiBkZihCLFUscSxlZSxkZSl7dmFyIEFlPVUubGVuZ3RoO0FlPDImJkl0KCJhcmdUeXBlcyBhcnJheSBzaXplIG1pc21hdGNoISBNdXN0IGF0IGxlYXN0IGdldCByZXR1cm4gdmFsdWUgYW5kICd0aGlzJyB0eXBlcyEiKTtmb3IodmFyIEVlPVVbMV0hPT1udWxsJiZxIT09bnVsbCxfZT0hMSx5ZT0xO3llPFUubGVuZ3RoOysreWUpaWYoVVt5ZV0hPT1udWxsJiZVW3llXS5kZXN0cnVjdG9yRnVuY3Rpb249PT12b2lkIDApe19lPSEwO2JyZWFrfWZvcih2YXIgamU9VVswXS5uYW1lIT09InZvaWQiLFhlPSIiLGx0PSIiLHllPTA7eWU8QWUtMjsrK3llKVhlKz0oeWUhPT0wPyIsICI6IiIpKyJhcmciK3llLGx0Kz0oeWUhPT0wPyIsICI6IiIpKyJhcmciK3llKyJXaXJlZCI7dmFyIGVuPSJyZXR1cm4gZnVuY3Rpb24gIit0aShCKSsiKCIrWGUrYCkgewppZiAoYXJndW1lbnRzLmxlbmd0aCAhPT0gYCsoQWUtMikrYCkgewp0aHJvd0JpbmRpbmdFcnJvcignZnVuY3Rpb24gYCtCKyIgY2FsbGVkIHdpdGggJyArIGFyZ3VtZW50cy5sZW5ndGggKyAnIGFyZ3VtZW50cywgZXhwZWN0ZWQgIisoQWUtMikrYCBhcmdzIScpOwp9CmA7X2UmJihlbis9YHZhciBkZXN0cnVjdG9ycyA9IFtdOwpgKTt2YXIgZ249X2U/ImRlc3RydWN0b3JzIjoibnVsbCIsc289WyJ0aHJvd0JpbmRpbmdFcnJvciIsImludm9rZXIiLCJmbiIsInJ1bkRlc3RydWN0b3JzIiwicmV0VHlwZSIsImNsYXNzUGFyYW0iXSxrbz1bSXQsZWUsZGUsYW4sVVswXSxVWzFdXTtFZSYmKGVuKz0idmFyIHRoaXNXaXJlZCA9IGNsYXNzUGFyYW0udG9XaXJlVHlwZSgiK2duK2AsIHRoaXMpOwpgKTtmb3IodmFyIHllPTA7eWU8QWUtMjsrK3llKWVuKz0idmFyIGFyZyIreWUrIldpcmVkID0gYXJnVHlwZSIreWUrIi50b1dpcmVUeXBlKCIrZ24rIiwgYXJnIit5ZSsiKTsgLy8gIitVW3llKzJdLm5hbWUrYApgLHNvLnB1c2goImFyZ1R5cGUiK3llKSxrby5wdXNoKFVbeWUrMl0pO2lmKEVlJiYobHQ9InRoaXNXaXJlZCIrKGx0Lmxlbmd0aD4wPyIsICI6IiIpK2x0KSxlbis9KGplPyJ2YXIgcnYgPSAiOiIiKSsiaW52b2tlcihmbiIrKGx0Lmxlbmd0aD4wPyIsICI6IiIpK2x0K2ApOwpgLF9lKWVuKz1gcnVuRGVzdHJ1Y3RvcnMoZGVzdHJ1Y3RvcnMpOwpgO2Vsc2UgZm9yKHZhciB5ZT1FZT8xOjI7eWU8VS5sZW5ndGg7Kyt5ZSl7dmFyIHVhPXllPT09MT8idGhpc1dpcmVkIjoiYXJnIisoeWUtMikrIldpcmVkIjtVW3llXS5kZXN0cnVjdG9yRnVuY3Rpb24hPT1udWxsJiYoZW4rPXVhKyJfZHRvcigiK3VhKyIpOyAvLyAiK1VbeWVdLm5hbWUrYApgLHNvLnB1c2godWErIl9kdG9yIiksa28ucHVzaChVW3llXS5kZXN0cnVjdG9yRnVuY3Rpb24pKX1qZSYmKGVuKz1gdmFyIHJldCA9IHJldFR5cGUuZnJvbVdpcmVUeXBlKHJ2KTsKcmV0dXJuIHJldDsKYCksZW4rPWB9CmAsc28ucHVzaChlbik7dmFyICRhPWZmKEZ1bmN0aW9uLHNvKS5hcHBseShudWxsLGtvKTtyZXR1cm4gJGF9ZnVuY3Rpb24gdXUoQixVLHEsZWUsZGUsQWUsRWUsX2Upe3ZhciB5ZT1MYyhxLGVlKTtVPUxuKFUpLEFlPUtvKGRlLEFlKSxjbyhbXSxbQl0sZnVuY3Rpb24oamUpe2plPWplWzBdO3ZhciBYZT1qZS5uYW1lKyIuIitVO19lJiZqZS5yZWdpc3RlcmVkQ2xhc3MucHVyZVZpcnR1YWxGdW5jdGlvbnMucHVzaChVKTtmdW5jdGlvbiBsdCgpe0tpKCJDYW5ub3QgY2FsbCAiK1hlKyIgZHVlIHRvIHVuYm91bmQgdHlwZXMiLHllKX12YXIgZW49amUucmVnaXN0ZXJlZENsYXNzLmluc3RhbmNlUHJvdG90eXBlLGduPWVuW1VdO3JldHVybiBnbj09PXZvaWQgMHx8Z24ub3ZlcmxvYWRUYWJsZT09PXZvaWQgMCYmZ24uY2xhc3NOYW1lIT09amUubmFtZSYmZ24uYXJnQ291bnQ9PT1xLTI/KGx0LmFyZ0NvdW50PXEtMixsdC5jbGFzc05hbWU9amUubmFtZSxlbltVXT1sdCk6KG9mKGVuLFUsWGUpLGVuW1VdLm92ZXJsb2FkVGFibGVbcS0yXT1sdCksY28oW10seWUsZnVuY3Rpb24oc28pe3ZhciBrbz1kZihYZSxzbyxqZSxBZSxFZSk7cmV0dXJuIGVuW1VdLm92ZXJsb2FkVGFibGU9PT12b2lkIDA/KGtvLmFyZ0NvdW50PXEtMixlbltVXT1rbyk6ZW5bVV0ub3ZlcmxvYWRUYWJsZVtxLTJdPWtvLFtdfSksW119KX1mdW5jdGlvbiBsdShCLFUscSl7Qj1MbihCKSxjbyhbXSxbVV0sZnVuY3Rpb24oZWUpe3JldHVybiBlZT1lZVswXSx0W0JdPWVlLmZyb21XaXJlVHlwZShxKSxbXX0pfXZhciB6Yz1bXSxSbz1be30se3ZhbHVlOnZvaWQgMH0se3ZhbHVlOm51bGx9LHt2YWx1ZTohMH0se3ZhbHVlOiExfV07ZnVuY3Rpb24gR2MoQil7Qj40JiYtLVJvW0JdLnJlZmNvdW50PT09MCYmKFJvW0JdPXZvaWQgMCx6Yy5wdXNoKEIpKX1mdW5jdGlvbiBodSgpe2Zvcih2YXIgQj0wLFU9NTtVPFJvLmxlbmd0aDsrK1UpUm9bVV0hPT12b2lkIDAmJisrQjtyZXR1cm4gQn1mdW5jdGlvbiBtdSgpe2Zvcih2YXIgQj01O0I8Um8ubGVuZ3RoOysrQilpZihSb1tCXSE9PXZvaWQgMClyZXR1cm4gUm9bQl07cmV0dXJuIG51bGx9ZnVuY3Rpb24gYnUoKXt0LmNvdW50X2VtdmFsX2hhbmRsZXM9aHUsdC5nZXRfZmlyc3RfZW12YWw9bXV9ZnVuY3Rpb24gZGEoQil7c3dpdGNoKEIpe2Nhc2Ugdm9pZCAwOnJldHVybiAxO2Nhc2UgbnVsbDpyZXR1cm4gMjtjYXNlITA6cmV0dXJuIDM7Y2FzZSExOnJldHVybiA0O2RlZmF1bHQ6e3ZhciBVPXpjLmxlbmd0aD96Yy5wb3AoKTpSby5sZW5ndGg7cmV0dXJuIFJvW1VdPXtyZWZjb3VudDoxLHZhbHVlOkJ9LFV9fX1mdW5jdGlvbiBwdShCLFUpe1U9TG4oVSksb2EoQix7bmFtZTpVLGZyb21XaXJlVHlwZTpmdW5jdGlvbihxKXt2YXIgZWU9Um9bcV0udmFsdWU7cmV0dXJuIEdjKHEpLGVlfSx0b1dpcmVUeXBlOmZ1bmN0aW9uKHEsZWUpe3JldHVybiBkYShlZSl9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6RW8sZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KX1mdW5jdGlvbiBndShCLFUscSl7c3dpdGNoKFUpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oZWUpe3ZhciBkZT1xP1E6VGU7cmV0dXJuIHRoaXMuZnJvbVdpcmVUeXBlKGRlW2VlXSl9O2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24oZWUpe3ZhciBkZT1xP0NlOldlO3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShkZVtlZT4+MV0pfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKGVlKXt2YXIgZGU9cT96ZTpaZTtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUoZGVbZWU+PjJdKX07ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGludGVnZXIgdHlwZTogIitCKX19ZnVuY3Rpb24gX3UoQixVLHEsZWUpe3ZhciBkZT1EYShxKTtVPUxuKFUpO2Z1bmN0aW9uIEFlKCl7fUFlLnZhbHVlcz17fSxvYShCLHtuYW1lOlUsY29uc3RydWN0b3I6QWUsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKEVlKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci52YWx1ZXNbRWVdfSx0b1dpcmVUeXBlOmZ1bmN0aW9uKEVlLF9lKXtyZXR1cm4gX2UudmFsdWV9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6Z3UoVSxkZSxlZSksZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KSxqYyhVLEFlKX1mdW5jdGlvbiBxaShCLFUpe3ZhciBxPUhvW0JdO3JldHVybiBxPT09dm9pZCAwJiZJdChVKyIgaGFzIHVua25vd24gdHlwZSAiK3NmKEIpKSxxfWZ1bmN0aW9uIHl1KEIsVSxxKXt2YXIgZWU9cWkoQiwiZW51bSIpO1U9TG4oVSk7dmFyIGRlPWVlLmNvbnN0cnVjdG9yLEFlPU9iamVjdC5jcmVhdGUoZWUuY29uc3RydWN0b3IucHJvdG90eXBlLHt2YWx1ZTp7dmFsdWU6cX0sY29uc3RydWN0b3I6e3ZhbHVlOkZhKGVlLm5hbWUrIl8iK1UsZnVuY3Rpb24oKXt9KX19KTtkZS52YWx1ZXNbcV09QWUsZGVbVV09QWV9ZnVuY3Rpb24gQ3IoQil7aWYoQj09PW51bGwpcmV0dXJuIm51bGwiO3ZhciBVPXR5cGVvZiBCO3JldHVybiBVPT09Im9iamVjdCJ8fFU9PT0iYXJyYXkifHxVPT09ImZ1bmN0aW9uIj9CLnRvU3RyaW5nKCk6IiIrQn1mdW5jdGlvbiBBdShCLFUpe3N3aXRjaChVKXtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKHEpe3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShLZVtxPj4yXSl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24ocSl7cmV0dXJuIHRoaXMuZnJvbVdpcmVUeXBlKERlW3E+PjNdKX07ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGZsb2F0IHR5cGU6ICIrQil9fWZ1bmN0aW9uIHd1KEIsVSxxKXt2YXIgZWU9RGEocSk7VT1MbihVKSxvYShCLHtuYW1lOlUsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKGRlKXtyZXR1cm4gZGV9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oZGUsQWUpe2lmKHR5cGVvZiBBZSE9Im51bWJlciImJnR5cGVvZiBBZSE9ImJvb2xlYW4iKXRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0ICInK0NyKEFlKSsnIiB0byAnK3RoaXMubmFtZSk7cmV0dXJuIEFlfSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOkF1KFUsZWUpLGRlc3RydWN0b3JGdW5jdGlvbjpudWxsfSl9ZnVuY3Rpb24gVHUoQixVLHEsZWUsZGUsQWUpe3ZhciBFZT1MYyhVLHEpO0I9TG4oQiksZGU9S28oZWUsZGUpLGpjKEIsZnVuY3Rpb24oKXtLaSgiQ2Fubm90IGNhbGwgIitCKyIgZHVlIHRvIHVuYm91bmQgdHlwZXMiLEVlKX0sVS0xKSxjbyhbXSxFZSxmdW5jdGlvbihfZSl7dmFyIHllPVtfZVswXSxudWxsXS5jb25jYXQoX2Uuc2xpY2UoMSkpO3JldHVybiByZihCLGRmKEIseWUsbnVsbCxkZSxBZSksVS0xKSxbXX0pfWZ1bmN0aW9uIEV1KEIsVSxxKXtzd2l0Y2goVSl7Y2FzZSAwOnJldHVybiBxP2Z1bmN0aW9uKGRlKXtyZXR1cm4gUVtkZV19OmZ1bmN0aW9uKGRlKXtyZXR1cm4gVGVbZGVdfTtjYXNlIDE6cmV0dXJuIHE/ZnVuY3Rpb24oZGUpe3JldHVybiBDZVtkZT4+MV19OmZ1bmN0aW9uKGRlKXtyZXR1cm4gV2VbZGU+PjFdfTtjYXNlIDI6cmV0dXJuIHE/ZnVuY3Rpb24oZGUpe3JldHVybiB6ZVtkZT4+Ml19OmZ1bmN0aW9uKGRlKXtyZXR1cm4gWmVbZGU+PjJdfTtkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gaW50ZWdlciB0eXBlOiAiK0IpfX1mdW5jdGlvbiBSdShCLFUscSxlZSxkZSl7VT1MbihVKSxkZT09PS0xJiYoZGU9NDI5NDk2NzI5NSk7dmFyIEFlPURhKHEpLEVlPWZ1bmN0aW9uKGplKXtyZXR1cm4gamV9O2lmKGVlPT09MCl7dmFyIF9lPTMyLTgqcTtFZT1mdW5jdGlvbihqZSl7cmV0dXJuIGplPDxfZT4+Pl9lfX12YXIgeWU9VS5pbmRleE9mKCJ1bnNpZ25lZCIpIT0tMTtvYShCLHtuYW1lOlUsZnJvbVdpcmVUeXBlOkVlLHRvV2lyZVR5cGU6ZnVuY3Rpb24oamUsWGUpe2lmKHR5cGVvZiBYZSE9Im51bWJlciImJnR5cGVvZiBYZSE9ImJvb2xlYW4iKXRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0ICInK0NyKFhlKSsnIiB0byAnK3RoaXMubmFtZSk7aWYoWGU8ZWV8fFhlPmRlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1Bhc3NpbmcgYSBudW1iZXIgIicrQ3IoWGUpKyciIGZyb20gSlMgc2lkZSB0byBDL0MrKyBzaWRlIHRvIGFuIGFyZ3VtZW50IG9mIHR5cGUgIicrVSsnIiwgd2hpY2ggaXMgb3V0c2lkZSB0aGUgdmFsaWQgcmFuZ2UgWycrZWUrIiwgIitkZSsiXSEiKTtyZXR1cm4geWU/WGU+Pj4wOlhlfDB9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6RXUoVSxBZSxlZSE9PTApLGRlc3RydWN0b3JGdW5jdGlvbjpudWxsfSl9ZnVuY3Rpb24geHUoQixVLHEpe3ZhciBlZT1bSW50OEFycmF5LFVpbnQ4QXJyYXksSW50MTZBcnJheSxVaW50MTZBcnJheSxJbnQzMkFycmF5LFVpbnQzMkFycmF5LEZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXldLGRlPWVlW1VdO2Z1bmN0aW9uIEFlKEVlKXtFZT1FZT4+Mjt2YXIgX2U9WmUseWU9X2VbRWVdLGplPV9lW0VlKzFdO3JldHVybiBuZXcgZGUoaGUsamUseWUpfXE9TG4ocSksb2EoQix7bmFtZTpxLGZyb21XaXJlVHlwZTpBZSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOkFlfSx7aWdub3JlRHVwbGljYXRlUmVnaXN0cmF0aW9uczohMH0pfWZ1bmN0aW9uIE91KEIsVSl7VT1MbihVKTt2YXIgcT1VPT09InN0ZDo6c3RyaW5nIjtvYShCLHtuYW1lOlUsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKGVlKXt2YXIgZGU9WmVbZWU+PjJdLEFlO2lmKHEpZm9yKHZhciBFZT1lZSs0LF9lPTA7X2U8PWRlOysrX2Upe3ZhciB5ZT1lZSs0K19lO2lmKF9lPT1kZXx8VGVbeWVdPT0wKXt2YXIgamU9eWUtRWUsWGU9RChFZSxqZSk7QWU9PT12b2lkIDA/QWU9WGU6KEFlKz0iXDAiLEFlKz1YZSksRWU9eWUrMX19ZWxzZXtmb3IodmFyIGx0PW5ldyBBcnJheShkZSksX2U9MDtfZTxkZTsrK19lKWx0W19lXT1TdHJpbmcuZnJvbUNoYXJDb2RlKFRlW2VlKzQrX2VdKTtBZT1sdC5qb2luKCIiKX1yZXR1cm4gSChlZSksQWV9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oZWUsZGUpe2RlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJihkZT1uZXcgVWludDhBcnJheShkZSkpO3ZhciBBZSxFZT10eXBlb2YgZGU9PSJzdHJpbmciO0VlfHxkZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fGRlIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fGRlIGluc3RhbmNlb2YgSW50OEFycmF5fHxJdCgiQ2Fubm90IHBhc3Mgbm9uLXN0cmluZyB0byBzdGQ6OnN0cmluZyIpLHEmJkVlP0FlPWZ1bmN0aW9uKCl7cmV0dXJuIE8oZGUpfTpBZT1mdW5jdGlvbigpe3JldHVybiBkZS5sZW5ndGh9O3ZhciBfZT1BZSgpLHllPUwoNCtfZSsxKTtpZihaZVt5ZT4+Ml09X2UscSYmRWUpVihkZSx5ZSs0LF9lKzEpO2Vsc2UgaWYoRWUpZm9yKHZhciBqZT0wO2plPF9lOysramUpe3ZhciBYZT1kZS5jaGFyQ29kZUF0KGplKTtYZT4yNTUmJihIKHllKSxJdCgiU3RyaW5nIGhhcyBVVEYtMTYgY29kZSB1bml0cyB0aGF0IGRvIG5vdCBmaXQgaW4gOCBiaXRzIikpLFRlW3llKzQramVdPVhlfWVsc2UgZm9yKHZhciBqZT0wO2plPF9lOysramUpVGVbeWUrNCtqZV09ZGVbamVdO3JldHVybiBlZSE9PW51bGwmJmVlLnB1c2goSCx5ZSkseWV9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6RW8sZGVzdHJ1Y3RvckZ1bmN0aW9uOmZ1bmN0aW9uKGVlKXtIKGVlKX19KX1mdW5jdGlvbiBTdShCLFUscSl7cT1MbihxKTt2YXIgZWUsZGUsQWUsRWUsX2U7VT09PTI/KGVlPWFlLGRlPWNlLEVlPWZlLEFlPWZ1bmN0aW9uKCl7cmV0dXJuIFdlfSxfZT0xKTpVPT09NCYmKGVlPXRlLGRlPW1lLEVlPXVlLEFlPWZ1bmN0aW9uKCl7cmV0dXJuIFplfSxfZT0yKSxvYShCLHtuYW1lOnEsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKHllKXtmb3IodmFyIGplPVplW3llPj4yXSxYZT1BZSgpLGx0LGVuPXllKzQsZ249MDtnbjw9amU7Kytnbil7dmFyIHNvPXllKzQrZ24qVTtpZihnbj09amV8fFhlW3NvPj5fZV09PTApe3ZhciBrbz1zby1lbix1YT1lZShlbixrbyk7bHQ9PT12b2lkIDA/bHQ9dWE6KGx0Kz0iXDAiLGx0Kz11YSksZW49c28rVX19cmV0dXJuIEgoeWUpLGx0fSx0b1dpcmVUeXBlOmZ1bmN0aW9uKHllLGplKXt0eXBlb2YgamUhPSJzdHJpbmciJiZJdCgiQ2Fubm90IHBhc3Mgbm9uLXN0cmluZyB0byBDKysgc3RyaW5nIHR5cGUgIitxKTt2YXIgWGU9RWUoamUpLGx0PUwoNCtYZStVKTtyZXR1cm4gWmVbbHQ+PjJdPVhlPj5fZSxkZShqZSxsdCs0LFhlK1UpLHllIT09bnVsbCYmeWUucHVzaChILGx0KSxsdH0sYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjpFbyxkZXN0cnVjdG9yRnVuY3Rpb246ZnVuY3Rpb24oeWUpe0goeWUpfX0pfWZ1bmN0aW9uIEN1KEIsVSxxLGVlLGRlLEFlKXtEdFtCXT17bmFtZTpMbihVKSxyYXdDb25zdHJ1Y3RvcjpLbyhxLGVlKSxyYXdEZXN0cnVjdG9yOktvKGRlLEFlKSxmaWVsZHM6W119fWZ1bmN0aW9uIE11KEIsVSxxLGVlLGRlLEFlLEVlLF9lLHllLGplKXtEdFtCXS5maWVsZHMucHVzaCh7ZmllbGROYW1lOkxuKFUpLGdldHRlclJldHVyblR5cGU6cSxnZXR0ZXI6S28oZWUsZGUpLGdldHRlckNvbnRleHQ6QWUsc2V0dGVyQXJndW1lbnRUeXBlOkVlLHNldHRlcjpLbyhfZSx5ZSksc2V0dGVyQ29udGV4dDpqZX0pfWZ1bmN0aW9uIE51KEIsVSl7VT1MbihVKSxvYShCLHtpc1ZvaWQ6ITAsbmFtZTpVLGFyZ1BhY2tBZHZhbmNlOjAsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKCl7fSx0b1dpcmVUeXBlOmZ1bmN0aW9uKHEsZWUpe319KX1mdW5jdGlvbiBjaShCKXtyZXR1cm4gQnx8SXQoIkNhbm5vdCB1c2UgZGVsZXRlZCB2YWwuIGhhbmRsZSA9ICIrQiksUm9bQl0udmFsdWV9ZnVuY3Rpb24gSXUoQixVLHEpe0I9Y2koQiksVT1xaShVLCJlbXZhbDo6YXMiKTt2YXIgZWU9W10sZGU9ZGEoZWUpO3JldHVybiB6ZVtxPj4yXT1kZSxVLnRvV2lyZVR5cGUoZWUsQil9dmFyIFB1PXt9O2Z1bmN0aW9uIFdpKEIpe3ZhciBVPVB1W0JdO3JldHVybiBVPT09dm9pZCAwP0xuKEIpOlV9dmFyIFZjPVtdO2Z1bmN0aW9uIGt1KEIsVSxxLGVlKXtCPVZjW0JdLFU9Y2koVSkscT1XaShxKSxCKFUscSxudWxsLGVlKX1mdW5jdGlvbiB1Zigpe3JldHVybiB0eXBlb2YgZ2xvYmFsVGhpcz09Im9iamVjdCI/Z2xvYmFsVGhpczooZnVuY3Rpb24oKXtyZXR1cm4gRnVuY3Rpb259KSgpKCJyZXR1cm4gdGhpcyIpKCl9ZnVuY3Rpb24gdnUoQil7cmV0dXJuIEI9PT0wP2RhKHVmKCkpOihCPVdpKEIpLGRhKHVmKClbQl0pKX1mdW5jdGlvbiBGdShCKXt2YXIgVT1WYy5sZW5ndGg7cmV0dXJuIFZjLnB1c2goQiksVX1mdW5jdGlvbiBEdShCLFUpe2Zvcih2YXIgcT1uZXcgQXJyYXkoQiksZWU9MDtlZTxCOysrZWUpcVtlZV09cWkoemVbKFU+PjIpK2VlXSwicGFyYW1ldGVyICIrZWUpO3JldHVybiBxfWZ1bmN0aW9uIEJ1KEIsVSl7Zm9yKHZhciBxPUR1KEIsVSksZWU9cVswXSxkZT1lZS5uYW1lKyJfJCIrcS5zbGljZSgxKS5tYXAoZnVuY3Rpb24oZ24pe3JldHVybiBnbi5uYW1lfSkuam9pbigiXyIpKyIkIixBZT1bInJldFR5cGUiXSxFZT1bZWVdLF9lPSIiLHllPTA7eWU8Qi0xOysreWUpX2UrPSh5ZSE9PTA/IiwgIjoiIikrImFyZyIreWUsQWUucHVzaCgiYXJnVHlwZSIreWUpLEVlLnB1c2gocVsxK3llXSk7Zm9yKHZhciBqZT10aSgibWV0aG9kQ2FsbGVyXyIrZGUpLFhlPSJyZXR1cm4gZnVuY3Rpb24gIitqZStgKGhhbmRsZSwgbmFtZSwgZGVzdHJ1Y3RvcnMsIGFyZ3MpIHsKYCxsdD0wLHllPTA7eWU8Qi0xOysreWUpWGUrPSIgICAgdmFyIGFyZyIreWUrIiA9IGFyZ1R5cGUiK3llKyIucmVhZFZhbHVlRnJvbVBvaW50ZXIoYXJncyIrKGx0PyIrIitsdDoiIikrYCk7CmAsbHQrPXFbeWUrMV0uYXJnUGFja0FkdmFuY2U7WGUrPSIgICAgdmFyIHJ2ID0gaGFuZGxlW25hbWVdKCIrX2UrYCk7CmA7Zm9yKHZhciB5ZT0wO3llPEItMTsrK3llKXFbeWUrMV0uZGVsZXRlT2JqZWN0JiYoWGUrPSIgICAgYXJnVHlwZSIreWUrIi5kZWxldGVPYmplY3QoYXJnIit5ZStgKTsKYCk7ZWUuaXNWb2lkfHwoWGUrPWAgICAgcmV0dXJuIHJldFR5cGUudG9XaXJlVHlwZShkZXN0cnVjdG9ycywgcnYpOwpgKSxYZSs9YH07CmAsQWUucHVzaChYZSk7dmFyIGVuPWZmKEZ1bmN0aW9uLEFlKS5hcHBseShudWxsLEVlKTtyZXR1cm4gRnUoZW4pfWZ1bmN0aW9uIGp1KEIpe3JldHVybiBCPVdpKEIpLGRhKHRbQl0pfWZ1bmN0aW9uIFV1KEIsVSl7cmV0dXJuIEI9Y2koQiksVT1jaShVKSxkYShCW1VdKX1mdW5jdGlvbiBMdShCKXtCPjQmJihSb1tCXS5yZWZjb3VudCs9MSl9ZnVuY3Rpb24genUoQil7Zm9yKHZhciBVPSIiLHE9MDtxPEI7KytxKVUrPShxIT09MD8iLCAiOiIiKSsiYXJnIitxO2Zvcih2YXIgZWU9InJldHVybiBmdW5jdGlvbiBlbXZhbF9hbGxvY2F0b3JfIitCK2AoY29uc3RydWN0b3IsIGFyZ1R5cGVzLCBhcmdzKSB7CmAscT0wO3E8QjsrK3EpZWUrPSJ2YXIgYXJnVHlwZSIrcSsiID0gcmVxdWlyZVJlZ2lzdGVyZWRUeXBlKE1vZHVsZVsnSEVBUDMyJ11bKGFyZ1R5cGVzID4+PiAyKSArICIrcSsnXSwgInBhcmFtZXRlciAnK3ErYCIpOwp2YXIgYXJnYCtxKyIgPSBhcmdUeXBlIitxK2AucmVhZFZhbHVlRnJvbVBvaW50ZXIoYXJncyk7CmFyZ3MgKz0gYXJnVHlwZWArcStgWydhcmdQYWNrQWR2YW5jZSddOwpgO3JldHVybiBlZSs9InZhciBvYmogPSBuZXcgY29uc3RydWN0b3IoIitVK2ApOwpyZXR1cm4gX19lbXZhbF9yZWdpc3RlcihvYmopOwp9CmAsbmV3IEZ1bmN0aW9uKCJyZXF1aXJlUmVnaXN0ZXJlZFR5cGUiLCJNb2R1bGUiLCJfX2VtdmFsX3JlZ2lzdGVyIixlZSkocWksdCxkYSl9dmFyIGxmPXt9O2Z1bmN0aW9uIEd1KEIsVSxxLGVlKXtCPWNpKEIpO3ZhciBkZT1sZltVXTtyZXR1cm4gZGV8fChkZT16dShVKSxsZltVXT1kZSksZGUoQixxLGVlKX1mdW5jdGlvbiBWdShCKXtyZXR1cm4gZGEoV2koQikpfWZ1bmN0aW9uIEh1KEIpe3ZhciBVPVJvW0JdLnZhbHVlO2FuKFUpLEdjKEIpfWZ1bmN0aW9uIEt1KCl7RnQoKX1mdW5jdGlvbiBxdShCLFUscSl7VGUuY29weVdpdGhpbihCLFUsVStxKX1mdW5jdGlvbiBXdShCKXt0cnl7cmV0dXJuIHcuZ3JvdyhCLWhlLmJ5dGVMZW5ndGgrNjU1MzU+Pj4xNiksQmUody5idWZmZXIpLDF9Y2F0Y2h7fX1mdW5jdGlvbiBYdShCKXt2YXIgVT1UZS5sZW5ndGg7Qj1CPj4+MDt2YXIgcT0yMTQ3NDgzNjQ4O2lmKEI+cSlyZXR1cm4hMTtmb3IodmFyIGVlPTE7ZWU8PTQ7ZWUqPTIpe3ZhciBkZT1VKigxKy4yL2VlKTtkZT1NYXRoLm1pbihkZSxCKzEwMDY2MzI5Nik7dmFyIEFlPU1hdGgubWluKHEsYmUoTWF0aC5tYXgoQixkZSksNjU1MzYpKSxFZT1XdShBZSk7aWYoRWUpcmV0dXJuITB9cmV0dXJuITF9dmFyIFhpPXttYXBwaW5nczp7fSxidWZmZXJzOltudWxsLFtdLFtdXSxwcmludENoYXI6ZnVuY3Rpb24oQixVKXt2YXIgcT1YaS5idWZmZXJzW0JdO1U9PT0wfHxVPT09MTA/KChCPT09MT9TOk0pKHoocSwwKSkscS5sZW5ndGg9MCk6cS5wdXNoKFUpfSx2YXJhcmdzOnZvaWQgMCxnZXQ6ZnVuY3Rpb24oKXtYaS52YXJhcmdzKz00O3ZhciBCPXplW1hpLnZhcmFyZ3MtND4+Ml07cmV0dXJuIEJ9LGdldFN0cjpmdW5jdGlvbihCKXt2YXIgVT1EKEIpO3JldHVybiBVfSxnZXQ2NDpmdW5jdGlvbihCLFUpe3JldHVybiBCfX07ZnVuY3Rpb24gWXUoQil7cmV0dXJuIDB9ZnVuY3Rpb24gSnUoQixVLHEsZWUsZGUpe31mdW5jdGlvbiBadShCLFUscSxlZSl7Zm9yKHZhciBkZT0wLEFlPTA7QWU8cTtBZSsrKXtmb3IodmFyIEVlPXplW1UrQWUqOD4+Ml0sX2U9emVbVSsoQWUqOCs0KT4+Ml0seWU9MDt5ZTxfZTt5ZSsrKVhpLnByaW50Q2hhcihCLFRlW0VlK3llXSk7ZGUrPV9lfXJldHVybiB6ZVtlZT4+Ml09ZGUsMH1mdW5jdGlvbiBRdShCKXtOKEJ8MCl9Vmk9dC5JbnRlcm5hbEVycm9yPW5pKEVycm9yLCJJbnRlcm5hbEVycm9yIiksa2MoKSxTcj10LkJpbmRpbmdFcnJvcj1uaShFcnJvciwiQmluZGluZ0Vycm9yIiksSGQoKSxydSgpLHR1KCksY2Y9dC5VbmJvdW5kVHlwZUVycm9yPW5pKEVycm9yLCJVbmJvdW5kVHlwZUVycm9yIiksYnUoKTt2YXIgJHU9e3Q6Z28sSTpEZCx4OmZ1LHc6ZHUsZDp1dSxrOmx1LEg6cHUsbjpfdSxhOnl1LEE6d3UsaTpUdSxqOlJ1LGg6eHUsQjpPdSx2OlN1LHU6Q3UsYzpNdSxKOk51LG06SXUsczprdSxiOkdjLHk6dnUscDpCdSxyOmp1LGU6VXUsZzpMdSxxOkd1LGY6VnUsbDpIdSxvOkt1LEU6cXUsRjpYdSxHOll1LEM6SnUsejpadSxEOlF1fSxoZj1DbigpLEF0PXQuX19fd2FzbV9jYWxsX2N0b3JzPWZ1bmN0aW9uKCl7cmV0dXJuKEF0PXQuX19fd2FzbV9jYWxsX2N0b3JzPXQuYXNtLkwpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTD10Ll9tYWxsb2M9ZnVuY3Rpb24oKXtyZXR1cm4oTD10Ll9tYWxsb2M9dC5hc20uTSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxIPXQuX2ZyZWU9ZnVuY3Rpb24oKXtyZXR1cm4oSD10Ll9mcmVlPXQuYXNtLk4pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sbmU9dC5fX19nZXRUeXBlTmFtZT1mdW5jdGlvbigpe3JldHVybihuZT10Ll9fX2dldFR5cGVOYW1lPXQuYXNtLlApLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sU2U9dC5fX19lbWJpbmRfcmVnaXN0ZXJfbmF0aXZlX2FuZF9idWlsdGluX3R5cGVzPWZ1bmN0aW9uKCl7cmV0dXJuKFNlPXQuX19fZW1iaW5kX3JlZ2lzdGVyX25hdGl2ZV9hbmRfYnVpbHRpbl90eXBlcz10LmFzbS5RKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHR0PXQuZHluQ2FsbF9qaWppPWZ1bmN0aW9uKCl7cmV0dXJuKHR0PXQuZHluQ2FsbF9qaWppPXQuYXNtLlIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdXQ7ZnVuY3Rpb24gTXIoQil7dGhpcy5uYW1lPSJFeGl0U3RhdHVzIix0aGlzLm1lc3NhZ2U9IlByb2dyYW0gdGVybWluYXRlZCB3aXRoIGV4aXQoIitCKyIpIix0aGlzLnN0YXR1cz1CfXBuPWZ1bmN0aW9uIEIoKXt1dHx8SGMoKSx1dHx8KHBuPUIpfTtmdW5jdGlvbiBIYyhCKXtpZihCPUJ8fGYscXQ+MHx8KE90KCkscXQ+MCkpcmV0dXJuO2Z1bmN0aW9uIFUoKXt1dHx8KHV0PSEwLHQuY2FsbGVkUnVuPSEwLCF4JiYoa3QoKSxHZSgpLG8odCksdC5vblJ1bnRpbWVJbml0aWFsaXplZCYmdC5vblJ1bnRpbWVJbml0aWFsaXplZCgpLExlKCkpKX10LnNldFN0YXR1cz8odC5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe3Quc2V0U3RhdHVzKCIiKX0sMSksVSgpfSwxKSk6VSgpfWlmKHQucnVuPUhjLHQucHJlSW5pdClmb3IodHlwZW9mIHQucHJlSW5pdD09ImZ1bmN0aW9uIiYmKHQucHJlSW5pdD1bdC5wcmVJbml0XSk7dC5wcmVJbml0Lmxlbmd0aD4wOyl0LnByZUluaXQucG9wKCkoKTtyZXR1cm4gSGMoKSxlLnJlYWR5fSl9KSgpO3R5cGVvZiBCbT09Im9iamVjdCImJnR5cGVvZiBsMT09Im9iamVjdCI/bDEuZXhwb3J0cz11MTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShbXSxmdW5jdGlvbigpe3JldHVybiB1MX0pOnR5cGVvZiBCbT09Im9iamVjdCImJihCbS5CQVNJUz11MSl9KTt2YXIgaDE9e307JGUoaDEse2RlZmF1bHQ6KCk9PnV6fSk7ZnVuY3Rpb24gaXoobixlKXtsZXQgdD1uLmt0eDJCdWZmZXIsbz1uLnN1cHBvcnRlZFRhcmdldEZvcm1hdHMsYTt0cnl7YT1GUyh0KX1jYXRjaHt0aHJvdyBuZXcgbnQoIkludmFsaWQgS1RYMiBmaWxlLiIpfWlmKGEubGF5ZXJDb3VudCE9PTApdGhyb3cgbmV3IG50KCJLVFgyIHRleHR1cmUgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkLiIpO2lmKGEucGl4ZWxEZXB0aCE9PTApdGhyb3cgbmV3IG50KCJLVFgyIDNEIHRleHR1cmVzIGFyZSB1bnN1cHBvcnRlZC4iKTtsZXQgcj1hLmRhdGFGb3JtYXREZXNjcmlwdG9yWzBdLGk9bmV3IEFycmF5KGEubGV2ZWxDb3VudCk7cmV0dXJuIGEudmtGb3JtYXQ9PT0wJiYoci5jb2xvck1vZGVsPT09TFN8fHIuY29sb3JNb2RlbD09PXpTKT9zeih0LGEsbyxqbSxlLGkpOihlLnB1c2godC5idWZmZXIpLGN6KGEsaSkpLGl9ZnVuY3Rpb24gY3oobixlKXtsZXQgdD1uLnZrRm9ybWF0PT09RmQuVktfRk9STUFUX1I4RzhCOF9TUkdCP1ZuLlJHQjpWbi5SR0JBLG87bi52a0Zvcm1hdD09PUZkLlZLX0ZPUk1BVF9SOEc4QjhBOF9VTk9STT9vPWlvLlVOU0lHTkVEX0JZVEU6bi52a0Zvcm1hdD09PUZkLlZLX0ZPUk1BVF9SMTZHMTZCMTZBMTZfU0ZMT0FUP289aW8uSEFMRl9GTE9BVDpuLnZrRm9ybWF0PT09RmQuVktfRk9STUFUX1IzMkczMkIzMkEzMl9TRkxPQVQmJihvPWlvLkZMT0FUKTtmb3IobGV0IGE9MDthPG4ubGV2ZWxzLmxlbmd0aDsrK2Epe2xldCByPXt9O2VbYV09cjtsZXQgaT1uLmxldmVsc1thXS5sZXZlbERhdGEsZj1uLnBpeGVsV2lkdGg+PmEsZD1uLnBpeGVsSGVpZ2h0Pj5hLGM9ZipkKlZuLmNvbXBvbmVudHNMZW5ndGgodCk7Zm9yKGxldCB1PTA7dTxuLmZhY2VDb3VudDsrK3Upe2xldCBsPWkuYnl0ZU9mZnNldCtjKm4udHlwZVNpemUqdSxoOyFfKG8pfHxpby5zaXplSW5CeXRlcyhvKT09PTE/aD1uZXcgVWludDhBcnJheShpLmJ1ZmZlcixsLGMpOmlvLnNpemVJbkJ5dGVzKG8pPT09Mj9oPW5ldyBVaW50MTZBcnJheShpLmJ1ZmZlcixsLGMpOmg9bmV3IEZsb2F0MzJBcnJheShpLmJ1ZmZlcixsLGMpLHJbVVNbdV1dPXtpbnRlcm5hbEZvcm1hdDp0LGRhdGF0eXBlOm8sd2lkdGg6ZixoZWlnaHQ6ZCxsZXZlbEJ1ZmZlcjpofX19fWZ1bmN0aW9uIHN6KG4sZSx0LG8sYSxyKXtsZXQgaT1uZXcgby5LVFgyRmlsZShuKSxmPWkuZ2V0V2lkdGgoKSxkPWkuZ2V0SGVpZ2h0KCksYz1pLmdldExldmVscygpLHU9aS5nZXRIYXNBbHBoYSgpO2lmKCEoZj4wKXx8IShkPjApfHwhKGM+MCkpdGhyb3cgaS5jbG9zZSgpLGkuZGVsZXRlKCksbmV3IG50KCJJbnZhbGlkIEtUWDIgZmlsZSIpO2xldCBsLGgsbT1lLmRhdGFGb3JtYXREZXNjcmlwdG9yWzBdLGI9by50cmFuc2NvZGVyX3RleHR1cmVfZm9ybWF0O2lmKG0uY29sb3JNb2RlbD09PUxTKWlmKHQuZXRjKWw9dT9Wbi5SR0JBOF9FVEMyX0VBQzpWbi5SR0I4X0VUQzIsaD11P2IuY1RGRVRDMl9SR0JBOmIuY1RGRVRDMV9SR0I7ZWxzZSBpZih0LmV0YzEmJiF1KWw9Vm4uUkdCX0VUQzEsaD1iLmNURkVUQzFfUkdCO2Vsc2UgaWYodC5zM3RjKWw9dT9Wbi5SR0JBX0RYVDU6Vm4uUkdCX0RYVDEsaD11P2IuY1RGQkMzX1JHQkE6Yi5jVEZCQzFfUkdCO2Vsc2UgaWYodC5wdnJ0YylsPXU/Vm4uUkdCQV9QVlJUQ180QlBQVjE6Vm4uUkdCX1BWUlRDXzRCUFBWMSxoPXU/Yi5jVEZQVlJUQzFfNF9SR0JBOmIuY1RGUFZSVEMxXzRfUkdCO2Vsc2UgaWYodC5hc3RjKWw9Vm4uUkdCQV9BU1RDLGg9Yi5jVEZBU1RDXzR4NF9SR0JBO2Vsc2UgaWYodC5iYzcpbD1Wbi5SR0JBX0JDNyxoPWIuY1RGQkM3X1JHQkE7ZWxzZSB0aHJvdyBuZXcgbnQoIk5vIHRyYW5zY29kaW5nIGZvcm1hdCB0YXJnZXQgYXZhaWxhYmxlIGZvciBFVEMxUyBjb21wcmVzc2VkIGt0eDIuIik7ZWxzZSBpZihtLmNvbG9yTW9kZWw9PT16UylpZih0LmFzdGMpbD1Wbi5SR0JBX0FTVEMsaD1iLmNURkFTVENfNHg0X1JHQkE7ZWxzZSBpZih0LmJjNylsPVZuLlJHQkFfQkM3LGg9Yi5jVEZCQzdfUkdCQTtlbHNlIGlmKHQuczN0YylsPXU/Vm4uUkdCQV9EWFQ1OlZuLlJHQl9EWFQxLGg9dT9iLmNURkJDM19SR0JBOmIuY1RGQkMxX1JHQjtlbHNlIGlmKHQuZXRjKWw9dT9Wbi5SR0JBOF9FVEMyX0VBQzpWbi5SR0I4X0VUQzIsaD11P2IuY1RGRVRDMl9SR0JBOmIuY1RGRVRDMV9SR0I7ZWxzZSBpZih0LmV0YzEmJiF1KWw9Vm4uUkdCX0VUQzEsaD1iLmNURkVUQzFfUkdCO2Vsc2UgaWYodC5wdnJ0YylsPXU/Vm4uUkdCQV9QVlJUQ180QlBQVjE6Vm4uUkdCX1BWUlRDXzRCUFBWMSxoPXU/Yi5jVEZQVlJUQzFfNF9SR0JBOmIuY1RGUFZSVEMxXzRfUkdCO2Vsc2UgdGhyb3cgbmV3IG50KCJObyB0cmFuc2NvZGluZyBmb3JtYXQgdGFyZ2V0IGF2YWlsYWJsZSBmb3IgVUFTVEMgY29tcHJlc3NlZCBrdHgyLiIpO2lmKCFpLnN0YXJ0VHJhbnNjb2RpbmcoKSl0aHJvdyBpLmNsb3NlKCksaS5kZWxldGUoKSxuZXcgbnQoInN0YXJ0VHJhbnNjb2RpbmcoKSBmYWlsZWQiKTtmb3IobGV0IHA9MDtwPGUubGV2ZWxzLmxlbmd0aDsrK3Ape2xldCB5PXt9O3JbcF09eSxmPWUucGl4ZWxXaWR0aD4+cCxkPWUucGl4ZWxIZWlnaHQ+PnA7bGV0IEU9aS5nZXRJbWFnZVRyYW5zY29kZWRTaXplSW5CeXRlcyhwLDAsMCxoLnZhbHVlKSxnPW5ldyBVaW50OEFycmF5KEUpLEE9aS50cmFuc2NvZGVJbWFnZShnLHAsMCwwLGgudmFsdWUsMCwtMSwtMSk7aWYoIV8oQSkpdGhyb3cgbmV3IG50KCJ0cmFuc2NvZGVJbWFnZSgpIGZhaWxlZC4iKTthLnB1c2goZy5idWZmZXIpLHlbVVNbMF1dPXtpbnRlcm5hbEZvcm1hdDpsLHdpZHRoOmYsaGVpZ2h0OmQsbGV2ZWxCdWZmZXI6Z319cmV0dXJuIGkuY2xvc2UoKSxpLmRlbGV0ZSgpLHJ9YXN5bmMgZnVuY3Rpb24gZnoobixlKXtsZXQgdD1uLndlYkFzc2VtYmx5Q29uZmlnLG89alMuZGVmYXVsdD8/c2VsZi5CQVNJUztyZXR1cm4gXyh0Lndhc21CaW5hcnlGaWxlKT9qbT1hd2FpdCBvKHQpOmptPWF3YWl0IG8oKSxqbS5pbml0aWFsaXplQmFzaXMoKSwhMH1mdW5jdGlvbiBkeihuLGUpe2xldCB0PW4ud2ViQXNzZW1ibHlDb25maWc7cmV0dXJuIF8odCk/ZnoobixlKTppeihuLGUpfXZhciBqUyxVUyxMUyx6UyxqbSx1eixtMT1YKCgpPT57c2UoKTtJUygpO3BhKCk7a1MoKTtkMSgpO2tuKCk7RFMoKTtqUz1oYShCUygpLDEpLFVTPVsicG9zaXRpdmVYIiwibmVnYXRpdmVYIiwicG9zaXRpdmVZIiwibmVnYXRpdmVZIiwicG9zaXRpdmVaIiwibmVnYXRpdmVaIl0sTFM9MTYzLHpTPTE2Njt1ej1tdChkeil9KTt2YXIgR1M9e307dmFyIGIxPVgoKCk9PntzZWxmLm9ubWVzc2FnZT1mdW5jdGlvbihuKXtsZXQgZT1uLmRhdGEuYXJyYXksdD1zZWxmLndlYmtpdFBvc3RNZXNzYWdlfHxzZWxmLnBvc3RNZXNzYWdlO3RyeXt0KHthcnJheTplfSxbZS5idWZmZXJdKX1jYXRjaHt0KHt9KX19fSk7dmFyIFVtLExtLFZTPVgoKCk9Pnt2dCgpO01lKCk7c2UoKTtVbT17fTtVbS5jbGlwVHJpYW5nbGVBdEF4aXNBbGlnbmVkVGhyZXNob2xkPWZ1bmN0aW9uKG4sZSx0LG8sYSxyKXtfKHIpP3IubGVuZ3RoPTA6cj1bXTtsZXQgaSxmLGQ7ZT8oaT10PG4sZj1vPG4sZD1hPG4pOihpPXQ+bixmPW8+bixkPWE+bik7bGV0IGM9aStmK2QsdSxsLGgsbSxiLHA7cmV0dXJuIGM9PT0xP2k/KHU9KG4tdCkvKG8tdCksbD0obi10KS8oYS10KSxyLnB1c2goMSksci5wdXNoKDIpLGwhPT0xJiYoci5wdXNoKC0xKSxyLnB1c2goMCksci5wdXNoKDIpLHIucHVzaChsKSksdSE9PTEmJihyLnB1c2goLTEpLHIucHVzaCgwKSxyLnB1c2goMSksci5wdXNoKHUpKSk6Zj8oaD0obi1vKS8oYS1vKSxtPShuLW8pLyh0LW8pLHIucHVzaCgyKSxyLnB1c2goMCksbSE9PTEmJihyLnB1c2goLTEpLHIucHVzaCgxKSxyLnB1c2goMCksci5wdXNoKG0pKSxoIT09MSYmKHIucHVzaCgtMSksci5wdXNoKDEpLHIucHVzaCgyKSxyLnB1c2goaCkpKTpkJiYoYj0obi1hKS8odC1hKSxwPShuLWEpLyhvLWEpLHIucHVzaCgwKSxyLnB1c2goMSkscCE9PTEmJihyLnB1c2goLTEpLHIucHVzaCgyKSxyLnB1c2goMSksci5wdXNoKHApKSxiIT09MSYmKHIucHVzaCgtMSksci5wdXNoKDIpLHIucHVzaCgwKSxyLnB1c2goYikpKTpjPT09Mj8haSYmdCE9PW4/KG09KG4tbykvKHQtbyksYj0obi1hKS8odC1hKSxyLnB1c2goMCksci5wdXNoKC0xKSxyLnB1c2goMSksci5wdXNoKDApLHIucHVzaChtKSxyLnB1c2goLTEpLHIucHVzaCgyKSxyLnB1c2goMCksci5wdXNoKGIpKTohZiYmbyE9PW4/KHA9KG4tYSkvKG8tYSksdT0obi10KS8oby10KSxyLnB1c2goMSksci5wdXNoKC0xKSxyLnB1c2goMiksci5wdXNoKDEpLHIucHVzaChwKSxyLnB1c2goLTEpLHIucHVzaCgwKSxyLnB1c2goMSksci5wdXNoKHUpKTohZCYmYSE9PW4mJihsPShuLXQpLyhhLXQpLGg9KG4tbykvKGEtbyksci5wdXNoKDIpLHIucHVzaCgtMSksci5wdXNoKDApLHIucHVzaCgyKSxyLnB1c2gobCksci5wdXNoKC0xKSxyLnB1c2goMSksci5wdXNoKDIpLHIucHVzaChoKSk6YyE9PTMmJihyLnB1c2goMCksci5wdXNoKDEpLHIucHVzaCgyKSkscn07VW0uY29tcHV0ZUJhcnljZW50cmljQ29vcmRpbmF0ZXM9ZnVuY3Rpb24obixlLHQsbyxhLHIsaSxmLGQpe2xldCBjPXQtaSx1PWktYSxsPXItZixoPW8tZixtPTEvKGwqYyt1KmgpLGI9ZS1mLHA9bi1pLHk9KGwqcCt1KmIpKm0sRT0oLWgqcCtjKmIpKm0sZz0xLXktRTtyZXR1cm4gXyhkKT8oZC54PXksZC55PUUsZC56PWcsZCk6bmV3IHMoeSxFLGcpfTtVbS5jb21wdXRlTGluZVNlZ21lbnRMaW5lU2VnbWVudEludGVyc2VjdGlvbj1mdW5jdGlvbihuLGUsdCxvLGEscixpLGYsZCl7bGV0IGM9KGktYSkqKGUtciktKGYtcikqKG4tYSksdT0odC1uKSooZS1yKS0oby1lKSoobi1hKSxsPShmLXIpKih0LW4pLShpLWEpKihvLWUpO2lmKGw9PT0wKXJldHVybjtsZXQgaD1jL2wsbT11L2w7aWYoaD49MCYmaDw9MSYmbT49MCYmbTw9MSlyZXR1cm4gXyhkKXx8KGQ9bmV3IFkpLGQueD1uK2gqKHQtbiksZC55PWUraCooby1lKSxkfTtMbT1VbX0pO3ZhciBwMT17fTskZShwMSx7ZGVmYXVsdDooKT0+U3p9KTtmdW5jdGlvbiBSeihuLGUpe2xldCB0PW4uaXNFYXN0Q2hpbGQsbz1uLmlzTm9ydGhDaGlsZCxhPXQ/UWE6MCxyPXQ/WG46UWEsaT1vP1FhOjAsZj1vP1huOlFhLGQ9bXosYz1ieix1PXB6LGw9X3o7ZC5sZW5ndGg9MCxjLmxlbmd0aD0wLHUubGVuZ3RoPTAsbC5sZW5ndGg9MDtsZXQgaD1nejtoLmxlbmd0aD0wO2xldCBtPXt9LGI9bi52ZXJ0aWNlcyxwPW4uaW5kaWNlcztwPXAuc3ViYXJyYXkoMCxuLmluZGV4Q291bnRXaXRob3V0U2tpcnRzKTtsZXQgeT1uYS5jbG9uZShuLmVuY29kaW5nKSxFPXkuaGFzVmVydGV4Tm9ybWFscyxnPTAsQT1uLnZlcnRleENvdW50V2l0aG91dFNraXJ0cyxUPW4ubWluaW11bUhlaWdodCxSPW4ubWF4aW11bUhlaWdodCxTPW5ldyBBcnJheShBKSxNPW5ldyBBcnJheShBKSxJPW5ldyBBcnJheShBKSxOPUU/bmV3IEFycmF5KEEqMik6dm9pZCAwLFA9MjAsRix3LHgsQyx2O2Zvcih3PTAseD0wO3c8QTsrK3cseCs9Mil7bGV0IFR0PXkuZGVjb2RlVGV4dHVyZUNvb3JkaW5hdGVzKGIsdyxUeik7aWYoRj15LmRlY29kZUhlaWdodChiLHcpLEM9ay5jbGFtcChUdC54KlhufDAsMCxYbiksdj1rLmNsYW1wKFR0LnkqWG58MCwwLFhuKSxJW3ddPWsuY2xhbXAoKEYtVCkvKFItVCkqWG58MCwwLFhuKSxDPFAmJihDPTApLHY8UCYmKHY9MCksWG4tQzxQJiYoQz1YbiksWG4tdjxQJiYodj1YbiksU1t3XT1DLE1bd109dixFKXtsZXQgY3Q9eS5nZXRPY3RFbmNvZGVkTm9ybWFsKGIsdyxFeik7Tlt4XT1jdC54LE5beCsxXT1jdC55fSh0JiZDPj1RYXx8IXQmJkM8PVFhKSYmKG8mJnY+PVFhfHwhbyYmdjw9UWEpJiYobVt3XT1nLGQucHVzaChDKSxjLnB1c2godiksdS5wdXNoKElbd10pLEUmJihsLnB1c2goTlt4XSksbC5wdXNoKE5beCsxXSkpLCsrZyl9bGV0IGo9W107ai5wdXNoKG5ldyBZbiksai5wdXNoKG5ldyBZbiksai5wdXNoKG5ldyBZbik7bGV0IHo9W107ei5wdXNoKG5ldyBZbiksei5wdXNoKG5ldyBZbiksei5wdXNoKG5ldyBZbik7bGV0IEQsRztmb3Iodz0wO3c8cC5sZW5ndGg7dys9Myl7bGV0IFR0PXBbd10sY3Q9cFt3KzFdLHp0PXBbdysyXSxPdD1TW1R0XSxrdD1TW2N0XSxHZT1TW3p0XTtqWzBdLmluaXRpYWxpemVJbmRleGVkKFMsTSxJLE4sVHQpLGpbMV0uaW5pdGlhbGl6ZUluZGV4ZWQoUyxNLEksTixjdCksalsyXS5pbml0aWFsaXplSW5kZXhlZChTLE0sSSxOLHp0KTtsZXQgTGU9TG0uY2xpcFRyaWFuZ2xlQXRBeGlzQWxpZ25lZFRocmVzaG9sZChRYSx0LE90LGt0LEdlLGx6KTtEPTAsIShEPj1MZS5sZW5ndGgpJiYoRD16WzBdLmluaXRpYWxpemVGcm9tQ2xpcFJlc3VsdChMZSxELGopLCEoRD49TGUubGVuZ3RoKSYmKEQ9elsxXS5pbml0aWFsaXplRnJvbUNsaXBSZXN1bHQoTGUsRCxqKSwhKEQ+PUxlLmxlbmd0aCkmJihEPXpbMl0uaW5pdGlhbGl6ZUZyb21DbGlwUmVzdWx0KExlLEQsaiksRz1MbS5jbGlwVHJpYW5nbGVBdEF4aXNBbGlnbmVkVGhyZXNob2xkKFFhLG8selswXS5nZXRWKCkselsxXS5nZXRWKCkselsyXS5nZXRWKCksSFMpLEtTKGQsYyx1LGwsaCxtLEcseixFKSxEPExlLmxlbmd0aCYmKHpbMl0uY2xvbmUoelsxXSkselsyXS5pbml0aWFsaXplRnJvbUNsaXBSZXN1bHQoTGUsRCxqKSxHPUxtLmNsaXBUcmlhbmdsZUF0QXhpc0FsaWduZWRUaHJlc2hvbGQoUWEsbyx6WzBdLmdldFYoKSx6WzFdLmdldFYoKSx6WzJdLmdldFYoKSxIUyksS1MoZCxjLHUsbCxoLG0sRyx6LEUpKSkpKX1sZXQgVj10Py1YbjowLE89bz8tWG46MCxaPVtdLGFlPVtdLGNlPVtdLGZlPVtdLHRlPU51bWJlci5NQVhfVkFMVUUsbWU9LXRlLHVlPWh6O3VlLmxlbmd0aD0wO2xldCBiZT1LLmNsb25lKG4uZWxsaXBzb2lkKSxoZT14ZS5jbG9uZShuLmNoaWxkUmVjdGFuZ2xlKSxRPWhlLm5vcnRoLFRlPWhlLnNvdXRoLENlPWhlLmVhc3QsV2U9aGUud2VzdDtmb3IoQ2U8V2UmJihDZSs9ay5UV09fUEkpLHc9MDt3PGQubGVuZ3RoOysrdylDPU1hdGgucm91bmQoZFt3XSksQzw9YT8oWi5wdXNoKHcpLEM9MCk6Qz49cj8oY2UucHVzaCh3KSxDPVhuKTpDPUMqMitWLGRbd109Qyx2PU1hdGgucm91bmQoY1t3XSksdjw9aT8oYWUucHVzaCh3KSx2PTApOnY+PWY/KGZlLnB1c2godyksdj1Ybik6dj12KjIrTyxjW3ddPXYsRj1rLmxlcnAoVCxSLHVbd10vWG4pLEY8dGUmJih0ZT1GKSxGPm1lJiYobWU9RiksdVt3XT1GLHptLmxvbmdpdHVkZT1rLmxlcnAoV2UsQ2UsQy9Ybiksem0ubGF0aXR1ZGU9ay5sZXJwKFRlLFEsdi9Ybiksem0uaGVpZ2h0PUYsYmUuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oem0sZWkpLHVlLnB1c2goZWkueCksdWUucHVzaChlaS55KSx1ZS5wdXNoKGVpLnopO2xldCB6ZT1nZS5mcm9tVmVydGljZXModWUscy5aRVJPLDMsQXopLFplPW1uLmZyb21SZWN0YW5nbGUoaGUsdGUsbWUsYmUsd3opLERlPW5ldyBBcihiZSkuY29tcHV0ZUhvcml6b25DdWxsaW5nUG9pbnRGcm9tVmVydGljZXNQb3NzaWJseVVuZGVyRWxsaXBzb2lkKHplLmNlbnRlcix1ZSwzLHplLmNlbnRlcix0ZSx5eiksQmU9bWUtdGUsZXQ9bmV3IFVpbnQxNkFycmF5KGQubGVuZ3RoK2MubGVuZ3RoK3UubGVuZ3RoKTtmb3Iodz0wO3c8ZC5sZW5ndGg7Kyt3KWV0W3ddPWRbd107bGV0IHFlPWQubGVuZ3RoO2Zvcih3PTA7dzxjLmxlbmd0aDsrK3cpZXRbcWUrd109Y1t3XTtmb3IocWUrPWMubGVuZ3RoLHc9MDt3PHUubGVuZ3RoOysrdylldFtxZSt3XT1YbioodVt3XS10ZSkvQmU7bGV0IGF0PUllLmNyZWF0ZVR5cGVkQXJyYXkoZC5sZW5ndGgsaCkseHQ7aWYoRSl7bGV0IFR0PW5ldyBVaW50OEFycmF5KGwpO2UucHVzaChldC5idWZmZXIsYXQuYnVmZmVyLFR0LmJ1ZmZlcikseHQ9VHQuYnVmZmVyfWVsc2UgZS5wdXNoKGV0LmJ1ZmZlcixhdC5idWZmZXIpO3JldHVybnt2ZXJ0aWNlczpldC5idWZmZXIsZW5jb2RlZE5vcm1hbHM6eHQsaW5kaWNlczphdC5idWZmZXIsbWluaW11bUhlaWdodDp0ZSxtYXhpbXVtSGVpZ2h0Om1lLHdlc3RJbmRpY2VzOlosc291dGhJbmRpY2VzOmFlLGVhc3RJbmRpY2VzOmNlLG5vcnRoSW5kaWNlczpmZSxib3VuZGluZ1NwaGVyZTp6ZSxvcmllbnRlZEJvdW5kaW5nQm94OlplLGhvcml6b25PY2NsdXNpb25Qb2ludDpEZX19ZnVuY3Rpb24gWW4oKXt0aGlzLnZlcnRleEJ1ZmZlcj12b2lkIDAsdGhpcy5pbmRleD12b2lkIDAsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5zZWNvbmQ9dm9pZCAwLHRoaXMucmF0aW89dm9pZCAwfWZ1bmN0aW9uIHFTKG4sZSl7KytHbTtsZXQgdD14eltHbV0sbz1PeltHbV07cmV0dXJuIHQ9VXQub2N0RGVjb2RlKG4uZmlyc3QuZ2V0Tm9ybWFsWCgpLG4uZmlyc3QuZ2V0Tm9ybWFsWSgpLHQpLG89VXQub2N0RGVjb2RlKG4uc2Vjb25kLmdldE5vcm1hbFgoKSxuLnNlY29uZC5nZXROb3JtYWxZKCksbyksZWk9cy5sZXJwKHQsbyxuLnJhdGlvLGVpKSxzLm5vcm1hbGl6ZShlaSxlaSksVXQub2N0RW5jb2RlKGVpLGUpLC0tR20sZX1mdW5jdGlvbiBLUyhuLGUsdCxvLGEscixpLGYsZCl7aWYoaS5sZW5ndGg9PT0wKXJldHVybjtsZXQgYz0wLHU9MDtmb3IoO3U8aS5sZW5ndGg7KXU9Vm9bYysrXS5pbml0aWFsaXplRnJvbUNsaXBSZXN1bHQoaSx1LGYpO2ZvcihsZXQgbD0wO2w8YzsrK2wpe2xldCBoPVZvW2xdO2lmKGguaXNJbmRleGVkKCkpaC5uZXdJbmRleD1yW2guaW5kZXhdLGgudUJ1ZmZlcj1uLGgudkJ1ZmZlcj1lLGguaGVpZ2h0QnVmZmVyPXQsZCYmKGgubm9ybWFsQnVmZmVyPW8pO2Vsc2V7bGV0IG09aC5nZXRLZXkoKTtpZihfKHJbbV0pKWgubmV3SW5kZXg9clttXTtlbHNle2xldCBiPW4ubGVuZ3RoO24ucHVzaChoLmdldFUoKSksZS5wdXNoKGguZ2V0VigpKSx0LnB1c2goaC5nZXRIKCkpLGQmJihvLnB1c2goaC5nZXROb3JtYWxYKCkpLG8ucHVzaChoLmdldE5vcm1hbFkoKSkpLGgubmV3SW5kZXg9YixyW21dPWJ9fX1jPT09Mz8oYS5wdXNoKFZvWzBdLm5ld0luZGV4KSxhLnB1c2goVm9bMV0ubmV3SW5kZXgpLGEucHVzaChWb1syXS5uZXdJbmRleCkpOmM9PT00JiYoYS5wdXNoKFZvWzBdLm5ld0luZGV4KSxhLnB1c2goVm9bMV0ubmV3SW5kZXgpLGEucHVzaChWb1syXS5uZXdJbmRleCksYS5wdXNoKFZvWzBdLm5ld0luZGV4KSxhLnB1c2goVm9bMl0ubmV3SW5kZXgpLGEucHVzaChWb1szXS5uZXdJbmRleCkpfXZhciBYbixRYSxseixIUyxoeix6bSxlaSxteixieixweixneixfeix5eixBeix3eixUeixFeiwkcyxHbSx4eixPeixWbyxTeixnMT1YKCgpPT57QnIoKTtFdCgpO3Z0KCk7TWUoKTtndCgpO3NlKCk7VmUoKTtHcygpO1p0KCk7VlMoKTtVZSgpO0FpKCk7aG4oKTtWcygpO2tuKCk7WG49MzI3NjcsUWE9WG4vMnwwLGx6PVtdLEhTPVtdLGh6PVtdLHptPW5ldyByZSxlaT1uZXcgcyxtej1bXSxiej1bXSxwej1bXSxnej1bXSxfej1bXSx5ej1uZXcgcyxBej1uZXcgZ2Usd3o9bmV3IG1uLFR6PW5ldyBZLEV6PW5ldyBzO1luLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbihuKXtyZXR1cm4gXyhuKXx8KG49bmV3IFluKSxuLnVCdWZmZXI9dGhpcy51QnVmZmVyLG4udkJ1ZmZlcj10aGlzLnZCdWZmZXIsbi5oZWlnaHRCdWZmZXI9dGhpcy5oZWlnaHRCdWZmZXIsbi5ub3JtYWxCdWZmZXI9dGhpcy5ub3JtYWxCdWZmZXIsbi5pbmRleD10aGlzLmluZGV4LG4uZmlyc3Q9dGhpcy5maXJzdCxuLnNlY29uZD10aGlzLnNlY29uZCxuLnJhdGlvPXRoaXMucmF0aW8sbn07WW4ucHJvdG90eXBlLmluaXRpYWxpemVJbmRleGVkPWZ1bmN0aW9uKG4sZSx0LG8sYSl7dGhpcy51QnVmZmVyPW4sdGhpcy52QnVmZmVyPWUsdGhpcy5oZWlnaHRCdWZmZXI9dCx0aGlzLm5vcm1hbEJ1ZmZlcj1vLHRoaXMuaW5kZXg9YSx0aGlzLmZpcnN0PXZvaWQgMCx0aGlzLnNlY29uZD12b2lkIDAsdGhpcy5yYXRpbz12b2lkIDB9O1luLnByb3RvdHlwZS5pbml0aWFsaXplRnJvbUNsaXBSZXN1bHQ9ZnVuY3Rpb24obixlLHQpe2xldCBvPWUrMTtyZXR1cm4gbltlXSE9PS0xP3RbbltlXV0uY2xvbmUodGhpcyk6KHRoaXMudmVydGV4QnVmZmVyPXZvaWQgMCx0aGlzLmluZGV4PXZvaWQgMCx0aGlzLmZpcnN0PXRbbltvXV0sKytvLHRoaXMuc2Vjb25kPXRbbltvXV0sKytvLHRoaXMucmF0aW89bltvXSwrK28pLG99O1luLnByb3RvdHlwZS5nZXRLZXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZGV4ZWQoKT90aGlzLmluZGV4OkpTT04uc3RyaW5naWZ5KHtmaXJzdDp0aGlzLmZpcnN0LmdldEtleSgpLHNlY29uZDp0aGlzLnNlY29uZC5nZXRLZXkoKSxyYXRpbzp0aGlzLnJhdGlvfSl9O1luLnByb3RvdHlwZS5pc0luZGV4ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLmluZGV4KX07WW4ucHJvdG90eXBlLmdldEg9ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLmluZGV4KT90aGlzLmhlaWdodEJ1ZmZlclt0aGlzLmluZGV4XTprLmxlcnAodGhpcy5maXJzdC5nZXRIKCksdGhpcy5zZWNvbmQuZ2V0SCgpLHRoaXMucmF0aW8pfTtZbi5wcm90b3R5cGUuZ2V0VT1mdW5jdGlvbigpe3JldHVybiBfKHRoaXMuaW5kZXgpP3RoaXMudUJ1ZmZlclt0aGlzLmluZGV4XTprLmxlcnAodGhpcy5maXJzdC5nZXRVKCksdGhpcy5zZWNvbmQuZ2V0VSgpLHRoaXMucmF0aW8pfTtZbi5wcm90b3R5cGUuZ2V0Vj1mdW5jdGlvbigpe3JldHVybiBfKHRoaXMuaW5kZXgpP3RoaXMudkJ1ZmZlclt0aGlzLmluZGV4XTprLmxlcnAodGhpcy5maXJzdC5nZXRWKCksdGhpcy5zZWNvbmQuZ2V0VigpLHRoaXMucmF0aW8pfTskcz1uZXcgWSxHbT0tMSx4ej1bbmV3IHMsbmV3IHNdLE96PVtuZXcgcyxuZXcgc107WW4ucHJvdG90eXBlLmdldE5vcm1hbFg9ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLmluZGV4KT90aGlzLm5vcm1hbEJ1ZmZlclt0aGlzLmluZGV4KjJdOigkcz1xUyh0aGlzLCRzKSwkcy54KX07WW4ucHJvdG90eXBlLmdldE5vcm1hbFk9ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLmluZGV4KT90aGlzLm5vcm1hbEJ1ZmZlclt0aGlzLmluZGV4KjIrMV06KCRzPXFTKHRoaXMsJHMpLCRzLnkpfTtWbz1bXTtWby5wdXNoKG5ldyBZbik7Vm8ucHVzaChuZXcgWW4pO1ZvLnB1c2gobmV3IFluKTtWby5wdXNoKG5ldyBZbik7U3o9bXQoUnopfSk7dmFyIF8xPXt9OyRlKF8xLHtkZWZhdWx0OigpPT5Nen0pO2Z1bmN0aW9uIEN6KG4sZSl7bGV0IHQ9bG0udXBzYW1wbGVNZXNoKG4pLG89dC52ZXJ0aWNlcy5idWZmZXIsYT10LmluZGljZXMuYnVmZmVyLHI9dC53ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aC5idWZmZXIsaT10LnNvdXRoSW5kaWNlc0Vhc3RUb1dlc3QuYnVmZmVyLGY9dC5lYXN0SW5kaWNlc05vcnRoVG9Tb3V0aC5idWZmZXIsZD10Lm5vcnRoSW5kaWNlc1dlc3RUb0Vhc3QuYnVmZmVyO3JldHVybiBlLnB1c2gobyxhLHIsaSxmLGQpLHt2ZXJ0aWNlc0J1ZmZlcjpvLGluZGljZXNCdWZmZXI6YSx2ZXJ0ZXhDb3VudFdpdGhvdXRTa2lydHM6dC52ZXJ0ZXhDb3VudFdpdGhvdXRTa2lydHMsaW5kZXhDb3VudFdpdGhvdXRTa2lydHM6dC5pbmRleENvdW50V2l0aG91dFNraXJ0cyxlbmNvZGluZzp0LmVuY29kaW5nLHdlc3RJbmRpY2VzQnVmZmVyOnIsc291dGhJbmRpY2VzQnVmZmVyOmksZWFzdEluZGljZXNCdWZmZXI6Zixub3J0aEluZGljZXNCdWZmZXI6ZCxtaW5pbXVtSGVpZ2h0OnQubWluaW11bUhlaWdodCxtYXhpbXVtSGVpZ2h0OnQubWF4aW11bUhlaWdodCxib3VuZGluZ1NwaGVyZTp0LmJvdW5kaW5nU3BoZXJlM0Qsb3JpZW50ZWRCb3VuZGluZ0JveDp0Lm9yaWVudGVkQm91bmRpbmdCb3gsaG9yaXpvbk9jY2x1c2lvblBvaW50OnQuaG9yaXpvbk9jY2x1c2lvblBvaW50fX12YXIgTXoseTE9WCgoKT0+e0pfKCk7a24oKTtNej1tdChDeil9KTt2YXIgTnosQTE9WCgoKT0+e056PU8xKHsiLi9jb21iaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oa3AoKSxQcCkpLCIuL2NyZWF0ZUJveEdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KEJwKCksRHApKSwiLi9jcmVhdGVCb3hPdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oTHAoKSxVcCkpLCIuL2NyZWF0ZUNpcmNsZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KEpwKCksWXApKSwiLi9jcmVhdGVDaXJjbGVPdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZTAoKSwkcCkpLCIuL2NyZWF0ZUNvcGxhbmFyUG9seWdvbkdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGwwKCksdTApKSwiLi9jcmVhdGVDb3BsYW5hclBvbHlnb25PdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oYjAoKSxtMCkpLCIuL2NyZWF0ZUNvcnJpZG9yR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oUDAoKSxJMCkpLCIuL2NyZWF0ZUNvcnJpZG9yT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KEYwKCksdjApKSwiLi9jcmVhdGVDeWxpbmRlckdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KHowKCksTDApKSwiLi9jcmVhdGVDeWxpbmRlck91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihLMCgpLEgwKSksIi4vY3JlYXRlRWxsaXBzZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFcwKCkscTApKSwiLi9jcmVhdGVFbGxpcHNlT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFkwKCksWDApKSwiLi9jcmVhdGVFbGxpcHNvaWRHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihRMCgpLFowKSksIi4vY3JlYXRlRWxsaXBzb2lkT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KHRnKCksZWcpKSwiLi9jcmVhdGVGcnVzdHVtR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZGcoKSxmZykpLCIuL2NyZWF0ZUZydXN0dW1PdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4obWcoKSxoZykpLCIuL2NyZWF0ZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFQxKCksdzEpKSwiLi9jcmVhdGVHcm91bmRQb2x5bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KENnKCksU2cpKSwiLi9jcmVhdGVQbGFuZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KElnKCksTmcpKSwiLi9jcmVhdGVQbGFuZU91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pih2ZygpLGtnKSksIi4vY3JlYXRlUG9seWdvbkdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGpnKCksQmcpKSwiLi9jcmVhdGVQb2x5Z29uT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KHpnKCksTGcpKSwiLi9jcmVhdGVQb2x5bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFdnKCkscWcpKSwiLi9jcmVhdGVQb2x5bGluZVZvbHVtZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KEpnKCksWWcpKSwiLi9jcmVhdGVQb2x5bGluZVZvbHVtZU91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PigkZygpLFFnKSksIi4vY3JlYXRlUmVjdGFuZ2xlR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oc18oKSxjXykpLCIuL2NyZWF0ZVJlY3RhbmdsZU91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pih1XygpLGRfKSksIi4vY3JlYXRlU2ltcGxlUG9seWxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihtXygpLGhfKSksIi4vY3JlYXRlU3BoZXJlR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZ18oKSxwXykpLCIuL2NyZWF0ZVNwaGVyZU91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihBXygpLHlfKSksIi4vY3JlYXRlVGFza1Byb2Nlc3Nvcldvcmtlci5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihrbigpLElwKSksIi4vY3JlYXRlVmVjdG9yVGlsZUNsYW1wZWRQb2x5bGluZXMuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oVF8oKSx3XykpLCIuL2NyZWF0ZVZlY3RvclRpbGVHZW9tZXRyaWVzLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFJfKCksRV8pKSwiLi9jcmVhdGVWZWN0b3JUaWxlUG9pbnRzLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFNfKCksT18pKSwiLi9jcmVhdGVWZWN0b3JUaWxlUG9seWdvbnMuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oTV8oKSxDXykpLCIuL2NyZWF0ZVZlY3RvclRpbGVQb2x5bGluZXMuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oUF8oKSxJXykpLCIuL2NyZWF0ZVZlcnRpY2VzRnJvbUNlc2l1bTNEVGlsZXNUZXJyYWluLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFFfKCksWl8pKSwiLi9jcmVhdGVWZXJ0aWNlc0Zyb21Hb29nbGVFYXJ0aEVudGVycHJpc2VCdWZmZXIuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4odHkoKSxleSkpLCIuL2NyZWF0ZVZlcnRpY2VzRnJvbUhlaWdodG1hcC5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihheSgpLG95KSksIi4vY3JlYXRlVmVydGljZXNGcm9tUXVhbnRpemVkVGVycmFpbk1lc2guanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oY3koKSxpeSkpLCIuL2NyZWF0ZVdhbGxHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihseSgpLHV5KSksIi4vY3JlYXRlV2FsbE91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihieSgpLG15KSksIi4vZGVjb2RlRHJhY28uanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4od3koKSxBeSkpLCIuL2RlY29kZUdvb2dsZUVhcnRoRW50ZXJwcmlzZVBhY2tldC5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihZeSgpLFh5KSksIi4vZGVjb2RlSTNTLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGUxKCksJHkpKSwiLi9nYXVzc2lhblNwbGF0U29ydGVyLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KHIxKCksYTEpKSwiLi9nYXVzc2lhblNwbGF0VGV4dHVyZUdlbmVyYXRvci5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihjMSgpLGkxKSksIi4vaW5jcmVtZW50YWxseUJ1aWxkVGVycmFpblBpY2tlci5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihmMSgpLHMxKSksIi4vdHJhbnNjb2RlS1RYMi5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihtMSgpLGgxKSksIi4vdHJhbnNmZXJUeXBlZEFycmF5VGVzdC5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihiMSgpLEdTKSksIi4vdXBzYW1wbGVRdWFudGl6ZWRUZXJyYWluTWVzaC5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihnMSgpLHAxKSksIi4vdXBzYW1wbGVWZXJ0aWNlc0Zyb21DZXNpdW0zRFRpbGVzVGVycmFpbi5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pih5MSgpLF8xKSl9KX0pO3ZhciB3MT17fTskZSh3MSx7ZGVmYXVsdDooKT0+a3p9KTthc3luYyBmdW5jdGlvbiBJeihuLGUpe2xldCB0PVZtW2VdPz9WbVtuXTtyZXR1cm4gXyh0KT90Ol8oZSk/KHR5cGVvZiBleHBvcnRzPT0ib2JqZWN0Ij90PWxhKGUpOnQ9KGF3YWl0IGltcG9ydChlKSkuZGVmYXVsdCxWbVtlXT10LHQpOih0eXBlb2YgZXhwb3J0cz09Im9iamVjdCI/dD1sYShgV29ya2Vycy8ke259YCk6dD0oXyhlKT9hd2FpdCBpbXBvcnQoZSk6YXdhaXQgTnooYC4vJHtufS5qc2ApKS5kZWZhdWx0LFZtW25dPXQsdCl9YXN5bmMgZnVuY3Rpb24gUHoobixlKXtsZXQgdD1uLnN1YlRhc2tzLG89dC5sZW5ndGgsYT1uZXcgQXJyYXkobyk7Zm9yKGxldCByPTA7cjxvO3IrKyl7bGV0IGk9dFtyXSxmPWkuZ2VvbWV0cnksZD1pLm1vZHVsZU5hbWUsYz1pLm1vZHVsZVBhdGg7aWYoXyhkKSYmXyhjKSl0aHJvdyBuZXcgVnQoIk11c3Qgb25seSBzZXQgbW9kdWxlTmFtZSBvciBtb2R1bGVQYXRoIik7XyhkKXx8XyhjKT9hW3JdPUl6KGQsYykudGhlbih1PT51KGYsaS5vZmZzZXQpKTphW3JdPWZ9cmV0dXJuIFByb21pc2UuYWxsKGEpLnRoZW4oZnVuY3Rpb24ocil7cmV0dXJuIHVzLnBhY2tDcmVhdGVHZW9tZXRyeVJlc3VsdHMocixlKX0pfXZhciBWbSxreixUMT1YKCgpPT57SmkoKTtzZSgpO05wKCk7a24oKTtBMSgpO1ZtPXt9O2t6PW10KFB6KX0pO3ZhciBrRz17fTskZShrRyx7Y29tYmluZUdlb21ldHJ5OigpPT52eixjcmVhdGVCb3hHZW9tZXRyeTooKT0+RnosY3JlYXRlQm94T3V0bGluZUdlb21ldHJ5OigpPT5EeixjcmVhdGVDaXJjbGVHZW9tZXRyeTooKT0+QnosY3JlYXRlQ2lyY2xlT3V0bGluZUdlb21ldHJ5OigpPT5qeixjcmVhdGVDb3BsYW5hclBvbHlnb25HZW9tZXRyeTooKT0+VXosY3JlYXRlQ29wbGFuYXJQb2x5Z29uT3V0bGluZUdlb21ldHJ5OigpPT5MeixjcmVhdGVDb3JyaWRvckdlb21ldHJ5OigpPT56eixjcmVhdGVDb3JyaWRvck91dGxpbmVHZW9tZXRyeTooKT0+R3osY3JlYXRlQ3lsaW5kZXJHZW9tZXRyeTooKT0+VnosY3JlYXRlQ3lsaW5kZXJPdXRsaW5lR2VvbWV0cnk6KCk9Pkh6LGNyZWF0ZUVsbGlwc2VHZW9tZXRyeTooKT0+S3osY3JlYXRlRWxsaXBzZU91dGxpbmVHZW9tZXRyeTooKT0+cXosY3JlYXRlRWxsaXBzb2lkR2VvbWV0cnk6KCk9Pld6LGNyZWF0ZUVsbGlwc29pZE91dGxpbmVHZW9tZXRyeTooKT0+WHosY3JlYXRlRnJ1c3R1bUdlb21ldHJ5OigpPT5ZeixjcmVhdGVGcnVzdHVtT3V0bGluZUdlb21ldHJ5OigpPT5KeixjcmVhdGVHZW9tZXRyeTooKT0+WnosY3JlYXRlR3JvdW5kUG9seWxpbmVHZW9tZXRyeTooKT0+UXosY3JlYXRlUGxhbmVHZW9tZXRyeTooKT0+JHosY3JlYXRlUGxhbmVPdXRsaW5lR2VvbWV0cnk6KCk9PmVHLGNyZWF0ZVBvbHlnb25HZW9tZXRyeTooKT0+dEcsY3JlYXRlUG9seWdvbk91dGxpbmVHZW9tZXRyeTooKT0+bkcsY3JlYXRlUG9seWxpbmVHZW9tZXRyeTooKT0+b0csY3JlYXRlUG9seWxpbmVWb2x1bWVHZW9tZXRyeTooKT0+YUcsY3JlYXRlUG9seWxpbmVWb2x1bWVPdXRsaW5lR2VvbWV0cnk6KCk9PnJHLGNyZWF0ZVJlY3RhbmdsZUdlb21ldHJ5OigpPT5pRyxjcmVhdGVSZWN0YW5nbGVPdXRsaW5lR2VvbWV0cnk6KCk9PmNHLGNyZWF0ZVNpbXBsZVBvbHlsaW5lR2VvbWV0cnk6KCk9PnNHLGNyZWF0ZVNwaGVyZUdlb21ldHJ5OigpPT5mRyxjcmVhdGVTcGhlcmVPdXRsaW5lR2VvbWV0cnk6KCk9PmRHLGNyZWF0ZVRhc2tQcm9jZXNzb3JXb3JrZXI6KCk9PnVHLGNyZWF0ZVZlY3RvclRpbGVDbGFtcGVkUG9seWxpbmVzOigpPT5sRyxjcmVhdGVWZWN0b3JUaWxlR2VvbWV0cmllczooKT0+aEcsY3JlYXRlVmVjdG9yVGlsZVBvaW50czooKT0+bUcsY3JlYXRlVmVjdG9yVGlsZVBvbHlnb25zOigpPT5iRyxjcmVhdGVWZWN0b3JUaWxlUG9seWxpbmVzOigpPT5wRyxjcmVhdGVWZXJ0aWNlc0Zyb21DZXNpdW0zRFRpbGVzVGVycmFpbjooKT0+Z0csY3JlYXRlVmVydGljZXNGcm9tR29vZ2xlRWFydGhFbnRlcnByaXNlQnVmZmVyOigpPT5fRyxjcmVhdGVWZXJ0aWNlc0Zyb21IZWlnaHRtYXA6KCk9PnlHLGNyZWF0ZVZlcnRpY2VzRnJvbVF1YW50aXplZFRlcnJhaW5NZXNoOigpPT5BRyxjcmVhdGVXYWxsR2VvbWV0cnk6KCk9PndHLGNyZWF0ZVdhbGxPdXRsaW5lR2VvbWV0cnk6KCk9PlRHLGRlY29kZURyYWNvOigpPT5FRyxkZWNvZGVHb29nbGVFYXJ0aEVudGVycHJpc2VQYWNrZXQ6KCk9PlJHLGRlY29kZUkzUzooKT0+eEcsZ2F1c3NpYW5TcGxhdFNvcnRlcjooKT0+T0csZ2F1c3NpYW5TcGxhdFRleHR1cmVHZW5lcmF0b3I6KCk9PlNHLGluY3JlbWVudGFsbHlCdWlsZFRlcnJhaW5QaWNrZXI6KCk9PkNHLHRyYW5zY29kZUtUWDI6KCk9Pk1HLHRyYW5zZmVyVHlwZWRBcnJheVRlc3Q6KCk9Pk5HLHVwc2FtcGxlUXVhbnRpemVkVGVycmFpbk1lc2g6KCk9PklHLHVwc2FtcGxlVmVydGljZXNGcm9tQ2VzaXVtM0RUaWxlc1RlcnJhaW46KCk9PlBHfSk7dmFyIHZ6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+a3AoKSl9LEZ6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+QnAoKSl9LER6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+THAoKSl9LEJ6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+SnAoKSl9LGp6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+ZTAoKSl9LFV6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+bDAoKSl9LEx6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+YjAoKSl9LHp6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+UDAoKSl9LEd6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+RjAoKSl9LFZ6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+ejAoKSl9LEh6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+SzAoKSl9LEt6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+VzAoKSl9LHF6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+WTAoKSl9LFd6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+UTAoKSl9LFh6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGcoKSl9LFl6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+ZGcoKSl9LEp6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+bWcoKSl9LFp6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+VDEoKSl9LFF6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+Q2coKSl9LCR6PSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+SWcoKSl9LGVHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dmcoKSl9LHRHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+amcoKSl9LG5HPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+emcoKSl9LG9HPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+V2coKSl9LGFHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+SmcoKSl9LHJHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+JGcoKSl9LGlHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+c18oKSl9LGNHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dV8oKSl9LHNHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+bV8oKSl9LGZHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+Z18oKSl9LGRHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+QV8oKSl9LHVHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+a24oKSl9LGxHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+VF8oKSl9LGhHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+Ul8oKSl9LG1HPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+U18oKSl9LGJHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+TV8oKSl9LHBHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+UF8oKSl9LGdHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+UV8oKSl9LF9HPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dHkoKSl9LHlHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+YXkoKSl9LEFHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+Y3koKSl9LHdHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+bHkoKSl9LFRHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+YnkoKSl9LEVHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+d3koKSl9LFJHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+WXkoKSl9LHhHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+ZTEoKSl9LE9HPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+cjEoKSl9LFNHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+YzEoKSl9LENHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+ZjEoKSl9LE1HPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+bTEoKSl9LE5HPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+YjEoKSl9LElHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+ZzEoKSl9LFBHPSgpPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eTEoKSl9O3JldHVybiBlQyhrRyk7fSkoKTsK")});var uU=Qu((awt,ure)=>{var cwt=x(T()),y0=function(e){e==null&&(e=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,e.constructor==Array?this.init_by_array(e,e.length):this.init_seed(e)};y0.prototype.init_seed=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};y0.prototype.init_by_array=function(e,t){var n,i,o;for(this.init_seed(19650218),n=1,i=0,o=this.N>t?this.N:t;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1664525<<16)+(r&65535)*1664525)+e[i]+i,this.mt[n]>>>=0,n++,i++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),i>=t&&(i=0)}for(o=this.N-1;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1566083941<<16)+(r&65535)*1566083941)-n,this.mt[n]>>>=0,n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1)}this.mt[0]=2147483648};y0.prototype.random_int=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_seed(5489),n=0;n>>1^t[e&1];for(;n>>1^t[e&1];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0};y0.prototype.random_int31=function(){return this.random_int()>>>1};y0.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};y0.prototype.random=function(){return this.random_int()*(1/4294967296)};y0.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};y0.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};ure.exports=y0});var Vre=Qu((jA,QA)=>{var AMt=x(T());/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof jA=="object"&&jA&&!jA.nodeType&&jA,n=typeof QA=="object"&&QA&&!QA.nodeType&&QA,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var o,r=2147483647,s=36,a=1,c=26,d=38,u=700,m=72,p=128,b="-",f=/^xn--/,y=/[^\x20-\x7E]/,_=/[\x2E\u3002\uFF0E\uFF61]/g,S={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=s-a,Z=Math.floor,R=String.fromCharCode,G;function E(M){throw new RangeError(S[M])}function v(M,D){for(var w=M.length,z=[];w--;)z[w]=D(M[w]);return z}function I(M,D){var w=M.split("@"),z="";w.length>1&&(z=w[0]+"@",M=w[1]),M=M.replace(_,".");var K=M.split("."),ee=v(K,D).join(".");return z+ee}function X(M){for(var D=[],w=0,z=M.length,K,ee;w=55296&&K<=56319&&w65535&&(D-=65536,w+=R(D>>>10&1023|55296),D=56320|D&1023),w+=R(D),w}).join("")}function g(M){return M-48<10?M-22:M-65<26?M-65:M-97<26?M-97:s}function C(M,D){return M+22+75*(M<26)-((D!=0)<<5)}function V(M,D,w){var z=0;for(M=w?Z(M/u):M>>1,M+=Z(M/D);M>A*c>>1;z+=s)M=Z(M/A);return Z(z+(A+1)*M/(M+d))}function L(M){var D=[],w=M.length,z,K=0,ee=p,H=m,te,q,de,ye,le,Ce,ge,Ee,Re;for(te=M.lastIndexOf(b),te<0&&(te=0),q=0;q=128&&E("not-basic"),D.push(M.charCodeAt(q));for(de=te>0?te+1:0;de=w&&E("invalid-input"),ge=g(M.charCodeAt(de++)),(ge>=s||ge>Z((r-K)/le))&&E("overflow"),K+=ge*le,Ee=Ce<=H?a:Ce>=H+c?c:Ce-H,!(geZ(r/Re)&&E("overflow"),le*=Re;z=D.length+1,H=V(K-ye,z,ye==0),Z(K/z)>r-ee&&E("overflow"),ee+=Z(K/z),K%=z,D.splice(K++,0,ee)}return Y(D)}function P(M){var D,w,z,K,ee,H,te,q,de,ye,le,Ce=[],ge,Ee,Re,Xe;for(M=X(M),ge=M.length,D=p,w=0,ee=m,H=0;H=D&&leZ((r-w)/Ee)&&E("overflow"),w+=(te-D)*Ee,D=te,H=0;Hr&&E("overflow"),le==D){for(q=w,de=s;ye=de<=ee?a:de>=ee+c?c:de-ee,!(q{var ZMt=x(T());/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof xU=="object"&&xU.exports?xU.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(Gre,function(e){"use strict";var t=e&&e.IPv6;function n(o){var r=o.toLowerCase(),s=r.split(":"),a=s.length,c=8;s[0]===""&&s[1]===""&&s[2]===""?(s.shift(),s.shift()):s[0]===""&&s[1]===""?s.shift():s[a-1]===""&&s[a-2]===""&&s.pop(),a=s.length,s[a-1].indexOf(".")!==-1&&(c=7);var d;for(d=0;d1);p++)u.splice(0,1);s[m]=u.join("")}var b=-1,f=0,y=0,_=-1,S=!1;for(m=0;mf&&(b=_,f=y)):s[m]==="0"&&(S=!0,_=m,y=1);y>f&&(b=_,f=y),f>1&&s.splice(b,f,""),a=s.length;var A="";for(s[0]===""&&(A=":"),m=0;m{var CMt=x(T());/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof TU=="object"&&TU.exports?TU.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(Lre,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(r+1,o)+" ")>=0:!1},is:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r>=0)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(0,o)+" ")>=0:!1},get:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return null;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return null;var s=n.list[i.slice(o+1)];return!s||s.indexOf(" "+i.slice(r+1,o)+" ")<0?null:i.slice(r+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var qd=Qu((vre,_U)=>{var RMt=x(T());/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof _U=="object"&&_U.exports?_U.exports=t(Vre(),Ere(),Wre()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(vre,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(C,V){var L=arguments.length>=1,P=arguments.length>=2;if(!(this instanceof r))return L?P?new r(C,V):new r(C):new r;if(C===void 0){if(L)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?C=location.href+"":C=""}if(C===null&&L)throw new TypeError("null is not a valid argument for URI");return this.href(C),V!==void 0?this.absoluteTo(V):this}function s(C){return/^[0-9]+$/.test(C)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function d(C){return C.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function u(C){return C===void 0?"Undefined":String(Object.prototype.toString.call(C)).slice(8,-1)}function m(C){return u(C)==="Array"}function p(C,V){var L={},P,N;if(u(V)==="RegExp")L=null;else if(m(V))for(P=0,N=V.length;P]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?ÂĢÂģ“”‘’]))/ig,r.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?ÂĢÂģ“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},r.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,r.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},r.hostProtocols=["http","https"],r.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,r.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},r.getDomAttribute=function(C){if(!(!C||!C.nodeName)){var V=C.nodeName.toLowerCase();if(!(V==="input"&&C.type!=="image"))return r.domAttributes[V]}};function _(C){return escape(C)}function S(C){return encodeURIComponent(C).replace(/[!'()*]/g,_).replace(/\*/g,"%2A")}r.encode=S,r.decode=decodeURIComponent,r.iso8859=function(){r.encode=escape,r.decode=unescape},r.unicode=function(){r.encode=S,r.decode=decodeURIComponent},r.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},r.encodeQuery=function(C,V){var L=r.encode(C+"");return V===void 0&&(V=r.escapeQuerySpace),V?L.replace(/%20/g,"+"):L},r.decodeQuery=function(C,V){C+="",V===void 0&&(V=r.escapeQuerySpace);try{return r.decode(V?C.replace(/\+/g,"%20"):C)}catch{return C}};var A={encode:"encode",decode:"decode"},Z,R=function(C,V){return function(L){try{return r[V](L+"").replace(r.characters[C][V].expression,function(P){return r.characters[C][V].map[P]})}catch{return L}}};for(Z in A)r[Z+"PathSegment"]=R("pathname",A[Z]),r[Z+"UrnPathSegment"]=R("urnpath",A[Z]);var G=function(C,V,L){return function(P){var N;L?N=function(w){return r[V](r[L](w))}:N=r[V];for(var O=(P+"").split(C),M=0,D=O.length;M-1&&(V.fragment=C.substring(L+1)||null,C=C.substring(0,L)),L=C.indexOf("?"),L>-1&&(V.query=C.substring(L+1)||null,C=C.substring(0,L)),C=C.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),C=C.replace(/^[/\\]{2,}/i,"//"),C.substring(0,2)==="//"?(V.protocol=null,C=C.substring(2),C=r.parseAuthority(C,V)):(L=C.indexOf(":"),L>-1&&(V.protocol=C.substring(0,L)||null,V.protocol&&!V.protocol.match(r.protocol_expression)?V.protocol=void 0:C.substring(L+1,L+3).replace(/\\/g,"/")==="//"?(C=C.substring(L+3),C=r.parseAuthority(C,V)):(C=C.substring(L+1),V.urn=!0))),V.path=C,V},r.parseHost=function(C,V){C||(C=""),C=C.replace(/\\/g,"/");var L=C.indexOf("/"),P,N;if(L===-1&&(L=C.length),C.charAt(0)==="[")P=C.indexOf("]"),V.hostname=C.substring(1,P)||null,V.port=C.substring(P+2,L)||null,V.port==="/"&&(V.port=null);else{var O=C.indexOf(":"),M=C.indexOf("/"),D=C.indexOf(":",O+1);D!==-1&&(M===-1||D-1?N:C.length-1),M;return O>-1&&(N===-1||O-1?H=H.slice(0,te)+H.slice(te).replace(O,""):H=H.replace(O,""),!(H.length<=w[0].length)&&!(L.ignore&&L.ignore.test(H))){ee=z+H.length;var ye=V(H,z,ee,C);if(ye===void 0){P.lastIndex=ee;continue}ye=String(ye),C=C.slice(0,z)+ye+C.slice(ee),P.lastIndex=z+ye.length}}return P.lastIndex=0,C},r.ensureValidHostname=function(C,V){var L=!!C,P=!!V,N=!1;if(P&&(N=b(r.hostProtocols,V)),N&&!L)throw new TypeError("Hostname cannot be empty, if protocol is "+V);if(C&&C.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+C+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(C).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+C+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(C){if(C){var V=Number(C);if(!(s(V)&&V>0&&V<65536))throw new TypeError('Port "'+C+'" is not a valid port')}},r.noConflict=function(C){if(C){var V={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(V.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(V.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(V.SecondLevelDomains=i.SecondLevelDomains.noConflict()),V}else i.URI===this&&(i.URI=o);return this},a.build=function(C){return C===!0?this._deferred_build=!0:(C===void 0||this._deferred_build)&&(this._string=r.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new r(this)},a.valueOf=a.toString=function(){return this.build(!1)._string};function E(C){return function(V,L){return V===void 0?this._parts[C]||"":(this._parts[C]=V||null,this.build(!L),this)}}function v(C,V){return function(L,P){return L===void 0?this._parts[C]||"":(L!==null&&(L=L+"",L.charAt(0)===V&&(L=L.substring(1))),this._parts[C]=L,this.build(!P),this)}}a.protocol=E("protocol"),a.username=E("username"),a.password=E("password"),a.hostname=E("hostname"),a.port=E("port"),a.query=v("query","?"),a.fragment=v("fragment","#"),a.search=function(C,V){var L=this.query(C,V);return typeof L=="string"&&L.length?"?"+L:L},a.hash=function(C,V){var L=this.fragment(C,V);return typeof L=="string"&&L.length?"#"+L:L},a.pathname=function(C,V){if(C===void 0||C===!0){var L=this._parts.path||(this._parts.hostname?"/":"");return C?(this._parts.urn?r.decodeUrnPath:r.decodePath)(L):L}else return this._parts.urn?this._parts.path=C?r.recodeUrnPath(C):"":this._parts.path=C?r.recodePath(C):"/",this.build(!V),this},a.path=a.pathname,a.href=function(C,V){var L;if(C===void 0)return this.toString();this._string="",this._parts=r._parts();var P=C instanceof r,N=typeof C=="object"&&(C.hostname||C.path||C.pathname);if(C.nodeName){var O=r.getDomAttribute(C);C=C[O]||"",N=!1}if(!P&&N&&C.pathname!==void 0&&(C=C.toString()),typeof C=="string"||C instanceof String)this._parts=r.parse(String(C),this._parts);else if(P||N){var M=P?C._parts:C;for(L in M)L!=="query"&&c.call(this._parts,L)&&(this._parts[L]=M[L]);M.query&&this.query(M.query,!1)}else throw new TypeError("invalid input");return this.build(!V),this},a.is=function(C){var V=!1,L=!1,P=!1,N=!1,O=!1,M=!1,D=!1,w=!this._parts.urn;switch(this._parts.hostname&&(w=!1,L=r.ip4_expression.test(this._parts.hostname),P=r.ip6_expression.test(this._parts.hostname),V=L||P,N=!V,O=N&&n&&n.has(this._parts.hostname),M=N&&r.idn_expression.test(this._parts.hostname),D=N&&r.punycode_expression.test(this._parts.hostname)),C.toLowerCase()){case"relative":return w;case"absolute":return!w;case"domain":case"name":return N;case"sld":return O;case"ip":return V;case"ip4":case"ipv4":case"inet4":return L;case"ip6":case"ipv6":case"inet6":return P;case"idn":return M;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return D}return null};var I=a.protocol,X=a.port,Y=a.hostname;a.protocol=function(C,V){if(C&&(C=C.replace(/:(\/\/)?$/,""),!C.match(r.protocol_expression)))throw new TypeError('Protocol "'+C+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return I.call(this,C,V)},a.scheme=a.protocol,a.port=function(C,V){return this._parts.urn?C===void 0?"":this:(C!==void 0&&(C===0&&(C=null),C&&(C+="",C.charAt(0)===":"&&(C=C.substring(1)),r.ensureValidPort(C))),X.call(this,C,V))},a.hostname=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(C!==void 0){var L={preventInvalidHostname:this._parts.preventInvalidHostname},P=r.parseHost(C,L);if(P!=="/")throw new TypeError('Hostname "'+C+'" contains characters other than [A-Z0-9.-]');C=L.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(C,this._parts.protocol)}return Y.call(this,C,V)},a.origin=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(C===void 0){var L=this.protocol(),P=this.authority();return P?(L?L+"://":"")+this.authority():""}else{var N=r(C);return this.protocol(N.protocol()).authority(N.authority()).build(!V),this}},a.host=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(C===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var L=r.parseHost(C,this._parts);if(L!=="/")throw new TypeError('Hostname "'+C+'" contains characters other than [A-Z0-9.-]');return this.build(!V),this},a.authority=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(C===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var L=r.parseAuthority(C,this._parts);if(L!=="/")throw new TypeError('Hostname "'+C+'" contains characters other than [A-Z0-9.-]');return this.build(!V),this},a.userinfo=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(C===void 0){var L=r.buildUserinfo(this._parts);return L&&L.substring(0,L.length-1)}else return C[C.length-1]!=="@"&&(C+="@"),r.parseUserinfo(C,this._parts),this.build(!V),this},a.resource=function(C,V){var L;return C===void 0?this.path()+this.search()+this.hash():(L=r.parse(C),this._parts.path=L.path,this._parts.query=L.query,this._parts.fragment=L.fragment,this.build(!V),this)},a.subdomain=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(C===void 0){if(!this._parts.hostname||this.is("IP"))return"";var L=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,L)||""}else{var P=this._parts.hostname.length-this.domain().length,N=this._parts.hostname.substring(0,P),O=new RegExp("^"+d(N));if(C&&C.charAt(C.length-1)!=="."&&(C+="."),C.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return C&&r.ensureValidHostname(C,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(O,C),this.build(!V),this}},a.domain=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(typeof C=="boolean"&&(V=C,C=void 0),C===void 0){if(!this._parts.hostname||this.is("IP"))return"";var L=this._parts.hostname.match(/\./g);if(L&&L.length<2)return this._parts.hostname;var P=this._parts.hostname.length-this.tld(V).length-1;return P=this._parts.hostname.lastIndexOf(".",P-1)+1,this._parts.hostname.substring(P)||""}else{if(!C)throw new TypeError("cannot set domain empty");if(C.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(C,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=C;else{var N=new RegExp(d(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(N,C)}return this.build(!V),this}},a.tld=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(typeof C=="boolean"&&(V=C,C=void 0),C===void 0){if(!this._parts.hostname||this.is("IP"))return"";var L=this._parts.hostname.lastIndexOf("."),P=this._parts.hostname.substring(L+1);return V!==!0&&n&&n.list[P.toLowerCase()]&&n.get(this._parts.hostname)||P}else{var N;if(C)if(C.match(/[^a-zA-Z0-9-]/))if(n&&n.is(C))N=new RegExp(d(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(N,C);else throw new TypeError('TLD "'+C+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");N=new RegExp(d(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(N,C)}else throw new TypeError("cannot set TLD empty");return this.build(!V),this}},a.directory=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(C===void 0||C===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var L=this._parts.path.length-this.filename().length-1,P=this._parts.path.substring(0,L)||(this._parts.hostname?"/":"");return C?r.decodePath(P):P}else{var N=this._parts.path.length-this.filename().length,O=this._parts.path.substring(0,N),M=new RegExp("^"+d(O));return this.is("relative")||(C||(C="/"),C.charAt(0)!=="/"&&(C="/"+C)),C&&C.charAt(C.length-1)!=="/"&&(C+="/"),C=r.recodePath(C),this._parts.path=this._parts.path.replace(M,C),this.build(!V),this}},a.filename=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(typeof C!="string"){if(!this._parts.path||this._parts.path==="/")return"";var L=this._parts.path.lastIndexOf("/"),P=this._parts.path.substring(L+1);return C?r.decodePathSegment(P):P}else{var N=!1;C.charAt(0)==="/"&&(C=C.substring(1)),C.match(/\.?\//)&&(N=!0);var O=new RegExp(d(this.filename())+"$");return C=r.recodePath(C),this._parts.path=this._parts.path.replace(O,C),N?this.normalizePath(V):this.build(!V),this}},a.suffix=function(C,V){if(this._parts.urn)return C===void 0?"":this;if(C===void 0||C===!0){if(!this._parts.path||this._parts.path==="/")return"";var L=this.filename(),P=L.lastIndexOf("."),N,O;return P===-1?"":(N=L.substring(P+1),O=/^[a-z0-9%]+$/i.test(N)?N:"",C?r.decodePathSegment(O):O)}else{C.charAt(0)==="."&&(C=C.substring(1));var M=this.suffix(),D;if(M)C?D=new RegExp(d(M)+"$"):D=new RegExp(d("."+M)+"$");else{if(!C)return this;this._parts.path+="."+r.recodePath(C)}return D&&(C=r.recodePath(C),this._parts.path=this._parts.path.replace(D,C)),this.build(!V),this}},a.segment=function(C,V,L){var P=this._parts.urn?":":"/",N=this.path(),O=N.substring(0,1)==="/",M=N.split(P);if(C!==void 0&&typeof C!="number"&&(L=V,V=C,C=void 0),C!==void 0&&typeof C!="number")throw new Error('Bad segment "'+C+'", must be 0-based integer');if(O&&M.shift(),C<0&&(C=Math.max(M.length+C,0)),V===void 0)return C===void 0?M:M[C];if(C===null||M[C]===void 0)if(m(V)){M=[];for(var D=0,w=V.length;D{"use strict";var y6n=x(T());L0e.exports=Q$e;var UI=1e20;function Q$e(e,t){t||(t={});var n=t.cutoff==null?.25:t.cutoff,i=t.radius==null?8:t.radius,o=t.channel||0,r,s,a,c,d,u,m,p,b,f,y;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");r=t.width,s=t.height,c=e,t.stride?u=t.stride:u=Math.floor(e.length/r/s)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(p=e,m=p.getContext("2d"),r=p.width,s=p.height,b=m.getImageData(0,0,r,s),c=b.data,u=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(p=e.canvas,m=e,r=p.width,s=p.height,b=m.getImageData(0,0,r,s),c=b.data,u=4):window.ImageData&&e instanceof window.ImageData&&(b=e,r=e.width,s=e.height,c=b.data,u=4);if(a=Math.max(r,s),window.Uint8ClampedArray&&c instanceof window.Uint8ClampedArray||window.Uint8Array&&c instanceof window.Uint8Array)for(d=c,c=Array(r*s),f=0,y=Math.floor(d.length/u);f{var N6n=x(T());function aet(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,d=9,u=10,m=11,p=12,b=13,f=14,y=15,_=16,S=17,A=0,Z=1,R=2,G=3,E=4;function v(g,C){return 55296<=g.charCodeAt(C)&&g.charCodeAt(C)<=56319&&56320<=g.charCodeAt(C+1)&&g.charCodeAt(C+1)<=57343}function I(g,C){C===void 0&&(C=0);var V=g.charCodeAt(C);if(55296<=V&&V<=56319&&C=1){var L=g.charCodeAt(C-1),P=V;return 55296<=L&&L<=56319?(L-55296)*1024+(P-56320)+65536:P}return V}function X(g,C,V){var L=[g].concat(C).concat([V]),P=L[L.length-2],N=V,O=L.lastIndexOf(f);if(O>1&&L.slice(1,O).every(function(w){return w==i})&&[i,b,S].indexOf(g)==-1)return R;var M=L.lastIndexOf(o);if(M>0&&L.slice(1,M).every(function(w){return w==o})&&[p,o].indexOf(P)==-1)return L.filter(function(w){return w==o}).length%2==1?G:E;if(P==e&&N==t)return A;if(P==n||P==e||P==t)return N==f&&C.every(function(w){return w==i})?R:Z;if(N==n||N==e||N==t)return Z;if(P==s&&(N==s||N==a||N==d||N==u))return A;if((P==d||P==a)&&(N==a||N==c))return A;if((P==u||P==c)&&N==c)return A;if(N==i||N==y)return A;if(N==r)return A;if(P==p)return A;var D=L.indexOf(i)!=-1?L.lastIndexOf(i)-1:L.length-2;return[b,S].indexOf(L[D])!=-1&&L.slice(D+1,-1).every(function(w){return w==i})&&N==f||P==y&&[_,S].indexOf(N)!=-1?A:C.indexOf(o)!=-1?R:P==o&&N==o?A:Z}this.nextBreak=function(g,C){if(C===void 0&&(C=0),C<0)return 0;if(C>=g.length-1)return g.length;for(var V=Y(I(g,C)),L=[],P=C+1;P{var vTo=x(T());/*! + * protobuf.js v8.6.5 (c) 2016, daniel wirtz + * compiled tue, 23 jun 2026 14:36:35 utc + * licensed under the bsd-3-clause license + * see: https://github.com/dcodeio/protobuf.js for details + */(function(e){"use strict";(function(n,i,o){function r(a){var c=i[a];return c||n[a][0].call(c=i[a]={exports:{}},r,c,c.exports),c.exports}var s=r(o[0]);s.util.global.protobuf=s,typeof define=="function"&&define.amd&&define(["long"],function(a){return a&&a.isLong&&(s.util.Long=a,s.configure()),s}),typeof Vk=="object"&&Vk&&Vk.exports&&(Vk.exports=s)})({1:[function(t,n,i){"use strict";i.build="minimal",i.Writer=t(15),i.BufferWriter=t(16),i.Reader=t(2),i.BufferReader=t(3),i.util=t(12),i.rpc=t(5),i.roots=t(4),i.configure=o;function o(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}o()},{12:12,15:15,16:16,2:2,3:3,4:4,5:5}],2:[function(t,n,i){"use strict";n.exports=d;var o=t(12),r,s=o.LongBits,a=o.utf8;function c(y,_){return RangeError("index out of range: "+y.pos+" + "+(_||1)+" > "+y.len)}function d(y){this.buf=y,this.pos=0,this.len=y.length,this.discardUnknown=d.discardUnknown}var u=typeof Uint8Array<"u"?function(_){if(_ instanceof Uint8Array||Array.isArray(_))return new d(_);throw Error("illegal buffer")}:function(_){if(Array.isArray(_))return new d(_);throw Error("illegal buffer")},m=function(){return o.Buffer?function(S){return(d.create=function(Z){return o.Buffer.isBuffer(Z)?new r(Z):u(Z)})(S)}:u};d.create=m(),d.prototype._slice=o.Array.prototype.subarray||o.Array.prototype.slice,d.prototype.raw=function(_,S){return Array.isArray(this.buf)?this.buf.slice(_,S):_===S?new this.buf.constructor(0):this._slice.call(this.buf,_,S)},d.prototype.uint32=function(){var _=this.buf,S=this.pos,A=(_[S]&127)>>>0;if(_[S++]<128)return this.pos=S,A;if(A=(A|(_[S]&127)<<7)>>>0,_[S++]<128)return this.pos=S,A;if(A=(A|(_[S]&127)<<14)>>>0,_[S++]<128)return this.pos=S,A;if(A=(A|(_[S]&127)<<21)>>>0,_[S++]<128)return this.pos=S,A;if(A=(A|(_[S]&15)<<28)>>>0,_[S++]<128)return this.pos=S,A;for(var Z=0;Z<5;++Z){if(S>=this.len)throw this.pos=S,c(this);if(_[S++]<128)return this.pos=S,A}throw this.pos=S,Error("invalid varint encoding")},d.prototype.tag=function(){var _=this.buf,S=this.pos,A=(_[S]&127)>>>0;if(_[S++]<128)return this.pos=S,A;if(A=(A|(_[S]&127)<<7)>>>0,_[S++]<128)return this.pos=S,A;if(A=(A|(_[S]&127)<<14)>>>0,_[S++]<128)return this.pos=S,A;if(A=(A|(_[S]&127)<<21)>>>0,_[S++]<128)return this.pos=S,A;if(A=(A|(_[S]&15)<<28)>>>0,_[S]<128&&(_[S]&112)===0)return this.pos=S+1,A;throw this.pos=S+1,Error("invalid tag encoding")},d.prototype.int32=function(){return this.uint32()|0},d.prototype.sint32=function(){var _=this.uint32();return _>>>1^-(_&1)|0};function p(){var y=new s(0,0),_=0;if(this.len-this.pos>4){for(;_<4;++_)if(y.lo=(y.lo|(this.buf[this.pos]&127)<<_*7)>>>0,this.buf[this.pos++]<128)return y;if(y.lo=(y.lo|(this.buf[this.pos]&127)<<28)>>>0,y.hi=(y.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return y;_=0}else{for(;_<4;++_){if(this.pos>=this.len)throw c(this);if(y.lo=(y.lo|(this.buf[this.pos]&127)<<_*7)>>>0,this.buf[this.pos++]<128)return y}throw c(this)}if(this.len-this.pos>4){for(;_<5;++_)if(y.hi=(y.hi|(this.buf[this.pos]&127)<<_*7+3)>>>0,this.buf[this.pos++]<128)return y}else for(;_<5;++_){if(this.pos>=this.len)throw c(this);if(y.hi=(y.hi|(this.buf[this.pos]&127)<<_*7+3)>>>0,this.buf[this.pos++]<128)return y}throw Error("invalid varint encoding")}d.prototype.bool=function(){for(var _=!1,S,A=0;A<10;++A){if(this.pos>=this.len)throw c(this);if(S=this.buf[this.pos++],S&127&&(_=!0),S<128)return _}throw Error("invalid varint encoding")};function b(y,_){return(y[_-4]|y[_-3]<<8|y[_-2]<<16|y[_-1]<<24)>>>0}d.prototype.fixed32=function(){if(this.pos+4>this.len)throw c(this,4);return b(this.buf,this.pos+=4)},d.prototype.sfixed32=function(){if(this.pos+4>this.len)throw c(this,4);return b(this.buf,this.pos+=4)|0};function f(){if(this.pos+8>this.len)throw c(this,8);return new s(b(this.buf,this.pos+=4),b(this.buf,this.pos+=4))}d.prototype.float=function(){if(this.pos+4>this.len)throw c(this,4);var _=o.float.readFloatLE(this.buf,this.pos);return this.pos+=4,_},d.prototype.double=function(){if(this.pos+8>this.len)throw c(this,4);var _=o.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,_},d.prototype.bytes=function(){var _=this.uint32(),S=this.pos,A=this.pos+_;if(A>this.len)throw c(this,_);return this.pos=A,this.raw(S,A)},d.prototype.string=function(){var _=this.uint32(),S=this.pos,A=this.pos+_;if(A>this.len)throw c(this,_);return this.pos=A,a.read(this.buf,S,A)},d.prototype.stringVerify=function(){var _=this.uint32(),S=this.pos,A=this.pos+_;if(A>this.len)throw c(this,_);return this.pos=A,a.readStrict(this.buf,S,A)},d.prototype.skip=function(_){if(typeof _=="number"){if(this.pos+_>this.len)throw c(this,_);this.pos+=_}else do if(this.pos>=this.len)throw c(this);while(this.buf[this.pos++]&128);return this},d.recursionLimit=o.recursionLimit,d.discardUnknown=!0,d.prototype.skipType=function(y,_,S){if(_===e&&(_=0),_>d.recursionLimit)throw Error("max depth exceeded");if(S===0)throw Error("illegal tag: field number 0");switch(y){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){var A=this.tag(),Z=A>>>3;if(y=A&7,!Z)throw Error("illegal tag: field number 0");if(y===4){if(S!==e&&Z!==S)throw Error("invalid end group tag");break}this.skipType(y,_+1,Z)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+y+" at offset "+this.pos)}return this},d._configure=function(y){r=y,d.create=m(),r._configure();var _=o.Long?"toLong":"toNumber";o.merge(d.prototype,{int64:function(){return p.call(this)[_](!1)},uint64:function(){return p.call(this)[_](!0)},sint64:function(){return p.call(this).zzDecode()[_](!1)},fixed64:function(){return f.call(this)[_](!0)},sfixed64:function(){return f.call(this)[_](!1)}})}},{12:12}],3:[function(t,n,i){"use strict";n.exports=s;var o=t(2);s.prototype=Object.create(o.prototype,{constructor:{value:s,writable:!0,enumerable:!1,configurable:!0}});var r=t(12);function s(a){o.call(this,a)}s._configure=function(){r.Buffer&&(s.prototype._slice=r.Buffer.prototype.slice)},s.prototype.raw=function(c,d){return c===d?r.Buffer.alloc(0):this._slice.call(this.buf,c,d)},s.prototype.string=function(){var c=this.uint32(),d=this.pos,u=this.pos+c;if(u>this.len)throw RangeError("index out of range: "+this.pos+" + "+c+" > "+this.len);return this.pos=u,this.buf.utf8Slice?this.buf.utf8Slice(d,u):this.buf.toString("utf-8",d,u)},s._configure()},{12:12,2:2}],4:[function(t,n,i){"use strict";n.exports=Object.create(null)},{}],5:[function(t,n,i){"use strict";var o=i;o.Service=t(6)},{6:6}],6:[function(t,n,i){"use strict";n.exports=r;var o=t(12);r.prototype=Object.create(o.EventEmitter.prototype,{constructor:{value:r,writable:!0,enumerable:!1,configurable:!0}});function r(s,a,c){if(typeof s!="function")throw TypeError("rpcImpl must be a function");o.EventEmitter.call(this),this.rpcImpl=s,this.requestDelimited=!!a,this.responseDelimited=!!c}r.prototype.rpcCall=function s(a,c,d,u,m){if(!u)throw TypeError("request must be specified");var p=this;if(!m)return o.asPromise(s,p,a,c,d,u);if(!p.rpcImpl)return setTimeout(function(){m(Error("already ended"))},0),e;try{return p.rpcImpl(a,c[p.requestDelimited?"encodeDelimited":"encode"](u).finish(),function(f,y){if(f)return p.emit("error",f,a),m(f);if(y===null)return p.end(!0),e;if(!(y instanceof d))try{y=d[p.responseDelimited?"decodeDelimited":"decode"](y)}catch(_){return p.emit("error",_,a),m(_)}return p.emit("data",y,a),m(null,y)})}catch(b){return p.emit("error",b,a),setTimeout(function(){m(b)},0),e}},r.prototype.end=function(a){return this.rpcImpl&&(a||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{12:12}],7:[function(t,n,i){"use strict";n.exports=o;function o(r,s){for(var a=new Array(arguments.length-1),c=0,d=2,u=!0;d0&&b.charAt(f-1)==="=";)--f;return Math.floor(f*3/4)};for(var r=new Array(64),s=new Array(123),a=0;a<64;)s[r[a]=a<26?a+65:a<52?a+71:a<62?a-4:a-59|43]=a++;s[45]=62,s[95]=63,o.encode=function(b,f,y){for(var _=null,S=[],A=0,Z=0,R;f>2],R=(G&3)<<4,Z=1;break;case 1:S[A++]=r[R|G>>4],R=(G&15)<<2,Z=2;break;case 2:S[A++]=r[R|G>>6],S[A++]=r[G&63],Z=0;break}A>8191&&((_||(_=[])).push(String.fromCharCode.apply(String,S)),A=0)}return Z&&(S[A++]=r[R],S[A++]=61,Z===1&&(S[A++]=61)),_?(A&&_.push(String.fromCharCode.apply(String,S.slice(0,A))),_.join("")):String.fromCharCode.apply(String,S.slice(0,A))};var c="invalid encoding";o.decode=function(b,f,y){for(var _=y,S=0,A,Z=0;Z1)break;if((R=s[R])===e)throw Error(c);switch(S){case 0:A=R,S=1;break;case 1:f[y++]=A<<2|(R&48)>>4,A=R,S=2;break;case 2:f[y++]=(A&15)<<4|(R&60)>>2,A=R,S=3;break;case 3:f[y++]=(A&3)<<6|R,S=0;break}}if(S===1)throw Error(c);return y-_};var d=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,u=/[-_]/,m=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2}(?:==)?|[A-Za-z0-9_-]{3}=?)?$/;o.test=function(b){return d.test(b)||u.test(b)&&m.test(b)}},{}],9:[function(t,n,i){"use strict";n.exports=o;function o(){this._listeners=Object.create(null)}o.prototype.on=function(s,a,c){return(this._listeners[s]||(this._listeners[s]=[])).push({fn:a,ctx:c||this}),this},o.prototype.off=function(s,a){if(s===e)this._listeners=Object.create(null);else if(a===e)this._listeners[s]=[];else{var c=this._listeners[s];if(!c)return this;for(var d=0;d0?0:2147483648,f,y);else if(isNaN(b))p(2143289344,f,y);else if(b>34028234663852886e22)p((_<<31|2139095040)>>>0,f,y);else if(b<11754943508222875e-54)p((_<<31|Math.round(b/1401298464324817e-60))>>>0,f,y);else{var S=Math.floor(Math.log(b)/Math.LN2),A=Math.round(b*Math.pow(2,-S)*8388608)&8388607;p((_<<31|S+127<<23|A)>>>0,f,y)}}d.writeFloatLE=u.bind(null,r),d.writeFloatBE=u.bind(null,s);function m(p,b,f){var y=p(b,f),_=(y>>31)*2+1,S=y>>>23&255,A=y&8388607;return S===255?A?NaN:_*(1/0):S===0?_*1401298464324817e-60*A:_*Math.pow(2,S-150)*(A+8388608)}d.readFloatLE=m.bind(null,a),d.readFloatBE=m.bind(null,c)})(),typeof Float64Array<"u"?(function(){var u=new Float64Array([-0]),m=new Uint8Array(u.buffer),p=m[7]===128;function b(S,A,Z){u[0]=S,A[Z]=m[0],A[Z+1]=m[1],A[Z+2]=m[2],A[Z+3]=m[3],A[Z+4]=m[4],A[Z+5]=m[5],A[Z+6]=m[6],A[Z+7]=m[7]}function f(S,A,Z){u[0]=S,A[Z]=m[7],A[Z+1]=m[6],A[Z+2]=m[5],A[Z+3]=m[4],A[Z+4]=m[3],A[Z+5]=m[2],A[Z+6]=m[1],A[Z+7]=m[0]}d.writeDoubleLE=p?b:f,d.writeDoubleBE=p?f:b;function y(S,A){return m[0]=S[A],m[1]=S[A+1],m[2]=S[A+2],m[3]=S[A+3],m[4]=S[A+4],m[5]=S[A+5],m[6]=S[A+6],m[7]=S[A+7],u[0]}function _(S,A){return m[7]=S[A],m[6]=S[A+1],m[5]=S[A+2],m[4]=S[A+3],m[3]=S[A+4],m[2]=S[A+5],m[1]=S[A+6],m[0]=S[A+7],u[0]}d.readDoubleLE=p?y:_,d.readDoubleBE=p?_:y})():(function(){function u(p,b,f,y,_,S){var A=y<0?1:0;if(A&&(y=-y),y===0)p(0,_,S+b),p(1/y>0?0:2147483648,_,S+f);else if(isNaN(y))p(0,_,S+b),p(2146959360,_,S+f);else if(y>17976931348623157e292)p(0,_,S+b),p((A<<31|2146435072)>>>0,_,S+f);else{var Z;if(y<22250738585072014e-324)Z=y/5e-324,p(Z>>>0,_,S+b),p((A<<31|Z/4294967296)>>>0,_,S+f);else{var R=Math.floor(Math.log(y)/Math.LN2);R===1024&&(R=1023),Z=y*Math.pow(2,-R),p(Z*4503599627370496>>>0,_,S+b),p((A<<31|R+1023<<20|Z*1048576&1048575)>>>0,_,S+f)}}}d.writeDoubleLE=u.bind(null,r,0,4),d.writeDoubleBE=u.bind(null,s,4,0);function m(p,b,f,y,_){var S=p(y,_+b),A=p(y,_+f),Z=(A>>31)*2+1,R=A>>>20&2047,G=4294967296*(A&1048575)+S;return R===2047?G?NaN:Z*(1/0):R===0?Z*5e-324*G:Z*Math.pow(2,R-1075)*(G+4503599627370496)}d.readDoubleLE=m.bind(null,a,0,4),d.readDoubleBE=m.bind(null,c,4,0)})(),d}function r(d,u,m){u[m]=d&255,u[m+1]=d>>>8&255,u[m+2]=d>>>16&255,u[m+3]=d>>>24}function s(d,u,m){u[m]=d>>>24,u[m+1]=d>>>16&255,u[m+2]=d>>>8&255,u[m+3]=d&255}function a(d,u){return(d[u]|d[u+1]<<8|d[u+2]<<16|d[u+3]<<24)>>>0}function c(d,u){return(d[u]<<24|d[u+1]<<16|d[u+2]<<8|d[u+3])>>>0}},{}],11:[function(t,n,i){"use strict";n.exports=r;var o=t(12);function r(d,u){this.lo=d>>>0,this.hi=u>>>0}var s=r.zero=new r(0,0);s.toNumber=function(){return 0},s.zzEncode=s.zzDecode=function(){return this},s.length=function(){return 1};var a=r.zeroHash="\0\0\0\0\0\0\0\0";r.fromNumber=function(u){if(u===0)return s;var m=u<0;m&&(u=-u);var p=u>>>0,b=(u-p)/4294967296>>>0;return m&&(b=~b>>>0,p=~p>>>0,++p>4294967295&&(p=0,++b>4294967295&&(b=0))),new r(p,b)},r.from=function(u){if(typeof u=="number")return r.fromNumber(u);if(o.isString(u))if(o.Long)u=o.Long.fromString(u);else return r.fromNumber(parseInt(u,10));return u.low||u.high?new r(u.low>>>0,u.high>>>0):s},r.prototype.toNumber=function(u){if(!u&&this.hi>>>31){var m=~this.lo+1>>>0,p=~this.hi>>>0;return m||(p=p+1>>>0),-(m+p*4294967296)}return this.lo+this.hi*4294967296},r.prototype.toLong=function(u){return o.Long?new o.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var c=String.prototype.charCodeAt;r.fromHash=function(u){return u===a?s:new r((c.call(u,0)|c.call(u,1)<<8|c.call(u,2)<<16|c.call(u,3)<<24)>>>0,(c.call(u,4)|c.call(u,5)<<8|c.call(u,6)<<16|c.call(u,7)<<24)>>>0)},r.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},r.prototype.zzEncode=function(){var u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},r.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},r.prototype.length=function(){var u=this.lo,m=(this.lo>>>28|this.hi<<4)>>>0,p=this.hi>>>24;return p===0?m===0?u<16384?u<128?1:2:u<2097152?3:4:m<16384?m<128?5:6:m<2097152?7:8:p<128?9:10}},{12:12}],12:[function(t,n,i){"use strict";var o=i;o.asPromise=t(7),o.base64=t(8),o.EventEmitter=t(9),o.float=t(10),o.utf8=t(14),o.pool=t(13),o.LongBits=t(11);function r(c){return c==="__proto__"||c==="prototype"||c==="constructor"}o.isUnsafeProperty=r,o.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node),o.global=o.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||typeof globalThis<"u"&&globalThis||this,o.emptyArray=Object.freeze?Object.freeze([]):[],o.emptyObject=Object.freeze?Object.freeze({}):{},o.isInteger=Number.isInteger||function(d){return typeof d=="number"&&isFinite(d)&&Math.floor(d)===d},o.isString=function(d){return typeof d=="string"||d instanceof String},o.isObject=function(d){return d&&typeof d=="object"},o.isset=o.isSet=function(d,u){var m=d[u];return m!=null&&Object.hasOwnProperty.call(d,u)?typeof m!="object"||(Array.isArray(m)?m.length:Object.keys(m).length)>0:!1},o.Buffer=(function(){try{var c=o.global.Buffer;return c.prototype.utf8Write?c:null}catch{return null}})(),o._Buffer_from=null,o._Buffer_allocUnsafe=null,o.newBuffer=function(d){return typeof d=="number"?o.Buffer?o._Buffer_allocUnsafe(d):new o.Array(d):o.Buffer?o._Buffer_from(d):typeof Uint8Array>"u"?d:new Uint8Array(d)},o.rawField=function(d,u,m){var p=[],b=d<<3|u;for(b>>>=0;b>127;)p.push(b&127|128),b>>>=7;p.push(b);for(var f=0;f-1;--b)if(u[p[b]]===1&&this[p[b]]!==e&&this[p[b]]!==null)return p[b]}},o.oneOfSetter=function(d){return function(u){for(var m=0;m>>1,u=null,m=c;return function(b){if(b<1||b>d)return r(b);m+b>c&&(u=r(c),m=0);var f=s.call(u,m,m+=b);return m&7&&(m=(m|7)+1),f}}},{}],14:[function(t,n,i){"use strict";var o=i,r="\uFFFD",s;try{s=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0})}catch{s=new TextDecoder("utf-8",{ignoreBOM:!0})}o.length=function(u){for(var m=0,p=0,b=0;b=192&&f<224){var y=(f&31)<<6|d[b++]&63;p+=y>=128?String.fromCharCode(y):r}else if(f>=224&&f<240){var _=(f&15)<<12|(d[b++]&63)<<6|d[b++]&63;p+=_>=2048?String.fromCharCode(_):r}else if(f>=240){var S=(f&7)<<18|(d[b++]&63)<<12|(d[b++]&63)<<6|d[b++]&63;S<65536||S>1114111?p+=r:(S-=65536,p+=String.fromCharCode(55296+(S>>10)),p+=String.fromCharCode(56320+(S&1023)))}}return p}o.read=function(u,m,p){if(p-m<1)return"";for(var b="",f=m,y,_,S,A,Z,R,G,E;f+7>6|192,m[p++]=f&63|128):(f&64512)===55296&&((y=u.charCodeAt(_+1))&64512)===56320?(f=65536+((f&1023)<<10)+(y&1023),++_,m[p++]=f>>18|240,m[p++]=f>>12&63|128,m[p++]=f>>6&63|128,m[p++]=f&63|128):(m[p++]=f>>12|224,m[p++]=f>>6&63|128,m[p++]=f&63|128);return p-b}},{}],15:[function(t,n,i){"use strict";n.exports=p;var o=t(12),r,s=o.LongBits,a=o.base64,c=o.utf8;function d(G,E,v){this.fn=G,this.len=E,this.next=e,this.val=v}function u(){}function m(G){this.head=G.head,this.tail=G.tail,this.len=G.len,this.next=G.states}function p(){this.len=0,this.head=new d(u,0,0),this.tail=this.head,this.states=null}var b=function(){return o.Buffer?function(){return(p.create=function(){return new r})()}:function(){return new p}};p.create=b(),p.alloc=function(E){return new o.Array(E)},o.Array!==Array&&(p.alloc=o.pool(p.alloc,o.Array.prototype.subarray)),p.prototype._push=function(E,v,I){return this.tail=this.tail.next=new d(E,v,I),this.len+=v,this};function f(G,E,v){E[v]=G&255}function y(G,E,v){for(var I=0;I127;)E[v++]=G&127|128,G>>>=7;E[v]=G}function S(G,E){this.len=G,this.next=e,this.val=E}S.prototype=Object.create(d.prototype),S.prototype.fn=_,p.prototype.uint32=function(E){return this.len+=(this.tail=this.tail.next=new S((E=E>>>0)<128?1:E<16384?2:E<2097152?3:E<268435456?4:5,E)).len,this},p.prototype.int32=function(E){return(E|=0)<0?this._push(A,10,s.fromNumber(E)):this.uint32(E)},p.prototype.sint32=function(E){return this.uint32((E<<1^E>>31)>>>0)};function A(G,E,v){for(var I=G.lo,X=G.hi;X;)E[v++]=I&127|128,I=(I>>>7|X<<25)>>>0,X>>>=7;for(;I>127;)E[v++]=I&127|128,I=I>>>7;E[v++]=I}p.prototype.uint64=function(E){var v=s.from(E);return this._push(A,v.length(),v)},p.prototype.int64=p.prototype.uint64,p.prototype.sint64=function(E){var v=s.from(E).zzEncode();return this._push(A,v.length(),v)},p.prototype.bool=function(E){return this._push(f,1,E?1:0)};function Z(G,E,v){E[v]=G&255,E[v+1]=G>>>8&255,E[v+2]=G>>>16&255,E[v+3]=G>>>24}p.prototype.fixed32=function(E){return this._push(Z,4,E>>>0)},p.prototype.sfixed32=p.prototype.fixed32,p.prototype.fixed64=function(E){var v=s.from(E);return this._push(Z,4,v.lo)._push(Z,4,v.hi)},p.prototype.sfixed64=p.prototype.fixed64,p.prototype.float=function(E){return this._push(o.float.writeFloatLE,4,E)},p.prototype.double=function(E){return this._push(o.float.writeDoubleLE,8,E)};var R=o.Array.prototype.set?function(E,v,I){v.set(E,I)}:function(E,v,I){for(var X=0;X>>0;if(!v)return this._push(f,1,0);if(o.isString(E)){var I=p.alloc(v=a.length(E));a.decode(E,I,0),E=I}return this.uint32(v)._push(R,v,E)},p.prototype.raw=function(E){var v=E.length>>>0;return v?this._push(R,v,E):this},p.prototype.string=function(E){var v=c.length(E);return v?this.uint32(v)._push(v===E.length?y:c.write,v,E):this._push(f,1,0)},p.prototype.fork=function(){return this.states=new m(this),this.head=this.tail=new d(u,0,0),this.len=0,this},p.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new d(u,0,0),this.len=0),this},p.prototype.ldelim=function(){var E=this.head,v=this.tail,I=this.len;return this.reset().uint32(I),I&&(this.tail.next=E.next,this.tail=v,this.len+=I),this},p.prototype.finish=function(){return this.finishInto(this.constructor.alloc(this.len),0)},p.prototype.finishInto=function(E,v){v===e&&(v=0);for(var I=this.head.next,X=v;I;)I.fn(I.val,E,X),X+=I.len,I=I.next;return E},p._configure=function(G){r=G,p.create=b(),r._configure()}},{12:12}],16:[function(t,n,i){"use strict";n.exports=s;var o=t(15);s.prototype=Object.create(o.prototype,{constructor:{value:s,writable:!0,enumerable:!1,configurable:!0}});var r=t(12);function s(){o.call(this)}s._configure=function(){s.alloc=r._Buffer_allocUnsafe,s.writeBytesBuffer=r.Buffer&&r.Buffer.prototype instanceof Uint8Array&&r.Buffer.prototype.set.name==="set"?function(u,m,p){m.set(u,p)}:function(u,m,p){if(u.copy)u.copy(m,p,0,u.length);else for(var b=0;b>>0;return this.uint32(m),m&&this._push(s.writeBytesBuffer,m,u),this},s.prototype.raw=function(u){var m=u.length>>>0;return m?this._push(s.writeBytesBuffer,m,u):this};function a(d,u,m){for(var p=0;p{var yGo=x(T());/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var e=(function(){var o={};o.defaultNoDataValue=-34027999387901484e22,o.decode=function(u,m){m=m||{};var p=m.encodedMaskData||m.encodedMaskData===null,b=c(u,m.inputOffset||0,p),f=m.noDataValue!==null?m.noDataValue:o.defaultNoDataValue,y=r(b,m.pixelType||Float32Array,m.encodedMaskData,f,m.returnMask),_={width:b.width,height:b.height,pixelData:y.resultPixels,minValue:y.minValue,maxValue:b.pixels.maxValue,noDataValue:f};return y.resultMask&&(_.maskData=y.resultMask),m.returnEncodedMask&&b.mask&&(_.encodedMaskData=b.mask.bitset?b.mask.bitset:null),m.returnFileInfo&&(_.fileInfo=s(b),m.computeUsedBitDepths&&(_.fileInfo.bitDepths=a(b))),_};var r=function(u,m,p,b,f){var y=0,_=u.pixels.numBlocksX,S=u.pixels.numBlocksY,A=Math.floor(u.width/_),Z=Math.floor(u.height/S),R=2*u.maxZError,G=Number.MAX_VALUE,E;p=p||(u.mask?u.mask.bitset:null);var v,I;v=new m(u.width*u.height),f&&p&&(I=new Uint8Array(u.width*u.height));for(var X=new Float32Array(A*Z),Y,g,C=0;C<=S;C++){var V=C!==S?Z:u.height%S;if(V!==0)for(var L=0;L<=_;L++){var P=L!==_?A:u.width%_;if(P!==0){var N=C*u.width*Z+L*A,O=u.width-P,M=u.pixels.blocks[y],D,w,z;M.encoding<2?(M.encoding===0?D=M.rawData:(d(M.stuffedData,M.bitsPerPixel,M.numValidPixels,M.offset,R,X,u.pixels.maxValue),D=X),w=0):M.encoding===2?z=0:z=M.offset;var K;if(p)for(g=0;g>3],K<<=N&7),Y=0;Y>3]),K&128?(I&&(I[N]=1),E=M.encoding<2?D[w++]:z,G=G>E?E:G,v[N++]=E):(I&&(I[N]=0),v[N++]=b),K<<=1;N+=O}else if(M.encoding<2)for(g=0;gE?E:G,v[N++]=E;N+=O}else for(G=G>z?z:G,g=0;g0){var _=new Uint8Array(Math.ceil(b.width*b.height/8));y=new DataView(u,m,b.mask.numBytes);var S=y.getInt16(0,!0),A=2,Z=0;do{if(S>0)for(;S--;)_[Z++]=y.getUint8(A++);else{var R=y.getUint8(A++);for(S=-S;S--;)_[Z++]=R}S=y.getInt16(A,!0),A+=2}while(A0?1:0),I=E+(b.height%E>0?1:0);b.pixels.blocks=new Array(v*I);for(var X=0,Y=0;Y3)throw"Invalid block encoding ("+L.encoding+")";if(L.encoding===2){m++;continue}if(P!==0&&P!==2){if(P>>=6,L.offsetType=P,P===2)L.offset=y.getInt8(1),C++;else if(P===1)L.offset=y.getInt16(1,!0),C+=2;else if(P===0)L.offset=y.getFloat32(1,!0),C+=4;else throw"Invalid block offset type";if(L.encoding===1)if(P=y.getUint8(C),C++,L.bitsPerPixel=P&63,P>>=6,L.numValidPixelsType=P,P===2)L.numValidPixels=y.getUint8(C),C++;else if(P===1)L.numValidPixels=y.getUint16(C,!0),C+=2;else if(P===0)L.numValidPixels=y.getUint32(C,!0),C+=4;else throw"Invalid valid pixel count type"}if(m+=C,L.encoding!==3){var N,O;if(L.encoding===0){var M=(b.pixels.numBytes-1)/4;if(M!==Math.floor(M))throw"uncompressed block has invalid length";N=new ArrayBuffer(M*4),O=new Uint8Array(N),O.set(new Uint8Array(u,m,M*4));var D=new Float32Array(N);L.rawData=D,m+=M*4}else if(L.encoding===1){var w=Math.ceil(L.numValidPixels*L.bitsPerPixel/8),z=Math.ceil(w/4);N=new ArrayBuffer(z*4),O=new Uint8Array(N),O.set(new Uint8Array(u,m,w)),L.stuffedData=new Uint32Array(N),m+=w}}}return b.eofOffset=m,b},d=function(u,m,p,b,f,y,_){var S=(1<=m)G=E>>>R-m&S,R-=m;else{var X=m-R;G=(E&S)<>>R}y[Z]=G=u?(R=G>>>Z-u&_,Z-=u):(E=u-Z,R=(G&_)<>>Z),d[A]=p[R];else for(v=Math.ceil((y-b)/f),A=0;A=u?(R=G>>>Z-u&_,Z-=u):(E=u-Z,R=(G&_)<>>Z),d[A]=R=d?(Z=R>>>A-d&f,A-=d):(S=d-A,Z=(R&f)<>>A),G[_]=Z=u?(G=E>>>R&_,Z-=u,R+=u):(v=u-Z,G=E>>>R&_,E=c[S++],Z=32-v,G|=(E&(1<=u?(G=E>>>R&_,Z-=u,R+=u):(v=u-Z,G=E>>>R&_,E=c[S++],Z=32-v,G|=(E&(1<=d?(Z=G>>>R&f,A-=d,R+=d):(S=d-A,Z=G>>>R&f,G=c[y++],A=32-S,Z|=(G&(1<=u?(_=S>>>y-u&p,y-=u):(A=u-y,_=(S&p)<>>y),d[f]=_;return d},originalUnstuff2:function(c,d,u,m){var p=(1<=u?(S=A>>>_&p,y-=u,_+=u):(Z=u-y,S=A>>>_&p,A=c[b++],y=32-Z,S|=(A&(1<=359?359:p;p-=f;do d+=c[b++]<<8,u+=d+=c[b++];while(--f);d=(d&65535)+(d>>>16),u=(u&65535)+(u>>>16)}return m&1&&(u+=d+=c[b]<<8),d=(d&65535)+(d>>>16),u=(u&65535)+(u>>>16),(u<<16|d)>>>0},readHeaderInfo:function(c,d){var u=d.ptr,m=new Uint8Array(c,u,6),p={};if(p.fileIdentifierString=String.fromCharCode.apply(null,m),p.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+p.fileIdentifierString;u+=6;var b=new DataView(c,u,8),f=b.getInt32(0,!0);p.fileVersion=f,u+=4,f>=3&&(p.checksum=b.getUint32(4,!0),u+=4),b=new DataView(c,u,12),p.height=b.getUint32(0,!0),p.width=b.getUint32(4,!0),u+=8,f>=4?(p.numDims=b.getUint32(8,!0),u+=4):p.numDims=1,b=new DataView(c,u,40),p.numValidPixel=b.getUint32(0,!0),p.microBlockSize=b.getInt32(4,!0),p.blobSize=b.getInt32(8,!0),p.imageType=b.getInt32(12,!0),p.maxZError=b.getFloat64(16,!0),p.zMin=b.getFloat64(24,!0),p.zMax=b.getFloat64(32,!0),u+=40,d.headerInfo=p,d.ptr=u;var y,_;if(f>=3&&(_=f>=4?52:48,y=this.computeChecksumFletcher32(new Uint8Array(c,u-_,p.blobSize-14)),y!==p.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(c,d){var u=d.headerInfo,m=this.getDataTypeArray(u.imageType),p=u.numDims*this.getDataTypeSize(u.imageType),b=this.readSubArray(c,d.ptr,m,p),f=this.readSubArray(c,d.ptr+p,m,p);d.ptr+=2*p;var y,_=!0;for(y=0;y0){_=new Uint8Array(Math.ceil(p/8)),f=new DataView(c,u,y.numBytes);var A=f.getInt16(0,!0),Z=2,R=0,G=0;do{if(A>0)for(;A--;)_[R++]=f.getUint8(Z++);else for(G=f.getUint8(Z++),A=-A;A--;)_[R++]=G;A=f.getInt16(Z,!0),Z+=2}while(Z>3],E<<=v&7):E=_[v>>3],E&128&&(S[v]=1);d.pixels.resultMask=S,y.bitset=_,u+=y.numBytes}return d.ptr=u,d.mask=y,!0},readDataOneSweep:function(c,d,u){var m=d.ptr,p=d.headerInfo,b=p.numDims,f=p.width*p.height,y=p.imageType,_=p.numValidPixel*r.getDataTypeSize(y)*b,S,A=d.pixels.resultMask;if(u===Uint8Array)S=new Uint8Array(c,m,_);else{var Z=new ArrayBuffer(_),R=new Uint8Array(Z);R.set(new Uint8Array(c,m,_)),S=new u(Z)}if(S.length===f*b)d.pixels.resultPixels=S;else{d.pixels.resultPixels=new u(f*b);var G=0,E=0,v=0,I=0;if(b>1)for(v=0;v=y)return!1;var _=new Uint32Array(y-f);r.decodeBits(c,d,_);var S=[],A,Z,R,G;for(A=f;A0&&(S[Z].second=C<>>32-G,32-g>=G?(g+=G,g===32&&(g=0,V++,C=Y[V])):(g+=G-32,V++,C=Y[V],S[Z].second|=C>>>32-g));var L=0,P=0,N=new s;for(A=0;A=u?P=u:P=L,L>=30&&console.log("WARning, large NUM LUT BITS IS "+L);var O=[],M,D,w,z,K,ee;for(A=f;A0)if(M=[G,Z],G<=P)for(D=S[Z].second<=0;z--)K=D>>>z&1,K?(ee.right||(ee.right=new s),ee=ee.right):(ee.left||(ee.left=new s),ee=ee.left),z===0&&!ee.val&&(ee.val=M[1]);return{decodeLut:O,numBitsLUTQick:P,numBitsLUT:L,tree:N,stuffedData:Y,srcPtr:V,bitPos:g}},readHuffman:function(c,d,u){var m=d.headerInfo,p=m.numDims,b=d.headerInfo.height,f=d.headerInfo.width,y=f*b,_=this.readHuffmanTree(c,d),S=_.decodeLut,A=_.tree,Z=_.stuffedData,R=_.srcPtr,G=_.bitPos,E=_.numBitsLUTQick,v=_.numBitsLUT,I=d.headerInfo.imageType===0?128:0,X,Y,g,C=d.pixels.resultMask,V,L,P,N,O,M,D,w=0;G>0&&(R++,G=0);var z=Z[R],K=d.encodeMode===1,ee=new u(y*p),H=ee,te;for(te=0;te1&&(H=new u(ee.buffer,y*te,y),w=0),d.headerInfo.numValidPixel===f*b)for(M=0,N=0;N>>32-E,L=V,32-G>>64-G-E,L=V),S[L])Y=S[L][1],G+=S[L][0];else for(V=z<>>32-v,L=V,32-G>>64-G-v,L=V),X=A,D=0;D>>v-D-1&1,X=P?X.right:X.left,!(X.left||X.right)){Y=X.val,G=G+D+1;break}G>=32&&(G-=32,R++,z=Z[R]),g=Y-I,K?(O>0?g+=w:N>0?g+=H[M-f]:g+=w,g&=255,H[M]=g,w=g):H[M]=g}else for(M=0,N=0;N>>32-E,L=V,32-G>>64-G-E,L=V),S[L])Y=S[L][1],G+=S[L][0];else for(V=z<>>32-v,L=V,32-G>>64-G-v,L=V),X=A,D=0;D>>v-D-1&1,X=P?X.right:X.left,!(X.left||X.right)){Y=X.val,G=G+D+1;break}G>=32&&(G-=32,R++,z=Z[R]),g=Y-I,K?(O>0&&C[M-1]?g+=w:N>0&&C[M-f]?g+=H[M-f]:g+=w,g&=255,H[M]=g,w=g):H[M]=g}d.ptr=d.ptr+(R+1)*4+(G>0?4:0)}d.pixels.resultPixels=ee},decodeBits:function(c,d,u,m,p){{var b=d.headerInfo,f=b.fileVersion,y=0,_=new DataView(c,d.ptr,5),S=_.getUint8(0);y++;var A=S>>6,Z=A===0?4:3-A,R=(S&32)>0,G=S&31,E=0;if(Z===1)E=_.getUint8(y),y++;else if(Z===2)E=_.getUint16(y,!0),y+=2;else if(Z===4)E=_.getUint32(y,!0),y+=4;else throw"Invalid valid pixel count type";var v=2*b.maxZError,I,X,Y,g,C,V,L,P,N,O,M=b.numDims>1?b.maxValues[p]:b.zMax;if(R){for(d.counter.lut++,P=_.getUint8(y),N=G,y++,g=Math.ceil((P-1)*G/8),C=Math.ceil(g/4),X=new ArrayBuffer(C*4),Y=new Uint8Array(X),d.ptr+=y,Y.set(new Uint8Array(c,d.ptr,g)),L=new Uint32Array(X),d.ptr+=g,O=0;P-1>>>O;)O++;g=Math.ceil(E*O/8),C=Math.ceil(g/4),X=new ArrayBuffer(C*4),Y=new Uint8Array(X),Y.set(new Uint8Array(c,d.ptr,g)),I=new Uint32Array(X),d.ptr+=g,f>=3?V=o.unstuffLUT2(L,G,P-1,m,v,M):V=o.unstuffLUT(L,G,P-1,m,v,M),f>=3?o.unstuff2(I,u,O,E,V):o.unstuff(I,u,O,E,V)}else d.counter.bitstuffer++,O=G,d.ptr+=y,O>0&&(g=Math.ceil(E*O/8),C=Math.ceil(g/4),X=new ArrayBuffer(C*4),Y=new Uint8Array(X),Y.set(new Uint8Array(c,d.ptr,g)),I=new Uint32Array(X),d.ptr+=g,f>=3?m==null?o.originalUnstuff2(I,u,O,E):o.unstuff2(I,u,O,E,!1,m,v,M):m==null?o.originalUnstuff(I,u,O,E):o.unstuff(I,u,O,E,!1,m,v,M))}},readTiles:function(c,d,u){var m=d.headerInfo,p=m.width,b=m.height,f=m.microBlockSize,y=m.imageType,_=r.getDataTypeSize(y),S=Math.ceil(p/f),A=Math.ceil(b/f);d.pixels.numBlocksY=A,d.pixels.numBlocksX=S,d.pixels.ptr=0;var Z=0,R=0,G=0,E=0,v=0,I=0,X=0,Y=0,g=0,C=0,V=0,L=0,P=0,N=0,O=0,M=0,D,w,z,K,ee,H,te=new u(f*f),q=b%f||f,de=p%f||f,ye,le,Ce=m.numDims,ge,Ee=d.pixels.resultMask,Re=d.pixels.resultPixels;for(G=0;G1&&(Re=new u(d.pixels.resultPixels.buffer,p*b*ge*_,p*b)),X=c.byteLength-d.ptr,D=new DataView(c,d.ptr,Math.min(10,X)),w={},M=0,Y=D.getUint8(0),M++,g=Y>>6&255,C=Y>>2&15,C!==(E*f>>3&15))throw"integrity issue";if(H=Y&3,H>3)throw d.ptr+=M,"Invalid block encoding ("+H+")";if(H===2){d.counter.constant++,d.ptr+=M;continue}else if(H===0){if(d.counter.uncompressed++,d.ptr+=M,P=v*I*_,N=c.byteLength-d.ptr,P=P1)for(b=0;b=-128&&d<=127;break;case 1:u=d>=0&&d<=255;break;case 2:u=d>=-32768&&d<=32767;break;case 3:u=d>=0&&d<=65536;break;case 4:u=d>=-2147483648&&d<=2147483647;break;case 5:u=d>=0&&d<=4294967296;break;case 6:u=d>=-34027999387901484e22&&d<=34027999387901484e22;break;case 7:u=d>=5e-324&&d<=17976931348623157e292;break;default:u=!1}return u},getDataTypeSize:function(c){var d=0;switch(c){case 0:case 1:d=1;break;case 2:case 3:d=2;break;case 4:case 5:case 6:d=4;break;case 7:d=8;break;default:d=c}return d},getDataTypeUsed:function(c,d){var u=c;switch(c){case 2:case 4:u=c-d;break;case 3:case 5:u=c-2*d;break;case 6:d===0?u=c:d===1?u=2:u=1;break;case 7:d===0?u=c:u=c-2*d+1;break;default:u=c;break}return u},getOnePixel:function(c,d,u,m){var p=0;switch(u){case 0:p=m.getInt8(d);break;case 1:p=m.getUint8(d);break;case 2:p=m.getInt16(d,!0);break;case 3:p=m.getUint16(d,!0);break;case 4:p=m.getInt32(d,!0);break;case 5:p=m.getUInt32(d,!0);break;case 6:p=m.getFloat32(d,!0);break;case 7:p=m.getFloat64(d,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,d,u){this.val=c,this.left=d,this.right=u},a={decode:function(c,d){d=d||{};var u=d.noDataValue,m=0,p={};if(p.ptr=d.inputOffset||0,p.pixels={},!!r.readHeaderInfo(c,p)){var b=p.headerInfo,f=b.fileVersion,y=r.getDataTypeArray(b.imageType);r.readMask(c,p),b.numValidPixel!==b.width*b.height&&!p.pixels.resultMask&&(p.pixels.resultMask=d.maskData);var _=b.width*b.height;if(p.pixels.resultPixels=new y(_*b.numDims),p.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},b.numValidPixel!==0)if(b.zMax===b.zMin)r.constructConstantSurface(p);else if(f>=4&&r.checkMinMaxRanges(c,p))r.constructConstantSurface(p);else{var S=new DataView(c,p.ptr,2),A=S.getUint8(0);if(p.ptr++,A)r.readDataOneSweep(c,p,y);else if(f>1&&b.imageType<=1&&Math.abs(b.maxZError-.5)<1e-5){var Z=S.getUint8(1);if(p.ptr++,p.encodeMode=Z,Z>2||f<4&&Z>1)throw"Invalid Huffman flag "+Z;Z?r.readHuffman(c,p,y):r.readTiles(c,p,y)}else r.readTiles(c,p,y)}p.eofOffset=p.ptr;var R;d.inputOffset?(R=p.headerInfo.blobSize+d.inputOffset-p.ptr,Math.abs(R)>=1&&(p.eofOffset=d.inputOffset+p.headerInfo.blobSize)):(R=p.headerInfo.blobSize-p.ptr,Math.abs(R)>=1&&(p.eofOffset=p.headerInfo.blobSize));var G={width:b.width,height:b.height,pixelData:p.pixels.resultPixels,minValue:b.zMin,maxValue:b.zMax,validPixelCount:b.numValidPixel,dimCount:b.numDims,dimStats:{minValues:b.minValues,maxValues:b.maxValues},maskData:p.pixels.resultMask};if(p.pixels.resultMask&&r.isValidPixelValue(b.imageType,u)){var E=p.pixels.resultMask;for(m=0;m<_;m++)E[m]||(G.pixelData[m]=u);G.noDataValue=u}return p.noDataValue=u,d.returnFileInfo&&(G.fileInfo=r.formatFileInfo(p)),G}},getBandCount:function(c){var d=0,u=0,m={};for(m.ptr=0,m.pixels={};u1&&A.fileInfo.mask&&A.fileInfo.mask.numBytes>0&&f.push(A.maskData),m++,S.pixels.push(A.pixelData),S.statistics.push({minValue:A.minValue,maxValue:A.maxValue,noDataValue:A.noDataValue,dimStats:A.dimStats})}var Z,R,G;if(u>1&&f.length>1){for(G=S.width*S.height,S.bandMasks=f,_=new Uint8Array(G),_.set(f[0]),Z=1;Z{var Aqo=x(T());vve.exports={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}});var Pve=Qu((Zqo,Ive)=>{var Cqo=x(T()),{webm:nNt,mp4:iNt}=Fve(),qoe=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,$oe=()=>"wakeLock"in navigator,ere=class{constructor(){if(this.enabled=!1,$oe()){this._wakeLock=null;let t=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",t),document.addEventListener("fullscreenchange",t)}else qoe()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",nNt),this._addSourceToVideo(this.noSleepVideo,"mp4",iNt),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(t,n,i){var o=document.createElement("source");o.src=i,o.type=`video/${n}`,t.appendChild(o)}get isEnabled(){return this.enabled}enable(){return $oe()?navigator.wakeLock.request("screen").then(t=>{this._wakeLock=t,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(t=>{throw this.enabled=!1,console.error(`${t.name}, ${t.message}`),t}):qoe()?(this.disable(),console.warn(` + NoSleep enabled for older iOS devices. This can interrupt + active or long-running network requests from completing successfully. + See https://github.com/richtr/NoSleep.js/issues/15 for more details. + `),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(n=>(this.enabled=!0,n)).catch(n=>{throw this.enabled=!1,n})}disable(){$oe()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):qoe()?this.noSleepTimer&&(console.warn(` + NoSleep now disabled for older iOS devices. + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}};Ive.exports=ere});var RNt={};jve(RNt,{AlphaMode:()=>up,AlphaPipelineStage:()=>$2,AnchorPointDirect:()=>t2,AnchorPointIndirect:()=>n2,Animation:()=>S9,AnimationViewModel:()=>A9,Appearance:()=>_o,ApproximateTerrainHeights:()=>Vi,ArcGISTiledElevationTerrainProvider:()=>Rne,ArcGisBaseMapType:()=>kh,ArcGisMapServerImageryProvider:()=>hb,ArcGisMapService:()=>lu,ArcType:()=>ln,ArticulationStageType:()=>jc,AssociativeArray:()=>wt,Atmosphere:()=>u_,AtmospherePipelineStage:()=>F2,AttributeCompression:()=>cn,AttributeType:()=>kt,AutoExposure:()=>sM,AutomaticUniforms:()=>E0,Axis:()=>Xi,AxisAlignedBoundingBox:()=>nu,Azure2DImageryProvider:()=>PF,B3dmLoader:()=>y2,B3dmParser:()=>p2,BaseLayerPicker:()=>E9,BaseLayerPickerViewModel:()=>G9,BatchTable:()=>ZT,BatchTableHierarchy:()=>KT,BatchTexture:()=>Ll,BatchTexturePipelineStage:()=>eF,Billboard:()=>Go,BillboardCollection:()=>bu,BillboardGraphics:()=>Pc,BillboardLoadState:()=>Es,BillboardTexture:()=>xb,BillboardVisualizer:()=>UV,BingMapsGeocoderService:()=>Gne,BingMapsImageryProvider:()=>CF,BingMapsStyle:()=>RC,BlendEquation:()=>yc,BlendFunction:()=>Do,BlendOption:()=>Wi,BlendingState:()=>nn,BoundingRectangle:()=>it,BoundingSphere:()=>ue,BoundingSphereState:()=>Vt,BoundingVolumeSemantics:()=>xy,BoxEmitter:()=>Cie,BoxGeometry:()=>gc,BoxGeometryUpdater:()=>tv,BoxGraphics:()=>vT,BoxOutlineGeometry:()=>fh,BrdfLutGenerator:()=>ow,Buffer:()=>$e,BufferLoader:()=>e_,BufferPoint:()=>Gc,BufferPointCollection:()=>Rd,BufferPointMaterial:()=>qh,BufferPolygon:()=>Ls,BufferPolygonCollection:()=>Vd,BufferPolygonMaterial:()=>ef,BufferPolyline:()=>qa,BufferPolylineCollection:()=>Gd,BufferPolylineMaterial:()=>tf,BufferPrimitive:()=>Kr,BufferPrimitiveCollection:()=>zs,BufferPrimitiveMaterial:()=>Dl,BufferUsage:()=>Fe,CPUStylingPipelineStage:()=>oF,CallbackPositionProperty:()=>nv,CallbackProperty:()=>Rh,Camera:()=>Ao,CameraEventAggregator:()=>hM,CameraEventType:()=>qi,CameraFlightPath:()=>sw,Cartesian2:()=>k,Cartesian3:()=>h,Cartesian4:()=>ce,CartesianRectangle:()=>NC,Cartographic:()=>fe,CartographicGeocoderService:()=>Lne,CatmullRomSpline:()=>Wne,Cesium3DContentGroup:()=>HT,Cesium3DTile:()=>Fm,Cesium3DTileBatchTable:()=>Lh,Cesium3DTileColorBlendMode:()=>bd,Cesium3DTileContent:()=>Vie,Cesium3DTileContentFactory:()=>M_,Cesium3DTileContentState:()=>er,Cesium3DTileContentType:()=>ua,Cesium3DTileFeature:()=>Ds,Cesium3DTileFeatureTable:()=>Yh,Cesium3DTileOptimizationHint:()=>Em,Cesium3DTileOptimizations:()=>DP,Cesium3DTilePass:()=>tr,Cesium3DTilePassState:()=>qm,Cesium3DTilePointFeature:()=>Tb,Cesium3DTileRefine:()=>ar,Cesium3DTileStyle:()=>Cb,Cesium3DTileStyleEngine:()=>JP,Cesium3DTileVectorFeature:()=>Y_,Cesium3DTilesInspector:()=>V9,Cesium3DTilesInspectorViewModel:()=>R9,Cesium3DTilesTerrainData:()=>Rk,Cesium3DTilesTerrainGeometryProcessor:()=>tV,Cesium3DTilesTerrainProvider:()=>Yne,Cesium3DTilesVoxelProvider:()=>Gie,Cesium3DTileset:()=>ms,Cesium3DTilesetBaseTraversal:()=>tX,Cesium3DTilesetCache:()=>zP,Cesium3DTilesetGraphics:()=>wT,Cesium3DTilesetHeatmap:()=>HP,Cesium3DTilesetMetadata:()=>j_,Cesium3DTilesetMostDetailedTraversal:()=>qP,Cesium3DTilesetSkipTraversal:()=>oX,Cesium3DTilesetStatistics:()=>nf,Cesium3DTilesetTraversal:()=>Fa,Cesium3DTilesetVisualizer:()=>rX,CesiumInspector:()=>I9,CesiumInspectorViewModel:()=>F9,CesiumTerrainProvider:()=>VA,CesiumWidget:()=>Sk,Check:()=>No,CheckerboardMaterialProperty:()=>sR,CircleEmitter:()=>Dk,CircleGeometry:()=>Dne,CircleOutlineGeometry:()=>One,ClassificationModelDrawCommand:()=>AI,ClassificationPipelineStage:()=>tF,ClassificationPrimitive:()=>TZ,ClassificationType:()=>Kn,ClearCommand:()=>mi,ClippingPlane:()=>Os,ClippingPlaneCollection:()=>ss,ClippingPolygon:()=>nC,ClippingPolygonCollection:()=>Ih,Clock:()=>lf,ClockRange:()=>gs,ClockStep:()=>Io,ClockViewModel:()=>x9,CloudCollection:()=>Fie,CloudType:()=>cV,Color:()=>U,ColorBlendMode:()=>Jc,ColorGeometryInstanceAttribute:()=>qt,ColorMaterialProperty:()=>jt,Command:()=>Noe,ComponentDatatype:()=>J,Composite3DTileContent:()=>uv,CompositeEntityCollection:()=>P7,CompositeMaterialProperty:()=>cR,CompositePositionProperty:()=>tc,CompositeProperty:()=>nl,CompressedTextureBuffer:()=>QV,ComputeCommand:()=>Fl,ComputeEngine:()=>_N,ConditionsExpression:()=>ZP,ConeEmitter:()=>Pie,ConstantPositionProperty:()=>Al,ConstantProperty:()=>li,ConstantSpline:()=>S2,ContentMetadata:()=>IP,Context:()=>wS,ContextLimits:()=>Xt,CoplanarPolygonGeometry:()=>UX,CoplanarPolygonGeometryLibrary:()=>Lb,CoplanarPolygonOutlineGeometry:()=>vm,CornerType:()=>Ki,CorrelationGroup:()=>i2,CorridorGeometry:()=>tS,CorridorGeometryLibrary:()=>oo,CorridorGeometryUpdater:()=>fX,CorridorGraphics:()=>IT,CorridorOutlineGeometry:()=>hX,Credit:()=>Rt,CreditDisplay:()=>dw,CubeMap:()=>Ur,CubeMapFace:()=>aG,CubeMapPanorama:()=>xA,CubicRealPolynomial:()=>hT,CullFace:()=>Ii,CullingVolume:()=>Us,CumulusCloud:()=>Ku,CustomDataSource:()=>xX,CustomHeightmapTerrainProvider:()=>Bne,CustomShader:()=>c0,CustomShaderMode:()=>mb,CustomShaderPipelineStage:()=>uF,CustomShaderTranslucencyMode:()=>Fy,CylinderGeometry:()=>TX,CylinderGeometryLibrary:()=>nS,CylinderGeometryUpdater:()=>SX,CylinderGraphics:()=>PT,CylinderOutlineGeometry:()=>_X,CzmlDataSource:()=>vX,DataSource:()=>bs,DataSourceClock:()=>df,DataSourceCollection:()=>FX,DataSourceDisplay:()=>AY,DebugAppearance:()=>Xie,DebugCameraPrimitive:()=>$p,DebugInspector:()=>_M,DebugModelMatrixPrimitive:()=>Bk,DefaultProxy:()=>zne,DepthFunction:()=>Ha,DepthPlane:()=>yw,DequantizationPipelineStage:()=>hF,DerivedCommand:()=>e0,DeveloperError:()=>Te,DeviceOrientationCameraController:()=>xw,DirectionalLight:()=>Yie,DiscardEmptyTileImagePolicy:()=>VC,DiscardMissingTileImagePolicy:()=>AF,DistanceDisplayCondition:()=>Ut,DistanceDisplayConditionGeometryInstanceAttribute:()=>Bn,DoubleEndedPriorityQueue:()=>Ag,DoublyLinkedList:()=>BP,DracoLoader:()=>J0,DrawCommand:()=>at,DynamicAtmosphereLightingType:()=>tb,DynamicEnvironmentMapManager:()=>nb,DynamicGeometryBatch:()=>lS,DynamicGeometryUpdater:()=>Si,EarthOrientationParameters:()=>XV,EarthOrientationParametersSample:()=>Ng,EasingFunction:()=>xs,EdgeDetectionPipelineStage:()=>pF,EdgeDisplayMode:()=>xm,EdgeFramebuffer:()=>Rw,EdgeVisibilityPipelineStage:()=>yF,EllipseGeometry:()=>jl,EllipseGeometryLibrary:()=>vd,EllipseGeometryUpdater:()=>PX,EllipseGraphics:()=>XT,EllipseOutlineGeometry:()=>Vu,Ellipsoid:()=>ie,EllipsoidGeodesic:()=>I0,EllipsoidGeometry:()=>Pa,EllipsoidGeometryUpdater:()=>YX,EllipsoidGraphics:()=>YT,EllipsoidOutlineGeometry:()=>xu,EllipsoidPrimitive:()=>qN,EllipsoidRhumbLine:()=>xc,EllipsoidSurfaceAppearance:()=>Nie,EllipsoidTangentPlane:()=>As,EllipsoidTerrainProvider:()=>Jp,EllipsoidalOccluder:()=>af,Empty3DTileContent:()=>Sp,EncodedCartesian3:()=>Zn,Entity:()=>Oo,EntityCluster:()=>_u,EntityCollection:()=>Ia,EntityView:()=>CY,EquirectangularPanorama:()=>wie,Event:()=>Se,EventHelper:()=>Fr,Expression:()=>mm,ExpressionNodeType:()=>Lt,ExtrapolationType:()=>Au,FeatureDetection:()=>mn,FeatureIdPipelineStage:()=>vy,Fog:()=>Tw,ForEach:()=>ke,FrameRateMonitor:()=>Jk,FrameState:()=>_w,Framebuffer:()=>is,FramebufferManager:()=>Zi,Frozen:()=>B,FrustumCommands:()=>Vw,FrustumGeometry:()=>zS,FrustumOutlineGeometry:()=>hw,Fullscreen:()=>Mr,FullscreenButton:()=>X9,FullscreenButtonViewModel:()=>P9,GaussianSplat3DTileContent:()=>zy,GaussianSplatPrimitive:()=>FP,GaussianSplatRenderResources:()=>GP,GaussianSplatSorter:()=>N_,GaussianSplatTextureGenerator:()=>VP,GeoJsonDataSource:()=>px,GeoJsonLoader:()=>x2,GeoJsonPrimitive:()=>Die,GeocodeType:()=>Hx,Geocoder:()=>N9,GeocoderService:()=>oV,GeocoderViewModel:()=>Y9,GeographicProjection:()=>ki,GeographicTilingScheme:()=>Oi,Geometry:()=>Zt,Geometry3DTileContent:()=>fv,GeometryAttribute:()=>Pe,GeometryAttributes:()=>xn,GeometryFactory:()=>Hne,GeometryInstance:()=>Pt,GeometryInstanceAttribute:()=>Uc,GeometryOffsetAttribute:()=>hn,GeometryPipeline:()=>Un,GeometryPipelineStage:()=>SF,GeometryType:()=>om,GeometryUpdater:()=>Ai,GeometryUpdaterSet:()=>TS,GeometryVisualizer:()=>lY,GetFeatureInfoFormat:()=>Uh,Globe:()=>KN,GlobeDepth:()=>Gw,GlobeSurfaceShaderSet:()=>YN,GlobeSurfaceTile:()=>jm,GlobeSurfaceTileProvider:()=>wN,GlobeTranslucency:()=>MN,GlobeTranslucencyFramebuffer:()=>Ew,GlobeTranslucencyState:()=>Sw,GltfBufferViewLoader:()=>PZ,GltfDracoLoader:()=>XZ,GltfGpmLoader:()=>r2,GltfGpmLocal:()=>sC,GltfImageLoader:()=>YZ,GltfIndexBufferLoader:()=>NZ,GltfJsonLoader:()=>MZ,GltfLoader:()=>au,GltfLoaderUtil:()=>xd,GltfMeshPrimitiveGpmLoader:()=>l2,GltfSpzLoader:()=>Wv,GltfStructuralMetadataLoader:()=>$v,GltfTextureLoader:()=>OZ,GltfVertexBufferLoader:()=>BZ,Google2DImageryProvider:()=>IF,GoogleEarthEnterpriseImageryProvider:()=>Bie,GoogleEarthEnterpriseMapsProvider:()=>GF,GoogleEarthEnterpriseMetadata:()=>Vg,GoogleEarthEnterpriseTerrainData:()=>rV,GoogleEarthEnterpriseTerrainProvider:()=>eie,GoogleEarthEnterpriseTileInformation:()=>Gk,GoogleGeocoderService:()=>nie,GoogleMaps:()=>ca,GoogleStreetViewCubeMapPanoramaProvider:()=>zie,GpxDataSource:()=>WY,GregorianDate:()=>x0,GridImageryProvider:()=>Hie,GridMaterialProperty:()=>yR,GroundGeometryUpdater:()=>ei,GroundPolylineGeometry:()=>GT,GroundPolylinePrimitive:()=>_h,GroundPrimitive:()=>Tl,GroupMetadata:()=>iR,HeadingPitchRange:()=>Dm,HeadingPitchRoll:()=>bc,Heap:()=>WV,HeightReference:()=>st,HeightmapEncoding:()=>Km,HeightmapTerrainData:()=>vc,HeightmapTessellator:()=>A1,HermitePolynomialApproximation:()=>AX,HermiteSpline:()=>Ey,HilbertOrder:()=>WZ,HomeButton:()=>k9,HomeButtonViewModel:()=>M9,HorizontalOrigin:()=>Fi,I3SBuildingSceneLayerExplorer:()=>Hoe,I3SBuildingSceneLayerExplorerViewModel:()=>w9,I3SDataProvider:()=>Mf,I3SDecoder:()=>jk,I3SFeature:()=>Qk,I3SField:()=>qk,I3SGeometry:()=>lV,I3SLayer:()=>YA,I3SNode:()=>dV,I3SStatistics:()=>t9,I3SSublayer:()=>i9,I3SSymbology:()=>e9,I3dmLoader:()=>_2,I3dmParser:()=>T2,ITwinData:()=>Qie,ITwinPlatform:()=>Qs,Iau2000Orientation:()=>jN,Iau2006XysData:()=>YV,Iau2006XysSample:()=>uT,IauOrientationAxes:()=>QN,IauOrientationParameters:()=>JN,ImageBasedLighting:()=>zT,ImageBasedLightingPipelineStage:()=>P2,ImageMaterialProperty:()=>qg,Imagery:()=>XC,ImageryConfiguration:()=>FI,ImageryCoverage:()=>wC,ImageryFlags:()=>NF,ImageryInput:()=>MF,ImageryLayer:()=>us,ImageryLayerCollection:()=>q_,ImageryLayerFeatureInfo:()=>Mh,ImageryPipelineStage:()=>kF,ImageryProvider:()=>du,ImageryState:()=>On,Implicit3DTileContent:()=>jZ,ImplicitAvailabilityBitstream:()=>FZ,ImplicitMetadataView:()=>IZ,ImplicitSubdivisionScheme:()=>Rs,ImplicitSubtree:()=>q0,ImplicitSubtreeCache:()=>kk,ImplicitSubtreeMetadata:()=>bv,ImplicitTileCoordinates:()=>Cp,ImplicitTileset:()=>Zp,IndexDatatype:()=>De,InfoBox:()=>B9,InfoBoxViewModel:()=>O9,InspectorShared:()=>Jd,InstanceAttributeSemantic:()=>Ar,InstancingPipelineStage:()=>J2,InterpolationAlgorithm:()=>oie,InterpolationType:()=>Xh,Intersect:()=>Qt,IntersectionTests:()=>di,Intersections2D:()=>Pf,Interval:()=>kr,InvertClassification:()=>Y1,Ion:()=>Gh,IonGeocodeProviderType:()=>Gg,IonGeocoderService:()=>EA,IonImageryProvider:()=>Nl,IonImageryProviderFactory:()=>IC,IonResource:()=>os,IonWorldImageryStyle:()=>pb,Iso8601:()=>qe,JobScheduler:()=>Aw,JobType:()=>Zc,JsonMetadataTable:()=>ib,JulianDate:()=>Q,KTX2Transcoder:()=>qV,KeyboardEventModifier:()=>fr,KeyframeNode:()=>Xo,KmlCamera:()=>vY,KmlDataSource:()=>FS,KmlLookAt:()=>mN,KmlTour:()=>hN,KmlTourFlyTo:()=>pN,KmlTourWait:()=>bN,Label:()=>My,LabelCollection:()=>Tp,LabelGraphics:()=>Ah,LabelStyle:()=>cr,LabelVisualizer:()=>dY,LagrangePolynomialApproximation:()=>ZX,LeapSecond:()=>ao,Light:()=>qie,LightingModel:()=>gp,LightingPipelineStage:()=>DF,LinearApproximation:()=>oS,LinearSpline:()=>Gy,MVTDataProvider:()=>roe,ManagedArray:()=>El,MapMode2D:()=>ed,MapProjection:()=>cie,MapboxImageryProvider:()=>EF,MapboxStyleImageryProvider:()=>soe,MappedPositions:()=>wF,Material:()=>Di,MaterialAppearance:()=>bo,MaterialPipelineStage:()=>HF,MaterialProperty:()=>sr,Math:()=>W,Matrix2:()=>Ui,Matrix3:()=>$,Matrix4:()=>F,Megatexture:()=>JM,MeshPrimitiveGpmLocal:()=>c2,MetadataClass:()=>Fh,MetadataClassProperty:()=>cp,MetadataComponentType:()=>It,MetadataEntity:()=>Dn,MetadataEnum:()=>Iv,MetadataEnumValue:()=>Fv,MetadataPicking:()=>Zw,MetadataPickingPipelineStage:()=>hu,MetadataPipelineStage:()=>Tm,MetadataSchema:()=>Wl,MetadataSchemaLoader:()=>gy,MetadataSemantic:()=>bm,MetadataTable:()=>hm,MetadataTableProperty:()=>yv,MetadataType:()=>pt,MipmapHint:()=>am,Model:()=>fu,Model3DTileContent:()=>pu,ModelAlphaOptions:()=>A_,ModelAnimation:()=>R2,ModelAnimationChannel:()=>C2,ModelAnimationCollection:()=>V2,ModelAnimationLoop:()=>Td,ModelAnimationState:()=>Nh,ModelArticulation:()=>Y2,ModelArticulationStage:()=>X2,ModelClippingPlanesPipelineStage:()=>M2,ModelClippingPolygonsPipelineStage:()=>D2,ModelColorPipelineStage:()=>Wy,ModelComponents:()=>Sn,ModelDrawCommand:()=>CI,ModelDrawCommands:()=>GI,ModelFeature:()=>G2,ModelFeatureTable:()=>E2,ModelGraphics:()=>w0,ModelImagery:()=>II,ModelImageryMapping:()=>T_,ModelLightingOptions:()=>TI,ModelMatrixUpdateStage:()=>j2,ModelNode:()=>O2,ModelPrimitiveImagery:()=>__,ModelReader:()=>sa,ModelRenderResources:()=>hI,ModelRuntimeNode:()=>q2,ModelRuntimePrimitive:()=>lI,ModelSceneGraph:()=>EI,ModelSilhouettePipelineStage:()=>bI,ModelSkin:()=>dI,ModelSplitterPipelineStage:()=>yI,ModelStatistics:()=>LI,ModelType:()=>Wr,ModelUtility:()=>bt,ModelVisualizer:()=>uY,Moon:()=>ew,MorphTargetsPipelineStage:()=>JF,MorphWeightSpline:()=>lie,MortonOrder:()=>Jy,Multiple3DTileContent:()=>YP,MultisampleFramebuffer:()=>u2,NavigationHelpButton:()=>D9,NavigationHelpButtonViewModel:()=>U9,NearFarScalar:()=>Bt,NeverTileDiscardPolicy:()=>coe,NodeRenderResources:()=>xI,NodeStatisticsPipelineStage:()=>Q2,NodeTransformationProperty:()=>NT,OIT:()=>Ww,Occluder:()=>tw,OffsetGeometryInstanceAttribute:()=>fo,OpenCageGeocoderService:()=>uie,OpenStreetMapImageryProvider:()=>Wg,OrderedGroundPrimitiveCollection:()=>IX,OrientedBoundingBox:()=>en,OrthographicFrustum:()=>fn,OrthographicOffCenterFrustum:()=>rs,Packable:()=>mie,PackableForInterpolation:()=>hie,Panorama:()=>loe,PanoramaProvider:()=>doe,Particle:()=>pV,ParticleBurst:()=>moe,ParticleEmitter:()=>hoe,ParticleSystem:()=>foe,Pass:()=>Le,PassState:()=>sl,PathGraphics:()=>M0,PathMode:()=>Db,PathVisualizer:()=>pY,PeliasGeocoderService:()=>Ek,PerInstanceColorAppearance:()=>pn,PerformanceDisplay:()=>hg,PerformanceWatchdog:()=>H9,PerformanceWatchdogViewModel:()=>z9,PerspectiveFrustum:()=>Mi,PerspectiveOffCenterFrustum:()=>$l,PickDepth:()=>Cw,PickDepthFramebuffer:()=>Fw,PickFramebuffer:()=>Iw,PickId:()=>SN,PickedMetadataInfo:()=>tk,Picking:()=>Mw,PickingPipelineStage:()=>jF,PinBuilder:()=>ng,PixelDatatype:()=>ze,PixelFormat:()=>Qe,Plane:()=>sn,PlaneGeometry:()=>NX,PlaneGeometryUpdater:()=>MX,PlaneGraphics:()=>KW,PlaneOutlineGeometry:()=>wX,PntsLoader:()=>vI,PntsParser:()=>R_,PointCloud:()=>Tk,PointCloudEyeDomeLighting:()=>rb,PointCloudShading:()=>hp,PointCloudStylingPipelineStage:()=>qF,PointGraphics:()=>MT,PointPrimitive:()=>pa,PointPrimitiveCollection:()=>hR,PointVisualizer:()=>gY,PolygonGeometry:()=>eb,PolygonGeometryLibrary:()=>jn,PolygonGeometryUpdater:()=>OX,PolygonGraphics:()=>Zh,PolygonHierarchy:()=>Tc,PolygonOutlineGeometry:()=>DX,PolygonPipeline:()=>ri,Polyline:()=>Zm,PolylineArrowMaterialProperty:()=>TR,PolylineCollection:()=>Kh,PolylineColorAppearance:()=>Zs,PolylineDashMaterialProperty:()=>SR,PolylineGeometry:()=>tg,PolylineGeometryUpdater:()=>TY,PolylineGlowMaterialProperty:()=>ZR,PolylineGraphics:()=>Dc,PolylineMaterialAppearance:()=>Ka,PolylineOutlineMaterialProperty:()=>ix,PolylinePipeline:()=>Hi,PolylineVisualizer:()=>SY,PolylineVolumeGeometry:()=>HX,PolylineVolumeGeometryLibrary:()=>of,PolylineVolumeGeometryUpdater:()=>QX,PolylineVolumeGraphics:()=>kT,PolylineVolumeOutlineGeometry:()=>jX,PositionProperty:()=>Sh,PositionPropertyArray:()=>Bb,PostProcessStage:()=>Wo,PostProcessStageCollection:()=>lM,PostProcessStageComposite:()=>Ud,PostProcessStageLibrary:()=>Mu,PostProcessStageSampleMode:()=>wu,PostProcessStageTextureCache:()=>rA,PpeMetadata:()=>a2,PpeSource:()=>Ioe,PpeTexture:()=>s2,Primitive:()=>Wn,PrimitiveCollection:()=>Jl,PrimitiveLoadPlan:()=>p_,PrimitiveOutlineGenerator:()=>f_,PrimitiveOutlinePipelineStage:()=>tI,PrimitivePipeline:()=>CT,PrimitiveRenderResources:()=>_I,PrimitiveState:()=>Or,PrimitiveStatisticsPipelineStage:()=>nI,PrimitiveType:()=>ve,ProjectionPicker:()=>J9,ProjectionPickerViewModel:()=>K9,Property:()=>j,PropertyArray:()=>RR,PropertyAttribute:()=>m_,PropertyAttributeProperty:()=>Jv,PropertyBag:()=>Cl,PropertyTable:()=>Il,PropertyTexture:()=>ob,PropertyTextureProperty:()=>Kv,ProviderViewModel:()=>ir,Proxy:()=>fie,QuadraticRealPolynomial:()=>yl,QuadtreeOccluders:()=>kN,QuadtreePrimitive:()=>HN,QuadtreeTile:()=>UN,QuadtreeTileLoadState:()=>Na,QuadtreeTileProvider:()=>boe,QuantizedMeshTerrainData:()=>RA,QuarticRealPolynomial:()=>tG,Quaternion:()=>Ne,QuaternionSpline:()=>Z2,Queue:()=>Sy,Ray:()=>_n,Rectangle:()=>se,RectangleCollisionChecker:()=>SS,RectangleGeometry:()=>fS,RectangleGeometryLibrary:()=>ha,RectangleGeometryUpdater:()=>qX,RectangleGraphics:()=>Ch,RectangleOutlineGeometry:()=>D_,ReferenceFrame:()=>Pi,ReferenceProperty:()=>zb,RenderState:()=>Be,Renderbuffer:()=>cu,RenderbufferFormat:()=>Yl,Request:()=>gr,RequestErrorEvent:()=>zf,RequestScheduler:()=>Nc,RequestState:()=>pi,RequestType:()=>ws,Resource:()=>We,ResourceCache:()=>Li,ResourceCacheKey:()=>vl,ResourceCacheStatistics:()=>Yv,ResourceLoader:()=>zi,ResourceLoaderState:()=>Tt,Rotation:()=>Ym,RuntimeError:()=>ae,S2Cell:()=>z0,SDFSettings:()=>Wa,SampledPositionProperty:()=>ic,SampledProperty:()=>Cu,Sampler:()=>Ht,ScaledPositionProperty:()=>Fp,Scene:()=>ik,SceneFramebuffer:()=>qS,SceneMode:()=>re,SceneMode2DPipelineStage:()=>iI,SceneModePicker:()=>eU,SceneModePickerViewModel:()=>$9,SceneTransforms:()=>no,SceneTransitioner:()=>mM,ScreenSpaceCameraController:()=>bM,ScreenSpaceEventHandler:()=>Uu,ScreenSpaceEventType:()=>En,SelectedFeatureIdPipelineStage:()=>Iy,SelectionIndicator:()=>iU,SelectionIndicatorViewModel:()=>nU,SensorVolumePortionToDisplay:()=>LR,ShaderBuilder:()=>gb,ShaderCache:()=>AN,ShaderDestination:()=>pe,ShaderFunction:()=>mI,ShaderProgram:()=>tn,ShaderSource:()=>He,ShaderStruct:()=>uI,ShadowMap:()=>bg,ShadowMapShader:()=>i0,ShadowMode:()=>Gn,ShadowVolumeAppearance:()=>iu,SharedContext:()=>VN,ShowGeometryInstanceAttribute:()=>Vn,Simon1994PlanetaryPositions:()=>Gx,SimplePolylineGeometry:()=>pie,SingleTileImageryProvider:()=>LF,SkinningPipelineStage:()=>rI,SkyAtmosphere:()=>sk,SkyBox:()=>uk,SpatialNode:()=>QM,Spdcf:()=>o2,SpecularEnvironmentCubeMap:()=>Vh,SphereEmitter:()=>yoe,SphereGeometry:()=>Wk,SphereOutlineGeometry:()=>vb,Spherical:()=>CX,Spline:()=>So,SplitDirection:()=>Gr,Splitter:()=>K1,StaticGeometryColorBatch:()=>km,StaticGeometryPerMaterialBatch:()=>Um,StaticGroundGeometryColorBatch:()=>jR,StaticGroundGeometryPerMaterialBatch:()=>cY,StaticGroundPolylinePerMaterialBatch:()=>_Y,StaticOutlineGeometryBatch:()=>$R,StencilConstants:()=>Kt,StencilFunction:()=>Jn,StencilOperation:()=>Gt,SteppedSpline:()=>A2,Stereographic:()=>Kc,StorageType:()=>Zy,StripeMaterialProperty:()=>GR,StripeOrientation:()=>uf,StructuralMetadata:()=>Va,StyleCommandsNeeded:()=>wh,StyleExpression:()=>xoe,Sun:()=>gk,SunLight:()=>dg,SunPostProcess:()=>xM,SupportedImageFormats:()=>e2,SvgPathBindingHandler:()=>g9,Sync:()=>GN,TaskProcessor:()=>Hn,Terrain:()=>u9,TerrainData:()=>wd,TerrainEncoding:()=>hr,TerrainFillMesh:()=>G1,TerrainMesh:()=>cc,TerrainOffsetProperty:()=>UT,TerrainPicker:()=>FN,TerrainProvider:()=>Mo,TerrainQuantization:()=>Ya,TerrainState:()=>Lo,Texture:()=>Ft,Texture3D:()=>EN,TextureAtlas:()=>V_,TextureCache:()=>ZN,TextureMagnificationFilter:()=>qn,TextureManager:()=>CM,TextureMinificationFilter:()=>Dt,TexturePacker:()=>UC,TextureUniform:()=>VM,TextureWrap:()=>an,TileAvailability:()=>If,TileBoundingRegion:()=>yu,TileBoundingS2Cell:()=>kP,TileBoundingSphere:()=>Fb,TileBoundingVolume:()=>Toe,TileCoordinatesImageryProvider:()=>h9,TileDiscardPolicy:()=>Soe,TileEdge:()=>Rn,TileImagery:()=>YC,TileMapServiceImageryProvider:()=>Py,TileMetadata:()=>PP,TileOrientedBoundingBox:()=>Ed,TileProviderError:()=>Bo,TileReplacementQueue:()=>DN,TileSelectionResult:()=>ai,TileState:()=>Aoe,Tileset3DTileContent:()=>YI,TilesetMetadata:()=>UP,TilesetPipelineStage:()=>L2,TilingScheme:()=>gie,TimeConstants:()=>si,TimeDynamicImagery:()=>x_,TimeDynamicPointCloud:()=>j1,TimeInterval:()=>Tn,TimeIntervalCollection:()=>ps,TimeIntervalCollectionPositionProperty:()=>Hb,TimeIntervalCollectionProperty:()=>Kb,TimeStandard:()=>ii,Timeline:()=>q9,TimelineHighlightRange:()=>j9,TimelineTrack:()=>Q9,Tipsify:()=>nG,ToggleButtonViewModel:()=>Qx,Tonemapper:()=>yg,TrackingReferenceFrame:()=>F0,Transforms:()=>xt,TranslationRotationScale:()=>$g,TranslucentTileClassification:()=>Xw,TridiagonalSystemSolver:()=>fC,TrustedServers:()=>eZ,TweenCollection:()=>lA,UniformState:()=>RN,UniformType:()=>a0,UrlTemplate3DTilesDataProvider:()=>r9,UrlTemplateImageryProvider:()=>ds,VERSION:()=>CNt,VRButton:()=>rU,VRButtonViewModel:()=>oU,VRTheWorldTerrainProvider:()=>yie,VaryingType:()=>Foe,Vector3DTileBatch:()=>ap,Vector3DTileClampedPolylines:()=>rP,Vector3DTileContent:()=>aP,Vector3DTileGeometry:()=>B0,Vector3DTilePoints:()=>qI,Vector3DTilePolygons:()=>$I,Vector3DTilePolylines:()=>I_,Vector3DTilePrimitive:()=>QT,VectorGltf3DTileContent:()=>By,VelocityOrientationProperty:()=>VX,VelocityVectorProperty:()=>Jb,VertexArray:()=>wn,VertexArrayFacade:()=>yb,VertexAttributeSemantic:()=>ct,VertexFormat:()=>Me,VerticalExaggeration:()=>co,VerticalExaggerationPipelineStage:()=>aI,VerticalOrigin:()=>kn,VideoSynchronizer:()=>xie,View:()=>tA,Viewer:()=>ire,ViewportQuad:()=>Zoe,Visibility:()=>Nr,Visualizer:()=>nee,VoxelBoundsCollection:()=>_g,VoxelBoxShape:()=>pA,VoxelCell:()=>SM,VoxelContent:()=>fA,VoxelCylinderShape:()=>bA,VoxelEllipsoidShape:()=>gA,VoxelInspector:()=>aU,VoxelInspectorViewModel:()=>sU,VoxelMetadataOrder:()=>l0,VoxelPrimitive:()=>Ux,VoxelProvider:()=>Roe,VoxelRenderResources:()=>DM,VoxelShape:()=>Voe,VoxelShapeType:()=>uc,VoxelTraversal:()=>qM,VulkanConstants:()=>Tie,WallGeometry:()=>eY,WallGeometryLibrary:()=>pS,WallGeometryUpdater:()=>iY,WallGraphics:()=>k0,WallOutlineGeometry:()=>nY,WebGLConstants:()=>ne,WebMapServiceImageryProvider:()=>vF,WebMapTileServiceImageryProvider:()=>FF,WebMercatorProjection:()=>ui,WebMercatorTilingScheme:()=>Zr,WindingOrder:()=>ks,WireframeIndexGenerator:()=>MC,WireframePipelineStage:()=>cI,_shadersAcesTonemappingStage:()=>kw,_shadersAdditiveBlend:()=>gM,_shadersAdjustTranslucentFS:()=>N1,_shadersAllMaterialAppearanceFS:()=>BV,_shadersAllMaterialAppearanceVS:()=>zV,_shadersAmbientOcclusionGenerate:()=>Uw,_shadersAmbientOcclusionModulate:()=>Dw,_shadersAspectRampMaterial:()=>mG,_shadersAtmosphereCommon:()=>Ph,_shadersAtmosphereStageFS:()=>W2,_shadersAtmosphereStageVS:()=>v2,_shadersBasicMaterialAppearanceFS:()=>HV,_shadersBasicMaterialAppearanceVS:()=>KV,_shadersBillboardCollectionFS:()=>NI,_shadersBillboardCollectionVS:()=>wI,_shadersBlackAndWhite:()=>Ow,_shadersBloomComposite:()=>Bw,_shadersBrdfLutGeneratorFS:()=>nw,_shadersBrightPass:()=>yM,_shadersBrightness:()=>zw,_shadersBufferPointMaterialFS:()=>dP,_shadersBufferPointMaterialVS:()=>lP,_shadersBufferPolygonMaterialFS:()=>bP,_shadersBufferPolygonMaterialVS:()=>pP,_shadersBufferPolylineMaterialFS:()=>TP,_shadersBufferPolylineMaterialVS:()=>xP,_shadersBumpMapMaterial:()=>hG,_shadersCPUStylingStageFS:()=>iF,_shadersCPUStylingStageVS:()=>nF,_shadersCheckerboardMaterial:()=>fG,_shadersCloudCollectionFS:()=>Pk,_shadersCloudCollectionVS:()=>Xk,_shadersCloudNoiseFS:()=>Yk,_shadersCloudNoiseVS:()=>Nk,_shadersCompareAndPackTranslucentDepth:()=>Pw,_shadersCompositeOITFS:()=>Lw,_shadersCompositeTranslucentClassification:()=>eA,_shadersComputeIrradianceFS:()=>Dv,_shadersComputeRadianceMapFS:()=>Ov,_shadersConstantLodStageFS:()=>zF,_shadersConstantLodStageVS:()=>BF,_shadersContrastBias:()=>Hw,_shadersConvolveSpecularMapFS:()=>Bv,_shadersConvolveSpecularMapVS:()=>zv,_shadersCubeMapPanoramaVS:()=>lk,_shadersCustomShaderStageFS:()=>sF,_shadersCustomShaderStageVS:()=>rF,_shadersCzmBuiltins:()=>AT,_shadersDepthOfField:()=>Kw,_shadersDepthPlaneFS:()=>fw,_shadersDepthPlaneVS:()=>pw,_shadersDepthView:()=>Jw,_shadersDepthViewPacked:()=>voe,_shadersDotMaterial:()=>pG,_shadersEdgeDetection:()=>jw,_shadersEdgeDetectionStageFS:()=>fF,_shadersEdgeVisibilityStageFS:()=>bF,_shadersEdgeVisibilityStageVS:()=>gF,_shadersElevationBandMaterial:()=>bG,_shadersElevationContourMaterial:()=>gG,_shadersElevationRampMaterial:()=>yG,_shadersEllipsoidFS:()=>L1,_shadersEllipsoidSurfaceAppearanceFS:()=>zk,_shadersEllipsoidSurfaceAppearanceVS:()=>Hk,_shadersEllipsoidVS:()=>W1,_shadersFXAA:()=>$w,_shadersFXAA3_11:()=>rM,_shadersFadeMaterial:()=>xG,_shadersFeatureIdStageFS:()=>aF,_shadersFeatureIdStageVS:()=>cF,_shadersFilmicTonemapping:()=>Qw,_shadersGaussianBlur1D:()=>wx,_shadersGeometryStageFS:()=>xF,_shadersGeometryStageVS:()=>TF,_shadersGlobeFS:()=>PN,_shadersGlobeVS:()=>XN,_shadersGridMaterial:()=>TG,_shadersGroundAtmosphere:()=>C1,_shadersHSBToRGB:()=>PE,_shadersHSLToRGB:()=>XE,_shadersImageBasedLightingStageFS:()=>I2,_shadersInstancingStageCommon:()=>B2,_shadersInstancingStageVS:()=>z2,_shadersIntersectBox:()=>PM,_shadersIntersectCylinder:()=>XM,_shadersIntersectDepth:()=>FM,_shadersIntersectEllipsoid:()=>YM,_shadersIntersectLongitude:()=>O1,_shadersIntersectPlane:()=>IM,_shadersIntersection:()=>hA,_shadersIntersectionUtils:()=>vM,_shadersLegacyInstancingStageVS:()=>H2,_shadersLensFlare:()=>eM,_shadersLightingStageFS:()=>UF,_shadersMaterialStageFS:()=>OF,_shadersMegatexture:()=>UM,_shadersMetadataStageFS:()=>lF,_shadersMetadataStageVS:()=>dF,_shadersModelClippingPlanesStageFS:()=>w2,_shadersModelClippingPolygonsStageFS:()=>U2,_shadersModelClippingPolygonsStageVS:()=>k2,_shadersModelColorStageFS:()=>N2,_shadersModelFS:()=>VI,_shadersModelSilhouetteStageFS:()=>fI,_shadersModelSilhouetteStageVS:()=>pI,_shadersModelSplitterStageFS:()=>gI,_shadersModelVS:()=>RI,_shadersModifiedReinhardTonemapping:()=>tM,_shadersMorphTargetsStageVS:()=>KF,_shadersNightVision:()=>nM,_shadersNormalMapMaterial:()=>_G,_shadersOctree:()=>kM,_shadersPassThrough:()=>kd,_shadersPassThroughDepth:()=>Xx,_shadersPbrNeutralTonemapping:()=>qw,_shadersPerInstanceColorAppearanceFS:()=>vG,_shadersPerInstanceColorAppearanceVS:()=>FG,_shadersPerInstanceFlatColorAppearanceFS:()=>_T,_shadersPerInstanceFlatColorAppearanceVS:()=>IG,_shadersPointCloudEyeDomeLighting:()=>h2,_shadersPointCloudStylingStageVS:()=>QF,_shadersPointPrimitiveCollectionFS:()=>nx,_shadersPointPrimitiveCollectionVS:()=>pX,_shadersPolygonSignedDistanceFS:()=>Uv,_shadersPolylineArrowMaterial:()=>SG,_shadersPolylineColorAppearanceVS:()=>PW,_shadersPolylineCommon:()=>Sl,_shadersPolylineDashMaterial:()=>AG,_shadersPolylineFS:()=>LT,_shadersPolylineGlowMaterial:()=>ZG,_shadersPolylineMaterialAppearanceVS:()=>XW,_shadersPolylineOutlineMaterial:()=>CG,_shadersPolylineShadowVolumeFS:()=>WW,_shadersPolylineShadowVolumeMorphFS:()=>vW,_shadersPolylineShadowVolumeMorphVS:()=>FW,_shadersPolylineShadowVolumeVS:()=>IW,_shadersPolylineVS:()=>zI,_shadersPrimitiveGaussianSplatFS:()=>LP,_shadersPrimitiveGaussianSplatVS:()=>EP,_shadersPrimitiveOutlineStageFS:()=>eI,_shadersPrimitiveOutlineStageVS:()=>$F,_shadersRGBToHSB:()=>YE,_shadersRGBToHSL:()=>NE,_shadersRGBToXYZ:()=>wE,_shadersReinhardTonemapping:()=>iM,_shadersReprojectWebMercatorFS:()=>XF,_shadersReprojectWebMercatorVS:()=>YF,_shadersRimLightingMaterial:()=>RG,_shadersSelectedFeatureIdStageCommon:()=>AC,_shadersShadowVolumeAppearanceFS:()=>yZ,_shadersShadowVolumeAppearanceVS:()=>_W,_shadersShadowVolumeFS:()=>Jg,_shadersSilhouette:()=>oM,_shadersSkinningStageVS:()=>oI,_shadersSkyAtmosphereCommon:()=>B1,_shadersSkyAtmosphereFS:()=>ok,_shadersSkyAtmosphereVS:()=>rk,_shadersSkyBoxFS:()=>ak,_shadersSkyBoxVS:()=>ck,_shadersSlopeRampMaterial:()=>VG,_shadersStripeMaterial:()=>GG,_shadersSunFS:()=>mk,_shadersSunTextureFS:()=>hk,_shadersSunVS:()=>fk,_shadersTexturedMaterialAppearanceFS:()=>JV,_shadersTexturedMaterialAppearanceVS:()=>jV,_shadersVector3DTileClampedPolylinesFS:()=>iP,_shadersVector3DTileClampedPolylinesVS:()=>nP,_shadersVector3DTilePolylinesVS:()=>eP,_shadersVectorTileVS:()=>LZ,_shadersVerticalExaggerationStageVS:()=>sI,_shadersViewportQuadFS:()=>wk,_shadersViewportQuadVS:()=>YS,_shadersVoxelFS:()=>LM,_shadersVoxelUtils:()=>EM,_shadersVoxelVS:()=>WM,_shadersWater:()=>LG,_shadersWaterMaskMaterial:()=>EG,_shadersXYZToRGB:()=>ME,_shadersacesTonemapping:()=>kE,_shadersalphaWeight:()=>UE,_shadersantialias:()=>DE,_shadersapplyHSBShift:()=>OE,_shadersapproximateSphericalCoordinates:()=>BE,_shadersapproximateTanh:()=>zE,_shadersbackFacing:()=>HE,_shadersbranchFreeTernary:()=>KE,_shaderscascadeColor:()=>JE,_shaderscascadeDistance:()=>jE,_shaderscascadeMatrix:()=>QE,_shaderscascadeWeights:()=>qE,_shadersclipPolygons:()=>$E,_shaderscolumbusViewMorph:()=>eL,_shaderscomputeAtmosphereColor:()=>tL,_shaderscomputeGroundAtmosphereScattering:()=>nL,_shaderscomputePosition:()=>iL,_shaderscomputeScattering:()=>oL,_shaderscomputeTextureTransform:()=>rL,_shadersconvertLocalToBoxUv:()=>NM,_shadersconvertLocalToCylinderUv:()=>wM,_shadersconvertLocalToEllipsoidUv:()=>MM,_shaderscosineAndSine:()=>sL,_shadersdecodeRGB8:()=>aL,_shadersdecompressTextureCoordinates:()=>cL,_shadersdegreesPerRadian:()=>MG,_shadersdepthClamp:()=>lL,_shadersdepthRange:()=>kG,_shadersdepthRangeStruct:()=>VE,_shaderseastNorthUpToEyeCoordinates:()=>dL,_shadersellipsoidContainsPoint:()=>uL,_shadersellipsoidTextureCoordinates:()=>mL,_shadersepsilon1:()=>UG,_shadersepsilon2:()=>DG,_shadersepsilon3:()=>OG,_shadersepsilon4:()=>BG,_shadersepsilon5:()=>zG,_shadersepsilon6:()=>HG,_shadersepsilon7:()=>KG,_shadersequalsEpsilon:()=>hL,_shaderseyeOffset:()=>fL,_shaderseyeToWindowCoordinates:()=>pL,_shadersfastApproximateAtan:()=>bL,_shadersfog:()=>gL,_shadersgammaCorrect:()=>yL,_shadersgeodeticSurfaceNormal:()=>xL,_shadersgetDefaultMaterial:()=>TL,_shadersgetDynamicAtmosphereLightDirection:()=>_L,_shadersgetLambertDiffuse:()=>SL,_shadersgetSpecular:()=>AL,_shadersgetWaterNoise:()=>ZL,_shadershue:()=>CL,_shadersinfinity:()=>JG,_shadersinverseGamma:()=>RL,_shadersisEmpty:()=>VL,_shadersisFull:()=>GL,_shaderslatitudeToWebMercatorFraction:()=>EL,_shaderslineDistance:()=>LL,_shaderslinearToSrgb:()=>WL,_shadersluminance:()=>vL,_shadersmaterial:()=>GE,_shadersmaterialInput:()=>EE,_shadersmaximumComponent:()=>FL,_shadersmetersPerPixel:()=>IL,_shadersmodelMaterial:()=>LE,_shadersmodelToWindowCoordinates:()=>PL,_shadersmodelVertexOutput:()=>WE,_shadersmultiplyWithColorBalance:()=>XL,_shadersnearFarScalar:()=>YL,_shadersoctDecode:()=>NL,_shadersoneOverPi:()=>jG,_shadersoneOverTwoPi:()=>QG,_shaderspackDepth:()=>wL,_shaderspassCesium3DTile:()=>qG,_shaderspassCesium3DTileClassification:()=>$G,_shaderspassCesium3DTileClassificationIgnoreShow:()=>eE,_shaderspassCesium3DTileEdges:()=>tE,_shaderspassCesium3DTileEdgesDirect:()=>nE,_shaderspassClassification:()=>iE,_shaderspassCompute:()=>oE,_shaderspassEnvironment:()=>rE,_shaderspassGaussianSplats:()=>sE,_shaderspassGlobe:()=>aE,_shaderspassOpaque:()=>cE,_shaderspassOverlay:()=>lE,_shaderspassTerrainClassification:()=>dE,_shaderspassTranslucent:()=>uE,_shaderspassVoxels:()=>mE,_shaderspbrLighting:()=>ML,_shaderspbrNeutralTonemapping:()=>kL,_shadersphong:()=>UL,_shaderspi:()=>hE,_shaderspiOverFour:()=>fE,_shaderspiOverSix:()=>pE,_shaderspiOverThree:()=>bE,_shaderspiOverTwo:()=>gE,_shadersplaneDistance:()=>DL,_shaderspointAlongRay:()=>OL,_shadersradiansPerDegree:()=>yE,_shadersray:()=>vE,_shadersrayEllipsoidIntersectionInterval:()=>BL,_shadersraySegment:()=>FE,_shadersraySphereIntersectionInterval:()=>zL,_shadersreadDepth:()=>HL,_shadersreadNonPerspective:()=>KL,_shadersreverseLogDepth:()=>JL,_shadersround:()=>jL,_shaderssaturation:()=>QL,_shaderssceneMode2D:()=>xE,_shaderssceneMode3D:()=>TE,_shaderssceneModeColumbusView:()=>_E,_shaderssceneModeMorphing:()=>SE,_shadersshadowDepthCompare:()=>qL,_shadersshadowParameters:()=>IE,_shadersshadowVisibility:()=>$L,_shaderssignNotZero:()=>eW,_shaderssolarRadius:()=>AE,_shaderssphericalHarmonics:()=>tW,_shaderssrgbToLinear:()=>nW,_shaderstangentToEyeSpaceMatrix:()=>iW,_shaderstextureCube:()=>oW,_shadersthreePiOver2:()=>ZE,_shaderstransformPlane:()=>rW,_shaderstranslateRelativeToEye:()=>sW,_shaderstranslucentPhong:()=>aW,_shaderstranspose:()=>cW,_shaderstwoPi:()=>CE,_shadersunpackClippingExtents:()=>lW,_shadersunpackDepth:()=>dW,_shadersunpackFloat:()=>uW,_shadersunpackTexture:()=>mW,_shadersunpackUint:()=>hW,_shadersvalueTransform:()=>fW,_shadersvertexLogDepth:()=>pW,_shaderswebMercatorMaxLatitude:()=>RE,_shaderswindowToEyeCoordinates:()=>bW,_shaderswriteDepthClamp:()=>gW,_shaderswriteLogDepth:()=>yW,_shaderswriteNonPerspective:()=>xW,addAllToArray:()=>$n,addBuffer:()=>Vv,addDefaults:()=>Tv,addExtensionsRequired:()=>Zv,addExtensionsUsed:()=>fm,addPipelineExtras:()=>hy,addToArray:()=>oa,appendForwardSlash:()=>GV,arrayRemoveDuplicates:()=>Co,assert:()=>oJ,barycentricCoordinates:()=>mT,binarySearch:()=>xo,buildModuleUrl:()=>$t,buildVectorGltfFromMVT:()=>s9,buildVoxelCustomShader:()=>D1,buildVoxelDrawCommands:()=>OM,clone:()=>Je,combine:()=>vt,computeFlyToLocationForRectangle:()=>US,createBillboardPointCallback:()=>L_,createColorRamp:()=>AM,createCommand:()=>Ln,createDefaultImageryProviderViewModels:()=>L9,createDefaultTerrainProviderViewModels:()=>W9,createElevationBandMaterial:()=>Goe,createGooglePhotorealistic3DTileset:()=>Eoe,createGuid:()=>zn,createMaterialPropertyDescriptor:()=>Qo,createOsmBuildingsAsync:()=>Loe,createPropertyDescriptor:()=>xe,createRawPropertyDescriptor:()=>Zl,createTangentSpaceDebugPrimitive:()=>Woe,createTaskProcessorWorker:()=>Poe,createUniform:()=>NG,createUniformArray:()=>wG,createVectorTileBuffersFromModelComponents:()=>CP,createWorldBathymetryAsync:()=>vk,createWorldImageryAsync:()=>bb,createWorldTerrainAsync:()=>WA,decodeGoogleEarthEnterpriseData:()=>Fk,decodeMVT:()=>c9,decodeVectorPolylinePositions:()=>sP,defer:()=>ad,defined:()=>l,demodernizeShader:()=>TW,deprecationWarning:()=>Ca,destroyObject:()=>he,exportKml:()=>aee,findAccessorMinMax:()=>s_,findContentMetadata:()=>k_,findGroupMetadata:()=>U_,findMeshoptExtension:()=>uy,findTileMetadata:()=>XP,forEachTextureInMaterial:()=>wZ,formatError:()=>pp,freezeRenderState:()=>uJ,getAbsoluteUri:()=>$u,getAccessorByteStride:()=>yd,getBaseUri:()=>EV,getBinaryAccessor:()=>um,getClipAndStyleCode:()=>yk,getClippingFunction:()=>DS,getComponentReader:()=>Q0,getElement:()=>Pn,getExtensionFromUri:()=>T0,getFilenameFromUri:()=>Ub,getImageFromTypedArray:()=>ZM,getImagePixels:()=>dh,getJsonFromTypedArray:()=>_r,getMagic:()=>Eh,getMeshPrimitives:()=>d2,getMetadataClassProperty:()=>ek,getMetadataProperty:()=>nk,getStringFromTypedArray:()=>pd,getTimestamp:()=>Ni,hasExtension:()=>Bi,heightReferenceOnEntityPropertyChanged:()=>U0,isBitSet:()=>ml,isBlobUri:()=>oT,isCrossOriginUrl:()=>Mg,isDataUri:()=>uh,isLeapYear:()=>lh,knockout:()=>Ve,knockout_3_5_1:()=>wA,knockout_es5:()=>b9,loadAndExecuteScript:()=>rT,loadCubeMap:()=>LN,loadImageFromTypedArray:()=>j0,loadKTX2:()=>ud,mergeSort:()=>Qp,moveTechniqueRenderStates:()=>Av,moveTechniquesToExtension:()=>Cv,numberOfComponentsForType:()=>su,objectToQuery:()=>sT,oneTimeWarning:()=>_t,parseBatchTable:()=>cb,parseFeatureMetadataLegacy:()=>qv,parseGlb:()=>r_,parseResponseHeaders:()=>LV,parseStructuralMetadata:()=>Qv,pickModel:()=>kC,pointInsideTriangle:()=>Sie,preprocess3DTileContent:()=>Eb,processVoxelProperties:()=>GM,queryToObject:()=>$d,readAccessorPacked:()=>Gv,removeExtension:()=>a_,removeExtensionsRequired:()=>_v,removeExtensionsUsed:()=>o_,removePipelineExtras:()=>Sv,removeUnusedElements:()=>Rv,renderBufferPointCollection:()=>fP,renderBufferPolygonCollection:()=>yP,renderBufferPolylineCollection:()=>AP,resizeImageToNextPowerOfTwo:()=>by,sampleTerrain:()=>WN,sampleTerrainMostDetailed:()=>kS,scaleToGeodeticSurface:()=>iT,srgbToLinear:()=>vA,subdivideArray:()=>SW,subscribeAndEvaluate:()=>mc,updateAccessorComponentTypes:()=>Ev,updateVersion:()=>Lv,usesExtension:()=>Lr,viewerCesium3DTilesInspectorMixin:()=>ore,viewerCesiumInspectorMixin:()=>rre,viewerDragDropMixin:()=>are,viewerPerformanceWatchdogMixin:()=>cre,viewerVoxelInspectorMixin:()=>lre,webGLConstantToGlslType:()=>Aie,wrapFunction:()=>Ik,writeTextToCanvas:()=>v_});var wer=x(T(),1);var Avo=x(T(),1);var iwt=x(T(),1);var WNt=x(T(),1),RH={};RH.EMPTY_OBJECT=Object.freeze({});RH.EMPTY_ARRAY=Object.freeze([]);var B=RH;var FNt=x(T(),1);function qve(e){return e!=null}var l=qve;var XNt=x(T(),1);function nT(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(nT.prototype=Object.create(Error.prototype),nT.prototype.constructor=nT);nT.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};nT.throwInstantiationError=function(){throw new nT("This function defines an interface and should not be called directly.")};var Te=nT;var DNt=x(T(),1);var MNt=x(T(),1);var ta={};ta.typeOf={};function $ve(e){return`${e} is required, actual value was undefined`}function HA(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}ta.defined=function(e,t){if(!l(t))throw new Te($ve(e))};ta.typeOf.func=function(e,t){if(typeof t!="function")throw new Te(HA(typeof t,"function",e))};ta.typeOf.string=function(e,t){if(typeof t!="string")throw new Te(HA(typeof t,"string",e))};ta.typeOf.number=function(e,t){if(typeof t!="number")throw new Te(HA(typeof t,"number",e))};ta.typeOf.number.lessThan=function(e,t,n){if(ta.typeOf.number(e,t),t>=n)throw new Te(`Expected ${e} to be less than ${n}, actual value was ${t}`)};ta.typeOf.number.lessThanOrEquals=function(e,t,n){if(ta.typeOf.number(e,t),t>n)throw new Te(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};ta.typeOf.number.greaterThan=function(e,t,n){if(ta.typeOf.number(e,t),t<=n)throw new Te(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};ta.typeOf.number.greaterThanOrEquals=function(e,t,n){if(ta.typeOf.number(e,t),t0&&(this._hash={},t.length=0)}},wt=EH;var i5t=x(T(),1);var fwt=x(T(),1);var dwt=x(T(),1),LH=x(uU(),1);var yt={};yt.EPSILON1=.1;yt.EPSILON2=.01;yt.EPSILON3=.001;yt.EPSILON4=1e-4;yt.EPSILON5=1e-5;yt.EPSILON6=1e-6;yt.EPSILON7=1e-7;yt.EPSILON8=1e-8;yt.EPSILON9=1e-9;yt.EPSILON10=1e-10;yt.EPSILON11=1e-11;yt.EPSILON12=1e-12;yt.EPSILON13=1e-13;yt.EPSILON14=1e-14;yt.EPSILON15=1e-15;yt.EPSILON16=1e-16;yt.EPSILON17=1e-17;yt.EPSILON18=1e-18;yt.EPSILON19=1e-19;yt.EPSILON20=1e-20;yt.EPSILON21=1e-21;yt.GRAVITATIONALPARAMETER=3986004418e5;yt.SOLAR_RADIUS=6955e5;yt.LUNAR_RADIUS=1737400;yt.SIXTY_FOUR_KILOBYTES=64*1024;yt.FOUR_GIGABYTES=4*1024*1024*1024;yt.sign=Math.sign??function(t){return t=+t,t===0||t!==t?t:t>0?1:-1};yt.signNotZero=function(e){return e<0?-1:1};yt.toSNorm=function(e,t){return t=t??255,Math.round((yt.clamp(e,-1,1)*.5+.5)*t)};yt.fromSNorm=function(e,t){return t=t??255,yt.clamp(e,0,t)/t*2-1};yt.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:yt.clamp((e-t)/n,0,1)};yt.sinh=Math.sinh??function(t){return(Math.exp(t)-Math.exp(-t))/2};yt.cosh=Math.cosh??function(t){return(Math.exp(t)+Math.exp(-t))/2};yt.lerp=function(e,t,n){return(1-n)*e+n*t};yt.PI=Math.PI;yt.ONE_OVER_PI=1/Math.PI;yt.PI_OVER_TWO=Math.PI/2;yt.PI_OVER_THREE=Math.PI/3;yt.PI_OVER_FOUR=Math.PI/4;yt.PI_OVER_SIX=Math.PI/6;yt.THREE_PI_OVER_TWO=3*Math.PI/2;yt.TWO_PI=2*Math.PI;yt.ONE_OVER_TWO_PI=1/(2*Math.PI);yt.RADIANS_PER_DEGREE=Math.PI/180;yt.DEGREES_PER_RADIAN=180/Math.PI;yt.RADIANS_PER_ARCSECOND=yt.RADIANS_PER_DEGREE/3600;yt.toRadians=function(e){return e*yt.RADIANS_PER_DEGREE};yt.toDegrees=function(e){return e*yt.DEGREES_PER_RADIAN};yt.convertLongitudeRange=function(e){let t=yt.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};yt.clampToLatitudeRange=function(e){return yt.clamp(e,-1*yt.PI_OVER_TWO,yt.PI_OVER_TWO)};yt.negativePiToPi=function(e){return e>=-yt.PI&&e<=yt.PI?e:yt.zeroToTwoPi(e+yt.PI)-yt.PI};yt.zeroToTwoPi=function(e){if(e>=0&&e<=yt.TWO_PI)return e;let t=yt.mod(e,yt.TWO_PI);return Math.abs(t)yt.EPSILON14?yt.TWO_PI:t};yt.mod=function(e,t){return yt.sign(e)===yt.sign(t)&&Math.abs(e)n};yt.greaterThanOrEquals=function(e,t,n){return e-t>-n};var mU=[1];yt.factorial=function(e){let t=mU.length;if(e>=t){let n=mU[t-1];for(let i=t;i<=e;i++){let o=n*i;mU.push(o),n=o}}return mU[e]};yt.incrementWrap=function(e,t,n){return n=n??0,++e,e>t&&(e=n),e};yt.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};yt.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};yt.previousPowerOfTwo=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e|=e>>32,e=(e>>>0)-(e>>>1),e};yt.clamp=function(e,t,n){return en?n:e};var mre=new LH.default;yt.setRandomNumberSeed=function(e){mre=new LH.default(e)};yt.nextRandomNumber=function(){return mre.random()};yt.randomBetween=function(e,t){return yt.nextRandomNumber()*(t-e)+e};yt.acosClamped=function(e){return Math.acos(yt.clamp(e,-1,1))};yt.asinClamped=function(e){return Math.asin(yt.clamp(e,-1,1))};yt.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};yt.logBase=function(e,t){return Math.log(e)/Math.log(t)};yt.cbrt=Math.cbrt??function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n};yt.log2=Math.log2??function(t){return Math.log(t)*Math.LOG2E};yt.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};yt.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};yt.fastApproximateAtan2=function(e,t){let n,i=Math.abs(e);n=Math.abs(t);let o=Math.max(i,n);n=Math.min(i,n);let r=n/o;return i=yt.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?yt.PI_OVER_TWO-i:i,i=e<0?yt.PI-i:i,i=t<0?-i:i,i};var W=yt;var es=class e{constructor(t,n){this.x=t??0,this.y=n??0}static fromElements(t,n,i){return l(i)?(i.x=t,i.y=n,i):new e(t,n)}static clone(t,n){if(l(t))return l(n)?(n.x=t.x,n.y=t.y,n):new e(t.x,t.y)}static pack(t,n,i){return i=i??0,n[i++]=t.x,n[i]=t.y,n}static unpack(t,n,i){return n=n??0,l(i)||(i=new e),i.x=t[n++],i.y=t[n],i}static packArray(t,n){let i=t.length,o=i*2;l(n)?!Array.isArray(n)&&n.length!==o||n.length!==o&&(n.length=o):n=new Array(o);for(let r=0;rW.EPSILON12);return l(o)?(o.x=r*X,o.y=s*Y,o.z=a*g,o):new h(r*X,s*Y,a*g)}var iT=a2e;var pl=class pl{constructor(t,n,i){this.longitude=t??0,this.latitude=n??0,this.height=i??0}static fromRadians(t,n,i,o){return i=i??0,l(o)?(o.longitude=t,o.latitude=n,o.height=i,o):new pl(t,n,i)}static fromDegrees(t,n,i,o){return t=W.toRadians(t),n=W.toRadians(n),pl.fromRadians(t,n,i,o)}static fromCartesian(t,n,i){let o=l(n)?n.oneOverRadii:pl._ellipsoidOneOverRadii,r=l(n)?n.oneOverRadiiSquared:pl._ellipsoidOneOverRadiiSquared,s=l(n)?n._centerToleranceSquared:pl._ellipsoidCenterToleranceSquared,a=iT(t,o,r,s,l2e);if(!l(a))return;let c=h.multiplyComponents(a,r,c2e);c=h.normalize(c,c);let d=h.subtract(t,a,d2e),u=Math.atan2(c.y,c.x),m=Math.asin(c.z),p=W.sign(h.dot(d,t))*h.magnitude(d);return l(i)?(i.longitude=u,i.latitude=m,i.height=p,i):new pl(u,m,p)}static toCartesian(t,n,i){return h.fromRadians(t.longitude,t.latitude,t.height,n,i)}static clone(t,n){if(l(t))return l(n)?(n.longitude=t.longitude,n.latitude=t.latitude,n.height=t.height,n):new pl(t.longitude,t.latitude,t.height)}static equals(t,n){return t===n||l(t)&&l(n)&&t.longitude===n.longitude&&t.latitude===n.latitude&&t.height===n.height}static equalsEpsilon(t,n,i){return i=i??0,t===n||l(t)&&l(n)&&Math.abs(t.longitude-n.longitude)<=i&&Math.abs(t.latitude-n.latitude)<=i&&Math.abs(t.height-n.height)<=i}clone(t){return pl.clone(this,t)}equals(t){return pl.equals(this,t)}equalsEpsilon(t,n){return pl.equalsEpsilon(this,t,n)}toString(){return`(${this.longitude}, ${this.latitude}, ${this.height})`}};lt(pl,"_ellipsoidOneOverRadii",new h(1/6378137,1/6378137,1/6356752314245179e-9)),lt(pl,"_ellipsoidOneOverRadiiSquared",new h(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9))),lt(pl,"_ellipsoidCenterToleranceSquared",W.EPSILON1);var VV=pl;VV.ZERO=Object.freeze(new VV(0,0,0));var c2e=new h,l2e=new h,d2e=new h,fe=VV;var Nwt=x(T(),1);function gre(e,t,n,i){t=t??0,n=n??0,i=i??0,e._radii=new h(t,n,i),e._radiiSquared=new h(t*t,n*n,i*i),e._radiiToTheFourth=new h(t*t*t*t,n*n*n*n,i*i*i*i),e._oneOverRadii=new h(t===0?0:1/t,n===0?0:1/n,i===0?0:1/i),e._oneOverRadiiSquared=new h(t===0?0:1/(t*t),n===0?0:1/(n*n),i===0?0:1/(i*i)),e._minimumRadius=Math.min(t,n,i),e._maximumRadius=Math.max(t,n,i),e._centerToleranceSquared=W.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}var bl=class e{constructor(t,n,i){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,gre(this,t,n,i)}get radii(){return this._radii}get radiiSquared(){return this._radiiSquared}get radiiToTheFourth(){return this._radiiToTheFourth}get oneOverRadii(){return this._oneOverRadii}get oneOverRadiiSquared(){return this._oneOverRadiiSquared}get minimumRadius(){return this._minimumRadius}get maximumRadius(){return this._maximumRadius}static clone(t,n){if(!l(t))return;let i=t._radii;return l(n)?(h.clone(i,n._radii),h.clone(t._radiiSquared,n._radiiSquared),h.clone(t._radiiToTheFourth,n._radiiToTheFourth),h.clone(t._oneOverRadii,n._oneOverRadii),h.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new e(i.x,i.y,i.z)}static fromCartesian3(t,n){return l(n)||(n=new e),l(t)&&gre(n,t.x,t.y,t.z),n}static get default(){return e._default}static set default(t){e._default=t,h._ellipsoidRadiiSquared=t.radiiSquared,fe._ellipsoidOneOverRadii=t.oneOverRadii,fe._ellipsoidOneOverRadiiSquared=t.oneOverRadiiSquared,fe._ellipsoidCenterToleranceSquared=t._centerToleranceSquared}clone(t){return e.clone(this,t)}static pack(t,n,i){return i=i??0,h.pack(t._radii,n,i),n}static unpack(t,n,i){n=n??0;let o=h.unpack(t,n);return e.fromCartesian3(o,i)}geodeticSurfaceNormalCartographic(t,n){let i=t.longitude,o=t.latitude,r=Math.cos(o),s=r*Math.cos(i),a=r*Math.sin(i),c=Math.sin(o);return l(n)||(n=new h),n.x=s,n.y=a,n.z=c,h.normalize(n,n)}geodeticSurfaceNormal(t,n){if(!h.equalsEpsilon(t,h.ZERO,W.EPSILON14))return l(n)||(n=new h),n=h.multiplyComponents(t,this._oneOverRadiiSquared,n),h.normalize(n,n)}cartographicToCartesian(t,n){let i=u2e,o=m2e;this.geodeticSurfaceNormalCartographic(t,i),h.multiplyComponents(this._radiiSquared,i,o);let r=Math.sqrt(h.dot(i,o));return h.divideByScalar(o,r,o),h.multiplyByScalar(i,t.height,i),l(n)||(n=new h),h.add(o,i,n)}cartographicArrayToCartesianArray(t,n){let i=t.length;l(n)?n.length=i:n=new Array(i);for(let o=0;o=this._radii.z-n))return i}getLocalCurvature(t,n){l(n)||(n=new k);let i=this.getSurfaceNormalIntersectionWithZAxis(t,0,b2e),o=h.distance(t,i),r=this.minimumRadius*o/this.maximumRadius**2,s=o*r**2;return k.fromElements(1/o,1/s,n)}surfaceArea(t){let n=t.west,i=t.east,o=t.south,r=t.north;for(;i0){o=r-1;continue}return r}return~(o+1)}var xo=S2e;var eMt=x(T(),1);function A2e(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var Ng=A2e;var SMt=x(T(),1);var aMt=x(T(),1);var nMt=x(T(),1);function Z2e(e){return e%4===0&&e%100!==0||e%400===0}var lh=Z2e;var Sre=[31,28,31,30,31,30,31,31,30,31,30,31];function C2e(e,t,n,i,o,r,s,a){e=e??1,t=t??1,n=n??1,i=i??0,o=o??0,r=r??0,s=s??0,a=a??!1,this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a;function y(){No.typeOf.number.greaterThanOrEquals("Year",e,1),No.typeOf.number.lessThanOrEquals("Year",e,9999),No.typeOf.number.greaterThanOrEquals("Month",t,1),No.typeOf.number.lessThanOrEquals("Month",t,12),No.typeOf.number.greaterThanOrEquals("Day",n,1),No.typeOf.number.lessThanOrEquals("Day",n,31),No.typeOf.number.greaterThanOrEquals("Hour",i,0),No.typeOf.number.lessThanOrEquals("Hour",i,23),No.typeOf.number.greaterThanOrEquals("Minute",o,0),No.typeOf.number.lessThanOrEquals("Minute",o,59),No.typeOf.bool("IsLeapSecond",a),No.typeOf.number.greaterThanOrEquals("Second",r,0),No.typeOf.number.lessThanOrEquals("Second",r,a?60:59),No.typeOf.number.greaterThanOrEquals("Millisecond",s,0),No.typeOf.number.lessThan("Millisecond",s,1e3)}function _(){let S=t===2&&lh(e)?Sre[t-1]+1:Sre[t-1];if(n>S)throw new Te("Month and Day represents invalid date")}}var x0=C2e;var lMt=x(T(),1);function R2e(e,t){this.julianDate=e,this.offset=t}var ao=R2e;var uMt=x(T(),1),Are={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1};Object.freeze(Are);var si=Are;var hMt=x(T(),1),Zre={UTC:0,TAI:1};Object.freeze(Zre);var ii=Zre;var Cre=new x0,IH=[31,28,31,30,31,30,31,31,30,31,30,31],PH=29;function YH(e,t){return fi.compare(e.julianDate,t.julianDate)}var JA=new ao;function gU(e){JA.julianDate=e;let t=fi.leapSeconds,n=xo(t,JA,YH);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&fi.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),fi.addSeconds(e,i,e)}function Rre(e,t){JA.julianDate=e;let n=fi.leapSeconds,i=xo(n,JA,YH);if(i<0&&(i=~i),i===0)return fi.addSeconds(e,-n[0].offset,t);if(i>=n.length)return fi.addSeconds(e,-n[i-1].offset,t);let o=fi.secondsDifference(n[i].julianDate,e);if(o===0)return fi.addSeconds(e,-n[i].offset,t);if(!(o<=1))return fi.addSeconds(e,-n[--i].offset,t)}function wg(e,t,n){let i=t/si.SECONDS_PER_DAY|0;return e+=i,t-=si.SECONDS_PER_DAY*i,t<0&&(e--,t+=si.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function XH(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,d=(1461*c/4|0)+(367*(t-2-12*a)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let u=r+(i*si.SECONDS_PER_HOUR+o*si.SECONDS_PER_MINUTE+s*si.SECONDS_PER_MILLISECOND);return u>=43200&&(d-=1),[d,u]}var V2e=/^(\d{4})$/,G2e=/^(\d{4})-(\d{2})$/,E2e=/^(\d{4})-?(\d{3})$/,L2e=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,W2e=/^(\d{4})-?(\d{2})-?(\d{2})$/,NH=/([Z+\-])?(\d{2})?:?(\d{2})?$/,v2e=/^(\d{2})(\.\d+)?/.source+NH.source,F2e=/^(\d{2}):?(\d{2})(\.\d+)?/.source+NH.source,I2e=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+NH.source;var fi=class e{constructor(t,n,i){this.dayNumber=void 0,this.secondsOfDay=void 0,t=t??0,n=n??0,i=i??ii.UTC;let o=t|0;n=n+(t-o)*si.SECONDS_PER_DAY,wg(o,n,this),i===ii.UTC&&gU(this)}static fromGregorianDate(t,n){let i=XH(t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond);return l(n)?(wg(i[0],i[1],n),gU(n),n):new e(i[0],i[1],ii.UTC)}static fromDate(t,n){let i=XH(t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.getUTCMilliseconds());return l(n)?(wg(i[0],i[1],n),gU(n),n):new e(i[0],i[1],ii.UTC)}static fromIso8601(t,n){t=t.replace(",",".");let i=t.split("T"),o,r=1,s=1,a=0,c=0,d=0,u=0,m=i[0],p=i[1],b,f;if(i=m.match(W2e),i!==null)o=+i[1],r=+i[2],s=+i[3];else if(i=m.match(G2e),i!==null)o=+i[1],r=+i[2];else if(i=m.match(V2e),i!==null)o=+i[1];else{let A;if(i=m.match(E2e),i!==null)o=+i[1],A=+i[2],f=lh(o);else if(i=m.match(L2e),i!==null){o=+i[1];let Z=+i[2],R=+i[3]||0,G=new Date(Date.UTC(o,0,4));A=Z*7+R-G.getUTCDay()-3}b=new Date(Date.UTC(o,0,1)),b.setUTCDate(A),r=b.getUTCMonth()+1,s=b.getUTCDate()}f=lh(o);let y;if(l(p)){i=p.match(I2e),i!==null?(a=+i[1],c=+i[2],d=+i[3],u=+(i[4]||0)*1e3,y=5):(i=p.match(F2e),i!==null?(a=+i[1],c=+i[2],d=+(i[3]||0)*60,y=4):(i=p.match(v2e),i!==null&&(a=+i[1],c=+(i[2]||0)*60,y=3)));let A=i[y],Z=+i[y+1],R=+(i[y+2]||0);switch(A){case"+":a=a-Z,c=c-R;break;case"-":a=a+Z,c=c+R;break;case"Z":break;default:c=c+new Date(Date.UTC(o,r-1,s,a,c)).getTimezoneOffset();break}}let _=d===60;for(_&&d--;c>=60;)c-=60,a++;for(;a>=24;)a-=24,s++;for(b=f&&r===2?PH:IH[r-1];s>b;)s-=b,r++,r>12&&(r-=12,o++),b=f&&r===2?PH:IH[r-1];for(;c<0;)c+=60,a--;for(;a<0;)a+=24,s--;for(;s<1;)r--,r<1&&(r+=12,o--),b=f&&r===2?PH:IH[r-1],s+=b;let S=XH(o,r,s,a,c,d,u);return l(n)?(wg(S[0],S[1],n),gU(n)):n=new e(S[0],S[1],ii.UTC),_&&e.addSeconds(n,1,n),n}static now(t){return e.fromDate(new Date,t)}static toGregorianDate(t,n){let i=!1,o=Rre(t,yU);l(o)||(e.addSeconds(t,-1,yU),o=Rre(yU,yU),i=!0);let r=o.dayNumber,s=o.secondsOfDay;s>=43200&&(r+=1);let a=r+68569|0,c=4*a/146097|0;a=a-((146097*c+3)/4|0)|0;let d=4e3*(a+1)/1461001|0;a=a-(1461*d/4|0)+31|0;let u=80*a/2447|0,m=a-(2447*u/80|0)|0;a=u/11|0;let p=u+2-12*a|0,b=100*(c-49)+d+a|0,f=s/si.SECONDS_PER_HOUR|0,y=s-f*si.SECONDS_PER_HOUR,_=y/si.SECONDS_PER_MINUTE|0;y=y-_*si.SECONDS_PER_MINUTE;let S=y|0,A=(y-S)/si.SECONDS_PER_MILLISECOND;return f+=12,f>23&&(f-=24),i&&(S+=1),l(n)?(n.year=b,n.month=p,n.day=m,n.hour=f,n.minute=_,n.second=S,n.millisecond=A,n.isLeapSecond=i,n):new x0(b,p,m,f,_,S,A,i)}static toDate(t){let n=e.toGregorianDate(t,Cre),i=n.second;return n.isLeapSecond&&(i-=1),new Date(Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,i,n.millisecond))}static toIso8601(t,n){let i=e.toGregorianDate(t,Cre),o=i.year,r=i.month,s=i.day,a=i.hour,c=i.minute,d=i.second,u=i.millisecond;o===1e4&&r===1&&s===1&&a===0&&c===0&&d===0&&u===0&&(o=9999,r=12,s=31,a=24);let m;if(!l(n)&&u!==0){let p=u*.01;return m=p<1e-6?p.toFixed(20).replace(".","").replace(/0+$/,""):p.toString().replace(".",""),`${o.toString().padStart(4,"0")}-${r.toString().padStart(2,"0")}-${s.toString().padStart(2,"0")}T${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}:${d.toString().padStart(2,"0")}.${m}Z`}return!l(n)||n===0?`${o.toString().padStart(4,"0")}-${r.toString().padStart(2,"0")}-${s.toString().padStart(2,"0")}T${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}:${d.toString().padStart(2,"0")}Z`:(m=(u*.01).toFixed(n).replace(".","").slice(0,n),`${o.toString().padStart(4,"0")}-${r.toString().padStart(2,"0")}-${s.toString().padStart(2,"0")}T${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}:${d.toString().padStart(2,"0")}.${m}Z`)}static clone(t,n){if(l(t))return l(n)?(n.dayNumber=t.dayNumber,n.secondsOfDay=t.secondsOfDay,n):new e(t.dayNumber,t.secondsOfDay,ii.TAI)}static compare(t,n){let i=t.dayNumber-n.dayNumber;return i!==0?i:t.secondsOfDay-n.secondsOfDay}static equals(t,n){return t===n||l(t)&&l(n)&&t.dayNumber===n.dayNumber&&t.secondsOfDay===n.secondsOfDay}static equalsEpsilon(t,n,i){return i=i??0,t===n||l(t)&&l(n)&&Math.abs(e.secondsDifference(t,n))<=i}static totalDays(t){return t.dayNumber+t.secondsOfDay/si.SECONDS_PER_DAY}static secondsDifference(t,n){return(t.dayNumber-n.dayNumber)*si.SECONDS_PER_DAY+(t.secondsOfDay-n.secondsOfDay)}static daysDifference(t,n){let i=t.dayNumber-n.dayNumber,o=(t.secondsOfDay-n.secondsOfDay)/si.SECONDS_PER_DAY;return i+o}static computeTaiMinusUtc(t){JA.julianDate=t;let n=e.leapSeconds,i=xo(n,JA,YH);return i<0&&(i=~i,--i,i<0&&(i=0)),n[i].offset}static addSeconds(t,n,i){return wg(t.dayNumber,t.secondsOfDay+n,i)}static addMinutes(t,n,i){let o=t.secondsOfDay+n*si.SECONDS_PER_MINUTE;return wg(t.dayNumber,o,i)}static addHours(t,n,i){let o=t.secondsOfDay+n*si.SECONDS_PER_HOUR;return wg(t.dayNumber,o,i)}static addDays(t,n,i){let o=t.dayNumber+n;return wg(o,t.secondsOfDay,i)}static lessThan(t,n){return e.compare(t,n)<0}static lessThanOrEquals(t,n){return e.compare(t,n)<=0}static greaterThan(t,n){return e.compare(t,n)>0}static greaterThanOrEquals(t,n){return e.compare(t,n)>=0}clone(t){return e.clone(this,t)}equals(t){return e.equals(this,t)}equalsEpsilon(t,n){return e.equalsEpsilon(this,t,n)}toString(){return e.toIso8601(this)}},yU=new fi(0,0,ii.TAI);fi.leapSeconds=[new ao(new fi(2441317,43210,ii.TAI),10),new ao(new fi(2441499,43211,ii.TAI),11),new ao(new fi(2441683,43212,ii.TAI),12),new ao(new fi(2442048,43213,ii.TAI),13),new ao(new fi(2442413,43214,ii.TAI),14),new ao(new fi(2442778,43215,ii.TAI),15),new ao(new fi(2443144,43216,ii.TAI),16),new ao(new fi(2443509,43217,ii.TAI),17),new ao(new fi(2443874,43218,ii.TAI),18),new ao(new fi(2444239,43219,ii.TAI),19),new ao(new fi(2444786,43220,ii.TAI),20),new ao(new fi(2445151,43221,ii.TAI),21),new ao(new fi(2445516,43222,ii.TAI),22),new ao(new fi(2446247,43223,ii.TAI),23),new ao(new fi(2447161,43224,ii.TAI),24),new ao(new fi(2447892,43225,ii.TAI),25),new ao(new fi(2448257,43226,ii.TAI),26),new ao(new fi(2448804,43227,ii.TAI),27),new ao(new fi(2449169,43228,ii.TAI),28),new ao(new fi(2449534,43229,ii.TAI),29),new ao(new fi(2450083,43230,ii.TAI),30),new ao(new fi(2450630,43231,ii.TAI),31),new ao(new fi(2451179,43232,ii.TAI),32),new ao(new fi(2453736,43233,ii.TAI),33),new ao(new fi(2454832,43234,ii.TAI),34),new ao(new fi(2456109,43235,ii.TAI),35),new ao(new fi(2457204,43236,ii.TAI),36),new ao(new fi(2457754,43237,ii.TAI),37)];var Q=fi;var m9t=x(T(),1),Hre=x(qd(),1);var GMt=x(T(),1);function P2e(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var GV=P2e;var LMt=x(T(),1);function Fre(e,t){if(e===null||typeof e!="object")return e;t=t??!1;let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let o=e[i];t&&(o=Fre(o,t)),n[i]=o}return n}var Je=Fre;var FMt=x(T(),1);function Ire(e,t,n){n=n??!1;let i={},o=l(e),r=l(t),s,a,c;if(o)for(s in e)e.hasOwnProperty(s)&&(a=e[s],r&&n&&typeof a=="object"&&t.hasOwnProperty(s)?(c=t[s],typeof c=="object"?i[s]=Ire(a,c,n):i[s]=a):i[s]=a);if(r)for(s in t)t.hasOwnProperty(s)&&!i.hasOwnProperty(s)&&(c=t[s],i[s]=c);return i}var vt=Ire;var PMt=x(T(),1);function X2e(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var ad=X2e;var NMt=x(T(),1),Pre=x(qd(),1);function wH(e,t){let n;return typeof document<"u"&&(n=document),wH._implementation(e,t,n)}wH._implementation=function(e,t,n){if(!l(t)){if(typeof n>"u")return e;t=n.baseURI??n.location.href}let i=new Pre.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var $u=wH;var MMt=x(T(),1),Xre=x(qd(),1);function Y2e(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new Xre.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var EV=Y2e;var UMt=x(T(),1),Yre=x(qd(),1);function N2e(e){let t=new Yre.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var T0=N2e;var BMt=x(T(),1);var Nre={};function w2e(e,t,n){l(t)||(t=e.width),l(n)||(n=e.height);let i=Nre[t];l(i)||(i={},Nre[t]=i);let o=i[n];if(!l(o)){let r=document.createElement("canvas");r.width=t,r.height=n,o=r.getContext("2d",{willReadFrequently:!0}),o.globalCompositeOperation="copy",i[n]=o}return o.drawImage(e,0,0,t,n),o.getImageData(0,0,t,n).data}var dh=w2e;var HMt=x(T(),1);var M2e=/^blob:/i;function k2e(e){return M2e.test(e)}var oT=k2e;var jMt=x(T(),1);var Bf;function U2e(e){l(Bf)||(Bf=document.createElement("a")),Bf.href=window.location.href;let t=Bf.host,n=Bf.protocol;return Bf.href=e,Bf.href=Bf.href,n!==Bf.protocol||t!==Bf.host}var Mg=U2e;var qMt=x(T(),1);var D2e=/^data:/i;function O2e(e){return D2e.test(e)}var uh=O2e;var ekt=x(T(),1);function B2e(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let o=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,o.removeChild(t),n()},t.onerror=function(r){i(r)},o.appendChild(t)})}var rT=B2e;var nkt=x(T(),1);function z2e(e){let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let r=0,s=i.length;r0){let s=o.substring(0,r),a=o.substring(r+2);t[s]=a}}return t}var LV=K2e;function kre(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=LV(this.responseHeaders))}kre.prototype.toString=function(){let e="Request has failed.";return l(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var zf=kre;var Ykt=x(T(),1),AU=x(qd(),1);var Zkt=x(T(),1);function aT(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(aT.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){let t=this._length;if(e=0;--t)this.heapify(t)};aT.prototype.insert=function(e){let t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(oi&&(r=t[i],this._length=i),r};aT.prototype.pop=function(e){if(e=e??0,this._length===0)return;let t=this._array,n=t[e];return MH(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var WV=aT;var Vkt=x(T(),1);function vV(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(vV.prototype=Object.create(Error.prototype),vV.prototype.constructor=vV);vV.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};var ae=vV;function J2e(e,t){return e.priority-t.priority}var To={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},qA=20,Yc=new WV({comparator:J2e});Yc.maximumLength=qA;Yc.reserve(qA);var Hf=[],_0={},j2e=typeof document<"u"?new AU.default(document.location.href):new AU.default,ZU=new Se;function yr(){}yr.maximumRequests=50;yr.maximumRequestsPerServer=18;yr.requestsByServer={};yr.throttleRequests=!0;yr.debugShowStatistics=!1;yr.requestCompletedEvent=ZU;Object.defineProperties(yr,{statistics:{get:function(){return To}},priorityHeapLength:{get:function(){return qA},set:function(e){if(ee;){let t=Yc.pop();cT(t)}qA=e,Yc.maximumLength=e,Yc.reserve(e)}}});function Ure(e){l(e.priorityFunction)&&(e.priority=e.priorityFunction())}yr.serverHasOpenSlots=function(e,t){t=t??1;let n=yr.requestsByServer[e]??yr.maximumRequestsPerServer;return _0[e]+t<=n};yr.heapHasOpenSlots=function(e){return Yc.length+e<=qA};function Dre(e){return e.state===pi.UNISSUED&&(e.state=pi.ISSUED,e.deferred=ad()),e.deferred.promise}function Q2e(e){return function(t){if(e.state===pi.CANCELLED)return;let n=e.deferred;--To.numberOfActiveRequests,--_0[e.serverKey],ZU.raiseEvent(),e.state=pi.RECEIVED,e.deferred=void 0,n.resolve(t)}}function q2e(e){return function(t){e.state!==pi.CANCELLED&&(++To.numberOfFailedRequests,--To.numberOfActiveRequests,--_0[e.serverKey],ZU.raiseEvent(t),e.state=pi.FAILED,e.deferred.reject(t))}}function Ore(e){let t=Dre(e);return e.state=pi.ACTIVE,Hf.push(e),++To.numberOfActiveRequests,++To.numberOfActiveRequestsEver,++_0[e.serverKey],e.requestFunction().then(Q2e(e)).catch(q2e(e)),t}function cT(e){let t=e.state===pi.ACTIVE;if(e.state=pi.CANCELLED,++To.numberOfCancelledRequests,l(e.deferred)){let n=e.deferred;n.promise.catch(()=>{}),e.deferred=void 0,n.reject(new ae(`Request cancelled: "${e.url}"`))}t&&(--To.numberOfActiveRequests,--_0[e.serverKey],++To.numberOfCancelledActiveRequests),l(e.cancelFunction)&&e.cancelFunction()}yr.update=function(){let e,t,n=0,i=Hf.length;for(e=0;e0&&(Hf[e-n]=t)}Hf.length-=n;let o=Yc.internalArray,r=Yc.length;for(e=0;e0;){if(t=Yc.pop(),t.cancelled){cT(t);continue}if(t.throttleByServer&&!yr.serverHasOpenSlots(t.serverKey)){cT(t);continue}Ore(t),++a}$2e()};yr.getServerKey=function(e){let t=new AU.default(e);t.scheme()===""&&(t=t.absoluteTo(j2e),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=_0[n];return l(i)||(_0[n]=0),n};yr.request=function(e){if(uh(e.url)||oT(e.url))return ZU.raiseEvent(),e.state=pi.RECEIVED,e.requestFunction();if(++To.numberOfAttemptedRequests,l(e.serverKey)||(e.serverKey=yr.getServerKey(e.url)),yr.throttleRequests&&e.throttleByServer&&!yr.serverHasOpenSlots(e.serverKey))return;if(!yr.throttleRequests||!e.throttle)return Ore(e);if(Hf.length>=yr.maximumRequests)return;Ure(e);let t=Yc.insert(e);if(l(t)){if(t===e)return;cT(t)}return Dre(e)};function $2e(){yr.debugShowStatistics&&(To.numberOfActiveRequests===0&&To.lastNumberOfActiveRequests>0&&(To.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${To.numberOfAttemptedRequests}`),To.numberOfAttemptedRequests=0),To.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${To.numberOfCancelledRequests}`),To.numberOfCancelledRequests=0),To.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${To.numberOfCancelledActiveRequests}`),To.numberOfCancelledActiveRequests=0),To.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${To.numberOfFailedRequests}`),To.numberOfFailedRequests=0)),To.lastNumberOfActiveRequests=To.numberOfActiveRequests)}yr.clearForSpecs=function(){for(;Yc.length>0;){let t=Yc.pop();cT(t)}let e=Hf.length;for(let t=0;t0}},credits:{get:function(){return this._credits}}});Mt.prototype.toString=function(){return this.getUrlComponent(!0,!0)};Mt.prototype.parseUrl=function(e,t,n,i){let o=new Hre.default(e),r=tFe(o.query());this._queryParameters=t?RU(r,this.queryParameters,n):r,o.search(""),o.fragment(""),l(i)&&o.scheme()===""&&(o=o.absoluteTo($u(i))),this._url=o.toString()};function tFe(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:$d(e)}function RU(e,t,n){if(!n)return vt(e,t);let i=Je(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];l(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}Mt.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${nFe(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(o,r){let s=i[r];return l(s)?encodeURIComponent(s):o})),t&&l(this.proxy)&&(n=this.proxy.getURL(n)),n};function nFe(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!l(e[t[0]])?`?${t[0]}`:`?${sT(e)}`}Mt.prototype.setQueryParameters=function(e,t){t?this._queryParameters=RU(this._queryParameters,e,!1):this._queryParameters=RU(e,this._queryParameters,!1)};Mt.prototype.appendQueryParameters=function(e){this._queryParameters=RU(e,this._queryParameters,!0)};Mt.prototype.setTemplateValues=function(e,t){t?this._templateValues=vt(this._templateValues,e):this._templateValues=vt(e,this._templateValues)};Mt.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,l(e.url)){let n=e.preserveQueryParameters??!1;t.parseUrl(e.url,!0,n,this._url)}return l(e.queryParameters)&&(t._queryParameters=vt(e.queryParameters,t.queryParameters)),l(e.templateValues)&&(t._templateValues=vt(e.templateValues,t.templateValues)),l(e.headers)&&(t.headers=vt(e.headers,t.headers)),l(e.proxy)&&(t.proxy=e.proxy),l(e.request)&&(t.request=e.request),l(e.retryCallback)&&(t.retryCallback=e.retryCallback),l(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};Mt.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};Mt.prototype.clone=function(e){return l(e)?(e._url=this._url,e._queryParameters=Je(this._queryParameters),e._templateValues=Je(this._templateValues),e.headers=Je(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new Mt({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1,credits:l(this.credits)?this.credits.slice():void 0})};Mt.prototype.getBaseUri=function(e){return EV(this.getUrlComponent(e),e)};Mt.prototype.appendForwardSlash=function(){this._url=GV(this._url)};Mt.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};Mt.fetchArrayBuffer=function(e){return new Mt(e).fetchArrayBuffer()};Mt.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};Mt.fetchBlob=function(e){return new Mt(e).fetchBlob()};Mt.prototype.fetchImage=function(e){e=e??B.EMPTY_OBJECT;let t=e.preferImageBitmap??!1,n=e.preferBlob??!1,i=e.flipY??!1,o=e.skipColorSpaceConversion??!1;if(kH(this.request),!Kre||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return this._fetchImage({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!l(r))return;let s,a,c,d;return Mt.supportsImageBitmapOptions().then(function(u){return s=u,a=s&&t,r}).then(function(u){if(!l(u))return;if(d=u,a)return Mt.createImageBitmapFromBlob(u,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let m=window.URL.createObjectURL(u);return c=new Mt({url:m}),c._fetchImage({flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(u){if(l(u))return u.blob=d,a||window.URL.revokeObjectURL(c.url),u}).catch(function(u){return l(c)&&window.URL.revokeObjectURL(c.url),u.blob=d,Promise.reject(u)})};Mt.prototype._fetchImage=function(e){let t=this,n=e.flipY,i=e.skipColorSpaceConversion,o=e.preferImageBitmap,r=t.request;r.url=t.url,r.requestFunction=function(){let a=!1;!t.isDataUri&&!t.isBlobUri&&(a=t.isCrossOriginUrl);let c=ad();return Mt._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=Nc.request(r);if(l(s))return s.catch(function(a){return r.state!==pi.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=pi.UNISSUED,r.deferred=void 0,t._fetchImage({flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})};Mt.fetchImage=function(e){return new Mt(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};Mt.prototype.fetchText=function(){return this.fetch({responseType:"text"})};Mt.fetchText=function(e){return new Mt(e).fetchText()};Mt.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(l(e))return e.then(function(t){if(l(t))return JSON.parse(t)})};Mt.fetchJson=function(e){return new Mt(e).fetchJson()};Mt.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};Mt.fetchXML=function(e){return new Mt(e).fetchXML()};Mt.prototype.fetchJsonp=function(e){e=e??"callback",kH(this.request);let t;do t=`loadJsonp${W.nextRandomNumber().toString().substring(2,8)}`;while(l(window[t]));return Jre(this,e,t)};function Jre(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let o=e.request,r=e.url;o.url=r,o.requestFunction=function(){let a=ad();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},Mt._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=Nc.request(o);if(l(s))return s.catch(function(a){return o.state!==pi.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=pi.UNISSUED,o.deferred=void 0,Jre(e,t,n)):Promise.reject(a)})})}Mt.fetchJsonp=function(e){return new Mt(e).fetchJsonp(e.callbackParameterName)};Mt.prototype._makeRequest=function(e){let t=this;kH(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=vt(e.headers,t.headers),a=e.overrideMimeType,c=e.method,d=e.data,u=ad(),m=Mt._Implementations.loadWithXhr(i,r,c,d,s,u,a);return l(m)&&l(m.abort)&&(n.cancelFunction=function(){m.abort()}),u.promise};let o=Nc.request(n);if(l(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==pi.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=pi.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function kH(e){if(e.state===pi.ISSUED||e.state===pi.ACTIVE)throw new ae("The Resource is already being fetched.");e.state=pi.UNISSUED,e.deferred=void 0}var iFe=/^data:(.*?)(;base64)?,(.*)$/;function CU(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function zre(e,t){let n=CU(e,t),i=new ArrayBuffer(n.length),o=new Uint8Array(i);for(let r=0;r{if(!a.ok){let c={};a.headers.forEach((d,u)=>{c[u]=d}),r.reject(new zf(a.status,a,c));return}switch(t){case"text":r.resolve(a.text());break;case"json":r.resolve(a.json());break;default:r.resolve(new Uint8Array(await a.arrayBuffer()).buffer);break}}).catch(()=>{r.reject(new zf)})}var sFe=typeof XMLHttpRequest>"u";Mt._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=iFe.exec(e);if(a!==null){r.resolve(oFe(a,t));return}if(sFe){rFe(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(eZ.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),l(s)&&l(c.overrideMimeType)&&c.overrideMimeType(s),l(o))for(let u in o)o.hasOwnProperty(u)&&c.setRequestHeader(u,o[u]);l(t)&&(c.responseType=t);let d=!1;return typeof e=="string"&&(d=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(d&&c.status===0)){r.reject(new zf(c.status,c.response,c.getAllResponseHeaders()));return}let u=c.response,m=c.responseType;if(n==="HEAD"||n==="OPTIONS"){let b=c.getAllResponseHeaders().trim().split(/[\r\n]+/),f={};b.forEach(function(y){let _=y.split(": "),S=_.shift();f[S]=_.join(": ")}),r.resolve(f);return}if(c.status===204)r.resolve(void 0);else if(l(u)&&(!l(t)||m===t))r.resolve(u);else if(t==="json"&&typeof u=="string")try{r.resolve(JSON.parse(u))}catch(p){r.reject(p)}else(m===""||m==="document")&&l(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(m===""||m==="text")&&l(c.responseText)?r.resolve(c.responseText):r.reject(new ae("Invalid XMLHttpRequest response type."))},c.onerror=function(u){r.reject(new zf)},c.send(i),c};Mt._Implementations.loadAndExecuteScript=function(e,t,n){return rT(e,t).catch(function(i){n.reject(i)})};Mt._DefaultImplementations={};Mt._DefaultImplementations.createImage=Mt._Implementations.createImage;Mt._DefaultImplementations.loadWithXhr=Mt._Implementations.loadWithXhr;Mt._DefaultImplementations.loadAndExecuteScript=Mt._Implementations.loadAndExecuteScript;Mt.DEFAULT=Object.freeze(new Mt({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var We=Mt;function PV(e){e=e??B.EMPTY_OBJECT,this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=e.addNewLeapSeconds??!0,l(e.data)?jre(this,e.data):jre(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}PV.fromUrl=async function(e,t){t=t??B.EMPTY_OBJECT;let n=We.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new ae(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new PV({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};PV.NONE=Object.freeze({compute:function(e,t){return l(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new Ng(0,0,0,0,0),t}});PV.prototype.compute=function(e,t){if(!l(this._samples))return;if(l(t)||(t=new Ng(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,o=0,r=0;if(l(i)){let a=n[i],c=n[i+1],d=Q.lessThanOrEquals(a,e),u=!l(c),m=u||Q.greaterThanOrEquals(c,e);if(d&&m)return o=i,!u&&c.equals(e)&&++o,r=o+1,qre(this,n,this._samples,e,o,r,t),t}let s=xo(n,e,Q.compare,this._dateColumn);return s>=0?(st.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;let c=t[o],d=t[r];if(c.equals(d)||i.equals(c))return Qre(e,n,o,a,s),s;if(i.equals(d))return Qre(e,n,r,a,s),s;let u=Q.secondsDifference(i,c)/Q.secondsDifference(d,c),m=o*a,p=r*a,b=n[m+e._ut1MinusUtcSecondsColumn],f=n[p+e._ut1MinusUtcSecondsColumn],y=f-b;if(y>.5||y<-.5){let _=n[m+e._taiMinusUtcSecondsColumn],S=n[p+e._taiMinusUtcSecondsColumn];_!==S&&(d.equals(i)?b=f:f-=S-_)}return s.xPoleWander=IV(u,n[m+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=IV(u,n[m+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=IV(u,n[m+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=IV(u,n[m+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=IV(u,b,f),s}var XV=PV;var G9t=x(T(),1);function wc(e,t,n){this.heading=e??0,this.pitch=t??0,this.roll=n??0}wc.fromQuaternion=function(e,t){l(t)||(t=new wc);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),o=2*(e.w*e.x+e.y*e.z),r=1-2*(e.y*e.y+e.z*e.z),s=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(s,r),t.roll=Math.atan2(o,i),t.pitch=-W.asinClamped(n),t};wc.fromDegrees=function(e,t,n,i){return l(i)||(i=new wc),i.heading=e*W.RADIANS_PER_DEGREE,i.pitch=t*W.RADIANS_PER_DEGREE,i.roll=n*W.RADIANS_PER_DEGREE,i};wc.clone=function(e,t){if(l(e))return l(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new wc(e.heading,e.pitch,e.roll)};wc.equals=function(e,t){return e===t||l(e)&&l(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};wc.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&W.equalsEpsilon(e.heading,t.heading,n,i)&&W.equalsEpsilon(e.pitch,t.pitch,n,i)&&W.equalsEpsilon(e.roll,t.roll,n,i)};wc.prototype.clone=function(e){return wc.clone(this,e)};wc.prototype.equals=function(e){return wc.equals(this,e)};wc.prototype.equalsEpsilon=function(e,t,n){return wc.equalsEpsilon(this,e,t,n)};wc.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var bc=wc;var B9t=x(T(),1);var F9t=x(T(),1);var $re={};var ese=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function cFe(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t"u"?e:(l(VU)||(VU=document.createElement("a")),VU.href=e,VU.href)}var lT;function nse(){if(l(lT))return lT;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:l($re?.url)?e=$u(".",$re.url):typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(dU.toUrl)?e=$u("..",dT("Core/buildModuleUrl.js")):e=cFe(),lT=new We({url:tse(e)}),lT.appendForwardSlash(),lT}function lFe(e){return tse(dU.toUrl(`../${e}`))}function ise(e){return nse().getDerivedResource({url:e}).url}var GU;function dT(e){return l(GU)||(typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(dU.toUrl)?GU=lFe:GU=ise),GU(e)}dT._cesiumScriptRegex=ese;dT._buildModuleUrlFromBaseUrl=ise;dT._clearBaseResource=function(){lT=void 0};dT.setBaseUrl=function(e){lT=We.DEFAULT.getDerivedResource({url:e})};dT.getCesiumBaseUrl=nse;var $t=dT;var X9t=x(T(),1);function dFe(e,t,n){this.x=e,this.y=t,this.s=n}var uT=dFe;function EU(e){e=e??B.EMPTY_OBJECT,this._xysFileUrlTemplate=We.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=e.interpolationOrder??9,this._sampleZeroJulianEphemerisDate=e.sampleZeroJulianEphemerisDate??24423965e-1,this._sampleZeroDateTT=new Q(this._sampleZeroJulianEphemerisDate,0,ii.TAI),this._stepSizeDays=e.stepSizeDays??1,this._samplesPerXysFile=e.samplesPerXysFile??1e3,this._totalSamples=e.totalSamples??27426,this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),o=Math.pow(this._stepSizeDays,t);for(let r=0;r<=t;++r){n[r]=o,i[r]=r*this._stepSizeDays;for(let s=0;s<=t;++s)s!==r&&(n[r]*=r-s);n[r]=1/n[r]}this._work=new Array(t+1),this._coef=new Array(t+1)}var uFe=new Q(0,0,ii.TAI);function UH(e,t,n){let i=uFe;return i.dayNumber=t,i.secondsOfDay=n,Q.daysDifference(i,e._sampleZeroDateTT)}EU.prototype.preload=function(e,t,n,i){let o=UH(this,e,t),r=UH(this,n,i),s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=r/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);let c=s/this._samplesPerXysFile|0,d=a/this._samplesPerXysFile|0,u=[];for(let m=c;m<=d;++m)u.push(DH(this,m));return Promise.all(u)};EU.prototype.computeXysRadians=function(e,t,n){let i=UH(this,e,t);if(i<0)return;let o=i/this._stepSizeDays|0;if(o>=this._totalSamples)return;let r=this._interpolationOrder,s=o-(r/2|0);s<0&&(s=0);let a=s+r;a>=this._totalSamples&&(a=this._totalSamples-1,s=a-r,s<0&&(s=0));let c=!1,d=this._samples;if(l(d[s*3])||(DH(this,s/this._samplesPerXysFile|0),c=!0),l(d[a*3])||(DH(this,a/this._samplesPerXysFile|0),c=!0),c)return;l(n)?(n.x=0,n.y=0,n.s=0):n=new uT(0,0,0);let u=i-s*this._stepSizeDays,m=this._work,p=this._denominators,b=this._coef,f=this._xTable,y,_;for(y=0;y<=r;++y)m[y]=u-f[y];for(y=0;y<=r;++y){for(b[y]=1,_=0;_<=r;++_)_!==y&&(b[y]*=m[_]);b[y]*=p[y];let S=(s+y)*3;n.x+=b[y]*d[S++],n.y+=b[y]*d[S++],n.s+=b[y]*d[S]}return n};EU.prototype._updateChunkData=function(e,{samples:t}){this._chunkDownloadsInProgress[e]=void 0;let n=this._samplesPerXysFile,i=e*n*3;for(let o=0;od;)TFe(c,LU),e.transpose(LU,rse),e.multiply(c,LU,c),e.multiply(rse,c,c),e.multiply(a,LU,a),++r>2&&(++s,r=0);return n}static abs(t,n){return n[0]=Math.abs(t[0]),n[1]=Math.abs(t[1]),n[2]=Math.abs(t[2]),n[3]=Math.abs(t[3]),n[4]=Math.abs(t[4]),n[5]=Math.abs(t[5]),n[6]=Math.abs(t[6]),n[7]=Math.abs(t[7]),n[8]=Math.abs(t[8]),n}static determinant(t){let n=t[0],i=t[3],o=t[6],r=t[1],s=t[4],a=t[7],c=t[2],d=t[5],u=t[8];return n*(s*u-d*a)+r*(d*o-i*u)+c*(i*a-s*o)}static inverse(t,n){let i=t[0],o=t[1],r=t[2],s=t[3],a=t[4],c=t[5],d=t[6],u=t[7],m=t[8],p=e.determinant(t);n[0]=a*m-u*c,n[1]=u*r-o*m,n[2]=o*c-a*r,n[3]=d*c-s*m,n[4]=i*m-d*r,n[5]=s*r-i*c,n[6]=s*u-d*a,n[7]=d*o-i*u,n[8]=i*a-s*o;let b=1/p;return e.multiplyByScalar(n,b,n)}static inverseTranspose(t,n){return e.inverse(e.transpose(t,gFe),n)}static equals(t,n){return t===n||l(t)&&l(n)&&t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]&&t[4]===n[4]&&t[5]===n[5]&&t[6]===n[6]&&t[7]===n[7]&&t[8]===n[8]}static equalsEpsilon(t,n,i){return i=i??0,t===n||l(t)&&l(n)&&Math.abs(t[0]-n[0])<=i&&Math.abs(t[1]-n[1])<=i&&Math.abs(t[2]-n[2])<=i&&Math.abs(t[3]-n[3])<=i&&Math.abs(t[4]-n[4])<=i&&Math.abs(t[5]-n[5])<=i&&Math.abs(t[6]-n[6])<=i&&Math.abs(t[7]-n[7])<=i&&Math.abs(t[8]-n[8])<=i}get length(){return e.packedLength}clone(t){return e.clone(this,t)}equals(t){return e.equals(this,t)}static equalsArray(t,n,i){return t[0]===n[i]&&t[1]===n[i+1]&&t[2]===n[i+2]&&t[3]===n[i+3]&&t[4]===n[i+4]&&t[5]===n[i+5]&&t[6]===n[i+6]&&t[7]===n[i+7]&&t[8]===n[i+8]}equalsEpsilon(t,n){return e.equalsEpsilon(this,t,n)}toString(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`}};ho.packedLength=9;ho.fromArray=ho.unpack;ho.IDENTITY=Object.freeze(new ho(1,0,0,0,1,0,0,0,1));ho.ZERO=Object.freeze(new ho(0,0,0,0,0,0,0,0,0));ho.COLUMN0ROW0=0;ho.COLUMN0ROW1=1;ho.COLUMN0ROW2=2;ho.COLUMN1ROW0=3;ho.COLUMN1ROW1=4;ho.COLUMN1ROW2=5;ho.COLUMN2ROW0=6;ho.COLUMN2ROW1=7;ho.COLUMN2ROW2=8;var hFe=new h,fFe=new h,OH=new h,ose=new h,pFe=new h,bFe=new h,LU=new ho,rse=new ho,gFe=new ho;function yFe(e){let t=0;for(let n=0;n<9;++n){let i=e[n];t+=i*i}return Math.sqrt(t)}var BH=[1,0,0],zH=[2,2,1];function xFe(e){let t=0;for(let n=0;n<3;++n){let i=e[ho.getElementIndex(zH[n],BH[n])];t+=2*i*i}return Math.sqrt(t)}function TFe(e,t){let n=W.EPSILON15,i=0,o=1;for(let d=0;d<3;++d){let u=Math.abs(e[ho.getElementIndex(zH[d],BH[d])]);u>i&&(o=d,i=u)}let r=1,s=0,a=BH[o],c=zH[o];if(Math.abs(e[ho.getElementIndex(c,a)])>n){let d=e[ho.getElementIndex(c,c)],u=e[ho.getElementIndex(a,a)],m=e[ho.getElementIndex(c,a)],p=(d-u)/2/m,b;p<0?b=-1/(-p+Math.sqrt(1+p*p)):b=1/(p+Math.sqrt(1+p*p)),r=1/Math.sqrt(1+b*b),s=b*r}return t=ho.clone(ho.IDENTITY,t),t[ho.getElementIndex(a,a)]=t[ho.getElementIndex(c,c)]=r,t[ho.getElementIndex(c,a)]=s,t[ho.getElementIndex(a,c)]=-s,t}var $=ho;var rUt=x(T(),1);var rr=class e{constructor(t,n,i,o,r,s,a,c,d,u,m,p,b,f,y,_){this[0]=t??0,this[1]=r??0,this[2]=d??0,this[3]=b??0,this[4]=n??0,this[5]=s??0,this[6]=u??0,this[7]=f??0,this[8]=i??0,this[9]=a??0,this[10]=m??0,this[11]=y??0,this[12]=o??0,this[13]=c??0,this[14]=p??0,this[15]=_??0}static pack(t,n,i){return i=i??0,n[i++]=t[0],n[i++]=t[1],n[i++]=t[2],n[i++]=t[3],n[i++]=t[4],n[i++]=t[5],n[i++]=t[6],n[i++]=t[7],n[i++]=t[8],n[i++]=t[9],n[i++]=t[10],n[i++]=t[11],n[i++]=t[12],n[i++]=t[13],n[i++]=t[14],n[i]=t[15],n}static unpack(t,n,i){return n=n??0,l(i)||(i=new e),i[0]=t[n++],i[1]=t[n++],i[2]=t[n++],i[3]=t[n++],i[4]=t[n++],i[5]=t[n++],i[6]=t[n++],i[7]=t[n++],i[8]=t[n++],i[9]=t[n++],i[10]=t[n++],i[11]=t[n++],i[12]=t[n++],i[13]=t[n++],i[14]=t[n++],i[15]=t[n],i}static packArray(t,n){let i=t.length,o=i*16;l(n)?!Array.isArray(n)&&n.length!==o||n.length!==o&&(n.length=o):n=new Array(o);for(let r=0;r{let t=new Image;t.onload=function(){gl._result=t.width>0&&t.height>0,e(gl._result)},t.onerror=function(){gl._result=!1,e(gl._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),gl._promise};Object.defineProperties(gl,{initialized:{get:function(){return l(gl._result)}}});var oZ=[];typeof ArrayBuffer<"u"&&(oZ.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&oZ.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&oZ.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&oZ.push(BigInt64Array),typeof BigUint64Array<"u"&&oZ.push(BigUint64Array));var tm={isChrome:qH,chromeVersion:LFe,isSafari:lse,safariVersion:WFe,isWebkit:dse,webkitVersion:vFe,isEdge:YU,edgeVersion:FFe,isFirefox:NU,firefoxVersion:XFe,isWindows:IFe,isIPadOrIOS:PFe,hardwareConcurrency:em.hardwareConcurrency??3,supportsPointerEvents:YFe,supportsImageRenderingPixelated:hse,supportsWebP:gl,imageRenderingValue:NFe,typedArrayTypes:oZ};tm.supportsBasis=function(e){return tm.supportsWebAssembly()&&e.context.supportsBasis};tm.supportsFullscreen=function(){return Mr.supportsFullscreen()};tm.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};tm.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};tm.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};tm.supportsBigInt=function(){return typeof BigInt<"u"};tm.supportsWebWorkers=function(){return typeof Worker<"u"};tm.supportsWebAssembly=function(){return typeof WebAssembly<"u"};tm.supportsWebgl2=function(e){return e.context.webgl2};tm.supportsEsmWebWorkers=function(){return!NU()||parseInt($H)>=114};var mn=tm;function ut(e,t,n,i){this.x=e??0,this.y=t??0,this.z=n??0,this.w=i??0}var MV=new h;ut.fromAxisAngle=function(e,t,n){let i=t/2,o=Math.sin(i);MV=h.normalize(e,MV);let r=MV.x*o,s=MV.y*o,a=MV.z*o,c=Math.cos(i);return l(n)?(n.x=r,n.y=s,n.z=a,n.w=c,n):new ut(r,s,a,c)};var wFe=[1,2,0],MFe=new Array(3);ut.fromRotationMatrix=function(e,t){let n,i,o,r,s,a=e[$.COLUMN0ROW0],c=e[$.COLUMN1ROW1],d=e[$.COLUMN2ROW2],u=a+c+d;if(u>0)n=Math.sqrt(u+1),s=.5*n,n=.5/n,i=(e[$.COLUMN1ROW2]-e[$.COLUMN2ROW1])*n,o=(e[$.COLUMN2ROW0]-e[$.COLUMN0ROW2])*n,r=(e[$.COLUMN0ROW1]-e[$.COLUMN1ROW0])*n;else{let m=wFe,p=0;c>a&&(p=1),d>a&&d>c&&(p=2);let b=m[p],f=m[b];n=Math.sqrt(e[$.getElementIndex(p,p)]-e[$.getElementIndex(b,b)]-e[$.getElementIndex(f,f)]+1);let y=MFe;y[p]=.5*n,n=.5/n,s=(e[$.getElementIndex(f,b)]-e[$.getElementIndex(b,f)])*n,y[b]=(e[$.getElementIndex(b,p)]+e[$.getElementIndex(p,b)])*n,y[f]=(e[$.getElementIndex(f,p)]+e[$.getElementIndex(p,f)])*n,i=-y[0],o=-y[1],r=-y[2]}return l(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new ut(i,o,r,s)};var fse=new ut,pse=new ut,eK=new ut,bse=new ut;ut.fromHeadingPitchRoll=function(e,t){return bse=ut.fromAxisAngle(h.UNIT_X,e.roll,fse),eK=ut.fromAxisAngle(h.UNIT_Y,-e.pitch,t),t=ut.multiply(eK,bse,eK),pse=ut.fromAxisAngle(h.UNIT_Z,-e.heading,fse),ut.multiply(pse,t,t)};var wU=new h,tK=new h,mh=new ut,gse=new ut,MU=new ut;ut.packedLength=4;ut.pack=function(e,t,n){return n=n??0,t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};ut.unpack=function(e,t,n){return t=t??0,l(n)||(n=new ut),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};ut.packedInterpolationLength=3;ut.convertPackedArrayForInterpolation=function(e,t,n,i){ut.unpack(e,n*4,MU),ut.conjugate(MU,MU);for(let o=0,r=n-t+1;o=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,d=a*a;for(let b=7;b>=0;--b)S0[b]=(kU[b]*c-UU[b])*s,A0[b]=(kU[b]*d-UU[b])*s;let u=r*n*(1+S0[0]*(1+S0[1]*(1+S0[2]*(1+S0[3]*(1+S0[4]*(1+S0[5]*(1+S0[6]*(1+S0[7])))))))),m=a*(1+A0[0]*(1+A0[1]*(1+A0[2]*(1+A0[3]*(1+A0[4]*(1+A0[5]*(1+A0[6]*(1+A0[7])))))))),p=ut.multiplyByScalar(e,m,DFe);return ut.multiplyByScalar(t,u,i),ut.add(p,i,i)};ut.fastSquad=function(e,t,n,i,o,r){let s=ut.fastSlerp(e,t,o,kV),a=ut.fastSlerp(n,i,o,rZ);return ut.fastSlerp(s,a,2*o*(1-o),r)};ut.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};ut.equalsEpsilon=function(e,t,n){return n=n??0,e===t||l(e)&&l(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};ut.ZERO=Object.freeze(new ut(0,0,0,0));ut.IDENTITY=Object.freeze(new ut(0,0,0,1));ut.prototype.clone=function(e){return ut.clone(this,e)};ut.prototype.equals=function(e){return ut.equals(this,e)};ut.prototype.equalsEpsilon=function(e,t){return ut.equalsEpsilon(this,e,t)};ut.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Ne=ut;var bi={},rK={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},sZ={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},sK={},ld={east:new h,north:new h,up:new h,west:new h,south:new h,down:new h},Ug=new h,Dg=new h,Og=new h;bi.localFrameToFixedFrameGenerator=function(e,t){if(!rK.hasOwnProperty(e)||!rK[e].hasOwnProperty(t))throw new Te("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=rK[e][t],i,o=e+t;return l(sK[o])?i=sK[o]:(i=function(r,s,a){if(l(a)||(a=new F),h.equalsEpsilon(r,h.ZERO,W.EPSILON14))h.unpack(sZ[e],0,Ug),h.unpack(sZ[t],0,Dg),h.unpack(sZ[n],0,Og);else if(W.equalsEpsilon(r.x,0,W.EPSILON14)&&W.equalsEpsilon(r.y,0,W.EPSILON14)){let c=W.sign(r.z);h.unpack(sZ[e],0,Ug),e!=="east"&&e!=="west"&&h.multiplyByScalar(Ug,c,Ug),h.unpack(sZ[t],0,Dg),t!=="east"&&t!=="west"&&h.multiplyByScalar(Dg,c,Dg),h.unpack(sZ[n],0,Og),n!=="east"&&n!=="west"&&h.multiplyByScalar(Og,c,Og)}else{s=s??ie.default,s.geodeticSurfaceNormal(r,ld.up);let c=ld.up,d=ld.east;d.x=-r.y,d.y=r.x,d.z=0,h.normalize(d,ld.east),h.cross(c,d,ld.north),h.multiplyByScalar(ld.up,-1,ld.down),h.multiplyByScalar(ld.east,-1,ld.west),h.multiplyByScalar(ld.north,-1,ld.south),Ug=ld[e],Dg=ld[t],Og=ld[n]}return a[0]=Ug.x,a[1]=Ug.y,a[2]=Ug.z,a[3]=0,a[4]=Dg.x,a[5]=Dg.y,a[6]=Dg.z,a[7]=0,a[8]=Og.x,a[9]=Og.y,a[10]=Og.z,a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a},sK[o]=i),i};bi.eastNorthUpToFixedFrame=bi.localFrameToFixedFrameGenerator("east","north");bi.northEastDownToFixedFrame=bi.localFrameToFixedFrameGenerator("north","east");bi.northUpEastToFixedFrame=bi.localFrameToFixedFrameGenerator("north","up");bi.northWestUpToFixedFrame=bi.localFrameToFixedFrameGenerator("north","west");var OFe=new Ne,BFe=new h(1,1,1),zFe=new F;bi.headingPitchRollToFixedFrame=function(e,t,n,i,o){i=i??bi.eastNorthUpToFixedFrame;let r=Ne.fromHeadingPitchRoll(t,OFe),s=F.fromTranslationQuaternionRotationScale(h.ZERO,r,BFe,zFe);return o=i(e,n,o),F.multiply(o,s,o)};var HFe=new F,KFe=new $;bi.headingPitchRollQuaternion=function(e,t,n,i,o){let r=bi.headingPitchRollToFixedFrame(e,t,n,i,HFe),s=F.getMatrix3(r,KFe);return Ne.fromRotationMatrix(s,o)};var JFe=new h(1,1,1),jFe=new h,Tse=new F,QFe=new F,qFe=new $,$Fe=new Ne;bi.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=t??ie.default,n=n??bi.eastNorthUpToFixedFrame,l(i)||(i=new bc);let o=F.getTranslation(e,jFe);if(h.equals(o,h.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let r=F.inverseTransformation(n(o,t,Tse),Tse),s=F.setScale(e,JFe,QFe);s=F.setTranslation(s,h.ZERO,s),r=F.multiply(r,s,r);let a=Ne.fromRotationMatrix(F.getMatrix3(r,qFe),$Fe);return a=Ne.normalize(a,a),bc.fromQuaternion(a,i)};var eIe=6*3600+2460+50.54841,tIe=8640184812866e-6,nIe=.093104,iIe=-62e-7,oIe=11772758384668e-32,rIe=72921158553e-15,sIe=W.TWO_PI/86400,DU=new Q;bi.computeIcrfToCentralBodyFixedMatrix=function(e,t){let n=bi.computeIcrfToFixedMatrix(e,t);return l(n)||(n=bi.computeTemeToPseudoFixedMatrix(e,t)),n};bi.computeTemeToPseudoFixedMatrix=function(e,t){DU=Q.addSeconds(e,-Q.computeTaiMinusUtc(e),DU);let n=DU.dayNumber,i=DU.secondsOfDay,o,r=n-2451545;i>=43200?o=(r+.5)/si.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/si.DAYS_PER_JULIAN_CENTURY;let a=(eIe+o*(tIe+o*(nIe+o*iIe)))*sIe%W.TWO_PI,c=rIe+oIe*(n-24515455e-1),d=(i+si.SECONDS_PER_DAY*.5)%si.SECONDS_PER_DAY,u=a+c*d,m=Math.cos(u),p=Math.sin(u);return l(t)?(t[0]=m,t[1]=-p,t[2]=0,t[3]=p,t[4]=m,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new $(m,p,0,-p,m,0,0,0,1)};bi.iau2006XysData=new YV;bi.earthOrientationParameters=XV.NONE;var lK=32.184,aIe=2451545;bi.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+lK,i=e.stop.dayNumber,o=e.stop.secondsOfDay+lK;return bi.iau2006XysData.preload(t,n,i,o)};bi.computeIcrfToFixedMatrix=function(e,t){l(t)||(t=new $);let n=bi.computeFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var cIe=32.184,lIe=2451545,OU=new bc,dIe=new $,uIe=new Q;bi.computeMoonFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=Q.addSeconds(e,cIe,uIe),i=Q.totalDays(n)-lIe,o=W.toRadians(12.112)-W.toRadians(.052992)*i,r=W.toRadians(24.224)-W.toRadians(.105984)*i,s=W.toRadians(227.645)+W.toRadians(13.012)*i,a=W.toRadians(261.105)+W.toRadians(13.340716)*i,c=W.toRadians(358)+W.toRadians(.9856)*i;return OU.pitch=W.toRadians(180)-W.toRadians(3.878)*Math.sin(o)-W.toRadians(.12)*Math.sin(r)+W.toRadians(.07)*Math.sin(s)-W.toRadians(.017)*Math.sin(a),OU.roll=W.toRadians(66.53-90)+W.toRadians(1.543)*Math.cos(o)+W.toRadians(.24)*Math.cos(r)-W.toRadians(.028)*Math.cos(s)+W.toRadians(.007)*Math.cos(a),OU.heading=W.toRadians(244.375-90)+W.toRadians(13.17635831)*i+W.toRadians(3.558)*Math.sin(o)+W.toRadians(.121)*Math.sin(r)-W.toRadians(.064)*Math.sin(s)+W.toRadians(.016)*Math.sin(a)+W.toRadians(.025)*Math.sin(c),$.fromHeadingPitchRoll(OU,dIe)};bi.computeIcrfToMoonFixedMatrix=function(e,t){l(t)||(t=new $);let n=bi.computeMoonFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var mIe=new uT(0,0,0),hIe=new Ng(0,0,0,0,0,0),aK=new $,cK=new $;bi.computeFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=bi.earthOrientationParameters.compute(e,hIe);if(!l(n))return;let i=e.dayNumber,o=e.secondsOfDay+lK,r=bi.iau2006XysData.computeXysRadians(i,o,mIe);if(!l(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),d=aK;d[0]=1-c*s*s,d[3]=-c*s*a,d[6]=s,d[1]=-c*s*a,d[4]=1-c*a*a,d[7]=a,d[2]=-s,d[5]=-a,d[8]=1-c*(s*s+a*a);let u=$.fromRotationZ(-r.s,cK),m=$.multiply(d,u,aK),p=e.dayNumber,b=e.secondsOfDay-Q.computeTaiMinusUtc(e)+n.ut1MinusUtc,f=p-2451545,y=b/si.SECONDS_PER_DAY,_=.779057273264+y+.00273781191135448*(f+y);_=_%1*W.TWO_PI;let S=$.fromRotationZ(_,cK),A=$.multiply(m,S,aK),Z=Math.cos(n.xPoleWander),R=Math.cos(n.yPoleWander),G=Math.sin(n.xPoleWander),E=Math.sin(n.yPoleWander),v=i-aIe+o/si.SECONDS_PER_DAY;v/=36525;let I=-47e-6*v*W.RADIANS_PER_DEGREE/3600,X=Math.cos(I),Y=Math.sin(I),g=cK;return g[0]=Z*X,g[1]=Z*Y,g[2]=G,g[3]=-R*Y+E*G*X,g[4]=R*X+E*G*Y,g[5]=-E*Z,g[6]=-E*Y-R*G*X,g[7]=E*X-R*G*Y,g[8]=R*Z,$.multiply(A,g,t)};var fIe=new ce;bi.pointToWindowCoordinates=function(e,t,n,i){return i=bi.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};bi.pointToGLWindowCoordinates=function(e,t,n,i){l(i)||(i=new k);let o=fIe;return F.multiplyByVector(e,ce.fromElements(n.x,n.y,n.z,1,o),o),ce.multiplyByScalar(o,1/o.w,o),F.multiplyByVector(t,o,o),k.fromCartesian4(o,i)};var pIe=new h,bIe=new h,gIe=new h;bi.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=(n??ie.default).geodeticSurfaceNormal(e,pIe),r=h.cross(t,o,bIe);h.equalsEpsilon(r,h.ZERO,W.EPSILON6)&&(r=h.clone(h.UNIT_X,r));let s=h.cross(r,t,gIe);return h.normalize(s,s),h.cross(t,s,r),h.negate(r,r),h.normalize(r,r),l(i)||(i=new $),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=r.x,i[4]=r.y,i[5]=r.z,i[6]=s.x,i[7]=s.y,i[8]=s.z,i};bi.SWIZZLE_3D_TO_2D_MATRIX=Object.freeze(new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1));var _se=new fe,dK=new h,yIe=new h,xIe=new $,uK=new F,Sse=new F;bi.basisTo2D=function(e,t,n){let i=F.getTranslation(t,yIe),o=e.ellipsoid,r;if(h.equals(i,h.ZERO))r=h.clone(h.ZERO,dK);else{let u=o.cartesianToCartographic(i,_se);r=e.project(u,dK),h.fromElements(r.z,r.x,r.y,r)}let s=bi.eastNorthUpToFixedFrame(i,o,uK),a=F.inverseTransformation(s,Sse),c=F.getMatrix3(t,xIe),d=F.multiplyByMatrix3(a,c,n);return F.multiply(bi.SWIZZLE_3D_TO_2D_MATRIX,d,n),F.setTranslation(n,r,n),n};bi.ellipsoidTo2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=bi.eastNorthUpToFixedFrame(t,i,uK),r=F.inverseTransformation(o,Sse),s=i.cartesianToCartographic(t,_se),a=e.project(s,dK);h.fromElements(a.z,a.x,a.y,a);let c=F.fromTranslation(a,uK);return F.multiply(bi.SWIZZLE_3D_TO_2D_MATRIX,r,n),F.multiply(c,n,n),n};var xt=bi;var aZ=class e{constructor(t,n,i,o){this.west=t??0,this.south=n??0,this.east=i??0,this.north=o??0}get width(){return e.computeWidth(this)}get height(){return e.computeHeight(this)}static pack(t,n,i){return i=i??0,n[i++]=t.west,n[i++]=t.south,n[i++]=t.east,n[i]=t.north,n}static unpack(t,n,i){return n=n??0,l(i)||(i=new e),i.west=t[n++],i.south=t[n++],i.east=t[n++],i.north=t[n],i}static computeWidth(t){let n=t.east,i=t.west;return n=0?m.longitude:m.longitude+W.TWO_PI;r=Math.min(r,p),s=Math.max(s,p)}return o-i>s-r&&(i=r,o=s,o>W.PI&&(o=o-W.TWO_PI),i>W.PI&&(i=i-W.TWO_PI)),l(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new e(i,a,o,c)}static fromCartesianArray(t,n,i){n=n??ie.default;let o=Number.MAX_VALUE,r=-Number.MAX_VALUE,s=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=Number.MAX_VALUE,d=-Number.MAX_VALUE;for(let u=0,m=t.length;u=0?p.longitude:p.longitude+W.TWO_PI;s=Math.min(s,b),a=Math.max(a,b)}return r-o>a-s&&(o=s,r=a,r>W.PI&&(r=r-W.TWO_PI),o>W.PI&&(o=o-W.TWO_PI)),l(i)?(i.west=o,i.south=c,i.east=r,i.north=d,i):new e(o,c,r,d)}static fromBoundingSphere(t,n,i){let o=t.center,r=t.radius;if(l(n)||(n=ie.default),l(i)||(i=new e),h.equals(o,h.ZERO))return e.clone(e.MAX_VALUE,i),i;let s=xt.eastNorthUpToFixedFrame(o,n,TIe),a=F.multiplyByPointAsVector(s,h.UNIT_X,_Ie);h.normalize(a,a);let c=F.multiplyByPointAsVector(s,h.UNIT_Y,SIe);h.normalize(c,c),h.multiplyByScalar(c,r,c),h.multiplyByScalar(a,r,a);let d=h.negate(c,ZIe),u=h.negate(a,AIe),m=mK,p=m[0];return h.add(o,c,p),p=m[1],h.add(o,u,p),p=m[2],h.add(o,d,p),p=m[3],h.add(o,a,p),m[4]=o,e.fromCartesianArray(m,n,i)}static clone(t,n){if(l(t))return l(n)?(n.west=t.west,n.south=t.south,n.east=t.east,n.north=t.north,n):new e(t.west,t.south,t.east,t.north)}static equalsEpsilon(t,n,i){return i=i??0,t===n||l(t)&&l(n)&&Math.abs(t.west-n.west)<=i&&Math.abs(t.south-n.south)<=i&&Math.abs(t.east-n.east)<=i&&Math.abs(t.north-n.north)<=i}clone(t){return e.clone(this,t)}equals(t){return e.equals(this,t)}static equals(t,n){return t===n||l(t)&&l(n)&&t.west===n.west&&t.south===n.south&&t.east===n.east&&t.north===n.north}equalsEpsilon(t,n){return e.equalsEpsilon(this,t,n)}static _validate(t){}static southwest(t,n){return l(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new fe(t.west,t.south)}static northwest(t,n){return l(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new fe(t.west,t.north)}static northeast(t,n){return l(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new fe(t.east,t.north)}static southeast(t,n){return l(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new fe(t.east,t.south)}static center(t,n){let i=t.east,o=t.west;i0?o+=W.TWO_PI:s0&&(s+=W.TWO_PI),o=m))return l(i)?(i.west=c,i.south=u,i.east=d,i.north=m,i):new e(c,u,d,m)}static simpleIntersection(t,n,i){let o=Math.max(t.west,n.west),r=Math.max(t.south,n.south),s=Math.min(t.east,n.east),a=Math.min(t.north,n.north);if(!(r>=a||o>=s))return l(i)?(i.west=o,i.south=r,i.east=s,i.north=a,i):new e(o,r,s,a)}static union(t,n,i){l(i)||(i=new e);let o=t.east,r=t.west,s=n.east,a=n.west;o0?o+=W.TWO_PI:s0&&(s+=W.TWO_PI),or||W.equalsEpsilon(i,r,W.EPSILON14))&&(i=t.south&&o<=t.north}static subsample(t,n,i,o){n=n??ie.default,i=i??0,l(o)||(o=[]);let r=0,s=t.north,a=t.south,c=t.east,d=t.west,u=CIe;u.height=i,u.longitude=d,u.latitude=s,o[r]=n.cartographicToCartesian(u,o[r]),r++,u.longitude=c,o[r]=n.cartographicToCartesian(u,o[r]),r++,u.latitude=a,o[r]=n.cartographicToCartesian(u,o[r]),r++,u.longitude=d,o[r]=n.cartographicToCartesian(u,o[r]),r++,s<0?u.latitude=s:a>0?u.latitude=a:u.latitude=0;for(let m=1;m<8;++m)u.longitude=-Math.PI+m*W.PI_OVER_TWO,e.contains(t,u)&&(o[r]=n.cartographicToCartesian(u,o[r]),r++);return u.latitude===0&&(u.longitude=d,o[r]=n.cartographicToCartesian(u,o[r]),r++,u.longitude=c,o[r]=n.cartographicToCartesian(u,o[r]),r++),o.length=r,o}static subsection(t,n,i,o,r,s){if(l(s)||(s=new e),t.west<=t.east){let c=t.east-t.west;s.west=t.west+n*c,s.east=t.west+o*c}else{let c=W.TWO_PI+t.east-t.west;s.west=W.negativePiToPi(t.west+n*c),s.east=W.negativePiToPi(t.west+o*c)}let a=t.north-t.south;return s.south=t.south+i*a,s.north=t.south+r*a,n===1&&(s.west=t.east),o===1&&(s.east=t.east),i===1&&(s.south=t.north),r===1&&(s.north=t.north),s}};aZ.packedLength=4;var TIe=new F,_Ie=new h,SIe=new h,AIe=new h,ZIe=new h,mK=new Array(5);for(let e=0;en.width?n.width=i:i<0&&(n.width-=i,n.x=t.x),o>n.height?n.height=o:o<0&&(n.height-=o,n.y=t.y),n};ns.intersect=function(e,t){let n=e.x,i=e.y,o=t.x,r=t.y;return n>o+t.width||n+e.widthr+t.height?Qt.OUTSIDE:Qt.INTERSECTING};ns.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};ns.prototype.clone=function(e){return ns.clone(this,e)};ns.prototype.intersect=function(e){return ns.intersect(this,e)};ns.prototype.equals=function(e){return ns.equals(this,e)};var it=ns;var l5t=x(T(),1);function hK(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}var _e=class e{constructor(t,n,i,o){this.red=t??1,this.green=n??1,this.blue=i??1,this.alpha=o??1}static fromCartesian4(t,n){return l(n)?(n.red=t.x,n.green=t.y,n.blue=t.z,n.alpha=t.w,n):new e(t.x,t.y,t.z,t.w)}static fromBytes(t,n,i,o,r){return t=e.byteToFloat(t??255),n=e.byteToFloat(n??255),i=e.byteToFloat(i??255),o=e.byteToFloat(o??255),l(r)?(r.red=t,r.green=n,r.blue=i,r.alpha=o,r):new e(t,n,i,o)}static fromAlpha(t,n,i){return l(i)?(i.red=t.red,i.green=t.green,i.blue=t.blue,i.alpha=n,i):new e(t.red,t.green,t.blue,n)}static fromRgba(t,n){return pK[0]=t,e.fromBytes(Z0[0],Z0[1],Z0[2],Z0[3],n)}static fromHsl(t,n,i,o,r){t=(t??0)%1,n=n??0,i=i??0,o=o??1;let s=i,a=i,c=i;if(n!==0){let d;i<.5?d=i*(1+n):d=i+n-i*n;let u=2*i-d;s=hK(u,d,t+1/3),a=hK(u,d,t),c=hK(u,d,t-1/3)}return l(r)?(r.red=s,r.green=a,r.blue=c,r.alpha=o,r):new e(s,a,c,o)}static fromRandom(t,n){t=t??B.EMPTY_OBJECT;let i=t.red;if(!l(i)){let a=t.minimumRed??0,c=t.maximumRed??1;i=a+W.nextRandomNumber()*(c-a)}let o=t.green;if(!l(o)){let a=t.minimumGreen??0,c=t.maximumGreen??1;o=a+W.nextRandomNumber()*(c-a)}let r=t.blue;if(!l(r)){let a=t.minimumBlue??0,c=t.maximumBlue??1;r=a+W.nextRandomNumber()*(c-a)}let s=t.alpha;if(!l(s)){let a=t.minimumAlpha??0,c=t.maximumAlpha??1;s=a+W.nextRandomNumber()*(c-a)}return l(n)?(n.red=i,n.green=o,n.blue=r,n.alpha=s,n):new e(i,o,r,s)}static fromCssColorString(t,n){l(n)||(n=new e),t=t.trim();let i=e[t.toUpperCase()];if(l(i))return e.clone(i,n),n;let o=GIe.exec(t);return o!==null?(n.red=parseInt(o[1],16)/15,n.green=parseInt(o[2],16)/15,n.blue=parseInt(o[3],16)/15,n.alpha=parseInt(o[4]??"f",16)/15,n):(o=EIe.exec(t),o!==null?(n.red=parseInt(o[1],16)/255,n.green=parseInt(o[2],16)/255,n.blue=parseInt(o[3],16)/255,n.alpha=parseInt(o[4]??"ff",16)/255,n):(o=LIe.exec(t),o!==null?(n.red=parseFloat(o[1])/(o[1].substr(-1)==="%"?100:255),n.green=parseFloat(o[2])/(o[2].substr(-1)==="%"?100:255),n.blue=parseFloat(o[3])/(o[3].substr(-1)==="%"?100:255),n.alpha=parseFloat(o[4]??"1.0"),n):(o=WIe.exec(t),o!==null?e.fromHsl(parseFloat(o[1])/360,parseFloat(o[2])/100,parseFloat(o[3])/100,parseFloat(o[4]??"1.0"),n):(n=void 0,n))))}static pack(t,n,i){return i=i??0,n[i++]=t.red,n[i++]=t.green,n[i++]=t.blue,n[i]=t.alpha,n}static unpack(t,n,i){return n=n??0,l(i)||(i=new e),i.red=t[n++],i.green=t[n++],i.blue=t[n++],i.alpha=t[n],i}static byteToFloat(t){return t/255}static floatToByte(t){return t===1?255:t*256|0}static clone(t,n){if(l(t))return l(n)?(n.red=t.red,n.green=t.green,n.blue=t.blue,n.alpha=t.alpha,n):new e(t.red,t.green,t.blue,t.alpha)}static equals(t,n){return t===n||l(t)&&l(n)&&t.red===n.red&&t.green===n.green&&t.blue===n.blue&&t.alpha===n.alpha}static equalsArray(t,n,i){return t.red===n[i]&&t.green===n[i+1]&&t.blue===n[i+2]&&t.alpha===n[i+3]}clone(t){return e.clone(this,t)}equals(t){return e.equals(this,t)}equalsEpsilon(t,n){return this===t||l(t)&&Math.abs(this.red-t.red)<=n&&Math.abs(this.green-t.green)<=n&&Math.abs(this.blue-t.blue)<=n&&Math.abs(this.alpha-t.alpha)<=n}toString(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`}toCssColorString(){let t=e.floatToByte(this.red),n=e.floatToByte(this.green),i=e.floatToByte(this.blue);return this.alpha===1?`rgb(${t},${n},${i})`:`rgba(${t},${n},${i},${this.alpha})`}toCssHexString(){let t=e.floatToByte(this.red).toString(16);t.length<2&&(t=`0${t}`);let n=e.floatToByte(this.green).toString(16);n.length<2&&(n=`0${n}`);let i=e.floatToByte(this.blue).toString(16);if(i.length<2&&(i=`0${i}`),this.alpha<1){let o=e.floatToByte(this.alpha).toString(16);return o.length<2&&(o=`0${o}`),`#${t}${n}${i}${o}`}return`#${t}${n}${i}`}toBytes(t){let n=e.floatToByte(this.red),i=e.floatToByte(this.green),o=e.floatToByte(this.blue),r=e.floatToByte(this.alpha);return l(t)?(t[0]=n,t[1]=i,t[2]=o,t[3]=r,t):[n,i,o,r]}static bytesToRgba(t,n,i,o){return Z0[0]=t,Z0[1]=n,Z0[2]=i,Z0[3]=o,pK[0]}toRgba(){return e.bytesToRgba(e.floatToByte(this.red),e.floatToByte(this.green),e.floatToByte(this.blue),e.floatToByte(this.alpha))}brighten(t,n){return t=1-t,n.red=1-(1-this.red)*t,n.green=1-(1-this.green)*t,n.blue=1-(1-this.blue)*t,n.alpha=this.alpha,n}darken(t,n){return t=1-t,n.red=this.red*t,n.green=this.green*t,n.blue=this.blue*t,n.alpha=this.alpha,n}withAlpha(t,n){return e.fromAlpha(this,t,n)}static add(t,n,i){return i.red=t.red+n.red,i.green=t.green+n.green,i.blue=t.blue+n.blue,i.alpha=t.alpha+n.alpha,i}static subtract(t,n,i){return i.red=t.red-n.red,i.green=t.green-n.green,i.blue=t.blue-n.blue,i.alpha=t.alpha-n.alpha,i}static multiply(t,n,i){return i.red=t.red*n.red,i.green=t.green*n.green,i.blue=t.blue*n.blue,i.alpha=t.alpha*n.alpha,i}static divide(t,n,i){return i.red=t.red/n.red,i.green=t.green/n.green,i.blue=t.blue/n.blue,i.alpha=t.alpha/n.alpha,i}static mod(t,n,i){return i.red=t.red%n.red,i.green=t.green%n.green,i.blue=t.blue%n.blue,i.alpha=t.alpha%n.alpha,i}static lerp(t,n,i,o){return o.red=W.lerp(t.red,n.red,i),o.green=W.lerp(t.green,n.green,i),o.blue=W.lerp(t.blue,n.blue,i),o.alpha=W.lerp(t.alpha,n.alpha,i),o}static multiplyByScalar(t,n,i){return i.red=t.red*n,i.green=t.green*n,i.blue=t.blue*n,i.alpha=t.alpha*n,i}static divideByScalar(t,n,i){return i.red=t.red/n,i.green=t.green/n,i.blue=t.blue/n,i.alpha=t.alpha/n,i}},fK,pK,Z0;mn.supportsTypedArrays()&&(fK=new ArrayBuffer(4),pK=new Uint32Array(fK),Z0=new Uint8Array(fK));var GIe=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,EIe=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,LIe=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,WIe=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;_e.packedLength=4;_e.ALICEBLUE=Object.freeze(_e.fromCssColorString("#F0F8FF"));_e.ANTIQUEWHITE=Object.freeze(_e.fromCssColorString("#FAEBD7"));_e.AQUA=Object.freeze(_e.fromCssColorString("#00FFFF"));_e.AQUAMARINE=Object.freeze(_e.fromCssColorString("#7FFFD4"));_e.AZURE=Object.freeze(_e.fromCssColorString("#F0FFFF"));_e.BEIGE=Object.freeze(_e.fromCssColorString("#F5F5DC"));_e.BISQUE=Object.freeze(_e.fromCssColorString("#FFE4C4"));_e.BLACK=Object.freeze(_e.fromCssColorString("#000000"));_e.BLANCHEDALMOND=Object.freeze(_e.fromCssColorString("#FFEBCD"));_e.BLUE=Object.freeze(_e.fromCssColorString("#0000FF"));_e.BLUEVIOLET=Object.freeze(_e.fromCssColorString("#8A2BE2"));_e.BROWN=Object.freeze(_e.fromCssColorString("#A52A2A"));_e.BURLYWOOD=Object.freeze(_e.fromCssColorString("#DEB887"));_e.CADETBLUE=Object.freeze(_e.fromCssColorString("#5F9EA0"));_e.CHARTREUSE=Object.freeze(_e.fromCssColorString("#7FFF00"));_e.CHOCOLATE=Object.freeze(_e.fromCssColorString("#D2691E"));_e.CORAL=Object.freeze(_e.fromCssColorString("#FF7F50"));_e.CORNFLOWERBLUE=Object.freeze(_e.fromCssColorString("#6495ED"));_e.CORNSILK=Object.freeze(_e.fromCssColorString("#FFF8DC"));_e.CRIMSON=Object.freeze(_e.fromCssColorString("#DC143C"));_e.CYAN=Object.freeze(_e.fromCssColorString("#00FFFF"));_e.DARKBLUE=Object.freeze(_e.fromCssColorString("#00008B"));_e.DARKCYAN=Object.freeze(_e.fromCssColorString("#008B8B"));_e.DARKGOLDENROD=Object.freeze(_e.fromCssColorString("#B8860B"));_e.DARKGRAY=Object.freeze(_e.fromCssColorString("#A9A9A9"));_e.DARKGREEN=Object.freeze(_e.fromCssColorString("#006400"));_e.DARKGREY=_e.DARKGRAY;_e.DARKKHAKI=Object.freeze(_e.fromCssColorString("#BDB76B"));_e.DARKMAGENTA=Object.freeze(_e.fromCssColorString("#8B008B"));_e.DARKOLIVEGREEN=Object.freeze(_e.fromCssColorString("#556B2F"));_e.DARKORANGE=Object.freeze(_e.fromCssColorString("#FF8C00"));_e.DARKORCHID=Object.freeze(_e.fromCssColorString("#9932CC"));_e.DARKRED=Object.freeze(_e.fromCssColorString("#8B0000"));_e.DARKSALMON=Object.freeze(_e.fromCssColorString("#E9967A"));_e.DARKSEAGREEN=Object.freeze(_e.fromCssColorString("#8FBC8F"));_e.DARKSLATEBLUE=Object.freeze(_e.fromCssColorString("#483D8B"));_e.DARKSLATEGRAY=Object.freeze(_e.fromCssColorString("#2F4F4F"));_e.DARKSLATEGREY=_e.DARKSLATEGRAY;_e.DARKTURQUOISE=Object.freeze(_e.fromCssColorString("#00CED1"));_e.DARKVIOLET=Object.freeze(_e.fromCssColorString("#9400D3"));_e.DEEPPINK=Object.freeze(_e.fromCssColorString("#FF1493"));_e.DEEPSKYBLUE=Object.freeze(_e.fromCssColorString("#00BFFF"));_e.DIMGRAY=Object.freeze(_e.fromCssColorString("#696969"));_e.DIMGREY=_e.DIMGRAY;_e.DODGERBLUE=Object.freeze(_e.fromCssColorString("#1E90FF"));_e.FIREBRICK=Object.freeze(_e.fromCssColorString("#B22222"));_e.FLORALWHITE=Object.freeze(_e.fromCssColorString("#FFFAF0"));_e.FORESTGREEN=Object.freeze(_e.fromCssColorString("#228B22"));_e.FUCHSIA=Object.freeze(_e.fromCssColorString("#FF00FF"));_e.GAINSBORO=Object.freeze(_e.fromCssColorString("#DCDCDC"));_e.GHOSTWHITE=Object.freeze(_e.fromCssColorString("#F8F8FF"));_e.GOLD=Object.freeze(_e.fromCssColorString("#FFD700"));_e.GOLDENROD=Object.freeze(_e.fromCssColorString("#DAA520"));_e.GRAY=Object.freeze(_e.fromCssColorString("#808080"));_e.GREEN=Object.freeze(_e.fromCssColorString("#008000"));_e.GREENYELLOW=Object.freeze(_e.fromCssColorString("#ADFF2F"));_e.GREY=_e.GRAY;_e.HONEYDEW=Object.freeze(_e.fromCssColorString("#F0FFF0"));_e.HOTPINK=Object.freeze(_e.fromCssColorString("#FF69B4"));_e.INDIANRED=Object.freeze(_e.fromCssColorString("#CD5C5C"));_e.INDIGO=Object.freeze(_e.fromCssColorString("#4B0082"));_e.IVORY=Object.freeze(_e.fromCssColorString("#FFFFF0"));_e.KHAKI=Object.freeze(_e.fromCssColorString("#F0E68C"));_e.LAVENDER=Object.freeze(_e.fromCssColorString("#E6E6FA"));_e.LAVENDAR_BLUSH=Object.freeze(_e.fromCssColorString("#FFF0F5"));_e.LAWNGREEN=Object.freeze(_e.fromCssColorString("#7CFC00"));_e.LEMONCHIFFON=Object.freeze(_e.fromCssColorString("#FFFACD"));_e.LIGHTBLUE=Object.freeze(_e.fromCssColorString("#ADD8E6"));_e.LIGHTCORAL=Object.freeze(_e.fromCssColorString("#F08080"));_e.LIGHTCYAN=Object.freeze(_e.fromCssColorString("#E0FFFF"));_e.LIGHTGOLDENRODYELLOW=Object.freeze(_e.fromCssColorString("#FAFAD2"));_e.LIGHTGRAY=Object.freeze(_e.fromCssColorString("#D3D3D3"));_e.LIGHTGREEN=Object.freeze(_e.fromCssColorString("#90EE90"));_e.LIGHTGREY=_e.LIGHTGRAY;_e.LIGHTPINK=Object.freeze(_e.fromCssColorString("#FFB6C1"));_e.LIGHTSEAGREEN=Object.freeze(_e.fromCssColorString("#20B2AA"));_e.LIGHTSKYBLUE=Object.freeze(_e.fromCssColorString("#87CEFA"));_e.LIGHTSLATEGRAY=Object.freeze(_e.fromCssColorString("#778899"));_e.LIGHTSLATEGREY=_e.LIGHTSLATEGRAY;_e.LIGHTSTEELBLUE=Object.freeze(_e.fromCssColorString("#B0C4DE"));_e.LIGHTYELLOW=Object.freeze(_e.fromCssColorString("#FFFFE0"));_e.LIME=Object.freeze(_e.fromCssColorString("#00FF00"));_e.LIMEGREEN=Object.freeze(_e.fromCssColorString("#32CD32"));_e.LINEN=Object.freeze(_e.fromCssColorString("#FAF0E6"));_e.MAGENTA=Object.freeze(_e.fromCssColorString("#FF00FF"));_e.MAROON=Object.freeze(_e.fromCssColorString("#800000"));_e.MEDIUMAQUAMARINE=Object.freeze(_e.fromCssColorString("#66CDAA"));_e.MEDIUMBLUE=Object.freeze(_e.fromCssColorString("#0000CD"));_e.MEDIUMORCHID=Object.freeze(_e.fromCssColorString("#BA55D3"));_e.MEDIUMPURPLE=Object.freeze(_e.fromCssColorString("#9370DB"));_e.MEDIUMSEAGREEN=Object.freeze(_e.fromCssColorString("#3CB371"));_e.MEDIUMSLATEBLUE=Object.freeze(_e.fromCssColorString("#7B68EE"));_e.MEDIUMSPRINGGREEN=Object.freeze(_e.fromCssColorString("#00FA9A"));_e.MEDIUMTURQUOISE=Object.freeze(_e.fromCssColorString("#48D1CC"));_e.MEDIUMVIOLETRED=Object.freeze(_e.fromCssColorString("#C71585"));_e.MIDNIGHTBLUE=Object.freeze(_e.fromCssColorString("#191970"));_e.MINTCREAM=Object.freeze(_e.fromCssColorString("#F5FFFA"));_e.MISTYROSE=Object.freeze(_e.fromCssColorString("#FFE4E1"));_e.MOCCASIN=Object.freeze(_e.fromCssColorString("#FFE4B5"));_e.NAVAJOWHITE=Object.freeze(_e.fromCssColorString("#FFDEAD"));_e.NAVY=Object.freeze(_e.fromCssColorString("#000080"));_e.OLDLACE=Object.freeze(_e.fromCssColorString("#FDF5E6"));_e.OLIVE=Object.freeze(_e.fromCssColorString("#808000"));_e.OLIVEDRAB=Object.freeze(_e.fromCssColorString("#6B8E23"));_e.ORANGE=Object.freeze(_e.fromCssColorString("#FFA500"));_e.ORANGERED=Object.freeze(_e.fromCssColorString("#FF4500"));_e.ORCHID=Object.freeze(_e.fromCssColorString("#DA70D6"));_e.PALEGOLDENROD=Object.freeze(_e.fromCssColorString("#EEE8AA"));_e.PALEGREEN=Object.freeze(_e.fromCssColorString("#98FB98"));_e.PALETURQUOISE=Object.freeze(_e.fromCssColorString("#AFEEEE"));_e.PALEVIOLETRED=Object.freeze(_e.fromCssColorString("#DB7093"));_e.PAPAYAWHIP=Object.freeze(_e.fromCssColorString("#FFEFD5"));_e.PEACHPUFF=Object.freeze(_e.fromCssColorString("#FFDAB9"));_e.PERU=Object.freeze(_e.fromCssColorString("#CD853F"));_e.PINK=Object.freeze(_e.fromCssColorString("#FFC0CB"));_e.PLUM=Object.freeze(_e.fromCssColorString("#DDA0DD"));_e.POWDERBLUE=Object.freeze(_e.fromCssColorString("#B0E0E6"));_e.PURPLE=Object.freeze(_e.fromCssColorString("#800080"));_e.RED=Object.freeze(_e.fromCssColorString("#FF0000"));_e.ROSYBROWN=Object.freeze(_e.fromCssColorString("#BC8F8F"));_e.ROYALBLUE=Object.freeze(_e.fromCssColorString("#4169E1"));_e.SADDLEBROWN=Object.freeze(_e.fromCssColorString("#8B4513"));_e.SALMON=Object.freeze(_e.fromCssColorString("#FA8072"));_e.SANDYBROWN=Object.freeze(_e.fromCssColorString("#F4A460"));_e.SEAGREEN=Object.freeze(_e.fromCssColorString("#2E8B57"));_e.SEASHELL=Object.freeze(_e.fromCssColorString("#FFF5EE"));_e.SIENNA=Object.freeze(_e.fromCssColorString("#A0522D"));_e.SILVER=Object.freeze(_e.fromCssColorString("#C0C0C0"));_e.SKYBLUE=Object.freeze(_e.fromCssColorString("#87CEEB"));_e.SLATEBLUE=Object.freeze(_e.fromCssColorString("#6A5ACD"));_e.SLATEGRAY=Object.freeze(_e.fromCssColorString("#708090"));_e.SLATEGREY=_e.SLATEGRAY;_e.SNOW=Object.freeze(_e.fromCssColorString("#FFFAFA"));_e.SPRINGGREEN=Object.freeze(_e.fromCssColorString("#00FF7F"));_e.STEELBLUE=Object.freeze(_e.fromCssColorString("#4682B4"));_e.TAN=Object.freeze(_e.fromCssColorString("#D2B48C"));_e.TEAL=Object.freeze(_e.fromCssColorString("#008080"));_e.THISTLE=Object.freeze(_e.fromCssColorString("#D8BFD8"));_e.TOMATO=Object.freeze(_e.fromCssColorString("#FF6347"));_e.TURQUOISE=Object.freeze(_e.fromCssColorString("#40E0D0"));_e.VIOLET=Object.freeze(_e.fromCssColorString("#EE82EE"));_e.WHEAT=Object.freeze(_e.fromCssColorString("#F5DEB3"));_e.WHITE=Object.freeze(_e.fromCssColorString("#FFFFFF"));_e.WHITESMOKE=Object.freeze(_e.fromCssColorString("#F5F5F5"));_e.YELLOW=Object.freeze(_e.fromCssColorString("#FFFF00"));_e.YELLOWGREEN=Object.freeze(_e.fromCssColorString("#9ACD32"));_e.TRANSPARENT=Object.freeze(new _e(0,0,0,0));var U=_e;var u5t=x(T(),1);function vIe(){return!0}function FIe(e,t){t=t??"This object was destroyed, i.e., destroy() was called.";function n(){}for(let i in e)typeof e[i]=="function"&&(e[i]=n);e.isDestroyed=vIe}var he=FIe;var f5t=x(T(),1);function eu(e,t){e=e??0,this._near=e,t=t??Number.MAX_VALUE,this._far=t}Object.defineProperties(eu.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}});eu.packedLength=2;eu.pack=function(e,t,n){return n=n??0,t[n++]=e.near,t[n]=e.far,t};eu.unpack=function(e,t,n){return t=t??0,l(n)||(n=new eu),n.near=e[t++],n.far=e[t],n};eu.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.far===t.far};eu.clone=function(e,t){if(l(e))return l(t)||(t=new eu),t.near=e.near,t.far=e.far,t};eu.prototype.clone=function(e){return eu.clone(this,e)};eu.prototype.equals=function(e){return eu.equals(this,e)};var Ut=eu;var g5t=x(T(),1);function nm(e,t,n,i){this.near=e??0,this.nearValue=t??0,this.far=n??1,this.farValue=i??0}nm.clone=function(e,t){if(l(e))return l(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new nm(e.near,e.nearValue,e.far,e.farValue)};nm.packedLength=4;nm.pack=function(e,t,n){return n=n??0,t[n++]=e.near,t[n++]=e.nearValue,t[n++]=e.far,t[n]=e.farValue,t};nm.unpack=function(e,t,n){return t=t??0,l(n)||(n=new nm),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};nm.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};nm.prototype.clone=function(e){return nm.clone(this,e)};nm.prototype.equals=function(e){return nm.equals(this,e)};var Bt=nm;var x5t=x(T(),1),Bg={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2,CLAMP_TO_TERRAIN:3,RELATIVE_TO_TERRAIN:4,CLAMP_TO_3D_TILE:5,RELATIVE_TO_3D_TILE:6};Object.freeze(Bg);var st=Bg;function im(e){return e===Bg.CLAMP_TO_GROUND||e===Bg.CLAMP_TO_3D_TILE||e===Bg.CLAMP_TO_TERRAIN}function cZ(e){return e===Bg.RELATIVE_TO_GROUND||e===Bg.RELATIVE_TO_3D_TILE||e===Bg.RELATIVE_TO_TERRAIN}var _5t=x(T(),1),Zse={CENTER:0,LEFT:1,RIGHT:-1};Object.freeze(Zse);var Fi=Zse;var A5t=x(T(),1),Cse={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1};Object.freeze(Cse);var kn=Cse;var C5t=x(T(),1),IIe=Object.freeze({DONE:0,PENDING:1,FAILED:2}),Vt=IIe;var E5t=x(T(),1);function hh(){Te.throwInstantiationError()}Object.defineProperties(hh.prototype,{isConstant:{get:Te.throwInstantiationError},definitionChanged:{get:Te.throwInstantiationError}});hh.prototype.getValue=Te.throwInstantiationError;hh.prototype.equals=Te.throwInstantiationError;hh.equals=function(e,t){return e===t||l(e)&&e.equals(t)};hh.arrayEquals=function(e,t){if(e===t)return!0;if(!l(e)||!l(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i-1;o--)r=t[o],l(r._billboard)&&l(r._position)&&s.set(r.id,new Vse(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._billboard)&&l(r._position)?s.contains(r.id)||s.set(r.id,new Vse(r)):(bK(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],bK(s.get(r.id),r,a),s.remove(r.id)};function bK(e,t,n){l(e)&&(e.billboard=void 0,n.removeBillboard(t))}var UV=zg;var Mhn=x(T(),1);var dOt=x(T(),1);var lDt=x(T(),1);var j5t=x(T(),1);function tPe(e,t){this.start=e??0,this.stop=t??0}var kr=tPe;var BU=class e{constructor(t,n){this.center=h.clone(t??h.ZERO),this.radius=n??0}static fromPoints(t,n){if(l(n)||(n=new e),!l(t)||t.length===0)return n.center=h.clone(h.ZERO,n.center),n.radius=0,n;let i=h.clone(t[0],AK),o=h.clone(i,gK),r=h.clone(i,yK),s=h.clone(i,xK),a=h.clone(i,TK),c=h.clone(i,_K),d=h.clone(i,SK),u=t.length,m;for(m=1;ma.x&&h.clone(i,a),Yc.y&&h.clone(i,c),gd.z&&h.clone(i,d)}let p=h.magnitudeSquared(h.subtract(a,o,Ua)),b=h.magnitudeSquared(h.subtract(c,r,Ua)),f=h.magnitudeSquared(h.subtract(d,s,Ua)),y=o,_=a,S=p;b>S&&(S=b,y=r,_=c),f>S&&(S=f,y=s,_=d);let A=ZK;A.x=(y.x+_.x)*.5,A.y=(y.y+_.y)*.5,A.z=(y.z+_.z)*.5;let Z=h.magnitudeSquared(h.subtract(_,A,Ua)),R=Math.sqrt(Z),G=CK;G.x=o.x,G.y=r.y,G.z=s.z;let E=RK;E.x=a.x,E.y=c.y,E.z=d.z;let v=h.midpoint(G,E,VK),I=0;for(m=0;mI&&(I=X);let Y=h.magnitudeSquared(h.subtract(i,A,Ua));if(Y>Z){let g=Math.sqrt(Y);R=(R+g)*.5,Z=R*R;let C=g-R;A.x=(R*A.x+C*i.x)/g,A.y=(R*A.y+C*i.y)/g,A.z=(R*A.z+C*i.z)/g}}return Rd.x&&h.clone(r,d),Cu.y&&h.clone(r,u),Vm.z&&h.clone(r,m)}let f=h.magnitudeSquared(h.subtract(d,s,Ua)),y=h.magnitudeSquared(h.subtract(u,a,Ua)),_=h.magnitudeSquared(h.subtract(m,c,Ua)),S=s,A=d,Z=f;y>Z&&(Z=y,S=a,A=u),_>Z&&(Z=_,S=c,A=m);let R=ZK;R.x=(S.x+A.x)*.5,R.y=(S.y+A.y)*.5,R.z=(S.z+A.z)*.5;let G=h.magnitudeSquared(h.subtract(A,R,Ua)),E=Math.sqrt(G),v=CK;v.x=s.x,v.y=a.y,v.z=c.z;let I=RK;I.x=d.x,I.y=u.y,I.z=m.z;let X=h.midpoint(v,I,VK),Y=0;for(b=0;bY&&(Y=g);let C=h.magnitudeSquared(h.subtract(r,R,Ua));if(C>G){let V=Math.sqrt(C);E=(E+V)*.5,G=E*E;let L=V-E;R.x=(E*R.x+L*r.x)/V,R.y=(E*R.y+L*r.y)/V,R.z=(E*R.z+L*r.z)/V}}return Ec.x&&h.clone(o,c),gd.y&&h.clone(o,d),Cu.z&&h.clone(o,u)}let b=h.magnitudeSquared(h.subtract(c,r,Ua)),f=h.magnitudeSquared(h.subtract(d,s,Ua)),y=h.magnitudeSquared(h.subtract(u,a,Ua)),_=r,S=c,A=b;f>A&&(A=f,_=s,S=d),y>A&&(A=y,_=a,S=u);let Z=ZK;Z.x=(_.x+S.x)*.5,Z.y=(_.y+S.y)*.5,Z.z=(_.z+S.z)*.5;let R=h.magnitudeSquared(h.subtract(S,Z,Ua)),G=Math.sqrt(R),E=CK;E.x=r.x,E.y=s.y,E.z=a.z;let v=RK;v.x=c.x,v.y=d.y,v.z=u.z;let I=h.midpoint(E,v,VK),X=0;for(p=0;pX&&(X=Y);let g=h.magnitudeSquared(h.subtract(o,Z,Ua));if(g>R){let C=Math.sqrt(g);G=(G+C)*.5,R=G*G;let V=C-G;Z.x=(G*Z.x+V*o.x)/C,Z.y=(G*Z.y+V*o.y)/C,Z.z=(G*Z.z+V*o.z)/C}}return G=d+a)return t.clone(i),i;if(a>=d+r)return n.clone(i),i;let u=(r+d+a)*.5,m=h.multiplyByScalar(c,(-r+u)/d,mPe);return h.add(m,o,m),h.clone(m,i.center),i.radius=u,i}static expand(t,n,i){i=e.clone(t,i);let o=h.magnitude(h.subtract(n,i.center,hPe));return o>i.radius&&(i.radius=o),i}static intersectPlane(t,n){let i=t.center,o=t.radius,r=n.normal,s=h.dot(r,i)+n.distance;return s<-o?Qt.OUTSIDE:s{e.onmessage=function(o){let r=o.data.array,s=l(r)&&r[0]===t;i(s),e.terminate(),Oa._canTransferArrayBuffer=s}})}return Oa._canTransferArrayBuffer}var FK=new Se;function vK(e){let t;try{t=new Blob([e],{type:"application/javascript"})}catch{let o=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,r=new o;r.append(e),t=r.getBlob("application/javascript")}return(window.URL||window.webkitURL).createObjectURL(t)}function IK(e){let t=new Qse.default(e),n=t.scheme().length!==0&&t.fragment().length===0,i=e.replace(/\.js$/,""),o={},r,s;if(Mg(e))s=e;else if(!n){let a=$t(`${Oa._workerModulePrefix}/${i}.js`);Mg(a)&&(s=a)}if(s){let a=`import "${s}";`;return r=vK(a),o.type="module",new Worker(r,o)}if(!n&&typeof CESIUM_WORKERS<"u"){let a=` + importScripts("${vK(CESIUM_WORKERS)}"); + CesiumWorkers["${i}"](); + `;return r=vK(a),new Worker(r,o)}if(r=e,n||(r=$t(`${Oa._workerModulePrefix+i}.js`)),!mn.supportsEsmWebWorkers())throw new ae("This browser is not supported. Please update your browser to continue.");return o.type="module",new Worker(r,o)}async function UPe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!mn.supportsWebAssembly()){if(!l(t.fallbackModulePath))throw new ae(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=$t(t.fallbackModulePath),n}n.wasmBinaryFile=$t(t.wasmBinaryFile);let i=await We.fetchArrayBuffer({url:n.wasmBinaryFile});return n.wasmBinary=i,n}function Oa(e,t){this._workerPath=e,this._maximumActiveTasks=t??Number.POSITIVE_INFINITY,this._activeTasks=0,this._nextID=0,this._webAssemblyPromise=void 0}var DPe=(e,t,n,i)=>{let o=({data:r})=>{if(r.id===t){if(l(r.error)){let s=r.error;s.name==="RuntimeError"?(s=new ae(r.error.message),s.stack=r.error.stack):s.name==="DeveloperError"?(s=new Te(r.error.message),s.stack=r.error.stack):s.name==="Error"&&(s=new Error(r.error.message),s.stack=r.error.stack),FK.raiseEvent(s),i(s)}else FK.raiseEvent(),n(r.result);e.removeEventListener("message",o)}};return o},OPe=[];async function BPe(e,t,n){let i=await Promise.resolve(qse());l(n)?i||(n.length=0):n=OPe;let o=e._nextID++,r=new Promise((s,a)=>{e._worker.addEventListener("message",DPe(e._worker,o,s,a))});return e._worker.postMessage({id:o,baseUrl:$t.getCesiumBaseUrl().url,parameters:t,canTransferArrayBuffer:i},n),r}async function zPe(e,t,n){++e._activeTasks;try{let i=await BPe(e,t,n);return--e._activeTasks,i}catch(i){throw--e._activeTasks,i}}Oa.prototype.scheduleTask=function(e,t){if(l(this._worker)||(this._worker=IK(this._workerPath)),!(this._activeTasks>=this._maximumActiveTasks))return zPe(this,e,t)};Oa.prototype.initWebAssemblyModule=async function(e){if(l(this._webAssemblyPromise))return this._webAssemblyPromise;let t=async()=>{let n=this._worker=IK(this._workerPath),i=await UPe(this,e),o=await Promise.resolve(qse()),r,s=i.wasmBinary;l(s)&&o&&(r=[s]);let a=new Promise((c,d)=>{n.onmessage=function({data:u}){l(u)?c(u.result):d(new ae("Could not configure wasm module"))}});return n.postMessage({canTransferArrayBuffer:o,parameters:{webAssemblyConfig:i}},r),a};return this._webAssemblyPromise=t(),this._webAssemblyPromise};Oa.prototype.isDestroyed=function(){return!1};Oa.prototype.destroy=function(){return l(this._worker)&&this._worker.terminate(),he(this)};Oa.taskCompletedEvent=FK;Oa._defaultWorkerModulePrefix="Workers/";Oa._workerModulePrefix=Oa._defaultWorkerModulePrefix;Oa._canTransferArrayBuffer=void 0;var Hn=Oa;function C0(){}C0._transcodeTaskProcessor=new Hn("transcodeKTX2",Number.POSITIVE_INFINITY);C0._readyPromise=void 0;function HPe(){let e=C0._transcodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(t){if(t)return C0._transcodeTaskProcessor;throw new ae("KTX2 transcoder could not be initialized.")});C0._readyPromise=e}C0.transcode=function(e,t){return l(C0._readyPromise)||HPe(),C0._readyPromise.then(function(n){let i=e;e instanceof ArrayBuffer&&(i=new Uint8Array(e));let o={supportedTargetFormats:t,ktx2Buffer:i};return n.scheduleTask(o,[i.buffer])}).then(function(n){let i=n.length,o=Object.keys(n[0]);for(let r=0;r>1^-(e&1)}Zo.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a>16&255)/255,t.green=(e>>8&255)/255,t.blue=(e&255)/255,t};Zo.decodeRGB565=function(e,t){let n=e.length;l(t)||(t=new Float32Array(n*3));let i=31,o=63,r=1/31,s=1/63;for(let a=0;a>11,u=c>>5&o,m=c&i,p=3*a;t[p]=d*r,t[p+1]=u*s,t[p+2]=m*r}return t};var cn=Zo;var R3t=x(T(),1);var iae=new h,oae=new h,rae=new h;function JPe(e,t,n,i,o){l(o)||(o=new h);let r,s,a,c,d,u,m,p;if(l(t.z)){if(h.equalsEpsilon(e,t,W.EPSILON14))return h.clone(h.UNIT_X,o);if(h.equalsEpsilon(e,n,W.EPSILON14))return h.clone(h.UNIT_Y,o);if(h.equalsEpsilon(e,i,W.EPSILON14))return h.clone(h.UNIT_Z,o);r=h.subtract(n,t,iae),s=h.subtract(i,t,oae),a=h.subtract(e,t,rae),c=h.dot(r,r),d=h.dot(r,s),u=h.dot(r,a),m=h.dot(s,s),p=h.dot(s,a)}else{if(k.equalsEpsilon(e,t,W.EPSILON14))return h.clone(h.UNIT_X,o);if(k.equalsEpsilon(e,n,W.EPSILON14))return h.clone(h.UNIT_Y,o);if(k.equalsEpsilon(e,i,W.EPSILON14))return h.clone(h.UNIT_Z,o);r=k.subtract(n,t,iae),s=k.subtract(i,t,oae),a=k.subtract(e,t,rae),c=k.dot(r,r),d=k.dot(r,s),u=k.dot(r,a),m=k.dot(s,s),p=k.dot(s,a)}o.y=m*u-d*p,o.z=c*p-d*u;let b=c*m-d*d;if(b!==0)return o.y/=b,o.z/=b,o.x=1-o.y-o.z,o}var mT=JPe;var L3t=x(T(),1);function jf(){this.high=h.clone(h.ZERO),this.low=h.clone(h.ZERO)}jf.encode=function(e,t){l(t)||(t={high:0,low:0});let n;return e>=0?(n=Math.floor(e/65536)*65536,t.high=n,t.low=e-n):(n=Math.floor(-e/65536)*65536,t.high=-n,t.low=e+n),t};var R0={high:0,low:0};jf.fromCartesian=function(e,t){l(t)||(t=new jf);let n=t.high,i=t.low;return jf.encode(e.x,R0),n.x=R0.high,i.x=R0.low,jf.encode(e.y,R0),n.y=R0.high,i.y=R0.low,jf.encode(e.z,R0),n.z=R0.high,i.z=R0.low,t};var NK=new jf;jf.writeElements=function(e,t,n){jf.fromCartesian(e,NK);let i=NK.high,o=NK.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z};var Zn=jf;var P3t=x(T(),1);var na={UNSIGNED_BYTE:ne.UNSIGNED_BYTE,UNSIGNED_SHORT:ne.UNSIGNED_SHORT,UNSIGNED_INT:ne.UNSIGNED_INT};na.getSizeInBytes=function(e){switch(e){case na.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case na.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case na.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}};na.fromSizeInBytes=function(e){switch(e){case 2:return na.UNSIGNED_SHORT;case 4:return na.UNSIGNED_INT;case 1:return na.UNSIGNED_BYTE}};na.validate=function(e){return l(e)&&(e===na.UNSIGNED_BYTE||e===na.UNSIGNED_SHORT||e===na.UNSIGNED_INT)};na.createTypedArray=function(e,t){return e>=W.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};na.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=W.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};na.fromTypedArray=function(e){if(e instanceof Uint8Array)return na.UNSIGNED_BYTE;if(e instanceof Uint16Array)return na.UNSIGNED_SHORT;if(e instanceof Uint32Array)return na.UNSIGNED_INT};Object.freeze(na);var De=na;var azt=x(T(),1);var N3t=x(T(),1);var wK={};wK.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function sae(e,t,n){let i=e+t;return W.sign(e)!==W.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))d&&d/c0?[a/e,n/a]:[n/a,a/e]};var yl=wK;var z3t=x(T(),1);var k3t=x(T(),1);var kK={};kK.computeDiscriminant=function(e,t,n,i){let o=e*e,r=t*t,s=n*n,a=i*i;return 18*e*t*n*i+r*s-27*o*a-4*(e*s*n+r*t*i)};function MK(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,d=r*a,u=r*r,m=s*s,p=o*s-u,b=o*a-r*s,f=r*a-m,y=4*p*f-b*b,_,S;if(y<0){let z,K,ee;u*d>=c*m?(z=o,K=p,ee=-2*r*p+o*b):(z=a,K=f,ee=-a*b+2*s*f);let te=-(ee<0?-1:1)*Math.abs(z)*Math.sqrt(-y);S=-ee+te;let q=S/2,de=q<0?-Math.pow(-q,1/3):Math.pow(q,1/3),ye=S===te?-de:-K/de;return _=K<=0?de+ye:-ee/(de*de+ye*ye+K),u*d>=c*m?[(_-r)/o]:[-a/(_+s)]}let A=p,Z=-2*r*p+o*b,R=f,G=-a*b+2*s*f,E=Math.sqrt(y),v=Math.sqrt(3)/2,I=Math.abs(Math.atan2(o*E,-Z)/3);_=2*Math.sqrt(-A);let X=Math.cos(I);S=_*X;let Y=_*(-X/2-v*Math.sin(I)),g=S+Y>2*r?S-r:Y-r,C=o,V=g/C;I=Math.abs(Math.atan2(a*E,-G)/3),_=2*Math.sqrt(-R),X=Math.cos(I),S=_*X,Y=_*(-X/2-v*Math.sin(I));let L=-a,P=S+Y<2*s?S+s:Y+s,N=L/P,O=C*P,M=-g*P-C*L,D=g*L,w=(s*M-r*D)/(-r*M+s*O);return V<=w?V<=N?w<=N?[V,w,N]:[V,N,w]:[N,V,w]:V<=N?[w,V,N]:w<=N?[w,N,V]:[N,w,V]}kK.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return yl.computeRealRoots(t,n,i);if(t===0){if(n===0){if(i===0)return[0,0,0];r=-i/e;let s=r<0?-Math.pow(-r,1/3):Math.pow(r,1/3);return[s,s,s]}else if(i===0)return o=yl.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return MK(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):MK(e,t,0,i);if(i===0)return o=yl.computeRealRoots(e,t,n),o.length===0?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]}return MK(e,t,n,i)};var hT=kK;var UK={};UK.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,d=n*n,u=d*n,m=i*i,p=m*i,b=o*o,f=b*o;return a*d*m-4*c*p-4*e*u*m+18*e*t*n*p-27*r*m*m+256*s*f+o*(18*c*n*i-4*a*u+16*e*d*d-80*e*t*d*i-6*e*a*m+144*r*n*m)+b*(144*e*a*n-27*a*a-128*r*d-192*r*t*i)};function ph(e,t,n,i){let o=e*e,r=t-3*o/8,s=n-t*e/2+o*e/8,a=i-n*e/4+t*o/16-3*o*o/256,c=hT.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let d=-e/4,u=c[c.length-1];if(Math.abs(u)=0&&b>=0){let y=Math.sqrt(p),_=Math.sqrt(b);return[d-_,d-y,d+y,d+_]}else{if(p>=0&&b<0)return f=Math.sqrt(p),[d-f,d+f];if(p<0&&b>=0)return f=Math.sqrt(b),[d-f,d+f]}}return[]}else if(u>0){let m=Math.sqrt(u),p=(r+u-s/m)/2,b=(r+u+s/m)/2,f=yl.computeRealRoots(1,m,p),y=yl.computeRealRoots(1,-m,b);return f.length!==0?(f[0]+=d,f[1]+=d,y.length!==0?(y[0]+=d,y[1]+=d,f[1]<=y[0]?[f[0],f[1],y[0],y[1]]:y[1]<=f[0]?[y[0],y[1],f[0],f[1]]:f[0]>=y[0]&&f[1]<=y[1]?[y[0],f[0],f[1],y[1]]:y[0]>=f[0]&&y[1]<=f[1]?[f[0],y[0],y[1],f[1]]:f[0]>y[0]&&f[0]0){let m=u[0],p=t-m,b=p*p,f=e/2,y=p/2,_=b-4*i,S=b+4*Math.abs(i),A=s-4*m,Z=s+4*Math.abs(m),R,G;if(m<0||_*Z=g[0]&&Y[1]<=g[1]?[g[0],Y[0],Y[1],g[1]]:g[0]>=Y[0]&&g[1]<=Y[1]?[Y[0],g[0],g[1],Y[1]]:Y[0]>g[0]&&Y[0]u)||(p=h.cross(m,a,cae),f=h.dot(s,p),f<0||b+f>u))return;y=h.dot(c,p)/u}else{if(Math.abs(u)1||(p=h.cross(m,a,cae),f=h.dot(s,p)*_,f<0||b+f>1))return;y=h.dot(c,p)*_}return y};jo.rayTriangle=function(e,t,n,i,o,r){let s=jo.rayTriangleParametric(e,t,n,i,o);if(!(!l(s)||s<0))return l(r)||(r=new h),h.multiplyByScalar(e.direction,s,r),h.add(e.origin,r,r)};var qPe=new _n;jo.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=qPe;h.clone(e,a.origin),h.subtract(t,e,a.direction),h.normalize(a.direction,a.direction);let c=jo.rayTriangleParametric(a,n,i,o,r);if(!(!l(c)||c<0||c>h.distance(e,t)))return l(s)||(s=new h),h.multiplyByScalar(a.direction,c,s),h.add(a.origin,s,s)};function $Pe(e,t,n,i){let o=t*t-4*e*n;if(o<0)return;if(o>0){let s=1/(2*e),a=Math.sqrt(o),c=(-t+a)*s,d=(-t-a)*s;return cs))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var nXe=new h,iXe=new h;jo.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=h.multiplyComponents(n,e.origin,nXe),o=h.multiplyComponents(n,e.direction,iXe),r=h.magnitudeSquared(i),s=h.dot(i,o),a,c,d,u,m;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=h.magnitudeSquared(o),d=c*a,pd){u=s*s-d,m=-s+Math.sqrt(u);let f=m/c,y=a/m;return fo.start?i.start:o.start,n.stop=i.stopo.stop||o.start>i.stop)&&!(n.start>r.stop||r.start>n.stop))return r.start>n.start&&(n.start=r.start),r.stop0?b.push(new h(i,o*X,o*-C)):C!==0?(b.push(new h(i,o*X,o*-C)),b.push(new h(i,o*X,o*C)),++I):b.push(new h(i,o*X,o*C))}return b};var BK=new h,lae=new h,dae=new h,KU=new h,aXe=new h,cXe=new $,lXe=new $,dXe=new $,uXe=new $,mXe=new $,uae=new $,mae=new $,hae=new h,hXe=new h,fXe=new fe;jo.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!h.equals(n,h.ZERO)){let E=t.geodeticSurfaceNormal(n,BK);if(h.dot(i,E)>=0)return n}let o=l(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,BK),s=h.normalize(r,r),a=h.mostOrthogonalAxis(r,KU),c=h.normalize(h.cross(a,s,lae),lae),d=h.normalize(h.cross(s,c,dae),dae),u=cXe;u[0]=s.x,u[1]=s.y,u[2]=s.z,u[3]=c.x,u[4]=c.y,u[5]=c.z,u[6]=d.x,u[7]=d.y,u[8]=d.z;let m=$.transpose(u,lXe),p=$.fromScale(t.radii,dXe),b=$.fromScale(t.oneOverRadii,uXe),f=mXe;f[0]=0,f[1]=-i.z,f[2]=i.y,f[3]=i.z,f[4]=0,f[5]=-i.x,f[6]=-i.y,f[7]=i.x,f[8]=0;let y=$.multiply($.multiply(m,b,uae),f,uae),_=$.multiply($.multiply(y,p,mae),u,mae),S=$.multiplyByVector(y,n,aXe),A=jo.quadraticVectorExpression(_,h.negate(S,BK),0,0,1),Z,R,G=A.length;if(G>0){let E=h.clone(h.ZERO,hXe),v=Number.NEGATIVE_INFINITY;for(let X=0;Xv&&(v=g,E=h.clone(Z,E))}let I=t.cartesianToCartographic(E,fXe);return v=W.clamp(v,0,1),R=h.magnitude(h.subtract(E,n,KU))*Math.sqrt(1-v*v),R=o?-R:R,I.height=R,t.cartographicToCartesian(I,new h)}};var pXe=new h;jo.lineSegmentPlane=function(e,t,n,i){l(i)||(i=new h);let o=h.subtract(t,e,pXe),r=n.normal,s=h.dot(r,o);if(Math.abs(s)1))return h.multiplyByScalar(o,c,i),h.add(e,i,i),i};jo.trianglePlaneIntersection=function(e,t,n,i){let o=i.normal,r=i.distance,s=h.dot(o,e)+r<0,a=h.dot(o,t)+r<0,c=h.dot(o,n)+r<0,d=0;d+=s?1:0,d+=a?1:0,d+=c?1:0;let u,m;if((d===1||d===2)&&(u=new h,m=new h),d===1){if(s)return jo.lineSegmentPlane(e,t,i,u),jo.lineSegmentPlane(e,n,i,m),{positions:[e,t,n,u,m],indices:[0,3,4,1,2,4,1,4,3]};if(a)return jo.lineSegmentPlane(t,n,i,u),jo.lineSegmentPlane(t,e,i,m),{positions:[e,t,n,u,m],indices:[1,3,4,2,0,4,2,4,3]};if(c)return jo.lineSegmentPlane(n,e,i,u),jo.lineSegmentPlane(n,t,i,m),{positions:[e,t,n,u,m],indices:[2,3,4,0,1,4,0,4,3]}}else if(d===2)if(s)if(a){if(!c)return jo.lineSegmentPlane(e,n,i,u),jo.lineSegmentPlane(t,n,i,m),{positions:[e,t,n,u,m],indices:[0,1,4,0,4,3,2,3,4]}}else return jo.lineSegmentPlane(n,t,i,u),jo.lineSegmentPlane(e,t,i,m),{positions:[e,t,n,u,m],indices:[2,0,4,2,4,3,1,3,4]};else return jo.lineSegmentPlane(t,e,i,u),jo.lineSegmentPlane(n,e,i,m),{positions:[e,t,n,u,m],indices:[1,2,4,1,4,3,0,3,4]}};var di=jo;var hzt=x(T(),1);function Sa(e,t){this.normal=h.clone(e),this.distance=t}Sa.fromPointNormal=function(e,t,n){let i=-h.dot(t,e);return l(n)?(h.clone(t,n.normal),n.distance=i,n):new Sa(t,i)};var bXe=new h;Sa.fromCartesian4=function(e,t){let n=h.fromCartesian4(e,bXe),i=e.w;return l(t)?(h.clone(n,t.normal),t.distance=i,t):new Sa(n,i)};Sa.getPointDistance=function(e,t){return h.dot(e.normal,t)+e.distance};var gXe=new h;Sa.projectPointOntoPlane=function(e,t,n){l(n)||(n=new h);let i=Sa.getPointDistance(e,t),o=h.multiplyByScalar(e.normal,i,gXe);return h.subtract(t,o,n)};var yXe=new F,xXe=new ce,TXe=new h;Sa.transform=function(e,t,n){let i=e.normal,o=e.distance,r=F.inverseTranspose(t,yXe),s=ce.fromElements(i.x,i.y,i.z,o,xXe);s=F.multiplyByVector(r,s,s);let a=h.fromCartesian4(s,TXe);return s=ce.divideByScalar(s,h.magnitude(a),s),Sa.fromCartesian4(s,n)};Sa.clone=function(e,t){return l(t)?(h.clone(e.normal,t.normal),t.distance=e.distance,t):new Sa(e.normal,e.distance)};Sa.equals=function(e,t){return e.distance===t.distance&&h.equals(e.normal,t.normal)};Sa.ORIGIN_XY_PLANE=Object.freeze(new Sa(h.UNIT_Z,0));Sa.ORIGIN_YZ_PLANE=Object.freeze(new Sa(h.UNIT_X,0));Sa.ORIGIN_ZX_PLANE=Object.freeze(new Sa(h.UNIT_Y,0));var sn=Sa;var gzt=x(T(),1);var zK={};zK.calculateACMR=function(e){e=e??B.EMPTY_OBJECT;let t=e.indices,n=e.maximumIndex,i=e.cacheSize??24,o=t.length;if(!l(n)){n=0;let a=0,c=t[a];for(;an&&(n=c),++a,c=t[a]}let r=[];for(let a=0;ai&&(r[t[a]]=s,++s);return(s-i+1)/(o/3)};zK.tipsify=function(e){e=e??B.EMPTY_OBJECT;let t=e.indices,n=e.maximumIndex,i=e.cacheSize??24,o;function r(g,C,V,L){for(;C.length>=1;){let P=C[C.length-1];if(C.splice(C.length-1,1),g[P].numLiveTriangles>0)return P}for(;o0)return++o,o-1;++o}return-1}function s(g,C,V,L,P,N,O){let M=-1,D,w=-1,z=0;for(;zw||w===-1)&&(w=D,M=K)),++z}return M===-1?r(L,N,g,O):M}let a=t.length,c=0,d=0,u=t[d],m=a;if(l(n))c=n+1;else{for(;dc&&(c=u),++d,u=t[d];if(c===-1)return 0;++c}let p=[],b;for(b=0;bi&&(Z.timeStamp=_,++_),++d}y=s(t,i,S,p,_,A,c)}return E};var nG=zK;var xl={};function t5(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function _Xe(e){let t=e.length,n=t/3*6,i=De.createTypedArray(t,n),o=0;for(let r=0;r=3){let n=(t-2)*6,i=De.createTypedArray(t,n);t5(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r0){let t=e.length-1,n=(t-1)*6,i=De.createTypedArray(t,n),o=e[0],r=0;for(let s=1;so&&(o=n[r]);e.indices=nG.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function bae(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)){let i=e[n];t[n]=new Pe({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function ZXe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];for(let r=0;r=W.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=bae(e.attributes),a=e.indices,c=a.length,d;e.primitiveType===ve.TRIANGLES?d=3:e.primitiveType===ve.LINES?d=2:e.primitiveType===ve.POINTS&&(d=1);for(let u=0;u=W.SIXTY_FOUR_KILOBYTES&&(t.push(new Zt({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],o=[],r=0,s=bae(e.attributes))}o.length!==0&&t.push(new Zt({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var gae=new h,CXe=new fe;xl.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=l(o)?o:new ki;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),d=0;for(let u=0;u_&&(_=A)}return new Zt({attributes:u,indices:f,primitiveType:d,boundingSphere:l(y)?new ue(y,_):void 0})}xl.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r0&&o.push(jK(t,"geometry")),n.length>0&&(o.push(jK(n,"westHemisphereGeometry")),o.push(jK(n,"eastHemisphereGeometry"))),o};var rm=new h,iG=new h,hZ=new h,fZ=new h;xl.computeNormal=function(e){let t=e.indices,n=e.attributes,i=n.position.values,o=n.position.values.length/3,r=t.length,s=new Array(o),a=new Array(r/3),c=new Array(r),d;for(d=0;d0){for(u=0;u3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let o=3;oo?i>r?s=W.sign(e.y):s=W.sign(n.y):o>r?s=W.sign(t.y):s=W.sign(n.y);let a=s<0;Hg(e,a),Hg(t,a),Hg(n,a)}var _ae=new h;function sm(e,t,n,i){h.add(e,h.multiplyByScalar(h.subtract(t,e,_ae),e.y/(e.y-t.y),_ae),n),h.clone(n,i),Hg(n,!0),Hg(i,!1)}var pT=new h,bT=new h,gT=new h,yT=new h,QK={positions:new Array(7),indices:new Array(9)};function NXe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;YXe(e,t,n);let i=e.y<0,o=t.y<0,r=n.y<0,s=0;s+=i?1:0,s+=o?1:0,s+=r?1:0;let a=QK.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(sm(e,t,pT,gT),sm(e,n,bT,yT),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(sm(t,n,pT,gT),sm(t,e,bT,yT),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(sm(n,e,pT,gT),sm(n,t,bT,yT),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):s===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,i?o?r||(sm(n,e,pT,gT),sm(n,t,bT,yT),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(sm(t,n,pT,gT),sm(t,e,bT,yT),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(sm(e,t,pT,gT),sm(e,n,bT,yT),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=QK.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=pT,c[4]=bT,c[5]=gT,c[6]=yT,c.length=7),QK}function Sae(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&l(n[o])&&l(n[o].values)){let r=n[o];r.values=J.createTypedArray(r.componentDatatype,r.values)}let i=Zt.computeNumberOfVertices(e);return e.indices=De.createTypedArray(i,e.indices),t&&(e.boundingSphere=ue.fromVertices(n.position.values)),e}function bZ(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];n[i]=new Pe({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new Zt({attributes:n,indices:[],primitiveType:e.primitiveType})}function tJ(e,t,n){let i=l(e.geometry.boundingSphere);t=Sae(t,i),n=Sae(n,i),l(n)&&!l(t)?e.geometry=n:!l(n)&&l(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function nJ(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,d,u,m,p){let b=e.fromArray(d,r*t,n),f=e.fromArray(d,s*t,i),y=e.fromArray(d,a*t,o);e.multiplyByScalar(b,c.x,b),e.multiplyByScalar(f,c.y,f),e.multiplyByScalar(y,c.z,y);let _=e.add(b,f,b);e.add(_,y,_),p&&e.normalize(_,_),e.pack(_,u,m*t)}}var wXe=nJ(ce,4),e5=nJ(h,3),Gae=nJ(k,2),MXe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,d=o[n]*i.z;r[s]=a+c+d>W.EPSILON6?1:0},rG=new h,qK=new h,$K=new h,kXe=new h;function qU(e,t,n,i,o,r,s,a,c,d,u,m,p,b,f,y){if(!l(r)&&!l(s)&&!l(a)&&!l(c)&&!l(d)&&b===0)return;let _=h.fromArray(o,e*3,rG),S=h.fromArray(o,t*3,qK),A=h.fromArray(o,n*3,$K),Z=mT(i,_,S,A,kXe);if(l(Z)){if(l(r)&&e5(e,t,n,Z,r,m.normal.values,y,!0),l(d)){let R=h.fromArray(d,e*3,rG),G=h.fromArray(d,t*3,qK),E=h.fromArray(d,n*3,$K);h.multiplyByScalar(R,Z.x,R),h.multiplyByScalar(G,Z.y,G),h.multiplyByScalar(E,Z.z,E);let v;!h.equals(R,h.ZERO)||!h.equals(G,h.ZERO)||!h.equals(E,h.ZERO)?(v=h.add(R,G,R),h.add(v,E,v),h.normalize(v,v)):(v=rG,v.x=0,v.y=0,v.z=0),h.pack(v,m.extrudeDirection.values,y*3)}if(l(u)&&MXe(e,t,n,Z,u,m.applyOffset.values,y),l(s)&&e5(e,t,n,Z,s,m.tangent.values,y,!0),l(a)&&e5(e,t,n,Z,a,m.bitangent.values,y,!0),l(c)&&Gae(e,t,n,Z,c,m.st.values,y),b>0)for(let R=0;R3){let L=V.positions,P=V.indices,N=P.length;for(let O=0;O0)continue;let c=h.unpack(i,s,Wae);(a.y<0&&c.y>0||a.y>0&&c.y<0)&&(s-3>0?(i[s]=n[s-3],i[s+1]=n[s-2],i[s+2]=n[s-1]):h.pack(a,i,s));let d=h.unpack(o,s,eJ);(a.y<0&&d.y>0||a.y>0&&d.y<0)&&(s+30||ue.intersectPlane(n,sn.ORIGIN_ZX_PLANE)!==Qt.INTERSECTING))return e;if(t.geometryType!==om.NONE)switch(t.geometryType){case om.POLYLINES:QXe(e);break;case om.TRIANGLES:Aae(e);break;case om.LINES:Zae(e);break}else XXe(t),t.primitiveType===ve.TRIANGLES?Aae(e):t.primitiveType===ve.LINES&&Zae(e);return e};var Un=xl;var Jzt=x(T(),1);var Bzt=x(T(),1);var Ri={UNSIGNED_BYTE:ne.UNSIGNED_BYTE,UNSIGNED_SHORT:ne.UNSIGNED_SHORT,UNSIGNED_INT:ne.UNSIGNED_INT,FLOAT:ne.FLOAT,HALF_FLOAT:ne.HALF_FLOAT_OES,UNSIGNED_INT_24_8:ne.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:ne.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:ne.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:ne.UNSIGNED_SHORT_5_6_5};Ri.toWebGLConstant=function(e,t){switch(e){case Ri.UNSIGNED_BYTE:return ne.UNSIGNED_BYTE;case Ri.UNSIGNED_SHORT:return ne.UNSIGNED_SHORT;case Ri.UNSIGNED_INT:return ne.UNSIGNED_INT;case Ri.FLOAT:return ne.FLOAT;case Ri.HALF_FLOAT:return t.webgl2?ne.HALF_FLOAT:ne.HALF_FLOAT_OES;case Ri.UNSIGNED_INT_24_8:return ne.UNSIGNED_INT_24_8;case Ri.UNSIGNED_SHORT_4_4_4_4:return ne.UNSIGNED_SHORT_4_4_4_4;case Ri.UNSIGNED_SHORT_5_5_5_1:return ne.UNSIGNED_SHORT_5_5_5_1;case Ri.UNSIGNED_SHORT_5_6_5:return Ri.UNSIGNED_SHORT_5_6_5}};Ri.isPacked=function(e){return e===Ri.UNSIGNED_INT_24_8||e===Ri.UNSIGNED_SHORT_4_4_4_4||e===Ri.UNSIGNED_SHORT_5_5_5_1||e===Ri.UNSIGNED_SHORT_5_6_5};Ri.sizeInBytes=function(e){switch(e){case Ri.UNSIGNED_BYTE:return 1;case Ri.UNSIGNED_SHORT:case Ri.UNSIGNED_SHORT_4_4_4_4:case Ri.UNSIGNED_SHORT_5_5_5_1:case Ri.UNSIGNED_SHORT_5_6_5:case Ri.HALF_FLOAT:return 2;case Ri.UNSIGNED_INT:case Ri.FLOAT:case Ri.UNSIGNED_INT_24_8:return 4}};Ri.validate=function(e){return e===Ri.UNSIGNED_BYTE||e===Ri.UNSIGNED_SHORT||e===Ri.UNSIGNED_INT||e===Ri.FLOAT||e===Ri.HALF_FLOAT||e===Ri.UNSIGNED_INT_24_8||e===Ri.UNSIGNED_SHORT_4_4_4_4||e===Ri.UNSIGNED_SHORT_5_5_5_1||e===Ri.UNSIGNED_SHORT_5_6_5};Ri.getTypedArrayConstructor=function(e){let t=Ri.sizeInBytes(e);return t===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:t===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:t===Float32Array.BYTES_PER_ELEMENT&&e===Ri.FLOAT?Float32Array:Uint32Array};Object.freeze(Ri);var ze=Ri;var ot={DEPTH_COMPONENT:ne.DEPTH_COMPONENT,DEPTH_STENCIL:ne.DEPTH_STENCIL,ALPHA:ne.ALPHA,RED:ne.RED,RG:ne.RG,RGB:ne.RGB,RGBA:ne.RGBA,RED_INTEGER:ne.RED_INTEGER,RG_INTEGER:ne.RG_INTEGER,RGB_INTEGER:ne.RGB_INTEGER,RGBA_INTEGER:ne.RGBA_INTEGER,LUMINANCE:ne.LUMINANCE,LUMINANCE_ALPHA:ne.LUMINANCE_ALPHA,RGB_DXT1:ne.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:ne.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:ne.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:ne.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:ne.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:ne.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:ne.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:ne.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:ne.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:ne.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:ne.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:ne.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:ne.COMPRESSED_RGBA_BPTC_UNORM};ot.componentsLength=function(e){switch(e){case ot.RGB:case ot.RGB_INTEGER:return 3;case ot.RGBA:case ot.RGBA_INTEGER:return 4;case ot.LUMINANCE_ALPHA:case ot.RG:case ot.RG_INTEGER:return 2;case ot.ALPHA:case ot.RED:case ot.RED_INTEGER:case ot.LUMINANCE:return 1;default:return 1}};ot.validate=function(e){return e===ot.DEPTH_COMPONENT||e===ot.DEPTH_STENCIL||e===ot.ALPHA||e===ot.RED||e===ot.RG||e===ot.RGB||e===ot.RGBA||e===ot.RED_INTEGER||e===ot.RG_INTEGER||e===ot.RGB_INTEGER||e===ot.RGBA_INTEGER||e===ot.LUMINANCE||e===ot.LUMINANCE_ALPHA||e===ot.RGB_DXT1||e===ot.RGBA_DXT1||e===ot.RGBA_DXT3||e===ot.RGBA_DXT5||e===ot.RGB_PVRTC_4BPPV1||e===ot.RGB_PVRTC_2BPPV1||e===ot.RGBA_PVRTC_4BPPV1||e===ot.RGBA_PVRTC_2BPPV1||e===ot.RGBA_ASTC||e===ot.RGB_ETC1||e===ot.RGB8_ETC2||e===ot.RGBA8_ETC2_EAC||e===ot.RGBA_BC7};ot.isColorFormat=function(e){return e===ot.RED||e===ot.ALPHA||e===ot.RGB||e===ot.RGBA||e===ot.LUMINANCE||e===ot.LUMINANCE_ALPHA};ot.isDepthFormat=function(e){return e===ot.DEPTH_COMPONENT||e===ot.DEPTH_STENCIL};ot.isCompressedFormat=function(e){return e===ot.RGB_DXT1||e===ot.RGBA_DXT1||e===ot.RGBA_DXT3||e===ot.RGBA_DXT5||e===ot.RGB_PVRTC_4BPPV1||e===ot.RGB_PVRTC_2BPPV1||e===ot.RGBA_PVRTC_4BPPV1||e===ot.RGBA_PVRTC_2BPPV1||e===ot.RGBA_ASTC||e===ot.RGB_ETC1||e===ot.RGB8_ETC2||e===ot.RGBA8_ETC2_EAC||e===ot.RGBA_BC7};ot.isDXTFormat=function(e){return e===ot.RGB_DXT1||e===ot.RGBA_DXT1||e===ot.RGBA_DXT3||e===ot.RGBA_DXT5};ot.isPVRTCFormat=function(e){return e===ot.RGB_PVRTC_4BPPV1||e===ot.RGB_PVRTC_2BPPV1||e===ot.RGBA_PVRTC_4BPPV1||e===ot.RGBA_PVRTC_2BPPV1};ot.isASTCFormat=function(e){return e===ot.RGBA_ASTC};ot.isETC1Format=function(e){return e===ot.RGB_ETC1};ot.isETC2Format=function(e){return e===ot.RGB8_ETC2||e===ot.RGBA8_ETC2_EAC};ot.isBC7Format=function(e){return e===ot.RGBA_BC7};ot.compressedTextureSizeInBytes=function(e,t,n){switch(e){case ot.RGB_DXT1:case ot.RGBA_DXT1:case ot.RGB_ETC1:case ot.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case ot.RGBA_DXT3:case ot.RGBA_DXT5:case ot.RGBA_ASTC:case ot.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case ot.RGB_PVRTC_4BPPV1:case ot.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case ot.RGB_PVRTC_2BPPV1:case ot.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case ot.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};ot.textureSizeInBytes=function(e,t,n,i){let o=ot.componentsLength(e);return ze.isPacked(t)&&(o=1),o*ze.sizeInBytes(t)*n*i};ot.texture3DSizeInBytes=function(e,t,n,i,o){let r=ot.componentsLength(e);return ze.isPacked(t)&&(r=1),r*ze.sizeInBytes(t)*n*i*o};ot.alignmentInBytes=function(e,t,n){let i=ot.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};ot.createTypedArray=function(e,t,n,i){let o=ze.getTypedArrayConstructor(t),r=ot.componentsLength(e)*n*i;return new o(r)};ot.flipY=function(e,t,n,i,o){if(o===1)return e;let r=ot.createTypedArray(t,n,i,o),s=ot.componentsLength(t),a=i*s;for(let c=0;c0&&(i.glVertexAttribDivisor(d,this.instanceDivisor),i._vertexAttribDivisors[d]=this.instanceDivisor,i._previousDrawInstanced=!0)},a.disableVertexAttribArray=function(c){c.disableVertexAttribArray(this.index),this.instanceDivisor>0&&i.glVertexAttribDivisor(n,0)};else{switch(a.componentsPerAttribute){case 1:a.vertexAttrib=function(c){c.vertexAttrib1fv(this.index,this.value)};break;case 2:a.vertexAttrib=function(c){c.vertexAttrib2fv(this.index,this.value)};break;case 3:a.vertexAttrib=function(c){c.vertexAttrib3fv(this.index,this.value)};break;case 4:a.vertexAttrib=function(c){c.vertexAttrib4fv(this.index,this.value)};break}a.disableVertexAttribArray=function(c){}}e.push(a)}function Fae(e,t,n){for(let i=0;i0&&(c=!0),l(s[r].value)&&(d=!0);let m;t.vertexArrayObject&&(m=t.glCreateVertexArray(),t.glBindVertexArray(m),Fae(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=d,this._context=t,this._gl=n,this._vao=m,this._attributes=s,this._indexBuffer=o}function vae(e){return e.values.length/e.componentsPerAttribute}function eYe(e){return J.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function tYe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)&&(o.push(n),e[n].componentDatatype===J.DOUBLE&&(e[n].componentDatatype=J.FLOAT,e[n].values=J.createTypedArray(J.FLOAT,e[n].values)));let r,s=o.length;if(s>0)for(r=vae(e[o[0]]),t=1;t0){let d=J.getSizeInBytes(e[o[0]].componentDatatype),u=a%d;u!==0&&(a+=d-u);let m=r*a,p=new ArrayBuffer(m),b={};for(t=0;t=W.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=$e.createIndexBuffer({context:t,typedArray:new Uint32Array(b),usage:i,indexDatatype:De.UNSIGNED_INT}):p=$e.createIndexBuffer({context:t,typedArray:new Uint16Array(b),usage:i,indexDatatype:De.UNSIGNED_SHORT})),new xh({context:t,attributes:u,indexBuffer:p})};Object.defineProperties(xh.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});xh.prototype.getAttribute=function(e){return this._attributes[e]};function nYe(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=Xt.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function iYe(e,t){let n=e._attributes,i=n.length;for(let o=0;o maxHeight) { + material.diffuse = vec3(0.0); + material.alpha = 0.0; + return material; + } + + // Binary search to find heights above and below. + int idxBelow = 0; + int idxAbove = heightsDimensions.x; + float heightBelow = minHeight; + float heightAbove = maxHeight; + + // while loop not allowed, so use for loop with max iterations. + // maxIterations of 16 supports a texture size up to 65536 (2^16). + const int maxIterations = 16; + for (int i = 0; i < maxIterations; i++) { + if (idxBelow >= idxAbove - 1) { + break; + } + + int idxMid = (idxBelow + idxAbove) / 2; + float heightTex = getHeight(idxMid, invTexSize); + + if (height > heightTex) { + idxBelow = idxMid; + heightBelow = heightTex; + } else { + idxAbove = idxMid; + heightAbove = heightTex; + } + } + + float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow); + vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5); + vec4 color = texture(colors, colorUv); + + // undo preumultiplied alpha + if (color.a > 0.0) + { + color.rgb /= color.a; + } + + color.rgb = czm_gammaCorrect(color.rgb); + + material.diffuse = color.rgb; + material.alpha = color.a; + return material; +} +`;var zKt=x(T(),1),gG=`uniform vec4 color; +uniform float spacing; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float distanceToContour = mod(materialInput.height, spacing); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float dxc = abs(dFdx(materialInput.height)); + float dyc = abs(dFdy(materialInput.height)); + float dF = max(dxc, dyc) * czm_pixelRatio * width; + float alpha = (distanceToContour < dF) ? 1.0 : 0.0; +#else + // If no derivatives available (IE 10?), use pixel ratio + float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0; +#endif + + vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a)); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var KKt=x(T(),1),yG=`uniform sampler2D image; +uniform float minimumHeight; +uniform float maximumHeight; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0); + vec4 rampColor = texture(image, vec2(scaledHeight, 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var jKt=x(T(),1),xG=`uniform vec4 fadeInColor; +uniform vec4 fadeOutColor; +uniform float maximumDistance; +uniform bool repeat; +uniform vec2 fadeDirection; +uniform vec2 time; + +float getTime(float t, float coord) +{ + float scalar = 1.0 / maximumDistance; + float q = distance(t, coord) * scalar; + if (repeat) + { + float r = distance(t, coord + 1.0) * scalar; + float s = distance(t, coord - 1.0) * scalar; + q = min(min(r, s), q); + } + return clamp(q, 0.0, 1.0); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float s = getTime(time.x, st.s) * fadeDirection.s; + float t = getTime(time.y, st.t) * fadeDirection.t; + + float u = length(vec2(s, t)); + vec4 color = mix(fadeInColor, fadeOutColor, u); + + color = czm_gammaCorrect(color); + material.emission = color.rgb; + material.alpha = color.a; + + return material; +} +`;var qKt=x(T(),1),TG=`uniform vec4 color; +uniform float cellAlpha; +uniform vec2 lineCount; +uniform vec2 lineThickness; +uniform vec2 lineOffset; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + float scaledWidth = fract(lineCount.s * st.s - lineOffset.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(lineCount.t * st.t - lineOffset.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + + float value; + + // Fuzz Factor - Controls blurriness of lines +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + const float fuzz = 1.2; + vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0; + + // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13. + vec2 dx = abs(dFdx(st)); + vec2 dy = abs(dFdy(st)); + vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount; + value = min( + smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth), + smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight)); +#else + // If no derivatives available (IE 10?), revert to view-dependent fuzz + const float fuzz = 0.05; + + vec2 range = 0.5 - (lineThickness * 0.05); + value = min( + 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth), + 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight)); +#endif + + // Edges taken from RimLightingMaterial.glsl + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC))); + float sRim = smoothstep(0.8, 1.0, dRim); + value *= (1.0 - sRim); + + vec4 halfColor; + halfColor.rgb = color.rgb * 0.5; + halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value)); + halfColor = czm_gammaCorrect(halfColor); + material.diffuse = halfColor.rgb; + material.emission = halfColor.rgb; + material.alpha = halfColor.a; + + return material; +} +`;var eJt=x(T(),1),_G=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 textureValue = texture(image, fract(repeat * materialInput.st)); + vec3 normalTangentSpace = textureValue.channels; + normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0; + normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0); + normalTangentSpace = normalize(normalTangentSpace); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + + return material; +} +`;var nJt=x(T(),1),SG=`uniform vec4 color; + +float getPointOnLine(vec2 p0, vec2 p1, float x) +{ + float slope = (p0.y - p1.y) / (p0.x - p1.x); + return slope * (x - p0.x) + p0.y; +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio; +#else + // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head + float base = 0.975; +#endif + + vec2 center = vec2(1.0, 0.5); + float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s); + float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s); + + float halfWidth = 0.15; + float s = step(0.5 - halfWidth, st.t); + s *= 1.0 - step(0.5 + halfWidth, st.t); + s *= 1.0 - step(base, st.s); + + float t = step(base, materialInput.st.s); + t *= 1.0 - step(ptOnUpperLine, st.t); + t *= step(ptOnLowerLine, st.t); + + // Find the distance from the closest separator (region between two colors) + float dist; + if (st.s < base) + { + float d1 = abs(st.t - (0.5 - halfWidth)); + float d2 = abs(st.t - (0.5 + halfWidth)); + dist = min(d1, d2); + } + else + { + float d1 = czm_infinity; + if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth) + { + d1 = abs(st.s - base); + } + float d2 = abs(st.t - ptOnUpperLine); + float d3 = abs(st.t - ptOnLowerLine); + dist = min(min(d1, d2), d3); + } + + vec4 outsideColor = vec4(0.0); + vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0)); + vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist); + + outColor = czm_gammaCorrect(outColor); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + return material; +} +`;var oJt=x(T(),1),AG=`uniform vec4 color; +uniform vec4 gapColor; +uniform float dashLength; +uniform float dashPattern; +in float v_polylineAngle; + +const float maskLength = 16.0; + +mat2 rotate(float rad) { + float c = cos(rad); + float s = sin(rad); + return mat2( + c, s, + -s, c + ); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy; + + // Get the relative position within the dash from 0 to 1 + float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio)); + // Figure out the mask index. + float maskIndex = floor(dashPosition * maskLength); + // Test the bit mask. + float maskTest = floor(dashPattern / pow(2.0, maskIndex)); + vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color; + if (fragColor.a < 0.005) { // matches 0/255 and 1/255 + discard; + } + + fragColor = czm_gammaCorrect(fragColor); + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + return material; +} +`;var sJt=x(T(),1),ZG=`uniform vec4 color; +uniform float glowPower; +uniform float taperPower; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5); + + if (taperPower <= 0.99999) { + glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5)); + } + + vec4 fragColor; + fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb); + fragColor.a = clamp(0.0, 1.0, glow) * color.a; + fragColor = czm_gammaCorrect(fragColor); + + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + + return material; +} +`;var cJt=x(T(),1),CG=`uniform vec4 color; +uniform vec4 outlineColor; +uniform float outlineWidth; + +in float v_width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width; + float b = step(0.5 - halfInteriorWidth, st.t); + b *= 1.0 - step(0.5 + halfInteriorWidth, st.t); + + // Find the distance from the closest separator (region between two colors) + float d1 = abs(st.t - (0.5 - halfInteriorWidth)); + float d2 = abs(st.t - (0.5 + halfInteriorWidth)); + float dist = min(d1, d2); + + vec4 currentColor = mix(outlineColor, color, b); + vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var dJt=x(T(),1),RG=`uniform vec4 color; +uniform vec4 rimColor; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)); + float s = smoothstep(1.0 - width, 1.0, d); + + vec4 outColor = czm_gammaCorrect(color); + vec4 outRimColor = czm_gammaCorrect(rimColor); + + material.diffuse = outColor.rgb; + material.emission = outRimColor.rgb * s; + material.alpha = mix(outColor.a, outRimColor.a, s); + + return material; +} +`;var mJt=x(T(),1),VG=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var fJt=x(T(),1),GG=`uniform vec4 evenColor; +uniform vec4 oddColor; +uniform float offset; +uniform float repeat; +uniform bool horizontal; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // Based on the Stripes Fragment Shader in the Orange Book (11.1.2) + float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal)); + float value = fract((coord - offset) * (repeat * 0.5)); + float dist = min(value, min(abs(value - 0.5), 1.0 - value)); + + vec4 currentColor = mix(evenColor, oddColor, step(0.5, value)); + vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist); + color = czm_gammaCorrect(color); + + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var bJt=x(T(),1),EG=`uniform vec4 waterColor; +uniform vec4 landColor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 outColor = mix(landColor, waterColor, materialInput.waterMask); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var yJt=x(T(),1),LG=`// Thanks for the contribution Jonas +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +uniform sampler2D specularMap; +uniform sampler2D normalMap; +uniform vec4 baseWaterColor; +uniform vec4 blendColor; +uniform float frequency; +uniform float animationSpeed; +uniform float amplitude; +uniform float specularIntensity; +uniform float fadeFactor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float time = czm_frameNumber * animationSpeed; + + // fade is a function of the distance from the fragment and the frequency of the waves + float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor); + + float specularMapValue = texture(specularMap, materialInput.st).r; + + // note: not using directional motion at this time, just set the angle to 0.0; + vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0); + vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude)); + + // fade out the normal perturbation as we move further from the water surface + normalTangentSpace.xy /= fade; + + // attempt to fade out the normal perturbation as we approach non water areas (low specular map value) + normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue); + + normalTangentSpace = normalize(normalTangentSpace); + + // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane + float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0); + + // fade out water effect as specular map value decreases + material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue; + + // base color is a blend of the water and non-water color based on the value from the specular map + // may need a uniform blend factor to better control this + material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue); + + // diffuse highlights are based on how perturbed the normal is + material.diffuse += (0.1 * tsPerturbationRatio); + + material.diffuse = material.diffuse; + + material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace); + + material.specular = specularIntensity; + material.shininess = 10.0; + + return material; +} +`;function tt(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._minificationFilter=e.minificationFilter??Dt.LINEAR,this._magnificationFilter=e.magnificationFilter??qn.LINEAR,this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,this._initializationPromises=[],this._initializationError=void 0,lYe(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1},minificationFilter:{get:function(){return this._minificationFilter},set:function(t){this._minificationFilter=t}},magnificationFilter:{get:function(){return this._magnificationFilter},set:function(t){this._magnificationFilter=t}}}),l(tt._uniformList[this.type])||(tt._uniformList[this.type]=Object.keys(this._uniforms))}tt._uniformList={};tt.fromType=function(e,t){let n=new tt({fabric:{type:e}});if(l(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};tt.fromTypeAsync=async function(e,t){let n=[],i=new tt({fabric:{type:e,uniforms:t}});if(kae(i,n),await Promise.all(n),n.length=0,l(i._initializationError))throw i._initializationError;return i};function kae(e,t){t.push(...e._initializationPromises);let n=e.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];kae(o,t)}}tt.prototype.isTranslucent=function(){if(l(this.translucent))return typeof this.translucent=="function"?this.translucent():this.translucent;let e=!0,t=this._translucentFunctions,n=t.length;for(let i=0;i-1)return!0;return!1}function pYe(e){let t=e._template.components,n=e._template.source;if(l(n))e.shaderSource+=`${n} +`;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput) +{ +`,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput); +`,l(t)){let i=Object.keys(e._template.materials).length>0;for(let o in t)if(t.hasOwnProperty(o))if(o==="diffuse"||o==="emission"){let s=i&&fYe(t[o],e)?t[o]:`czm_gammaCorrect(${t[o]})`;e.shaderSource+=`material.${o} = ${s}; +`}else o==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha}; +`:e.shaderSource+=`material.${o} = ${t[o]}; +`}e.shaderSource+=`return material; +} +`}}var Mae={mat2:Ui,mat3:$,mat4:F},bYe=/\.ktx2$/i;function gYe(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!l(r)||r===tt.DefaultImageId;t=r;let c=n._textures[e],d,u;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&l(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!l(c)||c===i.defaultTexture){let m=new Ht({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new Ft({context:i,source:r,sampler:m}),n._textures[e]=c;return}c.copyFrom({source:r})}else l(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof Ft&&r!==c){n._texturePaths[e]=void 0;let m=n._textures[e];l(m)&&m!==n._defaultTexture&&m.destroy(),n._textures[e]=r,d=`${e}Dimensions`,o.hasOwnProperty(d)&&(u=o[d],u.x=r._width,u.y=r._height);return}if(s&&l(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0,n._texturePaths[e]=void 0),l(c)||(c=n._textures[e]=n._defaultTexture,d=`${e}Dimensions`,o.hasOwnProperty(d)&&(u=o[d],u.x=c._width,u.y=c._height)),!a){if((r instanceof HTMLCanvasElement||r instanceof HTMLImageElement||r instanceof ImageBitmap||r instanceof OffscreenCanvas)&&r!==n._texturePaths[e]){n._loadedImages.push({id:e,image:r}),n._texturePaths[e]=r;return}Uae(n,e)}}}function Uae(e,t){let i=e.uniforms[t];if(i===tt.DefaultImageId)return Promise.resolve();let o=We.createIfNeeded(i);if(!(o instanceof We))return Promise.resolve();let r=We.createIfNeeded(e._texturePaths[t]);if(!(!l(r)||r.url!==o.url))return Promise.resolve();let a;return bYe.test(o.url)?a=ud(o.url):a=o.fetchImage(),Promise.resolve(a).then(function(c){e._loadedImages.push({id:t,image:c})}).catch(function(c){e._initializationError=c;let d=e._textures[t];l(d)&&d!==e._defaultTexture&&d.destroy(),e._textures[t]=e._defaultTexture}),e._texturePaths[t]=i,a}function yYe(e){return function(t,n){let i=t.uniforms[e];if(i instanceof Ur){let o=t._textures[e];o!==t._defaultTexture&&o.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}l(t._textures[e])||(t._textures[e]=n.defaultCubeMap),Dae(t,e)}}function Dae(e,t){let i=e.uniforms[t];if(i===tt.DefaultCubeMapId)return Promise.resolve();let o=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(o===e._texturePaths[t])return Promise.resolve();let r=[We.createIfNeeded(i.positiveX).fetchImage(),We.createIfNeeded(i.negativeX).fetchImage(),We.createIfNeeded(i.positiveY).fetchImage(),We.createIfNeeded(i.negativeY).fetchImage(),We.createIfNeeded(i.positiveZ).fetchImage(),We.createIfNeeded(i.negativeZ).fetchImage()],s=Promise.all(r);return s.then(function(a){e._loadedCubeMaps.push({id:t,images:a})}).catch(function(a){e._initializationError=a}),e._texturePaths[t]=o,s}function xYe(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&Oae(e,n)}function Oae(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=TYe(o),s;if(r==="channels")s=WG(e,t,o,!1);else{if(r==="sampler2D"){let d=`${t}Dimensions`;SYe(e,d)>0&&(i[d]={type:"ivec3",x:1,y:1},Oae(e,d))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let d=`uniform ${r} ${t};`;e.shaderSource=d+e.shaderSource}let c=`${t}_${e._count++}`;if(s=WG(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(gYe(t)),e._initializationPromises.push(Uae(e,t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(yYe(t)),e._initializationPromises.push(Dae(e,t));else if(r.indexOf("mat")!==-1){let d=new Mae[r];e._uniforms[c]=function(){return Mae[r].fromColumnMajorArray(e.uniforms[t],d)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function TYe(e){let t=e.type;if(!l(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof We||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement||e instanceof ImageBitmap||e instanceof OffscreenCanvas)/^([rgba]){1,4}$/i.test(e)?t="channels":e===tt.DefaultCubeMapId?t="samplerCube":t="sampler2D";else if(n==="object")if(Array.isArray(e))(e.length===4||e.length===9||e.length===16)&&(t=`mat${Math.sqrt(e.length)}`);else{let i=0;for(let o in e)e.hasOwnProperty(o)&&(i+=1);i>=2&&i<=4?t=`vec${i}`:i===6&&(t="samplerCube")}}return t}function _Ye(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=new tt({strict:t,fabric:n[i],count:e._count});e._count=o._count,e._uniforms=vt(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;WG(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=WG(e,i,a)}}function WG(e,t,n,i){i=i??!0;let o=0,r="([\\w])?",s=`([\\w${i?".":""}])?`,a=new RegExp(s+t+r,"g");return e.shaderSource=e.shaderSource.replace(a,function(c,d,u){return d||u?c:(o+=1,n)}),o}function SYe(e,t,n){return WG(e,t,t,n)}tt._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};tt.DefaultImageId="czm_defaultImage";tt.DefaultCubeMapId="czm_defaultCubeMap";tt.ColorType="Color";tt._materialCache.addMaterial(tt.ColorType,{fabric:{type:tt.ColorType,uniforms:{color:new U(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});tt.ImageType="Image";tt._materialCache.addMaterial(tt.ImageType,{fabric:{type:tt.ImageType,uniforms:{image:tt.DefaultImageId,repeat:new k(1,1),color:new U(1,1,1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});tt.DiffuseMapType="DiffuseMap";tt._materialCache.addMaterial(tt.DiffuseMapType,{fabric:{type:tt.DiffuseMapType,uniforms:{image:tt.DefaultImageId,channels:"rgb",repeat:new k(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});tt.AlphaMapType="AlphaMap";tt._materialCache.addMaterial(tt.AlphaMapType,{fabric:{type:tt.AlphaMapType,uniforms:{image:tt.DefaultImageId,channel:"a",repeat:new k(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});tt.SpecularMapType="SpecularMap";tt._materialCache.addMaterial(tt.SpecularMapType,{fabric:{type:tt.SpecularMapType,uniforms:{image:tt.DefaultImageId,channel:"r",repeat:new k(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});tt.EmissionMapType="EmissionMap";tt._materialCache.addMaterial(tt.EmissionMapType,{fabric:{type:tt.EmissionMapType,uniforms:{image:tt.DefaultImageId,channels:"rgb",repeat:new k(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});tt.BumpMapType="BumpMap";tt._materialCache.addMaterial(tt.BumpMapType,{fabric:{type:tt.BumpMapType,uniforms:{image:tt.DefaultImageId,channel:"r",strength:.8,repeat:new k(1,1)},source:hG},translucent:!1});tt.NormalMapType="NormalMap";tt._materialCache.addMaterial(tt.NormalMapType,{fabric:{type:tt.NormalMapType,uniforms:{image:tt.DefaultImageId,channels:"rgb",strength:.8,repeat:new k(1,1)},source:_G},translucent:!1});tt.GridType="Grid";tt._materialCache.addMaterial(tt.GridType,{fabric:{type:tt.GridType,uniforms:{color:new U(0,1,0,1),cellAlpha:.1,lineCount:new k(8,8),lineThickness:new k(1,1),lineOffset:new k(0,0)},source:TG},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});tt.StripeType="Stripe";tt._materialCache.addMaterial(tt.StripeType,{fabric:{type:tt.StripeType,uniforms:{horizontal:!0,evenColor:new U(1,1,1,.5),oddColor:new U(0,0,1,.5),offset:0,repeat:5},source:GG},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});tt.CheckerboardType="Checkerboard";tt._materialCache.addMaterial(tt.CheckerboardType,{fabric:{type:tt.CheckerboardType,uniforms:{lightColor:new U(1,1,1,.5),darkColor:new U(0,0,0,.5),repeat:new k(5,5)},source:fG},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});tt.DotType="Dot";tt._materialCache.addMaterial(tt.DotType,{fabric:{type:tt.DotType,uniforms:{lightColor:new U(1,1,0,.75),darkColor:new U(0,1,1,.75),repeat:new k(5,5)},source:pG},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});tt.WaterType="Water";tt._materialCache.addMaterial(tt.WaterType,{fabric:{type:tt.WaterType,uniforms:{baseWaterColor:new U(.2,.3,.6,1),blendColor:new U(0,1,.699,1),specularMap:tt.DefaultImageId,normalMap:tt.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:LG},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});tt.RimLightingType="RimLighting";tt._materialCache.addMaterial(tt.RimLightingType,{fabric:{type:tt.RimLightingType,uniforms:{color:new U(1,0,0,.7),rimColor:new U(1,1,1,.4),width:.3},source:RG},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});tt.FadeType="Fade";tt._materialCache.addMaterial(tt.FadeType,{fabric:{type:tt.FadeType,uniforms:{fadeInColor:new U(1,0,0,1),fadeOutColor:new U(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new k(.5,.5)},source:xG},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});tt.PolylineArrowType="PolylineArrow";tt._materialCache.addMaterial(tt.PolylineArrowType,{fabric:{type:tt.PolylineArrowType,uniforms:{color:new U(1,1,1,1)},source:SG},translucent:!0});tt.PolylineDashType="PolylineDash";tt._materialCache.addMaterial(tt.PolylineDashType,{fabric:{type:tt.PolylineDashType,uniforms:{color:new U(1,0,1,1),gapColor:new U(0,0,0,0),dashLength:16,dashPattern:255},source:AG},translucent:!0});tt.PolylineGlowType="PolylineGlow";tt._materialCache.addMaterial(tt.PolylineGlowType,{fabric:{type:tt.PolylineGlowType,uniforms:{color:new U(0,.5,1,1),glowPower:.25,taperPower:1},source:ZG},translucent:!0});tt.PolylineOutlineType="PolylineOutline";tt._materialCache.addMaterial(tt.PolylineOutlineType,{fabric:{type:tt.PolylineOutlineType,uniforms:{color:new U(1,1,1,1),outlineColor:new U(1,0,0,1),outlineWidth:1},source:CG},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});tt.ElevationContourType="ElevationContour";tt._materialCache.addMaterial(tt.ElevationContourType,{fabric:{type:tt.ElevationContourType,uniforms:{spacing:100,color:new U(1,0,0,1),width:1},source:gG},translucent:!1});tt.ElevationRampType="ElevationRamp";tt._materialCache.addMaterial(tt.ElevationRampType,{fabric:{type:tt.ElevationRampType,uniforms:{image:tt.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:yG},translucent:!1});tt.SlopeRampMaterialType="SlopeRamp";tt._materialCache.addMaterial(tt.SlopeRampMaterialType,{fabric:{type:tt.SlopeRampMaterialType,uniforms:{image:tt.DefaultImageId},source:VG},translucent:!1});tt.AspectRampMaterialType="AspectRamp";tt._materialCache.addMaterial(tt.AspectRampMaterialType,{fabric:{type:tt.AspectRampMaterialType,uniforms:{image:tt.DefaultImageId},source:mG},translucent:!1});tt.ElevationBandType="ElevationBand";tt._materialCache.addMaterial(tt.ElevationBandType,{fabric:{type:tt.ElevationBandType,uniforms:{heights:tt.DefaultImageId,colors:tt.DefaultImageId},source:bG},translucent:!0});tt.WaterMaskType="WaterMask";tt._materialCache.addMaterial(tt.WaterMaskType,{fabric:{type:tt.WaterMaskType,source:EG,uniforms:{waterColor:new U(1,1,1,1),landColor:new U(0,0,0,0)}},translucent:!1});var Di=tt;function TT(e){e=e??B.EMPTY_OBJECT;let t=e.translucent??!0,n=e.closed??!1,i=e.materialSupport??TT.MaterialSupport.TEXTURED;this.material=l(e.material)?e.material:Di.fromType(Di.ColorType),this.translucent=t,this._vertexShaderSource=e.vertexShaderSource??i.vertexShaderSource,this._fragmentShaderSource=e.fragmentShaderSource??i.fragmentShaderSource,this._renderState=_o.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._materialSupport=i,this._vertexFormat=i.vertexFormat,this._flat=e.flat??!1,this._faceForward=e.faceForward??!n}Object.defineProperties(TT.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});TT.prototype.getFragmentShaderSource=_o.prototype.getFragmentShaderSource;TT.prototype.isTranslucent=_o.prototype.isTranslucent;TT.prototype.getRenderState=_o.prototype.getRenderState;TT.MaterialSupport={BASIC:Object.freeze({vertexFormat:Me.POSITION_AND_NORMAL,vertexShaderSource:KV,fragmentShaderSource:HV}),TEXTURED:Object.freeze({vertexFormat:Me.POSITION_NORMAL_AND_ST,vertexShaderSource:jV,fragmentShaderSource:JV}),ALL:Object.freeze({vertexFormat:Me.ALL,vertexShaderSource:zV,fragmentShaderSource:BV})};var bo=TT;var Fjt=x(T(),1);var yjt=x(T(),1),vG=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec4 v_color; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + vec4 color = czm_gammaCorrect(v_color); + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +} +`;var Tjt=x(T(),1),FG=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec4 color; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var Sjt=x(T(),1),_T=`in vec4 v_color; + +void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +} +`;var Zjt=x(T(),1),IG=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function G0(e){e=e??B.EMPTY_OBJECT;let t=e.translucent??!0,n=e.closed??!1,i=e.flat??!1,o=i?IG:FG,r=i?_T:vG,s=i?G0.FLAT_VERTEX_FORMAT:G0.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=e.vertexShaderSource??o,this._fragmentShaderSource=e.fragmentShaderSource??r,this._renderState=_o.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=e.faceForward??!n}Object.defineProperties(G0.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});G0.VERTEX_FORMAT=Me.POSITION_AND_NORMAL;G0.FLAT_VERTEX_FORMAT=Me.POSITION_ONLY;G0.prototype.getFragmentShaderSource=_o.prototype.getFragmentShaderSource;G0.prototype.isTranslucent=_o.prototype.isTranslucent;G0.prototype.getRenderState=_o.prototype.getRenderState;var pn=G0;var kjt=x(T(),1);function gZ(e){this._definitionChanged=new Se,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(gZ.prototype,{isConstant:{get:function(){return j.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:xe("color")});gZ.prototype.getType=function(e){return"Color"};var AYe=new Q;gZ.prototype.getValue=function(e,t){return l(e)||(e=Q.now(AYe)),l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,U.WHITE,t.color),t};gZ.prototype.equals=function(e){return this===e||e instanceof gZ&&j.equals(this._color,e._color)};var jt=gZ;var Esn=x(T(),1);var csn=x(T(),1);var c4t=x(T(),1);var jjt=x(T(),1);var aJ=class{constructor(t){t=t??B.EMPTY_OBJECT,this._ellipsoid=t.ellipsoid??ie.default,this._rectangle=t.rectangle??se.MAX_VALUE,this._projection=new ki(this._ellipsoid),this._numberOfLevelZeroTilesX=t.numberOfLevelZeroTilesX??2,this._numberOfLevelZeroTilesY=t.numberOfLevelZeroTilesY??1}get ellipsoid(){return this._ellipsoid}get rectangle(){return this._rectangle}get projection(){return this._projection}getNumberOfXTilesAtLevel(t){return this._numberOfLevelZeroTilesX<=r&&(u=r-1);let m=(o.north-t.latitude)/c|0;return m>=s&&(m=s-1),l(i)?(i.x=u,i.y=m,i):new k(u,m)}},Oi=aJ;var Bae=new h,zae=new h,Hae=new fe,cJ=new h,ZYe=new h,Kae=new ue,CYe=new Oi,PG=[new fe,new fe,new fe,new fe],XG=new k,Ss={};Ss.initialize=function(){let e=Ss._initPromise;return l(e)||(e=We.fetchJson($t("Assets/approximateTerrainHeights.json")).then(function(t){Ss._terrainHeights=t}),Ss._initPromise=e),e};Ss.getMinimumMaximumHeights=function(e,t){t=t??ie.default;let n=Jae(e),i=Ss._defaultMinTerrainHeight,o=Ss._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Ss._terrainHeights[r];l(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(se.northeast(e,Hae),Bae),t.cartographicToCartesian(se.southwest(e,Hae),zae),h.midpoint(zae,Bae,cJ);let a=t.scaleToGeodeticSurface(cJ,ZYe);if(l(a)){let c=h.distance(cJ,a);i=Math.min(i,-c)}else i=Ss._defaultMinTerrainHeight}return i=Math.max(Ss._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};Ss.getBoundingSphere=function(e,t){t=t??ie.default;let n=Jae(e),i=Ss._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Ss._terrainHeights[r];l(s)&&(i=s[1])}let o=ue.fromRectangle3D(e,t,0);return ue.fromRectangle3D(e,t,i,Kae),ue.union(o,Kae,o)};function Jae(e){fe.fromRadians(e.east,e.north,0,PG[0]),fe.fromRadians(e.west,e.north,0,PG[1]),fe.fromRadians(e.east,e.south,0,PG[2]),fe.fromRadians(e.west,e.south,0,PG[3]);let t=0,n=0,i=0,o=0,r=Ss._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let d=PG[c];if(CYe.positionToTileXY(d,s,XG),c===0)i=XG.x,o=XG.y;else if(i!==XG.x||o!==XG.y){a=!0;break}}if(a)break;t=i,n=o}if(s!==0)return{x:t,y:n,level:s>r?r:s-1}}Ss._terrainHeightsMaxLevel=6;Ss._defaultMaxTerrainHeight=9e3;Ss._defaultMinTerrainHeight=-1e5;Ss._terrainHeights=void 0;Ss._initPromise=void 0;Object.defineProperties(Ss,{initialized:{get:function(){return l(Ss._terrainHeights)}}});var Vi=Ss;var U4t=x(T(),1);var R4t=x(T(),1);var h4t=x(T(),1);function Ba(e,t,n){this.minimum=h.clone(e??h.ZERO),this.maximum=h.clone(t??h.ZERO),l(n)?n=h.clone(n):n=h.midpoint(this.minimum,this.maximum,new h),this.center=n}Ba.fromCorners=function(e,t,n){return l(n)||(n=new Ba),n.minimum=h.clone(e,n.minimum),n.maximum=h.clone(t,n.maximum),n.center=h.midpoint(e,t,n.center),n};Ba.fromPoints=function(e,t){if(l(t)||(t=new Ba),!l(e)||e.length===0)return t.minimum=h.clone(h.ZERO,t.minimum),t.maximum=h.clone(h.ZERO,t.maximum),t.center=h.clone(h.ZERO,t.center),t;let n=e[0].x,i=e[0].y,o=e[0].z,r=e[0].x,s=e[0].y,a=e[0].z,c=e.length;for(let m=1;m0?Qt.INSIDE:r+o<0?Qt.OUTSIDE:Qt.INTERSECTING};Ba.intersectAxisAlignedBoundingBox=function(e,t){return e.minimum.x<=t.maximum.x&&e.maximum.x>=t.minimum.x&&e.minimum.y<=t.maximum.y&&e.maximum.y>=t.minimum.y&&e.minimum.z<=t.maximum.z&&e.maximum.z>=t.minimum.z};Ba.prototype.clone=function(e){return Ba.clone(this,e)};Ba.prototype.intersectPlane=function(e){return Ba.intersectPlane(this,e)};Ba.prototype.intersectAxisAlignedBoundingBox=function(e){return Ba.intersectAxisAlignedBoundingBox(this,e)};Ba.prototype.equals=function(e){return Ba.equals(this,e)};var nu=Ba;var lJ=new ce;function qf(e,t){t=t??ie.default,e=t.scaleToGeodeticSurface(e);let n=xt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=h.fromCartesian4(F.getColumn(n,0,lJ)),this._yAxis=h.fromCartesian4(F.getColumn(n,1,lJ));let i=h.fromCartesian4(F.getColumn(n,2,lJ));this._plane=sn.fromPointNormal(e,i)}Object.defineProperties(qf.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var RYe=new nu;qf.fromPoints=function(e,t){let n=nu.fromPoints(e,RYe);return new qf(n.center,t)};var jae=new _n,r5=new h;qf.prototype.projectPointOntoPlane=function(e,t){let n=jae;n.origin=e,h.normalize(e,n.direction);let i=di.rayPlane(n,this._plane,r5);if(l(i)||(h.negate(n.direction,n.direction),i=di.rayPlane(n,this._plane,r5)),l(i)){let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return l(t)?(t.x=r,t.y=s,t):new k(r,s)}};qf.prototype.projectPointsOntoPlane=function(e,t){l(t)||(t=[]);let n=0,i=e.length;for(let o=0;o0?0:v.latitude,C=fe.fromRadians(Y,e.north,n,NYe),V=fe.fromRadians(e.west,e.north,n,wYe),L=fe.fromRadians(e.west,g,n,MYe),P=fe.fromRadians(e.west,e.south,n,kYe),N=fe.fromRadians(Y,e.south,n,UYe),O=i.cartographicToCartesian(C,DYe),M=i.cartographicToCartesian(V,$ae),D=i.cartographicToCartesian(L,OYe),w=i.cartographicToCartesian(P,ece),z=i.cartographicToCartesian(N,BYe),K=X.projectPointToNearestOnPlane(O,zYe),ee=X.projectPointToNearestOnPlane(M,HYe),H=X.projectPointToNearestOnPlane(D,KYe),te=X.projectPointToNearestOnPlane(w,JYe),q=X.projectPointToNearestOnPlane(z,jYe);return r=Math.min(ee.x,H.x,te.x),s=-r,c=Math.max(ee.y,K.y),a=Math.min(te.y,q.y),V.height=P.height=t,M=i.cartographicToCartesian(V,$ae),w=i.cartographicToCartesian(P,ece),d=Math.min(sn.getPointDistance(m,M),sn.getPointDistance(m,w)),u=n,Qae(X.origin,X.xAxis,X.yAxis,X.zAxis,r,s,a,c,d,u,o)}let p=e.south>0,b=e.north<0,f=p?e.south:b?e.north:0,y=se.center(e,qae).longitude,_=h.fromRadians(y,f,n,i,QYe);_.z=0;let A=Math.abs(_.x)=c?Qt.INSIDE:Qt.INTERSECTING};var ice=new h,oce=new h,rce=new h,sNe=new h,tce=new h,aNe=new h;to.distanceSquaredTo=function(e,t){let n=h.subtract(t,e.center,nce),i=e.halfAxes,o=$.getColumn(i,0,ice),r=$.getColumn(i,1,oce),s=$.getColumn(i,2,rce),a=h.magnitude(o),c=h.magnitude(r),d=h.magnitude(s),u=!0,m=!0,p=!0;a>0?h.divideByScalar(o,a,o):u=!1,c>0?h.divideByScalar(r,c,r):m=!1,d>0?h.divideByScalar(s,d,s):p=!1;let b=!u+!m+!p,f,y,_;if(b===1){let R=o;f=r,y=s,m?p||(R=s,y=o):(R=r,f=o),_=h.cross(f,y,tce),R===o?o=_:R===r?r=_:R===s&&(s=_)}else if(b===2){f=o,m?f=r:p&&(f=s);let R=h.UNIT_Y;R.equalsEpsilon(f,W.EPSILON3)&&(R=h.UNIT_X),y=h.cross(f,R,sNe),h.normalize(y,y),_=h.cross(f,y,tce),h.normalize(_,_),f===o?(r=y,s=_):f===r?(s=y,o=_):f===s&&(o=y,r=_)}else b===3&&(o=h.UNIT_X,r=h.UNIT_Y,s=h.UNIT_Z);let S=aNe;S.x=h.dot(n,o),S.y=h.dot(n,r),S.z=h.dot(n,s);let A=0,Z;return S.x<-a?(Z=S.x+a,A+=Z*Z):S.x>a&&(Z=S.x-a,A+=Z*Z),S.y<-c?(Z=S.y+c,A+=Z*Z):S.y>c&&(Z=S.y-c,A+=Z*Z),S.z<-d?(Z=S.z+d,A+=Z*Z):S.z>d&&(Z=S.z-d,A+=Z*Z),A};var cNe=new h,lNe=new h;to.computePlaneDistances=function(e,t,n,i){l(i)||(i=new kr);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=$.getColumn(a,0,ice),d=$.getColumn(a,1,oce),u=$.getColumn(a,2,rce),m=h.add(c,d,cNe);h.add(m,u,m),h.add(m,s,m);let p=h.subtract(m,t,lNe),b=h.dot(n,p);return o=Math.min(b,o),r=Math.max(b,r),h.add(s,c,m),h.add(m,d,m),h.subtract(m,u,m),h.subtract(m,t,p),b=h.dot(n,p),o=Math.min(b,o),r=Math.max(b,r),h.add(s,c,m),h.subtract(m,d,m),h.add(m,u,m),h.subtract(m,t,p),b=h.dot(n,p),o=Math.min(b,o),r=Math.max(b,r),h.add(s,c,m),h.subtract(m,d,m),h.subtract(m,u,m),h.subtract(m,t,p),b=h.dot(n,p),o=Math.min(b,o),r=Math.max(b,r),h.subtract(s,c,m),h.add(m,d,m),h.add(m,u,m),h.subtract(m,t,p),b=h.dot(n,p),o=Math.min(b,o),r=Math.max(b,r),h.subtract(s,c,m),h.add(m,d,m),h.subtract(m,u,m),h.subtract(m,t,p),b=h.dot(n,p),o=Math.min(b,o),r=Math.max(b,r),h.subtract(s,c,m),h.subtract(m,d,m),h.add(m,u,m),h.subtract(m,t,p),b=h.dot(n,p),o=Math.min(b,o),r=Math.max(b,r),h.subtract(s,c,m),h.subtract(m,d,m),h.subtract(m,u,m),h.subtract(m,t,p),b=h.dot(n,p),o=Math.min(b,o),r=Math.max(b,r),i.start=o,i.stop=r,i};var dNe=new h,uNe=new h,mNe=new h;to.computeCorners=function(e,t){l(t)||(t=[new h,new h,new h,new h,new h,new h,new h,new h]);let n=e.center,i=e.halfAxes,o=$.getColumn(i,0,dNe),r=$.getColumn(i,1,uNe),s=$.getColumn(i,2,mNe);return h.clone(n,t[0]),h.subtract(t[0],o,t[0]),h.subtract(t[0],r,t[0]),h.subtract(t[0],s,t[0]),h.clone(n,t[1]),h.subtract(t[1],o,t[1]),h.subtract(t[1],r,t[1]),h.add(t[1],s,t[1]),h.clone(n,t[2]),h.subtract(t[2],o,t[2]),h.add(t[2],r,t[2]),h.subtract(t[2],s,t[2]),h.clone(n,t[3]),h.subtract(t[3],o,t[3]),h.add(t[3],r,t[3]),h.add(t[3],s,t[3]),h.clone(n,t[4]),h.add(t[4],o,t[4]),h.subtract(t[4],r,t[4]),h.subtract(t[4],s,t[4]),h.clone(n,t[5]),h.add(t[5],o,t[5]),h.subtract(t[5],r,t[5]),h.add(t[5],s,t[5]),h.clone(n,t[6]),h.add(t[6],o,t[6]),h.add(t[6],r,t[6]),h.subtract(t[6],s,t[6]),h.clone(n,t[7]),h.add(t[7],o,t[7]),h.add(t[7],r,t[7]),h.add(t[7],s,t[7]),t};var hNe=new $;to.computeTransformation=function(e,t){l(t)||(t=new F);let n=e.center,i=$.multiplyByUniformScale(e.halfAxes,2,hNe);return F.fromRotationTranslation(i,n,t)};var fNe=new ue;to.isOccluded=function(e,t){let n=ue.fromOrientedBoundingBox(e,fNe);return!t.isBoundingSphereVisible(n)};to.prototype.intersectPlane=function(e){return to.intersectPlane(this,e)};to.prototype.distanceSquaredTo=function(e){return to.distanceSquaredTo(this,e)};to.prototype.computePlaneDistances=function(e,t,n){return to.computePlaneDistances(this,e,t,n)};to.prototype.computeCorners=function(e){return to.computeCorners(this,e)};to.prototype.computeTransformation=function(e){return to.computeTransformation(this,e)};to.prototype.isOccluded=function(e){return to.isOccluded(this,e)};to.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&$.equals(e.halfAxes,t.halfAxes)};to.prototype.clone=function(e){return to.clone(this,e)};to.prototype.equals=function(e){return to.equals(this,e)};var en=to;var H4t=x(T(),1);var s5={};s5.getHeight=function(e,t,n){return(e-n)*t+n};var pNe=new fe;s5.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,pNe);if(!l(r))return h.clone(e,o);let s=s5.getHeight(r.height,n,i);return h.fromRadians(r.longitude,r.latitude,s,t,o)};var co=s5;var Orn=x(T(),1);var q4t=x(T(),1);var Dr={CULL:1,OCCLUDE:2,EXECUTE_IN_CLOSEST_FRUSTUM:4,DEBUG_SHOW_BOUNDING_VOLUME:8,CAST_SHADOWS:16,RECEIVE_SHADOWS:32,PICK_ONLY:64,DEPTH_FOR_TRANSLUCENT_CLASSIFICATION:128},dJ=class e{constructor(t=B.EMPTY_OBJECT){this._boundingVolume=t.boundingVolume,this._orientedBoundingBox=t.orientedBoundingBox,this._modelMatrix=t.modelMatrix,this._primitiveType=t.primitiveType??ve.TRIANGLES,this._vertexArray=t.vertexArray,this._count=t.count,this._offset=t.offset??0,this._instanceCount=t.instanceCount??0,this._shaderProgram=t.shaderProgram,this._uniformMap=t.uniformMap,this._renderState=t.renderState,this._framebuffer=t.framebuffer,this._pass=t.pass,this._owner=t.owner,this._debugOverlappingFrustums=0,this._pickId=t.pickId,this._pickMetadataAllowed=t.pickMetadataAllowed===!0,this._pickedMetadataInfo=void 0,this._flags=0,this.cull=t.cull??!0,this.occlude=t.occlude??!0,this.executeInClosestFrustum=t.executeInClosestFrustum??!1,this.debugShowBoundingVolume=t.debugShowBoundingVolume??!1,this.castShadows=t.castShadows??!1,this.receiveShadows=t.receiveShadows??!1,this.pickOnly=t.pickOnly??!1,this.depthForTranslucentClassification=t.depthForTranslucentClassification??!1,this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}get boundingVolume(){return this._boundingVolume}set boundingVolume(t){this._boundingVolume!==t&&(this._boundingVolume=t,this.dirty=!0)}get orientedBoundingBox(){return this._orientedBoundingBox}set orientedBoundingBox(t){this._orientedBoundingBox!==t&&(this._orientedBoundingBox=t,this.dirty=!0)}get cull(){return kc(this,Dr.CULL)}set cull(t){kc(this,Dr.CULL)!==t&&(Kg(this,Dr.CULL,t),this.dirty=!0)}get occlude(){return kc(this,Dr.OCCLUDE)}set occlude(t){kc(this,Dr.OCCLUDE)!==t&&(Kg(this,Dr.OCCLUDE,t),this.dirty=!0)}get modelMatrix(){return this._modelMatrix}set modelMatrix(t){this._modelMatrix!==t&&(this._modelMatrix=t,this.dirty=!0)}get primitiveType(){return this._primitiveType}set primitiveType(t){this._primitiveType!==t&&(this._primitiveType=t,this.dirty=!0)}get vertexArray(){return this._vertexArray}set vertexArray(t){this._vertexArray!==t&&(this._vertexArray=t,this.dirty=!0)}get count(){return this._count}set count(t){this._count!==t&&(this._count=t,this.dirty=!0)}get offset(){return this._offset}set offset(t){this._offset!==t&&(this._offset=t,this.dirty=!0)}get instanceCount(){return this._instanceCount}set instanceCount(t){this._instanceCount!==t&&(this._instanceCount=t,this.dirty=!0)}get shaderProgram(){return this._shaderProgram}set shaderProgram(t){this._shaderProgram!==t&&(this._shaderProgram=t,this.dirty=!0)}get castShadows(){return kc(this,Dr.CAST_SHADOWS)}set castShadows(t){kc(this,Dr.CAST_SHADOWS)!==t&&(Kg(this,Dr.CAST_SHADOWS,t),this.dirty=!0)}get receiveShadows(){return kc(this,Dr.RECEIVE_SHADOWS)}set receiveShadows(t){kc(this,Dr.RECEIVE_SHADOWS)!==t&&(Kg(this,Dr.RECEIVE_SHADOWS,t),this.dirty=!0)}get uniformMap(){return this._uniformMap}set uniformMap(t){this._uniformMap!==t&&(this._uniformMap=t,this.dirty=!0)}get renderState(){return this._renderState}set renderState(t){this._renderState!==t&&(this._renderState=t,this.dirty=!0)}get framebuffer(){return this._framebuffer}set framebuffer(t){this._framebuffer!==t&&(this._framebuffer=t,this.dirty=!0)}get pass(){return this._pass}set pass(t){this._pass!==t&&(this._pass=t,this.dirty=!0)}get executeInClosestFrustum(){return kc(this,Dr.EXECUTE_IN_CLOSEST_FRUSTUM)}set executeInClosestFrustum(t){kc(this,Dr.EXECUTE_IN_CLOSEST_FRUSTUM)!==t&&(Kg(this,Dr.EXECUTE_IN_CLOSEST_FRUSTUM,t),this.dirty=!0)}get owner(){return this._owner}set owner(t){this._owner!==t&&(this._owner=t,this.dirty=!0)}get debugShowBoundingVolume(){return kc(this,Dr.DEBUG_SHOW_BOUNDING_VOLUME)}set debugShowBoundingVolume(t){kc(this,Dr.DEBUG_SHOW_BOUNDING_VOLUME)!==t&&(Kg(this,Dr.DEBUG_SHOW_BOUNDING_VOLUME,t),this.dirty=!0)}get debugOverlappingFrustums(){return this._debugOverlappingFrustums}set debugOverlappingFrustums(t){this._debugOverlappingFrustums!==t&&(this._debugOverlappingFrustums=t,this.dirty=!0)}get pickId(){return this._pickId}set pickId(t){this._pickId!==t&&(this._pickId=t,this.dirty=!0)}get pickMetadataAllowed(){return this._pickMetadataAllowed}get pickedMetadataInfo(){return this._pickedMetadataInfo}set pickedMetadataInfo(t){this._pickedMetadataInfo!==t&&(this._pickedMetadataInfo=t,this.dirty=!0)}get pickOnly(){return kc(this,Dr.PICK_ONLY)}set pickOnly(t){kc(this,Dr.PICK_ONLY)!==t&&(Kg(this,Dr.PICK_ONLY,t),this.dirty=!0)}get depthForTranslucentClassification(){return kc(this,Dr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)}set depthForTranslucentClassification(t){kc(this,Dr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==t&&(Kg(this,Dr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,t),this.dirty=!0)}static shallowClone(t,n){if(l(t))return l(n)||(n=new e),n._boundingVolume=t._boundingVolume,n._orientedBoundingBox=t._orientedBoundingBox,n._modelMatrix=t._modelMatrix,n._primitiveType=t._primitiveType,n._vertexArray=t._vertexArray,n._count=t._count,n._offset=t._offset,n._instanceCount=t._instanceCount,n._shaderProgram=t._shaderProgram,n._uniformMap=t._uniformMap,n._renderState=t._renderState,n._framebuffer=t._framebuffer,n._pass=t._pass,n._owner=t._owner,n._debugOverlappingFrustums=t._debugOverlappingFrustums,n._pickId=t._pickId,n._pickMetadataAllowed=t._pickMetadataAllowed,n._pickedMetadataInfo=t._pickedMetadataInfo,n._flags=t._flags,n.dirty=!0,n.lastDirtyTime=0,n}execute(t,n){t.draw(this,n)}};function kc(e,t){return(e._flags&t)===t}function Kg(e,t,n){n?e._flags|=t:e._flags&=~t}var at=dJ;var eQt=x(T(),1),sce={ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE_EDGES:4,CESIUM_3D_TILE:5,CESIUM_3D_TILE_CLASSIFICATION:6,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:7,OPAQUE:8,TRANSLUCENT:9,VOXELS:10,GAUSSIAN_SPLATS:11,CESIUM_3D_TILE_EDGES_DIRECT:12,OVERLAY:13,NUMBER_OF_PASSES:14};Object.freeze(sce);var Le=sce;var hQt=x(T(),1);var iQt=x(T(),1);var YG={CLOCKWISE:ne.CW,COUNTER_CLOCKWISE:ne.CCW};YG.validate=function(e){return e===YG.CLOCKWISE||e===YG.COUNTER_CLOCKWISE};Object.freeze(YG);var ks=YG;var rQt=x(T(),1);function ace(e){if(typeof e!="object"||e===null)return e;let t,n=Object.keys(e);for(let i=0;i0&&console.log(`${tp}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),l(c)&&c.length>0&&console.log(`${tp}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),l(c)&&c.length>0&&console.log(`${tp}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let d,u=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${tp}Shader program link log: ${c}`),m(o,"vertex"),m(r,"fragment"),d=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${tp}Vertex shader compile log: ${c}`),console.error(`${tp} Vertex shader source: +${n}`),d=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${tp}Fragment shader compile log: ${c}`),console.error(`${tp} Fragment shader source: +${i}`),d=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new ae(d);function m(p,b){if(!l(u))return;let f=u.getTranslatedShaderSource(p);if(f===""){console.error(`${tp}${b} shader translation failed.`);return}console.error(`${tp}Translated ${b} shaderSource: +${f}`)}}function LNe(e,t,n){let i={};for(let o=0;o=0){if(u=n[d.slice(0,f)],!l(u))continue;m=u._locations,m.length<=1&&(p=u.value,b=e.getUniformLocation(t,d),b!==null&&(m.push(b),p.push(e.getUniform(t,b))))}else{m=[];for(let y=0;y + * This uses standard position attributes, position3DHigh, + * position3DLow, position2DHigh, and position2DLow, + * and should be used when writing a vertex shader for an {@link Appearance}. + *

+ * + * @name czm_computePosition + * @glslFunction + * + * @returns {vec4} The position relative to eye. + * + * @example + * vec4 p = czm_computePosition(); + * v_positionEC = (czm_modelViewRelativeToEye * p).xyz; + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * + * @see czm_translateRelativeToEye + */ +vec4 czm_computePosition(); +`;var I6t=x(T(),1),oL=`/** + * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as + * the transmittance value for the ray. This function uses automatic uniforms + * so the atmosphere settings are always synced with the current scene. + * + * @name czm_computeScattering + * @glslfunction + * + * @param {czm_ray} primaryRay The ray from the camera to the position. + * @param {float} primaryRayLength The length of the primary ray. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + */ +void czm_computeScattering( + czm_ray primaryRay, + float primaryRayLength, + vec3 lightDirection, + float atmosphereInnerRadius, + out vec3 rayleighColor, + out vec3 mieColor, + out float opacity +) { + const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. + const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. + const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Initialize the default scattering amounts to 0. + rayleighColor = vec3(0.0); + mieColor = vec3(0.0); + opacity = 0.0; + + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + + vec3 origin = vec3(0.0); + + // Calculate intersection from the camera to the outer ring of the atmosphere. + czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); + + // Return empty colors if no intersection with the atmosphere geometry. + if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { + return; + } + + // To deal with smaller values of PRIMARY_STEPS (e.g. 4) + // we implement a split strategy: sky or horizon. + // For performance reasons, instead of a if/else branch + // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 + float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); + // Value close to 0.0: close to the horizon + // Value close to 1.0: above in the sky + float w_stop_gt_lprl = 0.5 * (1.0 + czm_approximateTanh(x)); + + // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. + float start_0 = primaryRayAtmosphereIntersect.start; + primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); + // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. + primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); + + // For the number of ray steps, distinguish inside or outside atmosphere (outer space) + // (1) from outer space we have to use more ray steps to get a realistic rendering + // (2) within atmosphere we need fewer steps for faster rendering + float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters + float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + czm_approximateTanh(x_o_a)); + int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. + int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. + float rayPositionLength = primaryRayAtmosphereIntersect.start; + // (1) Outside the atmosphere: constant rayStepLength + // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps + float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; + float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); + float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); + + vec3 rayleighAccumulation = vec3(0.0); + vec3 mieAccumulation = vec3(0.0); + vec2 opticalDepth = vec2(0.0); + vec2 heightScale = vec2(czm_atmosphereRayleighScaleHeight, czm_atmosphereMieScaleHeight); + + // Sample positions on the primary ray. + for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { + + // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((czm_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (czm_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = czm_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = czm_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((czm_atmosphereMieCoefficient * opticalDepth.y) + (czm_atmosphereRayleighCoefficient * opticalDepth.x)))); +} +`;var X6t=x(T(),1),rL=`/** + * Applies a 2D texture transformation matrix to texture coordinates. + * This function applies translation, rotation, and scaling transformations + * as specified by the KHR_texture_transform glTF extension. + * + * @name czm_computeTextureTransform + * @glslFunction + * + * @param {vec2} texCoord The texture coordinates to transform. + * @param {mat3} textureTransform The 3x3 transformation matrix. + * + * @returns {vec2} The transformed texture coordinates. + * + * @example + * // GLSL declaration + * vec2 czm_computeTextureTransform(vec2 texCoord, mat3 textureTransform); + * + * // Apply texture transform to UV coordinates + * vec2 transformedUV = czm_computeTextureTransform(uv, u_textureTransform); + */ +vec2 czm_computeTextureTransform(vec2 texCoord, mat3 textureTransform) +{ + return vec2(textureTransform * vec3(texCoord, 1.0)); +}`;var N6t=x(T(),1),sL=`/** + * @private + */ +vec2 cordic(float angle) +{ +// Scale the vector by the appropriate factor for the 24 iterations to follow. + vec2 vector = vec2(6.0725293500888267e-1, 0.0); +// Iteration 1 + float sense = (angle < 0.0) ? -1.0 : 1.0; + // float factor = sense * 1.0; // 2^-0 + mat2 rotation = mat2(1.0, sense, -sense, 1.0); + vector = rotation * vector; + angle -= sense * 7.8539816339744828e-1; // atan(2^-0) +// Iteration 2 + sense = (angle < 0.0) ? -1.0 : 1.0; + float factor = sense * 5.0e-1; // 2^-1 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.6364760900080609e-1; // atan(2^-1) +// Iteration 3 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.5e-1; // 2^-2 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4497866312686414e-1; // atan(2^-2) +// Iteration 4 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.25e-1; // 2^-3 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2435499454676144e-1; // atan(2^-3) +// Iteration 5 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.25e-2; // 2^-4 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.2418809995957350e-2; // atan(2^-4) +// Iteration 6 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.125e-2; // 2^-5 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.1239833430268277e-2; // atan(2^-5) +// Iteration 7 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.5625e-2; // 2^-6 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5623728620476831e-2; // atan(2^-6) +// Iteration 8 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.8125e-3; // 2^-7 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.8123410601011111e-3; // atan(2^-7) +// Iteration 9 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.90625e-3; // 2^-8 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.9062301319669718e-3; // atan(2^-8) +// Iteration 10 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.953125e-3; // 2^-9 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9531225164788188e-3; // atan(2^-9) +// Iteration 11 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.765625e-4; // 2^-10 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.7656218955931946e-4; // atan(2^-10) +// Iteration 12 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.8828125e-4; // 2^-11 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.8828121119489829e-4; // atan(2^-11) +// Iteration 13 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.44140625e-4; // 2^-12 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4414062014936177e-4; // atan(2^-12) +// Iteration 14 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.220703125e-4; // 2^-13 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2207031189367021e-4; // atan(2^-13) +// Iteration 15 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.103515625e-5; // 2^-14 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.1035156174208773e-5; // atan(2^-14) +// Iteration 16 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.0517578125e-5; // 2^-15 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.0517578115526096e-5; // atan(2^-15) +// Iteration 17 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.52587890625e-5; // 2^-16 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5258789061315762e-5; // atan(2^-16) +// Iteration 18 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.62939453125e-6; // 2^-17 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.6293945311019700e-6; // atan(2^-17) +// Iteration 19 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.814697265625e-6; // 2^-18 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.8146972656064961e-6; // atan(2^-18) +// Iteration 20 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.9073486328125e-6; // 2^-19 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9073486328101870e-6; // atan(2^-19) +// Iteration 21 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.5367431640625e-7; // 2^-20 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.5367431640596084e-7; // atan(2^-20) +// Iteration 22 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.76837158203125e-7; // 2^-21 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.7683715820308884e-7; // atan(2^-21) +// Iteration 23 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.384185791015625e-7; // 2^-22 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.3841857910155797e-7; // atan(2^-22) +// Iteration 24 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.1920928955078125e-7; // 2^-23 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; +// angle -= sense * 1.1920928955078068e-7; // atan(2^-23) + + return vector; +} + +/** + * Computes the cosine and sine of the provided angle using the CORDIC algorithm. + * + * @name czm_cosineAndSine + * @glslFunction + * + * @param {float} angle The angle in radians. + * + * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate). + * + * @example + * vec2 v = czm_cosineAndSine(czm_piOverSix); + * float cosine = v.x; + * float sine = v.y; + */ +vec2 czm_cosineAndSine(float angle) +{ + if (angle < -czm_piOverTwo || angle > czm_piOverTwo) + { + if (angle < 0.0) + { + return -cordic(angle + czm_pi); + } + else + { + return -cordic(angle - czm_pi); + } + } + else + { + return cordic(angle); + } +} +`;var M6t=x(T(),1),aL=`/** + * Decodes RGB values packed into a single float at 8-bit precision. Encoded + * representation is equivalent to 0xFFFFFF in JavaScript. + * + * @name czm_decodeRGB8 + * @glslFunction + * + * @param {float} encoded Float-encoded RGB values. + * @returns {vec4} Decoded RGB values. + */ +vec4 czm_decodeRGB8(float encoded) { + const float SHIFT_RIGHT16 = 1.0 / 65536.0; + const float SHIFT_RIGHT8 = 1.0 / 256.0; + const float SHIFT_LEFT16 = 65536.0; + const float SHIFT_LEFT8 = 256.0; + + vec4 color = vec4(255.0); + color.r = floor(encoded * SHIFT_RIGHT16); + color.g = floor((encoded - color.r * SHIFT_LEFT16) * SHIFT_RIGHT8); + color.b = floor(encoded - color.r * SHIFT_LEFT16 - color.g * SHIFT_LEFT8); + return color / 255.0; +} +`;var U6t=x(T(),1),cL=`/** + * Decompresses texture coordinates that were packed into a single float. + * + * @name czm_decompressTextureCoordinates + * @glslFunction + * + * @param {float} encoded The compressed texture coordinates. + * @returns {vec2} The decompressed texture coordinates. + */ + vec2 czm_decompressTextureCoordinates(float encoded) + { + float temp = encoded / 4096.0; + float xZeroTo4095 = floor(temp); + float stx = xZeroTo4095 / 4095.0; + float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0; + return vec2(stx, sty); + } +`;var O6t=x(T(),1),lL=`// emulated noperspective +#if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH) +out float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2. + * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes, + * capping the shadow volume. More information here: + * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt. + * + * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring + * no geometry gets clipped by setting the clip space z value to 0.0 and then + * sending the unaltered screen space z value (using emulated noperspective + * interpolation) to the frag shader where it is clamped to [0,1] and then + * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on: + * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv. + * + * When GL_EXT_frag_depth is not available, which is the case on some mobile + * devices, we must attempt to fix this only in the vertex shader. + * The approach is to clamp the z value to the far plane, which closes the + * shadow volume but also distorts the geometry, so there can still be artifacts + * on frustum seams. + * + * @name czm_depthClamp + * @glslFunction + * + * @param {vec4} coords The vertex in clip coordinates. + * @returns {vec4} The modified vertex. + * + * @example + * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0)); + * + * @see czm_writeDepthClamp + */ +vec4 czm_depthClamp(vec4 coords) +{ +#ifndef LOG_DEPTH +#if __VERSION__ == 300 || defined(GL_EXT_frag_depth) + v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w; + coords.z = 0.0; +#else + coords.z = min(coords.z, coords.w); +#endif +#endif + return coords; +} +`;var z6t=x(T(),1),dL=`/** + * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system + * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the + * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping. + *

+ * The ellipsoid is assumed to be centered at the model coordinate's origin. + * + * @name czm_eastNorthUpToEyeCoordinates + * @glslFunction + * + * @param {vec3} positionMC The position on the ellipsoid in model coordinates. + * @param {vec3} normalEC The normalized ellipsoid surface normal, at positionMC, in eye coordinates. + * + * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates. + * + * @example + * // Transform a vector defined in the east-north-up coordinate + * // system, (0, 0, 1) which is the surface normal, to eye + * // coordinates. + * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + * vec3 normalEC = m * vec3(0.0, 0.0, 1.0); + */ +mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC) +{ + vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates + vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordinates + vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates + + return mat3( + tangentEC.x, tangentEC.y, tangentEC.z, + bitangentEC.x, bitangentEC.y, bitangentEC.z, + normalEC.x, normalEC.y, normalEC.z); +} +`;var K6t=x(T(),1),uL=`/** + * DOC_TBA + * + * @name czm_ellipsoidContainsPoint + * @glslFunction + * + */ +bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point) +{ + vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz; + return (dot(scaled, scaled) <= 1.0); +} +`;var j6t=x(T(),1),mL=`/** + * Approximate uv coordinates based on the ellipsoid normal. + * + * @name czm_ellipsoidTextureCoordinates + * @glslFunction + */ +vec2 czm_ellipsoidTextureCoordinates(vec3 normal) +{ + return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5); +} +`;var q6t=x(T(),1),hL=`/** + * Compares left and right componentwise. Returns true + * if they are within epsilon and false otherwise. The inputs + * left and right can be floats, vec2s, + * vec3s, or vec4s. + * + * @name czm_equalsEpsilon + * @glslFunction + * + * @param {} left The first vector. + * @param {} right The second vector. + * @param {float} epsilon The epsilon to use for equality testing. + * @returns {bool} true if the components are within epsilon and false otherwise. + * + * @example + * // GLSL declarations + * bool czm_equalsEpsilon(float left, float right, float epsilon); + * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon); + * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon); + * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon); + */ +bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec4(epsilon))); +} + +bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec3(epsilon))); +} + +bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec2(epsilon))); +} + +bool czm_equalsEpsilon(float left, float right, float epsilon) { + return (abs(left - right) <= epsilon); +} +`;var eqt=x(T(),1),fL=`/** + * DOC_TBA + * + * @name czm_eyeOffset + * @glslFunction + * + * @param {vec4} positionEC DOC_TBA. + * @param {vec3} eyeOffset DOC_TBA. + * + * @returns {vec4} DOC_TBA. + */ +vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset) +{ + // This equation is approximate in x and y. + vec4 p = positionEC; + vec4 zEyeOffset = normalize(p) * eyeOffset.z; + p.xy += eyeOffset.xy + zEyeOffset.xy; + p.z += zEyeOffset.z; + return p; +} +`;var nqt=x(T(),1),pL=`/** + * Transforms a position from eye to window coordinates. The transformation + * from eye to clip coordinates is done using {@link czm_projection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of near = 0 and far = 1. + *

+ * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * + * @name czm_eyeToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in eye coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_projection + * @see czm_viewportTransformation + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + */ +vec4 czm_eyeToWindowCoordinates(vec4 positionEC) +{ + vec4 q = czm_projection * positionEC; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var oqt=x(T(),1),bL=`/** + * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input. + * + * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on + * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006. + * Adapted from ShaderFastLibs under MIT License. + * + * Chosen for the following characteristics over range [0, 1]: + * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan) + * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator) + * + * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301); + * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2. + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between 0 and 1 inclusive. + * + * @returns {float} Approximation of atan(x) + */ +float czm_fastApproximateAtan(float x) { + return x * (-0.1784 * x - 0.0663 * x * x + 1.0301); +} + +/** + * Approximation of atan2. + * + * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html + * However, we replaced their atan curve with Michael Drobot's (see above). + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between -1 and 1 inclusive. + * @param {float} y Value between -1 and 1 inclusive. + * + * @returns {float} Approximation of atan2(x, y) + */ +float czm_fastApproximateAtan(float x, float y) { + // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications. + // So range-reduce using abs and by flipping whether x or y is on top. + float t = abs(x); // t used as swap and atan result. + float opposite = abs(y); + float adjacent = max(t, opposite); + opposite = min(t, opposite); + + t = czm_fastApproximateAtan(opposite / adjacent); + + // Undo range reduction + t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t); + t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t); + t = czm_branchFreeTernary(y < 0.0, -t, t); + return t; +} +`;var sqt=x(T(),1),gL=`/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-(scalar * scalar)); + return mix(color, fogColor, fog); +} + +/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * @param {float} fogModifierConstant A constant to modify the appearance of fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant)))); + return mix(color, fogColor, fog); +} +`;var cqt=x(T(),1),yL=`/** + * Converts a color from RGB space to linear space. + * + * @name czm_gammaCorrect + * @glslFunction + * + * @param {vec3} color The color in RGB space. + * @returns {vec3} The color in linear space. + */ +vec3 czm_gammaCorrect(vec3 color) { +#ifdef HDR + color = pow(color, vec3(czm_gamma)); +#endif + return color; +} + +vec4 czm_gammaCorrect(vec4 color) { +#ifdef HDR + color.rgb = pow(color.rgb, vec3(czm_gamma)); +#endif + return color; +} +`;var dqt=x(T(),1),xL=`/** + * DOC_TBA + * + * @name czm_geodeticSurfaceNormal + * @glslFunction + * + * @param {vec3} positionOnEllipsoid DOC_TBA + * @param {vec3} ellipsoidCenter DOC_TBA + * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA + * + * @returns {vec3} DOC_TBA. + */ +vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared) +{ + return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared); +} +`;var mqt=x(T(),1),TL=`/** + * An czm_material with default values. Every material's czm_getMaterial + * should use this default material as a base for the material it returns. + * The default normal value is given by materialInput.normalEC. + * + * @name czm_getDefaultMaterial + * @glslFunction + * + * @param {czm_materialInput} input The input used to construct the default material. + * + * @returns {czm_material} The default material. + * + * @see czm_materialInput + * @see czm_material + * @see czm_getMaterial + */ +czm_material czm_getDefaultMaterial(czm_materialInput materialInput) +{ + czm_material material; + material.diffuse = vec3(0.0); + material.specular = 0.0; + material.shininess = 1.0; + material.normal = materialInput.normalEC; + material.emission = vec3(0.0); + material.alpha = 1.0; + return material; +} +`;var fqt=x(T(),1),_L=`/** + * Select which direction vector to use for dynamic atmosphere lighting based on an enum value + * + * @name czm_getDynamicAtmosphereLightDirection + * @glslfunction + * @see DynamicAtmosphereLightingType.js + * + * @param {vec3} positionWC the position of the vertex/fragment in world coordinates. This is normalized and returned when dynamic lighting is turned off. + * @param {float} lightEnum The enum value for selecting between light sources. + * @return {vec3} The normalized light direction vector. Depending on the enum value, it is either positionWC, czm_lightDirectionWC or czm_sunDirectionWC + */ +vec3 czm_getDynamicAtmosphereLightDirection(vec3 positionWC, float lightEnum) { + const float NONE = 0.0; + const float SCENE_LIGHT = 1.0; + const float SUNLIGHT = 2.0; + + vec3 lightDirection = + positionWC * float(lightEnum == NONE) + + czm_lightDirectionWC * float(lightEnum == SCENE_LIGHT) + + czm_sunDirectionWC * float(lightEnum == SUNLIGHT); + return normalize(lightDirection); +} +`;var bqt=x(T(),1),SL=`/** + * Calculates the intensity of diffusely reflected light. + * + * @name czm_getLambertDiffuse + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * + * @returns {float} The intensity of the diffuse reflection. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC) +{ + return max(dot(lightDirectionEC, normalEC), 0.0); +} +`;var yqt=x(T(),1),AL=`/** + * Calculates the specular intensity of reflected light. + * + * @name czm_getSpecular + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * + * @returns {float} The intensity of the specular highlight. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess) +{ + vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC); + float specular = max(dot(toReflectedLight, toEyeEC), 0.0); + + // pow has undefined behavior if both parameters <= 0. + // Prevent this by making sure shininess is at least czm_epsilon2. + return pow(specular, max(shininess, czm_epsilon2)); +} +`;var Tqt=x(T(),1),ZL=`/** + * @private + */ +vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians) +{ + float cosAngle = cos(angleInRadians); + float sinAngle = sin(angleInRadians); + + // time dependent sampling directions + vec2 s0 = vec2(1.0/17.0, 0.0); + vec2 s1 = vec2(-1.0/29.0, 0.0); + vec2 s2 = vec2(1.0/101.0, 1.0/59.0); + vec2 s3 = vec2(-1.0/109.0, -1.0/57.0); + + // rotate sampling direction by specified angle + s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y)); + s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y)); + s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y)); + s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y)); + + vec2 uv0 = (uv/103.0) + (time * s0); + vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23); + vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51); + vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71); + + uv0 = fract(uv0); + uv1 = fract(uv1); + uv2 = fract(uv2); + uv3 = fract(uv3); + vec4 noise = (texture(normalMap, uv0)) + + (texture(normalMap, uv1)) + + (texture(normalMap, uv2)) + + (texture(normalMap, uv3)); + + // average and scale to between -1 and 1 + return ((noise / 4.0) - 0.5) * 2.0; +} +`;var Sqt=x(T(),1),CL=`/** + * Adjusts the hue of a color. + * + * @name czm_hue + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the hue of the color in radians. + * + * @returns {float} The color with the hue adjusted. + * + * @example + * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi) + */ +vec3 czm_hue(vec3 rgb, float adjustment) +{ + const mat3 toYIQ = mat3(0.299, 0.587, 0.114, + 0.595716, -0.274453, -0.321263, + 0.211456, -0.522591, 0.311135); + const mat3 toRGB = mat3(1.0, 0.9563, 0.6210, + 1.0, -0.2721, -0.6474, + 1.0, -1.107, 1.7046); + + vec3 yiq = toYIQ * rgb; + float hue = atan(yiq.z, yiq.y) + adjustment; + float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y); + + vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue)); + return toRGB * color; +} +`;var Zqt=x(T(),1),RL=`/** + * Converts a color in linear space to RGB space. + * + * @name czm_inverseGamma + * @glslFunction + * + * @param {vec3} color The color in linear space. + * @returns {vec3} The color in RGB space. + */ +vec3 czm_inverseGamma(vec3 color) { + return pow(color, vec3(1.0 / czm_gamma)); +} +`;var Rqt=x(T(),1),VL=`/** + * Determines if a time interval is empty. + * + * @name czm_isEmpty + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} true if the time interval is empty; otherwise, false. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isEmpty(czm_raySegment interval) +{ + return (interval.stop < 0.0); +} +`;var Gqt=x(T(),1),GL=`/** + * Determines if a time interval is empty. + * + * @name czm_isFull + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} true if the time interval is empty; otherwise, false. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isFull(czm_raySegment interval) +{ + return (interval.start == 0.0 && interval.stop == czm_infinity); +} +`;var Lqt=x(T(),1),EL=`/** + * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located. + * + * @name czm_latitudeToWebMercatorFraction + * @glslFunction + * + * @param {float} latitude The geodetic latitude, in radians. + * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle. + * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates. + * + * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern + * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return + * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection. + */ +float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight) +{ + float sinLatitude = sin(latitude); + float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude)); + + return (mercatorY - southMercatorY) * oneOverMercatorHeight; +} +`;var vqt=x(T(),1),LL=`/** + * Computes distance from an point in 2D to a line in 2D. + * + * @name czm_lineDistance + * @glslFunction + * + * param {vec2} point1 A point along the line. + * param {vec2} point2 A point along the line. + * param {vec2} point A point that may or may not be on the line. + * returns {float} The distance from the point to the line. + */ +float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) { + return abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1); +} +`;var Iqt=x(T(),1),WL=`/** + * Converts a linear RGB color to an sRGB color. + * + * @param {vec3|vec4} linearIn The color in linear color space. + * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input. + */ +vec3 czm_linearToSrgb(vec3 linearIn) +{ + return pow(linearIn, vec3(1.0/2.2)); +} + +vec4 czm_linearToSrgb(vec4 linearIn) +{ + vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2)); + return vec4(srgbOut, linearIn.a); +} +`;var Xqt=x(T(),1),vL=`/** + * Computes the luminance of a color. + * + * @name czm_luminance + * @glslFunction + * + * @param {vec3} rgb The color. + * + * @returns {float} The luminance. + * + * @example + * float light = czm_luminance(vec3(0.0)); // 0.0 + * float dark = czm_luminance(vec3(1.0)); // ~1.0 + */ +float czm_luminance(vec3 rgb) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + return dot(rgb, W); +} +`;var Nqt=x(T(),1),FL=`/** + * Find the maximum component of a vector. + * + * @name czm_maximumComponent + * @glslFunction + * + * @param {vec2|vec3|vec4} v The input vector. + * @returns {float} The value of the largest component. + */ +float czm_maximumComponent(vec2 v) +{ + return max(v.x, v.y); +} +float czm_maximumComponent(vec3 v) +{ + return max(max(v.x, v.y), v.z); +} +float czm_maximumComponent(vec4 v) +{ + return max(max(max(v.x, v.y), v.z), v.w); +} +`;var Mqt=x(T(),1),IL=`/** + * Computes the size of a pixel in meters at a distance from the eye. + *

+ * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel. + *

+ * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * @param {float} pixelRatio The scaling factor from pixel space to coordinate space + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC, float pixelRatio) +{ + float width = czm_viewport.z; + float height = czm_viewport.w; + float pixelWidth; + float pixelHeight; + + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0) + { + float frustumWidth = right - left; + float frustumHeight = top - bottom; + pixelWidth = frustumWidth / width; + pixelHeight = frustumHeight / height; + } + else + { + float distanceToPixel = -positionEC.z; + float inverseNear = 1.0 / czm_currentFrustum.x; + float tanTheta = top * inverseNear; + pixelHeight = 2.0 * distanceToPixel * tanTheta / height; + tanTheta = right * inverseNear; + pixelWidth = 2.0 * distanceToPixel * tanTheta / width; + } + + return max(pixelWidth, pixelHeight) * pixelRatio; +} + +/** + * Computes the size of a pixel in meters at a distance from the eye. + *

+ * Use this version when scaling by pixel ratio. + *

+ * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC) +{ + return czm_metersPerPixel(positionEC, czm_pixelRatio); +} +`;var Uqt=x(T(),1),PL=`/** + * Transforms a position from model to window coordinates. The transformation + * from model to clip coordinates is done using {@link czm_modelViewProjection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of near = 0 and far = 1. + *

+ * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + *

+ * This function should not be confused with {@link czm_viewportOrthographic}, + * which is an orthographic projection matrix that transforms from window + * coordinates to clip coordinates. + * + * @name czm_modelToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in model coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_eyeToWindowCoordinates + * @see czm_modelViewProjection + * @see czm_viewportTransformation + * @see czm_viewportOrthographic + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_modelToWindowCoordinates(positionMC); + */ +vec4 czm_modelToWindowCoordinates(vec4 position) +{ + vec4 positionEC = czm_modelView * position; + vec4 q = czm_projection * positionEC; + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var Oqt=x(T(),1),XL=`/** + * DOC_TBA + * + * @name czm_multiplyWithColorBalance + * @glslFunction + */ +vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + + vec3 target = left * right; + float leftLuminance = dot(left, W); + float rightLuminance = dot(right, W); + float targetLuminance = dot(target, W); + + return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target; +} +`;var zqt=x(T(),1),YL=`/** + * Computes a value that scales with distance. The scaling is clamped at the near and + * far distances, and does not extrapolate. This function works with the + * {@link NearFarScalar} JavaScript class. + * + * @name czm_nearFarScalar + * @glslFunction + * + * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w). + * @param {float} cameraDistSq The square of the current distance from the camera. + * + * @returns {float} The value at this distance. + */ +float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq) +{ + float valueAtMin = nearFarScalar.y; + float valueAtMax = nearFarScalar.w; + float nearDistanceSq = nearFarScalar.x * nearFarScalar.x; + float farDistanceSq = nearFarScalar.z * nearFarScalar.z; + + float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq); + + t = pow(clamp(t, 0.0, 1.0), 0.2); + + return mix(valueAtMin, valueAtMax, t); +} +`;var Kqt=x(T(),1),NL=` /** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits. + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded, float range) + { + if (encoded.x == 0.0 && encoded.y == 0.0) { + return vec3(0.0, 0.0, 0.0); + } + + encoded = encoded / range * 2.0 - 1.0; + vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y)); + if (v.z < 0.0) + { + v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy); + } + + return normalize(v); + } + +/** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded) + { + return czm_octDecode(encoded, 255.0); + } + + /** + * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {float} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(float encoded) + { + float temp = encoded / 256.0; + float x = floor(temp); + float y = (temp - x) * 256.0; + return czm_octDecode(vec2(x, y)); + } + +/** + * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The packed oct-encoded, unit-length vectors. + * @param {vec3} vector1 One decoded and normalized vector. + * @param {vec3} vector2 One decoded and normalized vector. + * @param {vec3} vector3 One decoded and normalized vector. + */ + void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3) + { + float temp = encoded.x / 65536.0; + float x = floor(temp); + float encodedFloat1 = (temp - x) * 65536.0; + + temp = encoded.y / 65536.0; + float y = floor(temp); + float encodedFloat2 = (temp - y) * 65536.0; + + vector1 = czm_octDecode(encodedFloat1); + vector2 = czm_octDecode(encodedFloat2); + vector3 = czm_octDecode(vec2(x, y)); + } + +`;var jqt=x(T(),1),wL=`/** + * Packs a depth value into a vec4 that can be represented by unsigned bytes. + * + * @name czm_packDepth + * @glslFunction + * + * @param {float} depth The floating-point depth. + * @returns {vec4} The packed depth. + */ +vec4 czm_packDepth(float depth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth; + enc = fract(enc); + enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); + return enc; +} +`;var qqt=x(T(),1),ML=`vec3 lambertianDiffuse(vec3 diffuseColor) +{ + return diffuseColor / czm_pi; +} + +vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) +{ + float versine = 1.0 - VdotH; + // pow(versine, 5.0) is slow. See https://stackoverflow.com/a/68793086/10082269 + float versineSquared = versine * versine; + return f0 + (f90 - f0) * versineSquared * versineSquared * versine; +} + +#ifdef USE_ANISOTROPY +/** + * @param {float} bitangentRoughness Material roughness (along the anisotropy bitangent) + * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent) + * @param {vec3} lightDirection The direction from the fragment to the light source, transformed to tangent-bitangent-normal coordinates + * @param {vec3} viewDirection The direction from the fragment to the camera, transformed to tangent-bitangent-normal coordinates + */ +float smithVisibilityGGX_anisotropic(float bitangentRoughness, float tangentialRoughness, vec3 lightDirection, vec3 viewDirection) +{ + vec3 roughnessScale = vec3(tangentialRoughness, bitangentRoughness, 1.0); + float GGXV = lightDirection.z * length(roughnessScale * viewDirection); + float GGXL = viewDirection.z * length(roughnessScale * lightDirection); + float v = 0.5 / (GGXV + GGXL); + return clamp(v, 0.0, 1.0); +} + +/** + * @param {float} bitangentRoughness Material roughness (along the anisotropy bitangent) + * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent) + * @param {vec3} halfwayDirection The unit vector halfway between light and view directions, transformed to tangent-bitangent-normal coordinates + */ +float GGX_anisotropic(float bitangentRoughness, float tangentialRoughness, vec3 halfwayDirection) +{ + float roughnessSquared = bitangentRoughness * tangentialRoughness; + vec3 f = halfwayDirection * vec3(bitangentRoughness, tangentialRoughness, roughnessSquared); + float w2 = roughnessSquared / dot(f, f); + return roughnessSquared * w2 * w2 / czm_pi; +} +#endif + +/** + * Estimate the geometric self-shadowing of the microfacets in a surface, + * using the Smith Joint GGX visibility function. + * Note: Vis = G / (4 * NdotL * NdotV) + * see Eric Heitz. 2014. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs. Journal of Computer Graphics Techniques, 3 + * see Real-Time Rendering. Page 331 to 336. + * see https://google.github.io/filament/Filament.md.html#materialsystem/specularbrdf/geometricshadowing(specularg) + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source. + * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera. + */ +float smithVisibilityGGX(float alphaRoughness, float NdotL, float NdotV) +{ + float alphaRoughnessSq = alphaRoughness * alphaRoughness; + + float GGXV = NdotL * sqrt(NdotV * NdotV * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + float GGXL = NdotV * sqrt(NdotL * NdotL * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + + float GGX = GGXV + GGXL; + if (GGX > 0.0) + { + return 0.5 / GGX; + } + return 0.0; +} + +/** + * Estimate the fraction of the microfacets in a surface that are aligned with + * the halfway vector, which is aligned halfway between the directions from + * the fragment to the camera and from the fragment to the light source. + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotH The cosine of the angle between the surface normal and the halfway vector. + * @return {float} The fraction of microfacets aligned to the halfway vector. + */ +float GGX(float alphaRoughness, float NdotH) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float f = (NdotH * alphaRoughnessSquared - NdotH) * NdotH + 1.0; + return alphaRoughnessSquared / (czm_pi * f * f); +} + +/** + * Compute the strength of the specular reflection due to direct lighting. + * + * @param {vec3} normal The surface normal. + * @param {vec3} lightDirection The unit vector pointing from the fragment to the light source. + * @param {vec3} viewDirection The unit vector pointing from the fragment to the camera. + * @param {vec3} halfwayDirection The unit vector pointing from the fragment to halfway between the light source and the camera. + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @return {float} The strength of the specular reflection. + */ +float computeDirectSpecularStrength(vec3 normal, vec3 lightDirection, vec3 viewDirection, vec3 halfwayDirection, float alphaRoughness) +{ + float NdotL = clamp(dot(normal, lightDirection), 0.0, 1.0); + float NdotV = clamp(dot(normal, viewDirection), 0.0, 1.0); + float G = smithVisibilityGGX(alphaRoughness, NdotL, NdotV); + float NdotH = clamp(dot(normal, halfwayDirection), 0.0, 1.0); + float D = GGX(alphaRoughness, NdotH); + return G * D; +} + +/** + * Compute the diffuse and specular contributions using physically based + * rendering. This function only handles direct lighting. + *

+ * This function only handles the lighting calculations. Metallic/roughness + * and specular/glossy must be handled separately. See {@MaterialStageFS} + *

+ * + * @name czm_pbrLighting + * @glslFunction + * + * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position + * @param {vec3} normalEC The surface normal in eye coordinates + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {czm_modelMaterial} The material properties. + * @return {vec3} The computed HDR color + */ +vec3 czm_pbrLighting(vec3 viewDirectionEC, vec3 normalEC, vec3 lightDirectionEC, czm_modelMaterial material) +{ + vec3 halfwayDirectionEC = normalize(viewDirectionEC + lightDirectionEC); + float VdotH = clamp(dot(viewDirectionEC, halfwayDirectionEC), 0.0, 1.0); + float NdotL = clamp(dot(normalEC, lightDirectionEC), 0.001, 1.0); + + vec3 f0 = material.specular; + float reflectance = czm_maximumComponent(f0); + // Typical dielectrics will have reflectance 0.04, so f90 will be 1.0. + // In this case, at grazing angle, all incident energy is reflected. + vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); + vec3 F = fresnelSchlick2(f0, f90, VdotH); + + #if defined(USE_SPECULAR) + F *= material.specularWeight; + #endif + + float alphaRoughness = material.roughness * material.roughness; + #ifdef USE_ANISOTROPY + mat3 tbn = mat3(material.anisotropicT, material.anisotropicB, normalEC); + vec3 lightDirection = lightDirectionEC * tbn; + vec3 viewDirection = viewDirectionEC * tbn; + vec3 halfwayDirection = halfwayDirectionEC * tbn; + float anisotropyStrength = material.anisotropyStrength; + float tangentialRoughness = mix(alphaRoughness, 1.0, anisotropyStrength * anisotropyStrength); + float bitangentRoughness = clamp(alphaRoughness, 0.001, 1.0); + float G = smithVisibilityGGX_anisotropic(bitangentRoughness, tangentialRoughness, lightDirection, viewDirection); + float D = GGX_anisotropic(bitangentRoughness, tangentialRoughness, halfwayDirection); + vec3 specularContribution = F * G * D; + #else + float specularStrength = computeDirectSpecularStrength(normalEC, lightDirectionEC, viewDirectionEC, halfwayDirectionEC, alphaRoughness); + vec3 specularContribution = F * specularStrength; + #endif + + vec3 diffuseColor = material.diffuse; + // F here represents the specular contribution + vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor); + + // Lo = (diffuse + specular) * Li * NdotL + return (diffuseContribution + specularContribution) * NdotL; +} +`;var e$t=x(T(),1),kL=`// KhronosGroup https://github.com/KhronosGroup/ToneMapping/tree/main/PBR_Neutral + +// Input color is non-negative and resides in the Linear Rec. 709 color space. +// Output color is also Linear Rec. 709, but in the [0, 1] range. + +vec3 czm_pbrNeutralTonemapping(vec3 color) { + const float startCompression = 0.8 - 0.04; + const float desaturation = 0.15; + + float x = min(color.r, min(color.g, color.b)); + float offset = czm_branchFreeTernary(x < 0.08, x - 6.25 * x * x, 0.04); + color -= offset; + + float peak = max(color.r, max(color.g, color.b)); + if (peak < startCompression) return color; + + const float d = 1.0 - startCompression; + float newPeak = 1.0 - d * d / (peak + d - startCompression); + color *= newPeak / peak; + + float g = 1.0 - 1.0 / (desaturation * (peak - newPeak) + 1.0); + return mix(color, newPeak * vec3(1.0, 1.0, 1.0), g); +} +`;var n$t=x(T(),1),UL=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material) +{ + return czm_getLambertDiffuse(lightDirectionEC, material.normal); +} + +float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material) +{ + return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess); +} + +/** + * Computes a color using the Phong lighting model. + * + * @name czm_phong + * @glslFunction + * + * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates. + * @param {czm_material} material The fragment's material. + * + * @returns {vec4} The computed color. + * + * @example + * vec3 positionToEyeEC = // ... + * czm_material material = // ... + * vec3 lightDirectionEC = // ... + * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC); + * + * @see czm_getMaterial + */ +vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down) + float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material); + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material); + } + + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} + +vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material); + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + vec3 ambient = vec3(0.0); + vec3 color = ambient + material.emission; + color += material.diffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var o$t=x(T(),1),DL=`/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec4 plane, vec3 point) { + return (dot(plane.xyz, point) + plane.w); +} + +/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js + * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) { + return (dot(planeNormal, point) + planeDistance); +} +`;var s$t=x(T(),1),OL=`/** + * Computes the point along a ray at the given time. time can be positive, negative, or zero. + * + * @name czm_pointAlongRay + * @glslFunction + * + * @param {czm_ray} ray The ray to compute the point along. + * @param {float} time The time along the ray. + * + * @returns {vec3} The point along the ray at the given time. + * + * @example + * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction + * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0) + */ +vec3 czm_pointAlongRay(czm_ray ray, float time) +{ + return ray.origin + (time * ray.direction); +} +`;var c$t=x(T(),1),BL=`/** + * DOC_TBA + * + * @name czm_rayEllipsoidIntersectionInterval + * @glslFunction + */ +czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii) +{ + // ray and ellipsoid center in eye coordinates. radii in model coordinates. + vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz; + vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz; + + q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz; + + float q2 = dot(q, q); + float qw = dot(q, w); + + if (q2 > 1.0) // Outside ellipsoid. + { + if (qw >= 0.0) // Looking outward or tangent (0 intersections). + { + return czm_emptyRaySegment; + } + else // qw < 0.0. + { + float qw2 = qw * qw; + float difference = q2 - 1.0; // Positively valued. + float w2 = dot(w, w); + float product = w2 * difference; + + if (qw2 < product) // Imaginary roots (0 intersections). + { + return czm_emptyRaySegment; + } + else if (qw2 > product) // Distinct roots (2 intersections). + { + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Avoid cancellation. + float root0 = temp / w2; + float root1 = difference / temp; + if (root0 < root1) + { + czm_raySegment i = czm_raySegment(root0, root1); + return i; + } + else + { + czm_raySegment i = czm_raySegment(root1, root0); + return i; + } + } + else // qw2 == product. Repeated roots (2 intersections). + { + float root = sqrt(difference / w2); + czm_raySegment i = czm_raySegment(root, root); + return i; + } + } + } + else if (q2 < 1.0) // Inside ellipsoid (2 intersections). + { + float difference = q2 - 1.0; // Negatively valued. + float w2 = dot(w, w); + float product = w2 * difference; // Negatively valued. + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Positively valued. + czm_raySegment i = czm_raySegment(0.0, temp / w2); + return i; + } + else // q2 == 1.0. On ellipsoid. + { + if (qw < 0.0) // Looking inward. + { + float w2 = dot(w, w); + czm_raySegment i = czm_raySegment(0.0, -qw / w2); + return i; + } + else // qw >= 0.0. Looking outward or tangent. + { + return czm_emptyRaySegment; + } + } +} +`;var d$t=x(T(),1),zL=`/** + * Compute the intersection interval of a ray with a sphere. + * + * @name czm_raySphereIntersectionInterval + * @glslFunction + * + * @param {czm_ray} ray The ray. + * @param {vec3} center The center of the sphere. + * @param {float} radius The radius of the sphere. + * @return {czm_raySegment} The intersection interval of the ray with the sphere. + */ +czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius) +{ + vec3 o = ray.origin; + vec3 d = ray.direction; + + vec3 oc = o - center; + + float a = dot(d, d); + float b = 2.0 * dot(d, oc); + float c = dot(oc, oc) - (radius * radius); + + float det = (b * b) - (4.0 * a * c); + + if (det < 0.0) { + return czm_emptyRaySegment; + } + + float sqrtDet = sqrt(det); + + float t0 = (-b - sqrtDet) / (2.0 * a); + float t1 = (-b + sqrtDet) / (2.0 * a); + + czm_raySegment result = czm_raySegment(t0, t1); + return result; +} +`;var m$t=x(T(),1),HL=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords) +{ + return czm_reverseLogDepth(texture(depthTexture, texCoords).r); +} +`;var f$t=x(T(),1),KL=`/** + * Reads a value previously transformed with {@link czm_writeNonPerspective} + * by dividing it by \`w\`, the value used in the perspective divide. + * This function is intended to be called in a fragment shader to access a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The value should have been + * previously written in the vertex shader with a call to + * {@link czm_writeNonPerspective}. + * + * @name czm_readNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The non-perspective value to be read. + * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`. + * @returns {float|vec2|vec3|vec4} The usable value. + */ +float czm_readNonPerspective(float value, float oneOverW) { + return value * oneOverW; +} + +vec2 czm_readNonPerspective(vec2 value, float oneOverW) { + return value * oneOverW; +} + +vec3 czm_readNonPerspective(vec3 value, float oneOverW) { + return value * oneOverW; +} + +vec4 czm_readNonPerspective(vec4 value, float oneOverW) { + return value * oneOverW; +} +`;var b$t=x(T(),1),JL=`float czm_reverseLogDepth(float logZ) +{ +#ifdef LOG_DEPTH + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = exp2(log2Depth) - 1.0; + return far * (1.0 - near / (depthFromNear + near)) / (far - near); +#endif + return logZ; +} +`;var y$t=x(T(),1),jL=`/** + * Round a floating point value. This function exists because round() doesn't + * exist in GLSL 1.00. + * + * @param {float|vec2|vec3|vec4} value The value to round + * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input. + */ +float czm_round(float value) { + return floor(value + 0.5); +} + +vec2 czm_round(vec2 value) { + return floor(value + 0.5); +} + +vec3 czm_round(vec3 value) { + return floor(value + 0.5); +} + +vec4 czm_round(vec4 value) { + return floor(value + 0.5); +} +`;var T$t=x(T(),1),QL=`/** + * Adjusts the saturation of a color. + * + * @name czm_saturation + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the saturation of the color. + * + * @returns {float} The color with the saturation adjusted. + * + * @example + * vec3 greyScale = czm_saturation(color, 0.0); + * vec3 doubleSaturation = czm_saturation(color, 2.0); + */ +vec3 czm_saturation(vec3 rgb, float adjustment) +{ + // Algorithm from Chapter 16 of OpenGL Shading Language + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + vec3 intensity = vec3(dot(rgb, W)); + return mix(intensity, rgb, adjustment); +} +`;var S$t=x(T(),1),qL=` +float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d) +{ + return czm_unpackDepth(czm_textureCube(shadowMap, d)); +} + +float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv) +{ +#ifdef USE_SHADOW_DEPTH_TEXTURE + return texture(shadowMap, uv).r; +#else + return czm_unpackDepth(texture(shadowMap, uv)); +#endif +} + +float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} + +float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} +`;var Z$t=x(T(),1),$L=` +float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness) +{ +#ifdef USE_NORMAL_SHADING +#ifdef USE_NORMAL_SHADING_SMOOTH + float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0); +#else + float strength = step(0.0, nDotL); +#endif + visibility *= strength; +#endif + + visibility = max(visibility, darkness); + return visibility; +} + +#ifdef USE_CUBE_MAP_SHADOW +float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec3 uvw = shadowParameters.texCoords; + + depth -= depthBias; + float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth); + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#else +float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec2 uv = shadowParameters.texCoords; + + depth -= depthBias; +#ifdef USE_SOFT_SHADOWS + vec2 texelStepSize = shadowParameters.texelStepSize; + float radius = 1.0; + float dx0 = -texelStepSize.x * radius; + float dy0 = -texelStepSize.y * radius; + float dx1 = texelStepSize.x * radius; + float dy1 = texelStepSize.y * radius; + float visibility = ( + czm_shadowDepthCompare(shadowMap, uv, depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth) + ) * (1.0 / 9.0); +#else + float visibility = czm_shadowDepthCompare(shadowMap, uv, depth); +#endif + + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#endif +`;var R$t=x(T(),1),eW=`/** + * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL + * built-in function sign except that returns 1.0 instead of 0.0 when the input value is 0.0. + * + * @name czm_signNotZero + * @glslFunction + * + * @param {} value The value for which to determine the sign. + * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative. + */ +float czm_signNotZero(float value) +{ + return value >= 0.0 ? 1.0 : -1.0; +} + +vec2 czm_signNotZero(vec2 value) +{ + return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y)); +} + +vec3 czm_signNotZero(vec3 value) +{ + return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z)); +} + +vec4 czm_signNotZero(vec4 value) +{ + return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w)); +} +`;var G$t=x(T(),1),tW=`/** + * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector. + *

+ * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22]. + *

+ * + * @name czm_sphericalHarmonics + * @glslFunction + * + * @param {vec3} normal The normalized direction. + * @param {vec3[9]} coefficients The third order spherical harmonic coefficients. + * @returns {vec3} The color at the direction. + * + * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf + */ +vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9]) +{ + vec3 L00 = coefficients[0]; + vec3 L1_1 = coefficients[1]; + vec3 L10 = coefficients[2]; + vec3 L11 = coefficients[3]; + vec3 L2_2 = coefficients[4]; + vec3 L2_1 = coefficients[5]; + vec3 L20 = coefficients[6]; + vec3 L21 = coefficients[7]; + vec3 L22 = coefficients[8]; + + float x = normal.x; + float y = normal.y; + float z = normal.z; + + vec3 L = + L00 + + L1_1 * y + + L10 * z + + L11 * x + + L2_2 * (y * x) + + L2_1 * (y * z) + + L20 * (3.0 * z * z - 1.0) + + L21 * (z * x) + + L22 * (x * x - y * y); + + return max(L, vec3(0.0)); +} +`;var L$t=x(T(),1),nW=`/** + * Converts an sRGB color to a linear RGB color. + * + * @param {vec3|vec4} srgbIn The color in sRGB space + * @returns {vec3|vec4} The color in linear color space. The vector type matches the input. + */ +vec3 czm_srgbToLinear(vec3 srgbIn) +{ + return pow(srgbIn, vec3(2.2)); +} + +vec4 czm_srgbToLinear(vec4 srgbIn) +{ + vec3 linearOut = pow(srgbIn.rgb, vec3(2.2)); + return vec4(linearOut, srgbIn.a); +} +`;var v$t=x(T(),1),iW=`/** + * Creates a matrix that transforms vectors from tangent space to eye space. + * + * @name czm_tangentToEyeSpaceMatrix + * @glslFunction + * + * @param {vec3} normalEC The normal vector in eye coordinates. + * @param {vec3} tangentEC The tangent vector in eye coordinates. + * @param {vec3} bitangentEC The bitangent vector in eye coordinates. + * + * @returns {mat3} The matrix that transforms from tangent space to eye space. + * + * @example + * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC); + * vec3 normal = tangentToEye * texture(normalMap, st).xyz; + */ +mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC) +{ + vec3 normal = normalize(normalEC); + vec3 tangent = normalize(tangentEC); + vec3 bitangent = normalize(bitangentEC); + return mat3(tangent.x , tangent.y , tangent.z, + bitangent.x, bitangent.y, bitangent.z, + normal.x , normal.y , normal.z); +} +`;var I$t=x(T(),1),oW=`/** + * A wrapper around the texture (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support. + * + * @name czm_textureCube + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinate at which to sample the texture. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p) { +#if __VERSION__ == 300 + return texture(sampler, p); +#else + return textureCube(sampler, p); +#endif +} + +/** + * A wrapper around the textureLod (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support in fragment shaders. + * + * @name czm_textureCubeLod + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinate at which to sample the texture. + * @param {float} lod The mipmap level from which to sample. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p, float lod) { +#if __VERSION__ == 300 + return textureLod(sampler, p, lod); +#elif defined(GL_EXT_shader_texture_lod) + return textureCubeLodEXT(sampler, p, lod); +#endif +}`;var X$t=x(T(),1),rW=`/** + * Transforms a plane. + * + * @name czm_transformPlane + * @glslFunction + * + * @param {vec4} plane The plane in Hessian Normal Form. + * @param {mat4} transform The inverse-transpose of a transformation matrix. + */ +vec4 czm_transformPlane(vec4 plane, mat4 transform) { + vec4 transformedPlane = transform * plane; + // Convert the transformed plane to Hessian Normal Form + float normalMagnitude = length(transformedPlane.xyz); + return transformedPlane / normalMagnitude; +} +`;var N$t=x(T(),1),sW=`/** + * Translates a position (or any vec3) that was encoded with {@link EncodedCartesian3}, + * and then provided to the shader as separate high and low bits to + * be relative to the eye. As shown in the example, the position can then be transformed in eye + * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye}, + * respectively. + *

+ * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as + * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}. + *

+ * + * @name czm_translateRelativeToEye + * @glslFunction + * + * @param {vec3} high The position's high bits. + * @param {vec3} low The position's low bits. + * @returns {vec3} The position translated to be relative to the camera's position. + * + * @example + * in vec3 positionHigh; + * in vec3 positionLow; + * + * void main() + * { + * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * } + * + * @see czm_modelViewRelativeToEye + * @see czm_modelViewProjectionRelativeToEye + * @see czm_computePosition + * @see EncodedCartesian3 + */ +vec4 czm_translateRelativeToEye(vec3 high, vec3 low) +{ + vec3 highDifference = high - czm_encodedCameraPositionMCHigh; + // This check handles the case when NaN values have gotten into \`highDifference\`. + // Such a thing could happen on devices running iOS. + if (length(highDifference) == 0.0) { + highDifference = vec3(0); + } + vec3 lowDifference = low - czm_encodedCameraPositionMCLow; + + return vec4(highDifference + lowDifference, 1.0); +} +`;var M$t=x(T(),1),aW=`/** + * @private + */ +vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down and horizon views) + float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal); + + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal); + } + + diffuse = clamp(diffuse, 0.0, 1.0); + + float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var U$t=x(T(),1),cW=`/** + * Returns the transpose of the matrix. The input matrix can be + * a mat2, mat3, or mat4. + * + * @name czm_transpose + * @glslFunction + * + * @param {} matrix The matrix to transpose. + * + * @returns {} The transposed matrix. + * + * @example + * // GLSL declarations + * mat2 czm_transpose(mat2 matrix); + * mat3 czm_transpose(mat3 matrix); + * mat4 czm_transpose(mat4 matrix); + * + * // Transpose a 3x3 rotation matrix to find its inverse. + * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates( + * positionMC, normalEC); + * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye); + */ +mat2 czm_transpose(mat2 matrix) +{ + return mat2( + matrix[0][0], matrix[1][0], + matrix[0][1], matrix[1][1]); +} + +mat3 czm_transpose(mat3 matrix) +{ + return mat3( + matrix[0][0], matrix[1][0], matrix[2][0], + matrix[0][1], matrix[1][1], matrix[2][1], + matrix[0][2], matrix[1][2], matrix[2][2]); +} + +mat4 czm_transpose(mat4 matrix) +{ + return mat4( + matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0], + matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1], + matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2], + matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]); +} +`;var O$t=x(T(),1),lW=`vec2 getLookupUv(vec2 dimensions, int i) { + int pixY = i / int(dimensions.x); + int pixX = i - (pixY * int(dimensions.x)); + float pixelWidth = 1.0 / dimensions.x; + float pixelHeight = 1.0 / dimensions.y; + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + return vec2(u, v); +} + +vec4 czm_unpackClippingExtents(highp sampler2D extentsTexture, int index) { + vec2 textureDimensions = vec2(textureSize(extentsTexture, 0)); + return texture(extentsTexture, getLookupUv(textureDimensions, index)); +}`;var z$t=x(T(),1),dW=`/** + * Unpacks a vec4 depth value to a float in [0, 1) range. + * + * @name czm_unpackDepth + * @glslFunction + * + * @param {vec4} packedDepth The packed depth. + * + * @returns {float} The floating-point depth in [0, 1) range. + */ +float czm_unpackDepth(vec4 packedDepth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)); +} +`;var K$t=x(T(),1),uW=`/** + * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4. + * + * @name czm_unpackFloat + * @glslFunction + * + * @param {vec4} packedFloat The packed float. + * + * @returns {float} The floating-point depth in arbitrary range. + */ +float czm_unpackFloat(vec4 packedFloat) +{ + // Convert to [0.0, 255.0] and round to integer + packedFloat = floor(packedFloat * 255.0 + 0.5); + float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0; + float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0; + if (exponent == -127.0) + { + return 0.0; + } + float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000); + float result = sign * exp2(exponent - 23.0) * mantissa; + return result; +} +`;var j$t=x(T(),1),mW=`/** + * Useful for reinterpreting texture data as higher-precision values. + * Only works correctly in WebGL 2, which supports the uint type and bitwise operations. + * + * @param {float|vec2|vec3|vec4} 1-4 values from a texture lookup (RGBA channels), normalized to [0.0, 1.0]. + * @return {uint} Raw bits as an unsigned integer. +*/ +uint czm_unpackTexture(float packedValue) { + float rounded = czm_round(packedValue * 255.0); + return uint(rounded); +} + +uint czm_unpackTexture(vec2 packedValue) { + vec2 rounded = czm_round(packedValue * 255.0); + uint byte0 = uint(rounded.x); + uint byte1 = uint(rounded.y); + return byte0 | (byte1 << 8); +} + +uint czm_unpackTexture(vec3 packedValue) { + vec3 rounded = czm_round(packedValue * 255.0); + uint byte0 = uint(rounded.x); + uint byte1 = uint(rounded.y); + uint byte2 = uint(rounded.z); + return byte0 | (byte1 << 8) | (byte2 << 16); +} + +uint czm_unpackTexture(vec4 packedValue) { + vec4 rounded = czm_round(packedValue * 255.0); + uint byte0 = uint(rounded.x); + uint byte1 = uint(rounded.y); + uint byte2 = uint(rounded.z); + uint byte3 = uint(rounded.w); + return byte0 | (byte1 << 8) | (byte2 << 16) | (byte3 << 24); +} +`;var q$t=x(T(),1),hW=`/** + * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type, + * so the return value is an int. + *

+ * There are also precision limitations in WebGL 1. highp int is still limited + * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur. + *

+ * + * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order. + * + * @return {int} The unpacked value. + */ + int czm_unpackUint(float packedValue) { + float rounded = czm_round(packedValue * 255.0); + return int(rounded); + } + + int czm_unpackUint(vec2 packedValue) { + vec2 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec2(1.0, 256.0))); + } + + int czm_unpackUint(vec3 packedValue) { + vec3 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec3(1.0, 256.0, 65536.0))); + } + + int czm_unpackUint(vec4 packedValue) { + vec4 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0))); + } +`;var een=x(T(),1),fW=`/** + * Transform metadata values following the EXT_structural_metadata spec + * by multiplying by scale and adding the offset. Operations are always + * performed component-wise, even for matrices. + * + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value. + * + * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input. + */ +float czm_valueTransform(float offset, float scale, float value) { + return scale * value + offset; +} + +vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) { + return scale * value + offset; +} + +vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) { + return scale * value + offset; +} + +vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) { + return scale * value + offset; +} + +mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) { + return matrixCompMult(scale, value) + offset; +} + +mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) { + return matrixCompMult(scale, value) + offset; +} + +mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) { + return matrixCompMult(scale, value) + offset; +} +`;var nen=x(T(),1),pW=`#ifdef LOG_DEPTH +// 1.0 at the near plane, increasing linearly from there. +out float v_depthFromNearPlusOne; +#ifdef SHADOW_MAP +out vec3 v_logPositionEC; +#endif +#endif + +vec4 czm_updatePositionDepth(vec4 coords) { +#if defined(LOG_DEPTH) + +#ifdef SHADOW_MAP + vec3 logPositionEC = (czm_inverseProjection * coords).xyz; + v_logPositionEC = logPositionEC; +#endif + + // With the very high far/near ratios used with the logarithmic depth + // buffer, floating point rounding errors can cause linear depth values + // to end up on the wrong side of the far plane, even for vertices that + // are really nowhere near it. Since we always write a correct logarithmic + // depth value in the fragment shader anyway, we just need to make sure + // such errors don't cause the primitive to be clipped entirely before + // we even get to the fragment shader. + coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w; +#endif + + return coords; +} + +/** + * Writes the logarithmic depth to gl_Position using the already computed gl_Position. + * + * @name czm_vertexLogDepth + * @glslFunction + */ +void czm_vertexLogDepth() +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0; + gl_Position = czm_updatePositionDepth(gl_Position); +#endif +} + +/** + * Writes the logarithmic depth to gl_Position using the provided clip coordinates. + *

+ * An example use case for this function would be moving the vertex in window coordinates + * before converting back to clip coordinates. Use the original vertex clip coordinates. + *

+ * @name czm_vertexLogDepth + * @glslFunction + * + * @param {vec4} clipCoords The vertex in clip coordinates. + * + * @example + * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0)); + */ +void czm_vertexLogDepth(vec4 clipCoords) +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0; + czm_updatePositionDepth(clipCoords); +#endif +} +`;var oen=x(T(),1),bW=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate) +{ + // Reconstruct NDC coordinates + float x = 2.0 * screenCoordinate.x - 1.0; + float y = 2.0 * screenCoordinate.y - 1.0; + float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + vec4 q = vec4(x, y, z, 1.0); + + // Reverse the perspective division to obtain clip coordinates. + q /= screenCoordinate.w; + + // Reverse the projection transformation to obtain eye coordinates. + if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s + { + q = czm_inverseProjection * q; + } + else + { + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + + q.x = (q.x * (right - left) + left + right) * 0.5; + q.y = (q.y * (top - bottom) + bottom + top) * 0.5; + q.z = (q.z * (near - far) - near - far) * 0.5; + q.w = 1.0; + } + + return q; +} + +/** + * Transforms a position from window to eye coordinates. + * The transform from window to normalized device coordinates is done using components + * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating + * the inverse of czm_viewportTransformation. The transformation from + * normalized device coordinates to clip coordinates is done using fragmentCoordinate.w, + * which is expected to be the scalar used in the perspective divide. The transformation + * from clip to eye coordinates is done using {@link czm_inverseProjection}. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec4} fragmentCoordinate The position in window coordinates to transform. + * + * @returns {vec4} The transformed position in eye coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @example + * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord); + */ +vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate) +{ + vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw)); +} + +vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth) +{ + // See reverseLogDepth.glsl. This is separate to re-use the pow. +#if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY) + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = exp2(log2Depth) - 1.0; + float depthFromCamera = depthFromNear + near; + vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); + eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision +#else + vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); +#endif + return eyeCoordinate; +} + +/** + * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates. + * This function produces more accurate results for window positions with log depth than + * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version + * of czm_windowToEyeCoordinates. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform. + * @param {float} depthOrLogDepth A depth or log depth for the fragment. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @returns {vec4} The transformed position in eye coordinates. + */ +vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth) +{ + vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth); +} +`;var sen=x(T(),1),gW=`// emulated noperspective +#if !defined(LOG_DEPTH) +in float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane + * by writing the fragment's depth. See czm_depthClamp for more details. + * + * @name czm_writeDepthClamp + * @glslFunction + * + * @example + * out_FragColor = color; + * czm_writeDepthClamp(); + * + * @see czm_depthClamp + */ +void czm_writeDepthClamp() +{ +#if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0); +#endif +} +`;var cen=x(T(),1),yW=`#ifdef LOG_DEPTH +in float v_depthFromNearPlusOne; + +#ifdef POLYGON_OFFSET +uniform vec2 u_polygonOffset; +#endif + +#endif + +/** + * Writes the fragment depth to the logarithmic depth buffer. + *

+ * Use this when the vertex shader does not call {@link czm_vertexLogDepth}, for example, when + * ray-casting geometry using a full screen quad. + *

+ * @name czm_writeLogDepth + * @glslFunction + * + * @param {float} depth The depth coordinate, where 1.0 is on the near plane and + * depth increases in eye-space units from there + * + * @example + * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0); + */ +void czm_writeLogDepth(float depth) +{ +#if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + // Discard the vertex if it's not between the near and far planes. + // We allow a bit of epsilon on the near plane comparison because a 1.0 + // from the vertex shader (indicating the vertex should be _on_ the near + // plane) will not necessarily come here as exactly 1.0. + if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) { + discard; + } + +#ifdef POLYGON_OFFSET + // Polygon offset: m * factor + r * units + float factor = u_polygonOffset[0]; + float units = u_polygonOffset[1]; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + // This factor doesn't work in IE 10 + if (factor != 0.0) { + // m = sqrt(dZdX^2 + dZdY^2); + float x = dFdx(depth); + float y = dFdy(depth); + float m = sqrt(x * x + y * y); + + // Apply the factor before computing the log depth. + depth += m * factor; + } +#endif + +#endif + + gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne; + +#ifdef POLYGON_OFFSET + // Apply the units after the log depth. + gl_FragDepth += czm_epsilon7 * units; +#endif + +#endif +} + +/** + * Writes the fragment depth to the logarithmic depth buffer. + *

+ * Use this when the vertex shader calls {@link czm_vertexLogDepth}. + *

+ * + * @name czm_writeLogDepth + * @glslFunction + */ +void czm_writeLogDepth() { +#ifdef LOG_DEPTH + czm_writeLogDepth(v_depthFromNearPlusOne); +#endif +} +`;var den=x(T(),1),xW=`/** + * Transforms a value for non-perspective interpolation by multiplying + * it by w, the value used in the perspective divide. This function is + * intended to be called in a vertex shader to compute the value of a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The fragment shader + * must call {@link czm_readNonPerspective} to retrieve the final + * non-perspective value. + * + * @name czm_writeNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective. + * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`. + * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the + * fragment shader with {@link czm_readNonPerspective}. + */ +float czm_writeNonPerspective(float value, float w) { + return value * w; +} + +vec2 czm_writeNonPerspective(vec2 value, float w) { + return value * w; +} + +vec3 czm_writeNonPerspective(vec3 value, float w) { + return value * w; +} + +vec4 czm_writeNonPerspective(vec4 value, float w) { + return value * w; +} +`;var AT={czm_degreesPerRadian:MG,czm_depthRange:kG,czm_epsilon1:UG,czm_epsilon2:DG,czm_epsilon3:OG,czm_epsilon4:BG,czm_epsilon5:zG,czm_epsilon6:HG,czm_epsilon7:KG,czm_infinity:JG,czm_oneOverPi:jG,czm_oneOverTwoPi:QG,czm_passCesium3DTile:qG,czm_passCesium3DTileClassification:$G,czm_passCesium3DTileClassificationIgnoreShow:eE,czm_passCesium3DTileEdges:tE,czm_passCesium3DTileEdgesDirect:nE,czm_passClassification:iE,czm_passCompute:oE,czm_passEnvironment:rE,czm_passGaussianSplats:sE,czm_passGlobe:aE,czm_passOpaque:cE,czm_passOverlay:lE,czm_passTerrainClassification:dE,czm_passTranslucent:uE,czm_passVoxels:mE,czm_pi:hE,czm_piOverFour:fE,czm_piOverSix:pE,czm_piOverThree:bE,czm_piOverTwo:gE,czm_radiansPerDegree:yE,czm_sceneMode2D:xE,czm_sceneMode3D:TE,czm_sceneModeColumbusView:_E,czm_sceneModeMorphing:SE,czm_solarRadius:AE,czm_threePiOver2:ZE,czm_twoPi:CE,czm_webMercatorMaxLatitude:RE,czm_depthRangeStruct:VE,czm_material:GE,czm_materialInput:EE,czm_modelMaterial:LE,czm_modelVertexOutput:WE,czm_ray:vE,czm_raySegment:FE,czm_shadowParameters:IE,czm_HSBToRGB:PE,czm_HSLToRGB:XE,czm_RGBToHSB:YE,czm_RGBToHSL:NE,czm_RGBToXYZ:wE,czm_XYZToRGB:ME,czm_acesTonemapping:kE,czm_alphaWeight:UE,czm_antialias:DE,czm_applyHSBShift:OE,czm_approximateSphericalCoordinates:BE,czm_approximateTanh:zE,czm_backFacing:HE,czm_branchFreeTernary:KE,czm_cascadeColor:JE,czm_cascadeDistance:jE,czm_cascadeMatrix:QE,czm_cascadeWeights:qE,czm_clipPolygons:$E,czm_columbusViewMorph:eL,czm_computeAtmosphereColor:tL,czm_computeGroundAtmosphereScattering:nL,czm_computePosition:iL,czm_computeScattering:oL,czm_computeTextureTransform:rL,czm_cosineAndSine:sL,czm_decodeRGB8:aL,czm_decompressTextureCoordinates:cL,czm_depthClamp:lL,czm_eastNorthUpToEyeCoordinates:dL,czm_ellipsoidContainsPoint:uL,czm_ellipsoidTextureCoordinates:mL,czm_equalsEpsilon:hL,czm_eyeOffset:fL,czm_eyeToWindowCoordinates:pL,czm_fastApproximateAtan:bL,czm_fog:gL,czm_gammaCorrect:yL,czm_geodeticSurfaceNormal:xL,czm_getDefaultMaterial:TL,czm_getDynamicAtmosphereLightDirection:_L,czm_getLambertDiffuse:SL,czm_getSpecular:AL,czm_getWaterNoise:ZL,czm_hue:CL,czm_inverseGamma:RL,czm_isEmpty:VL,czm_isFull:GL,czm_latitudeToWebMercatorFraction:EL,czm_lineDistance:LL,czm_linearToSrgb:WL,czm_luminance:vL,czm_maximumComponent:FL,czm_metersPerPixel:IL,czm_modelToWindowCoordinates:PL,czm_multiplyWithColorBalance:XL,czm_nearFarScalar:YL,czm_octDecode:NL,czm_packDepth:wL,czm_pbrLighting:ML,czm_pbrNeutralTonemapping:kL,czm_phong:UL,czm_planeDistance:DL,czm_pointAlongRay:OL,czm_rayEllipsoidIntersectionInterval:BL,czm_raySphereIntersectionInterval:zL,czm_readDepth:HL,czm_readNonPerspective:KL,czm_reverseLogDepth:JL,czm_round:jL,czm_saturation:QL,czm_shadowDepthCompare:qL,czm_shadowVisibility:$L,czm_signNotZero:eW,czm_sphericalHarmonics:tW,czm_srgbToLinear:nW,czm_tangentToEyeSpaceMatrix:iW,czm_textureCube:oW,czm_transformPlane:rW,czm_translateRelativeToEye:sW,czm_translucentPhong:aW,czm_transpose:cW,czm_unpackClippingExtents:lW,czm_unpackDepth:dW,czm_unpackFloat:uW,czm_unpackTexture:mW,czm_unpackUint:hW,czm_valueTransform:fW,czm_vertexLogDepth:pW,czm_windowToEyeCoordinates:bW,czm_writeDepthClamp:gW,czm_writeLogDepth:yW,czm_writeNonPerspective:xW};var Knn=x(T(),1);function INe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/\n\s*(in)\s+(vec\d|mat\d|float)/g,` +varying $2`),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable +${n}`,n=n.replaceAll(/layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,""),n=n.replaceAll(/out_FragData_(\d+)/g,"gl_FragData[$1]")),n=n.replaceAll(/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,""),n=n.replaceAll(/out_FragColor/g,"gl_FragColor"),n=n.replaceAll(/out_FragColor\[(\d+)\]/g,"gl_FragColor[$1]"),/gl_FragDepth/.test(n)&&(n=`#extension GL_EXT_frag_depth : enable +${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT")),n=`#ifdef GL_EXT_shader_texture_lod +#extension GL_EXT_shader_texture_lod : enable +#endif +${n}`,n=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif +${n}`):(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"attribute $2"),n=n.replaceAll(/(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,"varying $2 $3;")),n=`#version 100 +${n}`,n}var TW=INe;function Zce(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(t){let n=t.match(/\n/gm).length,i="";for(let o=0;o0;){let o=e.pop();n.push(o),o.requiredBy.length===0&&t.push(o)}for(;t.length>0;){let o=t.shift();e.push(o);for(let r=0;r=0;--o)i=`${i+t[o].glslSource} +`;return i.replace(n.glslSource,"")}function Vce(e,t,n){let i="",o=e.sources;if(l(o))for(let b=0;b planes2D_high.w): + // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts) + // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w) + // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow) + vec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w)); + bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0; + planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w); + planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w); + + // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0) + // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x) + // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow) + idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0; + idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x)); + planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x); + planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x); + + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz; + vec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz; + vec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz; +#else // COLUMBUS_VIEW_2D + // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz; + vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner; + vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner; +#endif // COLUMBUS_VIEW_2D + + vec3 eastWard = southEastCorner - southWestCorner; + float eastExtent = length(eastWard); + eastWard /= eastExtent; + + vec3 northWard = northWestCorner - southWestCorner; + float northExtent = length(northWard); + northWard /= northExtent; + + v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner)); + v_southPlane = vec4(northWard, -dot(northWard, southWestCorner)); + v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent); +#endif // SPHERICAL + vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId); + vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId); + + v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z); + v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w); + v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif + + gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position); +} +`;var rin=x(T(),1),Jg=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +void main(void) +{ +#ifdef VECTOR_TILE + out_FragColor = czm_gammaCorrect(u_highlightColor); +#else + out_FragColor = vec4(1.0); +#endif + czm_writeDepthClamp(); +} +`;var ain=x(T(),1),PJ={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};PJ.NUMBER_OF_CLASSIFICATION_TYPES=3;Object.freeze(PJ);var Kn=PJ;var din=x(T(),1);var Lce={NEVER:ne.NEVER,LESS:ne.LESS,EQUAL:ne.EQUAL,LESS_OR_EQUAL:ne.LEQUAL,GREATER:ne.GREATER,NOT_EQUAL:ne.NOTEQUAL,GREATER_OR_EQUAL:ne.GEQUAL,ALWAYS:ne.ALWAYS};Object.freeze(Lce);var Ha=Lce;var kon=x(T(),1);var min=x(T(),1);function MNe(e,t){let n=[],i=e.length,o=0;for(;oe.MaximumLatitude?t=e.MaximumLatitude:t<-e.MaximumLatitude&&(t=-e.MaximumLatitude);let n=Math.sin(t);return .5*Math.log((1+n)/(1-n))}project(t,n){let i=this._semimajorAxis,o=t.longitude*i,r=e.geodeticLatitudeToMercatorAngle(t.latitude)*i,s=t.height;return l(n)?(n.x=o,n.y=r,n.z=s,n):new h(o,r,s)}unproject(t,n){let i=this._oneOverSemimajorAxis,o=t.x*i,r=e.mercatorAngleToGeodeticLatitude(t.y*i),s=t.z;return l(n)?(n.longitude=o,n.latitude=r,n.height=s,n):new fe(o,r,s)}};ZW.MaximumLatitude=ZW.mercatorAngleToGeodeticLatitude(Math.PI);var ui=ZW;function ewe(e,t,n){let i=!n,o=e.length,r;if(!i&&o>1){let s=e[0].modelMatrix;for(r=1;r=0){let d=i[a];o=d.offset+d.count,s=d.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let d=0;dr&&(o=0,r=n[++s].indices.length),i.push({index:s,offset:o,count:p}),o+=p}}function iwe(e,t){let n=[];return YJ(e,"geometry",t,n),YJ(e,"westHemisphereGeometry",t,n),YJ(e,"eastHemisphereGeometry",t,n),n}var v0={};v0.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=nwe(e),t.length>0&&(n=Un.createAttributeLocations(t[0]),e.createPickOffsets&&(r=iwe(i,t))),l(i[0].attributes)&&l(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),d=new Array(o);for(let u=0;u0&&(n.set(c.indices,s),s+=f)}return t.push(n.buffer),{stringTable:i,packedData:n}};v0.unpackCreateGeometryResults=function(e){let t=e.stringTable,n=e.packedData,i,o=new Array(n[0]),r=0,s=1;for(;s0){let G=_.length/S;for(R=De.createTypedArray(G,y),i=0;i= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; + gl_Position *= show; +}`,`${i} +${o}`};function Nce(e,t){if(!e.compressVertices)return t;let n=t.search(/in\s+vec3\s+normal;/g)!==-1,i=t.search(/in\s+vec2\s+st;/g)!==-1;if(!n&&!i)return t;let o=t.search(/in\s+vec3\s+tangent;/g)!==-1,r=t.search(/in\s+vec3\s+bitangent;/g)!==-1,s=i&&n?2:1;s+=o||r?1:0;let a=s>1?`vec${s}`:"float",c="compressedAttributes",d=`in ${a} ${c};`,u="",m="";if(i){u+=`vec2 st; +`;let f=s>1?`${c}.x`:c;m+=` st = czm_decompressTextureCoordinates(${f}); +`}n&&o&&r?(u+=`vec3 normal; +vec3 tangent; +vec3 bitangent; +`,m+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent); +`):(n&&(u+=`vec3 normal; +`,m+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""}); +`),o&&(u+=`vec3 tangent; +`,m+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`),r&&(u+=`vec3 bitangent; +`,m+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`));let p=t;p=p.replace(/in\s+vec3\s+normal;/g,""),p=p.replace(/in\s+vec2\s+st;/g,""),p=p.replace(/in\s+vec3\s+tangent;/g,""),p=p.replace(/in\s+vec3\s+bitangent;/g,""),p=He.replaceMain(p,"czm_non_compressed_main");let b=`void main() +{ +${m} czm_non_compressed_main(); +}`;return[d,u,p,b].join(` +`)}function gwe(e){let t=He.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + gl_Position = czm_depthClamp(gl_Position);} +`,t}function ywe(e){let t=He.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + #if defined(LOG_DEPTH) + czm_writeLogDepth(); + #else + czm_writeDepthClamp(); + #endif +} +`,t}function wce(e,t){let n=e.vertexAttributes}function xwe(e,t){return function(){return e[t]}}var NJ=Math.max(mn.hardwareConcurrency-1,1),l5,Twe=new Hn("combineGeometry");function _we(e,t){let n,i,o,r,s=e._instanceIds;if(e._state===Or.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],d=[];for(o=0;o0){let y=new Float64Array(m);for(f=[y.buffer],r=0;r0?(e._recomputeBoundingSpheres=!0,e._state=Or.COMBINED):VW(e,t,Or.FAILED,void 0)}).catch(function(m){VW(e,t,Or.FAILED,m)})}}function Swe(e,t){let n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],i=e._numberOfInstances=n.length,o=new Array(i),r=e._instanceIds,s,a,c=0;for(a=0;a0?(e._recomputeBoundingSpheres=!0,e._state=Or.COMBINED):VW(e,t,Or.FAILED,void 0)}function Awe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!l(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!l(a)){for(a=new Array(s),i=0;i0||ue.intersectPlane(y,sn.ORIGIN_ZX_PLANE)!==Qt.INTERSECTING?c.push(y):(d.push(y),u.push(y))}let m=c[0],p=u[0],b=d[0];for(i=1;i0){if(Xt.maximumVertexTextureImageUnits===0)throw new ae("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==Or.COMPLETE&&this._state!==Or.COMBINED&&(this.asynchronous?_we(this,e):Swe(this,e)),this._state===Or.COMBINED&&(Zwe(this,e),kce(this,e),Rwe(this,e)),!this.show||this._state!==Or.COMPLETE)return;this._batchTableOffsetsUpdated||kce(this,e),this._recomputeBoundingSpheres&&Awe(this,e);let n=this.appearance,i=n.material,o=!1,r=!1;this._appearance!==n?(this._appearance=n,this._material=i,o=!0,r=!0):this._material!==i&&(this._material=i,r=!0);let s=this.depthFailAppearance,a=l(s)?s.material:void 0;this._depthFailAppearance!==s?(this._depthFailAppearance=s,this._depthFailMaterial=a,o=!0,r=!0):this._depthFailMaterial!==a&&(this._depthFailMaterial=a,r=!0);let c=this._appearance.isTranslucent();this._translucent!==c&&(this._translucent=c,o=!0),l(this._material)&&this._material.update(t);let d=n.closed&&c;o&&(this._createRenderStatesFunction??Vwe)(this,t,n,d),r&&(this._createShaderProgramFunction??Gwe)(this,e,n),(o||r)&&(this._createCommandsFunction??Ewe)(this,n,i,c,d,this._colorCommands,this._pickCommands,e),(this._updateAndQueueCommandsFunction??Lwe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,d)};var Wwe=new ue,vwe=new ue;function Jce(e,t,n){if(n===hn.TOP){let i=ue.clone(e,Wwe),o=ue.clone(e,vwe);o.center=h.add(o.center,t,o.center),e=ue.union(i,o,e)}else n===hn.ALL&&(e.center=h.add(e.center,t,e.center));return e}function Fwe(e,t,n){return function(){let i=e.getBatchedAttribute(t,n),o=e.attributes[n],r=o.componentsPerAttribute,s=J.createTypedArray(o.componentDatatype,r);return l(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function Iwe(e,t,n,i,o){return function(r){let s=Bce(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var Pwe=new h;function Xwe(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(l(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;l(r)&&Jce(i,h.fromArray(r.get(),0,Pwe),e._offsetInstanceExtend[n]),l(o)&&(i=ue.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function Ywe(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}Br.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(l(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let d=0;d 0.0 && upOrRightInBounds.x && upOrRightInBounds.y); + float useDownOrLeft = float(useUpOrRight == 0.0); + vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth); + vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth); + return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft; +} +#endif // NORMAL_EC + +void main(void) +{ +#ifdef REQUIRES_EC + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); +#endif + +#ifdef REQUIRES_WC + vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate; + vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w; +#endif + +#ifdef TEXTURE_COORDINATES + vec2 uv; +#ifdef SPHERICAL + // Treat world coords as a sphere normal for spherical coordinates + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate); + sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z; + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w; + uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z; +#else // SPHERICAL + // Unpack planes and transform to eye space + uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x; + uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y; +#endif // SPHERICAL +#endif // TEXTURE_COORDINATES + +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) { + discard; + } +#endif + +#ifdef PICK + out_FragColor.a = 1.0; // Explicitly set the alpha, otherwise this may be discarded by ShaderSource.createPickFragmentShaderSource +#ifdef CULL_FRAGMENTS + czm_writeDepthClamp(); +#endif // CULL_FRAGMENTS +#else // PICK + +#ifdef NORMAL_EC + // Compute normal by sampling adjacent pixels in 2x2 block in screen space + vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0)); + vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0)); + vec3 normalEC = normalize(cross(leftRight, downUp)); +#endif + + +#ifdef PER_INSTANCE_COLOR + + vec4 color = czm_gammaCorrect(v_color); +#ifdef FLAT + out_FragColor = color; +#else // FLAT + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = -eyeCoordinate.xyz; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#else // PER_INSTANCE_COLOR + + // Material support. + // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or + // dependencies for culling but might not actually be used by the material. + + czm_materialInput materialInput; + +#ifdef USES_NORMAL_EC + materialInput.normalEC = normalEC; +#endif + +#ifdef USES_POSITION_TO_EYE_EC + materialInput.positionToEyeEC = -eyeCoordinate.xyz; +#endif + +#ifdef USES_TANGENT_TO_EYE + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC); +#endif + +#ifdef USES_ST + // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired + // texture coordinate system, which typically forms a tight oriented bounding box around the geometry. + // Shader is provided a set of reference points for remapping. + materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z; + materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z; +#endif + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else // FLAT + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#endif // PER_INSTANCE_COLOR + czm_writeDepthClamp(); +#endif // PICK +} +`;function cm(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new MJ;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new MJ;if(o.requiresTextureCoordinates=e,n instanceof pn)i.requiresNormalEC=!n.flat;else{let r=`${n.material.shaderSource} +${n.fragmentShaderSource}`;i.normalEC=r.indexOf("materialInput.normalEC")!==-1||r.indexOf("czm_getDefaultMaterial")!==-1,i.positionToEyeEC=r.indexOf("materialInput.positionToEyeEC")!==-1,i.tangentToEyeMatrix=r.indexOf("materialInput.tangentToEyeMatrix")!==-1,i.st=r.indexOf("materialInput.st")!==-1}this._colorShaderDependencies=i,this._pickShaderDependencies=o,this._appearance=n,this._extentsCulling=e,this._planarExtents=t}cm.prototype.createFragmentShader=function(e){let t=this._appearance,n=this._colorShaderDependencies,i=[];!e&&!this._planarExtents&&i.push("SPHERICAL"),n.requiresEC&&i.push("REQUIRES_EC"),n.requiresWC&&i.push("REQUIRES_WC"),n.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),n.requiresNormalEC&&i.push("NORMAL_EC"),t instanceof pn&&i.push("PER_INSTANCE_COLOR"),n.normalEC&&i.push("USES_NORMAL_EC"),n.positionToEyeEC&&i.push("USES_POSITION_TO_EYE_EC"),n.tangentToEyeMatrix&&i.push("USES_TANGENT_TO_EYE"),n.st&&i.push("USES_ST"),t.flat&&i.push("FLAT");let o="";return t instanceof pn||(o=t.material.shaderSource),new He({defines:i,sources:[o,yZ]})};cm.prototype.createPickFragmentShader=function(e){let t=this._pickShaderDependencies,n=["PICK"];return!e&&!this._planarExtents&&n.push("SPHERICAL"),t.requiresEC&&n.push("REQUIRES_EC"),t.requiresWC&&n.push("REQUIRES_WC"),t.requiresTextureCoordinates&&n.push("TEXTURE_COORDINATES"),this._extentsCulling&&n.push("CULL_FRAGMENTS"),new He({defines:n,sources:[yZ],pickColorQualifier:"in"})};cm.prototype.createVertexShader=function(e,t,n,i){return ile(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};cm.prototype.createPickVertexShader=function(e,t,n,i){return ile(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var jce=new h,Qce=new fe,qce={high:0,low:0};function ile(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let d=Qce;d.longitude=W.PI,d.latitude=0,d.height=0;let u=s.project(d,jce),m=Zn.encode(u.x,qce);a.eastMostYhighDefine=`EAST_MOST_X_HIGH ${m.high.toFixed(`${m.high}`.length+1)}`,a.eastMostYlowDefine=`EAST_MOST_X_LOW ${m.low.toFixed(`${m.low}`.length+1)}`;let p=Qce;p.longitude=-W.PI,p.latitude=0,p.height=0;let b=s.project(p,jce);m=Zn.encode(b.x,qce),a.westMostYhighDefine=`WEST_MOST_X_HIGH ${m.high.toFixed(`${m.high}`.length+1)}`,a.westMostYlowDefine=`WEST_MOST_X_LOW ${m.low.toFixed(`${m.low}`.length+1)}`}return n&&(c.push(a.eastMostYhighDefine),c.push(a.eastMostYlowDefine),c.push(a.westMostYhighDefine),c.push(a.westMostYlowDefine)),l(r)&&r instanceof pn&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new He({defines:c,sources:[o]})}function MJ(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}Object.defineProperties(MJ.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});function $ce(e,t,n){return Math.abs((t.y-e.y)*n.x-(t.x-e.x)*n.y+t.x*e.y-t.y*e.x)/k.distance(t,e)}var wwe=[new k,new k,new k,new k];function ole(e,t){let n=wwe,i=k.unpack(t,0,n[0]),o=k.unpack(t,2,n[1]),r=k.unpack(t,4,n[2]);e.uMaxVmax=new Uc({componentDatatype:J.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/$ce(i,o,r),a=1/$ce(i,r,o);e.uvMinAndExtents=new Uc({componentDatatype:J.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var rle=new fe,sle=new h,Mwe=new h,kwe=new h,d5={high:0,low:0};function ale(e,t,n){let i=rle;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,sle);i.latitude=e.north;let r=t.project(i,Mwe);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,kwe),a=[0,0,0,0],c=[0,0,0,0],d=Zn.encode(o.x,d5);a[0]=d.high,c[0]=d.low,d=Zn.encode(o.y,d5),a[1]=d.high,c[1]=d.low,d=Zn.encode(r.y,d5),a[2]=d.high,c[2]=d.low,d=Zn.encode(s.x,d5),a[3]=d.high,c[3]=d.low,n.planes2D_HIGH=new Uc({componentDatatype:J.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new Uc({componentDatatype:J.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var Uwe=new F,Dwe=new F,ele=new h,Owe=new fe,Bwe=[new fe,new fe,new fe,new fe,new fe,new fe,new fe,new fe];function zwe(e,t,n,i,o,r){let s=se.center(e,Owe);s.height=n;let a=fe.toCartesian(s,t,ele),c=xt.eastNorthUpToFixedFrame(a,t,Uwe),d=F.inverse(c,Dwe),u=e.west,m=e.east,p=e.north,b=e.south,f=Bwe;f[0].latitude=b,f[0].longitude=u,f[1].latitude=p,f[1].longitude=u,f[2].latitude=p,f[2].longitude=m,f[3].latitude=b,f[3].longitude=m;let y=(u+m)*.5,_=(p+b)*.5;f[4].latitude=b,f[4].longitude=y,f[5].latitude=p,f[5].longitude=y,f[6].latitude=_,f[6].longitude=u,f[7].latitude=_,f[7].longitude=m;let S=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,Z=Number.POSITIVE_INFINITY,R=Number.NEGATIVE_INFINITY;for(let I=0;I<8;I++){f[I].height=n;let X=fe.toCartesian(f[I],t,ele);F.multiplyByPoint(d,X,X),X.z=0,S=Math.min(S,X.x),A=Math.max(A,X.x),Z=Math.min(Z,X.y),R=Math.max(R,X.y)}let G=i;G.x=S,G.y=Z,G.z=0,F.multiplyByPoint(c,G,G);let E=o;E.x=A,E.y=Z,E.z=0,F.multiplyByPoint(c,E,E),h.subtract(E,G,o);let v=r;v.x=S,v.y=R,v.z=0,F.multiplyByPoint(c,v,v),h.subtract(v,G,r)}var Hwe=new h,Kwe=new h,Jwe=new Zn;cm.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=sle,s=Hwe,a=Kwe;zwe(e,n,o??0,r,s,a);let c={};ole(c,t);let d=Zn.fromCartesian(r,Jwe);return c.southWest_HIGH=new Uc({componentDatatype:J.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(d.high,[0,0,0])}),c.southWest_LOW=new Uc({componentDatatype:J.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(d.low,[0,0,0])}),c.eastward=new Uc({componentDatatype:J.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(s,[0,0,0])}),c.northward=new Uc({componentDatatype:J.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(a,[0,0,0])}),ale(e,i,c),c};var jwe=new h;function tle(e,t,n,i){let o=rle;o.latitude=e,o.longitude=t,o.height=0;let r=fe.toCartesian(o,n,jwe),s=Math.sqrt(r.x*r.x+r.y*r.y),a=W.fastApproximateAtan2(s,r.z),c=W.fastApproximateAtan2(r.x,r.y);return i.x=a,i.y=c,i}var nle=new k;cm.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=tle(e.south,e.west,n,nle),r=o.x,s=o.y,a=tle(e.north,e.east,n,nle),c=a.x,d=a.y,u=0;s>d&&(u=W.PI-s,s=-W.PI,d+=u),r-=W.EPSILON5,s-=W.EPSILON5,c+=W.EPSILON5,d+=W.EPSILON5;let m=1/(d-s),p=1/(c-r),b={sphericalExtents:new Uc({componentDatatype:J.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,m]}),longitudeRotation:new Uc({componentDatatype:J.FLOAT,componentsPerAttribute:1,normalize:!1,value:[u]})};return ole(b,t),ale(e,i,b),b};cm.hasAttributesForTextureCoordinatePlanes=function(e){return l(e.southWest_HIGH)&&l(e.southWest_LOW)&&l(e.northward)&&l(e.eastward)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};cm.hasAttributesForSphericalExtents=function(e){return l(e.sphericalExtents)&&l(e.longitudeRotation)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};function Qwe(e){return Math.max(e.width,e.height)>cm.MAX_WIDTH_FOR_PLANAR_EXTENTS}cm.shouldUseSphericalCoordinates=function(e){return Qwe(e)};cm.MAX_WIDTH_FOR_PLANAR_EXTENTS=W.toRadians(1);var iu=cm;var yrn=x(T(),1);var urn=x(T(),1);var cle={NEVER:ne.NEVER,LESS:ne.LESS,EQUAL:ne.EQUAL,LESS_OR_EQUAL:ne.LEQUAL,GREATER:ne.GREATER,NOT_EQUAL:ne.NOTEQUAL,GREATER_OR_EQUAL:ne.GEQUAL,ALWAYS:ne.ALWAYS};Object.freeze(cle);var Jn=cle;var frn=x(T(),1);var lle={ZERO:ne.ZERO,KEEP:ne.KEEP,REPLACE:ne.REPLACE,INCREMENT:ne.INCR,DECREMENT:ne.DECR,INVERT:ne.INVERT,INCREMENT_WRAP:ne.INCR_WRAP,DECREMENT_WRAP:ne.DECR_WRAP};Object.freeze(lle);var Gt=lle;var u5={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};u5.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:Jn.ALWAYS,frontOperation:{fail:Gt.KEEP,zFail:Gt.KEEP,zPass:Gt.REPLACE},backFunction:Jn.ALWAYS,backOperation:{fail:Gt.KEEP,zFail:Gt.KEEP,zPass:Gt.REPLACE},reference:u5.CESIUM_3D_TILE_MASK,mask:u5.CESIUM_3D_TILE_MASK}};var Kt=Object.freeze(u5);function RT(e){e=e??B.EMPTY_OBJECT;let t=e.geometryInstances;this.geometryInstances=t,this.show=e.show??!0,this.classificationType=e.classificationType??Kn.BOTH,this.debugShowBoundingVolume=e.debugShowBoundingVolume??!1,this.debugShowShadowVolume=e.debugShowShadowVolume??!1,this._debugShowShadowVolume=!1,this._extruded=e._extruded??!1,this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1,this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:e.vertexCacheOptimize??!1,interleave:e.interleave??!1,releaseGeometryInstances:e.releaseGeometryInstances??!0,allowPicking:e.allowPicking??!0,asynchronous:e.asynchronous??!0,compressVertices:e.compressVertices??!0,_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}Object.defineProperties(RT.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}});RT.isSupported=function(e){return e.context.stencilBuffer};function xZ(e,t){let n=t?Jn.EQUAL:Jn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:n,frontOperation:{fail:Gt.KEEP,zFail:Gt.DECREMENT_WRAP,zPass:Gt.KEEP},backFunction:n,backOperation:{fail:Gt.KEEP,zFail:Gt.INCREMENT_WRAP,zPass:Gt.KEEP},reference:Kt.CESIUM_3D_TILE_MASK,mask:Kt.CESIUM_3D_TILE_MASK},stencilMask:Kt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:Ha.LESS_OR_EQUAL},depthMask:!1}}function UJ(e){return{stencilTest:{enabled:e,frontFunction:Jn.NOT_EQUAL,frontOperation:{fail:Gt.ZERO,zFail:Gt.ZERO,zPass:Gt.ZERO},backFunction:Jn.NOT_EQUAL,backOperation:{fail:Gt.ZERO,zFail:Gt.ZERO,zPass:Gt.ZERO},reference:0,mask:Kt.CLASSIFICATION_MASK},stencilMask:Kt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:nn.PRE_MULTIPLIED_ALPHA_BLEND}}var qwe={stencilTest:{enabled:!0,frontFunction:Jn.NOT_EQUAL,frontOperation:{fail:Gt.ZERO,zFail:Gt.ZERO,zPass:Gt.ZERO},backFunction:Jn.NOT_EQUAL,backOperation:{fail:Gt.ZERO,zFail:Gt.ZERO,zPass:Gt.ZERO},reference:0,mask:Kt.CLASSIFICATION_MASK},stencilMask:Kt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function $we(e,t,n,i){if(l(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=Be.fromCache(xZ(o,!1)),e._rsStencilDepthPass3DTiles=Be.fromCache(xZ(o,!0)),e._rsColorPass=Be.fromCache(UJ(o,!1)),e._rsPickPass=Be.fromCache(qwe)}function eMe(e,t){if(!e.compressVertices)return t;if(t.search(/in\s+vec3\s+extrudeDirection;/g)!==-1){let n="compressedAttributes",i=`in vec2 ${n};`,o=`vec3 extrudeDirection; +`,r=` extrudeDirection = czm_octDecode(${n}, 65535.0); +`,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=He.replaceMain(s,"czm_non_compressed_main");let a=`void main() +{ +${r} czm_non_compressed_main(); +}`;return[i,o,s,a].join(` +`)}}function tMe(e,t){let n=t.context,i=e._primitive,o=_W;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=Wn._appendDistanceDisplayConditionToShader(i,o),o=Wn._modifyShaderPosition(e,o,t.scene3DOnly),o=Wn._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=eMe(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new He({defines:[a],sources:[o]}),d=new He({sources:[Jg]}),u=e._primitive._attributeLocations,m=new iu(s,r,e.appearance);if(e._spStencil=tn.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:u}),e._primitive.allowPicking){let f=He.createPickVertexShaderSource(o);f=Wn._appendShowToShader(i,f),f=Wn._updatePickColorAttribute(f);let y=m.createPickFragmentShader(!1),_=m.createPickVertexShader([a],f,!1,t.mapProjection);if(e._spPick=tn.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:_,fragmentShaderSource:y,attributeLocations:u}),s){let S=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!l(S)){let A=m.createPickFragmentShader(!0),Z=m.createPickVertexShader([a],f,!0,t.mapProjection);S=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:Z,fragmentShaderSource:A,attributeLocations:u})}e._spPick2D=S}}else e._spPick=tn.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:u});o=Wn._appendShowToShader(i,o),c=new He({defines:[a],sources:[o]}),e._sp=tn.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:u});let p=m.createFragmentShader(!1),b=m.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=tn.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:b,fragmentShaderSource:p,attributeLocations:u}),s){let f=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!l(f)){let y=m.createFragmentShader(!0),_=m.createVertexShader([a],o,!0,t.mapProjection);f=n.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:_,fragmentShaderSource:y,attributeLocations:u})}e._spColor2D=f}}function nMe(e,t){let n=e._primitive,i=n._va.length*2;t.length=i;let o,r,s,a=0,c=n._batchTable.getUniformMapCallback()(e._uniformMap),d=e._needs2DShader;for(o=0;o0&&(c=o[0].attributes,p=iu.hasAttributesForSphericalExtents(c),b=iu.hasAttributesForTextureCoordinatePlanes(c),m=c.color),s=0;s{l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};RT.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};RT.prototype.isDestroyed=function(){return!1};RT.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,he(this)};var TZ=RT;var sMe={u_globeMinimumAltitude:function(){return 55e3}};function hd(e){e=e??B.EMPTY_OBJECT;let t=e.appearance,n=e.geometryInstances;if(!l(t)&&l(n)){let o=Array.isArray(n)?n:[n],r=o.length;for(let s=0;s{!this._ready&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};hd.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};hd.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};hd.prototype.isDestroyed=function(){return!1};hd.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),he(this)};hd._supportsMaterials=function(e){return e.depthTexture};hd.supportsMaterials=function(e){return hd._supportsMaterials(e.frameState.context)};var Tl=hd;var psn=x(T(),1);function _Z(){Te.throwInstantiationError()}Object.defineProperties(_Z.prototype,{isConstant:{get:Te.throwInstantiationError},definitionChanged:{get:Te.throwInstantiationError}});_Z.prototype.getType=Te.throwInstantiationError;_Z.prototype.getValue=Te.throwInstantiationError;_Z.prototype.equals=Te.throwInstantiationError;var pMe=new Q;_Z.getValue=function(e,t,n){let i;return l(e)||(e=Q.now(pMe)),l(t)&&(i=t.getType(e),l(i))?((!l(n)||n.type!==i)&&(n=Di.fromType(i)),t.getValue(e,n.uniforms),n):((!l(n)||n.type!==Di.ColorType)&&(n=Di.fromType(Di.ColorType)),U.clone(U.WHITE,n.uniforms.color),n)};var sr=_Z;function VT(e,t,n){this._primitives=t,this._orderedGroundPrimitives=n,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}VT.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!j.getValueOrDefault(t.show,n,!0)};VT.prototype._setOptions=Te.throwInstantiationError;VT.prototype.update=function(e){let t=this._geometryUpdater,n=t._onTerrain,i=this._primitives,o=this._orderedGroundPrimitives;n?o.remove(this._primitive):(i.removeAndDestroy(this._primitive),i.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;let r=this._entity,s=r[this._geometryUpdater._geometryPropertyName];if(this._setOptions(r,s,e),this._isHidden(r,s,e))return;let a=this._geometryUpdater.shadowsProperty.getValue(e),c=this._options;if(!l(s.fill)||s.fill.getValue(e)){let d=t.fillMaterialProperty,u=d instanceof jt,m,p=t._getIsClosed(c);if(u)m=new pn({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let b=sr.getValue(e,d,this._material);this._material=b,m=new bo({material:b,translucent:b.isTranslucent(),closed:p})}if(n)c.vertexFormat=pn.VERTEX_FORMAT,this._primitive=o.add(new Tl({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:m,asynchronous:!1,shadows:a,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),j.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{c.vertexFormat=m.vertexFormat;let b=this._geometryUpdater.createFillGeometryInstance(e);u&&(m.translucent=b.attributes.color.value[3]!==255),this._primitive=i.add(new Wn({geometryInstances:b,appearance:m,asynchronous:!1,shadows:a}))}}if(!n&&l(s.outline)&&s.outline.getValue(e)){let d=this._geometryUpdater.createOutlineGeometryInstance(e),u=j.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new Wn({geometryInstances:d,appearance:new pn({flat:!0,translucent:d.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(u)}}),asynchronous:!1,shadows:a}))}};VT.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return l(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(ue.clone(o.boundingSphere,e),Vt.DONE):l(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(ue.clone(o.boundingSphere,e),Vt.DONE):l(n)&&!n.ready||l(i)&&!i.ready?Vt.PENDING:Vt.FAILED};VT.prototype.isDestroyed=function(){return!1};VT.prototype.destroy=function(){let e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),he(this)};var Si=VT;var Jmn=x(T(),1);var vsn=x(T(),1);var ple={};function GW(e,t){l(ple[e])||(ple[e]=!0,console.warn(t??e))}GW.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";GW.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";GW.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";GW.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var _t=GW;var Fmn=x(T(),1);var Isn=x(T(),1),ble={AUTODETECT:0,ENU:1,INERTIAL:2,VELOCITY:3};Object.freeze(ble);var F0=ble;var Pcn=x(T(),1);var Can=x(T(),1);var Xsn=x(T(),1),gle={NONE:0,GEODESIC:1,RHUMB:2};Object.freeze(gle);var ln=gle;var Msn=x(T(),1);var yle=W.EPSILON10;function bMe(e,t,n,i){if(!l(e))return;n=n??!1;let o=l(i),r=e.length;if(r<2)return e;let s,a=e[0],c,d,u=0,m=-1;for(s=1;sW.EPSILON12);let C=Y*(t*t-n*n)/(n*n),V=1+C*(4096+C*(C*(320-175*C)-768))/16384,L=C*(256+C*(C*(74-47*C)-128))/1024,P=g*g,N=L*X*(g+L*(I*(2*P-1)-L*g*(4*X*X-3)*(4*P-3)/6)/4),O=n*V*(v-N),M=Math.atan2(b*E,_-A*G),D=Math.atan2(m*E,_*G-A);e._distance=O,e._startHeading=M,e._endHeading=D,e._uSquared=C}var TMe=new h,BJ=new h;function Tle(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,BJ),TMe),r=h.normalize(i.cartographicToCartesian(n,BJ),BJ);xMe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude),e._start=fe.clone(t,e._start),e._end=fe.clone(n,e._end),e._start.height=0,e._end.height=0,gMe(e)}function EW(e,t,n){let i=n??ie.default;this._ellipsoid=i,this._start=new fe,this._end=new fe,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,l(e)&&l(t)&&Tle(this,e,t,i)}Object.defineProperties(EW.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}});EW.prototype.setEndPoints=function(e,t){Tle(this,e,t,this._ellipsoid)};EW.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};EW.prototype.interpolateUsingSurfaceDistance=function(e,t){let n=this._constants,i=n.distanceRatio+e/n.b,o=Math.cos(2*i),r=Math.cos(4*i),s=Math.cos(6*i),a=Math.sin(2*i),c=Math.sin(4*i),d=Math.sin(6*i),u=Math.sin(8*i),m=i*i,p=i*m,b=n.u8Over256,f=n.u2Over4,y=n.u6Over64,_=n.u4Over16,S=2*p*b*o/3+i*(1-f+7*_/4-15*y/4+579*b/64-(_-15*y/4+187*b/16)*o-(5*y/4-115*b/16)*r-29*b*s/16)+(f/2-_+71*y/32-85*b/16)*a+(5*_/16-5*y/4+383*b/96)*c-m*((y-11*b/2)*a+5*b*c/2)+(29*y/96-29*b/16)*d+539*b*u/1536,A=Math.asin(Math.sin(S)*n.cosineAlpha),Z=Math.atan(n.a/n.b*Math.tan(A));S=S-n.sigma;let R=Math.cos(2*n.sigma+S),G=Math.sin(S),E=Math.cos(S),v=n.cosineU*E,I=n.sineU*G,Y=Math.atan2(G*n.sineHeading,v-I*n.cosineHeading)-xle(n.f,n.sineAlpha,n.cosineSquaredAlpha,S,G,E,R);return l(t)?(t.longitude=this._start.longitude+Y,t.latitude=Z,t.height=0,t):new fe(this._start.longitude+Y,Z,0)};var I0=EW;var ean=x(T(),1);function HJ(e,t,n){if(e===0)return t*n;let i=e*e,o=i*i,r=o*i,s=r*i,a=s*i,c=a*i,d=n,u=Math.sin(2*d),m=Math.sin(4*d),p=Math.sin(6*d),b=Math.sin(8*d),f=Math.sin(10*d),y=Math.sin(12*d);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*d-(3*i/8+3*o/32+45*r/1024+105*s/4096+2205*a/131072+6237*c/524288)*u+(15*o/256+45*r/1024+525*s/16384+1575*a/65536+155925*c/8388608)*m-(35*r/3072+175*s/12288+3675*a/262144+13475*c/1048576)*p+(315*s/131072+2205*a/524288+43659*c/8388608)*b-(693*a/1310720+6237*c/5242880)*f+1001*c/8388608*y)}function _Me(e,t,n){let i=e/n;if(t===0)return i;let o=i*i,r=o*i,s=r*i,a=t,c=a*a,d=c*c,u=d*c,m=u*c,p=m*c,b=p*c,f=Math.sin(2*i),y=Math.cos(2*i),_=Math.sin(4*i),S=Math.cos(4*i),A=Math.sin(6*i),Z=Math.cos(6*i),R=Math.sin(8*i),G=Math.cos(8*i),E=Math.sin(10*i),v=Math.cos(10*i),I=Math.sin(12*i);return i+i*c/4+7*i*d/64+15*i*u/256+579*i*m/16384+1515*i*p/65536+16837*i*b/1048576+(3*i*d/16+45*i*u/256-i*(32*o-561)*m/4096-i*(232*o-1677)*p/16384+i*(399985-90560*o+512*s)*b/5242880)*y+(21*i*u/256+483*i*m/4096-i*(224*o-1969)*p/16384-i*(33152*o-112599)*b/1048576)*S+(151*i*m/4096+4681*i*p/65536+1479*i*b/16384-453*r*b/32768)*Z+(1097*i*p/65536+42783*i*b/1048576)*G+8011*i*b/1048576*v+(3*c/8+3*d/16+213*u/2048-3*o*u/64+255*m/4096-33*o*m/512+20861*p/524288-33*o*p/512+s*p/1024+28273*b/1048576-471*o*b/8192+9*s*b/4096)*f+(21*d/256+21*u/256+533*m/8192-21*o*m/512+197*p/4096-315*o*p/4096+584039*b/16777216-12517*o*b/131072+7*s*b/2048)*_+(151*u/6144+151*m/4096+5019*p/131072-453*o*p/16384+26965*b/786432-8607*o*b/131072)*A+(1097*m/131072+1097*p/65536+225797*b/10485760-1097*o*b/65536)*R+(8011*p/2621440+8011*b/1048576)*E+293393*b/251658240*I}function SZ(e,t){if(e===0)return Math.log(Math.tan(.5*(W.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(W.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function SMe(e,t,n,i,o){let r=SZ(e._ellipticity,n),s=SZ(e._ellipticity,o);return Math.atan2(W.negativePiToPi(i-t),s-r)}function AMe(e,t,n,i,o,r,s){let a=e._heading,c=r-i,d=0;if(W.equalsEpsilon(Math.abs(a),W.PI_OVER_TWO,W.EPSILON8))if(t===n)d=t*Math.cos(o)*W.negativePiToPi(c);else{let u=Math.sin(o);d=t*Math.cos(o)*W.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*u*u)}else{let u=HJ(e._ellipticity,t,o);d=(HJ(e._ellipticity,t,s)-u)/Math.cos(a)}return Math.abs(d)}var ZMe=new h,zJ=new h;function _le(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,zJ),ZMe),r=h.normalize(i.cartographicToCartesian(n,zJ),zJ),s=i.maximumRadius,a=i.minimumRadius,c=s*s,d=a*a;e._ellipticitySquared=(c-d)/c,e._ellipticity=Math.sqrt(e._ellipticitySquared),e._start=fe.clone(t,e._start),e._start.height=0,e._end=fe.clone(n,e._end),e._end.height=0,e._heading=SMe(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=AMe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function Sle(e,t,n,i,o,r){if(n===0)return fe.clone(e,r);let s=o*o,a,c,d;if(Math.abs(W.PI_OVER_TWO-Math.abs(t))>W.EPSILON8){let u=HJ(o,i,e.latitude),m=n*Math.cos(t),p=u+m;if(c=_Me(p,o,i),Math.abs(t)0?a=W.negativePiToPi(e.longitude+d):a=W.negativePiToPi(e.longitude-d)}return l(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new fe(a,c,0)}function P0(e,t,n){let i=n??ie.default;this._ellipsoid=i,this._start=new fe,this._end=new fe,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,l(e)&&l(t)&&_le(this,e,t,i)}Object.defineProperties(P0.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}});P0.fromStartHeadingDistance=function(e,t,n,i,o){let r=i??ie.default,s=r.maximumRadius,a=r.minimumRadius,c=s*s,d=a*a,u=Math.sqrt((c-d)/c);t=W.negativePiToPi(t);let m=Sle(e,t,n,r.maximumRadius,u);return!l(o)||l(i)&&!i.equals(o.ellipsoid)?new P0(e,m,r):(o.setEndPoints(e,m),o)};P0.prototype.setEndPoints=function(e,t){_le(this,e,t,this._ellipsoid)};P0.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};P0.prototype.interpolateUsingSurfaceDistance=function(e,t){return Sle(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};P0.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,o=Math.abs(i),r=this._start;if(e=W.negativePiToPi(e),W.equalsEpsilon(Math.abs(e),Math.PI,W.EPSILON14)&&(e=W.sign(r.longitude)*Math.PI),l(t)||(t=new fe),Math.abs(W.PI_OVER_TWO-o)<=W.EPSILON8)return t.longitude=e,t.latitude=r.latitude,t.height=0,t;if(W.equalsEpsilon(Math.abs(W.PI_OVER_TWO-o),W.PI_OVER_TWO,W.EPSILON8))return W.equalsEpsilon(e,r.longitude,W.EPSILON12)?void 0:(t.longitude=e,t.latitude=W.PI_OVER_TWO*W.sign(W.PI_OVER_TWO-i),t.height=0,t);let s=r.latitude,a=n*Math.sin(s),c=Math.tan(.5*(W.PI_OVER_TWO+s))*Math.exp((e-r.longitude)/Math.tan(i)),d=(1+a)/(1-a),u=r.latitude,m;do{m=u;let p=n*Math.sin(m),b=(1+p)/(1-p);u=2*Math.atan(c*Math.pow(b/d,n/2))-W.PI_OVER_TWO}while(!W.equalsEpsilon(u,m,W.EPSILON12));return t.longitude=e,t.latitude=u,t.height=0,t};P0.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,o=this._start;if(W.equalsEpsilon(Math.abs(i),W.PI_OVER_TWO,W.EPSILON8))return;let r=SZ(n,o.latitude),s=SZ(n,e),a=Math.tan(i)*(s-r),c=W.negativePiToPi(o.longitude+a);return l(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new fe(c,e,0)};var xc=P0;var tj=[ki,ui],CMe=tj.length,Ule=Math.cos(W.toRadians(30)),Ale=Math.cos(W.toRadians(150)),Dle=0,Ole=1e3;function Qg(e){e=e??B.EMPTY_OBJECT;let t=e.positions;this.width=e.width??1,this._positions=t,this.granularity=e.granularity??9999,this.loop=e.loop??!1,this.arcType=e.arcType??ln.GEODESIC,this._ellipsoid=ie.default,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(Qg.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+ie.packedLength+1+1}}});Qg.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;iUle||rW.PI_OVER_TWO&&(a=!0,s=h.subtract(r,n,Wle),d=c.cartesianToCartographic(s,Lle)),d.height=0;let u=e.project(d,o);return o=h.subtract(u,i,o),o.z=0,o=h.normalize(o,o),a&&h.negate(o,o),o}var BMe=new h,vle=new h;function Fle(e,t,n,i,o,r){let s=h.subtract(t,e,BMe);h.normalize(s,s);let a=n-Dle,c=h.multiplyByScalar(s,a,vle);h.add(e,c,o);let d=i-Ole;c=h.multiplyByScalar(s,d,vle),h.add(t,c,r)}var zMe=new h;function p5(e,t){let n=sn.getPointDistance(b5,e),i=sn.getPointDistance(b5,t),o=zMe;W.equalsEpsilon(n,0,W.EPSILON2)?(o=X0(t,e,o),h.multiplyByScalar(o,W.EPSILON2,o),h.add(e,o,e)):W.equalsEpsilon(i,0,W.EPSILON2)&&(o=X0(e,t,o),h.multiplyByScalar(o,W.EPSILON2,o),h.add(t,o,t))}function HMe(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(W.equalsEpsilon(n,W.PI,W.EPSILON11)){let o=W.sign(t.longitude);return e.longitude=o*(n-W.EPSILON11),1}else if(W.equalsEpsilon(i,W.PI,W.EPSILON11)){let o=W.sign(e.longitude);return t.longitude=o*(i-W.EPSILON11),2}return 0}var zle=new fe,Hle=new fe,Ile=new h,QJ=new h,Ple=new h,Xle=new h,KMe=new h,Yle=new h,JMe=[zle,Hle],jMe=new se,QMe=new h,qMe=new h,$Me=new h,eke=new h,tke=new h,nke=new h,qJ=new h,$J=new h,ike=new h,oke=new h,rke=new h,Nle=new h,ske=new h,ake=new h,cke=new Zn,lke=new Zn,wle=new h,dke=new h,Mle=new h,uke=[new ue,new ue],Kle=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],kle=Kle.length;function mke(e,t,n,i,o,r,s){let a,c,d=t._ellipsoid,u=n.length/3-1,m=u*8,p=m*4,b=u*36,f=m>65535?new Uint32Array(b):new Uint16Array(b),y=new Float64Array(m*3),_=new Float32Array(p),S=new Float32Array(p),A=new Float32Array(p),Z=new Float32Array(p),R=new Float32Array(p),G,E,v,I;s&&(G=new Float32Array(p),E=new Float32Array(p),v=new Float32Array(p),I=new Float32Array(m*2));let X=r.length/2,Y=0,g=zle;g.height=0;let C=Hle;C.height=0;let V=Ile,L=QJ;if(s)for(c=0,a=1;aUle?(et=LW(t,g,we,nt,qJ),Ie=LW(t,C,te,je,$J)):hi===1?(Ie=LW(t,C,te,je,$J),et.x=0,et.y=W.sign(g.longitude-Math.abs(C.longitude)),et.z=0):(et=LW(t,g,we,nt,qJ),Ie.x=0,Ie.y=W.sign(g.longitude-C.longitude),Ie.z=0)}let Oe=h.distance(Xe,H),St=Zn.fromCartesian(Re,cke),Et=h.subtract(ee,Re,ike),on=h.normalize(Et,Nle),Ot=h.subtract(Xe,Re,oke);Ot=h.normalize(Ot,Ot);let gt=h.cross(on,Ot,Nle);gt=h.normalize(gt,gt);let Wt=h.cross(Ot,we,ske);Wt=h.normalize(Wt,Wt);let Cn=h.subtract(H,ee,rke);Cn=h.normalize(Cn,Cn);let dt=h.cross(te,Cn,ake);dt=h.normalize(dt,dt);let mt=Oe/N,Qn=q/N,Yn=0,$i,Ko,mo,so=0,ti=0;if(s){Yn=h.distance(nt,je),$i=Zn.fromCartesian(nt,lke),Ko=h.subtract(je,nt,wle),mo=h.normalize(Ko,dke);let hi=mo.x;mo.x=mo.y,mo.y=-hi,so=Yn/Y,ti=de/Y}for(O=0;O<8;O++){let hi=z+O*4,yo=D+O*2,eo=hi+3,Ys=O<4?1:-1,Ei=O===2||O===3||O===6||O===7?1:-1;h.pack(St.high,_,hi),_[eo]=Et.x,h.pack(St.low,S,hi),S[eo]=Et.y,h.pack(Wt,A,hi),A[eo]=Et.z,h.pack(dt,Z,hi),Z[eo]=mt*Ys,h.pack(gt,R,hi);let Yo=Qn*Ei;Yo===0&&Ei<0&&(Yo=9),R[eo]=Yo,s&&(G[hi]=$i.high.x,G[hi+1]=$i.high.y,G[hi+2]=$i.low.x,G[hi+3]=$i.low.y,v[hi]=-et.y,v[hi+1]=et.x,v[hi+2]=Ie.y,v[hi+3]=-Ie.x,E[hi]=Ko.x,E[hi+1]=Ko.y,E[hi+2]=mo.x,E[hi+3]=mo.y,I[yo]=so*Ys,Yo=ti*Ei,Yo===0&&Ei<0&&(Yo=9),I[yo+1]=Yo)}let ni=$Me,yn=eke,Mn=QMe,Vr=qMe,Is=se.fromCartographicArray(JMe,jMe),Ps=Vi.getMinimumMaximumHeights(Is,d),Xs=Ps.minimumTerrainHeight,Ta=Ps.maximumTerrainHeight;ye+=Math.abs(Xs),ye+=Math.abs(Ta),Fle(Re,Xe,Xs,Ta,ni,Mn),Fle(ee,H,Xs,Ta,yn,Vr);let Uo=h.multiplyByScalar(gt,W.EPSILON5,Mle);h.add(ni,Uo,ni),h.add(yn,Uo,yn),h.add(Mn,Uo,Mn),h.add(Vr,Uo,Vr),p5(ni,yn),p5(Mn,Vr),h.pack(ni,y,w),h.pack(yn,y,w+3),h.pack(Vr,y,w+6),h.pack(Mn,y,w+9),Uo=h.multiplyByScalar(gt,-2*W.EPSILON5,Mle),h.add(ni,Uo,ni),h.add(yn,Uo,yn),h.add(Mn,Uo,Mn),h.add(Vr,Uo,Vr),p5(ni,yn),p5(Mn,Vr),h.pack(ni,y,w+12),h.pack(yn,y,w+15),h.pack(Vr,y,w+18),h.pack(Mn,y,w+21),M+=2,c+=3,D+=16,w+=24,z+=32,q+=Oe,de+=Yn}c=0;let le=0;for(a=0;a halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + // Check distance of the eye coordinate against start and end planes with normals in the right plane. + // For computing unskewed lengthwise texture coordinate. + // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking. + + // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward" + vec3 alignedPlaneNormal; + + // start aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz); + + // end aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz); + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Clamp - distance to aligned planes may be negative due to mitering, + // so fragment texture coordinate might be out-of-bounds. + float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0); + s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y; + float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth); + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, t); + materialInput.str = vec3(s, t, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + + czm_writeDepthClamp(); +} +`;var Ean=x(T(),1),vW=`in vec3 v_forwardDirectionEC; +in vec3 v_texcoordNormalizationAndHalfWidth; +in float v_batchId; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#else +in vec2 v_alignedPlaneDistances; +in float v_texcoordT; +#endif + +float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) { + // We don't expect the ray to ever be parallel to the plane + return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction); +} + +void main(void) +{ + vec4 eyeCoordinate = gl_FragCoord; + eyeCoordinate /= eyeCoordinate.w; + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Use distances for planes aligned with segment to prevent skew in dashing + float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x); + float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y); + + // Clamp - distance to aligned planes may be negative due to mitering + distanceFromStart = max(0.0, distanceFromStart); + distanceFromEnd = max(0.0, distanceFromEnd); + + float s = distanceFromStart / (distanceFromStart + distanceFromEnd); + s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y; + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, v_texcoordT); + materialInput.str = vec3(s, v_texcoordT, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR +} +`;var Wan=x(T(),1),FW=`in vec3 position3DHigh; +in vec3 position3DLow; + +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; + +in float batchId; + +out vec3 v_forwardDirectionEC; +out vec3 v_texcoordNormalizationAndHalfWidth; +out float v_batchId; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#else +out vec2 v_alignedPlaneDistances; +out float v_texcoordT; +#endif + +// Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume. +// Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient. +void main() +{ + v_batchId = batchId; + + // Start position + vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw)); + vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz); + vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + + // Start plane + vec4 startPlane2D; + vec4 startPlane3D; + startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlane2D.w = -dot(startPlane2D.xyz, posEc2D); + startPlane3D.w = -dot(startPlane3D.xyz, posEc3D); + + // Right plane + vec4 rightPlane2D; + vec4 rightPlane3D; + rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D); + rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D); + + // End position + posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0); + posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0); + posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w)); + vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy)); + + // End plane + vec4 endPlane2D; + vec4 endPlane3D; + endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlane2D.w = -dot(endPlane2D.xyz, posEc2D); + endPlane3D.w = -dot(endPlane3D.xyz, posEc3D); + + // Forward direction + v_forwardDirectionEC = normalize(endEC - startEC); + + vec2 cleanTexcoordNormalization2D; + cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x); + cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y)); + vec2 cleanTexcoordNormalization3D; + cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w; + cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y)); + + v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime); + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#else // PER_INSTANCE_COLOR + // For computing texture coordinates + + v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC); + v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC); +#endif // PER_INSTANCE_COLOR + +#ifdef WIDTH_VARYING + float width = czm_batchTable_width(batchId); + float halfWidth = width * 0.5; + v_width = width; + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#else + float halfWidth = 0.5 * czm_batchTable_width(batchId); + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#endif + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + // Since this is morphing, compute both 3D and 2D positions and then blend. + + // ****** 3D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz); + vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D)); + geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc3D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // ****** 2D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition + absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz)); + absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz)); + planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz); + upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D)); + geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc2D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(texcoordNormalization2D.x); +#ifndef PER_INSTANCE_COLOR + // Use vertex's sidedness to compute its texture coordinate. + v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0); +#endif + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // Blend for actual position + gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var Fan=x(T(),1),IW=`in vec3 position3DHigh; +in vec3 position3DLow; + +// In 2D and in 3D, texture coordinate normalization component signs encodes: +// * X sign - sidedness relative to right plane +// * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume +#ifndef COLUMBUS_VIEW_2D +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +#else +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; +#endif + +in float batchId; + +out vec4 v_startPlaneNormalEcAndHalfWidth; +out vec4 v_endPlaneNormalEcAndBatchId; +out vec4 v_rightPlaneEC; +out vec4 v_endEcAndStartEcX; +out vec4 v_texcoordNormalizationAndStartEcYZ; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif + +void main() +{ +#ifdef COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz; + + vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy); + vec3 ecEnd = forwardDirectionEC + ecStart; + forwardDirectionEC = normalize(forwardDirectionEC); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x); + v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y; + +#else // COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz; + vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w); + vec3 ecEnd = ecStart + offset; + + vec3 forwardDirectionEC = normalize(offset); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w; + +#endif // COLUMBUS_VIEW_2D + + v_endEcAndStartEcX.xyz = ecEnd; + v_endEcAndStartEcX.w = ecStart.x; + v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz; + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif // PER_INSTANCE_COLOR + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + vec4 positionRelativeToEye = czm_computePosition(); + + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz); + vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Extrude bottom vertices downward for far view distances, like for GroundPrimitives + upOrDown = cross(forwardDirectionEC, normalEC); + upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown; + upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown; + upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown; + positionEC.xyz += upOrDown; + + v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y)); + + // Determine distance along normalEC to push for a volume of appropriate width. + // Make volumes about double pixel width for a conservative fit - in practice the + // extra cost here is minimal compared to the loose volume heights. + // + // N = normalEC (guaranteed "right-facing") + // R = rightEC + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + float width = czm_batchTable_width(batchId); +#ifdef WIDTH_VARYING + v_width = width; +#endif + + v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz; + v_startPlaneNormalEcAndHalfWidth.w = width * 0.5; + + v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz; + v_endPlaneNormalEcAndBatchId.w = batchId; + + width = width * max(0.0, czm_metersPerPixel(positionEC)); // width = distance to push along R + width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N + + // Determine if this vertex is on the "left" or "right" +#ifdef COLUMBUS_VIEW_2D + normalEC *= sign(texcoordNormalization2D.x); +#else + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); +#endif + + positionEC.xyz += width * normalEC; + gl_Position = czm_depthClamp(czm_projection * positionEC); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var Ban=x(T(),1);var Pan=x(T(),1),PW=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_color = color; +} +`;var Yan=x(T(),1),Sl=`void clipLineSegmentToNearPlane( + vec3 p0, + vec3 p1, + out vec4 positionWC, + out bool clipped, + out bool culledByNearPlane, + out vec4 clippedPositionEC) +{ + culledByNearPlane = false; + clipped = false; + + vec3 p0ToP1 = p1 - p0; + float magnitude = length(p0ToP1); + vec3 direction = normalize(p0ToP1); + + // Distance that p0 is behind the near plane. Negative means p0 is + // in front of the near plane. + float endPoint0Distance = czm_currentFrustum.x + p0.z; + + // Camera looks down -Z. + // When moving a point along +Z: LESS VISIBLE + // * Points in front of the camera move closer to the camera. + // * Points behind the camrea move farther away from the camera. + // When moving a point along -Z: MORE VISIBLE + // * Points in front of the camera move farther away from the camera. + // * Points behind the camera move closer to the camera. + + // Positive denominator: -Z, becoming more visible + // Negative denominator: +Z, becoming less visible + // Nearly zero: parallel to near plane + float denominator = -direction.z; + + if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7) + { + // p0 is behind the near plane and the line to p1 is nearly parallel to + // the near plane, so cull the segment completely. + culledByNearPlane = true; + } + else if (endPoint0Distance > 0.0) + { + // p0 is behind the near plane, and the line to p1 is moving distinctly + // toward or away from it. + + // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction) + float t = endPoint0Distance / denominator; + if (t < 0.0 || t > magnitude) + { + // Near plane intersection is not between the two points. + // We already confirmed p0 is behind the naer plane, so now + // we know the entire segment is behind it. + culledByNearPlane = true; + } + else + { + // Segment crosses the near plane, update p0 to lie exactly on it. + p0 = p0 + t * direction; + + // Numerical noise might put us a bit on the wrong side of the near plane. + // Don't let that happen. + p0.z = min(p0.z, -czm_currentFrustum.x); + + clipped = true; + } + } + + clippedPositionEC = vec4(p0, 1.0); + positionWC = czm_eyeToWindowCoordinates(clippedPositionEC); +} + +vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle) +{ + // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC. + +#ifdef POLYLINE_DASH + // Compute the window coordinates of the points. + vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC); + vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC); + vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC); + + // Determine the relative screen space direction of the line. + vec2 lineDir; + if (usePrevious) { + lineDir = normalize(positionWindow.xy - previousWindow.xy); + } + else { + lineDir = normalize(nextWindow.xy - positionWindow.xy); + } + angle = atan(lineDir.x, lineDir.y) - 1.570796327; // precomputed atan(1,0) + + // Quantize the angle so it doesn't change rapidly between segments. + angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour; +#endif + + vec4 clippedPrevWC, clippedPrevEC; + bool prevSegmentClipped, prevSegmentCulled; + clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC); + + vec4 clippedNextWC, clippedNextEC; + bool nextSegmentClipped, nextSegmentCulled; + clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC); + + bool segmentClipped, segmentCulled; + vec4 clippedPositionWC, clippedPositionEC; + clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC); + + if (segmentCulled) + { + return vec4(0.0, 0.0, 0.0, 1.0); + } + + vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy); + vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy); + + // If a segment was culled, we can't use the corresponding direction + // computed above. We should never see both of these be true without + // \`segmentCulled\` above also being true. + if (prevSegmentCulled) + { + directionToPrevWC = -directionToNextWC; + } + else if (nextSegmentCulled) + { + directionToNextWC = -directionToPrevWC; + } + + vec2 thisSegmentForwardWC, otherSegmentForwardWC; + if (usePrevious) + { + thisSegmentForwardWC = -directionToPrevWC; + otherSegmentForwardWC = directionToNextWC; + } + else + { + thisSegmentForwardWC = directionToNextWC; + otherSegmentForwardWC = -directionToPrevWC; + } + + vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x); + + vec2 leftWC = thisSegmentLeftWC; + float expandWidth = width * 0.5; + + // When lines are split at the anti-meridian, the position may be at the + // same location as the next or previous position, and we need to handle + // that to avoid producing NaNs. + if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1)) + { + vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x); + + vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC; + float leftSumLength = length(leftSumWC); + leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength); + + // The sine of the angle between the two vectors is given by the formula + // |a x b| = |a||b|sin(theta) + // which is + // float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0))); + // Because the z components of both vectors are zero, the x and y coordinate will be zero. + // Therefore, the sine of the angle is just the z component of the cross product. + vec2 u = -thisSegmentForwardWC; + vec2 v = leftWC; + float sinAngle = abs(u.x * v.y - u.y * v.x); + expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0); + } + + vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio; + return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w; +} + +vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle) +{ + vec4 positionEC = czm_modelViewRelativeToEye * position; + vec4 prevEC = czm_modelViewRelativeToEye * previous; + vec4 nextEC = czm_modelViewRelativeToEye * next; + return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle); +} +`;var hke=`#define CLIP_POLYLINE +${Sl} +${PW}`,fke=_T;function ET(e){e=e??B.EMPTY_OBJECT;let t=e.translucent??!0,n=!1,i=ET.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=e.vertexShaderSource??hke,this._fragmentShaderSource=e.fragmentShaderSource??fke,this._renderState=_o.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(ET.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});ET.VERTEX_FORMAT=Me.POSITION_ONLY;ET.prototype.getFragmentShaderSource=_o.prototype.getFragmentShaderSource;ET.prototype.isTranslucent=_o.prototype.isTranslucent;ET.prototype.getRenderState=_o.prototype.getRenderState;var Zs=ET;var rcn=x(T(),1);var Han=x(T(),1),XW=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec2 st; +in float batchId; + +out float v_width; +out vec2 v_st; +out float v_polylineAngle; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_width = width; + v_st.s = st.s; + v_st.t = czm_writeNonPerspective(st.t, gl_Position.w); + v_polylineAngle = angle; +} +`;var Jan=x(T(),1),LT=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec2 st = v_st; + st.t = czm_readNonPerspective(st.t, gl_FragCoord.w); + + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = vec3(st, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#ifdef VECTOR_TILE + out_FragColor *= u_highlightColor; +#endif + + czm_writeLogDepth(); +} +`;var pke=`#define CLIP_POLYLINE +${Sl} +${XW}`,bke=LT;function WT(e){e=e??B.EMPTY_OBJECT;let t=e.translucent??!0,n=!1,i=WT.VERTEX_FORMAT;this.material=l(e.material)?e.material:Di.fromType(Di.ColorType),this.translucent=t,this._vertexShaderSource=e.vertexShaderSource??pke,this._fragmentShaderSource=e.fragmentShaderSource??bke,this._renderState=_o.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(WT.prototype,{vertexShaderSource:{get:function(){let e=this._vertexShaderSource;return this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&(e=`#define POLYLINE_DASH +${e}`),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});WT.VERTEX_FORMAT=Me.POSITION_AND_ST;WT.prototype.getFragmentShaderSource=_o.prototype.getFragmentShaderSource;WT.prototype.isTranslucent=_o.prototype.isTranslucent;WT.prototype.getRenderState=_o.prototype.getRenderState;var Ka=WT;function Y0(e){e=e??B.EMPTY_OBJECT,this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;l(t)||(t=new Ka),this.appearance=t,this.show=e.show??!0,this.classificationType=e.classificationType??Kn.BOTH,this.debugShowBoundingVolume=e.debugShowBoundingVolume??!1,this._debugShowShadowVolume=e.debugShowShadowVolume??!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:e.interleave??!1,releaseGeometryInstances:e.releaseGeometryInstances??!0,allowPicking:e.allowPicking??!0,asynchronous:e.asynchronous??!0,compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1,this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=Jle(!1),this._renderState3DTiles=Jle(!0),this._renderStateMorph=Be.fromCache({cull:{enabled:!0,face:Ii.FRONT},depthTest:{enabled:!0},blending:nn.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(Y0.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}});Y0.initializeTerrainHeights=function(){return Vi.initialize()};function gke(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()(IW);s=Wn._appendShowToShader(o,s),s=Wn._appendDistanceDisplayConditionToShader(o,s),s=Wn._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()(FW);a=Wn._appendShowToShader(o,a),a=Wn._appendDistanceDisplayConditionToShader(o,a),a=Wn._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(WW),d=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],u="",m="";l(n.material)?(m=l(n.material)?n.material.shaderSource:"",m.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&d.push("ANGLE_VARYING"),m.search(/in\s+float\s+v_width;/g)!==-1&&d.push("WIDTH_VARYING")):u="PER_INSTANCE_COLOR",d.push(u);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",u]:[u],b=new He({defines:d,sources:[s]}),f=new He({defines:p,sources:[m,c]});e._sp=tn.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:b,fragmentShaderSource:f,attributeLocations:r});let y=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!l(y)){let S=new He({defines:d.concat(["COLUMBUS_VIEW_2D"]),sources:[s]});y=i.shaderCache.createDerivedShaderProgram(e._sp,"2dColor",{context:i,shaderProgram:e._sp2D,vertexShaderSource:S,fragmentShaderSource:f,attributeLocations:r})}e._sp2D=y;let _=i.shaderCache.getDerivedShaderProgram(e._sp,"MorphColor");if(!l(_)){let S=new He({defines:d.concat([`MAX_TERRAIN_HEIGHT ${Vi._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(vW);let A=new He({defines:p,sources:[m,c]});_=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:S,fragmentShaderSource:A,attributeLocations:r})}e._spMorph=_}function Jle(e){return Be.fromCache({cull:{enabled:!0},blending:nn.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Jn.EQUAL,frontOperation:{fail:Gt.KEEP,zFail:Gt.KEEP,zPass:Gt.KEEP},backFunction:Jn.EQUAL,backOperation:{fail:Gt.KEEP,zFail:Gt.KEEP,zPass:Gt.KEEP},reference:Kt.CESIUM_3D_TILE_MASK,mask:Kt.CESIUM_3D_TILE_MASK}})}function yke(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let d=t instanceof Zs?{}:n._uniforms,u=s._batchTable.getUniformMapCallback()(d);for(let m=0;m{!this._ready&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Y0.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Y0.isSupported=function(e){return e.frameState.context.depthTexture};Y0.prototype.isDestroyed=function(){return!1};Y0.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,he(this)};var _h=Y0;var rln=x(T(),1);var qcn=x(T(),1);var Bcn=x(T(),1);var Tke=new k(1,1),_ke=!1,Ske=U.WHITE;function AZ(e){e=e??B.EMPTY_OBJECT,this._definitionChanged=new Se,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}Object.defineProperties(AZ.prototype,{isConstant:{get:function(){return j.isConstant(this._image)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:xe("image"),repeat:xe("repeat"),color:xe("color"),transparent:xe("transparent")});AZ.prototype.getType=function(e){return"Image"};var Ake=new Q;AZ.prototype.getValue=function(e,t){return l(e)||(e=Q.now(Ake)),l(t)||(t={}),t.image=j.getValueOrUndefined(this._image,e),t.repeat=j.getValueOrClonedDefault(this._repeat,e,Tke,t.repeat),t.color=j.getValueOrClonedDefault(this._color,e,Ske,t.color),j.getValueOrDefault(this._transparent,e,_ke)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};AZ.prototype.equals=function(e){return this===e||e instanceof AZ&&j.equals(this._image,e._image)&&j.equals(this._repeat,e._repeat)&&j.equals(this._color,e._color)&&j.equals(this._transparent,e._transparent)};var qg=AZ;function Zke(e){if(e instanceof U)return new jt(e);if(typeof e=="string"||e instanceof We||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new qg;return t.image=e,t}}function Cke(e,t){return xe(e,t,Zke)}var Qo=Cke;function YW(e){this._definitionChanged=new Se,this._show=void 0,this._showSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(e??B.EMPTY_OBJECT)}Object.defineProperties(YW.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:xe("show"),dimensions:xe("dimensions"),heightReference:xe("heightReference"),fill:xe("fill"),material:Qo("material"),outline:xe("outline"),outlineColor:xe("outlineColor"),outlineWidth:xe("outlineWidth"),shadows:xe("shadows"),distanceDisplayCondition:xe("distanceDisplayCondition")});YW.prototype.clone=function(e){return l(e)?(e.show=this.show,e.dimensions=this.dimensions,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new YW(this)};YW.prototype.merge=function(e){this.show=this.show??e.show,this.dimensions=this.dimensions??e.dimensions,this.heightReference=this.heightReference??e.heightReference,this.fill=this.fill??e.fill,this.material=this.material??e.material,this.outline=this.outline??e.outline,this.outlineColor=this.outlineColor??e.outlineColor,this.outlineWidth=this.outlineWidth??e.outlineWidth,this.shadows=this.shadows??e.shadows,this.distanceDisplayCondition=this.distanceDisplayCondition??e.distanceDisplayCondition};var vT=YW;var Aln=x(T(),1);var aln=x(T(),1),Qle={FIXED:0,INERTIAL:1};Object.freeze(Qle);var Pi=Qle;var pln=x(T(),1);function ZZ(){Te.throwInstantiationError()}Object.defineProperties(ZZ.prototype,{isConstant:{get:Te.throwInstantiationError},definitionChanged:{get:Te.throwInstantiationError},referenceFrame:{get:Te.throwInstantiationError}});ZZ.prototype.getValue=Te.throwInstantiationError;ZZ.prototype.getValueInReferenceFrame=Te.throwInstantiationError;ZZ.prototype.equals=Te.throwInstantiationError;var qle=new $;ZZ.convertToReferenceFrame=function(e,t,n,i,o){if(!l(t))return t;if(l(o)||(o=new h),n===i)return h.clone(t,o);let r=xt.computeIcrfToCentralBodyFixedMatrix(e,qle);if(n===Pi.INERTIAL)return $.multiplyByVector(r,t,o);if(n===Pi.FIXED)return $.multiplyByVector($.transpose(r,qle),t,o)};var Sh=ZZ;function FT(e,t){this._definitionChanged=new Se,this._value=h.clone(e),this._referenceFrame=t??Pi.FIXED}Object.defineProperties(FT.prototype,{isConstant:{get:function(){return!l(this._value)||this._referenceFrame===Pi.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var Rke=new Q;FT.prototype.getValue=function(e,t){return l(e)||(e=Q.now(Rke)),this.getValueInReferenceFrame(e,Pi.FIXED,t)};FT.prototype.setValue=function(e,t){let n=!1;h.equals(this._value,e)||(n=!0,this._value=h.clone(e)),l(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};FT.prototype.getValueInReferenceFrame=function(e,t,n){return Sh.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};FT.prototype.equals=function(e){return this===e||e instanceof FT&&h.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var Al=FT;var Lln=x(T(),1);function NW(e){this._definitionChanged=new Se,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(e??B.EMPTY_OBJECT)}Object.defineProperties(NW.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:xe("show"),positions:xe("positions"),width:xe("width"),height:xe("height"),heightReference:xe("heightReference"),extrudedHeight:xe("extrudedHeight"),extrudedHeightReference:xe("extrudedHeightReference"),cornerType:xe("cornerType"),granularity:xe("granularity"),fill:xe("fill"),material:Qo("material"),outline:xe("outline"),outlineColor:xe("outlineColor"),outlineWidth:xe("outlineWidth"),shadows:xe("shadows"),distanceDisplayCondition:xe("distanceDisplayCondition"),classificationType:xe("classificationType"),zIndex:xe("zIndex")});NW.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new NW(this)};NW.prototype.merge=function(e){this.show=this.show??e.show,this.positions=this.positions??e.positions,this.width=this.width??e.width,this.height=this.height??e.height,this.heightReference=this.heightReference??e.heightReference,this.extrudedHeight=this.extrudedHeight??e.extrudedHeight,this.extrudedHeightReference=this.extrudedHeightReference??e.extrudedHeightReference,this.cornerType=this.cornerType??e.cornerType,this.granularity=this.granularity??e.granularity,this.fill=this.fill??e.fill,this.material=this.material??e.material,this.outline=this.outline??e.outline,this.outlineColor=this.outlineColor??e.outlineColor,this.outlineWidth=this.outlineWidth??e.outlineWidth,this.shadows=this.shadows??e.shadows,this.distanceDisplayCondition=this.distanceDisplayCondition??e.distanceDisplayCondition,this.classificationType=this.classificationType??e.classificationType,this.zIndex=this.zIndex??e.zIndex};var IT=NW;var Fln=x(T(),1);function Vke(e){return e}function Gke(e,t){return xe(e,t,Vke)}var Zl=Gke;var Mln=x(T(),1);function wW(e){this._definitionChanged=new Se,this._show=void 0,this._showSubscription=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(e??B.EMPTY_OBJECT)}Object.defineProperties(wW.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:xe("show"),length:xe("length"),topRadius:xe("topRadius"),bottomRadius:xe("bottomRadius"),heightReference:xe("heightReference"),fill:xe("fill"),material:Qo("material"),outline:xe("outline"),outlineColor:xe("outlineColor"),outlineWidth:xe("outlineWidth"),numberOfVerticalLines:xe("numberOfVerticalLines"),slices:xe("slices"),shadows:xe("shadows"),distanceDisplayCondition:xe("distanceDisplayCondition")});wW.prototype.clone=function(e){return l(e)?(e.show=this.show,e.length=this.length,e.topRadius=this.topRadius,e.bottomRadius=this.bottomRadius,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new wW(this)};wW.prototype.merge=function(e){this.show=this.show??e.show,this.length=this.length??e.length,this.topRadius=this.topRadius??e.topRadius,this.bottomRadius=this.bottomRadius??e.bottomRadius,this.heightReference=this.heightReference??e.heightReference,this.fill=this.fill??e.fill,this.material=this.material??e.material,this.outline=this.outline??e.outline,this.outlineColor=this.outlineColor??e.outlineColor,this.outlineWidth=this.outlineWidth??e.outlineWidth,this.numberOfVerticalLines=this.numberOfVerticalLines??e.numberOfVerticalLines,this.slices=this.slices??e.slices,this.shadows=this.shadows??e.shadows,this.distanceDisplayCondition=this.distanceDisplayCondition??e.distanceDisplayCondition};var PT=wW;var Hln=x(T(),1);function MW(e){this._definitionChanged=new Se,this._show=void 0,this._showSubscription=void 0,this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(e??B.EMPTY_OBJECT)}Object.defineProperties(MW.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:xe("show"),semiMajorAxis:xe("semiMajorAxis"),semiMinorAxis:xe("semiMinorAxis"),height:xe("height"),heightReference:xe("heightReference"),extrudedHeight:xe("extrudedHeight"),extrudedHeightReference:xe("extrudedHeightReference"),rotation:xe("rotation"),stRotation:xe("stRotation"),granularity:xe("granularity"),fill:xe("fill"),material:Qo("material"),outline:xe("outline"),outlineColor:xe("outlineColor"),outlineWidth:xe("outlineWidth"),numberOfVerticalLines:xe("numberOfVerticalLines"),shadows:xe("shadows"),distanceDisplayCondition:xe("distanceDisplayCondition"),classificationType:xe("classificationType"),zIndex:xe("zIndex")});MW.prototype.clone=function(e){return l(e)?(e.show=this.show,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new MW(this)};MW.prototype.merge=function(e){this.show=this.show??e.show,this.semiMajorAxis=this.semiMajorAxis??e.semiMajorAxis,this.semiMinorAxis=this.semiMinorAxis??e.semiMinorAxis,this.height=this.height??e.height,this.heightReference=this.heightReference??e.heightReference,this.extrudedHeight=this.extrudedHeight??e.extrudedHeight,this.extrudedHeightReference=this.extrudedHeightReference??e.extrudedHeightReference,this.rotation=this.rotation??e.rotation,this.stRotation=this.stRotation??e.stRotation,this.granularity=this.granularity??e.granularity,this.fill=this.fill??e.fill,this.material=this.material??e.material,this.outline=this.outline??e.outline,this.outlineColor=this.outlineColor??e.outlineColor,this.outlineWidth=this.outlineWidth??e.outlineWidth,this.numberOfVerticalLines=this.numberOfVerticalLines??e.numberOfVerticalLines,this.shadows=this.shadows??e.shadows,this.distanceDisplayCondition=this.distanceDisplayCondition??e.distanceDisplayCondition,this.classificationType=this.classificationType??e.classificationType,this.zIndex=this.zIndex??e.zIndex};var XT=MW;var edn=x(T(),1);function kW(e){this._definitionChanged=new Se,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._innerRadii=void 0,this._innerRadiiSubscription=void 0,this._minimumClock=void 0,this._minimumClockSubscription=void 0,this._maximumClock=void 0,this._maximumClockSubscription=void 0,this._minimumCone=void 0,this._minimumConeSubscription=void 0,this._maximumCone=void 0,this._maximumConeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(e??B.EMPTY_OBJECT)}Object.defineProperties(kW.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:xe("show"),radii:xe("radii"),innerRadii:xe("innerRadii"),minimumClock:xe("minimumClock"),maximumClock:xe("maximumClock"),minimumCone:xe("minimumCone"),maximumCone:xe("maximumCone"),heightReference:xe("heightReference"),fill:xe("fill"),material:Qo("material"),outline:xe("outline"),outlineColor:xe("outlineColor"),outlineWidth:xe("outlineWidth"),stackPartitions:xe("stackPartitions"),slicePartitions:xe("slicePartitions"),subdivisions:xe("subdivisions"),shadows:xe("shadows"),distanceDisplayCondition:xe("distanceDisplayCondition")});kW.prototype.clone=function(e){return l(e)?(e.show=this.show,e.radii=this.radii,e.innerRadii=this.innerRadii,e.minimumClock=this.minimumClock,e.maximumClock=this.maximumClock,e.minimumCone=this.minimumCone,e.maximumCone=this.maximumCone,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new kW(this)};kW.prototype.merge=function(e){this.show=this.show??e.show,this.radii=this.radii??e.radii,this.innerRadii=this.innerRadii??e.innerRadii,this.minimumClock=this.minimumClock??e.minimumClock,this.maximumClock=this.maximumClock??e.maximumClock,this.minimumCone=this.minimumCone??e.minimumCone,this.maximumCone=this.maximumCone??e.maximumCone,this.heightReference=this.heightReference??e.heightReference,this.fill=this.fill??e.fill,this.material=this.material??e.material,this.outline=this.outline??e.outline,this.outlineColor=this.outlineColor??e.outlineColor,this.outlineWidth=this.outlineWidth??e.outlineWidth,this.stackPartitions=this.stackPartitions??e.stackPartitions,this.slicePartitions=this.slicePartitions??e.slicePartitions,this.subdivisions=this.subdivisions??e.subdivisions,this.shadows=this.shadows??e.shadows,this.distanceDisplayCondition=this.distanceDisplayCondition??e.distanceDisplayCondition};var YT=kW;var sdn=x(T(),1);function UW(e){this._definitionChanged=new Se,this._show=void 0,this._showSubscription=void 0,this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(e??B.EMPTY_OBJECT)}Object.defineProperties(UW.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:xe("show"),text:xe("text"),font:xe("font"),style:xe("style"),scale:xe("scale"),showBackground:xe("showBackground"),backgroundColor:xe("backgroundColor"),backgroundPadding:xe("backgroundPadding"),pixelOffset:xe("pixelOffset"),eyeOffset:xe("eyeOffset"),horizontalOrigin:xe("horizontalOrigin"),verticalOrigin:xe("verticalOrigin"),heightReference:xe("heightReference"),fillColor:xe("fillColor"),outlineColor:xe("outlineColor"),outlineWidth:xe("outlineWidth"),translucencyByDistance:xe("translucencyByDistance"),pixelOffsetScaleByDistance:xe("pixelOffsetScaleByDistance"),scaleByDistance:xe("scaleByDistance"),distanceDisplayCondition:xe("distanceDisplayCondition"),disableDepthTestDistance:xe("disableDepthTestDistance")});UW.prototype.clone=function(e){return l(e)?(e.show=this.show,e.text=this.text,e.font=this.font,e.style=this.style,e.scale=this.scale,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.pixelOffset=this.pixelOffset,e.eyeOffset=this.eyeOffset,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.heightReference=this.heightReference,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new UW(this)};UW.prototype.merge=function(e){this.show=this.show??e.show,this.text=this.text??e.text,this.font=this.font??e.font,this.style=this.style??e.style,this.scale=this.scale??e.scale,this.showBackground=this.showBackground??e.showBackground,this.backgroundColor=this.backgroundColor??e.backgroundColor,this.backgroundPadding=this.backgroundPadding??e.backgroundPadding,this.pixelOffset=this.pixelOffset??e.pixelOffset,this.eyeOffset=this.eyeOffset??e.eyeOffset,this.horizontalOrigin=this.horizontalOrigin??e.horizontalOrigin,this.verticalOrigin=this.verticalOrigin??e.verticalOrigin,this.heightReference=this.heightReference??e.heightReference,this.fillColor=this.fillColor??e.fillColor,this.outlineColor=this.outlineColor??e.outlineColor,this.outlineWidth=this.outlineWidth??e.outlineWidth,this.translucencyByDistance=this.translucencyByDistance??e.translucencyByDistance,this.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance??e.pixelOffsetScaleByDistance,this.scaleByDistance=this.scaleByDistance??e.scaleByDistance,this.distanceDisplayCondition=this.distanceDisplayCondition??e.distanceDisplayCondition,this.disableDepthTestDistance=this.disableDepthTestDistance??e.disableDepthTestDistance};var Ah=UW;var Xdn=x(T(),1);var Tdn=x(T(),1);var udn=x(T(),1);var Eke=new h(1,1,1),Lke=h.ZERO,Wke=Ne.IDENTITY;function $le(e,t,n){this.translation=h.clone(e??Lke),this.rotation=Ne.clone(t??Wke),this.scale=h.clone(n??Eke)}$le.prototype.equals=function(e){return this===e||l(e)&&h.equals(this.translation,e.translation)&&Ne.equals(this.rotation,e.rotation)&&h.equals(this.scale,e.scale)};var $g=$le;var nj=new $g;function DW(e){e=e??B.EMPTY_OBJECT,this._definitionChanged=new Se,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=e.translation,this.rotation=e.rotation,this.scale=e.scale}Object.defineProperties(DW.prototype,{isConstant:{get:function(){return j.isConstant(this._translation)&&j.isConstant(this._rotation)&&j.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:xe("translation"),rotation:xe("rotation"),scale:xe("scale")});var vke=new Q;DW.prototype.getValue=function(e,t){return l(e)||(e=Q.now(vke)),l(t)||(t=new $g),t.translation=j.getValueOrClonedDefault(this._translation,e,nj.translation,t.translation),t.rotation=j.getValueOrClonedDefault(this._rotation,e,nj.rotation,t.rotation),t.scale=j.getValueOrClonedDefault(this._scale,e,nj.scale,t.scale),t};DW.prototype.equals=function(e){return this===e||e instanceof DW&&j.equals(this._translation,e._translation)&&j.equals(this._rotation,e._rotation)&&j.equals(this._scale,e._scale)};var NT=DW;var Gdn=x(T(),1);function N0(e,t){this._propertyNames=[],this._definitionChanged=new Se,l(e)&&this.merge(e,t)}Object.defineProperties(N0.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){let e=this._propertyNames;for(let t=0,n=e.length;t{this._terrainHeight=s.height,this.definitionChanged.raiseEvent()};this._removeCallbackFunc=e.updateHeight(i,r,this._heightReference)};var $ke=new Q;RZ.prototype.getValue=function(e,t){l(e)||(e=Q.now($ke));let n=j.getValueOrDefault(this._heightReference,e,st.NONE),i=j.getValueOrDefault(this._extrudedHeightReference,e,st.NONE);if(n===st.NONE&&!cZ(i))return this._position=h.clone(h.ZERO,this._position),h.clone(h.ZERO,t);if(this._positionProperty.isConstant)return h.multiplyByScalar(this._normal,this._terrainHeight,t);let o=this._scene,r=this._positionProperty.getValue(e,ode);if(!l(r)||h.equals(r,h.ZERO)||!l(o.globe))return h.clone(h.ZERO,t);if(h.equalsEpsilon(this._position,r,W.EPSILON10))return h.multiplyByScalar(this._normal,this._terrainHeight,t);this._position=h.clone(r,this._position),this._updateClamping();let s=o.ellipsoid.geodeticSurfaceNormal(r,this._normal);return h.multiplyByScalar(s,this._terrainHeight,t)};RZ.prototype.isDestroyed=function(){return!1};RZ.prototype.destroy=function(){return l(this._removeEventListener)&&this._removeEventListener(),l(this._removeModeListener)&&this._removeModeListener(),l(this._removeCallbackFunc)&&this._removeCallbackFunc(),he(this)};var UT=RZ;function e9e(e,t,n,i){if(Ai.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference;if(l(r)){let s=new Rh(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new UT(this._scene,s,r)}}var U0=e9e;var rde=h.ZERO,sde=new h,t9e=new h,ade=new U;function n9e(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function ou(e,t){Ai.call(this,{entity:e,scene:t,geometryOptions:new n9e(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}l(Object.create)&&(ou.prototype=Object.create(Ai.prototype),ou.prototype.constructor=ou);Object.defineProperties(ou.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});ou.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=Bn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof jt){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,ade)),l(a)||(a=U.WHITE),s.color=qt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,rde,sde))),new Pt({id:t,geometry:gc.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.ellipsoid),attributes:s})};ou.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,U.BLACK,ade),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,rde,sde))),new Pt({id:t,geometry:fh.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.ellipsoid),attributes:r})};ou.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};ou.prototype._isHidden=function(e,t){return!l(t.dimensions)||!l(e.position)||Ai.prototype._isHidden.call(this,e,t)};ou.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.dimensions.isConstant||!j.isConstant(t.outlineWidth)};ou.prototype._setStaticOptions=function(e,t){let n=j.getValueOrDefault(t.heightReference,qe.MINIMUM_VALUE,st.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof jt?pn.VERTEX_FORMAT:bo.MaterialSupport.TEXTURED.vertexFormat,i.dimensions=t.dimensions.getValue(qe.MINIMUM_VALUE,i.dimensions),i.offsetAttribute=n!==st.NONE?hn.ALL:void 0};ou.prototype._onEntityPropertyChanged=U0;ou.DynamicGeometryUpdater=VZ;function VZ(e,t,n){Si.call(this,e,t,n)}l(Object.create)&&(VZ.prototype=Object.create(Si.prototype),VZ.prototype.constructor=VZ);VZ.prototype._isHidden=function(e,t,n){let i=j.getValueOrUndefined(e.position,n,t9e),o=this._options.dimensions;return!l(i)||!l(o)||Si.prototype._isHidden.call(this,e,t,n)};VZ.prototype._setOptions=function(e,t,n){let i=j.getValueOrDefault(t.heightReference,n,st.NONE),o=this._options;o.dimensions=j.getValueOrUndefined(t.dimensions,n,o.dimensions),o.offsetAttribute=i!==st.NONE?hn.ALL:void 0};var tv=ou;var Hhn=x(T(),1);function DT(e,t,n){this._callback=void 0,this._isConstant=void 0,this._referenceFrame=n??Pi.FIXED,this._definitionChanged=new Se,this.setCallback(e,t)}Object.defineProperties(DT.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var i9e=new Q;DT.prototype.getValue=function(e,t){return l(e)||(e=Q.now(i9e)),this.getValueInReferenceFrame(e,Pi.FIXED,t)};DT.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};DT.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._callback(e,n);return Sh.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};DT.prototype.equals=function(e){return this===e||e instanceof DT&&this._callback===e._callback&&this._isConstant===e._isConstant&&this._referenceFrame===e._referenceFrame};var nv=DT;var rpi=x(T(),1);var Kfi=x(T(),1);var $hn=x(T(),1);var Jhn=x(T(),1);/*! @license DOMPurify 3.4.11 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.11/LICENSE */function cde(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n2?i-2:0),r=2;r1?n-1:0),o=1;o"u"?null:ia(BigInt.prototype.toString),fde=typeof Symbol>"u"?null:ia(Symbol.prototype.toString),Ja=ia(Object.prototype.hasOwnProperty),rv=ia(Object.prototype.toString),_c=ia(RegExp.prototype.test),OT=g9e(TypeError);function ia(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o2&&arguments[2]!==void 0?arguments[2]:sv;if(lde&&lde(e,null),!ty(t))return e;let i=t.length;for(;i--;){let o=t[i];if(typeof o=="string"){let r=n(o);r!==o&&(l9e(t)||(t[i]=r),o=r)}e[o]=!0}return e}function y9e(e){for(let t=0;t/g),C9e=Ac(/\${[\w\W]*/g),R9e=Ac(/^data-[\-\w.\u00B7-\uFFFF]+$/),V9e=Ac(/^aria-[\-\w]+$/),xde=Ac(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),G9e=Ac(/^(?:\w+script|data):/i),E9e=Ac(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),L9e=Ac(/^html$/i),W9e=Ac(/^[a-z][.\w]*(-[.\w]+)+$/i),Tde=Ac(/<[/\w!]/g),v9e=Ac(/<[/\w]/g),F9e=Ac(/<\/no(script|embed|frames)/i),I9e=Ac(/\/>/i),np={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},P9e=function(){return typeof window>"u"?null:window},X9e=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null,o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(i=n.getAttribute(o));let r="dompurify"+(i?"#"+i:"");try{return t.createPolicy(r,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+r+" could not be created."),null}},_de=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},ey=function(t,n,i,o){return Ja(t,n)&&ty(t[n])?go(o.base?Vl(o.base):{},t[n],o.transform):i};function Zde(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:P9e(),t=rt=>Zde(rt);if(t.version="3.4.11",t.removed=[],!e||!e.document||e.document.nodeType!==np.document||!e.Element)return t.isSupported=!1,t;let n=e.document,i=n,o=i.currentScript;e.DocumentFragment;let r=e.HTMLTemplateElement,s=e.Node,a=e.Element,c=e.NodeFilter,d=e.NamedNodeMap;d===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let u=e.DOMParser,m=e.trustedTypes,p=a.prototype,b=ip(p,"cloneNode"),f=ip(p,"remove"),y=ip(p,"nextSibling"),_=ip(p,"childNodes"),S=ip(p,"parentNode"),A=ip(p,"shadowRoot"),Z=ip(p,"attributes"),R=s&&s.prototype?ip(s.prototype,"nodeType"):null,G=s&&s.prototype?ip(s.prototype,"nodeName"):null;if(typeof r=="function"){let rt=n.createElement("template");rt.content&&rt.content.ownerDocument&&(n=rt.content.ownerDocument)}let E,v="",I,X=!1,Y=0,g=function(){if(Y>0)throw OT('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},C=function(be){g(),Y++;try{return E.createHTML(be)}finally{Y--}},V=function(be){g(),Y++;try{return E.createScriptURL(be)}finally{Y--}},L=function(){return X||(I=X9e(m,o),X=!0),I},P=n,N=P.implementation,O=P.createNodeIterator,M=P.createDocumentFragment,D=P.getElementsByTagName,w=i.importNode,z=_de();t.isSupported=typeof Sde=="function"&&typeof S=="function"&&N&&N.createHTMLDocument!==void 0;let K=A9e,ee=Z9e,H=C9e,te=R9e,q=V9e,de=G9e,ye=E9e,le=W9e,Ce=xde,ge=null,Ee=go({},[...pde,...sj,...aj,...cj,...bde]),Re=null,Xe=go({},[...gde,...lj,...yde,...g5]),we=Object.seal(EZ(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),nt=null,je=null,et=Object.seal(EZ(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Ie=!0,Oe=!0,St=!1,Et=!0,on=!1,Ot=!0,gt=!1,Wt=!1,Cn=null,dt=null,mt=!1,Qn=!1,Yn=!1,$i=!1,Ko=!0,mo=!1,so="user-content-",ti=!0,ni=!1,yn={},Mn=null,Vr=go({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),Is=null,Ps=go({},["audio","video","img","source","image","track"]),Xs=null,Ta=go({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Uo="http://www.w3.org/1998/Math/MathML",hi="http://www.w3.org/2000/svg",yo="http://www.w3.org/1999/xhtml",eo=yo,Ys=!1,Ei=null,Yo=go({},[Uo,hi,yo],rj),fc=Sc(["mi","mo","mn","ms","mtext"]),$r=go({},fc),jd=Sc(["annotation-xml"]),_a=go({},jd),Ig=go({},["title","style","font","a","script"]),_s=null,$s=["application/xhtml+xml","text/html"],Uf="text/html",ci=null,ea=null,Qd=n.createElement("form"),rd=function(be){return be instanceof RegExp||be instanceof Function},vo=function(){let be=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ea&&ea===be)return;(!be||typeof be!="object")&&(be={}),be=Vl(be),_s=$s.indexOf(be.PARSER_MEDIA_TYPE)===-1?Uf:be.PARSER_MEDIA_TYPE,ci=_s==="application/xhtml+xml"?rj:sv,ge=ey(be,"ALLOWED_TAGS",Ee,{transform:ci}),Re=ey(be,"ALLOWED_ATTR",Xe,{transform:ci}),Ei=ey(be,"ALLOWED_NAMESPACES",Yo,{transform:rj}),Xs=ey(be,"ADD_URI_SAFE_ATTR",Ta,{transform:ci,base:Ta}),Is=ey(be,"ADD_DATA_URI_TAGS",Ps,{transform:ci,base:Ps}),Mn=ey(be,"FORBID_CONTENTS",Vr,{transform:ci}),nt=ey(be,"FORBID_TAGS",Vl({}),{transform:ci}),je=ey(be,"FORBID_ATTR",Vl({}),{transform:ci}),yn=Ja(be,"USE_PROFILES")?be.USE_PROFILES&&typeof be.USE_PROFILES=="object"?Vl(be.USE_PROFILES):be.USE_PROFILES:!1,Ie=be.ALLOW_ARIA_ATTR!==!1,Oe=be.ALLOW_DATA_ATTR!==!1,St=be.ALLOW_UNKNOWN_PROTOCOLS||!1,Et=be.ALLOW_SELF_CLOSE_IN_ATTR!==!1,on=be.SAFE_FOR_TEMPLATES||!1,Ot=be.SAFE_FOR_XML!==!1,gt=be.WHOLE_DOCUMENT||!1,Qn=be.RETURN_DOM||!1,Yn=be.RETURN_DOM_FRAGMENT||!1,$i=be.RETURN_TRUSTED_TYPE||!1,mt=be.FORCE_BODY||!1,Ko=be.SANITIZE_DOM!==!1,mo=be.SANITIZE_NAMED_PROPS||!1,ti=be.KEEP_CONTENT!==!1,ni=be.IN_PLACE||!1,Ce=T9e(be.ALLOWED_URI_REGEXP)?be.ALLOWED_URI_REGEXP:xde,eo=typeof be.NAMESPACE=="string"?be.NAMESPACE:yo,$r=Ja(be,"MATHML_TEXT_INTEGRATION_POINTS")&&be.MATHML_TEXT_INTEGRATION_POINTS&&typeof be.MATHML_TEXT_INTEGRATION_POINTS=="object"?Vl(be.MATHML_TEXT_INTEGRATION_POINTS):go({},fc),_a=Ja(be,"HTML_INTEGRATION_POINTS")&&be.HTML_INTEGRATION_POINTS&&typeof be.HTML_INTEGRATION_POINTS=="object"?Vl(be.HTML_INTEGRATION_POINTS):go({},jd);let Ye=Ja(be,"CUSTOM_ELEMENT_HANDLING")&&be.CUSTOM_ELEMENT_HANDLING&&typeof be.CUSTOM_ELEMENT_HANDLING=="object"?Vl(be.CUSTOM_ELEMENT_HANDLING):EZ(null);if(we=EZ(null),Ja(Ye,"tagNameCheck")&&rd(Ye.tagNameCheck)&&(we.tagNameCheck=Ye.tagNameCheck),Ja(Ye,"attributeNameCheck")&&rd(Ye.attributeNameCheck)&&(we.attributeNameCheck=Ye.attributeNameCheck),Ja(Ye,"allowCustomizedBuiltInElements")&&typeof Ye.allowCustomizedBuiltInElements=="boolean"&&(we.allowCustomizedBuiltInElements=Ye.allowCustomizedBuiltInElements),Ac(we),on&&(Oe=!1),Yn&&(Qn=!0),yn&&(ge=go({},bde),Re=EZ(null),yn.html===!0&&(go(ge,pde),go(Re,gde)),yn.svg===!0&&(go(ge,sj),go(Re,lj),go(Re,g5)),yn.svgFilters===!0&&(go(ge,aj),go(Re,lj),go(Re,g5)),yn.mathMl===!0&&(go(ge,cj),go(Re,yde),go(Re,g5))),et.tagCheck=null,et.attributeCheck=null,Ja(be,"ADD_TAGS")&&(typeof be.ADD_TAGS=="function"?et.tagCheck=be.ADD_TAGS:ty(be.ADD_TAGS)&&(ge===Ee&&(ge=Vl(ge)),go(ge,be.ADD_TAGS,ci))),Ja(be,"ADD_ATTR")&&(typeof be.ADD_ATTR=="function"?et.attributeCheck=be.ADD_ATTR:ty(be.ADD_ATTR)&&(Re===Xe&&(Re=Vl(Re)),go(Re,be.ADD_ATTR,ci))),Ja(be,"ADD_URI_SAFE_ATTR")&&ty(be.ADD_URI_SAFE_ATTR)&&go(Xs,be.ADD_URI_SAFE_ATTR,ci),Ja(be,"FORBID_CONTENTS")&&ty(be.FORBID_CONTENTS)&&(Mn===Vr&&(Mn=Vl(Mn)),go(Mn,be.FORBID_CONTENTS,ci)),Ja(be,"ADD_FORBID_CONTENTS")&&ty(be.ADD_FORBID_CONTENTS)&&(Mn===Vr&&(Mn=Vl(Mn)),go(Mn,be.ADD_FORBID_CONTENTS,ci)),ti&&(ge["#text"]=!0),gt&&go(ge,["html","head","body"]),ge.table&&(go(ge,["tbody"]),delete nt.tbody),be.TRUSTED_TYPES_POLICY){if(typeof be.TRUSTED_TYPES_POLICY.createHTML!="function")throw OT('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof be.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw OT('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let ft=E;E=be.TRUSTED_TYPES_POLICY;try{v=C("")}catch(Jt){throw E=ft,Jt}}else be.TRUSTED_TYPES_POLICY===null?(E=void 0,v=""):(E===void 0&&(E=L()),E&&typeof v=="string"&&(v=C("")));Sc&&Sc(be),ea=be},sd=go({},[...sj,...aj,..._9e]),Pg=go({},[...cj,...S9e]),cU=function(be,Ye,ft){return Ye.namespaceURI===yo?be==="svg":Ye.namespaceURI===Uo?be==="svg"&&(ft==="annotation-xml"||$r[ft]):!!sd[be]},SH=function(be,Ye,ft){return Ye.namespaceURI===yo?be==="math":Ye.namespaceURI===hi?be==="math"&&_a[ft]:!!Pg[be]},_V=function(be,Ye,ft){return Ye.namespaceURI===hi&&!_a[ft]||Ye.namespaceURI===Uo&&!$r[ft]?!1:!Pg[be]&&(Ig[be]||!sd[be])},AH=function(be){let Ye=S(be);(!Ye||!Ye.tagName)&&(Ye={namespaceURI:eo,tagName:"template"});let ft=sv(be.tagName),Jt=sv(Ye.tagName);return Ei[be.namespaceURI]?be.namespaceURI===hi?cU(ft,Ye,Jt):be.namespaceURI===Uo?SH(ft,Ye,Jt):be.namespaceURI===yo?_V(ft,Ye,Jt):!!(_s==="application/xhtml+xml"&&Ei[be.namespaceURI]):!1},Df=function(be){GZ(t.removed,{element:be});try{S(be).removeChild(be)}catch{if(f(be),!S(be))throw OT("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},lU=function(be){let Ye=_(be);if(Ye){let Jt=[];iv(Ye,Fn=>{GZ(Jt,Fn)}),iv(Jt,Fn=>{try{f(Fn)}catch{}})}let ft=Z(be);if(ft)for(let Jt=ft.length-1;Jt>=0;--Jt){let Fn=ft[Jt],oi=Fn&&Fn.name;if(typeof oi=="string")try{be.removeAttribute(oi)}catch{}}},g0=function(be,Ye){try{GZ(t.removed,{attribute:Ye.getAttributeNode(be),from:Ye})}catch{GZ(t.removed,{attribute:null,from:Ye})}if(Ye.removeAttribute(be),be==="is")if(Qn||Yn)try{Df(Ye)}catch{}else try{Ye.setAttribute(be,"")}catch{}},ZH=function(be){let Ye=Z(be);if(Ye)for(let ft=Ye.length-1;ft>=0;--ft){let Jt=Ye[ft],Fn=Jt&&Jt.name;if(!(typeof Fn!="string"||Re[ci(Fn)]))try{be.removeAttribute(Fn)}catch{}}},SV=function(be){let Ye=[be];for(;Ye.length>0;){let ft=Ye.pop();(R?R(ft):ft.nodeType)===np.element&&ZH(ft);let Fn=_(ft);if(Fn)for(let oi=Fn.length-1;oi>=0;--oi)Ye.push(Fn[oi])}},AV=function(be){let Ye=null,ft=null;if(mt)be=""+be;else{let oi=ude(be,/^[\r\n\t ]+/);ft=oi&&oi[0]}_s==="application/xhtml+xml"&&eo===yo&&(be=''+be+"");let Jt=E?C(be):be;if(eo===yo)try{Ye=new u().parseFromString(Jt,_s)}catch{}if(!Ye||!Ye.documentElement){Ye=N.createDocument(eo,"template",null);try{Ye.documentElement.innerHTML=Ys?v:Jt}catch{}}let Fn=Ye.body||Ye.documentElement;return be&&ft&&Fn.insertBefore(n.createTextNode(ft),Fn.childNodes[0]||null),eo===yo?D.call(Ye,gt?"html":"body")[0]:gt?Ye.documentElement:Fn},DA=function(be){return O.call(be.ownerDocument||be,be,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},OA=function(be){return be=ov(be,K," "),be=ov(be,ee," "),be=ov(be,H," "),be},BA=function(be){var Ye;be.normalize();let ft=O.call(be.ownerDocument||be,be,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),Jt=ft.nextNode();for(;Jt;)Jt.data=OA(Jt.data),Jt=ft.nextNode();let Fn=(Ye=be.querySelectorAll)===null||Ye===void 0?void 0:Ye.call(be,"template");Fn&&iv(Fn,oi=>{fl(oi.content)&&BA(oi.content)})},Xg=function(be){let Ye=G?G(be):null;return typeof Ye!="string"||ci(Ye)!=="form"?!1:typeof be.nodeName!="string"||typeof be.textContent!="string"||typeof be.removeChild!="function"||be.attributes!==Z(be)||typeof be.removeAttribute!="function"||typeof be.setAttribute!="function"||typeof be.namespaceURI!="string"||typeof be.insertBefore!="function"||typeof be.hasChildNodes!="function"||be.nodeType!==R(be)||be.childNodes!==_(be)},fl=function(be){if(!R||typeof be!="object"||be===null)return!1;try{return R(be)===np.documentFragment}catch{return!1}},Of=function(be){if(!R||typeof be!="object"||be===null)return!1;try{return typeof R(be)=="number"}catch{return!1}};function ju(rt,be,Ye){rt.length!==0&&iv(rt,ft=>{ft.call(t,be,Ye,ea)})}let CH=function(be,Ye){return!!(Ot&&be.hasChildNodes()&&!Of(be.firstElementChild)&&_c(Tde,be.textContent)&&_c(Tde,be.innerHTML)||Ot&&be.namespaceURI===yo&&Ye==="style"&&Of(be.firstElementChild)||be.nodeType===np.processingInstruction||Ot&&be.nodeType===np.comment&&_c(v9e,be.data))},zA=function(be,Ye){if(!nt[Ye]&&Ge(Ye)&&(we.tagNameCheck instanceof RegExp&&_c(we.tagNameCheck,Ye)||we.tagNameCheck instanceof Function&&we.tagNameCheck(Ye)))return!1;if(ti&&!Mn[Ye]){let ft=S(be),Jt=_(be);if(Jt&&ft){let Fn=Jt.length;for(let oi=Fn-1;oi>=0;--oi){let Jo=ni?Jt[oi]:b(Jt[oi],!0);ft.insertBefore(Jo,y(be))}}}return Df(be),!0},me=function(be){if(ju(z.beforeSanitizeElements,be,null),Xg(be))return Df(be),!0;let Ye=ci(G?G(be):be.nodeName);if(ju(z.uponSanitizeElement,be,{tagName:Ye,allowedTags:ge}),CH(be,Ye))return Df(be),!0;if(nt[Ye]||!(et.tagCheck instanceof Function&&et.tagCheck(Ye))&&!ge[Ye])return zA(be,Ye);if((R?R(be):be.nodeType)===np.element&&!AH(be)||(Ye==="noscript"||Ye==="noembed"||Ye==="noframes")&&_c(F9e,be.innerHTML))return Df(be),!0;if(on&&be.nodeType===np.text){let Jt=OA(be.textContent);be.textContent!==Jt&&(GZ(t.removed,{element:be.cloneNode()}),be.textContent=Jt)}return ju(z.afterSanitizeElements,be,null),!1},oe=function(be,Ye,ft){if(je[Ye]||Ko&&(Ye==="id"||Ye==="name")&&(ft in n||ft in Qd))return!1;let Jt=Re[Ye]||et.attributeCheck instanceof Function&&et.attributeCheck(Ye,be);if(!(Oe&&_c(te,Ye))){if(!(Ie&&_c(q,Ye))){if(Jt){if(!Xs[Ye]){if(!_c(Ce,ov(ft,ye,""))){if(!((Ye==="src"||Ye==="xlink:href"||Ye==="href")&&be!=="script"&&mde(ft,"data:")===0&&Is[be])){if(!(St&&!_c(de,ov(ft,ye,"")))){if(ft)return!1}}}}}else if(!(Ge(be)&&(we.tagNameCheck instanceof RegExp&&_c(we.tagNameCheck,be)||we.tagNameCheck instanceof Function&&we.tagNameCheck(be))&&(we.attributeNameCheck instanceof RegExp&&_c(we.attributeNameCheck,Ye)||we.attributeNameCheck instanceof Function&&we.attributeNameCheck(Ye,be))||Ye==="is"&&we.allowCustomizedBuiltInElements&&(we.tagNameCheck instanceof RegExp&&_c(we.tagNameCheck,ft)||we.tagNameCheck instanceof Function&&we.tagNameCheck(ft))))return!1}}return!0},Ae=go({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Ge=function(be){return!Ae[sv(be)]&&_c(le,be)},Ke=function(be,Ye,ft,Jt){if(E&&typeof m=="object"&&typeof m.getAttributeType=="function"&&!ft)switch(m.getAttributeType(be,Ye)){case"TrustedHTML":return C(Jt);case"TrustedScriptURL":return V(Jt)}return Jt},Ct=function(be,Ye,ft,Jt){try{ft?be.setAttributeNS(ft,Ye,Jt):be.setAttribute(Ye,Jt),Xg(be)?Df(be):dde(t.removed)}catch{g0(Ye,be)}},ht=function(be){ju(z.beforeSanitizeAttributes,be,null);let Ye=be.attributes;if(!Ye||Xg(be))return;let ft={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Re,forceKeepAttr:void 0},Jt=Ye.length,Fn=ci(be.nodeName);for(;Jt--;){let oi=Ye[Jt],Jo=oi.name,pr=oi.namespaceURI,br=oi.value,pc=ci(Jo),tT=br,ka=Jo==="value"?tT:f9e(tT);if(ft.attrName=pc,ft.attrValue=ka,ft.keepAttr=!0,ft.forceKeepAttr=void 0,ju(z.uponSanitizeAttribute,be,ft),ka=ft.attrValue,mo&&(pc==="id"||pc==="name")&&mde(ka,so)!==0&&(g0(Jo,be),ka=so+ka),Ot&&_c(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,ka)){g0(Jo,be);continue}if(pc==="attributename"&&ude(ka,"href")){g0(Jo,be);continue}if(!ft.forceKeepAttr){if(!ft.keepAttr){g0(Jo,be);continue}if(!Et&&_c(I9e,ka)){g0(Jo,be);continue}if(on&&(ka=OA(ka)),!oe(Fn,pc,ka)){g0(Jo,be);continue}ka=Ke(Fn,pc,pr,ka),ka!==tT&&Ct(be,Jo,pr,ka)}}ju(z.afterSanitizeAttributes,be,null)},At=function(be){let Ye=null,ft=DA(be);for(ju(z.beforeSanitizeShadowDOM,be,null);Ye=ft.nextNode();)if(ju(z.uponSanitizeShadowNode,Ye,null),me(Ye),ht(Ye),fl(Ye.content)&&At(Ye.content),(R?R(Ye):Ye.nodeType)===np.element){let Fn=A(Ye);fl(Fn)&&(bn(Fn),At(Fn))}ju(z.afterSanitizeShadowDOM,be,null)},bn=function(be){let Ye=[{node:be,shadow:null}];for(;Ye.length>0;){let ft=Ye.pop();if(ft.shadow){At(ft.shadow);continue}let Jt=ft.node,oi=(R?R(Jt):Jt.nodeType)===np.element,Jo=_(Jt);if(Jo)for(let pr=Jo.length-1;pr>=0;--pr)Ye.push({node:Jo[pr],shadow:null});if(oi){let pr=G?G(Jt):null;if(typeof pr=="string"&&ci(pr)==="template"){let br=Jt.content;fl(br)&&Ye.push({node:br,shadow:null})}}if(oi){let pr=A(Jt);fl(pr)&&Ye.push({node:null,shadow:pr},{node:pr,shadow:null})}}};return t.sanitize=function(rt){let be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ye=null,ft=null,Jt=null,Fn=null;if(Ys=!rt,Ys&&(rt=""),typeof rt!="string"&&!Of(rt)&&(rt=x9e(rt),typeof rt!="string"))throw OT("dirty is not a string, aborting");if(!t.isSupported)return rt;Wt?(ge=Cn,Re=dt):vo(be),(z.uponSanitizeElement.length>0||z.uponSanitizeAttribute.length>0)&&(ge=Vl(ge)),z.uponSanitizeAttribute.length>0&&(Re=Vl(Re)),t.removed=[];let oi=ni&&typeof rt!="string"&&Of(rt);if(oi){let br=G?G(rt):rt.nodeName;if(typeof br=="string"){let pc=ci(br);if(!ge[pc]||nt[pc])throw OT("root node is forbidden and cannot be sanitized in-place")}if(Xg(rt))throw OT("root node is clobbered and cannot be sanitized in-place");try{bn(rt)}catch(pc){throw lU(rt),pc}}else if(Of(rt))Ye=AV(""),ft=Ye.ownerDocument.importNode(rt,!0),ft.nodeType===np.element&&ft.nodeName==="BODY"||ft.nodeName==="HTML"?Ye=ft:Ye.appendChild(ft),bn(ft);else{if(!Qn&&!on&&!gt&&rt.indexOf("<")===-1)return E&&$i?C(rt):rt;if(Ye=AV(rt),!Ye)return Qn?null:$i?v:""}Ye&&mt&&Df(Ye.firstChild);let Jo=DA(oi?rt:Ye);try{for(;Jt=Jo.nextNode();)me(Jt),ht(Jt),fl(Jt.content)&&At(Jt.content)}catch(br){throw oi&&lU(rt),br}if(oi)return iv(t.removed,br=>{br.element&&SV(br.element)}),on&&BA(rt),rt;if(Qn){if(on&&BA(Ye),Yn)for(Fn=M.call(Ye.ownerDocument);Ye.firstChild;)Fn.appendChild(Ye.firstChild);else Fn=Ye;return(Re.shadowroot||Re.shadowrootmode)&&(Fn=w.call(i,Fn,!0)),Fn}let pr=gt?Ye.outerHTML:Ye.innerHTML;return gt&&ge["!doctype"]&&Ye.ownerDocument&&Ye.ownerDocument.doctype&&Ye.ownerDocument.doctype.name&&_c(L9e,Ye.ownerDocument.doctype.name)&&(pr=" +`+pr),on&&(pr=OA(pr)),E&&$i?C(pr):pr},t.setConfig=function(){let rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};vo(rt),Wt=!0,Cn=ge,dt=Re},t.clearConfig=function(){ea=null,Wt=!1,Cn=null,dt=null,E=I,v=""},t.isValidAttribute=function(rt,be,Ye){ea||vo({});let ft=ci(rt),Jt=ci(be);return oe(ft,Jt,Ye)},t.addHook=function(rt,be){typeof be=="function"&&Ja(z,rt)&&GZ(z[rt],be)},t.removeHook=function(rt,be){if(Ja(z,rt)){if(be!==void 0){let Ye=m9e(z[rt],be);return Ye===-1?void 0:h9e(z[rt],Ye,1)[0]}return dde(z[rt])}},t.removeHooks=function(rt){Ja(z,rt)&&(z[rt]=[])},t.removeAllHooks=function(){z=_de()},t}var Cde=Zde();var Y9e=0,mj={},hj=class e{constructor(t,n){let i,o=t;l(mj[o])?i=mj[o]:(i=Y9e++,mj[o]=i),n=n??!1,this._id=i,this._html=t,this._showOnScreen=n,this._element=void 0}get html(){return this._html}get id(){return this._id}get showOnScreen(){return this._showOnScreen}set showOnScreen(t){this._showOnScreen=t}get element(){if(!l(this._element)){let t=Cde.sanitize(this._html),n=document.createElement("div");n.className="cesium-credit-wrapper",n._creditId=this._id,n.style.display="inline",n.innerHTML=t;let i=n.querySelectorAll("a");for(let o=0;o{u[m]=void 0});for(let m=r;m0||this._imageBasedLightingFactor.y>0}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},specularEnvironmentCubeMap:{get:function(){return this._specularEnvironmentCubeMap}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.ready||this._useDefaultSpecularMaps}}});function w9e(e,t){if(Vh.isSupported(t)){if(e._specularEnvironmentCubeMap=e._specularEnvironmentCubeMap&&e._specularEnvironmentCubeMap.destroy(),l(e._specularEnvironmentMaps)){let n=new Vh(e._specularEnvironmentMaps);e._specularEnvironmentCubeMap=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}av.prototype.update=function(e){if(e.frameNumber===this._previousFrameNumber&&e.context===this._previousFrameContext)return;this._previousFrameNumber=e.frameNumber;let t=this._previousFrameContext=e.context;e.brdfLutGenerator.update(e),this._shouldRegenerateShaders=!1;let n=this._imageBasedLightingFactor,i=this._previousImageBasedLightingFactor;k.equals(n,i)||(this._shouldRegenerateShaders=n.x>0&&i.x===0||n.x===0&&i.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||n.y>0&&i.y===0||n.y===0&&i.y>0,this._previousImageBasedLightingFactor=k.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._previousSphericalHarmonicCoefficients)!==l(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentCubeMapDirty&&(w9e(this,t),this._specularEnvironmentCubeMapDirty=!1),l(this._specularEnvironmentCubeMap)&&(this._specularEnvironmentCubeMap.update(e),this._specularEnvironmentCubeMap.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!l(this._specularEnvironmentCubeMap)&&l(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!l(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!l(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!l(this._specularEnvironmentCubeMap)&&l(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)};av.prototype.isDestroyed=function(){return!1};av.prototype.destroy=function(){return this._specularEnvironmentCubeMap=this._specularEnvironmentCubeMap&&this._specularEnvironmentCubeMap.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),he(this)};var zT=av;var Ffn=x(T(),1),bj=x(qd(),1);var Cfn=x(T(),1);var pj,Rde="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzNzRjZTkzNC05M2UwLTRlNDItOWU0My1hYjk5YjFiNTNhYTMiLCJpZCI6MjU5LCJzdWIiOiJDZXNpdW1KUyIsImlzcyI6Imh0dHBzOi8vYXBpLmNlc2l1bS5jb20iLCJhdWQiOiIxLjE0MyBSZWxlYXNlIC0gRGVsZXRlIG9uIFNlcHRlbWJlciAxLCAyMDI2IiwiaWF0IjoxNzgyMzY4NzY4fQ.kDcFqK7jTTloOcBbwb-epSQGd1Lu12_hRuqk1XRE_H8",y5={};y5.defaultAccessToken=Rde;y5.defaultServer=new We({url:"https://api.cesium.com/"});y5.getDefaultTokenCredit=function(e){if(e===Rde){if(!l(pj)){let t=` This application is using Cesium's default ion access token. Please assign Cesium.Ion.defaultAccessToken with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at https://cesium.com.`;pj=new Rt(t,!0)}return pj}};var Gh=y5;function Gl(e,t){let n,i=e.externalType,o=l(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:M9e};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new ae("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");We.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new bj.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o,this.refreshCallback=void 0}l(Object.create)&&(Gl.prototype=Object.create(We.prototype),Gl.prototype.constructor=Gl);Gl.fromAssetId=function(e,t){let n=Gl._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new Gl(i,n)})};Object.defineProperties(Gl.prototype,{credits:{get:function(){return l(this._ionRoot)?this._ionRoot.credits:l(this._credits)?this._credits:(this._credits=Gl.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});Gl.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(Rt.getIonCredit),i=Gh.getDefaultTokenCredit(t.queryParameters.access_token);return l(i)&&n.push(Rt.clone(i)),n};Gl.prototype.clone=function(e){let t=this._ionRoot??this;return l(e)||(e=new Gl(t._ionEndpoint,t._ionEndpointResource)),e=We.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};Gl.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},l(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return We.prototype.fetchImage.call(this,e)};Gl.prototype._makeRequest=function(e){return this._isExternal||new bj.default(this.url).authority()!==this._ionEndpointDomain?We.prototype._makeRequest.call(this,e):(e.headers=Vde(e.headers),e.headers.Authorization=`Bearer ${this._ionEndpoint.accessToken}`,We.prototype._makeRequest.call(this,e))};Gl._createEndpointResource=function(e,t){t=t??B.EMPTY_OBJECT;let n=t.server??Gh.defaultServer,i=t.accessToken??Gh.defaultAccessToken;n=We.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return l(i)&&(o.queryParameters={access_token:i}),l(t.queryParameters)&&(o.queryParameters={...o.queryParameters,...t.queryParameters}),o.headers=Vde(o.headers),n.getDerivedResource(o)};function Vde(e={}){return e["X-Cesium-Client"]="CesiumJS",typeof CESIUM_VERSION<"u"&&(e["X-Cesium-Client-Version"]=CESIUM_VERSION),e}function M9e(e,t){let n=e._ionRoot??e,i=n._ionEndpointResource,o=typeof Image<"u";return!l(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(l(n._pendingPromise)||(n._pendingPromise=i.fetchJson().then(function(r){let s=e.refreshCallback??n.refreshCallback;return l(s)&&s(n,r),n._ionEndpoint=r,n._ionEndpoint}).finally(function(r){return n._pendingPromise=void 0,r})),n._pendingPromise.then(function(r){return e._ionEndpoint=r,!0}))}var os=Gl;var Pfn=x(T(),1);function op(e){e=e??0,this._array=new Array(e),this._length=e}Object.defineProperties(op.prototype,{length:{get:function(){return this._length},set:function(e){let t=this._array,n=this._length;if(et.length&&(t.length=e);this._length=e}},values:{get:function(){return this._array}}});op.prototype.get=function(e){return this._array[e]};op.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};op.prototype.peek=function(){return this._array[this._length-1]};op.prototype.push=function(e){let t=this.length++;this._array[t]=e};op.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};op.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};op.prototype.resize=function(e){this.length=e};op.prototype.trim=function(e){e=e??this._length,this._array.length=e};var El=op;var wfn=x(T(),1);function x5(e){e=e??B.EMPTY_OBJECT,this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}x5.ALL=Object.freeze(new x5({color:new U(0,0,0,0),depth:1,stencil:0}));x5.prototype.execute=function(e,t){e.clear(this,t)};var mi=x5;var Dfn=x(T(),1);var rp={X:0,Y:1,Z:2};rp.Y_UP_TO_Z_UP=F.fromRotationTranslation($.fromArray([1,0,0,0,0,1,0,-1,0]));rp.Z_UP_TO_Y_UP=F.fromRotationTranslation($.fromArray([1,0,0,0,0,-1,0,1,0]));rp.X_UP_TO_Z_UP=F.fromRotationTranslation($.fromArray([0,0,1,0,1,0,-1,0,0]));rp.Z_UP_TO_X_UP=F.fromRotationTranslation($.fromArray([0,0,-1,0,1,0,1,0,0]));rp.X_UP_TO_Y_UP=F.fromRotationTranslation($.fromArray([0,1,0,-1,0,0,0,0,1]));rp.Y_UP_TO_X_UP=F.fromRotationTranslation($.fromArray([0,-1,0,1,0,0,0,0,1]));rp.fromName=function(e){return rp[e]};Object.freeze(rp);var Xi=rp;var qui=x(T(),1);var jfn=x(T(),1);function dm(e){this.planes=e??[]}var cv=[new h,new h,new h];h.clone(h.UNIT_X,cv[0]);h.clone(h.UNIT_Y,cv[1]);h.clone(h.UNIT_Z,cv[2]);var ny=new h,k9e=new h,Gde=new sn(new h(1,0,0),0);dm.fromBoundingSphere=function(e,t){l(t)||(t=new dm);let n=cv.length,i=t.planes;i.length=2*n;let o=e.center,r=e.radius,s=0;for(let a=0;a>10)+55296,(r&1023)+56320))}return t};function lv(e,t,n){return t<=e&&e<=n}function B9e(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c0){let o=Math.min(t,Xt.maximumTextureSize),r=Math.ceil(t/Xt.maximumTextureSize),s=1/o,a=s*.5,c=1/r,d=c*.5;n=new k(o,r),i=new ce(s,a,c,d)}this._translucentFeaturesLength=0,this._featuresLength=t,this._textureDimensions=n,this._textureStep=i,this._owner=e.owner,this._statistics=e.statistics,this._colorChangedCallback=e.colorChangedCallback}Object.defineProperties(Oc.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return l(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),l(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}},textureDimensions:{get:function(){return this._textureDimensions}},textureStep:{get:function(){return this._textureStep}},batchTexture:{get:function(){return this._batchTexture}},defaultTexture:{get:function(){return this._defaultTexture}},pickTexture:{get:function(){return this._pickTexture}}});Oc.DEFAULT_COLOR_VALUE=U.WHITE;Oc.DEFAULT_SHOW_VALUE=!0;function Wde(e){let t=e._textureDimensions;return t.x*t.y*4}function vde(e){if(!l(e._batchValues)){let t=Wde(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function Fde(e){if(!l(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}Oc.prototype.setShow=function(e,t){if(t&&!l(this._showAlphaProperties))return;let n=Fde(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=vde(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};Oc.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n0){let i=e._pickIds,o=Wde(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c0;){if(t=u.pop(),c[t]===d)continue;c[t]=d;let m=n(e,t);if(l(m))return m;let p=o[t],b=s[t];for(let f=0;f0?(s="",e&&(s+=`uniform bool tile_translucentCommand; +`),s+=`uniform sampler2D tile_batchTexture; +out vec4 tile_featureColor; +out vec2 tile_featureSt; +void main() +{ + vec2 st = computeSt(${t}); + vec4 featureProperties = texture(tile_batchTexture, st); + tile_color(featureProperties); + float show = ceil(featureProperties.a); + gl_Position *= show; +`,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + gl_Position *= 0.0; + } + } + else + { + if (isStyleTranslucent) + { + gl_Position *= 0.0; + } + } +`),s+=` tile_featureColor = featureProperties; + tile_featureSt = st; +}`):s=`out vec2 tile_featureSt; +void main() +{ + tile_color(vec4(1.0)); + tile_featureSt = computeSt(${t}); +}`,`${r} +${bUe(i)}${s}`}};function Xde(e,t){return e=He.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend; +void tile_color(vec4 tile_featureColor) +{ + tile_main(); + tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +} +`:`${e}void tile_color(vec4 tile_featureColor) +{ + tile_main(); +} +`}function gUe(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let d=o;d0?(i+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_color(tile_featureColor); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand; +`),i+=`uniform sampler2D tile_pickTexture; +uniform sampler2D tile_batchTexture; +in vec2 tile_featureSt; +void main() +{ + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } +`,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + discard; + } + } + else + { + if (isStyleTranslucent) + { + discard; + } + } +`),i+=` tile_color(featureProperties); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+=`} +`),i}};function yUe(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===bd.HIGHLIGHT)return 0;if(n===bd.REPLACE)return 1;if(n===bd.MIX)return W.clamp(i,W.EPSILON4,1)}wo.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return vt(t,{tile_batchTexture:function(){return e._batchTexture.batchTexture??e._batchTexture.defaultTexture},tile_textureDimensions:function(){return e._batchTexture.textureDimensions},tile_textureStep:function(){return e._batchTexture.textureStep},tile_colorBlend:function(){return yUe(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};wo.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var ry={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};wo.prototype.addDerivedCommands=function(e,t){let n=e.commandList,i=n.length,o=this._content._tile,r=o._finalResolution,s=o.tileset,a=s.isSkippingLevelOfDetail&&s.hasMixedContent&&e.context.stencilBuffer,c=xUe(this);for(let d=t;d>>Kt.SKIP_LOD_BIT_SHIFT}function VUe(e){let t=Je(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=nn.ALPHA_BLEND,t.stencilTest=Kt.setCesium3DTileBit(),t.stencilMask=Kt.CESIUM_3D_TILE_MASK,Be.fromCache(t)}function GUe(e){let t=Je(e,!0);return t.stencilTest=Kt.setCesium3DTileBit(),t.stencilMask=Kt.CESIUM_3D_TILE_MASK,Be.fromCache(t)}wo.prototype.update=function(e,t){this._batchTexture.update(e,t)};wo.prototype.isDestroyed=function(){return!1};wo.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),he(this)};var Lh=wo;var jbn=x(T(),1);var M0n=x(T(),1);function EUe(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var ap=EUe;var Nbn=x(T(),1);var U0n=x(T(),1),LZ=`in vec3 position; +in float a_batchId; + +uniform mat4 u_modifiedModelViewProjection; + +void main() +{ + gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0)); +} +`;var z0n=x(T(),1);var _j=class e{constructor(t,n){this._content=t,this._batchId=n,this._color=void 0}get show(){return this._content.batchTable.getShow(this._batchId)}set show(t){this._content.batchTable.setShow(this._batchId,t)}get color(){return l(this._color)||(this._color=new U),this._content.batchTable.getColor(this._batchId,this._color)}set color(t){this._content.batchTable.setColor(this._batchId,t)}get polylinePositions(){if(l(this._content.getPolylinePositions))return this._content.getPolylinePositions(this._batchId)}get content(){return this._content}get tileset(){return this._content.tileset}get primitive(){return this._content.tileset}get featureId(){return this._batchId}get pickId(){return this._content.batchTable.getPickColor(this._batchId)}hasProperty(t){return this._content.batchTable.hasProperty(this._batchId,t)}getPropertyIds(t){return this._content.batchTable.getPropertyIds(this._batchId,t)}getProperty(t){return this._content.batchTable.getProperty(this._batchId,t)}static getPropertyInherited(t,n,i,o=t.batchTable){if(l(o)){if(o.hasPropertyBySemantic(n,i))return o.getPropertyBySemantic(n,i);if(o.hasProperty(n,i))return o.getProperty(n,i)}let r=t.metadata;if(l(r)){if(r.hasPropertyBySemantic(i))return r.getPropertyBySemantic(i);if(r.hasProperty(i))return r.getProperty(i)}let s=t.tile,a=s.metadata;if(l(a)){if(a.hasPropertyBySemantic(i))return a.getPropertyBySemantic(i);if(a.hasProperty(i))return a.getProperty(i)}let c;if(l(s.implicitSubtree)&&(c=s.implicitSubtree.metadata),l(c)){if(c.hasPropertyBySemantic(i))return c.getPropertyBySemantic(i);if(c.hasProperty(i))return c.getProperty(i)}let d=l(t.group)?t.group.metadata:void 0;if(l(d)){if(d.hasPropertyBySemantic(i))return d.getPropertyBySemantic(i);if(d.hasProperty(i))return d.getProperty(i)}let u=t.tileset.metadata;if(l(u)){if(u.hasPropertyBySemantic(i))return u.getPropertyBySemantic(i);if(u.hasProperty(i))return u.getProperty(i)}}getPropertyInherited(t){return e.getPropertyInherited(this._content,this._batchId,t)}setProperty(t,n){this._content.batchTable.setProperty(this._batchId,t,n),this._content.featurePropertiesDirty=!0}isExactClass(t){return this._content.batchTable.isExactClass(this._batchId,t)}isClass(t){return this._content.batchTable.isClass(this._batchId,t)}getExactClassName(){return this._content.batchTable.getExactClassName(this._batchId)}},Ds=_j;var cbn=x(T(),1);var J0n=x(T(),1),Sj=class{add(t,n,i){if(typeof arguments[0]!="string")for(let o in arguments[0])this.add(o,arguments[0][o],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(o){this[o]=this[o]||[],n&&this[o][i?"unshift":"push"](n)},this)}run(t,n){this[t]=this[t]||[],this[t].forEach(function(i){i.call(n&&n.context?n.context:n,n)})}},Aj=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(n=>{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},gd=class e{static get version(){return"1.4.0"}static toString(){return"JavaScript Expression Parser (JSEP) v"+e.version}static addUnaryOp(t){return e.max_unop_len=Math.max(t.length,e.max_unop_len),e.unary_ops[t]=1,e}static addBinaryOp(t,n,i){return e.max_binop_len=Math.max(t.length,e.max_binop_len),e.binary_ops[t]=n,i?e.right_associative.add(t):e.right_associative.delete(t),e}static addIdentifierChar(t){return e.additional_identifier_chars.add(t),e}static addLiteral(t,n){return e.literals[t]=n,e}static removeUnaryOp(t){return delete e.unary_ops[t],t.length===e.max_unop_len&&(e.max_unop_len=e.getMaxKeyLen(e.unary_ops)),e}static removeAllUnaryOps(){return e.unary_ops={},e.max_unop_len=0,e}static removeIdentifierChar(t){return e.additional_identifier_chars.delete(t),e}static removeBinaryOp(t){return delete e.binary_ops[t],t.length===e.max_binop_len&&(e.max_binop_len=e.getMaxKeyLen(e.binary_ops)),e.right_associative.delete(t),e}static removeAllBinaryOps(){return e.binary_ops={},e.max_binop_len=0,e}static removeLiteral(t){return delete e.literals[t],e}static removeAllLiterals(){return e.literals={},e}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new e(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(n=>n.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return e.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!e.binary_ops[String.fromCharCode(t)]||e.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return e.isIdentifierStart(t)||e.isDecimalDigit(t)}throwError(t){let n=new Error(t+" at character "+this.index);throw n.index=this.index,n.description=t,n}runHook(t,n){if(e.hooks[t]){let i={context:this,node:n};return e.hooks.run(t,i),i.node}return n}searchHook(t){if(e.hooks[t]){let n={context:this};return e.hooks[t].find(function(i){return i.call(n.context,n),n.node}),n.node}}gobbleSpaces(){let t=this.code;for(;t===e.SPACE_CODE||t===e.TAB_CODE||t===e.LF_CODE||t===e.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),n=t.length===1?t[0]:{type:e.COMPOUND,body:t};return this.runHook("after-all",n)}gobbleExpressions(t){let n=[],i,o;for(;this.index0;){if(e.binary_ops.hasOwnProperty(t)&&(!e.isIdentifierStart(this.code)||this.index+t.lengthr.right_a&&m.right_a?i>m.prec:i<=m.prec;for(;o.length>2&&u(o[o.length-2]);)a=o.pop(),n=o.pop().value,s=o.pop(),t={type:e.BINARY_EXP,operator:n,left:s,right:a},o.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+d),o.push(r,t)}for(c=o.length-1,t=o[c];c>1;)t={type:e.BINARY_EXP,operator:o[c-1].value,left:o[c-2],right:t},c-=2;return t}gobbleToken(){let t,n,i,o;if(this.gobbleSpaces(),o=this.searchHook("gobble-token"),o)return this.runHook("after-token",o);if(t=this.code,e.isDecimalDigit(t)||t===e.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===e.SQUOTE_CODE||t===e.DQUOTE_CODE)o=this.gobbleStringLiteral();else if(t===e.OBRACK_CODE)o=this.gobbleArray();else{for(n=this.expr.substr(this.index,e.max_unop_len),i=n.length;i>0;){if(e.unary_ops.hasOwnProperty(n)&&(!e.isIdentifierStart(this.code)||this.index+n.length=n.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(r===e.COMMA_CODE){if(this.index++,o++,o!==n.length){if(t===e.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===e.CBRACK_CODE)for(let s=n.length;s":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10,"**":11},right_associative:new Set(["**"]),additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});gd.max_unop_len=gd.getMaxKeyLen(gd.unary_ops);gd.max_binop_len=gd.getMaxKeyLen(gd.binary_ops);var sy=e=>new gd(e).parse(),WUe=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(gd).filter(e=>!WUe.includes(e)&&sy[e]===void 0).forEach(e=>{sy[e]=gd[e]});sy.Jsep=gd;var vUe="ConditionalExpression",FUe={name:"ternary",init(e){e.hooks.add("after-expression",function(n){if(n.node&&this.code===e.QUMARK_CODE){this.index++;let i=n.node,o=this.gobbleExpression();if(o||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let r=this.gobbleExpression();if(r||this.throwError("Expected expression"),n.node={type:vUe,test:i,consequent:o,alternate:r},i.operator&&e.binary_ops[i.operator]<=.9){let s=i;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;n.node.test=s.right,s.right=n.node,n.node=i}}else this.throwError("Expected :")}})}};sy.plugins.register(FUe);var Q0n=x(T(),1),wde={VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18};Object.freeze(wde);var Lt=wde;function Wh(e,t){this._expression=e,e=zUe(e,t),e=KUe(HUe(e)),sy.addBinaryOp("=~",0),sy.addBinaryOp("!~",0);let n;try{n=sy(e)}catch(i){throw new ae(i)}this._runtimeAst=wi(this,n)}Object.defineProperties(Wh.prototype,{expression:{get:function(){return this._expression}}});var Nn={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new k],cartesian3Array:[new h],cartesian4Array:[new ce],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);let e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new k),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new h),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new ce),this.cartesian4Array[this.cartesian4Index++]}};Wh.prototype.evaluate=function(e,t){Nn.reset();let n=this._runtimeAst.evaluate(e);return t instanceof U&&n instanceof ce?U.fromCartesian4(n,t):n instanceof k||n instanceof h||n instanceof ce?n.clone(t):n};Wh.prototype.evaluateColor=function(e,t){Nn.reset();let n=this._runtimeAst.evaluate(e);return U.fromCartesian4(n,t)};Wh.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e} +{ + return ${o}; +} +`,o};Wh.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};Wh.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var IUe=["!","-","+"],Mde=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],hv=/\${(.*?)}/g,PUe=/\\/g,XUe="@#%",YUe=/@#%/g,S5=new U,A5={abs:Ra(Math.abs),sqrt:Ra(Math.sqrt),cos:Ra(Math.cos),sin:Ra(Math.sin),tan:Ra(Math.tan),acos:Ra(Math.acos),asin:Ra(Math.asin),atan:Ra(Math.atan),radians:Ra(W.toRadians),degrees:Ra(W.toDegrees),sign:Ra(W.sign),floor:Ra(Math.floor),ceil:Ra(Math.ceil),round:Ra(Math.round),exp:Ra(Math.exp),exp2:Ra(wUe),log:Ra(Math.log),log2:Ra(MUe),fract:Ra(NUe),length:kUe,normalize:UUe},Z5={atan2:T5(Math.atan2,!1),pow:T5(Math.pow,!1),min:T5(Math.min,!0),max:T5(Math.max,!0),distance:DUe,dot:OUe,cross:BUe},Rj={clamp:kde(W.clamp,!0),mix:kde(W.lerp,!0)};function NUe(e){return e-Math.floor(e)}function wUe(e){return Math.pow(2,e)}function MUe(e){return W.log2(e)}function Ra(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof k)return k.fromElements(e(n.x),e(n.y),Nn.getCartesian2());if(n instanceof h)return h.fromElements(e(n.x),e(n.y),e(n.z),Nn.getCartesian3());if(n instanceof ce)return ce.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),Nn.getCartesian4());throw new ae(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function T5(e,t){return function(n,i,o){if(t&&typeof o=="number"){if(typeof i=="number")return e(i,o);if(i instanceof k)return k.fromElements(e(i.x,o),e(i.y,o),Nn.getCartesian2());if(i instanceof h)return h.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),Nn.getCartesian3());if(i instanceof ce)return ce.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),Nn.getCartesian4())}if(typeof i=="number"&&typeof o=="number")return e(i,o);if(i instanceof k&&o instanceof k)return k.fromElements(e(i.x,o.x),e(i.y,o.y),Nn.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),Nn.getCartesian3());if(i instanceof ce&&o instanceof ce)return ce.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),e(i.w,o.w),Nn.getCartesian4());throw new ae(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function kde(e,t){return function(n,i,o,r){if(t&&typeof r=="number"){if(typeof i=="number"&&typeof o=="number")return e(i,o,r);if(i instanceof k&&o instanceof k)return k.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),Nn.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),Nn.getCartesian3());if(i instanceof ce&&o instanceof ce)return ce.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),e(i.w,o.w,r),Nn.getCartesian4())}if(typeof i=="number"&&typeof o=="number"&&typeof r=="number")return e(i,o,r);if(i instanceof k&&o instanceof k&&r instanceof k)return k.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),Nn.getCartesian2());if(i instanceof h&&o instanceof h&&r instanceof h)return h.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),Nn.getCartesian3());if(i instanceof ce&&o instanceof ce&&r instanceof ce)return ce.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),e(i.w,o.w,r.w),Nn.getCartesian4());throw new ae(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function kUe(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof k)return k.magnitude(t);if(t instanceof h)return h.magnitude(t);if(t instanceof ce)return ce.magnitude(t);throw new ae(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function UUe(e,t){if(typeof t=="number")return 1;if(t instanceof k)return k.normalize(t,Nn.getCartesian2());if(t instanceof h)return h.normalize(t,Nn.getCartesian3());if(t instanceof ce)return ce.normalize(t,Nn.getCartesian4());throw new ae(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function DUe(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof k&&n instanceof k)return k.distance(t,n);if(t instanceof h&&n instanceof h)return h.distance(t,n);if(t instanceof ce&&n instanceof ce)return ce.distance(t,n);throw new ae(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function OUe(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof k&&n instanceof k)return k.dot(t,n);if(t instanceof h&&n instanceof h)return h.dot(t,n);if(t instanceof ce&&n instanceof ce)return ce.dot(t,n);throw new ae(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function BUe(e,t,n){if(t instanceof h&&n instanceof h)return h.cross(t,n,Nn.getCartesian3());throw new ae(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function Yt(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,o5e(this)}function zUe(e,t){if(!l(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;l(o)&&(e=e.replace(i,o))}return e}function HUe(e){return e.replace(PUe,XUe)}function Cj(e){return e.replace(YUe,"\\")}function KUe(e){let t=e,n="",i=t.indexOf("${");for(;i>=0;){let o=t.indexOf("'"),r=t.indexOf('"'),s;if(o>=0&&o=0&&r=0?new Yt(Lt.VARIABLE_IN_STRING,e.value):new Yt(Lt.LITERAL_STRING,Cj(e.value))}function jUe(e,t){let n=t.arguments,i=n.length,o,r,s,a;if(t.callee.type==="MemberExpression"){o=t.callee.property.name;let c=t.callee.object;if(o==="test"||o==="exec"){if(!l(c.callee)||c.callee.name!=="regExp")throw new ae(`${o} is not a function.`);return i===0?o==="test"?new Yt(Lt.LITERAL_BOOLEAN,!1):new Yt(Lt.LITERAL_NULL,null):(s=wi(e,c),a=wi(e,n[0]),new Yt(Lt.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=wi(e,c),new Yt(Lt.FUNCTION_CALL,o,r);throw new ae(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new Yt(Lt.LITERAL_COLOR,o);if(r=wi(e,n[0]),l(n[1])){let c=wi(e,n[1]);return new Yt(Lt.LITERAL_COLOR,o,[r,c])}return new Yt(Lt.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new ae(`${o} requires three arguments.`);return r=[wi(e,n[0]),wi(e,n[1]),wi(e,n[2])],new Yt(Lt.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new ae(`${o} requires four arguments.`);return r=[wi(e,n[0]),wi(e,n[1]),wi(e,n[2]),wi(e,n[3])],new Yt(Lt.LITERAL_COLOR,o,r)}else if(o==="vec2"||o==="vec3"||o==="vec4"){r=new Array(i);for(let c=0;c1)throw new ae(`${o} requires exactly one argument.`);return r=wi(e,n[0]),new Yt(Lt.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new ae(`${o} does not take any argument.`);return new Yt(Lt.UNARY,o)}else if(l(A5[o])){if(i!==1)throw new ae(`${o} requires exactly one argument.`);return r=wi(e,n[0]),new Yt(Lt.UNARY,o,r)}else if(l(Z5[o])){if(i!==2)throw new ae(`${o} requires exactly two arguments.`);return s=wi(e,n[0]),a=wi(e,n[1]),new Yt(Lt.BINARY,o,s,a)}else if(l(Rj[o])){if(i!==3)throw new ae(`${o} requires exactly three arguments.`);s=wi(e,n[0]),a=wi(e,n[1]);let c=wi(e,n[2]);return new Yt(Lt.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new Yt(Lt.LITERAL_BOOLEAN,!1):(r=wi(e,n[0]),new Yt(Lt.UNARY,o,r));if(o==="Number")return i===0?new Yt(Lt.LITERAL_NUMBER,0):(r=wi(e,n[0]),new Yt(Lt.UNARY,o,r));if(o==="String")return i===0?new Yt(Lt.LITERAL_STRING,""):(r=wi(e,n[0]),new Yt(Lt.UNARY,o,r));if(o==="regExp")return QUe(e,t)}}throw new ae(`Unexpected function call "${o}".`)}function QUe(e,t){let n=t.arguments;if(n.length===0)return new Yt(Lt.LITERAL_REGEX,new RegExp);let i=wi(e,n[0]),o;if(n.length>1){let r=wi(e,n[1]);if(Zj(i)&&Zj(r)){try{o=new RegExp(Cj(String(i._value)),r._value)}catch(s){throw new ae(s)}return new Yt(Lt.LITERAL_REGEX,o)}return new Yt(Lt.REGEX,i,r)}if(Zj(i)){try{o=new RegExp(Cj(String(i._value)))}catch(r){throw new ae(r)}return new Yt(Lt.LITERAL_REGEX,o)}return new Yt(Lt.REGEX,i)}function qUe(e){if(n5e(e.name)){let t=i5e(e.name);return t.substr(0,8)==="tiles3d_"?new Yt(Lt.BUILTIN_VARIABLE,t):new Yt(Lt.VARIABLE,t)}else{if(e.name==="NaN")return new Yt(Lt.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new Yt(Lt.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new Yt(Lt.LITERAL_UNDEFINED,void 0)}throw new ae(`${e.name} is not defined.`)}function $Ue(e){let t=e.property.name;if(t==="PI")return new Yt(Lt.LITERAL_NUMBER,Math.PI);if(t==="E")return new Yt(Lt.LITERAL_NUMBER,Math.E)}function e5e(e){if(e.property.name==="POSITIVE_INFINITY")return new Yt(Lt.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function t5e(e,t){if(t.object.name==="Math")return $Ue(t);if(t.object.name==="Number")return e5e(t);let n,i=wi(e,t.object);return t.computed?(n=wi(e,t.property),new Yt(Lt.MEMBER,"brackets",i,n)):(n=new Yt(Lt.LITERAL_STRING,t.property.name),new Yt(Lt.MEMBER,"dot",i,n))}function Zj(e){return e._type>=Lt.LITERAL_NULL}function n5e(e){return e.substr(0,4)==="czm_"}function i5e(e){return e.substr(4)}function wi(e,t){let n,i,o,r;if(t.type==="Literal")n=JUe(t);else if(t.type==="CallExpression")n=jUe(e,t);else if(t.type==="Identifier")n=qUe(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=wi(e,t.argument);if(IUe.indexOf(i)>-1)n=new Yt(Lt.UNARY,i,s);else throw new ae(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=wi(e,t.left),r=wi(e,t.right),Mde.indexOf(i)>-1)n=new Yt(Lt.BINARY,i,o,r);else throw new ae(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=wi(e,t.left),r=wi(e,t.right),Mde.indexOf(i)>-1&&(n=new Yt(Lt.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=wi(e,t.test);o=wi(e,t.consequent),r=wi(e,t.alternate),n=new Yt(Lt.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=t5e(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a"?e.evaluate=e._evaluateGreaterThan:e._value===">="?e.evaluate=e._evaluateGreaterThanOrEquals:e._value==="&&"?e.evaluate=e._evaluateAnd:e._value==="||"?e.evaluate=e._evaluateOr:e._value==="=~"?e.evaluate=e._evaluateRegExpMatch:e._value==="!~"?e.evaluate=e._evaluateRegExpNotMatch:l(Z5[e._value])&&(e.evaluate=a5e(e._value)):e._type===Lt.TERNARY?e.evaluate=c5e(e._value):e._type===Lt.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===Lt.ARRAY?e.evaluate=e._evaluateArray:e._type===Lt.VARIABLE?e.evaluate=e._evaluateVariable:e._type===Lt.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===Lt.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===Lt.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===Lt.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===Lt.REGEX?e.evaluate=e._evaluateRegExp:e._type===Lt.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=r5e):e.evaluate=e._evaluateLiteral}function r5e(e){return l(e)?e.content.tileset.timeSinceLoad:0}function s5e(e){let t=A5[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function a5e(e){let t=Z5[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function c5e(e){let t=Rj[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n),r=this._test.evaluate(n);return t(e,i,o,r)}}function C5(e,t){if(l(e))return e.getPropertyInherited(t)}Yt.prototype._evaluateLiteral=function(){return this._value};Yt.prototype._evaluateLiteralColor=function(e){let t=S5,n=this._left;if(this._value==="color")l(n)?n.length>1?(U.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):U.fromCssColorString(n[0].evaluate(e),t):U.fromBytes(255,255,255,255,t);else if(this._value==="rgb")U.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),255,t);else if(this._value==="rgba"){let i=n[3].evaluate(e)*255;U.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?U.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&U.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return ce.fromColor(t,Nn.getCartesian4())};Yt.prototype._evaluateLiteralVector=function(e){let t=Nn.getArray(),n=this._value,i=this._left,o=i.length;for(let a=0;a1)throw new ae(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new ae(`Invalid ${n} constructor. Too many arguments.`);if(r===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return k.fromArray(t,0,Nn.getCartesian2());if(n==="vec3")return h.fromArray(t,0,Nn.getCartesian3());if(n==="vec4")return ce.fromArray(t,0,Nn.getCartesian4())};Yt.prototype._evaluateLiteralString=function(){return this._value};Yt.prototype._evaluateVariableString=function(e){let t=this._value,n=hv.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=C5(e,o);l(r)||(r=""),t=t.replace(i,r),hv.lastIndex+=r.length-i.length,n=hv.exec(t)}return t};Yt.prototype._evaluateVariable=function(e){return C5(e,this._value)};function JT(e){return e._value==="feature"}Yt.prototype._evaluateMemberDot=function(e){if(JT(this._left))return C5(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof k||t instanceof h||t instanceof ce){if(n==="r")return t.x;if(n==="g")return t.y;if(n==="b")return t.z;if(n==="a")return t.w}return t[n]};Yt.prototype._evaluateMemberBrackets=function(e){if(JT(this._left))return C5(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof k||t instanceof h||t instanceof ce){if(n===0||n==="r")return t.x;if(n===1||n==="g")return t.y;if(n===2||n==="b")return t.z;if(n===3||n==="a")return t.w}return t[n]};Yt.prototype._evaluateArray=function(e){let t=[];for(let n=0;n" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};Yt.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ae(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};Yt.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ae(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ae(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};Yt.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ae(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ae(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};Yt.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof k&&t instanceof k)return k.add(t,n,Nn.getCartesian2());if(n instanceof h&&t instanceof h)return h.add(t,n,Nn.getCartesian3());if(n instanceof ce&&t instanceof ce)return ce.add(t,n,Nn.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new ae(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};Yt.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof k&&t instanceof k)return k.subtract(t,n,Nn.getCartesian2());if(n instanceof h&&t instanceof h)return h.subtract(t,n,Nn.getCartesian3());if(n instanceof ce&&t instanceof ce)return ce.subtract(t,n,Nn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new ae(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};Yt.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof k&&t instanceof k)return k.multiplyComponents(t,n,Nn.getCartesian2());if(n instanceof k&&typeof t=="number")return k.multiplyByScalar(n,t,Nn.getCartesian2());if(t instanceof k&&typeof n=="number")return k.multiplyByScalar(t,n,Nn.getCartesian2());if(n instanceof h&&t instanceof h)return h.multiplyComponents(t,n,Nn.getCartesian3());if(n instanceof h&&typeof t=="number")return h.multiplyByScalar(n,t,Nn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.multiplyByScalar(t,n,Nn.getCartesian3());if(n instanceof ce&&t instanceof ce)return ce.multiplyComponents(t,n,Nn.getCartesian4());if(n instanceof ce&&typeof t=="number")return ce.multiplyByScalar(n,t,Nn.getCartesian4());if(t instanceof ce&&typeof n=="number")return ce.multiplyByScalar(t,n,Nn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new ae(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};Yt.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof k&&t instanceof k)return k.divideComponents(t,n,Nn.getCartesian2());if(t instanceof k&&typeof n=="number")return k.divideByScalar(t,n,Nn.getCartesian2());if(n instanceof h&&t instanceof h)return h.divideComponents(t,n,Nn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.divideByScalar(t,n,Nn.getCartesian3());if(n instanceof ce&&t instanceof ce)return ce.divideComponents(t,n,Nn.getCartesian4());if(t instanceof ce&&typeof n=="number")return ce.divideByScalar(t,n,Nn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new ae(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};Yt.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof k&&t instanceof k)return k.fromElements(t.x%n.x,t.y%n.y,Nn.getCartesian2());if(n instanceof h&&t instanceof h)return h.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,Nn.getCartesian3());if(n instanceof ce&&t instanceof ce)return ce.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,t.w%n.w,Nn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new ae(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};Yt.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof k&&t instanceof k||n instanceof h&&t instanceof h||n instanceof ce&&t instanceof ce?t.equals(n):t===n};Yt.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof k&&t instanceof k||n instanceof h&&t instanceof h||n instanceof ce&&t instanceof ce?!t.equals(n):t!==n};Yt.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new ae(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};Yt.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};Yt.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};Yt.prototype._evaluateIsExactClass=function(e){return l(e)?e.isExactClass(this._left.evaluate(e)):!1};Yt.prototype._evaluateIsClass=function(e){return l(e)?e.isClass(this._left.evaluate(e)):!1};Yt.prototype._evaluateGetExactClassName=function(e){if(l(e))return e.getExactClassName()};Yt.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};Yt.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};Yt.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};Yt.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";l(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new ae(o)}return i};Yt.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ae(`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);return t.test(n)};Yt.prototype._evaluateRegExpMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return t.test(n);if(n instanceof RegExp&&typeof t=="string")return n.test(t);throw new ae(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};Yt.prototype._evaluateRegExpNotMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return!t.test(n);if(n instanceof RegExp&&typeof t=="string")return!n.test(t);throw new ae(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};Yt.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ae(`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);let i=t.exec(n);return l(i)?i[1]:null};Yt.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof k||t instanceof h||t instanceof ce)return String(t);throw new ae(`Unexpected function call "${this._value}".`)};function Ude(e){let t=e._left,n=t.length;for(let a=0;a1){let p=d[0],b=d[1];return b!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${b})`}}else return"vec4(1.0)";return`vec4(${d[0]}, 1.0)`}else{if(c==="rgb")return i=Dde(this),l(i)?_5(i):`vec4(${d[0]} / 255.0, ${d[1]} / 255.0, ${d[2]} / 255.0, 1.0)`;if(c==="rgba")return d[3]!=="1.0"&&(t.translucent=!0),i=Dde(this),l(i)?_5(i):`vec4(${d[0]} / 255.0, ${d[1]} / 255.0, ${d[2]} / 255.0, ${d[3]})`;if(c==="hsl")return i=Ude(this),l(i)?_5(i):`vec4(czm_HSLToRGB(vec3(${d[0]}, ${d[1]}, ${d[2]})), 1.0)`;if(c==="hsla")return i=Ude(this),l(i)?(i.alpha!==1&&(t.translucent=!0),_5(i)):(d[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${d[0]}, ${d[1]}, ${d[2]})), ${d[3]})`)}break;case Lt.LITERAL_VECTOR:u=o.length,m=`${c}(`;for(let p=0;p0;){let u=t.pop();if(U.equals(u.color,a.color))d=Vj(n,s,d,i,o,u.batchIds,r),a.batchIds=a.batchIds.concat(u.batchIds),a.count=d-a.offset;else{let m=d;d=Vj(n,s,d,i,o,u.batchIds,r),u.offset=m,u.count=d-m,c.push(u),a=u}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function Gj(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let d=0;d0;){let m=t.pop();if(U.equals(m.color,r.color))d=Gj(a,c,d,n,i,m.batchIds,o),r.batchIds=r.batchIds.concat(m.batchIds),r.count=d-r.offset;else{let p=d;d=Gj(a,c,d,n,i,m.batchIds,o),m.offset=p,m.count=d-p,s.push(m),r=m}}let u=e._va;e._va=e._vaSwap,e._vaSwap=u,e._batchedIndices=s}function x5e(e,t){return t.color.toRgba()-e.color.toRgba()}function T5e(e,t){if(!e._batchDirty)return!1;let n=e._batchedIndices,i=n.length,o=!1,r={};for(let s=0;s=y&&s{e.isDestroyed()||(e._error=f)}):void 0}}function X5e(e){l(e._primitive)||(e._primitive=new QT({batchTable:e._batchTable,positions:e._positions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center,pickObject:e._pickObject??e}),e._boxes=void 0,e._boxBatchIds=void 0,e._cylinders=void 0,e._cylinderBatchIds=void 0,e._ellipsoids=void 0,e._ellipsoidBatchIds=void 0,e._spheres=void 0,e._sphereBatchIds=void 0,e._center=void 0,e._modelMatrix=void 0,e._batchTable=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0,e._indices=void 0,e._indexOffsets=void 0,e._indexCounts=void 0,e._positions=void 0,e._vertexBatchIds=void 0,e._batchIds=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._verticesPromise=void 0)}ru.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};ru.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};ru.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};ru.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};ru.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=P5e(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};ru.prototype.isDestroyed=function(){return!1};ru.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),he(this)};var B0=ru;var Ej=class{constructor(t,n,i,o,r){this._tileset=t,this._tile=n,this._resource=i,this._geometries=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,w5e(this,o,r)}get featuresLength(){return l(this._batchTable)?this._batchTable.featuresLength:0}get pointsLength(){return 0}get trianglesLength(){return l(this._geometries)?this._geometries.trianglesLength:0}get geometryByteLength(){return l(this._geometries)?this._geometries.geometryByteLength:0}get texturesByteLength(){return 0}get batchTableByteLength(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}get innerContents(){}get ready(){return this._ready}get tileset(){return this._tileset}get tile(){return this._tile}get url(){return this._resource.getUrlComponent(!0)}get metadata(){return this._metadata}set metadata(t){this._metadata=t}get batchTable(){return this._batchTable}get group(){return this._group}set group(t){this._group=t}hasProperty(t,n){return this._batchTable.hasProperty(t,n)}getFeature(t){return Jde(this),this._features[t]}applyDebugSettings(t,n){l(this._geometries)&&this._geometries.applyDebugSettings(t,n)}applyStyle(t){Jde(this),l(this._geometries)&&this._geometries.applyStyle(t,this._features)}update(t,n){l(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(n)),l(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(t,n),this._ready=!0)}pick(t,n,i){}isDestroyed(){return!1}destroy(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),he(this)}};function Y5e(e){return function(t,n){l(e._geometries)&&e._geometries.updateCommands(t,n)}}function N5e(e,t){let n,i,o,r,s,a=e.BOXES_LENGTH??0,c=e.CYLINDERS_LENGTH??0,d=e.ELLIPSOIDS_LENGTH??0,u=e.SPHERES_LENGTH??0;if(a>0&&l(e.BOX_BATCH_IDS)){let f=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,f,a)}if(c>0&&l(e.CYLINDER_BATCH_IDS)){let f=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,f,c)}if(d>0&&l(e.ELLIPSOID_BATCH_IDS)){let f=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,f,d)}if(u>0&&l(e.SPHERE_BATCH_IDS)){let f=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,f,u)}let m=l(n)||l(i)||l(o)||l(r),p=a>0&&!l(n)||c>0&&!l(i)||d>0&&!l(o)||u>0&&!l(r);if(m&&p)throw new ae("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)&&!l(r)){let f=0;if(!l(n)&&a>0)for(n=new Uint16Array(a),s=0;s0)for(i=new Uint16Array(c),s=0;s0)for(o=new Uint16Array(d),s=0;s0)for(r=new Uint16Array(u),s=0;s0&&(b=_r(i,n,d),n+=d,u>0&&(f=new Uint8Array(t,n,u),f=new Uint8Array(f)));let y=m.BOXES_LENGTH??0,_=m.CYLINDERS_LENGTH??0,S=m.ELLIPSOIDS_LENGTH??0,A=m.SPHERES_LENGTH??0,Z=y+_+S+A,R=new Lh(e,Z,b,f,Y5e(e));if(e._batchTable=R,Z===0)return;let G=e.tile.computedTransform,E;l(m.RTC_CENTER)&&(E=h.unpack(m.RTC_CENTER),F.multiplyByPoint(G,E,E));let v=N5e(m,p);if(y>0||_>0||S>0||A>0){let I,X,Y,g;if(y>0){let C=p.byteOffset+m.BOXES.byteOffset;I=new Float32Array(p.buffer,C,B0.packedBoxLength*y)}if(_>0){let C=p.byteOffset+m.CYLINDERS.byteOffset;X=new Float32Array(p.buffer,C,B0.packedCylinderLength*_)}if(S>0){let C=p.byteOffset+m.ELLIPSOIDS.byteOffset;Y=new Float32Array(p.buffer,C,B0.packedEllipsoidLength*S)}if(A>0){let C=p.byteOffset+m.SPHERES.byteOffset;g=new Float32Array(p.buffer,C,B0.packedSphereLength*A)}return e._geometries=new B0({boxes:I,boxBatchIds:v.boxes,cylinders:X,cylinderBatchIds:v.cylinders,ellipsoids:Y,ellipsoidBatchIds:v.ellipsoids,spheres:g,sphereBatchIds:v.spheres,center:E,modelMatrix:G,batchTable:R,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function Jde(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}var fv=Ej;var rRn=x(T(),1);var cgn=x(T(),1);var Lj={};Lj.encode2D=function(e,t,n){let i=Math.pow(2,e),o={x:t,y:n},r,s,a,c=BigInt(0);for(a=i/2;a>0;a/=2)r=(o.x&a)>0?1:0,s=(o.y&a)>0?1:0,c+=BigInt((3*r^s)*a*a),jde(i,o,r,s);return c};Lj.decode2D=function(e,t){let n=Math.pow(2,e),i={x:0,y:0},o,r,s,a;for(s=1,a=t;s>>0,Wj=2*$T+1,cy=4,$de=[],eue=[],U5e=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],ly=1,vZ=2,R5=[ly,0,0,ly|vZ];function Cs(e){if(!mn.supportsBigInt())throw new ae("S2 required BigInt support");this._cellId=e,this._level=Cs.getLevel(e)}Cs.fromToken=function(e){return new Cs(Cs.getIdFromToken(e))};Cs.isValidId=function(e){return!(e<=0||e>>BigInt(Wj)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Cs.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Cs.isValidId(Cs.getIdFromToken(e)):!1};Cs.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Cs.getTokenFromId=function(e){let t=Math.floor(q5e(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Cs.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return $T-(t>>1)};Cs.prototype.getChild=function(e){let t=iue(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Cs(n)};Cs.prototype.getParent=function(){let e=iue(this._cellId)<>1&1;return nue(i[0],o[0][r^n&1],o[1][r])}function B5e(e,t){let n=tue(e),i=n[0],o=n[1],r=n[2],s=t===30,a=!s&&(BigInt(o)^e>>BigInt(2))&BigInt(1),c=s?1:a?2:0,d=(o<<1)+c,u=(r<<1)+c;return[i,d,u]}function tue(e){$de.length===0&&J5e();let t=Number(e>>BigInt(Wj)),n=t&ly,i=(1<=0;s--){let c=(1<<2*(s===7?$T-7*cy:cy))-1;n+=Number(e>>BigInt(s*2*cy+1)&BigInt(c))<<2,n=eue[n];let d=s*cy;o+=n>>cy+2<>2&i)<=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function Qde(e){return 1/k5e*e}function H5e(e,t){let n=[[],[]],i=K5e(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=V5(qde(r)),n[o][1]=V5(qde(s))}return n}function K5e(e){return 1<<$T-e>>>0}function qde(e){return 1/M5e*e}function dy(e,t,n,i,o,r){if(e===cy){let s=(t<>1),n+(s[0]&1),i,o,r^R5[0]),dy(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^R5[1]),dy(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^R5[2]),dy(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^R5[3])}}function J5e(){dy(0,0,0,0,0,0),dy(0,0,0,ly,0,ly),dy(0,0,0,vZ,0,vZ),dy(0,0,0,ly|vZ,0,ly|vZ)}function iue(e){return e&~e+BigInt(1)}function j5e(e){return BigInt(1)<>3,r=i%8;n+=e[o]>>r&1}return n}Object.defineProperties(vj.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});vj.prototype.getBit=function(e){if(l(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var FZ=vj;var Cgn=x(T(),1);function H0(e){e=e??B.EMPTY_OBJECT;let t=e.metadataTable,n=e.class,i=e.entityId,o=e.propertyTableJson;this._class=n,this._metadataTable=t,this._entityId=i,this._extensions=o.extensions,this._extras=o.extras}Object.defineProperties(H0.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});H0.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};H0.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};H0.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};H0.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};H0.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};H0.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};H0.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var IZ=H0;var Vgn=x(T(),1);var pv={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};pv.getBranchingFactor=function(e){switch(e){case pv.OCTREE:return 8;case pv.QUADTREE:return 4}};Object.freeze(pv);var Rs=pv;var Ygn=x(T(),1);var vgn=x(T(),1);function ja(){}Object.defineProperties(ja.prototype,{class:{get:function(){Te.throwInstantiationError()}}});ja.prototype.hasProperty=function(e){Te.throwInstantiationError()};ja.prototype.hasPropertyBySemantic=function(e){Te.throwInstantiationError()};ja.prototype.getPropertyIds=function(e){Te.throwInstantiationError()};ja.prototype.getProperty=function(e){Te.throwInstantiationError()};ja.prototype.setProperty=function(e,t){Te.throwInstantiationError()};ja.prototype.getPropertyBySemantic=function(e){Te.throwInstantiationError()};ja.prototype.setPropertyBySemantic=function(e,t){Te.throwInstantiationError()};ja.hasProperty=function(e,t,n){if(l(t[e]))return!0;let i=n.properties;if(!l(i))return!1;let o=i[e];return!!(l(o)&&l(o.default))};ja.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return!1;let o=i[e];return l(o)};ja.getPropertyIds=function(e,t,n){n=l(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&l(e[o])&&n.push(o);let i=t.properties;if(l(i))for(let o in i)i.hasOwnProperty(o)&&!l(e[o])&&l(i[o].default)&&n.push(o);return n};ja.getProperty=function(e,t,n){let i=n.properties[e],o=t[e];Array.isArray(o)&&(o=o.slice());let r=!0;if(o=i.handleNoData(o),!l(o)&&l(i.default))return o=Je(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(l(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};ja.setProperty=function(e,t,n,i){if(!l(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;return l(r)&&(o=r[e]),l(o)&&(t=o.packVectorAndMatrixTypes(t,!0),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};ja.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return;let o=i[e];if(l(o))return ja.getProperty(o.id,t,n)};ja.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!l(o))return!1;let r=i.propertiesBySemantic[e];return l(r)?ja.setProperty(r.id,t,n,i):!1};var Dn=ja;function K0(e){e=e??B.EMPTY_OBJECT;let t=e.subtreeMetadata,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(K0.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});K0.prototype.hasProperty=function(e){return Dn.hasProperty(e,this._properties,this._class)};K0.prototype.hasPropertyBySemantic=function(e){return Dn.hasPropertyBySemantic(e,this._properties,this._class)};K0.prototype.getPropertyIds=function(e){return Dn.getPropertyIds(this._properties,this._class,e)};K0.prototype.getProperty=function(e){return Dn.getProperty(e,this._properties,this._class)};K0.prototype.setProperty=function(e,t){return Dn.setProperty(e,t,this._properties,this._class)};K0.prototype.getPropertyBySemantic=function(e){return Dn.getPropertyBySemantic(e,this._properties,this._class)};K0.prototype.setPropertyBySemantic=function(e,t){return Dn.setPropertyBySemantic(e,t,this._properties,this._class)};var bv=K0;var Lyn=x(T(),1);var Ayn=x(T(),1);var Dgn=x(T(),1);var un={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"},Bc={INTEGER:"int",UNSIGNED_INTEGER:"uint",FLOAT:"float"};un.typeInfo={INT8:{vectorCompatible:!0,size:1,maximumValue:127,minimumValue:-128,category:Bc.INTEGER},UINT8:{vectorCompatible:!0,size:1,maximumValue:255,minimumValue:0,category:Bc.UNSIGNED_INTEGER},INT16:{vectorCompatible:!0,size:2,maximumValue:32767,minimumValue:-32768,category:Bc.INTEGER},UINT16:{vectorCompatible:!0,size:2,maximumValue:65535,minimumValue:0,category:Bc.UNSIGNED_INTEGER},INT32:{vectorCompatible:!0,size:4,maximumValue:2147483647,minimumValue:-2147483648,category:Bc.INTEGER},UINT32:{vectorCompatible:!0,size:4,maximumValue:4294967295,minimumValue:0,category:Bc.UNSIGNED_INTEGER},INT64:{vectorCompatible:!1,size:8,maximumValue:BigInt("9223372036854775807"),minimumValue:BigInt("-9223372036854775808"),category:Bc.INTEGER,downcastFunction:e=>un.clampToLimits(e,un.INT32)},UINT64:{vectorCompatible:!1,size:8,maximumValue:BigInt("18446744073709551615"),minimumValue:BigInt(0),category:Bc.UNSIGNED_INTEGER,downcastFunction:e=>un.clampToLimits(e,un.UINT32)},FLOAT32:{vectorCompatible:!0,size:4,maximumValue:34028234663852886e22,minimumValue:-34028234663852886e22,category:Bc.FLOAT},FLOAT64:{vectorCompatible:!0,size:8,maximumValue:Number.MAX_VALUE,minimumValue:-Number.MAX_VALUE,category:Bc.FLOAT,downcastFunction:e=>Math.fround(e)}};un.getMinimum=function(e){return un.typeInfo[e].minimumValue};un.getMaximum=function(e){return un.typeInfo[e].maximumValue};un.isIntegerType=function(e){return un.typeInfo[e].category!==Bc.FLOAT};un.isUnsignedIntegerType=function(e){return un.typeInfo[e].category===Bc.UNSIGNED_INTEGER};un.isVectorCompatible=function(e){return un.typeInfo[e].vectorCompatible};un.category=function(e){return un.typeInfo[e].category};un.gpuComponentType=function(e){switch(e){case un.INT64:return"INT32";case un.UINT64:return"UINT32";case un.FLOAT64:return"FLOAT32";default:return e}};un.normalize=function(e,t){return Math.max(Number(e)/Number(un.getMaximum(t)),-1)};un.unnormalize=function(e,t){let n=un.getMaximum(t),i=un.isUnsignedIntegerType(t)?0:-n;return e=W.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===un.INT64||t===un.UINT64)&&mn.supportsBigInt()&&(e=BigInt(e)),e>n?n:er?i:Number(e)}return Math.max(n,Math.min(i,e))};un.downcastFunction=function(e){let n=un.typeInfo[e].downcastFunction;return l(n)?n:i=>i};un.fromComponentDatatype=function(e){switch(e){case J.BYTE:return un.INT8;case J.UNSIGNED_BYTE:return un.UINT8;case J.SHORT:return un.INT16;case J.UNSIGNED_SHORT:return un.UINT16;case J.INT:return un.INT32;case J.UNSIGNED_INT:return un.UINT32;case J.FLOAT:return un.FLOAT32;case J.DOUBLE:return un.FLOAT64}};un.toComponentDatatype=function(e){switch(e){case un.INT8:return J.BYTE;case un.UINT8:return J.UNSIGNED_BYTE;case un.INT16:return J.SHORT;case un.UINT16:return J.UNSIGNED_SHORT;case un.INT32:return J.INT;case un.UINT32:return J.UNSIGNED_INT;case un.FLOAT32:return J.FLOAT;case un.FLOAT64:return J.DOUBLE}};un.getDataViewAccessors=function(e,t){return{[un.UINT8]:{get:e.getUint8.bind(e),set:e.setUint8.bind(e)},[un.INT8]:{get:e.getInt8.bind(e),set:e.setInt8.bind(e)},[un.UINT16]:{get:i=>e.getUint16(i,!0),set:(i,o)=>e.setUint16(i,o,!0)},[un.INT16]:{get:i=>e.getInt16(i,!0),set:(i,o)=>e.setInt16(i,o,!0)},[un.UINT32]:{get:i=>e.getUint32(i,!0),set:(i,o)=>e.setUint32(i,o,!0)},[un.INT32]:{get:i=>e.getInt32(i,!0),set:(i,o)=>e.setInt32(i,o,!0)},[un.FLOAT32]:{get:i=>e.getFloat32(i,!0),set:(i,o)=>e.setFloat32(i,o,!0)},[un.FLOAT64]:{get:i=>e.getFloat64(i,!0),set:(i,o)=>e.setFloat64(i,o,!0)},[un.UINT64]:{get:i=>e.getBigUint64(i,!0),set:(i,o)=>e.setBigUint64(i,BigInt(o),!0)},[un.INT64]:{get:i=>e.getBigInt64(i,!0),set:(i,o)=>e.setBigInt64(i,BigInt(o),!0)}}[t]};Object.freeze(un);var It=un;var dyn=x(T(),1);var Qgn=x(T(),1);var qo={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4",BOOLEAN:"BOOLEAN",STRING:"STRING",ENUM:"ENUM"};qo.isVectorType=function(e){switch(e){case qo.VEC2:case qo.VEC3:case qo.VEC4:return!0;default:return!1}};qo.isMatrixType=function(e){switch(e){case qo.MAT2:case qo.MAT3:case qo.MAT4:return!0;default:return!1}};qo.getComponentCount=function(e){switch(e){case qo.SCALAR:case qo.STRING:case qo.ENUM:case qo.BOOLEAN:return 1;case qo.VEC2:return 2;case qo.VEC3:return 3;case qo.VEC4:return 4;case qo.MAT2:return 4;case qo.MAT3:return 9;case qo.MAT4:return 16}};qo.getMathType=function(e){switch(e){case qo.VEC2:return k;case qo.VEC3:return h;case qo.VEC4:return ce;case qo.MAT2:return Ui;case qo.MAT3:return $;case qo.MAT4:return F;default:return}};Object.freeze(qo);var pt=qo;function zr(e){e=e??B.EMPTY_OBJECT;let t=e.id,n=e.type,i=e.componentType,o=e.enumType,r=l(i)&&(e.normalized??!1)&&It.isIntegerType(i);this._id=t,this._name=e.name,this._description=e.description,this._semantic=e.semantic,this._isLegacyExtension=e.isLegacyExtension,this._type=n,this._componentType=i,this._enumType=o,this._valueType=l(o)?o.valueType:i,this._isArray=e.isArray??!1,this._isVariableLengthArray=e.isVariableLengthArray??!1,this._arrayLength=e.arrayLength,this._min=Je(e.min,!0),this._max=Je(e.max,!0),this._normalized=r;let s=Je(e.offset,!0),a=Je(e.scale,!0),c=l(s)||l(a),d=!0;l(s)||(s=this.expandConstant(0,d)),l(a)||(a=this.expandConstant(1,d)),this._offset=s,this._scale=a,this._hasValueTransform=c,this._noData=Je(e.noData,!0),this._default=Je(e.default,!0),this._required=e.required??!0,this._extras=Je(e.extras,!0),this._extensions=Je(e.extensions,!0)}zr.fromJson=function(e){e=e??B.EMPTY_OBJECT;let t=e.id,n=e.property,i=tDe(n),o=nDe(n,e.enums),r;return l(i)?i?r=l(n.optional)?!n.optional:!0:r=n.required??!1:r=!1,new zr({id:t,type:o.type,componentType:o.componentType,enumType:o.enumType,isArray:o.isArray,isVariableLengthArray:o.isVariableLengthArray,arrayLength:o.arrayLength,normalized:n.normalized,min:n.min,max:n.max,offset:n.offset,scale:n.scale,noData:n.noData,default:n.default,required:r,name:n.name,description:n.description,semantic:n.semantic,extras:n.extras,extensions:n.extensions,isLegacyExtension:i})};Object.defineProperties(zr.prototype,{id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},type:{get:function(){return this._type}},enumType:{get:function(){return this._enumType}},componentType:{get:function(){return this._componentType}},valueType:{get:function(){return this._valueType}},isArray:{get:function(){return this._isArray}},isVariableLengthArray:{get:function(){return this._isVariableLengthArray}},arrayLength:{get:function(){return this._arrayLength}},normalized:{get:function(){return this._normalized}},max:{get:function(){return this._max}},min:{get:function(){return this._min}},noData:{get:function(){return this._noData}},default:{get:function(){return this._default}},required:{get:function(){return this._required}},semantic:{get:function(){return this._semantic}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});function tDe(e){if(e.type==="ARRAY")return!0;let t=e.type;if(t===pt.SCALAR||pt.isMatrixType(t)||pt.isVectorType(t))return!1;if(l(It[t]))return!0;if(l(e.noData)||l(e.scale)||l(e.offset)||l(e.required)||l(e.count)||l(e.array)||l(e.optional))return!1}function nDe(e,t){let n=e.type,i=e.componentType,o=n==="ARRAY",r,s,a;o?(r=!0,s=e.componentCount,a=!l(s)):e.array?(r=!0,s=e.count,a=!l(e.count)):(r=!1,s=void 0,a=!1);let c;if(l(e.enumType)&&(c=t[e.enumType]),n===pt.ENUM)return{type:n,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&i===pt.ENUM)return{type:i,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===pt.SCALAR||pt.isMatrixType(n)||pt.isVectorType(n))return{type:n,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===pt.BOOLEAN||n===pt.STRING)return{type:n,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&(i===pt.BOOLEAN||i===pt.STRING))return{type:i,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(i)&&l(It[i]))return{type:pt.SCALAR,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(It[n]))return{type:pt.SCALAR,componentType:n,enumType:void 0,valueType:n,isArray:r,isVariableLengthArray:a,arrayLength:s}}zr.prototype.normalize=function(e){return this._normalized?Fj(e,this._valueType,It.normalize):e};zr.prototype.unnormalize=function(e){return this._normalized?Fj(e,this._valueType,It.unnormalize):e};zr.prototype.applyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:zr.valueTransformInPlace(e,this._offset,this._scale,It.applyValueTransform)};zr.prototype.unapplyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:zr.valueTransformInPlace(e,this._offset,this._scale,It.unapplyValueTransform)};zr.prototype.expandConstant=function(e,t){t=t??!1;let n=this._isArray,i=this._arrayLength,o=pt.getComponentCount(this._type),r=n&&o>1;if(!n&&o===1)return e;if(!n)return new Array(o).fill(e);if(!r)return new Array(i).fill(e);if(!t)return new Array(this._arrayLength*o).fill(e);let s=new Array(o).fill(e);return new Array(this._arrayLength).fill(s)};zr.prototype.handleNoData=function(e){let t=this._noData;if(!l(t))return e;if(!aue(e,t))return e};function aue(e,t){if(!Array.isArray(e))return e===t;if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n1;return l(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};zr.prototype.packVectorAndMatrixTypes=function(e,t){t=t??!1;let n=pt.getMathType(this._type),i=this._isArray,o=pt.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};zr.prototype.validate=function(e){if(!(!l(e)&&l(this._default)))return this._required&&!l(e)?"required property must have a value":this._isArray?iDe(this,e):cue(this,e)};function iDe(e,t){if(!Array.isArray(t))return`value ${t} must be an array`;let n=t.length;if(!e._isVariableLengthArray&&n!==e._arrayLength)return"Array length does not match property.arrayLength";for(let i=0;i1?oue(e,t,n):void 0}if(eIt.getMaximum(t))return oue(e,t,n)}function sue(e,t){return`value ${e} of type ${t} must be finite`}function Fj(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;ie)};var Ij=[void 0,"float","vec2","vec3","vec4"],due=[void 0,"int","ivec2","ivec3","ivec4"],dDe=[void 0,"uint","uvec2","uvec3","uvec4"],uDe={[Bc.FLOAT]:"uintBitsToFloat",[Bc.INTEGER]:"int",[Bc.UNSIGNED_INTEGER]:""};zr.prototype.getGlslTypeWebGL1=function(){let e=pt.getComponentCount(this.type);return this.isArray&&(e=this.arrayLength),this.normalized?Ij[e]:due[e]};zr.prototype.getGlslType=function(){let e=this.valueType,t=pt.getComponentCount(this.type),n=this.isArray?this.arrayLength:1;return t*=n,!It.isIntegerType(e)||this.normalized?Ij[t]:It.isUnsignedIntegerType(e)?dDe[t]:due[t]};zr.prototype.unpackTextureInShader=function(e,t,n,i){let o=this.getGlslType(),r=It.gpuComponentType(this.valueType),s=t.length,a=this.type,c=pt.getComponentCount(a)*(this.isArray?this.arrayLength:1),d=Math.floor(s/c),u=`${n}_rawChannels`,m=`${n}_rawBits`,p=`${n}_unpackedValue`,b=`${o} ${p};`,f=`uint ${m};`;i.push(b),i.push(f);let y=`${Ij[s]} ${u} = ${e};`;i.push(y);let _=uDe[It.category(r)],S=c>1;for(let A=0;A1?`.${Z}`:"",G=`${m} = czm_unpackTexture(${u}${R});`,E="";S&&(E=`[${A}]`);let v="",I="";if(this.normalized){let Y=It.getMaximum(r);v=` * ${1/Number(Y)}`,I="float"}let X=`${p}${E} = ${I}(${_}(${m}))${v};`;i.push(G),i.push(X)}return p};zr.prototype.unpackTextureInShaderWebGL1=function(e){return this.normalized?e:`${this.getGlslTypeWebGL1()}(255.0 * ${e})`};var cp=zr;function gv(e){e=e??B.EMPTY_OBJECT;let t=e.count,n=e.property,i=e.classProperty,o=e.bufferViews,r=i.type,s=i.isArray,a=i.isVariableLengthArray,c=i.valueType,d=i.enumType,u=r===pt.STRING,m=r===pt.BOOLEAN,p=0,b;if(a){let g=n.arrayOffsetType??n.offsetType;g=It[g]??It.UINT32;let C=n.arrayOffsets??n.arrayOffsetBufferView;b=new Pj(o[C],g,t+1),p+=b.typedArray.byteLength}let f=pt.getComponentCount(r),y;a?y=b.get(t)-b.get(0):s?y=t*i.arrayLength:y=t;let _=f*y,S;if(u){let g=n.stringOffsetType??n.offsetType;g=It[g]??It.UINT32;let C=n.stringOffsets??n.stringOffsetBufferView;S=new Pj(o[C],g,_+1),p+=S.typedArray.byteLength}(u||m)&&(c=It.UINT8);let A;u?A=S.get(_)-S.get(0):m?A=Math.ceil(_/8):A=_;let Z=n.values??n.bufferView,R=new Pj(o[Z],c,A);p+=R.typedArray.byteLength;let G=n.offset,E=n.scale,v=i.hasValueTransform||l(G)||l(E);G=G??i.offset,E=E??i.scale,G=uue(G),E=uue(E);let I,X,Y=this;u?I=function(g){return fDe(g,Y._values,Y._stringOffsets)}:m?(I=function(g){return pDe(g,Y._values)},X=function(g,C){bDe(g,Y._values,C)}):l(d)?(I=function(g){let C=Y._values.get(g);return d.namesByValue[C]},X=function(g,C){let V=d.valuesByName[C];Y._values.set(g,V)}):(I=function(g){return Y._values.get(g)},X=function(g,C){Y._values.set(g,C)}),this._arrayOffsets=b,this._stringOffsets=S,this._values=R,this._classProperty=i,this._count=t,this._vectorComponentCount=f,this._min=n.min,this._max=n.max,this._offset=G,this._scale=E,this._hasValueTransform=v,this._getValue=I,this._setValue=X,this._unpackedValues=void 0,this._extras=n.extras,this._extensions=n.extensions,this._byteLength=p}Object.defineProperties(gv.prototype,{hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){return this._byteLength}},classProperty:{get:function(){return this._classProperty}}});gv.prototype.get=function(e){let t=mDe(this,e);return t=this._classProperty.handleNoData(t),l(t)?(t=this._classProperty.normalize(t),t=ZDe(this,t),this._classProperty.unpackVectorAndMatrixTypes(t)):(t=this._classProperty.default,this._classProperty.unpackVectorAndMatrixTypes(t))};gv.prototype.set=function(e,t){let n=this._classProperty;t=n.packVectorAndMatrixTypes(t),t=CDe(this,t),t=n.unnormalize(t),hDe(this,e,t)};gv.prototype.getTypedArray=function(){if(l(this._values))return this._values.typedArray};function uue(e){if(!Array.isArray(e))return e;let t=[];for(let n=0;n>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function bDe(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=c*Math.pow(256,a)}return r&&(o=-o),o}function yDe(e,t){let n=t.dataView,i=e*8,o=BigInt(0),r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=BigInt(c)*(BigInt(1)<96?_-97:_>64?_-39:_+4}for(var S=0,y=0;y=3),c(n.exports.meshopt_spatialSortRemap,b,b.length/f,f*4)},encodeVertexBuffer:function(b,f,y){r(y>0&&y<=256),r(y%4==0);var _=n.exports.meshopt_encodeVertexBufferBound(f,y);return d(n.exports.meshopt_encodeVertexBuffer,_,b,f,y)},encodeVertexBufferLevel:function(b,f,y,_,S){r(y>0&&y<=256),r(y%4==0),r(_>=0&&_<=3),r(S===void 0||S==0||S==1);var A=n.exports.meshopt_encodeVertexBufferBound(f,y);return d(n.exports.meshopt_encodeVertexBufferLevel,A,b,f,y,_,S===void 0?-1:S)},encodeIndexBuffer:function(b,f,y){r(y==2||y==4),r(f%3==0);var _=m(b,y),S=n.exports.meshopt_encodeIndexBufferBound(f,u(_)+1);return d(n.exports.meshopt_encodeIndexBuffer,S,_,f,4)},encodeIndexSequence:function(b,f,y){r(y==2||y==4);var _=m(b,y),S=n.exports.meshopt_encodeIndexSequenceBound(f,u(_)+1);return d(n.exports.meshopt_encodeIndexSequence,S,_,f,4)},encodeGltfBuffer:function(b,f,y,_,S){var A={ATTRIBUTES:this.encodeVertexBufferLevel,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(A[_]),A[_](b,f,y,2,S===void 0?0:S)},encodeFilterOct:function(b,f,y,_){return r(y==4||y==8),r(_>=2&&_<=16),p(n.exports.meshopt_encodeFilterOct,b,f,y,_,16)},encodeFilterQuat:function(b,f,y,_){return r(y==8),r(_>=4&&_<=16),p(n.exports.meshopt_encodeFilterQuat,b,f,y,_,16)},encodeFilterExp:function(b,f,y,_,S){r(y>0&&y%4==0),r(_>=1&&_<=24);var A={Separate:0,SharedVector:1,SharedComponent:2,Clamped:3};return r(!S||S in A),p(n.exports.meshopt_encodeFilterExp,b,f,y,_,y,S?A[S]:1)},encodeFilterColor:function(b,f,y,_){return r(y==4||y==8),r(_>=2&&_<=16),p(n.exports.meshopt_encodeFilterColor,b,f,y,_,16)}}})();var qyn=x(T(),1),my=(function(){var e="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuecj:Gdkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq1Zkdbk:kYi5ud9:du8Jjjjjbcjq9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCaAcethXaxaDfhiaOaeaoaeao6E9RhQalcl4cifcd4hLazcjdfaAfhKcbhYabaOad2fg8AhEaHh3incbh5dnawTmbaxaYcd4fRbbh5kcbh8Eazcjdfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcjdfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcjdfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaL6mva8FaLfhidnaCTmbaPai9RcK6mbaocdtc:q:G:cjbfcj:G:cjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bwar9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfcbaicdfa8J9c8N1:NfghRbbag9cjjjjjw:dg8J9qE86bbarcVfcbaha8J9c8M1:NfghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fcbaha8J9c8N1:NfgiRbbag9cjjjjjw:dg8J9qE86bbarc96fcbaia8J9c8M1:NfgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbw83bwarai8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasaYcd4fRbbgociGPlbedrbkaATmdazaYfh8Fazcjdfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeazaYfhaazcjdfhhcbhoceh8EaKh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaQaocefgofmbka8FaXfh8FcdhoaacdfhaahaXfhha8EceGhlcbh8EalmbxdkkaATmbaocl4h8EazaYfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaKhainazcjdfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E94aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3aYclfgYad6mbkaza8AaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcjqf8Kjjjjbaok:ysezu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnalaeci9UgrcHf6mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8Aav9cu83iUav9cu83i8Wav9cu83iyav9cu83iaav9cu83iKav9cu83izav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbavaiaqaDcsGfRbbgscl4gP9RcsGcdtfydbaxcefgOaPEhDavaias9RcsGcdtfydbaOaPTgzfgOascsGgPEhsaPThPdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiazfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaPfhiaOaPfhxxekaxcbalRbbgsEgHaDc;:eSgDfhOascsGhAdndnascl4gCmbaOcefhzxekaOhzavaiaC9RcsGcdtfydbhOkdndnaAmbazcefhxxekazhxavaias9RcsGcdtfydbhzkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhHascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaHhDxekaDcefhDkasce4cbasceG9R7amfgmhHkdndnaCcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhOaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkaOhsxekascefhskaPce4cbaPceG9R7amfgmhOkdndnaAcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhzaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkazhlxekalcefhlkaPce4cbaPceG9R7amfgmhzkdndnadcd9hmbabarcetfgDaH87ebaDclfaz87ebaDcdfaO87ebxekabarcdtfgDaHBdbaDcwfazBdbaDclfaOBdbkavc;abfaocitfgDaOBdbaDaHBdlavaicdtfaHBdbavc;abfaocefcsGcitfgDazBdbaDaOBdlavaicefgicsGcdtfaOBdbavc;abfaocdfcsGcitfgDaHBdbaDazBdlavaiaCTaCcsSVfgicsGcdtfazBdbaiaATaAcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnalaecvf9pmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk:4ioiue99dud99dud99dnaeTmbcbhiabhlindndnal8Uebgv:YgoJ:ji:1Salcof8UebgrciVgw:Y:vgDNJbbbZJbbb:;avcu9kEMgq:lJbbb9p9DTmbaq:Ohkxekcjjjj94hkkalclf8Uebhvalcdf8UebhxalarcefciGcetfak87ebdndnax:YgqaDNJbbbZJbbb:;axcu9kEMgm:lJbbb9p9DTmbam:Ohxxekcjjjj94hxkabaiarciGgkfcd7cetfax87ebdndnav:YgmaDNJbbbZJbbb:;avcu9kEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkalarcufciGcetfav87ebdndnawaw2:ZgPaPMaoaoN:taqaqN:tamamN:tgoJbbbbaoJbbbb9GE:raDNJbbbZMgD:lJbbb9p9DTmbaD:Ohrxekcjjjj94hrkalakcetfar87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K:G:cjbgeabcifc98GfgbBd:K:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk83dbcj:Gdk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:K:Gdkl8W:qbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuecj:Gdkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq:59Dklbzik94evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaeai86b:q:W:cjbaecitab8Piw83i:q:G:cjbaecefgecjd9hmbkk:SBlEud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaialfgxar9RhodnadTgmmbavaoad;8qbbkaicefhPcj;abad9Uc;WFbGcjdadca0EhsdndndnadTmbaoadfhzcbhHinaeaH9nmdaxaP9RaD6miabaHad2fgOavcjdfasaeaH9RaHasfae6EgAaAcsfgoc9WGgCSEhXaPaDfhQaocl4cifcd4hLavcj;cbfaCcetfhKavcj;cbfaCci2fhYavcj;cbfaCfh8AcbhEaoc;ab6h3incbh5dnawTmbaPaEcd4fRbbh5kcbh8Eavcj;cbfh8Findndndndna5a8Ecet4ciGgoc9:fPdebdkaxaQ9RaC6mwdnaCTmbavcj;cbfa8EaC2faQaC;8qbbkaQaAfhQxdkaCTmeavcj;cbfa8EaC2fcbaC;8kbxekaxaQ9RaL6moaoclVcbawEhraQaLfhocbhidna3mbaxao9Rc;Gb6mbcbhlina8FalfhidndndndndndnaQalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaoclffa8JRb:q:W:cjbfhoxikaiaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaocwffa8JRb:q:W:cjbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbagaocdffa8JRb:q:W:cjbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaoclffa8JRb:q:W:cjbfhoxikaiczfaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaocwffa8JRb:q:W:cjbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbagaocdffa8JRb:q:W:cjbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaoclffa8JRb:q:W:cjbfhoxikaicafaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaocwffa8JRb:q:W:cjbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbagaocdffa8JRb:q:W:cjbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Ngicitpbi:q:G:cjbaiRb:q:W:cjbgipsaap5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbaiaoclffaqRb:q:W:cjbfhoxikaic8Wfaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Ngicitpbi:q:G:cjbaiRb:q:W:cjbgipsaap5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbaiaocwffaqRb:q:W:cjbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitpbi:q:G:cjbaiRb:q:W:cjbgipsaoRbegqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqRb:q:W:cjbfhokalc;abfhialcjefaC0meaihlaxao9Rc;Fb0mbkkdnaiaC9pmbaici4hlinaxao9RcK6mwa8FaifhqdndndndndndnaQaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spkbbagaoclffa8JRb:q:W:cjbfhoxikaqaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spkbbagaocwffa8JRb:q:W:cjbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpkbbagaocdffa8JRb:q:W:cjbfhokalcdfhlaiczfgiaC6mbkkaohQaoTmoka8FaCfh8Fa8Ecefg8Ecl9hmbkdndndndnawTmbazaEcd4fRbbglciGPlbedwbkaCTmdaXaEfhlavaEfpbdbh8Kcbhoinalavcj;cbfaofpblbg8La8Aaofpblbg8MpmbzeHdOiAlCvXoQrLg8NaKaofpblbgyaYaofpblbg8PpmbzeHdOiAlCvXoQrLgIpmbezHdiOAlvCXorQLgacep9Taapxeeeeeeeeeeeeeeeeghp9op9Hp9rgaa8Kp9Ug8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp9Ug8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp9Ug8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9Abbbaladfgla8Ka8NaIpmwDKYqk8AExm35Ps8E8Fgacep9Taaahp9op9Hp9rgap9Ug8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp9Ug8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp9Ug8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9Abbbaladfgla8Ka8La8MpmwKDYq8AkEx3m5P8Es8Fg8Laya8PpmwKDYq8AkEx3m5P8Es8Fg8MpmbezHdiOAlvCXorQLgacep9Taaahp9op9Hp9rgap9Ug8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp9Ug8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp9Ug8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9Abbbaladfgla8Ka8La8MpmwDKYqk8AExm35Ps8E8Fgacep9Taaahp9op9Hp9rgap9Ughp9Abbbaladfglahaaaapmlvorlvorlvorlvorp9Ughp9AbbbaladfglahaaaapmwDqkwDqkwDqkwDqkp9Ughp9AbbbaladfglahaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9AbbbaladfhlaoczfgoaC6mbxikkaCTmeaXaEfhlavaEfpbdbh8Kcbhoinalavcj;cbfaofpblbg8La8Aaofpblbg8MpmbzeHdOiAlCvXoQrLg8NaKaofpblbgyaYaofpblbg8PpmbzeHdOiAlCvXoQrLgIpmbezHdiOAlvCXorQLgacep:neaapxebebebebebebebebghp9op:bep9rgaa8Kp:oeg8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp:oeg8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp:oeg8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9Abbbaladfgla8Ka8NaIpmwDKYqk8AExm35Ps8E8Fgacep:neaaahp9op:bep9rgap:oeg8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp:oeg8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp:oeg8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9Abbbaladfgla8Ka8La8MpmwKDYq8AkEx3m5P8Es8Fg8Laya8PpmwKDYq8AkEx3m5P8Es8Fg8MpmbezHdiOAlvCXorQLgacep:neaaahp9op:bep9rgap:oeg8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp:oeg8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp:oeg8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9Abbbaladfgla8Ka8La8MpmwDKYqk8AExm35Ps8E8Fgacep:neaaahp9op:bep9rgap:oeghp9Abbbaladfglahaaaapmlvorlvorlvorlvorp:oeghp9AbbbaladfglahaaaapmwDqkwDqkwDqkwDqkp:oeghp9AbbbaladfglahaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9AbbbaladfhlaoczfgoaC6mbxdkkaCTmbaXaEfhrcbhocbalcl4gl9Rc8FGhiavaEfpbdbhhinaravcj;cbfaofpblbg8Ka8Aaofpblbg8LpmbzeHdOiAlCvXoQrLg8MaKaofpblbg8NaYaofpblbgypmbzeHdOiAlCvXoQrLg8PpmbezHdiOAlvCXorQLgaaip:Reaaalp:Tep9qgaahp9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9Abbbaradfgraha8Ma8PpmwDKYqk8AExm35Ps8E8Fgaaip:Reaaalp:Tep9qgap9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9Abbbaradfgraha8Ka8LpmwKDYq8AkEx3m5P8Es8Fg8Ka8NaypmwKDYq8AkEx3m5P8Es8Fg8LpmbezHdiOAlvCXorQLgaaip:Reaaalp:Tep9qgap9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9Abbbaradfgraha8Ka8LpmwDKYqk8AExm35Ps8E8Fgaaip:Reaaalp:Tep9qgap9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9AbbbaradfhraoczfgoaC6mbkkaEclfgEad6mbkdnaXavcjdf9hmbaAad2goTmbaOavcjdfao;8qbbkdnammbavaXaAcufad2fad;8qbbkaAaHfhHc9:hoaQhPaQmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdasaeao9Raoasfae6Eaofgoae6mbkaial9RhPkcbc99axaP9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbkNsezu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnalaeci9UgrcHf6mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbav9cu83iUav9cu83i8Wav9cu83iyav9cu83iaav9cu83iKav9cu83izav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbavaiaqaDcsGfRbbgscl4gP9RcsGcdtfydbaxcefgOaPEhDavaias9RcsGcdtfydbaOaPTgzfgOascsGgPEhsaPThPdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiazfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaPfhiaOaPfhxxekaxcbalRbbgsEgHaDc;:eSgDfhOascsGhAdndnascl4gCmbaOcefhzxekaOhzavaiaC9RcsGcdtfydbhOkdndnaAmbazcefhxxekazhxavaias9RcsGcdtfydbhzkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhHascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaHhDxekaDcefhDkasce4cbasceG9R7amfgmhHkdndnaCcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhOaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkaOhsxekascefhskaPce4cbaPceG9R7amfgmhOkdndnaAcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhzaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkazhlxekalcefhlkaPce4cbaPceG9R7amfgmhzkdndnadcd9hmbabarcetfgDaH87ebaDclfaz87ebaDcdfaO87ebxekabarcdtfgDaHBdbaDcwfazBdbaDclfaOBdbkavc;abfaocitfgDaOBdbaDaHBdlavaicdtfaHBdbavc;abfaocefcsGcitfgDazBdbaDaOBdlavaicefgicsGcdtfaOBdbavc;abfaocdfcsGcitfgDaHBdbaDazBdlavaiaCTaCcsSVfgicsGcdtfazBdbaiaATaAcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnalaecvf9pmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk;Toio97eue97aec98Ghedndnadcl9hmbaeTmecbhdinababpbbbgicKp:RecKp:Sep;6eglaicwp:RecKp:Sep;6ealp;Geaiczp:RecKp:Sep;6egvp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egralpxbbbjbbbjbbbjbbbjgwp9op9rp;Keglpxbb;:9cbb;:9cbb;:9cbb;:9calalp;Meaoaop;Meavaravawp9op9rp;Keglalp;Mep;Kep;Kep;Jep;Negvp;Mepxbbn0bbn0bbn0bbn0grp;KepxFbbbFbbbFbbbFbbbp9oaipxbbbFbbbFbbbFbbbFp9op9qalavp;Mearp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaoavp;Mearp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbabczfhbadclfgdae6mbxdkkaeTmbcbhdinabczfgDaDpbbbgipxbbbbbbFFbbbbbbFFgwp9oabpbbbgoaipmbediwDqkzHOAKY8AEgvczp:Reczp:Sep;6eglaoaipmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eavczp:Sep;6egvp;Gealp;Gep;Kep;Legipxbbbbbbbbbbbbbbbbp:2egralpxbbbjbbbjbbbjbbbjgqp9op9rp;Keglpxb;:FSb;:FSb;:FSb;:FSalalp;Meaiaip;Meavaravaqp9op9rp;Keglalp;Mep;Kep;Kep;Jep;Negvp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbp9oaiavp;Mearp;Keczp:Rep9qgialavp;Mearp;KepxFFbbFFbbFFbbFFbbp9oglpmwDKYqk8AExm35Ps8E8Fp9qpkbbabaoawp9oaialpmbezHdiOAlvCXorQLp9qpkbbabcafhbadclfgdae6mbkkk;2ileue97euo97dnaec98GgiTmbcbheinabcKfpx:ji:1S:ji:1S:ji:1S:ji:1SabpbbbglabczfgvpbbbgopmlvorxmPsCXQL358E8Fgrczp:Segwpxibbbibbbibbbibbbp9qp;6egDp;NegqaDaDp;MegDaDp;KealaopmbediwDqkzHOAKY8AEgDczp:Reczp:Sep;6eglalp;MeaDczp:Sep;6egoaop;Mearczp:Reczp:Sep;6egrarp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gDp;KepxFFbbFFbbFFbbFFbbgkp9oaqaop;MeaDp;Keczp:Rep9qgoaqalp;MeaDp;Keakp9oaqarp;MeaDp;Keczp:Rep9qgDpmwDKYqk8AExm35Ps8E8Fglp5eawclp:RegqpEi:T:j83ibavalp5baqpEd:T:j83ibabcwfaoaDpmbezHdiOAlvCXorQLgDp5eaqpEe:T:j83ibabaDp5baqpEb:T:j83ibabcafhbaeclfgeai6mbkkkuee97dnadcd4ae2c98GgeTmbcbhdinababpbbbgicwp:Recwp:Sep;6eaicep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbabczfhbadclfgdae6mbkkk:Sodw97euaec98Ghedndnadcl9hmbaeTmecbhdinabpxbbuJbbuJbbuJbbuJabpbbbgicKp:TeglaicYp:Tep9qgvcdp:Teavp9qgvclp:Teavp9qgop;6ep;Negvaicwp:RecKp:SegraipxFbbbFbbbFbbbFbbbgwp9ogDp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oavaDarp:Xeaiczp:RecKp:Segip:Uep;6ep;Meaqp;Keawp9op9qavaDaraip:Uep:Xep;6ep;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qavaoalcep:Rep9oalpxebbbebbbebbbebbbp9op9qp;6ep;Meaqp;KecKp:Rep9qpkbbabczfhbadclfgdae6mbxdkkaeTmbcbhdinabczfgkpxbFu9hbFu9hbFu9hbFu9habpbbbglakpbbbgrpmlvorxmPsCXQL358E8Fgvczp:TegqavcHp:Tep9qgicdp:Teaip9qgiclp:Teaip9qgicwp:Teaip9qgop;6ep;NegialarpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbglp9ograDczp:Segwp:Ueavczp:Reczp:SegDp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gvp;Kealp9oaiarawaDp:Uep:Xep;6ep;Meavp;Keczp:Rep9qgwaiaoaqcep:Rep9oaqpxebbbebbbebbbebbbp9op9qp;6ep;Meavp;Keczp:ReaiaDarp:Uep;6ep;Meavp;Kealp9op9qgipmwDKYqk8AExm35Ps8E8FpkbbabawaipmbezHdiOAlvCXorQLpkbbabcafhbadclfgdae6mbkkk9teiucbcbydj:G:cjbgeabcifc98GfgbBdj:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkxebcj:Gdklz:zbb",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(n)?a(t):a(e),r,s=WebAssembly.instantiate(o,{}).then(function(S){r=S.instance,r.exports.__wasm_call_ctors()});function a(S){for(var A=new Uint8Array(S.length),Z=0;Z96?R-97:R>64?R-39:R+4}for(var G=0,Z=0;Z0?y(S,A,Z,u[R],d[G]):s.then(function(){var E=new Uint8Array(S*A);return c(r,r.exports[u[R]],E,S,A,Z,r.exports[d[G]]),E})}}})();var txn=x(T(),1),$yn=(function(){var e="b9H79Tebbbe:6eO9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gouuuuuue999Gvuuuuueu9Gzuuuuuuuuuuu99uuuub9Gquuuuuuu99uueu9GPuuuuuuuuuuu99uueu9Gquuuuuuuu99ueu9Gruuuuuu99eu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9Gluuuub9GiuuueuiLQdilvorlwDiqkxmPszbHHbelve9Weiiviebeoweuecj:Gdkr:Bdxo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bw8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bD8A9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9O9v9W9K9HtWbqQ9TW79O9V9Wt9F79P9T9W29P9M959t29V9W9W95bkX9TW79O9V9Wt9F79P9T9W29P9M959qV919UWbxQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bmX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2WbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbs59TW79O9V9Wt9F9NW9UWV9HtW9q9V79Pt9P9V9U9sW9T9H9Wbzl79IV9RbHDwebcekdCXq;y;WeQdbk;r:herYue99iuY99Xue9:D998Jjjjjbcj;sb9Rgs8Kjjjjbcbhzasc:Cefcbc;Kbz:tjjjb8AdnabaeSmbabaeadcdtzMjjjb8AkdnamcdGTmbalcrfci4cbyd1:H:cjbHjjjjbbhHasc:Cefasyd;8egecdtfaHBdbasaecefBd;8ecbhlcbhednadTmbabheadhOinaHaeydbci4fcb86bbaeclfheaOcufgOmbkcbhlabheadhOinaHaeydbgAci4fgCaCRbbgCceaAcrGgAtV86bbaCcu7aA4ceGalfhlaeclfheaOcufgOmbkcualcdtalcFFFFi0Ehekaecbyd1:H:cjbHjjjjbbhzasc:Cefasyd;8egecdtfazBdbasaecefBd;8ealcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd1:H:cjbHjjjjbbhHasc:Cefasyd;8egAcdtfaHBdbasaAcefBd;8eaHcFeaOz:tjjjbhQdnadTmbaecufhLcbhKindndnaQabaKcdtfgYydbgAc:v;t;h;Ev2aLGgOcdtfgCydbgHcuSmbceheinazaHcdtfydbaASmdaOaefhHaecefheaQaHaLGgOcdtfgCydbgHcu9hmbkkazaXcdtfaABdbaCaXBdbaXhHaXcefhXkaYaHBdbaKcefgKad9hmbkkaQcbyd:m:H:cjbH:bjjjbbasasyd;8ecufBd;8ekcbh8AcualcefgecdtaecFFFFi0Ecbyd1:H:cjbHjjjjbbhLasc:Cefasyd;8egecdtfaLBdbasaLBdNeasaecefBd;8ecuadcitadcFFFFe0Ecbyd1:H:cjbHjjjjbbhEasc:Cefasyd;8egecdtfaEBdbasaEBd:yeasaecefBd;8eascNefabadalcbz:cjjjbcualcdtgealcFFFFi0Eg3cbyd1:H:cjbHjjjjbbhOasc:Cefasyd;8egHcdtfaOBdbasaHcefBd;8ea3cbyd1:H:cjbHjjjjbbhQasc:Cefasyd;8egHcdtfaQBdbasaHcefBd;8eaOaQaialavazasc:Cefz:djjjbalcbyd1:H:cjbHjjjjbbhYasc:Cefasyd;8egHcdtfaYBdbasaHcefBd;8ea3cbyd1:H:cjbHjjjjbbhHasc:Cefasyd;8egAcdtfaHBdbasaAcefBd;8ea3cbyd1:H:cjbHjjjjbbhAasc:Cefasyd;8egCcdtfaABdbasaCcefBd;8eaHcFeaez:tjjjbh5aAcFeaez:tjjjbh8EdnalTmbindnaLa8AgAcefg8AcdtfydbgCaLaAcdtgefydbgHSmbaCaH9Rh8FaEaHcitfhaa8Eaefhha5aefhKcbhCindndnaaaCcitfydbgXaA9hmbaKaABdbahaABdbxekdnaLaXcdtggfgeclfydbgHaeydbgeSmbaHae9RhHaEaecitfheinaeydbaASmdaecwfheaHcufgHmbkka8EagfgeaAaXaeydbcuSEBdbaKaXaAaKydbcuSEBdbkaCcefgCa8F9hmbkka8Aal9hmbkaOhHaQhAa5hXa8EhCcbheindndnaeaHydbgK9hmbdnaeaAydbgK9hmbaXydbhKdnaCydbg8Fcu9hmbaKcu9hmbaYaefcb86bbxikdna8FcuSmbaKcuSmbaea8FSmbaOa8FcdtfydbaOaKcdtfydb9hmbaYaefcd86bbxikaYaefhadnaea8FSmbaeaKSmbaace86bbxikaacl86bbxdkdnaeaQaKcdtg8Ffydb9hmbdnaCydbgacuSmbaeaaSmbaXydbggcuSmbaeagSmba8Ea8FfydbghcuSmbahaKSmba5a8Ffydbg8FcuSmba8FaKSmbdnaOaacdtfydbgKaOa8Fcdtfydb9hmbaKaOagcdtfydbg8FSmba8FaOahcdtfydb9hmbaYaefcd86bbxlkaYaefcl86bbxikaYaefcl86bbxdkaYaefcl86bbxekaYaefaYaKfRbb86bbkaHclfhHaAclfhAaXclfhXaCclfhCalaecefge9hmbkdnamcaGTmbcbh8JindndnaYa8Jfg8KRbbg8Lc9:fPibebekdndndnaOa8Jcdtfydbgea8J9hmbdnaqmbcbh8FxdkdnazTmbcbh8Fa8JheinaqazaecdtgefydbfRbbce4a8FVceGh8FaQaefydbgea8J9hmbxikkcbh8Fa8JheinaqaefRbbce4a8FVceGh8FaQaecdtfydbgea8J9hmbxdkkaYaefRbbhexeka8JheindnaLaecdtg8AfgeclfydbgHaeydbgeSmbaHae9RhgaEaecitfhhaOa8AfhacbhKinahaKcitfydbgXhednindnaLaecdtgCfgeclfydbgHaeydbgeSmbaHae9RhHaEaecitfheaaydbhAdninaOaeydbcdtfydbaASmeaecwfheaHcufgHTmdxbkkcbhexdkaQaCfydbgeaX9hmbkceheka8FaeVh8FaKcefgKag9hmbkkaQa8Afydbgea8J9hmbka8Lcia8FceGEheka8Kae86bbka8Jcefg8Jal9hmbkkdnaqTmbdndnazTmbazheaOhHalhAindnaqaeydbfRbbceGTmbaYaHydbfcl86bbkaeclfheaHclfhHaAcufgAmbxdkkaqheaOhHalhAindnaeRbbceGTmbaYaHydbfcl86bbkaecefheaHclfhHaAcufgAmbkkaOhealhAaYhHindnaYaeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaAcufgAmbkkamceGTmbaYhealhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcbh8Mcualcx2alc;v:Q;v:Qe0Ecbyd1:H:cjbHjjjjbbh8Nasc:Cefasyd;8egecdtfa8NBdbasaecefBd;8eascbBd:qeas9cb83i1ea8Naialavazasc1efz:ejjjbhydndnaDmbcbh8PcbhCxekcbhCawhecbhHindnaeIdbJbbbb9ETmbasaCcdtfaHBdbaCcefhCkaeclfheaDaHcefgH9hmbkcuaCal2gecdtaecFFFFi0Ecbyd1:H:cjbHjjjjbbh8Pasc:Cefasyd;8egecdtfa8PBdbasaecefBd;8ealTmbdnaCmbcbhCxekarcd4hgdnazTmbaCcdthhcbh8Fa8Phainaoaza8Fcdtfydbag2cdtfhKasheaahHaChAinaHaKaeydbcdtgXfIdbawaXfIdbNUdbaeclfheaHclfhHaAcufgAmbkaaahfhaa8Fcefg8Fal9hmbxdkkaCcdthhcbh8Fa8Phainaoa8Fag2cdtfhKasheaahHaChAinaHaKaeydbcdtgXfIdbawaXfIdbNUdbaeclfheaHclfhHaAcufgAmbkaaahfhaa8Fcefg8Fal9hmbkkcualc8S2gHalc;D;O;f8U0EgXcbyd1:H:cjbHjjjjbbheasc:Cefasyd;8egAcdtfaeBdbasaAcefBd;8eaecbaHz:tjjjbhIcbh8RcbhgdnaCTmbcbh8MaXcbyd1:H:cjbHjjjjbbhgasc:Cefasyd;8egecdtfagBdbasaecefBd;8eagcbaHz:tjjjb8AcuaCal2gecltgHaecFFFFb0Ecbyd1:H:cjbHjjjjbbh8Rasc:Cefasyd;8egecdtfa8RBdbasaecefBd;8ea8RcbaHz:tjjjb8AamcjjjjdGTmbcualcltgealcFFFFb0Ecbyd1:H:cjbHjjjjbbh8Masc:Cefasyd;8egHcdtfa8MBdbasaHcefBd;8ea8Mcbaez:tjjjb8AkdnadTmbcbhKabhHina8NaHclfydbg8Fcx2fgeIdba8NaHydbgacx2fgAIdbg8S:tgRa8NaHcwfydbghcx2fgXIdlaAIdlg8U:tg8VNaeIdla8U:tg8WaXIdba8S:tg8XN:tg8Ya8YNa8WaXIdwaAIdwg8Z:tg80NaeIdwa8Z:tg8Wa8VN:tg81a81Na8Wa8XNaRa80N:tg80a80NMMg8V:rhBa8Yh8Xa80h8Wa81hRdna8VJbbbb9EgATmba8YaB:vh8Xa80aB:vh8Wa81aB:vhRkaIaOaacdtfydbgXc8S2fgeaRaB:rg8VaRNNg83aeIdbMUdbaea8Wa8Va8WNgUNg85aeIdlMUdlaea8Xa8Va8XNg86Ng87aeIdwMUdwaeaRaUNgUaeIdxMUdxaea86aRNg88aeIdzMUdzaea8Wa86Ng89aeIdCMUdCaeaRa8Va8Xa8ZNaRa8SNa8Ua8WNMM:mg8:Ng86NgRaeIdKMUdKaea8Wa86Ng8WaeId3MUd3aea8Xa86Ng8XaeIdaMUdaaea86a8:Ng86aeId8KMUd8Kaea8VaeIdyMUdyaIaOa8Fcdtfydbg8Fc8S2fgea83aeIdbMUdbaea85aeIdlMUdlaea87aeIdwMUdwaeaUaeIdxMUdxaea88aeIdzMUdzaea89aeIdCMUdCaeaRaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea86aeId8KMUd8Kaea8VaeIdyMUdyaIaOahcdtfydbgac8S2fgea83aeIdbMUdbaea85aeIdlMUdlaea87aeIdwMUdwaeaUaeIdxMUdxaea88aeIdzMUdzaea89aeIdCMUdCaeaRaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea86aeId8KMUd8Kaea8VaeIdyMUdydna8MTmbdnaATmba8YaB:vh8Ya80aB:vh80a81aB:vh81ka8MaXcltfgeaBJbbbZNgRa80Ng8VaeIdlMUdlaeaRa8YNg8WaeIdwMUdwaeaRa81Ng8XaeIdbMUdbaeaRa8S:ma81Na8Ua80N:ta8Za8YN:tNgRaeIdxMUdxa8Ma8Fcltfgea8VaeIdlMUdlaea8WaeIdwMUdwaea8XaeIdbMUdbaeaRaeIdxMUdxa8Maacltfgea8VaeIdlMUdlaea8WaeIdwMUdwaea8XaeIdbMUdbaeaRaeIdxMUdxkaHcxfhHaKcifgKad6mbkkdnalTmbJq;x8J88J;n;m;m89J:v:;;w8ZamczGEamc;abGEh80cbhHaOhXazhKaIhea8NhAindnaHaXydb9hmbaHh8FdnazTmbaKydbh8Fka80hRdnaqTmbJbbjZa80aqa8FfRbbclGEhRkaecxfg8Fa8FIdbJbbbbMUdbaeczfg8Fa8FIdbJbbbbMUdbaecCfg8Fa8FIdbJbbbbMUdbaeaRaecyfg8FIdbg8YNgRaeIdbMUdbaeclfgaaRaaIdbMUdbaecwfgaaRaaIdbMUdbaecKfgaaaIdbaAIdbg8WaRN:tUdbaAcwfIdbh8Vaec3fgaaaIdbaRaAclfIdbg8XN:tUdbaecafgaaaIdbaRa8VN:tUdbaec8KfgaIdbh81a8Fa8YaRMUdbaaa81aRa8Va8VNa8Wa8WNa8Xa8XNMMNMUdbkaXclfhXaKclfhKaec8SfheaAcxfhAalaHcefgH9hmbkkdnadTmbcbh8Aabhainaba8Acdtfh8FcbhHinaYa8FaHc:G:G:cjbfydbcdtfydbgAfRbbhedndnaYaaaHfydbgXfRbbgKc99fcFeGcpe0mbaec99fcFeGc;:e6mekdnaKcufcFeGce0mba5aXcdtfydbaA9hmekdnaecufcFeGce0mba8EaAcdtfydbaX9hmekJbbacJbbacJbbbZaecFeGceSEaKcFeGceSEhUdna8Na8FaHc:K:G:cjbfydbcdtfydbcx2fgeIdwa8NaXcx2fgKIdwg86:tg8Sa8NaAcx2fghIdwa86:tg8Xa8XNahIdbaKIdbg8U:tg80a80NahIdlaKIdlg8Z:tg8Va8VNMMg81Na8Xa8Sa8XNaeIdba8U:tg83a80Na8VaeIdla8Z:tg85NMMg8WN:tg8Ya8YNa83a81Na80a8WN:tgRaRNa85a81Na8Va8WN:tg8Wa8WNMMgBJbbbb9ETmba8YaB:rgB:vh8Ya8WaB:vh8WaRaB:vhRkaUa81:rNgBa8Ya86NaRa8UNa8Za8WNMM:mg81Ng87a81Nh88a80a85Na8Va83N:tg81a81Na8Va8SNa8Xa85N:tg8Va8VNa8Xa83Na80a8SN:tg8Xa8XNMMg83:rh80a8Ya87Nh85a8Wa87Nh89aRa87Nh87a8WaBa8YNg8SNh8:a8SaRNhZaRaBa8WNgnNhca8Ya8SNh8Ya8WanNh8WaRaBaRNNh8Sdna83Jbbbb9ETmba81a80:vh81a8Xa80:vh8Xa8Va80:vh8VkaIaOaXcdtfydbc8S2fgeaeIdba8Sa8VaUa80:rNgRa8VNNMg80MUdbaea8Wa8XaRa8XNg8SNMg83aeIdlMUdlaea8Ya81aRa81Ng8WNMg8YaeIdwMUdwaeaca8Va8SNMg8SaeIdxMUdxaeaZa8Wa8VNMgUaeIdzMUdzaea8:a8Xa8WNMg8WaeIdCMUdCaea87a8VaRa81a86Na8Va8UNa8Za8XNMMg86:mNgRNMg8VaeIdKMUdKaea89a8XaRNMg8XaeId3MUd3aea85a81aRNMg81aeIdaMUdaaea88a86aRN:tgRaeId8KMUd8KaeaBaeIdyMUdyaIaOaAcdtfydbc8S2fgea80aeIdbMUdbaea83aeIdlMUdlaea8YaeIdwMUdwaea8SaeIdxMUdxaeaUaeIdzMUdzaea8WaeIdCMUdCaea8VaeIdKMUdKaea8XaeId3MUd3aea81aeIdaMUdaaeaRaeId8KMUd8KaeaBaeIdyMUdykaHclfgHcx9hmbkaacxfhaa8Acifg8Aad6mbkaCTmbcbhainJbbbbh80a8Nabaacdtfgeclfydbg8Fcx2fgHIdwa8Naeydbghcx2fgAIdwg8Z:tg8Va8VNaHIdbaAIdbg83:tg8Wa8WNaHIdlaAIdlg85:tg8Xa8XNMMg8Sa8Naecwfydbg8Acx2fgeIdwa8Z:tg8YNa8Va8YNa8WaeIdba83:tg81Na8XaeIdla85:tgBNMMgRa8VN:tJbbbbJbbjZa8Sa8Ya8YNa81a81NaBaBNMMg8UNaRaRN:tg86:va86Jbbbb9BEg86Nh88a8Ua8VNaRa8YN:ta86Nh89a8SaBNaRa8XN:ta86Nh8:a8Ua8XNaRaBN:ta86NhZa8Sa81NaRa8WN:ta86Nhna8Ua8WNaRa81N:ta86Nhca8WaBNa8Xa81N:tgRaRNa8Xa8YNa8VaBN:tgRaRNa8Va81Na8Wa8YN:tgRaRNMM:rJbbbZNhRa8PahaC2g8JcdtfhHa8Pa8AaC2gDcdtfhAa8Pa8FaC2g8KcdtfhXa8Z:mh9ca85:mhJa83:mh9eascjdfheaChKJbbbbhBJbbbbh86Jbbbbh8SJbbbbh8UJbbbbh8ZJbbbbh83Jbbbbh85Jbbbbh87JbbbbhUinaecwfaRa89aXIdbaHIdbg8Y:tg8XNa88aAIdba8Y:tg81NMg8VNUdbaeclfaRaZa8XNa8:a81NMg8WNUdbaeaRaca8XNana81NMg8XNUdbaecxfaRa9ca8VNaJa8WNa8Ya9ea8XNMMMg8YNUdbaRa8Va8WNNa8ZMh8ZaRa8Va8XNNa8UMh8UaRa8Wa8XNNa8SMh8SaRa8Ya8YNNaUMhUaRa8Va8YNNa87Mh87aRa8Wa8YNNa85Mh85aRa8Xa8YNNa83Mh83aRa8Va8VNNa86Mh86aRa8Wa8WNNaBMhBaRa8Xa8XNNa80Mh80aHclfhHaXclfhXaAclfhAaeczfheaKcufgKmbkagahc8S2fgea80aeIdbMUdbaeaBaeIdlMUdlaea86aeIdwMUdwaea8SaeIdxMUdxaea8UaeIdzMUdzaea8ZaeIdCMUdCaea83aeIdKMUdKaea85aeId3MUd3aea87aeIdaMUdaaeaUaeId8KMUd8KaeaRaeIdyMUdyaga8Fc8S2fgea80aeIdbMUdbaeaBaeIdlMUdlaea86aeIdwMUdwaea8SaeIdxMUdxaea8UaeIdzMUdzaea8ZaeIdCMUdCaea83aeIdKMUdKaea85aeId3MUd3aea87aeIdaMUdaaeaUaeId8KMUd8KaeaRaeIdyMUdyaga8Ac8S2fgea80aeIdbMUdbaeaBaeIdlMUdlaea86aeIdwMUdwaea8SaeIdxMUdxaea8UaeIdzMUdzaea8ZaeIdCMUdCaea83aeIdKMUdKaea85aeId3MUd3aea87aeIdaMUdaaeaUaeId8KMUd8KaeaRaeIdyMUdya8Ra8Jcltfh8FcbhHaChXina8FaHfgeascjdfaHfgAIdbaeIdbMUdbaeclfgKaAclfIdbaKIdbMUdbaecwfgKaAcwfIdbaKIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaHczfhHaXcufgXmbka8Ra8Kcltfh8FcbhHaChXina8FaHfgeascjdfaHfgAIdbaeIdbMUdbaeclfgKaAclfIdbaKIdbMUdbaecwfgKaAcwfIdbaKIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaHczfhHaXcufgXmbka8RaDcltfh8FcbhHaChXina8FaHfgeascjdfaHfgAIdbaeIdbMUdbaeclfgKaAclfIdbaKIdbMUdbaecwfgKaAcwfIdbaKIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaHczfhHaXcufgXmbkaacifgaad6mbkkcbhAdndnamcwGgTmbJbbbbh8ScbhScbh9hcbh9ixekcbhSa3cbyd1:H:cjbHjjjjbbh9iasc:Cefasyd;8egecdtfa9iBdbasaecefBd;8ecua9ialabadaOz:fjjjbgXcltaXcjjjjiGEcbyd1:H:cjbHjjjjbbh9hasc:Cefasyd;8egecdtfa9hBdbasaecefBd;8ea9haXa9ia8Nalz:gjjjbJFFuuh8SaXTmba9hheaXhHinaeIdbgRa8Sa8SaR9EEh8SaeclfheaHcufgHmbkaXhSkdnalTmbaLclfheaLydbhXaYhHalhKcbhAincbaeydbg8FaX9RaHRbbcpeGEaAfhAaHcefhHaeclfhea8FhXaKcufgKmbkaAce4hAkcuadaA9Rcifg6cx2a6c;v:Q;v:Qe0Ecbyd1:H:cjbHjjjjbbh9kasc:Cefasyd;8egecdtfa9kBdbasaecefBd;8ecua6cdta6cFFFFi0Ecbyd1:H:cjbHjjjjbbh0asc:Cefasyd;8egecdtfa0BdbasaecefBd;8ea3cbyd1:H:cjbHjjjjbbh9masc:Cefasyd;8egecdtfa9mBdbasaecefBd;8ealcbyd1:H:cjbHjjjjbbh9nasc:Cefasyd;8egecdtfa9nBdbasaecefBd;8eaxaxNayJbbjZamclGEgZaZN:vh87JbbbbhUdnadak9nmbdna6ci6mbaCclth9oa9kcwfh9pJbbbbh85JbbbbhUinascNefabadalaOz:cjjjbabh8Acbh9qcbh9rinaba9rcdtfhDcbheindnaOa8AaefydbgAcdtghfydbgXaOaDaec:W:G:cjbfydbcdtfydbgHcdtg8JfydbgKSmbaYaHfRbbgacv2aYaAfRbbg8FfRb;a:G:cjbg8La8Fcv2aafg8KRb;a:G:cjbg3VcFeGTmbdnaKaX9nmba8KRb;G:G:cjbcFeGmekdna8FcufcFeGce0mbaaTmba5ahfydbaH9hmekdna8FTmbaacufcFeGce0mba8Ea8JfydbaA9hmeka9ka9qcx2fgXaHaAa3cFeGgKEBdlaXaAaHaKEBdbaXaKa8LGcb9hBdwa9qcefh9qkaeclfgecx9hmbkdna9rcifg9rad9pmba8Acxfh8Aa9qcifa69nmekka9qTmdcbh8KinaIaOa9ka8Kcx2fghydbgKcdtgXfydbg8Ac8S2fgeIdwa8Nahydlg8Fcx2fgHIdwg8WNaeIdzaHIdbg8XNaeIdaMgRaRMMa8WNaeIdlaHIdlg8YNaeIdCa8WNaeId3MgRaRMMa8YNaeIdba8XNaeIdxa8YNaeIdKMgRaRMMa8XNaeId8KMMM:lhRJbbbbJbbjZaeIdyg8V:va8VJbbbb9BEh8VdndnahydwgDmbJFFuuh86xekJbbbbJbbjZaIaOa8Fcdtfydbc8S2fgeIdyg81:va81Jbbbb9BEaeIdwa8NaKcx2fgHIdwg81NaeIdzaHIdbg80NaeIdaMgBaBMMa81NaeIdlaHIdlgBNaeIdCa81NaeId3Mg81a81MMaBNaeIdba80NaeIdxaBNaeIdKMg81a81MMa80NaeId8KMMM:lNh86ka8VaRNhBdnaCTmbagaKc8S2fgAIdwa8WNaAIdza8XNaAIdaMgRaRMMa8WNaAIdla8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8Pa8FaC2gacdtfhHa8RaKaC2g8JcltfheaAIdyh81aChAinaHIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaHclfhHaeczfheaAcufgAmbkdndnaDmbJbbbbh8Vxekaga8Fc8S2fgAIdwa8NaKcx2fgeIdwg8XNaAIdzaeIdbg8YNaAIdaMg8Va8VMMa8XNaAIdlaeIdlg81NaAIdCa8XNaAId3Mg8Va8VMMa81NaAIdba8YNaAIdxa81NaAIdKMg8Va8VMMa8YNaAId8KMMMh8Va8Pa8JcdtfhHa8RaacltfheaAIdyh80aChAinaHIdbg8Wa8Wa80NaecxfIdba8XaecwfIdbNa8YaeIdbNa81aeclfIdbNMMMg8Wa8WM:tNa8VMh8VaHclfhHaeczfheaAcufgAmbka8V:lh8VkaBaR:lMhBa86a8VMh86dndndnaYaKfRbbc9:fPddbekaQaXfydbgXaKSmbaOa8Fcdtfydbh8Jindndna5aXcdtgafydbgecuSmbaOaecdtfydba8JSmekdna8EaafydbgecuSmbaOaecdtfydba8JSmeka8FhekagaXc8S2fgAIdwa8Naecx2fgHIdwg8WNaAIdzaHIdbg8XNaAIdaMgRaRMMa8WNaAIdlaHIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8PaeaC2cdtfhHa8RaXaC2cltfheaAIdyh81aChAinaHIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaHclfhHaeczfheaAcufgAmbkaBaR:lMhBaQaafydbgXaK9hmbkkaYa8FfRbbci9hmeaDTmeaQa8FcdtfydbgXa8FSmeindndna5aXcdtgafydbgecuSmbaOaecdtfydba8ASmekdna8EaafydbgecuSmbaOaecdtfydba8ASmekaKhekagaXc8S2fgAIdwa8Naecx2fgHIdwg8WNaAIdzaHIdbg8XNaAIdaMgRaRMMa8WNaAIdlaHIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8PaeaC2cdtfhHa8RaXaC2cltfheaAIdyh81aChAinaHIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaHclfhHaeczfheaAcufgAmbka86aR:lMh86aQaafydbgXa8F9hmbxdkkdna8Ea5a5aXfydba8FSEaQaXfydbgacdtfydbgXcu9hmbaQa8FcdtfydbhXkagaac8S2fgAIdwa8NaXcx2fgeIdwg8WNaAIdzaeIdbg8XNaAIdaMgRaRMMa8WNaAIdlaeIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8PaXaC2g8AcdtfhHa8RaaaC2g8JcltfheaAIdyh81aChAinaHIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaHclfhHaeczfheaAcufgAmbkdndnaDmbJbbbbh8VxekagaXc8S2fgAIdwa8Naacx2fgeIdwg8XNaAIdzaeIdbg8YNaAIdaMg8Va8VMMa8XNaAIdlaeIdlg81NaAIdCa8XNaAId3Mg8Va8VMMa81NaAIdba8YNaAIdxa81NaAIdKMg8Va8VMMa8YNaAId8KMMMh8Va8Pa8JcdtfhHa8Ra8AcltfheaAIdyh80aChAinaHIdbg8Wa8Wa80NaecxfIdba8XaecwfIdbNa8YaeIdbNa81aeclfIdbNMMMg8Wa8WM:tNa8VMh8VaHclfhHaeczfheaAcufgAmbka8V:lh8VkaBaR:lMhBa86a8VMh86kaha86aBa86aB9DgeEUdwahaKa8FaeaDcb9hGgeEBdlaha8FaKaeEBdba8Kcefg8Ka9q9hmbkascjdfcbcj;qbz:tjjjb8Aa9phea9qhHinascjdfaeydbcA4cF8FGgAcFAaAcFA6EcdtfgAaAydbcefBdbaecxfheaHcufgHmbkcbhecbhHinascjdfaefgAydbhXaAaHBdbaXaHfhHaeclfgecj;qb9hmbkcbhea9phHinascjdfaHydbcA4cF8FGgAcFAaAcFA6EcdtfgAaAydbgAcefBdba0aAcdtfaeBdbaHcxfhHa9qaecefge9hmbkadak9RgAci9Uh9sdnalTmbcbhea9mhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh9ta9ncbalz:tjjjbh3aAcO9Uh9ua9sce4h9rcbh8Lcbh8Kdnina9ka0a8Kcdtfydbcx2fg8JIdwgRa879Emea8La9s9pmeJFFuuh8Vdna9ra9q9pmba9ka0a9rcdtfydbcx2fIdwJbb;aZNh8VkdnaRa8V9ETmbaRaU9ETmba8La9u0mdkdna3aOa8JydlgDcdtg9vfg8AydbgAfg9wRbba3aOa8Jydbghcdtg9xfydbgefg9yRbbVmbaYahfRbbh9zdndnaLaecdtfgHclfydbgXaHydbgHSmbaXaH9RhXa8NaAcx2fh8Fa8Naecx2fhaaEaHcitfheindna9maeydbcdtfydbgHaASmba9maeclfydbcdtfydbgKaASmbaHaKSmba8NaKcx2fgKIdba8NaHcx2fgHIdbg8W:tgRaaIdlaHIdlg8X:tg80NaKIdla8X:tg8VaaIdba8W:tgBN:tg8YaRa8FIdla8X:tg86Na8Va8FIdba8W:tg8UN:tg8XNa8VaaIdwaHIdwg81:tg8ZNaKIdwa81:tg8Wa80N:tg80a8Va8FIdwa81:tg83Na8Wa86N:tg8VNa8WaBNaRa8ZN:tg81a8Wa8UNaRa83N:tgRNMMa8Ya8YNa80a80Na81a81NMMa8Xa8XNa8Va8VNaRaRNMMN:rJbbj8:N9FmikaecwfheaXcufgXmbkkdndndndna9zc9:fPdebdkahheina8AydbhAdndna5aecdtgHfydbgecuSmbaOaecdtfydbaASmekdna8EaHfydbgecuSmbaOaecdtfydbaASmekaDheka9maHfaeBdbaQaHfydbgeah9hmbxikkdna8Ea5a5a9xfydbaDSEaQa9xfydbghcdtfydbgecu9hmbaQa9vfydbheka9ma9xfaDBdbaehDka9mahcdtfaDBdbka9yce86bba9wce86bba8JIdwgRaUaUaR9DEhUa9tcefh9tcecda9zceSEa8Lfh8Lxeka9rcefh9rka8Kcefg8Ka9q9hmbkka9tTmddnalTmbcbh8Fcbhhindna9mahcdtgefydbgAahSmbaOaAcdtfydbh8AdnahaOaefydb9hg8JmbaIa8Ac8S2fgeaIahc8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya8MTmba8Ma8Acltfgea8MahcltfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxkaCTmbagaAc8S2fgeagahc8S2gDfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9oaA2haa8RhHaChXinaHaafgeaHa8FfgAIdbaeIdbMUdbaeclfgKaAclfIdbaKIdbMUdbaecwfgKaAcwfIdbaKIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaHczfhHaXcufgXmbka8JmbJbbbbJbbjZaIaDfgeIdygR:vaRJbbbb9BEaeIdwa8Na8Acx2fgHIdwgRNaeIdzaHIdbg8VNaeIdaMg8Wa8WMMaRNaeIdlaHIdlg8WNaeIdCaRNaeId3MgRaRMMa8WNaeIdba8VNaeIdxa8WNaeIdKMgRaRMMa8VNaeId8KMMM:lNgRa85a85aR9DEh85ka8Fa9ofh8Fahcefghal9hmbkcbhHa5heindnaeydbgAcuSmbdnaHa9maAcdtgXfydbgA9hmbcuhAa5aXfydbgXcuSmba9maXcdtfydbhAkaeaABdbkaeclfhealaHcefgH9hmbkcbhHa8EheindnaeydbgAcuSmbdnaHa9maAcdtgXfydbgA9hmbcuhAa8EaXfydbgXcuSmba9maXcdtfydbhAkaeaABdbkaeclfhealaHcefgH9hmbkka85aUaCEh85cbhHabhecbhAindnaOa9maeydbcdtfydbg8FcdtfydbgXaOa9maeclfydbcdtfydbgacdtfydbgKSmbaXaOa9maecwfydbcdtfydbg8AcdtfydbghSmbaKahSmbabaHcdtfgXa8FBdbaXcwfa8ABdbaXclfaaBdbaHcifhHkaecxfheaAcifgAad6mbkdndnaTmbaHhdxekdnaHak0mbaHhdxekdna8Sa859FmbaHhdxekJFFuuh8ScbhdabhecbhAindna9ha9iaeydbgXcdtfydbcdtfIdbgRa859ETmbaeclf8Pdbh9AabadcdtfgKaXBdbaKclfa9A83dbaRa8Sa8SaR9EEh8SadcifhdkaecxfheaAcifgAaH6mbkkadak0mbxdkkascNefabadalaOz:cjjjbkdndnadak0mbadhaxekdnaTmbadhaxekdna8Sa879FmbadhaxekcehKina8SJbb;aZNgRa87aRa879DEh8WJbbbbhRdnaSTmba9hheaShHinaeIdbg8VaRa8Va8W9FEaRa8VaR9EEhRaeclfheaHcufgHmbkkJFFuuh8ScbhaabhecbhHindna9ha9iaeydbgAcdtfydbcdtfIdbg8Va8W9ETmbaeclf8Pdbh9AabaacdtfgXaABdbaXclfa9A83dba8Va8Sa8Sa8V9EEh8SaacifhakaecxfheaHcifgHad6mbkdnaKaaad9hVceGmbadhaxdkaRaUaUaR9DEhUaaak9nmecbhKaahda8Sa879FmbkkdnamcjjjjdGTmba9ncbalz:tjjjbh8AdnaaTmbabheaahHina8AaeydbgAfce86bba8AaOaAcdtfydbfce86bbaeclfheaHcufgHmbkkascNefabaaalaOz:cjjjbdndnalTmbcbhXindna8AaXfRbbTmbdnaYaXfRbbgecl0mbceaetcQGmekdnaOaXcdtg8FfydbgeaXSmba8NaXcx2fgHa8Naecx2fgeydwBdwaHae8Pdb83dbxekaIaXc8S2fgKIdygcacJL:3;rUNgRMh87aKIdwg9BaRMh8SaKIdlg9CaRMh8UaKIdbg9DaRMh81aKIdag9EaRa8NaXcx2fg8JIdwg88N:th8ZaKId3g9FaRa8JIdlg89N:th83aKIdKg9Ga8JIdbg8:aRN:th80JbbbbhnaKIdCg9HJbbbbMh85aKIdzg9IJbbbbMhBaKIdxg9JJbbbbMh86dndnaCTmbaXhAinJbbbba87agaAc8S2fgHIdygR:vaRJbbbb9BEhRa8RaAaC2cltfheaHIdaa87Na8ZMh8ZaHId3a87Na83Mh83aHIdKa87Na80Mh80aHIdCa87Na85Mh85aHIdza87NaBMhBaHIdxa87Na86Mh86aHIdwa87Na8SMh8SaHIdla87Na8UMh8UaHIdba87Na81Mh81aChHina8ZaecwfIdbg8VaecxfIdbg8YNaRN:th8Za83aeclfIdbg8Wa8YNaRN:th83a85a8Wa8VNaRN:th85a81aeIdbg8Xa8XNaRN:th81a80a8Xa8YNaRN:th80aBa8Xa8VNaRN:thBa86a8Xa8WNaRN:th86a8Sa8Va8VNaRN:th8Sa8Ua8Wa8WNaRN:th8UaeczfheaHcufgHmbkaQaAcdtfydbgAaX9hmbka8MTmba8MaXcltfgeIdxhxaeIdwh9caeIdlhJaeIdbhRxekJbbbbhxJbbbbh9cJbbbbhJJbbbbhRkaBa81:vg8Wa80Na8Z:ta85aBa86a81:vg8VN:tg8Za8Ua86a8VN:tg8Y:vg8Xa8Va80Na83:tg8UN:th83a9caRa8WN:taJaRa8VN:tg86a8XN:tg85a8SaBa8WN:ta8Za8XN:tgB:vg8S:mh8Za86a8Y:vg9c:mhJdnJbbbbaRaRa81:vg9eN:ta86a9cN:ta85a8SN:tg86:la87J:983:g81NgR9ETmba8Za83NaJa8UNa9ea80Nax:tMMa86:vhnka81:laR9ETmba8Y:laR9ETmbaB:laR9ETmba9e:manNa8W:ma8ZanNa83aB:vMgBNa8V:maJanNa8X:maBNa8Ua8Y:vMMg85Na80:ma81:vMMMh87aLa8FfgeclfydbgHaeydbge9RhhaEaecitfh8FJbbbbhRdnaHaeSgDmbJbbbbhRa8FheahhAina8Naeclfydbcx2fgHIdwa88:tg8Va8VNaHIdba8::tg8Va8VNaHIdla89:tg8Va8VNMMg8Va8Naeydbcx2fgHIdwa88:tg8Wa8WNaHIdba8::tg8Wa8WNaHIdla89:tg8Wa8WNMMg8WaRaRa8W9DEgRaRa8V9DEhRaecwfheaAcufgAmbkaR:rgRaRNhRkaBa88:tg8Va8VNa87a8::tg8Va8VNa85a89:tg8Va8VNMMaR9EmbaKId8KhndnaDmbina8Na8Fclfydbcx2fgeIdba8Na8Fydbcx2fgHIdbg8W:tgRa89aHIdlg8X:tg80NaeIdla8X:tg8Va8:a8W:tg86N:tg8YaRa85a8X:tg8SNa8Va87a8W:tg8UN:tg8XNa8Va88aHIdwg81:tg8ZNaeIdwa81:tg8Wa80N:tg80a8VaBa81:tg83Na8Wa8SN:tg8VNa8Wa86NaRa8ZN:tg81a8Wa8UNaRa83N:tgRNMMa8Ya8YNa80a80Na81a81NMMa8Xa8XNa8Va8VNaRaRNMMN:rJbbj8:N9Fmda8Fcwfh8FahcufghmbkkJbbbbJbbjZac:vacJbbbb9BEgRa9BaBNa9Ia87Na9EMg8Va8VMMaBNa9Ca85Na9HaBNa9FMg8Va8VMMa85Na9Da87Na9Ja85Na9GMg8Va8VMMa87NanMMM:lNaRa9Ba88Na9Ia8:Na9EMg8Va8VMMa88Na9Ca89Na9Ha88Na9FMg8Va8VMMa89Na9Da8:Na9Ja89Na9GMg8Va8VMMa8:NanMMM:lNJbb;aZNJ:983:g81M9Emba8JaBUdwa8Ja85Udla8Ja87UdbkaXcefgXal9hmbkdnaCmbcbhCxdkcbhXindna8AaXfRbbTmbaOaXcdtgefydbaX9hmbaYaXfhhaQaefh8Ja8NaXcx2fhAa8PaXaC2cdtfhDcbhEincuhLdnahRbbci9hmbaXhLa8JydbgeaXSmba8PaEcdtgHfhKaDaHfIdbhRaXhLinaLhHcuhLdnaKaeaC2cdtfIdbaR9CmbaHcuSmbaHhLagaec8S2fIdyagaHc8S2fIdy9ETmbaehLkaQaecdtfydbgeaX9hmbkka8PaEcdtfhKa8RaEcltfh8FaXheinaKaeaC2cdtfJbbbbJbbjZagaeaLaLcuSEgHc8S2fIdygR:vaRJbbbb9BEa8FaHaC2cltfgHIdwaAIdwNaHIdbaAIdbNaHIdlaAIdlNMMaHIdxMNUdbaQaecdtfydbgeaX9hmbkaEcefgEaC9hmbkkaXcefgXal9hmbxdkkaCmbcbhCkaiavaoarawaCala8Na8Pazasayasc1efaYa8Aaqz:hjjjbkdnamcjjjjlGTmbazmbaaTmbabhecbhLinaYaeydbgAfRbbc3thQaecwfgXydbhHcjjjj94hCdna5aAcdtgEfydbaeclfgKydbgOSmbcjjjj94cba8EaOcdtfydbaASEhCkaeaQaCVaAVBdbaYaOfRbbc3th8Fcjjjj94hCcjjjj94hQdna5aOcdtfydbaHSmbcjjjj94cba8EaHcdtfydbaOSEhQkaKa8FaQVaOVBdbaYaHfRbbc3thOdna5aHcdtfydbaASmbcjjjj94cba8EaEfydbaHSEhCkaXaOaCVaHVBdbaecxfheaLcifgLaa6mbkkdnazTmbaaTmbaaheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPaZaU:rNUdbkdnasyd;8egHTmbaHcdtasc:Ceffc98fheinaeydbcbyd:m:H:cjbH:bjjjbbaec98fheaHcufgHmbkkascj;sbf8Kjjjjbaak;Yieouabydlhvabydbclfcbaicdtz:tjjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd1:H:cjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:tjjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd:m:H:cjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkabclfhbawclfhwaiaDcefgD9hmbkkk;:odvuv998Jjjjjbca9Rgocbyd1:G:cjbBdKaocb8Pdj:G:cjb83izaocbydN:G:cjbBdwaocb8Pd:m:G:cjb83ibdnadTmbaicd4hrdnabmbdnalTmbcbhwinaealawcdtfydbar2cdtfhDcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxikkarcdthwcbhDincbhiinaoczfaifgqaeaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaeawfheaDcefgDad9hmbxdkkdnalTmbcbhwinabawcx2fgiaealawcdtfydbar2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxdkkarcdthlcbhwaehDinabawcx2fgiaeawar2cdtfgqIdbUdbaiaqIdlUdlaiaqIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaDalfhDawcefgwad9hmbkkJbbbbaoIdbaoIdzgx:tgkakJbbbb9DEgkaoIdlaoIdCgm:tgPaPak9DEgkaoIdwaoIdKgP:tgsasak9DEhsdnabTmbadTmbJbbbbJbbjZas:vasJbbbb9BEhkinabakabIdbax:tNUdbabclfgoakaoIdbam:tNUdbabcwfgoakaoIdbaP:tNUdbabcxfhbadcufgdmbkkdnavTmbavaPUdwavamUdlavaxUdbkask:WlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvyd:G:G:cjbcdtfydbcdtfydbhodnalawavfydbcdtfydbgqabaqcdtfgkydbgvSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnaoabaocdtfgkydbgvSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnaxabavfgDydbgvSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhkabhvcbhoindndnaoalydbgq9hmbdnaoavydbgq9hmbavakBdbakcefhkxdkavabaqcdtfydbBdbxekavabaqcdtfydbBdbkalclfhlavclfhvaeaocefgo9hmbkakk;jiilud99euabcbaecltz:tjjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakaqakIdlMUdlakaDakIdwMUdwakakIdxJbbjZMUdxaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhkaehrinakcxfgoIdbhDaocbBdbakakIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbakclfgoaDaoIdbNUdbakcwfgoaDaoIdbNUdbakczfhkarcufgrmbkkdnalTmbinavadydbcltfgkaicwfIdbakIdw:tgDaDNaiIdbakIdb:tgDaDNaiclfIdbakIdl:tgDaDNMMgDakIdxgqaqaD9DEUdxadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhkinabakIdbUdbakczfhkabclfhbaecufgembkkk:moerudnaoTmbaecd4hzdnavTmbaicd4hHavcdthOcbhAindnaPaAfRbbTmbaAhednaDTmbaDaAcdtfydbhekdnasTmbasaefRbbceGmekdnamaAfRbbclSmbabaeaz2cdtfgiaraAcx2fgCIdbakNaxIdbMUdbaiaCIdlakNaxIdlMUdlaiaCIdwakNaxIdwMUdwkadaeaH2cdtfhXaqheawhiavhCinaXaeydbcdtgQfaiIdbalaQfIdb:vUdbaeclfheaiclfhiaCcufgCmbkkawaOfhwaAcefgAao9hmbxdkkdnasmbcbheaDhiindnaPaefRbbTmbaehCdnaDTmbaiydbhCkamaefRbbclSmbabaCaz2cdtfgCarIdbakNaxIdbMUdbaCarclfIdbakNaxIdlMUdlaCarcwfIdbakNaxIdwMUdwkaiclfhiarcxfhraoaecefge9hmbxdkkdnaDTmbindnaPRbbTmbasaDydbgefRbbceGmbamRbbclSmbabaeaz2cdtfgearIdbakNaxIdbMUdbaearclfIdbakNaxIdlMUdlaearcwfIdbakNaxIdwMUdwkaPcefhPaDclfhDamcefhmarcxfhraocufgombxdkkazcdthicbheindnaPaefRbbTmbasaefRbbceGmbamaefRbbclSmbabarIdbakNaxIdbMUdbabclfarclfIdbakNaxIdlMUdbabcwfarcwfIdbakNaxIdwMUdbkarcxfhrabaifhbaoaecefge9hmbkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbkRbababaeadaialavaoarawaDaqakaxcjjjjdVamz:bjjjbk:g8Koque99due99duq998Jjjjjbc;Wb9Rgq8Kjjjjbcbhkaqcxfcbc;Kbz:tjjjb8Aaqcualcx2alc;v:Q;v:Qe0Ecbyd1:H:cjbHjjjjbbgxBdxaqceBd2axaialavcbcbz:ejjjb8AaqcualcdtalcFFFFi0Egmcbyd1:H:cjbHjjjjbbgiBdzaqcdBd2dndnJFF959eJbbjZawJbbjZawJbbjZ9DE:vawJ9VO:d869DEgw:lJbbb9p9DTmbaw:OhPxekcjjjj94hPkadci9Uhsarco9UhzdndnaombaPcd9imekdnalTmbaPcuf:YhwdnaoTmbcbhvaihHaxhOindndnaoavfRbbceGTmbavcjjjjlVhAxekdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHaOcxfhOalavcefgv9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkadTmbcbhkaehvcbhOinakaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgA9haiavydbcdtfydbgXaH9haXaA9hGGfhkavcxfhvaOcifgOad6mbkkarci9UhQdndnaz:Z:rJbbbZMgw:lJbbb9p9DTmbaw:Ohvxekcjjjj94hvkaQ:ZhLcbhKc:bwhzdninakaQ9pmeazaP9Rcd9imeavazcufgOavaO9iEaPcefavaP9kEhYdnalTmbaYcuf:YhwdnaoTmbcbhOaihHaxhvindndnaoaOfRbbceGTmbaOcjjjjlVhAxekdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHavcxfhvalaOcefgO9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkcbhOdnadTmbaehvcbhHinaOaiavclfydbcdtfydbgAaiavcwfydbcdtfydbgX9haiavydbcdtfydbgraA9haraX9hGGfhOavcxfhvaHcifgHad6mbkkdnas:ZgCaL:taY:Ygwaz:Y:tg8ANak:ZgEaO:Zg3:tNaEaL:tawaP:Y:tg5Na3aC:tNMg8EJbbbb9BmbaCaE:ta5a8Aa3aL:tNNNa8E:vawMhwkdndnaOaQ0mbaOhkaYhPxekaOhsaYhzkdndnaKcl0mbdnawJbbbZMgw:lJbbb9p9DTmbaw:Ohvxdkcjjjj94hvxekaPazfcd9ThvkaKcefgKcs9hmbkkdndndnakmbJbbjZhwcbhOcdhvaDmexdkalcd4alfhHcehOinaOgvcethOavaH6mbkcbhOaqcuavcdtgYavcFFFFi0Ecbyd1:H:cjbHjjjjbbgKBdCaqciBd2aqamcbyd1:H:cjbHjjjjbbgzBdKaqclBd2dndndndnalTmbaPcuf:YhwaoTmecbhOaihAaxhHindndnaoaOfRbbceGTmbaOcjjjjlVhXxekdndnaHclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqthXdndnaHcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkaXarVhXdndnaHIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkaXarcCtVhXkaAaXBdbaAclfhAaHcxfhHalaOcefgO9hmbxikkaKcFeaYz:tjjjb8AcbhPcbhvxdkaxhOaihHalhAindndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcCthXdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkarcqtaXVhXdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkaHaXarVBdbaOcxfhOaHclfhHaAcufgAmbkkaKcFeaYz:tjjjbhravcufhocbhPcbhYindndndnaraiaYcdtgKfydbgAcm4aA7c:v;t;h;Ev2gvcs4av7aoGgHcdtfgXydbgOcuSmbcehvinaiaOcdtgOfydbaASmdaHavfhOavcefhvaraOaoGgHcdtfgXydbgOcu9hmbkkaXaYBdbaPhvaPcefhPxekazaOfydbhvkazaKfavBdbaYcefgYal9hmbkcuaPc8S2gOaPc;D;O;f8U0EhvkcbhXaqavcbyd1:H:cjbHjjjjbbgvBd3aqcvBd2avcbaOz:tjjjbhOdnadTmbaehiinaxaiclfydbgrcx2fgvIdbaxaiydbgocx2fgHIdbg3:tgCaxaicwfydbgYcx2fgAIdlaHIdlg8A:tgwNavIdla8A:tgEaAIdba3:tg8EN:tgLaLNaEaAIdwaHIdwg5:tg8FNavIdwa5:tgEawN:tgwawNaEa8ENaCa8FN:tgCaCNMMg8E:rhEJbbnnJbbjZazaocdtfydbgvazarcdtfydbgASavazaYcdtfydbgrSGgHEh8Fdna8EJbbbb9ETmbaLaE:vhLaCaE:vhCawaE:vhwkaOavc8S2fgvavIdbawa8FaE:rNgEawNNg8FMUdbavaCaEaCNgaNghavIdlMUdlavaLaEaLNg8ENggavIdwMUdwavawaaNgaavIdxMUdxava8EawNg8JavIdzMUdzavaCa8ENg8EavIdCMUdCavawaEaLa5Nawa3Na8AaCNMM:mg8ANg3NgwavIdKMUdKavaCa3NgCavId3MUd3avaLa3NgLavIdaMUdaava3a8ANg3avId8KMUd8KavaEavIdyMUdydnaHmbaOaAc8S2fgva8FavIdbMUdbavahavIdlMUdlavagavIdwMUdwavaaavIdxMUdxava8JavIdzMUdzava8EavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava3avId8KMUd8KavaEavIdyMUdyaOarc8S2fgva8FavIdbMUdbavahavIdlMUdlavagavIdwMUdwavaaavIdxMUdxava8JavIdzMUdzava8EavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava3avId8KMUd8KavaEavIdyMUdykaicxfhiaXcifgXad6mbkkcbhAaqcuaPcdtgvaPcFFFFi0Egicbyd1:H:cjbHjjjjbbgHBdaaqcoBd2aqaicbyd1:H:cjbHjjjjbbgiBd8KaqcrBd2aHcFeavz:tjjjbhYdnalTmbazhHinJbbbbJbbjZaOaHydbgXc8S2fgvIdygw:vawJbbbb9BEavIdwaxcwfIdbgwNavIdzaxIdbgCNavIdaMgLaLMMawNavIdlaxclfIdbgLNavIdCawNavId3MgwawMMaLNavIdbaCNavIdxaLNavIdKMgwawMMaCNavId8KMMM:lNhwdndnaYaXcdtgvfgXydbcuSmbaiavfIdbaw9ETmekaXaABdbaiavfawUdbkaHclfhHaxcxfhxalaAcefgA9hmbkkdndnaPmbJbbbbhwxekJbbbbhwinaiIdbgCawawaC9DEhwaiclfhiaPcufgPmbkaw:rhwkakcd4akfhOcehiinaigvcethiavaO6mbkcbhOaqcuavcdtgiavcFFFFi0Ecbyd1:H:cjbHjjjjbbgHBdyaHcFeaiz:tjjjbhXdnadTmbavcufhrcbhPcbhxindnazaeaxcdtfgvydbcdtfydbgiazavclfydbcdtfydbgOSmbaiazavcwfydbcdtfydbgvSmbaOavSmbaYavcdtfydbhAdndnaYaOcdtfydbgvaYaicdtfydbgi9pmbavaA9pmbaAhlaihoavhAxekdnaAai9pmbaAav9pmbaihlavhoxekavhlaAhoaihAkabaPcx2fgvaABdbavcwfaoBdbavclfalBdbdnaXaoc:3F;N8N2alc:F:b:DD27aAc;D;O:B8J27arGgOcdtfgvydbgicuSmbcehHinaHhvdnabaicx2fgiydbaA9hmbaiydlal9hmbaiydwaoSmikavcefhHaXaOavfarGgOcdtfgvydbgicu9hmbkkavaPBdbaPcefhPkaxcifgxad6mbkaPci2hOkcwhvaDTmekaDawUdbkavcdthvaqcxfc98fhiinaiavfydbcbyd:m:H:cjbH:bjjjbbavc98fgvmbkaqc;Wbf8KjjjjbaOk:3ldrue9:8Jjjjjbc;Wb9Rgr8Kjjjjbcbhwarcxfcbc;Kbz:tjjjb8AdnabaeSmbabaeadcdtzMjjjb8AkarcualcdtalcFFFFi0EgDcbyd1:H:cjbHjjjjbbgqBdxarceBd2aqcbaialavcbarcxfz:djjjbcualcx2alc;v:Q;v:Qe0Ecbyd1:H:cjbHjjjjbbhkarcxfaryd2gxcdtfakBdbaraxcefgmBd2akaialavcbcbz:ejjjb8AarcxfamcdtfaDcbyd1:H:cjbHjjjjbbgiBdbaraxcdfgvBd2arcxfavcdtfcuaialaeadaqz:fjjjbgecltaecjjjjiGEcbyd1:H:cjbHjjjjbbgqBdbaqaeaiakalz:gjjjbaxcifhkdnadTmbaoaoNhocbhwabhlcbheindnaqaialydbgvcdtfydbcdtfIdbao9ETmbalclf8PdbhPabawcdtfgDavBdbaDclfaP83dbawcifhwkalcxfhlaecifgead6mbkkdnakTmbaxcdtarcxffcwfhlinalydbcbyd:m:H:cjbH:bjjjbbalc98fhlakcufgkmbkkarc;Wbf8Kjjjjbawk:WCoDud99vue99vuv998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:tjjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd1:H:cjbHjjjjbbgqBdxawceBd2aqaeadaicbcbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd1:H:cjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd1:H:cjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhCcbhXadhQcbhLinaeaCcufgiaeai9iEaPcefaeaP9kEhDdndnadTmbaDcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMgK:lJbbb9p9DTmbaK:OhYxekcjjjj94hYkaYcCthYdndnaiclfIdbaONJbbbZMgK:lJbbb9p9DTmbaK:Oh8Axekcjjjj94h8Aka8AcqtaYVhYdndnaicwfIdbaONJbbbZMgK:lJbbb9p9DTmbaK:Oh8Axekcjjjj94h8AkaeaYa8AVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:tjjjbhEcbh3cbh5indnaEaxa5cdtfydbgYcm4aY7c:v;t;h;Ev2gics4ai7aAGgmcdtfg8AydbgecuSmbaeaYSmbcehiinaEamaifaAGgmcdtfg8AydbgecuSmeaicefhiaeaY9hmbkka8AaYBdba3aecuSfh3a5cefg5ad9hmbxdkkazcFeasz:tjjjb8Acbh3kdnaQ:ZgKaH:taD:YgOaC:Y:tg8ENaX:Zg8Fa3:Zga:tNa8FaH:taOaP:Y:tghNaaaK:tNMggJbbbb9BmbaKa8F:taha8EaaaH:tNNNag:vaOMhOkaPaDa3ar0giEhPaXa3aiEhXdna3arSmbaDaCaiEgCaP9Rcd9imbdndnaLcl0mbdnaOJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPaCfcd9Theka3aQaiEhQaLcefgLcs9hmekkdndnaXmbcihicbhDxekcbhiawakcbyd1:H:cjbHjjjjbbg5BdKawclBd2aPcuf:YhKdndnadTmbaqhiaxheadhmindndnaiIdbaKNJbbbZMgO:lJbbb9p9DTmbaO:OhYxekcjjjj94hYkaYcCthYdndnaiclfIdbaKNJbbbZMgO:lJbbb9p9DTmbaO:Oh8Axekcjjjj94h8Aka8AcqtaYVhYdndnaicwfIdbaKNJbbbZMgO:lJbbb9p9DTmbaO:Oh8Axekcjjjj94h8AkaeaYa8AVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:tjjjbhEcbhDcbh3indndndnaEaxa3cdtgCfydbgYcm4aY7c:v;t;h;Ev2gics4ai7aAGgmcdtfg8AydbgecuSmbcehiinaxaecdtgefydbaYSmdamaifheaicefhiaEaeaAGgmcdtfg8Aydbgecu9hmbkka8Aa3BdbaDhiaDcefhDxeka5aefydbhika5aCfaiBdba3cefg3ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:tjjjb8AcbhDcbhekawaecbyd1:H:cjbHjjjjbbgeBd3awcvBd2aecbaiz:tjjjbh8Aavcd4hxdnadTmbdnalTmbaxcdthEa5hYaqhealhmadhAina8AaYydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiamIdbaiIdxMUdxaiamclfIdbaiIdzMUdzaiamcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaYclfhYaecxfheamaEfhmaAcufgAmbxdkka5hmaqheadhYina8Aamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaYcufgYmbkkdnaDTmba8AhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhYawcuaDcdtgCaDcFFFFi0Egicbyd1:H:cjbHjjjjbbgeBdaawcoBd2awaicbyd1:H:cjbHjjjjbbgEBd8KaecFeaCz:tjjjbh3dnadTmbaoJbbjZJbbjZaK:vaPceSENgOaONhKaxcdthxalheinaKaec;8:G:cjbalEgmIdwa8Aa5ydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna3aAcdtgifgmydbcuSmbaEaifIdbaO9ETmekamaYBdbaEaifaOUdbka5clfh5aqcxfhqaeaxfheadaYcefgY9hmbkkaba3aCzMjjjb8Acrhikaicdthiawcxfc98fheinaeaifydbcbyd:m:H:cjbH:bjjjbbaic98fgimbkkawc;Wbf8KjjjjbaDk:Pdidui99ducbhi8Jjjjjbca9Rglcbyd1:G:cjbBdKalcb8Pdj:G:cjb83izalcbydN:G:cjbBdwalcb8Pd:m:G:cjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk9DeeuabcFeaicdtz:tjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Bidqui998Jjjjjbc;Wb9Rgl8Kjjjjbalcxfcbc;Kbz:tjjjb8Aadcd4adfhvcehoinaogrcethoarav6mbkalcuarcdtgoarcFFFFi0Ecbyd1:H:cjbHjjjjbbgvBdxavcFeaoz:tjjjbhwdnadTmbaicd4hDarcufhqcbhkindndnawcbaeakaD2cdtfgrydlgiaicjjjj94SEgocH4ao7c:F:b:DD2cbarydbgxaxcjjjj94SEgocH4ao7c;D;O:B8J27cbarydwgmamcjjjj94SEgrcH4ar7c:3F;N8N27aqGgvcdtfgrydbgocuSmbam::hPai::hsax::hzcehiinaihrdnaeaoaD2cdtfgiIdbaz9CmbaiIdlas9CmbaiIdwaP9BmikarcefhiawavarfaqGgvcdtfgrydbgocu9hmbkkarakBdbakhokabakcdtfaoBdbakcefgkad9hmbkkalydxcbyd:m:H:cjbH:bjjjbbalc;Wbf8Kjjjjbk9teiucbcbyd:q:H:cjbgeabcifc98GfgbBd:q:H:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:H:cjbgeabcrfc94GfgbBd:q:H:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd:q:H:cjbge9Rcifc98GaefgbBd:q:H:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akkk:Kedbcj:Gdk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbeeeeeebebbeeebeebbbbebebbbbbbbbbbbbbbbbbbc1:Hdkxebbbdbbb:G:qbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(A){n=A.instance,n.exports.__wasm_call_ctors()});function o(A){for(var Z=new Uint8Array(A.length),R=0;R96?G-97:G>64?G-39:G+4}for(var E=0,R=0;R=3),a(n.exports.meshopt_generatePositionRemap,A,A.length/Z,Z)},simplify:function(A,Z,R,G,E,v){r(A instanceof Uint32Array||A instanceof Int32Array||A instanceof Uint16Array||A instanceof Int16Array),r(A.length%3==0),r(Z instanceof Float32Array),r(Z.length%R==0),r(R>=3),r(G>=0&&G<=A.length),r(G%3==0),r(E>=0);for(var I=0,X=0;X<(v?v.length:0);++X)r(v[X]in S),I|=S[v[X]];var Y=A.BYTES_PER_ELEMENT==4?A:new Uint32Array(A),g=u(n.exports.meshopt_simplify,Y,A.length,Z,Z.length/R,R*4,G,E,I);return g[0]=A instanceof Uint32Array?g[0]:new A.constructor(g[0]),g},simplifyWithAttributes:function(A,Z,R,G,E,v,I,X,Y,g){r(A instanceof Uint32Array||A instanceof Int32Array||A instanceof Uint16Array||A instanceof Int16Array),r(A.length%3==0),r(Z instanceof Float32Array),r(Z.length%R==0),r(R>=3),r(G instanceof Float32Array),r(G.length==E*(Z.length/R)),r(E>=0),r(I==null||I instanceof Uint8Array),r(I==null||I.length==Z.length/R),r(X>=0&&X<=A.length),r(X%3==0),r(Y>=0),r(Array.isArray(v)),r(E>=v.length),r(v.length<=32);for(var C=0;C=0);for(var V=0,C=0;C<(g?g.length:0);++C)r(g[C]in S),V|=S[g[C]];var L=A.BYTES_PER_ELEMENT==4?A:new Uint32Array(A),P=m(n.exports.meshopt_simplifyWithAttributes,L,A.length,Z,Z.length/R,R*4,G,E*4,new Float32Array(v),I,X,Y,V);return P[0]=A instanceof Uint32Array?P[0]:new A.constructor(P[0]),P},simplifyWithUpdate:function(A,Z,R,G,E,v,I,X,Y,g){r(A instanceof Uint32Array||A instanceof Int32Array||A instanceof Uint16Array||A instanceof Int16Array),r(A.length%3==0),r(Z instanceof Float32Array),r(Z.length%R==0),r(R>=3),r(G instanceof Float32Array),r(G.length==E*(Z.length/R)),r(E>=0),r(I==null||I instanceof Uint8Array),r(I==null||I.length==Z.length/R),r(X>=0&&X<=A.length),r(X%3==0),r(Y>=0),r(Array.isArray(v)),r(E>=v.length),r(v.length<=32);for(var C=0;C=0);for(var V=0,C=0;C<(g?g.length:0);++C)r(g[C]in S),V|=S[g[C]];var L=A.BYTES_PER_ELEMENT==4?A:new Uint32Array(A),P=p(n.exports.meshopt_simplifyWithUpdate,L,A.length,Z,Z.length/R,R*4,G,E*4,new Float32Array(v),I,X,Y,V);if(A!==L)for(var C=0;C=3),b(n.exports.meshopt_simplifyScale,A,A.length/Z,Z*4)},simplifyPoints:function(A,Z,R,G,E,v){return r(A instanceof Float32Array),r(A.length%Z==0),r(Z>=3),r(R>=0&&R<=A.length/Z),G?(r(G instanceof Float32Array),r(G.length%E==0),r(E>=3),r(A.length/Z==G.length/E),f(n.exports.meshopt_simplifyPoints,A,A.length/Z,Z*4,G,E*4,v||0,R)):f(n.exports.meshopt_simplifyPoints,A,A.length/Z,Z*4,void 0,0,0,R)},simplifySloppy:function(A,Z,R,G,E,v){r(A instanceof Uint32Array||A instanceof Int32Array||A instanceof Uint16Array||A instanceof Int16Array),r(A.length%3==0),r(Z instanceof Float32Array),r(Z.length%R==0),r(R>=3),r(G==null||G instanceof Uint8Array),r(G==null||G.length==Z.length/R),r(E>=0&&E<=A.length),r(E%3==0),r(v>=0);var I=A.BYTES_PER_ELEMENT==4?A:new Uint32Array(A),X=y(n.exports.meshopt_simplifySloppy,I,A.length,Z,Z.length/R,R*4,G,E,v);return X[0]=A instanceof Uint32Array?X[0]:new A.constructor(X[0]),X},simplifyPrune:function(A,Z,R,G){r(A instanceof Uint32Array||A instanceof Int32Array||A instanceof Uint16Array||A instanceof Int16Array),r(A.length%3==0),r(Z instanceof Float32Array),r(Z.length%R==0),r(R>=3),r(G>=0);var E=A.BYTES_PER_ELEMENT==4?A:new Uint32Array(A),v=_(n.exports.meshopt_simplifyPrune,E,A.length,Z,Z.length/R,R*4,G);return v=A instanceof Uint32Array?v:new A.constructor(v),v}}})();var oxn=x(T(),1),nxn=(function(){var e="b9H79Tebbbe:neP9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gouuuuuueu9Gruuuuuuub9Gxuuuuuuuuuuuueu9Gxuuuuuuuuuuu99eu9GPuuuuuuuuuuuuu99b9Gouuuuuub9Gwuuuuuuuub9Gvuuuuub9GluuuubiQXdilvorwDqokoqxmbiibeilve9Weiiviebeoweuecj:Gdkr;Zeqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeY9TW79O9V9Wt9F9I919P29K9nW79O2Wt7S2W94bd39TW79O9V9Wt9F9I919P29K9nW79O2Wt79t9W9Ht9P9H2bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7bw39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bkE9TW79O9V9Wt9F9J9V9T9W91tW9t9W9OWVW9c9V919U9K7bxL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2WtbPl79IV9RbsDwebcekdOAq;W:leXdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:88JDPue99eux99due99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:rjjjb8AcuaocdtgsaocFFFFi0Ehzcbyd;0:G:cjbhHdndnalcb9imbaoal9nmbamazaHHjjjjbbgHBd:CwamceBd;8wamazcbyd;0:G:cjbHjjjjbbgOBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;0:G:cjbHjjjjbbgABd:KwamciBd;8waihzalhsinaHazydbcdtfcbBdbazclfhzascufgsmbkaihzalhsinaHazydbcdtfgCaCydbcefBdbazclfhzascufgsmbkaihzalhCcbhXindnaHazydbcdtgQfgsydbcb9imbaOaQfaXBdbasasydbgQcjjjj94VBdbaQaXfhXkazclfhzaCcufgCmbkalci9UhLdnalci6mbcbhzaihsinascwfydbhCasclfydbhXaOasydbcdtfgQaQydbgQcefBdbaAaQcdtfazBdbaOaXcdtfgXaXydbgXcefBdbaAaXcdtfazBdbaOaCcdtfgCaCydbgCcefBdbaAaCcdtfazBdbascxfhsaLazcefgz9hmbkkaihzalhsindnaHazydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaOaCfgCaCydbaQ9RBdbkazclfhzascufgsmbxdkkamazaHHjjjjbbgHBd:CwamceBd;8wamazcbyd;0:G:cjbHjjjjbbgOBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;0:G:cjbHjjjjbbgABd:KwamciBd;8waHcbasz:rjjjbhXaihzalhsinaXazydbcdtfgCaCydbcefBdbazclfhzascufgsmbkalci9UhLdnaoTmbcbhzaOhsaXhCaohQinasazBdbasclfhsaCydbazfhzaCclfhCaQcufgQmbkkdnalci6mbcbhzaihsinascwfydbhCasclfydbhQaOasydbcdtfgKaKydbgKcefBdbaAaKcdtfazBdbaOaQcdtfgQaQydbgQcefBdbaAaQcdtfazBdbaOaCcdtfgCaCydbgCcefBdbaAaCcdtfazBdbascxfhsaLazcefgz9hmbkkaoTmbcbhzaohsinaOazfgCaCydbaXazfydb9RBdbazclfhzascufgsmbkkamaLcbyd;0:G:cjbHjjjjbbgzBd:OwamclBd;8wazcbaLz:rjjjbhYamcuaLcK2alcjjjjd0Ecbyd;0:G:cjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihsa8AhzaLhrJbbbbh5inavasclfydbaK2cdtfgCIdlh8EavasydbaK2cdtfgXIdlhEavascwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgazaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbazclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyazcxfa8EaE:tg8Eagah:tggNaaah:tgaa8FaE:tghN:tgEJbbbbJbbjZa8Ja8K:tg8FahNa8Ea8La8K:tg8KN:tghahNaEaENaaa8KNa8FagN:tgEaENMMg8K:rg8E:va8KJbbbb9BEg8KNUdbazczfaEa8KNUdbazcCfaha8KNUdbazcwfa8Maya8NMMJbbnn:vUdba5a8EMh5ascxfhsazcKfhzarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;0:G:cjbHjjjjbbgCBd:WwamcoBd;8waq:Zhhdna3mbcbhzaChsinasazBdbasclfhsaLazcefgz9hmbkkaEahNhhamcuaLcltalcFFFFd0Ecbyd;0:G:cjbHjjjjbbg8PBd:0wamcrBd;8wcba8Pa8AaCaLcbz:djjjb8AJFFuuh8MJFFuuh8NJFFuuhydnalci6mbJFFuuhya8AhzaLhsJFFuuh8NJFFuuh8MinazcwfIdbgEa8Ma8MaE9EEh8MazclfIdbgEa8Na8NaE9EEh8NazIdbgEayayaE9EEhyazcKfhzascufgsmbkkah:rhEamaocetgzcuaocu9kEcbyd;0:G:cjbHjjjjbbgCBd:4wdndnaoal9nmbaihzalhsinaCazydbcetfcFFi87ebazclfhzascufgsmbxdkkaCcFeazz:rjjjb8AkaEJbbbZNh8JcuhIdnalci6mbcbhsJFFuuhEa8AhzcuhIinazcwfIdba8M:tghahNazIdbay:tghahNazclfIdba8N:tghahNMM:rghaEaIcuSahaE9DVgXEhEasaIaXEhIazcKfhzaLascefgs9hmbkkamczfcbcjwz:rjjjb8Aam9cb83iwam9cb83ibaxa8JNh8RJbbjZak:th8Lcbh8SJbbbbhRJbbbbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8Ycbh8ZcbhPinJbbbbhEdna8STmbJbbjZa8S:Z:vhEkJbbbbhhdna8Ya8YNa8Wa8WNa8Xa8XNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8VaENh8Ka8UaENh5aRaENh8EaIhLdndndndndna8SaPVTmbamydwg80Tmea8YahNh8Fa8XahNhaa8WahNhgaeamydbcdtfh81cbh3JFFuuhEcvhQcuhLindnaHa81a3cdtfydbcdtgzfydbgvTmbaAaOazfydbcdtfhsindndnaCaiasydbgKcx2fgzclfydbgrcetf8Vebcs4aCazydbgXcetf8Vebcs4faCazcwfydbglcetf8Vebcs4fgombcbhzxekcehzaHaXcdtfydbgXceSmbcehzaHarcdtfydbgrceSmbcehzaHalcdtfydbglceSmbdnarcdSaXcdSfalcdSfcd6mbaocefhzxekaocdfhzkdnazaQ9kmba8AaKcK2fgXIdwa8K:tghahNaXIdba8E:tghahNaXIdla5:tghahNMM:ra8J:va8LNJbbjZMJ9VO:d86JbbjZaXIdCa8FNaXIdxagNaaaXIdzNMMakN:tghahJ9VO:d869DENghaEazaQ6ahaE9DVgXEhEaKaLaXEhLazaQaXEhQkasclfhsavcufgvmbkka3cefg3a809hmbkkaLcu9hmekama8KUd:ODama5Ud:KDama8EUd:GDamcuBd:qDamcFFF;7rBdjDa8Pcba8AaYamc:GDfamc:qDfamcjDfz:ejjjbamyd:qDhLdndnaxJbbbb9ETmba8SaD6mbaLcuSmeceh3amIdjDa8R9EmixdkaLcu9hmekdna8STmbabaPcltfgHam8Piw83dwaHam8Pib83dbaPcefhPkc3hHinamc:CwfaHfydbcbyd;4:G:cjbH:bjjjbbaHc98fgHc989hmbxvkkcbh3a8Saq9pmbamydwaCaiaLcx2fgzydbcetf8Vebcs4aCazcwfydbcetf8Vebcs4faCazclfydbcetf8Vebcs4ffaw9nmekcbhzcbhsdna8ZTmbcbhsamczfhXinamczfascdtfaXydbgQBdbaXclfhXasaYaQfRbbTfhsa8Zcufg8ZmbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDinamcjDfazfcFFF;7rBdbazclfgzcz9hmbkasc;8easclfc:bd6Eg8Zcdth80dnalTmbaeaXcdtfhocbhrindnaHaoarcdtfydbcdtgzfydbgvTmbaAaOazfydbcdtfhscuhQcuhzinaHaiasydbgKcx2fgXclfydbcdtfydbaHaXydbcdtfydbfaHaXcwfydbcdtfydbfgXazaXaz6gXEhzaKaQaXEhQasclfhsavcufgvmbkaQcuSmba8AaQcK2fgsIdwa8M:tgEaENasIdbay:tgEaENasIdla8N:tgEaENMM:rhEcbhsindndnazamc:qDfasfgvydbgX6mbazaX9hmeaEamcjDfasfIdb9FTmekavazBdbamc:GDfasfaQBdbamcjDfasfaEUdbxdkasclfgscz9hmbkkarcefgral9hmbkkamczfa80fhQcbhzcbhsindnamc:GDfazfydbgXcuSmbaQascdtfaXBdbascefhskazclfgzcz9hmbkasa8Zfg8ZTmbJFFuuhhcuhKamczfhza8ZhvcuhQina8AazydbgXcK2fgsIdwa8M:tgEaENasIdbay:tgEaENasIdla8N:tgEaENMM:rhEdndnaHaiaXcx2fgsclfydbcdtfydbaHasydbcdtfydbfaHascwfydbcdtfydbfgsaQ6mbasaQ9hmeaEah9DTmekaEhhashQaXhKkazclfhzavcufgvmbkaKcuSmbaKhLkdnamaiaLcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbhRJbbbbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YkcbhXinaAaOaraXcdtfydbcdtgsfydbcdtfgKhzaHasfgvydbgQhsdnaQTmbdninazydbaLSmeazclfhzascufgsTmdxbkkazaKaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaLcK2fgzIdbhEazIdlhhazIdwh8KazIdxh5azIdzh8EazIdCh8FaYaLfce86bba8Ya8FMh8Ya8Xa8EMh8Xa8Wa5Mh8Wa8Va8KMh8Va8UahMh8UaRaEMhRamydxh8Sxbkkamc:WDf8KjjjjbaPkjoivuv99lu8Jjjjjbca9Rgo8Kjjjjbdndnalcw0mbaiydbhraeabcitfgwalcdtciVBdlawarBdbdnalcd6mbaiclfhralcufhDawcxfhwinarydbhqawcuBdbawc98faqBdbawcwfhwarclfhraDcufgDmbkkalabfhwxekcbhqaocbBdKao9cb83izaocbBdwao9cb83ibJbbjZhkJbbjZhxinadaiaqcdtfydbcK2fhDcbhwinaoczfawfgraDawfIdbgmarIdbgP:tgsaxNaPMgPUdbaoawfgrasamaP:tNarIdbMUdbawclfgwcx9hmbkJbbjZakJbbjZMgk:vhxaqcefgqal9hmbkcbhradcbcecdaoIdlgmaoIdwgP9GEgwaoIdbgsaP9GEawasam9GEgzcdtgwfhHaoczfawfIdbhmaihwalhDinaiarcdtfgqydbhOaqawydbgABdbawaOBdbawclfhwaraHaAcK2fIdbam9DfhraDcufgDmbkdndnarcv6mbavc8X9kmbaralc98f6mekaiydbhraeabcitfgwalcdtciVBdlawarBdbaiclfhralcufhDawcxfhwinarydbhqawcuBdbawc98faqBdbawcwfhwarclfhraDcufgDmbkalabfhwxekaeabcitfgwamUdbawawydlc98GazVBdlabcefaeadaiaravcefgqz:djjjbhDawawydlciGaDabcu7fcdtVBdlaDaeadaiarcdtfalar9Raqz:djjjbhwkaocaf8Kjjjjbawk;Oddvue99dninabaecitfgrydlgwcd4gDTmednawciGgqci9hmbcihqdnawcl6mbabaecitfhbcbheawhqcehkindnaiabydbgDfRbbmbcbhkadaDcK2fgwIdwalIdw:tgxaxNawIdbalIdb:tgxaxNawIdlalIdl:tgxaxNMM:rgxaoIdb9DTmbaoaxUdbavaDBdbarydlhqkabcwfhbaecefgeaqcd46mbkakceGTmikaraqciGBdlskdnabcbaDalaqcdtfIdbarIdb:tgxJbbbb9FEgwaD7aecefgDfgecitfydlabawaDfgDcitfydlVci0mbaraqBdlkabaDadaialavaoz:ejjjbax:laoIdb9Fmbkkkjlevudndnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0mbakmbcbhDabydxaq6mekavawcltfgxab8Pdw83dwaxab8Pdb83dbabydbhDdnabydwgwTmbaoaDcdtfhxawhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkabaDawfBdbabydxhxab9cb83dwababydlaxci2fBdlaP8VebhscehDcbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk:mPrHue99eue99eue99iu8Jjjjjbc;W;Gb9Rgx8KjjjjbdndnalmbcbhmxekcbhPaxc:m;Gbfcbc;Kbz:rjjjb8Aaxcualci9UgscltascjjjjiGEcbyd;0:G:cjbHjjjjbbgzBd:m9GaxceBd;S9GaxcuascK2gHcKfalcpFFFe0Ecbyd;0:G:cjbHjjjjbbgOBd:q9GaxcdBd;S9Gdnalci6gAmbarcd4hCascdthXaOhQazhLinavaiaPcx2fgrydwaC2cdtfhKavarydlaC2cdtfhYavarydbaC2cdtfh8AcbhraLhEinaQarfgma8Aarfg3Idbg5aYarfg8EIdbg8Fa5a8F9DEg5UdbamaKarfgaIdbg8Fa5a8Fa59DEg8FUdbamcxfgma3Idbg5a8EIdbgha5ah9EEg5UdbamaaIdbgha5aha59EEg5UdbaEa8Fa5MJbbbZNUdbaEaXfhEarclfgrcx9hmbkaQcKfhQaLclfhLaPcefgPas9hmbkkaOaHfgr9cb83dbar9cb83dzar9cb83dwaxcuascx2gralc:bjjjl0Ecbyd;0:G:cjbHjjjjbbgHBdN9GaxciBd;S9GascdthgazarfhvaxcwVhPaxclVhCaHh8Jazh8KcbhLinaxcbcj;Gbz:rjjjbhEaLas2cdthadnaAmba8Khrash3inaEarydbgmc8F91cjjjj94Vam7gmcQ4cx2fg8Ea8EydwcefBdwaEamcd4cFrGcx2fg8Ea8EydbcefBdbaEamcx4cFrGcx2fgmamydlcefBdlarclfhra3cufg3mbkkazaafh8AaHaafhXcbhmcbh3cbh8EcbhainaEamfgrydbhQara3BdbarcwfgKydbhYaKaaBdbarclfgrydbhKara8EBdbaQa3fh3aYaafhaaKa8Efh8Eamcxfgmcj;Gb9hmbkdnaAmbcbhravhminamarBdbamclfhmasarcefgr9hmbkavhrashminaEa8Aarydbg3cdtfydbg8Ec8F91a8E7cd4cFrGcx2fg8Ea8Eydbg8EcefBdbaXa8Ecdtfa3Bdbarclfhramcufgmmbka8JhrashminaCa8Aarydbg3cdtfydbg8Ec8F91a8E7cx4cFrGcx2fg8Ea8Eydbg8EcefBdbava8Ecdtfa3BdbarclfhramcufgmmbkavhrashminaPa8Aarydbg3cdtfydbg8Ec8F91cjjjj94Va8E7cQ4cx2fg8Ea8Eydbg8EcefBdbaXa8Ecdtfa3Bdbarclfhramcufgmmbkka8Jagfh8Ja8Kagfh8KaLcefgLci9hmbkaEaocetgrcuaocu9kEcbyd;0:G:cjbHjjjjbbgKBd:y9GaEclBd;S9Gdndnaoal9nmbaihralhminaKarydbcetfcFFi87ebarclfhramcufgmmbxdkkaKcFearz:rjjjb8Akcbh8EaEascbyd;0:G:cjbHjjjjbbg8ABd:C9GaOaHaHascdtfaHascitfa8AascbazaKaiawaDaqakz:hjjjbdndnalci6mba8Ahrashmina8EarRbbfh8EarcefhramcufgmmbkaE9cb83iwaE9cb83ibalawc9:fgrfcufar9UgrasaDfcufaD9Ugmaram0EhYcbhmcbhra8Ehaincbh3dnarTmba8AarfRbbceSh3kamaEaiaHydbcx2fgQydbaQclfydbaQcwfydbaKabaeadamawaqa3a3ce7a8EaY9nVaaamfaY6VGz:fjjjbfhmaHclfhHaaa8AarfRbb9Rhaasarcefgr9hmbkaEydxTmeabamcltfgraE8Piw83dwaraE8Pib83dbamcefhmxekaE9cb83iwaE9cb83ibcbhmkczhrinaEc:m;Gbfarfydbcbyd;4:G:cjbH:bjjjbbarc98fgrc989hmbkkaxc;W;Gbf8Kjjjjbamk:wKDQue99iue99iul9:euw99iu8Jjjjjbc;qb9RgP8Kjjjjbaxhsaxhzdndnavax0gHmbdnavTmbcbhOaehzavhAinawaDazydbcx2fgCcwfydbcetfgX8VebhQawaCclfydbcetfgL8VebhKawaCydbcetfgC8VebhYaXce87ebaLce87ebaCce87ebaOaKcs4aYcs4faQcs4ffhOazclfhzaAcufgAmbkaehzavhAinawaDazydbcx2fgCcwfydbcetfcFFi87ebawaCclfydbcetfcFFi87ebawaCydbcetfcFFi87ebazclfhzaAcufgAmbkcehzaqhsaOaq0mekalce86bbalcefcbavcufz:rjjjb8AxekaPaiBdxaPadBdwaPaeBdlavakaqci9Ug8Aaka8Aak6EaHEgK9RhEaxaK9Rh3aKcufh5aKceth8EaKcdtgCc98fh8FavcitgOaC9Rarfc98fhaascufhhavcufhgaraOfh8JJbbjZas:Y:vh8KcbazceakaxSEg8Lcdtg8M9Rh8NJFFuuhycuh8PcbhIcbh8RinaPclfa8RcdtfydbhQaPcb8Pd:y:G:cjbg8S83i9iaPcb8Pd:q:G:cjbgR83inaPcb8Pd1:G:cjbg8U83iUaPcb8Pdj:G:cjbg8V83i8WaPa8S83iyaPaR83iaaPa8U83iKaPa8V83izaQavcdtgYfh8WcbhXinabaQaXcdtgLfydbcK2fhAcbhzinaPc8WfazfgCaAazfgOIdbg8XaCIdbg8Ya8Xa8Y9DEUdbaCczfgCaOcxfIdbg8XaCIdbg8Ya8Xa8Y9EEUdbazclfgzcx9hmbkaba8WaXcu7cdtfydbcK2fhAcbhzaPIdUh8ZaPId9ih80aPId80h81aPId9ehBaPId8Wh83aPIdnhUinaPczfazfgCaAazfgOIdbg8XaCIdbg8Ya8Xa8Y9DEUdbaCczfgCaOcxfIdbg8XaCIdbg8Ya8Xa8Y9EEUdbazclfgzcx9hmbkaraLfgza80a8Z:tg8XaUa83:tg8YNa8YaBa81:tg8ZNa8Za8XNMMUdbazaYfaPIdyaPIdK:tg8XaPIdaaPIdz:tg8YNa8YaPId8KaPIdC:tg8ZNa8Za8XNMMUdbaXcefgXav9hmbkcbh85dnaHmbcbhAaQhza8JhCavhXinawaDazydbcx2fgOcwfydbcetfgL8Vebh8WawaOclfydbcetfg858Vebh86awaOydbcetfgO8Vebh87aLce87eba85ce87ebaOce87ebaCaAa86cs4a87cs4fa8Wcs4ffgABdbazclfhzaCclfhCaXcufgXmbkavhCinawaDaQydbcx2fgzcwfydbcetfcFFi87ebawazclfydbcetfcFFi87ebawazydbcetfcFFi87ebaQclfhQaCcufgCmbka8Jh85kdndndndndndndndndndndnava8E6mba8Eax9nmeavavaK9UgzaK29Raza320mda5aE9pmqa85Th87ceh8WaEhQxwka5ag9pmDa8Eax9nmixokavaK6mea5aE9pmwcehQaEhXa85Tmixlka5ag6mlxrka5ag9pmokcbhQaghXa85mekJFFuuh8XcbhLa5hzindnazcefgCaK6mbaQavaC9RgOaK6GmbarazcdtfIdbg8YaC:YNaravaz9RcdtfaYfc94fIdbg8ZaO:YNMg80a8X9Embdndna8KaOahf:YNg81:lJbbb9p9DTmba81:OhAxekcjjjj94hAka8ZasaA2aO9R:YNh8Zdndna8Kazasf:YNg81:lJbbb9p9DTmba81:OhOxekcjjjj94hOkamasaO2aC9R:Ya8YNa8ZMNa80Mg8Ya8Xa8Ya8X9DgOEh8XaCaLaOEhLkaza8LfgzaX6mbxlkkJFFuuh8XcbhLaEhCaahAa8FhOaKhzindnazaK6mbaQaCaK6GmbaraOfIdbg8Yaz:YNaAIdbg8ZaC:YNMg80a8X9Embdndna8Ka85aOfydbgYahf:YNg81:lJbbb9p9DTmba81:Oh8Wxekcjjjj94h8Wkamasa8W2aY9R:Yg81a8YNa8Za81NMNa80Mg8Ya8Xa8Ya8X9DgYEh8XazaLaYEhLkaCa8L9RhCaAa8NfhAaOa8MfhOaza8LfgzcufaX6mbxikka85Th87cbh8WaghQkJFFuuh8XcbhLaEhCaahAa8FhOaKhzindnazazaK9UgXaK29RaXa320mbdna8WTmbaCaCaK9UgXaK29RaXa320mekaraOfIdbg8Yaz:YNaAIdbg8ZaC:YNMg80a8X9EmbazhXaChYdna87mba85aOfydbgXhYkdndna8KaYahf:YNg81:lJbbb9p9DTmba81:Oh86xekcjjjj94h86ka8Zasa862aY9R:YNh8Zdndna8KaXahf:YNg81:lJbbb9p9DTmba81:OhYxekcjjjj94hYkamasaY2aX9R:Ya8YNa8ZMNa80Mg8Ya8Xa8Ya8X9DgXEh8XazaLaXEhLkaCa8L9RhCaAa8NfhAaOa8MfhOaza8LfgzcufaQ6mbkkaLTmba8Xay9DTmba8XhyaLhIa8Rh8Pka8Rcefg8Rci9hmbkdndnaoc8X9kmba8Pcb9omeka8Acufh85cbhYindndndnavaY9RaxaYaxfav0Eg8WTmbcbhAaeaYcdtfgzhCa8WhXinawaDaCydbcx2fgOcwfydbcetfgQ8VebhbawaOclfydbcetfgL8VebhrawaOydbcetfgO8VebhKaQce87ebaLce87ebaOce87ebaAarcs4aKcs4fabcs4ffhAaCclfhCaXcufgXmbka8WhOinawaDazydbcx2fgCcwfydbcetfcFFi87ebawaCclfydbcetfcFFi87ebawaCydbcetfcFFi87ebazclfhzaOcufgOmbkaAaq0mekalaYfgzce86bbazcefcba8Wcufz:rjjjb8AxekalaYfgzce86bbazcefcba85z:rjjjb8Aa8Ah8Wka8WaYfgYav9pmdxbkkaravcdtg8WfhLdnaITmbaPclfa8PcdtfydbhzaIhCinaLazydbfcb86bbazclfhzaCcufgCmbkkdnavaI9nmbaPclfa8PcdtfydbaIcdtfhzavaI9RhCinaLazydbfce86bbazclfhzaCcufgCmbkkcbhYindnaYa8PSmbcbhzaraPclfaYcdtfydbgKa8Wz:qjjjbhCavhXaIhOinaKaOazaLaCydbgQfRbbgAEcdtfaQBdbaCclfhCaOaAfhOazaA9RcefhzaXcufgXmbkkaYcefgYci9hmbkabaeadaialaIaocefgCarawaDaqakaxamz:hjjjbabaeaIcdtgzfadazfaiazfalaIfavaI9RaCarawaDaqakaxamz:hjjjbkaPc;qbf8Kjjjjbk:Seeru8Jjjjjbc:q;ab9Rgo8Kjjjjbaoc:q8WfcFecjzz:rjjjb8AcbhrdnadTmbaehwadhDinaoarcdtfawydbgqBdbaoc:q8WfaqcFiGcdtfgkydbhxakaqBdbawclfhwaraxaq9hfhraDcufgDmbkkabaeadaoaraiavz:jjjjbaoc:q;abf8Kjjjjbk;Sqloud99euD998Jjjjjbc:W;ab9Rgr8KjjjjbdndnadTmbaocd4hwcbhDcbhqindnavaeclfydbaw2cdtfgkIdbavaeydbaw2cdtfgxIdbgm:tgPavaecwfydbaw2cdtfgsIdlaxIdlgz:tgHNakIdlaz:tgOasIdbam:tgAN:tgCaCNaOasIdwaxIdwgX:tgQNakIdwaX:tgOaHN:tgHaHNaOaANaPaQN:tgPaPNMMgOJbbbb9Bmbarc8WfaDcltfgkaCaO:rgO:vgCUdwakaPaO:vgPUdlakaHaO:vgHUdbakaCaXNaHamNazaPNMM:mUdxaDcefhDkaecxfheaqcifgqad6mbkab9cb83dyab9cb83daab9cb83dKab9cb83dzab9cb83dwab9cb83dbaDTmearcbBd8Sar9cb83iKar9cb83izarczfavalaoarc8Sfcbcraiz:kjjjbarIdKhQarIdChLarIdzhKar9cb83iwar9cb83ibararc8WfaDczarc8Sfcbcicbz:kjjjbJbbbbhmdnarIdwgzazNarIdbgHaHNarIdlgXaXNMMgCJbbbb9BmbJbbjZaC:r:vhmkazamNhCaXamNhXaHamNhHJbbjZhmarc8WfheaDhvinaecwfIdbaCNaeIdbaHNaXaeclfIdbNMMgzamazam9DEhmaeczfheavcufgvmbkabaQUdwabaLUdlabaKUdbabarId3UdxdndnamJ;n;m;m899FmbJbbbbhzarc8WfheinaecxfIdbaQaecwfIdbgPNaKaeIdbgONaLaeclfIdbgANMMMaCaPNaHaONaXaANMM:vgPazaPaz9EEhzaeczfheaDcufgDmbkabaCUd8KabaXUdaabaHUd3abaQaCazN:tUdKabaLaXazN:tUdCabaKaHazN:tUdzabJbbjZamamN:t:rgmUdydndnaCJbbj:;aCJbbj:;9GEgzJbbjZazJbbjZ9FEJbb;:9cNJbbbZJbbb:;aCJbbbb9GEMgz:lJbbb9p9DTmbaz:Ohexekcjjjj94hekabae86b8UdndnaXJbbj:;aXJbbj:;9GEgzJbbjZazJbbjZ9FEJbb;:9cNJbbbZJbbb:;aXJbbbb9GEMgz:lJbbb9p9DTmbaz:Ohvxekcjjjj94hvkabav86bRdndnaHJbbj:;aHJbbj:;9GEgzJbbjZazJbbjZ9FEJbb;:9cNJbbbZJbbb:;aHJbbbb9GEMgz:lJbbb9p9DTmbaz:Ohwxekcjjjj94hwkabaw86b8SdndnaecKtcK91:YJbb;:9c:vaC:t:lavcKtcK91:YJbb;:9c:vaX:t:lawcKtcK91:YJbb;:9c:vaH:t:lamMMMJbb;:9cNJbbjZMgm:lJbbb9p9DTmbam:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dyab9cb83daab9cb83dKab9cb83dzab9cb83dwab9cb83dbkarc:W;abf8Kjjjjbk;7woDuo99eue99euv998Jjjjjbcje9Rgw8Kjjjjbawc;abfcbaocdtgDz:rjjjb8Aawc;GbfcbaDz:rjjjb8AawcafhDawhqaohkinaqcFFF97BdbaDcFFF;7rBdbaqclfhqaDclfhDakcufgkmbkavcd4hxaicd4hmdnadTmbaocx2hPcbhsinashzdnarTmbarascdtfydbhzkaeazam2cdtfgDIdwhHaDIdlhOaDIdbhAalazax2cdtfIdbhCcbhDawcafhqawc;Gbfhvawhkawc;abfhiinaCaDc:O:G:cjbfIdbaHNaDc:G:G:cjbfIdbaANaDc:K:G:cjbfIdbaONMMgXMhQazhLdnaXaC:tgXaqIdbgK9DgYmbavydbhLkavaLBdbazhLdnaQakIdbg8A9EmbaiydbhLa8AhQkaiaLBdbakaQUdbaqaXaKaYEUdbaiclfhiakclfhkavclfhvaqclfhqaPaDcxfgD9hmbkascefgsad9hmbkkJbbbbhQcbhLawc;GbfhDawc;abfhqcbhkinalaqydbgvax2cdtfIdbalaDydbgiax2cdtfIdbaeavam2cdtfgvIdwaeaiam2cdtfgiIdw:tgCaCNavIdbaiIdb:tgCaCNavIdlaiIdl:tgCaCNMM:rMMgCaQaCaQ9EgvEhQakaLavEhLaqclfhqaDclfhDaoakcefgk9hmbkJbbbbhCdnaeawc;abfaLcdtgqfydbgkam2cdtfgDIdwaeawc;Gbfaqfydbgvam2cdtfgqIdwgH:tgXaXNaDIdbaqIdbgA:tg8Aa8ANaDIdlaqIdlgE:tgOaONMMgKJbbbb9ETmbaK:rgCalakax2cdtfIdbMalavax2cdtfIdb:taCaCM:vhCkaQJbbbZNhKaXaCNaHMhHaOaCNaEMhOa8AaCNaAMhAdnadTmbcbhqarhkinaqhDdnarTmbakydbhDkdnalaDax2cdtfIdbg3aeaDam2cdtfgDIdwaH:tgQaQNaDIdbaA:tgCaCNaDIdlaO:tgXaXNMMg5:rgEMg8EaK9ETmbJbbbbh8Adna5Jbbbb9ETmba8EaK:taEaEM:vh8Aka8AaQNaHMhHa8AaXNaOMhOa8AaCNaAMhAa3aKaEMMJbbbZNhKkakclfhkadaqcefgq9hmbkkabaKUdxabaHUdwabaOUdlabaAUdbawcjef8Kjjjjbk:reevu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwcbhDdnaiTmbarhiawhqinaiaeadRbbgkcdtfydbBdbaDakcefgkaDak0EhDaiclfhiadcefhdaqcufgqmbkkabarawaeaDalaoz:jjjjbarcj8Wf8Kjjjjbk:Eeeeu8Jjjjjbca9Rgo8Kjjjjbab9cb83dyab9cb83daab9cb83dKab9cb83dzab9cb83dwab9cb83dbdnadTmbaocbBd3ao9cb83iwao9cb83ibaoaeadaialaoc3falEavcbalEcrcbz:kjjjbabao8Pib83dbabao8Piw83dwkaocaf8Kjjjjbk::meQu8Jjjjjbcjz9Rgv8KjjjjbcbhoavcjPfcbaez:rjjjb8Aavcjxfcbaez:rjjjb8AdnaiTmbadhoaihrinavcjxfaoRbbfgwawRbbcef86bbavcjxfaocefRbbfgwawRbbcef86bbavcjxfaocdfRbbfgwawRbbcef86bbaocifhoarcufgrmbkcbhDcjehoadhqcehkindndnalTmbcbhxcuhmaqhrakhwcuhPinawcufamaoavcjPfarcefRbbgsfRbb9RcFeGgzci6aoavcjPfarRbbgHfRbb9RcFeGgOci6faoavcjPfarcdfRbbgAfRbb9RcFeGgCci6fgXcOtaOcFr7azaCf9RcwtVavcjxfaAfRbbgzavcjxfaHfRbbgHavcjxfasfRbbgsaHas6Egsazas6EcFe7VgsaP9kgzEhmaXcd6gHaxcefgOal9iVce9hmdasaPazEhPaxaOaHEhxarcifhrawai6hsawcefhwasmbxdkkcuhmaqhrakhwcuhxinawcufamaoavcjPfarcefRbbfRbb9RcFeGci6aoavcjPfarRbbfRbb9RcFeGci6faoavcjPfarcdfRbbfRbb9RcFeGci6fgPax9kgsEhmaPce0meaPaxasEhxarcifhrawai6hPawcefhwaPmbkkadamci2fgrcdfRbbhwarcefRbbhxarRbbhPadaDci2fgrcifaramaD9Rci2zNjjjb8AaPavcjPffaocefgo86bbaPavcjxffgmamRbbcuf86bbaxavcjPffao86bbaxavcjxffgmamRbbcuf86bbarcdfaw86bbarcefax86bbaraP86bbawavcjPffao86bbawavcjxffgrarRbbcuf86bbaqcifhqakcefhkaDcefgDai9hmbkcbhzdnalcb9mmbcbhsavcjPfcbaez:rjjjb8Aadcvfhlinadasci2fgxcefgDRbbhoaxcdfgqRbbhrdndnavcjPfaxRbbgmfRbbmbavcjPfarfRbbhwdndndnavcjPfaofRbbTmbawcFeGTmexikawcFeGmdascefgAai9pmdasc980mdascifhQcbhLarcFeGhCamcFeGhXalhwcbhKcbhYinawcufRbbhPawRbbhOcehkdndnawc9:fRbbgHao9hmbaPcFeGamSmekdnaPcFeGao9hmbaOcFeGamSmekaHamSaOcFeGaoSGhkkceh8AaYceGhYdndnaHar9hmbaPcFeGaoSmekdnaPcFeGar9hmbaOcFeGaoSmekaHaoSaOcFeGarSGh8AkakaYVhYaLaHcFeGgHaXSaPcFeGgPaCSGaPaXSaOcFeGgPaCSGVaHaCSaPaXSGVVhLa8AaKceGVhKdnaAcefgPai9pmbawcifhwaAaQ6hHaPhAaHmekkaYTmeaKmekarhwaohPaohHarhOamhrxdkdnaYTaLVceGTmbaYaKTVaLVceGmekamhwarhParhHamhOaohrxekaohwamhPamhHaohOkavcjPfarfce86bbavcjPfawfce86bbaxaH86bbaqar86bbaDaO86bbavcjPfaPfce86bbalcifhlascefgsai9hmbkkavcFeaecetz:rjjjbhwaici2hrindnawadRbbgmcetfgx8Uebgocu9kmbaxaz87ebawcjlfazcdtfabamcdtfydbBdbazhoazcefhzkadao86bbadcefhdarcufgrmbkazcdthokabavcjlfaoz:qjjjb8Aavcjzf8KjjjjbkObabaiaeadcbz:njjjbk9teiucbcbyd;8:G:cjbgeabcifc98GfgbBd;8:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;8:G:cjbgeabcrfc94GfgbBd;8:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd;8:G:cjbge9Rcifc98GaefgbBd;8:G:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akk:3qeludndnadch6mbadTmeabaead;8qbbabskabaeSmbdnaeadabfgi9Rcbadcet9R0mbadTmeabaead;8qbbabskaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocxGcxSmbaocd4cefciGhiaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglc3Gc3Smbavalcd4cefcrGgdcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfaeczfydbBdbaicCfaecCfydbBdbaicKfaecKfydbBdbaic3faec3fydbBdbaecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaicefaecefRbb86bbaicdfaecdfRbb86bbaicifaecifRbb86bbaiclfaeclfRbb86bbaicvfaecvfRbb86bbaicofaecofRbb86bbaicrfaecrfRbb86bbaicwfhiaecwfhealc94fglmbkkabkk:pedbcj:GdktFFuuFFuuFFuubbbbFFuFFFuFFFuFbbbbbbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;0:Gdkxebbbdbbbj:qbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(y){n=y.instance,n.exports.__wasm_call_ctors()});function o(y){for(var _=new Uint8Array(y.length),S=0;S96?A-97:A>64?A-39:A+4}for(var Z=0,S=0;S=3),r(A>=3&&A<=256),r(Z>=1&&Z<=512),R=R||0;var G=y.BYTES_PER_ELEMENT==4?y:new Uint32Array(y);return u(n.exports.meshopt_buildMeshletsFlex,G,_,_.length/S,S*4,A,Z,Z,R,0)},buildMeshletsFlex:function(y,_,S,A,Z,R,G,E){r(y.length%3==0),r(_ instanceof Float32Array),r(_.length%S==0),r(S>=3),r(A>=3&&A<=256),r(Z>=1&&R<=512),r(Z<=R),G=G||0,E=E||0;var v=y.BYTES_PER_ELEMENT==4?y:new Uint32Array(y);return u(n.exports.meshopt_buildMeshletsFlex,v,_,_.length/S,S*4,A,Z,R,G,E)},buildMeshletsSpatial:function(y,_,S,A,Z,R,G){r(y.length%3==0),r(_ instanceof Float32Array),r(_.length%S==0),r(S>=3),r(A>=3&&A<=256),r(Z>=1&&R<=512),r(Z<=R),G=G||0;var E=y.BYTES_PER_ELEMENT==4?y:new Uint32Array(y);return u(n.exports.meshopt_buildMeshletsSpatial,E,_,_.length/S,S*4,A,Z,R,G)},extractMeshlet:function(y,_){return r(_>=0&&_=3);var A=y.BYTES_PER_ELEMENT==4?y:new Uint32Array(y);return b(A,_,_.length/S,S*4)},computeMeshletBounds:function(y,_,S){return r(_ instanceof Float32Array),r(_.length%S==0),r(S>=3),p(y,_,_.length/S,S*4)},computeSphereBounds:function(y,_,S,A){return r(y instanceof Float32Array),r(y.length%_==0),r(_>=3),r(!S||S instanceof Float32Array),r(!S||S.length%A==0),r(!S||A>=1),r(!S||y.length/_==S.length/A),A=A||0,f(y,y.length/_,_*4,S,A*4)}}})();var axn=x(T(),1),rxn=(function(){var e="b9H79Tebbbegv9Geueu9Geub9Gbb9Gkuuuuuuuuuuub9Giuuueuirodiblbelve9Weiiviebeoweuecj:Gdkrnlo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbK9TW79O9V9Wt9F9NW9UWV9HtW9u9H9U9NW9Ut7bel79IV9RbdDwebcekdlvq;m8Lodbk:wgvOuw99iuv99vu8Jjjjjbc;Wb9Rgk8Kjjjjbakcxfcbc;Kbz:djjjb8AakcualcdtgxalcFFFFi0Ecbyd:q:G:cjbHjjjjbbgmBdxakceBd2adci9UhPalcd4alfhscehzinazgHcethzaHas6mbkakcuaHcdtgzaHcFFFFi0Ecbyd:q:G:cjbHjjjjbbgsBdzakcdBd2ascFeazz:djjjbhOaDcd4hAarcd4hCavcd4hXdnalTmbaHcufhrcbhvindndnaOcbaiavaX2cdtfgHydlgDaDcjjjj94SEgscH4cbaoavaC2cdtfgzydlgQcs4aQcjjjj94SE7as7c:F:b:DD2cbaHydbgLaLcjjjj94SEgscH4cbazydbgKcs4aKcjjjj94SE7as7c;D;O:B8J27cbaHydwgYaYcjjjj94SEgHcH4cbazydwg8Acs4a8Acjjjj94SE7aH7c:3F;N8N27awavaA2cdtfgHydlgEaHydbg37cFFFFrGgHcm4aH7c:fjjK27arGgscdtfgHydbgzcuSmbaE::h5a3::h8Ea8A::h8FaQ::haaK::hhaY::hgaD::h8JaL::h8KcehDinaDhHdnaiazaX2cdtfgDIdba8K9CmbaDIdla8J9CmbaDIdwag9CmbaoazaC2cdtfgDIdbah9CmbaDIdlaa9CmbaDIdwa8F9CmbawazaA2cdtfgDIdba8E9CmbaDIdla59BmikaHcefhDaOasaHfarGgscdtfgHydbgzcu9hmbkkaHavBdbavhzkamavcdtfazBdbavcefgval9hmbkkaOcbydN:G:cjbH:bjjjbbakceBd2akcualcefgHcdtaHcFFFFi0Ecbyd:q:G:cjbHjjjjbbg8LBdzakcdBd2akcuadcdtadcFFFFi0EgYcbyd:q:G:cjbHjjjjbbg8MBdCakciBd2a8Lclfcbaxz:djjjbhzdnadTmbdnaeTmbaehHadhsinazamaHydbcdtfydbcdtfgDaDydbcefBdbaHclfhHascufgsmbxdkkamhHadhsinazaHydbcdtfgDaDydbcefBdbaHclfhHascufgsmbkkdnalTmbcbhsazhHalhDinaHydbhOaHasBdbaHclfhHaOasfhsaDcufgDmbkkdnadci6gQmbcbhscdhHaPhOindndnaeTmbamaeasfgvydbcdtfhDamavcwfydbcdtfhramavclfydbcdtfhvxekamasfgDcwfhraDclfhvkarydbhravydbhvazaDydbcdtfgDaDydbgDcefBdba8MaDcdtfaHc9:fBdbazavcdtfgDaDydbgDcefBdba8MaDcdtfaHcufBdbazarcdtfgDaDydbgDcefBdba8MaDcdtfaHBdbascxfhsaHclfhHaOcufgOmbkkcbhsa8LcbBdbakcuaPcltadcFFFFd0Ecbyd:q:G:cjbHjjjjbbg8NBdKakclBd2dnaQmbaehza8NhHaPhvindndnaeTmbazcwfydbhDazclfydbhOazydbhrxekascdfhDascefhOashrkJbbbbh8KJbbbbJbbbbJbbbbJbbbbJbbjZJbbj:;awaOaA2cdtfgQIdbawaraA2cdtfgLIdbgh:tawaDaA2cdtfgKIdlaLIdlgg:tg8JNaQIdlag:tggaKIdbah:tN:tghJbbbb9EEahJbbbb9BEg8EaiaraX2cdtfgrIdwghaiaOaX2cdtfgOIdwg59BEa8EarIdlgaaOIdlgy9BEa8EarIdbg8FaOIdbg8P9BEg8EahaiaDaX2cdtfgDIdwgI9BEa8EaaaDIdlg8R9BEa8Ea8FaDIdbg8S9BEg8Ea5aI9BEa8Eaya8R9BEa8Ea8Pa8S9BEh8Edna8Ja5ah:tNagaIah:tN:tghahNa8Ja8Pa8F:tNaga8Sa8F:tN:tg8Fa8FNa8Jayaa:tNaga8Raa:tN:tg8Ja8JNMMggJbbbb9Bmba8Eag:r:vh8KkaHcxfa8EUdbaHcwfaha8KNUdbaHclfa8Ja8KNUdbaHa8Fa8KNUdbazcxfhzaHczfhHascifhsavcufgvmbkkcbhHakaYcbyd:q:G:cjbHjjjjbbgDBd3akcvBd2dnadTmbaDhzinazaHBdbazclfhzadaHcefgH9hmbkkakcuaPcdtadcFFFF970Ecbyd:q:G:cjbHjjjjbbgvBdaakcoBd2akaPcbyd:q:G:cjbHjjjjbbg8ABd8KakcrBd2dnadci6mba8NcxfhzavhscbhHinasaHBdba8AaHfcdcbazIdbg8KJbbbb9DEa8KJbbbb9EV86bbasclfhsazczfhzaPaHcefgH9hmbkkdnalTmbcbhRinaRcdthHdna8LaRcefgRcdtfydbgza8LaHfydbgHSmbazaH9RhLa8MaHcdtfhKcbh8UinaKa8Ucdtfg8VydbgHcd4g8Wci2gxaHciGcdtgzyd:e:G:cjbfhHaxazydj:G:cjbfhzdnaeTmbaeaHcdtfydbhHaeazcdtfydbhzkdna8Ucefg8UaL9pmbamaHcdtfydbhYamazcdtfydbh3a8Aa8WfhEava8Wcdtfh8Xa8UhwinaKawcdtfgQydbgHcd4gzci2gAaHciGcdtgHyd:e:G:cjbfhsaAaHydj:G:cjbfhHdnaeTmbaeascdtfydbhsaeaHcdtfydbhHkdndnamaHcdtfydbaYSmbamascdtfydba39hmeka8AazfRbbgHaERbbgsVciSmbdnaHasGmba8Whsdna8Wa8XydbgHSmba8XhOinaOavaHgscdtfgrydbgHBdbarhOasaH9hmbkkdnazavazcdtfgOydbgHSmbinaOavaHgzcdtfgrydbgHBdbarhOazaH9hmbkkasazSmba8AazfgORbba8AasfgHRbbVciSmeavazcdtfasBdbaHaHRbbaORbbV86bbkdna8VydbciGaxfgzaDazcdtfgsydbgHSmbinasaDaHgzcdtfgOydbgHBdbaOhsazaH9hmbkkdnaQydbciGaAfgsaDascdtfgOydbgHSmbinaOaDaHgscdtfgrydbgHBdbarhOasaH9hmbkkazasSmbaDascdtfazBdbkawcefgwaL9hmbkka8UaL9hmbkkaRal9hmbkkdnadTmbcbhrinarhzdnaraDarcdtfgwydbgHSmbawhsinasaDaHgzcdtfgOydbgHBdbaOhsazaH9hmbkkawazBdbarcefgrad9hmbkcbh8Vabcbadcltz:djjjbhKdnadci6mbaqceGhEaDhYaeh3cbh8Windna8Na8WcltfgsIdxJbbbb9Bmbama8Wcx2gHfhxaeaHfhLcbhza8VhwinaKaYazfydbcltfhHdndnaeTmbamaLazc:e:G:cjbfydbcdtfydbcdtfhAamaLazcj:G:cjbfydbcdtfydbcdtfhra3azfydbhOxekaxazc:e:G:cjbfydbcdtfhAaxazcj:G:cjbfydbcdtfhrawhOkaHasIdbggaoamaOcdtfydbgQaC2cdtfgOIdbg8KasIdwg8FaOIdwg8JNaga8KNasIdlg8EaOIdlggNMMghN:tgaJbbbbJbbjZa8Fa8JahN:tg8Fa8FNaaaaNa8EagahN:tghahNMMga:r:vaaJbbbb9BEJ;As6nJbbjZaiarydbaX2cdtfgOIdwaiaQaX2cdtfgrIdwg5:tgaa8Jaaa8JNaOIdbarIdbgy:tg8Pa8KNagaOIdlarIdlgI:tg8RNMMgaN:tg8EaiaAydbaX2cdtfgOIdwa5:tg5a8Ja5a8JNaOIdbay:tg8Sa8KNagaOIdlaI:tgINMMg5N:tg8JNa8Pa8KaaN:tgya8Sa8Ka5N:tg8KNa8RagaaN:tgaaIaga5N:tggNMMJbbbbJbbjZa8Ea8ENayayNaaaaNMMa8Ja8JNa8Ka8KNagagNMMNg8K:rg8J:va8KJbbbb9BENgg:lg8Ka8KJbbjZ9EEg8Ka8KJ7;A9s89NJ:L9t9s::MNJ;ob;jZMJbbjZa8K:t:rNg8K:ta8KagJbbbb9DENg8Ka8Ja8KNaEEg8KNaHIdbMUdbaHaha8KNaHIdlMUdlaHa8Fa8KNaHIdwMUdwawcefhwazclfgzcx9hmbkkaYcxfhYa3cxfh3a8Vcifh8Va8Wcefg8WaP9hmbkcbhrinarhzdnaravarcdtfgsydbgHSmbinasavaHgzcdtfgOydbgHBdbaOhsazaH9hmbkkaKarc8W2fgHc3fJbbjZJbbj:;a8AazfRbbceGEg8KUdbaHc8Sfa8KUdbaHa8KUdxarcefgraP9hmbkkaqcdGhvcbhzaDhsaKhHindnazasydb9hmbJbbbbh8KdnaHcwfgOIdbg8Ja8JNaHIdbggagNaHclfgrIdbghahNMMgaJbbbb9BmbJbbjZaa:r:vh8KkaOa8Ja8KNUdbaraha8KNUdbaHaga8KNg8JUdbavmbaHJbbjZa8Ja8KJbbbb9BEUdbkasclfhsaHczfhHadazcefgz9hmbkcbhHaKhzindnaHaDydbgsSmbazaKascltfgsydwBdwazas8Pdb83dbkaDclfhDazczfhzadaHcefgH9hmbkkdnakyd2gzTmbazcdtakcxffc98fhHinaHydbcbydN:G:cjbH:bjjjbbaHc98fhHazcufgzmbkkakc;Wbf8Kjjjjbk9teiucbcbyd:y:G:cjbgeabcifc98GfgbBd:y:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:y:G:cjbgeabcrfc94GfgbBd:y:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd:y:G:cjbge9Rcifc98GaefgbBd:y:G:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akkk8Rdbcj:Gdkzebbbdbbbbbbbebbbbc:q:Gdkxebbbdbbba:qbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(d){n=d.instance,n.exports.__wasm_call_ctors()});function o(d){for(var u=new Uint8Array(d.length),m=0;m96?p-97:p>64?p-39:p+4}for(var b=0,m=0;m=3),r(p instanceof Float32Array),r(p.length%b==0),r(b>=3),r(f instanceof Float32Array),r(f.length%y==0),r(y>=2),r(u.length/m==p.length/b),r(u.length/m==f.length/y),r(d!==null||u.length/m%3==0);for(var S=0,A=0;A<(_?_.length:0);++A)r(_[A]in c),S|=c[_[A]];var Z=u.length/m,R=d?d.length:Z,G=d===null||d.BYTES_PER_ELEMENT==4?d:new Uint32Array(d);return a(G,R,u,Z,m,p,b,f,y,S)}}})();var Yj=class extends zi{constructor(t){super(),t=t??B.EMPTY_OBJECT;let n=t.resourceCache,i=t.gltf,o=t.bufferViewId,r=t.gltfResource,s=t.baseResource,a=t.cacheKey,c=i.bufferViews[o],d=c.buffer,u=c.byteOffset,m=c.byteLength,p=!1,b,f,y,_,S=uy(c);l(S)&&(d=S.buffer,u=S.byteOffset??0,m=S.byteLength,p=!0,b=S.byteStride,f=S.count,y=S.mode,_=S.filter??"NONE");let A=i.buffers[d];this._hasMeshopt=p,this._meshoptByteStride=b,this._meshoptCount=f,this._meshoptMode=y,this._meshoptFilter=_,this._resourceCache=n,this._gltfResource=r,this._baseResource=s,this._buffer=A,this._bufferId=d,this._byteOffset=u,this._byteLength=m,this._cacheKey=a,this._bufferLoader=void 0,this._typedArray=void 0,this._state=Tt.UNLOADED,this._promise=void 0}get cacheKey(){return this._cacheKey}get typedArray(){return this._typedArray}async load(){return l(this._promise)?this._promise:(this._state=Tt.LOADING,this._promise=EDe(this),this._promise)}unload(){l(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0}};async function EDe(e){try{let t=LDe(e);if(e._bufferLoader=t,await t.load(),e.isDestroyed())return;let n=t.typedArray,i=new Uint8Array(n.buffer,n.byteOffset+e._byteOffset,e._byteLength);if(e.unload(),e._typedArray=i,e._hasMeshopt){let o=e._meshoptCount,r=e._meshoptByteStride,s=new Uint8Array(o*r);my.decodeGltfBuffer(s,o,r,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=Tt.READY,e}catch(t){if(e.isDestroyed())return;throw e.unload(),e._state=Tt.FAILED,e.getError("Failed to load buffer view",t)}}function LDe(e){let t=e._resourceCache,n=e._buffer;if(l(n.uri)){let r=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:r})}let i=n.extras?._pipeline?.source;return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId,typedArray:i})}var PZ=Yj;var Mxn=x(T(),1);var Gxn=x(T(),1);var t_=class e{static _getDecoderTaskProcessor(){if(!l(e._decoderTaskProcessor)){let t=new Hn("decodeDraco",e._maxDecodingConcurrency);t.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(n){n?e._taskProcessorReady=!0:e._error=new ae("Draco decoder could not be initialized.")}).catch(n=>{e._error=n}),e._decoderTaskProcessor=t}return e._decoderTaskProcessor}static decodePointCloud(t){let n=e._getDecoderTaskProcessor();if(l(e._error))throw e._error;if(e._taskProcessorReady)return n.scheduleTask(t,[t.buffer.buffer])}static decodeBufferView(t){let n=e._getDecoderTaskProcessor();if(l(e._error))throw e._error;if(e._taskProcessorReady)return n.scheduleTask(t,[t.array.buffer])}};t_._maxDecodingConcurrency=Math.max(mn.hardwareConcurrency-1,1);t_._decoderTaskProcessor=void 0;t_._taskProcessorReady=!1;t_._error=void 0;var J0=t_;var Wxn=x(T(),1);var vn={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID",SCALE:"KHR_gaussian_splatting:SCALE",ROTATION:"KHR_gaussian_splatting:ROTATION",CUMULATIVE_DISTANCE:"BENTLEY_materials_line_style:CUMULATIVE_DISTANCE"};function WDe(e){switch(e){case vn.POSITION:return"positionMC";case vn.NORMAL:return"normalMC";case vn.TANGENT:return"tangentMC";case vn.TEXCOORD:return"texCoord";case vn.COLOR:return"color";case vn.JOINTS:return"joints";case vn.WEIGHTS:return"weights";case vn.FEATURE_ID:return"featureId";case vn.SCALE:return"scale";case vn.ROTATION:return"rotation";case vn.CUMULATIVE_DISTANCE:return"cumulativeDistance"}}vn.hasSetIndex=function(e){switch(e){case vn.POSITION:case vn.NORMAL:case vn.TANGENT:case vn.CUMULATIVE_DISTANCE:return!1;case vn.TEXCOORD:case vn.COLOR:case vn.JOINTS:case vn.WEIGHTS:case vn.FEATURE_ID:case vn.SCALE:case vn.ROTATION:return!0}};vn.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return vn.POSITION;case"NORMAL":return vn.NORMAL;case"TANGENT":return vn.TANGENT;case"TEXCOORD":return vn.TEXCOORD;case"COLOR":return vn.COLOR;case"JOINTS":return vn.JOINTS;case"WEIGHTS":return vn.WEIGHTS;case"_FEATURE_ID":return vn.FEATURE_ID;case"KHR_gaussian_splatting:SCALE":case"_SCALE":return vn.SCALE;case"KHR_gaussian_splatting:ROTATION":case"_ROTATION":return vn.ROTATION;case"BENTLEY_materials_line_style:CUMULATIVE_DISTANCE":return vn.CUMULATIVE_DISTANCE}};vn.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return vn.POSITION;case"RGBA":case"RGB":case"RGB565":return vn.COLOR;case"NORMAL":case"NORMAL_OCT16P":return vn.NORMAL;case"BATCH_ID":return vn.FEATURE_ID}};vn.getGlslType=function(e){switch(e){case vn.POSITION:case vn.NORMAL:case vn.TANGENT:return"vec3";case vn.TEXCOORD:return"vec2";case vn.COLOR:return"vec4";case vn.JOINTS:return"ivec4";case vn.WEIGHTS:return"vec4";case vn.FEATURE_ID:return"int";case vn.SCALE:return"vec3";case vn.ROTATION:return"vec4";case vn.CUMULATIVE_DISTANCE:return"float";case vn.OPACITY:return"float"}};vn.getVariableName=function(e,t){let n=WDe(e);return l(t)&&(n+=`_${t}`),n};Object.freeze(vn);var ct=vn;var Nj=class extends zi{constructor(t){super(),t=t??B.EMPTY_OBJECT;let n=t.resourceCache,i=t.gltf,o=t.primitive,r=t.draco,s=t.gltfResource,a=t.baseResource,c=t.cacheKey;this._resourceCache=n,this._gltfResource=s,this._baseResource=a,this._gltf=i,this._primitive=o,this._draco=r,this._cacheKey=c,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=Tt.UNLOADED,this._promise=void 0,this._dracoError=void 0}get cacheKey(){return this._cacheKey}get decodedData(){return this._decodedData}async load(){return l(this._promise)?this._promise:(this._state=Tt.LOADING,this._promise=vDe(this),this._promise)}process(t){if(this._state===Tt.READY)return!0;if(this._state!==Tt.PROCESSING||(l(this._dracoError)&&bue(this,this._dracoError),!l(this._bufferViewTypedArray))||l(this._decodePromise))return!1;let n=this._draco,i=this._primitive,o=this._gltf,r=o.bufferViews,s=n.bufferView,a=r[s],c=n.attributes,d=[];for(let p in i.attributes)if(i.attributes.hasOwnProperty(p)){let b=IDe(p);l(b)&&o.accessors[i.attributes[p]].componentType===J.FLOAT&&(d.includes(b)||d.push(b))}let u={array:new Uint8Array(this._bufferViewTypedArray),bufferView:a,compressedAttributes:c,dequantizeInShader:!0,attributesToSkipTransform:d},m=J0.decodeBufferView(u);if(!l(m))return!1;this._decodePromise=FDe(this,m)}unload(){l(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0,this._primitive=void 0}};async function vDe(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._draco.bufferView,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=Tt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;bue(e,n)}}function bue(e,t){throw e.unload(),e._state=Tt.FAILED,e.getError("Failed to load Draco",t)}async function FDe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=Tt.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}var n_={};n_[ct.POSITION]="POSITION";n_[ct.NORMAL]="NORMAL";n_[ct.COLOR]="COLOR";n_[ct.TEXCOORD]="TEX_COORD";function IDe(e){for(let t in n_)if(n_.hasOwnProperty(t)&&e.startsWith(t))return n_[t]}var XZ=Nj;var $xn=x(T(),1);var Oxn=x(T(),1);function PDe(e){let{uint8Array:t,format:n,request:i}=e,o=e.flipY??!1,r=e.skipColorSpaceConversion??!1,s=new Blob([t],{type:n}),a;return We.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(We.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new We({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return l(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return l(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var j0=PDe;var xv=class extends zi{constructor(t){super(),t=t??B.EMPTY_OBJECT;let n=t.resourceCache,i=t.gltf,o=t.imageId,r=t.gltfResource,s=t.baseResource,a=t.cacheKey,c=i.images[o],d=c.bufferView,u=c.uri;this._resourceCache=n,this._gltfResource=r,this._baseResource=s,this._gltf=i,this._bufferViewId=d,this._uri=u,this._cacheKey=a,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=Tt.UNLOADED,this._promise=void 0}get cacheKey(){return this._cacheKey}get image(){return this._image}get mipLevels(){return this._mipLevels}load(){return l(this._promise)?this._promise:l(this._bufferViewId)?(this._promise=XDe(this),this._promise):(this._promise=YDe(this),this._promise)}unload(){l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._uri=void 0,this._image=void 0,this._mipLevels=void 0,this._gltf=void 0}};function gue(e){let t;return Array.isArray(e)&&(t=e.slice(1,e.length).map(function(n){return n.bufferView}),e=e[0]),{image:e,mipLevels:t}}async function XDe(e){e._state=Tt.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=n,await n.load(),e.isDestroyed())return;let i=n.typedArray,o=await wDe(i);if(e.isDestroyed())return;let r=gue(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=Tt.READY,e}catch(n){return e.isDestroyed()?void 0:yue(e,n,"Failed to load embedded image")}}async function YDe(e){e._state=Tt.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await kDe(i);if(e.isDestroyed())return;let r=gue(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=Tt.READY,e}catch(o){return e.isDestroyed()?void 0:yue(e,o,`Failed to load image: ${n}`)}}function yue(e,t,n){return e.unload(),e._state=Tt.FAILED,Promise.reject(e.getError(n,t))}function NDe(e){let t=e.subarray(0,2),n=e.subarray(0,4),i=e.subarray(8,12);if(t[0]===255&&t[1]===216)return"image/jpeg";if(t[0]===137&&t[1]===80)return"image/png";if(t[0]===171&&t[1]===75)return"image/ktx2";if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&i[0]===87&&i[1]===69&&i[2]===66&&i[3]===80)return"image/webp";throw new ae("Image format is not recognized")}async function wDe(e){let t=NDe(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return ud(n)}return xv._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var MDe=/(^data:image\/ktx2)|(\.ktx2$)/i;function kDe(e){let t=e.getUrlComponent(!1,!0);return MDe.test(t)?ud(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}xv._loadImageFromTypedArray=j0;var YZ=xv;var hTn=x(T(),1);var tTn=x(T(),1),xue={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3};Object.freeze(xue);var Zc=xue;var wj=class extends zi{constructor(t){super(),t=t??B.EMPTY_OBJECT;let n=t.resourceCache,i=t.gltf,o=t.accessorId,r=t.gltfResource,s=t.baseResource,a=t.primitive,c=t.draco,d=t.cacheKey,u=t.asynchronous??!0,m=t.loadBuffer??!1,p=t.loadTypedArray??!1,b=i.accessors[o].componentType;this._resourceCache=n,this._gltfResource=r,this._baseResource=s,this._gltf=i,this._accessorId=o,this._indexDatatype=b,this._primitive=a,this._draco=c,this._cacheKey=d,this._asynchronous=u,this._loadBuffer=m,this._loadTypedArray=p,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=Tt.UNLOADED,this._promise=void 0}get cacheKey(){return this._cacheKey}get buffer(){return this._buffer}get typedArray(){return this._typedArray}get indexDatatype(){return this._indexDatatype}async load(){return l(this._promise)?this._promise:l(this._draco)?(this._promise=DDe(this),this._promise):(this._promise=ODe(this),this._promise)}process(t){if(this._state===Tt.READY)return!0;if(this._state!==Tt.LOADED&&this._state!==Tt.PROCESSING)return!1;let n=this._typedArray,i=this._indexDatatype;if(l(this._dracoLoader))try{this._dracoLoader.process(t)&&(n=this._dracoLoader.decodedData.indices.typedArray,this._typedArray=n,i=J.fromTypedArray(n),this._indexDatatype=i)}catch(r){kj(this,r)}if(!l(n))return!1;let o;if(this._loadBuffer&&this._asynchronous){let r=UDe;if(r.set(n,i,t.context),!t.jobScheduler.execute(r,Zc.BUFFER))return!1;o=r.buffer}else this._loadBuffer&&(o=Tue(n,i,t.context));return this.unload(),this._buffer=o,this._typedArray=this._loadTypedArray?n:void 0,this._state=Tt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0}unload(){l(this._buffer)&&this._buffer.destroy();let t=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&t.unload(this._bufferViewLoader),l(this._dracoLoader)&&t.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0,this._primitive=void 0}},Mj=class{constructor(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}set(t,n,i){this.typedArray=t,this.indexDatatype=n,this.context=i}execute(){this.buffer=Tue(this.typedArray,this.indexDatatype,this.context)}};function Tue(e,t,n){let i=$e.createIndexBuffer({typedArray:e,context:n,usage:Fe.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}var UDe=new Mj;async function DDe(e){e._state=Tt.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,primitive:e._primitive,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=Tt.LOADED,e)}catch(n){if(e.isDestroyed())return;kj(e,n)}}async function ODe(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=Tt.LOADING;let r=e._resourceCache;try{let s=r.getBufferViewLoader({gltf:t,bufferViewId:o,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=s,await s.load(),e.isDestroyed())return;let a=s.typedArray;return e._typedArray=BDe(e,a),e._state=Tt.PROCESSING,e}catch(s){if(e.isDestroyed())return;kj(e,s)}}function BDe(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=De.getSizeInBytes(s),c=t.buffer,d=t.byteOffset+o.byteOffset;if(d%a!==0){let m=r*a,p=new Uint8Array(c,d,m);c=new Uint8Array(p).buffer,d=0,Ca("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let u;return s===De.UNSIGNED_BYTE?u=new Uint8Array(c,d,r):s===De.UNSIGNED_SHORT?u=new Uint16Array(c,d,r):s===De.UNSIGNED_INT&&(u=new Uint32Array(c,d,r)),u}function kj(e,t){throw e.unload(),e._state=Tt.FAILED,e.getError("Failed to load index buffer",t)}var NZ=wj;var pAn=x(T(),1);var XTn=x(T(),1);var pTn=x(T(),1);function zDe(e,t,n){if(n=n??!1,n){let i=e.indexOf(t);if(i>-1)return i}return e.push(t),e.length-1}var oa=zDe;var STn=x(T(),1);var yTn=x(T(),1);function HDe(e,t){return l(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var Lr=HDe;function rn(){}rn.objectLegacy=function(e,t){if(l(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}}};rn.object=function(e,t){if(l(e)){let n=e.length;for(let i=0;i0)return i.byteStride}return J.getSizeInBytes(t.componentType)*su(t.type)}var yd=JDe;function jDe(e){ke.accessor(e,function(n){l(n.bufferView)&&(n.byteOffset=n.byteOffset??0)}),ke.bufferView(e,function(n){l(n.buffer)&&(n.byteOffset=n.byteOffset??0)}),ke.mesh(e,function(n){ke.meshPrimitive(n,function(i){if(i.mode=i.mode??ne.TRIANGLES,!l(i.material)){l(e.materials)||(e.materials=[]);let o={name:"default"};i.material=oa(e.materials,o)}})}),ke.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=i.normalized??!1,l(o)){let r=e.bufferViews[o];r.byteStride=yd(e,i),r.target=ne.ARRAY_BUFFER}}),ke.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(l(o)){let r=e.bufferViews[o];r.target=ne.ELEMENT_ARRAY_BUFFER}}),ke.material(e,function(n){let i=n.extensions??{},o=i.KHR_materials_common;if(l(o)){let c=o.technique,d=l(o.values)?o.values:{};o.values=d,d.ambient=l(d.ambient)?d.ambient:[0,0,0,1],d.emission=l(d.emission)?d.emission:[0,0,0,1],d.transparency=d.transparency??1,c!=="CONSTANT"&&(d.diffuse=l(d.diffuse)?d.diffuse:[0,0,0,1],c!=="LAMBERT"&&(d.specular=l(d.specular)?d.specular:[0,0,0,1],d.shininess=d.shininess??0)),o.transparent=o.transparent??!1,o.doubleSided=o.doubleSided??!1;return}n.emissiveFactor=n.emissiveFactor??[0,0,0],n.alphaMode=n.alphaMode??"OPAQUE",n.doubleSided=n.doubleSided??!1,n.alphaMode==="MASK"&&(n.alphaCutoff=n.alphaCutoff??.5);let r=i.KHR_techniques_webgl;l(r)&&ke.materialValue(n,function(c){l(c.index)&&i_(c)}),i_(n.emissiveTexture),i_(n.normalTexture),i_(n.occlusionTexture);let s=n.pbrMetallicRoughness;l(s)&&(s.baseColorFactor=s.baseColorFactor??[1,1,1,1],s.metallicFactor=s.metallicFactor??1,s.roughnessFactor=s.roughnessFactor??1,i_(s.baseColorTexture),i_(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;l(a)&&(a.diffuseFactor=a.diffuseFactor??[1,1,1,1],a.specularFactor=a.specularFactor??[1,1,1],a.glossinessFactor=a.glossinessFactor??1,i_(a.specularGlossinessTexture))}),ke.animation(e,function(n){ke.animationSampler(n,function(i){i.interpolation=i.interpolation??"LINEAR"})});let t=QDe(e);return ke.node(e,function(n,i){l(t[i])||l(n.translation)||l(n.rotation)||l(n.scale)?(n.translation=n.translation??[0,0,0],n.rotation=n.rotation??[0,0,0,1],n.scale=n.scale??[1,1,1]):n.matrix=n.matrix??[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}),ke.sampler(e,function(n){n.wrapS=n.wrapS??ne.REPEAT,n.wrapT=n.wrapT??ne.REPEAT}),l(e.scenes)&&!l(e.scene)&&(e.scene=0),e}function QDe(e){let t={};return ke.animation(e,function(n){ke.animationChannel(n,function(i){let o=i.target,r=o.node,s=o.path;(s==="translation"||s==="rotation"||s==="scale")&&(t[r]=!0)})}),t}function i_(e){l(e)&&(e.texCoord=e.texCoord??0)}var Tv=jDe;var MTn=x(T(),1);function qDe(e){return ke.shader(e,function(t){L5(t)}),ke.buffer(e,function(t){L5(t)}),ke.image(e,function(t){L5(t)}),L5(e),e}function L5(e){e.extras=l(e.extras)?e.extras:{},e.extras._pipeline=l(e.extras._pipeline)?e.extras._pipeline:{}}var hy=qDe;var t_n=x(T(),1);var HTn=x(T(),1);var DTn=x(T(),1);function $De(e,t){let n=e.extensionsRequired;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var _v=$De;function eOe(e,t){let n=e.extensionsUsed;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),_v(e,t),n.length===0&&delete e.extensionsUsed}}var o_=eOe;var tOe=4;function nOe(e){if(Eh(e)!=="glTF")throw new ae("File is not valid binary glTF");let n=_ue(e,0,5),i=n[1];if(i!==1&&i!==2)throw new ae("Binary glTF version is not 1 or 2");return i===1?iOe(e,n):oOe(e,n)}function _ue(e,t,n){let i=new DataView(e.buffer),o=new Array(n);for(let r=0;r0){let m=u.binary_glTF??u.KHR_binary_glTF;l(m)&&(m.extras._pipeline.source=d,delete m.uri)}return o_(c,"KHR_binary_glTF"),c}function oOe(e,t){let n=t[2],i=12,o,r;for(;i0){let a=s[0];a.extras._pipeline.source=r}}return o}var r_=nOe;var r_n=x(T(),1);function rOe(e){return ke.shader(e,function(t){W5(t)}),ke.buffer(e,function(t){W5(t)}),ke.image(e,function(t){W5(t)}),W5(e),e}function W5(e){l(e.extras)&&(l(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var Sv=rOe;var YSn=x(T(),1);var l_n=x(T(),1);function sOe(e,t){let n=e.extensionsUsed;l(n)||(n=[],e.extensionsUsed=n),oa(n,t,!0)}var fm=sOe;var x_n=x(T(),1);var m_n=x(T(),1);function aOe(e){switch(e){case J.BYTE:return function(t,n,i,o,r){for(let s=0;s-1:!1}var uOe=[ne.ZERO,ne.ONE,ne.SRC_COLOR,ne.ONE_MINUS_SRC_COLOR,ne.SRC_ALPHA,ne.ONE_MINUS_SRC_ALPHA,ne.DST_ALPHA,ne.ONE_MINUS_DST_ALPHA,ne.DST_COLOR,ne.ONE_MINUS_DST_COLOR];function mOe(e,t){if(!l(e))return t;for(let n=0;n<4;n++)if(uOe.indexOf(e[n])===-1)return t;return e}function hOe(e){let t={},n={},i=e.techniques;return l(i)&&(ke.technique(e,function(o,r){let s=o.states;if(l(s)){let a=n[r]={};if(Sue(s,ne.BLEND)){a.alphaMode="BLEND";let c=s.functions;l(c)&&(l(c.blendEquationSeparate)||l(c.blendFuncSeparate))&&(t[r]={blendEquation:c.blendEquationSeparate??lOe,blendFactors:mOe(c.blendFuncSeparate,dOe)})}Sue(s,ne.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(l(e.extensions)||(e.extensions={}),fm(e,"KHR_blend")),ke.material(e,function(o){if(l(o.technique)){let r=n[o.technique];ke.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];l(s)&&(l(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var Av=hOe;var Y_n=x(T(),1);var L_n=x(T(),1);function fOe(e,t){let n=e.extensionsRequired;l(n)||(n=[],e.extensionsRequired=n),oa(n,t,!0),fm(e,t)}var Zv=fOe;function pOe(e){let t=e.techniques,n={},i={},o={};if(l(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,ke.technique(e,function(a,c){let d={name:a.name,program:void 0,attributes:{},uniforms:{}},u;if(ke.techniqueAttribute(a,function(m,p){u=a.parameters[m],d.attributes[p]={semantic:u.semantic}}),ke.techniqueUniform(a,function(m,p){u=a.parameters[m],d.uniforms[p]={count:u.count,node:u.node,type:u.type,semantic:u.semantic,value:u.value},l(n[c])||(n[c]={}),n[c][m]=p}),l(o[a.program]))d.program=o[a.program];else{let m=e.programs[a.program],p={name:m.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:s},b=e.shaders[m.fragmentShader];p.fragmentShader=oa(r.shaders,b,!0);let f=e.shaders[m.vertexShader];p.vertexShader=oa(r.shaders,f,!0),d.program=oa(r.programs,p),o[a.program]=d.program}i[c]=oa(r.techniques,d)}),r.techniques.length>0&&(l(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,fm(e,"KHR_techniques_webgl"),Zv(e,"KHR_techniques_webgl"))}return ke.material(e,function(r){if(l(r.technique)){let s={technique:i[r.technique]};ke.objectLegacy(r.values,function(a,c){l(s.values)||(s.values={});let d=n[r.technique][c];l(d)&&(s.values[d]=a)}),l(r.extensions)||(r.extensions={}),r.extensions.KHR_techniques_webgl=s}delete r.technique,delete r.values}),delete e.techniques,delete e.programs,delete e.shaders,e}var Cv=pOe;var K_n=x(T(),1);var U_n=x(T(),1);function bOe(e,t){No.typeOf.object("material",e),No.defined("handler",t);let n=e.pbrMetallicRoughness;if(l(n)){if(l(n.baseColorTexture)){let r=n.baseColorTexture,s=t(r.index,r);if(l(s))return s}if(l(n.metallicRoughnessTexture)){let r=n.metallicRoughnessTexture,s=t(r.index,r);if(l(s))return s}}let{extensions:i}=e;if(l(i)){let r=i.KHR_materials_pbrSpecularGlossiness;if(l(r)){if(l(r.diffuseTexture)){let d=r.diffuseTexture,u=t(d.index,d);if(l(u))return u}if(l(r.specularGlossinessTexture)){let d=r.specularGlossinessTexture,u=t(d.index,d);if(l(u))return u}}let s=i.KHR_materials_specular;if(l(s)){let{specularTexture:d,specularColorTexture:u}=s;if(l(d)){let m=t(d.index,d);if(l(m))return m}if(l(u)){let m=t(u.index,u);if(l(m))return m}}let a=i.KHR_materials_transmission;if(l(a)&&l(a.transmissionTexture)){let d=a.transmissionTexture,u=t(d.index,d);if(l(u))return u}let c=i.KHR_materials_common;if(l(c)&&l(c.values)){let{diffuse:d,ambient:u,emission:m,specular:p}=c.values;if(l(d)&&l(d.index)){let b=t(d.index,d);if(l(b))return b}if(l(u)&&l(u.index)){let b=t(u.index,u);if(l(b))return b}if(l(m)&&l(m.index)){let b=t(m.index,m);if(l(b))return b}if(l(p)&&l(p.index)){let b=t(p.index,p);if(l(b))return b}}}let o=ke.materialValue(e,function(r){if(l(r.index)){let s=t(r.index,r);if(l(s))return s}});if(l(o))return o;if(l(e.emissiveTexture)){let r=e.emissiveTexture,s=t(r.index,r);if(l(s))return s}if(l(e.normalTexture)){let r=e.normalTexture,s=t(r.index,r);if(l(s))return s}if(l(e.occlusionTexture)){let r=e.occlusionTexture,s=t(r.index,r);if(l(s))return s}}var wZ=bOe;var Aue=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function gOe(e,t){return t=t??Aue,Aue.forEach(function(n){t.indexOf(n)>-1&&xOe(e,n)}),e}var yOe={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function xOe(e,t){let n=yOe[t],i=e[n];if(l(i)){let o=0,r=dp[t](e),s=i.length;for(let a=0;at&&o.attributes[c]--}),ke.meshPrimitiveTarget(o,function(a){ke.meshPrimitiveTargetAttribute(a,function(c,d){c>t&&a[d]--})});let r=o.indices;l(r)&&r>t&&o.indices--;let s=o.extensions;l(s)&&l(s.CESIUM_primitive_outline)&&s.CESIUM_primitive_outline.indices>t&&--s.CESIUM_primitive_outline.indices})}),ke.skin(e,function(i){l(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),ke.animation(e,function(i){ke.animationSampler(i,function(o){l(o.input)&&o.input>t&&o.input--,l(o.output)&&o.output>t&&o.output--})})};lp.buffer=function(e,t){e.buffers.splice(t,1),ke.bufferView(e,function(i){l(i.buffer)&&i.buffer>t&&i.buffer--;let o=i.extensions;if(l(o)){let r=o.EXT_meshopt_compression;l(r)&&r.buffer>t&&r.buffer--;let s=o.KHR_meshopt_compression;l(s)&&s.buffer>t&&s.buffer--}})};lp.bufferView=function(e,t){if(e.bufferViews.splice(t,1),ke.accessor(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),ke.shader(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),ke.image(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Lr(e,"KHR_draco_mesh_compression")&&ke.mesh(e,function(i){ke.meshPrimitive(i,function(o){l(o.extensions)&&l(o.extensions.KHR_draco_mesh_compression)&&o.extensions.KHR_draco_mesh_compression.bufferView>t&&o.extensions.KHR_draco_mesh_compression.bufferView--})}),Lr(e,"EXT_feature_metadata")){let o=e.extensions.EXT_feature_metadata.featureTables;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let d=a[c];l(d.bufferView)&&d.bufferView>t&&d.bufferView--,l(d.arrayOffsetBufferView)&&d.arrayOffsetBufferView>t&&d.arrayOffsetBufferView--,l(d.stringOffsetBufferView)&&d.stringOffsetBufferView>t&&d.stringOffsetBufferView--}}}}if(Lr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(l(o)){let r=o.length;for(let s=0;st&&u.values--,l(u.arrayOffsets)&&u.arrayOffsets>t&&u.arrayOffsets--,l(u.stringOffsets)&&u.stringOffsets>t&&u.stringOffsets--}}}}};lp.image=function(e,t){e.images.splice(t,1),ke.texture(e,function(i){l(i.source)&&i.source>t&&--i.source;let o=i.extensions;l(o)&&l(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:l(o)&&l(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};lp.mesh=function(e,t){e.meshes.splice(t,1),ke.node(e,function(i){l(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};lp.node=function(e,t){e.nodes.splice(t,1),ke.skin(e,function(i){l(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),ke.animation(e,function(i){ke.animationChannel(i,function(o){l(o.target)&&l(o.target.node)&&o.target.node>t&&o.target.node--})}),ke.technique(e,function(i){ke.techniqueUniform(i,function(o){l(o.node)&&o.node>t&&o.node--})}),ke.node(e,function(i){l(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),ke.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};lp.material=function(e,t){e.materials.splice(t,1),ke.mesh(e,function(i){ke.meshPrimitive(i,function(o){l(o.material)&&o.material>t&&o.material--})})};lp.sampler=function(e,t){e.samplers.splice(t,1),ke.texture(e,function(i){l(i.sampler)&&i.sampler>t&&--i.sampler})};lp.texture=function(e,t){if(e.textures.splice(t,1),ke.material(e,function(i){wZ(i,function(o,r){r.index>t&&--r.index})}),Lr(e,"EXT_feature_metadata")){ke.mesh(e,function(r){ke.meshPrimitive(r,function(s){let a=s.extensions;if(l(a)&&l(a.EXT_feature_metadata)){let d=a.EXT_feature_metadata.featureIdTextures;if(l(d)){let u=d.length;for(let m=0;mt&&--b.index}}}})});let o=e.extensions.EXT_feature_metadata.featureTextures;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let u=a[c].texture;u.index>t&&--u.index}}}}if(Lr(e,"EXT_mesh_features")&&ke.mesh(e,function(i){ke.meshPrimitive(i,function(o){let r=o.extensions;if(l(r)&&l(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(l(a)){let c=a.length;for(let d=0;dt&&--u.texture.index}}}})}),Lr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(l(o)){let r=o.length;for(let s=0;st&&--u.index}}}}};function dp(){}dp.accessor=function(e){let t={};return ke.mesh(e,function(n){ke.meshPrimitive(n,function(i){ke.meshPrimitiveAttribute(i,function(r){t[r]=!0}),ke.meshPrimitiveTarget(i,function(r){ke.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;l(o)&&(t[o]=!0)})}),ke.skin(e,function(n){l(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),ke.animation(e,function(n){ke.animationSampler(n,function(i){l(i.input)&&(t[i.input]=!0),l(i.output)&&(t[i.output]=!0)})}),Lr(e,"EXT_mesh_gpu_instancing")&&ke.node(e,function(n){l(n.extensions)&&l(n.extensions.EXT_mesh_gpu_instancing)&&Object.keys(n.extensions.EXT_mesh_gpu_instancing.attributes).forEach(function(i){let o=n.extensions.EXT_mesh_gpu_instancing.attributes[i];t[o]=!0})}),Lr(e,"CESIUM_primitive_outline")&&ke.mesh(e,function(n){ke.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.CESIUM_primitive_outline)){let s=o.CESIUM_primitive_outline.indices;l(s)&&(t[s]=!0)}})}),t};dp.buffer=function(e){let t={};return ke.bufferView(e,function(n){l(n.buffer)&&(t[n.buffer]=!0);let i=n.extensions;if(l(i)){let o=i.EXT_meshopt_compression;l(o)&&(t[o.buffer]=!0);let r=i.KHR_meshopt_compression;l(r)&&(t[r.buffer]=!0)}}),t};dp.bufferView=function(e){let t={};if(ke.accessor(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),ke.shader(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),ke.image(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Lr(e,"KHR_draco_mesh_compression")&&ke.mesh(e,function(n){ke.meshPrimitive(n,function(i){l(i.extensions)&&l(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),Lr(e,"EXT_feature_metadata")){let i=e.extensions.EXT_feature_metadata.featureTables;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];l(c.bufferView)&&(t[c.bufferView]=!0),l(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),l(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(Lr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(l(i)){let o=i.length;for(let r=0;r0&&(t[n.mesh]=!0)}}),t};function Zue(e,t,n){let i=e.nodes[t];return l(i.mesh)||l(i.camera)||l(i.skin)||l(i.weights)||l(i.extras)||l(i.extensions)&&Object.keys(i.extensions).length!==0||l(n[t])?!1:!l(i.children)||i.children.filter(function(o){return!Zue(e,o,n)}).length===0}dp.node=function(e){let t={};return ke.skin(e,function(n){l(n.skeleton)&&(t[n.skeleton]=!0),ke.skinJoint(n,function(i){t[i]=!0})}),ke.animation(e,function(n){ke.animationChannel(n,function(i){l(i.target)&&l(i.target.node)&&(t[i.target.node]=!0)})}),ke.technique(e,function(n){ke.techniqueUniform(n,function(i){l(i.node)&&(t[i.node]=!0)})}),ke.node(e,function(n,i){Zue(e,i,t)||(t[i]=!0)}),t};dp.material=function(e){let t={};return ke.mesh(e,function(n){ke.meshPrimitive(n,function(i){l(i.material)&&(t[i.material]=!0)})}),t};dp.texture=function(e){let t={};if(ke.material(e,function(n){wZ(n,function(i){t[i]=!0})}),Lr(e,"EXT_feature_metadata")){ke.mesh(e,function(o){ke.meshPrimitive(o,function(r){let s=r.extensions;if(l(s)&&l(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(l(c)){let d=c.length;for(let u=0;u0)for(s.mesh=n.meshes[c[0]],t=1;t0&&l(s.skin)){let u=e.skins[s.skin];u.skeleton=n.nodes[c[0]]}delete s.skeletons}l(s.jointName)&&delete s.jointName}),ke.skin(e,function(s){l(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(l(a)){let c=[],d=a.length;for(t=0;t=0&&(a=r.substring(0,s),c=r.substring(s));let d,u=UOe[a];l(u)?(d=u+c,t[r]=d):l(kOe[a])||(d=`_${r}`,t[r]=d)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];l(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),ke.technique(e,function(n){ke.techniqueParameter(n,function(i){let o=t[i.semantic];l(o)&&(i.semantic=o)})})}function OOe(e){ke.camera(e,function(t){let n=t.perspective;if(l(n)){let i=n.aspectRatio;l(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;l(o)&&o===0&&(n.yfov=1)}})}function Oj(e,t){return l(t.byteStride)&&t.byteStride!==0?t.byteStride:yd(e,t)}function BOe(e){ke.buffer(e,function(t){l(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),ke.accessor(e,function(t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n],o=Oj(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(i.byteLength??0,r)}})}function zOe(e){let t,n,i,o=e.bufferViews,r={};ke.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];l(c.bufferView)&&(r[c.bufferView]=!0)});let s={};ke.accessor(e,function(a){l(a.bufferView)&&(s[a.bufferView]=s[a.bufferView]??[],s[a.bufferView].push(a))});for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a)){i=o[a];let c=s[a];c.sort(function(p,b){return p.byteOffset-b.byteOffset});let d=0,u=0,m=c.length;for(t=0;t=0;--r)if(i[r]===t){i.splice(r,1);return}}}),ke.node(e,function(n,i){if(l(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),Gue(n)&&Eue(e,i))}}),delete e.nodes[t]}function KOe(e){return ke.node(e,function(t,n){Gue(t)&&Eue(e,n)}),e}function JOe(e){ke.animation(e,function(t){ke.animationSampler(t,function(n){let i=e.accessors[n.input];if(!l(i.min)||!l(i.max)){let o=s_(e,i);i.min=o.min,i.max=o.max}})})}function jOe(e){ke.accessor(e,function(t){if(l(t.min)||l(t.max)){let n=s_(e,t);l(t.min)&&(t.min=n.min),l(t.max)&&(t.max=n.max)}})}function QOe(e){e.asset=e.asset??{},e.asset.version="2.0",Vue(e),WOe(e),KOe(e),vOe(e),FOe(e),POe(e),YOe(e),BOe(e),zOe(e),HOe(e),JOe(e),jOe(e),NOe(e),wOe(e),MOe(e),DOe(e),Ev(e),OOe(e),Av(e),Cv(e),IOe(e)}var qOe=["u_tex","u_diffuse","u_emission","u_diffuse_tex"],$Oe=["u_diffuse","u_diffuse_mat"];function Bj(e){e.pbrMetallicRoughness=l(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function zj(e){return l(e.index)}function Hj(e){return Array.isArray(e)&&e.length===4}function Lue(e){let t=new Array(4);t[3]=e[3];for(let n=0;n<3;n++){let i=e[n];i<=.04045?t[n]=e[n]*.07739938080495357:t[n]=Math.pow((i+.055)*.9478672985781991,2.4)}return t}function eBe(e,t){t=t??{};let n=t.baseColorTextureNames??qOe,i=t.baseColorFactorNames??$Oe;ke.material(e,function(o){ke.materialValue(o,function(r,s){n.indexOf(s)!==-1&&zj(r)?(Bj(o),o.pbrMetallicRoughness.baseColorTexture=r):i.indexOf(s)!==-1&&Hj(r)&&(Bj(o),o.pbrMetallicRoughness.baseColorFactor=Lue(r))})}),a_(e,"KHR_techniques_webgl"),a_(e,"KHR_blend")}function Dj(e,t){l(t)&&(Hj(t)?e.pbrMetallicRoughness.baseColorFactor=Lue(t):zj(t)&&(e.pbrMetallicRoughness.baseColorTexture=t))}function Rue(e,t){l(t)&&(Hj(t)?e.emissiveFactor=t.slice(0,3):zj(t)&&(e.emissiveTexture=t))}function tBe(e){ke.material(e,function(t){let n=(t.extensions??{}).KHR_materials_common;if(!l(n))return;let i=n.values??{},o=i.ambient,r=i.diffuse,s=i.emission,a=i.transparency,c=n.doubleSided,d=n.transparent;Bj(t),n.technique==="CONSTANT"?(fm(e,"KHR_materials_unlit"),t.extensions=l(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={},Dj(t,s),Dj(t,o)):(Dj(t,r),Rue(t,o),Rue(t,s)),l(c)&&(t.doubleSided=c),l(a)&&(l(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=a:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,a]),l(d)&&(t.alphaMode=d?"BLEND":"OPAQUE")}),a_(e,"KHR_materials_common")}var Lv=COe;var jSn=x(T(),1);function zc(){}zc.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;l(n)&&l(n.message)&&(i+=` +${n.message}`);let o=new ae(i);return l(n)&&(o.stack=`Original stack: +${n.stack} +Handler stack: +${o.stack}`),o};zc.getNodeTransform=function(e){return l(e.matrix)?e.matrix:F.fromTranslationQuaternionRotationScale(l(e.translation)?e.translation:h.ZERO,l(e.rotation)?e.rotation:Ne.IDENTITY,l(e.scale)?e.scale:h.ONE)};zc.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;rEBe);var d=me(Xue.url)}var u="./this.program",m=Xue.url;if(c)d("node:fs"),m.startsWith("file:")&&d("node:path").dirname(d("node:url").fileURLToPath(m)),1>8&Ke;return Ge}var _,S,A,Z,R,G,E,v,I,X,Y,g,C=!1;function V(){var me=Of.buffer;A=new Int8Array(me),R=new Int16Array(me),r.HEAPU8=Z=new Uint8Array(me),G=new Uint16Array(me),E=new Int32Array(me),v=new Uint32Array(me),r.HEAPF32=I=new Float32Array(me),X=new Float64Array(me),Y=new BigInt64Array(me),g=new BigUint64Array(me)}function L(me){var oe;throw(oe=r.onAbort)==null||oe.call(r,me),me="Aborted("+me+")",b(me),f=!0,me=new WebAssembly.RuntimeError(me+". Build with -sASSERTIONS for more info."),S?.(me),me}var P;async function N(me){return me}async function O(me){var oe=P;try{var Ae=await N(oe);return await WebAssembly.instantiate(Ae,me)}catch(Ge){b(`failed to asynchronously prepare wasm: ${Ge}`),L(Ge)}}async function M(me){return O(me)}var D=me=>{for(;0{var me=r.preRun.shift();z.push(me)},ee={},H=me=>{for(;me.length;){var oe=me.pop();me.pop()(oe)}};function te(me){return this.O(v[me>>2])}var q={},de={},ye={},le=class extends Error{constructor(me){super(me),this.name="InternalError"}},Ce=(me,oe,Ae)=>{function Ge(At){if(At=Ae(At),At.length!==me.length)throw new le("Mismatched type converter count");for(var bn=0;bnye[At]=oe);var Ke=Array(oe.length),Ct=[],ht=0;for(let[At,bn]of oe.entries())de.hasOwnProperty(bn)?Ke[At]=de[bn]:(Ct.push(bn),q.hasOwnProperty(bn)||(q[bn]=[]),q[bn].push(()=>{Ke[At]=de[bn],++ht,ht===Ct.length&&Ge(Ke)}));Ct.length===0&&Ge(Ke)},ge=me=>{for(var oe="";;){var Ae=Z[me++];if(!Ae)return oe;oe+=String.fromCharCode(Ae)}},Ee=class extends Error{constructor(me){super(me),this.name="BindingError"}},Re=me=>{throw new Ee(me)};function Xe(me,oe,Ae={}){var Ge=oe.name;if(!me)throw new Ee(`type "${Ge}" must have a positive integer typeid pointer`);if(de.hasOwnProperty(me)){if(Ae.Aa)return;throw new Ee(`Cannot register type '${Ge}' twice`)}de[me]=oe,delete ye[me],q.hasOwnProperty(me)&&(oe=q[me],delete q[me],oe.forEach(Ke=>Ke()))}function we(me,oe,Ae={}){return Xe(me,oe,Ae)}var nt=(me,oe,Ae)=>{switch(oe){case 1:return Ae?Ge=>A[Ge]:Ge=>Z[Ge];case 2:return Ae?Ge=>R[Ge>>1]:Ge=>G[Ge>>1];case 4:return Ae?Ge=>E[Ge>>2]:Ge=>v[Ge>>2];case 8:return Ae?Ge=>Y[Ge>>3]:Ge=>g[Ge>>3];default:throw new TypeError(`invalid integer width (${oe}): ${me}`)}},je=me=>{throw new Ee(me.M.R.N.name+" instance already deleted")},et=!1,Ie=()=>{},Oe=me=>globalThis.FinalizationRegistry?(et=new FinalizationRegistry(oe=>{oe=oe.M,--oe.count.value,oe.count.value===0&&(oe.V?oe.Y.Z(oe.V):oe.R.N.Z(oe.P))}),Oe=oe=>{var Ae=oe.M;return Ae.V&&et.register(oe,{M:Ae},oe),oe},Ie=oe=>{et.unregister(oe)},Oe(me)):(Oe=oe=>oe,me);function St(){}var Et=(me,oe)=>Object.defineProperty(oe,"name",{value:me}),on={},Ot=(me,oe,Ae)=>{if(me[oe].U===void 0){var Ge=me[oe];me[oe]=function(...Ke){if(!me[oe].U.hasOwnProperty(Ke.length))throw new Ee(`Function '${Ae}' called with an invalid number of arguments (${Ke.length}) - expects one of (${me[oe].U})!`);return me[oe].U[Ke.length].apply(this,Ke)},me[oe].U=[],me[oe].U[Ge.$]=Ge}},gt=(me,oe,Ae)=>{if(r.hasOwnProperty(me)){if(Ae===void 0||r[me].U!==void 0&&r[me].U[Ae]!==void 0)throw new Ee(`Cannot register public name '${me}' twice`);if(Ot(r,me,me),r[me].U.hasOwnProperty(Ae))throw new Ee(`Cannot register multiple overloads of a function with the same number of arguments (${Ae})!`);r[me].U[Ae]=oe}else r[me]=oe,r[me].$=Ae},Wt=me=>{me=me.replace(/[^a-zA-Z0-9_]/g,"$");var oe=me.charCodeAt(0);return 48<=oe&&57>=oe?`_${me}`:me};function Cn(me,oe,Ae,Ge,Ke,Ct,ht,At){this.name=me,this.constructor=oe,this.ba=Ae,this.Z=Ge,this.W=Ke,this.va=Ct,this.fa=ht,this.ta=At,this.Ca=[]}var dt=(me,oe,Ae)=>{for(;oe!==Ae;){if(!oe.fa)throw new Ee(`Expected null or instance of ${Ae.name}, got an instance of ${oe.name}`);me=oe.fa(me),oe=oe.W}return me},mt=me=>{if(me===null)return"null";var oe=typeof me;return oe==="object"||oe==="array"||oe==="function"?me.toString():""+me};function Qn(me,oe){if(oe===null){if(this.ia)throw new Ee(`null is not a valid ${this.name}`);return 0}if(!oe.M)throw new Ee(`Cannot pass "${mt(oe)}" as a ${this.name}`);if(!oe.M.P)throw new Ee(`Cannot pass deleted object as a pointer of type ${this.name}`);return dt(oe.M.P,oe.M.R.N,this.N)}function Yn(me,oe){if(oe===null){if(this.ia)throw new Ee(`null is not a valid ${this.name}`);if(this.ha){var Ae=this.ka();return me!==null&&me.push(this.Z,Ae),Ae}return 0}if(!oe||!oe.M)throw new Ee(`Cannot pass "${mt(oe)}" as a ${this.name}`);if(!oe.M.P)throw new Ee(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.ga&&oe.M.R.ga)throw new Ee(`Cannot convert argument of type ${oe.M.Y?oe.M.Y.name:oe.M.R.name} to parameter type ${this.name}`);if(Ae=dt(oe.M.P,oe.M.R.N,this.N),this.ha){if(oe.M.V===void 0)throw new Ee("Passing raw pointer to smart pointer is illegal");switch(this.Ha){case 0:if(oe.M.Y===this)Ae=oe.M.V;else throw new Ee(`Cannot convert argument of type ${oe.M.Y?oe.M.Y.name:oe.M.R.name} to parameter type ${this.name}`);break;case 1:Ae=oe.M.V;break;case 2:if(oe.M.Y===this)Ae=oe.M.V;else{var Ge=oe.clone();Ae=this.Da(Ae,Yo(()=>Ge.delete())),me!==null&&me.push(this.Z,Ae)}break;default:throw new Ee("Unsupported sharing policy")}}return Ae}function $i(me,oe){if(oe===null){if(this.ia)throw new Ee(`null is not a valid ${this.name}`);return 0}if(!oe.M)throw new Ee(`Cannot pass "${mt(oe)}" as a ${this.name}`);if(!oe.M.P)throw new Ee(`Cannot pass deleted object as a pointer of type ${this.name}`);if(oe.M.R.ga)throw new Ee(`Cannot convert argument of type ${oe.M.R.name} to parameter type ${this.name}`);return dt(oe.M.P,oe.M.R.N,this.N)}var Ko=(me,oe,Ae)=>oe===Ae?me:Ae.W===void 0?null:(me=Ko(me,oe,Ae.W),me===null?null:Ae.ta(me)),mo={},so=(me,oe)=>{if(oe===void 0)throw new Ee("ptr should not be undefined");for(;me.W;)oe=me.fa(oe),me=me.W;return mo[oe]},ti=(me,oe)=>{if(!oe.R||!oe.P)throw new le("makeClassHandle requires ptr and ptrType");if(!!oe.Y!=!!oe.V)throw new le("Both smartPtrType and smartPtr must be specified");return oe.count={value:1},Oe(Object.create(me,{M:{value:oe,writable:!0}}))};function ni(me,oe,Ae,Ge,Ke,Ct,ht,At,bn,rt,be){this.name=me,this.N=oe,this.ia=Ae,this.ga=Ge,this.ha=Ke,this.Ba=Ct,this.Ha=ht,this.pa=At,this.ka=bn,this.Da=rt,this.Z=be,Ke||oe.W!==void 0?this.S=Yn:(this.S=Ge?Qn:$i,this.T=null)}var yn=(me,oe,Ae)=>{if(!r.hasOwnProperty(me))throw new le("Replacing nonexistent public symbol");r[me].U!==void 0&&Ae!==void 0?r[me].U[Ae]=oe:(r[me]=oe,r[me].$=Ae)},Mn=(me,oe)=>{me=ge(me);var Ae=ju.get(oe);if(typeof Ae!="function")throw new Ee(`unknown function pointer with signature ${me}: ${oe}`);return Ae};class Vr extends Error{}var Is=me=>{me=BA(me);var oe=ge(me);return fl(me),oe},Ps=(me,oe)=>{function Ae(Ct){Ke[Ct]||de[Ct]||(ye[Ct]?ye[Ct].forEach(Ae):(Ge.push(Ct),Ke[Ct]=!0))}var Ge=[],Ke={};throw oe.forEach(Ae),new Vr(`${me}: `+Ge.map(Is).join([", "]))},Xs=(me,oe)=>{for(var Ae=[],Ge=0;Ge>2]);return Ae};function Ta(me){for(var oe=1;oeht)throw new Ee("argTypes array size mismatch! Must at least get return value and 'this' types!");var At=oe[1]!==null&&Ae!==null,bn=Ta(oe);Ae=!oe[0].oa;var rt=oe[0],be=oe[1];for(Ge=[me,Re,Ge,Ke,H,rt.O.bind(rt),be?.S.bind(be)],Ke=2;Ke{me=me.trim();let oe=me.indexOf("(");return oe===-1?me:me.slice(0,oe)},yo=[],eo=[0,1,,1,null,1,!0,1,!1,1],Ys=me=>{9{if(!me)throw new Ee(`Cannot use deleted val. handle = ${me}`);return eo[me]},Yo=me=>{switch(me){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let oe=yo.pop()||eo.length;return eo[oe]=me,eo[oe+1]=1,oe}},fc={name:"emscripten::val",O:me=>{var oe=Ei(me);return Ys(me),oe},S:(me,oe)=>Yo(oe),X:te,T:null},$r=(me,oe,Ae)=>{switch(oe){case 1:return Ae?function(Ge){return this.O(A[Ge])}:function(Ge){return this.O(Z[Ge])};case 2:return Ae?function(Ge){return this.O(R[Ge>>1])}:function(Ge){return this.O(G[Ge>>1])};case 4:return Ae?function(Ge){return this.O(E[Ge>>2])}:function(Ge){return this.O(v[Ge>>2])};default:throw new TypeError(`invalid integer width (${oe}): ${me}`)}},jd=(me,oe)=>{var Ae=de[me];if(Ae===void 0)throw me=`${oe} has unknown type ${Is(me)}`,new Ee(me);return Ae},_a=(me,oe)=>{switch(oe){case 4:return function(Ae){return this.O(I[Ae>>2])};case 8:return function(Ae){return this.O(X[Ae>>3])};default:throw new TypeError(`invalid float width (${oe}): ${me}`)}},Ig=(me,oe,Ae)=>{let Ge=(Ke,Ct)=>{let ht=0;return{next(){if(ht>=Ke)return{done:!0};let At=ht;return ht++,{value:Ct(At),done:!1}},[Symbol.iterator](){return this}}};me[Symbol.iterator]||(me[Symbol.iterator]=function(){let Ke=this[oe]();return Ge(Ke,Ct=>this[Ae](Ct))})},_s=Object.assign({optional:!0},fc),$s=(me,oe,Ae)=>{var Ge=Z;if(!(0=ht){if(oe>=Ae)break;Ge[oe++]=ht}else if(2047>=ht){if(oe+1>=Ae)break;Ge[oe++]=192|ht>>6,Ge[oe++]=128|ht&63}else if(65535>=ht){if(oe+2>=Ae)break;Ge[oe++]=224|ht>>12,Ge[oe++]=128|ht>>6&63,Ge[oe++]=128|ht&63}else{if(oe+3>=Ae)break;Ge[oe++]=240|ht>>18,Ge[oe++]=128|ht>>12&63,Ge[oe++]=128|ht>>6&63,Ge[oe++]=128|ht&63,Ct++}}return Ge[oe]=0,oe-Ke},Uf=me=>{for(var oe=0,Ae=0;Ae=Ge?oe++:2047>=Ge?oe+=2:55296<=Ge&&57343>=Ge?(oe+=4,++Ae):oe+=3}return oe},ci=new TextDecoder,ea=(me,oe,Ae,Ge)=>{if(Ae=oe+Ae,Ge)return Ae;for(;me[oe]&&!(oe>=Ae);)++oe;return oe},Qd=new TextDecoder("utf-16le"),rd=(me,oe,Ae)=>(me>>=1,Qd.decode(G.subarray(me,ea(G,me,oe/2,Ae)))),vo=(me,oe,Ae)=>{if(Ae??(Ae=2147483647),2>Ae)return 0;Ae-=2;var Ge=oe;Ae=Ae<2*me.length?Ae/2:me.length;for(var Ke=0;Ke>1]=me.charCodeAt(Ke),oe+=2;return R[oe>>1]=0,oe-Ge},sd=me=>2*me.length,Pg=(me,oe,Ae)=>{var Ge="";me>>=2;for(var Ke=0;!(Ke>=oe/4);Ke++){var Ct=v[me+Ke];if(!Ct&&!Ae)break;Ge+=String.fromCodePoint(Ct)}return Ge},cU=(me,oe,Ae)=>{if(Ae??(Ae=2147483647),4>Ae)return 0;var Ge=oe;Ae=Ge+Ae-4;for(var Ke=0;Ke>2]=Ct,oe+=4,oe+4>Ae)break}return E[oe>>2]=0,oe-Ge},SH=me=>{for(var oe=0,Ae=0;Ae{var oe=_V.length;return _V.push(me),oe},Df=(me,oe)=>{for(var Ae=Array(me),Ge=0;Ge>2],`parameter ${Ge}`);return Ae},lU=(me,oe,Ae)=>{var Ge=[];return me=me(Ge,Ae),Ge.length&&(v[oe>>2]=Yo(Ge)),me},g0={},ZH=me=>{var oe=g0[me];return oe===void 0?ge(me):oe},SV={},AV=()=>{var me;if(!DA){var oe={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(((me=globalThis.navigator)==null?void 0:me.language)??"C").replace("-","_")+".UTF-8",_:u||"./this.program"},Ae;for(Ae in SV)SV[Ae]===void 0?delete oe[Ae]:oe[Ae]=SV[Ae];var Ge=[];for(Ae in oe)Ge.push(`${Ae}=${oe[Ae]}`);DA=Ge}return DA},DA,OA=[null,[],[]];if((()=>{let me=St.prototype;Object.assign(me,{isAliasOf:function(Ae){if(!(this instanceof St&&Ae instanceof St))return!1;var Ge=this.M.R.N,Ke=this.M.P;Ae.M=Ae.M;var Ct=Ae.M.R.N;for(Ae=Ae.M.P;Ge.W;)Ke=Ge.fa(Ke),Ge=Ge.W;for(;Ct.W;)Ae=Ct.fa(Ae),Ct=Ct.W;return Ge===Ct&&Ke===Ae},clone:function(){if(this.M.P||je(this),this.M.ea)return this.M.count.value+=1,this;var Ae=Oe,Ge=Object,Ke=Ge.create,Ct=Object.getPrototypeOf(this),ht=this.M;return Ae=Ae(Ke.call(Ge,Ct,{M:{value:{count:ht.count,da:ht.da,ea:ht.ea,P:ht.P,R:ht.R,V:ht.V,Y:ht.Y}}})),Ae.M.count.value+=1,Ae.M.da=!1,Ae},delete(){if(this.M.P||je(this),this.M.da&&!this.M.ea)throw new Ee("Object already scheduled for deletion");Ie(this);var Ae=this.M;--Ae.count.value,Ae.count.value===0&&(Ae.V?Ae.Y.Z(Ae.V):Ae.R.N.Z(Ae.P)),this.M.ea||(this.M.V=void 0,this.M.P=void 0)},isDeleted:function(){return!this.M.P},deleteLater:function(){if(this.M.P||je(this),this.M.da&&!this.M.ea)throw new Ee("Object already scheduled for deletion");return this.M.da=!0,this}});let oe=Symbol.dispose;oe&&(me[oe]=me.delete)})(),Object.assign(ni.prototype,{wa(me){return this.pa&&(me=this.pa(me)),me},ma(me){var oe;(oe=this.Z)==null||oe.call(this,me)},X:te,O:function(me){function oe(){return this.ha?ti(this.N.ba,{R:this.Ba,P:Ae,Y:this,V:me}):ti(this.N.ba,{R:this,P:me})}var Ae=this.wa(me);if(!Ae)return this.ma(me),null;var Ge=so(this.N,Ae);if(Ge!==void 0)return Ge.M.count.value===0?(Ge.M.P=Ae,Ge.M.V=me,Ge.clone()):(Ge=Ge.clone(),this.ma(me),Ge);if(Ge=this.N.va(Ae),Ge=on[Ge],!Ge)return oe.call(this);Ge=this.ga?Ge.sa:Ge.pointerType;var Ke=Ko(Ae,this.N,Ge.N);return Ke===null?oe.call(this):this.ha?ti(Ge.N.ba,{R:Ge,P:Ke,Y:this,V:me}):ti(Ge.N.ba,{R:Ge,P:Ke})}}),r.print&&(p=r.print),r.printErr&&(b=r.printErr),r.thisProgram&&(u=r.thisProgram),r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);0L(""),r:me=>{var oe=ee[me];delete ee[me];var Ae=oe.ka,Ge=oe.Z,Ke=oe.na,Ct=Ke.map(ht=>ht.za).concat(Ke.map(ht=>ht.Fa));Ce([me],Ct,ht=>{var At={},bn,rt;for([bn,rt]of Ke.entries()){let be=ht[bn],Ye=rt.xa,ft=rt.ya,Jt=ht[bn+Ke.length],Fn=rt.Ea,oi=rt.Ga;At[rt.ua]={read:Jo=>be.O(Ye(ft,Jo)),write:(Jo,pr)=>{var br=[];Fn(oi,Jo,Jt.S(br,pr)),H(br)},optional:be.optional}}return[{name:oe.name,O:be=>{var Ye={},ft;for(ft in At)Ye[ft]=At[ft].read(be);return Ge(be),Ye},S:(be,Ye)=>{for(var ft in At)if(!(ft in Ye||At[ft].optional))throw new TypeError(`Missing field: "${ft}"`);var Jt=Ae();for(ft in At)At[ft].write(Jt,Ye[ft]);return be!==null&&be.push(Ge,Jt),Jt},X:te,T:Ge}]})},o:(me,oe,Ae,Ge,Ke)=>{oe=ge(oe),Ge=Ge===0n;let Ct=ht=>ht;if(Ge){let ht=8*Ae;Ct=At=>BigInt.asUintN(ht,At),Ke=Ct(Ke)}we(me,{name:oe,O:Ct,S:(ht,At)=>(typeof At=="number"&&(At=BigInt(At)),At),X:nt(oe,Ae,!Ge),T:null})},C:(me,oe,Ae,Ge)=>{oe=ge(oe),we(me,{name:oe,O:function(Ke){return!!Ke},S:function(Ke,Ct){return Ct?Ae:Ge},X:function(Ke){return this.O(Z[Ke])},T:null})},k:(me,oe,Ae,Ge,Ke,Ct,ht,At,bn,rt,be,Ye,ft)=>{be=ge(be),Ct=Mn(Ke,Ct),At&&(At=Mn(ht,At)),rt&&(rt=Mn(bn,rt)),ft=Mn(Ye,ft);var Jt=Wt(be);gt(Jt,function(){Ps(`Cannot construct ${be} due to unbound types`,[Ge])}),Ce([me,oe,Ae],Ge?[Ge]:[],Fn=>{if(Fn=Fn[0],Ge)var oi=Fn.N,Jo=oi.ba;else Jo=St.prototype;Fn=Et(be,function(...tT){if(Object.getPrototypeOf(this)!==pr)throw new Ee(`Use 'new' to construct ${be}`);if(br.aa===void 0)throw new Ee(`${be} has no accessible constructor`);var ka=br.aa[tT.length];if(ka===void 0)throw new Ee(`Tried to invoke ctor of ${be} with invalid number of parameters (${tT.length}) - expected (${Object.keys(br.aa).toString()}) parameters instead!`);return ka.apply(this,tT)});var pr=Object.create(Jo,{constructor:{value:Fn}});Fn.prototype=pr;var br=new Cn(be,Fn,pr,ft,oi,Ct,At,rt);if(br.W){var pc;(pc=br.W).la??(pc.la=[]),br.W.la.push(br)}return oi=new ni(be,br,!0,!1,!1),pc=new ni(be+"*",br,!1,!1,!1),Jo=new ni(be+" const*",br,!1,!0,!1),on[me]={pointerType:pc,sa:Jo},yn(Jt,Fn),[oi,pc,Jo]})},g:(me,oe,Ae,Ge,Ke,Ct)=>{var ht=Xs(oe,Ae);Ke=Mn(Ge,Ke),Ce([],[me],At=>{At=At[0];var bn=`constructor ${At.name}`;if(At.N.aa===void 0&&(At.N.aa=[]),At.N.aa[oe-1]!==void 0)throw new Ee(`Cannot register multiple constructors with identical number of parameters (${oe-1}) for class '${At.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return At.N.aa[oe-1]=()=>{Ps(`Cannot construct ${At.name} due to unbound types`,ht)},Ce([],ht,rt=>(rt.splice(1,0,null),At.N.aa[oe-1]=Uo(bn,rt,null,Ke,Ct),[])),[]})},b:(me,oe,Ae,Ge,Ke,Ct,ht,At,bn)=>{var rt=Xs(Ae,Ge);oe=ge(oe),oe=hi(oe),Ct=Mn(Ke,Ct),Ce([],[me],be=>{function Ye(){Ps(`Cannot call ${ft} due to unbound types`,rt)}be=be[0];var ft=`${be.name}.${oe}`;oe.startsWith("@@")&&(oe=Symbol[oe.substring(2)]),At&&be.N.Ca.push(oe);var Jt=be.N.ba,Fn=Jt[oe];return Fn===void 0||Fn.U===void 0&&Fn.className!==be.name&&Fn.$===Ae-2?(Ye.$=Ae-2,Ye.className=be.name,Jt[oe]=Ye):(Ot(Jt,oe,ft),Jt[oe].U[Ae-2]=Ye),Ce([],rt,oi=>(oi=Uo(ft,oi,be,Ct,ht,bn),Jt[oe].U===void 0?(oi.$=Ae-2,Jt[oe]=oi):Jt[oe].U[Ae-2]=oi,[])),[]})},A:me=>we(me,fc),s:(me,oe,Ae,Ge,Ke)=>{switch(oe=ge(oe),Ke=Ke===0?"object":Ke===1?"number":"string",Ke){case"object":let ht=function(){};ht.values={},we(me,{name:oe,constructor:ht,valueType:Ke,O:function(At){return this.constructor.values[At]},S:(At,bn)=>bn.value,X:$r(oe,Ae,Ge),T:null}),gt(oe,ht);break;case"number":var Ct={};we(me,{name:oe,ja:Ct,valueType:Ke,O:At=>At,S:(At,bn)=>bn,X:$r(oe,Ae,Ge),T:null}),gt(oe,Ct),delete r[oe].$;break;case"string":Ct={},we(me,{name:oe,ra:{},qa:{},ja:Ct,valueType:Ke,O:function(At){return this.qa[At]},S:function(At,bn){return this.ra[bn]},X:$r(oe,Ae,Ge),T:null}),gt(oe,Ct),delete r[oe].$}},d:(me,oe,Ae)=>{var Ge=jd(me,"enum");switch(oe=ge(oe),Ge.valueType){case"object":me=Ge.constructor,Ge=Object.create(Ge.constructor.prototype,{value:{value:Ae},constructor:{value:Et(`${Ge.name}_${oe}`,function(){})}}),me.values[Ae]=Ge,me[oe]=Ge;break;case"number":Ge.ja[oe]=Ae;break;case"string":Ge.ra[oe]=Ae,Ge.qa[Ae]=oe,Ge.ja[oe]=oe}},n:(me,oe,Ae)=>{oe=ge(oe),we(me,{name:oe,O:Ge=>Ge,S:(Ge,Ke)=>Ke,X:_a(oe,Ae),T:null})},m:(me,oe,Ae,Ge,Ke,Ct,ht)=>{var At=Xs(oe,Ae);me=ge(me),me=hi(me),Ke=Mn(Ge,Ke),gt(me,function(){Ps(`Cannot call ${me} due to unbound types`,At)},oe-1),Ce([],At,bn=>(bn=[bn[0],null].concat(bn.slice(1)),yn(me,Uo(me,bn,null,Ke,Ct,ht),oe-1),[]))},c:(me,oe,Ae,Ge,Ke)=>{oe=ge(oe);let Ct=At=>At;if(Ge===0){var ht=32-8*Ae;Ct=At=>At<>>ht,Ke=Ct(Ke)}we(me,{name:oe,O:Ct,S:(At,bn)=>bn,X:nt(oe,Ae,Ge!==0),T:null})},j:(me,oe,Ae,Ge)=>{Ae=ge(Ae),Ge=ge(Ge),Ce([],[me,oe],Ke=>(Ig(Ke[0].N.ba,Ae,Ge),[]))},a:(me,oe,Ae)=>{function Ge(Ct){return new Ke(A.buffer,v[Ct+4>>2],v[Ct>>2])}var Ke=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][oe];Ae=ge(Ae),we(me,{name:Ae,O:Ge,X:Ge},{Aa:!0})},h:me=>{we(me,_s)},B:(me,oe)=>{oe=ge(oe),we(me,{name:oe,O(Ae){var Ge=(Ge=Ae+4)?ci.decode(Z.subarray(Ge,ea(Z,Ge,v[Ae>>2],!0))):"";return fl(Ae),Ge},S(Ae,Ge){Ge instanceof ArrayBuffer&&(Ge=new Uint8Array(Ge));var Ke=typeof Ge=="string";if(!(Ke||ArrayBuffer.isView(Ge)&&Ge.BYTES_PER_ELEMENT==1))throw new Ee("Cannot pass non-string to std::string");var Ct=Ke?Uf(Ge):Ge.length,ht=Xg(4+Ct+1),At=ht+4;return v[ht>>2]=Ct,Ke?$s(Ge,At,Ct+1):Z.set(Ge,At),Ae!==null&&Ae.push(fl,ht),ht},X:te,T(Ae){fl(Ae)}})},f:(me,oe,Ae)=>{if(Ae=ge(Ae),oe===2)var Ge=rd,Ke=vo,Ct=sd;else Ge=Pg,Ke=cU,Ct=SH;we(me,{name:Ae,O:ht=>{var At=Ge(ht+4,v[ht>>2]*oe,!0);return fl(ht),At},S:(ht,At)=>{if(typeof At!="string")throw new Ee(`Cannot pass non-string to C++ string type ${Ae}`);var bn=Ct(At),rt=Xg(4+bn+oe);return v[rt>>2]=bn/oe,Ke(At,rt+4,bn+oe),ht!==null&&ht.push(fl,rt),rt},X:te,T(ht){fl(ht)}})},i:(me,oe,Ae,Ge,Ke,Ct)=>{ee[me]={name:ge(oe),ka:Mn(Ae,Ge),Z:Mn(Ke,Ct),na:[]}},e:(me,oe,Ae,Ge,Ke,Ct,ht,At,bn,rt)=>{ee[me].na.push({ua:ge(oe),za:Ae,xa:Mn(Ge,Ke),ya:Ct,Fa:ht,Ea:Mn(At,bn),Ga:rt})},D:(me,oe)=>{oe=ge(oe),we(me,{oa:!0,name:oe,O:()=>{},S:()=>{}})},q:(me,oe,Ae)=>{var[Ge,...Ke]=Df(me,oe);oe=Ge.S.bind(Ge);var Ct=Ke.map(bn=>bn.X.bind(bn));me--;var ht={toValue:Ei};switch(me=Ct.map((bn,rt)=>{var be=`argFromPtr${rt}`;return ht[be]=bn,`${be}(args${rt?"+"+8*rt:""})`}),Ae){case 0:var At="toValue(handle)";break;case 2:At="new (toValue(handle))";break;case 3:At="";break;case 1:ht.getStringOrSymbol=ZH,At="toValue(handle)[getStringOrSymbol(methodName)]"}return At+=`(${me})`,Ge.oa||(ht.toReturnWire=oe,ht.emval_returnValue=lU,At=`return emval_returnValue(toReturnWire, destructorsRef, ${At})`),At=`return function (handle, methodName, destructorsRef, args) { +${At} +}`,Ae=new Function(Object.keys(ht),At)(...Object.values(ht)),At=`methodCaller<(${Ke.map(bn=>bn.name)}) => ${Ge.name}>`,AH(Et(At,Ae))},F:Ys,p:(me,oe,Ae,Ge,Ke)=>_V[me](oe,Ae,Ge,Ke),E:me=>{var oe=Ei(me);H(oe),Ys(me)},t:(me,oe,Ae,Ge)=>{var Ke=new Date().getFullYear(),Ct=new Date(Ke,0,1).getTimezoneOffset();Ke=new Date(Ke,6,1).getTimezoneOffset(),v[me>>2]=60*Math.max(Ct,Ke),E[oe>>2]=+(Ct!=Ke),oe=ht=>{var At=Math.abs(ht);return`UTC${0<=ht?"-":"+"}${String(Math.floor(At/60)).padStart(2,"0")}${String(At%60).padStart(2,"0")}`},me=oe(Ct),oe=oe(Ke),Ke{var oe=Z.length;if(me>>>=0,2147483648=Ae;Ae*=2){var Ge=oe*(1+.2/Ae);Ge=Math.min(Ge,me+100663296);e:{Ge=(Math.min(2147483648,65536*Math.ceil(Math.max(me,Ge)/65536))-Of.buffer.byteLength+65535)/65536|0;try{Of.grow(Ge),V();var Ke=1;break e}catch{}Ke=void 0}if(Ke)return!0}return!1},u:(me,oe)=>{var Ae=0,Ge=0,Ke;for(Ke of AV()){var Ct=oe+Ae;v[me+Ge>>2]=Ct,Ae+=$s(Ke,Ct,1/0)+1,Ge+=4}return 0},v:(me,oe)=>{var Ae=AV();v[me>>2]=Ae.length,me=0;for(var Ge of Ae)me+=Uf(Ge)+1;return v[oe>>2]=me,0},w:()=>52,x:function(){return 70},l:(me,oe,Ae,Ge)=>{for(var Ke=0,Ct=0;Ct>2],At=v[oe+4>>2];oe+=8;for(var bn=0;bn>2]=Ke,0}},zA;return zA=await(async function(){function me(Ae){return Ae=zA=Ae.exports,BA=Ae.J,Xg=r._malloc=Ae.K,fl=r._free=Ae.L,Of=Ae.G,ju=Ae.I,V(),zA}var oe={a:CH};return r.instantiateWasm?new Promise(Ae=>{r.instantiateWasm(oe,(Ge,Ke)=>{Ae(me(Ge))})}):(P??(P=y(`\0asm\0\0\0\xD79\`\x7F\x7F\`\x7F\x7F\0\`\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\`\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F\x7F\x7F\0\`\b\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`\0\0\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F~~~~\0\`\0\x7F\` +\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x07\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F\x7F~\x7F\`\b\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F~~\x7F\0\`\x7F~\x7F~\`\x7F\x7F~\x7F\x7F\0\` +\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`\f\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F~\`\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\v\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\`\x7F\x7F\x7F\x7F~\`\x7F|\x7F\x7F\x7F\x7F\x7F\`\x07\x7F\x7F\x7F\x7F\x7F~~\x7F\`\x7F\x7F\x7F\x7F~~\x7F\`\x7F\x7F\x7F\x7F|\x7F\`\r\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\0\`\x7F\x7F\x7F~~\0\`\x7F\x7F\x7F\x7F\x7F|\`\x7F~\x7F\x7F\x7F\`\x7F~\0\`\x7F|\0\`~~~~\x7F\`~\x7F\x7F\`\x7F\x7F\x7F~\x7F\0\`\x7F\x7F\x7F~~\`~~|\`\x7F|\`\x7F\x7F\x7F|\`\x7F\x7F\x7F}\`\x7F\x7F~\0\`~~}\`\x7F\x7F~\`\x7F~~~\0\`~~~\x7F\`|\x7F|\`\x7F\x7F\x7F}\x7F\`\x7F\x7F\x7F}\0\`\x7F\x7F}\0\xC1 aa\0\x07ab\0ac\0 +ad\0\x07ae\0af\0\x07ag\0\vah\0ai\0\vaj\0\bak\0"al\0am\0an\0\x07ao\0#ap\0$aq\0ar\0as\0 +at\0\bau\0av\0aw\0\0ax\0%ay\0\raz\0\0aA\0aB\0aC\0\baD\0aE\0aF\0\x8D\x8B\0\0\0\0\r\x07\0\b +\0\0\0\0\0\0\0\0\0\0\0&\0\0 \0\0\0'\0\f\f\0\r(\x07\r\x07\0\0\0\0\0)\0 \x07\x07\0\r +\0\0\0* +\r\0\0 +\v\b\x07\0\0 + +\b\0+\0\0,\x07-\0\r\0\x07\b\0\x07\b\x07\x07\x07\0\0 \f\f \f\f\0 \f\0\0\0\x1B\x1B\0\0 +\0\0\x07\v +\v\v +\v\v\0\r\b./\x07\0012\b34\0 \0\0\0\0\0\0\b\0\b\0 5\0\b\x07678\x07\x07\v\v\v + + +\b\b\b\x07\0\0\0\0\0\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\0\0\0 \0 \f\f\x07 \0 \x07\v\v\0\f\f !  !  \0\b\b \b \0\0\b\0\0\0\0\0\0\0\0\0\0\b\0\r\x07p\xFD\xFD\x07\x82\x80\x80\b\x7FA\xC0\xEC\v\x07\x1BG\0H\0\xAAI\0J\0\xD4K\0/L\0! \xAE\0A\v\xFC\x95\xF3\xEF\xD4\xCD\xC9\x81\xFA\xBE\xB7\xAE\xA5\x9D\x9B\x81\xFA\x91\x87\xFC\xF1\xEF\xEE\xEA\xD8\xD7\xE1\xE0\xDF\xDE\xDD,\xD8\xD7\xD5\xDC\xDB\xD3\xDA\xD9\xD5\xD8\xD7\xD3\xD6\xD5\xCC\xD3\xD28\xA9\xA8\xA7\xA6\xC3\xA3\xC2\xA2\xA1\xA088\x9F\x9E\x9D\xC6\x9C\xC6\xB0\x8C\x8D\x8B\x90\x8F\x8E\x81\xC0\x8A\x89\x88\x87\x95\xC1\x94\x92\x93\x91\x9B\xC5\x9A\x99\x98\xC1\x97\x96K\x86\x85\x84\xA0!\xF2\x8D\x8B\x89\x86\x84\x82\x80\xFE\xFB\xF9\xF7\xF5\xF3\xF0\xF5\xBD\xBC\xF0\xAF\xAD\xAC\xAB\xAA\xF1\xA9\xA8\xA7\xF6\xA4\xA3\xA2\xA1\xA08\x9F\x9E\xE6\x9C\x99\x97\x95\x93\x90\xE5\x9A\x98\x96\x94\x92\x8Fq,,\xBB\xBA\xB9\xB8\xB6\xB5\xB4\xB3\xF1\xB2\xB1\xB0,\xEF\xEF{\xA1\xA1\xA6\xA1,\xEC\xEB{88\xEA\x8B,\xEC\xEB{88\xEA\x8B,\xE9\xE8{88\xE7\x8B,\xE9\xE8{88\xE7\x8Bq,\x83\x82\x81q,\x80\xFF\xFE,\xFD\xFC\xFB\xFA\x9E\x9E\xF9\xF8\xF7\xF6\xF5,\xF4\xF2\xF1\xF0\x97\x97\xEE\xED\xEC\xEB\xEA,\xE9\xE8\xE7\xE6\xE5\xE4\xE3\xE2,\xE1\xE0\xDF\xDE\xDD\xDC\xDB\xDAq,\x8F\xD9\xD8\xD7\xD6\xD5\xD3\x8E\x8A\x85\xF8\xF4\x81\xFDq,\x8F\xD2\xD1\xD0\xCF\xCE\xCC\x8C\x88\x83\xF6\xF2\xFF\xFA\xAE\xE4\xCB\xAE\xE4\xCA,\x8E\x8EFFF\x878[[,\x8E\x8EFFF\x878[[,\x8D\x8DFFF\x868[[,\x8D\x8DFFF\x868[[,\xC8\xC7,\xC6\xC5,\xC4\xC3,\xC2\xC1,\xF7\xC0\xC2,\xF7\xBF\xC2\xA4\xA5q,\xA0\xA0\xDB,\xDB,\xED\xE2\xE5\xEC,\xE3\xE6\xEB,\xE4\xE7\xE9,\xE8\f( +\xC9\xCB\b\x8B\0 \0,\0\vA\0H@ \0(\b \0(\0!\v \0\v\x82\f\b\x7F@ \0E\r\0 \0A\bk" \0Ak(\0"Axq"\0j!@ Aq\r\0 AqE\r  (\0"k"A\x8C\xD8(\0I\r \0 j!\0@@@A\x90\xD8(\0 G@ (\f! A\xFFM@  (\b"G\rA\xFC\xD7A\xFC\xD7(\0A~ Avwq6\0\f\v (!\x07  G@ (\b" 6\f  6\b\f\v ("\x7F Aj ("E\r Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v ("AqAG\rA\x84\xD8 \x006\0  A~q6  \0Ar6  \x006\0\v  6\f  6\b\f\vA\0!\v \x07E\r\0@ ("At"(\xAC\xDA F@ A\xAC\xDAj 6\0 \rA\x80\xD8A\x80\xD8(\0A~ wq6\0\f\v@  \x07(F@ \x07 6\f\v \x07 6\v E\r\v  \x076 ("@  6  6\v ("E\r\0  6  6\v  O\r\0 ("AqE\r\0@@@@ AqE@A\x94\xD8(\0 F@A\x94\xD8 6\0A\x88\xD8A\x88\xD8(\0 \0j"\x006\0  \0Ar6 A\x90\xD8(\0G\rA\x84\xD8A\x006\0A\x90\xD8A\x006\0\vA\x90\xD8(\0"\x07 F@A\x90\xD8 6\0A\x84\xD8A\x84\xD8(\0 \0j"\x006\0  \0Ar6 \0 j \x006\0\v Axq \0j!\0 (\f! A\xFFM@ (\b" F@A\xFC\xD7A\xFC\xD7(\0A~ Avwq6\0\f\v  6\f  6\b\f\v (!\b  G@ (\b" 6\f  6\b\f\v ("\x7F Aj ("E\r Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v  A~q6  \0Ar6 \0 j \x006\0\f\vA\0!\v \bE\r\0@ ("At"(\xAC\xDA F@ A\xAC\xDAj 6\0 \rA\x80\xD8A\x80\xD8(\0A~ wq6\0\f\v@  \b(F@ \b 6\f\v \b 6\v E\r\v  \b6 ("@  6  6\v ("E\r\0  6  6\v  \0Ar6 \0 j \x006\0  \x07G\r\0A\x84\xD8 \x006\0\v \0A\xFFM@ \0A\xF8qA\xA4\xD8j!\x7FA\xFC\xD7(\0"A \0Avt"\0qE@A\xFC\xD7 \0 r6\0 \f\v (\b\v!\0  6\b \0 6\f  6\f  \x006\b\vA! \0A\xFF\xFF\xFF\x07M@ \0A& \0A\bvg"kvAq AtrA>s!\v  6 B\x007 AtA\xAC\xDAj!\x7F@\x7FA\x80\xD8(\0"A t"qE@A\x80\xD8  r6\0  6\0A!A\b\f\v \0A AvkA\0 AG\x1Bt! (\0!@ "(Axq \0F\r Av! At!  Aqj"("\r\0\v  6A! !A\b\v!\0 "\f\v (\b" 6\f  6\bA!\0A\b!A\0\v!  j 6\0  6\f \0 j 6\0A\x9C\xD8A\x9C\xD8(\0Ak"\0A\x7F \0\x1B6\0\v\v\xA0\x7F \0( \0,\0\v" A\0H\x1B" I@  k"@\x7F  \0(\b"A\xFF\xFF\xFF\xFF\x07qAkA + \0,\0\v"A\0H"\x1B" \0(  \x1B"kM@ Av\f\v \0   j k  \xA4 \0-\0\v\v! \0(\0 \0 \xC0A\0H\x1B" j! !@ @ A\0:\0\0 Ak! Aj!\f\v\v  j!@ \0,\0\vA\0H@ \0 6\f\v \0 A\xFF\0q:\0\v\v  jA\0:\0\0\v\v@ \0,\0\vA\0H@ \0 6 \0(\0!\0\f\v \0 A\xFF\0q:\0\v\v \0 jA\0:\0\0\v0\x7F@ \0A\xEC\xDEF\r\0 \0 \0("Ak6 \r\0 \0 \0(\0(\b\0\v\v%\0 \0 ("\x006\0 \0A\xEC\xDEG@ \0 \0(Aj6\v\v\x8B\x7F~@ \0)p"PE  \0)x \0(" \0(,"k\xAC|"WqE@#\0Ak"$\0A\x7F!@ \0\xC8\r\0 \0 AjA \0( \0AG\r\0 -\0!\v Aj$\0 "A\0N\r \0(! \0(,!\v \0B\x7F7p \0 6h \0   k\xAC|7xA\x7F\v B|! \0(! \0(\b!@ \0)p"P\r\0  }"  k\xACY\r\0  \xA7j!\v \0 6h \0  \0(,"\0 k\xAC|7x \0 O@ Ak :\0\0\v \v\xB1\x7F@ \xA5" \0(\b"A\xFF\xFF\xFF\xFF\x07qAkA \0,\0\v"A\0H"\x1B"M@ \0(\0 \0 \x1B!@ \x7F At"@   \xFC +\0\0\v \0,\0\v Av\v\xC0A\0H@ \0 6\f\v \0 A\xFF\0q:\0\v\v  AtjA\x006\0\f\v \0   k \0(  \x1B"\0A\0 \0  \xDE\v\v\r\0 \0  y\xE0\v\0 \0\xBC \xBCsAs\v\0 \0\xBD \xBDsAs\v\xE5\x7FA\xE8\xDE-\0\0@A\xE4\xDE(\0\v#\0A k"$\0@@@ A\bj" \0At"j\x7FA \0tA\xFF\xFF\xFF\xFF\x07q"ArE@ (\0\f\v \0A\xAFA\xD7 \x1B\xBB\v"6\0 A\x7FF\r \0Aj"\0AG\r\0\vA\0\xBAE@A\xF8\xFC\0! A\xF8\xFC\0AhE\rA\x90\xFD\0! A\x90\xFD\0AhE\rA\0!\0A\xA8\xDC-\0\0E@@ \0At \0A\xD7\xBB6\xF8\xDB \0Aj"\0AG\r\0\vA\xA8\xDCA:\0\0A\x90\xDCA\xF8\xDB(\x006\0\vA\xF8\xDB! A\bj"\0A\xF8\xDBAhE\rA\x90\xDC! \0A\x90\xDCAhE\rA/"E\r\v  )7  )7\b  )\b7\0\f\vA\0!\v A j$\0A\xE8\xDEA:\0\0A\xE4\xDE 6\0 \v\xCB +\x7F ~#\0A\xE0\0k"$\0 B\xFF\xFF\xFF\xFF\xFF\xFF?\x83! +  \x85B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F\x83!\v B\xFF\xFF\xFF\xFF\xFF\xFF?\x83"\fB \x88! B0\x88\xA7A\xFF\xFFq!\x07@@ B0\x88\xA7A\xFF\xFFq" A\xFF\xFFkA\x82\x80~O@ \x07A\xFF\xFFkA\x81\x80~K\r\v P B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83"\rB\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0T \rB\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0Q\x1BE@ B\x80\x80\x80\x80\x80\x80 \x84!\v\f\v P B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83"B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0T B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0Q\x1BE@ B\x80\x80\x80\x80\x80\x80 \x84!\v !\f\v  \rB\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x85\x84P@  \x84P@B\x80\x80\x80\x80\x80\x80\xE0\xFF\xFF\0!\vB\0!\f\v \vB\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x84!\vB\0!\f\v  B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x85\x84P@  \r\x84B\0!P@B\x80\x80\x80\x80\x80\x80\xE0\xFF\xFF\0!\v\f\v \vB\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x84!\v\f\v  \r\x84P@B\0!\f\v  \x84P@B\0!\f\v \rB\xFF\xFF\xFF\xFF\xFF\xFF?X@ A\xD0\0j  \f  \f \fP"\x1ByB\xC0\0B\0 \x1B|\xA7"Ak6A k! )X"\fB \x88! )P!\v B\xFF\xFF\xFF\xFF\xFF\xFF?V\r\0 A@k  +  + +P"\b\x1ByB\xC0\0B\0 \b\x1B|\xA7"\bAk6  \bkAj! )H! + )@!\v \x07 j jA\xFF\xFF\0k!@ +B\x86"B \x88B\x80\x80\x80\x80\b\x84" B \x88"~" B\x86"B \x88" + B\x80\x80\x84"\r~|" T\xAD  B1\x88 \x84B\xFF\xFF\xFF\xFF\x83" \fB\xFF\xFF\xFF\xFF\x83"\f~|" T\xAD|  \r~|   B\x80\x80\xFE\xFF\x83" \f~"  +~|" T\xAD    B\xFF\xFF\xFF\xFF\x83"~|"V\xAD||"V\xAD|  \r~"  \f~|" T\xADB \x86 B \x88\x84|   B \x86|"V\xAD|  \r ~"\r + \f~|"\f  ~|"  ~|"B \x88  V\xAD \f \rT\xAD  \fT\xAD||B \x86\x84|" T\xAD|    ~"\f  +~|"B \x88  \fT\xADB \x86\x84|" + T\xAD + B \x86|" +T\xAD||" + T\xAD| +  B \x86"  ~|" T\xAD|" T\xAD|" +T\xAD|"B\x80\x80\x80\x80\x80\x80\xC0\0\x83PE@ Aj!\f\v B?\x88 B\x86 B?\x88\x84! B\x86 B?\x88\x84! B\x86! B\x86\x84!\v A\xFF\xFFN@ \vB\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x84!\vB\0!\f\v~ A\0L@A k"\x07A\xFF\0M@ A0j   A\xFF\0j"6 A j   6 Aj   \x07g    \x07g )0 )8\x84B\0R\xAD ) )\x84\x84! )( )\x84! )\0! )\b\f\vB\0!\f\v B\xFF\xFF\xFF\xFF\xFF\xFF?\x83 \xADB0\x86\x84\v \v\x84!\v P B\0Y B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7FQ\x1BE@ \v B|"P\xAD|!\v\f\v  B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F\x85\x84PE@ !\f\v \v  B\x83|" T\xAD|!\v\v \0 7\0 \0 \v7\b A\xE0\0j$\0\v\0 \0!\vr\x7F#\0Ak"$\0  \x006 \0(\0A\x7FG@  Aj6\f  A\fj6\b A\bj!@ \0(\0AF\r\0\v \0(\0E@ \0A6\0 \xF2 \0A\x7F6\0\v\v \0( Aj$\0Ak\v\xB2\x7F#\0Ak"$\0 \0 \0(Aj6  \x006\f@A\xF8\xDE(\0A\xF4\xDE(\0"\0kAu M\x7F@ Aj"\0A\xF8\xDE(\0A\xF4\xDE(\0"kAu"K@#\0A k"\x07$\0@ \0 k"A\xFC\xDE(\0A\xF8\xDE(\0"kAuM@A\xF4\xDE \xB9\f\v A\xF4\xDE(\0kAu j"\0A\x80\x80\x80\x80O@0\0\vA\xFF\xFF\xFF\xFFA\xFC\xDE(\0A\xF4\xDE(\0k"Au" \0 \0 I\x1B A\xFC\xFF\xFF\xFF\x07O\x1B!A\xF8\xDE(\0A\xF4\xDE(\0kAu!A\0! \x07A\fj"\0A\x80\xDF6 \0A\x006\f @A\x80\xDF \xE3!\v \0 6\0 \0  Atj"6\b \0  Atj6\f \0 6 \0 \xCFA\xF4\xDE \0\x96 \0\xD4 \0(\0"@ \0(\f \0( \xE2\v\v \x07A j$\0\f\v \0 I@A\xF8\xDE  \0Atj6\0\v\vA\xF4\xDE(\0 \0\v Atj(\0"\0E\r\0 \0 \0("Ak6 \r\0 \0 \0(\0(\b\0\v (\f!\0 A\x006\fA\xF4\xDE(\0 Atj \x006\0 (\f!\0 A\x006\f@ \0E\r\0 \0 \0("Ak6 \r\0 \0 \0(\0(\b\0\v Aj$\0\v\xBC(\v\x7F#\0Ak" +$\0@@@@@@@@@@ \0A\xF4M@A\xFC\xD7(\0"A \0A\vjA\xF8q \0A\vI\x1B"Av"\0v"Aq@@ A\x7FsAq \0j"At"A\xA4\xD8j"\0 (\xAC\xD8"(\b"F@A\xFC\xD7 A~ wq6\0\f\v  \x006\f \0 6\b\v A\bj!\0  Ar6  j" (Ar6\f\v\v A\x84\xD8(\0"\bM\r @@A \0t"A\0 kr  \0tqh"At"A\xA4\xD8j" (\xAC\xD8"\0(\b"F@A\xFC\xD7 A~ wq"6\0\f\v  6\f  6\b\v \0 Ar6 \0 j"\x07  k"Ar6 \0 j 6\0 \b@ \bAxqA\xA4\xD8j!A\x90\xD8(\0!\x7F A \bAvt"qE@A\xFC\xD7  r6\0 \f\v (\b\v!  6\b  6\f  6\f  6\b\v \0A\bj!\0A\x90\xD8 \x076\0A\x84\xD8 6\0\f\v\vA\x80\xD8(\0"\vE\r \vhAt(\xAC\xDA"(Axq k! !@@ ("\0E@ ("\0E\r\v \0(Axq k"   I"\x1B! \0  \x1B! \0!\f\v\v (!  (\f"\0G@ (\b" \x006\f \0 6\b\f +\v ("\x7F Aj ("E\r Aj\v!@ !\x07 "\0Aj! \0("\r\0 \0Aj! \0("\r\0\v \x07A\x006\0\f \vA\x7F! \0A\xBF\x7FK\r\0 \0A\vj"Axq!A\x80\xD8(\0"\x07E\r\0A!\bA\0 k! \0A\xF4\xFF\xFF\x07M@ A& A\bvg"\0kvAq \0AtkA>j!\b\v@@@ \bAt(\xAC\xDA"E@A\0!\0\f\vA\0!\0 A \bAvkA\0 \bAG\x1Bt!@@ (Axq k" O\r\0 ! "\r\0A\0! !\0\f\v \0 ("   AvAqj("F\x1B \0 \x1B!\0 At! \r\0\v\v \0 rE@A\0!A \bt"\0A\0 \0kr \x07q"\0E\r \0hAt(\xAC\xDA!\0\v \0E\r\v@ \0(Axq k" I!   \x1B! \0  \x1B! \0("\x7F  \0(\v"\0\r\0\v\v E\r\0 A\x84\xD8(\0 kO\r\0 (!\b  (\f"\0G@ (\b" \x006\f \0 6\b\f\b\v ("\x7F Aj ("E\r Aj\v!@ ! "\0Aj! \0("\r\0 \0Aj! \0("\r\0\v A\x006\0\f\x07\v A\x84\xD8(\0"M@A\x90\xD8(\0!\0@  k"AO@ \0 j" Ar6 \0 j 6\0 \0 Ar6\f\v \0 Ar6 \0 j" (Ar6A\0!A\0!\vA\x84\xD8 6\0A\x90\xD8 6\0 \0A\bj!\0\f \v A\x88\xD8(\0"I@A\x88\xD8  k"6\0A\x94\xD8A\x94\xD8(\0"\0 j"6\0  Ar6 \0 Ar6 \0A\bj!\0\f \vA\0!\0 A/j"\x7FA\xD4\xDB(\0@A\xDC\xDB(\0\f\vA\xE0\xDBB\x7F7\0A\xD8\xDBB\x80\xA0\x80\x80\x80\x807\0A\xD4\xDB +A\fjApqA\xD8\xAA\xD5\xAAs6\0A\xE8\xDBA\x006\0A\xB8\xDBA\x006\0A\x80 \v"j"A\0 k"\x07q" M\r\bA\xB4\xDB(\0"@A\xAC\xDB(\0"\b j" \bM  Ir\r \v@A\xB8\xDB-\0\0AqE@@@@@A\x94\xD8(\0"@A\xBC\xDB!\0@ \0(\0"\b M@  \b \0(jI\r\v \0(\b"\0\r\0\v\vA\0v"A\x7FF\r !A\xD8\xDB(\0"\0Ak" q@  k  jA\0 \0kqj!\v  M\rA\xB4\xDB(\0"\0@A\xAC\xDB(\0" j"\x07 M \0 \x07Ir\r\v v"\0 G\r\f\v  k \x07q"v" \0(\0 \0(jF\r !\0\v \0A\x7FF\r A0j M@ \0!\f\vA\xDC\xDB(\0"  kjA\0 kq"vA\x7FF\r  j! \0!\f\v A\x7FG\r\vA\xB8\xDBA\xB8\xDB(\0Ar6\0\v v"A\x7FFA\0v"\0A\x7FFr \0 Mr\r \0 k" A(jM\r\vA\xAC\xDBA\xAC\xDB(\0 j"\x006\0A\xB0\xDB(\0 \0I@A\xB0\xDB \x006\0\v@A\x94\xD8(\0"@A\xBC\xDB!\0@  \0(\0" \0("jF\r \0(\b"\0\r\0\v\f\vA\x8C\xD8(\0"\0A\0 \0 M\x1BE@A\x8C\xD8 6\0\vA\0!\0A\xC0\xDB 6\0A\xBC\xDB 6\0A\x9C\xD8A\x7F6\0A\xA0\xD8A\xD4\xDB(\x006\0A\xC8\xDBA\x006\0@ \0At" A\xA4\xD8j"6\xAC\xD8  6\xB0\xD8 \0Aj"\0A G\r\0\vA\x88\xD8 A(k"\0Ax kA\x07q"k"6\0A\x94\xD8  j"6\0  Ar6 \0 jA(6A\x98\xD8A\xE4\xDB(\x006\0\f\v  M  Kr\r \0(\fA\bq\r \0  j6A\x94\xD8 Ax kA\x07q"\0j"6\0A\x88\xD8A\x88\xD8(\0 j" \0k"\x006\0  \0Ar6  jA(6A\x98\xD8A\xE4\xDB(\x006\0\f\vA\0!\0\f\vA\0!\0\f\vA\x8C\xD8(\0 K@A\x8C\xD8 6\0\v  j!A\xBC\xDB!\0@@  \0(\0"G@ \0(\b"\0\r\f\v\v \0-\0\fA\bqE\r\vA\xBC\xDB!\0@@ \0(\0" M@   \0(j"I\r\v \0(\b!\0\f\v\vA\x88\xD8 A(k"\0Ax kA\x07q"k"\x076\0A\x94\xD8  j"6\0  \x07Ar6 \0 jA(6A\x98\xD8A\xE4\xDB(\x006\0  A' kA\x07qjA/k"\0 \0 AjI\x1B"A\x1B6 A\xC4\xDB)\x007 A\xBC\xDB)\x007\bA\xC4\xDB A\bj6\0A\xC0\xDB 6\0A\xBC\xDB 6\0A\xC8\xDBA\x006\0 Aj!\0@ \0A\x076 \0A\bj \0Aj!\0 I\r\0\v  F\r\0  (A~q6   k"Ar6  6\0\x7F A\xFFM@ A\xF8qA\xA4\xD8j!\0\x7FA\xFC\xD7(\0"A Avt"qE@A\xFC\xD7  r6\0 \0\f\v \0(\b\v! \0 6\b  6\fA\f!A\b\f\vA!\0 A\xFF\xFF\xFF\x07M@ A& A\bvg"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtA\xAC\xDAj!@@A\x80\xD8(\0"A \0t"qE@A\x80\xD8  r6\0  6\0\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ "(Axq F\r \0Av! \0At!\0  Aqj"("\r\0\v  6\v  6A\b! "!\0A\f\f\v (\b"\0 6\f  6\b  \x006\bA\0!\0A!A\f\v j 6\0  j \x006\0\vA\x88\xD8(\0"\0 M\r\0A\x88\xD8 \0 k"6\0A\x94\xD8A\x94\xD8(\0"\0 j"6\0  Ar6 \0 Ar6 \0A\bj!\0\f\vA\xF8\xD7A06\0A\0!\0\f\v \0 6\0 \0 \0( j6 Ax kA\x07qj"\b Ar6 Ax kA\x07qj"  \bj"k!\x07@A\x94\xD8(\0 F@A\x94\xD8 6\0A\x88\xD8A\x88\xD8(\0 \x07j"\x006\0  \0Ar6\f\vA\x90\xD8(\0 F@A\x90\xD8 6\0A\x84\xD8A\x84\xD8(\0 \x07j"\x006\0  \0Ar6 \0 j \x006\0\f\v ("\0AqAF@ \0Axq! (\f!@ \0A\xFFM@ (\b" F@A\xFC\xD7A\xFC\xD7(\0A~ \0Avwq6\0\f\v  6\f  6\b\f\v (!@  G@ (\b"\0 6\f  \x006\b\f\v@ ("\0\x7F Aj ("\0E\r Aj\v!@ ! \0"Aj! \0("\0\r\0 Aj! ("\0\r\0\v A\x006\0\f\vA\0!\v E\r\0@ ("\0At"(\xAC\xDA F@ A\xAC\xDAj 6\0 \rA\x80\xD8A\x80\xD8(\0A~ \0wq6\0\f\v@  (F@  6\f\v  6\v E\r\v  6 ("\0@  \x006 \0 6\v ("\0E\r\0  \x006 \0 6\v \x07 j!\x07  j"(!\0\v  \0A~q6  \x07Ar6  \x07j \x076\0 \x07A\xFFM@ \x07A\xF8qA\xA4\xD8j!\0\x7FA\xFC\xD7(\0"A \x07Avt"qE@A\xFC\xD7  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\f\vA! \x07A\xFF\xFF\xFF\x07M@ \x07A& \x07A\bvg"\0kvAq \0AtrA>s!\v  6 B\x007 AtA\xAC\xDAj!\0@@A\x80\xD8(\0"A t"qE@A\x80\xD8  r6\0 \0 6\0\f\v \x07A AvkA\0 AG\x1Bt! \0(\0!@ "\0(Axq \x07F\r Av! At! \0 Aqj"("\r\0\v  6\v  \x006  6\f  6\b\f\v \0(\b" 6\f \0 6\b A\x006  \x006\f  6\b\v \bA\bj!\0\f\v@ \bE\r\0@ ("At"(\xAC\xDA F@ A\xAC\xDAj \x006\0 \0\rA\x80\xD8 \x07A~ wq"\x076\0\f\v@  \b(F@ \b \x006\f\v \b \x006\v \0E\r\v \0 \b6 ("@ \0 6  \x006\v ("E\r\0 \0 6  \x006\v@ AM@   j"\0Ar6 \0 j"\0 \0(Ar6\f\v  Ar6  j" Ar6  j 6\0 A\xFFM@ A\xF8qA\xA4\xD8j!\0\x7FA\xFC\xD7(\0"A Avt"qE@A\xFC\xD7  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\f\vA!\0 A\xFF\xFF\xFF\x07M@ A& A\bvg"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtA\xAC\xDAj!@@ \x07A \0t"qE@A\x80\xD8  \x07r6\0  6\0  6\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ "(Axq F\r \0Av! \0At!\0  Aqj"\x07("\r\0\v \x07 6  6\v  6\f  6\b\f\v (\b"\0 6\f  6\b A\x006  6\f  \x006\b\v A\bj!\0\f\v@ E\r\0@ ("At"(\xAC\xDA F@ A\xAC\xDAj \x006\0 \0\rA\x80\xD8 \vA~ wq6\0\f\v@  (F@ \x006\f\v \x006\v \0E\r\v \0 6 ("@ \0 6  \x006\v ("E\r\0 \0 6  \x006\v@ AM@   j"\0Ar6 \0 j"\0 \0(Ar6\f\v  Ar6  j" Ar6  j 6\0 \b@ \bAxqA\xA4\xD8j!\0A\x90\xD8(\0!\x7FA \bAvt"\x07 qE@A\xFC\xD7  \x07r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\vA\x90\xD8 6\0A\x84\xD8 6\0\v A\bj!\0\v +Aj$\0 \0\v\0\x9C\0\v;\x7F#\0Ak"$\0  \x006\f (\f"\0(\0"@ \0 6 \0(\b !\v Aj$\0\vu~ \0  ~  ~| B \x88" B \x88"~| B\xFF\xFF\xFF\xFF\x83" B\xFF\xFF\xFF\xFF\x83"~"B \x88  ~|"B \x88|  ~ B\xFF\xFF\xFF\xFF\x83|"B \x88|7\b \0 B\xFF\xFF\xFF\xFF\x83 B \x86\x847\0\v\xC1\x7F \0-\0\0A qE@@ \0("\x7F  \0\xC9\r \0(\v \0("k I@ \0   \0($\0\f\v@@ E \0(PA\0Hr\r\0 !@  j"Ak-\0\0A +G@ Ak"\r\f\v\v \0   \0($\0 I\r  k! \0(!\f\v !\v   Y \0 \0( j6\v\v\v\x7FA9" \0(\x006\0 \v\xC0\x7F@  kAH\r\0 \0( \0,\0\v" A\0H\x1BE\r\0  \x8F \0(\0 \0 \0,\0\v"A\0H"\x1B" \0(  \x1Bj! Ak!\0@@@ -\0\0"Ak! \0 M\r\0 A\xFFqA\xFD\0M@ (\0 G\r\v Aj!   kAJj!\f\v\v A\xFFqA\xFD\0K\r \0(\0Ak I\r\v A6\0\v\vP~@ A\xC0\0q@  A@j\xAD\x86!B\0!\f\v E\r\0  \xAD"\x86 A\xC0\0 k\xAD\x88\x84!  \x86!\v \0 7\0 \0 7\b\vi\x7F#\0A\x80k"$\0 A\x80\xC0q  LrE@    k"A\x80 A\x80I"\x1B\xC6 E@@ \0 A\x803 A\x80k"A\xFFK\r\0\v\v \0  3\v A\x80j$\0\v\0A\0\v<\x7FA \0 \0AM\x1B!@@ /"\0\r\0A\xB4\xEC(\0"E\r\0 \r\0\f\v\v \0E@0\0\v \0\v \0 \0(\0C\v +\0 \0(\0A\xC0\v\xCD \x7F~#\0A\xF0\0k"$\0 B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83! @@ P" B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83" +B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0}B\x80\x80\x80\x80\x80\x80\xC0\x80\x80\x7FT +P\x1BE@ B\0R B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0}"\vB\x80\x80\x80\x80\x80\x80\xC0\x80\x80\x7FV \vB\x80\x80\x80\x80\x80\x80\xC0\x80\x80\x7FQ\x1B\r\v  +B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0T +B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0Q\x1BE@ B\x80\x80\x80\x80\x80\x80 \x84! !\f\v P B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0T B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0Q\x1BE@ B\x80\x80\x80\x80\x80\x80 \x84!\f\v  +B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x85\x84P@B\x80\x80\x80\x80\x80\x80\xE0\xFF\xFF\0   \x85  \x85B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F\x85\x84P"\x1B!B\0  \x1B!\f\v  B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x85\x84P\r  +\x84P@  \x84B\0R\r  \x83!  \x83!\f\v  \x84PE\r\0 ! !\f\v    T +V +Q\x1B"\b\x1B! +   \b\x1B"\fB\xFF\xFF\xFF\xFF\xFF\xFF?\x83!   \b\x1B"\vB0\x88\xA7A\xFF\xFFq!\x07 \fB0\x88\xA7A\xFF\xFFq"E@ A\xE0\0j + + P"\x1ByB\xC0\0B\0 \x1B|\xA7"Ak6 )h! )\`! +A k!\v   \b\x1B! \vB\xFF\xFF\xFF\xFF\xFF\xFF?\x83! \x07~  A\xD0\0j     P"\x07\x1ByB\xC0\0B\0 \x07\x1B|\xA7"\x07Ak6A \x07k!\x07 )P! )X\vB\x86 B=\x88\x84B\x80\x80\x80\x80\x80\x80\x80\x84! B\x86 +B=\x88\x84  \x85!~ B\x86"  \x07F\r\0  \x07k"\x07A\xFF\0K@B\0!B\f\v A@k  A\x80 \x07k6 A0j   \x07g )8! )0 )@ )H\x84B\0R\xAD\x84\v! B\x80\x80\x80\x80\x80\x80\x80\x84!\v +B\x86! +@ B\0S@B\0!B\0! +\x85  \v\x85\x84P\r + }! \v } +V\xAD}"B\xFF\xFF\xFF\xFF\xFF\xFF\xFFV\r A j     P"\x07\x1ByB\xC0\0B\0 \x07\x1B\x84\xA7A\fk"\x076  \x07k! )(! ) !\f\v +|" T\xAD  \v||"B\x80\x80\x80\x80\x80\x80\x80\b\x83P\r\0 B\x83 B?\x86 B\x88\x84\x84! Aj! B\x88!\v \fB\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F\x83! A\xFF\xFFN@ B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x84!B\0!\f\vA\0!\x07@ A\0J@ !\x07\f\v Aj   A\xFF\0j6   A kg )\0 ) )\x84B\0R\xAD\x84! )\b!\v B=\x86 B\x88\x84! B\x88B\xFF\xFF\xFF\xFF\xFF\xFF?\x83 \x07\xADB0\x86\x84 \x84!@@ \xA7A\x07q"AG@    AK\xAD|"V\xAD|!\f\v    B\x83|"V\xAD|!\f\v E\r\v\v \0 7\0 \0 7\b A\xF0\0j$\0\v +\0 \0A\x9C\xE0^\v +\0 \0A\xA4\xE0^\v\x84\x7F~#\0Ak"$\0 \0~ E@B\0\f\v   Au"s k"\xADB\0 g"A\xD1\0j6 )\bB\x80\x80\x80\x80\x80\x80\xC0\0\x85A\x9E\x80 k\xADB0\x86|B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7FB\0 A\0H\x1B\x84! )\0\v7\0 \0 7\b Aj$\0\v1\x7F \0(\f" \0(F@ \0 \0(\0((\0\0\v -\0\0 \0 Aj6\f\v'\x7F \0(\f" \0(F@ \0 \0(\0($\0\0\v -\0\0\v1\x7F \0(\f" \0(F@ \0 \0(\0((\0\0\v (\0 \0 Aj6\f\v'\x7F \0(\f" \0(F@ \0 \0(\0($\0\0\v (\0\v\xAA\f\b\x7F\x7FA\0 E\r\0 \0A\x7Fs! AO@@ AqE\r\0 -\0\0 sA\xFFqAt(\xE03 A\bvs! Ak"\0E Aj"AqErE@ -\0 sA\xFFqAt(\xE03 A\bvs! Ak"\0E Aj"AqErE@ -\0 sA\xFFqAt(\xE03 A\bvs! Ak"\0E Aj"AqErE@ -\0 sA\xFFqAt(\xE03 A\bvs! Aj! Ak!\f\v \0! !\f\v \0! !\f\v \0! !\v An"\bAll! +@ \bAk" E@A\0!\f\v !\0A\0!@ \0( \x07s"\x07AvA\xFC\x07q(\xE0S \x07AvA\xFC\x07q(\xE0K \x07AvA\xFC\x07q(\xE0C \x07A\xFFqAt(\xE0;sss!\x07 \0(\f s"AvA\xFC\x07q(\xE0S AvA\xFC\x07q(\xE0K AvA\xFC\x07q(\xE0C A\xFFqAt(\xE0;sss! \0(\b s"AvA\xFC\x07q(\xE0S AvA\xFC\x07q(\xE0K AvA\xFC\x07q(\xE0C A\xFFqAt(\xE0;sss! \0( s"AvA\xFC\x07q(\xE0S AvA\xFC\x07q(\xE0K AvA\xFC\x07q(\xE0C A\xFFqAt(\xE0;sss! \0(\0 s"AvA\xFC\x07q(\xE0S AvA\xFC\x07q(\xE0K AvA\xFC\x07q(\xE0C A\xFFqAt(\xE0;sss! \0Aj!\0 Ak" \r\0\v  \bAljAk!\v  +j! ( (\f (\b ( (\0 s"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s"\0A\xFFqAt(\xE03 ss \0A\bvs"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s"\0A\xFFqAt(\xE03 ss \0A\bvs"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s"\0A\xFFqAt(\xE03 ss \0A\bvs"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s"\0A\xFFqAt(\xE03 \x07ss \0A\bvs"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s"\0A\bv \0A\xFFqAt(\xE03s! Aj!\v A\x07K@@ -\0\0 sA\xFFqAt(\xE03 A\bvs"\0A\bv -\0 \0sA\xFFqAt(\xE03s"\0A\bv -\0 \0sA\xFFqAt(\xE03s"\0A\bv -\0 \0sA\xFFqAt(\xE03s"\0A\bv -\0 \0sA\xFFqAt(\xE03s"\0A\bv -\0 \0sA\xFFqAt(\xE03s"\0A\bv -\0 \0sA\xFFqAt(\xE03s"\0A\bv -\0\x07 \0sA\xFFqAt(\xE03s! A\bj! A\bk"A\x07K\r\0\v\v@ E\r\0 -\0\0 sA\xFFqAt(\xE03 A\bvs! AF\r\0 -\0 sA\xFFqAt(\xE03 A\bvs! AF\r\0 -\0 sA\xFFqAt(\xE03 A\bvs! AF\r\0 -\0 sA\xFFqAt(\xE03 A\bvs! AF\r\0 -\0 sA\xFFqAt(\xE03 A\bvs! AF\r\0 -\0 sA\xFFqAt(\xE03 A\bvs! AF\r\0 -\0 sA\xFFqAt(\xE03 A\bvs!\v A\x7Fs\v\v\x97\x7F#\0A@j"$\0 \0 \0(\0"A\bk(\0"j!@ Ak(\0"( (F@A\0  \x1B!\0\f\v \0 N@ B\x007 A\x006  6\f  \x006\b  6 B\x007 B\x007$ B\x007, A\x006< B\x81\x80\x80\x80\x80\x80\x80\x8074  Aj  AA\0 (\0(\v\0 (\r\v B\x007 A\x006 A\x98\xC46\f  \x006\b  6 B\x007 B\x007$ B\x007, B\x007\x003 A\x006< A:\0;  Aj AA\0 (\0( +\0A\0!\0@@ ((\0\v (A\0 ($AF\x1BA\0 ( AF\x1BA\0 (,AF\x1B!\0\f\v (AG@ (,\r ( AG\r ($AG\r\v (!\0\v A@k$\0 \0\v\0 \0A\x006\b \0B\x007\0\vc\0 (A\xB0q"A F@ \v@ AG\r\0@@ \0-\0\0"A+k\0\0\v \0Aj\v A0G  \0kAHr\r\0 \0-\0A rA\xF8\0G\r\0 \0Aj!\0\v \0\v1\x7FA\xCC\xCF(\0! \0@A\xCC\xCFA\xD4\xCE \0 \0A\x7FF\x1B6\0\vA\x7F  A\xD4\xCEF\x1B\v\0 \0(\0"\0@ \0H\v\vA\x7F \0 7p \0 \0(, \0("k\xAC7x \0 P  \0(\b"\0 k\xACYr\x7F \0  \xA7j\v6h\vs\x7F \0A\x90\xFC\x006\0 \0(@ \0((!@ @A\0 \0 Ak"At" \0($j(\0 \0( j(\0\x07\0\f\v\v \0Aj\xF3 \0( ! \0($! \0(0! \0(<!\v \0\v\xEC\x7F \0E@A\xC8\xCC(\0@A\xC8\xCC(\0L!\vA\xF8\xCD(\0@A\xF8\xCD(\0L r!\vA\xB0\xCE(\0"\0@@ \0(L \0( \0(G@ \0L r!\v \0(8"\0\r\0\v\v \v \0(LA\0H!@@ \0( \0(F\r\0 \0A\0A\0 \0($\0 \0(\r\0A\x7F!\f\v \0(" \0(\b"G@ \0  k\xACA \0((\0\vA\0! \0A\x006 \0B\x007 \0B\x007 \r\0\v \v-\0 E@ \0( (F\v \0 F@A\v \0( (\x9BE\v\xDB\x7F#\0Ak"$\0  6\fA\0!@ \x7FA \0 A\fj(\r\0A A\xC0\0 \0:" (\0(\f\0E\r\0  A\0 (\0(4\0!@@ \0Q A0k! \0 A\fj( AHr\r\0 A\xC0\0 \0:" (\0(\f\0E\r Ak!  A\0 (\0(4\0 A +lj!\f\v\v \0 A\fj(E\rA\v (\0r6\0\v Aj$\0 \v\xF6\x7F#\0Ak"$\0  6\f@@ \0 A\fj)@A\0!A!\f\vA\0!A! \0;"\x07A\0H\r\0 (\b \x07Atj-\0\0A\xC0\0qE\r\0  \x07A\0 (\0($\0!@@ \0S A0k! \0 A\fj) AHr\r\0 \0;"A\0H\r (\b Atj-\0\0A\xC0\0qE\r Ak!  A\0 (\0($\0 A +lj!\f\v\v \0 A\fj)E\rA!\v  (\0 r6\0\v Aj$\0 \v\x90\x7F#\0Ak"$\0  6\f  H6\b (\f!#\0Ak"$\0  6\f  6\bA\x7F!@A\0A\0  \x9A"A\0H\r\0 \0 Aj"/"\x006\0 \0E\r\0 \0   (\f\x9A!\v Aj$\0 A\bjI Aj$\0 \v\f\0 \0(\0B \0\v.\0@ \0(A\xCA\0q"\0@ \0A\xC0\0F@A\b\v \0A\bG\rA\vA\0\vA +\v\f\0 \0(\0@ \0\v\xCE~\x7F#\0Ak"$\0 \xBD"B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x07\x83! \0~ B4\x88B\xFF\x83"PE@ B\xFFR@ B\x88! B\x80\xF8\0|! B<\x86\f\v B\x88!B\xFF\xFF! B<\x86\f\v P@B\0!B\0\f\v  B\0 y\xA7"\x07A1j6 )\bB\x80\x80\x80\x80\x80\x80\xC0\0\x85!A\x8C\xF8\0 \x07k\xAD! )\0\v7\0 \0 B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F\x83 B0\x86\x84 \x847\b Aj$\0\v\0 \0A\x80\x80\x80\x80O@A\xBFA\0\xDC\0\v \0At9\v\x85\x7F#\0Ak"\b$\0 \b 6\b \b 6\f \bAj" $ =! \b(# A\x006\0A\0!@@  \x07F r\r@ \bA\fj \bA\bj(\r\0@ (\0A\0 (\0(4\0A%F@ Aj \x07F\rA\0!\x7F@ (A\0 (\0(4\0"A\xC5\0F\r\0A! + A\xFFqA0F\r\0 \f\v A\bj \x07F\rA\b! + ! (\bA\0 (\0(4\0\v! \b \0 \b(\f \b(\b      \0(\0($\f\x006\f  +jAj!\f\v A (\0 (\0(\f\0@@ \x07 Aj"G@ A (\0 (\0(\f\0\r\v\v@ \bA\fj \bA\bj(\r A \b(\fC (\0(\f\0E\r \b(\fB\f\0\v\0\v \b(\fC (\0(\0 (\0 (\0(\0F@ \b(\fB Aj!\f\v A6\0\v (\0!\f\v\v A6\0\v \bA\fj \bA\bj(@  (\0Ar6\0\v \b(\f \bAj$\0\v\xB1\x7F#\0Ak"\b$\0 \b 6\b \b 6\f \bAj" $ >! \b(# A\x006\0A\0!@@  \x07F r\r@ \bA\fj \bA\bj)\r\0@ ,\0\0A\0 (\0($\0A%F@ Aj \x07F\rA\0!\x7F@ ,\0A\0 (\0($\0"A\xC5\0F\r\0A! + A\xFFqA0F\r\0 \f\v Aj \x07F\rA! + ! ,\0A\0 (\0($\0\v! \b \0 \b(\f \b(\b      \0(\0($\f\x006\f  +jAj!\f\v@ ,\0\0"A\0H\r\0 (\b" Atj-\0\0AqE\r\0@@ \x07 Aj"F@ \x07!\f\v ,\0\0"A\0H\r\0  Atj-\0\0Aq\r\v\v@ \bA\fj \bA\bj)\r \b(\fA"A\x80q\r (\b A\xFF\0qAtj-\0\0AqE\r \b(\f@\f\0\v\0\v \b(\fA\xC0 (\0(\f\0 ,\0\0 (\0(\f\0F@ \b(\f@ Aj!\f\v A6\0\v (\0!\f\v\v A6\0\v \bA\fj \bA\bj)@  (\0Ar6\0\v \b(\f \bAj$\0\v<\0 \0,\0\vA\0H@ \0(\b \0(\0!\v \0 (\b6\b \0 )\x007\0 A\0:\0\v A\0:\0\0\v\0 @ \0  \xFC +\0\0\v \0\v\xC3\x7F#\0Ak"\x07$\0@ \0E\r\0 (\f!  k"A\0J@ \0   \0(\0(0\0 G\r\v  k" H@ \x07Aj" k" \xE1 \0 \x07(  \x07,\0A\0H\x1B  \0(\0(0\0!    G\r\v  k"A\0J@ \0   \0(\0(0\0 G\r\v A\x006\f \0!\b\v \x07Aj$\0 \b\v\f\0 \0A\x82\x86\x80 6\0\0\v\xCC\x7F#\0Ak"\x07$\0@ \0E\r\0 (\f!  kAu"A\0J@ \0   \0(\0(0\0 G\r\v  kAu" H@ \x07Aj" k" \xDF \0 \x07(  \x07,\0A\0H\x1B  \0(\0(0\0!    G\r\v  kAu"A\0J@ \0   \0(\0(0\0 G\r\v A\x006\f \0!\b\v \x07Aj$\0 \b\v9\x7F#\0Ak"$\0  6\f  H6\b \0A  (\f\x9A A\bjI Aj$\0\vK\x7F \0(\0!\0 -" \0(\f \0(\b"kAuI\x7F  Atj(\0A\0GA\0\vE@0\0\v \0(\b Atj(\0\v\0 \0A F \0A kAIr\v\xD7\x7F@A\x84\xCC(\0"\0A\0N@ \0E\rA\x84\xCF(\0 \0A\xFF\xFF\xFF\xFFqG\r\v@A\x88\xCC(\0A +F\r\0A\xCC\xCB(\0"\0A\xC8\xCB(\0F\r\0A\xCC\xCB \0Aj6\0 \0A +:\0\0\vA\xB8\xCB\x9F\vA\x84\xCCA\x84\xCC(\0"\0A\xFF\xFF\xFF\xFF \0\x1B6\0@@A\x88\xCC(\0A +F\r\0A\xCC\xCB(\0"\0A\xC8\xCB(\0F\r\0A\xCC\xCB \0Aj6\0 \0A +:\0\0\f\vA\xB8\xCB\x9F\vA\x84\xCC(\0A\x84\xCCA\x006\0\v+\x7F#\0Ak"$\0  6\fA\xB8\xCB \0 A\0A\0\xD0 Aj$\0\v^\x7F \0A\x006\b \0B\x007\0 (\0! (" k"Au"@ \0 \xA8 \0(! E  FrE@   \xFC +\0\0\v \0  j6\v \0\v?\x7F@ \0 F\r\0@ \0 Ak"O\r \0-\0\0! \0 -\0\0:\0\0  :\0\0 \0Aj!\0\f\0\v\0\v\v\xDB\x7F~A!@ \0B\0R B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83"B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0V B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0Q\x1B\r\0 B\0R B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83"B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0V B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0Q\x1B\r\0 \0 \x84  \x84\x84P@A\0\v  \x83B\0Y@ \0 T  S  Q\x1B@A\x7F\v \0 \x85  \x85\x84B\0R\v \0 V  U  Q\x1B@A\x7F\v \0 \x85  \x85\x84B\0R!\v \v'\x7F#\0Ak"$\0  6\f \0A\xE4\0  \x9A Aj$\0\v\xD7\x7F#\0Ak"$\0 \0A\x006#\0Ak"$\0 A\0:\0@ \0 \0(\0"A\fk(\0j"(E@  \0 (H"\x7F \xC4 \0(\0 \vA\fk(\0j(E:\0\f\v A\x99\v Aj$\0A! -\0AF@ \0 \0 \0(\0A\fk(\0j("   (\0( \0"6AA\0  G\x1B!\v \0 \0(\0A\fk(\0j \x99 Aj$\0\vP~@ A\xC0\0q@  A@j\xAD\x88!B\0!\f\v E\r\0 A\xC0\0 k\xAD\x86  \xAD"\x88\x84!  \x88!\v \0 7\0 \0 7\b\vC\x7F@ E\r\0@ \0-\0\0" -\0\0"F@ Aj! \0Aj!\0 Ak"\r\f\v\v  k!\v \v \0A\x97\xD6\0\v\x88\x7F@ \xA5"A\xF7\xFF\xFF\xFFI@@@ AO@ Ar"AjU! \0 A\xFF\xFF\xFF\xFF\x07k6\b \0 6\0 \0 6 !\0\f\v \0 :\0\v E\r\v At"E\r\0 \0  \xFC +\0\0\v \0 AtjA\x006\0\f\v0\0\v\v\xBB\x7F (\0!\x07A\0 \0(\0" \0(A\xE3\0F"\x1BA\x7FA (\0" k"At  F\x1B A\xFF\xFF\xFF\xFF\x07O\x1B"\b\x9D"@@ E@ \0 6\0\f\v \0(\0! @   \xFC +\0\0\v \0 6\0 E\r\0  \0(\0 \0(\0!\v \0A\xE4\x006   \x07 kj6\0  \0(\0 \bA|qj6\0\v0\0\vA\x7F#\0Ak"$\0  6\fA\xB0 A\xFC A\xDD,A A\fj"4A\xFC A\xE1,A 4 Aj$\0 \0\v\xFA\x7F#\0Ak" +$\0 + \x006\f@@@ (\0"\v G\r\0 (\` \0F\x7FA+ \0 (dG\rA-\v!\0  \vAj6\0 \v \0:\0\0\f\v@ \0 G\r\0 ( ,\0\v"\0 \0A\0H\x1BE\r\0A\0!\0 \b(\0" \x07kA\x9FJ\r (\0!\0 \b Aj6\0  \x006\0\f\vA\x7F!\0 A\xE8\0j +A\fj\xB1 kAu"AJ\r@@@ A\bk\0\0\v  J\r\f\v AG AHr\r\0 (\0" F  kAJr\r Ak-\0\0A0G\rA\0!\0 A\x006\0  Aj6\0  -\0\xD0\x85:\0\0\f\v  (\0"\0Aj6\0 \0 A\xD0\x85j-\0\0:\0\0  (\0Aj6\0A\0!\0\f\vA\0!\0 A\x006\0\v +Aj$\0 \0\v +\0 \0A\xE4\xE0^\v\xFC\x7F#\0Ak" +$\0 + \0:\0@@@ (\0"\v G\r\0 \0A\xFFq"\f -\0F\x7FA+ \f -\0G\rA-\v!\0  \vAj6\0 \v \0:\0\0\f\v@ \0 G\r\0 ( ,\0\v"\0 \0A\0H\x1BE\r\0A\0!\0 \b(\0" \x07kA\x9FJ\r (\0!\0 \b Aj6\0  \x006\0\f\vA\x7F!\0 Aj +Aj\xB4 k"AJ\r@@@ A\bk\0\0\v  J\r\f\v AG AHr\r\0 (\0" F  kAJr\r Ak-\0\0A0G\rA\0!\0 A\x006\0  Aj6\0  -\0\xD0\x85:\0\0\f\v  (\0"\0Aj6\0 \0 A\xD0\x85j-\0\0:\0\0  (\0Aj6\0A\0!\0\f\vA\0!\0 A\x006\0\v +Aj$\0 \0\v +\0 \0A\xDC\xE0^\v\0 \0\vf\x7F~#\0Ak"$\0 \0~ E@B\0\f\v  \xADB\0A\xF0\0 g"Ask6 )\bB\x80\x80\x80\x80\x80\x80\xC0\0\x85A\x9E\x80 k\xADB0\x86|! )\0\v7\0 \0 7\b Aj$\0\v\0 \0A\xDF\0q \0 \0A\xE1\0kAI\x1B\v<\0 \0A\x006\b \0B\x007\0 \0 (\x006\0 \0 (6 \0 (\b6\b A\x006\b B\x007\0\v,\x7F \0A\x006\b \0B\x007\0 \0 (\0" ("  k\xC2 \0\vW\x7F~@A\xCC\xCC(\0"\xAD \0\xADB\x07|B\xF8\xFF\xFF\xFF\x83|"B\xFF\xFF\xFF\xFFX@ \xA7"\0?\0AtM\r \0\r\vA\xF8\xD7A06\0A\x7F\vA\xCC\xCC \x006\0 \v\xA7\x7F \0( \0(\0"kAu" I@#\0A k"$\0@  k" \0(\b \0("kAuM@ \0 \xB9\f\v A\fj \0  \0(\0kAu j\x86 \0( \0(\0kAu \0\xB8" \xCF \0 \x96 \xB5\v A j$\0\v  I@ \0  Atj6\v\vt\x7F~ \0B\x80\x80\x80\x80Z@@ Ak" \0" \0B +\x80"\0B +~}\xA7A0r:\0\0 B\xFF\xFF\xFF\xFF\x9FV\r\0\v\v \0PE@ \0\xA7!@ Ak"  A +n"A +lkA0r:\0\0 A K !\r\0\v\v \v}\x7F@@ \0"AqE\r\0 -\0\0E@A\0\v@ Aj"AqE\r -\0\0\r\0\v\f\v@ "Aj!A\x80\x82\x84\b (\0"k rA\x80\x81\x82\x84xqA\x80\x81\x82\x84xF\r\0\v@ "Aj! -\0\0\r\0\v\v  \0k\v\xBF\x7F \0( \0(\0"k" I@#\0A k"$\0@  k" \0(\b \0("kM@ \0 \x96\f\v  A\fj \0  j \0(\0k\x83 \0( \0(\0k \0\x8C"(\b"j!@  G@ A\0:\0\0 Aj!\f\v\v  6\b \0 \xA9 \x87\v A j$\0\v  I@ \0  j6\v\v\v\0  6\0A\v<\0 \0,\0\vA\0H@ \0(\b \0(\0!\v \0 (\b6\b \0 )\x007\0 A\0:\0\v A\x006\0\vK\x7F#\0Ak"$\0 A\fj" $  n" (\0(\0\x006\0 \0  (\0(\0 (\f# Aj$\0\vD\x7F#\0Ak"$\0 A\fj" \0$ ="\0A\xD0\x85A\xEA\x85  \0(\0(0\0 (\f# Aj$\0 \vK\x7F#\0Ak"$\0 A\fj" $  p" (\0(\0\0:\0\0 \0  (\0(\0 (\f# Aj$\0\v\x7F\x7F@ y"A\xF7\xFF\xFF\xFF\x07I@@@ A\vO@ A\x07r"Aj9! \0 A\xFF\xFF\xFF\xFF\x07k6\b \0 6\0 \0 6 !\0\f\v \0 :\0\v E\r\v E\r\0 \0  \xFC +\0\0\v \0 jA\0:\0\0\f\vi\0\v\vF\x7F \0A\x80\xFA\0(\0"6\0 \0 A\fk(\0jA\xA0\xFA\0(\x006\0 \0A\xA4\xFA\0(\x006\b \0A\fj\xB0 \0A@kK \0\v\xB5\x07\x7F\x7F \0A\xFF\xFFq! \0Av! AF@  -\0\0j"\0A\xF1\xFFk \0 \0A\xF0\xFFK\x1B"\0 j"At"A\x80\x80\x7F A\x80\x80\x80\x80O@\x85\0\vA\xFF\xFF\xFF\xFF \0(\b \0(\0k"\0Au"   I\x1B \0A\xFC\xFF\xFF\xFF\x07O\x1B\v?\x7F \0(! \0(\b!@  G@ \0 Ak"6\b\f\v\v \0(\0"@ \0(\f !\v\vI\x7F \0("A\bu! \0(\0"\0  Aq\x7F (\0 j(\0 \v j A Aq\x1B  \0(\0( +\0\v\xF1\x7FA\xF6\xFF\xFF\xFF\x07 k O@A\xF7\xFF\xFF\xFF\x07!\b \0(\0 \0 \0,\0\vA\0H\x1B! A\xF2\xFF\xFF\xFFM@A\v  j" At"\b  \bK\x1B"A\x07rAj A\vI\x1B!\b\v \b9! @  \xFC +\0\0\v @  j \x07 \xFC +\0\0\v   j" +k"\x07E  +FrE@  j j  j j \x07\xFC +\0\0\v A +G@ !\v \0 6\0 \0 \bA\x80\x80\x80\x80xr6\b \0  j \x07j"\x006 \0 jA\0:\0\0\vi\0\v,\x7F \0 A\xC0\x84=n"At/\xC0\xBB;\0\0 \0Aj  A\xC0\x84=lk\xAB\v\0A\v;\0 \0 6 \0 \x7F 9A\0\v"6\0 \0  j"6\b \0  j6\f \0 6 \0\v\b\0A\xFF\xFF\xFF\xFF\x07\v\0A\xFF\0\v?\x7F@ \0 F\r\0@ \0 Ak"O\r \0(\0! \0 (\x006\0  6\0 \0Aj!\0\f\0\v\0\v\v\xCB \x7F#\0Ak" $\0 =! + Aj n" (\0(\0@ (\b ,\0"\x07 \x07A\0H\x1BE@ + \0   +(\0(0\0    \0kAtj"6\0\f\v  6\0@@ \0"\x07-\0\0"\bA+k\0\0\v + \b\xC0 +(\0(,\0!\x07  (\0"\bAj6\0 \b \x076\0 \0Aj!\x07\v@  \x07kAH\r\0 \x07-\0\0A0G\r\0 \x07-\0A rA\xF8\0G\r\0 +A0 +(\0(,\0!\b  (\0"\vAj6\0 \v \b6\0 + \x07,\0 +(\0(,\0!\b  (\0"\vAj6\0 \v \b6\0 \x07Aj!\x07\v \x07 c  (\0(\0\0!A\0!\vA\0!\b \x07!\x7F  M\x7F  \x07 \0kAtj (\0\x8F (\0@ ("\f Aj"\r ,\0A\0H"\x1B \bj-\0\0E\r\0 \v \f \r \x1B \bj,\0\0G\r\0  (\0"\vAj6\0 \v 6\0A\0!\v \b \b (\b ,\0"\f \fA\0H\x1BAkIj!\b\v + ,\0\0 +(\0(,\0!\f  (\0"\rAj6\0 \r \f6\0 Aj! \vAj!\v\f\v\v!\v     \0kAtj  F\x1B6\0 Aj  Aj$\0\v\xD0\x7F A\x80q@ \0A+:\0\0 \0Aj!\0\v A\x80\bq@ \0A#:\0\0 \0Aj!\0\v A\x84q"A\x84G@ \0A\xAE\xD4\0;\0\0 \0Aj!\0\v A\x80\x80q!@ -\0\0"@ \0 :\0\0 \0Aj!\0 Aj!\f\v\v \0\x7F@ A\x80G@ AG\rA\xC6\0A\xE6\0 \x1B\f\vA\xC5\0A\xE5\0 \x1B\f\vA\xC1\0A\xE1\0 \x1B A\x84F\r\0A\xC7\0A\xE7\0 \x1B\v:\0\0 A\x84G\v\xB4\x7F~@@@@@@ AkAw\b\0\v \0\x7F  k"AL@A= A\xC0\0 B\x84y\xA7kA\xD1 lA\fv"  At)\xD0\xC2TkAjH\r\v\x7F B\xFF\xFF\xFF\xFFX@  \xA7\xAD\f\v B\x80\xC8\xAF\xA0%Z@  B\x80\xC8\xAF\xA0%\x80"B\x80\xC8\xAF\xA0%~}!  \xA7\xAD!\v  B\x80\xC2\xD7/\x80"\xA7At/\xC0\xBB;\0\0 Aj  B\x80\xC2\xD7/~}\xA7\x8A\v!A\0\v6\f\v \0A\xC0\0 B\x84y\xA7k"  kJ\x7FA=  j"!\x7F BT\x7F@ Ak" \xA7Aq-\0\x91:\0\0 B\x88"B\0R\r\0\vA\0 Ak" \xA7AtA! + Aj p" (\0(\0@ (\b ,\0"\x07 \x07A\0H\x1BE@ + \0   +(\0( \0    \0kj"6\0\f\v  6\0@@ \0"\x07-\0\0"\bA+k\0\0\v + \b\xC0 +(\0(\0!\x07  (\0"\bAj6\0 \b \x07:\0\0 \0Aj!\x07\v@  \x07kAH\r\0 \x07-\0\0A0G\r\0 \x07-\0A rA\xF8\0G\r\0 +A0 +(\0(\0!\b  (\0"\vAj6\0 \v \b:\0\0 + \x07,\0 +(\0(\0!\b  (\0"\vAj6\0 \v \b:\0\0 \x07Aj!\x07\v \x07 c  (\0(\0\0!A\0!\vA\0!\b \x07!\x7F  M\x7F  \x07 \0kj (\0c (\0@ ("\f Aj"\r ,\0A\0H"\x1B \bj-\0\0E\r\0 \v \f \r \x1B \bj,\0\0G\r\0  (\0"\vAj6\0 \v :\0\0A\0!\v \b \b (\b ,\0"\f \fA\0H\x1BAkIj!\b\v + ,\0\0 +(\0(\0!\f  (\0"\rAj6\0 \r \f:\0\0 Aj! \vAj!\v\f\v\v!\v     \0kj  F\x1B6\0 Aj  Aj$\0\v\x9A\x7F@@@@@@ AkAw\b\0\v \0\x7F  k"A L@A= A ArgkA\xD1 lA\fv"  At(\x90\xBBIkAjH\r\v  \xAD!A\0\v6\f\v \0A Argk"  kJ\x7FA=  j"!\x7F AI\x7F@ Ak" Aq-\0\x91:\0\0 Av"\r\0\vA\0 Ak" AtA"\rE\rA!\v\f\v (\0\v!\bA\0!\r \x07/<@A!\v\f\v \x07/:@A\r!\v\f\v \x07/8@A\f!\v\f\v \x07/6@A\v!\v\f\v \x07/4@A +!\v\f\v \x07/2@A !\v\f\v \x07/0@A\b!\v\f\v \x07/.@A\x07!\v\f\v \x07/,@A!\v\f\v \x07/*@A!\v\f\v \x07/(@A!\v\f\v \x07/&@A!\v\f\v \x07/$@A!\v\f\v \x07/"@A!\fA!\vA!\bA\0\f\v  (\0"\0Aj6\0 \0A\xC06\0  (\0"\0Aj6\0 \0A\xC06\0A!\f\f\v \b \v \b \vI\x1B!A!\b@@ \x07A j \bAtj/\0\r \bAj"\b \vG\r\0\v \v!\b\v  \b  \bK\x1B!\fA\v! A\x7F! + \x07/""AK\rA AtkA\xFE\xFFq \x07/$"k"A\0H\r At \x07/&"k"A\0H\r At \x07/("k"A\0H\r At \x07/*"k"A\0H\r At \x07/,"k"A\0H\r At \x07/."k"A\0H\r At \x07/0"k"A\0H\r At \x07/2"k"A\0H\r At \x07/4"k"A\0H\r At \x07/6"\x1Bk"A\0H\r At \x07/8"k"A\0H\r At \x07/:"k"A\0H\r At \x07/<"k"A\0H\r At" \rI  \rGA\0 \0E r\x1Br\rA\0! + \x07A\0; \x07 ; \x07  j"; \x07  j";\b \x07  j"; + \x07  j";\f \x07  j"; \x07  j"; \x07  j"; \x07  j"; \x07  j"; \x07  \x1Bj"; \x07  j"; \x07  j"; \x07  j;@ E\r\0 AG@ Aq A~q!A\0! @  +Atj/\0"@ \x07 Atj" /\0"Aj;\0  Atj +;\0\v  +Ar"Atj/\0"@ \x07 Atj" /\0"Aj;\0  Atj ;\0\v +Aj! + Aj" G\r\0\vE\r\v  +Atj/\0"E\r\0 \x07 Atj" /\0"Aj;\0  Atj +;\0\vA!A\0! "!A\0!@@@ \0\0\vA! + \fA K\rA\x81!A\xD0\xED\0!A\x90\xED\0!A!\f\v \0AF!A\0!A\xD0\xEE\0!A\x90\xEE\0! \0AG@\f\vA! + \fA K\r\vA \ft"Ak! (\0!A\0! \f! A\0!A\0!\rA\x7F!@A t!@@\x7FA\0   Atj/\0" AjK\r\0 I@A\0! A\xE0\0\f\v  kAt"\0j/\0! \0 j-\0\0\v!\0A\x7F \b k"t!\x1B  \r vAtj! ! +@  + \x1Bj" +Atj" ;  :\0  \0:\0\0 +\r\0\vA \bAkt! @ "\0Av! \0 \rq\r\0\v \x07A j \bAtj" /\0Ak" ;\0 \0Ak \rq \0jA\0 \0\x1B!\r Aj! A\xFF\xFFqE@ \b \vF\r   Atj/\0Atj/\0!\b\v \b \fM\r\0 \r q"\0 F\r\0\vA \b  \f \x1B"k" t! \b \vI@ \v k! \b! +@@  \x07A j +Atj/\0k"A\0L\r At! Aj" j" + \vI\r\0\v ! \vA t!\vA! +   j"A\xD4Kq  A\xD0Kqr\r (\0" \0Atj" + \f:\0 + :\0\0 +  Atj" kAv; \0!\f\v\v \r@  \rAtj"\0A\0; \0 :\0 \0A\xC0\0:\0\0\v  (\0 Atj6\0\v  \f6\0A\0! +\v +\v\x9C\x7F ,\0\vA\0N@ \0 (\b6\b \0 )\x007\0\v (\0!@@@ ("A +M@ \0 :\0\v\f\v A\xF7\xFF\xFF\xFF\x07O\r A\x07r"Aj9! \0 A\xFF\xFF\xFF\xFF\x07k6\b \0 6\0 \0 6 !\0\v Aj"@ \0  \xFC +\0\0\v\f\vi\0\v\v\xCC\x7F@A\xF6\xFF\xFF\xFF\x07 k O@ \0,\0\vA\0H! \0(\0A\xF7\xFF\xFF\xFF\x07! A\xF2\xFF\xFF\xFFM@A\v  j" At"  K\x1B"A\x07rAj A\vI\x1B!\v \0 \x1B! 9! @   \xFC +\0\0\v@  F\r\0  k"\x07E\r\0  j  j \x07\xFC +\0\0\v A +G@ !\v \0 6\0 \0 A\x80\x80\x80\x80xr6\b\f\vi\0\v \0 6\v\0 \0 \0(\0A\fk(\0j"\0 jK \0\vK\x7F \0("A\bu!\x07 \0(\0"\0   Aq\x7F (\0 \x07j(\0 \x07\v j A Aq\x1B  \0(\0(\v\0\v\x9A\0 \0A:\x005@  \0(G\r\0 \0A:\x004@ \0("E@ \0A6$ \0 6 \0 6 AG\r \0(0AF\r\f\v  F@ \0("AF@ \0 6 !\v \0(0AG\r AF\r\f\v \0 \0($Aj6$\v \0A:\x006\v\vv\x7F \0($"E@ \0 6 \0 6 \0A6$ \0 \0(86\v@@ \0( \0(8G\r\0 \0( G\r\0 \0(AG\r \0 6\v \0A:\x006 \0A6 \0 Aj6$\v\v\x8D\x7F ( \0(\0" \0("kj!  k"@   \xFC +\0\0\v  6 \0 \0(\0"6 \0 (6\0  6 \0(! \0 (\b6  6\b \0(\b! \0 (\f6\b  6\f  (6\0\v\x85\x7F@@@ \0,\0\v"A\0N@A +! A +F\r \0 AjA\xFF\0q:\0\v\f\v \0(" \0(\bA\xFF\xFF\xFF\xFF\x07qAk"G\r\v \0 A  \xA4 !\v \0 Aj6 \0(\0!\0\v \0 j"\0A\0:\0 \0 :\0\0\v,\x7F \0 A\x90\xCE\0n"At/\xC0\xBB;\0\0 \0Aj  A\x90\xCE\0lk\xAC\v4\x7F \0 A\xE4\0n"At/\xC0\xBB;\0\0 \0  A\xE4\0lkAt/\xC0\xBB;\0 \0Aj\v\xE9\x7F A\xBF\x84=M@ A\x8F\xCE\0M@ A\xE3\0M@ A M@ \0 A0r:\0\0 \0Aj\v \0 At/\xC0\xBB;\0\0 \0Aj\v A\xE7\x07M@ \0 A\xFF\xFFqA\xE4\0n"A0r:\0\0 \0  A\xE4\0lkA\xFF\xFFqAt/\xC0\xBB;\0 \0Aj\v \0 \xAC\v A\x9F\x8DM@ \0 A\x90\xCE\0n"A0j:\0\0 \0Aj  A\x90\xCE\0lk\xAC\v \0 \xAB\v A\xFF\xC1\xD7/M@ A\xFF\xAC\xE2M@ \0 A\xC0\x84=n"A0j:\0\0 \0Aj  A\xC0\x84=lk\xAB\v \0 \x8A\v A\xFF\x93\xEB\xDCM@ \0 A\x80\xC2\xD7/n"A0j:\0\0 \0Aj  A\x80\xC2\xD7/lk\x8A\v \0 A\x80\xC2\xD7/n"At/\xC0\xBB;\0\0 \0Aj  A\x80\xC2\xD7/lk\x8A\v\0 \0(\b*G@ \0(\b\xA6\v \0\v+\x7F#\0Ak"$\0  H6\f \0 \xC5 A\fjI Aj$\0\v\0 \0A\xE8\xF5\x006\0 \0A j  \0\xC3\vT\x7F#\0Ak"$\0\x7F (\0!  \0kAu"@@ \0  \0(\0F\r \0Aj!\0 Ak"\r\0\v\vA\0\v"\0  \0\x1B Aj$\0\v\x9F\x7F#\0Ak"\f$\0 \f \x006\f@@ \0 F@ -\0\0AG\rA\0!\0 A\0:\0\0  (\0"Aj6\0 A.:\0\0 \x07( \x07,\0\v" A\0H\x1BE\r (\0" \bkA\x9FJ\r +(\0! Aj6\0  6\0\f\v@@ \0 G\r\0 \x07( \x07,\0\v"\0 \0A\0H\x1BE\r\0 -\0\0AG\r (\0"\0 \bkA\x9FJ\r +(\0! \0Aj6\0 \0 6\0A\0!\0 +A\x006\0\f\v \v \vA\xF0\0j \fA\fj\xB1 \vk"\0Au"A\x1BJ\r A\xD0\x85j,\0\0!@@ \0A{q"\0A\xD8\0G@ \0A\xE0\0G\r  (\0"G@A\x7F!\0 Ak,\0\0s ,\0\0sG\r\v  Aj6\0  :\0\0\f\v A\xD0\0:\0\0\f\v s"\0 ,\0\0G\r\0  \0\xB9:\0\0 -\0\0AG\r\0 A\0:\0\0 \x07( \x07,\0\v"\0 \0A\0H\x1BE\r\0 (\0"\0 \bkA\x9FJ\r\0 +(\0! \0Aj6\0 \0 6\0\v  (\0"\0Aj6\0 \0 :\0\0A\0!\0 AJ\r + +(\0Aj6\0\f\vA\0!\0\f\vA\x7F!\0\v \fAj$\0 \0\vy\x7F#\0Ak"$\0 A\fj" $ ="A\xD0\x85A\xEC\x85  (\0(0\0  n" (\0(\f\0\x006\0   (\0(\0\x006\0 \0  (\0(\0 (\f# Aj$\0\v*\x7F#\0Ak"$\0 \0 ,\0\0  \0k\xCA"\0  \0\x1B Aj$\0\v\x7F \0\xD4 \0(\0"@ \0(\f !\v\v\x97\x7F#\0Ak"\f$\0 \f \0:\0@@ \0 F@ -\0\0AG\rA\0!\0 A\0:\0\0  (\0"Aj6\0 A.:\0\0 \x07( \x07,\0\v" A\0H\x1BE\r (\0" \bkA\x9FJ\r +(\0! Aj6\0  6\0\f\v@@ \0 G\r\0 \x07( \x07,\0\v"\0 \0A\0H\x1BE\r\0 -\0\0AG\r (\0"\0 \bkA\x9FJ\r +(\0! \0Aj6\0 \0 6\0A\0!\0 +A\x006\0\f\v \v \vAj \fAj\xB4 \vk"A\x1BJ\r A\xD0\x85j,\0\0!@@@@ A~qAk\0\v  (\0"G@A\x7F!\0 Ak,\0\0s ,\0\0sG\r\v  Aj6\0  :\0\0\f\v A\xD0\0:\0\0\f\v s"\0 ,\0\0G\r\0  \0\xB9:\0\0 -\0\0AG\r\0 A\0:\0\0 \x07( \x07,\0\v"\0 \0A\0H\x1BE\r\0 (\0"\0 \bkA\x9FJ\r\0 +(\0! \0Aj6\0 \0 6\0\v  (\0"\0Aj6\0 \0 :\0\0A\0!\0 AJ\r + +(\0Aj6\0\f\vA\0!\0\f\vA\x7F!\0\v \fAj$\0 \0\vy\x7F#\0Ak"$\0 A\fj" $ >"A\xD0\x85A\xEC\x85  (\0( \0  p" (\0(\f\0\0:\0\0   (\0(\0\0:\0\0 \0  (\0(\0 (\f# Aj$\0\vI\x7F \0 6 \0A\x006\f @ U!\v \0 6\0 \0  Atj"6\b \0  Atj6\f \0 6 \0\v6\x7F \0(" Atj!@  F@ \0 6 A\x006\0 Aj!\f\v\v\v~\x7F~#\0A\xA0k"$\0  6<  6 A\x7F6 Aj"B\0J   A\xAD )\b! )\0!\x07 @  (\x88  ( (\x7F#\0Ak"$\0  \x006\f\x7F \0AO@A\xAE A\fj\xC7A\0\f\v \0At(\x98-\v Aj$\0\v\x85\x7F@  k"A\xF7\xFF\xFF\xFF\x07I@@ A +M@ \0 :\0\v\f\v A\x07r"Aj9! \0 A\xFF\xFF\xFF\xFF\x07k6\b \0 6\0 \0 6 !\0\v  k"E  FrE@ \0  \xFC +\0\0\v \0 jA\0:\0\0\f\vi\0\v\v6\x7F \0(\b" Atj!@  FE@ A\x006\0 Aj!\f\v\v \0 6\b\vD\x7F#\0Ak"$\0 \0(\0!\0  6\b  \x006 A\x9F6\0A\xED\v a\`A\xB0\xF1\0(\0L Aj$\0\v\`\x7F  \0(" k"\x07j! !@  M@ \0 6 \x07E  FrE@  \x07k  \x07\xFC +\0\0\v  -\0\0:\0\0 Aj! Aj!\f\v\v\v\0 \0(\0"\0@ \0\v\v\f\0  \0(\0\0\0\v+\x7F \0(! \0(\b!@  G@ \0 Ak"6\b\f\v\v\v\x07\0 \0\0\v\x7F#\0Ak"$\0  \x006\0A\xEC \xDC\0\v\0  \0(\0j 6\0\v\r\0  \0(\0j(\0\vQ\x7F@ E\r\0 A\x8C\xC6E"E\r\0 (\b \0(\bA\x7Fsq\r\0 \0(\f( (\f(G\r\0 \0(( ((F!\v \v{\x7F \0("Aq!\x7F -\x007AF@ A\bu" E\r (\0 j(\0\f\v A\bu E\r\0  \0(\0(68A\0!A\0\v! \0(\0"\0   j A Aq\x1B \0(\0(\b\0\v\r\0 \0( (F\v\xF6\x7F#\0Ak"$\0  6\fA\x94\xC4(\0" \0 \xCB \0y \0jAk-\0\0A +G@@@ (L"\0A\0N@ \0E\rA\x84\xCF(\0 \0A\xFF\xFF\xFF\xFFqG\r\v@ (PA +F\r\0 ("\0 (F\r\0  \0Aj6 \0A +:\0\0\f\v \x9F\f\v  (L"\0A\xFF\xFF\xFF\xFF \0\x1B6L@@ (PA +F\r\0 ("\0 (F\r\0  \0Aj6 \0A +:\0\0\f\v \x9F\v (L A\x006L\v\v\x9C\0\v\x88\x7F@@@ \0,\0\v"A\0N@A! AF\r \0 AjA\xFF\0q:\0\v\f\v \0(" \0(\bA\xFF\xFF\xFF\xFF\x07qAk"G\r\v \0 A  \xFF !\v \0 Aj6 \0(\0!\0\v \0 Atj"\0A\x006 \0 6\0\v\x9B\x7FA\xF6\xFF\xFF\xFF k O@A\xF7\xFF\xFF\xFF! \0(\0 \0 \0,\0\vA\0H\x1B! + A\xF2\xFF\xFF\xFFM@  j" At"  K\x1BArAj! \v U!@ E\r\0 At"\bE\r\0  + \b\xFC +\0\0\v@ E\r\0 At"\bE\r\0  Atj \x07 \b\xFC +\0\0\v   j"\bk!\x07@  \bF\r\0 \x07At"E\r\0  At"\bj Atj \b +j Atj \xFC +\0\0\v AG@ +!\v \0 6\0 \0 A\x80\x80\x80\x80xr6\b \0  j \x07j"\x006  \0AtjA\x006\0\v0\0\v\x8A\x7F A\xF7\xFF\xFF\xFFI@@ AM@ \0 :\0\v\f\v Ar"AjU! \0 A\xFF\xFF\xFF\xFF\x07k6\b \0 6\0 \0 6 !\0\v ! \0!@ @  6\0 Ak! Aj!\f\v\v \0 AtjA\x006\0\v0\0\v\xA0\x7F \0(\b"A\xFF\xFF\xFF\xFF\x07qAkA + \0,\0\v"A\0H"\x1B" O@ \0(\0 \0 \x1B!@ \x7F @   \xFC +\0\0\v \0,\0\v Av\v\xC0A\0H@ \0 6\f\v \0 A\xFF\0q:\0\v\v  jA\0:\0\0\v \0   k \0(  \x1B"\0A\0 \0  \x89\v\x87\x7F A\xF7\xFF\xFF\xFF\x07I@@ A +M@ \0 :\0\v\f\v A\x07r"Aj9! \0 A\xFF\xFF\xFF\xFF\x07k6\b \0 6\0 \0 6 !\0\v ! \0!@ @  :\0\0 Ak! Aj!\f\v\v \0 jA\0:\0\0\vi\0\v\0 \0 F@ \0A\0:\0x\v !\v<\x7F#\0Ak"$\0@@ AK\r\0 \0-\0xAq\r\0 \0A:\0x\f\v U!\0\v Aj$\0 \0\v \0 \0\xAE!\v\0 \0A\xF0\x906\0 \0Aj  \0\v\0 \0A\xC8\x906\0 \0A\fj  \0\v\x80\x7F !\0@@  \x07M \0 Or\r\0 \0,\0\0"A\xFFq!\x7FA A\0N\r\0 ABI\r A_M@  \0kAH\r \0-\0A\xC0qA\x80G\rA\f\v AoM@  \0kAH\r \0-\0 \0,\0!@@ A\xEDG@ A\xE0G\r A\`qA\xA0\x7FF\r\f\v A\xA0\x7FN\r\f\v A\xBF\x7FJ\r\vA\xC0qA\x80G\rA\f\v  \0kAH AtKr\r \0-\0! \0-\0!\b \0,\0!@@@@ A\xF0k\0\v A\xF0\0jA\xFFqA0O\r\f\v A\x90\x7FN\r\f\v A\xBF\x7FJ\r\v \bA\xC0qA\x80G A\xC0qA\x80Gr A?q \bAtA\xC0q AtA\x80\x80\xF0\0q A?qA\ftrrrA\xFF\xFF\xC3\0Kr\rA\v! \x07Aj!\x07 \0 j!\0\f\v\v \0 k\v\xB8\x7F#\0Ak"\0$\0\x7F \0 6\f \0 6\b@@@  O  OrE@ ,\0\0"\bA\xFFq!\x7F \bA\0N@ A\xFF\xFF\xC3\0K\rA\f\v \bABI\r \bA_M@A  kAH\rA!\b -\0" A\xC0qA\x80G\r A?q AtA\xC0qr!A\f\v \bAoM@A!\b  k" +AH\r ,\0! @@ A\xEDG@ A\xE0G\r A\`qA\xA0\x7FF\r\f\b\v A\xA0\x7FH\r\f\x07\v A\xBF\x7FJ\r\v +AF\r -\0"\bA\xC0qA\x80G\r \bA?q A\ftA\x80\xE0q A?qAtrr!A\f\v \bAtK\rA!\b  k" +AH\r ,\0! @@@@ A\xF0k\0\v A\xF0\0jA\xFFqA0O\r\x07\f\v A\x90\x7FN\r\f\v A\xBF\x7FJ\r\v +AF\r -\0"\vA\xC0qA\x80G\r +AF\r -\0" +A\xC0qA\x80G\rA!\b +A?q \vAtA\xC0q AtA\x80\x80\xF0\0q A?qA\ftrrr"A\xFF\xFF\xC3\0K\rA\v!\b  6\0 \0  \bj"6\f \0 Aj"6\b\f\v\v  I!\b\v \b\f\vA\v  \0(\f6\0 \x07 \0(\b6\0 \0Aj$\0\v\xF5\0#\0Ak"\0$\0\x7F \0 6\f \0 6\b@@@  O@A\0!\f\vA! (\0"A\xFF\xFF\xC3\0K A\x80pqA\x80\xB0Fr\r\0@ A\xFF\0M@A!  \0(\b"kA\0L\r \0 Aj6\b  :\0\0\f\v A\xFFM@  \0(\b"kAH\r \0 Aj6\b  AvA\xC0r:\0\0 \0 \0(\b"Aj6\b  A?qA\x80r:\0\0\f\v  \0(\b"k! A\xFF\xFFM@ AH\r \0 Aj6\b  A\fvA\xE0r:\0\0 \0 \0(\b"Aj6\b  AvA?qA\x80r:\0\0 \0 \0(\b"Aj6\b  A?qA\x80r:\0\0\f\v AH\r \0 Aj6\b  AvA\xF0r:\0\0 \0 \0(\b"Aj6\b  A\fvA?qA\x80r:\0\0 \0 \0(\b"Aj6\b  AvA?qA\x80r:\0\0 \0 \0(\b"Aj6\b  A?qA\x80r:\0\0\v \0 \0(\fAj"6\f\f\v\v \f\vA\v  \0(\f6\0 \x07 \0(\b6\0 \0Aj$\0\v\x92\x7F !\0@@  M \0 Or\r\0\x7F \0Aj \0-\0\0"\xC0A\0N\r\0 A\xC2I\r A\xDFM@  \0kAH\r \0-\0A\xC0qA\x80G\r \0Aj\f\v A\xEFM@  \0kAH\r \0-\0 \0,\0!@@ A\xEDG@ A\xE0G\r A\`qA\xA0\x7FF\r\f\v A\xA0\x7FN\r\f\v A\xBF\x7FJ\r\vA\xC0qA\x80G\r \0Aj\f\v  \0kAH A\xF4Kr  kAIr\r \0-\0!\x07 \0-\0!\b \0,\0!@@@@ A\xF0k\0\v A\xF0\0jA\xFFqA0O\r\f\v A\x90\x7FN\r\f\v A\xBF\x7FJ\r\v \bA\xC0qA\x80G \x07A\xC0qA\x80Gr \x07A?q \bAtA\xC0q AtA\x80\x80\xF0\0q A?qA\ftrrrA\xFF\xFF\xC3\0Kr\r Aj! \0Aj\v!\0 Aj!\f\v\v \0 k\v\x81\x7F#\0Ak"\0$\0\x7F \0 6\f \0 6\b@@@  O  OrE@A! \0\x7F -\0\0"\xC0A\0N@  ;\0A\f\v A\xC2I\r A\xDFM@A  kAH\r -\0"\bA\xC0qA\x80G\r  \bA?q AtA\xC0qr;\0A\f\v A\xEFM@A!  k" +AH\r ,\0!\b@@ A\xEDG@ A\xE0G\r \bA\`qA\xA0\x7FG\r\b\f\v \bA\xA0\x7FN\r\x07\f\v \bA\xBF\x7FJ\r\v +AF\r -\0" A\xC0qA\x80G\r  A?q \bA?qAt A\ftrr;\0A\f\v A\xF4K\rA!  k" +AH\r -\0"\v\xC0!\b@@@@ A\xF0k\0\v \bA\xF0\0jA\xFFqA0O\r\x07\f\v \bA\x90\x7FN\r\f\v \bA\xBF\x7FJ\r\v +AF\r -\0"\bA\xC0qA\x80G\r +AF\r -\0" +A\xC0qA\x80G\r  kAH\rA! +A?q" + \bAt"\fA\xC0q \vA\ftA\x80\xE0q A\x07q"AtrrrA\xFF\xFF\xC3\0K\r  + \fA\xC0\x07qrA\x80\xB8r;  \bAvAq \vAt" A\xC0q A\btr A! +Aj p"\f \f(\0(\0  6\0@@ \0"\b-\0\0"A+k\0\0\v \xC0 (\0(\0!  (\0"\x07Aj6\0 \x07 :\0\0 \0Aj!\b\v@@  \b"kAL\r\0 -\0\0A0G\r\0 -\0A rA\xF8\0G\r\0 A0 (\0(\0!\x07  (\0"\bAj6\0 \b \x07:\0\0 ,\0 (\0(\0!\x07  (\0"\bAj6\0 \b \x07:\0\0 Aj"\b!@  M\r ,\0\0*!\xB8E\r Aj!\f\0\v\0\v@  M\r ,\0\0*!\xB7E\r Aj!\f\0\v\0\v@ +(\b +,\0"\x07 \x07A\0H\x1BE@ \b  (\0 (\0( \0  (\0  \bkj6\0\f\v \b c \f \f(\0(\0\0! \b!\x07@  \x07M@  \b \0kj (\0c@ +(" +Aj" +,\0A\0H"\x1B \rj,\0\0A\0L\r\0 \v   \x1B \rj,\0\0G\r\0  (\0"\vAj6\0 \v :\0\0A\0!\v \r \r +(\b +,\0" A\0H\x1BAkIj!\r\v \x07,\0\0 (\0(\0!  (\0"Aj6\0  :\0\0 \x07Aj!\x07 \vAj!\v\f\v\v\v@@@  M@ !\x07\f\v Aj!\x07 ,\0\0"A.G\r \f \f(\0(\f\0\0!  (\0"\bAj6\0 \b :\0\0\v \x07  (\0 (\0( \0  (\0  \x07kj"6\0     \0kj  F\x1B6\0 +Aj  +Aj$\0\v  (\0(\0!  (\0"\bAj6\0 \b :\0\0 \x07!\f\0\v\0\v\xB9\x7F#\0A@j"$\0A\bAA + ("A\xCA\0q"\x07A\bF\x1B \x07A\xC0\0F"\b\x1B! A3j!@ E A\x80qEr\r\0 \b@ A0:\x003 A4j!\f\v \x07A\bG\r\0 A0:\x003 A\xD8\0A\xF8\0 A\x80\x80q\x1B:\x004 A5j!\v A(j  A@k  \x94 ((!@ A\x88\x80qA\x88\x80G\r\0@  F\r  -\0\0"A k  A\xE1\0kA\xFFqAI\x1B:\0\0 Aj!\f\0\v\0\v A3j"  G! Aj"\x07 $    Aj" A\fj A\bj \x07\x93 (# \0  (\f (\b  Z A@k$\0\v\xED\b\x7F#\0Ak"$\0A\xA5\bAA\xA0 A\xEE AAA\0A\0\fA\x92\fAA\xF4 A\xA8!AAA\0A\0\fA\x88\xCE-\0\0E@A\x88\xCEA:\0\0A\xAC!A\xB8\xC8\x07\vA\xFC A\x9C%A\xD4%A\0A\x8A&AA\x8D&A\0A\x8D&A\0A\x83A\x8F&A\x07 +A\xFC AA\x94&A\x98&A"A\b#\0Ak"\0$\0 \0A 6\fA\xFC A\x9CAA\x9C&A\xA8&A# \0A\fj4A\0A\0A\0 \0Aj$\0#\0Ak"\0$\0 \0A +6\fA\xFC A\xEDAA\xB0&A\xC0&A$ \0A\fj4A\0A\0A\0 \0Aj$\0#\0Ak"\0$\0 \0A\v6\fA\xFC A\x83AA\xC8&A\xD0&A% \0A\fj4A\0A\0A\0 \0Aj$\0#\0Ak"\0$\0 \0A\f6\fA\xFC A\xBF +AA\xF8&A\x84'A& \0A\fj4A\0A\0A\0 \0Aj$\0#\0Ak"\0$\0 \0A\r6\fA\xFC A\xBB +AA\x90'A\xA0'A' \0A\fj4A\0A\0A\0 \0Aj$\0A\xFC A\xB8\xC8A\x83A\xBF + A\x94\xCE-\0\0E@A\x94\xCEA:\0\0A\xA8'A\xC0\xC7\x07\vA\xB4*A\xE0*A\x98+A\0A\xCE+AA\x8D&A\0A\x8D&A\0A\xD7A\xD1+A +A\xB4*AA\xD4+A\xD8+A(A#\0Ak"\0$\0 \0A6\fA\xB4*A\x9CAA\xDC+A\xE8+A) \0A\fj4A\0A\0A\0 \0Aj$\0#\0Ak"\0$\0 \0A6\fA\xB4*A\xEDAA\xF0+A\x80,A* \0A\fj4A\0A\0A\0 \0Aj$\0#\0Ak"\0$\0 \0A6\fA\xB4*A\x83AA\x88,A\x90,A+ \0A\fj4A\0A\0A\0 \0Aj$\0#\0Ak"\0$\0 \0A6\fA\xB4*A\xBF +AA\x9C,A\xA8,A, \0A\fj4A\0A\0A\0 \0Aj$\0#\0Ak"\0$\0 \0A6\fA\xB4*A\xBB +AA\xB0,A\xC0,A- \0A\fj4A\0A\0A\0 \0Aj$\0A\xB4*A\xC0\xC7A\x83A\xBF + A\xB0 A\xA9A\xC6,AA\xC8,A\b AjA\xEB +A\0\x92A\xB6A\x92#\0Ak"\0$\0 \0A\b6\fA\xB0 A\xC2A\xA8\xC7A\xD4,A \0A\fj"4A\xA8\xC7A\xD8,A\x1B 4 \0Aj$\0A\x8A\vA\flA\xDF\vAlA\x94\vA$lA\xE6\vA0lA\xF5 +A<lA\xC8A\xC8\0lA\xB0 A\xE8,A\x94AAA\0A\xE8,A\xA3A\0A\xE8,A\xBDAA\xE8,A\xB9AA\xE8,A\xB5AA\xE8,A\xB1AA\xE8,A\x9FAA\xE8,A\x9BAA\xE8,A\x93A\x07A\xE8,A\x8FA\bA\xD0 A\xFC +A\x89-AA\x8B-A\b#\0Ak"\0$\0 \0A\x006\fA\xD0 A\x83A\xE8,A\x8E-A \0A\fj"4A\xE8,A\x92-A! 4 \0Aj$\0A\xD0  Aj$\0\v3\x7F  \0("j!@  F@ \0 6 A\0:\0\0 Aj!\f\v\v\v\xF1\x7F#\0A\xD0k"\0$\0 \0 6\xC8 \0 6\xCC R!  \0A\xD0j~! \0A\xC4j  \0A\xC4j} \0A\x006\xC0 \0B\x007\xB8 \0A\xB8j"A +" \0 \0(\xB8  \0,\0\xC3A\0H\x1B"6\xB4 \0 \0Aj6\f \0A\x006\b@@ \0A\xCCj \0A\xC8j(\r\0 \0(\xB4  \0(\xBC \0,\0\xC3" A\0H\x1B"jF@ \0A\xB8j" At" A + \0(\xC0A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xC3A\0N\x1B" \0 \0(\xB8  \0,\0\xC3A\0H\x1B" j6\xB4\v \0(\xCCC   \0A\xB4j \0A\bj \0(\xC4 \0A\xC4j \0Aj \0A\fj m\r\0 \0(\xCCB\f\v\v@ \0(\xC8 \0,\0\xCF" A\0H\x1BE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xB4  \x9D6\0 \0A\xC4j \0Aj \0(\f 5 \0A\xCCj \0A\xC8j(@  (\0Ar6\0\v \0(\xCC \0A\xB8j  \0A\xC4j  \0A\xD0j$\0\v8\x7F#\0Ak"$\0  6\f  H6\b \0A\xEC\r (\f\xA9 A\bjI Aj$\0\v\xB1~\x7F#\0A k"\b$\0@@@  G@A\xF8\xD7(\0!\fA\xF8\xD7A\x006\0#\0Ak" $\0*#\0Ak" +$\0#\0Ak"\v$\0 \v  \bAjA\xBA \v)\0! + \v)\b7\b + 7\0 \vAj$\0 +)\0! +)\b7\b 7\0 +Aj$\0 )\0! \b )\b7 \b 7\b Aj$\0 \b)! \b)\b!A\xF8\xD7(\0"E\r \b( G\r ! !\x07 A\xC4\0G\r\f\v A6\0\f\vA\xF8\xD7 \f6\0 \b( F\r\v A6\0 ! \x07!\v \0 7\0 \0 7\b \bA j$\0\v\xC0\x7F|#\0Ak"$\0@@@ \0 G@A\xF8\xD7(\0!A\xF8\xD7A\x006\0*#\0Ak"$\0  \0 A\fjA\xBA )\0 )\b\xC4! Aj$\0@A\xF8\xD7(\0"\0@ (\f F\r\f\vA\xF8\xD7 6\0 (\f G\r\f\v \0A\xC4\0G\r\f\v A6\0\f\vD\0\0\0\0\0\0\0\0!\v A6\0\v Aj$\0 \v\xBC\x7F}#\0Ak"$\0@@@ \0 G@A\xF8\xD7(\0!A\xF8\xD7A\x006\0*#\0Ak"$\0  \0 A\fjA\0\xBA )\0 )\b\xAB! Aj$\0@A\xF8\xD7(\0"\0@ (\f F\r\f\vA\xF8\xD7 6\0 (\f G\r\f\v \0A\xC4\0G\r\f\v A6\0\f\vC\0\0\0\0!\v A6\0\v Aj$\0 \v\xBD\x7F~#\0Ak"$\0~ \0 G@@@ \0-\0\0"A-G\r\0 \0Aj"\0 G\r\0\f\vA\xF8\xD7(\0!A\xF8\xD7A\x006\0* \0 A\fj \xBB!\x07@A\xF8\xD7(\0"\0@ (\f G\r \0A\xC4\0G\r A6\0B\x7F\f\vA\xF8\xD7 6\0 (\f F\r\0\f\vB\0 \x07} \x07 A-F\x1B\f\v\v A6\0B\0\v Aj$\0\v\xD8\x7F~#\0Ak"$\0\x7F@ \0 G@@@ \0-\0\0"A-G\r\0 \0Aj"\0 G\r\0\f\vA\xF8\xD7(\0!A\xF8\xD7A\x006\0* \0 A\fj \xBB!\x07@A\xF8\xD7(\0"\0@ (\f G\r \0A\xC4\0F \x07B\xFF\xFF\xFF\xFFVr\r\f\vA\xF8\xD7 6\0  (\fG\r \x07B\x80\x80\x80\x80T\r\v A6\0A\x7F\f\v\v A6\0A\0\f\vA\0 \x07\xA7"\0k \0 A-F\x1B\v Aj$\0\v\xE6\0#\0A\xE0k"\0$\0 \0 6\xD8 \0 6\xDC R! \0A\xC8j  \0A\xD7j\x7F \0A\x006\xC0 \0B\x007\xB8 \0A\xB8j"A +" \0 \0(\xB8  \0,\0\xC3A\0H\x1B"6\xB4 \0 \0Aj6\f \0A\x006\b@@ \0A\xDCj \0A\xD8j)\r\0 \0(\xB4  \0(\xBC \0,\0\xC3" A\0H\x1B"jF@ \0A\xB8j" At" A + \0(\xC0A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xC3A\0N\x1B" \0 \0(\xB8  \0,\0\xC3A\0H\x1B" j6\xB4\v \0(\xDCA\xC0   \0A\xB4j \0A\bj \0,\0\xD7 \0A\xC8j \0Aj \0A\fjA\xD0\x85o\r\0 \0(\xDC@\f\v\v@ \0(\xCC \0,\0\xD3" A\0H\x1BE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xB4  \x9D6\0 \0A\xC8j \0Aj \0(\f 5 \0A\xDCj \0A\xD8j)@  (\0Ar6\0\v \0(\xDC \0A\xB8j  \0A\xC8j  \0A\xE0j$\0\v\xDB\x7F~#\0Ak"$\0\x7F@ \0 G@@@ \0-\0\0"A-G\r\0 \0Aj"\0 G\r\0\f\vA\xF8\xD7(\0!A\xF8\xD7A\x006\0* \0 A\fj \xBB!\x07@A\xF8\xD7(\0"\0@ (\f G\r \0A\xC4\0F \x07B\xFF\xFFVr\r\f\vA\xF8\xD7 6\0  (\fG\r \x07B\x80\x80T\r\v A6\0A\xFF\xFF\f\v\v A6\0A\0\f\vA\0 \x07\xA7"\0k \0 A-F\x1B\v Aj$\0A\xFF\xFFq\v\xAC\x7F~#\0Ak"$\0@ \0 G@A\xF8\xD7(\0!A\xF8\xD7A\x006\0* \0 A\fj \xA3!@A\xF8\xD7(\0"\0@ (\f G\r \0A\xC4\0G\r A6\0B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F B\0U\x1B!\f\vA\xF8\xD7 6\0 (\f F\r\v\v A6\0B\0!\v Aj$\0 \v\xDD\x7F~#\0Ak"$\0\x7F@ \0 G@@A\xF8\xD7(\0!A\xF8\xD7A\x006\0* \0 A\fj \xA3!@A\xF8\xD7(\0"\0@ (\f G\r \0A\xC4\0G\r A6\0A\xFF\xFF\xFF\xFF\x07 B\0U\r\f\vA\xF8\xD7 6\0 (\f F\r\0\f\v B\xFF\xFF\xFF\xFFwW@ A6\0\f\v B\x80\x80\x80\x80\bY@ A6\0A\xFF\xFF\xFF\xFF\x07\f\v \xA7\f\v\v A6\0A\0\f\vA\x80\x80\x80\x80x\v Aj$\0\v\x88\x7F@  kAu"A\xF7\xFF\xFF\xFFI@@ AM@ \0 :\0\v\f\v Ar"AjU! \0 A\xFF\xFF\xFF\xFF\x07k6\b \0 6\0 \0 6 !\0\v  k"E  FrE@ \0  \xFC +\0\0\v \0 jA\x006\0\f\v0\0\v\v\0 \0  B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F\xBE\v\x86\b\x7F (\0!@@@@@@@\x7F@@@@ E\r\0 (\0"E\r\0 \0E@ !\f\v A\x006\0 !\f\v@A\xCC\xCF(\0(\0E@ \0E\r E\r\f !@ ,\0\0"@ \0 A\xFF\xBFq6\0 \0Aj!\0 Aj! Ak"\r\f\v\v \0A\x006\0 A\x006\0  k\v ! \0E\r\f\v y\vA!\x07\f\vA\0\f\vA\v!\x07@ \x07E@ -\0\0Av"Ak Au jrA\x07K\r\x7F Aj" A\x80\x80\x80qE\r\0 ,\0\0A@N@ Ak!\f\x07\v Aj" A\x80\x80 qE\r\0 ,\0\0A@N@ Ak!\f\x07\v Aj\v! Ak!A!\x07\f\v@@ Aq ,\0\0"A\0Lr\r\0 (\0"A\x81\x82\x84\bk rA\x80\x81\x82\x84xq\r\0@ Ak! "Aj! ("A\x81\x82\x84\bk rA\x80\x81\x82\x84xqE\r\0\v\v \xC0A\0J@ Ak! Aj!\f\v\v A\xFFqA\xC2k"A2K\r Aj! At(\x80\x84!A\0!\x07\f\0\v\0\v@ \x07E@ E\r\x07@@ -\0\0"\x07\xC0"A\0L\r\0 Aq AIrE@@@ (\0"A\x81\x82\x84\bk rA\x80\x81\x82\x84xq\r \0 A\xFFq6\0 \0 -\06 \0 -\06\b \0 -\06\f \0Aj!\0 Aj! Ak"AK\r\0\v -\0\0!\v A\xFFq!\x07 \xC0A\0L\r\v \0 \x076\0 \0Aj!\0 Aj! Ak"\r\f \v\v \x07A\xC2k"A2K\r Aj! At(\x80\x84!A!\x07\f\v -\0\0"\bAv"Ak  AujrA\x07K\r@@\x7F Aj" \bA\x80k Atr"\x07A\0N\r\0 -\0\0A\x80k"A?K\r  \x07At"\br!\x07 Aj" \bA\0N\r\0 -\0\0A\x80k"A?K\r  \x07Atr!\x07 Aj\v! \0 \x076\0 Ak! \0Aj!\0\f\vA\xF8\xD7A6\0 Ak!\f\vA\0!\x07\f\0\v\0\v Ak! \r -\0\0!\v A\xFFq\r\0 \0@ \0A\x006\0 A\x006\0\v  k\vA\xF8\xD7A6\0 \0E\r\v  6\0\vA\x7F\v  6\0 \v#\x7F \0!@ "Aj! (\0\r\0\v  \0kAu\v\0 \0\xBA@ \0!\v\v%\x7F#\0Ak"$\0  6\f \0A\xE9 \xA9 Aj$\0\v3\x7F A\x80\x80\x80\x80O@\x85\0\v \0 U"6 \0 6\0 \0  Atj6\b\v\xC9\x7F~#\0A\x90k"$\0 A\0A\x90\xFC\v\0 A\x7F6L  \x006, A\xE2\x006  \x006T ! !#\0A\xB0k"$\0 (L@@ (E@ \xC8 (E\r\v -\0\0"E\r@@@@@ A\xFFq"\0_@@ "Aj! -\0_\r\0\v B\0J@\x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v_\r\0\v (! )pB\0Y@  Ak"6\v  (,k\xAC )x ||!\f\v\x7F@@ \0A%F@ -\0"\0A*F\r \0A%G\r\v B\0J@ -\0\0A%F@@\x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v"_\r\0\v Aj!\f\v ("\0 (hG@  \0Aj6 \0-\0\0!\f\v %!\v -\0\0 G@ )pB\0Y@  (Ak6\v A\0N \rr\r +\f \v ( (,k\xAC )x ||! !\f\vA\0!\x07 Aj\f\v@ \0A0k"\0A K\r\0 -\0A$G\r\0#\0Ak" 6\f   \0AtjAk  \0AK\x1B"\0Aj6\b \0(\0!\x07 Aj\f\v (\0!\x07 Aj! Aj\v!A\0!\vA\0! -\0\0"A0kA\xFFqA M@@ A +l A\xFFqjA0k! -\0! Aj! A0kA\xFFqA +I\r\0\v\v A\xFFqA\xED\0G\x7F A\0! \x07A\0G!\v -\0!A\0! + Aj\v"Aj!A!\0@@@@@@ A\xFFqA\xC1\0k:        \0      \v Aj  -\0A\xE8\0F"\0\x1B!A~A\x7F \0\x1B!\0\f\v Aj  -\0A\xEC\0F"\0\x1B!AA \0\x1B!\0\f\vA!\0\f\vA!\0\f\vA\0!\0 !\vA \0 -\0\0"\0A/qAF"\x1B!@ \0A r \0 \x1B"\fA\xDB\0F\r\0@ \fA\xEE\0G@ \fA\xE3\0G\rA  AL\x1B!\f\v \x07  \xAA\f\v B\0J@\x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v_\r\0\v (! )pB\0Y@  Ak"6\v  (,k\xAC )x ||!\v  \xAC"J@ ("\0 (hG@  \0Aj6\f\v %A\0H\r\v )pB\0Y@  (Ak6\vA!@@@@@@@@@@@@ \fA\xD8\0k!\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\0\v \fA\xC1\0k"\0AKA \0tA\xF1\0qEr\r +\v A\bj  A\0\xAD )xB\0 ( (,k\xAC}Q\r \x07E\r )! )\b! \x07 \v \fArA\xF3\0F@ A jA\x7FA\x81\xC6 A\0:\0 \fA\xF3\0G\r\b A\0:\0A A\0:\0. A\x006*\f\b\v A j -\0"\0A\xDE\0F"A\x81\xC6 A\0:\0 Aj Aj \x1B!\x7F@@ AA \x1Bj-\0\0"A-G@ A\xDD\0F\r \0A\xDE\0G!\b \f\v  \0A\xDE\0G"\b:\0N\f\v  \0A\xDE\0G"\b:\0~\v Aj\v!@@ -\0\0"\0A-G@ \0E\r \0A\xDD\0F\r +\f\vA-!\0 -\0"E A\xDD\0Fr\r\0 Aj!@  Ak-\0\0"M@ !\0\f\v@ Aj" A jj \b:\0\0  -\0\0"\0I\r\0\v\v !\v A j \0j \b:\0 Aj!\f\0\v\0\vA\b!\f\vA +!\f\vA\0!\vB\0!A\0!A\0!A\0!#\0Ak"\b$\0@ AG A$MqE@A\xF8\xD7A6\0\f\v@\x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v"\0_\r\0\v@@ \0A+k\0\0\vA\x7FA\0 \0A-F\x1B! ("\0 (hG@  \0Aj6 \0-\0\0!\0\f\v %!\0\v@@@@ A\0G AGq \0A0GrE@\x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v"\0A_qA\xD8\0F@A!\x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v"\0A\xF1\x81j-\0\0AI\r )pB\0Y@  (Ak6\v B\0J\f\v \rA\b!\f\v A + \x1B" \0A\xF1\x81j-\0\0K\r\0 )pB\0Y@  (Ak6\v B\0JA\xF8\xD7A6\0\f\v A +G\r\0 \0A0k"A M@A\0!\0@ \0A +l j"\0A\x99\xB3\xE6\xCCI\x7F (" (hG@  Aj6 -\0\0\f\v %\vA0k"A Mq\r\0\v \0\xAD!\v A K\r B +~! \xAD!@@\x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v"\0A0k"A M  |"B\x9A\xB3\xE6\xCC\x99\xB3\xE6\xCCTqE@ A M\r\f\v B +~" \xAD"B\x7F\x85X\r\v\vA +!\f\v@@  Akq@  \0A\xF1\x81j-\0\0"K\r\f\v  \0A\xF1\x81j-\0\0"M\r AlAvA\x07q,\0\xF1\x83!@   t"r! \x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v"\0A\xF1\x81j-\0\0"M"E A\x80\x80\x80\xC0\0Iq\r\0\v \xAD! \rB\x7F \xAD"\x88" T\r@ \xADB\xFF\x83  \x86\x84! \x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v"\0A\xF1\x81j-\0\0"M\r  X\r\0\v\f\v@   lj! \x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v"\0A\xF1\x81j-\0\0"M"E A\xC7\xE3\xF18Iq\r\0\v \xAD! \r \xAD!@  ~" \xADB\xFF\x83"B\x7F\x85V\r  |! \x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v"\0A\xF1\x81j-\0\0"M\r \b B\0 B\02 \b)\bP\r\0\v\v\v  \0A\xF1\x81j-\0\0M\r\0@ \x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\vA\xF1\x81j-\0\0K\r\0\vA\xF8\xD7A\xC4\x006\0A\0!B\x7F!\v )pB\0Y@  (Ak6\v ArE B\x7FQq@A\xF8\xD7A\xC4\x006\0B~!\f\v  \xAC"\x85 }!\v \bAj$\0 )xB\0 ( (,k\xAC}Q\r \x07E \fA\xF0\0GrE@ \x07 >\0\f\v \x07  \xAA\f\v \x07  \xAB8\0\f\v \x07  \xC49\0\f\v \x07 7\0 \x07 7\b\f\vA Aj \fA\xE3\0G"\x1B!\b\x7F AF@ \x07! \v@ \bAt/"E\r\v B\x007\xA8A\0!@@@ !\0@ \x7F (" (hG@  Aj6 -\0\0\f\v %\v"j-\0!E\r  :\0\x1B Aj A\x1BjA A\xA8j\x98"A~F\r\0 A\x7FF@A\0! \f\v \0@ \0 Atj (6\0 Aj!\v \vE  \bGr\r\0\v \0 \bAtAr"\bAt\x9D"\r\0\vA\0! \0! +A!\v\f\b\vA\0! \0 A\xA8j\x7F (\xA8A\0\vE\r\v \0! +\f\v \v@A\0! \b/"E\r@ !\0@ \x7F (" (hG@  Aj6 -\0\0\f\v %\v"j-\0!E@ \0! A\0\f\v \0 j :\0\0 Aj" \bG\r\0\v \0 \bAtAr"\b\x9D"\r\0\vA\0! + \0! A!\v\f\vA\0! \x07@@ \x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v"\0j-\0!@  \x07j \0:\0\0 Aj!\f \x07"\0! A\0\f\v\0\v\0\v@\x7F ("\0 (hG@  \0Aj6 \0-\0\0\f\v %\v j-\0!\r\0\vA\0!\0A\0! A\0\v! + (! )pB\0Y@  Ak"6\v )x  (,k\xAC|"P   QrEr\r \v@ \x07 \x006\0\v \fA\xE3\0F\r\0 +@ + AtjA\x006\0\v E@A\0! \f\v  jA\0:\0\0\v ( (,k\xAC )x ||! \r \x07A\0Gj!\r\v Aj! -\0"\r\f\v\vA!\vA\0! A\0! +\v \rA\x7F \r\x1B!\r\v \vE\r ! +!\f\vA\x7F!\r\v A\xB0j$\0 A\x90j$\0 \r\vC\0@ \0E\r\0@@@@ Aj\0\v \0 <\0\0\v \0 =\0\v \0 >\0\v \0 7\0\v\v\xE4\x7F~#\0A k"$\0 B\xFF\xFF\xFF\xFF\xFF\xFF?\x83!\x07@ B0\x88B\xFF\xFF\x83"\b\xA7"A\x81\xFF\0kA\xFDM@ \x07B\x88\xA7!@ \0P B\xFF\xFF\xFF\x83"\x07B\x80\x80\x80\bT \x07B\x80\x80\x80\bQ\x1BE@ Aj!\f\v \0 \x07B\x80\x80\x80\b\x85\x84B\0R\r\0 Aq j!\vA\0  A\xFF\xFF\xFFK"\x1B!A\x81\x81\x7FA\x80\x81\x7F \x1B j!\f\v \0 \x07\x84P \bB\xFF\xFFRrE@ \x07B\x88\xA7A\x80\x80\x80r!A\xFF!\f\v A\xFE\x80K@A\xFF!\f\vA\x80\xFF\0A\x81\xFF\0 \bP"\x1B" k"A\xF0\0J@A\0!A\0!\f\v \x07 \x07B\x80\x80\x80\x80\x80\x80\xC0\0\x84 \x1B!\x07A\0!  G@ Aj \0 \x07A\x80 k6 ) )\x84B\0R!\v  \0 \x07 g )\b"\0B\x88\xA7!@ )\0 \xAD\x84"\x07P \0B\xFF\xFF\xFF\x83"\0B\x80\x80\x80\bT \0B\x80\x80\x80\bQ\x1BE@ Aj!\f\v \x07 \0B\x80\x80\x80\b\x85\x84B\0R\r\0 Aq j!\v A\x80\x80\x80s  A\xFF\xFF\xFFK"\x1B!\v A j$\0 B \x88\xA7A\x80\x80\x80\x80xq Atr r\xBE\v\x89\x7F~@@\x7F@@\x7F \0(" \0(hG@ \0 Aj6 -\0\0\f\v \0%\v"A+k\0\0\v A-F E\x7F \0(" \0(hG@ \0 Aj6 -\0\0\f\v \0%\v"A:k"AuKr\r \0)pB\0S\r \0 \0(Ak6\f\v A:k! !A\0\v! AvI\r\0@ A0kA +O\r\0A\0!@  A +lj\x7F \0(" \0(hG@ \0 Aj6 -\0\0\f\v \0%\v!A0k! A\xCC\x99\xB3\xE6\0H A0k"A Mq\r\0\v \xAC! A +O\r\0@ \xAD B +~|!\x7F \0(" \0(hG@ \0 Aj6 -\0\0\f\v \0%\v"A0k"A M B0}"B\xAE\x8F\x85\xD7\xC7\xC2\xEB\xA3Sq\r\0\v A +O\r\0@\x7F \0(" \0(hG@ \0 Aj6 -\0\0\f\v \0%\vA0kA +I\r\0\v\v \0)pB\0Y@ \0 \0(Ak6\vB\0 }  \x1B!\f\vB\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F! \0)pB\0S\r\0 \0 \0(Ak6B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F\v \v\x842\x7F\x07~|#\0A0k"\r$\0@@ AK\r\0 At"(\xDC\x81! (\xD0\x81!@\x7F (" (hG@  Aj6 -\0\0\f\v %\v"_\r\0\vA!\b@@ A+k\0\0\vA\x7FA A-F\x1B!\b (" (hG@  Aj6 -\0\0!\f\v %!\v@@ A_qA\xC9\0F@@ A\x07F\r\x7F (" (hG@  Aj6 -\0\0\f\v %\v! ,\0\xAF\b Aj! A rF\r\0\v\v AG@ A\bF"\f\r E AIr\r \f\r\v )p"B\0Y@  (Ak6\v E AIr\r\0 B\0S!@ E@  (Ak6\v Ak"AK\r\0\v\vB\0!#\0Ak"$\0 \b\xB2C\0\0\x80\x7F\x94\xBC"A\xFF\xFF\xFFq!\b\x7F Av"A\xFFq"@ A\xFFG@ \b\xADB\x86! A\xFFqA\x80\xFF\0j\f\v \b\xADB\x86!A\xFF\xFF\f\vA\0 \bE\r\0  \b\xADB\0 \bg"A\xD1\0j6 )\bB\x80\x80\x80\x80\x80\x80\xC0\0\x85! )\0!A\x89\xFF\0 k\v! \r 7\0 \r \xADB0\x86 Av\xADB?\x86\x84 \x847\b Aj$\0 \r)\b! \r)\0!\f\v@@@@@@ \r\0A\0! A_qA\xCE\0G\r\0@ AF\r\x7F (" (hG@  Aj6 -\0\0\f\v %\v! ,\0\xFC\r Aj! A rF\r\0\v\v \0\v@\x7F (" (hG@  Aj6 -\0\0\f\v %\vA(F@A!\f\vB\x80\x80\x80\x80\x80\x80\xE0\xFF\xFF\0! )pB\0S\r  (Ak6\f\v@\x7F (" (hG@  Aj6 -\0\0\f\v %\v"A0kA +I A\xC1\0kAIr A\xDF\0FrE A\xE1\0kAOqE@ Aj!\f\v\vB\x80\x80\x80\x80\x80\x80\xE0\xFF\xFF\0! A)F\r )p"B\0Y@  (Ak6\v@ @ \r\f\vA\xF8\xD7A6\0B\0!\f\v@ B\0Y@  (Ak6\v Ak"\r\0\v\f\v )pB\0Y@  (Ak6\vA\xF8\xD7A6\0\v B\0J\f\v@ A0G\r\0\x7F (" (hG@  Aj6 -\0\0\f\v %\vA_qA\xD8\0F@#\0A\xB0k"$\0\x7F (" (hG@  Aj6 -\0\0\f\v %\v!@\x7F@ A0G@@ A.G\r (" (hF\r\0  Aj6 -\0\0\f\v (" (hG\x7FA!  Aj6 -\0\0A! %\v!\f\v\v %\v"A0G@A!\v\f\v@ B}!\x7F (" (hG@  Aj6 -\0\0\f\v %\v"A0F\r\0\vA!\vA!\vB\x80\x80\x80\x80\x80\x80\xC0\xFF?!@@ !@@ A0k"\x07A +I\r\0 A.G"\f A r"A\xE1\0kAKq\r \f\r\0 \v\rA!\v !\f\v A\xD7\0k \x07 A9J\x1B!@ B\x07W@  Atj! \f\v BX@ A0j ? A j  B\0B\x80\x80\x80\x80\x80\x80\xC0\xFD?+ Aj )0 )8 ) " )("+  ) )  < )\b! )\0!\f\v E +r\r\0 A\xD0\0j  B\0B\x80\x80\x80\x80\x80\x80\x80\xFF?+ A@k )P )X  \0 \b \b \b \v B\0R\x1B \v \bAkA\xFFq"G\x1B  \vF\x1B! \vAk!  \vG\r\0\v Ak! \b! E\r\0\v AkA\xFFq" F@ A\x90j"\b A\xFEjA\xFFqAtj" (\0 At \bj(\0r6\0 !\v +A j! + A\x90j Atj 6\0\f\v\v@@ AjA\xFFq!\b A\x90j AkA\xFFqAtj!@A A +A-J\x1B!@@ !A\0!@@@  jA\xFFq" F\r\0 A\x90j Atj(\0" At(\xA0\x81"I\r\0  I\r Aj"AG\r\v\v +A$G\r\0B\0!A\0!B\0!@   jA\xFFq"F@ AjA\xFFq"At jA\x006\x8C\v A\x80j A\x90j Atj(\0r A\xF0j  B\0B\x80\x80\x80\x80\xE5\x9A\xB7\x8E\xC0\0+ A\xE0j )\xF0 )\xF8 )\x80 )\x88< )\xE8! )\xE0! Aj"AG\r\0\v A\xD0j \f? A\xC0j   )\xD0 )\xD8+B\0! )\xC8! )\xC0! A\xF1\0j" k" A\0 A\0J\x1B  H"\b\x1B"\x07A\xF0\0M\r\f\v  j! !  F\r\0\vA\x80\x94\xEB\xDC v!\vA\x7F tA\x7Fs!A\0! !@ A\x90j"\x07 Atj"  (\0" vj"6\0 AjA\xFFq  E  Fq"\x1B! +A k + \x1B! + q \vl! AjA\xFFq" G\r\0\v E\r  \bG@ At \x07j 6\0 \b!\f\v  (\0Ar6\0\f\v\v\v A\x90jA\xE1 \x07k\xC8T A\xB0j )\x90 )\x98 \xB1 )\xB8! )\xB0! A\x80jA\xF1\0 \x07k\xC8T A\xA0j   )\x80 )\x88\xAE A\xF0j   )\xA0" )\xA8"\xBC A\xE0j   )\xF0 )\xF8< )\xE8! )\xE0!\v@ AjA\xFFq" F\r\0@ A\x90j Atj(\0"A\xFF\xC9\xB5\xEEM@ E AjA\xFFq Fq\r A\xF0j \f\xB7D\0\0\0\0\0\0\xD0?\xA2T A\xE0j   )\xF0 )\xF8< )\xE8! )\xE0!\f\v A\x80\xCA\xB5\xEEG@ A\xD0j \f\xB7D\0\0\0\0\0\0\xE8?\xA2T A\xC0j   )\xD0 )\xD8< )\xC8! )\xC0!\f\v \f\xB7!\x1B  AjA\xFFqF@ A\x90j \x1BD\0\0\0\0\0\0\xE0?\xA2T A\x80j   )\x90 )\x98< )\x88! )\x80!\f\v A\xB0j \x1BD\0\0\0\0\0\0\xE8?\xA2T A\xA0j   )\xB0 )\xB8< )\xA8! )\xA0!\v \x07A\xEF\0K\r\0 A\xD0j  B\0B\x80\x80\x80\x80\x80\x80\xC0\xFF?\xAE )\xD0 )\xD8B\0B\0d\r\0 A\xC0j  B\0B\x80\x80\x80\x80\x80\x80\xC0\xFF?< )\xC8! )\xC0!\v A\xB0j    < A\xA0j )\xB0 )\xB8  \xBC )\xA8! )\xA0!@ Ak A\xFF\xFF\xFF\xFF\x07qN\r\0  B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x837\x98  7\x90 A\x80j  B\0B\x80\x80\x80\x80\x80\x80\x80\xFF?+ )\x90 )\x98B\x80\x80\x80\x80\x80\x80\x80\xB8\xC0\0\xB2! )\x88  A\0N"\x1B! )\x80  \x1B! \b \x07 G A\0Hrq  B\0B\0dA\0GqE   j"A\xEE\0jNq\r\0A\xF8\xD7A\xC4\x006\0\v A\xF0j   \xB0 )\xF8! )\xF0\v! \r 7( \r 7 A\x90\xC6\0j$\0 \r)(! \r) !\f\vB\0!\f\vB\0!\v \0 7\0 \0 7\b \rA0j$\0\v\xC0\x7F~#\0A\x80k"$\0@@@  B\0B\0dE\r\0\x7F B\xFF\xFF\xFF\xFF\xFF\xFF?\x83! +\x7F B0\x88\xA7A\xFF\xFFq"\x07A\xFF\xFFG@A \x07\rAA  +\x84P\x1B\f\v  +\x84P\v\vE\r\0 B0\x88\xA7"\bA\xFF\xFFq"A\xFF\xFFG\r\v Aj    +  )" )"  \xAF )\b! )\0!\f\v  B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83" +  B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83" dA\0L@  +  d@ !\f\v A\xF0\0j  B\0B\0+ )x! )p!\f\v B0\x88\xA7A\xFF\xFFq!\x07 ~  A\xE0\0j  +B\0B\x80\x80\x80\x80\x80\x80\xC0\xBB\xC0\0+ )h" +B0\x88\xA7A\xF8\0k! )\`\v! \x07E@ A\xD0\0j  B\0B\x80\x80\x80\x80\x80\x80\xC0\xBB\xC0\0+ )X" B0\x88\xA7A\xF8\0k!\x07 )P!\v B\xFF\xFF\xFF\xFF\xFF\xFF?\x83B\x80\x80\x80\x80\x80\x80\xC0\0\x84!\v +B\xFF\xFF\xFF\xFF\xFF\xFF?\x83B\x80\x80\x80\x80\x80\x80\xC0\0\x84! +  \x07J@@~ + \v}  V\xAD}" B\0Y@  }"\x84P@ A j  B\0B\0+ )(! ) !\f\v B\x86 B?\x88\x84\f\v +B\x86 B?\x88\x84\v! + B\x86! Ak" \x07J\r\0\v \x07!\v@ + \v}  V\xAD}" B\0S@ +! \f\v  }"\x84B\0R\r\0 A0j  B\0B\0+ )8! )0!\f\v B\xFF\xFF\xFF\xFF\xFF\xFF?X@@ B?\x88 Ak! B\x86! B\x86\x84" B\x80\x80\x80\x80\x80\x80\xC0\0T\r\0\v\v \bA\x80\x80q!\x07 A\0L@ A@k  B\xFF\xFF\xFF\xFF\xFF\xFF?\x83 A\xF8\0j \x07r\xADB0\x86\x84B\0B\x80\x80\x80\x80\x80\x80\xC0\xC3?+ )H! )@!\f\v B\xFF\xFF\xFF\xFF\xFF\xFF?\x83  \x07r\xADB0\x86\x84!\v \0 7\0 \0 7\b A\x80j$\0\v\x87\x7F~#\0A\xD0k"$\0 B\xFF\xFF\xFF\xFF\xFF\xFF?\x83!\v B\xFF\xFF\xFF\xFF\xFF\xFF?\x83! +  \x85B\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7F\x83!\f B0\x88\xA7A\xFF\xFFq!\x07@@ B0\x88\xA7A\xFF\xFFq"\bA\xFF\xFFkA\x82\x80~O@ \x07A\xFF\xFFkA\x81\x80~K\r\v P B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83"B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0T B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0Q\x1BE@ B\x80\x80\x80\x80\x80\x80 \x84!\f\f\v P B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83"B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0T B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0Q\x1BE@ B\x80\x80\x80\x80\x80\x80 \x84!\f !\f\v  B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x85\x84P@  B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x85\x84P@B\0!B\x80\x80\x80\x80\x80\x80\xE0\xFF\xFF\0!\f\f\v \fB\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x84!\fB\0!\f\v  B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x85\x84P@B\0!\f\v  \x84P@B\x80\x80\x80\x80\x80\x80\xE0\xFF\xFF\0 \f  \x84P\x1B!\fB\0!\f\v  \x84P@ \fB\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x84!\fB\0!\f\v B\xFF\xFF\xFF\xFF\xFF\xFF?X@ A\xC0j  +  + +P"\x1ByB\xC0\0B\0 \x1B|\xA7"Ak6A k! )\xC8! + )\xC0!\v B\xFF\xFF\xFF\xFF\xFF\xFF?V\r\0 A\xB0j  \v  \v \vP" \x1ByB\xC0\0B\0 \x1B|\xA7" Ak6  jAk! )\xB8!\v )\xB0!\v A\xA0j \vB\x80\x80\x80\x80\x80\x80\xC0\0\x84"B\x86 B1\x88\x84"B\0B\x80\x80\x80\x80\xB0\xE6\xBC\x82\xF5\0 }"B\02 A\x90jB\0 )\xA8}B\0 B\02 A\x80j )\x98B\x86 )\x90B?\x88\x84"B\0 B\02 A\xF0j B\0B\0 )\x88}B\02 A\xE0j )\xF8B\x86 )\xF0B?\x88\x84"B\0 B\02 A\xD0j B\0B\0 )\xE8}B\02 A\xC0j )\xD8B\x86 )\xD0B?\x88\x84"B\0 B\02 A\xB0j B\0B\0 )\xC8}B\02 A\xA0j B\0 )\xB8B\x86 )\xB0B?\x88\x84B}"B\02 A\x90j B\x86B\0 B\02 A\xF0\0j B\0B\0 )\xA8 )\xA0" )\x98|" T\xAD| BV\xAD|}B\02 A\x80jB }B\0 B\02  \b \x07kj"\bA\xFF\xFF\0j!~ )p"B\x86"\r )\x88"B\x86 )\x80B?\x88\x84|"B\xE7\xEC\0}"B \x88" +B\x80\x80\x80\x80\x80\x80\xC0\0\x84"B\x86"B \x88"~" B\x86"B \x88"\v  V\xAD \r V\xAD )xB\x86 B?\x88\x84 B?\x88|||B}"B \x88"~|"\r T\xAD \r \r B\xFF\xFF\xFF\xFF\x83" B?\x88" +B\x86\x84B\xFF\xFF\xFF\xFF\x83" +~|"\rV\xAD|  ~|  ~" + ~|" T\xADB \x86 B \x88\x84| \r B \x86|" \rT\xAD|   B\xFF\xFF\xFF\xFF\x83" +~"\r  \v~|" \rT\xAD    B\xFE\xFF\xFF\xFF\x83"\r~|"V\xAD||"V\xAD|   ~" \r ~|"  +~|" + \v ~|"B \x88 + V\xAD  T\xAD  +V\xAD||B \x86\x84|" T\xAD|     \r~" + \v ~|"B \x88  +T\xADB \x86\x84|" + T\xAD + + B \x86|" +V\xAD||"V\xAD|   + B \x86" \r ~| T\xADB\x7F\x85"V  +Rq\xAD|"V\xAD|"B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0X@  \x84! A\xD0\0j  B\x80\x80\x80\x80\x80\x80\xC0\0T"\x07\xAD"\v\x86" +  \v\x86 B\x88 \x07A?s\xAD\x88\x84"  2 \bA\xFE\xFF\0j  \x07\x1BAk! B1\x86 )X} )P"B\0R\xAD}!\vB\0 }\f\v A\xE0\0j B?\x86 B\x88\x84" + B\x88"  2 B0\x86 )h} )\`"B\0R\xAD}!\v !B\0 }\v! A\xFF\xFFN@ \fB\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x84!\fB\0!\f\v~ A\0J@ \vB\x86 B?\x88\x84! B\xFF\xFF\xFF\xFF\xFF\xFF?\x83 \xADB0\x86\x84!\v B\x86\f\v A\x8F\x7FL@B\0!\f\v A@k + A kg A0j   A\xF0\0j6 A j   )@" + )H"\v2 )8 )(B\x86 ) "B?\x88\x84} )0" B\x86"T\xAD}!  }\v! Aj  BB\02   BB\02 \v +  +B\x83" |"T   T\xAD|" V  Q\x1B\xAD|" +T\xAD|"   B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0T  )V  )"V  Q\x1Bq\xAD|"V\xAD|"  B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0T  )\0V  )\b"V  Q\x1Bq\xAD|" T\xAD| \f\x84!\f\v \0 7\0 \0 \f7\b A\xD0j$\0\v\xBF\x7F#\0A\xD0\0k"$\0@ A\x80\x80N@ A j  B\0B\x80\x80\x80\x80\x80\x80\x80\xFF\xFF\0+ )(! ) ! A\xFF\xFFI@ A\xFF\xFF\0k!\f\v Aj  B\0B\x80\x80\x80\x80\x80\x80\x80\xFF\xFF\0+A\xFD\xFF  A\xFD\xFFO\x1BA\xFE\xFFk! )! )!\f\v A\x81\x80\x7FJ\r\0 A@k  B\0B\x80\x80\x80\x80\x80\x80\x809+ )H! )@! A\xF4\x80~K@ A\x8D\xFF\0j!\f\v A0j  B\0B\x80\x80\x80\x80\x80\x80\x809+A\xE8\x81}  A\xE8\x81}M\x1BA\x9A\xFEj! )8! )0!\v   B\0 A\xFF\xFF\0j\xADB0\x86+ \0 )\b7\b \0 )\x007\0 A\xD0\0j$\0\v<\0 \0 7\0 \0 B\xFF\xFF\xFF\xFF\xFF\xFF?\x83 B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0\x83B0\x88\xA7 B0\x88\xA7A\x80\x80qr\xADB0\x86\x847\b\v\xC0\x7F~A\x7F!@ \0B\0R B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83"B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0V B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0Q\x1B\r\0 B\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x83"B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0V B\x80\x80\x80\x80\x80\x80\xC0\xFF\xFF\0Rq\r\0 \0  \x84\x84P@A\0\v  \x83B\0Y@  R  Sq\r \0  \x85\x84B\0R\v \0B\0R  U  Q\x1B\r\0 \0  \x85\x84B\0R!\v \v8\0 \0A\xD0k \0 \0A\x93\xF1\xFF\xFF\x07J\x1B"\0Aq@A\0\v \0A\xECj"\0A\xE4\0o@A\v \0A\x90oE\v\x85\x7F~#\0A\x80k"\b$\0 @\x7F@@\x7F@@@ -\0\0"A%G@ \r +\f\x07\vA\0!A! @ -\0"\x07A-k\0\v \x07A\xDF\0F\r \x07\r\v \0 +j :\0\0 +Aj\f\v \x07! -\0!\x07A! \vA\0!@\x7F  j \x07"A+Fj" ,\0\0A0kA M@ \bA\fjA +B\xFF\xFF\xFF\xFF\xBE\xA7! \b(\f\f\v \b 6\fA\0! \v"\x07-\0\0"A\xC3\0k"\vAKA \vtA\x99\x80\x80qEr\r\0 "\r\0 \x07 G!\v A\xCF\0F A\xC5\0Fr\x7F \x07-\0! \x07Aj \x07\v! \bAj!\x07 ! A\0!#\0A\xD0\0k"\v$\0A\x8A !\rA0!A\xA8\x80\b!\f@ \b\x7F@@@@@@@\x7F@@@@@@@@@~@@@@@@@@@@@@@@@@@@@@@@@@@@ \xC0"A%kV!---------------------------'-\x07\b +---\r---- ------\0&-\b-\v--\f--%-\x1B-\v ("AM\r"\f*\v ("AK\r) A\x87\x80\bj\f"\v ("A\vK\r( A\x8E\x80\bj\f!\v ("A\vK\r' A\x9A\x80\bj\f \v 4B\xEC|B\xE4\0\x7F!\f#\vA\xDF\0!\v 4\f!\f!\vA\xD2!\r\f\v 4"B\xEC|!@ ("AL@  B\xEB| \xBDAF\x1B!\f\v A\xE9I\r\0 B\xED|  \xBDAF\x1B!\v A\xE7\0F\r\f \v 4\b!\f\vA! (\b"E@B\f!\f \v \xAC"B\f}  A\fJ\x1B!\f\v (Aj\xAC!A!\f\v (Aj\xAC!\f\x1B\v 4!\f\v \bA6|A\xD4!\f\vA\xA7\x80\bA\xA6\x80\b (\bA\vJ\x1B\f\vA\xF7!\r\f\vA\0!\fA\0!#\0Ak"$\0 4!~ ("\rA\fO@ \r \rA\fm"A\flk"A\fj  A\0H\x1B!\r  Auj\xAC |!\v A\fj! B}B\x88X@ \xA7"\fA\xC4\0kAu!@ \x7F \fAqE@ Ak! E\rA\f\v E\rA\0\v6\0\v \fA\x80\xE7\x84l A\x80\xA3ljA\x80\xD6\xAF\xE3\x07j\xAC\f\v B\xE4\0}" B\x90\x7F"B\x90~}"B?\x87\xA7 \xA7j!@@@ \xA7"A\x90j  B\0S\x1B"\x7F\x7F A\xC8N@ A\xACO@A!\f A\xACk\f\vA!\f A\xC8k\f\v A\xE4\0k  A\xE3\0J"\f\x1B\v"\rA\0A\v! \r\f\v Av! AqE! E\r\v  6\0\v B\x80\xE7\x84~  \fAl A\xE1\0ljj k\xACB\x80\xA3~|B\x80\xAA\xBA\xC3|\v! \rAtA\x80\xFE\0j(\0"A\x80\xA3j  (\f\x1B  \rAJ\x1B! (\f! 4\b! 4! 4\0 Aj$\0  \xAC| Ak\xACB\x80\xA3~| B\x90~| B<~|| 4$}\f\b\v 4\0!\f\v \bA6|A\xD6!\f\vA\xE4!\r\f\v ("A\x07 \x1B\xAC\f\v ( (kA\x07jA\x07n\xAD!\f\v ( (AjA\x07pkA\x07jA\x07n\xAD!\f\v \xBD\xAD!\f\v 4\v!A!\f\vA\xA9\x80\b!\f\f +\vA\xAA\x80\b!\f\f \v 4B\xEC|B\xE4\0\x81" B?\x87"\x85 }!\f +\v 4"B\xEC|! B\xA4?S\r + \v 70 \b \x07A\x9B \vA0je6| \x07!\f\v ( A\0H@ \bA\x006|A\xD7!\f\v \v ($"A\x90m"A\xE4\0l  A\x90lk\xC1As!\v \0 6 \0B\x007 AtA\xAC\xDAj!@@A\x80\xD8(\0"A t"\x07qE@A\x80\xD8  \x07r6\0  \x006\0 \0 6\f\v A AvkA\0 AG\x1Bt! (\0!@ "(Axq F\r Av! At!  Aqj"\x07("\r\0\v \x07 \x006 \0 6\v \0 \x006\f \0 \x006\b\v (\b" \x006\f  \x006\b \0A\x006 \0 6\f \0 6\b\v\v\0 \0E@A\0\v \0 \xC5\v\0 \0  A4A5\xD0\v-\0 \0A\xCC\0j1 \0A@k1 \0A4j1 \0A(j1 \0Aj1 \0Aj1\v\xBC\0@@@@@@@@@@@ A k\0\b +\b  + + +\b \x07\v  (\0"Aj6\0 \0 (\x006\0\v  (\0"Aj6\0 \0 2\x007\0\v  (\0"Aj6\0 \0 3\x007\0\v  (\0"Aj6\0 \0 0\0\x007\0\v  (\0"Aj6\0 \0 1\0\x007\0\v  (\0A\x07jAxq"A\bj6\0 \0 +\x009\0\v \0  \0\v\v  (\0"Aj6\0 \0 4\x007\0\v  (\0"Aj6\0 \0 5\x007\0\v  (\0A\x07jAxq"A\bj6\0 \0 )\x007\0\vo\x7F \0(\0",\0\0A0k"A K@A\0\v@A\x7F! A\xCC\x99\xB3\xE6\0M@A\x7F  A +l"j  A\xFF\xFF\xFF\xFF\x07sK\x1B!\v \0 Aj"6\0 ,\0 ! !A0k"A +I\r\0\v \v\xF5\x7F~#\0A@j"\b$\0 \b 6< \bA)j! \bA'j! \bA(j!@@@@@A\0!\x07@ !\r \x07 A\xFF\xFF\xFF\xFF\x07sJ\r \x07 j!@@@@ "\x07-\0\0"\v@@@@ \vA\xFFq"E@ \x07!\f\v A%G\r \x07!\v@ \v-\0A%G@ \v!\f\v \x07Aj!\x07 \v-\0 \vAj"!\vA%F\r\0\v\v \x07 \rk"\x07 A\xFF\xFF\xFF\xFF\x07s"J\r \0@ \0 \r \x073\v \x07\r\x07 \b 6< Aj!\x07A\x7F!@ ,\0A0k" +A K\r\0 -\0A$G\r\0 Aj!\x07A! +!\v \b \x076\b \b \bA\bj"\x0760A\x7F! \x07\v!\vA\0!\x07@@ \v(\0"\rE\r\0 \bAj \r\xCA"\rA\0H\r \r \x07kK\r\0 \vAj!\v \x07 \rj"\x07 I\r\v\vA=! + \x07A\0H\r\f \0A  \x07 \f7 \x07E@A\0!\x07\f\vA\0! + \b(0!\v@ \v(\0"\rE\r \bAj" \r\xCA"\r +j" + \x07K\r \0 \r3 \vAj!\v \x07 +K\r\0\v\v \0A  \x07 \fA\x80\xC0\0s7  \x07 \x07 H\x1B!\x07\f\b\v  A\0Hq\r A=! + \0 \b+0  \f \x07 \0"\x07A\0N\r\x07\f +\v \x07-\0!\v \x07Aj!\x07\f\0\v\0\v \0\r E\rA!\x07@  \x07Atj(\0"\0@  \x07Atj \0  \xCDA! \x07Aj"\x07A +G\r\f\v\v\v \x07A +O@A!\f +\v@  \x07Atj(\0\rA! \x07Aj"\x07A +G\r\0\v\f \vA! +\f\v \b \x07:\0'A! !\r \v!\f\v + \rk"\v \vJ\x1B" A\xFF\xFF\xFF\xFF\x07sJ\rA=! +   j" H\x1B"\x07 K\r \0A \x07 \f7 \0  3 \0A0 \x07 \fA\x80\x80s7 \0A0  \vA\07 \0 \r \v3 \0A \x07 \fA\x80\xC0\0s7 \b(! + ( ,\0\v"\0 \0A\0H"\0\x1B@ (\0  \0\x1B-\0\0 +A- +(\0(\0A\xFFqF!\x07\v A\x006\xA0 B\x007\x98 A\x006\x90 B\x007\x88 A\x006\x80 B\x007x  \x07 A\xACj A\xA8j A\xA7j A\xA6j A\x98j A\x88j A\xF8\0j A\xF4\0j\xFC@\x7F\x7F ("\v ,\0\v"\b \bA\0H\x1B"\0 (t" J@ \0 kAtj (| ,\0\x83"\0 \0A\0H\x1Bj (\x8C ,\0\x93"\0 \0A\0H\x1BjAj\f\v (| ,\0\x83"\0 \0A\0H\x1Bj (\x8C ,\0\x93"\0 \0A\0H\x1BjAj\v"\0A\xE5\0I@A\0! Aj\f\v \0/"E\r -\0\v!\b (!\v \v"\0 A\fj A\bj ( (\0  \b\xC0A\0H"\x1B"\f \f \v \b \x1Bj + \x07 A\xA8j ,\0\xA7 ,\0\xA6 A\x98j" A\x88j"\x07 A\xF8\0j"\b \xFB  \0 (\f (\b  Z ! \b  \x07    (\xAC# A\xB0j$\0\v0\0\v\xDB\b\x7F#\0A\xB0k"\0$\0 \0 7 \0 7 \0 \0A\xC0j"\x076\xBC \0A\xD0j! @ \x07A\xE3 \0Aje"\x07A\xE4\0O@*!\x07 \0 7\0 \0 7\b \0A\xBCj \x07A\xE3 \0P"\x07A\x7FF\r \0(\xBC!\r \x07/"\v! \vE\r\v \0A\xCCj"\b $ \b>" \0(\xBC"\b \x07 \bj (\0( \0 \x07A\0J@ \0(\xBC-\0\0A-F! +\v \0A\x006\xC0 \0B\x007\xB8 \0A\x006\xB0 \0B\x007\xA8 \0A\x006\xA0 \0B\x007\x98  + \0A\xCCj \0A\xC8j \0A\xC7j \0A\xC6j \0A\xB8j \0A\xA8j \0A\x98j \0A\x94j\xFC@\x7F \0(\x94"\b \x07H@ \b \x07 \bkAtj \0(\x9C \0,\0\xA3" A\0H\x1Bj \0(\xAC \0,\0\xB3" A\0H\x1BjAj\f\v \b \0(\x9C \0,\0\xA3" A\0H\x1Bj \0(\xAC \0,\0\xB3" A\0H\x1BjAj\v"A\xE5\0I@ \0A0j!\f\v /"\f! \fE\r\v  \0A,j \0A(j ( \x07 j  + \0A\xC8j \0,\0\xC7 \0,\0\xC6 \0A\xB8j" + \0A\xA8j"\x07 \0A\x98j" \b\xFB   \0(, \0((  Z \f!   \x07  +  \0(\xCC# \v! \r! \0A\xB0j$\0\v0\0\v\xC0\x7F#\0A\xC0k"\0$\0 \0 6\xB8 \0 6\xBC \0A\xE3\x006 \0 \0A j6 \0Aj"\x07 $ \x07=! \0A\0:\0 \0A\xBCj   \x07 (  \0Aj  \0Aj \0Aj \0A\xB0j\x80@@ ,\0\vA\0H@ (\0A\x006\0 A\x006\f\v A\0:\0\v A\x006\0\v \0-\0AF@  A- (\0(,\0\xDD\v A0 (\0(,\0! \0("Ak! \0(!@@  O\r\0 (\0 G\r\0 Aj!\f\v\v#\0Ak"$\0@  F\r\0 ,\0\v! (\b!\b (!\x07  (\0  ,\0\v" A\0H" +\x1B"\vO  \v ( +\x1BAtjAjIqE@ \x07  A\0H" \x1B"  k"Au" +j!\x07 + \bA\xFF\xFF\xFF\xFF\x07qAkA \x1B"\b kK@  \b \x07 \bk  \xFF\v At (\0  ,\0\vA\0H\x1Bj! @   \xFC +\0\0\v  jA\x006\0 ,\0\vA\0H@  \x076\f\v  \x07A\xFF\0q:\0\v\f\v Aj"\x07  \xA2 ( \x07 ,\0"A\0H" +\x1B!@ (\b  +\x1B" (\bA\xFF\xFF\xFF\xFF\x07qAkA ,\0\v"\bA\0H"\x1B" ( \b \x1B"kM@ E\r (\0  \bA\0H\x1B!\b At" @ \b Atj  \xFC +\0\0\v  j!@ ,\0\vA\0H@  6\f\v  A\xFF\0q:\0\v\v \b AtjA\x006\0\f\v   j k  A\0  \xDE\v \x07 \v Aj$\0\v \0A\xBCj \0A\xB8j(@  (\0Ar6\0\v \0(\xBC \0(# \0(! \0A\x006 @  \0(\0\v \0A\xC0j$\0\v\xDD\x7F#\0A\xF0k"\x07$\0 \x07 6\xE8 \x07 6\xEC \x07A\xE3\x006\xCC \x07 \x07A\xD0j6\xC8 \x07A\xC0j" $ =!\0 \x07A\0:\0\xBF@ \x07A\xECj    (  \x07A\xBFj \0 \x07A\xC8j \x07A\xC4j \x07A\xE0j\x80E\r\0 \x07A\xEE\x1B(\0\x006\0\xB7 \x07A\xE7\x1B)\0\x007\xB0 \0 \x07A\xB0j \x07A\xBAj \x07A\x80j \0(\0(0\0 \x07Aj!\0@ \x07(\xC4" \x07(\xC8"k"A\x89N@ AvAj/"\0!\b \0E\r\v \0! \x07-\0\xBFAF@ \0A-:\0\0 \0Aj!\v \x07A\xA8j!@  M@@ A\0:\0\0 \x07 6\0 \0 \x07\xA7AG\r\0 \b!\f\v  \x07A\xB0j \x07A\x80j"  \xB1 kAuj-\0\0:\0\0 Aj! Aj! \x07(\xC4!\f\v\v0\0\v0\0\v \x07A\xECj \x07A\xE8j(@  (\0Ar6\0\v \x07(\xEC \x07(\xC0# \x07(\xC8!\0 \x07A\x006\xC8 \0@ \0 \x07(\xCC\0\v \x07A\xF0j$\0\v\xAE\x7F#\0A\x90k"\0$\0 \0 6\x88 \0 6\x8C \0A\xE3\x006 \0 \0A j6 \0Aj"\x07 $ \x07>! \0A\0:\0 \0A\x8Cj   \x07 (  \0Aj  \0Aj \0Aj \0A\x84j\x85@@ ,\0\vA\0H@ (\0A\0:\0\0 A\x006\f\v A\0:\0\v A\0:\0\0\v \0-\0AF@  A- (\0(\0\xAA\v A0 (\0(\0 \0("Ak! \0(!A\xFFq!@@  O\r\0 -\0\0 G\r\0 Aj!\f\v\v#\0Ak"$\0@  F\r\0 ,\0\v! (\b!\b (!\x07  (\0  ,\0\v" A\0H" +\x1B"\vO  \v ( +\x1BjAjIqE@ \x07  A\0H" \x1B"  k"j!\x07  \bA\xFF\xFF\xFF\xFF\x07qAkA + \x1B"\b kK@  \b \x07 \bk  \xA4\v (\0  ,\0\vA\0H\x1B j! @   \xFC +\0\0\v  jA\0:\0\0 ,\0\vA\0H@  \x076\f\v  \x07A\xFF\0q:\0\v\f\v Aj"\x07  \xCE ( \x07 ,\0"A\0H" +\x1B!@ (\b  +\x1B" (\bA\xFF\xFF\xFF\xFF\x07qAkA + ,\0\v"\bA\0H"\x1B" ( \b \x1B"kM@ E\r (\0  \bA\0H\x1B!\b @  \bj  \xFC +\0\0\v  j!@ ,\0\vA\0H@  6\f\v  A\xFF\0q:\0\v\v  \bjA\0:\0\0\f\v   j k  A\0  \x89\v \x07 \v Aj$\0\v \0A\x8Cj \0A\x88j)@  (\0Ar6\0\v \0(\x8C \0(# \0(! \0A\x006 @  \0(\0\v \0A\x90j$\0\v\xD1\x7F#\0A\x90k"\x07$\0 \x07 6\x88 \x07 6\x8C \x07A\xE3\x006\x9C \x07 \x07A\xA0j6\x98 \x07A\x90j" $ >!\0 \x07A\0:\0\x8F@ \x07A\x8Cj    (  \x07A\x8Fj \0 \x07A\x98j \x07A\x94j \x07A\x84j\x85E\r\0 \x07A\xEE\x1B(\0\x006\0\x87 \x07A\xE7\x1B)\0\x007\x80 \0 \x07A\x80j \x07A\x8Aj \x07A\xF6\0j \0(\0( \0 \x07Aj!\0@ \x07(\x94" \x07(\x98"k"A\xE3\0N@ Aj/"\0!\b \0E\r\v \0! \x07-\0\x8FAF@ \0A-:\0\0 \0Aj!\v \x07A\x80j!@  M@@ A\0:\0\0 \x07 6\0 \0 \x07\xA7AG\r\0 \b!\f\v  \x07A\xF6\0j  \xB4 \x07k \x07j-\0 +:\0\0 Aj! Aj! \x07(\x94!\f\v\v0\0\v0\0\v \x07A\x8Cj \x07A\x88j)@  (\0Ar6\0\v \x07(\x8C \x07(\x90# \x07(\x98!\0 \x07A\x006\x98 \0@ \0 \x07(\x9C\0\v \x07A\x90j$\0\v\0A\xFC \v\xC7\x7F#\0A\xA0k"\b$\0 \b \bA\xA0j"6\f#\0A\x90k"\x07$\0 \x07 \x07A\x84j6 \0A\bj \x07A j" \x07Aj   \x88 \x07B\x007 \x07 6\f \b(\f \bAj"kAu! \0(\b!\0#\0Ak"$\0  \0H6\f  \x07A\fj  \x07Aj\xA4!\0 A\fjI Aj$\0 \0A\x7FF@0\0\v \b  \0Atj6\f \x07A\x90j$\0 \b(\f!\0#\0Ak"$\0#\0Ak"$\0#\0Ak"$\0  6\f@ \0 G@ A\fj (\0\xBE Aj!\f\v\v  6\b  (\f6\f Aj$\0  )\b7\b Aj$\0 (\f Aj$\0 $\0\v\xB8\0#\0A\x80k"$\0  A\xF4\0j6\f \0A\bj Aj" A\fj   \x88 (\f!\0#\0Ak"$\0#\0Ak"$\0#\0Ak"$\0  6\f@ \0 G@ A\fj ,\0\0\xC0 Aj!\f\v\v  6\b  (\f6\f Aj$\0  )\b7\b Aj$\0 (\f Aj$\0 A\x80j$\0\v\xB8\r\x7F#\0A0k"\x07$\0 \x07 6, A\x006\0 \x07 $ \x07=!\b \x07(\0#\x7F@@@@@@@@@@@@@@@@@@@@@@@@@@ A\xC1\0k9\0\x07 +\0\b \v\f\r\v\v \0 Aj \x07A,j   \b\x8B\f\v \0 Aj \x07A,j   \b\x8A\f\v \0A\bj \0(\b(\f\0\0! \x07 \0 \x07(,     (\0  ,\0\v"\0A\0H"\x1B"  ( \0 \x1BAtjV6,\f\v \x07A,j   \bAN!\0@ (\0"Aq \0AkAKrE@  \x006\f\f\v  Ar6\0\v\f\v \x07A\xA8\x86)\x007 \x07A\xA0\x86)\x007 \x07A\x98\x86)\x007\b \x07A\x90\x86)\x007\0 \x07 \0      \x07 \x07A jV6,\f\v \x07A\xC8\x86)\x007 \x07A\xC0\x86)\x007 \x07A\xB8\x86)\x007\b \x07A\xB0\x86)\x007\0 \x07 \0      \x07 \x07A jV6,\f\v \x07A,j   \bAN!\0@ (\0"Aq \0AJrE@  \x006\b\f\v  Ar6\0\v\f\v \x07A,j   \bAN!\0@ (\0"Aq \0AkA\vKrE@  \x006\b\f\v  Ar6\0\v\f\v \x07A,j   \bAN!\0@ (\0"Aq \0A\xEDJrE@  \x006\f\v  Ar6\0\v\f\v \x07A,j   \bAN!\0@ (\0"Aq \0Ak"\0A\vKrE@  \x006\f\v  Ar6\0\v\f\v \x07A,j   \bAN!\0@ (\0"Aq \0A;JrE@  \x006\f\v  Ar6\0\v\f\v \x07A,j!\0#\0Ak"$\0  6\f@@ \0 A\fj(\r\0 \bA \0: \b(\0(\f\0E\r\0 \0Q\f\v\v \0 A\fj(@  (\0Ar6\0\v Aj$\0\f\r\v \x07A,j!@ \0A\bj \0(\b(\b\0\0"\0( \0,\0\v" A\0H\x1BA\0 \0( \0,\0" A\0H\x1BkF@  (\0Ar6\0\f\v   \0 \0Aj \b A\0\x95" \0G (\b"A\fGrE@ A\x006\b\f\v  \0kA\fG A\vJrE@  A\fj6\b\v\v\f\f\v \x07A\xD0\x86A,\xFC +\0\0 \x07 \0      \x07 \x07A,jV6,\f\v\v \x07A\x90\x87(\x006 \x07A\x88\x87)\x007\b \x07A\x80\x87)\x007\0 \x07 \0      \x07 \x07AjV6,\f +\v \x07A,j   \bAN!\0@ (\0"Aq \0A!\b \x07(\0#\x7F@@@@@@@@@@@@@@@@@@@@@@@@@@ A\xC1\0k9\0\x07 +\0\b \v\f\r\v\v \0 Aj \x07A\fj   \b\x8E\f\v \0 Aj \x07A\fj   \b\x8D\f\v \0A\bj \0(\b(\f\0\0! \x07 \0 \x07(\f     (\0  ,\0\v"\0A\0H"\x1B"  ( \0 \x1BjW6\f\f\v \x07A\fj   \bAO!\0@ (\0"Aq \0AkAKrE@  \x006\f\f\v  Ar6\0\v\f\v \x07B\xA5\xDA\xBD\xA9\xC2\xEC\xCB\x92\xF9\x007\0 \x07 \0      \x07 \x07A\bjW6\f\f\v \x07B\xA5\xB2\xB5\xA9\xD2\xAD\xCB\x92\xE4\x007\0 \x07 \0      \x07 \x07A\bjW6\f\f\v \x07A\fj   \bAO!\0@ (\0"Aq \0AJrE@  \x006\b\f\v  Ar6\0\v\f\v \x07A\fj   \bAO!\0@ (\0"Aq \0AkA\vKrE@  \x006\b\f\v  Ar6\0\v\f\v \x07A\fj   \bAO!\0@ (\0"Aq \0A\xEDJrE@  \x006\f\v  Ar6\0\v\f\v \x07A\fj   \bAO!\0@ (\0"Aq \0Ak"\0A\vKrE@  \x006\f\v  Ar6\0\v\f\v \x07A\fj   \bAO!\0@ (\0"Aq \0A;JrE@  \x006\f\v  Ar6\0\v\f\v \x07A\fj!\0#\0Ak"$\0  6\f@@ \0 A\fj)\r\0 \0;"A\0H\r\0 \b(\b Atj-\0\0AqE\r\0 \0S\f\v\v \0 A\fj)@  (\0Ar6\0\v Aj$\0\f\r\v \x07A\fj!@ \0A\bj \0(\b(\b\0\0"\0( \0,\0\v" A\0H\x1BA\0 \0( \0,\0" A\0H\x1BkF@  (\0Ar6\0\f\v   \0 \0Aj \b A\0\x97" \0G (\b"A\fGrE@ A\x006\b\f\v  \0kA\fG A\vJrE@  A\fj6\b\v\v\f\f\v \x07A\xF8\x85(\0\x006\0\x07 \x07A\xF1\x85)\0\x007\0 \x07 \0      \x07 \x07A\vjW6\f\f\v\v \x07A\x80\x86-\0\0:\0 \x07A\xFC\x85(\0\x006\0 \x07 \0      \x07 \x07AjW6\f\f +\v \x07A\fj   \bAO!\0@ (\0"Aq \0A! (\b# Aj A\fj   \x8C (\f Aj$\0\vM\x7F#\0Ak"$\0  6\f A\bj" $ >! (\b# \0 Aj A\fj   \x8D (\f Aj$\0\vM\x7F#\0Ak"$\0  6\f A\bj" $ >! (\b# \0 Aj A\fj   \x8E (\f Aj$\0\vC\0 \0      \0A\bj \0(\b(\0\0"\0(\0 \0 \0,\0\v"A\0H"\x1B"  \0(  \x1BjW\v;\x7F#\0Ak"$\0 B\xA5\x90\xE9\xA9\xD2\xC9\xCE\x92\xD3\x007\b \0      A\bj Aj"W $\0\v+\x7F  ("A\xB5\xFB~qA\x88r6    \x91  6\v\xB7\x07\x7F\x7F#\0A\x90k"\0$\0 \0B%7\x88 \0A\x88j"\x07ArA\x82 (\x91!\b \0 \0A\xE0j" 6\xDC*!@\x7F@\x7F@ \b@ (\b!\b \0 70 \0 7( \0 \b6  \x07 \0A j]"AJ\r\f\v \0 7P \0 7X \0A\xE0j  \0A\x88j"\x07 \0A\xD0\0j]"AL\r*! \0 7@ \0 7H \0A\xDCj  \x07 \0A@kP\f\v*! (\b!\x07 \0 7 \0 7\b \0 \x076\0 \0A\xDCj  \0A\x88j \0P\v"A\x7FF\r \0(\xDC\f\vA\0\v \0(\xDC"\x07  \x07j" + G!\v@ \0A\xE0j \x07F@ \0A\xF0\0j!A\0!\b\f\v At/"\b! \bE\r\v \0A\xE4\0j"\f $ \x07 \v +  \0A\xEC\0j \0A\xE8\0j \f\x90 \0(d#   \0(l \0(h  \\! \b!! \0A\x90j$\0 \f\v0\0\v\v\x9A\x07\x7F\x7F#\0A\xF0k"\0$\0 \0B%7\xE8 \0A\xE8j"ArA\xD7 (\x91!\x07 \0 \0A\xC0j"\b6\xBC*!@\x7F@\x7F@ \x07@ (\b!\x07 \0 9 \0 \x076 \b   \0Aj]"AJ\r\f\v \0 90 \0A\xC0j  \0A\xE8j" \0A0j]"AL\r*! \0 9 \0A\xBCj   \0A jP\f\v*! (\b! \0 9\b \0 6\0 \0A\xBCj  \0A\xE8j \0P\v"A\x7FF\r \0(\xBC\f\vA\0\v \0(\xBC"  j" G! +@ \0A\xC0j F@ \0A\xD0\0j!A\0!\x07\f\v At/"\x07! \x07E\r\v \0A\xC4\0j"\v $  +  \0A\xCC\0j \0A\xC8\0j \v\x90 \0(D#   \0(L \0(H  \\! \x07!! \0A\xF0j$\0 \f\v0\0\v\v\xC7\x7F#\0A\xF0k"\0$\0A\bAA + ("A\xCA\0q"\x07A\bF\x1B \x07A\xC0\0F"\b\x1B! \0A\xD0j!@ A\x80qE Pr\r\0 \b@ \0A0:\0\xD0 Ar!\f\v \x07A\bG\r\0 \0A0:\0\xD0 \0A\xD8\0A\xF8\0 A\x80\x80q\x1B:\0\xD1 \0A\xD0jAr!\v \0A\xC8j  \0A\xE8j  \x92 \0(\xC8!\x07@ A\x88\x80qA\x88\x80G\r\0@  \x07F\r  -\0\0"A k  A\xE1\0kA\xFFqAI\x1B:\0\0 Aj!\f\0\v\0\v \0A\xD0j" \x07 G! \0Aj"\b $   \x07 \0Aj" \0A\fj \0A\bj \b\x90 \0(#   \0(\f \0(\b  \\ \0A\xF0j$\0\v\r\0    \x91\v\xA8\x7F~#\0A\xF0k"$\0 A\xD0j!\0~ ("A\xCA\0q"\x07A\bF"\b B\0YrE@  \x07A\xC0\0F\r A-:\0\xD0 \0Ar!\0B\0 }\f\v \v! + \b \x07A\xC0\0F" r A\x80qE B\0SrrE@ \0A+:\0\0 \0Aj!\0\vA\bAA + \b\x1B \x1B!\b@ A\x80qE Pr\r\0 \x07A\xC0\0F@ \0A0:\0\0 \0Aj!\0\f\v \x07A\bG\r\0 \0A0:\0\0 \0A\xD8\0A\xF8\0 A\x80\x80q\x1B:\0 \0Aj!\0\v A\xC8j \0 A\xE8j + \b\x92@ A\x88\x80qA\x88\x80F@@ \0 (\xC8"F\r \0 \0-\0\0"A k  A\xE1\0kA\xFFqAI\x1B:\0\0 \0Aj!\0\f\0\v\0\v (\xC8!\v A\xD0j"\0  G!\x07 Aj"\b $ \0 \x07  Aj"\0 A\fj A\bj \b\x90 (#  \0 (\f (\b  \\ A\xF0j$\0\v\xA5\x7F#\0A\x90k"$\0 A\x83j!\0\x7F ("A\xCA\0q"\x07A\bF"\b A\0NrE@  \x07A\xC0\0F\r A-:\0\x83 A\x84j!\0A\0 k\f\v \v! \b \x07A\xC0\0F" +r A\x80qE A\0HrrE@ \0A+:\0\0 \0Aj!\0\vA\bAA + \b\x1B +\x1B!\b@ E A\x80qEr\r\0 \x07A\xC0\0F@ \0A0:\0\0 \0Aj!\0\f\v \x07A\bG\r\0 \0A0:\0\0 \0A\xD8\0A\xF8\0 A\x80\x80q\x1B:\0 \0Aj!\0\v A\xF8\0j \0 A\x90j \b\x94@ A\x88\x80qA\x88\x80F@@ \0 (x"F\r \0 \0-\0\0"A k  A\xE1\0kA\xFFqAI\x1B:\0\0 \0Aj!\0\f\0\v\0\v (x!\v A\x83j"\0  G! Aj"\x07 $ \0   Aj"\0 A\fj A\bj \x07\x90 (#  \0 (\f (\b  \\ A\x90j$\0\v\xDE\x7F#\0Ak"$\0  6\f@ -\0AqE@ \0     \0(\0( \0!\f\v  $ n!\0 (\0#  \0 \0(\0AA \x1Bj(\0\0 (\0"  ,\0\v"A\0H\x1B!@   \xC0A\0H"\0\x1B ( A\xFFq \0\x1BAtj F@ (\f!   A\fj (\0\xBE Aj! (\0! -\0\v!\f\v\v\v Aj$\0 \v+\x7F  ("A\xB5\xFB~qA\x88r6    \x94  6\v\xB7\x07\x7F\x7F#\0A\xE0k"\0$\0 \0B%7\xD8 \0A\xD8j"\x07ArA\x82 (\x91!\b \0 \0A\xB0j" 6\xAC*!@\x7F@\x7F@ \b@ (\b!\b \0 70 \0 7( \0 \b6  \x07 \0A j]"AJ\r\f\v \0 7P \0 7X \0A\xB0j  \0A\xD8j"\x07 \0A\xD0\0j]"AL\r*! \0 7@ \0 7H \0A\xACj  \x07 \0A@kP\f\v*! (\b!\x07 \0 7 \0 7\b \0 \x076\0 \0A\xACj  \0A\xD8j \0P\v"A\x7FF\r \0(\xAC\f\vA\0\v \0(\xAC"\x07  \x07j" + G!\v@ \0A\xB0j \x07F@ \0A\xF0\0j!A\0!\b\f\v At/"\b! \bE\r\v \0A\xE4\0j"\f $ \x07 \v +  \0A\xEC\0j \0A\xE8\0j \f\x93 \0(d#   \0(l \0(h  Z! \b!! \0A\xE0j$\0 \f\v0\0\v\v\x9A\x07\x7F\x7F#\0A\xC0k"\0$\0 \0B%7\xB8 \0A\xB8j"ArA\xD7 (\x91!\x07 \0 \0A\x90j"\b6\x8C*!@\x7F@\x7F@ \x07@ (\b!\x07 \0 9 \0 \x076 \b   \0Aj]"AJ\r\f\v \0 90 \0A\x90j  \0A\xB8j" \0A0j]"AL\r*! \0 9 \0A\x8Cj   \0A jP\f\v*! (\b! \0 9\b \0 6\0 \0A\x8Cj  \0A\xB8j \0P\v"A\x7FF\r \0(\x8C\f\vA\0\v \0(\x8C"  j" G! +@ \0A\x90j F@ \0A\xD0\0j!A\0!\x07\f\v At/"\x07! \x07E\r\v \0A\xC4\0j"\v $  +  \0A\xCC\0j \0A\xC8\0j \v\x93 \0(D#   \0(L \0(H  Z! \x07!! \0A\xC0j$\0 \f\v0\0\v\v\xC3\x7F#\0A\xF0\0k"\0$\0A\bAA + ("A\xCA\0q"\x07A\bF\x1B \x07A\xC0\0F"\b\x1B! \0A\xD0\0j!@ A\x80qE Pr\r\0 \b@ \0A0:\0P Ar!\f\v \x07A\bG\r\0 \0A0:\0P \0A\xD8\0A\xF8\0 A\x80\x80q\x1B:\0Q \0A\xD0\0jAr!\v \0A\xC8\0j  \0A\xE8\0j  \x92 \0(H!\x07@ A\x88\x80qA\x88\x80G\r\0@  \x07F\r  -\0\0"A k  A\xE1\0kA\xFFqAI\x1B:\0\0 Aj!\f\0\v\0\v \0A\xD0\0j" \x07 G! \0Aj"\b $   \x07 \0Aj" \0A\fj \0A\bj \b\x93 \0(#   \0(\f \0(\b  Z \0A\xF0\0j$\0\v\r\0    \x94\v\xA5\x7F~#\0A\xF0\0k"$\0 A\xD0\0j!\0~ ("A\xCA\0q"\x07A\bF"\b B\0YrE@  \x07A\xC0\0F\r A-:\0P \0Ar!\0B\0 }\f\v \v! + \b \x07A\xC0\0F" r A\x80qE B\0SrrE@ \0A+:\0\0 \0Aj!\0\vA\bAA + \b\x1B \x1B!\b@ A\x80qE Pr\r\0 \x07A\xC0\0F@ \0A0:\0\0 \0Aj!\0\f\v \x07A\bG\r\0 \0A0:\0\0 \0A\xD8\0A\xF8\0 A\x80\x80q\x1B:\0 \0Aj!\0\v A\xC8\0j \0 A\xE8\0j + \b\x92@ A\x88\x80qA\x88\x80F@@ \0 (H"F\r \0 \0-\0\0"A k  A\xE1\0kA\xFFqAI\x1B:\0\0 \0Aj!\0\f\0\v\0\v (H!\v A\xD0\0j"\0  G!\x07 Aj"\b $ \0 \x07  Aj"\0 A\fj A\bj \b\x93 (#  \0 (\f (\b  Z A\xF0\0j$\0\v\x9D\x7F#\0A@j"$\0 A3j!\0\x7F ("A\xCA\0q"\x07A\bF"\b A\0NrE@  \x07A\xC0\0F\r A-:\x003 A4j!\0A\0 k\f\v \v! \b \x07A\xC0\0F" +r A\x80qE A\0HrrE@ \0A+:\0\0 \0Aj!\0\vA\bAA + \b\x1B +\x1B!\b@ E A\x80qEr\r\0 \x07A\xC0\0F@ \0A0:\0\0 \0Aj!\0\f\v \x07A\bG\r\0 \0A0:\0\0 \0A\xD8\0A\xF8\0 A\x80\x80q\x1B:\0 \0Aj!\0\v A(j \0 A@k \b\x94@ A\x88\x80qA\x88\x80F@@ \0 (("F\r \0 \0-\0\0"A k  A\xE1\0kA\xFFqAI\x1B:\0\0 \0Aj!\0\f\0\v\0\v ((!\v A3j"\0  G! Aj"\x07 $ \0   Aj"\0 A\fj A\bj \x07\x93 (#  \0 (\f (\b  Z A@k$\0\v\xDB\x7F#\0Ak"$\0  6\f@ -\0AqE@ \0     \0(\0( \0!\f\v  $ p!\0 (\0#  \0 \0(\0AA \x1Bj(\0\0 (\0"  ,\0\v"A\0H\x1B!@   \xC0A\0H"\0\x1B ( A\xFFq \0\x1Bj F@ (\f!   A\fj ,\0\0\xC0 Aj! (\0! -\0\v!\f\v\v\v Aj$\0 \v\xED\x7F#\0A\xD0k"\0$\0 \0 6\xC8 \0 6\xCC \0A\x006\xD8 \0B\x007\xD0 \0Aj" $ ="A\xD0\x85A\xEA\x85 \0A\xE0j (\0(0\0 \0(# \0A\x006\xC8 \0B\x007\xC0 \0A\xC0j"A +" \0 \0(\xC0  \0,\0\xCBA\0H\x1B"6\xBC \0 6\f \0A\x006\b@@ \0A\xCCj \0A\xC8j(\r\0 \0(\xBC  \0(\xC4 \0,\0\xCB" A\0H\x1B"jF@ \0A\xC0j" At" A + \0(\xC8A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xCBA\0N\x1B" \0 \0(\xC0  \0,\0\xCBA\0H\x1B" j6\xBC\v \0(\xCCCA  \0A\xBCj \0A\bjA\0 \0A\xD0j \0Aj \0A\fj \0A\xE0jm\r\0 \0(\xCCB\f\v\v \0A\xC0j" \0(\xBC k" \0(\xC0 \0,\0\xCB!*! \0 6\0  A\0H\x1B  \0\x98AG@ A6\0\v \0A\xCCj \0A\xC8j(@  (\0Ar6\0\v \0(\xCC \0A\xC0j  \0A\xD0j  \0A\xD0j$\0\v\xBD\x7F~\x7F#\0A\xF0k"\0$\0 \0 6\xE8 \0 6\xEC \0A\xDCj  \0A\xF0j \0A\xECj \0A\xE8j\xB3 \0A\x006\xD8 \0B\x007\xD0 \0A\xD0j"A +" \0 \0(\xD0  \0,\0\xDBA\0H\x1B"6\xCC \0 \0A j6 \0A\x006 \0A:\0 \0A\xC5\0:\0A\0!@@@@ \0A\xECj \0A\xE8j(\r\0 \0(\xCC  \0(\xD4 \0,\0\xDB" A\0H\x1B"jF@ \0A\xD0j" At" A + \0(\xD8A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xDBA\0N\x1B" \0 \0(\xD0  \0,\0\xDBA\0H\x1B" j6\xCC\v \0(\xECC \0Aj \0Aj  \0A\xCCj \0(\xEC \0(\xE8 \0A\xDCj \0A j \0Aj \0Aj \0A\xF0j\xB2\r\0 \rA\0! \0(\xCC k"A\0L\r@@ -\0\0"A+k"\x07\0\0\v A.F\rA! A0kA\xFFqA +I\r\f\v AF\r@ \x07\0\0\v -\0"A.F\rA! A0kA\xFFqA M\r\v@ \0(\xE0 \0,\0\xE7" A\0H\x1BE\r\0 \0-\0AqE\r\0 \0(" \0A jkA\x9FJ\r\0 \0 Aj6  \0(6\0\v \0  \0(\xCC \x99 \0)\0!\b  \0)\b7\b  \b7\0 \0A\xDCj \0A j \0( 5 \0A\xECj \0A\xE8j(@  (\0Ar6\0\v \0(\xEC \0A\xD0j  \0A\xDCj  \0A\xF0j$\0\f\vA!\v \0(\xECB\f\0\v\0\v\v\xA6\x7F\x7F#\0A\xE0k"\0$\0 \0 6\xD8 \0 6\xDC \0A\xCCj  \0A\xE0j \0A\xDCj \0A\xD8j\xB3 \0A\x006\xC8 \0B\x007\xC0 \0A\xC0j"A +" \0 \0(\xC0  \0,\0\xCBA\0H\x1B"6\xBC \0 \0Aj6\f \0A\x006\b \0A:\0\x07 \0A\xC5\0:\0A\0!@@@@ \0A\xDCj \0A\xD8j(\r\0 \0(\xBC  \0(\xC4 \0,\0\xCB" A\0H\x1B"jF@ \0A\xC0j" At" A + \0(\xC8A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xCBA\0N\x1B" \0 \0(\xC0  \0,\0\xCBA\0H\x1B" j6\xBC\v \0(\xDCC \0A\x07j \0Aj  \0A\xBCj \0(\xDC \0(\xD8 \0A\xCCj \0Aj \0A\fj \0A\bj \0A\xE0j\xB2\r\0 \rA\0! \0(\xBC k"A\0L\r@@ -\0\0"A+k"\x07\0\0\v A.F\rA! A0kA\xFFqA +I\r\f\v AF\r@ \x07\0\0\v -\0"A.F\rA! A0kA\xFFqA M\r\v@ \0(\xD0 \0,\0\xD7" A\0H\x1BE\r\0 \0-\0\x07AqE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xBC \x9A9\0 \0A\xCCj \0Aj \0(\f 5 \0A\xDCj \0A\xD8j(@  (\0Ar6\0\v \0(\xDC \0A\xC0j  \0A\xCCj  \0A\xE0j$\0\f\vA!\v \0(\xDCB\f\0\v\0\v\v\xA6\x7F\x7F#\0A\xE0k"\0$\0 \0 6\xD8 \0 6\xDC \0A\xCCj  \0A\xE0j \0A\xDCj \0A\xD8j\xB3 \0A\x006\xC8 \0B\x007\xC0 \0A\xC0j"A +" \0 \0(\xC0  \0,\0\xCBA\0H\x1B"6\xBC \0 \0Aj6\f \0A\x006\b \0A:\0\x07 \0A\xC5\0:\0A\0!@@@@ \0A\xDCj \0A\xD8j(\r\0 \0(\xBC  \0(\xC4 \0,\0\xCB" A\0H\x1B"jF@ \0A\xC0j" At" A + \0(\xC8A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xCBA\0N\x1B" \0 \0(\xC0  \0,\0\xCBA\0H\x1B" j6\xBC\v \0(\xDCC \0A\x07j \0Aj  \0A\xBCj \0(\xDC \0(\xD8 \0A\xCCj \0Aj \0A\fj \0A\bj \0A\xE0j\xB2\r\0 \rA\0! \0(\xBC k"A\0L\r@@ -\0\0"A+k"\x07\0\0\v A.F\rA! A0kA\xFFqA +I\r\f\v AF\r@ \x07\0\0\v -\0"A.F\rA! A0kA\xFFqA M\r\v@ \0(\xD0 \0,\0\xD7" A\0H\x1BE\r\0 \0-\0\x07AqE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xBC \x9B8\0 \0A\xCCj \0Aj \0(\f 5 \0A\xDCj \0A\xD8j(@  (\0Ar6\0\v \0(\xDC \0A\xC0j  \0A\xCCj  \0A\xE0j$\0\f\vA!\v \0(\xDCB\f\0\v\0\v\v\xF1\x7F#\0A\xD0k"\0$\0 \0 6\xC8 \0 6\xCC R!  \0A\xD0j~! \0A\xC4j  \0A\xC4j} \0A\x006\xC0 \0B\x007\xB8 \0A\xB8j"A +" \0 \0(\xB8  \0,\0\xC3A\0H\x1B"6\xB4 \0 \0Aj6\f \0A\x006\b@@ \0A\xCCj \0A\xC8j(\r\0 \0(\xB4  \0(\xBC \0,\0\xC3" A\0H\x1B"jF@ \0A\xB8j" At" A + \0(\xC0A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xC3A\0N\x1B" \0 \0(\xB8  \0,\0\xC3A\0H\x1B" j6\xB4\v \0(\xCCC   \0A\xB4j \0A\bj \0(\xC4 \0A\xC4j \0Aj \0A\fj m\r\0 \0(\xCCB\f\v\v@ \0(\xC8 \0,\0\xCF" A\0H\x1BE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xB4  \x9C7\0 \0A\xC4j \0Aj \0(\f 5 \0A\xCCj \0A\xC8j(@  (\0Ar6\0\v \0(\xCC \0A\xB8j  \0A\xC4j  \0A\xD0j$\0\v\x07\0 \0(\0\v\xF1\x7F#\0A\xD0k"\0$\0 \0 6\xC8 \0 6\xCC R!  \0A\xD0j~! \0A\xC4j  \0A\xC4j} \0A\x006\xC0 \0B\x007\xB8 \0A\xB8j"A +" \0 \0(\xB8  \0,\0\xC3A\0H\x1B"6\xB4 \0 \0Aj6\f \0A\x006\b@@ \0A\xCCj \0A\xC8j(\r\0 \0(\xB4  \0(\xBC \0,\0\xC3" A\0H\x1B"jF@ \0A\xB8j" At" A + \0(\xC0A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xC3A\0N\x1B" \0 \0(\xB8  \0,\0\xC3A\0H\x1B" j6\xB4\v \0(\xCCC   \0A\xB4j \0A\bj \0(\xC4 \0A\xC4j \0Aj \0A\fj m\r\0 \0(\xCCB\f\v\v@ \0(\xC8 \0,\0\xCF" A\0H\x1BE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xB4  \x9F;\0 \0A\xC4j \0Aj \0(\f 5 \0A\xCCj \0A\xC8j(@  (\0Ar6\0\v \0(\xCC \0A\xB8j  \0A\xC4j  \0A\xD0j$\0\v\xF1\x7F#\0A\xD0k"\0$\0 \0 6\xC8 \0 6\xCC R!  \0A\xD0j~! \0A\xC4j  \0A\xC4j} \0A\x006\xC0 \0B\x007\xB8 \0A\xB8j"A +" \0 \0(\xB8  \0,\0\xC3A\0H\x1B"6\xB4 \0 \0Aj6\f \0A\x006\b@@ \0A\xCCj \0A\xC8j(\r\0 \0(\xB4  \0(\xBC \0,\0\xC3" A\0H\x1B"jF@ \0A\xB8j" At" A + \0(\xC0A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xC3A\0N\x1B" \0 \0(\xB8  \0,\0\xC3A\0H\x1B" j6\xB4\v \0(\xCCC   \0A\xB4j \0A\bj \0(\xC4 \0A\xC4j \0Aj \0A\fj m\r\0 \0(\xCCB\f\v\v@ \0(\xC8 \0,\0\xCF" A\0H\x1BE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xB4  \xA07\0 \0A\xC4j \0Aj \0(\f 5 \0A\xCCj \0A\xC8j(@  (\0Ar6\0\v \0(\xCC \0A\xB8j  \0A\xC4j  \0A\xD0j$\0\v\xF1\x7F#\0A\xD0k"\0$\0 \0 6\xC8 \0 6\xCC R!  \0A\xD0j~! \0A\xC4j  \0A\xC4j} \0A\x006\xC0 \0B\x007\xB8 \0A\xB8j"A +" \0 \0(\xB8  \0,\0\xC3A\0H\x1B"6\xB4 \0 \0Aj6\f \0A\x006\b@@ \0A\xCCj \0A\xC8j(\r\0 \0(\xB4  \0(\xBC \0,\0\xC3" A\0H\x1B"jF@ \0A\xB8j" At" A + \0(\xC0A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xC3A\0N\x1B" \0 \0(\xB8  \0,\0\xC3A\0H\x1B" j6\xB4\v \0(\xCCC   \0A\xB4j \0A\bj \0(\xC4 \0A\xC4j \0Aj \0A\fj m\r\0 \0(\xCCB\f\v\v@ \0(\xC8 \0,\0\xCF" A\0H\x1BE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xB4  \xA16\0 \0A\xC4j \0Aj \0(\f 5 \0A\xCCj \0A\xC8j(@  (\0Ar6\0\v \0(\xCC \0A\xB8j  \0A\xC4j  \0A\xD0j$\0\v\x99\x8B.\x7F}|#\0Ak"$\0  6\f A\x006\b B\x007\0    j"  k\xC2#\0A\xE0\0k"%$\0 %A\bj! (\0"! ( k!#\0A\xC0k"$\0 A\x006\xA0 B\x007\x98 A\x006\xB0 B\x007\xA8 A\xB4j"A\x006\b B\x007\0 A\x80\xC0\0\xB6 A\x80\xC0\0\x96 A\fjA\0A0\xFC\v\0  6\b  6@\x7F Aj!\v\x7FAzA\x94-\0\0A1G\r\0A~ \vE\r \vA\x006 \v( "E@ \vA\x006( \vA/6 A/!\v \v($E@ \vA06$\vA| \v((AA\xD07 \0"E\r \v 6 A\x0068  \v6\0 A\xB4\xFE\x006A~!@ \vE\r\0 \v( E\r\0 \v($"E\r\0 \v("E\r\0 (\0 \vG\r\0 (A\xB4\xFE\0kAK\r\0@@ (8"@ ((AG\r\v A6( A6\f\f\v \v((  \0 A\x0068 \v( A6( A6\fE\r\v \v($E\r\0 \v("E\r\0 (\0 \vG\r\0 (A\xB4\xFE\0kAK\r\0A\0! A\x0064 B\x007, A\x006 \vA\x006\b \vB\x007 (\f"@ \v Aq60\v B\x007< A\x006$ A\x80\x806 B\x80\x80\x80\x80p7 B\xB4\xFE\x007 B\x81\x80\x80\x80p7\xC47  A\xB4 +j"6p  6T  6P\vA\0 E\r\0 \v((  \v($\0 \vA\x006 \v\vE@ A\x006\xAC@@  (\0"6  ( k6A\0!\v#\0Ak"$\0A~!\x1B@ Aj"\rE\r\0 \r( E\r\0 \r($E\r\0 \r("\x07E\r\0 \x07(\0 \rG\r\0 \x07("A\xB4\xFE\0kAK\r\0 \r(\f"E\r\0 \r(\0"E@ \r(\r\v A\xBF\xFE\0F@ \x07A\xC0\xFE\x006A\xC0\xFE\0!\v \x07A\xDC\0j!- \x07A\xF2\0j!. \x07A\xF4j!" \x07A\xD8\0j!& \x07A\xF0\0j!# \x07A\xB4 +j! \x07A\xF4\0j! \x07(@! \x07(\x958\0 \fAj!\f\f\v\v  \fAtj  \fj-\0\0\xB3C\0\0\x80=\x94C\0\0 \xC1\x928\0 \fAj!\f\f\v\v\v \bA\x90j$\0 \xCC %A\xE0\0j$\0 1 Aj$\0\v\x81\x7F#\0A k"$\0  6@ -\0AqE@ A\x7F6\0 \0      \0(\0(\0!@@@ (\0\0\v A\0:\0\0\f\v A:\0\0\f\v A:\0\0 A6\0\f\v  $ =! (\0#  $ n!\0 (\0#  \0 \0(\0(\0 A\fr \0 \0(\0(\0  Aj   Aj"  A\x95 F:\0\0 (!@ A\fk " G\r\0\v\v A j$\0 \v\xEE\x7F#\0A\x90k"\0$\0 \0 6\x88 \0 6\x8C \0A\x006\xD8 \0B\x007\xD0 \0Aj" $ >"A\xD0\x85A\xEA\x85 \0A\xE0j (\0( \0 \0(# \0A\x006\xC8 \0B\x007\xC0 \0A\xC0j"A +" \0 \0(\xC0  \0,\0\xCBA\0H\x1B"6\xBC \0 6\f \0A\x006\b@@ \0A\x8Cj \0A\x88j)\r\0 \0(\xBC  \0(\xC4 \0,\0\xCB" A\0H\x1B"jF@ \0A\xC0j" At" A + \0(\xC8A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xCBA\0N\x1B" \0 \0(\xC0  \0,\0\xCBA\0H\x1B" j6\xBC\v \0(\x8CA\xC0A  \0A\xBCj \0A\bjA\0 \0A\xD0j \0Aj \0A\fj \0A\xE0jo\r\0 \0(\x8C@\f\v\v \0A\xC0j" \0(\xBC k" \0(\xC0 \0,\0\xCB!*! \0 6\0  A\0H\x1B  \0\x98AG@ A6\0\v \0A\x8Cj \0A\x88j)@  (\0Ar6\0\v \0(\x8C \0A\xC0j  \0A\xD0j  \0A\x90j$\0\v\xBE\x7F~\x7F#\0A\xA0k"\0$\0 \0 6\x98 \0 6\x9C \0A\xE0j  \0A\xF0j \0A\xEFj \0A\xEEj\xB7 \0A\x006\xD8 \0B\x007\xD0 \0A\xD0j"A +" \0 \0(\xD0  \0,\0\xDBA\0H\x1B"6\xCC \0 \0A j6 \0A\x006 \0A:\0 \0A\xC5\0:\0A\0!@@@@ \0A\x9Cj \0A\x98j)\r\0 \0(\xCC  \0(\xD4 \0,\0\xDB" A\0H\x1B"jF@ \0A\xD0j" At" A + \0(\xD8A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xDBA\0N\x1B" \0 \0(\xD0  \0,\0\xDBA\0H\x1B" j6\xCC\v \0(\x9CA\xC0 \0Aj \0Aj  \0A\xCCj \0,\0\xEF \0,\0\xEE \0A\xE0j \0A j \0Aj \0Aj \0A\xF0j\xB6\r\0 \rA\0! \0(\xCC k"A\0L\r@@ -\0\0"A+k"\x07\0\0\v A.F\rA! A0kA\xFFqA +I\r\f\v AF\r@ \x07\0\0\v -\0"A.F\rA! A0kA\xFFqA M\r\v@ \0(\xE4 \0,\0\xEB" A\0H\x1BE\r\0 \0-\0AqE\r\0 \0(" \0A jkA\x9FJ\r\0 \0 Aj6  \0(6\0\v \0  \0(\xCC \x99 \0)\0!\b  \0)\b7\b  \b7\0 \0A\xE0j \0A j \0( 5 \0A\x9Cj \0A\x98j)@  (\0Ar6\0\v \0(\x9C \0A\xD0j  \0A\xE0j  \0A\xA0j$\0\f\vA!\v \0(\x9C@\f\0\v\0\v\v\xA7\x7F\x7F#\0A\x90k"\0$\0 \0 6\x88 \0 6\x8C \0A\xD0j  \0A\xE0j \0A\xDFj \0A\xDEj\xB7 \0A\x006\xC8 \0B\x007\xC0 \0A\xC0j"A +" \0 \0(\xC0  \0,\0\xCBA\0H\x1B"6\xBC \0 \0Aj6\f \0A\x006\b \0A:\0\x07 \0A\xC5\0:\0A\0!@@@@ \0A\x8Cj \0A\x88j)\r\0 \0(\xBC  \0(\xC4 \0,\0\xCB" A\0H\x1B"jF@ \0A\xC0j" At" A + \0(\xC8A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xCBA\0N\x1B" \0 \0(\xC0  \0,\0\xCBA\0H\x1B" j6\xBC\v \0(\x8CA\xC0 \0A\x07j \0Aj  \0A\xBCj \0,\0\xDF \0,\0\xDE \0A\xD0j \0Aj \0A\fj \0A\bj \0A\xE0j\xB6\r\0 \rA\0! \0(\xBC k"A\0L\r@@ -\0\0"A+k"\x07\0\0\v A.F\rA! A0kA\xFFqA +I\r\f\v AF\r@ \x07\0\0\v -\0"A.F\rA! A0kA\xFFqA M\r\v@ \0(\xD4 \0,\0\xDB" A\0H\x1BE\r\0 \0-\0\x07AqE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xBC \x9A9\0 \0A\xD0j \0Aj \0(\f 5 \0A\x8Cj \0A\x88j)@  (\0Ar6\0\v \0(\x8C \0A\xC0j  \0A\xD0j  \0A\x90j$\0\f\vA!\v \0(\x8C@\f\0\v\0\v\v\xA7\x7F\x7F#\0A\x90k"\0$\0 \0 6\x88 \0 6\x8C \0A\xD0j  \0A\xE0j \0A\xDFj \0A\xDEj\xB7 \0A\x006\xC8 \0B\x007\xC0 \0A\xC0j"A +" \0 \0(\xC0  \0,\0\xCBA\0H\x1B"6\xBC \0 \0Aj6\f \0A\x006\b \0A:\0\x07 \0A\xC5\0:\0A\0!@@@@ \0A\x8Cj \0A\x88j)\r\0 \0(\xBC  \0(\xC4 \0,\0\xCB" A\0H\x1B"jF@ \0A\xC0j" At" A + \0(\xC8A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xCBA\0N\x1B" \0 \0(\xC0  \0,\0\xCBA\0H\x1B" j6\xBC\v \0(\x8CA\xC0 \0A\x07j \0Aj  \0A\xBCj \0,\0\xDF \0,\0\xDE \0A\xD0j \0Aj \0A\fj \0A\bj \0A\xE0j\xB6\r\0 \rA\0! \0(\xBC k"A\0L\r@@ -\0\0"A+k"\x07\0\0\v A.F\rA! A0kA\xFFqA +I\r\f\v AF\r@ \x07\0\0\v -\0"A.F\rA! A0kA\xFFqA M\r\v@ \0(\xD4 \0,\0\xDB" A\0H\x1BE\r\0 \0-\0\x07AqE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xBC \x9B8\0 \0A\xD0j \0Aj \0(\f 5 \0A\x8Cj \0A\x88j)@  (\0Ar6\0\v \0(\x8C \0A\xC0j  \0A\xD0j  \0A\x90j$\0\f\vA!\v \0(\x8C@\f\0\v\0\v\v\xE6\0#\0A\xE0k"\0$\0 \0 6\xD8 \0 6\xDC R! \0A\xC8j  \0A\xD7j\x7F \0A\x006\xC0 \0B\x007\xB8 \0A\xB8j"A +" \0 \0(\xB8  \0,\0\xC3A\0H\x1B"6\xB4 \0 \0Aj6\f \0A\x006\b@@ \0A\xDCj \0A\xD8j)\r\0 \0(\xB4  \0(\xBC \0,\0\xC3" A\0H\x1B"jF@ \0A\xB8j" At" A + \0(\xC0A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xC3A\0N\x1B" \0 \0(\xB8  \0,\0\xC3A\0H\x1B" j6\xB4\v \0(\xDCA\xC0   \0A\xB4j \0A\bj \0,\0\xD7 \0A\xC8j \0Aj \0A\fjA\xD0\x85o\r\0 \0(\xDC@\f\v\v@ \0(\xCC \0,\0\xD3" A\0H\x1BE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xB4  \x9C7\0 \0A\xC8j \0Aj \0(\f 5 \0A\xDCj \0A\xD8j)@  (\0Ar6\0\v \0(\xDC \0A\xB8j  \0A\xC8j  \0A\xE0j$\0\v\xE6\0#\0A\xE0k"\0$\0 \0 6\xD8 \0 6\xDC R! \0A\xC8j  \0A\xD7j\x7F \0A\x006\xC0 \0B\x007\xB8 \0A\xB8j"A +" \0 \0(\xB8  \0,\0\xC3A\0H\x1B"6\xB4 \0 \0Aj6\f \0A\x006\b@@ \0A\xDCj \0A\xD8j)\r\0 \0(\xB4  \0(\xBC \0,\0\xC3" A\0H\x1B"jF@ \0A\xB8j" At" A + \0(\xC0A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xC3A\0N\x1B" \0 \0(\xB8  \0,\0\xC3A\0H\x1B" j6\xB4\v \0(\xDCA\xC0   \0A\xB4j \0A\bj \0,\0\xD7 \0A\xC8j \0Aj \0A\fjA\xD0\x85o\r\0 \0(\xDC@\f\v\v@ \0(\xCC \0,\0\xD3" A\0H\x1BE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xB4  \x9F;\0 \0A\xC8j \0Aj \0(\f 5 \0A\xDCj \0A\xD8j)@  (\0Ar6\0\v \0(\xDC \0A\xB8j  \0A\xC8j  \0A\xE0j$\0\v\xE6\0#\0A\xE0k"\0$\0 \0 6\xD8 \0 6\xDC R! \0A\xC8j  \0A\xD7j\x7F \0A\x006\xC0 \0B\x007\xB8 \0A\xB8j"A +" \0 \0(\xB8  \0,\0\xC3A\0H\x1B"6\xB4 \0 \0Aj6\f \0A\x006\b@@ \0A\xDCj \0A\xD8j)\r\0 \0(\xB4  \0(\xBC \0,\0\xC3" A\0H\x1B"jF@ \0A\xB8j" At" A + \0(\xC0A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xC3A\0N\x1B" \0 \0(\xB8  \0,\0\xC3A\0H\x1B" j6\xB4\v \0(\xDCA\xC0   \0A\xB4j \0A\bj \0,\0\xD7 \0A\xC8j \0Aj \0A\fjA\xD0\x85o\r\0 \0(\xDC@\f\v\v@ \0(\xCC \0,\0\xD3" A\0H\x1BE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xB4  \xA07\0 \0A\xC8j \0Aj \0(\f 5 \0A\xDCj \0A\xD8j)@  (\0Ar6\0\v \0(\xDC \0A\xB8j  \0A\xC8j  \0A\xE0j$\0\v\xE6\0#\0A\xE0k"\0$\0 \0 6\xD8 \0 6\xDC R! \0A\xC8j  \0A\xD7j\x7F \0A\x006\xC0 \0B\x007\xB8 \0A\xB8j"A +" \0 \0(\xB8  \0,\0\xC3A\0H\x1B"6\xB4 \0 \0Aj6\f \0A\x006\b@@ \0A\xDCj \0A\xD8j)\r\0 \0(\xB4  \0(\xBC \0,\0\xC3" A\0H\x1B"jF@ \0A\xB8j" At" A + \0(\xC0A\xFF\xFF\xFF\xFF\x07qAk \0,\0\xC3A\0N\x1B" \0 \0(\xB8  \0,\0\xC3A\0H\x1B" j6\xB4\v \0(\xDCA\xC0   \0A\xB4j \0A\bj \0,\0\xD7 \0A\xC8j \0Aj \0A\fjA\xD0\x85o\r\0 \0(\xDC@\f\v\v@ \0(\xCC \0,\0\xD3" A\0H\x1BE\r\0 \0(\f" \0AjkA\x9FJ\r\0 \0 Aj6\f  \0(\b6\0\v   \0(\xB4  \xA16\0 \0A\xC8j \0Aj \0(\f 5 \0A\xDCj \0A\xD8j)@  (\0Ar6\0\v \0(\xDC \0A\xB8j  \0A\xC8j  \0A\xE0j$\0\v\x81\x7F#\0A k"$\0  6@ -\0AqE@ A\x7F6\0 \0      \0(\0(\0!@@@ (\0\0\v A\0:\0\0\f\v A:\0\0\f\v A:\0\0 A6\0\f\v  $ >! (\0#  $ p!\0 (\0#  \0 \0(\0(\0 A\fr \0 \0(\0(\0  Aj   Aj"  A\x97 F:\0\0 (!@ A\fk " G\r\0\v\v A j$\0 \v@\x7FA\0!\0\x7F  F\x7F \0 (\0 \0Atj"\0A\x80\x80\x80\x80\x7Fq"Av r \0s!\0 Aj!\f\v\v\v\v\0 \0  \xA2\vT\x7F@@  G@A\x7F!\0  F\r (\0" (\0"H\r  J@A Aj! Aj!\f\v\0\v\v  G!\0\v \0\v@\x7FA\0!\0\x7F  F\x7F \0 ,\0\0 \0Atj"\0A\x80\x80\x80\x80\x7Fq"Av r \0s!\0 Aj!\f\v\v\v\v\0 \0  \xCE\v^\x7F   kj!@@  G@A\x7F!\0  F\r ,\0\0" ,\0\0"\x07H\r  \x07J@A Aj! Aj!\f\v\0\v\v  G!\0\v \0\vT\x7F  \0(T" A\0 A\x80j"\xCA" k  \x1B"   K\x1B"Y \0  j"6T \0 6\b \0  j6 \v\xA8\x7F \0(T"(\0! (" \0( \0("\x07k"  I\x1B"@  \x07 Y  (\0 j"6\0  ( k"6\v    K\x1B"@   Y  (\0 j"6\0  ( k6\v A\0:\0\0 \0 \0(,"6 \0 6 \v\b\0 \0K!\v\0 \0 \0(\0A\fk(\0j\xC0\v\0 \0 \0(\0A\fk(\0j\x81\v +\0 \0A\bk\xC0\v +\0 \0A\bk\x81\v\0 \0  )\bA\0  (\0(\0\v \0 \0\xB0!\v\x95\x7F~ (," ("I@  6, !\vB\x7F! +@ Aq"\x07E AF \x07AFqr\r\0 @  ( A j ,\0+A\0H\x1Bk\xAC! \v@@@ \0\v A\bq@ (\f (\bk\xAC!\b\f\v  (k\xAC!\b\f\v !\b\v  \b|"B\0S  Ur\r\0 A\bq!@ P\r\0 @ (\fE\r\v AqE\r\0 E\r\v @  6  (\b \xA7j6\f\v Aq@  ( \xA7j6\v ! +\v \0 +7\b \0B\x007\0\v\x99\b\x7F A\x7FF@A\0\v \0(\b! \0(\f! \0\x7F \0(" \0(G@ \0(,\f\v \0-\x000AqE@A\x7F\v \0(,!\x07 \0(! \0A j"A\0\xAA A + \0((A\xFF\xFF\xFF\xFF\x07qAk \0,\0+A\0N\x1B" \0 \0(  \0,\0+"\bA\0H" \x1B"6 \0  \0($ \b \x1Bj6 \0   kj"6  \x07 kj\v" Aj"  I\x1B"6, \0-\x000A\bq@ \0 6 \0 \0( \0A j \0,\0+A\0H\x1B"6\b \0   kj6\f\v \0 \xC0\xC3\v\x8E\x7F \0(," \0("I@ \0 6, !\v\x7FA\x7F \0(\f" \0(\bM\r\0 A\x7FF@ \0 6 \0 Ak6\fA\0\v \0-\x000AqE@A\x7F Ak-\0\0 A\xFFqG\r\v \0 6 \0 Ak"\x006\f \0 :\0\0 \v\v_\x7F \0(," \0("I@ \0 6, !\vA\x7F!@ \0-\x000A\bqE\r\0  \0("K\x7F \0 6  \v \0(\f"\0M\r\0 \0-\0\0!\v \v\0 \0 \0(\0A\fk(\0j\xC1\v +\0 \0A\bk\xC1\v \0 \0A\f\xA5\v\0 \0AjK \0A\bk\v\f\0 \0A\fjK \0\v\0 \0 \0(\0A\fk(\0j\xC1\v \0 \0A\xA5\v\f\0 \0AjK \0\v\0 \0 \0(\0A\fk(\0j\xC5\v \0 \0A\b\xA5\v\f\0 \0A\bjK \0\v\x96\x7F@@  L\r\0 \0(" \0("O@ \0 -\0\0 \0(\0(4\0A\x7FF\r Aj! Aj!\f \0  k"  k"  J\x1B"\x7F @   \xFC +\0\0\v \0( \v j6  j!  j!\f\v\0\v\v \v3\x7FA\x7F! \0 \0(\0($\0\0A\x7FG@ \0(\f"-\0\0! \0 Aj6\f\v \v\0A\x7F\v\x91\x7F@@  L\r\0@ \0(\f" \0("I@ \0  k"  k"  J\x1B"\x7F @   \xFC +\0\0\v \0(\f \v j6\f\f\v \0 \0(\0((\0\0"A\x7FF\r  :\0\0A!\v  j!  j!\f\v\v \v\0 \0B\x7F7\b \0B\x007\0\v\0 \0B\x7F7\b \0B\x007\0\v\0 \0\v\f\0 \0\xC3 \0!\v\f\0 \0(<\x9E\v;\x7F \0(<#\0Ak"\0$\0  A\xFFq \0A\bj\x9E! \0)\b! \0Aj$\0B\x7F  \x1B\v)\0  (\0A\x07jAxq"Aj6\0 \0 )\0 )\b\xC49\0\v\xB4\x7F|~#\0A\xB0k"\v$\0 \vA\x006,@ \xBD"B\0S@A!A\x9D ! \x9A"\xBD!\f\v A\x80q@A!A\xA0 !\f\vA\xA3 A\x9E Aq"\x1B! E!\v@ B\x80\x80\x80\x80\x80\x80\x80\xF8\xFF\0\x83B\x80\x80\x80\x80\x80\x80\x80\xF8\xFF\0Q@ \0A  Aj" A\xFF\xFF{q7 \0  3 \0A\xFB\rA\xED A q"\x1BA\xCEA\x97 \x1B  b\x1BA3 \0A   A\x80\xC0\0s7    J\x1B!\r\f\v \vAj!@@@  \vA,j\xD1" \xA0"D\0\0\0\0\0\0\0\0b@ \v \v(,"Ak6, A r"A\xE1\0G\r\f\v A r"A\xE1\0F\r \v(,!\f\f\v \v Ak"\f6, D\0\0\0\0\0\0\xB0A\xA2!\vA  A\0H\x1B! + \vA0jA\xA0A\0 \fA\0N\x1Bj"!\x07@ \x07 \xFC"6\0 \x07Aj!\x07  \xB8\xA1D\0\0\0\0e\xCD\xCDA\xA2"D\0\0\0\0\0\0\0\0b\r\0\v@ \fA\0L@ \f! \x07! !\b\f\v !\b \f! @A AO\x1B!@ \x07Ak" \bI\r\0 \xAD!\x1BB\0!@  5\0 \x1B\x86 |" B\x80\x94\xEB\xDC\x80"B\x80\x94\xEB\xDC~}>\0 Ak" \bO\r\0\v B\x80\x94\xEB\xDCT\r\0 \bAk"\b >\0\v@ \b \x07"I@ Ak"\x07(\0E\r\v\v \v \v(, k" 6, !\x07 A\0J\r\0\v\v A\0H@ +AjA nAj! A\xE6\0F!@A A\0 k" A O\x1B!\r@  \bM@A\0A \b(\0\x1B!\x07\f\vA\x80\x94\xEB\xDC \rv!A\x7F \rtA\x7Fs!A\0! \b!\x07@ \x07 \x07(\0" \rv j6\0  q l! \x07Aj"\x07 I\r\0\vA\0A \b(\0\x1B!\x07 E\r\0  6\0 Aj!\v \v \v(, \rj" 6,  \x07 \bj"\b \x1B" Atj   kAu J\x1B! A\0H\r\0\v\vA\0! @  \bM\r\0  \bkAuA l! A +!\x07 \b(\0"A +I\r\0@ Aj!  \x07A +l"\x07O\r\0\v\v + A\0 A\xE6\0G\x1Bk A\xE7\0F +A\0Gqk"  kAuA lA kH@ \vA0jA\x84\`A\xA4b \fA\0H\x1Bj A\x80\xC8\0j"\fA m"Atj!\rA +!\x07 \f A lk"A\x07L@@ \x07A +l!\x07 Aj"A\bG\r\0\v\v@ \r(\0"\f \f \x07n" \x07lk"E \rAj" Fq\r\0@ AqE@D\0\0\0\0\0\0@C! \x07A\x80\x94\xEB\xDCG \b \rOr\r \rAk-\0\0AqE\r\vD\0\0\0\0\0@C!\vD\0\0\0\0\0\0\xE0?D\0\0\0\0\0\0\xF0?D\0\0\0\0\0\0\xF8?  F\x1BD\0\0\0\0\0\0\xF8?  \x07Av"F\x1B  K\x1B!@ \r\0 -\0\0A-G\r\0 \x9A! \x9A!\v \r \f k"6\0  \xA0 a\r\0 \r  \x07j"6\0 A\x80\x94\xEB\xDCO@@ \rA\x006\0 \b \rAk"\rK@ \bAk"\bA\x006\0\v \r \r(\0Aj"6\0 A\xFF\x93\xEB\xDCK\r\0\v\v  \bkAuA l! A +!\x07 \b(\0"A +I\r\0@ Aj!  \x07A +l"\x07O\r\0\v\v \rAj"   I\x1B!\v@ "\f \bM"\x07E@ Ak"(\0E\r\v\v@ A\xE7\0G@ A\bq!\f\v A\x7FsA\x7F +A +\x1B" J A{Jq"\x1B j! +A\x7FA~ \x1B j! A\bq"\r\0Aw!@ \x07\r\0 \fAk(\0"E\r\0A +!A\0! A +p\r\0@ "\x07Aj!  A +l"pE\r\0\v \x07A\x7Fs!\v \f kAuA l! A_qA\xC6\0F@A\0! +  jA k"A\0 A\0J\x1B"  +J\x1B! +\f\vA\0! +  j jA k"A\0 A\0J\x1B"  +J\x1B! +\vA\x7F!\r +A\xFD\xFF\xFF\xFF\x07A\xFE\xFF\xFF\xFF\x07 + r"\x1BJ\r + A\0GjAj!@ A_q"\x07A\xC6\0F@ A\xFF\xFF\xFF\xFF\x07sJ\r A\0 A\0J\x1B!\f\v  Au"s k\xAD x"kAL@@ Ak"A0:\0\0  kAH\r\0\v\v Ak" :\0\0 AkA-A+ A\0H\x1B:\0\0  k" A\xFF\xFF\xFF\xFF\x07sJ\r\v  j" A\xFF\xFF\xFF\xFF\x07sJ\r \0A   j" 7 \0  3 \0A0  A\x80\x80s7@@@ \x07A\xC6\0F@ \vAjA r!  \b \b K\x1B"!\b@ \b5\0 x!@  \bG@  \vAjM\r@ Ak"A0:\0\0  \vAjK\r\0\v\f\v  G\r\0 Ak"A0:\0\0\v \0   k3 \bAj"\b M\r\0\v @ \0A\x9AA3\v +A\0L \b \fOr\r@ \b5\0 x" \vAjK@@ Ak"A0:\0\0  \vAjK\r\0\v\v \0 A + +A N\x1B3 +A k! \bAj"\b \fO\r +A J ! +\r\0\v\f\v@ +A\0H\r\0 \f \bAj \b \fI\x1B! \vAjA r!\f \b!\x07@ \f \x075\0 \fx"F@ Ak"A0:\0\0\v@ \x07 \bG@  \vAjM\r@ Ak"A0:\0\0  \vAjK\r\0\v\f\v \0 A3 Aj! + rE\r\0 \0A\x9AA3\v \0  \f k" +  +H\x1B3 + k! + \x07Aj"\x07 O\r +A\0N\r\0\v\v \0A0 +AjAA\07 \0   k3\f\v +!\v \0A0 A jA A\07\v \0A  A\x80\xC0\0s7   J\x1B!\r\f\v  AtAuA qj! @ A\vK\r\0A\f k!D\0\0\0\0\0\x000@!@ D\0\0\0\0\0\x000@\xA2! Ak"\r\0\v -\0\0A-F@  \x9A \xA1\xA0\x9A!\f\v  \xA0 \xA1!\v  \v(,"\x07 \x07Au"s k\xAD x"F@ Ak"A0:\0\0 \v(,!\x07\v Ar! + A q!\f Ak" Aj:\0\0 AkA-A+ \x07A\0H\x1B:\0\0 A\bqE A\0Lq!\b \vAj!\x07@ \x07" \xFC"A\x90\xF5\0j-\0\0 \fr:\0\0  \xB7\xA1D\0\0\0\0\0\x000@\xA2"D\0\0\0\0\0\0\0\0a \bq \x07Aj"\x07 \vAjkAGrE@ A.:\0 Aj!\x07\v D\0\0\0\0\0\0\0\0b\r\0\vA\x7F!\r A\xFD\xFF\xFF\xFF\x07 +  k"\bj"kJ\r\0 \0A   Aj \x07 \vAj"k"\x07 \x07Ak H\x1B \x07 \x1B"j" 7 \0 +3 \0A0   A\x80\x80s7 \0  \x073 \0A0  \x07kA\0A\07 \0  \b3 \0A   A\x80\xC0\0s7    J\x1B!\r\v \vA\xB0j$\0 \r\v\0B\0\v\xD6\x07\x7F#\0A k"$\0  \0("6 \0(!  6  6   k"6  j! Aj!A!\x07\x7F@@@ \0(< A A\fj\v\x9E@ !\f\v@  (\f"F\r A\0H@ !\f\v A\bA\0  ("\bK" \x1Bj"  \bA\0 \x1Bk"\b (\0j6\0 A\fA \x1Bj" (\0 \bk6\0  k! \0(< " \x07 k"\x07 A\fj\v\x9EE\r\0\v\v A\x7FG\r\v \0 \0(,"6 \0 6 \0  \0(0j6 \f\v \0A\x006 \0B\x007 \0 \0(\0A r6\0A\0 \x07AF\r\0  (k\v A j$\0\v\x89\x7F#\0Ak"\0$\0@ \0A\fj \0A\bj\r\0A\xEC\xDB \0(\fAtAj/"6\0 E\r\0 \0(\b/"@A\xEC\xDB(\0" \0(\fAtjA\x006\0  E\r\vA\xEC\xDBA\x006\0\v \0Aj$\0A\x84\xCEA\x006\0A\x80\xCEA6\0\x95A\x84\xCEA\xA0\xCE(\x006\0A\xA0\xCEA\x80\xCE6\0A\xA4\xCEA.6\0A\xA8\xCEA\x006\0\xCCA\xA8\xCEA\xA0\xCE(\x006\0A\xA0\xCEA\xA4\xCE6\0A\xCC\xCFA\xD4\xCE6\0A\xA4\xCFA\x80\x806\0A\xA0\xCFA\xC0\xEC6\0A\x84\xCFA*6\0A\xA8\xCFA\xB0\xCB(\x006\0\v\v\xBF\xBE(\0A\x80\b\v\x940123456789abcdefghijklmnopqrstuvwxyz\0load_spz\0infinity\0February\0January\0July\0Thursday\0Tuesday\0Wednesday\0Saturday\0Sunday\0Monday\0Friday\0May\0%m/%d/%y\0-+ 0X0x\0-0X+0X 0X-0x+0x 0x\0Nov\0Thu\0August\0unsigned short\0unsigned int\0invalid literal/lengths set\0invalid code lengths set\0unknown header flags set\0invalid distances set\0get\0Oct\0float\0invalid bit length repeat\0Sat\0numPoints\0colors\0UnpackOptions\0positions\0rotations\0too many length or distance symbols\0invalid stored block lengths\0scales\0alphas\0[SPZ: ERROR] Check failed: %s:%d: %s\0vf32_ptr\0Apr\0vector\0money_get error\0[SPZ ERROR] deserializePackedGaussians: read error\0October\0November\0September\0December\0unsigned char\0Mar\0/emsdk/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp\0Sep\0%I:%M:%S %p\0Sun\0Jun\0Mon\0nan\0Jan\0coordinateSystem\0CoordinateSystem\0Jul\0bool\0April\0invalid code -- missing end-of-block\0incorrect header check\0incorrect length check\0incorrect data check\0push_back\0invalid distance too far back\0Fri\0sh\0header crc mismatch\0March\0Aug\0unsigned long long\0unsigned long\0std::wstring\0basic_string\0std::string\0std::u16string\0std::u32string\0inf\x000123456789abcdef\0%.0Lf\0%Lf\0resize\0invalid window size\0true\0Tue\0false\0invalid block type\0June\0double\0shDegree\0bad_array_new_length was thrown in -fno-exceptions mode\0invalid literal/length code\0invalid distance code\0RawGaussianCloud\0unknown compression method\0[SPZ ERROR] deserializePackedGaussians: header not found\0%0*lld\0%*lld\0+%lld\0%+.4ld\0void\0locale not supported\0antialiased\0Wed\0%Y-%m-%d\0[SPZ ERROR] deserializePackedGaussians: Too many points: %d\0[SPZ ERROR] deserializePackedGaussians: Unsupported SH degree: %d\0[SPZ ERROR] deserializePackedGaussians: version not supported: %d\0Dec\0./spz/src/cc/load-spz.cc\0Feb\0%a %b %d %H:%M:%S %Y\0POSIX\0VectorUInt8T\0%H:%M:%S\0NAN\0PM\0AM\0%H:%M\0LC_ALL\0ASCII\0LANG\0RUF\0LUF\0INF\0RDF\0LDF\0UNSPECIFIED\0C\0RUB\0LUB\0RDB\0LDB\0catching a class without an object?\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\0emscripten::memory_view\x000123456789\0C.UTF-8\x0001234567\0VectorFloat32\x0001\x001.3.1\0.\0-\0(packed.alphas.size()) == (numPoints)\0(null)\0(packed.colors.size()) == (numPoints * 3)\0(packed.scales.size()) == (numPoints * 3)\0(packed.sh.size()) == (numPoints * shDim * 3)\0(packed.rotations.size()) == (numPoints * (packed.usesQuaternionSmallestThree ? 4 : 3))\0(packed.positions.size()) == (numPoints * 3 * (usesFloat16 ? 2 : 3))\0%\0length_error was thrown in -fno-exceptions mode with message "%s"\0[SPZ: ERROR] Unsupported SH degree: %d +\0 \0\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0\0\x80?\0A\xA0 \v\xB60\0\0\xF0c\0\0\xF0c\0\0P\0\0\xA4d\0\x008\0\0N3spz13GaussianCloudE\0\0\0\xA4d\0\0X\0\0N3spz13UnpackOptionsE\0ppiip\0\xF0c\0\0|\0\0\xA4d\0\0\x84\0\0NSt3__26vectorIfNS_9allocatorIfEEEE\0ipp\0(e\0\0\xD4\0\0\0\0\0\0\0\0\0\xEC\0\0\0\0\0\x008\0\0\0\0\0\0h\0\0\0\0\0\0NSt3__28optionalIfEE\0\0\0\0\xCCd\0\0\xF8\0\0(\0\0NSt3__227__optional_move_assign_baseIfLb1EEE\0\0\0\0\xCCd\0\x004\0\0d\0\0NSt3__227__optional_copy_assign_baseIfLb1EEE\0\0\0\0\xCCd\0\0p\0\0\x98\0\0NSt3__220__optional_move_baseIfLb1EEE\0\0\0\xCCd\0\0\xA4\0\0\xCC\0\0NSt3__220__optional_copy_baseIfLb1EEE\0\0\0\xCCd\0\0\xD8\0\0\0\0NSt3__223__optional_storage_baseIfLb0EEE\0\0\0\0\xA4d\0\0\f\0\0NSt3__224__optional_destruct_baseIfLb1EEE\0\0\0\xA4d\0\0@\0\0NSt3__218__sfinae_ctor_baseILb1ELb1EEE\0\0\xA4d\0\0p\0\0NSt3__220__sfinae_assign_baseILb1ELb1EEE\0\0\0\0\x84e\0\0\xAC\0\0\0\0\0\0|\0\0PNSt3__26vectorIfNS_9allocatorIfEEEE\0\0\0\0\x84e\0\0\xE4\0\0\0\0\0|\0\0PKNSt3__26vectorIfNS_9allocatorIfEEEE\0pp\0v\0vp\0\0\0\x9C\0\0pp\0\0\x98c\0\0|\0\x008d\0\0vppf\0\0\0\0\x98c\0\0|\0\0\xFCc\0\x008d\0\0vppif\0\0\0\xFCc\0\0|\0\0ipp\0\\\0\x008d\0\0\xA4d\0\0d\0\0N10emscripten3valE\0\0\xAC\0\0|\0\0\xFCc\0\0pppi\0\0\0\0\0\0\0\0\xA8c\0\0|\0\0\xFCc\0\x008d\0\0ippif\0\0\0(e\0\0\xD0\0\0\0\0\0\0\0\0\0\xE8\0\0\0\0\0\x008\0\0\0\0\0\0h\0\0\0\0\0\0NSt3__28optionalIhEE\0\0\0\0\xCCd\0\0\xF4\0\0$\0\0NSt3__227__optional_move_assign_baseIhLb1EEE\0\0\0\0\xCCd\0\x000\0\0\`\0\0NSt3__227__optional_copy_assign_baseIhLb1EEE\0\0\0\0\xCCd\0\0l\0\0\x94\0\0NSt3__220__optional_move_baseIhLb1EEE\0\0\0\xCCd\0\0\xA0\0\0\xC8\0\0NSt3__220__optional_copy_baseIhLb1EEE\0\0\0\xCCd\0\0\xD4\0\0\0\0\0NSt3__223__optional_storage_baseIhLb0EEE\0\0\0\0\xA4d\0\0\b\0\0NSt3__224__optional_destruct_baseIhLb1EEE\0\0\0\xA4d\0\0<\0\0NSt3__26vectorIhNS_9allocatorIhEEEE\0\x84e\0\0p\0\0\0\0\0\x004\0\0PNSt3__26vectorIhNS_9allocatorIhEEEE\0\0\0\0\x84e\0\0\xA8\0\0\0\0\x004\0\0PKNSt3__26vectorIhNS_9allocatorIhEEEE\0pp\0vp\0\`\0\0pp\0\0\x98c\0\x004\0\0\xC0c\0\0vppi\0\0\0\0\x98c\0\x004\0\0\xFCc\0\0\xC0c\0\0vppii\0\0\0\xFCc\0\x004\0\0ipp\0\\\0\0\xC0c\0\0\xA8\0\x004\0\0\xFCc\0\0pppi\0\0\0\0\xA8c\0\x004\0\0\xFCc\0\0\xC0c\0\0ippii\0p\0vp\0ipp\0vppi\0ipp\0vppi\0ppp\0vppp\0\0\0Xd\0\0p\0\0N3spz16CoordinateSystemE\0p\0vp\0ipp\0vppi\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0\0\xA4d\0\0\xB0\0\0NSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE\0\0\xA4d\0\0\xF8\0\0NSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE\0\0\xA4d\0\0@\0\0NSt3__212basic_stringIDsNS_11char_traitsIDsEENS_9allocatorIDsEEEE\0\0\0\xA4d\0\0\x8C\0\0NSt3__212basic_stringIDiNS_11char_traitsIDiEENS_9allocatorIDiEEEE\0\0\0\xA4d\0\0\xD8\0\0N10emscripten11memory_viewIcEE\0\0\xA4d\0\0\0\0\0N10emscripten11memory_viewIaEE\0\0\xA4d\0\0(\0\0N10emscripten11memory_viewIhEE\0\0\xA4d\0\0P\0\0N10emscripten11memory_viewIsEE\0\0\xA4d\0\0x\0\0N10emscripten11memory_viewItEE\0\0\xA4d\0\0\xA0\0\0N10emscripten11memory_viewIiEE\0\0\xA4d\0\0\xC8\0\0N10emscripten11memory_viewIjEE\0\0\xA4d\0\0\xF0\0\0N10emscripten11memory_viewIlEE\0\0\xA4d\0\0\0\0N10emscripten11memory_viewImEE\0\0\xA4d\0\0@\0\0N10emscripten11memory_viewIxEE\0\0\xA4d\0\0h\0\0N10emscripten11memory_viewIyEE\0\0\xA4d\0\0\x90\0\0N10emscripten11memory_viewIfEE\0\0\xA4d\0\0\xB8\0\0N10emscripten11memory_viewIdEE\0A\xE43\v\xA1(\x960\x07w,a\xEE\xBAQ \x99\xC4m\x07\x8F\xF4jp5\xA5c\xE9\xA3\x95d\x9E2\x88\xDB\xA4\xB8\xDCy\xE9\xD5\xE0\x88\xD9\xD2\x97+L\xB6 \xBD|\xB1~\x07-\xB8\xE7\x91\xBF\x90d\xB7\xF2 \xB0jHq\xB9\xF3\xDEA\xBE\x84}\xD4\xDA\xEB\xE4\xDDmQ\xB5\xD4\xF4\xC7\x85\xD3\x83V\x98l\xC0\xA8kdz\xF9b\xFD\xEC\xC9e\x8AO\\\xD9lcc=\xFA\xF5\r\b\x8D\xC8 n;^iL\xE4A\`\xD5rqg\xA2\xD1\xE4jm\r\xA8Zjz\v\xCF\xE4\x9D\xFF \x93'\xAE\0 +\xB1\x9E\x07}D\x93\xF0\xD2\xA3\b\x87h\xF2\xFE\xC2i]Wb\xF7\xCBge\x80q6l\xE7knv\x1B\xD4\xFE\xE0+\xD3\x89Zz\xDA\xCCJ\xDDgo\xDF\xB9\xF9\xF9\xEF\xBE\x8EC\xBE\xB7\xD5\x8E\xB0\`\xE8\xA3\xD6\xD6~\x93\xD1\xA1\xC4\xC2\xD88R\xF2\xDFO\xF1g\xBB\xD1gW\xBC\xA6\xDD\xB5?K6\xB2H\xDA+\r\xD8L\x1B +\xAF\xF6J6\`zA\xC3\xEF\`\xDFU\xDFg\xA8\xEF\x8En1y\xBEiF\x8C\xB3a\xCB\x83f\xBC\xA0\xD2o%6\xE2hR\x95w\f\xCCG\v\xBB\xB9"/&U\xBE;\xBA\xC5(\v\xBD\xB2\x92Z\xB4+j\xB3\\\xA7\xFF\xD7\xC21\xCF\xD0\xB5\x8B\x9E\xD9,\xAE\xDE[\xB0\xC2d\x9B&\xF2c\xEC\x9C\xA3ju +\x93m\xA9 \x9C?6\xEB\x85g\x07rW\0\x82J\xBF\x95z\xB8\xE2\xAE+\xB1{8\x1B\xB6\f\x9B\x8E\xD2\x92\r\xBE\xD5\xE5\xB7\xEF\xDC|!\xDF\xDB\v\xD4\xD2\xD3\x86B\xE2\xD4\xF1\xF8\xB3\xDDhn\x83\xDA\xCD\xBE\x81[&\xB9\xF6\xE1w\xB0owG\xB7\xE6Z\b\x88pj\xFF\xCA;f\\\v\xFF\x9Ee\x8Fi\xAEb\xF8\xD3\xFFkaE\xCFlx\xE2 +\xA0\xEE\xD2\r\xD7T\x83N\xC2\xB39a&g\xA7\xF7\`\xD0MGiI\xDBwn>Jj\xD1\xAE\xDCZ\xD6\xD9f\v\xDF@\xF0;\xD87S\xAE\xBC\xA9\xC5\x9E\xBB\xDE\x7F\xCF\xB2G\xE9\xFF\xB50\xF2\xBD\xBD\x8A\xC2\xBA\xCA0\x93\xB3S\xA6\xA3\xB4$6\xD0\xBA\x93\xD7\xCD)W\xDET\xBFg\xD9#.zf\xB3\xB8Ja\xC4\x1Bh]\x94+o*7\xBE\v\xB4\xA1\x8E\f\xC3\x1B\xDFZ\x8D\xEF-\0\0\0\0F;ge\x8Cv\xCE\xCA\xCAM\xA9\xAFY\xEB\xEDN\xD0\x8A+\xD5\x9D#\x84\x93\xA6D\xE1\xB2\xD6\xDB\x9D\xF4\xED\xBC\xF8>\xA0Wx\x9Br2\xEB=6\xD3\xADQ\xB6gK\xF8!p\x9F|%\xAB\xC6\xE0c\x90\xA1\x85\xA9\xDD\b*\xEF\xE6oO|@+\xAE:{L\xCB\xF06\xE5d\xB6\r\x82\x97}}\xD1Fz\x1B\v\xD3\xB7]0\xB4\xD2\xCE\x96\xF03\x88\xAD\x97VB\xE0>\xF9\xDBY\x9C\vP\xFCMk\x9B\x7F\x87&2\xD0\xC1U\xB5R\xBBT\x80v1\xDE\xCD\xDF\x9E\x98\xF6\xB8\xFB\xB9\x86'\x87\xFF\xBD@\xE25\xF0\xE9Ms\xCB\x8E(\xE0m\xCA\xC9\xA6V\xAD\xACl\x1B* cf.\xFB:\xFAh\xC0]\x9F\xA2\x8D\xF40\xE4\xB6\x93Uw\xD7\xB41+\xB0\xD1\xFBf~\xBD]~\x1B\x9C-\xE1g\xDA\x86[/\xADV\`H\xC8\xC5\xC6\f)\x83\xFDkLI\xB0\xC2\xE3\x8B\xA5\x86\xA0\xF85P\x9B\x9FP\x9A\xD66\xFF\xDC\xEDQ\x9AOK{ pr\xC3=\xDB\xB1\x85\xBC\xD4\xA4v#\xA8\xE2MD\xCD(\0\xEDbn;\x8A\x07\xFD\x9D\xCE\xE6\xBB\xA6\xA9\x83q\xEB\0,7\xD0gI3\v>\xD5u0Y\xB0\xBF}\xF0\xF9F\x97zj\xE0\xD3\x9B,\xDB\xB4\xFE\xE6\x96Q\xA0\xADz4\x81\xDD\xE5H\xC7\xE6\x82-\r\xAB+\x82K\x90L\xE7\xD86\b\x9E\rocT@\xC6\xCC{\xA1\xA9\xF0/[\xCBcJ\x91\x86\xCA\xE5\xD7\xBD\xAD\x80D\x1B\xE9a \x8E\xC8m'\xAB\x8EV@\xCE\xAF&\xDF\xB2\xE9\xB8\xD7#Pxekv\xF6\xCD2\xFC\xB0\xF6U\x99z\xBB\xFC6<\x80\x9BS8[\xC2\xCF~\`\xA5\xAA\xB4-\f\xF2k\`a\xB0/\x81'\x8BH\xE4\xED\xC6\xE1K\xAB\xFD\x86.\x8A\x8DR\xCC\xB6~7\xFB\xD7\x98@\xC0\xB0\xFD\xD3f\xF4\x95]\x93y_:\xD6+]\xB3,@\xF1kj{\x96\xA06?\xA1\xE6\rX\xC4u\xAB%3\x90{@\xF9\xDD\xD2\xEF\xBF\xE6\xB5\x8A\x9E\x96*\xF6\xD8\xADM\x93\xE0\xE4[P&\xDFkA\xBA\xD7&\xE8\x91\x8Fp\xB0m\f\xF6Vwi<\x1B\xDE\xC6z \xB9\xA3\xE9\x86\xFDB\xAF\xBD\x9A'e\xF03\x88#\xCBT\xED:\xE0 ^|\xDBn;\xB6\x96\xC7\x94\xF0\xAD\xA0\xF1c\v\xE4%0\x83u\xEF}*\xDA\xA9FM\xBF\x886\xD2\xC3\xCE\r\xB5\xA6@ B{{l\xD1\xDD?\x8D\x97\xE6X\xE8]\xAB\xF1G\x1B\x90\x96"K\xCF\xBEYp\xA8\xDB\x93=t\xD5fF\xA0"\xF0\0\x9BE\x95\xCA\xD6\xEC:\x8C\xED\x8B_\xAD\x9D#\xEB\xA6sF!\xEB\xDA\xE9g\xD0\xBD\x8C\xF4v\xF9m\xB2M\x9E\bx\x007\xA7>;P\xC21\xB0\xF5Dw\x8B\x92!\xBD\xC6;\x8E\xFB\xFD\\\xEBh[ +.\`\x7Fo\xE4-\xD6\xC0\xA2\xB1\xA5\x83f.\xD9\xC5]I\xBC\xE0I+\x87v\xDA\x8D\xC3\x97\x9C\xB6\xA4\xF2V\xFB\r]\xC0j8\x1B3\xA4R T\xC1\x98m\xFDn\xDEV\x9A\vM\xF0\xDE\xEA\v\xCB\xB9\x8F\xC1\x86 \x87\xBDwE\xA6\xCD\xE89\xE0\xF6\x8F\\*\xBB&\xF3l\x80A\x96\xFF&w\xB9bsP\xCB\xBD5k\xAC\xD8\0\0\0\0X\x80\xE2\xD7\xF1\xB4t\xA9\x86V\xA3\xE2\rh\xE9\xBA\x8D\x8A>\v\xDC\x9DK\x8B>J\x85\xA1 \xDD\x9DC\xDEt\x1B},\x9B\xF7\xAAg\xC9\xE0?\x90+7\x96}\x94\xCE\x96\x9FC +;BR\xBB\xA0\xC4\xFB=\xF6g\xA3\xBD\xB0\xE86*\xFA\xB0\xB6\xC8-0\x9E\x8EA\xB0|Y\x8F&\xE3\xD7\xA6\xCD~ Wn&\xA0\xB5\xB9m+\x8B\xF35\xABi$\x9C-?\x87\xC4\xAD\xDDPv\x84&L\xF6f\xF1\xE5p0R\xBD\xF0\xD2\x85\xF6{\xEC\xCF\xAE\xFB\x07}X\xBB_\xFD\xBAl\x91k%/\xC9\xEB\xC7\xF8\`m\x91[8\xEDs\x8CsfM\xC6+\xE6\xAF\x82\`\xF9\xB2\xDA\xE0\x1BeM\xC65F\xCD$\xE2\xEFKrA\xB7\xCB\x90\x96\xFC@\xAE\xDC\xA4\xC0L\v\rF\xA8U\xC6\xF8\x7F\x9BPg<\xC3\xD0\x85\xEBjV\xD3H2\xD61\x9Fy]\xD5!\xDD\xED\x88[\xBB\xA1\xD0\xDBYv(\xEC\bMpl\xEA\x9A\xD9\xEA\xBC9\x81j^\xEE\xCA\xE1\`\xA4\x92a\x82s;\xE7\xD4\xD0cg6\x07\xAD\xF1\xA9D\xF5qK\x93\\\xF70w\xFF\xE7O\xFC\xC1\xAD|#z\xBE\xFAu\xD9\xE6z\x97"\xD7J^zW\xA8\x89\xD3\xD1\xFE*\x8BQ\xFD\xC0\xDA"\xB7\x98Z\xC0\`1\xDC\x96\xC3i\\t\xA7\xCA\xEBW\xFFJ \x80V\xCC_#L\xBD\xF4E\xC7\x83\xBEGai\xB4\xC17\xCA\xECA\xD5<\x9A\x8Ckdn\xBC\xCD\x9C8\x95\xDA\xC8\xDE\x97\xE4\x82\x86U/\x91P\xF6w\xB2!\xB9\x87-b\xE1\x07\xCF\xB5H\x81\x99{\xC1[\x8AE\x8B +\xA7\\\xAA\x8C\xF1\xFF\xF2\f(6\xA1\xCExn!,\xAF\xC7\xA7z\f\x9F'\x98\xDB\xD4\xAC\xA6\x91\x8C,DF%\xAA\xE5}*\xF02\xB3\xBCoq\xEB<\x8D\xA6B\xBA\xDB:9\xD2Q\xB1\x07\x98 1\xE5O\xA0\xB7\xB3\xEC\xF87Q;P\xD8\x9A\bX\xF3M\xA1\xDE\xA5\xEE\xF9^G9\xB2\xD5ys\xEAU\x9B\xA4C\xD3\xCD\x07\x1BS/\xD0\xD5\xC5\xB0\x93\x8DERD$\xC3\xE7|C\xE607\xC8\xD8zoH:\xAD\xC6\xCEl\x9EN\x8E\xD9Z\xE3S\x89c\xB1^\xAB\xE5\xE7\xFD\xF3e*\xB8\xEE;\`\xE0n\xD9\xB7I\xE8\x8Fhm\xC3\xDF\xFE\xF2\x80\x87~W.\xF8F\xF4vx\xA4#=\xF3\x9Aiesx\xBE\xCC\xF5.\x94u\xCC\xCAD\xAE\x95\xBC.wk\xB5\xA8!\xC8\xED(\xC3\xA6\xA3\xFDU\xFE#\x82W\xA5I!%\xAB\xF6\xC1\xB34\xB5\x993\xD6b0\xB5\x80\xC1h5b#\xBE\\\\{>\xBE\x8B\xD2\xB8\xE8(\x8A8 +\xFFN\x95\xD7\xAF5x\xBF\x93c\xDB\xE7\x81\f\xAC\x98\xBFF\xF4]\x91]\x9E\v2\xE9\xE5\xCB\x88v\xA6\x93\b\x94q:\x8E\xC2\xD2b )\x85Oq\xFC\x98\xD8\x83\xAA;\x80H\xECx4\xD7 \xB4\xFB\0\x892\xAD\xA3\xD1\xB2Ot\x9A9q>\xC2\xB9\x93\xE9k?\xC5J3\xBF'\x9D\xFD)\xB8\xDE\xA5\xA9Z \f/\f\xAAT\xAF\xEE}$\xD07G\xA42\xE0\xEE"dC\xB6\xA2\x86\x94r[\xC4*\x8F\xB9\x83 \xEF\xB0\xDB\x89\rg\x903-\xC8\x82\xD1\xFAa\x87Y9\x84e\x8E\xF7\xFA\xCD\xAF\x92N\xB9^\x94\xACn\x92$M\x9Fp\xF3\xE4&P\xBC\x99\xC4\x87lB\x9D\xF14\xC2\x7F&\x9DD)\x85\xC5\xC4\xCBR\x8EO\xF5\xD6\xCF\xCF\x7FIAl'\xC9\xA3\xBB\xE9_<\xF8\xB1\xDF\xDE/Y\x88\x8C@\xD9j[\vRTS\xD2\xB6\xC6\xFAT\xE0e\xA2\xD4\xB2fy\xDF\xE2>\xF9=5\x97\x7Fk\x96\xCF\xFF\x89A\x84t\xB7\v\xDC\xF4U\xDCur\x7F-\xF2\xE1\xA8\xE3d~\xEB\xBB\xE4\x9C<b\xCA\x9FJ\xE2(HiY\xE9\xF4\xD5\xF0o\xA2v\xA8\xEF@\xA1\0\0\0\0\xE1\xB6R\xEF\x83k\xD4b\xDD\x86\xEA\xD7\xA8\v\xE7a\xFA\xE4\x85\xBC|d +.\xE1\f\xAEQ\xED\xF8\x8F\xC5\x85ns\xD7\xFD +y\xF9\xEB\xCF\xAB\xF3\x89-h\xA4\x7F\xF6\\\xA3.\xF9\xEA\xF1\xC1\x9B7w+z\x81%\xC4\x8B\v%\xFF=Y\xCA\x9D\xE0\xDF |V\x8D\xCF\xF2\xF29\xF5D\xA0\xD6\x97\x99&\x8D\x88QbP\xC8\xCB\xE7\xB1~\x99\b\xD3\xA3\xE22M\rVc\xEC\xB7\xA91\xD5t\xB7\xE94\xC2\xE5\\f\x9A\xF0\xBD\xD0\xC8\xDF\rN\xF5>\xBBZ\xB12\xFB\xBB\x07\`\xD9\xDA\xE6\xFE8l\xB4H\x94h\xC9\xA9":&\xCB\xFF\xBC\xCC*I\xEE#NC\xC0\xC2\xAF\xF5\x92-\xCD(\xC7,\x9EF(D:9\xDE\xA5\x8Ck1\xC7Q\xED\xDB&\xE7\xBF4B\xED\x91\xD5\xA3[\xC3:\xC1\x86E\xD0 0?\x81\xE6k\xAE\`P9A\x8D\xBF\xAB\xE3;\xEDD\x871\xC3\xA5f\x87\x91JZ\xA0\xE5\xECEO\x8DH:\xB9l\xFEhV#\xEE\xBC\xEF\x95\xBCS\x8B\x9F\x92\xB2j)\xC0]\b\xF4F\xB7\xE9BX\x99\xBA\xC8\x80x\f\x9Ao\xD1\x85\xFBgNj\x9Fm\`\x8B~\xDB2d\xB4\x8E\xFD\xB0\xE6a\x95\x99\x97t\xA2\xCBx\x7FM\x92\xF7\xC9}\x93\xC31\x9Crucs\xA8\xE5\x99\xF1\xB7v\xB1^-\xF3P\xE8\x7F25\xF9\xF6\xD3\x83\xAB\xB7\x89\x85\xF8V?\xD74\xE2Q\xFD\xD5T\xBD\xF0|\xE4\\F.\v>\x9B\xA8\xE1\xDF-\xFA\xBB'\xD4\xEFZ\x91\x86\x008L\0\xEA\xD9\xFAR\xA9\x8E\xDDH\xB4\xDC2*iZ\xD8\xCB\xDF\b7\xAF\xD5&\xD6Nct9,\xBE\xF2\xD3\xCD\b\xA0<\xA5\xAC\xDF\xCAD\x8D%&\xC7\v\xCF\xC7qY \xA3{w\xC1B\xCD%. \xA3\xC4\xC1\xA6\xF1+\xE1\x96\xE6\0 \xB4\xFBb\xFD2\x83K\`\xFE\xE7AN\xF7\xF0d*\x9A\x85\x9C\xC8\xF5\xED8\xB7\f\x8E\xE5\xECnSc\x8F\xE51\xE9\xEB\xEF\b +YM\xE7h\x84\xCB\r\x892\x99\xE2\xF9\xCAE:|\xD5z\xA1\x91?\x9B\xC3\xD0\xFF\xED1\xAB\xBF\xDE|v94\x9D\xC0k\xDB\xF5d-\xD2F\xC2v\xC0(\x97\xB9\x92\xC7\xF3\xB3\xBC&\xEE\xC9p\xD8h#\x91n:\xCC\xD1.\xA0I0\x98\xF2\xA6REtL\xB3\xF3&\xA3\xD7\xF9\bB6OZ\xADT\x92\xDCG\xB5$\x8E\xA8\xDD\x80\xF1^<6\xA3\xB1^\xEB%[\xBF]w\xB4\xDBWYU:\xE1\v\xBAX<\x8DP\xB9\x8A\xDF\xBF\xC9rg(\xC4Q\x88J\xD7b\xAB\xAF\x85\x8D\xCF\xA5\xABl.\xF9\x83L\xCE\x7Fi\xADx-\x86\xC5\xDCRp$j\0\x9FF\xB7\x86u\xA7\xD4\x9A\xC3\v\xFA{"\xBD\xA8\x94@\`.~\xA1\xD6|\x91\0\0\0\0C\xCB\xA6\x87\xC7\x90<\xD4\x84[\x9AS\xCF'\bs\x8C\xEC\xAE\xF4\b\xB74\xA7K|\x92 \x9EO\xE6\xDD\x84\xB6aY\xDF,2\x8A\xB5Qh\x95\xA3\xBE\x96\xF8$A\xD53\x82\xC6}\x99Q>R\xF7\x90\xBA m\xC3\xF9\xC2\xCBD\xB2\xBEYd\xF1u\xFF\xE3u.e\xB06\xE5\xC37\xE3\xD6A\xF1\xA0\xE7v$F}%g\x8D\xDB\xA2,\xF1I\x82o:\xEF\xEBauV\xA8\xAA\xD3\xD1\xFA2\xA3.\xB9\xF9\xA9=\xA2\x9F\xFA~i9}5\xAB]v\xDE\r\xDA\xF2\x85\x97\x89\xB1N1d}\xB3\xC8'\xB6O\xA3\xED\x8F\xE0&)\x9B\xABZ\xBB\xBB\xE8\x91\xDC;BN.x\x89\xE8\xA9\xFC\xD2r\xFA\xBF\xD4}j*V\xBB)\xE1\xF0<\xAD\xBAjo\xEEq\xCC\xE8\xA5\r^\xC8\xE6\xC6\xF8Ob\x9Db!V\xC4\x9B\x89\xFCJ\xCA7\xB1\xCDNl+\x9E\r\xA7\x8DF\xDB9\xB9\xBE\x81K#\xED\xC2\x80\x85j\xB3\x07\xACTx\xA1+\xD0#;x\x93\xE8\x9D\xFF\xD8\x94\xDF\x9B_\xA9X3\v\\\xCF\x95\x8CW\xE5sM\x9CC\xF4\xC9\xC7\xD9\xA7\x8A\f\x7F \xC1p\xED\0\x82\xBBK\x87\xE0\xD1\xD4E+wS\x90\xF5\x95\xD3\xD3SW\x88\xC9ACo\xC6_?\xFD\xE6\xF4[a\x98\xAF\xC12\xDBdg\xB5s\xCE\xB4d0\xE3\xB4^\x88\xB0\xF7\x95.7\xBC\xE9\xBC\xFF"\x90{y\x80\xC38\xB2&D\xED\x81\xA4\x82\xAEJ*\x98Vi\xDA>\xD1"\xA6\xAC\xF1am +v\xE56\x90%\xA6\xFD6\xA2\xE8\xCB\x8C\xBA\xAB\0*=/[\xB0nl\x90\xE9'\xEC\x84\xC9d'"N\xE0|\xB8\xA3\xB7\x9Av\x84\x9C\\5O:\xDB\xB1\xA0\x88\xF2\xDF\xB9\xA3\x94/\xFAh2\xA8~3\xA8\xFB=\xF8|\x95R\xDD\xAD\xD6\x99{*R\xC2\xE1y G\xFEZu\xD5\xDE\xBEsY\x9D\xE5\xE9 +\xDE.O\x8D\v\xCDKH\xD6k\xCC\xCC\x8D\xF1\x9F\x8FFW\xC4:\xC58\x87\xF1c\xBF\xAA\xF9\xEC@a_k\xF9/\x94Q2\x89\xD5i@\x96\xA2\xB5\xC7\xDD\xDE'\xE7\x9E\x81\`N\x1B3Y\x85\xBD\xB4\x8C\xB6?r\xCF}\x99\xF5K&\xA6\b\xED\xA5!C\x917\0Z\x91\x86\x84\v\xD5\xC7\xCA\xADRo\`~\x83,\xAB\xD8\xA8\xF0BW\xEB;\xE4\xD0\xA0Gv\xF0\xE3\x8C\xD0wg\xD7J$$\xEC\xA3\xF1/ne\xB2\xE4\xC8\xE26\xBFR\xB1ut\xF46>\bf}\xC3\xC0\x91\xF9\x98Z\xC2\xBAS\xFCE\xAE\xCA\xE7_el\`\xDB>\xF63\x98\xF5P\xB4\xD3\x89\xC2\x94\x90Bd\xFE@W\xD2X\xC7\x82\xE1\xDA\xC1*|\x86Eq\xE6\xD5\xBA@RM\xC6\xD2r\rt\xF5\x8AV\xEE\xA6\xC9\x9DH!a7\x9B\xF0"\xFC=w\xA6\xA7\xA7$\xE5l\xA3\xAE\x93\x83\xED\xDB5i\x80\xAFW*K \xD0\xFFx\x8B\xBC\xB3-\x918\xE8\xB7\xC2{#E0_\x83es\x94%\xE2\xF7\xCF\xBF\xB1\xB46\xE6\x9Ci\xC9\xA5W\xCFN!\fUb\xC7\xF3\x9A)\xBBa\xBAjp\xC7=\xEE+]n\xAD\xE0\xFB\xE9x\xD3y/;\xDF\xA8\xBFCE\xFB\xFC\x88\xE3|\xB7\xF4q\\\xF4?\xD7\xDBpdM\x883\xAF\xEB\x9B8\xDE\xD8\xCE\x9EY\\\x95 +^\xA2\x8DT"0\xAD\xE9\x96*\x93\xB2\fy\xD0y\xAA\xFEJ(8F\x81\x8E\xBF\xC2\xDA\xEC\x81\xB2k\xCAm K\x89\xA6\x86\xCC\r\xFD\x9FN6\xBA\0\0\0\0\0\b\0\x07\0 \0\0 +\0\0\v\0\0\f\0\0\r\0\0\0\0\0A\x90\xDC\0\v\xA2\`\x07\0\0\0\bP\0\0\b\0\bs\0\x07\0\0\bp\0\0\b0\0\0 \xC0\0\x07 +\0\0\b\`\0\0\b \0\0 \xA0\0\0\b\0\0\0\b\x80\0\0\b@\0\0 \xE0\0\x07\0\0\bX\0\0\b\0\0 \x90\0\x07;\0\0\bx\0\0\b8\0\0 \xD0\0\x07\0\0\bh\0\0\b(\0\0 \xB0\0\0\b\b\0\0\b\x88\0\0\bH\0\0 \xF0\0\x07\0\0\bT\0\0\b\0\b\xE3\0\x07+\0\0\bt\0\0\b4\0\0 \xC8\0\x07\r\0\0\bd\0\0\b$\0\0 \xA8\0\0\b\0\0\b\x84\0\0\bD\0\0 \xE8\0\x07\b\0\0\b\\\0\0\b\0\0 \x98\0\x07S\0\0\b|\0\0\b<\0\0 \xD8\0\x07\0\0\bl\0\0\b,\0\0 \xB8\0\0\b\f\0\0\b\x8C\0\0\bL\0\0 \xF8\0\x07\0\0\bR\0\0\b\0\b\xA3\0\x07#\0\0\br\0\0\b2\0\0 \xC4\0\x07\v\0\0\bb\0\0\b"\0\0 \xA4\0\0\b\0\0\b\x82\0\0\bB\0\0 \xE4\0\x07\x07\0\0\bZ\0\0\b\0\0 \x94\0\x07C\0\0\bz\0\0\b:\0\0 \xD4\0\x07\0\0\bj\0\0\b*\0\0 \xB4\0\0\b +\0\0\b\x8A\0\0\bJ\0\0 \xF4\0\x07\0\0\bV\0\0\b\0@\b\0\0\x073\0\0\bv\0\0\b6\0\0 \xCC\0\x07\0\0\bf\0\0\b&\0\0 \xAC\0\0\b\0\0\b\x86\0\0\bF\0\0 \xEC\0\x07 \0\0\b^\0\0\b\0\0 \x9C\0\x07c\0\0\b~\0\0\b>\0\0 \xDC\0\x07\x1B\0\0\bn\0\0\b.\0\0 \xBC\0\0\b\0\0\b\x8E\0\0\bN\0\0 \xFC\0\`\x07\0\0\0\bQ\0\0\b\0\b\x83\0\x07\0\0\bq\0\0\b1\0\0 \xC2\0\x07 +\0\0\ba\0\0\b!\0\0 \xA2\0\0\b\0\0\b\x81\0\0\bA\0\0 \xE2\0\x07\0\0\bY\0\0\b\0\0 \x92\0\x07;\0\0\by\0\0\b9\0\0 \xD2\0\x07\0\0\bi\0\0\b)\0\0 \xB2\0\0\b \0\0\b\x89\0\0\bI\0\0 \xF2\0\x07\0\0\bU\0\0\b\0\b\x07+\0\0\bu\0\0\b5\0\0 \xCA\0\x07\r\0\0\be\0\0\b%\0\0 \xAA\0\0\b\0\0\b\x85\0\0\bE\0\0 \xEA\0\x07\b\0\0\b]\0\0\b\0\0 \x9A\0\x07S\0\0\b}\0\0\b=\0\0 \xDA\0\x07\0\0\bm\0\0\b-\0\0 \xBA\0\0\b\r\0\0\b\x8D\0\0\bM\0\0 \xFA\0\x07\0\0\bS\0\0\b\0\b\xC3\0\x07#\0\0\bs\0\0\b3\0\0 \xC6\0\x07\v\0\0\bc\0\0\b#\0\0 \xA6\0\0\b\0\0\b\x83\0\0\bC\0\0 \xE6\0\x07\x07\0\0\b[\0\0\b\x1B\0\0 \x96\0\x07C\0\0\b{\0\0\b;\0\0 \xD6\0\x07\0\0\bk\0\0\b+\0\0 \xB6\0\0\b\v\0\0\b\x8B\0\0\bK\0\0 \xF6\0\x07\0\0\bW\0\0\b\0@\b\0\0\x073\0\0\bw\0\0\b7\0\0 \xCE\0\x07\0\0\bg\0\0\b'\0\0 \xAE\0\0\b\x07\0\0\b\x87\0\0\bG\0\0 \xEE\0\x07 \0\0\b_\0\0\b\0\0 \x9E\0\x07c\0\0\b\x7F\0\0\b?\0\0 \xDE\0\x07\x1B\0\0\bo\0\0\b/\0\0 \xBE\0\0\b\0\0\b\x8F\0\0\bO\0\0 \xFE\0\`\x07\0\0\0\bP\0\0\b\0\bs\0\x07\0\0\bp\0\0\b0\0\0 \xC1\0\x07 +\0\0\b\`\0\0\b \0\0 \xA1\0\0\b\0\0\0\b\x80\0\0\b@\0\0 \xE1\0\x07\0\0\bX\0\0\b\0\0 \x91\0\x07;\0\0\bx\0\0\b8\0\0 \xD1\0\x07\0\0\bh\0\0\b(\0\0 \xB1\0\0\b\b\0\0\b\x88\0\0\bH\0\0 \xF1\0\x07\0\0\bT\0\0\b\0\b\xE3\0\x07+\0\0\bt\0\0\b4\0\0 \xC9\0\x07\r\0\0\bd\0\0\b$\0\0 \xA9\0\0\b\0\0\b\x84\0\0\bD\0\0 \xE9\0\x07\b\0\0\b\\\0\0\b\0\0 \x99\0\x07S\0\0\b|\0\0\b<\0\0 \xD9\0\x07\0\0\bl\0\0\b,\0\0 \xB9\0\0\b\f\0\0\b\x8C\0\0\bL\0\0 \xF9\0\x07\0\0\bR\0\0\b\0\b\xA3\0\x07#\0\0\br\0\0\b2\0\0 \xC5\0\x07\v\0\0\bb\0\0\b"\0\0 \xA5\0\0\b\0\0\b\x82\0\0\bB\0\0 \xE5\0\x07\x07\0\0\bZ\0\0\b\0\0 \x95\0\x07C\0\0\bz\0\0\b:\0\0 \xD5\0\x07\0\0\bj\0\0\b*\0\0 \xB5\0\0\b +\0\0\b\x8A\0\0\bJ\0\0 \xF5\0\x07\0\0\bV\0\0\b\0@\b\0\0\x073\0\0\bv\0\0\b6\0\0 \xCD\0\x07\0\0\bf\0\0\b&\0\0 \xAD\0\0\b\0\0\b\x86\0\0\bF\0\0 \xED\0\x07 \0\0\b^\0\0\b\0\0 \x9D\0\x07c\0\0\b~\0\0\b>\0\0 \xDD\0\x07\x1B\0\0\bn\0\0\b.\0\0 \xBD\0\0\b\0\0\b\x8E\0\0\bN\0\0 \xFD\0\`\x07\0\0\0\bQ\0\0\b\0\b\x83\0\x07\0\0\bq\0\0\b1\0\0 \xC3\0\x07 +\0\0\ba\0\0\b!\0\0 \xA3\0\0\b\0\0\b\x81\0\0\bA\0\0 \xE3\0\x07\0\0\bY\0\0\b\0\0 \x93\0\x07;\0\0\by\0\0\b9\0\0 \xD3\0\x07\0\0\bi\0\0\b)\0\0 \xB3\0\0\b \0\0\b\x89\0\0\bI\0\0 \xF3\0\x07\0\0\bU\0\0\b\0\b\x07+\0\0\bu\0\0\b5\0\0 \xCB\0\x07\r\0\0\be\0\0\b%\0\0 \xAB\0\0\b\0\0\b\x85\0\0\bE\0\0 \xEB\0\x07\b\0\0\b]\0\0\b\0\0 \x9B\0\x07S\0\0\b}\0\0\b=\0\0 \xDB\0\x07\0\0\bm\0\0\b-\0\0 \xBB\0\0\b\r\0\0\b\x8D\0\0\bM\0\0 \xFB\0\x07\0\0\bS\0\0\b\0\b\xC3\0\x07#\0\0\bs\0\0\b3\0\0 \xC7\0\x07\v\0\0\bc\0\0\b#\0\0 \xA7\0\0\b\0\0\b\x83\0\0\bC\0\0 \xE7\0\x07\x07\0\0\b[\0\0\b\x1B\0\0 \x97\0\x07C\0\0\b{\0\0\b;\0\0 \xD7\0\x07\0\0\bk\0\0\b+\0\0 \xB7\0\0\b\v\0\0\b\x8B\0\0\bK\0\0 \xF7\0\x07\0\0\bW\0\0\b\0@\b\0\0\x073\0\0\bw\0\0\b7\0\0 \xCF\0\x07\0\0\bg\0\0\b'\0\0 \xAF\0\0\b\x07\0\0\b\x87\0\0\bG\0\0 \xEF\0\x07 \0\0\b_\0\0\b\0\0 \x9F\0\x07c\0\0\b\x7F\0\0\b?\0\0 \xDF\0\x07\x1B\0\0\bo\0\0\b/\0\0 \xBF\0\0\b\0\0\b\x8F\0\0\bO\0\0 \xFF\0\0\0\x1B\0A\0@\0!\0  \0\b\x81\0@\0\0\0\x81\0\x1B\x07\0a\0\`\01\00\r\0\f\xC1\0@\0\0\0\0\0\0\x07\0\b\0 \0 +\0\v\0\r\0\0\0\0\0\x1B\0\0#\0+\x003\0;\0C\0S\0c\0s\0\x83\0\xA3\0\xC3\0\xE3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xCB\0M\0\0\0\0\0\0\0\0\x07\0 \0\r\0\0\0!\x001\0A\0a\0\x81\0\xC1\0\x81\b\f 0@\`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1B\0\x1B\0\0\0\0\0@\0@\0\xBE\xF3\xF8y\xECa\xF6?\xDE\xAA\x8C\x80\xF7{\xD5\xBF=\x88\xAFJ\xEDq\xF5?\xDBm\xC0\xA7\xF0\xBE\xD2\xBF\xB0\xF0\xF09\x95\xF4?g:Q\x7F\xAE\xD0\xBF\x85\xB8\xB0\x95\xC9\xF3?\xE9$\x82\xA6\xD81\xCB\xBF\xA5d\x88\f\r\xF3?Xw\xC0 +OW\xC6\xBF\xA0\x8E\v{"^\xF2?\0\x81\x9C\xC7+\xAA\xC1\xBF?4JJ\xBB\xF1?^\x8C\xCEvN\xBA\xBF\xBA\xE5\x8A\xF0X#\xF1?\xCCaZ<\x97\xB1\xBF\xA7\0\x99A?\x95\xF0?\f\xE18\xF4R\xA2\xBF\0\0\0\0\0\0\xF0?\0\0\0\0\0\0\0\0\xACG\x9A\xFD\x8C\`\xEE?\x84Y\xF2]\xAA\xA5\xAA?\xA0j\xB3\xA4\xEC?\xB4.6\xAAS^\xBC?\xE6\xFCjW6 \xEB?\b\xDB w\xE5&\xC5?-\xAA\xA1c\xD1\xC2\xE9?pG"\r\x86\xC2\xCB?\xEDAx\xE6\x86\xE8?\xE1~\xA0\xC8\x8B\xD1?bHS\xF5\xDCg\xE7? \xEE\xB6W0\xD4?\xEF9\xFA\xFEB.\xE6?4\x83\xB8H\xA3\xD0\xBFj\v\xE0\v[W\xD5?#A +\xF2\xFE\xFF\xDF\xBF\xB8e\0A\xC0\xF1\0\vA\0\v\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\v\0\0\0\0\0\0\0\0\0 + + +\x07\0\0 \v\0\0 \v\0\0\v\0\0\0\0\0A\x91\xF2\0\v!\0\0\0\0\0\0\0\0\0\v\r\0\r\0\0\0 \0\0\0 \0\0\0\0A\xCB\xF2\0\v\f\0A\xD7\xF2\0\v\0\0\0\0\0\0\0\0 \f\0\0\0\0\0\f\0\0\f\0A\x85\xF3\0\v\0A\x91\xF3\0\v\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0A\xBF\xF3\0\v\0A\xCB\xF3\0\v\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0A\x82\xF4\0\v\0\0\0\0\0\0\0\0\0 \0A\xB3\xF4\0\v\0A\xBF\xF4\0\v\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0A\xED\xF4\0\v\0A\xF9\xF4\0\v\xB8\x07\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\x000123456789ABCDEF\0\0\0\0X;\0\x006\0\0\x007\0\0\x008\0\0\x009\0\0\0:\0\0\0;\0\0\0<\0\0\0=\0\0\0>\0\0\0?\0\0\0@\0\0\0A\0\0\0B\0\0\0C\0\0\0\0\0\0\0t<\0\0D\0\0\0E\0\0\x008\0\0\x009\0\0\0F\0\0\0G\0\0\0<\0\0\0=\0\0\0>\0\0\0H\0\0\0@\0\0\0I\0\0\0B\0\0\0J\0\0\0\xCCd\0\0,;\0\0>\0\0NSt3__29basic_iosIcNS_11char_traitsIcEEEE\0\0\0\xA4d\0\0\`;\0\0NSt3__215basic_streambufIcNS_11char_traitsIcEEEE\0\0\0\0(e\0\0\xAC;\0\0\0\0\0\0\0\0\0 ;\0\0\xF4\xFF\xFFNSt3__213basic_istreamIcNS_11char_traitsIcEEEE\0\0(e\0\0\xF4;\0\0\0\0\0\0\0\0\0 ;\0\0\xF4\xFF\xFFNSt3__213basic_ostreamIcNS_11char_traitsIcEEEE\0\0(e\0\0D<\0\0\0\0\0\0\0\0\x94;\0\0\0\0\0\xDC;\0\0\b\0\0NSt3__214basic_iostreamIcNS_11char_traitsIcEEEE\0\xCCd\0\0\x80<\0\0X;\0\0NSt3__215basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE\0\0\0@\0\0\0\0\0\0\0\xB4=\0\0K\0\0\0L\0\0\x008\0\0\0\xF8\xFF\xFF\xFF\xB4=\0\0M\0\0\0N\0\0\0\xC0\xFF\xFF\xFF\xC0\xFF\xFF\xFF\xB4=\0\0O\0\0\0P\0\0\0\xD0<\0\x004=\0\0p=\0\0\x84=\0\0\x98=\0\0\xAC=\0\0\\=\0\0H=\0\0\xF8<\0\0\xE4<\0\0@\0\0\0\0\0\0\0$<\0\0Q\0\0\0R\0\0\x008\0\0\0\xF8\xFF\xFF\xFF$<\0\0S\0\0\0T\0\0\0\xC0\xFF\xFF\xFF\xC0\xFF\xFF\xFF$<\0\0U\0\0\0V\0\0\0@\0\0\0\0\0\0\0\x94;\0\0W\0\0\0X\0\0\0\xC0\xFF\xFF\xFF\xC0\xFF\xFF\xFF\x94;\0\0Y\0\0\0Z\0\0\x008\0\0\0\0\0\0\0\xDC;\0\0[\0\0\0\\\0\0\0\xC8\xFF\xFF\xFF\xC8\xFF\xFF\xFF\xDC;\0\0]\0\0\0^\0\0\0\xCCd\0\0\xC0=\0\0$<\0\0NSt3__218basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE\0\0\0\0\0\0\0\0>\0\0_\0\0\0\`\0\0\0\xA4d\0\0 >\0\0NSt3__28ios_baseE\0A\xC0\xFC\0\v#\xDE\x95\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF@>\0\0\0\0\0C.UTF-8\0A\x90\xFD\0\vT>\0A\xB0\xFD\0\vGLC_CTYPE\0\0\0\0LC_NUMERIC\0\0LC_TIME\0\0\0\0\0LC_COLLATE\0\0LC_MONETARY\0LC_MESSAGES\0A\x84\xFE\0\v-\x80\xDE(\0\x80\xC8M\0\0\xA7v\0\x004\x9E\0\x80\xC7\0\x80\x9F\xEE\0\0~\x80\\@\x80\xE9g\0\xC8\x90\0U\xB8.\0A\xC0\xFE\0\v\xD2Sun\0Mon\0Tue\0Wed\0Thu\0Fri\0Sat\0Sunday\0Monday\0Tuesday\0Wednesday\0Thursday\0Friday\0Saturday\0Jan\0Feb\0Mar\0Apr\0May\0Jun\0Jul\0Aug\0Sep\0Oct\0Nov\0Dec\0January\0February\0March\0April\0May\0June\0July\0August\0September\0October\0November\0December\0AM\0PM\0%a %b %e %T %Y\0%m/%d/%y\0%H:%M:%S\0%I:%M:%S %p\0\0\0%m/%d/%y\x000123456789\0%a %b %e %T %Y\0%H:%M:%S\0\0\0\0\0^[yY]\0^[nN]\0yes\0no\0A\xA0\x81\v\xE1\xD1t\x9E\0W\x9D\xBD*\x80pR\xFF\xFF>' +\0\0\0d\0\0\0\xE8\0\0'\0\0\xA0\x86\0@B\0\x80\x96\x98\0\0\xE1\xF5\0\0\x005\0\0\0q\0\0\0k\xFF\xFF\xFF\xCE\xFB\xFF\xFF\x92\xBF\xFF\xFF\0\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x07\b \xFF\xFF\xFF\xFF\xFF\xFF\xFF +\v\f\r\x1B !"#\xFF\xFF\xFF\xFF\xFF\xFF +\v\f\r\x1B !"#\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x07\0\0\0\0\0\0\0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\x07\0\0\xC0\b\0\0\xC0 \0\0\xC0 +\0\0\xC0\v\0\0\xC0\f\0\0\xC0\r\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\x1B\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\xC0\0\0\0\xB3\0\0\xC3\0\0\xC3\0\0\xC3\0\0\xC3\0\0\xC3\0\0\xC3\x07\0\0\xC3\b\0\0\xC3 \0\0\xC3 +\0\0\xC3\v\0\0\xC3\f\0\0\xC3\r\0\0\xD3\0\0\xC3\0\0\xC3\0\0\f\xBB\0\f\xC3\0\f\xC3\0\f\xC3\0\f\xDB\0\0\0\x000123456789abcdefABCDEFxX+-pPiInN\0%I:%M:%S %p%H:%M\0A\x90\x86\v\x81%\0\0\0m\0\0\0/\0\0\0%\0\0\0d\0\0\0/\0\0\0%\0\0\0y\0\0\0%\0\0\0Y\0\0\0-\0\0\0%\0\0\0m\0\0\0-\0\0\0%\0\0\0d\0\0\0%\0\0\0I\0\0\0:\0\0\0%\0\0\0M\0\0\0:\0\0\0%\0\0\0S\0\0\0 \0\0\0%\0\0\0p\0\0\0\0\0\0\0%\0\0\0H\0\0\0:\0\0\0%\0\0\0M\0A\xA0\x87\ve%\0\0\0H\0\0\0:\0\0\0%\0\0\0M\0\0\0:\0\0\0%\0\0\0S\0\0\0\0\0\0\0\0M\0\0t\0\0\0u\0\0\0v\0\0\0\0\0\0\0dM\0\0w\0\0\0x\0\0\0v\0\0\0y\0\0\0z\0\0\0{\0\0\0|\0\0\0}\0\0\0~\0\0\0\x7F\0\0\0\x80\0A\x90\x88\v\xFD\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0B\0\0B\0\0B\0\0B\0\0B\0\0B\0\0B\0\0B\0\0B\0\0B\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0*\0\0*\0\0*\0\0*\0\0*\0\0*\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0*\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\x002\0\x002\0\x002\0\x002\0\x002\0\x002\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\x002\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\x82\0\0\0\0A\x94\x90\v\xED\xBCL\0\0\x81\0\0\0\x82\0\0\0v\0\0\0\x83\0\0\0\x84\0\0\0\x85\0\0\0\x86\0\0\0\x87\0\0\0\x88\0\0\0\x89\0\0\0\0\0\0\0\x98M\0\0\x8A\0\0\0\x8B\0\0\0v\0\0\0\x8C\0\0\0\x8D\0\0\0\x8E\0\0\0\x8F\0\0\0\x90\0\0\0\0\0\0\0\xBCM\0\0\x91\0\0\0\x92\0\0\0v\0\0\0\x93\0\0\0\x94\0\0\0\x95\0\0\0\x96\0\0\0\x97\0\0\0t\0\0\0r\0\0\0u\0\0\0e\0\0\0\0\0\0\0f\0\0\0a\0\0\0l\0\0\0s\0\0\0e\0\0\0\0\0\0\0%\0\0\0m\0\0\0/\0\0\0%\0\0\0d\0\0\0/\0\0\0%\0\0\0y\0\0\0\0\0\0\0%\0\0\0H\0\0\0:\0\0\0%\0\0\0M\0\0\0:\0\0\0%\0\0\0S\0\0\0\0\0\0\0%\0\0\0a\0\0\0 \0\0\0%\0\0\0b\0\0\0 \0\0\0%\0\0\0d\0\0\0 \0\0\0%\0\0\0H\0\0\0:\0\0\0%\0\0\0M\0\0\0:\0\0\0%\0\0\0S\0\0\0 \0\0\0%\0\0\0Y\0\0\0\0\0\0\0%\0\0\0I\0\0\0:\0\0\0%\0\0\0M\0\0\0:\0\0\0%\0\0\0S\0\0\0 \0\0\0%\0\0\0p\0A\x8C\x93\v\xFD'\x9CI\0\0\x98\0\0\0\x99\0\0\0v\0\0\0\xCCd\0\0\xA8I\0\0\xF0a\0\0NSt3__26locale5facetE\0\0\0\0\0\0\0J\0\0\x98\0\0\0\x9A\0\0\0v\0\0\0\x9B\0\0\0\x9C\0\0\0\x9D\0\0\0\x9E\0\0\0\x9F\0\0\0\xA0\0\0\0\xA1\0\0\0\xA2\0\0\0\xA3\0\0\0\xA4\0\0\0\xA5\0\0\0\xA6\0\0\0(e\0\0$J\0\0\0\0\0\0\0\0\0\x9CI\0\0\0\0\x008J\0\0\0\0\0NSt3__25ctypeIwEE\0\0\0\xA4d\0\0@J\0\0NSt3__210ctype_baseE\0\0\0\0\0\0\0\0\x88J\0\0\x98\0\0\0\xA7\0\0\0v\0\0\0\xA8\0\0\0\xA9\0\0\0\xAA\0\0\0\xAB\0\0\0\xAC\0\0\0\xAD\0\0\0\xAE\0\0\0(e\0\0\xA8J\0\0\0\0\0\0\0\0\0\x9CI\0\0\0\0\0\xCCJ\0\0\0\0\0NSt3__27codecvtIcc11__mbstate_tEE\0\0\0\xA4d\0\0\xD4J\0\0NSt3__212codecvt_baseE\0\0\0\0\0\0K\0\0\x98\0\0\0\xAF\0\0\0v\0\0\0\xB0\0\0\0\xB1\0\0\0\xB2\0\0\0\xB3\0\0\0\xB4\0\0\0\xB5\0\0\0\xB6\0\0\0(e\0\0\0\0?\0\0@\0\0A\0\0B\0\0C\0\0D\0\0E\0\0F\0\0(e\0\0V\0\0\0\0\0\0\0\0\0\x9CI\0\0\0\0\x000U\0\0\0\0\0NSt3__210moneypunctIwLb0EEE\0\0\0\0\0pV\0\0\x98\0\0\0G\0\0v\0\0\0H\0\0I\0\0J\0\0K\0\0L\0\0M\0\0N\0\0O\0\0P\0\0(e\0\0\x90V\0\0\0\0\0\0\0\0\0\x9CI\0\0\0\0\x000U\0\0\0\0\0NSt3__210moneypunctIwLb1EEE\0\0\0\0\0\xC8V\0\0\x98\0\0\0Q\0\0v\0\0\0R\0\0S\0\0(e\0\0\xE8V\0\0\0\0\0\0\0\0\0\x9CI\0\0\0\0\x000W\0\0\0\0\0\0NSt3__29money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEE\0\0\0\xA4d\0\x008W\0\0NSt3__211__money_getIcEE\0\0\0\0\0\0\0\0pW\0\0\x98\0\0\0T\0\0v\0\0\0U\0\0V\0\0(e\0\0\x90W\0\0\0\0\0\0\0\0\0\x9CI\0\0\0\0\0\xD8W\0\0\0\0\0\0NSt3__29money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEE\0\0\0\xA4d\0\0\xE0W\0\0NSt3__211__money_getIwEE\0\0\0\0\0\0\0\0X\0\0\x98\0\0\0W\0\0v\0\0\0X\0\0Y\0\0(e\0\x008X\0\0\0\0\0\0\0\0\0\x9CI\0\0\0\0\0\x80X\0\0\0\0\0\0NSt3__29money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEE\0\0\0\xA4d\0\0\x88X\0\0NSt3__211__money_putIcEE\0\0\0\0\0\0\0\0\xC0X\0\0\x98\0\0\0Z\0\0v\0\0\0[\0\0\\\0\0(e\0\0\xE0X\0\0\0\0\0\0\0\0\0\x9CI\0\0\0\0\0(Y\0\0\0\0\0\0NSt3__29money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEE\0\0\0\xA4d\0\x000Y\0\0NSt3__211__money_putIwEE\0\0\0\0\0\0\0\0lY\0\0\x98\0\0\0]\0\0v\0\0\0^\0\0_\0\0\`\0\0(e\0\0\x8CY\0\0\0\0\0\0\0\0\0\x9CI\0\0\0\0\0\xA4Y\0\0\0\0\0NSt3__28messagesIcEE\0\0\0\0\xA4d\0\0\xACY\0\0NSt3__213messages_baseE\0\0\0\0\0\xE4Y\0\0\x98\0\0\0a\0\0v\0\0\0b\0\0c\0\0d\0\0(e\0\0Z\0\0\0\0\0\0\0\0\0\x9CI\0\0\0\0\0\xA4Y\0\0\0\0\0NSt3__28messagesIwEE\0\0\0\0S\0\0\0u\0\0\0n\0\0\0d\0\0\0a\0\0\0y\0\0\0\0\0\0\0M\0\0\0o\0\0\0n\0\0\0d\0\0\0a\0\0\0y\0\0\0\0\0\0\0T\0\0\0u\0\0\0e\0\0\0s\0\0\0d\0\0\0a\0\0\0y\0\0\0\0\0\0\0W\0\0\0e\0\0\0d\0\0\0n\0\0\0e\0\0\0s\0\0\0d\0\0\0a\0\0\0y\0\0\0\0\0\0\0T\0\0\0h\0\0\0u\0\0\0r\0\0\0s\0\0\0d\0\0\0a\0\0\0y\0\0\0\0\0\0\0F\0\0\0r\0\0\0i\0\0\0d\0\0\0a\0\0\0y\0\0\0\0\0\0\0S\0\0\0a\0\0\0t\0\0\0u\0\0\0r\0\0\0d\0\0\0a\0\0\0y\0\0\0\0\0\0\0S\0\0\0u\0\0\0n\0\0\0\0\0\0\0M\0\0\0o\0\0\0n\0\0\0\0\0\0\0T\0\0\0u\0\0\0e\0\0\0\0\0\0\0W\0\0\0e\0\0\0d\0\0\0\0\0\0\0T\0\0\0h\0\0\0u\0\0\0\0\0\0\0F\0\0\0r\0\0\0i\0\0\0\0\0\0\0S\0\0\0a\0\0\0t\0\0\0\0\0\0\0J\0\0\0a\0\0\0n\0\0\0u\0\0\0a\0\0\0r\0\0\0y\0\0\0\0\0\0\0F\0\0\0e\0\0\0b\0\0\0r\0\0\0u\0\0\0a\0\0\0r\0\0\0y\0\0\0\0\0\0\0M\0\0\0a\0\0\0r\0\0\0c\0\0\0h\0\0\0\0\0\0\0A\0\0\0p\0\0\0r\0\0\0i\0\0\0l\0\0\0\0\0\0\0M\0\0\0a\0\0\0y\0\0\0\0\0\0\0J\0\0\0u\0\0\0n\0\0\0e\0\0\0\0\0\0\0J\0\0\0u\0\0\0l\0\0\0y\0\0\0\0\0\0\0A\0\0\0u\0\0\0g\0\0\0u\0\0\0s\0\0\0t\0\0\0\0\0\0\0S\0\0\0e\0\0\0p\0\0\0t\0\0\0e\0\0\0m\0\0\0b\0\0\0e\0\0\0r\0\0\0\0\0\0\0O\0\0\0c\0\0\0t\0\0\0o\0\0\0b\0\0\0e\0\0\0r\0\0\0\0\0\0\0N\0\0\0o\0\0\0v\0\0\0e\0\0\0m\0\0\0b\0\0\0e\0\0\0r\0\0\0\0\0\0\0D\0\0\0e\0\0\0c\0\0\0e\0\0\0m\0\0\0b\0\0\0e\0\0\0r\0\0\0\0\0\0\0J\0\0\0a\0\0\0n\0\0\0\0\0\0\0F\0\0\0e\0\0\0b\0\0\0\0\0\0\0M\0\0\0a\0\0\0r\0\0\0\0\0\0\0A\0\0\0p\0\0\0r\0\0\0\0\0\0\0J\0\0\0u\0\0\0n\0\0\0\0\0\0\0J\0\0\0u\0\0\0l\0\0\0\0\0\0\0A\0\0\0u\0\0\0g\0\0\0\0\0\0\0S\0\0\0e\0\0\0p\0\0\0\0\0\0\0O\0\0\0c\0\0\0t\0\0\0\0\0\0\0N\0\0\0o\0\0\0v\0\0\0\0\0\0\0D\0\0\0e\0\0\0c\0\0\0\0\0\0\0A\0\0\0M\0\0\0\0\0\0\0P\0\0\0M\0A\x94\xBB\v\x98 +\0\0\0d\0\0\0\xE8\0\0'\0\0\xA0\x86\0@B\0\x80\x96\x98\0\0\xE1\xF5\0\xCA\x9A;\0\0\0\0\0\0\0\x0000010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899\0\0\0\0\0\0\0\x00000000010010001101000101011001111000100110101011110011011110111100010203040506071011121314151617202122232425262730313233343536374041424344454647505152535455565760616263646566677071727374757677000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\0\0\0\0\0\0\0\0 +\0\0\0\0\0\0\0d\0\0\0\0\0\0\0\xE8\0\0\0\0\0\0'\0\0\0\0\0\0\xA0\x86\0\0\0\0\0@B\0\0\0\0\0\x80\x96\x98\0\0\0\0\0\0\xE1\xF5\0\0\0\0\0\xCA\x9A;\0\0\0\0\0\xE4\vT\0\0\0\0\xE8vH\0\0\0\0\xA5\xD4\xE8\0\0\0\0\xA0rN \0\0\0@z\xF3Z\0\0\0\x80\xC6\xA4~\x8D\0\0\0\xC1o\xF2\x86#\0\0\0\x8A]xEc\0\0d\xA7\xB3\xB6\xE0\r\0\0\xE8\x89#\xC7\x8A\xA4d\0\0\xF8a\0\0NSt3__214__shared_countE\0\0\0\0hf\0\0\xCCd\0\0$b\0\0\x98e\0\0N10__cxxabiv116__shim_type_infoE\0\0\0\0\xCCd\0\0Tb\0\0b\0\0N10__cxxabiv117__class_type_infoE\0\0\0\xCCd\0\0\x84b\0\0b\0\0N10__cxxabiv117__pbase_type_infoE\0\0\0\xCCd\0\0\xB4b\0\0xb\0\0N10__cxxabiv119__pointer_type_infoE\0\xCCd\0\0\xE4b\0\0b\0\0N10__cxxabiv120__function_type_infoE\0\0\0\0\xCCd\0\0c\0\0xb\0\0N10__cxxabiv129__pointer_to_member_type_infoE\0\0\0\0\0\0\0dc\0\0g\0\0h\0\0i\0\0j\0\0k\0\0\xCCd\0\0pc\0\0b\0\0N10__cxxabiv123__fundamental_type_infoE\0Pc\0\0\xA0c\0\0v\0Dn\0\0\0\0Pc\0\0\xB0c\0\0b\0\0\0Pc\0\0\xBCc\0\0c\0\0\0Pc\0\0\xC8c\0\0h\0\0\0Pc\0\0\xD4c\0\0a\0\0\0Pc\0\0\xE0c\0\0s\0\0\0Pc\0\0\xECc\0\0t\0\0\0Pc\0\0\xF8c\0\0i\0\0\0Pc\0\0d\0\0j\0\0\0Pc\0\0d\0\0l\0\0\0Pc\0\0d\0\0m\0\0\0Pc\0\0(d\0\0x\0\0\0Pc\0\x004d\0\0y\0\0\0Pc\0\0@d\0\0f\0\0\0Pc\0\0Ld\0\0d\0\0\0\0\0\0\0ld\0\0g\0\0l\0\0i\0\0j\0\0m\0\0\xCCd\0\0xd\0\0b\0\0N10__cxxabiv116__enum_type_infoE\0\0\0\0\0\0\0\0Hb\0\0g\0\0n\0\0i\0\0j\0\0o\0\0p\0\0q\0\0r\0\0\0\0\0\0\xECd\0\0g\0\0s\0\0i\0\0j\0\0o\0\0t\0\0u\0\0v\0\0\xCCd\0\0\xF8d\0\0Hb\0\0N10__cxxabiv120__si_class_type_infoE\0\0\0\0\0\0\0\0He\0\0g\0\0w\0\0i\0\0j\0\0o\0\0x\0\0y\0\0z\0\0\xCCd\0\0Te\0\0Hb\0\0N10__cxxabiv121__vmi_class_type_infoE\0\0\0\0\0\0\0\xA8b\0\0g\0\0{\0\0i\0\0j\0\0|\0\0\xA4d\0\0\xA0e\0\0St9type_info\0A\xB1\xCB\v\b \0\0\0\0\0\0\0A\xC4\xCB\v1\0A\xDC\xCB\v2\0\0\x003\0\0\0\xF8g\0\0\0\0A\xF4\xCB\v\0A\x84\xCC\v\xFF\xFF\xFF\xFF +\0A\xC8\xCC\v!\xB8e\0\0@v\0%m/%d/%y\0\0\0\b%H:%M:%S\0\0\0\b\0A\xF4\xCC\ve\0A\x8C\xCD\v +2\0\0\0f\0\x004v\0A\xA4\xCD\v\0A\xB4\xCD\v\b\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0A\xF8\xCD\vhf`)),me((await M(oe)).instance))})(),(function(){function me(){var oe;if(r.calledRun=!0,!f){if(C=!0,zA.H(),_?.(r),(oe=r.onRuntimeInitialized)==null||oe.call(r),r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;){var Ae=r.postRun.shift();w.push(Ae)}D(w)}}if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)K();D(z),r.setStatus?(r.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>r.setStatus(""),1),me()},1)):me()})(),C?o=r:o=new Promise((me,oe)=>{_=me,S=oe}),o}var zZ=(e,t,n)=>{let i=e.vf32_ptr(t),o=t.size(),r=i>>2,s=e.HEAPF32.slice(r,r+o);if(n!==void 0)for(let a=0;a1/(1+Math.exp(-e)),RBe=e=>t=>t*e+.5,VBe=(e,t,n)=>{let i=n?.colorScaleFactor??.282;return{numPoints:t.numPoints,shDegree:t.shDegree,antialiased:t.antialiased,positions:zZ(e,t.positions),scales:zZ(e,t.scales,Math.exp),rotations:zZ(e,t.rotations),alphas:zZ(e,t.alphas,CBe),colors:zZ(e,t.colors,RBe(i)),sh:zZ(e,t.sh)}},GBe=(e,t)=>{e._free(e.vf32_ptr(t.positions)),e._free(e.vf32_ptr(t.scales)),e._free(e.vf32_ptr(t.rotations)),e._free(e.vf32_ptr(t.alphas)),e._free(e.vf32_ptr(t.colors)),e._free(e.vf32_ptr(t.sh))},Yue=async(e,t)=>{var n;let i=await ZBe(),o=e instanceof Uint8Array?e:new Uint8Array(e),r=null;try{if(r=i._malloc(Uint8Array.BYTES_PER_ELEMENT*o.length),r===null)throw new Error("couldn't allocate memory");i.HEAPU8.set(o,r/Uint8Array.BYTES_PER_ELEMENT);let s=i.CoordinateSystem[((n=t?.unpackOptions)==null?void 0:n.coordinateSystem)??"UNSPECIFIED"],a=i.load_spz(r,o.length,{coordinateSystem:s}),c=VBe(i,a,t);return GBe(i,a),c}catch(s){throw s}finally{r!==null&&i._free(r)}};var EBe=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));var LBe=[0,9,24,45],WBe=14,vBe=1.6*1024*1024*1024;function FBe(e,t){let n=t?.attributes;if(!l(n))return;let i=n.POSITION;if(!l(i))return;let o=e?.accessors?.[i];if(!l(o)||o.count<=0)return;let r=0;for(let s in n)if(Object.prototype.hasOwnProperty.call(n,s)){let a=/SH_DEGREE_(\d+)_COEF_/.exec(s);a&&(r=Math.max(r,parseInt(a[1],10)))}return{numPoints:o.count,shDegree:r}}function IBe(e,t){let n=WBe+(LBe[t]??0);return e*n*Float32Array.BYTES_PER_ELEMENT*2}var G4=class extends zi{constructor(t){super(),t=t??B.EMPTY_OBJECT;let n=t.resourceCache,i=t.gltf,o=t.primitive,r=t.spz,s=t.gltfResource,a=t.baseResource,c=t.cacheKey;this._resourceCache=n,this._gltfResource=s,this._baseResource=a,this._gltf=i,this._primitive=o,this._spz=r,this._cacheKey=c,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=Tt.UNLOADED,this._promise=void 0,this._spzError=void 0}get cacheKey(){return this._cacheKey}get decodedData(){return this._decodedData}async load(){return l(this._promise)?this._promise:(this._state=Tt.LOADING,this._promise=PBe(this),this._promise)}process(t){if(this._state===Tt.READY)return!0;if(this._state!==Tt.PROCESSING||(l(this._spzError)&&E4(this,this._spzError),!l(this._bufferViewTypedArray))||l(this._decodePromise))return!1;let n=FBe(this._gltf,this._primitive);if(l(n)){let o=IBe(n.numPoints,n.shDegree);if(o>vBe){let r=Math.round(o/1048576);return E4(this,new ae(`SPZ data too large to decode: ${n.numPoints.toLocaleString()} splats with spherical harmonics degree ${n.shDegree} would require approximately ${r} MB, which exceeds the WASM memory limit. Consider using a lower spherical harmonics degree or splitting the dataset into smaller tiles.`)),!1}}let i=Yue(this._bufferViewTypedArray,{unpackOptions:{coordinateSystem:"UNSPECIFIED"}});if(!l(i))return!1;this._decodePromise=XBe(this,i)}unload(){l(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0,this._primitive=void 0}};async function PBe(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:0,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=Tt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;E4(e,n)}}function E4(e,t){throw e.unload(),e._state=Tt.FAILED,e.getError("Failed to load SPZ",t)}async function XBe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={gcloud:n},e._state=Tt.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._spzError=n}}var Wv=G4;var $Zn=x(T(),1);var zZn=x(T(),1);var EZn=x(T(),1);function vv(e){e=e??B.EMPTY_OBJECT;let t=e.id,n=e.properties??{},i={};for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r.semantic)&&(i[r.semantic]=r)}this._id=t,this._name=e.name,this._description=e.description,this._properties=n,this._propertiesBySemantic=i,this._extras=Je(e.extras,!0),this._extensions=Je(e.extensions,!0)}vv.fromJson=function(e){e=e??B.EMPTY_OBJECT;let t=e.id,n=e.class,i={};for(let o in n.properties)if(n.properties.hasOwnProperty(o)){let r=cp.fromJson({id:o,property:n.properties[o],enums:e.enums});i[o]=r}return new vv({id:t,name:n.name,description:n.description,properties:i,extras:n.extras,extensions:n.extensions})};Object.defineProperties(vv.prototype,{properties:{get:function(){return this._properties}},propertiesBySemantic:{get:function(){return this._propertiesBySemantic}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});vv.BATCH_TABLE_CLASS_NAME="_batchTable";var Fh=vv;var wZn=x(T(),1);var FZn=x(T(),1);function w5(e){e=e??B.EMPTY_OBJECT;let t=e.value,n=e.name;this._value=t,this._name=n,this._description=e.description,this._extras=Je(e.extras,!0),this._extensions=Je(e.extensions,!0)}w5.fromJson=function(e){return new w5({value:e.value,name:e.name,description:e.description,extras:e.extras,extensions:e.extensions})};Object.defineProperties(w5.prototype,{value:{get:function(){return this._value}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var Fv=w5;function M5(e){e=e??B.EMPTY_OBJECT;let t=e.id,n=e.values,i={},o={},r=n.length;for(let a=0;a>t};Qa.fromSubtreeJson=async function(e,t,n,i,o){let r=new Qa(e,i,o),s;l(t)?s={json:t,binary:void 0}:s=kBe(n);let a=s.json;r._subtreeJson=a;let c;if(Bi(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(l(a.tileMetadata)){let A=a.tileMetadata;c=a.propertyTables[A]}let d=[];if(l(a.contentMetadata)){let A=a.contentMetadata.length;for(let Z=0;Z0;u=u||m;for(let p=0;p0){let g=t.getContentMetadataView(a,G);X=xy.parseAllBoundingVolumeSemantics("CONTENT",g)}let Y=a3e(b,X);l(Y)&&(I.boundingVolume=Y),f.push(vt(I,s.contentHeaders[G]))}let y=Bue(c,s,a),_={boundingVolume:b,geometricError:y,refine:s.refine,contents:f},S=!0,A=Je(s.tileHeader,S);delete A.boundingVolume,delete A.transform,delete A.metadata;let Z=vt(_,A,S),R=jue(e,s.baseResource,Z,n);return R.implicitCoordinates=a,R.implicitSubtree=t,R.metadata=c,R.hasImplicitContentMetadata=p,R}function U5(e,t){return l(e)&&l(t)&&(l(t.minimumHeight)||l(t.maximumHeight))&&(Bi(e,"3DTILES_bounding_volume_S2")||l(e.region))}function I4(e,t){l(t)&&(Bi(e,"3DTILES_bounding_volume_S2")?r3e(e.extensions["3DTILES_bounding_volume_S2"],t.minimumHeight,t.maximumHeight):l(e.region)&&o3e(e.region,t.minimumHeight,t.maximumHeight))}function o3e(e,t,n){l(t)&&(e[4]=t),l(n)&&(e[5]=n)}function r3e(e,t,n){l(t)&&(e.minimumHeight=t),l(n)&&(e.maximumHeight=n)}function s3e(e,t,n,i,o,r){let s;return!l(r)||!l(r.boundingVolume)||!U5(r.boundingVolume,r)&&U5(e.boundingVolume,r)?s=zue(e,t,n,i??!1,o):s=r.boundingVolume,I4(s,r),s}function a3e(e,t){let n;return l(t)&&(n=t.boundingVolume),U5(n,t)?I4(n,t):U5(e,t)&&(n=Je(e,!0),I4(n,t)),n}function zue(e,t,n,i,o){let r=e.boundingVolume;return Bi(r,"3DTILES_bounding_volume_S2")?Hue(i,o,n,t.level,t.x,t.y,t.z):l(r.region)?{region:Jue(r.region,t.level,t.x,t.y,t.z)}:{box:Kue(r.box,t.level,t.x,t.y,t.z)}}function Hue(e,t,n,i,o,r,s){let a=t._boundingVolume;if(e)return{extensions:{"3DTILES_bounding_volume_S2":{token:z0.getTokenFromId(a.s2Cell._cellId),minimumHeight:a.minimumHeight,maximumHeight:a.maximumHeight}}};let c=Number(t._boundingVolume.s2Cell._cellId>>BigInt(61)),d=c%2===0?WZ.encode2D(i,o,r):WZ.encode2D(i,r,o),u=z0.fromFacePositionLevel(c,BigInt(d),i),m,p;if(l(s)){let b=(a.maximumHeight+a.minimumHeight)/2;m=n<4?a.minimumHeight:b,p=n<4?b:a.maximumHeight}else m=a.minimumHeight,p=a.maximumHeight;return{extensions:{"3DTILES_bounding_volume_S2":{token:z0.getTokenFromId(u._cellId),minimumHeight:m,maximumHeight:p}}}}var c3e=new h,l3e=new h,F4=new h,d3e=new $;function Kue(e,t,n,i,o){if(t===0)return e;let r=h.unpack(e,0,l3e),s=$.unpack(e,3,d3e),a=Math.pow(2,-t),c=-1+(2*n+1)*a,d=-1+(2*i+1)*a,u=0,m=h.fromElements(a,a,1,c3e);l(o)&&(u=-1+(2*o+1)*a,m.z=a);let p=h.fromElements(c,d,u,F4);p=$.multiplyByVector(s,p,F4),p=h.add(p,r,F4);let b=$.clone(s);b=$.multiplyByScale(b,m,b);let f=new Array(12);return h.pack(p,f),$.pack(b,f,3),f}var u3e=new se;function Jue(e,t,n,i,o){if(t===0)return e.slice();let r=se.unpack(e,0,u3e),s=e[4],a=e[5],c=Math.pow(2,-t),d=c*r.width,u=W.negativePiToPi(r.west+n*d),m=W.negativePiToPi(u+d),p=c*r.height,b=W.negativePiToPi(r.south+i*p),f=W.negativePiToPi(b+p),y=s,_=a;if(l(o)){let S=c*(a-s);y+=o*S,_=y+S}return[u,b,m,f,y,_]}function m3e(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=zue(i,o,n,!1,t),s=Bue(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},d=jue(e,i.baseResource,c,t);return d.implicitTileset=i,d.implicitCoordinates=o,d}function jue(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}JZ._deriveBoundingBox=Kue;JZ._deriveBoundingRegion=Jue;JZ._deriveBoundingVolumeS2=Hue;var jZ=JZ;var e8n=x(T(),1);var aRn=x(T(),1),Que={NONE:0,REPEAT:1,MIRRORED_REPEAT:2};Object.freeze(Que);var Td=Que;var OQn=x(T(),1);var WRn=x(T(),1);var uRn=x(T(),1);function QZ(e,t){this._distance=t,this._normal=new que(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(QZ.prototype,{distance:{get:function(){return this._distance},set:function(e){l(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){l(this.onChangeCallback)&&!h.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),h.clone(e,this._normal._cartesian3)}}});QZ.fromPlane=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance):t=new QZ(e.normal,e.distance),t};QZ.clone=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance,t):new QZ(e.normal,e.distance)};function que(e,t){this._clippingPlane=t,this._cartesian3=h.clone(e)}Object.defineProperties(que.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var Os=QZ;function Hc(e){e=e??B.EMPTY_OBJECT,this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=e.enabled??!0,this.modelMatrix=F.clone(e.modelMatrix??F.IDENTITY),this.edgeColor=U.clone(e.edgeColor??U.WHITE),this.edgeWidth=e.edgeWidth??0,this.planeAdded=new Se,this.planeRemoved=new Se,this._owner=void 0;let t=e.unionClippingRegions??!1;this._unionClippingRegions=t,this._testIntersection=t?ime:ome,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(l(n)){let i=n.length;for(let o=0;o0&&(r=Qt.OUTSIDE);for(let s=0;s80*n){a=e[0],c=e[1];let u=a,m=c;for(let p=n;pu&&(u=b),f>m&&(m=f)}d=Math.max(u-a,m-c),d=d!==0?32767/d:0}return wv(r,s,n,a,c,d,0),s}function cme(e,t,n,i,o){let r;if(o===v3e(e,t,n,i)>0)for(let s=t;s=t;s-=i)r=ame(s/i|0,e[s],e[s+1],r);return r&&qZ(r,r.next)&&(kv(r),r=r.next),r}function c_(e,t){if(!e)return e;t||(t=e);let n=e,i;do if(i=!1,!n.steiner&&(qZ(n,n.next)||as(n.prev,n,n.next)===0)){if(kv(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function wv(e,t,n,i,o,r,s){if(!e)return;!s&&r&&R3e(e,i,o,r);let a=e;for(;e.prev!==e.next;){let c=e.prev,d=e.next;if(r?y3e(e,i,o,r):g3e(e)){t.push(c.i,e.i,d.i),kv(e),e=d.next,a=d.next;continue}if(e=d,e===a){s?s===1?(e=x3e(c_(e),t),wv(e,t,n,i,o,r,2)):s===2&&T3e(e,t,n,i,o,r):wv(c_(e),t,n,i,o,r,1);break}}}function g3e(e){let t=e.prev,n=e,i=e.next;if(as(t,n,i)>=0)return!1;let o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,d=i.y,u=Math.min(o,r,s),m=Math.min(a,c,d),p=Math.max(o,r,s),b=Math.max(a,c,d),f=i.next;for(;f!==t;){if(f.x>=u&&f.x<=p&&f.y>=m&&f.y<=b&&Nv(o,a,r,c,s,d,f.x,f.y)&&as(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function y3e(e,t,n,i){let o=e.prev,r=e,s=e.next;if(as(o,r,s)>=0)return!1;let a=o.x,c=r.x,d=s.x,u=o.y,m=r.y,p=s.y,b=Math.min(a,c,d),f=Math.min(u,m,p),y=Math.max(a,c,d),_=Math.max(u,m,p),S=P4(b,f,t,n,i),A=P4(y,_,t,n,i),Z=e.prevZ,R=e.nextZ;for(;Z&&Z.z>=S&&R&&R.z<=A;){if(Z.x>=b&&Z.x<=y&&Z.y>=f&&Z.y<=_&&Z!==o&&Z!==s&&Nv(a,u,c,m,d,p,Z.x,Z.y)&&as(Z.prev,Z,Z.next)>=0||(Z=Z.prevZ,R.x>=b&&R.x<=y&&R.y>=f&&R.y<=_&&R!==o&&R!==s&&Nv(a,u,c,m,d,p,R.x,R.y)&&as(R.prev,R,R.next)>=0))return!1;R=R.nextZ}for(;Z&&Z.z>=S;){if(Z.x>=b&&Z.x<=y&&Z.y>=f&&Z.y<=_&&Z!==o&&Z!==s&&Nv(a,u,c,m,d,p,Z.x,Z.y)&&as(Z.prev,Z,Z.next)>=0)return!1;Z=Z.prevZ}for(;R&&R.z<=A;){if(R.x>=b&&R.x<=y&&R.y>=f&&R.y<=_&&R!==o&&R!==s&&Nv(a,u,c,m,d,p,R.x,R.y)&&as(R.prev,R,R.next)>=0)return!1;R=R.nextZ}return!0}function x3e(e,t){let n=e;do{let i=n.prev,o=n.next.next;!qZ(i,o)&&dme(i,n,n.next,o)&&Mv(i,o)&&Mv(o,i)&&(t.push(i.i,n.i,o.i),kv(n),kv(n.next),n=e=o),n=n.next}while(n!==e);return c_(n)}function T3e(e,t,n,i,o,r){let s=e;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&E3e(s,a)){let c=ume(s,a);s=c_(s,s.next),c=c_(c,c.next),wv(s,t,n,i,o,r,0),wv(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function _3e(e,t,n,i){let o=[];for(let r=0,s=t.length;r=n.next.y&&n.next.y!==n.y){let m=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(m<=i&&m>r&&(r=m,s=n.x=n.x&&n.x>=c&&i!==n.x&&lme(os.x||n.x===s.x&&C3e(s,n)))&&(s=n,u=m)}n=n.next}while(n!==a);return s}function C3e(e,t){return as(e.prev,e,t.prev)<0&&as(t.next,e,e.next)<0}function R3e(e,t,n,i){let o=e;do o.z===0&&(o.z=P4(o.x,o.y,t,n,i)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,V3e(o)}function V3e(e){let t,n=1;do{let i=e,o;e=null;let r=null;for(t=0;i;){t++;let s=i,a=0;for(let d=0;d0||c>0&&s;)a!==0&&(c===0||!s||i.z<=s.z)?(o=i,i=i.nextZ,a--):(o=s,s=s.nextZ,c--),r?r.nextZ=o:e=o,o.prevZ=r,r=o;i=s}r.nextZ=null,n*=2}while(t>1);return e}function P4(e,t,n,i,o){return e=(e-n)*o|0,t=(t-i)*o|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function G3e(e){let t=e,n=e;do(t.x=(e-s)*(r-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(r-a)>=(o-s)*(i-a)}function Nv(e,t,n,i,o,r,s,a){return!(e===s&&t===a)&&lme(e,t,n,i,o,r,s,a)}function E3e(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!L3e(e,t)&&(Mv(e,t)&&Mv(t,e)&&W3e(e,t)&&(as(e.prev,e,t.prev)||as(e,t.prev,t))||qZ(e,t)&&as(e.prev,e,e.next)>0&&as(t.prev,t,t.next)>0)}function as(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function qZ(e,t){return e.x===t.x&&e.y===t.y}function dme(e,t,n,i){let o=O5(as(e,t,n)),r=O5(as(e,t,i)),s=O5(as(n,i,e)),a=O5(as(n,i,t));return!!(o!==r&&s!==a||o===0&&D5(e,n,t)||r===0&&D5(e,i,t)||s===0&&D5(n,e,i)||a===0&&D5(n,t,i))}function D5(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function O5(e){return e>0?1:e<0?-1:0}function L3e(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&dme(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function Mv(e,t){return as(e.prev,e,e.next)<0?as(e,t,e.next)>=0&&as(e,e.prev,t)>=0:as(e,t,e.prev)<0||as(e,e.next,t)<0}function W3e(e,t){let n=e,i=!1,o=(e.x+t.x)/2,r=(e.y+t.y)/2;do n.y>r!=n.next.y>r&&n.next.y!==n.y&&o<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e);return i}function ume(e,t){let n=X4(e.i,e.x,e.y),i=X4(t.i,t.x,t.y),o=e.next,r=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function ame(e,t,n,i){let o=X4(e,t,n);return i?(o.next=i.next,o.prev=i,i.next.prev=o,i.next=o):(o.prev=o,o.next=o),o}function kv(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function X4(e,t,n){return{i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function v3e(e,t,n,i){let o=0;for(let r=t,s=n-i;r0?ks.COUNTER_CLOCKWISE:ks.CLOCKWISE};Ty.triangulate=function(e,t){let n=k.packArray(e);return Y4(n,t,2)};var pme=new h,bme=new h,gme=new h,mme=new h,hme=new h,fme=new h,$0=new h,yme=new k,xme=new k,Tme=new k,$Z=new k;Ty.computeSubdivision=function(e,t,n,i,o){o=o??W.RADIANS_PER_DEGREE;let r=l(i),s=n.slice(0),a,c=t.length,d=new Array(c*3),u=new Array(c*2),m=0,p=0;for(a=0;a0;){let Z=s.pop(),R=s.pop(),G=s.pop(),E=h.fromArray(d,G*3,pme),v=h.fromArray(d,R*3,bme),I=h.fromArray(d,Z*3,gme),X,Y,g;r&&(X=k.fromArray(u,G*2,yme),Y=k.fromArray(u,R*2,xme),g=k.fromArray(u,Z*2,Tme));let C=h.multiplyByScalar(h.normalize(E,mme),y,mme),V=h.multiplyByScalar(h.normalize(v,hme),y,hme),L=h.multiplyByScalar(h.normalize(I,fme),y,fme),P=h.magnitudeSquared(h.subtract(C,V,$0)),N=h.magnitudeSquared(h.subtract(V,L,$0)),O=h.magnitudeSquared(h.subtract(L,C,$0)),M=Math.max(P,N,O),D,w,z;M>S?P===M?(D=`${Math.min(G,R)} ${Math.max(G,R)}`,a=f[D],l(a)||(w=h.add(E,v,$0),h.multiplyByScalar(w,.5,w),d.push(w.x,w.y,w.z),a=d.length/3-1,f[D]=a,r&&(z=k.add(X,Y,$Z),k.multiplyByScalar(z,.5,z),u.push(z.x,z.y))),s.push(G,a,Z),s.push(a,R,Z)):N===M?(D=`${Math.min(R,Z)} ${Math.max(R,Z)}`,a=f[D],l(a)||(w=h.add(v,I,$0),h.multiplyByScalar(w,.5,w),d.push(w.x,w.y,w.z),a=d.length/3-1,f[D]=a,r&&(z=k.add(Y,g,$Z),k.multiplyByScalar(z,.5,z),u.push(z.x,z.y))),s.push(R,a,G),s.push(a,Z,G)):O===M&&(D=`${Math.min(Z,G)} ${Math.max(Z,G)}`,a=f[D],l(a)||(w=h.add(I,E,$0),h.multiplyByScalar(w,.5,w),d.push(w.x,w.y,w.z),a=d.length/3-1,f[D]=a,r&&(z=k.add(g,X,$Z),k.multiplyByScalar(z,.5,z),u.push(z.x,z.y))),s.push(Z,a,R),s.push(a,G,R)):(b.push(G),b.push(R),b.push(Z))}let A={attributes:{position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:d})},indices:b,primitiveType:ve.TRIANGLES};return r&&(A.attributes.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:u})),new Zt(A)};var P3e=new fe,X3e=new fe,Y3e=new fe,N4=new fe;Ty.computeRhumbLineSubdivision=function(e,t,n,i,o){o=o??W.RADIANS_PER_DEGREE;let r=l(i),s=n.slice(0),a,c=t.length,d=new Array(c*3),u=new Array(c*2),m=0,p=0;for(a=0;a0;){let G=s.pop(),E=s.pop(),v=s.pop(),I=h.fromArray(d,v*3,pme),X=h.fromArray(d,E*3,bme),Y=h.fromArray(d,G*3,gme),g,C,V;r&&(g=k.fromArray(u,v*2,yme),C=k.fromArray(u,E*2,xme),V=k.fromArray(u,G*2,Tme));let L=e.cartesianToCartographic(I,P3e),P=e.cartesianToCartographic(X,X3e),N=e.cartesianToCartographic(Y,Y3e);S.setEndPoints(L,P);let O=S.surfaceDistance;A.setEndPoints(P,N);let M=A.surfaceDistance;Z.setEndPoints(N,L);let D=Z.surfaceDistance,w=Math.max(O,M,D),z,K,ee,H,te;w>_?O===w?(z=`${Math.min(v,E)} ${Math.max(v,E)}`,a=f[z],l(a)||(K=S.interpolateUsingFraction(.5,N4),ee=(L.height+P.height)*.5,H=h.fromRadians(K.longitude,K.latitude,ee,e,$0),d.push(H.x,H.y,H.z),a=d.length/3-1,f[z]=a,r&&(te=k.add(g,C,$Z),k.multiplyByScalar(te,.5,te),u.push(te.x,te.y))),s.push(v,a,G),s.push(a,E,G)):M===w?(z=`${Math.min(E,G)} ${Math.max(E,G)}`,a=f[z],l(a)||(K=A.interpolateUsingFraction(.5,N4),ee=(P.height+N.height)*.5,H=h.fromRadians(K.longitude,K.latitude,ee,e,$0),d.push(H.x,H.y,H.z),a=d.length/3-1,f[z]=a,r&&(te=k.add(C,V,$Z),k.multiplyByScalar(te,.5,te),u.push(te.x,te.y))),s.push(E,a,v),s.push(a,G,v)):D===w&&(z=`${Math.min(G,v)} ${Math.max(G,v)}`,a=f[z],l(a)||(K=Z.interpolateUsingFraction(.5,N4),ee=(N.height+L.height)*.5,H=h.fromRadians(K.longitude,K.latitude,ee,e,$0),d.push(H.x,H.y,H.z),a=d.length/3-1,f[z]=a,r&&(te=k.add(V,g,$Z),k.multiplyByScalar(te,.5,te),u.push(te.x,te.y))),s.push(G,a,E),s.push(a,v,E)):(b.push(v),b.push(E),b.push(G))}let R={attributes:{position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:d})},indices:b,primitiveType:ve.TRIANGLES};return r&&(R.attributes.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:u})),new Zt(R)};Ty.scaleToGeodeticHeight=function(e,t,n,i){n=n??ie.default;let o=F3e,r=I3e;if(t=t??0,i=i??!0,l(e)){let s=e.length;for(let a=0;a10&&t*2>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n};_y.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};_y.prototype.contains=function(e){return this._array.indexOf(e)!==-1};_y.prototype.clear=function(){this._array.length=this._offset=this._length=0};_y.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var Sy=_y;var Sr={};Sr.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!l(o))continue;n+=2;let r=o.positions,s=o.holes;if(l(r)&&r.length>0&&(n+=r.length*t.packedLength),l(s)){let a=s.length;for(let c=0;c0;){let r=o.pop();if(!l(r))continue;let s=r.positions,a=r.holes;if(t[n++]=l(s)?s.length:0,t[n++]=l(a)?a.length:0,l(s)){let c=s.length;for(let d=0;d0?new Array(o):void 0;for(let a=0;aW.PI){let c=s;s=a,a=c}if(!(r.longitudea))return n.cartographicToCartesian(r)}function H3e(e,t,n,i){if(i===ln.RHUMB)return z3e(e,t,n);let o=di.lineSegmentPlane(e,t,sn.ORIGIN_XY_PLANE);if(l(o))return n.scaleToGeodeticSurface(o,o)}var K3e=new fe;function J3e(e,t,n){let i=[],o,r,s,a,c,d=0;for(;dt.cartesianToCartographic(m,K3e).longitude;if(s===0)i.push({position:d,type:s,visited:!1,next:a,theta:u(o)});else if(a!==0){if(c=H3e(o,r,t,n),++d,!l(c))continue;e.splice(d,0,c),i.push({position:d,type:s,visited:!1,next:a,theta:u(c)})}++d}return i}function Zme(e,t,n,i,o,r,s){let a=[],c=r,d=m=>p=>p.position===m,u=[];do{let m=n[c];a.push(m);let p=i.findIndex(d(c)),b=i[p];if(!l(b)){++c;continue}let{visited:f,type:y,next:_}=b;if(b.visited=!0,y===0){if(_===0){let R=i[p-(s?1:-1)];if(R?.position===c+1)R.visited=!0;else{++c;continue}}if(!f&&s&&_>0||r===c&&!s&&_<0){++c;continue}}if(!(s?y>=0:y<=0)){++c;continue}f||u.push(c);let A=p+(s?1:-1),Z=i[A];if(!l(Z)){++c;continue}c=Z.position}while(c=0&&c!==r&&a.lengthd.theta-u.theta);let c=s[0].z>=0;o=Zme(i,o,s,a,1,0,c)}return i};Sr.polygonsFromHierarchy=function(e,t,n,i,o,r){let s=[],a=[],c=new Sy;c.enqueue(e);let d=l(r);for(;c.length!==0;){let u=c.dequeue(),m=u.positions,p=u.holes,b,f;if(i)for(f=m.length,b=0;b1){for(let v of E)c.enqueue(new Tc(v,p));continue}}let A=m.slice(),Z=l(p)?p.length:0,R=[],G;for(b=0;bMath.PI&&(e-=W.TWO_PI),e}}});var eC=new fe,nze=new h;cs.prototype.getLatitude=function(e){l(e)||(e=ie.default),eC.latitude=this.conformalLatitude,eC.longitude=this.longitude,eC.height=0;let t=this.ellipsoid.cartographicToCartesian(eC,nze);return e.cartesianToCartographic(t,eC),eC.latitude};var ize=new _n,oze=new h,rze=new h;cs.fromCartesian=function(e,t){let n=W.signNotZero(e.z),i=cs.NORTH_POLE_TANGENT_PLANE,o=cs.SOUTH_POLE;n<0&&(i=cs.SOUTH_POLE_TANGENT_PLANE,o=cs.NORTH_POLE);let r=ize;r.origin=i.ellipsoid.scaleToGeocentricSurface(e,r.origin),r.direction=h.subtract(r.origin,o,oze),h.normalize(r.direction,r.direction);let s=di.rayPlane(r,i.plane,rze),a=h.subtract(s,o,s),c=h.dot(i.xAxis,a),d=n*h.dot(i.yAxis,a);return l(t)?(t.position=new k(c,d),t.tangentPlane=i,t):new cs(new k(c,d),i)};cs.fromCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i=0?s:s+W.TWO_PI;o.westOverIdl=Math.min(o.westOverIdl,a),o.eastOverIdl=Math.max(o.eastOverIdl,a),r.west=Math.min(r.west,s),r.east=Math.max(r.east,s);let c=e.getLatitude(n),d=c;if(r.south=Math.min(r.south,c),r.north=Math.max(r.north,c),i!==ln.RHUMB){let p=k.subtract(t.position,e.position,Aze),b=k.dot(t.position,p)/k.dot(p,p);if(b>0&&b<1){let f=k.add(t.position,k.multiplyByScalar(p,-b,p),Zze),y=Kc.clone(t,Cze);y.position=f;let _=y.getLatitude(n);r.south=Math.min(r.south,_),r.north=Math.max(r.north,_),Math.abs(c)>Math.abs(_)&&(d=_)}}let u=t.x*e.y-e.x*t.y,m=Math.sign(u);m!==0&&(m*=k.angleBetween(t.position,e.position)),d>=0&&(o.northAngle+=m),d<=0&&(o.southAngle+=m)}var Lme=new Kc,Rze=new Kc,gm={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};ym.computeRectangleFromPositions=function(e,t,n,i){if(l(i)||(i=new se),e.length<3)return i;i.west=Number.POSITIVE_INFINITY,i.east=Number.NEGATIVE_INFINITY,i.south=Number.POSITIVE_INFINITY,i.north=Number.NEGATIVE_INFINITY,gm.northAngle=0,gm.southAngle=0,gm.westOverIdl=Number.POSITIVE_INFINITY,gm.eastOverIdl=Number.NEGATIVE_INFINITY;let o=e.length,r=Kc.fromCartesian(e[0],Rze);for(let s=1;sgm.eastOverIdl-gm.westOverIdl&&(i.west=gm.westOverIdl,i.east=gm.eastOverIdl,i.east>W.PI&&(i.east=i.east-W.TWO_PI),i.west>W.PI&&(i.west=i.west-W.TWO_PI)),W.equalsEpsilon(Math.abs(gm.northAngle),W.TWO_PI,W.EPSILON10)&&(i.north=W.PI_OVER_TWO,i.east=W.PI,i.west=-W.PI),W.equalsEpsilon(Math.abs(gm.southAngle),W.TWO_PI,W.EPSILON10)&&(i.south=-W.PI_OVER_TWO,i.east=W.PI,i.west=-W.PI),i};var Vze=new Kc;function Gze(e,t,n){return e.height>=W.PI||e.width>=W.PI?Kc.fromCartesian(t[0],Vze).tangentPlane:As.fromPoints(t,n)}var Wme=new fe;function Eze(e,t,n){return(i,o)=>{if(e.height>=W.PI||e.width>=W.PI){if(e.south<0&&e.north>0){l(o)||(o=[]);for(let s=0;s=W.PI||e.width>=W.PI)return(o,r)=>{if(e.south<0&&e.north>0){let s=n.cartesianToCartographic(o,Wme);return l(r)||(r=new k),r.x=s.longitude/W.PI,r.y=s.latitude/W.PI_OVER_TWO,r}return Kc.fromCartesian(o,r)};let i=As.fromPoints(t,n);return(o,r)=>i.projectPointsOntoPlane(o,r)}function Wze(e,t,n,i){return(o,r)=>!i&&(e.height>=W.PI_OVER_TWO||e.width>=2*W.PI_OVER_THREE)?jn.splitPolygonsOnEquator(o,t,n,r):o}function vze(e,t,n,i){if(t.height>=W.PI||t.width>=W.PI)return it.fromRectangle(t,void 0,Rme);let o=e,r=As.fromPoints(o,n);return jn.computeBoundingRectangle(r.plane.normal,r.projectPointOntoPlane.bind(r),o,i,Rme)}ym.createGeometry=function(e){let t=e._vertexFormat,n=e._ellipsoid,i=e._granularity,o=e._stRotation,r=e._polygonHierarchy,s=e._perPositionHeight,a=e._closeTop,c=e._closeBottom,d=e._arcType,u=e._textureCoordinates,m=l(u),p=r.positions;if(p.length<3)return;let b=e.rectangle,f=jn.polygonsFromHierarchy(r,m,Eze(b,p,n),!s,n,Wze(b,n,d,s)),y=f.hierarchy,_=f.polygons,S=function(L){return L},A=m?jn.polygonsFromHierarchy(u,!0,S,!1,n).polygons:void 0;if(y.length===0)return;let Z=y[0].outerRing,R=vze(Z,b,n,o),G=[],E=e._height,v=e._extrudedHeight,I=e._perPositionHeightExtrude||!W.equalsEpsilon(E,v,0,W.EPSILON2),X={perPositionHeight:s,vertexFormat:t,geometry:void 0,rotationAxis:Gze(b,Z,n).plane.normal,projectTo2d:Lze(b,Z,n),boundingRectangle:R,ellipsoid:n,stRotation:o,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:d},Y;if(I)for(X.extrude=!0,X.top=a,X.bottom=c,X.shadowVolume=e._shadowVolume,X.offsetAttribute=e._offsetAttribute,Y=0;Y<_.length;Y++){let L=xze(n,_[Y],m?A[Y]:void 0,i,y[Y],s,a,c,t,d),P;a&&c?(P=L.topAndBottom,X.geometry=jn.scaleToGeodeticHeightExtruded(P.geometry,E,v,n,s)):a?(P=L.topAndBottom,P.geometry.attributes.position.values=ri.scaleToGeodeticHeight(P.geometry.attributes.position.values,E,n,!s),X.geometry=P.geometry):c&&(P=L.topAndBottom,P.geometry.attributes.position.values=ri.scaleToGeodeticHeight(P.geometry.attributes.position.values,v,n,!0),X.geometry=P.geometry),(a||c)&&(X.wall=!1,P.geometry=w4(X),G.push(P));let N=L.walls;X.wall=!0;for(let O=0;O 2) { + dimension = ceil(log2(float(u_extentsLength))); + } + int regionIndex = getPolygonIndex(dimension, v_textureCoordinates); + + if (regionIndex >= u_extentsLength) { + return; // done (no polygons in this region) + } + + for (int polygonIndex = 0; polygonIndex < u_polygonsLength; polygonIndex++) { + ivec2 positionsLengthAndExtents = getPositionsLengthAndExtentsIndex(lastPolygonIndex); + int positionsLength = positionsLengthAndExtents.x; + int polygonExtentsIndex = positionsLengthAndExtents.y; + lastPolygonIndex += 1; + + // Read the individual polygon extent (2 pixels: south/west, latRange/lonRange) + vec2 extentsSouthWest = getPolygonPosition(lastPolygonIndex); + vec2 extentsRange = getPolygonPosition(lastPolygonIndex + 1); + vec4 polygonExtent = vec4(extentsSouthWest, extentsRange); + lastPolygonIndex += 2; + + if (polygonExtentsIndex < regionIndex) { + lastPolygonIndex += positionsLength; + continue; // skip to next (TODO: could optimize further if we knew how many polygons to skip) + } else if (polygonExtentsIndex > regionIndex) { + break; // done (we know polygons are sorted by regionIndex) + } + + // Only compute signed distance for the relevant part of the atlas + float clipAmount = czm_infinity; + vec4 extents = getExtents(polygonExtentsIndex); + vec2 textureOffset = vec2(mod(float(polygonExtentsIndex), dimension), floor(float(polygonExtentsIndex) / dimension)) / dimension; + vec2 p = getCoordinates((v_textureCoordinates - textureOffset) * dimension, extents); // current pixel position + + // Only consider polygons whos boundingbox includes current pixel (with a slight padding) + float padding = 0.05; // 5% of polygon extents + float polygonNorth = polygonExtent.x + polygonExtent.z; + float polygonEast = polygonExtent.y + polygonExtent.w; + float latPadding = padding * polygonExtent.z; // padding as fraction of latitude range + float lonPadding = padding * polygonExtent.w; // padding as fraction of longitude range + if (p.x < polygonExtent.x - latPadding || p.x > polygonNorth + latPadding || + p.y < polygonExtent.y - lonPadding || p.y > polygonEast + lonPadding) { + lastPolygonIndex += positionsLength; + continue; // skip to next + } + + float s = 1.0; + + // Check each edge for absolute distance. + // Cache the previous vertex to halve the texture reads per iteration. + vec2 prev = getPolygonPosition(lastPolygonIndex + positionsLength - 1); + for (int i = 0; i < positionsLength; i++) { + vec2 a = getPolygonPosition(lastPolygonIndex + i); + vec2 b = prev; + prev = a; + + vec2 ab = b - a; + vec2 pa = p - a; + float t = dot(pa, ab) / dot(ab, ab); + t = clamp(t, 0.0, 1.0); + + vec2 pq = pa - t * ab; + float d = length(pq); + + // Inside / outside computation to determine sign + bvec3 cond = bvec3(p.y >= a.y, + p.y < b.y, + ab.x * pa.y > ab.y * pa.x); + if (all(cond) || all(not(cond))) s = -s; + if (abs(d) < abs(clipAmount)) { + clipAmount = d; + } + } + + // Normalize the range to [0,1] + vec4 result = (s * vec4(clipAmount * length(extents.zw))) / 2.0 + 0.5; + // In the case where we've iterated through multiple polygons, take the minimum + out_FragColor = min(out_FragColor, result); + + lastPolygonIndex += positionsLength; + } +}`;function Vs(e){e=e??B.EMPTY_OBJECT,this._polygons=[],this._totalPositions=0,this.debugShowDistanceTexture=e.debugShowDistanceTexture??!1,this.enabled=e.enabled??!0,this.inverse=e.inverse??!1,this.quality=e.quality??1,this.polygonAdded=new Se,this.polygonRemoved=new Se,this._owner=void 0,this._float32View=void 0,this._extentsFloat32View=void 0,this._extentsCount=0,this._polygonsTexture=void 0,this._extentsTexture=void 0,this._signedDistanceTexture=void 0,this._signedDistanceComputeCommand=void 0;let t=e.polygons;if(l(t)){let n=t.length;for(let i=0;inC.equals(t,e))};Vs.prototype.remove=function(e){let t=this._polygons,n=t.findIndex(i=>nC.equals(i,e));return n===-1?!1:(t.splice(n,1),this.polygonRemoved.raiseEvent(e,n),!0)};function Xze(e,t,n){let i=Math.max(e.height*t,0),o=Math.max(e.width*t,0),r=se.clone(e,n);return r.south-=i,r.west-=o,r.north+=i,r.east+=o,r.south=Math.max(r.south,-Math.PI),r.west=Math.max(r.west,-Math.PI),r.north=Math.min(r.north,Math.PI),r.east=Math.min(r.east,Math.PI),r}function Yze(e,t){let i=[],o=e.length;for(let a=0;aa.extent),s=new Map;return i.forEach((a,c)=>a.polygonIndices.forEach(d=>s.set(d,c))),{extentsList:r,extentsIndexByPolygon:s}}Vs.prototype.removeAll=function(){let e=this._polygons,t=e.length;for(let n=0;nu.computeSphericalExtents()),{extentsList:r,extentsIndexByPolygon:s}=Yze(i,o),a=Array.from(i.keys()).sort((u,m)=>s.get(u)-s.get(m)),c=0;for(let u of a){let m=i[u],p=m.length;t[c++]=p,t[c++]=s.get(u);let b=o[u];t[c++]=b.south,t[c++]=b.west,t[c++]=b.north-b.south,t[c++]=b.east-b.west;for(let f=0;fs+a.length,0);if(n===this.totalPositions||(this._totalPositions=n,this.length===0))return;l(this._signedDistanceComputeCommand)&&(this._signedDistanceComputeCommand.canceled=!0,this._signedDistanceComputeCommand=void 0);let i=this._polygonsTexture,o=this._extentsTexture,r=this._signedDistanceTexture;if(l(i)){let s=i.width*i.height;(s 0.5) { + out_FragColor = vec4(dist, 0.0, 0.0, 1.0); + } else { + out_FragColor = vec4(0.0, dist, 0.0, 1.0); + } +} +`,{uniformMap:{billboard_texture:function(){return e}}});return i.pass=Le.OVERLAY,i}Vs.prototype.queueCommands=function(e){l(this._signedDistanceComputeCommand)&&e.commandList.push(this._signedDistanceComputeCommand)};function Mze(e){let t=e._polygonsTexture,n=e._extentsTexture;return new Fl({fragmentShaderSource:Uv,outputTexture:e._signedDistanceTexture,uniformMap:{u_polygonsLength:function(){return e.length},u_extentsLength:function(){return e.extentsCount},u_extentsTexture:function(){return n},u_polygonTexture:function(){return t}},persists:!1,owner:e,postExecute:()=>{e._signedDistanceComputeCommand=void 0}})}var Pme=new se,kze=new se,Uze=new se;Vs.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._polygons,i=n.length,o=Qt.OUTSIDE;this.inverse&&(o=Qt.INSIDE);let r=e.rectangle;if(!l(r)&&l(e.boundingVolume?.computeCorners)){let s=e.boundingVolume.computeCorners();r=se.fromCartesianArray(s,t,Pme)}l(r)||(r=se.fromBoundingSphere(e.boundingSphere,t,Pme));for(let s=0;s= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = u_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x)))); +} + +vec4 computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = u_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity; + + return vec4(color, opacity); +} +`;var nGn=x(T(),1),Dv=`uniform samplerCube u_radianceMap; + +in vec2 v_textureCoordinates; + + +const float twoSqrtPi = 2.0 * sqrt(czm_pi); + +// Coutesy of https://www.ppsloan.org/publications/StupidSH36.pdf +float computeShBasis(int index, vec3 s) { + if (index == 0) { // l = 0, m = 0 + return 1.0 / twoSqrtPi; + } + + if (index == 1) { // l = 1, m = -1 + return -sqrt(3.0) * s.y / twoSqrtPi; + } + + if (index == 2) { // l = 1, m = 0 + return sqrt(3.0) * s.z / twoSqrtPi; + } + + if (index == 3) { // l = 1, m = 1 + return -sqrt(3.0) * s.x / twoSqrtPi; + } + + if (index == 4) { // l = 2, m = -2 + return sqrt(15.0) * s.y * s.x / twoSqrtPi; + } + + if (index == 5) { // l = 2, m = -1 + return -sqrt(15.0) * s.y * s.z / twoSqrtPi; + } + + if (index == 6) { // l = 2, m = 0 + return sqrt(5.0) * (3.0 * s.z * s.z - 1.0) / 2.0 / twoSqrtPi; + } + + if (index == 7) { // l = 2, m = 1 + return -sqrt(15.0) * s.x * s.z / twoSqrtPi; + } + + if (index == 8) { // l = 2, m = 2 + return sqrt(15.0) * (s.x * s.x - s.y * s.y) / 2.0 / twoSqrtPi; + } + + return 0.0; +} + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +// Sample count is relatively low for the sake of performance, but should still be enough to capture directionality needed for third-order harmonics +const int samples = 256; +const float solidAngle = 1.0 / float(samples); + +void main() { + // Get the current coefficient based on the uv + vec2 uv = v_textureCoordinates.xy * 3.0; + int coefficientIndex = int(floor(uv.y) * 3.0 + floor(uv.x)); + + for (int i = 0; i < samples; ++i) { + vec2 xi = hammersley2D(i, samples); + float phi = czm_twoPi * xi.x; + float cosTheta = 1.0 - 2.0 * sqrt(1.0 - xi.y * xi.y); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 direction = normalize(vec3(sinTheta * cos(phi), cosTheta, sinTheta * sin(phi))); + + // Generate the spherical harmonics basis from the direction + float Ylm = computeShBasis(coefficientIndex, direction); + + vec3 lookupDirection = -direction.xyz; + lookupDirection.z = -lookupDirection.z; + + vec4 color = czm_textureCube(u_radianceMap, lookupDirection, 0.0); + + // Use the relevant function for this coefficient + out_FragColor += Ylm * color * solidAngle * sinTheta; + } + +} +`;var oGn=x(T(),1),Ov=`precision highp float; + +in vec2 v_textureCoordinates; + +uniform vec3 u_faceDirection; // Current cubemap face +uniform vec3 u_positionWC; +uniform mat4 u_enuToFixedFrame; +uniform vec4 u_brightnessSaturationGammaIntensity; +uniform vec4 u_groundColor; // alpha component represent albedo + +vec4 getCubeMapDirection(vec2 uv, vec3 faceDir) { + vec2 scaledUV = uv * 2.0 - 1.0; + + if (faceDir.x != 0.0) { + return vec4(faceDir.x, scaledUV.x * faceDir.x, -scaledUV.y, 0.0); + } else if (faceDir.y != 0.0) { + return vec4(scaledUV.x, -scaledUV.y * faceDir.y, faceDir.y, 0.0); + } else { + return vec4(scaledUV.x * faceDir.z, -faceDir.z, -scaledUV.y, 0.0); + } +} + +void main() { + float height = length(u_positionWC); + float atmosphereInnerRadius = u_radiiAndDynamicAtmosphereColor.y; + float ellipsoidHeight = max(height - atmosphereInnerRadius, 0.0); + + // Scale the position to ensure the sky color is present, even when underground. + vec3 positionWC = u_positionWC / height * (ellipsoidHeight + atmosphereInnerRadius); + + float atmosphereOuterRadius = u_radiiAndDynamicAtmosphereColor.x; + float atmosphereHeight = atmosphereOuterRadius - atmosphereInnerRadius; + + vec3 direction = (u_enuToFixedFrame * getCubeMapDirection(v_textureCoordinates, u_faceDirection)).xyz; + vec3 normalizedDirection = normalize(direction); + + czm_ray ray = czm_ray(positionWC, normalizedDirection); + czm_raySegment intersection = czm_raySphereIntersectionInterval(ray, vec3(0.0), atmosphereInnerRadius); + if (!czm_isEmpty(intersection)) { + intersection = czm_rayEllipsoidIntersectionInterval(ray, vec3(0.0), czm_ellipsoidInverseRadii); + } + + bool onEllipsoid = intersection.start >= 0.0; + float rayLength = czm_branchFreeTernary(onEllipsoid, intersection.start, atmosphereOuterRadius); + + // Compute sky color for each position on a sphere at radius centered around the provided position's origin + vec3 skyPositionWC = positionWC + normalizedDirection * rayLength; + + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirectionWC = normalize(czm_getDynamicAtmosphereLightDirection(skyPositionWC, lightEnum)); + vec3 mieColor; + vec3 rayleighColor; + float opacity; + czm_computeScattering( + ray, + rayLength, + lightDirectionWC, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + vec4 atmopshereColor = czm_computeAtmosphereColor(ray, lightDirectionWC, rayleighColor, mieColor, opacity); + +#ifdef ATMOSPHERE_COLOR_CORRECT + const bool ignoreBlackPixels = true; + atmopshereColor.rgb = czm_applyHSBShift(atmopshereColor.rgb, czm_atmosphereHsbShift, ignoreBlackPixels); +#endif + + vec3 lookupDirection = -normalizedDirection; + // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z. + lookupDirection.x = -lookupDirection.x; + lookupDirection = -normalize(czm_temeToPseudoFixed * lookupDirection); + lookupDirection.x = -lookupDirection.x; + + // Values outside the atmopshere are rendered as black, when they should be treated as transparent + float skyAlpha = clamp((1.0 - ellipsoidHeight / atmosphereHeight) * atmopshereColor.a, 0.0, 1.0); + skyAlpha = czm_branchFreeTernary(length(atmopshereColor.rgb) <= czm_epsilon7, 0.0, skyAlpha); // Treat black as transparent + + // Blend starmap with atmopshere scattering + float intensity = u_brightnessSaturationGammaIntensity.w; + vec4 sceneSkyBoxColor = czm_textureCube(czm_environmentMap, lookupDirection); + vec3 skyBackgroundColor = mix(czm_backgroundColor.rgb, sceneSkyBoxColor.rgb, sceneSkyBoxColor.a); + vec4 combinedSkyColor = vec4(mix(skyBackgroundColor, atmopshereColor.rgb * intensity, skyAlpha), 1.0); + + // Compute ground color based on amount of reflected light, then blend it with ground atmosphere based on height + vec3 up = normalize(positionWC); + float occlusion = max(dot(lightDirectionWC, up), 0.05); + vec4 groundColor = vec4(u_groundColor.rgb * u_groundColor.a * (vec3(intensity * occlusion) + atmopshereColor.rgb), 1.0); + vec4 blendedGroundColor = mix(groundColor, atmopshereColor, clamp(ellipsoidHeight / atmosphereHeight, 0.0, 1.0)); + + vec4 color = czm_branchFreeTernary(onEllipsoid, blendedGroundColor, combinedSkyColor); + + float brightness = u_brightnessSaturationGammaIntensity.x; + float saturation = u_brightnessSaturationGammaIntensity.y; + float gamma = u_brightnessSaturationGammaIntensity.z; + +#ifdef ENVIRONMENT_COLOR_CORRECT + color.rgb = mix(vec3(0.0), color.rgb, brightness); + color.rgb = czm_saturation(color.rgb, saturation); +#endif + color.rgb = pow(color.rgb, vec3(gamma)); // Normally this would be in the ifdef above, but there is a precision issue with the atmopshere scattering transmittance (alpha). Having this line is a workaround for that issue, even when gamma is 1.0. + color.rgb = czm_gammaCorrect(color.rgb); + + out_FragColor = color; +} +`;var sGn=x(T(),1),Bv=`precision highp float; + +in vec3 v_textureCoordinates; + +uniform float u_roughness; +uniform samplerCube u_radianceTexture; +uniform vec3 u_faceDirection; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float alphaRoughness, vec3 N) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float phi = czm_twoPi * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +// Sample count is relatively low for the sake of performance, but should still be enough to prevent artifacting in lower roughnesses +const int samples = 128; + +void main() { + vec3 normal = u_faceDirection; + vec3 V = normalize(v_textureCoordinates); + float roughness = u_roughness; + + vec4 color = vec4(0.0); + float weight = 0.0; + for (int i = 0; i < samples; ++i) { + vec2 xi = hammersley2D(i, samples); + vec3 H = importanceSampleGGX(xi, roughness, V); + vec3 L = 2.0 * dot(V, H) * H - V; // reflected vector + + float NdotL = max(dot(V, L), 0.0); + if (NdotL > 0.0) { + color += vec4(czm_textureCube(u_radianceTexture, L).rgb, 1.0) * NdotL; + weight += NdotL; + } + } + out_FragColor = color / weight; +} +`;var cGn=x(T(),1),zv=`in vec3 position; +out vec3 v_textureCoordinates; + +uniform vec3 u_faceDirection; + +vec3 getCubeMapDirection(vec2 uv, vec3 faceDir) { + vec2 scaledUV = uv; + + if (faceDir.x != 0.0) { + return vec3(faceDir.x, scaledUV.y, scaledUV.x * faceDir.x); + } else if (faceDir.y != 0.0) { + return vec3(scaledUV.x, -faceDir.y, -scaledUV.y * faceDir.y); + } else { + return vec3(scaledUV.x * faceDir.z, scaledUV.y, -faceDir.z); + } +} + +void main() +{ + v_textureCoordinates = getCubeMapDirection(position.xy, u_faceDirection); + v_textureCoordinates.y = -v_textureCoordinates.y; + v_textureCoordinates.z = -v_textureCoordinates.z; + gl_Position = vec4(position, 1.0); +} +`;function gi(e){this._position=void 0,this._radianceMapDirty=!1,this._radianceCommandsDirty=!1,this._convolutionsCommandsDirty=!1,this._irradianceCommandDirty=!1,this._irradianceTextureDirty=!1,this._sphericalHarmonicCoefficientsDirty=!1,this._shouldRegenerateShaders=!1,this._shouldReset=!1,e=e??B.EMPTY_OBJECT;let t=Math.max(Math.floor(Math.min(e.mipmapLevels??7,Math.log2(Xt.maximumCubeMapSize))),0);this._mipmapLevels=t;let n=Math.max(t-1,0)*6;this._radianceMapComputeCommands=new Array(6),this._convolutionComputeCommands=new Array(n),this._irradianceComputeCommand=void 0,this._radianceMapFS=void 0,this._irradianceMapFS=void 0,this._convolveSP=void 0,this._va=void 0,this._radianceMapTextures=new Array(6),this._specularMapTextures=new Array(n),this._radianceCubeMap=void 0,this._irradianceMapTexture=void 0,this._sphericalHarmonicCoefficients=gi.DEFAULT_SPHERICAL_HARMONIC_COEFFICIENTS.slice(),this._lastTime=new Q;let i=Math.max(Math.pow(2,t-1),1);this._textureDimensions=new k(i,i),this._radiiAndDynamicAtmosphereColor=new h,this._sceneEnvironmentMap=void 0,this._backgroundColor=void 0,this._owner=void 0,this.enabled=e.enabled??!0,this.shouldUpdate=!0,this.maximumSecondsDifference=e.maximumSecondsDifference??3600,this.maximumPositionEpsilon=e.maximumPositionEpsilon??1e3,this.atmosphereScatteringIntensity=e.atmosphereScatteringIntensity??2,this.gamma=e.gamma??1,this.brightness=e.brightness??1,this.saturation=e.saturation??1,this.groundColor=e.groundColor??gi.AVERAGE_EARTH_GROUND_COLOR,this.groundAlbedo=e.groundAlbedo??.31}Object.defineProperties(gi.prototype,{owner:{get:function(){return this._owner}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},position:{get:function(){return this._position},set:function(e){h.equalsEpsilon(e,this._position,0,this.maximumPositionEpsilon)||(this._position=h.clone(e,this._position),this._shouldReset=!0)}},radianceCubeMap:{get:function(){return this._radianceCubeMap}},maximumMipmapLevel:{get:function(){return this._mipmapLevels}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}}});gi._maximumComputeCommandCount=8;gi._activeComputeCommandCount=0;gi._nextFrameCommandQueue=[];gi._queueCommand=(e,t)=>{if(gi._activeComputeCommandCount>=gi._maximumComputeCommandCount){gi._nextFrameCommandQueue.push(e);return}t.commandList.push(e),gi._activeComputeCommandCount++};gi._updateCommandQueue=e=>{if(gi._maximumComputeCommandCount=Math.log2(Xt.maximumCubeMapSize),gi._nextFrameCommandQueue.length>0&&gi._activeComputeCommandCounts,u_enuToFixedFrame:()=>c,u_faceDirection:()=>Ur.getDirection(m,Yme),u_positionWC:()=>r,u_brightnessSaturationGammaIntensity:()=>d,u_groundColor:()=>e.groundColor.withAlpha(e.groundAlbedo,Kze)},owner:e});f.postExecute=()=>{if(e.isDestroyed()||f.canceled){gi._activeComputeCommandCount--;return}let y=e._radianceMapComputeCommands;y[b]=void 0;let _=new is({context:n,colorTextures:[e._radianceMapTextures[b]]});_._bind(),e._radianceCubeMap[m].copyFromFramebuffer(),_._unBind(),_.destroy(),gi._activeComputeCommandCount--,y.some(l)||(e._convolutionsCommandsDirty=!0,e._shouldRegenerateShaders=!0)},e._radianceMapComputeCommands[u]=f,gi._queueCommand(f,t),u++}e._radianceCommandsDirty=!1}}function jze(e,t){let n=e._radianceCubeMap;n.generateMipmap();let i=e._mipmapLevels,o=e._textureDimensions,r=o.x/2,s=o.y/2,a=t.context,c=0,d=()=>{let p=e._specularMapTextures.length;c>=p&&(e._irradianceCommandDirty=!0,i>1&&(n.sampler=new Ht({minificationFilter:Dt.LINEAR_MIPMAP_LINEAR}),e._shouldRegenerateShaders=!0,e._va.destroy(),e._va=void 0,e._convolveSP.destroy(),e._convolveSP=void 0))},u=(p,b,f,y,_)=>()=>{if(e.isDestroyed()||p.canceled){gi._activeComputeCommandCount--;return}let S=e._convolutionComputeCommands;S[b]=void 0,n.copyFace(t,f,y,_),c++,gi._activeComputeCommandCount--,f.destroy(),e._specularMapTextures[b]=void 0,d()},m=0;for(let p=1;pp/(i-1),u_radianceTexture:()=>n??a.defaultTexture,u_faceDirection:()=>Ur.getDirection(b,Yme)}});S.postExecute=u(S,m,f,b,p),e._convolutionComputeCommands[m]=S,gi._queueCommand(S,t),++m}r/=2,s/=2}d()}var Nme=new k(3,3);function Qze(e,t){let n=t.context,i=Nme,o=e._irradianceMapTexture;l(o)&&!o.isDestroyed()&&o.destroy(),o=new Ft({context:n,width:i.x,height:i.y,pixelDatatype:ze.FLOAT,pixelFormat:Qe.RGBA}),e._irradianceMapTexture=o;let r=e._irradianceMapFS;l(r)||(r=new He({sources:[Dv]}),e._irradianceMapFS=r);let s=new Fl({fragmentShaderSource:r,outputTexture:o,owner:e,uniformMap:{u_radianceMap:()=>e._radianceCubeMap??n.defaultTexture}});s.postExecute=()=>{if(e.isDestroyed()||s.canceled){gi._activeComputeCommandCount--;return}e._irradianceTextureDirty=!1,e._irradianceComputeCommand=void 0,e._sphericalHarmonicCoefficientsDirty=!0,e._irradianceMapFS=void 0,gi._activeComputeCommandCount--},e._irradianceComputeCommand=s,gi._queueCommand(s,t),e._irradianceTextureDirty=!0}function qze(e,t){let n=t.context;if(!l(e._irradianceMapTexture))return;let i=new is({context:n,colorTextures:[e._irradianceMapTexture],destroyAttachments:!1}),o=Nme,r=n.readPixels({x:0,y:0,width:o.x,height:o.y,framebuffer:i});for(let s=0;s<9;++s)e._sphericalHarmonicCoefficients[s]=h.unpack(r,s*4),h.multiplyByScalar(e._sphericalHarmonicCoefficients[s],e.atmosphereScatteringIntensity,e._sphericalHarmonicCoefficients[s]);i.destroy(),e._irradianceMapTexture.destroy(),e._irradianceMapTexture=void 0,e._shouldRegenerateShaders=!0}gi.prototype.update=function(e){let t=e.mode;if(!(gi.isDynamicUpdateSupported(e)&&this._mipmapLevels>=1)||!this.enabled||!this.shouldUpdate||!l(this._position)||t===re.MORPHING){this._shouldRegenerateShaders=!1;return}gi._updateCommandQueue(e);let i=e.atmosphere.dynamicLighting,o=Bze(this,e)||i===tb.SUNLIGHT&&!Q.equalsEpsilon(e.time,this._lastTime,this.maximumSecondsDifference);if(this._shouldReset||o){this.reset(),this._shouldReset=!1,this._lastTime=Q.clone(e.time,this._lastTime);return}if(this._radianceMapDirty&&(Jze(this,e),this._radianceMapDirty=!1),this._convolutionsCommandsDirty&&(jze(this,e),this._convolutionsCommandsDirty=!1),this._irradianceCommandDirty&&(Qze(this,e),this._irradianceCommandDirty=!1),this._irradianceTextureDirty){this._shouldRegenerateShaders=!1;return}if(this._sphericalHarmonicCoefficientsDirty){qze(this,e),this._sphericalHarmonicCoefficientsDirty=!1;return}this._shouldRegenerateShaders=!1};gi.prototype.isDestroyed=function(){return!1};gi.prototype.destroy=function(){let e=this._radianceMapComputeCommands.length;for(let t=0;tXt.maximumTextureSize||a>Xt.maximumTextureSize){_t("PropertyTableTextureExceedsMaximumSize",`Cannot create a texture for the property table "${e.name}" because it exceeds the maximum texture size of ${Xt.maximumTextureSize}.`);return}let c=oHe(s,r),d=new Ht({wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:Dt.NEAREST,magnificationFilter:qn.NEAREST});return Ft.create({context:i,pixelFormat:Qe.RGBA,pixelDatatype:ze.UNSIGNED_BYTE,sampler:d,flipY:!1,source:{width:r,height:a,arrayBufferView:c}})}function nHe(e,t,n,i){let o=[],r=n.properties;for(let[s,a]of Object.entries(r)){if(!a.isGpuCompatible(jv))continue;let c=e[s],d=l(c)?t[c.values]:iHe(a,i),u=d.length,m=a.cpuBytesPerElement(),p=u/m;if(p!==i)throw new ae(`Property with ID: "${s}" has (${p}), which does not match number of features in the property table: (${i}).`);o.push({view:d,classProperty:a})}return o}function iHe(e,t){let n=e.noData,i=pt.getComponentCount(e.type),o=e.isArray?e.arrayLength:1;e.type===pt.ENUM&&(n=e.enumType.valuesByName[n]),i===1&&(n=[n]),o===1&&(n=[n]);let r=e.cpuBytesPerElement(),s=It.getSizeInBytes(e.valueType),a=new ArrayBuffer(r*t),c=new DataView(a),d=It.getDataViewAccessors(c,e.valueType);for(let u=0;u=r;)S=o[S-r];o.push(S),s[y]=_}_>AHe&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):_>ZHe&&t instanceof Uint8Array&&(t=new Uint16Array(t)),y===c?(c=_,t[a]=_):y===d?(d=_,t[a+1]=_):(u=_,t[a+2]=_),y=zme(i,c,d,u,p,b,f)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function zme(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,d=0,u=B4(e,t,a,c,d);if(u===0)return t;let m=0,p=o?1:0,b=r?1:0,f=B4(e,n,m,p,b);if(f===0)return n;let y=s?1:0,_=0,S=r?1:0,A=B4(e,i,y,_,S);if(A===0)return i;let Z=u&f&A,R,G,E;if(Z&1)R=0,G=1,E=2;else if(Z&2)R=0,E=1,G=2;else if(Z&4)G=0,R=1,E=2;else if(Z&8)G=0,E=1,R=2;else if(Z&16)E=0,R=1,G=2;else if(Z&32)E=0,G=1,R=2;else{let Y=z4(u),g=z4(f),C=z4(A);return Y>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}J5.prototype.updateAttribute=function(e){let t=this._extraVertices,n=e.length,i=n/this._originalVertexCount,o=t.length,r=e.constructor,s=new r(e.length+o*i);s.set(e);for(let a=0;a1;)i>>=1,r.push(Hme(i));let s=new Ft({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:Qe.LUMINANCE,sampler:new Ht({wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:Dt.LINEAR_MIPMAP_LINEAR,magnificationFilter:qn.LINEAR})});return t.outlineTexture=s,s};function Hme(e){let t=new Uint8Array(e);return t[e-1]=192,e===8?t[e-1]=96:e===4?t[e-1]=48:e===2?t[e-1]=24:e===1&&(t[e-1]=12),t}function Kme(e,t){this._originalVertexCount=t,this._edges=new Set;for(let n=0;n{this._resourcesLoaded=!0}).catch(r=>{this._processError=r})),l(this._processError)){this._state=$o.FAILED;let r=this._processError;this._processError=void 0,Q5(this,r)}let n=this._textureErrors.pop();if(l(n)){let r=this.getError("Failed to load glTF texture",n);throw r.name="TextureError",r}if(this._state===$o.FAILED)return!1;let i=!1;try{i=this._process(t)}catch(r){this._state=$o.FAILED,Q5(this,r)}let o=!1;try{o=this._processTextures(t)}catch(r){this._textureState=$o.FAILED,Q5(this,r)}return this._incrementallyLoadTextures?i:i&&o}isUnloaded(){return this._state===$o.UNLOADED}unload(){l(this._gltfJsonLoader)&&!this._gltfJsonLoader.isDestroyed()&&Li.unload(this._gltfJsonLoader),this._gltfJsonLoader=void 0,SJe(this),she(this),AJe(this),ZJe(this),CJe(this),RJe(this),this._components=void 0,this._typedArray=void 0,this._state=$o.UNLOADED}};async function lKe(e){e._state=$o.LOADING,e._textureState=$o.LOADING;try{let t=Li.getGltfJsonLoader({gltfResource:e._gltfResource,baseResource:e._baseResource,typedArray:e._typedArray,gltfJson:e._gltfJson});return e._gltfJsonLoader=t,await t.load(),e.isDestroyed()||e.isUnloaded()||t.isDestroyed()?void 0:(e._state=$o.LOADED,e._textureState=$o.LOADED,e)}catch(t){if(e.isDestroyed())return;e._state=$o.FAILED,e._textureState=$o.FAILED,Q5(e,t)}}async function dKe(e,t){mn.supportsWebP.initialized||await mn.supportsWebP.initialize(),e._supportedImageFormats=new e2({webp:mn.supportsWebP(),basis:t.context.supportsBasis});let n=_Je(e,t);return e._state=$o.PROCESSING,e._textureState=$o.PROCESSING,l(e._gltfJsonLoader)&&e._releaseGltfJson&&(Li.unload(e._gltfJsonLoader),e._gltfJsonLoader=void 0),n}function Q5(e,t){throw e.unload(),e.getError("Failed to load glTF",t)}function uKe(e,t){let n=!0,i=e._geometryLoaders;for(let s=0;s{if(e.isDestroyed())return;let s=j4(o,t,i.typedArray);n.set(s)});return e._loaderPromises.push(r),n}function _d(e,t){if(l(t))return e===Number?t[0]:e.unpack(t)}function xKe(e){return e===Number?0:new e}function TKe(e){switch(e){case J.BYTE:return 127;case J.UNSIGNED_BYTE:return 255;case J.SHORT:return 32767;case J.UNSIGNED_SHORT:return 65535;default:return 1}}var _Ke={VEC2:new k(-1,-1),VEC3:new h(-1,-1,-1),VEC4:new ce(-1,-1,-1,-1)};function SKe(e,t){let n=TKe(e.componentDatatype),i=_Ke[e.type],o=e.min;l(o)&&(o=t.divideByScalar(o,n,o),o=t.maximumByComponent(o,i,o));let r=e.max;l(r)&&(r=t.divideByScalar(r,n,r),r=t.maximumByComponent(r,i,r)),e.min=o,e.max=r}function AKe(e,t,n){let i=e.decodeMatrix,o=_d(n,e.decodedMin),r=_d(n,e.decodedMax);l(o)&&l(r)&&(t.min=o,t.max=r);let s=new Sn.Quantization;s.componentDatatype=t.componentDatatype,s.type=t.type,i.length===4?(s.quantizedVolumeOffset=i[2],s.quantizedVolumeStepSize=i[0]):i.length===9?(s.quantizedVolumeOffset=new k(i[6],i[7]),s.quantizedVolumeStepSize=new k(i[0],i[4])):i.length===16?(s.quantizedVolumeOffset=new h(i[12],i[13],i[14]),s.quantizedVolumeStepSize=new h(i[0],i[5],i[10])):i.length===25&&(s.quantizedVolumeOffset=new ce(i[20],i[21],i[22],i[23]),s.quantizedVolumeStepSize=new ce(i[0],i[6],i[12],i[18])),t.quantization=s}function ZKe(e,t,n,i,o){let r=e.accessors[t],s=kt.getMathType(r.type),a=r.normalized??!1,c=new wHe;c.name=n,c.semantic=i,c.setIndex=o,c.constant=xKe(s),c.componentDatatype=r.componentType,c.normalized=a,c.count=r.count,c.type=r.type,c.min=_d(s,r.min),c.max=_d(s,r.max),c.byteOffset=r.byteOffset,c.byteStride=yd(e,r),Bi(r,"WEB3D_quantized_attributes")&&AKe(r.extensions.WEB3D_quantized_attributes,c,s);let d=c.semantic===ct.POSITION||c.semantic===ct.NORMAL||c.semantic===ct.TANGENT||c.semantic===ct.TEXCOORD||c.semantic===ct.FEATURE_ID||c.semantic===ct.SCALE||c.semantic===ct.ROTATION;return e.extensionsRequired?.includes("KHR_mesh_quantization")&&a&&d&&SKe(c,s),c}function uhe(e){let n=/^\w+_(\d+)$/.exec(e);if(n!==null)return parseInt(n[1])}var CKe={gltfSemantic:void 0,renamedSemantic:void 0,modelSemantic:void 0};function Q4(e,t,n){let i=n;e._renameBatchIdSemantic&&(n==="_BATCHID"||n==="BATCHID")&&(i="_FEATURE_ID_0");let o=t.fromGltfSemantic(i),r=CKe;return r.gltfSemantic=n,r.renamedSemantic=i,r.modelSemantic=o,r}function RKe(e){let t=e===ct.POSITION,n=e===ct.FEATURE_ID,i=e===ct.TEXCOORD;return t||n||i}function VKe(e,t,n,i){if(e.byteOffset=0,e.byteStride=void 0,e.quantization=t.quantization,n&&(e.buffer=t.buffer),i){let o=l(t.quantization)?t.quantization.componentDatatype:e.componentDatatype;e.typedArray=J.createArrayBufferView(o,t.typedArray.buffer)}}function GKe(e,t,n,i){if(e.byteOffset=0,e.byteStride=void 0,n&&(e.buffer=t.buffer),i&&l(t.typedArray)&&(e.typedArray=J.createArrayBufferView(e.componentDatatype,t.typedArray.buffer)),e.semantic===ct.POSITION){let o=s=>{let a=1/0,c=-1/0,d=1/0,u=-1/0,m=1/0,p=-1/0;for(let b=0;b{l(o)&&l(o.attributes)&&l(o.attributes[p])?VKe(S,A,s,a):l(r)?GKe(S,A,s,a):EKe(d,u,S,A,s,a)},S}function hhe(e,t,n,i,o,r,s,a,c){let d=n.modelSemantic,u=d===ct.POSITION,m=d===ct.FEATURE_ID,p=u&&!s&&e._loadAttributesFor2D&&!c.scene3DOnly,b=u&&e._enablePick&&!c.context.webgl2,f=e._loadForClassification&&m,y=e._loadAttributesAsTypedArray,_=!y,S=y||p||b||f,R=mhe(e,t,n,i,o,r,a?!1:_,a?!0:S,c),G=new p_.AttributeLoadPlan(R);return G.loadBuffer=_,G.loadTypedArray=S,G}function LKe(e,t,n,i,o){let r=e.gltfJson.accessors,s=l(n.ROTATION),a=l(n.TRANSLATION)&&l(r[n.TRANSLATION].min)&&l(r[n.TRANSLATION].max),c=Q4(e,Ar,i),d=c.modelSemantic,u=d===Ar.TRANSLATION||d===Ar.ROTATION||d===Ar.SCALE,m=d===Ar.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&u||!o.context.instancedArrays,b=e._enablePick&&!o.context.webgl2,f=!p,y=e._loadAttributesFor2D&&!o.scene3DOnly;return mhe(e,t,c,void 0,void 0,void 0,f,p||m&&(!a||y||b),o)}function WKe(e,t,n,i,o,r){let s=e.gltfJson.accessors[t],a=s.bufferView,c=n.extensions??B.EMPTY_OBJECT,d=c.KHR_draco_mesh_compression,u=l(c.EXT_mesh_primitive_edge_visibility);if(!l(d)&&!l(a))return;let m=new MHe;m.count=s.count;let p=e._loadAttributesAsTypedArray,b=(e._loadIndicesForWireframe||e._enablePick)&&!r.context.webgl2,f=e._loadForClassification&&i,_=!p,S=p||b||f||u,R=pKe(e,t,n,d,o?!1:_,o?!0:S,r),G=e._geometryLoaders.length;e._geometryLoaders.push(R);let E=R.load();e._loaderPromises.push(E),e._geometryCallbacks[G]=()=>{m.indexDatatype=R.indexDatatype,m.buffer=R.buffer,m.typedArray=R.typedArray};let v=new p_.IndicesLoadPlan(m);return v.loadBuffer=_,v.loadTypedArray=S,v}function Pl(e,t,n,i){let o=e.gltfJson,r=xd.getImageIdFromTexture({gltf:o,textureId:t.index,supportedImageFormats:e._supportedImageFormats});if(!l(r))return;let s=Li.getTextureLoader({gltf:o,textureInfo:t,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:n,asynchronous:e._asynchronous}),a=xd.createModelTextureReader({textureInfo:t}),c=e._textureLoaders.length;e._textureLoaders.push(s);let d=s.load().catch(u=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw u;e._textureState=$o.FAILED,e._textureErrors.push(u)}});return e._texturesPromises.push(d),e._textureCallbacks[c]=()=>{a.texture=s.texture,l(i)&&(a.texture.sampler=i)},a}function vKe(e,t,n){let{diffuseTexture:i,specularGlossinessTexture:o,diffuseFactor:r,specularFactor:s,glossinessFactor:a}=t,c=new iKe;return l(i)&&(c.diffuseTexture=Pl(e,i,n)),l(o)&&(c.specularGlossinessTexture=Pl(e,o,n)),c.diffuseFactor=_d(ce,r),c.specularFactor=_d(h,s),c.glossinessFactor=a,c}function FKe(e,t,n){let{baseColorTexture:i,metallicRoughnessTexture:o,baseColorFactor:r,metallicFactor:s,roughnessFactor:a}=t,c=new nKe;return l(i)&&(c.baseColorTexture=Pl(e,i,n)),l(o)&&(c.metallicRoughnessTexture=Pl(e,o,n)),c.baseColorFactor=_d(ce,r),c.metallicFactor=s,c.roughnessFactor=a,c}function IKe(e,t,n){let{specularFactor:i,specularTexture:o,specularColorFactor:r,specularColorTexture:s}=t,a=new oKe;return l(o)&&(a.specularTexture=Pl(e,o,n)),l(s)&&(a.specularColorTexture=Pl(e,s,n)),a.specularFactor=i,a.specularColorFactor=_d(h,r),a}function PKe(e,t,n){let{anisotropyStrength:i=H4.DEFAULT_ANISOTROPY_STRENGTH,anisotropyRotation:o=H4.DEFAULT_ANISOTROPY_ROTATION,anisotropyTexture:r}=t,s=new H4;return l(r)&&(s.anisotropyTexture=Pl(e,r,n)),s.anisotropyStrength=i,s.anisotropyRotation=o,s}function XKe(e,t,n){let{clearcoatFactor:i=K4.DEFAULT_CLEARCOAT_FACTOR,clearcoatTexture:o,clearcoatRoughnessFactor:r=K4.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,clearcoatRoughnessTexture:s,clearcoatNormalTexture:a}=t,c=new K4;return l(o)&&(c.clearcoatTexture=Pl(e,o,n)),l(s)&&(c.clearcoatRoughnessTexture=Pl(e,s,n)),l(a)&&(c.clearcoatNormalTexture=Pl(e,a,n)),c.clearcoatFactor=i,c.clearcoatRoughnessFactor=r,c}function YKe(e){if(!l(e))return;let t=new rKe;if(l(e.width)){let n=e.width;n>0&&Math.floor(n)===n&&(t.width=n)}if(l(e.pattern)){let n=e.pattern;n>=0&&n<=65535&&Math.floor(n)===n&&(t.pattern=n)}if(!(!l(t.width)&&!l(t.pattern)))return t}function NKe(e,t,n){let i=new sKe,o=t.extensions??B.EMPTY_OBJECT,r=o.KHR_materials_pbrSpecularGlossiness,s=o.KHR_materials_specular,a=o.KHR_materials_anisotropy,c=o.KHR_materials_clearcoat,d=t.pbrMetallicRoughness;i.unlit=l(o.KHR_materials_unlit),l(r)?i.specularGlossiness=vKe(e,r,n):(l(d)&&(i.metallicRoughness=FKe(e,d,n)),l(s)&&!i.unlit&&(i.specular=IKe(e,s,n)),l(a)&&!i.unlit&&(i.anisotropy=PKe(e,a,n)),l(c)&&!i.unlit&&(i.clearcoat=XKe(e,c,n))),l(t.emissiveTexture)&&(i.emissiveTexture=Pl(e,t.emissiveTexture,n)),l(t.normalTexture)&&!e._loadForClassification&&(i.normalTexture=Pl(e,t.normalTexture,n)),l(t.occlusionTexture)&&(i.occlusionTexture=Pl(e,t.occlusionTexture,n)),i.emissiveFactor=_d(h,t.emissiveFactor),i.alphaMode=t.alphaMode,i.alphaCutoff=t.alphaCutoff,i.doubleSided=t.doubleSided;let u=o.BENTLEY_materials_point_style;if(l(u)&&l(u.diameter)){let m=u.diameter;m>=1&&(i.pointDiameter=Math.floor(m))}return i.lineStyle=YKe(o.BENTLEY_materials_line_style),i}function fhe(e,t){let n=new ahe;return n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.propertyTableId=e.propertyTable,n.setIndex=e.attribute,n.label=e.label,n.positionalLabel=t,n}function phe(e,t,n,i){let o=new ahe,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=uhe(r.attribute),o.positionalLabel=i,o}function bhe(e,t){let n=new lhe;return n.propertyTableId=e.propertyTable,n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.label=e.label,n.positionalLabel=t,n.offset=0,n.repeat=1,n}function ghe(e,t,n,i){let o=new lhe,r=e.featureIds;o.propertyTableId=t,o.featureCount=n,o.offset=r.constant??0;let s=r.divisor??0;return o.repeat=s===0?void 0:s,o.positionalLabel=i,o}function wKe(e,t,n,i){let o=new che;o.featureCount=t.featureCount,o.nullFeatureId=t.nullFeatureId,o.propertyTableId=t.propertyTable,o.label=t.label,o.positionalLabel=i;let r=t.texture;o.textureReader=Pl(e,r,n,Ht.NEAREST);let a=(l(r.channels)?r.channels:[0]).map(function(c){return"rgba".charAt(c)}).join("");return o.textureReader.channels=a,o}function MKe(e,t,n,i,o,r){let s=new che,a=t.featureIds,c=a.texture;return s.featureCount=o,s.propertyTableId=n,s.textureReader=Pl(e,c,i,Ht.NEAREST),s.textureReader.channels=a.channels,s.positionalLabel=r,s}function kKe(e,t,n,i,o){let r=new kHe,s=void 0,a=void 0,c=void 0,d=!1;for(let u in t){if(!t.hasOwnProperty(u))continue;let m=t[u],p=Q4(e,ct,u),b=hhe(e,m,p,s,a,c,d,n,o);r.attributes.push(b.attribute),i.attributePlans.push(b)}return r}function UKe(e){let i=e?.KHR_gaussian_splatting?.extensions?.KHR_gaussian_splatting_compression_spz_2;if(l(i))return i}function yhe(e,t){if(!l(t))return;let n=e.gltfJson.materials;if(!l(n)||t<0||t>=n.length)return;let i=n[t];if(!l(i))return;let o=i.pbrMetallicRoughness??B.EMPTY_OBJECT,r=_d(ce,o.baseColorFactor);return l(r)?r:new ce(1,1,1,1)}function DKe(e){switch(e){case J.UNSIGNED_BYTE:return 255;case J.UNSIGNED_SHORT:return 65535;case J.UNSIGNED_INT:return 4294967295;default:throw new ae("EXT_mesh_primitive_edge_visibility line strings indices must use unsigned scalar component types.")}}function OKe(e,t,n){if(!l(t)||t.length===0)return;let i=new Array(t.length);for(let o=0;on[s]);let r=t.inverseBindMatrices;if(l(r)){let s=e.gltfJson.accessors[r];i.inverseBindMatrices=Ry(e,s)}else i.inverseBindMatrices=new Array(o.length).fill(F.IDENTITY);return i}function aJe(e,t){let n=e.gltfJson.skins;if(e._loadForClassification||!l(n))return[];let i=n.map(function(r,s){let a=sJe(e,r,t);return a.index=s,a}),o=e.gltfJson.nodes;for(let r=0;r0&&(i|=n.COLOR_BUFFER_BIT),l(this._colorFramebuffer.depthStencilTexture)&&(i|=n.DEPTH_BUFFER_BIT|(t?n.STENCIL_BUFFER_BIT:0)),n.blitFramebuffer(0,0,this._width,this._height,0,0,this._width,this._height,i,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)};cC.prototype.isDestroyed=function(){return!1};cC.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),he(this)};var u2=cC;var Pvn=x(T(),1);var Gvn=x(T(),1);var Xl={RGBA4:ne.RGBA4,RGBA8:ne.RGBA8,RGBA16F:ne.RGBA16F,RGBA32F:ne.RGBA32F,RGB5_A1:ne.RGB5_A1,RGB565:ne.RGB565,DEPTH_COMPONENT16:ne.DEPTH_COMPONENT16,STENCIL_INDEX8:ne.STENCIL_INDEX8,DEPTH_STENCIL:ne.DEPTH_STENCIL,DEPTH24_STENCIL8:ne.DEPTH24_STENCIL8,validate:function(e){return e===Xl.RGBA4||e===Xl.RGBA8||e===Xl.RGBA16F||e===Xl.RGBA32F||e===Xl.RGB5_A1||e===Xl.RGB565||e===Xl.DEPTH_COMPONENT16||e===Xl.STENCIL_INDEX8||e===Xl.DEPTH_STENCIL||e===Xl.DEPTH24_STENCIL8},getColorFormat:function(e){return e===ne.FLOAT?Xl.RGBA32F:e===ne.HALF_FLOAT_OES?Xl.RGBA16F:Xl.RGBA8}};Object.freeze(Xl);var Yl=Xl;function m2(e){e=e??B.EMPTY_OBJECT;let t=e.context,n=t._gl,i=Xt.maximumRenderbufferSize,o=e.format??Yl.RGBA4,r=l(e.width)?e.width:t.drawingBufferWidth,s=l(e.height)?e.height:t.drawingBufferHeight,a=e.numSamples??1;this._gl=n,this._format=o,this._width=r,this._height=s,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),a>1?n.renderbufferStorageMultisample(n.RENDERBUFFER,a,o,r,s):n.renderbufferStorage(n.RENDERBUFFER,o,r,s),n.bindRenderbuffer(n.RENDERBUFFER,null)}Object.defineProperties(m2.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});m2.prototype._getRenderbuffer=function(){return this._renderbuffer};m2.prototype.isDestroyed=function(){return!1};m2.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),he(this)};var cu=m2;function ra(e){e=e??B.EMPTY_OBJECT,this._numSamples=e.numSamples??1,this._colorAttachmentsLength=e.colorAttachmentsLength??1,this._color=e.color??!0,this._depth=e.depth??!1,this._depthStencil=e.depthStencil??!1,this._supportsDepthTexture=e.supportsDepthTexture??!1,this._createColorAttachments=e.createColorAttachments??!0,this._createDepthAttachments=e.createDepthAttachments??!0,this._pixelDatatype=e.pixelDatatype,this._pixelFormat=e.pixelFormat,this._width=void 0,this._height=void 0,this._framebuffer=void 0,this._multisampleFramebuffer=void 0,this._colorTextures=void 0,this._color&&(this._colorTextures=new Array(this._colorAttachmentsLength),this._colorRenderbuffers=new Array(this._colorAttachmentsLength)),this._colorRenderbuffer=void 0,this._depthStencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthRenderbuffer=void 0,this._depthTexture=void 0,this._attachmentsDirty=!1}Object.defineProperties(ra.prototype,{framebuffer:{get:function(){return this._numSamples>1?this._multisampleFramebuffer.getRenderFramebuffer():this._framebuffer}},numSamples:{get:function(){return this._numSamples}},status:{get:function(){return this.framebuffer.status}}});ra.prototype.isDirty=function(e,t,n,i,o){n=n??1;let r=this._width!==e||this._height!==t,s=this._numSamples!==n,a=l(i)&&this._pixelDatatype!==i||l(o)&&this._pixelFormat!==o,c=n===1?l(this._framebuffer):l(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!l(this._colorTextures[0])};ra.prototype.update=function(e,t,n,i,o,r){if(i=e.msaa?i??1:1,o=o??(this._color?this._pixelDatatype??ze.UNSIGNED_BYTE:void 0),r=r??(this._color?this._pixelFormat??Qe.RGBA:void 0),this.isDirty(t,n,i,o,r)){if(this.destroy(),this._width=t,this._height=n,this._numSamples=i,this._pixelDatatype=o,this._pixelFormat=r,this._attachmentsDirty=!1,this._color&&this._createColorAttachments){for(let s=0;s1){let a=Yl.getColorFormat(o);this._colorRenderbuffers[s]=new cu({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new Ft({context:e,width:t,height:n,pixelFormat:Qe.DEPTH_STENCIL,pixelDatatype:ze.UNSIGNED_INT_24_8,sampler:Ht.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new cu({context:e,width:t,height:n,format:Yl.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new cu({context:e,width:t,height:n,format:Yl.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Ft({context:e,width:t,height:n,pixelFormat:Qe.DEPTH_COMPONENT,pixelDatatype:ze.UNSIGNED_INT,sampler:Ht.NEAREST}):this._depthRenderbuffer=new cu({context:e,width:t,height:n,format:Yl.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new u2({context:e,width:this._width,height:this._height,colorTextures:this._colorTextures,colorRenderbuffers:this._colorRenderbuffers,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}):this._framebuffer=new is({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};ra.prototype.getColorTexture=function(e){return e=e??0,this._colorTextures[e]};ra.prototype.setColorTexture=function(e,t){t=t??0,this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};ra.prototype.getColorRenderbuffer=function(e){return e=e??0,this._colorRenderbuffers[e]};ra.prototype.setColorRenderbuffer=function(e,t){t=t??0,this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};ra.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};ra.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};ra.prototype.getDepthTexture=function(){return this._depthTexture};ra.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};ra.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};ra.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};ra.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};ra.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};ra.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};ra.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};ra.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};ra.prototype.destroy=function(){if(this._color){let e=this._colorTextures,t=this._colorRenderbuffers;for(let n=0;n=s.clientWidth)d=!0;else{if(Z.x>s.clientWidth*.5){a.width=Z.x,c.frustum.right=p.x-S,Qc=f2(r,n,c,Qc),Rc.clipToGLWindowCoordinates(a,Qc,$4),a.x+=Z.x,c.position.x=-c.position.x;let R=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-R,Qc=f2(r,n,c,Qc),Rc.clipToGLWindowCoordinates(a,Qc,eQ)}else{a.x+=Z.x,a.width-=Z.x,c.frustum.left=-p.x-S,Qc=f2(r,n,c,Qc),Rc.clipToGLWindowCoordinates(a,Qc,$4),a.x=a.x-a.width,c.position.x=-c.position.x;let R=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-R,Qc=f2(r,n,c,Qc),Rc.clipToGLWindowCoordinates(a,Qc,eQ)}h.clone(b,c.position),c.frustum=f.clone(),i=k.clone($4,i),(i.x<0||i.x>s.clientWidth)&&(i.x=eQ.x)}}if(o.mode!==re.SCENE2D||d){if(Qc=f2(r,n,c,Qc),Qc.z<0&&!(c.frustum instanceof fn)&&!(c.frustum instanceof rs))return;i=Rc.clipToGLWindowCoordinates(a,Qc,i)}return i.y=s.clientHeight-i.y,i};Rc.worldToDrawingBufferCoordinates=function(e,t,n){if(n=Rc.worldToWindowCoordinates(e,t,n),!!l(n))return Rc.transformWindowToDrawingBuffer(e,n,n)};var sb=new h,XJe=new fe;Rc.computeActualEllipsoidPosition=function(e,t,n){let i=e.mode;if(i===re.SCENE3D)return h.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,XJe);if(!l(r))return;if(o.project(r,sb),i===re.COLUMBUS_VIEW)return h.fromElements(sb.z,sb.x,sb.y,n);if(i===re.SCENE2D)return h.fromElements(0,sb.x,sb.y,n);let s=e.morphTime;return h.fromElements(W.lerp(sb.z,t.x,s),W.lerp(sb.x,t.y,s),W.lerp(sb.y,t.z,s),n)};var Ahe=new h,Zhe=new h,Che=new F;Rc.clipToGLWindowCoordinates=function(e,t,n){return h.divideByScalar(t,t.w,Ahe),F.computeViewportTransformation(e,0,1,Che),F.multiplyByPoint(Che,Ahe,Zhe),k.fromCartesian3(Zhe,n)};Rc.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,o=e.drawingBufferWidth/i.clientWidth,r=e.drawingBufferHeight/i.clientHeight;return k.fromElements(t.x*o,t.y*r,n)};var YJe=new ce,Rhe=new ce;Rc.drawingBufferToWorldCoordinates=function(e,t,n,i){let r=e.context.uniformState,s=r.currentFrustum,a=s.x,c=s.y;if(e.frameState.useLogDepth){let b=n*r.log2FarDepthFromNearPlusOne,f=Math.pow(2,b)-1;n=c*(1-a/(f+a))/(c-a)}let d=e.view.passState.viewport,u=ce.clone(ce.UNIT_W,YJe);u.x=(t.x-d.x)/d.width*2-1,u.y=(t.y-d.y)/d.height*2-1,u.z=n*2-1,u.w=1;let m,p=e.camera.frustum;if(l(p.fovy)){m=F.multiplyByVector(r.inverseViewProjection,u,Rhe);let b=1/m.w;h.multiplyByScalar(m,b,m)}else{let b=p.offCenterFrustum;l(b)&&(p=b),m=Rhe,m.x=(u.x*(p.right-p.left)+p.left+p.right)*.5,m.y=(u.y*(p.top-p.bottom)+p.bottom+p.top)*.5,m.z=(u.z*(a-c)-a-c)*.5,m.w=1,m=F.multiplyByVector(r.inverseView,m,m)}return h.fromCartesian4(m,i)};var no=Rc;var TFn=x(T(),1);var F2n=x(T(),1);var dC={};dC._deprecationWarning=Ca;var ab=Uint32Array.BYTES_PER_ELEMENT;dC.parse=function(e,t){let n=t??0;t=n;let i=new Uint8Array(e),o=new DataView(e);t+=ab;let r=o.getUint32(t,!0);if(r!==1)throw new ae(`Only Batched 3D Model version 1 is supported. Version ${r} is not.`);t+=ab;let s=o.getUint32(t,!0);t+=ab;let a=o.getUint32(t,!0);t+=ab;let c=o.getUint32(t,!0);t+=ab;let d=o.getUint32(t,!0);t+=ab;let u=o.getUint32(t,!0);t+=ab;let m;d>=570425344?(t-=ab*2,m=a,d=c,u=0,a=0,c=0,dC._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel.")):u>=570425344&&(t-=ab,m=d,d=a,u=c,a=0,c=0,dC._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel."));let p;a===0?p={BATCH_LENGTH:m??0}:(p=_r(i,t,a),t+=a);let b=new Uint8Array(e,t,c);t+=c;let f,y;d>0&&(f=_r(i,t,d),t+=d,u>0&&(y=new Uint8Array(e,t,u),y=new Uint8Array(y),t+=u));let _=n+s-t;if(_===0)throw new ae("glTF byte length must be greater than 0.");let S;return t%4===0?S=new Uint8Array(e,t,_):(dC._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),S=new Uint8Array(i.subarray(t,t+_))),{batchLength:m,featureTableJson:p,featureTableBinary:b,batchTableJson:f,batchTableBinary:y,gltf:S}};var p2=dC;var Y2n=x(T(),1);function b2(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function Vhe(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return l(a)||(a=J.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function NJe(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return l(r)||(r=J.createTypedArray(n,i),o[t]=r),r}b2.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(t=t??J.UNSIGNED_INT,n=n??1,Vhe(this,e,t,n,1,i.byteOffset)):i};b2.prototype.hasProperty=function(e){return l(this.json[e])};b2.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(l(i.componentType)&&(t=J.fromName(i.componentType)),Vhe(this,e,t,n,this.featuresLength,i.byteOffset)):NJe(this,e,t,i)};b2.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!l(r))return;let s=this.getPropertyArray(e,t,n);if(n===1)return s[i];for(let a=0;a0&&(f=_r(i,t,d),t+=d,u>0&&(y=new Uint8Array(e,t,u),y=new Uint8Array(y),t+=u));let _=n+s-t;if(_===0)throw new ae("glTF byte length must be greater than 0.");let S;return t%4===0?S=new Uint8Array(e,t,_):($5._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),S=new Uint8Array(i.subarray(t,t+_))),{gltfFormat:m,featureTableJson:p,featureTableBinary:b,batchTableJson:f,batchTableBinary:y,gltf:S}};var T2=$5;var lb={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},eD=Sn.Attribute,rje=Sn.FeatureIdAttribute,Fhe=Sn.Instances,rQ=class extends zi{constructor(t){super(),t=t??B.EMPTY_OBJECT;let n=t.i3dmResource,i=t.arrayBuffer,o=t.baseResource,r=t.byteOffset??0,s=t.releaseGltfJson??!1,a=t.asynchronous??!0,c=t.incrementallyLoadTextures??!0,d=t.upAxis??Xi.Y,u=t.forwardAxis??Xi.X,m=t.loadAttributesAsTypedArray??!1,p=t.loadIndicesForWireframe??!1,b=t.loadPrimitiveOutline??!0,f=t.enablePick??!1;o=l(o)?o:n.clone(),this._i3dmResource=n,this._baseResource=o,this._arrayBuffer=i,this._byteOffset=r,this._releaseGltfJson=s,this._asynchronous=a,this._incrementallyLoadTextures=c,this._upAxis=d,this._forwardAxis=u,this._loadAttributesAsTypedArray=m,this._loadIndicesForWireframe=p,this._loadPrimitiveOutline=b,this._enablePick=f,this._state=lb.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}get texturesLoaded(){return this._gltfLoader?.texturesLoaded}get cacheKey(){}get components(){return this._components}load(){if(l(this._promise))return this._promise;let t=T2.parse(this._arrayBuffer,this._byteOffset),n=t.featureTableJson,i=t.featureTableBinary,o=t.batchTableJson,r=t.batchTableBinary,s=t.gltfFormat,a=new Yh(n,i);this._featureTable=a;let c=a.getGlobalProperty("INSTANCES_LENGTH");if(a.featuresLength=c,!l(c))throw new ae("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=c;let d=a.getGlobalProperty("RTC_CENTER",J.FLOAT,3);l(d)&&(this._transform=F.fromTranslation(h.fromArray(d))),this._batchTable={json:o,binary:r};let u={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,enablePick:this._enablePick,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(s===0){let p=pd(t.gltf);p=p.replace(/[\s\0]+$/,"");let b=this._baseResource.getDerivedResource({url:p});u.gltfResource=b,u.baseResource=b}else u.gltfResource=this._i3dmResource,u.typedArray=t.gltf;let m=new au(u);return this._gltfLoader=m,this._state=lb.LOADING,this._promise=m.load().then(()=>{if(!this.isDestroyed())return this._state=lb.PROCESSING,this}).catch(p=>{if(!this.isDestroyed())throw sje(this,p)}),this._promise}process(t){if(this._state===lb.READY)return!0;let n=this._gltfLoader,i=!1;if(this._state===lb.PROCESSING&&(i=n.process(t)),!i)return!1;let o=n.components;return o.transform=F.multiplyTransformation(this._transform,o.transform,o.transform),lje(this,o,t),aje(this,o),this._components=o,this._arrayBuffer=void 0,this._state=lb.READY,!0}isUnloaded(){return this._state===lb.UNLOADED}unload(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),fje(this),this._components=void 0,this._arrayBuffer=void 0,this._state=lb.UNLOADED}};function sje(e,t){return e.unload(),e._state=lb.FAILED,e.getError("Failed to load i3dm",t)}function aje(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(l(n.json))o=cb({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new Il({name:Fh.BATCH_TABLE_CLASS_NAME,count:i});o=new Va({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var tD=new h,sQ=new Array(4),cje=new F;function lje(e,t,n){let i,o=e._featureTable,r=e._instancesLength;if(r===0)return;let s=o.getGlobalProperty("RTC_CENTER",J.FLOAT,3),a=o.getGlobalProperty("EAST_NORTH_UP"),c=o.hasProperty("NORMAL_UP")||o.hasProperty("NORMAL_UP_OCT32P")||a,d=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),u=uje(o,r),m;c&&(m=new Float32Array(4*r));let p;d&&(p=new Float32Array(3*r));let b=new Float32Array(r),f=h.unpackArray(u),y=new h,_=new h,S=new h,A=new h,Z=new $,R=new Ne,G=new Array(4),E=new h,v=new Array(3),I=new F;if(!l(s)||h.equals(h.unpack(s),h.ZERO)){let M=ue.fromPoints(f);for(i=0;i0&&(M.instances=O?dje(X):X,O=!0)}}function dje(e){let t=new Fhe;t.transformInWorldSpace=e.transformInWorldSpace;let n=e.attributes,i=n.length;for(let o=0;o=n[t]){if(t+1=0&&e>=n[t-1])return t-1;let o;if(e>n[t])for(o=t;o=n[o]&&e=0&&!(e>=n[o]&&en&&(r=Math.floor((e-n)/o)+1,e-=r*o),e};uC.prototype.clampTime=function(e){let t=this.times;return W.clamp(e,t[0],t[t.length-1])};var So=uC;function mC(e){this._value=e,this._valueType=So.getPointType(e)}Object.defineProperties(mC.prototype,{value:{get:function(){return this._value}}});mC.prototype.findTimeInterval=function(e){};mC.prototype.wrapTime=function(e){return 0};mC.prototype.clampTime=function(e){return 0};mC.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var S2=mC;var ePn=x(T(),1);var kIn=x(T(),1);function hC(e){e=e??B.EMPTY_OBJECT;let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=So.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(hC.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});hC.prototype.findTimeInterval=So.prototype.findTimeInterval;hC.prototype.wrapTime=So.prototype.wrapTime;hC.prototype.clampTime=So.prototype.clampTime;hC.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);return this._pointType===Number?(1-r)*n[o]+r*n[o+1]:(l(t)||(t=new h),h.lerp(n[o],n[o+1],r,t))};var Gy=hC;var OIn=x(T(),1);var Phe={};Phe.solve=function(e,t,n,i){let o=new Array(n.length),r=new Array(i.length),s=new Array(i.length),a;for(a=0;a=0;--a)s[a]=h.subtract(r[a],h.multiplyByScalar(s[a+1],o[a],s[a]),s[a]);return s};var fC=Phe;var Xhe=[],Yhe=[],Nhe=[],whe=[];function pje(e,t,n){let i=Xhe,o=Nhe,r=Yhe,s=whe;i.length=o.length=e.length-1,r.length=s.length=e.length;let a;i[0]=r[0]=1,o[0]=0;let c=s[0];for(l(c)||(c=s[0]=new h),h.clone(t,c),a=1;a0&&e.afterRender.push(a._raiseStartEvent)),a.loop===Td.REPEAT)b=b-Math.floor(b);else if(a.loop===Td.MIRRORED_REPEAT){let S=Math.floor(b),A=b-S;b=S%2===1?1-A:A}a.reverse&&(b=1-b);let _=b*d*a.multiplier;_=W.clamp(_,a.localStartTime,a.localStopTime),a.animate(_),a.update.numberOfListeners>0&&(a._updateEventTime=_,e.afterRender.push(a._raiseUpdateEvent)),i=!0,y||(a._state=Nh.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&nD.push(a))}}n=nD.length;for(let s=0;sW.EPSILON3}};var F2=Uhe;var PXn=x(T(),1);var VXn=x(T(),1),I2=`#ifdef DIFFUSE_IBL +vec3 sampleDiffuseEnvironment(vec3 cubeDir) +{ + #ifdef CUSTOM_SPHERICAL_HARMONICS + return czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients); + #else + return czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients); + #endif +} +#endif + +#ifdef SPECULAR_IBL +vec3 sampleSpecularEnvironment(vec3 cubeDir, float roughness) +{ + #ifdef CUSTOM_SPECULAR_IBL + float lod = roughness * model_specularEnvironmentMapsMaximumLOD; + return czm_textureCube(model_specularEnvironmentMaps, cubeDir, lod).rgb; + #else + float lod = roughness * czm_specularEnvironmentMapsMaximumLOD; + return czm_textureCube(czm_specularEnvironmentMaps, cubeDir, lod).rgb; + #endif +} +vec3 computeSpecularIBL(vec3 cubeDir, float NdotV, vec3 f0, float roughness) +{ + // see https://bruop.github.io/ibl/ at Single Scattering Results + // Roughness dependent fresnel, from Fdez-Aguera + vec3 f90 = max(vec3(1.0 - roughness), f0); + vec3 F = fresnelSchlick2(f0, f90, NdotV); + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + vec3 specularSample = sampleSpecularEnvironment(cubeDir, roughness); + + return specularSample * (F * brdfLut.x + brdfLut.y); +} +#endif + +#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) +/** + * Compute the light contributions from environment maps and spherical harmonic coefficients. + * See Fdez-Aguera, https://www.jcgt.org/published/0008/01/03/paper.pdf, for explanation + * of the single- and multi-scattering terms. + * + * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {czm_modelMaterial} The material properties. + * @return {vec3} The computed HDR color. + */ +vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material) { + vec3 f0 = material.specular; + float roughness = material.roughness; + float specularWeight = 1.0; + #ifdef USE_SPECULAR + specularWeight = material.specularWeight; + #endif + float NdotV = clamp(dot(normalEC, viewDirectionEC), 0.0, 1.0); + + // see https://bruop.github.io/ibl/ at Single Scattering Results + // Roughness dependent fresnel, from Fdez-Aguera + vec3 f90 = max(vec3(1.0 - roughness), f0); + vec3 singleScatterFresnel = fresnelSchlick2(f0, f90, NdotV); + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + vec3 FssEss = specularWeight * (singleScatterFresnel * brdfLut.x + brdfLut.y); + + #ifdef DIFFUSE_IBL + vec3 normalMC = normalize(model_iblReferenceFrameMatrix * normalEC); + vec3 irradiance = sampleDiffuseEnvironment(normalMC); + + vec3 averageFresnel = f0 + (1.0 - f0) / 21.0; + float Ems = specularWeight * (1.0 - brdfLut.x - brdfLut.y); + vec3 FmsEms = FssEss * averageFresnel * Ems / (1.0 - averageFresnel * Ems); + vec3 dielectricScattering = (1.0 - FssEss - FmsEms) * material.diffuse; + vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering) * model_iblFactor.x; + #else + vec3 diffuseContribution = vec3(0.0); + #endif + + #ifdef USE_ANISOTROPY + // Bend normal to account for anisotropic distortion of specular reflection + vec3 anisotropyDirection = material.anisotropicB; + vec3 anisotropicTangent = cross(anisotropyDirection, viewDirectionEC); + vec3 anisotropicNormal = cross(anisotropicTangent, anisotropyDirection); + float bendFactor = 1.0 - material.anisotropyStrength * (1.0 - roughness); + float bendFactorPow4 = bendFactor * bendFactor * bendFactor * bendFactor; + vec3 bentNormal = normalize(mix(anisotropicNormal, normalEC, bendFactorPow4)); + vec3 reflectEC = reflect(-viewDirectionEC, bentNormal); + #else + vec3 reflectEC = reflect(-viewDirectionEC, normalEC); + #endif + + #ifdef SPECULAR_IBL + vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflectEC); + vec3 radiance = sampleSpecularEnvironment(reflectMC, roughness); + vec3 specularContribution = radiance * FssEss * model_iblFactor.y; + #else + vec3 specularContribution = vec3(0.0); + #endif + + return diffuseContribution + specularContribution; +} +#endif +`;var Dhe={name:"ImageBasedLightingPipelineStage"},Gje=new k;Dhe.process=function(e,t,n){let i=t.imageBasedLighting,o=t.environmentMapManager,r=e.shaderBuilder,s;l(i.specularEnvironmentMaps)||(s=o.radianceCubeMap);let a=i.sphericalHarmonicCoefficients??o.sphericalHarmonicCoefficients;r.addDefine("USE_IBL_LIGHTING",void 0,pe.FRAGMENT),r.addUniform("vec2","model_iblFactor",pe.FRAGMENT),Vh.isSupported(n.context)&&((i.useSphericalHarmonics||i.useSpecularEnvironmentMaps||i.enabled)&&r.addUniform("mat3","model_iblReferenceFrameMatrix",pe.FRAGMENT),l(s)&&r.addDefine("COMPUTE_POSITION_WC_ATMOSPHERE",void 0,pe.BOTH),l(a)&&l(a[0])?(r.addDefine("DIFFUSE_IBL",void 0,pe.FRAGMENT),r.addDefine("CUSTOM_SPHERICAL_HARMONICS",void 0,pe.FRAGMENT),r.addUniform("vec3","model_sphericalHarmonicCoefficients[9]",pe.FRAGMENT)):i.useDefaultSphericalHarmonics&&r.addDefine("DIFFUSE_IBL",void 0,pe.FRAGMENT),l(i.specularEnvironmentCubeMap)&&i.specularEnvironmentCubeMap.ready||l(s)?(r.addDefine("SPECULAR_IBL",void 0,pe.FRAGMENT),r.addDefine("CUSTOM_SPECULAR_IBL",void 0,pe.FRAGMENT),r.addUniform("samplerCube","model_specularEnvironmentMaps",pe.FRAGMENT),r.addUniform("float","model_specularEnvironmentMapsMaximumLOD",pe.FRAGMENT)):t.useDefaultSpecularMaps&&r.addDefine("SPECULAR_IBL",void 0,pe.FRAGMENT)),r.addFragmentLines(I2);let c={model_iblFactor:function(){return k.multiplyByScalar(i.imageBasedLightingFactor,o?.intensity||1,Gje)},model_iblReferenceFrameMatrix:function(){return t._iblReferenceFrameMatrix},model_sphericalHarmonicCoefficients:function(){return a},model_specularEnvironmentMaps:function(){return i.specularEnvironmentCubeMap.texture},model_specularEnvironmentMapsMaximumLOD:function(){return i.specularEnvironmentCubeMap.maximumMipmapLevel}};l(s)&&(c.model_specularEnvironmentMaps=function(){return s},c.model_specularEnvironmentMapsMaximumLOD=function(){return o.maximumMipmapLevel}),e.uniformMap=vt(c,e.uniformMap)};var P2=Dhe;var JXn=x(T(),1);var DXn=x(T(),1);var Eje=W.EPSILON16;function uQ(e){e=e??B.EMPTY_OBJECT;let t=e.stage,n=e.runtimeArticulation;this._stage=t,this._runtimeArticulation=n,this._name=t.name,this._type=t.type,this._minimumValue=t.minimumValue,this._maximumValue=t.maximumValue,this._currentValue=t.initialValue}Object.defineProperties(uQ.prototype,{stage:{get:function(){return this._stage}},runtimeArticulation:{get:function(){return this._runtimeArticulation}},name:{get:function(){return this._name}},type:{get:function(){return this._type}},minimumValue:{get:function(){return this._minimumValue}},maximumValue:{get:function(){return this._maximumValue}},currentValue:{get:function(){return this._currentValue},set:function(e){e=W.clamp(e,this.minimumValue,this.maximumValue),W.equalsEpsilon(this._currentValue,e,Eje)||(this._currentValue=e,this.runtimeArticulation._dirty=!0)}}});var Lje=new h,dQ=new $;uQ.prototype.applyStageToMatrix=function(e){let t=this.type,n=this.currentValue,i=Lje,o;switch(t){case jc.XROTATE:o=$.fromRotationX(W.toRadians(n),dQ),e=F.multiplyByMatrix3(e,o,e);break;case jc.YROTATE:o=$.fromRotationY(W.toRadians(n),dQ),e=F.multiplyByMatrix3(e,o,e);break;case jc.ZROTATE:o=$.fromRotationZ(W.toRadians(n),dQ),e=F.multiplyByMatrix3(e,o,e);break;case jc.XTRANSLATE:i.x=n,i.y=0,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case jc.YTRANSLATE:i.x=0,i.y=n,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case jc.ZTRANSLATE:i.x=0,i.y=0,i.z=n,e=F.multiplyByTranslation(e,i,e);break;case jc.XSCALE:i.x=n,i.y=1,i.z=1,e=F.multiplyByScale(e,i,e);break;case jc.YSCALE:i.x=1,i.y=n,i.z=1,e=F.multiplyByScale(e,i,e);break;case jc.ZSCALE:i.x=1,i.y=1,i.z=n,e=F.multiplyByScale(e,i,e);break;case jc.UNIFORMSCALE:e=F.multiplyByUniformScale(e,n,e);break;default:break}return e};var X2=uQ;function iD(e){e=e??B.EMPTY_OBJECT;let t=e.articulation,n=e.sceneGraph;this._articulation=t,this._sceneGraph=n,this._name=t.name,this._runtimeStages=[],this._runtimeStagesByName={},this._runtimeNodes=[],this._dirty=!0,Wje(this)}Object.defineProperties(iD.prototype,{articulation:{get:function(){return this._articulation}},sceneGraph:{get:function(){return this._sceneGraph}},name:{get:function(){return this._name}},runtimeStages:{get:function(){return this._runtimeStages}},runtimeNodes:{get:function(){return this._runtimeNodes}}});function Wje(e){let n=e.articulation.stages,i=n.length,o=e._runtimeStages,r=e._runtimeStagesByName;for(let s=0;s 0.0 && clipDistance < clippingPlanesEdgeWidth) { + color = clippingPlanesEdgeColor; + } +} +`;var Ohe={name:"ModelClippingPlanesPipelineStage"},Ije=new k;Ohe.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,pe.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,pe.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,pe.FRAGMENT),ss.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,pe.FRAGMENT);let s=ss.getTextureResolution(i,o,Ije);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,pe.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,pe.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",pe.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",pe.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",pe.FRAGMENT),r.addFragmentLines(w2);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=U.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=vt(a,e.uniformMap)};var M2=Ohe;var ZYn=x(T(),1);var bYn=x(T(),1),k2=`void modelClippingPolygonsStage(ProcessedAttributes attributes) +{ + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(v_positionWC); + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + + vec2 minDistance = vec2(czm_infinity); + v_regionIndex = -1; + v_clippingPosition = vec2(czm_infinity); + + for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) { + vec4 extents = czm_unpackClippingExtents(model_clippingExtents, regionIndex); + vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz; + + vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0)); + vec2 distance = abs(rectUv - clamped) * extents.wz; + + if (minDistance.x > distance.x || minDistance.y > distance.y) { + minDistance = distance; + v_clippingPosition = rectUv; + } + + float threshold = 0.01; + if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) { + v_regionIndex = regionIndex; + } + } +} +`;var yYn=x(T(),1),U2=`void modelClippingPolygonsStage() +{ + vec2 clippingPosition = v_clippingPosition; + int regionIndex = v_regionIndex; + czm_clipPolygons(model_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex); +} +`;var Bhe={name:"ModelClippingPolygonsPipelineStage"};Bhe.process=function(e,t,n){let i=t.clippingPolygons,o=e.shaderBuilder;o.addDefine("ENABLE_CLIPPING_POLYGONS",void 0,pe.BOTH),i.inverse&&o.addDefine("CLIPPING_INVERSE",void 0,pe.FRAGMENT),o.addDefine("CLIPPING_POLYGON_REGIONS_LENGTH",i.extentsCount,pe.BOTH),o.addUniform("sampler2D","model_clippingDistance",pe.FRAGMENT),o.addUniform("sampler2D","model_clippingExtents",pe.VERTEX),o.addVarying("vec2","v_clippingPosition"),o.addVarying("int","v_regionIndex","flat"),o.addVertexLines(k2),o.addFragmentLines(U2);let r={model_clippingDistance:function(){return i.clippingTexture??n.context.defaultTexture},model_clippingExtents:function(){return i.extentsTexture??n.context.defaultTexture}};e.uniformMap=vt(r,e.uniformMap)};var D2=Bhe;var VYn=x(T(),1);function zhe(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(zhe.prototype,{name:{get:function(){return this._runtimeNode._name}},id:{get:function(){return this._runtimeNode._id}},show:{get:function(){return this._runtimeNode.show},set:function(e){this._runtimeNode.show=e}},matrix:{get:function(){return this._runtimeNode.transform},set:function(e){l(e)?(this._runtimeNode.transform=e,this._runtimeNode.userAnimated=!0,this._model._userAnimationDirty=!0):(this._runtimeNode.transform=this.originalMatrix,this._runtimeNode.userAnimated=!1)}},originalMatrix:{get:function(){return this._runtimeNode.originalTransform}}});var O2=zhe;var _Nn=x(T(),1);var nNn=x(T(),1);var EYn=x(T(),1),B2=`mat4 getInstancingTransform() +{ + mat4 instancingTransform; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform = mat4( + a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1 + a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2 + a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3 + a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation = a_instanceTranslation; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation.x, translation.y, translation.z, 1.0 + ); + #endif + + return instancingTransform; +} + +#ifdef USE_2D_INSTANCING +mat4 getInstancingTransform2D() +{ + mat4 instancingTransform2D; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform2D = mat4( + a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0, // Column 1 + a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2 + a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3 + a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation2D = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation2D = a_instanceTranslation2D; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform2D = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation2D.x, translation2D.y, translation2D.z, 1.0 + ); + #endif + + return instancingTransform2D; +} +#endif +`;var WYn=x(T(),1),z2=`void instancingStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz; + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz; + #endif + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var FYn=x(T(),1),H2=`void legacyInstancingStage( + inout ProcessedAttributes attributes, + out mat4 instanceModelView, + out mat3 instanceModelViewInverseTranspose) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + mat4 instanceModel = instancingTransform * u_instance_nodeTransform; + instanceModelView = u_instance_modifiedModelView; + instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel); + + attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz; + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var oD=new F,Pje=new F,Xje=new F,Khe={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:$he,_transformsToTypedArray:hQ};Khe.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(B2);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,d=n.mode!==re.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,u=s._enablePick&&!n.context.webgl2,m=[];Qje(e,n,i,m,d,u),e4e(e,n,i,m);let p={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,pe.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",pe.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",pe.VERTEX),p.u_instance_modifiedModelView=function(){let b=F.multiplyTransformation(s.modelMatrix,a.components.transform,oD);return d?F.multiplyTransformation(n.context.uniformState.view3D,b,oD):(n.mode!==re.SCENE3D&&(b=xt.basisTo2D(n.mapProjection,b,oD)),F.multiplyTransformation(n.context.uniformState.view,b,oD))},p.u_instance_nodeTransform=function(){return F.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,Pje)},r.addVertexLines(H2)):r.addVertexLines(z2),d){r.addDefine("USE_2D_INSTANCING",void 0,pe.VERTEX),r.addUniform("mat4","u_modelView2D",pe.VERTEX);let b=n.context,f=F.fromTranslation(c.instancingReferencePoint2D,new F);p.u_modelView2D=function(){return F.multiplyTransformation(b.uniformState.view,f,Xje)}}e.uniformMap=vt(p,e.uniformMap),e.instanceCount=o,$n(e.attributes,m)};var K2=new F,Yje=new h;function Nje(e,t,n,i,o){let r=F.multiplyTransformation(t,e,K2);return r=F.multiplyTransformation(r,n,K2),o=xt.basisTo2D(i.mapProjection,r,o),o}function wje(e,t,n,i,o){let r=F.fromTranslation(e,K2),s=F.multiplyTransformation(t,r,K2);s=F.multiplyTransformation(s,n,K2);let a=F.getTranslation(s,Yje);return o=no.computeActualEllipsoidPosition(i,a,o),o}function Jhe(e,t,n){let i=e.model,o=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=F.multiplyTransformation(i.modelMatrix,o.components.transform,t),n=F.multiplyTransformation(o.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=F.clone(o.computedModelMatrix,t),t=F.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=F.clone(F.IDENTITY,n))}var jhe=new F,Qhe=new F,Mje=new F,kje=new h;function Uje(e,t,n,i){let o=jhe,r=Qhe;Jhe(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let d=0;d=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:kt.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var J2=Khe;var aNn=x(T(),1);var pQ={};pQ.name="ModelMatrixUpdateStage";pQ.update=function(e,t,n){let i=n.mode!==re.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;efe(e,t,o,e.transformToRoot),e._transformDirty=!1}};function t4e(e,t,n){e.modelMatrix=F.multiplyTransformation(t,n,e.modelMatrix),e.cullFace=bt.getCullFace(e.modelMatrix,e.primitiveType)}function efe(e,t,n,i){let o;i=F.multiplyTransformation(i,e.transform,new F),e.updateComputedTransform();let r=e.runtimePrimitives.length;for(o=0;o1&&(i.addDefine("MULTILINE_BATCH_TEXTURE"),i.addUniform("vec2","model_textureDimensions"),o.model_textureDimensions=function(){return c.textureDimensions}),e.uniformMap=vt(o,e.uniformMap)};var eF=rfe;var YNn=x(T(),1);var sfe={name:"ClassificationPipelineStage"};sfe.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,pe.BOTH);let o=e.runtimePrimitive;l(o.batchLengths)||i4e(t,o)};function i4e(e,t){let n=bt.getAttributeBySemantic(e,ct.POSITION);if(!l(n))throw new ae("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=l(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=bt.getAttributeBySemantic(e,ct.FEATURE_ID,0);if(!l(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let d=[],u=[0],m=r?i[0]:0,p=c[m],b=0;for(let y=1;yh4e(i,t,n)):[]}function h4e(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=bt,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),d=new Array(c.length);for(let u=0;up4e(n,t)):[]}function p4e(e,t){let{sanitizeGlslIdentifier:n}=bt,i=e.class.id,o=t?.classes[i],r=Object.entries(e.properties).filter(([a,c])=>{let d=c.textureReader.channels.length;return c.classProperty.isGpuCompatible(d)}),s=new Array(r.length);for(let a=0;al(s.class)&&r.has(String(s.id))).flatMap(s=>y4e(s,r,i,o))}function y4e(e,t,n,i){let{sanitizeGlslIdentifier:o}=bt,r=e.class,s=n?.classes[r.id],a=t.get(String(e.id))??{},c=a.shaderDestination??pe.BOTH,d=e.properties,u=r.properties,m=[],p=0;for(let[b,f]of Object.entries(u)){if(!f.isGpuCompatible(b4e))continue;let y=d[b],_=pe.intersection(F4e(b,i),c);if(_===pe.NONE){p++;continue}m.push({metadataVariable:o(b),property:y,classProperty:f,type:f.type,glslType:f.getGlslType(),propertyStatistics:s?.properties[b],shaderDestination:_,propertyTable:e,featureIdVariableName:a.variableName,propertyInfoIndex:p}),p++}return m}function x4e(e,t){let n=new Map;function i(a,c){let d=a?.propertyTableId;if(!l(d))return;let u=String(d),m={variableName:a.positionalLabel,shaderDestination:c},p=n.get(u);l(p)&&console.warn(`Multiple feature ID sets reference the same property table ${d} in primitive. Only one will be used.`),n.set(u,m)}let o=t?.featureIds??[];for(let a=0;am),i.addStructField(Ci.STRUCT_ID_METADATA_FS,s,r);let y=`attributes.texCoord_${c}`,_=y;if(l(p)&&!$.equals(p,$.IDENTITY)){let E=`${b}Transform`;i.addUniform("mat3",E,pe.FRAGMENT),o[E]=function(){return p},_=`vec2(${E} * vec3(${y}, 1.0))`}let S=`texture(${b}, ${_}).${d}`,A=a.classProperty,Z;n?Z=A.unpackTextureInShader(S,d,r,f):Z=A.unpackTextureInShaderWebGL1(S);let R=TQ({valueExpression:Z,renderResources:e,glslType:s,metadataVariable:r,shaderDestination:pe.FRAGMENT,property:a}),G=`metadata.${r} = ${R};`;f.push(G),i.addFunctionLines(Ci.FUNCTION_ID_INITIALIZE_METADATA_FS,f)}function yQ(e,t){let n=t.classProperty,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=dfe(Ci.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(Ci.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(Ci.FUNCTION_ID_INITIALIZE_METADATA_FS,s),pe.includesVertexShader(r)&&(e.addStructField(Ci.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(Ci.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function xQ(e,t){let{propertyStatistics:n}=t;if(!l(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===pt.ENUM)return;let s=Ci.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=dfe(s,n,a,r),d=`${r}MetadataStatistics`;e.addStructField(Ci.STRUCT_ID_METADATA_STATISTICS_FS,d,i),e.addFunctionLines(Ci.FUNCTION_ID_INITIALIZE_METADATA_FS,c),pe.includesVertexShader(t.shaderDestination)&&(e.addStructField(Ci.STRUCT_ID_METADATA_STATISTICS_VS,d,i),e.addFunctionLines(Ci.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function G4e(e,t,n){E4e(e,t,n),yQ(e.shaderBuilder,t),xQ(e.shaderBuilder,t)}function E4e(e,t,n){let{shaderBuilder:i,uniformMap:o}=e,{metadataVariable:r,glslType:s,property:a,featureIdVariableName:c,propertyTable:d,propertyInfoIndex:u}=t;if(!n){_t("PropertyTableCustomShader","Property table support for custom shaders requires WebGL2.");return}if(!l(c)||!l(d.texture))return;let m=`u_propertyTableTexture_${d.id}`,p=[];o.hasOwnProperty(m)||(i.addUniform("sampler2D",m,pe.BOTH),o[m]=()=>d.texture);let b=t.shaderDestination;pe.includesVertexShader(b)&&i.addStructField(Ci.STRUCT_ID_METADATA_VS,s,r),pe.includesFragmentShader(b)&&i.addStructField(Ci.STRUCT_ID_METADATA_FS,s,r);let y=`ivec2(${`featureIds.${c}`}, ${u})`,_=`texelFetch(${m}, ${y}, 0)`,S=t.classProperty,A=S.unpackTextureInShader(_,"rgba",r,p),Z=TQ({valueExpression:A,renderResources:e,glslType:s,metadataVariable:r,shaderDestination:b,property:a??S}),R=`metadata.${r} = ${Z};`;p.push(R),pe.includesVertexShader(b)&&i.addFunctionLines(Ci.FUNCTION_ID_INITIALIZE_METADATA_VS,p),pe.includesFragmentShader(b)&&i.addFunctionLines(Ci.FUNCTION_ID_INITIALIZE_METADATA_FS,p)}function dfe(e,t,n,i){function o(r){let s=t[r.specName];if(l(s))return`${n}.${r.shaderName} = ${i}(${s});`}return l(t)?e.map(o).filter(l):[]}function TQ(e){let{valueExpression:t,property:n}=e;if(!n.hasValueTransform)return t;let i=e.metadataVariable,o=`u_${i}_offset`,r=`u_${i}_scale`,{shaderBuilder:s,uniformMap:a}=e.renderResources,{glslType:c,shaderDestination:d}=e;s.addUniform(c,o,d),s.addUniform(c,r,d);let{offset:u,scale:m}=n;return a[o]=()=>u,a[r]=()=>m,`czm_valueTransform(${o}, ${r}, ${t})`}function L4e(e,t){let n=new Set,i=new Set;return W4e(e,n,i),v4e(e,t,n,i),{usedInVertex:n,usedInFragment:i}}function W4e(e,t,n){let i=e.customShader;if(!l(i))return;let o=i.usedVariablesFragment?.metadataSet??{};for(let s in o)o.hasOwnProperty(s)&&n.add(s);let r=i.usedVariablesVertex?.metadataSet??{};for(let s in r)r.hasOwnProperty(s)&&t.add(s)}function v4e(e,t,n,i){let o=e.style;if(!(l(o)&&t.primitiveType===ve.POINTS))return;let s=o.color?.getVariables?.()??[];for(let d of s)n.add(d),i.add(d);let a=o.show?.getVariables?.()??[];for(let d of a)n.add(d),i.add(d);let c=o.pointSize?.getVariables?.()??[];for(let d of c)n.add(d)}function F4e(e,t){let n=t.usedInFragment.has(e)?pe.FRAGMENT:pe.NONE,i=t.usedInVertex.has(e)?pe.VERTEX:pe.NONE;return pe.union(n,i)}var Tm=Ci;var Xwn=x(T(),1),ufe={INHERIT:0,OPAQUE:1,TRANSLUCENT:2};Object.freeze(ufe);var Fy=ufe;var Ga={name:"CustomShaderPipelineStage",STRUCT_ID_ATTRIBUTES_VS:"AttributesVS",STRUCT_ID_ATTRIBUTES_FS:"AttributesFS",STRUCT_NAME_ATTRIBUTES:"Attributes",STRUCT_ID_VERTEX_INPUT:"VertexInput",STRUCT_NAME_VERTEX_INPUT:"VertexInput",STRUCT_ID_FRAGMENT_INPUT:"FragmentInput",STRUCT_NAME_FRAGMENT_INPUT:"FragmentInput",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS:"initializeInputStructVS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS:"void initializeInputStruct(out VertexInput vsInput, ProcessedAttributes attributes)",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS:"initializeInputStructFS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS:"void initializeInputStruct(out FragmentInput fsInput, ProcessedAttributes attributes)",_oneTimeWarning:_t};Ga.process=function(e,t,n){let{shaderBuilder:i,model:o,alphaOptions:r}=e,{customShader:s}=o,{lightingModel:a,translucencyMode:c}=s;l(a)&&(e.lightingOptions.lightingModel=a),c===Fy.TRANSLUCENT?r.pass=Le.TRANSLUCENT:c===Fy.OPAQUE&&(r.pass=void 0);let d=k4e(s,t,e);if(!d.customShaderEnabled)return;if(B4e(i,s,d),d.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,pe.BOTH),l(s.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,pe.VERTEX),l(s.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,pe.FRAGMENT);let p=mb.getDefineName(s.mode);i.addDefine(p,void 0,pe.FRAGMENT)}let u=s.uniforms;for(let p in u)if(u.hasOwnProperty(p)){let b=u[p];i.addUniform(b.type,p)}let m=s.varyings;for(let p in m)if(m.hasOwnProperty(p)){let b=m[p];i.addVarying(b,p)}e.uniformMap=vt(e.uniformMap,s.uniformMap)};function I4e(e){let t={};for(let n=0;na.propertyTableId):[],r=new Set;function s(a,c){for(let d of a){let m=c[d].class.properties;Object.keys(m).forEach(p=>r.add(p))}}return s(n,t.propertyTextures),s(i,t.propertyAttributes),s(o,t.propertyTables),r}function pfe(e,t){for(let n in e)if(e.hasOwnProperty(n)&&!t.has(n))return Ga._oneTimeWarning("CustomShaderPipelineStage.checkMetadataCompatibility",`A custom shader uses metadata property "${n}" which is not present for all primitives in the tileset. Disabling the custom shader for these primitives.`),!1;return!0}var uF=Ga;var iMn=x(T(),1);var mF={name:"DequantizationPipelineStage",FUNCTION_ID_DEQUANTIZATION_STAGE_VS:"dequantizationStage",FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS:"void dequantizationStage(inout ProcessedAttributes attributes)"};mF.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=l(o.classificationType);i.addDefine("USE_DEQUANTIZATION",void 0,pe.VERTEX),i.addFunction(mF.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,mF.FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS,pe.VERTEX);let s=t.attributes;for(let a=0;a 0.0) { +#ifdef HAS_EDGE_FEATURE_ID + float edgeFeatureId = edgeId.g; + float currentFeatureId = float(featureIds.featureId_0); +#endif + float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord)); + // Background / sky / globe: always show edge + bool isBackground = geomDepthLinear > globeDepth; + bool drawEdge = isBackground; + +#ifdef HAS_EDGE_FEATURE_ID + bool hasEdgeFeature = edgeFeatureId > 0.0; + bool hasCurrentFeature = currentFeatureId > 0.0; + bool featuresMatch = edgeFeatureId == currentFeatureId; + + drawEdge = drawEdge || !hasEdgeFeature || !hasCurrentFeature || featuresMatch; +#else + drawEdge = true; +#endif + + if (drawEdge) { + color = edgeColor; + } + } +} +`;var gfe={name:"EdgeDetectionPipelineStage"};gfe.process=function(e){e.shaderBuilder.addFragmentLines([fF])};var pF=gfe;var KMn=x(T(),1);var dMn=x(T(),1),bF=`// CESIUM_REDIRECTED_COLOR_OUTPUT flag is used to avoid color attachment conflicts +// when shaders are processed by different rendering pipelines (e.g., OIT). +// Only declare MRT outputs when not in a derived shader context. +#if defined(HAS_EDGE_VISIBILITY_MRT) && !defined(CESIUM_REDIRECTED_COLOR_OUTPUT) +layout(location = 1) out vec4 out_id; // edge id / metadata +layout(location = 2) out vec4 out_edgeDepth; // packed depth +#endif + +void edgeVisibilityStage(inout vec4 color, inout FeatureIds featureIds) +{ +#ifdef HAS_EDGE_VISIBILITY + + if (!u_isEdgePass) { + return; + } + + float edgeTypeInt = v_edgeType * 255.0; + + if (edgeTypeInt < 0.5) { + discard; + } + + if (edgeTypeInt > 0.5 && edgeTypeInt < 1.5) { // silhouette candidate + // Silhouette check done in vertex shader + // v_shouldDiscard will be > 0.5 if this edge should be discarded + if (v_shouldDiscard > 0.5) { + discard; + } + } + + vec4 finalColor = color; +#ifdef HAS_EDGE_COLOR_ATTRIBUTE + if (v_edgeColor.a >= 0.0) { + finalColor = v_edgeColor; + } +#endif + +#ifdef HAS_LINE_PATTERN + // Pattern is 16-bit, each bit represents visibility at that position + const float maskLength = 16.0; + + // Get the relative position within the dash from 0 to 1 + float dashPosition = fract(v_lineCoord / maskLength); + // Figure out the mask index + float maskIndex = floor(dashPosition * maskLength); + // Test the bit mask + float maskTest = floor(u_linePattern / pow(2.0, maskIndex)); + + // If bit is 0 (gap), discard the fragment (use < 1.0 for better numerical stability) + if (mod(maskTest, 2.0) < 1.0) { + discard; + } +#endif + color = finalColor; + + #if defined(HAS_EDGE_VISIBILITY_MRT) && !defined(CESIUM_REDIRECTED_COLOR_OUTPUT) + // Write edge metadata + out_id = vec4(0.0); + out_id.r = edgeTypeInt; // Edge type (0-3) +#ifdef HAS_EDGE_FEATURE_ID + out_id.g = float(featureIds.featureId_0); // Feature ID if available +#else + out_id.g = 0.0; +#endif + // Pack depth into separate MRT attachment + out_edgeDepth = czm_packDepth(gl_FragCoord.z); + #endif +#endif +}`;var mMn=x(T(),1),gF=`#ifdef HAS_EDGE_VISIBILITY +void edgeVisibilityStageVS() { + if (!u_isEdgePass) { + return; + } + + v_edgeType = a_edgeType; + v_faceNormalAView = czm_normal * a_faceNormalA; + v_faceNormalBView = czm_normal * a_faceNormalB; + v_edgeOffset = a_edgeOffset; + + // Silhouette detection: check both endpoints of the edge + v_shouldDiscard = 0.0; + float edgeTypeInt = a_edgeType * 255.0; + if (edgeTypeInt > 0.5 && edgeTypeInt < 1.5) { + vec3 normalA = normalize(v_faceNormalAView); + vec3 normalB = normalize(v_faceNormalBView); + const float perpTol = 2.5e-4; + + // Check at current vertex (first endpoint) + vec4 currentPosEC = czm_modelView * vec4(v_positionMC, 1.0); + vec3 toEye1 = normalize(-currentPosEC.xyz); + float dotA1 = dot(normalA, toEye1); + float dotB1 = dot(normalB, toEye1); + + // Check at other vertex (second endpoint) + vec4 otherPosEC = czm_modelView * vec4(a_edgeOtherPos, 1.0); + vec3 toEye2 = normalize(-otherPosEC.xyz); + float dotA2 = dot(normalA, toEye2); + float dotB2 = dot(normalB, toEye2); + + // Discard if EITHER endpoint is non-silhouette + if (dotA1 * dotB1 > perpTol || dotA2 * dotB2 > perpTol) { + v_shouldDiscard = 1.0; + } + } + +#ifdef HAS_EDGE_FEATURE_ID + v_featureId_0 = a_edgeFeatureId; +#endif + +#ifdef HAS_EDGE_COLOR_ATTRIBUTE + v_edgeColor = a_edgeColor; +#endif + +#ifdef HAS_LINE_PATTERN + #ifdef HAS_EDGE_CUMULATIVE_DISTANCE + v_lineCoord = a_edgeCumulativeDistance * u_pixelsPerWorld; + #else + vec4 currentClip = czm_modelViewProjection * vec4(v_positionMC, 1.0); + vec2 currentScreen = ((currentClip.xy / currentClip.w) * 0.5 + 0.5) * czm_viewport.zw; + + vec4 otherClip = czm_modelViewProjection * vec4(a_edgeOtherPos, 1.0); + vec2 otherScreen = ((otherClip.xy / otherClip.w) * 0.5 + 0.5) * czm_viewport.zw; + vec2 windowDir = otherScreen - currentScreen; + + const float textureCoordinateBase = 8192.0; + if (abs(windowDir.x) > abs(windowDir.y)) { + v_lineCoord = textureCoordinateBase + currentScreen.x; + } else { + v_lineCoord = textureCoordinateBase + currentScreen.y; + } + #endif +#endif + + // Expand vertex to form quad + vec4 posClip = gl_Position; + + if (length(a_edgeOtherPos) > 0.0 && abs(a_edgeOffset) > 0.0) { + vec4 currentClip = posClip; + vec4 otherClip = czm_modelViewProjection * vec4(a_edgeOtherPos, 1.0); + + vec2 currentNDC = currentClip.xy / currentClip.w; + vec2 otherNDC = otherClip.xy / otherClip.w; + + vec2 edgeDirNDC = otherNDC - currentNDC; + + // Ensure consistent edge direction + if (edgeDirNDC.x < 0.0 || (abs(edgeDirNDC.x) < 0.001 && edgeDirNDC.y < 0.0)) { + edgeDirNDC = -edgeDirNDC; + } + + edgeDirNDC = normalize(edgeDirNDC); + vec2 perpNDC = vec2(-edgeDirNDC.y, edgeDirNDC.x); + + // Convert line width from pixels to clip space + float lineWidthPixels = u_lineWidth; + vec2 viewportSize = czm_viewport.zw; + vec2 clipPerPixel = (2.0 / viewportSize) * currentClip.w; + vec2 offsetClip = perpNDC * lineWidthPixels * clipPerPixel * 0.5 * a_edgeOffset; + + posClip.xy += offsetClip; + } + + gl_Position = posClip; +} +#endif +`;var LMn=x(T(),1);var _Q=class e{static readAttributeAsTypedArray(t){let n=e.readAttributeAsRawCompactTypedArray(t),i=t.normalized,o=t.quantization;if(!l(o)&&!i)return n;let r=t.type,s=t.count,a=n;return i&&(a=cn.dequantize(n,t.componentDatatype,r,s)),l(o)?e.dequantize(a,s,r,o):a}static readAttributeAsRawCompactTypedArray(t){let n=t.type,i=t.count,o=kt.getNumberOfComponents(n),r=i*o,s=t.componentDatatype,a=t.quantization;l(a)&&(s=a.componentDatatype);let c=t.buffer,d=t.byteOffset,u=t.byteStride,m=J.getSizeInBytes(s),p=o*m,b=!l(u)||u===p;if(l(t.typedArray))return t.typedArray;if(b){let G=J.createTypedArray(s,r);return c.getBufferData(G,d),G}let y=new Uint8Array(c.sizeInBytes);c.getBufferData(y);let _=J.createTypedArray(s,r),S=u??p,A=new DataView(y.buffer,y.byteOffset,y.byteLength),Z=new Array(o),R=e.createComponentsReader(s);for(let G=0;G0?h.normalize(a,a):(a.x=0,a.y=0,a.z=1),s[c*3]=a.x,s[c*3+1]=a.y,s[c*3+2]=a.z}for(let c=0;c=s.length)continue;let p=m*3,b=(m+1)*3,f=c*6;o[f]=s[p],o[f+1]=s[p+1],o[f+2]=s[p+2],o[f+3]=s[b],o[f+4]=s[b+1],o[f+5]=s[b+2]}return o}function q4e(e){let t=e.edgeVisibility;if(!l(t))return[];let n=t.visibility,i=e.indices,o=t.lineStrings,r=e.attributes,s=l(r)&&r.length>0?r[0].count:0,a=l(n)&&l(i)&&l(i.typedArray)&&i.typedArray.length>0,c=l(o)&&o.length>0;if(!a&&!c)return[];let d=a?i.typedArray:void 0,u=[],m=[],p=new Set,b=0,f=t.materialColor;if(a){let y=0,_=d.length,S=n;for(let A=0;A+2<_;A+=3){let Z=d[A],R=d[A+1],G=d[A+2];for(let E=0;E<3;E++){let v,I;E===0?(v=Z,I=R):E===1?(v=R,I=G):(v=G,I=Z);let X=Math.floor(y/4),Y=y%4*2;if(y++,X>=S.length)break;let C=S[X]>>Y&3;if(C===SC.HIDDEN)continue;let V=Math.min(v,I),L=Math.max(v,I),P=`${V},${L}`;if(p.has(P))continue;p.add(P),u.push(v,I);let N=-1;C===SC.SILHOUETTE&&(N=b,b++),m.push({edgeType:C===SC.REPEATED_HARD?SC.HARD:C,silhouetteEdgeIndex:N,color:f})}}}if(c)for(let y=0;y0&&(v<0||v>=s||I<0||I>=s))continue;let X=Math.min(v,I),Y=Math.max(v,I),g=`${X},${Y}`;p.has(g)||(p.add(g),u.push(v,I),m.push({edgeType:SC.HARD,silhouetteEdgeIndex:-1,color:l(Z)?Z:void 0}))}}return{edgeIndices:u,edgeData:m,silhouetteEdgeCount:b}}function $4e(e){if(!l(e))return;let t=bt.getAttributeBySemantic(e,ct.COLOR);if(!l(t))return;let n=kt.getNumberOfComponents(t.type);if(n!==3&&n!==4)return;let i=t.typedArray;if(l(i)||(i=sa.readAttributeAsTypedArray(t)),!l(i))return;let o=t.count;if(!l(o)||o===0||i.length=M){D(et);return}let Oe=Ie*4,St=et*4;N[St]=O[Oe],N[St+1]=O[Oe+1],N[St+2]=O[Oe+2],N[St+3]=O[Oe+3]}for(let et=0;et<_;et++){let Ie=e[et*2],Oe=e[et*2+1],Et=t[et].edgeType/255,on=G[Ie*3],Ot=G[Ie*3+1],gt=G[Ie*3+2],Wt=G[Oe*3],Cn=G[Oe*3+1],dt=G[Oe*3+2],mt=et*4;E[mt*3]=on,E[mt*3+1]=Ot,E[mt*3+2]=gt,Y[mt*3]=Wt,Y[mt*3+1]=Cn,Y[mt*3+2]=dt,g[mt]=-1,v[mt]=Et,E[(mt+1)*3]=on,E[(mt+1)*3+1]=Ot,E[(mt+1)*3+2]=gt,Y[(mt+1)*3]=Wt,Y[(mt+1)*3+1]=Cn,Y[(mt+1)*3+2]=dt,g[mt+1]=1,v[mt+1]=Et,E[(mt+2)*3]=Wt,E[(mt+2)*3+1]=Cn,E[(mt+2)*3+2]=dt,Y[(mt+2)*3]=on,Y[(mt+2)*3+1]=Ot,Y[(mt+2)*3+2]=gt,g[mt+2]=1,v[mt+2]=Et,E[(mt+3)*3]=Wt,E[(mt+3)*3+1]=Cn,E[(mt+3)*3+2]=dt,Y[(mt+3)*3]=on,Y[(mt+3)*3+1]=Ot,Y[(mt+3)*3+2]=gt,g[mt+3]=-1,v[mt+3]=Et;let Qn=t[et].color;if(l(Qn))for(let yn=0;yn<4;yn++)w(mt+yn,Qn);else if(l(O))for(let yn=0;yn<4;yn++)z(mt+yn,Ie);else for(let yn=0;yn<4;yn++)D(mt+yn);if(C){let yn=L[Ie],Mn=L[Oe];V[mt]=yn,V[mt+1]=yn,V[mt+2]=Mn,V[mt+3]=Mn}let Yn=et*6,$i=b[Yn],Ko=b[Yn+1],mo=b[Yn+2],so=b[Yn+3],ti=b[Yn+4],ni=b[Yn+5];for(let yn=0;yn<4;yn++)I[(mt+yn)*3]=$i,I[(mt+yn)*3+1]=Ko,I[(mt+yn)*3+2]=mo,X[(mt+yn)*3]=so,X[(mt+yn)*3+1]=ti,X[(mt+yn)*3+2]=ni}let K=$e.createVertexBuffer({context:i,typedArray:E,usage:Fe.STATIC_DRAW}),ee=$e.createVertexBuffer({context:i,typedArray:v,usage:Fe.STATIC_DRAW}),H=$e.createVertexBuffer({context:i,typedArray:I,usage:Fe.STATIC_DRAW}),te=$e.createVertexBuffer({context:i,typedArray:X,usage:Fe.STATIC_DRAW}),q=$e.createVertexBuffer({context:i,typedArray:Y,usage:Fe.STATIC_DRAW}),de=$e.createVertexBuffer({context:i,typedArray:g,usage:Fe.STATIC_DRAW}),ye=P?$e.createVertexBuffer({context:i,typedArray:N,usage:Fe.STATIC_DRAW}):void 0,le=C?$e.createVertexBuffer({context:i,typedArray:V,usage:Fe.STATIC_DRAW}):void 0,ge=_*2*3,Ee=A>65534,Re=Ee?new Uint32Array(ge):new Uint16Array(ge);for(let et=0;et<_;et++){let Ie=et*4,Oe=et*6;Re[Oe]=Ie,Re[Oe+1]=Ie+1,Re[Oe+2]=Ie+2,Re[Oe+3]=Ie,Re[Oe+4]=Ie+2,Re[Oe+5]=Ie+3}let Xe=$e.createIndexBuffer({context:i,typedArray:Re,usage:Fe.STATIC_DRAW,indexDatatype:Ee?De.UNSIGNED_INT:De.UNSIGNED_SHORT}),we=[{index:Z,vertexBuffer:K,componentsPerAttribute:3,componentDatatype:J.FLOAT,normalize:!1},{index:o,vertexBuffer:ee,componentsPerAttribute:1,componentDatatype:J.FLOAT,normalize:!1},{index:r,vertexBuffer:H,componentsPerAttribute:3,componentDatatype:J.FLOAT,normalize:!1},{index:s,vertexBuffer:te,componentsPerAttribute:3,componentDatatype:J.FLOAT,normalize:!1},{index:d,vertexBuffer:q,componentsPerAttribute:3,componentDatatype:J.FLOAT,normalize:!1},{index:u,vertexBuffer:de,componentsPerAttribute:1,componentDatatype:J.FLOAT,normalize:!1}];P&&we.push({index:c,vertexBuffer:ye,componentsPerAttribute:4,componentDatatype:J.FLOAT,normalize:!1}),C&&we.push({index:y,vertexBuffer:le,componentsPerAttribute:1,componentDatatype:J.FLOAT,normalize:!1});let nt=n.runtimePrimitive.primitive;if(l(nt.featureIds)&&nt.featureIds.length>0){let et=nt.featureIds[0];if(l(et.setIndex)){let Ie=nt.attributes.find(Oe=>Oe.semantic===ct.FEATURE_ID&&Oe.setIndex===et.setIndex);if(l(Ie)){let Oe=l(Ie.typedArray)?Ie.typedArray:sa.readAttributeAsTypedArray(Ie),St=new Float32Array(A);for(let on=0;on<_;on++){let Ot=e[on*2],gt=Ot0}}var yF=yfe;var _kn=x(T(),1);var jMn=x(T(),1),xF=`void geometryStage(out ProcessedAttributes attributes) +{ + attributes.positionMC = v_positionMC; + attributes.positionEC = v_positionEC; + + #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) || defined(COMPUTE_POSITION_WC_ATMOSPHERE) + attributes.positionWC = v_positionWC; + #endif + + #ifdef HAS_NORMALS + // renormalize after interpolation + attributes.normalEC = normalize(v_normalEC); + #endif + + #ifdef HAS_TANGENTS + attributes.tangentEC = normalize(v_tangentEC); + #endif + + #ifdef HAS_BITANGENTS + attributes.bitangentEC = normalize(v_bitangentEC); + #endif + + // Everything else is dynamically generated in GeometryPipelineStage + setDynamicVaryings(attributes); +} +`;var qMn=x(T(),1),TF=`vec4 geometryStage(inout ProcessedAttributes attributes, mat4 modelView, mat3 normal) +{ + vec4 computedPosition; + + // Compute positions in different coordinate systems + vec3 positionMC = attributes.positionMC; + v_positionMC = positionMC; + v_positionEC = (modelView * vec4(positionMC, 1.0)).xyz; + + #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) + vec3 position2D = attributes.position2D; + vec3 positionEC = (u_modelView2D * vec4(position2D, 1.0)).xyz; + computedPosition = czm_projection * vec4(positionEC, 1.0); + #else + computedPosition = czm_projection * vec4(v_positionEC, 1.0); + #endif + + // Sometimes the custom shader and/or style needs this + #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) || defined(COMPUTE_POSITION_WC_ATMOSPHERE) || defined(ENABLE_CLIPPING_POLYGONS) + // Note that this is a 32-bit position which may result in jitter on small + // scales. + v_positionWC = (czm_model * vec4(positionMC, 1.0)).xyz; + #endif + + #ifdef HAS_NORMALS + v_normalEC = normalize(normal * attributes.normalMC); + #endif + + #ifdef HAS_TANGENTS + v_tangentEC = normalize(normal * attributes.tangentMC); + #endif + + #ifdef HAS_BITANGENTS + v_bitangentEC = normalize(normal * attributes.bitangentMC); + #endif + + // All other varyings need to be dynamically generated in + // GeometryPipelineStage + setDynamicVaryings(attributes); + + return computedPosition; +} +`;var akn=x(T(),1);var ekn=x(T(),1),AC=`vec2 computeSt(float featureId) +{ + float stepX = model_textureStep.x; + float centerX = model_textureStep.y; + + #ifdef MULTILINE_BATCH_TEXTURE + float stepY = model_textureStep.z; + float centerY = model_textureStep.w; + + float xId = mod(featureId, model_textureDimensions.x); + float yId = floor(featureId / model_textureDimensions.x); + + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); + #else + return vec2(centerX + (featureId * stepX), 0.5); + #endif +} + +void selectedFeatureIdStage(out SelectedFeature feature, FeatureIds featureIds) +{ + int featureId = featureIds.SELECTED_FEATURE_ID; + + + if (featureId < model_featuresLength) + { + vec2 featureSt = computeSt(float(featureId)); + + feature.id = featureId; + feature.st = featureSt; + feature.color = texture(model_batchTexture, featureSt); + } + // Floating point comparisons can be unreliable in GLSL, so we + // increment the feature ID to make sure it's always greater + // then the model_featuresLength - a condition we check for in the + // pick ID, to avoid sampling the pick texture if the feature ID is + // greater than the number of features. + else + { + feature.id = model_featuresLength + 1; + feature.st = vec2(0.0); + feature.color = vec4(1.0); + } + + #ifdef HAS_NULL_FEATURE_ID + if (featureId == model_nullFeatureId) { + feature.id = featureId; + feature.st = vec2(0.0); + feature.color = vec4(1.0); + } + #endif +} +`;var _F={name:"SelectedFeatureIdPipelineStage",STRUCT_ID_SELECTED_FEATURE:"SelectedFeature",STRUCT_NAME_SELECTED_FEATURE:"SelectedFeature"};_F.process=function(e,t,n){let i=e.shaderBuilder;e.hasPropertyTable=!0;let o=e.model,r=e.runtimeNode.node,s=tQe(o,r,t),a=s.shaderDestination;i.addDefine("HAS_SELECTED_FEATURE_ID",void 0,a),i.addDefine("SELECTED_FEATURE_ID",s.variableName,a),i.addDefine(s.featureIdDefine,void 0,a),nQe(i);let c=s.featureIds.nullFeatureId,d=e.uniformMap;l(c)&&(i.addDefine("HAS_NULL_FEATURE_ID",void 0,a),i.addUniform("int","model_nullFeatureId",a),d.model_nullFeatureId=function(){return c}),s.shaderDestination===pe.BOTH&&i.addVertexLines(AC),i.addFragmentLines(AC)};function xfe(e){return e instanceof Sn.FeatureIdTexture?"HAS_SELECTED_FEATURE_ID_TEXTURE":"HAS_SELECTED_FEATURE_ID_ATTRIBUTE"}function Tfe(e){return e instanceof Sn.FeatureIdTexture?pe.FRAGMENT:pe.BOTH}function tQe(e,t,n){let i,o;return l(t.instances)&&(o=bt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(o))?(i=o.label??o.positionalLabel,{featureIds:o,variableName:i,shaderDestination:Tfe(o),featureIdDefine:xfe(o)}):(o=bt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),i=o.label??o.positionalLabel,{featureIds:o,variableName:i,shaderDestination:Tfe(o),featureIdDefine:xfe(o)})}function nQe(e){e.addStructField(_F.STRUCT_ID_SELECTED_FEATURE,"int","id"),e.addStructField(_F.STRUCT_ID_SELECTED_FEATURE,"vec2","st"),e.addStructField(_F.STRUCT_ID_SELECTED_FEATURE,"vec4","color")}var Iy=_F;var Ea={name:"GeometryPipelineStage",STRUCT_ID_PROCESSED_ATTRIBUTES_VS:"ProcessedAttributesVS",STRUCT_ID_PROCESSED_ATTRIBUTES_FS:"ProcessedAttributesFS",STRUCT_NAME_PROCESSED_ATTRIBUTES:"ProcessedAttributes",FUNCTION_ID_INITIALIZE_ATTRIBUTES:"initializeAttributes",FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES:"void initializeAttributes(out ProcessedAttributes attributes)",FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS:"setDynamicVaryingsVS",FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS:"setDynamicVaryingsFS",FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS:"void setDynamicVaryings(inout ProcessedAttributes attributes)"};Ea.process=function(e,t,n){let{shaderBuilder:i,model:o}=e;i.addStruct(Ea.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"ProcessedAttributes",pe.VERTEX),i.addStruct(Ea.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"ProcessedAttributes",pe.FRAGMENT),i.addStruct(Iy.STRUCT_ID_SELECTED_FEATURE,Iy.STRUCT_NAME_SELECTED_FEATURE,pe.BOTH),i.addFunction(Ea.FUNCTION_ID_INITIALIZE_ATTRIBUTES,Ea.FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES,pe.VERTEX),i.addVarying("vec3","v_positionWC"),i.addVarying("vec3","v_positionEC"),i.addStructField(Ea.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionWC"),i.addStructField(Ea.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionEC"),i.addFunction(Ea.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,Ea.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,pe.VERTEX),i.addFunction(Ea.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,Ea.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,pe.FRAGMENT),o.type===Wr.TILE_PNTS&&i.addDefine("HAS_SRGB_COLOR",void 0,pe.FRAGMENT);let r=n.mode!==re.SCENE3D&&!n.scene3DOnly&&o._projectTo2D,s=l(e.runtimeNode.node.instances),a=r&&!s,c=t.attributes.length;for(let d=0;d1?(b=e.attributeIndex,e.attributeIndex+=m):p&&!a?b=0:b=e.attributeIndex++;let f=!p&&t.primitiveType===ve.POINTS&&n.context.webgl2?"flat":void 0;iQe(e,u,b,m,r,s,f)}mQe(i,t.attributes),t.primitiveType===ve.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(TF),i.addFragmentLines(xF)};function iQe(e,t,n,i,o,r,s){let a=e.shaderBuilder,c=bt.getAttributeInfo(t),d=o&&!r;i>1?sQe(e,t,n,i):rQe(e,t,n,d),cQe(a,c,d),aQe(a,c,s),l(t.semantic)&&oQe(a,t),lQe(a,c,o),dQe(a,c,d),uQe(a,c)}function oQe(e,t){let{semantic:n,setIndex:i}=t;switch(n){case ct.NORMAL:e.addDefine("HAS_NORMALS");break;case ct.TANGENT:e.addDefine("HAS_TANGENTS");break;case ct.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case ct.TEXCOORD:case ct.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function rQe(e,t,n,i){let{quantization:o,semantic:r,setIndex:s}=t,{type:a,componentDatatype:c}=l(o)?o:t;r===ct.FEATURE_ID&&s>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=s+1);let d=r===ct.POSITION,u=d?0:n,m=kt.getNumberOfComponents(a),p={index:u,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:m,componentDatatype:c,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!d||!i)return;let b=e.runtimePrimitive.positionBuffer2D,f={index:n,vertexBuffer:b,count:t.count,componentsPerAttribute:m,componentDatatype:J.FLOAT,offsetInBytes:0,strideInBytes:void 0,normalize:t.normalized};e.attributes.push(f)}function sQe(e,t,n,i){let{quantization:o,normalized:r}=t,{type:s,componentDatatype:a}=l(o)?o:t,d=kt.getNumberOfComponents(s)/i,u=J.getSizeInBytes(a),m=d*u,p=t.byteStride;for(let b=0;b=r&&(y=r-1);let _=f/u|0;return _>=s&&(_=s-1),l(i)?(i.x=y,i.y=_,i):new k(y,_)}},Zr=ZQ;var Ykn=x(T(),1);var CQ,Afe="AAPTaNEKX8S_W5tHpwdW7Txp1uA..bCHyKIo32UDZUn0ep6bzo_JLzQdslNSJ9HpSru5K9nkNyUqvkKFceNFYUFPbtEEZPfCqpF_qVG3zdTZOzocx6Dnzy0e2LctUukYPVrG2GPAdcPN-M9nklag0M8cYMkSCHQOort_AeIxl8C7ORIX0KjE5Mrvbe0Rm3eC-YpZDiHp6PUyarwFpsRdcq1TvpcQqsqJQ3aoWdEIxnEjEZ6e6iZhte1i2oJgrZ8SxsSPaIbrjA4USgsQGeBjUAT1_V7gBCY6D",ZC={};ZC.defaultAccessToken=Afe;ZC.defaultWorldImageryServer=new We({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});ZC.defaultWorldHillshadeServer=new We({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});ZC.defaultWorldOceanServer=new We({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});ZC.getDefaultTokenCredit=function(e){if(e===Afe){if(!l(CQ)){let t=' This application is using a default ArcGIS access token. Please assign Cesium.ArcGisMapService.defaultAccessToken with an API key from your ArcGIS Developer account before using the ArcGIS tile services. You can sign up for a free ArcGIS Developer account at https://developers.arcgis.com/.';CQ=new Rt(t,!0)}return CQ}};var lu=ZC;var Dkn=x(T(),1);function RQ(e){e=e??B.EMPTY_OBJECT,this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=We.createIfNeeded(e.missingImageUrl),n=this;function i(r){l(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=dh(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,d=e.pixelsToCheck;for(let u=0,m=d.length;a&&u0&&(a=!1)}a&&(s=void 0)}n._missingImagePixels=s,n._isReady=!0}function o(){n._missingImagePixels=void 0,n._isReady=!0}t.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(i).catch(o)}RQ.prototype.isReady=function(){return this._isReady};RQ.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!l(n)||l(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=dh(e),o=e.width;for(let r=0,s=t.length;r1&&o==="name"?(t=1,n=i):t>2&&o==="title"?(t=2,n=i):t>3&&/name/i.test(i)?(t=3,n=i):t>4&&/title/i.test(i)&&(t=4,n=i)}l(n)&&(this.name=e[n])};VQ.prototype.configureDescriptionFromProperties=function(e){function t(n){let i='';for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r)&&(typeof r=="object"?i+=``:i+=``)}return i+="
${o}${t(r)}
${o}${r}
",i}this.description=t(e)};var Mh=VQ;var qkn=x(T(),1);function CC(){Te.throwInstantiationError()}Object.defineProperties(CC.prototype,{rectangle:{get:Te.throwInstantiationError},tileWidth:{get:Te.throwInstantiationError},tileHeight:{get:Te.throwInstantiationError},maximumLevel:{get:Te.throwInstantiationError},minimumLevel:{get:Te.throwInstantiationError},tilingScheme:{get:Te.throwInstantiationError},tileDiscardPolicy:{get:Te.throwInstantiationError},errorEvent:{get:Te.throwInstantiationError},credit:{get:Te.throwInstantiationError},proxy:{get:Te.throwInstantiationError},hasAlphaChannel:{get:Te.throwInstantiationError}});CC.prototype.getTileCredits=function(e,t,n){Te.throwInstantiationError()};CC.prototype.requestImage=function(e,t,n,i){Te.throwInstantiationError()};CC.prototype.pickFeatures=function(e,t,n,i,o){Te.throwInstantiationError()};var hQe=/\.ktx2$/i;CC.loadImage=function(e,t){let n=We.createIfNeeded(t);return hQe.test(n.url)?ud(n):l(e)&&l(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var du=CC;var e9n=x(T(),1),Zfe={SATELLITE:1,OCEANS:2,HILLSHADE:3};Object.freeze(Zfe);var kh=Zfe;function Cfe(e){this.useTiles=e.usePreCachedTilesIfAvailable??!0;let t=e.ellipsoid;this.tilingScheme=e.tilingScheme??new Oi({ellipsoid:t}),this.rectangle=e.rectangle??this.tilingScheme.rectangle,this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new Rt(n)),this.credit=n,this.tileCredits=void 0,this.tileDiscardPolicy=e.tileDiscardPolicy,this.tileWidth=e.tileWidth??256,this.tileHeight=e.tileHeight??256,this.maximumLevel=e.maximumLevel}Cfe.prototype.build=function(e){e._useTiles=this.useTiles,e._tilingScheme=this.tilingScheme,e._rectangle=this.rectangle,e._credit=this.credit,e._tileCredits=this.tileCredits,e._tileDiscardPolicy=this.tileDiscardPolicy,e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,this.useTiles&&!l(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new AF({missingImageUrl:Rfe(e,0,0,this.maximumLevel).url,pixelsToCheck:[new k(0,0),new k(200,20),new k(20,200),new k(80,110),new k(160,130)],disableCheckIfAllPixelsAreTransparent:!0}))};function fQe(e,t){let n=e.tileInfo;if(!l(n))t.useTiles=!1;else{if(t.tileWidth=n.rows,t.tileHeight=n.cols,n.spatialReference.wkid===102100||n.spatialReference.wkid===102113)t.tilingScheme=new Zr({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new Oi({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new ae(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,l(e.fullExtent)){if(l(e.fullExtent.spatialReference)&&l(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new ui,o=e.fullExtent,r=i.unproject(new h(Math.max(o.xmin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(o.ymin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),s=i.unproject(new h(Math.min(o.xmax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(o.ymax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0));t.rectangle=new se(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=se.fromDegrees(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);else{let i=`fullExtent.spatialReference WKID ${e.fullExtent.spatialReference.wkid} is not supported.`;throw new ae(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}l(e.copyrightText)&&e.copyrightText.length>0&&(l(t.credit)?t.tileCredits=[new Rt(e.copyrightText)]:t.credit=new Rt(e.copyrightText))}function pQe(e,t){let n=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(n+=`: ${t.message}`),new ae(n)}async function bQe(e,t){let n=e.getDerivedResource({queryParameters:{f:"json"}});try{let i=await n.fetchJson();fQe(i,t)}catch(i){pQe(e,i)}}function fp(e){e=e??B.EMPTY_OBJECT,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tileWidth=e.tileWidth??256,this._tileHeight=e.tileHeight??256,this._maximumLevel=e.maximumLevel,this._tilingScheme=e.tilingScheme??new Oi({ellipsoid:e.ellipsoid}),this._useTiles=e.usePreCachedTilesIfAvailable??!0,this._rectangle=e.rectangle??this._tilingScheme.rectangle,this._layers=e.layers,this._credit=e.credit,this._tileCredits=void 0;let t=e.credit;typeof t=="string"&&(t=new Rt(t)),this.enablePickFeatures=e.enablePickFeatures??!0,this._errorEvent=new Se}fp.fromBasemapType=async function(e,t){t=t??B.EMPTY_OBJECT;let n,i,o;switch(e){case kh.SATELLITE:{n=t.token??lu.defaultAccessToken,i=We.createIfNeeded(lu.defaultWorldImageryServer),i.appendForwardSlash();let r=lu.getDefaultTokenCredit(n);l(r)&&(o=Rt.clone(r))}break;case kh.OCEANS:{n=t.token??lu.defaultAccessToken,i=We.createIfNeeded(lu.defaultWorldOceanServer),i.appendForwardSlash();let r=lu.getDefaultTokenCredit(n);l(r)&&(o=Rt.clone(r))}break;case kh.HILLSHADE:{n=t.token??lu.defaultAccessToken,i=We.createIfNeeded(lu.defaultWorldHillshadeServer),i.appendForwardSlash();let r=lu.getDefaultTokenCredit(n);l(r)&&(o=Rt.clone(r))}break;default:}return fp.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function Rfe(e,t,n,i,o){let r;if(e._useTiles)r=e._resource.getDerivedResource({url:`tile/${i}/${n}/${t}`,request:o});else{let s=e._tilingScheme.tileXYToNativeRectangle(t,n,i),c={bbox:`${s.west},${s.south},${s.east},${s.north}`,size:`${e._tileWidth},${e._tileHeight}`,format:"png32",transparent:!0,f:"image"};e._tilingScheme.projection instanceof ki?(c.bboxSR=4326,c.imageSR=4326):(c.bboxSR=3857,c.imageSR=3857),e.layers&&(c.layers=`show:${e.layers}`),r=e._resource.getDerivedResource({url:"export",request:o,queryParameters:c})}return r}Object.defineProperties(fp.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}}});fp.fromUrl=async function(e,t){t=t??B.EMPTY_OBJECT;let n=We.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&n.setQueryParameters({token:t.token});let i=new fp(t);i._resource=n;let o=new Cfe(t);return(t.usePreCachedTilesIfAvailable??!0)&&await bQe(n,o),o.build(i),i};fp.prototype.getTileCredits=function(e,t,n){return this._tileCredits};fp.prototype.requestImage=function(e,t,n,i){return du.loadImage(this,Rfe(this,e,t,n,i))};fp.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures)return;let r=this._tilingScheme.tileXYToNativeRectangle(e,t,n),s,a,c;if(this._tilingScheme.projection instanceof ki)s=W.toDegrees(i),a=W.toDegrees(o),c="4326";else{let p=this._tilingScheme.projection.project(new fe(i,o,0));s=p.x,a=p.y,c="3857"}let d="visible";l(this._layers)&&(d+=`:${this._layers}`);let u={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:`${s},${a}`,mapExtent:`${r.west},${r.south},${r.east},${r.north}`,imageDisplay:`${this._tileWidth},${this._tileHeight},96`,sr:c,layers:d};return this._resource.getDerivedResource({url:"identify",queryParameters:u}).fetchJson().then(function(p){let b=[],f=p.results;if(!l(f))return b;for(let y=0;y0?n.raiseEvent(c):l(t)&&console.log(`An error occurred in "${t.constructor.name}": ${pp(i)}`),c};rD.reportSuccess=function(e){l(e)&&(e.timesRetried=-1)};var Bo=rD;var W9n=x(T(),1),Vfe={AERIAL:"Aerial",AERIAL_WITH_LABELS:"AerialWithLabels",AERIAL_WITH_LABELS_ON_DEMAND:"AerialWithLabelsOnDemand",ROAD:"Road",ROAD_ON_DEMAND:"RoadOnDemand",CANVAS_DARK:"CanvasDark",CANVAS_LIGHT:"CanvasLight",CANVAS_GRAY:"CanvasGray",ORDNANCE_SURVEY:"OrdnanceSurvey",COLLINS_BART:"CollinsBart"};Object.freeze(Vfe);var RC=Vfe;var I9n=x(T(),1);function ZF(e){}ZF.prototype.isReady=function(){return!0};ZF.prototype.shouldDiscardImage=function(e){return ZF.EMPTY_IMAGE===e};var sD;Object.defineProperties(ZF,{EMPTY_IMAGE:{get:function(){return l(sD)||(sD=new Image,sD.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),sD}}});var VC=ZF;function Gfe(e){this.tileWidth=void 0,this.tileHeight=void 0,this.maximumLevel=void 0,this.imageUrlSubdomains=void 0,this.imageUrlTemplate=void 0,this.attributionList=void 0}Gfe.prototype.build=function(e){e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,e._imageUrlSubdomains=this.imageUrlSubdomains,e._imageUrlTemplate=this.imageUrlTemplate;let t=e._attributionList=this.attributionList;t||(t=[]),e._attributionList=t;for(let n=0,i=t.length;no.coverageAreas?.some(r=>l(r.bbox)))),t.attributionList=i}function xQe(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i+=`: ${t.message}`),Bo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new ae(i)}async function TQe(e,t,n){let i=e.url,o=aa._metadataCache[i];l(o)||(o=e.fetchJson(),aa._metadataCache[i]=o);try{let r=await o;return yQe(r,t)}catch(r){xQe(e,r,n)}}function aa(e){e=e??B.EMPTY_OBJECT,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._mapStyle=e.mapStyle??RC.AERIAL,this._mapLayer=e.mapLayer,this._culture=e.culture??"",this._key=e.key,this._tileDiscardPolicy=e.tileDiscardPolicy,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new VC),this._proxy=e.proxy,this._credit=new Rt(``),this._tilingScheme=new Zr({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._attributionList=void 0,this._errorEvent=new Se}Object.defineProperties(aa.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},mapLayer:{get:function(){return this._mapLayer}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return l(this.mapLayer)}}});aa.fromUrl=async function(e,t){t=t??B.EMPTY_OBJECT;let n=t.tileProtocol;l(n)?n.length>0&&n[n.length-1]===":"&&(n=n.substr(0,n.length-1)):n=document.location.protocol==="http:"?"http":"https";let i=t.mapStyle??RC.AERIAL,o=We.createIfNeeded(e);o.appendForwardSlash();let r={incl:"ImageryProviders",key:t.key,uriScheme:n};l(t.mapLayer)&&(r.mapLayer=t.mapLayer),l(t.culture)&&(r.culture=t.culture);let s=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:r}),a=new aa(t);a._resource=o;let c=new Gfe(t);return await TQe(s,c),c.build(a),a};var _Qe=new se;aa.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,_Qe);return ZQe(this._attributionList,n,i)};aa.prototype.requestImage=function(e,t,n,i){let o=du.loadImage(this,SQe(this,e,t,n,i));if(l(o))return o.catch(function(r){return l(r.blob)&&r.blob.size===0?VC.EMPTY_IMAGE:Promise.reject(r)})};aa.prototype.pickFeatures=function(e,t,n,i,o){};aa.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<=0;--o){let r=1<=m.zoomMin&&t<=m.zoomMax){let p=se.intersection(n,m.bbox,AQe);l(p)&&(c=!0)}}c&&i.push(s.credit)}return i}aa._metadataCache={};var CF=aa;var VUn=x(T(),1);var mUn=x(T(),1);var Efe=/{[^}]+}/g,Lfe={x:GQe,y:LQe,z:FQe,s:IQe,reverseX:EQe,reverseY:WQe,reverseZ:vQe,westDegrees:PQe,southDegrees:XQe,eastDegrees:YQe,northDegrees:NQe,westProjected:wQe,southProjected:MQe,eastProjected:kQe,northProjected:UQe,width:DQe,height:OQe},CQe=vt(Lfe,{i:BQe,j:zQe,reverseI:HQe,reverseJ:KQe,longitudeDegrees:jQe,latitudeDegrees:QQe,longitudeProjected:qQe,latitudeProjected:$Qe,format:t8e});function RF(e){e=e??B.EMPTY_OBJECT,this._errorEvent=new Se;let t=We.createIfNeeded(e.url),n=We.createIfNeeded(e.pickFeaturesUrl);this._resource=t,this._urlSchemeZeroPadding=e.urlSchemeZeroPadding,this._getFeatureInfoFormats=e.getFeatureInfoFormats,this._pickFeaturesResource=n;let i=e.subdomains;Array.isArray(i)?i=i.slice():l(i)&&i.length>0?i=i.split(""):i=["a","b","c"],this._subdomains=i,this._tileWidth=e.tileWidth??256,this._tileHeight=e.tileHeight??256,this._minimumLevel=e.minimumLevel??0,this._maximumLevel=e.maximumLevel,this._tilingScheme=e.tilingScheme??new Zr({ellipsoid:e.ellipsoid}),this._rectangle=e.rectangle??this._tilingScheme.rectangle,this._rectangle=se.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new Rt(o)),this._credit=o,this._hasAlphaChannel=e.hasAlphaChannel??!0;let r=e.customTags,s=vt(Lfe,r),a=vt(CQe,r);this._tags=s,this._pickFeaturesTags=a,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this.enablePickFeatures=e.enablePickFeatures??!0}Object.defineProperties(RF.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}}});RF.prototype.getTileCredits=function(e,t,n){};RF.prototype.requestImage=function(e,t,n,i){return du.loadImage(this,RQe(this,e,t,n,i))};RF.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!l(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(d,u){return d.callback(u)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let d=s._getFeatureInfoFormats[r],u=VQe(s,e,t,n,i,o,d.format);return++r,d.type==="json"?u.fetchJson().then(d.callback).catch(c):d.type==="xml"?u.fetchXML().then(d.callback).catch(c):d.type==="text"||d.type==="html"?u.fetchText().then(d.callback).catch(c):u.fetch({responseType:d.format}).then(a.bind(void 0,d)).catch(c)}return c()};var aD=!1,uu=new se,cD=!1,VF=new se;function RQe(e,t,n,i,o){aD=!1,cD=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},d=s.match(Efe);return l(d)&&d.forEach(function(u){let m=u.substring(1,u.length-1);l(a[m])&&(c[m]=a[m](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var GQ=!1,EC=new k,EQ=!1;function VQe(e,t,n,i,o,r,s){aD=!1,cD=!1,GQ=!1,EQ=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),d=e._pickFeaturesTags,u={},m=c.match(Efe);return l(m)&&m.forEach(function(p){let b=p.substring(1,p.length-1);l(d[b])&&(u[b]=d[b](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:u})}function LC(e,t,n){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){let i=e.urlSchemeZeroPadding[t];if(typeof i=="string"){let o=i.length;o>1&&(n=n.length>=o?n:new Array(o-n.toString().length+1).join("0")+n)}}return n}function GQe(e,t,n,i){return LC(e,"{x}",t)}function EQe(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return LC(e,"{reverseX}",o)}function LQe(e,t,n,i){return LC(e,"{y}",n)}function WQe(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return LC(e,"{reverseY}",o)}function vQe(e,t,n,i){let o=e.maximumLevel,r=l(o)&&it.rectangle.east&&(e.east=t.rectangle.east),e.southt.rectangle.north&&(e.north=t.rectangle.north),e}function vfe(e,t,n){let i=e.positionToTileXY(se.southwest(t),n),o=e.positionToTileXY(se.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}_m._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,d,u,m,p=[],b=e.childNodes[0].childNodes;for(let I=0;I`),this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new Se}Object.defineProperties(Ad.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});Ad.fromUrl=async function(e,t,n){n=n??{};let i=n.path??"/default_map",o=We.createIfNeeded(e).getDerivedResource({url:i[0]==="/"?i.substring(1):i});o.appendForwardSlash();let r=o.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),s=new Ffe(n);s.channel=t,await o8e(r,s);let a=new Ad(n);return s.build(a),a._resource=o,a._url=e,a._path=i,a};Ad.prototype.getTileCredits=function(e,t,n){};Ad.prototype.requestImage=function(e,t,n,i){let o=this._resource.getDerivedResource({url:"query",request:i,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:n+1}});return du.loadImage(this,o)};Ad.prototype.pickFeatures=function(e,t,n,i,o){};Ad._logoUrl=void 0;Object.defineProperties(Ad,{logoUrl:{get:function(){return l(Ad._logoUrl)||(Ad._logoUrl=$t("Assets/Images/google_earth_credit.png")),Ad._logoUrl},set:function(e){Ad._logoUrl=e}}});var GF=Ad;var HUn=x(T(),1);var r8e=/\/$/,Ife=new Rt('© Mapbox © OpenStreetMap Improve this map');function WC(e){e=e??B.EMPTY_OBJECT;let t=e.mapId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=We.createIfNeeded(e.url??"https://{s}.tiles.mapbox.com/v4/");this._mapId=t,this._accessToken=n;let o=e.format??"png";/\./.test(o)||(o=`.${o}`),this._format=o;let r=i.getUrlComponent();r8e.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;l(e.credit)?(s=e.credit,typeof s=="string"&&(s=new Rt(s))):s=Ife,this._resource=i,this._imageryProvider=new ds({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(WC.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});WC.prototype.getTileCredits=function(e,t,n){};WC.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};WC.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};WC._defaultCredit=Ife;var EF=WC;var r5n=x(T(),1);function y_(e){e=e??B.EMPTY_OBJECT,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=e.rectangle??se.MAX_VALUE,n=new Oi({rectangle:t,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});this._tilingScheme=n,this._image=void 0,this._texture=void 0,this._hasError=!1,this._errorEvent=new Se;let i=e.credit;typeof i=="string"&&(i=new Rt(i)),this._credit=i;let o=We.createIfNeeded(e.url);this._resource=o,this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight}Object.defineProperties(y_.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});function s8e(e,t,n,i){let o=`Failed to load image ${e.url}`;l(t)&&l(t.message)&&(o+=`: ${t.message}`);let r=Bo.reportError(i,n,l(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return WQ(e,n,r);throw l(n)&&(n._hasError=!0),new ae(o)}async function WQ(e,t,n){try{return await du.loadImage(null,e)}catch(i){return s8e(e,i,t,n)}}y_.fromUrl=async function(e,t){let n=We.createIfNeeded(e),i=await WQ(n);t=t??B.EMPTY_OBJECT;let o=new y_({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};y_.prototype.getTileCredits=function(e,t,n){};y_.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!l(this._image)){let o=await WQ(this._resource,this);return this._image=o,Bo.reportSuccess(this._errorEvent),o}return this._image};y_.prototype.pickFeatures=function(e,t,n,i,o){};var LF=y_;var E5n=x(T(),1);var u5n=x(T(),1);function a8e(e,t,n){this.type=e,l(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,l(n)||(e==="json"?n=c8e:e==="xml"?n=m8e:(e==="html"||e==="text")&&(n=Pfe)),this.callback=n}function c8e(e){let t=[],n=e.features;for(let i=0;i0)for(let r=0;r\s*<\/body>/im,x8e=//im,T8e=/([\s\S]*)<\/title>/im;function Pfe(e){if(y8e.test(e)||x8e.test(e))return;let t,n=T8e.exec(e);n&&n.length>1&&(t=n[1]);let i=new Mh;return i.name=t,i.description=e,i.data=e,[i]}var Uh=a8e;var y5n=x(T(),1);function WF(e){e=e??B.EMPTY_OBJECT,this._tileCache={},this._tilesRequestedForInterval=[];let t=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,t.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(t)}Object.defineProperties(WF.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}});WF.prototype.getFromCache=function(e,t,n,i){let o=Xfe(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(l(s)&&l(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};WF.prototype.checkApproachingInterval=function(e,t,n,i){let o=Xfe(e,t,n),r=this._tilesRequestedForInterval,s=Yfe(this),a={key:o,priorityFunction:i.priorityFunction};(!l(s)||!Nfe(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};WF.prototype._clockOnTick=function(e){let t=e.currentTime,i=this._times.indexOf(t),o=this._currentIntervalIndex;if(i!==o){let s=this._tileCache[o];for(let a in s)s.hasOwnProperty(a)&&s[a].request.cancel();delete this._tileCache[o],this._tilesRequestedForInterval=[],this._currentIntervalIndex=i,this._reloadFunction();return}let r=Yfe(this);if(l(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=Nfe(this,c,r),a||s.push(c)}}};function Xfe(e,t,n){return`${e}-${t}-${n}`}function _8e(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function Yfe(e){let t=e._times;if(!l(t))return;let n=e._clock,i=n.currentTime,o=n.canAnimate&&n.shouldAnimate,r=n.multiplier;if(!o&&r!==0)return;let s,a=t.indexOf(i);if(a<0)return;let c=t.get(a);return r>0?(s=Q.secondsDifference(c.stop,i),++a):(s=Q.secondsDifference(c.start,i),--a),s/=r,a>=0&&s<=5?t.get(a):void 0}function Nfe(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];l(r)||(r=o[i]={});let s=t.key;if(l(r[s]))return!0;let a=_8e(s),c=new gr({throttle:!1,throttleByServer:!0,type:ws.IMAGERY,priorityFunction:t.priorityFunction}),d=e._requestImageFunction(a.x,a.y,a.level,c,n);return l(d)?(r[s]={promise:d,request:c},!0):!1}var x_=WF;var S8e=[3034,3035,3042,3043,3044],A8e=[4471,4559];function Dh(e){if(e=e??B.EMPTY_OBJECT,l(e.times)&&!l(e.clock))throw new Te("options.times was specified, so options.clock is required.");this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=e.getFeatureInfoUrl??e.url;let t=We.createIfNeeded(e.url),n=We.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(Dh.DefaultParameters,!0),n.setQueryParameters(Dh.GetFeatureInfoDefaultParameters,!0),l(e.parameters)&&t.setQueryParameters(wfe(e.parameters)),l(e.getFeatureInfoParameters)&&n.setQueryParameters(wfe(e.getFeatureInfoParameters));let i=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new x_({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,d,u){return Mfe(i,s,a,c,d,u)},reloadFunction:function(){l(i._reload)&&i._reload()}}));let o={};if(o.layers=e.layers,o.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",o.width="{width}",o.height="{height}",parseFloat(t.queryParameters.version)>=1.3){o.crs=e.crs??(e.tilingScheme&&e.tilingScheme.projection instanceof ui?"EPSG:3857":"CRS:84");let s=o.crs.split(":");if(s[0]==="EPSG"&&s.length===2){let a=Number(s[1]);(a>=4e3&&a<5e3&&!A8e.includes(a)||S8e.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=e.srs??(e.tilingScheme&&e.tilingScheme.projection instanceof ui?"EPSG:3857":"EPSG:4326");t.setQueryParameters(o,!0),n.setQueryParameters(o,!0);let r={query_layers:e.layers,info_format:"{format}"};parseFloat(n.queryParameters.version)>=1.3?(r.i="{i}",r.j="{j}"):(r.x="{i}",r.y="{j}"),n.setQueryParameters(r,!0),this._resource=t,this._pickFeaturesResource=n,this._layers=e.layers,this._tileProvider=new ds({url:t,pickFeaturesUrl:n,tilingScheme:e.tilingScheme??new Oi({ellipsoid:e.ellipsoid}),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:e.getFeatureInfoFormats??Dh.DefaultGetFeatureInfoFormats,enablePickFeatures:e.enablePickFeatures})}function Mfe(e,t,n,i,o,r){let s=l(r)?r.data:void 0,a=e._tileProvider;return l(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function Z8e(e,t,n,i,o,r,s){let a=l(s)?s.data:void 0,c=e._tileProvider;return l(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(Dh.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}}});Dh.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};Dh.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=Mfe(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};Dh.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=l(r)?r.currentInterval:void 0;return Z8e(this,e,t,n,i,o,s)};Dh.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});Dh.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});Dh.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new Uh("json","application/json")),Object.freeze(new Uh("xml","text/xml")),Object.freeze(new Uh("text","text/html"))]);function wfe(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var vF=Dh;var M5n=x(T(),1);function mu(e){e=e??B.EMPTY_OBJECT,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=e.getFeatureInfoUrl??e.url;let t=We.createIfNeeded(e.url),n=We.createIfNeeded(this._getFeatureInfoUrl),i=e.style,o=e.tileMatrixSetID,r=t.url,s=e.format??"image/jpeg",a=r.match(/{/g);if(!l(a)||a.length===1&&/{s}/.test(r)?(t.setQueryParameters(mu.DefaultParameters,!0),this._useKvp=!0):(t.setTemplateValues(mu.DefaultParameters,!0),this._useKvp=!1),this._useKvp){n.setQueryParameters(mu.GetFeatureInfoDefaultParameters,!0),l(e.getFeatureInfoParameters)&&n.setQueryParameters(kfe(e.getFeatureInfoParameters));let u={infoformat:"{format}",i:"{i}",j:"{j}"};n.setQueryParameters(u,!0)}else n.setTemplateValues(mu.GetFeatureInfoDefaultParameters,!0),l(e.getFeatureInfoParameters)&&n.setTemplateValues(kfe(e.getFeatureInfoParameters));this._resource=t,this._tileMatrixLabels=e.tileMatrixLabels,this._format=s,this._dimensions=e.dimensions,this._tilematrixset=o;let c={};c.tilematrix="{TileMatrix}",c.layer=e.layer,c.style=i,c.tilerow="{TileRow}",c.tilecol="{TileCol}",c.tilematrixset=o,this._useKvp?(t.setQueryParameters(c,!0),t.setQueryParameters({format:s},!0),n.setQueryParameters({format:s},!0),n.setQueryParameters(c,!0)):(c.Style=i,t.setTemplateValues(c),t.setTemplateValues({format:s}),n.setTemplateValues(c));let d=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new x_({clock:e.clock,times:e.times,requestImageFunction:function(u,m,p,b,f){return Ufe(d,u,m,p,b,f)},reloadFunction:function(){l(d._reload)&&d._reload()}})),this._errorEvent=new Se,this._tileProvider=new ds({url:t,pickFeaturesUrl:n,tilingScheme:e.tilingScheme??new Zr({ellipsoid:e.ellipsoid}),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:e.getFeatureInfoFormats??mu.DefaultGetFeatureInfoFormats,enablePickFeatures:e.enablePickFeatures??(this._useKvp||l(e.getFeatureInfoUrl)),customTags:R8e(this)})}function Ufe(e,t,n,i,o,r){let s=e._tileProvider;return Dfe(e,s._resource,r),s.requestImage(t,n,i,o)}function C8e(e,t,n,i,o,r,s){let a=e._tileProvider;return Dfe(e,a._pickFeaturesResource,s),a.pickFeatures(t,n,i,o,r)}Object.defineProperties(mu.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},format:{get:function(){return this._format}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return!0}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,l(this._reload)&&this._reload())}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}}});mu.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};mu.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=Ufe(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};mu.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=l(r)?r.currentInterval:void 0;return C8e(this,e,t,n,i,o,s)};mu.DefaultParameters=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});mu.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetFeatureInfo"});mu.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new Uh("json","application/json")),Object.freeze(new Uh("xml","text/xml")),Object.freeze(new Uh("text","text/html"))]);function Dfe(e,t,n){let i=e._dimensions,o=l(n)?n.data:void 0;if(!e._useKvp)l(i)&&t.setTemplateValues(i),l(o)&&t.setTemplateValues(o);else{let r={};l(i)&&(r=vt(r,i)),l(o)&&(r=vt(r,o)),t.setQueryParameters(r)}}function R8e(e){function t(n){let i=e._tileMatrixLabels;return l(i)?i[n]:n.toString()}return{TileMatrix:function(n,i,o,r){return t(r)},tilematrix:function(n,i,o,r){return t(r)},TileRow:function(n,i,o){return o.toString()},tilerow:function(n,i,o){return o.toString()},TileCol:function(n,i,o){return i.toString()},tilecol:function(n,i,o){return i.toString()},TileMatrixSet:function(n){return e._tilematrixset},tilematrixset:function(n){return e._tilematrixset}}}function kfe(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var FF=mu;var eDn=x(T(),1);var O5n=x(T(),1);var vC={};vC.defaultApiKey=void 0;vC.mapTilesApiEndpoint=new We({url:"https://tile.googleapis.com/"});vC.defaultStreetViewStaticApiKey=void 0;vC.streetViewStaticApiEndpoint=new We({url:"https://maps.googleapis.com/maps/api/streetview"});vC.getDefaultCredit=function(){return new Rt('<img alt="Google" src="https://assets.ion.cesium.com/google-credit.png" style="vertical-align:-6px">',!0)};var ca=vC;var Ofe=/\/$/;function fb(e){e=e??B.EMPTY_OBJECT,this._maximumLevel=e.maximumLevel??22,this._minimumLevel=e.minimumLevel??0,this._session=e.session,this._key=e.key,this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight;let t=e.url instanceof os?e.url:We.createIfNeeded(e.url??ca.mapTilesApiEndpoint),n=t.getUrlComponent();Ofe.test(n)||(n+="/");let i=`${n}v1/2dtiles/{z}/{x}/{y}`;this._viewportUrl=`${n}tile/v1/viewport`,t.url=i,t.setQueryParameters({session:encodeURIComponent(e.session),key:encodeURIComponent(e.key)}),this._resource=t.clone();let o;l(e.credit)&&(o=e.credit,typeof o=="string"&&(o=new Rt(o)));let r=new ds({url:t,credit:o,tileWidth:e.tileWidth,tileHeight:e.tileHeight,ellipsoid:e.ellipsoid,rectangle:e.rectangle,maximumLevel:this._maximumLevel,minimumLevel:this._minimumLevel});r._resource=t,this._imageryProvider=r,this._tileCredits=t.credits,this._attributionsByLevel=void 0}Object.defineProperties(fb.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});fb.fromIonAssetId=async function(e){e=e??{},e.mapType=e.mapType??"satellite",e.language=e.language??"en_US",e.region=e.region??"US";let t=e.overlayLayerType,n=Bfe(e),i=os._createEndpointResource(e.assetId,{queryParameters:{options:JSON.stringify(n)}}),o={language:e.language,region:e.region,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle,credit:e.credit},r=await i.fetchJson(),s=r.options.url;return delete r.options.url,r.options={...r.options,...o},IQ(s,r,i)};fb.fromUrl=async function(e){e=e??{},e.mapType=e.mapType??"satellite",e.language=e.language??"en_US",e.region=e.region??"US",e.url=e.url??ca.mapTilesApiEndpoint,e.key=e.key??ca.defaultApiKey;let t=e.overlayLayerType,n=await G8e(e);return new fb({...n,...e,credit:e.credit??ca.getDefaultCredit()})};fb.prototype.getTileCredits=function(e,t,n){if(!l(this._attributionsByLevel)||!l(this._tileCredits))return;let o=this._attributionsByLevel.get(n);return l(this._tileCredits)?this._tileCredits.concat(o):o};fb.prototype.requestImage=function(e,t,n,i){let o=this._imageryProvider.requestImage(e,t,n,i);if(l(o))return l(this._attributionsByLevel)?o:Promise.all([o,this.getViewportCredits()]).then(r=>r[0])};fb.prototype.pickFeatures=function(e,t,n,i,o){};fb.prototype.getViewportCredits=async function(){let e=this._maximumLevel,t=[];for(let o=0;o<e+1;o++)t.push(V8e(this._resource,this._viewportUrl,o));let n=await Promise.all(t),i=new Map;for(let o=0;o<e+1;o++){let r=[],s=n[o];if(s){let a=new Rt(s);r.push(a)}i.set(o,r)}return this._attributionsByLevel=i,i};async function V8e(e,t,n){return(await e.getDerivedResource({url:t,queryParameters:{zoom:n,north:90,south:-90,east:180,west:-180},data:JSON.stringify(B.EMPTY_OBJECT)}).fetchJson()).copyright}function Bfe(e){let{mapType:t,overlayLayerType:n,styles:i}=e,o={mapType:t,overlay:!1};return t==="terrain"&&!l(n)&&(o.layerTypes=["layerRoadmap"]),l(n)&&(o.mapType="satellite",o.overlay=!0,o.layerTypes=[n]),l(i)&&(o.styles=i),o}async function G8e(e){let{language:t,region:n,key:i,url:o}=e,r=Bfe(e),s=o.url??o;Ofe.test(s)||(s+="/");let a=await We.post({url:`${s}v1/createSession`,queryParameters:{key:i},data:JSON.stringify({...r,language:t,region:n})});return JSON.parse(a)}var IF=fb;var cDn=x(T(),1);var E8e=/\/$/;function FC(e){e=e??{};let t=e.tilesetId??"microsoft.imagery";this._maximumLevel=e.maximumLevel??22,this._minimumLevel=e.minimumLevel??0,this._subscriptionKey=e.subscriptionKey??e["subscription-key"],this._tilesetId=e.tilesetId;let n=e.url instanceof os?e.url:We.createIfNeeded(e.url??"https://atlas.microsoft.com/"),i=n.getUrlComponent();E8e.test(i)||(i+="/");let o=`${i}map/tile`;this._viewportUrl=`${i}map/attribution`,n.url=o,n.setQueryParameters({"api-version":"2024-04-01",tilesetId:t,"subscription-key":this._subscriptionKey,zoom:"{z}",x:"{x}",y:"{y}"}),this._resource=n;let r;l(e.credit)&&(r=e.credit,typeof r=="string"&&(r=new Rt(r)));let s=new ds({...e,maximumLevel:this._maximumLevel,minimumLevel:this._minimumLevel,url:n,credit:r});s._resource=n,this._imageryProvider=s,this._tileCredits=n.credits,this._attributionsByLevel=void 0}Object.defineProperties(FC.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});FC.prototype.getTileCredits=function(e,t,n){if(!l(this._attributionsByLevel)||!l(this._tileCredits))return;let o=this._attributionsByLevel.get(n);return l(this._tileCredits)?this._tileCredits.concat(o):o};FC.prototype.requestImage=function(e,t,n,i){let o=this._imageryProvider.requestImage(e,t,n,i);if(l(o))return l(this._attributionsByLevel)?o:Promise.all([o,this.getViewportCredits()]).then(r=>r[0])};FC.prototype.pickFeatures=function(e,t,n,i,o){};FC.prototype.getViewportCredits=async function(){let e=this._maximumLevel,t=[];for(let o=0;o<e+1;o++)t.push(L8e(this._resource,this._viewportUrl,this._subscriptionKey,this._tilesetId,o));let n=await Promise.all(t),i=new Map;for(let o=0;o<e+1;o++){let r=[],s=n[o].join(",");if(s){let a=new Rt(s);r.push(a)}i.set(o,r)}return this._attributionsByLevel=i,i};async function L8e(e,t,n,i,o){return(await e.getDerivedResource({url:t,queryParameters:{zoom:o,bounds:"-180,-90,180,90"},data:JSON.stringify(B.EMPTY_OBJECT)}).fetchJson()).copyrights}var PF=FC;var W8e=async(e,t,n)=>Py.fromUrl(new os(t,n)),v8e=async(e,{options:t})=>hb.fromUrl(e,t),F8e=async(e,{options:t})=>CF.fromUrl(e,t),I8e=async(e,{options:t})=>{let n=t.channel;return delete t.channel,GF.fromUrl(e,n,t)},P8e=async(e,{options:t})=>new EF({url:e,...t}),X8e=async(e,{options:t})=>LF.fromUrl(e,t),Y8e=async(e,{options:t})=>Py.fromUrl(e,t),N8e=async(e,{options:t})=>new ds({url:e,...t}),w8e=async(e,{options:t})=>new vF({url:e,...t}),M8e=async(e,{options:t})=>new FF({url:e,...t}),IQ=async(e,t,n)=>{delete t.externalType,t.url=e;let i=new os(t,n),o=(r,s)=>{delete s.externalType,s.url=e;let{options:a}=s;r.setQueryParameters({session:a.session,key:a.key})};return i.refreshCallback=o,new IF({...t.options,url:i})},k8e=async(e,t,n)=>{delete t.externalType,t.url=e;let i=new os(t,n),o=(r,s)=>{delete s.externalType,s.url=e;let{options:a}=s;r.setQueryParameters({"subscription-key":a["subscription-key"]})};return i.refreshCallback=o,new PF({...t.options,url:i})},U8e={ARCGIS_MAPSERVER:v8e,BING:F8e,GOOGLE_EARTH:I8e,MAPBOX:P8e,SINGLE_TILE:X8e,TMS:Y8e,URL_TEMPLATE:N8e,WMS:w8e,WMTS:M8e,GOOGLE_2D_MAPS:IQ,AZURE_MAPS:k8e,defaultFactoryCallback:W8e},IC=Object.freeze(U8e);function bp(e){e=e??B.EMPTY_OBJECT,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileCredits=void 0,this._errorEvent=new Se}Object.defineProperties(bp.prototype,{rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},proxy:{get:function(){}}});bp.fromAssetId=async function(e,t){t=t??B.EMPTY_OBJECT;let n=os._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=bp._endpointCache[i];l(o)||(o=n.fetchJson(),bp._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new ae(`Cesium ion asset ${e} is not an imagery asset.`);let s=r.externalType,a=IC.defaultFactoryCallback;r=Je(r,!0),r.options=r.options??{};let c=r.options?.url;if(delete t.url,l(s)&&(a=IC[s],!l(a)))throw new ae(`Unrecognized Cesium ion imagery type: ${s}`);let d=await a(c,r,n),u=new bp(t);return d.errorEvent.addEventListener(function(m){m.provider=u,u._errorEvent.raiseEvent(m)}),u._tileCredits=os.getCreditsFromEndpoint(r,n),u._imageryProvider=d,u};bp.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return l(i)?this._tileCredits.concat(i):this._tileCredits};bp.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};bp.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};bp._endpointCache={};var Nl=bp;var FDn=x(T(),1),zfe={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4};Object.freeze(zfe);var pb=zfe;function D8e(e){e=e??B.EMPTY_OBJECT;let t=e.style??pb.AERIAL;return Nl.fromAssetId(t)}var bb=D8e;var ODn=x(T(),1);function Gs(){Te.throwInstantiationError()}Object.defineProperties(Gs.prototype,{errorEvent:{get:Te.throwInstantiationError},credit:{get:Te.throwInstantiationError},tilingScheme:{get:Te.throwInstantiationError},hasWaterMask:{get:Te.throwInstantiationError},hasVertexNormals:{get:Te.throwInstantiationError},availability:{get:Te.throwInstantiationError}});var Hfe=[];Gs.getRegularGridIndices=function(e,t){let n=Hfe[e];l(n)||(Hfe[e]=n=[]);let i=n[t];return l(i)||(e*t<W.SIXTY_FOUR_KILOBYTES?i=n[t]=new Uint16Array((e-1)*(t-1)*6):i=n[t]=new Uint32Array((e-1)*(t-1)*6),Qfe(e,t,i,0)),i};var Kfe=[];Gs.getRegularGridIndicesAndEdgeIndices=function(e,t){let n=Kfe[e];l(n)||(Kfe[e]=n=[]);let i=n[t];if(!l(i)){let o=Gs.getRegularGridIndices(e,t),r=jfe(e,t),s=r.westIndicesSouthToNorth,a=r.southIndicesEastToWest,c=r.eastIndicesNorthToSouth,d=r.northIndicesWestToEast;i=n[t]={indices:o,westIndicesSouthToNorth:s,southIndicesEastToWest:a,eastIndicesNorthToSouth:c,northIndicesWestToEast:d}}return i};var Jfe=[];Gs.getRegularGridAndSkirtIndicesAndEdgeIndices=function(e,t){let n=Jfe[e];l(n)||(Jfe[e]=n=[]);let i=n[t];if(!l(i)){let o=e*t,r=(e-1)*(t-1)*6,s=e*2+t*2,a=Math.max(0,s-4)*6,c=o+s,d=r+a,u=jfe(e,t),m=u.westIndicesSouthToNorth,p=u.southIndicesEastToWest,b=u.eastIndicesNorthToSouth,f=u.northIndicesWestToEast,y=De.createTypedArray(c,d);Qfe(e,t,y,0),Gs.addSkirtIndices(m,p,b,f,o,y,r),i=n[t]={indices:y,westIndicesSouthToNorth:m,southIndicesEastToWest:p,eastIndicesNorthToSouth:b,northIndicesWestToEast:f,indexCountWithoutSkirts:r}}return i};Gs.getSkirtVertexCount=function(e,t,n,i){return e.length+t.length+n.length+i.length};Gs.getSkirtIndexCount=function(e){return(e-4)*2*3};Gs.getSkirtIndexCountWithFilledCorners=function(e){return((e-4)*2+4)*3};Gs.addSkirtIndices=function(e,t,n,i,o,r,s){let a=o;s=hD(e,a,r,s),a+=e.length,s=hD(t,a,r,s),a+=t.length,s=hD(n,a,r,s),a+=n.length,hD(i,a,r,s)};Gs.addSkirtIndicesWithFilledCorners=function(e,t,n,i,o,r,s){Gs.addSkirtIndices(e,t,n,i,o,r,s);let a=Gs.getSkirtVertexCount(e,t,n,i),c=Gs.getSkirtIndexCount(a),d=s+c,u=e[0],m=i[0],p=n[0],b=t[0],f=o,y=f+e.length-1,_=y+1,S=_+t.length-1,A=S+1,Z=A+n.length-1,R=Z+1,G=R+i.length-1;r[d+0]=u,r[d+1]=f,r[d+2]=S,r[d+3]=b,r[d+4]=_,r[d+5]=Z,r[d+6]=p,r[d+7]=A,r[d+8]=G,r[d+9]=m,r[d+10]=R,r[d+11]=y};function jfe(e,t){let n=new Array(t),i=new Array(e),o=new Array(t),r=new Array(e),s;for(s=0;s<e;++s)r[s]=s,i[s]=e*t-1-s;for(s=0;s<t;++s)o[s]=(s+1)*e-1,n[s]=(t-s-1)*e;return{westIndicesSouthToNorth:n,southIndicesEastToWest:i,eastIndicesNorthToSouth:o,northIndicesWestToEast:r}}function Qfe(e,t,n,i){let o=0;for(let r=0;r<t-1;++r){for(let s=0;s<e-1;++s){let a=o,c=a+e,d=c+1,u=a+1;n[i++]=a,n[i++]=c,n[i++]=u,n[i++]=u,n[i++]=c,n[i++]=d,++o}++o}}function hD(e,t,n,i){let o=e[0],r=e.length;for(let s=1;s<r;++s){let a=e[s];n[i++]=o,n[i++]=a,n[i++]=t,n[i++]=t,n[i++]=a,n[i++]=t+1,o=a,++t}return i}Gs.heightmapTerrainQuality=.25;Gs.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,n){return e.maximumRadius*2*Math.PI*Gs.heightmapTerrainQuality/(t*n)};Gs.prototype.requestTileGeometry=Te.throwInstantiationError;Gs.prototype.getLevelMaximumGeometricError=Te.throwInstantiationError;Gs.prototype.getTileDataAvailable=Te.throwInstantiationError;Gs.prototype.loadTileDataAvailability=Te.throwInstantiationError;var Mo=Gs;var zDn=x(T(),1),XF=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(u_texture, v_textureCoordinates); +} +`;var KDn=x(T(),1),YF=`in vec4 position; +in float webMercatorT; + +uniform vec2 u_textureDimensions; + +out vec2 v_textureCoordinates; + +void main() +{ + v_textureCoordinates = vec2(position.x, webMercatorT); + gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0)); +} +`;var tOn=x(T(),1);var jDn=x(T(),1),qfe={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7};Object.freeze(qfe);var On=qfe;function PC(e,t,n,i,o){if(this.imageryLayer=e,this.x=t,this.y=n,this.level=i,this.request=void 0,i!==0){let r=t/2|0,s=n/2|0,a=i-1;this.parent=e.getImageryFromCache(r,s,a)}this.state=On.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!l(o)&&e.ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}PC.createPlaceholder=function(e){let t=new PC(e,0,0,0);return t.addReference(),t.state=On.PLACEHOLDER,t};PC.prototype.addReference=function(){++this.referenceCount};PC.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),l(this.parent)&&this.parent.releaseReference(),l(this.image)&&l(this.image.destroy)&&this.image.destroy(),l(this.texture)&&this.texture.destroy(),l(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),he(this),0):this.referenceCount};PC.prototype.processStateMachine=function(e,t,n){this.state===On.UNLOADED&&!n&&(this.state=On.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===On.RECEIVED&&(this.state=On.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===On.READY&&t&&!this.texture;(this.state===On.TEXTURE_LOADED||i)&&(this.state=On.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var XC=PC;var rOn=x(T(),1);function PQ(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}PQ.prototype.freeResources=function(){l(this.readyImagery)&&this.readyImagery.releaseReference(),l(this.loadingImagery)&&this.loadingImagery.releaseReference()};PQ.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===On.READY)return l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this),!0;let r=i.parent,s;for(;l(r)&&(r.state!==On.READY||!this.useWebMercatorT&&!l(r.texture));)r.state!==On.FAILED&&r.state!==On.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,l(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===On.FAILED||i.state===On.INVALID?l(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var YC=PQ;function Yi(e,t){this._imageryProvider=e,this._readyEvent=new Se,this._errorEvent=new Se,t=t??B.EMPTY_OBJECT,e=e??B.EMPTY_OBJECT,this.alpha=t.alpha??e._defaultAlpha??1,this.nightAlpha=t.nightAlpha??e._defaultNightAlpha??1,this.dayAlpha=t.dayAlpha??e._defaultDayAlpha??1,this.brightness=t.brightness??e._defaultBrightness??Yi.DEFAULT_BRIGHTNESS,this.contrast=t.contrast??e._defaultContrast??Yi.DEFAULT_CONTRAST,this.hue=t.hue??e._defaultHue??Yi.DEFAULT_HUE,this.saturation=t.saturation??e._defaultSaturation??Yi.DEFAULT_SATURATION,this.gamma=t.gamma??e._defaultGamma??Yi.DEFAULT_GAMMA,this.splitDirection=t.splitDirection??Yi.DEFAULT_SPLIT,this.minificationFilter=t.minificationFilter??e._defaultMinificationFilter??Yi.DEFAULT_MINIFICATION_FILTER,this.magnificationFilter=t.magnificationFilter??e._defaultMagnificationFilter??Yi.DEFAULT_MAGNIFICATION_FILTER,this.show=t.show??!0,this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=t.rectangle??se.MAX_VALUE,this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new YC(XC.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=t.colorToAlphaThreshold??Yi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD}Object.defineProperties(Yi.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return l(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});Yi.DEFAULT_BRIGHTNESS=1;Yi.DEFAULT_CONTRAST=1;Yi.DEFAULT_HUE=0;Yi.DEFAULT_SATURATION=1;Yi.DEFAULT_GAMMA=1;Yi.DEFAULT_SPLIT=Gr.NONE;Yi.DEFAULT_MINIFICATION_FILTER=Dt.LINEAR;Yi.DEFAULT_MAGNIFICATION_FILTER=qn.LINEAR;Yi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;Yi.fromProviderAsync=function(e,t){let n=new Yi(void 0,t);return K8e(n,Promise.resolve(e)),n};Yi.fromWorldImagery=function(e){return e=e??B.EMPTY_OBJECT,Yi.fromProviderAsync(bb({style:e.style}),e)};Yi.prototype.isBaseLayer=function(){return this._isBaseLayer};Yi.prototype.isDestroyed=function(){return!1};Yi.prototype.destroy=function(){return he(this)};var tpe=new se,$fe=new se,XQ=new se,npe=new se;Yi.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return se.intersection(e.rectangle,t)};Yi.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!l(t)||l(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||l(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;l(n)||(n=i.imagery.length);let o=this._imageryProvider;if(!this.ready)return this._skeletonPlaceholder.loadingImagery.addReference(),i.imagery.splice(n,0,this._skeletonPlaceholder),!0;let r=o.tilingScheme.projection instanceof ui&&e.rectangle.north<ui.MaximumLatitude&&e.rectangle.south>-ui.MaximumLatitude,s=se.intersection(o.rectangle,this._rectangle,tpe),a=se.intersection(e.rectangle,s,$fe);if(!l(a)){if(!this.isBaseLayer())return!1;let V=s,L=e.rectangle;a=$fe,L.south>=V.north?a.north=a.south=V.north:L.north<=V.south?a.north=a.south=V.south:(a.south=Math.max(L.south,V.south),a.north=Math.min(L.north,V.north)),L.west>=V.east?a.west=a.east=V.east:L.east<=V.west?a.west=a.east=V.west:(a.west=Math.max(L.west,V.west),a.east=Math.min(L.east,V.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let u=1*t.getLevelMaximumGeometricError(e.level),m=z8e(this,u,c);m=Math.max(0,m);let p=o.maximumLevel;if(m>p&&(m=p),l(o.minimumLevel)){let V=o.minimumLevel;m<V&&(m=V)}let b=o.tilingScheme,f=b.positionToTileXY(se.northwest(a),m),y=b.positionToTileXY(se.southeast(a),m),_=e.rectangle.width/512,S=e.rectangle.height/512,A=b.tileXYToRectangle(f.x,f.y,m);Math.abs(A.south-e.rectangle.north)<S&&f.y<y.y&&++f.y,Math.abs(A.east-e.rectangle.west)<_&&f.x<y.x&&++f.x;let Z=b.tileXYToRectangle(y.x,y.y,m);Math.abs(Z.north-e.rectangle.south)<S&&y.y>f.y&&--y.y,Math.abs(Z.west-e.rectangle.east)<_&&y.x>f.x&&--y.x;let R=se.clone(e.rectangle,npe),G=b.tileXYToRectangle(f.x,f.y,m),E=se.intersection(G,s,XQ),v;r?(b.rectangleToNativeRectangle(R,R),b.rectangleToNativeRectangle(G,G),b.rectangleToNativeRectangle(E,E),b.rectangleToNativeRectangle(s,s),v=b.tileXYToNativeRectangle.bind(b),_=R.width/512,S=R.height/512):v=b.tileXYToRectangle.bind(b);let I,X=0,Y=1,g;!this.isBaseLayer()&&Math.abs(E.west-R.west)>=_&&(X=Math.min(1,(E.west-R.west)/R.width)),!this.isBaseLayer()&&Math.abs(E.north-R.north)>=S&&(Y=Math.max(0,(E.north-R.south)/R.height));let C=Y;for(let V=f.x;V<=y.x;V++)if(I=X,G=v(V,f.y,m),E=se.simpleIntersection(G,s,XQ),!!l(E)){X=Math.min(1,(E.east-R.west)/R.width),V===y.x&&(this.isBaseLayer()||Math.abs(E.east-R.east)<_)&&(X=1),Y=C;for(let L=f.y;L<=y.y;L++){if(g=Y,G=v(V,L,m),E=se.simpleIntersection(G,s,XQ),!l(E))continue;Y=Math.max(0,(E.south-R.south)/R.height),L===y.y&&(this.isBaseLayer()||Math.abs(E.south-R.south)<S)&&(Y=0);let P=new ce(I,Y,X,g),N=this.getImageryFromCache(V,L,m);i.imagery.splice(n,0,new YC(N,P,r)),++n}}return!0};Yi.prototype._calculateTextureTranslationAndScale=function(e,t){let n=t.readyImagery.rectangle,i=e.rectangle;if(t.useWebMercatorT){let c=t.readyImagery.imageryLayer.imageryProvider.tilingScheme;n=c.rectangleToNativeRectangle(n,tpe),i=c.rectangleToNativeRectangle(i,npe)}let o=i.width,r=i.height,s=o/n.width,a=r/n.height;return new ce(s*(i.west-n.west)/o,a*(i.south-n.south)/r,s,a)};Yi.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!l(s))return o();e.image=s,e.state=On.RECEIVED,e.request=void 0,Bo.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===pi.CANCELLED){e.state=On.UNLOADED,e.request=void 0;return}e.state=On.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=Bo.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&r()}function r(){let s=new gr({throttle:!1,throttleByServer:!0,type:ws.IMAGERY});e.request=s,e.state=On.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!l(a)){e.state=On.UNLOADED,e.request=void 0;return}l(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};Yi.prototype._createTextureWebGL=function(e,t){let n=new Ht({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return l(i.internalFormat)?new Ft({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new Ft({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?Qe.RGBA:Qe.RGB,sampler:n})};Yi.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(l(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(l(r)){if(!r.isReady()){t.state=On.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=On.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof ui?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=On.TEXTURE_LOADED};function epe(e,t,n){return`${e}:${t}:${n}`}Yi.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===Dt.LINEAR&&i===qn.LINEAR&&!Qe.isCompressedFormat(t.pixelFormat)&&W.isPowerOfTwo(t.width)&&W.isPowerOfTwo(t.height)){n=Dt.LINEAR_MIPMAP_LINEAR;let r=Xt.maximumTextureFilterAnisotropy,s=Math.min(r,this._maximumAnisotropy??r),a=epe(n,i,s),c=e.cache.imageryLayerMipmapSamplers;l(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let d=c[a];l(d)||(d=c[a]=new Ht({wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(am.NICEST),t.sampler=d}else{let r=epe(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;l(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];l(a)||(a=s[r]=new Ht({wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};Yi.prototype._reprojectTexture=function(e,t,n){let i=t.textureWebMercator||t.texture,o=t.rectangle,r=e.context;if(n=n??!0,n&&!(this._imageryProvider.tilingScheme.projection instanceof ki)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new Fl({persists:!0,owner:this,preExecute:function(c){B8e(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=On.READY,t.releaseReference()},canceled:function(){t.state=On.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=On.READY};Yi.prototype.queueReprojectionCommands=function(e){let t=this._reprojectComputeCommands,n=t.length;for(let i=0;i<n;++i)e.commandList.push(t[i]);t.length=0};Yi.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){l(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};Yi.prototype.getImageryFromCache=function(e,t,n,i){let o=ipe(e,t,n),r=this._imageryCache[o];return l(r)||(r=new XC(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};Yi.prototype.removeImageryFromCache=function(e){let t=ipe(e.x,e.y,e.level);delete this._imageryCache[t]};function ipe(e,t,n){return JSON.stringify([e,t,n])}var fD={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new k,texture:void 0},O8e=mn.supportsTypedArrays()?new Float32Array(128):void 0;function B8e(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!l(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){l(this.framebuffer)&&this.framebuffer.destroy(),l(this.vertexArray)&&this.vertexArray.destroy(),l(this.shaderProgram)&&this.shaderProgram.destroy()}};let _=new Float32Array(256),S=0;for(let E=0;E<64;++E){let v=E/63;_[S++]=0,_[S++]=v,_[S++]=1,_[S++]=v}let A={position:0,webMercatorT:1},Z=Mo.getRegularGridIndices(2,64),R=$e.createIndexBuffer({context:t,typedArray:Z,usage:Fe.STATIC_DRAW,indexDatatype:De.UNSIGNED_SHORT});o.vertexArray=new wn({context:t,attributes:[{index:A.position,vertexBuffer:$e.createVertexBuffer({context:t,typedArray:_,usage:Fe.STATIC_DRAW}),componentsPerAttribute:2},{index:A.webMercatorT,vertexBuffer:$e.createVertexBuffer({context:t,sizeInBytes:512,usage:Fe.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:R});let G=new He({sources:[YF]});o.shaderProgram=tn.fromCache({context:t,vertexShaderSource:G,fragmentShaderSource:XF,attributeLocations:A}),o.sampler=new Ht({wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:Dt.LINEAR,magnificationFilter:qn.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;fD.textureDimensions.x=r,fD.textureDimensions.y=s,fD.texture=n;let a=Math.sin(i.south),c=.5*Math.log((1+a)/(1-a));a=Math.sin(i.north);let u=1/(.5*Math.log((1+a)/(1-a))-c),m=new Ft({context:t,width:r,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});W.isPowerOfTwo(r)&&W.isPowerOfTwo(s)&&m.generateMipmap(am.NICEST);let p=i.south,b=i.north,f=O8e,y=0;for(let _=0;_<64;++_){let S=_/63,A=W.lerp(p,b,S);a=Math.sin(A);let R=(.5*Math.log((1+a)/(1-a))-c)*u;f[y++]=R,f[y++]=R}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(f),e.shaderProgram=o.shaderProgram,e.outputTexture=m,e.uniformMap=fD,e.vertexArray=o.vertexArray}function z8e(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof ki?1:Math.cos(n),a=o.rectangle,d=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,u=Math.log(d)/Math.log(2);return Math.round(u)|0}function H8e(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function K8e(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){H8e(e._errorEvent,i)}}var us=Yi;var HOn=x(T(),1),YQ=class{constructor(){this.alpha=!1,this.brightness=!1,this.contrast=!1,this.hue=!1,this.saturation=!1,this.gamma=!1,this.colorToAlpha=!1}},NF=YQ;var GBn=x(T(),1);var eBn=x(T(),1);var JOn=x(T(),1),NQ=class{constructor(t,n,i,o){this._minX=t??0,this._minY=n??0,this._maxX=i??0,this._maxY=o??0}get minX(){return this._minX}set minX(t){this._minX=t}get minY(){return this._minY}set minY(t){this._minY=t}get maxX(){return this._maxX}set maxX(t){this._maxX=t}get maxY(){return this._maxY}set maxY(t){this._maxY=t}contains(t,n){return t>=this.minX&&t<this.maxX&&n>=this.minY&&n<this.maxY}containsExclusive(t,n){return t>this.minX&&t<this.maxX&&n>this.minY&&n<this.maxY}containsInclusive(t,n){return t>=this.minX&&t<=this.maxX&&n>=this.minY&&n<=this.maxY}},NC=NQ;var J8e=new se,ope=new se,j8e=new se,Q8e=new se,q8e=new se,$8e=new se,wQ=class e{constructor(t,n,i,o,r){this._x=t,this._y=n,this._level=i,this._textureCoordinateRectangle=o,this._imagery=r}get x(){return this._x}get y(){return this._y}get level(){return this._level}get textureCoordinateRectangle(){return this._textureCoordinateRectangle}get imagery(){return this._imagery}static createImageryCoverages(t,n,i){if(!n.show)return[];let o=n.imageryProvider,r=e._clampImageryLevel(o,i),s=se.intersection(o.rectangle,n.rectangle,J8e),a=o.tilingScheme,c=e._computeImageryRange(t,s,a,r),d=Q8e;a.rectangleToNativeRectangle(t,d);let u=q8e;a.rectangleToNativeRectangle(s,u);let m=(b,f,y)=>{let _=a.tileXYToRectangle(b,f,y),S=se.intersection(_,s,j8e);if(!l(S))return;let A=$8e;return a.rectangleToNativeRectangle(S,A),A};return e._computeImageryCoverages(n,c,r,d,m)}static _clampImageryLevel(t,n){let i=t.minimumLevel??0,o=t.maximumLevel??Number.POSITIVE_INFINITY,r=Math.min(o-1,Math.max(i,n));return Math.floor(r)}static _computeImageryRange(t,n,i,o){let r=e._computeOverlappedRectangle(t,n),s=i.positionToTileXY(se.northwest(r),o),a=i.positionToTileXY(se.southeast(r),o),c=new NC;c.minX=s.x,c.minY=s.y,c.maxX=a.x,c.maxY=a.y;let d=t.width/512,u=t.height/512,m=i.tileXYToRectangle(c.minX,c.minY,o);Math.abs(m.south-t.north)<u&&c.minY<c.maxY&&++c.minY,Math.abs(m.east-t.west)<d&&c.minX<c.maxX&&++c.minX;let f=i.tileXYToRectangle(c.maxX,c.maxY,o);return Math.abs(f.north-t.south)<u&&c.maxY>c.minY&&--c.maxY,Math.abs(f.west-t.east)<d&&c.maxX>c.minX&&--c.maxX,c}static _clampRectangle(t,n,i){return l(i)||(i=new se),t.south>=n.north?i.north=i.south=n.north:t.north<=n.south?i.north=i.south=n.south:(i.south=Math.max(t.south,n.south),i.north=Math.min(t.north,n.north)),t.west>=n.east?i.west=i.east=n.east:t.east<=n.west?i.west=i.east=n.west:(i.west=Math.max(t.west,n.west),i.east=Math.min(t.east,n.east)),i}static _computeOverlappedRectangle(t,n){let i=se.intersection(t,n,ope);return l(i)?i:e._clampRectangle(t,n,ope)}static _computeImageryCoverages(t,n,i,o,r){let s=[];for(let a=n.minX;a<=n.maxX;a++){let c=r(a,n.maxY,i);if(l(c))for(let d=n.minY;d<=n.maxY;d++){let u=r(a,d,i);if(!l(u))continue;let m=e._localizeToCartesianRectangle(u,o,void 0),p=t.getImageryFromCache(a,d,i),b=new e(a,d,i,m,p);s.push(b)}}return s}static _localizeToCartesianRectangle(t,n,i){l(i)||(i=new NC);let o=1/n.width,r=1/n.height;return i.minX=(t.west-n.west)*o,i.minY=(t.south-n.south)*r,i.maxX=(t.east-n.west)*o,i.maxY=(t.north-n.south)*r,i}},wC=wQ;var hBn=x(T(),1);var MQ=class e{static createTextureCoordinatesForMappedPositions(t,n){let i=t.cartographicPositions,o=t.cartographicBoundingRectangle,r=t.numPositions;return e._createTextureCoordinates(i,r,o,n)}static _createTextureCoordinates(t,n,i,o){let r=new it;it.fromRectangle(i,o,r);let s=e.createProjectedPositions(t,o),a=e.computeTexCoords(s,r);return e.createTypedArrayFromCartesians2(n,a)}static createTextureCoordinatesAttributeForMappedPositions(t,n){let i=e.createTextureCoordinatesForMappedPositions(t,n);return e.createTexCoordAttribute(i)}static createCartographicPositions(t,n,i){let o=sa.readAttributeAsTypedArray(t),r=t.type,s=kt.getNumberOfComponents(r),a=e.createIterableCartesian3FromTypedArray(o,s),c=e.transformCartesians3(a,n);return e.transformToCartographic(c,i)}static createIterableCartesian3FromTypedArray(t,n){let i=new h,o=t.length/n;return{[Symbol.iterator]:function*(){for(let s=0;s<o;s++)i.x=t[s*n+0],i.y=t[s*n+1],i.z=t[s*n+2],yield i}}}static map(t,n){return{[Symbol.iterator]:function*(){for(let o of t)yield n(o)}}}static computeCartographicBoundingRectangle(t,n){l(n)||(n=new se);let i=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY;for(let a of t)i=Math.max(i,a.latitude),o=Math.min(o,a.latitude),r=Math.max(r,a.longitude),s=Math.min(s,a.longitude);return n.north=i,n.south=o,n.east=r,n.west=s,n}static transformCartesians3(t,n){let i=new h;return e.map(t,r=>(F.multiplyByPoint(n,r,i),i))}static transformToCartographic(t,n){let i=new fe;return e.map(t,r=>(n.cartesianToCartographic(r,i),i))}static createProjectedPositions(t,n){let i=new h;return e.map(t,r=>(n.project(r,i),i))}static computeTexCoords(t,n){let i=new k,o=1/n.width,r=1/n.height;return e.map(t,a=>{let c=(a.x-n.x)*o,d=(a.y-n.y)*r,u=Math.min(Math.max(c,0),1),m=Math.min(Math.max(d,0),1);return i.x=u,i.y=m,i})}static createTypedArrayFromCartesians2(t,n){let i=new Float32Array(t*2),o=0;for(let r of n)i[o*2+0]=r.x,i[o*2+1]=r.y,o++;return i}static createTexCoordAttribute(t){return{name:"Imagery Texture Coordinates",semantic:ct.TEXCOORD,setIndex:0,componentDatatype:J.FLOAT,type:kt.VEC2,normalized:!1,count:t.length/2,min:void 0,max:void 0,constant:new k(0,0),quantization:void 0,typedArray:t,byteOffset:0,byteStride:void 0}}},T_=MQ;var pBn=x(T(),1);var kQ=class{constructor(t,n,i,o){this._cartographicPositions=t,this._numPositions=n,this._cartographicBoundingRectangle=i,this._ellipsoid=o}get cartographicPositions(){return this._cartographicPositions}get numPositions(){return this._numPositions}get cartographicBoundingRectangle(){return this._cartographicBoundingRectangle}get ellipsoid(){return this._ellipsoid}},wF=kQ;var UQ=class e{constructor(t,n,i){this._model=t,this._runtimeNode=n,this._runtimePrimitive=i,this._mappedPositionsPerEllipsoid=void 0,this._mappedPositionsModelMatrix=new F,this._lastImageryLayersModificationCounter=0,this._imageryTexCoordAttributesPerProjection=void 0,this._currentImageryLayers=void 0,this._coveragesPerLayer=void 0,this._allImageriesReady=!1}coveragesForImageryLayer(t){let o=this._model.imageryLayers.indexOf(t);if(o===-1)throw new Te("Imagery layer is not part of the model");let r=this._coveragesPerLayer;if(!l(r))throw new Te("The coveragesPerLayer have not been computed yet");return r[o]}update(t){let n=this._model,r=n.content.tileset.imageryLayersModificationCounter;this._lastImageryLayersModificationCounter!==r&&(delete this._mappedPositionsPerEllipsoid,this._lastImageryLayersModificationCounter=r),this._mappedPositionsNeedUpdate&&(n.resetDrawCommands(),this._mappedPositionsPerEllipsoid=this._computeMappedPositionsPerEllipsoid(),this._deleteCoveragesPerLayer(),this._destroyImageryTexCoordAttributes()),l(this._imageryTexCoordAttributesPerProjection)||(this._imageryTexCoordAttributesPerProjection=this._computeImageryTexCoordsAttributesPerProjection(),this._uploadImageryTexCoordAttributes(t.context)),l(this._coveragesPerLayer)||(this._computeCoveragesPerLayer(),this._allImageriesReady=!1),this._allImageriesReady||this._updateImageries(t)}_deleteCoveragesPerLayer(){let t=this._coveragesPerLayer;if(!l(t))return;let n=this._currentImageryLayers,i=t.length;for(let o=0;o<i;o++){let r=n[o],s=t[o];this._deleteCoverages(r,s)}delete this._currentImageryLayers,delete this._coveragesPerLayer}_deleteCoverages(t,n){if(t.isDestroyed())return;let i=n.length;for(let o=0;o<i;o++)n[o].imagery.releaseReference()}_uploadImageryTexCoordAttributes(t){let n=this._imageryTexCoordAttributesPerProjection;if(!l(n))return;let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=$e.createVertexBuffer({context:t,typedArray:r.typedArray,usage:Fe.STATIC_DRAW});s.vertexArrayDestroyable=!1,r.buffer=s}}_destroyImageryTexCoordAttributes(){let t=this._imageryTexCoordAttributesPerProjection;if(!l(t))return;let n=t.length;for(let i=0;i<n;i++){let o=t[i];l(o)&&(l(o.buffer)&&(o.buffer.isDestroyed()||o.buffer.destroy()),t[i]=void 0)}delete this._imageryTexCoordAttributesPerProjection}get _mappedPositionsNeedUpdate(){if(!l(this._mappedPositionsPerEllipsoid))return!0;let t=this._model,n=this._mappedPositionsModelMatrix;return!F.equals(t.modelMatrix,n)}_computeMappedPositionsPerEllipsoid(){let t=this._model,n=this._runtimeNode,i=this._runtimePrimitive,o=e._obtainPrimitivePositionAttribute(i.primitive),r=o.count,s=e._computePrimitivePositionTransform(t,n,void 0),a=[],c=e._computeUniqueEllipsoids(t.imageryLayers),d=c.length;for(let u=0;u<d;u++){let m=c[u],p=T_.createCartographicPositions(o,s,m),b=T_.computeCartographicBoundingRectangle(p),f=new wF(p,r,b,m);a.push(f)}return F.clone(t.modelMatrix,this._mappedPositionsModelMatrix),a}static _computeUniqueEllipsoids(t){let n=new Set,i=t.length;for(let o=0;o<i;o++){let r=t.get(o),s=e._getEllipsoid(r);n.add(s)}return[...n]}_computeImageryTexCoordsAttributesPerProjection(){let n=this._model.imageryLayers,i=e._extractProjections(n),o=[...new Set(i)];return this._createImageryTexCoordAttributes(o)}static _extractProjections(t){let n=[],i=t.length;for(let o=0;o<i;o++){let r=t.get(o),s=e._getProjection(r);n.push(s)}return n}static _getProjection(t){return t.imageryProvider.tilingScheme.projection}_createImageryTexCoordAttributes(t){let n=[],i=t.length;for(let o=0;o<i;o++){let r=t[o],s=r.ellipsoid,a=this.mappedPositionsForEllipsoid(s),c=T_.createTextureCoordinatesAttributeForMappedPositions(a,r);n.push(c)}return n}_computeCoveragesPerLayer(){let t=[],n=[],o=this._model.imageryLayers,r=o.length;for(let s=0;s<r;s++){let a=o.get(s),c=this._computeCoverage(a);t.push(c),n.push(a)}this._coveragesPerLayer=t,this._currentImageryLayers=n}_computeCoverage(t){let i=this.mappedPositionsForImageryLayer(t).cartographicBoundingRectangle,o=this._computeImageryLevel(t,i);return wC.createImageryCoverages(i,t,o)}_computeImageryLevel(t,n){let i=t.imageryProvider,r=i.tilingScheme.rectangle,s=1,a=n.width,c=r.width;n.height>n.width&&(a=n.height,c=r.height);let d=Math.log2(s*c/a);return wC._clampImageryLevel(i,d)}_updateImageries(t){let n=this._model,i=this._coveragesPerLayer,o=i.length,r=!0;for(let s=0;s<o;s++){let a=i[s],c=a.length;for(let d=0;d<c;d++){let m=a[d].imagery;m.state===On.READY||m.state===On.FAILED||m.state===On.INVALID||(r=!1,m.processStateMachine(t,!1,!1))}}r&&n.resetDrawCommands(),this._allImageriesReady=r}mappedPositionsForImageryLayer(t){let n=e._getEllipsoid(t);return this.mappedPositionsForEllipsoid(n)}mappedPositionsForEllipsoid(t){let n=this._mappedPositionsPerEllipsoid;if(!l(n))throw new Te("The mappedPositions have not been computed yet");let i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.ellipsoid===t)return r}throw new Te(`Could not find mapped positions for ellipsoid ${t}`)}imageryTexCoordAttributesPerProjection(){let t=this._imageryTexCoordAttributesPerProjection;if(!l(t))throw new Te("The imagery texture coordinate attributes have not been computed yet");return this._imageryTexCoordAttributesPerProjection}get ready(){let t=this._coveragesPerLayer;return l(t)?this._allImageriesReady:!1}isDestroyed(){return!1}destroy(){if(!this.isDestroyed())return this._deleteCoveragesPerLayer(),this._destroyImageryTexCoordAttributes(),he(this)}static _computePrimitivePositionTransform(t,n,i){l(i)||(i=new F);let o=t.sceneGraph;return F.clone(F.IDENTITY,i),F.multiply(i,t.modelMatrix,i),F.multiply(i,o.components.transform,i),F.multiply(i,o.axisCorrectionMatrix,i),F.multiply(i,n.computedTransform,i),i}static _obtainPrimitivePositionAttribute(t){let n=bt.getAttributeBySemantic(t,"POSITION");if(!l(n))throw new Te("The primitive does not have a POSITION attribute");return n}static _getEllipsoid(t){return t.imageryProvider.tilingScheme.projection.ellipsoid}},__=UQ;var LBn=x(T(),1),DQ=class{constructor(t,n,i,o,r){this.imageryLayer=t,this.texture=n,this.textureTranslationAndScale=i,this.textureCoordinateRectangle=o,this.imageryTexCoordAttributeSetIndex=r}},MF=DQ;var e7e=!1,t7e=new se,n7e=new se,OQ=class e{static process(t,n,i){let o=t.model,r=n.modelPrimitiveImagery;if(!l(r)||!r.ready)return;let s=o.imageryLayers,a=__._extractProjections(s),c=[...new Set(a)],d=e._computeIndexMapping(a,c),u=e._createImageryInputs(s,r,d);if(u.length===0)return;u.length>10&&(_t("imagery-texture-units",`Warning: Draped imagery requires ${u.length} texture units, truncating`),u.length=10),e._addImageryTexCoordAttributesToRenderResources(r,t);let m=[];for(let p=0;p<s.length;p++)m.push(s.get(p));e._processImageryInputs(m,t,u,c.length)}static _addImageryTexCoordAttributesToRenderResources(t,n){let i=t.imageryTexCoordAttributesPerProjection();for(let o of i)e._addImageryTexCoordAttributeToRenderResources(o,n)}static _addImageryTexCoordAttributeToRenderResources(t,n){let i=kt.getNumberOfComponents(t.type),o={index:n.attributeIndex++,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:i,componentDatatype:t.componentDatatype,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};n.attributes.push(o)}static _processImageryInputs(t,n,i,o){let r=n.shaderBuilder,s=e._computeImageryFlags(t),a=i.length;r.addDefine("HAS_IMAGERY"),r.addDefine(`IMAGERY_TEXTURE_UNITS ${a}`),e._addAttributes(r,o),e._defineUniforms(r,s),e._buildSampleAndBlendFunction(r,s),e._createMainImageryShader(r,i,s);let c=n.uniformMap,d=e._createImageryUniforms(i);e._setImageryUniforms(c,d)}static _addAttributes(t,n){for(let r=0;r<n;r++)t.addAttribute("vec2",`a_imagery_texCoord_${r}`),t.addVarying("vec2",`v_imagery_texCoord_${r}`);let i="initializeImageryAttributes",o=`void ${i}()`;t.addFunction(i,o,pe.VERTEX);for(let r=0;r<n;r++)t.addFunctionLines(i,[`v_imagery_texCoord_${r} = a_imagery_texCoord_${r};`])}static _computeImageryFlags(t){let n=new NF;for(let i=0;i<t.length;i++){let o=t[i];n.alpha|=o.alpha!==1,n.brightness|=o.brightness!==us.DEFAULT_BRIGHTNESS,n.contrast|=o.contrast!==us.DEFAULT_CONTRAST,n.hue|=o.hue!==us.DEFAULT_HUE,n.saturation|=o.saturation!==us.DEFAULT_SATURATION,n.gamma|=o.gamma!==us.DEFAULT_GAMMA;let r=l(o.colorToAlpha)&&o.colorToAlphaThreshold>0;n.colorToAlpha|=r}return n}static _defineUniforms(t,n){t.addUniform("sampler2D","u_imageryTextures[IMAGERY_TEXTURE_UNITS]",pe.FRAGMENT),t.addUniform("vec4","u_imageryTextureCoordinateRectangle[IMAGERY_TEXTURE_UNITS]",pe.FRAGMENT),t.addUniform("vec4","u_imageryTextureTranslationAndScale[IMAGERY_TEXTURE_UNITS]",pe.FRAGMENT),n.alpha&&t.addUniform("float","u_imageryTextureAlpha[IMAGERY_TEXTURE_UNITS]",pe.FRAGMENT),n.brightness&&t.addUniform("float","u_imageryTextureBrightness[IMAGERY_TEXTURE_UNITS]",pe.FRAGMENT),n.contrast&&t.addUniform("float","u_imageryTextureContrast[IMAGERY_TEXTURE_UNITS]",pe.FRAGMENT),n.hue&&t.addUniform("float","u_imageryTextureHue[IMAGERY_TEXTURE_UNITS]",pe.FRAGMENT),n.saturation&&t.addUniform("float","u_imageryTextureSaturation[IMAGERY_TEXTURE_UNITS]",pe.FRAGMENT),n.gamma&&t.addUniform("float","u_imageryTextureOneOverGamma[IMAGERY_TEXTURE_UNITS]",pe.FRAGMENT),n.colorToAlpha&&t.addUniform("vec4","u_imageryTextureColorToAlpha[IMAGERY_TEXTURE_UNITS]",pe.FRAGMENT)}static _createSampleAndBlendFunctionSignature(t){let n="sampleAndBlend",i=[];i.push("vec4 previousColor"),i.push("sampler2D textureToSample"),i.push("vec2 textureCoordinates"),i.push("vec4 textureCoordinateRectangle"),i.push("vec4 textureCoordinateTranslationAndScale"),t.alpha&&i.push("float textureAlpha"),t.brightness&&i.push("float textureBrightness"),t.contrast&&i.push("float textureContrast"),t.hue&&i.push("float textureHue"),t.saturation&&i.push("float textureSaturation"),t.gamma&&i.push("float textureOneOverGamma"),t.colorToAlpha&&i.push("vec4 colorToAlpha");let o=i.join(", ");return`vec4 ${n}(${o})`}static _buildSampleAndBlendFunction(t,n){let i="sampleAndBlend",o=e._createSampleAndBlendFunctionSignature(n);t.addFunction(i,o,pe.FRAGMENT),t.addFunctionLines(i,["float effectiveAlpha = 1.0;"]),n.alpha&&t.addFunctionLines(i,["effectiveAlpha = textureAlpha;"]),t.addFunctionLines(i,["if (textureCoordinates.x < textureCoordinateRectangle.x) effectiveAlpha = 0.0;","if (textureCoordinates.x > textureCoordinateRectangle.z) effectiveAlpha = 0.0;","if (textureCoordinates.y < textureCoordinateRectangle.y) effectiveAlpha = 0.0;","if (textureCoordinates.y > textureCoordinateRectangle.w) effectiveAlpha = 0.0;","vec2 translation = textureCoordinateTranslationAndScale.xy;","vec2 scale = textureCoordinateTranslationAndScale.zw;","vec2 effectiveTextureCoordinates = textureCoordinates * scale + translation;","vec4 value = texture(textureToSample, effectiveTextureCoordinates);","value = czm_srgbToLinear(value);","vec3 color = value.rgb;","float alpha = value.a;"]),n.colorToAlpha&&t.addFunctionLines(i,["vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb);","colorDiff.r = czm_maximumComponent(colorDiff);","alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha);"]),n.gamma?t.addFunctionLines(i,["color = pow(color, vec3(textureOneOverGamma));"]):t.addFunctionLines(i,["vec4 tempColor = czm_gammaCorrect(vec4(color, alpha));","color = tempColor.rgb;","alpha = tempColor.a;"]),n.brightness&&t.addFunctionLines(i,["color = mix(vec3(0.0), color, textureBrightness);"]),n.contrast&&t.addFunctionLines(i,["color = mix(vec3(0.5), color, textureContrast);"]),n.hue&&t.addFunctionLines(i,["color = czm_hue(color, textureHue);"]),n.saturation&&t.addFunctionLines(i,["color = czm_saturation(color, textureSaturation);"]),t.addFunctionLines(i,["float sourceAlpha = alpha * effectiveAlpha;","float outAlpha = mix(previousColor.a, 1.0, sourceAlpha);","outAlpha += sign(outAlpha) - 1.0;","vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha;","vec4 result = vec4(outColor, max(outAlpha, 0.0));"]),e7e&&t.addFunctionLines(i,["if (abs(textureCoordinates.x - textureCoordinateRectangle.x) < (1.0/256.0) || "," abs(textureCoordinates.x - textureCoordinateRectangle.z) < (1.0/256.0) || "," abs(textureCoordinates.y - textureCoordinateRectangle.y) < (1.0/256.0) || "," abs(textureCoordinates.y - textureCoordinateRectangle.w) < (1.0/256.0))","{"," result = vec4(1.0, 0.0, 0.0, effectiveAlpha);","}"]),t.addFunctionLines(i,["return result;"])}static _createSampleAndBlendCallArguments(t,n,i){let o=`v_imagery_texCoord_${n}`,r=[];return r.push("blendedBaseColor"),r.push(`u_imageryTextures[${i}]`),r.push(`${o}`),r.push(`u_imageryTextureCoordinateRectangle[${i}]`),r.push(`u_imageryTextureTranslationAndScale[${i}]`),t.alpha&&r.push(`u_imageryTextureAlpha[${i}]`),t.brightness&&r.push(`u_imageryTextureBrightness[${i}]`),t.contrast&&r.push(`u_imageryTextureContrast[${i}]`),t.hue&&r.push(`u_imageryTextureHue[${i}]`),t.saturation&&r.push(`u_imageryTextureSaturation[${i}]`),t.gamma&&r.push(`u_imageryTextureOneOverGamma[${i}]`),t.colorToAlpha&&r.push(`u_imageryTextureColorToAlpha[${i}]`),r.join(", ")}static _createMainImageryShader(t,n,i){let o="blendBaseColorWithImagery";t.addFunction(o,"vec4 blendBaseColorWithImagery(vec4 baseColorWithAlpha)",pe.FRAGMENT),t.addFunctionLines(o,["vec4 blendedBaseColor = baseColorWithAlpha;"]);for(let r=0;r<n.length;r++){let a=n[r].imageryTexCoordAttributeSetIndex,c=e._createSampleAndBlendCallArguments(i,a,r);t.addFunctionLines(o,[`blendedBaseColor = sampleAndBlend(${c});`])}t.addFunctionLines(o,["return blendedBaseColor;"])}static _createImageryUniforms(t){let n=t.length,i={};i.imageryTextures=Array(n),i.imageryTextureCoordinateRectangle=Array(n),i.imageryTextureTranslationAndScale=Array(n),i.imageryTextureAlpha=Array(n),i.imageryTextureBrightness=Array(n),i.imageryTextureContrast=Array(n),i.imageryTextureHue=Array(n),i.imageryTextureSaturation=Array(n),i.imageryTextureOneOverGamma=Array(n),i.imageryTextureColorToAlpha=Array(n);for(let o=0;o<n;o++){let r=t[o],s=r.imageryLayer,a=r.texture,c=r.textureCoordinateRectangle,d=r.textureTranslationAndScale;i.imageryTextures[o]=a,i.imageryTextureTranslationAndScale[o]=d,i.imageryTextureCoordinateRectangle[o]=c,i.imageryTextureAlpha[o]=s.alpha,i.imageryTextureBrightness[o]=s.brightness,i.imageryTextureContrast[o]=s.contrast,i.imageryTextureHue[o]=s.hue,i.imageryTextureSaturation[o]=s.saturation,i.imageryTextureOneOverGamma[o]=1/s.gamma;let u=i.imageryTextureColorToAlpha[o];if(l(u)||(u=new ce,i.imageryTextureColorToAlpha[o]=u),l(s.colorToAlpha)&&s.colorToAlphaThreshold>0){let p=s.colorToAlpha;u.x=p.red,u.y=p.green,u.z=p.blue,u.w=s.colorToAlphaThreshold}else u.w=-1}return i}static _setImageryUniforms(t,n){for(let i in n)if(n.hasOwnProperty(i)){let o=`u_${i}`;t[o]=function(){return n[i]}}}static _createImageryInputs(t,n,i){let o=[];for(let r=0;r<t.length;r++){let s=t.get(r);if(!s.show)continue;let a=i[r],d=n.mappedPositionsForImageryLayer(s).cartographicBoundingRectangle,u=n.coveragesForImageryLayer(s);for(let m=0;m<u.length;m++){let p=u[m],b=e._createImageryInput(s,p,d,a);l(b)&&o.push(b)}}return o}static _createImageryInput(t,n,i,o){let r=n.imagery;if(r.state===On.FAILED||r.state===On.INVALID)return;let s=r.textureWebMercator;if(!l(s)&&(s=r.texture,!l(s))){r.state===On.READY&&console.log(`Imagery at ${n.x}, ${n.y} (level ${n.level}) does not have any texture - state ${r.state}`);return}let a=e._computeTextureTranslationAndScale(t,i,r.rectangle),c=n.textureCoordinateRectangle,d=new ce(c.minX,c.minY,c.maxX,c.maxY);return new MF(t,s,a,d,o)}static _computeTextureTranslationAndScale(t,n,i){let o=t.imageryProvider.tilingScheme,r=o.rectangleToNativeRectangle(n,t7e),s=o.rectangleToNativeRectangle(i,n7e);return e._computeTextureTranslationAndScaleFromNative(r,s)}static _computeTextureTranslationAndScaleFromNative(t,n){let i=1/n.width,o=1/n.height,r=t.west-n.west,s=t.south-n.south,a=r*i,c=s*o,d=t.width*i,u=t.height*o;return new ce(a,c,d,u)}static _computeIndexMapping(t,n){let i=[],o=t.length;for(let r=0;r<o;r++){let s=t[r],a=n.indexOf(s);i.push(a)}return i}},kF=OQ;var $Bn=x(T(),1);var BBn=x(T(),1),UF=`#ifdef USE_IBL_LIGHTING +vec3 computeIBL(vec3 position, vec3 normal, vec3 lightDirection, vec3 lightColorHdr, czm_modelMaterial material) +{ + #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) + // Environment maps were provided, use them for IBL + vec3 viewDirection = -normalize(position); + vec3 iblColor = textureIBL(viewDirection, normal, material); + return iblColor; + #endif + + return vec3(0.0); +} +#endif + +#ifdef USE_CLEARCOAT +vec3 addClearcoatReflection(vec3 baseLayerColor, vec3 position, vec3 lightDirection, vec3 lightColorHdr, czm_modelMaterial material) +{ + vec3 viewDirection = -normalize(position); + vec3 halfwayDirection = normalize(viewDirection + lightDirection); + vec3 normal = material.clearcoatNormal; + float NdotL = clamp(dot(normal, lightDirection), 0.001, 1.0); + + // clearcoatF0 = vec3(pow((ior - 1.0) / (ior + 1.0), 2.0)), but without KHR_materials_ior, ior is a constant 1.5. + vec3 f0 = vec3(0.04); + vec3 f90 = vec3(1.0); + // Note: clearcoat Fresnel computed with dot(n, v) instead of dot(v, h). + // This is to make it energy conserving with a simple layering function. + float NdotV = clamp(dot(normal, viewDirection), 0.0, 1.0); + vec3 F = fresnelSchlick2(f0, f90, NdotV); + + // compute specular reflection from direct lighting + float roughness = material.clearcoatRoughness; + float alphaRoughness = roughness * roughness; + float directStrength = computeDirectSpecularStrength(normal, lightDirection, viewDirection, halfwayDirection, alphaRoughness); + vec3 directReflection = F * directStrength * NdotL; + vec3 color = lightColorHdr * directReflection; + + #ifdef SPECULAR_IBL + // Find the direction in which to sample the environment map + vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflect(-viewDirection, normal)); + vec3 iblColor = computeSpecularIBL(reflectMC, NdotV, f0, roughness); + color += iblColor * material.occlusion; + #endif + + float clearcoatFactor = material.clearcoatFactor; + vec3 clearcoatColor = color * clearcoatFactor; + + // Dim base layer based on transmission loss through clearcoat + return baseLayerColor * (1.0 - clearcoatFactor * F) + clearcoatColor; +} +#endif + +#if defined(LIGHTING_PBR) && defined(HAS_NORMALS) +vec3 computePbrLighting(in czm_modelMaterial material, in vec3 position) +{ + #ifdef USE_CUSTOM_LIGHT_COLOR + vec3 lightColorHdr = model_lightColorHdr; + #else + vec3 lightColorHdr = czm_lightColorHdr; + #endif + + vec3 viewDirection = -normalize(position); + vec3 normal = material.normalEC; + vec3 lightDirection = normalize(czm_lightDirectionEC); + + vec3 directLighting = czm_pbrLighting(viewDirection, normal, lightDirection, material); + vec3 directColor = lightColorHdr * directLighting; + + // Accumulate colors from base layer + vec3 color = directColor + material.emissive; + #ifdef USE_IBL_LIGHTING + color += computeIBL(position, normal, lightDirection, lightColorHdr, material); + #endif + + #ifdef USE_CLEARCOAT + color = addClearcoatReflection(color, position, lightDirection, lightColorHdr, material); + #endif + + return color; +} +#endif + +/** + * Compute the material color under the current lighting conditions. + * All other material properties are passed through so further stages + * have access to them. + * + * @param {czm_modelMaterial} material The material properties from {@MaterialStageFS} + * @param {ProcessedAttributes} attributes + */ +void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attributes) +{ + #ifdef LIGHTING_PBR + #ifdef HAS_NORMALS + vec3 color = computePbrLighting(material, attributes.positionEC); + #else + vec3 color = material.diffuse * material.occlusion + material.emissive; + #endif + // In HDR mode, the frame buffer is in linear color space. The + // post-processing stages (see PostProcessStageCollection) will handle + // tonemapping. However, if HDR is not enabled, we must tonemap else large + // values may be clamped to 1.0 + #ifndef HDR + color = czm_pbrNeutralTonemapping(color); + #endif + #else // unlit + vec3 color = material.diffuse; + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + // The colors resulting from point cloud styles are adjusted differently. + color = czm_gammaCorrect(color); + #elif !defined(HDR) + // If HDR is not enabled, the frame buffer stores sRGB colors rather than + // linear colors so the linear value must be converted. + color = czm_linearToSrgb(color); + #endif + + material.diffuse = color; +} +`;var HBn=x(T(),1),rpe={UNLIT:0,PBR:1};Object.freeze(rpe);var gp=rpe;var spe={name:"LightingPipelineStage"};spe.process=function(e,t){let{model:n,lightingOptions:i,shaderBuilder:o}=e;if(l(n.lightColor)){o.addDefine("USE_CUSTOM_LIGHT_COLOR",void 0,pe.FRAGMENT),o.addUniform("vec3","model_lightColorHdr",pe.FRAGMENT);let s=e.uniformMap;s.model_lightColorHdr=function(){return n.lightColor}}let{lightingModel:r}=i;r===gp.PBR?o.addDefine("LIGHTING_PBR",void 0,pe.FRAGMENT):o.addDefine("LIGHTING_UNLIT",void 0,pe.FRAGMENT),o.addFragmentLines(UF)};var DF=spe;var Z3n=x(T(),1);var t3n=x(T(),1),OF=`// If the style color is white, it implies the feature has not been styled. +bool isDefaultStyleColor(vec3 color) +{ + return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); +} + +vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend) +{ + vec3 blendColor = mix(sourceColor, styleColor, styleColorBlend); + vec3 color = isDefaultStyleColor(styleColor.rgb) ? sourceColor : blendColor; + return color; +} + +#ifdef HAS_NORMAL_TEXTURE +vec2 getNormalTexCoords() +{ + vec2 texCoord = TEXCOORD_NORMAL; + #ifdef HAS_NORMAL_TEXTURE_TRANSFORM + texCoord = czm_computeTextureTransform(texCoord, u_normalTextureTransform); + #endif + return texCoord; +} +#endif + +#if defined(HAS_NORMAL_TEXTURE) || defined(HAS_CLEARCOAT_NORMAL_TEXTURE) +vec3 computeTangent(in vec3 position, in vec2 normalTexCoords) +{ + vec2 tex_dx = dFdx(normalTexCoords); + vec2 tex_dy = dFdy(normalTexCoords); + float determinant = tex_dx.x * tex_dy.y - tex_dy.x * tex_dx.y; + vec3 tangent = tex_dy.t * dFdx(position) - tex_dx.t * dFdy(position); + return tangent / determinant; +} +#endif + +#ifdef USE_ANISOTROPY +struct NormalInfo { + vec3 tangent; + vec3 bitangent; + vec3 normal; + vec3 geometryNormal; +}; + +NormalInfo getNormalInfo(ProcessedAttributes attributes) +{ + vec3 geometryNormal = attributes.normalEC; + #ifdef HAS_NORMAL_TEXTURE + vec2 normalTexCoords = getNormalTexCoords(); + #endif + + #ifdef HAS_BITANGENTS + vec3 tangent = attributes.tangentEC; + vec3 bitangent = attributes.bitangentEC; + #else // Assume HAS_NORMAL_TEXTURE + vec3 tangent = computeTangent(attributes.positionEC, normalTexCoords); + tangent = normalize(tangent - geometryNormal * dot(geometryNormal, tangent)); + vec3 bitangent = normalize(cross(geometryNormal, tangent)); + #endif + + #ifdef HAS_NORMAL_TEXTURE + mat3 tbn = mat3(tangent, bitangent, geometryNormal); + + vec3 normalSample; + #if defined(HAS_NORMAL_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD) + #ifdef HAS_NORMAL_TEXTURE_TRANSFORM + normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams, u_normalTextureTransform).rgb; + #else + normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams).rgb; + #endif + #else + normalSample = texture(u_normalTexture, normalTexCoords).rgb; + #endif + + normalSample = 2.0 * normalSample - 1.0; + #ifdef HAS_NORMAL_TEXTURE_SCALE + normalSample.xy *= u_normalTextureScale; + #endif + vec3 normal = normalize(tbn * normalSample); + #else + vec3 normal = geometryNormal; + #endif + + #ifdef HAS_DOUBLE_SIDED_MATERIAL + if (czm_backFacing()) { + tangent *= -1.0; + bitangent *= -1.0; + normal *= -1.0; + geometryNormal *= -1.0; + } + #endif + + NormalInfo normalInfo; + normalInfo.tangent = tangent; + normalInfo.bitangent = bitangent; + normalInfo.normal = normal; + normalInfo.geometryNormal = geometryNormal; + + return normalInfo; +} +#endif + +#if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME) +vec3 getNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal) +{ + vec2 normalTexCoords = getNormalTexCoords(); + + // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set + #ifdef HAS_BITANGENTS + vec3 t = attributes.tangentEC; + vec3 b = attributes.bitangentEC; + #else + vec3 t = computeTangent(attributes.positionEC, normalTexCoords); + t = normalize(t - geometryNormal * dot(geometryNormal, t)); + vec3 b = normalize(cross(geometryNormal, t)); + #endif + + mat3 tbn = mat3(t, b, geometryNormal); + + vec3 normalSample; + #if defined(HAS_NORMAL_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD) + #ifdef HAS_NORMAL_TEXTURE_TRANSFORM + normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams, u_normalTextureTransform).rgb; + #else + normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams).rgb; + #endif + #else + normalSample = texture(u_normalTexture, normalTexCoords).rgb; + #endif + + normalSample = 2.0 * normalSample - 1.0; + #ifdef HAS_NORMAL_TEXTURE_SCALE + normalSample.xy *= u_normalTextureScale; + #endif + return normalize(tbn * normalSample); +} +#endif + +#ifdef HAS_CLEARCOAT_NORMAL_TEXTURE +vec3 getClearcoatNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal) +{ + vec2 normalTexCoords = TEXCOORD_CLEARCOAT_NORMAL; + #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE_TRANSFORM + normalTexCoords = vec2(u_clearcoatNormalTextureTransform * vec3(normalTexCoords, 1.0)); + #endif + + // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set + #ifdef HAS_BITANGENTS + vec3 t = attributes.tangentEC; + vec3 b = attributes.bitangentEC; + #else + vec3 t = computeTangent(attributes.positionEC, normalTexCoords); + t = normalize(t - geometryNormal * dot(geometryNormal, t)); + vec3 b = normalize(cross(geometryNormal, t)); + #endif + + mat3 tbn = mat3(t, b, geometryNormal); + vec3 normalSample = texture(u_clearcoatNormalTexture, normalTexCoords).rgb; + normalSample = 2.0 * normalSample - 1.0; + #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE_SCALE + normalSample.xy *= u_clearcoatNormalTextureScale; + #endif + return normalize(tbn * normalSample); +} +#endif + +#ifdef HAS_NORMALS +vec3 computeNormal(ProcessedAttributes attributes) +{ + // Geometry normal. This is already normalized + vec3 normal = attributes.normalEC; + + #if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME) + normal = getNormalFromTexture(attributes, normal); + #endif + + #ifdef HAS_DOUBLE_SIDED_MATERIAL + if (czm_backFacing()) { + normal = -normal; + } + #endif + + return normal; +} +#endif + +#ifdef HAS_BASE_COLOR_TEXTURE +vec4 getBaseColorFromTexture() +{ + vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR; + #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM + baseColorTexCoords = czm_computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform); + #endif + + vec4 baseColorWithAlpha; + #if defined(HAS_BASE_COLOR_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD) + #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM + baseColorWithAlpha = czm_srgbToLinear(constantLodTextureLookup(u_baseColorTexture, u_baseColorTextureConstantLodParams, u_baseColorTextureTransform)); + #else + baseColorWithAlpha = czm_srgbToLinear(constantLodTextureLookup(u_baseColorTexture, u_baseColorTextureConstantLodParams)); + #endif + #else + baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords)); + #endif + + #ifdef HAS_BASE_COLOR_FACTOR + baseColorWithAlpha *= u_baseColorFactor; + #endif + + return baseColorWithAlpha; +} +#endif + +#ifdef HAS_EMISSIVE_TEXTURE +vec3 getEmissiveFromTexture() +{ + vec2 emissiveTexCoords = TEXCOORD_EMISSIVE; + #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM + emissiveTexCoords = czm_computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform); + #endif + + vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb); + #ifdef HAS_EMISSIVE_FACTOR + emissive *= u_emissiveFactor; + #endif + + return emissive; +} +#endif + +#if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS) +void setSpecularGlossiness(inout czm_modelMaterial material) +{ + #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE + vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS; + #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM + specularGlossinessTexCoords = czm_computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform); + #endif + + vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords)); + vec3 specular = specularGlossiness.rgb; + float glossiness = specularGlossiness.a; + #ifdef HAS_LEGACY_SPECULAR_FACTOR + specular *= u_legacySpecularFactor; + #endif + + #ifdef HAS_GLOSSINESS_FACTOR + glossiness *= u_glossinessFactor; + #endif + #else + #ifdef HAS_LEGACY_SPECULAR_FACTOR + vec3 specular = clamp(u_legacySpecularFactor, vec3(0.0), vec3(1.0)); + #else + vec3 specular = vec3(1.0); + #endif + + #ifdef HAS_GLOSSINESS_FACTOR + float glossiness = clamp(u_glossinessFactor, 0.0, 1.0); + #else + float glossiness = 1.0; + #endif + #endif + + #ifdef HAS_DIFFUSE_TEXTURE + vec2 diffuseTexCoords = TEXCOORD_DIFFUSE; + #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM + diffuseTexCoords = czm_computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform); + #endif + + vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords)); + #ifdef HAS_DIFFUSE_FACTOR + diffuse *= u_diffuseFactor; + #endif + #elif defined(HAS_DIFFUSE_FACTOR) + vec4 diffuse = clamp(u_diffuseFactor, vec4(0.0), vec4(1.0)); + #else + vec4 diffuse = vec4(1.0); + #endif + + material.diffuse = diffuse.rgb * (1.0 - czm_maximumComponent(specular)); + // the specular glossiness extension's alpha overrides anything set + // by the base material. + material.alpha = diffuse.a; + + material.specular = specular; + + // glossiness is the opposite of roughness, but easier for artists to use. + material.roughness = 1.0 - glossiness; +} +#elif defined(LIGHTING_PBR) +float setMetallicRoughness(inout czm_modelMaterial material) +{ + #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE + vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS; + #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM + metallicRoughnessTexCoords = czm_computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform); + #endif + + vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb; + float metalness = clamp(metallicRoughness.b, 0.0, 1.0); + float roughness = clamp(metallicRoughness.g, 0.0, 1.0); + #ifdef HAS_METALLIC_FACTOR + metalness = clamp(metalness * u_metallicFactor, 0.0, 1.0); + #endif + + #ifdef HAS_ROUGHNESS_FACTOR + roughness = clamp(roughness * u_roughnessFactor, 0.0, 1.0); + #endif + #else + #ifdef HAS_METALLIC_FACTOR + float metalness = clamp(u_metallicFactor, 0.0, 1.0); + #else + float metalness = 1.0; + #endif + + #ifdef HAS_ROUGHNESS_FACTOR + float roughness = clamp(u_roughnessFactor, 0.0, 1.0); + #else + float roughness = 1.0; + #endif + #endif + + // dielectrics use f0 = 0.04, metals use albedo as f0 + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + vec3 f0 = mix(REFLECTANCE_DIELECTRIC, material.baseColor.rgb, metalness); + + material.specular = f0; + + // diffuse only applies to dielectrics. + material.diffuse = mix(material.baseColor.rgb, vec3(0.0), metalness); + + // This is perceptual roughness. The square of this value is used for direct lighting + material.roughness = roughness; + + return metalness; +} +#ifdef USE_SPECULAR +void setSpecular(inout czm_modelMaterial material, in float metalness) +{ + #ifdef HAS_SPECULAR_TEXTURE + vec2 specularTexCoords = TEXCOORD_SPECULAR; + #ifdef HAS_SPECULAR_TEXTURE_TRANSFORM + specularTexCoords = czm_computeTextureTransform(specularTexCoords, u_specularTextureTransform); + #endif + float specularWeight = texture(u_specularTexture, specularTexCoords).a; + #ifdef HAS_SPECULAR_FACTOR + specularWeight *= u_specularFactor; + #endif + #else + #ifdef HAS_SPECULAR_FACTOR + float specularWeight = u_specularFactor; + #else + float specularWeight = 1.0; + #endif + #endif + + #ifdef HAS_SPECULAR_COLOR_TEXTURE + vec2 specularColorTexCoords = TEXCOORD_SPECULAR_COLOR; + #ifdef HAS_SPECULAR_COLOR_TEXTURE_TRANSFORM + specularColorTexCoords = czm_computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform); + #endif + vec3 specularColorSample = texture(u_specularColorTexture, specularColorTexCoords).rgb; + vec3 specularColorFactor = czm_srgbToLinear(specularColorSample); + #ifdef HAS_SPECULAR_COLOR_FACTOR + specularColorFactor *= u_specularColorFactor; + #endif + #else + #ifdef HAS_SPECULAR_COLOR_FACTOR + vec3 specularColorFactor = u_specularColorFactor; + #else + vec3 specularColorFactor = vec3(1.0); + #endif + #endif + material.specularWeight = specularWeight; + vec3 f0 = material.specular; + vec3 dielectricSpecularF0 = min(f0 * specularColorFactor, vec3(1.0)); + material.specular = mix(dielectricSpecularF0, material.baseColor.rgb, metalness); +} +#endif +#ifdef USE_ANISOTROPY +void setAnisotropy(inout czm_modelMaterial material, in NormalInfo normalInfo) +{ + mat2 rotation = mat2(u_anisotropy.xy, -u_anisotropy.y, u_anisotropy.x); + float anisotropyStrength = u_anisotropy.z; + + vec2 direction = vec2(1.0, 0.0); + #ifdef HAS_ANISOTROPY_TEXTURE + vec2 anisotropyTexCoords = TEXCOORD_ANISOTROPY; + #ifdef HAS_ANISOTROPY_TEXTURE_TRANSFORM + anisotropyTexCoords = czm_computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform); + #endif + vec3 anisotropySample = texture(u_anisotropyTexture, anisotropyTexCoords).rgb; + direction = anisotropySample.rg * 2.0 - vec2(1.0); + anisotropyStrength *= anisotropySample.b; + #endif + + direction = rotation * direction; + mat3 tbn = mat3(normalInfo.tangent, normalInfo.bitangent, normalInfo.normal); + vec3 anisotropicT = tbn * normalize(vec3(direction, 0.0)); + vec3 anisotropicB = cross(normalInfo.geometryNormal, anisotropicT); + + material.anisotropicT = anisotropicT; + material.anisotropicB = anisotropicB; + material.anisotropyStrength = anisotropyStrength; +} +#endif +#ifdef USE_CLEARCOAT +void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attributes) +{ + #ifdef HAS_CLEARCOAT_TEXTURE + vec2 clearcoatTexCoords = TEXCOORD_CLEARCOAT; + #ifdef HAS_CLEARCOAT_TEXTURE_TRANSFORM + clearcoatTexCoords = czm_computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform); + #endif + float clearcoatFactor = texture(u_clearcoatTexture, clearcoatTexCoords).r; + #ifdef HAS_CLEARCOAT_FACTOR + clearcoatFactor *= u_clearcoatFactor; + #endif + #else + #ifdef HAS_CLEARCOAT_FACTOR + float clearcoatFactor = u_clearcoatFactor; + #else + // PERFORMANCE_IDEA: this case should turn the whole extension off + float clearcoatFactor = 0.0; + #endif + #endif + + #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE + vec2 clearcoatRoughnessTexCoords = TEXCOORD_CLEARCOAT_ROUGHNESS; + #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE_TRANSFORM + clearcoatRoughnessTexCoords = czm_computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform); + #endif + float clearcoatRoughness = texture(u_clearcoatRoughnessTexture, clearcoatRoughnessTexCoords).g; + #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR + clearcoatRoughness *= u_clearcoatRoughnessFactor; + #endif + #else + #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR + float clearcoatRoughness = u_clearcoatRoughnessFactor; + #else + float clearcoatRoughness = 0.0; + #endif + #endif + + material.clearcoatFactor = clearcoatFactor; + // This is perceptual roughness. The square of this value is used for direct lighting + material.clearcoatRoughness = clearcoatRoughness; + #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE + material.clearcoatNormal = getClearcoatNormalFromTexture(attributes, attributes.normalEC); + #else + material.clearcoatNormal = attributes.normalEC; + #endif +} +#endif +#endif + +void materialStage(inout czm_modelMaterial material, ProcessedAttributes attributes, SelectedFeature feature) +{ + #ifdef USE_ANISOTROPY + NormalInfo normalInfo = getNormalInfo(attributes); + material.normalEC = normalInfo.normal; + #elif defined(HAS_NORMALS) + material.normalEC = computeNormal(attributes); + #endif + + vec4 baseColorWithAlpha = vec4(1.0); + // Regardless of whether we use PBR, set a base color + #ifdef HAS_BASE_COLOR_TEXTURE + baseColorWithAlpha = getBaseColorFromTexture(); + #elif defined(HAS_BASE_COLOR_FACTOR) + baseColorWithAlpha = u_baseColorFactor; + #endif + + #ifdef HAS_IMAGERY + baseColorWithAlpha = blendBaseColorWithImagery(baseColorWithAlpha); + #endif // HAS_IMAGERY + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + baseColorWithAlpha = v_pointCloudColor; + #elif defined(HAS_COLOR_0) + vec4 color = attributes.color_0; + // .pnts files store colors in the sRGB color space + #ifdef HAS_SRGB_COLOR + color = czm_srgbToLinear(color); + #endif + baseColorWithAlpha *= color; + #endif + + #ifdef USE_CPU_STYLING + baseColorWithAlpha.rgb = blend(baseColorWithAlpha.rgb, feature.color.rgb, model_colorBlend); + #endif + material.baseColor = baseColorWithAlpha; + material.diffuse = baseColorWithAlpha.rgb; + material.alpha = baseColorWithAlpha.a; + + #ifdef HAS_OCCLUSION_TEXTURE + vec2 occlusionTexCoords = TEXCOORD_OCCLUSION; + #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM + occlusionTexCoords = czm_computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform); + #endif + material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r; + #endif + + #ifdef HAS_EMISSIVE_TEXTURE + material.emissive = getEmissiveFromTexture(); + #elif defined(HAS_EMISSIVE_FACTOR) + material.emissive = u_emissiveFactor; + #endif + + #if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS) + setSpecularGlossiness(material); + #elif defined(LIGHTING_PBR) + float metalness = setMetallicRoughness(material); + #ifdef USE_SPECULAR + setSpecular(material, metalness); + #endif + #ifdef USE_ANISOTROPY + setAnisotropy(material, normalInfo); + #endif + #ifdef USE_CLEARCOAT + setClearcoat(material, attributes); + #endif + #endif +} +`;var i3n=x(T(),1),BF=`#ifdef HAS_CONSTANT_LOD +// Extract model scale to compensate for minimumPixelSize scaling +float modelScaleX = length(czm_model[0].xyz); +float modelScaleY = length(czm_model[1].xyz); +float modelScaleZ = length(czm_model[2].xyz); +float modelScale = (modelScaleX + modelScaleY + modelScaleZ) / 3.0; + +// Transform model position through ENU but as direction only (w=0) to avoid position-dependent rotation +vec3 enuDir = (u_constantLodWorldToEnu * czm_model * vec4(v_positionMC, 0.0)).xyz; +v_constantLodUvCustom.xy = (enuDir.yx + u_constantLodOffset) / modelScale; +v_constantLodUvCustom.z = u_constantLodDistance / modelScale; +#endif`;var r3n=x(T(),1),zF=`#ifdef HAS_CONSTANT_LOD + +vec4 constantLodTextureLookup(sampler2D textureSampler, vec3 constantLodParams) { + bool atMaxClamp = v_constantLodUvCustom.z >= constantLodParams.y; + bool atMinClamp = v_constantLodUvCustom.z <= constantLodParams.x; + bool atClampBoundary = atMaxClamp || atMinClamp; + + float effectiveDistance = atMaxClamp ? constantLodParams.y : + (atMinClamp ? constantLodParams.x : v_constantLodUvCustom.z); + + float logDepth = log2(effectiveDistance); + logDepth = clamp(logDepth, -10.0, 20.0); + + float f = fract(logDepth); + float p = floor(logDepth); + + if (atClampBoundary) { + float clampedP = ceil(logDepth); + vec2 tc = v_constantLodUvCustom.xy / pow(2.0, clampedP) * constantLodParams.z; + return texture(textureSampler, tc); + } + + vec2 tc1 = v_constantLodUvCustom.xy / pow(2.0, p) * constantLodParams.z; + vec2 tc2 = v_constantLodUvCustom.xy / pow(2.0, p + 1.0) * constantLodParams.z; + return mix(texture(textureSampler, tc1), texture(textureSampler, tc2), f); +} + +vec4 constantLodTextureLookup(sampler2D textureSampler, vec3 constantLodParams, mat3 textureTransform) { + bool atMaxClamp = v_constantLodUvCustom.z >= constantLodParams.y; + bool atMinClamp = v_constantLodUvCustom.z <= constantLodParams.x; + bool atClampBoundary = atMaxClamp || atMinClamp; + + float effectiveDistance = atMaxClamp ? constantLodParams.y : + (atMinClamp ? constantLodParams.x : v_constantLodUvCustom.z); + + float logDepth = log2(effectiveDistance); + logDepth = clamp(logDepth, -10.0, 20.0); + + float f = fract(logDepth); + float p = floor(logDepth); + + if (atClampBoundary) { + float clampedP = ceil(logDepth); + vec2 tc = v_constantLodUvCustom.xy / pow(2.0, clampedP) * constantLodParams.z; + // Apply texture transform to the final texture coordinates + tc = czm_computeTextureTransform(tc, textureTransform); + return texture(textureSampler, tc); + } + + vec2 tc1 = v_constantLodUvCustom.xy / pow(2.0, p) * constantLodParams.z; + vec2 tc2 = v_constantLodUvCustom.xy / pow(2.0, p + 1.0) * constantLodParams.z; + + // Apply texture transform to both LOD texture coordinates before mixing + tc1 = czm_computeTextureTransform(tc1, textureTransform); + tc2 = czm_computeTextureTransform(tc2, textureTransform); + + return mix(texture(textureSampler, tc1), texture(textureSampler, tc2), f); +} + +#endif +`;var{Material:i7e,MetallicRoughness:BQ,SpecularGlossiness:zQ,Specular:ape,Clearcoat:cpe}=Sn,lpe={name:"MaterialPipelineStage",_processTexture:Zd,_processTextureTransform:dpe};lpe.process=function(e,t,n){let i=t.material,{model:o,uniformMap:r,shaderBuilder:s}=e;l(r.u_constantLodDistance)||(r.u_constantLodDistance=function(){let S=o.boundingSphere,A=n.camera;if(l(S)&&l(A)){let Z=h.distance(A.positionWC,S.center);return Math.max(Z,.1)}return 1});let a=l(o.classificationType),c=a,{defaultTexture:d,defaultNormalTexture:u,defaultEmissiveTexture:m}=n.context;a7e(i,r,s,d,u,m,c,e),l(i.specularGlossiness)?c7e(i.specularGlossiness,r,s,d,c,e):(l(i.specular)&&bt.supportedExtensions.KHR_materials_specular&&l7e(i.specular,r,s,d,c),l(i.anisotropy)&&bt.supportedExtensions.KHR_materials_anisotropy&&u7e(i.anisotropy,r,s,d,c),l(i.clearcoat)&&bt.supportedExtensions.KHR_materials_clearcoat&&m7e(i.clearcoat,r,s,d,c),h7e(i.metallicRoughness,r,s,d,c,e));let p=bt.getAttributeBySemantic(t,ct.NORMAL),b=l(o.pointCloudShading)&&!o.pointCloudShading.normalShading,f=e.lightingOptions;i.unlit||!p||a||b?f.lightingModel=gp.UNLIT:f.lightingModel=gp.PBR;let y=o.backFaceCulling&&!i.doubleSided;e.renderStateOptions.cull.enabled=y;let _=e.alphaOptions;i.alphaMode===up.BLEND?_.pass=Le.TRANSLUCENT:i.alphaMode===up.MASK&&(_.alphaCutoff=i.alphaCutoff),l(i.pointDiameter)&&(s.addDefine("HAS_POINT_DIAMETER",void 0,pe.BOTH),s.addUniform("float","u_pointDiameter",pe.VERTEX),r.u_pointDiameter=function(){return i.pointDiameter*n.pixelRatio}),l(i.lineStyle)&&r7e(i.lineStyle,t,n,r,s),s.addFragmentLines(OF),i.doubleSided&&s.addDefine("HAS_DOUBLE_SIDED_MATERIAL",void 0,pe.BOTH)};function o7e(e,t,n,i,o,r){let s=n.constantLod;if(!l(s)||!l(r))return;let a=`HAS_${o}_CONSTANT_LOD`;if(e.addDefine(a,void 0,pe.BOTH),!l(t.u_constantLodOffset)){e.addDefine("HAS_CONSTANT_LOD",void 0,pe.BOTH),e.addVarying("vec3","v_constantLodUvCustom"),e.addUniform("vec2","u_constantLodOffset",pe.VERTEX),e.addUniform("float","u_constantLodDistance",pe.VERTEX),e.addUniform("mat4","u_constantLodWorldToEnu",pe.VERTEX),e.addFragmentLines(zF);let d=BF.split(` +`).filter(u=>!u.trim().startsWith("//")||u.includes("#"));e.addFunctionLines("setDynamicVaryingsVS",d)}let c=`${i}ConstantLodParams`;if(e.addUniform("vec3",c,pe.FRAGMENT),t[c]=function(){return new h(s.minClampDistance,s.maxClampDistance,s.repetitions)},!l(t.u_constantLodOffset)){t.u_constantLodOffset=function(){return s.offset};let d=F.clone(F.IDENTITY),u=!1;t.u_constantLodWorldToEnu=function(){if(!u){let m=r.model.boundingSphere;if(l(m)){let p=m.center,b=xt.eastNorthUpToFixedFrame(p);F.inverse(b,d),u=!0}}return u?d:F.IDENTITY}}}function r7e(e,t,n,i,o){let{width:r,pattern:s}=e;l(r)&&(o.addUniform("float","u_lineWidth",pe.VERTEX),i.u_lineWidth=function(){return r*n.pixelRatio}),l(s)&&(o.addDefine("HAS_LINE_PATTERN",void 0,pe.BOTH),o.addUniform("float","u_linePattern",pe.FRAGMENT),o.addVarying("float","v_lineCoord"),i.u_linePattern=function(){return s});let a=bt.getAttributeBySemantic(t,ct.CUMULATIVE_DISTANCE);if(l(s)&&l(a)&&(t.primitiveType===ve.LINES||t.primitiveType===ve.TRIANGLE_STRIP)){o.addDefine("HAS_LINE_CUMULATIVE_DISTANCE",void 0,pe.VERTEX),a.normalized&&o.addDefine("LINE_CUM_DIST_NORMALIZED",void 0,pe.VERTEX),o.addUniform("float","u_cumulativeDistanceMax",pe.VERTEX),o.addUniform("float","u_pixelsPerWorld",pe.VERTEX);let c=l(a.max)?a.max:1;i.u_cumulativeDistanceMax=function(){return c},i.u_pixelsPerWorld=function(){let u=n.camera.frustum,m=1,p;return l(u.right)&&l(u.left)?p=u.right-u.left:l(u.width)&&(p=u.width),l(p)&&p>0&&(m=n.context.drawingBufferWidth/p),m};let d=bt.getAttributeInfo(a).variableName;o.addVertexLines(` +#ifdef HAS_LINE_CUMULATIVE_DISTANCE +void lineStyleStageVS(in ProcessedAttributes attributes) +{ + float cumDist = attributes.${d}; +#ifdef LINE_CUM_DIST_NORMALIZED + cumDist *= u_cumulativeDistanceMax; +#endif + const float textureCoordinateBase = 8192.0; + v_lineCoord = textureCoordinateBase + cumDist * u_pixelsPerWorld; +} +#endif +`)}else l(s)&&o.addVertexLines(` +#ifdef HAS_LINE_PATTERN +void lineStyleStageVS(in ProcessedAttributes attributes) +{ + vec4 posClip = gl_Position; + vec2 screenPos = ((posClip.xy / posClip.w) * 0.5 + 0.5) * czm_viewport.zw; + + const float textureCoordinateBase = 8192.0; + if (czm_viewport.z > czm_viewport.w) { + v_lineCoord = textureCoordinateBase + screenPos.x; + } else { + v_lineCoord = textureCoordinateBase + screenPos.y; + } +} +#endif +`)}function dpe(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_TRANSFORM`;e.addDefine(r,void 0,pe.FRAGMENT);let s=`${i}Transform`;e.addUniform("mat3",s,pe.FRAGMENT),t[s]=function(){return n.transform}}function s7e(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_SCALE`;e.addDefine(r,void 0,pe.FRAGMENT);let s=`${i}Scale`;e.addUniform("float",s,pe.FRAGMENT),t[s]=function(){return n.scale}}function Zd(e,t,n,i,o,r,s){e.addUniform("sampler2D",i,pe.FRAGMENT),t[i]=function(){return n.texture??r};let a=`HAS_${o}_TEXTURE`;e.addDefine(a,void 0,pe.FRAGMENT);let d=`v_texCoord_${n.texCoord}`,u=`TEXCOORD_${o}`;e.addDefine(u,d,pe.FRAGMENT);let m=n.transform;l(m)&&!$.equals(m,$.IDENTITY)&&dpe(e,t,n,i,o);let{scale:p}=n;l(p)&&p!==1&&s7e(e,t,n,i,o),o7e(e,t,n,i,o,s)}function a7e(e,t,n,i,o,r,s,a){let{emissiveFactor:c,emissiveTexture:d,normalTexture:u,occlusionTexture:m}=e;l(c)&&!h.equals(c,i7e.DEFAULT_EMISSIVE_FACTOR)&&(n.addUniform("vec3","u_emissiveFactor",pe.FRAGMENT),t.u_emissiveFactor=function(){return e.emissiveFactor},n.addDefine("HAS_EMISSIVE_FACTOR",void 0,pe.FRAGMENT),l(d)&&!s&&Zd(n,t,d,"u_emissiveTexture","EMISSIVE",r));let p;if(l(e.metallicRoughness)&&l(e.metallicRoughness.baseColorTexture)&&l(e.metallicRoughness.baseColorTexture.constantLod)?p=e.metallicRoughness.baseColorTexture.constantLod:l(e.specularGlossiness)&&l(e.specularGlossiness.diffuseTexture)&&l(e.specularGlossiness.diffuseTexture.constantLod)&&(p=e.specularGlossiness.diffuseTexture.constantLod),l(u)&&!s){let b=u;l(u.constantLod)&&l(p)&&(b=Object.create(Object.getPrototypeOf(u)),Object.assign(b,u),b.constantLod=p),Zd(n,t,b,"u_normalTexture","NORMAL",o,a)}l(m)&&!s&&Zd(n,t,m,"u_occlusionTexture","OCCLUSION",i)}function c7e(e,t,n,i,o,r){let{diffuseTexture:s,diffuseFactor:a,specularGlossinessTexture:c,specularFactor:d,glossinessFactor:u}=e;n.addDefine("USE_SPECULAR_GLOSSINESS",void 0,pe.FRAGMENT),l(s)&&!o&&Zd(n,t,s,"u_diffuseTexture","DIFFUSE",i,r),l(a)&&!ce.equals(a,zQ.DEFAULT_DIFFUSE_FACTOR)&&(n.addUniform("vec4","u_diffuseFactor",pe.FRAGMENT),t.u_diffuseFactor=function(){return e.diffuseFactor},n.addDefine("HAS_DIFFUSE_FACTOR",void 0,pe.FRAGMENT)),l(c)&&!o&&Zd(n,t,c,"u_specularGlossinessTexture","SPECULAR_GLOSSINESS",i),l(d)&&!h.equals(d,zQ.DEFAULT_SPECULAR_FACTOR)&&(n.addUniform("vec3","u_legacySpecularFactor",pe.FRAGMENT),t.u_legacySpecularFactor=function(){return e.specularFactor},n.addDefine("HAS_LEGACY_SPECULAR_FACTOR",void 0,pe.FRAGMENT)),l(u)&&u!==zQ.DEFAULT_GLOSSINESS_FACTOR&&(n.addUniform("float","u_glossinessFactor",pe.FRAGMENT),t.u_glossinessFactor=function(){return e.glossinessFactor},n.addDefine("HAS_GLOSSINESS_FACTOR",void 0,pe.FRAGMENT))}function l7e(e,t,n,i,o){let{specularTexture:r,specularFactor:s,specularColorTexture:a,specularColorFactor:c}=e;n.addDefine("USE_SPECULAR",void 0,pe.FRAGMENT),l(r)&&!o&&Zd(n,t,r,"u_specularTexture","SPECULAR",i),l(s)&&s!==ape.DEFAULT_SPECULAR_FACTOR&&(n.addUniform("float","u_specularFactor",pe.FRAGMENT),t.u_specularFactor=function(){return e.specularFactor},n.addDefine("HAS_SPECULAR_FACTOR",void 0,pe.FRAGMENT)),l(a)&&!o&&Zd(n,t,a,"u_specularColorTexture","SPECULAR_COLOR",i),l(c)&&!h.equals(c,ape.DEFAULT_SPECULAR_COLOR_FACTOR)&&(n.addUniform("vec3","u_specularColorFactor",pe.FRAGMENT),t.u_specularColorFactor=function(){return e.specularColorFactor},n.addDefine("HAS_SPECULAR_COLOR_FACTOR",void 0,pe.FRAGMENT))}var d7e=new h;function u7e(e,t,n,i,o){let{anisotropyStrength:r,anisotropyRotation:s,anisotropyTexture:a}=e;n.addDefine("USE_ANISOTROPY",void 0,pe.FRAGMENT),l(a)&&!o&&Zd(n,t,a,"u_anisotropyTexture","ANISOTROPY",i);let c=Math.cos(s),d=Math.sin(s);n.addUniform("vec3","u_anisotropy",pe.FRAGMENT),t.u_anisotropy=function(){return h.fromElements(c,d,r,d7e)}}function m7e(e,t,n,i,o){let{clearcoatFactor:r,clearcoatTexture:s,clearcoatRoughnessFactor:a,clearcoatRoughnessTexture:c,clearcoatNormalTexture:d}=e;n.addDefine("USE_CLEARCOAT",void 0,pe.FRAGMENT),l(r)&&r!==cpe.DEFAULT_CLEARCOAT_FACTOR&&(n.addUniform("float","u_clearcoatFactor",pe.FRAGMENT),t.u_clearcoatFactor=function(){return e.clearcoatFactor},n.addDefine("HAS_CLEARCOAT_FACTOR",void 0,pe.FRAGMENT)),l(s)&&!o&&Zd(n,t,s,"u_clearcoatTexture","CLEARCOAT",i),l(a)&&r!==cpe.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_clearcoatRoughnessFactor",pe.FRAGMENT),t.u_clearcoatRoughnessFactor=function(){return e.clearcoatRoughnessFactor},n.addDefine("HAS_CLEARCOAT_ROUGHNESS_FACTOR",void 0,pe.FRAGMENT)),l(c)&&!o&&Zd(n,t,c,"u_clearcoatRoughnessTexture","CLEARCOAT_ROUGHNESS",i),l(d)&&!o&&Zd(n,t,d,"u_clearcoatNormalTexture","CLEARCOAT_NORMAL",i)}function h7e(e,t,n,i,o,r){n.addDefine("USE_METALLIC_ROUGHNESS",void 0,pe.FRAGMENT);let s=e.baseColorTexture;l(s)&&!o&&Zd(n,t,s,"u_baseColorTexture","BASE_COLOR",i,r);let a=e.baseColorFactor;l(a)&&!ce.equals(a,BQ.DEFAULT_BASE_COLOR_FACTOR)&&(n.addUniform("vec4","u_baseColorFactor",pe.FRAGMENT),t.u_baseColorFactor=function(){return e.baseColorFactor},n.addDefine("HAS_BASE_COLOR_FACTOR",void 0,pe.FRAGMENT));let c=e.metallicRoughnessTexture;l(c)&&!o&&Zd(n,t,c,"u_metallicRoughnessTexture","METALLIC_ROUGHNESS",i);let d=e.metallicFactor;l(d)&&d!==BQ.DEFAULT_METALLIC_FACTOR&&(n.addUniform("float","u_metallicFactor",pe.FRAGMENT),t.u_metallicFactor=function(){return e.metallicFactor},n.addDefine("HAS_METALLIC_FACTOR",void 0,pe.FRAGMENT));let u=e.roughnessFactor;l(u)&&u!==BQ.DEFAULT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_roughnessFactor",pe.FRAGMENT),t.u_roughnessFactor=function(){return e.roughnessFactor},n.addDefine("HAS_ROUGHNESS_FACTOR",void 0,pe.FRAGMENT))}var HF=lpe;var V3n=x(T(),1);var wl={name:"MetadataPickingPipelineStage",METADATA_PICKING_ENABLED:"METADATA_PICKING_ENABLED",METADATA_PICKING_VALUE_TYPE:"METADATA_PICKING_VALUE_TYPE",METADATA_PICKING_VALUE_STRING:"METADATA_PICKING_VALUE_STRING",METADATA_PICKING_VALUE_COMPONENT_X:"METADATA_PICKING_VALUE_COMPONENT_X",METADATA_PICKING_VALUE_COMPONENT_Y:"METADATA_PICKING_VALUE_COMPONENT_Y",METADATA_PICKING_VALUE_COMPONENT_Z:"METADATA_PICKING_VALUE_COMPONENT_Z",METADATA_PICKING_VALUE_COMPONENT_W:"METADATA_PICKING_VALUE_COMPONENT_W"};wl.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine(wl.METADATA_PICKING_VALUE_TYPE,"float",pe.FRAGMENT),i.addDefine(wl.METADATA_PICKING_VALUE_STRING,"0.0",pe.FRAGMENT),i.addDefine(wl.METADATA_PICKING_VALUE_COMPONENT_X,"0.0",pe.FRAGMENT),i.addDefine(wl.METADATA_PICKING_VALUE_COMPONENT_Y,"0.0",pe.FRAGMENT),i.addDefine(wl.METADATA_PICKING_VALUE_COMPONENT_Z,"0.0",pe.FRAGMENT),i.addDefine(wl.METADATA_PICKING_VALUE_COMPONENT_W,"0.0",pe.FRAGMENT),i.addFunction("metadataPickingStage","void metadataPickingStage(Metadata metadata, MetadataClass metadataClass, inout vec4 metadataValues)",pe.FRAGMENT),i.addFunctionLines("metadataPickingStage",[`${wl.METADATA_PICKING_VALUE_TYPE} value = ${wl.METADATA_PICKING_VALUE_TYPE}(${wl.METADATA_PICKING_VALUE_STRING});`,`metadataValues.x = ${wl.METADATA_PICKING_VALUE_COMPONENT_X};`,`metadataValues.y = ${wl.METADATA_PICKING_VALUE_COMPONENT_Y};`,`metadataValues.z = ${wl.METADATA_PICKING_VALUE_COMPONENT_Z};`,`metadataValues.w = ${wl.METADATA_PICKING_VALUE_COMPONENT_W};`],pe.FRAGMENT)};var hu=wl;var Y3n=x(T(),1);var E3n=x(T(),1),KF=`void morphTargetsStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + attributes.positionMC = getMorphedPosition(positionMC); + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = getMorphedNormal(normalMC); + #endif + + #ifdef HAS_TANGENTS + vec3 tangentMC = attributes.tangentMC; + attributes.tangentMC = getMorphedTangent(tangentMC); + #endif +}`;var Vc={name:"MorphTargetsPipelineStage",FUNCTION_ID_GET_MORPHED_POSITION:"getMorphedPosition",FUNCTION_SIGNATURE_GET_MORPHED_POSITION:"vec3 getMorphedPosition(in vec3 position)",FUNCTION_ID_GET_MORPHED_NORMAL:"getMorphedNormal",FUNCTION_SIGNATURE_GET_MORPHED_NORMAL:"vec3 getMorphedNormal(in vec3 normal)",FUNCTION_ID_GET_MORPHED_TANGENT:"getMorphedTangent",FUNCTION_SIGNATURE_GET_MORPHED_TANGENT:"vec3 getMorphedTangent(in vec3 tangent)"};Vc.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_MORPH_TARGETS",void 0,pe.VERTEX),x7e(n);let i=t.morphTargets.length;for(let a=0;a<i;a++){let c=t.morphTargets[a].attributes,d=c.length;for(let u=0;u<d;u++){let m=c[u],p=m.semantic;p!==ct.POSITION&&p!==ct.NORMAL&&p!==ct.TANGENT||(p7e(e,m,e.attributeIndex,a),e.attributeIndex++)}}T7e(n);let r=e.runtimeNode.morphWeights.length;n.addUniform("float",`u_morphWeights[${r}]`,pe.VERTEX),n.addVertexLines(KF);let s={u_morphWeights:function(){return e.runtimeNode.morphWeights}};e.uniformMap=vt(s,e.uniformMap)};var f7e={attributeString:void 0,functionId:void 0};function p7e(e,t,n,i){let o=e.shaderBuilder;b7e(e,t,n);let r=g7e(t,f7e);y7e(o,r,i)}function b7e(e,t,n){let i={index:n,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,componentsPerAttribute:kt.getNumberOfComponents(t.type),componentDatatype:t.componentDatatype,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};e.attributes.push(i)}function g7e(e,t){switch(e.semantic){case ct.POSITION:t.attributeString="Position",t.functionId=Vc.FUNCTION_ID_GET_MORPHED_POSITION;break;case ct.NORMAL:t.attributeString="Normal",t.functionId=Vc.FUNCTION_ID_GET_MORPHED_NORMAL;break;case ct.TANGENT:t.attributeString="Tangent",t.functionId=Vc.FUNCTION_ID_GET_MORPHED_TANGENT;break;default:break}return t}function y7e(e,t,n){let i=t.attributeString,o=`a_target${i}_${n}`,r=`morphed${i} += u_morphWeights[${n}] * a_target${i}_${n};`;e.addAttribute("vec3",o),e.addFunctionLines(t.functionId,[r])}function x7e(e){e.addFunction(Vc.FUNCTION_ID_GET_MORPHED_POSITION,Vc.FUNCTION_SIGNATURE_GET_MORPHED_POSITION,pe.VERTEX),e.addFunctionLines(Vc.FUNCTION_ID_GET_MORPHED_POSITION,["vec3 morphedPosition = position;"]),e.addFunction(Vc.FUNCTION_ID_GET_MORPHED_NORMAL,Vc.FUNCTION_SIGNATURE_GET_MORPHED_NORMAL,pe.VERTEX),e.addFunctionLines(Vc.FUNCTION_ID_GET_MORPHED_NORMAL,["vec3 morphedNormal = normal;"]),e.addFunction(Vc.FUNCTION_ID_GET_MORPHED_TANGENT,Vc.FUNCTION_SIGNATURE_GET_MORPHED_TANGENT,pe.VERTEX),e.addFunctionLines(Vc.FUNCTION_ID_GET_MORPHED_TANGENT,["vec3 morphedTangent = tangent;"])}function T7e(e){e.addFunctionLines(Vc.FUNCTION_ID_GET_MORPHED_POSITION,["return morphedPosition;"]),e.addFunctionLines(Vc.FUNCTION_ID_GET_MORPHED_NORMAL,["return morphedNormal;"]),e.addFunctionLines(Vc.FUNCTION_ID_GET_MORPHED_TANGENT,["return morphedTangent;"])}var JF=Vc;var H3n=x(T(),1);var upe={name:"PickingPipelineStage"};upe.process=function(e,t,n){let i=n.context,o=e.runtimeNode,r=e.shaderBuilder,s=e.model,a=o.node.instances;if(e.hasPropertyTable)_7e(e,t,a,i);else if(l(a))S7e(e,i);else{let c=mpe(e),d=i.createPickId(c);s._pipelineResources.push(d),s._pickIds.push(d),r.addUniform("vec4","czm_pickColor",pe.FRAGMENT);let u=e.uniformMap;u.czm_pickColor=function(){return d.color},e.pickId="czm_pickColor"}};function mpe(e,t){let n=e.model;if(l(n.pickObject))return n.pickObject;let i={model:n,node:e.runtimeNode,primitive:e.runtimePrimitive},o;if(Wr.is3DTiles(n.type)){let r=n.content;o={content:r,primitive:r.tileset,detail:i}}else o={primitive:n,detail:i};return o.id=n.id,l(t)&&(o.instanceId=t),o}function _7e(e,t,n){let i=e.model,o,r,s=i.featureIdLabel,a=i.instanceFeatureIdLabel;l(i.featureTableId)?o=i.featureTableId:l(n)?(r=bt.getFeatureIdsByLabel(n.featureIds,a),o=r.propertyTableId):(r=bt.getFeatureIdsByLabel(t.featureIds,s),o=r.propertyTableId);let c=i.featureTables[o];e.shaderBuilder.addUniform("sampler2D","model_pickTexture",pe.FRAGMENT);let u=c.batchTexture;e.uniformMap.model_pickTexture=function(){return u.pickTexture??u.defaultTexture},e.pickId="((selectedFeature.id < int(model_featuresLength)) ? texture(model_pickTexture, selectedFeature.st) : vec4(0.0))"}function S7e(e,t){let n=e.instanceCount,i=new Array(n),o=new Uint8Array(n*4),r=e.model,s=r._pipelineResources;for(let m=0;m<n;m++){let p=mpe(e,m),b=t.createPickId(p);s.push(b),i[m]=b;let f=b.color;o[m*4+0]=U.floatToByte(f.red),o[m*4+1]=U.floatToByte(f.green),o[m*4+2]=U.floatToByte(f.blue),o[m*4+3]=U.floatToByte(f.alpha)}r._pickIds=i;let a=$e.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.statistics.addBuffer(a,!1),s.push(a);let d={index:e.attributeIndex++,vertexBuffer:a,componentsPerAttribute:4,componentDatatype:J.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0,instanceDivisor:1};e.attributes.push(d);let u=e.shaderBuilder;u.addDefine("USE_PICKING",void 0,pe.BOTH),u.addAttribute("vec4","a_pickColor"),u.addVarying("vec4","v_pickColor"),e.pickId="v_pickColor"}var jF=upe;var pzn=x(T(),1);var J3n=x(T(),1),hpe={ADD:0,REPLACE:1};Object.freeze(hpe);var ar=hpe;var Q3n=x(T(),1),QF=`float getPointSizeFromAttenuation(vec3 positionEC) { + // Variables are packed into a single vector to minimize gl.uniformXXX() calls + float pointSize = model_pointCloudParameters.x; + float geometricError = model_pointCloudParameters.y; + float depthMultiplier = model_pointCloudParameters.z; + + float depth = -positionEC.z; + return min((geometricError / depth) * depthMultiplier, pointSize); +} + +#ifdef HAS_POINT_CLOUD_SHOW_STYLE +float pointCloudShowStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return float(getShowFromStyle(attributes, metadata, tiles3d_tileset_time)); +} +#endif + +#ifdef HAS_POINT_CLOUD_COLOR_STYLE +vec4 pointCloudColorStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return getColorFromStyle(attributes, metadata, tiles3d_tileset_time); +} +#endif + +#ifdef HAS_POINT_CLOUD_POINT_SIZE_STYLE +float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return float(getPointSizeFromStyle(attributes, metadata, tiles3d_tileset_time)); +} +#elif defined(HAS_POINT_CLOUD_ATTENUATION) +float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + return getPointSizeFromAttenuation(v_positionEC); +} +#endif + +#ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING +float pointCloudBackFaceCullingStage() { + #if defined(HAS_NORMALS) && !defined(HAS_DOUBLE_SIDED_MATERIAL) + // This needs to be computed in eye coordinates so we can't use attributes.normalMC + return step(-v_normalEC.z, 0.0); + #else + return 1.0; + #endif +} +#endif +`;var A7e=new ce,ppe={name:"PointCloudStylingPipelineStage"};ppe.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=o.style,s=o.structuralMetadata,a=l(s)?s.propertyAttributes:void 0,c=l(o.featureTableId)&&o.featureTables[o.featureTableId].featuresLength>0,d=!l(a)&&c;if(l(r)&&!d){let y=V7e(a),_=G7e(r,y);E7e(i,_);let A=L7e(_).indexOf("normalMC")>=0,Z=bt.getAttributeBySemantic(t,ct.NORMAL);if(A&&!Z)throw new ae("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,pe.VERTEX),_.styleTranslucent&&(e.alphaOptions.pass=Le.TRANSLUCENT)}let u=o.pointCloudShading;u.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,pe.VERTEX),u.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,pe.VERTEX);let m,p,b;Wr.is3DTiles(o.type)&&(p=!0,m=o.content,b=m.tile.refine===ar.ADD),i.addUniform("vec4","model_pointCloudParameters",pe.VERTEX),i.addVertexLines(QF);let f=e.uniformMap;f.model_pointCloudParameters=function(){let y=A7e,_=1;p&&(_=b?5:m.tileset.memoryAdjustedScreenSpaceError),y.x=u.maximumAttenuation??_,y.x*=n.pixelRatio;let S=Z7e(e,t,u,m);y.y=S*u.geometricErrorScale;let A=n.context,Z=n.camera.frustum,R;return n.mode===re.SCENE2D||Z instanceof fn?R=Number.POSITIVE_INFINITY:R=A.drawingBufferHeight/n.camera.frustum.sseDenominator,y.z=R,p&&(y.w=m.tileset.timeSinceLoad),y}};var fpe=new h;function Z7e(e,t,n,i){if(l(i)){let u=i.tile.geometricError;if(u>0)return u}if(l(n.baseResolution))return n.baseResolution;let o=bt.getAttributeBySemantic(t,ct.POSITION),r=o.count,s=e.runtimeNode.transform,a=h.subtract(o.max,o.min,fpe);a=F.multiplyByPointAsVector(s,a,fpe);let c=a.x*a.y*a.z;return W.cbrt(c/r)}var C7e={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},R7e={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function V7e(e){let t=Je(R7e);if(!l(e))return t;for(let n=0;n<e.length;n++){let o=e[n].properties;for(let r in o)o.hasOwnProperty(r)&&(t[r]=`metadata.${r}`)}return t}var HQ="ProcessedAttributes attributes, Metadata metadata, float tiles3d_tileset_time";function G7e(e,t){let n=C7e,i={translucent:!1};return n.colorStyleFunction=e.getColorShaderFunction(`getColorFromStyle(${HQ})`,t,i),n.showStyleFunction=e.getShowShaderFunction(`getShowFromStyle(${HQ})`,t,i),n.pointSizeStyleFunction=e.getPointSizeShaderFunction(`getPointSizeFromStyle(${HQ})`,t,i),n.styleTranslucent=l(n.colorStyleFunction)&&i.translucent,n}function E7e(e,t){let n=t.colorStyleFunction;l(n)&&(e.addDefine("HAS_POINT_CLOUD_COLOR_STYLE",void 0,pe.BOTH),e.addVertexLines(n),e.addVarying("vec4","v_pointCloudColor"));let i=t.showStyleFunction;l(i)&&(e.addDefine("HAS_POINT_CLOUD_SHOW_STYLE",void 0,pe.BOTH),e.addVertexLines(i),e.addVarying("float","v_pointCloudShow"));let o=t.pointSizeStyleFunction;l(o)&&(e.addDefine("HAS_POINT_CLOUD_POINT_SIZE_STYLE",void 0,pe.VERTEX),e.addVertexLines(o))}function KQ(e,t){let n=/attributes\.(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function L7e(e){let t=e.colorStyleFunction,n=e.showStyleFunction,i=e.pointSizeStyleFunction,o=[];return l(t)&&KQ(t,o),l(n)&&KQ(n,o),l(i)&&KQ(i,o),o}var qF=ppe;var Rzn=x(T(),1);var gzn=x(T(),1),$F=`void primitiveOutlineStage() { + v_outlineCoordinates = a_outlineCoordinates; +} +`;var xzn=x(T(),1),eI=`void primitiveOutlineStage(inout czm_modelMaterial material) { + if (!model_showOutline) { + return; + } + + float outlineX = + texture(model_outlineTexture, vec2(v_outlineCoordinates.x, 0.5)).r; + float outlineY = + texture(model_outlineTexture, vec2(v_outlineCoordinates.y, 0.5)).r; + float outlineZ = + texture(model_outlineTexture, vec2(v_outlineCoordinates.z, 0.5)).r; + float outlineness = max(outlineX, max(outlineY, outlineZ)); + + material.diffuse = mix(material.diffuse, model_outlineColor.rgb, model_outlineColor.a * outlineness); +} +`;var bpe={name:"PrimitiveOutlinePipelineStage"};bpe.process=function(e,t,n){let i=e.shaderBuilder,o=e.uniformMap;i.addDefine("HAS_PRIMITIVE_OUTLINE",void 0,pe.BOTH),i.addAttribute("vec3","a_outlineCoordinates"),i.addVarying("vec3","v_outlineCoordinates");let r=t.outlineCoordinates,s={index:e.attributeIndex++,vertexBuffer:r.buffer,componentsPerAttribute:kt.getNumberOfComponents(r.type),componentDatatype:r.componentDatatype,offsetInBytes:r.byteOffset,strideInBytes:r.byteStride,normalize:r.normalized};e.attributes.push(s),i.addUniform("sampler2D","model_outlineTexture",pe.FRAGMENT);let a=f_.createTexture(n.context);o.model_outlineTexture=function(){return a};let c=e.model;i.addUniform("vec4","model_outlineColor",pe.FRAGMENT),o.model_outlineColor=function(){return c.outlineColor},i.addUniform("bool","model_showOutline",pe.FRAGMENT),o.model_showOutline=function(){return c.showOutline},i.addVertexLines($F),i.addFragmentLines(eI)};var tI=bpe;var vzn=x(T(),1);var gpe={name:"PrimitiveStatisticsPipelineStage",_countGeometry:ype,_count2DPositions:xpe,_countMorphTargetAttributes:Tpe,_countMaterialTextures:_pe,_countFeatureIdTextures:Spe,_countBinaryMetadata:Ape};gpe.process=function(e,t,n){let i=e.model,o=i.statistics;ype(o,t),xpe(o,e.runtimePrimitive),Tpe(o,t),_pe(o,t.material),Spe(o,t.featureIds),Ape(o,i)};function ype(e,t){let n=l(t.indices)?t.indices.count:bt.getAttributeBySemantic(t,"POSITION").count,i=t.primitiveType;i===ve.POINTS?e.pointsLength+=n:ve.isTriangles(i)&&(e.trianglesLength+=W7e(i,n));let o=t.attributes,r=o.length;for(let c=0;c<r;c++){let d=o[c];if(l(d.buffer)){let u=l(d.typedArray);e.addBuffer(d.buffer,u)}}let s=t.outlineCoordinates;l(s)&&l(s.buffer)&&e.addBuffer(s.buffer,!1);let a=t.indices;if(l(a)&&l(a.buffer)){let c=l(a.typedArray);e.addBuffer(a.buffer,c)}}function W7e(e,t){switch(e){case ve.TRIANGLES:return t/3;case ve.TRIANGLE_STRIP:case ve.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function xpe(e,t){let n=t.positionBuffer2D;l(n)&&e.addBuffer(n,!0)}function Tpe(e,t){let n=t.morphTargets;if(!l(n))return;let i=!1,o=n.length;for(let r=0;r<o;r++){let s=n[r].attributes,a=s.length;for(let c=0;c<a;c++){let d=s[c];l(d.buffer)&&e.addBuffer(d.buffer,i)}}}function _pe(e,t){let n=v7e(t),i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r)&&l(r.texture)&&e.addTexture(r.texture)}}function v7e(e){let t=e.metallicRoughness,n=[e.emissiveTexture,e.normalTexture,e.occlusionTexture,t.baseColorTexture,t.metallicRoughnessTexture],i=e.specularGlossiness;return l(i)&&(n.push(i.diffuseTexture),n.push(i.specularGlossinessTexture)),n}function Spe(e,t){let n=t.length;for(let i=0;i<n;i++){let o=t[i];if(o instanceof Sn.FeatureIdTexture){let r=o.textureReader;l(r.texture)&&e.addTexture(r.texture)}}}function Ape(e,t){let n=t.structuralMetadata;l(n)&&(F7e(e,n),e.propertyTablesByteLength+=n.propertyTablesByteLength);let i=t.featureTables;if(!l(i))return;let o=i.length;for(let r=0;r<o;r++){let s=i[r];e.addBatchTexture(s.batchTexture)}}function F7e(e,t){let n=t.propertyTextures;if(!l(n))return;let i=n.length;for(let o=0;o<i;o++){let s=n[o].properties;for(let a in s)if(s.hasOwnProperty(a)){let d=s[a].textureReader;l(d.texture)&&e.addTexture(d.texture)}}}var nI=gpe;var Hzn=x(T(),1);var I7e=new F,P7e=new F,Zpe={name:"SceneMode2DPipelineStage"};Zpe.process=function(e,t,n){let i=bt.getAttributeBySemantic(t,ct.POSITION),o=e.shaderBuilder,r=e.model,s=r.sceneGraph.computedModelMatrix,a=e.runtimeNode.computedTransform,c=F.multiplyTransformation(s,a,I7e),d=N7e(e,c,n),u=e.runtimePrimitive;u.boundingSphere2D=d;let m=e.runtimeNode.node.instances;if(l(m))return;if(l(i.typedArray)){let y=k7e(i,c,d,n);u.positionBuffer2D=y,r._modelResources.push(y),i.typedArray=void 0}o.addDefine("USE_2D_POSITIONS",void 0,pe.VERTEX),o.addUniform("mat4","u_modelView2D",pe.VERTEX);let p=F.fromTranslation(d.center,new F),b=n.context,f={u_modelView2D:function(){return F.multiplyTransformation(b.uniformState.view,p,P7e)}};e.uniformMap=vt(f,e.uniformMap)};var X7e=new h,Y7e=new h;function N7e(e,t,n){let i=F.multiplyByPoint(t,e.positionMin,X7e),o=no.computeActualEllipsoidPosition(n,i,i),r=F.multiplyByPoint(t,e.positionMax,Y7e),s=no.computeActualEllipsoidPosition(n,r,r);return ue.fromCornerPoints(o,s,new ue)}var Cpe=new h;function w7e(e,t){let n=e.length,i=new Float32Array(n),o=t.quantizedVolumeOffset,r=t.quantizedVolumeStepSize;for(let s=0;s<n;s+=3){let a=h.fromArray(e,s,Cpe),c=h.multiplyComponents(a,r,a),d=h.add(c,o,c);i[s]=d.x,i[s+1]=d.y,i[s+2]=d.z}return i}function M7e(e,t,n,i){let o;l(e.quantization)?o=w7e(e.typedArray,e.quantization):o=e.typedArray.slice();let r=e.byteOffset/Float32Array.BYTES_PER_ELEMENT,s=o.length,a=l(e.byteStride)?e.byteStride/Float32Array.BYTES_PER_ELEMENT:3;for(let c=r;c<s;c+=a){let d=h.fromArray(o,c,Cpe);if(isNaN(d.x)||isNaN(d.y)||isNaN(d.z))continue;let u=F.multiplyByPoint(t,d,d),m=no.computeActualEllipsoidPosition(i,u,u),p=h.subtract(m,n,m);o[c]=p.x,o[c+1]=p.y,o[c+2]=p.z}return o}function k7e(e,t,n,i){let o=Je(i);o.mode=re.COLUMBUS_VIEW;let r=n.center,s=M7e(e,t,r,o),a=$e.createVertexBuffer({context:i.context,typedArray:s,usage:Fe.STATIC_DRAW});return a.vertexArrayDestroyable=!1,a}var iI=Zpe;var tHn=x(T(),1);var Jzn=x(T(),1),oI=`void skinningStage(inout ProcessedAttributes attributes) +{ + mat4 skinningMatrix = getSkinningMatrix(); + mat3 skinningMatrixMat3 = mat3(skinningMatrix); + + vec4 positionMC = vec4(attributes.positionMC, 1.0); + attributes.positionMC = vec3(skinningMatrix * positionMC); + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = skinningMatrixMat3 * normalMC; + #endif + + #ifdef HAS_TANGENTS + vec3 tangentMC = attributes.tangentMC; + attributes.tangentMC = skinningMatrixMat3 * tangentMC; + #endif +}`;var S_={name:"SkinningPipelineStage",FUNCTION_ID_GET_SKINNING_MATRIX:"getSkinningMatrix",FUNCTION_SIGNATURE_GET_SKINNING_MATRIX:"mat4 getSkinningMatrix()"};S_.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_SKINNING",void 0,pe.VERTEX),D7e(n,t);let i=e.runtimeNode,o=i.computedJointMatrices;n.addUniform("mat4",`u_jointMatrices[${o.length}]`,pe.VERTEX),n.addVertexLines(oI);let r={u_jointMatrices:function(){return i.computedJointMatrices}};e.uniformMap=vt(r,e.uniformMap)};function U7e(e){let t=-1,n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];(r.semantic===ct.JOINTS||r.semantic===ct.WEIGHTS)&&(t=Math.max(t,r.setIndex))}return t}function D7e(e,t){e.addFunction(S_.FUNCTION_ID_GET_SKINNING_MATRIX,S_.FUNCTION_SIGNATURE_GET_SKINNING_MATRIX,pe.VERTEX),e.addFunctionLines(S_.FUNCTION_ID_GET_SKINNING_MATRIX,["mat4 skinnedMatrix = mat4(0);"]);let i,o,r=["x","y","z","w"],s=U7e(t);for(i=0;i<=s;i++)for(o=0;o<=3;o++){let c=r[o],d=`skinnedMatrix += a_weights_${i}.${c} * u_jointMatrices[int(a_joints_${i}.${c})];`;e.addFunctionLines(S_.FUNCTION_ID_GET_SKINNING_MATRIX,[d])}e.addFunctionLines(S_.FUNCTION_ID_GET_SKINNING_MATRIX,["return skinnedMatrix;"])}var rI=S_;var cHn=x(T(),1);var iHn=x(T(),1),sI=`void verticalExaggerationStage( + inout ProcessedAttributes attributes +) { + // Compute the distance from the camera to the local center of curvature. + vec4 vertexPositionENU = czm_modelToEnu * vec4(attributes.positionMC, 1.0); + vec2 vertexAzimuth = normalize(vertexPositionENU.xy); + // Curvature = 1 / radius of curvature. + float azimuthalCurvature = dot(vertexAzimuth * vertexAzimuth, czm_eyeEllipsoidCurvature); + float eyeToCenter = 1.0 / azimuthalCurvature + czm_eyeHeight; + + // Compute the approximate ellipsoid normal at the vertex position. + // Uses a circular approximation for the Earth curvature along the geodesic. + vec3 vertexPositionEC = (czm_modelView * vec4(attributes.positionMC, 1.0)).xyz; + vec3 centerToVertex = eyeToCenter * czm_eyeEllipsoidNormalEC + vertexPositionEC; + vec3 vertexNormal = normalize(centerToVertex); + + // Estimate the (sine of the) angle between the camera direction and the vertex normal + float verticalDistance = dot(vertexPositionEC, czm_eyeEllipsoidNormalEC); + float horizontalDistance = length(vertexPositionEC - verticalDistance * czm_eyeEllipsoidNormalEC); + float sinTheta = horizontalDistance / (eyeToCenter + verticalDistance); + bool isSmallAngle = clamp(sinTheta, 0.0, 0.05) == sinTheta; + + // Approximate the change in height above the ellipsoid, from camera to vertex position. + float exactVersine = 1.0 - dot(czm_eyeEllipsoidNormalEC, vertexNormal); + float smallAngleVersine = 0.5 * sinTheta * sinTheta; + float versine = isSmallAngle ? smallAngleVersine : exactVersine; + float dHeight = dot(vertexPositionEC, vertexNormal) - eyeToCenter * versine; + float vertexHeight = czm_eyeHeight + dHeight; + + // Transform the approximate vertex normal to model coordinates. + vec3 vertexNormalMC = (czm_inverseModelView * vec4(vertexNormal, 0.0)).xyz; + vertexNormalMC = normalize(vertexNormalMC); + + // Compute the exaggeration and apply it along the approximate vertex normal. + float stretch = u_verticalExaggerationAndRelativeHeight.x; + float shift = u_verticalExaggerationAndRelativeHeight.y; + float exaggeration = (vertexHeight - shift) * (stretch - 1.0); + attributes.positionMC += exaggeration * vertexNormalMC; +} +`;var Rpe={name:"VerticalExaggerationPipelineStage"},O7e=new k;Rpe.process=function(e,t,n){let{shaderBuilder:i,uniformMap:o}=e;i.addVertexLines(sI),i.addDefine("HAS_VERTICAL_EXAGGERATION",void 0,pe.VERTEX),i.addUniform("vec2","u_verticalExaggerationAndRelativeHeight",pe.VERTEX),o.u_verticalExaggerationAndRelativeHeight=function(){return k.fromElements(n.verticalExaggeration,n.verticalExaggerationRelativeHeight,O7e)}};var aI=Rpe;var ZHn=x(T(),1);var hHn=x(T(),1);var JQ={};function B7e(e){let t=De.createTypedArray(e,e*2),n=e,i=0;for(let o=0;o<n;o+=3)t[i++]=o,t[i++]=o+1,t[i++]=o+1,t[i++]=o+2,t[i++]=o+2,t[i++]=o;return t}function z7e(e,t){let n=t.length,i=De.createTypedArray(e,n*2),o=0;for(let r=0;r<n;r+=3){let s=t[r],a=t[r+1],c=t[r+2];i[o++]=s,i[o++]=a,i[o++]=a,i[o++]=c,i[o++]=c,i[o++]=s}return i}function H7e(e){let t=e-2,n=2+t*4,i=De.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=r;return i}function K7e(e,t){let i=t.length-2,o=2+i*4,r=De.createTypedArray(e,o),s=0;r[s++]=t[0],r[s++]=t[1];for(let a=0;a<i;a++){let c=t[a],d=t[a+1],u=t[a+2];r[s++]=d,r[s++]=u,r[s++]=u,r[s++]=c}return r}function J7e(e){let t=e-2,n=2+t*4,i=De.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=0;return i}function j7e(e,t){let i=t.length-2,o=2+i*4,r=De.createTypedArray(e,o),s=0,a=t[0];r[s++]=a,r[s++]=t[1];for(let c=0;c<i;c++){let d=t[c+1],u=t[c+2];r[s++]=d,r[s++]=u,r[s++]=u,r[s++]=a}return r}JQ.createWireframeIndices=function(e,t,n){let i=l(n);if(e===ve.TRIANGLES)return i?z7e(t,n):B7e(t);if(e===ve.TRIANGLE_STRIP)return i?K7e(t,n):H7e(t);if(e===ve.TRIANGLE_FAN)return i?j7e(t,n):J7e(t)};JQ.getWireframeIndicesCount=function(e,t){return e===ve.TRIANGLES?t*2:e===ve.TRIANGLE_STRIP||e===ve.TRIANGLE_FAN?2+(t-2)*4:t};var MC=JQ;var Vpe={name:"WireframePipelineStage"};Vpe.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_WIREFRAME",void 0,pe.FRAGMENT);let o=e.model,r=Q7e(t,e.indices,n);o._pipelineResources.push(r),e.wireframeIndexBuffer=r,o.statistics.addBuffer(r,!1);let a=e.primitiveType,c=e.count;e.primitiveType=ve.LINES,e.count=MC.getWireframeIndicesCount(a,c)};function Q7e(e,t,n){let o=bt.getAttributeBySemantic(e,ct.POSITION).count,r=n.context.webgl2,s;if(l(t)){let u=t.buffer,m=t.count;l(u)&&r?(s=u.sizeInBytes===m?new Uint8Array(m):De.createTypedArray(o,m),u.getBufferData(s)):s=t.typedArray}let a=e.primitiveType,c=MC.createWireframeIndices(a,o,s),d=De.fromSizeInBytes(c.BYTES_PER_ELEMENT);return $e.createIndexBuffer({context:n.context,typedArray:c,usage:Fe.STATIC_DRAW,indexDatatype:d})}var cI=Vpe;function Gpe(e){e=e??B.EMPTY_OBJECT;let t=e.primitive,n=e.node,i=e.model;this.primitive=t,this.node=n,this.model=i,this.pipelineStages=[],this.drawCommand=void 0,this.boundingSphere=void 0,this.boundingSphere2D=void 0,this.positionBuffer2D=void 0,this.batchLengths=void 0,this.batchOffsets=void 0,this.updateStages=[]}Gpe.prototype.configurePipeline=function(e){let t=this.pipelineStages;t.length=0;let n=this.primitive,i=this.node,o=this.model,r=o.customShader,s=o.style,a=e.context.webgl2,d=e.mode!==re.SCENE3D&&!e.scene3DOnly&&o._projectTo2D,u=e.verticalExaggeration!==1&&o.hasVerticalExaggeration,m=l(n.morphTargets)&&n.morphTargets.length>0,p=l(i.skin),b=l(o.imageryLayers)&&o.imageryLayers.length>0,f=l(r),_=!(f&&l(r.fragmentShaderText))||r.mode!==mb.REPLACE_MATERIAL,S=bt.hasQuantizedAttributes(n.attributes),A=o.debugWireframe&&ve.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),Z=o.pointCloudShading,R=l(Z)&&Z.attenuation,G=l(Z)&&Z.backFaceCulling,E=n.primitiveType===ve.POINTS&&(l(s)||R||G),v=o._enableShowOutline&&l(n.outlineCoordinates),I=l(n.edgeVisibility),X=q7e(o,i,n),Y=l(o.classificationType);d&&t.push(iI),t.push(SF),A&&t.push(cI),Y&&t.push(tF),m&&t.push(JF),p&&t.push(rI),E&&t.push(qF),S&&t.push(hF),b&&(v?_t("outlines-and-draping","Primitive outlines disable imagery draping"):t.push(kF)),_&&t.push(HF),t.push(vy),t.push(Tm),t.push(hu),X.hasPropertyTable&&(t.push(Iy),t.push(eF),t.push(oF)),u&&t.push(aI),f&&t.push(uF),t.push(DF),o.allowPicking&&t.push(jF),v&&t.push(tI),I&&(e.edgeVisibilityRequested=!0,t.push(yF),t.push(pF)),t.push($2),t.push(nI)};function q7e(e,t,n){let i;return l(t.instances)&&(i=bt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(i))?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:(i=bt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),l(i)?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var lI=Gpe;var cKn=x(T(),1);function jQ(e){e=e??B.EMPTY_OBJECT,this._sceneGraph=e.sceneGraph;let t=e.skin;this._skin=t,this._inverseBindMatrices=void 0,this._joints=[],this._jointMatrices=[],$7e(this)}Object.defineProperties(jQ.prototype,{skin:{get:function(){return this._skin}},sceneGraph:{get:function(){return this._sceneGraph}},inverseBindMatrices:{get:function(){return this._inverseBindMatrices}},joints:{get:function(){return this._joints}},jointMatrices:{get:function(){return this._jointMatrices}}});function $7e(e){let t=e.skin,n=t.inverseBindMatrices;e._inverseBindMatrices=n;let i=t.joints,o=i.length,r=e.sceneGraph._runtimeNodes,s=e.joints,a=e._jointMatrices;for(let c=0;c<o;c++){let d=i[c].index,u=r[d];s.push(u);let m=n[c],p=Epe(u,m,new F);a.push(p)}}function Epe(e,t,n){let i=F.multiplyTransformation(e.transformToRoot,e.transform,n);return n=F.multiplyTransformation(i,t,n),n}jQ.prototype.updateJointMatrices=function(){let e=this._jointMatrices,t=e.length;for(let n=0;n<t;n++){let i=this.joints[n],o=this.inverseBindMatrices[n];e[n]=Epe(i,o,e[n])}};var dI=jQ;var LKn=x(T(),1);var dKn=x(T(),1);function e6e(){this.pass=void 0,this.alphaCutoff=void 0}var A_=e6e;var ZKn=x(T(),1);var mKn=x(T(),1);function QQ(e){this.name=e,this.fields=[]}QQ.prototype.addField=function(e,t){let n=` ${e} ${t};`;this.fields.push(n)};QQ.prototype.generateGlslLines=function(){let e=this.fields;return e.length===0&&(e=[" float _empty;"]),[].concat(`struct ${this.name}`,"{",e,"};")};var uI=QQ;var fKn=x(T(),1);function qQ(e){this.signature=e,this.body=[]}qQ.prototype.addLines=function(e){let t=this.body;if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;i++)t.push(` ${e[i]}`)}else t.push(` ${e}`)};qQ.prototype.generateGlslLines=function(){return[].concat(this.signature,"{",this.body,"}")};var mI=qQ;function Ml(){this._positionAttributeLine=void 0,this._nextAttributeLocation=1,this._attributeLocations={},this._attributeLines=[],this._structs={},this._functions={},this._vertexShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]},this._fragmentShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]}}Object.defineProperties(Ml.prototype,{attributeLocations:{get:function(){return this._attributeLocations}}});Ml.prototype.addDefine=function(e,t,n){n=n??pe.BOTH;let i=e;l(t)&&(i+=` ${t.toString()}`),pe.includesVertexShader(n)&&this._vertexShaderParts.defineLines.push(i),pe.includesFragmentShader(n)&&this._fragmentShaderParts.defineLines.push(i)};Ml.prototype.addStruct=function(e,t,n){this._structs[e]=new uI(t),pe.includesVertexShader(n)&&this._vertexShaderParts.structIds.push(e),pe.includesFragmentShader(n)&&this._fragmentShaderParts.structIds.push(e)};Ml.prototype.addStructField=function(e,t,n){this._structs[e].addField(t,n)};Ml.prototype.addFunction=function(e,t,n){this._functions[e]=new mI(t),pe.includesVertexShader(n)&&this._vertexShaderParts.functionIds.push(e),pe.includesFragmentShader(n)&&this._fragmentShaderParts.functionIds.push(e)};Ml.prototype.addFunctionLines=function(e,t){this._functions[e].addLines(t)};Ml.prototype.addUniform=function(e,t,n){n=n??pe.BOTH;let i=`uniform ${e} ${t};`;pe.includesVertexShader(n)&&this._vertexShaderParts.uniformLines.push(i),pe.includesFragmentShader(n)&&this._fragmentShaderParts.uniformLines.push(i)};Ml.prototype.setPositionAttribute=function(e,t){return this._positionAttributeLine=`in ${e} ${t};`,this._attributeLocations[t]=0,0};Ml.prototype.addAttribute=function(e,t){let n=`in ${e} ${t};`;this._attributeLines.push(n);let i=this._nextAttributeLocation;return this._attributeLocations[t]=i,this._nextAttributeLocation+=n6e(e),i};Ml.prototype.addVarying=function(e,t,n){n=l(n)?`${n} `:"";let i=`${e} ${t};`;this._vertexShaderParts.varyingLines.push(`${n}out ${i}`),this._fragmentShaderParts.varyingLines.push(`${n}in ${i}`)};Ml.prototype.addVertexLines=function(e){let t=this._vertexShaderParts.shaderLines;Array.isArray(e)?$n(t,e):t.push(e)};Ml.prototype.addFragmentLines=function(e){let t=this._fragmentShaderParts.shaderLines;Array.isArray(e)?$n(t,e):t.push(e)};Ml.prototype.buildShaderProgram=function(e){let t=l(this._positionAttributeLine)?[this._positionAttributeLine]:[],n=t6e(this),i=i6e(this),o=t.concat(this._attributeLines,this._vertexShaderParts.uniformLines,this._vertexShaderParts.varyingLines,n.vertexLines,i.vertexLines,this._vertexShaderParts.shaderLines).join(` +`),r=new He({defines:this._vertexShaderParts.defineLines,sources:[o]}),s=this._fragmentShaderParts.uniformLines.concat(this._fragmentShaderParts.varyingLines,n.fragmentLines,i.fragmentLines,this._fragmentShaderParts.shaderLines).join(` +`),a=new He({defines:this._fragmentShaderParts.defineLines,sources:[s]});return tn.fromCache({context:e,vertexShaderSource:r,fragmentShaderSource:a,attributeLocations:this._attributeLocations})};Ml.prototype.clone=function(){return Je(this,!0)};function t6e(e){let t=[],n=[],i,o=e._vertexShaderParts.structIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),$n(t,a);for(o=e._fragmentShaderParts.structIds,i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),$n(n,a);return{vertexLines:t,fragmentLines:n}}function n6e(e){switch(e){case"mat2":return 2;case"mat3":return 3;case"mat4":return 4;default:return 1}}function i6e(e){let t=[],n=[],i,o=e._vertexShaderParts.functionIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),$n(t,a);for(o=e._fragmentShaderParts.functionIds,i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),$n(n,a);return{vertexLines:t,fragmentLines:n}}var gb=Ml;function o6e(e){this.shaderBuilder=new gb,this.model=e,this.uniformMap={},this.alphaOptions=new A_,this.renderStateOptions=Be.getState(Be.fromCache({depthTest:{enabled:!0,func:Ha.LESS_OR_EQUAL}})),this.hasSilhouette=!1,this.hasSkipLevelOfDetail=!1,this.nodeRenderResources=[]}var hI=o6e;var kKn=x(T(),1);var vKn=x(T(),1),fI=`void silhouetteStage(inout vec4 color) { + if(model_silhouettePass) { + color = czm_gammaCorrect(model_silhouetteColor); + } +}`;var IKn=x(T(),1),pI=`void silhouetteStage(in ProcessedAttributes attributes, inout vec4 positionClip) { + #ifdef HAS_NORMALS + if(model_silhouettePass) { + vec3 normal = normalize(czm_normal3D * attributes.normalMC); + normal.x *= czm_projection[0][0]; + normal.y *= czm_projection[1][1]; + positionClip.xy += normal.xy * positionClip.w * model_silhouetteSize * czm_pixelRatio / czm_viewport.z; + } + #endif +} +`;var pD={name:"ModelSilhouettePipelineStage"};pD.silhouettesLength=0;pD.process=function(e,t,n){l(t._silhouetteId)||(t._silhouetteId=++pD.silhouettesLength);let i=e.shaderBuilder;i.addDefine("HAS_SILHOUETTE",void 0,pe.BOTH),i.addVertexLines(pI),i.addFragmentLines(fI),i.addUniform("vec4","model_silhouetteColor",pe.FRAGMENT),i.addUniform("float","model_silhouetteSize",pe.VERTEX),i.addUniform("bool","model_silhouettePass",pe.BOTH);let o={model_silhouetteColor:function(){return t.silhouetteColor},model_silhouetteSize:function(){return t.silhouetteSize},model_silhouettePass:function(){return!1}};e.uniformMap=vt(o,e.uniformMap),e.hasSilhouette=!0};var bI=pD;var KKn=x(T(),1);var DKn=x(T(),1),gI=`void modelSplitterStage() +{ + // Don't split when rendering the shadow map, because it is rendered from + // the perspective of a totally different camera. +#ifndef SHADOW_MAP + if (model_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif +} +`;var bD={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};bD.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,pe.FRAGMENT),i.addFragmentLines(gI);let o={};i.addUniform("float",bD.SPLIT_DIRECTION_UNIFORM_NAME,pe.FRAGMENT),o[bD.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=vt(o,e.uniformMap)};var yI=bD;var QKn=x(T(),1);function r6e(e,t){this.model=e.model,this.shaderBuilder=e.shaderBuilder.clone(),this.uniformMap=Je(e.uniformMap),this.alphaOptions=Je(e.alphaOptions),this.renderStateOptions=Je(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.runtimeNode=t,this.attributes=[],this.attributeIndex=1,this.featureIdVertexAttributeSetIndex=0,this.instanceCount=0,this.primitiveRenderResources=[]}var xI=r6e;var lJn=x(T(),1);var tJn=x(T(),1);function s6e(e){e=e??B.EMPTY_OBJECT,this.lightingModel=e.lightingModel??gp.UNLIT}var TI=s6e;function a6e(e,t){this.model=e.model,this.runtimeNode=e.runtimeNode,this.attributes=e.attributes.slice(),this.attributeIndex=e.attributeIndex,this.featureIdVertexAttributeSetIndex=e.featureIdVertexAttributeSetIndex,this.uniformMap=Je(e.uniformMap),this.alphaOptions=Je(e.alphaOptions),this.renderStateOptions=Je(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.shaderBuilder=e.shaderBuilder.clone(),this.instanceCount=e.instanceCount,this.runtimePrimitive=t;let n=t.primitive;this.count=l(n.indices)?n.indices.count:bt.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=bt.getPositionMinMax(n,this.runtimeNode.instancingTranslationMin,this.runtimeNode.instancingTranslationMax);this.positionMin=h.clone(i.min,new h),this.positionMax=h.clone(i.max,new h),this.boundingSphere=ue.fromCornerPoints(this.positionMin,this.positionMax,new ue),this.lightingOptions=new TI,this.pickId=void 0}var _I=a6e;var mjn=x(T(),1);var ZJn=x(T(),1);function e8(e){e=e??B.EMPTY_OBJECT;let t=e.command,n=e.primitiveRenderResources,i=n.model;this._command=t,this._model=i,this._runtimePrimitive=n.runtimePrimitive,this._modelMatrix=t.modelMatrix,this._boundingVolume=t.boundingVolume,this._cullFace=t.renderState.cull.face;let o=i.classificationType;this._classificationType=o,this._classifiesTerrain=o!==Kn.CESIUM_3D_TILE,this._classifies3DTiles=o!==Kn.TERRAIN,this._useDebugWireframe=i._enableDebugWireframe&&i.debugWireframe,this._pickId=n.pickId,this._commandListTerrain=[],this._commandList3DTiles=[],this._commandListIgnoreShow=[],this._commandListDebugWireframe=[],this._commandListTerrainPicking=[],this._commandList3DTilesPicking=[],u6e(this)}function c6e(e){return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:e,frontOperation:{fail:Gt.KEEP,zFail:Gt.DECREMENT_WRAP,zPass:Gt.KEEP},backFunction:e,backOperation:{fail:Gt.KEEP,zFail:Gt.INCREMENT_WRAP,zPass:Gt.KEEP},reference:Kt.CESIUM_3D_TILE_MASK,mask:Kt.CESIUM_3D_TILE_MASK},stencilMask:Kt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:Ha.LESS_OR_EQUAL},depthMask:!1}}var l6e={stencilTest:{enabled:!0,frontFunction:Jn.NOT_EQUAL,frontOperation:{fail:Gt.ZERO,zFail:Gt.ZERO,zPass:Gt.ZERO},backFunction:Jn.NOT_EQUAL,backOperation:{fail:Gt.ZERO,zFail:Gt.ZERO,zPass:Gt.ZERO},reference:0,mask:Kt.CLASSIFICATION_MASK},stencilMask:Kt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:nn.PRE_MULTIPLIED_ALPHA_BLEND},d6e={stencilTest:{enabled:!0,frontFunction:Jn.NOT_EQUAL,frontOperation:{fail:Gt.ZERO,zFail:Gt.ZERO,zPass:Gt.ZERO},backFunction:Jn.NOT_EQUAL,backOperation:{fail:Gt.ZERO,zFail:Gt.ZERO,zPass:Gt.ZERO},reference:0,mask:Kt.CLASSIFICATION_MASK},stencilMask:Kt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},vpe=[];function u6e(e){let t=e._command,n=vpe;if(e._useDebugWireframe){t.pass=Le.OPAQUE,n.length=0,n.push(t),e._commandListDebugWireframe=SI(e,n,e._commandListDebugWireframe);let r=e._commandListDebugWireframe,s=r.length;for(let a=0;a<s;a++){let c=r[a];c.count*=2,c.offset*=2}return}let o=e.model.allowPicking;if(e._classifiesTerrain){let r=Le.TERRAIN_CLASSIFICATION,s=$Q(t,r),a=Lpe(t,r);n.length=0,n.push(s,a),e._commandListTerrain=SI(e,n,e._commandListTerrain),o&&(e._commandListTerrainPicking=Wpe(e,n,e._commandListTerrainPicking))}if(e._classifies3DTiles){let r=Le.CESIUM_3D_TILE_CLASSIFICATION,s=$Q(t,r),a=Lpe(t,r);n.length=0,n.push(s,a),e._commandList3DTiles=SI(e,n,e._commandList3DTiles),o&&(e._commandList3DTilesPicking=Wpe(e,n,e._commandList3DTilesPicking))}}function SI(e,t,n){let i=e._runtimePrimitive,o=i.batchLengths,r=i.batchOffsets,s=o.length,a=t.length;for(let c=0;c<s;c++){let d=o[c],u=r[c];for(let m=0;m<a;m++){let p=t[m],b=at.shallowClone(p);b.count=d,b.offset=u,n.push(b)}}return n}function $Q(e,t){let n=at.shallowClone(e);n.cull=!1,n.pass=t;let i=t===Le.TERRAIN_CLASSIFICATION?Jn.ALWAYS:Jn.EQUAL,o=c6e(i);return n.renderState=Be.fromCache(o),n}function Lpe(e,t){let n=at.shallowClone(e);return n.cull=!1,n.pass=t,n.renderState=Be.fromCache(l6e),n}var m6e=[];function Wpe(e,t,n){let i=Be.fromCache(d6e),o=t[0],r=t[1],s=at.shallowClone(o);s.cull=!0,s.pickOnly=!0;let a=at.shallowClone(r);a.cull=!0,a.pickOnly=!0,a.renderState=i,a.pickId=e._pickId;let c=m6e;return c.length=0,c.push(s,a),SI(e,c,n)}Object.defineProperties(e8.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},batchLengths:{get:function(){return this._runtimePrimitive.batchLengths}},batchOffsets:{get:function(){return this._runtimePrimitive.batchOffsets}},model:{get:function(){return this._model}},classificationType:{get:function(){return this._classificationType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix);let t=this._runtimePrimitive.boundingSphere;this._boundingVolume=ue.transform(t,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace=e}}});e8.prototype.pushCommands=function(e,t){let n=e.passes;if(n.render){if(this._useDebugWireframe){$n(t,this._commandListDebugWireframe);return}if(this._classifiesTerrain&&$n(t,this._commandListTerrain),this._classifies3DTiles&&$n(t,this._commandList3DTiles),e.invertClassification&&this._classifies3DTiles){if(this._commandListIgnoreShow.length===0){let o=Le.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,r=$Q(this._command,o),s=vpe;s.length=0,s.push(r),this._commandListIgnoreShow=SI(this,s,this._commandListIgnoreShow)}$n(t,this._commandListIgnoreShow)}}return n.pick&&(this._classifiesTerrain&&$n(t,this._commandListTerrainPicking),this._classifies3DTiles&&$n(t,this._commandList3DTilesPicking)),t};var AI=e8;var zJn=x(T(),1);function ZI(e){e=e??B.EMPTY_OBJECT;let t=e.command,n=e.primitiveRenderResources,i=n.model;this._model=i;let o=n.runtimePrimitive;this._runtimePrimitive=o,this._primitiveRenderResources=n;let r=t.pass===Le.TRANSLUCENT,a=!o.primitive.material.doubleSided&&!r,c=n.hasSilhouette,d=!r&&!c,u=n.hasSkipLevelOfDetail&&!r,m=c,p=l(n.edgeGeometry);this._command=t,this._modelMatrix=F.clone(t.modelMatrix),this._boundingVolume=ue.clone(t.boundingVolume),this._modelMatrix2D=new F,this._boundingVolume2D=new ue,this._modelMatrix2DDirty=!1,this._backFaceCulling=t.renderState.cull.enabled,this._cullFace=t.renderState.cull.face,this._shadows=i.shadows,this._debugShowBoundingVolume=t.debugShowBoundingVolume,this._usesBackFaceCulling=a,this._needsTranslucentCommand=d,this._needsSkipLevelOfDetailCommands=u,this._needsSilhouetteCommands=m,this._needsEdgeCommands=p,this._originalCommand=void 0,this._translucentCommand=void 0,this._skipLodBackfaceCommand=void 0,this._skipLodStencilCommand=void 0,this._silhouetteModelCommand=void 0,this._silhouetteColorCommand=void 0,this._edgeCommand=void 0,this._derivedCommands=[],this._has2DCommands=!1,h6e(this)}function yp(e){this.command=e.command,this.updateShadows=e.updateShadows,this.updateBackFaceCulling=e.updateBackFaceCulling,this.updateCullFace=e.updateCullFace,this.updateDebugShowBoundingVolume=e.updateDebugShowBoundingVolume,this.is2D=e.is2D??!1,this.derivedCommand2D=void 0}yp.clone=function(e){return new yp({command:e.command,updateShadows:e.updateShadows,updateBackFaceCulling:e.updateBackFaceCulling,updateCullFace:e.updateCullFace,updateDebugShowBoundingVolume:e.updateDebugShowBoundingVolume,is2D:e.is2D,derivedCommand2D:e.derivedCommand2D})};function h6e(e){let t=e._command;t.modelMatrix=e._modelMatrix,t.boundingVolume=e._boundingVolume;let n=e._model,i=e._usesBackFaceCulling,o=e._derivedCommands;if(e._originalCommand=new yp({command:t,updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0,is2D:!1}),o.push(e._originalCommand),e._needsTranslucentCommand&&(e._translucentCommand=new yp({command:T6e(t),updateShadows:!0,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!0}),o.push(e._translucentCommand)),e._needsSkipLevelOfDetailCommands&&(e._skipLodBackfaceCommand=new yp({command:V6e(t),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:i,updateDebugShowBoundingVolume:!1}),e._skipLodStencilCommand=new yp({command:G6e(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),o.push(e._skipLodBackfaceCommand),o.push(e._skipLodStencilCommand)),e._needsSilhouetteCommands&&(e._silhouetteModelCommand=new yp({command:_6e(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),e._silhouetteColorCommand=new yp({command:S6e(t,n),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!1}),o.push(e._silhouetteModelCommand),o.push(e._silhouetteColorCommand)),e._needsEdgeCommands){let r=e._primitiveRenderResources;e._edgeCommand=new yp({command:A6e(t,r,n),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!1}),o.push(e._edgeCommand)}}Object.defineProperties(ZI.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},model:{get:function(){return this._model}},primitiveType:{get:function(){return this._command.primitiveType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix),this._modelMatrix2DDirty=!0,this._boundingVolume=ue.transform(this.runtimePrimitive.boundingSphere,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},shadows:{get:function(){return this._shadows},set:function(e){this._shadows=e,p6e(this)}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){this._backFaceCulling!==e&&(this._backFaceCulling=e,b6e(this))}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace!==e&&(this._cullFace=e,g6e(this))}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolume=e,y6e(this))}}});function f6e(e,t){let n=e._modelMatrix;e._modelMatrix2D=F.clone(n,e._modelMatrix2D),e._modelMatrix2D[13]-=W.sign(n[13])*2*W.PI*t.mapProjection.ellipsoid.maximumRadius,e._boundingVolume2D=ue.transform(e.runtimePrimitive.boundingSphere,e._modelMatrix2D,e._boundingVolume2D)}function p6e(e){let t=e.shadows,n=Gn.castShadows(t),i=Gn.receiveShadows(t),o=e._derivedCommands;for(let r=0;r<o.length;++r){let s=o[r];if(s.updateShadows){let a=s.command;a.castShadows=n,a.receiveShadows=i}}}function b6e(e){let t=e.backFaceCulling,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateBackFaceCulling){let r=o.command,s=Je(r.renderState,!0);s.cull.enabled=t,r.renderState=Be.fromCache(s)}}}function g6e(e){let t=e.cullFace,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateCullFace){let r=o.command,s=Je(r.renderState,!0);s.cull.face=t,r.renderState=Be.fromCache(s)}}}function y6e(e){let t=e.debugShowBoundingVolume,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateDebugShowBoundingVolume){let r=o.command;r.debugShowBoundingVolume=t}}}ZI.prototype.pushCommands=function(e,t){let n=t8(this,e);n&&!this._has2DCommands&&(x6e(this),this._has2DCommands=!0,this._modelMatrix2DDirty=!0),this._modelMatrix2DDirty&&(f6e(this,e),this._modelMatrix2DDirty=!1);let i=this.model.styleCommandsNeeded;if(!(this._needsTranslucentCommand&&l(i)&&(i!==wh.ALL_OPAQUE&&Xy(t,this._translucentCommand,n),i===wh.ALL_TRANSLUCENT))){if(this._needsSkipLevelOfDetailCommands){let{tileset:o,tile:r}=this._model.content;if(o.hasMixedContent){r._finalResolution||Xy(o._backfaceCommands,this._skipLodBackfaceCommand,n),Z6e(this,r,n),Xy(t,this._skipLodStencilCommand,n);return}}if(this._needsSilhouetteCommands){Xy(t,this._silhouetteModelCommand,n);return}return this._model.edgeDisplayMode===xm.EDGES_ONLY&&this._needsEdgeCommands||(Xy(t,this._originalCommand,n),this._needsEdgeCommands&&this._model.edgeDisplayMode!==xm.SURFACES_ONLY&&Xy(t,this._edgeCommand,n)),t}};ZI.prototype.pushSilhouetteCommands=function(e,t){let n=t8(this,e);return Xy(t,this._silhouetteColorCommand,n),t};ZI.prototype.pushEdgeCommands=function(e,t){if(!l(this._edgeCommand)||this._model.edgeDisplayMode===xm.SURFACES_ONLY)return t;let n=this._model.edgeDisplayMode===xm.EDGES_ONLY?Le.CESIUM_3D_TILE_EDGES_DIRECT:Le.CESIUM_3D_TILE_EDGES;this._edgeCommand.command.pass=n,l(this._edgeCommand.derivedCommand2D)&&(this._edgeCommand.derivedCommand2D.command.pass=n);let i=t8(this,e);return Xy(t,this._edgeCommand,i),t};function Xy(e,t,n){e.push(t.command),n&&e.push(t.derivedCommand2D.command)}function t8(e,t){if(t.mode!==re.SCENE2D||e.model._projectTo2D)return!1;let i=e.model.sceneGraph._boundingSphere2D,o=i.center.y-i.radius,r=i.center.y+i.radius,s=t.mapProjection.ellipsoid.maximumRadius*W.PI;return o<s&&r>s||o<-s&&r>-s}function Z_(e,t){if(!l(t))return;let n=yp.clone(t),i=at.shallowClone(t.command);return i.modelMatrix=e._modelMatrix2D,i.boundingVolume=e._boundingVolume2D,n.command=i,n.updateShadows=!1,n.is2D=!0,t.derivedCommand2D=n,e._derivedCommands.push(n),n}function x6e(e){Z_(e,e._originalCommand),Z_(e,e._translucentCommand),Z_(e,e._skipLodBackfaceCommand),Z_(e,e._skipLodStencilCommand),Z_(e,e._silhouetteModelCommand),Z_(e,e._silhouetteColorCommand),Z_(e,e._edgeCommand)}function T6e(e){let t=at.shallowClone(e);t.pass=Le.TRANSLUCENT;let n=Je(e.renderState,!0);return n.cull.enabled=!1,n.depthMask=!1,n.blending=nn.ALPHA_BLEND,t.renderState=Be.fromCache(n),t}function _6e(e,t){let n=t._silhouetteId%255,i=at.shallowClone(e),o=Je(e.renderState,!0);return o.stencilTest={enabled:!0,frontFunction:ne.ALWAYS,backFunction:ne.ALWAYS,reference:n,mask:-1,frontOperation:{fail:ne.KEEP,zFail:ne.KEEP,zPass:ne.REPLACE},backOperation:{fail:ne.KEEP,zFail:ne.KEEP,zPass:ne.REPLACE}},t.isInvisible()&&(o.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=Be.fromCache(o),i}function S6e(e,t){let n=t._silhouetteId%255,i=at.shallowClone(e),o=Je(e.renderState,!0);o.cull.enabled=!1,(e.pass===Le.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=Le.TRANSLUCENT,o.depthMask=!1,o.blending=nn.ALPHA_BLEND),o.stencilTest={enabled:!0,frontFunction:ne.NOTEQUAL,backFunction:ne.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:ne.KEEP,zFail:ne.KEEP,zPass:ne.KEEP},backOperation:{fail:ne.KEEP,zFail:ne.KEEP,zPass:ne.KEEP}};let s=Je(e.uniformMap);return s.model_silhouettePass=function(){return!0},i.renderState=Be.fromCache(o),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function A6e(e,t){let n=t.edgeGeometry,i=at.shallowClone(e);i.vertexArray=n.vertexArray,i.primitiveType=n.primitiveType,i.count=n.indexCount,l(n.shaderProgram)&&(i.shaderProgram=n.shaderProgram),i.pass=n.pass;let o=Je(e.uniformMap);return o.u_isEdgePass=function(){return!0},i.uniformMap=o,i.castShadows=!1,i.receiveShadows=!1,i}function Z6e(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=C6e(o);if(r!==s){let a=R6e(r),c=Je(o.renderState,!0);c.stencilTest.reference=a,o.renderState=Be.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function C6e(e){return(e.renderState.stencilTest.reference&Kt.SKIP_LOD_MASK)>>>Kt.SKIP_LOD_BIT_SHIFT}function R6e(e){return Kt.CESIUM_3D_TILE_MASK|e<<Kt.SKIP_LOD_BIT_SHIFT}function V6e(e){let t=at.shallowClone(e),n=Je(e.renderState,!0);n.cull.enabled=!0,n.cull.face=Ii.FRONT,n.colorMask={red:!1,green:!1,blue:!1,alpha:!1},n.polygonOffset={enabled:!0,factor:5,units:5};let i=Je(t.uniformMap),o=new k(5,5);return i.u_polygonOffset=function(){return o},t.renderState=Be.fromCache(n),t.uniformMap=i,t.castShadows=!1,t.receiveShadows=!1,t}function G6e(e){let t=at.shallowClone(e),n=Je(e.renderState,!0),{stencilTest:i}=n;return i.enabled=!0,i.mask=Kt.SKIP_LOD_MASK,i.reference=Kt.CESIUM_3D_TILE_MASK,i.frontFunction=Jn.GREATER_OR_EQUAL,i.frontOperation.zPass=Gt.REPLACE,i.backFunction=Jn.GREATER_OR_EQUAL,i.backOperation.zPass=Gt.REPLACE,n.stencilMask=Kt.CESIUM_3D_TILE_MASK|Kt.SKIP_LOD_MASK,t.renderState=Be.fromCache(n),t}var CI=ZI;var KJn=x(T(),1),RI=`precision highp float; + +czm_modelVertexOutput defaultVertexOutput(vec3 positionMC) { + czm_modelVertexOutput vsOutput; + vsOutput.positionMC = positionMC; + vsOutput.pointSize = 1.0; + return vsOutput; +} + +void main() +{ + // Initialize the attributes struct with all + // attributes except quantized ones. + ProcessedAttributes attributes; + initializeAttributes(attributes); + + #ifdef HAS_IMAGERY + initializeImageryAttributes(); + #endif + + // Dequantize the quantized ones and add them to the + // attributes struct. + #ifdef USE_DEQUANTIZATION + dequantizationStage(attributes); + #endif + + #ifdef HAS_MORPH_TARGETS + morphTargetsStage(attributes); + #endif + + #ifdef HAS_SKINNING + skinningStage(attributes); + #endif + + #ifdef HAS_PRIMITIVE_OUTLINE + primitiveOutlineStage(); + #endif + + // Compute the bitangent according to the formula in the glTF spec. + // Normal and tangents can be affected by morphing and skinning, so + // the bitangent should not be computed until their values are finalized. + #ifdef HAS_BITANGENTS + attributes.bitangentMC = normalize(cross(attributes.normalMC, attributes.tangentMC) * attributes.tangentSignMC); + #endif + + FeatureIds featureIds; + featureIdStage(featureIds, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + SelectedFeature feature; + selectedFeatureIdStage(feature, featureIds); + // Handle any show properties that come from the style. + cpuStylingStage(attributes.positionMC, feature); + #endif + + #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) + // The scene mode 2D pipeline stage and instancing stage add a different + // model view matrix to accurately project the model to 2D. However, the + // output positions and normals should be transformed by the 3D matrices + // to keep the data the same for the fragment shader. + mat4 modelView = czm_modelView3D; + mat3 normal = czm_normal3D; + #else + // These are used for individual model projection because they will + // automatically change based on the scene mode. + mat4 modelView = czm_modelView; + mat3 normal = czm_normal; + #endif + + // Update the position for this instance in place + #ifdef HAS_INSTANCING + + // The legacy instance stage is used when rendering i3dm models that + // encode instances transforms in world space, as opposed to glTF models + // that use EXT_mesh_gpu_instancing, where instance transforms are encoded + // in object space. + #ifdef USE_LEGACY_INSTANCING + mat4 instanceModelView; + mat3 instanceModelViewInverseTranspose; + + legacyInstancingStage(attributes, instanceModelView, instanceModelViewInverseTranspose); + + modelView = instanceModelView; + normal = instanceModelViewInverseTranspose; + #else + instancingStage(attributes); + #endif + + #ifdef USE_PICKING + v_pickColor = a_pickColor; + #endif + + #endif + + Metadata metadata; + MetadataClass metadataClass; + MetadataStatistics metadataStatistics; + metadataStage(featureIds, metadata, metadataClass, metadataStatistics, attributes); + + #ifdef HAS_VERTICAL_EXAGGERATION + verticalExaggerationStage(attributes); + #endif + + #ifdef HAS_CUSTOM_VERTEX_SHADER + czm_modelVertexOutput vsOutput = defaultVertexOutput(attributes.positionMC); + customShaderStage(vsOutput, attributes, featureIds, metadata, metadataClass, metadataStatistics); + #endif + + // Compute the final position in each coordinate system needed. + // This returns the value that will be assigned to gl_Position. + vec4 positionClip = geometryStage(attributes, modelView, normal); + + #if defined(HAS_LINE_CUMULATIVE_DISTANCE) || defined(HAS_LINE_PATTERN) + lineStyleStageVS(attributes); + #endif + + // This must go after the geometry stage as it needs v_positionWC + #ifdef HAS_ATMOSPHERE + atmosphereStage(attributes); + #endif + + #ifdef ENABLE_CLIPPING_POLYGONS + modelClippingPolygonsStage(attributes); + #endif + + #ifdef HAS_SILHOUETTE + silhouetteStage(attributes, positionClip); + #endif + + #ifdef HAS_POINT_CLOUD_SHOW_STYLE + float show = pointCloudShowStylingStage(attributes, metadata); + #else + float show = 1.0; + #endif + + #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING + show *= pointCloudBackFaceCullingStage(); + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + v_pointCloudColor = pointCloudColorStylingStage(attributes, metadata); + #endif + + #ifdef PRIMITIVE_TYPE_POINTS + #ifdef HAS_CUSTOM_VERTEX_SHADER + gl_PointSize = vsOutput.pointSize; + #elif defined(HAS_POINT_CLOUD_POINT_SIZE_STYLE) || defined(HAS_POINT_CLOUD_ATTENUATION) + gl_PointSize = pointCloudPointSizeStylingStage(attributes, metadata); + #elif defined(HAS_POINT_DIAMETER) + gl_PointSize = u_pointDiameter; + #else + gl_PointSize = 1.0; + #endif + + gl_PointSize *= show; + #endif + + // Important NOT to compute gl_Position = show * positionClip or we hit: + // https://github.com/CesiumGS/cesium/issues/11270 + // + // We will discard points with v_pointCloudShow == 0 in the fragment shader. + gl_Position = positionClip; + + #ifdef HAS_EDGE_VISIBILITY + edgeVisibilityStageVS(); + #endif + + #ifdef HAS_POINT_CLOUD_SHOW_STYLE + v_pointCloudShow = show; + #endif +} +`;var jJn=x(T(),1),VI=` +precision highp float; + +czm_modelMaterial defaultModelMaterial() +{ + czm_modelMaterial material; + material.diffuse = vec3(0.0); + material.specular = vec3(1.0); + material.roughness = 1.0; + material.occlusion = 1.0; + material.normalEC = vec3(0.0, 0.0, 1.0); + material.emissive = vec3(0.0); + material.alpha = 1.0; + return material; +} + +vec4 handleAlpha(vec3 color, float alpha) +{ + #ifdef ALPHA_MODE_MASK + if (alpha < u_alphaCutoff) { + discard; + } + #endif + + return vec4(color, alpha); +} + +void lineStyleStage() +{ + #if defined(HAS_LINE_PATTERN) && !defined(HAS_EDGE_VISIBILITY) + const float maskLength = 16.0; + float dashPosition = fract(v_lineCoord / maskLength); + float maskIndex = floor(dashPosition * maskLength); + float maskTest = floor(u_linePattern / pow(2.0, maskIndex)); + if (mod(maskTest, 2.0) < 1.0) { + discard; + } + #endif +} + +SelectedFeature selectedFeature; + +void main() +{ + #if defined(PRIMITIVE_TYPE_POINTS) && defined(HAS_POINT_DIAMETER) + // Render points as circles + float distanceToCenter = length(gl_PointCoord - vec2(0.5)); + if (distanceToCenter > 0.5) { + discard; + } + #endif + + #ifdef HAS_POINT_CLOUD_SHOW_STYLE + if (v_pointCloudShow == 0.0) + { + discard; + } + #endif + + #ifdef HAS_MODEL_SPLITTER + modelSplitterStage(); + #endif + + czm_modelMaterial material = defaultModelMaterial(); + + ProcessedAttributes attributes; + geometryStage(attributes); + + FeatureIds featureIds; + featureIdStage(featureIds, attributes); + + Metadata metadata; + MetadataClass metadataClass; + MetadataStatistics metadataStatistics; + metadataStage(featureIds, metadata, metadataClass, metadataStatistics, attributes); + + //======================================================================== + // When not picking metadata START + #ifndef METADATA_PICKING_ENABLED + + #ifdef HAS_SELECTED_FEATURE_ID + selectedFeatureIdStage(selectedFeature, featureIds); + #endif + + #ifndef CUSTOM_SHADER_REPLACE_MATERIAL + materialStage(material, attributes, selectedFeature); + #endif + + #ifdef HAS_CUSTOM_FRAGMENT_SHADER + customShaderStage(material, attributes, featureIds, metadata, metadataClass, metadataStatistics); + #endif + + lightingStage(material, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + cpuStylingStage(material, selectedFeature); + #endif + + #ifdef HAS_MODEL_COLOR + modelColorStage(material); + #endif + + #ifdef HAS_PRIMITIVE_OUTLINE + primitiveOutlineStage(material); + #endif + + vec4 color = handleAlpha(material.diffuse, material.alpha); + + // When not picking metadata END + //======================================================================== + #else + //======================================================================== + // When picking metadata START + + vec4 metadataValues = vec4(0.0, 0.0, 0.0, 0.0); + metadataPickingStage(metadata, metadataClass, metadataValues); + vec4 color = metadataValues; + + #endif + // When picking metadata END + //======================================================================== + + lineStyleStage(); + + #ifdef HAS_CLIPPING_PLANES + modelClippingPlanesStage(color); + #endif + + #ifdef ENABLE_CLIPPING_POLYGONS + modelClippingPolygonsStage(); + #endif + + //======================================================================== + // When not picking metadata START + #ifndef METADATA_PICKING_ENABLED + + #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS) + silhouetteStage(color); + #endif + + #ifdef HAS_ATMOSPHERE + atmosphereStage(color, attributes); + #endif + + #ifdef HAS_EDGE_VISIBILITY + edgeVisibilityStage(color, featureIds); + edgeDetectionStage(color, featureIds); + #endif + + #endif + // When not picking metadata END + //======================================================================== + + out_FragColor = color; +} + +`;function Fpe(){}Fpe.buildModelDrawCommand=function(e,t){let n=e.shaderBuilder,i=E6e(e,n,t),o=L6e(e,i,t),r=e.model;return l(r.classificationType)?new AI({primitiveRenderResources:e,command:o}):new CI({primitiveRenderResources:e,command:o})};function E6e(e,t,n){t.addVertexLines(RI),t.addFragmentLines(VI);let i=e.model,o=t.buildShaderProgram(n.context);return i._pipelineResources.push(o),o}function L6e(e,t,n){let i=W6e(e),o=new wn({context:n.context,indexBuffer:i,attributes:e.attributes}),r=e.model;r._pipelineResources.push(o);let s=e.alphaOptions.pass,a=r.sceneGraph,c=n.mode===re.SCENE3D,d,u;if(!c&&!n.scene3DOnly&&r._projectTo2D)d=F.multiplyTransformation(a._computedModelMatrix,e.runtimeNode.computedTransform,new F),u=e.runtimePrimitive.boundingSphere2D;else{let S=c?a._computedModelMatrix:a._computedModelMatrix2D;d=F.multiplyTransformation(S,e.runtimeNode.computedTransform,new F),u=ue.transform(e.boundingSphere,d)}let m=Je(Be.fromCache(e.renderStateOptions),!0);m.cull.face=bt.getCullFace(d,e.primitiveType),m=Be.fromCache(m);let p=l(r.classificationType),b=p?!1:Gn.castShadows(r.shadows),f=p?!1:Gn.receiveShadows(r.shadows),y=p?void 0:e.pickId;return new at({boundingVolume:u,modelMatrix:d,uniformMap:e.uniformMap,renderState:m,vertexArray:o,shaderProgram:t,cull:r.cull,pass:s,count:e.count,owner:r,pickId:y,pickMetadataAllowed:!0,instanceCount:e.instanceCount,primitiveType:e.primitiveType,debugShowBoundingVolume:r.debugShowBoundingVolume,castShadows:b,receiveShadows:f})}function W6e(e){let t=e.wireframeIndexBuffer;if(l(t))return t;let n=e.indices;if(l(n))return n.buffer}var GI=Fpe;function qc(e){e=e??B.EMPTY_OBJECT;let t=e.modelComponents;this._model=e.model,this._components=t,this._pipelineStages=[],this._updateStages=[],this._runtimeNodes=[],this._rootNodes=[],this._skinnedNodes=[],this._runtimeSkins=[],this.modelPipelineStages=[],this._boundingSphere=void 0,this._boundingSphere2D=void 0,this._computedModelMatrix=F.clone(F.IDENTITY),this._computedModelMatrix2D=F.clone(F.IDENTITY),this._axisCorrectionMatrix=bt.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new F),this._runtimeArticulations={},v6e(this)}Object.defineProperties(qc.prototype,{components:{get:function(){return this._components}},computedModelMatrix:{get:function(){return this._computedModelMatrix}},axisCorrectionMatrix:{get:function(){return this._axisCorrectionMatrix}},boundingSphere:{get:function(){return this._boundingSphere}}});function v6e(e){let t=e._components,n=t.scene,o=e._model.modelMatrix;Ipe(e,o);let r=t.articulations,s=r.length,a=e._runtimeArticulations;for(let A=0;A<s;A++){let Z=r[A],R=new Y2({articulation:Z,sceneGraph:e}),G=R.name;a[G]=R}let c=t.nodes,d=c.length;e._runtimeNodes=new Array(d);let m=n.nodes.length,p=F.IDENTITY;for(let A=0;A<m;A++){let Z=n.nodes[A],R=Ppe(e,Z,p);e._rootNodes.push(R)}let b=t.skins,f=e._runtimeSkins,y=b.length;for(let A=0;A<y;A++){let Z=b[A];f.push(new dI({skin:Z,sceneGraph:e}))}let _=e._skinnedNodes,S=_.length;for(let A=0;A<S;A++){let Z=_[A],R=e._runtimeNodes[Z],E=c[Z].skin.index;R._runtimeSkin=f[E],R.updateJointMatrices()}e.applyArticulations()}function Ipe(e,t){let n=e._components,i=e._model;e._computedModelMatrix=F.multiplyTransformation(t,n.transform,e._computedModelMatrix),e._computedModelMatrix=F.multiplyTransformation(e._computedModelMatrix,e._axisCorrectionMatrix,e._computedModelMatrix),e._computedModelMatrix=F.multiplyByUniformScale(e._computedModelMatrix,i.computedScale,e._computedModelMatrix)}var F6e=new h;function I6e(e,t){let n=e._computedModelMatrix,i=F.getTranslation(n,F6e);if(!h.equals(i,h.ZERO))e._computedModelMatrix2D=xt.basisTo2D(t.mapProjection,n,e._computedModelMatrix2D);else{let o=e.boundingSphere.center,r=xt.ellipsoidTo2DModelMatrix(t.mapProjection,o,e._computedModelMatrix2D);e._computedModelMatrix2D=F.multiply(r,n,e._computedModelMatrix2D)}e._boundingSphere2D=ue.transform(e._boundingSphere,e._computedModelMatrix2D,e._boundingSphere2D)}function Ppe(e,t,n){let i=[],o=bt.getNodeTransform(t),r=t.children.length;for(let u=0;u<r;u++){let m=t.children[u],p=F.multiplyTransformation(n,o,new F),b=Ppe(e,m,p);i.push(b)}let s=new q2({node:t,transform:o,transformToRoot:n,children:i,sceneGraph:e}),a=t.primitives.length;for(let u=0;u<a;u++)s.runtimePrimitives.push(new lI({primitive:t.primitives[u],node:t,model:e._model}));let c=t.index;e._runtimeNodes[c]=s,l(t.skin)&&e._skinnedNodes.push(c);let d=t.name;if(l(d)){let u=e._model,m=new O2(u,s);u._nodesByName[d]=m}return c}var P6e=new h,X6e=new h,Y6e=new h,N6e=new h;qc.prototype.buildDrawCommands=function(e){let t=this.buildRenderResources(e);this.computeBoundingVolumes(t),this.createDrawCommands(t,e)};qc.prototype.buildRenderResources=function(e){let t=this._model,n=new hI(t);t.statistics.clear(),this.configurePipeline(e);let i=this.modelPipelineStages;for(let o=0;o<i.length;o++)i[o].process(n,t,e);for(let o=0;o<this._runtimeNodes.length;o++){let r=this._runtimeNodes[o];if(!l(r))continue;r.configurePipeline();let s=r.pipelineStages,a=new xI(n,r);n.nodeRenderResources[o]=a;for(let c=0;c<s.length;c++)s[c].process(a,r.node,e);for(let c=0;c<r.runtimePrimitives.length;c++){let d=r.runtimePrimitives[c];d.configurePipeline(e);let u=d.pipelineStages,m=new _I(a,d);a.primitiveRenderResources[c]=m;for(let p=0;p<u.length;p++)u[p].process(m,d.primitive,e)}}return n};qc.prototype.computeBoundingVolumes=function(e){let t=this._model,n=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,P6e),i=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,X6e);for(let o=0;o<this._runtimeNodes.length;o++){let r=this._runtimeNodes[o];if(!l(r))continue;let s=e.nodeRenderResources[o],a=r.computedTransform;for(let c=0;c<r.runtimePrimitives.length;c++){let d=r.runtimePrimitives[c],u=s.primitiveRenderResources[c];d.boundingSphere=ue.clone(u.boundingSphere,new ue);let m=F.multiplyByPoint(a,u.positionMin,Y6e),p=F.multiplyByPoint(a,u.positionMax,N6e);h.minimumByComponent(n,m,n),h.maximumByComponent(i,p,i)}}this._boundingSphere=ue.fromCornerPoints(n,i,new ue),this._boundingSphere=ue.transformWithoutScale(this._boundingSphere,this._axisCorrectionMatrix,this._boundingSphere),this._boundingSphere=ue.transform(this._boundingSphere,this._components.transform,this._boundingSphere),t._boundingSphere=ue.transform(this._boundingSphere,t.modelMatrix,t._boundingSphere),t._initialRadius=t._boundingSphere.radius,t._boundingSphere.radius*=t._clampedScale};qc.prototype.createDrawCommands=function(e,t){for(let n=0;n<this._runtimeNodes.length;n++){let i=this._runtimeNodes[n];if(!l(i))continue;let o=e.nodeRenderResources[n];for(let r=0;r<i.runtimePrimitives.length;r++){let s=i.runtimePrimitives[r],a=o.primitiveRenderResources[r],c=GI.buildModelDrawCommand(a,t);s.drawCommand=c}}};qc.prototype.configurePipeline=function(e){let t=this.modelPipelineStages;t.length=0;let n=this._model,i=e.fog.enabled&&e.fog.renderable;l(n.color)&&t.push(Wy),!l(n.classificationType)&&(n.imageBasedLighting.enabled&&t.push(P2),n.isClippingEnabled()&&t.push(M2),n.isClippingPolygonsEnabled()&&t.push(D2),n.hasSilhouette(e)&&t.push(bI),l(n.splitDirection)&&n.splitDirection!==Gr.NONE&&t.push(yI),Wr.is3DTiles(n.type)&&t.push(L2),i&&t.push(F2))};qc.prototype.update=function(e,t){let n,i,o;for(n=0;n<this._runtimeNodes.length;n++){let r=this._runtimeNodes[n];if(!l(r))continue;for(i=0;i<r.updateStages.length;i++)r.updateStages[i].update(r,this,e);let s=e.mode!==re.SCENE3D&&this._model._projectTo2D;for(t&&!s&&this.updateJointMatrices(),i=0;i<r.runtimePrimitives.length;i++){let a=r.runtimePrimitives[i];for(o=0;o<a.updateStages.length;o++)a.updateStages[o].update(a,this)}}};qc.prototype.updateModelMatrix=function(e,t){Ipe(this,e),t.mode!==re.SCENE3D&&I6e(this,t);let n=this._rootNodes;for(let i=0;i<n.length;i++){let o=this._runtimeNodes[n[i]];o._transformDirty=!0}};qc.prototype.updateJointMatrices=function(){let e=this._skinnedNodes,t=e.length;for(let n=0;n<t;n++){let i=e[n];this._runtimeNodes[i].updateJointMatrices()}};function Xpe(e,t,n,i,o){if(n&&!t.show)return;let r=t.children.length;for(let c=0;c<r;c++){let d=t.getChild(c);Xpe(e,d,n,i,o)}let s=t.runtimePrimitives,a=s.length;for(let c=0;c<a;c++){let d=s[c];i(d,o)}}function gD(e,t,n,i){let o=e._rootNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s],c=e._runtimeNodes[a];Xpe(e,c,t,n,i)}}var w6e={backFaceCulling:void 0};qc.prototype.updateBackFaceCulling=function(e){let t=w6e;t.backFaceCulling=e,gD(this,!1,M6e,t)};function M6e(e,t){let n=e.drawCommand;n.backFaceCulling=t.backFaceCulling}var k6e={shadowMode:void 0};qc.prototype.updateShadows=function(e){let t=k6e;t.shadowMode=e,gD(this,!1,U6e,t)};function U6e(e,t){let n=e.drawCommand;n.shadows=t.shadowMode}var D6e={debugShowBoundingVolume:void 0};qc.prototype.updateShowBoundingVolume=function(e){let t=D6e;t.debugShowBoundingVolume=e,gD(this,!1,O6e,t)};function O6e(e,t){let n=e.drawCommand;n.debugShowBoundingVolume=t.debugShowBoundingVolume}var Ype=[],Npe=[],B6e={frameState:void 0,hasSilhouette:void 0};qc.prototype.pushDrawCommands=function(e){let t=Ype;t.length=0;let n=Npe;n.length=0;let i=B6e;i.hasSilhouette=this._model.hasSilhouette(e),i.frameState=e,gD(this,!0,z6e,i),$n(e.commandList,t),$n(e.commandList,n)};function z6e(e,t){let n=t.frameState,i=t.hasSilhouette,o=n.passes,r=Ype,s=Npe,a=e.drawCommand;a.pushCommands(n,n.commandList),i&&!o.pick&&a.pushSilhouetteCommands(n,r),l(a.pushEdgeCommands)&&a.pushEdgeCommands(n,s)}qc.prototype.setArticulationStage=function(e,t){let n=e.split(" ");if(n.length!==2)return;let i=n[0],o=n[1],r=this._runtimeArticulations[i];l(r)&&r.setArticulationStage(o,t)};qc.prototype.applyArticulations=function(){let e=this._runtimeArticulations;for(let t in e)e.hasOwnProperty(t)&&e[t].apply()};var EI=qc;var Bjn=x(T(),1);function Yy(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdByteLengths={},this._batchTextureIdMap=new wt}Object.defineProperties(Yy.prototype,{batchTexturesByteLength:{get:function(){let e=this._batchTextureIdMap.length,t=this._batchTextureIdMap.values,n=0;for(let i=0;i<e;i++)n+=t[i].byteLength;return n}}});Yy.prototype.clear=function(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdByteLengths={},this._batchTextureIdMap.removeAll()};Yy.prototype.addBuffer=function(e,t){if(!this._bufferIdSet.hasOwnProperty(e._id)){let n=t?2:1;this.geometryByteLength+=e.sizeInBytes*n}this._bufferIdSet[e._id]=!0};Yy.prototype.addTexture=function(e){this._textureIdByteLengths.hasOwnProperty(e._id)||(this.texturesByteLength+=e.sizeInBytes,this._textureIdByteLengths[e._id]=e.sizeInBytes)};Yy.prototype.getTextureIds=function(){return Object.keys(this._textureIdByteLengths)};Yy.prototype.getTextureByteLengthById=function(e){return this._textureIdByteLengths[e]};Yy.prototype.addBatchTexture=function(e){this._batchTextureIdMap.contains(e._id)||this._batchTextureIdMap.set(e._id,e)};var LI=Yy;var G4n=x(T(),1);var Upe=x(uU(),1);var o4n=x(T(),1);var wpe={},C_=Uint32Array.BYTES_PER_ELEMENT;wpe.parse=function(e,t){t=t??0;let n=new Uint8Array(e),i=new DataView(e);t+=C_;let o=i.getUint32(t,!0);if(o!==1)throw new ae(`Only Point Cloud tile version 1 is supported. Version ${o} is not.`);t+=C_,t+=C_;let r=i.getUint32(t,!0);if(r===0)throw new ae("Feature table must have a byte length greater than zero");t+=C_;let s=i.getUint32(t,!0);t+=C_;let a=i.getUint32(t,!0);t+=C_;let c=i.getUint32(t,!0);t+=C_;let d=_r(n,t,r);t+=r;let u=new Uint8Array(e,t,s);t+=s;let m,p;a>0&&(m=_r(n,t,a),Object.keys(m).length===0&&(m=void 0),t+=a,c>0&&(p=new Uint8Array(e,t,c),p=new Uint8Array(p),t+=c));let b=new Yh(d,u),f=b.getGlobalProperty("POINTS_LENGTH");if(b.featuresLength=f,!l(f))throw new ae("Feature table global property: POINTS_LENGTH must be defined");let y=b.getGlobalProperty("RTC_CENTER",J.FLOAT,3);l(y)&&(y=h.unpack(y));let _=K6e(b,m);if(_.rtcCenter=y,_.pointsLength=f,!_.hasPositions){let S=J6e(b);_.positions=S,_.hasPositions=_.hasPositions||l(S)}if(!_.hasPositions)throw new ae("Either POSITION or POSITION_QUANTIZED must be defined.");if(!_.hasNormals){let S=Q6e(b);_.normals=S,_.hasNormals=_.hasNormals||l(S)}if(!_.hasColors){let S=j6e(b);_.colors=S,_.hasColors=_.hasColors||l(S),_.hasConstantColor=l(_.constantColor),_.isTranslucent=l(S)&&S.isTranslucent}if(!_.hasBatchIds){let S=q6e(b);_.batchIds=S,_.hasBatchIds=_.hasBatchIds||l(S)}if(_.hasBatchIds){let S=b.getGlobalProperty("BATCH_LENGTH");if(!l(S))throw new ae("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");_.batchLength=S}return(l(m)||l(p))&&(_.batchTableJson=m,_.batchTableBinary=p),H6e(_),_};function H6e(e){let t=e.batchTableJson;if(!l(t))return;let n=e.batchTableBinary;if(l(n))return;let i=Object.keys(e.draco?.batchTableProperties??{}),o=[];for(let r of Object.keys(t)){let a=t[r].byteOffset;l(a)&&(i.includes(r)||o.push(r))}for(let r of o)_t("PntsParser-invalidBinaryBodyReference",`The point cloud data contained a binary property ${r} that could not be resolved - skipping`),delete t[r]}function K6e(e,t){let n=e.json,i,o,r,s=l(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=l(t)&&l(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;l(a)&&(r=a.properties);let c,d,u,m,p;if(l(s)){o=s.properties;let f=s.byteOffset,y=s.byteLength;if(!l(o)||!l(f)||!l(y))throw new ae("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(f,f+y),c=l(o.POSITION),d=l(o.RGB)||l(o.RGBA),u=l(o.NORMAL),m=l(o.BATCH_ID),p=l(o.RGBA)}let b;return l(i)&&(b={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:vt(o,r),dequantizeInShader:!0}),{draco:b,hasPositions:c,hasColors:d,isTranslucent:p,hasNormals:u,hasBatchIds:m}}function J6e(e){let t=e.json,n;if(l(t.POSITION))return n=e.getPropertyArray("POSITION",J.FLOAT,3),{name:ct.POSITION,semantic:ct.POSITION,typedArray:n,isQuantized:!1,componentDatatype:J.FLOAT,type:kt.VEC3};if(l(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",J.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",J.FLOAT,3);if(!l(i))throw new ae("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=65535,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",J.FLOAT,3);if(!l(r))throw new ae("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:ct.POSITION,semantic:ct.POSITION,typedArray:n,isQuantized:!0,componentDatatype:J.FLOAT,type:kt.VEC3,quantizedRange:o,quantizedVolumeOffset:h.unpack(r),quantizedVolumeScale:h.unpack(i),quantizedComponentDatatype:J.UNSIGNED_SHORT,quantizedType:kt.VEC3}}}function j6e(e){let t=e.json,n;if(l(t.RGBA))return n=e.getPropertyArray("RGBA",J.UNSIGNED_BYTE,4),{name:ct.COLOR,semantic:ct.COLOR,setIndex:0,typedArray:n,componentDatatype:J.UNSIGNED_BYTE,type:kt.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(l(t.RGB))return n=e.getPropertyArray("RGB",J.UNSIGNED_BYTE,3),{name:"COLOR",semantic:ct.COLOR,setIndex:0,typedArray:n,componentDatatype:J.UNSIGNED_BYTE,type:kt.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(l(t.RGB565))return n=e.getPropertyArray("RGB565",J.UNSIGNED_SHORT,1),{name:"COLOR",semantic:ct.COLOR,setIndex:0,typedArray:n,componentDatatype:J.FLOAT,type:kt.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(l(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",J.UNSIGNED_BYTE,4),o=i[3],r=U.fromBytes(i[0],i[1],i[2],o),s=o<255;return{name:ct.COLOR,semantic:ct.COLOR,setIndex:0,constantColor:r,componentDatatype:J.FLOAT,type:kt.VEC4,isQuantized:!1,isTranslucent:s}}}function Q6e(e){let t=e.json,n;if(l(t.NORMAL))return n=e.getPropertyArray("NORMAL",J.FLOAT,3),{name:ct.NORMAL,semantic:ct.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:J.FLOAT,type:kt.VEC3};if(l(t.NORMAL_OCT16P))return n=e.getPropertyArray("NORMAL_OCT16P",J.UNSIGNED_BYTE,2),{name:ct.NORMAL,semantic:ct.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<<8)-1,quantizedType:kt.VEC2,quantizedComponentDatatype:J.UNSIGNED_BYTE,componentDatatype:J.FLOAT,type:kt.VEC3}}function q6e(e){let t=e.json;if(l(t.BATCH_ID)){let n=e.getPropertyArray("BATCH_ID",J.UNSIGNED_SHORT,1);return{name:ct.FEATURE_ID,semantic:ct.FEATURE_ID,setIndex:0,typedArray:n,componentDatatype:J.fromTypedArray(n),type:kt.SCALAR}}}var R_=wpe;var $6e=Sn.Components,eqe=Sn.Scene,tqe=Sn.Node,nqe=Sn.Primitive,iqe=Sn.Attribute,Mpe=Sn.Quantization,oqe=Sn.FeatureIdAttribute,rqe=Sn.Material,sqe=Sn.MetallicRoughness,n8=class extends zi{constructor(t){super(),t=t??B.EMPTY_OBJECT;let n=t.arrayBuffer,i=t.byteOffset??0;this._arrayBuffer=n,this._byteOffset=i,this._loadAttributesFor2D=t.loadAttributesFor2D??!1,this._parsedContent=void 0,this._decodePromise=void 0,this._decodedAttributes=void 0,this._promise=void 0,this._error=void 0,this._state=Tt.UNLOADED,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY}get cacheKey(){}get components(){return this._components}get transform(){return this._transform}load(){if(l(this._promise))return this._promise;this._parsedContent=R_.parse(this._arrayBuffer,this._byteOffset),this._state=Tt.PROCESSING,this._promise=Promise.resolve(this)}process(t){if(l(this._error)){let n=this._error;throw this._error=void 0,n}if(this._state===Tt.READY)return!0;if(this._state===Tt.PROCESSING){if(l(this._decodePromise))return!1;this._decodePromise=aqe(this,t.context)}return!1}unload(){let t=this._buffers;for(let n=0;n<t.length;n++)t[n].destroy();t.length=0,this._components=void 0,this._parsedContent=void 0,this._arrayBuffer=void 0}};function aqe(e,t){let i=e._parsedContent.draco,o;if(l(i)?o=J0.decodePointCloud(i,t):o=Promise.resolve(),!!l(o))return e._decodePromise=o,o.then(function(r){if(!e.isDestroyed())return l(r)&&cqe(e,i,r),xqe(e,t),e._state=Tt.READY,e}).catch(function(r){e.unload(),e._state=Tt.FAILED;let s="Failed to load Draco pnts";e._error=e.getError(s,r)})}function cqe(e,t,n){e._state=Tt.READY;let i=e._parsedContent,o;if(l(n.POSITION)){if(o={name:"POSITION",semantic:ct.POSITION,typedArray:n.POSITION.array,componentDatatype:J.FLOAT,type:kt.VEC3,isQuantized:!1},l(n.POSITION.data.quantization)){let a=n.POSITION.data.quantization,c=a.range,d=h.fromElements(c,c,c),u=h.unpack(a.minValues),m=(1<<a.quantizationBits)-1;o.isQuantized=!0,o.quantizedRange=m,o.quantizedVolumeOffset=u,o.quantizedVolumeScale=d,o.quantizedComponentDatatype=m<=255?J.UNSIGNED_BYTE:J.UNSIGNED_SHORT,o.quantizedType=kt.VEC3}i.positions=o}if(l(n.NORMAL)){if(o={name:"NORMAL",semantic:ct.NORMAL,typedArray:n.NORMAL.array,componentDatatype:J.FLOAT,type:kt.VEC3,isQuantized:!1,octEncoded:!1,octEncodedZXY:!1},l(n.NORMAL.data.quantization)){let a=(1<<n.NORMAL.data.quantization.quantizationBits)-1;o.quantizedRange=a,o.octEncoded=!0,o.octEncodedZXY=!0,o.quantizedComponentDatatype=J.UNSIGNED_BYTE,o.quantizedType=kt.VEC2}i.normals=o}if(l(n.RGBA)?i.colors={name:"COLOR",semantic:ct.COLOR,setIndex:0,typedArray:n.RGBA.array,componentDatatype:J.UNSIGNED_BYTE,type:kt.VEC4,normalized:!0,isTranslucent:!0}:l(n.RGB)&&(i.colors={name:"COLOR",semantic:ct.COLOR,setIndex:0,typedArray:n.RGB.array,componentDatatype:J.UNSIGNED_BYTE,type:kt.VEC3,normalized:!0,isTranslucent:!1}),l(n.BATCH_ID)){let a=n.BATCH_ID.array;i.batchIds={name:"_FEATURE_ID",semantic:ct.FEATURE_ID,setIndex:0,typedArray:a,componentDatatype:J.fromTypedArray(a),type:kt.SCALAR}}let r=i.batchTableJson,s=t.batchTableProperties;for(let a in s)if(s.hasOwnProperty(a)){let c=n[a];l(r)||(r={}),i.hasDracoBatchTable=!0;let d=c.data;r[a]={byteOffset:d.byteOffset,type:lqe(d.componentsPerAttribute),componentType:dqe(d.componentDatatype),typedArray:c.array}}i.batchTableJson=r}function lqe(e){switch(e){case 1:return"SCALAR";case 2:return"VEC2";case 3:return"VEC3";case 4:return"VEC4"}}function dqe(e){switch(e){case ne.BYTE:return"BYTE";case ne.UNSIGNED_BYTE:return"UNSIGNED_BYTE";case ne.SHORT:return"SHORT";case ne.UNSIGNED_SHORT:return"UNSIGNED_SHORT";case ne.INT:return"INT";case ne.UNSIGNED_INT:return"UNSIGNED_INT";case ne.DOUBLE:return"DOUBLE";case ne.FLOAT:return"FLOAT"}}function WI(e,t,n){let i=t.typedArray,o;if(t.octEncoded&&(o=new Mpe,o.octEncoded=t.octEncoded,o.octEncodedZXY=t.octEncodedZXY,o.normalizationRange=t.quantizedRange,o.type=t.quantizedType,o.componentDatatype=t.quantizedComponentDatatype),t.isQuantized){o=new Mpe;let a=t.quantizedRange;o.normalizationRange=a,o.quantizedVolumeOffset=h.ZERO;let c=t.quantizedVolumeScale;o.quantizedVolumeDimensions=c,o.quantizedVolumeStepSize=h.divideByScalar(c,a,new h),o.componentDatatype=t.quantizedComponentDatatype,o.type=t.quantizedType}let r=new iqe;if(r.name=t.name,r.semantic=t.semantic,r.setIndex=t.setIndex,r.componentDatatype=t.componentDatatype,r.type=t.type,r.normalized=t.normalized??!1,r.min=t.min,r.max=t.max,r.quantization=o,t.isRGB565&&(i=cn.decodeRGB565(i)),l(t.constantColor)){let a=new Array(4);r.constant=U.pack(t.constantColor,a)}else{let a=$e.createVertexBuffer({typedArray:i,context:n,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,e._buffers.push(a),r.buffer=a}let s=e._loadAttributesFor2D;return r.semantic===ct.POSITION&&s&&(r.typedArray=i),r}var kpe,yD;function uqe(e){if(!l(yD)){kpe=new Upe.default(0),yD=new Array(e);for(let t=0;t<e;++t)yD[t]=kpe.random()}return yD}var mqe=new h,hqe=new h,fqe=new h;function pqe(e){let t=e.typedArray,n=20,i=t.length/3,o=Math.min(i,n),r=uqe(n),s=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=h.fromElements(s,s,s,mqe),d=h.fromElements(a,a,a,hqe),u,m,p;if(e.isQuantized)c=h.ZERO,d=e.quantizedVolumeScale;else for(u=0;u<o;++u)m=Math.floor(r[u]*i),p=h.unpack(t,m*3,fqe),h.minimumByComponent(c,p,c),h.maximumByComponent(d,p,d);e.min=h.clone(c),e.max=h.clone(d)}var bqe={name:ct.COLOR,semantic:ct.COLOR,setIndex:0,constantColor:U.DARKGRAY,componentDatatype:J.FLOAT,type:kt.VEC4,isQuantized:!1,isTranslucent:!1};function gqe(e,t,n){let i=[],o,r=t.positions;return l(r)&&(pqe(r),o=WI(e,r,n),o.count=t.pointsLength,i.push(o)),l(t.normals)&&(o=WI(e,t.normals,n),o.count=t.pointsLength,i.push(o)),l(t.colors)?(o=WI(e,t.colors,n),o.count=t.pointsLength,i.push(o)):(o=WI(e,bqe,n),o.count=t.pointsLength,i.push(o)),l(t.batchIds)&&(o=WI(e,t.batchIds,n),o.count=t.pointsLength,i.push(o)),i}function yqe(e,t){let n=e.batchLength,i=e.pointsLength,o=e.batchTableJson,r=e.batchTableBinary,s=!l(e.batchIds);return l(r)||l(o)||e.hasDracoBatchTable?cb({count:n??i,batchTable:o,binaryBody:r,parseAsPropertyAttributes:s,customAttributeOutput:t}):new Va({schema:{},propertyTables:[]})}function xqe(e,t){let n=e._parsedContent,i=new sqe;i.metallicFactor=0,i.roughnessFactor=.9;let o=new rqe;o.metallicRoughness=i;let r=n.colors;l(r)&&r.isTranslucent&&(o.alphaMode=up.BLEND);let s=!l(n.normals);o.unlit=s;let a=new nqe;if(a.attributes=gqe(e,n,t),a.primitiveType=ve.POINTS,a.material=o,l(n.batchIds)){let b=new oqe;b.propertyTableId=0,b.setIndex=0,b.positionalLabel="featureId_0",a.featureIds.push(b)}let c=new tqe;c.index=0,c.primitives=[a];let d=new eqe;d.nodes=[c],d.upAxis=Xi.Z,d.forwardAxis=Xi.X;let u=new $6e;u.scene=d,u.nodes=[c];let m=[];u.structuralMetadata=yqe(n,m),m.length>0&&Tqe(e,a,m,t),l(n.rtcCenter)&&(u.transform=F.multiplyByTranslation(u.transform,n.rtcCenter,u.transform));let p=n.positions;l(p)&&p.isQuantized&&(u.transform=F.multiplyByTranslation(u.transform,p.quantizedVolumeOffset,u.transform)),e._components=u,e._parsedContent=void 0,e._arrayBuffer=void 0}function Tqe(e,t,n,i){let o=t.attributes,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=$e.createVertexBuffer({typedArray:a.typedArray,context:i,usage:Fe.STATIC_DRAW});c.vertexArrayDestroyable=!1,e._buffers.push(c),a.buffer=c,a.typedArray=void 0,o.push(a)}t.propertyAttributeIds=[0]}var vI=n8;var O4n=x(T(),1);var Dpe=new h,Ope=new h,Bpe=new h,_qe=new h,Sqe=new h,Aqe=new h,Zqe=new fe,Cqe=new ue;function i8(e,t,n,i){let o=t*n;return i.x=e[o],i.y=e[o+1],i.z=e[o+2],i}function kC(e,t,n,i,o,r,s){if(!e._ready||n.mode===re.MORPHING)return;let a=Number.MAX_VALUE;r=r??ie.default,i=i??1,o=o??0;let c=n.mode!==re.SCENE3D?n.mapProjection:void 0;if(sa.forEachPrimitive(e,{mapProjection:c},function(d,u,m,p){if(l(d.boundingSphere)&&m.length===1){let A=ue.transform(d.boundingSphere,p,Cqe),Z=di.raySphere(t,A);if(!l(Z))return}if(!l(u.indices))return;let b,f,y=bt.getAttributeBySemantic(u,ct.POSITION);l(y)&&(f=kt.getNumberOfComponents(y.type),b=sa.readAttributeAsTypedArray(y));let _;if(l(u.indices)&&(_=sa.readIndicesAsTypedArray(u.indices)),!l(_)||!l(b))return;let S=_.length;for(let A=0;A<S;A+=3){let Z=_[A],R=_[A+1],G=_[A+2];i8(b,Z,f,Dpe),i8(b,R,f,Ope),i8(b,G,f,Bpe);for(let E of m){let v=F.multiplyByPoint(E.transform,Dpe,_qe),I=F.multiplyByPoint(E.transform,Ope,Sqe),X=F.multiplyByPoint(E.transform,Bpe,Aqe);i!==1&&(co.getPosition(v,r,i,o,v),co.getPosition(I,r,i,o,I),co.getPosition(X,r,i,o,X));let Y=di.rayTriangleParametric(t,v,I,X,e.backFaceCulling??!0);l(Y)&&Y<a&&Y>=0&&(a=Y)}}}),a!==Number.MAX_VALUE){if(s=_n.getPoint(t,a,s),n.mode!==re.SCENE3D){h.fromElements(s.y,s.z,s.x,s);let d=n.mapProjection,u=d.ellipsoid,m=d.unproject(s,Zqe);u.cartographicToCartesian(m,s)}return s}}var $4n=x(T(),1);var z4n=x(T(),1),o8=class{constructor(t){this.show=t.show,this.alpha=t.alpha,this.brightness=t.brightness,this.contrast=t.contrast,this.hue=t.hue,this.saturation=t.saturation,this.gamma=t.gamma,this.colorToAlpha=t.colorToAlpha}},FI=o8;var r8=class{constructor(t){this._model=t,this._modelPrimitiveImageries=void 0,this._imageryConfigurations=[]}update(t){if(!this._hasImagery){this._deleteModelPrimitiveImageries();return}this._allImageryLayersReady&&(l(this._modelPrimitiveImageries)||(this._modelPrimitiveImageries=this._createModelPrimitiveImageries()),this._updateModelPrimitiveImageries(t),this._checkForModifiedImageryConfigurations())}_createModelPrimitiveImageries(){let t=this._model,n=this._collectRuntimeNodesAndPrimitives(),i=[],o=n.length;for(let r=0;r<o;r++){let s=n[r],a=s.runtimeNode,c=s.runtimePrimitive,d=new __(t,a,c);c.primitive.modelPrimitiveImagery=d,i.push(d)}return i}_collectRuntimeNodesAndPrimitives(){let i=this._model.sceneGraph._runtimeNodes,o=[];for(let r=0;r<i.length;r++){let s=i[r];if(l(s))for(let a=0;a<s.runtimePrimitives.length;a++){let c=s.runtimePrimitives[a];o.push({runtimeNode:s,runtimePrimitive:c})}}return o}_updateModelPrimitiveImageries(t){if(!l(this._modelPrimitiveImageries))throw new Te("The modelPrimitiveImageries have not been created");let n=this._modelPrimitiveImageries,i=n.length;for(let o=0;o<i;o++)n[o].update(t)}_deleteModelPrimitiveImageries(){let t=this._modelPrimitiveImageries;if(!l(t))return;let n=t.length;for(let i=0;i<n;i++)t[i].destroy();delete this._modelPrimitiveImageries,this._model.resetDrawCommands()}get ready(){return this._hasImagery?!(!this._allImageryLayersReady||!this._allModelPrimitiveImageriesReady):!0}get _hasImagery(){let n=this._model.imageryLayers;return l(n)&&n.length>0}get _allImageryLayersReady(){if(!this._hasImagery)return!0;let t=this._model.imageryLayers,n=t.length;for(let i=0;i<n;i++)if(!t.get(i).ready)return!1;return!0}get _allModelPrimitiveImageriesReady(){let t=this._modelPrimitiveImageries;if(!l(t))return!1;let n=t.length;for(let i=0;i<n;i++)if(!t[i].ready)return!1;return!0}_checkForModifiedImageryConfigurations(){this._imageryConfigurationsModified()&&(this._updateImageryConfigurations(),this._model.resetDrawCommands())}_imageryConfigurationsModified(){let n=this._model.imageryLayers,i=this._imageryConfigurations;if(n.length!==i.length)return!0;for(let o=0;o<n.length;o++){let r=n.get(o),s=i[o];if(r.show!==s.show||r.alpha!==s.alpha||r.brightness!==s.brightness||r.contrast!==s.contrast||r.hue!==s.hue||r.saturation!==s.saturation||r.gamma!==s.gamma||r.colorToAlpha!==s.colorToAlpha)return!0}return!1}_updateImageryConfigurations(){let n=this._model.imageryLayers,i=this._imageryConfigurations;i.length=n.length;for(let o=0;o<n.length;o++){let r=n.get(o);i[o]=new FI(r)}}isDestroyed(){return!1}destroy(){if(!this.isDestroyed())return this._deleteModelPrimitiveImageries(),he(this)}},II=r8;function Vo(e){e=e??B.EMPTY_OBJECT,this._loader=e.loader,this._resource=e.resource,this.type=e.type??Wr.GLTF,this.modelMatrix=F.clone(e.modelMatrix??F.IDENTITY),this._modelMatrix=F.clone(this.modelMatrix),this._scale=e.scale??1,this._minimumPixelSize=e.minimumPixelSize??0,this._maximumScale=e.maximumScale,this._clampedScale=l(this._maximumScale)?Math.min(this._scale,this._maximumScale):this._scale,this._computedScale=this._clampedScale,this._updateModelMatrix=!1,this.referenceMatrix=void 0,this._iblReferenceFrameMatrix=$.clone($.IDENTITY),this._resourcesLoaded=!1,this._drawCommandsBuilt=!1,this._ready=!1,this._customShader=e.customShader,this._content=e.content,this._texturesLoaded=!1,this._defaultTexture=void 0,this._activeAnimations=new V2(this),this._clampAnimations=e.clampAnimations??!0,this._userAnimationDirty=!1,this._id=e.id,this._idDirty=!1,this._color=U.clone(e.color),this._colorBlendMode=e.colorBlendMode??Jc.HIGHLIGHT,this._colorBlendAmount=e.colorBlendAmount??.5;let t=e.silhouetteColor??U.RED;this._silhouetteColor=U.clone(t),this._silhouetteSize=e.silhouetteSize??0,this._silhouetteDirty=!1,this._silhouetteId=void 0,this._cull=e.cull??!0,this._opaquePass=e.opaquePass??Le.OPAQUE,this._allowPicking=e.allowPicking??!0,this._show=e.show??!0,this._style=void 0,this._styleDirty=!1,this._styleCommandsNeeded=void 0;let n=e.featureIdLabel??"featureId_0";typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=e.instanceFeatureIdLabel??"instanceFeatureId_0";typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i,this._featureTables=[],this._featureTableId=void 0,this._featureTableIdDirty=!0,this._pipelineResources=[],this._modelResources=[],this._pickIds=[],this._boundingSphere=new ue,this._initialRadius=void 0,this._heightReference=e.heightReference??st.NONE,this._heightDirty=this._heightReference!==st.NONE,this._removeUpdateHeightCallback=void 0,this._enableVerticalExaggeration=e.enableVerticalExaggeration??!0,this._hasVerticalExaggeration=!1,this._clampedModelMatrix=void 0;let o=e.scene;l(o)&&l(o.terrainProviderChanged)&&(this._terrainProviderChangedCallback=o.terrainProviderChanged.addEventListener(()=>{this._heightDirty=!0})),this._scene=o,this._distanceDisplayCondition=e.distanceDisplayCondition;let r=new hp(e.pointCloudShading);this._pointCloudShading=r,this._attenuation=r.attenuation,this._pointCloudBackFaceCulling=r.backFaceCulling;let s=e.clippingPlanes;l(s)&&s.owner===void 0?ss.setOwner(s,this,"_clippingPlanes"):this._clippingPlanes=s,this._clippingPlanesState=0,this._clippingPlanesMatrix=F.clone(F.IDENTITY);let a=e.clippingPolygons;l(a)&&a.owner===void 0?Ih.setOwner(a,this,"_clippingPolygons"):this._clippingPolygons=a,this._clippingPolygonsState=0,this._modelImagery=new II(this),this._lightColor=h.clone(e.lightColor),this._imageBasedLighting=l(e.imageBasedLighting)?e.imageBasedLighting:new zT,this._shouldDestroyImageBasedLighting=!l(e.imageBasedLighting),this._environmentMapManager=void 0;let c=new nb(e.environmentMapOptions);nb.setOwner(c,this,"_environmentMapManager"),this._backFaceCulling=e.backFaceCulling??!0,this._backFaceCullingDirty=!1,this._shadows=e.shadows??Gn.ENABLED,this._shadowsDirty=!1,this._debugShowBoundingVolumeDirty=!1,this._debugShowBoundingVolume=e.debugShowBoundingVolume??!1,this._enableDebugWireframe=e.enableDebugWireframe??!1,this._enableShowOutline=e.enableShowOutline??!0,this._debugWireframe=e.debugWireframe??!1,this._edgeDisplayMode=e.edgeDisplayMode??xm.SURFACES_ONLY,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===Wr.GLTF&&_t("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.");let d=e.credit;typeof d=="string"&&(d=new Rt(d)),this._credits=[],this._credit=d,this._resourceCredits=[],this._gltfCredits=[],this._showCreditsOnScreen=e.showCreditsOnScreen??!1,this._showCreditsOnScreenDirty=!0,this._splitDirection=e.splitDirection??Gr.NONE,this._enableShowOutline=e.enableShowOutline??!0,this.showOutline=e.showOutline??!0,this.outlineColor=e.outlineColor??U.BLACK,this._classificationType=e.classificationType,this._statistics=new LI,this._sceneMode=void 0,this._projectTo2D=e.projectTo2D??!1,this._enablePick=e.enablePick??!1,this._fogRenderable=void 0,this._skipLevelOfDetail=!1,this._ignoreCommands=e.ignoreCommands??!1,this._errorEvent=new Se,this._readyEvent=new Se,this._texturesReadyEvent=new Se,this._sceneGraph=void 0,this._nodesByName={},this.pickObject=e.pickObject}function s8(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function Rqe(e,t){let n=e._featureTables,i=t.propertyTables,o=i.length;for(let r=0;r<o;r++){let s=i[r],a=new E2({model:e,propertyTable:s});n.push(a)}return n}function Vqe(e,t){let n=t._featureIdLabel,i=t._instanceFeatureIdLabel,o,r,s,a;for(o=0;o<e.nodes.length;o++)if(a=e.nodes[o],l(a.instances)&&(s=bt.getFeatureIdsByLabel(a.instances.featureIds,i),l(s)&&l(s.propertyTableId)))return s.propertyTableId;for(o=0;o<e.nodes.length;o++)for(a=e.nodes[o],r=0;r<a.primitives.length;r++){let c=a.primitives[r],d=bt.getFeatureIdsByLabel(c.featureIds,n);if(l(d))return d.propertyTableId}if(t._featureTables.length===1)return 0}function l8(e,t){if(!l(e)&&!l(t))return!1;if(l(e)!==l(t))return!0;let n=e.alpha,i=t.alpha;return Math.floor(n)!==Math.floor(i)||Math.ceil(n)!==Math.ceil(i)}Object.defineProperties(Vo.prototype,{ready:{get:function(){return this._ready}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},incrementallyLoadTextures:{get:function(){return this._loader.incrementallyLoadTextures??!1}},texturesReadyEvent:{get:function(){return this._texturesReadyEvent}},loader:{get:function(){return this._loader}},statistics:{get:function(){return this._statistics}},activeAnimations:{get:function(){return this._activeAnimations}},clampAnimations:{get:function(){return this._clampAnimations},set:function(e){this._clampAnimations=e}},cull:{get:function(){return this._cull}},opaquePass:{get:function(){return this._opaquePass}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){e!==this._pointCloudShading&&this.resetDrawCommands(),this._pointCloudShading=e}},customShader:{get:function(){return this._customShader},set:function(e){e!==this._customShader&&this.resetDrawCommands(),this._customShader=e}},sceneGraph:{get:function(){return this._sceneGraph}},content:{get:function(){return this._content}},heightReference:{get:function(){return this._heightReference},set:function(e){e!==this._heightReference&&(this._heightDirty=!0),this._heightReference=e}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=Ut.clone(e,this._distanceDisplayCondition)}},structuralMetadata:{get:function(){return this._sceneGraph.components.structuralMetadata}},featureTableId:{get:function(){return this._featureTableId},set:function(e){this._featureTableId=e}},featureTables:{get:function(){return this._featureTables},set:function(e){this._featureTables=e}},id:{get:function(){return this._id},set:function(e){e!==this._id&&(this._idDirty=!0),this._id=e}},allowPicking:{get:function(){return this._allowPicking}},style:{get:function(){return this._style},set:function(e){this._style=e,this._styleDirty=!0}},color:{get:function(){return this._color},set:function(e){l8(e,this._color)&&this.resetDrawCommands(),this._color=U.clone(e,this._color)}},colorBlendMode:{get:function(){return this._colorBlendMode},set:function(e){this._colorBlendMode=e}},colorBlendAmount:{get:function(){return this._colorBlendAmount},set:function(e){this._colorBlendAmount=e}},silhouetteColor:{get:function(){return this._silhouetteColor},set:function(e){if(!U.equals(e,this._silhouetteColor)){let t=l8(e,this._silhouetteColor);this._silhouetteDirty=this._silhouetteDirty||t}this._silhouetteColor=U.clone(e,this._silhouetteColor)}},silhouetteSize:{get:function(){return this._silhouetteSize},set:function(e){if(e!==this._silhouetteSize){let t=this._silhouetteSize,n=e>0&&t===0||e===0&&t>0;this._silhouetteDirty=this._silhouetteDirty||n,this._backFaceCullingDirty=this._backFaceCullingDirty||n}this._silhouetteSize=e}},boundingSphere:{get:function(){let e=l(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return Kpe(this,e),this._boundingSphere}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolumeDirty=!0),this._debugShowBoundingVolume=e}},debugWireframe:{get:function(){return this._debugWireframe},set:function(e){this._debugWireframe!==e&&this.resetDrawCommands(),this._debugWireframe=e,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===Wr.GLTF&&_t("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.")}},edgeDisplayMode:{get:function(){return this._edgeDisplayMode},set:function(e){this._edgeDisplayMode=e}},show:{get:function(){return this._show},set:function(e){this._show=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),e!==this._featureIdLabel&&(this._featureTableIdDirty=!0),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),e!==this._instanceFeatureIdLabel&&(this._featureTableIdDirty=!0),this._instanceFeatureIdLabel=e}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&(ss.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){e!==this._clippingPolygons&&(Ih.setOwner(e,this,"_clippingPolygons"),this.resetDrawCommands())}},enableVerticalExaggeration:{get:function(){return this._enableVerticalExaggeration},set:function(e){e!==this._enableVerticalExaggeration&&this.resetDrawCommands(),this._enableVerticalExaggeration=e}},hasVerticalExaggeration:{get:function(){return this._hasVerticalExaggeration}},imageryLayers:{get:function(){if(l(this._content)){let e=this._content.tileset;if(l(e))return e.imageryLayers}}},lightColor:{get:function(){return this._lightColor},set:function(e){l(e)!==l(this._lightColor)&&this.resetDrawCommands(),this._lightColor=h.clone(e,this._lightColor)}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1,this.resetDrawCommands())}},environmentMapManager:{get:function(){return this._environmentMapManager},set:function(e){e!==this.environmentMapManager&&(nb.setOwner(e,this,"_environmentMapManager"),this.resetDrawCommands())}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){e!==this._backFaceCulling&&(this._backFaceCullingDirty=!0),this._backFaceCulling=e}},scale:{get:function(){return this._scale},set:function(e){e!==this._scale&&(this._updateModelMatrix=!0),this._scale=e}},computedScale:{get:function(){return this._computedScale}},minimumPixelSize:{get:function(){return this._minimumPixelSize},set:function(e){e!==this._minimumPixelSize&&(this._updateModelMatrix=!0),this._minimumPixelSize=e}},maximumScale:{get:function(){return this._maximumScale},set:function(e){e!==this._maximumScale&&(this._updateModelMatrix=!0),this._maximumScale=e}},shadows:{get:function(){return this._shadows},set:function(e){e!==this._shadows&&(this._shadowsDirty=!0),this._shadows=e}},credit:{get:function(){return this._credit}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen!==e&&(this._showCreditsOnScreenDirty=!0),this._showCreditsOnScreen=e}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&this.resetDrawCommands(),this._splitDirection=e}},classificationType:{get:function(){return this._classificationType}},pickIds:{get:function(){return this._pickIds}},styleCommandsNeeded:{get:function(){return this._styleCommandsNeeded}}});Vo.prototype.getNode=function(e){return this._nodesByName[e]};Vo.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};Vo.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};Vo.prototype.getExtension=function(e){return this._loader.components.extensions[e]};Vo.prototype.makeStyleDirty=function(){this._styleDirty=!0};Vo.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var Gqe=new F,Eqe=new $,Lqe=new F;Vo.prototype.update=function(e){let t=!1;try{t=Wqe(this,e)}catch(i){if(!this._loader.incrementallyLoadTextures&&i.name==="TextureError")s8(this,i);else{let o=bt.getError("model",this._resource,i);s8(this,o)}}if(vqe(this,e),Fqe(this,e),Iqe(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let i=this._loader.components;if(!l(i)){if(this._loader.isUnloaded())return;let s=bt.getError("model",this._resource,new ae("Failed to load model."));s8(s),this._rejectLoad=this._rejectLoad&&this._rejectLoad(s)}let o=i.structuralMetadata;l(o)&&o.propertyTableCount>0&&Rqe(this,o);let r=new EI({model:this,modelComponents:i});this._sceneGraph=r,this._gltfCredits=r.components.asset.credits}if(!this._resourcesLoaded||e.mode===re.MORPHING)return;let n=this._modelImagery;if(n.update(e),!(!n.ready&&!(this._content?.tileset?._asynchronouslyLoadImagery??!1))){if(Pqe(this),Xqe(this),Yqe(this,e),Nqe(this),wqe(this,e),Mqe(this,e),kqe(this,e),Uqe(this,e),Dqe(this,e),Oqe(this,e),Bqe(this,e),this._defaultTexture=e.context.defaultTexture,zqe(this,e),Hqe(this,e),Kqe(this),Jqe(this,e),$qe(this,e),!this._ready){e.afterRender.push(()=>{this._ready=!0,this._readyEvent.raiseEvent(this)});return}this._loader.incrementallyLoadTextures&&!this._texturesLoaded&&this._loader.texturesLoaded&&(this.resetDrawCommands(),this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this)),Qqe(this),e$e(this,e),t$e(this),n$e(this,e)}};function Wqe(e,t){return!e._resourcesLoaded||e._loader.incrementallyLoadTextures&&!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function vqe(e,t){l(e._customShader)&&e._customShader.update(t)}function Fqe(e,t){let n=e._environmentMapManager,i=t.passes.pick||t.passes.pickVoxel;e._ready&&n.owner===e&&!i&&(n.position=e._boundingSphere.center,n.shouldUpdate=!l(e._imageBasedLighting.sphericalHarmonicCoefficients)||!l(e._imageBasedLighting.specularEnvironmentMaps),n.update(t),n.shouldRegenerateShaders&&e.resetDrawCommands())}function Iqe(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function Pqe(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;l(n)&&n.propertyTableCount>0&&(e.featureTableId=Vqe(t,e),e._styleDirty=!0,e.resetDrawCommands())}function Xqe(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function Yqe(e,t){let n=e._featureTables,i=n.length,o=!1;for(let r=0;r<i;r++)n[r].update(t),n[r].styleCommandsNeededDirty&&(o=!0);o&&Hpe(e)}function Hpe(e){let t=e.featureTables[e.featureTableId];e._styleCommandsNeeded=wh.getStyleCommandsNeeded(t.featuresLength,t.batchTexture.translucentFeaturesLength)}function Nqe(e){let t=e.pointCloudShading;t.attenuation!==e._attenuation&&(e.resetDrawCommands(),e._attenuation=t.attenuation),t.backFaceCulling!==e._pointCloudBackFaceCulling&&(e.resetDrawCommands(),e._pointCloudBackFaceCulling=t.backFaceCulling)}function wqe(e,t){e._silhouetteDirty&&(Jpe(t)&&e.resetDrawCommands(),e._silhouetteDirty=!1)}function Mqe(e,t){let n=e.hasSkipLevelOfDetail(t);n!==e._skipLevelOfDetail&&(e.resetDrawCommands(),e._skipLevelOfDetail=n)}function kqe(e,t){let n=0;e.isClippingEnabled()&&(e._clippingPlanes.owner===e&&e._clippingPlanes.update(t),n=e._clippingPlanes.clippingPlanesState),n!==e._clippingPlanesState&&(e.resetDrawCommands(),e._clippingPlanesState=n)}function Uqe(e,t){let n=0;e.isClippingPolygonsEnabled()&&(e._clippingPolygons.owner===e&&(e._clippingPolygons.update(t),e._clippingPolygons.queueCommands(t)),n=e._clippingPolygons.clippingPolygonsState),n!==e._clippingPolygonsState&&(e.resetDrawCommands(),e._clippingPolygonsState=n)}function Dqe(e,t){t.mode!==e._sceneMode&&(e._projectTo2D?e.resetDrawCommands():e._updateModelMatrix=!0,e._sceneMode=t.mode)}function Oqe(e,t){let n=t.fog.enabled&&t.fog.renderable;n!==e._fogRenderable&&(e.resetDrawCommands(),e._fogRenderable=n)}function Bqe(e,t){if(e.enableVerticalExaggeration){let n=t.verticalExaggeration!==1;e.hasVerticalExaggeration!==n&&(e.resetDrawCommands(),e._hasVerticalExaggeration=n)}else e.hasVerticalExaggeration&&(e.resetDrawCommands(),e._hasVerticalExaggeration=!1)}function zqe(e,t){e._drawCommandsBuilt||(e.destroyPipelineResources(),e._sceneGraph.buildDrawCommands(t),e._drawCommandsBuilt=!0)}function Hqe(e,t){F.equals(e.modelMatrix,e._modelMatrix)||(e._updateModelMatrix=!0,e._modelMatrix=F.clone(e.modelMatrix,e._modelMatrix))}var Ny=new h,a8=new fe;function Kqe(e){if(!e._updateModelMatrix&&!e._heightDirty&&e._minimumPixelSize===0)return;l(e._removeUpdateHeightCallback)&&(e._removeUpdateHeightCallback(),e._removeUpdateHeightCallback=void 0);let t=e._scene;if(!l(t)||e.heightReference===st.NONE){e._clampedModelMatrix=void 0;return}let n=t.ellipsoid??ie.default,i=e.modelMatrix;Ny.x=i[12],Ny.y=i[13],Ny.z=i[14];let o=n.cartesianToCartographic(Ny);l(e._clampedModelMatrix)||(e._clampedModelMatrix=F.clone(i,new F)),e._removeUpdateHeightCallback=t.updateHeight(o,zpe(e,n,o),e.heightReference);let r=t.getHeight(o,e.heightReference);if(l(r)){let s=zpe(e,n,o);fe.clone(o,a8),a8.height=r,s(a8)}e._heightDirty=!1,e._updateModelMatrix=!0}function Jqe(e,t){if(!e._updateModelMatrix&&e._minimumPixelSize===0)return;let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;Kpe(e,n),jqe(e,n,t)}function Kpe(e,t){e._clampedScale=l(e._maximumScale)?Math.min(e._scale,e._maximumScale):e._scale,e._boundingSphere.center=h.multiplyByScalar(e._sceneGraph.boundingSphere.center,e._clampedScale,e._boundingSphere.center),e._boundingSphere.radius=e._initialRadius*e._clampedScale,e._boundingSphere=ue.transform(e._boundingSphere,t,e._boundingSphere)}function jqe(e,t,n){let i=e.scale;if(e.minimumPixelSize!==0&&!e._projectTo2D){let o=n.context,r=Math.max(o.drawingBufferWidth,o.drawingBufferHeight);F.getTranslation(t,Ny),e._sceneMode!==re.SCENE3D&&no.computeActualEllipsoidPosition(n,Ny,Ny);let s=e._boundingSphere.radius,a=i$e(Ny,s,n),c=1/a;Math.min(c*(2*s),r)<e.minimumPixelSize&&(i=e.minimumPixelSize*a/(2*e._initialRadius))}e._computedScale=l(e.maximumScale)?Math.min(e.maximumScale,i):i}function Qqe(e){if(!e._idDirty)return;e._idDirty=!1;let t=e._id,n=e._pickIds,i=n.length;for(let o=0;o<i;++o)n[o].object.id=t}var qqe=new $(1,0,0,0,0,1,0,-1,0);function $qe(e,t){let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix,i=e.referenceMatrix??n,o=t.context,r=Eqe,s=Gqe;if(s=F.multiply(o.uniformState.view3D,i,s),r=F.getRotation(s,r),r=$.transpose(r,r),e._iblReferenceFrameMatrix=$.multiply(qqe,r,e._iblReferenceFrameMatrix),e.isClippingEnabled()){let a=Lqe;a=F.multiply(o.uniformState.view3D,i,a),a=F.multiply(a,e._clippingPlanes.modelMatrix,a),e._clippingPlanesMatrix=F.inverseTranspose(a,e._clippingPlanesMatrix)}}function e$e(e,t){let n=e._sceneGraph;if(e._updateModelMatrix||e._minimumPixelSize!==0){let o=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;n.updateModelMatrix(o,t),e._updateModelMatrix=!1}e._backFaceCullingDirty&&(n.updateBackFaceCulling(e._backFaceCulling),e._backFaceCullingDirty=!1),e._shadowsDirty&&(n.updateShadows(e._shadows),e._shadowsDirty=!1),e._debugShowBoundingVolumeDirty&&(n.updateShowBoundingVolume(e._debugShowBoundingVolume),e._debugShowBoundingVolumeDirty=!1);let i=!1;l(e.classificationType)||(i=e._userAnimationDirty||e._activeAnimations.update(t)),n.update(t,i),e._userAnimationDirty=!1}function t$e(e){if(!e._showCreditsOnScreenDirty)return;e._showCreditsOnScreenDirty=!1,e._credits.length=0;let t=e._showCreditsOnScreen;if(l(e._credit)){let s=Rt.clone(e._credit);s.showOnScreen=s.showOnScreen||t,e._credits.push(s)}let n=e._resourceCredits,i=n.length;for(let s=0;s<i;s++){let a=Rt.clone(n[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}let o=e._gltfCredits,r=o.length;for(let s=0;s<r;s++){let a=Rt.clone(o[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}}function n$e(e,t){let n=r$e(e,t),i=e.isInvisible(),o=e.hasSilhouette(t),r=e._show&&e._computedScale!==0&&n&&(!i||o),s=t.passes,a=s.render||s.pick&&e.allowPicking;r&&!e._ignoreCommands&&a&&(s$e(e,t),e._sceneGraph.pushDrawCommands(t))}var c8=new ue;function i$e(e,t,n){return c8.center=e,c8.radius=t,n.camera.getPixelSize(c8,n.context.drawingBufferWidth,n.context.drawingBufferHeight)}var xD=new h;function zpe(e,t,n){return function(i){cZ(e.heightReference)&&(i.height+=n.height),t.cartographicToCartesian(i,xD);let o=e._clampedModelMatrix;F.clone(e.modelMatrix,o),o[12]=xD.x,o[13]=xD.y,o[14]=xD.z,e._heightDirty=!0}}var o$e=new h;function r$e(e,t){let n=e.distanceDisplayCondition;if(!l(n))return!0;let i=n.near*n.near,o=n.far*n.far,r;if(t.mode===re.SCENE2D){let a=(t.camera.frustum.right-t.camera.frustum.left)*.5;r=a*a}else{let s=F.getTranslation(e.modelMatrix,o$e);no.computeActualEllipsoidPosition(t,s,s),r=h.distanceSquared(s,t.camera.positionWC)}return r>=i&&r<=o}function s$e(e,t){let n=t.creditDisplay,i=e._credits,o=i.length;for(let r=0;r<o;r++)n.addCreditToNextFrame(i[r])}Vo.prototype.isTranslucent=function(){let e=this.color;return l(e)&&e.alpha>0&&e.alpha<1};Vo.prototype.isInvisible=function(){let e=this.color;return l(e)&&e.alpha===0};function Jpe(e){return e.context.stencilBuffer}Vo.prototype.hasSilhouette=function(e){return Jpe(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!l(this._classificationType)};Vo.prototype.hasSkipLevelOfDetail=function(e){if(!Wr.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};Vo.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return l(e)&&e.enabled&&e.length!==0};Vo.prototype.pick=function(e,t,n,i,o){return kC(this,e,t,n,i,o)};Vo.prototype.isClippingPolygonsEnabled=function(){let e=this._clippingPolygons;return l(e)&&e.enabled&&e.length!==0};Vo.prototype.isDestroyed=function(){return!1};Vo.prototype.destroy=function(){let e=this._loader;l(e)&&e.destroy();let t=this._featureTables;if(l(t)){let r=t.length;for(let s=0;s<r;s++)t[s].destroy()}this.destroyPipelineResources(),this.destroyModelResources(),l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),l(this._terrainProviderChangedCallback)&&(this._terrainProviderChangedCallback(),this._terrainProviderChangedCallback=void 0);let n=this._clippingPlanes;l(n)&&!n.isDestroyed()&&n.owner===this&&n.destroy(),this._clippingPlanes=void 0;let i=this._clippingPolygons;l(i)&&!i.isDestroyed()&&i.owner===this&&i.destroy(),this._clippingPolygons=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0;let o=this._environmentMapManager;!o.isDestroyed()&&o.owner===this&&o.destroy(),this._environmentMapManager=void 0,he(this)};Vo.prototype.destroyPipelineResources=function(){let e=this._pipelineResources;for(let t=0;t<e.length;t++)e[t].destroy();this._pipelineResources.length=0,this._pickIds.length=0};Vo.prototype.destroyModelResources=function(){let e=this._modelResources;for(let t=0;t<e.length;t++)e[t].destroy();this._modelResources.length=0};Vo.fromGltfAsync=async function(e){e=e??B.EMPTY_OBJECT;let t=e.url??e.gltf,n={releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},i=e.basePath??"",o=We.createIfNeeded(i);l(t.asset)?(n.gltfJson=t,n.baseResource=o,n.gltfResource=o):t instanceof Uint8Array?(n.typedArray=t,n.baseResource=o,n.gltfResource=o):n.gltfResource=We.createIfNeeded(t);let r=new au(n),a=l(e.content)?Wr.TILE_GLTF:Wr.GLTF,c=n.gltfResource,d=PI(r,a,e);d.resource=c,d.environmentMapOptions=e.environmentMapOptions;try{await r.load()}catch(b){throw r.destroy(),bt.getError("model",c,b)}let u=e.gltfCallback;l(u)&&u(r.gltfJson);let m=new Vo(d),p=m._resource.credits;if(l(p)){let b=p.length;for(let f=0;f<b;f++)m._resourceCredits.push(Rt.clone(p[f]))}return m};Vo.fromB3dm=async function(e){let t={b3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},n=new y2(t);try{await n.load();let i=PI(n,Wr.TILE_B3DM,e);return new Vo(i)}catch(i){throw n.destroy(),i}};Vo.fromPnts=async function(e){let t={arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,loadAttributesFor2D:e.projectTo2D},n=new vI(t);try{await n.load();let i=PI(n,Wr.TILE_PNTS,e);return new Vo(i)}catch(i){throw n.destroy(),i}};Vo.fromI3dm=async function(e){let t={i3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline},n=new _2(t);try{await n.load();let i=PI(n,Wr.TILE_I3DM,e);return new Vo(i)}catch(i){throw n.destroy(),i}};Vo.fromGeoJson=async function(e){let t={geoJson:e.geoJson},n=new x2(t),i=PI(n,Wr.TILE_GEOJSON,e);return new Vo(i)};var a$e=new U;Vo.prototype.applyColorAndShow=function(e){let t=U.clone(this._color,a$e),n=l(e)&&l(e.color),i=l(e)&&l(e.show);this._color=n?e.color.evaluateColor(void 0,this._color):U.clone(U.WHITE,this._color),this._show=i?e.show.evaluate(void 0):!0,l8(t,this._color)&&this.resetDrawCommands()};Vo.prototype.applyStyle=function(e){let t=this.type===Wr.TILE_PNTS,n=l(this.featureTableId)&&this.featureTables[this.featureTableId].featuresLength>0,i=l(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=l(i)&&l(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),Hpe(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function PI(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,enableVerticalExaggeration:n.enableVerticalExaggeration,minimumPixelSize:n.minimumPixelSize,maximumScale:n.maximumScale,id:n.id,allowPicking:n.allowPicking,clampAnimations:n.clampAnimations,shadows:n.shadows,debugShowBoundingVolume:n.debugShowBoundingVolume,enableDebugWireframe:n.enableDebugWireframe,debugWireframe:n.debugWireframe,cull:n.cull,opaquePass:n.opaquePass,customShader:n.customShader,content:n.content,heightReference:n.heightReference,scene:n.scene,distanceDisplayCondition:n.distanceDisplayCondition,color:n.color,colorBlendAmount:n.colorBlendAmount,colorBlendMode:n.colorBlendMode,edgeDisplayMode:n.edgeDisplayMode,silhouetteColor:n.silhouetteColor,silhouetteSize:n.silhouetteSize,enableShowOutline:n.enableShowOutline,showOutline:n.showOutline,outlineColor:n.outlineColor,clippingPlanes:n.clippingPlanes,clippingPolygons:n.clippingPolygons,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,enablePick:n.enablePick,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var fu=Vo;var d8=class e{constructor(t,n,i){this._tileset=t,this._tile=n,this._resource=i,this._model=void 0,this._metadata=void 0,this._group=void 0,this._ready=!1}get featuresLength(){let t=this._model,n=t.featureTables,i=t.featureTableId;return l(n)&&l(n[i])?n[i].featuresLength:0}get pointsLength(){return this._model.statistics.pointsLength}get trianglesLength(){return this._model.statistics.trianglesLength}get geometryByteLength(){return this._model.statistics.geometryByteLength}get texturesByteLength(){return this._model.statistics.texturesByteLength}get batchTableByteLength(){let t=this._model.statistics;return t.propertyTablesByteLength+t.batchTexturesByteLength}get innerContents(){}get ready(){return this._ready}get tileset(){return this._tileset}get tile(){return this._tile}get url(){return this._resource.getUrlComponent(!0)}get batchTable(){let t=this._model,n=t.featureTables,i=t.featureTableId;if(l(n)&&l(n[i]))return n[i]}get metadata(){return this._metadata}set metadata(t){this._metadata=t}get group(){return this._group}set group(t){this._group=t}getTextureIds(){return this._model.statistics.getTextureIds()}getTextureByteLengthById(t){return this._model.statistics.getTextureByteLengthById(t)}getExtension(t){return this._model.getExtension(t)}getFeature(t){let n=this._model,i=n.featureTableId;return n.featureTables[i].getFeature(t)}hasProperty(t,n){let i=this._model,o=i.featureTableId;return l(o)?i.featureTables[o].hasProperty(t,n):!1}applyDebugSettings(t,n){n=t?n:U.WHITE,this.featuresLength===0?this._model.color=n:l(this.batchTable)&&this.batchTable.setAllColor(n)}applyStyle(t){this._model.style=t}update(t,n){let i=this._model,o=this._tile;i.colorBlendAmount=t.colorBlendAmount,i.colorBlendMode=t.colorBlendMode,i.modelMatrix=o.computedTransform,i.customShader=t.customShader,i.featureIdLabel=t.featureIdLabel,i.instanceFeatureIdLabel=t.instanceFeatureIdLabel,i.lightColor=t.lightColor,i.imageBasedLighting=t.imageBasedLighting,i.backFaceCulling=t.backFaceCulling,i.shadows=t.shadows,i.showCreditsOnScreen=t.showCreditsOnScreen,i.splitDirection=t.splitDirection,i.debugWireframe=t.debugWireframe,i.edgeDisplayMode=t.edgeDisplayMode,i.showOutline=t.showOutline,i.outlineColor=t.outlineColor,i.pointCloudShading=t.pointCloudShading;let r=t.clippingPlanes;i.referenceMatrix=t.clippingPlanesOriginMatrix,l(r)&&o.clippingPlanesDirty&&(i._clippingPlanes=r.enabled&&o._isClipped?r:void 0);let s=t.environmentMapManager;i.environmentMapManager!==r&&(i._environmentMapManager=s),l(r)&&l(i._clippingPlanes)&&i._clippingPlanes!==r&&(i._clippingPlanes=r,i._clippingPlanesState=0);let a=t.clippingPolygons;l(a)&&o.clippingPolygonsDirty&&(i._clippingPolygons=a.enabled&&o._isClippedByPolygon?a:void 0),l(a)&&l(i._clippingPolygons)&&i._clippingPolygons!==a&&(i._clippingPolygons=a,i._clippingPolygonsState=0),i.update(n),!this._ready&&i.ready&&(i.activeAnimations.addAll({loop:Td.REPEAT}),this._ready=!0)}isDestroyed(){return!1}destroy(){return this._model=this._model&&this._model.destroy(),he(this)}static async fromGltf(t,n,i,o){let r=new e(t,n,i),a=XI(t,n,r,{gltf:o,basePath:i}),c=t.vectorClassificationOnly?void 0:t.classificationType;a.classificationType=c;let d=await fu.fromGltfAsync(a);return r._model=d,r}static async fromB3dm(t,n,i,o,r){let s=new e(t,n,i),c=XI(t,n,s,{arrayBuffer:o,byteOffset:r,resource:i}),d=t.vectorClassificationOnly?void 0:t.classificationType;c.classificationType=d;let u=await fu.fromB3dm(c);return s._model=u,s}static async fromI3dm(t,n,i,o,r){let s=new e(t,n,i),c=XI(t,n,s,{arrayBuffer:o,byteOffset:r,resource:i}),d=await fu.fromI3dm(c);return s._model=d,s}static async fromPnts(t,n,i,o,r){let s=new e(t,n,i),c=XI(t,n,s,{arrayBuffer:o,byteOffset:r,resource:i}),d=await fu.fromPnts(c);return s._model=d,s}static async fromGeoJson(t,n,i,o){let r=new e(t,n,i),a=XI(t,n,r,{geoJson:o,resource:i}),c=await fu.fromGeoJson(a);return r._model=c,r}pick(t,n,i){if(!l(this._model)||!this._ready)return;let o=n.verticalExaggeration,r=n.verticalExaggerationRelativeHeight;return this._model.pick(t,n,o,r,ie.WGS84,i)}};function XI(e,t,n,i){let o={cull:!1,releaseGltfJson:!0,opaquePass:Le.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,customShader:e.customShader,content:n,colorBlendMode:e.colorBlendMode,colorBlendAmount:e.colorBlendAmount,lightColor:e.lightColor,imageBasedLighting:e.imageBasedLighting,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,pointCloudShading:e.pointCloudShading,clippingPlanes:e.clippingPlanes,backFaceCulling:e.backFaceCulling,shadows:e.shadows,showCreditsOnScreen:e.showCreditsOnScreen,splitDirection:e.splitDirection,enableDebugWireframe:e._enableDebugWireframe,debugWireframe:e.debugWireframe,projectTo2D:e._projectTo2D,enablePick:e._enablePick,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return vt(i,o)}var pu=d8;var i8n=x(T(),1);var u8=class e{constructor(t,n,i){this._tileset=t,this._tile=n,this._resource=i,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1}get featuresLength(){return 0}get pointsLength(){return 0}get trianglesLength(){return 0}get geometryByteLength(){return 0}get texturesByteLength(){return 0}get batchTableByteLength(){return 0}get innerContents(){}get ready(){return this._ready}get tileset(){return this._tileset}get tile(){return this._tile}get url(){return this._resource.getUrlComponent(!0)}get batchTable(){}get metadata(){return this._metadata}set metadata(t){this._metadata=t}get group(){return this._group}set group(t){this._group=t}static fromJson(t,n,i,o){let r=new e(t,n,i);return r._tileset.loadTileset(r._resource,o,r._tile),r._ready=!0,r}hasProperty(t,n){return!1}getFeature(t){}applyDebugSettings(t,n){}applyStyle(t){}update(t,n){}pick(t,n,i){}isDestroyed(){return!1}destroy(){return he(this)}},YI=u8;var Eti=x(T(),1);var I$n=x(T(),1);var t6n=x(T(),1);var m8n=x(T(),1);function La(e,t,n,i){let o=La._verifyAttributes(t);n=n??0;let r=[],s={},a,c,d=o.length;for(let m=0;m<d;++m){let p=o[m];if(p.vertexBuffer){r.push(p);continue}c=p.usage,a=s[c],l(a)||(a=s[c]=[]),a.push(p)}function u(m,p){return J.getSizeInBytes(p.componentDatatype)-J.getSizeInBytes(m.componentDatatype)}this._allBuffers=[];for(c in s)if(s.hasOwnProperty(c)){a=s[c],a.sort(u);let m=La._vertexSizeInBytes(a),p=a[0].usage,b={vertexSizeInBytes:m,vertexBuffer:void 0,usage:p,needsCommit:!1,arrayBuffer:void 0,arrayViews:La._createArrayViews(a,m)};this._allBuffers.push(b)}this._size=0,this._instanced=i??!1,this._precreated=r,this._context=e,this.writers=void 0,this.va=void 0,this.resize(n)}La._verifyAttributes=function(e){let t=[];for(let i=0;i<e.length;++i){let o=e[i],r={index:o.index??i,enabled:o.enabled??!0,componentsPerAttribute:o.componentsPerAttribute,componentDatatype:o.componentDatatype??J.FLOAT,normalize:o.normalize??!1,vertexBuffer:o.vertexBuffer,usage:o.usage??Fe.STATIC_DRAW};t.push(r)}let n=new Array(t.length);for(let i=0;i<t.length;++i){let r=t[i].index;n[r]=!0}return t};La._vertexSizeInBytes=function(e){let t=0,n=e.length;for(let s=0;s<n;++s){let a=e[s];t+=a.componentsPerAttribute*J.getSizeInBytes(a.componentDatatype)}let i=n>0?J.getSizeInBytes(e[0].componentDatatype):0,o=i>0?t%i:0,r=o===0?0:i-o;return t+=r,t};La._createArrayViews=function(e,t){let n=[],i=0,o=e.length;for(let r=0;r<o;++r){let s=e[r],a=s.componentDatatype;n.push({index:s.index,enabled:s.enabled,componentsPerAttribute:s.componentsPerAttribute,componentDatatype:a,normalize:s.normalize,offsetInBytes:i,vertexSizeInComponentType:t/J.getSizeInBytes(a),view:void 0}),i+=s.componentsPerAttribute*J.getSizeInBytes(a)}return n};La.prototype.resize=function(e){this._size=e;let t=this._allBuffers;this.writers=[];for(let n=0,i=t.length;n<i;++n){let o=t[n];La._resize(o,this._size),La._appendWriters(this.writers,o)}m8(this)};La._resize=function(e,t){if(e.vertexSizeInBytes>0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(l(e.arrayBuffer)){let r=new Uint8Array(n),s=new Uint8Array(e.arrayBuffer),a=s.length;for(let c=0;c<a;++c)r[c]=s[c]}let i=e.arrayViews,o=i.length;for(let r=0;r<o;++r){let s=i[r];s.view=J.createArrayBufferView(s.componentDatatype,n,s.offsetInBytes)}e.arrayBuffer=n}};var c$e=[function(e,t,n){return function(i,o){t[i*n]=o,e.needsCommit=!0}},function(e,t,n){return function(i,o,r){let s=i*n;t[s]=o,t[s+1]=r,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s){let a=i*n;t[a]=o,t[a+1]=r,t[a+2]=s,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s,a){let c=i*n;t[c]=o,t[c+1]=r,t[c+2]=s,t[c+3]=a,e.needsCommit=!0}}];La._appendWriters=function(e,t){let n=t.arrayViews,i=n.length;for(let o=0;o<i;++o){let r=n[o];e[r.index]=c$e[r.componentsPerAttribute-1](t,r.view,r.vertexSizeInComponentType)}};La.prototype.commit=function(e){let t=!1,n=this._allBuffers,i,o,r;for(o=0,r=n.length;o<r;++o)i=n[o],t=l$e(this,i)||t;if(t||!l(this.va)){m8(this);let s=this.va=[],a=W.SIXTY_FOUR_KILOBYTES-4,c=l(e)&&!this._instanced?Math.ceil(this._size/a):1;for(let d=0;d<c;++d){let u=[];for(o=0,r=n.length;o<r;++o){i=n[o];let m=d*(i.vertexSizeInBytes*a);La._appendAttributes(u,i,m,this._instanced)}u=u.concat(this._precreated),s.push({va:new wn({context:this._context,attributes:u,indexBuffer:e}),indicesCount:1.5*(d!==c-1?a:this._size%a)})}}};function l$e(e,t){if(t.needsCommit&&t.vertexSizeInBytes>0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=l(n);if(!o||n.sizeInBytes<i)return o&&n.destroy(),t.vertexBuffer=$e.createVertexBuffer({context:e._context,typedArray:t.arrayBuffer,usage:t.usage}),t.vertexBuffer.vertexArrayDestroyable=!1,!0;t.vertexBuffer.copyFromArrayView(t.arrayBuffer)}return!1}La._appendAttributes=function(e,t,n,i){let o=t.arrayViews,r=o.length;for(let s=0;s<r;++s){let a=o[s];e.push({index:a.index,enabled:a.enabled,componentsPerAttribute:a.componentsPerAttribute,componentDatatype:a.componentDatatype,normalize:a.normalize,vertexBuffer:t.vertexBuffer,offsetInBytes:n+a.offsetInBytes,strideInBytes:t.vertexSizeInBytes,instanceDivisor:i?1:0})}};La.prototype.subCommit=function(e,t){let n=this._allBuffers;for(let i=0,o=n.length;i<o;++i)d$e(n[i],e,t)};function d$e(e,t,n){if(e.needsCommit&&e.vertexSizeInBytes>0){let i=e.vertexSizeInBytes*t,o=e.vertexSizeInBytes*n;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,i,o),i)}}La.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t)e[t].needsCommit=!1};function m8(e){let t=e.va;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].va.destroy();e.va=void 0}La.prototype.isDestroyed=function(){return!1};La.prototype.destroy=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t){let i=e[t];i.vertexBuffer=i.vertexBuffer&&i.vertexBuffer.destroy()}return m8(this),he(this)};var yb=La;var f8n=x(T(),1),NI=`uniform sampler2D u_atlas; +uniform float u_coarseDepthTestDistance; +uniform float u_threePointDepthTestDistance; + +#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_textureCoordinates; +in vec4 v_pickColor; +in vec4 v_color; +flat in vec2 v_splitDirectionAndEllipsoidDepthEC; + +#ifdef SDF +in vec4 v_outlineColor; +in float v_outlineWidth; +#endif + +in vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +const float SHIFT_LEFT1 = 2.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +float getGlobeDepthAtCoords(vec2 st) +{ + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + if (logDepthOrDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} + +#ifdef SDF + +// Get the distance from the edge of a glyph at a given position sampling an SDF texture. +float getDistance(vec2 position) +{ + return texture(u_atlas, position).r; +} + +// Samples the sdf texture at the given position and produces a color based on the fill color and the outline. +vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing) +{ + float distance = getDistance(position); + + if (outlineWidth > 0.0) + { + // Don't get the outline edge exceed the SDF_EDGE + float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE); + float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + vec4 sdfColor = mix(outlineColor, v_color, outlineFactor); + float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance); + return vec4(sdfColor.rgb, sdfColor.a * alpha); + } + else + { + float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + return vec4(v_color.rgb, v_color.a * alpha); + } +} +#endif + +bool getDepthTestEnabled() { + float temp = v_compressed.y; + temp = temp * SHIFT_RIGHT1; + float temp2 = (temp - floor(temp)) * SHIFT_LEFT1; + return temp2 != 0.0; +} + +float getRelativeEyeDepth(float eyeDepth, float distanceToEllipsoid, float epsilon) { + float depthDifferential = eyeDepth - distanceToEllipsoid; + float depthRatio = abs(depthDifferential / distanceToEllipsoid); + if (depthRatio < epsilon) { + // The approximations are imprecise, so use an epsilon check for small value differences and assume a value of 0.0 + return 0.0; + } + + return depthDifferential; +} + +// Extra manual depth testing is done to allow more control over how a billboard is occluded +// by the globe when near and far from the camera. +void doDepthTest(float eyeDepth, float globeDepth) { + +#ifdef VS_THREE_POINT_DEPTH_CHECK + // Since discarding vertices is not possible, the vertex shader sets eyeDepth to 0 to indicate the depth test failed. Apply the discard here. + if (eyeDepth > -u_threePointDepthTestDistance) { + if (eyeDepth == 0.0) { + discard; + } + return; + } +#endif + bool useGlobeDepth = eyeDepth > -u_coarseDepthTestDistance; + if (useGlobeDepth && globeDepth == 0.0) { + // Pixel is not on the globe, so there is no distance to compare against. Pass. + return; + } + + // If the camera is close, compare against the globe depth texture that includes depth from the 3D tile pass. + if (useGlobeDepth && getRelativeEyeDepth(eyeDepth, globeDepth, czm_epsilon1) < 0.0) { + discard; + } +} + +#ifdef LOG_DEPTH +void writeDepth(float eyeDepth, float globeDepth, float distanceToEllipsoid) { + // If we've made it here, the manual depth test above determined that this fragment should be visible. + // But the automatic depth test must still run in order to write the result to the depth buffer, and its results may + // disagree with our manual depth test's results. To prefer our manual results when in front of the globe, apply an offset towards the camera. + + float depthArg = v_depthFromNearPlusOne; + + if (globeDepth != 0.0 && getRelativeEyeDepth(eyeDepth, distanceToEllipsoid, czm_epsilon3) > 0.0) { + float globeDepthFromNearPlusOne = (-globeDepth - czm_currentFrustum.x) + 1.0; + float nudge = max(globeDepthFromNearPlusOne * 5e-6, czm_epsilon7); + float globeOnTop = max(1.0, globeDepthFromNearPlusOne - nudge); + depthArg = min(depthArg, globeOnTop); + } + + czm_writeLogDepth(depthArg); +} +#endif + +void main() +{ + if (v_splitDirectionAndEllipsoidDepthEC.x < 0.0 && gl_FragCoord.x > czm_splitPosition) { + discard; + } + if (v_splitDirectionAndEllipsoidDepthEC.x > 0.0 && gl_FragCoord.x < czm_splitPosition) { + discard; + } + + if (getDepthTestEnabled()) { + vec2 fragSt = gl_FragCoord.xy / czm_viewport.zw; + float eyeDepth = v_compressed.x; + float globeDepth = getGlobeDepthAtCoords(fragSt); + float distanceToEllipsoid = -v_splitDirectionAndEllipsoidDepthEC.y; + doDepthTest(eyeDepth, globeDepth); + + #ifdef LOG_DEPTH + writeDepth(eyeDepth, globeDepth, distanceToEllipsoid); + #endif + } + + vec4 color = texture(u_atlas, v_textureCoordinates); + +#ifdef SDF + float outlineWidth = v_outlineWidth; + vec4 outlineColor = v_outlineColor; + + // Get the current distance + float distance = getDistance(v_textureCoordinates); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float smoothing = fwidth(distance); + // Get an offset that is approximately half the distance to the neighbor pixels + // 0.354 is approximately half of 1/sqrt(2) + vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates)); + + // Sample the center point + vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); + + // Sample the 4 neighbors + vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + + // Equally weight the center sample and the 4 neighboring samples + color = (center + color1 + color2 + color3 + color4)/5.0; +#else + // If no derivatives available (IE 10?), just do a single sample + float smoothing = 1.0/32.0; + color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); +#endif + + color = czm_gammaCorrect(color); +#else + color = czm_gammaCorrect(color); + color *= czm_gammaCorrect(v_color); +#endif + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + +#ifdef VECTOR_TILE + color *= u_highlightColor; +#endif + out_FragColor = color; +} +`;var b8n=x(T(),1),wI=`uniform float u_threePointDepthTestDistance; +in vec2 direction; +in vec4 positionHighAndScale; +in vec4 positionLowAndRotation; +in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset) +in vec4 compressedAttribute1; // aligned axis, translucency by distance, image width +in vec4 compressedAttribute2; // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free +in vec4 eyeOffset; // eye offset in meters, 4 bytes free (texture range) +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, farScale +in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistanceSq, dimensions +in vec2 sdf; // sdf outline color (rgb) and width (w) +in float splitDirection; // splitDirection +#ifdef VS_THREE_POINT_DEPTH_CHECK +in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates +#endif +#ifdef VECTOR_TILE +in float a_batchId; +#endif + +out vec2 v_textureCoordinates; +out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize + +out vec4 v_pickColor; +out vec4 v_color; +flat out vec2 v_splitDirectionAndEllipsoidDepthEC; // x: splitDirection, y: ellipsoid depth in eye coordinates +#ifdef SDF +out vec4 v_outlineColor; +out float v_outlineWidth; +#endif + +const float UPPER_BOUND = 32768.0; + +const float SHIFT_LEFT16 = 65536.0; +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_LEFT7 = 128.0; +const float SHIFT_LEFT5 = 32.0; +const float SHIFT_LEFT3 = 8.0; +const float SHIFT_LEFT2 = 4.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; +const float SHIFT_RIGHT7 = 1.0 / 128.0; +const float SHIFT_RIGHT5 = 1.0 / 32.0; +const float SHIFT_RIGHT3 = 1.0 / 8.0; +const float SHIFT_RIGHT2 = 1.0 / 4.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +vec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp) +{ + // Note the halfSize cannot be computed in JavaScript because it is sent via + // compressed vertex attributes that coerce it to an integer. + vec2 halfSize = imageSize * scale * 0.5; + halfSize *= ((direction * 2.0) - 1.0); + + vec2 originTranslate = origin * abs(halfSize); + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + if (validAlignedAxis || rotation != 0.0) + { + float angle = rotation; + if (validAlignedAxis) + { + vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0); + angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) / + (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y)); + } + + float cosTheta = cos(angle); + float sinTheta = sin(angle); + rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta); + halfSize = rotationMatrix * halfSize; + } + else + { + rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); + } +#endif + + mpp = czm_metersPerPixel(positionEC); + positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp); + positionEC.xy += (translate + pixelOffset) * mpp; + + return positionEC; +} + +#ifdef VS_THREE_POINT_DEPTH_CHECK +float getGlobeDepth(vec4 positionEC) +{ + vec4 posWC = czm_eyeToWindowCoordinates(positionEC); + + float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw)); + + if (globeDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif +void main() +{ + // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndScale.xyz; + vec3 positionLow = positionLowAndRotation.xyz; + float scale = positionHighAndScale.w; + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + float rotation = positionLowAndRotation.w; +#else + float rotation = 0.0; +#endif + + float compressed = compressedAttribute0.x; + + vec2 pixelOffset; + pixelOffset.x = floor(compressed * SHIFT_RIGHT7); + compressed -= pixelOffset.x * SHIFT_LEFT7; + pixelOffset.x -= UPPER_BOUND; + + vec2 origin; + origin.x = floor(compressed * SHIFT_RIGHT5); + compressed -= origin.x * SHIFT_LEFT5; + + origin.y = floor(compressed * SHIFT_RIGHT3); + compressed -= origin.y * SHIFT_LEFT3; + + origin -= vec2(1.0); + + float show = floor(compressed * SHIFT_RIGHT2); + compressed -= show * SHIFT_LEFT2; + + vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w); + vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w); + vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange; + + float temp = compressedAttribute0.y * SHIFT_RIGHT8; + pixelOffset.y = -(floor(temp) - UPPER_BOUND); + + vec2 translate; + translate.y = (temp - floor(temp)) * SHIFT_LEFT16; + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + translate.x = floor(temp) - UPPER_BOUND; + translate.x *= SHIFT_RIGHT2; // undo translateX scaling (helps preserve subpixel precision, see BillboardCollection.js attribute writer for more info) + + translate.y += (temp - floor(temp)) * SHIFT_LEFT8; + translate.y -= UPPER_BOUND; + translate.y *= SHIFT_RIGHT2; + + temp = compressedAttribute1.x * SHIFT_RIGHT8; + float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2); + + vec2 imageSize = vec2(floor(temp), temp2); + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + +#ifdef VS_THREE_POINT_DEPTH_CHECK + temp = compressedAttribute3.w; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); +#endif + +#ifdef ALIGNED_AXIS + vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8)); + temp = compressedAttribute2.z * SHIFT_RIGHT5; + bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0; +#else + vec3 alignedAxis = vec3(0.0); + bool validAlignedAxis = false; +#endif + + vec4 color = czm_decodeRGB8(compressedAttribute2.x); + vec4 pickColor = czm_decodeRGB8(compressedAttribute2.y); + + temp = compressedAttribute2.z * SHIFT_RIGHT8; + bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0; + temp = floor(temp) * SHIFT_RIGHT8; + + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.a /= 255.0; + + color.a = floor(temp); + color.a /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + + positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz); + positionEC.xyz *= show; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq); + scale *= distanceScale; + translate *= distanceScale; + // push vertex behind near plane for clipping + if (scale == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef EYE_DISTANCE_PIXEL_OFFSET + float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq); + pixelOffset *= pixelOffsetScale; +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = compressedAttribute3.x; + float farSq = compressedAttribute3.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + positionEC.xyz = vec3(0.0); + } +#endif + + mat2 rotationMatrix; + float mpp; + + float enableDepthCheck = 1.0; +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistanceSq = compressedAttribute3.z; + if (disableDepthTestDistanceSq == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistanceSq = czm_minimumDisableDepthTestDistance; + } + + if (lengthSq < disableDepthTestDistanceSq || disableDepthTestDistanceSq < 0.0) + { + enableDepthCheck = 0.0; + } +#endif + + v_splitDirectionAndEllipsoidDepthEC.y = czm_infinity; + vec3 ellipsoidCenter = czm_view[3].xyz; + vec3 rayDirection = normalize(positionEC.xyz); + czm_ray ray = czm_ray(vec3(0.0), rayDirection); + vec3 ellipsoid_inverseRadii = czm_ellipsoidInverseRadii; + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii); + + if (!czm_isEmpty(intersection)) + { + v_splitDirectionAndEllipsoidDepthEC.y = intersection.start; + } + + v_compressed.y = enableDepthCheck; + +#ifdef VS_THREE_POINT_DEPTH_CHECK +if (lengthSq < (u_threePointDepthTestDistance * u_threePointDepthTestDistance) && (enableDepthCheck == 1.0)) { + float depthsilon = 10.0; + vec2 depthOrigin; + // Horizontal origin for labels comes from a special attribute. If that value is 0, this is a billboard - use the regular origin. + // Otherwise, transform the label origin to -1, 0, 1 (right, center, left). + depthOrigin.x = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2)); + depthOrigin.x = czm_branchFreeTernary(depthOrigin.x == 0.0, origin.x, depthOrigin.x - 2.0); + depthOrigin.y = origin.y; + + vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), depthOrigin, vec2(0.0), pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth1 = getGlobeDepth(pEC1); + + if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1) + { + vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), depthOrigin, vec2(0.0), pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth2 = getGlobeDepth(pEC2); + + if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2) + { + vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), depthOrigin, vec2(0.0), pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth3 = getGlobeDepth(pEC3); + if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3) + { + // "Discard" this vertex, as three key points fail depth test. + positionEC.xyz = vec3(0.0); + } + } + } +} +#endif + // Write out the eyespace depth before applying the screen space offset, but after potentially "discarding" the vertex + // by setting its eyespace position to zero, via the three-point depth test above. + v_compressed.x = positionEC.z; + + positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + gl_Position = czm_projection * positionEC; + v_textureCoordinates = textureCoordinates; + +#ifdef LOG_DEPTH + czm_vertexLogDepth(); +#endif + +#ifdef DISABLE_DEPTH_DISTANCE + + if (disableDepthTestDistanceSq != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + // disableDepthTestDistanceSq can be less than zero if it's explicitly set to -1 in JS (as a sentinel value equivalent to infinity) + if (!clipped && (disableDepthTestDistanceSq < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistanceSq))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = 1.0; +#endif + } + } +#endif + +#ifdef SDF + vec4 outlineColor = czm_decodeRGB8(sdf.x); + float outlineWidth; + + temp = sdf.y; + temp = temp * SHIFT_RIGHT8; + float temp3 = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.a = floor(temp); + outlineColor.a /= 255.0; + + v_outlineWidth = outlineWidth / 255.0; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency; +#endif + + v_pickColor = pickColor; + + v_color = color; + v_color.a *= translucency; + v_splitDirectionAndEllipsoidDepthEC.x = splitDirection; +} +`;var H8n=x(T(),1);var S8n=x(T(),1);var y8n=x(T(),1),u$e=Object.freeze({NONE:0,LOADING:2,LOADED:3,ERROR:4,FAILED:5}),Es=u$e;function Oh(e){this._billboardCollection=e,this._id=void 0,this._loadState=Es.NONE,this._loadError=void 0,this._index=-1,this._width=void 0,this._height=void 0,this._hasSubregion=!1,this.dirty=!1}Object.defineProperties(Oh.prototype,{loadError:{get:function(){return this._loadError}},loadState:{get:function(){return this._loadState}},ready:{get:function(){return this._loadState===Es.LOADED}},hasImage:{get:function(){return this._loadState!==Es.NONE}},id:{get:function(){return this._id}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});Oh.prototype.unload=async function(){this._loadState!==Es.NONE&&(this._id=void 0,this._loadError=void 0,this._loadState=Es.NONE,this._index=-1,this._width=void 0,this._height=void 0,this.dirty=!0)};Oh.prototype.loadImage=async function(e,t,n,i){if(this._id===e)return;let o=this._billboardCollection,r=o.billboardTextureCache,s=r.get(e);if(l(s)&&t.loadState===Es.LOADING||t.loadState===Es.LOADED){Oh.clone(s,this);return}l(s)||(s=new Oh(o),r.set(e,s)),s._id=this._id=e,s._loadState=this._loadState=Es.LOADING,s._loadError=this._loadError=void 0;let a,c=this._billboardCollection.textureAtlas;try{let u=c.addImage(e,t,n,i);typeof u=="number"?a=u:a=await u}catch(u){if(s._loadState=Es.ERROR,s._loadError=u,this._id!==e)return;this._loadState=Es.ERROR,this._loadError=u;return}if(!l(a)||a===-1){if(s._loadState=Es.FAILED,s._index=-1,this._id!==e)return;this._loadState=Es.FAILED,this._index=-1;return}s._index=a,s._loadState=Es.LOADED;let d=c.rectangles[a];s._width=d.width,s._height=d.height,this._id===e&&(this._index=a,this._loadState=Es.LOADED,this._width=d.width,this._height=d.height,this.dirty=!0)};Oh.prototype.addImageSubRegion=function(e,t){this._id=e,this._loadError=void 0,this._hasSubregion=!0;let i=this._billboardCollection.textureAtlas.addImageSubRegion(e,t);if(typeof i=="number"){this.setImageSubRegion(i,t);return}this.loadImageSubRegion(e,t,i)};Oh.prototype.loadImageSubRegion=async function(e,t,n){let i;try{this._loadState=Es.LOADING,i=await n}catch(o){this._loadState=Es.ERROR,this._loadError=o;return}this._id===e&&(this._loadState=Es.LOADED,this.setImageSubRegion(i,t))};Oh.prototype.setImageSubRegion=function(e,t){if(this._index!==e){if(!l(e)||e===-1){this._loadState=Es.FAILED,this._index=-1,this._width=void 0,this._height=void 0;return}this._width=t.width,this._height=t.height,this._index=e,this.dirty=!0}};Oh.prototype.computeTextureCoordinates=function(e){return this._billboardCollection.textureAtlas.computeTextureCoordinates(this._index,e)};Oh.clone=function(e,t){if(t._id=e._id,t._loadState=e._loadState,t._loadError=void 0,t._index=e._index,t._width=e._width,t._height=e._height,t._hasSubregion=e._hasSubregion,e.ready){t.dirty=!0;return}return(async()=>{let i=e._id;await e._billboardCollection.textureAtlas._indexPromiseById.get(i),t._id===i&&(e._hasSubregion&&await Promise.resolve(),t._id=i,t._loadState=e._loadState,t._loadError=e._loadError,t._index=e._index,t._width=e._width,t._height=e._height,t.dirty=!0)})(),t};var xb=Oh;function Gi(e,t){e=e??B.EMPTY_OBJECT;let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Bt.clone(n)),l(i)&&(i=Bt.clone(i)),l(o)&&(o=Bt.clone(o)),l(r)&&(r=Ut.clone(r)),this._show=e.show??!0,this._position=h.clone(e.position??h.ZERO),this._actualPosition=h.clone(this._position),this._pixelOffset=k.clone(e.pixelOffset??k.ZERO),this._translate=new k(0,0),this._eyeOffset=h.clone(e.eyeOffset??h.ZERO),this._heightReference=e.heightReference??st.NONE,this._verticalOrigin=e.verticalOrigin??kn.CENTER,this._horizontalOrigin=e.horizontalOrigin??Fi.CENTER,this._scale=e.scale??1,this._color=U.clone(e.color??U.WHITE),this._rotation=e.rotation??0,this._alignedAxis=h.clone(e.alignedAxis??h.ZERO),this._width=e.width,this._height=e.height,this._scaleByDistance=o,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._sizeInMeters=e.sizeInMeters??!1,this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=e.collection??t,this._pickId=void 0,this._pickPrimitive=e._pickPrimitive??this,this._billboardCollection=t,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageTexture=new xb(t),this._imageId=e.imageId,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;let s=e.image;l(s)&&(this._computeImageTextureProperties(e.imageId,s),this._imageTexture.loadImage(this._imageId,s,this._imageWidth,this._imageHeight)),l(e.imageSubRegion)&&this._imageTexture.addImageSubRegion(this._imageId,e.imageSubRegion),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=re.SCENE3D,this._clusterShow=!0,this._outlineColor=U.clone(e.outlineColor??U.BLACK),this._outlineWidth=e.outlineWidth??0,this._updateClamping(),this._splitDirection=e.splitDirection??Gr.NONE,this._positionFromParent=!1}var jpe=Gi.SHOW_INDEX=0,_D=Gi.POSITION_INDEX=1,n0e=Gi.PIXEL_OFFSET_INDEX=2,m$e=Gi.EYE_OFFSET_INDEX=3,h$e=Gi.HORIZONTAL_ORIGIN_INDEX=4,f$e=Gi.VERTICAL_ORIGIN_INDEX=5,p$e=Gi.SCALE_INDEX=6,Qpe=Gi.IMAGE_INDEX_INDEX=7,qpe=Gi.COLOR_INDEX=8,b$e=Gi.ROTATION_INDEX=9,g$e=Gi.ALIGNED_AXIS_INDEX=10,y$e=Gi.SCALE_BY_DISTANCE_INDEX=11,x$e=Gi.TRANSLUCENCY_BY_DISTANCE_INDEX=12,T$e=Gi.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,_$e=Gi.DISTANCE_DISPLAY_CONDITION=14,S$e=Gi.DISABLE_DEPTH_DISTANCE=15;Gi.TEXTURE_COORDINATE_BOUNDS=16;var $pe=Gi.SDF_INDEX=17,A$e=Gi.SPLIT_DIRECTION_INDEX=18;Gi.NUMBER_OF_PROPERTIES=19;function Cr(e,t){let n=e._billboardCollection;l(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(Gi.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Cr(this,jpe))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),this._updateClamping(),Cr(this,_D))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),Cr(this,_D))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;k.equals(t,e)||(k.clone(e,t),Cr(this,n0e))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Bt.equals(t,e)||(this._scaleByDistance=Bt.clone(e,t),Cr(this,y$e))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Bt.equals(t,e)||(this._translucencyByDistance=Bt.clone(e,t),Cr(this,x$e))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Bt.equals(t,e)||(this._pixelOffsetScaleByDistance=Bt.clone(e,t),Cr(this,T$e))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;h.equals(t,e)||(h.clone(e,t),Cr(this,m$e))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,Cr(this,h$e))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,Cr(this,f$e))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,Cr(this,p$e))}},color:{get:function(){return this._color},set:function(e){let t=this._color;U.equals(t,e)||(U.clone(e,t),Cr(this,qpe))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,Cr(this,b$e))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;h.equals(t,e)||(h.clone(e,t),Cr(this,g$e))}},width:{get:function(){return this._width??this._imageTexture.width},set:function(e){this._width!==e&&(this._width=e,Cr(this,Qpe))}},height:{get:function(){return this._height??this._imageTexture.height},set:function(e){this._height!==e&&(this._height=e,Cr(this,Qpe))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,Cr(this,qpe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Ut.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Ut.clone(e,this._distanceDisplayCondition),Cr(this,_$e))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Cr(this,S$e))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,l(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageTexture.id},set:function(e){if(!l(e)){this._imageTexture.unload();return}this._computeImageTextureProperties(void 0,e),this._imageTexture.loadImage(this._imageId,e,this._imageWidth,this._imageHeight)}},ready:{get:function(){return this._imageTexture.ready}},loadError:{get:function(){return this._imageTexture.loadError}},textureDirty:{get:function(){return this._imageTexture.dirty},set:function(e){this._imageTexture.dirty=e}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition),Cr(this,_D)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Cr(this,jpe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;U.equals(t,e)||(U.clone(e,t),Cr(this,$pe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Cr(this,$pe))}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,Cr(this,A$e))}}});Gi.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};Gi.prototype._updateClamping=function(){Gi._updateClamping(this._billboardCollection,this)};var SD=new fe;Gi._updateClamping=function(e,t){if(!l(e)||!l(e._scene))return;let n=e._scene,i=n.ellipsoid??ie.default,o=n.frameState.mode,r=o!==t._mode;if(t._mode=o,(t._heightReference===st.NONE||r)&&l(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===st.NONE||t._positionFromParent||!l(t._position))return;l(t._removeCallbackFunc)&&t._removeCallbackFunc();let s=i.cartesianToCartographic(t._position);if(!l(s)){t._actualClampedPosition=void 0;return}function a(d){let u=i.cartographicToCartesian(d,t._clampedPosition);cZ(t._heightReference)&&(t._mode===re.SCENE3D?(d.height+=s.height,i.cartographicToCartesian(d,u)):u.x+=s.height),t._clampedPosition=u}t._removeCallbackFunc=n.updateHeight(s,a,t._heightReference),fe.clone(s,SD);let c=n.getHeight(s,t._heightReference);l(c)&&(SD.height=c),a(SD)};Gi.prototype.computeTextureCoordinates=function(e){return this._imageTexture.computeTextureCoordinates(e)};Gi.prototype.setImage=function(e,t){this._computeImageTextureProperties(e,t),this._imageTexture.loadImage(this._imageId,t,this._imageWidth,this._imageHeight)};Gi.prototype.setImageTexture=function(e){xb.clone(e,this._imageTexture)};var e0e=512;Gi.prototype._computeImageTextureProperties=function(e,t){if(this._imageWidth=void 0,this._imageHeight=void 0,!l(t)){this._imageId=zn();return}let n;typeof t=="string"?n=t:t instanceof We?n=t._url:l(t.src)&&(n=t.src),this._imageId=e??n??zn(),l(this._width)&&l(this._height)&&!this._sizeInMeters&&Z$e(n)&&(this._imageWidth=Math.min(this._width,e0e),this._imageHeight=Math.min(this._height,e0e))};function Z$e(e){return l(e)?uh(e)?e.startsWith("data:image/svg+xml"):T0(e)==="svg":!1}Gi.prototype.setImageSubRegion=function(e,t){this._imageTexture.addImageSubRegion(e,t)};Gi.prototype._setTranslate=function(e){let t=this._translate;k.equals(t,e)||(k.clone(e,t),Cr(this,n0e))};Gi.prototype._getActualPosition=function(){return l(this._clampedPosition)?this._clampedPosition:this._actualPosition};Gi.prototype._setActualPosition=function(e){l(this._clampedPosition)||h.clone(e,this._actualPosition),Cr(this,_D)};var t0e=new ce;Gi._computeActualPosition=function(e,t,n,i){return l(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===re.SCENE3D?t:(F.multiplyByPoint(i,t,t0e),no.computeActualEllipsoidPosition(n,t0e))};var i0e=new h;Gi._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=F.multiplyByPoint(e,t,i0e),a=no.worldWithEyeOffsetToWindowCoordinates(o,s,n,r);if(l(a))return k.add(a,i,a),a};var TD=new k(0,0);Gi.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;l(t)||(t=new k),k.clone(this._pixelOffset,TD),k.add(TD,this._translate,TD);let i=n.modelMatrix,o=this._position;if(l(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==re.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,SD);o=a.cartographicToCartesian(c,i0e),i=F.IDENTITY}return Gi._computeScreenSpacePosition(i,o,this._eyeOffset,TD,e,t)};Gi.getScreenSpaceBoundingBox=function(e,t,n){let i=e.width,o=e.height,r=e.scale;i*=r,o*=r;let s=t.x;e.horizontalOrigin===Fi.RIGHT?s-=i:e.horizontalOrigin===Fi.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===kn.BOTTOM||e.verticalOrigin===kn.BASELINE?a-=o:e.verticalOrigin===kn.CENTER&&(a-=o*.5),l(n)||(n=new it),n.x=s,n.y=a,n.width=i,n.height=o,n};Gi.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&this.image===e.image&&this._show===e._show&&this._scale===e._scale&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&U.equals(this._color,e._color)&&k.equals(this._pixelOffset,e._pixelOffset)&&k.equals(this._translate,e._translate)&&h.equals(this._eyeOffset,e._eyeOffset)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Bt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Ut.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._splitDirection===e._splitDirection};Gi.prototype._destroy=function(){l(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var Go=Gi;var J8n=x(T(),1),o0e={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};Object.freeze(o0e);var Wi=o0e;var Q8n=x(T(),1),C$e={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},Wa=Object.freeze(C$e);var b7n=x(T(),1);var t7n=x(T(),1);function MI({x:e,y:t,width:n,height:i}){this.rectangle=new it(e,t,n,i),this.childNode1=void 0,this.childNode2=void 0,this.index=void 0}function h8({width:e,height:t,borderPadding:n}){this._width=e,this._height=t,this._borderPadding=n,this._root=new MI({x:n,y:n,width:e-2*n,height:t-2*n})}h8.prototype.pack=function(e,{width:t,height:n}){let i=this._findNode(this._root,{width:t,height:n});if(l(i))return i.index=e,i};h8.prototype._findNode=function(e,{width:t,height:n}){if(l(e)){if(!l(e.childNode1)&&!l(e.childNode2)){if(l(e.index))return;let{rectangle:i}=e,o=i.width,r=i.height,s=o-t,a=r-n;if(s<0||a<0)return;if(s===0&&a===0)return e;let c=this._borderPadding;if(s>a){e.childNode1=new MI({x:i.x,y:i.y,width:t,height:r});let u=s-c;return u>0&&(e.childNode2=new MI({x:i.x+t+c,y:i.y,width:u,height:r})),this._findNode(e.childNode1,{width:t,height:n})}e.childNode1=new MI({x:i.x,y:i.y,width:o,height:n});let d=a-c;return d>0&&(e.childNode2=new MI({x:i.x,y:i.y+n+c,width:o,height:d})),this._findNode(e.childNode1,{width:t,height:n})}return this._findNode(e.childNode1,{width:t,height:n})||this._findNode(e.childNode2,{width:t,height:n})}};var UC=h8;var r0e=16;function kl(e){e=e??B.EMPTY_OBJECT;let t=e.borderWidthInPixels??1,n=e.initialSize??new k(r0e,r0e);this._pixelFormat=e.pixelFormat??Qe.RGBA,this._sampler=e.sampler,this._borderWidthInPixels=t,this._initialSize=n,this._texturePacker=void 0,this._rectangles=[],this._subRegions=new Map,this._guid=zn(),this._imagesToAddQueue=[],this._indexById=new Map,this._indexPromiseById=new Map,this._nextIndex=0}Object.defineProperties(kl.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},rectangles:{get:function(){return this._rectangles}},texture:{get:function(){return this._texture}},pixelFormat:{get:function(){return this._pixelFormat}},sampler:{get:function(){return this._sampler}},numberOfImages:{get:function(){return this._nextIndex}},guid:{get:function(){return this._guid}},sizeInBytes:{get:function(){return l(this._texture)?this._texture.sizeInBytes:0}}});kl.prototype.computeTextureCoordinates=function(e,t){let n=this._texture,i=this._rectangles[e];if(l(t)||(t=new it),!l(i))return t.x=0,t.y=0,t.width=0,t.height=0,t;let o=n.width,r=n.height,s=i.width,a=i.height,c=i.x,d=i.y,u=this._subRegions.get(e);if(l(u)){let m=this._rectangles[u];c+=m.x,d+=m.y}return t.x=c/o,t.y=d/r,t.width=s/o,t.height=a/r,t};kl.prototype._copyFromTexture=function(e,t,n,i){let o=this._pixelFormat,r=this._sampler,s=new Ft({context:e,height:n,width:t,pixelFormat:o,sampler:r}),a=e._gl,c=s._textureTarget,d=this._texture,u=new is({context:e,colorTextures:[d],destroyAttachments:!1});a.activeTexture(a.TEXTURE0),a.bindTexture(c,s._texture),u._bind();let m=this.rectangles,p=this._subRegions;for(let b=0;b<m.length;++b){let f=i[b],y=m[b];if(!l(f)||!l(y)||l(p.get(b)))continue;let{x:_,y:S,width:A,height:Z}=f;a.copyTexSubImage2D(c,0,_,S,y.x,y.y,A,Z)}return a.bindTexture(c,null),s._initialized=!0,u._unBind(),u.destroy(),s};kl.prototype._resize=function(e,t=0){let n=this._borderWidthInPixels,i=this._rectangles,o=this._imagesToAddQueue,r=this._texture,s=r.width,a=r.height,c=this._subRegions,d=i.map((_,S)=>new s0e({index:S,image:_})).filter((_,S)=>l(_.image)&&!l(c.get(S))),u=0,m=0,p=0;for(let _=t;_<o.length;++_){let{width:S,height:A}=o[_].image;u=Math.max(u,S),m=Math.max(m,A),p+=S*A,d.push(o[_])}for(s=W.nextPowerOfTwo(Math.max(u,s)),a=W.nextPowerOfTwo(Math.max(m,a));p>=s*a;)s>a?a*=2:s*=2;d.sort(({image:_},{image:S})=>S.height*S.width-_.height*_.width);let b=new Array(this._nextIndex);for(let _ of this._subRegions.keys())l(c.get(_))&&(b[_]=i[_]);let f,y=!1;for(;!y;){f=new UC({height:a,width:s,borderPadding:n});let _;for(_=0;_<d.length;++_){let{index:S,image:A}=d[_];if(!l(A))continue;let Z=f.pack(S,A);if(!l(Z)){s>a?a*=2:s*=2;break}b[S]=Z.rectangle}y=_===d.length}this._texturePacker=f,this._texture=this._copyFromTexture(e,s,a,b),r.destroy(),this._rectangles=b,this._guid=zn()};kl.prototype.getImageIndex=function(e){return this._indexById.get(e)};kl.prototype._copyImageToTexture=function({index:e,image:t,resolve:n,reject:i}){let o=this._texture,r=this._rectangles[e];try{o.copyFrom({source:t,xOffset:r.x,yOffset:r.y}),l(n)&&n(e)}catch(s){if(l(i)){i(s);return}}};function s0e({index:e,image:t,resolve:n,reject:i}){this.index=e,this.image=t,this.resolve=n,this.reject=i,this.rectangle=void 0}kl.prototype._addImage=function(e,t){return new Promise((n,i)=>{this._imagesToAddQueue.push(new s0e({index:e,image:t,resolve:n,reject:i})),this._imagesToAddQueue.sort(({image:o},{image:r})=>r.height*r.width-o.height*o.width)})};kl.prototype._processImageQueue=function(e){let t=this._imagesToAddQueue;if(t.length===0)return!1;this._rectangles.length=this._nextIndex;let n,i;for(n=0;n<t.length;++n){let o=t[n],{image:r,index:s}=o,a=this._texturePacker.pack(s,r);if(!l(a)){try{this._resize(e,n)}catch(c){i=c,l(o.reject)&&o.reject(i)}break}this._rectangles[s]=a.rectangle}if(l(i)){for(n=n+1;n<t.length;++n){let{resolve:o}=t[n];l(o)&&o(-1)}return t.length=0,!1}for(let o=0;o<t.length;++o)this._copyImageToTexture(t[o]);return t.length=0,!0};kl.prototype.update=function(e){if(!l(this._texture)){let t=this._initialSize.x,n=this._initialSize.y,i=this._pixelFormat,o=this._sampler,r=this._borderWidthInPixels;this._texture=new Ft({context:e,width:t,height:n,pixelFormat:i,sampler:o}),this._texturePacker=new UC({height:n,width:t,borderPadding:r})}return this._processImageQueue(e)};async function R$e(e,t){return typeof e=="function"&&(e=e(t)),(typeof e=="string"||e instanceof We)&&(e=We.createIfNeeded(e).fetchImage()),e}kl.prototype.addImage=function(e,t,n,i){let o=this._indexPromiseById.get(e),r=this._indexById.get(e);return l(o)?o:l(r)?r:(r=this._nextIndex++,this._indexById.set(e,r),o=(async()=>{let a=await R$e(t,e);if(this.isDestroyed()||!l(a))return this._indexPromiseById.delete(e),-1;l(n)&&(a.width=n),l(i)&&(a.height=i);let c=await this._addImage(r,a);return this._indexPromiseById.delete(e),c})(),this._indexPromiseById.set(e,o),o)};kl.prototype.getCachedImageSubRegion=function(e,t,n){let i=this._indexPromiseById.get(e);for(let[o,r]of this._subRegions.entries())if(n===r&&this._rectangles[o].equals(t))return i?i.then(a=>a===-1?-1:o):o};kl.prototype.addImageSubRegion=function(e,t){let n=this._indexById.get(e);if(!l(n))throw new ae(`image with id "${e}" not found in the atlas.`);let i=this.getCachedImageSubRegion(e,t,n);return l(i)?i:(i=this._nextIndex++,this._subRegions.set(i,n),this._rectangles[i]=t.clone(),(this._indexPromiseById.get(e)??Promise.resolve(n)).then(r=>{if(r===-1)return-1;let s=this._rectangles[r];return i}))};kl.prototype.isDestroyed=function(){return!1};kl.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),this._imagesToAddQueue.forEach(({resolve:e})=>{l(e)&&e(-1)}),he(this)};var V_=kl;var V$e=Go.SHOW_INDEX,kI=Go.POSITION_INDEX,c0e=Go.PIXEL_OFFSET_INDEX,l0e=Go.EYE_OFFSET_INDEX,G$e=Go.HORIZONTAL_ORIGIN_INDEX,E$e=Go.VERTICAL_ORIGIN_INDEX,L$e=Go.SCALE_INDEX,G_=Go.IMAGE_INDEX_INDEX,d0e=Go.COLOR_INDEX,W$e=Go.ROTATION_INDEX,v$e=Go.ALIGNED_AXIS_INDEX,u0e=Go.SCALE_BY_DISTANCE_INDEX,m0e=Go.TRANSLUCENCY_BY_DISTANCE_INDEX,h0e=Go.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX,f0e=Go.DISTANCE_DISPLAY_CONDITION,F$e=Go.DISABLE_DEPTH_DISTANCE,I$e=Go.TEXTURE_COORDINATE_BOUNDS,p0e=Go.SDF_INDEX,b0e=Go.SPLIT_DIRECTION_INDEX,x8=Go.NUMBER_OF_PROPERTIES,Fo={direction:0,positionHighAndScale:1,positionLowAndRotation:2,compressedAttribute0:3,compressedAttribute1:4,compressedAttribute2:5,eyeOffset:6,scaleByDistance:7,pixelOffsetScaleByDistance:8,compressedAttribute3:9,textureCoordinateBoundsOrLabelTranslate:10,a_batchId:11,sdf:12,splitDirection:13};function Am(e){e=e??B.EMPTY_OBJECT,this._scene=e.scene,this._batchTable=e.batchTable;let t=e.textureAtlas;l(t)||(t=new V_),this._textureAtlas=t,this._textureAtlasGUID=t.guid,this._destroyTextureAtlas=!0,this._billboardTextureCache=new Map,this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!1,this._shaderRotation=!1,this._compiledShaderRotation=!1,this._shaderAlignedAxis=!1,this._compiledShaderAlignedAxis=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderPixelOffsetScaleByDistance=!1,this._compiledShaderPixelOffsetScaleByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._shaderClampToGround=!1,this._compiledShaderClampToGround=!1,this._propertiesChanged=new Uint32Array(x8),this._maxSize=0,this._maxEyeOffset=0,this._maxScale=1,this._maxPixelOffset=0,this._allHorizontalCenter=!0,this._allVerticalCenter=!0,this._allSizedInMeters=!0,this._baseVolume=new ue,this._baseVolumeWC=new ue,this._baseVolume2D=new ue,this._boundingVolume=new ue,this._boundingVolumeDirty=!1,this._colorCommands=[],this._allBillboardsReady=!1,this.show=e.show??!0,this.modelMatrix=F.clone(e.modelMatrix??F.IDENTITY),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=e.debugShowBoundingVolume??!1,this.debugShowTextureAtlas=e.debugShowTextureAtlas??!1,this.blendOption=e.blendOption??Wi.OPAQUE_AND_TRANSLUCENT,this._blendOption=void 0,this._mode=re.SCENE3D,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW],this._highlightColor=U.clone(U.WHITE),this._coarseDepthTestDistance=e.coarseDepthTestDistance??ie.default.minimumRadius/10,this._threePointDepthTestDistance=e.threePointDepthTestDistance??ie.default.minimumRadius/1e3,this._uniforms={u_atlas:()=>this.textureAtlas.texture,u_highlightColor:()=>this._highlightColor,u_coarseDepthTestDistance:()=>this._coarseDepthTestDistance,u_threePointDepthTestDistance:()=>this._threePointDepthTestDistance};let n=this._scene;l(n)&&l(n.terrainProviderChanged)&&(this._removeCallbackFunc=n.terrainProviderChanged.addEventListener(function(){let i=this._billboards,o=i.length;for(let r=0;r<o;++r)l(i[r])&&i[r]._updateClamping()},this))}Object.defineProperties(Am.prototype,{length:{get:function(){return T8(this),this._billboards.length}},textureAtlas:{get:function(){return this._textureAtlas},set:function(e){this._textureAtlas!==e&&(this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._textureAtlas=e)}},destroyTextureAtlas:{get:function(){return this._destroyTextureAtlas},set:function(e){this._destroyTextureAtlas=e}},sizeInBytes:{get:function(){return this._textureAtlas.sizeInBytes}},ready:{get:function(){return this._allBillboardsReady}},billboardTextureCache:{get:function(){return this._billboardTextureCache}},coarseDepthTestDistance:{get:function(){return this._coarseDepthTestDistance},set:function(e){this._coarseDepthTestDistance=e}},threePointDepthTestDistance:{get:function(){return this._threePointDepthTestDistance},set:function(e){this._threePointDepthTestDistance=e}}});function g0e(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Am.prototype.add=function(e){let t=new Go(e,this);return t._index=this._billboards.length,this._billboards.push(t),this._createVertexArray=!0,t};Am.prototype.remove=function(e){return this.contains(e)?(this._billboards[e._index]=void 0,this._billboardsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Am.prototype.removeAll=function(){g0e(this._billboards),this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!0};function T8(e){if(e._billboardsRemoved){e._billboardsRemoved=!1;let t=[],n=e._billboards,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(s._index=r++,t.push(s))}e._billboards=t}}Am.prototype._updateBillboard=function(e,t){e._dirty||(this._billboardsToUpdate[this._billboardsToUpdateIndex++]=e),++this._propertiesChanged[t]};Am.prototype.contains=function(e){return l(e)&&e._billboardCollection===this};Am.prototype.get=function(e){return T8(this),this._billboards[e]};function a0e(e){let t=e.cache.billboardCollection_indexBufferInstanced;return l(t)||(t=$e.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:De.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferInstanced=t),t}function P$e(e){let t=e.cache.billboardCollection_vertexBufferInstanced;return l(t)||(t=$e.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_vertexBufferInstanced=t),t}Am.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<x8;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function X$e(e,t,n,i,o){let r=[{index:Fo.positionHighAndScale,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[kI]},{index:Fo.positionLowAndRotation,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[kI]},{index:Fo.compressedAttribute0,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[c0e]},{index:Fo.compressedAttribute1,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[m0e]},{index:Fo.compressedAttribute2,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[d0e]},{index:Fo.eyeOffset,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[l0e]},{index:Fo.scaleByDistance,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[u0e]},{index:Fo.pixelOffsetScaleByDistance,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[h0e]},{index:Fo.compressedAttribute3,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[f0e]},{index:Fo.textureCoordinateBoundsOrLabelTranslate,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[I$e]},{index:Fo.splitDirection,componentsPerAttribute:1,componentDatatype:J.FLOAT,usage:n[b0e]},{index:Fo.direction,componentsPerAttribute:2,componentDatatype:J.FLOAT,vertexBuffer:P$e(e)}];return l(i)&&r.push({index:Fo.a_batchId,componentsPerAttribute:1,componentDatatype:J.FLOAT,bufferUsage:Fe.STATIC_DRAW}),o&&r.push({index:Fo.sdf,componentsPerAttribute:2,componentDatatype:J.FLOAT,usage:n[p0e]}),new yb(e,r,t,!0)}var f8=new Zn;function y0e(e,t,n,i){let o=n[Fo.positionHighAndScale],r=n[Fo.positionLowAndRotation],s=i._getActualPosition();e._mode===re.SCENE3D&&(ue.expand(e._baseVolume,s,e._baseVolume),e._boundingVolumeDirty=!0),Zn.fromCartesian(s,f8);let a=i.scale,c=i.rotation;c!==0&&(e._shaderRotation=!0),e._maxScale=Math.max(e._maxScale,a);let d=f8.high,u=f8.low;o(i._index,d.x,d.y,d.z,a),r(i._index,u.x,u.y,u.z,c)}var wy=new k,Sm=32768,_8=65536,p8=4096,E_=256,Y$e=128,N$e=32,w$e=8,AD=4,M$e=1/256,x0e=new it;function T0e(e,t,n,i){let o=n[Fo.compressedAttribute0],r=i.pixelOffset,s=r.x,a=r.y,c=i._translate,d=c.x,u=c.y;e._maxPixelOffset=Math.max(e._maxPixelOffset,Math.abs(s+d),Math.abs(-a+u));let m=i.horizontalOrigin,p=i._verticalOrigin,b=i.show&&i.clusterShow;i.color.alpha===0&&(b=!1),p===kn.BASELINE&&(p=kn.BOTTOM),e._allHorizontalCenter=e._allHorizontalCenter&&m===Fi.CENTER,e._allVerticalCenter=e._allVerticalCenter&&p===kn.CENTER;let f=0,y=0;if(i.ready){let v=i.computeTextureCoordinates(x0e);f=v.x,y=v.y}let _=Math.floor(W.clamp(s,-Sm,Sm)+Sm)*Y$e;_+=(m+1)*N$e,_+=(p+1)*w$e,_+=(b?1:0)*AD;let S=Math.floor(W.clamp(a,-Sm,Sm)+Sm)*E_,A=Math.floor(W.clamp(d*AD,-Sm,Sm)+Sm)*E_,Z=(W.clamp(u*AD,-Sm,Sm)+Sm)*M$e,R=Math.floor(Z),G=Math.floor((Z-R)*E_);S+=R,A+=G,wy.x=f,wy.y=y;let E=cn.compressTextureCoordinates(wy);o(i._index,_,S,A,E)}function _0e(e,t,n,i){let o=n[Fo.compressedAttribute1],r=i.alignedAxis;h.equals(r,h.ZERO)||(e._shaderAlignedAxis=!0);let s=0,a=1,c=1,d=1,u=i.translucencyByDistance;l(u)&&(s=u.near,a=u.nearValue,c=u.far,d=u.farValue,(a!==1||d!==1)&&(e._shaderTranslucencyByDistance=!0));let m=Math.round(i.width??0);e._maxSize=Math.max(e._maxSize,m);let p=W.clamp(m,0,_8),b=0;Math.abs(h.magnitudeSquared(r)-1)<W.EPSILON6&&(b=cn.octEncodeFloat(r)),a=W.clamp(a,0,1),a=a===1?255:a*255|0,p=p*E_+a,d=W.clamp(d,0,1),d=d===1?255:d*255|0,b=b*E_+d,o(i._index,p,b,s,c)}function g8(e,t,n,i){let o=n[Fo.compressedAttribute2],r=i.color,s=l(e._batchTable)?U.WHITE:i.getPickId(t.context).color,a=i.sizeInMeters?1:0,c=Math.abs(h.magnitudeSquared(i.alignedAxis)-1)<W.EPSILON6?1:0;e._allSizedInMeters=e._allSizedInMeters&&a===1;let d=i.height??0;e._maxSize=Math.max(e._maxSize,d);let u=i._labelHorizontalOrigin??-2;u+=2;let m=cn.encodeRGB8(r),p=cn.encodeRGB8(s),b=U.floatToByte(r.alpha)*_8+U.floatToByte(s.alpha)*E_+(a*2+c),f=d*AD+u;o(i._index,m,p,b,f)}function y8(e,t,n,i){let o=n[Fo.eyeOffset],r=i.eyeOffset,s=r.z;if(i._heightReference!==st.NONE&&(s*=1.005),e._maxEyeOffset=Math.max(e._maxEyeOffset,Math.abs(r.x),Math.abs(r.y),Math.abs(s)),wy.x=0,wy.y=0,i.ready){let c=i.computeTextureCoordinates(x0e);wy.x=c.width,wy.y=c.height}let a=cn.compressTextureCoordinates(wy);o(i._index,r.x,r.y,s,a)}function S0e(e,t,n,i){let o=n[Fo.scaleByDistance],r=0,s=1,a=1,c=1,d=i.scaleByDistance;l(d)&&(r=d.near,s=d.nearValue,a=d.far,c=d.farValue,(s!==1||c!==1)&&(e._shaderScaleByDistance=!0)),o(i._index,r,s,a,c)}function A0e(e,t,n,i){let o=n[Fo.pixelOffsetScaleByDistance],r=0,s=1,a=1,c=1,d=i.pixelOffsetScaleByDistance;l(d)&&(r=d.near,s=d.nearValue,a=d.far,c=d.farValue,(s!==1||c!==1)&&(e._shaderPixelOffsetScaleByDistance=!0)),o(i._index,r,s,a,c)}function Z0e(e,t,n,i){let o=n[Fo.compressedAttribute3],r=0,s=Number.MAX_VALUE,a=i.distanceDisplayCondition;l(a)&&(r=a.near,s=a.far,r*=r,s*=s,e._shaderDistanceDisplayCondition=!0);let c=i.disableDepthTestDistance,d=im(i.heightReference)&&t.context.depthTexture;c*=c,(d||c>0)&&(e._shaderDisableDepthDistance=!0,c===Number.POSITIVE_INFINITY&&(c=-1));let u,m;l(i._labelDimensions)?(m=i._labelDimensions.x,u=i._labelDimensions.y):(m=i.width??0,u=i.height??0);let p=Math.floor(W.clamp(m,0,p8)),b=Math.floor(W.clamp(u,0,p8)),f=p*p8+b;o(i._index,r,s,c,f)}function C0e(e,t,n,i){if(im(i.heightReference)){let a=e._scene,c=t.context,d=t.globeTranslucencyState.translucent,u=l(a.globe)&&a.globe.depthTestAgainstTerrain;e._shaderClampToGround=c.depthTexture&&!d&&u}let o=n[Fo.textureCoordinateBoundsOrLabelTranslate],r=0,s=0;l(i._labelTranslate)&&(r=i._labelTranslate.x,s=i._labelTranslate.y),o(i._index,r,s,0,0)}function k$e(e,t,n,i){if(!l(e._batchTable))return;let o=n[Fo.a_batchId],r=i._batchIndex;o(i._index,r)}function R0e(e,t,n,i){if(!e._sdf)return;let o=n[Fo.sdf],r=i.outlineColor,s=i.outlineWidth,a=cn.encodeRGB8(r),c=s/Wa.RADIUS,d=U.floatToByte(r.alpha)*_8+U.floatToByte(c)*E_;o(i._index,a,d)}function V0e(e,t,n,i){let o=n[Fo.splitDirection],r=0,s=i.splitDirection;l(s)&&(r=s),o(i._index,r)}function U$e(e,t,n,i){y0e(e,t,n,i),T0e(e,t,n,i),_0e(e,t,n,i),g8(e,t,n,i),y8(e,t,n,i),S0e(e,t,n,i),A0e(e,t,n,i),Z0e(e,t,n,i),C0e(e,t,n,i),k$e(e,t,n,i),R0e(e,t,n,i),V0e(e,t,n,i)}function b8(e,t,n,i,o,r){let s;i.mode===re.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let d=t[c],u=d.position,m=Go._computeActualPosition(d,u,i,o);l(m)&&(d._setActualPosition(m),r?a.push(m):ue.expand(s,m,s))}r&&ue.fromPoints(a,s)}function D$e(e,t){let n=t.mode,i=e._billboards,o=e._billboardsToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==re.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===re.SCENE3D||n===re.SCENE2D||n===re.COLUMBUS_VIEW)&&b8(e,i,i.length,t,r,!0)):n===re.MORPHING?b8(e,i,i.length,t,r,!0):(n===re.SCENE2D||n===re.COLUMBUS_VIEW)&&b8(e,o,e._billboardsToUpdateIndex,t,r,!1)}function O$e(e,t,n){let i=1;(!e._allSizedInMeters||e._maxPixelOffset!==0)&&(i=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight));let o=i*e._maxScale*e._maxSize*2;e._allHorizontalCenter&&e._allVerticalCenter&&(o*=.5);let r=i*e._maxPixelOffset+e._maxEyeOffset;n.radius+=o+r}function B$e(e,t){let i=t.createViewportQuadCommand(`uniform sampler2D billboard_texture; +in vec2 v_textureCoordinates; +void main() +{ + out_FragColor = texture(billboard_texture, v_textureCoordinates); +} +`,{uniformMap:{billboard_texture:function(){return e.textureAtlas.texture}}});return i.pass=Le.OVERLAY,i}var z$e=[];Am.prototype.update=function(e){if(T8(this),!this.show)return;let t=e.context;if(!t.instancedArrays||!(Xt.maximumVertexTextureImageUnits>0))throw new Te("Beginning in CesiumJS 1.140, billboards and labels require device support for WebGL 2, or WebGL 1 with ANGLE_instanced_arrays and MAX_VERTEX_TEXTURE_IMAGE_UNITS > 0. For more information or to share feedback, see: https://github.com/CesiumGS/cesium/issues/13053");let n=this._billboards,i=n.length,o=!0;for(let v=0;v<i;++v){let I=n[v];l(I.loadError)&&(console.error(`Error loading image for billboard: ${I.loadError}`),I.image=void 0),I.textureDirty&&this._updateBillboard(I,G_),I.show&&(o=o&&I.ready)}let r=this._textureAtlas;if(e.afterRender.push(()=>{if(!this.isDestroyed())return r.update(e.context)}),!l(r.texture))return;D$e(this,e),n=this._billboards,i=n.length;let s=this._billboardsToUpdate,a=this._billboardsToUpdateIndex,c=this._propertiesChanged,d=r.guid,u=this._createVertexArray||this._textureAtlasGUID!==d;this._textureAtlasGUID=d;let m,p=e.passes,b=p.pick;if(u||!b&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let v=0;v<x8;++v)c[v]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),i>0){this._vaf=X$e(t,i,this._buffersUsage,this._batchTable,this._sdf),m=this._vaf.writers;for(let v=0;v<i;++v){let I=this._billboards[v];I._dirty=!1,I.textureDirty=!1,U$e(this,e,m,I)}this._vaf.commit(a0e(t))}this._billboardsToUpdateIndex=0}else if(a>0){let v=z$e;v.length=0,(c[kI]||c[W$e]||c[L$e])&&v.push(y0e),(c[G_]||c[c0e]||c[G$e]||c[E$e]||c[V$e])&&(v.push(T0e),v.push(y8)),(c[G_]||c[v$e]||c[m0e])&&(v.push(_0e),v.push(g8)),(c[G_]||c[d0e])&&v.push(g8),(c[G_]||c[l0e])&&v.push(y8),c[u0e]&&v.push(S0e),c[h0e]&&v.push(A0e),(c[f0e]||c[F$e]||c[G_]||c[kI])&&v.push(Z0e),(c[G_]||c[kI])&&v.push(C0e),c[p0e]&&v.push(R0e),c[b0e]&&v.push(V0e);let I=v.length;if(m=this._vaf.writers,a/i>.1){for(let X=0;X<a;++X){let Y=s[X];Y._dirty=!1,Y.textureDirty=!1;for(let g=0;g<I;++g)v[g](this,e,m,Y)}this._vaf.commit(a0e(t))}else{for(let X=0;X<a;++X){let Y=s[X];Y._dirty=!1,Y.textureDirty=!1;for(let g=0;g<I;++g)v[g](this,e,m,Y);this._vaf.subCommit(Y._index,1)}this._vaf.endSubCommits()}this._billboardsToUpdateIndex=0}if(a>i*1.5&&(s.length=i),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ue.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let f,y=F.IDENTITY;e.mode===re.SCENE3D?(y=this.modelMatrix,f=ue.clone(this._baseVolumeWC,this._boundingVolume)):f=ue.clone(this._baseVolume2D,this._boundingVolume),O$e(this,e,f);let _=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,_){this._blendOption===Wi.OPAQUE||this._blendOption===Wi.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Be.fromCache({depthTest:{enabled:!0,func:ne.LESS},depthMask:!0}):this._rsOpaque=void 0;let v=this._blendOption===Wi.TRANSLUCENT;this._blendOption===Wi.TRANSLUCENT||this._blendOption===Wi.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Be.fromCache({depthTest:{enabled:!0,func:v?ne.LEQUAL:ne.LESS},depthMask:v,blending:nn.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let S,A,Z,R,G;if(_||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround||this._sdf!==this._compiledSDF){S=wI,A=NI,G=["INSTANCED"],l(this._batchTable)&&(G.push("VECTOR_TILE"),S=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(S),A=this._batchTable.getFragmentShaderCallback(!1,void 0)(A)),Z=new He({defines:G,sources:[S]}),this._shaderRotation&&Z.defines.push("ROTATION"),this._shaderAlignedAxis&&Z.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&Z.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&Z.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&Z.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&Z.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&Z.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&Z.defines.push("VS_THREE_POINT_DEPTH_CHECK");let v=1-Wa.CUTOFF;this._sdf&&Z.defines.push("SDF");let I=l(this._batchTable)?"VECTOR_TILE":"";this._blendOption===Wi.OPAQUE_AND_TRANSLUCENT&&(R=new He({defines:["OPAQUE",I],sources:[A]}),this._shaderClampToGround&&R.defines.push("VS_THREE_POINT_DEPTH_CHECK"),this._sdf&&(R.defines.push("SDF"),R.defines.push(`SDF_EDGE ${v}`)),this._sp=tn.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:Z,fragmentShaderSource:R,attributeLocations:Fo}),R=new He({defines:["TRANSLUCENT",I],sources:[A]}),this._shaderClampToGround&&R.defines.push("VS_THREE_POINT_DEPTH_CHECK"),this._sdf&&(R.defines.push("SDF"),R.defines.push(`SDF_EDGE ${v}`)),this._spTranslucent=tn.replaceCache({context:t,shaderProgram:this._spTranslucent,vertexShaderSource:Z,fragmentShaderSource:R,attributeLocations:Fo})),this._blendOption===Wi.OPAQUE&&(R=new He({defines:[I],sources:[A]}),this._shaderClampToGround&&R.defines.push("VS_THREE_POINT_DEPTH_CHECK"),this._sdf&&(R.defines.push("SDF"),R.defines.push(`SDF_EDGE ${v}`)),this._sp=tn.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:Z,fragmentShaderSource:R,attributeLocations:Fo})),this._blendOption===Wi.TRANSLUCENT&&(R=new He({defines:[I],sources:[A]}),this._shaderClampToGround&&R.defines.push("VS_THREE_POINT_DEPTH_CHECK"),this._sdf&&(R.defines.push("SDF"),R.defines.push(`SDF_EDGE ${v}`)),this._spTranslucent=tn.replaceCache({context:t,shaderProgram:this._spTranslucent,vertexShaderSource:Z,fragmentShaderSource:R,attributeLocations:Fo})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround,this._compiledSDF=this._sdf}let E=e.commandList;if(p.render||p.pick){let v=this._colorCommands,I=this._blendOption===Wi.OPAQUE,X=this._blendOption===Wi.OPAQUE_AND_TRANSLUCENT,Y=this._vaf.va,g=Y.length,C=this._uniforms,V;l(this._batchTable)?(C=this._batchTable.getUniformMapCallback()(C),V=this._batchTable.getPickId()):V="v_pickColor",v.length=g;let L=X?g*2:g;for(let P=0;P<L;++P){let N=v[P];l(N)||(N=v[P]=new at);let O=I||X&&P%2===0;N.pass=O||!X?Le.OPAQUE:Le.TRANSLUCENT,N.owner=this;let M=X?Math.floor(P/2):P;N.boundingVolume=f,N.modelMatrix=y,N.count=Y[M].indicesCount,N.shaderProgram=O?this._sp:this._spTranslucent,N.uniformMap=C,N.vertexArray=Y[M].va,N.renderState=O?this._rsOpaque:this._rsTranslucent,N.debugShowBoundingVolume=this.debugShowBoundingVolume,N.pickId=V,N.count=6,N.instanceCount=i,E.push(N)}this.debugShowTextureAtlas&&(l(this.debugCommand)||(this.debugCommand=B$e(this,e.context)),E.push(this.debugCommand))}this._allBillboardsReady=o};Am.prototype.isDestroyed=function(){return!1};Am.prototype.destroy=function(){return l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),g0e(this._billboards),he(this)};var bu=Am;var d6n=x(T(),1);var i6n=x(T(),1);function H$e(e,t,n,i,o){return function(){let r=document.createElement("canvas"),s=o+2*i;r.height=r.width=s;let a=r.getContext("2d");return a.clearRect(0,0,s,s),i!==0&&(a.beginPath(),a.arc(s/2,s/2,s/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=n,a.fill(),e<1&&(a.save(),a.globalCompositeOperation="destination-out",a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle="black",a.fill(),a.restore())),a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=t,a.fill(),r}}var L_=H$e;var K$e=new fe,Bh=class{constructor(t,n,i,o,r){this._content=t,this._billboard=i,this._label=o,this._polyline=r,this._batchId=n,this._billboardImage=void 0,this._billboardColor=void 0,this._billboardOutlineColor=void 0,this._billboardOutlineWidth=void 0,this._billboardSize=void 0,this._pointSize=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._heightOffset=void 0,this._pickIds=new Array(3),DC(this)}get show(){return this._label.show}set show(t){this._label.show=t,this._billboard.show=t,this._polyline.show=t}get color(){return this._color}set color(t){this._color=U.clone(t,this._color),DC(this)}get pointSize(){return this._pointSize}set pointSize(t){this._pointSize=t,DC(this)}get pointOutlineColor(){return this._pointOutlineColor}set pointOutlineColor(t){this._pointOutlineColor=U.clone(t,this._pointOutlineColor),DC(this)}get pointOutlineWidth(){return this._pointOutlineWidth}set pointOutlineWidth(t){this._pointOutlineWidth=t,DC(this)}get labelColor(){return this._label.fillColor}set labelColor(t){this._label.fillColor=t,this._polyline.show=this._label.show&&t.alpha>0}get labelOutlineColor(){return this._label.outlineColor}set labelOutlineColor(t){this._label.outlineColor=t}get labelOutlineWidth(){return this._label.outlineWidth}set labelOutlineWidth(t){this._label.outlineWidth=t}get font(){return this._label.font}set font(t){this._label.font=t}get labelStyle(){return this._label.style}set labelStyle(t){this._label.style=t}get labelText(){return this._label.text}set labelText(t){l(t)||(t=""),this._label.text=t}get backgroundColor(){return this._label.backgroundColor}set backgroundColor(t){this._label.backgroundColor=t}get backgroundPadding(){return this._label.backgroundPadding}set backgroundPadding(t){this._label.backgroundPadding=t}get backgroundEnabled(){return this._label.showBackground}set backgroundEnabled(t){this._label.showBackground=t}get scaleByDistance(){return this._label.scaleByDistance}set scaleByDistance(t){this._label.scaleByDistance=t,this._billboard.scaleByDistance=t}get translucencyByDistance(){return this._label.translucencyByDistance}set translucencyByDistance(t){this._label.translucencyByDistance=t,this._billboard.translucencyByDistance=t}get distanceDisplayCondition(){return this._label.distanceDisplayCondition}set distanceDisplayCondition(t){this._label.distanceDisplayCondition=t,this._polyline.distanceDisplayCondition=t,this._billboard.distanceDisplayCondition=t}get heightOffset(){return this._heightOffset}set heightOffset(t){let n=this._heightOffset??0,i=this._content.tileset.ellipsoid,o=i.cartesianToCartographic(this._billboard.position,K$e);o.height=o.height-n+t;let r=i.cartographicToCartesian(o);this._billboard.position=r,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],r],this._heightOffset=t}get anchorLineEnabled(){return this._polyline.show}set anchorLineEnabled(t){this._polyline.show=t}get anchorLineColor(){return this._polyline.material.uniforms.color}set anchorLineColor(t){this._polyline.material.uniforms.color=U.clone(t,this._polyline.material.uniforms.color)}get image(){return this._billboardImage}set image(t){let n=this._billboardImage!==t;this._billboardImage=t,n&&DC(this)}get disableDepthTestDistance(){return this._label.disableDepthTestDistance}set disableDepthTestDistance(t){this._label.disableDepthTestDistance=t,this._billboard.disableDepthTestDistance=t}get horizontalOrigin(){return this._billboard.horizontalOrigin}set horizontalOrigin(t){this._billboard.horizontalOrigin=t}get verticalOrigin(){return this._billboard.verticalOrigin}set verticalOrigin(t){this._billboard.verticalOrigin=t}get labelHorizontalOrigin(){return this._label.horizontalOrigin}set labelHorizontalOrigin(t){this._label.horizontalOrigin=t}get labelVerticalOrigin(){return this._label.verticalOrigin}set labelVerticalOrigin(t){this._label.verticalOrigin=t}get content(){return this._content}get tileset(){return this._content.tileset}get primitive(){return this._content.tileset}get pickIds(){let t=this._pickIds;return t[0]=this._billboard.pickId,t[1]=this._label.pickId,t[2]=this._polyline.pickId,t}hasProperty(t){return this._content.batchTable.hasProperty(this._batchId,t)}getPropertyIds(t){return this._content.batchTable.getPropertyIds(this._batchId,t)}getProperty(t){return this._content.batchTable.getProperty(this._batchId,t)}getPropertyInherited(t){return Ds.getPropertyInherited(this._content,this._batchId,t)}setProperty(t,n){this._content.batchTable.setProperty(this._batchId,t,n),this._content.featurePropertiesDirty=!0}isExactClass(t){return this._content.batchTable.isExactClass(this._batchId,t)}isClass(t){return this._content.batchTable.isClass(this._batchId,t)}getExactClassName(){return this._content.batchTable.getExactClassName(this._batchId)}};lt(Bh,"defaultColor",U.WHITE),lt(Bh,"defaultPointOutlineColor",U.BLACK),lt(Bh,"defaultPointOutlineWidth",0),lt(Bh,"defaultPointSize",8);function DC(e){let t=e._billboard;if(l(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(l(e._billboardImage))return;let n=e._color??Bh.defaultColor,i=e._pointOutlineColor??Bh.defaultPointOutlineColor,o=e._pointOutlineWidth??Bh.defaultPointOutlineWidth,r=e._pointSize??Bh.defaultPointSize,s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,d=e._billboardSize;if(U.equals(n,s)&&U.equals(i,a)&&o===c&&r===d)return;e._billboardColor=U.clone(n,e._billboardColor),e._billboardOutlineColor=U.clone(i,e._billboardOutlineColor),e._billboardOutlineWidth=o,e._billboardSize=r;let u=n.alpha,m=n.toCssColorString(),p=i.toCssColorString(),b=JSON.stringify([m,r,p,o]);t.setImage(b,L_(u,m,p,o,r))}var Tb=Bh;var oqn=x(T(),1);var b6n=x(T(),1);function J$e(e,t){let n=e.measureText(t);if(!/\S/.test(t))return{width:n.width,height:0,ascent:0,descent:0,minx:0};let o=Math.round(n.actualBoundingBoxAscent),r=Math.round(n.actualBoundingBoxDescent),s=Math.max(o+r,1);return{width:n.width,height:s,ascent:o,descent:r,minx:-Math.round(n.actualBoundingBoxLeft)}}var W_;function j$e(e,t){if(e==="")return;t=t??B.EMPTY_OBJECT;let n=t.font??"10px sans-serif",i=t.stroke??!1,o=t.fill??!0,r=t.strokeWidth??1,s=t.backgroundColor??U.TRANSPARENT,a=t.padding??0,c=a*2,d=document.createElement("canvas");d.width=1,d.height=1,d.style.font=n;let u=d.getContext("2d",{willReadFrequently:!0});l(W_)||(l(u.imageSmoothingEnabled)?W_="imageSmoothingEnabled":l(u.mozImageSmoothingEnabled)?W_="mozImageSmoothingEnabled":l(u.webkitImageSmoothingEnabled)?W_="webkitImageSmoothingEnabled":l(u.msImageSmoothingEnabled)&&(W_="msImageSmoothingEnabled")),u.font=n,u.lineJoin="round",u.lineWidth=r,u[W_]=!1,d.style.visibility="hidden",document.body.appendChild(d);let m=J$e(u,e);d.dimensions=m,document.body.removeChild(d),d.style.visibility="";let p=!/\S/.test(e),b=i&&!p?Math.ceil(r/2):0,f=b*2,y=-m.minx+b,_=Math.ceil(m.width)+y+c+b,S=m.height+c+f,A=m.ascent+a+b;if(d.width=_,d.height=S,u.font=n,u.lineJoin="round",u.lineWidth=r,u[W_]=!1,s!==U.TRANSPARENT&&(u.fillStyle=s.toCssColorString(),u.fillRect(0,0,d.width,d.height)),i){let Z=t.strokeColor??U.BLACK;u.strokeStyle=Z.toCssColorString(),u.strokeText(e,y+a,A)}if(o){let Z=t.fillColor??U.WHITE;u.fillStyle=Z.toCssColorString(),u.fillText(e,y+a,A)}return d}var v_=j$e;var M0e=x(W0e(),1);var X6n=x(T(),1);var T6n=x(T(),1),v0e={FILL:0,OUTLINE:1,FILL_AND_OUTLINE:2};Object.freeze(v0e);var cr=v0e;var F0e={},I0e=0,q$e=256,$$e=new U(.165,.165,.165,.8),eet=new k(7,5),Bs=Object.freeze({LTR:0,RTL:1,WEAK:2,BRACKETS:3});function F_(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._rebindAllGlyphs=!0}function DI(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._repositionAllGlyphs=!0}function OI(e,t){return document.defaultView.getComputedStyle(e,null).getPropertyValue(t)}function X0e(e){let t=F0e[e._font];if(!l(t)){let n=document.createElement("div");n.style.position="absolute",n.style.opacity=0,n.style.font=e._font,document.body.appendChild(n);let i=parseFloat(OI(n,"line-height"));isNaN(i)&&(i=void 0),t={family:OI(n,"font-family"),size:OI(n,"font-size").replace("px",""),style:OI(n,"font-style"),weight:OI(n,"font-weight"),lineHeight:i},document.body.removeChild(n),I0e<q$e&&(F0e[e._font]=t,I0e++)}e._fontFamily=t.family,e._fontSize=t.size,e._fontStyle=t.style,e._fontWeight=t.weight,e._lineHeight=t.lineHeight}function zh(e,t){e=e??B.EMPTY_OBJECT;let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Bt.clone(n)),l(i)&&(i=Bt.clone(i)),l(o)&&(o=Bt.clone(o)),l(r)&&(r=Ut.clone(r)),this._renderedText=void 0,this._text=void 0,this._show=e.show??!0,this._font=e.font??"30px sans-serif",this._fillColor=U.clone(e.fillColor??U.WHITE),this._outlineColor=U.clone(e.outlineColor??U.BLACK),this._outlineWidth=e.outlineWidth??1,this._showBackground=e.showBackground??!1,this._backgroundColor=U.clone(e.backgroundColor??$$e),this._backgroundPadding=k.clone(e.backgroundPadding??eet),this._style=e.style??cr.FILL,this._verticalOrigin=e.verticalOrigin??kn.BASELINE,this._horizontalOrigin=e.horizontalOrigin??Fi.LEFT,this._pixelOffset=k.clone(e.pixelOffset??k.ZERO),this._eyeOffset=h.clone(e.eyeOffset??h.ZERO),this._position=h.clone(e.position??h.ZERO),this._scale=e.scale??1,this._id=e.id,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._scaleByDistance=o,this._heightReference=e.heightReference??st.NONE,this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._labelCollection=t,this._glyphs=[],this._backgroundBillboard=void 0,this._batchIndex=void 0,this._rebindAllGlyphs=!0,this._repositionAllGlyphs=!0,this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=void 0,this._clusterShow=!0,this.text=e.text??"",this._relativeSize=1,X0e(this),this._updateClamping()}Object.defineProperties(zh.prototype,{show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;l(r)&&(r.show=e)}let n=this._backgroundBillboard;l(n)&&(n.show=e)}}},position:{get:function(){return this._position},set:function(e){let t=this._position;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o].billboard;l(s)&&(s.position=e)}let i=this._backgroundBillboard;l(i)&&(i.position=e),this._updateClamping()}}},heightReference:{get:function(){return this._heightReference},set:function(e){if(e!==this._heightReference){this._heightReference=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;l(r)&&(r.heightReference=e)}let n=this._backgroundBillboard;l(n)&&(n.heightReference=e),DI(this),this._updateClamping()}}},text:{get:function(){return this._text},set:function(e){if(this._text!==e){this._text=e;let t=zh.filterUnsupportedCharacters(e);this._renderedText=zh.enableRightToLeftDetection?set(t):t,F_(this)}}},font:{get:function(){return this._font},set:function(e){this._font!==e&&(this._font=e,F_(this),X0e(this))}},fillColor:{get:function(){return this._fillColor},set:function(e){let t=this._fillColor;U.equals(t,e)||(U.clone(e,t),F_(this))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;U.equals(t,e)||(U.clone(e,t),F_(this))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,F_(this))}},showBackground:{get:function(){return this._showBackground},set:function(e){this._showBackground!==e&&(this._showBackground=e,F_(this))}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){let t=this._backgroundColor;if(!U.equals(t,e)){U.clone(e,t);let n=this._backgroundBillboard;l(n)&&(n.color=t)}}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){let t=this._backgroundPadding;k.equals(t,e)||(k.clone(e,t),DI(this))}},style:{get:function(){return this._style},set:function(e){this._style!==e&&(this._style=e,F_(this))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;if(!k.equals(t,e)){k.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffset=e)}}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;if(!Bt.equals(t,e)){this._translucencyByDistance=Bt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.translucencyByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.translucencyByDistance=e)}}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;if(!Bt.equals(t,e)){this._pixelOffsetScaleByDistance=Bt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffsetScaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffsetScaleByDistance=e)}}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;if(!Bt.equals(t,e)){this._scaleByDistance=Bt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.scaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.scaleByDistance=e)}}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.eyeOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.eyeOffset=e)}}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,DI(this))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){if(this._verticalOrigin!==e){this._verticalOrigin=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.verticalOrigin=e)}let n=this._backgroundBillboard;l(n)&&(n.verticalOrigin=e),DI(this)}}},scale:{get:function(){return this._scale},set:function(e){if(this._scale!==e){this._scale=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.scale=e*this._relativeSize)}let n=this._backgroundBillboard;l(n)&&(n.scale=e*this._relativeSize),DI(this)}}},totalScale:{get:function(){return this._scale*this._relativeSize}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){if(!Ut.equals(e,this._distanceDisplayCondition)){this._distanceDisplayCondition=Ut.clone(e,this._distanceDisplayCondition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.distanceDisplayCondition=e)}let n=this._backgroundBillboard;l(n)&&(n.distanceDisplayCondition=e)}}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){if(this._disableDepthTestDistance!==e){this._disableDepthTestDistance=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.disableDepthTestDistance=e)}let n=this._backgroundBillboard;l(n)&&(n.disableDepthTestDistance=e)}}},id:{get:function(){return this._id},set:function(e){if(this._id!==e){this._id=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.id=e)}let n=this._backgroundBillboard;l(n)&&(n.id=e)}}},pickId:{get:function(){if(!(this._glyphs.length===0||!l(this._glyphs[0].billboard)))return this._glyphs[0].billboard.pickId}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard._clampedPosition=e)}let n=this._backgroundBillboard;l(n)&&(n._clampedPosition=e)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){if(this._clusterShow!==e){this._clusterShow=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.clusterShow=e)}let n=this._backgroundBillboard;l(n)&&(n.clusterShow=e)}}},ready:{get:function(){if(this._rebindAllGlyphs||this._repositionAllGlyphs||l(this._backgroundBillboard)&&!this._backgroundBillboard.ready)return!1;let e=this._glyphs;for(let t=0,n=e.length;t<n;t++){let i=e[t];if(l(i.billboard)&&!i.billboard.ready)return!1}return!0}}});zh.prototype._updateClamping=function(){Go._updateClamping(this._labelCollection,this)};zh.prototype.computeScreenSpacePosition=function(e,t){l(t)||(t=new k);let i=this._labelCollection.modelMatrix,o=l(this._actualClampedPosition)?this._actualClampedPosition:this._position;return Go._computeScreenSpacePosition(i,o,this._eyeOffset,this._pixelOffset,e,t)};zh.getScreenSpaceBoundingBox=function(e,t,n){let i=0,o=0,r=0,s=0,a=e.totalScale,c=e._backgroundBillboard;if(l(c))i=t.x+c._translate.x,o=t.y-c._translate.y,r=c.width*a,s=c.height*a,e.verticalOrigin===kn.BOTTOM||e.verticalOrigin===kn.BASELINE?o-=s:e.verticalOrigin===kn.CENTER&&(o-=s*.5);else{i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;let d=0,u=0,m=e._glyphs,p=m.length;for(let b=0;b<p;++b){let f=m[b],y=f.billboard;if(!l(y))continue;let _=t.x+y._translate.x,S=t.y-y._translate.y,A=f.dimensions.width*a,Z=f.dimensions.height*a;e.verticalOrigin===kn.BOTTOM||e.verticalOrigin===kn.BASELINE?S-=Z:e.verticalOrigin===kn.CENTER&&(S-=Z*.5),e._verticalOrigin===kn.TOP?S+=Wa.PADDING*a:(e._verticalOrigin===kn.BOTTOM||e._verticalOrigin===kn.BASELINE)&&(S-=Wa.PADDING*a),i=Math.min(i,_),o=Math.min(o,S),d=Math.max(d,_+A),u=Math.max(u,S+Z)}r=d-i,s=u-o}return l(n)||(n=new it),n.x=i,n.y=o,n.width=r,n.height=s,n};zh.filterUnsupportedCharacters=function(e){let t=new RegExp(/[\u0000-\u0008\u000E-\u001F\u00ad\u202a-\u206f\u200b-\u200f]/,"g");return e.replace(t,"")};zh.prototype.equals=function(e){return this===e||l(e)&&this._show===e._show&&this._scale===e._scale&&this._outlineWidth===e._outlineWidth&&this._showBackground===e._showBackground&&this._style===e._style&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&this._renderedText===e._renderedText&&this._font===e._font&&h.equals(this._position,e._position)&&U.equals(this._fillColor,e._fillColor)&&U.equals(this._outlineColor,e._outlineColor)&&U.equals(this._backgroundColor,e._backgroundColor)&&k.equals(this._backgroundPadding,e._backgroundPadding)&&k.equals(this._pixelOffset,e._pixelOffset)&&h.equals(this._eyeOffset,e._eyeOffset)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Bt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Ut.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._id===e._id};zh.prototype.isDestroyed=function(){return!1};zh.enableRightToLeftDetection=!1;function tet(e,t){let n=/[a-zA-Z0-9]/,i=/[()[\]{}<>]/,o=[],r="",s=Bs.LTR,a="",c=e.length;for(let d=0;d<c;++d){let u=e.charAt(d);t.test(u)?a=Bs.RTL:n.test(u)?a=Bs.LTR:i.test(u)?a=Bs.BRACKETS:a=Bs.WEAK,d===0&&(s=a),s===a&&a!==Bs.BRACKETS?r+=u:(r!==""&&o.push({Type:s,Word:r}),s=a,r=u)}return o.push({Type:a,Word:r}),o}function net(e){return e.split("").reverse().join("")}function BI(e,t,n){return e.slice(0,t)+n+e.slice(t)}function iet(e){switch(e){case"(":return")";case")":return"(";case"[":return"]";case"]":return"[";case"{":return"}";case"}":return"{";case"<":return">";case">":return"<"}}var oet="\u05D0-\u05EA",ret="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",P0e=new RegExp(`[${oet}${ret}]`);function set(e){let t=e.split(` +`),n="";for(let i=0;i<t.length;i++){let o=t[i],r=P0e.test(o.charAt(0)),s=tet(o,P0e),a=0,c="";for(let d=0;d<s.length;++d){let u=s[d],m=u.Type===Bs.BRACKETS?iet(u.Word):net(u.Word);r?u.Type===Bs.RTL?(c=m+c,a=0):u.Type===Bs.LTR?(c=BI(c,a,u.Word),a+=u.Word.length):(u.Type===Bs.WEAK||u.Type===Bs.BRACKETS)&&(u.Type===Bs.WEAK&&s[d-1].Type===Bs.BRACKETS?c=m+c:s[d-1].Type===Bs.RTL?(c=m+c,a=0):s.length>d+1?s[d+1].Type===Bs.RTL?(c=m+c,a=0):(c=BI(c,a,u.Word),a+=u.Word.length):c=BI(c,0,m)):u.Type===Bs.RTL?c=BI(c,a,m):u.Type===Bs.LTR?(c+=u.Word,a=c.length):(u.Type===Bs.WEAK||u.Type===Bs.BRACKETS)&&(d>0&&s[d-1].Type===Bs.RTL?s.length>d+1?s[d+1].Type===Bs.RTL?c=BI(c,a,m):(c+=u.Word,a=c.length):c+=u.Word:(c+=u.Word,a=c.length))}n+=c,i<t.length-1&&(n+=` +`)}return n}var My=zh;var k0e=x(Y0e(),1);function cet(){this.dimensions=void 0,this.billboardTexture=void 0,this.billboard=void 0}var det=1.2,N0e="ID_WHITE_PIXEL",S8=new k(4,4),uet=new it(1,1,1,1);function met(e,t){let n=t._backgroundBillboardTexture;if(!n.hasImage){let o=document.createElement("canvas");o.width=S8.x,o.height=S8.y;let r=o.getContext("2d");r.fillStyle="#fff",r.fillRect(0,0,o.width,o.height),n.loadImage(N0e,o),n.addImageSubRegion(N0e,uet)}let i=e.add({collection:t});return i.setImageTexture(n),i._positionFromParent=!0,i._labelTranslate=new k,i}var _b={};function het(e,t,n,i,o,r){return _b.font=t,_b.fillColor=n,_b.strokeColor=i,_b.strokeWidth=o,_b.padding=Wa.PADDING,_b.fill=r===cr.FILL||r===cr.FILL_AND_OUTLINE,_b.stroke=r===cr.OUTLINE||r===cr.FILL_AND_OUTLINE,_b.backgroundColor=U.BLACK,v_(e,_b)}function A8(e,t){let n=t.billboard;l(n)&&(n.show=!1,n._clampedPosition=void 0,l(n._removeCallbackFunc)&&(n._removeCallbackFunc(),n._removeCallbackFunc=void 0),e._spareBillboards.push(n),t.billboard=void 0)}var fet=new k0e.default,pet=/\s/;function bet(e,t){let n=t._renderedText,i=fet.splitGraphemes(n),o=i.length,r=t._glyphs,s=r.length;if(t._relativeSize=t._fontSize/Wa.FONT_SIZE,o<s)for(let p=o;p<s;++p)A8(e,r[p]);r.length=o;let a=t._backgroundBillboard,c=e._backgroundBillboardCollection;t._showBackground&&!l(a)&&(a=met(c,e),t._backgroundBillboard=a),get(c,t,a);let d=e._glyphBillboardCollection,u=d.billboardTextureCache,m=e._textDimensionsCache;for(let p=0;p<o;++p){let b=i[p],f=t._verticalOrigin,y=JSON.stringify([b,t._fontFamily,t._fontStyle,t._fontWeight,+f]),_=m[y],S=u.get(y);if(!l(S)||!l(_)){S=new xb(d),u.set(y,S);let G=`${t._fontStyle} ${t._fontWeight} ${Wa.FONT_SIZE}px ${t._fontFamily}`,E=het(b,G,U.WHITE,U.WHITE,0,cr.FILL);if(_=E.dimensions,m[y]=_,E.width>0&&E.height>0&&!pet.test(b)){let v=(0,M0e.default)(E,{cutoff:Wa.CUTOFF,radius:Wa.RADIUS}),I=E.getContext("2d"),X=E.width,Y=E.height,g=I.getImageData(0,0,X,Y);for(let C=0;C<X;C++)for(let V=0;V<Y;V++){let L=V*X+C,P=v[L]*255,N=L*4;g.data[N+0]=P,g.data[N+1]=P,g.data[N+2]=P,g.data[N+3]=P}I.putImageData(g,0,0),S.loadImage(y,E)}}let A=r[p];if(l(A)||(A=new cet,A.dimensions=_,A.billboardTexture=S,r[p]=A),A.billboardTexture.id!==y&&(A.billboardTexture=S,A.dimensions=_),!S.hasImage){A8(e,A);continue}let Z=A.billboard,R=e._spareBillboards;l(Z)||(R.length>0?Z=R.pop():(Z=d.add({collection:e}),Z._labelDimensions=new k,Z._labelTranslate=new k,Z._positionFromParent=!0),A.billboard=Z),Z.setImageTexture(S),Z.show=t._show,Z.position=t._position,Z.eyeOffset=t._eyeOffset,Z.pixelOffset=t._pixelOffset,Z.horizontalOrigin=Fi.LEFT,Z.verticalOrigin=t._verticalOrigin,Z.heightReference=t._heightReference,l(t._clampedPosition)&&(Z._clampedPosition=t._clampedPosition),Z.scale=t.totalScale,Z.pickPrimitive=t,Z.id=t._id,Z.translucencyByDistance=t._translucencyByDistance,Z.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,Z.scaleByDistance=t._scaleByDistance,Z.distanceDisplayCondition=t._distanceDisplayCondition,Z.disableDepthTestDistance=t._disableDepthTestDistance,Z._batchIndex=t._batchIndex,Z.outlineColor=t.outlineColor,t.style===cr.FILL_AND_OUTLINE?(Z.color=t._fillColor,Z.outlineWidth=t.outlineWidth):t.style===cr.FILL?(Z.color=t._fillColor,Z.outlineWidth=0):t.style===cr.OUTLINE&&(Z.color=U.TRANSPARENT,Z.outlineWidth=t.outlineWidth)}t._repositionAllGlyphs=!0}function get(e,t,n){if(!l(n))return;let i=t.show&&t._showBackground&&t._renderedText.split(` +`).join("").length>0;if(t.show&&!i){e.remove(n),t._backgroundBillboard=n=void 0;return}n.color=t._backgroundColor,n.show=t._show,n.position=t._position,n.eyeOffset=t._eyeOffset,n.pixelOffset=t._pixelOffset,n.horizontalOrigin=Fi.LEFT,n.verticalOrigin=t._verticalOrigin,n.heightReference=t._heightReference,l(t._clampedPosition)&&(n._clampedPosition=t._clampedPosition),n.scale=t.totalScale,n.pickPrimitive=t,n.id=t._id,n.translucencyByDistance=t._translucencyByDistance,n.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,n.scaleByDistance=t._scaleByDistance,n.distanceDisplayCondition=t._distanceDisplayCondition,n.disableDepthTestDistance=t._disableDepthTestDistance,n.clusterShow=t.clusterShow}function w0e(e,t,n){return t===Fi.CENTER?-e/2:t===Fi.RIGHT?-(e+n.x):n.x}var vr=new k,yet=new k;function xet(e){let t=e._glyphs,n=e._renderedText,i=0,o=0,r=[],s=Number.NEGATIVE_INFINITY,a=0,c=1,d=t.length,u=e._backgroundBillboard,m=k.clone(l(u)?e._backgroundPadding:k.ZERO,yet);m.x/=e._relativeSize,m.y/=e._relativeSize;for(let X=0;X<d;++X){if(n.charAt(X)===` +`){r.push(i),++c,i=0;continue}let g=t[X].dimensions;l(g)&&(a=Math.max(a,g.height-g.descent),s=Math.max(s,g.descent),i+=g.width-g.minx,X<d-1&&(i+=t[X+1].dimensions.minx),o=Math.max(o,i))}r.push(i);let p=a+s,b=e.totalScale,f=e._horizontalOrigin,y=e._verticalOrigin,_=0,S=r[_],A=w0e(S,f,m),Z=(l(e._lineHeight)?e._lineHeight:det*e._fontSize)/e._relativeSize,R=Z*(c-1),G=o,E=p+R;l(u)&&(G+=m.x*2,E+=m.y*2,u._labelHorizontalOrigin=f),vr.x=A*b,vr.y=0;let v=!0,I=0;for(let X=0;X<d;++X){if(n.charAt(X)===` +`){++_,I+=Z,S=r[_],A=w0e(S,f,m),vr.x=A*b,v=!0;continue}let Y=t[X],g=Y.dimensions;if(l(g)&&(y===kn.TOP?(vr.y=g.height-a-m.y,vr.y+=Wa.PADDING):y===kn.CENTER?vr.y=(R+g.height-a)/2:y===kn.BASELINE?(vr.y=R,vr.y-=Wa.PADDING):(vr.y=R+s+m.y,vr.y-=Wa.PADDING),vr.y=(vr.y-g.descent-I)*b,v&&(vr.x-=Wa.PADDING*b,v=!1),l(Y.billboard)&&(Y.billboard._setTranslate(vr),Y.billboard._labelDimensions.x=G,Y.billboard._labelDimensions.y=E,Y.billboard._labelHorizontalOrigin=f,im(e.heightReference)&&(Y.billboard._labelTranslate=k.clone(vr,Y.billboard._labelTranslate))),X<d-1)){let C=t[X+1];vr.x+=(g.width-g.minx+C.dimensions.minx)*b}}l(u)&&n.split(` +`).join("").length>0&&(f===Fi.CENTER?A=-o/2-m.x:f===Fi.RIGHT?A=-(o+m.x*2):A=0,vr.x=A*b,y===kn.TOP?vr.y=p-a-s:y===kn.CENTER?vr.y=(p-a)/2-s:y===kn.BASELINE?vr.y=-m.y-s:vr.y=0,vr.y=vr.y*b,u.width=G,u.height=E,u._setTranslate(vr),u._labelTranslate=k.clone(vr,u._labelTranslate))}function U0e(e,t){let n=t._glyphs;for(let i=0,o=n.length;i<o;++i)A8(e,n[i]);l(t._backgroundBillboard)&&(e._backgroundBillboardCollection.remove(t._backgroundBillboard),t._backgroundBillboard=void 0),t._labelCollection=void 0,l(t._removeCallbackFunc)&&t._removeCallbackFunc(),he(t)}function xp(e){e=e??B.EMPTY_OBJECT,this._scene=e.scene,this._batchTable=e.batchTable;let t=new bu({scene:this._scene,textureAtlas:new V_({initialSize:S8}),coarseDepthTestDistance:e.coarseDepthTestDistance,threePointDepthTestDistance:e.threePointDepthTestDistance});this._backgroundBillboardCollection=t,this._backgroundBillboardTexture=new xb(t),this._glyphBillboardCollection=new bu({scene:this._scene,batchTable:this._batchTable,coarseDepthTestDistance:e.coarseDepthTestDistance,threePointDepthTestDistance:e.threePointDepthTestDistance}),this._glyphBillboardCollection._sdf=!0,this._spareBillboards=[],this._textDimensionsCache={},this._labels=[],this._labelsToUpdate=[],this._totalGlyphCount=0,this._highlightColor=U.clone(U.WHITE),this.show=e.show??!0,this.modelMatrix=F.clone(e.modelMatrix??F.IDENTITY),this.debugShowBoundingVolume=e.debugShowBoundingVolume??!1,this.blendOption=e.blendOption??Wi.OPAQUE_AND_TRANSLUCENT}Object.defineProperties(xp.prototype,{length:{get:function(){return this._labels.length}},sizeInBytes:{get:function(){return this._glyphBillboardCollection.sizeInBytes+this._backgroundBillboardCollection.sizeInBytes}},ready:{get:function(){let e=this._backgroundBillboardCollection.get(0);return l(e)&&!e.ready?!1:this._glyphBillboardCollection.ready}},coarseDepthTestDistance:{get:function(){return this._backgroundBillboardCollection.coarseDepthTestDistance},set:function(e){this._backgroundBillboardCollection.coarseDepthTestDistance=e,this._glyphBillboardCollection.coarseDepthTestDistance=e}},threePointDepthTestDistance:{get:function(){return this._backgroundBillboardCollection.threePointDepthTestDistance},set:function(e){this._backgroundBillboardCollection.threePointDepthTestDistance=e,this._glyphBillboardCollection.threePointDepthTestDistance=e}}});xp.prototype.add=function(e){let t=new My(e,this);return this._labels.push(t),this._labelsToUpdate.push(t),t};xp.prototype.remove=function(e){if(l(e)&&e._labelCollection===this){let t=this._labels.indexOf(e);if(t!==-1)return this._labels.splice(t,1),U0e(this,e),!0}return!1};xp.prototype.removeAll=function(){let e=this._labels;for(let t=0,n=e.length;t<n;++t)U0e(this,e[t]);e.length=0};xp.prototype.contains=function(e){return l(e)&&e._labelCollection===this};xp.prototype.get=function(e){return this._labels[e]};xp.prototype.update=function(e){if(!this.show)return;let t=this._glyphBillboardCollection,n=this._backgroundBillboardCollection;t.modelMatrix=this.modelMatrix,t.debugShowBoundingVolume=this.debugShowBoundingVolume,n.modelMatrix=this.modelMatrix,n.debugShowBoundingVolume=this.debugShowBoundingVolume;let i=this._labelsToUpdate.length;for(let r=0;r<i;++r){let s=this._labelsToUpdate[r];if(s.isDestroyed())continue;let a=s._glyphs.length;s._rebindAllGlyphs&&(bet(this,s),s._rebindAllGlyphs=!1),s._repositionAllGlyphs&&(xet(s),s._repositionAllGlyphs=!1);let c=s._glyphs.length-a;this._totalGlyphCount+=c}let o=n.length>0?Wi.TRANSLUCENT:this.blendOption;t.blendOption=o,n.blendOption=o,t._highlightColor=this._highlightColor,n._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,n.update(e),t.update(e)};xp.prototype.isDestroyed=function(){return!1};xp.prototype.destroy=function(){return this.removeAll(),this._glyphBillboardCollection=this._glyphBillboardCollection.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),he(this)};var Tp=xp;var f$n=x(T(),1);var sqn=x(T(),1),zI=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 position2DHigh; +in vec3 position2DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 prevPosition2DHigh; +in vec3 prevPosition2DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec3 nextPosition2DHigh; +in vec3 nextPosition2DLow; +in vec4 texCoordExpandAndBatchIndex; + +out vec2 v_st; +out float v_width; +out vec4 v_pickColor; +out float v_polylineAngle; + +void main() +{ + float texCoord = texCoordExpandAndBatchIndex.x; + float expandDir = texCoordExpandAndBatchIndex.y; + bool usePrev = texCoordExpandAndBatchIndex.z < 0.0; + float batchTableIndex = texCoordExpandAndBatchIndex.w; + + vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex); + float width = widthAndShow.x + 0.5; + float show = widthAndShow.y; + + if (width < 1.0) + { + show = 0.0; + } + + vec4 pickColor = batchTable_getPickColor(batchTableIndex); + + vec4 p, prev, next; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz); + prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz); + next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); + prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy); + next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy), + czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz), + czm_morphTime); + prev = czm_columbusViewMorph( + czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy), + czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz), + czm_morphTime); + next = czm_columbusViewMorph( + czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy), + czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz), + czm_morphTime); + } + + #ifdef DISTANCE_DISPLAY_CONDITION + vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex); + vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex); + vec3 centerLow = centerLowAndRadius.xyz; + float radius = centerLowAndRadius.w; + vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex); + + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + lengthSq = czm_eyeHeight2D.y; + } + else + { + vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz); + lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius); + } + + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + show = 0.0; + } + #endif + + float polylineAngle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle); + gl_Position = czm_viewportOrthographic * positionWC * show; + + v_st.s = texCoord; + v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w); + + v_width = width; + v_pickColor = pickColor; + v_polylineAngle = polylineAngle; +} +`;var Lqn=x(T(),1);var yqn=x(T(),1);var Ul={};Ul.numberOfPoints=function(e,t,n){let i=h.distance(e,t);return Math.ceil(i/n)};Ul.numberOfPointsRhumbLine=function(e,t,n){let i=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(i/(n*n))))};var Tet=new fe;Ul.extractHeights=function(e,t){let n=e.length,i=new Array(n);for(let o=0;o<n;o++){let r=e[o];i[o]=t.cartesianToCartographic(r,Tet).height}return i};var _et=new F,Aet=new h,D0e=new h,Zet=new sn(h.UNIT_X,0),O0e=new h,Cet=new sn(h.UNIT_X,0),Ret=new h,Vet=new h,C8=[];function z0e(e,t,n){let i=C8;i.length=e;let o;if(t===n){for(o=0;o<e;o++)i[o]=t;return i}let s=(n-t)/e;for(o=0;o<e;o++){let a=t+o*s;i[o]=a}return i}var RD=new fe,CD=new fe,ky=new h,R8=new h,Get=new h,Z8=new I0,HI=new xc;function Eet(e,t,n,i,o,r,s,a){let c=i.scaleToGeodeticSurface(e,R8),d=i.scaleToGeodeticSurface(t,Get),u=Ul.numberOfPoints(e,t,n),m=i.cartesianToCartographic(c,RD),p=i.cartesianToCartographic(d,CD),b=z0e(u,o,r);Z8.setEndPoints(m,p);let f=Z8.surfaceDistance/u,y=a;m.height=o;let _=i.cartographicToCartesian(m,ky);h.pack(_,s,y),y+=3;for(let S=1;S<u;S++){let A=Z8.interpolateUsingSurfaceDistance(S*f,CD);A.height=b[S],_=i.cartographicToCartesian(A,ky),h.pack(_,s,y),y+=3}return y}function Let(e,t,n,i,o,r,s,a){let c=i.cartesianToCartographic(e,RD),d=i.cartesianToCartographic(t,CD),u=Ul.numberOfPointsRhumbLine(c,d,n);c.height=0,d.height=0;let m=z0e(u,o,r);HI.ellipsoid.equals(i)||(HI=new xc(void 0,void 0,i)),HI.setEndPoints(c,d);let p=HI.surfaceDistance/u,b=a;c.height=o;let f=i.cartographicToCartesian(c,ky);h.pack(f,s,b),b+=3;for(let y=1;y<u;y++){let _=HI.interpolateUsingSurfaceDistance(y*p,CD);_.height=m[y],f=i.cartographicToCartesian(_,ky),h.pack(f,s,b),b+=3}return b}Ul.wrapLongitude=function(e,t){let n=[],i=[];if(l(e)&&e.length>0){t=t??F.IDENTITY;let o=F.inverseTransformation(t,_et),r=F.multiplyByPoint(o,h.ZERO,Aet),s=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_Y,D0e),D0e),a=sn.fromPointNormal(r,s,Zet),c=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_X,O0e),O0e),d=sn.fromPointNormal(r,c,Cet),u=1;n.push(h.clone(e[0]));let m=n[0],p=e.length;for(let b=1;b<p;++b){let f=e[b];if(sn.getPointDistance(d,m)<0||sn.getPointDistance(d,f)<0){let y=di.lineSegmentPlane(m,f,a,Ret);if(l(y)){let _=h.multiplyByScalar(s,5e-9,Vet);sn.getPointDistance(a,m)<0&&h.negate(_,_),n.push(h.add(y,_,new h)),i.push(u+1),h.negate(_,_),n.push(h.add(y,_,new h)),u=1}}n.push(h.clone(e[b])),u++,m=f}i.push(u)}return{positions:n,lengths:i}};Ul.generateArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=e.ellipsoid??ie.default,o=e.height??0,r=Array.isArray(o);if(n<1)return[];if(n===1){let y=i.scaleToGeodeticSurface(t[0],R8);if(o=r?o[0]:o,o!==0){let _=i.geodeticSurfaceNormal(y,ky);h.multiplyByScalar(_,o,_),h.add(y,_,y)}return[y.x,y.y,y.z]}let s=e.minDistance;if(!l(s)){let y=e.granularity??W.RADIANS_PER_DEGREE;s=W.chordLength(y,i.maximumRadius)}let a=0,c;for(c=0;c<n-1;c++)a+=Ul.numberOfPoints(t[c],t[c+1],s);let d=(a+1)*3,u=new Array(d),m=0;for(c=0;c<n-1;c++){let y=t[c],_=t[c+1],S=r?o[c]:o,A=r?o[c+1]:o;m=Eet(y,_,s,i,S,A,u,m)}C8.length=0;let p=t[n-1],b=i.cartesianToCartographic(p,RD);b.height=r?o[n-1]:o;let f=i.cartographicToCartesian(b,ky);return h.pack(f,u,d-3),u};var B0e=new fe,Wet=new fe;Ul.generateRhumbArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=e.ellipsoid??ie.default,o=e.height??0,r=Array.isArray(o);if(n<1)return[];if(n===1){let S=i.scaleToGeodeticSurface(t[0],R8);if(o=r?o[0]:o,o!==0){let A=i.geodeticSurfaceNormal(S,ky);h.multiplyByScalar(A,o,A),h.add(S,A,S)}return[S.x,S.y,S.z]}let s=e.granularity??W.RADIANS_PER_DEGREE,a=0,c,d=i.cartesianToCartographic(t[0],B0e),u;for(c=0;c<n-1;c++)u=i.cartesianToCartographic(t[c+1],Wet),a+=Ul.numberOfPointsRhumbLine(d,u,s),d=fe.clone(u,B0e);let m=(a+1)*3,p=new Array(m),b=0;for(c=0;c<n-1;c++){let S=t[c],A=t[c+1],Z=r?o[c]:o,R=r?o[c+1]:o;b=Let(S,A,s,i,Z,R,p,b)}C8.length=0;let f=t[n-1],y=i.cartesianToCartographic(f,RD);y.height=r?o[n-1]:o;let _=i.cartographicToCartesian(y,ky);return h.pack(_,p,m-3),p};Ul.generateCartesianArc=function(e){let t=Ul.generateArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=h.unpack(t,o*3);return i};Ul.generateCartesianRhumbArc=function(e){let t=Ul.generateRhumbArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=h.unpack(t,o*3);return i};var Hi=Ul;function gu(e,t){e=e??B.EMPTY_OBJECT,this._show=e.show??!0,this._width=e.width??1,this._loop=e.loop??!1,this._distanceDisplayCondition=e.distanceDisplayCondition,this._material=e.material,l(this._material)||(this._material=Di.fromType(Di.ColorType,{color:new U(1,1,1,1)}));let n=e.positions;l(n)||(n=[]),this._positions=n,this._actualPositions=Co(n,h.equalsEpsilon),this._loop&&this._actualPositions.length>2&&(this._actualPositions===this._positions&&(this._actualPositions=n.slice()),this._actualPositions.push(h.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=e.id;let i;l(t)&&(i=F.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Hi.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(K0e),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=ue.fromPoints(this._actualPositions),this._boundingVolumeWC=ue.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new ue}var H0e=gu.POSITION_INDEX=0,vet=gu.SHOW_INDEX=1,Fet=gu.WIDTH_INDEX=2,Iet=gu.MATERIAL_INDEX=3,KI=gu.POSITION_SIZE_INDEX=4,Pet=gu.DISTANCE_DISPLAY_CONDITION=5,K0e=gu.NUMBER_OF_PROPERTIES=6;function Sb(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;l(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(gu.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,Sb(this,vet))}},positions:{get:function(){return this._positions},set:function(e){let t=Co(e,h.equalsEpsilon);this._loop&&t.length>2&&(t===e&&(t=e.slice()),t.push(h.clone(t[0]))),(this._actualPositions.length!==t.length||this._actualPositions.length!==this._length)&&Sb(this,KI),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=ue.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=ue.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),Sb(this,H0e),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,Sb(this,Iet))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,Sb(this,Fet))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){let t=this._actualPositions;e?t.length>2&&!h.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(h.clone(t[0]))):t.length>2&&h.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,Sb(this,KI)}}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!l(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Ut.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Ut.clone(e,this._distanceDisplayCondition),Sb(this,Pet))}}});gu.prototype.update=function(){let e=F.IDENTITY;l(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[H0e]>0||this._propertiesChanged[KI]>0;if((!F.equals(e,this._modelMatrix)||i)&&(this._segments=Hi.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=ue.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=F.clone(e,this._modelMatrix),this._segments.positions.length!==t)Sb(this,KI);else{let o=n.length;for(let r=0;r<o;++r)if(n[r]!==this._segments.lengths[r]){Sb(this,KI);break}}};gu.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._polylineCollection,id:this._id})),this._pickId};gu.prototype._clean=function(){this._dirty=!1;let e=this._propertiesChanged;for(let t=0;t<K0e-1;++t)e[t]=0};gu.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._material=this._material&&this._material.destroy(),this._polylineCollection=void 0};var Zm=gu;var Xet=Zm.SHOW_INDEX,Yet=Zm.WIDTH_INDEX,G8=Zm.POSITION_INDEX,Net=Zm.MATERIAL_INDEX,J0e=Zm.POSITION_SIZE_INDEX,wet=Zm.DISTANCE_DISPLAY_CONDITION,nbe=Zm.NUMBER_OF_PROPERTIES,Cd={texCoordExpandAndBatchIndex:0,position3DHigh:1,position3DLow:2,position2DHigh:3,position2DLow:4,prevPosition3DHigh:5,prevPosition3DLow:6,prevPosition2DHigh:7,prevPosition2DLow:8,nextPosition3DHigh:9,nextPosition3DLow:10,nextPosition2DHigh:11,nextPosition2DLow:12};function Hh(e){e=e??B.EMPTY_OBJECT,this.show=e.show??!0,this.modelMatrix=F.clone(e.modelMatrix??F.IDENTITY),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=e.debugShowBoundingVolume??!1,this._opaqueRS=void 0,this._translucentRS=void 0,this._colorCommands=[],this._polylinesUpdated=!1,this._polylinesRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(nbe),this._polylines=[],this._polylineBuckets={},this._positionBufferUsage={bufferUsage:Fe.STATIC_DRAW,frameCount:0},this._mode=void 0,this._polylinesToUpdate=[],this._vertexArrays=[],this._positionBuffer=void 0,this._texCoordExpandAndBatchIndexBuffer=void 0,this._batchTable=void 0,this._createBatchTable=!1,this._useHighlightColor=!1,this._highlightColor=U.clone(U.WHITE);let t=this;this._uniformMap={u_highlightColor:function(){return t._highlightColor}}}Object.defineProperties(Hh.prototype,{length:{get:function(){return E8(this),this._polylines.length}}});Hh.prototype.add=function(e){let t=new Zm(e,this);return t._index=this._polylines.length,this._polylines.push(t),this._createVertexArray=!0,this._createBatchTable=!0,t};Hh.prototype.remove=function(e){if(this.contains(e)){if(this._polylinesRemoved=!0,this._createVertexArray=!0,this._createBatchTable=!0,l(e._bucket)){let t=e._bucket;t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()}return e._destroy(),!0}return!1};Hh.prototype.removeAll=function(){L8(this),abe(this),this._polylineBuckets={},this._polylinesRemoved=!1,this._polylines.length=0,this._polylinesToUpdate.length=0,this._createVertexArray=!0};Hh.prototype.contains=function(e){return l(e)&&e._polylineCollection===this};Hh.prototype.get=function(e){return E8(this),this._polylines[e]};function Met(e,t){l(e._batchTable)&&e._batchTable.destroy();let n=[{functionName:"batchTable_getWidthAndShow",componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:2},{functionName:"batchTable_getPickColor",componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0},{functionName:"batchTable_getCenterHigh",componentDatatype:J.FLOAT,componentsPerAttribute:3},{functionName:"batchTable_getCenterLowAndRadius",componentDatatype:J.FLOAT,componentsPerAttribute:4},{functionName:"batchTable_getDistanceDisplayCondition",componentDatatype:J.FLOAT,componentsPerAttribute:2}];e._batchTable=new ZT(t,n,e._polylines.length)}var ibe=new Zn,obe=new ce,rbe=new k;Hh.prototype.update=function(e){if(E8(this),this._polylines.length===0||!this.show)return;zet(this,e);let t=e.context,n=e.mapProjection,i,o=this._propertiesChanged;if(this._createBatchTable){if(Xt.maximumVertexTextureImageUnits===0)throw new ae("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");Met(this,t),this._createBatchTable=!1}if(this._createVertexArray||Uet(this))q0e(this,t,n);else if(this._polylinesUpdated){let c=this._polylinesToUpdate;if(this._mode!==re.SCENE3D){let d=c.length;for(let u=0;u<d;++u)i=c[u],i.update()}if(o[J0e]||o[Net])q0e(this,t,n);else{let d=c.length,u=this._polylineBuckets;for(let m=0;m<d;++m){i=c[m],o=i._propertiesChanged;let p=i._bucket,b=0;for(let f in u)if(u.hasOwnProperty(f)){if(u[f]===p){o[G8]&&p.writeUpdate(b,i,this._positionBuffer,n);break}b+=u[f].lengthOfPositions}if((o[Xet]||o[Yet])&&this._batchTable.setBatchedAttribute(i._index,0,new k(i._width,i._show)),this._batchTable.attributes.length>2){if(o[G8]||o[J0e]){let f=e.mode===re.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,y=Zn.fromCartesian(f.center,ibe),_=ce.fromElements(y.low.x,y.low.y,y.low.z,f.radius,obe);this._batchTable.setBatchedAttribute(i._index,2,y.high),this._batchTable.setBatchedAttribute(i._index,3,_)}if(o[wet]){let f=rbe;f.x=0,f.y=Number.MAX_VALUE;let y=i.distanceDisplayCondition;l(y)&&(f.x=y.near,f.y=y.far),this._batchTable.setBatchedAttribute(i._index,4,f)}}i._clean()}}c.length=0,this._polylinesUpdated=!1}o=this._propertiesChanged;for(let c=0;c<nbe;++c)o[c]=0;let r=F.IDENTITY;e.mode===re.SCENE3D&&(r=this.modelMatrix);let s=e.passes,a=e.morphTime!==0;if((!l(this._opaqueRS)||this._opaqueRS.depthTest.enabled!==a)&&(this._opaqueRS=Be.fromCache({depthMask:a,depthTest:{enabled:a}})),(!l(this._translucentRS)||this._translucentRS.depthTest.enabled!==a)&&(this._translucentRS=Be.fromCache({blending:nn.ALPHA_BLEND,depthMask:!a,depthTest:{enabled:a}})),this._batchTable.update(e),s.render||s.pick){let c=this._colorCommands;ket(this,e,c,r)}};var JI=new ue,j0e=new ue;function ket(e,t,n,i){let o=t.context,r=t.commandList,s=n.length,a=0,c=!0,d=e._vertexArrays,u=e.debugShowBoundingVolume,p=e._batchTable.getUniformMapCallback(),b=d.length;for(let f=0;f<b;++f){let y=d[f],_=y.buckets,S=_.length;for(let A=0;A<S;++A){let Z=_[A],R=Z.offset,G=Z.bucket.shaderProgram,E=Z.bucket.polylines,v=E.length,I,X,Y=0,g,C;for(let V=0;V<v;++V){let L=E[V],P=Oet(L._material);if(P!==I){if(l(I)&&Y>0){let D=X.isTranslucent();a>=s?(g=new at({owner:e}),n.push(g)):g=n[a],++a,C=vt(p(X._uniforms),e._uniformMap),g.boundingVolume=ue.clone(JI,g.boundingVolume),g.modelMatrix=i,g.shaderProgram=G,g.vertexArray=y.va,g.renderState=D?e._translucentRS:e._opaqueRS,g.pass=D?Le.TRANSLUCENT:Le.OPAQUE,g.debugShowBoundingVolume=u,g.pickId="v_pickColor",g.uniformMap=C,g.count=Y,g.offset=R,R+=Y,Y=0,c=!0,r.push(g)}X=L._material,X.update(o),I=P}let N=L._locatorBuckets,O=N.length;for(let D=0;D<O;++D){let w=N[D];w.locator===Z&&(Y+=w.count)}let M;t.mode===re.SCENE3D?M=L._boundingVolumeWC:t.mode===re.COLUMBUS_VIEW?M=L._boundingVolume2D:t.mode===re.SCENE2D?l(L._boundingVolume2D)&&(M=ue.clone(L._boundingVolume2D,j0e),M.center.x=0):l(L._boundingVolumeWC)&&l(L._boundingVolume2D)&&(M=ue.union(L._boundingVolumeWC,L._boundingVolume2D,j0e)),c?(c=!1,ue.clone(M,JI)):ue.union(M,JI,JI)}l(I)&&Y>0&&(a>=s?(g=new at({owner:e}),n.push(g)):g=n[a],++a,C=vt(p(X._uniforms),e._uniformMap),g.boundingVolume=ue.clone(JI,g.boundingVolume),g.modelMatrix=i,g.shaderProgram=G,g.vertexArray=y.va,g.renderState=X.isTranslucent()?e._translucentRS:e._opaqueRS,g.pass=X.isTranslucent()?Le.TRANSLUCENT:Le.OPAQUE,g.debugShowBoundingVolume=u,g.pickId="v_pickColor",g.uniformMap=C,g.count=Y,g.offset=R,c=!0,r.push(g)),I=void 0}}n.length=a}Hh.prototype.isDestroyed=function(){return!1};Hh.prototype.destroy=function(){return sbe(this),L8(this),abe(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),he(this)};function Uet(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[G8]?(i.bufferUsage!==Fe.STREAM_DRAW&&(t=!0,i.bufferUsage=Fe.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Fe.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Fe.STATIC_DRAW):i.frameCount--),t}var Q0e=[0,0,0];function q0e(e,t,n){e._createVertexArray=!1,L8(e),sbe(e),Bet(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,d=[[]],u=0,m=e._polylineBuckets,p,b;for(p in m)m.hasOwnProperty(p)&&(b=m[p],b.updateShader(t,r,s),u+=b.lengthOfPositions);if(u>0){let f=e._mode,y=new Float32Array(6*u*3),_=new Float32Array(u*4),S,A=0,Z=0,R=0;for(p in m)if(m.hasOwnProperty(p)){b=m[p],b.write(y,_,A,Z,R,r,t,n),f===re.MORPHING&&(l(S)||(S=new Float32Array(6*u*3)),b.writeForMorph(S,A));let C=b.lengthOfPositions;A+=6*C*3,Z+=C*4,R+=C*4,c=b.updateIndices(i,a,d,c)}let G=e._positionBufferUsage.bufferUsage,E=Fe.STATIC_DRAW;e._positionBuffer=$e.createVertexBuffer({context:t,typedArray:y,usage:G});let v;l(S)&&(v=$e.createVertexBuffer({context:t,typedArray:S,usage:G})),e._texCoordExpandAndBatchIndexBuffer=$e.createVertexBuffer({context:t,typedArray:_,usage:E});let I=3*Float32Array.BYTES_PER_ELEMENT,X=4*Float32Array.BYTES_PER_ELEMENT,Y=0,g=i.length;for(let C=0;C<g;++C)if(o=i[C],o.length>0){let V=new Uint16Array(o),L=$e.createIndexBuffer({context:t,typedArray:V,usage:Fe.STATIC_DRAW,indexDatatype:De.UNSIGNED_SHORT});Y+=a[C];let P=6*(C*(I*W.SIXTY_FOUR_KILOBYTES)-Y*I),N=I+P,O=I+N,M=I+O,D=I+M,w=I+D,z=C*(X*W.SIXTY_FOUR_KILOBYTES)-Y*X,K=[{index:Cd.position3DHigh,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:P,strideInBytes:6*I},{index:Cd.position3DLow,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:N,strideInBytes:6*I},{index:Cd.position2DHigh,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:P,strideInBytes:6*I},{index:Cd.position2DLow,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:N,strideInBytes:6*I},{index:Cd.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:O,strideInBytes:6*I},{index:Cd.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:M,strideInBytes:6*I},{index:Cd.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:O,strideInBytes:6*I},{index:Cd.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:M,strideInBytes:6*I},{index:Cd.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:D,strideInBytes:6*I},{index:Cd.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:w,strideInBytes:6*I},{index:Cd.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:D,strideInBytes:6*I},{index:Cd.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:J.FLOAT,offsetInBytes:w,strideInBytes:6*I},{index:Cd.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:J.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:z}],ee,H,te,q;f===re.SCENE3D?(H=e._positionBuffer,ee="vertexBuffer",te=Q0e,q="value"):f===re.SCENE2D||f===re.COLUMBUS_VIEW?(H=Q0e,ee="value",te=e._positionBuffer,q="vertexBuffer"):(H=v,ee="vertexBuffer",te=e._positionBuffer,q="vertexBuffer"),K[0][ee]=H,K[1][ee]=H,K[2][q]=te,K[3][q]=te,K[4][ee]=H,K[5][ee]=H,K[6][q]=te,K[7][q]=te,K[8][ee]=H,K[9][ee]=H,K[10][q]=te,K[11][q]=te;let de=new wn({context:t,attributes:K,indexBuffer:L});e._vertexArrays.push({va:de,buckets:d[C]})}}}function Det(e,t){return t instanceof Ft?t.id:t}var VD=[];function Oet(e){let t=Di._uniformList[e.type],n=t.length;VD.length=2*n;let i=0;for(let o=0;o<n;++o){let r=t[o];VD[i]=r,VD[i+1]=e._uniforms[r](),i+=2}return`${e.type}:${JSON.stringify(VD,Det)}`}function Bet(e){let t=e._mode,n=e._modelMatrix,i=e._polylineBuckets={},o=e._polylines,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a._actualPositions.length>1){a.update();let c=a.material,d=i[c.type];l(d)||(d=i[c.type]=new _p(c,t,n)),d.addPolyline(a)}}}function zet(e,t){let n=t.mode;(e._mode!==n||!F.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=F.clone(e.modelMatrix),e._createVertexArray=!0)}function E8(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;let t=[],n=[],i=0,o,r=e._polylines.length;for(let s=0;s<r;++s)o=e._polylines[s],o.isDestroyed||(o._index=i++,n.push(o),t.push(o));e._polylines=t,e._polylinesToUpdate=n}}function L8(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)if(!t[i].isDestroyed){let o=t[i]._bucket;l(o)&&(o.shaderProgram=o.shaderProgram&&o.shaderProgram.destroy())}}function sbe(e){let t=e._vertexArrays.length;for(let n=0;n<t;++n)e._vertexArrays[n].va.destroy();e._vertexArrays.length=0}Hh.prototype._updatePolyline=function(e,t){this._polylinesUpdated=!0,e._dirty||this._polylinesToUpdate.push(e),++this._propertiesChanged[t]};function abe(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)t[i].isDestroyed||t[i]._destroy()}function V8(e,t,n){this.count=e,this.offset=t,this.bucket=n}function _p(e,t,n){this.polylines=[],this.lengthOfPositions=0,this.material=e,this.shaderProgram=void 0,this.mode=t,this.modelMatrix=n}_p.prototype.addPolyline=function(e){this.polylines.push(e),e._actualLength=this.getPolylinePositionsLength(e),this.lengthOfPositions+=e._actualLength,e._bucket=this};_p.prototype.updateShader=function(e,t,n){if(l(this.shaderProgram))return;let i=["DISTANCE_DISPLAY_CONDITION"];n&&i.push("VECTOR_TILE"),this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&i.push("POLYLINE_DASH"),i.push("CLIP_POLYLINE");let o=new He({defines:i,sources:[`in vec4 v_pickColor; +`,this.material.shaderSource,LT]}),r=t.getVertexShaderCallback()(zI),s=new He({defines:i,sources:[Sl,r]});this.shaderProgram=tn.fromCache({context:e,vertexShaderSource:s,fragmentShaderSource:o,attributeLocations:Cd})};function cbe(e){return h.dot(h.UNIT_X,e._boundingVolume.center)<0||e._boundingVolume.intersectPlane(sn.ORIGIN_ZX_PLANE)===Qt.INTERSECTING}_p.prototype.getPolylinePositionsLength=function(e){let t;if(this.mode===re.SCENE3D||!cbe(e))return t=e._actualPositions.length,t*4-4;let n=0,i=e._segments.lengths;t=i.length;for(let o=0;o<t;++o)n+=i[o]*4-4;return n};var la=new h,Cm=new h,Rm=new h,GD=new h,Het=new ce,Ket=new k;_p.prototype.write=function(e,t,n,i,o,r,s,a){let c=this.mode,d=a.ellipsoid.maximumRadius*W.PI,u=this.polylines,m=u.length;for(let p=0;p<m;++p){let b=u[p],f=b.width,y=b.show&&f>0,_=b._index,S=this.getSegments(b,a),A=S.positions,Z=S.lengths,R=A.length,G=b.getPickId(s).color,E=0,v=0,I;for(let O=0;O<R;++O){O===0?b._loop?I=A[R-2]:(I=GD,h.subtract(A[0],A[1],I),h.add(A[0],I,I)):I=A[O-1],h.clone(I,Cm),h.clone(A[O],la),O===R-1?b._loop?I=A[1]:(I=GD,h.subtract(A[R-1],A[R-2],I),h.add(A[R-1],I,I)):I=A[O+1],h.clone(I,Rm);let M=Z[E];O===v+M&&(v+=M,++E);let D=O-v===0,w=O===v+Z[E]-1;c===re.SCENE2D&&(Cm.z=0,la.z=0,Rm.z=0),(c===re.SCENE2D||c===re.MORPHING)&&(D||w)&&d-Math.abs(la.x)<1&&((la.x<0&&Cm.x>0||la.x>0&&Cm.x<0)&&h.clone(la,Cm),(la.x<0&&Rm.x>0||la.x>0&&Rm.x<0)&&h.clone(la,Rm));let z=D?2:0,K=w?2:4;for(let ee=z;ee<K;++ee){Zn.writeElements(la,e,n),Zn.writeElements(Cm,e,n+6),Zn.writeElements(Rm,e,n+12);let H=ee-2<0?-1:1;t[o]=O/(R-1),t[o+1]=2*(ee%2)-1,t[o+2]=H,t[o+3]=_,n+=18,o+=4}}let X=Het;X.x=U.floatToByte(G.red),X.y=U.floatToByte(G.green),X.z=U.floatToByte(G.blue),X.w=U.floatToByte(G.alpha);let Y=Ket;Y.x=f,Y.y=y?1:0;let g=c===re.SCENE2D?b._boundingVolume2D:b._boundingVolumeWC,C=Zn.fromCartesian(g.center,ibe),V=C.high,L=ce.fromElements(C.low.x,C.low.y,C.low.z,g.radius,obe),P=rbe;P.x=0,P.y=Number.MAX_VALUE;let N=b.distanceDisplayCondition;l(N)&&(P.x=N.near,P.y=N.far),r.setBatchedAttribute(_,0,Y),r.setBatchedAttribute(_,1,X),r.attributes.length>2&&(r.setBatchedAttribute(_,2,V),r.setBatchedAttribute(_,3,L),r.setBatchedAttribute(_,4,P))}};var Jet=new h,jet=new h,Qet=new h,$0e=new h;_p.prototype.writeForMorph=function(e,t){let n=this.modelMatrix,i=this.polylines,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=s._segments.positions,c=s._segments.lengths,d=a.length,u=0,m=0;for(let p=0;p<d;++p){let b;p===0?s._loop?b=a[d-2]:(b=$0e,h.subtract(a[0],a[1],b),h.add(a[0],b,b)):b=a[p-1],b=F.multiplyByPoint(n,b,jet);let f=F.multiplyByPoint(n,a[p],Jet),y;p===d-1?s._loop?y=a[1]:(y=$0e,h.subtract(a[d-1],a[d-2],y),h.add(a[d-1],y,y)):y=a[p+1],y=F.multiplyByPoint(n,y,Qet);let _=c[u];p===m+_&&(m+=_,++u);let S=p-m===0,A=p===m+c[u]-1,Z=S?2:0,R=A?2:4;for(let G=Z;G<R;++G)Zn.writeElements(f,e,t),Zn.writeElements(b,e,t+6),Zn.writeElements(y,e,t+12),t+=18}}};var qet=new Array(1);_p.prototype.updateIndices=function(e,t,n,i){let o=n.length-1,r=new V8(0,i,this);n[o].push(r);let s=0,a=e[e.length-1],c=0;a.length>0&&(c=a[a.length-1]+1);let d=this.polylines,u=d.length;for(let m=0;m<u;++m){let p=d[m];p._locatorBuckets=[];let b;if(this.mode===re.SCENE3D){b=qet;let y=p._actualPositions.length;if(y>0)b[0]=y;else continue}else b=p._segments.lengths;let f=b.length;if(f>0){let y=0;for(let _=0;_<f;++_){let S=b[_]-1;for(let A=0;A<S;++A)c+4>W.SIXTY_FOUR_KILOBYTES&&(p._locatorBuckets.push({locator:r,count:y}),y=0,t.push(4),a=[],e.push(a),c=0,r.count=s,s=0,i=0,r=new V8(0,0,this),n[++o]=[r]),a.push(c,c+2,c+1),a.push(c+1,c+2,c+3),y+=6,s+=6,i+=6,c+=4}p._locatorBuckets.push({locator:r,count:y}),c+4>W.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,r.count=s,i=0,s=0,r=new V8(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};_p.prototype.getPolylineStartIndex=function(e){let t=this.polylines,n=0,i=t.length;for(let o=0;o<i;++o){let r=t[o];if(r===e)break;n+=r._actualLength}return n};var OC={positions:void 0,lengths:void 0},ebe=new Array(1),$et=new h,ett=new fe;_p.prototype.getSegments=function(e,t){let n=e._actualPositions;if(this.mode===re.SCENE3D)return ebe[0]=n.length,OC.positions=n,OC.lengths=ebe,OC;cbe(e)&&(n=e._segments.positions);let i=t.ellipsoid,o=[],r=this.modelMatrix,s=n.length,a,c=$et;for(let d=0;d<s;++d)a=n[d],c=F.multiplyByPoint(r,a,c),o.push(t.project(i.cartesianToCartographic(c,ett)));if(o.length>0){e._boundingVolume2D=ue.fromPoints(o,e._boundingVolume2D);let d=e._boundingVolume2D.center;e._boundingVolume2D.center=new h(d.z,d.x,d.y)}return OC.positions=o,OC.lengths=e._segments.lengths,OC};var tbe;_p.prototype.writeUpdate=function(e,t,n,i){let o=this.mode,r=i.ellipsoid.maximumRadius*W.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=tbe,c=6*s*3;!l(a)||a.length<c?a=tbe=new Float32Array(c):a.length>c&&(a=new Float32Array(a.buffer,0,c));let d=this.getSegments(t,i),u=d.positions,m=d.lengths,p=0,b=0,f=0,y;s=u.length;for(let _=0;_<s;++_){_===0?t._loop?y=u[s-2]:(y=GD,h.subtract(u[0],u[1],y),h.add(u[0],y,y)):y=u[_-1],h.clone(y,Cm),h.clone(u[_],la),_===s-1?t._loop?y=u[1]:(y=GD,h.subtract(u[s-1],u[s-2],y),h.add(u[s-1],y,y)):y=u[_+1],h.clone(y,Rm);let S=m[b];_===f+S&&(f+=S,++b);let A=_-f===0,Z=_===f+m[b]-1;o===re.SCENE2D&&(Cm.z=0,la.z=0,Rm.z=0),(o===re.SCENE2D||o===re.MORPHING)&&(A||Z)&&r-Math.abs(la.x)<1&&((la.x<0&&Cm.x>0||la.x>0&&Cm.x<0)&&h.clone(la,Cm),(la.x<0&&Rm.x>0||la.x>0&&Rm.x<0)&&h.clone(la,Rm));let R=A?2:0,G=Z?2:4;for(let E=R;E<G;++E)Zn.writeElements(la,a,p),Zn.writeElements(Cm,a,p+6),Zn.writeElements(Rm,a,p+12),p+=18}n.copyFromArrayView(a,18*Float32Array.BYTES_PER_ELEMENT*e)}};var Kh=Hh;function Uy(e){this._positions=e.positions,this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._rectangle=e.rectangle,this._minHeight=e.minimumHeight,this._maxHeight=e.maximumHeight,this._heightReference=e.heightReference,this._billboardCollection=new bu({batchTable:e.batchTable,scene:e.scene}),this._labelCollection=new Tp({batchTable:e.batchTable,scene:e.scene}),this._polylineCollection=new Kh,this._polylineCollection._useHighlightColor=!0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Uy.prototype,{ready:{get:function(){return this._ready}},pointsLength:{get:function(){return this._billboardCollection.length}},texturesByteLength:{get:function(){let e=this._billboardCollection.sizeInBytes,t=this._labelCollection.sizeInBytes;return e+t}}});function ttt(e,t){let n=e._rectangle,i=e._minHeight,o=e._maxHeight,r=2+se.packedLength+ie.packedLength,s=new Float64Array(r),a=0;return s[a++]=i,s[a++]=o,se.pack(n,s,a),a+=se.packedLength,ie.pack(t,s,a),s}var ntt=new Hn("createVectorTilePoints",5),itt=new h;function ott(e,t){let n=e._positions,i=e._packedBuffer;l(i)||(n=e._positions=n.slice(),e._batchIds=e._batchIds.slice(),i=e._packedBuffer=ttt(e,t));let o=[n.buffer,i.buffer],r={positions:n.buffer,packedBuffer:i.buffer},s=ntt.scheduleTask(r,o);if(l(s))return s.then(a=>{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,d=e._labelCollection,u=e._polylineCollection;n=e._positions;let m=e._batchIds,p=n.length/3,b=e._heightReference??st.NONE;for(let f=0;f<p;++f){let y=m[f],_=h.unpack(n,f*3,itt),S=c.add();S.position=_,S._batchIndex=y,S.heightReference=b;let A=d.add();A.text=" ",A.position=_,A._batchIndex=y,A.heightReference=b;let Z=u.add();Z.positions=[h.clone(_),h.clone(_)]}e._positions=void 0,e._packedBuffer=void 0,e._ready=!0}).catch(a=>{e.isDestroyed()||(e._error=a)})}Uy.prototype.createFeatures=function(e,t){let n=this._billboardCollection,i=this._labelCollection,o=this._polylineCollection,r=this._batchIds,s=r.length;for(let a=0;a<s;++a){let c=r[a],d=n.get(a),u=i.get(a),m=o.get(a);t[c]=new Tb(e,c,d,u,m)}};Uy.prototype.applyDebugSettings=function(e,t){e?(U.clone(t,this._billboardCollection._highlightColor),U.clone(t,this._labelCollection._highlightColor),U.clone(t,this._polylineCollection._highlightColor)):(U.clone(U.WHITE,this._billboardCollection._highlightColor),U.clone(U.WHITE,this._labelCollection._highlightColor),U.clone(U.WHITE,this._polylineCollection._highlightColor))};function rtt(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.pointSize=Tb.defaultPointSize,s.color=Tb.defaultColor,s.pointOutlineColor=Tb.defaultPointOutlineColor,s.pointOutlineWidth=Tb.defaultPointOutlineWidth,s.labelColor=U.WHITE,s.labelOutlineColor=U.WHITE,s.labelOutlineWidth=1,s.font="30px sans-serif",s.labelStyle=cr.FILL,s.labelText=void 0,s.backgroundColor=new U(.165,.165,.165,.8),s.backgroundPadding=new k(7,5),s.backgroundEnabled=!1,s.scaleByDistance=void 0,s.translucencyByDistance=void 0,s.distanceDisplayCondition=void 0,s.heightOffset=0,s.anchorLineEnabled=!1,s.anchorLineColor=U.WHITE,s.image=void 0,s.disableDepthTestDistance=0,s.horizontalOrigin=Fi.CENTER,s.verticalOrigin=kn.CENTER,s.labelHorizontalOrigin=Fi.RIGHT,s.labelVerticalOrigin=kn.BASELINE}}var stt=new U,att=new U,ctt=new U,ltt=new U,dtt=new U,utt=new U,jI=new Bt,QI=new Bt,W8=new Ut;Uy.prototype.applyStyle=function(e,t){if(!l(e)){rtt(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];if(l(e.show)&&(s.show=e.show.evaluate(s)),l(e.pointSize)&&(s.pointSize=e.pointSize.evaluate(s)),l(e.color)&&(s.color=e.color.evaluateColor(s,stt)),l(e.pointOutlineColor)&&(s.pointOutlineColor=e.pointOutlineColor.evaluateColor(s,att)),l(e.pointOutlineWidth)&&(s.pointOutlineWidth=e.pointOutlineWidth.evaluate(s)),l(e.labelColor)&&(s.labelColor=e.labelColor.evaluateColor(s,ctt)),l(e.labelOutlineColor)&&(s.labelOutlineColor=e.labelOutlineColor.evaluateColor(s,ltt)),l(e.labelOutlineWidth)&&(s.labelOutlineWidth=e.labelOutlineWidth.evaluate(s)),l(e.font)&&(s.font=e.font.evaluate(s)),l(e.labelStyle)&&(s.labelStyle=e.labelStyle.evaluate(s)),l(e.labelText)?s.labelText=e.labelText.evaluate(s):s.labelText=void 0,l(e.backgroundColor)&&(s.backgroundColor=e.backgroundColor.evaluateColor(s,dtt)),l(e.backgroundPadding)&&(s.backgroundPadding=e.backgroundPadding.evaluate(s)),l(e.backgroundEnabled)&&(s.backgroundEnabled=e.backgroundEnabled.evaluate(s)),l(e.scaleByDistance)){let a=e.scaleByDistance.evaluate(s);l(a)?(jI.near=a.x,jI.nearValue=a.y,jI.far=a.z,jI.farValue=a.w,s.scaleByDistance=jI):s.scaleByDistance=void 0}else s.scaleByDistance=void 0;if(l(e.translucencyByDistance)){let a=e.translucencyByDistance.evaluate(s);l(a)?(QI.near=a.x,QI.nearValue=a.y,QI.far=a.z,QI.farValue=a.w,s.translucencyByDistance=QI):s.translucencyByDistance=void 0}else s.translucencyByDistance=void 0;if(l(e.distanceDisplayCondition)){let a=e.distanceDisplayCondition.evaluate(s);l(a)?(W8.near=a.x,W8.far=a.y,s.distanceDisplayCondition=W8):s.distanceDisplayCondition=void 0}else s.distanceDisplayCondition=void 0;l(e.heightOffset)&&(s.heightOffset=e.heightOffset.evaluate(s)),l(e.anchorLineEnabled)&&(s.anchorLineEnabled=e.anchorLineEnabled.evaluate(s)),l(e.anchorLineColor)&&(s.anchorLineColor=e.anchorLineColor.evaluateColor(s,utt)),l(e.image)?s.image=e.image.evaluate(s):s.image=void 0,l(e.disableDepthTestDistance)&&(s.disableDepthTestDistance=e.disableDepthTestDistance.evaluate(s)),l(e.horizontalOrigin)&&(s.horizontalOrigin=e.horizontalOrigin.evaluate(s)),l(e.verticalOrigin)&&(s.verticalOrigin=e.verticalOrigin.evaluate(s)),l(e.labelHorizontalOrigin)&&(s.labelHorizontalOrigin=e.labelHorizontalOrigin.evaluate(s)),l(e.labelVerticalOrigin)&&(s.labelVerticalOrigin=e.labelVerticalOrigin.evaluate(s))}};Uy.prototype.update=function(e){if(!this._ready&&(l(this._promise)||(this._promise=ott(this,e.mapProjection.ellipsoid)),l(this._error))){let t=this._error;throw this._error=void 0,t}this._polylineCollection.update(e),this._billboardCollection.update(e),this._labelCollection.update(e)};Uy.prototype.isDestroyed=function(){return!1};Uy.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._polylineCollection=this._polylineCollection&&this._polylineCollection.destroy(),he(this)};var qI=Uy;var K$n=x(T(),1);function Ab(e){this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._counts=e.counts,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._batchedPositions=void 0,this._transferrableBatchIds=void 0,this._vertexBatchIds=void 0,this._ellipsoid=e.ellipsoid??ie.WGS84,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._polygonMinimumHeights=e.polygonMinimumHeights,this._polygonMaximumHeights=e.polygonMaximumHeights,this._center=e.center??h.ZERO,this._rectangle=e.rectangle,this._center=void 0,this._boundingVolume=e.boundingVolume,this._boundingVolumes=void 0,this._batchedIndices=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=Kn.BOTH}Object.defineProperties(Ab.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});function mtt(e){let t=new Float64Array(3+h.packedLength+ie.packedLength+se.packedLength),n=0;return t[n++]=e._indices.BYTES_PER_ELEMENT,t[n++]=e._minimumHeight,t[n++]=e._maximumHeight,h.pack(e._center,t,n),n+=h.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,se.pack(e._rectangle,t,n),t}function htt(e,t){let n=1,i=t[n++],o=e._boundingVolumes=new Array(i);for(let a=0;a<i;++a)o[a]=en.unpack(t,n),n+=en.packedLength;let r=t[n++],s=e._batchedIndices=new Array(r);for(let a=0;a<r;++a){let c=U.unpack(t,n);n+=U.packedLength;let d=t[n++],u=t[n++],m=t[n++],p=new Array(m);for(let b=0;b<m;++b)p[b]=t[n++];s[a]=new ap({color:c,offset:d,count:u,batchIds:p})}}var ftt=new Hn("createVectorTilePolygons",5),ptt=new U;function btt(e){if(l(e._primitive))return;let t=e._positions,n=e._counts,i=e._indexCounts,o=e._indices,r=e._transferrableBatchIds,s=e._batchTableColors,a=e._packedBuffer;if(!l(s)){t=e._positions=e._positions.slice(),n=e._counts=e._counts.slice(),i=e._indexCounts=e._indexCounts.slice(),o=e._indices=e._indices.slice(),e._center=e._ellipsoid.cartographicToCartesian(se.center(e._rectangle)),r=e._transferrableBatchIds=new Uint32Array(e._batchIds),s=e._batchTableColors=new Uint32Array(r.length);let b=e._batchTable,f=s.length;for(let y=0;y<f;++y){let _=b.getColor(y,ptt);s[y]=_.toRgba()}a=e._packedBuffer=mtt(e)}let c=[t.buffer,n.buffer,i.buffer,o.buffer,r.buffer,s.buffer,a.buffer],d={packedBuffer:a.buffer,positions:t.buffer,counts:n.buffer,indexCounts:i.buffer,indices:o.buffer,batchIds:r.buffer,batchTableColors:s.buffer},u=e._polygonMinimumHeights,m=e._polygonMaximumHeights;l(u)&&l(m)&&(u=u.slice(),m=m.slice(),c.push(u.buffer,m.buffer),d.minimumHeights=u,d.maximumHeights=m);let p=ftt.scheduleTask(d,c);if(l(p))return p.then(b=>{if(e.isDestroyed())return;e._positions=void 0,e._counts=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0;let f=new Float64Array(b.packedBuffer),y=f[0];htt(e,f),e._indices=De.getSizeInBytes(y)===2?new Uint16Array(b.indices):new Uint32Array(b.indices),e._indexOffsets=new Uint32Array(b.indexOffsets),e._indexCounts=new Uint32Array(b.indexCounts),e._batchedPositions=new Float32Array(b.positions),e._vertexBatchIds=new Uint16Array(b.batchIds),gtt(e),e._ready=!0}).catch(b=>{e.isDestroyed()||(e._error=b)})}function gtt(e){l(e._primitive)||(e._primitive=new QT({batchTable:e._batchTable,positions:e._batchedPositions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center}),e._batchTable=void 0,e._batchIds=void 0,e._positions=void 0,e._counts=void 0,e._indices=void 0,e._indexCounts=void 0,e._indexOffsets=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0,e._center=void 0,e._rectangle=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0)}Ab.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Ab.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Ab.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Ab.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Ab.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=btt(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};Ab.prototype.isDestroyed=function(){return!1};Ab.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),he(this)};var $I=Ab;var Tei=x(T(),1);var j$n=x(T(),1),eP=`in vec4 currentPosition; +in vec4 previousPosition; +in vec4 nextPosition; +in vec2 expandAndWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = u_modifiedModelView * currentPosition; + vec4 prev = u_modifiedModelView * previousPosition; + vec4 next = u_modifiedModelView * nextPosition; + + float angle; + vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; +} +`;function Jh(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=e.ellipsoid??ie.WGS84,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=U.clone(U.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Jh.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function ytt(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+se.packedLength+ie.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,se.pack(t,a,c),c+=se.packedLength,ie.pack(o,a,c),c+=ie.packedLength,h.pack(r,a,c),a}var xtt=new Hn("createVectorTilePolylines",5),BC={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function Ttt(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=ytt(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},d=xtt.scheduleTask(c,a);if(l(d))return d.then(function(u){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(u.decodedPositions),e._decodedPositionOffsets=new Uint32Array(u.decodedPositionOffsets)),e._currentPositions=new Float32Array(u.currentPositions),e._previousPositions=new Float32Array(u.previousPositions),e._nextPositions=new Float32Array(u.nextPositions),e._expandAndWidth=new Float32Array(u.expandAndWidth),e._vertexBatchIds=new Uint16Array(u.batchIds);let m=u.indexDatatype;e._indices=m===De.UNSIGNED_SHORT?new Uint16Array(u.indices):new Uint32Array(u.indices),_tt(e,t),e._ready=!0}).catch(u=>{e.isDestroyed()||(e._error=u)})}function _tt(e,t){if(!l(e._va)){let n=e._currentPositions,i=e._previousPositions,o=e._nextPositions,r=e._expandAndWidth,s=e._vertexBatchIds,a=e._indices,c=i.byteLength+n.byteLength+o.byteLength;c+=r.byteLength+s.byteLength+a.byteLength,e._trianglesLength=a.length/3,e._geometryByteLength=c;let d=$e.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),u=$e.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),m=$e.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),p=$e.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),b=$e.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),f=$e.createIndexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?De.UNSIGNED_SHORT:De.UNSIGNED_INT}),y=[{index:BC.previousPosition,vertexBuffer:d,componentDatatype:J.FLOAT,componentsPerAttribute:3},{index:BC.currentPosition,vertexBuffer:u,componentDatatype:J.FLOAT,componentsPerAttribute:3},{index:BC.nextPosition,vertexBuffer:m,componentDatatype:J.FLOAT,componentsPerAttribute:3},{index:BC.expandAndWidth,vertexBuffer:p,componentDatatype:J.FLOAT,componentsPerAttribute:2},{index:BC.a_batchId,vertexBuffer:b,componentDatatype:J.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new wn({context:t,attributes:y,indexBuffer:f}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._currentPositions=void 0,e._previousPositions=void 0,e._nextPositions=void 0,e._expandAndWidth=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var tP=new F,lbe=new h;function Stt(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,tP),F.multiplyByPoint(tP,e._center,lbe),F.setTranslation(tP,lbe,tP),tP},u_highlightColor:function(){return e._highlightColor}})}function Att(e){if(l(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=Be.fromCache({blending:nn.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var Ztt=`uniform vec4 u_highlightColor; +void main() +{ + out_FragColor = u_highlightColor; +} +`;function Ctt(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(eP),o=n.getFragmentShaderCallback(!1,void 0,!1)(Ztt),r=new He({defines:["VECTOR_TILE","CLIP_POLYLINE"],sources:[Sl,i]}),s=new He({defines:["VECTOR_TILE"],sources:[o]});e._sp=tn.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:BC})}function Rtt(e,t){if(!l(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new at({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:Le.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}Jh.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!l(n)||!l(i))return;let r,s,a=n.length,c=0,d=0;for(r=0;r<a;++r)n[r]===t&&(c+=o[r+1]-o[r]);if(c===0)return;let u=new Float64Array(c*3);for(r=0;r<a;++r)if(n[r]===t){let m=o[r],p=o[r+1]-m;for(s=0;s<p;++s){let b=(m+s)*3;u[d++]=i[b],u[d++]=i[b+1],u[d++]=i[b+2]}}return u};Jh.prototype.getPositions=function(e){return Jh.getPolylinePositions(this,e)};Jh.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ds(e,r)}};Jh.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function Vtt(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=U.WHITE}}var Gtt=new U,Ett=U.WHITE,Ltt=!0;Jh.prototype.applyStyle=function(e,t){if(!l(e)){Vtt(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=l(e.color)?e.color.evaluateColor(s,Gtt):Ett,s.show=l(e.show)?e.show.evaluate(s):Ltt}};Jh.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=Ttt(this,t)),l(this._error)){let i=this._error;throw this._error=void 0,i}return}Stt(this,t),Ctt(this,t),Att(this);let n=e.passes;(n.render||n.pick)&&Rtt(this,e)};Jh.prototype.isDestroyed=function(){return!1};Jh.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),he(this)};var I_=Jh;var oti=x(T(),1);var Sei=x(T(),1),nP=`in vec3 startEllipsoidNormal; +in vec3 endEllipsoidNormal; +in vec4 startPositionAndHeight; +in vec4 endPositionAndHeight; +in vec4 startFaceNormalAndVertexCorner; +in vec4 endFaceNormalAndHalfWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; +uniform vec2 u_minimumMaximumVectorHeights; + +out vec4 v_startPlaneEC; +out vec4 v_endPlaneEC; +out vec4 v_rightPlaneEC; +out float v_halfWidth; +out vec3 v_volumeUpEC; + +void main() +{ + // vertex corner IDs + // 3-----------7 + // /| left /| + // / | 1 / | + // 2-----------6 5 end + // | / | / + // start |/ right |/ + // 0-----------4 + // + float isEnd = floor(startFaceNormalAndVertexCorner.w * 0.251); // 0 for front, 1 for end + float isTop = floor(startFaceNormalAndVertexCorner.w * mix(0.51, 0.19, isEnd)); // 0 for bottom, 1 for top + + vec3 forward = endPositionAndHeight.xyz - startPositionAndHeight.xyz; + vec3 right = normalize(cross(forward, startEllipsoidNormal)); + + vec4 position = vec4(startPositionAndHeight.xyz, 1.0); + position.xyz += forward * isEnd; + + v_volumeUpEC = czm_normal * normalize(cross(right, forward)); + + // Push for volume height + float offset; + vec3 ellipsoidNormal = mix(startEllipsoidNormal, endEllipsoidNormal, isEnd); + + // offset height to create volume + offset = mix(startPositionAndHeight.w, endPositionAndHeight.w, isEnd); + offset = mix(u_minimumMaximumVectorHeights.y, u_minimumMaximumVectorHeights.x, isTop) - offset; + position.xyz += offset * ellipsoidNormal; + + // move from RTC to EC + position = u_modifiedModelView * position; + right = czm_normal * right; + + // Push for width in a direction that is in the start or end plane and in a plane with right + // N = normalEC ("right-facing" direction for push) + // R = right + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd); + scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd)); + vec3 miterPushNormal = czm_normal * normalize(scratchNormal); + + offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position)); // offset = widthEC + offset = offset / dot(miterPushNormal, right); + position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0))); + + gl_Position = czm_depthClamp(czm_projection * position); + + position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0); + vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz; + v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz)); + v_rightPlaneEC = vec4(right, -dot(right, position.xyz)); + + position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0); + vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz; + v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz)); + v_halfWidth = endFaceNormalAndHalfWidth.w; +} +`;var Zei=x(T(),1),iP=`in vec4 v_startPlaneEC; +in vec4 v_endPlaneEC; +in vec4 v_rightPlaneEC; +in float v_halfWidth; +in vec3 v_volumeUpEC; + +uniform vec4 u_highlightColor; +void main() +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(0.0, 0.0, 1.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate); + + // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction + halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC)); + + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + out_FragColor = u_highlightColor; + + czm_writeDepthClamp(); +} +`;function Zb(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=e.ellipsoid??ie.WGS84,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._minimumMaximumVectorHeights=new k(Vi._defaultMinTerrainHeight,Vi._defaultMaxTerrainHeight),this._boundingVolume=en.fromRectangle(e.rectangle,Vi._defaultMinTerrainHeight,Vi._defaultMaxTerrainHeight,this._ellipsoid),this._classificationType=e.classificationType,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._startEllipsoidNormals=void 0,this._endEllipsoidNormals=void 0,this._startPositionAndHeights=void 0,this._startFaceNormalAndVertexCornerIds=void 0,this._endPositionAndHeights=void 0,this._endFaceNormalAndHalfWidths=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=U.clone(U.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Zb.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function Wtt(e,t,n){let i=Vi.getMinimumMaximumHeights(t,n),o=i.minimumTerrainHeight,r=i.maximumTerrainHeight,s=e._minimumMaximumVectorHeights;s.x=o,s.y=r;let a=e._boundingVolume,c=e._rectangle;en.fromRectangle(c,o,r,n,a)}function vtt(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+se.packedLength+ie.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,se.pack(t,a,c),c+=se.packedLength,ie.pack(o,a,c),c+=ie.packedLength,h.pack(r,a,c),a}var Ftt=new Hn("createVectorTileClampedPolylines"),Dy={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function Itt(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=vtt(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},d=Ftt.scheduleTask(c,a);if(l(d))return d.then(function(u){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(u.decodedPositions),e._decodedPositionOffsets=new Uint32Array(u.decodedPositionOffsets)),e._startEllipsoidNormals=new Float32Array(u.startEllipsoidNormals),e._endEllipsoidNormals=new Float32Array(u.endEllipsoidNormals),e._startPositionAndHeights=new Float32Array(u.startPositionAndHeights),e._startFaceNormalAndVertexCornerIds=new Float32Array(u.startFaceNormalAndVertexCornerIds),e._endPositionAndHeights=new Float32Array(u.endPositionAndHeights),e._endFaceNormalAndHalfWidths=new Float32Array(u.endFaceNormalAndHalfWidths),e._vertexBatchIds=new Uint16Array(u.vertexBatchIds);let m=u.indexDatatype;e._indices=m===De.UNSIGNED_SHORT?new Uint16Array(u.indices):new Uint32Array(u.indices),Ptt(e,t),e._ready=!0}).catch(u=>{e.isDestroyed()||(e._error=u)})}function Ptt(e,t){if(!l(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,d=e._indices,u=n.byteLength+i.byteLength;u+=o.byteLength+r.byteLength,u+=s.byteLength+a.byteLength,u+=c.byteLength+d.byteLength,e._trianglesLength=d.length/3,e._geometryByteLength=u;let m=$e.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),p=$e.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),b=$e.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),f=$e.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),y=$e.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),_=$e.createVertexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW}),S=$e.createVertexBuffer({context:t,typedArray:c,usage:Fe.STATIC_DRAW}),A=$e.createIndexBuffer({context:t,typedArray:d,usage:Fe.STATIC_DRAW,indexDatatype:d.BYTES_PER_ELEMENT===2?De.UNSIGNED_SHORT:De.UNSIGNED_INT}),Z=[{index:Dy.startEllipsoidNormal,vertexBuffer:m,componentDatatype:J.FLOAT,componentsPerAttribute:3},{index:Dy.endEllipsoidNormal,vertexBuffer:p,componentDatatype:J.FLOAT,componentsPerAttribute:3},{index:Dy.startPositionAndHeight,vertexBuffer:b,componentDatatype:J.FLOAT,componentsPerAttribute:4},{index:Dy.endPositionAndHeight,vertexBuffer:f,componentDatatype:J.FLOAT,componentsPerAttribute:4},{index:Dy.startFaceNormalAndVertexCorner,vertexBuffer:y,componentDatatype:J.FLOAT,componentsPerAttribute:4},{index:Dy.endFaceNormalAndHalfWidth,vertexBuffer:_,componentDatatype:J.FLOAT,componentsPerAttribute:4},{index:Dy.a_batchId,vertexBuffer:S,componentDatatype:J.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new wn({context:t,attributes:Z,indexBuffer:A}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._startEllipsoidNormals=void 0,e._endEllipsoidNormals=void 0,e._startPositionAndHeights=void 0,e._startFaceNormalAndVertexCornerIds=void 0,e._endPositionAndHeights=void 0,e._endFaceNormalAndHalfWidths=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var oP=new F,dbe=new h;function Xtt(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,oP),F.multiplyByPoint(oP,e._center,dbe),F.setTranslation(oP,dbe,oP),oP},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function ube(e){return Be.fromCache({cull:{enabled:!0,face:Ii.FRONT},blending:nn.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Jn.EQUAL,frontOperation:{fail:Gt.KEEP,zFail:Gt.KEEP,zPass:Gt.KEEP},backFunction:Jn.EQUAL,backOperation:{fail:Gt.KEEP,zFail:Gt.KEEP,zPass:Gt.KEEP},reference:Kt.CESIUM_3D_TILE_MASK,mask:Kt.CESIUM_3D_TILE_MASK}})}function Ytt(e){l(e._rs)||(e._rs=ube(!1),e._rs3DTiles=ube(!0))}function Ntt(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(nP),o=n.getFragmentShaderCallback(!1,void 0,!0)(iP),r=new He({defines:["VECTOR_TILE","CLIP_POLYLINE"],sources:[Sl,i]}),s=new He({defines:["VECTOR_TILE"],sources:[o]});e._sp=tn.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:Dy})}function wtt(e,t){let n=e._command;if(!l(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new at({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:o,boundingVolume:e._boundingVolume,pass:Le.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let r=at.shallowClone(n,n.derivedCommands.tileset);r.renderState=e._rs3DTiles,r.pass=Le.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=r}let i=e._classificationType;(i===Kn.TERRAIN||i===Kn.BOTH)&&t.commandList.push(n),(i===Kn.CESIUM_3D_TILE||i===Kn.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}Zb.prototype.getPositions=function(e){return I_.getPolylinePositions(this,e)};Zb.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ds(e,r)}};Zb.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function Mtt(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=U.WHITE}}var ktt=new U,Utt=U.WHITE,Dtt=!0;Zb.prototype.applyStyle=function(e,t){if(!l(e)){Mtt(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=l(e.color)?e.color.evaluateColor(s,ktt):Utt,s.show=l(e.show)?e.show.evaluate(s):Dtt}};function Ott(e){return Vi.initialize().then(function(){Wtt(e,e._rectangle,e._ellipsoid)}).catch(t=>{e.isDestroyed()||(e._error=t)})}Zb.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=Ott(this).then(Itt(this,t))),l(this._error)){let i=this._error;throw this._error=void 0,i}return}Xtt(this,t),Ntt(this,t),Ytt(this);let n=e.passes;(n.render||n.pick)&&wtt(this,e)};Zb.prototype.isDestroyed=function(){return!1};Zb.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),he(this)};var rP=Zb;var dti=x(T(),1);var v8=32767,Btt=new fe,ztt=new h;function Htt(e,t,n,i,o){let r=e.length/3,s=e.subarray(0,r),a=e.subarray(r,2*r),c=e.subarray(2*r,3*r);cn.zigZagDeltaDecode(s,a,c);let d=new Float64Array(e.length);for(let u=0;u<r;++u){let m=s[u],p=a[u],b=c[u],f=W.lerp(t.west,t.east,m/v8),y=W.lerp(t.south,t.north,p/v8),_=W.lerp(n,i,b/v8),S=fe.fromRadians(f,y,_,Btt),A=o.cartographicToCartesian(S,ztt);h.pack(A,d,u*3)}return d}var sP=Htt;var I8=class{constructor(t,n,i,o,r){this._tileset=t,this._tile=n,this._resource=i,this._polygons=void 0,this._polylines=void 0,this._points=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,qtt(this,o,r)}get featuresLength(){return l(this._batchTable)?this._batchTable.featuresLength:0}get pointsLength(){return l(this._points)?this._points.pointsLength:0}get trianglesLength(){let t=0;return l(this._polygons)&&(t+=this._polygons.trianglesLength),l(this._polylines)&&(t+=this._polylines.trianglesLength),t}get geometryByteLength(){let t=0;return l(this._polygons)&&(t+=this._polygons.geometryByteLength),l(this._polylines)&&(t+=this._polylines.geometryByteLength),t}get texturesByteLength(){return l(this._points)?this._points.texturesByteLength:0}get batchTableByteLength(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}get innerContents(){}get ready(){return this._ready}get tileset(){return this._tileset}get tile(){return this._tile}get url(){return this._resource.getUrlComponent(!0)}get metadata(){return this._metadata}set metadata(t){this._metadata=t}get batchTable(){return this._batchTable}get group(){return this._group}set group(t){this._group=t}hasProperty(t,n){return this._batchTable.hasProperty(t,n)}getFeature(t){return l(this._features)||F8(this),this._features[t]}applyDebugSettings(t,n){l(this._polygons)&&this._polygons.applyDebugSettings(t,n),l(this._polylines)&&this._polylines.applyDebugSettings(t,n),l(this._points)&&this._points.applyDebugSettings(t,n)}applyStyle(t){l(this._features)||F8(this),l(this._polygons)&&this._polygons.applyStyle(t,this._features),l(this._polylines)&&this._polylines.applyStyle(t,this._features),l(this._points)&&this._points.applyStyle(t,this._features)}update(t,n){let i=!0;l(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(n),i=i&&this._polygons.ready),l(this._polylines)&&(this._polylines.update(n),i=i&&this._polylines.ready),l(this._points)&&(this._points.update(n),i=i&&this._points.ready),l(this._batchTable)&&i&&(l(this._features)||F8(this),this._batchTable.update(t,n),this._ready=!0)}pick(t,n,i){}getPolylinePositions(t){let n=this._polylines;if(l(n))return n.getPositions(t)}isDestroyed(){return!1}destroy(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),he(this)}};function Ktt(e){return function(t,n){l(e._polygons)&&e._polygons.updateCommands(t,n)}}function Jtt(e,t){let n,i,o,r,s=e.POLYGONS_LENGTH??0,a=e.POLYLINES_LENGTH??0,c=e.POINTS_LENGTH??0;if(s>0&&l(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&l(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&l(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let d=l(n)||l(i)||l(o),u=s>0&&!l(n)||a>0&&!l(i)||c>0&&!l(o);if(d&&u)throw new ae("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)){let p=0;if(!l(n)&&s>0)for(n=new Uint16Array(s),r=0;r<s;++r)n[r]=p++;if(!l(i)&&a>0)for(i=new Uint16Array(a),r=0;r<a;++r)i[r]=p++;if(!l(o)&&c>0)for(o=new Uint16Array(c),r=0;r<c;++r)o[r]=p++}return{polygons:n,polylines:i,points:o}}var jh=Uint32Array.BYTES_PER_ELEMENT;function jtt(e){return new I_(e)}function Qtt(e){return new rP(e)}function qtt(e,t,n){n=n??0;let i=new Uint8Array(t),o=new DataView(t);n+=jh;let r=o.getUint32(n,!0);if(r!==1)throw new ae(`Only Vector tile version 1 is supported. Version ${r} is not.`);n+=jh;let s=o.getUint32(n,!0);if(n+=jh,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=jh,a===0)throw new ae("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=jh;let d=o.getUint32(n,!0);n+=jh;let u=o.getUint32(n,!0);n+=jh;let m=o.getUint32(n,!0);n+=jh;let p=o.getUint32(n,!0);n+=jh;let b=o.getUint32(n,!0);n+=jh;let f=o.getUint32(n,!0);n+=jh;let y=_r(i,n,a);n+=a;let _=new Uint8Array(t,n,c);n+=c;let S,A;d>0&&(S=_r(i,n,d),n+=d,u>0&&(A=new Uint8Array(t,n,u),A=new Uint8Array(A),n+=u));let Z=y.POLYGONS_LENGTH??0,R=y.POLYLINES_LENGTH??0,G=y.POINTS_LENGTH??0,E=Z+R+G,v=new Lh(e,E,S,A,Ktt(e));if(e._batchTable=v,E===0)return;let I=new Yh(y,_),X=I.getGlobalProperty("REGION");if(!l(X))throw new ae("Feature table global property: REGION must be defined");let Y=se.unpack(X),g=X[4],C=X[5],V=e._tile.computedTransform,L=I.getGlobalProperty("RTC_CENTER",J.FLOAT,3);l(L)?(L=h.unpack(L),F.multiplyByPoint(V,L,L)):(L=se.center(Y),L.height=W.lerp(g,C,.5),L=ie.WGS84.cartographicToCartesian(L));let P=Jtt(y,_);if(n+=(4-n%4)%4,Z>0){I.featuresLength=Z;let O=I.getPropertyArray("POLYGON_COUNTS",J.UNSIGNED_INT,1)??I.getPropertyArray("POLYGON_COUNT",J.UNSIGNED_INT,1);if(!l(O))throw new ae("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let M=I.getPropertyArray("POLYGON_INDEX_COUNTS",J.UNSIGNED_INT,1)??I.getPropertyArray("POLYGON_INDEX_COUNT",J.UNSIGNED_INT,1);if(!l(M))throw new ae("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let D=O.reduce(function(te,q){return te+q*2},0),w=M.reduce(function(te,q){return te+q},0),z=new Uint32Array(t,n,w);n+=m;let K=new Uint16Array(t,n,D);n+=p;let ee,H;l(y.POLYGON_MINIMUM_HEIGHTS)&&l(y.POLYGON_MAXIMUM_HEIGHTS)&&(ee=I.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",J.FLOAT,1),H=I.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",J.FLOAT,1)),e._polygons=new $I({positions:K,counts:O,indexCounts:M,indices:z,minimumHeight:g,maximumHeight:C,polygonMinimumHeights:ee,polygonMaximumHeights:H,center:L,rectangle:Y,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:v,batchIds:P.polygons,modelMatrix:V})}let N=e._tileset;if(R>0){I.featuresLength=R;let O=I.getPropertyArray("POLYLINE_COUNTS",J.UNSIGNED_INT,1)??I.getPropertyArray("POLYLINE_COUNT",J.UNSIGNED_INT,1);if(!l(O))throw new ae("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let M=I.getPropertyArray("POLYLINE_WIDTHS",J.UNSIGNED_SHORT,1);if(!l(M)){M=new Uint16Array(R);for(let ee=0;ee<R;++ee)M[ee]=2}let D=O.reduce(function(ee,H){return ee+H*3},0),w=new Uint16Array(t,n,D);n+=b;let z=N.examineVectorLinesFunction;if(l(z)){let ee=sP(new Uint16Array(w),Y,g,C,ie.WGS84);$tt(ee,O,P.polylines,v,e.url,z)}let K=jtt;l(N.classificationType)&&(K=Qtt),e._polylines=K({positions:w,widths:M,counts:O,batchIds:P.polylines,minimumHeight:g,maximumHeight:C,center:L,rectangle:Y,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:v,classificationType:N.classificationType,keepDecodedPositions:N.vectorKeepDecodedPositions})}if(G>0){let O=new Uint16Array(t,n,G*3);n+=f,e._points=new qI({positions:O,batchIds:P.points,minimumHeight:g,maximumHeight:C,rectangle:Y,batchTable:v,heightReference:N.heightReference,scene:N.scene})}}function F8(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._polygons)&&e._polygons.createFeatures(e,n),l(e._polylines)&&e._polylines.createFeatures(e,n),l(e._points)&&e._points.createFeatures(e,n),e._features=n}}function $tt(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c<s;c++){let d=t[c]*3,u=e.slice(a,a+d);a+=d,r(u,n[c],o,i)}}var aP=I8;var $ri=x(T(),1);var $ti=x(T(),1);var Wti=x(T(),1);var Qh=class Qh{constructor(){lt(this,"_collection",null);lt(this,"_index",-1);lt(this,"_byteOffset",-1)}static clone(t,n){let i=t._collection._getMaterialClass();return n.featureId=t.featureId,n.show=t.show,n.setMaterial(t.getMaterial(new i)),n}_isResizable(){return this._index===this._collection.primitiveCount-1}get featureId(){return this._getUint32(Qh.Layout.FEATURE_ID_U32)}set featureId(t){this._setUint32(Qh.Layout.FEATURE_ID_U32,t)}get show(){return this._getUint8(Qh.Layout.SHOW_U8)===1}set show(t){this._setUint8(Qh.Layout.SHOW_U8,t?1:0)}getMaterial(t){let n=this._collection,i=n._getMaterialClass();return i.unpack(n._materialView,this._index*i.packedLength,t)}setMaterial(t){let n=this._collection,i=n._getMaterialClass();return i.pack(t,n._materialView,this._index*i.packedLength),this._dirty=!0,t}get _dirty(){return this._getUint8(Qh.Layout.DIRTY_U8)===1}set _dirty(t){this._collection._primitiveView.setUint8(this._byteOffset+Qh.Layout.DIRTY_U8,t?1:0),t&&this._collection._makeDirty(this._index)}get _pickId(){return this._getUint32(Qh.Layout.PICK_ID_U32)}set _pickId(t){this._setUint32(Qh.Layout.PICK_ID_U32,t)}_getUint8(t){return this._collection._primitiveView.getUint8(this._byteOffset+t)}_setUint8(t,n){this._collection._primitiveView.setUint8(this._byteOffset+t,n),this._dirty=!0}_getUint32(t){return this._collection._primitiveView.getUint32(this._byteOffset+t,!0)}_setUint32(t,n){this._collection._primitiveView.setUint32(this._byteOffset+t,n,!0),this._dirty=!0}_getFloat32(t){return this._collection._primitiveView.getFloat32(this._byteOffset+t,!0)}_setFloat32(t,n){this._collection._primitiveView.setFloat32(this._byteOffset+t,n,!0),this._dirty=!0}toJSON(){let n=this._collection._getMaterialClass();return{featureId:this.featureId,show:this.show,dirty:this._dirty,material:this.getMaterial(new n).toJSON()}}};lt(Qh,"Layout",{FEATURE_ID_U32:0,SHOW_U8:4,DIRTY_U8:5,PICK_ID_U32:8,__BYTE_LENGTH:12});var P8=Qh,Kr=P8;var zti=x(T(),1);var cP=class cP{constructor(t=B.EMPTY_OBJECT){lt(this,"_renderContext",null);this.show=t.show??!0,this._blendOption=t.blendOption??Wi.TRANSLUCENT,this._modelMatrix=F.clone(t.modelMatrix??F.IDENTITY),this._boundingVolume=ue.clone(t.boundingVolume??new ue,new ue),this._boundingVolumeAutoUpdate=!l(t.boundingVolume),this._allowPicking=t.allowPicking??!1,this._pickIds=new Map,this._pickObjects=[],this.debugShowBoundingVolume=t.debugShowBoundingVolume??!1,this._primitiveCount=0,this._primitiveCountMax=t.primitiveCountMax??cP.DEFAULT_CAPACITY,this._primitiveView=null,this._positionCount=0,this._positionCountMax=t.vertexCountMax??cP.DEFAULT_CAPACITY,this._positionView=null,this._positionDatatype=t.positionDatatype??J.DOUBLE,this._positionNormalized=t.positionNormalized??!1,this._materialView=null,this._dirtyOffset=0,this._dirtyCount=0,this._dirtyBoundingVolume=!1,this._allocatePrimitiveBuffer(),this._allocatePositionBuffer(),this._allocateMaterialBuffer()}_getCollectionClass(){Te.throwInstantiationError()}_getPrimitiveClass(){Te.throwInstantiationError()}_getMaterialClass(){Te.throwInstantiationError()}_allocatePrimitiveBuffer(){let t=this._getPrimitiveClass().Layout;this._primitiveView=new DataView(new ArrayBuffer(this._primitiveCountMax*t.__BYTE_LENGTH))}_allocatePositionBuffer(){this._positionView=J.createTypedArray(this._positionDatatype,this._positionCountMax*3)}_allocateMaterialBuffer(){let t=this._getMaterialClass();this._materialView=new DataView(new ArrayBuffer(this._primitiveCountMax*t.packedLength))}isDestroyed(){return!1}destroy(){this._pickObjects.length=0;for(let t of this._pickIds.values())for(let n of t)n.destroy();l(this._renderContext)&&(this._renderContext.destroy(),this._renderContext=void 0,this._dirtyOffset=0,this._dirtyCount=this.primitiveCount)}sort(t,n=new Uint32Array(this.primitiveCount)){let i=this._getPrimitiveClass(),o=this._getCollectionClass(),{primitiveCount:r}=this,s=new i,a=new i,c=new Uint32Array(r);for(let u=0;u<r;u++)c[u]=u;c.sort((u,m)=>t(this.get(u,s),this.get(m,a)));for(let u=0;u<r;u++)n[c[u]]=u;let d=o._cloneEmpty(this);for(let u=0;u<r;u++){let m=this.get(c[u],s),p=d.add({},a);i.clone(m,p)}return o._replaceBuffers(d,this),this._dirtyOffset=0,this._dirtyCount=r,n}static clone(t,n){let i=t._getPrimitiveClass().Layout,o=t._getMaterialClass(),r=t._getPrimitiveClass();this._copySubDataView(t._primitiveView,n._primitiveView,t.primitiveCount*i.__BYTE_LENGTH),this._copySubArray(t._positionView,n._positionView,t.vertexCount*3),this._copySubDataView(t._materialView,n._materialView,t.primitiveCount*o.packedLength),n.show=t.show,n.debugShowBoundingVolume=t.debugShowBoundingVolume,n._primitiveCount=t._primitiveCount,n._positionCount=t._positionCount;let s=new r;for(let a=0,c=n.primitiveCount;a<c;a++)n.get(a,s)._pickId=0;return n._dirtyOffset=0,n._dirtyCount=n.primitiveCount,t.boundingVolume.clone(n.boundingVolume),n}static _cloneEmpty(t){Te.throwInstantiationError()}static _replaceBuffers(t,n){n._primitiveView=t._primitiveView,n._positionView=t._positionView,n._materialView=t._materialView}_updateBoundingVolume(){let t=this._positionView.subarray(0,this._positionCount*3);this._positionNormalized&&(t=cn.dequantize(t,this._positionDatatype,kt.VEC3,this._positionCount)),ue.fromVertices(t,h.ZERO,3,this.boundingVolume),ue.transform(this.boundingVolume,this.modelMatrix,this.boundingVolume),this._dirtyBoundingVolume=!1}_updatePickIds(t){let n=this._pickIds.get(t);if(n&&n.length===this._primitiveCount)return;n||(n=[],this._pickIds.set(t,n));let i=this,o=this._getPrimitiveClass(),r=new o;for(let s=n.length,a=this._primitiveCount;s<a;s++){this.get(s,r);let c=this._pickObjects[s]||{collection:this,index:s,get primitive(){return i.get(s,new o)}},d=t.createPickId(c);r._pickId=d.key,n.push(d)}}get(t,n){return n._collection=this,n._index=t,n._byteOffset=t*this._getPrimitiveClass().Layout.__BYTE_LENGTH,n}add(t=B.EMPTY_OBJECT,n){let i=this._getMaterialClass(),o=this._primitiveCount++;return n=this.get(o,n),n.featureId=t.featureId??o,n.show=t.show??!0,n.setMaterial(t.material??i.DEFAULT_MATERIAL),n._pickId=0,n._dirty=!0,l(t.pickObject)&&(this._pickObjects[o]=t.pickObject),n}_makeDirty(t){this._dirtyCount===0?(this._dirtyCount=1,this._dirtyOffset=t):t<this._dirtyOffset?(this._dirtyCount+=this._dirtyOffset-t,this._dirtyOffset=t):t+1>this._dirtyOffset+this._dirtyCount&&(this._dirtyCount=t+1-this._dirtyOffset)}_makeDirtyBoundingVolume(){this._boundingVolumeAutoUpdate&&(this._dirtyBoundingVolume=!0)}update(t){t.mode!==re.SCENE3D&&_t("bufferprim-scenemode","BufferPrimitiveCollection requires SceneMode.SCENE3D."),this._dirtyBoundingVolume&&this._updateBoundingVolume(),this._allowPicking&&this._dirtyCount>0&&this._updatePickIds(t.context)}get primitiveCount(){return this._primitiveCount}get primitiveCountMax(){return this._primitiveCountMax}get byteLength(){return this._primitiveView.byteLength+this._positionView.byteLength+this._materialView.byteLength}get vertexCount(){return this._positionCount}get vertexCountMax(){return this._positionCountMax}get modelMatrix(){return this._modelMatrix}get boundingVolume(){return this._boundingVolume}get positionDatatype(){return this._positionDatatype}get positionNormalized(){return this._positionNormalized}static _copySubArray(t,n,i){for(let o=0;o<i;o++)n[o]=t[o]}static _copySubDataView(t,n,i){this._copySubArray(new Uint32Array(t.buffer,t.byteOffset,t.byteLength/4),new Uint32Array(n.buffer,n.byteOffset,n.byteLength/4),i/4)}toJSON(){let t=this._getPrimitiveClass(),n=new t,i=[];for(let o=0,r=this.primitiveCount;o<r;o++)i.push(this.get(o,n).toJSON());return i}};lt(cP,"Error",{ERR_RESIZE:"BufferPrimitive range cannot be resized after initialization.",ERR_CAPACITY:"BufferPrimitiveCollection capacity exceeded.",ERR_MULTIPLE_OF_FOUR:"BufferPrimitive byte length must be a multiple of 4.",ERR_OUT_OF_RANGE:"BufferPrimitive buffer access out of range."});var ED=cP;ED.DEFAULT_CAPACITY=1024;var zs=ED;var{ERR_CAPACITY:Qti}=zs.Error,ent=new h,LD=class LD extends Kr{constructor(){super(...arguments);lt(this,"_collection",null)}static clone(n,i){return super.clone(n,i),i.setPosition(n.getPosition(ent)),i}get vertexOffset(){return this._getUint32(LD.Layout.POSITION_OFFSET_U32)}get vertexCount(){return 1}getPosition(n){let i=this._collection._positionView;return h.fromArray(i,this.vertexOffset*3,n)}setPosition(n){let i=this._collection,o=this.vertexOffset;i._positionView[o*3]=n.x,i._positionView[o*3+1]=n.y,i._positionView[o*3+2]=n.z,this._dirty=!0,i._makeDirtyBoundingVolume()}toJSON(){return{...super.toJSON(),position:h.pack(this.getPosition(),[])}}};lt(LD,"Layout",{...Kr.Layout,POSITION_OFFSET_U32:Kr.Layout.__BYTE_LENGTH,__BYTE_LENGTH:Kr.Layout.__BYTE_LENGTH+4});var X8=LD,Gc=X8;var Bni=x(T(),1);var Yni=x(T(),1);var nni=x(T(),1),lP=`#ifdef USE_FLOAT64 +in vec3 positionHigh; +in vec3 positionLow; +#else +in vec3 position; +#endif +in vec4 pickColor; +in vec4 showPixelSizeColorAlpha; +in vec3 outlineWidthColorAlpha; + +out vec4 v_pickColor; +out vec4 v_color; +out vec4 v_outlineColor; +out float v_innerRadiusFrac; + +void main() +{ + // Unpack attributes. + float show = showPixelSizeColorAlpha.x; + float pixelSize = showPixelSizeColorAlpha.y; + vec4 color = czm_decodeRGB8(showPixelSizeColorAlpha.z); + float alpha = showPixelSizeColorAlpha.w; + float outlineWidth = outlineWidthColorAlpha.x; + vec4 outlineColor = czm_decodeRGB8(outlineWidthColorAlpha.y); + float outlineAlpha = outlineWidthColorAlpha.z; + + /////////////////////////////////////////////////////////////////////////// + + float innerRadius = 0.5 * pixelSize * czm_pixelRatio; + float outerRadius = (0.5 * pixelSize + outlineWidth) * czm_pixelRatio; + + /////////////////////////////////////////////////////////////////////////// + +#ifdef USE_FLOAT64 + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; +#else + vec4 positionEC = czm_modelView * vec4(position, 1.0); +#endif + + /////////////////////////////////////////////////////////////////////////// + + gl_Position = czm_projection * positionEC; + czm_vertexLogDepth(); + + v_pickColor = pickColor / 255.0; + + v_color = color; + v_color.a *= alpha * show; + + v_outlineColor = outlineColor; + v_outlineColor.a *= outlineAlpha * show; + + v_innerRadiusFrac = innerRadius / outerRadius; + + gl_PointSize = 2.0 * outerRadius * show; + gl_Position *= show; +} +`;var oni=x(T(),1),dP=`in vec4 v_pickColor; +in vec4 v_color; +in vec4 v_outlineColor; +in float v_innerRadiusFrac; + +void main() +{ + // Distance between fragment and point center, 0 to 0.5. + float distanceToCenter = length(gl_PointCoord - vec2(0.5)); + float delta = fwidth(distanceToCenter); + + float outerLimit = 0.5; + float innerLimit = 0.5 * v_innerRadiusFrac; + + float outerAlpha = 1.0 - smoothstep(max(0.0, outerLimit - delta), outerLimit, distanceToCenter); + float innerAlpha = 1.0 - smoothstep(innerLimit - delta, innerLimit, distanceToCenter); + + vec4 color = vec4(mix(v_outlineColor.rgb, v_color.rgb, innerAlpha), outerAlpha); + color.a *= mix(v_outlineColor.a, v_color.a, innerAlpha); + + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } + + out_FragColor = czm_gammaCorrect(color); + czm_writeLogDepth(); +} +`;var hni=x(T(),1);var cni=x(T(),1);var uP=class{constructor(t=B.EMPTY_OBJECT){this.color=U.clone(t.color??U.WHITE),this.outlineColor=U.clone(t.outlineColor??U.WHITE),this.outlineWidth=t.outlineWidth??0}static get packedLength(){return this.Layout.__BYTE_LENGTH}static pack(t,n,i){n.setUint32(this.Layout.COLOR_U32+i,t.color.toRgba(),!0),n.setUint32(this.Layout.OUTLINE_COLOR_U32+i,t.outlineColor.toRgba(),!0),n.setUint8(this.Layout.OUTLINE_WIDTH_U8+i,t.outlineWidth)}static unpack(t,n,i){return U.fromRgba(t.getUint32(this.Layout.COLOR_U32+n,!0),i.color),U.fromRgba(t.getUint32(this.Layout.OUTLINE_COLOR_U32+n,!0),i.outlineColor),i.outlineWidth=t.getUint8(this.Layout.OUTLINE_WIDTH_U8+n),i}toJSON(){return{color:this.color.toCssHexString(),outlineColor:this.outlineColor.toCssHexString(),outlineWidth:this.outlineWidth}}};lt(uP,"Layout",{COLOR_U32:0,OUTLINE_COLOR_U32:4,OUTLINE_WIDTH_U8:8,__BYTE_LENGTH:12}),lt(uP,"DEFAULT_MATERIAL");var Dl=uP;var mP=class mP extends Dl{constructor(t=B.EMPTY_OBJECT){super(t),this.size=t.size??1}static pack(t,n,i){super.pack(t,n,i),n.setUint8(this.Layout.SIZE_U8+i,t.size)}static unpack(t,n,i){return super.unpack(t,n,i),i.size=t.getUint8(this.Layout.SIZE_U8+n),i}toJSON(){return{...super.toJSON(),size:this.size}}};lt(mP,"Layout",{...Dl.Layout,SIZE_U8:Dl.Layout.__BYTE_LENGTH,__BYTE_LENGTH:Dl.Layout.__BYTE_LENGTH+4}),lt(mP,"DEFAULT_MATERIAL",Object.freeze(new mP));var Y8=mP,qh=Y8;var N8={positionHigh:0,positionLow:1,pickColor:2,showSizeColorAlpha:3,outlineWidthColorAlpha:4},mbe={position:0,pickColor:1,showSizeColorAlpha:2,outlineWidthColorAlpha:3},P_=new Gc,$h=new qh,hP=new U,hbe=new h,w8=new Zn;function tnt(e,t,n){let i=t.context;n=n||{destroy:nnt};let o=e._positionDatatype===J.DOUBLE,r=o?N8:mbe;if(!l(n.attributeArrays)){let a=e.primitiveCountMax;n.attributeArrays={...o?{positionHigh:new Float32Array(a*3),positionLow:new Float32Array(a*3)}:{position:e._positionView},pickColor:new Uint8Array(a*4),showSizeColorAlpha:new Float32Array(a*4),outlineWidthColorAlpha:new Float32Array(a*3)}}if(e._dirtyCount>0){let{attributeArrays:a}=n,c=a.positionHigh,d=a.positionLow,u=a.pickColor,m=a.showSizeColorAlpha,p=a.outlineWidthColorAlpha,{_dirtyOffset:b,_dirtyCount:f}=e;for(let y=b,_=b+f;y<_;y++)e.get(y,P_),P_._dirty&&(o&&(P_.getPosition(hbe),Zn.fromCartesian(hbe,w8),h.pack(w8.high,c,y*3),h.pack(w8.low,d,y*3)),P_.getMaterial($h),U.fromRgba(P_._pickId,hP),u[y*4]=U.floatToByte(hP.red),u[y*4+1]=U.floatToByte(hP.green),u[y*4+2]=U.floatToByte(hP.blue),u[y*4+3]=U.floatToByte(hP.alpha),m[y*4]=P_.show?1:0,m[y*4+1]=$h.size,m[y*4+2]=cn.encodeRGB8($h.color),m[y*4+3]=$h.color.alpha,p[y*3]=$h.outlineWidth,p[y*3+1]=cn.encodeRGB8($h.outlineWidth>0?$h.outlineColor:$h.color),p[y*3+2]=$h.outlineWidth>0?$h.outlineColor.alpha:$h.color.alpha,P_._dirty=!1)}if(l(n.vertexArray)){if(e._dirtyCount>0){for(let a in r)if(Object.hasOwn(r,a)){let c=a;n.vertexArray.copyAttributeFromRange(r[c],n.attributeArrays[c],e._dirtyOffset,e._dirtyCount)}}}else{let{attributeArrays:a}=n;n.vertexArray=new wn({context:i,attributes:[...o?[{index:N8.positionHigh,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:a.positionHigh,context:i,usage:Fe.STATIC_DRAW})},{index:N8.positionLow,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:a.positionLow,context:i,usage:Fe.STATIC_DRAW})}]:[{index:mbe.position,componentDatatype:e._positionDatatype,componentsPerAttribute:3,normalize:e._positionNormalized,vertexBuffer:$e.createVertexBuffer({typedArray:e._positionView,context:i,usage:Fe.STATIC_DRAW})}],{index:r.pickColor,componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:4,vertexBuffer:$e.createVertexBuffer({typedArray:a.pickColor,context:i,usage:Fe.STATIC_DRAW})},{index:r.showSizeColorAlpha,componentDatatype:J.FLOAT,componentsPerAttribute:4,vertexBuffer:$e.createVertexBuffer({typedArray:a.showSizeColorAlpha,context:i,usage:Fe.STATIC_DRAW})},{index:r.outlineWidthColorAlpha,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:a.outlineWidthColorAlpha,context:i,usage:Fe.STATIC_DRAW})}]})}l(n.renderState)||(n.renderState=Be.fromCache({blending:e._blendOption===Wi.OPAQUE?nn.DISABLED:nn.ALPHA_BLEND,depthTest:{enabled:!0}})),l(n.shaderProgram)||(n.shaderProgram=tn.fromCache({context:i,vertexShaderSource:new He({sources:[lP],defines:o?["USE_FLOAT64"]:[]}),fragmentShaderSource:new He({sources:[dP]}),attributeLocations:r})),l(n.command)||(n.command=new at({vertexArray:n.vertexArray,renderState:n.renderState,shaderProgram:n.shaderProgram,primitiveType:ve.POINTS,pass:e._blendOption===Wi.OPAQUE?Le.OPAQUE:Le.TRANSLUCENT,pickId:e._allowPicking?"v_pickColor":void 0,owner:e,count:e.primitiveCount,modelMatrix:e.modelMatrix,boundingVolume:e.boundingVolume,debugShowBoundingVolume:e.debugShowBoundingVolume}));let s=n.command;return s.count!==e.primitiveCount&&(s.count=e.primitiveCount),s.debugShowBoundingVolume!==e.debugShowBoundingVolume&&(s.debugShowBoundingVolume=e.debugShowBoundingVolume),t.commandList.push(s),e._dirtyCount=0,e._dirtyOffset=0,n}function nnt(){let e=this;l(e.vertexArray)&&e.vertexArray.destroy(),l(e.shaderProgram)&&e.shaderProgram.destroy(),l(e.renderState)&&Be.removeFromCache(e.renderState)}var fP=tnt;var M8=class e extends zs{constructor(t=B.EMPTY_OBJECT){super({...t,vertexCountMax:t.primitiveCountMax})}_getCollectionClass(){return e}_getPrimitiveClass(){return Gc}_getMaterialClass(){return qh}static _cloneEmpty(t){return new e({primitiveCountMax:t.primitiveCountMax,positionDatatype:t.positionDatatype,positionNormalized:t.positionNormalized})}add(t,n=new Gc){return super.add(t,n),n._setUint32(Gc.Layout.POSITION_OFFSET_U32,this._positionCount++),n.setPosition(t.position??h.ZERO),n}update(t){super.update(t);let n=t.passes;this.show&&(n.render||n.pick)&&(this._renderContext=fP(this,t,this._renderContext))}},Rd=M8;var $ni=x(T(),1);var{ERR_CAPACITY:Jni,ERR_RESIZE:jni,ERR_OUT_OF_RANGE:Qni}=zs.Error,Vm=class Vm extends Kr{constructor(){super(...arguments);lt(this,"_collection",null)}static clone(n,i){return super.clone(n,i),i.setPositions(n.getPositions()),i.setHoles(n.getHoles()),i.setTriangles(n.getTriangles()),i}get vertexOffset(){return this._getUint32(Vm.Layout.POSITION_OFFSET_U32)}get vertexCount(){return this._getUint32(Vm.Layout.POSITION_COUNT_U32)}getPositions(n){return this._getPositionsRange(0,this.vertexCount,n)}setPositions(n){let i=this._collection,o=this.vertexOffset,r=this.vertexCount,s=n.length/3,a=i.vertexCount+s-r;i._positionCount=a,this._setUint32(Vm.Layout.POSITION_COUNT_U32,s);let c=i._positionView;for(let d=0;d<s;d++)c[(o+d)*3]=n[d*3],c[(o+d)*3+1]=n[d*3+1],c[(o+d)*3+2]=n[d*3+2];this._dirty=!0,i._makeDirtyBoundingVolume()}get outerVertexOffset(){return this.vertexOffset}get outerVertexCount(){return this.holeCount>0?this.getHoles()[0]:this.vertexCount}getOuterPositions(n){return this._getPositionsRange(0,this.outerVertexCount,n)}get holeOffset(){return this._getUint32(Vm.Layout.HOLE_OFFSET_U32)}get holeCount(){return this._getUint32(Vm.Layout.HOLE_COUNT_U32)}getHoles(n){let{holeOffset:i,holeCount:o}=this,r=this._collection._holeIndexView;if(!l(n)){let s=r.byteOffset+i*r.BYTES_PER_ELEMENT,a=r.constructor;return new a(r.buffer,s,o)}for(let s=0;s<o;s++)n[s]=r[i+s];return n}setHoles(n){let i=this._collection,o=this.holeOffset,r=this.holeCount,s=n.length,a=i.holeCount+s-r;i._holeCount=a,this._setUint32(Vm.Layout.HOLE_COUNT_U32,s);let c=i._holeIndexView;for(let d=0;d<s;d++)c[o+d]=n[d];this._dirty=!0}getHoleVertexCount(n){let i=this.getHoles(),o=i[n];return n===i.length-1?this.vertexCount-o:i[n+1]-o}getHolePositions(n,i){let r=this.getHoles()[n],s=this.getHoleVertexCount(n);return this._getPositionsRange(r,s,i)}_getPositionsRange(n,i,o){let r=this._collection,s=this._collection._positionView,a=this.vertexOffset+n;if(!l(o)){let c=s.byteOffset+a*3*s.BYTES_PER_ELEMENT,d=s.constructor;return new d(s.buffer,c,i*3)}for(let c=0;c<i;c++)o[c*3]=s[(a+c)*3],o[c*3+1]=s[(a+c)*3+1],o[c*3+2]=s[(a+c)*3+2];return o}get triangleOffset(){return this._getUint32(Vm.Layout.TRIANGLE_OFFSET_U32)}get triangleCount(){return this._getUint32(Vm.Layout.TRIANGLE_COUNT_U32)}getTriangles(n){let{triangleOffset:i,triangleCount:o}=this,r=this._collection._triangleIndexView;if(!l(n)){let s=r.byteOffset+i*3*r.BYTES_PER_ELEMENT,a=r.constructor;return new a(r.buffer,s,o*3)}for(let s=0;s<o;s++)n[s*3]=r[(i+s)*3],n[s*3+1]=r[(i+s)*3+1],n[s*3+2]=r[(i+s)*3+2];return n}setTriangles(n){let i=this._collection,o=this.triangleOffset,r=this.triangleCount,s=n.length/3,a=i.triangleCount+s-r;i._triangleCount+=s-r,this._setUint32(Vm.Layout.TRIANGLE_COUNT_U32,s);let c=i._triangleIndexView;for(let d=0;d<s;d++)c[(o+d)*3]=n[d*3],c[(o+d)*3+1]=n[d*3+1],c[(o+d)*3+2]=n[d*3+2];this._dirty=!0}toJSON(){return{...super.toJSON(),positions:Array.from(this.getPositions()),holes:Array.from(this.getHoles()),triangles:Array.from(this.getTriangles())}}};lt(Vm,"Layout",{...Kr.Layout,POSITION_OFFSET_U32:Kr.Layout.__BYTE_LENGTH,POSITION_COUNT_U32:Kr.Layout.__BYTE_LENGTH+4,HOLE_OFFSET_U32:Kr.Layout.__BYTE_LENGTH+8,HOLE_COUNT_U32:Kr.Layout.__BYTE_LENGTH+12,TRIANGLE_OFFSET_U32:Kr.Layout.__BYTE_LENGTH+16,TRIANGLE_COUNT_U32:Kr.Layout.__BYTE_LENGTH+20,__BYTE_LENGTH:Kr.Layout.__BYTE_LENGTH+24});var k8=Vm,Ls=k8;var Dii=x(T(),1);var Fii=x(T(),1);var nii=x(T(),1),pP=`#ifdef USE_FLOAT64 +in vec3 positionHigh; +in vec3 positionLow; +#else +in vec3 position; +#endif +in vec4 pickColor; +in vec3 showColorAlpha; + +out vec4 v_pickColor; +out vec4 v_color; + +void main() +{ + float show = showColorAlpha.x; + vec4 color = czm_decodeRGB8(showColorAlpha.y); + float alpha = showColorAlpha.z; + + /////////////////////////////////////////////////////////////////////////// + +#ifdef USE_FLOAT64 + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; +#else + vec4 positionEC = czm_modelView * vec4(position, 1.0); +#endif + + /////////////////////////////////////////////////////////////////////////// + + gl_Position = czm_projection * positionEC; + czm_vertexLogDepth(); + + v_pickColor = pickColor / 255.0; + + v_color = color; + v_color.a *= alpha * show; + + gl_Position *= show; +} +`;var oii=x(T(),1),bP=`in vec4 v_pickColor; +in vec4 v_color; + +void main() +{ + if (v_color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } + + out_FragColor = czm_gammaCorrect(v_color); + czm_writeLogDepth(); +} +`;var cii=x(T(),1);var WD=class WD extends Dl{constructor(t=B.EMPTY_OBJECT){super(t)}};lt(WD,"DEFAULT_MATERIAL",Object.freeze(new WD));var U8=WD,ef=U8;var D8={positionHigh:0,positionLow:1,pickColor:2,showColorAlpha:3},fbe={position:0,pickColor:1,showColorAlpha:2},da=new Ls,O8=new ef,gP=new U,pbe=new h,B8=new Zn;function int(e,t,n){let i=t.context;n=n||{destroy:rnt};let o=e._positionDatatype===J.DOUBLE,r=o?D8:fbe;if(!l(n.attributeArrays)||!l(n.indexArray)){let{vertexCountMax:c,triangleCountMax:d}=e;n.indexArray=De.createTypedArray(c,d*3),n.attributeArrays={...o?{positionHigh:new Float32Array(c*3),positionLow:new Float32Array(c*3)}:{position:e._positionView},pickColor:new Uint8Array(c*4),showColorAlpha:new Float32Array(c*3)}}if(e._dirtyCount>0){let{attributeArrays:c}=n,{_dirtyOffset:d,_dirtyCount:u}=e,m=c.positionHigh,p=c.positionLow,b=n.indexArray,f=c.pickColor,y=c.showColorAlpha;for(let _=d,S=d+u;_<S;_++){if(e.get(_,da),!da._dirty)continue;let A=da.triangleOffset,Z=da.vertexOffset,R=da.getTriangles();for(let I=0,X=da.triangleCount;I<X;I++)b[A*3]=Z+R[I*3],b[A*3+1]=Z+R[I*3+1],b[A*3+2]=Z+R[I*3+2],A++;let G=da.show,E=o?da.getPositions():null;da.getMaterial(O8);let v=cn.encodeRGB8(O8.color);U.fromRgba(da._pickId,gP);for(let I=0,X=da.vertexCount;I<X;I++)o&&(h.fromArray(E,I*3,pbe),Zn.fromCartesian(pbe,B8),h.pack(B8.high,m,Z*3),h.pack(B8.low,p,Z*3)),f[Z*4]=U.floatToByte(gP.red),f[Z*4+1]=U.floatToByte(gP.green),f[Z*4+2]=U.floatToByte(gP.blue),f[Z*4+3]=U.floatToByte(gP.alpha),y[Z*3]=G?1:0,y[Z*3+1]=v,y[Z*3+2]=O8.color.alpha,Z++;da._dirty=!1}}if(l(n.vertexArray)){if(e._dirtyCount>0){let{indexOffset:c,indexCount:d,vertexOffset:u,vertexCount:m}=ont(e);n.vertexArray.copyIndexFromRange(n.indexArray,c,d);for(let p in r)if(Object.hasOwn(r,p)){let b=p;n.vertexArray.copyAttributeFromRange(r[b],n.attributeArrays[b],u,m)}}}else{let{attributeArrays:c}=n;n.vertexArray=new wn({context:i,indexBuffer:$e.createIndexBuffer({context:i,typedArray:n.indexArray,usage:Fe.STATIC_DRAW,indexDatatype:De.fromTypedArray(n.indexArray)}),attributes:[...o?[{index:D8.positionHigh,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:c.positionHigh,context:i,usage:Fe.STATIC_DRAW})},{index:D8.positionLow,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:c.positionLow,context:i,usage:Fe.STATIC_DRAW})}]:[{index:fbe.position,componentDatatype:e._positionDatatype,componentsPerAttribute:3,normalize:e._positionNormalized,vertexBuffer:$e.createVertexBuffer({typedArray:c.position,context:i,usage:Fe.STATIC_DRAW})}],{index:r.pickColor,componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:4,vertexBuffer:$e.createVertexBuffer({typedArray:c.pickColor,context:i,usage:Fe.STATIC_DRAW})},{index:r.showColorAlpha,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:c.showColorAlpha,context:i,usage:Fe.STATIC_DRAW})}]})}l(n.renderState)||(n.renderState=Be.fromCache({blending:e._blendOption===Wi.OPAQUE?nn.DISABLED:nn.ALPHA_BLEND,depthTest:{enabled:!0}})),l(n.shaderProgram)||(n.shaderProgram=tn.fromCache({context:i,vertexShaderSource:new He({sources:[pP],defines:o?["USE_FLOAT64"]:[]}),fragmentShaderSource:new He({sources:[bP]}),attributeLocations:r}));let s=e.triangleCount*3;l(n.command)||(n.command=new at({vertexArray:n.vertexArray,renderState:n.renderState,shaderProgram:n.shaderProgram,primitiveType:ve.TRIANGLES,pass:e._blendOption===Wi.OPAQUE?Le.OPAQUE:Le.TRANSLUCENT,pickId:e._allowPicking?"v_pickColor":void 0,owner:e,count:s,modelMatrix:e.modelMatrix,boundingVolume:e.boundingVolume,debugShowBoundingVolume:e.debugShowBoundingVolume}));let a=n.command;return a.count!==s&&(a.count=s),a.debugShowBoundingVolume!==e.debugShowBoundingVolume&&(a.debugShowBoundingVolume=e.debugShowBoundingVolume),t.commandList.push(a),e._dirtyCount=0,e._dirtyOffset=0,n}function ont(e){let{_dirtyOffset:t,_dirtyCount:n}=e;e.get(t,da);let i=da.vertexOffset,o=da.triangleOffset*3;e.get(t+n-1,da);let r=da.vertexOffset+da.vertexCount-i,s=(da.triangleOffset+da.triangleCount)*3-o;return{indexOffset:o,indexCount:s,vertexOffset:i,vertexCount:r}}function rnt(){let e=this;l(e.vertexArray)&&e.vertexArray.destroy(),l(e.shaderProgram)&&e.shaderProgram.destroy(),l(e.renderState)&&Be.removeFromCache(e.renderState)}var yP=int;var{ERR_CAPACITY:kii}=zs.Error,z8=class e extends zs{constructor(t=B.EMPTY_OBJECT){super(t),this._holeCount=0,this._holeCountMax=t.holeCountMax??zs.DEFAULT_CAPACITY,this._holeIndexView=null,this._triangleCount=0,this._triangleCountMax=t.triangleCountMax??zs.DEFAULT_CAPACITY,this._triangleIndexView=null,this._allocateHoleIndexBuffer(),this._allocateTriangleIndexBuffer()}_getCollectionClass(){return e}_getPrimitiveClass(){return Ls}_getMaterialClass(){return ef}_allocateHoleIndexBuffer(){this._holeIndexView=De.createTypedArray(this._positionCountMax,this._holeCountMax)}_allocateTriangleIndexBuffer(){this._triangleIndexView=De.createTypedArray(this._positionCountMax,this._triangleCountMax*3)}static clone(t,n){return super.clone(t,n),this._copySubArray(t._holeIndexView,n._holeIndexView,t.holeCount),this._copySubArray(t._triangleIndexView,n._triangleIndexView,t._triangleCount*3),n._holeCount=t._holeCount,n._triangleCount=t._triangleCount,n}static _cloneEmpty(t){return new e({primitiveCountMax:t.primitiveCountMax,vertexCountMax:t.vertexCountMax,holeCountMax:t.holeCountMax,triangleCountMax:t.triangleCountMax,positionDatatype:t.positionDatatype,positionNormalized:t.positionNormalized})}static _replaceBuffers(t,n){super._replaceBuffers(t,n),n._holeIndexView=t._holeIndexView,n._triangleIndexView=t._triangleIndexView}add(t,n=new Ls){super.add(t,n);let i=this._positionCount;n._setUint32(Ls.Layout.POSITION_OFFSET_U32,i),n._setUint32(Ls.Layout.POSITION_COUNT_U32,0);let o=this._holeCount;n._setUint32(Ls.Layout.HOLE_OFFSET_U32,o),n._setUint32(Ls.Layout.HOLE_COUNT_U32,0);let r=this._triangleCount;return n._setUint32(Ls.Layout.TRIANGLE_OFFSET_U32,r),n._setUint32(Ls.Layout.TRIANGLE_COUNT_U32,0),l(t.positions)&&n.setPositions(t.positions),l(t.holes)&&n.setHoles(t.holes),l(t.triangles)&&n.setTriangles(t.triangles),n}update(t){super.update(t);let n=t.passes;this.show&&(n.render||n.pick)&&(this._renderContext=yP(this,t,this._renderContext))}get byteLength(){return super.byteLength+this._holeIndexView.byteLength+this._triangleIndexView.byteLength}get holeCount(){return this._holeCount}get holeCountMax(){return this._holeCountMax}get triangleCount(){return this._triangleCount}get triangleCountMax(){return this._triangleCountMax}},Vd=z8;var jii=x(T(),1);var{ERR_RESIZE:Hii,ERR_CAPACITY:Kii}=zs.Error,zC=class zC extends Kr{constructor(){super(...arguments);lt(this,"_collection",null)}static clone(n,i){return super.clone(n,i),i.setPositions(n.getPositions()),i}get vertexOffset(){return this._getUint32(zC.Layout.POSITION_OFFSET_U32)}get vertexCount(){return this._getUint32(zC.Layout.POSITION_COUNT_U32)}getPositions(n){let{vertexOffset:i,vertexCount:o}=this,r=this._collection._positionView;if(!l(n)){let s=r.byteOffset+i*3*r.BYTES_PER_ELEMENT,a=r.constructor;return new a(r.buffer,s,o*3)}for(let s=0;s<o;s++)n[s*3]=r[(i+s)*3],n[s*3+1]=r[(i+s)*3+1],n[s*3+2]=r[(i+s)*3+2];return n}setPositions(n){let i=this._collection,o=this.vertexOffset,r=this.vertexCount,s=n.length/3,a=i._positionCount+s-r;i._positionCount=a,this._setUint32(zC.Layout.POSITION_COUNT_U32,s);let c=i._positionView;for(let d=0;d<s;d++)c[(o+d)*3]=n[d*3],c[(o+d)*3+1]=n[d*3+1],c[(o+d)*3+2]=n[d*3+2];this._dirty=!0,i._makeDirtyBoundingVolume()}toJSON(){return{...super.toJSON(),positions:Array.from(this.getPositions())}}};lt(zC,"Layout",{...Kr.Layout,POSITION_OFFSET_U32:Kr.Layout.__BYTE_LENGTH,POSITION_COUNT_U32:Kr.Layout.__BYTE_LENGTH+4,__BYTE_LENGTH:Kr.Layout.__BYTE_LENGTH+8});var H8=zC,qa=H8;var Noi=x(T(),1);var Woi=x(T(),1);var $ii=x(T(),1),xP=`#ifdef USE_FLOAT64 +in vec3 positionHigh; +in vec3 positionLow; +in vec3 prevPositionHigh; +in vec3 prevPositionLow; +in vec3 nextPositionHigh; +in vec3 nextPositionLow; +#else +in vec3 position; +in vec3 prevPosition; +in vec3 nextPosition; +#endif +in vec4 pickColor; +in vec4 showColorWidthAndTexCoord; +in float alpha; + +out vec4 v_pickColor; +out vec4 v_color; +out vec2 v_st; +out float v_width; +out float v_polylineAngle; + +void main() +{ + float show = showColorWidthAndTexCoord.x; + vec4 color = czm_decodeRGB8(showColorWidthAndTexCoord.y); + float width = showColorWidthAndTexCoord.z; + float texCoord = showColorWidthAndTexCoord.w; + + /////////////////////////////////////////////////////////////////////////// + + bool usePrevious = texCoord == 1.0; + float expandDir = gl_VertexID % 2 == 1 ? 1.0 : -1.0; + float polylineAngle; + +#ifdef USE_FLOAT64 + vec4 positionEC = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 prevPositionEC = czm_translateRelativeToEye(prevPositionHigh, prevPositionLow); + vec4 nextPositionEC = czm_translateRelativeToEye(nextPositionHigh, nextPositionLow); + vec4 positionWC = getPolylineWindowCoordinates(positionEC, prevPositionEC, nextPositionEC, expandDir, width, usePrevious, polylineAngle); +#else + vec4 positionEC = czm_modelView * vec4(position, 1.0); + vec4 prevPositionEC = czm_modelView * vec4(prevPosition, 1.0); + vec4 nextPositionEC = czm_modelView * vec4(nextPosition, 1.0); + // Positions are already in eye space; use the EC variant to skip the redundant transform. + vec4 positionWC = getPolylineWindowCoordinatesEC(positionEC, prevPositionEC, nextPositionEC, expandDir, width, usePrevious, polylineAngle); +#endif + + /////////////////////////////////////////////////////////////////////////// + + gl_Position = czm_viewportOrthographic * positionWC * show; + + v_pickColor = pickColor / 255.0; + + v_color = color; + v_color.a *= alpha / 255.0 * show; + + v_st.s = texCoord; + v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w); + + v_width = width; + v_polylineAngle = polylineAngle; +} +`;var toi=x(T(),1),TP=`in vec4 v_pickColor; +in vec4 v_color; + +void main() +{ + if (v_color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } + + out_FragColor = czm_gammaCorrect(v_color); + czm_writeLogDepth(); +} +`;var roi=x(T(),1);var _P=class _P extends Dl{constructor(t=B.EMPTY_OBJECT){super(t),this.width=t.width??1}static pack(t,n,i){super.pack(t,n,i),n.setUint8(this.Layout.WIDTH_U8+i,t.width)}static unpack(t,n,i){return super.unpack(t,n,i),i.width=t.getUint8(this.Layout.WIDTH_U8+n),i}toJSON(){return{...super.toJSON(),width:this.width}}};lt(_P,"Layout",{...Dl.Layout,WIDTH_U8:Dl.Layout.__BYTE_LENGTH,__BYTE_LENGTH:Dl.Layout.__BYTE_LENGTH+4}),lt(_P,"DEFAULT_MATERIAL",Object.freeze(new _P));var K8=_P,tf=K8;var X_={positionHigh:0,positionLow:1,prevPositionHigh:2,prevPositionLow:3,nextPositionHigh:4,nextPositionLow:5,pickColor:6,showColorWidthAndTexCoord:7,alpha:8},vD={position:0,prevPosition:1,nextPosition:2,pickColor:3,showColorWidthAndTexCoord:4,alpha:5},$c=new qa,FD=new tf,SP=new U,bbe=new h,gbe=new h,ybe=new h,J8=new Zn,j8=new Zn,Q8=new Zn;function snt(e,t,n){let i=t.context;n=n||{destroy:lnt};let o=e._positionDatatype===J.DOUBLE,r=o?X_:vD;if(!l(n.attributeArrays)||!l(n.indexArray)){let c=e.vertexCountMax-e.primitiveCount,d=e.vertexCountMax*2;n.indexArray=De.createTypedArray(d,c*6),n.attributeArrays={...o?{positionHigh:new Float32Array(d*3),positionLow:new Float32Array(d*3),prevPositionHigh:new Float32Array(d*3),prevPositionLow:new Float32Array(d*3),nextPositionHigh:new Float32Array(d*3),nextPositionLow:new Float32Array(d*3)}:{position:J.createTypedArray(e._positionDatatype,d*3),prevPosition:J.createTypedArray(e._positionDatatype,d*3),nextPosition:J.createTypedArray(e._positionDatatype,d*3)},pickColor:new Uint8Array(d*4),showColorWidthAndTexCoord:new Float32Array(d*4),alpha:new Uint8Array(d)}}if(e._dirtyCount>0){let{_dirtyOffset:c,_dirtyCount:d}=e,u=n.indexArray,{pickColor:m,showColorWidthAndTexCoord:p,alpha:b,position:f,prevPosition:y,nextPosition:_,positionHigh:S,positionLow:A,prevPositionHigh:Z,prevPositionLow:R,nextPositionHigh:G,nextPositionLow:E}=n.attributeArrays;for(let v=c,I=c+d;v<I;v++){if(e.get(v,$c),!$c._dirty)continue;$c.getMaterial(FD);let X=cn.encodeRGB8(FD.color),Y=FD.color.alpha;U.fromRgba($c._pickId,SP);let g=$c.show,C=$c.vertexOffset*2,V=($c.vertexOffset-v)*6,L=e._positionView,P=$c.vertexOffset*3;for(let N=0,O=$c.vertexCount;N<O;N++){let M=N===0,D=N===O-1,w=L[P+N*3],z=L[P+N*3+1],K=L[P+N*3+2],ee,H,te,q,de,ye;M?(q=L[P+3],de=L[P+3+1],ye=L[P+3+2],ee=2*w-q,H=2*z-de,te=2*K-ye):D?(ee=L[P+(N-1)*3],H=L[P+(N-1)*3+1],te=L[P+(N-1)*3+2],q=2*w-ee,de=2*z-H,ye=2*K-te):(ee=L[P+(N-1)*3],H=L[P+(N-1)*3+1],te=L[P+(N-1)*3+2],q=L[P+(N+1)*3],de=L[P+(N+1)*3+1],ye=L[P+(N+1)*3+2]),D||(u[V]=C,u[V+1]=C+1,u[V+2]=C+2,u[V+3]=C+2,u[V+4]=C+1,u[V+5]=C+3,V+=6),o&&(h.fromElements(w,z,K,bbe),h.fromElements(ee,H,te,gbe),h.fromElements(q,de,ye,ybe),Zn.fromCartesian(bbe,J8),Zn.fromCartesian(gbe,j8),Zn.fromCartesian(ybe,Q8));for(let le=0;le<2;le++)o?(h.pack(J8.high,S,C*3),h.pack(J8.low,A,C*3),h.pack(j8.high,Z,C*3),h.pack(j8.low,R,C*3),h.pack(Q8.high,G,C*3),h.pack(Q8.low,E,C*3)):(f[C*3]=w,f[C*3+1]=z,f[C*3+2]=K,y[C*3]=ee,y[C*3+1]=H,y[C*3+2]=te,_[C*3]=q,_[C*3+1]=de,_[C*3+2]=ye),m[C*4]=U.floatToByte(SP.red),m[C*4+1]=U.floatToByte(SP.green),m[C*4+2]=U.floatToByte(SP.blue),m[C*4+3]=U.floatToByte(SP.alpha),p[C*4]=g?1:0,p[C*4+1]=X,p[C*4+2]=FD.width,p[C*4+3]=N/(O-1),b[C]=Y*255,C++}$c._dirty=!1}}if(l(n.vertexArray)){if(e._dirtyCount>0){let{indexOffset:c,indexCount:d,vertexOffset:u,vertexCount:m}=cnt(e);n.vertexArray.copyIndexFromRange(n.indexArray,c,d);for(let p in r)if(Object.hasOwn(r,p)){let b=p;n.vertexArray.copyAttributeFromRange(r[b],n.attributeArrays[b],u,m)}}}else{let c=n.attributeArrays;n.vertexArray=new wn({context:i,indexBuffer:$e.createIndexBuffer({context:i,typedArray:n.indexArray,usage:Fe.STATIC_DRAW,indexDatatype:De.fromTypedArray(n.indexArray)}),attributes:[...o?[{index:X_.positionHigh,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:c.positionHigh,context:i,usage:Fe.STATIC_DRAW})},{index:X_.positionLow,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:c.positionLow,context:i,usage:Fe.STATIC_DRAW})},{index:X_.prevPositionHigh,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:c.prevPositionHigh,context:i,usage:Fe.STATIC_DRAW})},{index:X_.prevPositionLow,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:c.prevPositionLow,context:i,usage:Fe.STATIC_DRAW})},{index:X_.nextPositionHigh,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:c.nextPositionHigh,context:i,usage:Fe.STATIC_DRAW})},{index:X_.nextPositionLow,componentDatatype:J.FLOAT,componentsPerAttribute:3,vertexBuffer:$e.createVertexBuffer({typedArray:c.nextPositionLow,context:i,usage:Fe.STATIC_DRAW})}]:[{index:vD.position,componentDatatype:e._positionDatatype,componentsPerAttribute:3,normalize:e._positionNormalized,vertexBuffer:$e.createVertexBuffer({typedArray:c.position,context:i,usage:Fe.STATIC_DRAW})},{index:vD.prevPosition,componentDatatype:e._positionDatatype,componentsPerAttribute:3,normalize:e._positionNormalized,vertexBuffer:$e.createVertexBuffer({typedArray:c.prevPosition,context:i,usage:Fe.STATIC_DRAW})},{index:vD.nextPosition,componentDatatype:e._positionDatatype,componentsPerAttribute:3,normalize:e._positionNormalized,vertexBuffer:$e.createVertexBuffer({typedArray:c.nextPosition,context:i,usage:Fe.STATIC_DRAW})}],{index:r.pickColor,componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:4,vertexBuffer:$e.createVertexBuffer({typedArray:c.pickColor,context:i,usage:Fe.STATIC_DRAW})},{index:r.showColorWidthAndTexCoord,componentDatatype:J.FLOAT,componentsPerAttribute:4,vertexBuffer:$e.createVertexBuffer({typedArray:c.showColorWidthAndTexCoord,context:i,usage:Fe.STATIC_DRAW})},{index:r.alpha,componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,vertexBuffer:$e.createVertexBuffer({typedArray:c.alpha,context:i,usage:Fe.STATIC_DRAW})}]})}l(n.renderState)||(n.renderState=Be.fromCache({blending:e._blendOption===Wi.OPAQUE?nn.DISABLED:nn.ALPHA_BLEND,depthTest:{enabled:!0}})),l(n.shaderProgram)||(n.shaderProgram=tn.fromCache({context:i,vertexShaderSource:new He({sources:[Sl,xP],defines:o?["USE_FLOAT64"]:[]}),fragmentShaderSource:new He({sources:[TP]}),attributeLocations:r}));let s=ant(e);l(n.command)||(n.command=new at({vertexArray:n.vertexArray,renderState:n.renderState,shaderProgram:n.shaderProgram,primitiveType:ve.TRIANGLES,pass:e._blendOption===Wi.OPAQUE?Le.OPAQUE:Le.TRANSLUCENT,pickId:e._allowPicking?"v_pickColor":void 0,owner:e,count:s,modelMatrix:e.modelMatrix,boundingVolume:e.boundingVolume,debugShowBoundingVolume:e.debugShowBoundingVolume}));let a=n.command;return a.count!==s&&(a.count=s),a.debugShowBoundingVolume!==e.debugShowBoundingVolume&&(a.debugShowBoundingVolume=e.debugShowBoundingVolume),t.commandList.push(a),e._dirtyCount=0,e._dirtyOffset=0,n}function ant(e){return(e.vertexCount-e.primitiveCount)*6}function cnt(e){let{_dirtyOffset:t,_dirtyCount:n}=e;e.get(t,$c);let i=$c.vertexOffset*2,r=($c.vertexOffset-t)*6;e.get(t+n-1,$c);let s=($c.vertexOffset+$c.vertexCount)*2-i,c=(s/2-n)*6;return{indexOffset:r,indexCount:c,vertexOffset:i,vertexCount:s}}function lnt(){let e=this;l(e.vertexArray)&&e.vertexArray.destroy(),l(e.shaderProgram)&&e.shaderProgram.destroy(),l(e.renderState)&&Be.removeFromCache(e.renderState)}var AP=snt;var q8=class e extends zs{_getCollectionClass(){return e}_getPrimitiveClass(){return qa}_getMaterialClass(){return tf}static _cloneEmpty(t){return new e({primitiveCountMax:t.primitiveCountMax,vertexCountMax:t.vertexCountMax,positionDatatype:t.positionDatatype,positionNormalized:t.positionNormalized})}add(t,n=new qa){super.add(t,n);let i=this._positionCount;return n._setUint32(qa.Layout.POSITION_OFFSET_U32,i),n._setUint32(qa.Layout.POSITION_COUNT_U32,0),l(t.positions)&&n.setPositions(t.positions),n}update(t){super.update(t);let n=t.passes;this.show&&(n.render||n.pick)&&(this._renderContext=AP(this,t,this._renderContext))}},Gd=q8;var $oi=x(T(),1);var Ooi=x(T(),1);function HC(e,t){this._conditionsExpression=Je(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,unt(this,t)}Object.defineProperties(HC.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function dnt(e,t){this.condition=e,this.expression=t}function unt(e,t){let n=[],i=e._conditions;if(!l(i))return;let o=i.length;for(let r=0;r<o;++r){let s=i[r],a=String(s[0]),c=String(s[1]);n.push(new dnt(new mm(a,t),new mm(c,t)))}e._runtimeConditions=n}HC.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluate(e,t)}};HC.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluateColor(e,t)}};HC.prototype.getShaderFunction=function(e,t,n,i){let o=this._runtimeConditions;if(!l(o)||o.length===0)return;let r="",s=o.length;for(let a=0;a<s;++a){let c=o[a],d=c.condition.getShaderExpression(t,n),u=c.expression.getShaderExpression(t,n);r+=` ${a===0?"if":"else if"} (${d}) + { + return ${u}; + } +`}return r=`${i} ${e} +{ +${r} return ${i}(1.0); +} +`,r};HC.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!l(t)||t.length===0)return e;let n=t.length;for(let i=0;i<n;++i){let o=t[i];$n(e,o.condition.getVariables()),$n(e,o.expression.getVariables())}return e=e.filter(function(i,o,r){return r.indexOf(i)===o}),e};var ZP=HC;function Oy(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._lineWidth=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1,mnt(this,e)}function mnt(e,t){t=Je(t,!0)??e._style,e._style=t,e.show=t.show,e.color=t.color,e.pointSize=t.pointSize,e.pointOutlineColor=t.pointOutlineColor,e.pointOutlineWidth=t.pointOutlineWidth,e.labelColor=t.labelColor,e.labelOutlineColor=t.labelOutlineColor,e.labelOutlineWidth=t.labelOutlineWidth,e.labelStyle=t.labelStyle,e.font=t.font,e.labelText=t.labelText,e.backgroundColor=t.backgroundColor,e.backgroundPadding=t.backgroundPadding,e.backgroundEnabled=t.backgroundEnabled,e.scaleByDistance=t.scaleByDistance,e.translucencyByDistance=t.translucencyByDistance,e.distanceDisplayCondition=t.distanceDisplayCondition,e.heightOffset=t.heightOffset,e.anchorLineEnabled=t.anchorLineEnabled,e.anchorLineColor=t.anchorLineColor,e.image=t.image,e.disableDepthTestDistance=t.disableDepthTestDistance,e.horizontalOrigin=t.horizontalOrigin,e.verticalOrigin=t.verticalOrigin,e.labelHorizontalOrigin=t.labelHorizontalOrigin,e.labelVerticalOrigin=t.labelVerticalOrigin,e.lineWidth=t.lineWidth;let n={};if(l(t.meta)){let i=t.defines,o=t.meta??B.EMPTY_OBJECT;for(let r in o)o.hasOwnProperty(r)&&(n[r]=new mm(o[r],i))}e._meta=n,e._ready=!0}function lr(e,t){let n=(e._style??B.EMPTY_OBJECT).defines;if(l(t)){if(typeof t=="boolean"||typeof t=="number")return new mm(String(t));if(typeof t=="string")return new mm(t,n);if(l(t.conditions))return new ZP(t,n)}else return;return t}function dr(e){if(l(e)){if(l(e.expression))return e.expression;if(l(e.conditionsExpression))return Je(e.conditionsExpression,!0)}else return;return e}Object.defineProperties(Oy.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=lr(this,e),this._style.show=dr(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=lr(this,e),this._style.color=dr(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=lr(this,e),this._style.pointSize=dr(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=lr(this,e),this._style.pointOutlineColor=dr(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=lr(this,e),this._style.pointOutlineWidth=dr(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=lr(this,e),this._style.labelColor=dr(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=lr(this,e),this._style.labelOutlineColor=dr(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=lr(this,e),this._style.labelOutlineWidth=dr(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=lr(this,e),this._style.font=dr(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=lr(this,e),this._style.labelStyle=dr(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=lr(this,e),this._style.labelText=dr(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=lr(this,e),this._style.backgroundColor=dr(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=lr(this,e),this._style.backgroundPadding=dr(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=lr(this,e),this._style.backgroundEnabled=dr(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=lr(this,e),this._style.scaleByDistance=dr(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=lr(this,e),this._style.translucencyByDistance=dr(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=lr(this,e),this._style.distanceDisplayCondition=dr(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=lr(this,e),this._style.heightOffset=dr(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=lr(this,e),this._style.anchorLineEnabled=dr(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=lr(this,e),this._style.anchorLineColor=dr(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=lr(this,e),this._style.image=dr(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=lr(this,e),this._style.disableDepthTestDistance=dr(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=lr(this,e),this._style.horizontalOrigin=dr(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=lr(this,e),this._style.verticalOrigin=dr(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=lr(this,e),this._style.labelHorizontalOrigin=dr(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=lr(this,e),this._style.labelVerticalOrigin=dr(this._labelVerticalOrigin)}},lineWidth:{get:function(){return this._lineWidth},set:function(e){this._lineWidth=lr(this,e),this._style.lineWidth=dr(this._lineWidth)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});Oy.fromUrl=function(e){return We.createIfNeeded(e).fetchJson(e).then(function(n){return new Oy(n)})};Oy.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,l(this.color)&&l(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};Oy.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,l(this.show)&&l(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};Oy.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,l(this.pointSize)&&l(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};Oy.prototype.getVariables=function(){let e=[];return l(this.color)&&l(this.color.getVariables)&&$n(e,this.color.getVariables()),l(this.show)&&l(this.show.getVariables)&&$n(e,this.show.getVariables()),l(this.pointSize)&&l(this.pointSize.getVariables)&&$n(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var Cb=Oy;var Fri=x(T(),1);var fri=x(T(),1);var xbe=new Gc,Tbe=new qa,_be=new Ls,hnt=new qh,fnt=new tf,pnt=new ef,$8=class{constructor(t,n,i=0){lt(this,"_color",new U);lt(this,"_outlineColor",new U);this._content=t,this._batchId=n,this._batchTableId=i,this._primitivesByCollection=new Map}addPrimitiveByCollection(t,n){let i=this._primitivesByCollection.get(t);i||(i=[],this._primitivesByCollection.set(t,i)),i.push(n)}get show(){for(let t of this._iteratePrimitives())if(t.show)return!0;return!1}set show(t){for(let n of this._iteratePrimitives())n.show=t}get color(){for(let t of this._iterateMaterials())return U.clone(t.color,this._color);return U.clone(U.WHITE,this._color)}set color(t){for(let n of this._iterateMaterials())U.clone(t,n.color)}get pointSize(){for(let t of this._iteratePointMaterials())return t.size;return 1}set pointSize(t){for(let n of this._iteratePointMaterials())n.size=t}get pointOutlineColor(){for(let t of this._iteratePointMaterials())return U.clone(t.outlineColor,this._outlineColor);return U.clone(U.WHITE,this._outlineColor)}set pointOutlineColor(t){for(let n of this._iteratePointMaterials())U.clone(t,n.outlineColor)}get pointOutlineWidth(){for(let t of this._iteratePointMaterials())return t.outlineWidth;return 0}set pointOutlineWidth(t){for(let n of this._iteratePointMaterials())n.outlineWidth=t}get lineWidth(){for(let t of this._iteratePolylineMaterials())return t.width;return 1}set lineWidth(t){for(let n of this._iteratePolylineMaterials())n.width=t}get lineOutlineColor(){for(let t of this._iteratePolylineMaterials())return U.clone(t.outlineColor,this._outlineColor);return U.clone(U.WHITE,this._outlineColor)}set lineOutlineColor(t){for(let n of this._iteratePolylineMaterials())U.clone(t,n.outlineColor)}get lineOutlineWidth(){for(let t of this._iteratePolylineMaterials())return t.outlineWidth;return 0}set lineOutlineWidth(t){for(let n of this._iteratePolylineMaterials())n.outlineWidth=t}get polygonOutlineColor(){for(let t of this._iteratePolygonMaterials())return U.clone(t.outlineColor,this._outlineColor);return U.clone(U.WHITE,this._outlineColor)}set polygonOutlineColor(t){for(let n of this._iteratePolygonMaterials())U.clone(t,n.outlineColor)}get polygonOutlineWidth(){for(let t of this._iteratePolygonMaterials())return t.outlineWidth;return 0}set polygonOutlineWidth(t){for(let n of this._iteratePolygonMaterials())n.outlineWidth=t}get content(){return this._content}get tileset(){return this._content.tileset}get primitive(){return this._content.tileset}get featureId(){return this._batchId}get _batchTable(){return this._content.batchTables[this._batchTableId]}get pickIds(){let t=[];for(let n of this._iteratePrimitives())t.push(n._pickId);return t}hasProperty(t){return l(this._batchTable)?this._batchTable.hasProperty(this._batchId,t):!1}getPropertyIds(t){return l(this._batchTable)?this._batchTable.getPropertyIds(this._batchId,t):[]}getProperty(t){if(l(this._batchTable))return this._batchTable.getProperty(this._batchId,t)}getPropertyInherited(t){return Ds.getPropertyInherited(this._content,this._batchId,t,this._batchTable)}setProperty(t,n){throw new Te("Not implemented")}isExactClass(t){return l(this._batchTable)?this._batchTable.isExactClass(this._batchId,t):!1}isClass(t){return l(this._batchTable)?this._batchTable.isClass(this._batchId,t):!1}getExactClassName(){if(l(this._batchTable))return this._batchTable.getExactClassName(this._batchId)}*_iteratePrimitives(){yield*this._iteratePrimitivesWith(Rd,xbe),yield*this._iteratePrimitivesWith(Gd,Tbe),yield*this._iteratePrimitivesWith(Vd,_be)}*_iteratePrimitivesWith(t,n){let i=this._content._collections;for(let o=0;o<i.length;o++){let r=i[o],s=this._primitivesByCollection.get(o);if(s&&r instanceof t)for(let a of s)r.get(a,n),yield n}}*_iterateMaterials(){yield*this._iteratePointMaterials(),yield*this._iteratePolylineMaterials(),yield*this._iteratePolygonMaterials()}*_iteratePointMaterials(){yield*this._iterateMaterialsWith(Rd,xbe,hnt)}*_iteratePolylineMaterials(){yield*this._iterateMaterialsWith(Gd,Tbe,fnt)}*_iteratePolygonMaterials(){yield*this._iterateMaterialsWith(Vd,_be,pnt)}*_iterateMaterialsWith(t,n,i){for(let o of this._iteratePrimitivesWith(t,n))o.getMaterial(i),yield i,o.setMaterial(i)}},Y_=$8;var Sbe=new h,bnt=new Gc,gnt=new qa,Zbe=new Ls;function ynt(e,t){let n=t.scene.nodes,i={collections:[],collectionLocalMatrices:[],collectionFeatureTableIds:new Map,featuresByTableId:new Map};for(let o=0;o<n.length;o++)Cbe(e,n[o],F.IDENTITY,i);return i}function ID(e){let t=e.BYTES_PER_ELEMENT*8;return Math.pow(2,t)-1}function xnt(e){let t={pointPrimitiveCount:0,pointVertexCount:0,polylinePrimitiveCount:0,polylineVertexCount:0,polygonPrimitiveCount:0,polygonVertexCount:0,polygonHoleCount:0,polygonTriangleCount:0},n=e.vector,i=e.polygon,o=e.primitiveType,s=bt.getAttributeBySemantic(e,ct.POSITION).count,a=e.indices?sa.readIndicesAsTypedArray(e.indices):void 0;if(o===ve.POINTS)t.pointPrimitiveCount+=s,t.pointVertexCount+=s;else if(o===ve.LINE_STRIP){let c=n?n.count:Abe(a);t.polylinePrimitiveCount+=c,t.polylineVertexCount+=a.length-c+1}else if(o===ve.TRIANGLES||o===ve.LINE_LOOP)if(n){t.polygonPrimitiveCount+=n.count,t.polygonVertexCount+=s,t.polygonTriangleCount+=a.length/3;let c=n.polygonHoleCounts;if(c)for(let d=0;d<c.length;d++)t.polygonHoleCount+=c[d]}else{let c=Abe(i.loopIndices);t.polygonPrimitiveCount+=i.count,t.polygonVertexCount+=i.loopIndices.length-c+1,t.polygonTriangleCount+=i.triangleIndices.length,t.polygonHoleCount+=c-i.count}else throw new ae(`Unexpected primitive type: ${o}`);return t}function Abe(e){let t=ID(e),n=0;for(let i=0;i<e.length;i++)e[i]===t&&i+1<e.length&&n++;return n+1}function Tnt(e,t,n,i,o){let r=bt.getAttributeBySemantic(t,ct.POSITION),s=r.typedArray??(n.positionNormalized?sa.readAttributeAsRawCompactTypedArray(r):sa.readAttributeAsTypedArray(r)),a=t.indices?sa.readIndicesAsTypedArray(t.indices):void 0,c=_nt(e,t,o);n instanceof Rd?Snt(n,i,s,a,c):n instanceof Gd?Ant(n,i,s,a,c):n instanceof Vd&&(l(t.vector)?Znt(n,i,s,a,c,t.vector):Cnt(n,i,s,c,t.polygon))}function _nt(e,t,n){let i=e.tileset.featureIdLabel,o=bt.getFeatureIdsByLabel(t.featureIds,i);if(!(o instanceof Sn.FeatureIdAttribute))return()=>{};let r=bt.getAttributeBySemantic(t,ct.FEATURE_ID,o.setIndex),s=r.typedArray??sa.readAttributeAsTypedArray(r);for(let a=0;a<s.length;a++){let c=s[a];if(!n.has(c)){let d=new Y_(e,c,o.propertyTableId);n.set(c,d)}}return function(c){let d=s[c];if(d!==o.nullFeatureId)return n.get(d)}}function Snt(e,t,n,i,o){let r=n.length/3;for(let s=0,a=i?i.length:r;s<a;s++){let c=i?i[s]:s;h.fromArray(n,c*3,Sbe);let d=o(c);d&&d.addPrimitiveByCollection(t,s),e.add({position:Sbe,pickObject:d,featureId:d?.featureId},bnt)}}function Ant(e,t,n,i,o){let r=ID(i),s=0,a=0,c=0;for(let d=0;d<i.length;d++){if(i[d]===r?a=d-s:d+1===i.length&&(a=d+1-s),a===0)continue;let m=s+a,p=i.subarray(s,m),b=Rbe(n,p,3),f=o(i[s]);f&&f.addPrimitiveByCollection(t,c),e.add({positions:b,pickObject:f,featureId:f?.featureId},gnt),s=d+1,a=0,c++}}function Znt(e,t,n,i,o,r){let s=r.polygonAttributeOffsets,a=r.polygonIndicesOffsets,c=r.polygonHoleCounts,d=r.polygonHoleOffsets,u=n.length/3,m=s.length;for(let p=0;p<m;p++){let b=s[p],f=p+1<m?s[p+1]:u,y=n.subarray(b*3,f*3),_;if(l(c)&&c[p]>0){let G=c[p];_=d.slice(p,p+G);for(let E=0;E<G;E++)_[E]-=b}let S=a[p],A=p+1<m?a[p+1]:i.length,Z=i.slice(S,A);for(let G=0;G<Z.length;G++)Z[G]-=b;let R=o(b);R&&R.addPrimitiveByCollection(t,p),e.add({positions:y,triangles:Z,holes:_,pickObject:R,featureId:R?.featureId},Zbe)}}function Cnt(e,t,n,i,o){let r=o.loopIndices.constructor,s=new r(o.loopIndices.length),a=ID(o.loopIndices);for(let c=0;c<o.count;c++){let d=c+1===o.count,u=o.loopIndicesOffsets[c],m=d?o.loopIndices.length:o.loopIndicesOffsets[c+1],p=o.loopIndices.subarray(u,m),b=Rbe(n,p,3,s),f=[];for(let A=0;A<p.length;A++){let Z=A+1===p.length;p[A]===a&&!Z&&f.push(A)}let y=new r(f),_;if(l(o.triangleIndices)){let A=o.triangleIndicesOffsets[c],Z=d?o.triangleIndices.length:o.triangleIndicesOffsets[c+1];_=o.triangleIndices.subarray(A,Z);for(let R=0;R<_.length;R++)_[R]=s[_[R]]}else throw new Error("Runtime triangulation not yet supported.");let S=i(p[0]);S&&S.addPrimitiveByCollection(t,c),e.add({positions:b,triangles:_,holes:y,pickObject:S,featureId:S?.featureId},Zbe)}}function Cbe(e,t,n,i){let o=bt.getNodeTransform(t),r=F.multiplyTransformation(n,o,new F),s=t.primitives;for(let c=0;c<s.length;c++){let d=s[c],u=d.primitiveType,m,p=xnt(d),b=bt.getAttributeBySemantic(d,ct.POSITION),f=b.normalized??!1,y=b.componentDatatype;u===ve.POINTS?m=new Rd({primitiveCountMax:p.pointPrimitiveCount,allowPicking:!0,positionNormalized:f,positionDatatype:y}):u===ve.LINE_STRIP?m=new Gd({primitiveCountMax:p.polylinePrimitiveCount,vertexCountMax:p.polylineVertexCount,allowPicking:!0,positionNormalized:f,positionDatatype:y}):(u===ve.TRIANGLES||u===ve.LINE_LOOP)&&(m=new Vd({primitiveCountMax:p.polygonPrimitiveCount,vertexCountMax:p.polygonVertexCount,holeCountMax:p.polygonHoleCount,triangleCountMax:p.polygonTriangleCount,allowPicking:!0,positionNormalized:f,positionDatatype:y}));let S=d.featureIds?.[0]?.propertyTableId;i.featuresByTableId.has(S)||i.featuresByTableId.set(S,new Map),i.collections.push(m),i.collectionLocalMatrices.push(F.clone(r)),i.collectionFeatureTableIds.set(m,S),Tnt(e,d,m,i.collections.length-1,i.featuresByTableId.get(S))}let a=t.children;for(let c=0;c<a.length;c++)Cbe(e,a[c],r,i)}function Rbe(e,t,n,i){let o=ID(t),r=0;for(let d=0;d<t.length;d++)t[d]!==o&&r++;let s=e.constructor,a=new s(r*n),c=0;for(let d=0;d<t.length;d++){let u=t[d];if(i&&(i[u]=u===o?o:c),u!==o){for(let m=0;m<n;m++)a[c*n+m]=e[u*n+m];c++}}return a}var CP=ynt;var PD=new Gc,XD=new qa,YD=new Ls,RP=new qh,e7=new tf,Vbe=new ef,Gbe=new F,t7=class e{constructor(t,n,i){this._tileset=t,this._tile=n,this._resource=i,this._model=void 0,this._collections=[],this._collectionLocalMatrices=[],this._collectionFeatureTableIds=new Map,this._featuresByTableId=new Map,this._metadata=void 0,this._group=void 0,this.featurePropertiesDirty=!1,this._ready=!1,this._modelMatrix=F.clone(F.IDENTITY)}get featuresLength(){return this.batchTables.reduce((t,n)=>t+n.featuresLength,0)}get pointsLength(){return this._collections.filter(t=>t instanceof Rd).reduce((t,n)=>t+n.primitiveCount,0)}get trianglesLength(){return this._collections.reduce((t,n)=>n instanceof Vd?t+n.triangleCount:n instanceof Gd?t+(n.vertexCount-n.primitiveCount)*2:t,0)}get geometryByteLength(){return this._collections.reduce((t,n)=>t+n.byteLength,0)}get texturesByteLength(){return 0}get batchTableByteLength(){return this.batchTables.reduce((t,n)=>t+n.batchTableByteLength,0)}get innerContents(){}get ready(){return this._ready}get tileset(){return this._tileset}get tile(){return this._tile}get url(){return this._resource.getUrlComponent(!0)}get batchTables(){return this._model._featureTables}get batchTable(){throw new Te("Deprecated: Use `content.batchTables`.")}get metadata(){return this._metadata}set metadata(t){this._metadata=t}get group(){return this._group}set group(t){this._group=t}getFeature(t,n){return this._featuresByTableId.get(n)?.get(t)}hasProperty(t,n,i){let o=this.getFeature(t,i);return o?o.hasProperty(n):!1}applyDebugSettings(t,n){let i=t?`color("${n.toCssHexString()}", 1.0)`:'color("white", 1.0)';this.applyStyle(new Cb({color:i}))}applyStyle(t){let n=r=>r instanceof Rd,i=r=>r instanceof Gd,o=r=>r instanceof Vd;for(let r of this._collections.filter(n)){let s=this._collectionFeatureTableIds.get(r);for(let a=0,c=r.primitiveCount;a<c;a++){r.get(a,PD);let d=this.getFeature(PD.featureId,s);l(t.show)&&(PD.show=t.show.evaluate(d)),l(t.color)&&t.color.evaluate(d,RP.color),l(t.pointSize)&&(RP.size=t.pointSize.evaluate(d)),l(t.pointOutlineWidth)&&(RP.outlineWidth=t.pointOutlineWidth.evaluate(d)),l(t.pointOutlineColor)&&t.pointOutlineColor.evaluate(d,RP.outlineColor),PD.setMaterial(RP)}}for(let r of this._collections.filter(i)){let s=this._collectionFeatureTableIds.get(r);for(let a=0,c=r.primitiveCount;a<c;a++){r.get(a,XD);let d=this.getFeature(XD.featureId,s);l(t.show)&&(XD.show=t.show.evaluate(d)),l(t.color)&&t.color.evaluate(d,e7.color),l(t.lineWidth)&&(e7.width=t.lineWidth.evaluate(d)),XD.setMaterial(e7)}}for(let r of this._collections.filter(o)){let s=this._collectionFeatureTableIds.get(r);for(let a=0,c=r.primitiveCount;a<c;a++){r.get(a,YD);let d=this.getFeature(YD.featureId,s);l(t.show)&&(YD.show=t.show.evaluate(d)),l(t.color)&&t.color.evaluate(d,Vbe.color),YD.setMaterial(Vbe)}}}update(t,n){if(l(this._model)&&!this._ready){let i=this._model;i.modelMatrix=this._tile.computedTransform,i.update(n),i.ready&&(Vnt(this),this._ready=!0)}F.multiplyTransformation(this._tile.computedTransform,this._modelMatrix,Gbe);for(let i=0;i<this._collections.length;i++)F.multiplyTransformation(Gbe,this._collectionLocalMatrices[i],this._collections[i].modelMatrix),this._collections[i].update(n)}pick(t,n,i){}isDestroyed(){return!1}destroy(){return this._model?.destroy(),this._model=void 0,this._collections.forEach(t=>t.destroy()),this._collections.length=0,he(this)}static async fromGltf(t,n,i,o){let r=new e(t,n,i),s=Rnt(t,n,r,o),a=await fu.fromGltfAsync(s);return a.show=!1,r._model=a,r}};function Rnt(e,t,n,i){return{gltf:i,basePath:n._resource,cull:!1,releaseGltfJson:!0,opaquePass:Le.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,content:n,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,projectTo2D:e._projectTo2D,enablePick:e._enablePick,enableDebugWireframe:e._enableDebugWireframe,enableShowOutline:!1}}function Vnt(e){let t=e._model.sceneGraph.components,n=bt.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new F);F.multiplyTransformation(t.transform,n,e._modelMatrix);let i=CP(e,t);e._collections=i.collections,e._collectionLocalMatrices=i.collectionLocalMatrices,e._collectionFeatureTableIds=i.collectionFeatureTableIds,e._featuresByTableId=i.featuresByTableId}var By=t7;var xai=x(T(),1);var aai=x(T(),1);var rsi=x(T(),1);function $a(){}$a._maxSortingConcurrency=Math.max(mn.hardwareConcurrency-1,1);$a._sorterTaskProcessor=void 0;$a._taskProcessorReady=!1;$a._error=void 0;$a._getSorterTaskProcessor=function(){if(!l($a._sorterTaskProcessor)){let e=new Hn("gaussianSplatSorter",$a._maxSortingConcurrency);e.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/wasm_splats_bg.wasm"}).then(function(t){t?$a._taskProcessorReady=!0:$a._error=new ae("Gaussian splat sorter could not be initialized.")}).catch(t=>{$a._error=t}),$a._sorterTaskProcessor=e}return $a._sorterTaskProcessor};$a.radixSortIndexes=function(e){let t=$a._getSorterTaskProcessor();if(l($a._error))throw $a._error;if($a._taskProcessorReady)return t.scheduleTask(e,[e.primitive.positions.buffer])};var N_=$a;var usi=x(T(),1);function ec(){}ec._maxSortingConcurrency=Math.max(mn.hardwareConcurrency-1,1);ec._textureTaskProcessor=void 0;ec._taskProcessorReady=!1;ec._error=void 0;ec._getTextureTaskProcessor=function(){if(!l(ec._textureTaskProcessor)){let e=new Hn("gaussianSplatTextureGenerator",ec._maxSortingConcurrency);e.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/wasm_splats_bg.wasm"}).then(function(t){t?ec._taskProcessorReady=!0:ec._error=new ae("Gaussian splat sorter could not be initialized.")}).catch(t=>{ec._error=t}),ec._textureTaskProcessor=e}return ec._textureTaskProcessor};ec.generateFromAttributes=function(e){let t=ec._getTextureTaskProcessor();if(l(ec._error))throw ec._error;if(!ec._taskProcessorReady)return;let{attributes:n}=e;return t.scheduleTask(e,[n.positions.buffer,n.scales.buffer,n.rotations.buffer,n.colors.buffer])};var VP=ec;var ysi=x(T(),1);function Gnt(e){let t=new gb;this.shaderBuilder=t,this.uniformMap={},this.renderStateOptions=Be.getState(Be.fromCache({depthTest:{enabled:!0,func:Ha.LESS_OR_EQUAL}})),this.alphaOptions=new A_,this.hasSkipLevelOfDetail=!1,e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,pe.FRAGMENT)}var GP=Gnt;var Tsi=x(T(),1),EP=`// +// Vertex shader for Gaussian splats. + +// The splats are rendered as quads in view space. Splat attributes are loaded from a texture with precomputed 3D covariance. + +// Passes local quad coordinates and color to the fragment shader for Gaussian evaluation. +// +// Discards splats outside the view frustum or with negligible screen size. +// +#if defined(HAS_SPHERICAL_HARMONICS) +const uint coefficientCount[3] = uint[3](3u,8u,15u); +const float SH_C1 = 0.48860251; +const float SH_C2[5] = float[5]( + 1.092548430, + -1.09254843, + 0.315391565, + -1.09254843, + 0.546274215 +); + +const float SH_C3[7] = float[7]( + -0.59004358, + 2.890611442, + -0.45704579, + 0.373176332, + -0.45704579, + 1.445305721, + -0.59004358 +); + +//Retrieve SH coefficient. Currently RG32UI format +uvec2 loadSHCoeff(uint splatID, int index) { + ivec2 shTexSize = textureSize(u_sphericalHarmonicsTexture, 0); + uint dims = coefficientCount[uint(u_sphericalHarmonicsDegree)-1u]; + uint splatsPerRow = uint(shTexSize.x) / dims; + uint shIndex = (splatID%splatsPerRow) * dims + uint(index); + ivec2 shPosCoord = ivec2(shIndex, splatID / splatsPerRow); + return texelFetch(u_sphericalHarmonicsTexture, shPosCoord, 0).rg; +} + +//Unpack RG32UI half float coefficients to vec3 +vec3 halfToVec3(uvec2 packed) { + return vec3(unpackHalf2x16(packed.x), unpackHalf2x16(packed.y).x); +} + +vec3 loadAndExpandSHCoeff(uint splatID, int index) { + uvec2 coeff = loadSHCoeff(splatID, index); + return halfToVec3(coeff); +} + +vec3 evaluateSH(uint splatID, vec3 viewDir) { + vec3 result = vec3(0.0); + int coeffIndex = 0; + float x = viewDir.x, y = viewDir.y, z = viewDir.z; + + if (u_sphericalHarmonicsDegree >= 1.) { + vec3 sh1 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh2 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh3 = loadAndExpandSHCoeff(splatID, coeffIndex++); + result += -SH_C1 * y * sh1 + SH_C1 * z * sh2 - SH_C1 * x * sh3; + + if (u_sphericalHarmonicsDegree >= 2.) { + float xx = x * x; + float yy = y * y; + float zz = z * z; + float xy = x * y; + float yz = y * z; + float xz = x * z; + + vec3 sh4 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh5 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh6 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh7 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh8 = loadAndExpandSHCoeff(splatID, coeffIndex++); + result += SH_C2[0] * xy * sh4 + + SH_C2[1] * yz * sh5 + + SH_C2[2] * (2.0f * zz - xx - yy) * sh6 + + SH_C2[3] * xz * sh7 + + SH_C2[4] * (xx - yy) * sh8; + + if (u_sphericalHarmonicsDegree >= 3.) { + vec3 sh9 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh10 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh11 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh12 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh13 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh14 = loadAndExpandSHCoeff(splatID, coeffIndex++); + vec3 sh15 = loadAndExpandSHCoeff(splatID, coeffIndex++); + result += SH_C3[0] * y * (3.0f * xx - yy) * sh9 + + SH_C3[1] * xy * z * sh10 + + SH_C3[2] * y * (4.0f * zz - xx - yy) * sh11 + + SH_C3[3] * z * (2.0f * zz - 3.0f * xx - 3.0f * yy) * sh12 + + SH_C3[4] * x * (4.0f * zz - xx - yy) * sh13 + + SH_C3[5] * z * (xx - yy) * sh14 + + SH_C3[6] * x * (xx - 3.0f * yy) * sh15; + } + } + } + return result; +} +#endif + +// Transforms and projects splat covariance into screen space and extracts the major and minor axes of the Gaussian ellipsoid +// which is used to calculate the vertex position in clip space. +vec4 calcCovVectors(vec3 viewPos, mat3 Vrk) { + vec4 t = vec4(viewPos, 1.0); + vec2 focal = vec2(czm_projection[0][0] * czm_viewport.z, czm_projection[1][1] * czm_viewport.w); + + vec2 J1 = focal / t.z; + vec2 J2 = -focal * vec2(t.x, t.y) / (t.z * t.z); + mat3 J = mat3( + J1.x, 0.0, J2.x, + 0.0, J1.y, J2.y, + 0.0, 0.0, 0.0 + ); + + mat3 R = mat3(czm_modelView); + + //transform our covariance into view space + //ensures orientation is correct + mat3 Vrk_view = R * Vrk * transpose(R); + mat3 cov = transpose(J) * Vrk_view * J; + + float diagonal1 = cov[0][0] + .3; + float offDiagonal = cov[0][1]; + float diagonal2 = cov[1][1] + .3; + + float mid = 0.5 * (diagonal1 + diagonal2); + float radius = length(vec2((diagonal1 - diagonal2) * 0.5, offDiagonal)); + float lambda1 = mid + radius; + float lambda2 = max(mid - radius, 0.1); + + vec2 diagonalVector = normalize(vec2(offDiagonal, lambda1 - diagonal1)); + + return vec4( + min(sqrt(2.0 * lambda1), 1024.0) * diagonalVector, + min(sqrt(2.0 * lambda2), 1024.0) * vec2(diagonalVector.y, -diagonalVector.x) + ); +} + +highp vec4 discardVec = vec4(0.0, 0.0, 2.0, 1.0); + +void main() { + uint texIdx = uint(a_splatIndex); + // u_splatRowMask and u_splatRowShift encode the row width of the splat + // attribute texture. The texture width is always maximumTextureSize, which + // varies by GPU, so these are passed as uniforms rather than constants. + // rowMask = maximumTextureSize/2 - 1 + // rowShift = log2(maximumTextureSize/2) + uint rowMask = uint(u_splatRowMask); + uint rowShift = uint(u_splatRowShift); + ivec2 posCoord = ivec2(int((texIdx & rowMask) << 1), int(texIdx >> rowShift)); + vec4 splatPosition = vec4( uintBitsToFloat(uvec4(texelFetch(u_splatAttributeTexture, posCoord, 0))) ); + + vec4 splatViewPos = czm_modelView * vec4(splatPosition.xyz, 1.0); + vec4 clipPosition = czm_projection * splatViewPos; + + float clip = 1.2 * clipPosition.w; + if (clipPosition.z < -clip || clipPosition.x < -clip || clipPosition.x > clip || + clipPosition.y < -clip || clipPosition.y > clip) { + gl_Position = vec4(0.0, 0.0, 2.0, 1.0); + return; + } + + ivec2 covCoord = ivec2(int(((texIdx & rowMask) << 1) | 1u), int(texIdx >> rowShift)); + uvec4 covariance = uvec4(texelFetch(u_splatAttributeTexture, covCoord, 0)); + + gl_Position = clipPosition; + + vec2 u1 = unpackHalf2x16(covariance.x) ; + vec2 u2 = unpackHalf2x16(covariance.y); + vec2 u3 = unpackHalf2x16(covariance.z); + mat3 Vrk = mat3(u1.x, u1.y, u2.x, u1.y, u2.y, u3.x, u2.x, u3.x, u3.y); + + vec4 covVectors = calcCovVectors(splatViewPos.xyz, Vrk); + + if (dot(covVectors.xy, covVectors.xy) < 4.0 && dot(covVectors.zw, covVectors.zw) < 4.0) { + gl_Position = discardVec; + return; + } + + vec2 corner = vec2((gl_VertexID << 1) & 2, gl_VertexID & 2) - 1.; + + gl_Position += vec4((corner.x * covVectors.xy + corner.y * covVectors.zw) / czm_viewport.zw * gl_Position.w, 0, 0); + gl_Position.z = clamp(gl_Position.z, -abs(gl_Position.w), abs(gl_Position.w)); + + v_vertPos = corner ; + v_splatColor = vec4(covariance.w & 0xffu, (covariance.w >> 8) & 0xffu, (covariance.w >> 16) & 0xffu, (covariance.w >> 24) & 0xffu) / 255.0; +#if defined(HAS_SPHERICAL_HARMONICS) + vec4 splatWC = czm_inverseView * splatViewPos; + vec3 viewDirModel = normalize(u_inverseModelRotation * (splatWC.xyz - u_cameraPositionWC.xyz)); + + v_splatColor.rgb += evaluateSH(texIdx, viewDirModel).rgb; +#endif + v_splitDirection = u_splitDirection; +}`;var Ssi=x(T(),1),LP=`// +// Fragment shader for Gaussian splats. +// Renders a Gaussian splat within a quad, discarding fragments outside the unit circle. +// Applies an approximate Gaussian falloff based on distance from the center and outputs +// a color modulated by the alpha and Gaussian weight. +// +void main() { + if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; + + float A = -dot(v_vertPos, v_vertPos); + if (A < -4.) { + discard; + } + + float B = exp(A * 4.) * v_splatColor.a ; + out_FragColor = vec4(v_splatColor.rgb * B , B); +} +`;var w_=new F,Ibe=new F,WP=new F,yi=new $,vP=new Ne,Ent=new h,Lnt=new Ne,Wnt=new h,vnt=1e-12,ND=1e-5,n7=1e-7,va={IDLE:0,WAITING:1,SORTING:2,SORTED:3,ERROR:4},Ws={BUILDING:"BUILDING",TEXTURE_PENDING:"TEXTURE_PENDING",TEXTURE_READY:"TEXTURE_READY",SORTING:"SORTING",READY:"READY"},Fnt=2,Int=30,Pnt=3,Xnt=.008726646259971648,Ynt=1;function Nnt(e,t){let n=e._lastSteadySortFrameNumber>=0?t.frameNumber-e._lastSteadySortFrameNumber:Number.POSITIVE_INFINITY;if(e._lastSteadySortFrameNumber>=0&&n<Pnt)return!1;let i=t.camera;return l(i)?!e._hasLastSteadySortCameraPosition||!e._hasLastSteadySortCameraDirection||h.distance(i.positionWC,e._lastSteadySortCameraPosition)>=Ynt?!0:h.angleBetween(i.directionWC,e._lastSteadySortCameraDirection)>=Xnt:!1}function Ebe(e,t){e._lastSteadySortFrameNumber=t.frameNumber;let n=t.camera;l(n)&&(h.clone(n.positionWC,e._lastSteadySortCameraPosition),e._hasLastSteadySortCameraPosition=!0,h.clone(n.directionWC,e._lastSteadySortCameraDirection),e._hasLastSteadySortCameraDirection=!0)}function wnt(e,t){let n=e._selectedTileSet;if(!l(n)||n.size!==t.length)return!0;for(let i=0;i<t.length;i++)if(!n.has(t[i]))return!0;return!1}function Lbe(e,t){return l(t)&&t.requestId===e._sortRequestId&&t.dataGeneration===e._splatDataGeneration}function i7(e){l(e)&&(l(e.gaussianSplatTexture)&&(e.gaussianSplatTexture.destroy(),e.gaussianSplatTexture=void 0),l(e.sphericalHarmonicsTexture)&&(e.sphericalHarmonicsTexture.destroy(),e.sphericalHarmonicsTexture=void 0))}function Wbe(e,t,n){if(!l(t))return;e._retiredTextures.push({texture:t,frameNumber:n})}function Mnt(e,t){let n=e._retiredTextures;if(!l(n)||n.length===0)return;let i=[];for(let o=0;o<n.length;o++){let r=n[o];t-r.frameNumber>0?r.texture.destroy():i.push(r)}e._retiredTextures=i}function knt(e,t){let n=e?.[t];return l(n)?n.buffer:void 0}function Unt(e,t,n,i){let o=e._aggregateScratchBuffers[t];l(o)||(o=[],e._aggregateScratchBuffers[t]=o);let r=knt(e._snapshot,t);for(let a=0;a<o.length;a++){let c=o[a];if(c.length>=i&&c.buffer!==r)return c}let s=J.createTypedArray(n,i);return o.push(s),s}function Dnt(e,t){return e.length===t?e:e.subarray(0,t)}function Ont(e,t,n){if(!l(t.indexes)||t.state!==Ws.READY)throw new Te("Committing snapshot before it is READY.");let i=n.frameNumber,o=e._snapshot,r=l(o)?o.gaussianSplatTexture:e.gaussianSplatTexture;l(r)&&r!==t.gaussianSplatTexture&&Wbe(e,r,i);let s=l(o)?o.sphericalHarmonicsTexture:e.sphericalHarmonicsTexture;l(s)&&s!==t.sphericalHarmonicsTexture&&Wbe(e,s,i),e._snapshot=t,e._positions=t.positions,e._rotations=t.rotations,e._scales=t.scales,e._colors=t.colors,e._shData=t.shData,e._sphericalHarmonicsDegree=t.sphericalHarmonicsDegree,e._numSplats=t.numSplats,e._indexes=t.indexes,e.gaussianSplatTexture=t.gaussianSplatTexture,e.sphericalHarmonicsTexture=t.sphericalHarmonicsTexture,e._lastTextureWidth=t.lastTextureWidth,e._lastTextureHeight=t.lastTextureHeight,e._splatRowMask=t.splatRowMask,e._splatRowShift=t.splatRowShift,e._splatBudgetSSEScale=t.splatBudgetSSEScale??1,e._hasGaussianSplatTexture=l(t.gaussianSplatTexture),e._needsGaussianSplatTexture=!1,e._gaussianSplatTexturePending=!1,e._vertexArray=void 0,e._vertexArrayLen=-1,e._drawCommand=void 0,e._sorterPromise=void 0,e._activeSort=void 0,e._sorterState=va.IDLE,e._dirty=!1}async function Bnt(e,t,n,i){try{let o=await i,r=Xt.maximumTextureSize,s=r,a=Math.ceil(n.numSplats/(r/2)),c=Math.log2(r/2),d=r/2-1;if(a>r){let b=n.numSplats;a=r;let f=s/2;if(n.numSplats=r*f,n.positions=n.positions.subarray(0,n.numSplats*3),n.rotations=n.rotations.subarray(0,n.numSplats*4),n.scales=n.scales.subarray(0,n.numSplats*3),n.colors=n.colors.subarray(0,n.numSplats*4),l(n.shData)){let y=n.shData.length/b;n.shData=n.shData.subarray(0,Math.floor(n.numSplats*y))}n.splatBudgetSSEScale=b/n.numSplats,console.warn(`[GaussianSplat][HARD CAP] ${b} splats exceed the maximum texture capacity (${r}\xD7${f} = ${n.numSplats} splats at width=${s}). Rendering only the first ${n.numSplats} splats to avoid a WebGL crash. Increasing maximumScreenSpaceError by ${n.splatBudgetSSEScale.toFixed(2)}x next frame.`)}else n.splatBudgetSSEScale=1;let u=s*a*4,m;u<=o.data.length?m=o.data.subarray(0,u):(m=new Uint32Array(u),m.set(o.data));let p={width:s,height:a,data:m};if(n.splatRowMask=d,n.splatRowShift=c,e._pendingSnapshot!==n){n.state=Ws.BUILDING;return}if(!l(n.gaussianSplatTexture))n.gaussianSplatTexture=Fbe(t.context,p);else if(n.lastTextureHeight!==p.height||n.lastTextureWidth!==p.width){let b=n.gaussianSplatTexture;n.gaussianSplatTexture=Fbe(t.context,p),b.destroy()}else n.gaussianSplatTexture.copyFrom({source:{width:p.width,height:p.height,arrayBufferView:p.data}});if(n.lastTextureHeight=p.height,n.lastTextureWidth=p.width,l(n.shData)&&n.sphericalHarmonicsDegree>0){let b=n.sphericalHarmonicsTexture,f=Xt.maximumTextureSize,y=n.shCoefficientCount/3,_=Math.floor(f/y),S=_*(y*2),A=Math.ceil(n.numSplats/_);if(A>f)console.warn(`[GaussianSplat][SHTexture] ${n.numSplats} splats require SH height ${A} > maxTex ${f}. Disabling spherical harmonics for this snapshot (color-only fallback).`),n.sphericalHarmonicsDegree=0,l(b)&&b.destroy(),n.sphericalHarmonicsTexture=void 0;else{let Z=new Uint32Array(f*A*2),R=0;for(let G=0;R<n.shData.length;G+=f*2)Z.set(n.shData.subarray(R,R+S),G),R+=S;n.sphericalHarmonicsTexture=Hnt(t.context,{data:Z,width:f,height:A}),l(b)&&b.destroy()}}n.state=Ws.TEXTURE_READY}catch(o){console.error("Error generating Gaussian splat texture:",o),n.state=Ws.BUILDING}}async function znt(e,t,n,i){try{let o=await i;if(!l(n)||n.snapshot!==e._pendingSnapshot)return;let r=n.expectedCount,s=r,a=o?.length;if(r!==s||a!==r){e._pendingSortPromise=void 0,e._pendingSort=void 0,n.snapshot.state===Ws.SORTING&&(n.snapshot.state=Ws.TEXTURE_READY);return}let c=n.snapshot;c.indexes=o,c.state=Ws.READY,e._pendingSortPromise=void 0,e._pendingSort=void 0,Ont(e,c,t),e._pendingSnapshot=void 0,Ol.buildGSplatDrawCommand(e,t)}catch(o){if(!l(n)||n.snapshot!==e._pendingSnapshot)return;e._pendingSortPromise=void 0,e._pendingSort=void 0,n.snapshot.state===Ws.SORTING&&(n.snapshot.state=Ws.TEXTURE_READY),e._sorterState=va.ERROR,e._sorterError=o}}async function vbe(e,t,n){try{let i=await n,o=Lbe(e,t),r=t?.expectedCount,s=r,a=i?.length;if(!o||(r!==s||a!==r)){o&&(e._sorterPromise=void 0,e._sorterState=va.IDLE);return}e._indexes=i,e._sorterState=va.SORTED}catch(i){if(!Lbe(e,t))return;e._sorterState=va.ERROR,e._sorterError=i}}function Hnt(e,t){return new Ft({context:e,source:{width:t.width,height:t.height,arrayBufferView:t.data},preMultiplyAlpha:!1,skipColorSpaceConversion:!0,pixelFormat:Qe.RG_INTEGER,pixelDatatype:ze.UNSIGNED_INT,flipY:!1,sampler:Ht.NEAREST})}function Fbe(e,t){return new Ft({context:e,source:{width:t.width,height:t.height,arrayBufferView:t.data},preMultiplyAlpha:!1,skipColorSpaceConversion:!0,pixelFormat:Qe.RGBA_INTEGER,pixelDatatype:ze.UNSIGNED_INT,flipY:!1,sampler:Ht.NEAREST})}function Ol(e){e=e??B.EMPTY_OBJECT,this._positions=void 0,this._rotations=void 0,this._scales=void 0,this._colors=void 0,this._indexes=void 0,this._numSplats=0,this._needsGaussianSplatTexture=!0,this._snapshot=void 0,this._pendingSnapshot=void 0,this._retiredTextures=[],this._aggregateScratchBuffers={positions:[],scales:[],rotations:[],colors:[]},this._scratchAggregateShBuffer=void 0,this._selectedTilesStableFrames=0,this._needsSnapshotRebuild=!1,this._snapshotRebuildStallFrames=0,this._prevViewMatrix=new F,this._debugShowBoundingVolume=e.debugShowBoundingVolume??!1,this.gaussianSplatTexture=void 0,this.sphericalHarmonicsTexture=void 0,this._lastTextureWidth=0,this._lastTextureHeight=0,this._vertexArray=void 0,this._vertexArrayLen=-1,this._splitDirection=Gr.NONE,this._dirty=!1,this._tileset=e.tileset,this._baseTilesetUpdate=this._tileset.update,this._tileset.update=this._wrappedUpdate.bind(this),this._tileset.tileLoad.addEventListener(this.onTileLoad,this),this._tileset.tileVisible.addEventListener(this.onTileVisible,this),this.selectedTileLength=0,this._selectedTileSet=new Set,this._ready=!1,this._hasGaussianSplatTexture=!1,this._gaussianSplatTexturePending=!1,this._drawCommand=void 0,this._drawCommandModelMatrix=new F,this._rootTransform=void 0,this._axisCorrectionMatrix=bt.getAxisCorrectionMatrix(Xi.Y,Xi.X,new F),this._shInverseRotation=new $,this._isDestroyed=!1,this._sorterState=va.IDLE,this._sorterPromise=void 0,this._splatDataGeneration=0,this._sortRequestId=0,this._activeSort=void 0,this._pendingSortPromise=void 0,this._pendingSort=void 0,this._lastSteadySortFrameNumber=-1,this._lastSteadySortCameraPosition=new h,this._hasLastSteadySortCameraPosition=!1,this._lastSteadySortCameraDirection=new h,this._hasLastSteadySortCameraDirection=!1,this._sorterError=void 0,this._splatRowMask=0,this._splatRowShift=0,this._splatBudgetSSEScale=1}Object.defineProperties(Ol.prototype,{ready:{get:function(){return this._ready}},isStable:{get:function(){return!this._dirty&&(!l(this._pendingSnapshot)||this._pendingSnapshot.state===Ws.READY)}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,this._dirty=!0)}}});Ol.prototype._wrappedUpdate=function(e){let t=this._tileset;if(this._splatBudgetSSEScale!==1){let n=t.maximumScreenSpaceError;t.maximumScreenSpaceError*=this._splatBudgetSSEScale,this._baseTilesetUpdate.call(t,e),t.maximumScreenSpaceError=n}else this._baseTilesetUpdate.call(t,e);this.update(e)};Ol.prototype.destroy=function(){if(this._positions=void 0,this._rotations=void 0,this._scales=void 0,this._colors=void 0,this._indexes=void 0,i7(this._pendingSnapshot),i7(this._snapshot),l(this._retiredTextures))for(let t=0;t<this._retiredTextures.length;t++)this._retiredTextures[t].texture.destroy();this._retiredTextures=[],this._pendingSnapshot=void 0,this._snapshot=void 0,this._aggregateScratchBuffers=void 0,this.gaussianSplatTexture=void 0,this.sphericalHarmonicsTexture=void 0;let e=this._drawCommand;return l(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),l(this._vertexArray)&&(this._vertexArray.destroy(),this._vertexArray=void 0),this._tileset.update=this._baseTilesetUpdate.bind(this._tileset),he(this)};Ol.prototype.isDestroyed=function(){return this._isDestroyed};Ol.prototype.onTileLoad=function(e){this._dirty=!0};Ol.prototype.onTileVisible=function(e){};Ol.transformTile=function(e){let t=e.computedTransform,n=e.content.gltfPrimitive,i=e.tileset.gaussianSplatPrimitive;i._rootTransform===void 0&&(i._rootTransform=xt.eastNorthUpToFixedFrame(e.tileset.boundingSphere.center));let o=i._rootTransform,r=F.multiplyTransformation(t,i._axisCorrectionMatrix,w_);F.multiplyTransformation(r,e.content.worldTransform,r);let s=F.inverse(o,Ibe),a=F.multiplyTransformation(s,r,w_),c=e.content._lastSplatTransform;if(e.content._transformed&&l(c)&&F.equalsEpsilon(a,c,vnt))return;let d=e.content.positions,u=e.content.rotations,m=e.content.scales,p=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]),b=Math.sqrt(a[4]*a[4]+a[5]*a[5]+a[6]*a[6]),f=Math.sqrt(a[8]*a[8]+a[9]*a[9]+a[10]*a[10]);yi[0]=a[0]/p,yi[1]=a[1]/p,yi[2]=a[2]/p,yi[3]=a[4]/b,yi[4]=a[5]/b,yi[5]=a[6]/b,yi[6]=a[8]/f,yi[7]=a[9]/f,yi[8]=a[10]/f;let y=yi[0]*yi[3]+yi[1]*yi[4]+yi[2]*yi[5],_=yi[0]*yi[6]+yi[1]*yi[7]+yi[2]*yi[8],S=yi[3]*yi[6]+yi[4]*yi[7]+yi[5]*yi[8],A=Math.abs(p-1)<=n7&&Math.abs(b-1)<=n7&&Math.abs(f-1)<=n7,Z=Math.abs(y)<=ND&&Math.abs(_)<=ND&&Math.abs(S)<=ND,R=yi[0]*(yi[4]*yi[8]-yi[5]*yi[7])-yi[3]*(yi[1]*yi[8]-yi[2]*yi[7])+yi[6]*(yi[1]*yi[5]-yi[2]*yi[4]),G=A&&Z&&Math.abs(R-1)<=ND;Ne.fromRotationMatrix(yi,vP),Ne.normalize(vP,vP);let E=bt.getAttributeBySemantic(n,ct.POSITION).typedArray,v=bt.getAttributeBySemantic(n,ct.ROTATION).typedArray,I=bt.getAttributeBySemantic(n,ct.SCALE).typedArray,X=Ent,Y=Lnt,g=Wnt;for(let C=0;C<E.length/3;++C)X.x=E[C*3],X.y=E[C*3+1],X.z=E[C*3+2],Y.x=v[C*4],Y.y=v[C*4+1],Y.z=v[C*4+2],Y.w=v[C*4+3],g.x=I[C*3],g.y=I[C*3+1],g.z=I[C*3+2],G?(F.multiplyByPoint(a,X,X),Ne.multiply(vP,Y,Y),Ne.normalize(Y,Y)):(F.fromTranslationQuaternionRotationScale(X,Y,g,WP),F.multiplyTransformation(a,WP,WP),F.getTranslation(WP,X),F.getScale(WP,g),Ne.multiply(vP,Y,Y),Ne.normalize(Y,Y)),d[C*3]=X.x,d[C*3+1]=X.y,d[C*3+2]=X.z,u[C*4]=Y.x,u[C*4+1]=Y.y,u[C*4+2]=Y.z,u[C*4+3]=Y.w,m[C*3]=g.x,m[C*3+1]=g.y,m[C*3+2]=g.z;e.content._lastSplatTransform=F.clone(a,e.content._lastSplatTransform),e.content._transformed=!0};Ol.generateSplatTexture=function(e,t,n){if(!l(n)||n.state!==Ws.BUILDING)return;n.state=Ws.TEXTURE_PENDING;let i=VP.generateFromAttributes({attributes:{positions:new Float32Array(n.positions),scales:new Float32Array(n.scales),rotations:new Float32Array(n.rotations),colors:new Uint8Array(n.colors)},count:n.numSplats});if(!l(i)){n.state=Ws.BUILDING;return}Bnt(e,t,n,i)};Ol.buildGSplatDrawCommand=function(e,t){let n=e._tileset,i=new GP(e),{shaderBuilder:o}=i,r=i.renderStateOptions;r.cull.enabled=!1,r.depthMask=!1,r.depthTest.enabled=!0,r.blending=nn.PRE_MULTIPLIED_ALPHA_BLEND,i.alphaOptions.pass=Le.GAUSSIAN_SPLATS,o.addAttribute("vec2","a_screenQuadPosition"),o.addAttribute("float","a_splatIndex"),o.addVarying("vec4","v_splatColor"),o.addVarying("vec2","v_vertPos"),o.addUniform("float","u_splitDirection",pe.VERTEX),o.addVarying("float","v_splitDirection"),o.addUniform("highp usampler2D","u_splatAttributeTexture",pe.VERTEX),o.addUniform("float","u_sphericalHarmonicsDegree",pe.VERTEX),o.addUniform("float","u_splatScale",pe.VERTEX),o.addUniform("vec3","u_cameraPositionWC",pe.VERTEX),o.addUniform("mat3","u_inverseModelRotation",pe.VERTEX);let s=i.uniformMap;o.addUniform("int","u_splatRowMask",pe.VERTEX),o.addUniform("int","u_splatRowShift",pe.VERTEX);let a=e.gaussianSplatTexture;s.u_splatAttributeTexture=function(){return a},s.u_splatRowMask=function(){return e._splatRowMask},s.u_splatRowShift=function(){return e._splatRowShift},e._sphericalHarmonicsDegree>0&&(o.addDefine("HAS_SPHERICAL_HARMONICS","1",pe.VERTEX),o.addUniform("highp usampler2D","u_sphericalHarmonicsTexture",pe.VERTEX),s.u_sphericalHarmonicsTexture=function(){return e.sphericalHarmonicsTexture}),s.u_sphericalHarmonicsDegree=function(){return e._sphericalHarmonicsDegree},s.u_cameraPositionWC=function(){return h.clone(t.camera.positionWC)},s.u_inverseModelRotation=function(){return e._shInverseRotation},s.u_splitDirection=function(){return e.splitDirection};let c=l(e._indexes)?e._indexes.length:e._numSplats;i.instanceCount=c,i.count=4,i.primitiveType=ve.TRIANGLE_STRIP,o.addVertexLines(EP),o.addFragmentLines(LP);let d=o.buildShaderProgram(t.context),u=Je(Be.fromCache(i.renderStateOptions),!0);u.cull.face=bt.getCullFace(n.modelMatrix,ve.TRIANGLE_STRIP),u=Be.fromCache(u);let m={screenQuadPosition:0,splatIndex:2},p=new Sn.Attribute;if(p.name="_SPLAT_INDEXES",p.typedArray=e._indexes,p.componentDatatype=J.UNSIGNED_INT,p.type=kt.SCALAR,p.normalized=!1,p.count=i.instanceCount,p.constant=0,p.instanceDivisor=1,!l(e._vertexArray)||e._indexes.length>e._vertexArrayLen){let S=new Zt({attributes:{screenQuadPosition:new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1],name:"_SCREEN_QUAD_POS",variableName:"screenQuadPosition"}),splatIndex:{...p,variableName:"splatIndex"}},primitiveType:ve.TRIANGLE_STRIP});e._vertexArray=wn.fromGeometry({context:t.context,geometry:S,attributeLocations:m,bufferUsage:Fe.DYNAMIC_DRAW,interleave:!1})}else e._vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(e._indexes);e._vertexArrayLen=e._indexes.length;let f=F.clone(e._rootTransform,e._drawCommandModelMatrix),y=e._vertexArray,_=new at({boundingVolume:n.boundingSphere,modelMatrix:f,uniformMap:s,renderState:u,vertexArray:y,shaderProgram:d,cull:r.cull.enabled,pass:Le.GAUSSIAN_SPLATS,count:i.count,owner:e,instanceCount:i.instanceCount,primitiveType:ve.TRIANGLE_STRIP,debugShowBoundingVolume:n.debugShowBoundingVolume,castShadows:!1,receiveShadows:!1});e._drawCommand=_};Ol.prototype.update=function(e){let t=this._tileset;if(Mnt(this,e.frameNumber),!t.show)return;if(this._drawCommand&&e.commandList.push(this._drawCommand),t._modelMatrixChanged){this._dirty=!0;return}let n=l(this._rootTransform);if(e.passes.pick===!0)return;this.splitDirection!==t.splitDirection&&(this.splitDirection=t.splitDirection);let i=e.camera;if(l(i)){if(this._sorterState===va.IDLE){let o=t._selectedTiles.length!==0&&wnt(this,t._selectedTiles);t._selectedTiles.length===0?(this._selectedTilesStableFrames=0,this._needsSnapshotRebuild=!1,this._snapshotRebuildStallFrames=0):o?this._selectedTilesStableFrames=0:this._selectedTilesStableFrames++,(o||this._dirty)&&(this._needsSnapshotRebuild=!0);let r=this._selectedTilesStableFrames>=Fnt,s=!l(this._snapshot)&&!l(this._pendingSnapshot)&&!l(this._drawCommand);this._needsSnapshotRebuild&&t._selectedTiles.length!==0?this._snapshotRebuildStallFrames++:this._snapshotRebuildStallFrames=0;let a=r||s||this._snapshotRebuildStallFrames>=Int;if(!(this._dirty||this._needsSnapshotRebuild||o||l(this._pendingSnapshot)||l(this._pendingSortPromise)||!l(this._drawCommand))&&F.equals(i.viewMatrix,this._prevViewMatrix))return;if(t._selectedTiles.length!==0&&this._needsSnapshotRebuild&&a){this._splatDataGeneration++,this._activeSort=void 0,this._sorterPromise=void 0,this._sorterState=va.IDLE,this._pendingSortPromise=void 0,this._pendingSort=void 0,l(this._pendingSnapshot)&&i7(this._pendingSnapshot);let d=t._selectedTiles;this._rootTransform=xt.eastNorthUpToFixedFrame(t.boundingSphere.center);{let R=d[0],G=F.multiplyTransformation(R.computedTransform,this._axisCorrectionMatrix,Ibe);F.multiplyTransformation(G,R.content.worldTransform??F.IDENTITY,G),F.getRotation(F.inverse(G,G),this._shInverseRotation)}for(let R of d)Ol.transformTile(R);let u=d.reduce((R,G)=>R+G.content.pointsLength,0),m=(R,G,E,v)=>{let I,X=0,Y=0;for(let g of d){let C=E(g.content),V=l(v)?v:kt.getNumberOfComponents(C.type),L=l(C.typedArray)?C.typedArray:C;Y+=L.length,l(I)||(I=Unt(this,R,G,u*V))}if(!l(I))return J.createTypedArray(G,0);for(let g of d){let C=g.content,V=E(C),L=l(V.typedArray)?V.typedArray:V;I.set(L,X),X+=L.length}return Dnt(I,Y)},p=()=>{let R=0;for(let I of d)if(I.content.sphericalHarmonicsDegree>0){switch(I.content.sphericalHarmonicsDegree){case 1:R=9;break;case 2:R=24;break;case 3:R=45;break}break}if(R===0)return;let G=u*(R*(2/3));(!l(this._scratchAggregateShBuffer)||this._scratchAggregateShBuffer.length<G)&&(this._scratchAggregateShBuffer=new Uint32Array(G));let E=this._scratchAggregateShBuffer,v=0;for(let I of d){let X=I.content.packedSphericalHarmonicsData;I.content.sphericalHarmonicsDegree>0&&(E.set(X,v),v+=X.length)}return v<E.length?E.subarray(0,v):E},b=m("positions",J.FLOAT,R=>R.positions,3),f=m("scales",J.FLOAT,R=>R.scales,3),y=m("rotations",J.FLOAT,R=>R.rotations,4),_=m("colors",J.UNSIGNED_BYTE,R=>bt.getAttributeBySemantic(R.gltfPrimitive,ct.COLOR)),S=d[0].content.sphericalHarmonicsDegree,A=S>0?d[0].content.sphericalHarmonicsCoefficientCount:0,Z=p();this._pendingSnapshot={generation:this._splatDataGeneration,positions:b,rotations:y,scales:f,colors:_,shData:Z,sphericalHarmonicsDegree:S,shCoefficientCount:A,numSplats:u,indexes:void 0,gaussianSplatTexture:void 0,sphericalHarmonicsTexture:void 0,lastTextureWidth:0,lastTextureHeight:0,splatRowMask:0,splatRowShift:0,state:Ws.BUILDING},this.selectedTileLength=t._selectedTiles.length,this._selectedTileSet=new Set(t._selectedTiles),this._dirty=!1,this._needsSnapshotRebuild=!1,this._snapshotRebuildStallFrames=0}if(l(this._pendingSnapshot)){let d=this._pendingSnapshot;if(d.state===Ws.BUILDING){Ol.generateSplatTexture(this,e,d);return}if(d.state===Ws.TEXTURE_PENDING||d.state===Ws.TEXTURE_READY&&!l(d.gaussianSplatTexture)||!n)return;if(F.clone(i.viewMatrix,this._prevViewMatrix),F.multiply(i.viewMatrix,this._rootTransform,w_),d.state===Ws.TEXTURE_READY&&!l(this._pendingSortPromise)){let u=++this._sortRequestId,m=this._splatDataGeneration;this._pendingSort={requestId:u,dataGeneration:m,expectedCount:d.numSplats,snapshot:d};let p=N_.radixSortIndexes({primitive:{positions:new Float32Array(d.positions),modelView:Float32Array.from(w_),count:d.numSplats},sortType:"Index"});if(!l(p)){this._pendingSortPromise=void 0,this._pendingSort=void 0,d.state=Ws.TEXTURE_READY;return}this._pendingSortPromise=p,d.state=Ws.SORTING;let b=this._pendingSort;znt(this,e,b,p);return}if(!l(this._pendingSortPromise)){d.state===Ws.SORTING&&(d.state=Ws.TEXTURE_READY);return}return}if(this._numSplats===0||!n)return;if(F.clone(i.viewMatrix,this._prevViewMatrix),F.multiply(i.viewMatrix,this._rootTransform,w_),!l(this._sorterPromise)){if(!Nnt(this,e))return;let d=++this._sortRequestId,u=this._splatDataGeneration,m=this._numSplats;this._activeSort={requestId:d,dataGeneration:u,expectedCount:m};let p=N_.radixSortIndexes({primitive:{positions:new Float32Array(this._positions),modelView:Float32Array.from(w_),count:this._numSplats},sortType:"Index"});if(this._sorterPromise=p,l(p)){Ebe(this,e);let b=this._activeSort;this._sorterState=va.SORTING,vbe(this,b,p);return}}if(!l(this._sorterPromise)){this._sorterState=va.WAITING;return}this._sorterState=va.SORTING;return}else if(this._sorterState===va.WAITING){if(!l(this._sorterPromise)){let o=++this._sortRequestId,r=this._splatDataGeneration,s=this._numSplats;this._activeSort={requestId:o,dataGeneration:r,expectedCount:s};let a=N_.radixSortIndexes({primitive:{positions:new Float32Array(this._positions),modelView:Float32Array.from(w_),count:this._numSplats},sortType:"Index"});if(this._sorterPromise=a,l(a)){Ebe(this,e);let c=this._activeSort;this._sorterState=va.SORTING,vbe(this,c,a);return}}if(!l(this._sorterPromise)){this._sorterState=va.WAITING;return}this._sorterState=va.SORTING;return}else{if(this._sorterState===va.SORTING)return;if(this._sorterState===va.SORTED)Ol.buildGSplatDrawCommand(this,e),this._sorterState=va.IDLE,this._dirty=!1,this._sorterPromise=void 0,this._activeSort=void 0;else if(this._sorterState===va.ERROR)throw this._sorterError}this._dirty=!1}};var FP=Ol;var r7=class e{constructor(t,n,i,o){this._tileset=n,this._tile=i,this._resource=o,this._loader=t,l(this._tileset.gaussianSplatPrimitive)||(this._tileset.gaussianSplatPrimitive=new FP({tileset:this._tileset})),this._positions=void 0,this._rotations=void 0,this._scales=void 0,this.gltfPrimitive=void 0,this.worldTransform=void 0,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1,this._transformed=!1,this._sphericalHarmonicsDegree=0,this._sphericalHarmonicsCoefficientCount=0,this._packedSphericalHarmonicsData=void 0,this._lastSplatTransform=void 0}static tilesetRequiresGaussianSplattingExt(t){let n=!1;return t.isGltfExtensionRequired instanceof Function&&(n=t.isGltfExtensionRequired("KHR_gaussian_splatting")&&t.isGltfExtensionRequired("KHR_gaussian_splatting_compression_spz_2"),t.isGltfExtensionRequired("KHR_spz_gaussian_splats_compression")&&Ca("KHR_spz_gaussian_splats_compression",`Support for the original KHR_spz_gaussian_splats_compression extension has been removed in favor of the up to date KHR_gaussian_splatting and KHR_gaussian_splatting_compression_spz_2 extensions + +Please retile your tileset with the KHR_gaussian_splatting and KHR_gaussian_splatting_compression_spz_2 extensions.`)),n}get featuresLength(){return 0}get pointsLength(){return this.gltfPrimitive.attributes[0].count}get trianglesLength(){return 0}get geometryByteLength(){return 0}get texturesByteLength(){let t=this._tileset?.gaussianSplatPrimitive;if(!l(t))return 0;let n=t.gaussianSplatTexture,i=t.selectedTileLength;return!l(n)||i===0?0:n.sizeInBytes/i}get batchTableByteLength(){return 0}get innerContents(){}get ready(){return this._ready}get transformed(){return this._transformed}get tileset(){return this._tileset}get tile(){return this._tile}get url(){return this._resource.getUrlComponent(!0)}get batchTable(){}get metadata(){return this._metadata}set metadata(t){this._metadata=t}get group(){return this._group}set group(t){this._group=t}get positions(){return this._positions}get rotations(){return this._rotations}get scales(){return this._scales}get sphericalHarmonicsCoefficientCount(){return this._sphericalHarmonicsCoefficientCount}get sphericalHarmonicsDegree(){return this._sphericalHarmonicsDegree}get packedSphericalHarmonicsData(){return this._packedSphericalHarmonicsData}static async fromGltf(t,n,i,o){let r=i,s=We.createIfNeeded(r),a={releaseGltfJson:!1,upAxis:Xi.Y,forwardAxis:Xi.Z};l(o.asset)?(a.gltfJson=o,a.baseResource=s,a.gltfResource=s):o instanceof Uint8Array?(a.typedArray=o,a.baseResource=s,a.gltfResource=s):a.gltfResource=We.createIfNeeded(o);let c=new au(a);try{await c.load()}catch(d){throw c.destroy(),new ae(`Failed to load glTF: ${d.message}`)}return new e(c,t,n,i)}update(t,n){let i=this._loader;if(!this._ready){if(n.afterRender.push(()=>!0),!l(i)){this._ready=!0;return}if(this._resourcesLoaded){this.gltfPrimitive=i.components.scene.nodes[0].primitives[0],this.worldTransform=i.components.scene.nodes[0].matrix,this._ready=!0,this._positions=bt.getAttributeBySemantic(this.gltfPrimitive,ct.POSITION).typedArray.slice(),this._rotations=bt.getAttributeBySemantic(this.gltfPrimitive,ct.ROTATION).typedArray.slice(),this._scales=bt.getAttributeBySemantic(this.gltfPrimitive,ct.SCALE).typedArray.slice();let{l:o,n:r}=Jnt(this.gltfPrimitive.attributes);this._sphericalHarmonicsDegree=o,this._sphericalHarmonicsCoefficientCount=r,this._packedSphericalHarmonicsData=$nt(this);return}this._resourcesLoaded=i.process(n)}}hasProperty(t,n){return!1}getFeature(t){}applyDebugSettings(t,n){}applyStyle(t){}pick(t,n,i){}isDestroyed(){return this.isDestroyed}destroy(){return this.splatPrimitive=void 0,this._tile=void 0,this._tileset=void 0,this._resource=void 0,this._ready=!1,this._group=void 0,this._metadata=void 0,this._resourcesLoaded=!1,this._lastSplatTransform=void 0,l(this._loader)&&(this._loader.destroy(),this._loader=void 0),he(this)}};function Knt(e){return`${e.startsWith("KHR_gaussian_splatting:")?"KHR_gaussian_splatting:":"_"}SH_DEGREE_`}function Jnt(e){switch(e.filter(n=>n.name.includes("SH_DEGREE_")).length){default:case 0:return{l:0,n:0};case 3:return{l:1,n:9};case 8:return{l:2,n:24};case 15:return{l:3,n:45}}}var Pbe=new ArrayBuffer(4),jnt=new Float32Array(Pbe),Qnt=new Uint32Array(Pbe);function o7(e){jnt[0]=e;let t=Qnt[0],n=t>>31&1,i=t>>23&255,o=t&8388607,r;if(i===255)r=n<<15|31744|(o?512:0);else if(i===0)r=n<<15;else{let s=i-127+15;s>=31?r=n<<15|31744:s<=0?r=n<<15:r=n<<15|s<<10|o>>>13}return r}function qnt(e){let t=Knt(e),n="_COEF_",i=t.length,o=e.indexOf(n,i),r=parseInt(e.slice(i,o),10),s=parseInt(e.slice(o+n.length),10);return{l:r,n:s}}function $nt(e){let t=e.sphericalHarmonicsDegree,n=e.sphericalHarmonicsCoefficientCount,i=e.pointsLength*(n*(2/3)),o=new Uint32Array(i),r=e.gltfPrimitive.attributes.filter(d=>d.name.includes("SH_DEGREE_")),s=0,a=[0,9,24];switch(t){case 1:s=9;break;case 2:s=24;break;case 3:s=45;break}r.sort((d,u)=>d.name<u.name?-1:d.name>u.name?1:0);let c=s*(2/3);for(let d=0;d<r.length;d++){let{l:u,n:m}=qnt(r[d].name);for(let p=0;p<e.pointsLength;p++){let b=a[u-1]*2/3,f=p*c+b+m*2,y=p*3;o[f]=o7(r[d].typedArray[y])|o7(r[d].typedArray[y+1])<<16,o[f+1]=o7(r[d].typedArray[y+2])}}return o}var zy=r7;var Xbe={b3dm:function(e,t,n,i,o){return pu.fromB3dm(e,t,n,i,o)},pnts:function(e,t,n,i,o){return pu.fromPnts(e,t,n,i,o)},i3dm:function(e,t,n,i,o){return pu.fromI3dm(e,t,n,i,o)},cmpt:function(e,t,n,i,o){return uv.fromTileType(e,t,n,i,o,Xbe)},externalTileset:function(e,t,n,i){return YI.fromJson(e,t,n,i)},geom:function(e,t,n,i,o){return new fv(e,t,n,i,o)},vctr:function(e,t,n,i,o){return new aP(e,t,n,i,o)},subt:function(e,t,n,i,o){return jZ.fromSubtreeJson(e,t,n,void 0,i,o)},subtreeJson:function(e,t,n,i){return jZ.fromSubtreeJson(e,t,n,i)},glb:function(e,t,n,i,o){if(i.byteLength<12)throw new ae("Invalid glb content");let a=new DataView(i,o).getUint32(8,!0),c=new Uint8Array(i,o,a);return zy.tilesetRequiresGaussianSplattingExt(e)?zy.fromGltf(e,t,n,c):e.hasExtension("3DTILES_content_gltf_vector")||e.isGltfExtensionUsed("CESIUM_mesh_vector")?By.fromGltf(e,t,n,c):pu.fromGltf(e,t,n,c)},gltf:function(e,t,n,i){return zy.tilesetRequiresGaussianSplattingExt(e)?zy.fromGltf(e,t,n,i):e.hasExtension("3DTILES_content_gltf_vector")||e.isGltfExtensionUsed("CESIUM_mesh_vector")?By.fromGltf(e,t,n,i):pu.fromGltf(e,t,n,i)},geoJson:function(e,t,n,i){return pu.fromGeoJson(e,t,n,i)}},M_=Xbe;var vai=x(T(),1),Ybe={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5};Object.freeze(Ybe);var er=Ybe;var Iai=x(T(),1),Gm={BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",COMPOSITE:"cmpt",POINT_CLOUD:"pnts",VECTOR:"vctr",GEOMETRY:"geom",GLTF:"gltf",GLTF_BINARY:"glb",IMPLICIT_SUBTREE:"subt",IMPLICIT_SUBTREE_JSON:"subtreeJson",EXTERNAL_TILESET:"externalTileset",MULTIPLE_CONTENT:"multipleContent",GEOJSON:"geoJson",VOXEL_BINARY:"voxl",VOXEL_JSON:"voxelJson"};Gm.isBinaryFormat=function(e){switch(e){case Gm.BATCHED_3D_MODEL:case Gm.INSTANCED_3D_MODEL:case Gm.COMPOSITE:case Gm.POINT_CLOUD:case Gm.VECTOR:case Gm.GEOMETRY:case Gm.IMPLICIT_SUBTREE:case Gm.VOXEL_BINARY:case Gm.GLTF_BINARY:return!0;default:return!1}};Object.freeze(Gm);var ua=Gm;var Xai=x(T(),1),Nbe={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};Object.freeze(Nbe);var Em=Nbe;var Nai=x(T(),1),ma={RENDER:0,PICK:1,SHADOW:2,PRELOAD:3,PRELOAD_FLIGHT:4,REQUEST_RENDER_MODE_DEFER_CHECK:5,MOST_DETAILED_PRELOAD:6,MOST_DETAILED_PICK:7,NUMBER_OF_PASSES:8},Rb=new Array(ma.NUMBER_OF_PASSES);Rb[ma.RENDER]=Object.freeze({pass:ma.RENDER,isRender:!0,requestTiles:!0,ignoreCommands:!1});Rb[ma.PICK]=Object.freeze({pass:ma.PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Rb[ma.SHADOW]=Object.freeze({pass:ma.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!1});Rb[ma.PRELOAD]=Object.freeze({pass:ma.PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});Rb[ma.PRELOAD_FLIGHT]=Object.freeze({pass:ma.PRELOAD_FLIGHT,isRender:!1,requestTiles:!0,ignoreCommands:!0});Rb[ma.REQUEST_RENDER_MODE_DEFER_CHECK]=Object.freeze({pass:ma.REQUEST_RENDER_MODE_DEFER_CHECK,isRender:!1,requestTiles:!0,ignoreCommands:!0});Rb[ma.MOST_DETAILED_PRELOAD]=Object.freeze({pass:ma.MOST_DETAILED_PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});Rb[ma.MOST_DETAILED_PICK]=Object.freeze({pass:ma.MOST_DETAILED_PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});ma.getPassOptions=function(e){return Rb[e]};Object.freeze(ma);var tr=ma;var kai=x(T(),1);var s7=class{constructor(t,n){this._tileset=t,this._tile=n,this.featurePropertiesDirty=!1}get featuresLength(){return 0}get pointsLength(){return 0}get trianglesLength(){return 0}get geometryByteLength(){return 0}get texturesByteLength(){return 0}get batchTableByteLength(){return 0}get innerContents(){}get ready(){return!0}get tileset(){return this._tileset}get tile(){return this._tile}get url(){}get metadata(){}set metadata(t){}get batchTable(){}get group(){}set group(t){}hasProperty(t,n){return!1}getFeature(t){}applyDebugSettings(t,n){}applyStyle(t){}update(t,n){}pick(t,n,i){}isDestroyed(){return!1}destroy(){return he(this)}},Sp=s7;var qai=x(T(),1);var Bai=x(T(),1);function Vb(e){e=e??B.EMPTY_OBJECT;let t=e.content,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(Vb.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Vb.prototype.hasProperty=function(e){return Dn.hasProperty(e,this._properties,this._class)};Vb.prototype.hasPropertyBySemantic=function(e){return Dn.hasPropertyBySemantic(e,this._properties,this._class)};Vb.prototype.getPropertyIds=function(e){return Dn.getPropertyIds(this._properties,this._class,e)};Vb.prototype.getProperty=function(e){return Dn.getProperty(e,this._properties,this._class)};Vb.prototype.setProperty=function(e,t){return Dn.setProperty(e,t,this._properties,this._class)};Vb.prototype.getPropertyBySemantic=function(e){return Dn.getPropertyBySemantic(e,this._properties,this._class)};Vb.prototype.setPropertyBySemantic=function(e,t){return Dn.setPropertyBySemantic(e,t,this._properties,this._class)};var IP=Vb;function a7(e,t){let n=Bi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){a7._oneTimeWarning("findContentMetadata-missing-root-schema","Could not find a metadata schema for content metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=e.schema.classes??B.EMPTY_OBJECT;if(l(n.class)){let o=i[n.class];return new IP({content:n,class:o})}}a7._oneTimeWarning=_t;var k_=a7;var nci=x(T(),1);function eit(e,t){let n=e.metadataExtension;if(!l(n))return;let i=n.groups,o=Bi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"].group:t.group;if(typeof o=="number")return i[o];let r=n.groupIds.findIndex(function(s){return s===o});return r>=0?i[r]:void 0}var U_=eit;var hci=x(T(),1);var sci=x(T(),1);function Gb(e){e=e??B.EMPTY_OBJECT;let t=e.tile,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(Gb.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Gb.prototype.hasProperty=function(e){return Dn.hasProperty(e,this._properties,this._class)};Gb.prototype.hasPropertyBySemantic=function(e){return Dn.hasPropertyBySemantic(e,this._properties,this._class)};Gb.prototype.getPropertyIds=function(e){return Dn.getPropertyIds(this._properties,this._class,e)};Gb.prototype.getProperty=function(e){return Dn.getProperty(e,this._properties,this._class)};Gb.prototype.setProperty=function(e,t){return Dn.setProperty(e,t,this._properties,this._class)};Gb.prototype.getPropertyBySemantic=function(e){return Dn.getPropertyBySemantic(e,this._properties,this._class)};Gb.prototype.setPropertyBySemantic=function(e,t){return Dn.setPropertyBySemantic(e,t,this._properties,this._class)};var PP=Gb;function c7(e,t){let n=Bi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){c7._oneTimeWarning("findTileMetadata-missing-root-schema","Could not find a metadata schema for tile metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=e.schema.classes??B.EMPTY_OBJECT;if(l(n.class)){let o=i[n.class];return new PP({tile:n,class:o})}}c7._oneTimeWarning=_t;var XP=c7;var Pci=x(T(),1);var Tci=x(T(),1);function tit(e){let t=new Uint8Array(e),n=Eh(t);if(n==="glTF"&&(n="glb"),ua.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=nit(t);if(l(i.root))return{contentType:ua.EXTERNAL_TILESET,jsonPayload:i};if(l(i.asset))return{contentType:ua.GLTF,jsonPayload:i};if(l(i.tileAvailability))return{contentType:ua.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(l(i.type))return{contentType:ua.GEOJSON,jsonPayload:i};if(l(i.voxelTable))return{contentType:ua.VOXEL_JSON,jsonPayload:i};throw new ae("Invalid tile content.")}function nit(e){let t;try{t=_r(e)}catch{throw new ae("Invalid tile content.")}return t}var Eb=tit;var l7=class{constructor(t,n,i,o){this._tileset=t,this._tile=n,this._tilesetResource=i,this._contents=[],this._contentsCreated=!1;let r=l(o.contents)?o.contents:o.content;this._innerContentHeaders=r,this._requestsInFlight=0,this._cancelCount=0,this._externalTilesetCount=0;let s=this._innerContentHeaders.length;this._arrayFetchPromises=new Array(s),this._requests=new Array(s),this._ready=!1,this._innerContentResources=new Array(s),this._serverKeys=new Array(s);for(let a=0;a<s;a++){let c=i.getDerivedResource({url:r[a].uri}),d=Nc.getServerKey(c.getUrlComponent());this._innerContentResources[a]=c,this._serverKeys[a]=d}}get featurePropertiesDirty(){let t=this._contents,n=t.length;for(let i=0;i<n;++i)if(t[i].featurePropertiesDirty)return!0;return!1}set featurePropertiesDirty(t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].featurePropertiesDirty=t}get featuresLength(){return 0}get pointsLength(){return 0}get trianglesLength(){return 0}get geometryByteLength(){return 0}get texturesByteLength(){return 0}get batchTableByteLength(){return 0}get innerContents(){return this._contents}get ready(){return this._contentsCreated?this._ready:!1}get tileset(){return this._tileset}get tile(){return this._tile}get url(){}get metadata(){}set metadata(t){}get batchTable(){}get group(){}set group(t){}get innerContentUrls(){return this._innerContentHeaders.map(function(t){return t.uri})}requestInnerContents(){if(!iit(this._serverKeys)){this.tileset.statistics.numberOfAttemptedRequests+=this._serverKeys.length;return}let t=this._innerContentHeaders;d7(this,t.length);let n=this._cancelCount;for(let i=0;i<t.length;i++)this._arrayFetchPromises[i]=oit(this,i,n,this._tile._contentState);return rit(this)}cancelRequests(){for(let t=0;t<this._requests.length;t++){let n=this._requests[t];l(n)&&n.cancel()}}hasProperty(t,n){return!1}getFeature(t){}applyDebugSettings(t,n){let i=this._contents,o=i.length;for(let r=0;r<o;++r)i[r].applyDebugSettings(t,n)}applyStyle(t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyStyle(t)}update(t,n){let i=this._contents,o=i.length,r=!0;for(let s=0;s<o;++s)i[s].update(t,n),r=r&&i[s].ready;!this._ready&&r&&(this._ready=!0)}pick(t,n,i){if(!this._ready)return;let o,r=Number.POSITIVE_INFINITY,s=this._contents,a=s.length;for(let c=0;c<a;++c){let d=s[c].pick(t,n,i);if(!l(d))continue;let u=h.distance(t.origin,d);u<r&&(o=d,r=u)}if(l(o))return i}isDestroyed(){return!1}destroy(){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].destroy();return he(this)}};function d7(e,t){e._requestsInFlight+=t,e.tileset.statistics.numberOfPendingRequests+=t}function wbe(e,t){e._cancelCount++,e._tile._contentState=t;let n=e.tileset.statistics;n.numberOfPendingRequests-=e._requestsInFlight,n.numberOfAttemptedRequests+=e._requestsInFlight,e._requestsInFlight=0;let i=e._innerContentHeaders.length;e._arrayFetchPromises=new Array(i)}function iit(e){let t={};for(let n=0;n<e.length;n++){let i=e[n];l(t[i])?t[i]++:t[i]=1}for(let n in t)if(t.hasOwnProperty(n)&&!Nc.serverHasOpenSlots(n,t[n]))return!1;return Nc.heapHasOpenSlots(e.length)}function oit(e,t,n,i){let o=e._innerContentResources[t].clone(),r=e.tile,s=function(){return r._priority},a=e._serverKeys[t],c=new gr({throttle:!0,throttleByServer:!0,type:ws.TILES3D,priorityFunction:s,serverKey:a});o.request=c,e._requests[t]=c;let d=o.fetchArrayBuffer();if(l(d))return d.then(function(u){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===pi.CANCELLED){wbe(e,i);return}return d7(e,-1),u}}).catch(function(u){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===pi.CANCELLED){wbe(e,i);return}d7(e,-1),Mbe(e,t,u)}})}async function rit(e){let t=e._cancelCount,n=await Promise.all(e._arrayFetchPromises);if(t<e._cancelCount)return;let i=n.map((r,s)=>sit(e,r,s)),o=await Promise.all(i);if(e._contentsCreated=!0,e._contents=o.filter(l),e._externalTilesetCount===e._contents.length){let r=e._tile;r.hasRenderableContent=!1}return o}async function sit(e,t,n){if(l(t))try{let i=Eb(t),o=e._tileset,r=e._innerContentResources[n],s=e._tile;i.contentType===ua.EXTERNAL_TILESET&&(e._externalTilesetCount++,s.hasTilesetContent=!0),e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===ua.GEOMETRY||i.contentType===ua.VECTOR;let a,c=M_[i.contentType];l(i.binaryPayload)?a=await Promise.resolve(c(o,s,r,i.binaryPayload.buffer,0)):a=await Promise.resolve(c(o,s,r,i.jsonPayload));let d=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let m=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=m.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=k_(o,d));let u=U_(o,d);return l(u)&&(a.group=new HT({metadata:u})),a}catch(i){Mbe(e,n,i)}}function Mbe(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=l(n.message)?n.message:n.toString();i.tileFailed.numberOfListeners>0?i.tileFailed.raiseEvent({url:o,message:r}):(console.log(`A content failed to load: ${o}`),console.log(`Error: ${r}`))}var YP=l7;var Eli=x(T(),1);var dli=x(T(),1);var Bci=x(T(),1);var kbe=Math.cos,Ube=Math.sin,ait=Math.sqrt,u7={};u7.computePosition=function(e,t,n,i,o,r,s){let a=t.radiiSquared,c=e.nwCorner,d=e.boundingRectangle,u=c.latitude-e.granYCos*i+o*e.granXSin,m=kbe(u),p=Ube(u),b=a.z*p,f=c.longitude+i*e.granYSin+o*e.granXCos,y=m*kbe(f),_=m*Ube(f),S=a.x*y,A=a.y*_,Z=ait(S*y+A*_+b*p);if(r.x=S/Z,r.y=A/Z,r.z=b/Z,n){let R=e.stNwCorner;l(R)?(u=R.latitude-e.stGranYCos*i+o*e.stGranXSin,f=R.longitude+i*e.stGranYSin+o*e.stGranXCos,s.x=(f-e.stWest)*e.lonScalar,s.y=(u-e.stSouth)*e.latScalar):(s.x=(f-d.west)*e.lonScalar,s.y=(u-d.south)*e.latScalar)}};var cit=new Ui,Lm=new h,lit=new fe,wD=new h,NP=new ki;function Dbe(e,t,n,i,o,r,s){let a=Math.cos(t),c=i*a,d=n*a,u=Math.sin(t),m=i*u,p=n*u;NP._ellipsoid=ie.default,Lm=NP.project(e,Lm),Lm=h.subtract(Lm,wD,Lm);let b=Ui.fromRotation(t,cit);Lm=Ui.multiplyByVector(b,Lm,Lm),Lm=h.add(Lm,wD,Lm),e=NP.unproject(Lm,e),r-=1,s-=1;let f=e.latitude,y=f+r*p,_=f-c*s,S=f-c*s+r*p,A=Math.max(f,y,_,S),Z=Math.min(f,y,_,S),R=e.longitude,G=R+r*d,E=R+s*m,v=R+s*m+r*d,I=Math.max(R,G,E,v),X=Math.min(R,G,E,v);return{north:A,south:Z,east:I,west:X,granYCos:c,granYSin:m,granXCos:d,granXSin:p,nwCorner:e}}u7.computeOptions=function(e,t,n,i,o,r,s){let a=e.east,c=e.west,d=e.north,u=e.south,m=!1,p=!1;d===W.PI_OVER_TWO&&(m=!0),u===-W.PI_OVER_TWO&&(p=!0);let b,f=d-u;c>a?b=W.TWO_PI-c+a:b=a-c;let y=Math.ceil(b/t)+1,_=Math.ceil(f/t)+1,S=b/(y-1),A=f/(_-1),Z=se.northwest(e,r),R=se.center(e,lit);(n!==0||i!==0)&&(R.longitude<Z.longitude&&(R.longitude+=W.TWO_PI),NP._ellipsoid=ie.default,wD=NP.project(R,wD));let G=A,E=S,v=0,I=0,X=se.clone(e,o),Y={granYCos:G,granYSin:v,granXCos:E,granXSin:I,nwCorner:Z,boundingRectangle:X,width:y,height:_,northCap:m,southCap:p};if(n!==0){let g=Dbe(Z,n,S,A,R,y,_);d=g.north,u=g.south,a=g.east,c=g.west,Y.granYCos=g.granYCos,Y.granYSin=g.granYSin,Y.granXCos=g.granXCos,Y.granXSin=g.granXSin,X.north=d,X.south=u,X.east=a,X.west=c}if(i!==0){n=n-i;let g=se.northwest(X,s),C=Dbe(g,n,S,A,R,y,_);Y.stGranYCos=C.granYCos,Y.stGranXCos=C.granXCos,Y.stGranYSin=C.granYSin,Y.stGranXSin=C.granXSin,Y.stNwCorner=g,Y.stWest=C.west,Y.stSouth=C.south}return Y};var ha=u7;var dit=new ue,uit=new ue,mit=new h,hit=new se;function Obe(e,t){let n=e._ellipsoid,i=t.height,o=t.width,r=t.northCap,s=t.southCap,a=i,c=2,d=0,u=4;r&&(c-=1,a-=1,d+=1,u-=2),s&&(c-=1,a-=1,d+=1,u-=2),d+=c*o+2*a-u;let m=new Float64Array(d*3),p=0,b=0,f,y=mit;if(r)ha.computePosition(t,n,!1,b,0,y),m[p++]=y.x,m[p++]=y.y,m[p++]=y.z;else for(f=0;f<o;f++)ha.computePosition(t,n,!1,b,f,y),m[p++]=y.x,m[p++]=y.y,m[p++]=y.z;for(f=o-1,b=1;b<i;b++)ha.computePosition(t,n,!1,b,f,y),m[p++]=y.x,m[p++]=y.y,m[p++]=y.z;if(b=i-1,!s)for(f=o-2;f>=0;f--)ha.computePosition(t,n,!1,b,f,y),m[p++]=y.x,m[p++]=y.y,m[p++]=y.z;for(f=0,b=i-2;b>0;b--)ha.computePosition(t,n,!1,b,f,y),m[p++]=y.x,m[p++]=y.y,m[p++]=y.z;let _=m.length/3*2,S=De.createTypedArray(m.length/3,_),A=0;for(let R=0;R<m.length/3-1;R++)S[A++]=R,S[A++]=R+1;S[A++]=m.length/3-1,S[A++]=0;let Z=new Zt({attributes:new xn,primitiveType:ve.LINES});return Z.attributes.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:m}),Z.indices=S,Z}function fit(e,t){let n=e._surfaceHeight,i=e._extrudedHeight,o=e._ellipsoid,r=Obe(e,t),s=t.height,a=t.width,c=ri.scaleToGeodeticHeight(r.attributes.position.values,n,o,!1),d=c.length,u=new Float64Array(d*2);u.set(c);let m=ri.scaleToGeodeticHeight(r.attributes.position.values,i,o);u.set(m,d),r.attributes.position.values=u;let p=t.northCap,b=t.southCap,f=4;p&&(f-=1),b&&(f-=1);let y=(u.length/3+f)*2,_=De.createTypedArray(u.length/3,y);d=u.length/6;let S=0;for(let Z=0;Z<d-1;Z++)_[S++]=Z,_[S++]=Z+1,_[S++]=Z+d,_[S++]=Z+d+1;_[S++]=d-1,_[S++]=0,_[S++]=d+d-1,_[S++]=d,_[S++]=0,_[S++]=d;let A;if(p)A=s-1;else{let Z=a-1;_[S++]=Z,_[S++]=Z+d,A=a+s-2}if(_[S++]=A,_[S++]=A+d,!b){let Z=a+A-1;_[S++]=Z,_[S]=Z+d}return r.indices=_,r}function JC(e){e=e??B.EMPTY_OBJECT;let t=e.rectangle,n=e.granularity??W.RADIANS_PER_DEGREE,i=e.ellipsoid??ie.default,o=e.rotation??0,r=e.height??0,s=e.extrudedHeight??r;this._rectangle=se.clone(t),this._granularity=n,this._ellipsoid=i,this._surfaceHeight=Math.max(r,s),this._rotation=o,this._extrudedHeight=Math.min(r,s),this._offsetAttribute=e.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}JC.packedLength=se.packedLength+ie.packedLength+5;JC.pack=function(e,t,n){return n=n??0,se.pack(e._rectangle,t,n),n+=se.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._extrudedHeight,t[n]=e._offsetAttribute??-1,t};var Bbe=new se,zbe=ie.clone(ie.UNIT_SPHERE),KC={rectangle:Bbe,ellipsoid:zbe,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};JC.unpack=function(e,t,n){t=t??0;let i=se.unpack(e,t,Bbe);t+=se.packedLength;let o=ie.unpack(e,t,zbe);t+=ie.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],d=e[t];return l(n)?(n._rectangle=se.clone(i,n._rectangle),n._ellipsoid=ie.clone(o,n._ellipsoid),n._surfaceHeight=s,n._rotation=a,n._extrudedHeight=c,n._offsetAttribute=d===-1?void 0:d,n):(KC.granularity=r,KC.height=s,KC.rotation=a,KC.extrudedHeight=c,KC.offsetAttribute=d===-1?void 0:d,new JC(KC))};var pit=new fe;JC.createGeometry=function(e){let t=e._rectangle,n=e._ellipsoid,i=ha.computeOptions(t,e._granularity,e._rotation,0,hit,pit),o,r;if(W.equalsEpsilon(t.north,t.south,W.EPSILON10)||W.equalsEpsilon(t.east,t.west,W.EPSILON10))return;let s=e._surfaceHeight,a=e._extrudedHeight,c=!W.equalsEpsilon(s,a,0,W.EPSILON2),d;if(c){if(o=fit(e,i),l(e._offsetAttribute)){let p=o.attributes.position.values.length/3,b=new Uint8Array(p);e._offsetAttribute===hn.TOP?b=b.fill(1,0,p/2):(d=e._offsetAttribute===hn.NONE?0:1,b=b.fill(d)),o.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}let u=ue.fromRectangle3D(t,n,s,uit),m=ue.fromRectangle3D(t,n,a,dit);r=ue.union(u,m)}else{if(o=Obe(e,i),o.attributes.position.values=ri.scaleToGeodeticHeight(o.attributes.position.values,s,n,!1),l(e._offsetAttribute)){let u=o.attributes.position.values.length;d=e._offsetAttribute===hn.NONE?0:1;let m=new Uint8Array(u/3).fill(d);o.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}r=ue.fromRectangle3D(t,n,s)}return new Zt({attributes:o.attributes,indices:o.indices,primitiveType:ve.LINES,boundingSphere:r,offsetAttribute:e._offsetAttribute})};var D_=JC;function QC(e){this.rectangle=se.clone(e.rectangle),this.minimumHeight=e.minimumHeight??0,this.maximumHeight=e.maximumHeight??0,this.southwestCornerCartesian=new h,this.northeastCornerCartesian=new h,this.westNormal=new h,this.southNormal=new h,this.eastNormal=new h,this.northNormal=new h;let t=e.ellipsoid??ie.WGS84;Tit(this,e.rectangle,t),this._orientedBoundingBox=void 0,this._boundingSphere=void 0,(e.computeBoundingVolumes??!0)&&this.computeBoundingVolumes(t)}Object.defineProperties(QC.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});QC.prototype.computeBoundingVolumes=function(e){this._orientedBoundingBox=en.fromRectangle(this.rectangle,this.minimumHeight,this.maximumHeight,e),this._boundingSphere=ue.fromOrientedBoundingBox(this._orientedBoundingBox)};var Hbe=new h,MD=new h,Kbe=new h,bit=new h,git=new h,yit=new h,xit=new h,Wm=new fe,Jbe=new sn(h.UNIT_X,0),jC=new _n;function Tit(e,t,n){n.cartographicToCartesian(se.southwest(t),e.southwestCornerCartesian),n.cartographicToCartesian(se.northeast(t),e.northeastCornerCartesian),Wm.longitude=t.west,Wm.latitude=(t.south+t.north)*.5,Wm.height=0;let i=n.cartographicToCartesian(Wm,yit),o=h.cross(i,h.UNIT_Z,bit);h.normalize(o,e.westNormal),Wm.longitude=t.east;let r=n.cartographicToCartesian(Wm,xit),s=h.cross(h.UNIT_Z,r,Hbe);h.normalize(s,e.eastNormal);let a=h.subtract(i,r,Hbe);h.magnitude(a)===0&&(a=h.clone(o,a));let c=h.normalize(a,git),d=t.south,u;if(d>0){Wm.longitude=(t.west+t.east)*.5,Wm.latitude=d;let y=n.cartographicToCartesian(Wm,jC.origin);h.clone(c,jC.direction);let _=sn.fromPointNormal(e.southwestCornerCartesian,e.westNormal,Jbe);di.rayPlane(jC,_,e.southwestCornerCartesian),u=n.geodeticSurfaceNormal(y,MD)}else u=n.geodeticSurfaceNormalCartographic(se.southeast(t),MD);let m=h.cross(u,a,Kbe);h.normalize(m,e.southNormal);let p=t.north,b;if(p<0){Wm.longitude=(t.west+t.east)*.5,Wm.latitude=p;let y=n.cartographicToCartesian(Wm,jC.origin);h.negate(c,jC.direction);let _=sn.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,Jbe);di.rayPlane(jC,_,e.northeastCornerCartesian),b=n.geodeticSurfaceNormal(y,MD)}else b=n.geodeticSurfaceNormalCartographic(se.northwest(t),MD);let f=h.cross(a,b,Kbe);h.normalize(f,e.northNormal)}var _it=new h,Sit=new h,Ait=new h(0,-1,0),Zit=new h(0,0,-1),jbe=new h;function Cit(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!se.contains(e.rectangle,o)){let d=e.southwestCornerCartesian,u=e.northeastCornerCartesian,m=e.westNormal,p=e.southNormal,b=e.eastNormal,f=e.northNormal;t.mode!==re.SCENE3D&&(d=t.mapProjection.project(se.southwest(e.rectangle),_it),d.z=d.y,d.y=d.x,d.x=0,u=t.mapProjection.project(se.northeast(e.rectangle),Sit),u.z=u.y,u.y=u.x,u.x=0,m=Ait,b=h.UNIT_Y,p=Zit,f=h.UNIT_Z);let y=h.subtract(i,d,jbe),_=h.dot(y,m),S=h.dot(y,p),A=h.subtract(i,u,jbe),Z=h.dot(A,b),R=h.dot(A,f);_>0?r+=_*_:Z>0&&(r+=Z*Z),S>0?r+=S*S:R>0&&(r+=R*R)}let s,a,c;if(t.mode===re.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let d=s-c;r+=d*d}else if(s<a){let d=a-s;r+=d*d}return Math.sqrt(r)}QC.prototype.distanceToCamera=function(e){let t=Cit(this,e);if(e.mode===re.SCENE3D&&l(this._orientedBoundingBox)){let n=Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC));return Math.max(t,n)}return t};QC.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};QC.prototype.createDebugVolume=function(e){let t=F.clone(F.IDENTITY),n=new D_({rectangle:this.rectangle,height:this.minimumHeight,extrudedHeight:this.maximumHeight}),i=new Pt({geometry:n,id:"outline",modelMatrix:t,attributes:{color:qt.fromColor(e)}});return new Wn({geometryInstances:i,appearance:new pn({translucent:!1,flat:!0}),asynchronous:!1})};var yu=QC;var pdi=x(T(),1);var qli=x(T(),1);var Pli=x(T(),1);var wP={},Rit=new h,Qbe=new h,qbe=new h,$be=new h,ege=new en;wP.validOutline=function(e){let n=en.fromPoints(e,ege).halfAxes,i=$.getColumn(n,0,Qbe),o=$.getColumn(n,1,qbe),r=$.getColumn(n,2,$be),s=h.magnitude(i),a=h.magnitude(o),c=h.magnitude(r);return!(s===0&&(a===0||c===0)||a===0&&c===0)};wP.computeProjectTo2DArguments=function(e,t,n,i){let o=en.fromPoints(e,ege),r=o.halfAxes,s=$.getColumn(r,0,Qbe),a=$.getColumn(r,1,qbe),c=$.getColumn(r,2,$be),d=h.magnitude(s),u=h.magnitude(a),m=h.magnitude(c),p=Math.min(d,u,m);if(d===0&&(u===0||m===0)||u===0&&m===0)return!1;let b,f;return(p===u||p===m)&&(b=s),p===d?b=a:p===m&&(f=a),(p===d||p===u)&&(f=c),h.normalize(b,n),h.normalize(f,i),h.clone(o.center,t),!0};function tge(e,t,n,i,o){let r=h.subtract(e,t,Rit),s=h.dot(n,r),a=h.dot(i,r);return k.fromElements(s,a,o)}wP.createProjectPointsTo2DFunction=function(e,t,n){return function(i){let o=new Array(i.length);for(let r=0;r<i.length;r++)o[r]=tge(i[r],e,t,n);return o}};wP.createProjectPointTo2DFunction=function(e,t,n){return function(i,o){return tge(i,e,t,n,o)}};var Lb=wP;function Vit(e){let t=e.length,n=new Float64Array(t*3),i=De.createTypedArray(t,t*2),o=0,r=0;for(let a=0;a<t;a++){let c=e[a];n[o++]=c.x,n[o++]=c.y,n[o++]=c.z,i[r++]=a,i[r++]=(a+1)%t}let s=new xn({position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:n})});return new Zt({attributes:s,indices:i,primitiveType:ve.LINES})}function O_(e){e=e??B.EMPTY_OBJECT;let t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=jn.computeHierarchyPackedLength(t,h)+1}O_.fromPositions=function(e){e=e??B.EMPTY_OBJECT;let t={polygonHierarchy:{positions:e.positions}};return new O_(t)};O_.pack=function(e,t,n){return n=n??0,n=jn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),t[n]=e.packedLength,t};var Git={polygonHierarchy:{}};O_.unpack=function(e,t,n){t=t??0;let i=jn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=e[t];return l(n)||(n=new O_(Git)),n._polygonHierarchy=i,n.packedLength=o,n};O_.createGeometry=function(e){let t=e._polygonHierarchy,n=t.positions;if(n=Co(n,h.equalsEpsilon,!0),n.length<3||!Lb.validOutline(n))return;let o=jn.polygonOutlinesFromHierarchy(t,!1);if(o.length===0)return;let r=[];for(let c=0;c<o.length;c++){let d=new Pt({geometry:Vit(o[c])});r.push(d)}let s=Un.combineInstances(r)[0],a=ue.fromPoints(t.positions);return new Zt({attributes:s.attributes,indices:s.indices,primitiveType:s.primitiveType,boundingSphere:a})};var vm=O_;var kD=new fe;function MP(e){let t=z0.fromToken(e.token),n=e.minimumHeight??0,i=e.maximumHeight??0,o=e.ellipsoid??ie.WGS84;this.s2Cell=t,this.minimumHeight=n,this.maximumHeight=i,this.ellipsoid=o;let r=Yit(t,n,i,o);this._boundingPlanes=r;let s=kit(r);this._vertices=s,this._edgeNormals=new Array(6),this._edgeNormals[0]=x7(r[0],s.slice(0,4));let a;for(a=0;a<4;a++)this._edgeNormals[0][a]=h.negate(this._edgeNormals[0][a],this._edgeNormals[0][a]);for(this._edgeNormals[1]=x7(r[1],s.slice(4,8)),a=0;a<4;a++)this._edgeNormals[2+a]=x7(r[2+a],[s[a%4],s[(a+1)%4],s[4+(a+1)%4],s[4+a]]);for(this._planeVertices=[this._vertices.slice(0,4),this._vertices.slice(4,8)],a=0;a<4;a++)this._planeVertices.push([this._vertices[a%4],this._vertices[(a+1)%4],this._vertices[4+(a+1)%4],this._vertices[4+a]]);let c=t.getCenter();kD=o.cartesianToCartographic(c,kD),kD.height=(i+n)/2,this.center=o.cartographicToCartesian(kD,c),this._boundingSphere=ue.fromPoints(s)}var Eit=new h,Lit=new fe,Wit=new h,vit=new fe,Fit=new h,Iit=new h,Pit=new h,Xit=new h;function Yit(e,t,n,i){let o=new Array(6),r=e.getCenter(),s=i.geodeticSurfaceNormal(r,Eit),a=i.cartesianToCartographic(r,Lit);a.height=n;let c=i.cartographicToCartesian(a,Wit),d=sn.fromPointNormal(c,s);o[0]=d;let u=0,m,p=[],b,f;for(m=0;m<4;m++){b=e.getVertex(m),p[m]=b,f=i.cartesianToCartographic(b,vit),f.height=t;let _=sn.getPointDistance(d,i.cartographicToCartesian(f,Fit));_<u&&(u=_)}let y=sn.clone(d);for(y.normal=h.negate(y.normal,y.normal),y.distance=y.distance*-1+u,o[1]=y,m=0;m<4;m++){b=p[m];let _=p[(m+1)%4],S=i.geodeticSurfaceNormal(b,Iit),A=h.subtract(_,b,Xit),Z=h.cross(A,S,Pit);Z=h.normalize(Z,Z),o[2+m]=sn.fromPointNormal(b,Z)}return o}var B_=new h,z_=new h,H_=new h,m7=new h,h7=new h,f7=new h,Nit=new h,wit=new h,Mit=new h,p7=new h,b7=new h,g7=new h,Hy=new h,Ap=new $;function nge(e,t,n){B_=e.normal,z_=t.normal,H_=n.normal,m7=h.multiplyByScalar(e.normal,-e.distance,m7),h7=h.multiplyByScalar(t.normal,-t.distance,h7),f7=h.multiplyByScalar(n.normal,-n.distance,f7),p7=h.multiplyByScalar(h.cross(z_,H_,Nit),h.dot(m7,B_),p7),b7=h.multiplyByScalar(h.cross(H_,B_,wit),h.dot(h7,z_),b7),g7=h.multiplyByScalar(h.cross(B_,z_,Mit),h.dot(f7,H_),g7),Ap[0]=B_.x,Ap[1]=z_.x,Ap[2]=H_.x,Ap[3]=B_.y,Ap[4]=z_.y,Ap[5]=H_.y,Ap[6]=B_.z,Ap[7]=z_.z,Ap[8]=H_.z;let i=$.determinant(Ap);return Hy=h.add(p7,b7,Hy),Hy=h.add(Hy,g7,Hy),new h(Hy.x/i,Hy.y/i,Hy.z/i)}function kit(e){let t=new Array(8);for(let n=0;n<4;n++)t[n]=nge(e[0],e[2+(n+3)%4],e[2+n%4]),t[n+4]=nge(e[1],e[2+(n+3)%4],e[2+n%4]);return t}var y7=new h,qC=new h;function x7(e,t){let n=[];for(let i=0;i<4;i++)y7=h.subtract(t[(i+1)%4],t[i],y7),qC=h.cross(e.normal,y7,qC),qC=h.normalize(qC,qC),n[i]=h.clone(qC);return n}Object.defineProperties(MP.prototype,{boundingVolume:{get:function(){return this}},boundingSphere:{get:function(){return this._boundingSphere}}});var T7=new h;MP.prototype.distanceToCamera=function(e){let t=e.camera.positionWC,n=[],i=[],o;sn.getPointDistance(this._boundingPlanes[0],t)>0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):sn.getPointDistance(this._boundingPlanes[1],t)>0&&(n.push(1),i.push(this._planeVertices[1]),o=this._edgeNormals[1]);let r,s;for(r=0;r<4;r++)s=2+r,sn.getPointDistance(this._boundingPlanes[s],t)>0&&(n.push(s),i.push(this._planeVertices[s]),o=this._edgeNormals[s]);if(n.length===0)return 0;let a,c;if(n.length===1)return c=this._boundingPlanes[n[0]],a=_7(sn.projectPointOntoPlane(c,t,T7),i[0],c,o),h.distance(a,t);if(n.length===2){if(n[0]===0){let p=[this._vertices[4*n[0]+(n[1]-2)],this._vertices[4*n[0]+(n[1]-2+1)%4]];return a=ige(t,p[0],p[1]),h.distance(a,t)}let u=Number.MAX_VALUE,m;for(r=0;r<2;r++)c=this._boundingPlanes[n[r]],a=_7(sn.projectPointOntoPlane(c,t,T7),i[r],c,this._edgeNormals[n[r]]),m=h.distanceSquared(a,t),m<u&&(u=m);return Math.sqrt(u)}else if(n.length>3)return a=_7(sn.projectPointOntoPlane(this._boundingPlanes[1],t,T7),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),h.distance(a,t);let d=n[1]===2&&n[2]===5?0:1;return n[0]===0?h.distance(t,this._vertices[(n[1]-2+d)%4]):h.distance(t,this._vertices[4+(n[1]-2+d)%4])};var Uit=new h,Dit=new h;function ige(e,t,n){let i=h.subtract(n,t,Uit),o=h.subtract(e,t,Dit),r=h.dot(i,o);if(r<=0)return t;let s=h.dot(i,i);return r>=s?n:(r=r/s,new h((1-r)*t.x+r*n.x,(1-r)*t.y+r*n.y,(1-r)*t.z+r*n.z))}var Oit=new sn(h.UNIT_X,0);function _7(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c<t.length;c++){let d=sn.fromPointNormal(t[c],i[c],Oit);sn.getPointDistance(d,e)<0||(a=ige(e,t[c],t[(c+1)%4]),r=h.distance(e,a),r<o&&(o=r,s=a))}return l(s)?s:e}MP.prototype.intersectPlane=function(e){let t=0,n=0;for(let i=0;i<this._vertices.length;i++)h.dot(e.normal,this._vertices[i])+e.distance<0?n++:t++;return t===this._vertices.length?Qt.INSIDE:n===this._vertices.length?Qt.OUTSIDE:Qt.INTERSECTING};MP.prototype.createDebugVolume=function(e){let t=F.clone(F.IDENTITY),n=new vm({polygonHierarchy:{positions:this._planeVertices[0]}}),i=vm.createGeometry(n),o=new Pt({geometry:i,id:"outline",modelMatrix:t,attributes:{color:qt.fromColor(e)}}),r=new vm({polygonHierarchy:{positions:this._planeVertices[1]}}),s=vm.createGeometry(r),a=new Pt({geometry:s,id:"outline",modelMatrix:t,attributes:{color:qt.fromColor(e)}}),c=[];for(let d=0;d<4;d++){let u=new vm({polygonHierarchy:{positions:this._planeVertices[2+d]}}),m=vm.createGeometry(u);c[d]=new Pt({geometry:m,id:"outline",modelMatrix:t,attributes:{color:qt.fromColor(e)}})}return new Wn({geometryInstances:[c[0],c[1],c[2],c[3],a,o],appearance:new pn({translucent:!1,flat:!0}),asynchronous:!1})};var kP=MP;var zdi=x(T(),1);var Pdi=x(T(),1);var Ldi=x(T(),1);var Bit=new h(1,1,1),UD=Math.cos,DD=Math.sin;function $C(e){e=e??B.EMPTY_OBJECT;let t=e.radii??Bit,n=e.innerRadii??t,i=e.minimumClock??0,o=e.maximumClock??W.TWO_PI,r=e.minimumCone??0,s=e.maximumCone??W.PI,a=Math.round(e.stackPartitions??10),c=Math.round(e.slicePartitions??8),d=Math.round(e.subdivisions??128);this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._subdivisions=d,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}$C.packedLength=2*h.packedLength+8;$C.pack=function(e,t,n){return n=n??0,h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n++]=e._subdivisions,t[n]=e._offsetAttribute??-1,t};var oge=new h,rge=new h,Wb={radii:oge,innerRadii:rge,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};$C.unpack=function(e,t,n){t=t??0;let i=h.unpack(e,t,oge);t+=h.packedLength;let o=h.unpack(e,t,rge);t+=h.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],d=e[t++],u=e[t++],m=e[t++],p=e[t];return l(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._minimumClock=r,n._maximumClock=s,n._minimumCone=a,n._maximumCone=c,n._stackPartitions=d,n._slicePartitions=u,n._subdivisions=m,n._offsetAttribute=p===-1?void 0:p,n):(Wb.minimumClock=r,Wb.maximumClock=s,Wb.minimumCone=a,Wb.maximumCone=c,Wb.stackPartitions=d,Wb.slicePartitions=u,Wb.subdivisions=m,Wb.offsetAttribute=p===-1?void 0:p,new $C(Wb))};$C.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._subdivisions,c=ie.fromCartesian3(t),d=e._slicePartitions+1,u=e._stackPartitions+1;d=Math.round(d*Math.abs(o-i)/W.TWO_PI),u=Math.round(u*Math.abs(s-r)/W.PI),d<2&&(d=2),u<2&&(u=2);let m=0,p=1,b=n.x!==t.x||n.y!==t.y||n.z!==t.z,f=!1,y=!1;b&&(p=2,r>0&&(f=!0,m+=d),s<Math.PI&&(y=!0,m+=d));let _=a*p*(u+d),S=new Float64Array(_*3),A=2*(_+m-(d+u)*p),Z=De.createTypedArray(_,A),R,G,E,v,I=0,X=new Array(u),Y=new Array(u);for(R=0;R<u;R++)v=r+R*(s-r)/(u-1),X[R]=DD(v),Y[R]=UD(v);let g=new Array(a),C=new Array(a);for(R=0;R<a;R++)E=i+R*(o-i)/(a-1),g[R]=DD(E),C[R]=UD(E);for(R=0;R<u;R++)for(G=0;G<a;G++)S[I++]=t.x*X[R]*C[G],S[I++]=t.y*X[R]*g[G],S[I++]=t.z*Y[R];if(b)for(R=0;R<u;R++)for(G=0;G<a;G++)S[I++]=n.x*X[R]*C[G],S[I++]=n.y*X[R]*g[G],S[I++]=n.z*Y[R];for(X.length=a,Y.length=a,R=0;R<a;R++)v=r+R*(s-r)/(a-1),X[R]=DD(v),Y[R]=UD(v);for(g.length=d,C.length=d,R=0;R<d;R++)E=i+R*(o-i)/(d-1),g[R]=DD(E),C[R]=UD(E);for(R=0;R<a;R++)for(G=0;G<d;G++)S[I++]=t.x*X[R]*C[G],S[I++]=t.y*X[R]*g[G],S[I++]=t.z*Y[R];if(b)for(R=0;R<a;R++)for(G=0;G<d;G++)S[I++]=n.x*X[R]*C[G],S[I++]=n.y*X[R]*g[G],S[I++]=n.z*Y[R];for(I=0,R=0;R<u*p;R++){let P=R*a;for(G=0;G<a-1;G++)Z[I++]=P+G,Z[I++]=P+G+1}let V=u*a*p;for(R=0;R<d;R++)for(G=0;G<a-1;G++)Z[I++]=V+R+G*d,Z[I++]=V+R+(G+1)*d;if(b)for(V=u*a*p+d*a,R=0;R<d;R++)for(G=0;G<a-1;G++)Z[I++]=V+R+G*d,Z[I++]=V+R+(G+1)*d;if(b){let P=u*a*p,N=P+a*d;if(f)for(R=0;R<d;R++)Z[I++]=P+R,Z[I++]=N+R;if(y)for(P+=a*d-d,N+=a*d-d,R=0;R<d;R++)Z[I++]=P+R,Z[I++]=N+R}let L=new xn({position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:S})});if(l(e._offsetAttribute)){let P=S.length,N=e._offsetAttribute===hn.NONE?0:1,O=new Uint8Array(P/3).fill(N);L.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:O})}return new Zt({attributes:L,indices:Z,primitiveType:ve.LINES,boundingSphere:ue.fromEllipsoid(c),offsetAttribute:e._offsetAttribute})};var xu=$C;function eR(e){let t=e.radius??1,i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,subdivisions:e.subdivisions};this._ellipsoidGeometry=new xu(i),this._workerName="createSphereOutlineGeometry"}eR.packedLength=xu.packedLength;eR.pack=function(e,t,n){return xu.pack(e._ellipsoidGeometry,t,n)};var zit=new xu,K_={radius:void 0,radii:new h,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};eR.unpack=function(e,t,n){let i=xu.unpack(e,t,zit);return K_.stackPartitions=i._stackPartitions,K_.slicePartitions=i._slicePartitions,K_.subdivisions=i._subdivisions,l(n)?(h.clone(i._radii,K_.radii),n._ellipsoidGeometry=new xu(K_),n):(K_.radius=i._radii.x,new eR(K_))};eR.createGeometry=function(e){return xu.createGeometry(e._ellipsoidGeometry)};var vb=eR;function tR(e,t){t===0&&(t=W.EPSILON7),this._boundingSphere=new ue(e,t)}Object.defineProperties(tR.prototype,{center:{get:function(){return this._boundingSphere.center}},radius:{get:function(){return this._boundingSphere.radius}},boundingVolume:{get:function(){return this._boundingSphere}},boundingSphere:{get:function(){return this._boundingSphere}}});tR.prototype.distanceToCamera=function(e){let t=this._boundingSphere;return Math.max(0,h.distance(t.center,e.camera.positionWC)-t.radius)};tR.prototype.intersectPlane=function(e){return ue.intersectPlane(this._boundingSphere,e)};tR.prototype.update=function(e,t){h.clone(e,this._boundingSphere.center),this._boundingSphere.radius=t};tR.prototype.createDebugVolume=function(e){let t=new vb({radius:this.radius}),n=F.fromTranslation(this.center,F.clone(F.IDENTITY)),i=new Pt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:qt.fromColor(e)}});return new Wn({geometryInstances:i,appearance:new pn({translucent:!1,flat:!0}),asynchronous:!1})};var Fb=tR;var rui=x(T(),1);var Hit=new h,Kit=new h,Jit=new h,jit=new h;function J_(e,t,n){n=h.cross(e,t,n);let i=h.magnitude(n);return h.multiplyByScalar(n,W.EPSILON7/i,n)}function S7(e,t){let n=h.normalize(e,jit),i=h.equalsEpsilon(n,h.UNIT_X,W.EPSILON6)?h.UNIT_Y:h.UNIT_X;return J_(e,i,t)}function sge(e){let t=$.getColumn(e,0,Hit),n=$.getColumn(e,1,Kit),i=$.getColumn(e,2,Jit),o=h.equals(t,h.ZERO),r=h.equals(n,h.ZERO),s=h.equals(i,h.ZERO);return!o&&!r&&!s?e:o&&r&&s?(e[0]=W.EPSILON7,e[4]=W.EPSILON7,e[8]=W.EPSILON7,e):(o&&!r&&!s?t=J_(n,i,t):!o&&r&&!s?n=J_(t,i,n):!o&&!r&&s?i=J_(n,t,i):o?r?s||(t=S7(i,t),n=J_(i,t,n)):(t=S7(n,t),i=J_(n,t,i)):(n=S7(t,n),i=J_(n,t,i)),$.setColumn(e,0,t,e),$.setColumn(e,1,n,e),$.setColumn(e,2,i,e),e)}function nR(e,t){t=sge(t),this._orientedBoundingBox=new en(e,t),this._boundingSphere=ue.fromOrientedBoundingBox(this._orientedBoundingBox)}Object.defineProperties(nR.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});nR.prototype.distanceToCamera=function(e){return Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC))};nR.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};nR.prototype.update=function(e,t){h.clone(e,this._orientedBoundingBox.center),t=sge(t),$.clone(t,this._orientedBoundingBox.halfAxes),ue.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere)};nR.prototype.createDebugVolume=function(e){let t=new fh({minimum:new h(-1,-1,-1),maximum:new h(1,1,1)}),n=F.fromRotationTranslation(this.boundingVolume.halfAxes,this.boundingVolume.center),i=new Pt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:qt.fromColor(e)}});return new Wn({geometryInstances:i,appearance:new pn({translucent:!1,flat:!0}),asynchronous:!1})};var Ed=nR;function ur(e,t,n,i){this._tileset=e,this._header=n;let o=l(n.contents),r=o&&n.contents.length>1||Bi(n,"3DTILES_multiple_contents"),s=o&&!r?n.contents[0]:n.content;this._contentHeader=s,this.transform=l(n.transform)?F.unpack(n.transform):F.clone(F.IDENTITY);let a=l(i)?i.computedTransform:e.modelMatrix,c=F.multiply(a,this.transform,new F),d=l(i)?i._initialTransform:F.IDENTITY;this._initialTransform=F.multiply(d,this.transform,new F),this.computedTransform=c,this.metadata=XP(e,n),this._verticalExaggeration=1,this._verticalExaggerationRelativeHeight=0,this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let u;l(s)&&l(s.boundingVolume)&&(u=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=u,this._contentBoundingVolume2D=void 0;let m;l(n.viewerRequestVolume)&&(m=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=m,this.geometricError=n.geometricError,this._geometricError=n.geometricError,l(this._geometricError)||(this._geometricError=l(i)?i._geometricError:e._geometricError,ur._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;l(n.refine)?((n.refine==="replace"||n.refine==="add")&&ur._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?ar.REPLACE:ar.ADD):l(i)?p=i.refine:p=ar.REPLACE,this.refine=p,this.children=[],this.parent=i;let b,f=!1,y,_,S;if(t=We.createIfNeeded(t),r)y=er.UNLOADED,_=t.clone();else if(l(s)){let G=s.uri;l(s.url)&&(ur._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),G=s.url),G===""?(ur._deprecationWarning("contentUriEmpty","content.uri property is an empty string, which creates a circular dependency, making this tileset invalid. Omit the content property instead"),b=new Sp(e,this),f=!0,y=er.READY):(y=er.UNLOADED,_=t.getDerivedResource({url:G}),S=Nc.getServerKey(_.getUrlComponent()))}else b=new Sp(e,this),f=!0,y=er.READY;this._content=b,this._contentResource=_,this._contentState=y,this._expiredContent=void 0,this._serverKey=S,this.hasEmptyContent=f,this.hasTilesetContent=!1,this.hasImplicitContent=!1,this.hasRenderableContent=!f,this.hasImplicitContentMetadata=!1,this.hasMultipleContents=r,this.cacheNode=void 0;let A=n.expire,Z,R;l(A)&&(Z=A.duration,l(A.date)&&(R=Q.fromIso8601(A.date))),this.expireDuration=Z,this.expireDate=R,this.lastStyleTime=0,this._optimChildrenWithinParent=Em.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!1,this.priorityDeferred=!1,this.implicitTileset=void 0,this.implicitCoordinates=void 0,this.implicitSubtree=void 0,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0,this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._wasSelectedLastFrame=!1,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._isClippedByPolygon=!1,this._clippingPlanesState=0,this._clippingPolygonsState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=U.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new Q,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}ur._deprecationWarning=Ca;Object.defineProperties(ur.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return this._contentBoundingVolume??this._boundingVolume}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},isVisible:{get:function(){return this._visible&&this._inRequestVolume}},extras:{get:function(){return this._header.extras}},color:{get:function(){return l(this._color)||(this._color=new U),U.clone(this._color)},set:function(e){this._color=U.clone(e,this._color),this._colorDirty=!0}},contentAvailable:{get:function(){return this.contentReady&&this.hasRenderableContent||l(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===er.READY}},contentUnloaded:{get:function(){return this._contentState===er.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===er.EXPIRED}},contentFailed:{get:function(){return this._contentState===er.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var Ky=new h;function Qit(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=h.multiplyByScalar(s.directionWC,e._centerZDepth,Ky),c=h.add(s.positionWC,a,Ky),d=h.subtract(c,r,Ky);if(h.magnitude(d)>o){let R=h.normalize(d,Ky),G=h.multiplyByScalar(R,o,Ky),E=h.add(r,G,Ky),v=h.subtract(E,s.positionWC,Ky),I=h.normalize(v,Ky);e._foveatedFactor=1-Math.abs(h.dot(s.directionWC,I))}else e._foveatedFactor=0;let p=e.refine===ar.REPLACE,b=n.isSkippingLevelOfDetail;if(p&&!b||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&b||n._pass===tr.PRELOAD_FLIGHT||n._pass===tr.PRELOAD)return!1;let f=1-Math.cos(s.frustum.fov*.5),y=n.foveatedConeSize*f;if(e._foveatedFactor<=y)return!1;let _=f-y,S=W.clamp((e._foveatedFactor-y)/_,0,1),A=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.memoryAdjustedScreenSpaceError,S),Z=e._screenSpaceError===0&&l(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.memoryAdjustedScreenSpaceError-A<=Z}var mge=new Q;ur.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=n??1,r=l(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,d=a.frustum,u=c.drawingBufferWidth,m=c.drawingBufferHeight*o,p;if(e.mode===re.SCENE2D||d instanceof fn){let b=d.offCenterFrustum;l(b)&&(d=b);let f=Math.max(d.top-d.bottom,d.right-d.left)/Math.max(u,m);p=s/f}else{let b=Math.max(this._distanceToCamera,W.EPSILON7),f=d.sseDenominator;if(p=s*m/(b*f),i.dynamicScreenSpaceError){let y=i._dynamicScreenSpaceErrorComputedDensity,_=i.dynamicScreenSpaceErrorFactor,S=W.fog(b,y)*_;p-=S}}return p/=e.pixelRatio,p};function qit(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;let n=e.memoryAdjustedScreenSpaceError,i=t._screenSpaceErrorProgressiveResolution>n;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;let o=t.parent,r=t._screenSpaceErrorProgressiveResolution<=n,s=l(o)&&o._screenSpaceErrorProgressiveResolution>n;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,i=!0),i}function $it(e,t){let n=t.parent,o=l(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}ur.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=l(t)?t.computedTransform:n.modelMatrix,o=l(t)?t._visibilityPlaneMask:Us.MASK_INDETERMINATE;this.updateTransform(i,e),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,n.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==Us.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=$it(n,this),this._priorityProgressiveResolution=qit(n,this),this.priorityDeferred=Qit(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};ur.prototype.updateExpiration=function(){if(l(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=Q.now(mge);Q.lessThan(this.expireDate,e)&&(this._contentState=er.EXPIRED,this._expiredContent=this._content)}};function eot(e){if(!l(e.expireDuration))return;let t=Q.now(mge);Q.addSeconds(t,e.expireDuration,t),l(e.expireDate)?Q.lessThan(e.expireDate,t)&&Q.clone(t,e.expireDate):e.expireDate=Q.clone(t)}function tot(e){return function(){return e._priority}}ur.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?not(this):oot(this)};function not(e){let t=e._content,n=e._tileset;if(!l(t)){let o=Bi(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new YP(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(l(i))return e._contentState=er.LOADING,i.then(o=>{if(!e.isDestroyed()&&l(o))return e._contentState=er.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=er.FAILED,o})}async function iot(e,t,n,i,o){let r=e._contentState;e._contentState=er.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await o}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===pi.CANCELLED){e._contentState=r,++t.statistics.numberOfAttemptedRequests;return}if(hge(e,a))return i&&(e.expireDate=void 0),e._content=new Sp(t,e),age(e),e._contentState=er.PROCESSING,e._content;throw e._contentState=er.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===pi.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await rot(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,a instanceof Sp&&age(e),e._contentState=er.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=er.FAILED,a}}function oot(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new gr({throttle:!0,throttleByServer:!0,type:ws.TILES3D,priorityFunction:tot(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!l(r)){++o.statistics.numberOfAttemptedRequests;return}return iot(e,o,i,n,r)}function hge(e,t){let i=e._tileset?._runtimeContentCodec?.missingTilePolicy;return!l(i)||!l(t.statusCode)?!1:i.statusCodes.includes(t.statusCode)}function age(e){e.hasEmptyContent=!0,e.hasRenderableContent=!1}ur._isEmptyTile=hge;async function rot(e,t){let n=e._tileset,i=n?._runtimeContentCodec;if(l(i)&&typeof i.createContent=="function"){let d=await Promise.resolve(i.createContent(n,e,e._contentResource,t));return e.isDestroyed()?void 0:d}let o=Eb(t);n._disableSkipLevelOfDetail=n._disableSkipLevelOfDetail||o.contentType===ua.GEOMETRY||o.contentType===ua.VECTOR,(o.contentType===ua.IMPLICIT_SUBTREE||o.contentType===ua.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0,e.hasRenderableContent=!1),o.contentType===ua.EXTERNAL_TILESET&&(e.hasTilesetContent=!0,e.hasRenderableContent=!1);let r,s=M_[o.contentType];if(e.isDestroyed())return;l(o.binaryPayload)?r=await Promise.resolve(s(n,e,e._contentResource,o.binaryPayload.buffer,0)):r=await Promise.resolve(s(n,e,e._contentResource,o.jsonPayload));let a=e._contentHeader;if(e.hasImplicitContentMetadata){let d=e.implicitSubtree,u=e.implicitCoordinates;r.metadata=d.getContentMetadataView(u,0)}else e.hasImplicitContent||(r.metadata=k_(n,a));let c=U_(n,a);return l(c)&&(r.group=new HT({metadata:c})),r}ur.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};ur.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=er.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this.clippingPolygonsDirty=this._clippingPolygonsState===0,this._clippingPolygonsState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var fge=new ue;function Z7(e,t){if(t.mode!==re.SCENE3D&&!l(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=ue.projectTo2D(n,t.mapProjection,fge);e._boundingVolume2D=new Fb(i.center,i.radius)}return t.mode!==re.SCENE3D?e._boundingVolume2D:e._boundingVolume}function sot(e,t){if(t.mode!==re.SCENE3D&&!l(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=ue.projectTo2D(n,t.mapProjection,fge);e._contentBoundingVolume2D=new Fb(i.center,i.radius)}return t.mode!==re.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}ur.prototype.visibility=function(e,t){let n=e.cullingVolume,i=Z7(this,e),o=this._tileset,r=o.clippingPlanes;if(l(r)&&r.enabled){let a=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=a!==Qt.INSIDE,a===Qt.OUTSIDE)return Us.MASK_OUTSIDE}let s=o.clippingPolygons;if(l(s)&&s.enabled){let a=s.computeIntersectionWithBoundingVolume(i);this._isClippedByPolygon=a!==Qt.OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};ur.prototype.contentVisibility=function(e){if(!l(this._contentBoundingVolume))return Qt.INSIDE;if(this._visibilityPlaneMask===Us.MASK_INSIDE)return Qt.INSIDE;let t=e.cullingVolume,n=sot(this,e),i=this._tileset,o=i.clippingPlanes;if(l(o)&&o.enabled){let s=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=s!==Qt.INSIDE,s===Qt.OUTSIDE)return Qt.OUTSIDE}let r=i.clippingPolygons;if(l(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(n);if(this._isClippedByPolygon=s!==Qt.OUTSIDE,s===Qt.INSIDE)return Qt.OUTSIDE}return t.computeVisibility(n)};ur.prototype.distanceToTile=function(e){return Z7(this,e).distanceToCamera(e)};var aot=new h;ur.prototype.distanceToTileCenter=function(e){let n=Z7(this,e).boundingVolume,i=h.subtract(n.center,e.camera.positionWC,aot);return h.dot(e.camera.directionWC,i)};ur.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!l(t)||t.distanceToCamera(e)===0};var pge=new $,bge=new h,cot=new $,C7=new h,gge=new se,yge=new en,A7=new F;function lot(e,t,n){let i=h.fromElements(e[0],e[1],e[2],C7),o=$.fromArray(e,3,cot);i=F.multiplyByPoint(t,i,i);let r=F.getMatrix3(t,pge);return o=$.multiply(r,o,o),l(n)?(n.update(i,o),n):new Ed(i,o)}function cge(e,t,n,i){let o=se.unpack(e,0,gge),r=e[4],s=e[5],a=en.fromRectangle(o,r,s,ie.WGS84,yge),c=a.center,d=a.halfAxes;t=F.multiplyTransformation(t,F.inverseTransformation(n,A7),A7),c=F.multiplyByPoint(t,c,c);let u=F.getMatrix3(t,pge);return d=$.multiply(u,d,d),l(i)&&i instanceof Ed?(i.update(c,d),i):new Ed(c,d)}function dot(e,t,n,i){if(!F.equalsEpsilon(t,n,W.EPSILON8))return i instanceof Ed?cge(e,t,n,i):cge(e,t,n,void 0);let o=se.unpack(e,0,gge);return i instanceof yu?(i.rectangle=se.clone(o,i.rectangle),i.minimumHeight=e[4],i.maximumHeight=e[5],i.computeBoundingVolumes(ie.WGS84),i):new yu({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function uot(e,t,n){let i=h.fromElements(e[0],e[1],e[2],C7),o=e[3];i=F.multiplyByPoint(t,i,i);let r=F.getScale(t,bge),s=h.maximumComponent(r);return o*=s,l(n)?(n.update(i,o),n):new Fb(i,o)}ur.prototype.createBoundingVolume=function(e,t,n){let i=this.metadata,o;if(l(i)&&(o=xy.parseBoundingVolumeSemantic("TILE",i)),l(o)&&(e=o),!l(e))throw new ae("boundingVolume must be defined");if(Bi(e,"3DTILES_bounding_volume_S2"))return new kP(e.extensions["3DTILES_bounding_volume_S2"]);let{box:r,region:s,sphere:a}=e;if(l(r)){let c=lot(r,t,n);return this._verticalExaggeration!==1&&lge(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c}if(l(s)){let c=dot(s,t,this._initialTransform,n);return this._verticalExaggeration===1||(c instanceof Ed?lge(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight):(c.minimumHeight=co.getHeight(c.minimumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.maximumHeight=co.getHeight(c.maximumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.computeBoundingVolumes(ie.WGS84))),c}if(l(a)){let c=uot(a,t,n);if(this._verticalExaggeration!==1){let d=co.getPosition(c.center,ie.WGS84,this._verticalExaggeration,this._verticalExaggerationRelativeHeight,C7),u=c.radius*this._verticalExaggeration;c.update(d,u)}return c}throw new ae("boundingVolume must contain a sphere, region, or box")};var mot=h.unpackArray(new Array(24).fill(0));function lge(e,t,n){let i=e.boundingVolume.computeCorners(mot).map(r=>co.getPosition(r,ie.WGS84,t,n,r)),o=en.fromPoints(i,yge);e.update(o.center,o.halfAxes)}ur.prototype.updateTransform=function(e,t){e=e??F.IDENTITY;let n=F.multiplyTransformation(e,this.transform,A7),i=!F.equals(n,this.computedTransform),o=l(t)&&(this._verticalExaggeration!==t.verticalExaggeration||this._verticalExaggerationRelativeHeight!==t.verticalExaggerationRelativeHeight);if(!i&&!o)return;i&&F.clone(n,this.computedTransform),o&&(this._verticalExaggeration=t.verticalExaggeration,this._verticalExaggerationRelativeHeight=t.verticalExaggerationRelativeHeight);let r=this._header,s=this._contentHeader;this._boundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform,this._boundingVolume),l(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(s.boundingVolume,this.computedTransform,this._contentBoundingVolume)),l(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(r.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()};ur.prototype.updateGeometricErrorScale=function(){let e=F.getScale(this.computedTransform,bge),t=h.maximumComponent(e);if(this.geometricError=this._geometricError*t,!l(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function hot(e,t,n,i){if(!i.isRender)return;let o=l(e._contentHeader)&&l(e._contentHeader.boundingVolume),r=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(r){let c;e._finalResolution?e.hasRenderableContent?c=U.WHITE:c=U.DARKGRAY:c=U.YELLOW,l(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let d=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");d.color=qt.toValue(c,d.color)}else!r&&l(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(l(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(U.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&l(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&l(e._viewerRequestVolume)?(l(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(U.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&l(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||l(t._heatmap.tilePropertyName),a=!t.debugColorizeTiles&&e._debugColorizeTiles;s?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):a&&(e._debugColorizeTiles=!1,e.color=U.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function fot(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&l(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(l(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=er.FAILED,o}}function pot(e,t){let n=t.clippingPlanes,i=0;l(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}function bot(e,t){let n=t.clippingPolygons,i=0;l(n)&&e._isClippedByPolygon&&n.enabled&&(i=n.clippingPolygonsState),i!==e._clippingPolygonsState&&(e._clippingPolygonsState=i,e.clippingPolygonsDirty=!0)}ur.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;pot(this,e),bot(this,e),hot(this,e,t,n),fot(this,e,t);let r=i.length;this._commandsLength=r-o;for(let s=o;s<r;++s){let a=i[s],c=a.pass===Le.TRANSLUCENT;a.depthForTranslucentClassification=c}this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!1};var dge=[];ur.prototype.process=function(e,t){!this.contentExpired&&!this.contentReady&&this._content.ready&&(eot(this),this._selectedFrame=0,this.lastStyleTime=0,Q.now(this._loadTimestamp),this._contentState=er.READY,!this.hasTilesetContent&&!this.hasImplicitContent&&(e._statistics.incrementLoadCounts(this.content),++e._statistics.numberOfTilesWithContentReady,++e._statistics.numberOfLoadedTilesTotal,e._cache.add(this)));let n=t.commandList;t.commandList=dge;try{this._content.update(e,t)}catch(i){throw this._contentState=er.FAILED,i}dge.length=0,t.commandList=n};function uge(e,t,n){let i=e*Math.pow(10,t);return parseInt(i)*Math.pow(10,n)}function OD(e,t,n){return Math.max(W.normalize(e,t,n)-W.EPSILON7,0)}ur.prototype.updatePriority=function(){let e=this.tileset,t=e.preferLeaves,n=e._minimumPriority,i=e._maximumPriority,o=4,r=1,s=0,a=o,c=s+a,d=o,u=c+d,m=r,p=Math.pow(10,u),b=u+m,f=r,y=Math.pow(10,b),_=b+f,S=Math.pow(10,_),A=OD(this._depth,n.depth,i.depth);A=t?1-A:A;let R=!e.isSkippingLevelOfDetail&&this.refine===ar.REPLACE?OD(this._priorityHolder._distanceToCamera,n.distance,i.distance):OD(this._priorityReverseScreenSpaceError,n.reverseScreenSpaceError,i.reverseScreenSpaceError),G=uge(R,a,s),E=this._priorityProgressiveResolution?0:p,v=OD(this._priorityHolder._foveatedFactor,n.foveatedFactor,i.foveatedFactor),I=uge(v,d,c),X=this.priorityDeferred?y:0,Y=e._pass===tr.PRELOAD_FLIGHT?0:S;this._priority=A+G+E+I+X+Y};ur.prototype.isDestroyed=function(){return!1};ur.prototype.destroy=function(){return this._content=this._content&&this._content.destroy(),this._expiredContent=this._expiredContent&&!this._expiredContent.isDestroyed()&&this._expiredContent.destroy(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy(),he(this)};var Fm=ur;var fmi=x(T(),1);var imi=x(T(),1);function Ib(e){e=e??B.EMPTY_OBJECT;let t=e.id,n=e.group,i=e.class,o=l(n.properties)?n.properties:{};this._class=i,this._properties=o,this._id=t,this._extras=n.extras,this._extensions=n.extensions}Object.defineProperties(Ib.prototype,{class:{get:function(){return this._class}},id:{get:function(){return this._id}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Ib.prototype.hasProperty=function(e){return Dn.hasProperty(e,this._properties,this._class)};Ib.prototype.hasPropertyBySemantic=function(e){return Dn.hasPropertyBySemantic(e,this._properties,this._class)};Ib.prototype.getPropertyIds=function(e){return Dn.getPropertyIds(this._properties,this._class,e)};Ib.prototype.getProperty=function(e){return Dn.getProperty(e,this._properties,this._class)};Ib.prototype.setProperty=function(e,t){return Dn.setProperty(e,t,this._properties,this._class)};Ib.prototype.getPropertyBySemantic=function(e){return Dn.getPropertyBySemantic(e,this._properties,this._class)};Ib.prototype.setPropertyBySemantic=function(e,t){return Dn.setPropertyBySemantic(e,t,this._properties,this._class)};var iR=Ib;var cmi=x(T(),1);function Pb(e){e=e??B.EMPTY_OBJECT;let t=e.tileset,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Pb.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Pb.prototype.hasProperty=function(e){return Dn.hasProperty(e,this._properties,this._class)};Pb.prototype.hasPropertyBySemantic=function(e){return Dn.hasPropertyBySemantic(e,this._properties,this._class)};Pb.prototype.getPropertyIds=function(e){return Dn.getPropertyIds(this._properties,this._class,e)};Pb.prototype.getProperty=function(e){return Dn.getProperty(e,this._properties,this._class)};Pb.prototype.setProperty=function(e,t){return Dn.setProperty(e,t,this._properties,this._class)};Pb.prototype.getPropertyBySemantic=function(e){return Dn.getPropertyBySemantic(e,this._properties,this._class)};Pb.prototype.setPropertyBySemantic=function(e,t){return Dn.setPropertyBySemantic(e,t,this._properties,this._class)};var UP=Pb;function xge(e){e=e??B.EMPTY_OBJECT;let t=e.metadataJson,n=e.schema,i=t.metadata??t.tileset,o;l(i)&&(o=new UP({tileset:i,class:n.classes[i.class]}));let r=[],s=[],a=t.groups;if(Array.isArray(a)){let c=a.length;for(let d=0;d<c;d++){let u=a[d];s.push(new iR({group:u,class:n.classes[u.class]}))}}else if(l(a)){r=Object.keys(a).sort();let c=r.length;for(let d=0;d<c;d++){let u=r[d];if(a.hasOwnProperty(u)){let m=a[u];s.push(new iR({id:u,group:a[u],class:n.classes[m.class]}))}}}this._schema=n,this._groups=s,this._groupIds=r,this._tileset=o,this._statistics=t.statistics,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(xge.prototype,{schema:{get:function(){return this._schema}},groups:{get:function(){return this._groups}},groupIds:{get:function(){return this._groupIds}},tileset:{get:function(){return this._tileset}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var j_=xge;var Tmi=x(T(),1);var Tge={},got=new h;Tge.checkChildrenWithinParent=function(e){let t=e.children,n=t.length,i=e.boundingVolume;if(i instanceof Ed||i instanceof yu){let o=i._orientedBoundingBox;e._optimChildrenWithinParent=Em.USE_OPTIMIZATION;for(let r=0;r<n;++r){let a=t[r].boundingVolume;if(!(a instanceof Ed||a instanceof yu)){e._optimChildrenWithinParent=Em.SKIP_OPTIMIZATION;break}let c=a._orientedBoundingBox,d=h.subtract(c.center,o.center,got),u=h.magnitude(d);h.divideByScalar(d,u,d);let m=Math.abs(o.halfAxes[0]*d.x)+Math.abs(o.halfAxes[1]*d.y)+Math.abs(o.halfAxes[2]*d.z)+Math.abs(o.halfAxes[3]*d.x)+Math.abs(o.halfAxes[4]*d.y)+Math.abs(o.halfAxes[5]*d.z)+Math.abs(o.halfAxes[6]*d.x)+Math.abs(o.halfAxes[7]*d.y)+Math.abs(o.halfAxes[8]*d.z),p=Math.abs(c.halfAxes[0]*d.x)+Math.abs(c.halfAxes[1]*d.y)+Math.abs(c.halfAxes[2]*d.z)+Math.abs(c.halfAxes[3]*d.x)+Math.abs(c.halfAxes[4]*d.y)+Math.abs(c.halfAxes[5]*d.z)+Math.abs(c.halfAxes[6]*d.x)+Math.abs(c.halfAxes[7]*d.y)+Math.abs(c.halfAxes[8]*d.z);if(m<=p+u){e._optimChildrenWithinParent=Em.SKIP_OPTIMIZATION;break}}}return e._optimChildrenWithinParent===Em.USE_OPTIMIZATION};var DP=Tge;var Vmi=x(T(),1);var Ami=x(T(),1);function OP(){this.head=void 0,this.tail=void 0,this._length=0}Object.defineProperties(OP.prototype,{length:{get:function(){return this._length}}});function yot(e,t,n){this.item=e,this.previous=t,this.next=n}OP.prototype.add=function(e){let t=new yot(e,this.tail,void 0);return l(this.tail)?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t};function _ge(e,t){l(t.previous)&&l(t.next)?(t.previous.next=t.next,t.next.previous=t.previous):l(t.previous)?(t.previous.next=void 0,e.tail=t.previous):l(t.next)?(t.next.previous=void 0,e.head=t.next):(e.head=void 0,e.tail=void 0),t.next=void 0,t.previous=void 0}OP.prototype.remove=function(e){l(e)&&(_ge(this,e),--this._length)};OP.prototype.splice=function(e,t){if(e===t)return;_ge(this,t);let n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e};var BP=OP;function Q_(){this._list=new BP,this._sentinel=this._list.add(),this._trimTiles=!1}Q_.prototype.reset=function(){this._list.splice(this._list.tail,this._sentinel)};Q_.prototype.touch=function(e){let t=e.cacheNode;l(t)&&this._list.splice(this._sentinel,t)};Q_.prototype.add=function(e){l(e.cacheNode)||(e.cacheNode=this._list.add(e))};Q_.prototype.unloadTile=function(e,t,n){let i=t.cacheNode;l(i)&&(this._list.remove(i),t.cacheNode=void 0,n(e,t))};Q_.prototype.unloadTiles=function(e,t){let n=this._trimTiles;this._trimTiles=!1;let i=this._list,o=this._sentinel,r=i.head;for(;r!==o&&(e.totalMemoryUsageInBytes>e.cacheBytes||n);){let s=r.item;r=r.next,this.unloadTile(e,s,t)}};Q_.prototype.trim=function(){this._trimTiles=!0};var zP=Q_;var Fmi=x(T(),1);function BD(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function V7(e,t){let n;return t==="_loadTimestamp"?n=Q.toDate(e).getTime():n=e,n}BD.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=V7(e,n),this._referenceMaximum[n]=V7(t,n)};function xot(e,t){let n=e.tilePropertyName;if(l(n)){let i=V7(t[n],n);return l(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var R7=[new U(.1,.1,.1,1),new U(.153,.278,.878,1),new U(.827,.231,.49,1),new U(.827,.188,.22,1),new U(1,.592,.259,1),new U(1,.843,0,1)];BD.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!l(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=xot(this,e),o=this._previousMinimum,r=this._previousMaximum;if(o===Number.MAX_VALUE||r===-Number.MAX_VALUE)return;let s=r-o+W.EPSILON7,c=W.clamp(i-o,0,s)/s,d=R7.length-1,u=c*d,m=Math.floor(u),p=Math.ceil(u),b=u-m,f=R7[m],y=R7[p],_=U.clone(U.WHITE);_.red=W.lerp(f.red,y.red,b),_.green=W.lerp(f.green,y.green,b),_.blue=W.lerp(f.blue,y.blue,b),e._debugColor=_};BD.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(l(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=l(t)&&l(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var HP=BD;var Ymi=x(T(),1);function oR(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.texturesReferenceCounterById={},this.batchTableByteLength=0}oR.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0};oR.prototype.incrementSelectionCounts=function(e){this.numberOfFeaturesSelected+=e.featuresLength,this.numberOfPointsSelected+=e.pointsLength,this.numberOfTrianglesSelected+=e.trianglesLength;let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)this.incrementSelectionCounts(t[i])}};oR.prototype.incrementLoadCounts=function(e){if(this.numberOfFeaturesLoaded+=e.featuresLength,this.numberOfPointsLoaded+=e.pointsLength,this.geometryByteLength+=e.geometryByteLength,this.batchTableByteLength+=e.batchTableByteLength,!(e instanceof pu))this.texturesByteLength+=e.texturesByteLength;else{let n=e.getTextureIds();for(let i of n){let o=this.texturesReferenceCounterById[i]??0;if(o===0){let r=e.getTextureByteLengthById(i);this.texturesByteLength+=r}this.texturesReferenceCounterById[i]=o+1}}let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)this.incrementLoadCounts(t[i])}};oR.prototype.decrementLoadCounts=function(e){if(this.numberOfFeaturesLoaded-=e.featuresLength,this.numberOfPointsLoaded-=e.pointsLength,this.geometryByteLength-=e.geometryByteLength,this.batchTableByteLength-=e.batchTableByteLength,!(e instanceof pu))this.texturesByteLength-=e.texturesByteLength;else{let n=e.getTextureIds();for(let i of n){let o=this.texturesReferenceCounterById[i];if(o===1){delete this.texturesReferenceCounterById[i];let r=e.getTextureByteLengthById(i);this.texturesByteLength-=r}else this.texturesReferenceCounterById[i]=o-1}}let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)this.decrementLoadCounts(t[i])}};oR.clone=function(e,t){t.selected=e.selected,t.visited=e.visited,t.numberOfCommands=e.numberOfCommands,t.numberOfAttemptedRequests=e.numberOfAttemptedRequests,t.numberOfPendingRequests=e.numberOfPendingRequests,t.numberOfTilesProcessing=e.numberOfTilesProcessing,t.numberOfTilesWithContentReady=e.numberOfTilesWithContentReady,t.numberOfTilesTotal=e.numberOfTilesTotal,t.numberOfFeaturesSelected=e.numberOfFeaturesSelected,t.numberOfFeaturesLoaded=e.numberOfFeaturesLoaded,t.numberOfPointsSelected=e.numberOfPointsSelected,t.numberOfPointsLoaded=e.numberOfPointsLoaded,t.numberOfTrianglesSelected=e.numberOfTrianglesSelected,t.numberOfTilesStyled=e.numberOfTilesStyled,t.numberOfFeaturesStyled=e.numberOfFeaturesStyled,t.numberOfTilesCulledWithChildrenUnion=e.numberOfTilesCulledWithChildrenUnion,t.geometryByteLength=e.geometryByteLength,t.texturesByteLength=e.texturesByteLength,t.texturesReferenceCounterById={...e.texturesReferenceCounterById},t.batchTableByteLength=e.batchTableByteLength};var nf=oR;var Mmi=x(T(),1);function KP(){this._style=void 0,this._styleDirty=!1,this._lastStyleTime=0}Object.defineProperties(KP.prototype,{style:{get:function(){return this._style},set:function(e){e!==this._style&&(this._style=e,this._styleDirty=!0)}}});KP.prototype.makeDirty=function(){this._styleDirty=!0};KP.prototype.resetDirty=function(){this._styleDirty=!1};KP.prototype.applyStyle=function(e){if(!l(e.root)||l(this._style)&&!this._style._ready)return;let t=this._styleDirty;t&&++this._lastStyleTime;let n=this._lastStyleTime,i=e._statistics,o=t?e._selectedTiles:e._selectedTilesToStyle,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a.lastStyleTime!==n){let c=a.content;a.lastStyleTime=n,c.applyStyle(this._style),i.numberOfFeaturesStyled+=c.featuresLength,++i.numberOfTilesStyled}}};var JP=KP;var Kmi=x(T(),1);function Tot(e,t,n){let i=Bi(t,"3DTILES_implicit_tiling")?t.extensions["3DTILES_implicit_tiling"]:t.implicitTiling;this.baseResource=e,this.geometricError=t.geometricError,this.metadataSchema=n;let o=t.boundingVolume;if(!l(o.box)&&!l(o.region)&&!Bi(o,"3DTILES_bounding_volume_S2")&&!Bi(o,"3DTILES_bounding_volume_cylinder"))throw new ae("Only box, region, 3DTILES_bounding_volume_S2, and 3DTILES_bounding_volume_cylinder are supported for implicit tiling");this.boundingVolume=o,this.refine=t.refine,this.subtreeUriTemplate=new We({url:i.subtrees.uri}),this.contentUriTemplates=[],this.contentHeaders=[];let r=_ot(t);for(let s=0;s<r.length;s++){let a=r[s];this.contentHeaders.push(Je(a,!0));let c=new We({url:a.uri});this.contentUriTemplates.push(c)}this.contentCount=this.contentHeaders.length,this.tileHeader=Sot(t),this.subdivisionScheme=Rs[i.subdivisionScheme],this.branchingFactor=Rs.getBranchingFactor(this.subdivisionScheme),this.subtreeLevels=i.subtreeLevels,l(i.availableLevels)?this.availableLevels=i.availableLevels:this.availableLevels=i.maximumLevel+1}function _ot(e){if(Bi(e,"3DTILES_multiple_contents")){let t=e.extensions["3DTILES_multiple_contents"];return l(t.contents)?t.contents:t.content}return l(e.contents)?e.contents:l(e.content)?[e.content]:[]}function Sot(e){let t=Je(e,!0);return l(t.extensions)&&(delete t.extensions["3DTILES_implicit_tiling"],delete t.extensions["3DTILES_multiple_contents"],Object.keys(t.extensions).length===0&&delete t.extensions),delete t.implicitTiling,delete t.contents,delete t.content,t}var Zp=Tot;var nhi=x(T(),1);var Qmi=x(T(),1);var jP={};function Sge(e){return e=(e^e<<8)&16711935,e=(e^e<<4)&252645135,e=(e^e<<2)&858993459,e=(e^e<<1)&1431655765,e}function G7(e){return e=(e^e<<16)&50331903,e=(e^e<<8)&50393103,e=(e^e<<4)&51130563,e=(e^e<<2)&153391689,e}function Age(e){return e&=1431655765,e=(e^e>>1)&858993459,e=(e^e>>2)&252645135,e=(e^e>>4)&16711935,e=(e^e>>8)&65535,e}function E7(e){return e&=153391689,e=(e^e>>2)&51130563,e=(e^e>>4)&50393103,e=(e^e>>8)&4278190335,e=(e^e>>16)&1023,e}jP.encode2D=function(e,t){return(Sge(e)|Sge(t)<<1)>>>0};jP.decode2D=function(e,t){return l(t)||(t=new Array(2)),t[0]=Age(e),t[1]=Age(e>>1),t};jP.encode3D=function(e,t,n){return G7(e)|G7(t)<<1|G7(n)<<2};jP.decode3D=function(e,t){return l(t)||(t=new Array(3)),t[0]=E7(e),t[1]=E7(e>>1),t[2]=E7(e>>2),t};var Jy=jP;function mr(e){this.subdivisionScheme=e.subdivisionScheme,this.subtreeLevels=e.subtreeLevels,this.level=e.level,this.x=e.x,this.y=e.y,this.z=void 0,e.subdivisionScheme===Rs.OCTREE&&(this.z=e.z)}Object.defineProperties(mr.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===Rs.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===Rs.OCTREE?Jy.encode3D(this.x,this.y,this.z):Jy.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===Rs.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});mr.prototype.getDescendantCoordinates=function(e){let t=this.level+e.level,n=(this.x<<e.level)+e.x,i=(this.y<<e.level)+e.y;if(this.subdivisionScheme===Rs.OCTREE){let o=(this.z<<e.level)+e.z;return new mr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new mr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};mr.prototype.getAncestorCoordinates=function(e){let t=1<<e,n=this.level-e,i=Math.floor(this.x/t),o=Math.floor(this.y/t);if(this.subdivisionScheme===Rs.OCTREE){let r=Math.floor(this.z/t);return new mr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o,z:r})}return new mr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o})};mr.prototype.getOffsetCoordinates=function(e){let t=e.level-this.level,n=1<<t,i=e.x%n,o=e.y%n;if(this.subdivisionScheme===Rs.OCTREE){let r=e.z%n;return new mr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o,z:r})}return new mr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o})};mr.prototype.getChildCoordinates=function(e){let t=this.level+1,n=2*this.x+e%2,i=2*this.y+Math.floor(e/2)%2;if(this.subdivisionScheme===Rs.OCTREE){let o=2*this.z+Math.floor(e/4)%2;return new mr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new mr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};mr.prototype.getSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels)};mr.prototype.getParentSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels+this.subtreeLevels)};mr.prototype.isAncestor=function(e){let t=e.level-this.level;if(t<=0)return!1;let n=e.x>>t,i=e.y>>t,o=this.x===n,r=this.y===i;if(this.subdivisionScheme===Rs.OCTREE){let s=e.z>>t,a=this.z===s;return o&&r&&a}return o&&r};mr.prototype.isEqual=function(e){return this.subdivisionScheme===e.subdivisionScheme&&this.subtreeLevels===e.subtreeLevels&&this.level===e.level&&this.x===e.x&&this.y===e.y&&(this.subdivisionScheme===Rs.OCTREE?this.z===e.z:!0)};mr.prototype.isImplicitTilesetRoot=function(){return this.level===0};mr.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};mr.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};mr.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===Rs.OCTREE&&(e.z=this.z),e};var Zge=[0,0,0];mr.fromMortonIndex=function(e,t,n,i){let o;return e===Rs.OCTREE?(o=Jy.decode3D(i,Zge),new mr({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=Jy.decode2D(i,Zge),new mr({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1]}))};mr.fromTileIndex=function(e,t,n){let i,o,r;return e===Rs.OCTREE?(i=Math.floor(W.log2(7*n+1)/3),o=((1<<3*i)-1)/7,r=n-o):(i=Math.floor(W.log2(3*n+1)/2),o=((1<<2*i)-1)/3,r=n-o),mr.fromMortonIndex(e,t,i,r)};var Cp=mr;var phi=x(T(),1);var lhi=x(T(),1);function Xb(){}Xb.selectTiles=function(e,t){Te.throwInstantiationError()};Xb.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};Xb.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset.memoryAdjustedScreenSpaceError};Xb.selectTile=function(e,t){if(e.contentVisibility(t)===Qt.OUTSIDE)return;e._wasSelectedLastFrame=!0;let{content:n,tileset:i}=e;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,e.lastStyleTime=0,i._selectedTilesToStyle.push(e)):e._selectedFrame<t.frameNumber-1&&(i._selectedTilesToStyle.push(e),e._wasSelectedLastFrame=!1),e._selectedFrame=t.frameNumber,i._selectedTiles.push(e)};Xb.visitTile=function(e,t){++e.tileset._statistics.visited,e._visitedFrame=t.frameNumber};Xb.touchTile=function(e,t){e._touchedFrame!==t.frameNumber&&(e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber)};Xb.loadTile=function(e,t){let{tileset:n}=e;if(e._requestedFrame===t.frameNumber||!e.hasUnloadedRenderableContent&&!e.contentExpired||!Aot(e,t))return;let i=t.camera.timeSinceMoved<n.foveatedTimeDelay;e.priorityDeferred&&i||(e._requestedFrame=t.frameNumber,n._requestedTiles.push(e))};function Aot(e,t){let{tileset:n}=e;if(!n._cullRequestsWhileMoving)return!0;let{positionWCDeltaMagnitude:i,positionWCDeltaMagnitudeLastFrame:o}=t.camera,r=i!==0?i:o,s=Math.max(e.boundingSphere.radius*2,1);return n.cullRequestsWhileMovingMultiplier*r/s<1}Xb.updateTile=function(e,t){Cge(e,t),e.updateExpiration(),e._wasMinPriorityChild=!1,e._priorityHolder=e,Rot(e),e._shouldSelect=!1,e._finalResolution=!0};function Cge(e,t){if(e.updateVisibility(t),!e.isVisible)return;let n=e.children.length>0;if((e.hasTilesetContent||e.hasImplicitContent)&&n){let r=e.children[0];Cge(r,t),e._visible=r._visible;return}if(Zot(e,t)){e._visible=!1;return}let i=e.refine===ar.REPLACE,o=e._optimChildrenWithinParent===Em.USE_OPTIMIZATION;if(i&&o&&n&&!Cot(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function Zot(e,t){let{parent:n,tileset:i}=e;return!l(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==ar.ADD?!1:e.getScreenSpaceError(t,!0)<=i.memoryAdjustedScreenSpaceError}function Cot(e,t){let n=!1,i=e.children;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(t),n=n||r.isVisible}return n}function Rot(e){let t=e.tileset._minimumPriority,n=e.tileset._maximumPriority,i=e._priorityHolder;n.distance=Math.max(i._distanceToCamera,n.distance),t.distance=Math.min(i._distanceToCamera,t.distance),n.depth=Math.max(e._depth,n.depth),t.depth=Math.min(e._depth,t.depth),n.foveatedFactor=Math.max(i._foveatedFactor,n.foveatedFactor),t.foveatedFactor=Math.min(i._foveatedFactor,t.foveatedFactor),n.reverseScreenSpaceError=Math.max(e._priorityReverseScreenSpaceError,n.reverseScreenSpaceError),t.reverseScreenSpaceError=Math.min(e._priorityReverseScreenSpaceError,t.reverseScreenSpaceError)}var Fa=Xb;function Rge(){}var QP={stack:new El,stackMaximumLength:0};Rge.selectTiles=function(e,t){e._selectedTiles.length=0,e._requestedTiles.length=0,e.hasMixedContent=!1;let n=!0,i=e.root;if(i.updateVisibility(t),!i.isVisible)return n;let{touchTile:o,visitTile:r}=Fa,s=QP.stack;for(s.push(i);s.length>0;){QP.stackMaximumLength=Math.max(QP.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===ar.ADD,d=a.refine===ar.REPLACE,u=Vot(a);u&&Got(a,s,t),(c||d&&!u)&&(Eot(e,a),o(a,t),Lot(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return QP.stack.trim(QP.stackMaximumLength),n};function Vot(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function Got(e,t,n){let{children:i}=e;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(n),r.isVisible&&t.push(r)}}function Eot(e,t){(t.hasUnloadedRenderableContent||t.contentExpired)&&(t._priority=0,e._requestedTiles.push(t))}function Lot(e,t){e.contentAvailable&&e.contentVisibility(t)!==Qt.OUTSIDE&&e.tileset._selectedTiles.push(e)}var qP=Rge;var _hi=x(T(),1);function Vge(){}var $P={stack:new El,stackMaximumLength:0},eX={stack:new El,stackMaximumLength:0};Vge.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(Fa.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;vot(n,t),$P.stack.trim($P.stackMaximumLength),eX.stack.trim(eX.stackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function L7(e,t){e.contentAvailable&&Fa.selectTile(e,t)}function Wot(e,t,n){let i=e.refine===ar.REPLACE,{tileset:o,children:r}=e,{updateTile:s,loadTile:a,touchTile:c}=Fa;for(let f=0;f<r.length;++f)s(r[f],n);r.sort(Fa.sortChildrenByDistanceToCamera);let d=i&&e.hasRenderableContent,u=!0,m=!1,p=-1,b=Number.MAX_VALUE;for(let f=0;f<r.length;++f){let y=r[f];if(y.isVisible?(t.push(y),y._foveatedFactor<b&&(p=f,b=y._foveatedFactor),m=!0):(d||o.loadSiblings)&&(y._foveatedFactor<b&&(p=f,b=y._foveatedFactor),a(y,n),c(y,n)),d){let _;y._inRequestVolume?y.hasRenderableContent?_=y.contentAvailable:_=Fot(y,n):_=!1,u=u&&_}}if(m||(u=!1),p!==-1&&i){let f=r[p];f._wasMinPriorityChild=!0;let y=(e._wasMinPriorityChild||e===o.root)&&b<=e._priorityHolder._foveatedFactor?e._priorityHolder:e;y._foveatedFactor=Math.min(f._foveatedFactor,y._foveatedFactor),y._distanceToCamera=Math.min(f._distanceToCamera,y._distanceToCamera);for(let _=0;_<r.length;++_)r[_]._priorityHolder=y}return u}function vot(e,t){let{tileset:n}=e,{canTraverse:i,loadTile:o,visitTile:r,touchTile:s}=Fa,a=$P.stack;for(a.push(e);a.length>0;){$P.stackMaximumLength=Math.max($P.stackMaximumLength,a.length);let c=a.pop(),d=c.parent,u=!l(d)||d._refines;c._refines=i(c)?Wot(c,a,t)&&u:!1;let m=!c._refines&&u;c.hasRenderableContent?c.refine===ar.ADD?(L7(c,t),o(c,t)):c.refine===ar.REPLACE&&(o(c,t),m&&L7(c,t)):(n._emptyTiles.push(c),o(c,t),m&&L7(c,t)),r(c,t),s(c,t)}}function Fot(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=Fa,s=!0,a=eX.stack;for(a.push(e);a.length>0;){eX.stackMaximumLength=Math.max(eX.stackMaximumLength,a.length);let c=a.pop(),d=c.children,u=d.length,m=!c.hasRenderableContent&&n(c);if(!m&&!c.contentAvailable&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),m)for(let p=0;p<u;++p){let b=d[p];a.push(b)}}return e.hasEmptyContent||s}var tX=Vge;var Vhi=x(T(),1);function Gge(){}var nX={stack:new El,stackMaximumLength:0},iX={stack:new El,stackMaximumLength:0},Yb={stack:new El,stackMaximumLength:0,ancestorStack:new El,ancestorStackMaximumLength:0},Iot=2;Gge.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(Fa.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;Mot(n,t),kot(n,t),nX.stack.trim(nX.stackMaximumLength),iX.stack.trim(iX.stackMaximumLength),Yb.stack.trim(Yb.stackMaximumLength),Yb.ancestorStack.trim(Yb.ancestorStackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function Pot(e,t){let{updateTile:n,touchTile:i,selectTile:o}=Fa,r=iX.stack;for(r.push(e);r.length>0;){iX.stackMaximumLength=Math.max(iX.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;c<a.length;++c){let d=a[c];d.isVisible&&(d.contentAvailable?(n(d,t),i(d,t),o(d,t)):d._depth-e._depth<Iot&&r.push(d))}}}function zD(e,t){let n=e.contentAvailable?e:e._ancestorWithContentAvailable;l(n)?n._shouldSelect=!0:Pot(e,t)}function Xot(e,t){e._ancestorWithContent=void 0,e._ancestorWithContentAvailable=void 0;let{parent:n}=e;if(!l(n))return;let i=!n.hasUnloadedRenderableContent||n._requestedFrame===t.frameNumber;e._ancestorWithContent=i?n:n._ancestorWithContent,e._ancestorWithContentAvailable=n.contentAvailable?n:n._ancestorWithContentAvailable}function Yot(e,t){let n=t._ancestorWithContent;return!e.immediatelyLoadDesiredLevelOfDetail&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf||l(n)&&t._screenSpaceError<n._screenSpaceError/e.skipScreenSpaceErrorFactor&&t._depth>n._depth+e.skipLevels)}function Not(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=Fa;for(let d=0;d<o.length;++d)r(o[d],n);o.sort(Fa.sortChildrenByDistanceToCamera);let c=!1;for(let d=0;d<o.length;++d){let u=o[d];u.isVisible?(t.push(u),c=!0):i.loadSiblings&&(s(u,n),a(u,n))}return c}function wot(e,t){let{tileset:n}=e;return n.immediatelyLoadDesiredLevelOfDetail?!1:l(e._ancestorWithContent)?e._screenSpaceError===0?e.parent._screenSpaceError>t:e._screenSpaceError>t:!0}function Mot(e,t){let{tileset:n}=e,i=n.immediatelyLoadDesiredLevelOfDetail?Number.MAX_VALUE:Math.max(n.baseScreenSpaceError,n.memoryAdjustedScreenSpaceError),{canTraverse:o,loadTile:r,visitTile:s,touchTile:a}=Fa,c=nX.stack;for(c.push(e);c.length>0;){nX.stackMaximumLength=Math.max(nX.stackMaximumLength,c.length);let d=c.pop();Xot(d,t);let u=d.parent,m=!l(u)||u._refines;d._refines=o(d)?Not(d,c,t)&&m:!1;let p=!d._refines&&m;d.hasRenderableContent?d.refine===ar.ADD?(zD(d,t),r(d,t)):d.refine===ar.REPLACE&&(wot(d,i)?(r(d,t),p&&zD(d,t)):p?(zD(d,t),r(d,t)):Yot(n,d)&&r(d,t)):(n._emptyTiles.push(d),r(d,t),p&&zD(d,t)),s(d,t),a(d,t)}}function kot(e,t){let{selectTile:n,canTraverse:i}=Fa,{stack:o,ancestorStack:r}=Yb,s;for(o.push(e);o.length>0||r.length>0;){if(Yb.stackMaximumLength=Math.max(Yb.stackMaximumLength,o.length),Yb.ancestorStackMaximumLength=Math.max(Yb.ancestorStackMaximumLength,r.length),r.length>0){let d=r.peek();if(d._stackLength===o.length){r.pop(),d!==s&&(d._finalResolution=!1),n(d,t);continue}}let a=o.pop();if(!l(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===ar.ADD)n(a,t);else{if(a._selectionDepth=r.length,a._selectionDepth>0&&(a.tileset.hasMixedContent=!0),s=a,!c){n(a,t);continue}r.push(a),a._stackLength=o.length}if(c){let d=a.children;for(let u=0;u<d.length;++u){let m=d[u];m.isVisible&&o.push(m)}}}}var oX=Gge;var Phi=x(T(),1);function fa(){this._layers=[],this.layerAdded=new Se,this.layerRemoved=new Se,this.layerMoved=new Se,this.layerShownOrHidden=new Se}Object.defineProperties(fa.prototype,{length:{get:function(){return this._layers.length}}});fa.prototype.add=function(e,t){l(t)?this._layers.splice(t,0,e):(t=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,t);let i=e.readyEvent.addEventListener(()=>{this.layerShownOrHidden.raiseEvent(e,e._layerIndex,e.show),i()})};fa.prototype.addImageryProvider=function(e,t){let n=new us(e);return this.add(n,t),n};fa.prototype.remove=function(e,t){t=t??!0;let n=this._layers.indexOf(e);return n!==-1?(this._layers.splice(n,1),this._update(),this.layerRemoved.raiseEvent(e,n),t&&e.destroy(),!0):!1};fa.prototype.removeAll=function(e){e=e??!0;let t=this._layers;for(let n=0,i=t.length;n<i;n++){let o=t[n];this.layerRemoved.raiseEvent(o,n),e&&o.destroy()}this._layers=[]};fa.prototype.contains=function(e){return this.indexOf(e)!==-1};fa.prototype.indexOf=function(e){return this._layers.indexOf(e)};fa.prototype.get=function(e){return this._layers[e]};function HD(e,t){return e.indexOf(t)}function Ege(e,t,n){let i=e._layers;if(t=W.clamp(t,0,i.length-1),n=W.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,e._update(),e.layerMoved.raiseEvent(o,n,t)}fa.prototype.raise=function(e){let t=HD(this._layers,e);Ege(this,t,t+1)};fa.prototype.lower=function(e){let t=HD(this._layers,e);Ege(this,t,t-1)};fa.prototype.raiseToTop=function(e){let t=HD(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))};fa.prototype.lowerToBottom=function(e){let t=HD(this._layers,e);t!==0&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var Uot=new se;function Lge(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!l(r)&&a<o.length;++a){let c=o[a];se.contains(c.rectangle,t)&&(r=c)}if(!l(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],d=c.readyImagery;if(!l(d)||!d.imageryLayer.ready)continue;let u=d.imageryLayer.imageryProvider;if(n&&!l(u.pickFeatures)||!se.contains(d.rectangle,t))continue;let m=Uot,p=1/1024;m.west=W.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.x-p),m.east=W.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.z+p),m.south=W.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.y-p),m.north=W.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.w+p),se.contains(m,t)&&i(d)}}fa.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.ellipsoid.cartesianToCartographic(n),o=[];if(Lge(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};fa.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(Lge(t,i,!0,function(s){if(!s.imageryLayer.ready)return;let c=s.imageryLayer.imageryProvider.pickFeatures(s.x,s.y,s.level,i.longitude,i.latitude);l(c)&&(o.push(c),r.push(s.imageryLayer))}),o.length!==0)return Promise.all(o).then(function(s){let a=[];for(let c=0;c<s.length;++c){let d=s[c],u=r[c];if(l(d)&&d.length>0)for(let m=0;m<d.length;++m){let p=d[m];p.imageryLayer=u,l(p.position)||(p.position=i),a.push(p)}}return a})};fa.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};fa.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};fa.prototype.isDestroyed=function(){return!1};fa.prototype.destroy=function(){return this.removeAll(!0),he(this)};fa.prototype._update=function(){let e=!0,t=this._layers,n,i,o,r;for(o=0,r=t.length;o<r;++o)i=t[o],i._layerIndex=o,i.show?(i._isBaseLayer=e,e=!1):i._isBaseLayer=!1,i.show!==i._show&&(l(i._show)&&(l(n)||(n=[]),n.push(i)),i._show=i.show);if(l(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var q_=fa;function nr(e){e=e??B.EMPTY_OBJECT,this._url=void 0,this._basePath=void 0,this._root=void 0,this._resource=void 0,this._asset=void 0,this._properties=void 0,this._geometricError=void 0,this._scaledGeometricError=void 0,this._extensionsUsed=void 0,this._extensions=void 0,this._modelUpAxis=void 0,this._modelForwardAxis=void 0,this._cache=new zP,this._processingQueue=[],this._selectedTiles=[],this._emptyTiles=[],this._requestedTiles=[],this._selectedTilesToStyle=[],this._loadTimestamp=void 0,this._timeSinceLoad=0,this._updatedVisibilityFrame=0,this._updatedModelMatrixFrame=0,this._modelMatrixChanged=!1,this._previousModelMatrix=void 0,this._extras=void 0,this._credits=void 0,this._showCreditsOnScreen=e.showCreditsOnScreen??!1,this._cullWithChildrenBounds=e.cullWithChildrenBounds??!0,this._allTilesAdditive=!0,this._hasMixedContent=!1,this._stencilClearCommand=void 0,this._backfaceCommands=new El,this._maximumScreenSpaceError=e.maximumScreenSpaceError??16,this._memoryAdjustedScreenSpaceError=this._maximumScreenSpaceError,this._cacheBytes=e.cacheBytes??512*1024*1024;let t=e.maximumCacheOverflowBytes??512*1024*1024;this._maximumCacheOverflowBytes=t,this._styleEngine=new JP,this._styleApplied=!1,this._modelMatrix=l(e.modelMatrix)?F.clone(e.modelMatrix):F.clone(F.IDENTITY),this._addHeightCallbacks=[],this._statistics=new nf,this._statisticsLast=new nf,this._statisticsPerPass=new Array(tr.NUMBER_OF_PASSES);for(let o=0;o<tr.NUMBER_OF_PASSES;++o)this._statisticsPerPass[o]=new nf;this._requestedTilesInFlight=[],this._maximumPriority={foveatedFactor:-Number.MAX_VALUE,depth:-Number.MAX_VALUE,distance:-Number.MAX_VALUE,reverseScreenSpaceError:-Number.MAX_VALUE},this._minimumPriority={foveatedFactor:Number.MAX_VALUE,depth:Number.MAX_VALUE,distance:Number.MAX_VALUE,reverseScreenSpaceError:Number.MAX_VALUE},this._heatmap=new HP(e.debugHeatmapTilePropertyName),this.cullRequestsWhileMoving=e.cullRequestsWhileMoving??!0,this._cullRequestsWhileMoving=!1,this.cullRequestsWhileMovingMultiplier=e.cullRequestsWhileMovingMultiplier??60,this.progressiveResolutionHeightFraction=W.clamp(e.progressiveResolutionHeightFraction??.3,0,.5),this.preferLeaves=e.preferLeaves??!1,this._tilesLoaded=!1,this._initialTilesLoaded=!1,this._tileDebugLabels=void 0,this._classificationType=e.classificationType,this._heightReference=e.heightReference,this._scene=e.scene,this._ellipsoid=e.ellipsoid??ie.WGS84,this._initialClippingPlanesOriginMatrix=F.IDENTITY,this._clippingPlanesOriginMatrix=void 0,this._clippingPlanesOriginMatrixDirty=!0,this._vectorClassificationOnly=e.vectorClassificationOnly??!1,this._vectorKeepDecodedPositions=e.vectorKeepDecodedPositions??!1,this._imageryLayers=new q_(this),this._imageryLayersModificationCounter=0,this._imageryLayersListener=()=>{this._imageryLayersModificationCounter++},this.imageryLayers.layerAdded.addEventListener(this._imageryLayersListener),this.imageryLayers.layerRemoved.addEventListener(this._imageryLayersListener),this.imageryLayers.layerMoved.addEventListener(this._imageryLayersListener),this.imageryLayers.layerShownOrHidden.addEventListener(this._imageryLayersListener),this._asynchronouslyLoadImagery=e.asynchronouslyLoadImagery??!1,this.preloadWhenHidden=e.preloadWhenHidden??!1,this.preloadFlightDestinations=e.preloadFlightDestinations??!0,this._pass=void 0,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError??!0,this.foveatedScreenSpaceError=e.foveatedScreenSpaceError??!0,this._foveatedConeSize=e.foveatedConeSize??.1,this._foveatedMinimumScreenSpaceErrorRelaxation=e.foveatedMinimumScreenSpaceErrorRelaxation??0,this.foveatedInterpolationCallback=e.foveatedInterpolationCallback??W.lerp,this.foveatedTimeDelay=e.foveatedTimeDelay??.2,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity??2e-4,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor??24,this.dynamicScreenSpaceErrorHeightFalloff=e.dynamicScreenSpaceErrorHeightFalloff??.25,this._dynamicScreenSpaceErrorComputedDensity=0,this.shadows=e.shadows??Gn.ENABLED,this.show=e.show??!0,this.colorBlendMode=bd.HIGHLIGHT,this.colorBlendAmount=.5,this._pointCloudShading=new hp(e.pointCloudShading),this._pointCloudEyeDomeLighting=new rb,this.loadProgress=new Se,this.allTilesLoaded=new Se,this.initialTilesLoaded=new Se,this.tileLoad=new Se,this.tileUnload=new Se,this.tileFailed=new Se,this.tileVisible=new Se,this.skipLevelOfDetail=e.skipLevelOfDetail??!1,this._disableSkipLevelOfDetail=!1,this._runtimeContentCodec=void 0,this.baseScreenSpaceError=e.baseScreenSpaceError??1024,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor??16,this.skipLevels=e.skipLevels??1,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail??!1,this.loadSiblings=e.loadSiblings??!1,this._clippingPlanes=void 0,l(e.clippingPlanes)&&ss.setOwner(e.clippingPlanes,this,"_clippingPlanes"),this._clippingPolygons=void 0,l(e.clippingPolygons)&&Ih.setOwner(e.clippingPolygons,this,"_clippingPolygons"),l(e.imageBasedLighting)?(this._imageBasedLighting=e.imageBasedLighting,this._shouldDestroyImageBasedLighting=!1):(this._imageBasedLighting=new zT,this._shouldDestroyImageBasedLighting=!0),this._environmentMapManager=new nb(e.environmentMapOptions),this.lightColor=e.lightColor,this.backFaceCulling=e.backFaceCulling??!0,this._enableShowOutline=e.enableShowOutline??!0,this.showOutline=e.showOutline??!0,this.outlineColor=e.outlineColor??U.BLACK,this.splitDirection=e.splitDirection??Gr.NONE,this.enableCollision=e.enableCollision??!1,this._projectTo2D=e.projectTo2D??!1,this._enablePick=e.enablePick??!1,this.debugFreezeFrame=e.debugFreezeFrame??!1,this.debugColorizeTiles=e.debugColorizeTiles??!1,this._enableDebugWireframe=e.enableDebugWireframe??!1,this.debugWireframe=e.debugWireframe??!1,this.debugWireframe===!0&&this._enableDebugWireframe===!1&&_t("tileset-debug-wireframe-ignored","enableDebugWireframe must be set to true in the Cesium3DTileset constructor, otherwise debugWireframe will be ignored."),this.edgeDisplayMode=e.edgeDisplayMode??xm.SURFACES_ONLY,this.debugShowBoundingVolume=e.debugShowBoundingVolume??!1,this.debugShowContentBoundingVolume=e.debugShowContentBoundingVolume??!1,this.debugShowViewerRequestVolume=e.debugShowViewerRequestVolume??!1,this._tileDebugLabels=void 0,this.debugPickedTileLabelOnly=!1,this.debugPickedTile=void 0,this.debugPickPosition=void 0,this.debugShowGeometricError=e.debugShowGeometricError??!1,this.debugShowRenderingStatistics=e.debugShowRenderingStatistics??!1,this.debugShowMemoryUsage=e.debugShowMemoryUsage??!1,this.debugShowUrl=e.debugShowUrl??!1,this.examineVectorLinesFunction=void 0,this._metadataExtension=void 0,this._customShader=e.customShader;let n=e.featureIdLabel??"featureId_0";typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=e.instanceFeatureIdLabel??"instanceFeatureId_0";typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i}Object.defineProperties(nr.prototype,{isCesium3DTileset:{get:function(){return!0}},asset:{get:function(){return this._asset}},extensions:{get:function(){return this._extensions}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){ss.setOwner(e,this,"_clippingPlanes")}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){Ih.setOwner(e,this,"_clippingPolygons")}},imageryLayers:{get:function(){return this._imageryLayers}},imageryLayersModificationCounter:{get:function(){return this._imageryLayersModificationCounter}},asynchronouslyLoadImagery:{get:function(){return this._asynchronouslyLoadImagery}},properties:{get:function(){return this._properties}},tilesLoaded:{get:function(){return this._tilesLoaded}},resource:{get:function(){return this._resource}},basePath:{get:function(){return Ca("Cesium3DTileset.basePath","Cesium3DTileset.basePath has been deprecated. All tiles are relative to the url of the tileset JSON file that contains them. Use the url property instead."),this._basePath}},style:{get:function(){return this._styleEngine.style},set:function(e){this._styleEngine.style=e}},customShader:{get:function(){return this._customShader},set:function(e){this._customShader=e}},hasMixedContent:{get:function(){return this._hasMixedContent},set:function(e){this._hasMixedContent=e}},isSkippingLevelOfDetail:{get:function(){return this.skipLevelOfDetail&&!l(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive}},metadataExtension:{get:function(){return this._metadataExtension}},metadata:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.tileset}},schema:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.schema}},maximumScreenSpaceError:{get:function(){return this._maximumScreenSpaceError},set:function(e){this._maximumScreenSpaceError=e,this._memoryAdjustedScreenSpaceError=e}},cacheBytes:{get:function(){return this._cacheBytes},set:function(e){this._cacheBytes=e}},maximumCacheOverflowBytes:{get:function(){return this._maximumCacheOverflowBytes},set:function(e){this._maximumCacheOverflowBytes=e}},memoryAdjustedScreenSpaceError:{get:function(){return this._memoryAdjustedScreenSpaceError}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){this._pointCloudShading=e}},root:{get:function(){return this._root}},boundingSphere:{get:function(){return this._root.updateTransform(this._modelMatrix),this._root.boundingSphere}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix)}},timeSinceLoad:{get:function(){return this._timeSinceLoad}},totalMemoryUsageInBytes:{get:function(){let e=this._statistics;return e.texturesByteLength+e.geometryByteLength+e.batchTableByteLength}},clippingPlanesOriginMatrix:{get:function(){return l(this._clippingPlanesOriginMatrix)?(this._clippingPlanesOriginMatrixDirty&&(F.multiply(this.root.computedTransform,this._initialClippingPlanesOriginMatrix,this._clippingPlanesOriginMatrix),this._clippingPlanesOriginMatrixDirty=!1),this._clippingPlanesOriginMatrix):F.IDENTITY}},styleEngine:{get:function(){return this._styleEngine}},statistics:{get:function(){return this._statistics}},classificationType:{get:function(){return this._classificationType}},heightReference:{get:function(){return this._heightReference}},scene:{get:function(){return this._scene}},ellipsoid:{get:function(){return this._ellipsoid}},foveatedConeSize:{get:function(){return this._foveatedConeSize},set:function(e){this._foveatedConeSize=e}},foveatedMinimumScreenSpaceErrorRelaxation:{get:function(){return this._foveatedMinimumScreenSpaceErrorRelaxation},set:function(e){this._foveatedMinimumScreenSpaceErrorRelaxation=e}},extras:{get:function(){return this._extras}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1)}},environmentMapManager:{get:function(){return this._environmentMapManager}},vectorClassificationOnly:{get:function(){return this._vectorClassificationOnly}},vectorKeepDecodedPositions:{get:function(){return this._vectorKeepDecodedPositions}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen=e,Nge(this)}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),this._instanceFeatureIdLabel=e}}});nr.fromIonAssetId=async function(e,t){let n=await os.fromAssetId(e);return nr.fromUrl(n,t)};nr.fromUrl=async function(e,t){t=t??B.EMPTY_OBJECT;let n=We.createIfNeeded(e),i;n.extension==="json"?i=n.getBaseUri(!0):n.isDataUri&&(i="");let o=await nr.loadJson(n),r=await Dot(n,o),s=new nr(t);s._resource=n,s._url=n.url,s._basePath=i,s._metadataExtension=r,s._geometricError=o.geometricError,s._scaledGeometricError=o.geometricError;let a=o.asset;s._asset=a,s._extras=o.extras,Nge(s);let c=l(o.asset.gltfUpAxis)?Xi.fromName(o.asset.gltfUpAxis):Xi.Y,d=t.modelUpAxis??c,u=t.modelForwardAxis??Xi.X;s._properties=o.properties,s._extensionsUsed=o.extensionsUsed,s._extensions=o.extensions,s._modelUpAxis=d,s._modelForwardAxis=u,s._root=s.loadTileset(n,o);let p=s._root.createBoundingVolume(o.root.boundingVolume,F.IDENTITY).boundingSphere.center,b=s._ellipsoid.cartesianToCartographic(p);return l(b)&&b.height>Vi._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=xt.eastNorthUpToFixedFrame(p)),s._clippingPlanesOriginMatrix=F.clone(s._initialClippingPlanesOriginMatrix),s};nr.loadJson=function(e){return We.createIfNeeded(e).fetchJson()};nr.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};nr.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!l(i))throw new ae("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new ae("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");l(t.extensionsRequired)&&nr.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;l(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=Wge(this,e,t.root,n);l(n)&&(n.children.push(s),s._depth=n._depth+1);let a=[];for(a.push(s);a.length>0;){let c=a.pop();++o.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&c.refine===ar.ADD;let d=c._header.children;if(l(d))for(let u=0;u<d.length;++u){let m=d[u],p=Wge(this,e,m,c);c.children.push(p),p._depth=c._depth+1,a.push(p)}this._cullWithChildrenBounds&&DP.checkChildrenWithinParent(c)}return s};function Wge(e,t,n,i){if(!(l(n.implicitTiling)||Bi(n,"3DTILES_implicit_tiling")))return new Fm(e,t,n,i);let r=e.schema,s=new Zp(t,n,r),a=new Cp({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:0,x:0,y:0,z:0}),c=s.subtreeUriTemplate.getDerivedResource({templateValues:a.getTemplateValues()}).url,u=Je(n,!0);u.contents=[{uri:c}],delete u.content,delete u.extensions;let m=new Fm(e,t,u,i);return m.implicitTileset=s,m.implicitCoordinates=a,m}async function Dot(e,t){let n=Bi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t,i;if(l(n.schemaUri))e=e.getDerivedResource({url:n.schemaUri}),i=Li.getSchemaLoader({resource:e});else if(l(n.schema))i=Li.getSchemaLoader({schema:n.schema});else return;await i.load();let o=new j_({schema:i.schema,metadataJson:n});return Li.unload(i),o}var vge=new h,Oot=new fe,Bot=new F,zot=new h,Hot=new h,Kot=new h,Jot=new h;function jot(e,t){let n,i,o,r,s,a=t.camera,c=e._root,d=c.contentBoundingVolume;if(d instanceof yu)n=h.normalize(a.positionWC,vge),i=a.directionWC,o=a.positionCartographic.height,r=d.minimumHeight,s=d.maximumHeight;else{let y=F.inverseTransformation(c.computedTransform,Bot),_=t.mapProjection.ellipsoid,S=d.boundingVolume,A=F.multiplyByPoint(y,S.center,zot);if(h.magnitude(A)>_.minimumRadius){let Z=fe.fromCartesian(A,_,Oot);n=h.normalize(a.positionWC,vge),i=a.directionWC,o=a.positionCartographic.height,r=0,s=Z.height*2}else{let Z=F.multiplyByPoint(y,a.positionWC,Hot);if(n=h.UNIT_Z,i=F.multiplyByPointAsVector(y,a.directionWC,Kot),i=h.normalize(i,i),o=Z.z,d instanceof Ed){let R=$.getColumn(S.halfAxes,2,Jot),G=h.magnitude(R);r=A.z-G,s=A.z+G}else if(d instanceof Fb){let R=S.radius;r=A.z-R,s=A.z+R}}}let u=e.dynamicScreenSpaceErrorHeightFalloff,m=r+(s-r)*u,p=s,b=W.clamp((o-m)/(p-m),0,1),f=1-Math.abs(h.dot(i,n));f=f*(1-b),e._dynamicScreenSpaceErrorComputedDensity=e.dynamicScreenSpaceErrorDensity*f}function Qot(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();l(o)&&(o.then(r=>{!l(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{Pge(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?urt(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function Ige(e,t){return e._priority-t._priority}nr.prototype.postPassesUpdate=function(e){l(this._root)&&(qot(this,e),hrt(this,e),this._cache.unloadTiles(this,Yge),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};nr.prototype.prePassesUpdate=function(e){if(!l(this._root))return;rrt(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,l(t)&&t.enabled&&t.update(e);let n=this._clippingPolygons;l(n)&&n.enabled&&n.update(e),l(this._loadTimestamp)||(this._loadTimestamp=Q.clone(e.time)),this._timeSinceLoad=Math.max(Q.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&jot(this,e),e.newFrame&&this._cache.reset()};function qot(e,t){let n=e._requestedTilesInFlight,i=0;for(let o=0;o<n.length;++o){let r=n[o],s=t.frameNumber-r._touchedFrame>=1;if(r._contentState!==er.LOADING){++i;continue}else if(s){r.cancelRequests(),++i;continue}i>0&&(n[o-i]=r)}n.length-=i}function $ot(e){let t=e._requestedTiles;t.sort(Ige);for(let n=0;n<t.length;++n)Qot(e,t[n])}function Pge(e,t,n){if(t.isDestroyed())return;let i;n.isDestroyed()||(i=n._contentResource.url);let o=l(e.message)?e.message:e.toString();t.tileFailed.numberOfListeners>0?t.tileFailed.raiseEvent({url:i,message:o}):(console.log(`A 3D tile failed to load: ${i}`),console.log(`Error: ${o}`),console.log(e.stack))}function ert(e){let t=e._processingQueue,n=0;for(let i=0;i<t.length;++i){let o=t[i];if(o.isDestroyed()||o._contentState!==er.PROCESSING){++n;continue}n>0&&(t[i-n]=o)}t.length-=n}var trt=new fe,nrt=new fe,irt=new h;function ort(e,t,n){if(!e.enableCollision||!e.show)return;let i=e._addHeightCallbacks,o=t.boundingSphere;for(let r of i){if(r.invoked||t._wasSelectedLastFrame)continue;let s=r.ellipsoid,a=fe.clone(r.positionCartographic,trt),c=fe.fromCartesian(o.center,s,nrt);l(c)&&(a.height=c.height);let d=fe.toCartesian(a,s,irt);h.distance(d,o.center)<=o.radius&&(r.invoked=!0,n.afterRender.push(()=>{l(r.callback)&&r.callback(),r.invoked=!1}))}}function rrt(e,t){ert(e);let n=e._processingQueue,{cacheBytes:i,maximumCacheOverflowBytes:o,statistics:r}=e,s=i+o,a=!1;for(let c=0;c<n.length;++c){if(e.totalMemoryUsageInBytes>s){a=!0;break}let d=n[c];try{d.process(e,t),d.contentReady&&(--r.numberOfTilesProcessing,e.tileLoad.raiseEvent(d))}catch(u){--r.numberOfTilesProcessing,Pge(u,e,d)}}e.totalMemoryUsageInBytes<i?art(e):a&&n.length>0&&srt(e)}function srt(e){e._memoryAdjustedScreenSpaceError*=1.02;let t=e._processingQueue;for(let n=0;n<t.length;++n)t[n].updatePriority();t.sort(Ige)}function art(e){e._memoryAdjustedScreenSpaceError=Math.max(e.memoryAdjustedScreenSpaceError/1.02,e.maximumScreenSpaceError)}var KD=new h,crt={maximumFractionDigits:3};function Fge(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,crt):Math.round(t).toLocaleString()}function W7(e){let{halfAxes:t,radius:n,center:i}=e.boundingVolume.boundingVolume,o=h.clone(i,KD);if(l(t))o.x+=.75*(t[0]+t[3]+t[6]),o.y+=.75*(t[1]+t[4]+t[7]),o.z+=.75*(t[2]+t[5]+t[8]);else if(l(n)){let r=h.normalize(i,KD);r=h.multiplyByScalar(r,.75*n,KD),o=h.add(r,i,KD)}return o}function v7(e,t,n){let i="",o=0;if(t.debugShowGeometricError&&(i+=` +Geometric error: ${e.geometricError}`,o++),t.debugShowRenderingStatistics&&(i+=` +Commands: ${e.commandsLength}`,o++,e.content.pointsLength>0&&(i+=` +Points: ${e.content.pointsLength}`,o++),e.content.trianglesLength>0&&(i+=` +Triangles: ${e.content.trianglesLength}`,o++),i+=` +Features: ${e.content.featuresLength}`,o++),t.debugShowMemoryUsage&&(i+=` +Texture Memory: ${Fge(e.content.texturesByteLength)}`,i+=` +Geometry Memory: ${Fge(e.content.geometryByteLength)}`,o+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=` +Urls:`;let s=e.content.innerContentUrls;for(let a=0;a<s.length;a++)i+=` +- ${s[a]}`;o+=s.length}else i+=` +Url: ${e._contentHeader.uri}`,o++;let r={text:i.substring(1),position:n,font:`${19-o}px sans-serif`,showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY};return t._tileDebugLabels.add(r)}function lrt(e,t){let n=e._selectedTiles,i=n.length,o=e._emptyTiles,r=o.length;if(e._tileDebugLabels.removeAll(),e.debugPickedTileLabelOnly){if(l(e.debugPickedTile)){let s=l(e.debugPickPosition)?e.debugPickPosition:W7(e.debugPickedTile),a=v7(e.debugPickedTile,e,s);a.pixelOffset=new k(15,-15)}}else{for(let s=0;s<i;++s){let a=n[s];v7(a,e,W7(a))}for(let s=0;s<r;++s){let a=o[s];(a.hasTilesetContent||a.hasImplicitContent)&&v7(a,e,W7(a))}}e._tileDebugLabels.update(t)}function drt(e,t,n){e._styleEngine.applyStyle(e),e._styleApplied=!0;let{commandList:i,context:o}=t,r=i.length,s=e._selectedTiles,a=e.isSkippingLevelOfDetail&&e._hasMixedContent&&o.stencilBuffer&&s.length>0;e._backfaceCommands.length=0,a&&(l(e._stencilClearCommand)||(e._stencilClearCommand=new mi({stencil:0,pass:Le.CESIUM_3D_TILE,renderState:Be.fromCache({stencilMask:Kt.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:d}=e,u=n.isRender,m=i.length;for(let f=0;f<s.length;++f){let y=s[f];u&&d.raiseEvent(y),ort(e,y,t),y.update(e,t,n),c.incrementSelectionCounts(y.content),++c.selected}let p=e._emptyTiles;for(let f=0;f<p.length;++f)p[f].update(e,t,n);let b=i.length-m;if(e._backfaceCommands.trim(),a){let f=e._backfaceCommands.values,y=f.length;i.length+=y;for(let _=b-1;_>=0;--_)i[m+y+_]=i[m+_];for(let _=0;_<y;++_)i[m+_]=f[_]}b=i.length-r,c.numberOfCommands=b,u&&(e.pointCloudShading.attenuation&&e.pointCloudShading.eyeDomeLighting&&b>0&&e._pointCloudEyeDomeLighting.update(t,r,e.pointCloudShading,e.boundingSphere),e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(l(e._tileDebugLabels)||(e._tileDebugLabels=new Tp),lrt(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var Xge=[];function urt(e,t){let n=t,i=Xge;for(i.push(t);i.length>0;){t=i.pop();let o=t.children;for(let r=0;r<o.length;++r)i.push(o[r]);t!==n&&(mrt(e,t),--e._statistics.numberOfTilesTotal)}n.children=[]}function Yge(e,t){e.tileUnload.raiseEvent(t),e._statistics.decrementLoadCounts(t.content),--e._statistics.numberOfTilesWithContentReady,t.unloadContent()}function mrt(e,t){e._cache.unloadTile(e,t,Yge),t.destroy()}nr.prototype.trimLoadedTiles=function(){this._cache.trim()};function hrt(e,t){let n=e._statistics,i=e._statisticsLast,o=n.numberOfPendingRequests,r=n.numberOfTilesProcessing,s=i.numberOfPendingRequests,a=i.numberOfTilesProcessing;nf.clone(n,i);let c=o!==s||r!==a;c&&t.afterRender.push(function(){return e.loadProgress.raiseEvent(o,r),!0}),e._tilesLoaded=n.numberOfPendingRequests===0&&n.numberOfTilesProcessing===0&&n.numberOfAttemptedRequests===0,c&&e._tilesLoaded&&(t.afterRender.push(function(){return e.allTilesLoaded.raiseEvent(),!0}),e._initialTilesLoaded||(e._initialTilesLoaded=!0,t.afterRender.push(function(){return e.initialTilesLoaded.raiseEvent(),!0})))}function frt(e){e._heatmap.resetMinimumMaximum(),e._minimumPriority.depth=Number.MAX_VALUE,e._maximumPriority.depth=-Number.MAX_VALUE,e._minimumPriority.foveatedFactor=Number.MAX_VALUE,e._maximumPriority.foveatedFactor=-Number.MAX_VALUE,e._minimumPriority.distance=Number.MAX_VALUE,e._maximumPriority.distance=-Number.MAX_VALUE,e._minimumPriority.reverseScreenSpaceError=Number.MAX_VALUE,e._maximumPriority.reverseScreenSpaceError=-Number.MAX_VALUE}function prt(e,t){t.frameNumber===e._updatedModelMatrixFrame&&l(e._previousModelMatrix)||(e._updatedModelMatrixFrame=t.frameNumber,e._modelMatrixChanged=!F.equals(e.modelMatrix,e._previousModelMatrix),e._modelMatrixChanged&&(e._previousModelMatrix=F.clone(e.modelMatrix,e._previousModelMatrix)))}function brt(e,t,n,i){if(t.mode===re.MORPHING||!l(e._root))return!1;let o=e._statistics;o.clear(),++e._updatedVisibilityFrame,frt(e),prt(e,t),e._cullRequestsWhileMoving=e.cullRequestsWhileMoving&&!e._modelMatrixChanged;let r=e.getTraversal(i).selectTiles(e,t);if(i.requestTiles&&$ot(e),drt(e,t,i),nf.clone(o,n),i.isRender){let s=e._credits;if(l(s)&&o.selected!==0)for(let a=0;a<s.length;++a){let c=s[a];t.creditDisplay.addCreditToNextFrame(c)}}return r}function Nge(e){let t=e._credits;l(t)||(t=[]),t.length=0,l(e.resource.credits)&&e.resource.credits.forEach(i=>{t.push(Rt.clone(i))});let n=e.asset.extras;if(l(n)&&l(n.cesium)&&l(n.cesium.credits)){let i=n.cesium.credits;for(let o=0;o<i.length;++o){let r=i[o];t.push(new Rt(r.html))}}t.forEach(i=>i.showOnScreen=i.showOnScreen||e._showCreditsOnScreen),e._credits=t}nr.prototype.getTraversal=function(e){let{pass:t}=e;return t===tr.MOST_DETAILED_PRELOAD||t===tr.MOST_DETAILED_PICK?qP:this.isSkippingLevelOfDetail?oX:tX};nr.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};nr.prototype.updateForPass=function(e,t){this.imageryLayers._update();let n=t.pass;if(n===tr.PRELOAD&&(!this.preloadWhenHidden||this.show)||n===tr.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||n===tr.REQUEST_RENDER_MODE_DEFER_CHECK&&(!this._cullRequestsWhileMoving&&this.foveatedTimeDelay<=0||!this.show))return;let i=e.commandList,o=e.camera,r=e.cullingVolume;t.ready=!1;let s=tr.getPassOptions(n),a=s.ignoreCommands,c=t.commandList??i,d=c.length;if(e.commandList=c,e.camera=t.camera??o,e.cullingVolume=t.cullingVolume??r,s.isRender){let p=this._environmentMapManager;l(this._root)&&(p.position=this.boundingSphere.center),p.update(e)}let u=this._clippingPolygons;l(u)&&u.enabled&&u.queueCommands(e);let m=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=brt(this,e,m,s)),a&&(c.length=d),e.commandList=i,e.camera=o,e.cullingVolume=r};nr.prototype.hasExtension=function(e){return l(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};nr.prototype.isDestroyed=function(){return!1};nr.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),l(this._root)){let e=Xge;for(e.push(this._root);e.length>0;){let t=e.pop();t.destroy();let n=t.children;for(let i=0;i<n.length;++i)e.push(n[i])}}return this._root=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,this._environmentMapManager.isDestroyed()||this._environmentMapManager.destroy(),this._environmentMapManager=void 0,this._imageryLayers.isDestroyed()||(this.imageryLayers.layerAdded.removeEventListener(this._imageryLayersListener),this.imageryLayers.layerRemoved.removeEventListener(this._imageryLayersListener),this.imageryLayers.layerMoved.removeEventListener(this._imageryLayersListener),this.imageryLayers.layerShownOrHidden.removeEventListener(this._imageryLayersListener),this._imageryLayers.destroy()),this._imageryLayers=void 0,he(this)};nr.supportedExtensions={"3DTILES_metadata":!0,"3DTILES_implicit_tiling":!0,"3DTILES_content_gltf":!0,"3DTILES_content_gltf_vector":!0,"3DTILES_multiple_contents":!0,"3DTILES_bounding_volume_S2":!0,"3DTILES_batch_table_hierarchy":!0,"3DTILES_draco_point_compression":!0,MAXAR_content_geojson:!0};nr.checkSupportedExtensions=function(e){for(let t=0;t<e.length;t++)if(!nr.supportedExtensions[e[t]])throw new ae(`Unsupported 3D Tiles Extension: ${e[t]}`)};var grt=new _n,yrt=new h,xrt=new fe;nr.prototype.getHeight=function(e,t){let n=t.ellipsoid;l(n)||(n=ie.WGS84);let i=grt,o=n.cartographicToCartesian(e,i.direction);h.normalize(i.direction,i.direction),i.direction=h.normalize(o,i.direction),i.direction=h.negate(o,i.direction),i.origin=h.multiplyByScalar(i.direction,-2*n.maximumRadius,i.origin);let r=this.pick(i,t.frameState,yrt);if(l(r))return n.cartesianToCartographic(r,xrt)?.height};nr.prototype.updateHeight=function(e,t,n){n=n??ie.WGS84;let i={positionCartographic:e,ellipsoid:n,callback:t,invoked:!1},o=()=>{let r=this._addHeightCallbacks,s=r.length;for(let a=0;a<s;++a)if(r[a]===i){r.splice(a,1);break}i.callback&&(i.callback=void 0)};return this._addHeightCallbacks.push(i),o};var Trt=new kr,_rt=new h;nr.prototype.pick=function(e,t,n){if(!t.context.webgl2&&!this._enablePick)return;let i=this._selectedTiles,o=i.length,r=[];for(let c=0;c<o;++c){let d=i[c],u=di.raySphere(e,d.contentBoundingVolume.boundingSphere,Trt);!l(u)||!l(d.content)||r.push(d)}let s=r.length;r.sort((c,d)=>{let u=ue.distanceSquaredTo(c.contentBoundingVolume.boundingSphere,e.origin),m=ue.distanceSquaredTo(d.contentBoundingVolume.boundingSphere,e.origin);return u-m});let a;for(let c=0;c<s;++c){let u=r[c].content.pick(e,t,_rt);if(l(u))return a=h.clone(u,n),a}};nr.prototype.isGltfExtensionUsed=function(e){if(this.hasExtension("3DTILES_content_gltf")){if(!l(this.extensions))return!1;let t=this.extensions["3DTILES_content_gltf"]?.extensionsUsed;return l(t)?t.indexOf(e)>-1:!1}return!1};nr.prototype.isGltfExtensionRequired=function(e){if(this.isGltfExtensionUsed(e)){let t=this.extensions["3DTILES_content_gltf"].extensionsRequired;return l(t)?t.indexOf(e)>-1:!1}return!1};var ms=nr;var Srt=new F;function jy(e,t){t.collectionChanged.addEventListener(jy.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._tilesetHash={},this._entitiesToVisualize=new wt,this._onCollectionChanged(t,t.values,[],[])}jy.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._tilesetHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._tileset,c,d=n[s.id],u=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),m;u&&(m=s.computeModelMatrix(e,Srt),c=We.createIfNeeded(j.getValueOrUndefined(a._uri,e)));let p=l(d)?d.tilesetPrimitive:void 0;if(!u){l(p)&&(p.show=!1);continue}(!l(d)||c.url!==d.url)&&(l(p)&&i.removeAndDestroy(p),delete n[s.id],Art(c,n,s,i)),l(p)&&(p.show=!0,l(m)&&(p.modelMatrix=m),p.maximumScreenSpaceError=j.getValueOrDefault(a.maximumScreenSpaceError,e,p.maximumScreenSpaceError))}return!0};jy.prototype.isDestroyed=function(){return!1};jy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(jy.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._tilesetHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)F7(this,e[i],t,n);return he(this)};jy.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!l(n)||n.loadFail)return Vt.FAILED;let i=n.tilesetPrimitive;return l(i)?i.show?(ue.clone(i.boundingSphere,t),Vt.DONE):Vt.FAILED:Vt.PENDING};jy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._tilesetHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._tileset)?s.set(r.id,r):(F7(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],F7(this,r,a,c),s.remove(r.id)};function F7(e,t,n,i){let o=n[t.id];l(o)&&(l(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function Art(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await ms.fromUrl(e);if(o.id=n,i.add(o),!l(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var rX=jy;var ppi=x(T(),1);var Zrt=U.WHITE,Crt=U.BLACK,Rrt=new k(2,2);function rR(e){e=e??B.EMPTY_OBJECT,this._definitionChanged=new Se,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}Object.defineProperties(rR.prototype,{isConstant:{get:function(){return j.isConstant(this._evenColor)&&j.isConstant(this._oddColor)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:xe("evenColor"),oddColor:xe("oddColor"),repeat:xe("repeat")});rR.prototype.getType=function(e){return"Checkerboard"};var Vrt=new Q;rR.prototype.getValue=function(e,t){return l(e)||(e=Q.now(Vrt)),l(t)||(t={}),t.lightColor=j.getValueOrClonedDefault(this._evenColor,e,Zrt,t.lightColor),t.darkColor=j.getValueOrClonedDefault(this._oddColor,e,Crt,t.darkColor),t.repeat=j.getValueOrDefault(this._repeat,e,Rrt),t};rR.prototype.equals=function(e){return this===e||e instanceof rR&&j.equals(this._evenColor,e._evenColor)&&j.equals(this._oddColor,e._oddColor)&&j.equals(this._repeat,e._repeat)};var sR=rR;var Fpi=x(T(),1);var Rpi=x(T(),1);var wge={id:void 0};function sX(e){if(e._firing){e._refire=!0;return}if(e._suspendCount===0){let t=e._addedEntities,n=e._removedEntities,i=e._changedEntities;if(i.length!==0||t.length!==0||n.length!==0){e._firing=!0;do{e._refire=!1;let o=t.values.slice(0),r=n.values.slice(0),s=i.values.slice(0);t.removeAll(),n.removeAll(),i.removeAll(),e._collectionChanged.raiseEvent(e,o,r,s)}while(e._refire);e._firing=!1}}}function el(e){this._owner=e,this._entities=new wt,this._addedEntities=new wt,this._removedEntities=new wt,this._changedEntities=new wt,this._suspendCount=0,this._collectionChanged=new Se,this._id=zn(),this._show=!0,this._firing=!1,this._refire=!1}el.prototype.suspendEvents=function(){this._suspendCount++};el.prototype.resumeEvents=function(){this._suspendCount--,sX(this)};Object.defineProperties(el.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e===this._show)return;this.suspendEvents();let t,n=[],i=this._entities.values,o=i.length;for(t=0;t<o;t++)n.push(i[t].isShowing);for(this._show=e,t=0;t<o;t++){let r=n[t],s=i[t];r!==s.isShowing&&s.definitionChanged.raiseEvent(s,"isShowing",s.isShowing,r)}this.resumeEvents()}},owner:{get:function(){return this._owner}}});el.prototype.computeAvailability=function(){let e=qe.MAXIMUM_VALUE,t=qe.MINIMUM_VALUE,n=this._entities.values;for(let i=0,o=n.length;i<o;i++){let s=n[i].availability;if(l(s)){let a=s.start,c=s.stop;Q.lessThan(a,e)&&!a.equals(qe.MINIMUM_VALUE)&&(e=a),Q.greaterThan(c,t)&&!c.equals(qe.MAXIMUM_VALUE)&&(t=c)}}return qe.MAXIMUM_VALUE.equals(e)&&(e=qe.MINIMUM_VALUE),qe.MINIMUM_VALUE.equals(t)&&(t=qe.MAXIMUM_VALUE),new Tn({start:e,stop:t})};el.prototype.add=function(e){e instanceof Oo||(e=new Oo(e));let t=e.id,n=this._entities;if(n.contains(t))throw new Te(`An entity with id ${t} already exists in this collection.`);return e.entityCollection=this,n.set(t,e),this._removedEntities.remove(t)||this._addedEntities.set(t,e),e.definitionChanged.addEventListener(el.prototype._onEntityDefinitionChanged,this),sX(this),e};el.prototype.remove=function(e){return l(e)?this.removeById(e.id):!1};el.prototype.contains=function(e){return this._entities.get(e.id)===e};el.prototype.removeById=function(e){if(!l(e))return!1;let n=this._entities.get(e);return this._entities.remove(e)?(this._addedEntities.remove(e)||(this._removedEntities.set(e,n),this._changedEntities.remove(e)),this._entities.remove(e),n.definitionChanged.removeEventListener(el.prototype._onEntityDefinitionChanged,this),sX(this),!0):!1};el.prototype.removeAll=function(){let e=this._entities,t=e.length,n=e.values,i=this._addedEntities,o=this._removedEntities;for(let r=0;r<t;r++){let s=n[r],a=s.id,c=i.get(a);l(c)||(s.definitionChanged.removeEventListener(el.prototype._onEntityDefinitionChanged,this),o.set(a,s))}e.removeAll(),i.removeAll(),this._changedEntities.removeAll(),sX(this)};el.prototype.getById=function(e){return this._entities.get(e)};el.prototype.getOrCreateEntity=function(e){let t=this._entities.get(e);return l(t)||(wge.id=e,t=new Oo(wge),this.add(t)),t};el.prototype._onEntityDefinitionChanged=function(e){let t=e.id;this._addedEntities.contains(t)||this._changedEntities.set(t,e),sX(this)};var Ia=el;var JD={id:void 0},aR=new Array(2);function I7(e){let t=e.propertyNames,n=t.length;for(let i=0;i<n;i++)e[t[i]]=void 0;e._name=void 0,e._availability=void 0}function Mge(e,t,n,i){aR[0]=n,aR[1]=i.id,t[JSON.stringify(aR)]=i.definitionChanged.addEventListener(hs.prototype._onDefinitionChanged,e)}function kge(e,t,n,i){aR[0]=n,aR[1]=i.id;let o=JSON.stringify(aR);t[o](),t[o]=void 0}function Qy(e){if(e._shouldRecomposite=!0,e._suspendCount!==0)return;let t=e._collections,n=t.length,i=e._collectionsCopy,o=i.length,r,s,a,c,d,u=e._composite,m=new Ia(e),p=e._eventHash,b;for(r=0;r<o;r++)for(d=i[r],d.collectionChanged.removeEventListener(hs.prototype._onCollectionChanged,e),a=d.values,b=d.id,c=a.length-1;c>-1;c--)s=a[c],kge(e,p,b,s);for(r=n-1;r>=0;r--)for(d=t[r],d.collectionChanged.addEventListener(hs.prototype._onCollectionChanged,e),a=d.values,b=d.id,c=a.length-1;c>-1;c--){s=a[c],Mge(e,p,b,s);let y=m.getById(s.id);l(y)||(y=u.getById(s.id),l(y)?I7(y):(JD.id=s.id,y=new Oo(JD)),m.add(y)),y.merge(s)}e._collectionsCopy=t.slice(0),u.suspendEvents(),u.removeAll();let f=m.values;for(r=0;r<f.length;r++)u.add(f[r]);u.resumeEvents()}function hs(e,t){this._owner=t,this._composite=new Ia(this),this._suspendCount=0,this._collections=l(e)?e.slice():[],this._collectionsCopy=[],this._id=zn(),this._eventHash={},Qy(this),this._shouldRecomposite=!1}Object.defineProperties(hs.prototype,{collectionChanged:{get:function(){return this._composite._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._composite.values}},owner:{get:function(){return this._owner}}});hs.prototype.addCollection=function(e,t){l(t)?this._collections.splice(t,0,e):(t=this._collections.length,this._collections.push(e)),Qy(this)};hs.prototype.removeCollection=function(e){let t=this._collections.indexOf(e);return t!==-1?(this._collections.splice(t,1),Qy(this),!0):!1};hs.prototype.removeAllCollections=function(){this._collections.length=0,Qy(this)};hs.prototype.containsCollection=function(e){return this._collections.indexOf(e)!==-1};hs.prototype.contains=function(e){return this._composite.contains(e)};hs.prototype.indexOfCollection=function(e){return this._collections.indexOf(e)};hs.prototype.getCollection=function(e){return this._collections[e]};hs.prototype.getCollectionsLength=function(){return this._collections.length};function jD(e,t){return e.indexOf(t)}function Uge(e,t,n){let i=e._collections;if(t=W.clamp(t,0,i.length-1),n=W.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,Qy(e)}hs.prototype.raiseCollection=function(e){let t=jD(this._collections,e);Uge(this,t,t+1)};hs.prototype.lowerCollection=function(e){let t=jD(this._collections,e);Uge(this,t,t-1)};hs.prototype.raiseCollectionToTop=function(e){let t=jD(this._collections,e);t!==this._collections.length-1&&(this._collections.splice(t,1),this._collections.push(e),Qy(this))};hs.prototype.lowerCollectionToBottom=function(e){let t=jD(this._collections,e);t!==0&&(this._collections.splice(t,1),this._collections.splice(0,0,e),Qy(this))};hs.prototype.suspendEvents=function(){this._suspendCount++,this._composite.suspendEvents()};hs.prototype.resumeEvents=function(){this._suspendCount--,this._shouldRecomposite&&this._suspendCount===0&&(Qy(this),this._shouldRecomposite=!1),this._composite.resumeEvents()};hs.prototype.computeAvailability=function(){return this._composite.computeAvailability()};hs.prototype.getById=function(e){return this._composite.getById(e)};hs.prototype._onCollectionChanged=function(e,t,n){let i=this._collectionsCopy,o=i.length,r=this._composite;r.suspendEvents();let s,a,c,d,u=n.length,m=this._eventHash,p=e.id;for(s=0;s<u;s++){let f=n[s];kge(this,m,p,f);let y=f.id;for(a=o-1;a>=0;a--)c=i[a].getById(y),l(c)&&(l(d)||(d=r.getById(y),I7(d)),d.merge(c));l(d)||r.removeById(y),d=void 0}let b=t.length;for(s=0;s<b;s++){let f=t[s];Mge(this,m,p,f);let y=f.id;for(a=o-1;a>=0;a--)c=i[a].getById(y),l(c)&&(l(d)||(d=r.getById(y),l(d)?I7(d):(JD.id=y,d=new Oo(JD),r.add(d))),d.merge(c));d=void 0}r.resumeEvents()};hs.prototype._onDefinitionChanged=function(e,t,n,i){let o=this._collections,r=this._composite,s=o.length,a=e.id,c=r.getById(a),d=c[t],u=!l(d),m=!0;for(let p=s-1;p>=0;p--){let b=o[p].getById(e.id);if(l(b)){let f=b[t];if(l(f)){if(m)if(m=!1,l(f.merge)&&l(f.clone))d=f.clone(d);else{d=f;break}d.merge(f)}}}u&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=d};var P7=hs;var a0i=x(T(),1);var e0i=x(T(),1);var Ppi=x(T(),1);function X7(){this._removalFunctions=[]}X7.prototype.add=function(e,t,n){let i=e.addEventListener(t,n);this._removalFunctions.push(i);let o=this;return function(){i();let r=o._removalFunctions;r.splice(r.indexOf(i),1)}};X7.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t<n;++t)e[t]();e.length=0};var Fr=X7;var zpi=x(T(),1);function w7(e,t){return Q.compare(e.start,t.start)}function fs(e){if(this._intervals=[],this._changedEvent=new Se,l(e)){let t=e.length;for(let n=0;n<t;n++)this.addInterval(e[n])}}Object.defineProperties(fs.prototype,{changedEvent:{get:function(){return this._changedEvent}},start:{get:function(){let e=this._intervals;return e.length===0?void 0:e[0].start}},isStartIncluded:{get:function(){let e=this._intervals;return e.length===0?!1:e[0].isStartIncluded}},stop:{get:function(){let e=this._intervals,t=e.length;return t===0?void 0:e[t-1].stop}},isStopIncluded:{get:function(){let e=this._intervals,t=e.length;return t===0?!1:e[t-1].isStopIncluded}},length:{get:function(){return this._intervals.length}},isEmpty:{get:function(){return this._intervals.length===0}}});fs.prototype.equals=function(e,t){if(this===e)return!0;if(!(e instanceof fs))return!1;let n=this._intervals,i=e._intervals,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;r++)if(!Tn.equals(n[r],i[r],t))return!1;return!0};fs.prototype.get=function(e){return this._intervals[e]};fs.prototype.removeAll=function(){this._intervals.length>0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};fs.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};fs.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};fs.prototype.contains=function(e){return this.indexOf(e)>=0};var Y7=new Tn;fs.prototype.indexOf=function(e){let t=this._intervals;Y7.start=e,Y7.stop=e;let n=xo(t,Y7,w7);return n>=0?t[n].isStartIncluded?n:n>0&&t[n-1].stop.equals(e)&&t[n-1].isStopIncluded?n-1:~n:(n=~n,n>0&&n-1<t.length&&Tn.contains(t[n-1],e)?n-1:~n)};fs.prototype.findInterval=function(e){e=e??B.EMPTY_OBJECT;let t=e.start,n=e.stop,i=e.isStartIncluded,o=e.isStopIncluded,r=this._intervals;for(let s=0,a=r.length;s<a;s++){let c=r[s];if((!l(t)||c.start.equals(t))&&(!l(n)||c.stop.equals(n))&&(!l(i)||c.isStartIncluded===i)&&(!l(o)||c.isStopIncluded===o))return r[s]}};fs.prototype.addInterval=function(e,t){if(e.isEmpty)return;let n=this._intervals;if(n.length===0||Q.greaterThan(e.start,n[n.length-1].stop)){n.push(e),this._changedEvent.raiseEvent(this);return}let i=xo(n,e,w7);i<0?i=~i:i>0&&e.isStartIncluded&&n[i-1].isStartIncluded&&n[i-1].start.equals(e.start)?--i:i<n.length&&!e.isStartIncluded&&n[i].isStartIncluded&&n[i].start.equals(e.start)&&++i;let o;for(i>0&&(o=Q.compare(n[i-1].stop,e.start),(o>0||o===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((l(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(Q.greaterThan(e.stop,n[i-1].stop)?e=new Tn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new Tn({start:n[i-1].start,stop:n[i-1].stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:n[i-1].isStopIncluded||e.stop.equals(n[i-1].stop)&&e.isStopIncluded,data:e.data}),n.splice(i-1,1),--i):(o=Q.compare(n[i-1].stop,e.stop),(o>0||o===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new Tn({start:e.stop,stop:n[i-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i-1].isStopIncluded,data:n[i-1].data})),n[i-1]=new Tn({start:n[i-1].start,stop:e.start,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:n[i-1].data}))));i<n.length&&(o=Q.compare(e.stop,n[i].start),o>0||o===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(l(t)?t(n[i].data,e.data):n[i].data===e.data)e=new Tn({start:e.start,stop:Q.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:Q.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new Tn({start:e.stop,stop:n[i].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i].isStopIncluded,data:n[i].data}),n[i].isEmpty)n.splice(i,1);else break;n.splice(i,0,e),this._changedEvent.raiseEvent(this)};fs.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=xo(t,e,w7);n<0&&(n=~n);let i=!1;for(n>0&&(Q.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(Q.greaterThan(t[n-1].stop,e.stop)||t[n-1].isStopIncluded&&!e.isStopIncluded&&t[n-1].stop.equals(e.stop))&&t.splice(n,0,new Tn({start:e.stop,stop:t[n-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n-1].isStopIncluded,data:t[n-1].data})),t[n-1]=new Tn({start:t[n-1].start,stop:e.start,isStartIncluded:t[n-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:t[n-1].data})),n<t.length&&!e.isStartIncluded&&t[n].isStartIncluded&&e.start.equals(t[n].start)&&(i=!0,t.splice(n,0,new Tn({start:t[n].start,stop:t[n].start,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data})),++n);n<t.length&&Q.greaterThan(e.stop,t[n].stop);)i=!0,t.splice(n,1);return n<t.length&&e.stop.equals(t[n].stop)&&(i=!0,!e.isStopIncluded&&t[n].isStopIncluded?n+1<t.length&&t[n+1].start.equals(e.stop)&&t[n].data===t[n+1].data?(t.splice(n,1),t[n]=new Tn({start:t[n].start,stop:t[n].stop,isStartIncluded:!0,isStopIncluded:t[n].isStopIncluded,data:t[n].data})):t[n]=new Tn({start:e.stop,stop:e.stop,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data}):t.splice(n,1)),n<t.length&&(Q.greaterThan(e.stop,t[n].start)||e.stop.equals(t[n].start)&&e.isStopIncluded&&t[n].isStartIncluded)&&(i=!0,t[n]=new Tn({start:e.stop,stop:t[n].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n].isStopIncluded,data:t[n].data})),i&&this._changedEvent.raiseEvent(this),i};fs.prototype.intersect=function(e,t,n){let i=new fs,o=0,r=0,s=this._intervals,a=e._intervals;for(;o<s.length&&r<a.length;){let c=s[o],d=a[r];if(Q.lessThan(c.stop,d.start))++o;else if(Q.lessThan(d.stop,c.start))++r;else{if(l(n)||l(t)&&t(c.data,d.data)||!l(t)&&d.data===c.data){let u=Tn.intersect(c,d,new Tn,n);u.isEmpty||i.addInterval(u,t)}Q.lessThan(c.stop,d.stop)||c.stop.equals(d.stop)&&!c.isStopIncluded&&d.isStopIncluded?++o:++r}}return i};fs.fromJulianDateArray=function(e,t){l(t)||(t=new fs);let n=e.julianDates,i=n.length,o=e.dataCallback,r=e.isStartIncluded??!0,s=e.isStopIncluded??!0,a=e.leadingInterval??!1,c=e.trailingInterval??!1,d,u=0;a&&(++u,d=new Tn({start:qe.MINIMUM_VALUE,stop:n[0],isStartIncluded:!0,isStopIncluded:!r}),d.data=l(o)?o(d,t.length):t.length,t.addInterval(d));for(let m=0;m<i-1;++m){let p=n[m],b=n[m+1];d=new Tn({start:p,stop:b,isStartIncluded:t.length===u?r:!0,isStopIncluded:m===i-2?s:!1}),d.data=l(o)?o(d,t.length):t.length,t.addInterval(d),p=b}return c&&(d=new Tn({start:n[i-1],stop:qe.MAXIMUM_VALUE,isStartIncluded:!s,isStopIncluded:!0}),d.data=l(o)?o(d,t.length):t.length,t.addInterval(d)),t};var tl=new x0,aX=[0,31,28,31,30,31,30,31,31,30,31,30,31];function N7(e,t,n){l(n)||(n=new Q),Q.toGregorianDate(e,tl);let i=tl.millisecond+t.millisecond,o=tl.second+t.second,r=tl.minute+t.minute,s=tl.hour+t.hour,a=tl.day+t.day,c=tl.month+t.month,d=tl.year+t.year;for(i>=1e3&&(o+=Math.floor(i/1e3),i=i%1e3),o>=60&&(r+=Math.floor(o/60),o=o%60),r>=60&&(s+=Math.floor(r/60),r=r%60),s>=24&&(a+=Math.floor(s/24),s=s%24),aX[2]=lh(d)?29:28;a>aX[c]||c>=13;)a>aX[c]&&(a-=aX[c],++c),c>=13&&(--c,d+=Math.floor(c/12),c=c%12,++c),aX[2]=lh(d)?29:28;return tl.millisecond=i,tl.second=o,tl.minute=r,tl.hour=s,tl.day=a,tl.month=c,tl.year=d,Q.fromGregorianDate(tl,n)}var Grt=new Q,Ert=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function Dge(e,t){if(!l(e)||e.length===0)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,e[0]==="P"){let n=e.match(Ert);if(!l(n))return!1;if(l(n[1])&&(t.year=Number(n[1].replace(",","."))),l(n[2])&&(t.month=Number(n[2].replace(",","."))),l(n[3])&&(t.day=Number(n[3].replace(",","."))*7),l(n[4])&&(t.day+=Number(n[4].replace(",","."))),l(n[5])&&(t.hour=Number(n[5].replace(",","."))),l(n[6])&&(t.minute=Number(n[6].replace(",","."))),l(n[7])){let i=Number(n[7].replace(",","."));t.second=Math.floor(i),t.millisecond=i%1*1e3}}else e[e.length-1]!=="Z"&&(e+="Z"),Q.toGregorianDate(Q.fromIso8601(e,Grt),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var cX=new x0;fs.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=Q.fromIso8601(n[0]),o=Q.fromIso8601(n[1]),r=[];if(!Dge(n[2],cX))r.push(i,o);else{let s=Q.clone(i);for(r.push(s);Q.compare(s,o)<0;)s=N7(s,cX),Q.compare(o,s)<=0&&Q.clone(o,s),r.push(s)}return fs.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};fs.fromIso8601DateArray=function(e,t){return fs.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return Q.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};fs.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,o=e.relativeToPrevious??!1,r=[],s,a,c=i.length;for(let d=0;d<c;++d)(Dge(i[d],cX)||d===0)&&(o&&l(a)?s=N7(a,cX):s=N7(n,cX),r.push(s),a=s);return fs.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};var ps=fs;function Lrt(e,t,n,i){function o(){n.raiseEvent(e)}let r=[];t.removeAll();let s=i.length;for(let a=0;a<s;a++){let c=i.get(a);l(c.data)&&r.indexOf(c.data)===-1&&t.add(c.data.definitionChanged,o)}}function $_(){this._eventHelper=new Fr,this._definitionChanged=new Se,this._intervals=new ps,this._intervals.changedEvent.addEventListener($_.prototype._intervalsChanged,this)}Object.defineProperties($_.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});var Wrt=new Q;$_.prototype.getValue=function(e,t){l(e)||(e=Q.now(Wrt));let n=this._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};$_.prototype.equals=function(e){return this===e||e instanceof $_&&this._intervals.equals(e._intervals,j.equals)};$_.prototype._intervalsChanged=function(){Lrt(this,this._eventHelper,this._definitionChanged,this._intervals),this._definitionChanged.raiseEvent(this)};var nl=$_;function qy(){this._definitionChanged=new Se,this._composite=new nl,this._composite.definitionChanged.addEventListener(qy.prototype._raiseDefinitionChanged,this)}Object.defineProperties(qy.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite._intervals}}});qy.prototype.getType=function(e){let t=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(t))return t.getType(e)};var vrt=new Q;qy.prototype.getValue=function(e,t){l(e)||(e=Q.now(vrt));let n=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};qy.prototype.equals=function(e){return this===e||e instanceof qy&&this._composite.equals(e._composite,j.equals)};qy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var cR=qy;var p0i=x(T(),1);function $y(e){this._referenceFrame=e??Pi.FIXED,this._definitionChanged=new Se,this._composite=new nl,this._composite.definitionChanged.addEventListener($y.prototype._raiseDefinitionChanged,this)}Object.defineProperties($y.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite.intervals}},referenceFrame:{get:function(){return this._referenceFrame},set:function(e){this._referenceFrame=e}}});var Frt=new Q;$y.prototype.getValue=function(e,t){return l(e)||(e=Q.now(Frt)),this.getValueInReferenceFrame(e,Pi.FIXED,t)};$y.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(i))return i.getValueInReferenceFrame(e,t,n)};$y.prototype.equals=function(e){return this===e||e instanceof $y&&this._referenceFrame===e._referenceFrame&&this._composite.equals(e._composite,j.equals)};$y.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var tc=$y;var dgi=x(T(),1);var dbi=x(T(),1);var g0i=x(T(),1),Oge={ROUNDED:0,MITERED:1,BEVELED:2};Object.freeze(Oge);var Ki=Oge;var U0i=x(T(),1);var v0i=x(T(),1);var nc=[new h,new h],Irt=new h,Prt=new h,Xrt=new h,Yrt=new h,Nrt=new h,wrt=new h,Mrt=new h,krt=new h,Urt=new h,lR=new h,QD=new h,lX={},M7=new fe;function Drt(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++){let o=e[i];M7=t.cartesianToCartographic(o,M7),n[i]=M7.height,e[i]=t.scaleToGeodeticSurface(o,o)}return n}function k7(e,t,n,i){let o=e[0],r=e[1],s=h.angleBetween(o,r),a=Math.ceil(s/i),c=new Array(a),d;if(t===n){for(d=0;d<a;d++)c[d]=t;return c.push(n),c}let m=(n-t)/a;for(d=1;d<a;d++){let p=t+d*m;c[d]=p}return c[0]=t,c.push(n),c}var qD=new h,$D=new h;function Ort(e,t,n,i){let o=new As(n,i),r=o.projectPointOntoPlane(h.add(n,e,qD),qD),s=o.projectPointOntoPlane(h.add(n,t,$D),$D),a=k.angleBetween(r,s);return s.x*r.y-s.y*r.x>=0?-a:a}var Brt=new h(-1,0,0),eS=new F,zrt=new F,U7=new $,Hrt=$.IDENTITY.clone(),Krt=new h,Jrt=new ce,Bge=new h;function Nb(e,t,n,i,o,r,s,a){let c=Krt,d=Jrt;eS=xt.eastNorthUpToFixedFrame(e,o,eS),c=F.multiplyByPointAsVector(eS,Brt,c),c=h.normalize(c,c);let u=Ort(c,t,e,o);U7=$.fromRotationZ(u,U7),Bge.z=r,eS=F.multiplyTransformation(eS,F.fromRotationTranslation(U7,Bge,zrt),eS);let m=Hrt;m[0]=s;for(let p=0;p<a;p++)for(let b=0;b<n.length;b+=3)d=h.fromArray(n,b,d),d=$.multiplyByVector(m,d,d),d=F.multiplyByPoint(eS,d,d),i.push(d.x,d.y,d.z);return i}var jrt=new h;function D7(e,t,n,i,o,r,s){for(let a=0;a<e.length;a+=3){let c=h.fromArray(e,a,jrt);i=Nb(c,t,n,i,o,r[a/3],s,1)}return i}function Qrt(e,t){let n=e.length,i=new Array(n*6),o=0,r=t.x+t.width/2,s=t.y+t.height/2,a=e[0];i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s;for(let c=1;c<n;c++){a=e[c];let d=a.x-r,u=a.y-s;i[o++]=d,i[o++]=0,i[o++]=u,i[o++]=d,i[o++]=0,i[o++]=u}return a=e[0],i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s,i}function zge(e,t){let n=e.length,i=new Array(n*3),o=0,r=t.x+t.width/2,s=t.y+t.height/2;for(let a=0;a<n;a++)i[o++]=e[a].x-r,i[o++]=0,i[o++]=e[a].y-s;return i}var Hge=new Ne,Kge=new h,Jge=new $;function jge(e,t,n,i,o,r,s,a,c,d){let u=h.angleBetween(h.subtract(t,e,lR),h.subtract(n,e,QD)),m=i===Ki.BEVELED?0:Math.ceil(u/W.toRadians(5)),p;o?p=$.fromQuaternion(Ne.fromAxisAngle(h.negate(e,lR),u/(m+1),Hge),Jge):p=$.fromQuaternion(Ne.fromAxisAngle(e,u/(m+1),Hge),Jge);let b,f;if(t=h.clone(t,Kge),m>0){let y=d?2:1;for(let _=0;_<m;_++)t=$.multiplyByVector(p,t,t),b=h.subtract(t,e,lR),b=h.normalize(b,b),o||(b=h.negate(b,b)),f=r.scaleToGeodeticSurface(t,QD),s=Nb(f,b,a,s,r,c,1,y)}else b=h.subtract(t,e,lR),b=h.normalize(b,b),o||(b=h.negate(b,b)),f=r.scaleToGeodeticSurface(t,QD),s=Nb(f,b,a,s,r,c,1,1),n=h.clone(n,Kge),b=h.subtract(n,e,lR),b=h.normalize(b,b),o||(b=h.negate(b,b)),f=r.scaleToGeodeticSurface(n,QD),s=Nb(f,b,a,s,r,c,1,1);return s}lX.removeDuplicatesFromShape=function(e){let t=e.length,n=[];for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];k.equals(r,s)||n.push(s)}return n};lX.angleIsGreaterThanPi=function(e,t,n,i){let o=new As(n,i),r=o.projectPointOntoPlane(h.add(n,e,qD),qD),s=o.projectPointOntoPlane(h.add(n,t,$D),$D);return s.x*r.y-s.y*r.x>=0};var qrt=new h,$rt=new h;lX.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=Drt(e,r),a=i._granularity,c=i._cornerType,d=o?Qrt(t,n):zge(t,n),u=o?zge(t,n):void 0,m=n.height/2,p=n.width/2,b=e.length,f=[],y=o?[]:void 0,_=Irt,S=Prt,A=Xrt,Z=Yrt,R=Nrt,G=wrt,E=Mrt,v=krt,I=Urt,X=e[0],Y=e[1];Z=r.geodeticSurfaceNormal(X,Z),_=h.subtract(Y,X,_),_=h.normalize(_,_),v=h.cross(Z,_,v),v=h.normalize(v,v);let g=s[0],C=s[1];o&&(y=Nb(X,v,u,y,r,g+m,1,1)),I=h.clone(X,I),X=Y,S=h.negate(_,S);let V,L;for(let O=1;O<b-1;O++){let M=o?2:1;if(Y=e[O+1],X.equals(Y)){_t("Positions are too close and are considered equivalent with rounding error.");continue}_=h.subtract(Y,X,_),_=h.normalize(_,_),Z=r.geodeticSurfaceNormal(X,Z);let D=h.multiplyByScalar(Z,h.dot(_,Z),qrt);h.subtract(_,D,D),h.normalize(D,D);let w=h.multiplyByScalar(Z,h.dot(S,Z),$rt);if(h.subtract(S,w,w),h.normalize(w,w),!W.equalsEpsilon(Math.abs(h.dot(D,w)),1,W.EPSILON7)){A=h.add(_,S,A),A=h.normalize(A,A),A=h.cross(A,Z,A),A=h.cross(Z,A,A),A=h.normalize(A,A);let K=1/Math.max(.25,h.magnitude(h.cross(A,S,lR))),ee=lX.angleIsGreaterThanPi(_,S,X,r);ee?(R=h.add(X,h.multiplyByScalar(A,K*p,A),R),G=h.add(R,h.multiplyByScalar(v,p,G),G),nc[0]=h.clone(I,nc[0]),nc[1]=h.clone(G,nc[1]),V=k7(nc,g+m,C+m,a),L=Hi.generateArc({positions:nc,granularity:a,ellipsoid:r}),f=D7(L,v,d,f,r,V,1),v=h.cross(Z,_,v),v=h.normalize(v,v),E=h.add(R,h.multiplyByScalar(v,p,E),E),c===Ki.ROUNDED||c===Ki.BEVELED?jge(R,G,E,c,ee,r,f,d,C+m,o):(A=h.negate(A,A),f=Nb(X,A,d,f,r,C+m,K,M)),I=h.clone(E,I)):(R=h.add(X,h.multiplyByScalar(A,K*p,A),R),G=h.add(R,h.multiplyByScalar(v,-p,G),G),nc[0]=h.clone(I,nc[0]),nc[1]=h.clone(G,nc[1]),V=k7(nc,g+m,C+m,a),L=Hi.generateArc({positions:nc,granularity:a,ellipsoid:r}),f=D7(L,v,d,f,r,V,1),v=h.cross(Z,_,v),v=h.normalize(v,v),E=h.add(R,h.multiplyByScalar(v,-p,E),E),c===Ki.ROUNDED||c===Ki.BEVELED?jge(R,G,E,c,ee,r,f,d,C+m,o):f=Nb(X,A,d,f,r,C+m,K,M),I=h.clone(E,I)),S=h.negate(_,S)}else f=Nb(I,v,d,f,r,g+m,1,1),I=X;g=C,C=s[O+1],X=Y}nc[0]=h.clone(I,nc[0]),nc[1]=h.clone(X,nc[1]),V=k7(nc,g+m,C+m,a),L=Hi.generateArc({positions:nc,granularity:a,ellipsoid:r}),f=D7(L,v,d,f,r,V,1),o&&(y=Nb(X,v,u,y,r,C+m,1,1)),b=f.length;let P=o?b+y.length:b,N=new Float64Array(P);return N.set(f),o&&N.set(y,b),N};var of=lX;var B7={},dR=new h,tye=new h,est=new h,Qge=new h,Bl=[new h,new h],nye=new h,iye=new h,oye=new h,tst=new h,nst=new h,ist=new h,ost=new h,rst=new h,sst=new h,ast=new h,qge=new Ne,$ge=new $;function eO(e,t,n,i,o){let r=h.angleBetween(h.subtract(t,e,dR),h.subtract(n,e,tye)),s=i===Ki.BEVELED?1:Math.ceil(r/W.toRadians(5))+1,a=s*3,c=new Array(a);c[a-3]=n.x,c[a-2]=n.y,c[a-1]=n.z;let d;o?d=$.fromQuaternion(Ne.fromAxisAngle(h.negate(e,dR),r/s,qge),$ge):d=$.fromQuaternion(Ne.fromAxisAngle(e,r/s,qge),$ge);let u=0;t=h.clone(t,dR);for(let m=0;m<s;m++)t=$.multiplyByVector(d,t,t),c[u++]=t.x,c[u++]=t.y,c[u++]=t.z;return c}function cst(e){let t=nye,n=iye,i=oye,o=e[1];n=h.fromArray(e[1],o.length-3,n),i=h.fromArray(e[0],0,i),t=h.midpoint(n,i,t);let r=eO(t,n,i,Ki.ROUNDED,!1),s=e.length-1,a=e[s-1];o=e[s],n=h.fromArray(a,a.length-3,n),i=h.fromArray(o,0,i),t=h.midpoint(n,i,t);let c=eO(t,n,i,Ki.ROUNDED,!1);return[r,c]}function eye(e,t,n,i){let o=dR;return i?o=h.add(e,t,o):(t=h.negate(t,t),o=h.add(e,t,o)),[o.x,o.y,o.z,n.x,n.y,n.z]}function O7(e,t,n,i){let o=new Array(e.length),r=new Array(e.length),s=h.multiplyByScalar(t,n,dR),a=h.negate(s,tye),c=0,d=e.length-1;for(let u=0;u<e.length;u+=3){let m=h.fromArray(e,u,est),p=h.add(m,a,Qge);o[c++]=p.x,o[c++]=p.y,o[c++]=p.z;let b=h.add(m,s,Qge);r[d--]=b.z,r[d--]=b.y,r[d--]=b.x}return i.push(o,r),i}B7.addAttribute=function(e,t,n,i){let o=t.x,r=t.y,s=t.z;l(n)&&(e[n]=o,e[n+1]=r,e[n+2]=s),l(i)&&(e[i]=s,e[i-1]=r,e[i-2]=o)};var lst=new h,dst=new h;B7.computePositions=function(e){let t=e.granularity,n=e.positions,i=e.ellipsoid,o=e.width/2,r=e.cornerType,s=e.saveAttributes,a=nye,c=iye,d=oye,u=tst,m=nst,p=ist,b=ost,f=rst,y=sst,_=ast,S=[],A=s?[]:void 0,Z=s?[]:void 0,R=n[0],G=n[1];c=h.normalize(h.subtract(G,R,c),c),a=i.geodeticSurfaceNormal(R,a),u=h.normalize(h.cross(a,c,u),u),s&&(A.push(u.x,u.y,u.z),Z.push(a.x,a.y,a.z)),b=h.clone(R,b),R=G,d=h.negate(c,d);let E,v=[],I,X=n.length;for(I=1;I<X-1;I++){a=i.geodeticSurfaceNormal(R,a),G=n[I+1],c=h.normalize(h.subtract(G,R,c),c);let g=h.multiplyByScalar(a,h.dot(c,a),lst);h.subtract(c,g,g),h.normalize(g,g);let C=h.multiplyByScalar(a,h.dot(d,a),dst);if(h.subtract(d,C,C),h.normalize(C,C),!W.equalsEpsilon(Math.abs(h.dot(g,C)),1,W.EPSILON7)){m=h.normalize(h.add(c,d,m),m),m=h.cross(m,a,m),m=h.cross(a,m,m),m=h.normalize(m,m);let L=o/Math.max(.25,h.magnitude(h.cross(m,d,dR))),P=of.angleIsGreaterThanPi(c,d,R,i);m=h.multiplyByScalar(m,L,m),P?(f=h.add(R,m,f),_=h.add(f,h.multiplyByScalar(u,o,_),_),y=h.add(f,h.multiplyByScalar(u,o*2,y),y),Bl[0]=h.clone(b,Bl[0]),Bl[1]=h.clone(_,Bl[1]),E=Hi.generateArc({positions:Bl,granularity:t,ellipsoid:i}),S=O7(E,u,o,S),s&&(A.push(u.x,u.y,u.z),Z.push(a.x,a.y,a.z)),p=h.clone(y,p),u=h.normalize(h.cross(a,c,u),u),y=h.add(f,h.multiplyByScalar(u,o*2,y),y),b=h.add(f,h.multiplyByScalar(u,o,b),b),r===Ki.ROUNDED||r===Ki.BEVELED?v.push({leftPositions:eO(f,p,y,r,P)}):v.push({leftPositions:eye(R,h.negate(m,m),y,P)})):(y=h.add(R,m,y),_=h.add(y,h.negate(h.multiplyByScalar(u,o,_),_),_),f=h.add(y,h.negate(h.multiplyByScalar(u,o*2,f),f),f),Bl[0]=h.clone(b,Bl[0]),Bl[1]=h.clone(_,Bl[1]),E=Hi.generateArc({positions:Bl,granularity:t,ellipsoid:i}),S=O7(E,u,o,S),s&&(A.push(u.x,u.y,u.z),Z.push(a.x,a.y,a.z)),p=h.clone(f,p),u=h.normalize(h.cross(a,c,u),u),f=h.add(y,h.negate(h.multiplyByScalar(u,o*2,f),f),f),b=h.add(y,h.negate(h.multiplyByScalar(u,o,b),b),b),r===Ki.ROUNDED||r===Ki.BEVELED?v.push({rightPositions:eO(y,p,f,r,P)}):v.push({rightPositions:eye(R,m,f,P)})),d=h.negate(c,d)}R=G}a=i.geodeticSurfaceNormal(R,a),Bl[0]=h.clone(b,Bl[0]),Bl[1]=h.clone(R,Bl[1]),E=Hi.generateArc({positions:Bl,granularity:t,ellipsoid:i}),S=O7(E,u,o,S),s&&(A.push(u.x,u.y,u.z),Z.push(a.x,a.y,a.z));let Y;return r===Ki.ROUNDED&&(Y=cst(S)),{positions:S,corners:v,lefts:A,normals:Z,endPositions:Y}};var oo=B7;var aye=new h,cye=new h,tO=new h,nO=new h,ust=new h,lye=new h,ex=new h,uR=new h;function dye(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function rf(e,t,n,i,o,r){let s=e.normals,a=e.tangents,c=e.bitangents,d=h.normalize(h.cross(n,t,ex),ex);r.normal&&oo.addAttribute(s,t,i,o),r.tangent&&oo.addAttribute(a,d,i,o),r.bitangent&&oo.addAttribute(c,n,i,o)}function uye(e,t,n){let i=e.positions,o=e.corners,r=e.endPositions,s=e.lefts,a=e.normals,c=new xn,d,u=0,m=0,p,b=0,f;for(p=0;p<i.length;p+=2)f=i[p].length-3,u+=f,b+=f*2,m+=i[p+1].length-3;for(u+=3,m+=3,p=0;p<o.length;p++){d=o[p];let q=o[p].leftPositions;l(q)?(f=q.length,u+=f,b+=f):(f=o[p].rightPositions.length,m+=f,b+=f)}let y=l(r),_;y&&(_=r[0].length-3,u+=_,m+=_,_/=3,b+=_*6);let S=u+m,A=new Float64Array(S),Z=t.normal?new Float32Array(S):void 0,R=t.tangent?new Float32Array(S):void 0,G=t.bitangent?new Float32Array(S):void 0,E={normals:Z,tangents:R,bitangents:G},v=0,I=S-1,X,Y,g,C,V=aye,L=cye,P,N,O=_/2,M=De.createTypedArray(S/3,b),D=0;if(y){N=tO,P=nO;let q=r[0];for(V=h.fromArray(a,0,V),L=h.fromArray(s,0,L),p=0;p<O;p++)N=h.fromArray(q,(O-1-p)*3,N),P=h.fromArray(q,(O+p)*3,P),oo.addAttribute(A,P,v),oo.addAttribute(A,N,void 0,I),rf(E,V,L,v,I,t),Y=v/3,C=Y+1,X=(I-2)/3,g=X-1,M[D++]=X,M[D++]=Y,M[D++]=g,M[D++]=g,M[D++]=Y,M[D++]=C,v+=3,I-=3}let w=0,z=0,K=i[w++],ee=i[w++];A.set(K,v),A.set(ee,I-ee.length+1),L=h.fromArray(s,z,L);let H,te;for(f=ee.length-3,p=0;p<f;p+=3)H=n.geodeticSurfaceNormal(h.fromArray(K,p,ex),ex),te=n.geodeticSurfaceNormal(h.fromArray(ee,f-p,uR),uR),V=h.normalize(h.add(H,te,V),V),rf(E,V,L,v,I,t),Y=v/3,C=Y+1,X=(I-2)/3,g=X-1,M[D++]=X,M[D++]=Y,M[D++]=g,M[D++]=g,M[D++]=Y,M[D++]=C,v+=3,I-=3;for(H=n.geodeticSurfaceNormal(h.fromArray(K,f,ex),ex),te=n.geodeticSurfaceNormal(h.fromArray(ee,f,uR),uR),V=h.normalize(h.add(H,te,V),V),z+=3,p=0;p<o.length;p++){let q;d=o[p];let de=d.leftPositions,ye=d.rightPositions,le,Ce,ge=lye,Ee=tO,Re=nO;if(V=h.fromArray(a,z,V),l(de)){for(rf(E,V,L,void 0,I,t),I-=3,le=C,Ce=g,q=0;q<de.length/3;q++)ge=h.fromArray(de,q*3,ge),M[D++]=le,M[D++]=Ce-q-1,M[D++]=Ce-q,oo.addAttribute(A,ge,void 0,I),Ee=h.fromArray(A,(Ce-q-1)*3,Ee),Re=h.fromArray(A,le*3,Re),L=h.normalize(h.subtract(Ee,Re,L),L),rf(E,V,L,void 0,I,t),I-=3;ge=h.fromArray(A,le*3,ge),Ee=h.subtract(h.fromArray(A,Ce*3,Ee),ge,Ee),Re=h.subtract(h.fromArray(A,(Ce-q)*3,Re),ge,Re),L=h.normalize(h.add(Ee,Re,L),L),rf(E,V,L,v,void 0,t),v+=3}else{for(rf(E,V,L,v,void 0,t),v+=3,le=g,Ce=C,q=0;q<ye.length/3;q++)ge=h.fromArray(ye,q*3,ge),M[D++]=le,M[D++]=Ce+q,M[D++]=Ce+q+1,oo.addAttribute(A,ge,v),Ee=h.fromArray(A,le*3,Ee),Re=h.fromArray(A,(Ce+q)*3,Re),L=h.normalize(h.subtract(Ee,Re,L),L),rf(E,V,L,v,void 0,t),v+=3;ge=h.fromArray(A,le*3,ge),Ee=h.subtract(h.fromArray(A,(Ce+q)*3,Ee),ge,Ee),Re=h.subtract(h.fromArray(A,Ce*3,Re),ge,Re),L=h.normalize(h.negate(h.add(Re,Ee,L),L),L),rf(E,V,L,void 0,I,t),I-=3}for(K=i[w++],ee=i[w++],K.splice(0,3),ee.splice(ee.length-3,3),A.set(K,v),A.set(ee,I-ee.length+1),f=ee.length-3,z+=3,L=h.fromArray(s,z,L),q=0;q<ee.length;q+=3)H=n.geodeticSurfaceNormal(h.fromArray(K,q,ex),ex),te=n.geodeticSurfaceNormal(h.fromArray(ee,f-q,uR),uR),V=h.normalize(h.add(H,te,V),V),rf(E,V,L,v,I,t),C=v/3,Y=C-1,g=(I-2)/3,X=g+1,M[D++]=X,M[D++]=Y,M[D++]=g,M[D++]=g,M[D++]=Y,M[D++]=C,v+=3,I-=3;v-=3,I+=3}if(V=h.fromArray(a,a.length-3,V),rf(E,V,L,v,I,t),y){v+=3,I-=3,N=tO,P=nO;let q=r[1];for(p=0;p<O;p++)N=h.fromArray(q,(_-p-1)*3,N),P=h.fromArray(q,p*3,P),oo.addAttribute(A,N,void 0,I),oo.addAttribute(A,P,v),rf(E,V,L,v,I,t),C=v/3,Y=C-1,g=(I-2)/3,X=g+1,M[D++]=X,M[D++]=Y,M[D++]=g,M[D++]=g,M[D++]=Y,M[D++]=C,v+=3,I-=3}if(c.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:A}),t.st){let q=new Float32Array(S/3*2),de,ye,le=0;if(y){u/=3,m/=3;let Ce=Math.PI/(_+1);ye=1/(u-_+1),de=1/(m-_+1);let ge,Ee=_/2;for(p=Ee+1;p<_+1;p++)ge=W.PI_OVER_TWO+Ce*p,q[le++]=de*(1+Math.cos(ge)),q[le++]=.5*(1+Math.sin(ge));for(p=1;p<m-_+1;p++)q[le++]=p*de,q[le++]=0;for(p=_;p>Ee;p--)ge=W.PI_OVER_TWO-p*Ce,q[le++]=1-de*(1+Math.cos(ge)),q[le++]=.5*(1+Math.sin(ge));for(p=Ee;p>0;p--)ge=W.PI_OVER_TWO-Ce*p,q[le++]=1-ye*(1+Math.cos(ge)),q[le++]=.5*(1+Math.sin(ge));for(p=u-_;p>0;p--)q[le++]=p*ye,q[le++]=1;for(p=1;p<Ee+1;p++)ge=W.PI_OVER_TWO+Ce*p,q[le++]=ye*(1+Math.cos(ge)),q[le++]=.5*(1+Math.sin(ge))}else{for(u/=3,m/=3,ye=1/(u-1),de=1/(m-1),p=0;p<m;p++)q[le++]=p*de,q[le++]=0;for(p=u;p>0;p--)q[le++]=(p-1)*ye,q[le++]=1}c.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:q})}return t.normal&&(c.normal=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:E.normals})),t.tangent&&(c.tangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:E.tangents})),t.bitangent&&(c.bitangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:E.bitangents})),{attributes:c,indices:M}}function mst(e,t){if(!t.normal&&!t.tangent&&!t.bitangent&&!t.st)return e;let n=e.position.values,i,o;(t.normal||t.bitangent)&&(i=e.normal.values,o=e.bitangent.values);let r=e.position.values.length/18,s=r*3,a=r*2,c=s*2,d;if(t.normal||t.bitangent||t.tangent){let u=t.normal?new Float32Array(s*6):void 0,m=t.tangent?new Float32Array(s*6):void 0,p=t.bitangent?new Float32Array(s*6):void 0,b=aye,f=cye,y=tO,_=nO,S=ust,A=lye,Z=c;for(d=0;d<s;d+=3){let R=Z+c;b=h.fromArray(n,d,b),f=h.fromArray(n,d+s,f),y=h.fromArray(n,(d+3)%s,y),f=h.subtract(f,b,f),y=h.subtract(y,b,y),_=h.normalize(h.cross(f,y,_),_),t.normal&&(oo.addAttribute(u,_,R),oo.addAttribute(u,_,R+3),oo.addAttribute(u,_,Z),oo.addAttribute(u,_,Z+3)),(t.tangent||t.bitangent)&&(A=h.fromArray(i,d,A),t.bitangent&&(oo.addAttribute(p,A,R),oo.addAttribute(p,A,R+3),oo.addAttribute(p,A,Z),oo.addAttribute(p,A,Z+3)),t.tangent&&(S=h.normalize(h.cross(A,_,S),S),oo.addAttribute(m,S,R),oo.addAttribute(m,S,R+3),oo.addAttribute(m,S,Z),oo.addAttribute(m,S,Z+3))),Z+=6}if(t.normal){for(u.set(i),d=0;d<s;d+=3)u[d+s]=-i[d],u[d+s+1]=-i[d+1],u[d+s+2]=-i[d+2];e.normal.values=u}else e.normal=void 0;if(t.bitangent?(p.set(o),p.set(o,s),e.bitangent.values=p):e.bitangent=void 0,t.tangent){let R=e.tangent.values;m.set(R),m.set(R,s),e.tangent.values=m}}if(t.st){let u=e.st.values,m=new Float32Array(a*6);m.set(u),m.set(u,a);let p=a*2;for(let b=0;b<2;b++){for(m[p++]=u[0],m[p++]=u[1],d=2;d<a;d+=2){let f=u[d],y=u[d+1];m[p++]=f,m[p++]=y,m[p++]=f,m[p++]=y}m[p++]=u[0],m[p++]=u[1]}e.st.values=m}return e}function z7(e,t,n){n[t++]=e[0],n[t++]=e[1],n[t++]=e[2];for(let i=3;i<e.length;i+=3){let o=e[i],r=e[i+1],s=e[i+2];n[t++]=o,n[t++]=r,n[t++]=s,n[t++]=o,n[t++]=r,n[t++]=s}return n[t++]=e[0],n[t++]=e[1],n[t++]=e[2],n}function hst(e,t){let n=new Me({position:t.position,normal:t.normal||t.bitangent||e.shadowVolume,tangent:t.tangent,bitangent:t.normal||t.bitangent,st:t.st}),i=e.ellipsoid,o=oo.computePositions(e),r=uye(o,n,i),s=e.height,a=e.extrudedHeight,c=r.attributes,d=r.indices,u=c.position.values,m=u.length,p=new Float64Array(m*6),b=new Float64Array(m);b.set(u);let f=new Float64Array(m*4);u=ri.scaleToGeodeticHeight(u,s,i),f=z7(u,0,f),b=ri.scaleToGeodeticHeight(b,a,i),f=z7(b,m*2,f),p.set(u),p.set(b,m),p.set(f,m*2),c.position.values=p,c=mst(c,t);let y,_=m/3;if(e.shadowVolume){let X=c.normal.values;m=X.length;let Y=new Float32Array(m*6);for(y=0;y<m;y++)X[y]=-X[y];Y.set(X,m),Y=z7(X,m*4,Y),c.extrudeDirection=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:Y}),t.normal||(c.normal=void 0)}if(l(e.offsetAttribute)){let X=new Uint8Array(_*6);if(e.offsetAttribute===hn.TOP)X=X.fill(1,0,_).fill(1,_*2,_*4);else{let Y=e.offsetAttribute===hn.NONE?0:1;X=X.fill(Y)}c.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:X})}let S=d.length,A=_+_,Z=De.createTypedArray(p.length/3,S*2+A*3);Z.set(d);let R=S;for(y=0;y<S;y+=3){let X=d[y],Y=d[y+1],g=d[y+2];Z[R++]=g+_,Z[R++]=Y+_,Z[R++]=X+_}let G,E,v,I;for(y=0;y<A;y+=2)G=y+A,E=G+A,v=G+1,I=E+1,Z[R++]=G,Z[R++]=E,Z[R++]=v,Z[R++]=v,Z[R++]=E,Z[R++]=I;return{attributes:c,indices:Z}}var rye=new h,dX=new h,Pm=new fe;function sye(e,t,n,i,o,r){let s=h.subtract(t,e,rye);h.normalize(s,s);let a=n.geodeticSurfaceNormal(e,dX),c=h.cross(s,a,rye);h.multiplyByScalar(c,i,c);let d=o.latitude,u=o.longitude,m=r.latitude,p=r.longitude;h.add(e,c,dX),n.cartesianToCartographic(dX,Pm);let b=Pm.latitude,f=Pm.longitude;d=Math.min(d,b),u=Math.min(u,f),m=Math.max(m,b),p=Math.max(p,f),h.subtract(e,c,dX),n.cartesianToCartographic(dX,Pm),b=Pm.latitude,f=Pm.longitude,d=Math.min(d,b),u=Math.min(u,f),m=Math.max(m,b),p=Math.max(p,f),o.latitude=d,o.longitude=u,r.latitude=m,r.longitude=p}var Im=new h,uX=new h,Ld=new fe,Wd=new fe;function mye(e,t,n,i,o){e=dye(e,t);let r=Co(e,h.equalsEpsilon),s=r.length;if(s<2||n<=0)return new se;let a=n*.5;Ld.latitude=Number.POSITIVE_INFINITY,Ld.longitude=Number.POSITIVE_INFINITY,Wd.latitude=Number.NEGATIVE_INFINITY,Wd.longitude=Number.NEGATIVE_INFINITY;let c,d;if(i===Ki.ROUNDED){let p=r[0];h.subtract(p,r[1],Im),h.normalize(Im,Im),h.multiplyByScalar(Im,a,Im),h.add(p,Im,uX),t.cartesianToCartographic(uX,Pm),c=Pm.latitude,d=Pm.longitude,Ld.latitude=Math.min(Ld.latitude,c),Ld.longitude=Math.min(Ld.longitude,d),Wd.latitude=Math.max(Wd.latitude,c),Wd.longitude=Math.max(Wd.longitude,d)}for(let p=0;p<s-1;++p)sye(r[p],r[p+1],t,a,Ld,Wd);let u=r[s-1];h.subtract(u,r[s-2],Im),h.normalize(Im,Im),h.multiplyByScalar(Im,a,Im),h.add(u,Im,uX),sye(u,uX,t,a,Ld,Wd),i===Ki.ROUNDED&&(t.cartesianToCartographic(uX,Pm),c=Pm.latitude,d=Pm.longitude,Ld.latitude=Math.min(Ld.latitude,c),Ld.longitude=Math.min(Ld.longitude,d),Wd.latitude=Math.max(Wd.latitude,c),Wd.longitude=Math.max(Wd.longitude,d));let m=l(o)?o:new se;return m.north=Wd.latitude,m.south=Ld.latitude,m.east=Wd.longitude,m.west=Ld.longitude,m}function Mb(e){e=e??B.EMPTY_OBJECT;let t=e.positions,n=e.width,i=e.height??0,o=e.extrudedHeight??i;this._positions=t,this._ellipsoid=ie.clone(e.ellipsoid??ie.default),this._vertexFormat=Me.clone(e.vertexFormat??Me.DEFAULT),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=e.cornerType??Ki.ROUNDED,this._granularity=e.granularity??W.RADIANS_PER_DEGREE,this._shadowVolume=e.shadowVolume??!1,this._workerName="createCorridorGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this.packedLength=1+t.length*h.packedLength+ie.packedLength+Me.packedLength+7}Mb.pack=function(e,t,n){n=n??0;let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=h.packedLength)h.pack(i[r],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Me.pack(e._vertexFormat,t,n),n+=Me.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n++]=e._shadowVolume?1:0,t[n]=e._offsetAttribute??-1,t};var hye=ie.clone(ie.UNIT_SPHERE),fye=new Me,wb={positions:void 0,ellipsoid:hye,vertexFormat:fye,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};Mb.unpack=function(e,t,n){t=t??0;let i=e[t++],o=new Array(i);for(let f=0;f<i;++f,t+=h.packedLength)o[f]=h.unpack(e,t);let r=ie.unpack(e,t,hye);t+=ie.packedLength;let s=Me.unpack(e,t,fye);t+=Me.packedLength;let a=e[t++],c=e[t++],d=e[t++],u=e[t++],m=e[t++],p=e[t++]===1,b=e[t];return l(n)?(n._positions=o,n._ellipsoid=ie.clone(r,n._ellipsoid),n._vertexFormat=Me.clone(s,n._vertexFormat),n._width=a,n._height=c,n._extrudedHeight=d,n._cornerType=u,n._granularity=m,n._shadowVolume=p,n._offsetAttribute=b===-1?void 0:b,n):(wb.positions=o,wb.width=a,wb.height=c,wb.extrudedHeight=d,wb.cornerType=u,wb.granularity=m,wb.shadowVolume=p,wb.offsetAttribute=b===-1?void 0:b,new Mb(wb))};Mb.computeRectangle=function(e,t){e=e??B.EMPTY_OBJECT;let n=e.positions,i=e.width,o=e.ellipsoid??ie.default,r=e.cornerType??Ki.ROUNDED;return mye(n,o,i,r,t)};Mb.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=dye(t,i);let o=Co(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!W.equalsEpsilon(r,s,0,W.EPSILON2),c=e._vertexFormat,d={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!0},u;if(a)d.height=r,d.extrudedHeight=s,d.shadowVolume=e._shadowVolume,d.offsetAttribute=e._offsetAttribute,u=hst(d,c);else{let b=oo.computePositions(d);if(u=uye(b,c,i),u.attributes.position.values=ri.scaleToGeodeticHeight(u.attributes.position.values,r,i),l(e._offsetAttribute)){let f=e._offsetAttribute===hn.NONE?0:1,y=u.attributes.position.values.length,_=new Uint8Array(y/3).fill(f);u.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:_})}}let m=u.attributes,p=ue.fromVertices(m.position.values,void 0,3);return c.position||(u.attributes.position.values=void 0),new Zt({attributes:m,indices:u.indices,primitiveType:ve.TRIANGLES,boundingSphere:p,offsetAttribute:e._offsetAttribute})};Mb.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Mb({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:o,granularity:i,extrudedHeight:r,height:s,vertexFormat:Me.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(Mb.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=mye(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var tS=Mb;var Ebi=x(T(),1);var pye=new h,bye=new h,fst=new h;function pst(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function gye(e,t){let n=[],i=e.positions,o=e.corners,r=e.endPositions,s=new xn,a,c=0,d=0,u,m=0,p;for(u=0;u<i.length;u+=2)p=i[u].length-3,c+=p,m+=p/3*4,d+=i[u+1].length-3;for(c+=3,d+=3,u=0;u<o.length;u++){a=o[u];let P=o[u].leftPositions;l(P)?(p=P.length,c+=p,m+=p/3*2):(p=o[u].rightPositions.length,d+=p,m+=p/3*2)}let b=l(r),f;b&&(f=r[0].length-3,c+=f,d+=f,f/=3,m+=f*4);let y=c+d,_=new Float64Array(y),S=0,A=y-1,Z,R,G,E,v,I,X=f/2,Y=De.createTypedArray(y/3,m+4),g=0;if(Y[g++]=S/3,Y[g++]=(A-2)/3,b){n.push(S/3),I=pye,v=bye;let P=r[0];for(u=0;u<X;u++)I=h.fromArray(P,(X-1-u)*3,I),v=h.fromArray(P,(X+u)*3,v),oo.addAttribute(_,v,S),oo.addAttribute(_,I,void 0,A),R=S/3,E=R+1,Z=(A-2)/3,G=Z-1,Y[g++]=Z,Y[g++]=G,Y[g++]=R,Y[g++]=E,S+=3,A-=3}let C=0,V=i[C++],L=i[C++];for(_.set(V,S),_.set(L,A-L.length+1),p=L.length-3,n.push(S/3,(A-2)/3),u=0;u<p;u+=3)R=S/3,E=R+1,Z=(A-2)/3,G=Z-1,Y[g++]=Z,Y[g++]=G,Y[g++]=R,Y[g++]=E,S+=3,A-=3;for(u=0;u<o.length;u++){let P;a=o[u];let N=a.leftPositions,O=a.rightPositions,M,D=fst;if(l(N)){for(A-=3,M=G,n.push(E),P=0;P<N.length/3;P++)D=h.fromArray(N,P*3,D),Y[g++]=M-P-1,Y[g++]=M-P,oo.addAttribute(_,D,void 0,A),A-=3;n.push(M-Math.floor(N.length/6)),t===Ki.BEVELED&&n.push((A-2)/3+1),S+=3}else{for(S+=3,M=E,n.push(G),P=0;P<O.length/3;P++)D=h.fromArray(O,P*3,D),Y[g++]=M+P,Y[g++]=M+P+1,oo.addAttribute(_,D,S),S+=3;n.push(M+Math.floor(O.length/6)),t===Ki.BEVELED&&n.push(S/3-1),A-=3}for(V=i[C++],L=i[C++],V.splice(0,3),L.splice(L.length-3,3),_.set(V,S),_.set(L,A-L.length+1),p=L.length-3,P=0;P<L.length;P+=3)E=S/3,R=E-1,G=(A-2)/3,Z=G+1,Y[g++]=Z,Y[g++]=G,Y[g++]=R,Y[g++]=E,S+=3,A-=3;S-=3,A+=3,n.push(S/3,(A-2)/3)}if(b){S+=3,A-=3,I=pye,v=bye;let P=r[1];for(u=0;u<X;u++)I=h.fromArray(P,(f-u-1)*3,I),v=h.fromArray(P,u*3,v),oo.addAttribute(_,I,void 0,A),oo.addAttribute(_,v,S),E=S/3,R=E-1,G=(A-2)/3,Z=G+1,Y[g++]=Z,Y[g++]=G,Y[g++]=R,Y[g++]=E,S+=3,A-=3;n.push(S/3)}else n.push(S/3,(A-2)/3);return Y[g++]=S/3,Y[g++]=(A-2)/3,s.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:_}),{attributes:s,indices:Y,wallIndices:n}}function bst(e){let t=e.ellipsoid,n=oo.computePositions(e),i=gye(n,e.cornerType),o=i.wallIndices,r=e.height,s=e.extrudedHeight,a=i.attributes,c=i.indices,d=a.position.values,u=d.length,m=new Float64Array(u);m.set(d);let p=new Float64Array(u*2);if(d=ri.scaleToGeodeticHeight(d,r,t),m=ri.scaleToGeodeticHeight(m,s,t),p.set(d),p.set(m,u),a.position.values=p,u/=3,l(e.offsetAttribute)){let Z=new Uint8Array(u*2);if(e.offsetAttribute===hn.TOP)Z=Z.fill(1,0,u);else{let R=e.offsetAttribute===hn.NONE?0:1;Z=Z.fill(R)}a.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:Z})}let b,f=c.length,y=De.createTypedArray(p.length/3,(f+o.length)*2);y.set(c);let _=f;for(b=0;b<f;b+=2){let Z=c[b],R=c[b+1];y[_++]=Z+u,y[_++]=R+u}let S,A;for(b=0;b<o.length;b++)S=o[b],A=S+u,y[_++]=S,y[_++]=A;return{attributes:a,indices:y}}function mX(e){e=e??B.EMPTY_OBJECT;let t=e.positions,n=e.width,i=e.height??0,o=e.extrudedHeight??i;this._positions=t,this._ellipsoid=ie.clone(e.ellipsoid??ie.default),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=e.cornerType??Ki.ROUNDED,this._granularity=e.granularity??W.RADIANS_PER_DEGREE,this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*h.packedLength+ie.packedLength+6}mX.pack=function(e,t,n){n=n??0;let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=h.packedLength)h.pack(i[r],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n]=e._offsetAttribute??-1,t};var yye=ie.clone(ie.UNIT_SPHERE),tx={positions:void 0,ellipsoid:yye,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};mX.unpack=function(e,t,n){t=t??0;let i=e[t++],o=new Array(i);for(let p=0;p<i;++p,t+=h.packedLength)o[p]=h.unpack(e,t);let r=ie.unpack(e,t,yye);t+=ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],d=e[t++],u=e[t++],m=e[t];return l(n)?(n._positions=o,n._ellipsoid=ie.clone(r,n._ellipsoid),n._width=s,n._height=a,n._extrudedHeight=c,n._cornerType=d,n._granularity=u,n._offsetAttribute=m===-1?void 0:m,n):(tx.positions=o,tx.width=s,tx.height=a,tx.extrudedHeight=c,tx.cornerType=d,tx.granularity=u,tx.offsetAttribute=m===-1?void 0:m,new mX(tx))};mX.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=pst(t,i);let o=Co(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!W.equalsEpsilon(r,s,0,W.EPSILON2),c={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!1},d;if(a)c.height=r,c.extrudedHeight=s,c.offsetAttribute=e._offsetAttribute,d=bst(c);else{let p=oo.computePositions(c);if(d=gye(p,c.cornerType),d.attributes.position.values=ri.scaleToGeodeticHeight(d.attributes.position.values,r,i),l(e._offsetAttribute)){let b=d.attributes.position.values.length,f=e._offsetAttribute===hn.NONE?0:1,y=new Uint8Array(b/3).fill(f);d.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:y})}}let u=d.attributes,m=ue.fromVertices(u.position.values,void 0,3);return new Zt({attributes:u,indices:d.indices,primitiveType:ve.LINES,boundingSphere:m,offsetAttribute:e._offsetAttribute})};var hX=mX;var kbi=x(T(),1);var gst=new li(0);function zl(e){Ai.call(this,e),this._zIndex=0,this._terrainOffsetProperty=void 0}l(Object.create)&&(zl.prototype=Object.create(Ai.prototype),zl.prototype.constructor=zl);Object.defineProperties(zl.prototype,{zIndex:{get:function(){return this._zIndex}},terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});zl.prototype._isOnTerrain=function(e,t){return this._fillEnabled&&!l(t.height)&&!l(t.extrudedHeight)&&Tl.isSupported(this._scene)};zl.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight;return t===0||l(n)&&n!==t};zl.prototype._computeCenter=Te.throwInstantiationError;zl.prototype._onEntityPropertyChanged=function(e,t,n,i){if(Ai.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(o.zIndex)&&(l(o.height)||l(o.extrudedHeight))&&_t(_t.geometryZIndex),this._zIndex=o.zIndex??gst,l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference,s=o.extrudedHeightReference;if(l(r)||l(s)){let a=new Rh(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new UT(this._scene,a,r,s)}};zl.prototype.destroy=function(){l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0),Ai.prototype.destroy.call(this)};zl.getGeometryHeight=function(e,t){if(!l(e)){t!==st.NONE&&_t(_t.geometryHeightReference);return}return im(t)?0:e};zl.getGeometryExtrudedHeight=function(e,t){if(!l(e)){t!==st.NONE&&_t(_t.geometryExtrudedHeightReference);return}return im(t)?zl.CLAMP_TO_GROUND:e};zl.CLAMP_TO_GROUND="clamp";zl.computeGeometryOffsetAttribute=function(e,t,n,i){(!l(e)||!l(t))&&(t=st.NONE),(!l(n)||!l(i))&&(i=st.NONE);let o=0;if(t!==st.NONE&&o++,i===st.RELATIVE_TO_GROUND&&o++,o===2)return hn.ALL;if(o===1)return hn.TOP};var ei=zl;var xye=new U,Tye=h.ZERO,_ye=new h,Sye=new se;function yst(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.cornerType=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.offsetAttribute=void 0}function sf(e,t){ei.call(this,{entity:e,scene:t,geometryOptions:new yst(e),geometryPropertyName:"corridor",observedPropertyNames:["availability","corridor"]}),this._onEntityPropertyChanged(e,"corridor",e.corridor,void 0)}l(Object.create)&&(sf.prototype=Object.create(ei.prototype),sf.prototype.constructor=sf);sf.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof jt){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,xye)),l(o)||(o=U.WHITE),i.color=qt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,Tye,_ye))),new Pt({id:t,geometry:new tS(this._options),attributes:i})};sf.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,U.BLACK,xye),o={show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0};return l(this._options.offsetAttribute)&&(o.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,Tye,_ye))),new Pt({id:t,geometry:new hX(this._options),attributes:o})};sf.prototype._computeCenter=function(e,t){let n=j.getValueOrUndefined(this._entity.corridor.positions,e);if(!(!l(n)||n.length===0))return h.clone(n[Math.floor(n.length/2)],t)};sf.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.width)||Ai.prototype._isHidden.call(this,e,t)};sf.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.width)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.cornerType)||!j.isConstant(t.zIndex)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof jt)};sf.prototype._setStaticOptions=function(e,t){let n=j.getValueOrUndefined(t.height,qe.MINIMUM_VALUE),i=j.getValueOrDefault(t.heightReference,qe.MINIMUM_VALUE,st.NONE),o=j.getValueOrUndefined(t.extrudedHeight,qe.MINIMUM_VALUE),r=j.getValueOrDefault(t.extrudedHeightReference,qe.MINIMUM_VALUE,st.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof jt?pn.VERTEX_FORMAT:bo.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(qe.MINIMUM_VALUE,s.positions),s.width=t.width.getValue(qe.MINIMUM_VALUE),s.granularity=j.getValueOrUndefined(t.granularity,qe.MINIMUM_VALUE),s.cornerType=j.getValueOrUndefined(t.cornerType,qe.MINIMUM_VALUE),s.offsetAttribute=ei.computeGeometryOffsetAttribute(n,i,o,r),s.height=ei.getGeometryHeight(n,i),o=ei.getGeometryExtrudedHeight(o,r),o===ei.CLAMP_TO_GROUND&&(o=Vi.getMinimumMaximumHeights(tS.computeRectangle(s,Sye)).minimumTerrainHeight),s.extrudedHeight=o};sf.DynamicGeometryUpdater=mR;function mR(e,t,n){Si.call(this,e,t,n)}l(Object.create)&&(mR.prototype=Object.create(Si.prototype),mR.prototype.constructor=mR);mR.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.positions)||!l(i.width)||Si.prototype._isHidden.call(this,e,t,n)};mR.prototype._setOptions=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,st.NONE),s=j.getValueOrUndefined(t.extrudedHeight,n),a=j.getValueOrDefault(t.extrudedHeightReference,n,st.NONE);l(s)&&!l(o)&&(o=0),i.positions=j.getValueOrUndefined(t.positions,n),i.width=j.getValueOrUndefined(t.width,n),i.granularity=j.getValueOrUndefined(t.granularity,n),i.cornerType=j.getValueOrUndefined(t.cornerType,n),i.offsetAttribute=ei.computeGeometryOffsetAttribute(o,r,s,a),i.height=ei.getGeometryHeight(o,r),s=ei.getGeometryExtrudedHeight(s,a),s===ei.CLAMP_TO_GROUND&&(s=Vi.getMinimumMaximumHeights(tS.computeRectangle(i,Sye)).minimumTerrainHeight),i.extrudedHeight=s};var fX=sf;var wyi=x(T(),1);var hgi=x(T(),1);function iO(){Te.throwInstantiationError()}Object.defineProperties(iO.prototype,{name:{get:Te.throwInstantiationError},clock:{get:Te.throwInstantiationError},entities:{get:Te.throwInstantiationError},isLoading:{get:Te.throwInstantiationError},changedEvent:{get:Te.throwInstantiationError},errorEvent:{get:Te.throwInstantiationError},loadingEvent:{get:Te.throwInstantiationError},show:{get:Te.throwInstantiationError},clustering:{get:Te.throwInstantiationError}});iO.prototype.update=function(e){Te.throwInstantiationError()};iO.setLoading=function(e,t){e._isLoading!==t&&(t?e._entityCollection.suspendEvents():e._entityCollection.resumeEvents(),e._isLoading=t,e._loading.raiseEvent(e,t))};var bs=iO;var Fyi=x(T(),1);var Tgi=x(T(),1);function Rp(e,t){this._ellipsoid=e,this._cameraPosition=new h,this._cameraPositionInScaledSpace=new h,this._distanceToLimbInScaledSpaceSquared=0,l(t)&&(this.cameraPosition=t)}Object.defineProperties(Rp.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=h.magnitudeSquared(n)-1;h.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=n,this._distanceToLimbInScaledSpaceSquared=i}}});var Aye=new h;Rp.prototype.isPointVisible=function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,Aye);return K7(n,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};Rp.prototype.isScaledSpacePointVisible=function(e){return K7(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var xst=new h;Rp.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){let n=this._ellipsoid,i,o;return l(t)&&t<0&&n.minimumRadius>-t?(o=xst,o.x=this._cameraPosition.x/(n.radii.x+t),o.y=this._cameraPosition.y/(n.radii.y+t),o.z=this._cameraPosition.z/(n.radii.z+t),i=o.x*o.x+o.y*o.y+o.z*o.z-1):(o=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),K7(e,o,i)};Rp.prototype.computeHorizonCullingPoint=function(e,t,n){return Rye(this._ellipsoid,e,t,n)};var Zye=ie.clone(ie.UNIT_SPHERE);Rp.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=Cye(this._ellipsoid,n,Zye);return Rye(o,e,t,i)};Rp.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return Vye(this._ellipsoid,e,t,n,i,o)};Rp.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=Cye(this._ellipsoid,o,Zye);return Vye(s,e,t,n,i,r)};var Tst=[];Rp.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=se.subsample(e,t,0,Tst),o=ue.fromPoints(i);if(!(h.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var _st=new h;function Cye(e,t,n){if(l(t)&&t<0&&e.minimumRadius>-t){let i=h.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,_st);e=ie.fromCartesian3(i,n)}return e}function Rye(e,t,n,i){l(i)||(i=new h);let o=Lye(e,t),r=0;for(let s=0,a=n.length;s<a;++s){let c=n[s],d=Gye(e,c,o);if(d<0)return;r=Math.max(r,d)}return Eye(o,r,i)}var oO=new h;function Vye(e,t,n,i,o,r){l(r)||(r=new h),i=i??3,o=o??h.ZERO;let s=Lye(e,t),a=0;for(let c=0,d=n.length;c<d;c+=i){oO.x=n[c]+o.x,oO.y=n[c+1]+o.y,oO.z=n[c+2]+o.z;let u=Gye(e,oO,s);if(u<0)return;a=Math.max(a,u)}return Eye(s,a,r)}function K7(e,t,n){let i=t,o=n,r=h.subtract(e,i,Aye),s=-h.dot(r,i);return!(o<0?s>0:s>o&&s*s/h.magnitudeSquared(r)>o)}var Sst=new h,Ast=new h;function Gye(e,t,n){let i=e.transformPositionToScaledSpace(t,Sst),o=h.magnitudeSquared(i),r=Math.sqrt(o),s=h.divideByScalar(i,r,Ast);o=Math.max(1,o),r=Math.max(1,r);let a=h.dot(s,n),c=h.magnitude(h.cross(s,n,s)),d=1/r,u=Math.sqrt(o-1)*d;return 1/(a*d-c*u)}function Eye(e,t,n){if(!(t<=0||t===1/0||t!==t))return h.multiplyByScalar(e,t,n)}var H7=new h;function Lye(e,t){return h.equals(t,h.ZERO)?t:(e.transformPositionToScaledSpace(t,H7),h.normalize(H7,H7))}var af=Rp;var Pgi=x(T(),1);function Jr(e,t){e=e??B.EMPTY_OBJECT;let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;l(n)&&(n=Bt.clone(n)),l(i)&&(i=Bt.clone(i)),l(o)&&(o=Ut.clone(o)),this._show=e.show??!0,this._position=h.clone(e.position??h.ZERO),this._actualPosition=h.clone(this._position),this._color=U.clone(e.color??U.WHITE),this._outlineColor=U.clone(e.outlineColor??U.TRANSPARENT),this._outlineWidth=e.outlineWidth??0,this._pixelSize=e.pixelSize??10,this._scaleByDistance=i,this._translucencyByDistance=n,this._distanceDisplayCondition=o,this._disableDepthTestDistance=e.disableDepthTestDistance??0,this._id=e.id,this._collection=e.collection??t,this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1,this._splitDirection=e.splitDirection??Gr.NONE}var Wye=Jr.SHOW_INDEX=0,Iye=Jr.POSITION_INDEX=1,Zst=Jr.COLOR_INDEX=2,Cst=Jr.OUTLINE_COLOR_INDEX=3,Rst=Jr.OUTLINE_WIDTH_INDEX=4,Vst=Jr.PIXEL_SIZE_INDEX=5,Gst=Jr.SCALE_BY_DISTANCE_INDEX=6,Est=Jr.TRANSLUCENCY_BY_DISTANCE_INDEX=7,Lst=Jr.DISTANCE_DISPLAY_CONDITION_INDEX=8,Wst=Jr.DISABLE_DEPTH_DISTANCE_INDEX=9,vst=Jr.SPLIT_DIRECTION_INDEX=10;Jr.NUMBER_OF_PROPERTIES=11;function Tu(e,t){let n=e._pointPrimitiveCollection;l(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(Jr.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Tu(this,Wye))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),Tu(this,Iye))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Bt.equals(t,e)||(this._scaleByDistance=Bt.clone(e,t),Tu(this,Gst))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Bt.equals(t,e)||(this._translucencyByDistance=Bt.clone(e,t),Tu(this,Est))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,Tu(this,Vst))}},color:{get:function(){return this._color},set:function(e){let t=this._color;U.equals(t,e)||(U.clone(e,t),Tu(this,Zst))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;U.equals(t,e)||(U.clone(e,t),Tu(this,Cst))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Tu(this,Rst))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Ut.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=Ut.clone(e,this._distanceDisplayCondition),Tu(this,Lst))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Tu(this,Wst))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Tu(this,Wye))}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,Tu(this,vst))}}});Jr.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};Jr.prototype._getActualPosition=function(){return this._actualPosition};Jr.prototype._setActualPosition=function(e){h.clone(e,this._actualPosition),Tu(this,Iye)};var vye=new ce;Jr._computeActualPosition=function(e,t,n){return t.mode===re.SCENE3D?e:(F.multiplyByPoint(n,e,vye),no.computeActualEllipsoidPosition(t,vye))};var Fye=new ce;Jr._computeScreenSpacePosition=function(e,t,n,i){let o=F.multiplyByVector(e,ce.fromElements(t.x,t.y,t.z,1,Fye),Fye);return no.worldToWindowCoordinates(n,o,i)};Jr.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;l(t)||(t=new k);let i=n.modelMatrix,o=Jr._computeScreenSpacePosition(i,this._actualPosition,e,t);if(l(o))return o.y=e.canvas.clientHeight-o.y,o};Jr.getScreenSpaceBoundingBox=function(e,t,n){let i=e.pixelSize,o=i*.5,r=t.x-o,s=t.y-o,a=i,c=i;return l(n)||(n=new it),n.x=r,n.y=s,n.width=a,n.height=c,n};Jr.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&U.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&U.equals(this._outlineColor,e._outlineColor)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Ut.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._splitDirection===e._splitDirection};Jr.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var pa=Jr;var hyi=x(T(),1);var Ygi=x(T(),1),nx=`in vec4 v_color; +in vec4 v_outlineColor; +in float v_innerPercent; +in float v_pixelDistance; +in vec4 v_pickColor; +in float v_splitDirection; + +void main() +{ + if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; + + // The distance in UV space from this fragment to the center of the point, at most 0.5. + float distanceToCenter = length(gl_PointCoord - vec2(0.5)); + // The max distance stops one pixel shy of the edge to leave space for anti-aliasing. + float maxDistance = max(0.0, 0.5 - v_pixelDistance); + float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter); + float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter); + + vec4 color = mix(v_outlineColor, v_color, innerAlpha); + color.a *= wholeAlpha; + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + + out_FragColor = czm_gammaCorrect(color); + czm_writeLogDepth(); +} +`;var wgi=x(T(),1),pX=`uniform float u_maxTotalPointSize; + +in vec4 positionHighAndSize; +in vec4 positionLowAndOutline; +in vec4 compressedAttribute0; // color, outlineColor, pick color +in vec4 compressedAttribute1; // show, translucency by distance, some free space +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 distanceDisplayConditionAndDisableDepthAndSplitDirection; // near, far, disableDepthTestDistance, splitDirection + +out vec4 v_color; +out vec4 v_outlineColor; +out float v_innerPercent; +out float v_pixelDistance; +out vec4 v_pickColor; +out float v_splitDirection; + +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; + +void main() +{ + // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndSize.xyz; + vec3 positionLow = positionLowAndOutline.xyz; + float outlineWidthBothSides = 2.0 * positionLowAndOutline.w; + float totalSize = positionHighAndSize.w + outlineWidthBothSides; + float outlinePercent = outlineWidthBothSides / totalSize; + // Scale in response to browser-zoom. + totalSize *= czm_pixelRatio; + + float temp = compressedAttribute1.x * SHIFT_RIGHT8; + float show = floor(temp); + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + + /////////////////////////////////////////////////////////////////////////// + + vec4 color = czm_decodeRGB8(compressedAttribute0.x); + vec4 outlineColor = czm_decodeRGB8(compressedAttribute0.y); + vec4 pickColor = czm_decodeRGB8(compressedAttribute0.z); + vec4 alphaPacked = czm_decodeRGB8(compressedAttribute0.w); + + color.a = alphaPacked.x; + outlineColor.a = alphaPacked.y; + pickColor.a = alphaPacked.z; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq); +#endif + if (totalSize > 0.0) { + // Add padding for anti-aliasing on both sides. + totalSize += 3.0; + } + + // Clamp to max point size. + totalSize = min(totalSize, u_maxTotalPointSize); + // If size is too small, push vertex behind near plane for clipping. + // Note that context.minimumAliasedPointSize "will be at most 1.0". + if (totalSize < 1.0) + { + positionEC.xyz = vec3(0.0); + totalSize = 1.0; + } + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency < 0.004) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = distanceDisplayConditionAndDisableDepthAndSplitDirection.x; + float farSq = distanceDisplayConditionAndDisableDepthAndSplitDirection.y; + if (lengthSq < nearSq || lengthSq > farSq) { + // push vertex behind camera to force it to be clipped + positionEC.xyz = vec3(0.0, 0.0, 1.0); + } +#endif + + gl_Position = czm_projection * positionEC; + czm_vertexLogDepth(); + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = distanceDisplayConditionAndDisableDepthAndSplitDirection.z; + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + czm_vertexLogDepth(vec4(czm_currentFrustum.x)); +#endif + } + } +#endif + + v_color = color; + v_color.a *= translucency * show; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency * show; + + v_innerPercent = 1.0 - outlinePercent; + v_pixelDistance = 2.0 / totalSize; + gl_PointSize = totalSize * show; + gl_Position *= show; + + v_pickColor = pickColor; + v_splitDirection = distanceDisplayConditionAndDisableDepthAndSplitDirection.w; +} +`;var Fst=pa.SHOW_INDEX,Q7=pa.POSITION_INDEX,Pye=pa.COLOR_INDEX,Ist=pa.OUTLINE_COLOR_INDEX,Pst=pa.OUTLINE_WIDTH_INDEX,Xst=pa.PIXEL_SIZE_INDEX,Xye=pa.SCALE_BY_DISTANCE_INDEX,Yye=pa.TRANSLUCENCY_BY_DISTANCE_INDEX,Nye=pa.DISTANCE_DISPLAY_CONDITION_INDEX,Yst=pa.DISABLE_DEPTH_DISTANCE_INDEX,Nst=pa.SPLIT_DIRECTION_INDEX,q7=pa.NUMBER_OF_PROPERTIES,il={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepthAndSplitDirection:5};function Xm(e){e=e??B.EMPTY_OBJECT,this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(q7),this._maxPixelSize=1,this._baseVolume=new ue,this._baseVolumeWC=new ue,this._baseVolume2D=new ue,this._boundingVolume=new ue,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=e.show??!0,this.modelMatrix=F.clone(e.modelMatrix??F.IDENTITY),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=e.debugShowBoundingVolume??!1,this.blendOption=e.blendOption??Wi.OPAQUE_AND_TRANSLUCENT,this._blendOption=void 0,this._mode=re.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties(Xm.prototype,{length:{get:function(){return $7(this),this._pointPrimitives.length}}});function wye(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Xm.prototype.add=function(e){let t=new pa(e,this);return t._index=this._pointPrimitives.length,this._pointPrimitives.push(t),this._createVertexArray=!0,t};Xm.prototype.remove=function(e){return this.contains(e)?(this._pointPrimitives[e._index]=null,this._pointPrimitivesRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Xm.prototype.removeAll=function(){wye(this._pointPrimitives),this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!0};function $7(e){if(e._pointPrimitivesRemoved){e._pointPrimitivesRemoved=!1;let t=[],n=e._pointPrimitives,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._pointPrimitives=t}}Xm.prototype._updatePointPrimitive=function(e,t){e._dirty||(this._pointPrimitivesToUpdate[this._pointPrimitivesToUpdateIndex++]=e),++this._propertiesChanged[t]};Xm.prototype.contains=function(e){return l(e)&&e._pointPrimitiveCollection===this};Xm.prototype.get=function(e){return $7(this),this._pointPrimitives[e]};Xm.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<q7;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function wst(e,t,n){return new yb(e,[{index:il.positionHighAndSize,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[Q7]},{index:il.positionLowAndShow,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[Q7]},{index:il.compressedAttribute0,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[Pye]},{index:il.compressedAttribute1,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[Yye]},{index:il.scaleByDistance,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[Xye]},{index:il.distanceDisplayConditionAndDisableDepthAndSplitDirection,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:n[Nye]}],t)}var J7=new Zn,rO=new U;function Mye(e,t,n,i){let o=i._index,r=i._getActualPosition();e._mode===re.SCENE3D&&(ue.expand(e._baseVolume,r,e._baseVolume),e._boundingVolumeDirty=!0),Zn.fromCartesian(r,J7);let s=i.pixelSize,a=i.outlineWidth;e._maxPixelSize=Math.max(e._maxPixelSize,s+a);let c=n[il.positionHighAndSize],d=J7.high;c(o,d.x,d.y,d.z,s);let u=n[il.positionLowAndOutline],m=J7.low;u(o,m.x,m.y,m.z,a)}var Mst=256;function kye(e,t,n,i){let o=i._index,r=i.color,s=i.outlineColor,a=i.getPickId(t).color;rO.red=r.alpha,rO.green=s.alpha,rO.blue=a.alpha;let c=n[il.compressedAttribute0];c(o,cn.encodeRGB8(r),cn.encodeRGB8(s),cn.encodeRGB8(a),cn.encodeRGB8(rO))}function Uye(e,t,n,i){let o=i._index,r=0,s=1,a=1,c=1,d=i.translucencyByDistance;l(d)&&(r=d.near,s=d.nearValue,a=d.far,c=d.farValue,(s!==1||c!==1)&&(e._shaderTranslucencyByDistance=!0));let u=i.show&&i.clusterShow;i.color.alpha===0&&i.outlineColor.alpha===0&&(u=!1),s=W.clamp(s,0,1),s=s===1?255:s*255|0;let m=(u?1:0)*Mst+s;c=W.clamp(c,0,1),c=c===1?255:c*255|0;let p=c,b=n[il.compressedAttribute1];b(o,m,p,r,a)}function Dye(e,t,n,i){let o=i._index,r=n[il.scaleByDistance],s=0,a=1,c=1,d=1,u=i.scaleByDistance;l(u)&&(s=u.near,a=u.nearValue,c=u.far,d=u.farValue,(a!==1||d!==1)&&(e._shaderScaleByDistance=!0)),r(o,s,a,c,d)}function Oye(e,t,n,i){let o=i._index,r=n[il.distanceDisplayConditionAndDisableDepthAndSplitDirection],s=0,a=Number.MAX_VALUE,c=i.distanceDisplayCondition;l(c)&&(s=c.near,a=c.far,s*=s,a*=a,e._shaderDistanceDisplayCondition=!0);let d=i.disableDepthTestDistance;d*=d,d>0&&(e._shaderDisableDepthDistance=!0,d===Number.POSITIVE_INFINITY&&(d=-1));let u=0,m=i.splitDirection;l(m)&&(u=m),r(o,s,a,d,u)}function kst(e,t,n,i){Mye(e,t,n,i),kye(e,t,n,i),Uye(e,t,n,i),Dye(e,t,n,i),Oye(e,t,n,i)}function j7(e,t,n,i,o,r){let s;i.mode===re.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let d=t[c],u=d.position,m=pa._computeActualPosition(u,i,o);l(m)&&(d._setActualPosition(m),r?a.push(m):ue.expand(s,m,s))}r&&ue.fromPoints(a,s)}function Ust(e,t){let n=t.mode,i=e._pointPrimitives,o=e._pointPrimitivesToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==re.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===re.SCENE3D||n===re.SCENE2D||n===re.COLUMBUS_VIEW)&&j7(e,i,i.length,t,r,!0)):n===re.MORPHING?j7(e,i,i.length,t,r,!0):(n===re.SCENE2D||n===re.COLUMBUS_VIEW)&&j7(e,o,e._pointPrimitivesToUpdateIndex,t,r,!1)}function Dst(e,t,n){let o=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*e._maxPixelSize;n.radius+=o}var Ost=[];Xm.prototype.update=function(e){if($7(this),!this.show)return;this._maxTotalPointSize=Xt.maximumAliasedPointSize,Ust(this,e);let n=this._pointPrimitives.length,i=this._pointPrimitivesToUpdate,o=this._pointPrimitivesToUpdateIndex,r=this._propertiesChanged,s=this._createVertexArray,a,c=e.context,d=e.passes,u=d.pick;if(s||!u&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let G=0;G<q7;++G)r[G]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=wst(c,n,this._buffersUsage),a=this._vaf.writers;for(let G=0;G<n;++G){let E=this._pointPrimitives[G];E._dirty=!1,kst(this,c,a,E)}this._vaf.commit()}this._pointPrimitivesToUpdateIndex=0}else if(o>0){let G=Ost;G.length=0,(r[Q7]||r[Pst]||r[Xst])&&G.push(Mye),(r[Pye]||r[Ist])&&G.push(kye),(r[Fst]||r[Yye])&&G.push(Uye),r[Xye]&&G.push(Dye),(r[Nye]||r[Yst]||r[Nst])&&G.push(Oye);let E=G.length;if(a=this._vaf.writers,o/n>.1){for(let v=0;v<o;++v){let I=i[v];I._dirty=!1;for(let X=0;X<E;++X)G[X](this,c,a,I)}this._vaf.commit()}else{for(let v=0;v<o;++v){let I=i[v];I._dirty=!1;for(let X=0;X<E;++X)G[X](this,c,a,I);this._vaf.subCommit(I._index,1)}this._vaf.endSubCommits()}this._pointPrimitivesToUpdateIndex=0}if(o>n*1.5&&(i.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ue.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let m,p=F.IDENTITY;e.mode===re.SCENE3D?(p=this.modelMatrix,m=ue.clone(this._baseVolumeWC,this._boundingVolume)):m=ue.clone(this._baseVolume2D,this._boundingVolume),Dst(this,e,m);let b=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,b&&(this._blendOption===Wi.OPAQUE||this._blendOption===Wi.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Be.fromCache({depthTest:{enabled:!0,func:ne.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===Wi.TRANSLUCENT||this._blendOption===Wi.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Be.fromCache({depthTest:{enabled:!0,func:ne.LEQUAL},depthMask:!1,blending:nn.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let f,y;(b||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(f=new He({sources:[pX]}),this._shaderScaleByDistance&&f.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&f.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&f.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&f.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===Wi.OPAQUE_AND_TRANSLUCENT&&(y=new He({defines:["OPAQUE"],sources:[nx]}),this._sp=tn.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:f,fragmentShaderSource:y,attributeLocations:il}),y=new He({defines:["TRANSLUCENT"],sources:[nx]}),this._spTranslucent=tn.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:f,fragmentShaderSource:y,attributeLocations:il})),this._blendOption===Wi.OPAQUE&&(y=new He({sources:[nx]}),this._sp=tn.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:f,fragmentShaderSource:y,attributeLocations:il})),this._blendOption===Wi.TRANSLUCENT&&(y=new He({sources:[nx]}),this._spTranslucent=tn.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:f,fragmentShaderSource:y,attributeLocations:il})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let _,S,A,Z,R=e.commandList;if(d.render||u){let G=this._colorCommands,E=this._blendOption===Wi.OPAQUE,v=this._blendOption===Wi.OPAQUE_AND_TRANSLUCENT;_=this._vaf.va,S=_.length,G.length=S;let I=v?S*2:S;for(Z=0;Z<I;++Z){let X=E||v&&Z%2===0;A=G[Z],l(A)||(A=G[Z]=new at),A.primitiveType=ve.POINTS,A.pass=X||!v?Le.OPAQUE:Le.TRANSLUCENT,A.owner=this;let Y=v?Math.floor(Z/2):Z;A.boundingVolume=m,A.modelMatrix=p,A.shaderProgram=X?this._sp:this._spTranslucent,A.uniformMap=this._uniforms,A.vertexArray=_[Y].va,A.renderState=X?this._rsOpaque:this._rsTranslucent,A.debugShowBoundingVolume=this.debugShowBoundingVolume,A.pickId="v_pickColor",R.push(A)}}};Xm.prototype.isDestroyed=function(){return!1};Xm.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),wye(this._pointPrimitives),he(this)};var hR=Xm;var pyi=x(T(),1),Bye=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],e6=1,bX=8,jr=new Uint32Array(96),yX=class e{static from(t){if(!t||t.byteLength===void 0||t.buffer)throw new Error("Data must be an instance of ArrayBuffer or SharedArrayBuffer.");let[n,i]=new Uint8Array(t,0,2);if(n!==219)throw new Error("Data does not appear to be in a KDBush format.");let o=i>>4;if(o!==e6)throw new Error(`Got v${o} data when expected v${e6}.`);let r=Bye[i&15];if(!r)throw new Error("Unrecognized array type.");let[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new e(a,s,r,void 0,t)}constructor(t,n=64,i=Float64Array,o=ArrayBuffer,r){if(isNaN(t)||t<0)throw new Error(`Unexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;let s=Bye.indexOf(this.ArrayType),a=t*2*this.ArrayType.BYTES_PER_ELEMENT,c=t*this.IndexArrayType.BYTES_PER_ELEMENT,d=(8-c%8)%8;if(s<0)throw new Error(`Unexpected typed array class: ${i}.`);if(r)this.data=r,this.ids=new this.IndexArrayType(r,bX,t),this.coords=new i(r,bX+c+d,t*2),this._pos=t*2,this._finished=!0;else{let u=this.data=new o(bX+a+c+d);this.ids=new this.IndexArrayType(u,bX,t),this.coords=new i(u,bX+c+d,t*2),this._pos=0,this._finished=!1,new Uint8Array(u,0,2).set([219,(e6<<4)+s]),new Uint16Array(u,2,1)[0]=n,new Uint32Array(u,4,1)[0]=t}}add(t,n){let i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=n,i}finish(){let t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return n6(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,n,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:s,nodeSize:a}=this;jr[0]=0,jr[1]=r.length-1,jr[2]=0;let c=3,d=[];for(;c>0;){let u=jr[--c],m=jr[--c],p=jr[--c];if(m-p<=a){for(let _=p;_<=m;_++){let S=s[2*_],A=s[2*_+1];S>=t&&S<=i&&A>=n&&A<=o&&d.push(r[_])}continue}let b=p+m>>1,f=s[2*b],y=s[2*b+1];f>=t&&f<=i&&y>=n&&y<=o&&d.push(r[b]),(u===0?t<=f:n<=y)&&(jr[c++]=p,jr[c++]=b-1,jr[c++]=1-u),(u===0?i>=f:o>=y)&&(jr[c++]=b+1,jr[c++]=m,jr[c++]=1-u)}return d}within(t,n,i){let o=[];return this.withinInto(t,n,i,o),o}withinInto(t,n,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:s,nodeSize:a}=this;jr[0]=0,jr[1]=r.length-1,jr[2]=0;let c=3,d=0,u=i*i;for(;c>0;){let m=jr[--c],p=jr[--c],b=jr[--c];if(p-b<=a){for(let S=b;S<=p;S++)zye(s[2*S],s[2*S+1],t,n)<=u&&(o[d++]=r[S]);continue}let f=b+p>>1,y=s[2*f],_=s[2*f+1];zye(y,_,t,n)<=u&&(o[d++]=r[f]),(m===0?t-i<=y:n-i<=_)&&(jr[c++]=b,jr[c++]=f-1,jr[c++]=1-m),(m===0?t+i>=y:n+i>=_)&&(jr[c++]=f+1,jr[c++]=p,jr[c++]=1-m)}return d}};function n6(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;Hye(e,t,s,i,o,r),n6(e,t,n,i,s-1,1-r),n6(e,t,n,s+1,o,1-r)}function Hye(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let d=o-i+1,u=n-i+1,m=Math.log(d),p=.5*Math.exp(2*m/3),b=.5*Math.sqrt(m*p*(d-p)/d)*(u-d/2<0?-1:1),f=Math.max(i,Math.floor(n-u*p/d+b)),y=Math.min(o,Math.floor(n+(d-u)*p/d+b));Hye(e,t,n,f,y,r)}let s=t[2*n+r],a=i,c=o;for(gX(e,t,i,n),t[2*o+r]>s&&gX(e,t,i,o);a<c;){for(gX(e,t,a,c),a++,c--;t[2*a+r]<s;)a++;for(;t[2*c+r]>s;)c--}t[2*i+r]===s?gX(e,t,i,c):(c++,gX(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function gX(e,t,n,i){t6(e,n,i),t6(t,2*n,2*i),t6(t,2*n+1,2*i+1)}function t6(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function zye(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function cf(e){e=e??B.EMPTY_OBJECT,this._enabled=e.enabled??!1,this._pixelRange=e.pixelRange??80,this._minimumClusterSize=e.minimumClusterSize??2,this._clusterBillboards=e.clusterBillboards??!0,this._clusterLabels=e.clusterLabels??!0,this._clusterPoints=e.clusterPoints??!0,this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new Se,this.show=e.show??!0}function Kye(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var Bst=new it;function Jye(e,t,n,i,o){if(l(e._labelCollection)&&i._clusterLabels?o=My.getScreenSpaceBoundingBox(e,t,o):l(e._billboardCollection)&&i._clusterBillboards?o=Go.getScreenSpaceBoundingBox(e,t,o):l(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=pa.getScreenSpaceBoundingBox(e,t,o)),Kye(o,n),i._clusterLabels&&!l(e._labelCollection)&&l(e.id)&&Qye(i,e.id.id)&&l(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=My.getScreenSpaceBoundingBox(s,t,Bst);Kye(a,n),o=it.union(o,a,o)}return o}function zst(e,t){if(e.clusterShow=!0,!l(e._labelCollection)&&l(e.id)&&Qye(t,e.id.id)&&l(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function jye(e,t,n,i){let o={billboard:i._clusterBillboardCollection.add(),label:i._clusterLabelCollection.add(),point:i._clusterPointCollection.add()};o.billboard.show=!1,o.point.show=!1,o.label.show=!0,o.label.text=t.toLocaleString(),o.label.id=n,o.billboard.position=o.label.position=o.point.position=e,i._clusterEvent.raiseEvent(n,o)}function Qye(e,t){return l(e)&&l(e._collectionIndicesByEntity[t])&&l(e._collectionIndicesByEntity[t].labelIndex)}function i6(e,t,n,i,o){if(!l(e))return;let r=e.length;for(let s=0;s<r;++s){let a=e.get(s);if(a.clusterShow=!1,!a.show||o._scene.mode===re.SCENE3D&&!i.isPointVisible(a.position))continue;let c=o._clusterLabels&&l(a._labelCollection),d=o._clusterBillboards&&l(a.id._billboard),u=o._clusterPoints&&l(a.id._point);if(c&&(u||d))continue;let m=a.computeScreenSpacePosition(n);l(m)&&t.push({index:s,collection:e,clustered:!1,coord:m})}}var Hst=new it,Kst=new it,Jst=new it;function jst(e){return function(t){if(l(t)&&t<.05||!e.enabled)return;let n=e._scene,i=e._labelCollection,o=e._billboardCollection,r=e._pointCollection;if(!l(i)&&!l(o)&&!l(r)||!e._clusterBillboards&&!e._clusterLabels&&!e._clusterPoints)return;let s=e._clusterLabelCollection,a=e._clusterBillboardCollection,c=e._clusterPointCollection;l(s)?s.removeAll():s=e._clusterLabelCollection=new Tp({scene:n}),l(a)?a.removeAll():a=e._clusterBillboardCollection=new bu({scene:n}),l(c)?c.removeAll():c=e._clusterPointCollection=new hR;let d=e._pixelRange,u=e._minimumClusterSize,m=e._previousClusters,p=[],b=e._previousHeight,f=n.camera.positionCartographic.height,y=n.ellipsoid,_=n.camera.positionWC,S=new af(y,_),A=[];e._clusterLabels&&i6(i,A,n,S,e),e._clusterBillboards&&i6(o,A,n,S,e),e._clusterPoints&&i6(r,A,n,S,e);let Z,R,G,E,v,I,X,Y,g,C,V,L;if(A.length>0){let P=new yX(A.length,64,Float64Array);for(let N=0;N<A.length;++N)P.add(A[N].coord.x,A[N].coord.y);if(P.finish(),f<b)for(G=m.length,Z=0;Z<G;++Z){let N=m[Z];if(!S.isPointVisible(N.position))continue;let O=Go._computeScreenSpacePosition(F.IDENTITY,N.position,h.ZERO,k.ZERO,n);if(!l(O))continue;let M=1-f/b,D=N.width=N.width*M,w=N.height=N.height*M;D=Math.max(D,N.minimumWidth),w=Math.max(w,N.minimumHeight);let z=O.x-D*.5,K=O.y-w*.5,ee=O.x+D,H=O.y+w;for(v=P.range(z,K,ee,H),I=v.length,C=0,g=[],R=0;R<I;++R)X=v[R],Y=A[X],Y.clustered||(++C,V=Y.collection,L=Y.index,g.push(V.get(L).id));if(C>=u)for(jye(N.position,C,g,e),p.push(N),R=0;R<I;++R)A[v[R]].clustered=!0}for(G=A.length,Z=0;Z<G;++Z){let N=A[Z];if(N.clustered)continue;N.clustered=!0,V=N.collection,L=N.index;let O=V.get(L);E=Jye(O,N.coord,d,e,Hst);let M=it.clone(E,Kst);v=P.range(E.x,E.y,E.x+E.width,E.y+E.height),I=v.length;let D=h.clone(O.position);for(C=1,g=[O.id],R=0;R<I;++R)if(X=v[R],Y=A[X],!Y.clustered){let w=Y.collection.get(Y.index),z=Jye(w,Y.coord,d,e,Jst);h.add(w.position,D,D),it.union(M,z,M),++C,g.push(w.id)}if(C>=u){let w=h.multiplyByScalar(D,1/C,D);for(jye(w,C,g,e),p.push({position:w,width:M.width,height:M.height,minimumWidth:E.width,minimumHeight:E.height}),R=0;R<I;++R)A[v[R]].clustered=!0}else zst(O,e)}}s.length===0&&(s.destroy(),e._clusterLabelCollection=void 0),a.length===0&&(a.destroy(),e._clusterBillboardCollection=void 0),c.length===0&&(c.destroy(),e._clusterPointCollection=void 0),e._previousClusters=p,e._previousHeight=f}}cf.prototype._initialize=function(e){this._scene=e;let t=jst(this);this._cluster=t,this._removeEventListener=e.camera.changed.addEventListener(t)};Object.defineProperties(cf.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabledDirty=e!==this._enabled,this._enabled=e}},pixelRange:{get:function(){return this._pixelRange},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._pixelRange,this._pixelRange=e}},minimumClusterSize:{get:function(){return this._minimumClusterSize},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._minimumClusterSize,this._minimumClusterSize=e}},clusterEvent:{get:function(){return this._clusterEvent}},clusterBillboards:{get:function(){return this._clusterBillboards},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterBillboards,this._clusterBillboards=e}},clusterLabels:{get:function(){return this._clusterLabels},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterLabels,this._clusterLabels=e}},clusterPoints:{get:function(){return this._clusterPoints},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterPoints,this._clusterPoints=e}},ready:{get:function(){return!this._enabledDirty&&!this._clusterDirty&&(!l(this._billboardCollection)||this._billboardCollection.ready)&&(!l(this._labelCollection)||this._labelCollection.ready)}}});function r6(e,t,n,i){return function(o){let r=this[e];l(this._collectionIndicesByEntity)||(this._collectionIndicesByEntity={});let s=this._collectionIndicesByEntity[o.id];if(l(s)||(s=this._collectionIndicesByEntity[o.id]={billboardIndex:void 0,labelIndex:void 0,pointIndex:void 0}),l(r)&&l(s[i]))return r.get(s[i]);l(r)||(r=this[e]=new t({scene:this._scene}));let a,c,d=this[n];d.length>0?(a=d.shift(),c=r.get(a)):(c=r.add(),a=r.length-1),s[i]=a;let u=this;return Promise.resolve().then(function(){u._clusterDirty=!0}),c}}function s6(e,t){let n=e._collectionIndicesByEntity[t];!l(n.billboardIndex)&&!l(n.labelIndex)&&!l(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}cf.prototype.getLabel=r6("_labelCollection",Tp,"_unusedLabelIndices","labelIndex");cf.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._labelCollection)||!l(t)||!l(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,s6(this,e.id);let i=this._labelCollection.get(n);i.show=!1,i.text="",i.id=void 0,this._unusedLabelIndices.push(n),this._clusterDirty=!0};cf.prototype.getBillboard=r6("_billboardCollection",bu,"_unusedBillboardIndices","billboardIndex");cf.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._billboardCollection)||!l(t)||!l(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,s6(this,e.id);let i=this._billboardCollection.get(n);i.id=void 0,i.show=!1,i.image=void 0,this._unusedBillboardIndices.push(n),this._clusterDirty=!0};cf.prototype.getPoint=r6("_pointCollection",hR,"_unusedPointIndices","pointIndex");cf.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._pointCollection)||!l(t)||!l(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,s6(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function o6(e){if(!l(e))return;let t=e.length;for(let n=0;n<t;++n)e.get(n).clusterShow=!0}function Qst(e){e.enabled||(l(e._clusterLabelCollection)&&e._clusterLabelCollection.destroy(),l(e._clusterBillboardCollection)&&e._clusterBillboardCollection.destroy(),l(e._clusterPointCollection)&&e._clusterPointCollection.destroy(),e._clusterLabelCollection=void 0,e._clusterBillboardCollection=void 0,e._clusterPointCollection=void 0,o6(e._labelCollection),o6(e._billboardCollection),o6(e._pointCollection))}cf.prototype.update=function(e){if(!this.show)return;let t,n=this._labelCollection;l(n)&&n.length>0&&!n.ready&&(t=e.commandList,e.commandList=[],n.update(e),e.commandList=t);let i=this._billboardCollection;l(i)&&i.length>0&&!i.ready&&(t=e.commandList,e.commandList=[],i.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,Qst(this),this._clusterDirty=!0),this._clusterDirty&&(this._cluster(),this._clusterDirty=l(n)&&!n.ready||l(i)&&!i.ready),l(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),l(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),l(this._clusterPointCollection)&&this._clusterPointCollection.update(e),l(n)&&n.update(e),l(i)&&i.update(e),l(this._pointCollection)&&this._pointCollection.update(e)};cf.prototype.destroy=function(){l(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1};var _u=cf;function a6(e){this._name=e,this._clock=void 0,this._changed=new Se,this._error=new Se,this._isLoading=!1,this._loading=new Se,this._entityCollection=new Ia(this),this._entityCluster=new _u}Object.defineProperties(a6.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){bs.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});a6.prototype.update=function(e){return!0};var xX=a6;var Uxi=x(T(),1);var rxi=x(T(),1);var Uyi=x(T(),1);var qye={};qye.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,d=new Float64Array(c*3),u,m=0,p=0,b=o?a*3:0,f=o?(a+i)*3:i*3;for(u=0;u<i;u++){let y=u/i*W.TWO_PI,_=Math.cos(y),S=Math.sin(y),A=_*n,Z=S*n,R=_*t,G=S*t;d[p+b]=A,d[p+b+1]=Z,d[p+b+2]=s,d[p+f]=R,d[p+f+1]=G,d[p+f+2]=r,p+=3,o&&(d[m++]=A,d[m++]=Z,d[m++]=s,d[m++]=R,d[m++]=G,d[m++]=r)}return d};var nS=qye;var c6=new k,qst=new h,$st=new h,eat=new h,tat=new h;function kb(e){e=e??B.EMPTY_OBJECT;let t=e.length,n=e.topRadius,i=e.bottomRadius,o=e.vertexFormat??Me.DEFAULT,r=e.slices??128;this._length=t,this._topRadius=n,this._bottomRadius=i,this._vertexFormat=Me.clone(o),this._slices=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}kb.packedLength=Me.packedLength+5;kb.pack=function(e,t,n){return n=n??0,Me.pack(e._vertexFormat,t,n),n+=Me.packedLength,t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n]=e._offsetAttribute??-1,t};var $ye=new Me,fR={vertexFormat:$ye,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};kb.unpack=function(e,t,n){t=t??0;let i=Me.unpack(e,t,$ye);t+=Me.packedLength;let o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._vertexFormat=Me.clone(i,n._vertexFormat),n._length=o,n._topRadius=r,n._bottomRadius=s,n._slices=a,n._offsetAttribute=c===-1?void 0:c,n):(fR.length=o,fR.topRadius=r,fR.bottomRadius=s,fR.slices=a,fR.offsetAttribute=c===-1?void 0:c,new kb(fR))};kb.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._vertexFormat,r=e._slices;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=r+r,a=r+s,c=s+s,d=nS.computePositions(t,n,i,r,!0),u=o.st?new Float32Array(c*2):void 0,m=o.normal?new Float32Array(c*3):void 0,p=o.tangent?new Float32Array(c*3):void 0,b=o.bitangent?new Float32Array(c*3):void 0,f,y=o.normal||o.tangent||o.bitangent;if(y){let v=o.tangent||o.bitangent,I=0,X=0,Y=0,g=Math.atan2(i-n,t),C=qst;C.z=Math.sin(g);let V=Math.cos(g),L=eat,P=$st;for(f=0;f<r;f++){let N=f/r*W.TWO_PI,O=V*Math.cos(N),M=V*Math.sin(N);y&&(C.x=O,C.y=M,v&&(L=h.normalize(h.cross(h.UNIT_Z,C,L),L)),o.normal&&(m[I++]=C.x,m[I++]=C.y,m[I++]=C.z,m[I++]=C.x,m[I++]=C.y,m[I++]=C.z),o.tangent&&(p[X++]=L.x,p[X++]=L.y,p[X++]=L.z,p[X++]=L.x,p[X++]=L.y,p[X++]=L.z),o.bitangent&&(P=h.normalize(h.cross(C,L,P),P),b[Y++]=P.x,b[Y++]=P.y,b[Y++]=P.z,b[Y++]=P.x,b[Y++]=P.y,b[Y++]=P.z))}for(f=0;f<r;f++)o.normal&&(m[I++]=0,m[I++]=0,m[I++]=-1),o.tangent&&(p[X++]=1,p[X++]=0,p[X++]=0),o.bitangent&&(b[Y++]=0,b[Y++]=-1,b[Y++]=0);for(f=0;f<r;f++)o.normal&&(m[I++]=0,m[I++]=0,m[I++]=1),o.tangent&&(p[X++]=1,p[X++]=0,p[X++]=0),o.bitangent&&(b[Y++]=0,b[Y++]=1,b[Y++]=0)}let _=12*r-12,S=De.createTypedArray(c,_),A=0,Z=0;for(f=0;f<r-1;f++)S[A++]=Z,S[A++]=Z+2,S[A++]=Z+3,S[A++]=Z,S[A++]=Z+3,S[A++]=Z+1,Z+=2;for(S[A++]=s-2,S[A++]=0,S[A++]=1,S[A++]=s-2,S[A++]=1,S[A++]=s-1,f=1;f<r-1;f++)S[A++]=s+f+1,S[A++]=s+f,S[A++]=s;for(f=1;f<r-1;f++)S[A++]=a,S[A++]=a+f,S[A++]=a+f+1;let R=0;if(o.st){let v=Math.max(n,i);for(f=0;f<c;f++){let I=h.fromArray(d,f*3,tat);u[R++]=(I.x+v)/(2*v),u[R++]=(I.y+v)/(2*v)}}let G=new xn;o.position&&(G.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:d})),o.normal&&(G.normal=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:m})),o.tangent&&(G.tangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:p})),o.bitangent&&(G.bitangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:b})),o.st&&(G.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:u})),c6.x=t*.5,c6.y=Math.max(i,n);let E=new ue(h.ZERO,k.magnitude(c6));if(l(e._offsetAttribute)){t=d.length;let v=e._offsetAttribute===hn.NONE?0:1,I=new Uint8Array(t/3).fill(v);G.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:I})}return new Zt({attributes:G,indices:S,primitiveType:ve.TRIANGLES,boundingSphere:E,offsetAttribute:e._offsetAttribute})};var l6;kb.getUnitCylinder=function(){return l(l6)||(l6=kb.createGeometry(new kb({topRadius:1,bottomRadius:1,length:1,vertexFormat:Me.POSITION_ONLY}))),l6};var TX=kb;var Txi=x(T(),1);var d6=new k;function pR(e){e=e??B.EMPTY_OBJECT;let t=e.length,n=e.topRadius,i=e.bottomRadius,o=e.slices??128,r=Math.max(e.numberOfVerticalLines??16,0);this._length=t,this._topRadius=n,this._bottomRadius=i,this._slices=o,this._numberOfVerticalLines=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}pR.packedLength=6;pR.pack=function(e,t,n){return n=n??0,t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n++]=e._numberOfVerticalLines,t[n]=e._offsetAttribute??-1,t};var iS={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};pR.unpack=function(e,t,n){t=t??0;let i=e[t++],o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._length=i,n._topRadius=o,n._bottomRadius=r,n._slices=s,n._numberOfVerticalLines=a,n._offsetAttribute=c===-1?void 0:c,n):(iS.length=i,iS.topRadius=o,iS.bottomRadius=r,iS.slices=s,iS.numberOfVerticalLines=a,iS.offsetAttribute=c===-1?void 0:c,new pR(iS))};pR.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._slices,r=e._numberOfVerticalLines;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=o*2,a=nS.computePositions(t,n,i,o,!1),c=o*2,d;if(r>0){let y=Math.min(r,o);d=Math.round(o/y),c+=y}let u=De.createTypedArray(s,c*2),m=0,p;for(p=0;p<o-1;p++)u[m++]=p,u[m++]=p+1,u[m++]=p+o,u[m++]=p+1+o;if(u[m++]=o-1,u[m++]=0,u[m++]=o+o-1,u[m++]=o,r>0)for(p=0;p<o;p+=d)u[m++]=p,u[m++]=p+o;let b=new xn;b.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:a}),d6.x=t*.5,d6.y=Math.max(i,n);let f=new ue(h.ZERO,k.magnitude(d6));if(l(e._offsetAttribute)){t=a.length;let y=e._offsetAttribute===hn.NONE?0:1,_=new Uint8Array(t/3).fill(y);b.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:_})}return new Zt({attributes:b,indices:u,primitiveType:ve.LINES,boundingSphere:f,offsetAttribute:e._offsetAttribute})};var _X=pR;var exe=h.ZERO,txe=new h,nat=new h,nxe=new U;function iat(e){this.id=e,this.vertexFormat=void 0,this.length=void 0,this.topRadius=void 0,this.bottomRadius=void 0,this.slices=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function Su(e,t){Ai.call(this,{entity:e,scene:t,geometryOptions:new iat(e),geometryPropertyName:"cylinder",observedPropertyNames:["availability","position","orientation","cylinder"]}),this._onEntityPropertyChanged(e,"cylinder",e.cylinder,void 0)}l(Object.create)&&(Su.prototype=Object.create(Ai.prototype),Su.prototype.constructor=Su);Object.defineProperties(Su.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Su.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=Bn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof jt){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,nxe)),l(a)||(a=U.WHITE),s.color=qt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,exe,txe))),new Pt({id:t,geometry:new TX(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.ellipsoid),attributes:s})};Su.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,U.BLACK,nxe),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,exe,txe))),new Pt({id:t,geometry:new _X(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.ellipsoid),attributes:r})};Su.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};Su.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.length)||!l(t.topRadius)||!l(t.bottomRadius)||Ai.prototype._isHidden.call(this,e,t)};Su.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.length.isConstant||!t.topRadius.isConstant||!t.bottomRadius.isConstant||!j.isConstant(t.slices)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.numberOfVerticalLines)};Su.prototype._setStaticOptions=function(e,t){let n=j.getValueOrDefault(t.heightReference,qe.MINIMUM_VALUE,st.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof jt?pn.VERTEX_FORMAT:bo.MaterialSupport.TEXTURED.vertexFormat,i.length=t.length.getValue(qe.MINIMUM_VALUE),i.topRadius=t.topRadius.getValue(qe.MINIMUM_VALUE),i.bottomRadius=t.bottomRadius.getValue(qe.MINIMUM_VALUE),i.slices=j.getValueOrUndefined(t.slices,qe.MINIMUM_VALUE),i.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,qe.MINIMUM_VALUE),i.offsetAttribute=n!==st.NONE?hn.ALL:void 0};Su.prototype._onEntityPropertyChanged=U0;Su.DynamicGeometryUpdater=bR;function bR(e,t,n){Si.call(this,e,t,n)}l(Object.create)&&(bR.prototype=Object.create(Si.prototype),bR.prototype.constructor=bR);bR.prototype._isHidden=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(e.position,n,nat);return!l(o)||!l(i.length)||!l(i.topRadius)||!l(i.bottomRadius)||Si.prototype._isHidden.call(this,e,t,n)};bR.prototype._setOptions=function(e,t,n){let i=j.getValueOrDefault(t.heightReference,n,st.NONE),o=this._options;o.length=j.getValueOrUndefined(t.length,n),o.topRadius=j.getValueOrUndefined(t.topRadius,n),o.bottomRadius=j.getValueOrUndefined(t.bottomRadius,n),o.slices=j.getValueOrUndefined(t.slices,n),o.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,n),o.offsetAttribute=i!==st.NONE?hn.ALL:void 0};var SX=Su;var BZi=x(T(),1);var Oxi=x(T(),1),ixe={UNBOUNDED:0,CLAMPED:1,LOOP_STOP:2};Object.freeze(ixe);var gs=ixe;var zxi=x(T(),1),oxe={TICK_DEPENDENT:0,SYSTEM_CLOCK_MULTIPLIER:1,SYSTEM_CLOCK:2};Object.freeze(oxe);var Io=oxe;var Kxi=x(T(),1),rxe={NONE:0,HOLD:1,EXTRAPOLATE:2};Object.freeze(rxe);var Au=rxe;var jxi=x(T(),1),sxe=x(qd(),1);function oat(e){let t=new sxe.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),n}var Ub=oat;var eTi=x(T(),1);var rat=W.factorial;function u6(e,t,n,i,o,r){let s=0,a,c,d;if(i>0){for(c=0;c<o;c++){for(a=!1,d=0;d<r.length&&!a;d++)c===r[d]&&(a=!0);a||(r.push(c),s+=u6(e,t,n,i-1,o,r),r.splice(r.length-1,1))}return s}for(s=1,c=0;c<o;c++){for(a=!1,d=0;d<r.length&&!a;d++)c===r[d]&&(a=!0);a||(s*=e-n[t[c]])}return s}var sO={type:"Hermite"};sO.getRequiredDataPoints=function(e,t){return t=t??0,Math.max(Math.floor((e+1)/(t+1)),2)};sO.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c,d,u,m=t.length,p=new Array(i);for(r=0;r<i;r++){o[r]=0;let _=new Array(m);for(p[r]=_,s=0;s<m;s++)_[s]=[]}let b=m,f=new Array(b);for(r=0;r<b;r++)f[r]=r;let y=m-1;for(c=0;c<i;c++){for(s=0;s<b;s++)u=f[s]*i+c,p[c][0].push(n[u]);for(r=1;r<b;r++){let _=!1;for(s=0;s<b-r;s++){let S=t[f[s]],A=t[f[s+r]],Z;A-S<=0?(u=f[s]*i+i*r+c,Z=n[u],p[c][r].push(Z/rat(r))):(Z=p[c][r-1][s+1]-p[c][r-1][s],p[c][r].push(Z/(A-S))),_=_||Z!==0}_||(y=r-1)}}for(a=0,d=0;a<=d;a++)for(r=a;r<=y;r++){let _=u6(e,f,t,a,r,[]);for(c=0;c<i;c++){let S=p[c][r][0];o[c+a*i]+=S*_}}return o};var sat=[];sO.interpolate=function(e,t,n,i,o,r,s){let a=i*(r+1);l(s)||(s=new Array(a));for(let S=0;S<a;S++)s[S]=0;let c=t.length,d=new Array(c*(o+1)),u;for(u=0;u<c;u++)for(let S=0;S<o+1;S++)d[u*(o+1)+S]=u;let m=d.length,p=sat,b=aat(p,d,t,n,i,o),f=[],y=m*(m+1)/2,_=Math.min(b,r);for(let S=0;S<=_;S++)for(u=S;u<=b;u++){f.length=0;let A=u6(e,d,t,S,u,f),Z=Math.floor(u*(1-u)/2)+m*u;for(let R=0;R<i;R++){let G=Math.floor(R*y),E=p[G+Z];s[R+S*i]+=E*A}}return s};function aat(e,t,n,i,o,r){let s,a,c=-1,d=t.length,u=d*(d+1)/2;for(let m=0;m<o;m++){let p=Math.floor(m*u);for(s=0;s<d;s++)a=t[s]*o*(r+1)+m,e[p+s]=i[a];for(let b=1;b<d;b++){let f=0,y=Math.floor(b*(1-b)/2)+d*b,_=!1;for(s=0;s<d-b;s++){let S=n[t[s]],A=n[t[s+b]],Z,R;if(A-S<=0)a=t[s]*o*(r+1)+o*b+m,Z=i[a],R=Z/W.factorial(b),e[p+y+f]=R,f++;else{let G=Math.floor((b-1)*(2-b)/2)+d*(b-1);Z=e[p+G+s+1]-e[p+G+s],R=Z/(A-S),e[p+y+f]=R,f++}_=_||Z!==0}_&&(c=Math.max(c,b))}}return c}var AX=sO;var iTi=x(T(),1);var m6={type:"Lagrange"};m6.getRequiredDataPoints=function(e){return Math.max(e+1,2)};m6.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a=t.length;for(r=0;r<i;r++)o[r]=0;for(r=0;r<a;r++){let c=1;for(s=0;s<a;s++)if(s!==r){let d=t[r]-t[s];c*=(e-t[s])/d}for(s=0;s<i;s++)o[s]+=c*n[r*i+s]}return o};var ZX=m6;var sTi=x(T(),1);var h6={type:"Linear"};h6.getRequiredDataPoints=function(e){return 2};h6.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c=t[0],d=t[1];for(r=0;r<i;r++)s=n[r],a=n[r+i],o[r]=((a-s)*e+d*s-c*a)/(d-c);return o};var oS=h6;var lTi=x(T(),1);function ol(e,t,n){this.clock=e??0,this.cone=t??0,this.magnitude=n??1}ol.fromCartesian3=function(e,t){let n=e.x,i=e.y,o=e.z,r=n*n+i*i;return l(t)||(t=new ol),t.clock=Math.atan2(i,n),t.cone=Math.atan2(Math.sqrt(r),o),t.magnitude=Math.sqrt(r+o*o),t};ol.clone=function(e,t){if(l(e))return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=e.magnitude,t):new ol(e.clock,e.cone,e.magnitude)};ol.normalize=function(e,t){return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=1,t):new ol(e.clock,e.cone,1)};ol.equals=function(e,t){return e===t||l(e)&&l(t)&&e.clock===t.clock&&e.cone===t.cone&&e.magnitude===t.magnitude};ol.equalsEpsilon=function(e,t,n){return n=n??0,e===t||l(e)&&l(t)&&Math.abs(e.clock-t.clock)<=n&&Math.abs(e.cone-t.cone)<=n&&Math.abs(e.magnitude-t.magnitude)<=n};ol.prototype.equals=function(e){return ol.equals(this,e)};ol.prototype.clone=function(e){return ol.clone(this,e)};ol.prototype.equalsEpsilon=function(e,t){return ol.equalsEpsilon(this,e,t)};ol.prototype.toString=function(){return`(${this.clock}, ${this.cone}, ${this.magnitude})`};var CX=ol;var LX=x(qd(),1);var VTi=x(T(),1);var TTi=x(T(),1);var uTi=x(T(),1),f6;typeof performance<"u"&&typeof performance.now=="function"&&isFinite(performance.now())?f6=function(){return performance.now()}:f6=function(){return Date.now()};var Ni=f6;function p6(e){e=e??B.EMPTY_OBJECT;let t=e.currentTime,n=e.startTime,i=e.stopTime;l(t)?t=Q.clone(t):l(n)?t=Q.clone(n):l(i)?t=Q.addDays(i,-1,new Q):t=Q.now(),l(n)?n=Q.clone(n):n=Q.clone(t),l(i)?i=Q.clone(i):i=Q.addDays(n,1,new Q),this.startTime=n,this.stopTime=i,this.clockRange=e.clockRange??gs.UNBOUNDED,this.canAnimate=e.canAnimate??!0,this.onTick=new Se,this.onStop=new Se,this._currentTime=void 0,this._multiplier=void 0,this._clockStep=void 0,this._shouldAnimate=void 0,this._lastSystemTime=Ni(),this.currentTime=t,this.multiplier=e.multiplier??1,this.shouldAnimate=e.shouldAnimate??!1,this.clockStep=e.clockStep??Io.SYSTEM_CLOCK_MULTIPLIER}Object.defineProperties(p6.prototype,{currentTime:{get:function(){return this._currentTime},set:function(e){Q.equals(this._currentTime,e)||(this._clockStep===Io.SYSTEM_CLOCK&&(this._clockStep=Io.SYSTEM_CLOCK_MULTIPLIER),this._currentTime=e)}},multiplier:{get:function(){return this._multiplier},set:function(e){this._multiplier!==e&&(this._clockStep===Io.SYSTEM_CLOCK&&(this._clockStep=Io.SYSTEM_CLOCK_MULTIPLIER),this._multiplier=e)}},clockStep:{get:function(){return this._clockStep},set:function(e){e===Io.SYSTEM_CLOCK&&(this._multiplier=1,this._shouldAnimate=!0,this._currentTime=Q.now()),this._clockStep=e}},shouldAnimate:{get:function(){return this._shouldAnimate},set:function(e){this._shouldAnimate!==e&&(this._clockStep===Io.SYSTEM_CLOCK&&(this._clockStep=Io.SYSTEM_CLOCK_MULTIPLIER),this._shouldAnimate=e)}}});p6.prototype.tick=function(){let e=Ni(),t=Q.clone(this._currentTime);if(this.canAnimate&&this._shouldAnimate){let n=this._clockStep;if(n===Io.SYSTEM_CLOCK)t=Q.now(t);else{let i=this._multiplier;if(n===Io.TICK_DEPENDENT)t=Q.addSeconds(t,i,t);else{let a=e-this._lastSystemTime;t=Q.addSeconds(t,i*(a/1e3),t)}let o=this.clockRange,r=this.startTime,s=this.stopTime;if(o===gs.CLAMPED)Q.lessThan(t,r)?t=Q.clone(r,t):Q.greaterThan(t,s)&&(t=Q.clone(s,t),this.onStop.raiseEvent(this));else if(o===gs.LOOP_STOP)for(Q.lessThan(t,r)&&(t=Q.clone(r,t));Q.greaterThan(t,s);)t=Q.addSeconds(r,Q.secondsDifference(t,s),t),this.onStop.raiseEvent(this)}}return this._currentTime=t,this._lastSystemTime=e,this.onTick.raiseEvent(this),t};var lf=p6;function rS(){this._definitionChanged=new Se,this._startTime=void 0,this._stopTime=void 0,this._currentTime=void 0,this._clockRange=void 0,this._clockStep=void 0,this._multiplier=void 0}Object.defineProperties(rS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},startTime:Zl("startTime"),stopTime:Zl("stopTime"),currentTime:Zl("currentTime"),clockRange:Zl("clockRange"),clockStep:Zl("clockStep"),multiplier:Zl("multiplier")});rS.prototype.clone=function(e){return l(e)||(e=new rS),e.startTime=this.startTime,e.stopTime=this.stopTime,e.currentTime=this.currentTime,e.clockRange=this.clockRange,e.clockStep=this.clockStep,e.multiplier=this.multiplier,e};rS.prototype.equals=function(e){return this===e||l(e)&&Q.equals(this.startTime,e.startTime)&&Q.equals(this.stopTime,e.stopTime)&&Q.equals(this.currentTime,e.currentTime)&&this.clockRange===e.clockRange&&this.clockStep===e.clockStep&&this.multiplier===e.multiplier};rS.prototype.merge=function(e){this.startTime=this.startTime??e.startTime,this.stopTime=this.stopTime??e.stopTime,this.currentTime=this.currentTime??e.currentTime,this.clockRange=this.clockRange??e.clockRange,this.clockStep=this.clockStep??e.clockStep,this.multiplier=this.multiplier??e.multiplier};rS.prototype.getValue=function(e){return l(e)||(e=new lf),e.startTime=this.startTime??e.startTime,e.stopTime=this.stopTime??e.stopTime,e.currentTime=this.currentTime??e.currentTime,e.clockRange=this.clockRange??e.clockRange,e.multiplier=this.multiplier??e.multiplier,e.clockStep=this.clockStep??e.clockStep,e};var df=rS;var YTi=x(T(),1);var cat=U.WHITE,lat=.1,dat=new k(8,8),uat=new k(0,0),mat=new k(1,1);function gR(e){e=e??B.EMPTY_OBJECT,this._definitionChanged=new Se,this._color=void 0,this._colorSubscription=void 0,this._cellAlpha=void 0,this._cellAlphaSubscription=void 0,this._lineCount=void 0,this._lineCountSubscription=void 0,this._lineThickness=void 0,this._lineThicknessSubscription=void 0,this._lineOffset=void 0,this._lineOffsetSubscription=void 0,this.color=e.color,this.cellAlpha=e.cellAlpha,this.lineCount=e.lineCount,this.lineThickness=e.lineThickness,this.lineOffset=e.lineOffset}Object.defineProperties(gR.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._cellAlpha)&&j.isConstant(this._lineCount)&&j.isConstant(this._lineThickness)&&j.isConstant(this._lineOffset)}},definitionChanged:{get:function(){return this._definitionChanged}},color:xe("color"),cellAlpha:xe("cellAlpha"),lineCount:xe("lineCount"),lineThickness:xe("lineThickness"),lineOffset:xe("lineOffset")});gR.prototype.getType=function(e){return"Grid"};var hat=new Q;gR.prototype.getValue=function(e,t){return l(e)||(e=Q.now(hat)),l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,cat,t.color),t.cellAlpha=j.getValueOrDefault(this._cellAlpha,e,lat),t.lineCount=j.getValueOrClonedDefault(this._lineCount,e,dat,t.lineCount),t.lineThickness=j.getValueOrClonedDefault(this._lineThickness,e,mat,t.lineThickness),t.lineOffset=j.getValueOrClonedDefault(this._lineOffset,e,uat,t.lineOffset),t};gR.prototype.equals=function(e){return this===e||e instanceof gR&&j.equals(this._color,e._color)&&j.equals(this._cellAlpha,e._cellAlpha)&&j.equals(this._lineCount,e._lineCount)&&j.equals(this._lineThickness,e._lineThickness)&&j.equals(this._lineOffset,e._lineOffset)};var yR=gR;var wTi=x(T(),1),axe={WHOLE:0,PORTIONS:1};Object.freeze(axe);var Db=axe;var HTi=x(T(),1);function xR(e){this._definitionChanged=new Se,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(xR.prototype,{isConstant:{get:function(){return j.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:xe("color")});xR.prototype.getType=function(e){return"PolylineArrow"};var fat=new Q;xR.prototype.getValue=function(e,t){return l(e)||(e=Q.now(fat)),l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,U.WHITE,t.color),t};xR.prototype.equals=function(e){return this===e||e instanceof xR&&j.equals(this._color,e._color)};var TR=xR;var n_i=x(T(),1);var pat=U.WHITE,bat=U.TRANSPARENT,gat=16,yat=255;function _R(e){e=e??B.EMPTY_OBJECT,this._definitionChanged=new Se,this._color=void 0,this._colorSubscription=void 0,this._gapColor=void 0,this._gapColorSubscription=void 0,this._dashLength=void 0,this._dashLengthSubscription=void 0,this._dashPattern=void 0,this._dashPatternSubscription=void 0,this.color=e.color,this.gapColor=e.gapColor,this.dashLength=e.dashLength,this.dashPattern=e.dashPattern}Object.defineProperties(_R.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._gapColor)&&j.isConstant(this._dashLength)&&j.isConstant(this._dashPattern)}},definitionChanged:{get:function(){return this._definitionChanged}},color:xe("color"),gapColor:xe("gapColor"),dashLength:xe("dashLength"),dashPattern:xe("dashPattern")});_R.prototype.getType=function(e){return"PolylineDash"};var xat=new Q;_R.prototype.getValue=function(e,t){return l(e)||(e=Q.now(xat)),l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,pat,t.color),t.gapColor=j.getValueOrClonedDefault(this._gapColor,e,bat,t.gapColor),t.dashLength=j.getValueOrDefault(this._dashLength,e,gat,t.dashLength),t.dashPattern=j.getValueOrDefault(this._dashPattern,e,yat,t.dashPattern),t};_R.prototype.equals=function(e){return this===e||e instanceof _R&&j.equals(this._color,e._color)&&j.equals(this._gapColor,e._gapColor)&&j.equals(this._dashLength,e._dashLength)&&j.equals(this._dashPattern,e._dashPattern)};var SR=_R;var u_i=x(T(),1);var Tat=U.WHITE,_at=.25,Sat=1;function AR(e){e=e??B.EMPTY_OBJECT,this._definitionChanged=new Se,this._color=void 0,this._colorSubscription=void 0,this._glowPower=void 0,this._glowPowerSubscription=void 0,this._taperPower=void 0,this._taperPowerSubscription=void 0,this.color=e.color,this.glowPower=e.glowPower,this.taperPower=e.taperPower}Object.defineProperties(AR.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._glow)}},definitionChanged:{get:function(){return this._definitionChanged}},color:xe("color"),glowPower:xe("glowPower"),taperPower:xe("taperPower")});AR.prototype.getType=function(e){return"PolylineGlow"};var Aat=new Q;AR.prototype.getValue=function(e,t){return l(e)||(e=Q.now(Aat)),l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,Tat,t.color),t.glowPower=j.getValueOrDefault(this._glowPower,e,_at,t.glowPower),t.taperPower=j.getValueOrDefault(this._taperPower,e,Sat,t.taperPower),t};AR.prototype.equals=function(e){return this===e||e instanceof AR&&j.equals(this._color,e._color)&&j.equals(this._glowPower,e._glowPower)&&j.equals(this._taperPower,e._taperPower)};var ZR=AR;var T_i=x(T(),1);var Zat=U.WHITE,Cat=U.BLACK,Rat=1;function CR(e){e=e??B.EMPTY_OBJECT,this._definitionChanged=new Se,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this.color=e.color,this.outlineColor=e.outlineColor,this.outlineWidth=e.outlineWidth}Object.defineProperties(CR.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._outlineColor)&&j.isConstant(this._outlineWidth)}},definitionChanged:{get:function(){return this._definitionChanged}},color:xe("color"),outlineColor:xe("outlineColor"),outlineWidth:xe("outlineWidth")});CR.prototype.getType=function(e){return"PolylineOutline"};var Vat=new Q;CR.prototype.getValue=function(e,t){return l(e)||(e=Q.now(Vat)),l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,Zat,t.color),t.outlineColor=j.getValueOrClonedDefault(this._outlineColor,e,Cat,t.outlineColor),t.outlineWidth=j.getValueOrDefault(this._outlineWidth,e,Rat),t};CR.prototype.equals=function(e){return this===e||e instanceof CR&&j.equals(this._color,e._color)&&j.equals(this._outlineColor,e._outlineColor)&&j.equals(this._outlineWidth,e._outlineWidth)};var ix=CR;var G_i=x(T(),1);function Ob(e,t){this._value=void 0,this._definitionChanged=new Se,this._eventHelper=new Fr,this._referenceFrame=t??Pi.FIXED,this.setValue(e)}Object.defineProperties(Ob.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!j.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var Gat=new Q;Ob.prototype.getValue=function(e,t){return l(e)||(e=Q.now(Gat)),this.getValueInReferenceFrame(e,Pi.FIXED,t)};Ob.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._value;if(!l(i))return;let o=i.length;l(n)||(n=new Array(o));let r=0,s=0;for(;r<o;){let c=i[r].getValueInReferenceFrame(e,t,n[r]);l(c)&&(n[s]=c,s++),r++}return n.length=s,n};Ob.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,Ob.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};Ob.prototype.equals=function(e){return this===e||e instanceof Ob&&this._referenceFrame===e._referenceFrame&&j.arrayEquals(this._value,e._value)};Ob.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Bb=Ob;var P_i=x(T(),1);function ox(e){this._value=void 0,this._definitionChanged=new Se,this._eventHelper=new Fr,this.setValue(e)}Object.defineProperties(ox.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!j.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});var Eat=new Q;ox.prototype.getValue=function(e,t){l(e)||(e=Q.now(Eat));let n=this._value;if(!l(n))return;let i=n.length;l(t)||(t=new Array(i));let o=0,r=0;for(;o<i;){let a=this._value[o].getValue(e,t[o]);l(a)&&(t[r]=a,r++),o++}return t.length=r,t};ox.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,ox.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};ox.prototype.equals=function(e){return this===e||e instanceof ox&&j.arrayEquals(this._value,e._value)};ox.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var RR=ox;var k_i=x(T(),1);function sS(e){let t=e._targetProperty;if(!l(t)){let n=e._targetEntity;if(!l(n)){if(n=e._targetCollection.getById(e._targetId),!l(n)){e._targetEntity=e._targetProperty=void 0;return}n.definitionChanged.addEventListener(Zu.prototype._onTargetEntityDefinitionChanged,e),e._targetEntity=n}let i=e._targetPropertyNames;t=e._targetEntity;for(let o=0,r=i.length;o<r&&l(t);++o)t=t[i[o]];e._targetProperty=t}return t}function Zu(e,t,n){this._targetCollection=e,this._targetId=t,this._targetPropertyNames=n,this._targetProperty=void 0,this._targetEntity=void 0,this._definitionChanged=new Se,e.collectionChanged.addEventListener(Zu.prototype._onCollectionChanged,this)}Object.defineProperties(Zu.prototype,{isConstant:{get:function(){return j.isConstant(sS(this))}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){let e=sS(this);return l(e)?e.referenceFrame:void 0}},targetId:{get:function(){return this._targetId}},targetCollection:{get:function(){return this._targetCollection}},targetPropertyNames:{get:function(){return this._targetPropertyNames}},resolvedProperty:{get:function(){return sS(this)}}});Zu.fromString=function(e,t){let n,i=[],o=!0,r=!1,s="";for(let a=0;a<t.length;++a){let c=t.charAt(a);r?(s+=c,r=!1):c==="\\"?r=!0:o&&c==="#"?(n=s,o=!1,s=""):!o&&c==="."?(i.push(s),s=""):s+=c}return i.push(s),new Zu(e,n,i)};var Lat=new Q;Zu.prototype.getValue=function(e,t){let n=sS(this);return l(e)||(e=Q.now(Lat)),l(n)?n.getValue(e,t):void 0};Zu.prototype.getValueInReferenceFrame=function(e,t,n){let i=sS(this);return l(i)?i.getValueInReferenceFrame(e,t,n):void 0};Zu.prototype.getType=function(e){let t=sS(this);return l(t)?t.getType(e):void 0};Zu.prototype.equals=function(e){if(this===e)return!0;let t=this._targetPropertyNames,n=e._targetPropertyNames;if(this._targetCollection!==e._targetCollection||this._targetId!==e._targetId||t.length!==n.length)return!1;let i=this._targetPropertyNames.length;for(let o=0;o<i;o++)if(t[o]!==n[o])return!1;return!0};Zu.prototype._onTargetEntityDefinitionChanged=function(e,t,n,i){l(this._targetProperty)&&this._targetPropertyNames[0]===t&&(this._targetProperty=void 0,this._definitionChanged.raiseEvent(this))};Zu.prototype._onCollectionChanged=function(e,t,n){let i=this._targetEntity;l(i)&&n.indexOf(i)!==-1?(i.definitionChanged.removeEventListener(Zu.prototype._onTargetEntityDefinitionChanged,this),this._targetEntity=this._targetProperty=void 0):l(i)||(i=sS(this),l(i)&&this._definitionChanged.raiseEvent(this))};var zb=Zu;var B_i=x(T(),1);var Wat={packedLength:1,pack:function(e,t,n){return n=n??0,t[n]=e,t},unpack:function(e,t,n){return t=t??0,e[t]},convertPackedArrayForInterpolation:function(e,t,n,i){l(i)||(i=[]),t=t??0,n=n??e.length;let o;for(let r=0,s=n-t+1;r<s;r++){let a=e[t+r];r===0||Math.abs(o-a)<Math.PI?i[r]=a:i[r]=a-W.TWO_PI,o=a}},unpackInterpolationResult:function(e,t,n,i,o){return o=e[0],o<0?o+W.TWO_PI:o}},Ym=Wat;var lSi=x(T(),1);var $_i=x(T(),1);var cxe={packedLength:1,pack:function(e,t,n){n=n??0,t[n]=e},unpack:function(e,t,n){return t=t??0,e[t]}};function lxe(e,t,n){let i,o=e.length,r=n.length,s=o+r;if(e.length=s,o!==t){let a=o-1;for(i=s-1;i>=t;i--)e[i]=e[a--]}for(i=0;i<r;i++)e[t++]=n[i]}function dxe(e,t){return e instanceof Q?e:typeof e=="string"?Q.fromIso8601(e):Q.addSeconds(t,e,new Q)}var b6=[],g6=[];function aO(e,t,n,i,o){let r=0,s,a,c,d,u,m;for(;r<i.length;){u=dxe(i[r],e),c=xo(t,u,Q.compare);let p=0,b=0;if(c<0){for(c=~c,d=c*o,a=void 0,m=t[c];r<i.length&&(u=dxe(i[r],e),!(l(a)&&Q.compare(a,u)>=0||l(m)&&Q.compare(u,m)>=0));){for(b6[p++]=u,r=r+1,s=0;s<o;s++)g6[b++]=i[r],r=r+1;a=u}p>0&&(g6.length=b,lxe(n,d,g6),b6.length=p,lxe(t,c,b6))}else{for(s=0;s<o;s++)r++,n[c*o+s]=i[r];r++}}}function Nm(e,t){let n=e;n===Number&&(n=cxe);let i=n.packedLength,o=n.packedInterpolationLength??i,r=0,s;if(l(t)){let a=t.length;s=new Array(a);for(let c=0;c<a;c++){let d=t[c];d===Number&&(d=cxe);let u=d.packedLength;i+=u,o+=d.packedInterpolationLength??u,s[c]=d}r=a}this._type=e,this._innerType=n,this._interpolationDegree=1,this._interpolationAlgorithm=oS,this._numberOfPoints=0,this._times=[],this._values=[],this._xTable=[],this._yTable=[],this._packedLength=i,this._packedInterpolationLength=o,this._updateTableLength=!0,this._interpolationResult=new Array(o),this._definitionChanged=new Se,this._derivativeTypes=t,this._innerDerivativeTypes=s,this._inputOrder=r,this._forwardExtrapolationType=Au.NONE,this._forwardExtrapolationDuration=0,this._backwardExtrapolationType=Au.NONE,this._backwardExtrapolationDuration=0}Object.defineProperties(Nm.prototype,{isConstant:{get:function(){return this._values.length===0}},definitionChanged:{get:function(){return this._definitionChanged}},type:{get:function(){return this._type}},derivativeTypes:{get:function(){return this._derivativeTypes}},interpolationDegree:{get:function(){return this._interpolationDegree}},interpolationAlgorithm:{get:function(){return this._interpolationAlgorithm}},forwardExtrapolationType:{get:function(){return this._forwardExtrapolationType},set:function(e){this._forwardExtrapolationType!==e&&(this._forwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},forwardExtrapolationDuration:{get:function(){return this._forwardExtrapolationDuration},set:function(e){this._forwardExtrapolationDuration!==e&&(this._forwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationType:{get:function(){return this._backwardExtrapolationType},set:function(e){this._backwardExtrapolationType!==e&&(this._backwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationDuration:{get:function(){return this._backwardExtrapolationDuration},set:function(e){this._backwardExtrapolationDuration!==e&&(this._backwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}}});var vat=new Q;Nm.prototype.getValue=function(e,t){l(e)||(e=Q.now(vat));let n=this._times,i=n.length;if(i===0)return;let o,r=this._innerType,s=this._values,a=xo(n,e,Q.compare);if(a<0){if(a=~a,a===0){let R=n[a];if(o=this._backwardExtrapolationDuration,this._backwardExtrapolationType===Au.NONE||o!==0&&Q.secondsDifference(R,e)>o)return;if(this._backwardExtrapolationType===Au.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let R=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===Au.NONE||o!==0&&Q.secondsDifference(e,R)>o)return;if(this._forwardExtrapolationType===Au.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,d=this._yTable,u=this._interpolationAlgorithm,m=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let R=Math.min(u.getRequiredDataPoints(this._interpolationDegree,p),i);R!==this._numberOfPoints&&(this._numberOfPoints=R,c.length=R,d.length=R*m)}let b=this._numberOfPoints-1;if(b<1)return;let f=0,y=i-1;if(y-f+1>=b+1){let R=a-(b/2|0)-1;R<f&&(R=f);let G=R+b;G>y&&(G=y,R=G-b,R<f&&(R=f)),f=R,y=G}let S=y-f+1;for(let R=0;R<S;++R)c[R]=Q.secondsDifference(n[f+R],n[y]);if(l(r.convertPackedArrayForInterpolation))r.convertPackedArrayForInterpolation(s,f,y,d);else{let R=0,G=this._packedLength,E=f*G,v=(y+1)*G;for(;E<v;)d[R]=s[E],E++,R++}let A=Q.secondsDifference(e,n[y]),Z;if(p===0||!l(u.interpolate))Z=u.interpolateOrderZero(A,c,d,m,this._interpolationResult);else{let R=Math.floor(m/(p+1));Z=u.interpolate(A,c,d,R,p,p,this._interpolationResult)}return l(r.unpackInterpolationResult)?r.unpackInterpolationResult(Z,s,f,y,t):r.unpack(Z,0,t)}return r.unpack(s,a*this._packedLength,t)};Nm.prototype.setInterpolationOptions=function(e){if(!l(e))return;let t=!1,n=e.interpolationAlgorithm,i=e.interpolationDegree;l(n)&&this._interpolationAlgorithm!==n&&(this._interpolationAlgorithm=n,t=!0),l(i)&&this._interpolationDegree!==i&&(this._interpolationDegree=i,t=!0),t&&(this._updateTableLength=!0,this._definitionChanged.raiseEvent(this))};Nm.prototype.addSample=function(e,t,n){let i=this._innerDerivativeTypes,o=l(i),r=this._innerType,s=[];if(s.push(e),r.pack(t,s,s.length),o){let a=i.length;for(let c=0;c<a;c++)i[c].pack(n[c],s,s.length)}aO(void 0,this._times,this._values,s,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Nm.prototype.addSamples=function(e,t,n){let i=this._innerDerivativeTypes,o=l(i),r=this._innerType,s=e.length,a=[];for(let c=0;c<s;c++)if(a.push(e[c]),r.pack(t[c],a,a.length),o){let d=n[c],u=i.length;for(let m=0;m<u;m++)i[m].pack(d[m],a,a.length)}aO(void 0,this._times,this._values,a,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Nm.prototype.getSample=function(e){let t=this._times,n=t.length;if(l(n))return e<0&&(e+=n),t[e]};Nm.prototype.addSamplesPackedArray=function(e,t){aO(t,this._times,this._values,e,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Nm.prototype.removeSample=function(e){let t=xo(this._times,e,Q.compare);return t<0?!1:(uxe(this,t,1),!0)};function uxe(e,t,n){let i=e._packedLength;e._times.splice(t,n),e._values.splice(t*i,n*i),e._updateTableLength=!0,e._definitionChanged.raiseEvent(e)}Nm.prototype.removeSamples=function(e){let t=this._times,n=xo(t,e.start,Q.compare);n<0?n=~n:e.isStartIncluded||++n;let i=xo(t,e.stop,Q.compare);i<0?i=~i:e.isStopIncluded&&++i,uxe(this,n,i-n)};Nm.prototype.equals=function(e){if(this===e)return!0;if(!l(e)||this._type!==e._type||this._interpolationDegree!==e._interpolationDegree||this._interpolationAlgorithm!==e._interpolationAlgorithm)return!1;let t=this._derivativeTypes,n=l(t),i=e._derivativeTypes,o=l(i);if(n!==o)return!1;let r,s;if(n){if(s=t.length,s!==i.length)return!1;for(r=0;r<s;r++)if(t[r]!==i[r])return!1}let a=this._times,c=e._times;if(s=a.length,s!==c.length)return!1;for(r=0;r<s;r++)if(!Q.equals(a[r],c[r]))return!1;let d=this._values,u=e._values;for(s=d.length,r=0;r<s;r++)if(d[r]!==u[r])return!1;return!0};Nm._mergeNewSamples=aO;var Cu=Nm;function wm(e,t){t=t??0;let n;if(t>0){n=new Array(t);for(let i=0;i<t;i++)n[i]=h}this._numberOfDerivatives=t,this._property=new Cu(h,n),this._definitionChanged=new Se,this._referenceFrame=e??Pi.FIXED,this._property._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)}Object.defineProperties(wm.prototype,{isConstant:{get:function(){return this._property.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}},interpolationDegree:{get:function(){return this._property.interpolationDegree}},interpolationAlgorithm:{get:function(){return this._property.interpolationAlgorithm}},numberOfDerivatives:{get:function(){return this._numberOfDerivatives}},forwardExtrapolationType:{get:function(){return this._property.forwardExtrapolationType},set:function(e){this._property.forwardExtrapolationType=e}},forwardExtrapolationDuration:{get:function(){return this._property.forwardExtrapolationDuration},set:function(e){this._property.forwardExtrapolationDuration=e}},backwardExtrapolationType:{get:function(){return this._property.backwardExtrapolationType},set:function(e){this._property.backwardExtrapolationType=e}},backwardExtrapolationDuration:{get:function(){return this._property.backwardExtrapolationDuration},set:function(e){this._property.backwardExtrapolationDuration=e}}});var Fat=new Q;wm.prototype.getValue=function(e,t){return l(e)||(e=Q.now(Fat)),this.getValueInReferenceFrame(e,Pi.FIXED,t)};wm.prototype.getValueInReferenceFrame=function(e,t,n){if(n=this._property.getValue(e,n),l(n))return Sh.convertToReferenceFrame(e,n,this._referenceFrame,t,n)};wm.prototype.setInterpolationOptions=function(e){this._property.setInterpolationOptions(e)};wm.prototype.addSample=function(e,t,n){let i=this._numberOfDerivatives;this._property.addSample(e,t,n)};wm.prototype.addSamples=function(e,t,n){this._property.addSamples(e,t,n)};wm.prototype.addSamplesPackedArray=function(e,t){this._property.addSamplesPackedArray(e,t)};wm.prototype.removeSample=function(e){return this._property.removeSample(e)};wm.prototype.removeSamples=function(e){this._property.removeSamples(e)};wm.prototype.equals=function(e){return this===e||e instanceof wm&&j.equals(this._property,e._property)&&this._referenceFrame===e._referenceFrame};var ic=wm;var _Si=x(T(),1);var uSi=x(T(),1),mxe={HORIZONTAL:0,VERTICAL:1};Object.freeze(mxe);var uf=mxe;var Iat=uf.HORIZONTAL,Pat=U.WHITE,Xat=U.BLACK,Yat=0,Nat=1;function VR(e){e=e??B.EMPTY_OBJECT,this._definitionChanged=new Se,this._orientation=void 0,this._orientationSubscription=void 0,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._offset=void 0,this._offsetSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.orientation=e.orientation,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.offset=e.offset,this.repeat=e.repeat}Object.defineProperties(VR.prototype,{isConstant:{get:function(){return j.isConstant(this._orientation)&&j.isConstant(this._evenColor)&&j.isConstant(this._oddColor)&&j.isConstant(this._offset)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},orientation:xe("orientation"),evenColor:xe("evenColor"),oddColor:xe("oddColor"),offset:xe("offset"),repeat:xe("repeat")});VR.prototype.getType=function(e){return"Stripe"};var wat=new Q;VR.prototype.getValue=function(e,t){return l(e)||(e=Q.now(wat)),l(t)||(t={}),t.horizontal=j.getValueOrDefault(this._orientation,e,Iat)===uf.HORIZONTAL,t.evenColor=j.getValueOrClonedDefault(this._evenColor,e,Pat,t.evenColor),t.oddColor=j.getValueOrClonedDefault(this._oddColor,e,Xat,t.oddColor),t.offset=j.getValueOrDefault(this._offset,e,Yat),t.repeat=j.getValueOrDefault(this._repeat,e,Nat),t};VR.prototype.equals=function(e){return this===e||e instanceof VR&&j.equals(this._orientation,e._orientation)&&j.equals(this._evenColor,e._evenColor)&&j.equals(this._oddColor,e._oddColor)&&j.equals(this._offset,e._offset)&&j.equals(this._repeat,e._repeat)};var GR=VR;var LSi=x(T(),1);function rx(e){this._definitionChanged=new Se,this._intervals=new ps,this._intervals.changedEvent.addEventListener(rx.prototype._intervalsChanged,this),this._referenceFrame=e??Pi.FIXED}Object.defineProperties(rx.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}},referenceFrame:{get:function(){return this._referenceFrame}}});var Mat=new Q;rx.prototype.getValue=function(e,t){return l(e)||(e=Q.now(Mat)),this.getValueInReferenceFrame(e,Pi.FIXED,t)};rx.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._intervals.findDataForIntervalContainingDate(e);if(l(i))return Sh.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};rx.prototype.equals=function(e){return this===e||e instanceof rx&&this._intervals.equals(e._intervals,j.equals)&&this._referenceFrame===e._referenceFrame};rx.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var Hb=rx;var YSi=x(T(),1);function aS(){this._definitionChanged=new Se,this._intervals=new ps,this._intervals.changedEvent.addEventListener(aS.prototype._intervalsChanged,this)}Object.defineProperties(aS.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});var kat=new Q;aS.prototype.getValue=function(e,t){l(e)||(e=Q.now(kat));let n=this._intervals.findDataForIntervalContainingDate(e);return l(n)&&typeof n.clone=="function"?n.clone(t):n};aS.prototype.equals=function(e){return this===e||e instanceof aS&&this._intervals.equals(e._intervals,j.equals)};aS.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var Kb=aS;var nAi=x(T(),1);var OSi=x(T(),1);function ER(e,t){this._position=void 0,this._subscription=void 0,this._definitionChanged=new Se,this._normalize=t??!0,this.position=e}Object.defineProperties(ER.prototype,{isConstant:{get:function(){return j.isConstant(this._position)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._position},set:function(e){let t=this._position;t!==e&&(l(t)&&this._subscription(),this._position=e,l(e)&&(this._subscription=e._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)),this._definitionChanged.raiseEvent(this))}},normalize:{get:function(){return this._normalize},set:function(e){this._normalize!==e&&(this._normalize=e,this._definitionChanged.raiseEvent(this))}}});var Uat=new h,hxe=new h,fxe=new Q,Dat=new Q,y6=1/60;ER.prototype.getValue=function(e,t){return this._getValue(e,t)};ER.prototype._getValue=function(e,t,n){l(e)||(e=Q.now(Dat)),l(t)||(t=new h);let i=this._position;if(j.isConstant(i))return this._normalize?void 0:h.clone(h.ZERO,t);let o=i.getValue(e,Uat),r=i.getValue(Q.addSeconds(e,y6,fxe),hxe);if(!l(o)||!l(r)&&(r=o,o=i.getValue(Q.addSeconds(e,-y6,fxe),hxe),!l(o)))return;if(h.equals(o,r))return this._normalize?void 0:h.clone(h.ZERO,t);l(n)&&o.clone(n);let s=h.subtract(r,o,t);return this._normalize?h.normalize(s,t):h.divideByScalar(s,y6,t)};ER.prototype.equals=function(e){return this===e||e instanceof ER&&j.equals(this._position,e._position)};var Jb=ER;function RX(e,t){this._velocityVectorProperty=new Jb(e,!0),this._subscription=void 0,this._ellipsoid=void 0,this._definitionChanged=new Se,this.ellipsoid=t??ie.default;let n=this;this._velocityVectorProperty.definitionChanged.addEventListener(function(){n._definitionChanged.raiseEvent(n)})}Object.defineProperties(RX.prototype,{isConstant:{get:function(){return j.isConstant(this._velocityVectorProperty)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._velocityVectorProperty.position},set:function(e){this._velocityVectorProperty.position=e}},ellipsoid:{get:function(){return this._ellipsoid},set:function(e){this._ellipsoid!==e&&(this._ellipsoid=e,this._definitionChanged.raiseEvent(this))}}});var pxe=new h,Oat=new h,bxe=new $,Bat=new Q;RX.prototype.getValue=function(e,t){l(e)||(e=Q.now(Bat));let n=this._velocityVectorProperty._getValue(e,Oat,pxe);if(l(n))return xt.rotationMatrixFromPositionVelocity(pxe,n,this._ellipsoid,bxe),Ne.fromRotationMatrix(bxe,t)};RX.prototype.equals=function(e){return this===e||e instanceof RX&&j.equals(this._velocityVectorProperty,e._velocityVectorProperty)&&(this._ellipsoid===e._ellipsoid||this._ellipsoid.equals(e._ellipsoid))};var VX=RX;var rAi=x(T(),1);var jb={COMPLETE:0,BELOW_ELLIPSOID_HORIZON:1,ABOVE_ELLIPSOID_HORIZON:2};jb.validate=function(e){return e===jb.COMPLETE||e===jb.BELOW_ELLIPSOID_HORIZON||e===jb.ABOVE_ELLIPSOID_HORIZON};jb.toString=function(e){switch(e){case jb.COMPLETE:return"COMPLETE";case jb.BELOW_ELLIPSOID_HORIZON:return"BELOW_ELLIPSOID_HORIZON";case jb.ABOVE_ELLIPSOID_HORIZON:return"ABOVE_ELLIPSOID_HORIZON";default:throw new Te("SensorVolumePortionToDisplay value is not valid and cannot be converted to a String.")}};var LR=jb;function sx(){}sx.packedLength=h.packedLength;sx.unpack=h.unpack;sx.pack=h.pack;var x6;function GX(e,t){return t[0]==="#"&&(t=x6+t),zb.fromString(e,t)}function gxe(e,t,n){if(l(n.reference))return GX(t,n.reference);if(l(n.velocityReference)){let i=GX(t,n.velocityReference);switch(e){case h:case sx:return new Jb(i,e===sx);case Ne:return new VX(i)}}throw new ae(`${JSON.stringify(n)} is not valid CZML.`)}function zat(e,t){return new Rh(function(n,i){return t(e.getValue(n,i))},e.isConstant)}var ro=new h,Hl=new CX,rl=new fe,cS=new Tn,cO=new Ne;function Hat(e){let t=e.rgbaf;if(l(t))return t;let n=e.rgba;if(!l(n))return;let i=n.length;if(i===U.packedLength)return[U.byteToFloat(n[0]),U.byteToFloat(n[1]),U.byteToFloat(n[2]),U.byteToFloat(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=U.byteToFloat(n[o+1]),t[o+2]=U.byteToFloat(n[o+2]),t[o+3]=U.byteToFloat(n[o+3]),t[o+4]=U.byteToFloat(n[o+4]);return t}function yxe(e,t){let n=e.uri??e;return l(t)?t.getDerivedResource({url:n}):We.createIfNeeded(n)}function Kat(e){let t=e.wsen;if(l(t))return t;let n=e.wsenDegrees;if(!l(n))return;let i=n.length;if(i===se.packedLength)return[W.toRadians(n[0]),W.toRadians(n[1]),W.toRadians(n[2]),W.toRadians(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=W.toRadians(n[o+1]),t[o+2]=W.toRadians(n[o+2]),t[o+3]=W.toRadians(n[o+3]),t[o+4]=W.toRadians(n[o+4]);return t}function Jat(e){let t=e.length;if(Hl.magnitude=1,t===2)return Hl.clock=e[0],Hl.cone=e[1],h.fromSpherical(Hl,ro),[ro.x,ro.y,ro.z];let n=new Array(t/3*4);for(let i=0,o=0;i<t;i+=3,o+=4)n[o]=e[i],Hl.clock=e[i+1],Hl.cone=e[i+2],h.fromSpherical(Hl,ro),n[o+1]=ro.x,n[o+2]=ro.y,n[o+3]=ro.z;return n}function jat(e){let t=e.length;if(t===3)return Hl.clock=e[0],Hl.cone=e[1],Hl.magnitude=e[2],h.fromSpherical(Hl,ro),[ro.x,ro.y,ro.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Hl.clock=e[i+1],Hl.cone=e[i+2],Hl.magnitude=e[i+3],h.fromSpherical(Hl,ro),n[i+1]=ro.x,n[i+2]=ro.y,n[i+3]=ro.z;return n}function Qat(e){let t=e.length;if(t===3)return rl.longitude=e[0],rl.latitude=e[1],rl.height=e[2],ie.default.cartographicToCartesian(rl,ro),[ro.x,ro.y,ro.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],rl.longitude=e[i+1],rl.latitude=e[i+2],rl.height=e[i+3],ie.default.cartographicToCartesian(rl,ro),n[i+1]=ro.x,n[i+2]=ro.y,n[i+3]=ro.z;return n}function qat(e){let t=e.length;if(t===3)return rl.longitude=W.toRadians(e[0]),rl.latitude=W.toRadians(e[1]),rl.height=e[2],ie.default.cartographicToCartesian(rl,ro),[ro.x,ro.y,ro.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],rl.longitude=W.toRadians(e[i+1]),rl.latitude=W.toRadians(e[i+2]),rl.height=e[i+3],ie.default.cartographicToCartesian(rl,ro),n[i+1]=ro.x,n[i+2]=ro.y,n[i+3]=ro.z;return n}function T6(e){let t=e.cartesian;if(l(t))return t;let n=e.cartesianVelocity;if(l(n))return n;let i=e.unitCartesian;if(l(i))return i;let o=e.unitSpherical;if(l(o))return Jat(o);let r=e.spherical;if(l(r))return jat(r);let s=e.cartographicRadians;if(l(s))return Qat(s);let a=e.cartographicDegrees;if(l(a))return qat(a);throw new ae(`${JSON.stringify(e)} is not a valid CZML interval.`)}function xxe(e,t){h.unpack(e,t,ro),h.normalize(ro,ro),h.pack(ro,e,t)}function $at(e){let t=T6(e);if(t.length===3)return xxe(t,0),t;for(let n=1;n<t.length;n+=4)xxe(t,n);return t}function Txe(e,t){Ne.unpack(e,t,cO),Ne.normalize(cO,cO),Ne.pack(cO,e,t)}function ect(e){let t=e.unitQuaternion;if(l(t)){if(t.length===4)return Txe(t,0),t;for(let n=1;n<t.length;n+=5)Txe(t,n)}return t}function _xe(e){return typeof e=="boolean"?Boolean:typeof e=="number"?Number:typeof e=="string"?String:e.hasOwnProperty("array")?Array:e.hasOwnProperty("boolean")?Boolean:e.hasOwnProperty("boundingRectangle")?it:e.hasOwnProperty("cartesian2")?k:e.hasOwnProperty("cartesian")||e.hasOwnProperty("spherical")||e.hasOwnProperty("cartographicRadians")||e.hasOwnProperty("cartographicDegrees")?h:e.hasOwnProperty("unitCartesian")||e.hasOwnProperty("unitSpherical")?sx:e.hasOwnProperty("rgba")||e.hasOwnProperty("rgbaf")?U:e.hasOwnProperty("arcType")?ln:e.hasOwnProperty("classificationType")?Kn:e.hasOwnProperty("colorBlendMode")?Jc:e.hasOwnProperty("cornerType")?Ki:e.hasOwnProperty("heightReference")?st:e.hasOwnProperty("horizontalOrigin")?Fi:e.hasOwnProperty("date")?Q:e.hasOwnProperty("labelStyle")?cr:e.hasOwnProperty("number")?Number:e.hasOwnProperty("nearFarScalar")?Bt:e.hasOwnProperty("distanceDisplayCondition")?Ut:e.hasOwnProperty("object")||e.hasOwnProperty("value")?Object:e.hasOwnProperty("unitQuaternion")?Ne:e.hasOwnProperty("shadowMode")?Gn:e.hasOwnProperty("string")?String:e.hasOwnProperty("stripeOrientation")?uf:e.hasOwnProperty("wsen")||e.hasOwnProperty("wsenDegrees")?se:e.hasOwnProperty("uri")?LX.default:e.hasOwnProperty("verticalOrigin")?kn:Object}function tct(e,t,n){switch(e){case ln:return ln[t.arcType??t];case Array:return t.array;case Boolean:return t.boolean??t;case it:return t.boundingRectangle;case k:return t.cartesian2;case h:return T6(t);case sx:return $at(t);case U:return Hat(t);case Kn:return Kn[t.classificationType??t];case Jc:return Jc[t.colorBlendMode??t];case Ki:return Ki[t.cornerType??t];case st:return st[t.heightReference??t];case Fi:return Fi[t.horizontalOrigin??t];case Image:return yxe(t,n);case Q:return Q.fromIso8601(t.date??t);case cr:return cr[t.labelStyle??t];case Number:return t.number??t;case Bt:return t.nearFarScalar;case Ut:return t.distanceDisplayCondition;case Object:return t.object??t.value??t;case Db:return Db[t.pathMode??t];case Ne:return ect(t);case Ym:return t.number??t;case LR:return LR[t.portionToDisplay??t];case Gn:return Gn[t.shadowMode??t.shadows??t];case String:return t.string??t;case uf:return uf[t.stripeOrientation??t];case se:return Kat(t);case LX.default:return yxe(t,n);case kn:return kn[t.verticalOrigin??t];default:throw new ae(`Unknown CzmlDataSource interval type: ${e}`)}}var nct={HERMITE:AX,LAGRANGE:ZX,LINEAR:oS};function lO(e,t){let n=e.interpolationAlgorithm,i=e.interpolationDegree;(l(n)||l(i))&&t.setInterpolationOptions({interpolationAlgorithm:nct[n],interpolationDegree:i});let o=e.forwardExtrapolationType;l(o)&&(t.forwardExtrapolationType=Au[o]);let r=e.forwardExtrapolationDuration;l(r)&&(t.forwardExtrapolationDuration=r);let s=e.backwardExtrapolationType;l(s)&&(t.backwardExtrapolationType=Au[s]);let a=e.backwardExtrapolationDuration;l(a)&&(t.backwardExtrapolationDuration=a)}var Sxe={iso8601:void 0};function Ir(e){if(l(e))return Sxe.iso8601=e,Tn.fromIso8601(Sxe)}function _6(e){let t=qe.MAXIMUM_INTERVAL.clone();return t.data=e,t}function Axe(e){let t=new nl;return t.intervals.addInterval(_6(e)),t}function Zxe(e){let t=new tc(e.referenceFrame);return t.intervals.addInterval(_6(e)),t}function dO(e,t,n,i,o,r,s){let a=Ir(i.interval);l(o)&&(l(a)?a=Tn.intersect(a,o,cS):a=o);let c,d,u,m=!l(i.reference)&&!l(i.velocityReference),p=l(a)&&!a.equals(qe.MAXIMUM_INTERVAL);if(i.delete===!0){if(!p){t[n]=void 0;return}return Pxe(t[n],a)}let b=!1;if(m){if(d=tct(e,i,r),!l(d))return;c=e.packedLength??1,u=d.length??1,b=!l(i.array)&&typeof d!="string"&&u>c&&e!==Object}let f=typeof e.unpack=="function"&&e!==Ym;if(!b&&!p){m?t[n]=new li(f?e.unpack(d,0):d):t[n]=gxe(e,s,i);return}let y=t[n],_,S=i.epoch;if(l(S)&&(_=Q.fromIso8601(S)),b&&!p){y instanceof Cu||(t[n]=y=new Cu(e)),y.addSamplesPackedArray(d,_),lO(i,y);return}let A;if(!b&&p){a=a.clone(),m?a.data=f?e.unpack(d,0):d:a.data=gxe(e,s,i),l(y)||(t[n]=y=m?new Kb:new nl),m&&y instanceof Kb?y.intervals.addInterval(a):y instanceof nl?(m&&(a.data=new li(a.data)),y.intervals.addInterval(a)):(t[n]=y=Axe(y),m&&(a.data=new li(a.data)),y.intervals.addInterval(a));return}l(y)||(t[n]=y=new nl),y instanceof nl||(t[n]=y=Axe(y));let Z=y.intervals;A=Z.findInterval(a),(!l(A)||!(A.data instanceof Cu))&&(A=a.clone(),A.data=new Cu(e),Z.addInterval(A)),A.data.addSamplesPackedArray(d,_),lO(i,A.data)}function Pxe(e,t){if(e instanceof Cu){e.removeSamples(t);return}else if(e instanceof Kb){e.intervals.removeInterval(t);return}else if(e instanceof nl){let n=e.intervals;for(let i=0;i<n.length;++i){let o=Tn.intersect(n.get(i),t,cS);o.isEmpty||Pxe(o.data,t)}n.removeInterval(t);return}}function Ze(e,t,n,i,o,r,s){if(l(i))if(Array.isArray(i))for(let a=0,c=i.length;a<c;++a)dO(e,t,n,i[a],o,r,s);else dO(e,t,n,i,o,r,s)}function Cxe(e,t,n,i,o,r){let s=Ir(n.interval);l(i)&&(l(s)?s=Tn.intersect(s,i,cS):s=i);let a=l(n.cartesianVelocity)?1:0,c=h.packedLength*(a+1),d,u,m=!l(n.reference),p=l(s)&&!s.equals(qe.MAXIMUM_INTERVAL);if(n.delete===!0){if(!p){e[t]=void 0;return}return Xxe(e[t],s)}let b,f=!1;if(m&&(l(n.referenceFrame)&&(b=Pi[n.referenceFrame]),b=b??Pi.FIXED,d=T6(n),u=d.length??1,f=u>c),!f&&!p){m?e[t]=new Al(h.unpack(d),b):e[t]=GX(r,n.reference);return}let y=e[t],_,S=n.epoch;if(l(S)&&(_=Q.fromIso8601(S)),f&&!p){(!(y instanceof ic)||l(b)&&y.referenceFrame!==b)&&(e[t]=y=new ic(b,a)),y.addSamplesPackedArray(d,_),lO(n,y);return}let A;if(!f&&p){s=s.clone(),m?s.data=h.unpack(d):s.data=GX(r,n.reference),l(y)||(m?y=new Hb(b):y=new tc(b),e[t]=y),m&&y instanceof Hb&&l(b)&&y.referenceFrame===b?y.intervals.addInterval(s):y instanceof tc?(m&&(s.data=new Al(s.data,b)),y.intervals.addInterval(s)):(e[t]=y=Zxe(y),m&&(s.data=new Al(s.data,b)),y.intervals.addInterval(s));return}l(y)?y instanceof tc||(e[t]=y=Zxe(y)):e[t]=y=new tc(b);let Z=y.intervals;A=Z.findInterval(s),(!l(A)||!(A.data instanceof ic)||l(b)&&A.data.referenceFrame!==b)&&(A=s.clone(),A.data=new ic(b,a),Z.addInterval(A)),A.data.addSamplesPackedArray(d,_),lO(n,A.data)}function Xxe(e,t){if(e instanceof ic){e.removeSamples(t);return}else if(e instanceof Hb){e.intervals.removeInterval(t);return}else if(e instanceof tc){let n=e.intervals;for(let i=0;i<n.length;++i){let o=Tn.intersect(n.get(i),t,cS);o.isEmpty||Xxe(o.data,t)}n.removeInterval(t);return}}function Yxe(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Cxe(e,t,n[s],i,o,r);else Cxe(e,t,n,i,o,r)}function Rxe(e,t,n,i){l(n.references)?uO(e,t,n.references,n.interval,i,RR,nl):(l(n.cartesian2)?n.array=k.unpackArray(n.cartesian2):l(n.cartesian)&&(n.array=k.unpackArray(n.cartesian)),l(n.array)&&Ze(Array,e,t,n,void 0,void 0,i))}function Vxe(e,t,n,i,o,r){let s=Ir(n.interval);l(i)&&(l(s)?s=Tn.intersect(s,i,cS):s=i);let a=e[t],c,d;if(l(s)){a instanceof cR||(a=new cR,e[t]=a);let m=a.intervals;d=m.findInterval({start:s.start,stop:s.stop}),l(d)?c=d.data:(d=s.clone(),m.addInterval(d))}else c=a;let u;l(n.solidColor)?(c instanceof jt||(c=new jt),u=n.solidColor,Ze(U,c,"color",u.color,void 0,void 0,r)):l(n.grid)?(c instanceof yR||(c=new yR),u=n.grid,Ze(U,c,"color",u.color,void 0,o,r),Ze(Number,c,"cellAlpha",u.cellAlpha,void 0,o,r),Ze(k,c,"lineCount",u.lineCount,void 0,o,r),Ze(k,c,"lineThickness",u.lineThickness,void 0,o,r),Ze(k,c,"lineOffset",u.lineOffset,void 0,o,r)):l(n.image)?(c instanceof qg||(c=new qg),u=n.image,Ze(Image,c,"image",u.image,void 0,o,r),Ze(k,c,"repeat",u.repeat,void 0,o,r),Ze(U,c,"color",u.color,void 0,o,r),Ze(Boolean,c,"transparent",u.transparent,void 0,o,r)):l(n.stripe)?(c instanceof GR||(c=new GR),u=n.stripe,Ze(uf,c,"orientation",u.orientation,void 0,o,r),Ze(U,c,"evenColor",u.evenColor,void 0,o,r),Ze(U,c,"oddColor",u.oddColor,void 0,o,r),Ze(Number,c,"offset",u.offset,void 0,o,r),Ze(Number,c,"repeat",u.repeat,void 0,o,r)):l(n.polylineOutline)?(c instanceof ix||(c=new ix),u=n.polylineOutline,Ze(U,c,"color",u.color,void 0,o,r),Ze(U,c,"outlineColor",u.outlineColor,void 0,o,r),Ze(Number,c,"outlineWidth",u.outlineWidth,void 0,o,r)):l(n.polylineGlow)?(c instanceof ZR||(c=new ZR),u=n.polylineGlow,Ze(U,c,"color",u.color,void 0,o,r),Ze(Number,c,"glowPower",u.glowPower,void 0,o,r),Ze(Number,c,"taperPower",u.taperPower,void 0,o,r)):l(n.polylineArrow)?(c instanceof TR||(c=new TR),u=n.polylineArrow,Ze(U,c,"color",u.color,void 0,void 0,r)):l(n.polylineDash)?(c instanceof SR||(c=new SR),u=n.polylineDash,Ze(U,c,"color",u.color,void 0,void 0,r),Ze(U,c,"gapColor",u.gapColor,void 0,void 0,r),Ze(Number,c,"dashLength",u.dashLength,void 0,o,r),Ze(Number,c,"dashPattern",u.dashPattern,void 0,o,r)):l(n.checkerboard)&&(c instanceof sR||(c=new sR),u=n.checkerboard,Ze(U,c,"evenColor",u.evenColor,void 0,o,r),Ze(U,c,"oddColor",u.oddColor,void 0,o,r),Ze(k,c,"repeat",u.repeat,void 0,o,r)),l(d)?d.data=c:e[t]=c}function Ru(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Vxe(e,t,n[s],i,o,r);else Vxe(e,t,n,i,o,r)}function ict(e,t,n,i){let o=t.name;l(o)&&(e.name=t.name)}function oct(e,t,n,i){let o=t.description;l(o)&&Ze(String,e,"description",o,void 0,i,n)}function rct(e,t,n,i){let o=t.position;l(o)&&Yxe(e,"position",o,void 0,i,n)}function sct(e,t,n,i){let o=t.viewFrom;l(o)&&Ze(h,e,"viewFrom",o,void 0,i,n)}function act(e,t,n,i){let o=t.orientation;l(o)&&Ze(Ne,e,"orientation",o,void 0,i,n)}function cct(e,t,n,i){let o=t.properties;if(l(o)){l(e.properties)||(e.properties=new Cl);for(let r in o)if(o.hasOwnProperty(r)){e.properties.hasProperty(r)||e.properties.addProperty(r);let s=o[r];if(Array.isArray(s))for(let a=0,c=s.length;a<c;++a)dO(_xe(s[a]),e.properties,r,s[a],void 0,i,n);else dO(_xe(s),e.properties,r,s,void 0,i,n)}}}function uO(e,t,n,i,o,r,s){let a=n.map(function(c){return GX(o,c)});if(l(i)){i=Ir(i);let c=e[t];if(!(c instanceof s)){let d=new s;d.intervals.addInterval(_6(c)),e[t]=c=d}i.data=new r(a),c.intervals.addInterval(i)}else e[t]=new r(a)}function Gxe(e,t,n,i){let o=n.references;l(o)?uO(e,t,o,n.interval,i,RR,nl):Ze(Array,e,t,n,void 0,void 0,i)}function Exe(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Gxe(e,t,n[o],i);else Gxe(e,t,n,i)}function Lxe(e,t,n,i){let o=n.references;l(o)?uO(e,t,o,n.interval,i,Bb,tc):(l(n.cartesian)?n.array=h.unpackArray(n.cartesian):l(n.cartographicRadians)?n.array=h.fromRadiansArrayHeights(n.cartographicRadians,ie.default):l(n.cartographicDegrees)&&(n.array=h.fromDegreesArrayHeights(n.cartographicDegrees,ie.default)),l(n.array)&&Ze(Array,e,t,n,void 0,void 0,i))}function WX(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Lxe(e,t,n[o],i);else Lxe(e,t,n,i)}function lct(e){return h.unpackArray(e)}function dct(e){return h.fromRadiansArrayHeights(e,ie.default)}function uct(e){return h.fromDegreesArrayHeights(e,ie.default)}function Wxe(e,t,n,i){let o=n.references;if(l(o)){let r=o.map(function(s){let a={};return uO(a,"positions",s,n.interval,i,Bb,tc),a.positions});e[t]=new Bb(r)}else l(n.cartesian)?n.array=n.cartesian.map(lct):l(n.cartographicRadians)?n.array=n.cartographicRadians.map(dct):l(n.cartographicDegrees)&&(n.array=n.cartographicDegrees.map(uct)),l(n.array)&&Ze(Array,e,t,n,void 0,void 0,i)}function mct(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Wxe(e,t,n[o],i);else Wxe(e,t,n,i)}function hct(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;o++)Rxe(e,t,n[o],i);else Rxe(e,t,n,i)}function fct(e,t,n,i){let o=t.availability;if(!l(o))return;let r;if(Array.isArray(o))for(let s=0,a=o.length;s<a;++s)l(r)||(r=new ps),r.addInterval(Ir(o[s]));else r=new ps,r.addInterval(Ir(o));e.availability=r}function pct(e,t,n,i,o){l(t)&&Ze(sx,e,"alignedAxis",t,n,i,o)}function bct(e,t,n,i){let o=t.billboard;if(!l(o))return;let r=Ir(o.interval),s=e.billboard;l(s)||(e.billboard=s=new Pc),Ze(Boolean,s,"show",o.show,r,i,n),Ze(Image,s,"image",o.image,r,i,n),Ze(Number,s,"scale",o.scale,r,i,n),Ze(k,s,"pixelOffset",o.pixelOffset,r,i,n),Ze(h,s,"eyeOffset",o.eyeOffset,r,i,n),Ze(Fi,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),Ze(kn,s,"verticalOrigin",o.verticalOrigin,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(U,s,"color",o.color,r,i,n),Ze(Ym,s,"rotation",o.rotation,r,i,n),pct(s,o.alignedAxis,r,i,n),Ze(Boolean,s,"sizeInMeters",o.sizeInMeters,r,i,n),Ze(Number,s,"width",o.width,r,i,n),Ze(Number,s,"height",o.height,r,i,n),Ze(Bt,s,"scaleByDistance",o.scaleByDistance,r,i,n),Ze(Bt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),Ze(Bt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),Ze(it,s,"imageSubRegion",o.imageSubRegion,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),Ze(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function gct(e,t,n,i){let o=t.box;if(!l(o))return;let r=Ir(o.interval),s=e.box;l(s)||(e.box=s=new vT),Ze(Boolean,s,"show",o.show,r,i,n),Ze(h,s,"dimensions",o.dimensions,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(Boolean,s,"fill",o.fill,r,i,n),Ru(s,"material",o.material,r,i,n),Ze(Boolean,s,"outline",o.outline,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function yct(e,t,n,i){let o=t.corridor;if(!l(o))return;let r=Ir(o.interval),s=e.corridor;l(s)||(e.corridor=s=new IT),Ze(Boolean,s,"show",o.show,r,i,n),WX(s,"positions",o.positions,n),Ze(Number,s,"width",o.width,r,i,n),Ze(Number,s,"height",o.height,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),Ze(st,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),Ze(Ki,s,"cornerType",o.cornerType,r,i,n),Ze(Number,s,"granularity",o.granularity,r,i,n),Ze(Boolean,s,"fill",o.fill,r,i,n),Ru(s,"material",o.material,r,i,n),Ze(Boolean,s,"outline",o.outline,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),Ze(Kn,s,"classificationType",o.classificationType,r,i,n),Ze(Number,s,"zIndex",o.zIndex,r,i,n)}function xct(e,t,n,i){let o=t.cylinder;if(!l(o))return;let r=Ir(o.interval),s=e.cylinder;l(s)||(e.cylinder=s=new PT),Ze(Boolean,s,"show",o.show,r,i,n),Ze(Number,s,"length",o.length,r,i,n),Ze(Number,s,"topRadius",o.topRadius,r,i,n),Ze(Number,s,"bottomRadius",o.bottomRadius,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(Boolean,s,"fill",o.fill,r,i,n),Ru(s,"material",o.material,r,i,n),Ze(Boolean,s,"outline",o.outline,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),Ze(Number,s,"slices",o.slices,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function Tct(e,t){let n=e.version;if(l(n)&&typeof n=="string"){let r=n.split(".");if(r.length===2){if(r[0]!=="1")throw new ae("Cesium only supports CZML version 1.");t._version=n}}if(!l(t._version))throw new ae("CZML version information invalid. It is expected to be a property on the document object in the <Major>.<Minor> version format.");let i=t._documentPacket;l(e.name)&&(i.name=e.name);let o=e.clock;if(l(o)){let r=i.clock;l(r)?(r.interval=o.interval??r.interval,r.currentTime=o.currentTime??r.currentTime,r.range=o.range??r.range,r.step=o.step??r.step,r.multiplier=o.multiplier??r.multiplier):i.clock={interval:o.interval,currentTime:o.currentTime,range:o.range,step:o.step,multiplier:o.multiplier}}}function _ct(e,t,n,i){let o=t.ellipse;if(!l(o))return;let r=Ir(o.interval),s=e.ellipse;l(s)||(e.ellipse=s=new XT),Ze(Boolean,s,"show",o.show,r,i,n),Ze(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),Ze(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),Ze(Number,s,"height",o.height,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),Ze(st,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),Ze(Ym,s,"rotation",o.rotation,r,i,n),Ze(Ym,s,"stRotation",o.stRotation,r,i,n),Ze(Number,s,"granularity",o.granularity,r,i,n),Ze(Boolean,s,"fill",o.fill,r,i,n),Ru(s,"material",o.material,r,i,n),Ze(Boolean,s,"outline",o.outline,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),Ze(Kn,s,"classificationType",o.classificationType,r,i,n),Ze(Number,s,"zIndex",o.zIndex,r,i,n)}function Sct(e,t,n,i){let o=t.ellipsoid;if(!l(o))return;let r=Ir(o.interval),s=e.ellipsoid;l(s)||(e.ellipsoid=s=new YT),Ze(Boolean,s,"show",o.show,r,i,n),Ze(h,s,"radii",o.radii,r,i,n),Ze(h,s,"innerRadii",o.innerRadii,r,i,n),Ze(Number,s,"minimumClock",o.minimumClock,r,i,n),Ze(Number,s,"maximumClock",o.maximumClock,r,i,n),Ze(Number,s,"minimumCone",o.minimumCone,r,i,n),Ze(Number,s,"maximumCone",o.maximumCone,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(Boolean,s,"fill",o.fill,r,i,n),Ru(s,"material",o.material,r,i,n),Ze(Boolean,s,"outline",o.outline,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Number,s,"stackPartitions",o.stackPartitions,r,i,n),Ze(Number,s,"slicePartitions",o.slicePartitions,r,i,n),Ze(Number,s,"subdivisions",o.subdivisions,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function Act(e,t,n,i){let o=t.label;if(!l(o))return;let r=Ir(o.interval),s=e.label;l(s)||(e.label=s=new Ah),Ze(Boolean,s,"show",o.show,r,i,n),Ze(String,s,"text",o.text,r,i,n),Ze(String,s,"font",o.font,r,i,n),Ze(cr,s,"style",o.style,r,i,n),Ze(Number,s,"scale",o.scale,r,i,n),Ze(Boolean,s,"showBackground",o.showBackground,r,i,n),Ze(U,s,"backgroundColor",o.backgroundColor,r,i,n),Ze(k,s,"backgroundPadding",o.backgroundPadding,r,i,n),Ze(k,s,"pixelOffset",o.pixelOffset,r,i,n),Ze(h,s,"eyeOffset",o.eyeOffset,r,i,n),Ze(Fi,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),Ze(kn,s,"verticalOrigin",o.verticalOrigin,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(U,s,"fillColor",o.fillColor,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Bt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),Ze(Bt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),Ze(Bt,s,"scaleByDistance",o.scaleByDistance,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),Ze(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function Zct(e,t,n,i){let o=t.model;if(!l(o))return;let r=Ir(o.interval),s=e.model;l(s)||(e.model=s=new w0),Ze(Boolean,s,"show",o.show,r,i,n),Ze(LX.default,s,"uri",o.gltf,r,i,n),Ze(Number,s,"scale",o.scale,r,i,n),Ze(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),Ze(Number,s,"maximumScale",o.maximumScale,r,i,n),Ze(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),Ze(Boolean,s,"runAnimations",o.runAnimations,r,i,n),Ze(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(U,s,"silhouetteColor",o.silhouetteColor,r,i,n),Ze(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),Ze(U,s,"color",o.color,r,i,n),Ze(Jc,s,"colorBlendMode",o.colorBlendMode,r,i,n),Ze(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,d=o.nodeTransformations;if(l(d))if(Array.isArray(d))for(a=0,c=d.length;a<c;++a)vxe(s,d[a],r,i,n);else vxe(s,d,r,i,n);let u=o.articulations;if(l(u))if(Array.isArray(u))for(a=0,c=u.length;a<c;++a)Fxe(s,u[a],r,i,n);else Fxe(s,u,r,i,n)}function vxe(e,t,n,i,o){let r=Ir(t.interval);l(n)&&(l(r)?r=Tn.intersect(r,n,cS):r=n);let s=e.nodeTransformations,a=Object.keys(t);for(let c=0,d=a.length;c<d;++c){let u=a[c];if(u==="interval")continue;let m=t[u];if(!l(m))continue;l(s)||(e.nodeTransformations=s=new Cl),s.hasProperty(u)||s.addProperty(u);let p=s[u];l(p)||(s[u]=p=new NT),Ze(h,p,"translation",m.translation,r,i,o),Ze(Ne,p,"rotation",m.rotation,r,i,o),Ze(h,p,"scale",m.scale,r,i,o)}}function Fxe(e,t,n,i,o){let r=Ir(t.interval);l(n)&&(l(r)?r=Tn.intersect(r,n,cS):r=n);let s=e.articulations,a=Object.keys(t);for(let c=0,d=a.length;c<d;++c){let u=a[c];if(u==="interval")continue;let m=t[u];l(m)&&(l(s)||(e.articulations=s=new Cl),s.hasProperty(u)||s.addProperty(u),Ze(Number,s,u,m,r,i,o))}}function Cct(e,t,n,i){let o=t.path;if(!l(o))return;let r=Ir(o.interval),s=e.path;l(s)||(e.path=s=new M0),Ze(Boolean,s,"show",o.show,r,i,n),Ze(Number,s,"leadTime",o.leadTime,r,i,n),Ze(Number,s,"trailTime",o.trailTime,r,i,n),Ze(Number,s,"width",o.width,r,i,n),Ze(Number,s,"resolution",o.resolution,r,i,n),Ru(s,"material",o.material,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),Ze(String,s,"relativeTo",o.relativeTo,r,i,n),Ze(Db,s,"materialMode",o.materialMode,r,i,n)}function Rct(e,t,n,i){let o=t.point;if(!l(o))return;let r=Ir(o.interval),s=e.point;l(s)||(e.point=s=new MT),Ze(Boolean,s,"show",o.show,r,i,n),Ze(Number,s,"pixelSize",o.pixelSize,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(U,s,"color",o.color,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Bt,s,"scaleByDistance",o.scaleByDistance,r,i,n),Ze(Bt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),Ze(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function EX(e){this.polygon=e,this._definitionChanged=new Se}Object.defineProperties(EX.prototype,{isConstant:{get:function(){let e=this.polygon._positions,t=this.polygon._holes;return(!l(e)||e.isConstant)&&(!l(t)||t.isConstant)}},definitionChanged:{get:function(){return this._definitionChanged}}});EX.prototype.getValue=function(e,t){let n;l(this.polygon._positions)&&(n=this.polygon._positions.getValue(e));let i;return l(this.polygon._holes)&&(i=this.polygon._holes.getValue(e),l(i)&&(i=i.map(function(o){return new Tc(o)}))),l(t)?(t.positions=n,t.holes=i,t):new Tc(n,i)};EX.prototype.equals=function(e){return this===e||e instanceof EX&&j.equals(this.polygon._positions,e.polygon._positions)&&j.equals(this.polygon._holes,e.polygon._holes)};function Vct(e,t,n,i){let o=t.polygon;if(!l(o))return;let r=Ir(o.interval),s=e.polygon;l(s)||(e.polygon=s=new Zh),Ze(Boolean,s,"show",o.show,r,i,n),WX(s,"_positions",o.positions,n),mct(s,"_holes",o.holes,n),(l(s._positions)||l(s._holes))&&(s.hierarchy=new EX(s)),Ze(Number,s,"height",o.height,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),Ze(st,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),Ze(Ym,s,"stRotation",o.stRotation,r,i,n),Ze(Number,s,"granularity",o.granularity,r,i,n),Ze(Boolean,s,"fill",o.fill,r,i,n),Ru(s,"material",o.material,r,i,n),Ze(Boolean,s,"outline",o.outline,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Boolean,s,"perPositionHeight",o.perPositionHeight,r,i,n),Ze(Boolean,s,"closeTop",o.closeTop,r,i,n),Ze(Boolean,s,"closeBottom",o.closeBottom,r,i,n),Ze(ln,s,"arcType",o.arcType,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),Ze(Kn,s,"classificationType",o.classificationType,r,i,n),Ze(Number,s,"zIndex",o.zIndex,r,i,n)}function Gct(e){return e?ln.GEODESIC:ln.NONE}function Ect(e,t,n,i){let o=t.polyline;if(!l(o))return;let r=Ir(o.interval),s=e.polyline;if(l(s)||(e.polyline=s=new Dc),Ze(Boolean,s,"show",o.show,r,i,n),WX(s,"positions",o.positions,n),Ze(Number,s,"width",o.width,r,i,n),Ze(Number,s,"granularity",o.granularity,r,i,n),Ru(s,"material",o.material,r,i,n),Ru(s,"depthFailMaterial",o.depthFailMaterial,r,i,n),Ze(ln,s,"arcType",o.arcType,r,i,n),Ze(Boolean,s,"clampToGround",o.clampToGround,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),Ze(Kn,s,"classificationType",o.classificationType,r,i,n),Ze(Number,s,"zIndex",o.zIndex,r,i,n),l(o.followSurface)&&!l(o.arcType)){let a={};Ze(Boolean,a,"followSurface",o.followSurface,r,i,n),s.arcType=zat(a.followSurface,Gct)}}function Lct(e,t,n,i){let o=t.polylineVolume;if(!l(o))return;let r=Ir(o.interval),s=e.polylineVolume;l(s)||(e.polylineVolume=s=new kT),WX(s,"positions",o.positions,n),hct(s,"shape",o.shape,n),Ze(Boolean,s,"show",o.show,r,i,n),Ze(Ki,s,"cornerType",o.cornerType,r,i,n),Ze(Boolean,s,"fill",o.fill,r,i,n),Ru(s,"material",o.material,r,i,n),Ze(Boolean,s,"outline",o.outline,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Number,s,"granularity",o.granularity,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function Wct(e,t,n,i){let o=t.rectangle;if(!l(o))return;let r=Ir(o.interval),s=e.rectangle;l(s)||(e.rectangle=s=new Ch),Ze(Boolean,s,"show",o.show,r,i,n),Ze(se,s,"coordinates",o.coordinates,r,i,n),Ze(Number,s,"height",o.height,r,i,n),Ze(st,s,"heightReference",o.heightReference,r,i,n),Ze(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),Ze(st,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),Ze(Ym,s,"rotation",o.rotation,r,i,n),Ze(Ym,s,"stRotation",o.stRotation,r,i,n),Ze(Number,s,"granularity",o.granularity,r,i,n),Ze(Boolean,s,"fill",o.fill,r,i,n),Ru(s,"material",o.material,r,i,n),Ze(Boolean,s,"outline",o.outline,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),Ze(Kn,s,"classificationType",o.classificationType,r,i,n),Ze(Number,s,"zIndex",o.zIndex,r,i,n)}function vct(e,t,n,i){let o=t.tileset;if(!l(o))return;let r=Ir(o.interval),s=e.tileset;l(s)||(e.tileset=s=new wT),Ze(Boolean,s,"show",o.show,r,i,n),Ze(LX.default,s,"uri",o.uri,r,i,n),Ze(Number,s,"maximumScreenSpaceError",o.maximumScreenSpaceError,r,i,n)}function Fct(e,t,n,i){let o=t.wall;if(!l(o))return;let r=Ir(o.interval),s=e.wall;l(s)||(e.wall=s=new k0),Ze(Boolean,s,"show",o.show,r,i,n),WX(s,"positions",o.positions,n),Exe(s,"minimumHeights",o.minimumHeights,n),Exe(s,"maximumHeights",o.maximumHeights,n),Ze(Number,s,"granularity",o.granularity,r,i,n),Ze(Boolean,s,"fill",o.fill,r,i,n),Ru(s,"material",o.material,r,i,n),Ze(Boolean,s,"outline",o.outline,r,i,n),Ze(U,s,"outlineColor",o.outlineColor,r,i,n),Ze(Number,s,"outlineWidth",o.outlineWidth,r,i,n),Ze(Gn,s,"shadows",o.shadows,r,i,n),Ze(Ut,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function Ixe(e,t,n,i,o){let r=e.id;if(l(r)||(r=zn()),x6=r,!l(o._version)&&r!=="document")throw new ae("The first CZML packet is required to be the document object.");if(e.delete===!0)t.removeById(r);else if(r==="document")Tct(e,o);else{let s=t.getOrCreateEntity(r),a=e.parent;l(a)&&(s.parent=t.getOrCreateEntity(a));for(let c=n.length-1;c>-1;c--)n[c](s,e,t,i)}x6=void 0}function Ict(e){let t,n=e._documentPacket.clock;if(!l(n)){if(!l(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(qe.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=Q.secondsDifference(s,r),c=Math.round(a/120);return t=new df,t.startTime=Q.clone(r),t.stopTime=Q.clone(s),t.clockRange=gs.LOOP_STOP,t.multiplier=c,t.currentTime=Q.clone(r),t.clockStep=Io.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}l(e._clock)?t=e._clock.clone():(t=new df,t.startTime=qe.MINIMUM_VALUE.clone(),t.stopTime=qe.MAXIMUM_VALUE.clone(),t.currentTime=qe.MINIMUM_VALUE.clone(),t.clockRange=gs.LOOP_STOP,t.clockStep=Io.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=Ir(n.interval);return l(i)&&(t.startTime=i.start,t.stopTime=i.stop),l(n.currentTime)&&(t.currentTime=Q.fromIso8601(n.currentTime)),l(n.range)&&(t.clockRange=gs[n.range]??gs.LOOP_STOP),l(n.step)&&(t.clockStep=Io[n.step]??Io.SYSTEM_CLOCK_MULTIPLIER),l(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function Nxe(e,t,n,i){n=n??B.EMPTY_OBJECT;let o=t,r=n.sourceUri,s=n.credit;if(typeof s=="string"&&(s=new Rt(s)),e._credit=s,typeof t=="string"||t instanceof We){t=We.createIfNeeded(t),o=t.fetchJson(),r=r??t.clone();let a=e._resourceCredits,c=t.credits;if(l(c)){let d=c.length;for(let u=0;u<d;u++)a.push(c[u])}}return r=We.createIfNeeded(r),bs.setLoading(e,!0),Promise.resolve(o).then(function(a){return Pct(e,a,r,i)}).catch(function(a){return bs.setLoading(e,!1),e._error.raiseEvent(e,a),console.log(a),Promise.reject(a)})}function Pct(e,t,n,i){bs.setLoading(e,!0);let o=e._entityCollection;i&&(e._version=void 0,e._documentPacket=new wxe,o.removeAll()),Hs._processCzml(t,o,n,void 0,e);let r=Ict(e),s=e._documentPacket;return l(s.name)&&e._name!==s.name?(e._name=s.name,r=!0):!l(e._name)&&l(n)&&(e._name=Ub(n.getUrlComponent()),r=!0),bs.setLoading(e,!1),r&&e._changed.raiseEvent(e),e}function wxe(){this.name=void 0,this.clock=void 0}function Hs(e){this._name=e,this._changed=new Se,this._error=new Se,this._isLoading=!1,this._loading=new Se,this._clock=void 0,this._documentPacket=new wxe,this._version=void 0,this._entityCollection=new Ia(this),this._entityCluster=new _u,this._credit=void 0,this._resourceCredits=[]}Hs.load=function(e,t){return new Hs().load(e,t)};Object.defineProperties(Hs.prototype,{name:{get:function(){return this._name}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});Hs.updaters=[bct,gct,yct,xct,_ct,Sct,Act,Zct,ict,oct,Cct,Rct,Vct,Ect,Lct,cct,Wct,rct,vct,sct,Fct,act,fct];Hs.registerUpdater=function(e){Hs.updaters.includes(e)||Hs.updaters.push(e)};Hs.unregisterUpdater=function(e){if(Hs.updaters.includes(e)){let t=Hs.updaters.indexOf(e);Hs.updaters.splice(t,1)}};Hs.prototype.process=function(e,t){return Nxe(this,e,t,!1)};Hs.prototype.load=function(e,t){return Nxe(this,e,t,!0)};Hs.prototype.update=function(e){return!0};Hs.processPacketData=Ze;Hs.processPositionPacketData=Yxe;Hs.processMaterialPacketData=Ru;Hs._processCzml=function(e,t,n,i,o){if(i=i??Hs.updaters,Array.isArray(e))for(let r=0,s=e.length;r<s;++r)Ixe(e[r],t,i,n,o);else Ixe(e,t,i,n,o)};var vX=Hs;var jZi=x(T(),1);function Kl(){this._dataSources=[],this._dataSourceAdded=new Se,this._dataSourceRemoved=new Se,this._dataSourceMoved=new Se}Object.defineProperties(Kl.prototype,{length:{get:function(){return this._dataSources.length}},dataSourceAdded:{get:function(){return this._dataSourceAdded}},dataSourceRemoved:{get:function(){return this._dataSourceRemoved}},dataSourceMoved:{get:function(){return this._dataSourceMoved}}});Kl.prototype.add=function(e){let t=this,n=this._dataSources;return Promise.resolve(e).then(function(i){return n===t._dataSources&&(t._dataSources.push(i),t._dataSourceAdded.raiseEvent(t,i)),i})};Kl.prototype.remove=function(e,t){t=t??!1;let n=this._dataSources.indexOf(e);return n!==-1?(this._dataSources.splice(n,1),this._dataSourceRemoved.raiseEvent(this,e),t&&typeof e.destroy=="function"&&e.destroy(),!0):!1};Kl.prototype.removeAll=function(e){e=e??!1;let t=this._dataSources;for(let n=0,i=t.length;n<i;++n){let o=t[n];this._dataSourceRemoved.raiseEvent(this,o),e&&typeof o.destroy=="function"&&o.destroy()}this._dataSources=[]};Kl.prototype.contains=function(e){return this.indexOf(e)!==-1};Kl.prototype.indexOf=function(e){return this._dataSources.indexOf(e)};Kl.prototype.get=function(e){return this._dataSources[e]};Kl.prototype.getByName=function(e){return this._dataSources.filter(function(t){return t.name===e})};function mO(e,t){return e.indexOf(t)}function Mxe(e,t,n){let i=e._dataSources,o=i.length-1;if(t=W.clamp(t,0,o),n=W.clamp(n,0,o),t===n)return;let r=i[t];i[t]=i[n],i[n]=r,e.dataSourceMoved.raiseEvent(r,n,t)}Kl.prototype.raise=function(e){let t=mO(this._dataSources,e);Mxe(this,t,t+1)};Kl.prototype.lower=function(e){let t=mO(this._dataSources,e);Mxe(this,t,t-1)};Kl.prototype.raiseToTop=function(e){let t=mO(this._dataSources,e);t!==this._dataSources.length-1&&(this._dataSources.splice(t,1),this._dataSources.push(e),this.dataSourceMoved.raiseEvent(e,this._dataSources.length-1,t))};Kl.prototype.lowerToBottom=function(e){let t=mO(this._dataSources,e);t!==0&&(this._dataSources.splice(t,1),this._dataSources.splice(0,0,e),this.dataSourceMoved.raiseEvent(e,0,t))};Kl.prototype.isDestroyed=function(){return!1};Kl.prototype.destroy=function(){return this.removeAll(!0),he(this)};var FX=Kl;var TXi=x(T(),1);var cCi=x(T(),1);var iCi=x(T(),1);function oc(e){e=e??B.EMPTY_OBJECT,this._primitives=[],this._guid=zn(),this._primitiveAdded=new Se,this._primitiveRemoved=new Se,this._zIndex=void 0,this.show=e.show??!0,this.destroyPrimitives=e.destroyPrimitives??!0,this._countReferences=e.countReferences??!1}Object.defineProperties(oc.prototype,{length:{get:function(){return this._primitives.length}},primitiveAdded:{get:function(){return this._primitiveAdded}},primitiveRemoved:{get:function(){return this._primitiveRemoved}}});oc.prototype.add=function(e,t){let n=l(t),i=e._external=e._external||{},o=i._composites=i._composites||{};return o[this._guid]={collection:this},n?this._primitives.splice(t,0,e):this._primitives.push(e),this._countReferences&&(l(i._referenceCount)?++i._referenceCount:i._referenceCount=1),this._primitiveAdded.raiseEvent(e),e};oc.prototype.remove=function(e){if(this.contains(e)){let t=this._primitives.indexOf(e);if(t!==-1)return this._primitives.splice(t,1),delete e._external._composites[this._guid],this._countReferences&&e._external._referenceCount--,this.destroyPrimitives&&(!this._countReferences||e._external._referenceCount<=0)&&e.destroy(),this._primitiveRemoved.raiseEvent(e),!0}return!1};oc.prototype.removeAndDestroy=function(e){let t=this.remove(e);return t&&!this.destroyPrimitives&&e.destroy(),t};oc.prototype.removeAll=function(){let e=this._primitives,t=e.length;for(let n=0;n<t;++n){let i=e[n];delete i._external._composites[this._guid],this._countReferences&&i._external._referenceCount--,this.destroyPrimitives&&(!this._countReferences||i._external._referenceCount<=0)&&i.destroy(),this._primitiveRemoved.raiseEvent(i)}this._primitives=[]};oc.prototype.contains=function(e){return!!(l(e)&&e._external&&e._external._composites&&e._external._composites[this._guid])};function hO(e,t){return e._primitives.indexOf(t)}oc.prototype.raise=function(e){if(l(e)){let t=hO(this,e),n=this._primitives;if(t!==n.length-1){let i=n[t];n[t]=n[t+1],n[t+1]=i}}};oc.prototype.raiseToTop=function(e){if(l(e)){let t=hO(this,e),n=this._primitives;t!==n.length-1&&(n.splice(t,1),n.push(e))}};oc.prototype.lower=function(e){if(l(e)){let t=hO(this,e),n=this._primitives;if(t!==0){let i=n[t];n[t]=n[t-1],n[t-1]=i}}};oc.prototype.lowerToBottom=function(e){if(l(e)){let t=hO(this,e),n=this._primitives;t!==0&&(n.splice(t,1),n.unshift(e))}};oc.prototype.get=function(e){return this._primitives[e]};oc.prototype.update=function(e){if(!this.show)return;let t=this._primitives;for(let n=0;n<t.length;++n)t[n].update(e)};oc.prototype.prePassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.prePassesUpdate)&&i.prePassesUpdate(e)}};oc.prototype.updateForPass=function(e,t){let n=this._primitives;for(let i=0;i<n.length;++i){let o=n[i];l(o.updateForPass)&&o.updateForPass(e,t)}};oc.prototype.postPassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.postPassesUpdate)&&i.postPassesUpdate(e)}};oc.prototype.isDestroyed=function(){return!1};oc.prototype.destroy=function(){return this.removeAll(),he(this)};var Jl=oc;function Vp(){this._length=0,this._collections={},this._collectionsArray=[],this.show=!0}Object.defineProperties(Vp.prototype,{length:{get:function(){return this._length}}});Vp.prototype.add=function(e,t){t=t??0;let n=this._collections[t];if(!l(n)){n=new Jl({destroyPrimitives:!1}),n._zIndex=t,this._collections[t]=n;let i=this._collectionsArray,o=0;for(;o<i.length&&i[o]._zIndex<t;)o++;i.splice(o,0,n)}return n.add(e),this._length++,e._zIndex=t,e};Vp.prototype.set=function(e,t){return t===e._zIndex||(this.remove(e,!0),this.add(e,t)),e};Vp.prototype.remove=function(e,t){if(this.contains(e)){let n=e._zIndex,i=this._collections[n],o;return t?o=i.remove(e):o=i.removeAndDestroy(e),o&&this._length--,i.length===0&&(this._collectionsArray.splice(this._collectionsArray.indexOf(i),1),this._collections[n]=void 0,i.destroy()),o}return!1};Vp.prototype.removeAll=function(){let e=this._collectionsArray;for(let t=0;t<e.length;t++){let n=e[t];n.destroyPrimitives=!0,n.destroy()}this._collections={},this._collectionsArray=[],this._length=0};Vp.prototype.contains=function(e){if(!l(e))return!1;let t=this._collections[e._zIndex];return l(t)&&t.contains(e)};Vp.prototype.update=function(e){if(!this.show)return;let t=this._collectionsArray;for(let n=0;n<t.length;n++)t[n].update(e)};Vp.prototype.isDestroyed=function(){return!1};Vp.prototype.destroy=function(){return this.removeAll(),he(this)};var IX=Vp;var z2i=x(T(),1);var hCi=x(T(),1);function WR(e,t){this._primitives=e,this._orderedGroundPrimitives=t,this._dynamicUpdaters=new wt}WR.prototype.add=function(e,t){this._dynamicUpdaters.set(t.id,t.createDynamicUpdater(this._primitives,this._orderedGroundPrimitives))};WR.prototype.remove=function(e){let t=e.id,n=this._dynamicUpdaters.get(t);l(n)&&(this._dynamicUpdaters.remove(t),n.destroy())};WR.prototype.update=function(e){let t=this._dynamicUpdaters.values;for(let n=0,i=t.length;n<i;n++)t[n].update(e);return!0};WR.prototype.removeAllPrimitives=function(){let e=this._dynamicUpdaters.values;for(let t=0,n=e.length;t<n;t++)e[t].destroy();this._dynamicUpdaters.removeAll()};WR.prototype.getBoundingSphere=function(e,t){return e=this._dynamicUpdaters.get(e.id),l(e)&&l(e.getBoundingSphere)?e.getBoundingSphere(t):Vt.FAILED};var lS=WR;var qWi=x(T(),1);var ERi=x(T(),1);var OCi=x(T(),1);var xCi=x(T(),1);var A6={},fO=new h,kxe=new h,Uxe=new Ne,Dxe=new $;function vR(e,t,n,i,o,r,s,a,c,d){let u=e+t;h.multiplyByScalar(i,Math.cos(u),fO),h.multiplyByScalar(n,Math.sin(u),kxe),h.add(fO,kxe,fO);let m=Math.cos(e);m=m*m;let p=Math.sin(e);p=p*p;let f=r/Math.sqrt(s*m+o*p)/a;return Ne.fromAxisAngle(fO,f,Uxe),$.fromQuaternion(Uxe,Dxe),$.multiplyByVector(Dxe,c,d),h.normalize(d,d),h.multiplyByScalar(d,a,d),d}var Oxe=new h,Bxe=new h,S6=new h,Xct=new h;A6.raisePositionsToHeight=function(e,t,n){let i=t.ellipsoid,o=t.height,r=t.extrudedHeight,s=n?e.length/3*2:e.length/3,a=new Float64Array(s*3),c=e.length,d=n?c:0;for(let u=0;u<c;u+=3){let m=u+1,p=u+2,b=h.fromArray(e,u,Oxe);i.scaleToGeodeticSurface(b,b);let f=h.clone(b,Bxe),y=i.geodeticSurfaceNormal(b,Xct),_=h.multiplyByScalar(y,o,S6);h.add(b,_,b),n&&(h.multiplyByScalar(y,r,_),h.add(f,_,f),a[u+d]=f.x,a[m+d]=f.y,a[p+d]=f.z),a[u]=b.x,a[m]=b.y,a[p]=b.z}return a};var Yct=new h,Nct=new h,wct=new h;A6.computeEllipsePositions=function(e,t,n){let i=e.semiMinorAxis,o=e.semiMajorAxis,r=e.rotation,s=e.center,a=e.granularity*8,c=i*i,d=o*o,u=o*i,m=h.magnitude(s),p=h.normalize(s,Yct),b=h.cross(h.UNIT_Z,s,Nct);b=h.normalize(b,b);let f=h.cross(p,b,wct),y=1+Math.ceil(W.PI_OVER_TWO/a),_=W.PI_OVER_TWO/(y-1),S=W.PI_OVER_TWO-y*_;S<0&&(y-=Math.ceil(Math.abs(S)/_));let A=2*(y*(y+2)),Z=t?new Array(A*3):void 0,R=0,G=Oxe,E=Bxe,v=y*4*3,I=v-1,X=0,Y=n?new Array(v):void 0,g,C,V,L,P;for(S=W.PI_OVER_TWO,G=vR(S,r,f,b,c,u,d,m,p,G),t&&(Z[R++]=G.x,Z[R++]=G.y,Z[R++]=G.z),n&&(Y[I--]=G.z,Y[I--]=G.y,Y[I--]=G.x),S=W.PI_OVER_TWO-_,g=1;g<y+1;++g){if(G=vR(S,r,f,b,c,u,d,m,p,G),E=vR(Math.PI-S,r,f,b,c,u,d,m,p,E),t){for(Z[R++]=G.x,Z[R++]=G.y,Z[R++]=G.z,V=2*g+2,C=1;C<V-1;++C)L=C/(V-1),P=h.lerp(G,E,L,S6),Z[R++]=P.x,Z[R++]=P.y,Z[R++]=P.z;Z[R++]=E.x,Z[R++]=E.y,Z[R++]=E.z}n&&(Y[I--]=G.z,Y[I--]=G.y,Y[I--]=G.x,Y[X++]=E.x,Y[X++]=E.y,Y[X++]=E.z),S=W.PI_OVER_TWO-(g+1)*_}for(g=y;g>1;--g){if(S=W.PI_OVER_TWO-(g-1)*_,G=vR(-S,r,f,b,c,u,d,m,p,G),E=vR(S+Math.PI,r,f,b,c,u,d,m,p,E),t){for(Z[R++]=G.x,Z[R++]=G.y,Z[R++]=G.z,V=2*(g-1)+2,C=1;C<V-1;++C)L=C/(V-1),P=h.lerp(G,E,L,S6),Z[R++]=P.x,Z[R++]=P.y,Z[R++]=P.z;Z[R++]=E.x,Z[R++]=E.y,Z[R++]=E.z}n&&(Y[I--]=G.z,Y[I--]=G.y,Y[I--]=G.x,Y[X++]=E.x,Y[X++]=E.y,Y[X++]=E.z)}S=W.PI_OVER_TWO,G=vR(-S,r,f,b,c,u,d,m,p,G);let N={};return t&&(Z[R++]=G.x,Z[R++]=G.y,Z[R++]=G.z,N.positions=Z,N.numPts=y),n&&(Y[I--]=G.z,Y[I--]=G.y,Y[I--]=G.x,N.outerPositions=Y),N};var vd=A6;var FR=new h,Z6=new h,C6=new h,zxe=new h,ba=new k,Hxe=new $,Mct=new $,R6=new Ne,Kxe=new h,Jxe=new h,jxe=new h,gO=new fe,Qxe=new h,qxe=new k,$xe=new k;function eTe(e,t,n){let i=t.vertexFormat,o=t.center,r=t.semiMajorAxis,s=t.semiMinorAxis,a=t.ellipsoid,c=t.stRotation,d=n?e.length/3*2:e.length/3,u=t.shadowVolume,m=i.st?new Float32Array(d*2):void 0,p=i.normal?new Float32Array(d*3):void 0,b=i.tangent?new Float32Array(d*3):void 0,f=i.bitangent?new Float32Array(d*3):void 0,y=u?new Float32Array(d*3):void 0,_=0,S=Kxe,A=Jxe,Z=jxe,R=new ki(a),G=R.project(a.cartesianToCartographic(o,gO),Qxe),E=a.scaleToGeodeticSurface(o,FR);a.geodeticSurfaceNormal(E,E);let v=Hxe,I=Mct;if(c!==0){let P=Ne.fromAxisAngle(E,c,R6);v=$.fromQuaternion(P,v),P=Ne.fromAxisAngle(E,-c,R6),I=$.fromQuaternion(P,I)}else v=$.clone($.IDENTITY,v),I=$.clone($.IDENTITY,I);let X=k.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,qxe),Y=k.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,$xe),g=e.length,C=n?g:0,V=C/3*2;for(let P=0;P<g;P+=3){let N=P+1,O=P+2,M=h.fromArray(e,P,FR);if(i.st){let D=$.multiplyByVector(v,M,Z6),w=R.project(a.cartesianToCartographic(D,gO),C6);h.subtract(w,G,w),ba.x=(w.x+r)/(2*r),ba.y=(w.y+s)/(2*s),X.x=Math.min(ba.x,X.x),X.y=Math.min(ba.y,X.y),Y.x=Math.max(ba.x,Y.x),Y.y=Math.max(ba.y,Y.y),n&&(m[_+V]=ba.x,m[_+1+V]=ba.y),m[_++]=ba.x,m[_++]=ba.y}(i.normal||i.tangent||i.bitangent||u)&&(S=a.geodeticSurfaceNormal(M,S),u&&(y[P+C]=-S.x,y[N+C]=-S.y,y[O+C]=-S.z),(i.normal||i.tangent||i.bitangent)&&((i.tangent||i.bitangent)&&(A=h.normalize(h.cross(h.UNIT_Z,S,A),A),$.multiplyByVector(I,A,A)),i.normal&&(p[P]=S.x,p[N]=S.y,p[O]=S.z,n&&(p[P+C]=-S.x,p[N+C]=-S.y,p[O+C]=-S.z)),i.tangent&&(b[P]=A.x,b[N]=A.y,b[O]=A.z,n&&(b[P+C]=-A.x,b[N+C]=-A.y,b[O+C]=-A.z)),i.bitangent&&(Z=h.normalize(h.cross(S,A,Z),Z),f[P]=Z.x,f[N]=Z.y,f[O]=Z.z,n&&(f[P+C]=Z.x,f[N+C]=Z.y,f[O+C]=Z.z))))}if(i.st){g=m.length;for(let P=0;P<g;P+=2)m[P]=(m[P]-X.x)/(Y.x-X.x),m[P+1]=(m[P+1]-X.y)/(Y.y-X.y)}let L=new xn;if(i.position){let P=vd.raisePositionsToHeight(e,t,n);L.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:P})}if(i.st&&(L.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:m})),i.normal&&(L.normal=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:p})),i.tangent&&(L.tangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:b})),i.bitangent&&(L.bitangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:f})),u&&(L.extrudeDirection=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:y})),n&&l(t.offsetAttribute)){let P=new Uint8Array(d);if(t.offsetAttribute===hn.TOP)P=P.fill(1,0,d/2);else{let N=t.offsetAttribute===hn.NONE?0:1;P=P.fill(N)}L.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:P})}return L}function tTe(e){let t=new Array(12*(e*(e+1))-6),n=0,i,o,r,s,a;for(i=0,r=1,s=0;s<3;s++)t[n++]=r++,t[n++]=i,t[n++]=r;for(s=2;s<e+1;++s){for(r=s*(s+1)-1,i=(s-1)*s-1,t[n++]=r++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=r++,t[n++]=i,t[n++]=r}for(o=e*2,++r,++i,s=0;s<o-1;++s)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;for(t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i++,t[n++]=i,++i,s=e-1;s>1;--s){for(t[n++]=i++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=i++,t[n++]=i++,t[n++]=r++}for(s=0;s<3;s++)t[n++]=i++,t[n++]=i,t[n++]=r;return t}var dS=new h;function kct(e){let t=e.center;dS=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,dS),e.height,dS),dS=h.add(t,dS,dS);let n=new ue(dS,e.semiMajorAxis),i=vd.computeEllipsePositions(e,!0,!1),o=i.positions,r=i.numPts,s=eTe(o,e,!1),a=tTe(r);return a=De.createTypedArray(o.length/3,a),{boundingSphere:n,attributes:s,indices:a}}function Uct(e,t){let n=t.vertexFormat,i=t.center,o=t.semiMajorAxis,r=t.semiMinorAxis,s=t.ellipsoid,a=t.height,c=t.extrudedHeight,d=t.stRotation,u=e.length/3*2,m=new Float64Array(u*3),p=n.st?new Float32Array(u*2):void 0,b=n.normal?new Float32Array(u*3):void 0,f=n.tangent?new Float32Array(u*3):void 0,y=n.bitangent?new Float32Array(u*3):void 0,_=t.shadowVolume,S=_?new Float32Array(u*3):void 0,A=0,Z=Kxe,R=Jxe,G=jxe,E=new ki(s),v=E.project(s.cartesianToCartographic(i,gO),Qxe),I=s.scaleToGeodeticSurface(i,FR);s.geodeticSurfaceNormal(I,I);let X=Ne.fromAxisAngle(I,d,R6),Y=$.fromQuaternion(X,Hxe),g=k.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,qxe),C=k.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,$xe),V=e.length,L=V/3*2;for(let N=0;N<V;N+=3){let O=N+1,M=N+2,D=h.fromArray(e,N,FR),w;if(n.st){let K=$.multiplyByVector(Y,D,Z6),ee=E.project(s.cartesianToCartographic(K,gO),C6);h.subtract(ee,v,ee),ba.x=(ee.x+o)/(2*o),ba.y=(ee.y+r)/(2*r),g.x=Math.min(ba.x,g.x),g.y=Math.min(ba.y,g.y),C.x=Math.max(ba.x,C.x),C.y=Math.max(ba.y,C.y),p[A+L]=ba.x,p[A+1+L]=ba.y,p[A++]=ba.x,p[A++]=ba.y}D=s.scaleToGeodeticSurface(D,D),w=h.clone(D,Z6),Z=s.geodeticSurfaceNormal(D,Z),_&&(S[N+V]=-Z.x,S[O+V]=-Z.y,S[M+V]=-Z.z);let z=h.multiplyByScalar(Z,a,zxe);if(D=h.add(D,z,D),z=h.multiplyByScalar(Z,c,z),w=h.add(w,z,w),n.position&&(m[N+V]=w.x,m[O+V]=w.y,m[M+V]=w.z,m[N]=D.x,m[O]=D.y,m[M]=D.z),n.normal||n.tangent||n.bitangent){G=h.clone(Z,G);let K=h.fromArray(e,(N+3)%V,zxe);h.subtract(K,D,K);let ee=h.subtract(w,D,C6);Z=h.normalize(h.cross(ee,K,Z),Z),n.normal&&(b[N]=Z.x,b[O]=Z.y,b[M]=Z.z,b[N+V]=Z.x,b[O+V]=Z.y,b[M+V]=Z.z),n.tangent&&(R=h.normalize(h.cross(G,Z,R),R),f[N]=R.x,f[O]=R.y,f[M]=R.z,f[N+V]=R.x,f[N+1+V]=R.y,f[N+2+V]=R.z),n.bitangent&&(y[N]=G.x,y[O]=G.y,y[M]=G.z,y[N+V]=G.x,y[O+V]=G.y,y[M+V]=G.z)}}if(n.st){V=p.length;for(let N=0;N<V;N+=2)p[N]=(p[N]-g.x)/(C.x-g.x),p[N+1]=(p[N+1]-g.y)/(C.y-g.y)}let P=new xn;if(n.position&&(P.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:m})),n.st&&(P.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:p})),n.normal&&(P.normal=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:b})),n.tangent&&(P.tangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:f})),n.bitangent&&(P.bitangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:y})),_&&(P.extrudeDirection=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:S})),l(t.offsetAttribute)){let N=new Uint8Array(u);if(t.offsetAttribute===hn.TOP)N=N.fill(1,0,u/2);else{let O=t.offsetAttribute===hn.NONE?0:1;N=N.fill(O)}P.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:N})}return P}function Dct(e){let t=e.length/3,n=De.createTypedArray(t,t*6),i=0;for(let o=0;o<t;o++){let r=o,s=o+t,a=(r+1)%t,c=a+t;n[i++]=r,n[i++]=s,n[i++]=a,n[i++]=a,n[i++]=s,n[i++]=c}return n}var pO=new ue,bO=new ue;function Oct(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,FR),e.height,FR);pO.center=h.add(t,o,pO.center),pO.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),bO.center=h.add(t,o,bO.center),bO.radius=i;let r=vd.computeEllipsePositions(e,!0,!0),s=r.positions,a=r.numPts,c=r.outerPositions,d=ue.union(pO,bO),u=eTe(s,e,!0),m=tTe(a),p=m.length;m.length=p*2;let b=s.length/3;for(let R=0;R<p;R+=3)m[R+p]=m[R+2]+b,m[R+1+p]=m[R+1]+b,m[R+2+p]=m[R]+b;let f=De.createTypedArray(b*2/3,m),y=new Zt({attributes:u,indices:f,primitiveType:ve.TRIANGLES}),_=Uct(c,e);m=Dct(c);let S=De.createTypedArray(c.length*2/3,m),A=new Zt({attributes:_,indices:S,primitiveType:ve.TRIANGLES}),Z=Un.combineInstances([new Pt({geometry:y}),new Pt({geometry:A})]);return{boundingSphere:d,attributes:Z[0].attributes,indices:Z[0].indices}}function nTe(e,t,n,i,o,r,s){let c=vd.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:n,rotation:i,granularity:o},!1,!0).outerPositions,d=c.length/3,u=new Array(d);for(let p=0;p<d;++p)u[p]=h.fromArray(c,p*3);let m=se.fromCartesianArray(u,r,s);return m.width>W.PI&&(m.north=m.north>0?W.PI_OVER_TWO-W.EPSILON7:m.north,m.south=m.south<0?W.EPSILON7-W.PI_OVER_TWO:m.south,m.east=W.PI,m.west=-W.PI),m}function Ep(e){e=e??B.EMPTY_OBJECT;let t=e.center,n=e.ellipsoid??ie.default,i=e.semiMajorAxis,o=e.semiMinorAxis,r=e.granularity??W.RADIANS_PER_DEGREE,s=e.vertexFormat??Me.DEFAULT,a=e.height??0,c=e.extrudedHeight??a;this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ie.clone(n),this._rotation=e.rotation??0,this._stRotation=e.stRotation??0,this._height=Math.max(c,a),this._granularity=r,this._vertexFormat=Me.clone(s),this._extrudedHeight=Math.min(c,a),this._shadowVolume=e.shadowVolume??!1,this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}Ep.packedLength=h.packedLength+ie.packedLength+Me.packedLength+9;Ep.pack=function(e,t,n){return n=n??0,h.pack(e._center,t,n),n+=h.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Me.pack(e._vertexFormat,t,n),n+=Me.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=e._offsetAttribute??-1,t};var iTe=new h,oTe=new ie,rTe=new Me,Gp={center:iTe,ellipsoid:oTe,vertexFormat:rTe,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Ep.unpack=function(e,t,n){t=t??0;let i=h.unpack(e,t,iTe);t+=h.packedLength;let o=ie.unpack(e,t,oTe);t+=ie.packedLength;let r=Me.unpack(e,t,rTe);t+=Me.packedLength;let s=e[t++],a=e[t++],c=e[t++],d=e[t++],u=e[t++],m=e[t++],p=e[t++],b=e[t++]===1,f=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Me.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=d,n._height=u,n._granularity=m,n._extrudedHeight=p,n._shadowVolume=b,n._offsetAttribute=f===-1?void 0:f,n):(Gp.height=u,Gp.extrudedHeight=p,Gp.granularity=m,Gp.stRotation=d,Gp.rotation=c,Gp.semiMajorAxis=s,Gp.semiMinorAxis=a,Gp.shadowVolume=b,Gp.offsetAttribute=f===-1?void 0:f,new Ep(Gp))};Ep.computeRectangle=function(e,t){e=e??B.EMPTY_OBJECT;let n=e.center,i=e.ellipsoid??ie.default,o=e.semiMajorAxis,r=e.semiMinorAxis,s=e.granularity??W.RADIANS_PER_DEGREE,a=e.rotation??0;return nTe(n,o,r,a,s,i,t)};Ep.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!W.equalsEpsilon(t,n,0,W.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,vertexFormat:e._vertexFormat,stRotation:e._stRotation},r;if(i)o.extrudedHeight=n,o.shadowVolume=e._shadowVolume,o.offsetAttribute=e._offsetAttribute,r=Oct(o);else if(r=kct(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===hn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new Zt({attributes:r.attributes,indices:r.indices,primitiveType:ve.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};Ep.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Ep({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Me.POSITION_ONLY,shadowVolume:!0})};function Bct(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=vd.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0).outerPositions,o=i.length/3,r=new Array(o);for(let c=0;c<o;++c)r[c]=h.fromArray(i,c*3);let s=e._ellipsoid,a=e.rectangle;return Zt._textureCoordinateRotationPoints(r,t,s,a)}Object.defineProperties(Ep.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=nTe(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=Bct(this)),this._textureCoordinateRotationPoints}}});var jl=Ep;var sRi=x(T(),1);var sTe=new h,uS=new h;function zct(e){let t=e.center;uS=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,uS),e.height,uS),uS=h.add(t,uS,uS);let n=new ue(uS,e.semiMajorAxis),i=vd.computeEllipsePositions(e,!1,!0).outerPositions,o=new xn({position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:vd.raisePositionsToHeight(i,e,!1)})}),r=i.length/3,s=De.createTypedArray(r,r*2),a=0;for(let c=0;c<r;++c)s[a++]=c,s[a++]=(c+1)%r;return{boundingSphere:n,attributes:o,indices:s}}var yO=new ue,xO=new ue;function Hct(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,sTe),e.height,sTe);yO.center=h.add(t,o,yO.center),yO.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),xO.center=h.add(t,o,xO.center),xO.radius=i;let r=vd.computeEllipsePositions(e,!1,!0).outerPositions,s=new xn({position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:vd.raisePositionsToHeight(r,e,!0)})});r=s.position.values;let a=ue.union(yO,xO),c=r.length/3;if(l(e.offsetAttribute)){let f=new Uint8Array(c);if(e.offsetAttribute===hn.TOP)f=f.fill(1,0,c/2);else{let y=e.offsetAttribute===hn.NONE?0:1;f=f.fill(y)}s.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}let d=e.numberOfVerticalLines??16;d=W.clamp(d,0,c/2);let u=De.createTypedArray(c,c*2+d*2);c/=2;let m=0,p;for(p=0;p<c;++p)u[m++]=p,u[m++]=(p+1)%c,u[m++]=p+c,u[m++]=(p+1)%c+c;let b;if(d>0){let f=Math.min(d,c);b=Math.round(c/f);let y=Math.min(b*d,c);for(p=0;p<y;p+=b)u[m++]=p,u[m++]=p+c}return{boundingSphere:a,attributes:s,indices:u}}function IR(e){e=e??B.EMPTY_OBJECT;let t=e.center,n=e.ellipsoid??ie.default,i=e.semiMajorAxis,o=e.semiMinorAxis,r=e.granularity??W.RADIANS_PER_DEGREE,s=e.height??0,a=e.extrudedHeight??s;this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ie.clone(n),this._rotation=e.rotation??0,this._height=Math.max(a,s),this._granularity=r,this._extrudedHeight=Math.min(a,s),this._numberOfVerticalLines=Math.max(e.numberOfVerticalLines??16,0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}IR.packedLength=h.packedLength+ie.packedLength+8;IR.pack=function(e,t,n){return n=n??0,h.pack(e._center,t,n),n+=h.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._numberOfVerticalLines,t[n]=e._offsetAttribute??-1,t};var aTe=new h,cTe=new ie,Qb={center:aTe,ellipsoid:cTe,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};IR.unpack=function(e,t,n){t=t??0;let i=h.unpack(e,t,aTe);t+=h.packedLength;let o=ie.unpack(e,t,cTe);t+=ie.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],d=e[t++],u=e[t++],m=e[t++],p=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ie.clone(o,n._ellipsoid),n._semiMajorAxis=r,n._semiMinorAxis=s,n._rotation=a,n._height=c,n._granularity=d,n._extrudedHeight=u,n._numberOfVerticalLines=m,n._offsetAttribute=p===-1?void 0:p,n):(Qb.height=c,Qb.extrudedHeight=u,Qb.granularity=d,Qb.rotation=a,Qb.semiMajorAxis=r,Qb.semiMinorAxis=s,Qb.numberOfVerticalLines=m,Qb.offsetAttribute=p===-1?void 0:p,new IR(Qb))};IR.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!W.equalsEpsilon(t,n,0,W.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines},r;if(i)o.extrudedHeight=n,o.offsetAttribute=e._offsetAttribute,r=Hct(o);else if(r=zct(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===hn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new Zt({attributes:r.attributes,indices:r.indices,primitiveType:ve.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var Vu=IR;var lTe=new U,dTe=h.ZERO,uTe=new h,mTe=new se;function Kct(e){this.id=e,this.vertexFormat=void 0,this.center=void 0,this.semiMajorAxis=void 0,this.semiMinorAxis=void 0,this.rotation=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function mf(e,t){ei.call(this,{entity:e,scene:t,geometryOptions:new Kct(e),geometryPropertyName:"ellipse",observedPropertyNames:["availability","position","ellipse"]}),this._onEntityPropertyChanged(e,"ellipse",e.ellipse,void 0)}l(Object.create)&&(mf.prototype=Object.create(ei.prototype),mf.prototype.constructor=mf);mf.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof jt){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,lTe)),l(o)||(o=U.WHITE),i.color=qt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,dTe,uTe))),new Pt({id:t,geometry:new jl(this._options),attributes:i})};mf.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,U.BLACK,lTe),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,dTe,uTe))),new Pt({id:t,geometry:new Vu(this._options),attributes:r})};mf.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};mf.prototype._isHidden=function(e,t){let n=e.position;return!l(n)||!l(t.semiMajorAxis)||!l(t.semiMinorAxis)||Ai.prototype._isHidden.call(this,e,t)};mf.prototype._isDynamic=function(e,t){return!e.position.isConstant||!t.semiMajorAxis.isConstant||!t.semiMinorAxis.isConstant||!j.isConstant(t.rotation)||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.stRotation)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.numberOfVerticalLines)||!j.isConstant(t.zIndex)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof jt)};mf.prototype._setStaticOptions=function(e,t){let n=j.getValueOrUndefined(t.height,qe.MINIMUM_VALUE),i=j.getValueOrDefault(t.heightReference,qe.MINIMUM_VALUE,st.NONE),o=j.getValueOrUndefined(t.extrudedHeight,qe.MINIMUM_VALUE),r=j.getValueOrDefault(t.extrudedHeightReference,qe.MINIMUM_VALUE,st.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof jt?pn.VERTEX_FORMAT:bo.MaterialSupport.TEXTURED.vertexFormat,s.center=e.position.getValue(qe.MINIMUM_VALUE,s.center),s.semiMajorAxis=t.semiMajorAxis.getValue(qe.MINIMUM_VALUE,s.semiMajorAxis),s.semiMinorAxis=t.semiMinorAxis.getValue(qe.MINIMUM_VALUE,s.semiMinorAxis),s.rotation=j.getValueOrUndefined(t.rotation,qe.MINIMUM_VALUE),s.granularity=j.getValueOrUndefined(t.granularity,qe.MINIMUM_VALUE),s.stRotation=j.getValueOrUndefined(t.stRotation,qe.MINIMUM_VALUE),s.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,qe.MINIMUM_VALUE),s.offsetAttribute=ei.computeGeometryOffsetAttribute(n,i,o,r),s.height=ei.getGeometryHeight(n,i),o=ei.getGeometryExtrudedHeight(o,r),o===ei.CLAMP_TO_GROUND&&(o=Vi.getMinimumMaximumHeights(jl.computeRectangle(s,mTe)).minimumTerrainHeight),s.extrudedHeight=o};mf.DynamicGeometryUpdater=PR;function PR(e,t,n){Si.call(this,e,t,n)}l(Object.create)&&(PR.prototype=Object.create(Si.prototype),PR.prototype.constructor=PR);PR.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.center)||!l(i.semiMajorAxis)||!l(i.semiMinorAxis)||Si.prototype._isHidden.call(this,e,t,n)};PR.prototype._setOptions=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,st.NONE),s=j.getValueOrUndefined(t.extrudedHeight,n),a=j.getValueOrDefault(t.extrudedHeightReference,n,st.NONE);l(s)&&!l(o)&&(o=0),i.center=j.getValueOrUndefined(e.position,n,i.center),i.semiMajorAxis=j.getValueOrUndefined(t.semiMajorAxis,n),i.semiMinorAxis=j.getValueOrUndefined(t.semiMinorAxis,n),i.rotation=j.getValueOrUndefined(t.rotation,n),i.granularity=j.getValueOrUndefined(t.granularity,n),i.stRotation=j.getValueOrUndefined(t.stRotation,n),i.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,n),i.offsetAttribute=ei.computeGeometryOffsetAttribute(o,r,s,a),i.height=ei.getGeometryHeight(o,r),s=ei.getGeometryExtrudedHeight(s,a),s===ei.CLAMP_TO_GROUND&&(s=Vi.getMinimumMaximumHeights(jl.computeRectangle(i,mTe)).minimumTerrainHeight),i.extrudedHeight=s};var PX=mf;var x1i=x(T(),1);var zRi=x(T(),1);var Jct=new h,jct=new h,Qct=new h,qct=new h,$ct=new h,elt=new h(1,1,1),hTe=Math.cos,fTe=Math.sin;function qb(e){e=e??B.EMPTY_OBJECT;let t=e.radii??elt,n=e.innerRadii??t,i=e.minimumClock??0,o=e.maximumClock??W.TWO_PI,r=e.minimumCone??0,s=e.maximumCone??W.PI,a=Math.round(e.stackPartitions??64),c=Math.round(e.slicePartitions??64),d=e.vertexFormat??Me.DEFAULT;this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._vertexFormat=Me.clone(d),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}qb.packedLength=2*h.packedLength+Me.packedLength+7;qb.pack=function(e,t,n){return n=n??0,h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,Me.pack(e._vertexFormat,t,n),n+=Me.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n]=e._offsetAttribute??-1,t};var pTe=new h,bTe=new h,gTe=new Me,ax={radii:pTe,innerRadii:bTe,vertexFormat:gTe,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};qb.unpack=function(e,t,n){t=t??0;let i=h.unpack(e,t,pTe);t+=h.packedLength;let o=h.unpack(e,t,bTe);t+=h.packedLength;let r=Me.unpack(e,t,gTe);t+=Me.packedLength;let s=e[t++],a=e[t++],c=e[t++],d=e[t++],u=e[t++],m=e[t++],p=e[t];return l(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._vertexFormat=Me.clone(r,n._vertexFormat),n._minimumClock=s,n._maximumClock=a,n._minimumCone=c,n._maximumCone=d,n._stackPartitions=u,n._slicePartitions=m,n._offsetAttribute=p===-1?void 0:p,n):(ax.minimumClock=s,ax.maximumClock=a,ax.minimumCone=c,ax.maximumCone=d,ax.stackPartitions=u,ax.slicePartitions=m,ax.offsetAttribute=p===-1?void 0:p,new qb(ax))};qb.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._vertexFormat,c=e._slicePartitions+1,d=e._stackPartitions+1;c=Math.round(c*Math.abs(o-i)/W.TWO_PI),d=Math.round(d*Math.abs(s-r)/W.PI),c<2&&(c=2),d<2&&(d=2);let u,m,p=0,b=[r],f=[i];for(u=0;u<d;u++)b.push(r+u*(s-r)/(d-1));for(b.push(s),m=0;m<c;m++)f.push(i+m*(o-i)/(c-1));f.push(o);let y=b.length,_=f.length,S=0,A=1,Z=n.x!==t.x||n.y!==t.y||n.z!==t.z,R=!1,G=!1,E=!1;Z&&(A=2,r>0&&(R=!0,S+=c-1),s<Math.PI&&(G=!0,S+=c-1),(o-i)%W.TWO_PI?(E=!0,S+=(d-1)*2+1):S+=1);let v=_*y*A,I=new Float64Array(v*3),X=new Array(v).fill(!1),Y=new Array(v).fill(!1),g=c*d*A,C=6*(g+S+1-(c+d)*A),V=De.createTypedArray(g,C),L=a.normal?new Float32Array(v*3):void 0,P=a.tangent?new Float32Array(v*3):void 0,N=a.bitangent?new Float32Array(v*3):void 0,O=a.st?new Float32Array(v*2):void 0,M=new Array(y),D=new Array(y);for(u=0;u<y;u++)M[u]=fTe(b[u]),D[u]=hTe(b[u]);let w=new Array(_),z=new Array(_);for(m=0;m<_;m++)z[m]=hTe(f[m]),w[m]=fTe(f[m]);for(u=0;u<y;u++)for(m=0;m<_;m++)I[p++]=t.x*M[u]*z[m],I[p++]=t.y*M[u]*w[m],I[p++]=t.z*D[u];let K=v/2;if(Z)for(u=0;u<y;u++)for(m=0;m<_;m++)I[p++]=n.x*M[u]*z[m],I[p++]=n.y*M[u]*w[m],I[p++]=n.z*D[u],X[K]=!0,u>0&&u!==y-1&&m!==0&&m!==_-1&&(Y[K]=!0),K++;p=0;let ee,H;for(u=1;u<y-2;u++)for(ee=u*_,H=(u+1)*_,m=1;m<_-2;m++)V[p++]=H+m,V[p++]=H+m+1,V[p++]=ee+m+1,V[p++]=H+m,V[p++]=ee+m+1,V[p++]=ee+m;if(Z){let nt=y*_;for(u=1;u<y-2;u++)for(ee=nt+u*_,H=nt+(u+1)*_,m=1;m<_-2;m++)V[p++]=H+m,V[p++]=ee+m,V[p++]=ee+m+1,V[p++]=H+m,V[p++]=ee+m+1,V[p++]=H+m+1}let te,q;if(Z){if(R)for(q=y*_,u=1;u<_-2;u++)V[p++]=u,V[p++]=u+1,V[p++]=q+u+1,V[p++]=u,V[p++]=q+u+1,V[p++]=q+u;if(G)for(te=y*_-_,q=y*_*A-_,u=1;u<_-2;u++)V[p++]=te+u+1,V[p++]=te+u,V[p++]=q+u,V[p++]=te+u+1,V[p++]=q+u,V[p++]=q+u+1}if(E){for(u=1;u<y-2;u++)q=_*y+_*u,te=_*u,V[p++]=q,V[p++]=te+_,V[p++]=te,V[p++]=q,V[p++]=q+_,V[p++]=te+_;for(u=1;u<y-2;u++)q=_*y+_*(u+1)-1,te=_*(u+1)-1,V[p++]=te+_,V[p++]=q,V[p++]=te,V[p++]=te+_,V[p++]=q+_,V[p++]=q}let de=new xn;a.position&&(de.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:I}));let ye=0,le=0,Ce=0,ge=0,Ee=v/2,Re,Xe=ie.fromCartesian3(t),we=ie.fromCartesian3(n);if(a.st||a.normal||a.tangent||a.bitangent){for(u=0;u<v;u++){Re=X[u]?we:Xe;let nt=h.fromArray(I,u*3,Jct),je=Re.geodeticSurfaceNormal(nt,jct);if(Y[u]&&h.negate(je,je),a.st){let et=k.negate(je,$ct);O[ye++]=Math.atan2(et.y,et.x)/W.TWO_PI+.5,O[ye++]=Math.asin(je.z)/Math.PI+.5}if(a.normal&&(L[le++]=je.x,L[le++]=je.y,L[le++]=je.z),a.tangent||a.bitangent){let et=Qct,Ie=0,Oe;if(X[u]&&(Ie=Ee),!R&&u>=Ie&&u<Ie+_*2?Oe=h.UNIT_X:Oe=h.UNIT_Z,h.cross(Oe,je,et),h.normalize(et,et),a.tangent&&(P[Ce++]=et.x,P[Ce++]=et.y,P[Ce++]=et.z),a.bitangent){let St=h.cross(je,et,qct);h.normalize(St,St),N[ge++]=St.x,N[ge++]=St.y,N[ge++]=St.z}}}a.st&&(de.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:O})),a.normal&&(de.normal=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:L})),a.tangent&&(de.tangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:P})),a.bitangent&&(de.bitangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:N}))}if(l(e._offsetAttribute)){let nt=I.length,je=e._offsetAttribute===hn.NONE?0:1,et=new Uint8Array(nt/3).fill(je);de.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:et})}return new Zt({attributes:de,indices:V,primitiveType:ve.TRIANGLES,boundingSphere:ue.fromEllipsoid(Xe),offsetAttribute:e._offsetAttribute})};var V6;qb.getUnitEllipsoid=function(){return l(V6)||(V6=qb.createGeometry(new qb({radii:new h(1,1,1),vertexFormat:Me.POSITION_ONLY}))),V6};var Pa=qb;var tlt=new jt(U.WHITE),G6=h.ZERO,E6=new h,nlt=new h,ilt=new h,L6=new U,olt=new h(1,1,1);function rlt(e){this.id=e,this.vertexFormat=void 0,this.radii=void 0,this.innerRadii=void 0,this.minimumClock=void 0,this.maximumClock=void 0,this.minimumCone=void 0,this.maximumCone=void 0,this.stackPartitions=void 0,this.slicePartitions=void 0,this.subdivisions=void 0,this.offsetAttribute=void 0}function Gu(e,t){Ai.call(this,{entity:e,scene:t,geometryOptions:new rlt(e),geometryPropertyName:"ellipsoid",observedPropertyNames:["availability","position","orientation","ellipsoid"]}),this._onEntityPropertyChanged(e,"ellipsoid",e.ellipsoid,void 0)}l(Object.create)&&(Gu.prototype=Object.create(Ai.prototype),Gu.prototype.constructor=Gu);Object.defineProperties(Gu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Gu.prototype.createFillGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r,s=new Vn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),a=this._distanceDisplayConditionProperty.getValue(e),c=Bn.fromDistanceDisplayCondition(a),d={show:s,distanceDisplayCondition:c,color:void 0,offset:void 0};if(this._materialProperty instanceof jt){let u;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||o)&&(u=this._materialProperty.color.getValue(e,L6)),l(u)||(u=U.WHITE),r=qt.fromColor(u),d.color=r}return l(this._options.offsetAttribute)&&(d.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,G6,E6))),new Pt({id:i,geometry:new Pa(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.ellipsoid,n),attributes:d})};Gu.prototype.createOutlineGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r=j.getValueOrDefault(this._outlineColorProperty,e,U.BLACK,L6),s=this._distanceDisplayConditionProperty.getValue(e),a={show:new Vn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(r),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(s),offset:void 0};return l(this._options.offsetAttribute)&&(a.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,G6,E6))),new Pt({id:i,geometry:new xu(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.ellipsoid,n),attributes:a})};Gu.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};Gu.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.radii)||Ai.prototype._isHidden.call(this,e,t)};Gu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.radii.isConstant||!j.isConstant(t.innerRadii)||!j.isConstant(t.stackPartitions)||!j.isConstant(t.slicePartitions)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.minimumClock)||!j.isConstant(t.maximumClock)||!j.isConstant(t.minimumCone)||!j.isConstant(t.maximumCone)||!j.isConstant(t.subdivisions)};Gu.prototype._setStaticOptions=function(e,t){let n=j.getValueOrDefault(t.heightReference,qe.MINIMUM_VALUE,st.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof jt?pn.VERTEX_FORMAT:bo.MaterialSupport.TEXTURED.vertexFormat,i.radii=t.radii.getValue(qe.MINIMUM_VALUE,i.radii),i.innerRadii=j.getValueOrUndefined(t.innerRadii,i.radii),i.minimumClock=j.getValueOrUndefined(t.minimumClock,qe.MINIMUM_VALUE),i.maximumClock=j.getValueOrUndefined(t.maximumClock,qe.MINIMUM_VALUE),i.minimumCone=j.getValueOrUndefined(t.minimumCone,qe.MINIMUM_VALUE),i.maximumCone=j.getValueOrUndefined(t.maximumCone,qe.MINIMUM_VALUE),i.stackPartitions=j.getValueOrUndefined(t.stackPartitions,qe.MINIMUM_VALUE),i.slicePartitions=j.getValueOrUndefined(t.slicePartitions,qe.MINIMUM_VALUE),i.subdivisions=j.getValueOrUndefined(t.subdivisions,qe.MINIMUM_VALUE),i.offsetAttribute=n!==st.NONE?hn.ALL:void 0};Gu.prototype._onEntityPropertyChanged=U0;Gu.DynamicGeometryUpdater=XX;function XX(e,t,n){Si.call(this,e,t,n),this._scene=e._scene,this._modelMatrix=new F,this._attributes=void 0,this._outlineAttributes=void 0,this._lastSceneMode=void 0,this._lastShow=void 0,this._lastOutlineShow=void 0,this._lastOutlineWidth=void 0,this._lastOutlineColor=void 0,this._lastOffset=new h,this._material={}}l(Object.create)&&(XX.prototype=Object.create(Si.prototype),XX.prototype.constructor=XX);XX.prototype.update=function(e){let t=this._entity,n=t.ellipsoid;if(!t.isShowing||!t.isAvailable(e)||!j.getValueOrDefault(n.show,e,!0)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let i=j.getValueOrUndefined(n.radii,e,nlt),o=l(i)?t.computeModelMatrixForHeightReference(e,n.heightReference,i.z*.5,this._scene.ellipsoid,this._modelMatrix):void 0;if(!l(o)||!l(i)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let r=j.getValueOrDefault(n.fill,e,!0),s=j.getValueOrDefault(n.outline,e,!1),a=j.getValueOrClonedDefault(n.outlineColor,e,U.BLACK,L6),c=sr.getValue(e,n.material??tlt,this._material),d=j.getValueOrUndefined(n.innerRadii,e,ilt),u=j.getValueOrUndefined(n.minimumClock,e),m=j.getValueOrUndefined(n.maximumClock,e),p=j.getValueOrUndefined(n.minimumCone,e),b=j.getValueOrUndefined(n.maximumCone,e),f=j.getValueOrUndefined(n.stackPartitions,e),y=j.getValueOrUndefined(n.slicePartitions,e),_=j.getValueOrUndefined(n.subdivisions,e),S=j.getValueOrDefault(n.outlineWidth,e,1),A=j.getValueOrDefault(n.heightReference,e,st.NONE),Z=A!==st.NONE?hn.ALL:void 0,R=this._scene.mode,G=R===re.SCENE3D&&A===st.NONE,E=this._options,v=this._geometryUpdater.shadowsProperty.getValue(e),X=this._geometryUpdater.distanceDisplayConditionProperty.getValue(e),Y=j.getValueOrDefault(this._geometryUpdater.terrainOffsetProperty,e,G6,E6);if(!G||this._lastSceneMode!==R||!l(this._primitive)||E.stackPartitions!==f||E.slicePartitions!==y||l(d)&&!h.equals(E.innerRadii!==d)||E.minimumClock!==u||E.maximumClock!==m||E.minimumCone!==p||E.maximumCone!==b||E.subdivisions!==_||this._lastOutlineWidth!==S||E.offsetAttribute!==Z){let C=this._primitives;C.removeAndDestroy(this._primitive),C.removeAndDestroy(this._outlinePrimitive),this._primitive=void 0,this._outlinePrimitive=void 0,this._lastSceneMode=R,this._lastOutlineWidth=S,E.stackPartitions=f,E.slicePartitions=y,E.subdivisions=_,E.offsetAttribute=Z,E.radii=h.clone(G?olt:i,E.radii),l(d)?G?E.innerRadii=h.fromElements(d.x/i.x,d.y/i.y,d.z/i.z,E.innerRadii):E.innerRadii=h.clone(d,E.innerRadii):E.innerRadii=void 0,E.minimumClock=u,E.maximumClock=m,E.minimumCone=p,E.maximumCone=b;let V=new bo({material:c,translucent:c.isTranslucent(),closed:!0});E.vertexFormat=V.vertexFormat;let L=this._geometryUpdater.createFillGeometryInstance(e,G,this._modelMatrix);this._primitive=C.add(new Wn({geometryInstances:L,appearance:V,asynchronous:!1,shadows:v}));let P=this._geometryUpdater.createOutlineGeometryInstance(e,G,this._modelMatrix);this._outlinePrimitive=C.add(new Wn({geometryInstances:P,appearance:new pn({flat:!0,translucent:P.attributes.color.value[3]!==255,renderState:{lineWidth:this._geometryUpdater._scene.clampLineWidth(S)}}),asynchronous:!1,shadows:v})),this._lastShow=r,this._lastOutlineShow=s,this._lastOutlineColor=U.clone(a,this._lastOutlineColor),this._lastDistanceDisplayCondition=X,this._lastOffset=h.clone(Y,this._lastOffset)}else if(this._primitive.ready){let C=this._primitive,V=this._outlinePrimitive;C.show=!0,V.show=!0,C.appearance.material=c;let L=this._attributes;l(L)||(L=C.getGeometryInstanceAttributes(t),this._attributes=L),r!==this._lastShow&&(L.show=Vn.toValue(r,L.show),this._lastShow=r);let P=this._outlineAttributes;l(P)||(P=V.getGeometryInstanceAttributes(t),this._outlineAttributes=P),s!==this._lastOutlineShow&&(P.show=Vn.toValue(s,P.show),this._lastOutlineShow=s),U.equals(a,this._lastOutlineColor)||(P.color=qt.toValue(a,P.color),U.clone(a,this._lastOutlineColor)),Ut.equals(X,this._lastDistanceDisplayCondition)||(L.distanceDisplayCondition=Bn.toValue(X,L.distanceDisplayCondition),P.distanceDisplayCondition=Bn.toValue(X,P.distanceDisplayCondition),Ut.clone(X,this._lastDistanceDisplayCondition)),h.equals(Y,this._lastOffset)||(L.offset=fo.toValue(Y,L.offset),P.offset=fo.toValue(Y,L.offset),h.clone(Y,this._lastOffset))}G&&(i.x=Math.max(i.x,.001),i.y=Math.max(i.y,.001),i.z=Math.max(i.z,.001),o=F.multiplyByScale(o,i,o),this._primitive.modelMatrix=o,this._outlinePrimitive.modelMatrix=o)};var YX=Gu;var cVi=x(T(),1);var W1i=x(T(),1);function XR(e){e=e??B.EMPTY_OBJECT;let t=e.vertexFormat??Me.DEFAULT;this._vertexFormat=t,this._workerName="createPlaneGeometry"}XR.packedLength=Me.packedLength;XR.pack=function(e,t,n){return n=n??0,Me.pack(e._vertexFormat,t,n),t};var yTe=new Me,slt={vertexFormat:yTe};XR.unpack=function(e,t,n){t=t??0;let i=Me.unpack(e,t,yTe);return l(n)?(n._vertexFormat=Me.clone(i,n._vertexFormat),n):new XR(slt)};var TO=new h(-.5,-.5,0),_O=new h(.5,.5,0);XR.createGeometry=function(e){let t=e._vertexFormat,n=new xn,i,o;if(t.position){if(o=new Float64Array(12),o[0]=TO.x,o[1]=TO.y,o[2]=0,o[3]=_O.x,o[4]=TO.y,o[5]=0,o[6]=_O.x,o[7]=_O.y,o[8]=0,o[9]=TO.x,o[10]=_O.y,o[11]=0,n.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:o}),t.normal){let r=new Float32Array(12);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=1,r[9]=0,r[10]=0,r[11]=1,n.normal=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:r})}if(t.st){let r=new Float32Array(8);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=1,r[5]=1,r[6]=0,r[7]=1,n.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:r})}if(t.tangent){let r=new Float32Array(12);r[0]=1,r[1]=0,r[2]=0,r[3]=1,r[4]=0,r[5]=0,r[6]=1,r[7]=0,r[8]=0,r[9]=1,r[10]=0,r[11]=0,n.tangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:r})}if(t.bitangent){let r=new Float32Array(12);r[0]=0,r[1]=1,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=1,r[8]=0,r[9]=0,r[10]=1,r[11]=0,n.bitangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:r})}i=new Uint16Array(6),i[0]=0,i[1]=1,i[2]=2,i[3]=0,i[4]=2,i[5]=3}return new Zt({attributes:n,indices:i,primitiveType:ve.TRIANGLES,boundingSphere:new ue(h.ZERO,Math.sqrt(2))})};var NX=XR;var k1i=x(T(),1);function YR(){this._workerName="createPlaneOutlineGeometry"}YR.packedLength=0;YR.pack=function(e,t){return t};YR.unpack=function(e,t,n){return l(n)?n:new YR};var cx=new h(-.5,-.5,0),SO=new h(.5,.5,0);YR.createGeometry=function(){let e=new xn,t=new Uint16Array(8),n=new Float64Array(12);return n[0]=cx.x,n[1]=cx.y,n[2]=cx.z,n[3]=SO.x,n[4]=cx.y,n[5]=cx.z,n[6]=SO.x,n[7]=SO.y,n[8]=cx.z,n[9]=cx.x,n[10]=SO.y,n[11]=cx.z,e.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:n}),t[0]=0,t[1]=1,t[2]=1,t[3]=2,t[4]=2,t[5]=3,t[6]=3,t[7]=0,new Zt({attributes:e,indices:t,primitiveType:ve.LINES,boundingSphere:new ue(h.ZERO,Math.sqrt(2))})};var wX=YR;var alt=new h,xTe=new U;function clt(e){this.id=e,this.vertexFormat=void 0,this.plane=void 0,this.dimensions=void 0}function Mm(e,t){Ai.call(this,{entity:e,scene:t,geometryOptions:new clt(e),geometryPropertyName:"plane",observedPropertyNames:["availability","position","orientation","plane"]}),this._onEntityPropertyChanged(e,"plane",e.plane,void 0)}l(Object.create)&&(Mm.prototype=Object.create(Ai.prototype),Mm.prototype.constructor=Mm);Mm.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=Bn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof jt){let b;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(b=this._materialProperty.color.getValue(e,xTe)),l(b)||(b=U.WHITE),o=qt.fromColor(b),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};let c=t.plane,d=this._options,u=t.computeModelMatrix(e),m=j.getValueOrDefault(c.plane,e,d.plane),p=j.getValueOrUndefined(c.dimensions,e,d.dimensions);return d.plane=m,d.dimensions=p,u=W6(m,p,u,u),new Pt({id:t,geometry:new NX(this._options),modelMatrix:u,attributes:i})};Mm.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,U.BLACK,xTe),o=this._distanceDisplayConditionProperty.getValue(e),r=t.plane,s=this._options,a=t.computeModelMatrix(e),c=j.getValueOrDefault(r.plane,e,s.plane),d=j.getValueOrUndefined(r.dimensions,e,s.dimensions);return s.plane=c,s.dimensions=d,a=W6(c,d,a,a),new Pt({id:t,geometry:new wX,modelMatrix:a,attributes:{show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o)}})};Mm.prototype._isHidden=function(e,t){return!l(t.plane)||!l(t.dimensions)||!l(e.position)||Ai.prototype._isHidden.call(this,e,t)};Mm.prototype._getIsClosed=function(e){return!1};Mm.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.plane.isConstant||!t.dimensions.isConstant||!j.isConstant(t.outlineWidth)};Mm.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof jt,i=this._options;i.vertexFormat=n?pn.VERTEX_FORMAT:bo.MaterialSupport.TEXTURED.vertexFormat,i.plane=t.plane.getValue(qe.MINIMUM_VALUE,i.plane),i.dimensions=t.dimensions.getValue(qe.MINIMUM_VALUE,i.dimensions)};Mm.DynamicGeometryUpdater=NR;function NR(e,t,n){Si.call(this,e,t,n)}l(Object.create)&&(NR.prototype=Object.create(Si.prototype),NR.prototype.constructor=NR);NR.prototype._isHidden=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(e.position,n,alt);return!l(o)||!l(i.plane)||!l(i.dimensions)||Si.prototype._isHidden.call(this,e,t,n)};NR.prototype._setOptions=function(e,t,n){let i=this._options;i.plane=j.getValueOrDefault(t.plane,n,i.plane),i.dimensions=j.getValueOrUndefined(t.dimensions,n,i.dimensions)};var llt=new h,dlt=new h,ult=new h,mlt=new h,hlt=new $,flt=new $,plt=new F;function W6(e,t,n,i){let o=e.normal,r=e.distance,s=h.multiplyByScalar(o,-r,ult),a=h.clone(h.UNIT_Z,dlt);W.equalsEpsilon(Math.abs(h.dot(a,o)),1,W.EPSILON8)&&(a=h.clone(h.UNIT_Y,a));let c=h.cross(a,o,llt);a=h.cross(o,c,a),h.normalize(c,c),h.normalize(a,a);let d=hlt;$.setColumn(d,0,c,d),$.setColumn(d,1,a,d),$.setColumn(d,2,o,d);let u=h.fromElements(t.x,t.y,1,mlt),m=$.multiplyByScale(d,u,flt),p=F.fromRotationTranslation(m,s,plt);return F.multiplyTransformation(n,p,i)}Mm.createPrimitiveMatrix=W6;var MX=Mm;var LGi=x(T(),1);var FVi=x(T(),1);var blt=new h,glt=new it,ylt=new k,xlt=new k,Tlt=new h,_lt=new h,Slt=new h,kX=new h,Alt=new h,Zlt=new h,TTe=new Ne,Clt=new $,Rlt=new $,Vlt=new h;function Glt(e,t,n,i,o,r,s,a,c){let d=e.positions,u=ri.triangulate(e.positions2D,e.holes);u.length<3&&(u=[0,1,2]);let m=De.createTypedArray(d.length,u.length);m.set(u);let p=Clt;if(i!==0){let g=Ne.fromAxisAngle(s,i,TTe);if(p=$.fromQuaternion(g,p),t.tangent||t.bitangent){g=Ne.fromAxisAngle(s,-i,TTe);let C=$.fromQuaternion(g,Rlt);a=h.normalize($.multiplyByVector(C,a,a),a),t.bitangent&&(c=h.normalize(h.cross(s,a,c),c))}}else p=$.clone($.IDENTITY,p);let b=xlt;t.st&&(b.x=n.x,b.y=n.y);let f=d.length,y=f*3,_=new Float64Array(y),S=t.normal?new Float32Array(y):void 0,A=t.tangent?new Float32Array(y):void 0,Z=t.bitangent?new Float32Array(y):void 0,R=t.st?new Float32Array(f*2):void 0,G=0,E=0,v=0,I=0,X=0;for(let g=0;g<f;g++){let C=d[g];if(_[G++]=C.x,_[G++]=C.y,_[G++]=C.z,t.st)if(l(o)&&o.positions.length===f)R[X++]=o.positions[g].x,R[X++]=o.positions[g].y;else{let V=$.multiplyByVector(p,C,blt),L=r(V,ylt);k.subtract(L,b,L);let P=W.clamp(L.x/n.width,0,1),N=W.clamp(L.y/n.height,0,1);R[X++]=P,R[X++]=N}t.normal&&(S[E++]=s.x,S[E++]=s.y,S[E++]=s.z),t.tangent&&(A[I++]=a.x,A[I++]=a.y,A[I++]=a.z),t.bitangent&&(Z[v++]=c.x,Z[v++]=c.y,Z[v++]=c.z)}let Y=new xn;return t.position&&(Y.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:_})),t.normal&&(Y.normal=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:S})),t.tangent&&(Y.tangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:A})),t.bitangent&&(Y.bitangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:Z})),t.st&&(Y.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:R})),new Zt({attributes:Y,indices:m,primitiveType:ve.TRIANGLES})}function mS(e){e=e??B.EMPTY_OBJECT;let t=e.polygonHierarchy,n=e.textureCoordinates,i=e.vertexFormat??Me.DEFAULT;this._vertexFormat=Me.clone(i),this._polygonHierarchy=t,this._stRotation=e.stRotation??0,this._ellipsoid=ie.clone(e.ellipsoid??ie.default),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=n,this.packedLength=jn.computeHierarchyPackedLength(t,h)+Me.packedLength+ie.packedLength+(l(n)?jn.computeHierarchyPackedLength(n,k):1)+2}mS.fromPositions=function(e){e=e??B.EMPTY_OBJECT;let t={polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates};return new mS(t)};mS.pack=function(e,t,n){return n=n??0,n=jn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Me.pack(e._vertexFormat,t,n),n+=Me.packedLength,t[n++]=e._stRotation,l(e._textureCoordinates)?n=jn.packPolygonHierarchy(e._textureCoordinates,t,n,k):t[n++]=-1,t[n++]=e.packedLength,t};var Elt=ie.clone(ie.UNIT_SPHERE),Llt=new Me,Wlt={polygonHierarchy:{}};mS.unpack=function(e,t,n){t=t??0;let i=jn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ie.unpack(e,t,Elt);t+=ie.packedLength;let r=Me.unpack(e,t,Llt);t+=Me.packedLength;let s=e[t++],a=e[t]===-1?void 0:jn.unpackPolygonHierarchy(e,t,k);l(a)?(t=a.startingIndex,delete a.startingIndex):t++;let c=e[t++];return l(n)||(n=new mS(Wlt)),n._polygonHierarchy=i,n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Me.clone(r,n._vertexFormat),n._stRotation=s,n._textureCoordinates=a,n.packedLength=c,n};mS.createGeometry=function(e){let t=e._vertexFormat,n=e._polygonHierarchy,i=e._stRotation,o=e._textureCoordinates,r=l(o),s=n.positions;if(s=Co(s,h.equalsEpsilon,!0),s.length<3)return;let a=Tlt,c=_lt,d=Slt,u=Alt,m=Zlt;if(!Lb.computeProjectTo2DArguments(s,kX,u,m))return;if(a=h.cross(u,m,a),a=h.normalize(a,a),!h.equalsEpsilon(kX,h.ZERO,W.EPSILON6)){let X=e._ellipsoid.geodeticSurfaceNormal(kX,Vlt);h.dot(a,X)<0&&(a=h.negate(a,a),u=h.negate(u,u))}let b=Lb.createProjectPointsTo2DFunction(kX,u,m),f=Lb.createProjectPointTo2DFunction(kX,u,m);t.tangent&&(c=h.clone(u,c)),t.bitangent&&(d=h.clone(m,d));let y=jn.polygonsFromHierarchy(n,r,b,!1),_=y.hierarchy,S=y.polygons,A=function(X){return X},Z=r?jn.polygonsFromHierarchy(o,!0,A,!1).polygons:void 0;if(_.length===0)return;s=_[0].outerRing;let R=ue.fromPoints(s),G=jn.computeBoundingRectangle(a,f,s,i,glt),E=[];for(let X=0;X<S.length;X++){let Y=new Pt({geometry:Glt(S[X],t,G,i,r?Z[X]:void 0,f,a,c,d)});E.push(Y)}let v=Un.combineInstances(E)[0];v.attributes.position.values=new Float64Array(v.attributes.position.values),v.indices=De.createTypedArray(v.attributes.position.values.length/3,v.indices);let I=v.attributes;return t.position||delete I.position,new Zt({attributes:I,indices:v.indices,primitiveType:v.primitiveType,boundingSphere:R})};var UX=mS;var tGi=x(T(),1);var _Te=[],AO=[];function vlt(e,t,n,i,o){let s=As.fromPoints(t,e).projectPointsOntoPlane(t,_Te);ri.computeWindingOrder2D(s)===ks.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,d,u=t.length,m=0;if(i)for(c=new Float64Array(u*2*3),d=0;d<u;d++){let f=t[d],y=t[(d+1)%u];c[m++]=f.x,c[m++]=f.y,c[m++]=f.z,c[m++]=y.x,c[m++]=y.y,c[m++]=y.z}else{let f=0;if(o===ln.GEODESIC)for(d=0;d<u;d++)f+=jn.subdivideLineCount(t[d],t[(d+1)%u],n);else if(o===ln.RHUMB)for(d=0;d<u;d++)f+=jn.subdivideRhumbLineCount(e,t[d],t[(d+1)%u],n);for(c=new Float64Array(f*3),d=0;d<u;d++){let y;o===ln.GEODESIC?y=jn.subdivideLine(t[d],t[(d+1)%u],n,AO):o===ln.RHUMB&&(y=jn.subdivideRhumbLine(e,t[d],t[(d+1)%u],n,AO));let _=y.length;for(let S=0;S<_;++S)c[m++]=y[S]}}u=c.length/3;let p=u*2,b=De.createTypedArray(u,p);for(m=0,d=0;d<u-1;d++)b[m++]=d,b[m++]=d+1;return b[m++]=u-1,b[m++]=0,new Pt({geometry:new Zt({attributes:new xn({position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:c})}),indices:b,primitiveType:ve.LINES})})}function Flt(e,t,n,i,o){let s=As.fromPoints(t,e).projectPointsOntoPlane(t,_Te);ri.computeWindingOrder2D(s)===ks.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,d,u=t.length,m=new Array(u),p=0;if(i)for(c=new Float64Array(u*2*3*2),d=0;d<u;++d){m[d]=p/3;let _=t[d],S=t[(d+1)%u];c[p++]=_.x,c[p++]=_.y,c[p++]=_.z,c[p++]=S.x,c[p++]=S.y,c[p++]=S.z}else{let _=0;if(o===ln.GEODESIC)for(d=0;d<u;d++)_+=jn.subdivideLineCount(t[d],t[(d+1)%u],n);else if(o===ln.RHUMB)for(d=0;d<u;d++)_+=jn.subdivideRhumbLineCount(e,t[d],t[(d+1)%u],n);for(c=new Float64Array(_*3*2),d=0;d<u;++d){m[d]=p/3;let S;o===ln.GEODESIC?S=jn.subdivideLine(t[d],t[(d+1)%u],n,AO):o===ln.RHUMB&&(S=jn.subdivideRhumbLine(e,t[d],t[(d+1)%u],n,AO));let A=S.length;for(let Z=0;Z<A;++Z)c[p++]=S[Z]}}u=c.length/6;let b=m.length,f=(u*2+b)*2,y=De.createTypedArray(u+b,f);for(p=0,d=0;d<u;++d)y[p++]=d,y[p++]=(d+1)%u,y[p++]=d+u,y[p++]=(d+1)%u+u;for(d=0;d<b;d++){let _=m[d];y[p++]=_,y[p++]=_+u}return new Pt({geometry:new Zt({attributes:new xn({position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:c})}),indices:y,primitiveType:ve.LINES})})}function hS(e){let t=e.polygonHierarchy,n=e.ellipsoid??ie.default,i=e.granularity??W.RADIANS_PER_DEGREE,o=e.perPositionHeight??!1,r=o&&l(e.extrudedHeight),s=e.arcType??ln.GEODESIC,a=e.height??0,c=e.extrudedHeight??a;if(!r){let d=Math.max(a,c);c=Math.min(a,c),a=d}this._ellipsoid=ie.clone(n),this._granularity=i,this._height=a,this._extrudedHeight=c,this._arcType=s,this._polygonHierarchy=t,this._perPositionHeight=o,this._perPositionHeightExtrude=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=jn.computeHierarchyPackedLength(t,h)+ie.packedLength+8}hS.pack=function(e,t,n){return n=n??0,n=jn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._arcType,t[n++]=e._offsetAttribute??-1,t[n]=e.packedLength,t};var Ilt=ie.clone(ie.UNIT_SPHERE),Plt={polygonHierarchy:{}};hS.unpack=function(e,t,n){t=t??0;let i=jn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ie.unpack(e,t,Ilt);t+=ie.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++]===1,d=e[t++]===1,u=e[t++],m=e[t++],p=e[t];return l(n)||(n=new hS(Plt)),n._polygonHierarchy=i,n._ellipsoid=ie.clone(o,n._ellipsoid),n._height=r,n._extrudedHeight=s,n._granularity=a,n._perPositionHeight=d,n._perPositionHeightExtrude=c,n._arcType=u,n._offsetAttribute=m===-1?void 0:m,n.packedLength=p,n};hS.fromPositions=function(e){e=e??B.EMPTY_OBJECT;let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute};return new hS(t)};hS.createGeometry=function(e){let t=e._ellipsoid,n=e._granularity,i=e._polygonHierarchy,o=e._perPositionHeight,r=e._arcType,s=jn.polygonOutlinesFromHierarchy(i,!o,t);if(s.length===0)return;let a,c=[],d=W.chordLength(n,t.maximumRadius),u=e._height,m=e._extrudedHeight,p=e._perPositionHeightExtrude||!W.equalsEpsilon(u,m,0,W.EPSILON2),b,f;if(p)for(f=0;f<s.length;f++){if(a=Flt(t,s[f],d,o,r),a.geometry=jn.scaleToGeodeticHeightExtruded(a.geometry,u,m,t,o),l(e._offsetAttribute)){let S=a.geometry.attributes.position.values.length/3,A=new Uint8Array(S);e._offsetAttribute===hn.TOP?A=A.fill(1,0,S/2):(b=e._offsetAttribute===hn.NONE?0:1,A=A.fill(b)),a.geometry.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}c.push(a)}else for(f=0;f<s.length;f++){if(a=vlt(t,s[f],d,o,r),a.geometry.attributes.position.values=ri.scaleToGeodeticHeight(a.geometry.attributes.position.values,u,t,!o),l(e._offsetAttribute)){let S=a.geometry.attributes.position.values.length;b=e._offsetAttribute===hn.NONE?0:1;let A=new Uint8Array(S/3).fill(b);a.geometry.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}c.push(a)}let y=Un.combineInstances(c)[0],_=ue.fromVertices(y.attributes.position.values);return new Zt({attributes:y.attributes,indices:y.indices,primitiveType:y.primitiveType,boundingSphere:_,offsetAttribute:e._offsetAttribute})};var DX=hS;var STe="Entity polygons cannot have both height and perPositionHeight. height will be ignored",ATe="heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored",ZTe=new U,CTe=h.ZERO,RTe=new h,VTe=new se,Xlt=[],Ylt=new k;function Nlt(e){this.id=e,this.vertexFormat=void 0,this.polygonHierarchy=void 0,this.perPositionHeight=void 0,this.closeTop=void 0,this.closeBottom=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.offsetAttribute=void 0,this.arcType=void 0,this.textureCoordinates=void 0}function Eu(e,t){ei.call(this,{entity:e,scene:t,geometryOptions:new Nlt(e),geometryPropertyName:"polygon",observedPropertyNames:["availability","polygon"]}),this._onEntityPropertyChanged(e,"polygon",e.polygon,void 0)}l(Object.create)&&(Eu.prototype=Object.create(ei.prototype),Eu.prototype.constructor=Eu);Eu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o={show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof jt){let s;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(s=this._materialProperty.color.getValue(e,ZTe)),l(s)||(s=U.WHITE),o.color=qt.fromColor(s)}l(i.offsetAttribute)&&(o.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,CTe,RTe)));let r;return i.perPositionHeight&&!l(i.extrudedHeight)?r=new UX(i):r=new eb(i),new Pt({id:t,geometry:r,attributes:o})};Eu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o=j.getValueOrDefault(this._outlineColorProperty,e,U.BLACK,ZTe),r=this._distanceDisplayConditionProperty.getValue(e),s={show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(o),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(r),offset:void 0};l(i.offsetAttribute)&&(s.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,CTe,RTe)));let a;return i.perPositionHeight&&!l(i.extrudedHeight)?a=new vm(i):a=new DX(i),new Pt({id:t,geometry:a,attributes:s})};Eu.prototype._computeCenter=function(e,t){let n=j.getValueOrUndefined(this._entity.polygon.hierarchy,e);if(!l(n))return;let i=n.positions;if(i.length===0)return;let o=this._scene.ellipsoid,r=As.fromPoints(i,o),s=r.projectPointsOntoPlane(i,Xlt),a=s.length,c=0,d=a-1,u=new k;for(let p=0;p<a;d=p++){let b=s[p],f=s[d],y=b.x*f.y-f.x*b.y,_=k.add(b,f,Ylt);_=k.multiplyByScalar(_,y,_),u=k.add(u,_,u),c+=y}let m=1/(c*3);return u=k.multiplyByScalar(u,m,u),r.projectPointOntoEllipsoid(u,t)};Eu.prototype._isHidden=function(e,t){return!l(t.hierarchy)||Ai.prototype._isHidden.call(this,e,t)};Eu.prototype._isOnTerrain=function(e,t){let n=ei.prototype._isOnTerrain.call(this,e,t),i=t.perPositionHeight,o=l(i)&&(i.isConstant?i.getValue(qe.MINIMUM_VALUE):!0);return n&&!o};Eu.prototype._isDynamic=function(e,t){return!t.hierarchy.isConstant||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.stRotation)||!j.isConstant(t.textureCoordinates)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.perPositionHeight)||!j.isConstant(t.closeTop)||!j.isConstant(t.closeBottom)||!j.isConstant(t.zIndex)||!j.isConstant(t.arcType)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof jt)};Eu.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof jt,i=this._options;i.vertexFormat=n?pn.VERTEX_FORMAT:bo.MaterialSupport.TEXTURED.vertexFormat;let o=t.hierarchy.getValue(qe.MINIMUM_VALUE),r=j.getValueOrUndefined(t.height,qe.MINIMUM_VALUE),s=j.getValueOrDefault(t.heightReference,qe.MINIMUM_VALUE,st.NONE),a=j.getValueOrUndefined(t.extrudedHeight,qe.MINIMUM_VALUE),c=j.getValueOrDefault(t.extrudedHeightReference,qe.MINIMUM_VALUE,st.NONE),d=j.getValueOrDefault(t.perPositionHeight,qe.MINIMUM_VALUE,!1);r=ei.getGeometryHeight(r,s);let u;if(d?(l(r)&&(r=void 0,_t(STe)),s!==st.NONE&&d&&(r=void 0,_t(ATe))):(l(a)&&!l(r)&&(r=0),u=ei.computeGeometryOffsetAttribute(r,s,a,c)),i.polygonHierarchy=o,i.granularity=j.getValueOrUndefined(t.granularity,qe.MINIMUM_VALUE),i.stRotation=j.getValueOrUndefined(t.stRotation,qe.MINIMUM_VALUE),i.perPositionHeight=d,i.closeTop=j.getValueOrDefault(t.closeTop,qe.MINIMUM_VALUE,!0),i.closeBottom=j.getValueOrDefault(t.closeBottom,qe.MINIMUM_VALUE,!0),i.offsetAttribute=u,i.height=r,i.arcType=j.getValueOrDefault(t.arcType,qe.MINIMUM_VALUE,ln.GEODESIC),i.textureCoordinates=j.getValueOrUndefined(t.textureCoordinates,qe.MINIMUM_VALUE),a=ei.getGeometryExtrudedHeight(a,c),a===ei.CLAMP_TO_GROUND){let m=eb.computeRectangleFromPositions(i.polygonHierarchy.positions,i.ellipsoid,i.arcType,VTe);a=Vi.getMinimumMaximumHeights(m).minimumTerrainHeight}i.extrudedHeight=a};Eu.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight,i=l(n)&&n!==t;return!e.perPositionHeight&&(!i&&t===0||i&&e.closeTop&&e.closeBottom)};Eu.DynamicGeometryUpdater=wR;function wR(e,t,n){Si.call(this,e,t,n)}l(Object.create)&&(wR.prototype=Object.create(Si.prototype),wR.prototype.constructor=wR);wR.prototype._isHidden=function(e,t,n){return!l(this._options.polygonHierarchy)||Si.prototype._isHidden.call(this,e,t,n)};wR.prototype._setOptions=function(e,t,n){let i=this._options;i.polygonHierarchy=j.getValueOrUndefined(t.hierarchy,n);let o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,st.NONE),s=j.getValueOrDefault(t.extrudedHeightReference,n,st.NONE),a=j.getValueOrUndefined(t.extrudedHeight,n),c=j.getValueOrUndefined(t.perPositionHeight,n);o=ei.getGeometryHeight(o,s);let d;if(c?(l(o)&&(o=void 0,_t(STe)),r!==st.NONE&&c&&(o=void 0,_t(ATe))):(l(a)&&!l(o)&&(o=0),d=ei.computeGeometryOffsetAttribute(o,r,a,s)),i.granularity=j.getValueOrUndefined(t.granularity,n),i.stRotation=j.getValueOrUndefined(t.stRotation,n),i.textureCoordinates=j.getValueOrUndefined(t.textureCoordinates,n),i.perPositionHeight=j.getValueOrUndefined(t.perPositionHeight,n),i.closeTop=j.getValueOrDefault(t.closeTop,n,!0),i.closeBottom=j.getValueOrDefault(t.closeBottom,n,!0),i.offsetAttribute=d,i.height=o,i.arcType=j.getValueOrDefault(t.arcType,n,ln.GEODESIC),a=ei.getGeometryExtrudedHeight(a,s),a===ei.CLAMP_TO_GROUND){let u=eb.computeRectangleFromPositions(i.polygonHierarchy.positions,i.ellipsoid,i.arcType,VTe);a=Vi.getMinimumMaximumHeights(u).minimumTerrainHeight}i.extrudedHeight=a};var OX=Eu;var NEi=x(T(),1);var eEi=x(T(),1);function wlt(e,t,n,i){let o=new xn;i.position&&(o.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:e}));let r=t.length,s=e.length/3,a=(s-r*2)/(r*2),c=ri.triangulate(t),d=(a-1)*r*6+c.length*2,u=De.createTypedArray(s,d),m,p,b,f,y,_,S=r*2,A=0;for(m=0;m<a-1;m++){for(p=0;p<r-1;p++)b=p*2+m*r*2,_=b+S,f=b+1,y=f+S,u[A++]=f,u[A++]=b,u[A++]=y,u[A++]=y,u[A++]=b,u[A++]=_;b=r*2-2+m*r*2,f=b+1,y=f+S,_=b+S,u[A++]=f,u[A++]=b,u[A++]=y,u[A++]=y,u[A++]=b,u[A++]=_}if(i.st||i.tangent||i.bitangent){let G=new Float32Array(s*2),E=1/(a-1),v=1/n.height,I=n.height/2,X,Y,g=0;for(m=0;m<a;m++){for(X=m*E,Y=v*(t[0].y+I),G[g++]=X,G[g++]=Y,p=1;p<r;p++)Y=v*(t[p].y+I),G[g++]=X,G[g++]=Y,G[g++]=X,G[g++]=Y;Y=v*(t[0].y+I),G[g++]=X,G[g++]=Y}for(p=0;p<r;p++)X=0,Y=v*(t[p].y+I),G[g++]=X,G[g++]=Y;for(p=0;p<r;p++)X=(a-1)*E,Y=v*(t[p].y+I),G[g++]=X,G[g++]=Y;o.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:new Float32Array(G)})}let Z=s-r*2;for(m=0;m<c.length;m+=3){let G=c[m]+Z,E=c[m+1]+Z,v=c[m+2]+Z;u[A++]=G,u[A++]=E,u[A++]=v,u[A++]=v+r,u[A++]=E+r,u[A++]=G+r}let R=new Zt({attributes:o,indices:u,boundingSphere:ue.fromVertices(e),primitiveType:ve.TRIANGLES});if(i.normal&&(R=Un.computeNormal(R)),i.tangent||i.bitangent){try{R=Un.computeTangentAndBitangent(R)}catch{_t("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}i.tangent||(R.attributes.tangent=void 0),i.bitangent||(R.attributes.bitangent=void 0),i.st||(R.attributes.st=void 0)}return R}function zX(e){e=e??B.EMPTY_OBJECT;let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ie.clone(e.ellipsoid??ie.default),this._cornerType=e.cornerType??Ki.ROUNDED,this._vertexFormat=Me.clone(e.vertexFormat??Me.DEFAULT),this._granularity=e.granularity??W.RADIANS_PER_DEGREE,this._workerName="createPolylineVolumeGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*k.packedLength,this.packedLength=i+ie.packedLength+Me.packedLength+2}zX.pack=function(e,t,n){n=n??0;let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=k.packedLength)k.pack(s[i],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Me.pack(e._vertexFormat,t,n),n+=Me.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var GTe=ie.clone(ie.UNIT_SPHERE),ETe=new Me,BX={polylinePositions:void 0,shapePositions:void 0,ellipsoid:GTe,vertexFormat:ETe,cornerType:void 0,granularity:void 0};zX.unpack=function(e,t,n){t=t??0;let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=k.packedLength)s[i]=k.unpack(e,t);let a=ie.unpack(e,t,GTe);t+=ie.packedLength;let c=Me.unpack(e,t,ETe);t+=Me.packedLength;let d=e[t++],u=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=ie.clone(a,n._ellipsoid),n._vertexFormat=Me.clone(c,n._vertexFormat),n._cornerType=d,n._granularity=u,n):(BX.polylinePositions=r,BX.shapePositions=s,BX.cornerType=d,BX.granularity=u,new zX(BX))};var Mlt=new it;zX.createGeometry=function(e){let t=e._positions,n=Co(t,h.equalsEpsilon),i=e._shape;if(i=of.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;ri.computeWindingOrder2D(i)===ks.CLOCKWISE&&i.reverse();let o=it.fromPoints(i,Mlt),r=of.computePositions(n,i,o,e,!0);return wlt(r,i,o,e._vertexFormat)};var HX=zX;var _Ei=x(T(),1);function klt(e,t){let n=new xn;n.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:e});let i=t.length,o=n.position.values.length/3,s=e.length/3/i,a=De.createTypedArray(o,2*i*(s+1)),c,d,u=0;c=0;let m=c*i;for(d=0;d<i-1;d++)a[u++]=d+m,a[u++]=d+m+1;for(a[u++]=i-1+m,a[u++]=m,c=s-1,m=c*i,d=0;d<i-1;d++)a[u++]=d+m,a[u++]=d+m+1;for(a[u++]=i-1+m,a[u++]=m,c=0;c<s-1;c++){let b=i*c,f=b+i;for(d=0;d<i;d++)a[u++]=d+b,a[u++]=d+f}return new Zt({attributes:n,indices:De.createTypedArray(o,a),boundingSphere:ue.fromVertices(e),primitiveType:ve.LINES})}function JX(e){e=e??B.EMPTY_OBJECT;let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ie.clone(e.ellipsoid??ie.default),this._cornerType=e.cornerType??Ki.ROUNDED,this._granularity=e.granularity??W.RADIANS_PER_DEGREE,this._workerName="createPolylineVolumeOutlineGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*k.packedLength,this.packedLength=i+ie.packedLength+2}JX.pack=function(e,t,n){n=n??0;let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=k.packedLength)k.pack(s[i],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var LTe=ie.clone(ie.UNIT_SPHERE),KX={polylinePositions:void 0,shapePositions:void 0,ellipsoid:LTe,height:void 0,cornerType:void 0,granularity:void 0};JX.unpack=function(e,t,n){t=t??0;let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=k.packedLength)s[i]=k.unpack(e,t);let a=ie.unpack(e,t,LTe);t+=ie.packedLength;let c=e[t++],d=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=ie.clone(a,n._ellipsoid),n._cornerType=c,n._granularity=d,n):(KX.polylinePositions=r,KX.shapePositions=s,KX.cornerType=c,KX.granularity=d,new JX(KX))};var Ult=new it;JX.createGeometry=function(e){let t=e._positions,n=Co(t,h.equalsEpsilon),i=e._shape;if(i=of.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;ri.computeWindingOrder2D(i)===ks.CLOCKWISE&&i.reverse();let o=it.fromPoints(i,Ult),r=of.computePositions(n,i,o,e,!1);return klt(r,i)};var jX=JX;var WTe=new U;function Dlt(e){this.id=e,this.vertexFormat=void 0,this.polylinePositions=void 0,this.shapePositions=void 0,this.cornerType=void 0,this.granularity=void 0}function Lp(e,t){Ai.call(this,{entity:e,scene:t,geometryOptions:new Dlt(e),geometryPropertyName:"polylineVolume",observedPropertyNames:["availability","polylineVolume"]}),this._onEntityPropertyChanged(e,"polylineVolume",e.polylineVolume,void 0)}l(Object.create)&&(Lp.prototype=Object.create(Ai.prototype),Lp.prototype.constructor=Lp);Lp.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=Bn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof jt){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,WTe)),l(c)||(c=U.WHITE),o=qt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new Pt({id:t,geometry:new HX(this._options),attributes:i})};Lp.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,U.BLACK,WTe),o=this._distanceDisplayConditionProperty.getValue(e);return new Pt({id:t,geometry:new jX(this._options),attributes:{show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o)}})};Lp.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.shape)||Ai.prototype._isHidden.call(this,e,t)};Lp.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!t.shape.isConstant||!j.isConstant(t.granularity)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.cornerType)};Lp.prototype._setStaticOptions=function(e,t){let n=t.granularity,i=t.cornerType,o=this._options,r=this._materialProperty instanceof jt;o.vertexFormat=r?pn.VERTEX_FORMAT:bo.MaterialSupport.TEXTURED.vertexFormat,o.polylinePositions=t.positions.getValue(qe.MINIMUM_VALUE,o.polylinePositions),o.shapePositions=t.shape.getValue(qe.MINIMUM_VALUE,o.shape),o.granularity=l(n)?n.getValue(qe.MINIMUM_VALUE):void 0,o.cornerType=l(i)?i.getValue(qe.MINIMUM_VALUE):void 0};Lp.DynamicGeometryUpdater=MR;function MR(e,t,n){Si.call(this,e,t,n)}l(Object.create)&&(MR.prototype=Object.create(Si.prototype),MR.prototype.constructor=MR);MR.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.polylinePositions)||!l(i.shapePositions)||Si.prototype._isHidden.call(this,e,t,n)};MR.prototype._setOptions=function(e,t,n){let i=this._options;i.polylinePositions=j.getValueOrUndefined(t.positions,n,i.polylinePositions),i.shapePositions=j.getValueOrUndefined(t.shape,n),i.granularity=j.getValueOrUndefined(t.granularity,n),i.cornerType=j.getValueOrUndefined(t.cornerType,n)};var QX=Lp;var PLi=x(T(),1);var dLi=x(T(),1);var v6=new h,ITe=new h,PTe=new h,XTe=new h,YTe=new se,Olt=new k,Blt=new ue,zlt=new ue;function NTe(e,t){let n=new Zt({attributes:new xn,primitiveType:ve.TRIANGLES});return n.attributes.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:t.positions}),e.normal&&(n.attributes.normal=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:t.normals})),e.tangent&&(n.attributes.tangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:t.tangents})),e.bitangent&&(n.attributes.bitangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:t.bitangents})),n}function Hlt(e,t,n,i){let o=e.length,r=t.normal?new Float32Array(o):void 0,s=t.tangent?new Float32Array(o):void 0,a=t.bitangent?new Float32Array(o):void 0,c=0,d=XTe,u=PTe,m=ITe;if(t.normal||t.tangent||t.bitangent)for(let p=0;p<o;p+=3){let b=h.fromArray(e,p,v6),f=c+1,y=c+2;m=n.geodeticSurfaceNormal(b,m),(t.tangent||t.bitangent)&&(h.cross(h.UNIT_Z,m,u),$.multiplyByVector(i,u,u),h.normalize(u,u),t.bitangent&&h.normalize(h.cross(m,u,d),d)),t.normal&&(r[c]=m.x,r[f]=m.y,r[y]=m.z),t.tangent&&(s[c]=u.x,s[f]=u.y,s[y]=u.z),t.bitangent&&(a[c]=d.x,a[f]=d.y,a[y]=d.z),c+=3}return NTe(t,{positions:e,normals:r,tangents:s,bitangents:a})}var F6=new h,wTe=new h;function Klt(e,t,n){let i=e.length,o=t.normal?new Float32Array(i):void 0,r=t.tangent?new Float32Array(i):void 0,s=t.bitangent?new Float32Array(i):void 0,a=0,c=0,d=0,u=!0,m=XTe,p=PTe,b=ITe;if(t.normal||t.tangent||t.bitangent)for(let f=0;f<i;f+=6){let y=h.fromArray(e,f,v6),_=h.fromArray(e,(f+6)%i,F6);if(u){let S=h.fromArray(e,(f+3)%i,wTe);h.subtract(_,y,_),h.subtract(S,y,S),b=h.normalize(h.cross(S,_,b),b),u=!1}h.equalsEpsilon(_,y,W.EPSILON10)&&(u=!0),(t.tangent||t.bitangent)&&(m=n.geodeticSurfaceNormal(y,m),t.tangent&&(p=h.normalize(h.cross(m,b,p),p))),t.normal&&(o[a++]=b.x,o[a++]=b.y,o[a++]=b.z,o[a++]=b.x,o[a++]=b.y,o[a++]=b.z),t.tangent&&(r[c++]=p.x,r[c++]=p.y,r[c++]=p.z,r[c++]=p.x,r[c++]=p.y,r[c++]=p.z),t.bitangent&&(s[d++]=m.x,s[d++]=m.y,s[d++]=m.z,s[d++]=m.x,s[d++]=m.y,s[d++]=m.z)}return NTe(t,{positions:e,normals:o,tangents:r,bitangents:s})}function MTe(e,t){let n=e._vertexFormat,i=e._ellipsoid,o=t.height,r=t.width,s=t.northCap,a=t.southCap,c=0,d=o,u=o,m=0;s&&(c=1,u-=1,m+=1),a&&(d-=1,u-=1,m+=1),m+=r*u;let p=n.position?new Float64Array(m*3):void 0,b=n.st?new Float32Array(m*2):void 0,f=0,y=0,_=v6,S=Olt,A=Number.MAX_VALUE,Z=Number.MAX_VALUE,R=-Number.MAX_VALUE,G=-Number.MAX_VALUE;for(let C=c;C<d;++C)for(let V=0;V<r;++V)ha.computePosition(t,i,n.st,C,V,_,S),p[f++]=_.x,p[f++]=_.y,p[f++]=_.z,n.st&&(b[y++]=S.x,b[y++]=S.y,A=Math.min(A,S.x),Z=Math.min(Z,S.y),R=Math.max(R,S.x),G=Math.max(G,S.y));if(s&&(ha.computePosition(t,i,n.st,0,0,_,S),p[f++]=_.x,p[f++]=_.y,p[f++]=_.z,n.st&&(b[y++]=S.x,b[y++]=S.y,A=S.x,Z=S.y,R=S.x,G=S.y)),a&&(ha.computePosition(t,i,n.st,o-1,0,_,S),p[f++]=_.x,p[f++]=_.y,p[f]=_.z,n.st&&(b[y++]=S.x,b[y]=S.y,A=Math.min(A,S.x),Z=Math.min(Z,S.y),R=Math.max(R,S.x),G=Math.max(G,S.y))),n.st&&(A<0||Z<0||R>1||G>1))for(let C=0;C<b.length;C+=2)b[C]=(b[C]-A)/(R-A),b[C+1]=(b[C+1]-Z)/(G-Z);let E=Hlt(p,n,i,t.tangentRotationMatrix),v=6*(r-1)*(u-1);s&&(v+=3*(r-1)),a&&(v+=3*(r-1));let I=De.createTypedArray(m,v),X=0,Y=0,g;for(g=0;g<u-1;++g){for(let C=0;C<r-1;++C){let V=X,L=V+r,P=L+1,N=V+1;I[Y++]=V,I[Y++]=L,I[Y++]=N,I[Y++]=N,I[Y++]=L,I[Y++]=P,++X}++X}if(s||a){let C=m-1,V=m-1;s&&a&&(C=m-2);let L,P;if(X=0,s)for(g=0;g<r-1;g++)L=X,P=L+1,I[Y++]=C,I[Y++]=L,I[Y++]=P,++X;if(a)for(X=(u-1)*r,g=0;g<r-1;g++)L=X,P=L+1,I[Y++]=L,I[Y++]=V,I[Y++]=P,++X}return E.indices=I,n.st&&(E.attributes.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:b})),E}function kR(e,t,n,i,o){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n+2],e[t++]=o[n],e[t++]=o[n+1],e[t]=o[n+2],e}function UR(e,t,n,i){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n],e[t]=i[n+1],e}var I6=new Me;function Jlt(e,t){let n=e._shadowVolume,i=e._offsetAttribute,o=e._vertexFormat,r=e._extrudedHeight,s=e._surfaceHeight,a=e._ellipsoid,c=t.height,d=t.width,u;if(n){let Ie=Me.clone(o,I6);Ie.normal=!0,e._vertexFormat=Ie}let m=MTe(e,t);n&&(e._vertexFormat=o);let p=ri.scaleToGeodeticHeight(m.attributes.position.values,s,a,!1);p=new Float64Array(p);let b=p.length,f=b*2,y=new Float64Array(f);y.set(p);let _=ri.scaleToGeodeticHeight(m.attributes.position.values,r,a);y.set(_,b),m.attributes.position.values=y;let S=o.normal?new Float32Array(f):void 0,A=o.tangent?new Float32Array(f):void 0,Z=o.bitangent?new Float32Array(f):void 0,R=o.st?new Float32Array(f/3*2):void 0,G,E;if(o.normal){for(E=m.attributes.normal.values,S.set(E),u=0;u<b;u++)E[u]=-E[u];S.set(E,b),m.attributes.normal.values=S}if(n){E=m.attributes.normal.values,o.normal||(m.attributes.normal=void 0);let Ie=new Float32Array(f);for(u=0;u<b;u++)E[u]=-E[u];Ie.set(E,b),m.attributes.extrudeDirection=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:Ie})}let v,I=l(i);if(I){let Ie=b/3*2,Oe=new Uint8Array(Ie);i===hn.TOP?Oe=Oe.fill(1,0,Ie/2):(v=i===hn.NONE?0:1,Oe=Oe.fill(v)),m.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:Oe})}if(o.tangent){let Ie=m.attributes.tangent.values;for(A.set(Ie),u=0;u<b;u++)Ie[u]=-Ie[u];A.set(Ie,b),m.attributes.tangent.values=A}if(o.bitangent){let Ie=m.attributes.bitangent.values;Z.set(Ie),Z.set(Ie,b),m.attributes.bitangent.values=Z}o.st&&(G=m.attributes.st.values,R.set(G),R.set(G,b/3*2),m.attributes.st.values=R);let X=m.indices,Y=X.length,g=b/3,C=De.createTypedArray(f/3,Y*2);for(C.set(X),u=0;u<Y;u+=3)C[u+Y]=X[u+2]+g,C[u+1+Y]=X[u+1]+g,C[u+2+Y]=X[u]+g;m.indices=C;let V=t.northCap,L=t.southCap,P=c,N=2,O=0,M=4,D=4;V&&(N-=1,P-=1,O+=1,M-=2,D-=1),L&&(N-=1,P-=1,O+=1,M-=2,D-=1),O+=N*d+2*P-M;let w=(O+D)*2,z=new Float64Array(w*3),K=n?new Float32Array(w*3):void 0,ee=I?new Uint8Array(w):void 0,H=o.st?new Float32Array(w*2):void 0,te=i===hn.TOP;I&&!te&&(v=i===hn.ALL?1:0,ee=ee.fill(v));let q=0,de=0,ye=0,le=0,Ce=d*P,ge;for(u=0;u<Ce;u+=d)ge=u*3,z=kR(z,q,ge,p,_),q+=6,o.st&&(H=UR(H,de,u*2,G),de+=4),n&&(ye+=3,K[ye++]=E[ge],K[ye++]=E[ge+1],K[ye++]=E[ge+2]),te&&(ee[le++]=1,le+=1);if(L){let Ie=V?Ce+1:Ce;for(ge=Ie*3,u=0;u<2;u++)z=kR(z,q,ge,p,_),q+=6,o.st&&(H=UR(H,de,Ie*2,G),de+=4),n&&(ye+=3,K[ye++]=E[ge],K[ye++]=E[ge+1],K[ye++]=E[ge+2]),te&&(ee[le++]=1,le+=1)}else for(u=Ce-d;u<Ce;u++)ge=u*3,z=kR(z,q,ge,p,_),q+=6,o.st&&(H=UR(H,de,u*2,G),de+=4),n&&(ye+=3,K[ye++]=E[ge],K[ye++]=E[ge+1],K[ye++]=E[ge+2]),te&&(ee[le++]=1,le+=1);for(u=Ce-1;u>0;u-=d)ge=u*3,z=kR(z,q,ge,p,_),q+=6,o.st&&(H=UR(H,de,u*2,G),de+=4),n&&(ye+=3,K[ye++]=E[ge],K[ye++]=E[ge+1],K[ye++]=E[ge+2]),te&&(ee[le++]=1,le+=1);if(V){let Ie=Ce;for(ge=Ie*3,u=0;u<2;u++)z=kR(z,q,ge,p,_),q+=6,o.st&&(H=UR(H,de,Ie*2,G),de+=4),n&&(ye+=3,K[ye++]=E[ge],K[ye++]=E[ge+1],K[ye++]=E[ge+2]),te&&(ee[le++]=1,le+=1)}else for(u=d-1;u>=0;u--)ge=u*3,z=kR(z,q,ge,p,_),q+=6,o.st&&(H=UR(H,de,u*2,G),de+=4),n&&(ye+=3,K[ye++]=E[ge],K[ye++]=E[ge+1],K[ye++]=E[ge+2]),te&&(ee[le++]=1,le+=1);let Ee=Klt(z,o,a);o.st&&(Ee.attributes.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:H})),n&&(Ee.attributes.extrudeDirection=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:K})),I&&(Ee.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:ee}));let Re=De.createTypedArray(w,O*6),Xe,we,nt,je;b=z.length/3;let et=0;for(u=0;u<b-1;u+=2){Xe=u,je=(Xe+2)%b;let Ie=h.fromArray(z,Xe*3,F6),Oe=h.fromArray(z,je*3,wTe);h.equalsEpsilon(Ie,Oe,W.EPSILON10)||(we=(Xe+1)%b,nt=(we+2)%b,Re[et++]=Xe,Re[et++]=we,Re[et++]=je,Re[et++]=je,Re[et++]=we,Re[et++]=nt)}return Ee.indices=Re,Ee=Un.combineInstances([new Pt({geometry:m}),new Pt({geometry:Ee})]),Ee[0]}var jlt=[new h,new h,new h,new h],kTe=new fe,Qlt=new fe;function P6(e,t,n,i,o){if(n===0)return se.clone(e,o);let r=ha.computeOptions(e,t,n,0,YTe,kTe),s=r.height,a=r.width,c=jlt;return ha.computePosition(r,i,!1,0,0,c[0]),ha.computePosition(r,i,!1,0,a-1,c[1]),ha.computePosition(r,i,!1,s-1,0,c[2]),ha.computePosition(r,i,!1,s-1,a-1,c[3]),se.fromCartesianArray(c,i,o)}function Wp(e){e=e??B.EMPTY_OBJECT;let t=e.rectangle,n=e.height??0,i=e.extrudedHeight??n;this._rectangle=se.clone(t),this._granularity=e.granularity??W.RADIANS_PER_DEGREE,this._ellipsoid=ie.clone(e.ellipsoid??ie.default),this._surfaceHeight=Math.max(n,i),this._rotation=e.rotation??0,this._stRotation=e.stRotation??0,this._vertexFormat=Me.clone(e.vertexFormat??Me.DEFAULT),this._extrudedHeight=Math.min(n,i),this._shadowVolume=e.shadowVolume??!1,this._workerName="createRectangleGeometry",this._offsetAttribute=e.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}Wp.packedLength=se.packedLength+ie.packedLength+Me.packedLength+7;Wp.pack=function(e,t,n){return n=n??0,se.pack(e._rectangle,t,n),n+=se.packedLength,ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Me.pack(e._vertexFormat,t,n),n+=Me.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=e._offsetAttribute??-1,t};var UTe=new se,DTe=ie.clone(ie.UNIT_SPHERE),lx={rectangle:UTe,ellipsoid:DTe,vertexFormat:I6,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Wp.unpack=function(e,t,n){t=t??0;let i=se.unpack(e,t,UTe);t+=se.packedLength;let o=ie.unpack(e,t,DTe);t+=ie.packedLength;let r=Me.unpack(e,t,I6);t+=Me.packedLength;let s=e[t++],a=e[t++],c=e[t++],d=e[t++],u=e[t++],m=e[t++]===1,p=e[t];return l(n)?(n._rectangle=se.clone(i,n._rectangle),n._ellipsoid=ie.clone(o,n._ellipsoid),n._vertexFormat=Me.clone(r,n._vertexFormat),n._granularity=s,n._surfaceHeight=a,n._rotation=c,n._stRotation=d,n._extrudedHeight=u,n._shadowVolume=m,n._offsetAttribute=p===-1?void 0:p,n):(lx.granularity=s,lx.height=a,lx.rotation=c,lx.stRotation=d,lx.extrudedHeight=u,lx.shadowVolume=m,lx.offsetAttribute=p===-1?void 0:p,new Wp(lx))};Wp.computeRectangle=function(e,t){e=e??B.EMPTY_OBJECT;let n=e.rectangle,i=e.granularity??W.RADIANS_PER_DEGREE,o=e.ellipsoid??ie.default,r=e.rotation??0;return P6(n,i,r,o,t)};var qlt=new $,vTe=new Ne,$lt=new fe;Wp.createGeometry=function(e){if(W.equalsEpsilon(e._rectangle.north,e._rectangle.south,W.EPSILON10)||W.equalsEpsilon(e._rectangle.east,e._rectangle.west,W.EPSILON10))return;let t=e._rectangle,n=e._ellipsoid,i=e._rotation,o=e._stRotation,r=e._vertexFormat,s=ha.computeOptions(t,e._granularity,i,o,YTe,kTe,Qlt),a=qlt;if(o!==0||i!==0){let b=se.center(t,$lt),f=n.geodeticSurfaceNormalCartographic(b,F6);Ne.fromAxisAngle(f,-o,vTe),$.fromQuaternion(vTe,a)}else $.clone($.IDENTITY,a);let c=e._surfaceHeight,d=e._extrudedHeight,u=!W.equalsEpsilon(c,d,0,W.EPSILON2);s.lonScalar=1/e._rectangle.width,s.latScalar=1/e._rectangle.height,s.tangentRotationMatrix=a;let m,p;if(t=e._rectangle,u){m=Jlt(e,s);let b=ue.fromRectangle3D(t,n,c,zlt),f=ue.fromRectangle3D(t,n,d,Blt);p=ue.union(b,f)}else{if(m=MTe(e,s),m.attributes.position.values=ri.scaleToGeodeticHeight(m.attributes.position.values,c,n,!1),l(e._offsetAttribute)){let b=m.attributes.position.values.length,f=e._offsetAttribute===hn.NONE?0:1,y=new Uint8Array(b/3).fill(f);m.attributes.applyOffset=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:1,values:y})}p=ue.fromRectangle3D(t,n,c)}return r.position||delete m.attributes.position,new Zt({attributes:m.attributes,indices:m.indices,primitiveType:m.primitiveType,boundingSphere:p,offsetAttribute:e._offsetAttribute})};Wp.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Wp({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:o,stRotation:e._stRotation,granularity:i,extrudedHeight:s,height:r,vertexFormat:Me.POSITION_ONLY,shadowVolume:!0})};var FTe=new se,edt=[new k,new k,new k],tdt=new Ui,ndt=new fe;function idt(e){if(e._stRotation===0)return[0,0,0,1,1,0];let t=se.clone(e._rectangle,FTe),n=e._granularity,i=e._ellipsoid,o=e._rotation-e._stRotation,r=P6(t,n,o,i,FTe),s=edt;s[0].x=r.west,s[0].y=r.south,s[1].x=r.west,s[1].y=r.north,s[2].x=r.east,s[2].y=r.south;let a=e.rectangle,c=Ui.fromRotation(e._stRotation,tdt),d=se.center(a,ndt);for(let f=0;f<3;++f){let y=s[f];y.x-=d.longitude,y.y-=d.latitude,Ui.multiplyByVector(c,y,y),y.x+=d.longitude,y.y+=d.latitude,y.x=(y.x-a.west)/a.width,y.y=(y.y-a.south)/a.height}let u=s[0],m=s[1],p=s[2],b=new Array(6);return k.pack(u,b),k.pack(m,b,2),k.pack(p,b,4),b}Object.defineProperties(Wp.prototype,{rectangle:{get:function(){return l(this._rotatedRectangle)||(this._rotatedRectangle=P6(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=idt(this)),this._textureCoordinateRotationPoints}}});var fS=Wp;var OTe=new U,BTe=h.ZERO,zTe=new h,HTe=new se,odt=new se,rdt=new fe;function sdt(e){this.id=e,this.vertexFormat=void 0,this.rectangle=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.rotation=void 0,this.offsetAttribute=void 0}function hf(e,t){ei.call(this,{entity:e,scene:t,geometryOptions:new sdt(e),geometryPropertyName:"rectangle",observedPropertyNames:["availability","rectangle"]}),this._onEntityPropertyChanged(e,"rectangle",e.rectangle,void 0)}l(Object.create)&&(hf.prototype=Object.create(ei.prototype),hf.prototype.constructor=hf);hf.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof jt){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,OTe)),l(o)||(o=U.WHITE),i.color=qt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,BTe,zTe))),new Pt({id:t,geometry:new fS(this._options),attributes:i})};hf.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,U.BLACK,OTe),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=fo.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,BTe,zTe))),new Pt({id:t,geometry:new D_(this._options),attributes:r})};hf.prototype._computeCenter=function(e,t){let n=j.getValueOrUndefined(this._entity.rectangle.coordinates,e,odt);if(!l(n))return;let i=se.center(n,rdt);return fe.toCartesian(i,ie.default,t)};hf.prototype._isHidden=function(e,t){return!l(t.coordinates)||Ai.prototype._isHidden.call(this,e,t)};hf.prototype._isDynamic=function(e,t){return!t.coordinates.isConstant||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.stRotation)||!j.isConstant(t.rotation)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.zIndex)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof jt)};hf.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof jt,i=j.getValueOrUndefined(t.height,qe.MINIMUM_VALUE),o=j.getValueOrDefault(t.heightReference,qe.MINIMUM_VALUE,st.NONE),r=j.getValueOrUndefined(t.extrudedHeight,qe.MINIMUM_VALUE),s=j.getValueOrDefault(t.extrudedHeightReference,qe.MINIMUM_VALUE,st.NONE);l(r)&&!l(i)&&(i=0);let a=this._options;a.vertexFormat=n?pn.VERTEX_FORMAT:bo.MaterialSupport.TEXTURED.vertexFormat,a.rectangle=t.coordinates.getValue(qe.MINIMUM_VALUE,a.rectangle),a.granularity=j.getValueOrUndefined(t.granularity,qe.MINIMUM_VALUE),a.stRotation=j.getValueOrUndefined(t.stRotation,qe.MINIMUM_VALUE),a.rotation=j.getValueOrUndefined(t.rotation,qe.MINIMUM_VALUE),a.offsetAttribute=ei.computeGeometryOffsetAttribute(i,o,r,s),a.height=ei.getGeometryHeight(i,o),r=ei.getGeometryExtrudedHeight(r,s),r===ei.CLAMP_TO_GROUND&&(r=Vi.getMinimumMaximumHeights(fS.computeRectangle(a,HTe)).minimumTerrainHeight),a.extrudedHeight=r};hf.DynamicGeometryUpdater=DR;function DR(e,t,n){Si.call(this,e,t,n)}l(Object.create)&&(DR.prototype=Object.create(Si.prototype),DR.prototype.constructor=DR);DR.prototype._isHidden=function(e,t,n){return!l(this._options.rectangle)||Si.prototype._isHidden.call(this,e,t,n)};DR.prototype._setOptions=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,st.NONE),s=j.getValueOrUndefined(t.extrudedHeight,n),a=j.getValueOrDefault(t.extrudedHeightReference,n,st.NONE);l(s)&&!l(o)&&(o=0),i.rectangle=j.getValueOrUndefined(t.coordinates,n,i.rectangle),i.granularity=j.getValueOrUndefined(t.granularity,n),i.stRotation=j.getValueOrUndefined(t.stRotation,n),i.rotation=j.getValueOrUndefined(t.rotation,n),i.offsetAttribute=ei.computeGeometryOffsetAttribute(o,r,s,a),i.height=ei.getGeometryHeight(o,r),s=ei.getGeometryExtrudedHeight(s,a),s===ei.CLAMP_TO_GROUND&&(s=Vi.getMinimumMaximumHeights(fS.computeRectangle(i,HTe)).minimumTerrainHeight),i.extrudedHeight=s};var qX=hf;var YWi=x(T(),1);var rWi=x(T(),1);var DLi=x(T(),1);var KTe={};function adt(e,t){return W.equalsEpsilon(e.latitude,t.latitude,W.EPSILON10)&&W.equalsEpsilon(e.longitude,t.longitude,W.EPSILON10)}var cdt=new fe,ldt=new fe;function ddt(e,t,n,i){t=Co(t,h.equalsEpsilon);let o=t.length;if(o<2)return;let r=l(i),s=l(n),a=new Array(o),c=new Array(o),d=new Array(o),u=t[0];a[0]=u;let m=e.cartesianToCartographic(u,cdt);s&&(m.height=n[0]),c[0]=m.height,r?d[0]=i[0]:d[0]=0;let p=c[0],b=d[0],f=p===b,y=1;for(let _=1;_<o;++_){let S=t[_],A=e.cartesianToCartographic(S,ldt);s&&(A.height=n[_]),f=f&&A.height===0,adt(m,A)?m.height<A.height&&(c[y-1]=A.height):(a[y]=S,c[y]=A.height,r?d[y]=i[_]:d[y]=0,f=f&&c[y]===d[y],fe.clone(A,m),++y)}if(!(f||y<2))return a.length=y,c.length=y,d.length=y,{positions:a,topHeights:c,bottomHeights:d}}var udt=new Array(2),mdt=new Array(2),hdt={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};KTe.computePositions=function(e,t,n,i,o,r){let s=ddt(e,t,n,i);if(!l(s))return;t=s.positions,n=s.topHeights,i=s.bottomHeights;let a=t.length,c=a-2,d,u,m=W.chordLength(o,e.maximumRadius),p=hdt;if(p.minDistance=m,p.ellipsoid=e,r){let b=0,f;for(f=0;f<a-1;f++)b+=Hi.numberOfPoints(t[f],t[f+1],m)+1;d=new Float64Array(b*3),u=new Float64Array(b*3);let y=udt,_=mdt;p.positions=y,p.height=_;let S=0;for(f=0;f<a-1;f++){y[0]=t[f],y[1]=t[f+1],_[0]=n[f],_[1]=n[f+1];let A=Hi.generateArc(p);d.set(A,S),_[0]=i[f],_[1]=i[f+1],u.set(Hi.generateArc(p),S),S+=A.length}}else p.positions=t,p.height=n,d=new Float64Array(Hi.generateArc(p)),p.height=i,u=new Float64Array(Hi.generateArc(p));return{bottomPositions:u,topPositions:d,numCorners:c}};var pS=KTe;var X6=new h,ZO=new h,fdt=new h,JTe=new h,pdt=new h,bdt=new h,gdt=new h;function bS(e){e=e??B.EMPTY_OBJECT;let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=e.vertexFormat??Me.DEFAULT,r=e.granularity??W.RADIANS_PER_DEGREE,s=e.ellipsoid??ie.default;this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._vertexFormat=Me.clone(o),this._granularity=r,this._ellipsoid=ie.clone(s),this._workerName="createWallGeometry";let a=1+t.length*h.packedLength+2;l(i)&&(a+=i.length),l(n)&&(a+=n.length),this.packedLength=a+ie.packedLength+Me.packedLength+1}bS.pack=function(e,t,n){n=n??0;let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._minimumHeights;if(r=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Me.pack(e._vertexFormat,t,n),n+=Me.packedLength,t[n]=e._granularity,t};var jTe=ie.clone(ie.UNIT_SPHERE),QTe=new Me,$X={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:jTe,vertexFormat:QTe,granularity:void 0};bS.unpack=function(e,t,n){t=t??0;let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=ie.unpack(e,t,jTe);t+=ie.packedLength;let d=Me.unpack(e,t,QTe);t+=Me.packedLength;let u=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ie.clone(c,n._ellipsoid),n._vertexFormat=Me.clone(d,n._vertexFormat),n._granularity=u,n):($X.positions=r,$X.minimumHeights=s,$X.maximumHeights=a,$X.granularity=u,new bS($X))};bS.fromConstantHeights=function(e){e=e??B.EMPTY_OBJECT;let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let d=t.length;n=s?new Array(d):void 0,i=a?new Array(d):void 0;for(let u=0;u<d;++u)s&&(n[u]=o),a&&(i[u]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid,vertexFormat:e.vertexFormat};return new bS(c)};bS.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._vertexFormat,r=e._granularity,s=e._ellipsoid,a=pS.computePositions(s,t,i,n,r,!0);if(!l(a))return;let c=a.bottomPositions,d=a.topPositions,u=a.numCorners,m=d.length,p=m*2,b=o.position?new Float64Array(p):void 0,f=o.normal?new Float32Array(p):void 0,y=o.tangent?new Float32Array(p):void 0,_=o.bitangent?new Float32Array(p):void 0,S=o.st?new Float32Array(p/3*2):void 0,A=0,Z=0,R=0,G=0,E=0,v=gdt,I=bdt,X=pdt,Y=!0;m/=3;let g,C=0,V=1/(m-u-1);for(g=0;g<m;++g){let M=g*3,D=h.fromArray(d,M,X6),w=h.fromArray(c,M,ZO);if(o.position&&(b[A++]=w.x,b[A++]=w.y,b[A++]=w.z,b[A++]=D.x,b[A++]=D.y,b[A++]=D.z),o.st&&(S[E++]=C,S[E++]=0,S[E++]=C,S[E++]=1),o.normal||o.tangent||o.bitangent){let z=h.clone(h.ZERO,JTe),K=h.subtract(D,s.geodeticSurfaceNormal(D,ZO),ZO);if(g+1<m&&(z=h.fromArray(d,M+3,JTe)),Y){let ee=h.subtract(z,D,fdt),H=h.subtract(K,D,X6);v=h.normalize(h.cross(H,ee,v),v),Y=!1}h.equalsEpsilon(D,z,W.EPSILON10)?Y=!0:(C+=V,o.tangent&&(I=h.normalize(h.subtract(z,D,I),I)),o.bitangent&&(X=h.normalize(h.cross(v,I,X),X))),o.normal&&(f[Z++]=v.x,f[Z++]=v.y,f[Z++]=v.z,f[Z++]=v.x,f[Z++]=v.y,f[Z++]=v.z),o.tangent&&(y[G++]=I.x,y[G++]=I.y,y[G++]=I.z,y[G++]=I.x,y[G++]=I.y,y[G++]=I.z),o.bitangent&&(_[R++]=X.x,_[R++]=X.y,_[R++]=X.z,_[R++]=X.x,_[R++]=X.y,_[R++]=X.z)}}let L=new xn;o.position&&(L.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:b})),o.normal&&(L.normal=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:f})),o.tangent&&(L.tangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:y})),o.bitangent&&(L.bitangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:_})),o.st&&(L.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:S}));let P=p/3;p-=6*(u+1);let N=De.createTypedArray(P,p),O=0;for(g=0;g<P-2;g+=2){let M=g,D=g+2,w=h.fromArray(b,M*3,X6),z=h.fromArray(b,D*3,ZO);if(h.equalsEpsilon(w,z,W.EPSILON10))continue;let K=g+1,ee=g+3;N[O++]=K,N[O++]=M,N[O++]=ee,N[O++]=ee,N[O++]=M,N[O++]=D}return new Zt({attributes:L,indices:N,primitiveType:ve.TRIANGLES,boundingSphere:ue.fromVertices(b)})};var eY=bS;var TWi=x(T(),1);var qTe=new h,$Te=new h;function gS(e){e=e??B.EMPTY_OBJECT;let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=e.granularity??W.RADIANS_PER_DEGREE,r=e.ellipsoid??ie.default;this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._granularity=o,this._ellipsoid=ie.clone(r),this._workerName="createWallOutlineGeometry";let s=1+t.length*h.packedLength+2;l(i)&&(s+=i.length),l(n)&&(s+=n.length),this.packedLength=s+ie.packedLength+1}gS.pack=function(e,t,n){n=n??0;let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._minimumHeights;if(r=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n]=e._granularity,t};var e_e=ie.clone(ie.UNIT_SPHERE),tY={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:e_e,granularity:void 0};gS.unpack=function(e,t,n){t=t??0;let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=ie.unpack(e,t,e_e);t+=ie.packedLength;let d=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ie.clone(c,n._ellipsoid),n._granularity=d,n):(tY.positions=r,tY.minimumHeights=s,tY.maximumHeights=a,tY.granularity=d,new gS(tY))};gS.fromConstantHeights=function(e){e=e??B.EMPTY_OBJECT;let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let d=t.length;n=s?new Array(d):void 0,i=a?new Array(d):void 0;for(let u=0;u<d;++u)s&&(n[u]=o),a&&(i[u]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid};return new gS(c)};gS.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._granularity,r=e._ellipsoid,s=pS.computePositions(r,t,i,n,o,!1);if(!l(s))return;let a=s.bottomPositions,c=s.topPositions,d=c.length,u=d*2,m=new Float64Array(u),p=0;d/=3;let b;for(b=0;b<d;++b){let A=b*3,Z=h.fromArray(c,A,qTe),R=h.fromArray(a,A,$Te);m[p++]=R.x,m[p++]=R.y,m[p++]=R.z,m[p++]=Z.x,m[p++]=Z.y,m[p++]=Z.z}let f=new xn({position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:m})}),y=u/3;u=2*y-4+y;let _=De.createTypedArray(y,u),S=0;for(b=0;b<y-2;b+=2){let A=b,Z=b+2,R=h.fromArray(m,A*3,qTe),G=h.fromArray(m,Z*3,$Te);if(h.equalsEpsilon(R,G,W.EPSILON10))continue;let E=b+1,v=b+3;_[S++]=E,_[S++]=A,_[S++]=E,_[S++]=v,_[S++]=A,_[S++]=Z}return _[S++]=y-2,_[S++]=y-1,new Zt({attributes:f,indices:_,primitiveType:ve.LINES,boundingSphere:ue.fromVertices(m)})};var nY=gS;var t_e=new U;function ydt(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.minimumHeights=void 0,this.maximumHeights=void 0,this.granularity=void 0}function ff(e,t){Ai.call(this,{entity:e,scene:t,geometryOptions:new ydt(e),geometryPropertyName:"wall",observedPropertyNames:["availability","wall"]}),this._onEntityPropertyChanged(e,"wall",e.wall,void 0)}l(Object.create)&&(ff.prototype=Object.create(Ai.prototype),ff.prototype.constructor=ff);ff.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=Bn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof jt){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,t_e)),l(c)||(c=U.WHITE),o=qt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new Pt({id:t,geometry:new eY(this._options),attributes:i})};ff.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,U.BLACK,t_e),o=this._distanceDisplayConditionProperty.getValue(e);return new Pt({id:t,geometry:new nY(this._options),attributes:{show:new Vn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o)}})};ff.prototype._isHidden=function(e,t){return!l(t.positions)||Ai.prototype._isHidden.call(this,e,t)};ff.prototype._getIsClosed=function(e){return!1};ff.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!j.isConstant(t.minimumHeights)||!j.isConstant(t.maximumHeights)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.granularity)};ff.prototype._setStaticOptions=function(e,t){let n=t.minimumHeights,i=t.maximumHeights,o=t.granularity,r=this._materialProperty instanceof jt,s=this._options;s.vertexFormat=r?pn.VERTEX_FORMAT:bo.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(qe.MINIMUM_VALUE,s.positions),s.minimumHeights=l(n)?n.getValue(qe.MINIMUM_VALUE,s.minimumHeights):void 0,s.maximumHeights=l(i)?i.getValue(qe.MINIMUM_VALUE,s.maximumHeights):void 0,s.granularity=l(o)?o.getValue(qe.MINIMUM_VALUE):void 0};ff.DynamicGeometryUpdater=OR;function OR(e,t,n){Si.call(this,e,t,n)}l(Object.create)&&(OR.prototype=Object.create(Si.prototype),OR.prototype.constructor=OR);OR.prototype._isHidden=function(e,t,n){return!l(this._options.positions)||Si.prototype._isHidden.call(this,e,t,n)};OR.prototype._setOptions=function(e,t,n){let i=this._options;i.positions=j.getValueOrUndefined(t.positions,n,i.positions),i.minimumHeights=j.getValueOrUndefined(t.minimumHeights,n,i.minimumHeights),i.maximumHeights=j.getValueOrUndefined(t.maximumHeights,n,i.maximumHeights),i.granularity=j.getValueOrUndefined(t.granularity,n)};var iY=ff;var yS=[tv,SX,fX,PX,YX,MX,OX,QX,qX,iY];function xS(e,t){this.entity=e,this.scene=t;let n=new Array(yS.length),i=new Se,o=new Fr;for(let r=0;r<n.length;r++){let s=new yS[r](e,t);o.add(s.geometryChanged,a=>{i.raiseEvent(a)}),n[r]=s}this.updaters=n,this.geometryChanged=i,this.eventHelper=o,this._removeEntitySubscription=e.definitionChanged.addEventListener(xS.prototype._onEntityPropertyChanged,this)}xS.prototype._onEntityPropertyChanged=function(e,t,n,i){let o=this.updaters;for(let r=0;r<o.length;r++)o[r]._onEntityPropertyChanged(e,t,n,i)};xS.prototype.forEach=function(e){let t=this.updaters;for(let n=0;n<t.length;n++)e(t[n])};xS.prototype.destroy=function(){this.eventHelper.removeAll();let e=this.updaters;for(let t=0;t<e.length;t++)e[t].destroy();this._removeEntitySubscription(),he(this)};xS.registerUpdater=function(e){yS.includes(e)||yS.push(e)};xS.unregisterUpdater=function(e){if(yS.includes(e)){let t=yS.indexOf(e);yS.splice(t,1)}};var TS=xS;var fvi=x(T(),1);var n_e=new U,xdt=new Ut,Tdt=new Ut,_dt=h.ZERO,Sdt=new h;function pf(e,t,n,i,o,r,s){this.translucent=t,this.appearanceType=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.depthFailMaterial=void 0,this.closed=r,this.shadows=s,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new wt,this.updaters=new wt,this.updatersWithAttributes=new wt,this.attributes=new wt,this.subscriptions=new wt,this.showsUpdated=new wt,this.itemsToRemove=[],this.invalidated=!1;let a;l(o)&&(a=o.definitionChanged.addEventListener(pf.prototype.onMaterialChanged,this)),this.removeMaterialSubscription=a}pf.prototype.onMaterialChanged=function(){this.invalidated=!0};pf.prototype.isMaterial=function(e){let t=this.depthFailMaterialProperty,n=e.depthFailMaterialProperty;return n===t?!0:l(t)?t.equals(n):!1};pf.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!j.isConstant(e.distanceDisplayConditionProperty)||!j.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};pf.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};pf.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0){l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;if(l(this.depthFailAppearanceType)){l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=sr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial));let u=this.depthFailAppearanceType;c=new u({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})}let d=this.appearanceType;i=new Wn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new d({translucent:this.translucent,closed:this.closed}),depthFailAppearance:c,shadows:this.shadows}),o.add(i),t=!1}else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof jt)&&(this.depthFailMaterial=sr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let d=s[r],u=this.geometry.get(d.id),m=this.attributes.get(u.id.id);if(l(m)||(m=i.getGeometryInstanceAttributes(u.id),this.attributes.set(u.id.id,m)),!d.fillMaterialProperty.isConstant||c){let _=d.fillMaterialProperty.color,S=j.getValueOrDefault(_,e,U.WHITE,n_e);U.equals(m._lastColor,S)||(m._lastColor=U.clone(S,m._lastColor),m.color=qt.toValue(S,m.color),(this.translucent&&m.color[3]===255||!this.translucent&&m.color[3]!==255)&&(this.itemsToRemove[n++]=d))}if(l(this.depthFailAppearanceType)&&d.depthFailMaterialProperty instanceof jt&&(!d.depthFailMaterialProperty.isConstant||c)){let _=d.depthFailMaterialProperty.color,S=j.getValueOrDefault(_,e,U.WHITE,n_e);U.equals(m._lastDepthFailColor,S)||(m._lastDepthFailColor=U.clone(S,m._lastDepthFailColor),m.depthFailColor=qt.toValue(S,m.depthFailColor))}let p=d.entity.isShowing&&(d.hasConstantFill||d.isFilled(e)),b=m.show[0]===1;p!==b&&(m.show=Vn.toValue(p,m.show));let f=d.distanceDisplayConditionProperty;if(!j.isConstant(f)){let _=j.getValueOrDefault(f,e,Tdt,xdt);Ut.equals(_,m._lastDistanceDisplayCondition)||(m._lastDistanceDisplayCondition=Ut.clone(_,m._lastDistanceDisplayCondition),m.distanceDisplayCondition=Bn.toValue(_,m.distanceDisplayCondition))}let y=d.terrainOffsetProperty;if(!j.isConstant(y)){let _=j.getValueOrDefault(y,e,_dt,Sdt);h.equals(_,m._lastOffset)||(m._lastOffset=h.clone(_,m._lastOffset),m.offset=fo.toValue(_,m.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};pf.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=Vn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};pf.prototype.contains=function(e){return this.updaters.contains(e.id)};pf.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return Vt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?Vt.FAILED:(i.boundingSphere.clone(t),Vt.DONE)};pf.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),l(this.removeMaterialSubscription)&&this.removeMaterialSubscription()};function BR(e,t,n,i,o){this._solidItems=[],this._translucentItems=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}BR.prototype.add=function(e,t){let n,i,o=t.createFillGeometryInstance(e);o.attributes.color.value[3]===255?(n=this._solidItems,i=!1):(n=this._translucentItems,i=!0);let r=n.length;for(let a=0;a<r;a++){let c=n[a];if(c.isMaterial(t)){c.add(t,o);return}}let s=new pf(this._primitives,i,this._appearanceType,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);s.add(t,o),n.push(s)};function i_e(e,t){let n=e.length;for(let i=n-1;i>=0;i--){let o=e[i];if(o.remove(t))return o.updaters.length===0&&(e.splice(i,1),o.destroy()),!0}return!1}BR.prototype.remove=function(e){i_e(this._solidItems,e)||i_e(this._translucentItems,e)};function o_e(e,t,n){let i=!1,o=t.length;for(let r=0;r<o;++r){let s=t[r],a=s.itemsToRemove,c=a.length;if(c>0)for(r=0;r<c;r++){let d=a[r];s.remove(d),e.add(n,d),i=!0}}return i}function CO(e,t,n,i){let o=t.length,r;for(r=o-1;r>=0;r--){let s=t[r];if(s.invalidated){t.splice(r,1);let a=s.updaters.values,c=a.length;for(let d=0;d<c;d++)e.add(n,a[d]);s.destroy()}}for(o=t.length,r=0;r<o;++r)i=t[r].update(n)&&i;return i}BR.prototype.update=function(e){let t=CO(this,this._solidItems,e,!0);t=CO(this,this._translucentItems,e,t)&&t;let n=o_e(this,this._solidItems,e),i=o_e(this,this._translucentItems,e);return(n||i)&&(t=CO(this,this._solidItems,e,t)&&t,t=CO(this,this._translucentItems,e,t)&&t),t};function r_e(e,t,n){let i=e.length;for(let o=0;o<i;o++){let r=e[o];if(r.contains(t))return r.getBoundingSphere(t,n)}return Vt.FAILED}BR.prototype.getBoundingSphere=function(e,t){let n=r_e(this._solidItems,e,t);return n===Vt.FAILED?r_e(this._translucentItems,e,t):n};function s_e(e){let t=e.length;for(let n=0;n<t;n++)e[n].destroy();e.length=0}BR.prototype.removeAllPrimitives=function(){s_e(this._solidItems),s_e(this._translucentItems)};var km=BR;var Lvi=x(T(),1);var Adt=new Ut,Zdt=new Ut,Cdt=h.ZERO,Rdt=new h;function bf(e,t,n,i,o,r,s){this.primitives=e,this.appearanceType=t,this.materialProperty=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.closed=r,this.shadows=s,this.updaters=new wt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new wt,this.material=void 0,this.depthFailMaterial=void 0,this.updatersWithAttributes=new wt,this.attributes=new wt,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(bf.prototype.onMaterialChanged,this),this.subscriptions=new wt,this.showsUpdated=new wt}bf.prototype.onMaterialChanged=function(){this.invalidated=!0};bf.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty,i=this.depthFailMaterialProperty,o=e.depthFailMaterialProperty;if(n===t&&o===i)return!0;let r=l(t)&&t.equals(n);return r=(!l(i)&&!l(o)||l(i)&&i.equals(o))&&r,r};bf.prototype.add=function(e,t){let n=t.id;if(this.updaters.set(n,t),this.geometry.set(n,t.createFillGeometryInstance(e)),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!j.isConstant(t.distanceDisplayConditionProperty)||!j.isConstant(t.terrainOffsetProperty))this.updatersWithAttributes.set(n,t);else{let i=this;this.subscriptions.set(n,t.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};bf.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var Vdt=new U;bf.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0){l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=sr.getValue(e,this.materialProperty,this.material);let a;if(l(this.depthFailMaterialProperty)){this.depthFailMaterial=sr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial);let d=this.depthFailAppearanceType;a=new d({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})}let c=this.appearanceType;n=new Wn({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new c({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:a,shadows:this.shadows}),i.add(n),t=!1}else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=sr.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof jt)&&(this.depthFailMaterial=sr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],d=c.entity,u=this.geometry.get(c.id),m=this.attributes.get(u.id.id);if(l(m)||(m=n.getGeometryInstanceAttributes(u.id),this.attributes.set(u.id.id,m)),l(this.depthFailAppearanceType)&&this.depthFailMaterialProperty instanceof jt&&!c.depthFailMaterialProperty.isConstant){let _=c.depthFailMaterialProperty.color,S=j.getValueOrDefault(_,e,U.WHITE,Vdt);U.equals(m._lastDepthFailColor,S)||(m._lastDepthFailColor=U.clone(S,m._lastDepthFailColor),m.depthFailColor=qt.toValue(S,m.depthFailColor))}let p=d.isShowing&&(c.hasConstantFill||c.isFilled(e)),b=m.show[0]===1;p!==b&&(m.show=Vn.toValue(p,m.show));let f=c.distanceDisplayConditionProperty;if(!j.isConstant(f)){let _=j.getValueOrDefault(f,e,Zdt,Adt);Ut.equals(_,m._lastDistanceDisplayCondition)||(m._lastDistanceDisplayCondition=Ut.clone(_,m._lastDistanceDisplayCondition),m.distanceDisplayCondition=Bn.toValue(_,m.distanceDisplayCondition))}let y=c.terrainOffsetProperty;if(!j.isConstant(y)){let _=j.getValueOrDefault(y,e,Cdt,Rdt);h.equals(_,m._lastOffset)||(m._lastOffset=h.clone(_,m._lastOffset),m.offset=fo.toValue(_,m.offset))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};bf.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,d=a.show[0]===1;c!==d&&(a.show=Vn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};bf.prototype.contains=function(e){return this.updaters.contains(e.id)};bf.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return Vt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?Vt.FAILED:(i.boundingSphere.clone(t),Vt.DONE)};bf.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function zR(e,t,n,i,o){this._items=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}zR.prototype.add=function(e,t){let n=this._items,i=n.length;for(let r=0;r<i;r++){let s=n[r];if(s.isMaterial(t)){s.add(e,t);return}}let o=new bf(this._primitives,this._appearanceType,t.fillMaterialProperty,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);o.add(e,t),n.push(o)};zR.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};zR.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};zR.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return Vt.FAILED};zR.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var Um=zR;var Qvi=x(T(),1);var Nvi=x(T(),1);var Pvi=x(T(),1);var vvi=x(T(),1);function RO(e,t,n=0,i=e.length-1,o=Gdt){for(;i>n;){if(i-n>600){let c=i-n+1,d=t-n+1,u=Math.log(c),m=.5*Math.exp(2*u/3),p=.5*Math.sqrt(u*m*(c-m)/c)*(d-c/2<0?-1:1),b=Math.max(n,Math.floor(t-d*m/c+p)),f=Math.min(i,Math.floor(t+(c-d)*m/c+p));RO(e,t,b,f,o)}let r=e[t],s=n,a=i;for(oY(e,n,t),o(e[i],r)>0&&oY(e,n,i);s<a;){for(oY(e,s,a),s++,a--;o(e[s],r)<0;)s++;for(;o(e[a],r)>0;)a--}o(e[n],r)===0?oY(e,n,a):(a++,oY(e,a,i)),a<=t&&(n=a+1),t<=a&&(i=a-1)}}function oY(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function Gdt(e,t){return e<t?-1:e>t?1:0}var aY=class{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()}all(){return this._all(this.data,[])}search(t){let n=this.data,i=[];if(!GO(t,n))return i;let o=this.toBBox,r=[];for(;n;){for(let s=0;s<n.children.length;s++){let a=n.children[s],c=n.leaf?o(a):a;GO(t,c)&&(n.leaf?i.push(a):N6(t,c)?this._all(a,i):r.push(a))}n=r.pop()}return i}collides(t){let n=this.data;if(!GO(t,n))return!1;let i=[];for(;n;){for(let o=0;o<n.children.length;o++){let r=n.children[o],s=n.leaf?this.toBBox(r):r;if(GO(t,s)){if(n.leaf||N6(t,s))return!0;i.push(r)}}n=i.pop()}return!1}load(t){if(!(t&&t.length))return this;if(t.length<this._minEntries){for(let i=0;i<t.length;i++)this.insert(t[i]);return this}let n=this._build(t.slice(),0,t.length-1,0);if(!this.data.children.length)this.data=n;else if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){let i=this.data;this.data=n,n=i}this._insert(n,this.data.height-n.height-1,!0)}return this}insert(t){return t&&this._insert(t,this.data.height-1),this}clear(){return this.data=KR([]),this}remove(t,n){if(!t)return this;let i=this.data,o=this.toBBox(t),r=[],s=[],a,c,d;for(;i||r.length;){if(i||(i=r.pop(),c=r[r.length-1],a=s.pop(),d=!0),i.leaf){let u=Edt(t,i.children,n);if(u!==-1)return i.children.splice(u,1),r.push(i),this._condense(r),this}!d&&!i.leaf&&N6(i,o)?(r.push(i),s.push(a),a=0,c=i,i=i.children[0]):c?(a++,i=c.children[a],d=!1):i=null}return this}toBBox(t){return t}compareMinX(t,n){return t.minX-n.minX}compareMinY(t,n){return t.minY-n.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}_all(t,n){let i=[];for(;t;)t.leaf?n.push(...t.children):i.push(...t.children),t=i.pop();return n}_build(t,n,i,o){let r=i-n+1,s=this._maxEntries,a;if(r<=s)return a=KR(t.slice(n,i+1)),HR(a,this.toBBox),a;o||(o=Math.ceil(Math.log(r)/Math.log(s)),s=Math.ceil(r/Math.pow(s,o-1))),a=KR([]),a.leaf=!1,a.height=o;let c=Math.ceil(r/s),d=c*Math.ceil(Math.sqrt(s));a_e(t,n,i,d,this.compareMinX);for(let u=n;u<=i;u+=d){let m=Math.min(u+d-1,i);a_e(t,u,m,c,this.compareMinY);for(let p=u;p<=m;p+=c){let b=Math.min(p+c-1,m);a.children.push(this._build(t,p,b,o-1))}}return HR(a,this.toBBox),a}_chooseSubtree(t,n,i,o){for(;o.push(n),!(n.leaf||o.length-1===i);){let r=1/0,s=1/0,a;for(let c=0;c<n.children.length;c++){let d=n.children[c],u=Y6(d),m=vdt(t,d)-u;m<s?(s=m,r=u<r?u:r,a=d):m===s&&u<r&&(r=u,a=d)}n=a||n.children[0]}return n}_insert(t,n,i){let o=i?t:this.toBBox(t),r=[],s=this._chooseSubtree(o,this.data,n,r);for(s.children.push(t),sY(s,o);n>=0&&r[n].children.length>this._maxEntries;)this._split(r,n),n--;this._adjustParentBBoxes(o,r,n)}_split(t,n){let i=t[n],o=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,o);let s=this._chooseSplitIndex(i,r,o),a=KR(i.children.splice(s,i.children.length-s));a.height=i.height,a.leaf=i.leaf,HR(i,this.toBBox),HR(a,this.toBBox),n?t[n-1].children.push(a):this._splitRoot(i,a)}_splitRoot(t,n){this.data=KR([t,n]),this.data.height=t.height+1,this.data.leaf=!1,HR(this.data,this.toBBox)}_chooseSplitIndex(t,n,i){let o,r=1/0,s=1/0;for(let a=n;a<=i-n;a++){let c=rY(t,0,a,this.toBBox),d=rY(t,a,i,this.toBBox),u=Fdt(c,d),m=Y6(c)+Y6(d);u<r?(r=u,o=a,s=m<s?m:s):u===r&&m<s&&(s=m,o=a)}return o||i-n}_chooseSplitAxis(t,n,i){let o=t.leaf?this.compareMinX:Ldt,r=t.leaf?this.compareMinY:Wdt,s=this._allDistMargin(t,n,i,o),a=this._allDistMargin(t,n,i,r);s<a&&t.children.sort(o)}_allDistMargin(t,n,i,o){t.children.sort(o);let r=this.toBBox,s=rY(t,0,n,r),a=rY(t,i-n,i,r),c=VO(s)+VO(a);for(let d=n;d<i-n;d++){let u=t.children[d];sY(s,t.leaf?r(u):u),c+=VO(s)}for(let d=i-n-1;d>=n;d--){let u=t.children[d];sY(a,t.leaf?r(u):u),c+=VO(a)}return c}_adjustParentBBoxes(t,n,i){for(let o=i;o>=0;o--)sY(n[o],t)}_condense(t){for(let n=t.length-1,i;n>=0;n--)t[n].children.length===0?n>0?(i=t[n-1].children,i.splice(i.indexOf(t[n]),1)):this.clear():HR(t[n],this.toBBox)}};function Edt(e,t,n){if(!n)return t.indexOf(e);for(let i=0;i<t.length;i++)if(n(e,t[i]))return i;return-1}function HR(e,t){rY(e,0,e.children.length,t,e)}function rY(e,t,n,i,o){o||(o=KR(null)),o.minX=1/0,o.minY=1/0,o.maxX=-1/0,o.maxY=-1/0;for(let r=t;r<n;r++){let s=e.children[r];sY(o,e.leaf?i(s):s)}return o}function sY(e,t){return e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY),e}function Ldt(e,t){return e.minX-t.minX}function Wdt(e,t){return e.minY-t.minY}function Y6(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function VO(e){return e.maxX-e.minX+(e.maxY-e.minY)}function vdt(e,t){return(Math.max(t.maxX,e.maxX)-Math.min(t.minX,e.minX))*(Math.max(t.maxY,e.maxY)-Math.min(t.minY,e.minY))}function Fdt(e,t){let n=Math.max(e.minX,t.minX),i=Math.max(e.minY,t.minY),o=Math.min(e.maxX,t.maxX),r=Math.min(e.maxY,t.maxY);return Math.max(0,o-n)*Math.max(0,r-i)}function N6(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function GO(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function KR(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function a_e(e,t,n,i,o){let r=[t,n];for(;r.length;){if(n=r.pop(),t=r.pop(),n-t<=i)continue;let s=t+Math.ceil((n-t)/i/2)*i;RO(e,s,t,n,o),r.push(t,s,s,n)}}function EO(){this._tree=new aY}function _S(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.id=""}_S.fromRectangleAndId=function(e,t,n){return n.minX=t.west,n.minY=t.south,n.maxX=t.east,n.maxY=t.north,n.id=e,n};EO.prototype.insert=function(e,t){let n=_S.fromRectangleAndId(e,t,new _S);this._tree.insert(n)};function Idt(e,t){return e.id===t.id}var Pdt=new _S;EO.prototype.remove=function(e,t){let n=_S.fromRectangleAndId(e,t,Pdt);this._tree.remove(n,Idt)};var Xdt=new _S;EO.prototype.collides=function(e){let t=_S.fromRectangleAndId("",e,Xdt);return this._tree.collides(t)};var SS=EO;var Ydt=new U,Ndt=new Ut,wdt=new Ut;function $b(e,t,n,i){this.primitives=e,this.zIndex=i,this.classificationType=t,this.color=n,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new wt,this.updaters=new wt,this.updatersWithAttributes=new wt,this.attributes=new wt,this.subscriptions=new wt,this.showsUpdated=new wt,this.itemsToRemove=[],this.isDirty=!1,this.rectangleCollisionCheck=new SS}$b.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};$b.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),this.rectangleCollisionCheck.insert(n,t.geometry.rectangle),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!j.isConstant(e.distanceDisplayConditionProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};$b.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return l(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};$b.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Tl({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),o.add(i,this.zIndex),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let d=s[r],u=this.geometry.get(d.id),m=this.attributes.get(u.id.id);if(l(m)||(m=i.getGeometryInstanceAttributes(u.id),this.attributes.set(u.id.id,m)),!d.fillMaterialProperty.isConstant||c){let y=d.fillMaterialProperty.color,_=j.getValueOrDefault(y,e,U.WHITE,Ydt);U.equals(m._lastColor,_)||(m._lastColor=U.clone(_,m._lastColor),m.color=qt.toValue(_,m.color))}let p=d.entity.isShowing&&(d.hasConstantFill||d.isFilled(e)),b=m.show[0]===1;p!==b&&(m.show=Vn.toValue(p,m.show));let f=d.distanceDisplayConditionProperty;if(!j.isConstant(f)){let y=j.getValueOrDefault(f,e,wdt,Ndt);Ut.equals(y,m._lastDistanceDisplayCondition)||(m._lastDistanceDisplayCondition=Ut.clone(y,m._lastDistanceDisplayCondition),m.distanceDisplayCondition=Bn.toValue(y,m.distanceDisplayCondition))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};$b.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=Vn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};$b.prototype.contains=function(e){return this.updaters.contains(e.id)};$b.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return Vt.PENDING;let i=n.getBoundingSphere(e.entity);return l(i)?(i.clone(t),Vt.DONE):Vt.FAILED};$b.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function JR(e,t){this._batches=[],this._primitives=e,this._classificationType=t}JR.prototype.add=function(e,t){let n=t.createFillGeometryInstance(e),i=this._batches,o=j.getValueOrDefault(t.zIndex,0),r,s=i.length;for(let a=0;a<s;++a){let c=i[a];if(c.zIndex===o&&!c.overlapping(n.geometry.rectangle)){r=c;break}}return l(r)||(r=new $b(this._primitives,this._classificationType,n.attributes.color.value,o),i.push(r)),r.add(t,n),r};JR.prototype.remove=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;++i)if(t[i].remove(e))return};JR.prototype.update=function(e){let t,n,i=!0,o=this._batches,r=o.length;for(t=0;t<r;++t)i=o[t].update(e)&&i;for(t=0;t<r;++t){let s=o[t],a=s.itemsToRemove,c=a.length;for(let d=0;d<c;d++){n=a[d],s.remove(n);let u=this.add(e,n);s.isDirty=!0,u.isDirty=!0}}for(t=r-1;t>=0;--t){let s=o[t];s.isDirty&&(i=o[t].update(e)&&i,s.isDirty=!1),s.geometry.length===0&&o.splice(t,1)}return i};JR.prototype.getBoundingSphere=function(e,t){let n=this._batches,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return Vt.FAILED};JR.prototype.removeAllPrimitives=function(){let e=this._batches,t=e.length;for(let n=0;n<t;++n)e[n].removeAllPrimitives()};var jR=JR;var u2i=x(T(),1);var Mdt=new Ut,kdt=new Ut;function vp(e,t,n,i,o,r){this.primitives=e,this.classificationType=t,this.appearanceType=n,this.materialProperty=i,this.updaters=new wt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new wt,this.material=void 0,this.updatersWithAttributes=new wt,this.attributes=new wt,this.subscriptions=new wt,this.showsUpdated=new wt,this.usingSphericalTextureCoordinates=o,this.zIndex=r,this.rectangleCollisionCheck=new SS}vp.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};vp.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof jt&&t instanceof jt?!0:l(t)&&t.equals(n)};vp.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),this.rectangleCollisionCheck.insert(i,n.geometry.rectangle),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!j.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};vp.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return l(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};vp.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0){l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=sr.getValue(e,this.materialProperty,this.material);let a=this.appearanceType;n=new Tl({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new a({material:this.material}),classificationType:this.classificationType}),i.add(n,this.zIndex),t=!1}else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=sr.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],d=c.entity,u=this.geometry.get(c.id),m=this.attributes.get(u.id.id);l(m)||(m=n.getGeometryInstanceAttributes(u.id),this.attributes.set(u.id.id,m));let p=d.isShowing&&(c.hasConstantFill||c.isFilled(e)),b=m.show[0]===1;p!==b&&(m.show=Vn.toValue(p,m.show));let f=c.distanceDisplayConditionProperty;if(!j.isConstant(f)){let y=j.getValueOrDefault(f,e,kdt,Mdt);Ut.equals(y,m._lastDistanceDisplayCondition)||(m._lastDistanceDisplayCondition=Ut.clone(y,m._lastDistanceDisplayCondition),m.distanceDisplayCondition=Bn.toValue(y,m.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};vp.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,d=a.show[0]===1;c!==d&&(a.show=Vn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};vp.prototype.contains=function(e){return this.updaters.contains(e.id)};vp.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return Vt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?Vt.FAILED:(i.boundingSphere.clone(t),Vt.DONE)};vp.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n)};function QR(e,t,n){this._items=[],this._primitives=e,this._classificationType=t,this._appearanceType=n}QR.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=iu.shouldUseSphericalCoordinates(o.geometry.rectangle),s=j.getValueOrDefault(t.zIndex,0);for(let c=0;c<i;++c){let d=n[c];if(d.isMaterial(t)&&d.usingSphericalTextureCoordinates===r&&d.zIndex===s&&!d.overlapping(o.geometry.rectangle)){d.add(e,t,o);return}}let a=new vp(this._primitives,this._classificationType,this._appearanceType,t.fillMaterialProperty,r,s);a.add(e,t,o),n.push(a)};QR.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0&&!t[i].remove(e);i--);};QR.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];r.updaters.length===0&&(n.splice(t,1),r.destroy())}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};QR.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return Vt.FAILED};QR.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var cY=QR;var R2i=x(T(),1);var Udt=new U,Ddt=new Ut,Odt=new Ut,Bdt=h.ZERO,zdt=new h;function eg(e,t,n,i){this.translucent=t,this.width=n,this.shadows=i,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new wt,this.updaters=new wt,this.updatersWithAttributes=new wt,this.attributes=new wt,this.itemsToRemove=[],this.subscriptions=new wt,this.showsUpdated=new wt}eg.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantOutline||!e.outlineColorProperty.isConstant||!j.isConstant(e.distanceDisplayConditionProperty)||!j.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};eg.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};eg.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Wn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new pn({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let d=s[r],u=this.geometry.get(d.id),m=this.attributes.get(u.id.id);if(l(m)||(m=i.getGeometryInstanceAttributes(u.id),this.attributes.set(u.id.id,m)),!d.outlineColorProperty.isConstant||c){let _=d.outlineColorProperty,S=j.getValueOrDefault(_,e,U.WHITE,Udt);U.equals(m._lastColor,S)||(m._lastColor=U.clone(S,m._lastColor),m.color=qt.toValue(S,m.color),(this.translucent&&m.color[3]===255||!this.translucent&&m.color[3]!==255)&&(this.itemsToRemove[n++]=d))}let p=d.entity.isShowing&&(d.hasConstantOutline||d.isOutlineVisible(e)),b=m.show[0]===1;p!==b&&(m.show=Vn.toValue(p,m.show));let f=d.distanceDisplayConditionProperty;if(!j.isConstant(f)){let _=j.getValueOrDefault(f,e,Odt,Ddt);Ut.equals(_,m._lastDistanceDisplayCondition)||(m._lastDistanceDisplayCondition=Ut.clone(_,m._lastDistanceDisplayCondition),m.distanceDisplayCondition=Bn.toValue(_,m.distanceDisplayCondition))}let y=d.terrainOffsetProperty;if(!j.isConstant(y)){let _=j.getValueOrDefault(y,e,Bdt,zdt);h.equals(_,m._lastOffset)||(m._lastOffset=h.clone(_,m._lastOffset),m.offset=fo.toValue(_,m.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};eg.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=Vn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};eg.prototype.contains=function(e){return this.updaters.contains(e.id)};eg.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return Vt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?Vt.FAILED:(i.boundingSphere.clone(t),Vt.DONE)};eg.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function qR(e,t,n){this._primitives=e,this._scene=t,this._shadows=n,this._solidBatches=new wt,this._translucentBatches=new wt}qR.prototype.add=function(e,t){let n=t.createOutlineGeometryInstance(e),i=this._scene.clampLineWidth(t.outlineWidth),o,r;n.attributes.color.value[3]===255?(o=this._solidBatches,r=o.get(i),l(r)||(r=new eg(this._primitives,!1,i,this._shadows),o.set(i,r)),r.add(t,n)):(o=this._translucentBatches,r=o.get(i),l(r)||(r=new eg(this._primitives,!0,i,this._shadows),o.set(i,r)),r.add(t,n))};qR.prototype.remove=function(e){let t,n=this._solidBatches.values,i=n.length;for(t=0;t<i;t++)if(n[t].remove(e))return;let o=this._translucentBatches.values,r=o.length;for(t=0;t<r;t++)if(o[t].remove(e))return};qR.prototype.update=function(e){let t,n,i,o,r=this._solidBatches.values,s=r.length,a=this._translucentBatches.values,c=a.length,d,u=!0,m=!1;do{for(m=!1,n=0;n<s;n++){o=r[n],u=o.update(e),d=o.itemsToRemove;let p=d.length;if(p>0)for(m=!0,t=0;t<p;t++)i=d[t],o.remove(i),this.add(e,i)}for(n=0;n<c;n++){o=a[n],u=o.update(e),d=o.itemsToRemove;let p=d.length;if(p>0)for(m=!0,t=0;t<p;t++)i=d[t],o.remove(i),this.add(e,i)}}while(m);return u};qR.prototype.getBoundingSphere=function(e,t){let n,i=this._solidBatches.values,o=i.length;for(n=0;n<o;n++){let a=i[n];if(a.contains(e))return a.getBoundingSphere(e,t)}let r=this._translucentBatches.values,s=r.length;for(n=0;n<s;n++){let a=r[n];if(a.contains(e))return a.getBoundingSphere(e,t)}return Vt.FAILED};qR.prototype.removeAllPrimitives=function(){let e,t=this._solidBatches.values,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._translucentBatches.values,o=i.length;for(e=0;e<o;e++)i[e].removeAllPrimitives()};var $R=qR;var Hdt=[];function Fd(e,t,n,i){n=n??e.primitives,i=i??e.groundPrimitives,this._scene=e,this._primitives=n,this._groundPrimitives=i,this._entityCollection=void 0,this._addedObjects=new wt,this._removedObjects=new wt,this._changedObjects=new wt;let o=Gn.NUMBER_OF_SHADOW_MODES;this._outlineBatches=new Array(o*2),this._closedColorBatches=new Array(o*2),this._closedMaterialBatches=new Array(o*2),this._openColorBatches=new Array(o*2),this._openMaterialBatches=new Array(o*2);let r=Oo.supportsMaterialsforEntitiesOnTerrain(e);this._supportsMaterialsforEntitiesOnTerrain=r;let s;for(s=0;s<o;++s)this._outlineBatches[s]=new $R(n,e,s,!1),this._outlineBatches[o+s]=new $R(n,e,s,!0),this._closedColorBatches[s]=new km(n,pn,void 0,!0,s,!0),this._closedColorBatches[o+s]=new km(n,pn,void 0,!0,s,!1),this._closedMaterialBatches[s]=new Um(n,bo,void 0,!0,s,!0),this._closedMaterialBatches[o+s]=new Um(n,bo,void 0,!0,s,!1),this._openColorBatches[s]=new km(n,pn,void 0,!1,s,!0),this._openColorBatches[o+s]=new km(n,pn,void 0,!1,s,!1),this._openMaterialBatches[s]=new Um(n,bo,void 0,!1,s,!0),this._openMaterialBatches[o+s]=new Um(n,bo,void 0,!1,s,!1);let a=Kn.NUMBER_OF_CLASSIFICATION_TYPES,c=new Array(a),d=[];if(r)for(s=0;s<a;++s)d.push(new cY(i,s,bo)),c[s]=new jR(i,s);else for(s=0;s<a;++s)c[s]=new jR(i,s);this._groundColorBatches=c,this._groundMaterialBatches=d,this._dynamicBatch=new lS(n,i),this._batches=this._outlineBatches.concat(this._closedColorBatches,this._closedMaterialBatches,this._openColorBatches,this._openMaterialBatches,this._groundColorBatches,this._groundMaterialBatches,this._dynamicBatch),this._subscriptions=new wt,this._updaterSets=new wt,this._entityCollection=t,t.collectionChanged.addEventListener(Fd.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,Hdt)}Fd.registerUpdater=function(e){TS.registerUpdater(e)};Fd.unregisterUpdater=function(e){TS.unregisterUpdater(e)};Fd.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,d,u,m=this;for(a=s.length-1;a>-1;a--)c=s[a],d=c.id,u=this._updaterSets.get(d),u.entity===c?u.forEach(function(y){m._removeUpdater(y),m._insertUpdaterIntoBatch(e,y)}):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],d=c.id,u=this._updaterSets.get(d),u.forEach(this._removeUpdater.bind(this)),u.destroy(),this._updaterSets.remove(d),this._subscriptions.get(d)(),this._subscriptions.remove(d);for(a=n.length-1;a>-1;a--)c=n[a],d=c.id,u=new TS(c,this._scene),this._updaterSets.set(d,u),u.forEach(function(y){m._insertUpdaterIntoBatch(e,y)}),this._subscriptions.set(d,u.geometryChanged.addEventListener(Fd._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let p=!0,b=this._batches,f=b.length;for(a=0;a<f;a++)p=b[a].update(e)&&p;return p};var Kdt=[],Jdt=new ue;Fd.prototype.getBoundingSphere=function(e,t){let n=Kdt,i=Jdt,o=0,r=Vt.DONE,s=this._batches,a=s.length,c=e.id,d=this._updaterSets.get(c).updaters;for(let u=0;u<d.length;u++){let m=d[u];for(let p=0;p<a;p++){if(r=s[p].getBoundingSphere(m,i),r===Vt.PENDING)return Vt.PENDING;r===Vt.DONE&&(n[o]=ue.clone(i,n[o]),o++)}}return o===0?Vt.FAILED:(n.length=o,ue.fromBoundingSpheres(n,t),Vt.DONE)};Fd.prototype.isDestroyed=function(){return!1};Fd.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Fd.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();this._subscriptions.removeAll();let o=this._updaterSets.values;for(n=o.length,e=0;e<n;e++)o[e].destroy();return this._updaterSets.removeAll(),he(this)};Fd.prototype._removeUpdater=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;i++)t[i].remove(e)};Fd.prototype._insertUpdaterIntoBatch=function(e,t){if(t.isDynamic){this._dynamicBatch.add(e,t);return}let n;(t.outlineEnabled||t.fillEnabled)&&(n=t.shadowsProperty.getValue(e));let i=Gn.NUMBER_OF_SHADOW_MODES;if(t.outlineEnabled&&(l(t.terrainOffsetProperty)?this._outlineBatches[i+n].add(e,t):this._outlineBatches[n].add(e,t)),t.fillEnabled)if(t.onTerrain){let o=t.classificationTypeProperty.getValue(e);t.fillMaterialProperty instanceof jt?this._groundColorBatches[o].add(e,t):this._groundMaterialBatches[o].add(e,t)}else t.isClosed?t.fillMaterialProperty instanceof jt?l(t.terrainOffsetProperty)?this._closedColorBatches[i+n].add(e,t):this._closedColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._closedMaterialBatches[i+n].add(e,t):this._closedMaterialBatches[n].add(e,t):t.fillMaterialProperty instanceof jt?l(t.terrainOffsetProperty)?this._openColorBatches[i+n].add(e,t):this._openColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._openMaterialBatches[i+n].add(e,t):this._openMaterialBatches[n].add(e,t)};Fd._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};Fd.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var lY=Fd;var cFi=x(T(),1);var jdt=1,Qdt="30px sans-serif",qdt=cr.FILL,$dt=U.WHITE,eut=U.BLACK,tut=1,nut=!1,iut=new U(.165,.165,.165,.8),out=new k(7,5),rut=k.ZERO,sut=h.ZERO,aut=st.NONE,cut=Fi.CENTER,lut=kn.CENTER,dut=new h,uut=new U,mut=new U,hut=new U,fut=new k,put=new h,but=new k,gut=new Bt,yut=new Bt,xut=new Bt,Tut=new Ut;function c_e(e){this.entity=e,this.label=void 0,this.index=void 0}function dx(e,t){t.collectionChanged.addEventListener(dx.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new wt,this._onCollectionChanged(t,t.values,[],[])}dx.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._label,c,d=r.label,u=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),m;if(u&&(m=j.getValueOrUndefined(s._position,e,dut),c=j.getValueOrUndefined(a._text,e),u=l(m)&&l(c)),!u){w6(r,s,n);continue}j.isConstant(s._position)||(n._clusterDirty=!0);let p=!1,b=j.getValueOrDefault(a._heightReference,e,aut);l(d)||(d=n.getLabel(s),d.id=s,r.label=d,p=h.equals(d.position,m)&&d.heightReference===b),d.show=!0,d.position=m,d.text=c,d.scale=j.getValueOrDefault(a._scale,e,jdt),d.font=j.getValueOrDefault(a._font,e,Qdt),d.style=j.getValueOrDefault(a._style,e,qdt),d.fillColor=j.getValueOrDefault(a._fillColor,e,$dt,uut),d.outlineColor=j.getValueOrDefault(a._outlineColor,e,eut,mut),d.outlineWidth=j.getValueOrDefault(a._outlineWidth,e,tut),d.showBackground=j.getValueOrDefault(a._showBackground,e,nut),d.backgroundColor=j.getValueOrDefault(a._backgroundColor,e,iut,hut),d.backgroundPadding=j.getValueOrDefault(a._backgroundPadding,e,out,fut),d.pixelOffset=j.getValueOrDefault(a._pixelOffset,e,rut,but),d.eyeOffset=j.getValueOrDefault(a._eyeOffset,e,sut,put),d.heightReference=b,d.horizontalOrigin=j.getValueOrDefault(a._horizontalOrigin,e,cut),d.verticalOrigin=j.getValueOrDefault(a._verticalOrigin,e,lut),d.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,gut),d.pixelOffsetScaleByDistance=j.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,yut),d.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,xut),d.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,Tut),d.disableDepthTestDistance=j.getValueOrUndefined(a._disableDepthTestDistance,e),p&&d._updateClamping()}return!0};dx.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.label))return Vt.FAILED;let i=n.label;return t.center=h.clone(i._clampedPosition??i.position,t.center),t.radius=0,Vt.DONE};dx.prototype.isDestroyed=function(){return!1};dx.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(dx.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeLabel(e[t]);return he(this)};dx.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._label)&&l(r._position)&&s.set(r.id,new c_e(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._label)&&l(r._position)?s.contains(r.id)||s.set(r.id,new c_e(r)):(w6(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],w6(s.get(r.id),r,a),s.remove(r.id)};function w6(e,t,n){l(e)&&(e.label=void 0,n.removeLabel(t))}var dY=dx;var GFi=x(T(),1);var _ut=1,Sut=!0,Aut=0,Zut=!0,Cut=!0,Rut=Gn.ENABLED,Vut=st.NONE,Gut=U.RED,Eut=0,Lut=U.WHITE,Wut=Jc.HIGHLIGHT,vut=.5,Fut=new k(1,1),l_e={maximumPositionEpsilon:Number.POSITIVE_INFINITY},Iut=new F,Put=new F,d_e=new U,u_e=new Array(4),Xut=new h;function ux(e,t){t.collectionChanged.addEventListener(ux.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new wt,this._onCollectionChanged(t,t.values,[],[])}async function Yut(e,t,n,i,o){let r=e._primitives,s=e._modelHash;try{let a=await fu.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene,environmentMapOptions:o});if(e.isDestroyed()||!l(s[t.id]))return;a.id=t,r.add(a),s[t.id].modelPrimitive=a,a.errorEvent.addEventListener(c=>{l(s[t.id])&&(console.log(c),c.name!=="TextureError"&&a.incrementallyLoadTextures&&(s[t.id].loadFailed=!0))})}catch(a){if(e.isDestroyed()||!l(s[t.id]))return;console.log(a),s[t.id].loadFailed=!0}}ux.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._modelHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._model,c,d=n[s.id],u=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),m;if(u&&(m=s.computeModelMatrix(e,Iut),c=We.createIfNeeded(j.getValueOrUndefined(a._uri,e)),u=l(m)&&l(c)),!u){l(d)&&d.modelPrimitive&&(d.modelPrimitive.show=!1);continue}if(!l(d)||c.url!==d.url){l(d?.modelPrimitive)&&(i.removeAndDestroy(d.modelPrimitive),delete n[s.id]),d={modelPrimitive:void 0,url:c.url,animationsRunning:!1,nodeTransformationsScratch:{},articulationsScratch:{},loadFailed:!1,modelUpdated:!1,environmentMapOptionsScratch:{...l_e}},n[s.id]=d;let f=j.getValueOrDefault(a._incrementallyLoadTextures,e,Zut),y=j.getValueOrDefault(a._environmentMapOptions,e,l_e,d.environmentMapOptionsScratch);Yut(this,s,c,f,y)}let p=d.modelPrimitive;if(!l(p))continue;p.show=!0,p.scale=j.getValueOrDefault(a._scale,e,_ut),p.enableVerticalExaggeration=j.getValueOrDefault(a._enableVerticalExaggeration,e,Sut),p.minimumPixelSize=j.getValueOrDefault(a._minimumPixelSize,e,Aut),p.maximumScale=j.getValueOrUndefined(a._maximumScale,e),p.modelMatrix=F.clone(m,p.modelMatrix),p.shadows=j.getValueOrDefault(a._shadows,e,Rut),p.heightReference=j.getValueOrDefault(a._heightReference,e,Vut),p.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e),p.silhouetteColor=j.getValueOrDefault(a._silhouetteColor,e,Gut,d_e),p.silhouetteSize=j.getValueOrDefault(a._silhouetteSize,e,Eut),p.color=j.getValueOrDefault(a._color,e,Lut,d_e),p.colorBlendMode=j.getValueOrDefault(a._colorBlendMode,e,Wut),p.colorBlendAmount=j.getValueOrDefault(a._colorBlendAmount,e,vut),p.clippingPlanes=j.getValueOrUndefined(a._clippingPlanes,e),p.clampAnimations=j.getValueOrDefault(a._clampAnimations,e,Cut),p.imageBasedLighting.imageBasedLightingFactor=j.getValueOrDefault(a._imageBasedLightingFactor,e,Fut);let b=j.getValueOrUndefined(a._lightColor,e);if(l(b)&&(U.pack(b,u_e,0),b=h.unpack(u_e,0,Xut)),p.lightColor=b,p.customShader=j.getValueOrUndefined(a._customShader,e),n[s.id].modelUpdated=!0,p.ready){let f=j.getValueOrDefault(a._runAnimations,e,!0);d.animationsRunning!==f&&(f?p.activeAnimations.addAll({loop:Td.REPEAT}):p.activeAnimations.removeAll(),d.animationsRunning=f);let y=j.getValueOrUndefined(a._nodeTransformations,e,d.nodeTransformationsScratch);if(l(y)){let A=Object.keys(y);for(let Z=0,R=A.length;Z<R;++Z){let G=A[Z],E=y[G];if(!l(E))continue;let v=p.getNode(G);if(!l(v))continue;let I=F.fromTranslationRotationScale(E,Put);v.matrix=F.multiply(v.originalMatrix,I,I)}}let _=!1,S=j.getValueOrUndefined(a._articulations,e,d.articulationsScratch);if(l(S)){let A=Object.keys(S);for(let Z=0,R=A.length;Z<R;++Z){let G=A[Z],E=S[G];l(E)&&(_=!0,p.setArticulationStage(G,E))}}_&&p.applyArticulations()}}return!0};ux.prototype.isDestroyed=function(){return!1};ux.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(ux.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._modelHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)M6(this,e[i],t,n);return he(this)};var LO=new h,Nut=new fe;ux.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!l(n))return Vt.FAILED;if(n.loadFailed)return Vt.FAILED;let i=n.modelPrimitive;if(!l(i)||!i.show)return Vt.PENDING;if(!i.ready||!n.modelUpdated)return Vt.PENDING;let o=this._scene,r=o.ellipsoid??ie.default;if(i.heightReference!==st.NONE){let a=i.modelMatrix;LO.x=a[12],LO.y=a[13],LO.z=a[14];let c=r.cartesianToCartographic(LO,Nut),d=o.getHeight(c,i.heightReference);return l(d)&&(im(i.heightReference)?c.height=d:c.height+=d),ue.clone(i.boundingSphere,t),t.center=r.cartographicToCartesian(c),Vt.DONE}return ue.clone(i.boundingSphere,t),Vt.DONE};ux.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._modelHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._model)&&l(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._model)&&l(r._position)?(wut(r,a),s.set(r.id,r)):(M6(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],M6(this,r,a,c),s.remove(r.id)};function M6(e,t,n,i){let o=n[t.id];l(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function wut(e,t){let n=t[e.id];l(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var uY=ux;var dIi=x(T(),1);var XFi=x(T(),1);function mx(e){this._definitionChanged=new Se,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(mx.prototype,{isConstant:{get:function(){return j.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return l(this._value)?this._value.referenceFrame:Pi.FIXED}}});var Mut=new Q;mx.prototype.getValue=function(e,t){return l(e)||(e=Q.now(Mut)),this.getValueInReferenceFrame(e,Pi.FIXED,t)};mx.prototype.setValue=function(e){this._value!==e&&(this._value=e,l(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),l(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};mx.prototype.getValueInReferenceFrame=function(e,t,n){if(l(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),l(n)?ie.default.scaleToGeodeticSurface(n,n):void 0};mx.prototype.equals=function(e){return this===e||e instanceof mx&&this._value===e._value};mx.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Fp=mx;var m_e=new $,h_e=new $,f_e=new $,kut=new h,p_e=new h,Uut=new h,Dut=new h,WO=new Ne,vO=new F,FO=new $;function hY(e,t,n,i,o){if(!(!l(t)||!l(n))){if(h.subtract(t,n,o),l(i.orientation))i.orientation.getValue(e,WO)&&(Ne.conjugate(WO,WO),$.fromQuaternion(WO,FO),$.multiplyByVector(FO,o,o));else if(l(D6(e,i.position,vO)))F.inverse(vO,vO),F.getRotation(vO,FO),$.multiplyByVector(FO,o,o);else return;return o}}function D6(e,t,n){let i=t.getValue(e,kut);if(l(i)){let o=Q.addSeconds(e,.01,new Q),r=t.getValue(o,p_e);if(l(r)&&!h.equalsEpsilon(i,r,W.EPSILON16)){let s=xt.computeFixedToIcrfMatrix(e,m_e),a=xt.computeFixedToIcrfMatrix(o,h_e),c;!l(s)||!l(a)?(c=xt.computeTemeToPseudoFixedMatrix(e,f_e),s=$.transpose(c,m_e),a=xt.computeTemeToPseudoFixedMatrix(o,h_e),$.transpose(a,a)):c=$.transpose(s,f_e);let d=Uut;h.normalize(i,d),h.normalize(r,r),$.multiplyByVector(s,d,d),$.multiplyByVector(a,r,r);let u=h.cross(d,r,Dut);if(!h.equalsEpsilon(u,h.ZERO,W.EPSILON16)){let m=h.cross(u,d,p_e);return $.multiplyByVector(c,m,m),$.multiplyByVector(c,u,u),$.multiplyByVector(c,d,d),h.normalize(m,m),h.normalize(u,u),h.normalize(d,d),l(n)||(n=new F),n[0]=m.x,n[1]=m.y,n[2]=m.z,n[3]=0,n[4]=u.x,n[5]=u.y,n[6]=u.z,n[7]=0,n[8]=d.x,n[9]=d.y,n[10]=d.z,n[11]=0,n[12]=i.x,n[13]=i.y,n[14]=i.z,n[15]=1,n}}}}var b_e=60,S_e=1,A_e=new Tn,k6=new Tn,U6=new Tn;function g_e(e){this.entity=e,this.polyline=void 0,this.segmentPolylines=[],this.index=void 0,this.updater=void 0}var IO=new h;function Out(e,t,n,i,o,r,s,a,c){let d,u,m=!1;r instanceof Oo&&(d=r,u=d.position,r=Pi.FIXED,m=!0);let p=a,b,f;b=e.getValueInReferenceFrame(t,r,c[p]),m?(f=u.getValueInReferenceFrame(t,r,IO),b=hY(t,b,f,d,b),l(b)&&(c[p++]=b)):l(b)&&(c[p++]=b);let y=!l(o)||Q.lessThanOrEquals(o,t)||Q.greaterThanOrEquals(o,n),_=0,S=i.length,A=i[_],Z=n,R=!1,G,E,v;for(;_<S;){if(!y&&Q.greaterThanOrEquals(A,o)&&(b=e.getValueInReferenceFrame(o,r,c[p]),m?(f=u.getValueInReferenceFrame(o,r,IO),l(b)&&l(f)&&(b=hY(o,b,f,d,b),l(b)&&(c[p++]=b))):l(b)&&(c[p++]=b),y=!0),Q.greaterThan(A,t)&&Q.lessThan(A,Z)&&!A.equals(o)&&(b=e.getValueInReferenceFrame(A,r,c[p]),m?(f=u.getValueInReferenceFrame(A,r,IO),l(b)&&l(f)&&(b=hY(A,b,f,d,b),l(b)&&(c[p++]=b))):l(b)&&(c[p++]=b)),_<S-1){if(s>0&&!R){let I=i[_+1],X=Q.secondsDifference(I,A);R=X>s,R&&(G=Math.ceil(X/s),E=0,v=X/Math.max(G,2),G=Math.max(G-1,1))}if(R&&E<G){A=Q.addSeconds(A,v,new Q),E++;continue}}R=!1,_++,A=i[_]}return b=e.getValueInReferenceFrame(n,r,c[p]),m?(f=u.getValueInReferenceFrame(n,r,IO),l(b)&&l(f)&&(b=hY(n,b,f,d,b),l(b)&&(c[p++]=b))):l(b)&&(c[p++]=b),p}function But(e,t,n,i,o,r,s,a){let c,d=0,u=s,m=t,p=!l(i)||Q.lessThanOrEquals(i,t)||Q.greaterThanOrEquals(i,n);for(;Q.lessThan(m,n);)!p&&Q.greaterThanOrEquals(m,i)&&(p=!0,c=e.getValueInReferenceFrame(i,o,a[u]),l(c)&&(a[u]=c,u++)),c=e.getValueInReferenceFrame(m,o,a[u]),l(c)&&(a[u]=c,u++),d++,m=Q.addSeconds(t,r*d,new Q);return c=e.getValueInReferenceFrame(n,o,a[u]),l(c)&&(a[u]=c,u++),u}function zut(e,t,n,i,o,r,s,a){let c,d=0,u=s,m=t,p=Math.max(r,60),b=!l(i)||Q.lessThanOrEquals(i,t)||Q.greaterThanOrEquals(i,n);for(;Q.lessThan(m,n);)!b&&Q.greaterThanOrEquals(m,i)&&(b=!0,c=e.getValueInReferenceFrame(i,o,a[u]),l(c)&&(a[u]=c,u++)),c=e.getValueInReferenceFrame(m,o,a[u]),l(c)&&(a[u]=c,u++),d++,m=Q.addSeconds(t,p*d,new Q);return c=e.getValueInReferenceFrame(n,o,a[u]),l(c)&&(a[u]=c,u++),u}function Hut(e,t,n,i,o,r,s,a){U6.start=t,U6.stop=n;let c=s,d=e.intervals;for(let u=0;u<d.length;u++){let m=d.get(u);if(!Tn.intersect(m,U6,A_e).isEmpty){let p=m.start;m.isStartIncluded||(m.isStopIncluded?p=m.stop:p=Q.addSeconds(m.start,Q.secondsDifference(m.stop,m.start)/2,new Q));let b=e.getValueInReferenceFrame(p,o,a[c]);l(b)&&(a[c]=b,c++)}}return c}function Kut(e,t,n,i,o,r,s,a){let c=e.getValueInReferenceFrame(t,o,a[s]);return l(c)&&(a[s++]=c),s}function Jut(e,t,n,i,o,r,s,a){k6.start=t,k6.stop=n;let c=s,d=e.intervals;for(let u=0;u<d.length;u++){let m=d.get(u);if(!Tn.intersect(m,k6,A_e).isEmpty){let p=m.start,b=m.stop,f=t;Q.greaterThan(p,f)&&(f=p);let y=n;Q.lessThan(b,y)&&(y=b),c=Z_e(m.data,f,y,i,o,r,c,a)}}return c}function Z_e(e,t,n,i,o,r,s,a){for(;e instanceof zb;)e=e.resolvedProperty;if(e instanceof ic){let c=e._property._times;s=Out(e,t,n,c,i,o,r,s,a)}else e instanceof nv?s=But(e,t,n,i,o,r,s,a):e instanceof tc?s=Jut(e,t,n,i,o,r,s,a):e instanceof Hb?s=Hut(e,t,n,i,o,r,s,a):e instanceof Al||e instanceof Fp&&j.isConstant(e)?s=Kut(e,t,n,i,o,r,s,a):s=zut(e,t,n,i,o,r,s,a);return s}function O6(e,t,n,i,o,r,s){l(s)||(s=[]);let a=Z_e(e,t,n,i,o,r,0,s);return s.length=a,s}var y_e=new $,x_e=new Ne,T_e=new $,mY=new Tn,PO=new Tn,AS=new Tn;function jut(e){let t=[];if(!l(e))return t;for(let n in e){if(n[0]!=="_"||n==="_definitionChanged"||n.endsWith("Subscription"))continue;let i=e[n];l(i)&&typeof i.getValue=="function"&&!j.isConstant(i)&&t.push(i)}return t}function __e(e,t,n,i,o,r,s,a,c,d,u){e.sort(Q.compare),e=Co(e,Q.equalsEpsilon);let m=u;for(let p=0;p<e.length-1;p++){let b=e[p],f=e[p+1];if(!Q.lessThan(b,f))continue;let y=Q.addSeconds(b,Q.secondsDifference(f,b)/2,new Q),_=O6(t,b,f,n,c,a,[]);if(_.length<2)continue;let S=r.segmentPolylines[m];l(S)||(S=s.add(),S.id=o,r.segmentPolylines[m]=S),S.show=!0,S.positions=_,S.material=sr.getValue(y,d,S.material),S.width=j.getValueOrDefault(i._width,n,S_e),m++}return m}function fY(e,t){this._unusedIndexes=[],this._polylineCollection=new Kh,this._scene=e,this._referenceFrame=t,e.primitives.add(this._polylineCollection)}fY.prototype.update=function(e){let t=this._referenceFrame;if(t===Pi.INERTIAL){let n=xt.computeIcrfToFixedMatrix(e,y_e);l(n)||(n=xt.computeTemeToPseudoFixedMatrix(e,y_e)),F.fromRotationTranslation(n,h.ZERO,this._polylineCollection.modelMatrix)}else if(t instanceof Oo){let n=t.position.getValue(e);l(t.orientation)?l(t.orientation.getValue(e,x_e))&&($.fromQuaternion(x_e,T_e),F.fromRotationTranslation(T_e,n,this._polylineCollection.modelMatrix)):D6(e,t.position,this._polylineCollection.modelMatrix)}};fY.prototype.updateObject=function(e,t){let n=t.entity,i=n._path,o=n._position,r,s,a=i._show,c=t.polyline,d=n.isShowing&&n.isAvailable(e)&&(!l(a)||a.getValue(e));if(d){let f=j.getValueOrUndefined(i._leadTime,e),y=j.getValueOrUndefined(i._trailTime,e),_=n._availability,S=l(_),A=l(f),Z=l(y);if(d=S||A&&Z,d){if(Z&&(r=Q.addSeconds(e,-y,new Q)),A&&(s=Q.addSeconds(e,f,new Q)),S){let R=_.start,G=_.stop;(!Z||Q.greaterThan(R,r))&&(r=R),(!A||Q.lessThan(G,s))&&(s=G)}d=Q.lessThan(r,s)}}if(!d){l(c)&&(this._unusedIndexes.push(t.index),t.polyline=void 0,c.show=!1,t.index=void 0);for(let f=0;f<t.segmentPolylines.length;f++)t.segmentPolylines[f].show=!1;return}if(!l(c)){let f=this._unusedIndexes;if(f.length>0){let _=f.pop();c=this._polylineCollection.get(_),t.index=_}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=n,t.polyline=c}let u=j.getValueOrDefault(i._resolution,e,b_e),m=O6(o,r,s,e,this._referenceFrame,u,c.positions.slice());if(m.length<2){c.show=!1;for(let f=0;f<t.segmentPolylines.length;f++)t.segmentPolylines[f].show=!1;return}c.show=!0,c.positions=m,c.material=sr.getValue(e,i.material,c.material);let p=j.getValueOrUndefined(i.materialMode,e),b=i.material;if(p===Db.PORTIONS&&!b.isConstant){l(c)&&(c.show=!1);let f=u>0?u:b_e,y=b.intervals,_=0;if(l(y)){mY.start=r,mY.stop=s,mY.isStartIncluded=!0,mY.isStopIncluded=!0;for(let S=0;S<y.length;S++){let A=y.get(S);if(!Tn.intersect(A,mY,PO))continue;let Z=PO.start,R=PO.stop;if(Q.greaterThanOrEquals(Z,R))continue;let G=jut(A.data),E=[Q.clone(Z),Q.clone(R)];for(let v=0;v<G.length;v++){let I=G[v],X=I.intervals;if(l(X))for(let Y=0;Y<X.length;Y++){let g=X.get(Y);Tn.intersect(g,PO,AS)&&(Q.greaterThan(AS.start,Z)&&Q.lessThan(AS.start,R)&&E.push(Q.clone(AS.start)),Q.greaterThan(AS.stop,Z)&&Q.lessThan(AS.stop,R)&&E.push(Q.clone(AS.stop)))}else if(!j.isConstant(I)){let Y=Q.clone(Z);for(;Q.lessThan(Y,R);)E.push(Q.clone(Y)),Y=Q.addSeconds(Y,f,new Q)}}_=__e(E,o,e,i,n,t,this._polylineCollection,f,this._referenceFrame,A.data,_)}}else{let S=[Q.clone(r),Q.clone(s)],A=Q.addSeconds(r,f,new Q);for(;Q.lessThan(A,s);)S.push(Q.clone(A)),A=Q.addSeconds(A,f,new Q);_=__e(S,o,e,i,n,t,this._polylineCollection,f,this._referenceFrame,i.material,_)}for(let S=_;S<t.segmentPolylines.length;S++)l(t.segmentPolylines[S])&&(t.segmentPolylines[S].show=!1)}else for(let f=0;f<t.segmentPolylines.length;f++)t.segmentPolylines[f].show=!1;c.width=j.getValueOrDefault(i._width,e,S_e),c.distanceDisplayCondition=j.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};fY.prototype.removeObject=function(e){let t=e.polyline;l(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0);for(let n=0;n<e.segmentPolylines.length;n++)e.segmentPolylines[n].show=!1;e.segmentPolylines.length=0};fY.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),he(this)};function Ip(e,t){t.collectionChanged.addEventListener(Ip.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new wt,this._onCollectionChanged(t,t.values,[],[])}Ip.prototype.update=function(e){let t=this._updaters;for(let i in t)t.hasOwnProperty(i)&&t[i].update(e);let n=this._items.values;if(n.length===0&&l(this._updaters)&&Object.keys(this._updaters).length>0){for(let i in t)t.hasOwnProperty(i)&&t[i].destroy();this._updaters={}}for(let i=0,o=n.length;i<o;i++){let r=n[i],s=r.entity,a=s._position,c=s._path,d=r.updater,u=!1,m=Pi.FIXED,p=m.toString();if(this._scene.mode===re.SCENE3D){let f=j.getValueOrUndefined(c.relativeTo,e);l(f)?f==="FIXED"?(m=Pi.FIXED,p=m.toString()):f==="INERTIAL"?(m=Pi.INERTIAL,p=m.toString()):(u=!0,m=this._entityCollection.getById(f),p=f):(m=a.referenceFrame,p=m.toString())}let b=this._updaters[p];if(d===b&&l(b)){b.updateObject(e,r);continue}l(d)&&d.removeObject(r),!(u&&!l(m))&&(l(b)||(b=new fY(this._scene,m),b.update(e),this._updaters[p]=b),r.updater=b,l(b)&&b.updateObject(e,r))}return!0};Ip.prototype.isDestroyed=function(){return!1};Ip.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Ip.prototype._onCollectionChanged,this);let e=this._updaters;for(let t in e)e.hasOwnProperty(t)&&e[t].destroy();return he(this)};Ip.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s,a=this._items;for(o=t.length-1;o>-1;o--)r=t[o],l(r._path)&&l(r._position)&&a.set(r.id,new g_e(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._path)&&l(r._position)?a.contains(r.id)||a.set(r.id,new g_e(r)):(s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id)));for(o=n.length-1;o>-1;o--)r=n[o],s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};Ip._subSample=O6;Ip._computeVvlhTransform=D6;Ip._transformToEntityFrame=hY;var pY=Ip;var ZIi=x(T(),1);var C_e=U.WHITE,R_e=U.BLACK,V_e=0,G_e=1,E_e=0,L_e=Gr.NONE,W_e=new U,Qut=new h,v_e=new U,F_e=new Bt,I_e=new Bt,P_e=new Ut;function X_e(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function hx(e,t){t.collectionChanged.addEventListener(hx.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new wt,this._onCollectionChanged(t,t.values,[],[])}hx.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._point,c=r.pointPrimitive,d=r.billboard,u=j.getValueOrDefault(a._heightReference,e,st.NONE),m=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),p;if(m&&(p=j.getValueOrUndefined(s._position,e,Qut),m=l(p)),!m){bY(r,s,n);continue}j.isConstant(s._position)||(n._clusterDirty=!0);let b=!1,f=!1;if(u!==st.NONE&&!l(d)?(l(c)&&(bY(r,s,n),c=void 0),d=n.getBillboard(s),d.id=s,d.image=void 0,r.billboard=d,b=!0,f=h.equals(d.position,p)&&d.heightReference===u):u===st.NONE&&!l(c)&&(l(d)&&(bY(r,s,n),d=void 0),c=n.getPoint(s),c.id=s,r.pointPrimitive=c),l(c))c.show=!0,c.position=p,c.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,F_e),c.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,I_e),c.color=j.getValueOrDefault(a._color,e,C_e,W_e),c.outlineColor=j.getValueOrDefault(a._outlineColor,e,R_e,v_e),c.outlineWidth=j.getValueOrDefault(a._outlineWidth,e,V_e),c.pixelSize=j.getValueOrDefault(a._pixelSize,e,G_e),c.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,P_e),c.disableDepthTestDistance=j.getValueOrDefault(a._disableDepthTestDistance,e,E_e),c.splitDirection=j.getValueOrDefault(a._splitDirection,e,L_e);else if(l(d)){d.show=!0,d.position=p,d.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,F_e),d.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,I_e),d.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,P_e),d.disableDepthTestDistance=j.getValueOrDefault(a._disableDepthTestDistance,e,E_e),d.splitDirection=j.getValueOrDefault(a._splitDirection,e,L_e),d.heightReference=u;let y=j.getValueOrDefault(a._color,e,C_e,W_e),_=j.getValueOrDefault(a._outlineColor,e,R_e,v_e),S=Math.round(j.getValueOrDefault(a._outlineWidth,e,V_e)),A=Math.max(1,Math.round(j.getValueOrDefault(a._pixelSize,e,G_e)));if(S>0?(d.scale=1,b=b||S!==r.outlineWidth||A!==r.pixelSize||!U.equals(y,r.color)||!U.equals(_,r.outlineColor)):(d.scale=A/50,A=50,b=b||S!==r.outlineWidth||!U.equals(y,r.color)||!U.equals(_,r.outlineColor)),b){r.color=U.clone(y,r.color),r.outlineColor=U.clone(_,r.outlineColor),r.pixelSize=A,r.outlineWidth=S;let Z=y.alpha,R=y.toCssColorString(),G=_.toCssColorString(),E=JSON.stringify([R,A,G,S]);d.setImage(E,L_(Z,R,G,S,A))}f&&d._updateClamping()}}return!0};hx.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!(l(n.pointPrimitive)||l(n.billboard)))return Vt.FAILED;if(l(n.pointPrimitive))t.center=h.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!l(i._clampedPosition))return Vt.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,Vt.DONE};hx.prototype.isDestroyed=function(){return!1};hx.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(hx.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removePoint(e[t]);return he(this)};hx.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._point)&&l(r._position)&&s.set(r.id,new X_e(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._point)&&l(r._position)?s.contains(r.id)||s.set(r.id,new X_e(r)):(bY(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],bY(s.get(r.id),r,a),s.remove(r.id)};function bY(e,t,n){if(l(e)){let i=e.pointPrimitive;if(l(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;l(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var gY=hx;var $Pi=x(T(),1);var TPi=x(T(),1);var OIi=x(T(),1);var k_e=[];function qut(e,t,n,i,o){let r=k_e;r.length=o;let s,a=n.red,c=n.green,d=n.blue,u=n.alpha,m=i.red,p=i.green,b=i.blue,f=i.alpha;if(U.equals(n,i)){for(s=0;s<o;s++)r[s]=U.clone(n);return r}let y=(m-a)/o,_=(p-c)/o,S=(b-d)/o,A=(f-u)/o;for(s=0;s<o;s++)r[s]=new U(a+s*y,c+s*_,d+s*S,u+s*A);return r}function yY(e){e=e??B.EMPTY_OBJECT;let t=e.positions,n=e.colors,i=e.width??1,o=e.colorsPerVertex??!1;this._positions=t,this._colors=n,this._width=i,this._colorsPerVertex=o,this._vertexFormat=Me.clone(e.vertexFormat??Me.DEFAULT),this._arcType=e.arcType??ln.GEODESIC,this._granularity=e.granularity??W.RADIANS_PER_DEGREE,this._ellipsoid=ie.clone(e.ellipsoid??ie.default),this._workerName="createPolylineGeometry";let r=1+t.length*h.packedLength;r+=l(n)?1+n.length*U.packedLength:1,this.packedLength=r+ie.packedLength+Me.packedLength+4}yY.pack=function(e,t,n){n=n??0;let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=U.packedLength)U.pack(s[i],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,Me.pack(e._vertexFormat,t,n),n+=Me.packedLength,t[n++]=e._width,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};var U_e=ie.clone(ie.UNIT_SPHERE),D_e=new Me,ZS={positions:void 0,colors:void 0,ellipsoid:U_e,vertexFormat:D_e,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};yY.unpack=function(e,t,n){t=t??0;let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=U.packedLength)s[i]=U.unpack(e,t);let a=ie.unpack(e,t,U_e);t+=ie.packedLength;let c=Me.unpack(e,t,D_e);t+=Me.packedLength;let d=e[t++],u=e[t++]===1,m=e[t++],p=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=ie.clone(a,n._ellipsoid),n._vertexFormat=Me.clone(c,n._vertexFormat),n._width=d,n._colorsPerVertex=u,n._arcType=m,n._granularity=p,n):(ZS.positions=r,ZS.colors=s,ZS.width=d,ZS.colorsPerVertex=u,ZS.arcType=m,ZS.granularity=p,new yY(ZS))};var Y_e=new h,N_e=new h,w_e=new h,M_e=new h;yY.createGeometry=function(e){let t=e._width,n=e._vertexFormat,i=e._colors,o=e._colorsPerVertex,r=e._arcType,s=e._granularity,a=e._ellipsoid,c,d,u,m=[],p=Co(e._positions,h.equalsEpsilon,!1,m);if(l(i)&&m.length>0){let P=0,N=m[0];i=i.filter(function(O,M){let D=!1;return o?D=M===N||M===0&&N===1:D=M+1===N,D?(P++,N=m[P],!1):!0})}let b=p.length;if(b<2||t<=0)return;if(r===ln.GEODESIC||r===ln.RHUMB){let P,N;r===ln.GEODESIC?(P=W.chordLength(s,a.maximumRadius),N=Hi.numberOfPoints):(P=s,N=Hi.numberOfPointsRhumbLine);let O=Hi.extractHeights(p,a);if(l(i)){let M=1;for(c=0;c<b-1;++c)M+=N(p[c],p[c+1],P);let D=new Array(M),w=0;for(c=0;c<b-1;++c){let z=p[c],K=p[c+1],ee=i[c],H=N(z,K,P);if(o&&c<M){let te=i[c+1],q=qut(z,K,ee,te,H),de=q.length;for(d=0;d<de;++d)D[w++]=q[d]}else for(d=0;d<H;++d)D[w++]=U.clone(ee)}D[w]=U.clone(i[i.length-1]),i=D,k_e.length=0}r===ln.GEODESIC?p=Hi.generateCartesianArc({positions:p,minDistance:P,ellipsoid:a,height:O}):p=Hi.generateCartesianRhumbArc({positions:p,granularity:P,ellipsoid:a,height:O})}b=p.length;let f=b*4-4,y=new Float64Array(f*3),_=new Float64Array(f*3),S=new Float64Array(f*3),A=new Float32Array(f*2),Z=n.st?new Float32Array(f*2):void 0,R=l(i)?new Uint8Array(f*4):void 0,G=0,E=0,v=0,I=0,X;for(d=0;d<b;++d){d===0?(X=Y_e,h.subtract(p[0],p[1],X),h.add(p[0],X,X)):X=p[d-1],h.clone(X,w_e),h.clone(p[d],N_e),d===b-1?(X=Y_e,h.subtract(p[b-1],p[b-2],X),h.add(p[b-1],X,X)):X=p[d+1],h.clone(X,M_e);let P,N;l(R)&&(d!==0&&!o?P=i[d-1]:P=i[d],d!==b-1&&(N=i[d]));let O=d===0?2:0,M=d===b-1?2:4;for(u=O;u<M;++u){h.pack(N_e,y,G),h.pack(w_e,_,G),h.pack(M_e,S,G),G+=3;let D=u-2<0?-1:1;if(A[E++]=2*(u%2)-1,A[E++]=D*t,n.st&&(Z[v++]=d/(b-1),Z[v++]=Math.max(A[E-2],0)),l(R)){let w=u<2?P:N;R[I++]=U.floatToByte(w.red),R[I++]=U.floatToByte(w.green),R[I++]=U.floatToByte(w.blue),R[I++]=U.floatToByte(w.alpha)}}}let Y=new xn;Y.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:y}),Y.prevPosition=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:_}),Y.nextPosition=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:S}),Y.expandAndWidth=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:A}),n.st&&(Y.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:Z})),l(R)&&(Y.color=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:4,values:R,normalize:!0}));let g=De.createTypedArray(f,b*6-6),C=0,V=0,L=b-1;for(d=0;d<L;++d)g[V++]=C,g[V++]=C+2,g[V++]=C+1,g[V++]=C+1,g[V++]=C+2,g[V++]=C+3,C+=4;return new Zt({attributes:Y,indices:g,primitiveType:ve.TRIANGLES,boundingSphere:ue.fromPoints(p),geometryType:om.POLYLINES})};var tg=yY;var $ut=new li(0),XO={},O_e=new U,emt=new jt(U.WHITE),tmt=new li(!0),nmt=new li(Gn.DISABLED),imt=new li(new Ut),omt=new li(Kn.BOTH);function rmt(){this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function smt(){this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function gf(e,t){this._entity=e,this._scene=t,this._entitySubscription=e.definitionChanged.addEventListener(gf.prototype._onEntityPropertyChanged,this),this._fillEnabled=!1,this._dynamic=!1,this._geometryChanged=new Se,this._showProperty=void 0,this._materialProperty=void 0,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._depthFailMaterialProperty=void 0,this._geometryOptions=new rmt,this._groundGeometryOptions=new smt,this._id=`polyline-${e.id}`,this._clampToGround=!1,this._supportsPolylinesOnTerrain=Oo.supportsPolylinesOnTerrain(t),this._zIndex=0,this._onEntityPropertyChanged(e,"polyline",e.polyline,void 0)}Object.defineProperties(gf.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!l(this._entity.availability)&&j.isConstant(this._showProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},depthFailMaterialProperty:{get:function(){return this._depthFailMaterialProperty}},outlineEnabled:{value:!1},hasConstantOutline:{value:!0},outlineColorProperty:{value:void 0},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{value:!1},geometryChanged:{get:function(){return this._geometryChanged}},arcType:{get:function(){return this._arcType}},clampToGround:{get:function(){return this._clampToGround&&this._supportsPolylinesOnTerrain}},zIndex:{get:function(){return this._zIndex}}});gf.prototype.isOutlineVisible=function(e){return!1};gf.prototype.isFilled=function(e){let t=this._entity;return(this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e))??!1};gf.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new Vn(n&&t.isShowing&&this._showProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=Bn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r},a;return this._materialProperty instanceof jt&&(l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,O_e)),l(a)||(a=U.WHITE),s.color=qt.fromColor(a)),this.clampToGround?new Pt({id:t,geometry:new GT(this._groundGeometryOptions),attributes:s}):(l(this._depthFailMaterialProperty)&&this._depthFailMaterialProperty instanceof jt&&(l(this._depthFailMaterialProperty.color)&&(this._depthFailMaterialProperty.color.isConstant||n)&&(a=this._depthFailMaterialProperty.color.getValue(e,O_e)),l(a)||(a=U.WHITE),s.depthFailColor=qt.fromColor(a)),new Pt({id:t,geometry:new tg(this._geometryOptions),attributes:s}))};gf.prototype.createOutlineGeometryInstance=function(e){};gf.prototype.isDestroyed=function(){return!1};gf.prototype.destroy=function(){this._entitySubscription(),he(this)};gf.prototype._onEntityPropertyChanged=function(e,t,n,i){if(!(t==="availability"||t==="polyline"))return;let o=this._entity.polyline;if(!l(o)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.positions,s=o.show;if(l(s)&&s.isConstant&&!s.getValue(qe.MINIMUM_VALUE)||!l(r)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let a=o.zIndex,c=o.material??emt,d=c instanceof jt;this._materialProperty=c,this._depthFailMaterialProperty=o.depthFailMaterial,this._showProperty=s??tmt,this._shadowsProperty=o.shadows??nmt,this._distanceDisplayConditionProperty=o.distanceDisplayCondition??imt,this._classificationTypeProperty=o.classificationType??omt,this._fillEnabled=!0,this._zIndex=a??$ut;let u=o.width,m=o.arcType,p=o.clampToGround,b=o.granularity;if(!r.isConstant||!j.isConstant(u)||!j.isConstant(m)||!j.isConstant(b)||!j.isConstant(p)||!j.isConstant(a))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{let f=this._geometryOptions,y=r.getValue(qe.MINIMUM_VALUE,f.positions);if(!l(y)||y.length<2){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let _;d&&(!l(this._depthFailMaterialProperty)||this._depthFailMaterialProperty instanceof jt)?_=Zs.VERTEX_FORMAT:_=Ka.VERTEX_FORMAT,f.vertexFormat=_,f.positions=y,f.width=l(u)?u.getValue(qe.MINIMUM_VALUE):void 0,f.arcType=l(m)?m.getValue(qe.MINIMUM_VALUE):void 0,f.granularity=l(b)?b.getValue(qe.MINIMUM_VALUE):void 0;let S=this._groundGeometryOptions;S.positions=y,S.width=f.width,S.arcType=f.arcType,S.granularity=f.granularity,this._clampToGround=l(p)?p.getValue(qe.MINIMUM_VALUE):!1,!this._clampToGround&&l(a)&&_t("Entity polylines must have clampToGround: true when using zIndex. zIndex will be ignored."),this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};gf.prototype.createDynamicUpdater=function(e,t){return new xY(e,t,this)};var e1={positions:void 0,granularity:void 0,height:void 0,ellipsoid:void 0};function xY(e,t,n){this._line=void 0,this._primitives=e,this._groundPrimitives=t,this._groundPolylinePrimitive=void 0,this._material=void 0,this._geometryUpdater=n,this._positions=[]}function B_e(e){if(l(e._line))return e._line;let t=e._primitives,n=e._geometryUpdater._scene.id+t._guid,i=XO[n];!l(i)||i.isDestroyed()?(i=new Kh,XO[n]=i,t.add(i)):t.contains(i)||t.add(i);let o=i.add();return o.id=e._geometryUpdater._entity,e._line=o,o}xY.prototype.update=function(e){let t=this._geometryUpdater,n=t._entity,i=n.polyline,o=i.positions,r=j.getValueOrUndefined(o,e,this._positions);t._clampToGround=j.getValueOrDefault(i._clampToGround,e,!1),t._groundGeometryOptions.positions=r,t._groundGeometryOptions.width=j.getValueOrDefault(i._width,e,1),t._groundGeometryOptions.arcType=j.getValueOrDefault(i._arcType,e,ln.GEODESIC),t._groundGeometryOptions.granularity=j.getValueOrDefault(i._granularity,e,9999);let s=this._groundPrimitives;if(l(this._groundPolylinePrimitive)&&(s.remove(this._groundPolylinePrimitive),this._groundPolylinePrimitive=void 0),t.clampToGround){if(!n.isShowing||!n.isAvailable(e)||!j.getValueOrDefault(i._show,e,!0)||!l(r)||r.length<2)return;let m=t.fillMaterialProperty,p;if(m instanceof jt)p=new Zs;else{let b=sr.getValue(e,m,this._material);p=new Ka({material:b,translucent:b.isTranslucent()}),this._material=b}this._groundPolylinePrimitive=s.add(new _h({geometryInstances:t.createFillGeometryInstance(e),appearance:p,classificationType:t.classificationTypeProperty.getValue(e),asynchronous:!1}),j.getValueOrUndefined(t.zIndex,e)),l(this._line)&&(this._line.show=!1);return}let a=B_e(this);if(!n.isShowing||!n.isAvailable(e)||!j.getValueOrDefault(i._show,e,!0)){a.show=!1;return}if(!l(r)||r.length<2){a.show=!1;return}let c=ln.GEODESIC;c=j.getValueOrDefault(i._arcType,e,c);let d=t._scene.globe,u=t._scene.ellipsoid;c!==ln.NONE&&l(d)&&(e1.ellipsoid=u,e1.positions=r,e1.granularity=j.getValueOrUndefined(i._granularity,e),e1.height=Hi.extractHeights(r,u),c===ln.GEODESIC?r=Hi.generateCartesianArc(e1):r=Hi.generateCartesianRhumbArc(e1)),a.show=!0,a.positions=r.slice(),a.material=sr.getValue(e,t.fillMaterialProperty,a.material),a.width=j.getValueOrDefault(i._width,e,1),a.distanceDisplayCondition=j.getValueOrUndefined(i._distanceDisplayCondition,e,a.distanceDisplayCondition)};xY.prototype.getBoundingSphere=function(e){if(this._geometryUpdater.clampToGround){let t=this._groundPolylinePrimitive;if(l(t)&&t.show&&t.ready){let n=t.getGeometryInstanceAttributes(this._geometryUpdater._entity);if(l(n)&&l(n.boundingSphere))return ue.clone(n.boundingSphere,e),Vt.DONE}return l(t)&&!t.ready?Vt.PENDING:Vt.DONE}else{let t=B_e(this);if(t.show&&t.positions.length>0)return ue.fromPoints(t.positions,e),Vt.DONE}return Vt.FAILED};xY.prototype.isDestroyed=function(){return!1};xY.prototype.destroy=function(){let t=this._geometryUpdater._scene.id+this._primitives._guid,n=XO[t];l(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete XO[t])),l(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),he(this)};var TY=gf;var XPi=x(T(),1);var amt=new U,cmt=new Ut,lmt=new Ut;function yf(e,t,n,i,o){let r;n instanceof jt?r=Zs:r=Ka,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new wt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new wt,this.material=void 0,this.updatersWithAttributes=new wt,this.attributes=new wt,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(yf.prototype.onMaterialChanged,this),this.subscriptions=new wt,this.showsUpdated=new wt,this.zIndex=i,this._asynchronous=o}yf.prototype.onMaterialChanged=function(){this.invalidated=!0};yf.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof jt&&t instanceof jt?!0:l(t)&&t.equals(n)};yf.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!j.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};yf.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};yf.prototype.update=function(e){let t=!0,n=this.primitive,i=this.orderedGroundPrimitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0){l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n);let a=this.appearanceType;n=new _h({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new a,classificationType:this.classificationType}),this.appearanceType===Ka&&(this.material=sr.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1}else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===Ka&&(this.material=sr.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],d=c.entity,u=this.geometry.get(c.id),m=this.attributes.get(u.id.id);if(l(m)||(m=n.getGeometryInstanceAttributes(u.id),this.attributes.set(u.id.id,m)),!c.fillMaterialProperty.isConstant){let y=c.fillMaterialProperty.color,_=j.getValueOrDefault(y,e,U.WHITE,amt);U.equals(m._lastColor,_)||(m._lastColor=U.clone(_,m._lastColor),m.color=qt.toValue(_,m.color))}let p=d.isShowing&&(c.hasConstantFill||c.isFilled(e)),b=m.show[0]===1;p!==b&&(m.show=Vn.toValue(p,m.show));let f=c.distanceDisplayConditionProperty;if(!j.isConstant(f)){let y=j.getValueOrDefault(f,e,lmt,cmt);Ut.equals(y,m._lastDistanceDisplayCondition)||(m._lastDistanceDisplayCondition=Ut.clone(y,m._lastDistanceDisplayCondition),m.distanceDisplayCondition=Bn.toValue(y,m.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};yf.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,d=a.show[0]===1;c!==d&&(a.show=Vn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};yf.prototype.contains=function(e){return this.updaters.contains(e.id)};yf.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return Vt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?Vt.FAILED:(i.boundingSphere.clone(t),Vt.DONE)};yf.prototype.destroy=function(){let e=this.primitive,t=this.orderedGroundPrimitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function t1(e,t,n){this._items=[],this._orderedGroundPrimitives=e,this._classificationType=t,this._asynchronous=n??!0}t1.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=j.getValueOrDefault(t.zIndex,0);for(let a=0;a<i;++a){let c=n[a];if(c.isMaterial(t)&&c.zIndex===r){c.add(e,t,o);return}}let s=new yf(this._orderedGroundPrimitives,this._classificationType,t.fillMaterialProperty,r,this._asynchronous);s.add(e,t,o),n.push(s)};t1.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};t1.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};t1.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return Vt.FAILED};t1.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var _Y=t1;var dmt=[];function z_e(e,t){let n=e._batches,i=n.length;for(let o=0;o<i;o++)n[o].remove(t)}function H_e(e,t,n){if(n.isDynamic){e._dynamicBatch.add(t,n);return}if(n.clampToGround&&n.fillEnabled){let s=n.classificationTypeProperty.getValue(t);e._groundBatches[s].add(t,n);return}let i;n.fillEnabled&&(i=n.shadowsProperty.getValue(t));let o=0;l(n.depthFailMaterialProperty)&&(o=n.depthFailMaterialProperty instanceof jt?1:2);let r;l(i)&&(r=i+o*Gn.NUMBER_OF_SHADOW_MODES),n.fillEnabled&&(n.fillMaterialProperty instanceof jt?e._colorBatches[r].add(t,n):e._materialBatches[r].add(t,n))}function Pp(e,t,n,i){i=i??e.groundPrimitives,n=n??e.primitives,this._scene=e,this._primitives=n,this._entityCollection=void 0,this._addedObjects=new wt,this._removedObjects=new wt,this._changedObjects=new wt;let o,r=Gn.NUMBER_OF_SHADOW_MODES;for(this._colorBatches=new Array(r*3),this._materialBatches=new Array(r*3),o=0;o<r;++o)this._colorBatches[o]=new km(n,Zs,void 0,!1,o),this._materialBatches[o]=new Um(n,Ka,void 0,!1,o),this._colorBatches[o+r]=new km(n,Zs,Zs,!1,o),this._materialBatches[o+r]=new Um(n,Ka,Zs,!1,o),this._colorBatches[o+r*2]=new km(n,Zs,Ka,!1,o),this._materialBatches[o+r*2]=new Um(n,Ka,Ka,!1,o);this._dynamicBatch=new lS(n,i);let s=Kn.NUMBER_OF_CLASSIFICATION_TYPES;for(this._groundBatches=new Array(s),o=0;o<s;++o)this._groundBatches[o]=new _Y(i,o);this._batches=this._colorBatches.concat(this._materialBatches,this._dynamicBatch,this._groundBatches),this._subscriptions=new wt,this._updaters=new wt,this._entityCollection=t,t.collectionChanged.addEventListener(Pp.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,dmt)}Pp.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,d,u;for(a=s.length-1;a>-1;a--)c=s[a],d=c.id,u=this._updaters.get(d),u.entity===c?(z_e(this,u),H_e(this,e,u)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],d=c.id,u=this._updaters.get(d),z_e(this,u),u.destroy(),this._updaters.remove(d),this._subscriptions.get(d)(),this._subscriptions.remove(d);for(a=n.length-1;a>-1;a--)c=n[a],d=c.id,u=new TY(c,this._scene),this._updaters.set(d,u),H_e(this,e,u),this._subscriptions.set(d,u.geometryChanged.addEventListener(Pp._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let m=!0,p=this._batches,b=p.length;for(a=0;a<b;a++)m=p[a].update(e)&&m;return m};var umt=[],mmt=new ue;Pp.prototype.getBoundingSphere=function(e,t){let n=umt,i=mmt,o=0,r=Vt.DONE,s=this._batches,a=s.length,c=this._updaters.get(e.id);for(let d=0;d<a;d++){if(r=s[d].getBoundingSphere(c,i),r===Vt.PENDING)return Vt.PENDING;r===Vt.DONE&&(n[o]=ue.clone(i,n[o]),o++)}return o===0?Vt.FAILED:(n.length=o,ue.fromBoundingSpheres(n,t),Vt.DONE)};Pp.prototype.isDestroyed=function(){return!1};Pp.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Pp.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();return this._subscriptions.removeAll(),he(this)};Pp._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};Pp.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var SY=Pp;function Id(e){Tl.initializeTerrainHeights(),_h.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new Fr,this._eventHelper.add(n.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(n.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(n.dataSourceMoved,this._onDataSourceMoved,this),this._eventHelper.add(t.postRender,this._postRender,this),this._dataSourceCollection=n,this._scene=t,this._visualizersCallback=e.visualizersCallback??Id.defaultVisualizersCallback;let i=!1,o=new Jl,r=new Jl;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let d=0,u=n.length;d<u;d++)this._onDataSourceAdded(n,n.get(d));let s=new xX;this._onDataSourceAdded(void 0,s),this._defaultDataSource=s;let a,c;if(!i){let d=this,u=function(){t.primitives.add(o),t.groundPrimitives.add(r),a(),c(),d._removeDefaultDataSourceListener=void 0,d._removeDataSourceCollectionListener=void 0};a=s.entities.collectionChanged.addEventListener(u),c=n.dataSourceAdded.addEventListener(u)}this._removeDefaultDataSourceListener=a,this._removeDataSourceCollectionListener=c,this._ready=!1}var n1=[];Id.registerVisualizer=function(e){n1.includes(e)||n1.push(e)};Id.unregisterVisualizer=function(e){if(n1.includes(e)){let t=n1.indexOf(e);n1.splice(t,1)}};Id.defaultVisualizersCallback=function(e,t,n){let i=n.entities;return[new UV(t,i),new lY(e,i,n._primitives,n._groundPrimitives),new dY(t,i),new uY(e,i),new rX(e,i),new gY(t,i),new pY(e,i),new SY(e,i,n._primitives,n._groundPrimitives),...n1.map(o=>new o(e,i))]};Object.defineProperties(Id.prototype,{scene:{get:function(){return this._scene}},dataSources:{get:function(){return this._dataSourceCollection}},defaultDataSource:{get:function(){return this._defaultDataSource}},ready:{get:function(){return this._ready}}});Id.prototype.isDestroyed=function(){return!1};Id.prototype.destroy=function(){this._eventHelper.removeAll();let e=this._dataSourceCollection;for(let t=0,n=e.length;t<n;++t)this._onDataSourceRemoved(this._dataSourceCollection,e.get(t));return this._onDataSourceRemoved(void 0,this._defaultDataSource),l(this._removeDefaultDataSourceListener)?(this._removeDefaultDataSourceListener(),this._removeDataSourceCollectionListener()):(this._scene.primitives.remove(this._primitives),this._scene.groundPrimitives.remove(this._groundPrimitives)),he(this)};Id.prototype.update=function(e){if(!Vi.initialized)return this._ready=!1,!1;let t=!0,n,i,o,r,s=this._dataSourceCollection,a=s.length;for(n=0;n<a;n++){let c=s.get(n);for(l(c.update)&&(t=c.update(e)&&t),o=c._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t}for(o=this._defaultDataSource._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t;return!this._ready&&t&&this._scene.requestRender(),this._ready=this._ready||t,t};Id.prototype._postRender=function(){let e=this._scene.frameState,t=this._dataSourceCollection,n=t.length;for(let i=0;i<n;i++){let o=t.get(i),r=o.credit;l(r)&&e.creditDisplay.addCreditToNextFrame(r);let s=o._resourceCredits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)e.creditDisplay.addCreditToNextFrame(s[c])}}};var hmt=[],fmt=new ue;Id.prototype.getBoundingSphere=function(e,t,n){if(!this._ready)return Vt.PENDING;let i,o,r=this._defaultDataSource;if(!r.entities.contains(e)){r=void 0;let p=this._dataSourceCollection;for(o=p.length,i=0;i<o;i++){let b=p.get(i);if(b.entities.contains(e)){r=b;break}}}if(!l(r))return Vt.FAILED;let s=hmt,a=fmt,c=0,d=Vt.DONE,u=r._visualizers,m=u.length;for(i=0;i<m;i++){let p=u[i];if(l(p.getBoundingSphere)){if(d=u[i].getBoundingSphere(e,a),!t&&d===Vt.PENDING)return Vt.PENDING;d===Vt.DONE&&(s[c]=ue.clone(a,s[c]),c++)}}return c===0?Vt.FAILED:(s.length=c,ue.fromBoundingSpheres(s,n),Vt.DONE)};Id.prototype._onDataSourceAdded=function(e,t){let n=this._scene,i=this._primitives,o=this._groundPrimitives,r=i.add(new Jl),s=o.add(new IX);t._primitives=r,t._groundPrimitives=s;let a=t.clustering;a._initialize(n),r.add(a),t._visualizers=this._visualizersCallback(n,a,t)};Id.prototype._onDataSourceRemoved=function(e,t){let n=this._primitives,i=this._groundPrimitives,o=t._primitives,r=t._groundPrimitives,s=t.clustering;o.remove(s);let a=t._visualizers,c=a.length;for(let d=0;d<c;d++)a[d].destroy();n.remove(o),i.remove(r),t._visualizers=void 0};Id.prototype._onDataSourceMoved=function(e,t,n){let i=this._primitives,o=this._groundPrimitives,r=e._primitives,s=e._groundPrimitives;t===n+1?(i.raise(r),o.raise(s)):t===n-1?(i.lower(r),o.lower(s)):t===0?(i.lowerToBottom(r),o.lowerToBottom(s),i.raise(r),o.raise(s)):(i.raiseToTop(r),o.raiseToTop(s))};var AY=Id;var NXi=x(T(),1);var AXi=x(T(),1);function B6(e,t,n){this.heading=e??0,this.pitch=t??0,this.range=n??0}B6.clone=function(e,t){if(l(e))return l(t)||(t=new B6),t.heading=e.heading,t.pitch=e.pitch,t.range=e.range,t};var Dm=B6;var K_e=new $,J_e=new $,j_e=new $,pmt=new F,YO=new h,Q_e=new h,z6=new h,H6=new h,q_e=new h,$_e=new h,bmt=new Ne,gmt=new h,ymt=new $,i1=new Q,xmt=1.25;function Tmt(e,t,n,i,o,r,s,a,c,d){let u=e.scene.mode,m=o.getValue(c,e._lastCartesian);if(l(m)){let p=!1,b=!1,f,y,_;if(u===re.SCENE3D){Q.addSeconds(c,.001,i1);let v=o.getValue(i1,YO);if(l(v)||(Q.addSeconds(c,-.001,i1),v=o.getValue(i1,YO),b=!0),l(v)){let I=xt.computeFixedToIcrfMatrix(c,K_e),X=xt.computeFixedToIcrfMatrix(i1,J_e),Y;!l(I)||!l(X)?(Y=xt.computeTemeToPseudoFixedMatrix(c,j_e),I=$.transpose(Y,K_e),X=xt.computeTemeToPseudoFixedMatrix(i1,J_e),$.transpose(X,X)):Y=$.transpose(I,j_e);let g=$.multiplyByVector(I,m,q_e),C=$.multiplyByVector(X,v,$_e);h.subtract(g,C,H6);let V=h.magnitude(H6)*1e3,L=W.GRAVITATIONALPARAMETER,P=-L/(V*V-2*L/h.magnitude(g));P<0||P>xmt*d.maximumRadius?(f=Q_e,h.normalize(m,f),h.negate(f,f),_=h.clone(h.UNIT_Z,z6),y=h.cross(_,f,YO),h.magnitude(y)>W.EPSILON7&&(h.normalize(f,f),h.normalize(y,y),_=h.cross(f,y,z6),h.normalize(_,_),p=!0)):h.equalsEpsilon(m,v,W.EPSILON7)||(_=Q_e,h.normalize(g,_),h.normalize(C,C),y=h.cross(_,C,z6),b&&(y=h.multiplyByScalar(y,-1,y)),h.equalsEpsilon(y,h.ZERO,W.EPSILON7)||(f=h.cross(y,_,YO),$.multiplyByVector(Y,f,f),$.multiplyByVector(Y,y,y),$.multiplyByVector(Y,_,_),h.normalize(f,f),h.normalize(y,y),h.normalize(_,_),p=!0))}}l(e.boundingSphere)&&(m=e.boundingSphere.center);let S,A,Z;i&&(S=h.clone(t.position,H6),A=h.clone(t.direction,q_e),Z=h.clone(t.up,$_e));let R=pmt,G;l(s)&&(G=s.getValue(c,bmt));let E=r.getValue(c,gmt);if(a===F0.INERTIAL&&l(G))F.fromTranslationQuaternionRotationScale(m,G,h.ONE,R);else if(a===F0.VELOCITY&&l(E)){let v=xt.rotationMatrixFromPositionVelocity(m,E,d,ymt);F.fromRotationTranslation(v,m,R)}else a===F0.ENU||!p?xt.eastNorthUpToFixedFrame(m,d,R):(R[0]=f.x,R[1]=f.y,R[2]=f.z,R[3]=0,R[4]=y.x,R[5]=y.y,R[6]=y.z,R[7]=0,R[8]=_.x,R[9]=_.y,R[10]=_.z,R[11]=0,R[12]=m.x,R[13]=m.y,R[14]=m.z,R[15]=0);t._setTransform(R),i&&(h.clone(S,t.position),h.clone(A,t.direction),h.clone(Z,t.up),h.cross(A,Z,t.right))}if(n){let p=u===re.SCENE2D||h.equals(e._offset3D,h.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,p)}}function ZY(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=n??ie.default,this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new h,this._defaultOffset3D=void 0,this._velocityProperty=new Jb(e.position,!0),this._offset3D=new h}Object.defineProperties(ZY,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=h.clone(e,new h)}}});ZY.defaultOffset3D=new h(-14e3,3500,3500);var NO=new Dm,_mt=new h;ZY.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===re.MORPHING)return;let r=this.entity,s=r.trackingReferenceFrame,a=r.position;if(!l(a))return;let c=this._velocityProperty,d=r.orientation,u=r!==this._lastEntity,m=o!==this._mode,p=n.camera,b=u||m,f=!0;if(u){let y=r.viewFrom,_=l(y);if(!_&&l(t)){NO.pitch=-W.PI_OVER_FOUR,NO.range=0;let S=a.getValue(e,_mt);if(l(S)){let A=2-1/Math.max(1,h.magnitude(S)/i.maximumRadius);NO.pitch*=A}p.viewBoundingSphere(t,NO),this.boundingSphere=t,b=!1,f=!1}else(!_||!l(y.getValue(e,this._offset3D)))&&h.clone(ZY._defaultOffset3D,this._offset3D)}else!m&&this._mode!==re.SCENE2D&&h.clone(p.position,this._offset3D);this._lastEntity=r,this._mode=o,Tmt(this,p,b,f,a,c,d,s,e,i)};var CY=ZY;var bNi=x(T(),1);var BXi=x(T(),1);function VY(){this._cache={}}VY.prototype.fromColor=function(e,t){return wO(void 0,void 0,e,t,this._cache)};VY.prototype.fromUrl=function(e,t,n){return wO(e,void 0,t,n,this._cache)};VY.prototype.fromMakiIconId=function(e,t,n){return wO($t(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};VY.prototype.fromText=function(e,t,n){return wO(void 0,e,t,n,this._cache)};var Smt=new U;function Amt(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,Smt).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function eSe(e,t,n){let i=n/2.5,o=i,r=i;t.width>t.height?r=i*(t.height/t.width):t.width<t.height&&(o=i*(t.width/t.height));let s=Math.round((n-o)/2),a=Math.round(7/24*n-r/2);e.globalCompositeOperation="destination-out",e.drawImage(t,s-1,a,o,r),e.drawImage(t,s,a-1,o,r),e.drawImage(t,s+1,a,o,r),e.drawImage(t,s,a+1,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=U.BLACK.toCssColorString(),e.fillRect(s-1,a-1,o+2,r+2),e.globalCompositeOperation="destination-out",e.drawImage(t,s,a,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=U.WHITE.toCssColorString(),e.fillRect(s-1,a-2,o+2,r+2)}var RY=new Array(4);function wO(e,t,n,i,o){RY[0]=e,RY[1]=t,RY[2]=n,RY[3]=i;let r=JSON.stringify(RY),s=o[r];if(l(s))return s;let a=document.createElement("canvas");a.width=i,a.height=i;let c=a.getContext("2d");if(Amt(c,n,i),l(e)){let u=We.createIfNeeded(e).fetchImage().then(function(m){return eSe(c,m,i),o[r]=a,a});return o[r]=u,u}else if(l(t)){let d=v_(t,{font:`bold ${i}px sans-serif`});eSe(c,d,i)}return o[r]=a,a}var ng=VY;var PYi=x(T());var $Xi=x(T());var jXi=x(T());var HXi=x(T());function K6(e){return e}function MO(e){if(e==null)return K6;var t,n,i=e.scale[0],o=e.scale[1],r=e.translate[0],s=e.translate[1];return function(a,c){c||(t=n=0);var d=2,u=a.length,m=new Array(u);for(m[0]=(t+=a[0])*i+r,m[1]=(n+=a[1])*o+s;d<u;)m[d]=a[d],++d;return m}}var rYi=x(T());var tYi=x(T());function tSe(e,t){for(var n,i=e.length,o=i-t;o<--i;)n=e[o],e[o++]=e[i],e[i]=n}function J6(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return nSe(e,n)})}:nSe(e,t)}function nSe(e,t){var n=t.id,i=t.bbox,o=t.properties==null?{}:t.properties,r=j6(e,t);return n==null&&i==null?{type:"Feature",properties:o,geometry:r}:i==null?{type:"Feature",id:n,properties:o,geometry:r}:{type:"Feature",id:n,bbox:i,properties:o,geometry:r}}function j6(e,t){var n=MO(e.transform),i=e.arcs;function o(u,m){m.length&&m.pop();for(var p=i[u<0?~u:u],b=0,f=p.length;b<f;++b)m.push(n(p[b],b));u<0&&tSe(m,f)}function r(u){return n(u)}function s(u){for(var m=[],p=0,b=u.length;p<b;++p)o(u[p],m);return m.length<2&&m.push(m[0]),m}function a(u){for(var m=s(u);m.length<4;)m.push(m[0]);return m}function c(u){return u.map(a)}function d(u){var m=u.type,p;switch(m){case"GeometryCollection":return{type:m,geometries:u.geometries.map(d)};case"Point":p=r(u.coordinates);break;case"MultiPoint":p=u.coordinates.map(r);break;case"LineString":p=s(u.arcs);break;case"MultiLineString":p=u.arcs.map(s);break;case"Polygon":p=c(u.arcs);break;case"MultiPolygon":p=u.arcs.map(c);break;default:return null}return{type:m,coordinates:p}}return d(t)}var uYi=x(T());var aYi=x(T());var pYi=x(T());var _Yi=x(T());var gYi=x(T());var GYi=x(T());var ZYi=x(T());function kO(e){return h.fromDegrees(e[0],e[1],e[2])}var Q6={"urn:ogc:def:crs:OGC:1.3:CRS84":kO,"EPSG:4326":kO,"urn:ogc:def:crs:EPSG::4326":kO},iSe={},oSe={},q6=48,$6,eq=U.ROYALBLUE,tq=U.YELLOW,nq=2,iq=U.fromBytes(255,255,0,100),oq=!1,Gmt={small:24,medium:48,large:64},Emt=["title","description","marker-size","marker-symbol","marker-color","stroke","stroke-opacity","stroke-width","fill","fill-opacity"];function rSe(e,t){let n="";for(let i in e)if(e.hasOwnProperty(i)){if(i===t||Emt.indexOf(i)!==-1)continue;let o=e[i];l(o)&&(typeof o=="object"?n+=`<tr><th>${i}</th><td>${rSe(o)}</td></tr>`:n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}return n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function Lmt(e,t,n){let i;return function(o,r){return l(i)||(i=e(t,n)),i}}function Wmt(e,t){return new Rh(Lmt(rSe,e,t),!0)}function UO(e,t,n){let i=e.id;if(!l(i)||e.type!=="Feature")i=zn();else{let s=2,a=i;for(;l(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(l(r)){o.properties=r;let s,a=r.title;if(l(a))o.name=a,s="title";else{let d=Number.MAX_VALUE;for(let u in r)if(r.hasOwnProperty(u)&&r[u]){let m=u.toLowerCase();if(d>1&&m==="title"){d=1,s=u;break}else d>2&&m==="name"?(d=2,s=u):d>3&&/title/i.test(u)?(d=3,s=u):d>4&&/name/i.test(u)&&(d=4,s=u)}l(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=l(c)?new li(c):n(r,s))}return o}function rq(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++)n[i]=t(e[i]);return n}var sSe={Feature:cSe,FeatureCollection:vmt,GeometryCollection:lSe,LineString:fSe,MultiLineString:pSe,MultiPoint:mSe,MultiPolygon:ySe,Point:uSe,Polygon:gSe,Topology:xSe},aSe={GeometryCollection:lSe,LineString:fSe,MultiLineString:pSe,MultiPoint:mSe,MultiPolygon:ySe,Point:uSe,Polygon:gSe,Topology:xSe};function cSe(e,t,n,i,o){if(t.geometry===null){UO(t,e._entityCollection,o.describe);return}if(!l(t.geometry))throw new ae("feature.geometry is required.");let r=t.geometry.type,s=aSe[r];if(!l(s))throw new ae(`Unknown geometry type: ${r}`);s(e,t,t.geometry,i,o)}function vmt(e,t,n,i,o){let r=t.features;for(let s=0,a=r.length;s<a;s++)cSe(e,r[s],void 0,i,o)}function lSe(e,t,n,i,o){let r=n.geometries;for(let s=0,a=r.length;s<a;s++){let c=r[s],d=c.type,u=aSe[d];if(!l(u))throw new ae(`Unknown geometry type: ${d}`);u(e,t,c,i,o)}}function dSe(e,t,n,i,o){let r=o.markerSymbol,s=o.markerColor,a=o.markerSize,c=t.properties;if(l(c)){let b=c["marker-color"];l(b)&&(s=U.fromCssColorString(b)),a=Gmt[c["marker-size"]]??a;let f=c["marker-symbol"];l(f)&&(r=f)}let d;l(r)?r.length===1?d=e._pinBuilder.fromText(r.toUpperCase(),s,a):d=e._pinBuilder.fromMakiIconId(r,s,a):d=e._pinBuilder.fromColor(s,a);let u=new Pc;u.verticalOrigin=new li(kn.BOTTOM),i.length===2&&o.clampToGround&&(u.heightReference=st.CLAMP_TO_GROUND);let m=UO(t,e._entityCollection,o.describe);m.billboard=u,m.position=new Al(n(i));let p=Promise.resolve(d).then(function(b){u.image=new li(b)}).catch(function(){u.image=new li(e._pinBuilder.fromColor(s,a))});e._promises.push(p)}function uSe(e,t,n,i,o){dSe(e,t,i,n.coordinates,o)}function mSe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)dSe(e,t,i,r[s],o)}function hSe(e,t,n,i,o){let r=o.strokeMaterialProperty,s=o.strokeWidthProperty,a=t.properties;if(l(a)){let u=a["stroke-width"];l(u)&&(s=new li(u));let m,p=a.stroke;l(p)&&(m=U.fromCssColorString(p));let b=a["stroke-opacity"];l(b)&&b!==1&&(l(m)||(m=r.color.getValue().clone()),m.alpha=b),l(m)&&(r=new jt(m))}let c=UO(t,e._entityCollection,o.describe),d=new Dc;c.polyline=d,d.clampToGround=o.clampToGround,d.material=r,d.width=s,d.positions=new li(rq(i,n)),d.arcType=ln.RHUMB}function fSe(e,t,n,i,o){hSe(e,t,i,n.coordinates,o)}function pSe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)hSe(e,t,i,r[s],o)}function bSe(e,t,n,i,o){if(i.length===0||i[0].length===0)return;let r=o.strokeMaterialProperty.color,s=o.fillMaterialProperty,a=o.strokeWidthProperty,c=t.properties;if(l(c)){let b=c["stroke-width"];l(b)&&(a=new li(b));let f,y=c.stroke;l(y)&&(f=U.fromCssColorString(y));let _=c["stroke-opacity"];l(_)&&_!==1&&(l(f)||(f=r.getValue().clone()),f.alpha=_),l(f)&&(r=new li(f));let S,A=c.fill,Z=s.color.getValue();l(A)&&(S=U.fromCssColorString(A),S.alpha=Z.alpha),_=c["fill-opacity"],l(_)&&_!==Z.alpha&&(l(S)||(S=Z.clone()),S.alpha=_),l(S)&&(s=new jt(S))}let d=new Zh;d.outline=new li(!0),d.outlineColor=r,d.outlineWidth=a,d.material=s,d.arcType=ln.RHUMB;let u=[];for(let b=1,f=i.length;b<f;b++)u.push(new Tc(rq(i[b],n)));let m=i[0];d.hierarchy=new li(new Tc(rq(m,n),u)),m[0].length>2?d.perPositionHeight=new li(!0):o.clampToGround||(d.height=0);let p=UO(t,e._entityCollection,o.describe);p.polygon=d}function gSe(e,t,n,i,o){bSe(e,t,i,n.coordinates,o)}function ySe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)bSe(e,t,i,r[s],o)}function xSe(e,t,n,i,o){for(let r in n.objects)if(n.objects.hasOwnProperty(r)){let s=J6(n,n.objects[r]),a=sSe[s.type];a(e,s,s,i,o)}}function fx(e){this._name=e,this._changed=new Se,this._error=new Se,this._isLoading=!1,this._loading=new Se,this._entityCollection=new Ia(this),this._promises=[],this._pinBuilder=new ng,this._entityCluster=new _u,this._credit=void 0,this._resourceCredits=[]}fx.load=function(e,t){return new fx().load(e,t)};Object.defineProperties(fx,{markerSize:{get:function(){return q6},set:function(e){q6=e}},markerSymbol:{get:function(){return $6},set:function(e){$6=e}},markerColor:{get:function(){return eq},set:function(e){eq=e}},stroke:{get:function(){return tq},set:function(e){tq=e}},strokeWidth:{get:function(){return nq},set:function(e){nq=e}},fill:{get:function(){return iq},set:function(e){iq=e}},clampToGround:{get:function(){return oq},set:function(e){oq=e}},crsNames:{get:function(){return Q6}},crsLinkHrefs:{get:function(){return iSe}},crsLinkTypes:{get:function(){return oSe}}});Object.defineProperties(fx.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{value:void 0,writable:!1},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});fx.prototype.load=function(e,t){return TSe(this,e,t,!0)};fx.prototype.process=function(e,t){return TSe(this,e,t,!1)};function TSe(e,t,n,i){bs.setLoading(e,!0),n=n??B.EMPTY_OBJECT;let o=n.credit;typeof o=="string"&&(o=new Rt(o)),e._credit=o;let r=t,s=n.sourceUri;if(typeof t=="string"||t instanceof We){t=We.createIfNeeded(t),r=t.fetchJson(),s=s??t.getUrlComponent();let a=e._resourceCredits,c=t.credits;if(l(c)){let d=c.length;for(let u=0;u<d;u++)a.push(c[u])}}return n={describe:n.describe??Wmt,markerSize:n.markerSize??q6,markerSymbol:n.markerSymbol??$6,markerColor:n.markerColor??eq,strokeWidthProperty:new li(n.strokeWidth??nq),strokeMaterialProperty:new jt(n.stroke??tq),fillMaterialProperty:new jt(n.fill??iq),clampToGround:n.clampToGround??oq},Promise.resolve(r).then(function(a){return Fmt(e,a,n,s,i)}).catch(function(a){throw bs.setLoading(e,!1),e._error.raiseEvent(e,a),a})}fx.prototype.update=function(e){return!0};function Fmt(e,t,n,i,o){let r;l(i)&&(r=Ub(i)),l(r)&&e._name!==r&&(e._name=r,e._changed.raiseEvent(e));let s=sSe[t.type];if(!l(s))throw new ae(`Unsupported GeoJSON object type: ${t.type}`);let a=t.crs,c=a!==null?kO:null;if(l(a)){if(!l(a.properties))throw new ae("crs.properties is undefined.");let d=a.properties;if(a.type==="name"){if(c=Q6[d.name],!l(c))throw new ae(`Unknown crs name: ${d.name}`)}else if(a.type==="link"){let u=iSe[d.href];if(l(u)||(u=oSe[d.type]),!l(u))throw new ae(`Unable to resolve crs link: ${JSON.stringify(d)}`);c=u(d)}else if(a.type==="EPSG"){if(c=Q6[`EPSG:${d.code}`],!l(c))throw new ae(`Unknown crs EPSG code: ${d.code}`)}else throw new ae(`Unknown crs type: ${a.type}`)}return Promise.resolve(c).then(function(d){return o&&e._entityCollection.removeAll(),d!==null&&s(e,t,t,d,n),Promise.all(e._promises).then(function(){return e._promises.length=0,bs.setLoading(e,!1),e})})}var px=fx;var aki=x(T(),1);var _Mi=x(T());var rMi=x(T());var yNi=x(T(),1),sq=function(e,t){return sq=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(n[o]=i[o])},sq(e,t)};function Xp(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");sq(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Ks=function(){return Ks=Object.assign||function(t){for(var n,i=1,o=arguments.length;i<o;i++){n=arguments[i];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},Ks.apply(this,arguments)};function _Se(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var i=n.call(e),o,r=[],s;try{for(;(t===void 0||t-- >0)&&!(o=i.next()).done;)r.push(o.value)}catch(a){s={error:a}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(s)throw s.error}}return r}function SSe(e,t,n){if(n||arguments.length===2)for(var i=0,o=t.length,r;i<o;i++)(r||!(i in t))&&(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var TNi=x(T()),ASe="4.1.5";var SNi=x(T()),ZSe=Object.prototype.hasOwnProperty;function Lu(e){return typeof e=="boolean"}function CSe(e,t,n){var i;return e.length>t&&(n==null?(n="…",i=3):i=n.length,e=e.substring(0,t-i)+n),e}function bx(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}function xf(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}var NNi=x(T());var CNi=x(T());var DO=/\s+/,OO=(function(){function e(t){t===void 0&&(t={}),this.tagName="",this.attrs={},this.innerHTML="",this.tagName=t.tagName||"",this.attrs=t.attrs||{},this.innerHTML=t.innerHtml||t.innerHTML||""}return e.prototype.setTagName=function(t){return this.tagName=t,this},e.prototype.getTagName=function(){return this.tagName},e.prototype.setAttr=function(t,n){var i=this.getAttrs();return i[t]=n,this},e.prototype.getAttr=function(t){return this.getAttrs()[t]},e.prototype.setAttrs=function(t){return Object.assign(this.getAttrs(),t),this},e.prototype.getAttrs=function(){return this.attrs},e.prototype.setClass=function(t){return this.setAttr("class",t)},e.prototype.addClass=function(t){for(var n=this.getClass(),i=n?n.split(DO):[],o=t.split(DO),r;r=o.shift();)i.indexOf(r)===-1&&i.push(r);return this.getAttrs().class=i.join(" "),this},e.prototype.removeClass=function(t){for(var n=this.getClass(),i=n?n.split(DO):[],o=t.split(DO),r;i.length&&(r=o.shift());){var s=i.indexOf(r);s!==-1&&i.splice(s,1)}return this.getAttrs().class=i.join(" "),this},e.prototype.getClass=function(){return this.getAttrs().class||""},e.prototype.hasClass=function(t){return(" "+this.getClass()+" ").indexOf(" "+t+" ")!==-1},e.prototype.setInnerHTML=function(t){return this.innerHTML=t,this},e.prototype.setInnerHtml=function(t){return this.setInnerHTML(t)},e.prototype.getInnerHTML=function(){return this.innerHTML||""},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var t=this.getTagName(),n=this.buildAttrsStr();return n=n?" "+n:"",["<",t,n,">",this.getInnerHtml(),"</",t,">"].join("")},e.prototype.buildAttrsStr=function(){var t=this.getAttrs(),n=[];for(var i in t)ZSe.call(t,i)&&n.push(i+'="'+t[i]+'"');return n.join(" ")},e})();var VNi=x(T());function VSe(e,t,n){var i,o;if(n==null?(n="…",o=3,i=8):(o=n.length,i=n.length),e.length<=t)return e;var r=t-o,s=Imt(e);if(s.query){var a=s.query.match(/^(.*?)(?=(\?|#))(.*?)$/i);a&&(s.query=s.query.substr(0,a[1].length),e=RSe(s))}if(e.length<=t||(s.host&&(s.host=s.host.replace(/^www\./,""),e=RSe(s)),e.length<=t))return e;var c="";if(s.host&&(c+=s.host),c.length>=r)return s.host.length===t?(s.host.substr(0,t-o)+n).substr(0,r+i):aq(c,r,n).substr(0,r+i);var d="";if(s.path&&(d+="/"+s.path),s.query&&(d+="?"+s.query),d)if((c+d).length>=r){if((c+d).length==t)return(c+d).substr(0,t);var u=r-c.length;return(c+aq(d,u,n)).substr(0,r+i)}else c+=d;if(s.fragment){var m="#"+s.fragment;if((c+m).length>=r){if((c+m).length==t)return(c+m).substr(0,t);var p=r-c.length;return(c+aq(m,p,n)).substr(0,r+i)}else c+=m}if(s.scheme&&s.host){var b=s.scheme+"://";if((c+b).length<r)return(b+c).substr(0,t)}if(c.length<=t)return c;var f="";return r>0&&(f=c.substr(-1*Math.floor(r/2))),(c.substr(0,Math.ceil(r/2))+n+f).substr(0,r+i)}function Imt(e){var t={},n=e,i=n.match(/^([a-z]+):\/\//i);return i&&(t.scheme=i[1],n=n.slice(i[0].length)),i=n.match(/^(.*?)(?=(\?|#|\/|$))/i),i&&(t.host=i[1],n=n.slice(i[0].length)),i=n.match(/^\/(.*?)(?=(\?|#|$))/i),i&&(t.path=i[1],n=n.slice(i[0].length)),i=n.match(/^\?(.*?)(?=(#|$))/i),i&&(t.query=i[1],n=n.slice(i[0].length)),i=n.match(/^#(.*?)$/i),i&&(t.fragment=i[1]),t}function RSe(e){var t="";return e.scheme&&e.host&&(t+=e.scheme+"://"),e.host&&(t+=e.host),e.path&&(t+="/"+e.path),e.query&&(t+="?"+e.query),e.fragment&&(t+="#"+e.fragment),t}function aq(e,t,n){var i=t/2,o=Math.ceil(i),r=-1*Math.floor(i),s="";return r<0&&(s=e.substr(r)),e.substr(0,o)+n+s}var ENi=x(T());function GSe(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="…",i=8,o=3):(i=n.length,o=n.length);var r=t-o,s="";return r>0&&(s=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+s).substr(0,r+i)}var vNi=x(T());function ESe(e,t,n){return CSe(e,t,n)}var LSe=(function(){function e(t){t===void 0&&(t={}),this.newWindow=!1,this.truncate={},this.className="",this.newWindow=t.newWindow||!1,this.truncate=t.truncate||{},this.className=t.className||""}return e.prototype.build=function(t){return new OO({tagName:"a",attrs:this.createAttrs(t),innerHtml:this.processAnchorText(t.getAnchorText())})},e.prototype.createAttrs=function(t){var n={href:t.getAnchorHref()},i=this.createCssClass(t);return i&&(n.class=i),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),this.truncate.length&&this.truncate.length<t.getAnchorText().length&&(n.title=t.getAnchorHref()),n},e.prototype.createCssClass=function(t){var n=this.className;if(n){for(var i=[n],o=t.getCssClassSuffixes(),r=0,s=o.length;r<s;r++)i.push(n+"-"+o[r]);return i.join(" ")}else return""},e.prototype.processAnchorText=function(t){return t=this.doTruncate(t),t},e.prototype.doTruncate=function(t){var n=this.truncate;if(!n.length)return t;var i=n.length,o=n.location;return o==="smart"?VSe(t,i):o==="middle"?GSe(t,i):ESe(t,i)},e})();var Dwi=x(T());var $Ni=x(T());var MNi=x(T()),Yp=(function(){function e(t){this._=null,this.matchedText="",this.offset=0,this.tagBuilder=t.tagBuilder,this.matchedText=t.matchedText,this.offset=t.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(t){this.offset=t},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.type]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e})();var KNi=x(T());var UNi=x(T());function WSe(e){return e>=0&&e<=31||e==127}function ig(e){return e>=65&&e<=90||e>=97&&e<=122}function Js(e){return e>=48&&e<=57}function BO(e){return e==34||e==39}function gx(e){return e<8232?e<160?e>=9&&e<=13||e==32:e<5760?e==160:e==5760||e>=8192&&e<=8202:e<8287?e>=8232&&e<=8233||e==8239:e<12288?e==8287:e==12288||e==65279}function Tf(e){return e<4800?e<2949?e<2451?e<1425?e<768?e<192?e<169?e<65?e>=48&&e<=57:e>=65&&e<=90||e>=97&&e<=122:e<181?e>=169&&e<=170||e==174:e==181||e==186:e<710?e<216?e>=192&&e<=214:e>=216&&e<=246||e>=248&&e<=705:e<748?e>=710&&e<=721||e>=736&&e<=740:e==748||e==750:e<910?e<895?e<886?e>=768&&e<=884:e>=886&&e<=887||e>=890&&e<=893:e<904?e==895||e==902:e>=904&&e<=906||e==908:e<1155?e<931?e>=910&&e<=929:e>=931&&e<=1013||e>=1015&&e<=1153:e<1369?e>=1155&&e<=1327||e>=1329&&e<=1366:e==1369||e>=1377&&e<=1415:e<1808?e<1552?e<1476?e<1471?e>=1425&&e<=1469:e==1471||e>=1473&&e<=1474:e<1488?e>=1476&&e<=1477||e==1479:e>=1488&&e<=1514||e>=1520&&e<=1522:e<1749?e<1568?e>=1552&&e<=1562:e>=1568&&e<=1641||e>=1646&&e<=1747:e<1770?e>=1749&&e<=1756||e>=1759&&e<=1768:e>=1770&&e<=1788||e==1791:e<2230?e<2042?e<1869?e>=1808&&e<=1866:e>=1869&&e<=1969||e>=1984&&e<=2037:e<2112?e==2042||e>=2048&&e<=2093:e>=2112&&e<=2139||e>=2208&&e<=2228:e<2406?e<2260?e>=2230&&e<=2237:e>=2260&&e<=2273||e>=2275&&e<=2403:e<2437?e>=2406&&e<=2415||e>=2417&&e<=2435:e>=2437&&e<=2444||e>=2447&&e<=2448:e<2693?e<2579?e<2519?e<2486?e<2474?e>=2451&&e<=2472:e>=2474&&e<=2480||e==2482:e<2503?e>=2486&&e<=2489||e>=2492&&e<=2500:e>=2503&&e<=2504||e>=2507&&e<=2510:e<2534?e<2524?e==2519:e>=2524&&e<=2525||e>=2527&&e<=2531:e<2565?e>=2534&&e<=2545||e>=2561&&e<=2563:e>=2565&&e<=2570||e>=2575&&e<=2576:e<2631?e<2613?e<2602?e>=2579&&e<=2600:e>=2602&&e<=2608||e>=2610&&e<=2611:e<2620?e>=2613&&e<=2614||e>=2616&&e<=2617:e==2620||e>=2622&&e<=2626:e<2649?e<2635?e>=2631&&e<=2632:e>=2635&&e<=2637||e==2641:e<2662?e>=2649&&e<=2652||e==2654:e>=2662&&e<=2677||e>=2689&&e<=2691:e<2821?e<2759?e<2730?e<2703?e>=2693&&e<=2701:e>=2703&&e<=2705||e>=2707&&e<=2728:e<2741?e>=2730&&e<=2736||e>=2738&&e<=2739:e>=2741&&e<=2745||e>=2748&&e<=2757:e<2784?e<2763?e>=2759&&e<=2761:e>=2763&&e<=2765||e==2768:e<2809?e>=2784&&e<=2787||e>=2790&&e<=2799:e==2809||e>=2817&&e<=2819:e<2887?e<2858?e<2831?e>=2821&&e<=2828:e>=2831&&e<=2832||e>=2835&&e<=2856:e<2869?e>=2858&&e<=2864||e>=2866&&e<=2867:e>=2869&&e<=2873||e>=2876&&e<=2884:e<2911?e<2902?e>=2887&&e<=2888||e>=2891&&e<=2893:e>=2902&&e<=2903||e>=2908&&e<=2909:e<2929?e>=2911&&e<=2915||e>=2918&&e<=2927:e==2929||e>=2946&&e<=2947:e<3517?e<3205?e<3046?e<2984?e<2969?e<2958?e>=2949&&e<=2954:e>=2958&&e<=2960||e>=2962&&e<=2965:e<2974?e>=2969&&e<=2970||e==2972:e>=2974&&e<=2975||e>=2979&&e<=2980:e<3014?e<2990?e>=2984&&e<=2986:e>=2990&&e<=3001||e>=3006&&e<=3010:e<3024?e>=3014&&e<=3016||e>=3018&&e<=3021:e==3024||e==3031:e<3142?e<3086?e<3072?e>=3046&&e<=3055:e>=3072&&e<=3075||e>=3077&&e<=3084:e<3114?e>=3086&&e<=3088||e>=3090&&e<=3112:e>=3114&&e<=3129||e>=3133&&e<=3140:e<3160?e<3146?e>=3142&&e<=3144:e>=3146&&e<=3149||e>=3157&&e<=3158:e<3174?e>=3160&&e<=3162||e>=3168&&e<=3171:e>=3174&&e<=3183||e>=3200&&e<=3203:e<3333?e<3274?e<3242?e<3214?e>=3205&&e<=3212:e>=3214&&e<=3216||e>=3218&&e<=3240:e<3260?e>=3242&&e<=3251||e>=3253&&e<=3257:e>=3260&&e<=3268||e>=3270&&e<=3272:e<3296?e<3285?e>=3274&&e<=3277:e>=3285&&e<=3286||e==3294:e<3313?e>=3296&&e<=3299||e>=3302&&e<=3311:e>=3313&&e<=3314||e>=3329&&e<=3331:e<3423?e<3389?e<3342?e>=3333&&e<=3340:e>=3342&&e<=3344||e>=3346&&e<=3386:e<3402?e>=3389&&e<=3396||e>=3398&&e<=3400:e>=3402&&e<=3406||e>=3412&&e<=3415:e<3458?e<3430?e>=3423&&e<=3427:e>=3430&&e<=3439||e>=3450&&e<=3455:e<3482?e>=3458&&e<=3459||e>=3461&&e<=3478:e>=3482&&e<=3505||e>=3507&&e<=3515:e<3804?e<3722?e<3570?e<3535?e<3520?e==3517:e>=3520&&e<=3526||e==3530:e<3544?e>=3535&&e<=3540||e==3542:e>=3544&&e<=3551||e>=3558&&e<=3567:e<3664?e<3585?e>=3570&&e<=3571:e>=3585&&e<=3642||e>=3648&&e<=3662:e<3716?e>=3664&&e<=3673||e>=3713&&e<=3714:e==3716||e>=3719&&e<=3720:e<3754?e<3737?e<3725?e==3722:e==3725||e>=3732&&e<=3735:e<3749?e>=3737&&e<=3743||e>=3745&&e<=3747:e==3749||e==3751:e<3776?e<3757?e>=3754&&e<=3755:e>=3757&&e<=3769||e>=3771&&e<=3773:e<3784?e>=3776&&e<=3780||e==3782:e>=3784&&e<=3789||e>=3792&&e<=3801:e<4176?e<3902?e<3872?e<3840?e>=3804&&e<=3807:e==3840||e>=3864&&e<=3865:e<3895?e>=3872&&e<=3881||e==3893:e==3895||e==3897:e<3974?e<3913?e>=3902&&e<=3911:e>=3913&&e<=3948||e>=3953&&e<=3972:e<4038?e>=3974&&e<=3991||e>=3993&&e<=4028:e==4038||e>=4096&&e<=4169:e<4688?e<4301?e<4256?e>=4176&&e<=4253:e>=4256&&e<=4293||e==4295:e<4348?e==4301||e>=4304&&e<=4346:e>=4348&&e<=4680||e>=4682&&e<=4685:e<4746?e<4698?e>=4688&&e<=4694||e==4696:e>=4698&&e<=4701||e>=4704&&e<=4744:e<4786?e>=4746&&e<=4749||e>=4752&&e<=4784:e>=4786&&e<=4789||e>=4792&&e<=4798:e<11035?e<7416?e<6176?e<5873?e<4992?e<4824?e<4802?e==4800:e>=4802&&e<=4805||e>=4808&&e<=4822:e<4888?e>=4824&&e<=4880||e>=4882&&e<=4885:e>=4888&&e<=4954||e>=4957&&e<=4959:e<5121?e<5024?e>=4992&&e<=5007:e>=5024&&e<=5109||e>=5112&&e<=5117:e<5761?e>=5121&&e<=5740||e>=5743&&e<=5759:e>=5761&&e<=5786||e>=5792&&e<=5866:e<6002?e<5920?e<5888?e>=5873&&e<=5880:e>=5888&&e<=5900||e>=5902&&e<=5908:e<5984?e>=5920&&e<=5940||e>=5952&&e<=5971:e>=5984&&e<=5996||e>=5998&&e<=6e3:e<6108?e<6016?e>=6002&&e<=6003:e>=6016&&e<=6099||e==6103:e<6155?e>=6108&&e<=6109||e>=6112&&e<=6121:e>=6155&&e<=6157||e>=6160&&e<=6169:e<6783?e<6512?e<6400?e<6272?e>=6176&&e<=6263:e>=6272&&e<=6314||e>=6320&&e<=6389:e<6448?e>=6400&&e<=6430||e>=6432&&e<=6443:e>=6448&&e<=6459||e>=6470&&e<=6509:e<6608?e<6528?e>=6512&&e<=6516:e>=6528&&e<=6571||e>=6576&&e<=6601:e<6688?e>=6608&&e<=6617||e>=6656&&e<=6683:e>=6688&&e<=6750||e>=6752&&e<=6780:e<7040?e<6832?e<6800?e>=6783&&e<=6793:e>=6800&&e<=6809||e==6823:e<6992?e>=6832&&e<=6846||e>=6912&&e<=6987:e>=6992&&e<=7001||e>=7019&&e<=7027:e<7245?e<7168?e>=7040&&e<=7155:e>=7168&&e<=7223||e>=7232&&e<=7241:e<7376?e>=7245&&e<=7293||e>=7296&&e<=7304:e>=7376&&e<=7378||e>=7380&&e<=7414:e<8450?e<8130?e<8025?e<7960?e<7424?e>=7416&&e<=7417:e>=7424&&e<=7669||e>=7675&&e<=7957:e<8008?e>=7960&&e<=7965||e>=7968&&e<=8005:e>=8008&&e<=8013||e>=8016&&e<=8023:e<8031?e<8027?e==8025:e==8027||e==8029:e<8118?e>=8031&&e<=8061||e>=8064&&e<=8116:e>=8118&&e<=8124||e==8126:e<8205?e<8150?e<8134?e>=8130&&e<=8132:e>=8134&&e<=8140||e>=8144&&e<=8147:e<8178?e>=8150&&e<=8155||e>=8160&&e<=8172:e>=8178&&e<=8180||e>=8182&&e<=8188:e<8305?e<8252?e==8205:e==8252||e==8265:e<8336?e==8305||e==8319:e>=8336&&e<=8348||e>=8400&&e<=8432:e<8579?e<8486?e<8469?e<8455?e==8450:e==8455||e>=8458&&e<=8467:e<8482?e==8469||e>=8473&&e<=8477:e==8482||e==8484:e<8495?e<8488?e==8486:e==8488||e>=8490&&e<=8493:e<8517?e>=8495&&e<=8505||e>=8508&&e<=8511:e>=8517&&e<=8521||e==8526:e<9410?e<9e3?e<8592?e>=8579&&e<=8580:e>=8592&&e<=8703||e>=8986&&e<=8987:e<9193?e==9e3||e==9167:e>=9193&&e<=9203||e>=9208&&e<=9210:e<9723?e<9654?e==9410||e>=9642&&e<=9643:e==9654||e==9664:e<10548?e>=9723&&e<=9726||e>=9728&&e<=10175:e>=10548&&e<=10549||e>=11013&&e<=11015:e<43259?e<12445?e<11688?e<11520?e<11264?e<11088?e>=11035&&e<=11036:e==11088||e==11093:e<11360?e>=11264&&e<=11310||e>=11312&&e<=11358:e>=11360&&e<=11492||e>=11499&&e<=11507:e<11568?e<11559?e>=11520&&e<=11557:e==11559||e==11565:e<11647?e>=11568&&e<=11623||e==11631:e>=11647&&e<=11670||e>=11680&&e<=11686:e<11744?e<11712?e<11696?e>=11688&&e<=11694:e>=11696&&e<=11702||e>=11704&&e<=11710:e<11728?e>=11712&&e<=11718||e>=11720&&e<=11726:e>=11728&&e<=11734||e>=11736&&e<=11742:e<12330?e<11823?e>=11744&&e<=11775:e==11823||e>=12293&&e<=12294:e<12353?e>=12330&&e<=12341||e>=12347&&e<=12349:e>=12353&&e<=12438||e>=12441&&e<=12442:e<42512?e<12951?e<12549?e<12449?e>=12445&&e<=12447:e>=12449&&e<=12538||e>=12540&&e<=12543:e<12704?e>=12549&&e<=12589||e>=12593&&e<=12686:e>=12704&&e<=12730||e>=12784&&e<=12799:e<19968?e<12953?e==12951:e==12953||e>=13312&&e<=19893:e<42192?e>=19968&&e<=40917||e>=40960&&e<=42124:e>=42192&&e<=42237||e>=42240&&e<=42508:e<42891?e<42623?e<42560?e>=42512&&e<=42539:e>=42560&&e<=42610||e>=42612&&e<=42621:e<42775?e>=42623&&e<=42725||e>=42736&&e<=42737:e>=42775&&e<=42783||e>=42786&&e<=42888:e<43072?e<42928?e>=42891&&e<=42926:e>=42928&&e<=42935||e>=42999&&e<=43047:e<43216?e>=43072&&e<=43123||e>=43136&&e<=43205:e>=43216&&e<=43225||e>=43232&&e<=43255:e<55243?e<43744?e<43488?e<43312?e<43261?e==43259:e==43261||e>=43264&&e<=43309:e<43392?e>=43312&&e<=43347||e>=43360&&e<=43388:e>=43392&&e<=43456||e>=43471&&e<=43481:e<43600?e<43520?e>=43488&&e<=43518:e>=43520&&e<=43574||e>=43584&&e<=43597:e<43642?e>=43600&&e<=43609||e>=43616&&e<=43638:e>=43642&&e<=43714||e>=43739&&e<=43741:e<43824?e<43785?e<43762?e>=43744&&e<=43759:e>=43762&&e<=43766||e>=43777&&e<=43782:e<43808?e>=43785&&e<=43790||e>=43793&&e<=43798:e>=43808&&e<=43814||e>=43816&&e<=43822:e<44012?e<43868?e>=43824&&e<=43866:e>=43868&&e<=43877||e>=43888&&e<=44010:e<44032?e>=44012&&e<=44013||e>=44016&&e<=44025:e>=44032&&e<=55203||e>=55216&&e<=55238:e<64848?e<64298?e<64112?e<55296?e>=55243&&e<=55291:e>=55296&&e<=57343||e>=63744&&e<=64109:e<64275?e>=64112&&e<=64217||e>=64256&&e<=64262:e>=64275&&e<=64279||e>=64285&&e<=64296:e<64320?e<64312?e>=64298&&e<=64310:e>=64312&&e<=64316||e==64318:e<64326?e>=64320&&e<=64321||e>=64323&&e<=64324:e>=64326&&e<=64433||e>=64467&&e<=64829:e<65296?e<65024?e<64914?e>=64848&&e<=64911:e>=64914&&e<=64967||e>=65008&&e<=65019:e<65136?e>=65024&&e<=65039||e>=65056&&e<=65071:e>=65136&&e<=65140||e>=65142&&e<=65276:e<65474?e<65345?e>=65296&&e<=65305||e>=65313&&e<=65338:e>=65345&&e<=65370||e>=65382&&e<=65470:e<65490?e>=65474&&e<=65479||e>=65482&&e<=65487:e>=65490&&e<=65495||e>=65498&&e<=65500}function vSe(e){return e<47?e<42?e==33||e>=35&&e<=39:e>=42&&e<=43||e==45:e<63?e==47||e==61:e<94?e==63:e>=94&&e<=96||e>=123&&e<=126}function FSe(e){return e<91?e<47?e>=35&&e<=43||e==45:e<61?e==47:e==61||e==64:e<95?e==91||e==93:e<123?e==95:e>=123&&e<=126||e==10003}function zO(e){return e<58?e<44?e==33:e==44||e==46:e<63?e>=58&&e<=59:e==63||e==94}function ISe(e){return e<91?e==40:e==91||e==123}function cq(e){return e<93?e==41:e==93||e==125}var ONi=x(T()),PSe=/^(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|travelersinsurance|vermÃļgensberatung|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbah1a3hjkrd|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermÃļgensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--mgbcpq6gpa1a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbc0a9azcg|xn--nqv7fs00ema|americanfamily|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq480n2rg|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|wolterskluwer|xn--cckwcxetd|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--4dbrk0ce|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|āŽšāŽŋāŽ™ā¯āŽ•āŽĒā¯āŽĒā¯‚āŽ°ā¯|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nextdirect|properties|protection|prudential|realestate|republican|restaurant|schaeffler|tatamotors|technology|university|vlaanderen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--q7ce6a|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|institute|insurance|kuokgroup|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|pramerica|richardli|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--qxa6a|xn--tckwe|xn--vhquv|yodobashi|Ų…ŲˆØąŲŠØĒØ§Ų†ŲŠØ§|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|builders|business|capetown|catering|catholic|cipriani|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|mckinsey|memorial|merckmsd|mortgage|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|softbank|software|stcgroup|supplies|training|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|Ø§Ų„ØŗØšŲˆØ¯ŲŠØŠ|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|banamex|bauhaus|bestbuy|booking|brother|capital|caravan|careers|channel|charity|chintai|citadel|clubmed|college|cologne|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hotmail|hyundai|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lanxess|lasalle|latrobe|leclerc|limited|lincoln|markets|monster|netbank|netflix|network|neustar|okinawa|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|singles|staples|storage|support|surgery|systems|temasek|theater|theatre|tickets|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|yamaxun|youtube|zuerich|ĐēĐ°Ņ‚ĐžĐģиĐē|Ø§Ų„Ø¨Ø­ØąŲŠŲ†|Ø§Ų„ØŦØ˛Ø§ØĻØą|Ø§Ų„ØšŲ„ŲŠØ§Ų†|ŲžØ§ÚŠØŗØĒØ§Ų†|ŲƒØ§ØĢŲˆŲ„ŲŠŲƒ|āŽ‡āŽ¨ā¯āŽ¤āŽŋāŽ¯āŽž|abbott|abbvie|africa|agency|airbus|airtel|alipay|alsace|alstom|amazon|anquan|aramco|author|bayern|beauty|berlin|bharti|bostik|boston|broker|camera|career|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kindle|kosher|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|monash|mormon|moscow|museum|nagoya|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|pictet|quebec|racing|realty|reisen|repair|report|review|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|walter|webcam|xihuan|yachts|yandex|zappos|ĐŧĐžŅĐēва|ĐžĐŊĐģаКĐŊ|Ø§Ø¨ŲˆØ¸Ø¨ŲŠ|Ø§ØąØ§Ų…ŲƒŲˆ|Ø§Ų„Ø§ØąØ¯Ų†|Ø§Ų„Ų…ØēØąØ¨|Ø§Ų…Ø§ØąØ§ØĒ|ŲŲ„ØŗØˇŲŠŲ†|Ų…Ų„ŲŠØŗŲŠØ§|ā¤­ā¤žā¤°ā¤¤ā¤ŽāĨ|āŽ‡āŽ˛āŽ™ā¯āŽ•ā¯ˆ|ãƒ•ã‚Ąãƒƒã‚ˇãƒ§ãƒŗ|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dance|deals|delta|drive|dubai|earth|edeka|email|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|irish|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|loans|locus|lotte|lotto|mango|media|miami|money|movie|music|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|ישראל|Ø§ÛŒØąØ§Ų†|Ø¨Ø§Ø˛Ø§Øą|Ø¨ÚžØ§ØąØĒ|ØŗŲˆØ¯Ø§Ų†|ØŗŲˆØąŲŠØŠ|Ų‡Ų…ØąØ§Ų‡|ā¤­ā¤žā¤°āĨ‹ā¤¤|⤏⤂⤗⤠⤍|āĻŦāĻžāĻ‚āϞāĻž|ā°­ā°žā°°ā°¤āą|ā´­ā´žā´°ā´¤ā´‚|嘉里大酒åē—|aarp|able|aero|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|dvag|erni|fage|fail|fans|farm|fast|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kids|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|read|reit|rent|rest|rich|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scot|seat|seek|sexy|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|Đ´ĐĩŅ‚Đ¸|ŅĐ°ĐšŅ‚|Ø¨Ø§ØąØĒ|Ø¨ŲŠØĒ؃|Ú€Ø§ØąØĒ|ØĒŲˆŲ†Øŗ|Ø´Ø¨ŲƒØŠ|ØšØąØ§Ų‚|ØšŲ…Ø§Ų†|Ų…ŲˆŲ‚Øš|ā¤­ā¤žā¤°ā¤¤|āĻ­āĻžāϰāϤ|āĻ­āĻžā§°āϤ|ā¨­ā¨žā¨°ā¨¤|āĒ­āĒžāǰāǤ|āŦ­āŦžāŦ°āŦ¤|ā˛­ā˛žā˛°ā˛¤|āļŊāļ‚āļšāˇ|ã‚ĸãƒžã‚žãƒŗ|グãƒŧグãƒĢ|クナã‚Ļド|ãƒã‚¤ãƒŗãƒˆ|įģ„į쇿œē构|é›ģč¨Šį›ˆį§‘|éĻ™æ ŧ里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|ceo|cfa|cfd|com|cpa|crs|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gay|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|llp|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|scb|sew|sex|sfr|ski|sky|soy|spa|srl|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|ĐąĐĩĐģ|ĐēĐžĐŧ|Ō›Đ°Đˇ|ĐŧĐēĐ´|ĐŧĐžĐŊ|ĐžŅ€Đŗ|Ņ€ŅƒŅ|ŅŅ€Đą|҃ĐēŅ€|Õ°ÕĄÕĩ|קום|ØšØąØ¨|Ų‚ØˇØą|ŲƒŲˆŲ…|Ų…ØĩØą|⤕āĨ‰ā¤Ž|⤍āĨ‡ā¤Ÿ|ā¸„ā¸­ā¸Ą|āš„ā¸—ā¸ĸ|āēĨāē˛āē§|゚トã‚ĸ|ã‚ģãƒŧãƒĢ|ãŋんãĒ|中文įŊ‘|äēšéŠŦ逊|夊ä¸ģ教|æˆ‘įˆąäŊ |æ–°åŠ åĄ|æˇĄéŠŦ锡|éŖžåˆŠæĩĻ|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ÎĩÎģ|ÎĩĪ…|ĐąĐŗ|ĐĩŅŽ|Ҁ҄|გე|닷넷|닷ėģ´|ė‚ŧė„ą|한ęĩ­|ã‚ŗãƒ |ä¸–į•Œ|中äŋĄ|中å›Ŋ|中國|äŧä¸š|äŊ›åąą|äŋĄæ¯|åĨåēˇ|å…ĢåĻ|å…Ŧ司|å…Ŧį›Š|台暞|å°įŖ|商城|商åē—|商标|嘉里|在įēŋ|大æ‹ŋ|å¨ąäš|åŽļé›ģ|åšŋ东|垎博|慈善|手æœē|æ‹›č˜|æ”ŋåŠĄ|æ”ŋåēœ|新é—ģ|æ—ļ尚|æ›¸įą|æœē构|游戏|æžŗé–€|į‚šįœ‹|į§ģ动|įŊ‘址|įŊ‘åē—|įŊ‘įĢ™|įŊ‘įģœ|联通|č°ˇæ­Œ|č´­į‰Š|通販|集å›ĸ|éŖŸå“|餐厅|éĻ™æ¸¯)$/;var lq=/https?:\/\//i,XSe=new RegExp("^"+lq.source,"i"),Pmt=/^(javascript|vbscript):/i,Xmt=/^[A-Za-z][-.+A-Za-z0-9]*:(\/\/)?([^:/]*)/,Ymt=/^(?:\/\/)?([^/#?:]+)/,o1=ig;function dq(e){return ig(e)||Js(e)||e===43||e===45||e===46}var og=Tf;function HO(e){return e===95||og(e)}function uq(e){return Tf(e)||FSe(e)||zO(e)}function KO(e){return e===47||e===63||e===35}function mq(e){return PSe.test(e.toLowerCase())}function YSe(e){if(Pmt.test(e))return!1;var t=e.match(Xmt);if(!t)return!1;var n=!!t[1],i=t[2];return n?!0:!(i.indexOf(".")===-1||!/[A-Za-z]/.test(i))}function NSe(e){var t=e.match(Ymt);if(!t)return!1;var n=t[0],i=n.split(".");if(i.length<2)return!1;var o=i[i.length-1];return!!mq(o)}var Nmt=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,wmt=/[:/?#]/;function wSe(e){var t=e.split(wmt,1)[0];return Nmt.test(t)}var Mmt=/^(https?:\/\/)?(?:www\.)?/i,kmt=/^\/\//,MSe=(function(e){Xp(t,e);function t(n){var i=e.call(this,n)||this;return i.type="url",i.url="",i.urlMatchType="scheme",i.protocolRelativeMatch=!1,i.stripPrefix={scheme:!0,www:!0},i.stripTrailingSlash=!0,i.decodePercentEncoding=!0,i.protocolPrepended=!1,i.urlMatchType=n.urlMatchType,i.url=n.url,i.protocolRelativeMatch=n.protocolRelativeMatch,i.stripPrefix=n.stripPrefix,i.stripTrailingSlash=n.stripTrailingSlash,i.decodePercentEncoding=n.decodePercentEncoding,i}return t.prototype.getType=function(){return"url"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var n=this.url;return!this.protocolRelativeMatch&&this.urlMatchType!=="scheme"&&!this.protocolPrepended&&(n=this.url="http://"+n,this.protocolPrepended=!0),n},t.prototype.getAnchorHref=function(){var n=this.getUrl();return n.replace(/&/g,"&")},t.prototype.getAnchorText=function(){var n=this.getMatchedText();return this.protocolRelativeMatch&&(n=Omt(n)),this.stripPrefix.scheme&&(n=Umt(n)),this.stripPrefix.www&&(n=Dmt(n)),this.stripTrailingSlash&&(n=Bmt(n)),this.decodePercentEncoding&&(n=zmt(n)),n},t})(Yp);function Umt(e){return e.replace(XSe,"")}function Dmt(e){return e.includes("www.")?e.replace(Mmt,"$1"):e}function Omt(e){return e.replace(kmt,"")}function Bmt(e){return e.charAt(e.length-1)==="/"&&(e=e.slice(0,-1)),e}function zmt(e){var t=e.replace(/%(?:22|26|27|3C|3E)/gi,function(n){return n==="%22"?""":n==="%26"?"&":n==="%27"?"'":n==="%3C"||n==="%3c"?"<":">"});if(t.includes("%"))try{return decodeURIComponent(t)}catch{}return t}var iwi=x(T());var kSe=/^mailto:/i,hq=Tf;function JO(e){return hq(e)||vSe(e)}function USe(e){var t=e.split(".").pop();return mq(t)}var awi=x(T());var DSe=(function(e){Xp(t,e);function t(n){var i=e.call(this,n)||this;return i.type="email",i.email="",i.email=n.email,i}return t.prototype.getType=function(){return"email"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return"mailto:"+this.email},t.prototype.getAnchorText=function(){return this.email},t})(Yp);var dwi=x(T());function fq(e){return e===95||Tf(e)}function OSe(e){return e.length<=140}var BSe=["twitter","facebook","instagram","tiktok","youtube"];var pwi=x(T());var zSe=(function(e){Xp(t,e);function t(n){var i=e.call(this,n)||this;return i.type="hashtag",i.serviceName="twitter",i.hashtag="",i.serviceName=n.serviceName,i.hashtag=n.hashtag,i}return t.prototype.getType=function(){return"hashtag"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var n=this.serviceName,i=this.hashtag;switch(n){case"twitter":return"https://twitter.com/hashtag/"+i;case"facebook":return"https://www.facebook.com/hashtag/"+i;case"instagram":return"https://instagram.com/explore/tags/"+i;case"tiktok":return"https://www.tiktok.com/tag/"+i;case"youtube":return"https://youtube.com/hashtag/"+i;default:xf(n)}},t.prototype.getAnchorText=function(){return"#"+this.hashtag},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t})(Yp);var ywi=x(T());var Hmt={twitter:/^@\w{1,15}$/,instagram:/^@[_\w]{1,30}$/,soundcloud:/^@[-a-z0-9_]{3,25}$/,tiktok:/^@[.\w]{1,23}[\w]$/,youtube:/^@[-.¡\w]{3,30}$/};function pq(e){return e===45||e===46||e===95||ig(e)||Js(e)}function HSe(e,t){var n=Hmt[t];return n.test(e)}var KSe=["twitter","instagram","soundcloud","tiktok","youtube"];var Awi=x(T());var JSe=(function(e){Xp(t,e);function t(n){var i=e.call(this,n)||this;return i.type="mention",i.serviceName="twitter",i.mention="",i.mention=n.mention,i.serviceName=n.serviceName,i}return t.prototype.getType=function(){return"mention"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case"twitter":return"https://twitter.com/"+this.mention;case"instagram":return"https://instagram.com/"+this.mention;case"soundcloud":return"https://soundcloud.com/"+this.mention;case"tiktok":return"https://www.tiktok.com/@"+this.mention;case"youtube":return"https://youtube.com/@"+this.mention;default:xf(this.serviceName)}},t.prototype.getAnchorText=function(){return"@"+this.mention},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t})(Yp);var Cwi=x(T()),Kmt=/[-. ()]/,Jmt=/(?:(?:(?:(\+)?\d{1,3}[-. ]?)?\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-. ]?(?:\d[-. ]?){6,12}\d+))([,;]+[0-9]+#?)*/,jmt=/(0([1-9]-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/,Qmt=new RegExp("^".concat(Jmt.source,"|").concat(jmt.source,"$"));function bq(e){return e===45||e===46||e===32}function jO(e){return e===44||e===59}function jSe(e){var t=e.charAt(0)==="+"||Kmt.test(e);return t&&Qmt.test(e)}var Ewi=x(T());var QSe=(function(e){Xp(t,e);function t(n){var i=e.call(this,n)||this;return i.type="phone",i.number="",i.plusSign=!1,i.number=n.number,i.plusSign=n.plusSign,i}return t.prototype.getType=function(){return"phone"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return"tel:"+(this.plusSign?"+":"")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t})(Yp);var qmt=(function(){function e(t,n){this.charIdx=0,this.matches=[],this._stateMachines=[],this.schemeUrlMachinesCount=0,this.text=t,this.tagBuilder=n.tagBuilder,this.stripPrefix=n.stripPrefix,this.stripTrailingSlash=n.stripTrailingSlash,this.decodePercentEncoding=n.decodePercentEncoding,this.hashtagServiceName=n.hashtagServiceName,this.mentionServiceName=n.mentionServiceName}return Object.defineProperty(e.prototype,"stateMachines",{get:function(){return this._stateMachines},enumerable:!1,configurable:!0}),e.prototype.addMachine=function(t){this._stateMachines.push(t),$Se(t)&&this.schemeUrlMachinesCount++},e.prototype.removeMachine=function(t){this._stateMachines=this._stateMachines.filter(function(n){return n!==t}),$Se(t)&&this.schemeUrlMachinesCount--},e.prototype.hasSchemeUrlMachine=function(){return this.schemeUrlMachinesCount>0},e})();function eAe(e,t){for(var n=new qmt(e,t);n.charIdx<n.text.length;n.charIdx++){var i=e.charAt(n.charIdx),o=e.charCodeAt(n.charIdx);if(n.stateMachines.length===0)QO(n,i,o);else{for(var r=n.stateMachines.length-1;r>=0;r--){var s=n.stateMachines[r];switch(s.state){case 11:oht(n,s,o);break;case 12:rht(n,s,o);break;case 0:$mt(n,s,o);break;case 1:eht(n,s,o);break;case 2:tht(n,s,o);break;case 3:nht(n,s,o);break;case 4:iht(n,s,i,o);break;case 5:sht(n,s,o);break;case 6:aht(n,s,i,o);break;case 7:cht(n,s,i,o);break;case 13:lht(n,s,o);break;case 14:dht(n,s,o);break;case 8:uht(n,s,o);break;case 9:mht(n,s,o);break;case 10:hht(n,s,o);break;case 15:fht(n,s,i,o);break;case 16:pht(n,s,i,o);break;case 17:bht(n,s,i,o);break;case 18:ght(n,s,i,o);break;case 19:yht(n,s,i,o);break;case 20:xht(n,s,o);break;case 21:Tht(n,s,o);break;case 22:CS(n,s,o);break;case 23:_ht(n,s,o);break;case 24:Sht(n,s,o);break;case 25:Aht(n,s,o);break;case 26:Zht(n,s,o);break;case 27:Cht(n,s,o);break;case 28:Rht(n,s,o);break;case 29:Vht(n,s,o);break;case 30:Ght(n,s,o);break;case 31:Eht(n,s,o);break;case 32:Wht(n,s,i,o);break;case 33:vht(n,s,o);break;case 34:Fht(n,s,o);break;case 35:Iht(n,s,o);break;case 36:Pht(n,s,i,o);break;case 37:Lht(n,s,i,o);break;case 38:Xht(n,s,i,o);break;case 39:Yht(n,s,i,o);break;case 40:Nht(n,s,o);break;case 41:wht(n,s,o);break;default:xf(s.state)}}if(!n.hasSchemeUrlMachine()&&n.charIdx>0&&o1(o)){var a=n.text.charCodeAt(n.charIdx-1);o1(a)||n.addMachine(qO(n.charIdx,0))}}}for(var c=n.stateMachines.length-1;c>=0;c--)n.stateMachines.forEach(function(d){return ys(n,d)});return n.matches}function QO(e,t,n){var i=e.charIdx;if(n===35)e.addMachine(Oht(i,28));else if(n===64)e.addMachine(Bht(i,30));else if(n===47)e.addMachine(yq(i,11));else if(n===43)e.addMachine(gq(i,37));else if(n===40)e.addMachine(gq(i,32));else{if(Js(n)&&(e.addMachine(gq(i,38)),e.addMachine(Uht(i,13))),hq(n)){var o=t.toLowerCase()==="m"?15:22;e.addMachine(Dht(i,o))}o1(n)&&e.addMachine(qO(i,0)),Tf(n)&&e.addMachine(yq(i,5))}}function $mt(e,t,n){n===58?t.state=2:n===45?t.state=1:dq(n)||e.removeMachine(t)}function eht(e,t,n){var i=e.charIdx;n===45||(n===47?(e.removeMachine(t),e.addMachine(yq(i,11))):dq(n)?t.state=0:e.removeMachine(t))}function tht(e,t,n){var i=e.charIdx;n===47?t.state=3:n===46?e.removeMachine(t):og(n)?(t.state=5,o1(n)&&e.addMachine(qO(i,0))):e.removeMachine(t)}function nht(e,t,n){n===47?t.state=4:uq(n)?(t.state=10,t.acceptStateReached=!0):ys(e,t)}function iht(e,t,n,i){i===47?(t.state=10,t.acceptStateReached=!0):og(i)?(t.state=5,t.acceptStateReached=!0):e.removeMachine(t)}function oht(e,t,n){n===47?t.state=12:e.removeMachine(t)}function rht(e,t,n){og(n)?t.state=5:e.removeMachine(t)}function sht(e,t,n){n===46?t.state=7:n===45?t.state=6:n===58?t.state=8:KO(n)?t.state=10:HO(n)||ys(e,t)}function aht(e,t,n,i){i===45||(i===46?ys(e,t):og(i)?t.state=5:ys(e,t))}function cht(e,t,n,i){i===46?ys(e,t):og(i)?(t.state=5,t.acceptStateReached=!0):ys(e,t)}function lht(e,t,n){n===46?t.state=14:n===58?t.state=8:Js(n)||(KO(n)?t.state=10:Tf(n)?e.removeMachine(t):ys(e,t))}function dht(e,t,n){Js(n)?(t.octetsEncountered++,t.octetsEncountered===4&&(t.acceptStateReached=!0),t.state=13):ys(e,t)}function uht(e,t,n){Js(n)?t.state=9:ys(e,t)}function mht(e,t,n){Js(n)||(KO(n)?t.state=10:ys(e,t))}function hht(e,t,n){uq(n)||ys(e,t)}function fht(e,t,n,i){n.toLowerCase()==="a"?t.state=16:CS(e,t,i)}function pht(e,t,n,i){n.toLowerCase()==="i"?t.state=17:CS(e,t,i)}function bht(e,t,n,i){n.toLowerCase()==="l"?t.state=18:CS(e,t,i)}function ght(e,t,n,i){n.toLowerCase()==="t"?t.state=19:CS(e,t,i)}function yht(e,t,n,i){n.toLowerCase()==="o"?t.state=20:CS(e,t,i)}function xht(e,t,n){n===58?t.state=21:CS(e,t,n)}function Tht(e,t,n){JO(n)?t.state=22:e.removeMachine(t)}function CS(e,t,n){n===46?t.state=23:n===64?t.state=24:JO(n)?t.state=22:e.removeMachine(t)}function _ht(e,t,n){n===46||n===64?e.removeMachine(t):JO(n)?t.state=22:e.removeMachine(t)}function Sht(e,t,n){og(n)?t.state=25:e.removeMachine(t)}function Aht(e,t,n){n===46?t.state=27:n===45?t.state=26:HO(n)||ys(e,t)}function Zht(e,t,n){n===45||n===46?ys(e,t):HO(n)?t.state=25:ys(e,t)}function Cht(e,t,n){n===46||n===45?ys(e,t):og(n)?(t.state=25,t.acceptStateReached=!0):ys(e,t)}function Rht(e,t,n){fq(n)?(t.state=29,t.acceptStateReached=!0):e.removeMachine(t)}function Vht(e,t,n){fq(n)||ys(e,t)}function Ght(e,t,n){pq(n)?(t.state=31,t.acceptStateReached=!0):e.removeMachine(t)}function Eht(e,t,n){pq(n)||(Tf(n)?e.removeMachine(t):ys(e,t))}function Lht(e,t,n,i){Js(i)?t.state=38:(e.removeMachine(t),QO(e,n,i))}function Wht(e,t,n,i){Js(i)?t.state=33:e.removeMachine(t),QO(e,n,i)}function vht(e,t,n){Js(n)?t.state=34:e.removeMachine(t)}function Fht(e,t,n){Js(n)?t.state=35:e.removeMachine(t)}function Iht(e,t,n){n===41?t.state=36:e.removeMachine(t)}function Pht(e,t,n,i){Js(i)?t.state=38:bq(i)?t.state=39:e.removeMachine(t)}function Xht(e,t,n,i){var o=e.charIdx;t.acceptStateReached=!0,jO(i)?t.state=40:i===35?t.state=41:Js(i)||(i===40?t.state=32:bq(i)?t.state=39:(ys(e,t),o1(i)&&e.addMachine(qO(o,0))))}function Yht(e,t,n,i){Js(i)?t.state=38:i===40?t.state=32:(ys(e,t),QO(e,n,i))}function Nht(e,t,n){jO(n)||(n===35?t.state=41:Js(n)?t.state=38:ys(e,t))}function wht(e,t,n){jO(n)?t.state=40:Js(n)?e.removeMachine(t):ys(e,t)}function ys(e,t){var n=e.matches,i=e.text,o=e.charIdx,r=e.tagBuilder,s=e.stripPrefix,a=e.stripTrailingSlash,c=e.decodePercentEncoding,d=e.hashtagServiceName,u=e.mentionServiceName;if(e.removeMachine(t),!!t.acceptStateReached){var m=t.startIdx,p=i.slice(t.startIdx,o);switch(p=kht(p),t.type){case 0:{var b=i.charCodeAt(t.startIdx-1);if(b===64)return;switch(t.matchType){case 0:{var f=lq.exec(p);if(f&&(m=m+f.index,p=p.slice(f.index)),!YSe(p))return;break}case 1:{if(!NSe(p))return;break}case 2:{if(!wSe(p))return;break}default:xf(t)}n.push(new MSe({tagBuilder:r,matchedText:p,offset:m,urlMatchType:Mht(t.matchType),url:p,protocolRelativeMatch:p.slice(0,2)==="//",stripPrefix:s,stripTrailingSlash:a,decodePercentEncoding:c}));break}case 1:{USe(p)&&n.push(new DSe({tagBuilder:r,matchedText:p,offset:m,email:p.replace(kSe,"")}));break}case 2:{OSe(p)&&n.push(new zSe({tagBuilder:r,matchedText:p,offset:m,serviceName:d,hashtag:p.slice(1)}));break}case 3:{HSe(p,u)&&n.push(new JSe({tagBuilder:r,matchedText:p,offset:m,serviceName:u,mention:p.slice(1)}));break}case 4:{if(p=p.replace(/ +$/g,""),jSe(p)){var y=p.replace(/[^0-9,;#]/g,"");n.push(new QSe({tagBuilder:r,matchedText:p,offset:m,number:y,plusSign:p.charAt(0)==="+"}))}break}default:xf(t)}}}function Mht(e){switch(e){case 0:return"scheme";case 1:return"tld";case 2:return"ipV4";default:xf(e)}}var qSe={")":"(","}":"{","]":"["};function kht(e){for(var t={"(":0,"{":0,"[":0},n=0;n<e.length;n++){var i=e.charAt(n),o=e.charCodeAt(n);ISe(o)?t[i]++:cq(o)&&t[qSe[i]]--}for(var r=e.length-1;r>=0;){var i=e.charAt(r),o=e.charCodeAt(r);if(cq(o)){var s=qSe[i];if(t[s]<0)t[s]++,r--;else break}else if(zO(o))r--;else break}return e.slice(0,r+1)}function qO(e,t){return{type:0,startIdx:e,state:t,acceptStateReached:!1,matchType:0}}function yq(e,t){return{type:0,startIdx:e,state:t,acceptStateReached:!1,matchType:1}}function Uht(e,t){return{type:0,startIdx:e,state:t,acceptStateReached:!1,matchType:2,octetsEncountered:1}}function Dht(e,t){return{type:1,startIdx:e,state:t,acceptStateReached:!1}}function Oht(e,t){return{type:2,startIdx:e,state:t,acceptStateReached:!1}}function Bht(e,t){return{type:3,startIdx:e,state:t,acceptStateReached:!1}}function gq(e,t){return{type:4,startIdx:e,state:t,acceptStateReached:!1}}function $Se(e){return e.type===0&&e.matchType===0}var Kwi=x(T());var Np=(function(){function e(t){t===void 0&&(t={}),this.idx=t.idx!==void 0?t.idx:-1,this.type=t.type||"tag",this.name=t.name||"",this.isOpening=!!t.isOpening,this.isClosing=!!t.isClosing}return e})(),Tq=new Np,zht=(function(){function e(t,n){this.charIdx=0,this.state=0,this.currentDataIdx=0,this.currentTag=Tq,this.html=t,this.callbacks=n}return e})();function tAe(e,t){for(var n=new zht(e,t),i=e.length;n.charIdx<i;){var o=e.charAt(n.charIdx),r=e.charCodeAt(n.charIdx);switch(n.state){case 0:Hht(n,o);break;case 1:Kht(n,o,r);break;case 2:jht(n,o,r);break;case 3:Jht(n,o,r);break;case 4:Qht(n,o,r);break;case 5:qht(n,o,r);break;case 6:$ht(n,o,r);break;case 7:eft(n,o,r);break;case 8:tft(n,o);break;case 9:nft(n,o);break;case 10:ift(n,o,r);break;case 11:oft(n,o,r);break;case 12:rft(n,o);break;case 13:sft(n);break;case 14:aft(n,o);break;case 15:cft(n,o);break;case 16:lft(n,o);break;case 17:dft(n,o);break;case 18:uft(n,o);break;case 19:mft(n,o);break;case 20:hft(n,o);break;default:xf(n.state)}n.charIdx++}n.currentDataIdx<n.charIdx&&fft(n)}function Hht(e,t){t==="<"&&wp(e)}function Kht(e,t,n){t==="!"?e.state=13:t==="/"?(e.state=2,e.currentTag=new Np(Ks(Ks({},e.currentTag),{isClosing:!0}))):t==="<"?wp(e):ig(n)?(e.state=3,e.currentTag=new Np(Ks(Ks({},e.currentTag),{isOpening:!0}))):(e.state=0,e.currentTag=Tq)}function Jht(e,t,n){gx(n)?(e.currentTag=new Np(Ks(Ks({},e.currentTag),{name:xq(e)})),e.state=4):t==="<"?wp(e):t==="/"?(e.currentTag=new Np(Ks(Ks({},e.currentTag),{name:xq(e)})),e.state=12):t===">"?(e.currentTag=new Np(Ks(Ks({},e.currentTag),{name:xq(e)})),Mp(e)):!ig(n)&&!Js(n)&&t!==":"&&Om(e)}function jht(e,t,n){t===">"?Om(e):ig(n)?e.state=3:Om(e)}function Qht(e,t,n){gx(n)||(t==="/"?e.state=12:t===">"?Mp(e):t==="<"?wp(e):t==="="||BO(n)||WSe(n)?Om(e):e.state=5)}function qht(e,t,n){gx(n)?e.state=6:t==="/"?e.state=12:t==="="?e.state=7:t===">"?Mp(e):t==="<"?wp(e):BO(n)&&Om(e)}function $ht(e,t,n){gx(n)||(t==="/"?e.state=12:t==="="?e.state=7:t===">"?Mp(e):t==="<"?wp(e):BO(n)?Om(e):e.state=5)}function eft(e,t,n){gx(n)||(t==='"'?e.state=8:t==="'"?e.state=9:/[>=`]/.test(t)?Om(e):t==="<"?wp(e):e.state=10)}function tft(e,t){t==='"'&&(e.state=11)}function nft(e,t){t==="'"&&(e.state=11)}function ift(e,t,n){gx(n)?e.state=4:t===">"?Mp(e):t==="<"&&wp(e)}function oft(e,t,n){gx(n)?e.state=4:t==="/"?e.state=12:t===">"?Mp(e):t==="<"?wp(e):(e.state=4,pft(e))}function rft(e,t){t===">"?(e.currentTag=new Np(Ks(Ks({},e.currentTag),{isClosing:!0})),Mp(e)):Om(e)}function sft(e){var t=e.html,n=e.charIdx;t.slice(n,n+2)==="--"?(e.charIdx++,e.currentTag=new Np(Ks(Ks({},e.currentTag),{type:"comment"})),e.state=14):t.slice(n,n+7).toUpperCase()==="DOCTYPE"?(e.charIdx+=6,e.currentTag=new Np(Ks(Ks({},e.currentTag),{type:"doctype"})),e.state=20):Om(e)}function aft(e,t){t==="-"?e.state=15:t===">"?Om(e):e.state=16}function cft(e,t){t==="-"?e.state=18:t===">"?Om(e):e.state=16}function lft(e,t){t==="-"&&(e.state=17)}function dft(e,t){t==="-"?e.state=18:e.state=16}function uft(e,t){t===">"?Mp(e):t==="!"?e.state=19:t==="-"||(e.state=16)}function mft(e,t){t==="-"?e.state=17:t===">"?Mp(e):e.state=16}function hft(e,t){t===">"?Mp(e):t==="<"&&wp(e)}function Om(e){e.state=0,e.currentTag=Tq}function wp(e){e.state=1,e.currentTag=new Np({idx:e.charIdx})}function Mp(e){var t=e.html.slice(e.currentDataIdx,e.currentTag.idx);t&&e.callbacks.onText(t,e.currentDataIdx);var n=e.currentTag;n.type==="comment"?e.callbacks.onComment(n.idx):n.type==="doctype"?e.callbacks.onDoctype(n.idx):(n.isOpening&&e.callbacks.onOpenTag(n.name,n.idx),n.isClosing&&e.callbacks.onCloseTag(n.name,n.idx)),Om(e),e.currentDataIdx=e.charIdx+1}function fft(e){var t=e.html.slice(e.currentDataIdx,e.charIdx);e.callbacks.onText(t,e.currentDataIdx),e.currentDataIdx=e.charIdx+1}function xq(e){var t=e.currentTag.idx+(e.currentTag.isClosing?2:1);return e.html.slice(t,e.charIdx).toLowerCase()}function pft(e){e.charIdx--}var bft=(function(){function e(t){t===void 0&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:"end"},this.className="",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.tagBuilder=null,this.urls=gft(t.urls),this.email=Lu(t.email)?t.email:this.email,this.phone=Lu(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=Lu(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=yft(t.stripPrefix),this.stripTrailingSlash=Lu(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=Lu(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&KSe.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&BSe.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=xft(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,n){var i=new e(n);return i.link(t)},e.parse=function(t,n){var i=new e(n);return i.parse(t)},e.prototype.parse=function(t){var n=this,i=["a","style","script"],o=0,r=[];return tAe(t,{onOpenTag:function(s){i.indexOf(s)>=0&&o++},onText:function(s,a){if(o===0){var c=/( | |<|<|>|>|"|"|')/gi,d=s.split(c),u=a;d.forEach(function(m,p){if(p%2===0){var b=n.parseText(m,u);r.push.apply(r,SSe([],_Se(b),!1))}u+=m.length})}},onCloseTag:function(s){i.indexOf(s)>=0&&(o=Math.max(o-1,0))},onComment:function(){},onDoctype:function(){}}),r=this.compactMatches(r),r=this.removeUnwantedMatches(r),r},e.prototype.compactMatches=function(t){t.sort(Tft);for(var n=0;n<t.length-1;){var i=t[n],o=i.getOffset(),r=i.getMatchedText().length;if(n+1<t.length&&t[n+1].getOffset()===o){var s=t[n+1].getMatchedText().length>r?n:n+1;t.splice(s,1);continue}n++}return t},e.prototype.removeUnwantedMatches=function(t){return this.hashtag||bx(t,function(n){return n.getType()==="hashtag"}),this.email||bx(t,function(n){return n.getType()==="email"}),this.phone||bx(t,function(n){return n.getType()==="phone"}),this.mention||bx(t,function(n){return n.getType()==="mention"}),this.urls.schemeMatches||bx(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="scheme"}),this.urls.tldMatches||bx(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="tld"}),this.urls.ipV4Matches||bx(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="ipV4"}),t},e.prototype.parseText=function(t,n){n=n||0;for(var i=eAe(t,{tagBuilder:this.getTagBuilder(),stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding,hashtagServiceName:this.hashtag,mentionServiceName:this.mention||"twitter"}),o=0,r=i.length;o<r;o++)i[o].setOffset(n+i[o].getOffset());return i},e.prototype.link=function(t){if(!t)return"";this.sanitizeHtml&&(t=t.replace(/</g,"<").replace(/>/g,">"));for(var n=this.parse(t),i=new Array(n.length*2+1),o=0,r=0,s=n.length;r<s;r++){var a=n[r];i.push(t.substring(o,a.getOffset())),i.push(this.createMatchReturnVal(a)),o=a.getOffset()+a.getMatchedText().length}return i.push(t.substring(o)),i.join("")},e.prototype.createMatchReturnVal=function(t){var n;if(this.replaceFn&&(n=this.replaceFn.call(this.context,t)),typeof n=="string")return n;if(n===!1)return t.getMatchedText();if(n instanceof OO)return n.toAnchorString();var i=t.buildTag();return i.toAnchorString()},e.prototype.getTagBuilder=function(){var t=this.tagBuilder;return t||(t=this.tagBuilder=new LSe({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t},e.version=ASe,e})(),nAe=bft;function gft(e){return e==null&&(e=!0),Lu(e)?{schemeMatches:e,tldMatches:e,ipV4Matches:e}:{schemeMatches:Lu(e.schemeMatches)?e.schemeMatches:!0,tldMatches:Lu(e.tldMatches)?e.tldMatches:!0,ipV4Matches:Lu(e.ipV4Matches)?e.ipV4Matches:!0}}function yft(e){return e==null&&(e=!0),Lu(e)?{scheme:e,www:e}:{scheme:Lu(e.scheme)?e.scheme:!0,www:Lu(e.www)?e.www:!0}}function xft(e){return typeof e=="number"?{length:e,location:"end"}:Ks({length:Number.POSITIVE_INFINITY,location:"end"},e)}function Tft(e,t){return e.getOffset()-t.getOffset()}var cMi=x(T());var sMi=x(T());var gMi=x(T());var $O=nAe;var uAe;typeof DOMParser<"u"&&(uAe=new DOMParser);var _ft=new $O({stripPrefix:!1,email:!1,replaceFn:function(e,t){return t.urlMatchType==="scheme"||t.urlMatchType==="www"}}),eB=32,iAe=2414016,oAe=1,rAe=16093e3,sAe=.1,Sft=[null,void 0,"http://www.topografix.com/GPX/1/1"],zo={gpx:Sft};function Aft(e){return new Promise((t,n)=>{let i=new FileReader;i.addEventListener("load",function(){t(i.result)}),i.addEventListener("error",function(){n(i.error)}),i.readAsText(e)})}function _q(e,t){let n=LY(e,"id");return n=l(n)?n:zn(),t.getOrCreateEntity(n)}function Sq(e){let t=aAe(e,"lon"),n=aAe(e,"lat"),i=GY(e,"ele",zo.gpx);return h.fromDegrees(t,n,i)}function aAe(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function LY(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function yx(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function Aq(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagName(t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function GY(e,t,n){let i=yx(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function Pd(e,t,n){let i=yx(e,t,n);if(l(i))return i.textContent.trim()}function mAe(e){let t=new Pc;return t.width=eB,t.height=eB,t.scaleByDistance=new Bt(iAe,oAe,rAe,sAe),t.pixelOffsetScaleByDistance=new Bt(iAe,oAe,rAe,sAe),t.verticalOrigin=new li(kn.BOTTOM),t.image=e,t}function Zft(){let e=new Ah;return e.translucencyByDistance=new Bt(3e6,1,5e6,0),e.pixelOffset=new k(17,0),e.horizontalOrigin=Fi.LEFT,e.font="16px sans-serif",e.style=cr.FILL_AND_OUTLINE,e}function hAe(e){let t=new Dc;return t.width=4,t.material=new ix,t.material.color=l(e)?e:U.RED,t.material.outlineWidth=2,t.material.outlineColor=U.BLACK,t}var cAe={time:{text:"Time",tag:"time"},comment:{text:"Comment",tag:"cmt"},description:{text:"Description",tag:"desc"},source:{text:"Source",tag:"src"},number:{text:"GPS track/route number",tag:"number"},type:{text:"Type",tag:"type"}},EY;typeof document<"u"&&(EY=document.createElement("div"));function Zq(e,t){let n,i="",o=Object.keys(cAe),r=o.length;for(n=0;n<r;n++){let u=o[n],m=cAe[u];m.value=Pd(e,m.tag,zo.gpx)??"",l(m.value)&&m.value!==""&&(i=`${i}<p>${m.text}: ${m.value}</p>`)}if(!l(i)||i==="")return;i=_ft.link(i),EY.innerHTML=i;let s=EY.querySelectorAll("a");for(n=0;n<s.length;n++)s[n].setAttribute("target","_blank");let a=U.WHITE,c=U.BLACK,d='<div class="cesium-infoBox-description-lighter" style="';return d+="overflow:auto;",d+="word-wrap:break-word;",d+=`background-color:${a.toCssColorString()};`,d+=`color:${c.toCssColorString()};`,d+='">',d+=`${EY.innerHTML}</div>`,EY.innerHTML="",d}function fAe(e,t,n,i){let o=Sq(t),r=_q(t,n);r.position=o;let s=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",U.RED,eB);r.billboard=mAe(s);let a=Pd(t,"name",zo.gpx);r.name=a,r.label=Zft(),r.label.text=a,r.description=Zq(t,r),i.clampToGround&&(r.billboard.heightReference=st.CLAMP_TO_GROUND,r.label.heightReference=st.CLAMP_TO_GROUND)}function Cft(e,t,n,i){let o=_q(t,n);o.description=Zq(t,o);let r=Aq(t,"rtept",zo.gpx),s=new Array(r.length);for(let a=0;a<r.length;a++)fAe(e,r[a],n,i),s[a]=Sq(r[a]);o.polyline=hAe(i.routeColor),i.clampToGround&&(o.polyline.clampToGround=!0),o.polyline.positions=s}function Rft(e,t,n,i){let o=_q(t,n);o.description=Zq(t,o);let r=Aq(t,"trkseg",zo.gpx),s=[],a=[],c,d=!0,u=new ic;for(let m=0;m<r.length;m++)c=Vft(r[m]),s=s.concat(c.positions),c.times.length>0?(a=a.concat(c.times),u.addSamples(a,s),d=d&&!0):d=!1;if(d){let m=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",U.RED,eB);o.billboard=mAe(m),o.position=u,i.clampToGround&&(o.billboard.heightReference=st.CLAMP_TO_GROUND),o.availability=new ps,o.availability.addInterval(new Tn({start:a[0],stop:a[a.length-1]}))}o.polyline=hAe(i.trackColor),o.polyline.positions=s,i.clampToGround&&(o.polyline.clampToGround=!0)}function Vft(e){let t={positions:[],times:[]},n=Aq(e,"trkpt",zo.gpx),i;for(let o=0;o<n.length;o++){let r=Sq(n[o]);t.positions.push(r),i=Pd(n[o],"time",zo.gpx),l(i)&&t.times.push(Q.fromIso8601(i))}return t}function Gft(e){let t=yx(e,"metadata",zo.gpx);if(l(t)){let n={name:Pd(t,"name",zo.gpx),desc:Pd(t,"desc",zo.gpx),author:Eft(t),copyright:Wft(t),link:pAe(t),time:Pd(t,"time",zo.gpx),keywords:Pd(t,"keywords",zo.gpx),bounds:vft(t)};if(l(n.name)||l(n.desc)||l(n.author)||l(n.copyright)||l(n.link)||l(n.time)||l(n.keywords)||l(n.bounds))return n}}function Eft(e){let t=yx(e,"author",zo.gpx);if(l(t)){let n={name:Pd(t,"name",zo.gpx),email:Lft(t),link:pAe(t)};if(l(n.name)||l(n.email)||l(n.link))return n}}function Lft(e){let t=yx(e,"email",zo.gpx);if(l(t)){let n=Pd(t,"id",zo.gpx),i=Pd(t,"domain",zo.gpx);return`${n}@${i}`}}function pAe(e){let t=yx(e,"link",zo.gpx);if(l(t)){let n={href:LY(t,"href"),text:Pd(t,"text",zo.gpx),mimeType:Pd(t,"type",zo.gpx)};if(l(n.href)||l(n.text)||l(n.mimeType))return n}}function Wft(e){let t=yx(e,"copyright",zo.gpx);if(l(t)){let n={author:LY(t,"author"),year:Pd(t,"year",zo.gpx),license:Pd(t,"license",zo.gpx)};if(l(n.author)||l(n.year)||l(n.license))return n}}function vft(e){let t=yx(e,"bounds",zo.gpx);if(l(t)){let n={minLat:GY(t,"minlat",zo.gpx),maxLat:GY(t,"maxlat",zo.gpx),minLon:GY(t,"minlon",zo.gpx),maxLon:GY(t,"maxlon",zo.gpx)};if(l(n.minLat)||l(n.maxLat)||l(n.minLon)||l(n.maxLon))return n}}var lAe={wpt:fAe,rte:Cft,trk:Rft};function Fft(e,t,n,i){let o=Object.keys(lAe),r=o.length;for(let s=0;s<r;s++){let a=o[s],c=lAe[a],d=t.childNodes,u=d.length;for(let m=0;m<u;m++){let p=d[m];p.localName===a&&zo.gpx.indexOf(p.namespaceURI)!==-1&&c(e,p,n,i)}}}function dAe(e,t,n){let i=e._entityCollection;i.removeAll();let o=t.documentElement,r=LY(o,"version"),s=LY(o,"creator"),a,c=Gft(o);l(c)&&(a=c.name),o.localName==="gpx"?Fft(e,o,i,n):console.log(`GPX - Unsupported node: ${o.localName}`);let d,u=i.computeAvailability(),m=u.start,p=u.stop,b=Q.equals(m,qe.MINIMUM_VALUE),f=Q.equals(p,qe.MAXIMUM_VALUE);if(!b||!f){let _;b&&(_=new Date,_.setHours(0,0,0,0),m=Q.fromDate(_)),f&&(_=new Date,_.setHours(24,0,0,0),p=Q.fromDate(_)),d=new df,d.startTime=m,d.stopTime=p,d.currentTime=Q.clone(m),d.clockRange=gs.LOOP_STOP,d.clockStep=Io.SYSTEM_CLOCK_MULTIPLIER,d.multiplier=Math.round(Math.min(Math.max(Q.secondsDifference(p,m)/60,1),31556900))}let y=!1;return e._name!==a&&(e._name=a,y=!0),e._creator!==s&&(e._creator=s,y=!0),Ift(e._metadata,c)&&(e._metadata=c,y=!0),e._version!==r&&(e._version=r,y=!0),d!==e._clock&&(y=!0,e._clock=d),y&&e._changed.raiseEvent(e),bs.setLoading(e,!1),e}function Ift(e,t){return!l(e)&&!l(t)?!1:l(e)&&l(t)?e.name!==t.name||e.dec!==t.desc||e.src!==t.src||e.author!==t.author||e.copyright!==t.copyright||e.link!==t.link||e.time!==t.time||e.bounds!==t.bounds:!0}function Pft(e,t,n,i){i=i??B.EMPTY_OBJECT;let o=n;if(typeof n=="string"||n instanceof We){n=We.createIfNeeded(n),o=n.fetchBlob();let r=e._resourceCredits,s=n.credits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)r.push(s[c])}}return Promise.resolve(o).then(function(r){return r instanceof Blob?Aft(r).then(function(s){let a,c;try{a=uAe.parseFromString(s,"application/xml")}catch(d){c=d.toString()}if(l(c)||a.body||a.documentElement.tagName==="parsererror"){let d=l(c)?c:a.documentElement.firstChild.nodeValue;throw d||(d=a.body.innerText),new ae(d)}return dAe(e,a,i)}):dAe(e,r,i)}).catch(function(r){return e._error.raiseEvent(e,r),console.log(r),Promise.reject(r)})}function r1(){this._changed=new Se,this._error=new Se,this._loading=new Se,this._clock=void 0,this._entityCollection=new Ia(this),this._entityCluster=new _u,this._name=void 0,this._version=void 0,this._creator=void 0,this._metadata=void 0,this._isLoading=!1,this._pinBuilder=new ng}r1.load=function(e,t){return new r1().load(e,t)};Object.defineProperties(r1.prototype,{name:{get:function(){return this._name}},version:{get:function(){return this._version}},creator:{get:function(){return this._creator}},metadata:{get:function(){return this._metadata}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});r1.prototype.update=function(e){return!0};r1.prototype.load=function(e,t){if(!l(e))throw new Te("data is required.");t=t??B.EMPTY_OBJECT,bs.setLoading(this,!0);let n=this._name,i=this;return Pft(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=Q.equals(s,qe.MINIMUM_VALUE),d=Q.equals(a,qe.MAXIMUM_VALUE);if(!c||!d){let m;c&&(m=new Date,m.setHours(0,0,0,0),s=Q.fromDate(m)),d&&(m=new Date,m.setHours(24,0,0,0),a=Q.fromDate(m)),o=new df,o.startTime=s,o.stopTime=a,o.currentTime=Q.clone(s),o.clockRange=gs.LOOP_STOP,o.clockStep=Io.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(Q.secondsDifference(a,s)/60,1),31556900))}let u=!1;return o!==i._clock&&(i._clock=o,u=!0),n!==i._name&&(u=!0),u&&i._changed.raiseEvent(i),bs.setLoading(i,!1),i}).catch(function(o){return bs.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};var WY=r1;var lki=x(T(),1);function Xft(e,t){this.position=e,this.headingPitchRoll=t}var vY=Xft;var ADi=x(T(),1);var gN=x(qd(),1);var vUi=x(T(),1);var aUi=x(T(),1);var fki=x(T(),1);var uki=x(T(),1);var Cq=new Date(2107,11,31),Rq=new Date(1980,0,1),zt=void 0,RS=1/0,Wu="undefined",vu="function",bAe="object";var Yft=64,gAe=2;try{typeof navigator!=Wu&&navigator.hardwareConcurrency&&(gAe=navigator.hardwareConcurrency)}catch{}var Nft={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:64*1024,maxWorkers:gAe,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof CompressionStream!=Wu&&CompressionStream,DecompressionStream:typeof DecompressionStream!=Wu&&DecompressionStream},yAe=Object.assign({},Nft);function FY(){return yAe}function tB(e){return Math.max(e.chunkSize,Yft)}function kp(e){let{baseURI:t,chunkSize:n,maxWorkers:i,terminateWorkerTimeout:o,useCompressionStream:r,useWebWorkers:s,CompressionStream:a,DecompressionStream:c,CompressionStreamZlib:d,DecompressionStreamZlib:u,workerURI:m,wasmURI:p}=e;Bm("baseURI",t),Bm("wasmURI",p),Bm("workerURI",m),Bm("chunkSize",n),Bm("maxWorkers",i),Bm("terminateWorkerTimeout",o),Bm("useCompressionStream",r),Bm("useWebWorkers",s),Bm("CompressionStream",a),Bm("DecompressionStream",c),Bm("CompressionStreamZlib",d),Bm("DecompressionStreamZlib",u)}function Bm(e,t){t!==zt&&(yAe[e]=t)}var I9i=x(T(),1);var W9i=x(T(),1);var a9i=x(T(),1);var qki=x(T(),1);var Kki=x(T(),1);var xki=x(T(),1);var bki=x(T(),1),xAe=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;xAe[e]=t}var rg=class{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let i=0,o=t.length|0;i<o;i++)n=n>>>8^xAe[(n^t[i])&255];this.crc=n}get(){return~this.crc}};var IY=class extends TransformStream{constructor(){let t,n=new rg;super({transform(i,o){n.append(i),o.enqueue(i)},flush(){let i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,n.get()),t.value=i}}),t=this}};var Nki=x(T(),1);var Ski=x(T(),1);function s1(e){if(typeof TextEncoder==Wu){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}else return new TextEncoder().encode(e)}var Zki=x(T(),1),Ql={concat(e,t){if(e.length===0||t.length===0)return e.concat(t);let n=e[e.length-1],i=Ql.getPartial(n);return i===32?e.concat(t):Ql._shiftRight(t,i,n|0,e.slice(0,e.length-1))},bitLength(e){let t=e.length;if(t===0)return 0;let n=e[t-1];return(t-1)*32+Ql.getPartial(n)},clamp(e,t){if(e.length*32<t)return e;e=e.slice(0,Math.ceil(t/32));let n=e.length;return t=t&31,n>0&&t&&(e[n-1]=Ql.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(t===0)return i.concat(e);for(let s=0;s<e.length;s++)i.push(n|e[s]>>>t),n=e[s]<<32-t;let o=e.length?e[e.length-1]:0,r=Ql.getPartial(o);return i.push(Ql.partial(t+r&31,t+r>32?n:i.pop(),1)),i}},PY={bytes:{fromBits(e){let n=Ql.bitLength(e)/8,i=new Uint8Array(n),o;for(let r=0;r<n;r++)(r&3)===0&&(o=e[r/4]),i[r]=o>>>24,o<<=8;return i},toBits(e){let t=[],n,i=0;for(n=0;n<e.length;n++)i=i<<8|e[n],(n&3)===3&&(t.push(i),i=0);return n&3&&t.push(Ql.partial(8*(n&3),i)),t}}},TAe={};TAe.sha1=class{constructor(e){let t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){let e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){let t=this;typeof e=="string"&&(e=PY.utf8String.toBits(e));let n=t._buffer=Ql.concat(t._buffer,e),i=t._length,o=t._length=i+Ql.bitLength(e);if(o>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let r=new Uint32Array(n),s=0;for(let a=t.blockSize+i-(t.blockSize+i&t.blockSize-1);a<=o;a+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return n.splice(0,16*s),t}finalize(){let e=this,t=e._buffer,n=e._h;t=Ql.concat(t,[Ql.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,i){if(e<=19)return t&n|~t&i;if(e<=39)return t^n^i;if(e<=59)return t&n|t&i|n&i;if(e<=79)return t^n^i}_S(e,t){return t<<e|t>>>32-e}_block(e){let t=this,n=t._h,i=Array(80);for(let d=0;d<16;d++)i[d]=e[d];let o=n[0],r=n[1],s=n[2],a=n[3],c=n[4];for(let d=0;d<=79;d++){d>=16&&(i[d]=t._S(1,i[d-3]^i[d-8]^i[d-14]^i[d-16]));let u=t._S(5,o)+t._f(d,r,s,a)+c+i[d]+t._key[Math.floor(d/20)]|0;c=a,a=s,s=t._S(30,r),r=o,o=u}n[0]=n[0]+o|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+c|0}};var Vq={};Vq.aes=class{constructor(e){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let n=t._tables[0][4],i=t._tables[1],o=e.length,r,s,a,c=1;if(o!==4&&o!==6&&o!==8)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let d=s[r-1];(r%o===0||o===8&&r%o===4)&&(d=n[d>>>24]<<24^n[d>>16&255]<<16^n[d>>8&255]<<8^n[d&255],r%o===0&&(d=d<<8^d>>>24^c<<24,c=c<<1^(c>>7)*283)),s[r]=s[r-o]^d}for(let d=0;r;d++,r--){let u=s[d&3?r:r-4];r<=4||d<4?a[d]=u:a[d]=i[0][n[u>>>24]]^i[1][n[u>>16&255]]^i[2][n[u>>8&255]]^i[3][n[u&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){let e=this._tables[0],t=this._tables[1],n=e[4],i=t[4],o=[],r=[],s,a,c,d;for(let u=0;u<256;u++)r[(o[u]=u<<1^(u>>7)*283)^u]=u;for(let u=s=0;!n[u];u^=a||1,s=r[s]||1){let m=s^s<<1^s<<2^s<<3^s<<4;m=m>>8^m&255^99,n[u]=m,i[m]=u,d=o[c=o[a=o[u]]];let p=d*16843009^c*65537^a*257^u*16843008,b=o[m]*257^m*16843008;for(let f=0;f<4;f++)e[f][u]=b=b<<24^b>>>8,t[f][m]=p=p<<24^p>>>8}for(let u=0;u<5;u++)e[u]=e[u].slice(0),t[u]=t[u].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");let n=this._key[t],i=n.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],c=r[2],d=r[3],u=r[4],m=e[0]^n[0],p=e[t?3:1]^n[1],b=e[2]^n[2],f=e[t?1:3]^n[3],y=4,_,S,A;for(let Z=0;Z<i;Z++)_=s[m>>>24]^a[p>>16&255]^c[b>>8&255]^d[f&255]^n[y],S=s[p>>>24]^a[b>>16&255]^c[f>>8&255]^d[m&255]^n[y+1],A=s[b>>>24]^a[f>>16&255]^c[m>>8&255]^d[p&255]^n[y+2],f=s[f>>>24]^a[m>>16&255]^c[p>>8&255]^d[b&255]^n[y+3],y+=4,m=_,p=S,b=A;for(let Z=0;Z<4;Z++)o[t?3&-Z:Z]=u[m>>>24]<<24^u[p>>16&255]<<16^u[b>>8&255]<<8^u[f&255]^n[y++],_=m,m=p,p=b,b=f,f=_;return o}};var _Ae={getRandomValues(e){let t=new Uint32Array(e.buffer),n=i=>{let o=987654321,r=4294967295;return function(){return o=36969*(o&65535)+(o>>16)&r,i=18e3*(i&65535)+(i>>16)&r,(((o<<16)+i&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,o;i<e.length;i+=4){let r=n((o||Math.random())*4294967296);o=r()*987654071,t[i/4]=r()*4294967296|0}return e}},Gq={};Gq.ctrGladman=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if((e>>24&255)===255){let t=e>>16&255,n=e>>8&255,i=e&255;t===255?(t=0,n===255?(n=0,i===255?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];let o=Ql.bitLength(t);for(let r=0;r<i;r+=4){this.incCounter(n);let s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return Ql.clamp(t,o)}};var xx={importKey(e){return new xx.hmacSha1(PY.bytes.toBits(e))},pbkdf2(e,t,n,i){if(n=n||1e4,i<0||n<0)throw new Error("invalid params to pbkdf2");let o=(i>>5)+1<<2,r,s,a,c,d,u=new ArrayBuffer(o),m=new DataView(u),p=0,b=Ql;for(t=PY.bytes.toBits(t),d=1;p<(o||1);d++){for(r=s=e.encrypt(b.concat(t,[d])),a=1;a<n;a++)for(s=e.encrypt(s),c=0;c<s.length;c++)r[c]^=s[c];for(a=0;p<(o||1)&&a<r.length;a++)m.setInt32(p,r[a]),p+=4}return u.slice(0,i/8)}};xx.hmacSha1=class{constructor(e){let t=this,n=t._hash=TAe.sha1,i=[[],[]];t._baseHash=[new n,new n];let o=t._baseHash[0].blockSize/32;e.length>o&&(e=new n().update(e).finalize());for(let r=0;r<o;r++)i[0][r]=e[r]^909522486,i[1][r]=e[r]^1549556828;t._baseHash[0].update(i[0]),t._baseHash[1].update(i[1]),t._resultHash=new n(t._baseHash[0])}reset(){let e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){let t=this;t._updated=!0,t._resultHash.update(e)}digest(){let e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}};var vki=x(T(),1);var wft=typeof crypto!=Wu&&typeof crypto.getRandomValues==vu,sg="Invalid password",Tx="Invalid signature",ag="zipjs-abort-check-password";function nB(e){return wft?crypto.getRandomValues(e):_Ae.getRandomValues(e)}var a1=16,Mft="raw",ZAe={name:"PBKDF2"},kft={name:"HMAC"},Uft="SHA-1",Dft=Object.assign({hash:kft},ZAe),Eq=Object.assign({iterations:1e3,hash:{name:Uft}},ZAe),Oft=["deriveBits"],YY=[8,12,16],XY=[16,24,32],_x=10,Bft=[0,0,0,0],rB=typeof crypto!=Wu,MY=rB&&crypto.subtle,CAe=rB&&typeof MY!=Wu,Up=PY.bytes,zft=Vq.aes,Hft=Gq.ctrGladman,Kft=xx.hmacSha1,SAe=rB&&CAe&&typeof MY.importKey==vu,AAe=rB&&CAe&&typeof MY.deriveBits==vu,iB=class extends TransformStream{constructor({password:t,rawPassword:n,signed:i,encryptionStrength:o,checkPasswordOnly:r}){super({start(){Object.assign(this,{ready:new Promise(s=>this.resolveReady=s),password:GAe(t,n),signed:i,strength:o-1,pending:new Uint8Array})},async transform(s,a){let c=this,{password:d,strength:u,resolveReady:m,ready:p}=c;d?(await Jft(c,u,d,zm(s,0,YY[u]+2)),s=zm(s,YY[u]+2),r?a.error(new Error(ag)):m()):await p;let b=new Uint8Array(s.length-_x-(s.length-_x)%a1);a.enqueue(RAe(c,s,b,0,_x,!0))},async flush(s){let{signed:a,ctr:c,hmac:d,pending:u,ready:m}=this;if(d&&c){await m;let p=zm(u,0,u.length-_x),b=zm(u,u.length-_x),f=new Uint8Array;if(p.length){let y=wY(Up,p);d.update(y);let _=c.update(y);f=NY(Up,_)}if(a){let y=zm(NY(Up,d.digest()),0,_x);for(let _=0;_<_x;_++)if(y[_]!=b[_])throw new Error(Tx)}s.enqueue(f)}}})}},oB=class extends TransformStream{constructor({password:t,rawPassword:n,encryptionStrength:i}){let o;super({start(){Object.assign(this,{ready:new Promise(r=>this.resolveReady=r),password:GAe(t,n),strength:i-1,pending:new Uint8Array})},async transform(r,s){let a=this,{password:c,strength:d,resolveReady:u,ready:m}=a,p=new Uint8Array;c?(p=await jft(a,d,c),u()):await m;let b=new Uint8Array(p.length+r.length-r.length%a1);b.set(p,0),s.enqueue(RAe(a,r,b,p.length,0))},async flush(r){let{ctr:s,hmac:a,pending:c,ready:d}=this;if(a&&s){await d;let u=new Uint8Array;if(c.length){let m=s.update(wY(Up,c));a.update(m),u=NY(Up,m)}o.signature=NY(Up,a.digest()).slice(0,_x),r.enqueue(Lq(u,o.signature))}}}),o=this}};function RAe(e,t,n,i,o,r){let{ctr:s,hmac:a,pending:c}=e,d=t.length-o;c.length&&(t=Lq(c,t),n=$ft(n,d-d%a1));let u;for(u=0;u<=d-a1;u+=a1){let m=wY(Up,zm(t,u,u+a1));r&&a.update(m);let p=s.update(m);r||a.update(p),n.set(NY(Up,p),u+i)}return e.pending=zm(t,u),n}async function Jft(e,t,n,i){let o=await VAe(e,t,n,zm(i,0,YY[t])),r=zm(i,YY[t]);if(o[0]!=r[0]||o[1]!=r[1])throw new Error(sg)}async function jft(e,t,n){let i=nB(new Uint8Array(YY[t])),o=await VAe(e,t,n,i);return Lq(i,o)}async function VAe(e,t,n,i){e.password=null;let o=await Qft(Mft,n,Dft,!1,Oft),r=await qft(Object.assign({salt:i},Eq),o,8*(XY[t]*2+2)),s=new Uint8Array(r),a=wY(Up,zm(s,0,XY[t])),c=wY(Up,zm(s,XY[t],XY[t]*2)),d=zm(s,XY[t]*2);return Object.assign(e,{keys:{key:a,authentication:c,passwordVerification:d},ctr:new Hft(new zft(a),Array.from(Bft)),hmac:new Kft(c)}),d}async function Qft(e,t,n,i,o){if(SAe)try{return await MY.importKey(e,t,n,i,o)}catch{return SAe=!1,xx.importKey(t)}else return xx.importKey(t)}async function qft(e,t,n){if(AAe)try{return await MY.deriveBits(e,t,n)}catch{return AAe=!1,xx.pbkdf2(t,e.salt,Eq.iterations,n)}else return xx.pbkdf2(t,e.salt,Eq.iterations,n)}function GAe(e,t){return t===zt?s1(e):t}function Lq(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function $ft(e,t){if(t&&t>e.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function zm(e,t,n){return e.subarray(t,n)}function NY(e,t){return e.fromBits(t)}function wY(e,t){return e.toBits(t)}var Uki=x(T(),1);var kY=12,sB=class extends TransformStream{constructor({password:t,passwordVerification:n,checkPasswordOnly:i}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),vAe(this,t)},transform(o,r){let s=this;if(s.password){let a=EAe(s,o.subarray(0,kY));if(s.password=null,a.at(-1)!=s.passwordVerification)throw new Error(sg);o=o.subarray(kY)}i?r.error(new Error(ag)):r.enqueue(EAe(s,o))}})}},aB=class extends TransformStream{constructor({password:t,passwordVerification:n}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),vAe(this,t)},transform(i,o){let r=this,s,a;if(r.password){r.password=null;let c=nB(new Uint8Array(kY));c[kY-1]=r.passwordVerification,s=new Uint8Array(i.length+c.length),s.set(LAe(r,c),0),a=kY}else s=new Uint8Array(i.length),a=0;s.set(LAe(r,i),a),o.enqueue(s)}})}};function EAe(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=FAe(e)^t[i],Wq(e,n[i]);return n}function LAe(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=FAe(e)^t[i],Wq(e,t[i]);return n}function vAe(e,t){let n=[305419896,591751049,878082192];Object.assign(e,{keys:n,crcKey0:new rg(n[0]),crcKey2:new rg(n[2])});for(let i=0;i<t.length;i++)Wq(e,t.charCodeAt(i))}function Wq(e,t){let[n,i,o]=e.keys;e.crcKey0.append([t]),n=~e.crcKey0.get(),i=WAe(Math.imul(WAe(i+IAe(n)),134775813)+1),e.crcKey2.append([i>>>24]),o=~e.crcKey2.get(),e.keys=[n,i,o]}function FAe(e){let t=e.keys[2]|2;return IAe(Math.imul(t,t^1)>>>8)}function IAe(e){return e&255}function WAe(e){return e&4294967295}var c1="Invalid uncompressed size",ept="deflate-raw",tpt="deflate64-raw",cB=class extends TransformStream{constructor(t,{chunkSize:n,CompressionStreamZlib:i,CompressionStream:o}){super({});let{compressed:r,encrypted:s,useCompressionStream:a,zipCrypto:c,signed:d,level:u}=t,m=this,p,b,f=super.readable;(!s||c)&&d&&(p=new IY,f=Dp(f,p)),r&&(f=XAe(f,a,{level:u,chunkSize:n},o,i,o)),s&&(c?f=Dp(f,new aB(t)):(b=new oB(t),f=Dp(f,b))),PAe(m,f,()=>{let y;s&&!c&&(y=b.signature),(!s||c)&&d&&(y=new DataView(p.value.buffer).getUint32(0)),m.signature=y})}},lB=class extends TransformStream{constructor(t,{chunkSize:n,DecompressionStreamZlib:i,DecompressionStream:o}){super({});let{zipCrypto:r,encrypted:s,signed:a,signature:c,compressed:d,useCompressionStream:u,deflate64:m}=t,p,b,f=super.readable;s&&(r?f=Dp(f,new sB(t)):(b=new iB(t),f=Dp(f,b))),d&&(f=XAe(f,u,{chunkSize:n,deflate64:m},o,i,o)),(!s||r)&&a&&(p=new IY,f=Dp(f,p)),PAe(this,f,()=>{if((!s||r)&&a){let y=new DataView(p.value.buffer);if(c!=y.getUint32(0,!1))throw new Error(Tx)}})}};function PAe(e,t,n){t=Dp(t,new TransformStream({flush:n})),Object.defineProperty(e,"readable",{get(){return t}})}function XAe(e,t,n,i,o,r){let s=t&&i?i:o||r,a=n.deflate64?tpt:ept;try{e=Dp(e,new s(a,n))}catch(c){if(t)if(o)e=Dp(e,new o(a,n));else if(r)e=Dp(e,new r(a,n));else throw c;else throw c}return e}function Dp(e,t){return e.pipeThrough(t)}var YAe="message",NAe="start",wAe="pull",vq="data",MAe="ack",Fq="close",mB="deflate",hB="inflate";var dB=class extends TransformStream{constructor(t,n){super({});let i=this,{codecType:o}=t,r;o.startsWith(mB)?r=cB:o.startsWith(hB)&&(r=lB),i.outputSize=0;let s=0,a=new r(t,n),c=super.readable,d=new TransformStream({transform(m,p){m&&m.length&&(s+=m.length,p.enqueue(m))},flush(){Object.assign(i,{inputSize:s})}}),u=new TransformStream({transform(m,p){if(m&&m.length&&(p.enqueue(m),i.outputSize+=m.length,t.outputSize!==zt&&i.outputSize>t.outputSize))throw new Error(c1)},flush(){let{signature:m}=a;Object.assign(i,{signature:m,inputSize:s})}});Object.defineProperty(i,"readable",{get(){return c.pipeThrough(d).pipeThrough(a).pipeThrough(u)}})}},uB=class extends TransformStream{constructor(t){let n;super({transform:i,flush(o){n&&n.length&&o.enqueue(n)}});function i(o,r){if(n){let s=new Uint8Array(n.length+o.length);s.set(n),s.set(o,n.length),o=s,n=null}o.length>t?(r.enqueue(o.slice(0,t)),i(o.slice(t),r)):n=o}}};var n9i=x(T(),1);var kAe={type:"module"},fB,Iq,UAe,Xq=!0;try{Xq=typeof structuredClone==vu&&structuredClone(new DOMException("","AbortError")).code!==zt}catch{}var DAe=()=>{};function OAe({initModule:e}){DAe=e}var l1=class{constructor(t,{readable:n,writable:i},{options:o,config:r,streamOptions:s,useWebWorkers:a,transferStreams:c,workerURI:d},u){let{signal:m}=s;return Object.assign(t,{busy:!0,readable:n.pipeThrough(new uB(r.chunkSize)).pipeThrough(new Yq(s),{signal:m}),writable:i,options:Object.assign({},o),workerURI:d,transferStreams:c,terminate(){return new Promise(p=>{let{worker:b,busy:f}=t;b?(f?t.resolveTerminated=p:(b.terminate(),p()),t.interface=null):p()})},onTaskFinished(){let{resolveTerminated:p}=t;p&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),p()),t.busy=!1,u(t)}}),fB===zt&&(fB=typeof Worker!=Wu),(a&&fB?npt:BAe)(t,r)}},Yq=class extends TransformStream{constructor({onstart:t,onprogress:n,size:i,onend:o}){let r=0;super({async start(){t&&await Pq(t,i)},async transform(s,a){r+=s.length,n&&await Pq(n,r,i),a.enqueue(s)},async flush(){o&&await Pq(o,r)}})}};async function Pq(e,...t){try{await e(...t)}catch{}}function BAe(e,t){return{run:()=>ipt(e,t)}}function npt(e,t){let{baseURI:n,chunkSize:i}=t,{wasmURI:o}=t;if(!e.interface){typeof o==vu&&(o=o());let r;try{r=pB(e.workerURI,n,e)}catch{return fB=!1,BAe(e,t)}Object.assign(e,{worker:r,interface:{run:()=>opt(e,{chunkSize:i,wasmURI:o,baseURI:n})}})}return e.interface}async function ipt({options:e,readable:t,writable:n,onTaskFinished:i},o){let r;try{if(!e.useCompressionStream)try{await DAe(o)}catch{e.useCompressionStream=!0}r=new dB(e,o),await t.pipeThrough(r).pipeTo(n,{preventClose:!0,preventAbort:!0});let{signature:s,inputSize:a,outputSize:c}=r;return{signature:s,inputSize:a,outputSize:c}}catch(s){throw r&&(s.outputSize=r.outputSize),s}finally{i()}}async function opt(e,t){let n,i,o=new Promise((m,p)=>{n=m,i=p});Object.assign(e,{reader:null,writer:null,resolveResult:n,rejectResult:i,result:o});let{readable:r,options:s}=e,{writable:a,closed:c}=rpt(e.writable),d=bB({type:NAe,options:s,config:t,readable:r,writable:a},e);d||Object.assign(e,{reader:r.getReader(),writer:a.getWriter()});let u=await o;return d||await a.getWriter().close(),await c,u}function rpt(e){let{writable:t,readable:n}=new TransformStream,i=n.pipeTo(e,{preventClose:!0});return{writable:t,closed:i}}function pB(e,t,n,i,o=!0){let r,s,a;if(Iq===zt){let c=typeof e==vu;c?s=e(o):s=e;let d=s.startsWith("data:"),u=s.startsWith("blob:");if(d||u){i===zt&&(i=!1),i&&(a=kAe);try{r=new Worker(s,a)}catch(m){if(u)try{URL.revokeObjectURL(s)}catch{}if(c&&u)return pB(e,t,n,i,!1);if(i)throw m;return pB(e,t,n,!0,!1)}}else{i===zt&&(i=!0),i&&(a=kAe);try{s=new URL(s,t)}catch{}try{r=new Worker(s,a)}catch(m){if(i)throw m;return pB(e,t,n,!1,o)}}Iq=s,UAe=a}else r=new Worker(Iq,UAe);return r.addEventListener(YAe,c=>spt(c,n)),r}function bB(e,{worker:t,writer:n,onTaskFinished:i,transferStreams:o}){try{let{value:r,readable:s,writable:a}=e,c=[];if(r&&(e.value=r,c.push(e.value.buffer)),o&&Xq?(s&&c.push(s),a&&c.push(a)):e.readable=e.writable=null,c.length)try{return t.postMessage(e,c),!0}catch{Xq=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(r){throw n&&n.releaseLock(),i(),r}}async function spt({data:e},t){let{type:n,value:i,messageId:o,result:r,error:s}=e,{reader:a,writer:c,resolveResult:d,rejectResult:u,onTaskFinished:m}=t;try{if(s){let{message:b,stack:f,code:y,name:_,outputSize:S}=s,A=new Error(b);Object.assign(A,{stack:f,code:y,name:_,outputSize:S}),p(A)}else{if(n==wAe){let{value:b,done:f}=await a.read();bB({type:vq,value:b,done:f,messageId:o},t)}n==vq&&(await c.ready,await c.write(new Uint8Array(i)),bB({type:MAe,messageId:o},t)),n==Fq&&p(null,r)}}catch(b){bB({type:Fq,messageId:o},t),p(b)}function p(b,f){b?u(b):d(f),c&&c.releaseLock(),m()}}var VS=[],Nq=[];var zAe=0;async function gB(e,t){let{options:n,config:i}=t,{transferStreams:o,useWebWorkers:r,useCompressionStream:s,compressed:a,signed:c,encrypted:d}=n,{workerURI:u,maxWorkers:m}=i;t.transferStreams=o||o===zt;let p=!a&&!c&&!d&&!t.transferStreams;return t.useWebWorkers=!p&&(r||r===zt&&i.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:zt,n.useCompressionStream=s||s===zt&&i.useCompressionStream,(await b()).run();async function b(){let y=VS.find(_=>!_.busy);if(y)return HAe(y),new l1(y,e,t,f);if(VS.length<m){let _={indexWorker:zAe};return zAe++,VS.push(_),new l1(_,e,t,f)}else return new Promise(_=>Nq.push({resolve:_,stream:e,workerOptions:t}))}function f(y){if(Nq.length){let[{resolve:_,stream:S,workerOptions:A}]=Nq.splice(0,1);_(new l1(y,S,A,f))}else y.worker?(HAe(y),apt(y,t)):VS=VS.filter(_=>_!=y)}}function apt(e,t){let{config:n}=t,{terminateWorkerTimeout:i}=n;Number.isFinite(i)&&i>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{VS=VS.filter(o=>o!=e);try{await e.terminate()}catch{}},i))}function HAe(e){let{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}var m9i=x(T(),1);var cpt="Writer iterator completed too soon",lpt="Writer not initialized",dpt="text/plain";var upt="Content-Type";var mpt=64*1024,d9i=256*1024,wq="writable",d1=class{constructor(){this.size=0}init(){this.initialized=!0}},UY=class extends d1{get readable(){let t=this,{chunkSize:n=mpt}=t,i=new ReadableStream({start(){this.chunkOffset=0},async pull(o){let{offset:r=0,size:s,diskNumberStart:a}=i,{chunkOffset:c}=this,d=s===zt?n:Math.min(n,s-c),u=await rc(t,r+c,d,a);o.enqueue(u),c+n>s||s===zt&&!u.length&&d?o.close():this.chunkOffset+=n}});return i}},yB=class extends d1{constructor(){super();let t=this,n=new WritableStream({write(i){if(!t.initialized)throw new Error(lpt);return t.writeUint8Array(i)}});Object.defineProperty(t,wq,{get(){return n}})}writeUint8Array(){}};var DY=class extends yB{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){let n=this,i=0,o=n.pending,r=n.pending.length;for(n.pending="",i=0;i<Math.floor((r+t.length)/3)*3-r;i++)o+=String.fromCharCode(t[i]);for(;i<t.length;i++)n.pending+=String.fromCharCode(t[i]);o.length&&(o.length>2?n.data+=btoa(o):n.pending+=o)}getData(){return this.data+btoa(this.pending)}},Op=class extends UY{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,n){let i=this,o=t+n,s=await(t||o<i.size?i.blob.slice(t,o):i.blob).arrayBuffer();return s.byteLength>n&&(s=s.slice(t,o)),new Uint8Array(s)}},u1=class extends d1{constructor(t){super();let n=this,i=new TransformStream,o=[];t&&o.push([upt,t]),Object.defineProperty(n,wq,{get(){return i.writable}}),n.blob=new Response(i.readable,{headers:o}).blob()}getData(){return this.blob}},OY=class extends Op{constructor(t){super(new Blob([t],{type:dpt}))}},BY=class extends u1{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){let{encoding:t,utf8:n}=this,i=await super.getData();if(i.text&&n)return i.text();{let o=new FileReader;return new Promise((r,s)=>{Object.assign(o,{onload:({target:a})=>r(a.result),onerror:()=>s(o.error)}),o.readAsText(i,t)})}}};var xB=class extends UY{constructor(t){super(),this.readers=t}async init(){let t=this,{readers:n}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(n.map(async(i,o)=>{await i.init(),o!=n.length-1&&(t.lastDiskOffset+=i.size),t.size+=i.size})),super.init()}async readUint8Array(t,n,i=0){let o=this,{readers:r}=this,s,a=i;a==-1&&(a=r.length-1);let c=t;for(;r[a]&&c>=r[a].size;)c-=r[a].size,a++;let d=r[a];if(d){let u=d.size;if(c+n<=u)s=await rc(d,c,n);else{let m=u-c;s=new Uint8Array(n);let p=await rc(d,c,m);s.set(p,0);let b=await o.readUint8Array(t+m,n-m,i);s.set(b,m),p.length+b.length<n&&(s=s.subarray(0,p.length+b.length))}}else s=new Uint8Array;return o.lastDiskNumber=Math.max(a,o.lastDiskNumber),s}},zY=class extends d1{constructor(t,n=4294967295){super();let i=this;Object.assign(i,{diskNumber:0,diskOffset:0,size:0,maxSize:n,availableSize:n});let o,r,s,a=new WritableStream({async write(u){let{availableSize:m}=i;if(s)u.length>=m?(await c(u.subarray(0,m)),await d(),i.diskOffset+=o.size,i.diskNumber++,s=null,await this.write(u.subarray(m))):await c(u);else{let{value:p,done:b}=await t.next();if(b&&!p)throw new Error(cpt);o=p,o.size=0,o.maxSize&&(i.maxSize=o.maxSize),i.availableSize=i.maxSize,await zp(o),r=p.writable,s=r.getWriter(),await this.write(u)}},async close(){await s.ready,await d()}});Object.defineProperty(i,wq,{get(){return a}});async function c(u){let m=u.length;m&&(await s.ready,await s.write(u),o.size+=m,i.size+=m,i.availableSize-=m)}async function d(){await s.close()}}},GS=class{constructor(t){return Array.isArray(t)&&(t=new xB(t)),t instanceof ReadableStream&&(t={readable:t}),t}},m1=class{constructor(t){return t.writable===zt&&typeof t.next==vu&&(t=new zY(t)),t instanceof WritableStream&&(t={writable:t}),t.size===zt&&(t.size=0),t instanceof zY||Object.assign(t,{diskNumber:0,diskOffset:0,availableSize:RS,maxSize:RS}),t}};async function zp(e,t){if(e.init&&!e.initialized)await e.init(t);else return Promise.resolve()}function rc(e,t,n,i){return e.readUint8Array(t,n,i)}var g9i=x(T(),1);var f9i=x(T(),1),KAe="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),hpt=KAe.length==256;function JAe(e){if(hpt){let t="";for(let n=0;n<e.length;n++)t+=KAe[e[n]];return t}else return new TextDecoder().decode(e)}function HY(e,t){return t&&t.trim().toLowerCase()=="cp437"?JAe(e):new TextDecoder(t).decode(e)}var x9i=x(T(),1),Mq="filename",kq="rawFilename",KY="comment",Uq="rawComment",JY="uncompressedSize",Dq="compressedSize",Oq="offset",Bq="diskNumberStart",h1="lastModDate",TB="rawLastModDate",jY="lastAccessDate",jAe="rawLastAccessDate",QY="creationDate",zq="rawCreationDate",Hq="internalFileAttributes",Kq="externalFileAttributes",Jq="msdosAttributesRaw",jq="msdosAttributes",Qq="msDosCompatible",_B="zip64",qq="encrypted",$q="version",e$="versionMadeBy",t$="zipCrypto",qY="directory",n$="executable",i$="compressionMethod",o$="signature",r$="extraField",fpt="extraFieldInfoZip",ppt="extraFieldUnix";var s$="unixMode",a$="setuid",c$="setgid",l$="sticky",bpt="bitFlag",gpt="filenameUTF8",ypt="commentUTF8",xpt="rawExtraField",Tpt="extraFieldZip64",_pt="extraFieldUnicodePath",Spt="extraFieldUnicodeComment",Apt="extraFieldAES",Zpt="extraFieldNTFS",Cpt="extraFieldExtendedTimestamp",Rpt=[Mq,kq,JY,Dq,h1,TB,KY,Uq,jY,QY,zq,Oq,Bq,Hq,Kq,Jq,jq,Qq,_B,qq,$q,e$,t$,qY,n$,i$,o$,r$,ppt,fpt,"uid","gid",s$,a$,c$,l$,bpt,gpt,ypt,xpt,Tpt,_pt,Spt,Apt,Zpt,Cpt],Sx=class{constructor(t){Rpt.forEach(n=>this[n]=t[n])}};var _9i=x(T(),1),QAe="filenameEncoding",qAe="commentEncoding",$Ae="decodeText",eZe="extractPrependedData",tZe="extractAppendedData",SB="password",AB="rawPassword",ZB="passThrough",CB="signal",nZe="checkPasswordOnly",iZe="checkOverlappingEntryOnly",oZe="checkOverlappingEntry",rZe="checkSignature",RB="useWebWorkers",VB="useCompressionStream",GB="transferStreams",EB="preventClose",sZe="encryptionStrength",aZe="extendedTimestamp",cZe="keepOrder",lZe="level",dZe="bufferedWrite",uZe="createTempStream",mZe="dataDescriptorSignature",hZe="useUnicodeFileNames",fZe="dataDescriptor",pZe="supportZip64SplitFile",bZe="encodeText",d$="offset",u$="usdz",gZe="unixExtraFieldType";var LB="File format is not recognized",ZZe="End of central directory not found",CZe="End of Zip64 central directory locator not found",RZe="Central directory header not found",VZe="Local file header not found",GZe="Zip64 extra field not found",EZe="File contains encrypted entry",LZe="Encryption method not supported",h$="Compression method not supported",f$="Split zip file",WZe="Overlapping entry found",xZe="utf-8",Lpt="UTF8",TZe="cp437",Wpt=[[JY,4294967295],[Dq,4294967295],[Oq,4294967295],[Bq,65535]],vpt={65535:{getValue:Pr,bytes:4},4294967295:{getValue:b1,bytes:8}},ES=class{constructor(t,n={}){Object.assign(this,{reader:new GS(t),options:n,config:FY(),readRanges:[]})}async*getEntriesGenerator(t={}){let n=this,{reader:i}=n,{config:o}=n;if(await zp(i),(i.size===zt||!i.readUint8Array)&&(i=new Op(await new Response(i.readable).blob()),await zp(i)),i.size<22)throw new Error(LB);i.chunkSize=tB(o);let r=await Npt(i,101010256,i.size,22,65535*16);if(!r){let Y=await rc(i,0,4),g=Xr(Y);throw Pr(g)==134695760?new Error(f$):new Error(ZZe)}let s=Xr(r),a=Pr(s,12),c=Pr(s,16),d=r.offset,u=sc(s,20),m=d+22+u,p=sc(s,4),b=i.lastDiskNumber||0,f=sc(s,6),y=sc(s,8),_=0,S=0;if(c==4294967295||a==4294967295||y==65535||f==65535){let Y=await rc(i,r.offset-20,20),g=Xr(Y);if(Pr(g,0)==117853008){c=b1(g,8);let C=await rc(i,c,56,-1),V=Xr(C),L=r.offset-20-56;if(Pr(V,0)!=101075792&&c!=L){let P=c;c=L,c>P&&(_=c-P),C=await rc(i,c,56,-1),V=Xr(C)}if(Pr(V,0)!=101075792)throw new Error(CZe);p==65535&&(p=Pr(V,16)),f==65535&&(f=Pr(V,20)),y==65535&&(y=b1(V,32)),a==4294967295&&(a=b1(V,40)),c-=a}}if(c>=i.size&&(_=i.size-c-a-22,c=i.size-a-22),b!=p)throw new Error(f$);if(c<0)throw new Error(LB);let A=0,Z=await rc(i,c,a,f),R=Xr(Z);if(a){let Y=r.offset-a;if(Pr(R,A)!=33639248&&c!=Y){let g=c;c=Y,c>g&&(_+=c-g),Z=await rc(i,c,a,f),R=Xr(Z)}}let G=r.offset-c-(i.lastDiskOffset||0);if(a!=G&&G>=0&&(a=G,Z=await rc(i,c,a,f),R=Xr(Z)),c<0||c>=i.size)throw new Error(LB);let E=Ec(n,t,QAe),v=Ec(n,t,qAe);for(let Y=0;Y<y;Y++){let g=new p$(i,o,n.options);if(Pr(R,A)!=33639248)throw new Error(RZe);vZe(g,R,A+6);let C=!!g.bitFlag.languageEncodingFlag,V=A+46,L=V+g.filenameLength,P=L+g.extraFieldLength,N=sc(R,A+4),O=N>>8==0,M=N>>8==3,D=Z.subarray(V,L),w=sc(R,A+32),z=P+w,K=Z.subarray(P,z),ee=C,H=C,te=Pr(R,A+38),q=te&255,de={readOnly:!!(q&1),hidden:!!(q&2),system:!!(q&4),directory:!!(q&16),archive:!!(q&32)},ye=Pr(R,A+42)+_,le=Ec(n,t,$Ae)||HY,Ce=ee?xZe:E||TZe,ge=H?xZe:v||TZe,Ee=le(D,Ce);Ee===zt&&(Ee=HY(D,Ce));let Re=le(K,ge);Re===zt&&(Re=HY(K,ge)),Object.assign(g,{versionMadeBy:N,msDosCompatible:O,compressedSize:0,uncompressedSize:0,commentLength:w,offset:ye,diskNumberStart:sc(R,A+34),internalFileAttributes:sc(R,A+36),externalFileAttributes:te,msdosAttributesRaw:q,msdosAttributes:de,rawFilename:D,filenameUTF8:ee,commentUTF8:H,rawExtraField:Z.subarray(L,P),rawComment:K,filename:Ee,comment:Re}),S=Math.max(ye,S),FZe(g,g,R,A+6);let Xe=g.externalFileAttributes>>16&65535;g.unixMode===zt&&(Xe&16877)!=0&&(g.unixMode=Xe);let we=!!(g.unixMode&2048),nt=!!(g.unixMode&1024),je=!!(g.unixMode&512),et=g.unixMode!==zt?(g.unixMode&73)!=0:M&&(Xe&73)!=0,Ie=g.unixMode!==zt&&(g.unixMode&61440)==16384,Oe=(Xe&61440)==16384;Object.assign(g,{setuid:we,setgid:nt,sticky:je,unixExternalUpper:Xe,internalFileAttribute:g.internalFileAttributes,externalFileAttribute:g.externalFileAttributes,executable:et,directory:Ie||Oe||O&&de.directory||Ee.endsWith("/")&&!g.uncompressedSize,zipCrypto:g.encrypted&&!g.extraFieldAES});let St=new Sx(g);St.getData=(on,Ot)=>g.getData(on,St,n.readRanges,Ot),St.arrayBuffer=async on=>{let Ot=new TransformStream,[gt]=await Promise.all([new Response(Ot.readable).arrayBuffer(),g.getData(Ot,St,n.readRanges,on)]);return gt},A=z;let{onprogress:Et}=t;if(Et)try{await Et(Y+1,y,new Sx(g))}catch{}yield St}let I=Ec(n,t,eZe),X=Ec(n,t,tZe);return I&&(n.prependedData=S>0?await rc(i,0,S):new Uint8Array),n.comment=u?await rc(i,d+22,u):new Uint8Array,X&&(n.appendedData=m<i.size?await rc(i,m,i.size-m):new Uint8Array),!0}async getEntries(t={}){let n=[];for await(let i of this.getEntriesGenerator(t))n.push(i);return n}async close(){}};var p$=class{constructor(t,n,i){Object.assign(this,{reader:t,config:n,options:i})}async getData(t,n,i,o={}){let r=this,{reader:s,offset:a,diskNumberStart:c,extraFieldAES:d,extraFieldZip64:u,compressionMethod:m,config:p,bitFlag:b,signature:f,rawLastModDate:y,uncompressedSize:_,compressedSize:S}=r,{dataDescriptor:A}=b,Z=n.localDirectory={},R=await rc(s,a,30,c),G=Xr(R),E=Ec(r,o,SB),v=Ec(r,o,AB),I=Ec(r,o,ZB);if(E=E&&E.length&&E,v=v&&v.length&&v,d&&d.originalCompressionMethod!=99)throw new Error(h$);if(m!=0&&m!=8&&m!=9&&!I)throw new Error(h$);if(Pr(G,0)!=67324752)throw new Error(VZe);vZe(Z,G,4);let{extraFieldLength:X,filenameLength:Y,lastAccessDate:g,creationDate:C}=Z;Z.rawExtraField=X?await rc(s,a+30+Y,X,c):new Uint8Array,FZe(r,Z,G,4,!0),Object.assign(n,{lastAccessDate:g,creationDate:C});let V=r.encrypted&&Z.encrypted&&!I,L=V&&!d;if(I||(n.zipCrypto=L),V){if(!L&&d.strength===zt)throw new Error(LZe);if(!E&&!v)throw new Error(EZe)}let P=a+30+Y+X,N=S,O=s.readable;Object.assign(O,{diskNumberStart:c,offset:P,size:N});let M=Ec(r,o,CB),D=Ec(r,o,nZe),w=Ec(r,o,oZe),z=Ec(r,o,iZe);z&&(w=!0);let{onstart:K,onprogress:ee,onend:H}=o,te=m==9,q=Ec(r,o,VB);te&&(q=!1);let de={options:{codecType:hB,password:E,rawPassword:v,zipCrypto:L,encryptionStrength:d&&d.strength,signed:Ec(r,o,rZe)&&!I,passwordVerification:L&&(A?y>>>8&255:f>>>24&255),outputSize:I?S:_,signature:f,compressed:m!=0&&!I,encrypted:r.encrypted&&!I,useWebWorkers:Ec(r,o,RB),useCompressionStream:q,transferStreams:Ec(r,o,GB),deflate64:te,checkPasswordOnly:D},config:p,streamOptions:{signal:M,size:N,onstart:K,onprogress:ee,onend:H}};w&&await Ypt({reader:s,fileEntry:n,offset:a,diskNumberStart:c,signature:f,compressedSize:S,uncompressedSize:_,dataOffset:P,dataDescriptor:A||Z.bitFlag.dataDescriptor,extraFieldZip64:u||Z.extraFieldZip64,readRanges:i});let ye;try{if(!z){D&&(t=new WritableStream),t=new m1(t),await zp(t,I?S:_),{writable:ye}=t;let{outputSize:le}=await gB({readable:O,writable:ye},de);if(t.size+=le,le!=(I?S:_))throw new Error(c1)}}catch(le){if(le.outputSize!==zt&&(t.size+=le.outputSize),!D||le.message!=ag)throw le}finally{!Ec(r,o,EB)&&ye&&!ye.locked&&await ye.getWriter().close()}return D||z?zt:t.getData?t.getData():ye}};function vZe(e,t,n){let i=e.rawBitFlag=sc(t,n+2),o=(i&1)==1,r=Pr(t,n+6);Object.assign(e,{encrypted:o,version:sc(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:r,lastModDate:wpt(r),filenameLength:sc(t,n+22),extraFieldLength:sc(t,n+24)})}function FZe(e,t,n,i,o){let{rawExtraField:r}=t,s=t.extraField=new Map,a=Xr(new Uint8Array(r)),c=0;try{for(;c<r.length;){let A=sc(a,c),Z=sc(a,c+2);s.set(A,{type:A,data:r.slice(c+4,c+4+Z)}),c+=4+Z}}catch{}let d=sc(n,i+4);Object.assign(t,{signature:Pr(n,i+10),compressedSize:Pr(n,i+14),uncompressedSize:Pr(n,i+18)});let u=s.get(1);u&&(Fpt(u,t),t.extraFieldZip64=u);let m=s.get(28789);m&&(_Ze(m,Mq,kq,t,e),t.extraFieldUnicodePath=m);let p=s.get(25461);p&&(_Ze(p,KY,Uq,t,e),t.extraFieldUnicodeComment=p);let b=s.get(39169);b?(Ipt(b,t,d),t.extraFieldAES=b):t.compressionMethod=d;let f=s.get(10);f&&(Ppt(f,t),t.extraFieldNTFS=f);let y=s.get(30805);if(y)SZe(y,t,!1),t.extraFieldUnix=y;else{let A=s.get(30837);A&&(SZe(A,t,!0),t.extraFieldInfoZip=A)}let _=s.get(21589);_&&(Xpt(_,t,o),t.extraFieldExtendedTimestamp=_);let S=s.get(6534);S&&(t.extraFieldUSDZ=S)}function Fpt(e,t){t.zip64=!0;let n=Xr(e.data),i=Wpt.filter(([o,r])=>t[o]==r);for(let o=0,r=0;o<i.length;o++){let[s,a]=i[o];if(t[s]==a){let c=vpt[a];t[s]=e[s]=c.getValue(n,r),r+=c.bytes}else if(e[s])throw new Error(GZe)}}function _Ze(e,t,n,i,o){let r=Xr(e.data),s=new rg;s.append(o[n]);let a=Xr(new Uint8Array(4));a.setUint32(0,s.get(),!0);let c=Pr(r,1);Object.assign(e,{version:Zx(r,0),[t]:HY(e.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&c==Pr(a,0)}),e.valid&&(i[t]=e[t],i[t+Lpt]=!0)}function Ipt(e,t,n){let i=Xr(e.data),o=Zx(i,4);Object.assign(e,{vendorVersion:Zx(i,0),vendorId:Zx(i,2),strength:o,originalCompressionMethod:n,compressionMethod:sc(i,5)}),t.compressionMethod=e.compressionMethod}function Ppt(e,t){let n=Xr(e.data),i=4,o;try{for(;i<e.data.length&&!o;){let r=sc(n,i),s=sc(n,i+2);r==1&&(o=e.data.slice(i+4,i+4+s)),i+=4+s}}catch{}try{if(o&&o.length==24){let r=Xr(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),c=r.getBigUint64(16,!0);Object.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:c});let d=m$(s),u=m$(a),m=m$(c),p={lastModDate:d,lastAccessDate:u,creationDate:m};Object.assign(e,p),Object.assign(t,p)}}catch{}}function SZe(e,t,n){try{let i=Xr(new Uint8Array(e.data)),o=0,r=Zx(i,o++),s=Zx(i,o++),a=e.data.subarray(o,o+s);o+=s;let c=AZe(a),d=Zx(i,o++),u=e.data.subarray(o,o+d);o+=d;let m=AZe(u),p=zt;if(!n&&o+2<=e.data.length){let b=e.data;p=new DataView(b.buffer,b.byteOffset+o,2).getUint16(0,!0)}Object.assign(e,{version:r,uid:c,gid:m,unixMode:p}),c!==zt&&(t.uid=c),m!==zt&&(t.gid=m),p!==zt&&(t.unixMode=p)}catch{}}function AZe(e){let t=new Uint8Array(4);return t.set(e,0),new DataView(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Xpt(e,t,n){let i=Xr(e.data),o=Zx(i,0),r=[],s=[];n?((o&1)==1&&(r.push(h1),s.push(TB)),(o&2)==2&&(r.push(jY),s.push(jAe)),(o&4)==4&&(r.push(QY),s.push(zq))):e.data.length>=5&&(r.push(h1),s.push(TB));let a=1;r.forEach((c,d)=>{if(e.data.length>=a+4){let u=Pr(i,a);t[c]=e[c]=new Date(u*1e3);let m=s[d];e[m]=u}a+=4})}async function Ypt({reader:e,fileEntry:t,offset:n,diskNumberStart:i,signature:o,compressedSize:r,uncompressedSize:s,dataOffset:a,dataDescriptor:c,extraFieldZip64:d,readRanges:u}){let m=0;if(i)for(let f=0;f<i;f++){let y=e.readers[f];m+=y.size}let p=0;if(c&&(d?p=20:p=12),p){let f=await rc(e,a+r,p+4,i);if(Pr(Xr(f),0)==134695760){let _=Pr(Xr(f),4),S,A;d?(S=b1(Xr(f),8),A=b1(Xr(f),16)):(S=Pr(Xr(f),8),A=Pr(Xr(f),12)),(t.encrypted&&!t.zipCrypto||_==o)&&S==r&&A==s&&(p+=4)}}let b={start:m+n,end:m+a+r+p,fileEntry:t};for(let f of u)if(f.fileEntry!=t&&b.start>=f.start&&b.start<f.end){let y=new Error(WZe);throw y.overlappingEntry=f.fileEntry,y}u.push(b)}async function Npt(e,t,n,i,o){let r=new Uint8Array(4),s=Xr(r);Mpt(s,0,t);let a=i+o;return await c(i)||await c(Math.min(a,n));async function c(d){let u=n-d,m=await rc(e,u,d);for(let p=m.length-i;p>=0;p--)if(m[p]==r[0]&&m[p+1]==r[1]&&m[p+2]==r[2]&&m[p+3]==r[3])return{offset:u+p,buffer:m.slice(p,p+i).buffer}}}function Ec(e,t,n){return t[n]===zt?e.options[n]:t[n]}function wpt(e){let t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function m$(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function Zx(e,t){return e.getUint8(t)}function sc(e,t){return e.getUint16(t,!0)}function Pr(e,t){return e.getUint32(t,!0)}function b1(e,t){return Number(e.getBigUint64(t,!0))}function Mpt(e,t,n){e.setUint32(t,n,!0)}function Xr(e){return new DataView(e.buffer)}var K9i=x(T(),1);var B9i=x(T(),1);var MZe="File already exists",kZe="Zip file comment exceeds 64KB",UZe="File entry comment exceeds 64KB",DZe="File entry name exceeds 64KB",F$="Version exceeds 65535",OZe="The strength must equal 1, 2, or 3",BZe="Extra field type exceeds 65535",zZe="Extra field data exceeds 64KB",I$="Zip64 is not supported (set the 'zip64' option to 'true')",HZe="Undefined uncompressed size",KZe="Zip file not empty",Kpt="Invalid uid (must be integer 0..2^32-1)",Jpt="Invalid gid (must be integer 0..2^32-1)",jpt="Invalid UNIX mode (must be integer 0..65535)",Qpt="Invalid unixExtraFieldType (must be 'infozip' or 'unix')",qpt="Invalid msdosAttributesRaw (must be integer 0..255)",$pt="Invalid msdosAttributes (must be an object with boolean flags)",XZe=new Uint8Array([7,0,2,0,65,69,3,0,0]),JZe="infozip",jZe="unix",W$=0,YZe=[],cN=class{constructor(t,n={}){t=new m1(t);let i=t.availableSize!==zt&&t.availableSize>0&&t.availableSize!==RS&&t.maxSize!==zt&&t.maxSize>0&&t.maxSize!==RS;Object.assign(this,{writer:t,addSplitZipSignature:i,options:n,config:FY(),files:new Map,filenames:new Set,offset:n[d$]===zt?t.size||t.writable.size||0:n[d$],pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async prependZip(t){if(this.filenames.size)throw new Error(KZe);t=new GS(t);let n=new ES(t.readable),i=await n.getEntries();await n.close(),await t.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=t.size,this.filenames=new Set(i.map(o=>o.filename)),this.files=new Map(i.map(o=>{let{version:r,compressionMethod:s,lastModDate:a,lastAccessDate:c,creationDate:d,rawFilename:u,bitFlag:m,encrypted:p,uncompressedSize:b,compressedSize:f,diskOffset:y,diskNumber:_,zip64:S}=o,{rawExtraFieldZip64:A,rawExtraFieldAES:Z,rawExtraFieldExtendedTimestamp:R,rawExtraFieldNTFS:G,rawExtraFieldUnix:E,rawExtraField:v}=o,{level:I,languageEncodingFlag:X,dataDescriptor:Y}=m;A=A||new Uint8Array,Z=Z||new Uint8Array,R=R||new Uint8Array,G=G||new Uint8Array,E=o.rawExtraFieldUnix||new Uint8Array,v=v||new Uint8Array;let g=vi(A,Z,R,G,E,v),C=S&&b>4294967295,V=S&&f>4294967295,{headerArray:L,headerView:P}=QZe({version:r,bitFlag:qZe(I,X,Y,p,s),compressionMethod:s,uncompressedSize:b,compressedSize:f,lastModDate:a,rawFilename:u,zip64CompressedSize:V,zip64UncompressedSize:C,extraFieldLength:g});return Object.assign(o,{zip64UncompressedSize:C,zip64CompressedSize:V,zip64Offset:S&&this.offset-y>4294967295,zip64DiskNumberStart:S&&_>65535,rawExtraFieldZip64:A,rawExtraFieldAES:Z,rawExtraFieldExtendedTimestamp:R,rawExtraFieldNTFS:G,rawExtraFieldUnix:E,rawExtraField:v,extendedTimestamp:R.length>0||G.length>0,extraFieldExtendedTimestampFlag:1+(c?2:0)+(d?4:0),headerArray:L,headerView:P}),[o.filename,o]}))}async add(t="",n,i={}){let o=this,{pendingAddFileCalls:r,config:s}=o;W$<s.maxWorkers?W$++:await new Promise(c=>YZe.push(c));let a;try{if(t=t.trim(),o.filenames.has(t))throw new Error(MZe);return o.filenames.add(t),a=e0t(o,t,n,i),r.add(a),await a}catch(c){throw o.filenames.delete(t),c}finally{r.delete(a);let c=YZe.shift();c?c():W$--}}remove(t){let{filenames:n,files:i}=this;if(typeof t=="string"&&(t=i.get(t)),t&&t.filename!==zt){let{filename:o}=t;if(n.has(o)&&i.has(o))return n.delete(o),i.delete(o),!0}return!1}async close(t=new Uint8Array,n={}){let i=this,{pendingAddFileCalls:o,writer:r}=this,{writable:s}=r;for(;o.size;)await Promise.allSettled(Array.from(o));return await l0t(i,t,n),xi(i,n,EB)||await s.getWriter().close(),r.getData?r.getData():s}};async function e0t(e,t,n,i){t=t.trim();let o=xi(e,i,Qq),r=xi(e,i,e$,o?20:768),s=xi(e,i,n$),a=xi(e,i,"uid"),c=xi(e,i,"gid"),d=xi(e,i,s$),u=xi(e,i,gZe),m=xi(e,i,a$),p=xi(e,i,c$),b=xi(e,i,l$);if(a!==zt&&(a<0||a>4294967295))throw new Error(Kpt);if(c!==zt&&(c<0||c>4294967295))throw new Error(Jpt);if(d!==zt&&(d<0||d>65535))throw new Error(jpt);if(u!==zt&&u!==JZe&&u!==jZe)throw new Error(Qpt);let f=xi(e,i,Jq),y=xi(e,i,jq),_=a!==zt||c!==zt||d!==zt||u,S=f!==zt||y!==zt;if(_?(o=!1,r=r&65535|768):S&&(o=!0,r=r&255),f!==zt&&(f<0||f>255))throw new Error(qpt);if(y&&typeof y!==bAe)throw new Error($pt);if(r>65535)throw new Error(F$);let A=xi(e,i,Kq,0);!i[qY]&&t.endsWith("/")&&(i[qY]=!0);let Z=xi(e,i,qY);Z?(t.endsWith("/")||(t+="/"),A===0&&(A=16,o||(A|=16877<<16))):!o&&A===0&&(s?A=493<<16:A=420<<16);let R;o||(R=A>>16&65535,d=d===zt?R:d&65535,m?d|=2048:m=!!(d&2048),p?d|=1024:p=!!(d&1024),b?d|=512:b=!!(d&512),Z&&(d|=16384),A=(d&65535)<<16|A&255),{msdosAttributesRaw:f,msdosAttributes:y}=r0t(f,y),S&&(A=A&4294967295|f&255);let G=xi(e,i,bZe,s1),E=G(t);if(E===zt&&(E=s1(t)),vi(E)>65535)throw new Error(DZe);let v=i[KY]||"",I=G(v);if(I===zt&&(I=s1(v)),vi(I)>65535)throw new Error(UZe);let X=xi(e,i,$q,20);if(X>65535)throw new Error(F$);let Y=xi(e,i,h1,new Date),g=xi(e,i,jY),C=xi(e,i,QY),V=xi(e,i,Hq,0),L=xi(e,i,ZB),P,N;L||(P=xi(e,i,SB),N=xi(e,i,AB));let O=xi(e,i,sZe,3),M=xi(e,i,t$),D=xi(e,i,aZe,!0),w=xi(e,i,cZe,!0),z=xi(e,i,RB),K=xi(e,i,GB,!0),ee=xi(e,i,dZe),H=xi(e,i,uZe),te=xi(e,i,mZe,!1),q=xi(e,i,CB),de=xi(e,i,hZe,!0),ye=xi(e,i,i$),le=xi(e,i,lZe),Ce=xi(e,i,VB),ge=xi(e,i,fZe);ee&&ge===zt&&(ge=!1),(ge===zt||M)&&(ge=!0),le!==zt&&le!=6&&(Ce=!1),!Ce&&e.config.CompressionStream===zt&&e.config.CompressionStreamZlib===zt&&(le=0);let Ee=xi(e,i,_B);if(!M&&(P!==zt||N!==zt)&&!(O>=1&&O<=3))throw new Error(OZe);let Re=new Uint8Array,Xe=i[r$];if(Xe){let dt=0,mt=0;Xe.forEach(Qn=>dt+=4+vi(Qn)),Re=new Uint8Array(dt),Xe.forEach((Qn,Yn)=>{if(Yn>65535)throw new Error(BZe);if(vi(Qn)>65535)throw new Error(zZe);Rr(Re,new Uint16Array([Yn]),mt),Rr(Re,new Uint16Array([vi(Qn)]),mt+2),Rr(Re,Qn,mt+4),mt+=4+vi(Qn)})}let we=0,nt=0,je=0;if(L&&(je=i[JY],je===zt))throw new Error(HZe);let et=Ee===!0;n&&(n=new GS(n),await zp(n),L?(i.uncompressedSize=je,we=wZe(je)):n.size===zt?(ge=!0,(Ee||Ee===zt)&&(Ee=!0,je=we=4294967296)):(i.uncompressedSize=je=n.size,we=wZe(je)));let{diskOffset:Ie,diskNumber:Oe}=e.writer,St=et||je>4294967295,Et=et||we>4294967295;if(St||Et){if(Ee===!1)throw new Error(I$);Ee=!0}Ee=Ee||!1;let on=xi(e,i,qq);i=Object.assign({},i,{rawFilename:E,rawComment:I,version:X,versionMadeBy:r,lastModDate:Y,lastAccessDate:g,creationDate:C,rawExtraField:Re,zip64:Ee,zip64UncompressedSize:St,zip64CompressedSize:Et,password:P,rawPassword:N,level:le,useWebWorkers:z,transferStreams:K,encryptionStrength:O,extendedTimestamp:D,zipCrypto:M,bufferedWrite:ee,createTempStream:H,keepOrder:w,useUnicodeFileNames:de,dataDescriptor:ge,dataDescriptorSignature:te,signal:q,msDosCompatible:o,internalFileAttribute:V,internalFileAttributes:V,externalFileAttribute:A,externalFileAttributes:A,useCompressionStream:Ce,passThrough:L,encrypted:!!(P&&vi(P)||N&&vi(N))||L&&on,signature:i[o$],compressionMethod:ye,uncompressedSize:je,offset:e.offset-Ie,diskNumberStart:Oe,uid:a,gid:c,setuid:m,setgid:p,sticky:b,unixMode:d,msdosAttributesRaw:f,msdosAttributes:y,unixExternalUpper:R});let Ot=i0t(i),gt=s0t(i),Wt=vi(Ot.localHeaderArray,gt.dataDescriptorArray);nt=Wt+we,e.options[u$]&&(nt+=nt+64),e.pendingEntriesSize+=nt;let Cn;try{Cn=await t0t(e,t,n,{headerInfo:Ot,dataDescriptorInfo:gt,metadataSize:Wt},i)}finally{e.pendingEntriesSize-=nt}return Object.assign(Cn,{name:t,comment:v,extraField:Xe}),new Sx(Cn)}async function t0t(e,t,n,i,o){let{files:r,writer:s}=e,{keepOrder:a,dataDescriptor:c,signal:d}=o,{headerInfo:u}=i,m=e.options[u$],p=Array.from(r.values()).pop(),b={},f,y,_,S,A,Z;r.set(t,b);try{let v;a&&(v=p&&p.lock,R()),(o.bufferedWrite||!a||e.writerLocked||e.bufferedWrites||!c)&&!m?(o.createTempStream?Z=await o.createTempStream():Z=new TransformStream(zt,zt,{highWaterMark:RS}),Z.size=0,f=!0,e.bufferedWrites++,await zp(s)):(Z=s,await G()),await zp(Z);let{writable:I,diskOffset:X}=s;if(e.addSplitZipSignature){delete e.addSplitZipSignature;let V=new Uint8Array(4),L=Xa(V);lo(L,0,134695760),await cg(s,V),e.offset+=4}m&&o0t(i,e.offset-X);let{localHeaderView:Y,localHeaderArray:g}=u;f||(await v,await E(I));let{diskNumber:C}=s;return b.diskNumberStart=C,f||(A=!0,await cg(Z,g)),b=await n0t(n,Z,b,i,e.config,o),f||(A=!1),r.set(t,b),b.filename=t,f?(await Promise.all([Z.writable.getWriter().close(),v]),await G(),S=!0,b.diskNumberStart=s.diskNumber,b.offset=e.offset-s.diskOffset,c0t(b,Y,o),await E(I),await cg(s,g),await Z.readable.pipeTo(I,{preventClose:!0,preventAbort:!0,signal:d}),s.size+=Z.size,S=!1):b.offset=e.offset-X,e.offset+=b.size,b}catch(v){if(S||A){if(e.hasCorruptedEntries=!0,v)try{v.corruptedEntry=!0}catch{}f?e.offset+=Z.size:e.offset=Z.size}throw r.delete(t),v}finally{f&&e.bufferedWrites--,_&&_(),y&&y()}function R(){b.lock=new Promise(v=>_=v)}async function G(){e.writerLocked=!0;let{lockWriter:v}=e;e.lockWriter=new Promise(I=>y=()=>{e.writerLocked=!1,I()}),await v}async function E(v){vi(u.localHeaderArray)>s.availableSize&&(s.availableSize=0,await cg(v,new Uint8Array))}}async function n0t(e,t,{diskNumberStart:n,lock:i},o,r,s){let{headerInfo:a,dataDescriptorInfo:c,metadataSize:d}=o,{headerArray:u,headerView:m,lastModDate:p,rawLastModDate:b,encrypted:f,compressed:y,version:_,compressionMethod:S,rawExtraFieldZip64:A,localExtraFieldZip64Length:Z,rawExtraFieldExtendedTimestamp:R,extraFieldExtendedTimestampFlag:G,rawExtraFieldNTFS:E,rawExtraFieldUnix:v,rawExtraFieldAES:I}=a,{dataDescriptorArray:X}=c,{rawFilename:Y,lastAccessDate:g,creationDate:C,password:V,rawPassword:L,level:P,zip64:N,zip64UncompressedSize:O,zip64CompressedSize:M,zipCrypto:D,dataDescriptor:w,directory:z,executable:K,versionMadeBy:ee,rawComment:H,rawExtraField:te,useWebWorkers:q,transferStreams:de,onstart:ye,onprogress:le,onend:Ce,signal:ge,encryptionStrength:Ee,extendedTimestamp:Re,msDosCompatible:Xe,internalFileAttributes:we,externalFileAttributes:nt,uid:je,gid:et,unixMode:Ie,setuid:Oe,setgid:St,sticky:Et,unixExternalUpper:on,msdosAttributesRaw:Ot,msdosAttributes:gt,useCompressionStream:Wt,passThrough:Cn}=s,dt={lock:i,versionMadeBy:ee,zip64:N,directory:!!z,executable:!!K,filenameUTF8:!0,rawFilename:Y,commentUTF8:!0,rawComment:H,rawExtraFieldZip64:A,localExtraFieldZip64Length:Z,rawExtraFieldExtendedTimestamp:R,rawExtraFieldNTFS:E,rawExtraFieldUnix:v,rawExtraFieldAES:I,rawExtraField:te,extendedTimestamp:Re,msDosCompatible:Xe,internalFileAttributes:we,externalFileAttributes:nt,diskNumberStart:n,uid:je,gid:et,unixMode:Ie,setuid:Oe,setgid:St,sticky:Et,unixExternalUpper:on,msdosAttributesRaw:Ot,msdosAttributes:gt},{signature:mt,uncompressedSize:Qn}=s,Yn=0;Cn||(Qn=0);let{writable:$i}=t;if(e){e.chunkSize=tB(r);let Ko=e.readable,mo=e.size,so={options:{codecType:mB,level:P,rawPassword:L,password:V,encryptionStrength:Ee,zipCrypto:f&&D,passwordVerification:f&&D&&b>>8&255,signed:!Cn,compressed:y&&!Cn,encrypted:f&&!Cn,useWebWorkers:q,useCompressionStream:Wt,transferStreams:de},config:r,streamOptions:{signal:ge,size:mo,onstart:ye,onprogress:le,onend:Ce}};try{let ti=await gB({readable:Ko,writable:$i},so);Yn=ti.outputSize,t.size+=Yn,Cn||(Qn=ti.inputSize,mt=ti.signature)}catch(ti){throw ti.outputSize!==zt&&(t.size+=ti.outputSize),ti}}return a0t({signature:mt,compressedSize:Yn,uncompressedSize:Qn,headerInfo:a,dataDescriptorInfo:c},s),w&&await cg(t,X),Object.assign(dt,{uncompressedSize:Qn,compressedSize:Yn,lastModDate:p,rawLastModDate:b,creationDate:C,lastAccessDate:g,encrypted:f,zipCrypto:D,size:d+Yn,compressionMethod:S,version:_,headerArray:u,headerView:m,signature:mt,extraFieldExtendedTimestampFlag:G,zip64UncompressedSize:O,zip64CompressedSize:M}),dt}function i0t(e){let{rawFilename:t,lastModDate:n,lastAccessDate:i,creationDate:o,level:r,zip64:s,zipCrypto:a,useUnicodeFileNames:c,dataDescriptor:d,directory:u,rawExtraField:m,encryptionStrength:p,extendedTimestamp:b,passThrough:f,encrypted:y,zip64UncompressedSize:_,zip64CompressedSize:S,uncompressedSize:A}=e,{version:Z,compressionMethod:R}=e,G=!u&&(r>0||r===zt&&R!==0),E,v=f||!G,I=s&&(e.bufferedWrite||!_&&!S||v);if(s){let K=4;_&&(K+=8),S&&(K+=8),E=new Uint8Array(K);let ee=Xa(E);if(Ji(ee,0,1),Ji(ee,2,vi(E)-4),I){let H=Xa(E),te=4;_&&(ac(H,te,BigInt(A)),te+=8),S&&v&&(ac(H,te,BigInt(A)),te+=8),te==4&&(E=new Uint8Array)}}else E=new Uint8Array;let X;if(y&&!a){X=new Uint8Array(vi(XZe)+2);let K=Xa(X);Ji(K,0,39169),Rr(X,XZe,2),g1(K,8,p)}else X=new Uint8Array;let Y,g,C;if(b){g=new Uint8Array(9+(i?4:0)+(o?4:0));let K=Xa(g);Ji(K,0,21589),Ji(K,2,vi(g)-4),C=1+(i?2:0)+(o?4:0),g1(K,4,C);let ee=5;lo(K,ee,Math.floor(n.getTime()/1e3)),ee+=4,i&&(lo(K,ee,Math.floor(i.getTime()/1e3)),ee+=4),o&&lo(K,ee,Math.floor(o.getTime()/1e3));try{Y=new Uint8Array(36);let H=Xa(Y),te=v$(n);Ji(H,0,10),Ji(H,2,32),Ji(H,8,1),Ji(H,10,24),ac(H,12,te),ac(H,20,v$(i)||te),ac(H,28,v$(o)||te)}catch{Y=new Uint8Array}}else Y=g=new Uint8Array;let V;try{let{uid:K,gid:ee,unixMode:H,setuid:te,setgid:q,sticky:de,unixExtraFieldType:ye}=e;if(ye&&(K!==zt||ee!==zt||H!==zt)){let le=NZe(K),Ce=NZe(ee),ge=new Uint8Array;if(ye==jZe&&H!==zt){let we=H&65535;te&&(we|=2048),q&&(we|=1024),de&&(we|=512),ge=new Uint8Array(2),new DataView(ge.buffer).setUint16(0,we,!0)}let Ee=3+le.length+Ce.length+ge.length;V=new Uint8Array(4+Ee);let Re=Xa(V);Ji(Re,0,ye==JZe?30837:30805),Ji(Re,2,Ee),g1(Re,4,1),g1(Re,5,le.length);let Xe=6;Rr(V,le,Xe),Xe+=le.length,g1(Re,Xe,Ce.length),Xe++,Rr(V,Ce,Xe),Xe+=Ce.length,Rr(V,ge,Xe)}else V=new Uint8Array}catch{V=new Uint8Array}R===zt&&(R=G?8:0),s&&(Z=Z>45?Z:45),y&&!a&&(Z=Z>51?Z:51,X[9]=R,R=99);let L=I?vi(E):0,P=L+vi(X,g,Y,V,m),{headerArray:N,headerView:O,rawLastModDate:M}=QZe({version:Z,bitFlag:qZe(r,c,d,y,R),compressionMethod:R,uncompressedSize:A,lastModDate:n<Rq?Rq:n>Cq?Cq:n,rawFilename:t,zip64CompressedSize:S,zip64UncompressedSize:_,extraFieldLength:P}),D=30,w=new Uint8Array(D+vi(t)+P),z=Xa(w);return lo(z,0,67324752),Rr(w,N,4),Rr(w,t,D),D+=vi(t),I&&Rr(w,E,D),D+=L,Rr(w,X,D),D+=vi(X),Rr(w,g,D),D+=vi(g),Rr(w,Y,D),D+=vi(Y),Rr(w,V,D),D+=vi(V),Rr(w,m,D),d&&(lo(z,18,0),lo(z,22,0)),{localHeaderArray:w,localHeaderView:z,headerArray:N,headerView:O,lastModDate:n,rawLastModDate:M,encrypted:y,compressed:G,version:Z,compressionMethod:R,extraFieldExtendedTimestampFlag:C,rawExtraFieldZip64:new Uint8Array,localExtraFieldZip64Length:L,rawExtraFieldExtendedTimestamp:g,rawExtraFieldNTFS:Y,rawExtraFieldUnix:V,rawExtraFieldAES:X,extraFieldLength:P}}function o0t(e,t){let{headerInfo:n}=e,{localHeaderArray:i,extraFieldLength:o}=n,r=Xa(i),s=64-(t+vi(i))%64;s<4&&(s+=64);let a=new Uint8Array(s),c=Xa(a);Ji(c,0,6534),Ji(c,2,s-2);let d=i;n.localHeaderArray=i=new Uint8Array(vi(d)+s),Rr(i,d),Rr(i,a,vi(d)),r=Xa(i),Ji(r,28,o+s),e.metadataSize+=s}function NZe(e){if(e===zt)return new Uint8Array;{let t=new Uint8Array(4);Xa(t).setUint32(0,e,!0);let i=4;for(;i>1&&t[i-1]===0;)i--;return t.subarray(0,i)}}function r0t(e,t){if(e!==zt)e=e&255;else if(t!==zt){let{readOnly:n,hidden:i,system:o,directory:r,archive:s}=t,a=0;n&&(a|=1),i&&(a|=2),o&&(a|=4),r&&(a|=16),s&&(a|=32),e=a&255}return t===zt&&(t={readOnly:!!(e&1),hidden:!!(e&2),system:!!(e&4),directory:!!(e&16),archive:!!(e&32)}),{msdosAttributesRaw:e,msdosAttributes:t}}function s0t({zip64:e,dataDescriptor:t,dataDescriptorSignature:n}){let i=new Uint8Array,o,r=0,s=e?20:12;return n&&(s+=4),t&&(i=new Uint8Array(s),o=Xa(i),n&&(r=4,lo(o,0,134695760))),{dataDescriptorArray:i,dataDescriptorView:o,dataDescriptorOffset:r}}function a0t({signature:e,compressedSize:t,uncompressedSize:n,headerInfo:i,dataDescriptorInfo:o},{zip64:r,zipCrypto:s,dataDescriptor:a}){let{headerView:c,encrypted:d}=i,{dataDescriptorView:u,dataDescriptorOffset:m}=o;(!d||s)&&e!==zt&&(lo(c,10,e),a&&lo(u,m,e)),r?a&&(ac(u,m+4,BigInt(t)),ac(u,m+12,BigInt(n))):(lo(c,14,t),lo(c,18,n),a&&(lo(u,m+4,t),lo(u,m+8,n)))}function c0t({rawFilename:e,encrypted:t,zip64:n,localExtraFieldZip64Length:i,signature:o,compressedSize:r,uncompressedSize:s,zip64UncompressedSize:a,zip64CompressedSize:c},d,{dataDescriptor:u}){if(u||(t||lo(d,14,o),c||lo(d,18,r),a||lo(d,22,s)),n&&i){let m=30+vi(e)+4;a&&(ac(d,m,BigInt(s)),m+=8),c&&(ac(d,m,BigInt(r)),m+=8)}}async function l0t(e,t,n){let{files:i,writer:o}=e,{diskOffset:r}=o,{diskNumber:s}=o,a=0,c=0,d=e.offset-r,u=i.size;for(let[,R]of i){let{rawFilename:G,rawExtraFieldAES:E,rawComment:v,rawExtraFieldNTFS:I,rawExtraFieldUnix:X,rawExtraField:Y,extendedTimestamp:g,extraFieldExtendedTimestampFlag:C,lastModDate:V,zip64UncompressedSize:L,zip64CompressedSize:P,uncompressedSize:N,compressedSize:O}=R,M=R.offset>4294967295,D=R.diskNumberStart>65535,w;if(M||D||L||P){let K=4;L&&(K+=8),P&&(K+=8),M&&(K+=8),D&&(K+=4),w=new Uint8Array(K);let ee=Xa(w);Ji(ee,0,1),Ji(ee,2,K-4);let H=4;L&&(ac(ee,H,BigInt(N)),H+=8),P&&(ac(ee,H,BigInt(O)),H+=8),M&&(ac(ee,H,BigInt(R.offset)),H+=8),D&&lo(ee,H,R.diskNumberStart)}else w=new Uint8Array;R.rawExtraFieldZip64=w,R.zip64Offset=M,R.zip64DiskNumberStart=D;let z;if(g){z=new Uint8Array(9);let K=Xa(z);Ji(K,0,21589),Ji(K,2,5),g1(K,4,C),lo(K,5,Math.floor(V.getTime()/1e3))}else z=new Uint8Array;R.rawExtraFieldExtendedTimestamp=z,c+=46+vi(G,v,w,E,I,X,z,Y)}let m=new Uint8Array(c),p=Xa(m);await zp(o);let b=0;for(let[R,G]of Array.from(i.values()).entries()){let{offset:E,rawFilename:v,rawExtraFieldZip64:I,rawExtraFieldAES:X,rawExtraFieldExtendedTimestamp:Y,rawExtraFieldNTFS:g,rawExtraFieldUnix:C,rawExtraField:V,rawComment:L,versionMadeBy:P,headerArray:N,headerView:O,zip64UncompressedSize:M,zip64CompressedSize:D,zip64DiskNumberStart:w,zip64Offset:z,internalFileAttributes:K,externalFileAttributes:ee,diskNumberStart:H,uncompressedSize:te,compressedSize:q}=G,de=vi(I,X,Y,g,C,V);lo(p,a,33639248),Ji(p,a+4,P),M||lo(O,18,te),D||lo(O,14,q),Rr(m,N,a+6);let ye=a+30;if(Ji(p,ye,de),ye+=2,Ji(p,ye,vi(L)),ye+=2,Ji(p,ye,w?65535:H),ye+=2,Ji(p,ye,K),ye+=2,ee&&lo(p,ye,ee),ye+=4,lo(p,ye,z?4294967295:E),ye+=4,Rr(m,v,ye),ye+=vi(v),Rr(m,I,ye),ye+=vi(I),Rr(m,X,ye),ye+=vi(X),Rr(m,Y,ye),ye+=vi(Y),Rr(m,g,ye),ye+=vi(g),Rr(m,C,ye),ye+=vi(C),Rr(m,V,ye),ye+=vi(V),Rr(m,L,ye),ye+=vi(L),a-b>o.availableSize&&(o.availableSize=0,await cg(o,m.slice(b,a)),b=a),a=ye,n.onprogress)try{await n.onprogress(R+1,i.size,new Sx(G))}catch{}}await cg(o,b?m.slice(b):m);let f=o.diskNumber,{availableSize:y}=o;y<22&&f++;let _=xi(e,n,_B);if(d>4294967295||c>4294967295||u>65535||f>65535){if(_===!1)throw new Error(I$);_=!0}let S=new Uint8Array(_?98:22),A=Xa(S);a=0,_&&(lo(A,0,101075792),ac(A,4,BigInt(44)),Ji(A,12,45),Ji(A,14,45),lo(A,16,f),lo(A,20,s),ac(A,24,BigInt(u)),ac(A,32,BigInt(u)),ac(A,40,BigInt(c)),ac(A,48,BigInt(d)),lo(A,56,117853008),ac(A,64,BigInt(d)+BigInt(c)),lo(A,72,f+1),xi(e,n,pZe,!0)&&(f=65535,s=65535),u=65535,d=4294967295,c=4294967295,a+=76),lo(A,a,101010256),Ji(A,a+4,f),Ji(A,a+6,s),Ji(A,a+8,u),Ji(A,a+10,u),lo(A,a+12,c),lo(A,a+16,d);let Z=vi(t);if(Z)if(Z<=65535)Ji(A,a+20,Z);else throw new Error(kZe);await cg(o,S),Z&&await cg(o,t)}async function cg(e,t){let{writable:n}=e,i=n.getWriter();try{await i.ready,e.size+=vi(t),await i.write(t)}finally{i.releaseLock()}}function v$(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function xi(e,t,n,i){let o=t[n]===zt?e.options[n]:t[n];return o===zt?i:o}function wZe(e){return e+5*(Math.floor(e/16383)+1)}function g1(e,t,n){e.setUint8(t,n)}function Ji(e,t,n){e.setUint16(t,n,!0)}function lo(e,t,n){e.setUint32(t,n,!0)}function ac(e,t,n){e.setBigUint64(t,n,!0)}function Rr(e,t,n){e.set(t,n)}function Xa(e){return new DataView(e.buffer)}function vi(...e){let t=0;return e.forEach(n=>n&&(t+=n.length)),t}function QZe({version:e,bitFlag:t,compressionMethod:n,uncompressedSize:i,compressedSize:o,lastModDate:r,rawFilename:s,zip64CompressedSize:a,zip64UncompressedSize:c,extraFieldLength:d}){let u=new Uint8Array(26),m=Xa(u);Ji(m,0,e),Ji(m,2,t),Ji(m,4,n);let p=new Uint32Array(1),b=Xa(p);Ji(b,0,(r.getHours()<<6|r.getMinutes())<<5|r.getSeconds()/2),Ji(b,2,(r.getFullYear()-1980<<4|r.getMonth()+1)<<5|r.getDate());let f=p[0];return lo(m,6,f),(a||o!==zt)&&lo(m,14,a?4294967295:o),(c||i!==zt)&&lo(m,18,c?4294967295:i),Ji(m,22,vi(s)),Ji(m,24,d),{headerArray:u,headerView:m,rawLastModDate:f}}function qZe(e,t,n,i,o){let r=0;return t&&(r=r|2048),n&&(r=r|8),(o==8||o==9)&&(e>=0&&e<=3&&(r=r|6),e>3&&e<=5&&(r=r|4),e==9&&(r=r|2)),i&&(r=r|1),r}var Q9i=x(T(),1);var d0t={};try{kp({baseURI:d0t.url})}catch{}var LUi=x(T(),1);var fUi=x(T(),1),Fu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function $Ze(e){let t;e({wasmURI:()=>(t||(t="data:application/wasm;base64,"+(n=>{n=(s=>{let a=(s=(s+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,c=[];for(let d=0;a>d;d+=4){let u=Fu.indexOf(s[d])<<18|Fu.indexOf(s[d+1])<<12|(63&Fu.indexOf(s[d+2]))<<6|63&Fu.indexOf(s[d+3]);c.push(u>>16&255),s[d+2]!=="="&&c.push(u>>8&255),s[d+3]!=="="&&c.push(255&u)}return new Uint8Array(c)})(n);let i=new Uint8Array(1024),o=0;for(let s=0;s<n.length;){let a=n[s++];if(128&a){let c=3+(127&a),d=n[s++]<<8|n[s++],u=o-d;r(o+c);for(let m=0;c>m;m++)i[o++]=i[u+m]}else{let c=a;r(o+c);for(let d=0;c>d&&s<n.length;d++)i[o++]=n[s++]}}return(s=>{let a="",c=s.length,d=0;for(;c>d+2;d+=3){let m=s[d]<<16|s[d+1]<<8|s[d+2];a+=Fu[m>>18&63]+Fu[m>>12&63]+Fu[m>>6&63]+Fu[63&m]}let u=c-d;if(u===1){let m=s[d]<<16;a+=Fu[m>>18&63]+Fu[m>>12&63]+"=="}else if(u===2){let m=s[d]<<16|s[d+1]<<8;a+=Fu[m>>18&63]+Fu[m>>12&63]+Fu[m>>6&63]+"="}return a})(new Uint8Array(i.buffer.slice(0,o)));function r(s){if(i.length<s){let a=2*i.length;for(;s>a;)a*=2;let c=new Uint8Array(a);c.set(i.subarray(0,o)),i=c}}})("FQBhc20BAAAAAUULYAF/AX9gAn9/AIEABYAACwIDf4IABwEBgAARAQaAAAuDAA6BABUDAGAAgAADgAANAQSBABUDAGAHgwAegAAfEgNCQQcABAEABAgIAAIABQIKAIAAB4EAAwEFgQAHAgICgQAHEAEDAAUGAAMDBQQJBAQJAQaAAAEeAAIEAwIEAgIBBAcDAwQFAXABDQ0FBgEBggKCAgYIgACYIkHQ1QQLB4oEHAZtZW1vcnkCAAxpbmZsYXRlOV9uZXcABw2GAA8HaW5pdAAIEYoAEAdfcmF3AAoQhgAUCXByb2Nlc3MAC4cARgZlbmQADhaGAA8QbGFzdF9jb25zdW1lZAARC4QAGYMAbYUANoMAbAEShQBYhwBrARSFAH+DABMHZ3ppcAAVD4UAFIUAfgEWhgBWgQB9AhgVhQAOjQB8AmRliQB8hQAOggB8AhoQiQAPggB8AhsRigATggB8AhwPhQAUhQB8AR2GAFaBAHwJHwRmcmVlAAIVhQAVjACDCgZtYWxsb2MAAQuCAFUKaWFsaXplAAAZX4AADxZkaXJlY3RfZnVuY3Rpb25fdGFibGUBgAAcG2Vtc2NyaXB0ZW5fc3RhY2tfcmVzdG9yZQAFHI4AGwJnZYAAbw51cnJlbnQABiJfX2N4YYAAWwRjcmVtgAASBl9leGNlcIIAXQZyZWZjb3WAACUtPQkSAQBBAQsMACEiDA8XGR4+NTg7CqHlAkECAAu/JwELfyMAQRBrIgokAAJAjwACEiAAQfQBTQRAQaQnKAIAIgNBEIAAEgYLakH4A3GBAAkQSRsiBkEDdiIAdiIBQQNxBIEAMgYBQX9zQQGAAB8GaiICQQN0gAAZDMwnaiIAIAEoAtQnIoAABgQIIgVGggBSCSADQX4gAndxNoACphEBCyAFIAA2AgwgACAFNgIIC4AASAMIaiGAADcBIIIARoAABQRyNgIEgQAPA2oiAYEATQMEQQGBABIHDAsLIAZBrIIAnwMITQ2AABuBAIYEQQIgAIEANQUAIAJrcoAANQQAdHFogQCjA3QiAIIAj4AAH4IAj4AABosAjwUBd3EiA4YAkQECgQCRAQKEAJEBAIAAaIMAhYAACgJqIoAAjIIA3wUgBmsiBYMAjIAAGQIBaoEALgoAIAgEQCAIQXhxgQBuBCEBQbiBAKAEIQICf4AAZQEBgAAZBwN2dCIHcUWEAHgCIAeAAD6AADyBAHWBASEDCyEDgQDpgAB2gAAchACEAQGDAAeAAJyBAIuCARyAAFYCIASAADmAAP6CAHWAAQsCQaiCAQkCC0WAAQkFC2hBAnSAAOYDKSICgQEuAnhxgACqByEEIAIhAQOCAagFKAIQIgCAAIOBAAoBFIAACgENgAB+gAEQhAAqgADZgQFuBQRJIgEbgAA2gAFJASCAAAmAATgBIYEApwILIIAAVAMYIQmAABaAAAkEDCIAR4AASIAACgEIgAA3hAHGgACxAwgMCoIAKQUUIgEEf4AByAIUaoABU4EAdwMBRQ2AANkOQRBqCyEFA0AgBSEHIAGAAZoDFGohgAIFggAwAg0AgADlARCEABCAADEGDQALIAdBgABbCAAMCQtBfyEGgAAfA79/S4IAJwELgAISgAC1AiEGhAD+CAdFDQBBHyEIgAH+ggDygALEA///B4ACxoABwQEmgQJYBnZnIgBrdoICpQpBAXRrQT5qIQgLhALxAQiFATUBAYEBngIAIYECCoEAB4AAPAEZgAAdAwF2a4AAVwgIQR9HG3QhAoUBSYUBNAQDIARPgACTAQGAALcDAyIEgACGAQCAAH8BAYAARAEDgQI/ggFoAQOAAdOBAtQGHXZBBHFqggDcAkYbgAAdAgMbgABkAQKAAI+AAWSBAO6BADECBXKDAIQBBYACzwEIgQK7gADugALPAgdxgQGuAwMgAIUB4QEhgAEdggHAgAFMiAHCAQKAAb4BIYAAbIEByYMBxAEFgQAJhQFTgAGTAQGDAW8DCyIAggByAQWAATkCIASDA02AAEGBAMsBBYEB5wEIgAA5gAAJhAHngAAKjQHngAKTgAAWgwHnAQWCAeeAAA+EAecBBYIB54ABK4ACeoAA+4MB54IDgIgB54IAEIQB5wEDgwHnAQeHA9gBBYEEgoMDQ4AEpoAAjYECnwNBEE+AAI2CA4uAATKGA4ECBWqBAJOAAFeFA66BA1WAABeGA7sBBYsEQIABX4AEJwEhgAHlgANGgQA6gQNWgAN0gQCZgQNlgAJvgABKAbCCAIgCAkmAAIgBsIAAH4IAgYEALAK8J4AAA4EAG4MAiIEAN4kAjYYEMYUAS4QCSgEvgAQ/BQJ/QfwqgAA7gABTAoQrgAAIgQJoBYgrQn83gABXBoArQoCggIAAAQEEgQAOEfwqIApBDGpBcHFB2KrVqgVzgQB6ApArggEnA0HgKoMACAaAIAsiAWqABaKAAZMBa4AEXIEEmQVNDQhB3IEAZAIiBYAAZgHUggAKAQiABKMFIgkgCE2AAUcFCUlyDQmAAvmAAEUDLQAAgAKQgAJvhQX6hADYgQA5BOQqIQCDAlqBAD+BAY2AADwBCIICagNqSQ2BAtuBAhKCAkMEQQAQBIAFdwJ/RoAB+QMBIQOAAMmCAR0BQYAAk4AD+4AGIYEC/AFrgQVTAWqCAs0DcWohgABAAQOBAKsBA4QAq4EBEYMAq4ADRQNqIgeAAHGAAUoBB4AAqwEEgAAqgABfgAFjBUcNAQwFgQA4gABMgADrgQAWggJCgABTgQCVAUaABP4BAoIDFYEAioABCQVBMGogA4EAuIAB7QMMBAuDAXGBAyADIANrgQCJBwJrcSICEASDAC6ABWWAAJaCACuAAJyAAM0ERw0CC4EBaAHggQCWAkEEgQWsgAWohADpggDygQBoAXKBBSQDTXINgANTgABQgAPoCAZBKGpNDQULgADOgwDRgQDPggGsAdiCAA4BAIECTgLYKoEDSQEAgQGFgwFxAQSHAXGDANOBA2uAANUCIgWAANeCABKDAWuBAMcBtIMCe4EBSoAAewEbgQQtAbSDAr2CAmkDQegqgQYwAQCAAFCCABUFQcQnQX+BAAgCyCeDAnuBAAwB8IMCQIEB4IMGz4MHsIAGUAHUgAMQgQZYAtgngQUngAC7A0EgR4AAeYEDAQQDQShrgAAQAXiAAOkBQYECa4AB3oMDDoQHoIIGzoADdIUDCAQCakEogQNsBMAnQYyBAXuBA+CAAc6AAYEBTYEGZAJLcoMA2gQMQQhxgQAKgAHZAgVqgQAwgABRgATNAiAEggBmgAhRggN0ArAngwOPgQFPgAAtgACJgwBvgAClggBvgABWkABvAQOCARMCDAaDAAeFAT0DIAJLiAE1gwH7AQWCAYACAkCBBpmEAYKBBPeEAXoDAQwCgQWcAi0AgQCtgATgAQuEAa6BCSyDAa4BBIECaYEHPIICjAMiBUmEB1kBCIIGTJQBQAEHkAFAAQeZAUCAAGICBUGAB/iBAEEDakEvgABPgAAoAQSABUyACZQDAUEbggksCUHsKikCADcCEIAACwHkgwALAQiAABSCCVuBAHCNAiCEAgyAACABGIAEr4ICE4AAmIMEv4AABQEEgQmQgADPgQL+AyAERoEG6YMFSQF+gAnDAQSDCC+ABnaEALaCCMEBAIAI8gMCQf+BCkOAAAiECQ+AABWEClCABSqBCd+ACQ0BAoUJDYAAEYIJDYIJgoEBNgELgAbDgADagQkNgABggAZ1AkEMgAWyAQiBBS8BH4IHMwH/hAfdAQKAB92AABmQB92AALGAAMUGNgIcIARCggEPAQCABzkDQdQpgAmaggTrgwg3gAKvgQo1AQOCAIoBqIEJlwEFgwmXggllgQCPAQKACAOAAFWCCAOACGKBCAOCB9aAB6KBAi2BCt2CB3wBAoIDqoAH44EHbIEH04MDDoAH8AIiA4EG5wEFggbngQBXARCBAJqAAe8DGEEIgAcEAgQigAgsAkEMhQoHgAHTgQDwgwCBAQiDAMOACNWAACMBGIABAgEMgAA7hAbsgQLygwRHhAapgAZkAU2ACH6AAmqBB8ixBquAAyEEoCdBMIEAOYEDMIIIwIMHFoIC14ADKIIDa4UCwwFqgAYZhQBCgAmMgAaDggAVgAUFAiAIgAbsA2shB4UE4QIgA4ELboED2YoDzAEHgwUbgQDlhAvYgAHgggfzgwAxhwrrhAifjgAxgQIlgwEGgQFAgAFogQWXBANxQQGAAD+AACSACiABCYEAFoACPYIM14MClIAAEYEIzAECgwwCgwKWgAwGgAA5AXaDDJgBAoEC7IcLg4ECd4EANQMYIQaAAEaABC+BBBqCAEWCAR+BACaBAaWAACaAAB+AABiAC1iACRMBA4IJE4IB+4EJp4AAEIEJE4ALh4IKKoAGiYEJE4IEMIAAMIADV4ELGoEJuYIAMYECLAEFgwkTggqKgACSAQaACaiDAGABHIAA5AECgAW2gQoGggEpgAF+gALYgwGrAwINAYACyIMC3oEA1YUA0oEAOwIgBoAAXYEAMAEGgQAsARCBANeCAAoBFIAC5oIMCoAI5IACl4QAtYEDXoEA2YADOoEAJQEYggEEggw0gQJFgAAZARSGABkEByAJaoALzwEDgAAHgQLtAQSBA32AB02GBCSFBNWAAAoCaiCBBPaAABKDAYwBB5MEIAEHrQQggwMpgQAHhAGxgAQoAQKBAGaEBCgBB4AEKAEHkgQogAFbgALUiAQogA8mgwQogg8dhAQoggS1A3QiBYUEKIAD24MAkoYEKAEHgAQogAUHggQoAQKEDCuCBh6DAfSBDnaCBCgBB4EEKIEMC4EB7YML+4EFfYEEKIMLQIIB/IYEKIAA1gEYgAAHhADkgQDyhQEEgQZ2gwuPgwQqgQIvgQAriAEIAQuADLWCA9qCAgABCIMCQoAAZgEcgADQgADOgAJsgAJCgQ8KgACKgQJCggNdgAbvgQDiAQeEDxmBAa+DAECACgCEAkCACgiEAkCCAAqAAkCEDkoCIAiBAISDAMiCC6mAAIaABomCAMaFDC+BAkCCABkBFIUAGYAAXAMEQQ+DCmMBBIEEqYADi4cLuYMEfYYEIYEMCoQAH4AACoEEb4QAHIEFXQFqggGPgAASgwJegQFxkAJeAQSiAl6BD3aAAByAAAcBDIECzYMAB4cCXoIAZoQCXgEEgAJeAQSVBoaCADwDHCADkQaGgQMaghC1hQJYgAK0hAaAgQelgwBxARiBAJgBBJYGh4MCX4UP74AHo4QGh4IJHYEAJoEF8oECXwEHhw9VgQBeARCDEGiBA9iFAOWBAPOCBvSDBN2CABaDEH+DDaGABBuDBPKCANSBDgGDAl+CBPoBCYMCX4AAPIQCX4AB74ACX4EFZ4AAKI0CXwELgwJfhgJdAwIgCYQCXQEJhgJdggAKiAJdAQmBAIKDEEyPAl2DEHOZAl2BC/uKAl2ACXaNAl2ABQKEAB+AAAqAA5KGAl2AAm6EAl2KEeaBDjqCAYWAAmGGEeQBIIMIT4gR5ogCW4ABO4ICRoMB3IEH6YICW4IB8QEIgQb/ghHXgQ6ZgQBugQiAgQFjAQuADg4DEGokgABKBgveCwEIf4EGz4IA7AJBCIEMd4AJqAFrgwLeAXiBCzQCIQWCE5QCAXGBCa8BQYACXYEGgIEFv4AAIoAAL4MLB4AKo4ISvIME6IAE6oQHeoQG3oAHNIAAPIQJxoMG7wEEgA0ViQcygBMMhAcygQ2YggchigcfiwdFgQ3KhRAwiAcdghAwgwcdAQSAAsoBBIISF4IHHYABhIUQMIIHHYIAEIsSF4AIo4ACZoAJQ4EH9QIDR4AOUIABOIICZ4AQ9oQGf4EBHoMBxIIUbQIAD4QF8YEAmYIFUIAN6Y4HYoICwQEEhwdiAQSWB2KJAsWrB2KBAsWCARyBAsWIB2KCAsWCABmBAsWFA6MBBYQRmoEA7QEBgAHShhW7gwHigglggQHAghTZgAlrggvlhglrgA1IggEXhwENAQODAfACRw2BEXGDEE8BuIMACAEPhAmFgQ/4hAmHggBNhgmHjwBNgQ2YhQFdgQKEgAAjgQw3iwJGghJEgAF7jAl4igJGiwGagAIzghKMgQJXAQWIEoeJAleDAgOREoeAADS0AleAAg2RAkCGAOaDDlmHAjOHB1ODAjOCB1OjAjOABsSjAjOGB1WMAjOHB1WOAjOOALiAABQBCIAPz4UDJYABrYULFIELLIMWt4YHKoAE+oILFIAUhIUEz4AG9I0WtYQGq4AICIUGRYIE1oMGIYACSoEJh4AAZYQHKQEAgAcpgASzgAcpAQGDBymAAsyGCYeCBlyGBymGCYeAEzWAAucBf4sJiYMXSIIJiYMFYoABqIECpIENJYMJIpEJj4ABnoAVnYECD4YNtwEAhgmPgQzagxWKgAG7hgcwgBXRhQcwgQBdgAu9gAfpgQD3AgMihgEGgALVggD8gwEKgAAngADjgRRhAQuAAnWBEF6DBjiEARqCAY2CD/qAEZoBxIICEoAFlIASTQIgAIAPwYATTwSMCwEHgAANgQWagAXHgxBjgRJ3ggXOgAEWggXOghB3gACOhAhIgQAmgRKBhAaPhBC7AQyABm2FD4mAAZGRBcOBD4mGA32AACKBA2yEBgSCADCCB/6BAc+BGJmBA5CCDLABBIADbIEV04QWVgEEghaZiBXzAQeAAWGBBeOAATCCBNKAAUWCBeODABCFAVWLBcOAAIqHBcOCDuKAFD2EA4OBBsaFBcOBABuCBcOEAJmHBcOAAEqEA5CAAJYBHIAAUYYDkAEAhwOQgwlXiwOQhBqPggOQgA8VhgOQgQH1gwOQgAAKgAOQAQOCA5CABeWBA5CCAPoBAoIBWoEDuIMJKIADd4IBIYADuoEB8YEDx4UAGYYFr4QA7pEFtIIFhoYFtIATf4QW1oYPsqkFtIIAH4YFtJAATYEauIQBToERp4ICTYMFtIcCN4QFtIIPj5UCN4sBi4cFtIAGtIYFtIsCSIUFtIECSIgFtIACSIUFtK8CSIIFtI8CMYYA5oMFtIcCJIIFtIgCJIgFtJ0CJIkFtJoCJIIA1pACJIIA/ZACJJEAuIENVYQFtIQBrYUHUIEHaYIFtIAcY4YdrIEVzIEFtIAII4UM3oEK0IAEHoUL2YEM3oMQsoUKfIQQx4MKmIIFtIAErIYFtAEBhhtAAQKDBbSBBSeCBbSCEiGAALkDHCAAgwW0AQOFBbSAEW+GDzuBBkiAFmWGBbKAEAWDAJGEDBCCBq+CBUuABbOAAMGCBbMBA4MFs4ABH4EFs4ICDoEBqIIFswEBgQWzAQOBBbOBAAeABbOAAnqAAJWGBbMBAoMFs4QQu4AClYIBWYQA6oMGl4EGCoYa0IMTZIADXYIM4oQTgIMBDQMLC0mBBxEBkIMGe4EVGwFqgQtiAQKCCzWAAHSCA1CCF4UDIAA/gAUCAXSAHo2HE0UBf4ABTAGQhAqQAwELBoAALQYkAAsEACOAE7MCAQGABtUEQcQAEIAQGYMLyAIEa4EZj4AMOoIADoAGHgMA/AuBGM6CBWuAASMBJIEHjQU2AiAgAIASGQMLCxGAACaBAVEBfoIHxQsQEAkL2QIBA39BeoAHMARAQZQIgQBNATGBAjgBfoEcBYQAVYQEuAEggwJ8gAAKASSEAAgKKEEBQdg3IAIRA4AGVoEAVwF8gQBXgweQgADmAzYCOIUBrwQCQb/+gAAJgABlBCAAECODFg8GQR91IgNzgBlXgQKAgBQFgBYugwLSASiDDnwCdkGCGfoEAUEAToAeWYEfa4ABYIIAPYIAXAM0IAKBAj8BLIkAFIAA54EAB4ABloEAG4AI1YIN8YAAX4ADhgEwgALIgQAWATyDACsBJIAAB4AbNYIOHAFCgRtAAXCCCD8BQoAAqAE3gQ3IAkKBgwAUAcyAAOCAACsCtAqCCr4BcIMA0QFUgwAHAlBBggkNgAEJgxmBAyQRAYQBMQEcgAIsjAFtAXCAAW0BEoIB+oEA5oIXlAgEEA0L/SQBIoQhWQIUJIEBeAEZhgEkgQeMAiIShAFsAwQhE4QbV4ECNwETgARnAwAhE4IAfYEEkAHcgAs6AR+AAKcF9AVqIRWAAAgB2IAAEAEbgAAIAfCAAAgBGoMAvwIhFoEAIIAAEAMRQZyBGBkEIRxBmIIACAQdQZQrgAH4AiEegQM2A0AhCoEABwE8gQr5AUGAGDIIAkkhIEF9IQ2AAA4GBkchISATgQIYgQMvAxchEIEY+JEiCpIAAoEJjpEiNoEQgoAiGoABdxdrDhMEBQYHCAkDAgwNARkAGw8iIhQhIoIEfwVMIQYMGYYACoAW0IAACgFsgR5MgQAIASKAC9YDKAJggh8wAwxJG4AAIQQGCyAggR/agABWgAZSBA4hDQyAAZGBBMYCDQ+ADxICCHKAFeABCIEEAIIXjQMKQQKCBrQDRQ0OgRqIAWuBH5KAARADIAp0gBR4gRSggBrSgAAtAwkhCoMgzoERfoACUAMIQcGAAF6AAtKGAMuAABgBdoIWRwZrDgMAAQKABOgBHoENdIIfmAUIA0BBkIAKBoAP7QGQghokARGBICIFdGpBCDuAAjSAAAuAIFiBAF+AACcCgAKAH0YBBIAAB4MAJ4AFCYAAJwEJgQAngAALgArZhAAnApgCggBOAZiEACeDAE4BB40AToAANAGgigBJggBwhwBJgSB3gAIIA0GgK4EEewKgPIMACQMgFEGAETYBDIAFgwERgAA/gAAXgAARBwxqIBUQJBqCAFMBIIkAUgEFjABSAZyAAE4BPIECqgEcgwBKgBCZAQyAIJYDEUEgigBJgAJ2A0EBOoAEcASgKyEdgQFXAR2AA1GAA3gBiYADeAHQgAOEAViAABOAAEKAA2sCQceCBDwCQQGAAqMBIYAKNAQKQQNrgAKngRXuAiEHgQAdgQg2gSB6gAERgQHsBB8LQcSBAZuDC9ECwguBGTQB0YEAEYIcR4AASoERF4gAQ4UAPQIMGoEAGYAX/gEFgAYIAQqAGJaAAByBGa0CQR+CE66CB+mAAh+AAXaBAh8BBYQCH4MBboMS1AMFDAKABWeAAVKBAhsBBoAAVAEKggCRAR2ABZOBCHID//8DgB6CgAAJgCT3AhB2ggsuAkHdgxKfgQChggqqgAJmBBoLQcKCAEABAoEACIMSVoAE/gFEgABagAi2gABUgQOMgAQWgQBbgACzAwJBw4IAJoIC4gNEIgOCCDmCFNiAG+ACAyCBE7EBEIEACoECiYAAKoQDEYAAOQESgBWIAwMQJYMjmQFEgAWJgABkgAAtBBJqIRKBADYCayGBADuAANaBGlCAAA4CBAyBEzCEBckCDBeACNOCAz0CDUuADFmNAR2FAzyEAR2AA3QBaoMDP4IBHoEBnoMAhoEAUoABEAEfgAEXA0GBAoAaKQFkggAQAgV2gAATgAA7AzYCaIIAEAUKdkEPcYAcVQEigAkgAWCAAE4BDoMBvQEOggG9AkEegiHeAkGhigFKgAChgAAMAcWDAjoCACGABCOBBZgBbIADE4ADqgMGIAyBCpsBE4AACQcGQRNNGyEJgADLAwYgCYIN1oAAE4EhHoAALYAC44AADAV0LwGwDoIC6gEAgQLqAQOABGABAIEHZJgESQEKowRJgANhgBrygwBpgAAMhgBpgADbAgdxgQBsiwKnAQSAAMaFAquDAEEBFoMGi4AAB4AGmYEdgYEDNYAADoAGmYADcAUTIBogG4EDbAIiDoIBIQG/ghdnhgEhARaBASEBxoQCYYIBHYABKAEOgQ6AggJKA2QiD4EABwRoaiEMgADcAQuABVqAATKAHaMEKAJYdIACwQEhghVUA1AhIoABAQEJgACbgAOXggEFASKAAzwCGHGACdIHaiIjLQABIoADBoAfOIEK4YEWDoABFYABAYkDPwEJgQEVAQmFAz+AANeAAZ8GIy8BAiIIhRV/gAj3hgEmgAAMgAEfggTEgSPbgQEcAiAGgwEcAQuBFlABf4UGaIACegQQaw4CgAWHgSOUgAl6gg/AhgCMgBAwoQCMigBlAwUgC4IJsgJBh4sDswEJgAGTAQOAAvmAJpuBBmeAAgaBADOAJYmBAJiAJE2ADqCBJp2BALsDIBFqgAAeAi8Bgg7AgBYzjQCXARuoAJeEAhuAAJqACyyDAiCAAjaAAFSCDFiACnOMAFwBGqkAXAEHiABcAQeDAFwD/wBxgCc/gCeGgQIiAwQgDIAAKQILaoACFJYBEYAD3YEFPoIGKoMBuAEEgQG4gQHPgAJigwMhhALIgAWjAWyAF7mEADiCABQELwH0BIMBbwKUCooCtwEVgQK3gABxhQLrhAMAgQasAiAPjALyAaOLAvKCADuABEMBXIME8wFwgAM+gQaZggLuggChgQLwgABDAR+IAEMB8Y0AQ4QGcYYGloADNIQFkYAACwENgwBkAciFBZGBA1cC0DeJAzeCA1UBUIADyosDNwEMgAFugATjgQM3AQuLAzeBJuahAbgBC4ADNQIhD4AC+oAAQIAp14ELUwX/AXFBDoEARwMGIQyAAJ0BBoECGgMMIA+BAGYCIRiAAJUBBoABwoIAlYIBqQIgGIAAhAELgCgPAXaCAIcBD4EAhwEMgBjPgQHkgACIgAR8pwMzgQdCggOYgABGAQCAAe4BD4IAnYEB6wEPgQZlgAVkAiAMgAXeAtA3gAAvAQyDAmwBDIEALwELgQC0gA/SgQP5AkHNgwFzARGBGscBIIEmEYUGfYAACYAknQLQN4MAGwLAAIEAHAMAQdWBB+mHAaqAABwDAkHJhQdAgBnNAXGBBj4BTIUCZoIP0oAGoYoBhoAAvIQA7oAIUqIA7oICSYAAxwEGgwDOhAdLgAfiAiAGgQFagA5dAQyBAPGLBK2FAumAKDABEIMKHwEQgQDthAcUARKBB5qBAEeACR2GAkwCIBCBAI8DECASgQCCAhIMgh3lggebAQqBHJiAAdABCoIHWoAFz4QARoYAIoIAGIAHCIQAGIITBYUAGIIAEgEOlABMgAE8hAA0AQ2AAk6AAAeBC3cCQdCDAI+GCSGDCTIBCoQrvwJEIYIik5IAUIAAyYQAUIAA+AMCQcqFAZuAASEC1DeAK6mBAEABXIMCj4EACwFUkgMkAQuDAySCAp2HAySAB2miAa6CAoeBBmKBApcCIg+DKhiCAcGCB5SAAGIBC4gDHQEPgwMdAQ+GAx0BD4YDHYIDpIgDHaUCL4sDHYUCO4ACGoEDtYAEHIIDxYAAiAEhgAzCgQMlAQqFAyWJAj8BD4YC8wHxigLzhgJYgCsQAwJBy4UBYAEPhgL7ggVpAUiHAwKIAV8DIAYEgybGhQMBgRnrtQMBAUiJAwGBAHKSAv+BAKUBzIQFKYYDB4AAEYQCJQEGgAfOggBNgArEAhcggA8fAQmAAe2CGy4BCYEcvIAAGgEwgCS5gQAIAsw3gxCpAfyLBikBB4QAQQE0gCrEAQOBANaAAAyAEJEBKIAQM4MARAFrggcrggAWgAAiAWuBBtyBE1qBC0WBFIcDBkkbgQAgARKBCvyCLo2AABeBHYmBAZiHC1cBCYILNgMJIQOAAT4DEiAFgAEtgQO3gwOngQblgQf7gQFKAiIDgRJgARCAAHmAA8aBAE2AAWKFA92BFP6SAzOAAcSEAQ6BDLSFABuJA9mAA0aEACKACFKIB0GIBA6BABaEDIqBEZ4BEIMS4QEShiIFgRQ2gAblgRF9gAFBgQlygApJATyHD58BLIABXQQQIBdGgAhVgAP9gCmBgRG8gBgSgSYJgAARgCsIhBCHgBVdATiDBbyCGDeAEh6BFXACKHSBGhKAEj+BEiaAAG8COCCBFbGCHLUDLCIFggAugRGXATCCMO+CADCBKiICLAuDAfWAALuBA6QBBIEBXANrIAWADK6CIFMBNIMemQEsgBHXgwRwgAANgAHoAWqBDNSAACeBAd+AASWBASkGSSIJGyIEgAA4AQmBAGqBAeyBDPeAKH0DBGsggQAXghaAjABPggANATSAIhiACoWAARyDAKsCCUeAGWmAACmAAniAAJYBCYEdWIENZ4EpH4ASW4IRpAIIIIIRpAEEgABcgAAWgRrdAReDES2AEuSCLQUBFIAAF4EVt4ABVgEgggA6gBKxghF2gAPSgRpygABDBBtqQYCAEdyDERiCEMIBRoEAE4ASrYIUOIEOEoEwBYEIfoAAGYABKQcgDUF7IA0bginVAQ2AAJMBF4AAHwENgACZAROAAAiAAagERhshGYMokQHSgwiwAnwhgBFJARSDIBcGGQuUCQEMgBQrhhKngAEhgAjQgAAHgBMngAM0gANCAQ6CB40BEIIatwMCQUCAAY6HJ++CC3OAM+kBAoEz6YEozoEz6IAEwAEOgSBggCGaAQSABWSABh4BDYEFcoEUpYAASgELgADJgSBEAQuADc8CIA2BC+IBCYAEEwQNIAtrgy1rgAmIAU2BLUWCF5sDCSANgAx/gQjUgwArgQAngAGUARCBAEEBCYAAFQEPgBFgAnJBgSOIgAT9gAjNgCFFgCFNggAPAwwgDIYho4AEeQMIEAOBI4GDGTmCDf2DGS4DDWoigABVgABykwBQAQiDAHOEJoqBKSaFK36BAzKBAFKDIP+CAFKDGTOAAFIFCCALSQ2BKDyAAAmBAD2CBmeSAGABDYYm5YACU4EAOYIm5wEIgSUzhCssgyLSgQA5AiAIhQA7ggAsAgcggBa3hzCagRAagAeogBnCAQ2EIgmCJYOBBtWBAYiAMqwBcYABNYEigoEAooALkoEBRIAABwFrgASngAAiAwwhCoINNYMYJIAAEQEIgABhAQqMGcCBIqmGKOyAAB+BBEOABdaEI/+AADUBGIEUFYAAEwEMgRDchQBFigAmgAAfgAAYAxQiB4AWoQEMghnEgAAPARCBM4gBAYAAEIEZxAENgAVJAQ2ABLMDByIKgRnEgAEiggAwgANvgSLMgAAQAQqCADGBBU6AA56EAYaAERaBBkWCGaOAAFEBHIEA8IAYPYIZo4EBnIABZ4EZo4AAjIAAR4sZowEIiBmjAwwgEIQZowEQgQAsghmjggAKgBmjAQqCGaMBCoEFQAEYhAC1gAAoggDZARCDAQ2AEM2DANyBBo+CABkBFIYAGQESgw7OhAHKARGHAgUBEYsByoMB75ICigEShALajgA0gAIQAhIQggX/gAf5AgcLggCYgCi2gQbegQRJgBgtgSVlAxpBfIArbgEOhCPzgBBTAnEbgilIgQBMgRD2AwdLG4IAOgYJIA4gB/yAOmaAA8cBEIADFwILIoEEAocX2wE8gAAHAQ6ABceABA6AAC6ADPwCIAKDAC6CBk2BBluDF6qBACyBBluBBFODGbKACAYBEYEk9YEAHIIFKIAHO4EF24EFI4AMrYAaOYEf2gUYdHILCIEE6gUFEBALS4AZSIEXDgQEf0F+gh43gCExgQZmgQB7jRd4gAAdgDOcgwAXggZyiBePgRj8AR2JF48DIAERgAengQCcgADkBQAQAgsQhAAehBfSAUCMF74FDxATC9KBGSuHJUObGRiBCQyhGRgBtIcZGAEmgQ5DgC0QgAEFgApqgAYFA0giBIATuANBD0uCGwwDQYH+gAVDAXKIGSaCGR6CGSgBIIEAKYMZIYAARo4ZIYYAFI4ZIYAZXZ0ZJIEbaYsZJIAAtIoZJAHEtBkkAkF+jAFmAXGAAWaLABIBH4AAEowZNgEGgBk2BIBEASOEGTYBEIIZNgEXhQFCgxk2AQyEAYqEGS+BAm2GCKeCB1oBA4IHWoIOVAHAgwcYgAAHgRybgRj2AiEdgAAXgRlTgBkTghlTgAe0khlTgRlrghlTgxk7gBAWgxk7gggFARyFGSsDDiESiRjzgRSCgBlTgiGmpRknwwACgAHmgAG7A2sOH4IZZxszNDU2CgsMDQ4PEBEDAhQVASQAJhcYBD4/QEGEGWoDCwwkhgAKgSRZgBlsgw5aghl2ghopgxl2AQqBB/aBDkmAABIBDIAMGQEygwAKghZ0hgFiAgwzgRBnAQaDBQmACgQBN4oWMgEGixYyAQaBDGKBELGBEP+AIPWABKsEn5YCR4E45oEAWwEogwBZgBBNASiBBf2ABMKAHPyAAAICECeBAwcBHIAPLoAALgI7AYEpLwEQgABKBEECECeCIJ8BtYgXUIAEFYAAYgEzggCrASSBNr6AAlyAEFeAAwSABT0DdEGAgANugi39BWpBH3BFggMhggjBAwBBuYsMaIAAQgEHgRafAQiDF9EBh4AO0I0AHgIEdoEDxwNxIgmCDTiADUYCB02CAMYCIgqABwcBCoAMXYEpvgIoIIAhFgQFT3ENgBaXgAWmgjq4Aa6LDeEBA4AUYwEyiwFGATakAUaCC9aABpCCEhWTAKuAAbYEB0GAwIE9nYAAHQHYixL5gwHTASSEGF+BARiCBDKBNo+BADaAOBGBBGSBNOyDAAuAAXcDOgAIgAc+gQArAjoAhDv/gQGagwGPgh0kAwJBtoUTRYEIwAEGgwDbgxlvA0UNNaUA24gAmIEOToEMtwMtABWCJPSLAJSCCIaKAIoBBIYAigG3kACKhQFlgAwMrgCKgAD3gyK8ggFzgSAWmQCYgQKskwEiAbiLAJiBACSAPBsDQYAIgQGnAQeCERmFAKmBAASLAKiABLyAL4CKAKiDGqKCFq4BNoIamIICfYATlIEAvIENJYAP34EI8YIDV4AAaIEAo4AFvIUArgEogACugBvykQCuAgwohQECgQAngg2oARCAABSKAdQBMqcCr4AICoECWoADh4ADj4A8y4ECc4QDlQQYdnJygwPpgghuATCAAScBvo8BJ4EQVYMIrYEIloAC7I8O8YARF4UO8QRBAiEXgAEShgRKASiMAGGDFHsDCyAdgB8UAg0vhB5PgRohjBoGgBhuhBoGAQ+KGgaFAOyGGgaHAOmkHk+BHkeABjsCpDyAAE+BDG+BHWWCD+7/HlyXHlwFqDxBsDyCJqEBzYAABIEACoACM4keXYAAGIAAEoAeFQMUECmgHl4BrIAAUAHNggfagikfARCJHl+KAEuAASiCHmCBAdIBqIEBK48eX4AAQoceX4MXxYE7jIAR8AEGjR4bATKfHlSTADkBKoEAGYQeVIAZlrceVIAATgMGDDCpHkoBBoEAfZMeRAEGhBizAgwtnh5AAQ6AAAoBDoIeQAINLIANIZIeMwEMgA+mgQApAWuAEDyLHjOBBBOFHjMBJ4MEC4IPyoAECwErqAQLkh4hgTmHjx4jgAGbAWCAAD+AHiOBAYyCHiMEBUEeSYEl+wFNhQfBix4qASeKHiqACNeIHiqAFZqDHiqAGWGCHiqDGCcBC4MeKoIcm4QeKoEa440eKoBFTIEeKpgEJIAbR6EEJAEKgQBpgAS0gQBpgAAMjx4qiwJ9AQiAAMaLHioBFYMLkYAAB4geKoAADoALnwIhDYgeLoADOgIiFoIBJYweLgEmkR4ugR5DiR4qgQHhgBGrgT0piBrzARODGvMBGIYWcAEGggEFgRdSARODF88BGYEXT4AdNIQXz4AAvaQeKgEZgR4qhjOpAQ2IASaAAAyFHHIDBSAKggEcAiAKgwEcAQ2LHiqAPQqFHiqAHbyAAn2CAeIBCIQXCIEUcaMX2ocAZQMFIA2eHiqAFOGAAgaBADOMHioBBIIAu4oeKoAgB40AlwEkqACXhAIbgACagBEXgwIghx4qgBnHjQBcASOpAFyAHiqGAFyCHiqAEkSEHiqAA04BC4AA8oEVnwENmx4qggglgQUNhQG4ggZKgQHPgBHwgwQmhALIgBLdph4qASWIHiqBAuuEAwCIHiqHAu6MHiqCADugHioBHogAQ4weKoIAQ4YeJAEWhx4kAwUMK4keJAQEQQZJgBGXA4ICSYIM3aYIsIAFjAIOaoAFFAFrgBo3gQV9AhJrgSgDgRaRgQ7CghaJAxwiDYEXF4ADkoEWwQQgaiEhgAOXgAAMgxtmASKDAA2DA6QBI4EACwFUgAOkgAAHA1AhGYEABwFAgQLIgQ7QAQOBAAeBFheAAAcDMCEkgga/AQ6BA3KFBrSAMJuAAAuBPrgCCGqAGKGCRckBcoIKeYEDTwILIIAroQIgI4ID6oE9DIRBLwEGgQP0gAzngRl0AgR2gQQWgRuUggHKgBtZAy0AAoEZSIEjIoAcU4ADBIADpoEK8QEGgRshAQmAEhWCHdGCAC6CBO2CA9OBEB+CAJiBIYCBAt2CBk0BCogAqIIAnAIIaoAAT4IAeYABAgEEghqmgTyKgBoEgACJgTF+hADfAQqGAv+BAAuGAN+BHPOAANiBIeOBAOYBC4IEyQEihADfhwDbAQiDG+kBCIEDFIIA24AWuIFK9wF/gACWgQC7hEUegRt/ggOIiQNsgQXvghDsgD8SAQOAGuYBGoMAgQEDhAAfgS7tgQA4gACHgQNhgAC3gwBsgwFHgAEighuAgwDaAWqABVgDDCAfgBjwgxs/gBo+gRkcASSBGzyAAdABxIEbPIAbOoAGaoEdGYEXa4EBVAMOICCAACiDB4KAAIkBC4EFmQMOICGDABSBABGAAESBIhaBGQiBLWeCAbKCGvqDAbKCJUSCBpCBQrGBFawBDoEaioEAfIAUzgIiB4AXcaIANoAWOoEEYIAANANrIQmBFnYBDoEET4EAhYAAB4AUuYEZh6sASYABKwEJgQRuAwlBA4EXlogAOoIBtwE6gAFnhQJ/gBT9gQU7AQmAAFWAAjqBAFWAAAeDB5KAFVGAIMKGADwCCUGAQciAFsuDAq6AAJyCAG+BI4ABDIAcS4AAqYQAKIAADIQAZIIACoIAZIIAVoAuT4MF/IEAcoAQJwECgEqvggBmgAJNgQAqgAA+gAWPAUGCC26AEB2EAGaAAOEFLQAEOgCAOqGAFASAABSAAo0BCIMeHYAeG4EBAIId3QMIDB+BHsCBAhmBAqWCAh2AEOGAAh2DArSAANKCCKeCIUuBAf4BGYcALIcDI4YALAELgQnQgiGTAw0cGoAhdoAAFQEbgQDyhgE/gQMegCAsgBsOAU+AJNKAInGBRAiDKKqABPMByJEjD4ADpIoIHIEeLIQjDwENgQNNgAZtqwgcAiANhSMPgABAAgAigAZLiCMPAQuCHV+BJjGAAGmDIw8BE4AAlYAANYMf8oEYgwEFgBvMgBqYA3EgC4gjD4AKDoUf8qUAiIAKLIMDnQELhiMPAQ2PIw+BAFmBARuMCKwBDYIjD4IUw4YjD4Ao2AEIkSMPAsg3gwAblCMPgikPhiMPggSDgAAhiCMPgE4JgQqjiQGGgAC8hADuggqTpSAOgADHhADOiCMPAQuFBI6DIw+AARWBAOaCARWFB86AAjQBDoEPNoItz4si/oAK7YEMXIQDYYABqoIUX4EePoIHUQEKixBlASSkDFqAHwYCIA6CPQmMHZuBRLMBIIJFh4AZO4EHXAFGggecgBHOgSDHgRD4giJGgRGLgQJPgAG/AQODFGGCAJaAADeABK2AAl2DABkBKIEWV4MUcoQQToID2oARQoERQIAZyZwQ6YIAZwIbRoAAMQMAQeeKCOKABVUBEoEs7oMmkIAAEoEWqAGAgAS3AXSDACaTEMkCvf6CHleCE+wCAHGBR/+BDhUCDB6GIISABHKCIGkBBoEBaYMAFIAAZo8AHpEAMoAtyo4AFIISxwHOhSQ4hA8Fgw8WAQaCLAKBJDgBCoM3joMOnYAA2IEANAHPgwK7gRZ7hyQvgAECAcyLJC+CAZIBVIADV4sCvoAcOgIgCogkL4cERKQqioMDp4EdGIwkLwLIN4MHGYAcjIgEPYokL4EEPYAZxYQEPYEHvoEeaIUEPaUAgYsEPYUDW4ABIYEILoAFPAEKggChgB0vggN7gSfPhARFiQNfniQvggFgiyQvggQbgQ53gRBpkiQ0gAFkAiALhCQ0hQQmqic1jAQmgyQ0hAQmgyQ0iQDFgQ03gACEiSQ0AQ6BNTWAKX6AAMCHJCqCA9GBAeiCJCoBBYwkKoII7o8kKgEShiQqgAoUjSQqgQBEiCQqgAAiiiQqgSIugCD1gyY+hyQqAQuDJCqBAB6FEUGJJCqAD/eLCLGOJCoBDoEkKgEOggBNgAUThiQqhie/iANggSkGjQAUhyghhwAUgAA8hQHzggT9gThtgQEDgSvPgA1nggFVhgx4gRJ+AgN2gCFugx28gAWWAWuBEYEBIoQMngETgCNogAh0gROFgQA9AQWBTJyAE4qBA3aBCDMBBYIByIEMposbGYAABwEEgQR9AUeBBP+EBraAQr+BEt+DJKcBBoFUmoMVwQJBuYcSlwEUgAkUgxbyggFegUXxgSzagBKWggHqghZ2gB+hgB93gRtxAQ2EAAoBGIABnoAABwEUgQHEAQWBAgOADNGADKuAAZaAJEyBGriAHTkDC0sbgRLQgAAmgAoYgUSQkBjMhBbrgRL7hBeWhRL/gQD0AUSEEuyEEvqAAF2AUSqAAL8BuogRLQFEhhf9gQDFgQa0gQaohA93AWqBA80BA4UAx4EfrIFE1gEcgVWbggK2AUSACHiAABEBIIEkc4MSC4EAdYEIMwIgA4IU4YFRyoECQYEBGAJJG4ACPpYYaoYAygEFhADKgQB/ghOugA40gADCgCDkgimehBfGgR4Ygh2qgADGAbuSAM+BDNOFAM+CFNmVAM8BJI0AzwEo5ADPgzYliQDPgRzVAkG8iQJdAQWBAfWCBM2HGfSBLvSgCEWDAJyFAJGAAuIDLwEcgU7wAwBBmosJgYIXwIcYnYQaKAFBgDowgCb7gADwAQmDG1GAEhiMHMyMGIKBBGqAFDmCBGgBFIAACIoI+oJGeqAI+oEIpIEjc4IDkgEggVLLAwBB0IoFFYIApYAF6YQXyYIAuYMHo4AAGwEWgRaWgQCpgywOgSwfgUAJpRC7hBN5gQVhgTTHgAlfgVNMgySngShjhyhiAQiBCvaAABCJKGKCCw+WKGKAAG4BOIFKtIUoYoMokI0oYoAAmwEsgQG7ggYvgAbRgQfZAQiABZaFKBWQKGSCKAcENCIGaoAAJwEJgAAngU8ugCWJgSWNAUmBIagBCIAAOIESw4IoZIAAI4AFIYAQBIAmeYEoZIAAlpMoZIFO84AC74IowYsoZIIPXIsoZIAE3IMnnQEEgQGFhChzgEyChShuggDOlShphQKmhwrPgSEqgACmgwq4ARyBWaKDBweBCtSBEQ0DCBAngySPgQALAigLgQFbgQKOgAAHgijxgQXauSi4AQWAKLgBBYMouAEFggCVARuCS8kBHIYouAEXgwJkgyi4AQuAKLmADMQBEIMouQEXgyQjAQeHJCMBJsEkIwEKg0DqAw8QP4UACwFxhwALAR+AAAuMIosBCIAiiwLXJIApQoEhuoFPOAIQNIEiQYArJAIAGoIC44EBY4QiiwEcg03ZgFWegwCZg0qfgQDqgwE0BQRBmgVHgCtdgRpgAYeBA4uFKZGAJteCAx6ADEiAAHmABDCAAXiHA0KBAa0DABA2ggApgwcfgAIdgwE5gAdfASiFRpUBBIBWdYFFNgJBd4MkNQJLG4EP3IQAEAcDQQRKG2pKgAC2gBBCmCI/AwRBKoEQgYIAqoNEToAEcwELgTCxgAB3ARiDDqYB8YIEpIMwDgMwQQyAIUgB8IEY4IEEOIMAsQGIgACHAUqDBgoChAGAGdYCAkiAEoEBwIEIAgEDgBUKgAAMgAJHAcCBUPkBBoACA4MbX4BPNoAAKQIgcoMJdAFsgSUUAh9wgEChBEEfcxCCCGIBbIIX/wQALwEygQAQgQAJAzAQPIEBSYQNAoMFQIIAm4IBLYEBOIQEc4EAYwMEQTmDUfqEBXiCAC+DBhqBGYqBA0uCAHqAFVsBH4IOl5MAHAGLgRxvlQAdgCEOhkzogyMXkwAoggoV7AAcgB77gkjPggGQAQmAAeMBQYBGy4MDzIIBroE2lwICSIQBjpEARgEggBKFlgBigQfVjgF+ggLUgwKigALmgATxASSBCv6BAyaADEWBHtiAC/OABRKBCq+BBPaBAvqECgeCAF2CALKABLGCAH2ABpwCR0GBBGYDCBtyggC4AQOAAAiCXdOAAAgBEIEITQIbcoIAhIAAX4IG1IUATYMcQIAKH4QASYMAqp4AJoIi0YMAKQMvAQagAE8CLQCBE4mcACa9AX2CALeCRYWcAI6CVlmBTU6BCvShAQyZACaIAQyAAcABC4ABs4IYxIAEG4ADQ4EGn4EAN4IDUoIdZYcKQwEgglsygwOBggRbAcWAJpkGBQIJCQkDghSLAduAMFmBUaUB54EMLIJaAoICLoIoTocAxoAHbwIvAYAG6YAG54EOLYEAbYEEaIFD+YImgIJPvAFPgwPrgAoXghm4gADSgjGCASCAAL+BFpGGHtCAEbuCBzaCACMCLEWBBHgBT4QZlIcA0IAARIAGpgFrhQDTggBJhBIwhgLcgRWlgQwTAQaBBPaDDvKDAuuDQLmQAIkBBoUAhAEUglKdigCHgAClAU2RAIeBAL2GAVqBAVKCE+KGCbyAAD0BHIMGEQEUgiBzgQAThAEjgU1PgADvgkaLhADqAQePAGOAGPeAABiFAGOGBTeCAfuAAEqEChWBIPmBC4SDAQqEAiGAEzyDDAaBBb6EAjOGALeBAjCBDuOEBQ6BAIGDBg+BYPKAGBqBB2OKAIaAABaPAOkB24IA6YYARIIre+MA7IArFq4A7LEA6gHniQHLgQNXgQDIhADUgBdjgh1RhQCpgRPDg0tnATCXAImGAB6aA8uJBwaBAIeNBbiBKUeCAs2CNmaCAAqCD66CAAqADAaEAAqDAI6CK3aAADgBdIFF84FJqIED8oAIP4E0NYQIV4IKc4EE/YMHFQMBEDWCMCeFCOCABQQBAoUfnwMCQZSBESaDRHaFAFcDAhA5iABihBUJArQtgwxCgQmrgAAdAVyBYO0BToFkWYELnQIDaoE8xIEADAFsgAOmBEEBEC6DACYBbIId8IAGfQMQNkGABXSCAAuAA6MBG4MA1oAAVgFggwBAgQArhgHzgAANAqAtgUiugAFNAqAtgUhTBCgCmC2JB3SwAB+DAbCBEg+BFD6ADCuAIAmAACSBHxWCADSADPGAEk0BdIQAt4EPK4I/IIIAToEABgKkLZsA+4EQsYAB448A+IUA9IJhNYIBIwKgLYIObJ4BRpkAToACNYMBRIEBv4IjWIMhfYIAy4BF/QKDAoIVWYYBYwFsgyVogQHaAgFFhwAlAklxgA+VgDioiwAqgSFHgQ4ygQCVgBbHggInhgICgi3iwAICgQLsgwEMhCrJuAEMAQeEEWKAAK6AD7OCET+CAO+BWueAMvQBAYFJ0oANxoEV44IPA4Id/IYACoBi0YEzCgGCgRtkgAkGgBFoiQACgAT8gBvygBE6gR4vAQiDWXWAAAyAADWAGfSBAAqBTyuDAAqAAx6BMjqAAAqAC82BY6WAAAqAIKKAXYaBAAoCB0eBPR2BGMCBHoSAE+mBFdOBE7YFA0H6AUmBHreCEVuCP8iAFd6BBAOAIsiBAAqBLMWBHMwBCYJN1IEcrAEJgk26gRyigh3DgC/CgQAKgRDHgSJ8gQENgAnLgBRfgADUgl4Hgjl7gQcFggHjgAMggQMJAQOANLCAL3eCAHCCAyyCAyqBZB2HC3aBACuFAB+CBNeOA2qOAB+BAFqACAOCBaiBG20ELQCQIYADdYASjQJBhIEffYoDe4Au74IuRoMCfoER6wKIE4IAHAGIgCTjggKogicSgQOYgwyqgwOYggKUgQB/gRYUgQHmgQQ8gQNUgwnJhgDMAQOMAK2GAB+CAE2OAMyOAB8CIAWBAB+CAYmoBDaEAJyFBDeEACy0BDeAHeiBAO2BTj8GQQxsQZgggGi3AQCAM/UBC4AATwF+gBmMgzFyAZqACWiBV9gCQX2ANpSBNKSCADwBBoExVoYJ5IAA3oAExIUGCYALCYAKHgUAAQEBAoJU3IABewK4LYMDoQG8gAEKBXRyIgY7gAASghDCAwNBDoEy1JQLLQEGlwyqgREjArktgwyugFXkhQBdAmt2hABdBANBDWuCEbuAAt+AANEBNoAAHoQAcQEKvwBxgCgygQDAgQBzAkEJhABnAgdqgBRDgQBlAhAtggUQhAeaASuBT62CAaqAMZuBD8SCZkSAAA2AFxmFKHuBIluBDQqCTg6BAfyFNAKABRiCAAiAAbuDKOeGED6CACKCB7yDEJiBJK6CBVcBGIECDARMDQMagwhCgQHcgWdXlQDVggOQhAAqlQAjhQhsgA+ymAAmggAjAy0AM50AI4AAC7sAI4cAjwEKnwCPg1EKlgAjghUlgh/cgGp4AXaLEJCDAyoBGIFniAFKgwbIgGaVhlyIAkULgjTzAfqBJyQEQXsLHIBP7og1CwEQgAxhhzavArsBgDaMgRJwixL3gQ63glZcmBL+gAAgAUScACABQJwAILATXgF9ghJoAfGAE/0BC4FQ1AEBgADEAQmCE0sCbBCBcHOAACcBbYET6gcQQAu6CQEVgTXcAUCAJWSCBtICBkGBOZODDdYCIAeBEoICCkGADTSCZvYCdGqCBOWABPCAScuHBPCAABqAFvmCDXuCV76AF9cCIQmAbgwBDoEj+oFA3YIAQoAQTYIAQIEKeoAADIEkY4EAMoEkJ4AABIFOSoAW2YEZpYAlu4EsBgEQgB8JgiomgAA8gi8UgAA8gjtVgi8UgSNEgCG/gQAdgUo2hAOKgySKhABYgRuOBAhLGyGAOd6ADFEBAYImL4A8H4EA04EAzIE67YIAuYIAQYIeXwIgaoEAZQFrgAkAAgBOhGhRgAALgAIXgQCxAkdygBkegjGogCLQATuAI7KDAFKAAO2AAK6HAS6HASkBIoEJPgEKgwCfhAExgABagwEzgWEhgixSgAANgS5jhQFBAkETgUDJgE+KARWEBYwDAA4CgAuPgT3IDCESQe4IIRVBrgghFIE6bQF/gAARAvANgAARA7ANIYAyQQEBgBatBA9BCUuBaXuAZVyBYOABAoAU7QFxgGnDgARZAw90IoAHPQNrIReDEfCAKZOCDWSABIOBCiOBY84DdCEYgAosAX+BEcECIBaFAMKARQOAFDEBGoAyhgISTIRCNAHggjznARSBRSOACimBACaAQWMDBiAVgQdoAwshGoEk7oAIXwIiDoEBYIApw4BGaoMkzAIgGIIOLYEeZIA9EwEHgyyKAiAQgAFJgCUCAQ6BJMsDGSAagQP1gSZCgl+oAwFrdIMBYoE+EgF2glxhAQeAWWCJAhOGAoiAAbSEAoqAbMWAIcyBUswBB4FxF4AAy4FRjQEGgh9cgijBgEx5gwGwghzNAQyDChSCRUkDAiAXgCBFgRpQgwElgQAYBSAPIgkhgDdshwDLgQRQgQC2gBlMgQC2gRVPgRPWgD8kiACygWIHglmngD4JgmzwgwCYAQCCbV6AAJiCAqODX+8CIBOBAFaDWyCAJKGBAmMBDoEJ4oApA4YBiYQAB4Ifk4AApYEg3gFGgADKAQ+AbNeBPZqDGRkBS4Il/wQgDBsigEflAQeAALIBGIIBegERgQFNgQGTBAZ0IRCCL2eBA3EBDIAvvIEhoYA9cYEBToJKM4IC/IAFUAFKgW2bgDzfggJUgQJNggIgAyATaoACRAPTBkuEAlsFE0HRBEuAAl+CFEqAAtqAJUCCRa0CIA+BAReAAtWDCSCAM7WAUtkBdoEBMoAhOoED0oEAbIECNIMDrIEDyQEAgwMPgT5vg04QgwMdhwOTgAAYAQ2BAAiBAzyFJ0EDDgsrgAFfggHLgATbhB/hgQSTgVzwgQAHgmW8gGr4gW8AgwT1A2BB1IIE9QLEA4JxZYQ8goFV5QHVgRgkgRcbAdWABnSCAAeDUS8BAYEdcoMAHoMlpYAQVIEmy4ADNIEOkoFRBYAcz4EoKoEMDYM364AOYYAIxQdBoIbi7X5zgiASAgFxgXHngzBohBwSgAoagAoQAcCAb+6BABaCIaqBAGiBHKKDbyABc4Agu4FrpIAuKAF/gwKuggDlAyADc4InW4FyYYAAPoEQSIAAKokA8YUCXYAAQ4AYjJQAM4ACoQIIdoEAHoACwYkAHocAGYAC4ZMAGYAcDZMAGYAQuJMAGYAHMpMAGYADIZMAGYA71YoAGYIA4oAdUIEA4oAbRIIA4gMLvQWCB5aCA9qAACGAPKCEXiGBCviAADGAAPuBA60E8f8Da4ER+wRB8P8DgCDEgWqOgXKlgXaGA4CAPIAKF4AAW4IAGwMgAHKBWbqCdRKBHpiEAXaDAVSGAFGBZsKBdD2CAXGDBvSBAGMBcIAAUoEHc4EAbYFjLIIAUoAAUIACKQLbAoEMgANBsCuBD3iAbEmCDjeBAmeDAE2DAA2BMtuEAAuBDZmEAAuAb0qFAAuAALaFAAuADiGFAAuBFMCEAAuADtCFAAuBDUyEAAuBae6EAAuADqqFAAuAQOOFAAuABAmFAAuABZiFAAsBDocACwEPgQALgnWugC0IgiAsgCGJgQR3gwD4ggLZggAJgQGkArArgwGlArArhQKIAQKAAr+BAVIBEIcCyKQBUoYAWoEj/4QBzoJsS4ICuIAADYQAC4FmI4QAC4FxyYQAC4ABMIUAC4FooYQAC4FmXIQAC4FsqYQAC4ABMIUAC4ABMIUAC4E/YYQAC4ABMIUAC4ABMIUAC4ABMIUAC4ABMIUAC4UBMIACZIMBDAEQhAELgRezgS9aAnRygAFEAwsLkYkJeoARooMInocJfAEGiAl8ggUQhQl8gCjFhwl8iAjyhwl8ggBCgTpeigl5gUV3hwl4hGZsgXA+giR1BEHAAjaBDMySABeCTJKBFZGPCa2CB0+BJFCjCa2CCR2DCa2ICjeHCa2ALDyCAFyAbpiECo2CdCiABh2BCYyFLmiAEDOICa+ACMoBToEINYBbzAEggENVgWGnhAmyAg0CgFXfgSjkhgmzgQiEgD5BjAFnhwFihURoiAFqgQh/hAm1ggAXASCBCGuFAI6CBbkBFIAGzwUFIhMhFIwJtQKBAoAJMQmgDyEUQeAOIROBCbWBCUICoBCBABEBD4BaUYAHWAENkgmzAgQagQAbAnQigEraAWuAMiCECbQBDYIXHIEJtIBUJYAAIYAH0QEWhAm0gACAAiAVhQDDgCvAAWqALtMBGoAf6IADdoEGqgEOhAm3AROBABOAE4OFCboBDoABdgEUiQm6BA9rIheBAWuBCO8BD4MJugEHgCKBggs7gijzgAbZgQfmAxggDoEH0gMYIBeBB+0BGIMJugEGiQm6ggFpgQfJgilNAiAGjQm6hQLGgAG/hALIggkiAQaBCSIBBoEJuoAAz4FB9IM5f4UJuoF2v4gA64oJGAEZgClKgEaAgAAoAQ2NCRgBD4AITAQPGyIPgRq3ARGACVaHCRiAAPGACvuADKqCCRiAKcCAUESDMYCCAKyBVimDAmWAUdSBCRgBB4AkUoJldYIJFoAj9AISaoABpgHUhgkWAxJB0IIJFgEHgFQCgkX7g07lgE6/AQ2EMO6DMP8BEYAYfYQJFwELgAp+gAM8gQBrgAGRhAMWggkXgAM1ggyqgSzbgQAYgQKKgAKAhwL8giXJhwkYgQVugTXXgjBOhwqoggGkhAqohgp2ARKECnaCNjGCCncDCwuqgBHygQdSgRY6gTIzAwFBnoISRQQAQYgTgAASgAJJgmzJAkEegwAVAfyBYfaGABUBE4J8a4AACYAAWIMD4YgF0oABMAM7AZSAbC2BDqACsC2DRRIBqIAACIEAEAKgLYEToJIAOZYAGQMLrwKCAKyBD++BEi6BDwKAEkABBIASnYA8xYAAEoF04gEEgxKdgg8ugRnIgxBAgkQpgBBAghPBlAAcgAb4gxIsgmLNhABdgBKdihKbgTJGgxI0AgAQgEX5gwBKhxCmgwBKgjValQAchRELlQAfgAL7AXODFTCUAKiGHhODECKEJI+BD+oBEIA3E4MANYBtRIFAYwGngBPQgkdRggDMAwFBCYgBG4EBWIRtkIUA/wG4hAD/lQAgggEfgxK9gBKvmQAqggBKgiIggwGZgQCAgm76gAH7gQE8ghRwgTkkgQA6BMAtC6aFAKmBAeCEAK2CSie8AK2FAIKCTUqBClABSIJtXp4AVIEAP4cAuoAKgIIB9AQLC/wKgGgFgwarhQX4gRtcgxJugQwyASKAKw8BLIETvoEKnYEDVAcJQf+A/59/gjSsAQaDP3qBDB2BB0CBGVmDBzaCIyOABTaBGWyGBmKABxWCAuoBAYFwOgMvAbyEAAgByIAACAJBIINYfIAMh4E9KIAcroAMW4EAOoAhtIIRcIUWKIEYFIQpGoAOX4ANaoIpAIEBFwWYFmoQL4IACgGkhgAKgACwgQDFBJwWEDCCABCABAKBABABqIUAEAGwgwAqAkH+gYAdAkESgQYjgAECgDVggQZyAQKDL7OCN50B8IBBxIMA2oMF5oYyD4EATgEtgQAygBe6AwVBEYABgIEEEQYoAqwtQQqAIsmAWQ6ACm2AJteAAAqCLFCAABuAHKCBeOCCEYaADXyBHpKBGrSBTt6Aeq2DHmiCJjECECuBAICCBByDdcGAAnOAGA2EACGAFVOABCeANWsCciKARriSBC2NAhGJA8eXAmGBOC2FArSEBC0BAY8ELQJBoIBBjAMaEDGCAoeBJhCEAI2CdwKGAIeEAJq5AI+EAz0BDYEqpIEAmoAAlIIKi4Q3AIRMRoEAk4EB6YEt9gH+gls+ggHogUlaggEXAQyEAJCBIYuHATK4AJgBBYIH04kBKoJuggELggEohABngWwKgAKxgH88gwChgACKAQGHAIqAYzDCAIqDCF2WAIqCAGeCABKHAIoEBkH9/4MBJYIAkwENhwEdwwCTkQEfASKAPaKCAksBDIIAmYcAb4UAGAEEgACfgwHKggQ0AQqGA5iAA+uCE3UBCoJCtoEcbooDk4F/a4YAR58DBYEnV6AAwYEZz48AvIgDB4kArIYEDoEEcoAAkAMJEDKFBHCAZ84BB4IADoEgqQExgReWgH0YgiGJBywLC5YLARKBDT8EIGsiD4AqpIJ1Z4BhrYIXj4INCYEX5oElogEAgk1NAtDHgAhxAdCCRymBAAQBSoKDbwNB2CiDDtoC3BaBVeMBf4MVFIIMF4Fqa4ESWoBXbwEogW3ZgBT/ggDagQCkgFd8ASiAAUuFOeCBLzyBFG+AJjmBVP+CcE6BQtiAH0mAgh2ACPiBAMGAfvuDEqGDBPeCHB2ABO+BNG8CCRuBFoSCbjKDBP+CE5+ANG2AACMBrIEajAELgXQrgwBSgB4bgAG3hQGiAdCALZSAChWEAJCCFVSEcM2GAHCAa6GCLFeCCgyBBgWBCduCAXOAAV2DJiCABmyCAPSAB8iDBrkC0CiCABGCAO+AAISAAF2AABUB4IAMBoICQoIAh4JF4gLgFoAAEYAfRAIQM4MAjwHUgACPgjGlAdSFADKCHwiCAJeABm2EAP2JACaFAB6EATSCIYKGAOoBBYMK4YMMcYEA94INhYN4QoAMKIEfuYEWFAEEggAKgBokgR7JgADfhCHNgQr7gC1NgwsCgBw/iACthEPxhgHcgCshhAaQgwCcgACOggCcgwHhggDKgw8MAbyAAieARc2BGfqAcEqBAmYBCYYCcgEQg3wZAQiDW1ABBINOpoJD74I0hIAKRoI8T4IsCIUcOIYUEYIx1YEMrYMAhIMBYYUK94AxP4IJ7wHUgACtgACUBrwETBshEoIHboIBzoEjGIAv1IAx+IEvNoQAPIEktYAX84A0QoAB6IBSZYQ8YoFDwYEANYEHJQVMIgIbIoIXgIGD9oEqEYEFdAIgDIIV/oIX34se14IU8YA+jYEEIIBIMIFWRIMAbINsZIMHzoAAaYAAfIABpQMQamyDB9GANB+HAtmAQN2AFkeAAIaAAcOBACCDAt+AAMqChuKBRyiAAHaCRNkBAYICg4AB4IEK84KAvYE8noIO3oEI0YAASIE6poIOOoNIvIEBHIEArAECggImgl+igQ5egg+4A0ECSoEABYAtGoAAO4EAXYEAlIQAboEOP4IC/4ID8IM4LIEtKYQBR4EBEIE+HYIJWIAfxIEBQoAFfIMFT4MA9IAAFIEIVQIFa4QA8oAR+4UDbIUTBYEK4oAMuIIWuAMAQbqAAkeBAU+BEJCEAhyBGvEBf4I6nwIASIECxYIEioINWIQbhIMNBoMAgIEFBAEPgwJJgS/RggXIhgGkgoIfgQB8AXGABdiBDj2CAmgBS4QD6IQ4NIITv4JD+IIAnIUNpgEPgA5XASSAFa+DAF2AhreBHHGAbuWBA3yBABGABt6JAraBhVKAA62AA1KHAOsFC7YCAQmABxmBOSyCgmyCAsaABtECOwGAP0sBQYACQoAE7gRBB0GKgGbHARuALHGDDkaBHC4BCoE6ZoEEhoMBAYJ1voEK2ICGroADHoNCyIIaBYAZooF5K4IW7oGMzIQC2IAv24EET4EFjgFLgRBtgAbOgAVegSe5gAQHggE9gxotgALtggDHgh/2ghYqggcdhQAlgHDohgLzggLYgAtugRCLATuAAAeDQvqBCuYBCYJ1KoEAHQHAgwAdAsAVgweagAASAcSDABIBxIBivoARWAIKQYA7hIEEtgRGIgMbhQD3gCTwgAMlARuEAQ+CATgC0AiAATiDDESAJPqBAF6CCr2CCY2ACr2BAHqDBpCAIryAEYeBQNGCekOCB7YBL4EFDIEANYFDOIIikIMBgIIAkIEOsoIcfIQHlYEhwYIPJIAHp4AzgwIDSIcH8Y0OgokPI40AHIgH8YATp4UAXIAH8YMPgIEFqIAU+4EMeoEAC4MK7IAk7AKQIYFBcgJ0IoEWpAQvAYYIiwCmAoQIgDawgwBLAQeAAKeAAjaDCJmDAKsBB4gAq4EHeIEAj4JUAIUtQ58Aq4BY14UAYIAAq4MAYIEkJoEAq4QmF4UInwYJQRxrQWyBF7WCf1YCkB6BOnCDAIyAAA8BoIA0hYA0mYMAkoAaCoIJSYBJAocJ/40AhoIuOoQAHJYQcIwJ/QEEgAqSgzSVhAChhABqhAAVhQCrgACCgQB6gQq0gQ1jgCbRgUgggA4SgR8eBIECSRuAAXgBI4MBeIAW94AC4YANoYMAt4ECGYBEpokRN4AAfQEGhgDakgCupBE6hwFsgADHhABggQe6hgFsAQaGI9oDCUEEgVsjgAjFgAFpAR+ADLCAADuAAAsDoBwigACLhAKigTSwgQK8hAIVgwB/hytZqgIHgYAYiwFnjwCghwByhQLShgCwgRzFgBhsgiF/AqAtgUNygALeAy8BgoGGLYJ82AMvAYCBcryBAD2EAhSDXbubA2+iAiKBETCFALiAgMuEAQ2AiIqDALaBeM2DEKEFswsBCn+DBWuBBY8BIoAfEIEw7YAs9wEbghsvhAV5iwV1gI/CghzcgA6LgQcVgALygU2VgTgkg00Xgj+EgmoygIMmgStDggWEgwVxgQs4gj3SgBVJghVjgABmggTFggDEgATFgR1CggSagQJ9gAFbgQJ9gD2OjAElgAHyAQWIASWNAeKJASWNAByIASWAXOCEASUBBYAB3YMAYIGCjYQBJ4EACwELgQqGgSXyhR4ngRXehxA4hBRUgXrdgRA6gQX4gAD0gRTlgh2whQDmASKCSSaDix6DIeSCA0+CAqaAHluCAfWZA02iArKCI/mBBWCBAMCCEhuBbjSABByDAfOBG0GGD86CfFeBBraDAIqBKraBAQwELwG+FYB2H4YEs4kDRsAAlIEEeo0AlIAF/IAAJ4IBZAEFhQ83gB1chFsFgSoXjQ8zgQ4TgQBtggasjA8zgQJrgi9njwHtjAU2gHcFgyfhgVCZgA/HgQaFhgBxhAAagCs/gQAagkrKgDwQhHuAgQfQjQE3AcL6ATcB/oUBN4QPmeIBN4APrJABM4NOxIIBJgHEjgEmAcb6ASYB9oUBJoIqHeQBJoMqOo0BJoAIQYN+WYIj/4IDkYIKA4At4gFGgA1zgQWPAQiBBYqBCgOAAA+ALiGBBY8BCIQKBwL/AYCX+4MQmoEJsYEQmoGRooUMkIBNOoAMC4FKnYMNKIMOBYCNHYEAnYAOzgEEgAyugkONAQSAHRKCGyuAAWKABV+FAECCBLKBBKWBelmEMPOBABiALt6DABgBDYM9nQENgSpzgATvgQ9cghCPgAAIgj4agAuPgw1cgBraigBCggBjggBagXhbgQDtgQy3gQA/hA+tgXl3gQEpgg9Vg39uhA0ehQAVgCmLAwALg4EahIANGYKMDoQ7zoF2X4EACIVf84ApfoEACoEPggEggS+3gRYHgz0KAduAG6oEAUEWTYAru4AGs4BfxgSggAJxgCe4gQBNgzb1AQGAm8aCC9oDQSpGgUA4AgVGgV/lAwBBOYEtAYEG+YACXwML3AmCAYaBkPqAQs6CAhQBLIEr9oAG34Byv4EAD4AAA4BUXoIruoMpOYMXo4J74YJ64YMCLgJBKoAWwAJ1IoB5b4EBtYACSIEAFwFsgwg5AVyAJaiAAYiBi42BmLaABI6BAGuAAtyBYhyDFJsBT4ASTwFLgRbjgBwAAUWAZfIFIARHcnKBZFuCLJyEPNCADFuAanOALKmBArqCAs6AW2qAHU2EFgOFABOAIpmGGnCHABaBk/WAJCqEGmWHABiAHY6GNKSDLnaAHKKEgHOBARiBAAgBOIIAxoFD5IEAt4AfvoI33oIBBIBEMoEAJYE3q4KLFIE3fYEvroALx4EADYAD8YIDboIAXQFcggANgVH9gDfGgQF/hRk/ghyqgDWFAhA3gi0NhwARggBWggANgQdeg4kngTlhhBrqgn4/ggFjgBCcghjugQMTgn/Tg35DgQGEggJ8gRB6gYGUggSbAiwigjMagnvKgRyjgi+MgQJjgQEkgQDZhAAlgi3XggPbAWyDAEOAABeAY6iBAdiAAWQBBIKY/IAAkYEuKIE0KIEASIEDw4FFAIQBIAGwgARGAUGDg9SCCUGBAHCCALCAAEKBAAcCtC2BQI2CErcBtIMAGYEwFoQBe4ADUYNBOIIAkAFsgSTPgQCLgglSgQChgwBBgWkGgQq/AgVJgDrTgABhggBIgQC0AVyBBT+AACMCxC2BHueCABMCxC2CDtUBBIM0JwEBgAMkgZ9RhAFCgTZXgSIAgQL+gQGtgBpkhgD0gi8LhAAlggCygQLVggmMgEILgCo5gQBfgpJ7gwCggTnLgQHphAESgomvggFZmAESgEgVhBOsAWyDA1SFARyCAYeCBo6CAnCCP+yBBYqBMs2BG1iDATaADQEBA4ICP4MBLIGUmoMAjIIAOIUBLIAAo4QAPIABToMAWJABJIQBAYAMkoAKeIQDy4IDCIUD54EBDoAy2IIDt4QCUoFG+IAD0IMhhoAQtAFFhQO0AQaAYV6ElV6CAWODgx6DAKgBOIAFMYIMfINHdoGAO4ID7IAE6gEagzHAgwGWARqCOzWAGJmBA/yDA0qBAwGCAWGBA7KBEucBQYBa0AEDgorSAUGAQkuAHV6AJIUBi4Muz4JjnwEQgAqkgy9fghfJgGs+gRqTgZSshAVsgjkFgBo7hQJxgBT5ggN/gi+VgAAYgAANgUSGgQQ2ggANhAPVgRptg4FPggBdgWVqgwAcgjVdggAWgACQBBALC4SBHe6BADKAZCeCBEiBJ6WCBAOCA0SCXCyCANGBAiuHHWiAOaYBGIEyp4M4rIIAcwEwgh73gUB/hBGLhQAThDpohABGgACkhAf2gAS4gAANgSI8BQuECQEPgQd3gSDogRk+gR2ugiSDhwByA3RBhYJaSAEAgTcpggARgAKzAoYCgjy1gzCEgzmvgTU8hABuAVSDAriDAoyABwSCAe8BSIEABQNYdHOAgKOBS3qAAA2EAq4BNIAfAoMWcIBQpYMU04EHUIAJTIIDR4IStYQBlQEsgAB5gUUWAgNrgQdtggQrAhA6gjXFggD7gjU7ggT1g1N4ggA0gDTFgwNagTR/gQARgTTFggMWgAAFAXCABQSGCQ6SACqBjzybACKCNd2CBnaBhJqGNd2AEVyBNd2EFZ+DJUqBb16BUiSBXVmBDn+EEKyBRMCAF8QCkCOBCDCCDVyKADaCAHsBdIIA34EE34ABP4IADQKkLYEUSIEAlYFFVoABgIMD3QKAAYUeEoIV04AN6wFgggGIgRz7ggEkAUiDB7EBbIMEXwE0gBfTgQGMgCyFgQGCg0X7AVSATfeBAa6BLTmBAEmCAPaEBdeBFIqECR8DEHRzgE6AgXH3AUiCbhYBDIMByoAlXoIBx4EWIYJfWYELGIMKUoUAkYIpSYI1A4QAV4AksIA4K4ILfoM2+ocEuoQAd4IEIYAAD4FUqYQCQ4MCbIFU7oMBjoECXoEAGYIATYILMoIANYEASYQ7S5YBxogaprAAH4ML3IFSwJQBvYQ3FYMA1YcBTII3FIIBy4Kb1IFEoIQGToALSoE3GYIAwAECgzcZgQQXgjcZgwBGiATxgQAHgztQgpoMgaJtgwY4gAFgAU+AR+2HOqeEAF6CaZKEAF4BAYQ6V4GXJIE6pI0AXoI6pIQAYgEbg0YtAqAtgzpRnQBPmQCtgUaZgAdfgSH2Awu+BYARsoID4IALqYAD4oMKa4Kg0IEACYI03oIEUQFqgRSLggAdASyAA5qCBJaBB1SBEaaBlb6AGIyFBa8BcIAKVoFeh4QCR4AKY4I8vYQGL4EAHAFcgwR+ArQtgj7kgQuahAh0AUSBAAUBTIEd6YMRy4FEIoEAioABCIIG6oMQ7IAADIJD/gQgCE8bhCWjgAuDhAmAgwyeghqkghjOpQA7gBe5gA3PhAhogIXWgkb8gQJEgwV5gwFiAgRqgAcmAhA3ggASggfYAXSDADCBB9GBExCABYmEAneBCG6CAP+BQoGAHleCHDuHAzqBDQ2BAzyCBA8BWIAxKIAFnIAf7YBRFoEQJoEStYAAfoKUb4NAfoEqL4AD8gEIhAAmggDogAAFgEpLiAXCggE3ASKAUjSCA/uAHNyDAwWCGs6CAWSFHIeCHayCWIOBGjMBhYEACoQCHIE/0IUJbIMJaQHEgB9TgiMLgyUbggEJgCM+gAJlgWAGAYKCOwqBpCIBAYAADIAIhYEjHICKGIVKgIEDQoEISoI4p4Gc0YIPTII8CoAAQoGlpIECroGKCIEAB4QM74AHjIAUI4UAQQEBgp+Wg4b2gQCPgA0CgABDgRRxgAkhAwurBIAflIEAGQF8gRlHgCjfgQAMAXiDAX0CjAGFDTuECuUCLGuAAuOBGcCBBUoBA4Bh7YIFgAGQgJACggDbgAGVgAxUgAA0ggWQATiAHMmBoHWBURaABZQBB4I9k4Eq9YEu9oEE04NYIoEACoIAmgE0gB2AgQGYgx0pgQrWgF3AgQv/gwAvgBnzgk6gggAyAiALggiTgQAKgVo7hAANgANKgz4KgT34gxIwiGYwhj3/gACAggAtgQV9gT3QgAANgAHRgj4FgAv0gTEugAANgDpAgAKSgTEigAANgAnHgABQgTEWgAANgD4OgASegTEKgAANgD4RgAGDgTD+gAANghRqgQVKgQc8gBAMgg9KgC6rgT4XgAeMgSC4gz4egACfhD4egRB8g4WQgF9PgQAKgkAHgB3cAQaDRdOAETUBBoOhO4JbW4Ico4AA14IU84IeS4Ja5oBt5oMCFIAC7oMn2YAC5oBKAQEggiLrAQODTo2BAPmDAXeALCiCAAqAABSBTpcBDIBNGIBf84IDCYED5gEBgQuugS53AiIJgQLOgRlLgQAEBUkbC6ALgRwpgwlzgSoZhAlzhQl1ggIFiQlzAUWDAheBCXSAQJyAAV2AQuKCBX2RCXOCAmKaCXODB/WTCXOCCWyAApWFHAOCCHEDNgJ4hAVTgGUYgAIVgSJAgABPAWCBToiFAFABgIIA74EC3YIJoYQEdIUJpAEEgAmkgwf2gEy2hibRgh5MgAulgAH9AUGAAUODADWBAGeAVAMBIIEA2YgAbIIC3AF4gqObgwjoAQWFYMiAABiJB5GCBjeBA0KAAAmFCeiDCogBZIAP7oACT5sHx4BQvccJ7YEo3LQJ7QF4gR3fggkrhAF8gD9QgAeegACMgCjkgRsVglojgQDdgwahAaSCAPoCoC2OCa6AHeWEHbKEAiOBBQyCNMyJAh6ABZiVBc+DIGSLCcqCGiOECcsBeIQJy4MCE4IJvAFohQnZgQ5zgZHUhgl5AVyBUIeGCCoBBIUIKoCjT5oI14Kk+IAACgFohQWOggX+hAT38gnUhwm4iAlVkAmzggLUlAm2hANigQoOhgiahgoohgD6AQSCobKDAVWUAC6ABJiCqZ//ASGHASGCAgjoCouGAmG4CouBBF6AjxYDAAs/gg+agQAejxcghj/GlAAfgAAcglI2AgRAgAGUAQOAAA0CgweBN1qFP2KAENOAIiWBLjyATW2Al8aCULCOdeuFDu+BFfgBQYAjsIAAMAF/gFCoAQaCpL0CAEiAP46BE52BFj+CMuiAVRiCesqCBTGBNXiBF4mCBtyAF3qCkRUCCEmBIbwCS3KAFfOAUuKCBRCBdj8ByIAJjYFUz4MAcINePYNXjIEFY4KaDQJBKoEQioABX4IWuQRC//+BgmzZAVSAAAwDgICCgFF3ATeAW8SATlOBAWaACXmCVmiCFoOBAAyBWtqBCt2DVJiBAHWBI8+CAOSAAHeBVUSEABaBT4aJABmCAseCABcBTIcAF4JCFIAAHQHEgR6TgABegFkbgDjKgAAJAZyEMQgBKIEAD4AYXoQAMIEEgIFkuIAARgGcgSwPAQKAXrGAe+eDFRQBOIJXqYAE84QACAFEgks1gpMgg0Q6gAGRAYCCZ2yAQRSAeNaCB/2BAH4BiIEjhIALRQGEgQCOgCoZgGkkggpUATaCRV2BQzUBbIAFngE2gAQbg5DfAhA0ggHdgACMgBN2incXgACngY9Wg19ShRIZg0G7gAUngRpRgQokgWVJg0G9BEE5QSqBJY+AAdSCp0+CK4mBAv6DS0qCNWeDUoqACpeAS++BAGaAE6ODCCuEQ/oGQYgRNgK4gI+lgAALgB8IgBRvgo+xgHpvAayDABWACJaAALyBABUB4IAAFQGggwAVgAijgADfgQAVAX6CeBOAKpCDAL2BAK4BLIAGIoRbhIVEKIIoEgFEgDgahDK+ghZehQuBhkQhgiqgAiA3gQbcgQCrgG1ihQAShEQ3AUiDAReAMFsCDGyAGOQClCCBCVoBNoALK4EDbwJBkIQADwGMgwAPAZKEAA8BgIMADwGWhAAPAXyBDmACC0ODGVyBWjCXGVyCDWuBOE2CGVyBAAqAATmAeSgBSYIEGgMLC+OAjWKAAhQEC6EEaYCzYAVmZmljaYCy5QEgg7TZEwAxLjMuMS4xLW1vdGxleQBpbnaAs20VZCBsaXRlcmFsL2xlbmd0aHMgc2V0hgAcBWNvZGUgiQAZD3Vua25vd24gaGVhZGVyIICz0wFniwAyAmRpgLN3AW6AtAmKABYDYml0hABHECByZXBlYXQAdG9vIG1hbnmFABcHc3ltYm9sc44AGAJvcoYAU4YAJIUAVoKz9IAAXYC0QAFrhQCmAgBigAD4gACaDGVycm9yAHN0cmVhbYQADYoA1QstLSBtaXNzaW5nIIC0pwQtb2YtggBHgAAlAmNvgLQtAmN0hQDjA2NoZYoAF4QAmI0AFwRkYXRhhgAViwELASCBANQFZmFyIGKAtJABAIUAVwJyY4EAgQVtYXRjaIYAMgF3gLT0BG93IHOBtQOGATuCAN4DdHlwhwATiwGyggDQjwB1ggAWhQGvBGNvbXCAtSQBc4C06YACDgR0aG9kgDInEwwLpQIDAAQABQAGAAcACAAJAAqAKQcNDQAPABEAEwAXABsAH4CVbhYrADMAOwBDAFMAYwBzAIMAowDDAOMAgAY4ggABAYCMAAIBgYQAAgGChAACAYOEAAIBhIQAAgGFhAACBZAASQDIghjMgK1JggCEAQeAAIABDYAAegEZgCkpATGAA4wBYYAARgHBgEjqAYGBSOyAQBYEAQYBCIApDAMQARiABbwJMAFAAWABgAHAiQB4hQBwhQBoAYaAAAIBh4AAAgGIgAACAYmAAAIBioAAAgGLgAACAYyAAAIBjYAAAgGOgAACARCAAHIBEoAAiAEIggCAAQaAAQIBBYABBAMEAAyAAJaAHJwCAA6AAKIBD4CwMwQOC7cMtQEsgBzVggABARCMAAIBEYQAAgEShAACAROEAAIBFIQAAgEVhAACARDAASyJAICFAHSFAGyBAGQBFoAAAgEXgAACARiAAAIBGYAAAgEagAACARuAAAIBHIAAAgEdgAACAUCAAAIGoAgAAKANgACIgADQAR6AAAQBD4AAVAEggAAQAiAOgwDgAR6AAASBABSBAAEBoIQAFAETgAAEAQeEABQBDIABOAGMgAAEAUyAAAQBzIAABAEsgAAEAayAAAQBbIAABAHsgAAEARyAAAQBnIAABAFcgAAEAdyAAAQBPIAABAG8gAAEAXyAAAQB/IAABAECgAAEAYKAAAQBQoAABAHCgAAEASKAAAQBooAABAFigAAEAeKAAAQBEoAABAGSgAAEAVKAAAQB0oAABAEygAAEAbKAAAQBcoAABAHygAAEAQqAAAQBioAABAFKgAAEAcqAAAQBKoAABAGqgAAEAWqAAAQB6oAABAEagAAEAZqAAAQBWoAABAHagAAEgHm4AgC6gAAEAXqAAAQB+oAABAEGgAAEAYaAAAQBRoAABAHGgAAEASaAAAQBpoAABAFmgAAEAeaAAAQBFoAABAGWgAAEAVaAAAQB1oAABAE2gAAEAbaAAAQBdoAABAH2gAAEAQ6AAAQBjoAABAFOgAAEAc6AAAQBLoAABAGugAAEAW6AAAQB7oAABAEegAAEAZ6AAAQBXoAABAHegAAEAT6AAAQBvoAABAF+gAAEAf6AAAQBAYAABAGBgAAEAUGAAAQBwYAABAEhgAAEAaGAAAQBYYAABAHhgAAEARGAAAQBkYAABAFRgAAEAdGAAAQBMYAABAGxgAAEAXGAAAQB8YAABAEJgAAEAYmAAAQBSYAABAHJgAAEASmAAAQBqYAABAFpgAAEAemAAAQBGYAABAGZgAAEAVmAAAQB2YAABAE5gAAEAbmAAAQBeYAABAH5gAAEAQWAAAQBhYAABAFFgAAEAcWAAAQBJYAABAGlgAAEAWWAAAQB5YAABAEVgAAEAZWAAAQBVYAABAHVgAAEATWAAAQBtYAABAF1gAAEAfWAAAQBDYAABAGNgAAEAU2AAAQBzYAABIARMwIArYAABAFtgAAEAe2AAAQBHYAABAGdgAAEAV2AAAQB3YAABAE9gAAEAb2AAAQBfYAABAH9gAAEAROAAMIFEwEJAJOAAAgBk4AACAFTgAAIAVOAAAgB04AACAHTgAAIATOAAAgBM4AACAGzgAAIAbOAAAgBc4AACAFzgAAIAfOAAAgB84AACAELgAAIgBDagAQCgAAEgAAIAUuAAAgBS4AACAHLgAAIAcuAAAgBK4AACAErgAAIAauAAAgBq4AACAFrgAAIAWuAAAgB64AACAHrgAAIARuAAAgBG4AACAGbgAAIAZuAAAgBW4AACAFbgAAIAduAAAgB24AACAE7gAAIATuAAAgBu4AACAG7gAAIAXuAAAgBe4AACAH7gAAIAfuAAAiBA7YBB4AACAGHgAAIAYeAAAgBR4AACAFHgAAIAceAAAgBx4AACAEngAAIASeAAAgBp4AACAGngAAIAWeAAAgBZ4AACAHngAAIAeeAAAgBF4AACAEXgAAIAZeAAAgBl4AACAFXgAAIAVeAAAgB14AACAHXgAAIATeAAAgBN4AACAG3gAAIAbeAAAgBd4AACAF3gAAIAfeAAAgB94AACAEPgAAIAQ+AAAgBj4AACAGPgAAIAU+AAAgBT4AACAHPgAAIAc+AAAgBL4AACAEvgAAIAa+AAAgBr4AACAFvgAAIAW+AAAgB74AACAHvgAAIAR+AAAgBH4AACAGfgAAIAZ+AAAgBX4AACAFfgAAIAd+AAAgB34AACAE/gAAIAT+AAAgBv4AACAG/gAAIAX+AAAgBf4AACAH/gAAIAf+AAAiBBAoBQIAABAEggAAEAWCAAAQBEIAABAFQgAAEATCAAAQBcIIFVgMHAEiAAAQBKIAABAFogAAEARiAAAQBWIAABAE4gAAEAXiAAAQBBIAABAFEgAAEASSAAAQBZIAABAEUgAAEAVSAAAQBNIAABAF0gAAEAQOAAEIBg4AABAFDgAAEAcOAAAQBI4AABAGjgAAEAWOAAAQB44AABIC+K4AAdIECxgEFgABcAQWCBUoBFIAABAEMgAAEARyAAASAvlaABEQBBYIGBAEaggXqAQWAA9QBBYADuAEFgAOcgE92gAAEARGAAAQBCYAABAEZgAAEgQACARWAAAQBDYAABAEdgAAEgL59gAKkgQZAAQWAAiyBBaYBBYABtAEFgD3fAxsLTYMfuYcABIC+rooABIEHUYkABAEEjAAEAQWKAAQEQbAcC4C9CosAS40AO4UALwEGhAAEgQWIgQAEgQEKgQAEgQGSgQAEgIS2ggAEAQuEAAQBDIQABIAF24FHeQTgHQsjhQBfhQXLAhARgAVtBgcJBgoFC4A6uAQNAg4BgAclBJQeC2mFAJCFAIiFAICFAHiBAGiBAFyBBh8BEIAABAEUgAAEARiAAAQBHIAABAEggAAEASiAAAQBMIAABAE4gAAEAUCAAAQBUIAABIEGvQFwgAAEAYCAAAQBoIAABAHAgAAEAeCAAG8DHwtyjQBvgQBrgQBngQBjgQBfgQBbgQBXgQBTgQBPgQBLgQBHgQBDgQE8AYCvAEGAUc0CC22BAMcBBIAAAgEIgAAEgQEzgQJLARCAAA6DAAyBnqyAqmuEACSBB3OBAE8BCIAACIEAGIUADIEIt4MADAEggQCUgDKEgQBrAYCBCC8BBIMADIA/SAoBABAMAEGRIQv/gCUfgMDAgIKxBQgJCQoKgEk3gAABAQ2AAAEBDoAAAQEPgAABARCEAAEBEYQAAQEShAABAROEAAEBFIwAAQEVjAABARaMAAEBF4wAAQEYnAABARmcAAEBGpwAAQEbmwABARyBffsEBAQFBYHB1QEHgAABAQiEAAGAXSqCAAEBCowAAYAnsooAAYEBMJkAAYEBTJkAAYEBaLkAAYEBpLkAAYIDdYABzoUBvI0BqJ0BkLwBgAIbHLwAAQEdvAABgA9PgH05A9AqAQ==")),t)})}var xUi=x(T(),1);var bUi=x(T(),1),vs,y1,Iu,lN;function P$(e){if(vs=e,{malloc:y1,free:Iu,memory:lN}=vs,typeof y1!="function"||typeof Iu!="function"||!lN)throw vs=y1=Iu=lN=null,new Error("Invalid WASM module")}function eCe(e,t,n={}){let i=typeof n.level=="number"?n.level:-1,o=typeof n.outBuffer=="number"?n.outBuffer:64*1024,r=typeof n.inBufferSize=="number"?n.inBufferSize:64*1024;return new TransformStream({start(){let s;if(this.out=y1(o),this.in=y1(r),this.inBufferSize=r,this._scratch=new Uint8Array(o),e?(this._process=vs.deflate_process,this._last_consumed=vs.deflate_last_consumed,this._end=vs.deflate_end,this.streamHandle=vs.deflate_new(),t==="gzip"?s=vs.deflate_init_gzip(this.streamHandle,i):t==="deflate-raw"?s=vs.deflate_init_raw(this.streamHandle,i):s=vs.deflate_init(this.streamHandle,i)):t==="deflate64-raw"?(this._process=vs.inflate9_process,this._last_consumed=vs.inflate9_last_consumed,this._end=vs.inflate9_end,this.streamHandle=vs.inflate9_new(),s=vs.inflate9_init_raw(this.streamHandle)):(this._process=vs.inflate_process,this._last_consumed=vs.inflate_last_consumed,this._end=vs.inflate_end,this.streamHandle=vs.inflate_new(),t==="deflate-raw"?s=vs.inflate_init_raw(this.streamHandle):t==="gzip"?s=vs.inflate_init_gzip(this.streamHandle):s=vs.inflate_init(this.streamHandle)),s!==0)throw new Error("init failed:"+s)},transform(s,a){try{let c=s,d=new Uint8Array(lN.buffer),u=this._process,m=this._last_consumed,p=this.out,b=this._scratch,f=0;for(;f<c.length;){let y=Math.min(c.length-f,32768);(!this.in||this.inBufferSize<y)&&(this.in&&Iu&&Iu(this.in),this.in=y1(y),this.inBufferSize=y),d.set(c.subarray(f,f+y),this.in);let _=u(this.streamHandle,this.in,y,p,o,0),S=_&16777215;if(S&&(b.set(d.subarray(p,p+S),0),a.enqueue(b.slice(0,S))),!e){let Z=_>>24&255,R=Z&128?Z-256:Z;if(R<0)throw new Error("process error:"+R)}let A=m(this.streamHandle);if(A===0)break;f+=A}}catch(c){this._end&&this.streamHandle&&this._end(this.streamHandle),this.in&&Iu&&Iu(this.in),this.out&&Iu&&Iu(this.out),a.error(c)}},flush(s){try{let a=new Uint8Array(lN.buffer),c=this._process,d=this.out,u=this._scratch;for(;;){let m=c(this.streamHandle,0,0,d,o,4),p=m&16777215,b=m>>24&255;if(!e){let f=b&128?b-256:b;if(f<0)throw new Error("process error:"+f)}if(p&&(u.set(a.subarray(d,d+p),0),s.enqueue(u.slice(0,p))),b===1||p===0)break}}catch(a){s.error(a)}finally{if(this._end&&this.streamHandle){let a=this._end(this.streamHandle);a!==0&&s.error(new Error("end error:"+a))}this.in&&Iu&&Iu(this.in),this.out&&Iu&&Iu(this.out)}}})}var dN=class{constructor(t="deflate",n){return eCe(!0,t,n)}},uN=class{constructor(t="deflate",n){return eCe(!1,t,n)}};var tCe=!1;async function nCe(e,{baseURI:t}){if(!tCe){let n,i;try{try{i=new URL(e,t)}catch{}n=await(await fetch(i)).arrayBuffer()}catch(r){if(e.startsWith("data:application/wasm;base64,"))n=u0t(e);else throw r}let o=await WebAssembly.instantiate(n);P$(o.instance.exports),tCe=!0}}function u0t(e){let t=e.split(",")[1],n=atob(t),i=n.length,o=new Uint8Array(i);for(let r=0;r<i;++r)o[r]=n.charCodeAt(r);return o.buffer}var X$;$Ze(kp);OAe({initModule:e=>{if(!X$){let{wasmURI:t}=e;typeof t==vu&&(t=t()),X$=nCe(t,e)}return X$}});kp({CompressionStreamZlib:dN,DecompressionStreamZlib:uN});var XUi=x(T(),1);function m0t(e){return typeof e=="string"&&(e=document.getElementById(e)),e}var Pn=m0t;var NUi=x(T(),1);function h0t(e,t){this.position=e,this.headingPitchRange=t}var mN=h0t;var UUi=x(T(),1);function BB(e,t){this.id=t,this.name=e,this.playlistIndex=0,this.playlist=[],this.tourStart=new Se,this.tourEnd=new Se,this.entryStart=new Se,this.entryEnd=new Se,this._activeEntries=[]}BB.prototype.addPlaylistEntry=function(e){this.playlist.push(e)};BB.prototype.play=function(e,t){this.tourStart.raiseEvent();let n=this;oCe.call(this,e,t,function(i){n.playlistIndex=0,i||iCe(n._activeEntries),n.tourEnd.raiseEvent(i)})};BB.prototype.stop=function(){iCe(this._activeEntries)};function iCe(e){for(let t=e.pop();t!==void 0;t=e.pop())t.stop()}function oCe(e,t,n){let i=this.playlist[this.playlistIndex];if(i){let o=f0t.bind(this,e,t,n);if(this._activeEntries.push(i),this.entryStart.raiseEvent(i),i.blocking)i.play(o,e.scene.camera,t);else{let r=this;i.play(function(){r.entryEnd.raiseEvent(i);let s=r._activeEntries.indexOf(i);s>=0&&r._activeEntries.splice(s,1)}),o(e,t,n)}}else l(n)&&n(!1)}function f0t(e,t,n,i){let o=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(o,i),i)n(i);else{let r=this._activeEntries.indexOf(o);r>=0&&this._activeEntries.splice(r,1),this.playlistIndex++,oCe.call(this,e,t,n)}}var hN=BB;var r5i=x(T(),1);var $Ui=x(T(),1);var jUi=x(T(),1),ji=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var t=1.70158;return e===1?1:e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return e===0?0:--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)}}),Bounce:Object.freeze({In:function(e){return 1-ji.Bounce.Out(1-e)},Out:function(e){return e<.36363636363636365?7.5625*e*e:e<.7272727272727273?7.5625*(e-=.5454545454545454)*e+.75:e<.9090909090909091?7.5625*(e-=.8181818181818182)*e+.9375:7.5625*(e-=.9545454545454546)*e+.984375},InOut:function(e){return e<.5?ji.Bounce.In(e*2)*.5:ji.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e<Number.EPSILON?Number.EPSILON:e,e=e>1e4?1e4:e,{In:function(t){return Math.pow(t,e)},Out:function(t){return 1-Math.pow(1-t,e)},InOut:function(t){return t<.5?Math.pow(t*2,e)/2:(1-Math.pow(2-t*2,e))/2+.5}}}}),fN=function(){return performance.now()},p0t=(function(){function e(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this._tweens={},this._tweensAddedDuringUpdate={},this.add.apply(this,t)}return e.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(n){return t._tweens[n]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(){for(var t,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];for(var o=0,r=n;o<r.length;o++){var s=r[o];(t=s._group)===null||t===void 0||t.remove(s),s._group=this,this._tweens[s.getId()]=s,this._tweensAddedDuringUpdate[s.getId()]=s}},e.prototype.remove=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];for(var i=0,o=t;i<o.length;i++){var r=o[i];r._group=void 0,delete this._tweens[r.getId()],delete this._tweensAddedDuringUpdate[r.getId()]}},e.prototype.allStopped=function(){return this.getAll().every(function(t){return!t.isPlaying()})},e.prototype.update=function(t,n){t===void 0&&(t=fN()),n===void 0&&(n=!0);var i=Object.keys(this._tweens);if(i.length!==0)for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o<i.length;o++){var r=this._tweens[i[o]],s=!n;r&&r.update(t,s)===!1&&!n&&this.remove(r)}i=Object.keys(this._tweensAddedDuringUpdate)}},e})(),x1={Linear:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=x1.Utils.Linear;return t<0?r(e[0],e[1],i):t>1?r(e[n],e[n-1],n-i):r(e[o],e[o+1>n?n:o+1],i-o)},Bezier:function(e,t){for(var n=0,i=e.length-1,o=Math.pow,r=x1.Utils.Bernstein,s=0;s<=i;s++)n+=o(1-t,i-s)*o(t,s)*e[s]*r(i,s);return n},CatmullRom:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=x1.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(o=Math.floor(i=n*(1+t))),r(e[(o-1+n)%n],e[o],e[(o+1)%n],e[(o+2)%n],i-o)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],i-n)-e[n]):r(e[o?o-1:0],e[o],e[n<o+1?n:o+1],e[n<o+2?n:o+2],i-o)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=x1.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:(function(){var e=[1];return function(t){var n=1;if(e[t])return e[t];for(var i=t;i>1;i--)n*=i;return e[t]=n,n}})(),CatmullRom:function(e,t,n,i,o){var r=(n-e)*.5,s=(i-t)*.5,a=o*o,c=o*a;return(2*t-2*n+r+s)*c+(-3*t+3*n-2*r-s)*a+r*o+t}}},rCe=(function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e})(),Y$=new p0t,sCe=(function(){function e(t,n){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=ji.Linear.None,this._interpolationFunction=x1.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=rCe.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=t,typeof n=="object"?(this._group=n,n.add(this)):n===!0&&(this._group=Y$,Y$.add(this))}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(t,n){if(n===void 0&&(n=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=n<0?0:n,this},e.prototype.duration=function(t){return t===void 0&&(t=1e3),this._duration=t<0?0:t,this},e.prototype.dynamic=function(t){return t===void 0&&(t=!1),this._isDynamic=t,this},e.prototype.start=function(t,n){if(t===void 0&&(t=fN()),n===void 0&&(n=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||n){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var r in this._valuesEnd)o[r]=this._valuesEnd[r];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,n)}return this},e.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},e.prototype._setupProperties=function(t,n,i,o,r){for(var s in i){var a=t[s],c=Array.isArray(a),d=c?"array":typeof a,u=!c&&Array.isArray(i[s]);if(!(d==="undefined"||d==="function")){if(u){var m=i[s];if(m.length===0)continue;for(var p=[a],b=0,f=m.length;b<f;b+=1){var y=this._handleRelativeValue(a,m[b]);if(isNaN(y)){u=!1,console.warn("Found invalid interpolation list. Skipping.");break}p.push(y)}u&&(i[s]=p)}if((d==="object"||c)&&a&&!u){n[s]=c?[]:{};var _=a;for(var S in _)n[s][S]=_[S];o[s]=c?[]:{};var m=i[s];if(!this._isDynamic){var A={};for(var S in m)A[S]=m[S];i[s]=m=A}this._setupProperties(_,n[s],m,o[s],r)}else(typeof n[s]>"u"||r)&&(n[s]=a),c||(n[s]*=1),u?o[s]=i[s].slice().reverse():o[s]=n[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},e.prototype.pause=function(t){return t===void 0&&(t=fN()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this)},e.prototype.resume=function(t){return t===void 0&&(t=fN()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this)},e.prototype.stopChainedTweens=function(){for(var t=0,n=this._chainedTweens.length;t<n;t++)this._chainedTweens[t].stop();return this},e.prototype.group=function(t){return t?(t.add(this),this):(console.warn("tween.group() without args has been removed, use group.add(tween) instead."),this)},e.prototype.remove=function(){var t;return(t=this._group)===null||t===void 0||t.remove(this),this},e.prototype.delay=function(t){return t===void 0&&(t=0),this._delayTime=t,this},e.prototype.repeat=function(t){return t===void 0&&(t=0),this._initialRepeat=t,this._repeat=t,this},e.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},e.prototype.yoyo=function(t){return t===void 0&&(t=!1),this._yoyo=t,this},e.prototype.easing=function(t){return t===void 0&&(t=ji.Linear.None),this._easingFunction=t,this},e.prototype.interpolation=function(t){return t===void 0&&(t=x1.Linear),this._interpolationFunction=t,this},e.prototype.chain=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return this._chainedTweens=t,this},e.prototype.onStart=function(t){return this._onStartCallback=t,this},e.prototype.onEveryStart=function(t){return this._onEveryStartCallback=t,this},e.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},e.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},e.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},e.prototype.onStop=function(t){return this._onStopCallback=t,this},e.prototype.update=function(t,n){var i=this,o;if(t===void 0&&(t=fN()),n===void 0&&(n=e.autoStartOnUpdate),this._isPaused)return!0;var r;if(!this._goToEnd&&!this._isPlaying)if(n)this.start(t,!0);else return!1;if(this._goToEnd=!1,t<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var s=t-this._startTime,a=this._duration+((o=this._repeatDelayTime)!==null&&o!==void 0?o:this._delayTime),c=this._duration+this._repeat*a,d=function(){if(i._duration===0||s>c)return 1;var y=Math.trunc(s/a),_=s-y*a,S=Math.min(_/i._duration,1);return S===0&&s===i._duration?1:S},u=d(),m=this._easingFunction(u);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,m),this._onUpdateCallback&&this._onUpdateCallback(this._object,u),this._duration===0||s>=this._duration)if(this._repeat>0){var p=Math.min(Math.trunc((s-this._duration)/a)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=p);for(r in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[r]=="string"&&(this._valuesStartRepeat[r]=this._valuesStartRepeat[r]+parseFloat(this._valuesEnd[r])),this._yoyo&&this._swapEndStartRepeatValues(r),this._valuesStart[r]=this._valuesStartRepeat[r];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=a*p,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var b=0,f=this._chainedTweens.length;b<f;b++)this._chainedTweens[b].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(t,n,i,o){for(var r in i)if(n[r]!==void 0){var s=n[r]||0,a=i[r],c=Array.isArray(t[r]),d=Array.isArray(a),u=!c&&d;u?t[r]=this._interpolationFunction(a,o):typeof a=="object"&&a?this._updateProperties(t[r],s,a,o):(a=this._handleRelativeValue(s,a),typeof a=="number"&&(t[r]=s+(a-s)*o))}},e.prototype._handleRelativeValue=function(t,n){return typeof n!="string"?n:n.charAt(0)==="+"||n.charAt(0)==="-"?t+parseFloat(n):parseFloat(n)},e.prototype._swapEndStartRepeatValues=function(t){var n=this._valuesStartRepeat[t],i=this._valuesEnd[t];typeof i=="string"?this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(i):this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=n},e.autoStartOnUpdate=!1,e})();var DUi=rCe.nextId,Hp=Y$,OUi=Hp.getAll.bind(Hp),BUi=Hp.removeAll.bind(Hp),zUi=Hp.add.bind(Hp),HUi=Hp.remove.bind(Hp),KUi=Hp.update.bind(Hp);var b0t={LINEAR_NONE:ji.Linear.None,QUADRATIC_IN:ji.Quadratic.In,QUADRATIC_OUT:ji.Quadratic.Out,QUADRATIC_IN_OUT:ji.Quadratic.InOut,CUBIC_IN:ji.Cubic.In,CUBIC_OUT:ji.Cubic.Out,CUBIC_IN_OUT:ji.Cubic.InOut,QUARTIC_IN:ji.Quartic.In,QUARTIC_OUT:ji.Quartic.Out,QUARTIC_IN_OUT:ji.Quartic.InOut,QUINTIC_IN:ji.Quintic.In,QUINTIC_OUT:ji.Quintic.Out,QUINTIC_IN_OUT:ji.Quintic.InOut,SINUSOIDAL_IN:ji.Sinusoidal.In,SINUSOIDAL_OUT:ji.Sinusoidal.Out,SINUSOIDAL_IN_OUT:ji.Sinusoidal.InOut,EXPONENTIAL_IN:ji.Exponential.In,EXPONENTIAL_OUT:ji.Exponential.Out,EXPONENTIAL_IN_OUT:ji.Exponential.InOut,CIRCULAR_IN:ji.Circular.In,CIRCULAR_OUT:ji.Circular.Out,CIRCULAR_IN_OUT:ji.Circular.InOut,ELASTIC_IN:ji.Elastic.In,ELASTIC_OUT:ji.Elastic.Out,ELASTIC_IN_OUT:ji.Elastic.InOut,BACK_IN:ji.Back.In,BACK_OUT:ji.Back.Out,BACK_IN_OUT:ji.Back.InOut,BOUNCE_IN:ji.Bounce.In,BOUNCE_OUT:ji.Bounce.Out,BOUNCE_IN_OUT:ji.Bounce.InOut},xs=Object.freeze(b0t);function zB(e,t,n){this.type="KmlTourFlyTo",this.blocking=!0,this.activeCamera=null,this.activeCallback=null,this.duration=e,this.view=n,this.flyToMode=t}zB.prototype.play=function(e,t,n){if(this.activeCamera=t,l(e)&&e!==null){let o=this;this.activeCallback=function(r){delete o.activeCallback,delete o.activeCamera,e(l(r)?!1:r)}}let i=this.getCameraOptions(n);if(this.view.headingPitchRoll)t.flyTo(i);else if(this.view.headingPitchRange){let o=new ue(this.view.position);t.flyToBoundingSphere(o,i)}};zB.prototype.stop=function(){l(this.activeCamera)&&this.activeCamera.cancelFlight(),l(this.activeCallback)&&this.activeCallback(!0)};zB.prototype.getCameraOptions=function(e){let t={duration:this.duration};return l(this.activeCallback)&&(t.complete=this.activeCallback),this.flyToMode==="smooth"&&(t.easingFunction=xs.LINEAR_NONE),this.view.headingPitchRoll?(t.destination=this.view.position,t.orientation=this.view.headingPitchRoll):this.view.headingPitchRange&&(t.offset=this.view.headingPitchRange),l(e)&&(t=vt(t,e)),t};var pN=zB;var c5i=x(T(),1);function N$(e){this.type="KmlTourWait",this.blocking=!0,this.duration=e,this.timeout=null}N$.prototype.play=function(e){let t=this;this.activeCallback=e,this.timeout=setTimeout(function(){delete t.activeCallback,e(!1)},this.duration*1e3)};N$.prototype.stop=function(){clearTimeout(this.timeout),l(this.activeCallback)&&this.activeCallback(!0)};var bN=N$;var bCe={avi:"video/x-msvideo",bmp:"image/bmp",bz2:"application/x-bzip2",chm:"application/vnd.ms-htmlhelp",css:"text/css",csv:"text/csv",doc:"application/msword",dvi:"application/x-dvi",eps:"application/postscript",flv:"video/x-flv",gif:"image/gif",gz:"application/x-gzip",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",jnlp:"application/x-java-jnlp-file",jpeg:"image/jpeg",jpg:"image/jpeg",m3u:"audio/x-mpegurl",m4v:"video/mp4",mathml:"application/mathml+xml",mid:"audio/midi",midi:"audio/midi",mov:"video/quicktime",mp3:"audio/mpeg",mp4:"video/mp4",mp4v:"video/mp4",mpeg:"video/mpeg",mpg:"video/mpeg",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",ogg:"application/ogg",pdf:"application/pdf",png:"image/png",pps:"application/vnd.ms-powerpoint",ppt:"application/vnd.ms-powerpoint",ps:"application/postscript",qt:"video/quicktime",rdf:"application/rdf+xml",rss:"application/rss+xml",rtf:"application/rtf",svg:"image/svg+xml",swf:"application/x-shockwave-flash",text:"text/plain",tif:"image/tiff",tiff:"image/tiff",txt:"text/plain",wav:"audio/x-wav",wma:"audio/x-ms-wma",wmv:"video/x-ms-wmv",xml:"application/xml",zip:"application/zip",detectFromFilename:function(e){let t=e.toLowerCase();return t=T0(t),bCe[t]}},K$;typeof DOMParser<"u"&&(K$=new DOMParser);var g0t=new $O({stripPrefix:!1,email:!1,replaceFn:function(e){return e.urlMatchType==="scheme"||e.urlMatchType==="www"}}),Cx=32,aCe=2414016,cCe=1,lCe=16093e3,dCe=.1,uCe=[null,void 0,"http://www.opengis.net/kml/2.2","http://earth.google.com/kml/2.2","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.0"],mCe=["http://www.google.com/kml/ext/2.2"],y0t=["http://www.w3.org/2005/Atom"],Ue={kml:uCe,gx:mCe,atom:y0t,kmlgx:uCe.concat(mCe)},J$={Document:RCe,Folder:Y0t,Placemark:N0t,NetworkLink:H0t,GroundOverlay:O0t,PhotoOverlay:ECe,ScreenOverlay:D0t,Tour:M0t},D$=class{constructor(t){this._dataSource=t,this._deferred=ad(),this._stack=[],this._promises=[],this._timeoutSet=!1,this._used=!1,this._started=0,this._timeThreshold=1e3}get dataSource(){return this._dataSource}addNodes(t,n){this._stack.push({nodes:t,index:0,processingData:n}),this._used=!0}addPromise(t){this._promises.push(t)}wait(){let t=this._deferred;return this._used||t.resolve(),Promise.all([t.promise,Promise.all(this._promises)])}process(){let t=this._stack.length===1;return t&&(this._started=lg._getTimestamp()),this._process(t)}_giveUpTime(){if(this._timeoutSet)return;this._timeoutSet=!0,this._timeThreshold=50;let t=this;setTimeout(function(){t._timeoutSet=!1,t._started=lg._getTimestamp(),t._process(!0)},0)}_nextNode(){let t=this._stack,n=t[t.length-1],i=n.index,o=n.nodes;if(i!==o.length)return++n.index,o[i]}_pop(){let t=this._stack;return t.pop(),t.length===0?(this._deferred.resolve(),!1):!0}_process(t){let n=this.dataSource,i=this._stack[this._stack.length-1].processingData,o=this._nextNode();for(;l(o);){let r=J$[o.localName];if(l(r)&&(Ue.kml.indexOf(o.namespaceURI)!==-1||Ue.gx.indexOf(o.namespaceURI)!==-1)&&(r(n,o,i,this),this._timeoutSet||lg._getTimestamp()>this._started+this._timeThreshold)){this._giveUpTime();return}o=this._nextNode()}this._pop()&&t&&this._process(!0)}};function x0t(e){let t=e.slice(0,Math.min(4,e.size)),n=ad(),i=new FileReader;return i.addEventListener("load",function(){n.resolve(new DataView(i.result).getUint32(0,!1)===1347093252)}),i.addEventListener("error",function(){n.reject(i.error)}),i.readAsArrayBuffer(t),n.promise}function T0t(e){let t=ad(),n=new FileReader;return n.addEventListener("load",function(){t.resolve(n.result)}),n.addEventListener("error",function(){t.reject(n.error)}),n.readAsText(e),t.promise}function gCe(e){let t={xsi:"http://www.w3.org/2001/XMLSchema-instance"},n,i,o,r;for(let s in t)t.hasOwnProperty(s)&&(o=RegExp(`[< ]${s}:`),r=`xmlns:${s}=`,o.test(e)&&e.indexOf(r)===-1&&(l(n)||(n=e.substr(0,e.indexOf("<kml")+4),i=e.substr(n.length)),n+=` ${r}"${t[s]}"`));return l(n)&&(e=n+i),e}function yCe(e){let t=e.indexOf("xmlns:"),n=e.indexOf(">",t),i,o,r;for(;t!==-1&&t<n;)i=e.slice(t,e.indexOf('"',t)),o=t,t=e.indexOf(i,t+1),t!==-1?(r=e.indexOf('"',e.indexOf('"',t)+1),e=e.slice(0,t-1)+e.slice(r+1,e.length),t=e.indexOf("xmlns:",o-1)):t=e.indexOf("xmlns:",o+1);return e}async function _0t(e,t){let n=await e.getData(new BY);n=gCe(n),n=yCe(n),t.kml=K$.parseFromString(n,"application/xml")}async function w$(e,t){let n=bCe.detectFromFilename(e.filename)??"application/octet-stream",i=await e.getData(new DY(n));t[e.filename]=i}function Pu(e,t,n,i){let o=i.keys,r=new gN.default("."),s=e.querySelectorAll(t);for(let a=0;a<s.length;a++){let c=s[a],d=c.getAttribute(n);if(l(d)){let m=new gN.default(d).absoluteTo(r).toString(),p=o.indexOf(m);if(p!==-1){let b=o[p];c.setAttribute(n,i[b]),t==="a"&&c.getAttribute("download")===null&&c.setAttribute("download",b)}}}}function Xu(e,t,n,i){let o=e.querySelectorAll(t);for(let r=0;r<o.length;r++){let s=o[r],a=s.getAttribute(n),c=j$(a,i);l(c)&&s.setAttribute(n,c.url)}}function xCe(e,t,n){let i=ga(e,"id");i=l(i)&&i.length!==0?i:zn(),l(n)&&(i=n+i);let o=t.getById(i);return l(o)&&(i=zn(),l(n)&&(i=n+i)),o=t.add(new Oo({id:i})),l(o.kml)||(o.addProperty("kml"),o.kml=new H$),o}function yN(e,t){return e==="absolute"||e==="relativeToGround"||t==="relativeToSeaFloor"}function jB(e,t){if(!l(e))return h.fromDegrees(0,0,0,t);let n=e.match(/[^\s,\n]+/g);if(!l(n))return h.fromDegrees(0,0,0,t);let i=parseFloat(n[0]),o=parseFloat(n[1]),r=parseFloat(n[2]);return i=isNaN(i)?0:i,o=isNaN(o)?0:o,r=isNaN(r)?0:r,h.fromDegrees(i,o,r,t)}function HB(e,t){if(!l(e))return;let n=e.textContent.match(/[^\s\n]+/g);if(!l(n))return;let i=n.length,o=new Array(i),r=0;for(let s=0;s<i;s++)o[r++]=jB(n[s],t);return o}function Rx(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function ga(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Qi(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function hCe(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagNameNS("*",t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function Sf(e,t,n){if(!l(e))return[];let i=[],o=e.childNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function Ti(e,t,n){let i=Qi(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function Xn(e,t,n){let i=Qi(e,t,n);if(l(i))return i.textContent.trim()}function Af(e,t,n){let i=Qi(e,t,n);if(l(i)){let o=i.textContent.trim();return o==="1"||/^true$/i.test(o)}}function j$(e,t,n){if(!l(e))return;let i;if(l(n)){e=e.replace(/\\/g,"/");let o=n[e];if(l(o))i=new We({url:o});else{let r=new gN.default(t.getUrlComponent()),s=new gN.default(e);o=n[s.absoluteTo(r)],l(o)&&(i=new We({url:o}))}}return l(i)||(i=t.getDerivedResource({url:e})),i}var Xd={maximumRed:void 0,red:void 0,maximumGreen:void 0,green:void 0,maximumBlue:void 0,blue:void 0};function O$(e,t){if(!l(e)||/^\s*$/gm.test(e))return;e[0]==="#"&&(e=e.substring(1));let n=parseInt(e.substring(0,2),16)/255,i=parseInt(e.substring(2,4),16)/255,o=parseInt(e.substring(4,6),16)/255,r=parseInt(e.substring(6,8),16)/255;return t?(r>0?(Xd.maximumRed=r,Xd.red=void 0):(Xd.maximumRed=void 0,Xd.red=0),o>0?(Xd.maximumGreen=o,Xd.green=void 0):(Xd.maximumGreen=void 0,Xd.green=0),i>0?(Xd.maximumBlue=i,Xd.blue=void 0):(Xd.maximumBlue=void 0,Xd.blue=0),Xd.alpha=n,U.fromRandom(Xd)):new U(r,o,i,n)}function vS(e,t,n){let i=Xn(e,t,n);if(l(i))return O$(i,Xn(e,"colorMode",n)==="random")}function S0t(e){let t=Qi(e,"TimeStamp",Ue.kmlgx),n=Xn(t,"when",Ue.kmlgx);if(!l(t)||!l(n)||n.length===0)return;let i=Q.fromIso8601(n),o=new ps;return o.addInterval(new Tn({start:i,stop:qe.MAXIMUM_VALUE})),o}function A0t(e){let t=Qi(e,"TimeSpan",Ue.kmlgx);if(!l(t))return;let n,i=Qi(t,"begin",Ue.kmlgx),o=l(i)?Q.fromIso8601(i.textContent):void 0,r=Qi(t,"end",Ue.kmlgx),s=l(r)?Q.fromIso8601(r.textContent):void 0;if(l(o)&&l(s)){if(Q.lessThan(s,o)){let a=o;o=s,s=a}n=new ps,n.addInterval(new Tn({start:o,stop:s}))}else l(o)?(n=new ps,n.addInterval(new Tn({start:o,stop:qe.MAXIMUM_VALUE}))):l(s)&&(n=new ps,n.addInterval(new Tn({start:qe.MINIMUM_VALUE,stop:s})));return n}function TCe(){let e=new Pc;return e.width=Cx,e.height=Cx,e.scaleByDistance=new Bt(aCe,cCe,lCe,dCe),e.pixelOffsetScaleByDistance=new Bt(aCe,cCe,lCe,dCe),e}function Q$(){let e=new Zh;return e.outline=!0,e.outlineColor=U.WHITE,e}function _Ce(){let e=new Ah;return e.translucencyByDistance=new Bt(3e6,1,5e6,0),e.pixelOffset=new k(17,0),e.horizontalOrigin=Fi.LEFT,e.font="16px sans-serif",e.style=cr.FILL_AND_OUTLINE,e}function q$(e,t,n,i,o){let r=Xn(e,"href",Ue.kml);if(!l(r)||r.length===0)return;if(r.indexOf("root://icons/palette-")===0){let a=r.charAt(21),c=Ti(e,"x",Ue.gx)??0,d=Ti(e,"y",Ue.gx)??0;c=Math.min(c/32,7),d=7-Math.min(d/32,7);let u=8*d+c;r=`https://maps.google.com/mapfiles/kml/pal${a}/icon${u}.png`}let s=j$(r,n,i);if(o){let a=Xn(e,"refreshMode",Ue.kml),c=Xn(e,"viewRefreshMode",Ue.kml);a==="onInterval"||a==="onExpire"?_t(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&_t(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let d=Xn(e,"viewBoundScale",Ue.kml)??1,u=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",m=Xn(e,"viewFormat",Ue.kml)??u,p=Xn(e,"httpQuery",Ue.kml);l(m)&&s.setQueryParameters($d(JB(m))),l(p)&&s.setQueryParameters($d(JB(p)));let b=t._ellipsoid;return eee(s,t.camera,t.canvas,d,t._lastCameraView.bbox,b),s}return s}function Z0t(e,t,n,i,o){let r=Ti(t,"scale",Ue.kml),s=Ti(t,"heading",Ue.kml),a=vS(t,"color",Ue.kml),c=Qi(t,"Icon",Ue.kml),d=q$(c,e,i,o,!1);l(c)&&!l(d)&&(d=!1);let u=Ti(c,"x",Ue.gx),m=Ti(c,"y",Ue.gx),p=Ti(c,"w",Ue.gx),b=Ti(c,"h",Ue.gx),f=Qi(t,"hotSpot",Ue.kml),y=Rx(f,"x"),_=Rx(f,"y"),S=ga(f,"xunits"),A=ga(f,"yunits"),Z=n.billboard;l(Z)||(Z=TCe(),n.billboard=Z),Z.image=d,Z.scale=r,Z.color=a,(l(u)||l(m)||l(p)||l(b))&&(Z.imageSubRegion=new it(u,m,p,b)),l(s)&&s!==0&&(Z.rotation=W.toRadians(-s),Z.alignedAxis=h.UNIT_Z),r=r??1;let R,G;l(y)&&(S==="pixels"?R=-y*r:S==="insetPixels"?R=(y-Cx)*r:S==="fraction"&&(R=-y*Cx*r),R+=Cx*.5*r),l(_)&&(A==="pixels"?G=_*r:A==="insetPixels"?G=(-_+Cx)*r:A==="fraction"&&(G=_*Cx*r),G-=Cx*.5*r),(l(R)||l(G))&&(Z.pixelOffset=new k(R,G))}function KB(e,t,n,i,o){for(let r=0,s=t.childNodes.length;r<s;r++){let a=t.childNodes.item(r);if(a.localName==="IconStyle")Z0t(e,a,n,i,o);else if(a.localName==="LabelStyle"){let c=n.label;l(c)||(c=_Ce(),n.label=c),c.scale=Ti(a,"scale",Ue.kml)??c.scale,c.fillColor=vS(a,"color",Ue.kml)??c.fillColor,c.text=n.name}else if(a.localName==="LineStyle"){let c=n.polyline;l(c)||(c=new Dc,n.polyline=c),c.width=Ti(a,"width",Ue.kml),c.material=vS(a,"color",Ue.kml),l(vS(a,"outerColor",Ue.gx))&&_t("kml-gx:outerColor","KML - gx:outerColor is not supported in a LineStyle"),l(Ti(a,"outerWidth",Ue.gx))&&_t("kml-gx:outerWidth","KML - gx:outerWidth is not supported in a LineStyle"),l(Ti(a,"physicalWidth",Ue.gx))&&_t("kml-gx:physicalWidth","KML - gx:physicalWidth is not supported in a LineStyle"),l(Af(a,"labelVisibility",Ue.gx))&&_t("kml-gx:labelVisibility","KML - gx:labelVisibility is not supported in a LineStyle")}else if(a.localName==="PolyStyle"){let c=n.polygon;l(c)||(c=Q$(),n.polygon=c),c.material=vS(a,"color",Ue.kml)??c.material,c.fill=Af(a,"fill",Ue.kml)??c.fill,c.outline=Af(a,"outline",Ue.kml)??c.outline}else if(a.localName==="BalloonStyle"){let c=O$(Xn(a,"bgColor",Ue.kml))??U.WHITE,d=O$(Xn(a,"textColor",Ue.kml))??U.BLACK,u=Xn(a,"text",Ue.kml);n.addProperty("balloonStyle"),n.balloonStyle={bgColor:c,textColor:d,text:u}}else if(a.localName==="ListStyle"){let c=Xn(a,"listItemType",Ue.kml);(c==="radioFolder"||c==="checkOffOnly")&&_t(`kml-listStyle-${c}`,`KML - Unsupported ListStyle with listItemType: ${c}`)}}}function C0t(e,t,n,i,o){let r=new Oo,s,a=-1,c=t.childNodes,d=c.length;for(let m=0;m<d;m++){let p=c[m];(p.localName==="Style"||p.localName==="StyleMap")&&(a=m)}if(a!==-1){let m=c[a];if(m.localName==="Style")KB(e,m,r,i,o);else{let p=Sf(m,"Pair",Ue.kml);for(let b=0;b<p.length;b++){let f=p[b],y=Xn(f,"key",Ue.kml);if(y==="normal"){let _=Xn(f,"styleUrl",Ue.kml);if(l(_))s=n.getById(_),l(s)||(s=n.getById(`#${_}`)),l(s)&&r.merge(s);else{let S=Qi(f,"Style",Ue.kml);KB(e,S,r,i,o)}}else _t(`kml-styleMap-${y}`,`KML - Unsupported StyleMap key: ${y}`)}}}let u=Xn(t,"styleUrl",Ue.kml);if(l(u)){let m=u;if(u[0]!=="#"&&u.indexOf("#")!==-1){let p=u.split("#"),b=p[0];m=`${i.getDerivedResource({url:b}).getUrlComponent()}#${p[1]}`}s=n.getById(m),l(s)||(s=n.getById(`#${m}`)),l(s)&&r.merge(s)}return r}function R0t(e,t,n){return t.fetchXML().then(function(i){return SCe(e,i,n,t,!0)})}function SCe(e,t,n,i,o,r){let s,a,c,d,u=hCe(t,"Style",Ue.kml);if(l(u)){let y=u.length;for(s=0;s<y;s++)d=u[s],a=ga(d,"id"),l(a)&&(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),l(n.getById(a))||(c=new Oo({id:a}),n.add(c),KB(e,d,c,i,r)))}let m=hCe(t,"StyleMap",Ue.kml);if(l(m)){let y=m.length;for(s=0;s<y;s++){let _=m[s];if(a=ga(_,"id"),l(a)){let S=Sf(_,"Pair",Ue.kml);for(let A=0;A<S.length;A++){let Z=S[A],R=Xn(Z,"key",Ue.kml);if(R==="normal"){if(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),!l(n.getById(a))){c=n.getOrCreateEntity(a);let G=Xn(Z,"styleUrl",Ue.kml);if(l(G)){G[0]!=="#"&&(G=`#${G}`),o&&l(i)&&(G=i.getUrlComponent()+G);let E=n.getById(G);l(E)&&c.merge(E)}else d=Qi(Z,"Style",Ue.kml),KB(e,d,c,i,r)}}else _t(`kml-styleMap-${R}`,`KML - Unsupported StyleMap key: ${R}`)}}}}let p=[],b=t.getElementsByTagName("styleUrl"),f=b.length;for(s=0;s<f;s++){let y=b[s].textContent;if(y[0]!=="#"){let _=y.split("#");if(_.length===2){let S=_[0],A=i.getDerivedResource({url:S});p.push(R0t(e,A,n))}}}return p}function $$(e,t,n){let i=new zb(e,t.id,["position"]),o=new Fp(t.position);t.polyline=l(n.polyline)?n.polyline.clone():new Dc,t.polyline.positions=new Bb([i,o])}function ACe(e,t){return!l(e)&&!l(t)||e==="clampToGround"?st.CLAMP_TO_GROUND:e==="relativeToGround"?st.RELATIVE_TO_GROUND:e==="absolute"?st.NONE:t==="clampToSeaFloor"?(_t("kml-gx:altitudeMode-clampToSeaFloor","KML - <gx:altitudeMode>:clampToSeaFloor is currently not supported, using <kml:altitudeMode>:clampToGround."),st.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(_t("kml-gx:altitudeMode-relativeToSeaFloor","KML - <gx:altitudeMode>:relativeToSeaFloor is currently not supported, using <kml:altitudeMode>:relativeToGround."),st.RELATIVE_TO_GROUND):(l(e)?_t("kml-altitudeMode-unknown",`KML - Unknown <kml:altitudeMode>:${e}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`):_t("kml-gx:altitudeMode-unknown",`KML - Unknown <gx:altitudeMode>:${t}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`),st.CLAMP_TO_GROUND)}function V0t(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&_t("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${t??n}`),new Fp(e))}function G0t(e,t,n,i){if(!l(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&_t("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${t??n}`);let o=e.length;for(let r=0;r<o;r++){let s=e[r];i.scaleToGeodeticSurface(s,s)}return e}function QB(e,t,n,i){let o=t.label;l(o)||(o=l(n.label)?n.label.clone():_Ce(),t.label=o),o.text=t.name;let r=t.billboard;l(r)||(r=l(n.billboard)?n.billboard.clone():TCe(),t.billboard=r),l(r.image)?r.image.getValue()||(r.image=void 0):r.image=e._pinBuilder.fromColor(U.YELLOW,64);let s=1;l(r.scale)&&(s=r.scale.getValue(),s!==0?o.pixelOffset=new k(s*16+1,0):(o.pixelOffset=void 0,o.horizontalOrigin=void 0)),l(i)&&e._clampToGround&&(r.heightReference=i,o.heightReference=i)}function ZCe(e,t){let n=e.path;l(n)||(n=new M0,n.leadTime=0,e.path=n);let i=t.polyline;l(i)&&(n.material=i.material,n.width=i.width)}function E0t(e,t,n,i,o){let r=Xn(n,"coordinates",Ue.kml),s=Xn(n,"altitudeMode",Ue.kml),a=Xn(n,"altitudeMode",Ue.gx),c=Af(n,"extrude",Ue.kml),d=e._ellipsoid,u=jB(r,d);return i.position=u,QB(e,i,o,ACe(s,a)),c&&yN(s,a)&&$$(t,i,o),!0}function fCe(e,t,n,i,o){let r=Qi(n,"coordinates",Ue.kml),s=Xn(n,"altitudeMode",Ue.kml),a=Xn(n,"altitudeMode",Ue.gx),c=Af(n,"extrude",Ue.kml),d=Af(n,"tessellate",Ue.kml),u=yN(s,a),m=Ti(n,"drawOrder",Ue.gx),p=e._ellipsoid,b=HB(r,p),f=o.polyline;if(u&&c){let y=new k0;i.wall=y,y.positions=b;let _=o.polygon;l(_)&&(y.fill=_.fill,y.material=_.material),y.outline=!0,l(f)?(y.outlineColor=l(f.material)?f.material.color:U.WHITE,y.outlineWidth=f.width):l(_)&&(y.outlineColor=l(_.material)?_.material.color:U.WHITE)}else if(e._clampToGround&&!u&&d){let y=new Dc;y.clampToGround=!0,i.polyline=y,y.positions=b,l(f)?(y.material=l(f.material)?f.material.color.getValue(qe.MINIMUM_VALUE):U.WHITE,y.width=f.width??1):(y.material=U.WHITE,y.width=1),y.zIndex=m}else l(m)&&_t("kml-gx:drawOrder","KML - gx:drawOrder is not supported in LineStrings when clampToGround is false"),e._clampToGround&&!d&&_t("kml-line-tesselate","Ignoring clampToGround for KML lines without the tessellate flag."),f=l(f)?f.clone():new Dc,i.polyline=f,f.positions=G0t(b,s,a,p),(!d||u)&&(f.arcType=ln.NONE);return!0}function L0t(e,t,n,i,o){let r=Qi(n,"outerBoundaryIs",Ue.kml),s=Qi(r,"LinearRing",Ue.kml),a=Qi(s,"coordinates",Ue.kml),c=e._ellipsoid,d=HB(a,c),u=Af(n,"extrude",Ue.kml),m=Xn(n,"altitudeMode",Ue.kml),p=Xn(n,"altitudeMode",Ue.gx),b=yN(m,p),f=l(o.polygon)?o.polygon.clone():Q$(),y=o.polyline;if(l(y)&&(f.outlineColor=l(y.material)?y.material.color:U.WHITE,f.outlineWidth=y.width),i.polygon=f,b?(f.perPositionHeight=!0,f.extrudedHeight=u?0:void 0):e._clampToGround||(f.height=0),l(d)){let _=new Tc(d),S=Sf(n,"innerBoundaryIs",Ue.kml);for(let A=0;A<S.length;A++){s=Sf(S[A],"LinearRing",Ue.kml);for(let Z=0;Z<s.length;Z++)a=Qi(s[Z],"coordinates",Ue.kml),d=HB(a,c),l(d)&&_.holes.push(new Tc(d))}f.hierarchy=_}return!0}function W0t(e,t,n,i,o){let r=Xn(n,"altitudeMode",Ue.kml),s=Xn(n,"altitudeMode",Ue.gx),a=Sf(n,"coord",Ue.gx),c=Sf(n,"angles",Ue.gx),d=Sf(n,"when",Ue.kml),u=Af(n,"extrude",Ue.kml),m=yN(r,s),p=e._ellipsoid;c.length>0&&_t("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let b=Math.min(a.length,d.length),f=[],y=[];for(let S=0;S<b;S++){let A=jB(a[S].textContent,p);f.push(A),y.push(Q.fromIso8601(d[S].textContent))}let _=new ic;return _.addSamples(y,f),i.position=_,QB(e,i,o,ACe(r,s)),ZCe(i,o),i.availability=new ps,d.length>0&&i.availability.addInterval(new Tn({start:y[0],stop:y[y.length-1]})),m&&u&&$$(t,i,o),!0}function pCe(e,t,n,i,o,r,s,a,c){let d=e[0],u=e[e.length-1],m=new ic;m.addSamples(e,t),n.intervals.addInterval(new Tn({start:d,stop:u,isStartIncluded:c,isStopIncluded:c,data:V0t(m,s,a)})),i.addInterval(new Tn({start:d,stop:u,isStartIncluded:c,isStopIncluded:c})),o.intervals.addInterval(new Tn({start:d,stop:u,isStartIncluded:c,isStopIncluded:c,data:r}))}function v0t(e,t,n,i,o){let r=Af(n,"interpolate",Ue.gx),s=Sf(n,"Track",Ue.gx),a,c,d,u=!1,m=new Kb,p=new ps,b=new tc,f=e._ellipsoid;for(let y=0,_=s.length;y<_;y++){let S=s[y],A=Sf(S,"when",Ue.kml),Z=Sf(S,"coord",Ue.gx),R=Xn(S,"altitudeMode",Ue.kml),G=Xn(S,"altitudeMode",Ue.gx),E=yN(R,G),v=Af(S,"extrude",Ue.kml),I=Math.min(Z.length,A.length),X=[];a=[];for(let Y=0;Y<I;Y++){let g=jB(Z[Y].textContent,f);X.push(g),a.push(Q.fromIso8601(A[Y].textContent))}r&&(l(c)&&pCe([c,a[0]],[d,X[0]],b,p,m,!1,"absolute",void 0,!1),c=a[I-1],d=X[X.length-1]),pCe(a,X,b,p,m,E&&v,R,G,!0),u=u||E&&v}return i.availability=p,i.position=b,QB(e,i,o),ZCe(i,o),u&&($$(t,i,o),i.polyline.show=m),!0}var CCe={Point:E0t,LineString:fCe,LinearRing:fCe,Polygon:L0t,Track:W0t,MultiTrack:v0t,MultiGeometry:F0t,Model:I0t};function F0t(e,t,n,i,o,r){let s=n.childNodes,a=!1;for(let c=0,d=s.length;c<d;c++){let u=s.item(c),m=CCe[u.localName];if(l(m)){let p=xCe(u,t,r);p.parent=i,p.name=i.name,p.availability=i.availability,p.description=i.description,p.kml=i.kml,m(e,t,u,p,o)&&(a=!0)}}return a}function I0t(e,t,n,i,o){return _t("kml-unsupportedGeometry",`KML - Unsupported geometry: ${n.localName}`),!1}function P0t(e,t){let n=Qi(e,"ExtendedData",Ue.kml);if(!l(n))return;l(Qi(n,"SchemaData",Ue.kml))&&_t("kml-schemaData","KML - SchemaData is unsupported"),l(ga(n,"xmlns:prefix"))&&_t("kml-extendedData","KML - ExtendedData with xmlns:prefix is unsupported");let i={},o=Sf(n,"Data",Ue.kml);if(l(o)){let r=o.length;for(let s=0;s<r;s++){let a=o[s],c=ga(a,"name");l(c)&&(i[c]={displayName:Xn(a,"displayName",Ue.kml),value:Xn(a,"value",Ue.kml)})}}t.kml.extendedData=i}var Po;typeof document<"u"&&(Po=document.createElement("div"));function X0t(e,t,n,i,o){let r,s,a,c=t.kml,d=c.extendedData,u=Xn(e,"description",Ue.kml),m=t.balloonStyle??n.balloonStyle,p=U.WHITE,b=U.BLACK,f=u;l(m)&&(p=m.bgColor??U.WHITE,b=m.textColor??U.BLACK,f=m.text??u);let y;if(l(f)){if(f=f.replace("$[name]",t.name??""),f=f.replace("$[description]",u??""),f=f.replace("$[address]",c.address??""),f=f.replace("$[Snippet]",c.snippet??""),f=f.replace("$[id]",t.id),f=f.replace("$[geDirections]",""),l(d)){let A=f.match(/\$\[.+?\]/g);if(A!==null)for(r=0;r<A.length;r++){let Z=A[r],R=Z.substr(2,Z.length-3),G=/\/displayName$/.test(R);R=R.replace(/\/displayName$/,""),y=d[R],l(y)&&(y=G?y.displayName:y.value),l(y)&&(f=f.replace(Z,y??""))}}}else if(l(d)&&(a=Object.keys(d),a.length>0)){for(f='<table class="cesium-infoBox-defaultTable cesium-infoBox-defaultTable-lighter"><tbody>',r=0;r<a.length;r++)s=a[r],y=d[s],f+=`<tr><th>${y.displayName??s}</th><td>${y.value??""}</td></tr>`;f+="</tbody></table>"}if(!l(f))return;f=g0t.link(f),Po.innerHTML=f;let _=Po.querySelectorAll("a");for(r=0;r<_.length;r++)_[r].setAttribute("target","_blank");l(i)&&i.keys.length>1&&(Pu(Po,"a","href",i),Pu(Po,"link","href",i),Pu(Po,"area","href",i),Pu(Po,"img","src",i),Pu(Po,"iframe","src",i),Pu(Po,"video","src",i),Pu(Po,"audio","src",i),Pu(Po,"source","src",i),Pu(Po,"track","src",i),Pu(Po,"input","src",i),Pu(Po,"embed","src",i),Pu(Po,"script","src",i),Pu(Po,"video","poster",i)),Xu(Po,"a","href",o),Xu(Po,"link","href",o),Xu(Po,"area","href",o),Xu(Po,"img","src",o),Xu(Po,"iframe","src",o),Xu(Po,"video","src",o),Xu(Po,"audio","src",o),Xu(Po,"source","src",o),Xu(Po,"track","src",o),Xu(Po,"input","src",o),Xu(Po,"embed","src",o),Xu(Po,"script","src",o),Xu(Po,"video","poster",o);let S='<div class="cesium-infoBox-description-lighter" style="';S+="overflow:auto;",S+="word-wrap:break-word;",S+=`background-color:${p.toCssColorString()};`,S+=`color:${b.toCssColorString()};`,S+='">',S+=`${Po.innerHTML}</div>`,Po.innerHTML="",t.description=S}function qB(e,t,n){let i=n.entityCollection,o=n.parentEntity,r=n.sourceResource,s=n.uriResolver,a=xCe(t,i,n.context),c=a.kml,d=C0t(e,t,n.styleCollection,r,s),u=Xn(t,"name",Ue.kml);a.name=u,a.parent=o;let m=A0t(t);l(m)||(m=S0t(t)),a.availability=m,tee(a);function p(Z){return Z?Z.show&&p(Z.parent):!0}let b=Af(t,"visibility",Ue.kml);a.show=p(o)&&(b??!0);let f=Qi(t,"author",Ue.atom),y=c.author;y.name=Xn(f,"name",Ue.atom),y.uri=Xn(f,"uri",Ue.atom),y.email=Xn(f,"email",Ue.atom);let _=Qi(t,"link",Ue.atom),S=c.link;S.href=ga(_,"href"),S.hreflang=ga(_,"hreflang"),S.rel=ga(_,"rel"),S.type=ga(_,"type"),S.title=ga(_,"title"),S.length=ga(_,"length"),c.address=Xn(t,"address",Ue.kml),c.phoneNumber=Xn(t,"phoneNumber",Ue.kml),c.snippet=Xn(t,"Snippet",Ue.kml),P0t(t,a),X0t(t,a,d,s,r);let A=e._ellipsoid;return GCe(t,a,A),VCe(t,a,A),l(Qi(t,"Region",Ue.kml))&&_t("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:d}}function RCe(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function Y0t(e,t,n,i){let o=qB(e,t,n),r=Je(n);r.parentEntity=o.entity,RCe(e,t,r,i)}function N0t(e,t,n,i){let o=qB(e,t,n),r=o.entity,s=o.styleEntity,a=!1,c=t.childNodes;for(let d=0,u=c.length;d<u&&!a;d++){let m=c.item(d),p=CCe[m.localName];l(p)&&(p(e,n.entityCollection,m,r,s,r.id),a=!0)}a||(r.merge(s),QB(e,r,s))}var w0t={FlyTo:U0t,Wait:k0t,SoundCue:M$,AnimatedUpdate:M$,TourControl:M$};function M0t(e,t,n,i){let o=Xn(t,"name",Ue.kml),r=ga(t,"id"),s=new hN(o,r),a=Qi(t,"Playlist",Ue.gx);if(a){let c=e._ellipsoid,d=a.childNodes;for(let u=0;u<d.length;u++){let m=d[u];if(m.localName){let p=w0t[m.localName];p?p(s,m,c):console.log(`Unknown KML Tour playlist entry type ${m.localName}`)}}}e._kmlTours.push(s)}function M$(e,t){_t(`KML Tour unsupported node ${t.localName}`)}function k0t(e,t){let n=Ti(t,"duration",Ue.gx);e.addPlaylistEntry(new bN(n))}function U0t(e,t,n){let i=Ti(t,"duration",Ue.gx),o=Xn(t,"flyToMode",Ue.gx),r={kml:{}};GCe(t,r,n),VCe(t,r,n);let s=r.kml.lookAt||r.kml.camera,a=new pN(i,o,s);e.addPlaylistEntry(a)}function VCe(e,t,n){let i=Qi(e,"Camera",Ue.kml);if(l(i)){let o=Ti(i,"longitude",Ue.kml)??0,r=Ti(i,"latitude",Ue.kml)??0,s=Ti(i,"altitude",Ue.kml)??0,a=Ti(i,"heading",Ue.kml)??0,c=Ti(i,"tilt",Ue.kml)??0,d=Ti(i,"roll",Ue.kml)??0,u=h.fromDegrees(o,r,s,n),m=bc.fromDegrees(a,c-90,d);t.kml.camera=new vY(u,m)}}function GCe(e,t,n){let i=Qi(e,"LookAt",Ue.kml);if(l(i)){let o=Ti(i,"longitude",Ue.kml)??0,r=Ti(i,"latitude",Ue.kml)??0,s=Ti(i,"altitude",Ue.kml)??0,a=Ti(i,"heading",Ue.kml),c=Ti(i,"tilt",Ue.kml),d=Ti(i,"range",Ue.kml)??0;c=W.toRadians(c??0),a=W.toRadians(a??0);let u=new Dm(a,c-W.PI_OVER_TWO,d),m=h.fromDegrees(o,r,s,n);t.kml.lookAt=new mN(m,u)}}function D0t(e,t,n,i){let o=n.screenOverlayContainer;if(!l(o))return;let r=n.sourceResource,s=n.uriResolver,a=Qi(t,"Icon",Ue.kml),c=q$(a,e,r,s,!1);if(!l(c))return;let d=document.createElement("img");e._screenOverlays.push(d),d.src=c.url,d.onload=function(){let u=["position: absolute"],m=Qi(t,"screenXY",Ue.kml),p=Qi(t,"overlayXY",Ue.kml),b=Qi(t,"size",Ue.kml),f,y,_,S,A,Z;l(b)&&(f=Rx(b,"x"),y=Rx(b,"y"),_=ga(b,"xunits"),S=ga(b,"yunits"),l(f)&&f!==-1&&f!==0&&(_==="fraction"?A=`width: ${Math.floor(f*100)}%`:_==="pixels"&&(A=`width: ${f}px`),u.push(A)),l(y)&&y!==-1&&y!==0&&(S==="fraction"?Z=`height: ${Math.floor(y*100)}%`:S==="pixels"&&(Z=`height: ${y}px`),u.push(Z))),d.style=u.join(";");let R=0,G=d.height;l(p)&&(f=Rx(p,"x"),y=Rx(p,"y"),_=ga(p,"xunits"),S=ga(p,"yunits"),l(f)&&(_==="fraction"?R=f*d.width:(_==="pixels"||_==="insetPixels")&&(R=f)),l(y)&&(S==="fraction"?G=y*d.height:(S==="pixels"||S==="insetPixels")&&(G=y))),l(m)&&(f=Rx(m,"x"),y=Rx(m,"y"),_=ga(m,"xunits"),S=ga(m,"yunits"),l(f)&&(_==="fraction"?A=`left: calc(${Math.floor(f*100)}% - ${R}px)`:_==="pixels"?A=`left: ${f-R}px`:_==="insetPixels"&&(A=`right: ${f-R}px`),u.push(A)),l(y)&&(S==="fraction"?Z=`bottom: calc(${Math.floor(y*100)}% - ${G}px)`:S==="pixels"?Z=`bottom: ${y-G}px`:S==="insetPixels"&&(Z=`top: ${y-G}px`),u.push(Z))),d.style=u.join(";")},o.appendChild(d)}function O0t(e,t,n,i){let r=qB(e,t,n).entity,s,a=!1,c=e._ellipsoid,d=HB(Qi(t,"LatLonQuad",Ue.gx),c),u=Ti(t,"drawOrder",Ue.kml);if(l(d))s=Q$(),s.hierarchy=new Tc(d),s.zIndex=u,r.polygon=s,a=!0;else{s=new Ch,s.zIndex=u,r.rectangle=s;let f=Qi(t,"LatLonBox",Ue.kml);if(l(f)){let y=Ti(f,"west",Ue.kml),_=Ti(f,"south",Ue.kml),S=Ti(f,"east",Ue.kml),A=Ti(f,"north",Ue.kml);l(y)&&(y=W.negativePiToPi(W.toRadians(y))),l(_)&&(_=W.clampToLatitudeRange(W.toRadians(_))),l(S)&&(S=W.negativePiToPi(W.toRadians(S))),l(A)&&(A=W.clampToLatitudeRange(W.toRadians(A))),s.coordinates=new se(y,_,S,A);let Z=Ti(f,"rotation",Ue.kml);if(l(Z)){let R=W.toRadians(Z);s.rotation=R,s.stRotation=R}}}let m=Qi(t,"Icon",Ue.kml),p=q$(m,e,n.sourceResource,n.uriResolver,!0);if(l(p)){a&&_t("kml-gx:LatLonQuad","KML - gx:LatLonQuad Icon does not support texture projection.");let f=Ti(m,"x",Ue.gx),y=Ti(m,"y",Ue.gx),_=Ti(m,"w",Ue.gx),S=Ti(m,"h",Ue.gx);(l(f)||l(y)||l(_)||l(S))&&_t("kml-groundOverlay-xywh","KML - gx:x, gx:y, gx:w, gx:h aren't supported for GroundOverlays"),s.material=p,s.material.color=vS(t,"color",Ue.kml),s.material.transparent=!0}else s.material=vS(t,"color",Ue.kml);let b=Xn(t,"altitudeMode",Ue.kml);l(b)?b==="absolute"?(s.height=Ti(t,"altitude",Ue.kml),s.zIndex=void 0):b!=="clampToGround"&&_t("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${b}`):(b=Xn(t,"altitudeMode",Ue.gx),b==="relativeToSeaFloor"?(_t("kml-altitudeMode-relativeToSeaFloor","KML - altitudeMode relativeToSeaFloor is currently not supported, treating as absolute."),s.height=Ti(t,"altitude",Ue.kml),s.zIndex=void 0):b==="clampToSeaFloor"?_t("kml-altitudeMode-clampToSeaFloor","KML - altitudeMode clampToSeaFloor is currently not supported, treating as clampToGround."):l(b)&&_t("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${b}`))}function ECe(e,t,n,i){e._unsupportedNode.raiseEvent(e,n.parentEntity,t,n.entityCollection,n.styleCollection,n.sourceResource,n.uriResolver),_t(`kml-unsupportedFeature-${t.nodeName}`,`KML - Unsupported feature: ${t.nodeName}`)}var Vx={INTERVAL:0,EXPIRE:1,STOP:2};function JB(e){if(!l(e)||e.length===0)return"";let t=e[0];return(t==="&"||t==="?")&&(e=e.substring(1)),e}var B0t=new se,T1=new fe,k$=new k,z0t=new h;function eee(e,t,n,i,o,r){function s(d){return d<-W.PI_OVER_TWO?-W.PI_OVER_TWO:d>W.PI_OVER_TWO?W.PI_OVER_TWO:d}function a(d){return d>W.PI?d-W.TWO_PI:d<-W.PI?d+W.TWO_PI:d}let c=sT(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),l(t)&&t._mode!==re.MORPHING){let d,u;if(o=o??B0t,l(n)&&(k$.x=n.clientWidth*.5,k$.y=n.clientHeight*.5,d=t.pickEllipsoid(k$,r,z0t)),l(d)?u=r.cartesianToCartographic(d,T1):(u=se.center(o,T1),d=r.cartographicToCartesian(u)),l(i)&&!W.equalsEpsilon(i,1,W.EPSILON9)){let S=o.width*i*.5,A=o.height*i*.5;o=new se(a(u.longitude-S),s(u.latitude-A),a(u.longitude+S),s(u.latitude+A))}c=c.replace("[bboxWest]",W.toDegrees(o.west).toString()),c=c.replace("[bboxSouth]",W.toDegrees(o.south).toString()),c=c.replace("[bboxEast]",W.toDegrees(o.east).toString()),c=c.replace("[bboxNorth]",W.toDegrees(o.north).toString());let m=W.toDegrees(u.longitude).toString(),p=W.toDegrees(u.latitude).toString();c=c.replace("[lookatLon]",m),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",W.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",W.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",h.distance(t.positionWC,d)),c=c.replace("[lookatTerrainLon]",m),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",u.height.toString()),r.cartesianToCartographic(t.positionWC,T1),c=c.replace("[cameraLon]",W.toDegrees(T1.longitude).toString()),c=c.replace("[cameraLat]",W.toDegrees(T1.latitude).toString()),c=c.replace("[cameraAlt]",W.toDegrees(T1.height).toString());let b=t.frustum,f=b.aspectRatio,y="",_="";if(l(f)){let S=W.toDegrees(b.fov);f>1?(y=S,_=S/f):(_=S,y=S*f)}c=c.replace("[horizFov]",y.toString()),c=c.replace("[vertFov]",_.toString())}else c=c.replace("[bboxWest]","-180"),c=c.replace("[bboxSouth]","-90"),c=c.replace("[bboxEast]","180"),c=c.replace("[bboxNorth]","90"),c=c.replace("[lookatLon]",""),c=c.replace("[lookatLat]",""),c=c.replace("[lookatRange]",""),c=c.replace("[lookatTilt]",""),c=c.replace("[lookatHeading]",""),c=c.replace("[lookatTerrainLon]",""),c=c.replace("[lookatTerrainLat]",""),c=c.replace("[lookatTerrainAlt]",""),c=c.replace("[cameraLon]",""),c=c.replace("[cameraLat]",""),c=c.replace("[cameraAlt]",""),c=c.replace("[horizFov]",""),c=c.replace("[vertFov]","");l(n)?(c=c.replace("[horizPixels]",n.clientWidth),c=c.replace("[vertPixels]",n.clientHeight)):(c=c.replace("[horizPixels]",""),c=c.replace("[vertPixels]","")),c=c.replace("[terrainEnabled]","1"),c=c.replace("[clientVersion]","1"),c=c.replace("[kmlVersion]","2.2"),c=c.replace("[clientName]","Cesium"),c=c.replace("[language]","English"),e.setQueryParameters($d(c))}function H0t(e,t,n,i){let r=qB(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Qi(t,"Link",Ue.kml);if(l(c)||(c=Qi(t,"Url",Ue.kml)),l(c)){let d=Xn(c,"href",Ue.kml),u,m;if(l(d)){let p=d;if(d=j$(d,s,n.uriResolver),/^data:/.test(d.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=d.clone(),u=Xn(c,"viewRefreshMode",Ue.kml),u==="onRegion"){_t("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}m=Xn(c,"viewBoundScale",Ue.kml)??1;let _=u==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",S=Xn(c,"viewFormat",Ue.kml)??_,A=Xn(c,"httpQuery",Ue.kml);l(S)&&d.setQueryParameters($d(JB(S))),l(A)&&d.setQueryParameters($d(JB(A)));let Z=e._ellipsoid;eee(d,e.camera,e.canvas,m,e._lastCameraView.bbox,Z)}let b={sourceUri:p,uriResolver:a,context:r.id,screenOverlayContainer:n.screenOverlayContainer},f=new Ia,y=z$(e,f,d,b).then(function(_){let S=e._entityCollection,A=f.values;S.suspendEvents();for(let G=0;G<A.length;G++){let E=A[G];l(E.parent)||(E.parent=r,tee(E)),S.add(E)}S.resumeEvents();let Z=Xn(c,"refreshMode",Ue.kml),R=Ti(c,"refreshInterval",Ue.kml)??0;if(Z==="onInterval"&&R>0||Z==="onExpire"||u==="onStop"){let G=Qi(_,"NetworkLinkControl",Ue.kml),E=l(G),v=Q.now(),I={id:zn(),href:d,cookie:{},lastUpdated:v,updating:!1,entity:r,viewBoundScale:m,needsUpdate:!1,cameraUpdateTime:v},X=0;if(E&&(I.cookie=$d(Xn(G,"cookie",Ue.kml)??""),X=Ti(G,"minRefreshPeriod",Ue.kml)??0),Z==="onInterval")E&&(R=Math.max(X,R)),I.refreshMode=Vx.INTERVAL,I.time=R;else if(Z==="onExpire"){let Y;if(E&&(Y=Xn(G,"expires",Ue.kml)),l(Y))try{let g=Q.fromIso8601(Y),C=Q.secondsDifference(g,v);C>0&&C<X&&Q.addSeconds(v,X,g),I.refreshMode=Vx.EXPIRE,I.time=g}catch{_t("kml-refreshMode-onInterval-onExpire","KML - NetworkLinkControl expires is not a valid date")}else _t("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element")}else l(e.camera)?(I.refreshMode=Vx.STOP,I.time=Ti(c,"viewRefreshTime",Ue.kml)??0):_t("kml-refrehMode-onStop-noCamera","A NetworkLink with viewRefreshMode=onStop requires the `camera` property to be defined.");l(I.refreshMode)&&e._networkLinks.set(I.id,I)}}).catch(function(_){_t(`An error occured during loading ${d.url}`),e._error.raiseEvent(e,_)});i.addPromise(y)}}}function K0t(e,t,n,i){let o=J$[t.localName];return l(o)?o(e,t,n,i):ECe(e,t,n,i)}function B$(e,t,n,i,o,r,s){t.removeAll();let a=n.documentElement,c=a.localName==="Document"?a:Qi(a,"Document",Ue.kml),d=Xn(c,"name",Ue.kml);l(d)||(d=Ub(i.getUrlComponent())),l(e._name)||(e._name=d);let u=new lg._DeferredLoading(e),m=new Ia(e);return Promise.all(SCe(e,n,m,i,!1,o)).then(function(){let p=n.documentElement;if(p.localName==="kml"){let f=p.childNodes;for(let y=0;y<f.length;y++){let _=f[y];if(l(J$[_.localName])){p=_;break}}}let b={parentEntity:void 0,entityCollection:t,styleCollection:m,sourceResource:i,uriResolver:o,context:s,screenOverlayContainer:r};return t.suspendEvents(),K0t(e,p,b,u),t.resumeEvents(),u.wait().then(function(){return n.documentElement})})}async function J0t(e,t,n,i,o){let r=$t("ThirdParty/Workers/zip-web-worker.js"),s=$t("ThirdParty/zip-module.wasm");kp({workerURI:r,wasmURI:s});let a=new ES(new Op(n)),c=await a.getEntries(),d=[],u={},m;for(let p=0;p<c.length;p++){let b=c[p];b.directory||(/\.kml$/i.test(b.filename)&&(!l(m)||!/\//i.test(b.filename))?(l(m)&&d.push(w$(m,u)),m=b):d.push(w$(b,u)))}if(l(m)&&d.push(_0t(m,u)),await Promise.all(d),a.close(),!l(u.kml))throw new ae("KMZ file does not contain a KML document.");return u.keys=Object.keys(u),B$(e,t,u.kml,i,u,o)}function z$(e,t,n,i){i=i??B.EMPTY_OBJECT;let o=i.sourceUri,r=i.uriResolver,s=i.context,a=i.screenOverlayContainer,c=n;if(typeof n=="string"||n instanceof We){n=We.createIfNeeded(n),c=n.fetchBlob(),o=o??n.clone();let d=e._resourceCredits,u=n.credits;if(l(u)){let m=u.length;for(let p=0;p<m;p++)d.push(u[p])}}else o=o??We.DEFAULT.clone();return o=We.createIfNeeded(o),l(a)&&(a=Pn(a)),Promise.resolve(c).then(function(d){return d instanceof Blob?x0t(d).then(function(u){return u?J0t(e,t,d,o,a):T0t(d).then(function(m){m=gCe(m),m=yCe(m);let p,b;try{p=K$.parseFromString(m,"application/xml")}catch(f){b=f.toString()}if(l(b)||p.body||p.documentElement.tagName==="parsererror"){let f=l(b)?b:p.documentElement.firstChild.nodeValue;throw f||(f=p.body.innerText),new ae(f)}return B$(e,t,p,o,r,a,s)})}):B$(e,t,d,o,r,a,s)}).catch(function(d){return e._error.raiseEvent(e,d),console.log(d),Promise.reject(d)})}var lg=class e{constructor(t){t=t??B.EMPTY_OBJECT;let n=t.camera,i=t.canvas;this._changed=new Se,this._error=new Se,this._loading=new Se,this._refresh=new Se,this._unsupportedNode=new Se,this._clock=void 0,this._entityCollection=new Ia(this),this._name=void 0,this._isLoading=!1,this._pinBuilder=new ng,this._networkLinks=new wt,this._entityCluster=new _u,this.canvas=i,this.camera=n,this._lastCameraView={position:l(n)?h.clone(n.positionWC):void 0,direction:l(n)?h.clone(n.directionWC):void 0,up:l(n)?h.clone(n.upWC):void 0,bbox:l(n)?n.computeViewRectangle():se.clone(se.MAX_VALUE)},this._ellipsoid=t.ellipsoid??ie.default;let o=t.credit;typeof o=="string"&&(o=new Rt(o)),this._credit=o,this._resourceCredits=[],this._kmlTours=[],this._screenOverlays=[]}static load(t,n){return n=n??B.EMPTY_OBJECT,new e(n).load(t,n)}get name(){return this._name}set name(t){this._name!==t&&(this._name=t,this._changed.raiseEvent(this))}get clock(){return this._clock}get entities(){return this._entityCollection}get isLoading(){return this._isLoading}get changedEvent(){return this._changed}get errorEvent(){return this._error}get loadingEvent(){return this._loading}get refreshEvent(){return this._refresh}get unsupportedNodeEvent(){return this._unsupportedNode}get show(){return this._entityCollection.show}set show(t){this._entityCollection.show=t}get clustering(){return this._entityCluster}set clustering(t){this._entityCluster=t}get credit(){return this._credit}get kmlTours(){return this._kmlTours}load(t,n){n=n??B.EMPTY_OBJECT,bs.setLoading(this,!0);let i=this._name;this._name=void 0,this._clampToGround=n.clampToGround??!1;let o=this;return z$(this,this._entityCollection,t,n).then(function(){let r,s=o._entityCollection.computeAvailability(),a=s.start,c=s.stop,d=Q.equals(a,qe.MINIMUM_VALUE),u=Q.equals(c,qe.MAXIMUM_VALUE);if(!d||!u){let p;d&&(p=new Date,p.setHours(0,0,0,0),a=Q.fromDate(p)),u&&(p=new Date,p.setHours(24,0,0,0),c=Q.fromDate(p)),r=new df,r.startTime=a,r.stopTime=c,r.currentTime=Q.clone(a),r.clockRange=gs.LOOP_STOP,r.clockStep=Io.SYSTEM_CLOCK_MULTIPLIER,r.multiplier=Math.round(Math.min(Math.max(Q.secondsDifference(c,a)/60,1),31556900))}let m=!1;return r!==o._clock&&(o._clock=r,m=!0),i!==o._name&&(m=!0),m&&o._changed.raiseEvent(o),bs.setLoading(o,!1),o}).catch(function(r){return bs.setLoading(o,!1),o._error.raiseEvent(o,r),console.log(r),Promise.reject(r)})}destroy(){for(;this._screenOverlays.length>0;)this._screenOverlays.pop().remove()}update(t){let n=this._networkLinks;if(n.length===0)return!0;let i=Q.now(),o=this;U$.removeAll();function r(m){let p=m._children,b=p.length;for(let f=0;f<b;++f){let y=p[f];U$.set(y.id,y),r(y)}}let s=!1,a=this._lastCameraView,c=this.camera;l(c)&&!(c.positionWC.equalsEpsilon(a.position,W.EPSILON7)&&c.directionWC.equalsEpsilon(a.direction,W.EPSILON7)&&c.upWC.equalsEpsilon(a.up,W.EPSILON7))&&(a.position=h.clone(c.positionWC),a.direction=h.clone(c.directionWC),a.up=h.clone(c.upWC),a.bbox=c.computeViewRectangle(),s=!0);let d=new wt,u=!1;return n.values.forEach(function(m){let p=m.entity;if(!U$.contains(p.id)){if(!m.updating){let b=!1;if(m.refreshMode===Vx.INTERVAL?Q.secondsDifference(i,m.lastUpdated)>m.time&&(b=!0):m.refreshMode===Vx.EXPIRE?Q.greaterThan(i,m.time)&&(b=!0):m.refreshMode===Vx.STOP&&(s&&(m.needsUpdate=!0,m.cameraUpdateTime=i),m.needsUpdate&&Q.secondsDifference(i,m.cameraUpdateTime)>=m.time&&(b=!0)),b){r(p),m.updating=!0;let f=new Ia,y=m.href.clone();y.setQueryParameters(m.cookie);let _=o._ellipsoid??ie.default;eee(y,o.camera,o.canvas,m.viewBoundScale,a.bbox,_),z$(o,f,y,{context:p.id}).then(j0t(o,m,f,d,y)).catch(function(S){let A=`NetworkLink ${m.href} refresh failed: ${S}`;console.log(A),o._error.raiseEvent(o,A)}),u=!0}}d.set(m.id,m)}}),u&&(this._networkLinks=d,this._changed.raiseEvent(this)),!0}};function tee(e){let t=e.parent;if(l(t)){let n=t.availability;if(l(n)){let i=e.availability;l(i)?i.intersect(n):e.availability=n}}}function j0t(e,t,n,i,o){return function(r){if(!i.contains(t.id))return;let s=!1,a=Qi(r,"NetworkLinkControl",Ue.kml),c=l(a),d=0;if(c){if(l(Qi(a,"Update",Ue.kml))){_t("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=$d(Xn(a,"cookie",Ue.kml)??""),d=Ti(a,"minRefreshPeriod",Ue.kml)??0}let u=Q.now(),m=t.refreshMode;if(m===Vx.INTERVAL)l(a)&&(t.time=Math.max(d,t.time));else if(m===Vx.EXPIRE){let v;if(l(a)&&(v=Xn(a,"expires",Ue.kml)),l(v))try{let I=Q.fromIso8601(v),X=Q.secondsDifference(I,u);X>0&&X<d&&Q.addSeconds(u,d,I),t.time=I}catch{_t("kml-networkLinkControl-expires","KML - NetworkLinkControl expires is not a valid date"),s=!0}else _t("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element"),s=!0}let p=t.entity,b=e._entityCollection,f=n.values;function y(v){b.remove(v);let I=v._children,X=I.length;for(let Y=0;Y<X;++Y)y(I[Y])}b.suspendEvents();let _=b.values.slice(),S;for(S=0;S<_.length;++S){let v=_[S];v.parent===p&&(v.parent=void 0,y(v))}for(b.resumeEvents(),b.suspendEvents(),S=0;S<f.length;S++){let v=f[S];l(v.parent)||(v.parent=p,tee(v)),b.add(v)}b.resumeEvents(),s?i.remove(t.id):t.lastUpdated=u;let A=b.computeAvailability(),Z=A.start,R=A.stop,G=Q.equals(Z,qe.MINIMUM_VALUE),E=Q.equals(R,qe.MAXIMUM_VALUE);if(!G||!E){let v=e._clock;(v.startTime!==Z||v.stopTime!==R)&&(v.startTime=Z,v.stopTime=R,e._changed.raiseEvent(e))}t.updating=!1,t.needsUpdate=!1,e._refresh.raiseEvent(e,o.getUrlComponent(!0))}}var U$=new wt,H$=class{constructor(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}};lg._DeferredLoading=D$;lg._getTimestamp=Ni;var FS=lg;var RDi=x(T(),1);function xN(){Te.throwInstantiationError()}xN.prototype.update=Te.throwInstantiationError;xN.prototype.getBoundingSphere=Te.throwInstantiationError;xN.prototype.isDestroyed=Te.throwInstantiationError;xN.prototype.destroy=Te.throwInstantiationError;var nee=xN;var iOi=x(T(),1);var iee=32,Q0t="http://www.opengis.net/kml/2.2",Cf="http://www.google.com/kml/ext/2.2",q0t="http://www.w3.org/2000/xmlns/";function $B(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var $0t=/^data:image\/([^,;]+)/;$B.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof We){if(e=We.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match($0t);n=`texture_${++this._count}`,l(i)&&(n+=`.${i[1]}`);let o=e.fetchBlob().then(function(r){t._files[n]=r});return this._promises.push(o),n}if(e instanceof HTMLCanvasElement){n=`texture_${++this._count}.png`;let i=new Promise(o=>{e.toBlob(function(r){t._files[n]=r,o()})});return this._promises.push(i),n}return""};function ebt(e,t){return function(n){e._files[t]=n}}$B.prototype.model=function(e,t){let n=this._modelCallback;if(!l(n))throw new ae("Encountered a model entity while exporting to KML, but no model callback was supplied.");let i={},o=n(e,t,i);for(let r in i)if(i.hasOwnProperty(r)){let s=Promise.resolve(i[r]);this._promises.push(s),s.then(ebt(this,r))}return o};Object.defineProperties($B.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function e3(e){this._time=e}e3.prototype.get=function(e,t,n){let i;return l(e)&&(i=l(e.getValue)?e.getValue(this._time,n):e),i??t};e3.prototype.getColor=function(e,t){let n=this.get(e,t);if(l(n))return PS(n)};e3.prototype.getMaterialType=function(e){if(l(e))return e.getType(this._time)};function oee(){this._ids={},this._styles={},this._count=0}oee.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(l(t[n]))return t[n];let i=`style-${++this._count}`;return e.setAttribute("id",i),i=`#${i}`,t[n]=i,this._styles[n]=e,i};oee.prototype.save=function(e){let t=this._styles,n=e.childNodes[0];for(let i in t)t.hasOwnProperty(i)&&e.insertBefore(t[i],n)};function vCe(){this._ids={}}vCe.prototype.get=function(e){if(!l(e))return this.get(zn());let t=this._ids;return l(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function ree(e){e=e??B.EMPTY_OBJECT;let t=e.entities,n=e.kmz??!1,i=ree._createState(e),o=t.values.filter(function(d){return!l(d.parent)}),r=i.kmlDoc,s=r.documentElement;s.setAttributeNS(q0t,"xmlns:gx",Cf);let a=r.createElement("Document");s.appendChild(a),ICe(i,a,o),i.styleCache.save(a);let c=i.externalFileHandler;return c.promise.then(function(){let u=new XMLSerializer().serializeToString(i.kmlDoc);return n?tbt(u,c.files):{kml:u,externalFiles:c.files}})}async function tbt(e,t){let n=$t("ThirdParty/Workers/zip-web-worker.js"),i=$t("ThirdParty/zip-module.wasm");kp({workerURI:n,wasmURI:i});let o=new u1("application/vnd.google-earth.kmz"),r=new cN(o);await r.add("doc.kml",new OY(e));let s=Object.keys(t);return await FCe(r,s,t,0),await r.close(),{kmz:await o.getData()}}async function FCe(e,t,n,i){if(t.length===i)return;let o=t[i];return await e.add(o,new Op(n[o])),FCe(e,t,n,i+1)}ree._createState=function(e){let t=e.entities,n=new oee,i=t.computeAvailability(),o=l(e.time)?e.time:i.start,r=e.defaultAvailability??i,s=e.sampleDuration??60;r.start===qe.MINIMUM_VALUE?r.stop===qe.MAXIMUM_VALUE?r=new Tn:Q.addSeconds(r.stop,-10*s,r.start):r.stop===qe.MAXIMUM_VALUE&&Q.addSeconds(r.start,10*s,r.stop);let a=new $B(e.modelCallback);return{kmlDoc:document.implementation.createDocument(Q0t,"kml"),ellipsoid:e.ellipsoid??ie.default,idManager:new vCe,styleCache:n,externalFileHandler:a,time:o,valueGetter:new e3(o),sampleDuration:s,defaultAvailability:new ps([r])}};function ICe(e,t,n){let i=e.kmlDoc,o=e.styleCache,r=e.valueGetter,s=e.idManager,a=n.length,c,d,u;for(let m=0;m<a;++m){let p=n[m];c=[],d=[],u=[],nbt(e,p,d,u),ibt(e,p.polyline,d,u),WCe(e,p.rectangle,d,u,c),WCe(e,p.polygon,d,u,c),abt(e,p,p.model,d,u);let b,f=p.availability;l(f)&&(b=i.createElement("TimeSpan"),Q.equals(f.start,qe.MINIMUM_VALUE)||b.appendChild(An(i,"begin",Q.toIso8601(f.start))),Q.equals(f.stop,qe.MAXIMUM_VALUE)||b.appendChild(An(i,"end",Q.toIso8601(f.stop))));for(let S=0;S<c.length;++S){let A=c[S];A.setAttribute("id",s.get(p.id)),A.appendChild(An(i,"name",p.name)),A.appendChild(An(i,"visibility",p.show)),A.appendChild(An(i,"description",p.description)),l(b)&&A.appendChild(b),t.appendChild(A)}let y=d.length;if(y>0){let S=i.createElement("Placemark");S.setAttribute("id",s.get(p.id));let A=p.name,Z=p.label;if(l(Z)){let G=i.createElement("LabelStyle"),E=r.get(Z.text);A=l(E)&&E.length>0?E:A;let v=r.getColor(Z.fillColor);l(v)&&(G.appendChild(An(i,"color",v)),G.appendChild(An(i,"colorMode","normal")));let I=r.get(Z.scale);l(I)&&G.appendChild(An(i,"scale",I)),u.push(G)}S.appendChild(An(i,"name",A)),S.appendChild(An(i,"visibility",p.show)),S.appendChild(An(i,"description",p.description)),l(b)&&S.appendChild(b),t.appendChild(S);let R=u.length;if(R>0){let G=i.createElement("Style");for(let E=0;E<R;++E)G.appendChild(u[E]);S.appendChild(An(i,"styleUrl",o.get(G)))}if(d.length===1)S.appendChild(d[0]);else if(d.length>1){let G=i.createElement("MultiGeometry");for(let E=0;E<y;++E)G.appendChild(d[E]);S.appendChild(G)}}let _=p._children;if(_.length>0){let S=i.createElement("Folder");S.setAttribute("id",s.get(p.id)),S.appendChild(An(i,"name",p.name)),S.appendChild(An(i,"visibility",p.show)),S.appendChild(An(i,"description",p.description)),t.appendChild(S),ICe(e,S,_)}}}var Yd=new h,ql=new fe,Zf=new Q;function nbt(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter,a=t.billboard??t.point;if(!l(a)&&!l(t.path))return;let c=t.position;if(!c.isConstant){PCe(e,t,a,n,i);return}s.get(c,void 0,Yd);let d=An(o,"coordinates",IS(Yd,r)),u=o.createElement("Point"),m=o.createElement("altitudeMode");m.appendChild(XS(e,a.heightReference)),u.appendChild(m),u.appendChild(d),n.push(u);let p=a instanceof Pc?YCe(e,a):XCe(e,a);i.push(p)}function PCe(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,d=t.position,u=!0;d instanceof tc?(c=d.intervals,u=!1):c=t.availability??e.defaultAvailability;let m=n instanceof w0,p,b,f,y=[];for(p=0;p<c.length;++p){let S=c.get(p),A=u?d:S.data,Z=r.createElement("altitudeMode");A instanceof Fp?(A=A._value,Z.appendChild(XS(e,st.CLAMP_TO_GROUND))):l(n)?Z.appendChild(XS(e,n.heightReference)):Z.appendChild(XS(e,st.NONE));let R=[],G=[];if(A.isConstant){a.get(A,void 0,Yd);let v=An(r,"coordinates",IS(Yd,s));R.push(Q.toIso8601(S.start)),G.push(v),R.push(Q.toIso8601(S.stop)),G.push(v)}else if(A instanceof ic)for(f=A._property._times,b=0;b<f.length;++b)R.push(Q.toIso8601(f[b])),A.getValueInReferenceFrame(f[b],Pi.FIXED,Yd),G.push(IS(Yd,s));else if(A instanceof Cu){f=A._times;let v=A._values;for(b=0;b<f.length;++b)R.push(Q.toIso8601(f[b])),h.fromArray(v,b*3,Yd),G.push(IS(Yd,s))}else{let v=e.sampleDuration;S.start.clone(Zf),S.isStartIncluded||Q.addSeconds(Zf,v,Zf);let I=S.stop;for(;Q.lessThan(Zf,I);)A.getValue(Zf,Yd),R.push(Q.toIso8601(Zf)),G.push(IS(Yd,s)),Q.addSeconds(Zf,v,Zf);S.isStopIncluded&&Q.equals(Zf,I)&&(A.getValue(Zf,Yd),R.push(Q.toIso8601(Zf)),G.push(IS(Yd,s)))}let E=r.createElementNS(Cf,"Track");E.appendChild(Z);for(let v=0;v<R.length;++v){let I=An(r,"when",R[v]),X=An(r,"coord",G[v],Cf);E.appendChild(I),E.appendChild(X)}m&&E.appendChild(NCe(e,n)),y.push(E)}if(y.length===1)i.push(y[0]);else if(y.length>1){let S=r.createElementNS(Cf,"MultiTrack");for(p=0;p<y.length;++p)S.appendChild(y[p]);i.push(S)}if(l(n)&&!m){let S=n instanceof Pc?YCe(e,n):XCe(e,n);o.push(S)}let _=t.path;if(l(_)){let S=a.get(_.width),A=_.material;if(l(A)||l(S)){let Z=r.createElement("LineStyle");l(S)&&Z.appendChild(An(r,"width",S)),see(e,A,Z),o.push(Z)}}}function XCe(e,t){let n=e.kmlDoc,i=e.valueGetter,o=n.createElement("IconStyle"),r=i.getColor(t.color);l(r)&&(o.appendChild(An(n,"color",r)),o.appendChild(An(n,"colorMode","normal")));let s=i.get(t.pixelSize);return l(s)&&o.appendChild(An(n,"scale",s/iee)),o}function YCe(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("IconStyle"),s=i.get(t.image);if(l(s)){s=o.texture(s);let p=n.createElement("Icon");p.appendChild(An(n,"href",s));let b=i.get(t.imageSubRegion);l(b)&&(p.appendChild(An(n,"x",b.x,Cf)),p.appendChild(An(n,"y",b.y,Cf)),p.appendChild(An(n,"w",b.width,Cf)),p.appendChild(An(n,"h",b.height,Cf))),r.appendChild(p)}let a=i.getColor(t.color);l(a)&&(r.appendChild(An(n,"color",a)),r.appendChild(An(n,"colorMode","normal")));let c=i.get(t.scale);l(c)&&r.appendChild(An(n,"scale",c));let d=i.get(t.pixelOffset);if(l(d)){c=c??1,k.divideByScalar(d,c,d);let p=i.get(t.width,iee),b=i.get(t.height,iee),f=i.get(t.horizontalOrigin,Fi.CENTER);f===Fi.CENTER?d.x-=p*.5:f===Fi.RIGHT&&(d.x-=p);let y=i.get(t.verticalOrigin,kn.CENTER);y===kn.TOP?d.y+=b:y===kn.CENTER&&(d.y+=b*.5);let _=n.createElement("hotSpot");_.setAttribute("x",-d.x),_.setAttribute("y",d.y),_.setAttribute("xunits","pixels"),_.setAttribute("yunits","pixels"),r.appendChild(_)}let u=i.get(t.rotation),m=i.get(t.alignedAxis);return l(u)&&h.equals(h.UNIT_Z,m)&&(u=W.toDegrees(-u),u===0&&(u=360),r.appendChild(An(n,"heading",u))),r}function ibt(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter;if(!l(t))return;let a=o.createElement("LineString"),c=o.createElement("altitudeMode"),d=s.get(t.clampToGround,!1),u;d?(a.appendChild(An(o,"tessellate",!0)),u=o.createTextNode("clampToGround")):u=o.createTextNode("absolute"),c.appendChild(u),a.appendChild(c);let m=t.positions,p=s.get(m),b=An(o,"coordinates",IS(p,r));a.appendChild(b);let f=s.get(t.zIndex);d&&l(f)&&a.appendChild(An(o,"drawOrder",f,Cf)),n.push(a);let y=o.createElement("LineStyle"),_=s.get(t.width);l(_)&&y.appendChild(An(o,"width",_)),see(e,t.material,y),i.push(y)}function obt(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0);n>0&&(r=n);let s=t.coordinates,a=o.get(s),c=[],d=[se.northeast,se.southeast,se.southwest,se.northwest];for(let b=0;b<4;++b)d[b](a,ql),c.push(`${W.toDegrees(ql.longitude)},${W.toDegrees(ql.latitude)},${r}`);let u=An(i,"coordinates",c.join(" ")),m=i.createElement("outerBoundaryIs"),p=i.createElement("LinearRing");return p.appendChild(u),m.appendChild(p),[m]}function LCe(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=[],a=t.length;for(let u=0;u<a;++u)fe.fromCartesian(t[u],r,ql),s.push(`${W.toDegrees(ql.longitude)},${W.toDegrees(ql.latitude)},${i?ql.height:n}`);let c=An(o,"coordinates",s.join(" ")),d=o.createElement("LinearRing");return d.appendChild(c),d}function rbt(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0),s=o.get(t.perPositionHeight,!1);!s&&n>0&&(r=n);let a=[],c=t.hierarchy,d=o.get(c),u=Array.isArray(d)?d:d.positions,m=i.createElement("outerBoundaryIs");m.appendChild(LCe(e,u,r,s)),a.push(m);let p=d.holes;if(l(p)){let b=p.length;for(let f=0;f<b;++f){let y=i.createElement("innerBoundaryIs");y.appendChild(LCe(e,p[f].positions,r,s)),a.push(y)}}return a}function WCe(e,t,n,i,o){let r=e.kmlDoc,s=e.valueGetter;if(!l(t))return;let a=t instanceof Ch;if(a&&s.getMaterialType(t.material)==="Image"){sbt(e,t,o);return}let c=r.createElement("Polygon"),d=s.get(t.extrudedHeight,0);d>0&&c.appendChild(An(r,"extrude",!0));let u=a?obt(e,t,d):rbt(e,t,d),m=u.length;for(let _=0;_<m;++_)c.appendChild(u[_]);let p=r.createElement("altitudeMode");p.appendChild(XS(e,t.heightReference)),c.appendChild(p),n.push(c);let b=r.createElement("PolyStyle"),f=s.get(t.fill,!1);f&&b.appendChild(An(r,"fill",f)),see(e,t.material,b);let y=s.get(t.outline,!1);if(y){b.appendChild(An(r,"outline",y));let _=r.createElement("LineStyle"),S=s.get(t.outlineWidth,1);_.appendChild(An(r,"width",S));let A=s.getColor(t.outlineColor,U.BLACK);_.appendChild(An(r,"color",A)),_.appendChild(An(r,"colorMode","normal")),i.push(_)}i.push(b)}function sbt(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=e.externalFileHandler,s=i.createElement("GroundOverlay"),a=i.createElement("altitudeMode");a.appendChild(XS(e,t.heightReference)),s.appendChild(a);let c=o.get(t.height);l(c)&&s.appendChild(An(i,"altitude",c));let d=o.get(t.coordinates),u=i.createElement("LatLonBox");u.appendChild(An(i,"north",W.toDegrees(d.north))),u.appendChild(An(i,"south",W.toDegrees(d.south))),u.appendChild(An(i,"east",W.toDegrees(d.east))),u.appendChild(An(i,"west",W.toDegrees(d.west))),s.appendChild(u);let m=o.get(t.material),p=r.texture(m.image),b=i.createElement("Icon");b.appendChild(An(i,"href",p)),s.appendChild(b);let f=m.color;l(f)&&s.appendChild(An(i,"color",PS(m.color))),n.push(s)}function NCe(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("Model"),s=i.get(t.scale);if(l(s)){let d=n.createElement("scale");d.appendChild(An(n,"x",s)),d.appendChild(An(n,"y",s)),d.appendChild(An(n,"z",s)),r.appendChild(d)}let a=n.createElement("Link"),c=o.model(t,e.time);return a.appendChild(An(n,"href",c)),r.appendChild(a),r}function abt(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter;if(!l(n))return;let c=t.position;if(!c.isConstant){PCe(e,t,n,i,o);return}let d=NCe(e,n),u=r.createElement("altitudeMode");u.appendChild(XS(e,n.heightReference)),d.appendChild(u),a.get(c,void 0,Yd),fe.fromCartesian(Yd,s,ql);let m=r.createElement("Location");m.appendChild(An(r,"longitude",W.toDegrees(ql.longitude))),m.appendChild(An(r,"latitude",W.toDegrees(ql.latitude))),m.appendChild(An(r,"altitude",ql.height)),d.appendChild(m),i.push(d)}function see(e,t,n){let i=e.kmlDoc,o=e.valueGetter;if(!l(t))return;let r=o.get(t);if(!l(r))return;let s,a=o.getMaterialType(t),c,d;switch(a){case"Image":s=PS(U.WHITE);break;case"Color":case"Grid":case"PolylineGlow":case"PolylineArrow":case"PolylineDash":s=PS(r.color);break;case"PolylineOutline":s=PS(r.color),c=PS(r.outlineColor),d=r.outlineWidth,n.appendChild(An(i,"outerColor",c,Cf)),n.appendChild(An(i,"outerWidth",d,Cf));break;case"Stripe":s=PS(r.oddColor);break}l(s)&&(n.appendChild(An(i,"color",s)),n.appendChild(An(i,"colorMode","normal")))}function XS(e,t){let n=e.kmlDoc,o=e.valueGetter.get(t,st.NONE),r;switch(o){case st.NONE:r=n.createTextNode("absolute");break;case st.CLAMP_TO_GROUND:r=n.createTextNode("clampToGround");break;case st.RELATIVE_TO_GROUND:r=n.createTextNode("relativeToGround");break}return r}function IS(e,t){Array.isArray(e)||(e=[e]);let n=e.length,i=[];for(let o=0;o<n;++o)fe.fromCartesian(e[o],t,ql),i.push(`${W.toDegrees(ql.longitude)},${W.toDegrees(ql.latitude)},${ql.height}`);return i.join(" ")}function An(e,t,n,i){n=n??"",typeof n=="boolean"&&(n=n?"1":"0");let o=l(i)?e.createElementNS(i,t):e.createElement(t),r=n==="string"&&n.indexOf("<")!==-1?e.createCDATASection(n):e.createTextNode(n);return o.appendChild(r),o}function PS(e){let t="",n=e.toBytes();for(let i=3;i>=0;--i)t+=n[i]<16?`0${n[i].toString(16)}`:n[i].toString(16);return t}var aee=ree;var yOi=x(T(),1);var rOi=x(T(),1),YS=`in vec4 position; +in vec2 textureCoordinates; + +out vec2 v_textureCoordinates; + +void main() +{ + gl_Position = position; + v_textureCoordinates = textureCoordinates; +} +`;function t3(e){this._context=e}var TN,cbt=new at({primitiveType:ve.TRIANGLES}),lbt=new mi({color:new U(0,0,0,0)});function dbt(e,t){return new is({context:e,colorTextures:[t],destroyAttachments:!1})}function ubt(e,t){return tn.fromCache({context:e,vertexShaderSource:YS,fragmentShaderSource:t,attributeLocations:{position:0,textureCoordinates:1}})}function mbt(e,t){return(!l(TN)||TN.viewport.width!==e||TN.viewport.height!==t)&&(TN=Be.fromCache({viewport:new it(0,0,e,t)})),TN}t3.prototype.execute=function(e){l(e.preExecute)&&e.preExecute(e);let t=e.outputTexture,n=t.width,i=t.height,o=this._context,r=l(e.vertexArray)?e.vertexArray:o.getViewportQuadVertexArray(),s=l(e.shaderProgram)?e.shaderProgram:ubt(o,e.fragmentShaderSource),a=dbt(o,t),c=mbt(n,i),d=e.uniformMap,u=lbt;u.framebuffer=a,u.renderState=c,u.execute(o);let m=cbt;m.vertexArray=r,m.renderState=c,m.shaderProgram=s,m.uniformMap=d,m.framebuffer=a,m.execute(o),a.destroy(),e.persists||(s.destroy(),l(e.vertexArray)&&r.destroy()),l(e.postExecute)&&e.postExecute(t)};t3.prototype.isDestroyed=function(){return!1};t3.prototype.destroy=function(){return he(this)};var _N=t3;var OBi=x(T(),1);var TOi=x(T(),1);function hbt(e){this.context=e,this.framebuffer=void 0,this.blendingEnabled=void 0,this.scissorTest=void 0,this.viewport=void 0}var sl=hbt;var SOi=x(T(),1),cee=class{constructor(t,n,i){this._pickObjects=t,this.key=n,this.color=i}get object(){return this._pickObjects.get(this.key)}set object(t){this._pickObjects.set(this.key,t)}destroy(){this._pickObjects.delete(this.key)}},SN=cee;var GOi=x(T(),1);function Rf(e){this._context=e,this._shaders={},this._numberOfShaders=0,this._shadersToRelease={}}Object.defineProperties(Rf.prototype,{numberOfShaders:{get:function(){return this._numberOfShaders}}});Rf.prototype.replaceShaderProgram=function(e){return l(e.shaderProgram)&&e.shaderProgram.destroy(),this.getShaderProgram(e)};function fbt(e){let t=Object.keys(e).sort();return JSON.stringify(e,t)}Rf.prototype.getShaderProgram=function(e){let t=e.vertexShaderSource,n=e.fragmentShaderSource,i=e.attributeLocations;typeof t=="string"&&(t=new He({sources:[t]})),typeof n=="string"&&(n=new He({sources:[n]}));let o=t.getCacheKey(),r=n.getCacheKey(),s=l(i)?fbt(i):"",a=`${o}:${r}:${s}`,c;if(l(this._shaders[a]))c=this._shaders[a],delete this._shadersToRelease[a];else{let d=this._context,u=t.createCombinedVertexShader(d),m=n.createCombinedFragmentShader(d),p=new tn({gl:d._gl,logShaderCompilation:d.logShaderCompilation,debugShaders:d.debugShaders,vertexShaderSource:t,vertexShaderText:u,fragmentShaderSource:n,fragmentShaderText:m,attributeLocations:i});c={cache:this,shaderProgram:p,keyword:a,derivedKeywords:[],count:0},p._cachedShader=c,this._shaders[a]=c,++this._numberOfShaders}return++c.count,c.shaderProgram};Rf.prototype.replaceDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=this._shaders[o];if(l(r)){lee(this,r);let s=i.derivedKeywords.indexOf(t);s>-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};Rf.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(l(o))return o.shaderProgram};Rf.prototype.createDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=n.vertexShaderSource,s=n.fragmentShaderSource,a=n.attributeLocations;typeof r=="string"&&(r=new He({sources:[r]})),typeof s=="string"&&(s=new He({sources:[s]}));let c=this._context,d=r.createCombinedVertexShader(c),u=s.createCombinedFragmentShader(c),m=new tn({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:d,fragmentShaderSource:s,fragmentShaderText:u,attributeLocations:a}),p={cache:this,shaderProgram:m,keyword:o,derivedKeywords:[],count:0};return i.derivedKeywords.push(t),m._cachedShader=p,this._shaders[o]=p,m};function lee(e,t){let n=t.derivedKeywords,i=n.length;for(let o=0;o<i;++o){let r=n[o]+t.keyword,s=e._shaders[r];lee(e,s)}delete e._shaders[t.keyword],t.shaderProgram.finalDestroy()}Rf.prototype.destroyReleasedShaderPrograms=function(){let e=this._shadersToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];lee(this,n),--this._numberOfShaders}this._shadersToRelease={}};Rf.prototype.releaseShaderProgram=function(e){if(l(e)){let t=e._cachedShader;t&&--t.count===0&&(this._shadersToRelease[t.keyword]=t)}};Rf.prototype.isDestroyed=function(){return!1};Rf.prototype.destroy=function(){let e=this._shaders;for(let t in e)e.hasOwnProperty(t)&&e[t].shaderProgram.finalDestroy();return he(this)};var AN=Rf;var vOi=x(T(),1);function NS(){this._textures={},this._numberOfTextures=0,this._texturesToRelease={}}Object.defineProperties(NS.prototype,{numberOfTextures:{get:function(){return this._numberOfTextures}}});NS.prototype.getTexture=function(e){let t=this._textures[e];if(l(t))return delete this._texturesToRelease[e],++t.count,t.texture};NS.prototype.addTexture=function(e,t){let n={texture:t,count:1};t.finalDestroy=t.destroy;let i=this;t.destroy=function(){--n.count===0&&(i._texturesToRelease[e]=n)},this._textures[e]=n,++this._numberOfTextures};NS.prototype.destroyReleasedTextures=function(){let e=this._texturesToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];delete this._textures[t],n.texture.finalDestroy(),--this._numberOfTextures}this._texturesToRelease={}};NS.prototype.isDestroyed=function(){return!1};NS.prototype.destroy=function(){let e=this._textures;for(let t in e)e.hasOwnProperty(t)&&e[t].texture.finalDestroy();return he(this)};var ZN=NS;var dBi=x(T(),1);var kOi=x(T(),1);var dee={};function pbt(e){let t=6.239996+.0172019696544*e;return .001657*Math.sin(t+.01671*Math.sin(t))}var bbt=32.184,gbt=2451545;function iRe(e,t){t=Q.addSeconds(e,bbt,t);let n=Q.totalDays(t)-gbt;return t=Q.addSeconds(t,pbt(n),t),t}var n3=new Q(2451545,0,ii.TAI),ybt=1e3,Hm=W.RADIANS_PER_DEGREE,Yu=W.RADIANS_PER_ARCSECOND,Lc=14959787e4,wCe=new $;function oRe(e,t,n,i,o,r,s){n<0&&(n=-n,o+=W.PI);let a=e*(1-t),c=i-o,d=o,u=Tbt(r-i,t),m=xbt(t,0);Cbt(c,n,d,wCe);let p=a*(1+t),b=Math.cos(u),f=Math.sin(u),y=1+t*b,_=p/y;return l(s)?(s.x=_*b,s.y=_*f,s.z=0):s=new h(_*b,_*f,0),$.multiplyByVector(wCe,s,s)}function xbt(e,t){return e<=t?"Circular":e<1-t?"Elliptical":e<=1+t?"Parabolic":"Hyperbolic"}function Tbt(e,t){let n=Abt(e,t);return Zbt(n,t)}var _bt=50,Sbt=W.EPSILON8;function Abt(e,t){let n=Math.floor(e/W.TWO_PI);e-=n*W.TWO_PI;let i=e+t*Math.sin(e)/(1-Math.sin(e+t)+Math.sin(e)),o=Number.MAX_VALUE,r;for(r=0;r<_bt&&Math.abs(o-i)>Sbt;++r){o=i;let s=o-t*Math.sin(o)-e,a=1-t*Math.cos(o);i=o-s/a}return o=i+n*W.TWO_PI,o}function Zbt(e,t){let n=Math.floor(e/W.TWO_PI);e-=n*W.TWO_PI;let i=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),r=Math.atan2(o,i);return r=W.zeroToTwoPi(r),e<0&&(r-=W.TWO_PI),r+=n*W.TWO_PI,r}function Cbt(e,t,n,i){let o=Math.cos(e),r=Math.sin(e),s=Math.cos(t),a=Math.sin(t),c=Math.cos(n),d=Math.sin(n);return l(i)?(i[0]=c*o-d*r*s,i[1]=d*o+c*r*s,i[2]=r*a,i[3]=-c*r-d*o*s,i[4]=-d*r+c*o*s,i[5]=o*a,i[6]=d*a,i[7]=-c*a,i[8]=s):i=new $(c*o-d*r*s,-c*r-d*o*s,d*a,d*o+c*r*s,-d*r+c*o*s,-c*a,r*a,o*a,s),i}var Rbt=1.0000010178*Lc,Vbt=100.46645683*Hm,Gbt=129597742283429e-5*Yu,MCe=16002,kCe=21863,UCe=32004,DCe=10931,OCe=14529,BCe=16368,zCe=15318,HCe=32794,Ebt=64*1e-7*Lc,Lbt=-152*1e-7*Lc,Wbt=62*1e-7*Lc,vbt=-8*1e-7*Lc,Fbt=32*1e-7*Lc,Ibt=-41*1e-7*Lc,Pbt=19*1e-7*Lc,Xbt=-11*1e-7*Lc,Ybt=-150*1e-7*Lc,Nbt=-46*1e-7*Lc,wbt=68*1e-7*Lc,Mbt=54*1e-7*Lc,kbt=14*1e-7*Lc,Ubt=24*1e-7*Lc,Dbt=-28*1e-7*Lc,Obt=22*1e-7*Lc,KCe=10,JCe=16002,jCe=21863,QCe=10931,qCe=1473,$Ce=32004,eRe=4387,tRe=73,Bbt=-325*1e-7,zbt=-322*1e-7,Hbt=-79*1e-7,Kbt=232*1e-7,Jbt=-52*1e-7,jbt=97*1e-7,Qbt=55*1e-7,qbt=-41*1e-7,$bt=-105*1e-7,egt=-137*1e-7,tgt=258*1e-7,ngt=35*1e-7,igt=-116*1e-7,ogt=-88*1e-7,rgt=-112*1e-7,sgt=-80*1e-7,_1=new Q(0,0,ii.TAI);function agt(e,t){iRe(e,_1);let i=(_1.dayNumber-n3.dayNumber+(_1.secondsOfDay-n3.secondsOfDay)/si.SECONDS_PER_DAY)/(si.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=Rbt+Ebt*Math.cos(MCe*o)+Ybt*Math.sin(MCe*o)+Lbt*Math.cos(kCe*o)+Nbt*Math.sin(kCe*o)+Wbt*Math.cos(UCe*o)+wbt*Math.sin(UCe*o)+vbt*Math.cos(DCe*o)+Mbt*Math.sin(DCe*o)+Fbt*Math.cos(OCe*o)+kbt*Math.sin(OCe*o)+Ibt*Math.cos(BCe*o)+Ubt*Math.sin(BCe*o)+Pbt*Math.cos(zCe*o)+Dbt*Math.sin(zCe*o)+Xbt*Math.cos(HCe*o)+Obt*Math.sin(HCe*o),s=Vbt+Gbt*i+Bbt*Math.cos(KCe*o)+$bt*Math.sin(KCe*o)+zbt*Math.cos(JCe*o)+egt*Math.sin(JCe*o)+Hbt*Math.cos(jCe*o)+tgt*Math.sin(jCe*o)+Kbt*Math.cos(QCe*o)+ngt*Math.sin(QCe*o)+Jbt*Math.cos(qCe*o)+igt*Math.sin(qCe*o)+jbt*Math.cos($Ce*o)+ogt*Math.sin($Ce*o)+Qbt*Math.cos(eRe*o)+rgt*Math.sin(eRe*o)+qbt*Math.cos(tRe*o)+sgt*Math.sin(tRe*o),a=.0167086342-.0004203654*i,c=102.93734808*Hm+11612.3529*Yu*i,d=469.97289*Yu*i,u=174.87317577*Hm-8679.27034*Yu*i;return oRe(r,a,d,c,u,s,t)}function rRe(e,t){iRe(e,_1);let i=(_1.dayNumber-n3.dayNumber+(_1.secondsOfDay-n3.secondsOfDay)/si.SECONDS_PER_DAY)/si.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,d=5.15668983*Hm,u=-8e-5*i+.02966*o-42e-6*r-13e-8*s,m=83.35324312*Hm,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,b=125.04455501*Hm,f=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,y=218.31664563*Hm,_=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,S=297.85019547*Hm+Yu*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),A=93.27209062*Hm+Yu*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),Z=134.96340251*Hm+Yu*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),R=357.52910918*Hm+Yu*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),G=310.17137918*Hm-Yu*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),E=2*S,v=4*S,I=6*S,X=2*Z,Y=3*Z,g=4*Z,C=2*A;a+=3400.4*Math.cos(E)-635.6*Math.cos(E-Z)-235.6*Math.cos(Z)+218.1*Math.cos(E-R)+181*Math.cos(E+Z),c+=.014216*Math.cos(E-Z)+.008551*Math.cos(E-X)-.001383*Math.cos(Z)+.001356*Math.cos(E+Z)-.001147*Math.cos(v-Y)-914e-6*Math.cos(v-X)+869e-6*Math.cos(E-R-Z)-627e-6*Math.cos(E)-394e-6*Math.cos(v-g)+282e-6*Math.cos(E-R-X)-279e-6*Math.cos(S-Z)-236e-6*Math.cos(X)+231e-6*Math.cos(v)+229e-6*Math.cos(I-g)-201e-6*Math.cos(X-C),u+=486.26*Math.cos(E-C)-40.13*Math.cos(E)+37.51*Math.cos(C)+25.73*Math.cos(X-C)+19.97*Math.cos(E-R-C),p+=-55609*Math.sin(E-Z)-34711*Math.sin(E-X)-9792*Math.sin(Z)+9385*Math.sin(v-Y)+7505*Math.sin(v-X)+5318*Math.sin(E+Z)+3484*Math.sin(v-g)-3417*Math.sin(E-R-Z)-2530*Math.sin(I-g)-2376*Math.sin(E)-2075*Math.sin(E-Y)-1883*Math.sin(X)-1736*Math.sin(I-5*Z)+1626*Math.sin(R)-1370*Math.sin(I-Y),f+=-5392*Math.sin(E-C)-540*Math.sin(R)-441*Math.sin(E)+423*Math.sin(C)-288*Math.sin(X-C),_+=-3332.9*Math.sin(E)+1197.4*Math.sin(E-Z)-662.5*Math.sin(R)+396.3*Math.sin(Z)-218*Math.sin(E-R);let V=2*G,L=3*G;u+=46.997*Math.cos(G)*i-.614*Math.cos(E-C+G)*i+.614*Math.cos(E-C-G)*i-.0297*Math.cos(V)*o-.0335*Math.cos(G)*o+.0012*Math.cos(E-C+V)*o-16e-5*Math.cos(G)*r+4e-5*Math.cos(L)*r+4e-5*Math.cos(V)*r;let P=2.116*Math.sin(G)*i-.111*Math.sin(E-C-G)*i-.0015*Math.sin(G)*o;p+=P,_+=P,f+=-520.77*Math.sin(G)*i+13.66*Math.sin(E-C+G)*i+1.12*Math.sin(E-G)*i-1.06*Math.sin(C-G)*i+.66*Math.sin(V)*o+.371*Math.sin(G)*o-.035*Math.sin(E-C+V)*o-.015*Math.sin(E-C+G)*o+.0014*Math.sin(G)*r-.0011*Math.sin(L)*r-9e-4*Math.sin(V)*r,a*=ybt;let N=d+u*Yu,O=m+p*Yu,M=y+_*Yu,D=b+f*Yu;return oRe(a,c,N,O,D,M,t)}var nRe=.012300034,cgt=nRe/(nRe+1)*-1;function lgt(e,t){return t=rRe(e,t),h.multiplyByScalar(t,cgt,t)}var sRe=new $(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),CN=new h;dee.computeSunPositionInEarthInertialFrame=function(e,t){return l(e)||(e=Q.now()),l(t)||(t=new h),CN=agt(e,CN),t=h.negate(CN,t),lgt(e,CN),h.subtract(t,CN,t),$.multiplyByVector(sRe,t,t),t};dee.computeMoonPositionInEarthInertialFrame=function(e,t){return l(e)||(e=Q.now()),t=rRe(e,t),$.multiplyByVector(sRe,t,t),t};var Gx=dee;var BOi=x(T(),1);function dgt(e){e=e??B.EMPTY_OBJECT,this.color=U.clone(e.color??U.WHITE),this.intensity=e.intensity??2}var dg=dgt;function S1(){this.globeDepthTexture=void 0,this.edgeIdTexture=void 0,this.edgeColorTexture=void 0,this.edgeDepthTexture=void 0,this.gamma=void 0,this._viewport=new it,this._viewportCartesian4=new ce,this._viewportDirty=!1,this._viewportOrthographicMatrix=F.clone(F.IDENTITY),this._viewportTransformation=F.clone(F.IDENTITY),this._model=F.clone(F.IDENTITY),this._view=F.clone(F.IDENTITY),this._inverseView=F.clone(F.IDENTITY),this._projection=F.clone(F.IDENTITY),this._infiniteProjection=F.clone(F.IDENTITY),this._entireFrustum=new k,this._currentFrustum=new k,this._frustumPlanes=new ce,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=$.clone(F.IDENTITY),this._view3DDirty=!0,this._view3D=new F,this._inverseView3DDirty=!0,this._inverseView3D=new F,this._inverseModelDirty=!0,this._inverseModel=new F,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new $,this._viewRotation=new $,this._inverseViewRotation=new $,this._viewRotation3D=new $,this._inverseViewRotation3D=new $,this._inverseProjectionDirty=!0,this._inverseProjection=new F,this._modelViewDirty=!0,this._modelView=new F,this._modelView3DDirty=!0,this._modelView3D=new F,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new F,this._inverseModelViewDirty=!0,this._inverseModelView=new F,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new F,this._viewProjectionDirty=!0,this._viewProjection=new F,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new F,this._modelViewProjectionDirty=!0,this._modelViewProjection=new F,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new F,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new F,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new F,this._normalDirty=!0,this._normal=new $,this._normal3DDirty=!0,this._normal3D=new $,this._inverseNormalDirty=!0,this._inverseNormal=new $,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new $,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new Zn,this._cameraPosition=new h,this._sunPositionWC=new h,this._sunPositionColumbusView=new h,this._sunDirectionWC=new h,this._sunDirectionEC=new h,this._moonDirectionEC=new h,this._lightDirectionWC=new h,this._lightDirectionEC=new h,this._lightColor=new h,this._lightColorHdr=new h,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._ellipsoid=void 0,this._cameraDirection=new h,this._cameraRight=new h,this._cameraUp=new h,this._frustum2DWidth=0,this._eyeHeight=0,this._eyeHeight2D=new k,this._eyeEllipsoidNormalEC=new h,this._eyeEllipsoidCurvature=new k,this._modelToEnu=new F,this._enuToModel=new F,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new U,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._fogVisualDensityScalar=void 0,this._fogMinimumBrightness=void 0,this._atmosphereHsbShift=void 0,this._atmosphereLightIntensity=void 0,this._atmosphereRayleighCoefficient=new h,this._atmosphereRayleighScaleHeight=new h,this._atmosphereMieCoefficient=new h,this._atmosphereMieScaleHeight=void 0,this._atmosphereMieAnisotropy=void 0,this._atmosphereDynamicLighting=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties(S1.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!it.equals(e,this._viewport)){it.clone(e,this._viewport);let t=this._viewport,n=this._viewportCartesian4;n.x=t.x,n.y=t.y,n.z=t.width,n.w=t.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return cRe(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return cRe(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){F.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,F.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,F.getMatrix3(this.inverseModel,e),$.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return mee(this),this._view3D}},viewRotation:{get:function(){return mee(this),this._viewRotation}},viewRotation3D:{get:function(){return mee(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return uRe(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return uRe(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return _gt(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return Sgt(this),this._modelView}},modelView3D:{get:function(){return Agt(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return Egt(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return Zgt(this),this._inverseModelView}},inverseModelView3D:{get:function(){return Cgt(this),this._inverseModelView3D}},viewProjection:{get:function(){return Rgt(this),this._viewProjection}},inverseViewProjection:{get:function(){return Vgt(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return Ggt(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return Lgt(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return Wgt(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return vgt(this),this._modelViewInfiniteProjection}},normal:{get:function(){return Fgt(this),this._normal}},normal3D:{get:function(){return Igt(this),this._normal3D}},inverseNormal:{get:function(){return Pgt(this),this._inverseNormal}},inverseNormal3D:{get:function(){return Xgt(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},farDepthFromNearPlusOne:{get:function(){return this._farDepthFromNearPlusOne}},log2FarDepthFromNearPlusOne:{get:function(){return this._log2FarDepthFromNearPlusOne}},oneOverLog2FarDepthFromNearPlusOne:{get:function(){return this._oneOverLog2FarDepthFromNearPlusOne}},eyeHeight:{get:function(){return this._eyeHeight}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},eyeEllipsoidNormalEC:{get:function(){return this._eyeEllipsoidNormalEC}},eyeEllipsoidCurvature:{get:function(){return this._eyeEllipsoidCurvature}},modelToEnu:{get:function(){return this._modelToEnu}},enuToModel:{get:function(){return this._enuToModel}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},lightDirectionWC:{get:function(){return this._lightDirectionWC}},lightDirectionEC:{get:function(){return this._lightDirectionEC}},lightColor:{get:function(){return this._lightColor}},lightColorHdr:{get:function(){return this._lightColorHdr}},encodedCameraPositionMCHigh:{get:function(){return dRe(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return dRe(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},fogVisualDensityScalar:{get:function(){return this._fogVisualDensityScalar}},fogMinimumBrightness:{get:function(){return this._fogMinimumBrightness}},atmosphereHsbShift:{get:function(){return this._atmosphereHsbShift}},atmosphereLightIntensity:{get:function(){return this._atmosphereLightIntensity}},atmosphereRayleighCoefficient:{get:function(){return this._atmosphereRayleighCoefficient}},atmosphereRayleighScaleHeight:{get:function(){return this._atmosphereRayleighScaleHeight}},atmosphereMieCoefficient:{get:function(){return this._atmosphereMieCoefficient}},atmosphereMieScaleHeight:{get:function(){return this._atmosphereMieScaleHeight}},atmosphereMieAnisotropy:{get:function(){return this._atmosphereMieAnisotropy}},atmosphereDynamicLighting:{get:function(){return this._atmosphereDynamicLighting}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},splitPosition:{get:function(){return this._splitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}},ellipsoid:{get:function(){return this._ellipsoid??ie.default}}});function ugt(e,t){F.clone(t,e._view),F.getMatrix3(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function mgt(e,t){F.clone(t,e._inverseView),F.getMatrix3(t,e._inverseViewRotation)}function hgt(e,t){F.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function fgt(e,t){F.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}var aRe=new h,pgt=new F;function bgt(e,t){h.clone(t.positionWC,e._cameraPosition),h.clone(t.directionWC,e._cameraDirection),h.clone(t.rightWC,e._cameraRight),h.clone(t.upWC,e._cameraUp);let n=e._ellipsoid,i,o=t.positionCartographic;if(l(o)?(e._eyeHeight=o.height,e._eyeEllipsoidNormalEC=n.geodeticSurfaceNormalCartographic(o,e._eyeEllipsoidNormalEC),i=h.fromRadians(o.longitude,o.latitude,0,n,aRe)):(e._eyeHeight=-n.maximumRadius,h.magnitude(t.positionWC)>0&&(e._eyeEllipsoidNormalEC=h.normalize(t.positionWC,e._eyeEllipsoidNormalEC)),i=n.scaleToGeodeticSurface(t.positionWC,aRe)),e._encodedCameraPositionMCDirty=!0,!l(i))return;e._eyeEllipsoidNormalEC=$.multiplyByVector(e._viewRotation,e._eyeEllipsoidNormalEC,e._eyeEllipsoidNormalEC);let r=xt.eastNorthUpToFixedFrame(i,n,pgt);e._enuToModel=F.multiplyTransformation(e.inverseModel,r,e._enuToModel),e._modelToEnu=F.inverseTransformation(e._enuToModel,e._modelToEnu),W.equalsEpsilon(n._radii.x,n._radii.y,W.EPSILON15)&&(e._eyeEllipsoidCurvature=n.getLocalCurvature(i,e._eyeEllipsoidCurvature))}var uee=new $,ggt=new fe;function ygt(e,t){xt.computeIcrfToCentralBodyFixedMatrix(t.time,uee);let n=Gx.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);$.multiplyByVector(uee,n,n),h.normalize(n,e._sunDirectionWC),n=$.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),h.normalize(n,n),n=Gx.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),$.multiplyByVector(uee,n,n),$.multiplyByVector(e.viewRotation3D,n,n),h.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,ggt);i.project(r,e._sunPositionColumbusView)}S1.prototype.updateCamera=function(e){ugt(this,e.viewMatrix),mgt(this,e.inverseViewMatrix),bgt(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==re.SCENE2D&&e.frustum instanceof fn};S1.prototype.updateFrustum=function(e){hgt(this,e.projectionMatrix),l(e.infiniteProjectionMatrix)&&fgt(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=W.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;l(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};S1.prototype.updatePass=function(e){this._pass=e};var xgt=[],Tgt=new dg;S1.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection,this._ellipsoid=e.mapProjection.ellipsoid,this._pixelRatio=e.pixelRatio;let t=e.camera;this.updateCamera(t),e.mode===re.SCENE2D?(this._frustum2DWidth=t.frustum.right-t.frustum.left,this._eyeHeight2D.x=this._frustum2DWidth*.5,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),ygt(this,e);let n=e.light??Tgt;n instanceof dg?(this._lightDirectionWC=h.clone(this._sunDirectionWC,this._lightDirectionWC),this._lightDirectionEC=h.clone(this._sunDirectionEC,this._lightDirectionEC)):(this._lightDirectionWC=h.normalize(h.negate(n.direction,this._lightDirectionWC),this._lightDirectionWC),this._lightDirectionEC=$.multiplyByVector(this.viewRotation3D,this._lightDirectionWC,this._lightDirectionEC));let i=n.color,o=h.fromElements(i.red,i.green,i.blue,this._lightColorHdr);o=h.multiplyByScalar(o,n.intensity,o);let r=h.maximumComponent(o);r>1?h.divideByScalar(o,r,this._lightColor):h.clone(o,this._lightColor);let s=e.brdfLutGenerator,a=l(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=e.environmentMap??e.context.defaultCubeMap,this._sphericalHarmonicCoefficients=e.sphericalHarmonicCoefficients??xgt,this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,this._fogDensity=e.fog.density,this._fogVisualDensityScalar=e.fog.visualDensityScalar,this._fogMinimumBrightness=e.fog.minimumBrightness;let c=e.atmosphere;l(c)&&(this._atmosphereHsbShift=h.fromElements(c.hueShift,c.saturationShift,c.brightnessShift,this._atmosphereHsbShift),this._atmosphereLightIntensity=c.lightIntensity,this._atmosphereRayleighCoefficient=h.clone(c.rayleighCoefficient,this._atmosphereRayleighCoefficient),this._atmosphereRayleighScaleHeight=c.rayleighScaleHeight,this._atmosphereMieCoefficient=h.clone(c.mieCoefficient,this._atmosphereMieCoefficient),this._atmosphereMieScaleHeight=c.mieScaleHeight,this._atmosphereMieAnisotropy=c.mieAnisotropy,this._atmosphereDynamicLighting=c.dynamicLighting),this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=xt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let d=t.frustum.fov,u=this._viewport,m;l(d)?u.height>u.width?m=Math.tan(.5*d)*2/u.height:m=Math.tan(.5*d)*2/u.width:m=1/Math.max(u.width,u.height),this._geometricToleranceOverMeter=m*e.maximumScreenSpaceError,U.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function cRe(e){if(e._viewportDirty){let t=e._viewport;F.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),F.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function _gt(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==re.SCENE2D&&e._mode!==re.MORPHING&&!e._orthographicIn3D?F.inverse(e._projection,e._inverseProjection):F.clone(F.ZERO,e._inverseProjection))}function Sgt(e){e._modelViewDirty&&(e._modelViewDirty=!1,F.multiplyTransformation(e._view,e._model,e._modelView))}function Agt(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,F.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function Zgt(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,F.inverse(e.modelView,e._inverseModelView))}function Cgt(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,F.inverse(e.modelView3D,e._inverseModelView3D))}function Rgt(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,F.multiply(e._projection,e._view,e._viewProjection))}function Vgt(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,F.inverse(e.viewProjection,e._inverseViewProjection))}function Ggt(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,F.multiply(e._projection,e.modelView,e._modelViewProjection))}function Egt(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;let t=e.modelView,n=e._modelViewRelativeToEye;n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=0,n[13]=0,n[14]=0,n[15]=t[15]}}function Lgt(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,F.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function Wgt(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,F.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function vgt(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,F.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function Fgt(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;F.getMatrix3(e.inverseModelView,t),$.transpose(t,t)}}function Igt(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;F.getMatrix3(e.inverseModelView3D,t),$.transpose(t,t)}}function Pgt(e){if(e._inverseNormalDirty){e._inverseNormalDirty=!1;let t=e._inverseNormal;F.getMatrix3(e.modelView,t),$.transpose(t,t)}}function Xgt(e){if(e._inverseNormal3DDirty){e._inverseNormal3DDirty=!1;let t=e._inverseNormal3D;F.getMatrix3(e.modelView3D,t),$.transpose(t,t)}}var lRe=new h;function dRe(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,F.multiplyByPoint(e.inverseModel,e._cameraPosition,lRe),Zn.fromCartesian(lRe,e._encodedCameraPositionMC))}var Ygt=new h,Ngt=new h,wgt=new h,Mgt=new h,kgt=new fe,Ugt=new h,Dgt=new F;function Ogt(e,t,n,i,o,r,s,a){let c=Ygt;c.x=e.y,c.y=e.z,c.z=e.x;let d=Ngt;d.x=n.y,d.y=n.z,d.z=n.x;let u=wgt;u.x=i.y,u.y=i.z,u.z=i.x;let m=Mgt;m.x=t.y,m.y=t.z,m.z=t.x,r===re.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,kgt);p.longitude=W.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=W.clamp(p.latitude,-W.PI_OVER_TWO,W.PI_OVER_TWO);let b=s.ellipsoid,f=b.cartographicToCartesian(p,Ugt),y=xt.eastNorthUpToFixedFrame(f,b,Dgt);return F.multiplyByPointAsVector(y,d,d),F.multiplyByPointAsVector(y,u,u),F.multiplyByPointAsVector(y,m,m),l(a)||(a=new F),a[0]=d.x,a[1]=u.x,a[2]=-m.x,a[3]=0,a[4]=d.y,a[5]=u.y,a[6]=-m.y,a[7]=0,a[8]=d.z,a[9]=u.z,a[10]=-m.z,a[11]=0,a[12]=-h.dot(d,f),a[13]=-h.dot(u,f),a[14]=h.dot(m,f),a[15]=1,a}function mee(e){e._view3DDirty&&(e._mode===re.SCENE3D?F.clone(e._view,e._view3D):Ogt(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),F.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function uRe(e){e._inverseView3DDirty&&(F.inverseTransformation(e.view3D,e._inverseView3D),F.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var RN=S1;function Nd(e,t){let{getWebGLStub:n,requestWebgl1:i,webgl:o={},allowTextureFilterAnisotropic:r=!0}=t??{};o.alpha=o.alpha??!1,o.stencil=o.stencil??!0,o.powerPreference=o.powerPreference??"high-performance";let s=l(n)?n(e,o):Bgt(e,o,i),c=typeof WebGL2RenderingContext<"u"&&s instanceof WebGL2RenderingContext;this._canvas=e,this._originalGLContext=s,this._gl=s,this._webgl2=c,this._id=zn(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new AN(this),this._textureCache=new ZN;let d=s;this._stencilBits=d.getParameter(d.STENCIL_BITS),Xt._maximumCombinedTextureImageUnits=d.getParameter(d.MAX_COMBINED_TEXTURE_IMAGE_UNITS),Xt._maximumCubeMapSize=d.getParameter(d.MAX_CUBE_MAP_TEXTURE_SIZE),Xt._maximumFragmentUniformVectors=d.getParameter(d.MAX_FRAGMENT_UNIFORM_VECTORS),Xt._maximumTextureImageUnits=d.getParameter(d.MAX_TEXTURE_IMAGE_UNITS),Xt._maximumRenderbufferSize=d.getParameter(d.MAX_RENDERBUFFER_SIZE),Xt._maximumTextureSize=d.getParameter(d.MAX_TEXTURE_SIZE),Xt._maximum3DTextureSize=d.getParameter(d.MAX_3D_TEXTURE_SIZE),Xt._maximumVaryingVectors=d.getParameter(d.MAX_VARYING_VECTORS),Xt._maximumVertexAttributes=d.getParameter(d.MAX_VERTEX_ATTRIBS),Xt._maximumVertexTextureImageUnits=d.getParameter(d.MAX_VERTEX_TEXTURE_IMAGE_UNITS),Xt._maximumVertexUniformVectors=d.getParameter(d.MAX_VERTEX_UNIFORM_VECTORS),Xt._maximumSamples=this._webgl2?d.getParameter(d.MAX_SAMPLES):0;let u=d.getParameter(d.ALIASED_LINE_WIDTH_RANGE);Xt._minimumAliasedLineWidth=u[0],Xt._maximumAliasedLineWidth=u[1];let m=d.getParameter(d.ALIASED_POINT_SIZE_RANGE);Xt._minimumAliasedPointSize=m[0],Xt._maximumAliasedPointSize=m[1];let p=d.getParameter(d.MAX_VIEWPORT_DIMS);Xt._maximumViewportWidth=p[0],Xt._maximumViewportHeight=p[1];let b=d.getShaderPrecisionFormat(d.FRAGMENT_SHADER,d.HIGH_FLOAT);Xt._highpFloatSupported=b.precision!==0;let f=d.getShaderPrecisionFormat(d.FRAGMENT_SHADER,d.HIGH_INT);Xt._highpIntSupported=f.rangeMax!==0,this._antialias=d.getContextAttributes().antialias,this._standardDerivatives=!!Qr(d,["OES_standard_derivatives"]),this._blendMinmax=!!Qr(d,["EXT_blend_minmax"]),this._elementIndexUint=!!Qr(d,["OES_element_index_uint"]),this._depthTexture=!!Qr(d,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!Qr(d,["EXT_frag_depth"]),this._debugShaders=Qr(d,["WEBGL_debug_shaders"]),this._textureFloat=!!Qr(d,["OES_texture_float"]),this._textureHalfFloat=!!Qr(d,["OES_texture_half_float"]),this._textureFloatLinear=!!Qr(d,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!Qr(d,["OES_texture_half_float_linear"]),this._supportsTextureLod=!!Qr(d,["EXT_shader_texture_lod"]),this._colorBufferFloat=!!Qr(d,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._floatBlend=!!Qr(d,["EXT_float_blend"]),this._colorBufferHalfFloat=!!Qr(d,["EXT_color_buffer_half_float"]),this._s3tc=!!Qr(d,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!Qr(d,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._astc=!!Qr(d,["WEBGL_compressed_texture_astc"]),this._etc=!!Qr(d,["WEBG_compressed_texture_etc"]),this._etc1=!!Qr(d,["WEBGL_compressed_texture_etc1"]),this._bc7=!!Qr(d,["EXT_texture_compression_bptc"]),ud.setKTX2SupportedFormats(this._s3tc,this._pvrtc,this._astc,this._etc,this._etc1,this._bc7);let y=r?Qr(d,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=y,Xt._maximumTextureFilterAnisotropy=l(y)?d.getParameter(y.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;let _,S,A,Z,R,G,E,v,I,X;if(c){let V=this;_=function(){return V._gl.createVertexArray()},S=function(L){V._gl.bindVertexArray(L)},A=function(L){V._gl.deleteVertexArray(L)},Z=function(L,P,N,O,M){d.drawElementsInstanced(L,P,N,O,M)},R=function(L,P,N,O){d.drawArraysInstanced(L,P,N,O)},G=function(L,P){d.vertexAttribDivisor(L,P)},E=function(L){d.drawBuffers(L)}}else v=Qr(d,["OES_vertex_array_object"]),l(v)&&(_=function(){return v.createVertexArrayOES()},S=function(V){v.bindVertexArrayOES(V)},A=function(V){v.deleteVertexArrayOES(V)}),I=Qr(d,["ANGLE_instanced_arrays"]),l(I)&&(Z=function(V,L,P,N,O){I.drawElementsInstancedANGLE(V,L,P,N,O)},R=function(V,L,P,N){I.drawArraysInstancedANGLE(V,L,P,N)},G=function(V,L){I.vertexAttribDivisorANGLE(V,L)}),X=Qr(d,["WEBGL_draw_buffers"]),l(X)&&(E=function(V){X.drawBuffersWEBGL(V)});this.glCreateVertexArray=_,this.glBindVertexArray=S,this.glDeleteVertexArray=A,this.glDrawElementsInstanced=Z,this.glDrawArraysInstanced=R,this.glVertexAttribDivisor=G,this.glDrawBuffers=E,this._vertexArrayObject=!!v,this._instancedArrays=!!I,this._drawBuffers=!!X,Xt._maximumDrawBuffers=this.drawBuffers?d.getParameter(ne.MAX_DRAW_BUFFERS):1,Xt._maximumColorAttachments=this.drawBuffers?d.getParameter(ne.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new U(0,0,0,0),this._clearDepth=1,this._clearStencil=0;let Y=new RN,g=new sl(this),C=Be.fromCache();this._defaultPassState=g,this._defaultRenderState=C,this._defaultTexture=void 0,this._defaultEmissiveTexture=void 0,this._defaultNormalTexture=void 0,this._defaultCubeMap=void 0,this._us=Y,this._currentRenderState=C,this._currentPassState=g,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(let V=0;V<Xt._maximumVertexAttributes;V++)this._vertexAttribDivisors.push(0);this._pickObjects=new Map,this._nextPickColor=new Uint32Array(1),this.options={getWebGLStub:n,requestWebgl1:i,webgl:o,allowTextureFilterAnisotropic:r},this.cache={},Be.apply(d,C,g)}function Bgt(e,t,n){if(typeof WebGLRenderingContext>"u")throw new ae("The browser does not support WebGL. Visit http://get.webgl.org.");!n&&!(typeof WebGL2RenderingContext<"u")&&(n=!0);let o=n?"webgl":"webgl2",r=e.getContext(o,t);if(!l(r))throw new ae("The browser supports WebGL, but initialization failed.");return r}function zgt(e,t){let n="WebGL Error: ";switch(t){case e.INVALID_ENUM:n+="INVALID_ENUM";break;case e.INVALID_VALUE:n+="INVALID_VALUE";break;case e.INVALID_OPERATION:n+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:n+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:n+="CONTEXT_LOST_WEBGL lost";break;default:n+=`Unknown (${t})`}return n}function Hgt(e,t,n,i){let o=`${zgt(e,i)}: ${t.name}(`;for(let r=0;r<n.length;++r)r!==0&&(o+=", "),o+=n[r];return o+=");",o}function Kgt(e,t,n){let i=e.getError();if(i!==e.NO_ERROR)throw new ae(Hgt(e,t,n,i))}function Jgt(e,t,n){return{get:function(){let i=e[t];return n(e,`get: ${t}`,i),e[t]},set:function(i){e[t]=i,n(e,`set: ${t}`,i)}}}function jgt(e,t){if(!l(t))return e;function n(o){return function(){let r=o.apply(e,arguments);return t(e,o,arguments),r}}let i={};for(let o in e){let r=e[o];r instanceof Function?i[o]=n(r):Object.defineProperty(i,o,Jgt(e,o,t))}return i}function Qr(e,t){let n=t.length;for(let i=0;i<n;++i){let o=e.getExtension(t[i]);if(o)return o}}var Qgt={};Object.defineProperties(Nd.prototype,{id:{get:function(){return this._id}},webgl2:{get:function(){return this._webgl2}},canvas:{get:function(){return this._canvas}},shaderCache:{get:function(){return this._shaderCache}},textureCache:{get:function(){return this._textureCache}},uniformState:{get:function(){return this._us}},stencilBits:{get:function(){return this._stencilBits}},stencilBuffer:{get:function(){return this._stencilBits>=8}},antialias:{get:function(){return this._antialias}},msaa:{get:function(){return this._webgl2}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},floatBlend:{get:function(){return this._floatBlend}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},supportsTextureLod:{get:function(){return this._webgl2||this._supportsTextureLod}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},astc:{get:function(){return this._astc}},etc:{get:function(){return this._etc}},etc1:{get:function(){return this._etc1}},bc7:{get:function(){return this._bc7}},supportsBasis:{get:function(){return this._s3tc||this._pvrtc||this._astc||this._etc||this._etc1||this._bc7}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=jgt(this._originalGLContext,e?Kgt:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new Ft({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultEmissiveTexture:{get:function(){return this._defaultEmissiveTexture===void 0&&(this._defaultEmissiveTexture=new Ft({context:this,pixelFormat:Qe.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([0,0,0])},flipY:!1})),this._defaultEmissiveTexture}},defaultNormalTexture:{get:function(){return this._defaultNormalTexture===void 0&&(this._defaultNormalTexture=new Ft({context:this,pixelFormat:Qe.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([128,128,255])},flipY:!1})),this._defaultNormalTexture}},defaultCubeMap:{get:function(){if(this._defaultCubeMap===void 0){let e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new Ur({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return Qgt}}});function mRe(e,t,n,i){let o=e._currentRenderState,r=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,Be.partialApply(e._gl,o,t,r,n,i)}var hee;typeof WebGLRenderingContext<"u"&&(hee=[ne.BACK]);function i3(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=hee;if(l(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var qgt=new mi;Nd.prototype.clear=function(e,t){e=e??qgt,t=t??this._defaultPassState;let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;l(o)&&(U.equals(this._clearColor,o)||(U.clone(o,this._clearColor),n.clearColor(o.red,o.green,o.blue,o.alpha)),i|=n.COLOR_BUFFER_BIT),l(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),l(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=e.renderState??this._defaultRenderState;mRe(this,a,t,!0);let c=e.framebuffer??t.framebuffer;i3(this,c),n.clear(i)};function $gt(e,t,n,i,o){i3(e,t),mRe(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function eyt(e,t,n,i){let o=t._primitiveType,r=t._vertexArray,s=t._offset,a=t._count,c=t.instanceCount;e._us.model=t._modelMatrix??F.IDENTITY,n._setUniforms(i,e._us,e.validateShaderProgram),r._bind();let d=r.indexBuffer;l(d)?(s=s*d.bytesPerIndex,l(a)?a=Math.min(a,d.numberOfIndices):a=d.numberOfIndices,c===0?e._gl.drawElements(o,a,d.indexDatatype,s):e.glDrawElementsInstanced(o,a,d.indexDatatype,s,c)):(l(a)?a=Math.min(a,r.numberOfVertices):a=r.numberOfVertices,c===0?e._gl.drawArrays(o,s,a):e.glDrawArraysInstanced(o,s,a,c)),r._unBind()}Nd.prototype.draw=function(e,t,n,i){t=t??this._defaultPassState;let o=e._framebuffer??t.framebuffer,r=e._renderState??this._defaultRenderState;n=n??e._shaderProgram,i=i??e._uniformMap,$gt(this,o,t,n,r),eyt(this,e,n,i)};Nd.prototype.beginFrame=function(){};Nd.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=hee;this.drawBuffers&&this.glDrawBuffers(t);let n=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(let i=0;i<n;++i)e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,null),e.bindTexture(e.TEXTURE_CUBE_MAP,null)};Nd.prototype.readPixelsToPBO=function(e){let t=this._gl;e=e??B.EMPTY_OBJECT;let n=Math.max(e.x??0,0),i=Math.max(e.y??0,0),o=e.width??this.drawingBufferWidth,r=e.height??this.drawingBufferHeight,s=e.framebuffer;if(!this._webgl2)throw new Te("A WebGL 2 context is required to read pixels using a PBO.");let a=ze.UNSIGNED_BYTE,c=Qe.RGBA;l(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype,c=s.getColorTexture(0).pixelFormat);let d=$e.createPixelBuffer({context:this,sizeInBytes:Qe.textureSizeInBytes(c,a,o,r),usage:Fe.DYNAMIC_READ});return i3(this,s),d._bind(),t.readPixels(n,i,o,r,c,ze.toWebGLConstant(a,this),0),d._unBind(),d};Nd.prototype.readPixels=function(e){let t=this._gl;e=e??B.EMPTY_OBJECT;let n=Math.max(e.x??0,0),i=Math.max(e.y??0,0),o=e.width??this.drawingBufferWidth,r=e.height??this.drawingBufferHeight,s=e.framebuffer,a=ze.UNSIGNED_BYTE,c=Qe.RGBA;l(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype,c=s.getColorTexture(0).pixelFormat);let d=Qe.createTypedArray(c,a,o,r);return i3(this,s),t.readPixels(n,i,o,r,Qe.RGBA,ze.toWebGLConstant(a,this),d),d};var hRe={position:0,textureCoordinates:1};Nd.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!l(e)){let t=new Zt({attributes:{position:new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:ve.TRIANGLES});e=wn.fromGeometry({context:this,geometry:t,attributeLocations:hRe,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};Nd.prototype.createViewportQuadCommand=function(e,t){return t=t??B.EMPTY_OBJECT,new at({vertexArray:this.getViewportQuadVertexArray(),primitiveType:ve.TRIANGLES,renderState:t.renderState,shaderProgram:tn.fromCache({context:this,vertexShaderSource:YS,fragmentShaderSource:e,attributeLocations:hRe}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};Nd.prototype.getObjectByPickColor=function(e){return this._pickObjects.get(e)};Nd.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new ae("Out of unique Pick IDs.");return this._pickObjects.set(t,e),new SN(this._pickObjects,t,U.fromRgba(t))};Nd.prototype.isDestroyed=function(){return!1};Nd.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];l(n.destroy)&&n.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultEmissiveTexture=this._defaultEmissiveTexture&&this._defaultEmissiveTexture.destroy(),this._defaultNormalTexture=this._defaultNormalTexture&&this._defaultNormalTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),he(this)};var wS=Nd;var JBi=x(T(),1);function o3(e){this._autoDestroy=e?.autoDestroy??!0,this._canvas=document.createElement("canvas"),this._context=new wS(this._canvas,Je(e?.contextOptions)),this._canvases=[]}o3.prototype.createSceneContext=function(e){let t=e.getContext("2d",{alpha:!0}),n=this;n._canvases.push(e);let i=!1,o=function(){i=!0;let c=n._canvases.indexOf(e);c!==-1&&(n._canvases.splice(c,1),n._autoDestroy&&n._canvases.length===0&&n.destroy())},r=function(){let c=n._context.canvas,d=this.drawingBufferWidth;c.width<d&&(c.width=d);let u=this.drawingBufferHeight;c.height<u&&(c.height=u)},s=function(){let c=this.drawingBufferWidth,d=this.drawingBufferHeight,u=n._context.canvas.height-d;t.drawImage(n._context.canvas,0,u,c,d,0,0,c,d),n._context.endFrame()};return new Proxy(this._context,{get(c,d,u){if(d==="isDestroyed")return function(){return i};switch(d){case"_canvas":return e;case"destroy":return o;case"drawingBufferWidth":return e.width;case"drawingBufferHeight":return e.height;case"beginFrame":return r;case"endFrame":return s;default:return Reflect.get(c,d,u)}}})};o3.prototype.destroy=function(){this._context.destroy(),he(this)};o3.prototype.isDestroyed=function(){return!1};var VN=o3;var n3i=x(T(),1);function MS(e){e=e??B.EMPTY_OBJECT;let t=e.context;if(!t._webgl2)throw new Te("A WebGL 2 context is required to use Sync operations.");let n=t._gl,i=n.fenceSync(ne.SYNC_GPU_COMMANDS_COMPLETE,0);this._gl=n,this._sync=i}MS.create=function(e){return new MS(e)};MS.prototype.getStatus=function(){return this._gl.getSyncParameter(this._sync,ne.SYNC_STATUS)};MS.prototype.isDestroyed=function(){return!1};MS.prototype.destroy=function(){return this._gl.deleteSync(this._sync),he(this)};MS.prototype.waitForSignal=async function(e,t){let n=this;t=t??10;function i(o,r,s){return()=>{n.getStatus()===ne.SIGNALED?o():s<=0?r(new ae("Wait for signal timeout")):e(i(o,r,s-1))}}return new Promise((o,r)=>{e(i(o,r,t))})};var GN=MS;var b3i=x(T(),1);function Ex(e){e=e??B.EMPTY_OBJECT;let{context:t,source:n,pixelFormat:i=Qe.RGBA,pixelDatatype:o=ze.UNSIGNED_BYTE,flipY:r=!0,skipColorSpaceConversion:s=!1,sampler:a=new Ht}=e;if(!t.webgl2&&!l(t.options.getWebGLStub))throw new Te("WebGL1 does not support texture3D. Please use a WebGL2 context.");let{width:c,height:d,depth:u}=e;l(n)&&(l(c)||(c=n.width),l(d)||(d=n.height),l(u)||(u=n.depth));let m=e.preMultiplyAlpha||i===Qe.RGB||i===Qe.LUMINANCE,p=Qe.toInternalFormat(i,o,t),b=Qe.isCompressedFormat(p),f=t._gl,y=Qe.texture3DSizeInBytes(i,o,c,d,u);if(this._id=e.id??zn(),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=f.TEXTURE_3D,this._texture=f.createTexture(),this._internalFormat=p,this._pixelFormat=i,this._pixelDatatype=o,this._width=c,this._height=d,this._depth=u,this._dimensions=new h(c,d,u),this._hasMipmap=!1,this._sizeInBytes=y,this._preMultiplyAlpha=m,this._flipY=r,this._initialized=!1,this._sampler=void 0,this._sampler=a,bRe(this,a),f.activeTexture(f.TEXTURE0),f.bindTexture(this._textureTarget,this._texture),l(n)){if(s?f.pixelStorei(f.UNPACK_COLORSPACE_CONVERSION_WEBGL,f.NONE):f.pixelStorei(f.UNPACK_COLORSPACE_CONVERSION_WEBGL,f.BROWSER_DEFAULT_WEBGL),!l(n.arrayBufferView))throw new Te("For Texture3D, options.source.arrayBufferView must be defined");fRe(this,n),this._initialized=!0}else pRe(this);f.bindTexture(this._textureTarget,null)}function fRe(e,t){let n=e._context,i=n._gl,o=e._textureTarget,r=e._internalFormat,{width:s,height:a,depth:c,pixelFormat:d,pixelDatatype:u,flipY:m}=e,p=Qe.alignmentInBytes(d,u,s);i.pixelStorei(i.UNPACK_ALIGNMENT,p),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1);let{arrayBufferView:b}=t;m&&console.warn("texture3D.flipY is not supported.");let f=1;if(t.mipLevels&&t.mipLevels.length&&(f=t.mipLevels.length+1),i.texStorage3D(o,f,r,s,a,c),i.texSubImage3D(o,0,0,0,0,s,a,c,d,ze.toWebGLConstant(u,n),b),f>1){let y=s,_=a,S=c;for(let A=0;A<t.mipLevels.length;++A)y=fee(y),_=fee(_),S=fee(S),i.texSubImage3D(o,A+1,0,0,0,y,_,S,d,ze.toWebGLConstant(u,n),t.mipLevels[A])}}Ex.prototype.copyFrom=function(e){e=e??B.EMPTY_OBJECT;let{source:t,xOffset:n=0,yOffset:i=0,zOffset:o=0}=e,s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture);let{width:c,height:d,depth:u}=t,m=!1;this._initialized||(n===0&&i===0&&o===0&&c===this._width&&d===this._height&&u===this._depth?(fRe(this,t),m=!0):(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),pRe(this)),this._initialized=!0),m||tyt(this,t.arrayBufferView,n,i,o,c,d,u),s.bindTexture(a,null)};function tyt(e,t,n,i,o,r,s,a){let c=e._context,d=c._gl,{pixelFormat:u,pixelDatatype:m}=e,p=Qe.alignmentInBytes(u,m,r);d.pixelStorei(d.UNPACK_ALIGNMENT,p),d.pixelStorei(d.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),d.pixelStorei(d.UNPACK_FLIP_Y_WEBGL,!1),d.texSubImage3D(e._textureTarget,0,n,i,o,r,s,a,u,ze.toWebGLConstant(m,c),t)}function fee(e){let t=Math.floor(e/2)|0;return Math.max(t,1)}function pRe(e){let t=e._context;t._gl.texImage3D(e._textureTarget,0,e._internalFormat,e._width,e._height,e._depth,0,e._pixelFormat,ze.toWebGLConstant(e._pixelDatatype,t),null)}Ex.create=function(e){return new Ex(e)};Object.defineProperties(Ex.prototype,{id:{get:function(){return this._id}},sampler:{get:function(){return this._sampler},set:function(e){bRe(this,e),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},dimensions:{get:function(){return this._dimensions}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},depth:{get:function(){return this._depth}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*8/7):this._sizeInBytes}},_target:{get:function(){return this._textureTarget}}});function bRe(e,t){let{minificationFilter:n,magnificationFilter:i}=t,o=[Dt.NEAREST_MIPMAP_NEAREST,Dt.NEAREST_MIPMAP_LINEAR,Dt.LINEAR_MIPMAP_NEAREST,Dt.LINEAR_MIPMAP_LINEAR].includes(n),r=e._context,s=e._pixelFormat,a=e._pixelDatatype;(a===ze.FLOAT&&!r.textureFloatLinear||a===ze.HALF_FLOAT&&!r.textureHalfFloatLinear)&&(n=o?Dt.NEAREST_MIPMAP_NEAREST:Dt.NEAREST,i=qn.NEAREST),Qe.isDepthFormat(s)&&(n=Dt.NEAREST,i=qn.NEAREST);let c=r._gl,d=e._textureTarget;c.activeTexture(c.TEXTURE0),c.bindTexture(d,e._texture),c.texParameteri(d,c.TEXTURE_MIN_FILTER,n),c.texParameteri(d,c.TEXTURE_MAG_FILTER,i),c.texParameteri(d,c.TEXTURE_WRAP_R,t.wrapR),c.texParameteri(d,c.TEXTURE_WRAP_S,t.wrapS),c.texParameteri(d,c.TEXTURE_WRAP_T,t.wrapT),l(e._textureFilterAnisotropic)&&c.texParameteri(d,e._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.maximumAnisotropy),c.bindTexture(d,null)}Ex.prototype.generateMipmap=function(e){e=e??am.DONT_CARE,this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};Ex.prototype.isDestroyed=function(){return!1};Ex.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),he(this)};var EN=Ex;var T3i=x(T(),1);function nyt(e,t,n){let i={flipY:!0,skipColorSpaceConversion:n,preferImageBitmap:!0},o=[We.createIfNeeded(t.positiveX).fetchImage(i),We.createIfNeeded(t.negativeX).fetchImage(i),We.createIfNeeded(t.positiveY).fetchImage(i),We.createIfNeeded(t.negativeY).fetchImage(i),We.createIfNeeded(t.positiveZ).fetchImage(i),We.createIfNeeded(t.negativeZ).fetchImage(i)];return Promise.all(o).then(function(r){return new Ur({context:e,source:{positiveX:r[0],negativeX:r[1],positiveY:r[2],negativeY:r[3],positiveZ:r[4],negativeZ:r[5]}})})}var LN=nyt;var Jbo=x(T(),1);var I3i=x(T(),1);var G3i=x(T(),1);var A3i=x(T(),1);async function iyt(e,t,n,i){return l(i)||(i=!1),syt(e,t,n,i)}function oyt(e,t,n){let i=e[0],o=i.terrainProvider.requestTileGeometry(i.x,i.y,i.level);if(!o)return!1;let r;return n?r=o.then(yRe(i)):r=o.then(yRe(i)).catch(ayt(i)),e.shift(),t.push(r),!0}function ryt(e){return new Promise(function(t){setTimeout(t,e)})}function pee(e,t,n){return e.length?oyt(e,t,n)?pee(e,t,n):ryt(100).then(()=>pee(e,t,n)):Promise.resolve()}function syt(e,t,n,i){let o=e.tilingScheme,r,s=[],a={};for(r=0;r<n.length;++r){let d=o.positionToTileXY(n[r],t);if(!l(d))continue;let u=d.toString();if(!a.hasOwnProperty(u)){let m={x:d.x,y:d.y,level:t,tilingScheme:o,terrainProvider:e,positions:[]};a[u]=m,s.push(m)}a[u].positions.push(n[r])}let c=[];return pee(s,c,i).then(function(){return Promise.all(c).then(function(){return n})})}function gRe(e,t,n){let i=t.interpolateHeight(n,e.longitude,e.latitude);return i===void 0?!1:(e.height=i,!0)}function yRe(e){let t=e.positions,n=e.tilingScheme.tileXYToRectangle(e.x,e.y,e.level);return function(i){let o=!1;for(let r=0;r<t.length;++r){let s=t[r];if(!gRe(s,i,n)){o=!0;break}}return o?i.createMesh({tilingScheme:e.tilingScheme,x:e.x,y:e.y,level:e.level,throttle:!1}).then(function(){for(let r=0;r<t.length;++r){let s=t[r];gRe(s,i,n)}}):Promise.resolve()}}function ayt(e){let t=e.positions;return function(){for(let n=0;n<t.length;++n){let i=t[n];i.height=void 0}}}var WN=iyt;var bee=new k;async function xRe(e,t,n){l(n)||(n=!1);let i=[],o=[],r=e.availability,s=[];for(let c=0;c<t.length;++c){let d=t[c],u=r.computeMaximumLevelAtPosition(d);if(o[c]=u,u===0){e.tilingScheme.positionToTileXY(d,1,bee);let p=e.loadTileDataAvailability(bee.x,bee.y,1);l(p)&&s.push(p)}let m=i[u];l(m)||(i[u]=m=[]),m.push(d)}await Promise.all(s),await Promise.all(i.map(function(c,d){if(l(c))return WN(e,d,c,n)}));let a=[];for(let c=0;c<t.length;++c){let d=t[c];r.computeMaximumLevelAtPosition(d)!==o[c]&&a.push(d)}return a.length>0&&await xRe(e,a,n),t}var kS=xRe;async function gee(e,t){let n=t.terrainProvider,i=t.mapProjection,o=i.ellipsoid,r,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===re.SCENE3D?r=o.cartesianToCartographic(s):r=i.unproject(s),!l(n))return r;let a=n.availability;if(!l(a)||t.mode===re.SCENE2D)return r;let c=[se.center(e),se.southeast(e),se.southwest(e),se.northeast(e),se.northwest(e)],d=await gee._sampleTerrainMostDetailed(n,c),u=!1,m=d.reduce(function(b,f){return l(f.height)?(u=!0,Math.max(f.height,b)):b},-Number.MAX_VALUE),p=r;return u&&(p.height+=m),p}gee._sampleTerrainMostDetailed=kS;var US=gee;var jji=x(T(),1);var mHi=x(T(),1);var iHi=x(T(),1);var X3i=x(T(),1),TRe={NONE:0,LERC:1};Object.freeze(TRe);var Km=TRe;var uzi=x(T(),1);var J3i=x(T(),1);var N3i=x(T(),1),_Re={NONE:0,BITS12:1};Object.freeze(_Re);var Ya=_Re;var vN=new h,cyt=new h,Jm=new k,lyt=new F,dyt=new F,uyt=Math.pow(2,12);function Wc(e,t,n,i,o,r,s,a,c,d){let u=Ya.NONE,m,p;if(l(t)&&l(n)&&l(i)&&l(o)){let b=t.minimum,f=t.maximum,y=h.subtract(f,b,cyt),_=i-n;Math.max(h.maximumComponent(y),_)<uyt-1?u=Ya.BITS12:u=Ya.NONE;let A=F.fromScale(y,lyt);A=F.setTranslation(A,b,A);let Z=F.fromScale(h.fromElements(1/y.x,1/y.y,1/y.z,vN),dyt);Z=F.multiplyByTranslation(Z,h.negate(b,vN),Z),p=F.clone(o,new F);let R=F.getTranslation(o,vN);R=h.subtract(R,e,vN),p=F.setTranslation(p,R,p),p=F.multiply(p,A,p),m=F.inverseTransformation(o,new F),m=F.multiply(Z,m,m),o=F.multiply(o,A,new F)}this.quantization=u,this.minimumHeight=n,this.maximumHeight=i,this.center=h.clone(e),this.toScaledENU=m,this.fromScaledENU=o,this.matrix=p,this.hasVertexNormals=r??!1,this.hasWebMercatorT=s??!1,this.hasGeodeticSurfaceNormals=a??!1,this.exaggeration=c??1,this.exaggerationRelativeHeight=d??0,this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}Wc.prototype.encode=function(e,t,n,i,o,r,s,a){let c=i.x,d=i.y;if(this.quantization===Ya.BITS12){n=F.multiplyByPoint(this.toScaledENU,n,vN),n.x=W.clamp(n.x,0,1),n.y=W.clamp(n.y,0,1),n.z=W.clamp(n.z,0,1);let u=this.maximumHeight-this.minimumHeight,m=W.clamp((o-this.minimumHeight)/u,0,1);k.fromElements(n.x,n.y,Jm);let p=cn.compressTextureCoordinates(Jm);k.fromElements(n.z,m,Jm);let b=cn.compressTextureCoordinates(Jm);k.fromElements(c,d,Jm);let f=cn.compressTextureCoordinates(Jm);if(e[t++]=p,e[t++]=b,e[t++]=f,this.hasWebMercatorT){k.fromElements(s,0,Jm);let y=cn.compressTextureCoordinates(Jm);e[t++]=y}}else e[t++]=n.x-this.center.x,e[t++]=n.y-this.center.y,e[t++]=n.z-this.center.z,e[t++]=o,e[t++]=c,e[t++]=d,this.hasWebMercatorT&&(e[t++]=s);return this.hasVertexNormals&&(e[t++]=cn.octPackFloat(r)),this.hasGeodeticSurfaceNormals&&(e[t++]=a.x,e[t++]=a.y,e[t++]=a.z),t};var myt=new h,SRe=new h;Wc.prototype.addGeodeticSurfaceNormals=function(e,t,n){if(this.hasGeodeticSurfaceNormals)return;let i=this.stride,o=e.length/i;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();let r=this.stride;for(let s=0;s<o;s++){for(let u=0;u<i;u++){let m=s*i+u,p=s*r+u;t[p]=e[m]}let a=this.decodePosition(t,s,myt),c=n.geodeticSurfaceNormal(a,SRe),d=s*r+this._offsetGeodeticSurfaceNormal;t[d]=c.x,t[d+1]=c.y,t[d+2]=c.z}};Wc.prototype.removeGeodeticSurfaceNormals=function(e,t){if(!this.hasGeodeticSurfaceNormals)return;let n=this.stride,i=e.length/n;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();let o=this.stride;for(let r=0;r<i;r++)for(let s=0;s<o;s++){let a=r*n+s,c=r*o+s;t[c]=e[a]}};Wc.prototype.decodePosition=function(e,t,n){if(l(n)||(n=new h),t*=this.stride,this.quantization===Ya.BITS12){let i=cn.decompressTextureCoordinates(e[t],Jm);n.x=i.x,n.y=i.y;let o=cn.decompressTextureCoordinates(e[t+1],Jm);return n.z=o.x,F.multiplyByPoint(this.fromScaledENU,n,n)}return n.x=e[t],n.y=e[t+1],n.z=e[t+2],h.add(n,this.center,n)};Wc.prototype.getExaggeratedPosition=function(e,t,n){n=this.decodePosition(e,t,n);let i=this.exaggeration,o=this.exaggerationRelativeHeight;if(i!==1&&this.hasGeodeticSurfaceNormals){let s=this.decodeGeodeticSurfaceNormal(e,t,SRe),a=this.decodeHeight(e,t),c=co.getHeight(a,i,o)-a;n.x+=s.x*c,n.y+=s.y*c,n.z+=s.z*c}return n};Wc.prototype.decodeTextureCoordinates=function(e,t,n){return l(n)||(n=new k),t*=this.stride,this.quantization===Ya.BITS12?cn.decompressTextureCoordinates(e[t+2],n):k.fromElements(e[t+4],e[t+5],n)};Wc.prototype.decodeHeight=function(e,t){return t*=this.stride,this.quantization===Ya.BITS12?cn.decompressTextureCoordinates(e[t+1],Jm).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:e[t+3]};Wc.prototype.decodeWebMercatorT=function(e,t){return t*=this.stride,this.quantization===Ya.BITS12?cn.decompressTextureCoordinates(e[t+3],Jm).x:e[t+6]};Wc.prototype.getOctEncodedNormal=function(e,t,n){t=t*this.stride+this._offsetVertexNormal;let i=e[t]/256,o=Math.floor(i),r=(i-o)*256;return k.fromElements(o,r,n)};Wc.prototype.decodeNormal=function(e,t,n){let i=t=t*this.stride+this._offsetVertexNormal;return cn.octDecodeFloat(e[i],n)};Wc.prototype.decodeGeodeticSurfaceNormal=function(e,t,n){return t=t*this.stride+this._offsetGeodeticSurfaceNormal,n.x=e[t],n.y=e[t+1],n.z=e[t+2],n};Wc.prototype._calculateStrideAndOffsets=function(){let e=0;this.quantization===Ya.BITS12?e+=3:e+=6,this.hasWebMercatorT&&(e+=1),this.hasVertexNormals&&(this._offsetVertexNormal=e,e+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=e,e+=3),this.stride=e};var r3={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},s3={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};Wc.prototype.getAttributes=function(e){let t=J.FLOAT,n=J.getSizeInBytes(t),i=this.stride*n,o=0,r=[];function s(a,c){r.push({index:a,vertexBuffer:e,componentDatatype:t,componentsPerAttribute:c,offsetInBytes:o,strideInBytes:i}),o+=c*n}if(this.quantization===Ya.NONE){s(r3.position3DAndHeight,4);let a=2;a+=this.hasWebMercatorT?1:0,a+=this.hasVertexNormals?1:0,s(r3.textureCoordAndEncodedNormals,a),this.hasGeodeticSurfaceNormals&&s(r3.geodeticSurfaceNormal,3)}else{let a=this.hasWebMercatorT||this.hasVertexNormals,c=this.hasWebMercatorT&&this.hasVertexNormals;s(s3.compressed0,a?4:3),c&&s(s3.compressed1,1),this.hasGeodeticSurfaceNormals&&s(s3.geodeticSurfaceNormal,3)}return r};Wc.prototype.getAttributeLocations=function(){return this.quantization===Ya.NONE?r3:s3};Wc.clone=function(e,t){if(l(e))return l(t)||(t=new Wc),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=h.clone(e.center),t.toScaledENU=F.clone(e.toScaledENU),t.fromScaledENU=F.clone(e.fromScaledENU),t.matrix=F.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t.hasGeodeticSurfaceNormals=e.hasGeodeticSurfaceNormals,t.exaggeration=e.exaggeration,t.exaggerationRelativeHeight=e.exaggerationRelativeHeight,t._calculateStrideAndOffsets(),t};var hr=Wc;var Kp={};Kp.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var yee=new h,hyt=new F,fyt=new h,pyt=new h;Kp.computeVertices=function(e){let t=Math.cos,n=Math.sin,i=Math.sqrt,o=Math.atan,r=Math.exp,s=W.PI_OVER_TWO,a=W.toRadians,c=e.heightmap,d=e.width,u=e.height,m=e.skirtHeight,p=m>0,b=e.isGeographic??!0,f=e.ellipsoid??ie.default,y=1/f.maximumRadius,_=se.clone(e.nativeRectangle),S=se.clone(e.rectangle),A,Z,R,G;l(S)?(A=S.west,Z=S.south,R=S.east,G=S.north):b?(A=a(_.west),Z=a(_.south),R=a(_.east),G=a(_.north)):(A=_.west*y,Z=s-2*o(r(-_.south*y)),R=_.east*y,G=s-2*o(r(-_.north*y)));let E=e.relativeToCenter,v=l(E);E=v?E:h.ZERO;let I=e.includeWebMercatorT??!1,X=e.exaggeration??1,Y=e.exaggerationRelativeHeight??0,C=X!==1,V=e.structure??Kp.DEFAULT_STRUCTURE,L=V.heightScale??Kp.DEFAULT_STRUCTURE.heightScale,P=V.heightOffset??Kp.DEFAULT_STRUCTURE.heightOffset,N=V.elementsPerHeight??Kp.DEFAULT_STRUCTURE.elementsPerHeight,O=V.stride??Kp.DEFAULT_STRUCTURE.stride,M=V.elementMultiplier??Kp.DEFAULT_STRUCTURE.elementMultiplier,D=V.isBigEndian??Kp.DEFAULT_STRUCTURE.isBigEndian,w=se.computeWidth(_),z=se.computeHeight(_),K=w/(d-1),ee=z/(u-1);b||(w*=y,z*=y);let H=f.radiiSquared,te=H.x,q=H.y,de=H.z,ye=65536,le=-65536,Ce=xt.eastNorthUpToFixedFrame(E,f),ge=F.inverseTransformation(Ce,hyt),Ee,Re;I&&(Ee=ui.geodeticLatitudeToMercatorAngle(Z),Re=1/(ui.geodeticLatitudeToMercatorAngle(G)-Ee));let Xe=fyt;Xe.x=Number.POSITIVE_INFINITY,Xe.y=Number.POSITIVE_INFINITY,Xe.z=Number.POSITIVE_INFINITY;let we=pyt;we.x=Number.NEGATIVE_INFINITY,we.y=Number.NEGATIVE_INFINITY,we.z=Number.NEGATIVE_INFINITY;let nt=Number.POSITIVE_INFINITY,je=d*u,et=m>0?d*2+u*2:0,Ie=je+et,Oe=new Array(Ie),St=new Array(Ie),Et=new Array(Ie),on=I?new Array(Ie):[],Ot=C?new Array(Ie):[],gt=0,Wt=u,Cn=0,dt=d;p&&(--gt,++Wt,--Cn,++dt);let mt=1e-5;for(let ni=gt;ni<Wt;++ni){let yn=ni;yn<0&&(yn=0),yn>=u&&(yn=u-1);let Mn=_.north-ee*yn;b?Mn=a(Mn):Mn=s-2*o(r(-Mn*y));let Vr=(Mn-Z)/(G-Z);Vr=W.clamp(Vr,0,1);let Is=ni===gt,Ps=ni===Wt-1;m>0&&(Is?Mn+=mt*z:Ps&&(Mn-=mt*z));let Xs=t(Mn),Ta=n(Mn),Uo=de*Ta,hi;I&&(hi=(ui.geodeticLatitudeToMercatorAngle(Mn)-Ee)*Re);for(let yo=Cn;yo<dt;++yo){let eo=yo;eo<0&&(eo=0),eo>=d&&(eo=d-1);let Ys=yn*(d*O)+eo*O,Ei;if(N===1)Ei=c[Ys];else{Ei=0;let vo;if(D)for(vo=0;vo<N;++vo)Ei=Ei*M+c[Ys+vo];else for(vo=N-1;vo>=0;--vo)Ei=Ei*M+c[Ys+vo]}Ei=Ei*L+P,le=Math.max(le,Ei),ye=Math.min(ye,Ei);let Yo=_.west+K*eo;b?Yo=a(Yo):Yo=Yo*y;let fc=(Yo-A)/(R-A);fc=W.clamp(fc,0,1);let $r=yn*d+eo;if(m>0){let vo=yo===Cn,sd=yo===dt-1,Pg=Is||Ps||vo||sd;if((Is||Ps)&&(vo||sd))continue;Pg&&(Ei-=m,vo?($r=je+(u-yn-1),Yo-=mt*w):Ps?$r=je+u+(d-eo-1):sd?($r=je+u+d+yn,Yo+=mt*w):Is&&($r=je+u+d+u+eo))}let jd=Xs*t(Yo),_a=Xs*n(Yo),Ig=te*jd,_s=q*_a,Uf=1/i(Ig*jd+_s*_a+Uo*Ta),ci=Ig*Uf,ea=_s*Uf,Qd=Uo*Uf,rd=new h;rd.x=ci+jd*Ei,rd.y=ea+_a*Ei,rd.z=Qd+Ta*Ei,F.multiplyByPoint(ge,rd,yee),h.minimumByComponent(yee,Xe,Xe),h.maximumByComponent(yee,we,we),nt=Math.min(nt,Ei),Oe[$r]=rd,Et[$r]=new k(fc,Vr),St[$r]=Ei,I&&(on[$r]=hi),C&&(Ot[$r]=f.geodeticSurfaceNormal(rd))}}let Qn=ue.fromPoints(Oe),Yn;l(S)&&(Yn=en.fromRectangle(S,ye,le,f));let $i;v&&($i=new af(f).computeHorizonCullingPointPossiblyUnderEllipsoid(E,Oe,ye));let Ko=new nu(Xe,we,E),mo=new hr(E,Ko,nt,le,Ce,!1,I,C,X,Y),so=new Float32Array(Ie*mo.stride),ti=0;for(let ni=0;ni<Ie;++ni)ti=mo.encode(so,ti,Oe[ni],Et[ni],St[ni],void 0,on[ni],Ot[ni]);return{vertices:so,maximumHeight:le,minimumHeight:ye,encoding:mo,boundingSphere3D:Qn,orientedBoundingBox:Yn,occludeePointInScaledSpace:$i}};var A1=Kp;var fzi=x(T(),1);function Lx(){Te.throwInstantiationError()}Object.defineProperties(Lx.prototype,{credits:{get:Te.throwInstantiationError},waterMask:{get:Te.throwInstantiationError}});Lx.prototype.interpolateHeight=Te.throwInstantiationError;Lx.prototype.isChildAvailable=Te.throwInstantiationError;Lx.prototype.createMesh=Te.throwInstantiationError;Lx.prototype.upsample=Te.throwInstantiationError;Lx.prototype.wasCreatedByUpsampling=Te.throwInstantiationError;Lx.maximumAsynchronousTasks=5;var wd=Lx;var Mzi=x(T(),1);var Vzi=x(T(),1);var byt=3;function _ee(e,t,n){this._vertices=e,this._indices=t,this._encoding=n,this._inverseTransform=new F,this._needsRebuild=!0,this._rootNode=new Tee}var gyt=new Hn("incrementallyBuildTerrainPicker");Object.defineProperties(_ee.prototype,{needsRebuild:{get:function(){return this._needsRebuild},set:function(e){this._needsRebuild=e}}});function Tee(){this.x=0,this.y=0,this.level=0,this.aabb=ARe(this.x,this.y,this.level),this.intersectingTriangles=new Uint32Array(0),this.children=[],this.buildingChildren=!1}Tee.prototype.addChild=function(e){let t=new Tee;t.x=this.x*2+(e&1),t.y=this.y*2+(e>>1&1),t.level=this.level+1,t.aabb=ARe(t.x,t.y,t.level),this.children[e]=t};var yyt=new _n,a3=[new h,new h,new h];_ee.prototype.rayIntersect=function(e,t,n,i,o){this._needsRebuild&&xyt(this,t);let r=this._inverseTransform,s=yyt;s.origin=F.multiplyByPoint(r,e.origin,s.origin),s.direction=F.multiplyByPointAsVector(r,e.direction,s.direction);let a=[];return ZRe(this._rootNode,s,a),Zyt(this,a,e,n,i,o)};function xyt(e,t){F.inverse(t,e._inverseTransform),e._needsRebuild=!1;let n=e._indices.length/3,i=new Uint32Array(n);for(let o=0;o<n;++o)i[o]=o;e._rootNode.intersectingTriangles=i,e._rootNode.children.length=0}var Tyt=new h,_yt=new h;function ARe(e,t,n){let i=1/Math.pow(2,n),o=h.fromElements(e*i-.5,t*i-.5,-.5,Tyt),r=h.fromElements((e+1)*i-.5,(t+1)*i-.5,.5,_yt);return nu.fromCorners(o,r)}function Syt(e,t,n,i,o){h.pack(n[0],e,9*o),h.pack(n[1],e,9*o+3),h.pack(n[2],e,9*o+6),t[o]=i}var Ayt=new kr;function ZRe(e,t,n){let i=di.rayAxisAlignedBoundingBox(t,e.aabb,Ayt);if(!l(i))return;if(!e.children.length||e.buildingChildren){n.push({node:e,interval:new kr(i.start,i.stop)});return}for(let r=0;r<e.children.length;r++)ZRe(e.children[r],t,n)}function Zyt(e,t,n,i,o,r){let s=t.sort(function(c,d){return c.interval.start-d.interval.start}),a=Number.MAX_VALUE;for(let c=0;c<s.length;c++){let d=s[c],u=Cyt(e,n,d.node,i,o,r);if(a=Math.min(u,a),a!==Number.MAX_VALUE)break}if(a!==Number.MAX_VALUE)return _n.getPoint(n,a)}function Cyt(e,t,n,i,o,r){let s=Number.MAX_VALUE,a=e._encoding,c=e._indices,d=e._vertices,u=n.intersectingTriangles.length,p=!(n.level>=byt)&&!n.buildingChildren,b,f;p&&(b=new Float64Array(u*9),f=new Uint32Array(u));for(let y=0;y<u;y++){let _=n.intersectingTriangles[y],S=xee(a,o,r,t,d,c[3*_],a3[0]),A=xee(a,o,r,t,d,c[3*_+1],a3[1]),Z=xee(a,o,r,t,d,c[3*_+2],a3[2]),R=di.rayTriangleParametric(t,S,A,Z,i);l(R)&&R<s&&R>=0&&(s=R),p&&Syt(b,f,a3,_,y)}if(p){for(let y=0;y<4;y++)n.addChild(y);Vyt(e._inverseTransform,n,f,b)}return s}var Ryt=new fe;function xee(e,t,n,i,o,r,s){let a=e.getExaggeratedPosition(o,r,s);if(t===re.SCENE3D)return a;let d=n.ellipsoid.cartesianToCartographic(a,Ryt);a=n.project(d,s),a=h.fromElements(a.z,a.x,a.y,s);let u=W.TWO_PI*n.ellipsoid.maximumRadius,m=Math.round((i.origin.y-a.y)/u);return a.y+=m*u,a}async function Vyt(e,t,n,i){t.buildingChildren=!0;let o=new Float64Array(16);F.pack(e,o,0);let r=new Float64Array(24);for(let u=0;u<4;u++)h.pack(t.children[u].aabb.minimum,r,u*6),h.pack(t.children[u].aabb.maximum,r,u*6+3);let s={aabbs:r,inverseTransform:o,triangleIndices:n,trianglePositions:i},a=[r.buffer,o.buffer,n.buffer,i.buffer],c=gyt.scheduleTask(s,a);if(!l(c)){t.buildingChildren=!1;return}(await c).intersectingTrianglesArrays.forEach((u,m)=>{l(t.children[m])&&(t.children[m].intersectingTriangles=new Uint32Array(u))}),t.intersectingTriangles=new Uint32Array(0),t.buildingChildren=!1}var FN=_ee;function IN(e,t,n,i,o,r,s,a,c,d,u,m,p,b,f,y,_){this.center=e,this.vertices=t,this.stride=u??6,this.indices=n,this.indexCountWithoutSkirts=i,this.vertexCountWithoutSkirts=o,this.minimumHeight=r,this.maximumHeight=s,this.rectangle=a,this.boundingSphere3D=c,this.occludeePointInScaledSpace=d,this.orientedBoundingBox=m,this.encoding=p,this.westIndicesSouthToNorth=b,this.southIndicesEastToWest=f,this.eastIndicesNorthToSouth=y,this.northIndicesWestToEast=_,this._transform=new F,this._lastPickSceneMode=void 0,this._terrainPicker=new FN(t,n,p)}IN.prototype.getTransform=function(e,t){return this._lastPickSceneMode===e?this._transform:(this._terrainPicker.needsRebuild=!0,!l(e)||e===re.SCENE3D?Gyt(this,this._transform):Pyt(this,t,this._transform))};function Gyt(e,t){let n=e.encoding.exaggeration,i=e.encoding.exaggerationRelativeHeight,o=co.getHeight(e.minimumHeight,n,i),r=co.getHeight(e.maximumHeight,n,i),s=en.fromRectangle(e.rectangle,o,r,ie.default,e.orientedBoundingBox);return en.computeTransformation(s,t),F.getScale(t,See).z<=W.EPSILON16&&(See.z=1,F.setScale(t,See,t)),t}var Eyt=new h,Lyt=new h,Wyt=new fe,vyt=new fe,Fyt=new h,Iyt=new h,See=new h;function Pyt(e,t,n){let i=e.encoding.exaggeration,o=e.encoding.exaggerationRelativeHeight,r=co.getHeight(e.minimumHeight,i,o),s=co.getHeight(e.maximumHeight,i,o),a=t.project(fe.fromRadians(e.rectangle.west,e.rectangle.south,0,Wyt),Eyt),c=t.project(fe.fromRadians(e.rectangle.east,e.rectangle.north,0,vyt),Lyt),d=s-r,u=h.fromElements(c.x-a.x,c.y-a.y,d>0?d:1,Fyt),m=h.fromElements(a.x+u.x*.5,a.y+u.y*.5,r+u.z*.5,Iyt);return F.fromTranslation(m,n),F.setScale(n,u,n),F.multiply(xt.SWIZZLE_3D_TO_2D_MATRIX,n,n),n}IN.prototype.pick=function(e,t,n,i){let o=this._terrainPicker.rayIntersect(e,this.getTransform(n,i),t,n,i);return this._lastPickSceneMode=n,o};IN.prototype.updateExaggeration=function(e,t){this._terrainPicker._vertices=this.vertices,this._terrainPicker.needsRebuild=!0,this._lastPickSceneMode=void 0};IN.prototype.updateSceneMode=function(e){this._terrainPicker.needsRebuild=!0,this._lastPickSceneMode=void 0};var cc=IN;function ug(e){e=e??B.EMPTY_OBJECT,this._buffer=e.buffer,this._width=e.width,this._height=e.height,this._childTileMask=e.childTileMask??15,this._encoding=e.encoding??Km.NONE;let t=A1.DEFAULT_STRUCTURE,n=e.structure;l(n)?n!==t&&(n.heightScale=n.heightScale??t.heightScale,n.heightOffset=n.heightOffset??t.heightOffset,n.elementsPerHeight=n.elementsPerHeight??t.elementsPerHeight,n.stride=n.stride??t.stride,n.elementMultiplier=n.elementMultiplier??t.elementMultiplier,n.isBigEndian=n.isBigEndian??t.isBigEndian):n=t,this._structure=n,this._createdByUpsampling=e.createdByUpsampling??!1,this._waterMask=e.waterMask,this._skirtHeight=void 0,this._bufferType=this._encoding===Km.LERC?Float32Array:this._buffer.constructor,this._mesh=void 0}Object.defineProperties(ug.prototype,{credits:{get:function(){}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}}});var CRe="createVerticesFromHeightmap",Xyt=new Hn(CRe),Yyt=new Hn(CRe,wd.maximumAsynchronousTasks);ug.prototype.createMesh=function(e){e=e??B.EMPTY_OBJECT;let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=e.exaggeration??1,s=e.exaggerationRelativeHeight??0,a=e.throttle??!0,c=t.ellipsoid,d=t.tileXYToNativeRectangle(n,i,o),u=t.tileXYToRectangle(n,i,o),m=c.cartographicToCartesian(se.center(u)),p=this._structure,f=Mo.getEstimatedLevelZeroGeometricErrorForAHeightmap(c,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(f*4,1e3);let _=(a?Yyt:Xyt).scheduleTask({heightmap:this._buffer,structure:p,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:d,rectangle:u,relativeToCenter:m,ellipsoid:c,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof ki,exaggeration:r,exaggerationRelativeHeight:s,encoding:this._encoding});if(!l(_))return;let S=this;return Promise.resolve(_).then(function(A){let Z;S._skirtHeight>0?Z=Mo.getRegularGridAndSkirtIndicesAndEdgeIndices(A.gridWidth,A.gridHeight):Z=Mo.getRegularGridIndicesAndEdgeIndices(A.gridWidth,A.gridHeight);let R=A.gridWidth*A.gridHeight;return S._mesh=new cc(m,new Float32Array(A.vertices),Z.indices,Z.indexCountWithoutSkirts,R,A.minimumHeight,A.maximumHeight,u,ue.clone(A.boundingSphere3D),h.clone(A.occludeePointInScaledSpace),A.numberOfAttributes,en.clone(A.orientedBoundingBox),hr.clone(A.encoding),Z.westIndicesSouthToNorth,Z.southIndicesEastToWest,Z.eastIndicesNorthToSouth,Z.northIndicesWestToEast),S._buffer=void 0,S._mesh})};ug.prototype._createMeshSync=function(e){let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=e.exaggeration??1,s=e.exaggerationRelativeHeight??0,a=t.ellipsoid,c=t.tileXYToNativeRectangle(n,i,o),d=t.tileXYToRectangle(n,i,o),u=a.cartographicToCartesian(se.center(d)),m=this._structure,b=Mo.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(b*4,1e3);let f=A1.computeVertices({heightmap:this._buffer,structure:m,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:c,rectangle:d,relativeToCenter:u,ellipsoid:a,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof ki,exaggeration:r,exaggerationRelativeHeight:s});this._buffer=void 0;let y;this._skirtHeight>0?y=Mo.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):y=Mo.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let _=f.gridWidth*f.gridHeight;return this._mesh=new cc(u,f.vertices,y.indices,y.indexCountWithoutSkirts,_,f.minimumHeight,f.maximumHeight,d,f.boundingSphere3D,f.occludeePointInScaledSpace,f.encoding.stride,f.orientedBoundingBox,f.encoding,y.westIndicesSouthToNorth,y.southIndicesEastToWest,y.eastIndicesNorthToSouth,y.northIndicesWestToEast),this._mesh};ug.prototype.interpolateHeight=function(e,t,n){let i=this._width,o=this._height,r=this._structure,s=r.stride,a=r.elementsPerHeight,c=r.elementMultiplier,d=r.isBigEndian,u=r.heightOffset,m=r.heightScale,p=l(this._mesh),b=this._encoding===Km.LERC;if(!p&&b)return;let y;if(p){let _=this._mesh.vertices,S=this._mesh.encoding;y=RRe(_,S,u,m,e,i,o,t,n)}else y=Nyt(this._buffer,a,c,s,d,e,i,o,t,n),y=y*m+u;return y};ug.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(a))return;let c=this._width,d=this._height,u=this._structure,m=u.stride,p=new this._bufferType(c*d*m),b=a.vertices,f=a.encoding,y=e.tileXYToRectangle(t,n,i),_=e.tileXYToRectangle(o,r,s),S=u.heightOffset,A=u.heightScale,Z=u.elementsPerHeight,R=u.elementMultiplier,G=u.isBigEndian,E=Math.pow(R,Z-1);for(let v=0;v<d;++v){let I=W.lerp(_.north,_.south,v/(d-1));for(let X=0;X<c;++X){let Y=W.lerp(_.west,_.east,X/(c-1)),g=RRe(b,f,S,A,y,c,d,Y,I);g=g<u.lowestEncodedHeight?u.lowestEncodedHeight:g,g=g>u.highestEncodedHeight?u.highestEncodedHeight:g,wyt(p,Z,R,E,m,G,v*c+X,g)}}return Promise.resolve(new ug({buffer:p,width:c,height:d,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};ug.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};ug.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};function Nyt(e,t,n,i,o,r,s,a,c,d){let u=(c-r.west)*(s-1)/(r.east-r.west),m=(d-r.south)*(a-1)/(r.north-r.south),p=u|0,b=p+1;b>=s&&(b=s-1,p=s-2);let f=m|0,y=f+1;y>=a&&(y=a-1,f=a-2);let _=u-p,S=m-f;f=a-1-f,y=a-1-y;let A=c3(e,t,n,i,o,f*s+p),Z=c3(e,t,n,i,o,f*s+b),R=c3(e,t,n,i,o,y*s+p),G=c3(e,t,n,i,o,y*s+b);return VRe(_,S,A,Z,R,G)}function RRe(e,t,n,i,o,r,s,a,c){let d=(a-o.west)*(r-1)/(o.east-o.west),u=(c-o.south)*(s-1)/(o.north-o.south),m=d|0,p=m+1;p>=r&&(p=r-1,m=r-2);let b=u|0,f=b+1;f>=s&&(f=s-1,b=s-2);let y=d-m,_=u-b;b=s-1-b,f=s-1-f;let S=(t.decodeHeight(e,b*r+m)-n)/i,A=(t.decodeHeight(e,b*r+p)-n)/i,Z=(t.decodeHeight(e,f*r+m)-n)/i,R=(t.decodeHeight(e,f*r+p)-n)/i;return VRe(y,_,S,A,Z,R)}function VRe(e,t,n,i,o,r){return t<e?n+e*(i-n)+t*(r-i):n+e*(r-o)+t*(o-n)}function c3(e,t,n,i,o,r){r*=i;let s=0,a;if(o)for(a=0;a<t;++a)s=s*n+e[r+a];else for(a=t-1;a>=0;--a)s=s*n+e[r+a];return s}function wyt(e,t,n,i,o,r,s,a){s*=o;let c;if(r)for(c=0;c<t-1;++c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;else for(c=t-1;c>0;--c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;e[s+c]=a}var vc=ug;function Z1(e){e=e??B.EMPTY_OBJECT,this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Oi({ellipsoid:e.ellipsoid??ie.default})),this._levelZeroMaximumGeometricError=Mo.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new Se}Object.defineProperties(Z1.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});Z1.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new vc({buffer:new Uint8Array(256),width:16,height:16}))};Z1.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Z1.prototype.getTileDataAvailable=function(e,t,n){};Z1.prototype.loadTileDataAvailability=function(e,t,n){};var Jp=Z1;var fHi=x(T(),1),PN=`uniform vec4 u_initialColor; + +#if TEXTURE_UNITS > 0 +uniform sampler2D u_dayTextures[TEXTURE_UNITS]; +uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS]; +uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS]; + +#ifdef APPLY_ALPHA +uniform float u_dayTextureAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_DAY_NIGHT_ALPHA +uniform float u_dayTextureNightAlpha[TEXTURE_UNITS]; +uniform float u_dayTextureDayAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SPLIT +uniform float u_dayTextureSplit[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_BRIGHTNESS +uniform float u_dayTextureBrightness[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_CONTRAST +uniform float u_dayTextureContrast[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_HUE +uniform float u_dayTextureHue[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SATURATION +uniform float u_dayTextureSaturation[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_GAMMA +uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_IMAGERY_CUTOUT +uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_COLOR_TO_ALPHA +uniform vec4 u_colorsToAlpha[TEXTURE_UNITS]; +#endif + +uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS]; +#endif + +#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL)) +uniform sampler2D u_waterMask; +uniform vec4 u_waterMaskTranslationAndScale; +uniform float u_zoomedOutOceanSpecularIntensity; +#endif + +#ifdef SHOW_OCEAN_WAVES +uniform sampler2D u_oceanNormalMap; +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) +uniform vec2 u_lightingFadeDistance; +#endif + +#ifdef TILE_LIMIT_RECTANGLE +uniform vec4 u_cartographicLimitRectangle; +#endif + +#ifdef GROUND_ATMOSPHERE +uniform vec2 u_nightFadeDistance; +#endif + +#ifdef ENABLE_CLIPPING_PLANES +uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS +uniform highp sampler2D u_clippingDistance; +in vec2 v_clippingPosition; +flat in int v_regionIndex; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) +uniform float u_minimumBrightness; +#endif + +// Based on colorCorrect +// The colorCorrect flag can only be true when tileProvider.hue/saturation/brightnessShift +// are nonzero AND when (applyFog || showGroundAtmosphere) in the tile provider +// - The tileProvider.hue/saturation/brightnessShift are just passed through +// from the Globe hue/saturation/brightness, like atmosphereBrightnessShift +// - The applyFog depends on enableFog, and some tile distance from the viewer +// - The showGroundAtmosphere is a flag that is passed through from the Globe, +// and is true by default when the ellipsoid is WGS84 +#ifdef COLOR_CORRECT +uniform vec3 u_hsbShift; // Hue, saturation, brightness +#endif + +// Based on highlightFillTile +// This is set for terrain tiles when they are "fill" tiles, and +// the terrainProvider.fillHighlightColor was set to a value with +// nonzero alpha +#ifdef HIGHLIGHT_FILL_TILE +uniform vec4 u_fillHighlightColor; +#endif + +// Based on translucent +// This is set depending on the GlobeTranslucencyState +#ifdef TRANSLUCENT +uniform vec4 u_frontFaceAlphaByDistance; +uniform vec4 u_backFaceAlphaByDistance; +uniform vec4 u_translucencyRectangle; +#endif + +// Based on showUndergroundColor +// This is set when GlobeSurfaceTileProvider.isUndergroundVisible +// returns true, AND the tileProvider.undergroundColor had a value with +// nonzero alpha, and the tileProvider.undergroundColorAlphaByDistance +// was in the right range +#ifdef UNDERGROUND_COLOR +uniform vec4 u_undergroundColor; +uniform vec4 u_undergroundColorAlphaByDistance; +#endif + +// Based on enableLighting && hasVertexNormals +// The enableLighting flag is passed in directly from the Globe. +// The hasVertexNormals flag is from the tileProvider +#ifdef ENABLE_VERTEX_LIGHTING +uniform float u_lambertDiffuseMultiplier; +uniform float u_vertexShadowDarkness; +#endif + +in vec3 v_positionMC; +in vec3 v_positionEC; +in vec3 v_textureCoordinates; +in vec3 v_normalMC; +in vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +in float v_height; +in float v_slope; +in float v_aspect; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +in float v_distance; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) +in vec3 v_atmosphereRayleighColor; +in vec3 v_atmosphereMieColor; +in float v_atmosphereOpacity; +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL) +vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor) +{ + return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a); +} +#endif + +#ifdef TRANSLUCENT +bool inTranslucencyRectangle() +{ + return + v_textureCoordinates.x > u_translucencyRectangle.x && + v_textureCoordinates.x < u_translucencyRectangle.z && + v_textureCoordinates.y > u_translucencyRectangle.y && + v_textureCoordinates.y < u_translucencyRectangle.w; +} +#endif + +vec4 sampleAndBlend( + vec4 previousColor, + sampler2D textureToSample, + vec2 tileTextureCoordinates, + vec4 textureCoordinateRectangle, + vec4 textureCoordinateTranslationAndScale, + float textureAlpha, + float textureNightAlpha, + float textureDayAlpha, + float textureBrightness, + float textureContrast, + float textureHue, + float textureSaturation, + float textureOneOverGamma, + float split, + vec4 colorToAlpha, + float nightBlend) +{ + // This crazy step stuff sets the alpha to 0.0 if this following condition is true: + // tileTextureCoordinates.s < textureCoordinateRectangle.s || + // tileTextureCoordinates.s > textureCoordinateRectangle.p || + // tileTextureCoordinates.t < textureCoordinateRectangle.t || + // tileTextureCoordinates.t > textureCoordinateRectangle.q + // In other words, the alpha is zero if the fragment is outside the rectangle + // covered by this texture. Would an actual 'if' yield better performance? + vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + + alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend); +#endif + + vec2 translation = textureCoordinateTranslationAndScale.xy; + vec2 scale = textureCoordinateTranslationAndScale.zw; + vec2 textureCoordinates = tileTextureCoordinates * scale + translation; + vec4 value = texture(textureToSample, textureCoordinates); + vec3 color = value.rgb; + float alpha = value.a; + +#ifdef APPLY_COLOR_TO_ALPHA + vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb); + colorDiff.r = czm_maximumComponent(colorDiff); + alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha); +#endif + +#if !defined(APPLY_GAMMA) + vec4 tempColor = czm_gammaCorrect(vec4(color, alpha)); + color = tempColor.rgb; + alpha = tempColor.a; +#else + color = pow(color, vec3(textureOneOverGamma)); +#endif + +#ifdef APPLY_SPLIT + float splitPosition = czm_splitPosition; + // Split to the left + if (split < 0.0 && gl_FragCoord.x > splitPosition) { + alpha = 0.0; + } + // Split to the right + else if (split > 0.0 && gl_FragCoord.x < splitPosition) { + alpha = 0.0; + } +#endif + +#ifdef APPLY_BRIGHTNESS + color = mix(vec3(0.0), color, textureBrightness); +#endif + +#ifdef APPLY_CONTRAST + color = mix(vec3(0.5), color, textureContrast); +#endif + +#ifdef APPLY_HUE + color = czm_hue(color, textureHue); +#endif + +#ifdef APPLY_SATURATION + color = czm_saturation(color, textureSaturation); +#endif + + float sourceAlpha = alpha * textureAlpha; + float outAlpha = mix(previousColor.a, 1.0, sourceAlpha); + outAlpha += sign(outAlpha) - 1.0; + + vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha; + + // When rendering imagery for a tile in multiple passes, + // some GPU/WebGL implementation combinations will not blend fragments in + // additional passes correctly if their computation includes an unmasked + // divide-by-zero operation, + // even if it's not in the output or if the output has alpha zero. + // + // For example, without sanitization for outAlpha, + // this renders without artifacts: + // if (outAlpha == 0.0) { outColor = vec3(0.0); } + // + // but using czm_branchFreeTernary will cause portions of the tile that are + // alpha-zero in the additional pass to render as black instead of blending + // with the previous pass: + // outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor); + // + // So instead, sanitize against divide-by-zero, + // store this state on the sign of outAlpha, and correct on return. + + return vec4(outColor, max(outAlpha, 0.0)); +} + +vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend); +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade); + +const float fExposure = 2.0; + +vec3 computeEllipsoidPosition() +{ + float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0); + vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0); + xy *= czm_viewport.zw * mpp * 0.5; + + vec3 direction; + if (czm_orthographicIn3D == 1.0) + { + direction = vec3(0.0, 0.0, -1.0); + } + else + { + direction = normalize(vec3(xy, -czm_currentFrustum.x)); + } + + czm_ray ray = czm_ray(vec3(0.0), direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + + vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start); + return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz; +} + +void main() +{ +#ifdef TILE_LIMIT_RECTANGLE + if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x || + v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y) + { + discard; + } +#endif + +#ifdef ENABLE_CLIPPING_PLANES + float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix); +#endif + +#if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR) + vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)); // normalized surface normal in model coordinates + vec3 normalEC = czm_normal3D * normalMC; // normalized surface normal in eye coordinates +#endif + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0); +#else + float nightBlend = 0.0; +#endif + + // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0 + // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the + // fragments on the edges of tiles even though the vertex shader is outputting + // coordinates strictly in the 0-1 range. + vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend); + +#ifdef SHOW_TILE_BOUNDARIES + if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) || + v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0)) + { + color = vec4(1.0, 0.0, 0.0, 1.0); + } +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) + float cameraDist; + if (czm_sceneMode == czm_sceneMode2D) + { + cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5; + } + else if (czm_sceneMode == czm_sceneModeColumbusView) + { + cameraDist = -czm_view[3].z; + } + else + { + cameraDist = length(czm_view[3]); + } + float fadeOutDist = u_lightingFadeDistance.x; + float fadeInDist = u_lightingFadeDistance.y; + if (czm_sceneMode != czm_sceneMode3D) { + vec3 radii = czm_ellipsoidRadii; + float maxRadii = max(radii.x, max(radii.y, radii.z)); + fadeOutDist -= maxRadii; + fadeInDist -= maxRadii; + } + float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0); +#else + float fade = 0.0; +#endif + +#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL)) + vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy; + vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw; + vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation; + waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y; + + float mask = texture(u_waterMask, waterMaskTextureCoordinates).r; + + #ifdef SHOW_REFLECTIVE_OCEAN + if (mask > 0.0) + { + mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC); + + vec2 ellipsoidTextureCoordinates = czm_ellipsoidTextureCoordinates(normalMC); + vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidTextureCoordinates(normalMC.zyx); + + vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z)); + + color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade); + } + #endif +#endif + +#ifdef APPLY_MATERIAL + czm_materialInput materialInput; + materialInput.st = v_textureCoordinates.st; + materialInput.normalEC = normalize(v_normalEC); + materialInput.positionToEyeEC = -v_positionEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC)); + materialInput.slope = v_slope; + materialInput.height = v_height; + materialInput.aspect = v_aspect; + #ifdef HAS_WATER_MASK + materialInput.waterMask = mask; + #endif + + czm_material material = czm_getMaterial(materialInput); + vec4 materialColor = vec4(material.diffuse, material.alpha); + color = alphaBlend(materialColor, color); +#endif + +#ifdef ENABLE_VERTEX_LIGHTING + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#elif defined(ENABLE_DAYNIGHT_SHADING) + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0); + diffuseIntensity = mix(1.0, diffuseIntensity, fade); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#else + vec4 finalColor = color; +#endif + +#ifdef ENABLE_CLIPPING_PLANES + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a; + + if (clipDistance < clippingPlanesEdgeWidth) + { + finalColor = clippingPlanesEdgeColor; + } +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS + vec2 clippingPosition = v_clippingPosition; + int regionIndex = v_regionIndex; + clipPolygons(u_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex); +#endif + +#ifdef HIGHLIGHT_FILL_TILE + finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a); +#endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) + if (!czm_backFacing()) + { + bool dynamicLighting = false; + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + + vec3 rayleighColor; + vec3 mieColor; + float opacity; + + vec3 positionWC; + vec3 lightDirection; + + // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader. + // Otherwise, the scattering is computed in the vertex shader. + #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE + positionWC = computeEllipsoidPosition(); + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + computeAtmosphereScattering( + positionWC, + lightDirection, + rayleighColor, + mieColor, + opacity + ); + #else + positionWC = v_positionMC; + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + rayleighColor = v_atmosphereRayleighColor; + mieColor = v_atmosphereMieColor; + opacity = v_atmosphereOpacity; + #endif + + #ifdef COLOR_CORRECT + const bool ignoreBlackPixels = true; + rayleighColor = czm_applyHSBShift(rayleighColor, u_hsbShift, ignoreBlackPixels); + mieColor = czm_applyHSBShift(mieColor, u_hsbShift, ignoreBlackPixels); + #endif + + vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); + + // Fog is applied to tiles selected for fog, close to the Earth. + #ifdef FOG + vec3 fogColor = groundAtmosphereColor.rgb; + + // If there is lighting, apply that to the fog. + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0); + fogColor *= darken; + #endif + + #ifndef HDR + fogColor.rgb = czm_pbrNeutralTonemapping(fogColor.rgb); + fogColor.rgb = czm_inverseGamma(fogColor.rgb); + #endif + + finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, czm_fogVisualDensityScalar), finalColor.a); + + #else + // Apply ground atmosphere. This happens when the camera is far away from the earth. + + // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere. + // This value is larger near the "circumference", as it is further away from the camera. We use it to + // brighten up that area of the ground atmosphere. + const float transmittanceModifier = 0.5; + float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0); + + vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float fadeInDist = u_nightFadeDistance.x; + float fadeOutDist = u_nightFadeDistance.y; + + float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0); + float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0); + vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken); + + finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity); + #endif + + #ifndef HDR + finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb); + #else + finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6); + #endif + + finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade); + #endif + } +#endif + +#ifdef UNDERGROUND_COLOR + if (czm_backFacing()) + { + float distanceFromEllipsoid = max(czm_eyeHeight, 0.0); + float distance = max(v_distance - distanceFromEllipsoid, 0.0); + float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance); + vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount); + finalColor = alphaBlend(undergroundColor, finalColor); + } +#endif + +#ifdef TRANSLUCENT + if (inTranslucencyRectangle()) + { + vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance; + finalColor.a *= interpolateByDistance(alphaByDistance, v_distance); + } +#endif + + out_FragColor = finalColor; +} + + +#ifdef SHOW_REFLECTIVE_OCEAN + +float waveFade(float edge0, float edge1, float x) +{ + float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); + return pow(1.0 - y, 5.0); +} + +float linearFade(float edge0, float edge1, float x) +{ + return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); +} + +// Based on water rendering by Jonas Wagner: +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +// low altitude wave settings +const float oceanFrequencyLowAltitude = 825000.0; +const float oceanAnimationSpeedLowAltitude = 0.004; +const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0; +const float oceanSpecularIntensity = 0.5; + +// high altitude wave settings +const float oceanFrequencyHighAltitude = 125000.0; +const float oceanAnimationSpeedHighAltitude = 0.008; +const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0; + +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade) +{ + vec3 positionToEyeEC = -positionEyeCoordinates; + float positionToEyeECLength = length(positionToEyeEC); + + // The double normalize below works around a bug in Firefox on Android devices. + vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC)); + + // Fade out the waves as the camera moves far from the surface. + float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength); + +#ifdef SHOW_OCEAN_WAVES + // high altitude waves + float time = czm_frameNumber * oceanAnimationSpeedHighAltitude; + vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0); + vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude); + + // low altitude waves + time = czm_frameNumber * oceanAnimationSpeedLowAltitude; + noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0); + vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude); + + // blend the 2 wave layers based on distance to surface + float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength); + float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength); + vec3 normalTangentSpace = + (highAltitudeFade * normalTangentSpaceHighAltitude) + + (lowAltitudeFade * normalTangentSpaceLowAltitude); + normalTangentSpace = normalize(normalTangentSpace); + + // fade out the normal perturbation as we move farther from the water surface + normalTangentSpace.xy *= waveIntensity; + normalTangentSpace = normalize(normalTangentSpace); +#else + vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0); +#endif + + vec3 normalEC = enuToEye * normalTangentSpace; + + const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6); + + // Use diffuse light to highlight the waves + float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue; + vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade); + +#ifdef SHOW_OCEAN_WAVES + // Where diffuse light is low or non-existent, use wave highlights based solely on + // the wave bumpiness and no particular light direction. + float tsPerturbationRatio = normalTangentSpace.z; + vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity); +#else + vec3 nonDiffuseHighlight = vec3(0.0); +#endif + + // Add specular highlights in 3D, and in all modes when zoomed in. + float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0); + float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue); + float specular = specularIntensity * surfaceReflectance; + +#ifdef HDR + specular *= 1.4; + + float e = 0.2; + float d = 3.3; + float c = 1.7; + + vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular)); +#else + vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular; +#endif + + return vec4(color, imageryColor.a); +} + +#endif // #ifdef SHOW_REFLECTIVE_OCEAN +`;var bHi=x(T(),1),XN=`#ifdef QUANTIZATION_BITS12 +in vec4 compressed0; +in float compressed1; +#else +in vec4 position3DAndHeight; +in vec4 textureCoordAndEncodedNormals; +#endif + +#ifdef GEODETIC_SURFACE_NORMALS +in vec3 geodeticSurfaceNormal; +#endif + +#ifdef EXAGGERATION +uniform vec2 u_verticalExaggerationAndRelativeHeight; +#endif + +uniform vec3 u_center3D; +uniform mat4 u_modifiedModelView; +uniform mat4 u_modifiedModelViewProjection; +uniform vec4 u_tileRectangle; + +// Uniforms for 2D Mercator projection +uniform vec2 u_southAndNorthLatitude; +uniform vec2 u_southMercatorYAndOneOverHeight; + +out vec3 v_positionMC; +out vec3 v_positionEC; + +out vec3 v_textureCoordinates; +out vec3 v_normalMC; +out vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +out float v_slope; +out float v_aspect; +out float v_height; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +out float v_distance; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) +out vec3 v_atmosphereRayleighColor; +out vec3 v_atmosphereMieColor; +out float v_atmosphereOpacity; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS +uniform highp sampler2D u_clippingExtents; +out vec2 v_clippingPosition; +flat out int v_regionIndex; +#endif + +// These functions are generated at runtime. +vec4 getPosition(vec3 position, float height, vec2 textureCoordinates); +float get2DYPositionFraction(vec2 textureCoordinates); + +vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return u_modifiedModelViewProjection * vec4(position, 1.0); +} + +float get2DMercatorYPositionFraction(vec2 textureCoordinates) +{ + // The width of a tile at level 11, in radians and assuming a single root tile, is + // 2.0 * czm_pi / pow(2.0, 11.0) + // We want to just linearly interpolate the 2D position from the texture coordinates + // when we're at this level or higher. The constant below is the expression + // above evaluated and then rounded up at the 4th significant digit. + const float maxTileWidth = 0.003068; + float positionFraction = textureCoordinates.y; + float southLatitude = u_southAndNorthLatitude.x; + float northLatitude = u_southAndNorthLatitude.y; + if (northLatitude - southLatitude > maxTileWidth) + { + float southMercatorY = u_southMercatorYAndOneOverHeight.x; + float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y; + + float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y); + currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude); + positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight); + } + return positionFraction; +} + +float get2DGeographicYPositionFraction(vec2 textureCoordinates) +{ + return textureCoordinates.y; +} + +vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates) +{ + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + return u_modifiedModelViewProjection * rtcPosition2D; +} + +vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, 0.0, textureCoordinates); +} + +vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, height, textureCoordinates); +} + +vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates) +{ + // We do not do RTC while morphing, so there is potential for jitter. + // This is unlikely to be noticeable, though. + vec3 position3DWC = position + u_center3D; + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime); + vec4 morphPositionEC = czm_modelView * morphPosition; + return czm_projection * morphPositionEC; +} + +#ifdef QUANTIZATION_BITS12 +uniform vec2 u_minMaxHeight; +uniform mat4 u_scaleAndBias; +#endif + +void main() +{ +#ifdef QUANTIZATION_BITS12 + vec2 xy = czm_decompressTextureCoordinates(compressed0.x); + vec2 zh = czm_decompressTextureCoordinates(compressed0.y); + vec3 position = vec3(xy, zh.x); + float height = zh.y; + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z); + + height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x; + position = (u_scaleAndBias * vec4(position, 1.0)).xyz; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y) || defined(APPLY_MATERIAL) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = compressed1; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = 0.0; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = compressed0.w; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#else + // A single float per element + vec3 position = position3DAndHeight.xyz; + float height = position3DAndHeight.w; + vec2 textureCoordinates = textureCoordAndEncodedNormals.xy; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = textureCoordAndEncodedNormals.w; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = textureCoordAndEncodedNormals.z; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = 0.0; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#endif + + vec3 position3DWC = position + u_center3D; + +#ifdef GEODETIC_SURFACE_NORMALS + vec3 ellipsoidNormal = geodeticSurfaceNormal; +#else + vec3 ellipsoidNormal = normalize(position3DWC); +#endif + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + float exaggeration = u_verticalExaggerationAndRelativeHeight.x; + float relativeHeight = u_verticalExaggerationAndRelativeHeight.y; + float newHeight = (height - relativeHeight) * exaggeration + relativeHeight; + + // stop from going through center of earth + float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z); + newHeight = max(newHeight, -minRadius); + + vec3 offset = ellipsoidNormal * (newHeight - height); + position += offset; + position3DWC += offset; + height = newHeight; +#endif + + gl_Position = getPosition(position, height, textureCoordinates); + + v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz; + v_positionMC = position3DWC; // position in model coordinates + + v_textureCoordinates = vec3(textureCoordinates, webMercatorT); + +#if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + vec3 normalMC = czm_octDecode(encodedNormal); + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal; + vec3 rejection = normalMC - projection; + normalMC = normalize(projection + rejection * exaggeration); +#endif + + v_normalMC = normalMC; + v_normalEC = czm_normal3D * v_normalMC; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(position3DWC); + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + + vec2 minDistance = vec2(czm_infinity); + v_clippingPosition = vec2(czm_infinity); + v_regionIndex = -1; + + for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) { + vec4 extents = unpackClippingExtents(u_clippingExtents, regionIndex); + vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz; + + vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0)); + vec2 distance = abs(rectUv - clamped) * extents.wz; + + float threshold = 0.01; + if (minDistance.x > distance.x || minDistance.y > distance.y) { + minDistance = distance; + v_clippingPosition = rectUv; + if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) { + v_regionIndex = regionIndex; + } + } + } +#endif + +#if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE)) + + bool dynamicLighting = false; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + + vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC)); + + computeAtmosphereScattering( + position3DWC, + lightDirection, + v_atmosphereRayleighColor, + v_atmosphereMieColor, + v_atmosphereOpacity + ); +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) + v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz); +#endif + +#ifdef APPLY_MATERIAL + float northPoleZ = czm_ellipsoidRadii.z; + vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ); + vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal)); + float dotProd = abs(dot(ellipsoidNormal, v_normalMC)); + v_slope = acos(dotProd); + vec3 normalRejected = ellipsoidNormal * dotProd; + vec3 normalProjected = v_normalMC - normalRejected; + vec3 aspectVector = normalize(normalProjected); + v_aspect = acos(dot(aspectVector, vectorEastMC)); + float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal); + v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect); + v_height = height; +#endif +} +`;var yHi=x(T(),1),C1=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var LHi=x(T(),1);var SHi=x(T(),1);var Myt=new k;function kyt(e,t){let n=e.unionClippingRegions,i=e.length,o=ss.useFloatTexture(t),r=ss.getTextureResolution(e,t,Myt),s=r.x,a=r.y,c=o?Oyt(s,a):Byt(s,a);return c+=` +`,c+=n?Uyt(i):Dyt(i),c}function Uyt(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount; + float pixelWidth = czm_metersPerPixel(position); + bool breakAndDiscard = false; + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) + { + breakAndDiscard = true; + // HLSL compiler bug if we discard here: https://bugs.chromium.org/p/angleproject/issues/detail?id=1945#c6 + break; + } + } + if (breakAndDiscard) { + discard; + } + return clipAmount; +} +`}function Dyt(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + bool clipped = true; + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount = 0.0; + float pixelWidth = czm_metersPerPixel(position); + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + } + if (clipped) + { + discard; + } + return clipAmount; + } +`}function Oyt(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int pixY = clippingPlaneNumber / ${e}; + int pixX = clippingPlaneNumber - (pixY * ${e}); + // Sample from center of pixel + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +`}function Byt(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int clippingPlaneStartIndex = clippingPlaneNumber * 2; + int pixY = clippingPlaneStartIndex / ${e}; + int pixX = clippingPlaneStartIndex - (pixY * ${e}); + // Sample from center of pixel + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + ${o}, v))); + return czm_transformPlane(plane, transform); +} +`}var DS=kyt;var Aee=class{constructor(t,n,i,o,r,s){this.numberOfDayTextures=t,this.flags=n,this.material=i,this.shaderProgram=o,this.clippingShaderState=r,this.clippingPolygonShaderState=s}},Zee=class{constructor(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}getShaderProgram(t){let n=t.frameState,i=t.surfaceTile,o=t.numberOfDayTextures,r=t.applyBrightness,s=t.applyContrast,a=t.applyHue,c=t.applySaturation,d=t.applyGamma,u=t.applyAlpha,m=t.applyDayNightAlpha,p=t.applySplit,b=t.hasWaterMask,f=t.showReflectiveOcean,y=t.showOceanWaves,_=t.enableLighting,S=t.dynamicAtmosphereLighting,A=t.dynamicAtmosphereLightingFromSun,Z=t.showGroundAtmosphere,R=t.perFragmentGroundAtmosphere,G=t.hasVertexNormals,E=t.useWebMercatorProjection,v=t.enableFog,I=t.enableClippingPlanes,X=t.clippingPlanes,Y=t.enableClippingPolygons,g=t.clippingPolygons,C=t.clippedByBoundaries,V=t.hasImageryLayerCutout,L=t.colorCorrect,P=t.highlightFillTile,N=t.colorToAlpha,O=t.hasGeodeticSurfaceNormals,M=t.hasExaggeration,D=t.showUndergroundColor,w=t.translucent,z=0,K="",H=i.renderedMesh.encoding;H.quantization===Ya.BITS12&&(z=1,K="QUANTIZATION_BITS12");let q=0,de="";C&&(q=1,de="TILE_LIMIT_RECTANGLE");let ye=0,le="";V&&(ye=1,le="APPLY_IMAGERY_CUTOUT");let Ce=n.mode,ge=((Ce|+r<<2|+s<<3|+a<<4|+c<<5|+d<<6|+u<<7|+b<<8|+f<<9|+y<<10|+_<<11|+S<<12|+A<<13|+Z<<14|+R<<15|+G<<16|+E<<17|+v<<18|z<<19|+p<<20|+I<<21|+Y<<22|q<<23|ye<<24|+L<<25|+P<<26|+N<<27|+O<<28|+M<<29|+D<<30|+w<<31)>>>0)+(m?4294967296:0),Ee=0;l(X)&&X.length>0&&(Ee=I?X.clippingPlanesState:0);let Re=0;l(g)&&g.length>0&&(Re=Y?g.clippingPolygonsState:0);let Xe=i.surfaceShader;if(l(Xe)&&Xe.numberOfDayTextures===o&&Xe.flags===ge&&Xe.material===this.material&&Xe.clippingShaderState===Ee&&Xe.clippingPolygonShaderState===Re)return Xe.shaderProgram;let we=this._shadersByTexturesFlags[o];if(l(we)||(we=this._shadersByTexturesFlags[o]=[]),Xe=we[ge],!l(Xe)||Xe.material!==this.material||Xe.clippingShaderState!==Ee||Xe.clippingPolygonShaderState!==Re){let nt=this.baseVertexShaderSource.clone(),je=this.baseFragmentShaderSource.clone();Ee!==0&&je.sources.unshift(DS(X,n.context)),Re!==0&&(je.sources.unshift(Hyt(n.context)),nt.sources.unshift(Kyt(n.context))),nt.defines.push(K),je.defines.push(`TEXTURE_UNITS ${o}`,de,le),r&&je.defines.push("APPLY_BRIGHTNESS"),s&&je.defines.push("APPLY_CONTRAST"),a&&je.defines.push("APPLY_HUE"),c&&je.defines.push("APPLY_SATURATION"),d&&je.defines.push("APPLY_GAMMA"),u&&je.defines.push("APPLY_ALPHA"),m&&je.defines.push("APPLY_DAY_NIGHT_ALPHA"),b&&je.defines.push("HAS_WATER_MASK"),f&&(je.defines.push("SHOW_REFLECTIVE_OCEAN"),nt.defines.push("SHOW_REFLECTIVE_OCEAN")),y&&je.defines.push("SHOW_OCEAN_WAVES"),N&&je.defines.push("APPLY_COLOR_TO_ALPHA"),D&&(nt.defines.push("UNDERGROUND_COLOR"),je.defines.push("UNDERGROUND_COLOR")),w&&(nt.defines.push("TRANSLUCENT"),je.defines.push("TRANSLUCENT")),_&&(G?(nt.defines.push("ENABLE_VERTEX_LIGHTING"),je.defines.push("ENABLE_VERTEX_LIGHTING")):(nt.defines.push("ENABLE_DAYNIGHT_SHADING"),je.defines.push("ENABLE_DAYNIGHT_SHADING"))),S&&(nt.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),je.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),A&&(nt.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),je.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),Z&&(nt.defines.push("GROUND_ATMOSPHERE"),je.defines.push("GROUND_ATMOSPHERE"),R&&(nt.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),je.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),nt.defines.push("INCLUDE_WEB_MERCATOR_Y"),je.defines.push("INCLUDE_WEB_MERCATOR_Y"),v&&(nt.defines.push("FOG"),je.defines.push("FOG")),p&&je.defines.push("APPLY_SPLIT"),I&&je.defines.push("ENABLE_CLIPPING_PLANES"),Y&&(je.defines.push("ENABLE_CLIPPING_POLYGONS"),nt.defines.push("ENABLE_CLIPPING_POLYGONS"),g.inverse&&je.defines.push("CLIPPING_INVERSE"),je.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${g.extentsCount}`),nt.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${g.extentsCount}`)),L&&je.defines.push("COLOR_CORRECT"),P&&je.defines.push("HIGHLIGHT_FILL_TILE"),O&&nt.defines.push("GEODETIC_SURFACE_NORMALS"),M&&nt.defines.push("EXAGGERATION");let et=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend) + { + vec4 color = initialColor; +`;V&&(et+=` vec4 cutoutAndColorResult; + bool texelUnclipped; +`);for(let Oe=0;Oe<o;++Oe)V?et+=` cutoutAndColorResult = u_dayTextureCutoutRectangles[${Oe}]; + texelUnclipped = v_textureCoordinates.x < cutoutAndColorResult.x || cutoutAndColorResult.z < v_textureCoordinates.x || v_textureCoordinates.y < cutoutAndColorResult.y || cutoutAndColorResult.w < v_textureCoordinates.y; + cutoutAndColorResult = sampleAndBlend( +`:et+=` color = sampleAndBlend( +`,et+=` color, + u_dayTextures[${Oe}], + u_dayTextureUseWebMercatorT[${Oe}] ? textureCoordinates.xz : textureCoordinates.xy, + u_dayTextureTexCoordsRectangle[${Oe}], + u_dayTextureTranslationAndScale[${Oe}], + ${u?`u_dayTextureAlpha[${Oe}]`:"1.0"}, + ${m?`u_dayTextureNightAlpha[${Oe}]`:"1.0"}, + ${m?`u_dayTextureDayAlpha[${Oe}]`:"1.0"}, + ${r?`u_dayTextureBrightness[${Oe}]`:"0.0"}, + ${s?`u_dayTextureContrast[${Oe}]`:"0.0"}, + ${a?`u_dayTextureHue[${Oe}]`:"0.0"}, + ${c?`u_dayTextureSaturation[${Oe}]`:"0.0"}, + ${d?`u_dayTextureOneOverGamma[${Oe}]`:"0.0"}, + ${p?`u_dayTextureSplit[${Oe}]`:"0.0"}, + ${N?`u_colorsToAlpha[${Oe}]`:"vec4(0.0)"}, + nightBlend); +`,V&&(et+=` color = czm_branchFreeTernary(texelUnclipped, cutoutAndColorResult, color); +`);et+=` return color; + }`,je.sources.push(et),nt.sources.push(zyt(Ce)),nt.sources.push(Jyt(E));let Ie=tn.fromCache({context:n.context,vertexShaderSource:nt,fragmentShaderSource:je,attributeLocations:H.getAttributeLocations()});Xe=we[ge]=new Aee(o,ge,this.material,Ie,Ee,Re)}return i.surfaceShader=Xe,Xe.shaderProgram}destroy(){let t,n,i=this._shadersByTexturesFlags;for(let o in i)if(i.hasOwnProperty(o)){let r=i[o];if(!l(r))continue;for(t in r)r.hasOwnProperty(t)&&(n=r[t],l(n)&&n.shaderProgram.destroy())}return he(this)}};function zyt(e){let t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPosition3DMode(position, height, textureCoordinates); }",n="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionColumbusViewMode(position, height, textureCoordinates); }",i="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionMorphingMode(position, height, textureCoordinates); }",o;switch(e){case re.SCENE3D:o=t;break;case re.SCENE2D:case re.COLUMBUS_VIEW:o=n;break;case re.MORPHING:o=i;break}return o}function Hyt(e){return e.webgl2?`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) { + czm_clipPolygons(clippingDistance, regionsLength, clippingPosition, regionIndex); + }`:`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) { + }`}function Kyt(e){return e.webgl2?`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) { + return czm_unpackClippingExtents(extentsTexture, index); + }`:`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) { + return vec4(); + }`}function Jyt(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}var YN=Zee;var IJi=x(T(),1);var vHi=x(T(),1),GRe={NONE:-1,PARTIAL:0,FULL:1};Object.freeze(GRe);var Nr=GRe;var aKi=x(T(),1);var IHi=x(T(),1),ERe={START:0,LOADING:1,DONE:2,FAILED:3};Object.freeze(ERe);var Na=ERe;var XHi=x(T(),1),LRe={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6};Object.freeze(LRe);var Lo=LRe;var jp=class e{constructor(){lt(this,"request");this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new ce(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new h,this.boundingVolumeSourceTile=void 0,this.boundingVolumeIsFromMesh=!1,this.terrainState=Lo.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new ue,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}get eligibleForUnloading(){let t=this.terrainState,i=!(t===Lo.RECEIVING||t===Lo.TRANSFORMING),o=this.imagery;for(let r=0,s=o.length;i&&r<s;++r){let a=o[r];i=!l(a.loadingImagery)||a.loadingImagery.state!==On.TRANSITIONING}return i}get renderedMesh(){if(l(this.vertexArray))return this.mesh;if(l(this.fill))return this.fill.mesh}pick(t,n,i,o,r){if(!l(this.renderedMesh))return;let s=this.renderedMesh.pick(t,o,n,i);return h.clone(s,r)}freeResources(){l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=Lo.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();let t=this.imagery;for(let n=0,i=t.length;n<i;++n)t[n].freeResources();this.imagery.length=0,this.freeVertexArray()}freeVertexArray(){e._freeVertexArray(this.vertexArray),this.vertexArray=void 0,e._freeVertexArray(this.wireframeVertexArray),this.wireframeVertexArray=void 0}static initialize(t,n,i){let o=t.data;l(o)||(o=t.data=new e),t.state===Na.START&&(jyt(t,n,i),t.state=Na.LOADING)}static processStateMachine(t,n,i,o,r,s,a){e.initialize(t,i,o);let c=t.data;if(t.state===Na.LOADING&&Qyt(t,n,i,o,r,s),a)return;let d=t.renderable;t.renderable=l(c.vertexArray);let u=c.terrainState===Lo.READY;t.upsampledFromParent=l(c.terrainData)&&c.terrainData.wasCreatedByUpsampling();let m=c.processImagery(t,i,n);if(u&&m){let p=t._loadedCallbacks,b={};for(let f in p)p.hasOwnProperty(f)&&(p[f](t)||(b[f]=p[f]));t._loadedCallbacks=b,t.state=Na.DONE}d&&(t.renderable=!0)}processImagery(t,n,i,o){let r=t.data,s=t.upsampledFromParent,a=!1,c=!0,d=r.imagery,u,m;for(u=0,m=d.length;u<m;++u){let p=d[u];if(!l(p.loadingImagery)){s=!1;continue}if(p.loadingImagery.state===On.PLACEHOLDER){let f=p.loadingImagery.imageryLayer;if(f.ready){p.freeResources(),d.splice(u,1),f._createTileImagerySkeletons(t,n,u),--u,m=d.length;continue}else s=!1}let b=p.processStateMachine(t,i,o);c=c&&b,a=a||b||l(p.readyImagery),s=s&&l(p.loadingImagery)&&(p.loadingImagery.state===On.FAILED||p.loadingImagery.state===On.INVALID)}return t.upsampledFromParent=s,t.renderable=t.renderable&&(a||c),c}addGeodeticSurfaceNormals(t,n){WRe(this,!0,t,n)}removeGeodeticSurfaceNormals(t){WRe(this,!1,void 0,t)}updateExaggeration(t,n,i){let o=this,r=o.renderedMesh;if(r===void 0)return;let s=n.verticalExaggeration,a=n.verticalExaggerationRelativeHeight,c=s!==1,d=r.encoding,u=d.exaggeration!==s,m=d.exaggerationRelativeHeight!==a;if(u||m){if(u)if(c&&!d.hasGeodeticSurfaceNormals){let b=t.tilingScheme.ellipsoid;o.addGeodeticSurfaceNormals(b,n)}else!c&&d.hasGeodeticSurfaceNormals&&o.removeGeodeticSurfaceNormals(n);if(d.exaggeration=s,d.exaggerationRelativeHeight=a,i!==void 0){i._tileToUpdateHeights.push(t);let b=t.customData;for(let f of b)f.level=-1}r.updateExaggeration(s,a)}}updateSceneMode(t){let i=this.renderedMesh;i!==void 0&&i.updateSceneMode(t)}static _createVertexArrayForMesh(t,n){let i=n.vertices,o=$e.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),r=n.encoding.getAttributes(o),s=n.indices.indexBuffers||{},a=s[t.id];if(!l(a)||a.isDestroyed()){let c=n.indices;a=$e.createIndexBuffer({context:t,typedArray:c,usage:Fe.STATIC_DRAW,indexDatatype:De.fromSizeInBytes(c.BYTES_PER_ELEMENT)}),a.vertexArrayDestroyable=!1,a.referenceCount=1,s[t.id]=a,n.indices.indexBuffers=s}else++a.referenceCount;return new wn({context:t,attributes:r,indexBuffer:a})}static _freeVertexArray(t){if(l(t)){let n=t.indexBuffer;t.isDestroyed()||t.destroy(),l(n)&&!n.isDestroyed()&&l(n.referenceCount)&&(--n.referenceCount,n.referenceCount===0&&n.destroy())}}_findAncestorTileWithTerrainData(t){let n=t.parent;for(;l(n)&&(!l(n.data)||!l(n.data.terrainData)||n.data.terrainData.wasCreatedByUpsampling());)n=n.parent;return n}_computeWaterMaskTranslationAndScale(t,n,i){let o=n.rectangle,r=t.rectangle,s=r.width,a=r.height,c=s/o.width,d=a/o.height;return i.x=c*(r.west-o.west)/s,i.y=d*(r.south-o.south)/a,i.z=c,i.w=d,i}};function WRe(e,t,n,i){let o=e.renderedMesh,r=o.vertices,s=o.encoding,a=r.length/s.stride,c=hr.clone(s);c.hasGeodeticSurfaceNormals=t,c=hr.clone(c);let d=c.stride,u=new Float32Array(a*d);t?s.addGeodeticSurfaceNormals(r,u,n):s.removeGeodeticSurfaceNormals(r,u),o.vertices=u,o.stride=d,o!==e.mesh?(jp._freeVertexArray(e.fill.vertexArray),e.fill.vertexArray=jp._createVertexArrayForMesh(i.context,o)):(jp._freeVertexArray(e.vertexArray),e.vertexArray=jp._createVertexArrayForMesh(i.context,o)),jp._freeVertexArray(e.wireframeVertexArray),e.wireframeVertexArray=void 0}function jyt(e,t,n){let i=t.getTileDataAvailable(e.x,e.y,e.level);if(!l(i)&&l(e.parent)){let o=e.parent,r=o.data;l(r)&&l(r.terrainData)&&(i=r.terrainData.isChildAvailable(o.x,o.y,e.x,e.y))}if(i===!1){let o=e.data;o.terrainState=Lo.FAILED}for(let o=0,r=n.length;o<r;++o){let s=n.get(o);s.show&&s._createTileImagerySkeletons(e,t)}}function Qyt(e,t,n,i,o,r){let s=e.data,a=e.parent;if(s.terrainState===Lo.FAILED&&a!==void 0){let c=a.data;c!==void 0&&c.terrainData!==void 0&&c.terrainData.canUpsample!==!1||jp.processStateMachine(a,t,n,i,o,r,!0)}if(s.terrainState===Lo.FAILED&&qyt(s,e,t,n,e.x,e.y,e.level),s.terrainState===Lo.UNLOADED&&$yt(s,n,e.x,e.y,e.level),s.terrainState===Lo.RECEIVED&&txt(s,t,n,e.x,e.y,e.level),s.terrainState===Lo.TRANSFORMED&&(nxt(s,t.context,n,e.x,e.y,e.level,r),s.updateExaggeration(e,t,o)),s.terrainState>=Lo.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)oxt(t.context,s);else{let d=s._findAncestorTileWithTerrainData(e),u=d?.data;l(d)&&l(u.waterMaskTexture)&&(s.waterMaskTexture=u.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,d,s.waterMaskTranslationAndScale))}}function qyt(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=Na.FAILED;return}let d=a.data.terrainData,u=a.x,m=a.y,p=a.level;if(!l(d))return;let b=d.upsample(i.tilingScheme,u,m,p,o,r,s);l(b)&&(e.terrainState=Lo.RECEIVING,Promise.resolve(b).then(function(f){l(f)&&(e.terrainData=f,e.terrainState=Lo.RECEIVED)}).catch(function(){e.terrainState=Lo.FAILED}))}function $yt(e,t,n,i,o){function r(c){if(!l(c)){e.terrainState=Lo.UNLOADED,e.request=void 0;return}e.terrainData=c,e.terrainState=Lo.RECEIVED,e.request=void 0}function s(c){if(e.request.state===pi.CANCELLED){e.terrainData=void 0,e.terrainState=Lo.UNLOADED,e.request=void 0;return}e.terrainState=Lo.FAILED,e.request=void 0;let d=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=Bo.reportError(t._requestError,t,t.errorEvent,d,n,i,o),t._requestError.retry&&a()}function a(){let c=new gr({throttle:!1,throttleByServer:!0,type:ws.TERRAIN});e.request=c;let d=t.requestTileGeometry(n,i,o,c);l(d)?(e.terrainState=Lo.RECEIVING,Promise.resolve(d).then(function(u){r(u)}).catch(function(u){s(u)})):(e.terrainState=Lo.UNLOADED,e.request=void 0)}a()}var ext={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function txt(e,t,n,i,o,r){let s=n.tilingScheme,a=ext;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.verticalExaggeration,a.exaggerationRelativeHeight=t.verticalExaggerationRelativeHeight,a.throttle=!0;let d=e.terrainData.createMesh(a);l(d)&&(e.terrainState=Lo.TRANSFORMING,Promise.resolve(d).then(function(u){e.mesh=u,e.terrainState=Lo.TRANSFORMED}).catch(function(){e.terrainState=Lo.FAILED}))}function nxt(e,t,n,i,o,r,s){e.vertexArray=jp._createVertexArrayForMesh(t,e.mesh),e.terrainState=Lo.READY,e.fill=e.fill&&e.fill.destroy(s)}function ixt(e){let t=e.cache.tile_waterMaskData;if(!l(t)){let n=Ft.create({context:e,pixelFormat:Qe.LUMINANCE,pixelDatatype:ze.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new Ht({wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:Dt.LINEAR,magnificationFilter:qn.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function oxt(e,t){let n=t.terrainData.waterMask,i=ixt(e),o,r=n.length;if(n instanceof ImageBitmap)o=Ft.create({context:e,source:n,sampler:i.sampler,flipY:!1,skipColorSpaceConversion:!0});else if(r===1)if(n[0]!==0)o=i.allWaterTexture;else return;else{let s=Math.sqrt(r);o=Ft.create({context:e,pixelFormat:Qe.LUMINANCE,pixelDatatype:ze.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:i.sampler,flipY:!1}),o.referenceCount=0}++o.referenceCount,t.waterMaskTexture=o,ce.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}var jm=jp;var IKi=x(T(),1);var dKi=x(T(),1),rxt={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},Rn=rxt;var mKi=x(T(),1),vRe={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(e){return e>=vRe.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},ai=vRe;function V1(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new ce}V1.prototype.update=function(e,t,n){this.changedThisFrame&&(wRe(e,t,this.tile,n),this.changedThisFrame=!1)};V1.prototype.destroy=function(e){this._destroyVertexArray(e),l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};V1.prototype._destroyVertexArray=function(e){l(this.vertexArray)&&(l(e)?e.push(this.vertexArray):jm._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var sxt=new Sy;V1.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=sxt;a.clear();for(let d=0;d<t.length;++d){let u=t[d];l(u.data.vertexArray)&&a.enqueue(t[d])}let c=a.dequeue();for(;c!==void 0;){let d=c.findTileToWest(r),u=c.findTileToSouth(r),m=c.findTileToEast(r),p=c.findTileToNorth(r);ya(e,n,c,d,s,Rn.EAST,!1,a,i),ya(e,n,c,u,s,Rn.NORTH,!1,a,i),ya(e,n,c,m,s,Rn.WEST,!1,a,i),ya(e,n,c,p,s,Rn.SOUTH,!1,a,i);let b=d.findTileToNorth(r),f=d.findTileToSouth(r),y=m.findTileToNorth(r),_=m.findTileToSouth(r);ya(e,n,c,b,s,Rn.SOUTHEAST,!1,a,i),ya(e,n,c,y,s,Rn.SOUTHWEST,!1,a,i),ya(e,n,c,f,s,Rn.NORTHEAST,!1,a,i),ya(e,n,c,_,s,Rn.NORTHWEST,!1,a,i),c=a.dequeue()}};function ya(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let d=i;for(;d&&(d._lastSelectionResultFrame!==o||ai.wasKicked(d._lastSelectionResult)||ai.originalResult(d._lastSelectionResult)===ai.CULLED);){if(s)return;let u=d.parent;if(r>=Rn.NORTHWEST&&u!==void 0)switch(r){case Rn.NORTHWEST:d=d===u.northwestChild?u:void 0;break;case Rn.NORTHEAST:d=d===u.northeastChild?u:void 0;break;case Rn.SOUTHWEST:d=d===u.southwestChild?u:void 0;break;case Rn.SOUTHEAST:d=d===u.southeastChild?u:void 0;break}else d=u}if(d!==void 0){if(d._lastSelectionResult===ai.RENDERED){if(l(d.data.vertexArray))return;axt(e,t,n,d,r,o,a,c);return}if(ai.originalResult(i._lastSelectionResult)!==ai.CULLED)switch(r){case Rn.WEST:ya(e,t,n,i.northwestChild,o,r,!0,a,c),ya(e,t,n,i.southwestChild,o,r,!0,a,c);break;case Rn.EAST:ya(e,t,n,i.southeastChild,o,r,!0,a,c),ya(e,t,n,i.northeastChild,o,r,!0,a,c);break;case Rn.SOUTH:ya(e,t,n,i.southwestChild,o,r,!0,a,c),ya(e,t,n,i.southeastChild,o,r,!0,a,c);break;case Rn.NORTH:ya(e,t,n,i.northeastChild,o,r,!0,a,c),ya(e,t,n,i.northwestChild,o,r,!0,a,c);break;case Rn.NORTHWEST:ya(e,t,n,i.northwestChild,o,r,!0,a,c);break;case Rn.NORTHEAST:ya(e,t,n,i.northeastChild,o,r,!0,a,c);break;case Rn.SOUTHWEST:ya(e,t,n,i.southwestChild,o,r,!0,a,c);break;case Rn.SOUTHEAST:ya(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new Te("Invalid edge")}}}function axt(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new V1(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),cxt(e,t,n,i,o,a)}function cxt(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;l(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(wRe(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let d,u;switch(o){case Rn.WEST:d=s.westMeshes,u=s.westTiles;break;case Rn.SOUTH:d=s.southMeshes,u=s.southTiles;break;case Rn.EAST:d=s.eastMeshes,u=s.eastTiles;break;case Rn.NORTH:d=s.northMeshes,u=s.northTiles;break;case Rn.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case Rn.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case Rn.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case Rn.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||d[0]!==a||d.length!==1,d[0]=a,u[0]=n,d.length=1,u.length=1;return}let m,p,b,f,y=n.rectangle,_,S=i.rectangle;switch(o){case Rn.WEST:for(_=(S.north-S.south)*W.EPSILON5,m=0;m<u.length&&(b=u[m],f=b.rectangle,!W.greaterThan(y.north,f.south,_));++m);for(p=m;p<u.length&&(b=u[p],f=b.rectangle,!W.greaterThanOrEquals(y.south,f.north,_));++p);break;case Rn.SOUTH:for(_=(S.east-S.west)*W.EPSILON5,m=0;m<u.length&&(b=u[m],f=b.rectangle,!W.lessThan(y.west,f.east,_));++m);for(p=m;p<u.length&&(b=u[p],f=b.rectangle,!W.lessThanOrEquals(y.east,f.west,_));++p);break;case Rn.EAST:for(_=(S.north-S.south)*W.EPSILON5,m=0;m<u.length&&(b=u[m],f=b.rectangle,!W.lessThan(y.south,f.north,_));++m);for(p=m;p<u.length&&(b=u[p],f=b.rectangle,!W.lessThanOrEquals(y.north,f.south,_));++p);break;case Rn.NORTH:for(_=(S.east-S.west)*W.EPSILON5,m=0;m<u.length&&(b=u[m],f=b.rectangle,!W.greaterThan(y.east,f.west,_));++m);for(p=m;p<u.length&&(b=u[p],f=b.rectangle,!W.greaterThanOrEquals(y.west,f.east,_));++p);break}p-m===1?(s.changedThisFrame=s.changedThisFrame||d[m]!==a,d[m]=a,u[m]=n):(s.changedThisFrame=!0,d.splice(m,p-m,a),u.splice(m,p-m,n))}var OS=new fe,lxt=new fe,R1=new h,Gee=new h,Cee=new k,Ree=new k,Nu=new k;function p3(){this.height=0,this.encodedNormal=new k}function l3(e,t,n,i,o,r,s,a,c){if(l(o))return o;let d;if(l(r)&&l(s))d=(r.height+s.height)*.5;else if(l(r))d=r.height;else if(l(s))d=s.height;else if(l(a))d=a.height;else{let m=e.tile.data.tileBoundingRegion,p=0,b=0;l(m)&&(p=m.minimumHeight,b=m.maximumHeight),d=(p+b)*.5}return MRe(e,t,n,i,d,c),c}var dxt={minimumHeight:0,maximumHeight:0},uxt=new h,FRe=new p3,IRe=new p3,PRe=new p3,XRe=new p3,mxt=typeof Uint8Array<"u"?new Uint8Array(81):void 0,hxt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function wRe(e,t,n,i){jm.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.verticalExaggeration,c=t.verticalExaggerationRelativeHeight,d=a!==1,u=n.tilingScheme.ellipsoid,m=u3(r,u,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,PRe),p=u3(r,u,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,FRe),b=u3(r,u,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,IRe),f=u3(r,u,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,XRe);m=l3(r,u,0,1,m,p,f,b,PRe),p=l3(r,u,0,0,p,m,b,f,FRe),b=l3(r,u,1,1,b,p,f,m,IRe),f=l3(r,u,1,1,f,b,m,p,XRe);let y=p.height,_=b.height,S=m.height,A=f.height,Z=Math.min(y,_,S,A),R=Math.max(y,_,S,A),G=(Z+R)*.5,E,v,I=e.getLevelMaximumGeometricError(n.level),X=u.maximumRadius-I,Y=Math.acos(X/u.maximumRadius)*4;if(Y*=1.5,s.width>Y&&R-Z<=I){let V=new vc({width:9,height:9,buffer:mxt,structure:{heightOffset:R}}),L=hxt;L.tilingScheme=n.tilingScheme,L.x=n.x,L.y=n.y,L.level=n.level,L.exaggeration=a,L.exaggerationRelativeHeight=c,r.mesh=V._createMeshSync(L)}else{let V=d,L=se.center(s,lxt);L.height=G;let P=u.cartographicToCartesian(L,uxt),N=new hr(P,void 0,void 0,void 0,void 0,!0,!0,V,a,c),O=5,M;for(M=r.westMeshes,E=0,v=M.length;E<v;++E)O+=M[E].eastIndicesNorthToSouth.length;for(M=r.southMeshes,E=0,v=M.length;E<v;++E)O+=M[E].northIndicesWestToEast.length;for(M=r.eastMeshes,E=0,v=M.length;E<v;++E)O+=M[E].westIndicesSouthToNorth.length;for(M=r.northMeshes,E=0,v=M.length;E<v;++E)O+=M[E].southIndicesEastToWest.length;let D=dxt;D.minimumHeight=Z,D.maximumHeight=R;let w=N.stride,z=new Float32Array(O*w),K=0,ee=K;K=d3(u,s,N,z,K,0,1,m.height,m.encodedNormal,1,D),K=h3(r,u,N,z,K,r.westTiles,r.westMeshes,Rn.EAST,D);let H=K;K=d3(u,s,N,z,K,0,0,p.height,p.encodedNormal,0,D),K=h3(r,u,N,z,K,r.southTiles,r.southMeshes,Rn.NORTH,D);let te=K;K=d3(u,s,N,z,K,1,0,b.height,b.encodedNormal,0,D),K=h3(r,u,N,z,K,r.eastTiles,r.eastMeshes,Rn.WEST,D);let q=K;K=d3(u,s,N,z,K,1,1,f.height,f.encodedNormal,1,D),K=h3(r,u,N,z,K,r.northTiles,r.northMeshes,Rn.SOUTH,D),Z=D.minimumHeight,R=D.maximumHeight;let de=en.fromRectangle(s,Z,R,n.tilingScheme.ellipsoid),ye=ui.geodeticLatitudeToMercatorAngle(s.south),le=1/(ui.geodeticLatitudeToMercatorAngle(s.north)-ye),Ce=(ui.geodeticLatitudeToMercatorAngle(L.latitude)-ye)*le,ge=u.geodeticSurfaceNormalCartographic(OS,Gee),Ee=cn.octEncode(ge,Cee),Re=K;N.encode(z,K*w,de.center,k.fromElements(.5,.5,Nu),G,Ee,Ce,ge),++K;let Xe=K,we=Xe<256?1:2,nt=(Xe-1)*3,je=nt*we,et=(z.length-Xe*w)*Float32Array.BYTES_PER_ELEMENT,Ie;if(et>=je){let gt=Xe*w*Float32Array.BYTES_PER_ELEMENT;Ie=Xe<256?new Uint8Array(z.buffer,gt,nt):new Uint16Array(z.buffer,gt,nt)}else Ie=Xe<256?new Uint8Array(nt):new Uint16Array(nt);z=new Float32Array(z.buffer,0,Xe*w);let Oe=0;for(E=0;E<Xe-2;++E)Ie[Oe++]=Re,Ie[Oe++]=E,Ie[Oe++]=E+1;Ie[Oe++]=Re,Ie[Oe++]=E,Ie[Oe++]=0;let St=[];for(E=H;E>=ee;--E)St.push(E);let Et=[];for(E=te;E>=H;--E)Et.push(E);let on=[];for(E=q;E>=te;--E)on.push(E);let Ot=[];for(Ot.push(0),E=Re-1;E>=q;--E)Ot.push(E);r.mesh=new cc(N.center,z,Ie,nt,Xe,Z,R,s,ue.fromOrientedBoundingBox(de),Txt(e,de.center,s,Z,R),N.stride,de,N,St,Et,on,Ot)}let g=t.context;r._destroyVertexArray(i),r.vertexArray=jm._createVertexArrayForMesh(g,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let C=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let V=o._findAncestorTileWithTerrainData(n);l(V)&&l(V.data.waterMaskTexture)&&(r.waterMaskTexture=V.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,V,r.waterMaskTranslationAndScale))}l(C)&&(--C.referenceCount,C.referenceCount===0&&C.destroy())}function d3(e,t,n,i,o,r,s,a,c,d,u){let m=OS;m.longitude=W.lerp(t.west,t.east,r),m.latitude=W.lerp(t.south,t.north,s),m.height=a;let p=e.cartographicToCartesian(m,R1),b;n.hasGeodeticSurfaceNormals&&(b=e.geodeticSurfaceNormal(p,Gee));let f=Ree;return f.x=r,f.y=s,n.encode(i,o*n.stride,p,f,a,c,d,b),u.minimumHeight=Math.min(u.minimumHeight,a),u.maximumHeight=Math.max(u.maximumHeight,a),o+1}var f3=new se;function NN(e,t,n,i){let o=e.rectangle,r=t.rectangle;t.x===0&&n.x===1&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(o=se.clone(e.rectangle,f3),o.west-=W.TWO_PI,o.east-=W.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(o=se.clone(e.rectangle,f3),o.west+=W.TWO_PI,o.east+=W.TWO_PI);let s=o.east-o.west,a=(r.west-o.west)/s,c=(r.east-o.west)/s,d=o.north-o.south,u=(r.south-o.south)/d,m=(r.north-o.south)/d,p=(n.x-a)/(c-a),b=(n.y-u)/(m-u);return Math.abs(p)<Math.EPSILON5?p=0:Math.abs(p-1)<Math.EPSILON5&&(p=1),Math.abs(b)<Math.EPSILON5?b=0:Math.abs(b-1)<Math.EPSILON5&&(b=1),i.x=p,i.y=b,i}var fxt=new k;function Vee(e,t,n,i,o){let r=e.encoding,s=e.vertices;if(o.height=r.decodeHeight(s,t),r.hasVertexNormals)r.getOctEncodedNormal(s,t,o.encodedNormal);else{let a=o.encodedNormal;a.x=0,a.y=0}}var pxt=new k,bxt=new h;function gxt(e,t,n,i,o,r,s,a,c,d){let u=i.encoding,m=i.vertices,p=NN(t,n,u.decodeTextureCoordinates(m,o,Nu),Nu),b=NN(t,n,u.decodeTextureCoordinates(m,r,Ree),Ree),f;c?f=(s-p.x)/(b.x-p.x):f=(a-p.y)/(b.y-p.y);let y=u.decodeHeight(m,o),_=u.decodeHeight(m,r),S=n.rectangle;OS.longitude=W.lerp(S.west,S.east,s),OS.latitude=W.lerp(S.south,S.north,a),d.height=OS.height=W.lerp(y,_,f);let A;if(u.hasVertexNormals){let Z=u.getOctEncodedNormal(m,o,fxt),R=u.getOctEncodedNormal(m,r,pxt),G=cn.octDecode(Z.x,Z.y,R1),E=cn.octDecode(R.x,R.y,bxt);A=h.lerp(G,E,f,R1),h.normalize(A,A),cn.octEncode(A,d.encodedNormal)}else A=e.geodeticSurfaceNormalCartographic(OS,R1),cn.octEncode(A,d.encodedNormal)}function MRe(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(OS,R1);cn.octEncode(s,r.encodedNormal)}function u3(e,t,n,i,o,r,s,a,c,d,u){if(NRe(e,t,a,s,!1,n,i,u)||NRe(e,t,d,c,!0,n,i,u))return u;let p;if(Eee(o,r))return n===0?i===0?p=r.eastIndicesNorthToSouth[0]:p=r.southIndicesEastToWest[0]:i===0?p=r.northIndicesWestToEast[0]:p=r.westIndicesSouthToNorth[0],Vee(r,p,n,i,u),u;let b;if(n===0?i===0?b=m3(e.westMeshes,e.westTiles,Rn.EAST,e.southMeshes,e.southTiles,Rn.NORTH,n,i):b=m3(e.northMeshes,e.northTiles,Rn.SOUTH,e.westMeshes,e.westTiles,Rn.EAST,n,i):i===0?b=m3(e.southMeshes,e.southTiles,Rn.NORTH,e.eastMeshes,e.eastTiles,Rn.WEST,n,i):b=m3(e.eastMeshes,e.eastTiles,Rn.WEST,e.northMeshes,e.northTiles,Rn.SOUTH,n,i),l(b))return MRe(e,t,n,i,b,u),u}function m3(e,t,n,i,o,r,s,a){let c=YRe(e,t,!1,n,s,a),d=YRe(i,o,!0,r,s,a);return l(c)&&l(d)?(c+d)*.5:l(c)?c:d}function h3(e,t,n,i,o,r,s,a,c){for(let d=0;d<r.length;++d)o=yxt(e,t,n,i,o,r[d],s[d],a,c);return o}function yxt(e,t,n,i,o,r,s,a,c){let d=r.rectangle;a===Rn.EAST&&e.tile.x===0?(d=se.clone(r.rectangle,f3),d.west-=W.TWO_PI,d.east-=W.TWO_PI):a===Rn.WEST&&r.x===0&&(d=se.clone(r.rectangle,f3),d.west+=W.TWO_PI,d.east+=W.TWO_PI);let u=e.tile.rectangle,m,p;o>0&&(n.decodeTextureCoordinates(i,o-1,Nu),m=Nu.x,p=Nu.y);let b,f;switch(a){case Rn.WEST:b=s.westIndicesSouthToNorth,f=!1;break;case Rn.NORTH:b=s.northIndicesWestToEast,f=!0;break;case Rn.EAST:b=s.eastIndicesNorthToSouth,f=!1;break;case Rn.SOUTH:b=s.southIndicesEastToWest,f=!0;break}let y=r,_=e.tile,S=s.encoding,A=s.vertices,Z=n.stride,R,G;S.hasWebMercatorT&&(R=ui.geodeticLatitudeToMercatorAngle(u.south),G=1/(ui.geodeticLatitudeToMercatorAngle(u.north)-R));for(let E=0;E<b.length;++E){let v=b[E],I=S.decodeTextureCoordinates(A,v,Nu);NN(y,_,I,I);let X=I.x,Y=I.y,g=f?X:Y;if(g<0||g>1||Math.abs(X-m)<W.EPSILON5&&Math.abs(Y-p)<W.EPSILON5)continue;let C=Math.abs(X)<W.EPSILON5||Math.abs(X-1)<W.EPSILON5,V=Math.abs(Y)<W.EPSILON5||Math.abs(Y-1)<W.EPSILON5;if(C&&V)continue;let L=S.decodePosition(A,v,R1),P=S.decodeHeight(A,v),N;S.hasVertexNormals?N=S.getOctEncodedNormal(A,v,Cee):(N=Cee,N.x=0,N.y=0);let O=Y;if(S.hasWebMercatorT){let D=W.lerp(u.south,u.north,Y);O=(ui.geodeticLatitudeToMercatorAngle(D)-R)*G}let M;n.hasGeodeticSurfaceNormals&&(M=t.geodeticSurfaceNormal(L,Gee)),n.encode(i,o*Z,L,I,P,N,O,M),c.minimumHeight=Math.min(c.minimumHeight,P),c.maximumHeight=Math.max(c.maximumHeight,P),++o}return o}function YRe(e,t,n,i,o,r){let s,a,c;n?(s=0,a=e.length,c=1):(s=e.length-1,a=-1,c=-1);for(let d=s;d!==a;d+=c){let u=e[d],m=t[d];if(!Eee(m,u))continue;let p;switch(i){case Rn.WEST:p=u.westIndicesSouthToNorth;break;case Rn.SOUTH:p=u.southIndicesEastToWest;break;case Rn.EAST:p=u.eastIndicesNorthToSouth;break;case Rn.NORTH:p=u.northIndicesWestToEast;break}let b=p[n?0:p.length-1];if(l(b))return u.encoding.decodeHeight(u.vertices,b)}}function Eee(e,t){return l(t)&&(!l(e.data.fill)||!e.data.fill.changedThisFrame)}function NRe(e,t,n,i,o,r,s,a){let c,d,u,m,p,b=i[o?0:n.length-1],f=n[o?0:n.length-1];if(Eee(b,f)&&(r===0?s===0?(c=o?f.northIndicesWestToEast:f.eastIndicesNorthToSouth,d=o,u=o):(c=o?f.eastIndicesNorthToSouth:f.southIndicesEastToWest,d=!o,u=!1):s===0?(c=o?f.westIndicesSouthToNorth:f.northIndicesWestToEast,d=!o,u=!0):(c=o?f.southIndicesEastToWest:f.westIndicesSouthToNorth,d=o,u=!o),c.length>0)){m=o?0:c.length-1,p=c[m],f.encoding.decodeTextureCoordinates(f.vertices,p,Nu);let y=NN(b,e.tile,Nu,Nu);if(y.x===r&&y.y===s)return Vee(f,p,r,s,a),!0;if(m=xo(c,d?r:s,function(_,S){f.encoding.decodeTextureCoordinates(f.vertices,_,Nu);let A=NN(b,e.tile,Nu,Nu);return u?d?A.x-r:A.y-s:d?r-A.x:s-A.y}),m<0){if(m=~m,m>0&&m<c.length)return gxt(t,b,e.tile,f,c[m-1],c[m],r,s,d,a),!0}else return Vee(f,c[m],r,s,a),!0}return!1}var xxt=[new h,new h,new h,new h];function Txt(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=xxt;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}var G1=V1;var Lee=class e{constructor(t){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.showWaterEffect=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=Gn.RECEIVE_ONLY,this.vertexShadowDarkness=.3,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this.undergroundColor=void 0,this.undergroundColorAlphaByDistance=void 0,this.lambertDiffuseMultiplier=0,this.materialUniformMap=void 0,this._materialUniformMap=void 0,this._quadtree=void 0,this._terrainProvider=t.terrainProvider,this._imageryLayers=t.imageryLayers,this._surfaceShaderSet=t.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._disableCullingRenderState=void 0,this._disableCullingBlendRenderState=void 0,this._errorEvent=new Se,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener(e.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(e.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(e.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(e.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new Se,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0,tilesRendered:0,texturesRendered:0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new U(0,0,.5,1),this._clippingPlanes=void 0,this._clippingPolygons=void 0,this.cartographicLimitRectangle=se.clone(se.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldVerticalExaggeration=void 0,this._oldVerticalExaggerationRelativeHeight=void 0,this._oldSceneMode=re.SCENE3D}get baseColor(){return this._baseColor}set baseColor(t){this._baseColor=t,this._firstPassInitialColor=ce.fromColor(t,this._firstPassInitialColor)}get quadtree(){return this._quadtree}set quadtree(t){this._quadtree=t}get tilingScheme(){if(l(this._terrainProvider))return this._terrainProvider.tilingScheme}get errorEvent(){return this._errorEvent}get imageryLayersUpdatedEvent(){return this._imageryLayersUpdatedEvent}get terrainProvider(){return this._terrainProvider}set terrainProvider(t){this._terrainProvider!==t&&(this._terrainProvider=t,l(this._quadtree)&&this._quadtree.invalidateAllTiles())}get clippingPlanes(){return this._clippingPlanes}set clippingPlanes(t){ss.setOwner(t,this,"_clippingPlanes")}get clippingPolygons(){return this._clippingPolygons}set clippingPolygons(t){Ih.setOwner(t,this,"_clippingPolygons")}update(t){this._imageryLayers._update()}initialize(t){this._imageryLayers.queueReprojectionCommands(t),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(o){o.data.imagery.sort(_xt)})),Sxt(this,t);let n=this._vertexArraysToDestroy,i=n.length;for(let o=0;o<i;++o)jm._freeVertexArray(n[o]);n.length=0}beginUpdate(t){let n=this._tilesToRenderByTextureCount;for(let r=0,s=n.length;r<s;++r){let a=n[r];l(a)&&(a.length=0)}let i=this._clippingPlanes;l(i)&&i.enabled&&i.update(t);let o=this._clippingPolygons;l(o)&&o.enabled&&(o.update(t),o.queueCommands(t)),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1}endUpdate(t){if(!l(this._renderState)){this._renderState=Be.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:Ha.LESS}}),this._blendRenderState=Be.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:Ha.LESS_OR_EQUAL},blending:nn.ALPHA_BLEND});let c=Je(this._renderState,!0);c.cull.enabled=!1,this._disableCullingRenderState=Be.fromCache(c),c=Je(this._blendRenderState,!0),c.cull.enabled=!1,this._disableCullingBlendRenderState=Be.fromCache(c)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&G1.updateFillTiles(this,this._quadtree._tilesToRender,t,this._vertexArraysToDestroy);let n=this.quadtree,i=t.verticalExaggeration,o=t.verticalExaggerationRelativeHeight,r=this._oldVerticalExaggeration!==i||this._oldVerticalExaggerationRelativeHeight!==o;this._oldVerticalExaggeration=i,this._oldVerticalExaggerationRelativeHeight=o,r&&n.forEachLoadedTile(function(c){c.data.updateExaggeration(c,t,n)});let s=this._oldSceneMode!==t.mode;this._oldSceneMode=t.mode,s&&n.forEachLoadedTile(function(c){c.data.updateSceneMode(t.mode)});let a=this._tilesToRenderByTextureCount;for(let c=0,d=a.length;c<d;++c){let u=a[c];if(l(u))for(let m=0,p=u.length;m<p;++m){let b=u[m],y=b.data.tileBoundingRegion;zxt(this,b,t),t.minimumTerrainHeight=Math.min(t.minimumTerrainHeight,y.minimumHeight)}}}updateForPick(t){let n=this._drawCommands;for(let i=0,o=this._usedDrawCommands;i<o;++i)BRe(n[i],t)}cancelReprojections(){this._imageryLayers.cancelReprojections()}getLevelMaximumGeometricError(t){return l(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(t):0}loadTile(t,n){let i=n.data,o=!0,r;l(i)&&(o=i.boundingVolumeSourceTile!==n||n._lastSelectionResult===ai.CULLED_BUT_NEEDED,r=i.terrainState),jm.processStateMachine(n,t,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,o),i=n.data,o&&r!==i.terrainState&&this.computeTileVisibility(n,t,this.quadtree.occluders)!==Nr.NONE&&i.boundingVolumeSourceTile===n&&(o=!1,jm.processStateMachine(n,t,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,o))}computeTileVisibility(t,n,i){let o=this.computeDistanceToTile(t,n);t._distance=o;let r=HRe(this,n);if(n.fog.enabled&&!r&&W.fog(o,n.fog.density)>=1)return Nr.NONE;let s=t.data,a=s.tileBoundingRegion;if(s.boundingVolumeSourceTile===void 0)return Nr.PARTIAL;let c=n.cullingVolume,d=a.boundingVolume;l(d)||(d=a.boundingSphere),s.clippedByBoundaries=!1;let u=g3(t.rectangle,this.cartographicLimitRectangle),m=se.simpleIntersection(u,t.rectangle,zRe);if(!l(m))return Nr.NONE;if(se.equals(m,t.rectangle)||(s.clippedByBoundaries=!0),n.mode!==re.SCENE3D&&(d=Axt,ue.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,a.minimumHeight,a.maximumHeight,d),h.fromElements(d.center.z,d.center.x,d.center.y,d.center),n.mode===re.MORPHING&&l(s.renderedMesh)&&(d=ue.union(a.boundingSphere,d,d))),!l(d))return Nr.PARTIAL;let p=this._clippingPlanes;if(l(p)&&p.enabled){let S=p.computeIntersectionWithBoundingVolume(d);if(t.isClipped=S!==Qt.INSIDE,S===Qt.OUTSIDE)return Nr.NONE}let b=this._clippingPolygons;if(l(b)&&b.enabled){let S=b.computeIntersectionWithBoundingVolume(a);t.isClipped=S!==Qt.OUTSIDE}let f,y=c.computeVisibility(d);if(y===Qt.OUTSIDE?f=Nr.NONE:y===Qt.INTERSECTING?f=Nr.PARTIAL:y===Qt.INSIDE&&(f=Nr.FULL),f===Nr.NONE)return f;let _=n.mode===re.SCENE3D&&n.camera.frustum instanceof fn;if(n.mode===re.SCENE3D&&!_&&l(i)&&!r){let S=s.occludeePointInScaledSpace;return!l(S)||i.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(S,a.minimumHeight)?f:Nr.NONE}return f}canRefine(t){let n=t.data;return l(n.terrainData)?!0:this.terrainProvider.getTileDataAvailable(t.x*2,t.y*2,t.level+1)!==void 0}canRenderWithoutLosingDetail(t){let n=t.data,i=Rxt;i.length=this._imageryLayers.length;let o=!1,r=!1,s;l(n)&&(o=n.terrainState===Lo.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(l(s))for(a=0,c=s.length;a<c;++a){let m=s[a],p=m.loadingImagery,b=!l(p)||p.state===On.FAILED||p.state===On.INVALID,f=(m.loadingImagery||m.readyImagery).imageryLayer._layerIndex;i[f]=b&&i[f]}let d=this.quadtree._lastSelectionFrameNumber,u=Vxt;for(u.length=0,u.push(t.southwestChild,t.southeastChild,t.northwestChild,t.northeastChild);u.length>0;){let m=u.pop(),p=m._lastSelectionResultFrame===d?m._lastSelectionResult:ai.NONE;if(p===ai.RENDERED){let b=m.data;if(!l(b))continue;if(!o&&m.data.terrainState===Lo.READY)return!1;let f=m.data.imagery;for(a=0,c=f.length;a<c;++a){let y=f[a],_=y.loadingImagery,S=!l(_)||_.state===On.FAILED||_.state===On.INVALID,A=(y.loadingImagery||y.readyImagery).imageryLayer._layerIndex;if(S&&!i[A])return!1}}else p===ai.REFINED&&u.push(m.southwestChild,m.southeastChild,m.northwestChild,m.northeastChild)}return!0}computeTileLoadPriority(t,n){let i=t.data;if(i===void 0)return 0;let o=i.tileBoundingRegion.boundingVolume;if(o===void 0)return 0;let r=n.camera.positionWC,s=n.camera.directionWC,a=h.subtract(o.center,r,Gxt),c=h.magnitude(a);return c<W.EPSILON5?0:(h.divideByScalar(a,c,a),(1-h.dot(a,s))*t._distance)}showTileThisFrame(t,n){let i=0,o=t.data,r=o.imagery;for(let c=0,d=r.length;c<d;++c){let u=r[c];l(u.readyImagery)&&u.readyImagery.imageryLayer.alpha!==0&&++i}let s=this._tilesToRenderByTextureCount[i];l(s)||(s=[],this._tilesToRenderByTextureCount[i]=s),s.push(t),l(o.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let a=this._debug;++a.tilesRendered,a.texturesRendered+=i}computeDistanceToTile(t,n){Xxt(t,this,n);let i=t.data;if(i.boundingVolumeSourceTile===void 0)return 9999999999;let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight;if(i.boundingVolumeSourceTile!==t){let d=n.camera.positionCartographic.height,u=Math.abs(d-s),m=Math.abs(d-a);u>m?(r.minimumHeight=s,r.maximumHeight=s):(r.minimumHeight=a,r.maximumHeight=a)}let c=r.distanceToCamera(n);return r.minimumHeight=s,r.maximumHeight=a,c}isDestroyed(){return!1}destroy(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),this._removeLayerAddedListener=this._removeLayerAddedListener&&this._removeLayerAddedListener(),this._removeLayerRemovedListener=this._removeLayerRemovedListener&&this._removeLayerRemovedListener(),this._removeLayerMovedListener=this._removeLayerMovedListener&&this._removeLayerMovedListener(),this._removeLayerShownListener=this._removeLayerShownListener&&this._removeLayerShownListener(),he(this)}_onLayerAdded(t,n){if(!this.isDestroyed()&&t.show){let i=this._terrainProvider,o=this,r=this._imageryLayersUpdatedEvent,s=function(){t._imageryCache={},o._quadtree.forEachLoadedTile(function(a){if(l(a._loadedCallbacks[t._layerIndex]))return;let c,d=a.data.imagery,u=d.length,m=-1,p=0;for(c=0;c<u;++c){let f=d[c];if((f.readyImagery??f.loadingImagery).imageryLayer===t)m===-1&&(m=c),++p;else if(m!==-1)break}if(m===-1)return;let b=m+p;t._createTileImagerySkeletons(a,i,b)&&(a._loadedCallbacks[t._layerIndex]=Yxt(p,t,i),a.state=Na.LOADING)})};if(t.ready){let a=t.imageryProvider;a._reload=s}this._quadtree.forEachLoadedTile(function(a){t._createTileImagerySkeletons(a,i)&&(a.state=Na.LOADING,a.level!==0&&(a._lastSelectionResultFrame!==o.quadtree._lastSelectionFrameNumber||a._lastSelectionResult!==ai.RENDERED)&&(a.renderable=!1))}),this._layerOrderChanged=!0,r.raiseEvent()}}_onLayerRemoved(t,n){this._quadtree.forEachLoadedTile(function(i){let o=i.data.imagery,r=-1,s=0;for(let a=0,c=o.length;a<c;++a){let d=o[a],u=d.loadingImagery;if(l(u)||(u=d.readyImagery),u.imageryLayer===t)r===-1&&(r=a),d.freeResources(),++s;else if(r!==-1)break}r!==-1&&o.splice(r,s)}),l(t.imageryProvider)&&(t.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()}_onLayerMoved(t,n,i){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()}_onLayerShownOrHidden(t,n,i){i?this._onLayerAdded(t,n):this._onLayerRemoved(t,n)}};function _xt(e,t){let n=e.loadingImagery;l(n)||(n=e.readyImagery);let i=t.loadingImagery;return l(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}function Sxt(e,t){let n=t.creditDisplay,i=e._terrainProvider;l(i)&&l(i.credit)&&n.addCreditToNextFrame(i.credit);let o=e._imageryLayers;for(let r=0,s=o.length;r<s;++r){let a=o.get(r);a.ready&&a.show&&l(a.imageryProvider.credit)&&n.addCreditToNextFrame(a.imageryProvider.credit)}}function BRe(e,t){let n=t.globeTranslucencyState;if(n.translucent){let i=e.renderState.blending.enabled;n.pushDerivedCommands(e,i,t)}else t.commandList.push(e)}var Axt=new ue,zRe=new se,Zxt=new se,Cxt=new fe;function g3(e,t){if(t.west<t.east)return t;let n=se.clone(t,Zxt);return se.center(e,Cxt).longitude>0?n.east=W.PI:n.west=-W.PI,n}function HRe(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;if(l(n)&&n.enabled)return!0;let i=e._clippingPolygons;return!!(l(i)&&i.enabled||!se.equals(e.cartographicLimitRectangle,se.MAX_VALUE))}var Rxt=[],Vxt=[],Gxt=new h,kRe=new F,b3=new F,Ext=new ce,Lxt=new ce,Wxt=new ce,vxt=new h,URe=new h,Fxt=new h,Ixt=new h,Pxt=[new h,new h,new h,new h];function DRe(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Pxt;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}function Xxt(e,t,n){let i=e.data;i===void 0&&(i=e.data=new jm);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new yu({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,d=e,u=i.mesh,m=i.terrainData;if(u!==void 0&&u.minimumHeight!==void 0&&u.maximumHeight!==void 0)r.minimumHeight=u.minimumHeight,r.maximumHeight=u.maximumHeight,c=!0;else if(m!==void 0&&m._minimumHeight!==void 0&&m._maximumHeight!==void 0)r.minimumHeight=m._minimumHeight,r.maximumHeight=m._maximumHeight;else{r.minimumHeight=Number.NaN,r.maximumHeight=Number.NaN;let p=e.parent;for(;p!==void 0;){let b=p.data;if(b!==void 0){let f=b.mesh,y=b.terrainData;if(f!==void 0&&f.minimumHeight!==void 0&&f.maximumHeight!==void 0){r.minimumHeight=f.minimumHeight,r.maximumHeight=f.maximumHeight;break}else if(y!==void 0&&y._minimumHeight!==void 0&&y._maximumHeight!==void 0){r.minimumHeight=y._minimumHeight,r.maximumHeight=y._maximumHeight;break}}p=p.parent}d=p}if(d!==void 0){let p=n.verticalExaggeration,b=n.verticalExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=co.getHeight(r.minimumHeight,p,b),r.maximumHeight=co.getHeight(r.maximumHeight,p,b)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=en.clone(u.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=ue.clone(u.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=h.clone(u.occludeePointInScaledSpace,i.occludeePointInScaledSpace),l(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=DRe(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace)));else{let y=r._orientedBoundingBox===void 0||r._boundingSphere===void 0;(r.minimumHeight!==s||r.maximumHeight!==a||y)&&(r.computeBoundingVolumes(o),i.occludeePointInScaledSpace=DRe(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=d,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}function Yxt(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,d;for(d=0;d<c;++d)if(o=a[d],r=o.readyImagery??o.loadingImagery,r.imageryLayer===t){s=d;break}if(s!==-1){let u=s+e;if(o=a[u],r=l(o)?o.readyImagery??o.loadingImagery:void 0,!l(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,u);for(d=s;d<u;++d)a[d].freeResources();a.splice(s,e)}return!0}}var Nxt=new F,wxt=new F;function ORe(e,t){let n={u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_atmosphereLightIntensity:function(){return this.properties.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return this.properties.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return this.properties.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return this.properties.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return this.properties.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return this.properties.atmosphereMieAnisotropy},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_verticalExaggerationAndRelativeHeight:function(){return this.properties.verticalExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=F.multiplyByPoint(i,this.properties.rtc,URe);return F.setTranslation(i,o,kRe),kRe},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=F.multiplyByPoint(i,this.properties.rtc,URe);return F.setTranslation(i,r,b3),F.multiply(o,b3,b3),b3},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureNightAlpha:function(){return this.properties.dayTextureNightAlpha},u_dayTextureDayAlpha:function(){return this.properties.dayTextureDayAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){let i=t._clippingPlanes;return l(i)&&l(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=l(i)?F.multiply(e.context.uniformState.view,i.modelMatrix,Nxt):F.IDENTITY;return F.inverseTranspose(o,wxt)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_clippingDistance:function(){let i=t._clippingPolygons.clippingTexture;return l(i)?i:e.context.defaultTexture},u_clippingExtents:function(){let i=t._clippingPolygons.extentsTexture;return l(i)?i:e.context.defaultTexture},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},u_frontFaceAlphaByDistance:function(){return this.properties.frontFaceAlphaByDistance},u_backFaceAlphaByDistance:function(){return this.properties.backFaceAlphaByDistance},u_translucencyRectangle:function(){return this.properties.localizedTranslucencyRectangle},u_undergroundColor:function(){return this.properties.undergroundColor},u_undergroundColorAlphaByDistance:function(){return this.properties.undergroundColorAlphaByDistance},u_lambertDiffuseMultiplier:function(){return this.properties.lambertDiffuseMultiplier},u_vertexShadowDarkness:function(){return this.properties.vertexShadowDarkness},properties:{initialColor:new ce(0,0,.5,1),fillHighlightColor:new U(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new k(65e5,9e6),nightFadeDistance:new k(1e7,4e7),atmosphereLightIntensity:10,atmosphereRayleighCoefficient:new h(55e-7,13e-6,284e-7),atmosphereMieCoefficient:new h(21e-6,21e-6,21e-6),atmosphereRayleighScaleHeight:1e4,atmosphereMieScaleHeight:3200,atmosphereMieAnisotropy:.9,hsbShift:new h,center3D:void 0,rtc:new h,modifiedModelView:new F,tileRectangle:new ce,verticalExaggerationAndRelativeHeight:new k(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new k,southMercatorYAndOneOverHeight:new k,waterMask:void 0,waterMaskTranslationAndScale:new ce,minMaxHeight:new k,scaleAndBias:new F,clippingPlanesEdgeColor:U.clone(U.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new ce,frontFaceAlphaByDistance:new ce,backFaceAlphaByDistance:new ce,localizedTranslucencyRectangle:new ce,undergroundColor:U.clone(U.TRANSPARENT),undergroundColorAlphaByDistance:new ce,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return l(t.materialUniformMap)?vt(n,t.materialUniformMap):n}function Mxt(e,t){let n=t.data,i,o;if(l(n.vertexArray)?(i=n.mesh,o=n.vertexArray):l(n.fill)&&l(n.fill.vertexArray)&&(i=n.fill.mesh,o=n.fill.vertexArray),!(!l(i)||!l(o))){if(l(n.wireframeVertexArray)){if(n.wireframeVertexArray.mesh===i)return;n.wireframeVertexArray.destroy(),n.wireframeVertexArray=void 0}n.wireframeVertexArray=kxt(e,o,i),n.wireframeVertexArray.mesh=i}}function kxt(e,t,n){let o={indices:n.indices,primitiveType:ve.TRIANGLES};Un.toWireframe(o);let r=o.indices,s=$e.createIndexBuffer({context:e,typedArray:r,usage:Fe.STATIC_DRAW,indexDatatype:De.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new wn({context:e,attributes:t._attributes,indexBuffer:s})}var KRe,JRe,y3;(function(){let e=new Pt({geometry:fh.fromDimensions({dimensions:new h(2,2,2)})}),t=new Pt({geometry:new vb({radius:1})}),n=new F,i,o;function r(s){return new Wn({geometryInstances:s,appearance:new pn({translucent:!1,flat:!0}),asynchronous:!1})}KRe=function(s,a){return s===i||(y3(),i=s,n=F.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=qt.fromColor(a),o=r(e)),o},JRe=function(s,a){return s===i||(y3(),i=s,n=F.fromTranslation(s.center,n),n=F.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=qt.fromColor(a),o=r(t)),o},y3=function(){l(o)&&(o.destroy(),o=void 0,i=void 0)}})();var Uxt=new ce(0,0,0,0),Dxt={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applyDayNightAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,dynamicAtmosphereLighting:void 0,dynamicAtmosphereLightingFromSun:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,enableClippingPolygons:void 0,clippingPolygons:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},Oxt=U.TRANSPARENT,Bxt=new Bt;function zxt(e,t,n){let i=t.data;l(i.vertexArray)||(i.fill===void 0&&(i.fill=new G1(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(l(r)&&l(r.credits)){let gt=r.credits;for(let Wt=0,Cn=gt.length;Wt<Cn;++Wt)o.addCreditToNextFrame(gt[Wt])}let s=Xt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!l(a)&&l(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let d=n.cameraUnderground,u=n.globeTranslucencyState,m=u.translucent,p=u.frontFaceAlphaByDistance,b=u.backFaceAlphaByDistance,f=u.rectangle,y=e.undergroundColor??Oxt,_=e.undergroundColorAlphaByDistance??Bxt,S=HRe(e,n)&&n.mode===re.SCENE3D&&y.alpha>0&&(_.nearValue>0||_.farValue>0),A=e.lambertDiffuseMultiplier,Z=e.vertexShadowDarkness,R=e.hasWaterMask&&l(a),G=R&&e.showWaterEffect,E=e.oceanNormalMap,v=G&&l(E),I=e.terrainProvider,X=l(I)&&e.terrainProvider.hasVertexNormals,Y=n.fog.enabled&&n.fog.renderable&&!d,g=e.showGroundAtmosphere&&n.mode===re.SCENE3D,C=Gn.castShadows(e.shadows)&&!m,V=Gn.receiveShadows(e.shadows)&&!m,L=e.hueShift,P=e.saturationShift,N=e.brightnessShift,O=!(W.equalsEpsilon(L,0,W.EPSILON7)&&W.equalsEpsilon(P,0,W.EPSILON7)&&W.equalsEpsilon(N,0,W.EPSILON7)),M=!1;if(g){let gt=h.magnitude(n.camera.positionWC),Wt=e.nightFadeOutDistance;M=gt>Wt}R&&--s,v&&--s,l(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,l(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,l(e.clippingPolygons)&&e.clippingPolygons.enabled&&(--s,--s),s-=u.numberOfTextureUniforms;let D=i.renderedMesh,w=D.center,z=D.encoding,K=i.tileBoundingRegion,ee=n.verticalExaggeration,H=n.verticalExaggerationRelativeHeight,te=ee!==1,q=z.hasGeodeticSurfaceNormals,de=Ext,ye=0,le=0,Ce=0,ge=0,Ee=!1;if(n.mode!==re.SCENE3D){let gt=n.mapProjection,Wt=gt.project(se.southwest(t.rectangle),Fxt),Cn=gt.project(se.northeast(t.rectangle),Ixt);if(de.x=Wt.x,de.y=Wt.y,de.z=Cn.x,de.w=Cn.y,n.mode!==re.MORPHING&&(w=vxt,w.x=0,w.y=(de.z+de.x)*.5,w.z=(de.w+de.y)*.5,de.x-=w.y,de.y-=w.z,de.z-=w.y,de.w-=w.z),n.mode===re.SCENE2D&&z.quantization===Ya.BITS12){let dt=1/(Math.pow(2,12)-1)*.5,mt=(de.z-de.x)*dt,Qn=(de.w-de.y)*dt;de.x-=mt,de.y-=Qn,de.z+=mt,de.w+=Qn}gt instanceof ui&&(ye=t.rectangle.south,le=t.rectangle.north,Ce=ui.geodeticLatitudeToMercatorAngle(ye),ge=1/(ui.geodeticLatitudeToMercatorAngle(le)-Ce),Ee=!0)}let Re=Dxt;Re.frameState=n,Re.surfaceTile=i,Re.hasWaterMask=R,Re.showReflectiveOcean=G,Re.showOceanWaves=v,Re.enableLighting=e.enableLighting,Re.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,Re.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,Re.showGroundAtmosphere=g,Re.atmosphereLightIntensity=e.atmosphereLightIntensity,Re.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,Re.atmosphereMieCoefficient=e.atmosphereMieCoefficient,Re.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,Re.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,Re.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,Re.perFragmentGroundAtmosphere=M,Re.hasVertexNormals=X,Re.useWebMercatorProjection=Ee,Re.clippedByBoundaries=i.clippedByBoundaries,Re.hasGeodeticSurfaceNormals=q,Re.hasExaggeration=te;let Xe=i.imagery,we=0,nt=Xe.length,je=e.showSkirts&&!d&&!m,et=e.backFaceCulling&&!d&&!m,Ie=et?e._renderState:e._disableCullingRenderState,Oe=et?e._blendRenderState:e._disableCullingBlendRenderState,St=Ie,Et=e._firstPassInitialColor,on=n.context;if(l(e._debug.boundingSphereTile)||y3(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let gt=e._drawCommands.length;for(let Wt=0;Wt<gt;++Wt)e._uniformMaps[Wt]=ORe(n,e)}do{let gt=0,Wt,Cn;if(e._drawCommands.length<=e._usedDrawCommands?(Wt=new at,Wt.owner=t,Wt.cull=!1,Wt.boundingVolume=new ue,Wt.orientedBoundingBox=void 0,Cn=ORe(n,e),e._drawCommands.push(Wt),e._uniformMaps.push(Cn)):(Wt=e._drawCommands[e._usedDrawCommands],Cn=e._uniformMaps[e._usedDrawCommands]),Wt.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let _s=K.boundingVolume,$s=K.boundingSphere;l(_s)?KRe(_s,U.RED).update(n):l($s)&&JRe($s,U.RED).update(n)}let dt=Cn.properties;ce.clone(Et,dt.initialColor),dt.oceanNormalMap=E,dt.lightingFadeDistance.x=e.lightingFadeOutDistance,dt.lightingFadeDistance.y=e.lightingFadeInDistance,dt.nightFadeDistance.x=e.nightFadeOutDistance,dt.nightFadeDistance.y=e.nightFadeInDistance,dt.atmosphereLightIntensity=e.atmosphereLightIntensity,dt.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,dt.atmosphereMieCoefficient=e.atmosphereMieCoefficient,dt.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,dt.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,dt.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,dt.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let mt=d?b:p,Qn=d?p:b;l(mt)&&(ce.fromElements(mt.near,mt.nearValue,mt.far,mt.farValue,dt.frontFaceAlphaByDistance),ce.fromElements(Qn.near,Qn.nearValue,Qn.far,Qn.farValue,dt.backFaceAlphaByDistance)),ce.fromElements(_.near,_.nearValue,_.far,_.farValue,dt.undergroundColorAlphaByDistance),U.clone(y,dt.undergroundColor),dt.lambertDiffuseMultiplier=A,dt.vertexShadowDarkness=Z;let Yn=!l(i.vertexArray)&&l(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;Yn&&U.clone(e.fillHighlightColor,dt.fillHighlightColor),dt.verticalExaggerationAndRelativeHeight.x=ee,dt.verticalExaggerationAndRelativeHeight.y=H,dt.center3D=D.center,h.clone(w,dt.rtc),ce.clone(de,dt.tileRectangle),dt.southAndNorthLatitude.x=ye,dt.southAndNorthLatitude.y=le,dt.southMercatorYAndOneOverHeight.x=Ce,dt.southMercatorYAndOneOverHeight.y=ge;let $i=Lxt,Ko=g3(t.rectangle,e.cartographicLimitRectangle),mo=Wxt,so=g3(t.rectangle,f);h.fromElements(L,P,N,dt.hsbShift);let ti=t.rectangle,ni=1/ti.width,yn=1/ti.height;$i.x=(Ko.west-ti.west)*ni,$i.y=(Ko.south-ti.south)*yn,$i.z=(Ko.east-ti.west)*ni,$i.w=(Ko.north-ti.south)*yn,ce.clone($i,dt.localizedCartographicLimitRectangle),mo.x=(so.west-ti.west)*ni,mo.y=(so.south-ti.south)*yn,mo.z=(so.east-ti.west)*ni,mo.w=(so.north-ti.south)*yn,ce.clone(mo,dt.localizedTranslucencyRectangle);let Mn=Y&&W.fog(t._distance,n.fog.density)>W.EPSILON3;O=O&&(Mn||g);let Vr=!1,Is=!1,Ps=!1,Xs=!1,Ta=!1,Uo=!1,hi=!1,yo=!1,eo=!1,Ys=!1;for(;gt<s&&we<nt;){let _s=Xe[we],$s=_s.readyImagery;if(++we,!l($s)||$s.imageryLayer.alpha===0)continue;let Uf=_s.useWebMercatorT?$s.textureWebMercator:$s.texture,ci=$s.imageryLayer;l(_s.textureTranslationAndScale)||(_s.textureTranslationAndScale=ci._calculateTextureTranslationAndScale(t,_s)),dt.dayTextures[gt]=Uf,dt.dayTextureTranslationAndScale[gt]=_s.textureTranslationAndScale,dt.dayTextureTexCoordsRectangle[gt]=_s.textureCoordinateRectangle,dt.dayTextureUseWebMercatorT[gt]=_s.useWebMercatorT,dt.dayTextureAlpha[gt]=ci.alpha,Uo=Uo||dt.dayTextureAlpha[gt]!==1,dt.dayTextureNightAlpha[gt]=ci.nightAlpha,hi=hi||dt.dayTextureNightAlpha[gt]!==1,dt.dayTextureDayAlpha[gt]=ci.dayAlpha,hi=hi||dt.dayTextureDayAlpha[gt]!==1,dt.dayTextureBrightness[gt]=ci.brightness,Vr=Vr||dt.dayTextureBrightness[gt]!==us.DEFAULT_BRIGHTNESS,dt.dayTextureContrast[gt]=ci.contrast,Is=Is||dt.dayTextureContrast[gt]!==us.DEFAULT_CONTRAST,dt.dayTextureHue[gt]=ci.hue,Ps=Ps||dt.dayTextureHue[gt]!==us.DEFAULT_HUE,dt.dayTextureSaturation[gt]=ci.saturation,Xs=Xs||dt.dayTextureSaturation[gt]!==us.DEFAULT_SATURATION,dt.dayTextureOneOverGamma[gt]=1/ci.gamma,Ta=Ta||dt.dayTextureOneOverGamma[gt]!==1/us.DEFAULT_GAMMA,dt.dayTextureSplit[gt]=ci.splitDirection,yo=yo||dt.dayTextureSplit[gt]!==0;let ea=dt.dayTextureCutoutRectangles[gt];if(l(ea)||(ea=dt.dayTextureCutoutRectangles[gt]=new ce),ce.clone(ce.ZERO,ea),l(ci.cutoutRectangle)){let vo=g3(ti,ci.cutoutRectangle),sd=se.simpleIntersection(vo,ti,zRe);eo=l(sd)||eo,ea.x=(vo.west-ti.west)*ni,ea.y=(vo.south-ti.south)*yn,ea.z=(vo.east-ti.west)*ni,ea.w=(vo.north-ti.south)*yn}let Qd=dt.colorsToAlpha[gt];l(Qd)||(Qd=dt.colorsToAlpha[gt]=new ce);let rd=l(ci.colorToAlpha)&&ci.colorToAlphaThreshold>0;if(Ys=Ys||rd,rd){let vo=ci.colorToAlpha;Qd.x=vo.red,Qd.y=vo.green,Qd.z=vo.blue,Qd.w=ci.colorToAlphaThreshold}else Qd.w=-1;if(l($s.credits)){let vo=$s.credits;for(let sd=0,Pg=vo.length;sd<Pg;++sd)o.addCreditToNextFrame(vo[sd])}++gt}dt.dayTextures.length=gt,dt.waterMask=a,ce.clone(c,dt.waterMaskTranslationAndScale),dt.minMaxHeight.x=z.minimumHeight,dt.minMaxHeight.y=z.maximumHeight,F.clone(z.matrix,dt.scaleAndBias);let Ei=e._clippingPlanes,Yo=l(Ei)&&Ei.enabled&&t.isClipped;Yo&&(dt.clippingPlanesEdgeColor=U.clone(Ei.edgeColor,dt.clippingPlanesEdgeColor),dt.clippingPlanesEdgeWidth=Ei.edgeWidth);let fc=e._clippingPolygons,$r=l(fc)&&fc.enabled&&t.isClipped;Re.numberOfDayTextures=gt,Re.applyBrightness=Vr,Re.applyContrast=Is,Re.applyHue=Ps,Re.applySaturation=Xs,Re.applyGamma=Ta,Re.applyAlpha=Uo,Re.applyDayNightAlpha=hi,Re.applySplit=yo,Re.enableFog=Mn,Re.enableClippingPlanes=Yo,Re.clippingPlanes=Ei,Re.enableClippingPolygons=$r,Re.clippingPolygons=fc,Re.hasImageryLayerCutout=eo,Re.colorCorrect=O,Re.highlightFillTile=Yn,Re.colorToAlpha=Ys,Re.showUndergroundColor=S,Re.translucent=m;let jd=i.renderedMesh.indices.length;je||(jd=i.renderedMesh.indexCountWithoutSkirts),Wt.shaderProgram=e._surfaceShaderSet.getShaderProgram(Re),Wt.castShadows=C,Wt.receiveShadows=V,Wt.renderState=St,Wt.primitiveType=ve.TRIANGLES,Wt.vertexArray=i.vertexArray||i.fill.vertexArray,Wt.count=jd,Wt.uniformMap=Cn,Wt.pass=Le.GLOBE,e._debug.wireframe&&(Mxt(on,t),l(i.wireframeVertexArray)&&(Wt.vertexArray=i.wireframeVertexArray,Wt.primitiveType=ve.LINES,Wt.count=jd*2));let _a=Wt.boundingVolume,Ig=Wt.orientedBoundingBox;n.mode!==re.SCENE3D?(ue.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,K.minimumHeight,K.maximumHeight,_a),h.fromElements(_a.center.z,_a.center.x,_a.center.y,_a.center),n.mode===re.MORPHING&&(_a=ue.union(K.boundingSphere,_a,_a))):(Wt.boundingVolume=ue.clone(K.boundingSphere,_a),Wt.orientedBoundingBox=en.clone(K.boundingVolume,Ig)),Wt.dirty=!0,m&&u.updateDerivedCommands(Wt,n),BRe(Wt,n),St=Oe,Et=Uxt}while(we<nt)}var wN=Lee;var wJi=x(T(),1);function jRe(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=se.clone(se.MAX_VALUE)}Object.defineProperties(jRe.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabled=e}},frontFaceAlpha:{get:function(){return this._frontFaceAlpha},set:function(e){this._frontFaceAlpha=e}},frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance},set:function(e){this._frontFaceAlphaByDistance=Bt.clone(e,this._frontFaceAlphaByDistance)}},backFaceAlpha:{get:function(){return this._backFaceAlpha},set:function(e){this._backFaceAlpha=e}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance},set:function(e){this._backFaceAlphaByDistance=Bt.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){l(e)||(e=se.clone(se.MAX_VALUE)),se.clone(e,this._rectangle)}}});var MN=jRe;var xji=x(T(),1);var DJi=x(T(),1);var Wee=class{constructor(t){this._ellipsoid=new af(t.ellipsoid,h.ZERO)}get ellipsoid(){return this._ellipsoid}},kN=Wee;var jJi=x(T(),1);var vee=class{constructor(t){this.maxSize=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){let i=this.cache.keys().next().value;this.cache.delete(i)}this.cache.set(t,n)}get size(){return this.cache.size}clear(){this.cache.clear()}},Hxt=1e3,Fee=class e{constructor(t){this._tilingScheme=t.tilingScheme,this._x=t.x,this._y=t.y,this._level=t.level,this._parent=t.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=new Set,this._customDataIterator=void 0,this._addedCustomData=[],this._removedCustomData=[],this._lastSelectionResult=ai.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this._positionCache=new vee(Hxt),this.state=Na.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}static createLevelZeroTiles(t){let n=t.getNumberOfXTilesAtLevel(0),i=t.getNumberOfYTilesAtLevel(0),o=new Array(n*i),r=0;for(let s=0;s<i;++s)for(let a=0;a<n;++a)o[r++]=new e({tilingScheme:t,x:a,y:s,level:0});return o}_getCacheKey(t,n){return Jxt(t.longitude,t.latitude,this._rectangle,n)}getPositionCacheEntry(t,n){return this._positionCache.get(this._getCacheKey(t,n))}setPositionCacheEntry(t,n,i){this._positionCache.set(this._getCacheKey(t,n),i)}clearPositionCache(){this._positionCache.size>0&&this._positionCache.clear()}updateCustomData(){let t=this._addedCustomData,n=this._removedCustomData;if(t.length===0&&n.length===0)return;let i=this.customData;for(let o=0;o<t.length;++o){let r=t[o];i.add(r),QRe(this,r.positionCartographic)._addedCustomData.push(r)}this._addedCustomData.length=0;for(let o=0;o<n.length;++o){let r=n[o];i.has(r)&&i.delete(r),QRe(this,r.positionCartographic)._removedCustomData.push(r)}this._removedCustomData.length=0}get tilingScheme(){return this._tilingScheme}get x(){return this._x}get y(){return this._y}get level(){return this._level}get parent(){return this._parent}get rectangle(){return this._rectangle}get children(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}get southwestChild(){return l(this._southwestChild)||(this._southwestChild=new e({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}get southeastChild(){return l(this._southeastChild)||(this._southeastChild=new e({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2+1,level:this.level+1,parent:this})),this._southeastChild}get northwestChild(){return l(this._northwestChild)||(this._northwestChild=new e({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}get northeastChild(){return l(this._northeastChild)||(this._northeastChild=new e({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2,level:this.level+1,parent:this})),this._northeastChild}get customData(){return this._customData}get needsLoading(){return this.state<Na.DONE}get eligibleForUnloading(){let t=!0;return l(this.data)&&(t=this.data.eligibleForUnloading,l(t)||(t=!0)),t}findLevelZeroTile(t,n,i){let o=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(n<0?n+=o:n>=o&&(n-=o),!(i<0||i>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return t.filter(function(r){return r.x===n&&r.y===i})[0]}findTileToWest(t){let n=this.parent;if(n===void 0)return this.findLevelZeroTile(t,this.x-1,this.y);if(n.southeastChild===this)return n.southwestChild;if(n.northeastChild===this)return n.northwestChild;let i=n.findTileToWest(t);if(i!==void 0)return n.southwestChild===this?i.southeastChild:i.northeastChild}findTileToEast(t){let n=this.parent;if(n===void 0)return this.findLevelZeroTile(t,this.x+1,this.y);if(n.southwestChild===this)return n.southeastChild;if(n.northwestChild===this)return n.northeastChild;let i=n.findTileToEast(t);if(i!==void 0)return n.southeastChild===this?i.southwestChild:i.northwestChild}findTileToSouth(t){let n=this.parent;if(n===void 0)return this.findLevelZeroTile(t,this.x,this.y+1);if(n.northwestChild===this)return n.southwestChild;if(n.northeastChild===this)return n.southeastChild;let i=n.findTileToSouth(t);if(i!==void 0)return n.southwestChild===this?i.northwestChild:i.northeastChild}findTileToNorth(t){let n=this.parent;if(n===void 0)return this.findLevelZeroTile(t,this.x,this.y-1);if(n.southwestChild===this)return n.northwestChild;if(n.southeastChild===this)return n.northeastChild;let i=n.findTileToNorth(t);if(i!==void 0)return n.northwestChild===this?i.southwestChild:i.southeastChild}freeResources(){this.clearPositionCache(),this.state=Na.START,this.renderable=!1,this.upsampledFromParent=!1;let t=this.data;l(t)&&l(t.freeResources)&&t.freeResources(),x3(this._southwestChild),this._southwestChild=void 0,x3(this._southeastChild),this._southeastChild=void 0,x3(this._northwestChild),this._northwestChild=void 0,x3(this._northeastChild),this._northeastChild=void 0}},Kxt=256;function Jxt(e,t,n,i){let o=n.width/Kxt*i,r=Math.floor(e/o)*o,s=Math.floor(t/o)*o;return`${r.toFixed(10)},${s.toFixed(10)}`}var jxt=new fe;function QRe(e,t){let n=e.northwestChild.rectangle,i=se.southeast(n,jxt),o=t.longitude>=i.longitude?1:0;switch((t.latitude<i.latitude?1:0)*2+o){case 0:return e.northwestChild;case 1:return e.northeastChild;case 2:return e.southwestChild;default:return e.southeastChild}}function x3(e){l(e)&&e.freeResources()}var UN=Fee;var $Ji=x(T(),1);function T3(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}T3.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};T3.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&l(this._lastBeforeStartOfFrame)&&this.count>e&&l(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),qRe(this,t)),t=i}};function qRe(e,t){let n=t.replacementPrevious,i=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=i),t===e.head?e.head=i:n.replacementNext=i,t===e.tail?e.tail=n:i.replacementPrevious=n,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}T3.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!l(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(l(e.replacementPrevious)||l(e.replacementNext))&&qRe(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var DN=T3;function Qm(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};let n=this._tileProvider.tilingScheme.ellipsoid;this._tilesRenderedThisFrame=new Set,this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new DN,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=e.maximumScreenSpaceError??2,this.tileCacheSize=e.tileCacheSize??100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new kN({ellipsoid:n}),this._tileLoadProgressEvent=new Se,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(Qm.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});Qm.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function Qxt(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,e1e(e);let n=e._levelZeroTiles;if(l(n))for(let i=0;i<n.length;++i){let r=n[i].customData;for(let s of r)s.level=0,e._addHeightCallbacks.push(s);n[i].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}Qm.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;l(t);)t.state!==Na.START&&e(t),t=t.replacementNext};Qm.prototype.forEachRenderedTile=function(e){let t=this._tilesRenderedThisFrame;for(let n of t)e(n)};Qm.prototype.updateHeight=function(e,t){let n=this,i={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return i.removeFunc=function(){let o=n._addHeightCallbacks,r=o.length;for(let s=0;s<r;++s)if(o[s]===i){o.splice(s,1);break}n._removeHeightCallbacks.push(i),i.callback&&(i.callback=void 0)},n._addHeightCallbacks.push(i),i.removeFunc};Qm.prototype.update=function(e){l(this._tileProvider.update)&&this._tileProvider.update(e)};function e1e(e){let t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}Qm.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(Qxt(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),e1e(this),!this._debug.suspendLodUpdate&&(this._tileReplacementQueue.markStartOfRenderFrame(),this._tilesRenderedThisFrame.clear()))};Qm.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),tTt(this,e),uTt(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function qxt(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let o=Se.prototype.raiseEvent.bind(e._tileLoadProgressEvent,n);t.afterRender.push(()=>(o(),!0)),e._lastTileLoadQueueLength=n}let i=e._debug;i.enableDebugOutput&&!i.suspendLodUpdate&&(i.maxDepth=e._tilesToRender.reduce(function(o,r){return Math.max(o,r.level)},-1),i.tilesRendered=e._tilesToRender.length,(i.tilesVisited!==i.lastTilesVisited||i.tilesRendered!==i.lastTilesRendered||i.tilesCulled!==i.lastTilesCulled||i.maxDepth!==i.lastMaxDepth||i.tilesWaitingForChildren!==i.lastTilesWaitingForChildren||i.maxDepthVisited!==i.lastMaxDepthVisited)&&(console.log(`Visited ${i.tilesVisited}, Rendered: ${i.tilesRendered}, Culled: ${i.tilesCulled}, Max Depth Rendered: ${i.maxDepth}, Max Depth Visited: ${i.maxDepthVisited}, Waiting for children: ${i.tilesWaitingForChildren}`),i.lastTilesVisited=i.tilesVisited,i.lastTilesRendered=i.tilesRendered,i.lastTilesCulled=i.tilesCulled,i.lastMaxDepth=i.maxDepth,i.lastTilesWaitingForChildren=i.tilesWaitingForChildren,i.lastMaxDepthVisited=i.maxDepthVisited))}Qm.prototype.endFrame=function(e){!e.passes.render||e.mode===re.MORPHING||(aTt(this,e),dTt(this,e),qxt(this,e))};Qm.prototype.isDestroyed=function(){return!1};Qm.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var BN,$Re=new fe;function $xt(e,t){let n=se.center(e.rectangle,$Re),i=n.longitude-BN.longitude,o=n.latitude-BN.latitude;n=se.center(t.rectangle,$Re);let r=n.longitude-BN.longitude,s=n.latitude-BN.latitude;return i*i+o*o-(r*r+s*s)}var eTt=new h,ON=[];function tTt(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o=e._tileProvider;if(!l(e._levelZeroTiles)){let m=o.tilingScheme;if(l(m)){let p=o.tilingScheme;e._levelZeroTiles=UN.createLevelZeroTiles(p);let b=e._levelZeroTiles.length;if(ON.length<b){ON=new Array(b);for(let f=0;f<b;++f)ON[f]===void 0&&(ON[f]=new zN)}}else return}e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let r=e._levelZeroTiles,s=r.length>1?e._occluders:void 0;BN=t.camera.positionCartographic,r.sort($xt);let a=e._addHeightCallbacks,c=e._removeHeightCallbacks;a.forEach(m=>{let p=r.find(b=>se.contains(b.rectangle,m.positionCartographic));p&&p._addedCustomData.push(m)}),c.forEach(m=>{let p=r.find(b=>se.contains(b.rectangle,m.positionCartographic));p&&p._removedCustomData.push(m)}),r.forEach(m=>m.updateCustomData()),a.length=0,c.length=0;let d=t.camera;e._cameraPositionCartographic=d.positionCartographic;let u=F.getTranslation(d.transform,eTt);e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(u,e._cameraReferenceFrameOriginCartographic);for(let m=0;m<r.length;++m){let p=r[m];e._tileReplacementQueue.markTileRendered(p),p.renderable?Fc(e,p,o,t,s,!1,ON[m]):(mg(e,e._tileLoadQueueHigh,p,t),++n.tilesWaitingForChildren)}e._lastSelectionFrameNumber=t.frameNumber}function mg(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function zN(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function t1e(){this.southwest=new zN,this.southeast=new zN,this.northwest=new zN,this.northeast=new zN}t1e.prototype.combine=function(e){let t=this.southwest,n=this.southeast,i=this.northwest,o=this.northeast;e.allAreRenderable=t.allAreRenderable&&n.allAreRenderable&&i.allAreRenderable&&o.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||o.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+n.notYetRenderableCount+i.notYetRenderableCount+o.notYetRenderableCount};var Pee=new Array(31);for(let e=0;e<Pee.length;++e)Pee[e]=new t1e;function nTt(e,t,n,i,o){let r=e._debug;++r.tilesVisited,e._tileReplacementQueue.markTileRendered(n),n.updateCustomData(),n.level>r.maxDepthVisited&&(r.maxDepthVisited=n.level);let s=rTt(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,d=n.northwestChild,u=n.northeastChild,m=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===m?n._lastSelectionResult:ai.NONE,b=e.tileProvider;if(s||i){let f=ai.originalResult(p)===ai.RENDERED,y=ai.originalResult(p)===ai.CULLED||p===ai.NONE,_=n.state===Na.DONE,S=f||y||_;if(S||l(b.canRenderWithoutLosingDetail)&&(S=b.canRenderWithoutLosingDetail(n)),S){s&&mg(e,e._tileLoadQueueMedium,n,t),_3(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===ai.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=ai.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&mg(e,e._tileLoadQueueHigh,n,t)}if(b.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&d.upsampledFromParent&&u.upsampledFromParent){_3(e,n),mg(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(d),e._tileReplacementQueue.markTileRendered(u),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===ai.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=ai.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=ai.REFINED;let y=e._tilesToRender.length,_=e._tileLoadQueueLow.length,S=e._tileLoadQueueMedium.length,A=e._tileLoadQueueHigh.length,Z=e._tileToUpdateHeights.length;if(iTt(e,a,c,d,u,t,i,o),y!==e._tilesToRender.length){let R=o.allAreRenderable,G=o.anyWereRenderedLastFrame,E=o.notYetRenderableCount,v=!1;if(!R&&!G){let I=e._tilesToRender;for(let Y=y;Y<I.length;++Y){let g=I[Y];for(;g!==void 0&&g._lastSelectionResult!==ai.KICKED&&g!==n;)g._lastSelectionResult=ai.kick(g._lastSelectionResult),g=g.parent}e._tilesToRender.length=y,e._tileToUpdateHeights.length=Z,_3(e,n),n._lastSelectionResult=ai.RENDERED;let X=p===ai.RENDERED;!X&&E>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=_,e._tileLoadQueueMedium.length=S,e._tileLoadQueueHigh.length=A,mg(e,e._tileLoadQueueMedium,n,t),o.notYetRenderableCount=n.renderable?0:1,v=!0),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=X,X||e._tileToUpdateHeights.push(n),++r.tilesWaitingForChildren}e.preloadAncestors&&!v&&mg(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=ai.RENDERED,_3(e,n),mg(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===ai.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function iTt(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,d=e._tileProvider,u=e._occluders,m=Pee[t.level],p=m.southwest,b=m.southeast,f=m.northwest,y=m.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(Fc(e,t,d,r,u,s,p),Fc(e,n,d,r,u,s,b),Fc(e,i,d,r,u,s,f),Fc(e,o,d,r,u,s,y)):(Fc(e,i,d,r,u,s,f),Fc(e,t,d,r,u,s,p),Fc(e,o,d,r,u,s,y),Fc(e,n,d,r,u,s,b)):c.latitude<t.rectangle.north?(Fc(e,n,d,r,u,s,b),Fc(e,t,d,r,u,s,p),Fc(e,o,d,r,u,s,y),Fc(e,i,d,r,u,s,f)):(Fc(e,o,d,r,u,s,y),Fc(e,i,d,r,u,s,f),Fc(e,n,d,r,u,s,b),Fc(e,t,d,r,u,s,p)),m.combine(a)}function oTt(e,t){let n=t.rectangle;return l(e._cameraPositionCartographic)&&se.contains(n,e._cameraPositionCartographic)||l(e._cameraReferenceFrameOriginCartographic)&&se.contains(n,e._cameraReferenceFrameOriginCartographic)}function Fc(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==Nr.NONE)return nTt(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,oTt(e,t)){(!l(t.data)||!l(t.data.vertexArray))&&mg(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:ai.NONE;c!==ai.CULLED_BUT_NEEDED&&c!==ai.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=ai.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(mg(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=ai.CULLED):t._lastSelectionResult=ai.CULLED;t._lastSelectionResultFrame=i.frameNumber}function rTt(e,t,n){if(t.mode===re.SCENE2D||t.camera.frustum instanceof fn||t.camera.frustum instanceof rs)return sTt(e,t,n);let i=e._tileProvider.getLevelMaximumGeometricError(n.level),o=n._distance,r=t.context.drawingBufferHeight,s=t.camera.frustum.sseDenominator,a=i*r/(o*s);return t.fog.enabled&&(a-=W.fog(o,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function sTt(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;l(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,d=e._tileProvider.getLevelMaximumGeometricError(n.level),u=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),m=d/u;return t.fog.enabled&&t.mode!==re.SCENE2D&&(m-=W.fog(n._distance,t.fog.density)*t.fog.sse),m/=t.pixelRatio,m}function _3(e,t){e._tilesToRender.push(t),e._tilesRenderedThisFrame.add(t)}function aTt(e,t){let n=e._tileLoadQueueHigh,i=e._tileLoadQueueMedium,o=e._tileLoadQueueLow;if(n.length===0&&i.length===0&&o.length===0)return;e._tileReplacementQueue.trimTiles(e.tileCacheSize);let r=Ni()+e._loadQueueTimeSlice,s=e._tileProvider,a=Iee(e,t,s,r,n,!1);a=Iee(e,t,s,r,i,a),Iee(e,t,s,r,o,a)}function cTt(e,t){return e._loadPriority-t._loadPriority}function Iee(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort(cTt);for(let s=0,a=o.length;s<a&&(Ni()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var E1=new _n,S3=new fe,Wx=new h,lTt=[];function dTt(e,t){if(!l(e.tileProvider.tilingScheme))return;let n=lTt;n.length=0;let i=e._tileToUpdateHeights,o=Ni(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,d=e.tileProvider.tilingScheme.ellipsoid,u;for(;i.length>0;){let m=i[0];if(!l(m.data)||!l(m.data.mesh)){let _=m._lastSelectionResultFrame===e._lastSelectionFrameNumber?m._lastSelectionResult:ai.NONE;(_===ai.RENDERED||_===ai.CULLED_BUT_NEEDED)&&n.push(m),m.clearPositionCache(),i.shift();continue}let p=m.customData;l(m._customDataIterator)||(m._customDataIterator=p.values());let b=m._customDataIterator,f=!1,y;for(;!(y=b.next()).done;){let _=y.value,S=m.data.terrainData,A=l(S)&&S.wasCreatedByUpsampling();if(m.level>_.level&&!A){let Z,R=m.getPositionCacheEntry(_.positionCartographic,e.maximumScreenSpaceError);if(l(R))Z=R;else{if(l(_.positionOnEllipsoidSurface)||(_.positionOnEllipsoidSurface=h.fromRadians(_.positionCartographic.longitude,_.positionCartographic.latitude,0,d)),a===re.SCENE3D){let G=d.geodeticSurfaceNormal(_.positionOnEllipsoidSurface,E1.direction),E=d.getSurfaceNormalIntersectionWithZAxis(_.positionOnEllipsoidSurface,11500,E1.origin);if(!l(E)){let v=0;l(m.data.tileBoundingRegion)&&(v=m.data.tileBoundingRegion.minimumHeight);let I=Math.min(v,-11500),X=h.multiplyByScalar(G,Math.abs(I)+1,Wx);h.subtract(_.positionOnEllipsoidSurface,X,E1.origin)}}else fe.clone(_.positionCartographic,S3),S3.height=-11500,c.project(S3,Wx),h.fromElements(Wx.z,Wx.x,Wx.y,Wx),h.clone(Wx,E1.origin),h.clone(h.UNIT_X,E1.direction);Z=m.data.pick(E1,a,c,!1,Wx),l(Z)&&m.setPositionCacheEntry(_.positionCartographic,e.maximumScreenSpaceError,h.clone(Z))}if(l(Z)){if(l(_.callback)){let G=d.cartesianToCartographic(Z,S3);_.callback(G)}_.level=m.level}}if(Ni()>=s){f=!0;break}}if(f){m._customDataIterator=b;break}else m._customDataIterator=void 0,i.shift()}for(u=0;u<n.length;u++)i.push(n[u])}function uTt(e,t){let n=e._tileProvider,i=e._tilesToRender;for(let o=0,r=i.length;o<r;++o){let s=i[o];n.showTileThisFrame(s,t)}}var HN=Qm;function Vf(e){e=e??ie.default;let t=new Jp({ellipsoid:e}),n=new q_;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new YN,this._material=void 0,this._surface=new HN({tileProvider:new wN({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new Se,this._undergroundColor=U.clone(U.BLACK),this._undergroundColorAlphaByDistance=new Bt(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new MN,Yee(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new We({url:$t("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.lambertDiffuseMultiplier=.9,this.dynamicAtmosphereLighting=!0,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=ie.WGS84.equals(e),this.atmosphereLightIntensity=10,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.lightingFadeOutDistance=W.PI_OVER_TWO*e.minimumRadius,this.lightingFadeInDistance=W.PI*e.minimumRadius,this.nightFadeOutDistance=W.PI_OVER_TWO*e.minimumRadius,this.nightFadeInDistance=5*W.PI_OVER_TWO*e.minimumRadius,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=Gn.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(Vf.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return l(this._surface)?this._surface._tileLoadQueueHigh.length===0&&this._surface._tileLoadQueueMedium.length===0&&this._surface._tileLoadQueueLow.length===0:!0}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},clippingPolygons:{get:function(){return this._surface.tileProvider.clippingPolygons},set:function(e){this._surface.tileProvider.clippingPolygons=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){l(e)||(e=se.clone(se.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),l(this._material)&&Yee(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,Yee(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=U.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Bt.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function Yee(e){let t=[],n=l(e._material)&&(l(e._material.shaderSource.match(/slope/))||l(e._material.shaderSource.match("normalEC"))),i=[Ph,C1];l(e._material)&&(!n||e._terrainProvider.hasVertexNormals)?(i.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.materialUniformMap=e._material._uniforms):e._surface._tileProvider.materialUniformMap=void 0,i.push(PN),e._surfaceShaderSet.baseVertexShaderSource=new He({sources:[Ph,C1,XN],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new He({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function mTt(e){return function(t,n){let i=ue.distanceSquaredTo(t.pickBoundingSphere,e),o=ue.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var hTt=[],fTt={start:0,stop:0};Vf.prototype.pickWorldCoordinates=function(e,t,n,i){n=n??!0;let o=t.mode,r=t.mapProjection,s=hTt;s.length=0;for(let d of this._surface._tilesRenderedThisFrame){let u=d.data;if(!l(u))continue;let m=u.pickBoundingSphere;if(o!==re.SCENE3D)u.pickBoundingSphere=m=ue.fromRectangleWithHeights2D(d.rectangle,r,u.tileBoundingRegion.minimumHeight,u.tileBoundingRegion.maximumHeight,m),h.fromElements(m.center.z,m.center.x,m.center.y,m.center);else if(l(u.renderedMesh))ue.clone(u.tileBoundingRegion.boundingSphere,m);else continue;let p=di.raySphere(e,m,fTt);l(p)&&s.push(u)}s.sort(mTt(e.origin));let a,c=s.length;for(let d=0;d<c&&(a=s[d].pick(e,t.mode,t.mapProjection,n,i),!l(a));++d);return a};var pTt=new fe;Vf.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),l(n)&&t.mode!==re.SCENE3D){n=h.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,pTt);n=this._ellipsoid.cartographicToCartesian(i,n)}return n};var bTt=new h,n1e=new h,gTt=new fe,yTt=new _n;function Xee(e,t){return l(e)&&se.contains(e.rectangle,t)?e:void 0}Vf.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!l(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!se.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;l(n);)n=Xee(n._southwestChild,e)||Xee(n._southeastChild,e)||Xee(n._northwestChild,e)||n._northeastChild,l(n)&&l(n.data)&&l(n.data.renderedMesh)&&(r=n);if(n=r,!l(n)||!l(n.data)||!l(n.data.renderedMesh))return;let s=this._surface._tileProvider.tilingScheme.projection,a=this._surface._tileProvider.tilingScheme.ellipsoid,c=h.fromRadians(e.longitude,e.latitude,0,a,bTt),d=yTt,u=a.geodeticSurfaceNormal(c,d.direction),m=a.getSurfaceNormalIntersectionWithZAxis(c,11500,d.origin);if(!l(m)){let b;l(n.data.tileBoundingRegion)&&(b=n.data.tileBoundingRegion.minimumHeight);let f=Math.min(b??0,-11500),y=h.multiplyByScalar(u,Math.abs(f)+1,n1e);h.subtract(c,y,d.origin)}let p=n.data.pick(d,re.SCENE3D,s,!1,n1e);if(l(p))return a.cartesianToCartographic(p,gTt).height};Vf.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};Vf.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=l(i)&&i.hasWaterMask&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(l(c)){let d=this;a.fetchImage().then(function(u){c===d._oceanNormalMapResource.url&&(d._oceanNormalMap=d._oceanNormalMap&&d._oceanNormalMap.destroy(),d._oceanNormalMap=new Ft({context:e.context,source:u}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}let r=e.passes,s=e.mode;r.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,n.terrainProvider=this.terrainProvider,n.lightingFadeOutDistance=this.lightingFadeOutDistance,n.lightingFadeInDistance=this.lightingFadeInDistance,n.nightFadeOutDistance=this.nightFadeOutDistance,n.nightFadeInDistance=this.nightFadeInDistance,n.zoomedOutOceanSpecularIntensity=s===re.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=o,n.showWaterEffect=this.showWaterEffect,n.oceanNormalMap=this._oceanNormalMap,n.enableLighting=this.enableLighting,n.dynamicAtmosphereLighting=this.dynamicAtmosphereLighting,n.dynamicAtmosphereLightingFromSun=this.dynamicAtmosphereLightingFromSun,n.showGroundAtmosphere=this.showGroundAtmosphere,n.atmosphereLightIntensity=this.atmosphereLightIntensity,n.atmosphereRayleighCoefficient=this.atmosphereRayleighCoefficient,n.atmosphereMieCoefficient=this.atmosphereMieCoefficient,n.atmosphereRayleighScaleHeight=this.atmosphereRayleighScaleHeight,n.atmosphereMieScaleHeight=this.atmosphereMieScaleHeight,n.atmosphereMieAnisotropy=this.atmosphereMieAnisotropy,n.shadows=this.shadows,n.hueShift=this.atmosphereHueShift,n.saturationShift=this.atmosphereSaturationShift,n.brightnessShift=this.atmosphereBrightnessShift,n.fillHighlightColor=this.fillHighlightColor,n.showSkirts=this.showSkirts,n.backFaceCulling=this.backFaceCulling,n.vertexShadowDarkness=this.vertexShadowDarkness,n.undergroundColor=this._undergroundColor,n.undergroundColorAlphaByDistance=this._undergroundColorAlphaByDistance,n.lambertDiffuseMultiplier=this.lambertDiffuseMultiplier,t.beginFrame(e))};Vf.prototype.render=function(e){this.show&&(l(this._material)&&this._material.update(e.context),this._surface.render(e))};Vf.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};Vf.prototype.isDestroyed=function(){return!1};Vf.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),he(this)};var KN=Vf;var iQi=x(T(),1);var f4i=x(T(),1);var r4i=x(T(),1);var qji=x(T(),1);function xTt(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var JN=xTt;var b1e={},TTt=32.184,_Tt=2451545,i1e=-.0529921,o1e=-.1059842,r1e=13.0120009,s1e=13.3407154,a1e=.9856003,c1e=26.4057084,l1e=13.064993,d1e=.3287146,u1e=1.7484877,m1e=-.1589763,h1e=.0036096,f1e=.1643573,p1e=12.9590088,Nee=new Q;b1e.ComputeMoon=function(e,t){l(e)||(e=Q.now()),Nee=Q.addSeconds(e,TTt,Nee);let n=Q.totalDays(Nee)-_Tt,i=n/si.DAYS_PER_JULIAN_CENTURY,o=(125.045+i1e*n)*W.RADIANS_PER_DEGREE,r=(250.089+o1e*n)*W.RADIANS_PER_DEGREE,s=(260.008+r1e*n)*W.RADIANS_PER_DEGREE,a=(176.625+s1e*n)*W.RADIANS_PER_DEGREE,c=(357.529+a1e*n)*W.RADIANS_PER_DEGREE,d=(311.589+c1e*n)*W.RADIANS_PER_DEGREE,u=(134.963+l1e*n)*W.RADIANS_PER_DEGREE,m=(276.617+d1e*n)*W.RADIANS_PER_DEGREE,p=(34.226+u1e*n)*W.RADIANS_PER_DEGREE,b=(15.134+m1e*n)*W.RADIANS_PER_DEGREE,f=(119.743+h1e*n)*W.RADIANS_PER_DEGREE,y=(239.961+f1e*n)*W.RADIANS_PER_DEGREE,_=(25.053+p1e*n)*W.RADIANS_PER_DEGREE,S=Math.sin(o),A=Math.sin(r),Z=Math.sin(s),R=Math.sin(a),G=Math.sin(c),E=Math.sin(d),v=Math.sin(u),I=Math.sin(m),X=Math.sin(p),Y=Math.sin(b),g=Math.sin(f),C=Math.sin(y),V=Math.sin(_),L=Math.cos(o),P=Math.cos(r),N=Math.cos(s),O=Math.cos(a),M=Math.cos(c),D=Math.cos(d),w=Math.cos(u),z=Math.cos(m),K=Math.cos(p),ee=Math.cos(b),H=Math.cos(f),te=Math.cos(y),q=Math.cos(_),de=(269.9949+.0031*i-3.8787*S-.1204*A+.07*Z-.0172*R+.0072*E-.0052*Y+.0043*V)*W.RADIANS_PER_DEGREE,ye=(66.5392+.013*i+1.5419*L+.0239*P-.0278*N+.0068*O-.0029*D+9e-4*w+8e-4*ee-9e-4*q)*W.RADIANS_PER_DEGREE,le=(38.3213+13.17635815*n-14e-13*n*n+3.561*S+.1208*A-.0642*Z+.0158*R+.0252*G-.0066*E-.0047*v-.0046*I+.0028*X+.0052*Y+.004*g+.0019*C-.0044*V)*W.RADIANS_PER_DEGREE,Ce=(13.17635815-14e-13*(2*n)+3.561*L*i1e+.1208*P*o1e-.0642*N*r1e+.0158*O*s1e+.0252*M*a1e-.0066*D*c1e-.0047*w*l1e-.0046*z*d1e+.0028*K*u1e+.0052*ee*m1e+.004*H*h1e+.0019*te*f1e-.0044*q*p1e)/86400*W.RADIANS_PER_DEGREE;return l(t)||(t=new JN),t.rightAscension=de,t.declination=ye,t.rotation=le,t.rotationRate=Ce,t};var jN=b1e;function g1e(e){(!l(e)||typeof e!="function")&&(e=jN.ComputeMoon),this._computeFunction=e}var STt=new h,ATt=new h,ZTt=new h;function CTt(e,t,n){let i=STt;i.x=Math.cos(e+W.PI_OVER_TWO),i.y=Math.sin(e+W.PI_OVER_TWO),i.z=0;let o=Math.cos(t),r=ZTt;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=h.cross(r,i,ATt);return l(n)||(n=new $),n[0]=i.x,n[1]=s.x,n[2]=r.x,n[3]=i.y,n[4]=s.y,n[5]=r.y,n[6]=i.z,n[7]=s.z,n[8]=r.z,n}var RTt=new $,VTt=new Ne;g1e.prototype.evaluate=function(e,t){l(e)||(e=Q.now());let n=this._computeFunction(e),i=CTt(n.rightAscension,n.declination,t),o=W.zeroToTwoPi(n.rotation),r=Ne.fromAxisAngle(h.UNIT_Z,o,VTt),s=$.fromQuaternion(Ne.conjugate(r,r),RTt);return $.multiply(s,i,i)};var QN=g1e;var U4i=x(T(),1);var b4i=x(T(),1),L1=`uniform vec3 u_radii; +uniform vec3 u_oneOverEllipsoidRadiiSquared; + +in vec3 v_positionEC; + +vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side) +{ + vec3 positionEC = czm_pointAlongRay(ray, intersection); + vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; + vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); + vec3 sphericalNormal = normalize(positionMC / u_radii); + vec3 normalMC = geodeticNormal * side; // normalized surface normal (always facing the viewer) in model coordinates + vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordinates + + vec2 st = czm_ellipsoidTextureCoordinates(sphericalNormal); + vec3 positionToEyeEC = -positionEC; + + czm_materialInput materialInput; + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = (positionMC + u_radii) / u_radii; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef ONLY_SUN_LIGHTING + return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC); +#else + return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} + +void main() +{ + // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii + // in the vertex shader. Only when it is larger than some constant, march along the ray. + // Otherwise perform one intersection test which will be the common case. + + // Test if the ray intersects a sphere with the ellipsoid's maximum radius. + // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test + // may cause false negatives. This will discard fragments before marching the ray forward. + float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5; + vec3 direction = normalize(v_positionEC); + vec3 ellipsoidCenter = czm_modelView[3].xyz; + + float t1 = -1.0; + float t2 = -1.0; + + float b = -2.0 * dot(direction, ellipsoidCenter); + float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius; + + float discriminant = b * b - 4.0 * c; + if (discriminant >= 0.0) { + t1 = (-b - sqrt(discriminant)) * 0.5; + t2 = (-b + sqrt(discriminant)) * 0.5; + } + + if (t1 < 0.0 && t2 < 0.0) { + discard; + } + + float t = min(t1, t2); + if (t < 0.0) { + t = 0.0; + } + + // March ray forward to intersection with larger sphere and find + czm_ray ray = czm_ray(t * direction, direction); + + vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z); + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii); + + if (czm_isEmpty(intersection)) + { + discard; + } + + // If the viewer is outside, compute outsideFaceColor, with normals facing outward. + vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0); + + // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward. + vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0); + + out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a); + out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a); + +#if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + t = (intersection.start != 0.0) ? intersection.start : intersection.stop; + vec3 positionEC = czm_pointAlongRay(ray, t); + vec4 positionCC = czm_projection * vec4(positionEC, 1.0); +#ifdef LOG_DEPTH + czm_writeLogDepth(1.0 + positionCC.w); +#else + float z = positionCC.z / positionCC.w; + + float n = czm_depthRange.near; + float f = czm_depthRange.far; + + gl_FragDepth = (z * (f - n) + f + n) * 0.5; +#endif +#endif +} +`;var y4i=x(T(),1),W1=`in vec3 position; + +uniform vec3 u_radii; + +out vec3 v_positionEC; + +void main() +{ + // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates. + // Scale to consider the radii. We could also do this once on the CPU when using the BoxGeometry, + // but doing it here allows us to change the radii without rewriting the vertex data, and + // allows all ellipsoids to reuse the same vertex data. + vec4 p = vec4(u_radii * position, 1.0); + + vec4 pEC = czm_modelView * p; + v_positionEC = pEC.xyz; // position in eye coordinates + gl_Position = czm_projection * pEC; + // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums + // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the + // ellipsoid (does not write depth) that was rendered in the farther frustum. + // + // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates + // artifacts since some fragments can be alpha blended twice. This is solved by only rendering + // the ellipsoid in the closest frustum to the viewer. + gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far); + + czm_vertexLogDepth(); +} +`;var wee={position:0};function A3(e){e=e??B.EMPTY_OBJECT,this.center=h.clone(e.center??h.ZERO),this._center=new h,this.radii=h.clone(e.radii),this._radii=new h,this._oneOverEllipsoidRadiiSquared=new h,this._boundingSphere=new ue,this.modelMatrix=F.clone(e.modelMatrix??F.IDENTITY),this._modelMatrix=new F,this._computedModelMatrix=new F,this.show=e.show??!0,this.material=e.material??Di.fromType(Di.ColorType),this._material=void 0,this._translucent=void 0,this.id=e.id,this._id=void 0,this.debugShowBoundingVolume=e.debugShowBoundingVolume??!1,this.onlySunLighting=e.onlySunLighting??!1,this._onlySunLighting=!1,this._depthTestEnabled=e.depthTestEnabled??!0,this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new at({owner:e._owner??this}),this._pickCommand=new at({owner:e._owner??this,pickOnly:!0});let t=this;this._uniforms={u_radii:function(){return t.radii},u_oneOverEllipsoidRadiiSquared:function(){return t._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return t._pickId.color}}}function GTt(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(l(t))return t;let n=gc.createGeometry(gc.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Me.POSITION_ONLY}));return t=wn.fromGeometry({context:e,geometry:n,attributeLocations:wee,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}A3.prototype.update=function(e){if(!this.show||e.mode!==re.SCENE3D||!l(this.center)||!l(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!l(this._rs)||i)&&(this._translucent=n,this._rs=Be.fromCache({cull:{enabled:!0,face:Ii.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?nn.ALPHA_BLEND:void 0})),l(this._va)||(this._va=GTt(t));let o=!1,r=this.radii;if(!h.equals(this._radii,r)){h.clone(r,this._radii);let y=this._oneOverEllipsoidRadiiSquared;y.x=1/(r.x*r.x),y.y=1/(r.y*r.y),y.z=1/(r.z*r.z),o=!0}(!F.equals(this.modelMatrix,this._modelMatrix)||!h.equals(this.center,this._center))&&(F.clone(this.modelMatrix,this._modelMatrix),h.clone(this.center,this._center),F.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),o=!0),o&&(h.clone(h.ZERO,this._boundingSphere.center),this._boundingSphere.radius=h.maximumComponent(r),ue.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));let s=this._material!==this.material;this._material=this.material,this._material.update(t);let a=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;let c=e.useLogDepth,d=this._useLogDepth!==c;this._useLogDepth=c;let u=this._colorCommand,m,p;(s||a||i||d)&&(m=new He({sources:[W1]}),p=new He({sources:[this.material.shaderSource,L1]}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(m.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._sp=tn.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:p,attributeLocations:wee}),u.vertexArray=this._va,u.renderState=this._rs,u.shaderProgram=this._sp,u.uniformMap=vt(this._uniforms,this.material._uniforms),u.executeInClosestFrustum=n);let b=e.commandList,f=e.passes;if(f.render&&(u.boundingVolume=this._boundingSphere,u.debugShowBoundingVolume=this.debugShowBoundingVolume,u.modelMatrix=this._computedModelMatrix,u.pass=n?Le.TRANSLUCENT:Le.OPAQUE,b.push(u)),f.pick){let y=this._pickCommand;(!l(this._pickId)||this._id!==this.id)&&(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=t.createPickId({primitive:this,id:this.id})),(s||a||!l(this._pickSP)||d)&&(m=new He({sources:[W1]}),p=new He({sources:[this.material.shaderSource,L1],pickColorQualifier:"uniform"}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(m.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._pickSP=tn.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:m,fragmentShaderSource:p,attributeLocations:wee}),y.vertexArray=this._va,y.renderState=this._rs,y.shaderProgram=this._pickSP,y.uniformMap=vt(vt(this._uniforms,this._pickUniforms),this.material._uniforms),y.executeInClosestFrustum=n),y.boundingVolume=this._boundingSphere,y.modelMatrix=this._computedModelMatrix,y.pass=n?Le.TRANSLUCENT:Le.OPAQUE,b.push(y)}};A3.prototype.isDestroyed=function(){return!1};A3.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),he(this)};var qN=A3;function $N(e){e=e??B.EMPTY_OBJECT;let t=e.textureUrl;l(t)||(t=$t("Assets/Textures/moonSmall.jpg")),this.show=e.show??!0,this.textureUrl=t,this._ellipsoid=e.ellipsoid??ie.MOON,this.onlySunLighting=e.onlySunLighting??!0,this._ellipsoidPrimitive=new qN({radii:this.ellipsoid.radii,material:Di.fromType(Di.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new QN}Object.defineProperties($N.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var Z3=new $,ETt=new $,LTt=new h,C3=[];$N.prototype.update=function(e){if(!this.show)return;let t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;let n=e.time;l(xt.computeIcrfToFixedMatrix(n,Z3))||xt.computeTemeToPseudoFixedMatrix(n,Z3);let i=this._axes.evaluate(n,ETt);$.transpose(i,i),$.multiply(Z3,i,i);let o=Gx.computeMoonPositionInEarthInertialFrame(n,LTt);$.multiplyByVector(Z3,o,o),F.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=C3,C3.length=0,t.update(e),e.commandList=r,C3.length===1?C3[0]:void 0};$N.prototype.isDestroyed=function(){return!1};$N.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),he(this)};var ew=$N;var hfo=x(T(),1);var rQi=x(T(),1);var Mee=[],kee=[];function WTt(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=Mee,d=kee,u,m;for(u=0;u<s;++u)c[u]=e[i+u];for(m=0;m<a;++m)d[m]=e[o+m+1];u=0,m=0;for(let p=i;p<=r;++p){let b=c[u],f=d[m];u<s&&(m>=a||t(b,f,n)<=0)?(e[p]=b,++u):m<a&&(e[p]=f,++m)}}function Uee(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);Uee(e,t,n,i,r),Uee(e,t,n,r+1,o),WTt(e,t,n,i,r,o)}function vTt(e,t,n){let i=e.length,o=Math.ceil(i*.5);Mee.length=o,kee.length=o,Uee(e,t,n,0,i-1),Mee.length=0,kee.length=0}var Qp=vTt;var fQi=x(T(),1);function al(e,t){this._occluderPosition=h.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=t}var R3=new h;Object.defineProperties(al.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=h.clone(e,this._cameraPosition);let t=h.subtract(this._occluderPosition,e,R3),n=h.magnitudeSquared(t),i=this._occluderRadius*this._occluderRadius,o,r,s;if(n>i){o=Math.sqrt(n-i),n=1/Math.sqrt(n),r=h.multiplyByScalar(t,n,R3);let a=o*o*n;s=h.add(e,h.multiplyByScalar(r,a,R3),R3)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});al.fromBoundingSphere=function(e,t,n){return l(n)?(h.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new al(e,t)};var x1e=new h;al.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=h.subtract(e,this._occluderPosition,x1e),n=this._occluderRadius;if(n=h.magnitudeSquared(t)-n*n,n>0)return n=Math.sqrt(n)+this._horizonDistance,t=h.subtract(e,this._cameraPosition,t),n*n>h.magnitudeSquared(t)}return!1};var FTt=new h;al.prototype.isBoundingSphereVisible=function(e){let t=h.clone(e.center,FTt),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,x1e),o=this._occluderRadius-n;if(o=h.magnitudeSquared(i)-o*o,n<this._occluderRadius)return o>0?(o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i),o*o+n*n>h.magnitudeSquared(i)):!1;if(o>0){i=h.subtract(t,this._cameraPosition,i);let r=h.magnitudeSquared(i),s=this._occluderRadius*this._occluderRadius,a=n*n;return(this._horizonDistance*this._horizonDistance+s)*a>r*s?!0:(o=Math.sqrt(o)+this._horizonDistance,o*o+a>r)}return!0}return!1};var ITt=new h;al.prototype.computeVisibility=function(e){let t=h.clone(e.center),n=e.radius;if(n>this._occluderRadius)return Nr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,ITt),o=this._occluderRadius-n,r=h.magnitudeSquared(i);if(o=r-o*o,o>0){o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i);let s=h.magnitudeSquared(i);return o*o+n*n<s?Nr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?Nr.FULL:Nr.PARTIAL):(i=h.subtract(t,this._horizonPlanePosition,i),h.dot(i,this._horizonPlaneNormal)>-n?Nr.PARTIAL:Nr.FULL))}}return Nr.NONE};var V3=new h;al.computeOccludeePoint=function(e,t,n){let i=h.clone(t),o=h.clone(e.center),r=e.radius,s=n.length,a=h.normalize(h.subtract(i,o,V3),V3),c=-h.dot(a,o),d=al._anyRotationVector(o,a,c),u=al._horizonToPlaneNormalDotProduct(e,a,c,d,n[0]);if(!u)return;let m;for(let b=1;b<s;++b){if(m=al._horizonToPlaneNormalDotProduct(e,a,c,d,n[b]),!m)return;m<u&&(u=m)}if(u<.0017453283658983088)return;let p=r/u;return h.add(o,h.multiplyByScalar(a,p,V3),V3)};var PTt=[];al.computeOccludeePointFromRectangle=function(e,t){t=t??ie.default;let n=se.subsample(e,t,0,PTt),i=ue.fromPoints(n),o=h.ZERO;if(!h.equals(o,i.center))return al.computeOccludeePoint(new ue(o,t.minimumRadius),i.center,n)};var XTt=new h;al._anyRotationVector=function(e,t,n){let i=h.abs(t,XTt),o=i.x>i.y?0:1;(o===0&&i.z>i.x||o===1&&i.z>i.y)&&(o=2);let r=new h,s;o===0?(i.x=e.x,i.y=e.y+1,i.z=e.z+1,s=h.UNIT_X):o===1?(i.x=e.x+1,i.y=e.y,i.z=e.z+1,s=h.UNIT_Y):(i.x=e.x+1,i.y=e.y+1,i.z=e.z,s=h.UNIT_Z);let a=(h.dot(t,i)+n)/-h.dot(t,s);return h.normalize(h.subtract(h.add(i,h.multiplyByScalar(s,a,r),i),e,i),i)};var YTt=new h;al._rotationVector=function(e,t,n,i,o){let r=h.subtract(i,e,YTt);if(r=h.normalize(r,r),h.dot(t,r)<.9999999847691291){let s=h.cross(t,r,r);if(h.magnitude(s)>W.EPSILON13)return h.normalize(s,new h)}return o};var Dee=new h,NTt=new h,G3=new h,y1e=new h;al._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=h.clone(o,Dee),s=h.clone(e.center,NTt),a=e.radius,c=h.subtract(s,r,G3),d=h.magnitudeSquared(c),u=a*a;if(d<u)return!1;let m=d-u,p=Math.sqrt(m),f=1/Math.sqrt(d),_=p*f*p;c=h.normalize(c,c);let S=h.add(r,h.multiplyByScalar(c,_,y1e),y1e),A=Math.sqrt(m-_*_),Z=this._rotationVector(s,t,n,r,i),R=h.fromElements(Z.x*Z.x*c.x+(Z.x*Z.y-Z.z)*c.y+(Z.x*Z.z+Z.y)*c.z,(Z.x*Z.y+Z.z)*c.x+Z.y*Z.y*c.y+(Z.y*Z.z-Z.x)*c.z,(Z.x*Z.z-Z.y)*c.x+(Z.y*Z.z+Z.x)*c.y+Z.z*Z.z*c.z,Dee);R=h.normalize(R,R);let G=h.multiplyByScalar(R,A,Dee);Z=h.normalize(h.subtract(h.add(S,G,G3),s,G3),G3);let E=h.dot(t,Z);Z=h.normalize(h.subtract(h.subtract(S,G,Z),s,Z),Z);let v=h.dot(t,Z);return E<v?E:v};var tw=al;var EQi=x(T(),1);var AQi=x(T(),1);function qp(e){e=e??B.EMPTY_OBJECT,this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=e.near??1,this._near=this.near,this.far=e.far??5e8,this._far=this.far,this._cullingVolume=new Us,this._perspectiveMatrix=new F,this._infinitePerspective=new F}function Oee(e){let{top:t,bottom:n,right:i,left:o,near:r,far:s}=e;(t!==e._top||n!==e._bottom||o!==e._left||i!==e._right||r!==e._near||s!==e._far)&&(e._left=o,e._right=i,e._top=t,e._bottom=n,e._near=r,e._far=s,e._perspectiveMatrix=F.computePerspectiveOffCenter(o,i,n,t,r,s,e._perspectiveMatrix),e._infinitePerspective=F.computeInfinitePerspectiveOffCenter(o,i,n,t,r,e._infinitePerspective))}Object.defineProperties(qp.prototype,{projectionMatrix:{get:function(){return Oee(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return Oee(this),this._infinitePerspective}}});var wTt=new h,MTt=new h,kTt=new h,UTt=new h;qp.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,d=this.far,u=h.cross(t,n,wTt),m=MTt;h.multiplyByScalar(t,c,m),h.add(e,m,m);let p=kTt;h.multiplyByScalar(t,d,p),h.add(e,p,p);let b=UTt;h.multiplyByScalar(u,a,b),h.add(m,b,b),h.subtract(b,e,b),h.normalize(b,b),h.cross(b,n,b),h.normalize(b,b);let f=i[0];return l(f)||(f=i[0]=new ce),f.x=b.x,f.y=b.y,f.z=b.z,f.w=-h.dot(b,e),h.multiplyByScalar(u,s,b),h.add(m,b,b),h.subtract(b,e,b),h.cross(n,b,b),h.normalize(b,b),f=i[1],l(f)||(f=i[1]=new ce),f.x=b.x,f.y=b.y,f.z=b.z,f.w=-h.dot(b,e),h.multiplyByScalar(n,r,b),h.add(m,b,b),h.subtract(b,e,b),h.cross(u,b,b),h.normalize(b,b),f=i[2],l(f)||(f=i[2]=new ce),f.x=b.x,f.y=b.y,f.z=b.z,f.w=-h.dot(b,e),h.multiplyByScalar(n,o,b),h.add(m,b,b),h.subtract(b,e,b),h.cross(b,u,b),h.normalize(b,b),f=i[3],l(f)||(f=i[3]=new ce),f.x=b.x,f.y=b.y,f.z=b.z,f.w=-h.dot(b,e),f=i[4],l(f)||(f=i[4]=new ce),f.x=t.x,f.y=t.y,f.z=t.z,f.w=-h.dot(t,m),h.negate(t,b),f=i[5],l(f)||(f=i[5]=new ce),f.x=b.x,f.y=b.y,f.z=b.z,f.w=-h.dot(b,p),this._cullingVolume};qp.prototype.getPixelDimensions=function(e,t,n,i,o){Oee(this);let r=1/this.near,s=this.top*r,a=2*i*n*s/t;s=this.right*r;let c=2*i*n*s/e;return o.x=c,o.y=a,o};qp.prototype.clone=function(e){return l(e)||(e=new qp),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};qp.prototype.equals=function(e){return l(e)&&e instanceof qp&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};qp.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof qp&&W.equalsEpsilon(this.right,e.right,t,n)&&W.equalsEpsilon(this.left,e.left,t,n)&&W.equalsEpsilon(this.top,e.top,t,n)&&W.equalsEpsilon(this.bottom,e.bottom,t,n)&&W.equalsEpsilon(this.near,e.near,t,n)&&W.equalsEpsilon(this.far,e.far,t,n)};var $l=qp;function Md(e){e=e??B.EMPTY_OBJECT,this._offCenterFrustum=new $l,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=e.near??1,this._near=this.near,this.far=e.far??5e8,this._far=this.far,this.xOffset=e.xOffset??0,this._xOffset=this.xOffset,this.yOffset=e.yOffset??0,this._yOffset=this.yOffset}Md.packedLength=6;Md.pack=function(e,t,n){return n=n??0,t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};Md.unpack=function(e,t,n){return t=t??0,l(n)||(n=new Md),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function Gf(e){if(!(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset))return;e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset;let n=e._offCenterFrustum;n.top=e.near*Math.tan(.5*e._fovy),n.bottom=-n.top,n.right=e.aspectRatio*n.top,n.left=-n.right,n.near=e.near,n.far=e.far,n.right+=e.xOffset,n.left+=e.xOffset,n.top+=e.yOffset,n.bottom+=e.yOffset}Object.defineProperties(Md.prototype,{projectionMatrix:{get:function(){return Gf(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return Gf(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return Gf(this),this._fovy}},sseDenominator:{get:function(){return Gf(this),this._sseDenominator}},offCenterFrustum:{get:function(){return Gf(this),this._offCenterFrustum}}});Md.prototype.computeCullingVolume=function(e,t,n){return Gf(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Md.prototype.getPixelDimensions=function(e,t,n,i,o){return Gf(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};Md.prototype.clone=function(e){return l(e)||(e=new Md),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};Md.prototype.equals=function(e){return!l(e)||!(e instanceof Md)?!1:(Gf(this),Gf(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Md.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof Md)?!1:(Gf(this),Gf(e),W.equalsEpsilon(this.fov,e.fov,t,n)&&W.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var Mi=Md;var DQi=x(T(),1);var WQi=x(T(),1),nw=`in vec2 v_textureCoordinates; +const float M_PI = 3.141592653589793; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float alphaRoughness, vec3 N) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float phi = 2.0 * M_PI * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +/** + * Estimate the geometric self-shadowing of the microfacets in a surface, + * using the Smith Joint GGX visibility function. + * Note: Vis = G / (4 * NdotL * NdotV) + * see Eric Heitz. 2014. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs. Journal of Computer Graphics Techniques, 3 + * see Real-Time Rendering. Page 331 to 336. + * see https://google.github.io/filament/Filament.md.html#materialsystem/specularbrdf/geometricshadowing(specularg) + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source. + * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera. + */ +float smithVisibilityGGX(float alphaRoughness, float NdotL, float NdotV) +{ + float alphaRoughnessSq = alphaRoughness * alphaRoughness; + + float GGXV = NdotL * sqrt(NdotV * NdotV * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + float GGXL = NdotV * sqrt(NdotL * NdotL * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + + float GGX = GGXV + GGXL; // 2.0 if NdotL = NdotV = 1.0 + if (GGX > 0.0) + { + return 0.5 / GGX; // 1/4 if NdotL = NdotV = 1.0 + } + return 0.0; +} + +vec2 integrateBrdf(float roughness, float NdotV) +{ + vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV); + float A = 0.0; + float B = 0.0; + const int NumSamples = 1024; + float alphaRoughness = roughness * roughness; + for (int i = 0; i < NumSamples; i++) + { + vec2 xi = hammersley2D(i, NumSamples); + vec3 H = importanceSampleGGX(xi, alphaRoughness, vec3(0.0, 0.0, 1.0)); + vec3 L = 2.0 * dot(V, H) * H - V; + float NdotL = clamp(L.z, 0.0, 1.0); + float NdotH = clamp(H.z, 0.0, 1.0); + float VdotH = clamp(dot(V, H), 0.0, 1.0); + if (NdotL > 0.0) + { + float G = smithVisibilityGGX(alphaRoughness, NdotL, NdotV); + float G_Vis = 4.0 * G * VdotH * NdotL / NdotH; + float Fc = pow(1.0 - VdotH, 5.0); + A += (1.0 - Fc) * G_Vis; + B += Fc * G_Vis; + } + } + return vec2(A, B) / float(NumSamples); +} + +void main() +{ + out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0); +} +`;function iw(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(iw.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function DTt(e,t,n){let i=t.createViewportQuadCommand(nw,{framebuffer:n,renderState:Be.fromCache({viewport:new it(0,0,256,256)})});e._drawCommand=i}iw.prototype.update=function(e){if(!l(this._colorTexture)){let t=e.context,n=new Ft({context:t,width:256,height:256,pixelFormat:Qe.RGBA,pixelDatatype:ze.UNSIGNED_BYTE,sampler:Ht.NEAREST});this._colorTexture=n;let i=new is({context:t,colorTextures:[n],destroyAttachments:!1});DTt(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};iw.prototype.isDestroyed=function(){return!1};iw.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),he(this)};var ow=iw;var F8i=x(T(),1);var t8i=x(T(),1);var A1e={};function OTt(e,t,n){let i,o,r;if(e instanceof Mi){let s=Math.tan(.5*e.fovy);return i=e.near,o=e.near*s,r=e.aspectRatio*o,Math.max(t*i/r,n*i/o)}else if(e instanceof $l)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var BTt=new h,T1e=new h;function Z1e(e,t,n,i){if(l(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(d){let u=n(d);if(d<=.5){let p=(u-o)/a;return W.lerp(e,-W.PI_OVER_TWO,p)}let m=(u-r)/c;return W.lerp(-W.PI_OVER_TWO,t,1-m)}}return function(o){return W.lerp(e,t,o)}}function zee(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!l(r)){let a=e.position,c=t,d=e.up,u=e.right,m=e.frustum,p=h.subtract(a,c,BTt),b=h.magnitude(h.multiplyByScalar(d,h.dot(p,d),T1e)),f=h.magnitude(h.multiplyByScalar(u,h.dot(p,u),T1e));r=Math.min(OTt(m,b,f)*.2,1e9)}if(s<r){let d=-Math.pow((r-n)*1e6,.125),u=Math.pow((r-i)*1e6,1/8);return function(m){let p=m*(u-d)+d;return-Math.pow(p,8)/1e6+r}}return function(a){return W.lerp(n,i,a)}}function rw(e,t){return W.equalsEpsilon(e,W.TWO_PI,W.EPSILON11)&&(e=0),t>e+Math.PI?e+=W.TWO_PI:t<e-Math.PI&&(e-=W.TWO_PI),e}var C1e=new h;function zTt(e,t,n,i,o,r,s,a){let c=e.camera,d=h.clone(c.position,C1e),u=c.pitch,m=rw(c.heading,i),p=rw(c.roll,r),b=zee(c,n,d.z,n.z,s),f=Z1e(u,o,b,a);function y(_){let S=_.time/t;c.setView({orientation:{heading:W.lerp(m,i,S),pitch:f(S),roll:W.lerp(p,r,S)}}),k.lerp(d,n,S,c.position),c.position.z=b(S)}return y}function HTt(e,t){e.longitude<t.longitude?e.longitude+=W.TWO_PI:t.longitude+=W.TWO_PI}function KTt(e,t){let n=e.longitude-t.longitude;n<-W.PI?e.longitude+=W.TWO_PI:n>W.PI&&(t.longitude+=W.TWO_PI)}var JTt=new fe,jTt=new fe;function QTt(e,t,n,i,o,r,s,a,c,d){let u=e.camera,p=e.mapProjection.ellipsoid,b=fe.clone(u.positionCartographic,JTt),f=u.pitch,y=rw(u.heading,i),_=rw(u.roll,r),S=p.cartesianToCartographic(n,jTt);b.longitude=W.zeroToTwoPi(b.longitude),S.longitude=W.zeroToTwoPi(S.longitude);let A=!1;if(l(a)){let E=W.zeroToTwoPi(a),v=Math.min(b.longitude,S.longitude),I=Math.max(b.longitude,S.longitude),X=E>=v&&E<=I;if(l(c)){let Y=Math.abs(b.longitude-S.longitude),g=W.TWO_PI-Y;(X?Y:g)<(X?g:Y)*c&&!X&&(A=!0)}else X||(A=!0)}A?HTt(b,S):KTt(b,S);let Z=zee(u,n,b.height,S.height,s),R=Z1e(f,o,Z,d);function G(){let E=b.longitude,v=S.longitude,I=b.latitude,X=S.latitude;return function(g){let C=g.time/t,V=h.fromRadians(W.lerp(E,v,C),W.lerp(I,X,C),Z(C),p);u.setView({destination:V,orientation:{heading:W.lerp(y,i,C),pitch:R(C),roll:W.lerp(_,r,C)}})}}return G()}function qTt(e,t,n,i,o,r,s){let a=e.camera,c=h.clone(a.position,C1e),d=rw(a.heading,i),u=a.frustum.right-a.frustum.left,m=zee(a,n,u,n.z,s);function p(b){let f=b.time/t;a.setView({orientation:{heading:W.lerp(d,i,f)}}),k.lerp(c,n,f,a.position);let y=m(f),_=a.frustum,S=_.top/_.right,A=(y-(_.right-_.left))*.5;_.right+=A,_.left-=A,_.top=S*_.right,_.bottom=-_.top}return p}var _1e=new fe,$Tt=new h;function Bee(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function S1e(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}A1e.createTween=function(e,t){t=t??B.EMPTY_OBJECT;let n=t.destination,i=e.mode;if(i===re.MORPHING)return Bee();let o=t.convert??!0,r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,d=t.flyOverLongitudeWeight,u=t.pitchAdjustHeight,m=t.easingFunction;o&&i!==re.SCENE3D&&(s.cartesianToCartographic(n,_1e),n=r.project(_1e,$Tt));let p=e.camera,b=t.endTransform;l(b)&&p._setTransform(b);let f=t.duration;l(f)||(f=Math.ceil(h.distance(p.position,n)/1e6)+2,f=Math.min(f,3));let y=t.heading??0,_=t.pitch??-W.PI_OVER_TWO,S=t.roll??0,A=e.screenSpaceCameraController;A.enableInputs=!1;let Z=S1e(A,t.complete),R=S1e(A,t.cancel),G=p.frustum,E=e.mode===re.SCENE2D;if(E=E&&k.equalsEpsilon(p.position,n,W.EPSILON6),E=E&&W.equalsEpsilon(Math.max(G.right-G.left,G.top-G.bottom),n.z,W.EPSILON6),E=E||e.mode!==re.SCENE2D&&h.equalsEpsilon(n,p.position,W.EPSILON10),E=E&&W.equalsEpsilon(W.negativePiToPi(y),W.negativePiToPi(p.heading),W.EPSILON10)&&W.equalsEpsilon(W.negativePiToPi(_),W.negativePiToPi(p.pitch),W.EPSILON10)&&W.equalsEpsilon(W.negativePiToPi(S),W.negativePiToPi(p.roll),W.EPSILON10),E)return Bee(Z,R);let v=new Array(4);if(v[re.SCENE2D]=qTt,v[re.SCENE3D]=QTt,v[re.COLUMBUS_VIEW]=zTt,f<=0)return Bee(function(){v[i](e,1,n,y,_,S,a,c,d,u)({time:1}),typeof Z=="function"&&Z()},R);let I=v[i](e,f,n,y,_,S,a,c,d,u);if(!l(m)){let X=p.positionCartographic.height,Y=i===re.SCENE3D?s.cartesianToCartographic(n).height:n.z;X>Y&&X>11500?m=xs.CUBIC_OUT:m=xs.QUINTIC_IN_OUT}return{duration:f,easingFunction:m,startObject:{time:0},stopObject:{time:f},update:I,complete:Z,cancel:R}};var sw=A1e;var i8i=x(T(),1),R1e={ROTATE:0,INFINITE_SCROLL:1};Object.freeze(R1e);var ed=R1e;function dn(e){this._scene=e,this._transform=F.clone(F.IDENTITY),this._invTransform=F.clone(F.IDENTITY),this._actualTransform=F.clone(F.IDENTITY),this._actualInvTransform=F.clone(F.IDENTITY),this._transformChanged=!1,this.position=new h,this._position=new h,this._positionWC=new h,this._positionCartographic=new fe,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new h,this._direction=new h,this._directionWC=new h,this.up=new h,this._up=new h,this._upWC=new h,this.right=new h,this._right=new h,this._rightWC=new h,this.frustum=new Mi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=W.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new Se,this._moveEnd=new Se,this._changed=new Se,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this._changedRoll=void 0,this.percentageChanged=.5,this._viewMatrix=new F,this._invViewMatrix=new F,I1e(this),this._mode=re.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new fe(Math.PI,W.PI_OVER_TWO)),this._max2Dfrustum=void 0,z1e(this,dn.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=h.magnitude(this.position);n+=n*dn.DEFAULT_VIEW_FACTOR,h.normalize(this.position,this.position),h.multiplyByScalar(this.position,n,this.position)}dn.TRANSFORM_2D=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);dn.TRANSFORM_2D_INVERSE=F.inverseTransformation(dn.TRANSFORM_2D,new F);dn.DEFAULT_VIEW_RECTANGLE=se.fromDegrees(-95,-20,-70,90);dn.DEFAULT_VIEW_FACTOR=.5;dn.DEFAULT_OFFSET=new Dm(0,-W.PI_OVER_FOUR,0);function I1e(e){F.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),F.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),F.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function e_t(e){if(!l(e._oldPositionWC))e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC);else{e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;let t=h.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=h.magnitude(t),e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=Ni()):e.timeSinceMoved=Math.max(Ni()-e._lastMovedTimestamp,0)/1e3}}dn.prototype.canPreloadFlight=function(){return l(this._currentFlight)&&this._mode!==re.SCENE2D};dn.prototype._updateCameraChanged=function(){let e=this;if(e_t(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;l(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%W.TWO_PI;i=i>W.PI?W.TWO_PI-i:i;let o=i/Math.PI;o>t&&(e._changedHeading=n);let r=e.roll;l(e._changedRoll)||(e._changedRoll=r);let s=Math.abs(e._changedRoll-r)%W.TWO_PI;s=s>W.PI?W.TWO_PI-s:s;let a=s/Math.PI;if(a>t&&(e._changedRoll=r),(a>t||o>t)&&e._changed.raiseEvent(Math.max(a,o)),e._mode===re.SCENE2D){if(!l(e._changedFrustum)){e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let p=e.position,b=e._changedPosition,f=e.frustum,y=e._changedFrustum,_=p.x+f.left,S=p.x+f.right,A=b.x+y.left,Z=b.x+y.right,R=p.y+f.bottom,G=p.y+f.top,E=b.y+y.bottom,v=b.y+y.top,I=Math.max(_,A),X=Math.min(S,Z),Y=Math.max(R,E),g=Math.min(G,v),C;if(I>=X||Y>=G)C=1;else{let V=y;_<A&&S>Z&&R<E&&G>v&&(V=f),C=1-(X-I)*(g-Y)/((V.right-V.left)*(V.top-V.bottom))}C>t&&(e._changed.raiseEvent(C),e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!l(e._changedDirection)){e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection);return}let c=W.acosClamped(h.dot(e.directionWC,e._changedDirection)),d;l(e.frustum.fovy)?d=c/(e.frustum.fovy*.5):d=c;let m=h.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(d>t||m>t)&&(e._changed.raiseEvent(Math.max(d,m)),e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection))};function t_t(e){xt.basisTo2D(e._projection,e._transform,e._actualTransform)}var n_t=new fe,i_t=new h,E3=new h,o_t=new ce,r_t=new ce,s_t=new ce,a_t=new ce,c_t=new ce;function l_t(e){let t=e._projection,n=t.ellipsoid,i=F.getColumn(e._transform,3,o_t),o=n.cartesianToCartographic(i,n_t),r=t.project(o,i_t),s=r_t;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=ce.clone(ce.UNIT_X,c_t),c=ce.add(F.getColumn(e._transform,0,E3),i,E3);n.cartesianToCartographic(c,o),t.project(o,r);let d=s_t;d.x=r.z,d.y=r.x,d.z=r.y,d.w=0,h.subtract(d,s,d),d.x=0;let u=a_t;if(h.magnitudeSquared(d)>W.EPSILON10)h.cross(a,d,u);else{let m=ce.add(F.getColumn(e._transform,1,E3),i,E3);n.cartesianToCartographic(m,o),t.project(o,r),u.x=r.z,u.y=r.x,u.z=r.y,u.w=0,h.subtract(u,s,u),u.x=0,h.magnitudeSquared(u)<W.EPSILON10&&(ce.clone(ce.UNIT_Y,d),ce.clone(ce.UNIT_Z,u))}h.cross(u,a,d),h.normalize(d,d),h.cross(a,d,u),h.normalize(u,u),F.setColumn(e._actualTransform,0,d,e._actualTransform),F.setColumn(e._actualTransform,1,u,e._actualTransform),F.setColumn(e._actualTransform,2,a,e._actualTransform),F.setColumn(e._actualTransform,3,s,e._actualTransform)}var Hee=new h;function ll(e){let t=e._mode,n=!1,i=0;t===re.SCENE2D&&(i=e.frustum.right-e.frustum.left,n=i!==e._positionCartographic.height);let o=e._position,r=!h.equals(o,e.position)||n;r&&(o=h.clone(e.position,e._position));let s=e._direction,a=!h.equals(s,e.direction);a&&(h.normalize(e.direction,e.direction),s=h.clone(e.direction,e._direction));let c=e._up,d=!h.equals(c,e.up);d&&(h.normalize(e.up,e.up),c=h.clone(e.up,e._up));let u=e._right,m=!h.equals(u,e.right);m&&(h.normalize(e.right,e.right),u=h.clone(e.right,e._right));let p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(F.inverseTransformation(e._transform,e._invTransform),e._mode===re.COLUMBUS_VIEW||e._mode===re.SCENE2D?F.equals(F.IDENTITY,e._transform)?F.clone(dn.TRANSFORM_2D,e._actualTransform):e._mode===re.COLUMBUS_VIEW?t_t(e):l_t(e):F.clone(e._transform,e._actualTransform),F.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let b=e._actualTransform;if(r||p)if(e._positionWC=F.multiplyByPoint(b,o,e._positionWC),t===re.SCENE3D||t===re.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let f=Hee;f.x=e._positionWC.y,f.y=e._positionWC.z,f.z=e._positionWC.x,t===re.SCENE2D&&(f.z=i),e._projection.unproject(f,e._positionCartographic)}if(a||d||m){let f=h.dot(s,h.cross(c,u,Hee));if(Math.abs(1-f)>W.EPSILON2){let y=1/h.magnitudeSquared(c),_=h.dot(c,s)*y,S=h.multiplyByScalar(s,_,Hee);c=h.normalize(h.subtract(c,S,e._up),e._up),h.clone(c,e.up),u=h.cross(s,c,e._right),h.clone(u,e.right)}}(a||p)&&(e._directionWC=F.multiplyByPointAsVector(b,s,e._directionWC),h.normalize(e._directionWC,e._directionWC)),(d||p)&&(e._upWC=F.multiplyByPointAsVector(b,c,e._upWC),h.normalize(e._upWC,e._upWC)),(m||p)&&(e._rightWC=F.multiplyByPointAsVector(b,u,e._rightWC),h.normalize(e._rightWC,e._rightWC)),(r||a||d||m||p)&&I1e(e)}function P1e(e,t){let n;return W.equalsEpsilon(Math.abs(e.z),1,W.EPSILON3)?n=Math.atan2(t.y,t.x)-W.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-W.PI_OVER_TWO,W.TWO_PI-W.zeroToTwoPi(n)}function X1e(e){return W.PI_OVER_TWO-W.acosClamped(e.z)}function Y1e(e,t,n){let i=0;return W.equalsEpsilon(Math.abs(e.z),1,W.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=W.zeroToTwoPi(i+W.TWO_PI)),i}var v3=new F,F3=new F;Object.defineProperties(dn.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return ll(this),this._invTransform}},viewMatrix:{get:function(){return ll(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return ll(this),this._invViewMatrix}},positionCartographic:{get:function(){return ll(this),this._positionCartographic}},positionWC:{get:function(){return ll(this),this._positionWC}},directionWC:{get:function(){return ll(this),this._directionWC}},upWC:{get:function(){return ll(this),this._upWC}},rightWC:{get:function(){return ll(this),this._rightWC}},heading:{get:function(){if(this._mode!==re.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,v3),n=xt.eastNorthUpToFixedFrame(this.positionWC,e,F3);this._setTransform(n);let i=P1e(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==re.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,v3),n=xt.eastNorthUpToFixedFrame(this.positionWC,e,F3);this._setTransform(n);let i=X1e(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==re.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,v3),n=xt.eastNorthUpToFixedFrame(this.positionWC,e,F3);this._setTransform(n);let i=Y1e(this.direction,this.up,this.right);return this._setTransform(t),i}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}});dn.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==re.MORPHING,t=this._mode===re.SCENE2D),t){let n=this._max2Dfrustum=this.frustum.clone(),i=2,o=n.top/n.right;n.right=this._maxCoord.x*i,n.left=-n.right,n.top=o*n.right,n.bottom=-n.top}this._mode===re.SCENE2D&&k1e(this,this.position)};var d_t=new h,u_t=new h,m_t=new h;dn.prototype._setTransform=function(e){let t=h.clone(this.positionWC,d_t),n=h.clone(this.upWC,u_t),i=h.clone(this.directionWC,m_t);F.clone(e,this._transform),this._transformChanged=!0,ll(this);let o=this._actualInvTransform;F.multiplyByPoint(o,t,this.position),F.multiplyByPointAsVector(o,i,this.direction),F.multiplyByPointAsVector(o,n,this.up),h.cross(this.direction,this.up,this.right),ll(this)};var h_t=new k,f_t=new _n,p_t=new h,b_t=new h;function N1e(e){if(!F.equals(F.IDENTITY,e.transform))return h.magnitude(e.position);let t=e._scene,n=t.globe,i=h_t;i.x=t.drawingBufferWidth/t.pixelRatio/2,i.y=t.drawingBufferHeight/t.pixelRatio/2;let o;if(l(n)){let a=e.getPickRay(i,f_t);o=n.pickWorldCoordinates(a,t,!0,p_t)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,b_t));let s;if(l(o)||l(r)){let a=l(r)?h.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=l(o)?h.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}dn.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof fn&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=N1e(this)))};var I3=new h,qee=new F,g_t=new F,$ee=new Ne,ete=new $,w1e=new fe;function y_t(e,t,n){let i=F.clone(e.transform,qee),o=xt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,g_t);e._setTransform(o),h.clone(h.ZERO,e.position),n.heading=n.heading-W.PI_OVER_TWO;let r=Ne.fromHeadingPitchRoll(n,$ee),s=$.fromQuaternion(r,ete);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function x_t(e,t,n,i){let o=F.clone(e.transform,qee);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,w1e);t=a.project(c,I3)}h.clone(t,e.position)}n.heading=n.heading-W.PI_OVER_TWO;let r=Ne.fromHeadingPitchRoll(n,$ee),s=$.fromQuaternion(r,ete);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function T_t(e,t,n,i){let o=F.clone(e.transform,qee);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let c=e._projection,d=c.ellipsoid.cartesianToCartographic(t,w1e);t=c.project(d,I3)}k.clone(t,e.position);let r=-t.z*.5,s=-r,a=e.frustum;if(s>r){let c=a.top/a.right;a.right=s,a.left=r,a.top=a.right*c,a.bottom=-a.top}}if(e._scene.mapMode2D===ed.ROTATE){n.heading=n.heading-W.PI_OVER_TWO,n.pitch=-W.PI_OVER_TWO,n.roll=0;let r=Ne.fromHeadingPitchRoll(n,$ee),s=$.fromQuaternion(r,ete);$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right)}e._setTransform(o)}var __t=new h,S_t=new h,A_t=new h;function M1e(e,t,n,i){let o=h.clone(n.direction,__t),r=h.clone(n.up,S_t);if(e._scene.mode===re.SCENE3D){let a=e._projection.ellipsoid,c=xt.eastNorthUpToFixedFrame(t,a,v3),d=F.inverseTransformation(c,F3);F.multiplyByPointAsVector(d,o,o),F.multiplyByPointAsVector(d,r,r)}let s=h.cross(o,r,A_t);return i.heading=P1e(o,r),i.pitch=X1e(o),i.roll=Y1e(o,r,s),i}var Qee={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},v1=new bc;dn.prototype.setView=function(e){e=e??B.EMPTY_OBJECT;let t=e.orientation??B.EMPTY_OBJECT,n=this._mode;if(n===re.MORPHING)return;l(e.endTransform)&&this._setTransform(e.endTransform);let i=e.convert??!0,o=e.destination??h.clone(this.positionWC,I3);l(o)&&l(o.west)&&(o=this.getRectangleCameraCoordinates(o,I3),i=!1),l(t.direction)&&(t=M1e(this,o,t,Qee.orientation)),v1.heading=t.heading??0,v1.pitch=t.pitch??-W.PI_OVER_TWO,v1.roll=t.roll??0,n===re.SCENE3D?y_t(this,o,v1):n===re.SCENE2D?T_t(this,o,v1,i):x_t(this,o,v1,i)};var Z_t=new h;dn.prototype.flyHome=function(e){let t=this._mode;if(t===re.MORPHING&&this._scene.completeMorph(),t===re.SCENE2D)this.flyTo({destination:dn.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:F.IDENTITY});else if(t===re.SCENE3D){let n=this.getRectangleCameraCoordinates(dn.DEFAULT_VIEW_RECTANGLE),i=h.magnitude(n);i+=i*dn.DEFAULT_VIEW_FACTOR,h.normalize(n,n),h.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:F.IDENTITY})}else if(t===re.COLUMBUS_VIEW){let n=this._projection.ellipsoid.maximumRadius,i=new h(0,-1,1);i=h.multiplyByScalar(h.normalize(i,i),5*n,i),this.flyTo({destination:i,duration:e,orientation:{heading:0,pitch:-Math.acos(h.normalize(i,Z_t).z),roll:0},endTransform:F.IDENTITY,convert:!1})}};dn.prototype.worldToCameraCoordinates=function(e,t){return l(t)||(t=new ce),ll(this),F.multiplyByVector(this._actualInvTransform,e,t)};dn.prototype.worldToCameraCoordinatesPoint=function(e,t){return l(t)||(t=new h),ll(this),F.multiplyByPoint(this._actualInvTransform,e,t)};dn.prototype.worldToCameraCoordinatesVector=function(e,t){return l(t)||(t=new h),ll(this),F.multiplyByPointAsVector(this._actualInvTransform,e,t)};dn.prototype.cameraToWorldCoordinates=function(e,t){return l(t)||(t=new ce),ll(this),F.multiplyByVector(this._actualTransform,e,t)};dn.prototype.cameraToWorldCoordinatesPoint=function(e,t){return l(t)||(t=new h),ll(this),F.multiplyByPoint(this._actualTransform,e,t)};dn.prototype.cameraToWorldCoordinatesVector=function(e,t){return l(t)||(t=new h),ll(this),F.multiplyByPointAsVector(this._actualTransform,e,t)};function k1e(e,t){let n=e._scene.mapMode2D===ed.ROTATE,i=e._maxCoord.x,o=e._maxCoord.y,r,s;n?(s=i,r=-s):(s=t.x-i*2,r=t.x+i*2),t.x>i&&(t.x=s),t.x<-i&&(t.x=r),t.y>o&&(t.y=o),t.y<-o&&(t.y=-o)}var V1e=new h;dn.prototype.move=function(e,t){let n=this.position;h.multiplyByScalar(e,t,V1e),h.add(n,V1e,n),this._mode===re.SCENE2D&&k1e(this,n),this._adjustOrthographicFrustum(!0)};dn.prototype.moveForward=function(e){e=e??this.defaultMoveAmount,this._mode===re.SCENE2D?P3(this,e):this.move(this.direction,e)};dn.prototype.moveBackward=function(e){e=e??this.defaultMoveAmount,this._mode===re.SCENE2D?P3(this,-e):this.move(this.direction,-e)};dn.prototype.moveUp=function(e){e=e??this.defaultMoveAmount,this.move(this.up,e)};dn.prototype.moveDown=function(e){e=e??this.defaultMoveAmount,this.move(this.up,-e)};dn.prototype.moveRight=function(e){e=e??this.defaultMoveAmount,this.move(this.right,e)};dn.prototype.moveLeft=function(e){e=e??this.defaultMoveAmount,this.move(this.right,-e)};dn.prototype.lookLeft=function(e){e=e??this.defaultLookAmount,this._mode!==re.SCENE2D&&this.look(this.up,-e)};dn.prototype.lookRight=function(e){e=e??this.defaultLookAmount,this._mode!==re.SCENE2D&&this.look(this.up,e)};dn.prototype.lookUp=function(e){e=e??this.defaultLookAmount,this._mode!==re.SCENE2D&&this.look(this.right,-e)};dn.prototype.lookDown=function(e){e=e??this.defaultLookAmount,this._mode!==re.SCENE2D&&this.look(this.right,e)};var C_t=new Ne,R_t=new $;dn.prototype.look=function(e,t){let n=t??this.defaultLookAmount,i=Ne.fromAxisAngle(e,-n,C_t),o=$.fromQuaternion(i,R_t),r=this.direction,s=this.up,a=this.right;$.multiplyByVector(o,r,r),$.multiplyByVector(o,s,s),$.multiplyByVector(o,a,a)};dn.prototype.twistLeft=function(e){e=e??this.defaultLookAmount,this.look(this.direction,e)};dn.prototype.twistRight=function(e){e=e??this.defaultLookAmount,this.look(this.direction,-e)};var V_t=new Ne,G_t=new $;dn.prototype.rotate=function(e,t){let n=t??this.defaultRotateAmount,i=Ne.fromAxisAngle(e,-n,V_t),o=$.fromQuaternion(i,G_t);$.multiplyByVector(o,this.position,this.position),$.multiplyByVector(o,this.direction,this.direction),$.multiplyByVector(o,this.up,this.up),h.cross(this.direction,this.up,this.right),h.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)};dn.prototype.rotateDown=function(e){e=e??this.defaultRotateAmount,U1e(this,e)};dn.prototype.rotateUp=function(e){e=e??this.defaultRotateAmount,U1e(this,-e)};var E_t=new h,L_t=new h,W_t=new h,G1e=new h;function U1e(e,t){let n=e.position;if(l(e.constrainedAxis)&&!h.equalsEpsilon(e.position,h.ZERO,W.EPSILON2)){let i=h.normalize(n,E_t),o=h.equalsEpsilon(i,e.constrainedAxis,W.EPSILON2),r=h.equalsEpsilon(i,h.negate(e.constrainedAxis,G1e),W.EPSILON2);if(!o&&!r){let s=h.normalize(e.constrainedAxis,L_t),a=h.dot(i,s),c=W.acosClamped(a);t>0&&t>c&&(t=c-W.EPSILON4),a=h.dot(i,h.negate(s,G1e)),c=W.acosClamped(a),t<0&&-t>c&&(t=-c+W.EPSILON4);let d=h.cross(s,i,W_t);e.rotate(d,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}dn.prototype.rotateRight=function(e){e=e??this.defaultRotateAmount,D1e(this,-e)};dn.prototype.rotateLeft=function(e){e=e??this.defaultRotateAmount,D1e(this,e)};function D1e(e,t){l(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function P3(e,t){let n=e.frustum,i;if(t=t*.5,Math.abs(n.top)+Math.abs(n.bottom)>Math.abs(n.left)+Math.abs(n.right)){let o=n.top-t,r=n.bottom+t,s=e._maxCoord.y;e._scene.mapMode2D===ed.ROTATE&&(s*=e.maximumZoomFactor),r>s&&(r=s,o=-s),o<=r&&(o=1,r=-1),i=n.right/n.top,n.top=o,n.bottom=r,n.right=n.top*i,n.left=-n.right}else{let o=n.right-t,r=n.left+t,s=e._maxCoord.x;e._scene.mapMode2D===ed.ROTATE&&(s*=e.maximumZoomFactor),o>s&&(o=s,r=-s),o<=r&&(o=1,r=-1),i=n.top/n.right,n.right=o,n.left=r,n.top=n.right*i,n.bottom=-n.top}}function O1e(e,t){e.move(e.direction,t)}dn.prototype.zoomIn=function(e){e=e??this.defaultZoomAmount,this._mode===re.SCENE2D?P3(this,e):O1e(this,e)};dn.prototype.zoomOut=function(e){e=e??this.defaultZoomAmount,this._mode===re.SCENE2D?P3(this,-e):O1e(this,-e)};dn.prototype.getMagnitude=function(){if(this._mode===re.SCENE3D)return h.magnitude(this.position);if(this._mode===re.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===re.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var v_t=new F;dn.prototype.lookAt=function(e,t){let i=this._scene.ellipsoid??ie.default,o=xt.eastNorthUpToFixedFrame(e,i,v_t);this.lookAtTransform(o,t)};var F_t=new h,I_t=new Ne,P_t=new Ne,X_t=new $;function B1e(e,t,n){t=W.clamp(t,-W.PI_OVER_TWO,W.PI_OVER_TWO),e=W.zeroToTwoPi(e)-W.PI_OVER_TWO;let i=Ne.fromAxisAngle(h.UNIT_Y,-t,I_t),o=Ne.fromAxisAngle(h.UNIT_Z,-e,P_t),r=Ne.multiply(o,i,o),s=$.fromQuaternion(r,X_t),a=h.clone(h.UNIT_X,F_t);return $.multiplyByVector(s,a,a),h.negate(a,a),h.multiplyByScalar(a,n,a),a}dn.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!l(t))return;let n;if(l(t.heading)?n=B1e(t.heading,t.pitch,t.range):n=t,this._mode===re.SCENE2D){k.clone(k.ZERO,this.position),h.negate(n,this.up),this.up.z=0,h.magnitudeSquared(this.up)<W.EPSILON10&&h.clone(h.UNIT_Y,this.up),h.normalize(this.up,this.up),this._setTransform(F.IDENTITY),h.negate(h.UNIT_Z,this.direction),h.cross(this.direction,this.up,this.right),h.normalize(this.right,this.right);let i=this.frustum,o=i.top/i.right;i.right=h.magnitude(n)*.5,i.left=-i.right,i.top=o*i.right,i.bottom=-i.top,this._setTransform(e);return}h.clone(n,this.position),h.negate(this.position,this.direction),h.normalize(this.direction,this.direction),h.cross(this.direction,h.UNIT_Z,this.right),h.magnitudeSquared(this.right)<W.EPSILON10&&h.clone(h.UNIT_X,this.right),h.normalize(this.right,this.right),h.cross(this.right,this.direction,this.up),h.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)};var aw=new fe,Y_t=new fe,N_t=new h,w_t=new h,M_t=new h,k_t=new h,U_t=new h,D_t=new h,O_t=new h,Kee=new h,B_t={direction:new h,right:new h,up:new h},E1e;function cl(e,t,n,i){return Math.abs(h.dot(t,n))/i-h.dot(e,n)}function z1e(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:B_t,{north:s,south:a,west:c}=t,{east:d}=t;c>d&&(d+=W.TWO_PI);let u=(c+d)*.5,m;if(a<-W.PI_OVER_TWO+W.RADIANS_PER_DEGREE&&s>W.PI_OVER_TWO-W.RADIANS_PER_DEGREE)m=0;else{let X=aw;X.longitude=u,X.latitude=s,X.height=0;let Y=Y_t;Y.longitude=u,Y.latitude=a,Y.height=0;let g=E1e;(!l(g)||g.ellipsoid!==o)&&(E1e=g=new I0(void 0,void 0,o)),g.setEndPoints(X,Y),m=g.interpolateUsingFraction(.5,aw).latitude}let p=aw;p.longitude=u,p.latitude=m,p.height=0;let b=o.cartographicToCartesian(p,O_t),f=aw;f.longitude=d,f.latitude=s;let y=o.cartographicToCartesian(f,N_t);f.longitude=c;let _=o.cartographicToCartesian(f,M_t);f.longitude=u;let S=o.cartographicToCartesian(f,U_t);f.latitude=a;let A=o.cartographicToCartesian(f,D_t);f.longitude=d;let Z=o.cartographicToCartesian(f,k_t);f.longitude=c;let R=o.cartographicToCartesian(f,w_t);h.subtract(_,b,_),h.subtract(Z,b,Z),h.subtract(y,b,y),h.subtract(R,b,R),h.subtract(S,b,S),h.subtract(A,b,A);let G=o.geodeticSurfaceNormal(b,r.direction);h.negate(G,G);let E=h.cross(G,h.UNIT_Z,r.right);h.normalize(E,E);let v=h.cross(E,G,r.up),I;if(e.frustum instanceof fn){let X=Math.max(h.distance(y,_),h.distance(Z,R)),Y=Math.max(h.distance(y,Z),h.distance(_,R)),g,C,V=e.frustum._offCenterFrustum,L=V.right/V.top,P=Y*L;X>P?(g=X,C=g/L):(C=Y,g=P),I=Math.max(g,C)}else{let X=Math.tan(e.frustum.fovy*.5),Y=e.frustum.aspectRatio*X;if(I=Math.max(cl(G,v,_,X),cl(G,v,Z,X),cl(G,v,y,X),cl(G,v,R,X),cl(G,v,S,X),cl(G,v,A,X),cl(G,E,_,Y),cl(G,E,Z,Y),cl(G,E,y,Y),cl(G,E,R,Y),cl(G,E,S,Y),cl(G,E,A,Y)),a<0&&s>0){let g=aw;g.longitude=c,g.latitude=0,g.height=0;let C=o.cartographicToCartesian(g,Kee);h.subtract(C,b,C),I=Math.max(I,cl(G,v,C,X),cl(G,E,C,Y)),g.longitude=d,C=o.cartographicToCartesian(g,Kee),h.subtract(C,b,C),I=Math.max(I,cl(G,v,C,X),cl(G,E,C,Y))}}return h.add(b,h.multiplyByScalar(G,-I,Kee),n)}var z_t=new fe,H_t=new h,K_t=new h;function J_t(e,t,n){let i=e._projection;t.west>t.east&&(t=se.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=z_t;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,H_t);F.multiplyByPoint(o,a,a),F.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,K_t);if(F.multiplyByPoint(o,c,c),F.multiplyByPoint(r,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,l(e.frustum.fovy)){let d=Math.tan(e.frustum.fovy*.5),u=e.frustum.aspectRatio*d;n.z=Math.max((a.x-c.x)/u,(a.y-c.y)/d)*.5}else{let d=a.x-c.x,u=a.y-c.y;n.z=Math.max(d,u)}return n}var j_t=new fe,Q_t=new h,q_t=new h;function $_t(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===ed.INFINITE_SCROLL?o+=W.TWO_PI:(t=se.MAX_VALUE,o=t.east));let r=j_t;r.longitude=o,r.latitude=t.north;let s=i.project(r,Q_t);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,q_t),c=Math.abs(s.x-a.x)*.5,d=Math.abs(s.y-a.y)*.5,u,m,p=e.frustum.right/e.frustum.top,b=d*p;return c>b?(u=c,m=u/p):(m=d,u=b),d=Math.max(2*u,2*m),n.x=(s.x-a.x)*.5+a.x,n.y=(s.y-a.y)*.5+a.y,r=i.unproject(n,r),r.height=d,n=i.project(r,n),n}dn.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(l(t)||(t=new h),n===re.SCENE3D)return z1e(this,e,t);if(n===re.COLUMBUS_VIEW)return J_t(this,e,t);if(n===re.SCENE2D)return $_t(this,e,t)};var eSt=new _n;function tSt(e,t,n,i){n=n??ie.default;let o=e.getPickRay(t,eSt),r=di.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return _n.getPoint(o,s,i)}var nSt=new _n;function iSt(e,t,n,i){let r=e.getPickRay(t,nSt).origin;r=h.fromElements(r.y,r.z,0,r);let s=n.unproject(r);if(!(s.latitude<-W.PI_OVER_TWO||s.latitude>W.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var oSt=new _n;function rSt(e,t,n,i){let o=e.getPickRay(t,oSt),r=-o.origin.x/o.direction.x;_n.getPoint(o,r,i);let s=n.unproject(new h(i.y,i.z,0));if(!(s.latitude<-W.PI_OVER_TWO||s.latitude>W.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}dn.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(l(n)||(n=new h),t=t??ie.default,this._mode===re.SCENE3D)n=tSt(this,e,t,n);else if(this._mode===re.SCENE2D)n=iSt(this,e,this._projection,n);else if(this._mode===re.COLUMBUS_VIEW)n=rSt(this,e,this._projection,n);else return;return n}};var sSt=new h,aSt=new h,cSt=new h;function lSt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=Math.tan(e.frustum.fovy*.5),a=e.frustum.aspectRatio*s,c=e.frustum.near,d=2/o*t.x-1,u=2/r*(r-t.y)-1,m=e.positionWC;h.clone(m,n.origin);let p=h.multiplyByScalar(e.directionWC,c,sSt);h.add(m,p,p);let b=h.multiplyByScalar(e.rightWC,d*c*a,aSt),f=h.multiplyByScalar(e.upWC,u*c*s,cSt),y=h.add(p,b,n.direction);return h.add(y,f,y),h.subtract(y,m,y),h.normalize(y,y),n}var L3=new h;function dSt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let d=2/r*(r-t.y)-1;d*=(s.top-s.bottom)*.5;let u=n.origin;if(h.clone(e.positionWC,u),h.multiplyByScalar(e.rightWC,c,L3),h.add(L3,u,u),h.multiplyByScalar(e.upWC,d,L3),h.add(L3,u,u),h.clone(e.directionWC,n.direction),e._mode===re.SCENE2D&&e._scene.mapMode2D===ed.INFINITE_SCROLL){let m=e._maxCoord.x;u.y=W.mod(u.y+m,2*m)-m}return n}dn.prototype.getPickRay=function(e,t){l(t)||(t=new _n);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return l(i.aspectRatio)&&l(i.fov)&&l(i.near)?lSt(this,e,t):dSt(this,e,t)};var uSt=new h,mSt=new h;dn.prototype.distanceToBoundingSphere=function(e){let t=h.subtract(this.positionWC,e.center,uSt),n=h.multiplyByScalar(this.directionWC,h.dot(t,this.directionWC),mSt);return Math.max(0,h.magnitude(n)-e.radius)};var hSt=new k;dn.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,hSt);return Math.max(o.x,o.y)};function fSt(e,t,n,i,o,r){let s=h.clone(t);n.y>i?s.y-=n.y-i:n.y<-i&&(s.y+=-i-n.y),n.z>o?s.z-=n.z-o:n.z<-o&&(s.z+=-o-n.z);function a(c){let d=h.lerp(t,s,c.time,new h);e.worldToCameraCoordinatesPoint(d,e.position)}return{easingFunction:xs.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var pSt=new h,L1e=new h,bSt=new h,gSt=new h;function ySt(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(h.UNIT_X,pSt),r=-h.dot(o,n)/h.dot(o,i),s=h.add(n,h.multiplyByScalar(i,r,L1e),L1e);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,bSt);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,d=h.magnitude(h.subtract(n,s,gSt)),u=c*d,m=a*d,p=e._maxCoord.x,b=e._maxCoord.y,f=Math.max(u-p,p),y=Math.max(m-b,b);if(n.z<-f||n.z>f||n.y<-y||n.y>y){let _=s.y<-f||s.y>f,S=s.z<-y||s.z>y;if(_||S)return fSt(e,n,s,f,y,t)}}dn.prototype.createCorrectPositionTween=function(e){if(this._mode===re.COLUMBUS_VIEW)return ySt(this,e)};var xSt=new h,wa={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};dn.prototype.cancelFlight=function(){l(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};dn.prototype.completeFlight=function(){if(l(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=wa.destination,e.orientation.heading=wa.heading,e.orientation.pitch=wa.pitch,e.orientation.roll=wa.roll,this.setView(e),l(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};dn.prototype.flyTo=function(e){e=e??B.EMPTY_OBJECT;let t=e.destination;if(this._mode===re.MORPHING)return;this.cancelFlight();let i=t instanceof se;i&&(t=this.getRectangleCameraCoordinates(t,xSt));let o=e.orientation??B.EMPTY_OBJECT;if(l(o.direction)&&(o=M1e(this,t,o,Qee.orientation)),l(e.duration)&&e.duration<=0){let u=Qee;u.destination=e.destination,u.orientation.heading=o.heading,u.orientation.pitch=o.pitch,u.orientation.roll=o.roll,u.convert=e.convert,u.endTransform=e.endTransform,this.setView(u),typeof e.complete=="function"&&e.complete();return}let r=this,s;wa.destination=t,wa.heading=o.heading,wa.pitch=o.pitch,wa.roll=o.roll,wa.duration=e.duration,wa.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),l(e.complete)&&e.complete()},wa.cancel=e.cancel,wa.endTransform=e.endTransform,wa.convert=i?!1:e.convert,wa.maximumHeight=e.maximumHeight,wa.pitchAdjustHeight=e.pitchAdjustHeight,wa.flyOverLongitude=e.flyOverLongitude,wa.flyOverLongitudeWeight=e.flyOverLongitudeWeight,wa.easingFunction=e.easingFunction;let a=this._scene,c=sw.createTween(a,wa);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let d=this._scene.preloadFlightCamera;this._mode!==re.SCENE2D&&(l(d)||(d=dn.clone(this)),d.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=d.frustum.computeCullingVolume(d.positionWC,d.directionWC,d.upWC))};function TSt(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function _St(e,t){let n=e.frustum,i=n.offCenterFrustum;l(i)&&(n=i);let o,r,s=n.right/n.top,a=t*s;return t>a?(o=t,r=o/s):(r=t,o=a),Math.max(o,r)*1.5}var SSt=100;function H1e(e,t,n){n=Dm.clone(l(n)?n:dn.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!l(r)||r===0){let s=t.radius;s===0?n.range=SSt:e.frustum instanceof fn||e._mode===re.SCENE2D?n.range=_St(e,s):n.range=TSt(e,s),n.range=W.clamp(n.range,i,o)}return n}dn.prototype.viewBoundingSphere=function(e,t){t=H1e(this,e,t),this.lookAt(e.center,t)};var ASt=new F,ZSt=new h,CSt=new h,RSt=new h,VSt=new h,GSt=new ce,ESt=new Ne,LSt=new $;dn.prototype.flyToBoundingSphere=function(e,t){t=t??B.EMPTY_OBJECT;let n=this._mode===re.SCENE2D||this._mode===re.COLUMBUS_VIEW;this._setTransform(F.IDENTITY);let i=H1e(this,e,t.offset),o;n?o=h.multiplyByScalar(h.UNIT_Z,i.range,ZSt):o=B1e(i.heading,i.pitch,i.range);let s=this._scene.ellipsoid??ie.default,a=xt.eastNorthUpToFixedFrame(e.center,s,ASt);F.multiplyByPoint(a,o,o);let c,d;if(!n){if(c=h.subtract(e.center,o,CSt),h.normalize(c,c),d=F.multiplyByPointAsVector(a,h.UNIT_Z,RSt),1-Math.abs(h.dot(c,d))<W.EPSILON6){let m=Ne.fromAxisAngle(c,i.heading,ESt),p=$.fromQuaternion(m,LSt);h.fromCartesian4(F.getColumn(a,1,GSt),d),$.multiplyByVector(p,d,d)}let u=h.cross(c,d,VSt);h.cross(u,c,d),h.normalize(d,d)}this.flyTo({destination:o,orientation:{direction:c,up:d},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var W1e=new h,v1e=new h,Jee=new h,F1e=new h,cw=[new h,new h,new h,new h];function WSt(e,t){let n=t.radii,i=e.positionWC,o=h.multiplyComponents(t.oneOverRadii,i,W1e),r=h.magnitude(o),s=h.normalize(o,v1e),a,c;h.equalsEpsilon(s,h.UNIT_Z,W.EPSILON10)?(a=new h(0,1,0),c=new h(0,0,1)):(a=h.normalize(h.cross(h.UNIT_Z,s,Jee),Jee),c=h.normalize(h.cross(s,a,F1e),F1e));let d=Math.sqrt(h.magnitudeSquared(o)-1),u=h.multiplyByScalar(s,1/r,W1e),m=d/r,p=h.multiplyByScalar(a,m,v1e),b=h.multiplyByScalar(c,m,Jee),f=h.add(u,b,cw[0]);h.subtract(f,p,f),h.multiplyComponents(n,f,f);let y=h.subtract(u,b,cw[1]);h.subtract(y,p,y),h.multiplyComponents(n,y,y);let _=h.subtract(u,b,cw[2]);h.add(_,p,_),h.multiplyComponents(n,_,_);let S=h.add(u,b,cw[3]);return h.add(S,p,S),h.multiplyComponents(n,S,S),cw}var jee=new k,vSt=new h,vx=[new fe,new fe,new fe,new fe];function W3(e,t,n,i,o,r){jee.x=e,jee.y=t;let s=i.pickEllipsoid(jee,o,vSt);return l(s)?(vx[n]=o.cartesianToCartographic(s,vx[n]),1):(vx[n]=o.cartesianToCartographic(r[n],vx[n]),0)}dn.prototype.computeViewRectangle=function(e,t){e=e??ie.default;let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new ue(h.ZERO,e.maximumRadius);if(n.computeVisibility(i)===Qt.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,d=WSt(this,e);if(c+=W3(0,0,0,this,e,d),c+=W3(0,a,1,this,e,d),c+=W3(s,a,2,this,e,d),c+=W3(s,0,3,this,e,d),c<2)return se.MAX_VALUE;t=se.fromCartographicArray(vx,t);let u=0,m=vx[3].longitude;for(let p=0;p<4;++p){let b=vx[p].longitude,f=Math.abs(b-m);f>W.PI?u+=W.TWO_PI-f:u+=f,m=b}return W.equalsEpsilon(Math.abs(u),W.TWO_PI,W.EPSILON9)&&(t.west=-W.PI,t.east=W.PI,vx[0].latitude>=0?t.north=W.PI_OVER_TWO:t.south=-W.PI_OVER_TWO),t};dn.prototype.switchToPerspectiveFrustum=function(){if(this._mode===re.SCENE2D||this.frustum instanceof Mi)return;let e=this._scene;this.frustum=new Mi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=W.toRadians(60)};dn.prototype.switchToOrthographicFrustum=function(){if(this._mode===re.SCENE2D||this.frustum instanceof fn)return;let e=N1e(this),t=this._scene;this.frustum=new fn,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};dn.clone=function(e,t){return l(t)||(t=new dn(e._scene)),h.clone(e.position,t.position),h.clone(e.direction,t.direction),h.clone(e.up,t.up),h.clone(e.right,t.right),F.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var Ao=dn;var P8i=x(T(),1);function FSt(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var qm=FSt;var U8i=x(T(),1);var q1e=x(qd(),1),K1e=576,ISt=100,lw="#ffffff",X3="#48b";function $1e(e,t){this.credit=e,this.count=t??1}function PSt(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(Rt.equals(o,t))return!0}return!1}function XSt(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;Rt.equals(n,t)||(l(t)&&e._cesiumCreditContainer.removeChild(t.element),l(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var eVe="cesium-credit-delimiter";function J1e(e){let t=document.createElement("span");return t.textContent=e,t.className=eVe,t}function j1e(e,t){if(l(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function Q1e(e,t,n,i){let o=e.childNodes,r=-1;t.sort(function(s,a){return a.count-s.count});for(let s=0;s<t.length;++s){let a=t[s].credit;if(l(a)){if(r=s,l(n)&&(r*=2,s>0)){let d=r-1;if(o.length<=d)e.appendChild(J1e(n));else{let u=o[d];u.className!==eVe&&e.replaceChild(J1e(n),u)}}let c=a.element;if(o.length<=r)e.appendChild(j1e(c,i));else{let d=o[r];d._creditId!==a._id&&e.replaceChild(j1e(c,i),d)}}}for(++r;r<o.length;)e.removeChild(o[r])}function YSt(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<K1e?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`),e._lastViewportWidth=n),n>=K1e&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function NSt(e){let t=` +.cesium-credit-lightbox-overlay { + display: none; + z-index: 1; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(80, 80, 80, 0.8); +} + +.cesium-credit-lightbox { + background-color: #303336; + color: ${lw}; + position: relative; + min-height: ${ISt}px; + margin: auto; +} +.cesium-credit-lightbox > ul > li a, +.cesium-credit-lightbox > ul > li a:visited, +.cesium-credit-wrapper a, +.cesium-credit-wrapper a:visited { + color: ${lw}; +} +.cesium-credit-lightbox > ul > li a:hover { + color: ${X3}; +} +.cesium-credit-lightbox.cesium-credit-lightbox-expanded { + border: 1px solid #444; + border-radius: 5px; + max-width: 470px; +} +.cesium-credit-lightbox.cesium-credit-lightbox-mobile { + height: 100%; + width: 100%; +} +.cesium-credit-lightbox-title { + padding: 20px 20px 0 20px; +} +.cesium-credit-lightbox-close { + font-size: 18pt; + cursor: pointer; + position: absolute; + top: 0; + right: 6px; + color: ${lw}; +} +.cesium-credit-lightbox-close:hover { + color: ${X3}; +} +.cesium-credit-lightbox > ul { + margin: 0; + padding: 12px 20px 12px 40px; + font-size: 13px; +} +.cesium-credit-lightbox > ul > li { + padding-bottom: 6px; +} +.cesium-credit-lightbox > ul > li * { + padding: 0; + margin: 0; +} + +.cesium-credit-expand-link { + padding-left: 5px; + cursor: pointer; + text-decoration: underline; + color: ${lw}; +} +.cesium-credit-expand-link:hover { + color: ${X3}; +} + +.cesium-credit-text { + color: ${lw}; +} + +.cesium-credit-delimiter { + padding: 0 5px; +} + +.cesium-credit-textContainer *, +.cesium-credit-logoContainer * { + display: inline; +} + +.cesium-credit-textContainer a:hover { + color: ${X3} +} + +.cesium-credit-textContainer .cesium-credit-wrapper:first-of-type { + padding-left: 5px; +} +`;function n(r){if(r.shadowRoot)return r.shadowRoot;if(r.getRootNode){let s=r.getRootNode();if(s instanceof ShadowRoot)return s}}let i=n(e)??document.head,o=document.createElement("style");o.innerHTML=t,i.appendChild(o)}function wr(e,t,n){let i=this;n=n??document.body;let o=document.createElement("div");o.className="cesium-credit-lightbox-overlay",n.appendChild(o);let r=document.createElement("div");r.className="cesium-credit-lightbox",o.appendChild(r);function s(f){r.contains(f.target)||i.hideLightbox()}o.addEventListener("click",s,!1);let a=document.createElement("div");a.className="cesium-credit-lightbox-title",a.textContent="Data provided by:",r.appendChild(a);let c=document.createElement("a");c.onclick=this.hideLightbox.bind(this),c.innerHTML="×",c.className="cesium-credit-lightbox-close",r.appendChild(c);let d=document.createElement("ul");r.appendChild(d);let u=document.createElement("div");u.className="cesium-credit-logoContainer",u.style.display="inline",e.appendChild(u);let m=document.createElement("div");m.className="cesium-credit-textContainer",m.style.display="inline",e.appendChild(m);let p=document.createElement("a");p.className="cesium-credit-expand-link",p.onclick=this.showLightbox.bind(this),p.textContent="Data attribution",e.appendChild(p),NSt(e);let b=Rt.clone(wr.cesiumCredit);this._delimiter=t??"\u2022",this._screenContainer=m,this._cesiumCreditContainer=u,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=r,this._creditList=d,this._lightbox=o,this._hideLightbox=s,this._expandLink=p,this._expanded=!1,this._staticCredits=[],this._cesiumCredit=b,this._previousCesiumCredit=void 0,this._currentCesiumCredit=b,this._creditDisplayElementPool=[],this._creditDisplayElementIndex=0,this._currentFrameCredits={screenCredits:new wt,lightboxCredits:new wt},this._defaultCredit=void 0,this.viewport=n,this.container=e}function tVe(e,t,n,i){i=i??1;let o=t.get(n.id);if(l(o))o.count<Number.MAX_VALUE&&(o.count+=i);else{let r=e._creditDisplayElementPool,s=e._creditDisplayElementPoolIndex;s<r.length?(o=r[s],o.credit=n,o.count=i):(o=new $1e(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}wr.prototype.addCreditToNextFrame=function(e){if(e.isIon()){l(this._defaultCredit)||(this._defaultCredit=Rt.clone(nVe())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,tVe(this,t,e)};wr.prototype.addStaticCredit=function(e){let t=this._staticCredits;PSt(t,e)||t.push(e)};wr.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};wr.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};wr.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};wr.prototype.update=function(){this._expanded&&YSt(this)};wr.prototype.beginFrame=function(){let e=this._currentFrameCredits;this._creditDisplayElementPoolIndex=0;let t=e.screenCredits,n=e.lightboxCredits;t.removeAll(),n.removeAll();let i=this._staticCredits;for(let o=0;o<i.length;++o){let r=i[o],s=r.showOnScreen?t:n;r.isIon()&&Rt.equals(wr.cesiumCredit,this._cesiumCredit)||tVe(this,s,r,Number.MAX_VALUE)}Rt.equals(wr.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=Rt.clone(wr.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};wr.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;Q1e(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",Q1e(this._creditList,t,void 0,"li"),XSt(this)};wr.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),he(this)};wr.prototype.isDestroyed=function(){return!1};wr._cesiumCredit=void 0;wr._cesiumCreditInitialized=!1;var Y3;function nVe(){if(!l(Y3)){let e=$t("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new q1e.default(e).path()),Y3=new Rt(`<a href="https://cesium.com/" target="_blank"><img src="${e}" style="vertical-align: -7px" title="Cesium ion"/></a>`,!0)}return wr._cesiumCreditInitialized||(wr._cesiumCredit=Y3,wr._cesiumCreditInitialized=!0),Y3}Object.defineProperties(wr,{cesiumCredit:{get:function(){return nVe(),wr._cesiumCredit},set:function(e){wr._cesiumCredit=e,wr._cesiumCreditInitialized=!0}}});wr.CreditDisplayElement=$1e;var dw=wr;var N7i=x(T(),1);var r7i=x(T(),1);var N3=0,wSt=1;function BS(e){let t=e.frustum,n=e.orientation,i=e.origin,o=e.vertexFormat??Me.DEFAULT,r=e._drawNearPlane??!0,s,a;t instanceof Mi?(s=N3,a=Mi.packedLength):t instanceof fn&&(s=wSt,a=fn.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Ne.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+h.packedLength+Ne.packedLength+Me.packedLength}BS.pack=function(e,t,n){n=n??0;let i=e._frustumType,o=e._frustum;return t[n++]=i,i===N3?(Mi.pack(o,t,n),n+=Mi.packedLength):(fn.pack(o,t,n),n+=fn.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Ne.pack(e._orientation,t,n),n+=Ne.packedLength,Me.pack(e._vertexFormat,t,n),n+=Me.packedLength,t[n]=e._drawNearPlane?1:0,t};var MSt=new Mi,kSt=new fn,USt=new Ne,DSt=new h,OSt=new Me;BS.unpack=function(e,t,n){t=t??0;let i=e[t++],o;i===N3?(o=Mi.unpack(e,t,MSt),t+=Mi.packedLength):(o=fn.unpack(e,t,kSt),t+=fn.packedLength);let r=h.unpack(e,t,DSt);t+=h.packedLength;let s=Ne.unpack(e,t,USt);t+=Ne.packedLength;let a=Me.unpack(e,t,OSt);t+=Me.packedLength;let c=e[t]===1;if(!l(n))return new BS({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let d=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(d),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Ne.clone(s,n._orientation),n._vertexFormat=Me.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function F1(e,t,n,i,o,r,s,a){let c=e/3*2;for(let d=0;d<4;++d)l(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),l(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),l(i)&&(i[e]=a.x,i[e+1]=a.y,i[e+2]=a.z),e+=3;o[c]=0,o[c+1]=0,o[c+2]=1,o[c+3]=0,o[c+4]=1,o[c+5]=1,o[c+6]=0,o[c+7]=1}var BSt=new $,zSt=new F,tte=new F,iVe=new h,oVe=new h,rVe=new h,HSt=new h,KSt=new h,JSt=new h,Fx=new Array(3),uw=new Array(4);uw[0]=new ce(-1,-1,1,1);uw[1]=new ce(1,-1,1,1);uw[2]=new ce(1,1,1,1);uw[3]=new ce(-1,1,1,1);var sVe=new Array(4);for(let e=0;e<4;++e)sVe[e]=new ce;BS._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=$.fromQuaternion(t,BSt),d=r??iVe,u=s??oVe,m=a??rVe;d=$.getColumn(c,0,d),u=$.getColumn(c,1,u),m=$.getColumn(c,2,m),h.normalize(d,d),h.normalize(u,u),h.normalize(m,m),h.negate(d,d);let p=F.computeView(e,m,u,d,zSt),b,f,y=i.projectionMatrix;if(n===N3){let _=F.multiply(y,p,tte);f=F.inverse(_,tte)}else b=F.inverseTransformation(p,tte);l(f)?(Fx[0]=i.near,Fx[1]=i.far):(Fx[0]=0,Fx[1]=i.near,Fx[2]=i.far);for(let _=0;_<2;++_)for(let S=0;S<4;++S){let A=ce.clone(uw[S],sVe[S]);if(l(f)){A=F.multiplyByVector(f,A,A);let Z=1/A.w;h.multiplyByScalar(A,Z,A),h.subtract(A,e,A),h.normalize(A,A);let R=h.dot(m,A);h.multiplyByScalar(A,Fx[_]/R,A),h.add(A,e,A)}else{let Z=i.offCenterFrustum;l(Z)&&(i=Z);let R=Fx[_],G=Fx[_+1];A.x=(A.x*(i.right-i.left)+i.left+i.right)*.5,A.y=(A.y*(i.top-i.bottom)+i.bottom+i.top)*.5,A.z=(A.z*(R-G)-R-G)*.5,A.w=1,F.multiplyByVector(b,A,A)}o[12*_+S*3]=A.x,o[12*_+S*3+1]=A.y,o[12*_+S*3+2]=A.z}};BS.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=e._vertexFormat,a=r?6:5,c=new Float64Array(72);BS._computeNearFarPlanes(i,o,t,n,c);let d=24;c[d]=c[12],c[d+1]=c[13],c[d+2]=c[14],c[d+3]=c[0],c[d+4]=c[1],c[d+5]=c[2],c[d+6]=c[9],c[d+7]=c[10],c[d+8]=c[11],c[d+9]=c[21],c[d+10]=c[22],c[d+11]=c[23],d+=12,c[d]=c[15],c[d+1]=c[16],c[d+2]=c[17],c[d+3]=c[3],c[d+4]=c[4],c[d+5]=c[5],c[d+6]=c[0],c[d+7]=c[1],c[d+8]=c[2],c[d+9]=c[12],c[d+10]=c[13],c[d+11]=c[14],d+=12,c[d]=c[3],c[d+1]=c[4],c[d+2]=c[5],c[d+3]=c[15],c[d+4]=c[16],c[d+5]=c[17],c[d+6]=c[18],c[d+7]=c[19],c[d+8]=c[20],c[d+9]=c[6],c[d+10]=c[7],c[d+11]=c[8],d+=12,c[d]=c[6],c[d+1]=c[7],c[d+2]=c[8],c[d+3]=c[18],c[d+4]=c[19],c[d+5]=c[20],c[d+6]=c[21],c[d+7]=c[22],c[d+8]=c[23],c[d+9]=c[9],c[d+10]=c[10],c[d+11]=c[11],r||(c=c.subarray(12));let u=new xn({position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:c})});if(l(s.normal)||l(s.tangent)||l(s.bitangent)||l(s.st)){let p=l(s.normal)?new Float32Array(12*a):void 0,b=l(s.tangent)?new Float32Array(12*a):void 0,f=l(s.bitangent)?new Float32Array(12*a):void 0,y=l(s.st)?new Float32Array(8*a):void 0,_=iVe,S=oVe,A=rVe,Z=h.negate(_,HSt),R=h.negate(S,KSt),G=h.negate(A,JSt);d=0,r&&(F1(d,p,b,f,y,G,_,S),d+=12),F1(d,p,b,f,y,A,Z,S),d+=12,F1(d,p,b,f,y,Z,G,S),d+=12,F1(d,p,b,f,y,R,G,Z),d+=12,F1(d,p,b,f,y,_,A,S),d+=12,F1(d,p,b,f,y,S,A,Z),l(p)&&(u.normal=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:p})),l(b)&&(u.tangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:b})),l(f)&&(u.bitangent=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:f})),l(y)&&(u.st=new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:2,values:y}))}let m=new Uint16Array(6*a);for(let p=0;p<a;++p){let b=p*6,f=p*4;m[b]=f,m[b+1]=f+1,m[b+2]=f+2,m[b+3]=f,m[b+4]=f+2,m[b+5]=f+3}return new Zt({attributes:u,indices:m,primitiveType:ve.TRIANGLES,boundingSphere:ue.fromVertices(c)})};var zS=BS;var x7i=x(T(),1);var nte=0,jSt=1;function mw(e){let t=e.frustum,n=e.orientation,i=e.origin,o=e._drawNearPlane??!0,r,s;t instanceof Mi?(r=nte,s=Mi.packedLength):t instanceof fn&&(r=jSt,s=fn.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Ne.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+h.packedLength+Ne.packedLength}mw.pack=function(e,t,n){n=n??0;let i=e._frustumType,o=e._frustum;return t[n++]=i,i===nte?(Mi.pack(o,t,n),n+=Mi.packedLength):(fn.pack(o,t,n),n+=fn.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Ne.pack(e._orientation,t,n),n+=Ne.packedLength,t[n]=e._drawNearPlane?1:0,t};var QSt=new Mi,qSt=new fn,$St=new Ne,eAt=new h;mw.unpack=function(e,t,n){t=t??0;let i=e[t++],o;i===nte?(o=Mi.unpack(e,t,QSt),t+=Mi.packedLength):(o=fn.unpack(e,t,qSt),t+=fn.packedLength);let r=h.unpack(e,t,eAt);t+=h.packedLength;let s=Ne.unpack(e,t,$St);t+=Ne.packedLength;let a=e[t]===1;if(!l(n))return new mw({frustum:o,origin:r,orientation:s,_drawNearPlane:a});let c=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(c),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Ne.clone(s,n._orientation),n._drawNearPlane=a,n};mw.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=new Float64Array(24);zS._computeNearFarPlanes(i,o,t,n,s);let a=new xn({position:new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:s})}),c,d,u=r?2:1,m=new Uint16Array(8*(u+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,d=p*4,m[c]=d,m[c+1]=d+1,m[c+2]=d+1,m[c+3]=d+2,m[c+4]=d+2,m[c+5]=d+3,m[c+6]=d+3,m[c+7]=d;for(p=0;p<2;++p)c=(u+p)*8,d=p*4,m[c]=d,m[c+1]=d+4,m[c+2]=d+1,m[c+3]=d+5,m[c+4]=d+2,m[c+5]=d+6,m[c+6]=d+3,m[c+7]=d+7;return new Zt({attributes:a,indices:m,primitiveType:ve.LINES,boundingSphere:ue.fromVertices(s)})};var hw=mw;function w3(e){e=e??B.EMPTY_OBJECT,this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=e.color??U.CYAN,this._updateOnChange=e.updateOnChange??!0,this.show=e.show??!0,this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var tAt=new h,nAt=new $,iAt=new Ne,oAt=new Mi,rAt=new $l,sAt=new fn,aAt=new rs,cAt=new U,lAt=[1,1e5];w3.prototype.update=function(e){if(!this.show)return;let t=this._planesPrimitives,n=this._outlinePrimitives,i,o;if(this._updateOnChange){for(o=t.length,i=0;i<o;++i)n[i]=n[i]&&n[i].destroy(),t[i]=t[i]&&t[i].destroy();t.length=0,n.length=0}if(t.length===0){let r=this._camera,s=r.frustum,a;s instanceof Mi?a=oAt:s instanceof $l?a=rAt:s instanceof fn?a=sAt:a=aAt,a=s.clone(a);let c,d=this._frustumSplits;!l(d)||d.length<=1?(d=lAt,d[0]=this._camera.frustum.near,d[1]=this._camera.frustum.far,c=1):c=d.length-1;let u=r.positionWC,m=r.directionWC,p=r.upWC,b=r.rightWC;b=h.negate(b,tAt);let f=nAt;$.setColumn(f,0,b,f),$.setColumn(f,1,p,f),$.setColumn(f,2,m,f);let y=Ne.fromRotationMatrix(f,iAt);for(t.length=n.length=c,i=0;i<c;++i)a.near=d[i],a.far=d[i+1],t[i]=new Wn({geometryInstances:new Pt({geometry:new zS({origin:u,orientation:y,frustum:a,_drawNearPlane:i===0}),attributes:{color:qt.fromColor(U.fromAlpha(this._color,.1,cAt))},id:this.id,pickPrimitive:this}),appearance:new pn({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new Wn({geometryInstances:new Pt({geometry:new hw({origin:u,orientation:y,frustum:a,_drawNearPlane:i===0}),attributes:{color:qt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new pn({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};w3.prototype.isDestroyed=function(){return!1};w3.prototype.destroy=function(){let e=this._planesPrimitives.length;for(let t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return he(this)};var $p=w3;var d6i=x(T(),1);var M7i=x(T(),1),fw=`in vec4 positionEC; + +void main() +{ + vec3 position; + vec3 direction; + if (czm_orthographicIn3D == 1.0) + { + vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw; + vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y); // left, bottom + vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top + position = vec3(mix(minPlane, maxPlane, uv), 0.0); + direction = vec3(0.0, 0.0, -1.0); + } + else + { + position = vec3(0.0); + direction = normalize(positionEC.xyz); + } + + czm_ray ray = czm_ray(position, direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + if (!czm_isEmpty(intersection)) + { + out_FragColor = vec4(1.0, 1.0, 0.0, 1.0); + } + else + { + discard; + } + + czm_writeLogDepth(); +} +`;var U7i=x(T(),1),pw=`in vec4 position; + +out vec4 positionEC; + +void main() +{ + positionEC = czm_modelView * position; + gl_Position = czm_projection * positionEC; + + czm_vertexLogDepth(); +} +`;function gw(e){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1,this._ellipsoidOffset=e??0}var bw=mn.supportsTypedArrays()?new Float32Array(12):[],aVe=new h,cVe=new h,ite=new h,lVe=new h,M3=new h;function dAt(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof fn)o=h.ZERO,r=i.rightWC,s=i.upWC;else{let m=i.positionWC,p=h.multiplyComponents(e.oneOverRadii,m,aVe),b=h.normalize(p,cVe),f=h.normalize(h.cross(h.UNIT_Z,p,ite),ite),y=h.normalize(h.cross(b,f,lVe),lVe),_=h.magnitude(p),S=Math.sqrt(_*_-1);o=h.multiplyByScalar(b,1/_,aVe);let A=S/_;r=h.multiplyByScalar(f,A,cVe),s=h.multiplyByScalar(y,A,ite)}let a=h.add(o,s,M3);h.subtract(a,r,a),h.multiplyComponents(n,a,a),h.pack(a,bw,0);let c=h.subtract(o,s,M3);h.subtract(c,r,c),h.multiplyComponents(n,c,c),h.pack(c,bw,3);let d=h.add(o,s,M3);h.add(d,r,d),h.multiplyComponents(n,d,d),h.pack(d,bw,6);let u=h.subtract(o,s,M3);return h.add(u,r,u),h.multiplyComponents(n,u,u),h.pack(u,bw,9),bw}gw.prototype.update=function(e){if(this._mode=e.mode,e.mode!==re.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new ie(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(l(this._command)||(this._rs=Be.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new at({renderState:this._rs,boundingVolume:new ue(h.ZERO,i.maximumRadius),pass:Le.OPAQUE,owner:this})),!l(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new He({sources:[pw]}),a=new He({sources:[fw]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=tn.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=dAt(i,e);if(l(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new Zt({attributes:{position:new Pe({componentDatatype:J.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:ve.TRIANGLES});this._va=wn.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Fe.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};gw.prototype.execute=function(e,t){this._mode===re.SCENE3D&&this._command.execute(e,t)};gw.prototype.isDestroyed=function(){return!1};gw.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var yw=gw;var x6i=x(T(),1);function P1(){}var uAt=/\bgl_FragDepth\b/,mAt=/\bdiscard\b/;function hAt(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(l(n))return n;let i=t.fragmentShaderSource,o=!1,r=i.sources;for(let a=0;a<r.length;++a)if(uAt.test(r[a])||mAt.test(r[a])){o=!0;break}let s=i.defines.indexOf("LOG_DEPTH")>=0;if(!o&&!s){let a=`void main() +{ + out_FragColor = vec4(1.0); +} +`;i=new He({sources:[a]})}else if(!o&&s){let a=`void main() +{ + out_FragColor = vec4(1.0); + czm_writeLogDepth(); +} +`;i=new He({defines:["LOG_DEPTH"],sources:[a]})}return e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}function fAt(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(l(i))return i;let o=Be.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1};let r=Be.fromCache(o);return n[t.id]=r,r}P1.createDepthOnlyDerivedCommand=function(e,t,n,i){l(i)||(i={});let o=i.depthOnlyCommand?.shaderProgram,r=i.depthOnlyCommand?.renderState;return i.depthOnlyCommand=at.shallowClone(t,i.depthOnlyCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=hAt(n,t.shaderProgram),i.depthOnlyCommand.renderState=fAt(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var pAt=/\s+czm_writeLogDepth\(/,bAt=/\s+czm_vertexLogDepth\(/;function gAt(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(l(i))return i;let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=l(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a=!1,c=r.sources;for(let u=0;u<c.length;++u)if(bAt.test(c[u])){a=!0;break}if(!a){for(let m=0;m<c.length;++m)c[m]=He.replaceMain(c[m],"czm_log_depth_main");c.push(` + +void main() +{ + czm_log_depth_main(); + czm_vertexLogDepth(); +} +`)}c=s.sources,a=!1;for(let u=0;u<c.length;++u)pAt.test(c[u])&&(a=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(a=!0);let d="";if(!a){for(let u=0;u<c.length;u++)c[u]=He.replaceMain(c[u],"czm_log_depth_main");d=` +void main() +{ + czm_log_depth_main(); + czm_writeLogDepth(); +} +`}return c.push(d),e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}P1.createLogDepthCommand=function(e,t,n){l(n)||(n={});let i=n.command?.shaderProgram;return n.command=at.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=gAt(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function yAt(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(l(i))return i;let o=t._attributeLocations,{sources:r,defines:s}=t.fragmentShaderSource,c=r.some(b=>b.includes("out_FragData"))?"out_FragData_0":"out_FragColor",d=`void main () +{ + czm_non_pick_main(); + if (${c}.a == 0.0) { + discard; + } + ${c} = ${n}; +} `,u=r.length,m=new Array(u+1);for(let b=0;b<u;++b)m[b]=He.replaceMain(r[b],"czm_non_pick_main");m[u]=d;let p=new He({sources:m,defines:s});return e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:p,attributeLocations:o})}function dVe(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(l(i))return i;let o=Be.getState(t);o.blending.enabled=!1,o.depthMask=!0;let r=Be.fromCache(o);return n[t.id]=r,r}P1.createPickDerivedCommand=function(e,t,n,i){l(i)||(i={});let o=i.pickCommand?.shaderProgram,r=i.pickCommand?.renderState;return i.pickCommand=at.shallowClone(t,i.pickCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=yAt(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=dVe(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function I1(e,t,n){let i=e.length;for(let o=0;o<i;o++)e[o].trimStart().split(/\s+/)[0]===t&&(e[o]=`${t} ${n}`)}function xAt(e){return e.isArray?e.arrayLength:pt.getComponentCount(e.type)}function uVe(e,t,n){return`((${e} - float(${t})) / float(${n}))`}function mVe(e,t){let n=It.getMaximum(t);return`(${e}) / float(${n})`}function TAt(e,t){let n="float(value)";if(t.hasValueTransform){let i=t.offset,o=t.scale;n=uVe(n,i,o)}return e.normalized||(n=mVe(n,e.componentType)),n}function _At(e,t,n){let o=`float(${`value.${n}`})`;if(t.hasValueTransform){let r=t.offset[n],s=t.scale[n];o=uVe(o,r,s)}return e.normalized||(o=mVe(o,e.componentType)),o}function SAt(e,t,n){let i=n.schemaId,o=n.className,r=n.propertyName,s=`pickMetadata-${i}-${o}-${r}`,a=e.shaderCache.getDerivedShaderProgram(t,s);if(l(a))return a;let c=n.metadataProperty,d=n.classProperty,u=d.getGlslType(),m=["0.0","0.0","0.0","0.0"],p=xAt(d);if(p===1)m[0]=TAt(d,c);else{let _=["x","y","z","w"];for(let S=0;S<p;S++)m[S]=_At(d,c,_[S])}let b=t.fragmentShaderSource.defines.slice();b.push(hu.METADATA_PICKING_ENABLED),I1(b,hu.METADATA_PICKING_VALUE_TYPE,u),I1(b,hu.METADATA_PICKING_VALUE_STRING,`metadata.${r}`),I1(b,hu.METADATA_PICKING_VALUE_COMPONENT_X,m[0]),I1(b,hu.METADATA_PICKING_VALUE_COMPONENT_Y,m[1]),I1(b,hu.METADATA_PICKING_VALUE_COMPONENT_Z,m[2]),I1(b,hu.METADATA_PICKING_VALUE_COMPONENT_W,m[3]);let f=new He({sources:t.fragmentShaderSource.sources,defines:b});return e.shaderCache.createDerivedShaderProgram(t,s,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:f,attributeLocations:t._attributeLocations})}P1.createPickMetadataDerivedCommand=function(e,t,n,i){return l(i)||(i={}),i.pickMetadataCommand=at.shallowClone(t,i.pickMetadataCommand),i.pickMetadataCommand.shaderProgram=SAt(n,t.shaderProgram,t.pickedMetadataInfo),i.pickMetadataCommand.renderState=dVe(e,t.renderState),i.shaderProgramId=t.shaderProgram.id,i};function AAt(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(l(n))return n;let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();return o.defines=l(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}P1.createHdrCommand=function(e,t,n){l(n)||(n={});let i=n.command?.shaderProgram;return n.command=at.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=AAt(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var e0=P1;var R6i=x(T(),1);function k3(e){this._scene=e,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;let t=this;function n(i){let o=i.alpha;if(!l(o)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=W.toRadians(o),t._beta=W.toRadians(i.beta),t._gamma=W.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var ZAt=new Ne,hVe=new Ne,CAt=new $;function RAt(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=Ne.fromAxisAngle(o,n,hVe),c=Ne.fromAxisAngle(r,i,ZAt),d=Ne.multiply(c,a,c),u=Ne.fromAxisAngle(s,t,hVe);Ne.multiply(u,d,d);let m=$.fromQuaternion(d,CAt);$.multiplyByVector(m,r,r),$.multiplyByVector(m,s,s),$.multiplyByVector(m,o,o)}k3.prototype.update=function(){if(!l(this._alpha))return;l(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);let e=this._lastAlpha-this._alpha,t=this._lastBeta-this._beta,n=this._lastGamma-this._gamma;RAt(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};k3.prototype.isDestroyed=function(){return!1};k3.prototype.destroy=function(){return this._removeListener(),he(this)};var xw=k3;var v6i=x(T(),1);function ote(){this.enabled=!0,this.renderable=!0,this.density=6e-4,this.heightScalar=.001,this._heightFalloff=.59,this.maxHeight=8e5,this.visualDensityScalar=.15,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}Object.defineProperties(ote.prototype,{heightFalloff:{get:function(){return this._heightFalloff},set:function(e){this._heightFalloff=e}}});var VAt=new h;ote.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!l(i)||i.height>this.maxHeight||e.mode!==re.SCENE3D){e.fog.enabled=!1,e.fog.density=0;return}let o=i.height,r=this.density*this.heightScalar*Math.pow(Math.max(o/this.maxHeight,W.EPSILON4),-Math.max(this._heightFalloff,0)),s=h.normalize(n.positionWC,VAt),a=Math.abs(h.dot(n.directionWC,s));r*=1-a,e.fog.density=r,e.fog.visualDensityScalar=this.visualDensityScalar,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var Tw=ote;var P6i=x(T(),1);function GAt(e,t,n){this.context=e,this.commandList=[],this.panoramaCommandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=re.SCENE3D,this.morphTime=re.getMorphTime(re.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=n,this.mapProjection=void 0,this.camera=void 0,this.cameraUnderground=!1,this.globeTranslucencyState=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.pixelRatio=1,this.passes={render:!1,pick:!1,pickVoxel:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,renderable:!1,density:void 0,visualDensityScalar:void 0,sse:void 0,minimumBrightness:void 0},this.atmosphere=void 0,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,this.shadowState={shadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.splitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.light=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0,this.minimumTerrainHeight=0,this.pickingMetadata=!1,this.pickedMetadataInfo=void 0,this.edgeVisibilityRequested=!1}var _w=GAt;var K6i=x(T(),1);var lc={OPAQUE_FRONT_FACE:0,OPAQUE_BACK_FACE:1,DEPTH_ONLY_FRONT_FACE:2,DEPTH_ONLY_BACK_FACE:3,DEPTH_ONLY_FRONT_AND_BACK_FACE:4,TRANSLUCENT_FRONT_FACE:5,TRANSLUCENT_BACK_FACE:6,TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:7,TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:8,PICK_FRONT_FACE:9,PICK_BACK_FACE:10,DERIVED_COMMANDS_MAXIMUM_LENGTH:11},HS=lc.DERIVED_COMMANDS_MAXIMUM_LENGTH,AVe=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function KS(){this._frontFaceAlphaByDistance=new Bt(0,1,0,1),this._backFaceAlphaByDistance=new Bt(0,1,0,1),this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._requiresManualDepthTest=!1,this._sunVisibleThroughGlobe=!1,this._environmentVisible=!1,this._useDepthPlane=!1,this._numberOfTextureUniforms=0,this._globeTranslucencyFramebuffer=void 0,this._rectangle=se.clone(se.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(HS),this._derivedBlendCommandTypes=new Array(HS),this._derivedPickCommandTypes=new Array(HS),this._derivedCommandTypesToUpdate=new Array(HS),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(KS.prototype,{frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance}},translucent:{get:function(){return this._frontFaceTranslucent}},sunVisibleThroughGlobe:{get:function(){return this._sunVisibleThroughGlobe}},environmentVisible:{get:function(){return this._environmentVisible}},useDepthPlane:{get:function(){return this._useDepthPlane}},numberOfTextureUniforms:{get:function(){return this._numberOfTextureUniforms}},rectangle:{get:function(){return this._rectangle}}});KS.prototype.update=function(e){let t=e.globe;if(!l(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=fVe(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=fVe(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=pVe(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=pVe(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=vAt(this,e,t),this._sunVisibleThroughGlobe=EAt(this,e),this._environmentVisible=LAt(this,e),this._useDepthPlane=WAt(this,e),this._numberOfTextureUniforms=FAt(this),this._rectangle=se.clone(t.translucency.rectangle,this._rectangle),IAt(this,e)};function fVe(e,t,n,i){return e?l(n)?(Bt.clone(n,i),i.nearValue*=t,i.farValue*=t,i):(i.nearValue=t,i.farValue=t,i):(i.nearValue=1,i.farValue=1,i)}function pVe(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function EAt(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function LAt(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function WAt(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function vAt(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==re.SCENE2D&&t.context.depthTexture}function FAt(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function IAt(e,t){e._derivedCommandsLength=rte(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=rte(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=rte(e,t,!1,!0,e._derivedPickCommandTypes);let n,i=0;for(n=0;n<e._derivedCommandsLength;++n)i|=1<<e._derivedCommandTypes[n];for(n=0;n<e._derivedBlendCommandsLength;++n)i|=1<<e._derivedBlendCommandTypes[n];for(n=0;n<e._derivedPickCommandsLength;++n)i|=1<<e._derivedPickCommandTypes[n];let o=0;for(n=0;n<HS;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!l(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=JAt())}function rte(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,d=e._requiresManualDepthTest,u=i?lc.PICK_FRONT_FACE:d?lc.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:lc.TRANSLUCENT_FRONT_FACE,m=i?lc.PICK_BACK_FACE:d?lc.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:lc.TRANSLUCENT_BACK_FACE;return t.mode===re.SCENE2D?(o[r++]=lc.DEPTH_ONLY_FRONT_FACE,o[r++]=u,r):(a?(n||(o[r++]=lc.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=u,o[r++]=m):(o[r++]=m,o[r++]=u)):c?(n||(o[r++]=lc.DEPTH_ONLY_BACK_FACE),o[r++]=lc.OPAQUE_FRONT_FACE,o[r++]=m):(n||(o[r++]=lc.DEPTH_ONLY_FRONT_FACE),o[r++]=lc.OPAQUE_BACK_FACE,o[r++]=u),r)}function $m(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function bVe(e,t){return e.indexOf(t)>-1}function PAt(e,t){$m(e.defines,"TRANSLUCENT"),$m(t.defines,"TRANSLUCENT")}function XAt(e,t){$m(e.defines,"GROUND_ATMOSPHERE"),$m(t.defines,"GROUND_ATMOSPHERE"),$m(e.defines,"FOG"),$m(t.defines,"FOG"),$m(e.defines,"TRANSLUCENT"),$m(t.defines,"TRANSLUCENT")}function ste(e,t){if(bVe(t.defines,"TILE_LIMIT_RECTANGLE")||bVe(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main() +{ + out_FragColor = vec4(1.0); +} +`;t.sources=[n]}function ate(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=He.replaceMain(n[r],"czm_globe_translucency_main");n.push(` + +uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; +#ifdef MANUAL_DEPTH_TEST + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + if (logDepthOrDepth != 0.0) + { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + float depthEC = eyeCoordinate.z / eyeCoordinate.w; + if (v_positionEC.z < depthEC) + { + discard; + } + } +#endif + czm_globe_translucency_main(); + vec4 classificationColor = texture(u_classificationTexture, st); + if (classificationColor.a > 0.0) + { + // Reverse premultiplication process to get the correct composited result of the classification primitives + classificationColor.rgb /= classificationColor.a; + } + out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); +} +`)}function ZVe(e,t){ate(e,t),$m(e.defines,"GROUND_ATMOSPHERE"),$m(t.defines,"GROUND_ATMOSPHERE"),$m(e.defines,"FOG"),$m(t.defines,"FOG")}function YAt(e,t){ate(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function NAt(e,t){ZVe(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function gVe(e,t){let n=`uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; + vec4 pickColor = texture(u_classificationTexture, st); + if (pickColor == vec4(0.0)) + { + discard; + } + out_FragColor = pickColor; +} +`;t.sources=[n]}function wAt(e,t,n,i,o,r){if(!l(o))return t;if(!i&&l(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!l(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),d=t.fragmentShaderSource.clone();c.defines=l(c.defines)?c.defines.slice(0):[],d.defines=l(d.defines)?d.defines.slice(0):[],o(c,d),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:a})}return s}function MAt(e){e.cull.face=Ii.BACK,e.cull.enabled=!0}function kAt(e){e.cull.face=Ii.FRONT,e.cull.enabled=!0}function UAt(e){e.cull.face=Ii.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function DAt(e){e.cull.face=Ii.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function OAt(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function yVe(e){e.cull.face=Ii.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=nn.ALPHA_BLEND}function xVe(e){e.cull.face=Ii.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=nn.ALPHA_BLEND}function BAt(e){e.cull.face=Ii.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function zAt(e){e.cull.face=Ii.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function HAt(e,t,n,i,o){if(!l(i))return e;if(!n&&l(t))return t;let r=o[e.id];if(!l(r)){let s=Be.getState(e);i(s),r=Be.fromCache(s),o[e.id]=r}return r}function X1(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function KAt(e,t,n,i,o){return l(o)?!i&&l(n)?n:vt(t,o(e),!1):t}function Ef(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function JAt(){return[new Ef({pass:Le.GLOBE,pickOnly:!1,getShaderProgramFunction:PAt,getRenderStateFunction:MAt,getUniformMapFunction:void 0}),new Ef({pass:Le.GLOBE,pickOnly:!1,getShaderProgramFunction:XAt,getRenderStateFunction:kAt,getUniformMapFunction:void 0}),new Ef({pass:Le.GLOBE,pickOnly:!1,getShaderProgramFunction:ste,getRenderStateFunction:UAt,getUniformMapFunction:void 0}),new Ef({pass:Le.GLOBE,pickOnly:!1,getShaderProgramFunction:ste,getRenderStateFunction:DAt,getUniformMapFunction:void 0}),new Ef({pass:Le.GLOBE,pickOnly:!1,getShaderProgramFunction:ste,getRenderStateFunction:OAt,getUniformMapFunction:void 0}),new Ef({pass:Le.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:ate,getRenderStateFunction:yVe,getUniformMapFunction:X1}),new Ef({pass:Le.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:ZVe,getRenderStateFunction:xVe,getUniformMapFunction:X1}),new Ef({pass:Le.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:YAt,getRenderStateFunction:yVe,getUniformMapFunction:X1}),new Ef({pass:Le.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:NAt,getRenderStateFunction:xVe,getUniformMapFunction:X1}),new Ef({pass:Le.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:gVe,getRenderStateFunction:BAt,getUniformMapFunction:X1}),new Ef({pass:Le.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:gVe,getRenderStateFunction:zAt,getUniformMapFunction:X1})]}var TVe=new Array(HS),_Ve=new Array(HS);KS.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)_Ve[o]=this._derivedCommandPacks[n[o]],TVe[o]=AVe[n[o]];jAt(this,e,i,n,TVe,_Ve,t)}};function jAt(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!l(a)||c){t.dirty=!1,l(a)||(a={},t.derivedCommands.globeTranslucency=a);let d=s.frameNumber,u=a.uniformMapDirtyFrame??0,m=a.shaderProgramDirtyFrame??0,p=a.renderStateDirtyFrame??0,b=a.uniformMap!==t.uniformMap,f=a.shaderProgramId!==t.shaderProgram.id,y=a.renderStateId!==t.renderState.id;b&&(a.uniformMapDirtyFrame=d),f&&(a.shaderProgramDirtyFrame=d),y&&(a.renderStateDirtyFrame=d),a.uniformMap=t.uniformMap,a.shaderProgramId=t.shaderProgram.id,a.renderStateId=t.renderState.id;for(let _=0;_<n;++_){let S=r[_],A=i[_],Z=o[_],R=a[Z],G,E,v;l(R)?(G=R.uniformMap,E=R.shaderProgram,v=R.renderState):(G=void 0,E=void 0,v=void 0),R=at.shallowClone(t,R),a[Z]=R;let I=R.derivedCommands.uniformMapDirtyFrame??0,X=R.derivedCommands.shaderProgramDirtyFrame??0,Y=R.derivedCommands.renderStateDirtyFrame??0,g=b||I<u,C=f||X<m,V=y||Y<p;g&&(R.derivedCommands.uniformMapDirtyFrame=d),C&&(R.derivedCommands.shaderProgramDirtyFrame=d),V&&(R.derivedCommands.renderStateDirtyFrame=d),R.derivedCommands.type=A,R.pass=S.pass,R.pickOnly=S.pickOnly,R.uniformMap=KAt(e,t.uniformMap,G,g,S.getUniformMapFunction),R.shaderProgram=wAt(s.context,t.shaderProgram,E,C,S.getShaderProgramFunction,Z),R.renderState=HAt(t.renderState,v,V,S.getRenderStateFunction,S.renderStateCache)}}}KS.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick||n.passes.pickVoxel;if(i&&t)return;let o=this._derivedCommandTypes,r=this._derivedCommandsLength;if(i?(o=this._derivedPickCommandTypes,r=this._derivedPickCommandsLength):t&&(o=this._derivedBlendCommandTypes,r=this._derivedBlendCommandsLength),r===0){n.commandList.push(e);return}let s=e.derivedCommands.globeTranslucency;for(let a=0;a<r;++a){let c=AVe[o[a]];n.commandList.push(s[c])}};function CVe(e,t,n,i,o,r){for(let s=0;s<t;++s){let a=e[s],c=a.derivedCommands.type;(!l(r)||r.indexOf(c)>-1)&&n(a,i,o)}}function SVe(e,t,n,i,o){for(let r=0;r<t;++r)n(e[r],i,o)}var QAt=[lc.OPAQUE_FRONT_FACE,lc.OPAQUE_BACK_FACE],qAt=[lc.DEPTH_ONLY_FRONT_FACE,lc.DEPTH_ONLY_BACK_FACE,lc.DEPTH_ONLY_FRONT_AND_BACK_FACE];KS.prototype.executeGlobeCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[Le.GLOBE],a=e.indices[Le.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(r,o),CVe(s,a,t,i,o,QAt))};KS.prototype.executeGlobeClassificationCommands=function(e,t,n,i,o){let{context:r}=i,{uniformState:s}=r,a=e.commands[Le.GLOBE],c=e.indices[Le.GLOBE],d=e.commands[Le.TERRAIN_CLASSIFICATION],u=e.indices[Le.TERRAIN_CLASSIFICATION];if(c===0||u===0)return;let m=this._frontFaceTranslucent,p=this._backFaceTranslucent;if((!m||!p)&&SVe(d,u,t,i,o),!m&&!p)return;this._globeTranslucencyFramebuffer=n;let b=s.globeDepthTexture,f=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,CVe(a,c,t,i,o,qAt),r.depthTexture){let y=n.packDepth(r,o);s.globeDepthTexture=y}SVe(d,u,t,i,o),s.globeDepthTexture=b,o.framebuffer=f};var Sw=KS;var pqi=x(T(),1);var j6i=x(T(),1),kd=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(colorTexture, v_textureCoordinates); +} +`;function t0(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new Zi({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new Zi({depthStencil:!0,createDepthAttachments:!1}),this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new mi({color:new U(0,0,0,0),owner:this}),this._clearCommand=new mi({color:new U(0,0,0,0),depth:1,stencil:0});let e=this;this._uniformMap={colorTexture:function(){return e._fbo.getColorTexture()},depthTexture:function(){return e._depthStencilTexture},classifiedTexture:function(){return e._fboClassified.getColorTexture()}}}Object.defineProperties(t0.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});t0.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var $At={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Jn.EQUAL,frontOperation:{fail:Gt.KEEP,zFail:Gt.KEEP,zPass:Gt.KEEP},backFunction:Jn.NEVER,reference:0,mask:Kt.CLASSIFICATION_MASK},blending:nn.ALPHA_BLEND},eZt={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Jn.NOT_EQUAL,frontOperation:{fail:Gt.KEEP,zFail:Gt.KEEP,zPass:Gt.KEEP},backFunction:Jn.NEVER,reference:0,mask:Kt.CLASSIFICATION_MASK},blending:nn.ALPHA_BLEND},tZt={depthMask:!0,depthTest:{enabled:!0},stencilTest:Kt.setCesium3DTileBit(),stencilMask:Kt.CESIUM_3D_TILE_MASK,blending:nn.ALPHA_BLEND},nZt=`uniform sampler2D colorTexture; +uniform sampler2D depthTexture; +uniform sampler2D classifiedTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } + bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0))); +#ifdef UNCLASSIFIED + vec4 highlightColor = czm_invertClassificationColor; + if (isClassified) + { + discard; + } +#else + vec4 highlightColor = vec4(1.0); + if (!isClassified) + { + discard; + } +#endif + out_FragColor = color * highlightColor; + gl_FragDepth = texture(depthTexture, v_textureCoordinates).r; +} +`,iZt=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } +#ifdef UNCLASSIFIED + out_FragColor = color * czm_invertClassificationColor; +#else + out_FragColor = color; +#endif +} +`;t0.prototype.update=function(e,t,n){let i=this._fbo.getColorTexture(),o=this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;let r=this._numSamples!==t,s=e.drawingBufferWidth,a=e.drawingBufferHeight,c=!l(i)||i.width!==s||i.height!==a;if((c||o||r)&&(this._numSamples=t,this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._previousFramebuffer)||(this._depthStencilTexture=new Ft({context:e,width:s,height:a,pixelFormat:Qe.DEPTH_STENCIL,pixelDatatype:ze.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new cu({context:e,width:s,height:a,format:Yl.DEPTH24_STENCIL8,numSamples:t})))),!l(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let d,u;l(this._previousFramebuffer)?(d=n.getDepthStencilTexture(),u=n.getDepthStencilRenderbuffer()):(d=this._depthStencilTexture,u=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(d),l(u)&&this._fbo.setDepthStencilRenderbuffer(u),this._fbo.update(e,s,a,t),l(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(d),this._fboClassified.update(e,s,a))}if(l(this._rsUnclassified)||(this._rsUnclassified=Be.fromCache($At),this._rsClassified=Be.fromCache(eZt),this._rsDefault=Be.fromCache(tZt)),!l(this._unclassifiedCommand)||o||r){l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let d=l(this._previousFramebuffer)?iZt:nZt,u=new He({defines:["UNCLASSIFIED"],sources:[d]}),m=new He({sources:[d]});this._unclassifiedCommand=e.createViewportQuadCommand(u,{renderState:l(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(m,{renderState:l(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),l(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),l(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(kd,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};t0.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};t0.prototype.clear=function(e,t){l(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};t0.prototype.executeClassified=function(e,t){if(!l(this._previousFramebuffer)){let n=t.framebuffer;this.prepareTextures(e,!0),t.framebuffer=this._fboClassified.framebuffer,this._translucentCommand.execute(e,t),t.framebuffer=n}this._classifiedCommand.execute(e,t)};t0.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};t0.prototype.isDestroyed=function(){return!1};t0.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),he(this)};var Y1=t0;var Tqi=x(T(),1);function U3(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(U3.prototype,{total:{get:function(){return this._total}}});function Ix(e){let t=new Array(Zc.NUMBER_OF_JOB_TYPES);t[Zc.TEXTURE]=new U3(l(e)?e[Zc.TEXTURE]:10),t[Zc.PROGRAM]=new U3(l(e)?e[Zc.PROGRAM]:10),t[Zc.BUFFER]=new U3(l(e)?e[Zc.BUFFER]:30);let n=t.length,i,o=0;for(i=0;i<n;++i)o+=t[i].total;let r=new Array(n);for(i=0;i<n;++i)r[i]=!1;this._totalBudget=o,this._totalUsedThisFrame=0,this._budgets=t,this._executedThisFrame=r}Ix.getTimestamp=Ni;Object.defineProperties(Ix.prototype,{totalBudget:{get:function(){return this._totalBudget}}});Ix.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};Ix.prototype.resetBudgets=function(){let e=this._budgets,t=e.length;for(let n=0;n<t;++n){let i=e[n];i.starvedLastFrame=i.starvedThisFrame,i.starvedThisFrame=!1,i.usedThisFrame=0,i.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0};Ix.prototype.execute=function(e,t){let n=this._budgets,i=n[t],o=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&o)return i.starvedThisFrame=!0,!1;let r;if(i.usedThisFrame+i.stolenFromMeThisFrame>=i.total){let c=n.length,d;for(d=0;d<c&&(r=n[d],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++d);if(d===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=Ix.getTimestamp();e.execute();let a=Ix.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var Aw=Ix;var Rqi=x(T(),1);function D3(e){e=e??B.EMPTY_OBJECT;let t=Pn(e.container);this._container=t;let n=document.createElement("div");n.className="cesium-performanceDisplay";let i=document.createElement("div");i.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),i.appendChild(this._fpsText);let o=document.createElement("div");o.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),o.appendChild(this._msText),n.appendChild(o),n.appendChild(i),this._container.appendChild(n),this._lastFpsSampleTime=Ni(),this._lastMsSampleTime=Ni(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;let r=document.createElement("div");r.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),r.appendChild(this._throttledText),n.appendChild(r)}Object.defineProperties(D3.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});D3.prototype.update=function(e){let t=Ni(),n=e??!0;this._fpsFrameCount++;let i=t-this._lastFpsSampleTime;if(i>1e3){let r="N/A";n&&(r=this._fpsFrameCount*1e3/i|0),this._fpsText.nodeValue=`${r} FPS`,this._lastFpsSampleTime=t,this._fpsFrameCount=0}this._msFrameCount++;let o=t-this._lastMsSampleTime;if(o>200){let r="N/A";n&&(r=(o/this._msFrameCount).toFixed(2)),this._msText.nodeValue=`${r} MS`,this._lastMsSampleTime=t,this._msFrameCount=0}};D3.prototype.destroy=function(){return he(this)};var hg=D3;var Hno=x(T(),1);var wqi=x(T(),1);var dc={};dc.decodeRawMetadataValue=function(e,t,n){switch(e){case It.INT8:return t.getInt8(n);case It.UINT8:return t.getUint8(n);case It.INT16:return t.getInt16(n,!0);case It.UINT16:return t.getUint16(n,!0);case It.INT32:return t.getInt32(n,!0);case It.UINT32:return t.getUint32(n,!0);case It.INT64:return t.getBigInt64(n,!0);case It.UINT64:return t.getBigUint64(n,!0);case It.FLOAT32:return t.getFloat32(n,!0);case It.FLOAT64:return t.getFloat64(n,!0)}throw new ae(`Invalid component type: ${e}`)};dc.decodeRawMetadataValueComponent=function(e,t,n){let i=e.componentType,o=dc.decodeRawMetadataValue(i,t,n);return e.normalized?It.normalize(o,i):o};dc.decodeRawMetadataValueElement=function(e,t,n){let i=e.componentType,o=It.getSizeInBytes(i),r=e.type,s=pt.getComponentCount(r),a=o*s;if(s>1){let u=Array(s);for(let m=0;m<s;m++){let p=n*a+m*o,b=dc.decodeRawMetadataValueComponent(e,t,p);u[m]=b}return u}let c=n*a;return dc.decodeRawMetadataValueComponent(e,t,c)};dc.decodeRawMetadataValues=function(e,t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(e.isArray){let o=e.arrayLength,r=Array(o);for(let s=0;s<o;s++){let a=dc.decodeRawMetadataValueElement(e,n,s);r[s]=a}return r}return dc.decodeRawMetadataValueElement(e,n,0)};dc.convertToObjectType=function(e,t){if(!l(t)||e===pt.SCALAR||e===pt.STRING||e===pt.BOOLEAN||e===pt.ENUM)return t;let n=t.map(i=>Number(i));switch(e){case pt.VEC2:return k.unpack(n,0,new k);case pt.VEC3:return h.unpack(n,0,new h);case pt.VEC4:return ce.unpack(n,0,new ce);case pt.MAT2:return Ui.unpack(n,0,new Ui);case pt.MAT3:return $.unpack(n,0,new $);case pt.MAT4:return F.unpack(n,0,new F)}throw new ae(`Invalid metadata object type: ${e}`)};dc.convertFromObjectType=function(e,t){if(!l(t)||e===pt.SCALAR||e===pt.STRING||e===pt.BOOLEAN||e===pt.ENUM)return t;switch(e){case pt.VEC2:return k.pack(t,Array(2));case pt.VEC3:return h.pack(t,Array(3));case pt.VEC4:return ce.pack(t,Array(4));case pt.MAT2:return Ui.pack(t,Array(4));case pt.MAT3:return $.pack(t,Array(9));case pt.MAT4:return F.pack(t,Array(16))}throw new ae(`Invalid metadata object type: ${e}`)};dc.decodeMetadataValues=function(e,t,n){let i=dc.decodeRawMetadataValues(e,n);if(t.hasValueTransform){let r=dc.convertFromObjectType(e.type,t.offset),s=dc.convertFromObjectType(e.type,t.scale);i=cp.valueTransformInPlace(i,r,s,It.applyValueTransform)}if(e.isArray){let r=e.arrayLength,s=Array(r);for(let a=0;a<r;a++){let c=i[a],d=dc.convertToObjectType(e.type,c);s[a]=d}return s}return dc.convertToObjectType(e.type,i)};var Zw=Object.freeze(dc);var zqi=x(T(),1);function JS(){this._framebuffer=new Zi,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(JS.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function oZt(e,t,n){let{width:i,height:o}=n;e._framebuffer.update(t,i,o)}function rZt(e,t,n){l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(`uniform highp sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 globeDepthPacked = texture(czm_globeDepthTexture, v_textureCoordinates); + float globeDepth = czm_unpackDepth(globeDepthPacked); + float depth = texture(colorTexture, v_textureCoordinates).r; + out_FragColor = czm_branchFreeTernary(globeDepth <= 0.0 || globeDepth >= 1.0 || depth < globeDepth && depth > 0.0 && depth < 1.0, + czm_packDepth(depth), globeDepthPacked); +} +`,{renderState:Be.fromCache(),uniformMap:{colorTexture:function(){return e._textureToCopy}},owner:e})),e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}JS.prototype.update=function(e,t){oZt(this,e,t),rZt(this,e,t)};var sZt=new ce,aZt=new ce(1,1/255,1/65025,1/16581375);JS.prototype.getDepth=function(e,t,n){if(!l(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=ce.unpack(i,0,sZt);return ce.divideByScalar(o,255,o),ce.dot(o,aZt)};JS.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};JS.prototype.isDestroyed=function(){return!1};JS.prototype.destroy=function(){return this._framebuffer.destroy(),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=l(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),he(this)};var Cw=JS;var Tno=x(T(),1);var t$i=x(T(),1);function Px(e){e=e||{},this._framebufferManager=new Zi({colorAttachmentsLength:3,createColorAttachments:!0,depthStencil:!0,supportsDepthTexture:!0,color:!0}),this._framebuffer=void 0,this._colorTexture=void 0,this._idTexture=void 0,this._depthTexture=void 0,this._depthStencilTexture=void 0,this._clearCommand=new mi({color:new U(0,0,0,0),depth:1,stencil:0,owner:this})}Object.defineProperties(Px.prototype,{framebuffer:{get:function(){return this._framebuffer}},colorTexture:{get:function(){return this._colorTexture}},idTexture:{get:function(){return this._idTexture}},depthTexture:{get:function(){return this._depthTexture}},depthStencilTexture:{get:function(){return this._depthStencilTexture}}});Px.prototype.update=function(e,t,n,i,o){let r=t.width,s=t.height,a=n?e.halfFloatingPointTexture?ze.HALF_FLOAT:ze.FLOAT:ze.UNSIGNED_BYTE,c=this._framebufferManager.update(e,r,s,1,a,Qe.RGBA);return this._framebufferManager.framebuffer&&(this._framebuffer=this._framebufferManager.framebuffer,this._colorTexture=l(i)?i:this._framebufferManager.getColorTexture(0),this._idTexture=this._framebufferManager.getColorTexture(1),this._depthTexture=this._framebufferManager.getColorTexture(2),this._depthStencilTexture=l(o)?o:this._framebufferManager.getDepthStencilTexture()),c};Px.prototype.clear=function(e,t,n){this.getClearCommand(n).execute(e,t)};Px.prototype.getClearCommand=function(e){return this._clearCommand.framebuffer=this._framebuffer,l(e)&&U.clone(e,this._clearCommand.color),this._clearCommand};Px.prototype.getFramebuffer=function(e,t,n,i){return this.update(e,t,!1,n,i),this._framebuffer};Px.prototype.isDestroyed=function(){return!1};Px.prototype.destroy=function(){return this._framebufferManager=this._framebufferManager&&this._framebufferManager.destroy(),this._clearCommand=void 0,he(this)};var Rw=Px;var o$i=x(T(),1);function cZt(e,t){this.near=e??0,this.far=t??0;let n=Le.NUMBER_OF_PASSES,i=new Array(n),o=new Array(n);for(let r=0;r<n;++r)i[r]=[],o[r]=0;this.commands=i,this.indices=o}var Vw=cZt;var S$i=x(T(),1);var s$i=x(T(),1),Xx=`uniform highp sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r); +} +`;function n0(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new Zi({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new Zi({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new Zi,this._tempCopyDepthFramebuffer=new Zi,this._updateDepthFramebuffer=new Zi({createColorAttachments:!1,createDepthAttachments:!1,depthStencil:!0}),this._clearGlobeColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new it,this._rs=void 0,this._rsBlend=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0,this._clearGlobeDepth=void 0}Object.defineProperties(n0.prototype,{colorFramebufferManager:{get:function(){return this._picking?this._pickColorFramebuffer:this._outputFramebuffer}},framebuffer:{get:function(){return this.colorFramebufferManager.framebuffer}},depthStencilTexture:{get:function(){return this.colorFramebufferManager.getDepthStencilTexture()}},picking:{get:function(){return this._picking},set:function(e){this._picking=e}}});function RVe(e,t,n,i,o){let r=e._viewport;r.width=n,r.height=i;let s=!it.equals(r,o.viewport),a=s!==e._useScissorTest;e._useScissorTest=s,it.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=it.clone(o.viewport,e._scissorRectangle),a=!0),(!l(e._rs)||!it.equals(r,e._rs.viewport)||a)&&(e._rs=Be.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=Be.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:nn.ALPHA_BLEND}),e._rsUpdate=Be.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Jn.EQUAL,frontOperation:{fail:Gt.KEEP,zFail:Gt.KEEP,zPass:Gt.KEEP},backFunction:Jn.NEVER,reference:Kt.CESIUM_3D_TILE_MASK,mask:Kt.CESIUM_3D_TILE_MASK}})),l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(Xx,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,l(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(kd,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,l(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(Xx,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,l(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(kd,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,l(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new mi({color:new U(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}n0.prototype.update=function(e,t,n,i,o,r){let{width:s,height:a}=n,c=o?e.halfFloatingPointTexture?ze.HALF_FLOAT:ze.FLOAT:ze.UNSIGNED_BYTE;this._numSamples=i,this.picking?this._pickColorFramebuffer.update(e,s,a):this._outputFramebuffer.update(e,s,a,i,c),this._copyDepthFramebuffer.update(e,s,a),RVe(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._clearGlobeDepth=r};n0.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};n0.prototype.executeCopyDepth=function(e,t){l(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};n0.prototype.executeUpdateDepth=function(e,t,n){let i=l(n)?n:t.framebuffer.depthStencilTexture;if(!this._clearGlobeDepth&&i===this.colorFramebufferManager.getDepthStencilTexture()){l(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t);return}if(!l(this._updateDepthCommand))return;let o=this._updateDepthFramebuffer;if(!l(o.framebuffer)||o.getDepthStencilTexture()!==i||o.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let r=this._copyDepthFramebuffer.getColorTexture(),{width:s,height:a}=r;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,s,a),o.setColorTexture(r,0),o.setDepthStencilTexture(i),o.update(e,s,a),RVe(this,e,s,a,t)}this._tempCopyDepthTexture=i,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)};n0.prototype.executeCopyColor=function(e,t){l(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};n0.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;l(i)&&(U.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};n0.prototype.isDestroyed=function(){return!1};n0.prototype.destroy=function(){return this._pickColorFramebuffer.destroy(),this._outputFramebuffer.destroy(),this._copyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.destroy(),this._updateDepthFramebuffer.destroy(),l(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),l(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),l(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),he(this)};var Gw=n0;var F$i=x(T(),1);function jS(){this._framebuffer=new Zi({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new Zi,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new it,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(jS.prototype,{classificationTexture:{get:function(){return this._framebuffer.getColorTexture()}},classificationFramebuffer:{get:function(){return this._framebuffer.framebuffer}},packedDepthFramebuffer:{get:function(){return this._packedDepthFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._framebuffer.getDepthStencilTexture()}},depthStencilRenderbuffer:{get:function(){return this._framebuffer.getDepthStencilRenderbuffer()}},packedDepthTexture:{get:function(){return this._packedDepthFramebuffer.getColorTexture()}}});function lZt(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function dZt(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?ze.HALF_FLOAT:ze.FLOAT:ze.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function uZt(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!it.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,it.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=it.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._renderState)||!it.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=Be.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(Xx,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),l(e._clearCommand)||(e._clearCommand=new mi({color:new U(0,0,0,0),depth:1,stencil:0,owner:e})),e._packedDepthCommand.framebuffer=e._packedDepthFramebuffer.framebuffer,e._packedDepthCommand.renderState=e._renderState,e._clearCommand.framebuffer=e.classificationFramebuffer,e._clearCommand.renderState=e._renderState}jS.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;dZt(this,n,o,r,e),uZt(this,n,o,r,i),this._useHdr=e};jS.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};jS.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};jS.prototype.isDestroyed=function(){return!1};jS.prototype.destroy=function(){return lZt(this),he(this)};var Ew=jS;var neo=x(T(),1);var P$i=x(T(),1),N1=`#ifdef MRT +layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1; +#else +layout (location = 0) out vec4 out_FragColor; +#endif + +uniform vec4 u_bgColor; +uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + if (texture(u_depthTexture, v_textureCoordinates).r < 1.0) + { +#ifdef MRT + out_FragData_0 = u_bgColor; + out_FragData_1 = vec4(u_bgColor.a); +#else + out_FragColor = u_bgColor; +#endif + return; + } + + discard; +} +`;var Y$i=x(T(),1),Lw=`/** + * Compositing for Weighted Blended Order-Independent Transparency. See: + * - http://jcgt.org/published/0002/02/09/ + * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html + */ + +uniform sampler2D u_opaque; +uniform sampler2D u_accumulation; +uniform sampler2D u_revealage; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 opaque = texture(u_opaque, v_textureCoordinates); + vec4 accum = texture(u_accumulation, v_textureCoordinates); + float r = texture(u_revealage, v_textureCoordinates).r; + +#ifdef MRT + vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a); +#else + vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r); +#endif + + out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque; + + if (opaque != czm_backgroundColor) + { + out_FragColor.a = 1.0; + } +} +`;function fg(e){this._numSamples=1,this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;let t=e.colorBufferFloat&&e.depthTexture&&e.floatBlend;this._translucentMRTSupport=e.drawBuffers&&t,this._translucentMultipassSupport=!this._translucentMRTSupport&&t,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=new Zi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new Zi({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new Zi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new Zi({createColorAttachments:!1}),this._opaqueClearCommand=new mi({color:new U(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new mi({color:new U(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new mi({color:new U(0,0,0,0),owner:this}),this._alphaClearCommand=new mi({color:new U(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new it,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function VVe(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function cte(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function GVe(e){VVe(e),cte(e)}function mZt(e,t,n,i){VVe(e),e._accumulationTexture=new Ft({context:t,width:n,height:i,pixelFormat:Qe.RGBA,pixelDatatype:ze.FLOAT}),e._revealageTexture=new Ft({context:t,pixelFormat:Qe.RGBA,pixelDatatype:ze.FLOAT,width:n,height:i,flipY:!1})}function hZt(e,t){cte(e);let n=ne.FRAMEBUFFER_COMPLETE,i=!0,{width:o,height:r}=e._accumulationTexture;if(e._translucentMRTSupport&&(e._translucentFBO.setColorTexture(e._accumulationTexture,0),e._translucentFBO.setColorTexture(e._revealageTexture,1),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture,0),e._adjustTranslucentFBO.setColorTexture(e._revealageTexture,1),e._adjustTranslucentFBO.update(t,o,r),(e._translucentFBO.status!==n||e._adjustTranslucentFBO.status!==n)&&(cte(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO.setColorTexture(e._accumulationTexture),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._alphaFBO.setColorTexture(e._revealageTexture),e._alphaFBO.setDepthStencilTexture(e._depthStencilTexture),e._alphaFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture),e._adjustTranslucentFBO.update(t,o,r),e._adjustAlphaFBO.setColorTexture(e._revealageTexture),e._adjustAlphaFBO.update(t,o,r);let s=e._translucentFBO.status===n,a=e._alphaFBO.status===n,c=e._adjustTranslucentFBO.status===n,d=e._adjustAlphaFBO.status===n;(!s||!a||!c||!d)&&(GVe(e),e._translucentMultipassSupport=!1,i=!1)}return i}fg.prototype.update=function(e,t,n,i,o){if(!this.isSupported())return;this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.getDepthStencilTexture();let{width:r,height:s}=this._opaqueTexture,a=this._accumulationTexture,c=!l(a)||a.width!==r||a.height!==s||i!==this._useHDR,d=this._numSamples!==o;if((c||d)&&(this._numSamples=o,mZt(this,e,r,s)),(!l(this._translucentFBO.framebuffer)||c||d)&&!hZt(this,e))return;this._useHDR=i;let u=this,m,p;l(this._compositeCommand)||(m=new He({sources:[Lw]}),this._translucentMRTSupport&&m.defines.push("MRT"),p={u_opaque:function(){return u._opaqueTexture},u_accumulation:function(){return u._accumulationTexture},u_revealage:function(){return u._revealageTexture}},this._compositeCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this})),l(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(m=new He({defines:["MRT"],sources:[N1]}),p={u_bgColor:function(){return u._translucentMRTClearCommand.color},u_depthTexture:function(){return u._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this})):this._translucentMultipassSupport&&(m=new He({sources:[N1]}),p={u_bgColor:function(){return u._translucentMultipassClearCommand.color},u_depthTexture:function(){return u._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this}),p={u_bgColor:function(){return u._alphaClearCommand.color},u_depthTexture:function(){return u._depthStencilTexture}},this._adjustAlphaCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this}))),this._viewport.width=r,this._viewport.height=s;let b=!it.equals(this._viewport,t.viewport),f=b!==this._useScissorTest;this._useScissorTest=b,it.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=it.clone(t.viewport,this._scissorRectangle),f=!0),(!l(this._rs)||!it.equals(this._viewport,this._rs.viewport)||f)&&(this._rs=Be.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),l(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var fZt={enabled:!0,color:new U(0,0,0,0),equationRgb:yc.ADD,equationAlpha:yc.ADD,functionSourceRgb:Do.ONE,functionDestinationRgb:Do.ONE,functionSourceAlpha:Do.ZERO,functionDestinationAlpha:Do.ONE_MINUS_SOURCE_ALPHA},pZt={enabled:!0,color:new U(0,0,0,0),equationRgb:yc.ADD,equationAlpha:yc.ADD,functionSourceRgb:Do.ONE,functionDestinationRgb:Do.ONE,functionSourceAlpha:Do.ONE,functionDestinationAlpha:Do.ONE},bZt={enabled:!0,color:new U(0,0,0,0),equationRgb:yc.ADD,equationAlpha:yc.ADD,functionSourceRgb:Do.ZERO,functionDestinationRgb:Do.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:Do.ZERO,functionDestinationAlpha:Do.ONE_MINUS_SOURCE_ALPHA};function lte(e,t,n,i){let o=n[i.id];if(!l(o)){let r=Be.getState(i);r.depthMask=!1,r.blending=t,o=Be.fromCache(r),n[i.id]=o}return o}function gZt(e,t,n){return lte(t,fZt,e._translucentRenderStateCache,n)}function yZt(e,t,n){return lte(t,pZt,e._translucentRenderStateCache,n)}function xZt(e,t,n){return lte(t,bZt,e._alphaRenderStateCache,n)}var TZt=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragData_0 = vec4(Ci * wzi, ai); + out_FragData_1 = vec4(ai * wzi); +`,_Zt=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragColor = vec4(Ci, ai) * wzi; +`,SZt=` float ai = czm_out_FragColor.a; + out_FragColor = vec4(ai); +`;function dte(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(l(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(u){return He.replaceMain(u,"czm_translucent_main").replace(/out_FragColor/g,"czm_out_FragColor").replace(/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,"").replace(/\bdiscard\b/g,"czm_discard = true").replace(/czm_phong/g,"czm_translucentPhong")}),a.sources.splice(0,0,`#define CESIUM_REDIRECTED_COLOR_OUTPUT +vec4 czm_out_FragColor; +bool czm_discard = false; +`);let c=[...i.matchAll(/out_FragData_(\d+)/g)],d="";for(let u=0;u<c.length;u++){let m=c[u];d=`layout (location = ${m[1]}) out vec4 ${m[0]}; +${d}`}return a.sources.push(d),a.sources.push(`void main() +{ + czm_translucent_main(); + if (czm_discard) + { + discard; + } +${i}} +`),o.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function AZt(e,t){return dte(e,t,"translucentMRT",TZt)}function ZZt(e,t){return dte(e,t,"translucentMultipass",_Zt)}function CZt(e,t){return dte(e,t,"alphaMultipass",SZt)}fg.prototype.createDerivedCommands=function(e,t,n){if(l(n)||(n={}),this._translucentMRTSupport){let a,c;return l(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=at.shallowClone(e,n.translucentCommand),!l(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=AZt(t,e.shaderProgram),n.translucentCommand.renderState=gZt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return l(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=at.shallowClone(e,n.translucentCommand),n.alphaCommand=at.shallowClone(e,n.alphaCommand),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=ZZt(t,e.shaderProgram),n.translucentCommand.renderState=yZt(this,t,e.renderState),n.alphaCommand.shaderProgram=CZt(t,e.shaderProgram),n.alphaCommand.renderState=xZt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=i,n.translucentCommand.renderState=o,n.alphaCommand.shaderProgram=r,n.alphaCommand.renderState=s),n};function RZt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:d}=a,u=t._hdr,m=i.framebuffer,p=d.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(s,i);let b=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;for(let f=0;f<o.length;++f){let y=o[f];y=c?y.derivedCommands.logDepth.command:y,y=u?y.derivedCommands.hdr.command:y;let _=p&&y.receiveShadows?y.derivedCommands.oit.shadows.translucentCommand:y.derivedCommands.oit.translucentCommand;n(_,t,i,b)}if(l(r)){let f=r.unclassifiedCommand,y=p&&f.receiveShadows?f.derivedCommands.oit.shadows.translucentCommand:f.derivedCommands.oit.translucentCommand;n(y,t,i,b)}i.framebuffer=e._alphaFBO.framebuffer;for(let f=0;f<o.length;++f){let y=o[f];y=c?y.derivedCommands.logDepth.command:y,y=u?y.derivedCommands.hdr.command:y;let _=p&&y.receiveShadows?y.derivedCommands.oit.shadows.alphaCommand:y.derivedCommands.oit.alphaCommand;n(_,t,i,b)}if(l(r)){let f=r.unclassifiedCommand,y=p&&f.receiveShadows?f.derivedCommands.oit.shadows.alphaCommand:f.derivedCommands.oit.alphaCommand;n(y,t,i,b)}i.framebuffer=m}function VZt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:d}=a,u=t._hdr,m=i.framebuffer,p=d.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let b=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;for(let f=0;f<o.length;++f){let y=o[f];y=c?y.derivedCommands.logDepth.command:y,y=u?y.derivedCommands.hdr.command:y;let _=p&&y.receiveShadows?y.derivedCommands.oit.shadows.translucentCommand:y.derivedCommands.oit.translucentCommand;n(_,t,i,b)}if(l(r)){let f=r.unclassifiedCommand,y=p&&f.receiveShadows?f.derivedCommands.oit.shadows.translucentCommand:f.derivedCommands.oit.translucentCommand;n(y,t,i,b)}i.framebuffer=m}fg.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){VZt(this,e,t,n,i,o);return}RZt(this,e,t,n,i,o)};fg.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};fg.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,U.clone(n,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,t),t.framebuffer=this._translucentFBO.framebuffer,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,t),this._translucentMultipassSupport&&(t.framebuffer=this._alphaFBO.framebuffer,this._alphaClearCommand.execute(e,t)),t.framebuffer=i};fg.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};fg.prototype.isDestroyed=function(){return!1};fg.prototype.destroy=function(){return GVe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),he(this)};var Ww=fg;var ceo=x(T(),1);function vw(){this._framebuffer=new Zi({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(vw.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function GZt(e){e._framebuffer.destroy()}function EZt(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new sl(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new it},o.viewport=new it,e._passState=o}vw.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&EZt(this,e);let r=this.framebuffer,s=this._passState;return s.framebuffer=r,s.viewport.width=i,s.viewport.height=o,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=o-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s};vw.prototype.isDestroyed=function(){return!1};vw.prototype.destroy=function(){return GZt(this),he(this)};var Fw=vw;var Teo=x(T(),1);function QS(e){let t=new sl(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new it},t.viewport=new it,this._context=e,this._fb=new Zi({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}function EVe(e,t,n,i,o=1){let r=Math.max(n,i),s=r*r,a=Math.floor(n*.5),c=Math.floor(i*.5),d=0,u=0,m=0,p=-1,b=new Set;for(let f=0;f<s;++f){if(-a<=d&&d<=a&&-c<=u&&u<=c){let y=4*((c-u)*n+d+a),_=U.bytesToRgba(t[y],t[y+1],t[y+2],t[y+3]),S=e.getObjectByPickColor(_);if(l(S)&&(b.add(S),b.size>=o))break}if(d===u||d<0&&-d===u||d>0&&d===1-u){let y=m;m=-p,p=y}d+=m,u+=p}return[...b]}QS.prototype.begin=function(e,t){let n=this._context,{width:i,height:o}=t;return it.clone(e,this._passState.scissorTest.rectangle),this._width=i,this._height=o,this._fb.update(n,i,o),this._passState.framebuffer=this._fb.framebuffer,this._passState.viewport.width=i,this._passState.viewport.height=o,this._passState};QS.prototype.endAsync=async function(e,t,n=1){let i=e.width??1,o=e.height??1,r=this._context,s=this._fb.framebuffer,a=ze.UNSIGNED_BYTE,c=Qe.RGBA;l(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype,c=s.getColorTexture(0).pixelFormat);let d=r.readPixelsToPBO({x:e.x,y:e.y,width:i,height:o,framebuffer:s}),u=GN.create({context:r});try{await u.waitForSignal(b=>t.afterRender.push(b));let m=Qe.createTypedArray(c,a,i,o);return d.getBufferData(m),EVe(r,m,i,o,n)}catch{throw new ae("Async Picking Request Timeout")}finally{u.destroy(),d.destroy()}};QS.prototype.end=function(e,t=1){let n=e.width??1,i=e.height??1,o=this._context,r=o.readPixels({x:e.x,y:e.y,width:n,height:i,framebuffer:this._fb.framebuffer});return EVe(o,r,n,i,t)};QS.prototype.readCenterPixel=function(e){let t=e.width??1,n=e.height??1,o=this._context.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.floor(t*.5),a=4*(Math.floor(n*.5)*t+r);return o.slice(a,a+4)};QS.prototype.isDestroyed=function(){return!1};QS.prototype.destroy=function(){return this._fb.destroy(),he(this)};var Iw=QS;var Veo=x(T(),1);function pg(){this._numSamples=1,this._colorFramebuffer=new Zi({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new Zi({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new U(0,0,0,0),this._clearCommand=new mi({color:new U(0,0,0,0),depth:1,owner:this})}function LZt(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(pg.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});pg.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?ze.HALF_FLOAT:ze.FLOAT:ze.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};pg.prototype.clear=function(e,t,n){U.clone(n,this._clearCommand.color),U.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};pg.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};pg.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};pg.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};pg.prototype.isDestroyed=function(){return!1};pg.prototype.destroy=function(){return LZt(this),he(this)};var qS=pg;var Zto=x(T(),1);var Weo=x(T(),1);function $S(){}$S.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};$S.createShadowCastVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);i.push("SHADOW_MAP"),n&&i.push("GENERATE_POSITION");let r=He.findPositionVarying(e),s=l(r);if(t&&!s){let a=o.length;for(let d=0;d<a;++d)o[d]=He.replaceMain(o[d],"czm_shadow_cast_main");o.push(`out vec3 v_positionEC; +void main() +{ + czm_shadow_cast_main(); + v_positionEC = (czm_inverseProjection * gl_Position).xyz; +}`)}return new He({defines:i,sources:o})};$S.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=He.findPositionVarying(e),a=l(s);a||(s="v_positionEC");let c=r.length;for(let u=0;u<c;++u)r[u]=He.replaceMain(r[u],"czm_shadow_cast_main");let d="";return t&&(a||(d+=`in vec3 v_positionEC; +`),d+=`uniform vec4 shadowMap_lightPositionEC; +`),i?d+=`void main() +{ +`:d+=`void main() +{ + czm_shadow_cast_main(); + if (out_FragColor.a == 0.0) + { + discard; + } +`,t?d+=` float distance = length(${s}); + if (distance >= shadowMap_lightPositionEC.w) + { + discard; + } + distance /= shadowMap_lightPositionEC.w; // radius + out_FragColor = czm_packDepth(distance); +`:n?d+=` out_FragColor = vec4(1.0); +`:d+=` out_FragColor = czm_packDepth(gl_FragCoord.z); +`,d+=`} +`,r.push(d),new He({defines:o,sources:r})};$S.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,d=e.debugCascadeColors,u=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${d}${u}${t}${n}${i}`};$S.createShadowReceiveVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);return i.push("SHADOW_MAP"),t&&(n?i.push("GENERATE_POSITION_AND_NORMAL"):i.push("GENERATE_POSITION")),new He({defines:i,sources:o})};$S.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=He.findNormalVarying(e),s=!i&&l(r)||i&&o,a=He.findPositionVarying(e),c=l(a),d=t._usesDepthTexture,u=t._polygonOffsetSupported,m=t._isPointLight,p=t._isSpotLight,b=t._numberOfCascades>1,f=t.debugCascadeColors,y=t.softShadows,_=m?t._pointBias:i?t._terrainBias:t._primitiveBias,S=e.defines.slice(0),A=e.sources.slice(0),Z=A.length;for(let E=0;E<Z;++E)A[E]=He.replaceMain(A[E],"czm_shadow_receive_main");m?S.push("USE_CUBE_MAP_SHADOW"):d&&S.push("USE_SHADOW_DEPTH_TEXTURE"),y&&!m&&S.push("USE_SOFT_SHADOWS"),b&&n&&i&&(s?S.push("ENABLE_VERTEX_LIGHTING"):S.push("ENABLE_DAYNIGHT_SHADING")),n&&_.normalShading&&s&&(S.push("USE_NORMAL_SHADING"),_.normalShadingSmooth>0&&S.push("USE_NORMAL_SHADING_SMOOTH"));let R="";m?R+=`uniform samplerCube shadowMap_textureCube; +`:R+=`uniform sampler2D shadowMap_texture; +`;let G;return c?G=` return vec4(${a}, 1.0); +`:G=`#ifndef LOG_DEPTH + return czm_windowToEyeCoordinates(gl_FragCoord); +#else + return vec4(v_logPositionEC, 1.0); +#endif +`,R+=`uniform mat4 shadowMap_matrix; +uniform vec3 shadowMap_lightDirectionEC; +uniform vec4 shadowMap_lightPositionEC; +uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; +uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; +#ifdef LOG_DEPTH +in vec3 v_logPositionEC; +#endif +vec4 getPositionEC() +{ +${G}} +vec3 getNormalEC() +{ +${s?` return normalize(${r}); +`:` return vec3(1.0); +`}} +void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL) +{ +${_.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x; + float normalOffsetScale = 1.0 - nDotL; + vec3 offset = normalOffset * normalOffsetScale * normalEC; + positionEC.xyz += offset; +`:""}} +`,R+=`void main() +{ + czm_shadow_receive_main(); + vec4 positionEC = getPositionEC(); + vec3 normalEC = getNormalEC(); + float depth = -positionEC.z; +`,R+=` czm_shadowParameters shadowParameters; + shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; + shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; + shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; + shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; +`,i?R+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0); +`:u||(R+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); +`),m?R+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; + float distance = length(directionEC); + directionEC = normalize(directionEC); + float radius = shadowMap_lightPositionEC.w; + // Stop early if the fragment is beyond the point light radius + if (distance > radius) + { + return; + } + vec3 directionWC = czm_inverseViewRotation * directionEC; + shadowParameters.depth = distance / radius; + shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + shadowParameters.texCoords = directionWC; + float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters); +`:p?R+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz); + float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Spot light uses a perspective projection, so perform the perspective divide + shadowPosition /= shadowPosition.w; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`:b?R+=` float maxDepth = shadowMap_cascadeSplits[1].w; + // Stop early if the eye depth exceeds the last cascade + if (depth > maxDepth) + { + return; + } + // Get the cascade based on the eye-space depth + vec4 weights = czm_cascadeWeights(depth); + // Apply normal offset + float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + // Transform position into the cascade + vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; + // Get visibility + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); + // Fade out shadows that are far away + float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z; + float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0); + visibility = mix(visibility, 1.0, fade); +${f?` // Draw cascade colors for debugging + out_FragColor *= czm_cascadeColor(weights); +`:""}`:R+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`,R+=` out_FragColor.rgb *= visibility; +} +`,A.push(R),new He({defines:S,sources:A})};var i0=$S;function o0(e){e=e??B.EMPTY_OBJECT;let t=e.context;this._enabled=e.enabled??!0,this._softShadows=e.softShadows??!1,this._normalOffset=e.normalOffset??!0,this.dirty=!0,this.fromLightSource=e.fromLightSource??!0,this.darkness=e.darkness??.3,this._darkness=this.darkness,this.fadingEnabled=e.fadingEnabled??!0,this.maximumDistance=e.maximumDistance??5e3,this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;let n=!0;(mn.isEdge()||(mn.isChrome()||mn.isFirefox())&&mn.isWindows()&&!t.depthTexture)&&(n=!1),this._polygonOffsetSupported=n,this._terrainBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new F,this._shadowMapTexture=void 0,this._lightDirectionEC=new h,this._lightPositionEC=new ce,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new O3,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new ue,this._isPointLight=e.isPointLight??!1,this._pointLightRadius=e.pointLightRadius??100,this._cascadesEnabled=this._isPointLight?!1:e.cascadesEnabled??!0,this._numberOfCascades=this._cascadesEnabled?e.numberOfCascades??4:0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new k,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new rs:l(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new ce,new ce],this._cascadeMatrices=[new F,new F,new F,new F],this._cascadeDistances=new ce;let i;this._isPointLight?i=6:this._cascadesEnabled?i=this._numberOfCascades:i=1,this._passes=new Array(i);for(let o=0;o<i;++o)this._passes[o]=new WZt(t);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=t.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,mte(this),this._clearCommand=new mi({depth:1,color:new U}),this._clearPassState=new sl(t),this._size=e.size??2048,this.size=this._size}o0.MAXIMUM_DISTANCE=2e4;function WZt(e){this.camera=new O3,this.passState=new sl(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function ute(e,t){return Be.fromCache({cull:{enabled:!0,face:Ii.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function mte(e){let t=!e._usesDepthTexture;e._primitiveRenderState=ute(t,e._primitiveBias),e._terrainRenderState=ute(t,e._terrainBias),e._pointRenderState=ute(t,e._pointBias)}o0.prototype.debugCreateRenderStates=function(){mte(this)};Object.defineProperties(o0.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){YZt(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});function hte(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;l(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function vZt(e,t){let n=new cu({context:t,width:e._textureSize.x,height:e._textureSize.y,format:Yl.DEPTH_COMPONENT16}),i=new Ft({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:Qe.RGBA,pixelDatatype:ze.UNSIGNED_BYTE,sampler:Ht.NEAREST}),o=new is({context:t,depthRenderbuffer:n,colorTextures:[i],destroyAttachments:!1}),r=e._passes.length;for(let s=0;s<r;++s){let a=e._passes[s];a.framebuffer=o,a.passState.framebuffer=o}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function FZt(e,t){let n=new Ft({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:Qe.DEPTH_STENCIL,pixelDatatype:ze.UNSIGNED_INT_24_8,sampler:Ht.NEAREST}),i=new is({context:t,depthStencilTexture:n,destroyAttachments:!1}),o=e._passes.length;for(let r=0;r<o;++r){let s=e._passes[r];s.framebuffer=i,s.passState.framebuffer=i}e._shadowMapTexture=n,e._depthAttachment=n}function IZt(e,t){let n=new cu({context:t,width:e._textureSize.x,height:e._textureSize.y,format:Yl.DEPTH_COMPONENT16}),i=new Ur({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:Qe.RGBA,pixelDatatype:ze.UNSIGNED_BYTE,sampler:Ht.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new is({context:t,depthRenderbuffer:n,colorTextures:[o[r]],destroyAttachments:!1}),a=e._passes[r];a.framebuffer=s,a.passState.framebuffer=s}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function vVe(e,t){e._isPointLight?IZt(e,t):e._usesDepthTexture?FZt(e,t):vZt(e,t)}function PZt(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==ne.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,mte(e),hte(e),vVe(e,t))}function XZt(e,t){(!l(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(hte(e),vVe(e,t),PZt(e,t),FVe(e,t))}function FVe(e,t,n){n=n??0,(e._isPointLight||n===0)&&(e._clearCommand.framebuffer=e._passes[n].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function YZt(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=Xt.maximumCubeMapSize>=t?t:Xt.maximumCubeMapSize,o.x=t,o.y=t;let r=new it(0,0,t,t);n[0].passState.viewport=r,n[1].passState.viewport=r,n[2].passState.viewport=r,n[3].passState.viewport=r,n[4].passState.viewport=r,n[5].passState.viewport=r}else i===1?(t=Xt.maximumTextureSize>=t?t:Xt.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new it(0,0,t,t)):i===4&&(t=Xt.maximumTextureSize>=t*2?t:Xt.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new it(0,0,t,t),n[1].passState.viewport=new it(t,0,t,t),n[2].passState.viewport=new it(0,t,t,t),n[3].passState.viewport=new it(t,t,t,t));e._clearPassState.viewport=new it(0,0,o.x,o.y);for(let r=0;r<i;++r){let s=n[r],a=s.passState.viewport,c=a.x/o.x,d=a.y/o.y,u=a.width/o.x,m=a.height/o.y;s.textureOffsets=new F(u,0,0,c,0,m,0,d,0,0,1,0,0,0,0,1)}}var NZt=new it;function wZt(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube; +in vec2 v_textureCoordinates; +void main() +{ + vec2 uv = v_textureCoordinates; + vec3 dir; + + if (uv.y < 0.5) + { + if (uv.x < 0.333) + { + dir.x = -1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 1.0; + } + else if (uv.x < 0.666) + { + dir.y = -1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 1.0; + } + else + { + dir.z = -1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 1.0; + } + } + else + { + if (uv.x < 0.333) + { + dir.x = 1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 3.0; + } + else if (uv.x < 0.666) + { + dir.y = 1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 3.0; + } + else + { + dir.z = 1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 3.0; + } + } + + float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir)); + out_FragColor = vec4(vec3(shadow), 1.0); +} +`:n=`uniform sampler2D shadowMap_texture; +in vec2 v_textureCoordinates; +void main() +{ +${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r; +`:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates)); +`} out_FragColor = vec4(vec3(shadow), 1.0); +} +`;let i=t.createViewportQuadCommand(n,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return i.pass=Le.OVERLAY,i}function MZt(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=NZt;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;l(a)||(a=wZt(e,n),e._debugShadowViewCommand=a),(!l(a.renderState)||!it.equals(a.renderState.viewport,s))&&(a.renderState=Be.fromCache({viewport:it.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var r0=new Array(8);r0[0]=new ce(-1,-1,-1,1);r0[1]=new ce(1,-1,-1,1);r0[2]=new ce(1,1,-1,1);r0[3]=new ce(-1,1,-1,1);r0[4]=new ce(-1,-1,1,1);r0[5]=new ce(1,-1,1,1);r0[6]=new ce(1,1,1,1);r0[7]=new ce(-1,1,1,1);var Yx=new F,fte=new Array(8);for(let e=0;e<8;++e)fte[e]=new ce;function kZt(e,t){let n=new Pt({geometry:new fh({minimum:new h(-.5,-.5,-.5),maximum:new h(.5,.5,.5)}),attributes:{color:qt.fromColor(t)}}),i=new Pt({geometry:new vb({radius:.5}),attributes:{color:qt.fromColor(t)}});return new Wn({geometryInstances:[n,i],appearance:new pn({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var UZt=[U.RED,U.GREEN,U.BLUE,U.MAGENTA],DZt=new h;function OZt(e,t){MZt(e,t);let n=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(n&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new $p({camera:e._sceneCamera,color:U.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new $p({camera:e._shadowMapCamera,color:U.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(let i=0;i<e._numberOfCascades;++i)n&&(e._debugCascadeFrustums[i]=e._debugCascadeFrustums[i]&&e._debugCascadeFrustums[i].destroy(),e._debugCascadeFrustums[i]=new $p({camera:e._passes[i].camera,color:UZt[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!l(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=Ne.IDENTITY,r=e._pointLightRadius*2,s=h.fromElements(r,r,r,DZt),a=F.fromTranslationQuaternionRotationScale(i,o,s,Yx);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=kZt(a,U.YELLOW)}e._debugLightFrustum.update(t)}else(!l(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new $p({camera:e._shadowMapCamera,color:U.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function O3(){this.viewMatrix=new F,this.inverseViewMatrix=new F,this.frustum=void 0,this.positionCartographic=new fe,this.positionWC=new h,this.directionWC=h.clone(h.UNIT_Z),this.upWC=h.clone(h.UNIT_Y),this.rightWC=h.clone(h.UNIT_X),this.viewProjectionMatrix=new F}O3.prototype.clone=function(e){F.clone(e.viewMatrix,this.viewMatrix),F.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),fe.clone(e.positionCartographic,this.positionCartographic),h.clone(e.positionWC,this.positionWC),h.clone(e.directionWC,this.directionWC),h.clone(e.upWC,this.upWC),h.clone(e.rightWC,this.rightWC)};var BZt=new F(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);O3.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return F.multiply(t,e,this.viewProjectionMatrix),F.multiply(BZt,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var zZt=new Array(5),HZt=new Mi,KZt=new Array(4),IVe=new h,PVe=new h;function JZt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,d=r/o,u=.9,m=!1;t.shadowState.closestObjectSize<200&&(m=!0,u=.9);let p=KZt,b=zZt;for(b[0]=o,b[s]=r,a=0;a<s;++a){let Y=(a+1)/s,g=o*Math.pow(d,Y),C=o+c*Y,V=W.lerp(C,g,u);b[a+1]=V,p[a]=V-b[a]}if(m){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let Y=b[0];for(a=0;a<s-1;++a)Y+=p[a],b[a+1]=Y}ce.unpack(b,0,e._cascadeSplits[0]),ce.unpack(b,1,e._cascadeSplits[1]),ce.unpack(p,0,e._cascadeDistances);let f=n.frustum,y=f.left,_=f.right,S=f.bottom,A=f.top,Z=f.near,R=f.far,G=n.positionWC,E=n.directionWC,v=n.upWC,I=i.frustum.clone(HZt),X=n.getViewProjection();for(a=0;a<s;++a){I.near=b[a],I.far=b[a+1];let Y=F.multiply(I.projectionMatrix,i.viewMatrix,Yx),g=F.inverse(Y,Yx),C=F.multiply(X,g,Yx),V=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,IVe),L=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,PVe);for(let D=0;D<8;++D){let w=ce.clone(r0[D],fte[D]);F.multiplyByVector(C,w,w),h.divideByScalar(w,w.w,w),h.minimumByComponent(w,V,V),h.maximumByComponent(w,L,L)}V.x=Math.max(V.x,0),V.y=Math.max(V.y,0),V.z=0,L.x=Math.min(L.x,1),L.y=Math.min(L.y,1),L.z=Math.min(L.z,1);let P=e._passes[a],N=P.camera;N.clone(n);let O=N.frustum;O.left=y+V.x*(_-y),O.right=y+L.x*(_-y),O.bottom=S+V.y*(A-S),O.top=S+L.y*(A-S),O.near=Z+V.z*(R-Z),O.far=Z+L.z*(R-Z),P.cullingVolume=N.frustum.computeCullingVolume(G,E,v);let M=e._cascadeMatrices[a];F.multiply(N.getViewProjection(),i.inverseViewMatrix,M),F.multiply(P.textureOffsets,M,M)}}var jZt=new F,QZt=new h,qZt=new h,LVe=new h;function $Zt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=F.multiply(i.frustum.projectionMatrix,i.viewMatrix,Yx),r=F.inverse(o,Yx),s=n.directionWC,a=i.directionWC;h.equalsEpsilon(s,a,W.EPSILON10)&&(a=i.upWC);let c=h.cross(s,a,QZt);a=h.cross(c,s,qZt),h.normalize(a,a),h.normalize(c,c);let d=h.fromElements(0,0,0,LVe),u=F.computeView(d,s,a,c,jZt),m=F.multiply(u,r,Yx),p=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,IVe),b=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,PVe);for(let R=0;R<8;++R){let G=ce.clone(r0[R],fte[R]);F.multiplyByVector(m,G,G),h.divideByScalar(G,G.w,G),h.minimumByComponent(G,p,p),h.maximumByComponent(G,b,b)}b.z+=1e3,p.z-=10;let f=LVe;f.x=-(.5*(p.x+b.x)),f.y=-(.5*(p.y+b.y)),f.z=-b.z;let y=F.fromTranslation(f,Yx);u=F.multiply(y,u,u);let _=.5*(b.x-p.x),S=.5*(b.y-p.y),A=b.z-p.z,Z=n.frustum;Z.left=-_,Z.right=_,Z.bottom=-S,Z.top=S,Z.near=.01,Z.far=A,F.clone(u,n.viewMatrix),F.inverse(u,n.inverseViewMatrix),F.getTranslation(n.inverseViewMatrix,n.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),h.clone(s,n.directionWC),h.clone(a,n.upWC),h.clone(c,n.rightWC)}var eCt=[new h(-1,0,0),new h(0,-1,0),new h(0,0,-1),new h(1,0,0),new h(0,1,0),new h(0,0,1)],tCt=[new h(0,-1,0),new h(0,0,-1),new h(0,-1,0),new h(0,-1,0),new h(0,0,1),new h(0,-1,0)],nCt=[new h(0,0,1),new h(1,0,0),new h(-1,0,0),new h(0,0,-1),new h(1,0,0),new h(1,0,0)];function iCt(e,t){let n=new Mi;n.fov=W.PI_OVER_TWO,n.near=1,n.far=e._pointLightRadius,n.aspectRatio=1;for(let i=0;i<6;++i){let o=e._passes[i].camera;o.positionWC=e._shadowMapCamera.positionWC,o.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(o.positionWC,o.positionCartographic),o.directionWC=eCt[i],o.upWC=tCt[i],o.rightWC=nCt[i],F.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),F.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var oCt=new h,rCt=new h,XVe=new ue,WVe=XVe.center;function sCt(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=XVe;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,oCt),s=h.negate(i.directionWC,rCt),a=h.dot(r,s);if(e.fadingEnabled){let c=W.clamp(a/.1,0,1);e._darkness=W.lerp(1,e.darkness,c)}else e._darkness=e.darkness;if(a<0){e._outOfView=!0,e._needsUpdate=!1;return}e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)o.center=i.positionWC,o.radius=e._pointLightRadius,e._outOfView=t.cullingVolume.computeVisibility(o)===Qt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ue.clone(o,e._boundingSphere);else{let r=i.frustum.far/2,s=h.add(i.positionWC,h.multiplyByScalar(i.directionWC,r,WVe),WVe);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===Qt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ue.clone(o,e._boundingSphere)}}function aCt(e,t){let n=t.camera,i=e._lightCamera,o=e._sceneCamera,r=e._shadowMapCamera;e._cascadesEnabled?h.clone(i.directionWC,r.directionWC):e._isPointLight?h.clone(i.positionWC,r.positionWC):r.clone(i);let s=e._lightDirectionEC;F.multiplyByPointAsVector(n.viewMatrix,r.directionWC,s),h.normalize(s,s),h.negate(s,s),F.multiplyByPoint(n.viewMatrix,r.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;let a,c;e._fitNearFar?(a=Math.min(t.shadowState.nearPlane,e.maximumDistance),c=Math.min(t.shadowState.farPlane,e.maximumDistance),c=Math.max(c,a+1)):(a=n.frustum.near,c=e.maximumDistance),e._sceneCamera=Ao.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,sCt(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}o0.prototype.update=function(e){if(aCt(this,e),this._needsUpdate)if(XZt(this,e.context),this._isPointLight&&iCt(this,e),this._cascadesEnabled&&($Zt(this,e),this._numberOfCascades>1&&JZt(this,e)),this._isPointLight)this._shadowMapCullingVolume=Us.fromBoundingSphere(this._boundingSphere);else{let t=this._shadowMapCamera,n=t.positionWC,i=t.directionWC,o=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(n,i,o),this._passes.length===1&&this._passes[0].camera.clone(t)}if(this._passes.length===1){let t=this._sceneCamera.inverseViewMatrix;F.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&OZt(this,e)};o0.prototype.updatePass=function(e,t){FVe(this,e,t)};var cCt=new k;function YVe(e,t,n){let i=e._isPointLight?e._pointBias:n?e._terrainBias:e._primitiveBias,o={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){let r=cCt;return r.x=1/e._textureSize.x,r.y=1/e._textureSize.y,ce.fromElements(r.x,r.y,i.depthBias,i.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return ce.fromElements(i.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new ce,combinedUniforms2:new ce};return vt(t,o,!1)}function lCt(e,t,n,i,o,r){let s,a,c;if(l(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=at.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!l(s)||o!==n.shaderProgram.id||t){let d=n.shaderProgram,u=n.pass===Le.GLOBE,m=n.pass!==Le.TRANSLUCENT,p=e._isPointLight,b=e._usesDepthTexture,f=i0.getShadowCastShaderKeyword(p,u,b,m);if(s=i.shaderCache.getDerivedShaderProgram(d,f),!l(s)){let _=d.vertexShaderSource,S=d.fragmentShaderSource,A=i0.createShadowCastVertexShader(_,p,u),Z=i0.createShadowCastFragmentShader(S,p,b,m);s=i.shaderCache.createDerivedShaderProgram(d,f,{vertexShaderSource:A,fragmentShaderSource:Z,attributeLocations:d._attributeLocations})}a=e._primitiveRenderState,p?a=e._pointRenderState:u&&(a=e._terrainRenderState),n.renderState.cull.enabled||(a=Je(a,!1),a.cull=Je(a.cull,!1),a.cull.enabled=!1,a=Be.fromCache(a)),c=YVe(e,n.uniformMap,u)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}o0.createReceiveDerivedCommand=function(e,t,n,i,o){l(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,d=t.pass===Le.GLOBE,u=!1;if(d&&(u=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let m,p;l(o.receiveCommand)&&(m=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=at.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let b=o.receiveShaderCastShadows!==t.castShadows,f=o.receiveShaderProgramId!==t.shaderProgram.id;if(!l(m)||f||n||b){let y=i0.getShadowReceiveShaderKeyword(e[0],t.castShadows,d,u);if(m=i.shaderCache.getDerivedShaderProgram(s,y),!l(m)){let _=i0.createShadowReceiveVertexShader(a,d,u),S=i0.createShadowReceiveFragmentShader(c,e[0],t.castShadows,d,u);m=i.shaderCache.createDerivedShaderProgram(s,y,{vertexShaderSource:_,fragmentShaderSource:S,attributeLocations:s._attributeLocations})}p=YVe(e[0],t.uniformMap,d)}o.receiveCommand.shaderProgram=m,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};o0.createCastDerivedCommand=function(e,t,n,i,o){if(l(o)||(o={}),t.castShadows){let r=o.castCommands;l(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=lCt(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};o0.prototype.isDestroyed=function(){return!1};o0.prototype.destroy=function(){hte(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(let e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return he(this)};var bg=o0;var Jto=x(T(),1);var Rto=x(T(),1),Pw=`uniform sampler2D u_opaqueDepthTexture; +uniform sampler2D u_translucentDepthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r; + float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r; + translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth); + out_FragColor = czm_packDepth(translucentDepth); +} +`;var Gto=x(T(),1),eA=`uniform sampler2D colorTexture; + +#ifdef DEBUG_SHOW_DEPTH +uniform sampler2D u_packedTranslucentDepth; +#endif + +in vec2 v_textureCoordinates; + +void main() +{ +#ifdef DEBUG_SHOW_DEPTH + if (v_textureCoordinates.x < 0.5) + { + out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates))); + out_FragColor.a = 1.0; + } +#else + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef PICK + if (color == vec4(0.0)) + { + discard; + } +#else + // Reverse premultiplication process to get the correct composited result of the classification primitives + color.rgb /= color.a; +#endif + out_FragColor = color; +#endif +} +`;var dCt=!1;function Nx(e){this._drawClassificationFBO=new Zi({createDepthAttachments:!1}),this._accumulationFBO=new Zi({createDepthAttachments:!1}),this._packFBO=new Zi,this._opaqueDepthStencilTexture=void 0,this._textureToComposite=void 0,this._translucentDepthStencilTexture=void 0,this._packDepthCommand=void 0,this._accumulateCommand=void 0,this._compositeCommand=void 0,this._copyCommand=void 0,this._clearColorCommand=new mi({color:new U(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new mi({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new it,this._rsDepth=void 0,this._rsAccumulate=void 0,this._rsComp=void 0,this._useScissorTest=void 0,this._scissorRectangle=void 0,this._hasTranslucentDepth=!1,this._frustumsDrawn=0}Object.defineProperties(Nx.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function NVe(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function wVe(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function uCt(e,t,n,i){NVe(e),e._translucentDepthStencilTexture=new Ft({context:t,width:n,height:i,pixelFormat:Qe.DEPTH_STENCIL,pixelDatatype:ze.UNSIGNED_INT_24_8,sampler:Ht.NEAREST})}function mCt(e,t,n,i){wVe(e),e._drawClassificationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._drawClassificationFBO.update(t,n,i),e._accumulationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._accumulationFBO.update(t,n,i),e._packFBO.update(t,n,i)}function hCt(e,t,n,i){if(!e.isSupported())return;e._opaqueDepthStencilTexture=i;let o=e._opaqueDepthStencilTexture.width,r=e._opaqueDepthStencilTexture.height;e._drawClassificationFBO.isDirty(o,r)&&(uCt(e,t,o,r),mCt(e,t,o,r));let s,a;if(l(e._packDepthCommand)||(s=new He({sources:[Pw]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!l(e._compositeCommand)){s=new He({sources:[eA]}),a={colorTexture:function(){return e._textureToComposite}},dCt&&(s.defines=["DEBUG_SHOW_DEPTH"],a.u_packedTranslucentDepth=function(){return e._packFBO.getColorTexture()}),e._compositeCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e});let u=e._compositeCommand,m=u.shaderProgram,p=t.shaderCache.createDerivedShaderProgram(m,"pick",{vertexShaderSource:m.vertexShaderSource,fragmentShaderSource:new He({sources:s.sources,defines:["PICK"]}),attributeLocations:m._attributeLocations}),b=at.shallowClone(u);b.shaderProgram=p,u.derivedCommands.pick=b}l(e._copyCommand)||(s=new He({sources:[eA]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),l(e._accumulateCommand)||(s=new He({sources:[eA]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._accumulateCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),e._viewport.width=o,e._viewport.height=r;let c=!it.equals(e._viewport,n.viewport),d=c!==e._useScissorTest;e._useScissorTest=c,it.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=it.clone(n.viewport,e._scissorRectangle),d=!0),(!l(e._rsDepth)||!it.equals(e._viewport,e._rsDepth.viewport)||d)&&(e._rsDepth=Be.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!l(e._rsAccumulate)||!it.equals(e._viewport,e._rsAccumulate.viewport)||d)&&(e._rsAccumulate=Be.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Jn.EQUAL,reference:Kt.CESIUM_3D_TILE_MASK}})),l(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!l(e._rsComp)||!it.equals(e._viewport,e._rsComp.viewport)||d)&&(e._rsComp=Be.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:nn.ALPHA_BLEND})),l(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}Nx.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=e.frameState.useLogDepth,s=e.context,a=n.framebuffer;for(let c=0;c<i.length;++c){let d=i[c];if(d=r?d.derivedCommands.logDepth.command:d,d.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}}if(this._hasTranslucentDepth){hCt(this,s,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(s,n);for(let c=0;c<i.length;++c){let d=i[c];if(d=r?d.derivedCommands.logDepth.command:d,!d.depthForTranslucentClassification)continue;let u=d.derivedCommands.depth.depthOnlyCommand;t(u,e,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(s,n)),n.framebuffer=a}};Nx.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let o=e.context,r=o.uniformState,s=n.framebuffer;n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(o,n),r.updatePass(Le.CESIUM_3D_TILE_CLASSIFICATION);let a=r.globeDepthTexture;r.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[Le.CESIUM_3D_TILE_CLASSIFICATION],d=i.indices[Le.CESIUM_3D_TILE_CLASSIFICATION];for(let u=0;u<d;++u)t(c[u],e,n);r.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=s)};Nx.prototype.execute=function(e,t){if(!this._hasTranslucentDepth)return;this._frustumsDrawn===1?this._textureToComposite=this._drawClassificationFBO.getColorTexture():this._textureToComposite=this._accumulationFBO.getColorTexture(),(e.frameState.passes.pick?this._compositeCommand.derivedCommands.pick:this._compositeCommand).execute(e.context,t),fCt(this,e,t)};function fCt(e,t,n){if(!e._hasTranslucentDepth)return;let i=n.framebuffer;n.framebuffer=e._drawClassificationFBO.framebuffer,e._clearColorCommand.execute(t._context,n),n.framebuffer=i,e._frustumsDrawn>1&&(n.framebuffer=e._accumulationFBO.framebuffer,e._clearColorCommand.execute(t._context,n)),e._hasTranslucentDepth=!1,e._frustumsDrawn=0}Nx.prototype.isSupported=function(){return this._supported};Nx.prototype.isDestroyed=function(){return!1};Nx.prototype.destroy=function(){return NVe(this),wVe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),he(this)};var Xw=Nx;function pCt(){this.command=void 0,this.near=void 0,this.far=void 0}function B3(e,t,n){let i=e.context,o;i.depthTexture&&(o=new Gw);let r;e._useOIT&&i.depthTexture&&(r=new Ww(i));let s=new sl(i);s.viewport=it.clone(n),this.camera=t,this._cameraClone=Ao.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new Iw(i),this.pickDepthFramebuffer=new Fw,this.sceneFramebuffer=new qS,this.edgeFramebuffer=new Rw,this.globeDepth=o,this.globeTranslucencyFramebuffer=new Ew,this.oit=r,this.translucentTileClassification=new Xw(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var pte=new h,bte=new h;function bCt(e,t,n){let i=Math.max(h.maximumComponent(h.abs(e.position,pte)),h.maximumComponent(h.abs(t.position,bte))),o=1/Math.max(1,i);return h.multiplyByScalar(e.position,o,pte),h.multiplyByScalar(t.position,o,bte),h.equalsEpsilon(pte,bte,n)&&h.equalsEpsilon(e.direction,t.direction,n)&&h.equalsEpsilon(e.up,t.up,n)&&h.equalsEpsilon(e.right,t.right,n)&&F.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}B3.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return bCt(t,n,W.EPSILON15)?(this._cameraStartFired&&Ni()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=Ni(),Ao.clone(t,n),!0)};function gCt(e,t,n,i){let{frameState:o}=t,{camera:r,useLogDepth:s}=o,a=s?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,c=t.mode===re.SCENE2D,d=t.nearToFarDistance2D;i*=1+W.EPSILON2,n=Math.min(Math.max(n,r.frustum.near),r.frustum.far),i=Math.max(Math.min(i,r.frustum.far),n);let u;c?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),u=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):u=Math.ceil(Math.log(i/n)/Math.log(a));let{frustumCommandsList:m}=e;m.length=u;for(let p=0;p<u;++p){let b,f;c?(b=Math.min(i-d,n+p*d),f=Math.min(i,b+d)):(b=Math.max(n,Math.pow(a,p)*n),f=Math.min(i,a*b));let y=m[p];l(y)?(y.near=b,y.far=f):y=m[p]=new Vw(b,f)}}function yCt(e,t,n){let{command:i,near:o,far:r}=n;t.debugShowFrustums&&(i.debugOverlappingFrustums=0);let{frustumCommandsList:s}=e;for(let a=0;a<s.length;++a){let c=s[a];if(o>c.far)continue;if(r<c.near)break;let d=i.pass,u=c.indices[d]++;if(c.commands[d][u]=i,t.debugShowFrustums&&(i.debugOverlappingFrustums|=1<<a),i.executeInClosestFrustum)break}if(t.debugShowFrustums){let{debugFrustumStatistics:a}=e,{debugOverlappingFrustums:c}=i,d=a.commandsInFrustums;d[c]=l(d[c])?d[c]+1:1,++a.totalCommands}t.updateDerivedCommands(i)}var MVe=new Us,xCt=new kr;B3.prototype.createPotentiallyVisibleSet=function(e){let{frameState:t}=e,{camera:n,commandList:i,shadowState:o}=t,{positionWC:r,directionWC:s,frustum:a}=n,c=e._computeCommandList,d=e._overlayCommandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let u=this.frustumCommandsList;for(let X=0;X<u.length;++X)for(let Y=0;Y<Le.NUMBER_OF_PASSES;++Y)u[X].indices[Y]=0;c.length=0,d.length=0;let m=this._commandExtents,p=m.length,b=0,f=+Number.MAX_VALUE,y=-Number.MAX_VALUE,{shadowsEnabled:_}=o,S=+Number.MAX_VALUE,A=-Number.MAX_VALUE,Z=Number.MAX_VALUE,R=t.mode===re.SCENE3D?t.occluder:void 0,{cullingVolume:G}=t,E=MVe.planes;for(let X=0;X<5;++X)E[X]=G.planes[X];G=MVe;for(let X=0;X<i.length;++X){let Y=i[X],{pass:g,boundingVolume:C}=Y;if(g===Le.COMPUTE)c.push(Y);else if(g===Le.OVERLAY)d.push(Y);else{let V,L;if(l(C)){if(!e.isVisible(G,Y,R))continue;let N=C.computePlaneDistances(r,s,xCt);if(V=N.start,L=N.stop,f=Math.min(f,V),y=Math.max(y,L),_&&Y.receiveShadows&&V<bg.MAXIMUM_DISTANCE&&!(g===Le.GLOBE&&V<-100&&L>100)){let O=L-V;g!==Le.GLOBE&&V<100&&(Z=Math.min(Z,O)),S=Math.min(S,V),A=Math.max(A,L)}}else Y instanceof mi?(V=a.near,L=a.far):(V=a.near,L=a.far,f=Math.min(f,V),y=Math.max(y,L));let P=m[b];l(P)||(P=m[b]=new pCt),P.command=Y,P.near=V,P.far=L,b++}}_&&(S=Math.min(Math.max(S,a.near),a.far),A=Math.max(Math.min(A,a.far),S),o.nearPlane=S,o.farPlane=A,o.closestObjectSize=Z),gCt(this,e,f,y);for(let X=0;X<b;X++)yCt(this,e,m[X]);if(b<p)for(let X=b;X<p;X++){let Y=m[X];if(!l(Y.command))break;Y.command=void 0}let v=u.length,{frustumSplits:I}=t;I.length=v+1;for(let X=0;X<v;++X)I[X]=u[X].near,X===v-1&&(I[X+1]=u[X].far)};B3.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.edgeFramebuffer=this.edgeFramebuffer&&this.edgeFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy(),this.translucentTileClassification=this.translucentTileClassification&&this.translucentTileClassification.destroy(),this.globeTranslucencyFramebuffer=this.globeTranslucencyFramebuffer&&this.globeTranslucencyFramebuffer.destroy();let e=this.pickDepths;for(let t=0;t<e.length;++t)e[t].destroy()};var tA=B3;var UVe=.1,TCt=new qm({pass:tr.MOST_DETAILED_PRELOAD}),_Ct=new qm({pass:tr.MOST_DETAILED_PICK}),Yw=new qm({pass:tr.PICK});function xa(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new it(0,0,1,1),n=new Ao(e);n.frustum=new fn({width:UVe,aspectRatio:1,near:.1}),this._pickOffscreenView=new tA(e,n,t)}xa.prototype.update=function(){this._pickPositionCacheDirty=!0};xa.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return l(i)||(i=new Cw,n[t]=i),i};var SCt=new rs,ACt=new h,z3=new h,ZCt=new k,CCt=new F;function RCt(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let d=2*(o.height-t.y-o.y)/o.height-1;d*=(s.top-s.bottom)*.5;let u=F.clone(r.transform,CCt);r._setTransform(F.IDENTITY);let m=h.clone(r.position,ACt);h.multiplyByScalar(r.right,c,z3),h.add(z3,m,m),h.multiplyByScalar(r.up,d,z3),h.add(z3,m,m),r._setTransform(u),e.mode===re.SCENE2D&&h.fromElements(m.z,m.x,m.y,m);let p=s.getPixelDimensions(o.width,o.height,1,1,ZCt),b=SCt;return b.right=p.x*.5,b.left=-b.right,b.top=p.y*.5,b.bottom=-b.top,b.near=s.near,b.far=s.far,b.computeCullingVolume(m,r.directionWC,r.upWC)}var VCt=new $l,GCt=new k;function ECt(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),d=s.aspectRatio*c,u=2*(t.x-o.x)/o.width-1,m=2*(o.height-t.y-o.y)/o.height-1,p=u*a*d,b=m*a*c,f=s.getPixelDimensions(o.width,o.height,1,1,GCt),y=f.x*n*.5,_=f.y*i*.5,S=VCt;return S.top=b+_,S.bottom=b-_,S.right=p+y,S.left=p-y,S.near=a,S.far=s.far,S.computeCullingVolume(r.positionWC,r.directionWC,r.upWC)}function H3(e,t,n,i,o){let r=e.camera.frustum;return r instanceof fn||r instanceof rs?RCt(e,t,n,i,o):ECt(e,t,n,i,o)}var Nw=new it(0,0,3,3),K3=new k,ww=new U(0,0,0,0);function gte(e,t,n,i,o){return o.width=n??3,o.height=i??o.width,o.x=t.x-(o.width-1)*.5,o.y=e-t.y-(o.height-1)*.5,o}function DVe(e,t,n,i,o){let{context:r,frameState:s,defaultView:a}=e,{viewport:c,pickFramebuffer:d}=a;e.view=a,c.x=0,c.y=0,c.width=r.drawingBufferWidth,c.height=r.drawingBufferHeight;let u=a.passState;u.viewport=it.clone(c,u.viewport);let m=no.transformWindowToDrawingBuffer(e,t,K3);gte(r.drawingBufferHeight,m,i,o,n),e.jobScheduler.disableThisFrame(),e.updateFrameState(),s.cullingVolume=H3(e,m,n.width,n.height,c),s.invertClassification=!1,s.passes.pick=!0,s.tilesetPassState=Yw,r.uniformState.update(s),e.updateEnvironment(),u=d.begin(n,c),e.updateAndExecuteCommands(u,ww),e.resolveFramebuffers(u)}function OVe(e){let{context:t}=e;t.endFrame()}xa.prototype.pickAsync=async function(e,t,n,i,o=1){let{context:r,frameState:s,defaultView:a}=e,{pickFramebuffer:c}=a,d=Nw;DVe(e,t,d,n,i);let u;return r.webgl2?u=c.endAsync(d,s,o):(u=c.end(d,o),u=Promise.resolve(u),_t("picking-async-fallback","Fallback to synchronous picking because async operation requires WebGL2 context.")),OVe(e),u};xa.prototype.pick=function(e,t,n,i,o=1){let{defaultView:r}=e,{pickFramebuffer:s}=r,a=Nw;DVe(e,t,a,n,i);let c=s.end(a,o);return OVe(e),c};xa.prototype.pickVoxelCoordinate=function(e,t,n,i){let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let d=s.passState;d.viewport=it.clone(a,d.viewport);let u=no.transformWindowToDrawingBuffer(e,t,K3),m=gte(o.drawingBufferHeight,u,n,i,Nw);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=H3(e,u,m.width,m.height,a),r.invertClassification=!1,r.passes.pickVoxel=!0,r.tilesetPassState=Yw,o.uniformState.update(r),e.updateEnvironment(),d=c.begin(m,a),e.updateAndExecuteCommands(d,ww),e.resolveFramebuffers(d);let p=c.readCenterPixel(m);return o.endFrame(),p};xa.prototype.pickMetadata=function(e,t,n){let{context:i,frameState:o,defaultView:r}=e,{viewport:s,pickFramebuffer:a}=r;e.view=r,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=r.passState;c.viewport=it.clone(s,c.viewport);let d=no.transformWindowToDrawingBuffer(e,t,K3),u=gte(i.drawingBufferHeight,d,1,1,Nw);e.jobScheduler.disableThisFrame(),e.updateFrameState(),o.cullingVolume=H3(e,d,u.width,u.height,s),o.invertClassification=!1,o.passes.pick=!0,o.tilesetPassState=Yw,o.pickingMetadata=!0,o.pickedMetadataInfo=n,i.uniformState.update(o),e.updateEnvironment(),c=a.begin(u,s),e.updateAndExecuteCommands(c,ww);let m=e._environmentState.useOIT;e._environmentState.useOIT=!1,e.resolveFramebuffers(c),e._environmentState.useOIT=m;let p=a.readCenterPixel(u);return i.endFrame(),o.pickingMetadata=!1,Zw.decodeMetadataValues(n.classProperty,n.metadataProperty,p)};function LCt(e,t){let{defaultView:n,context:i,frameState:o,environmentState:r}=e,{viewport:s,pickDepthFramebuffer:a}=n;e.view=n,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=n.passState;c.viewport=it.clone(s,c.viewport),e.clearPasses(o.passes),o.passes.pick=!0,o.passes.depth=!0,o.cullingVolume=H3(e,t,1,1,s),o.tilesetPassState=Yw,e.updateEnvironment(),r.renderTranslucentDepthForPick=!0,c=a.update(i,t,s),e.updateAndExecuteCommands(c,ww),e.resolveFramebuffers(c),i.endFrame()}var WCt=new Mi,vCt=new $l,FCt=new fn,ICt=new rs;xa.prototype.pickPositionWorldCoordinates=function(e,t,n){if(!e.useDepthPicking)return;let i=t.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return h.clone(this._pickPositionCache[i],n);let{context:o,frameState:r,camera:s,defaultView:a}=e,{uniformState:c}=o;e.view=a;let d=no.transformWindowToDrawingBuffer(e,t,K3);e.pickTranslucentDepth?LCt(e,d):(e.updateFrameState(),c.update(r),e.updateEnvironment()),d.y=e.drawingBufferHeight-d.y;let u;l(s.frustum.fov)?u=s.frustum.clone(WCt):l(s.frustum.infiniteProjectionMatrix)?u=s.frustum.clone(vCt):l(s.frustum.width)?u=s.frustum.clone(FCt):u=s.frustum.clone(ICt);let{frustumCommandsList:m}=a,p=m.length;for(let b=0;b<p;++b){let y=this.getPickDepth(e,b).getDepth(o,d.x,d.y);if(l(y)&&y>0&&y<1){let _=m[b],S;return e.mode===re.SCENE2D?(S=s.position.z,s.position.z=S-_.near+1,u.far=Math.max(1,_.far-_.near),u.near=1,c.update(r),c.updateFrustum(u)):(u.near=_.near*(b!==0?e.opaqueFrustumNearOffset:1),u.far=_.far,c.updateFrustum(u)),n=no.drawingBufferToWorldCoordinates(e,d,y,n),e.mode===re.SCENE2D&&(s.position.z=S,c.update(r)),this._pickPositionCache[i]=h.clone(n),n}}this._pickPositionCache[i]=void 0};var PCt=new fe;xa.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),l(n)&&e.mode!==re.SCENE3D){h.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,PCt);o.cartographicToCartesian(r,n)}return n};function XCt(e,t,n,i,o,r){for(let s of e){let a=s.object,c=s.position,d=s.exclude;if(l(c)&&!l(a))return n.push(s),!0;if(!l(a)||!l(a.primitive)||!d&&(n.push(s),n.length>=t))return!0;let u=a.primitive,m=!1;if(typeof u.getGeometryInstanceAttributes=="function"&&l(a.id)){let p=u.getGeometryInstanceAttributes(a.id);l(p)&&l(p.show)&&(m=!0,p.show=Vn.toValue(!1,p.show),o.push(p))}a instanceof Ds&&(m=!0,a.show=!1,r.push(a)),m||(u.show=!1,i.push(u))}}function BVe(e,t){let n=[],i=[],o=[],r=[];l(t)||(t=Number.MAX_VALUE);let s=e(t);for(;l(s)&&s.length>0&&!XCt(s,t,n,i,o,r);)s=e(t-n.length);for(let a=0;a<i.length;++a)i[a].show=!0;for(let a=0;a<o.length;++a){let c=o[a];c.show=Vn.toValue(!0,c.show)}for(let a=0;a<r.length;++a)r[a].show=!0;return n}xa.prototype.drillPick=function(e,t,n,i,o){return BVe(a=>this.pick(e,t,i,o,a).map(d=>({object:d,position:void 0,exclude:!1})),n).map(a=>a.object)};var kVe=new h,YCt=new h;function NCt(e,t,n){this.ray=e,this.width=t,this.tilesets=n,this.ready=!1;let i=this;this.promise=new Promise(o=>{i._completePick=()=>{o()}})}function zVe(e,t,n,i){let o=t.direction,r=h.mostOrthogonalAxis(o,kVe),s=h.cross(o,r,kVe),a=h.cross(o,s,YCt);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=n??UVe,i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function wCt(e,t,n){let i=t.frameState,{ray:o,width:r,tilesets:s}=n,a=e._pickOffscreenView.camera,c=zVe(e,o,r,a),d=TCt;d.camera=a,d.cullingVolume=c;let u=!0,m=s.length;for(let p=0;p<m;++p){let b=s[p];b.show&&t.primitives.contains(b)&&(b.updateForPass(i,d),u=u&&d.ready)}return u&&n._completePick(),u}xa.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)wCt(this,e,t[n])&&t.splice(n--,1)};function HVe(e,t,n){for(let i=0;i<e.length;++i){let o=e.get(i);o.show&&(l(o.isCesium3DTileset)?(!l(t)||t.indexOf(o)===-1)&&n.push(o):o instanceof Jl&&HVe(o,t,n))}}function J3(e,t,n,i,o,r){let s=[];if(HVe(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new NCt(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function MCt(e,t){return!l(e)||!l(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function kCt(e,t,n,i,o,r,s){let{context:a,frameState:c}=t,d=a.uniformState,u=e._pickOffscreenView;t.view=u,zVe(e,n,o,u.camera);let m=it.clone(u.viewport,Nw),p=u.pickFramebuffer.begin(m,u.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),c.invertClassification=!1,c.passes.pick=!0,c.passes.offscreen=!0,s?c.tilesetPassState=_Ct:c.tilesetPassState=Yw,d.update(c),t.updateEnvironment(),t.updateAndExecuteCommands(p,ww),t.resolveFramebuffers(p);let b,f=u.pickFramebuffer.end(m,1)[0];if(t.context.depthTexture){let{frustumCommandsList:y}=u,_=y.length;for(let S=0;S<_;++S){let Z=e.getPickDepth(t,S).getDepth(a,0,0);if(l(Z)&&Z>0&&Z<1){let R=y[S],G=R.near*(S!==0?t.opaqueFrustumNearOffset:1),E=R.far,v=G+Z*(E-G);b=_n.getPoint(n,v);break}}}if(t.view=t.defaultView,a.endFrame(),l(f)||l(b))return{object:f,position:b,exclude:!l(b)&&r||MCt(f,i)}}function yte(e,t,n,i,o,r,s,a){return BVe(function(){let d=kCt(e,t,n,o,r,s,a);return d?[d]:void 0},i)}function w1(e,t,n,i,o,r,s){let a=yte(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function j3(e,t){return new Promise((n,i)=>{t.then(function(o){let r=e.postRender.addEventListener(function(){r(),n(o)});e.requestRender()}).catch(function(o){i(o)})})}xa.prototype.pickFromRay=function(e,t,n,i){return w1(this,e,t,n,i,!1,!1)};xa.prototype.drillPickFromRay=function(e,t,n,i,o){return yte(this,e,t,n,i,o,!1,!1)};xa.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=_n.clone(t),n=l(n)?n.slice():n,j3(e,J3(o,e,t,n,i,function(){return w1(o,e,t,n,i,!1,!0)}))};xa.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=_n.clone(t),i=l(i)?i.slice():i,j3(e,J3(r,e,t,i,o,function(){return yte(r,e,t,n,i,o,!1,!0)}))};var UCt=new h,DCt=new h,OCt=new _n,KVe=new fe;function xte(e,t){let n=e.ellipsoid,i=Vi._defaultMaxTerrainHeight,o=n.geodeticSurfaceNormalCartographic(t,DCt),r=fe.toCartesian(t,n,UCt),s=OCt;s.origin=r,s.direction=o;let a=new _n;return _n.getPoint(s,i,a.origin),h.negate(o,a.direction),a}function JVe(e,t){let n=e.ellipsoid,i=fe.fromCartesian(t,n,KVe);return xte(e,i)}function jVe(e,t){let n=e.ellipsoid;return fe.fromCartesian(t,n,KVe).height}function BCt(e,t,n,i,o){let r=xte(t,n);return J3(e,t,r,i,o,function(){let s=w1(e,t,r,i,o,!0,!0);if(l(s))return jVe(t,s.position)})}function zCt(e,t,n,i,o,r){let s=JVe(t,n);return J3(e,t,s,i,o,function(){let a=w1(e,t,s,i,o,!0,!0);if(l(a))return h.clone(a.position,r)})}xa.prototype.sampleHeight=function(e,t,n,i){let o=xte(e,t),r=w1(this,e,o,n,i,!0,!1);if(l(r))return jVe(e,r.position)};xa.prototype.clampToHeight=function(e,t,n,i,o){let r=JVe(e,t),s=w1(this,e,r,n,i,!0,!1);if(l(s))return h.clone(s.position,o)};xa.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=BCt(this,e,t[s],n,i);return j3(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c].height=s[c];return t}))};xa.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=zCt(this,e,t[s],n,i,t[s]);return j3(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};xa.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var Mw=xa;var Tro=x(T(),1);var Koo=x(T(),1);var Jno=x(T(),1),kw=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#else + color *= vec3(exposure); +#endif + color = czm_acesTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var Qno=x(T(),1),Uw=`precision highp float; + +uniform sampler2D randomTexture; +uniform sampler2D depthTexture; +uniform float intensity; +uniform float bias; +uniform float lengthCap; +uniform int stepCount; +uniform int directionCount; + +vec4 pixelToEye(vec2 screenCoordinate) +{ + vec2 uv = screenCoordinate / czm_viewport.zw; + float depth = czm_readDepth(depthTexture, uv); + vec2 xy = 2.0 * uv - vec2(1.0); + vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0); + posEC = posEC / posEC.w; + // Avoid numerical error at far plane + if (depth >= 1.0) { + posEC.z = czm_currentFrustum.y; + } + return posEC; +} + +// Reconstruct surface normal in eye coordinates, avoiding edges +vec3 getNormalXEdge(vec3 positionEC) +{ + // Find the 3D surface positions at adjacent screen pixels + vec2 centerCoord = gl_FragCoord.xy; + vec3 positionLeft = pixelToEye(centerCoord + vec2(-1.0, 0.0)).xyz; + vec3 positionRight = pixelToEye(centerCoord + vec2(1.0, 0.0)).xyz; + vec3 positionUp = pixelToEye(centerCoord + vec2(0.0, 1.0)).xyz; + vec3 positionDown = pixelToEye(centerCoord + vec2(0.0, -1.0)).xyz; + + // Compute potential tangent vectors + vec3 dx0 = positionEC - positionLeft; + vec3 dx1 = positionRight - positionEC; + vec3 dy0 = positionEC - positionDown; + vec3 dy1 = positionUp - positionEC; + + // The shorter tangent is more likely to be on the same surface + vec3 dx = length(dx0) < length(dx1) ? dx0 : dx1; + vec3 dy = length(dy0) < length(dy1) ? dy0 : dy1; + + return normalize(cross(dx, dy)); +} + +const float sqrtTwoPi = sqrt(czm_twoPi); + +float gaussian(float x, float standardDeviation) { + float argument = x / standardDeviation; + return exp(-0.5 * argument * argument) / (sqrtTwoPi * standardDeviation); +} + +void main(void) +{ + vec4 positionEC = pixelToEye(gl_FragCoord.xy); + + // Exit if we are too close to the back of the frustum, where the depth value is invalid. + float maxValidDepth = czm_currentFrustum.y - lengthCap; + if (-positionEC.z > maxValidDepth) + { + out_FragColor = vec4(1.0); + return; + } + + vec3 normalEC = getNormalXEdge(positionEC.xyz); + float gaussianVariance = lengthCap * sqrt(-positionEC.z); + // Choose a step length such that the marching stops just before 3 * variance. + float stepLength = 3.0 * gaussianVariance / (float(stepCount) + 1.0); + float metersPerPixel = czm_metersPerPixel(positionEC, 1.0); + // Minimum step is 1 pixel to avoid double sampling + float pixelsPerStep = max(stepLength / metersPerPixel, 1.0); + stepLength = pixelsPerStep * metersPerPixel; + + float angleStepScale = 1.0 / float(directionCount); + float angleStep = angleStepScale * czm_twoPi; + float cosStep = cos(angleStep); + float sinStep = sin(angleStep); + mat2 rotateStep = mat2(cosStep, sinStep, -sinStep, cosStep); + + // Initial sampling direction (different for each pixel) + const float randomTextureSize = 255.0; + vec2 randomTexCoord = fract(gl_FragCoord.xy / randomTextureSize); + float randomVal = texture(randomTexture, randomTexCoord).x; + vec2 sampleDirection = vec2(cos(angleStep * randomVal), sin(angleStep * randomVal)); + + float ao = 0.0; + // Loop over sampling directions +#if __VERSION__ == 300 + for (int i = 0; i < directionCount; i++) + { +#else + for (int i = 0; i < 16; i++) + { + if (i >= directionCount) { + break; + } +#endif + sampleDirection = rotateStep * sampleDirection; + + float localAO = 0.0; + vec2 radialStep = pixelsPerStep * sampleDirection; + +#if __VERSION__ == 300 + for (int j = 0; j < stepCount; j++) + { +#else + for (int j = 0; j < 64; j++) + { + if (j >= stepCount) { + break; + } +#endif + // Step along sampling direction, away from output pixel + vec2 samplePixel = floor(gl_FragCoord.xy + float(j + 1) * radialStep) + vec2(0.5); + + // Exit if we stepped off the screen + if (clamp(samplePixel, vec2(0.0), czm_viewport.zw) != samplePixel) { + break; + } + + // Compute step vector from output point to sampled point + vec4 samplePositionEC = pixelToEye(samplePixel); + vec3 stepVector = samplePositionEC.xyz - positionEC.xyz; + + // Estimate the angle from the surface normal. + float dotVal = clamp(dot(normalEC, normalize(stepVector)), 0.0, 1.0); + dotVal = czm_branchFreeTernary(dotVal > bias, dotVal, 0.0); + dotVal = czm_branchFreeTernary(-samplePositionEC.z <= maxValidDepth, dotVal, 0.0); + + // Weight contribution based on the distance from the output point + float sampleDistance = length(stepVector); + float weight = gaussian(sampleDistance, gaussianVariance); + localAO += weight * dotVal; + } + ao += localAO; + } + + ao *= angleStepScale * stepLength; + ao = 1.0 - clamp(ao, 0.0, 1.0); + ao = pow(ao, intensity); + out_FragColor = vec4(vec3(ao), 1.0); +} +`;var $no=x(T(),1),Dw=`uniform sampler2D colorTexture; +uniform sampler2D ambientOcclusionTexture; +uniform bool ambientOcclusionOnly; +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates); + out_FragColor = ambientOcclusionOnly ? ao : ao * color; +} +`;var tio=x(T(),1),Ow=`uniform sampler2D colorTexture; +uniform float gradations; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = vec4(rgb, 1.0); + return; + } +#endif + float luminance = czm_luminance(rgb); + float darkness = luminance * gradations; + darkness = (darkness - fract(darkness)) / gradations; + out_FragColor = vec4(vec3(darkness), 1.0); +} +`;var iio=x(T(),1),Bw=`uniform sampler2D colorTexture; +uniform sampler2D bloomTexture; +uniform bool glowOnly; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = color; + return; + } +#endif + + vec4 bloom = texture(bloomTexture, v_textureCoordinates); + out_FragColor = glowOnly ? bloom : bloom + color; +} +`;var rio=x(T(),1),zw=`uniform sampler2D colorTexture; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 target = vec3(0.0); + out_FragColor = vec4(mix(target, rgb, brightness), 1.0); +} +`;var aio=x(T(),1),Hw=`uniform sampler2D colorTexture; +uniform float contrast; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz; + sceneColor = czm_RGBToHSB(sceneColor); + sceneColor.z += brightness; + sceneColor = czm_HSBToRGB(sceneColor); + + float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast)); + sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5); + out_FragColor = vec4(sceneColor, 1.0); +} +`;var lio=x(T(),1),Kw=`uniform sampler2D colorTexture; +uniform sampler2D blurTexture; +uniform sampler2D depthTexture; +uniform float focalDistance; + +in vec2 v_textureCoordinates; + +vec4 toEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0); + posInCamera = posInCamera / posInCamera.w; + return posInCamera; +} + +float computeDepthBlur(float depth) +{ + float f; + if (depth < focalDistance) + { + f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x); + } + else + { + f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance); + f = pow(f, 0.1); + } + f *= f; + f = clamp(f, 0.0, 1.0); + return pow(f, 0.5); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = toEye(v_textureCoordinates, depth); + float d = computeDepthBlur(-posInCamera.z); + out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d); +} +`;var uio=x(T(),1),Jw=`uniform sampler2D depthTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + out_FragColor = vec4(vec3(depth), 1.0); +} +`;var hio=x(T(),1),jw=`uniform sampler2D depthTexture; +uniform float length; +uniform vec4 color; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float directions[3]; + directions[0] = -1.0; + directions[1] = 0.0; + directions[2] = 1.0; + + float scalars[3]; + scalars[0] = 3.0; + scalars[1] = 10.0; + scalars[2] = 3.0; + + float padx = czm_pixelRatio / czm_viewport.z; + float pady = czm_pixelRatio / czm_viewport.w; + +#ifdef CZM_SELECTED_FEATURE + bool selected = false; + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + selected = selected || czm_selected(vec2(-padx, dir * pady)); + selected = selected || czm_selected(vec2(padx, dir * pady)); + selected = selected || czm_selected(vec2(dir * padx, -pady)); + selected = selected || czm_selected(vec2(dir * padx, pady)); + if (selected) + { + break; + } + } + if (!selected) + { + out_FragColor = vec4(color.rgb, 0.0); + return; + } +#endif + + float horizEdge = 0.0; + float vertEdge = 0.0; + + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + float scale = scalars[i]; + + horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale; + horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale; + + vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale; + vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale; + } + + float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge); + out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0); +} +`;var pio=x(T(),1),Qw=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See slides 142 and 143: +// http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + + const float A = 0.22; // shoulder strength + const float B = 0.30; // linear strength + const float C = 0.10; // linear angle + const float D = 0.20; // toe strength + const float E = 0.01; // toe numerator + const float F = 0.30; // toe denominator + + const float white = 11.2; // linear white point value + + vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F; + float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F; + + c = czm_inverseGamma(c / w); + out_FragColor = vec4(c, fragmentColor.a); +} +`;var gio=x(T(),1),qw=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#else + color *= vec3(exposure); +#endif + color = czm_pbrNeutralTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var xio=x(T(),1),$w=`in vec2 v_textureCoordinates; + +uniform sampler2D colorTexture; + +const float fxaaQualitySubpix = 0.5; +const float fxaaQualityEdgeThreshold = 0.125; +const float fxaaQualityEdgeThresholdMin = 0.0833; + +void main() +{ + vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw; + vec4 color = FxaaPixelShader( + v_textureCoordinates, + colorTexture, + fxaaQualityRcpFrame, + fxaaQualitySubpix, + fxaaQualityEdgeThreshold, + fxaaQualityEdgeThresholdMin); + float alpha = texture(colorTexture, v_textureCoordinates).a; + out_FragColor = vec4(color.rgb, alpha); +} +`;var _io=x(T(),1),wx=`#define SAMPLES 8 + +uniform float delta; +uniform float sigma; +uniform float direction; // 0.0 for x direction, 1.0 for y direction + +uniform sampler2D colorTexture; + +#ifdef USE_STEP_SIZE +uniform float stepSize; +#else +uniform vec2 step; +#endif + +in vec2 v_textureCoordinates; + +// Incremental Computation of the Gaussian: +// https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html + +void main() +{ + vec2 st = v_textureCoordinates; + vec2 dir = vec2(1.0 - direction, direction); + +#ifdef USE_STEP_SIZE + vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw)); +#else + vec2 step = step; +#endif + + vec3 g; + g.x = 1.0 / (sqrt(czm_twoPi) * sigma); + g.y = exp((-0.5 * delta * delta) / (sigma * sigma)); + g.z = g.y * g.y; + + vec4 result = texture(colorTexture, st) * g.x; + for (int i = 1; i < SAMPLES; ++i) + { + g.xy *= g.yz; + + vec2 offset = float(i) * dir * step; + result += texture(colorTexture, st - offset) * g.x; + result += texture(colorTexture, st + offset) * g.x; + } + + out_FragColor = result; +} +`;var Aio=x(T(),1),eM=`uniform sampler2D colorTexture; +uniform sampler2D dirtTexture; +uniform sampler2D starTexture; +uniform vec2 dirtTextureDimensions; +uniform float distortion; +uniform float ghostDispersal; +uniform float haloWidth; +uniform float dirtAmount; +uniform float earthRadius; +uniform float intensity; + +in vec2 v_textureCoordinates; + +// whether it is in space or not +// 6500000.0 is empirical value +#define DISTANCE_TO_SPACE 6500000.0 + +// return ndc from world coordinate biased earthRadius +vec4 getNDCFromWC(vec3 WC, float earthRadius) +{ + vec4 positionEC = czm_view * vec4(WC, 1.0); + positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0); + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0); +} + +// Check if current pixel is included Earth +// if then mask it gradually +float isInEarth(vec2 texcoord, vec2 sceneSize) +{ + vec2 NDC = texcoord * 2.0 - 1.0; + vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0); + vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5); + NDC.xy -= earthPosSC.xy; + + float X = abs(NDC.x) * sceneSize.x; + float Y = abs(NDC.y) * sceneSize.y; + + return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0)); +} + +// For Chromatic effect +vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace) +{ + vec2 sceneSize = czm_viewport.zw; + vec3 color; + if(isSpace) + { + color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r; + color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g; + color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b; + } + else + { + color.r = texture(tex, texcoord + direction * distortion.r).r; + color.g = texture(tex, texcoord + direction * distortion.g).g; + color.b = texture(tex, texcoord + direction * distortion.b).b; + } + return vec4(clamp(color, 0.0, 1.0), 0.0); +} + +void main(void) +{ + vec4 originalColor = texture(colorTexture, v_textureCoordinates); + vec3 rgb = originalColor.rgb; + bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE; + + // Sun position + vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0); + vec4 sunPositionEC = czm_view * sunPos; + vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC); + sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0); + + // If sun is not in the screen space, use original color. + if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1))) + { + // Lens flare is disabled when not in space until #5932 is fixed. + // https://github.com/CesiumGS/cesium/issues/5932 + out_FragColor = originalColor; + return; + } + + vec2 texcoord = vec2(1.0) - v_textureCoordinates; + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + vec2 invPixelSize = 1.0 / pixelSize; + vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion); + + // ghost vector to image centre: + vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal; + vec3 direction = normalize(vec3(ghostVec, 0.0)); + + // sample ghosts: + vec4 result = vec4(0.0); + vec4 ghost = vec4(0.0); + for (int i = 0; i < 4; ++i) + { + vec2 offset = fract(texcoord + ghostVec * float(i)); + // Only bright spots from the centre of the source image + ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace); + } + result += ghost; + + // sample halo + vec2 haloVec = normalize(ghostVec) * haloWidth; + float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5)); + weightForHalo = pow(1.0 - weightForHalo, 5.0); + + result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5; + + // dirt on lens + vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions; + if (dirtTexCoords.x > 1.0) + { + dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x); + } + if (dirtTexCoords.y > 1.0) + { + dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y); + } + result += dirtAmount * texture(dirtTexture, dirtTexCoords); + + // Rotating starburst texture's coordinate + // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0)) + float camrot = czm_view[0].z + czm_view[1].y; + float cosValue = cos(camrot); + float sinValue = sin(camrot); + mat3 rotation = mat3( + cosValue, -sinValue, 0.0, + sinValue, cosValue, 0.0, + 0.0, 0.0, 1.0 + ); + + vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0); + vec3 st2 = vec3((rotation * st1).xy, 1.0); + vec3 st3 = st2 * 0.5 + vec3(0.5); + vec2 lensStarTexcoord = st3.xy; + float weightForLensFlare = length(vec3(sunPos.xy, 0.0)); + float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0); + + if (!isSpace) + { + result *= oneMinusWeightForLensFlare * intensity * 0.2; + } + else + { + result *= oneMinusWeightForLensFlare * intensity; + result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0; + } + + result += texture(colorTexture, v_textureCoordinates); + + out_FragColor = result; +} +`;var Cio=x(T(),1),tM=`uniform sampler2D colorTexture; +uniform vec3 white; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See equation 4: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + color = (color * (1.0 + color / white)) / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var Vio=x(T(),1),nM=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +float rand(vec2 co) +{ + return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453); +} + +void main(void) +{ + float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1; + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 green = vec3(0.0, 1.0, 0.0); + out_FragColor = vec4((noiseValue + rgb) * green, 1.0); +} +`;var Eio=x(T(),1),iM=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See equation 3: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + color = color / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var Wio=x(T(),1),oM=`uniform sampler2D colorTexture; +uniform sampler2D silhouetteTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates); + vec4 color = texture(colorTexture, v_textureCoordinates); + out_FragColor = mix(color, silhouetteColor, silhouetteColor.a); +} +`;var Fio=x(T(),1);/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. 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 of NVIDIA CORPORATION 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 ``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. + */var rM=`/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. 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 of NVIDIA CORPORATION 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 \`\`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. + */ + +// NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples +// Original source (archived): https://archive.org/details/nvidiagame-works-graphics-samples-master +// Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h +// Shader link in fork: https://github.com/lyntel/GraphicsSamples/blob/3d30817ebeeade64fe6a4fc3aa1fe4265c29b6fd/samples/es3-kepler/FXAA/FXAA3_11.h + +// Steps used to integrate into Cesium: +// * The following defines are set: +// #define FXAA_PC 1 +// #define FXAA_WEBGL_1 1 +// #define FXAA_GREEN_AS_LUMA 1 +// #define FXAA_EARLY_EXIT 1 +// #define FXAA_GLSL_120 1 +// * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed. +// * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace +// /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/. +// * There are no implicit conversions from ivec* to vec* so replace: +// #define FxaaInt2 ivec2 +// with +// #define FxaaInt2 vec2 +// * The texture2DLod function is only available in vertex shaders so replace: +// #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) +// #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) +// with +// #define FxaaTexTop(t, p) texture(t, p) +// #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) +// * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future. +// * The following parameters to FxaaPixelShader are unused and can be removed: +// fxaaConsolePosPos +// fxaaConsoleRcpFrameOpt +// fxaaConsoleRcpFrameOpt2 +// fxaaConsole360RcpFrameOpt2 +// fxaaConsoleEdgeSharpness +// fxaaConsoleEdgeThreshold +// fxaaConsoleEdgeThresholdMi +// fxaaConsole360ConstDir + +// +// Choose the quality preset. +// This needs to be compiled into the shader as it effects code. +// Best option to include multiple presets is to +// in each shader define the preset, then include this file. +// +// OPTIONS +// ----------------------------------------------------------------------- +// 10 to 15 - default medium dither (10=fastest, 15=highest quality) +// 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) +// 39 - no dither, very expensive +// +// NOTES +// ----------------------------------------------------------------------- +// 12 = slightly faster then FXAA 3.9 and higher edge quality (default) +// 13 = about same speed as FXAA 3.9 and better than 12 +// 23 = closest to FXAA 3.9 visually and performance wise +// _ = the lowest digit is directly related to performance +// _ = the highest digit is directly related to style +// +//#define FXAA_QUALITY_PRESET 12 + + +#if (FXAA_QUALITY_PRESET == 10) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 3.0 + #define FXAA_QUALITY_P2 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 11) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 3.0 + #define FXAA_QUALITY_P3 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 12) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 4.0 + #define FXAA_QUALITY_P4 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 13) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 4.0 + #define FXAA_QUALITY_P5 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 14) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 4.0 + #define FXAA_QUALITY_P6 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 15) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 20) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 2.0 + #define FXAA_QUALITY_P2 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 21) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 22) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 23) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 24) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 3.0 + #define FXAA_QUALITY_P6 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 25) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 26) + #define FXAA_QUALITY_PS 9 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 4.0 + #define FXAA_QUALITY_P8 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 27) + #define FXAA_QUALITY_PS 10 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 4.0 + #define FXAA_QUALITY_P9 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 28) + #define FXAA_QUALITY_PS 11 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 4.0 + #define FXAA_QUALITY_P10 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 29) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 39) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.0 + #define FXAA_QUALITY_P2 1.0 + #define FXAA_QUALITY_P3 1.0 + #define FXAA_QUALITY_P4 1.0 + #define FXAA_QUALITY_P5 1.5 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif + +#define FxaaBool bool +#define FxaaFloat float +#define FxaaFloat2 vec2 +#define FxaaFloat3 vec3 +#define FxaaFloat4 vec4 +#define FxaaHalf float +#define FxaaHalf2 vec2 +#define FxaaHalf3 vec3 +#define FxaaHalf4 vec4 +#define FxaaInt2 vec2 +#define FxaaTex sampler2D + +#define FxaaSat(x) clamp(x, 0.0, 1.0) +#define FxaaTexTop(t, p) texture(t, p) +#define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) + +FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } + +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #define lumaM rgbyM.y + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; +/*--------------------------------------------------------------------------*/ + if(earlyExit) + return rgbyM; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; +/*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; +/*--------------------------------------------------------------------------*/ + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; +/*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); +/*--------------------------------------------------------------------------*/ + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; +/*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; +/*--------------------------------------------------------------------------*/ + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } +/*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; +/*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; +/*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; +/*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); +} +`;var Uio=x(T(),1);function nA(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=new Zi,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new k,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties(nA.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(l(e))return e[e.length-1].getColorTexture(0)}}});function QVe(e){let t=e._framebuffers;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}function HCt(e,t){QVe(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?ze.HALF_FLOAT:ze.FLOAT,r=Math.ceil(Math.log(Math.max(n,i))/Math.log(3)),s=new Array(r);for(let c=0;c<r;++c)n=Math.max(Math.ceil(n/3),1),i=Math.max(Math.ceil(i/3),1),s[c]=new Zi,s[c].update(t,n,i,1,o);let a=s[r-1].getColorTexture(0);e._previousLuminance.update(t,a.width,a.height,1,o),e._framebuffers=s}function qVe(e){let t=e._commands;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function KCt(e,t){let n;if(t===0)n={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{let i=e._framebuffers[t-1].getColorTexture(0);n={colorTexture:function(){return i},colorTextureDimensions:function(){return i.dimensions}}}return n.minMaxLuminance=function(){return e._minMaxLuminance},n.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},n}function JCt(e,t){let n=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +float sampleTexture(vec2 offset) { +`;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset); + return czm_luminance(color.rgb); +`:n+=` return texture(colorTexture, v_textureCoordinates + offset).r; +`,n+=`} + +`,n+=`uniform vec2 colorTextureDimensions; +uniform vec2 minMaxLuminance; +uniform sampler2D previousLuminance; +void main() { + float color = 0.0; + float xStep = 1.0 / colorTextureDimensions.x; + float yStep = 1.0 / colorTextureDimensions.y; + int count = 0; + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + vec2 offset; + offset.x = -xStep + float(i) * xStep; + offset.y = -yStep + float(j) * yStep; + if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) { + continue; + } + color += sampleTexture(offset); + ++count; + } + } + if (count > 0) { + color /= float(count); + } +`,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r; + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); + color = previous + (color - previous) / (60.0 * 1.5); + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); +`),n+=` out_FragColor = vec4(color); +} +`,n}function jCt(e,t){qVe(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(JCt(r,i),{framebuffer:n[r].framebuffer,uniformMap:KCt(e,r)});e._commands=o}nA.prototype.clear=function(e){let t=this._framebuffers;if(!l(t))return;let n=this._clearCommand;l(n)||(n=this._clearCommand=new mi({color:new U(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let o=0;o<i;++o)t[o].clear(e,n)};nA.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,HCt(this,e),jCt(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;let i=this._framebuffers,o=i[i.length-1];i[i.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance.framebuffer,this._previousLuminance=o};nA.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};nA.prototype.isDestroyed=function(){return!1};nA.prototype.destroy=function(){return QVe(this),qVe(this),he(this)};var sM=nA;var uoo=x(T(),1);var Oio=x(T(),1),QCt={NEAREST:0,LINEAR:1},wu=QCt;function iA(e){e=e??B.EMPTY_OBJECT;let{name:t=zn(),fragmentShader:n,uniforms:i,textureScale:o=1,forcePowerOfTwo:r=!1,sampleMode:s=wu.NEAREST,pixelFormat:a=Qe.RGBA,pixelDatatype:c=ze.UNSIGNED_BYTE,clearColor:d=U.BLACK,scissorRectangle:u}=e;this._fragmentShader=n,this._uniforms=i,this._textureScale=o,this._forcePowerOfTwo=r,this._sampleMode=s,this._pixelFormat=a,this._pixelDatatype=c,this._clearColor=d,this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;let m=new sl;m.scissorTest={enabled:!0,rectangle:l(u)?it.clone(u):new it},this._passState=m,this._ready=!1,this._name=t,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}Object.defineProperties(iA.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(l(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(l(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var qCt=/uniform\s+sampler2D\s+depthTexture/g;iA.prototype._isSupported=function(e){return!qCt.test(this._fragmentShader)||e.depthTexture};function $Ct(e,t,n){let i=t[n];return(typeof i=="string"||i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement||i instanceof ImageData)&&e._dirtyUniforms.push(n),{get:function(){return t[n]},set:function(o){let r=t[n];t[n]=o;let s=e._actualUniforms,a=s[n];l(a)&&a!==r&&a instanceof Ft&&!l(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),r instanceof Ft&&e._texturesToRelease.push(r),typeof o=="string"||o instanceof HTMLCanvasElement||o instanceof HTMLImageElement||o instanceof HTMLVideoElement||o instanceof ImageData?e._dirtyUniforms.push(n):s[n]=o}}}function eRt(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function tRt(e,t){return function(){let n=e[t]();if(l(n))return n.dimensions}}function nRt(e){if(l(e._uniformMap))return;let t={},n={},i=e._uniforms,o=e._actualUniforms;for(let r in i){if(!i.hasOwnProperty(r))continue;typeof i[r]!="function"?(t[r]=eRt(e,r),n[r]=$Ct(e,i,r)):(t[r]=i[r],n[r]=i[r]),o[r]=i[r];let s=t[r]();(typeof s=="string"||s instanceof Ft||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${r}Dimensions`]=tRt(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=vt(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}function iRt(e,t){return e=e.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),`#define CZM_SELECTED_FEATURE +uniform sampler2D czm_idTexture; +uniform sampler2D czm_selectedIdTexture; +uniform float czm_selectedIdTextureStep; +in vec2 v_textureCoordinates; +bool czm_selected(vec2 offset) +{ + bool selected = false; + vec4 id = texture(czm_idTexture, v_textureCoordinates + offset); + for (int i = 0; i < ${t}; ++i) + { + vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); + if (all(equal(id, selectedId))) + { + return true; + } + } + return false; +} +bool czm_selected() +{ + return czm_selected(vec2(0.0)); +} + +${e}`}function oRt(e,t){if(l(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(l(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=iRt(n,o)}let i=new He({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function rRt(e){let t=e._sampleMode,n,i;t===wu.LINEAR?(n=Dt.LINEAR,i=qn.LINEAR):(n=Dt.NEAREST,i=qn.NEAREST);let o=e._sampler;(!l(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new Ht({wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function sRt(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function aRt(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function cRt(e,t){let n=e._texturesToRelease;for(let a=0;a<n.length;++a){let c=n[a];c=c&&c.destroy()}n.length=0;let i=e._texturesToCreate;for(let a=0;a<i.length;++a){let{name:c,source:d}=i[a];e._actualUniforms[c]=new Ft({context:t,source:d})}i.length=0;let o=e._dirtyUniforms;if(o.length===0&&!l(e._texturePromise)){e._ready=!0;return}if(o.length===0||l(e._texturePromise))return;let r=e._uniforms,s=[];for(let a=0;a<o.length;++a){let c=o[a],d=r[c],u=e._textureCache.getStageByName(d);if(l(u))e._actualUniforms[c]=aRt(e,d);else if(typeof d=="string"){let m=new We({url:d});s.push(m.fetchImage().then(sRt(e,c)))}else e._texturesToCreate.push({name:c,source:d})}o.length=0,s.length>0?(e._ready=!1,e._texturePromise=Promise.all(s).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function $Ve(e){l(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();let t=e._textureCache;if(!l(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i){if(!i.hasOwnProperty(o))continue;let r=i[o];r instanceof Ft&&(l(t.getStageByName(n[o]))||r.destroy(),e._dirtyUniforms.push(o))}}function lRt(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength;if(l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;for(let o=0;o<e._combinedSelected.length;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}function dRt(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!l(n))return;let i=0;for(let s=0;s<n.length;++s){let a=n[s];l(a.pickIds)?i+=a.pickIds.length:l(a.pickId)&&++i}if(n.length===0||i===0){let s=new Uint8Array([255,255,255,255]);e._selectedIdTexture=new Ft({context:t,pixelFormat:Qe.RGBA,pixelDatatype:ze.UNSIGNED_BYTE,source:{arrayBufferView:s,width:1,height:1},sampler:Ht.NEAREST});return}let o=0,r=new Uint8Array(i*4);for(let s=0;s<n.length;++s){let a=n[s];if(l(a.pickIds)){let c=a.pickIds,d=c.length;for(let u=0;u<d;++u){let m=c[u].color;r[o]=U.floatToByte(m.red),r[o+1]=U.floatToByte(m.green),r[o+2]=U.floatToByte(m.blue),r[o+3]=U.floatToByte(m.alpha),o+=4}}else if(l(a.pickId)){let c=a.pickId.color;r[o]=U.floatToByte(c.red),r[o+1]=U.floatToByte(c.green),r[o+2]=U.floatToByte(c.blue),r[o+3]=U.floatToByte(c.alpha),o+=4}}e._selectedIdTexture=new Ft({context:t,pixelFormat:Qe.RGBA,pixelDatatype:ze.UNSIGNED_BYTE,source:{arrayBufferView:r,width:i,height:1},sampler:Ht.NEAREST})}iA.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&$Ve(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=lRt(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0,dRt(this,e),nRt(this),cRt(this,e),oRt(this,e),rRt(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!l(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!l(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=Be.fromCache({viewport:new it(0,0,i.width,i.height)}))),this._command.renderState=o};iA.prototype.execute=function(e,t,n,i){if(!l(this._command)||!l(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,Ht.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);let o=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;l(o)&&(o.context=e),this._command.execute(e,o)};iA.prototype.isDestroyed=function(){return!1};iA.prototype.destroy=function(){return $Ve(this),he(this)};var Wo=iA;var goo=x(T(),1);function oA(e){e=e??B.EMPTY_OBJECT,this._stages=e.stages,this._inputPreviousStageTexture=e.inputPreviousStageTexture??!0;let t=e.name;l(t)||(t=zn()),this._name=t,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}Object.defineProperties(oA.prototype,{ready:{get:function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)if(!e[n].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)t[i].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});oA.prototype._isSupported=function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)if(!t[i]._isSupported(e))return!1;return!0};oA.prototype.get=function(e){return this._stages[e]};function uRt(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}oA.prototype.update=function(e,t){this._selectedDirty=uRt(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0;let n=this._stages,i=n.length;for(let o=0;o<i;++o){let r=n[o];this._selectedDirty&&(r.parentSelected=this._combinedSelected),r.update(e,t)}};oA.prototype.isDestroyed=function(){return!1};oA.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return he(this)};var Ud=oA;var qr={};function Tte(e){let o=`#define USE_STEP_SIZE +${wx}`,r=new Wo({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:wu.LINEAR}),s=new Wo({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:wu.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let d=r.uniforms,u=s.uniforms;d.delta=u.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let d=r.uniforms,u=s.uniforms;d.sigma=u.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let d=r.uniforms,u=s.uniforms;d.stepSize=u.stepSize=c}}}),new Ud({name:e,stages:[r,s],uniforms:a})}qr.createBlurStage=function(){return Tte("czm_blur")};qr.createDepthOfFieldStage=function(){let e=Tte("czm_depth_of_field_blur"),t=new Wo({name:"czm_depth_of_field_composite",fragmentShader:Kw,uniforms:{focalDistance:5,blurTexture:e.name}}),n={};return Object.defineProperties(n,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(i){t.uniforms.focalDistance=i}},delta:{get:function(){return e.uniforms.delta},set:function(i){e.uniforms.delta=i}},sigma:{get:function(){return e.uniforms.sigma},set:function(i){e.uniforms.sigma=i}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(i){e.uniforms.stepSize=i}}}),new Ud({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};qr.isDepthOfFieldSupported=function(e){return e.context.depthTexture};qr.createEdgeDetectionStage=function(){let e=zn();return new Wo({name:`czm_edge_detection_${e}`,fragmentShader:jw,uniforms:{length:.25,color:U.clone(U.BLACK)}})};qr.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function mRt(e){if(!l(e))return qr.createEdgeDetectionStage();let t=new Ud({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),n={},i="",o="";for(let a=0;a<e.length;++a)i+=`uniform sampler2D edgeTexture${a}; +`,o+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates); + if (edge${a}.a > 0.0) + { + color = edge${a}; + break; + } +`,n[`edgeTexture${a}`]=e[a].name;let r=`${i}in vec2 v_textureCoordinates; +void main() { + vec4 color = vec4(0.0); + for (int i = 0; i < ${e.length}; i++) + { +${o} } + out_FragColor = color; +} +`,s=new Wo({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new Ud({name:"czm_edge_detection_composite",stages:[t,s]})}qr.createSilhouetteStage=function(e){let t=mRt(e),n=new Wo({name:"czm_silhouette_color_edges",fragmentShader:oM,uniforms:{silhouetteTexture:t.name}});return new Ud({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};qr.isSilhouetteSupported=function(e){return e.context.depthTexture};qr.createBloomStage=function(){let e=new Wo({name:"czm_bloom_contrast_bias",fragmentShader:Hw,uniforms:{contrast:128,brightness:-.3}}),t=Tte("czm_bloom_blur"),n=new Ud({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new Wo({name:"czm_bloom_generate_composite",fragmentShader:Bw,uniforms:{glowOnly:!1,bloomTexture:n.name}}),o={};return Object.defineProperties(o,{glowOnly:{get:function(){return i.uniforms.glowOnly},set:function(r){i.uniforms.glowOnly=r}},contrast:{get:function(){return e.uniforms.contrast},set:function(r){e.uniforms.contrast=r}},brightness:{get:function(){return e.uniforms.brightness},set:function(r){e.uniforms.brightness=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}}}),new Ud({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};qr.createAmbientOcclusionStage=function(){let e=new Wo({name:"czm_ambient_occlusion_generate",fragmentShader:Uw,uniforms:{intensity:3,bias:.1,lengthCap:.26,directionCount:8,stepCount:32,randomTexture:void 0}}),t=new Wo({name:"czm_ambient_occlusion_composite",fragmentShader:Dw,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:e.name}}),n={};return Object.defineProperties(n,{intensity:{get:function(){return e.uniforms.intensity},set:function(i){e.uniforms.intensity=i}},bias:{get:function(){return e.uniforms.bias},set:function(i){e.uniforms.bias=i}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(i){e.uniforms.lengthCap=i}},directionCount:{get:function(){return e.uniforms.directionCount},set:function(i){e.uniforms.directionCount=i}},stepCount:{get:function(){return e.uniforms.stepCount},set:function(i){e.uniforms.stepCount=i}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(i){e.uniforms.randomTexture=i}},ambientOcclusionOnly:{get:function(){return t.uniforms.ambientOcclusionOnly},set:function(i){t.uniforms.ambientOcclusionOnly=i}}}),new Ud({name:"czm_ambient_occlusion",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};qr.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var hRt=`#define FXAA_QUALITY_PRESET 39 +${rM} +${$w}`;qr.createFXAAStage=function(){return new Wo({name:"czm_FXAA",fragmentShader:hRt,sampleMode:wu.LINEAR})};qr.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=kw,new Wo({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};qr.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=Qw,new Wo({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};qr.createPbrNeutralTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=qw,new Wo({name:"czm_pbr_neutral",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};qr.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=iM,new Wo({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};qr.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=tM,new Wo({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:U.WHITE,autoExposure:void 0,exposure:1}})};qr.createAutoExposureStage=function(){return new sM};qr.createBlackAndWhiteStage=function(){return new Wo({name:"czm_black_and_white",fragmentShader:Ow,uniforms:{gradations:5}})};qr.createBrightnessStage=function(){return new Wo({name:"czm_brightness",fragmentShader:zw,uniforms:{brightness:.5}})};qr.createNightVisionStage=function(){return new Wo({name:"czm_night_vision",fragmentShader:nM})};qr.createDepthViewStage=function(){return new Wo({name:"czm_depth_view",fragmentShader:Jw})};qr.createLensFlareStage=function(){return new Wo({name:"czm_lens_flare",fragmentShader:eM,uniforms:{dirtTexture:$t("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:$t("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:ie.WGS84.maximumRadius}})};var Mu=qr;var nro=x(T(),1);function gg(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function cM(e){for(;l(e.length);)e=e.get(e.length-1);return e.name}function _te(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(l(o)){let a=e.getStageByName(o);r[cM(a)]=!0}let s=i.uniforms;if(l(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let d=0;d<c;++d){let u=s[a[d]];if(typeof u=="string"){let m=e.getStageByName(u);l(m)&&(r[cM(m)]=!0)}}}return i.name}function aM(e,t,n,i,o){if(l(i.enabled)&&!i.enabled||l(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!l(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let m=0;m<c;++m){let p=i.get(m);l(p.length)?a=aM(e,t,n,p,o):a=_te(e,t,n,p,o),s&&(o=a)}let d,u;if(s)for(d=1;d<c;++d)u=cM(i.get(d)),l(n[u])||(n[u]={}),n[u][r]=!0;else for(d=1;d<c;++d){u=cM(i.get(d));let m=n[u];for(let p=0;p<d;++p)m[cM(i.get(p))]=!0}return a}function fRt(e,t){let n={};if(l(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=aM(e,t,n,i,void 0);a=aM(e,t,n,o,a),a=_te(e,t,n,r,a),a=aM(e,t,n,e,a),_te(e,t,n,s,a)}else aM(e,t,n,e,void 0);return n}function pRt(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,d=o._clearColor,u,m,p=e._framebuffers,b=p.length;for(u=0;u<b;++u){if(m=p[u],r!==m.textureScale||s!==m.forcePowerOfTwo||a!==m.pixelFormat||c!==m.pixelDatatype||!U.equals(d,m.clearColor))continue;let f=m.stages,y=f.length,_=!1;for(let S=0;S<y;++S)if(n[f[S]]){_=!0;break}if(!_)break}return l(m)&&u<b?(m.stages.push(t),m):(m={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:d,stages:[t],buffer:new Zi({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(m),m)}function bRt(e,t){let n=fRt(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=pRt(e,i,n[i]))}function Ste(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function gRt(e,t){let n=e._width,i=e._height,o=e._framebuffers,r=o.length;for(let s=0;s<r;++s){let a=o[s],c=a.textureScale,d=Math.ceil(n*c),u=Math.ceil(i*c),m=Math.min(d,u);a.forcePowerOfTwo&&(W.isPowerOfTwo(m)||(m=W.nextPowerOfTwo(m)),d=m,u=m),a.buffer.update(t,d,u),a.clear=new mi({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}gg.prototype.updateDependencies=function(){this._updateDependencies=!0};gg.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=l(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=l(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=l(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=l(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!l(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&(Ste(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&bRt(this,e);let c=e.drawingBufferWidth,d=e.drawingBufferHeight,u=this._width!==c||this._height!==d;!n&&!u||(this._width=c,this._height=d,this._updateDependencies=!1,Ste(this),gRt(this,e))};gg.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};gg.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};gg.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};gg.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(l(t))return t.buffer.framebuffer};gg.prototype.isDestroyed=function(){return!1};gg.prototype.destroy=function(){return Ste(this),he(this)};var rA=gg;var oro=x(T(),1),eGe={REINHARD:"REINHARD",MODIFIED_REINHARD:"MODIFIED_REINHARD",FILMIC:"FILMIC",ACES:"ACES",PBR_NEUTRAL:"PBR_NEUTRAL"};Object.freeze(eGe);var yg=eGe;var Ate=[];function td(){let e=Mu.createFXAAStage(),t=Mu.createAmbientOcclusionStage(),n=Mu.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=Mu.createAutoExposureStage(),this._exposure=1,this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=yg.PBR_NEUTRAL;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new rA(this),r={},s=Ate;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let d=c.length;if(l(d))for(let u=0;u<d;++u)s.push(c.get(u))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;let a=this;t.uniforms.randomTexture=function(){return a._randomTexture},this._ao=t,this._bloom=n,this._fxaa=e,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._activeStagesChanged=!1,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=r,this._textureCache=o}Object.defineProperties(td.prototype,{ready:{get:function(){let e=!1,t=this._stages,n=t.length;for(let a=n-1;a>=0;--a){let c=t[a];e=e||c.ready&&c.enabled}let i=this._fxaa,o=this._ao,r=this._bloom,s=this._tonemapping;return e=e||i.ready&&i.enabled,e=e||o.ready&&o.enabled,e=e||r.ready&&r.enabled,e=e||s.ready&&s.enabled,e}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return Zte(this),this._stages.length}},outputTexture:{get:function(){let e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);let t=this._stages,n=t.length;for(let s=n-1;s>=0;--s){let a=t[s];if(l(a)&&a.ready&&a.enabled)return this.getOutputTexture(a.name)}let i=this._tonemapping;if(i.enabled&&i.ready)return this.getOutputTexture(i.name);let o=this._bloom;if(o.enabled&&o.ready)return this.getOutputTexture(o.name);let r=this._ao;if(r.enabled&&r.ready)return this.getOutputTexture(r.name)}},hasSelected:{get:function(){let e=this._stages.slice();for(;e.length>0;){let t=e.pop();if(!l(t))continue;if(l(t.selected))return!0;let n=t.length;if(l(n))for(let i=0;i<n;++i)e.push(t.get(i))}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper===e)return;l(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case yg.REINHARD:n=Mu.createReinhardTonemappingStage(t);break;case yg.MODIFIED_REINHARD:n=Mu.createModifiedReinhardTonemappingStage(t);break;case yg.FILMIC:n=Mu.createFilmicTonemappingStage(t);break;case yg.PBR_NEUTRAL:n=Mu.createPbrNeutralTonemappingStage(t);break;default:n=Mu.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}else n.uniforms.exposure=this._exposure;this._tonemapper=e,this._tonemapping=n,l(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}},exposure:{get:function(){return this._exposure},set:function(e){this._tonemapping.uniforms.exposure=e,this._exposure=e}}});function Zte(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages;for(let i=0,o=0;i<n.length;++i){let r=n[i];r&&(r._index=o++,t.push(r))}e._stages=t}td.prototype.add=function(e){let t=this._stageNames,n=Ate;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(l(r))for(let s=0;s<r;++s)n.push(o.get(s))}let i=this._stages;return e._index=i.length,i.push(e),this._textureCacheDirty=!0,e};td.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=Ate;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(l(o))for(let r=0;r<o;++r)n.push(i.get(r))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0};td.prototype.contains=function(e){return l(e)&&l(e._index)&&e._textureCache===this._textureCache};td.prototype.get=function(e){return Zte(this),this._stages[e]};td.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};td.prototype.getStageByName=function(e){return this._stageNames[e]};td.prototype.update=function(e,t,n){Zte(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages;o.length=r.length;let s=0;for(let S=0;S<r.length;++S){let A=r[S];A.ready&&A.enabled&&A._isSupported(e)&&(o[s++]=A)}o.length=s;let a=s!==i.length;if(!a){for(let S=0;S<s;++S)if(o[S]!==i[S]){a=!0;break}}let c=this._ao,d=this._bloom,u=this._autoExposure,m=this._tonemapping,p=this._fxaa;m.enabled=n;let b=c.enabled&&c._isSupported(e),f=d.enabled&&d._isSupported(e),y=m.enabled&&m._isSupported(e),_=p.enabled&&p._isSupported(e);if((a||this._textureCacheDirty||b!==this._aoEnabled||f!==this._bloomEnabled||y!==this._tonemappingEnabled||_!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=b,this._bloomEnabled=f,this._tonemappingEnabled=y,this._fxaaEnabled=_,this._textureCacheDirty=!1),l(this._randomTexture)&&!b&&(this._randomTexture.destroy(),this._randomTexture=void 0),!l(this._randomTexture)&&b){let A=new Uint8Array(196608);for(let Z=0;Z<196608;Z+=3)A[Z]=Math.floor(Math.random()*255);this._randomTexture=new Ft({context:e,pixelFormat:Qe.RGB,pixelDatatype:ze.UNSIGNED_BYTE,source:{arrayBufferView:A,width:256,height:256},sampler:new Ht({wrapS:an.REPEAT,wrapT:an.REPEAT,minificationFilter:Dt.NEAREST,magnificationFilter:qn.NEAREST})})}this._textureCache.update(e),p.update(e,t),c.update(e,t),d.update(e,t),m.update(e,t),this._autoExposureEnabled&&u.update(e,t);for(let S=0;S<r.length;++S)r[S].update(e,t);s=0;for(let S=0;S<r.length;++S){let A=r[S];A.ready&&A.enabled&&A._isSupported(e)&&s++}a=s!==o.length,a&&this.update(e,t,n)};td.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function sA(e){for(;l(e.length);)e=e.get(e.length-1);return e.outputTexture}td.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(l(t))return sA(t)};function s0(e,t,n,i,o){if(l(e.execute)){e.execute(t,n,i,o);return}if(e.inputPreviousStageTexture){s0(e.get(0),t,n,i,o);for(let r=1;r<e.length;++r)s0(e.get(r),t,sA(e.get(r-1)),i,o)}else for(let r=0;r<e.length;++r)s0(e.get(r),t,n,i,o)}td.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,d=this._autoExposure,u=this._tonemapping,m=a.enabled&&a._isSupported(e),p=c.enabled&&c._isSupported(e),b=this._autoExposureEnabled,f=u.enabled&&u._isSupported(e),y=s.enabled&&s._isSupported(e);if(!y&&!m&&!p&&!f&&r===0)return;let _=t;m&&a.ready&&(s0(a,e,_,n,i),_=sA(a)),p&&c.ready&&(s0(c,e,_,n,i),_=sA(c)),b&&d.ready&&s0(d,e,_,n,i),f&&u.ready&&(s0(u,e,_,n,i),_=sA(u));let S=_;if(r>0){s0(o[0],e,_,n,i);for(let A=1;A<r;++A)s0(o[A],e,sA(o[A-1]),n,i);S=sA(o[r-1])}y&&s.ready&&s0(s,e,S,n,i)};td.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(kd,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};td.prototype.isDestroyed=function(){return!1};td.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),he(this)};var lM=td;var qro=x(T(),1);var Iro=x(T(),1);var Sro=x(T(),1),tGe={SHIFT:0,CTRL:1,ALT:2};Object.freeze(tGe);var fr=tGe;var Zro=x(T(),1),nGe={LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19};Object.freeze(nGe);var En=nGe;function Mx(e,t,n){let i=e._element;if(i===document)return n.x=t.clientX,n.y=t.clientY,n;let o=i.getBoundingClientRect();return n.x=t.clientX-o.left,n.y=t.clientY-o.top,n}function Lte(e,t){if(!l(t))return`${e}`;let n=Array.isArray(t)?t.toSorted():[t];return`${e}+${n.join("+")}`}function aA(e){let t=[];if(e.shiftKey&&t.push(fr.SHIFT),e.ctrlKey&&t.push(fr.CTRL),e.altKey&&t.push(fr.ALT),t.length)return t}var Ts={LEFT:0,MIDDLE:1,RIGHT:2};function ku(e,t,n,i){function o(r){i(e,r)}n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function yRt(e){let t=e._element,n=l(t.disableRootEvents)?t:document;mn.supportsPointerEvents()?(ku(e,"pointerdown",t,ZRt),ku(e,"pointerup",t,mGe),ku(e,"pointermove",t,CRt),ku(e,"pointercancel",t,mGe)):(ku(e,"mousedown",t,hGe),ku(e,"mouseup",n,fGe),ku(e,"mousemove",n,pGe),ku(e,"touchstart",t,SRt),ku(e,"touchend",n,aGe),ku(e,"touchmove",n,ARt),ku(e,"touchcancel",n,aGe)),ku(e,"dblclick",t,TRt);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",ku(e,i,t,_Rt)}function xRt(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var iGe={position:new k};function Wte(e){e._lastSeenTouchEvent=Ni()}function vte(e){return Ni()-e._lastSeenTouchEvent>Lf.mouseEmulationIgnoreMilliseconds}function Ete(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function hGe(e,t){if(!vte(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===Ts.LEFT)i=En.LEFT_DOWN;else if(n===Ts.MIDDLE)i=En.MIDDLE_DOWN;else if(n===Ts.RIGHT)i=En.RIGHT_DOWN;else return;let o=Mx(e,t,e._primaryPosition);k.clone(o,e._primaryStartPosition),k.clone(o,e._primaryPreviousPosition);let r=aA(t),s=e.getInputAction(i,r);l(s)&&(k.clone(o,iGe.position),s(iGe),t.preventDefault())}var oGe={position:new k},rGe={position:new k};function Cte(e,t,n,i){let o=aA(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(l(r)||l(s)){let a=Mx(e,i,e._primaryPosition);if(l(r)&&(k.clone(a,oGe.position),r(oGe)),l(s)){let c=e._primaryStartPosition;Ete(c,a,e._clickPixelTolerance)&&(k.clone(a,rGe.position),s(rGe))}}}function fGe(e,t){if(!vte(e))return;let n=t.button;n!==Ts.LEFT&&n!==Ts.MIDDLE&&n!==Ts.RIGHT||(e._buttonDown[Ts.LEFT]&&(Cte(e,En.LEFT_UP,En.LEFT_CLICK,t),e._buttonDown[Ts.LEFT]=!1),e._buttonDown[Ts.MIDDLE]&&(Cte(e,En.MIDDLE_UP,En.MIDDLE_CLICK,t),e._buttonDown[Ts.MIDDLE]=!1),e._buttonDown[Ts.RIGHT]&&(Cte(e,En.RIGHT_UP,En.RIGHT_CLICK,t),e._buttonDown[Ts.RIGHT]=!1))}var Rte={startPosition:new k,endPosition:new k};function pGe(e,t){if(!vte(e))return;let n=aA(t),i=Mx(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(En.MOUSE_MOVE,n);l(r)&&(k.clone(o,Rte.startPosition),k.clone(i,Rte.endPosition),r(Rte)),k.clone(i,o),(e._buttonDown[Ts.LEFT]||e._buttonDown[Ts.MIDDLE]||e._buttonDown[Ts.RIGHT])&&t.preventDefault()}var sGe={position:new k};function TRt(e,t){let n=t.button,i;if(n===Ts.LEFT)i=En.LEFT_DOUBLE_CLICK;else return;let o=aA(t),r=e.getInputAction(i,o);l(r)&&(Mx(e,t,sGe.position),r(sGe))}function _Rt(e,t){let n;if(l(t.deltaY)){let r=t.deltaMode;r===t.DOM_DELTA_PIXEL?n=-t.deltaY:r===t.DOM_DELTA_LINE?n=-t.deltaY*40:n=-t.deltaY*120}else t.detail>0?n=t.detail*-120:n=t.wheelDelta;if(!l(n))return;let i=aA(t),o=e.getInputAction(En.WHEEL,i);l(o)&&(o(n),t.preventDefault())}function SRt(e,t){Wte(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.set(s,Mx(e,r,new k));Q3(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.set(s,k.clone(a.get(s)))}function aGe(e,t){Wte(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.remove(s);Q3(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var cGe={position:new k},Vte={position1:new k,position2:new k},lGe={position:new k},dGe={position:new k},uGe={position:new k};function Q3(e,t){let n=aA(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[Ts.LEFT]){if(e._buttonDown[Ts.LEFT]=!1,l(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(En.LEFT_UP,n),l(r)&&(k.clone(e._primaryPosition,lGe.position),r(lGe)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(En.LEFT_CLICK,n),l(s))){let c=e._primaryStartPosition,d=e._previousPositions.values[0];Ete(c,d,e._clickPixelTolerance)&&(k.clone(e._primaryPosition,dGe.position),s(dGe))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(En.PINCH_END,n),l(r)&&r()),o===1&&!a){let c=i.values[0];k.clone(c,e._primaryPosition),k.clone(c,e._primaryStartPosition),k.clone(c,e._primaryPreviousPosition),e._buttonDown[Ts.LEFT]=!0,r=e.getInputAction(En.LEFT_DOWN,n),l(r)&&(k.clone(c,cGe.position),r(cGe)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(En.RIGHT_CLICK,n),l(s))){let d=e._primaryStartPosition,u=e._previousPositions.values[0];Ete(d,u,e._holdPixelTolerance)&&(k.clone(e._primaryPosition,uGe.position),s(uGe))}},Lf.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(En.PINCH_START,n),l(r)&&(k.clone(i.values[0],Vte.position1),k.clone(i.values[1],Vte.position2),r(Vte),t.preventDefault()))}function ARt(e,t){Wte(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i){r=n[i],s=r.identifier;let d=a.get(s);l(d)&&Mx(e,r,d)}bGe(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,k.clone(a.get(s),c.get(s))}var Gte={startPosition:new k,endPosition:new k},dM={distance:{startPosition:new k,endPosition:new k},angleAndHeight:{startPosition:new k,endPosition:new k}};function bGe(e,t){let n=aA(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[Ts.LEFT]){let a=i.values[0];k.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(En.MOUSE_MOVE,n),l(s)&&(k.clone(c,Gte.startPosition),k.clone(a,Gte.endPosition),s(Gte)),k.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(En.PINCH_MOVE,n),l(s))){let a=i.values[0],c=i.values[1],d=o.values[0],u=o.values[1],m=c.x-a.x,p=c.y-a.y,b=Math.sqrt(m*m+p*p)*.25,f=u.x-d.x,y=u.y-d.y,_=Math.sqrt(f*f+y*y)*.25,S=(c.y+a.y)*.125,A=(u.y+d.y)*.125,Z=Math.atan2(p,m),R=Math.atan2(y,f);k.fromElements(0,_,dM.distance.startPosition),k.fromElements(0,b,dM.distance.endPosition),k.fromElements(R,A,dM.angleAndHeight.startPosition),k.fromElements(Z,S,dM.angleAndHeight.endPosition),s(dM)}}function ZRt(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,Mx(e,t,new k)),Q3(e,t),e._previousPositions.set(i,k.clone(n.get(i)))}else hGe(e,t)}function mGe(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),Q3(e,t),e._previousPositions.remove(i)}else fGe(e,t)}function CRt(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!l(o))return;Mx(e,t,o),bGe(e,t);let r=e._previousPositions;k.clone(n.get(i),r.get(i))}else pGe(e,t)}function Lf(e){this._inputEvents={},this._buttonDown={[Ts.LEFT]:!1,[Ts.MIDDLE]:!1,[Ts.RIGHT]:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-Lf.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new k,this._primaryPosition=new k,this._primaryPreviousPosition=new k,this._positions=new wt,this._previousPositions=new wt,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=e??document,yRt(this)}Lf.prototype.setInputAction=function(e,t,n){let i=Lte(t,n);this._inputEvents[i]=e};Lf.prototype.getInputAction=function(e,t){let n=Lte(e,t);return this._inputEvents[n]};Lf.prototype.removeInputAction=function(e,t){let n=Lte(e,t);delete this._inputEvents[n]};Lf.prototype.isDestroyed=function(){return!1};Lf.prototype.destroy=function(){return xRt(this),he(this)};Lf.mouseEmulationIgnoreMilliseconds=800;Lf.touchHoldDelayMilliseconds=1500;var Uu=Lf;function cA(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}cA.prototype.completeMorph=function(){l(this._completeMorph)&&this._completeMorph()};cA.prototype.morphTo2D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof fn,!(this._previousMode===re.SCENE2D||this._previousMode===re.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,re.SCENE2D,!0),n._mode=re.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===re.COLUMBUS_VIEW?o1t(this,e):u1t(this,e,t),e===0&&l(this._completeMorph)&&this._completeMorph())};var RRt=new h,VRt=new h,GRt=new h,ERt=new h,LRt=new h,WRt=new h,vRt=new h,FRt=new fe,IRt=new F,PRt=new Mi,XRt=new fn,YRt={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};cA.prototype.morphToColumbusView=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===re.COLUMBUS_VIEW||this._previousMode===re.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,re.COLUMBUS_VIEW,!0),n.camera._setTransform(F.IDENTITY);let i=RRt,o=VRt,r=GRt;if(e>0)i.x=0,i.y=-1,i.z=1,i=h.multiplyByScalar(h.normalize(i,i),5*t.maximumRadius,i),h.negate(h.normalize(i,o),o),h.cross(h.UNIT_X,o,r);else{let d=n.camera;if(this._previousMode===re.SCENE2D)h.clone(d.position,i),i.z=d.frustum.right-d.frustum.left,h.negate(h.UNIT_Z,o),h.clone(h.UNIT_Y,r);else{h.clone(d.positionWC,i),h.clone(d.directionWC,o),h.clone(d.upWC,r);let u=t.scaleToGeodeticSurface(i,vRt),m=xt.eastNorthUpToFixedFrame(u,t,IRt);F.inverseTransformation(m,m),n.mapProjection.project(t.cartesianToCartographic(i,FRt),i),F.multiplyByPointAsVector(m,o,o),F.multiplyByPointAsVector(m,r,r)}}let s;this._morphToOrthographic?(s=XRt,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=PRt,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=W.toRadians(60));let a=YRt;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=h1t(a);uM(this,c),this._previousMode===re.SCENE2D?m1t(this,e,a,c):(a.position2D=F.multiplyByPoint(Ao.TRANSFORM_2D,i,ERt),a.direction2D=F.multiplyByPointAsVector(Ao.TRANSFORM_2D,o,LRt),a.up2D=F.multiplyByPointAsVector(Ao.TRANSFORM_2D,r,WRt),n._mode=re.MORPHING,VGe(this,e,a,c)),e===0&&l(this._completeMorph)&&this._completeMorph()};var Pte={position:new h,direction:new h,up:new h,frustum:void 0},yGe=new Mi;cA.prototype.morphTo3D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===re.SCENE3D||this._previousMode===re.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,re.SCENE3D,!0),n._mode=re.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===re.SCENE2D)KRt(this,e,t);else{let i;e>0?(i=Pte,h.fromDegrees(0,0,5*t.maximumRadius,t,i.position),h.negate(i.position,i.direction),h.normalize(i.direction,i.direction),h.clone(h.UNIT_Z,i.up)):i=xGe(this,t);let o,r=n.camera;r.frustum instanceof fn?o=r.frustum.clone():(o=yGe,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=W.toRadians(60)),i.frustum=o;let s=EGe(i);uM(this,s),Ite(this,e,i,s)}e===0&&l(this._completeMorph)&&this._completeMorph()}};cA.prototype.isDestroyed=function(){return!1};cA.prototype.destroy=function(){return q3(this),he(this)};function uM(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Uu(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,En.LEFT_DOWN),e._morphHandler.setInputAction(n,En.MIDDLE_DOWN),e._morphHandler.setInputAction(n,En.RIGHT_DOWN),e._morphHandler.setInputAction(n,En.WHEEL)}}function q3(e){let t=e._currentTweens;for(let n=0;n<t.length;++n)t[n].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}var NRt=new fe,wRt=new h,MRt=new F;function xGe(e,t){let n=e._scene,i=n.camera,o=Pte,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,NRt);t.cartographicToCartesian(c,r);let d=t.scaleToGeodeticSurface(r,wRt),u=xt.eastNorthUpToFixedFrame(d,t,MRt);return F.multiplyByPointAsVector(u,i.direction,s),F.multiplyByPointAsVector(u,i.up,a),o}var kRt=new h,URt=new h,DRt=new h,ORt=new h,BRt=new h,zRt=new h;function Ite(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(r.position,kRt),a=h.clone(r.direction,URt),c=h.clone(r.up,DRt),d=F.multiplyByPoint(Ao.TRANSFORM_2D_INVERSE,n.position,ORt),u=F.multiplyByPointAsVector(Ao.TRANSFORM_2D_INVERSE,n.direction,BRt),m=F.multiplyByPointAsVector(Ao.TRANSFORM_2D_INVERSE,n.up,zRt);function p(f){eh(s,d,f.time,r.position),eh(a,u,f.time,r.direction),eh(c,m,f.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let b=o.tweens.add({duration:t,easingFunction:xs.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){GGe(e,o,0,1,t,i)}});e._currentTweens.push(b)}var HRt=new fn,TGe=new h,_Ge=new h,SGe=new h,Xte=new h,AGe=new h,ZGe=new h;function KRt(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=Pte,h.fromDegrees(0,0,5*n.maximumRadius,n,r.position),h.negate(r.position,r.direction),h.normalize(r.direction,r.direction),h.clone(h.UNIT_Z,r.up)):(o.position.z=o.frustum.right-o.frustum.left,r=xGe(e,n));let s;e._morphToOrthographic?(s=HRt,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=yGe,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=W.toRadians(60)),r.frustum=s;let a=EGe(r);uM(e,a);let c;e._morphToOrthographic?c=function(){Ite(e,t,r,a)}:c=function(){RGe(e,t,r,function(){Ite(e,t,r,a)})},t>0?(i._mode=re.SCENE2D,o.flyTo({duration:t,destination:h.fromDegrees(0,0,5*n.maximumRadius,n,Xte),complete:function(){i._mode=re.MORPHING,c()}})):c()}function eh(e,t,n,i){return h.lerp(e,t,n,i)}function CGe(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof fn)return;let a=s.frustum.fov,c=W.RADIANS_PER_DEGREE*.5,d=n.position.z*Math.tan(a*.5);s.frustum.far=d/Math.tan(c*.5)+1e7;function u(p){s.frustum.fov=W.lerp(a,c,p.time);let b=d/Math.tan(s.frustum.fov*.5);i(s,b)}let m=r.tweens.add({duration:t,easingFunction:xs.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:u,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(m)}var JRt=new h,jRt=new h,QRt=new h,Fte=new h,qRt=new h,$Rt=new h,e1t=new rs,t1t=new _n,n1t=new h,i1t={position:void 0,direction:void 0,up:void 0,frustum:void 0};function o1t(e,t){t*=.5;let n=e._scene,i=n.camera,o=h.clone(i.position,JRt),r=h.clone(i.direction,jRt),s=h.clone(i.up,QRt),a=h.negate(h.UNIT_Z,qRt),c=h.clone(h.UNIT_Y,$Rt),d=Fte;if(t>0)h.clone(h.ZERO,Fte),d.z=5*n.ellipsoid.maximumRadius;else{h.clone(o,Fte);let _=t1t;F.multiplyByPoint(Ao.TRANSFORM_2D,o,_.origin),F.multiplyByPointAsVector(Ao.TRANSFORM_2D,r,_.direction);let S=n.globe;if(l(S)){let A=S.pickWorldCoordinates(_,n,!0,n1t);l(A)&&(F.multiplyByPoint(Ao.TRANSFORM_2D_INVERSE,A,d),d.z+=h.distance(o,d))}}let u=e1t;u.right=d.z*.5,u.left=-u.right,u.top=u.right*(n.drawingBufferHeight/n.drawingBufferWidth),u.bottom=-u.top;let m=i1t;m.position=d,m.direction=a,m.up=c,m.frustum=u;let p=LGe(m);uM(e,p);function b(_){eh(o,d,_.time,i.position),eh(r,a,_.time,i.direction),eh(s,c,_.time,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i._adjustOrthographicFrustum(!0)}function f(_,S){_.position.z=S}let y=n.tweens.add({duration:t,easingFunction:xs.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:b,complete:function(){CGe(e,t,m,f,p)}});e._currentTweens.push(y)}var gGe=new fe,r1t={position:new h,direction:new h,up:new h,position2D:new h,direction2D:new h,up2D:new h,frustum:new rs},s1t={position:new h,direction:new h,up:new h,frustum:void 0},a1t=new h,c1t=new _n,l1t=new F,d1t=new h;function u1t(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=r1t;if(t>0)h.clone(h.ZERO,r.position),r.position.z=5*n.maximumRadius,h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);else{n.cartesianToCartographic(o.positionWC,gGe),i.mapProjection.project(gGe,r.position),h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);let m=c1t;h.clone(r.position2D,m.origin);let p=h.clone(o.directionWC,m.direction),b=n.scaleToGeodeticSurface(o.positionWC,d1t),f=xt.eastNorthUpToFixedFrame(b,n,l1t);F.inverseTransformation(f,f),F.multiplyByPointAsVector(f,p,p),F.multiplyByPointAsVector(Ao.TRANSFORM_2D,p,p);let y=i.globe;if(l(y)){let _=y.pickWorldCoordinates(m,i,!0,a1t);if(l(_)){let S=h.distance(r.position2D,_);_.x+=S,h.clone(_,r.position2D)}}}function s(m,p){m.position.x=p}F.multiplyByPoint(Ao.TRANSFORM_2D,r.position,r.position2D),F.multiplyByPointAsVector(Ao.TRANSFORM_2D,r.direction,r.direction2D),F.multiplyByPointAsVector(Ao.TRANSFORM_2D,r.up,r.up2D);let a=r.frustum;a.right=r.position.z*.5,a.left=-a.right,a.top=a.right*(i.drawingBufferHeight/i.drawingBufferWidth),a.bottom=-a.top;let c=s1t;F.multiplyByPoint(Ao.TRANSFORM_2D_INVERSE,r.position2D,c.position),h.clone(r.direction,c.direction),h.clone(r.up,c.up),c.frustum=a;let d=LGe(c);uM(e,d);function u(){CGe(e,t,r,s,d)}VGe(e,t,r,u)}function RGe(e,t,n,i){let o=e._scene,r=o.camera,s=r.frustum.right-r.frustum.left;r.frustum=n.frustum.clone();let a=r.frustum.fov,c=W.RADIANS_PER_DEGREE*.5,d=s*Math.tan(a*.5);r.frustum.far=d/Math.tan(c*.5)+1e7,r.frustum.fov=c;function u(p){r.frustum.fov=W.lerp(c,a,p.time),r.position.z=d/Math.tan(r.frustum.fov*.5)}let m=o.tweens.add({duration:t,easingFunction:xs.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:u,complete:function(){i(e)}});e._currentTweens.push(m)}function m1t(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(n.position,Xte),a=h.clone(n.direction,AGe),c=h.clone(n.up,ZGe);o._mode=re.MORPHING;function d(){r.frustum=n.frustum.clone();let u=h.clone(r.position,TGe),m=h.clone(r.direction,_Ge),p=h.clone(r.up,SGe);u.z=s.z;function b(y){eh(u,s,y.time,r.position),eh(m,a,y.time,r.direction),eh(p,c,y.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let f=o.tweens.add({duration:t,easingFunction:xs.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:b,complete:function(){i(e)}});e._currentTweens.push(f)}e._morphToOrthographic?d():RGe(e,0,n,d)}function VGe(e,t,n,i){let o=e._scene,r=o.camera,s=h.clone(r.position,TGe),a=h.clone(r.direction,_Ge),c=h.clone(r.up,SGe),d=h.clone(n.position2D,Xte),u=h.clone(n.direction2D,AGe),m=h.clone(n.up2D,ZGe);function p(f){eh(s,d,f.time,r.position),eh(a,u,f.time,r.direction),eh(c,m,f.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right),r._adjustOrthographicFrustum(!0)}let b=o.tweens.add({duration:t,easingFunction:xs.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){GGe(e,o,1,0,t,i)}});e._currentTweens.push(b)}function GGe(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:xs.QUARTIC_OUT};l(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function EGe(e){return function(t){let n=t._scene;n._mode=re.SCENE3D,n.morphTime=re.getMorphTime(re.SCENE3D),q3(t);let i=n.camera;(t._previousMode!==re.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone());let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,re.SCENE3D,r)}}function LGe(e){return function(t){let n=t._scene;n._mode=re.SCENE2D,n.morphTime=re.getMorphTime(re.SCENE2D),q3(t);let i=n.camera;h.clone(e.position,i.position),i.position.z=n.ellipsoid.maximumRadius*2,h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone();let o=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,re.SCENE2D,o)}}function h1t(e){return function(t){let n=t._scene;n._mode=re.COLUMBUS_VIEW,n.morphTime=re.getMorphTime(re.COLUMBUS_VIEW),q3(t);let i=n.camera;(t._previousModeMode!==re.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right));let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,re.COLUMBUS_VIEW,r)}}var mM=cA;var zso=x(T(),1);var dso=x(T(),1);var eso=x(T(),1),WGe={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4};Object.freeze(WGe);var qi=WGe;var XGe=[fr.SHIFT,fr.CTRL,fr.ALT,[fr.SHIFT,fr.CTRL],[fr.SHIFT,fr.ALT],[fr.CTRL,fr.ALT],[fr.SHIFT,fr.CTRL,fr.ALT]];function Ma(e,t){if(!l(t))return`${e}`;let n=Array.isArray(t)?t.toSorted():[t];return`${e}+${n.join("+")}`}function f1t(e,t){k.clone(e.distance.startPosition,t.distance.startPosition),k.clone(e.distance.endPosition,t.distance.endPosition),k.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),k.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function vGe(e,t,n){let i=Ma(qi.PINCH,t),o=e._update,r=e._isDown,s=e._eventStartPosition,a=e._pressTime,c=e._releaseTime;o[i]=!0,r[i]=!1,s[i]=new k;let d=e._movement[i];l(d)||(d=e._movement[i]={}),d.distance={startPosition:new k,endPosition:new k},d.angleAndHeight={startPosition:new k,endPosition:new k},d.prevAngle=0,e._eventHandler.setInputAction(function(u){e._buttonsDown++,r[i]=!0,a[i]=new Date,k.lerp(u.position1,u.position2,.5,s[i])},En.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},En.PINCH_END,t),e._eventHandler.setInputAction(function(u){if(r[i]){o[i]?(f1t(u,d),o[i]=!1,d.prevAngle=d.angleAndHeight.startPosition.x):(k.clone(u.distance.endPosition,d.distance.endPosition),k.clone(u.angleAndHeight.endPosition,d.angleAndHeight.endPosition));let m=d.angleAndHeight.endPosition.x,p=d.prevAngle,b=Math.PI*2;for(;m>=p+Math.PI;)m-=b;for(;m<p-Math.PI;)m+=b;d.angleAndHeight.endPosition.x=-m*n.clientWidth/12,d.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},En.PINCH_MOVE,t)}function FGe(e,t){let n=Ma(qi.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];l(s)||(s=e._movement[n]={});let a=e._lastMovement[n];l(a)||(a=e._lastMovement[n]={startPosition:new k,endPosition:new k,valid:!1}),s.startPosition=new k,k.clone(k.ZERO,s.startPosition),s.endPosition=new k,e._eventHandler.setInputAction(function(c){let d=7.5*W.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=d,k.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},En.WHEEL,t)}function M1(e,t,n){let i=Ma(n,t),o=e._isDown,r=e._eventStartPosition,s=e._pressTime;o[i]=!1,r[i]=new k;let a=e._lastMovement[i];l(a)||(a=e._lastMovement[i]={startPosition:new k,endPosition:new k,valid:!1});let c,d;n===qi.LEFT_DRAG?(c=En.LEFT_DOWN,d=En.LEFT_UP):n===qi.RIGHT_DRAG?(c=En.RIGHT_DOWN,d=En.RIGHT_UP):n===qi.MIDDLE_DRAG&&(c=En.MIDDLE_DOWN,d=En.MIDDLE_UP),e._eventHandler.setInputAction(function(u){e._buttonsDown++,a.valid=!1,o[i]=!0,s[i]=new Date,k.clone(u.position,r[i])},c,t),e._eventHandler.setInputAction(function(){Yte(Ma(n,void 0),e);for(let u of XGe){let m=Ma(n,u);Yte(m,e)}},d,t)}function Yte(e,t){let n=t._releaseTime,i=t._isDown;i[e]&&(t._buttonsDown=Math.max(t._buttonsDown-1,0)),i[e]=!1,n[e]=new Date}function IGe(e,t){k.clone(e.startPosition,t.startPosition),k.clone(e.endPosition,t.endPosition)}function p1t(e,t,n){let i=n._isDown,o=!1,r=Ma(e,t);for(let[c,d]of Object.entries(i))c.startsWith(e)&&d&&c!==r&&(o=!0,Yte(c,n));if(!o)return;let s=n._pressTime,a=n._lastMovement[r];l(a)||(a=n._lastMovement[r]={startPosition:new k,endPosition:new k,valid:!1}),n._buttonsDown++,a.valid=!1,i[r]=!0,s[r]=new Date}function PGe(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in qi)if(qi.hasOwnProperty(s)){let a=qi[s];if(l(a)){let c=Ma(a,t);n[c]=!0,l(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new k,endPosition:new k,valid:!1}),l(e._movement[c])||(e._movement[c]={startPosition:new k,endPosition:new k})}}e._eventHandler.setInputAction(function(s){for(let a in qi)if(qi.hasOwnProperty(a)){let c=qi[a];if(l(c)){let d=Ma(c,t);p1t(c,t,e),r[d]&&(n[d]?(IGe(i[d],o[d]),o[d].valid=!0,IGe(s,i[d]),n[d]=!1):k.clone(s.endPosition,i[d].endPosition))}}k.clone(s.endPosition,e._currentMousePosition)},En.MOUSE_MOVE,t)}function th(e){this._eventHandler=new Uu(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new k,FGe(this,void 0),vGe(this,void 0,e),M1(this,void 0,qi.LEFT_DRAG),M1(this,void 0,qi.RIGHT_DRAG),M1(this,void 0,qi.MIDDLE_DRAG),PGe(this,void 0);for(let t of XGe)FGe(this,t),vGe(this,t,e),M1(this,t,qi.LEFT_DRAG),M1(this,t,qi.RIGHT_DRAG),M1(this,t,qi.MIDDLE_DRAG),PGe(this,t)}Object.defineProperties(th.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[Ma(qi.WHEEL)]||!this._update[Ma(qi.WHEEL,fr.SHIFT)]||!this._update[Ma(qi.WHEEL,fr.CTRL)]||!this._update[Ma(qi.WHEEL,fr.ALT)];return this._buttonsDown>0||e}}});th.prototype.isMoving=function(e,t){let n=Ma(e,t);return!this._update[n]};th.prototype.getMovement=function(e,t){let n=Ma(e,t);return this._movement[n]};th.prototype.getLastMovement=function(e,t){let n=Ma(e,t),i=this._lastMovement[n];if(i.valid)return i};th.prototype.isButtonDown=function(e,t){let n=Ma(e,t);return this._isDown[n]};th.prototype.getStartMousePosition=function(e,t){if(e===qi.WHEEL)return this._currentMousePosition;let n=Ma(e,t);return this._eventStartPosition[n]};th.prototype.getButtonPressTime=function(e,t){let n=Ma(e,t);return this._pressTime[n]};th.prototype.getButtonReleaseTime=function(e,t){let n=Ma(e,t);return this._releaseTime[n]};th.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};th.prototype.isDestroyed=function(){return!1};th.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),he(this)};var hM=th;var xso=x(T(),1);function $3(e,t,n,i,o,r,s,a,c,d){this._tweens=e,this._tweenjs=t,this._startObject=Je(n),this._stopObject=Je(i),this._duration=o,this._delay=r,this._easingFunction=s,this._update=a,this._complete=c,this.cancel=d,this.needsStart=!0}Object.defineProperties($3.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}});$3.prototype.cancelTween=function(){this._tweens.remove(this)};function Wf(){this._tweens=[]}Object.defineProperties(Wf.prototype,{length:{get:function(){return this._tweens.length}}});Wf.prototype.add=function(e){if(e=e??B.EMPTY_OBJECT,e.duration===0)return l(e.complete)&&e.complete(),new $3(this);let t=e.duration/si.SECONDS_PER_MILLISECOND,n=e.delay??0,i=n/si.SECONDS_PER_MILLISECOND,o=e.easingFunction??xs.LINEAR_NONE,r=e.startObject,s=new sCe(r);s.to(Je(e.stopObject),t),s.delay(i),s.easing(o),l(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(e.complete??null),s.repeat(e._repeat??0);let a=new $3(this,s,e.startObject,e.stopObject,e.duration,n,o,e.update,e.complete,e.cancel);return this._tweens.push(a),a};Wf.prototype.addProperty=function(e){e=e??B.EMPTY_OBJECT;let t=e.object,n=e.property,i=e.startValue,o=e.stopValue;function r(s){t[n]=s.value}return this.add({startObject:{value:i},stopObject:{value:o},duration:e.duration??3,delay:e.delay,easingFunction:e.easingFunction,update:r,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})};Wf.prototype.addAlpha=function(e){e=e??B.EMPTY_OBJECT;let t=e.material,n=[];for(let o in t.uniforms)t.uniforms.hasOwnProperty(o)&&l(t.uniforms[o])&&l(t.uniforms[o].alpha)&&n.push(o);function i(o){let r=n.length;for(let s=0;s<r;++s)t.uniforms[n[s]].alpha=o.alpha}return this.add({startObject:{alpha:e.startValue??0},stopObject:{alpha:e.stopValue??1},duration:e.duration??3,delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel})};Wf.prototype.addOffsetIncrement=function(e){e=e??B.EMPTY_OBJECT;let n=e.material.uniforms;return this.addProperty({object:n,property:"offset",startValue:n.offset,stopValue:n.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})};Wf.prototype.remove=function(e){if(!l(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),l(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};Wf.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),l(n.cancel)&&n.cancel()}e.length=0};Wf.prototype.contains=function(e){return l(e)&&this._tweens.indexOf(e)!==-1};Wf.prototype.get=function(e){return this._tweens[e]};Wf.prototype.update=function(e){let t=this._tweens,n=0;for(e=l(e)?e/si.SECONDS_PER_MILLISECOND:Ni();n<t.length;){let i=t[n],o=i.tweenjs;if(i.needsStart)i.needsStart=!1,o.start(e);else if(o.update(e))n++;else{if(t[n]?.needsStart)continue;o.stop(),t.splice(n,1)}}};var lA=Wf;function pM(e){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.zoomFactor=5,this.translateEventTypes=qi.LEFT_DRAG,this.zoomEventTypes=[qi.RIGHT_DRAG,qi.WHEEL,qi.PINCH],this.rotateEventTypes=qi.LEFT_DRAG,this.tiltEventTypes=[qi.MIDDLE_DRAG,qi.PINCH,{eventType:qi.LEFT_DRAG,modifier:fr.CTRL},{eventType:qi.RIGHT_DRAG,modifier:fr.CTRL}],this.lookEventTypes={eventType:qi.LEFT_DRAG,modifier:fr.SHIFT};let t=e.ellipsoid??ie.default;this.minimumPickingTerrainHeight=ie.WGS84.equals(t)?15e4:t.minimumRadius*.025,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=ie.WGS84.equals(t)?4e3:t.minimumRadius*63e-5,this.minimumCollisionTerrainHeight=ie.WGS84.equals(t)?15e3:t.minimumRadius*.0025,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=ie.WGS84.equals(t)?75e5:t.minimumRadius*1.175,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this.maximumTiltAngle=void 0,this._scene=e,this._globe=void 0,this._ellipsoid=t,this._lastGlobeHeight=0,this._aggregator=new hM(e.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._inertiaDisablers={_lastInertiaZoomMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement","_lastInertiaTiltMovement"],_lastInertiaTiltMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement"]},this._tweens=new lA,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new k(-1,-1),this._tiltCenter=new h,this._rotateMousePosition=new k(-1,-1),this._rotateStartPosition=new h,this._strafeStartPosition=new h,this._strafeMousePosition=new k,this._strafeEndMousePosition=new k,this._zoomMouseStart=new k(-1,-1),this._zoomWorldPosition=new h,this._useZoomWorldPosition=!1,this._panLastMousePosition=new k,this._panLastWorldPosition=new h,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._zoomingUnderground=!1,this._rotatingZoom=!1,this._adjustedHeightForTerrain=!1,this._cameraUnderground=!1;let n=e.mapProjection;this._maxCoord=n.project(new fe(Math.PI,W.PI_OVER_TWO)),this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=1/5e3,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3,this._minimumUndergroundPickDistance=2e3,this._maximumUndergroundPickDistance=1e4}function b1t(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function g1t(e){return k.equalsEpsilon(e.startPosition,e.endPosition,W.EPSILON14)}var y1t=.4;function x1t(e,t,n,i,o,r,s){let a=r[s];l(a)||(a=r[s]={startPosition:new k,endPosition:new k,motion:new k,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),d=e.getButtonReleaseTime(t,n),u=c&&d&&(d.getTime()-c.getTime())/1e3,p=d&&(new Date().getTime()-d.getTime())/1e3;if(c&&d&&u<y1t){let b=b1t(p,i),f=e.getLastMovement(t,n);if(!l(f)||g1t(f)||!a.inertiaEnabled||(a.motion.x=(f.endPosition.x-f.startPosition.x)*.5,a.motion.y=(f.endPosition.y-f.startPosition.y)*.5,a.startPosition=k.clone(f.startPosition,a.startPosition),a.endPosition=k.multiplyByScalar(a.motion,b,a.endPosition),a.endPosition=k.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||k.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let y=e.getStartMousePosition(t,n);o(r,y,a)}}}function T1t(e,t){if(l(t)){let n=e[t];l(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(l(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],l(n)&&(n.inertiaEnabled=!1)}}}var YGe=[];function nd(e,t,n,i,o,r){if(!l(n))return;let s=e._aggregator;Array.isArray(n)||(YGe[0]=n,n=YGe);let a=n.length;for(let c=0;c<a;++c){let d=n[c],u=l(d.eventType)?d.eventType:d,m=d.modifier,p=s.isMoving(u,m)&&s.getMovement(u,m),b=s.getStartMousePosition(u,m);e.enableInputs&&t&&(p?(i(e,b,p),T1t(e,r)):o<1&&x1t(s,u,m,o,i,e,r))}}var ez=new _n,_1t=new h,S1t=new k,A1t=new h,Z1t=new k,C1t=new h,R1t=new h,V1t=new h,G1t=new h,JGe=new h,E1t=new h,L1t=new h,W1t=new h,v1t=new h,F1t=new h,I1t=new h,P1t=new h,X1t=new h,Y1t=new h,N1t=new h,dA=new h,NGe=new h,wGe=new h,Nte={orientation:new bc};function zte(e,t,n,i,o,r){let s=1;l(r)&&(s=W.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,d=a>0?e.minimumZoomDistance*s:0,u=e.maximumZoomDistance,m=o-d,p=i*m;p=W.clamp(p,e._minimumZoomRate,e._maximumZoomRate);let b=a/e._scene.canvas.clientHeight;b=Math.min(b,e.maximumMovementRatio);let f=p*b;if(e.enableCollisionDetection||e.minimumZoomDistance===0||!l(e._globe)){if(f>0&&Math.abs(o-d)<1||f<0&&Math.abs(o-u)<1)return;o-f<d?f=o-d-1:o-f>u&&(f=o-u)}let y=e._scene,_=y.camera,S=y.mode,A=Nte.orientation;A.heading=_.heading,A.pitch=_.pitch,A.roll=_.roll;let Z=n.inertiaEnabled??k.equals(t,e._zoomMouseStart),R=e._zoomingOnVector,G=e._rotatingZoom,E;if(Z||(e._zoomMouseStart=k.clone(t,e._zoomMouseStart),l(e._globe)&&S===re.SCENE2D?(E=_.getPickRay(t,ez).origin,E=h.fromElements(E.y,E.z,E.x)):l(e._globe)&&(E=xg(e,t,_1t)),l(E)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=h.clone(E,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,R=e._zoomingOnVector=!1,G=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){_.zoomIn(f);return}let v=S===re.COLUMBUS_VIEW;if(_.positionCartographic.height<2e6&&(G=!0),!Z||G){if(S===re.SCENE2D){let I=e._zoomWorldPosition,X=_.position;if(!h.equals(I,X)&&_.positionCartographic.height<e._maxCoord.x*2){let Y=_.position.x,g=h.subtract(I,X,A1t);h.normalize(g,g);let C=h.distance(I,X)*f/(_.getMagnitude()*.5);_.move(g,C*.5),(_.position.x<0&&Y>0||_.position.x>0&&Y<0)&&(E=_.getPickRay(t,ez).origin,E=h.fromElements(E.y,E.z,E.x),e._zoomWorldPosition=h.clone(E,e._zoomWorldPosition))}}else if(S===re.SCENE3D){let I=h.normalize(_.position,JGe);if(e._cameraUnderground||e._zoomingUnderground||_.positionCartographic.height<3e3&&Math.abs(h.dot(_.direction,I))<.6)v=!0;else{let X=y.canvas,Y=Z1t;Y.x=X.clientWidth/2,Y.y=X.clientHeight/2;let g=xg(e,Y,C1t);if(!l(g))v=!0;else if(_.positionCartographic.height<1e6)if(h.dot(_.direction,I)>=-.5)v=!0;else{let C=L1t;h.clone(_.position,C);let V=e._zoomWorldPosition,L=E1t;if(L=h.normalize(V,L),h.dot(L,I)<0)return;let P=N1t,N=F1t;h.clone(_.direction,N),h.add(C,h.multiplyByScalar(N,1e3,dA),P);let O=I1t,M=P1t;h.subtract(V,C,O),h.normalize(O,M);let D=h.dot(I,M);if(D>=0){e._zoomMouseStart.x=-1;return}let w=Math.acos(-D),z=h.magnitude(C),K=h.magnitude(V),ee=z-f,H=h.magnitude(O),te=Math.asin(W.clamp(H/K*Math.sin(w),-1,1)),q=Math.asin(W.clamp(ee/K*Math.sin(w),-1,1)),de=te-q+w,ye=W1t;h.normalize(C,ye);let le=v1t;le=h.cross(M,ye,le),le=h.normalize(le,le),h.normalize(h.cross(ye,le,dA),N),h.multiplyByScalar(h.normalize(P,dA),h.magnitude(P)-f,P),h.normalize(C,C),h.multiplyByScalar(C,ee,C);let Ce=X1t;h.multiplyByScalar(h.add(h.multiplyByScalar(ye,Math.cos(de)-1,NGe),h.multiplyByScalar(N,Math.sin(de),wGe),dA),ee,Ce),h.add(C,Ce,C),h.normalize(P,ye),h.normalize(h.cross(ye,le,dA),N);let ge=Y1t;h.multiplyByScalar(h.add(h.multiplyByScalar(ye,Math.cos(de)-1,NGe),h.multiplyByScalar(N,Math.sin(de),wGe),dA),h.magnitude(P),ge),h.add(P,ge,P),h.clone(C,_.position),h.normalize(h.subtract(P,C,dA),_.direction),h.clone(_.direction,_.direction),h.cross(_.direction,_.up,_.right),h.cross(_.right,_.direction,_.up),_.setView(Nte);return}else{let C=h.normalize(g,R1t),V=h.normalize(e._zoomWorldPosition,V1t),L=h.dot(V,C);if(L>0&&L<1){let P=W.acosClamped(L),N=h.cross(V,C,G1t),O=Math.abs(P)>W.toRadians(20)?_.positionCartographic.height*.75:_.positionCartographic.height-f,M=f/O;_.rotate(N,P*M)}}}}e._rotatingZoom=!v}if(!Z&&v||R){let I,X=no.worldToWindowCoordinates(y,e._zoomWorldPosition,S1t);S!==re.COLUMBUS_VIEW&&k.equals(t,e._zoomMouseStart)&&l(X)?I=_.getPickRay(X,ez):I=_.getPickRay(t,ez);let Y=I.direction;(S===re.COLUMBUS_VIEW||S===re.SCENE2D)&&h.fromElements(Y.y,Y.z,Y.x,Y),_.move(Y,f),e._zoomingOnVector=!0}else _.zoomIn(f);e._cameraUnderground||_.setView(Nte)}var w1t=new _n,M1t=new _n,k1t=new h;function U1t(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,w1t).origin,s=o.getPickRay(n.endPosition,M1t).origin;r=h.fromElements(r.y,r.z,r.x,r),s=h.fromElements(s.y,s.z,s.x,s);let a=h.subtract(r,s,k1t),c=h.magnitude(a);c>0&&(h.normalize(a,a),o.move(a,c))}function MGe(e,t,n){l(n.distance)&&(n=n.distance);let o=e._scene.camera;zte(e,t,n,e.zoomFactor,o.getMagnitude())}var D1t=new k,O1t=new k;function kGe(e,t,n){if(l(n.angleAndHeight)){B1t(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=D1t;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=k.normalize(c,c);let d=O1t;d.x=2/s*n.endPosition.x-1,d.y=2/a*(a-n.endPosition.y)-1,d=k.normalize(d,d);let u=W.acosClamped(c.x);c.y<0&&(u=W.TWO_PI-u);let m=W.acosClamped(d.x);d.y<0&&(m=W.TWO_PI-m);let p=m-u;o.twistRight(p)}function B1t(e,t,n){let i=e._rotateFactor*e._rotateRateRangeAdjustment;i>e._maximumRotateRate&&(i=e._maximumRotateRate),i<e._minimumRotateRate&&(i=e._minimumRotateRate);let o=e._scene,r=o.camera,s=o.canvas,a=(n.endPosition.x-n.startPosition.x)/s.clientWidth;a=Math.min(a,e.maximumMovementRatio);let c=i*a*Math.PI*4;r.twistRight(c)}function z1t(e){let t=e._scene.mapMode2D===ed.ROTATE;F.equals(F.IDENTITY,e._scene.camera.transform)?(nd(e,e.enableTranslate,e.translateEventTypes,U1t,e.inertiaTranslate,"_lastInertiaTranslateMovement"),nd(e,e.enableZoom,e.zoomEventTypes,MGe,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&nd(e,e.enableRotate,e.tiltEventTypes,kGe,e.inertiaSpin,"_lastInertiaTiltMovement")):(nd(e,e.enableZoom,e.zoomEventTypes,MGe,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&nd(e,e.enableRotate,e.translateEventTypes,kGe,e.inertiaSpin,"_lastInertiaSpinMovement"))}var jGe=new _n,H1t=new h,K1t=new h;function xg(e,t,n){let i=e._scene,o=e._globe,r=i.camera,s;if(i.pickPositionSupported&&(s=i.pickPositionWorldCoordinates(t,H1t)),!l(o))return h.clone(s,n);let a=!e._cameraUnderground,c=r.getPickRay(t,jGe),d=o.pickWorldCoordinates(c,i,a,K1t),u=l(s)?h.distance(s,r.positionWC):Number.POSITIVE_INFINITY,m=l(d)?h.distance(d,r.positionWC):Number.POSITIVE_INFINITY;return u<m?h.clone(s,n):h.clone(d,n)}var J1t=new fe;function az(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===re.SCENE3D){let c=t.cartesianToCartographic(i.position,J1t);l(c)&&(r=c.height)}else r=i.position.z;let s=e._scene.globeHeight??0;return Math.abs(s-r)}var j1t=new h;function QGe(e,t){let n=t.origin,i=t.direction,o=az(e),r=h.normalize(n,j1t),s=Math.abs(h.dot(r,i));return s=Math.max(s,.5)*2,o*s}function qGe(e,t,n,i){let o=h.distance(t.origin,n),r=az(e),s=W.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),_n.getPoint(t,o,i)}function $Ge(e,t,n,i){let o;return l(n)?(o=h.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=az(e))):o=az(e),_n.getPoint(t,o,i)}var Q1t=new k;function eEe(e,t){let n=t.endPosition,i=k.subtract(t.endPosition,t.startPosition,Q1t),o=e._strafeEndMousePosition;k.add(o,i,o),t.endPosition=o,Hte(e,t,e._strafeStartPosition),t.endPosition=n}var UGe=new _n,q1t=new _n,wte=new h,$1t=new h,eVt=new h,tVt=new h,nVt=new sn(h.UNIT_X,0),iVt=new k,oVt=new k;function rVt(e,t,n){if(h.equals(t,e._translateMousePosition)||(e._looking=!1),h.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){Ou(e,t,n);return}if(e._strafing){eEe(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=k.clone(n.startPosition,iVt),a=k.clone(n.endPosition,oVt),c=o.getPickRay(s,UGe),d=h.clone(h.ZERO,tVt),u=h.UNIT_X,m;if(o.position.z<e._minimumPickingTerrainHeight&&(m=xg(e,s,wte),l(m)&&(d.x=m.x)),r||d.x>o.position.z&&l(m)){let Z=m;r&&(Z=$Ge(e,c,m,wte)),k.clone(t,e._strafeMousePosition),k.clone(t,e._strafeEndMousePosition),h.clone(Z,e._strafeStartPosition),e._strafing=!0,Hte(e,n,e._strafeStartPosition);return}let p=sn.fromPointNormal(d,u,nVt);c=o.getPickRay(s,UGe);let b=di.rayPlane(c,p,wte),f=o.getPickRay(a,q1t),y=di.rayPlane(f,p,$1t);if(!l(b)||!l(y)){e._looking=!0,Ou(e,t,n),k.clone(t,e._translateMousePosition);return}let _=h.subtract(b,y,eVt),S=_.x;_.x=_.y,_.y=_.z,_.z=S;let A=h.magnitude(_);A>W.EPSILON6&&(h.normalize(_,_),o.move(_,A))}var tEe=new k,iz=new _n,oz=new h,sVt=new h,nEe=new F,aVt=new F,cVt=new h,lVt=new sn(h.UNIT_X,0),Mte=new h,Dte=new fe,iEe=new F,dVt=new Ne,uVt=new $,rz=new h;function mVt(e,t,n){if(l(n.angleAndHeight)&&(n=n.angleAndHeight),k.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){Ou(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,hVt(e,t,n)):fVt(e,t,n)}function hVt(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=tEe;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,iz),c=h.UNIT_X,d=a.origin,u=a.direction,m,p=h.dot(c,u);if(Math.abs(p)>W.EPSILON6&&(m=-h.dot(c,d)/p),!l(m)||m<=0){e._looking=!0,Ou(e,t,n),k.clone(t,e._tiltCenterMousePosition);return}let b=h.multiplyByScalar(u,m,oz);h.add(d,b,b);let f=i.mapProjection,y=f.ellipsoid;h.fromElements(b.y,b.z,b.x,b);let _=f.unproject(b,Dte);y.cartographicToCartesian(_,b);let S=xt.eastNorthUpToFixedFrame(b,y,nEe),A=e._globe,Z=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let R=F.clone(o.transform,iEe);o._setTransform(S),Du(e,t,n,h.UNIT_Z),o._setTransform(R),e._globe=A,e._ellipsoid=Z;let G=Z.maximumRadius;e._rotateFactor=1/G,e._rotateRateRangeAdjustment=G}function fVt(e,t,n){let i=e._scene,o=i.camera,r=e._cameraUnderground,s,a,c=h.UNIT_X;if(k.equals(t,e._tiltCenterMousePosition))s=h.clone(e._tiltCenter,oz);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=xg(e,t,oz)),!l(s)){a=o.getPickRay(t,iz);let g=a.origin,C=a.direction,V,L=h.dot(c,C);if(Math.abs(L)>W.EPSILON6&&(V=-h.dot(c,g)/L),!l(V)||V<=0){e._looking=!0,Ou(e,t,n),k.clone(t,e._tiltCenterMousePosition);return}s=h.multiplyByScalar(C,V,oz),h.add(g,s,s)}r&&(l(a)||(a=o.getPickRay(t,iz)),qGe(e,a,s,s)),k.clone(t,e._tiltCenterMousePosition),h.clone(s,e._tiltCenter)}let d=i.canvas,u=tEe;u.x=d.clientWidth/2,u.y=e._tiltCenterMousePosition.y,a=o.getPickRay(u,iz);let m=h.clone(h.ZERO,cVt);m.x=s.x;let p=sn.fromPointNormal(m,c,lVt),b=di.rayPlane(a,p,sVt),f=o._projection,y=f.ellipsoid;h.fromElements(s.y,s.z,s.x,s);let _=f.unproject(s,Dte);y.cartographicToCartesian(_,s);let S=xt.eastNorthUpToFixedFrame(s,y,nEe),A;l(b)?(h.fromElements(b.y,b.z,b.x,b),_=f.unproject(b,Dte),y.cartographicToCartesian(_,b),A=xt.eastNorthUpToFixedFrame(b,y,aVt)):A=S;let Z=e._globe,R=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let G=h.UNIT_Z,E=F.clone(o.transform,iEe);o._setTransform(S);let v=h.cross(h.UNIT_Z,h.normalize(o.position,Mte),Mte),I=h.dot(o.right,v);if(Du(e,t,n,G,!1,!0),o._setTransform(A),I<0){let g=n.startPosition.y-n.endPosition.y;(r&&g<0||!r&&g>0)&&(G=void 0);let C=o.constrainedAxis;o.constrainedAxis=void 0,Du(e,t,n,G,!0,!1),o.constrainedAxis=C}else Du(e,t,n,G,!0,!1);if(l(o.constrainedAxis)){let g=h.cross(o.direction,o.constrainedAxis,rz);h.equalsEpsilon(g,h.ZERO,W.EPSILON6)||(h.dot(g,o.right)<0&&h.negate(g,g),h.cross(g,o.direction,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.up,o.up),h.normalize(o.right,o.right))}o._setTransform(E),e._globe=Z,e._ellipsoid=R;let X=R.maximumRadius;e._rotateFactor=1/X,e._rotateRateRangeAdjustment=X;let Y=h.clone(o.positionWC,Mte);if(e.enableCollisionDetection&&jte(e,!0),!h.equals(o.positionWC,Y)){o._setTransform(A),o.worldToCameraCoordinatesPoint(Y,Y);let g=h.magnitudeSquared(Y);h.magnitudeSquared(o.position)>g&&(h.normalize(o.position,o.position),h.multiplyByScalar(o.position,Math.sqrt(g),o.position));let C=h.angleBetween(Y,o.position),V=h.cross(Y,o.position,Y);h.normalize(V,V);let L=Ne.fromAxisAngle(V,C,dVt),P=$.fromQuaternion(L,uVt);$.multiplyByVector(P,o.direction,o.direction),$.multiplyByVector(P,o.up,o.up),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up),o._setTransform(E)}}var oEe=new k,rEe=new _n,sEe=new h;function pVt(e,t,n){l(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=oEe,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,rEe),d=c.origin,u=c.direction,m=o.position.z,p;m<e._minimumPickingTerrainHeight&&(p=xg(e,a,sEe));let b;if(l(p)&&(b=h.distance(d,p)),s){let f=QGe(e,c,m);l(b)?b=Math.min(b,f):b=f}if(!l(b)){let f=h.UNIT_X;b=-h.dot(f,d)/h.dot(f,u)}zte(e,t,n,e.zoomFactor,b)}function bVt(e){let n=e._scene.camera;if(!F.equals(F.IDENTITY,n.transform))nd(e,e.enableRotate,e.rotateEventTypes,Du,e.inertiaSpin,"_lastInertiaSpinMovement"),nd(e,e.enableZoom,e.zoomEventTypes,cEe,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),nd(e,e.enableTilt,e.tiltEventTypes,mVt,e.inertiaSpin,"_lastInertiaTiltMovement"),nd(e,e.enableTranslate,e.translateEventTypes,rVt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),nd(e,e.enableZoom,e.zoomEventTypes,pVt,e.inertiaZoom,"_lastInertiaZoomMovement"),nd(e,e.enableLook,e.lookEventTypes,Ou),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);l(o)&&(e._tween=i.add(o))}i.update()}}var gVt=new _n,yVt=new sn(h.UNIT_X,0),xVt=new h,TVt=new h;function Hte(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,gVt),s=h.clone(o.direction,TVt);i.mode===re.COLUMBUS_VIEW&&h.fromElements(s.z,s.x,s.y,s);let a=sn.fromPointNormal(n,s,yVt),c=di.rayPlane(r,a,xVt);l(c)&&(s=h.subtract(n,c,s),i.mode===re.COLUMBUS_VIEW&&h.fromElements(s.y,s.z,s.x,s),h.add(o.position,s,o.position))}var DGe=new h,aEe=new fe,Ote=new h,Bte=new ie,_Vt=new h,SVt=new h,AVt=new h;function ZVt(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!F.equals(o.transform,F.IDENTITY)){Du(e,t,n);return}let a,c,d=s.geodeticSurfaceNormal(o.position,_Vt);if(k.equals(t,e._rotateMousePosition)){if(e._looking)Ou(e,t,n,d);else if(e._rotating)Du(e,t,n);else if(e._strafing)eEe(e,n);else{if(h.magnitude(o.position)<h.magnitude(e._rotateStartPosition))return;a=h.magnitude(e._rotateStartPosition),c=Ote,c.x=c.y=c.z=a,s=ie.fromCartesian3(c,Bte),Ute(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let u=s.cartesianToCartographic(o.positionWC,aEe).height,m=e._globe;if(l(m)&&u<e._minimumPickingTerrainHeight){let p=xg(e,n.startPosition,AVt);if(l(p)){let b=!1,f=o.getPickRay(n.startPosition,jGe);if(r)b=!0,$Ge(e,f,p,p);else{let y=s.geodeticSurfaceNormal(p,SVt);Math.abs(h.dot(f.direction,y))<.05?b=!0:b=h.magnitude(o.position)<h.magnitude(p)}b?(k.clone(t,e._strafeEndMousePosition),h.clone(p,e._strafeStartPosition),e._strafing=!0,Hte(e,n,e._strafeStartPosition)):(a=h.magnitude(p),c=Ote,c.x=c.y=c.z=a,s=ie.fromCartesian3(c,Bte),Ute(e,t,n,s),h.clone(p,e._rotateStartPosition))}else e._looking=!0,Ou(e,t,n,d)}else l(o.pickEllipsoid(n.startPosition,e._ellipsoid,DGe))?(Ute(e,t,n,e._ellipsoid),h.clone(DGe,e._rotateStartPosition)):u>e._minimumTrackBallHeight?(e._rotating=!0,Du(e,t,n)):(e._looking=!0,Ou(e,t,n,d));k.clone(t,e._rotateMousePosition)}function Du(e,t,n,i,o,r){o=o??!1,r=r??!1;let s=e._scene,a=s.camera,c=s.canvas,d=a.constrainedAxis;l(i)&&(a.constrainedAxis=i);let u=h.magnitude(a.position),m=e._rotateFactor*(u-e._rotateRateRangeAdjustment);m>e._maximumRotateRate&&(m=e._maximumRotateRate),m<e._minimumRotateRate&&(m=e._minimumRotateRate);let p=(n.startPosition.x-n.endPosition.x)/c.clientWidth,b=(n.startPosition.y-n.endPosition.y)/c.clientHeight;p=Math.min(p,e.maximumMovementRatio),b=Math.min(b,e.maximumMovementRatio);let f=m*p*Math.PI*2,y=m*b*Math.PI;if(l(i)&&l(e.maximumTiltAngle)){let _=e.maximumTiltAngle,S=h.dot(a.direction,i),A=Math.PI-Math.acos(S)+y;A>_&&(y-=A-_)}o||a.rotateRight(f),r||a.rotateUp(y),a.constrainedAxis=d}var kte=ce.clone(ce.UNIT_W),OGe=ce.clone(ce.UNIT_W),tz=new h,k1=new h,nz=new h,BGe=new h,CVt=new k,RVt=new k,VVt=new k,GVt=new k,EVt=new _n;function Ute(e,t,n,i){let o=e._scene,r=o.camera,s=k.clone(n.startPosition,CVt),a=k.clone(n.endPosition,RVt),c=i.cartesianToCartographic(r.positionWC,aEe).height,d,u;if(!n.inertiaEnabled&&c<e._minimumPickingTerrainHeight&&(d=h.clone(e._panLastWorldPosition,kte),!l(e._globe)&&!k.equalsEpsilon(s,e._panLastMousePosition)&&(d=xg(e,s,kte)),!l(e._globe)&&l(d))){let m=h.subtract(d,r.positionWC,k1),p=h.multiplyByScalar(r.directionWC,h.dot(r.directionWC,m),k1),b=h.magnitude(p),f=r.frustum.getPixelDimensions(o.drawingBufferWidth,o.drawingBufferHeight,b,o.pixelRatio,GVt),y=k.subtract(a,s,VVt),_=h.multiplyByScalar(r.rightWC,y.x*f.x,k1),S=h.normalize(r.positionWC,JGe),A=r.getPickRay(a,EVt).direction,Z=h.subtract(A,h.projectVector(A,r.rightWC,nz),nz),R=h.angleBetween(Z,r.directionWC),G=1;l(r.frustum.fov)&&(G=Math.max(Math.tan(R),.1));let E=Math.abs(h.dot(r.directionWC,S)),v=-y.y*f.y*2/Math.sqrt(G)*(1-E),I=h.multiplyByScalar(A,v,nz);E=Math.abs(h.dot(r.upWC,S));let X=h.multiplyByScalar(r.upWC,-y.y*(1-E)*f.y,BGe);u=h.add(d,_,OGe),u=h.add(u,I,u),u=h.add(u,X,u),h.clone(u,e._panLastWorldPosition),k.clone(a,e._panLastMousePosition)}if((!l(d)||!l(u))&&(d=r.pickEllipsoid(s,i,kte),u=r.pickEllipsoid(a,i,OGe)),!l(d)||!l(u)){e._rotating=!0,Du(e,t,n);return}if(d=r.worldToCameraCoordinates(d,d),u=r.worldToCameraCoordinates(u,u),l(r.constrainedAxis)){let m=r.constrainedAxis,p=h.mostOrthogonalAxis(m,tz);h.cross(p,m,p),h.normalize(p,p);let b=h.cross(m,p,k1),f=h.magnitude(d),y=h.dot(m,d),_=Math.acos(y/f),S=h.multiplyByScalar(m,y,nz);h.subtract(d,S,S),h.normalize(S,S);let A=h.magnitude(u),Z=h.dot(m,u),R=Math.acos(Z/A),G=h.multiplyByScalar(m,Z,BGe);h.subtract(u,G,G),h.normalize(G,G);let E=Math.acos(h.dot(S,p));h.dot(S,b)<0&&(E=W.TWO_PI-E);let v=Math.acos(h.dot(G,p));h.dot(G,b)<0&&(v=W.TWO_PI-v);let I=E-v,X;h.equalsEpsilon(m,r.position,W.EPSILON2)?X=r.right:X=h.cross(m,r.position,tz);let Y=h.cross(m,X,tz),g=h.dot(Y,h.subtract(d,m,k1)),C=h.dot(Y,h.subtract(u,m,k1)),V;g>0&&C>0?V=R-_:g>0&&C<=0?h.dot(r.position,m)>0?V=-_-R:V=_+R:V=_-R,r.rotateRight(I),r.rotateUp(V)}else{h.normalize(d,d),h.normalize(u,u);let m=h.dot(d,u),p=h.cross(d,u,tz);if(m<1&&!h.equalsEpsilon(p,h.ZERO,W.EPSILON14)){let b=Math.acos(m);r.rotate(p,b)}}}var LVt=new h,WVt=new fe,zGe=0;function cEe(e,t,n){l(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,d;c?d=t:(d=oEe,d.x=a.clientWidth/2,d.y=a.clientHeight/2);let u=s.getPickRay(d,rEe),m,p=o.cartesianToCartographic(s.position,WVt).height,b=Math.abs(zGe)<e.minimumPickingTerrainDistanceWithInertia;(i?b:p<e._minimumPickingTerrainHeight)&&(m=xg(e,d,sEe));let y;if(l(m)&&(y=h.distance(u.origin,m)),!l(e._globe)&&l(y)&&s.getMagnitude()<y&&(m=void 0,y=void 0),l(y)&&(zGe=y),c){let S=QGe(e,u,p);l(y)?y=Math.min(y,S):y=S}l(y)||(y=p);let _=h.normalize(s.position,LVt);zte(e,t,n,e.zoomFactor,y,h.dot(_,s.direction))}var lEe=new k,sz=new _n,fM=new h,vVt=new h,dEe=new F,FVt=new F,uEe=new F,IVt=new Ne,PVt=new $,Kte=new fe,Jte=new h;function XVt(e,t,n){let o=e._scene.camera;if(!F.equals(o.transform,F.IDENTITY))return;if(l(n.angleAndHeight)&&(n=n.angleAndHeight),k.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(o.position,Jte);Ou(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,Kte);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,NVt(e,t,n)):wVt(e,t,n)}var YVt=new fe;function NVt(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,YVt).height;if(a-s-1<W.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,d=lEe;d.x=c.clientWidth/2,d.y=c.clientHeight/2;let u=r.getPickRay(d,sz),m,p=di.rayEllipsoid(u,i);if(l(p))m=_n.getPoint(u,p.start,fM);else if(a>e._minimumTrackBallHeight){let A=di.grazingAltitudeLocation(u,i);if(!l(A))return;let Z=i.cartesianToCartographic(A,Kte);Z.height=0,m=i.cartographicToCartesian(Z,fM)}else{e._looking=!0;let A=e._ellipsoid.geodeticSurfaceNormal(r.position,Jte);Ou(e,t,n,A),k.clone(t,e._tiltCenterMousePosition);return}let b=xt.eastNorthUpToFixedFrame(m,i,dEe),f=e._globe,y=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let _=F.clone(r.transform,uEe);r._setTransform(b),Du(e,t,n,h.UNIT_Z),r._setTransform(_),e._globe=f,e._ellipsoid=y;let S=y.maximumRadius;e._rotateFactor=1/S,e._rotateRateRangeAdjustment=S}function wVt(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,d;if(k.equals(t,e._tiltCenterMousePosition))a=h.clone(e._tiltCenter,fM);else{if(a=xg(e,t,fM),!l(a)){if(c=r.getPickRay(t,sz),d=di.rayEllipsoid(c,i),!l(d)){if(i.cartesianToCartographic(r.position,Kte).height<=e._minimumTrackBallHeight){e._looking=!0;let C=e._ellipsoid.geodeticSurfaceNormal(r.position,Jte);Ou(e,t,n,C),k.clone(t,e._tiltCenterMousePosition)}return}a=_n.getPoint(c,d.start,fM)}s&&(l(c)||(c=r.getPickRay(t,sz)),qGe(e,c,a,a)),k.clone(t,e._tiltCenterMousePosition),h.clone(a,e._tiltCenter)}let u=o.canvas,m=lEe;m.x=u.clientWidth/2,m.y=e._tiltCenterMousePosition.y,c=r.getPickRay(m,sz);let p=h.magnitude(a),b=h.fromElements(p,p,p,Ote),f=ie.fromCartesian3(b,Bte);if(d=di.rayEllipsoid(c,f),!l(d))return;let y=h.magnitude(c.origin)>p?d.start:d.stop,_=_n.getPoint(c,y,vVt),S=xt.eastNorthUpToFixedFrame(a,i,dEe),A=xt.eastNorthUpToFixedFrame(_,f,FVt),Z=e._globe,R=e._ellipsoid;e._globe=void 0,e._ellipsoid=ie.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let G=h.UNIT_Z,E=F.clone(r.transform,uEe);r._setTransform(A);let v=h.cross(_,r.positionWC,rz);if(h.dot(r.rightWC,v)<0){let g=n.startPosition.y-n.endPosition.y;(s&&g<0||!s&&g>0)&&(G=void 0);let C=r.constrainedAxis;r.constrainedAxis=void 0,Du(e,t,n,G,!0,!1),r.constrainedAxis=C}else Du(e,t,n,G,!0,!1);if(r._setTransform(S),Du(e,t,n,G,!1,!0),l(r.constrainedAxis)){let g=h.cross(r.direction,r.constrainedAxis,rz);h.equalsEpsilon(g,h.ZERO,W.EPSILON6)||(h.dot(g,r.right)<0&&h.negate(g,g),h.cross(g,r.direction,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.up,r.up),h.normalize(r.right,r.right))}r._setTransform(E),e._globe=Z,e._ellipsoid=R;let X=R.maximumRadius;e._rotateFactor=1/X,e._rotateRateRangeAdjustment=X;let Y=h.clone(r.positionWC,rz);if(e.enableCollisionDetection&&jte(e,!0),!h.equals(r.positionWC,Y)){r._setTransform(A),r.worldToCameraCoordinatesPoint(Y,Y);let g=h.magnitudeSquared(Y);h.magnitudeSquared(r.position)>g&&(h.normalize(r.position,r.position),h.multiplyByScalar(r.position,Math.sqrt(g),r.position));let C=h.angleBetween(Y,r.position),V=h.cross(Y,r.position,Y);h.normalize(V,V);let L=Ne.fromAxisAngle(V,C,IVt),P=$.fromQuaternion(L,PVt);$.multiplyByVector(P,r.direction,r.direction),$.multiplyByVector(P,r.up,r.up),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up),r._setTransform(E)}}var MVt=new k,kVt=new k,HGe=new _n,KGe=new _n,UVt=new h,DVt=new h;function Ou(e,t,n,i){let r=e._scene.camera,s=MVt;s.x=n.startPosition.x,s.y=0;let a=kVt;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,HGe),d=r.getPickRay(a,KGe),u=0,m,p;r.frustum instanceof fn?(m=c.origin,p=d.origin,h.add(r.direction,m,m),h.add(r.direction,p,p),h.subtract(m,r.position,m),h.subtract(p,r.position,p),h.normalize(m,m),h.normalize(p,p)):(m=c.direction,p=d.direction);let b=h.dot(m,p);b<1&&(u=Math.acos(b)),u=n.startPosition.x>n.endPosition.x?-u:u;let f=e._horizontalRotationAxis;if(l(i)?r.look(i,-u):l(f)?r.look(f,-u):r.lookLeft(u),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,c=r.getPickRay(s,HGe),d=r.getPickRay(a,KGe),u=0,r.frustum instanceof fn?(m=c.origin,p=d.origin,h.add(r.direction,m,m),h.add(r.direction,p,p),h.subtract(m,r.position,m),h.subtract(p,r.position,p),h.normalize(m,m),h.normalize(p,p)):(m=c.direction,p=d.direction),b=h.dot(m,p),b<1&&(u=Math.acos(b)),u=n.startPosition.y>n.endPosition.y?-u:u,i=i??f,l(i)){let y=r.direction,_=h.negate(i,UVt),S=h.equalsEpsilon(y,i,W.EPSILON2),A=h.equalsEpsilon(y,_,W.EPSILON2);if(!S&&!A){b=h.dot(y,i);let Z=W.acosClamped(b);u>0&&u>Z&&(u=Z-W.EPSILON4),b=h.dot(y,_),Z=W.acosClamped(b),u<0&&-u>Z&&(u=-Z+W.EPSILON4);let R=h.cross(i,y,DVt);r.look(R,u)}else(S&&u<0||A&&u>0)&&r.look(r.right,-u)}else r.lookUp(u)}function OVt(e){nd(e,e.enableRotate,e.rotateEventTypes,ZVt,e.inertiaSpin,"_lastInertiaSpinMovement"),nd(e,e.enableZoom,e.zoomEventTypes,cEe,e.inertiaZoom,"_lastInertiaZoomMovement"),nd(e,e.enableTilt,e.tiltEventTypes,XVt,e.inertiaSpin,"_lastInertiaTiltMovement"),nd(e,e.enableLook,e.lookEventTypes,Ou)}var BVt=new F,zVt=new fe;function jte(e,t){e._adjustedHeightForTerrain=!0;let n=e._scene,i=n.mode;if(i===re.SCENE2D||i===re.MORPHING)return;let o=n.camera,r=n.ellipsoid??ie.WGS84,s=n.mapProjection,a,c;F.equals(o.transform,F.IDENTITY)||(a=F.clone(o.transform,BVt),c=h.magnitude(o.position),o._setTransform(F.IDENTITY));let d=zVt;i===re.SCENE3D?r.cartesianToCartographic(o.position,d):s.unproject(o.position,d);let u=!1;if(d.height<e._minimumCollisionTerrainHeight){let m=e._scene.globeHeight;if(l(m)){let p=m+e.minimumZoomDistance,b=m-e._lastGlobeHeight,f=b/e._lastGlobeHeight;d.height<p&&(t||Math.abs(f)<=.1)&&(d.height=p,i===re.SCENE3D?r.cartographicToCartesian(d,o.position):s.project(d,o.position),u=!0),t||Math.abs(f)<=.1?e._lastGlobeHeight=m:e._lastGlobeHeight+=b*.1}}l(a)&&(o._setTransform(a),u&&(h.normalize(o.position,o.position),h.negate(o.position,o.direction),h.multiplyByScalar(o.position,Math.max(c,e.minimumZoomDistance),o.position),h.normalize(o.direction,o.direction),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up)))}pM.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===re.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var HVt=new h,KVt=new h;pM.prototype.update=function(){let e=this._scene,{camera:t,globe:n,mode:i}=e;F.equals(t.transform,F.IDENTITY)?(this._globe=n,this._ellipsoid=e.ellipsoid??ie.default):(this._globe=void 0,this._ellipsoid=ie.UNIT_SPHERE);let{verticalExaggeration:o,verticalExaggerationRelativeHeight:r}=e;this._minimumCollisionTerrainHeight=co.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=co.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=co.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&l(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=h.clone(t.positionWC,HVt),c=h.clone(t.directionWC,KVt);if(i===re.SCENE2D?z1t(this):i===re.COLUMBUS_VIEW?(this._horizontalRotationAxis=h.UNIT_Z,bVt(this)):i===re.SCENE3D&&(this._horizontalRotationAxis=void 0,OVt(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain){let d=!h.equals(a,t.positionWC)||!h.equals(c,t.directionWC);jte(this,d)}this._aggregator.reset()};pM.prototype.isDestroyed=function(){return!1};pM.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),he(this)};var bM=pM;var pao=x(T(),1);var Kso=x(T(),1),gM=`uniform sampler2D colorTexture; +uniform sampler2D colorTexture2; + +uniform vec2 center; +uniform float radius; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color0 = texture(colorTexture, v_textureCoordinates); + vec4 color1 = texture(colorTexture2, v_textureCoordinates); + + float x = length(gl_FragCoord.xy - center) / radius; + float t = smoothstep(0.5, 0.8, x); + out_FragColor = mix(color0 + color1, color1, t); +} +`;var jso=x(T(),1),yM=`uniform sampler2D colorTexture; + +uniform float avgLuminance; +uniform float threshold; +uniform float offset; + +in vec2 v_textureCoordinates; + +float key(float avg) +{ + float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0)); + return max(0.0, guess) + 0.1; +} + +// See section 9. "The bright-pass filter" of Realtime HDR Rendering +// http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf + +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec3 xyz = czm_RGBToXYZ(color.rgb); + float luminance = xyz.r; + + float scaledLum = key(avgLuminance) * luminance / avgLuminance; + float brightLum = max(scaledLum - threshold, 0.0); + float brightness = brightLum / (offset + brightLum); + + xyz.r = brightness; + out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0); +} +`;function Tg(){this._sceneFramebuffer=new qS;let e=.125,t=new Array(6);t[0]=new Wo({fragmentShader:kd,textureScale:e,forcePowerOfTwo:!0,sampleMode:wu.LINEAR});let n=t[1]=new Wo({fragmentShader:yM,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new k,t[2]=new Wo({fragmentShader:wx,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:0},textureScale:e,forcePowerOfTwo:!0}),t[3]=new Wo({fragmentShader:wx,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:1},textureScale:e,forcePowerOfTwo:!0}),t[4]=new Wo({fragmentShader:kd,sampleMode:wu.LINEAR}),this._uCenter=new k,this._uRadius=void 0,t[5]=new Wo({fragmentShader:gM,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new Ud({stages:t});let o=new rA(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}Tg.prototype.get=function(e){return this._stages.get(e)};Tg.prototype.getStageByName=function(e){let t=this._stages.length;for(let n=0;n<t;++n){let i=this._stages.get(n);if(i.name===e)return i}};var JVt=new ce,mEe=new k,jVt=new k,hEe=new F;function QVt(e,t,n){let i=t.uniformState,o=i.sunPositionWC,r=i.view,s=i.viewProjection,a=i.projection,c=F.computeViewportTransformation(n,0,1,hEe),d=F.multiplyByPoint(r,o,JVt),u=xt.pointToGLWindowCoordinates(s,c,o,mEe);d.x+=W.SOLAR_RADIUS;let m=xt.pointToGLWindowCoordinates(a,c,d,d),p=k.magnitude(k.subtract(m,u,m))*30*2,b=jVt;b.x=p,b.y=p,e._uCenter=k.clone(u,e._uCenter),e._uRadius=Math.max(b.x,b.y)*.15;let f=t.drawingBufferWidth,y=t.drawingBufferHeight,_=e._stages,S=_.get(0),A=S.outputTexture.width,Z=S.outputTexture.height,R=new it;R.width=A,R.height=Z,c=F.computeViewportTransformation(R,0,1,hEe),u=xt.pointToGLWindowCoordinates(s,c,o,mEe),b.x*=A/f,b.y*=Z/y;let G=S.scissorRectangle;G.x=Math.max(u.x-b.x*.5,0),G.y=Math.max(u.y-b.y*.5,0),G.width=Math.min(b.x,f),G.height=Math.min(b.y,y);for(let E=1;E<4;++E)it.clone(G,_.get(E).scissorRectangle)}Tg.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};Tg.prototype.update=function(e){let t=e.context,n=e.viewport,i=this._sceneFramebuffer;i.update(t,n);let o=i.framebuffer;return this._textureCache.update(t),this._stages.update(t,!1),QVt(this,t,n),o};Tg.prototype.execute=function(e){let t=this._sceneFramebuffer.framebuffer.getColorTexture(0),n=this._stages,i=n.length;n.get(0).execute(e,t);for(let o=1;o<i;++o)n.get(o).execute(e,n.get(o-1).outputTexture)};Tg.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(kd,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};Tg.prototype.isDestroyed=function(){return!1};Tg.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),he(this)};var xM=Tg;var Sao=x(T(),1);function fEe(){this._cachedShowFrustumsShaders={}}function qVt(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function $Vt(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(u){u=He.replaceMain(u,"czm_Debug_main");let m=/out_FragData_(\d+)/g,p;for(;(p=m.exec(u))!==null;)r.indexOf(p[1])===-1&&r.push(p[1]);return u});let s=r.length,a="";a+=`uniform vec3 debugShowCommandsColor; +`,a+=`uniform vec3 debugShowFrustumsColor; +`,a+=`void main() +{ + czm_Debug_main(); +`;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${r[c]}.rgb *= debugShowCommandsColor; +`,a+=` out_FragData_${r[c]}.rgb *= debugShowFrustumsColor; +`;else a+=` out_FragColor.rgb *= debugShowCommandsColor; +`,a+=` out_FragColor.rgb *= debugShowFrustumsColor; +`;a+="}",o.sources.push(a);let d=qVt(i);return tn.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:d})}var TM=new U;function eGt(e,t){let n;return l(t.uniformMap)?n=t.uniformMap:n={},l(n.debugShowCommandsColor)||l(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(l(t._debugColor)||(t._debugColor=U.fromRandom()),t._debugColor):U.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(TM.red=t.debugOverlappingFrustums&1?1:0,TM.green=t.debugOverlappingFrustums&2?1:0,TM.blue=t.debugOverlappingFrustums&4?1:0,TM.alpha=1,TM):U.WHITE}),n}var tGt=new at;fEe.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];l(o)||(o=$Vt(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=at.shallowClone(t,tGt);r.shaderProgram=o,r.uniformMap=eGt(e,t),r.execute(e.context,n)};var _M=fEe;var Gao=x(T(),1);function uA(e,t,n){this._primitive=e,this._tileIndex=t,this._sampleIndex=n,this._metadata={},this._orientedBoundingBox=new en}uA.fromKeyframeNode=function(e,t,n,i){let o=new uA(e,t,n),{spatialNode:r,content:s}=i;return o._metadata=nGt(e,s,n),o._orientedBoundingBox=oGt(e,r,n,o._orientedBoundingBox),o};function nGt(e,t,n){if(!l(t)||!l(t.metadata))return;let{names:i,types:o}=e.provider,{metadata:r}=t,s={};for(let a=0;a<i.length;a++){let c=i[a],d=pt.getComponentCount(o[a]),u=r[a].slice(n*d,(n+1)*d);s[c]=u}return s}var pEe=new h,iGt=new h;function oGt(e,t,n,i){let o=t.dimensions,r=o.x*o.y,s=Math.floor(n/r),a=n-s*r,c=Math.floor(a/o.x),d=a-c*o.x,u=h.fromElements(d,c,s,pEe),m=h.divideComponents(h.subtract(u,e._paddingBefore,pEe),e.dimensions,iGt);return e._shape.computeOrientedBoundingBoxForSample(t,e.dimensions,m,i)}Object.defineProperties(uA.prototype,{metadata:{get:function(){return this._metadata}},primitive:{get:function(){return this._primitive}},sampleIndex:{get:function(){return this._sampleIndex}},tileIndex:{get:function(){return this._tileIndex}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox.clone()}}});uA.prototype.hasProperty=function(e){return l(this._metadata[e])};uA.prototype.getNames=function(){return Object.keys(this._metadata)};uA.prototype.getProperty=function(e){return this._metadata[e]};var SM=uA;var Lmo=x(T(),1);var xco=x(T(),1);var Lao=x(T(),1);function rGt(e,t){let n=document.createElement("canvas");n.width=t,n.height=1;let i=n.getContext("2d"),o=i.createLinearGradient(0,0,n.width,0),r=1/(e.length-1);for(let c=0;c<e.length;c++){let d=e[c],u=c*r,m=d.toCssColorString();o.addColorStop(u,m)}i.fillStyle=o,i.fillRect(0,0,n.width,n.height);let s=i.getImageData(0,0,n.width,n.height);return new Uint8Array(s.data.buffer)}var AM=rGt;var tco=x(T(),1);var vao=x(T(),1),bEe={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"};Object.freeze(bEe);var a0=bEe;var Bao=x(T(),1);var Iao=x(T(),1);function sGt(e,t,n){let i=new Uint8ClampedArray(e.buffer),o=new ImageData(i,t,n),r=document.createElement("canvas");return r.width=t,r.height=n,r.getContext("2d").putImageData(o,0,0),r}var ZM=sGt;function U1(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}U1.prototype.getTexture=function(e){return this._textures[e]};function aGt(e,t,n){n.resource.fetchImage().then(function(i){e._loadedImages.push({id:t,image:i,textureUniform:n})}).catch(function(){let i=e._textures[t];l(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}U1.prototype.loadTexture2D=function(e,t){l(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):aGt(this,e,t)};function cGt(e,t,n){let{id:i,textureUniform:o,image:r}=t,s=n.webgl2?cz(o,r,n):lGt(o,r,n),a=e._textures[i];l(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function cz(e,t,n){let{typedArray:i,sampler:o}=e,r=l(i)?yEe(e,n):new Ft({context:n,source:t,sampler:o});return gEe(o)&&r.generateMipmap(),r}function lGt(e,t,n){let{typedArray:i,sampler:o}=e,r=gEe(o),s=o.wrapS===an.REPEAT||o.wrapS===an.MIRRORED_REPEAT||o.wrapT===an.REPEAT||o.wrapT===an.MIRRORED_REPEAT,{width:a,height:c}=l(i)?e:t,d=[a,c].every(W.isPowerOfTwo);if((r||s)&&!d)if(l(i)){if(e.pixelDatatype===ze.UNSIGNED_BYTE){let m=ZM(i,a,c),p=by(m);return cz({sampler:o},p,n)}}else{let m=by(t);return cz(e,m,n)}else return cz(e,t,n);return r?console.warn("Texture requires resizing for mipmaps but pixelDataType cannot be resized. The texture may be rendered incorrectly."):s&&console.warn("Texture requires resizing for wrapping but pixelDataType cannot be resized. The texture may be rendered incorrectly."),yEe(e,n)}function gEe(e){return[Dt.NEAREST_MIPMAP_NEAREST,Dt.NEAREST_MIPMAP_LINEAR,Dt.LINEAR_MIPMAP_NEAREST,Dt.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function yEe(e,t){let{pixelFormat:n,pixelDatatype:i,width:o,height:r,typedArray:s,sampler:a}=e;return new Ft({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:o,height:r},sampler:a,flipY:!1})}U1.prototype.update=function(e){if(e.frameNumber===this._lastUpdatedFrame)return;this._lastUpdatedFrame=e.frameNumber;let t=e.context;this._defaultTexture=t.defaultTexture;let n=this._loadedImages;for(let i=0;i<n.length;i++){let o=n[i];cGt(this,o,t)}n.length=0};U1.prototype.isDestroyed=function(){return!1};U1.prototype.destroy=function(){let e=this._textures;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];n!==this._defaultTexture&&n.destroy()}return he(this)};var CM=U1;function RM(e){e=e??B.EMPTY_OBJECT,this.mode=e.mode??mb.MODIFY_MATERIAL,this.lightingModel=e.lightingModel,this.uniforms=e.uniforms??B.EMPTY_OBJECT,this.varyings=e.varyings??B.EMPTY_OBJECT,this.vertexShaderText=e.vertexShaderText,this.fragmentShaderText=e.fragmentShaderText,this.translucencyMode=e.translucencyMode??Fy.INHERIT,this._textureManager=new CM,this._defaultTexture=void 0,this.uniformMap=dGt(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},hGt(this),fGt(this)}function dGt(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];o.type===a0.SAMPLER_2D?(e._textureManager.loadTexture2D(i,o.value),n[i]=uGt(e,i)):n[i]=mGt(e,i)}return n}function uGt(e,t){return function(){return e._textureManager.getTexture(t)??e._defaultTexture}}function mGt(e,t){return function(){return e.uniforms[t].value}}function mA(e,t,n){let i;for(;(i=t.exec(e))!==null;){let o=i[1];n[o]=!0}}function hGt(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.(?:metadata|metadataClass|metadataStatistics)\.(\w+)/g,o,r=e.vertexShaderText;l(r)&&(o=e.usedVariablesVertex.attributeSet,mA(r,t,o),o=e.usedVariablesVertex.featureIdSet,mA(r,n,o),o=e.usedVariablesVertex.metadataSet,mA(r,i,o));let s=e.fragmentShaderText;if(l(s)){o=e.usedVariablesFragment.attributeSet,mA(s,t,o),o=e.usedVariablesFragment.featureIdSet,mA(s,n,o),o=e.usedVariablesFragment.metadataSet,mA(s,i,o);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;mA(s,a,c)}}function xEe(e){let t=/^.*MC$/,n=/^.*WC$/,i=/^.*EC$/;return t.test(e)?`${e} (model coordinates)`:n.test(e)?`${e} (Cartesian world coordinates)`:i.test(e)?`${e} (eye coordinates)`:e}function dl(e,t,n,i){if(e.hasOwnProperty(t)){let o=`${xEe(t)} is not available in the ${i} shader. Did you mean ${xEe(n)} instead?`;throw new Te(o)}}function fGt(e){let t=e.usedVariablesVertex.attributeSet;dl(t,"position","positionMC","vertex"),dl(t,"normal","normalMC","vertex"),dl(t,"tangent","tangentMC","vertex"),dl(t,"bitangent","bitangentMC","vertex"),dl(t,"positionWC","positionMC","vertex"),dl(t,"positionEC","positionMC","vertex"),dl(t,"normalEC","normalMC","vertex"),dl(t,"tangentEC","tangentMC","vertex"),dl(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;dl(n,"position","positionEC","fragment"),dl(n,"normal","normalEC","fragment"),dl(n,"tangent","tangentEC","fragment"),dl(n,"bitangent","bitangentEC","fragment"),dl(n,"normalMC","normalEC","fragment"),dl(n,"tangentMC","tangentEC","fragment"),dl(n,"bitangentMC","bitangentEC","fragment")}RM.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===a0.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):l(t.clone)?n.value=t.clone(n.value):n.value=t};RM.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};RM.prototype.isDestroyed=function(){return!1};RM.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),he(this)};var c0=RM;var lco=x(T(),1);function pGt(e){e=e??B.EMPTY_OBJECT,this.typedArray=e.typedArray,this.width=e.width,this.height=e.height,this.pixelFormat=e.pixelFormat??Qe.RGBA,this.pixelDatatype=e.pixelDatatype??ze.UNSIGNED_BYTE;let t=e.url;typeof t=="string"&&(t=We.createIfNeeded(t)),this.resource=t;let i=e.repeat??!0?an.REPEAT:an.CLAMP_TO_EDGE;this.sampler=new Ht({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var VM=pGt;function bGt(e){let{names:t,types:n,componentTypes:i,minimumValues:o,maximumValues:r}=e;for(let s=0;s<t.length;s++){if(!gGt(o?.[s],r?.[s]))continue;let a=yGt(t[s],n[s],i[s],o[s],r[s]);if(l(a))return a}}function gGt(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;let n=Math.min(...e),i=Math.max(...t);return n<i}function yGt(e,t,n,i,o){if(t===pt.VEC4&&n===It.FLOAT32)return xGt(e,i,o);if(t===pt.SCALAR&&n===It.FLOAT32)return TGt(e,i,o)}function xGt(e,t,n){let i=Math.min(...t),o=Math.max(...n);if(!(i<0||o>1))return new c0({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) +{ + material.diffuse = fsInput.metadata.${e}.rgb; + material.alpha = fsInput.metadata.${e}.a; +}`})}function TGt(e,t,n){let o=AM([new U(.267,.004,.329),new U(.282,.14,.457),new U(.254,.265,.53),new U(.207,.372,.553),new U(.164,.471,.558),new U(.128,.567,.551),new U(.135,.659,.518),new U(.194,.741,.443),new U(.282,.819,.369),new U(.396,.898,.301),new U(.538,.965,.236),new U(.741,.998,.149),new U(.993,1,.144)],128),r=new VM({typedArray:o,width:128,height:1});return new c0({uniforms:{u_colorMap:{type:a0.SAMPLER_2D,value:r},u_minimumValue:{type:a0.FLOAT,value:t[0]},u_maximumValue:{type:a0.FLOAT,value:n[0]}},fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) + { + float value = fsInput.metadata.${e}; + vec3 voxelNormal = fsInput.attributes.normalEC; + float diffuse = max(0.0, dot(voxelNormal, czm_lightDirectionEC)); + float lighting = 0.5 + 0.5 * diffuse; + + if (value >= u_minimumValue && value <= u_maximumValue) { + float lerp = (value - u_minimumValue) / (u_maximumValue - u_minimumValue); + material.diffuse = texture(u_colorMap, vec2(lerp, 0.5)).rgb * lighting; + material.alpha = 1.0; + } + }`})}var D1=bGt;var ado=x(T(),1);var Zco=x(T(),1);function _Gt(e,t){let{shaderBuilder:n}=e,{names:i,types:o,componentTypes:r,minimumValues:s,maximumValues:a}=t._provider,c=o.length,d=l(s)&&l(a);n.addDefine("METADATA_COUNT",c,pe.FRAGMENT),d&&n.addDefine("STATISTICS",void 0,pe.FRAGMENT);for(let g=0;g<c;g++){let C=i[g],V=lz(o[g]),L=`PropertyStatistics_${C}`,P=`PropertyStatistics_${C}`;n.addStruct(L,P,pe.FRAGMENT),n.addStructField(L,V,"min"),n.addStructField(L,V,"max")}let u="MetadataStatistics",m="MetadataStatistics",p="metadataStatistics";n.addStruct(u,m,pe.FRAGMENT);for(let g=0;g<c;g++){let C=i[g],V=`PropertyStatistics_${C}`,L=C;n.addStructField(u,V,L)}let b="Metadata",f="Metadata",y="metadata";n.addStruct(b,f,pe.FRAGMENT);for(let g=0;g<c;g++){let C=lz(o[g]);n.addStructField(b,C,i[g])}let _="Attributes",S="Attributes",A="attributes";n.addStruct(_,S,pe.FRAGMENT),n.addStructField(_,"vec3","positionEC"),n.addStructField(_,"vec3","normalEC");let Z="Voxel",R="Voxel",G="voxel";n.addStruct(Z,R,pe.FRAGMENT),n.addStructField(Z,"vec3","viewDirUv"),n.addStructField(Z,"float","travelDistance"),n.addStructField(Z,"int","stepCount"),n.addStructField(Z,"int","tileIndex"),n.addStructField(Z,"int","sampleIndex"),n.addStructField(Z,"float","distanceToDepthBuffer");let E="FragmentInput";n.addStruct(E,"FragmentInput",pe.FRAGMENT),n.addStructField(E,m,p),n.addStructField(E,f,y),n.addStructField(E,S,A),n.addStructField(E,R,G);let I="Properties",X="Properties",Y="properties";n.addStruct(I,X,pe.FRAGMENT);for(let g=0;g<c;g++){let C=lz(o[g]);n.addStructField(I,C,i[g])}{let g="clearProperties";n.addFunction(g,`${X} clearProperties()`,pe.FRAGMENT),n.addFunctionLines(g,[`${X} ${Y};`]);for(let C=0;C<c;C++){let V=lz(o[C],r[C]);n.addFunctionLines(g,[`${Y}.${i[C]} = ${V}(0.0);`])}n.addFunctionLines(g,[`return ${Y};`])}{let g="sumProperties";n.addFunction(g,`${X} sumProperties(${X} propertiesA, ${X} propertiesB)`,pe.FRAGMENT),n.addFunctionLines(g,[`${X} ${Y};`]);for(let C=0;C<c;C++){let V=i[C];n.addFunctionLines(g,[`${Y}.${V} = propertiesA.${V} + propertiesB.${V};`])}n.addFunctionLines(g,[`return ${Y};`])}{let g="scaleProperties";n.addFunction(g,`${X} scaleProperties(${X} ${Y}, float scale)`,pe.FRAGMENT),n.addFunctionLines(g,[`${X} scaledProperties = ${Y};`]);for(let C=0;C<c;C++)n.addFunctionLines(g,[`scaledProperties.${i[C]} *= scale;`]);n.addFunctionLines(g,["return scaledProperties;"])}{let g="mixProperties";n.addFunction(g,`${X} mixProperties(${X} propertiesA, ${X} propertiesB, float mixFactor)`,pe.FRAGMENT),n.addFunctionLines(g,[`${X} ${Y};`]);for(let C=0;C<c;C++){let V=i[C];n.addFunctionLines(g,[`${Y}.${V} = mix(propertiesA.${V}, propertiesB.${V}, mixFactor);`])}n.addFunctionLines(g,[`return ${Y};`])}{let g="copyPropertiesToMetadata";n.addFunction(g,`void copyPropertiesToMetadata(in ${X} ${Y}, inout ${f} ${y})`,pe.FRAGMENT);for(let C=0;C<c;C++){let V=i[C];n.addFunctionLines(g,[`${y}.${V} = ${Y}.${V};`])}}if(d){let g="setStatistics";n.addFunction(g,`void setStatistics(inout ${m} ${p})`,pe.FRAGMENT);for(let C=0;C<c;C++){let V=i[C],L=o[C],P=pt.getComponentCount(L);for(let N=0;N<P;N++){let O=AGt(L,N),M=s[C][N],D=a[C][N];!l(M)||!l(D)||n.addFunctionLines(g,[`${p}.${V}.min${O} = ${TEe(M)};`,`${p}.${V}.max${O} = ${TEe(D)};`])}}}{let g="getPropertiesFromMegatextureAtUv";n.addFunction(g,`${X} getPropertiesFromMegatextureAtUv(vec3 texcoord)`,pe.FRAGMENT),n.addFunctionLines(g,[`${X} ${Y};`]);for(let C=0;C<c;C++){let V=o[C],L=r[C],P=SGt(V,L);n.addFunctionLines(g,[`properties.${i[C]} = texture(u_megatextureTextures[${C}], texcoord)${P};`])}n.addFunctionLines(g,[`return ${Y};`])}}function lz(e){if(e===pt.SCALAR)return"float";if(e===pt.VEC2)return"vec2";if(e===pt.VEC3)return"vec3";if(e===pt.VEC4)return"vec4"}function SGt(e){if(e===pt.SCALAR)return".r";if(e===pt.VEC2)return".ra";if(e===pt.VEC3)return".rgb";if(e===pt.VEC4)return""}function TEe(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function AGt(e,t){return e===pt.SCALAR?"":`[${t}]`}var GM=_Gt;var Uco=x(T(),1);function vf(e){let{planes:t,modelMatrix:n=F.IDENTITY,unionClippingRegions:i=!1}=e??B.EMPTY_OBJECT;if(this._planes=[],this.modelMatrix=F.clone(n),this.planeAdded=new Se,this.planeRemoved=new Se,this._unionClippingRegions=i,this._testIntersection=i?_Ee:SEe,this._float32View=void 0,this._clippingPlanesTexture=void 0,l(t))for(let o=0;o<t.length;++o)this.add(t[o])}function _Ee(e){return e===Qt.OUTSIDE}function SEe(e){return e===Qt.INSIDE}Object.defineProperties(vf.prototype,{length:{get:function(){return this._planes.length}},unionClippingRegions:{get:function(){return this._unionClippingRegions},set:function(e){this._unionClippingRegions!==e&&(this._unionClippingRegions=e,this._testIntersection=e?_Ee:SEe)}},texture:{get:function(){return this._clippingPlanesTexture}},clippingPlanesState:{get:function(){return this._unionClippingRegions?this._planes.length:-this._planes.length}}});vf.prototype.add=function(e){let t=this._planes.length;e.index=t,this._planes.push(e),this.planeAdded.raiseEvent(e,t)};vf.prototype.get=function(e){return this._planes[e]};function AEe(e,t){for(let n=0;n<e.length;++n)if(sn.equals(e[n],t))return n;return-1}vf.prototype.contains=function(e){return AEe(this._planes,e)!==-1};vf.prototype.remove=function(e){let t=this._planes,n=AEe(t,e);if(n===-1)return!1;e instanceof Os&&(e.onChangeCallback=void 0,e.index=-1);let i=t.length-1;for(let o=n;o<i;++o){let r=t[o+1];t[o]=r,r instanceof Os&&(r.index=o)}return t.length=i,this.planeRemoved.raiseEvent(e,n),!0};vf.prototype.removeAll=function(){let e=this._planes;for(let t=0;t<e.length;++t){let n=e[t];n instanceof Os&&(n.onChangeCallback=void 0,n.index=-1),this.planeRemoved.raiseEvent(n,t)}this._planes=[]};var ZGt=new sn(h.fromElements(1,0,0),0);function CGt(e,t){let n=e._float32View,i=e._planes,o=0;for(let r=0;r<i.length;++r){let{normal:s,distance:a}=VGt(i[r],t,ZGt);n[o]=s.x,n[o+1]=s.y,n[o+2]=s.z,n[o+3]=a,o+=4}}var Qte=new ce,RGt=new h;function VGt(e,t,n){let{normal:i,distance:o}=e,r=ce.fromElements(i.x,i.y,i.z,o,Qte),s=F.multiplyByVector(t,r,Qte),a=h.fromCartesian4(s,RGt);return s=ce.divideByScalar(s,h.magnitude(a),Qte),sn.fromCartesian4(s,n)}function ZEe(e,t){return t.x=Math.min(e,Xt.maximumTextureSize),t.y=Math.ceil(e/t.x),t}var GGt=new k;vf.prototype.update=function(e,t){let n=this._clippingPlanesTexture,i=this.length;if(l(n)){let s=n.width*n.height;(s<i||i<.25*s)&&(n.destroy(),n=void 0,this._clippingPlanesTexture=void 0)}if(this.length===0)return;if(!l(n)){let s=ZEe(i,GGt);s.y*=2,n=new Ft({context:e.context,width:s.x,height:s.y,pixelFormat:Qe.RGBA,pixelDatatype:ze.FLOAT,sampler:Ht.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*4),this._clippingPlanesTexture=n}let{width:o,height:r}=n;CGt(this,t),n.copyFrom({source:{width:o,height:r,arrayBufferView:this._float32View}})};vf.getTextureResolution=function(e,t,n){let i=e.texture;if(l(i))return n.x=i.width,n.y=i.height,n;let o=e.length,r=ZEe(o,n);return r.y*=2,r};vf.prototype.isDestroyed=function(){return!1};vf.prototype.destroy=function(){return this._clippingPlanesTexture=this._clippingPlanesTexture&&this._clippingPlanesTexture.destroy(),he(this)};var _g=vf;var zlo=x(T(),1);var Oco=x(T(),1),EM=`struct Ray { + vec3 pos; + vec3 dir; +}; + +float minComponent(in vec3 v) { + return min(min(v.x, v.y), v.z); +} + +float maxComponent(in vec3 v) { + return max(max(v.x, v.y), v.z); +} +`;var zco=x(T(),1),LM=`// See Intersection.glsl for the definition of intersectScene +// See IntersectionUtils.glsl for the definition of nextIntersection +// See convertLocalToBoxUv.glsl, convertLocalToCylinderUv.glsl, or convertLocalToEllipsoidUv.glsl +// for the definitions of convertLocalToShapeSpaceDerivative and getTileAndUvCoordinate. +// The appropriate functions are selected based on the VoxelPrimitive shape type, +// and added to the shader in Scene/VoxelRenderResources.js. +// See Octree.glsl for the definitions of TraversalData, SampleData, +// traverseOctreeFromBeginning, and traverseOctreeFromExisting +// See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture + +#define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops +#if defined(PICKING_VOXEL) + #define ALPHA_ACCUM_MAX 0.1 +#else + #define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0 +#endif + +uniform mat4 u_transformPositionViewToLocal; +uniform mat3 u_transformDirectionViewToLocal; +uniform vec3 u_cameraPositionLocal; +uniform vec3 u_cameraDirectionLocal; +uniform float u_stepSize; + +#if defined(PICKING) + uniform vec4 u_pickColor; +#endif + +vec3 getSampleSize(in int level) { + vec3 sampleCount = exp2(float(level)) * vec3(u_dimensions); + vec3 sampleSizeUv = 1.0 / sampleCount; + return scaleShapeUvToShapeSpace(sampleSizeUv); +} + +#define MINIMUM_STEP_SCALAR (0.02) +#define SHIFT_FRACTION (0.001) + +/** + * Given a coordinate within a tile, and sample spacings along a ray through + * the coordinate, find the distance to the points where the ray entered and + * exited the voxel cell, along with the surface normals at those points. + * The surface normals are returned in shape space coordinates. + */ +RayShapeIntersection getVoxelIntersection(in vec3 tileUv, in vec3 sampleSizeAlongRay) { + vec3 voxelCoord = tileUv * vec3(u_dimensions); + vec3 directions = sign(sampleSizeAlongRay); + vec3 positiveDirections = max(directions, 0.0); + vec3 entryCoord = mix(ceil(voxelCoord), floor(voxelCoord), positiveDirections); + vec3 exitCoord = entryCoord + directions; + + vec3 distanceFromEntry = -abs((entryCoord - voxelCoord) * sampleSizeAlongRay); + float lastEntry = maxComponent(distanceFromEntry); + bvec3 isLastEntry = equal(distanceFromEntry, vec3(lastEntry)); + vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions; + vec4 entry = vec4(entryNormal, lastEntry); + + vec3 distanceToExit = abs((exitCoord - voxelCoord) * sampleSizeAlongRay); + float firstExit = minComponent(distanceToExit); + bvec3 isFirstExit = equal(distanceToExit, vec3(firstExit)); + vec3 exitNormal = vec3(isFirstExit) * directions; + vec4 exit = vec4(exitNormal, firstExit); + + return RayShapeIntersection(entry, exit); +} + +vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection, in mat3 jacobianT, in float currentT) { + vec3 gradient = viewRay.dir * jacobianT; + vec3 sampleSizeAlongRay = getSampleSize(sampleData.tileCoords.w) / gradient; + + RayShapeIntersection voxelIntersection = getVoxelIntersection(sampleData.tileUv, sampleSizeAlongRay); + + // Transform normal from shape space to Cartesian space to eye space + vec3 voxelNormal = jacobianT * voxelIntersection.entry.xyz; + voxelNormal = normalize(czm_normal * voxelNormal); + + // Compare with the shape intersection, to choose the appropriate normal + vec4 voxelEntry = vec4(voxelNormal, currentT + voxelIntersection.entry.w); + vec4 entry = intersectionMax(shapeIntersection.entry, voxelEntry); + + float fixedStep = minComponent(abs(sampleSizeAlongRay)) * u_stepSize; + float shift = fixedStep * SHIFT_FRACTION; + float dt = voxelIntersection.exit.w + shift; + if ((currentT + dt) > shapeIntersection.exit.w) { + // Stop at end of shape + dt = shapeIntersection.exit.w - currentT + shift; + } + float stepSize = clamp(dt, fixedStep * MINIMUM_STEP_SCALAR, fixedStep + shift); + + return vec4(entry.xyz, stepSize); +} + +vec2 packIntToVec2(int value) { + float shifted = float(value) / 255.0; + float lowBits = fract(shifted); + float highBits = floor(shifted) / 255.0; + return vec2(highBits, lowBits); +} + +vec2 packFloatToVec2(float value) { + float lowBits = fract(value); + float highBits = floor(value) / 255.0; + return vec2(highBits, lowBits); +} + +int getSampleIndex(in SampleData sampleData) { + // tileUv = 1.0 is a valid coordinate but sampleIndex = u_inputDimensions is not. + // (tileUv = 1.0 corresponds to the far edge of the last sample, at index = u_inputDimensions - 1). + // Clamp to [0, voxelDimensions - 0.5) to avoid numerical error before flooring + vec3 maxCoordinate = vec3(u_inputDimensions) - vec3(0.5); + vec3 inputCoordinate = clamp(sampleData.inputCoordinate, vec3(0.0), maxCoordinate); + ivec3 sampleIndex = ivec3(floor(inputCoordinate)); + // Convert to a 1D index for lookup in a 1D data array + return sampleIndex.x + u_inputDimensions.x * (sampleIndex.y + u_inputDimensions.y * sampleIndex.z); +} + +/** + * Compute the view ray at the current fragment, in the local coordinates of the shape. + */ +Ray getViewRayLocal() { + vec4 eyeCoordinates = czm_windowToEyeCoordinates(gl_FragCoord); + vec3 origin; + vec3 direction; + if (czm_orthographicIn3D == 1.0) { + eyeCoordinates.z = 0.0; + origin = (u_transformPositionViewToLocal * eyeCoordinates).xyz; + direction = u_cameraDirectionLocal; + } else { + origin = u_cameraPositionLocal; + direction = u_transformDirectionViewToLocal * normalize(eyeCoordinates.xyz); + } + return Ray(origin, direction); +} + +Ray getViewRayEC() { + vec4 eyeCoordinates = czm_windowToEyeCoordinates(gl_FragCoord); + vec3 viewPosEC = (czm_orthographicIn3D == 1.0) + ? vec3(eyeCoordinates.xy, 0.0) + : vec3(0.0); + vec3 viewDirEC = normalize(eyeCoordinates.xyz); + return Ray(viewPosEC, viewDirEC); +} + +void main() +{ + Ray viewRayLocal = getViewRayLocal(); + Ray viewRayEC = getViewRayEC(); + + Intersections ix; + vec2 screenCoord = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1] + RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayLocal, viewRayEC, ix); + // Exit early if the scene was completely missed. + if (shapeIntersection.entry.w == NO_HIT) { + discard; + } + + float currentT = shapeIntersection.entry.w; + float endT = shapeIntersection.exit.w; + + vec3 positionEC = viewRayEC.pos + currentT * viewRayEC.dir; + TileAndUvCoordinate tileAndUv = getTileAndUvCoordinate(positionEC); + vec3 positionLocal = viewRayLocal.pos + currentT * viewRayLocal.dir; + mat3 jacobianT = convertLocalToShapeSpaceDerivative(positionLocal); + + // Traverse the tree from the start position + TraversalData traversalData; + SampleData sampleDatas[SAMPLE_COUNT]; + traverseOctreeFromBeginning(tileAndUv, traversalData, sampleDatas); + vec4 step = getStepSize(sampleDatas[0], viewRayLocal, shapeIntersection, jacobianT, currentT); + + FragmentInput fragmentInput; + #if defined(STATISTICS) + setStatistics(fragmentInput.metadataStatistics); + #endif + + czm_modelMaterial materialOutput; + vec4 colorAccum = vec4(0.0); + + for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) { + // Read properties from the megatexture based on the traversal state + Properties properties = accumulatePropertiesFromMegatexture(sampleDatas); + + // Prepare the custom shader inputs + copyPropertiesToMetadata(properties, fragmentInput.metadata); + + fragmentInput.attributes.positionEC = positionEC; + // Re-normalize normals: some shape intersections may have been scaled to encode positive/negative shapes + fragmentInput.attributes.normalEC = normalize(step.xyz); + + fragmentInput.voxel.viewDirUv = viewRayLocal.dir; + + fragmentInput.voxel.travelDistance = step.w; + fragmentInput.voxel.stepCount = stepCount; + fragmentInput.voxel.tileIndex = sampleDatas[0].megatextureIndex; + fragmentInput.voxel.sampleIndex = getSampleIndex(sampleDatas[0]); + fragmentInput.voxel.distanceToDepthBuffer = ix.distanceToDepthBuffer - currentT; + + // Run the custom shader + fragmentMain(fragmentInput, materialOutput); + + // Sanitize the custom shader output + vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha); + color.rgb = max(color.rgb, vec3(0.0)); + color.a = clamp(color.a, 0.0, 1.0); + + // Pre-multiplied alpha blend + colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a); + + // Stop traversing if the alpha has been fully saturated + if (colorAccum.a > ALPHA_ACCUM_MAX) { + colorAccum.a = ALPHA_ACCUM_MAX; + break; + } + + if (step.w == 0.0) { + // Shape is infinitely thin. The ray may have hit the edge of a + // foreground voxel. Step ahead slightly to check for more voxels + step.w = 0.001; + } + + // Keep raymarching + currentT += step.w; + // Check if there's more intersections. + if (currentT > endT) { + #if (INTERSECTION_COUNT == 1) + break; + #else + shapeIntersection = nextIntersection(ix); + if (shapeIntersection.entry.w == NO_HIT) { + break; + } else { + // Found another intersection. Resume raymarching there + currentT = shapeIntersection.entry.w; + endT = shapeIntersection.exit.w; + } + #endif + } + positionEC = viewRayEC.pos + currentT * viewRayEC.dir; + tileAndUv = getTileAndUvCoordinate(positionEC); + positionLocal = viewRayLocal.pos + currentT * viewRayLocal.dir; + jacobianT = convertLocalToShapeSpaceDerivative(positionLocal); + + // Traverse the tree from the current ray position. + // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step. + traverseOctreeFromExisting(tileAndUv, traversalData, sampleDatas); + step = getStepSize(sampleDatas[0], viewRayLocal, shapeIntersection, jacobianT, currentT); + } + + // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1] + colorAccum.a /= ALPHA_ACCUM_MAX; + + #if defined(PICKING) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + out_FragColor = u_pickColor; + #elif defined(PICKING_VOXEL) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + vec2 megatextureId = packIntToVec2(sampleDatas[0].megatextureIndex); + vec2 sampleIndex = packIntToVec2(getSampleIndex(sampleDatas[0])); + out_FragColor = vec4(megatextureId, sampleIndex); + #else + out_FragColor = colorAccum; + #endif +} +`;var Kco=x(T(),1),WM=`in vec2 position; + +uniform vec4 u_ndcSpaceAxisAlignedBoundingBox; + +void main() { + vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy; + vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw; + vec2 translation = 0.5 * (aabbMax + aabbMin); + vec2 scale = 0.5 * (aabbMax - aabbMin); + gl_Position = vec4(position * scale + translation, 0.0, 1.0); +} +`;var jco=x(T(),1),vM=`/* Intersection defines +#define INTERSECTION_COUNT ### +*/ + +#define NO_HIT (-czm_infinity) +#define INF_HIT (czm_infinity * 0.5) + +struct RayShapeIntersection { + vec4 entry; + vec4 exit; +}; + +vec4 intersectionMin(in vec4 intersect0, in vec4 intersect1) +{ + if (intersect0.w == NO_HIT) { + return intersect1; + } else if (intersect1.w == NO_HIT) { + return intersect0; + } + return (intersect0.w <= intersect1.w) ? intersect0 : intersect1; +} + +vec4 intersectionMax(in vec4 intersect0, in vec4 intersect1) +{ + return (intersect0.w >= intersect1.w) ? intersect0 : intersect1; +} + +RayShapeIntersection intersectIntersections(in Ray ray, in RayShapeIntersection intersect0, in RayShapeIntersection intersect1) +{ + bool missed = (intersect0.entry.w == NO_HIT) || + (intersect1.entry.w == NO_HIT) || + (intersect0.exit.w < intersect1.entry.w) || + (intersect0.entry.w > intersect1.exit.w); + if (missed) { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + vec4 entry = intersectionMax(intersect0.entry, intersect1.entry); + vec4 exit = intersectionMin(intersect0.exit, intersect1.exit); + + return RayShapeIntersection(entry, exit); +} + +struct Intersections { + // Don't access these member variables directly - call the functions instead. + + // Store an array of ray-surface intersections. Each intersection is composed of: + // .xyz for the surface normal at the intersection point + // .w for the T value + // The scale of the normal encodes the shape intersection type: + // length(intersection.xyz) = 1: positive shape entry + // length(intersection.xyz) = 2: positive shape exit + // length(intersection.xyz) = 3: negative shape entry + // length(intersection.xyz) = 4: negative shape exit + // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections, + // so we need twice as many to track ray-*surface* intersections + vec4 intersections[INTERSECTION_COUNT * 2]; + float distanceToDepthBuffer; + + #if (INTERSECTION_COUNT > 1) + // Maintain state for future nextIntersection calls + int index; + int surroundCount; + bool surroundIsPositive; + #endif +}; + +RayShapeIntersection getFirstIntersection(in Intersections ix) +{ + return RayShapeIntersection(ix.intersections[0], ix.intersections[1]); +} + +vec4 encodeIntersectionType(vec4 intersection, int index, bool entry) +{ + float scale = float(index > 0) * 2.0 + float(!entry) + 1.0; + return vec4(intersection.xyz * scale, intersection.w); +} + +// Use defines instead of real functions because WebGL1 cannot access array with non-constant index. +#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t)) +#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y) +#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = encodeIntersectionType((intersection), int(!positive), (enter)) +#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false) + +#if (INTERSECTION_COUNT > 1) +void initializeIntersections(inout Intersections ix) { + // Sort the intersections from min T to max T with bubble sort. + // Note: If this sorting function changes, some of the intersection test may + // need to be updated. Search for "bubble sort" to find those areas. + const int sortPasses = INTERSECTION_COUNT * 2 - 1; + for (int n = sortPasses; n > 0; --n) { + for (int i = 0; i < sortPasses; ++i) { + // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= n) { break; } + + vec4 intersect0 = ix.intersections[i + 0]; + vec4 intersect1 = ix.intersections[i + 1]; + + bool inOrder = intersect0.w <= intersect1.w; + + ix.intersections[i + 0] = inOrder ? intersect0 : intersect1; + ix.intersections[i + 1] = inOrder ? intersect1 : intersect0; + } + } + + // Prepare initial state for nextIntersection + ix.index = 0; + ix.surroundCount = 0; + ix.surroundIsPositive = false; +} +#endif + +#if (INTERSECTION_COUNT > 1) +RayShapeIntersection nextIntersection(inout Intersections ix) { + vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT); + RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection); + + const int passCount = INTERSECTION_COUNT * 2; + + if (ix.index == passCount) { + return shapeIntersection; + } + + for (int i = 0; i < passCount; ++i) { + // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to continue instead. + if (i < ix.index) { + continue; + } + + ix.index = i + 1; + + surfaceIntersection = ix.intersections[i]; + int intersectionType = int(length(surfaceIntersection.xyz) - 0.5); + bool currShapeIsPositive = intersectionType < 2; + bool enter = intersectionType % 2 == 0; + + ix.surroundCount += enter ? +1 : -1; + ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive; + + // entering positive or exiting negative + if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) { + shapeIntersection.entry = surfaceIntersection; + } + + // exiting positive or entering negative after being inside positive + bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0; + bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive; + if (exitPositive || enterNegativeFromPositive) { + shapeIntersection.exit = surfaceIntersection; + + // entry and exit have been found, so the loop can stop + if (exitPositive) { + // After exiting positive shape there is nothing left to intersect, so jump to the end index. + ix.index = passCount; + } + break; + } + } + + return shapeIntersection; +} +#endif + +// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1 +`;var qco=x(T(),1),FM=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersectionPair, INF_HIT, NO_HIT + +/* intersectDepth defines (set in Scene/VoxelRenderResources.js) +#define DEPTH_INTERSECTION_INDEX ### +*/ + +void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) { + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord)); + float entry; + float exit; + if (logDepthOrDepth != 0.0) { + // Calculate how far the ray must travel before it hits the depth buffer. + vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth); + eyeCoordinateDepth /= eyeCoordinateDepth.w; + entry = dot(eyeCoordinateDepth.xyz - ray.pos, ray.dir); + exit = +INF_HIT; + } else { + // There's no depth at this location. + entry = NO_HIT; + exit = NO_HIT; + } + ix.distanceToDepthBuffer = entry; +#if defined(DEPTH_TEST) + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(entry, exit)); +#endif +} +`;var elo=x(T(),1),IM=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT, +// NO_HIT, setShapeIntersection + +/* Clipping plane defines (set in Scene/VoxelRenderResources.js) +#define CLIPPING_PLANES_UNION +#define CLIPPING_PLANES_COUNT +#define CLIPPING_PLANES_INTERSECTION_INDEX +*/ + +uniform sampler2D u_clippingPlanesTexture; +uniform mat4 u_clippingPlanesMatrix; + +// Plane is in Hessian Normal Form +vec4 intersectPlane(in Ray ray, in vec4 plane) { + vec3 n = plane.xyz; // normal + float w = plane.w; // -dot(pointOnPlane, normal) + + float a = dot(ray.pos, n); + float b = dot(ray.dir, n); + float t = -(w + a) / b; + + return vec4(n, t); +} + +#ifdef CLIPPING_PLANES +void intersectClippingPlanes(in Ray ray, inout Intersections ix) { + vec4 backSide = vec4(-ray.dir, -INF_HIT); + vec4 farSide = vec4(ray.dir, +INF_HIT); + RayShapeIntersection clippingVolume; + + #if (CLIPPING_PLANES_COUNT == 1) + // Union and intersection are the same when there's one clipping plane, and the code + // is more simplified. + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0); + vec4 intersection = intersectPlane(ray, planeUv); + bool reflects = dot(ray.dir, intersection.xyz) < 0.0; + clippingVolume.entry = reflects ? backSide : intersection; + clippingVolume.exit = reflects ? intersection : farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #elif defined(CLIPPING_PLANES_UNION) + vec4 firstTransmission = vec4(ray.dir, +INF_HIT); + vec4 lastReflection = vec4(-ray.dir, -INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission; + } else { + lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection; + } + } + clippingVolume.entry = backSide; + clippingVolume.exit = lastReflection; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume); + clippingVolume.entry = firstTransmission; + clippingVolume.exit = farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume); + #else // intersection + vec4 lastTransmission = vec4(ray.dir, -INF_HIT); + vec4 firstReflection = vec4(-ray.dir, +INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission; + } else { + firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection; + } + } + if (lastTransmission.w < firstReflection.w) { + clippingVolume.entry = lastTransmission; + clippingVolume.exit = firstReflection; + } else { + clippingVolume.entry = vec4(-ray.dir, NO_HIT); + clippingVolume.exit = vec4(ray.dir, NO_HIT); + } + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #endif +} +#endif +`;var nlo=x(T(),1),O1=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, +// RayShapeIntersection + +vec4 transformNormalToEC(in vec4 intersection) { + return vec4(normalize(czm_normal * intersection.xyz), intersection.w); +} + +RayShapeIntersection transformNormalsToEC(in RayShapeIntersection ix) { + return RayShapeIntersection(transformNormalToEC(ix.entry), transformNormalToEC(ix.exit)); +} + +vec4 intersectLongitude(in Ray ray, in float angle, in bool positiveNormal) { + float normalSign = positiveNormal ? 1.0 : -1.0; + vec2 planeNormal = vec2(-sin(angle), cos(angle)) * normalSign; + + vec2 position = ray.pos.xy; + vec2 direction = ray.dir.xy; + float approachRate = dot(direction, planeNormal); + float distance = -dot(position, planeNormal); + + float t = (approachRate == 0.0) + ? NO_HIT + : distance / approachRate; + + return vec4(planeNormal, 0.0, t); +} + +RayShapeIntersection intersectHalfSpace(in Ray ray, in float angle, in bool positiveNormal) +{ + vec4 intersection = intersectLongitude(ray, angle, positiveNormal); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + bool hitFront = (intersection.w > 0.0) == (dot(ray.pos.xy, intersection.xy) > 0.0); + if (!hitFront) { + return RayShapeIntersection(intersection, farSide); + } else { + return RayShapeIntersection(-1.0 * farSide, intersection); + } +} + +void intersectFlippedWedge(in Ray ray, in vec2 minMaxAngle, out RayShapeIntersection intersections[2]) +{ + intersections[0] = transformNormalsToEC(intersectHalfSpace(ray, minMaxAngle.x, false)); + intersections[1] = transformNormalsToEC(intersectHalfSpace(ray, minMaxAngle.y, true)); +} + +bool hitPositiveHalfPlane(in Ray ray, in vec4 intersection, in bool positiveNormal) { + float normalSign = positiveNormal ? 1.0 : -1.0; + vec2 planeDirection = vec2(intersection.y, -intersection.x) * normalSign; + vec2 hit = ray.pos.xy + intersection.w * ray.dir.xy; + return dot(hit, planeDirection) > 0.0; +} + +void intersectHalfPlane(in Ray ray, in float angle, out RayShapeIntersection intersections[2]) { + vec4 intersection = intersectLongitude(ray, angle, true); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + bool hitPositiveSide = hitPositiveHalfPlane(ray, intersection, true); + + farSide = transformNormalToEC(farSide); + + if (hitPositiveSide) { + intersection = transformNormalToEC(intersection); + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = vec4(-1.0 * intersection.xyz, intersection.w); + intersections[1].entry = intersection; + intersections[1].exit = farSide; + } else { + vec4 miss = vec4(normalize(czm_normal * ray.dir), NO_HIT); + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = farSide; + intersections[1].entry = miss; + intersections[1].exit = miss; + } +} + +RayShapeIntersection intersectRegularWedge(in Ray ray, in vec2 minMaxAngle) +{ + // Note: works for maxAngle > minAngle + pi, where the "regular wedge" + // is actually a negative volume. + // Compute intersections with the two planes. + // Normals will point toward the "outside" (negative space) + vec4 intersect1 = intersectLongitude(ray, minMaxAngle.x, false); + vec4 intersect2 = intersectLongitude(ray, minMaxAngle.y, true); + + // Choose intersection with smallest T as the "first", the other as "last" + // Note: first or last could be in the "shadow" wedge, beyond the tip + bool inOrder = intersect1.w <= intersect2.w; + vec4 first = inOrder ? intersect1 : intersect2; + vec4 last = inOrder ? intersect2 : intersect1; + + bool firstIsAhead = first.w >= 0.0; + bool startedInsideFirst = dot(ray.pos.xy, first.xy) < 0.0; + bool exitFromInside = firstIsAhead == startedInsideFirst; + bool lastIsAhead = last.w > 0.0; + bool startedOutsideLast = dot(ray.pos.xy, last.xy) >= 0.0; + bool enterFromOutside = lastIsAhead == startedOutsideLast; + + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + + if (exitFromInside && enterFromOutside) { + // Ray crosses both faces of negative wedge, exiting then entering the positive shape + return transformNormalsToEC(RayShapeIntersection(first, last)); + } else if (!exitFromInside && enterFromOutside) { + // Ray starts inside wedge. last is in shadow wedge, and first is actually the entry + return transformNormalsToEC(RayShapeIntersection(-1.0 * farSide, first)); + } else if (exitFromInside && !enterFromOutside) { + // First intersection was in the shadow wedge, so last is actually the exit + return transformNormalsToEC(RayShapeIntersection(last, farSide)); + } else { // !exitFromInside && !enterFromOutside + // Both intersections were in the shadow wedge + return transformNormalsToEC(RayShapeIntersection(miss, miss)); + } +} +`;var olo=x(T(),1),PM=`// See IntersectionUtils.glsl for the definitions of Ray, RayShapeIntersection, +// NO_HIT, Intersections + +/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_INTERSECTION_INDEX ### // always 0 +*/ + +uniform sampler2D u_renderBoundPlanesTexture; + +RayShapeIntersection intersectBoundPlanes(in Ray ray) { + vec4 lastEntry = vec4(ray.dir, -INF_HIT); + vec4 firstExit = vec4(-ray.dir, +INF_HIT); + for (int i = 0; i < 6; i++) { + vec4 boundPlane = getBoundPlane(u_renderBoundPlanesTexture, i); + vec4 intersection = intersectPlane(ray, boundPlane); + if (dot(ray.dir, boundPlane.xyz) < 0.0) { + lastEntry = intersection.w > lastEntry.w ? intersection : lastEntry; + } else { + firstExit = intersection.w < firstExit.w ? intersection: firstExit; + } + } + + if (lastEntry.w < firstExit.w) { + return RayShapeIntersection(lastEntry, firstExit); + } else { + return RayShapeIntersection(vec4(-ray.dir, NO_HIT), vec4(ray.dir, NO_HIT)); + } +} + +void intersectShape(in Ray rayUV, in Ray rayEC, inout Intersections ix) +{ + RayShapeIntersection intersection = intersectBoundPlanes(rayEC); + setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection); +} +`;var slo=x(T(),1),XM=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, Intersections, +// RayShapeIntersection, setSurfaceIntersection, setShapeIntersection, +// intersectIntersections +// See IntersectLongitude.glsl for the definitions of intersectHalfPlane, +// intersectFlippedWedge, intersectRegularWedge + +/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO + +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN +#define CYLINDER_INTERSECTION_INDEX_ANGLE +*/ + +// Cylinder uniforms +uniform vec2 u_cylinderRenderRadiusMinMax; +#if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE) + uniform vec2 u_cylinderRenderAngleMinMax; +#endif + +uniform sampler2D u_renderBoundPlanesTexture; + +RayShapeIntersection intersectBoundPlanes(in Ray ray) { + vec4 lastEntry = vec4(ray.dir, -INF_HIT); + vec4 firstExit = vec4(-ray.dir, +INF_HIT); + for (int i = 0; i < 2; i++) { + vec4 boundPlane = getBoundPlane(u_renderBoundPlanesTexture, i); + vec4 intersection = intersectPlane(ray, boundPlane); + if (dot(ray.dir, boundPlane.xyz) < 0.0) { + lastEntry = intersection.w > lastEntry.w ? intersection : lastEntry; + } else { + firstExit = intersection.w < firstExit.w ? intersection: firstExit; + } + } + + if (lastEntry.w < firstExit.w) { + return RayShapeIntersection(lastEntry, firstExit); + } else { + return RayShapeIntersection(vec4(-ray.dir, NO_HIT), vec4(ray.dir, NO_HIT)); + } +} + +/** + * Find the intersection of a ray with a right cylindrical surface of a given radius + * about the z-axis. + */ +RayShapeIntersection intersectCylinder(in Ray ray, in float radius, in bool convex) +{ + vec2 position = ray.pos.xy; + vec2 direction = ray.dir.xy; + + float a = dot(direction, direction); + float b = dot(position, direction); + float c = dot(position, position) - radius * radius; + float determinant = b * b - a * c; + + if (determinant < 0.0) { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + determinant = sqrt(determinant); + float t1 = (-b - determinant) / a; + float t2 = (-b + determinant) / a; + float signFlip = convex ? 1.0 : -1.0; + vec3 normal1 = vec3((position + t1 * direction) * signFlip, 0.0); + vec3 normal2 = vec3((position + t2 * direction) * signFlip, 0.0); + // Return normals in eye coordinates + vec4 intersect1 = vec4(normalize(czm_normal * normal1), t1); + vec4 intersect2 = vec4(normalize(czm_normal * normal2), t2); + + return RayShapeIntersection(intersect1, intersect2); +} + +/** + * Find the intersection of a ray with a right cylindrical solid of given + * radius and height bounds. NOTE: The shape is assumed to be convex. + */ +RayShapeIntersection intersectBoundedCylinder(in Ray ray, in Ray rayEC, in float radius) +{ + RayShapeIntersection cylinderIntersection = intersectCylinder(ray, radius, true); + RayShapeIntersection heightBoundsIntersection = intersectBoundPlanes(rayEC); + return intersectIntersections(ray, cylinderIntersection, heightBoundsIntersection); +} + +void intersectShape(in Ray ray, in Ray rayEC, inout Intersections ix) +{ + RayShapeIntersection outerIntersect = intersectBoundedCylinder(ray, rayEC, u_cylinderRenderRadiusMinMax.y); + + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect); + + if (outerIntersect.entry.w == NO_HIT) { + return; + } + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + // When the cylinder is perfectly thin it's necessary to sandwich the + // inner cylinder intersection inside the outer cylinder intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the cylinder to be invisible because it will think the ray + // is still inside the inner (negative) cylinder after exiting the + // outer (positive) cylinder. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + RayShapeIntersection innerIntersect = intersectCylinder(ray, 1.0, false); + setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true); // positive, enter + setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter + setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit + setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false); // positive, exit + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) + RayShapeIntersection innerIntersect = intersectCylinder(ray, u_cylinderRenderRadiusMinMax.x, false); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect); + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF) + RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF) + RayShapeIntersection wedgeIntersects[2]; + intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax, wedgeIntersects); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + RayShapeIntersection wedgeIntersects[2]; + intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x, wedgeIntersects); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]); + #endif +} +`;var clo=x(T(),1),YM=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, Intersections, +// RayShapeIntersection, setSurfaceIntersection, setShapeIntersection +// See IntersectLongitude.glsl for the definitions of intersectHalfPlane, +// intersectFlippedWedge, intersectRegularWedge + +/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF +#define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN +*/ + +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidRenderLongitudeMinMax; +#endif +uniform float u_eccentricitySquared; +uniform vec2 u_ellipsoidRenderLatitudeSinMinMax; +uniform vec2 u_clipMinMaxHeight; // Values are negative: clipHeight - maxShapeHeight + +RayShapeIntersection intersectZPlane(in Ray ray, in float z) { + float t = -ray.pos.z / ray.dir.z; + + bool startsOutside = sign(ray.pos.z) == sign(z); + bool entry = (t >= 0.0) != startsOutside; + + vec4 intersect = vec4(0.0, 0.0, z, t); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (entry) { + return RayShapeIntersection(intersect, farSide); + } else { + return RayShapeIntersection(-1.0 * farSide, intersect); + } +} + +RayShapeIntersection intersectHeight(in Ray ray, in float height, in bool convex) +{ + // Scale the ray by the ellipsoid axes to make it a unit sphere + // Note: approximating ellipsoid + height as an ellipsoid + vec3 radiiCorrection = vec3(1.0) / (u_ellipsoidRadii + height); + vec3 position = ray.pos * radiiCorrection; + vec3 direction = ray.dir * radiiCorrection; + + float a = dot(direction, direction); // ~ 1.0 (or maybe 4.0 if ray is scaled) + float b = dot(direction, position); // roughly inside [-1.0, 1.0] when zoomed in + float c = dot(position, position) - 1.0; // ~ 0.0 when zoomed in. + float determinant = b * b - a * c; // ~ b * b when zoomed in + + if (determinant < 0.0) { + vec4 miss = vec4(normalize(direction), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + determinant = sqrt(determinant); + + // Compute larger root using standard formula + float signB = b < 0.0 ? -1.0 : 1.0; + // The other root may suffer from subtractive cancellation in the standard formula. + // Compute it from the first root instead. + float t1 = (-b - signB * determinant) / a; + float t2 = c / (a * t1); + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + float directionScale = convex ? 1.0 : -1.0; + vec3 d1 = directionScale * (position + tmin * direction); + vec3 d2 = directionScale * (position + tmax * direction); + + // Return normals in eye coordinates. Use spherical approximation for the normal. + vec3 normal1 = normalize(czm_normal * d1); + vec3 normal2 = normalize(czm_normal * d2); + + return RayShapeIntersection(vec4(normal1, tmin), vec4(normal2, tmax)); +} + +/** + * Given a circular cone around the z-axis, with apex at the origin, + * find the parametric distance(s) along a ray where that ray intersects + * the cone. + * The cone opening angle is described by the squared cosine of + * its half-angle (the angle between the Z-axis and the surface) + */ +vec2 intersectDoubleEndedCone(in Ray ray, in float cosSqrHalfAngle) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + float sinSqrHalfAngle = 1.0 - cosSqrHalfAngle; + + float aSin = d.z * d.z * sinSqrHalfAngle; + float aCos = -dot(d.xy, d.xy) * cosSqrHalfAngle; + float a = aSin + aCos; + + float bSin = d.z * o.z * sinSqrHalfAngle; + float bCos = -dot(o.xy, d.xy) * cosSqrHalfAngle; + float b = bSin + bCos; + + float cSin = o.z * o.z * sinSqrHalfAngle; + float cCos = -dot(o.xy, o.xy) * cosSqrHalfAngle; + float c = cSin + cCos; + // determinant = b * b - a * c. But bSin * bSin = aSin * cSin. + // Avoid subtractive cancellation by expanding to eliminate these terms + float determinant = 2.0 * bSin * bCos + bCos * bCos - aSin * cCos - aCos * cSin - aCos * cCos; + + if (determinant < 0.0) { + return vec2(NO_HIT); + } else if (a == 0.0) { + // Ray is parallel to cone surface + return (b == 0.0) + ? vec2(NO_HIT) // Ray is on cone surface + : vec2(-0.5 * c / b, NO_HIT); + } + + determinant = sqrt(determinant); + + // Compute larger root using standard formula + float signB = b < 0.0 ? -1.0 : 1.0; + float t1 = (-b - signB * determinant) / a; + // The other root may suffer from subtractive cancellation in the standard formula. + // Compute it from the first root instead. + float t2 = c / (a * t1); + float tmin = min(t1, t2); + float tmax = max(t1, t2); + return vec2(tmin, tmax); +} + +/** + * Given a point on a conical surface, find the surface normal at that point. + */ +vec3 getConeNormal(in vec3 p, in bool convex) { + // Start with radial component pointing toward z-axis + vec2 radial = -abs(p.z) * normalize(p.xy); + // Z component points toward opening of cone + float zSign = (p.z < 0.0) ? -1.0 : 1.0; + float z = length(p.xy) * zSign; + // Flip normal if shape is convex + float flip = (convex) ? -1.0 : 1.0; + return normalize(vec3(radial, z) * flip); +} + +/** + * Compute the shift between the ellipsoid origin and the apex of a cone of latitude + */ +float getLatitudeConeShift(in float sinLatitude) { + // Find prime vertical radius of curvature: + // the distance along the ellipsoid normal to the intersection with the z-axis + float x2 = u_eccentricitySquared * sinLatitude * sinLatitude; + float primeVerticalRadius = u_ellipsoidRadii.x * inversesqrt(1.0 - x2); + + // Compute a shift from the origin to the intersection of the cone with the z-axis + return primeVerticalRadius * u_eccentricitySquared * sinLatitude; +} + +void intersectFlippedCone(in Ray ray, in float cosHalfAngle, out RayShapeIntersection intersections[2]) { + // Shift the ray to account for the latitude cone not being centered at the Earth center + ray.pos.z += getLatitudeConeShift(cosHalfAngle); + + float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle; + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + // Initialize output with no intersections + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = farSide; + intersections[1].entry = miss; + intersections[1].exit = miss; + + if (intersect.x == NO_HIT) { + return; + } + + // Find the points of intersection + float tmin = intersect.x; + float tmax = intersect.y; + vec3 p0 = ray.pos + tmin * ray.dir; + vec3 p1 = ray.pos + tmax * ray.dir; + + vec4 intersect0 = vec4(getConeNormal(p0, true), tmin); + vec4 intersect1 = vec4(getConeNormal(p1, true), tmax); + + bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle); + bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle); + + if (p0InShadowCone && p1InShadowCone) { + // no valid intersections + } else if (p0InShadowCone) { + intersections[0].exit = intersect1; + } else if (p1InShadowCone) { + intersections[0].entry = intersect0; + } else { + intersections[0].exit = intersect0; + intersections[1].entry = intersect1; + intersections[1].exit = farSide; + } +} + +RayShapeIntersection intersectRegularCone(in Ray ray, in float cosHalfAngle, in bool convex) { + // Shift the ray to account for the latitude cone not being centered at the Earth center + ray.pos.z += getLatitudeConeShift(cosHalfAngle); + + float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle; + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (intersect.x == NO_HIT) { + return RayShapeIntersection(miss, miss); + } + + // Find the points of intersection + float tmin = intersect.x; + float tmax = intersect.y; + vec3 p0 = ray.pos + tmin * ray.dir; + vec3 p1 = ray.pos + tmax * ray.dir; + + vec4 intersect0 = vec4(getConeNormal(p0, convex), tmin); + vec4 intersect1 = vec4(getConeNormal(p1, convex), tmax); + + bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle); + bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle); + + if (p0InShadowCone && p1InShadowCone) { + return RayShapeIntersection(miss, miss); + } else if (p0InShadowCone) { + return RayShapeIntersection(intersect1, farSide); + } else if (p1InShadowCone) { + return RayShapeIntersection(-1.0 * farSide, intersect0); + } else { + return RayShapeIntersection(intersect0, intersect1); + } +} + +void intersectShape(in Ray ray, in Ray rayEC, inout Intersections ix) { // Outer ellipsoid + RayShapeIntersection outerIntersect = intersectHeight(ray, u_clipMinMaxHeight.y, true); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect); + + // Exit early if the outer ellipsoid was missed. + if (outerIntersect.entry.w == NO_HIT) { + return; + } + + // Inner ellipsoid + RayShapeIntersection innerIntersect = intersectHeight(ray, u_clipMinMaxHeight.x, false); + + if (innerIntersect.entry.w == NO_HIT) { + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect); + } else { + // When the ellipsoid is large and thin it's possible for floating point math + // to cause the ray to intersect the inner ellipsoid before the outer ellipsoid. + // To prevent this from happening, clamp innerIntersect to outerIntersect and + // sandwich the inner ellipsoid intersection inside the outer ellipsoid intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the ellipsoid to be invisible because it will think the ray + // is still inside the inner (negative) ellipsoid after exiting the + // outer (positive) ellipsoid. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + innerIntersect.entry.w = max(innerIntersect.entry.w, outerIntersect.entry.w); + innerIntersect.exit.w = min(innerIntersect.exit.w, outerIntersect.exit.w); + setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true); // positive, enter + setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter + setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit + setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false); // positive, exit + } + + // Bottom cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) + RayShapeIntersection bottomConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, false); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) + RayShapeIntersection bottomConeIntersection = intersectZPlane(ray, -1.0); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) + RayShapeIntersection bottomConeIntersections[2]; + intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, bottomConeIntersections); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersections[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersections[1]); + #endif + + // Top cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + RayShapeIntersection topConeIntersections[2]; + intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, topConeIntersections); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersections[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersections[1]); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF) + RayShapeIntersection topConeIntersection = intersectZPlane(ray, 1.0); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + RayShapeIntersection topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, false); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #endif + + // Wedge + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + RayShapeIntersection wedgeIntersects[2]; + intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x, wedgeIntersects); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF) + RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF) + RayShapeIntersection wedgeIntersects[2]; + intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax, wedgeIntersects); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]); + #endif +} +`;var dlo=x(T(),1),hA=`// Main intersection function for Voxel scenes. +// See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl +// for the definition of intersectShape. The appropriate function is selected +// based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See also IntersectClippingPlane.glsl and IntersectDepth.glsl. +// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, +// getFirstIntersection, initializeIntersections, nextIntersection. + +/* Intersection defines (set in Scene/VoxelRenderResources.js) +#define INTERSECTION_COUNT ### +*/ + +RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, in Ray rayEC, out Intersections ix) { + // Do a ray-shape intersection to find the exact starting and ending points. + intersectShape(ray, rayEC, ix); + + // Exit early if the positive shape was completely missed or behind the ray. + RayShapeIntersection intersection = getFirstIntersection(ix); + if (intersection.entry.w == NO_HIT) { + // Positive shape was completely missed - so exit early. + return intersection; + } + + // Clipping planes + #if defined(CLIPPING_PLANES) + intersectClippingPlanes(ray, ix); + #endif + + // Depth + intersectDepth(screenCoord, rayEC, ix); + + // Find the first intersection that's in front of the ray + #if (INTERSECTION_COUNT > 1) + initializeIntersections(ix); + for (int i = 0; i < INTERSECTION_COUNT; ++i) { + intersection = nextIntersection(ix); + if (intersection.exit.w > 0.0) { + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + break; + } + } + #else + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + #endif + + return intersection; +} +`;var mlo=x(T(),1),NM=`uniform vec3 u_boxLocalToShapeUvScale; + +uniform ivec4 u_cameraTileCoordinates; +uniform vec3 u_cameraTileUv; +uniform mat3 u_boxEcToXyz; + +mat3 convertLocalToShapeSpaceDerivative(in vec3 positionLocal) { + // For BOX, local space = shape space, so the Jacobian is the identity matrix. + return mat3(1.0); +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { + return shapeUv / u_boxLocalToShapeUvScale; +} + +vec3 convertEcToDeltaTile(in vec3 positionEC) { + vec3 dPosition = u_boxEcToXyz * positionEC; + return u_boxLocalToShapeUvScale * dPosition * float(1 << u_cameraTileCoordinates.w); +} + +TileAndUvCoordinate getTileAndUvCoordinate(in vec3 positionEC) { + vec3 deltaTileCoordinate = convertEcToDeltaTile(positionEC); + vec3 tileUvSum = u_cameraTileUv + deltaTileCoordinate; + ivec3 tileCoordinate = u_cameraTileCoordinates.xyz + ivec3(floor(tileUvSum)); + tileCoordinate = min(max(ivec3(0), tileCoordinate), ivec3((1 << u_cameraTileCoordinates.w) - 1)); + ivec3 tileCoordinateChange = tileCoordinate - u_cameraTileCoordinates.xyz; + vec3 tileUv = clamp(tileUvSum - vec3(tileCoordinateChange), 0.0, 1.0); + return TileAndUvCoordinate(ivec4(tileCoordinate, u_cameraTileCoordinates.w), tileUv); +} +`;var flo=x(T(),1),wM=`uniform vec3 u_cylinderLocalToShapeUvScale; // x = radius scale, y = angle scale, z = height scale +uniform float u_cylinderShapeUvAngleRangeOrigin; +uniform mat3 u_cylinderEcToRadialTangentUp; +uniform ivec4 u_cameraTileCoordinates; +uniform vec3 u_cameraTileUv; +uniform vec3 u_cameraShapePosition; // (radial distance, angle, height) of camera in shape space + +mat3 convertLocalToShapeSpaceDerivative(in vec3 position) { + vec3 radial = normalize(vec3(position.xy, 0.0)); + vec3 z = vec3(0.0, 0.0, 1.0); + vec3 east = normalize(vec3(-position.y, position.x, 0.0)); + return mat3(radial, east / length(position.xy), z); +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { + float radius = shapeUv.x / u_cylinderLocalToShapeUvScale.x; + float angle = shapeUv.y * czm_twoPi / u_cylinderLocalToShapeUvScale.y; + float height = shapeUv.z / u_cylinderLocalToShapeUvScale.z; + + return vec3(radius, angle, height); +} + +/** + * Computes the change in polar coordinates given a change in position. + * @param {vec2} dPosition The change in position in Cartesian coordinates. + * @param {float} cameraRadialDistance The radial distance of the camera from the origin. + * @return {vec2} The change in polar coordinates (radial distance, angle). + */ +vec2 computePolarChange(in vec2 dPosition, in float cameraRadialDistance) { + float dAngle = atan(dPosition.y, cameraRadialDistance + dPosition.x); + // Find the direction of the radial axis at the output angle, in Cartesian coordinates + vec2 outputRadialAxis = vec2(cos(dAngle), sin(dAngle)); + float sinHalfAngle = sin(dAngle / 2.0); + float versine = 2.0 * sinHalfAngle * sinHalfAngle; + float dRadial = dot(dPosition, outputRadialAxis) - cameraRadialDistance * versine; + return vec2(dRadial, dAngle); +} + +vec3 convertEcToDeltaShape(in vec3 positionEC) { + // 1. Rotate to radial, tangent, and up coordinates + vec3 rtu = u_cylinderEcToRadialTangentUp * positionEC; + // 2. Compute change in angular and radial coordinates. + vec2 dPolar = computePolarChange(rtu.xy, u_cameraShapePosition.x); + return vec3(dPolar.xy, rtu.z); +} + +vec3 convertEcToDeltaTile(in vec3 positionEC) { + vec3 deltaShape = convertEcToDeltaShape(positionEC); + // Convert to tileset coordinates in [0, 1] + float dx = u_cylinderLocalToShapeUvScale.x * deltaShape.x; + float dy = deltaShape.y / czm_twoPi; +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + // Wrap to ensure dy is not crossing through the unoccupied angle range, where + // angle to tile coordinate conversions would be more complicated + float cameraUvAngle = (u_cameraShapePosition.y + czm_pi) / czm_twoPi; + float cameraUvAngleShift = fract(cameraUvAngle - u_cylinderShapeUvAngleRangeOrigin); + float rawOutputUvAngle = cameraUvAngleShift + dy; + float rotation = floor(rawOutputUvAngle); + dy -= rotation; +#endif + dy *= u_cylinderLocalToShapeUvScale.y; + float dz = u_cylinderLocalToShapeUvScale.z * deltaShape.z; + // Convert to tile coordinate changes + return vec3(dx, dy, dz) * float(1 << u_cameraTileCoordinates.w); +} + +TileAndUvCoordinate getTileAndUvCoordinate(in vec3 positionEC) { + vec3 deltaTileCoordinate = convertEcToDeltaTile(positionEC); + vec3 tileUvSum = u_cameraTileUv + deltaTileCoordinate; + ivec3 tileCoordinate = u_cameraTileCoordinates.xyz + ivec3(floor(tileUvSum)); + int maxTileCoordinate = (1 << u_cameraTileCoordinates.w) - 1; + tileCoordinate.x = min(max(0, tileCoordinate.x), maxTileCoordinate); + tileCoordinate.z = min(max(0, tileCoordinate.z), maxTileCoordinate); +#if (!defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE)) + ivec3 tileCoordinateChange = tileCoordinate - u_cameraTileCoordinates.xyz; + if (tileCoordinate.y < 0) { + tileCoordinate.y += (maxTileCoordinate + 1); + } else if (tileCoordinate.y > maxTileCoordinate) { + tileCoordinate.y -= (maxTileCoordinate + 1); + } +#else + tileCoordinate.y = min(max(0, tileCoordinate.y), maxTileCoordinate); + ivec3 tileCoordinateChange = tileCoordinate - u_cameraTileCoordinates.xyz; +#endif + vec3 tileUv = tileUvSum - vec3(tileCoordinateChange); + tileUv.x = clamp(tileUv.x, 0.0, 1.0); +#if (!defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE)) + // If there is only one tile spanning 2*PI angle, the coordinate wraps around + tileUv.y = (u_cameraTileCoordinates.w == 0) ? fract(tileUv.y) : clamp(tileUv.y, 0.0, 1.0); +#else + tileUv.y = clamp(tileUv.y, 0.0, 1.0); +#endif + tileUv.z = clamp(tileUv.z, 0.0, 1.0); + return TileAndUvCoordinate(ivec4(tileCoordinate, u_cameraTileCoordinates.w), tileUv); +} +`;var blo=x(T(),1),MM=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE +*/ + +uniform vec3 u_cameraPositionCartographic; // (longitude, latitude, height) in radians and meters +uniform vec2 u_ellipsoidCurvatureAtLatitude; +uniform mat3 u_ellipsoidEcToEastNorthUp; +uniform vec3 u_ellipsoidRadii; +uniform vec2 u_evoluteScale; // (radii.x ^ 2 - radii.z ^ 2) * vec2(1.0, -1.0) / radii; +uniform vec3 u_ellipsoidInverseRadiiSquared; +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + uniform float u_ellipsoidShapeUvLongitudeRangeOrigin; +#endif +uniform vec3 u_ellipsoidLocalToShapeUvScale; // x = longitude scale, y = latitude scale, z = height scale + +uniform ivec4 u_cameraTileCoordinates; +uniform vec3 u_cameraTileUv; + +// robust iterative solution without trig functions +// https://github.com/0xfaded/ellipse_demo/issues/1 +// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse +// Extended to return radius of curvature along with the point +vec3 nearestPointAndRadiusOnEllipse(vec2 pos, vec2 radii) { + vec2 p = abs(pos); + vec2 inverseRadii = 1.0 / radii; + + // We describe the ellipse parametrically: v = radii * vec2(cos(t), sin(t)) + // but store the cos and sin of t in a vec2 for efficiency. + // Initial guess: t = pi/4 + vec2 tTrigs = vec2(0.7071067811865476); + // Initial guess of point on ellipsoid + vec2 v = radii * tTrigs; + // Center of curvature of the ellipse at v + vec2 evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs; + + const int iterations = 3; + for (int i = 0; i < iterations; ++i) { + // Find the (approximate) intersection of p - evolute with the ellipsoid. + vec2 q = normalize(p - evolute) * length(v - evolute); + // Update the estimate of t. + tTrigs = (q + evolute) * inverseRadii; + tTrigs = normalize(clamp(tTrigs, 0.0, 1.0)); + v = radii * tTrigs; + evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs; + } + + return vec3(v * sign(pos), length(v - evolute)); +} + +mat3 convertLocalToShapeSpaceDerivative(in vec3 position) { + vec3 east = normalize(vec3(-position.y, position.x, 0.0)); + + // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z) + // (assume radii.y == radii.x) and find the nearest point on the ellipse and its normal + float distanceFromZAxis = length(position.xy); + vec2 posEllipse = vec2(distanceFromZAxis, position.z); + vec3 surfacePointAndRadius = nearestPointAndRadiusOnEllipse(posEllipse, u_ellipsoidRadii.xz); + vec2 surfacePoint = surfacePointAndRadius.xy; + + vec2 normal2d = normalize(surfacePoint * u_ellipsoidInverseRadiiSquared.xz); + vec3 north = vec3(-normal2d.y * normalize(position.xy), abs(normal2d.x)); + + float heightSign = length(posEllipse) < length(surfacePoint) ? -1.0 : 1.0; + float height = heightSign * length(posEllipse - surfacePoint); + vec3 up = normalize(cross(east, north)); + + return mat3(east / distanceFromZAxis, north / (surfacePointAndRadius.z + height), up); +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { + // Convert from [0, 1] to radians [-pi, pi] + float longitude = shapeUv.x * czm_twoPi; + #if defined (ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude /= u_ellipsoidLocalToShapeUvScale.x; + #endif + + // Convert from [0, 1] to radians [-pi/2, pi/2] + float latitude = shapeUv.y * czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude /= u_ellipsoidLocalToShapeUvScale.y; + #endif + + float height = shapeUv.z / u_ellipsoidLocalToShapeUvScale.z; + + return vec3(longitude, latitude, height); +} + +vec3 convertEcToDeltaShape(in vec3 positionEC) { + vec3 enu = u_ellipsoidEcToEastNorthUp * positionEC; + + // 1. Compute the change in longitude from the camera to the ENU point + // First project the camera and ENU positions to the equatorial XY plane, + // positioning the camera on the +x axis, so that enu.x projects along the +y axis + float cosLatitude = cos(u_cameraPositionCartographic.y); + float sinLatitude = sin(u_cameraPositionCartographic.y); + float primeVerticalRadius = 1.0 / u_ellipsoidCurvatureAtLatitude.x; + vec2 cameraXY = vec2((primeVerticalRadius + u_cameraPositionCartographic.z) * cosLatitude, 0.0); + // Note precision loss in positionXY.x if length(enu) << length(cameraXY) + vec2 positionXY = cameraXY + vec2(-enu.y * sinLatitude + enu.z * cosLatitude, enu.x); + float dLongitude = atan(positionXY.y, positionXY.x); + + // 2. Find the longitude component of positionXY, by rotating about Z until the y component is zero. + // Use the versine to compute the change in x directly from the change in angle: + // versine(angle) = 2 * sin^2(angle/2) + float sinHalfLongitude = sin(dLongitude / 2.0); + float dx = length(positionXY) * 2.0 * sinHalfLongitude * sinHalfLongitude; + // Rotate longitude component back to ENU North and Up, and remove from enu + enu += vec3(-enu.x, -dx * sinLatitude, dx * cosLatitude); + + // 3. Compute the change in latitude from the camera to the ENU point. + // First project the camera and ENU positions to the meridional ZX plane, + // positioning the camera on the +Z axis, so that enu.y maps to the +X axis. + float meridionalRadius = 1.0 / u_ellipsoidCurvatureAtLatitude.y; + vec2 cameraZX = vec2(meridionalRadius + u_cameraPositionCartographic.z, 0.0); + vec2 positionZX = cameraZX + vec2(enu.z, enu.y); + float dLatitude = atan(positionZX.y, positionZX.x); + + // 4. Compute the change in height above the ellipsoid + // Find the change in enu.z associated with rotating the point to the latitude of the camera + float sinHalfLatitude = sin(dLatitude / 2.0); + float dz = length(positionZX) * 2.0 * sinHalfLatitude * sinHalfLatitude; + // The remaining change in enu.z is the change in height above the ellipsoid + float dHeight = enu.z + dz; + + return vec3(dLongitude, dLatitude, dHeight); +} + +vec3 convertEcToDeltaTile(in vec3 positionEC) { + vec3 deltaShape = convertEcToDeltaShape(positionEC); + // Convert to tileset coordinates in [0, 1] + float dx = deltaShape.x / czm_twoPi; + +#if (defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)) + // Wrap to ensure dx is not crossing through the unoccupied angle range, where + // angle to tile coordinate conversions would be more complicated + float cameraUvLongitude = (u_cameraPositionCartographic.x + czm_pi) / czm_twoPi; + float cameraUvLongitudeShift = fract(cameraUvLongitude - u_ellipsoidShapeUvLongitudeRangeOrigin); + float rawOutputUvLongitude = cameraUvLongitudeShift + dx; + float rotation = floor(rawOutputUvLongitude); + dx -= rotation; + dx *= u_ellipsoidLocalToShapeUvScale.x; +#endif + + float dy = deltaShape.y / czm_pi; +#if (defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE)) + dy *= u_ellipsoidLocalToShapeUvScale.y; +#endif + + float dz = u_ellipsoidLocalToShapeUvScale.z * deltaShape.z; + // Convert to tile coordinate changes + return vec3(dx, dy, dz) * float(1 << u_cameraTileCoordinates.w); +} + +TileAndUvCoordinate getTileAndUvCoordinate(in vec3 positionEC) { + vec3 deltaTileCoordinate = convertEcToDeltaTile(positionEC); + vec3 tileUvSum = u_cameraTileUv + deltaTileCoordinate; + ivec3 tileCoordinate = u_cameraTileCoordinates.xyz + ivec3(floor(tileUvSum)); + int maxTileCoordinate = (1 << u_cameraTileCoordinates.w) - 1; + tileCoordinate.y = min(max(0, tileCoordinate.y), maxTileCoordinate); + tileCoordinate.z = min(max(0, tileCoordinate.z), maxTileCoordinate); +#if (!defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)) + ivec3 tileCoordinateChange = tileCoordinate - u_cameraTileCoordinates.xyz; + if (tileCoordinate.x < 0) { + tileCoordinate.x += (maxTileCoordinate + 1); + } else if (tileCoordinate.x > maxTileCoordinate) { + tileCoordinate.x -= (maxTileCoordinate + 1); + } +#else + tileCoordinate.x = min(max(0, tileCoordinate.x), maxTileCoordinate); + ivec3 tileCoordinateChange = tileCoordinate - u_cameraTileCoordinates.xyz; +#endif + vec3 tileUv = tileUvSum - vec3(tileCoordinateChange); +#if (!defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)) + // If there is only one tile spanning 2*PI angle, the coordinate wraps around + tileUv.x = (u_cameraTileCoordinates.w == 0) ? fract(tileUv.x) : clamp(tileUv.x, 0.0, 1.0); +#else + tileUv.x = clamp(tileUv.x, 0.0, 1.0); +#endif + tileUv.y = clamp(tileUv.y, 0.0, 1.0); + tileUv.z = clamp(tileUv.z, 0.0, 1.0); + return TileAndUvCoordinate(ivec4(tileCoordinate, u_cameraTileCoordinates.w), tileUv); +} +`;var ylo=x(T(),1),kM=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js +#define OCTREE_FLAG_INTERNAL 0 +#define OCTREE_FLAG_LEAF 1 +#define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2 + +#define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops + +uniform sampler2D u_octreeInternalNodeTexture; +uniform vec2 u_octreeInternalNodeTexelSizeUv; +uniform int u_octreeInternalNodeTilesPerRow; +#if (SAMPLE_COUNT > 1) +uniform sampler2D u_octreeLeafNodeTexture; +uniform vec2 u_octreeLeafNodeTexelSizeUv; +uniform int u_octreeLeafNodeTilesPerRow; +#endif +uniform ivec3 u_dimensions; // does not include padding, and is in the z-up orientation +uniform ivec3 u_inputDimensions; // includes padding, and is in the orientation of the input data +#if defined(PADDING) + uniform ivec3 u_paddingBefore; +#endif + +struct OctreeNodeData { + int data; + int flag; +}; + +struct TraversalData { + ivec4 octreeCoords; + int parentOctreeIndex; +}; + +struct TileAndUvCoordinate { + ivec4 tileCoords; + vec3 tileUv; +}; + +struct SampleData { + int megatextureIndex; + ivec4 tileCoords; + vec3 tileUv; + vec3 inputCoordinate; + #if (SAMPLE_COUNT > 1) + float weight; + #endif +}; + +int normU8_toInt(in float value) { + return int(value * 255.0); +} +int normU8x2_toInt(in vec2 value) { + return int(value.x * 255.0) + 256 * int(value.y * 255.0); +} +float normU8x2_toFloat(in vec2 value) { + return float(normU8x2_toInt(value)) / 65535.0; +} + +OctreeNodeData getOctreeNodeData(in vec2 octreeUv) { + vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv); + + OctreeNodeData data; + data.data = normU8x2_toInt(texData.xy); + data.flag = normU8x2_toInt(texData.zw); + return data; +} + +OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) { + int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x; + int octreeCoordX = (parentOctreeIndex % u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex; + int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + return getOctreeNodeData(octreeUv); +} + +int getOctreeParentIndex(in int octreeIndex) { + int octreeCoordX = (octreeIndex % u_octreeInternalNodeTilesPerRow) * 9; + int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv); + int parentOctreeIndex = normU8x2_toInt(parentData.xy); + return parentOctreeIndex; +} + +vec3 getTileUv(in TileAndUvCoordinate tileAndUv, in ivec4 octreeCoords) { + int levelDifference = tileAndUv.tileCoords.w - octreeCoords.w; + float scalar = exp2(-1.0 * float(levelDifference)); + vec3 originShift = vec3(tileAndUv.tileCoords.xyz - (octreeCoords.xyz << levelDifference)) * scalar; + return tileAndUv.tileUv * scalar + originShift; +} + +vec3 getClampedTileUv(in TileAndUvCoordinate tileAndUv, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(tileAndUv, octreeCoords); + return clamp(tileUv, vec3(0.0), vec3(1.0)); +} + +void addSampleCoordinates(in TileAndUvCoordinate tileAndUv, inout SampleData sampleData) { + vec3 tileUv = getClampedTileUv(tileAndUv, sampleData.tileCoords); + + vec3 inputCoordinate = tileUv * vec3(u_dimensions); +#if defined(PADDING) + inputCoordinate += vec3(u_paddingBefore); +#endif +#if defined(Y_UP_METADATA_ORDER) +#if defined(SHAPE_BOX) + float inputY = inputCoordinate.y; + inputCoordinate.y = inputCoordinate.z; + // u_inputDimensions.z is the y-up dimension along the 3D Tiles y-axis. + inputCoordinate.z = float(u_inputDimensions.z) - inputY; +#elif defined(SHAPE_CYLINDER) + float angle = inputCoordinate.y; + float height = inputCoordinate.z; + #if (!defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE)) + // Account for the different 0-angle convention in glTF vs 3DTiles + if (sampleData.tileCoords.w == 0) { + float angleCount = float(u_inputDimensions.z); + angle = mod(angle + angleCount / 2.0, angleCount); + } + #endif + inputCoordinate.y = height; + inputCoordinate.z = angle; +#endif +#endif + + sampleData.tileUv = tileUv; + sampleData.inputCoordinate = inputCoordinate; +} + +void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) { + sampleData.megatextureIndex = data.data; + sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; +} + +#if (SAMPLE_COUNT > 1) +void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) { + int leafIndex = data.data; + int leafNodeTexelCount = 2; + // Adding 0.5 moves to the center of the texel + float leafCoordXStart = float((leafIndex % u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5; + float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5; + + // Get an interpolation weight and a flag to determine whether to read the parent texture + vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY); + vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0); + float lerp = normU8x2_toFloat(leafData0.xy); + sampleDatas[0].weight = 1.0 - lerp; + sampleDatas[1].weight = lerp; + // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT + sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + + // Get megatexture indices for both samples + vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY); + vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1); + sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy); + sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw); +} +#endif + +OctreeNodeData traverseOctreeDownwards(in ivec4 tileCoordinate, inout TraversalData traversalData) { + OctreeNodeData childData; + + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + // tileCoordinate.xyz is defined at the level of detail tileCoordinate.w. + // Find the corresponding coordinate at the level traversalData.octreeCoords.w + int level = traversalData.octreeCoords.w + 1; + int levelDifference = tileCoordinate.w - level; + ivec3 coordinateAtLevel = tileCoordinate.xyz >> levelDifference; + traversalData.octreeCoords = ivec4(coordinateAtLevel, level); + + ivec3 childCoordinate = coordinateAtLevel & 1; + childData = getOctreeChildData(traversalData.parentOctreeIndex, childCoordinate); + + if (childData.flag != OCTREE_FLAG_INTERNAL) { + // leaf tile - stop traversing + break; + } + + traversalData.parentOctreeIndex = childData.data; + } + + return childData; +} + +/** +* Transform a given position to an octree tile coordinate and a position within that tile, +* and find the corresponding megatexture index and texture coordinates +*/ +void traverseOctreeFromBeginning(in TileAndUvCoordinate tileAndUv, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) { + traversalData.octreeCoords = ivec4(0); + traversalData.parentOctreeIndex = 0; + + OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0)); + if (nodeData.flag != OCTREE_FLAG_LEAF) { + nodeData = traverseOctreeDownwards(tileAndUv.tileCoords, traversalData); + } + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + addSampleCoordinates(tileAndUv, sampleDatas[0]); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + addSampleCoordinates(tileAndUv, sampleDatas[0]); + addSampleCoordinates(tileAndUv, sampleDatas[1]); + #endif +} + +bool insideTile(in ivec4 tileCoordinate, in ivec4 octreeCoords) { + int levelDifference = tileCoordinate.w - octreeCoords.w; + if (levelDifference < 0) { + return false; + } + ivec3 coordinateAtLevel = tileCoordinate.xyz >> levelDifference; + return coordinateAtLevel == octreeCoords.xyz; +} + +void traverseOctreeFromExisting(in TileAndUvCoordinate tileAndUv, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) { + ivec4 tileCoords = tileAndUv.tileCoords; + if (insideTile(tileCoords, traversalData.octreeCoords)) { + for (int i = 0; i < SAMPLE_COUNT; i++) { + addSampleCoordinates(tileAndUv, sampleDatas[i]); + } + return; + } + + // Go up tree until we find a parent tile containing tileCoords. + // Assumes all parents are available all they way up to the root. + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + traversalData.octreeCoords.xyz /= 2; + traversalData.octreeCoords.w -= 1; + + if (insideTile(tileCoords, traversalData.octreeCoords)) { + break; + } + + traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex); + } + + // Go down tree + OctreeNodeData nodeData = traverseOctreeDownwards(tileCoords, traversalData); + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + addSampleCoordinates(tileAndUv, sampleDatas[0]); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + addSampleCoordinates(tileAndUv, sampleDatas[0]); + addSampleCoordinates(tileAndUv, sampleDatas[1]); + #endif +} +`;var Tlo=x(T(),1),UM=`// See Octree.glsl for the definitions of SampleData + +/* Megatexture defines (set in Scene/VoxelRenderResources.js) +#define SAMPLE_COUNT ### +#define PADDING +*/ + +uniform ivec3 u_megatextureTileCounts; // number of tiles in the megatexture, along each axis + +vec3 index1DTo3DTexCoord(int index) +{ + int tilesPerZ = u_megatextureTileCounts.x * u_megatextureTileCounts.y; + int iz = index / tilesPerZ; + int remainder = index - iz * tilesPerZ; + int iy = remainder / u_megatextureTileCounts.x; + int ix = remainder - iy * u_megatextureTileCounts.x; + return vec3(ix, iy, iz) / vec3(u_megatextureTileCounts); +} + +Properties getPropertiesFromMegatexture(in SampleData sampleData) { + int tileIndex = sampleData.megatextureIndex; + + vec3 voxelCoord = sampleData.inputCoordinate; + + // UV coordinate of the lower corner of the tile in the megatexture + vec3 tileUvOffset = index1DTo3DTexCoord(tileIndex); + + // Voxel location + vec3 tileDimensions = vec3(u_inputDimensions); + vec3 clampedVoxelCoord = clamp(voxelCoord, vec3(0.5), tileDimensions - vec3(0.5)); + vec3 voxelUv = clampedVoxelCoord / tileDimensions / vec3(u_megatextureTileCounts); + + return getPropertiesFromMegatextureAtUv(tileUvOffset + voxelUv); +} + +// Convert an array of sample datas to a final weighted properties. +Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) { + #if (SAMPLE_COUNT == 1) + return getPropertiesFromMegatexture(sampleDatas[0]); + #else + // When more than one sample is taken the accumulator needs to start at 0 + Properties properties = clearProperties(); + for (int i = 0; i < SAMPLE_COUNT; ++i) { + float weight = sampleDatas[i].weight; + + // Avoid reading the megatexture when the weight is 0 as it can be costly. + if (weight > 0.0) { + Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]); + tempProperties = scaleProperties(tempProperties, weight); + properties = sumProperties(properties, tempProperties); + } + } + return properties; + #endif +} +`;var Slo=x(T(),1),CEe={Z_UP:0,Y_UP:1};Object.freeze(CEe);var l0=CEe;function EGt(e){let t=new gb;this.shaderBuilder=t;let n=e._customShader,i=vt(e._uniformMap,n.uniformMap);e._uniformMap=i;let o=n.uniforms;for(let f in o)if(o.hasOwnProperty(f)){let y=o[f];t.addUniform(y.type,f,pe.FRAGMENT)}t.addUniform("sampler3D","u_megatextureTextures[METADATA_COUNT]",pe.FRAGMENT),this.uniformMap=i;let r=e._clippingPlanes,s=l(r)&&r.enabled?r.length:0;this.clippingPlanes=r,this.clippingPlanesLength=s;let a=e._shape.renderBoundPlanes,c=a?.length??0;this.renderBoundPlanes=a,this.renderBoundPlanesLength=c,t.addVertexLines([WM]),e.provider.metadataOrder===l0.Y_UP&&t.addDefine("Y_UP_METADATA_ORDER",void 0,pe.FRAGMENT);let d=e._provider.shape;d==="BOX"?t.addDefine("SHAPE_BOX",void 0,pe.FRAGMENT):d==="CYLINDER"?t.addDefine("SHAPE_CYLINDER",void 0,pe.FRAGMENT):d==="ELLIPSOID"&&t.addDefine("SHAPE_ELLIPSOID",void 0,pe.FRAGMENT),t.addFragmentLines([n.fragmentShaderText,"#line 0",kM,EM,UM,vM,IM,FM]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,pe.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,pe.FRAGMENT),r.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,pe.FRAGMENT)),e._depthTest&&t.addDefine("DEPTH_TEST",void 0,pe.FRAGMENT),d==="BOX"?t.addFragmentLines([NM,PM,hA]):d==="CYLINDER"?t.addFragmentLines([wM,O1,XM,hA]):d==="ELLIPSOID"&&t.addFragmentLines([MM,O1,YM,hA]),t.addFragmentLines([LM]);let u=e._shape,m=u.shaderDefines;for(let f in m)if(m.hasOwnProperty(f)){let y=m[f];l(y)&&(y=y===!0?void 0:y,t.addDefine(f,y,pe.FRAGMENT))}let p=u.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",p,pe.FRAGMENT),s===1?p+=1:r.unionClippingRegions?p+=2:p+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",p,pe.FRAGMENT),p+=1),t.addDefine("INTERSECTION_COUNT",p,pe.FRAGMENT),(!h.equals(e.paddingBefore,h.ZERO)||!h.equals(e.paddingAfter,h.ZERO))&&t.addDefine("PADDING",void 0,pe.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,pe.FRAGMENT);let b=e._traversal;t.addDefine("SAMPLE_COUNT",`${b._sampleCount}`,pe.FRAGMENT)}var DM=EGt;var REe=new k;function LGt(e,t){let n=new DM(e);GM(n,e);let{shaderBuilder:i,clippingPlanes:o,clippingPlanesLength:r,renderBoundPlanes:s,renderBoundPlanesLength:a}=n;if(r>0){let Z="getClippingPlane",R=`vec4 ${Z}(highp sampler2D packedPlanes, int planeNumber)`,G=ss.getTextureResolution(o,t,REe),E=VEe(G);i.addFunction(Z,R,pe.FRAGMENT),i.addFunctionLines(Z,[E])}if(a>0){let Z="getBoundPlane",R=`vec4 ${Z}(highp sampler2D packedPlanes, int planeNumber)`,G=_g.getTextureResolution(s,t,REe),E=VEe(G);i.addFunction(Z,R,pe.FRAGMENT),i.addFunctionLines(Z,[E])}let c=i.clone();c.addDefine("PICKING",void 0,pe.FRAGMENT);let d=i.clone();d.addDefine("PICKING_VOXEL",void 0,pe.FRAGMENT);let u=i.buildShaderProgram(t),m=c.buildShaderProgram(t),p=d.buildShaderProgram(t),b=Be.fromCache({cull:{enabled:!0,face:Ii.BACK},depthTest:{enabled:!1},depthMask:!1,blending:nn.PRE_MULTIPLIED_ALPHA_BLEND}),f=t.getViewportQuadVertexArray(),y=e._depthTest,_=new at({vertexArray:f,primitiveType:ve.TRIANGLES,renderState:b,shaderProgram:u,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:Le.VOXELS,executeInClosestFrustum:!0,owner:this,cull:y,occlude:y}),S=at.shallowClone(_,new at);S.shaderProgram=m,S.pickOnly=!0;let A=at.shallowClone(_,new at);if(A.shaderProgram=p,A.pickOnly=!0,l(e._drawCommand)){let Z=e._drawCommand;Z.shaderProgram=Z.shaderProgram&&Z.shaderProgram.destroy()}if(l(e._drawCommandPick)){let Z=e._drawCommandPick;Z.shaderProgram=Z.shaderProgram&&Z.shaderProgram.destroy()}if(l(e._drawCommandPickVoxel)){let Z=e._drawCommandPickVoxel;Z.shaderProgram=Z.shaderProgram&&Z.shaderProgram.destroy()}e._drawCommand=_,e._drawCommandPick=S,e._drawCommandPickVoxel=A}function VEe(e){let t=e.x,n=e.y,i=1/t,o=1/n,r=`${i}`;r.indexOf(".")===-1&&(r+=".0");let s=`${o}`;return s.indexOf(".")===-1&&(s+=".0"),`int pixY = planeNumber / ${t}; + int pixX = planeNumber - (pixY * ${t}); + // Sample from center of pixel + float u = (float(pixX) + 0.5) * ${r}; + float v = (float(pixY) + 0.5) * ${s}; + return texture(packedPlanes, vec2(u, v));`}var OM=LGt;var pdo=x(T(),1);function Sg(e){let{loader:t,metadata:n}=e;this._loader=t,this._metadata=n,this._resourcesLoaded=!1,this._ready=!1}Object.defineProperties(Sg.prototype,{ready:{get:function(){return this._ready}},metadata:{get:function(){return this._metadata}}});Sg.fromMetadataArray=function(e){return new Sg({metadata:e})};Sg.fromGltf=async function(e){let t=new au({gltfResource:e,releaseGltfJson:!1,loadAttributesAsTypedArray:!0});try{await t.load()}catch(n){throw t.destroy(),n}return new Sg({loader:t})};Sg.prototype.update=function(e,t){let n=this._loader;if(!this._ready){if(t.afterRender.push(()=>!0),!l(n)){this._ready=!0;return}if(this._resourcesLoaded){let{structuralMetadata:i,scene:o}=n.components,{attributes:r}=o.nodes[0].primitives[0];this._metadata=WGt(r,i,e),this._ready=!0;return}this._resourcesLoaded=n.process(t)}};function WGt(e,t,n){let{className:i,names:o,types:r,componentTypes:s}=n.provider,a=t.propertyAttributes.find(u=>u.class.id===i),{properties:c}=a,d=new Array(o.length);for(let u=0;u<e.length;u++){let m=c[o[u]].attribute,p=e.find(_=>_.name===m);if(!l(p))continue;let b=It.toComponentDatatype(s[u]),f=pt.getComponentCount(r[u]),y=p.count*f;d[u]=J.createArrayBufferView(b,p.typedArray.buffer,p.typedArray.byteOffset+p.byteOffset,y)}return d}Sg.prototype.isDestroyed=function(){return!1};Sg.prototype.destroy=function(){return this._loader=this._loader&&this._loader.destroy(),he(this)};var fA=Sg;var nuo=x(T(),1);var Cdo=x(T(),1);function ul(){this._orientedBoundingBox=new en,this._boundingSphere=new ue,this._boundTransform=new F,this._shapeTransform=new F,this._minBounds=ul.DefaultMinBounds.clone(),this._maxBounds=ul.DefaultMaxBounds.clone(),this._renderMinBounds=ul.DefaultMinBounds.clone(),this._renderMaxBounds=ul.DefaultMaxBounds.clone();let{DefaultMinBounds:e,DefaultMaxBounds:t}=ul,n=[new Os(h.negate(h.UNIT_X,new h),e.x),new Os(h.negate(h.UNIT_Y,new h),e.y),new Os(h.negate(h.UNIT_Z,new h),e.z),new Os(h.UNIT_X,-t.x),new Os(h.UNIT_Y,-t.y),new Os(h.UNIT_Z,-t.z)];this._renderBoundPlanes=new _g({planes:n}),this._localToShapeUvTranslate=new h,this._shaderUniforms={boxEcToXyz:new $,boxLocalToShapeUvScale:new h},this._shaderDefines={BOX_INTERSECTION_INDEX:void 0},this._shaderMaximumIntersectionsLength=0}Object.defineProperties(ul.prototype,{orientedBoundingBox:{get:function(){return this._orientedBoundingBox}},renderBoundPlanes:{get:function(){return this._renderBoundPlanes}},boundingSphere:{get:function(){return this._boundingSphere}},boundTransform:{get:function(){return this._boundTransform}},shapeTransform:{get:function(){return this._shapeTransform}},shaderUniforms:{get:function(){return this._shaderUniforms}},shaderDefines:{get:function(){return this._shaderDefines}},shaderMaximumIntersectionsLength:{get:function(){return this._shaderMaximumIntersectionsLength}}});var vGt=new h,FGt=new h,IGt=new $,PGt=new h,XGt=new h;ul.prototype.update=function(e,t,n,i,o){i=i??t.clone(PGt),o=o??n.clone(XGt),t=h.clone(t,this._minBounds),n=h.clone(n,this._maxBounds);let r=h.clamp(t,i,o,this._renderMinBounds),s=h.clamp(n,i,o,this._renderMaxBounds),a=F.getScale(e,FGt);if(r.x>s.x||r.y>s.y||r.z>s.z||(r.x===s.x)+(r.y===s.y)+(r.z===s.z)>=2||a.x===0||a.y===0||a.z===0)return!1;let c=this._renderBoundPlanes;c.get(0).distance=r.x,c.get(1).distance=r.y,c.get(2).distance=r.z,c.get(3).distance=-s.x,c.get(4).distance=-s.y,c.get(5).distance=-s.z,this._shapeTransform=F.clone(e,this._shapeTransform),this._orientedBoundingBox=ene(r,s,this._shapeTransform,this._orientedBoundingBox),this._boundTransform=F.fromRotationTranslation(this._orientedBoundingBox.halfAxes,this._orientedBoundingBox.center,this._boundTransform),this._boundingSphere=ue.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere);let d=this._shaderUniforms,u=this._shaderDefines;for(let y in u)u.hasOwnProperty(y)&&(u[y]=void 0);let m=0;u.BOX_INTERSECTION_INDEX=m,m+=1;let p=t,b=n,f=h.fromElements(qte(p.x,b.x),qte(p.y,b.y),qte(p.z,b.z),d.boxLocalToShapeUvScale);return this._localToShapeUvTranslate=h.negate(h.multiplyComponents(f,p,this._localToShapeUvTranslate),this._localToShapeUvTranslate),this._shaderMaximumIntersectionsLength=m,!0};function qte(e,t){return W.equalsEpsilon(e,t,W.EPSILON7)?1:1/(t-e)}var YGt=new F;ul.prototype.updateViewTransforms=function(e){let t=this._shaderUniforms,n=F.inverse(this._shapeTransform,YGt),i=F.getMatrix3(n,t.boxEcToXyz),o=e.context.uniformState.inverseViewRotation;$.multiply(i,o,t.boxEcToXyz)};ul.prototype.convertLocalToShapeUvSpace=function(e,t){let{boxLocalToShapeUvScale:n}=this._shaderUniforms,i=this._localToShapeUvTranslate;return h.add(h.multiplyComponents(e,n,t),i,t)};var dz=new h,$te=new h;ul.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=h.fromElements(W.lerp(r.x,s.x,a*t),W.lerp(r.y,s.y,a*n),W.lerp(r.z,s.z,a*i),dz),d=h.fromElements(W.lerp(r.x,s.x,a*(t+1)),W.lerp(r.y,s.y,a*(n+1)),W.lerp(r.z,s.z,a*(i+1)),$te);return ene(c,d,this._shapeTransform,o)};var GEe=new h;ul.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,GEe),s=h.multiplyByScalar(r,o,GEe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,dz),o,dz),c=h.add(a,s,$te),d=this._minBounds,u=this._maxBounds,m=h.fromElements(W.lerp(d.x,u.x,a.x),W.lerp(d.y,u.y,a.y),W.lerp(d.z,u.z,a.z),dz),p=h.fromElements(W.lerp(d.x,u.x,c.x),W.lerp(d.y,u.y,c.y),W.lerp(d.z,u.z,c.z),$te);return ene(m,p,this._shapeTransform,i)};ul.DefaultMinBounds=Object.freeze(new h(-1,-1,-1));ul.DefaultMaxBounds=Object.freeze(new h(1,1,1));var EEe=new h;function ene(e,t,n,i){let o=ul.DefaultMinBounds,r=ul.DefaultMaxBounds;if(h.equals(e,o)&&h.equals(t,r))i.center=F.getTranslation(n,i.center),i.halfAxes=F.getMatrix3(n,i.halfAxes);else{let a=F.getScale(n,EEe),c=h.midpoint(e,t,vGt);i.center=F.multiplyByPoint(n,c,i.center),a=h.fromElements(a.x*.5*(t.x-e.x),a.y*.5*(t.y-e.y),a.z*.5*(t.z-e.z),EEe);let d=F.getRotation(n,IGt);i.halfAxes=$.setScale(d,a,i.halfAxes)}return i}var pA=ul;var Ydo=x(T(),1);function Bu(){this._orientedBoundingBox=new en,this._boundingSphere=new ue,this._boundTransform=new F,this._shapeTransform=new F,this._minBounds=Bu.DefaultMinBounds.clone(),this._maxBounds=Bu.DefaultMaxBounds.clone();let{DefaultMinBounds:e,DefaultMaxBounds:t}=Bu,n=[new Os(h.negate(h.UNIT_Z,new h),e.z),new Os(h.UNIT_Z,-t.z)];this._renderBoundPlanes=new _g({planes:n}),this._localToShapeUvTranslate=new h,this._shaderUniforms={cameraShapePosition:new h,cylinderEcToRadialTangentUp:new $,cylinderRenderRadiusMinMax:new k,cylinderRenderAngleMinMax:new k,cylinderLocalToShapeUvScale:new h,cylinderShapeUvAngleRangeOrigin:0},this._shaderDefines={CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MAX:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MIN:void 0,CYLINDER_INTERSECTION_INDEX_ANGLE:void 0},this._shaderMaximumIntersectionsLength=0}Object.defineProperties(Bu.prototype,{orientedBoundingBox:{get:function(){return this._orientedBoundingBox}},renderBoundPlanes:{get:function(){return this._renderBoundPlanes}},boundingSphere:{get:function(){return this._boundingSphere}},boundTransform:{get:function(){return this._boundTransform}},shapeTransform:{get:function(){return this._shapeTransform}},shaderUniforms:{get:function(){return this._shaderUniforms}},shaderDefines:{get:function(){return this._shaderDefines}},shaderMaximumIntersectionsLength:{get:function(){return this._shaderMaximumIntersectionsLength}}});var NGt=new h,wGt=new h,MGt=new h,kGt=new h,UGt=new h,DGt=new F,OGt=new h,LEe=new k;Bu.prototype.update=function(e,t,n,i,o){i=i??t.clone(wGt),o=o??n.clone(MGt),t=h.clone(t,this._minBounds),n=h.clone(n,this._maxBounds);let{DefaultMinBounds:r,DefaultMaxBounds:s}=Bu,a=s.y-r.y,c=.5*a,d=W.EPSILON10,u=W.EPSILON10;t.x=Math.max(0,t.x),n.x=Math.max(0,n.x),t.y=W.negativePiToPi(t.y),n.y=W.negativePiToPi(n.y),i.y=W.negativePiToPi(i.y),o.y=W.negativePiToPi(o.y);let m=h.maximumByComponent(t,i,kGt),p=h.minimumByComponent(n,o,UGt),b=F.getScale(e,NGt);if(p.x===0||m.x>p.x||m.z>p.z||W.equalsEpsilon(b.x,0,void 0,d)||W.equalsEpsilon(b.y,0,void 0,d)||W.equalsEpsilon(b.z,0,void 0,d))return!1;let f=this._renderBoundPlanes;f.get(0).distance=m.z,f.get(1).distance=-p.z,this._shapeTransform=F.clone(e,this._shapeTransform),this._orientedBoundingBox=ine(m,p,this._shapeTransform,this._orientedBoundingBox),this._boundTransform=F.fromRotationTranslation(this._orientedBoundingBox.halfAxes,this._orientedBoundingBox.center,this._boundTransform),this._boundingSphere=ue.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere);let y=n.y<t.y,_=n.y-t.y+y*a,S=p.y<m.y,A=p.y-m.y+S*a,Z=A>=c-u&&A<a-u,R=A>u&&A<c-u,G=A<=u,E=Z||R||G,v=this._shaderUniforms,I=this._shaderDefines;for(let K in I)I.hasOwnProperty(K)&&(I[K]=void 0);let X=0;I.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=X,X+=1,_<a-u&&(I.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0),m.x!==r.x&&(I.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,I.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=X,X+=1),v.cylinderRenderRadiusMinMax=k.fromElements(m.x,p.x,v.cylinderRenderRadiusMinMax),m.x===p.x&&(I.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0);let Y=n.x-t.x,g=0,C=1;Y!==0&&(g=1/Y,C=-t.x*g);let V=n.z-t.z,L=0,P=1;V!==0&&(L=1/V,P=-t.z*L),E&&(I.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,I.CYLINDER_INTERSECTION_INDEX_ANGLE=X,Z?(I.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,X+=1):R?(I.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,X+=2):G&&(I.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,X+=2),v.cylinderRenderAngleMinMax=k.fromElements(m.y,p.y,v.cylinderRenderAngleMinMax));let N=(t.y-r.y)/a,O=(n.y-r.y)/a,M=1-_/a,D=(O+.5*M)%1;v.cylinderShapeUvAngleRangeOrigin=D;let w=0,z=1;if(_>u){w=a/_;let K=N-D;z=-w*(K-Math.floor(K))}return v.cylinderLocalToShapeUvScale=h.fromElements(g,w,L,v.cylinderLocalToShapeUvScale),this._localToShapeUvTranslate=h.fromElements(C,z,P,this._localToShapeUvTranslate),this._shaderMaximumIntersectionsLength=X,!0};var BGt=new $,zGt=new $,HGt=new F;Bu.prototype.updateViewTransforms=function(e){let t=this._shaderUniforms,n=F.inverse(this._shapeTransform,DGt),i=F.multiplyByPoint(n,e.camera.positionWC,OGt);t.cameraShapePosition=h.fromElements(k.magnitude(i),Math.atan2(i.y,i.x),i.z,t.cameraShapePosition);let o=k.normalize(k.fromCartesian3(i,LEe),LEe),r=$.fromRowMajorArray([o.x,o.y,0,-o.y,o.x,0,0,0,1],BGt),s=e.context.uniformState.inverseView,a=F.multiplyTransformation(n,s,HGt),c=F.getMatrix3(a,zGt);t.cylinderEcToRadialTangentUp=$.multiply(r,c,t.cylinderEcToRadialTangentUp)};Bu.prototype.convertLocalToShapeUvSpace=function(e,t){let n=Math.hypot(e.x,e.y),i=Math.atan2(e.y,e.x),o=e.z,{cylinderLocalToShapeUvScale:r,cylinderShapeUvAngleRangeOrigin:s}=this._shaderUniforms,a=this._localToShapeUvTranslate;return n=n*r.x+a.x,i=(i+Math.PI)/(2*Math.PI),i-=s,i=i-Math.floor(i),i=i*r.y+a.y,o=o*r.z+a.z,h.fromElements(n,i,o,t)};var uz=new h,nne=new h;Bu.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=h.fromElements(W.lerp(r.x,s.x,t*a),W.lerp(r.y,s.y,n*a),W.lerp(r.z,s.z,i*a),uz),d=h.fromElements(W.lerp(r.x,s.x,(t+1)*a),W.lerp(r.y,s.y,(n+1)*a),W.lerp(r.z,s.z,(i+1)*a),nne);return ine(c,d,this._shapeTransform,o)};var WEe=new h;Bu.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,WEe),s=h.multiplyByScalar(r,o,WEe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,uz),o,uz),c=h.add(a,s,nne),d=this._minBounds,u=this._maxBounds,m=h.fromElements(W.lerp(d.x,u.x,a.x),W.lerp(d.y,u.y,a.y),W.lerp(d.z,u.z,a.z),uz),p=h.fromElements(W.lerp(d.x,u.x,c.x),W.lerp(d.y,u.y,c.y),W.lerp(d.z,u.z,c.z),nne);return ine(m,p,this._shapeTransform,i)};Bu.DefaultMinBounds=Object.freeze(new h(0,-W.PI,-1));Bu.DefaultMaxBounds=Object.freeze(new h(1,+W.PI,1));var KGt=5,JGt=new Array(KGt),jGt=new h,QGt=new $,qGt=new F,$Gt=new F,eEt=new F,tne=new F,tEt=new h,nEt=new h,iEt=new h,FEe=new Array(8);for(let e=0;e<8;e++)FEe[e]=new h;function vEe(e,t,n){return Math.abs(ce.dot(e,t))<n}function oEt(e){let t=F.getColumn(e,0,tEt),n=F.getColumn(e,1,nEt),i=F.getColumn(e,2,iEt),o=W.EPSILON4;return vEe(t,n,o)&&vEe(n,i,o)}function rEt(e,t){let n=FEe;h.fromElements(-.5,-.5,-.5,n[0]),h.fromElements(-.5,-.5,.5,n[1]),h.fromElements(-.5,.5,-.5,n[2]),h.fromElements(-.5,.5,.5,n[3]),h.fromElements(.5,-.5,-.5,n[4]),h.fromElements(.5,-.5,.5,n[5]),h.fromElements(.5,.5,-.5,n[6]),h.fromElements(.5,.5,.5,n[7]);for(let i=0;i<8;++i)F.multiplyByPoint(e,n[i],n[i]);return en.fromPoints(n,t)}var sEt=new h;function ine(e,t,n,i){let o=e.x,r=t.x,s=e.y,a=t.y<s?t.y+W.TWO_PI:t.y,c=e.z,d=t.z,u=a-s,m=s+u*.5,p=JGt,b=0;p[b++]=s,p[b++]=a,p[b++]=m,u>W.PI&&(p[b++]=m-W.PI_OVER_TWO,p[b++]=m+W.PI_OVER_TWO);let f=Number.POSITIVE_INFINITY,y=Number.POSITIVE_INFINITY,_=Number.NEGATIVE_INFINITY,S=Number.NEGATIVE_INFINITY;for(let N=0;N<b;++N){let O=p[N]-m,M=Math.cos(O),D=Math.sin(O),w=M*o,z=D*o,K=M*r,ee=D*r;f=Math.min(f,w,K),y=Math.min(y,z,ee),_=Math.max(_,w,K),S=Math.max(S,z,ee)}let A=_-f,Z=S-y,R=d-c,G=(f+_)*.5,E=(y+S)*.5,v=(c+d)*.5,I=h.fromElements(G,E,v,jGt),X=$.fromRotationZ(m,QGt),Y=h.fromElements(A,Z,R,sEt),g=F.fromScale(Y,eEt),C=F.fromRotation(X,$Gt),V=F.fromTranslation(I,qGt),L=F.multiplyTransformation(C,F.multiplyTransformation(V,g,tne),tne),P=F.multiplyTransformation(n,L,tne);return oEt(P)?en.fromTransformation(P,i):rEt(P,i)}var bA=Bu;var Qdo=x(T(),1);function nh(){this._orientedBoundingBox=new en,this._boundingSphere=new ue,this._boundTransform=new F,this._shapeTransform=new F,this._rectangle=new se,this._minimumHeight=nh.DefaultMinBounds.z,this._maximumHeight=nh.DefaultMaxBounds.z,this._ellipsoid=new ie,this._translation=new h,this._rotation=new $,this._localToShapeUvTranslate=new h,this._shaderUniforms={cameraPositionCartographic:new h,ellipsoidEcToEastNorthUp:new $,ellipsoidRadii:new h,eccentricitySquared:0,evoluteScale:new k,ellipsoidCurvatureAtLatitude:new k,ellipsoidInverseRadiiSquared:new h,ellipsoidRenderLongitudeMinMax:new k,ellipsoidShapeUvLongitudeRangeOrigin:0,ellipsoidShapeUvLongitudeMinMaxMid:new h,ellipsoidLocalToShapeUvScale:new h,ellipsoidRenderLatitudeSinMinMax:new k,clipMinMaxHeight:new k},this._shaderDefines={ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LONGITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN:void 0},this._shaderMaximumIntersectionsLength=0}Object.defineProperties(nh.prototype,{orientedBoundingBox:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}},boundTransform:{get:function(){return this._boundTransform}},shapeTransform:{get:function(){return this._shapeTransform}},shaderUniforms:{get:function(){return this._shaderUniforms}},shaderDefines:{get:function(){return this._shaderDefines}},shaderMaximumIntersectionsLength:{get:function(){return this._shaderMaximumIntersectionsLength}}});var aEt=new h,cEt=new h,lEt=new h,dEt=new h,uEt=new h,mEt=new h,hEt=new h,fEt=new h,IEe=new h,PEe=new h,pEt=new se;nh.prototype.update=function(e,t,n,i,o){let{DefaultMinBounds:r,DefaultMaxBounds:s}=nh;i=i??r,o=o??s;let a=W.EPSILON10,c=W.EPSILON10,d=W.EPSILON10,u=W.EPSILON3,m=F.getScale(e,fEt),p=h.clone(r,aEt);p.z=-h.minimumComponent(m);let b=h.clamp(t,p,s,cEt),f=h.clamp(n,p,s,lEt),y=h.clamp(i,p,s,dEt),_=h.clamp(o,p,s,uEt),S=h.maximumByComponent(b,y,mEt),A=h.minimumByComponent(f,_,hEt),Z=h.add(m,h.fromElements(f.z,f.z,f.z,IEe),IEe),R=h.add(m,h.fromElements(A.z,A.z,A.z,PEe),PEe);if(S.y>A.y||S.y===s.y||A.y===r.y||S.z>A.z||W.equalsEpsilon(R,h.ZERO,void 0,a))return!1;this._rectangle=se.fromRadians(b.x,b.y,f.x,f.y),this._translation=F.getTranslation(e,this._translation),this._rotation=F.getRotation(e,this._rotation),this._ellipsoid=ie.fromCartesian3(m,this._ellipsoid),this._minimumHeight=b.z,this._maximumHeight=f.z;let G=se.fromRadians(S.x,S.y,A.x,A.y,pEt);this._orientedBoundingBox=one(G,S.z,A.z,this._ellipsoid,this._translation,this._rotation,this._orientedBoundingBox),this._shapeTransform=F.fromRotationTranslation(this._rotation,this._translation,this._shapeTransform),this._boundTransform=F.fromRotationTranslation(this._orientedBoundingBox.halfAxes,this._orientedBoundingBox.center,this._boundTransform),this._boundingSphere=ue.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere);let E=s.x-r.x,v=.5*E,I=A.x<S.x,X=A.x-S.x+I*E,Y=X<=c,g=X>=v-c&&X<E-c,C=X>c&&X<v-c,V=Y||g||C,L=f.x<b.x,P=f.x-b.x+L*E,N=P>v+c&&P<E-c,O=P>=v-c&&P<=v+c,M=P<v-c,D=N||O||M,w=A.y<-u,z=A.y>=-u&&A.y<=+u,K=A.y>+u&&A.y<s.y-d,ee=w||z||K,H=S.y>r.y+d&&S.y<-u,te=S.y>=-u&&S.y<=+u,q=S.y>+u,de=H||te||q,ye=ee||de,le=f.y-b.y,Ce=f.y<-u,ge=f.y>=-u&&f.y<=+u,Ee=f.y>+u&&f.y<s.y-d,Re=Ce||ge||Ee,Xe=b.y>r.y+d&&b.y<-u,we=b.y>=-u&&b.y<=+u,nt=b.y>+u,et=Re||(Xe||we||nt),Ie=this._shaderUniforms,Oe=this._shaderDefines;for(let Yn in Oe)Oe.hasOwnProperty(Yn)&&(Oe[Yn]=void 0);Ie.ellipsoidRadii=h.clone(Z,Ie.ellipsoidRadii);let{x:St,z:Et}=Ie.ellipsoidRadii,on=Et/St;Ie.eccentricitySquared=1-on*on,Ie.evoluteScale=k.fromElements((St*St-Et*Et)/St,(Et*Et-St*St)/Et,Ie.evoluteScale),Ie.ellipsoidInverseRadiiSquared=h.divideComponents(h.ONE,h.multiplyComponents(Ie.ellipsoidRadii,Ie.ellipsoidRadii,Ie.ellipsoidInverseRadiiSquared),Ie.ellipsoidInverseRadiiSquared);let Ot=0;Oe.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=Ot,Ot+=1,Oe.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=Ot,Ot+=1,Ie.clipMinMaxHeight=k.fromElements(S.z-f.z,A.z-f.z,Ie.clipMinMaxHeight);let gt=f.z-b.z,Wt=gt===0?0:1/gt;V&&(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,Oe.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=Ot,g?(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,Ot+=1):C?(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,Ot+=2):Y&&(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,Ot+=2),Ie.ellipsoidRenderLongitudeMinMax=k.fromElements(S.x,A.x,Ie.ellipsoidRenderLongitudeMinMax));let Cn=0,dt=1;if(D){Oe.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0;let Yn=(b.x-r.x)/E,$i=(f.x-r.x)/E,Ko=1-P/E,mo=($i+.5*Ko)%1;if(Ie.ellipsoidShapeUvLongitudeRangeOrigin=mo,P>c){Cn=E/P;let so=Yn-mo;dt=-Cn*(so-Math.floor(so))}}ye&&(de&&(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,Oe.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=Ot,H?(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,Ot+=1):te?(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,Ot+=1):q&&(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,Ot+=2)),ee&&(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,Oe.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=Ot,w?(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,Ot+=2):z?(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,Ot+=1):K&&(Oe.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,Ot+=1)),Ie.ellipsoidRenderLatitudeSinMinMax=k.fromElements(Math.sin(S.y),Math.sin(A.y),Ie.ellipsoidRenderLatitudeSinMinMax));let mt=0,Qn=1;return et&&(Oe.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,le>d&&(mt=(s.y-r.y)/le,Qn=(r.y-b.y)/le)),Ie.ellipsoidLocalToShapeUvScale=h.fromElements(Cn,mt,Wt,Ie.ellipsoidLocalToShapeUvScale),this._localToShapeUvTranslate=h.fromElements(dt,Qn,0,this._localToShapeUvTranslate),this._shaderMaximumIntersectionsLength=Ot,!0};var bEt=new fe,gEt=new h,yEt=new F,XEe=new $;nh.prototype.updateViewTransforms=function(e){let t=this._shaderUniforms,n=this._ellipsoid,i=e.camera.positionWC,o=n.cartesianToCartographic(i,bEt);h.fromElements(o.longitude,o.latitude,o.height,t.cameraPositionCartographic);let r=h.fromRadians(o.longitude,o.latitude,0,n,gEt);t.ellipsoidCurvatureAtLatitude=n.getLocalCurvature(r,t.ellipsoidCurvatureAtLatitude);let s=xt.eastNorthUpToFixedFrame(r,n,yEt),a=F.getRotation(s,XEe),c=e.context.uniformState.viewRotation,d=$.multiply(c,a,XEe);t.ellipsoidEcToEastNorthUp=$.transpose(d,t.ellipsoidEcToEastNorthUp)};var DEe=new se;nh.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=1/Math.pow(2,e),s=t*r,a=(t+1)*r,c=n*r,d=(n+1)*r,u=i*r,m=(i+1)*r,p=se.subsection(this._rectangle,s,c,a,d,DEe),b=W.lerp(this._minimumHeight,this._maximumHeight,u),f=W.lerp(this._minimumHeight,this._maximumHeight,m);return one(p,b,f,this._ellipsoid,this._translation,this._rotation,o)};var xEt=new k,TEt=new k,BM=new k,YEe=new k,NEe=new k,zM=new k;function _Et(e,t,n,i){let o=k.abs(e,xEt),r=k.fromElements(1/t.x,1/t.y,TEt),s=k.fromElements(Math.SQRT1_2,Math.SQRT1_2,BM),a=k.multiplyComponents(t,s,YEe),c=k.fromElements(n.x*s.x*s.x*s.x,n.y*s.y*s.y*s.y,NEe);for(let d=0;d<3;++d){let u=k.magnitude(k.subtract(a,c,zM)),m=k.normalize(k.subtract(o,c,zM),zM),p=k.multiplyByScalar(m,u,zM);s=k.multiplyComponents(k.add(p,c,BM),r,BM),s=k.normalize(k.clamp(s,k.ZERO,k.ONE,BM),BM),a=k.multiplyComponents(t,s,YEe),c=k.fromElements(n.x*s.x*s.x*s.x,n.y*s.y*s.y*s.y,NEe)}return h.fromElements(Math.sign(e.x)*a.x,Math.sign(e.y)*a.y,k.magnitude(k.subtract(a,c,zM)),i)}var SEt=new k,wEe=new k,AEt=new h,MEe=new k;nh.prototype.convertLocalToShapeUvSpace=function(e,t){let n=Math.atan2(e.y,e.x),{ellipsoidRadii:i,evoluteScale:o,ellipsoidInverseRadiiSquared:r,ellipsoidShapeUvLongitudeRangeOrigin:s,ellipsoidLocalToShapeUvScale:a}=this._shaderUniforms,c=this._localToShapeUvTranslate,d=Math.hypot(e.x,e.y),u=k.fromElements(d,e.z,wEe),m=_Et(u,k.fromElements(i.x,i.z,SEt),o,AEt),p=k.normalize(k.fromElements(m.x*r.x,m.y*r.z,MEe),MEe),b=Math.atan2(p.y,p.x),f=k.magnitude(u)<k.magnitude(m)?-1:1,y=k.subtract(u,m,wEe),_=f*k.magnitude(y),{ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:S,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:A}=this._shaderDefines;return n=(n+Math.PI)/(2*Math.PI),l(S)&&(n-=s,n=n-Math.floor(n),n=n*a.x+c.x),b=(b+Math.PI/2)/Math.PI,l(A)&&(b=b*a.y+c.y),_=1+_*a.z,h.fromElements(n,b,_,t)};var kEe=new h,UEe=new h,ZEt=new h;nh.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,kEe),s=h.multiplyByScalar(r,o,kEe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,UEe),o,UEe),c=h.add(a,s,ZEt),d=se.subsection(this._rectangle,a.x,a.y,c.x,c.y,DEe),u=W.lerp(this._minimumHeight,this._maximumHeight,a.z),m=W.lerp(this._minimumHeight,this._maximumHeight,c.z);return one(d,u,m,this._ellipsoid,this._translation,this._rotation,i)};function one(e,t,n,i,o,r,s){return s=en.fromRectangle(e,t,n,i,s),s.center=h.add(s.center,o,s.center),s.halfAxes=$.multiply(s.halfAxes,r,s.halfAxes),s}nh.DefaultMinBounds=Object.freeze(new h(-W.PI,-W.PI_OVER_TWO,-ie.WGS84.minimumRadius));nh.DefaultMaxBounds=Object.freeze(new h(W.PI,W.PI_OVER_TWO,10*ie.WGS84.maximumRadius));var gA=nh;var Dd={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};Dd.getMinBounds=function(e){switch(e){case Dd.BOX:return pA.DefaultMinBounds;case Dd.ELLIPSOID:return gA.DefaultMinBounds;case Dd.CYLINDER:return bA.DefaultMinBounds}};Dd.getMaxBounds=function(e){switch(e){case Dd.BOX:return pA.DefaultMaxBounds;case Dd.ELLIPSOID:return gA.DefaultMaxBounds;case Dd.CYLINDER:return bA.DefaultMaxBounds}};Dd.getShapeConstructor=function(e){switch(e){case Dd.BOX:return pA;case Dd.ELLIPSOID:return gA;case Dd.CYLINDER:return bA}};Object.freeze(Dd);var uc=Dd;var $uo=x(T(),1);var suo=x(T(),1);function Ff(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=l(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(Ff.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(l(e)){for(;this._length>e;)this.removeMinimum();this._array.length=e}this._maximumLength=e}},internalArray:{get:function(){return this._array}},comparator:{get:function(){return this._comparator}}});Ff.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,o=new Ff({comparator:t,maximumLength:e});o._length=i;for(let r=0;r<i;r++)o._array[r]=n[r];return o};Ff.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(l(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};Ff.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)OEe(this,t)};Ff.prototype.insert=function(e){let t,n=this._maximumLength;if(l(n)){if(n===0)return;if(this._length===n){let o=this._array[0];if(this._comparator(e,o)<=0)return e;t=this.removeMinimum()}}let i=this._length;return this._array[i]=e,this._length++,OEe(this,i),t};Ff.prototype.removeMinimum=function(){let e=this._length;if(e===0)return;this._length--;let t=this._array[0];return e>=2&&(this._array[0]=this._array[e-1],BEe(this,0)),this._array[e-1]=void 0,t};Ff.prototype.removeMaximum=function(){let e=this._length;if(e===0)return;this._length--;let t;if(e<=2)t=this._array[e-1];else{let n=rne(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&BEe(this,n)}return this._array[e-1]=void 0,t};Ff.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};Ff.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[rne(this,1,2)?1:2]};function mz(e,t,n){let i=e._array,o=i[t];i[t]=i[n],i[n]=o}function HM(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function rne(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function OEe(e,t){if(t===0)return;let n=Math.floor(W.log2(t+1))%2===0,i=Math.floor((t-1)/2),o=HM(e,t,i);for(o!==n&&(mz(e,t,i),t=i);t>=3;){let r=Math.floor((t-3)/4);if(HM(e,t,r)!==o)break;mz(e,t,r),t=r}}function BEe(e,t){let n=e._length,i=Math.floor(W.log2(t+1))%2===0,o;for(;(o=2*t+1)<n;){let r=o,s=o+1;if(s<n){HM(e,s,r)===i&&(r=s);let a=2*o+1,c=Math.max(Math.min(n-a,4),0);for(let d=0;d<c;d++){let u=a+d;HM(e,u,r)===i&&(r=u)}}if(HM(e,r,t)===i&&(mz(e,r,t),r!==o&&r!==s)){let a=Math.floor((r-1)/2);rne(e,r,a)===i&&mz(e,r,a)}t=r}}var Ag=Ff;var cuo=x(T(),1),sne=Object.freeze({UNLOADED:0,RECEIVING:1,PROCESSING:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function KM(e,t){this.spatialNode=e,this.keyframe=t,this.state=sne.UNLOADED,this.content=void 0,this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}KM.prototype.unload=function(){this.content=this.content&&this.content.destroy(),this.spatialNode=void 0,this.state=sne.UNLOADED,this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1};KM.priorityComparator=function(e,t){return e.priority-t.priority};KM.searchComparator=function(e,t){return e.keyframe-t.keyframe};KM.LoadState=sne;var Xo=KM;var Zuo=x(T(),1);function d0(e,t,n,i,o=134217728,r){let s=CEt(i),a=REt(n),c=n*It.getSizeInBytes(i),d=d0.get3DTextureDimension(t,c,o,r),u=h.divideComponents(d,t,new h);this.channelCount=n,this.componentType=i,this.textureMemoryByteLength=c*d.x*d.y*d.z,this.tileCounts=h.clone(u,new h),this.voxelCountPerTile=h.clone(t,new h),this.maximumTileCount=u.x*u.y*u.z,this.texture=new EN({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:d.x,height:d.y,depth:d.z,sampler:new Ht({wrapR:an.CLAMP_TO_EDGE,wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:Dt.LINEAR,magnificationFilter:qn.LINEAR})}),this.nodes=new Array(this.maximumTileCount);for(let m=0;m<this.maximumTileCount;m++)this.nodes[m]=new VEt(m);for(let m=0;m<this.maximumTileCount;m++){let p=this.nodes[m];p.previousNode=m>0?this.nodes[m-1]:void 0,p.nextNode=m<this.maximumTileCount-1?this.nodes[m+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0,this._nearestSampling=!1}Object.defineProperties(d0.prototype,{nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling!==e&&(e?this.texture.sampler=Ht.NEAREST:this.texture.sampler=new Ht({wrapR:an.CLAMP_TO_EDGE,wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:Dt.LINEAR,magnificationFilter:qn.LINEAR}),this._nearestSampling=e)}}});function CEt(e){if(e===It.FLOAT32||e===It.FLOAT64)return ze.FLOAT;if(e===It.UINT8)return ze.UNSIGNED_BYTE}function REt(e){switch(e){case 1:return Qe.RED;case 2:return Qe.RG;case 3:return Qe.RGB;case 4:return Qe.RGBA}}function VEt(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}d0.prototype.add=function(e){if(this.isFull())throw new Te("Trying to add when there are no empty spots");let t=this.emptyList;this.emptyList=this.emptyList.nextNode,l(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,l(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};d0.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new Te("Megatexture index out of bounds");let t=this.nodes[e];l(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),l(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,l(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};d0.prototype.isFull=function(){return this.emptyList===void 0};d0.get3DTextureDimension=function(e,t,n,i){let{maximum3DTextureSize:o}=Xt;if(h.maximumComponent(e)>o)throw new ae("The GL context does not support a 3D texture large enough to contain a tile with the given dimensions.");let r=t*e.x*e.y*e.z,s=Math.floor(n/r);if(s<1)throw new ae("Not enough texture memory available to create a megatexture with the given tile dimensions.");l(i)?i=Math.min(i,s):i=s;let a=Object.entries(e).sort((u,m)=>m[1]-u[1]),c=a.map(([u,m])=>Math.floor(o/m));for(let u=0;u<3;u++){let m=zEe(c);if(m<i)break;let p=c.slice();p.splice(u,1);let b=p[0]*p[1],f=m-i,y=Math.floor(f/b);c[u]-=y}zEe(c)>s&&(c[2]=Math.floor(s/(c[0]*c[1])));let d=new h;for(let u=0;u<3;u++){let[m,p]=a[u];d[m]=c[u]*p}return d};function zEe(e){return e.reduce((t,n)=>t*n)}d0.prototype.writeDataToTexture=function(e,t){let{tileCounts:n,voxelCountPerTile:i}=this,o={arrayBufferView:t,width:i.x,height:i.y,depth:i.z},r=n.x*n.y,s=Math.floor(e/r),a=e-s*r,c=Math.floor(a/n.x),d=a-c*n.x,u={source:o,xOffset:d*i.x,yOffset:c*i.y,zOffset:s*i.z};this.texture.copyFrom(u)};d0.prototype.isDestroyed=function(){return!1};d0.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),he(this)};var JM=d0;var Iuo=x(T(),1);function ih(e,t,n,i,o,r,s){this.children=void 0,this.parent=o,this.level=e,this.x=t,this.y=n,this.z=i,this.dimensions=h.clone(s),this.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new en,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(r)}var GEt=new h;ih.prototype.computeBoundingVolumes=function(e){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let t=$.getScale(this.orientedBoundingBox.halfAxes,GEt),n=2*h.maximumComponent(t);this.approximateVoxelSize=n/h.minimumComponent(this.dimensions)};ih.prototype.constructChildNodes=function(e){let{level:t,x:n,y:i,z:o}=this,r=n*2,s=i*2,a=o*2,c=s+1,d=r+1,u=a+1,m=t+1,p=[[m,r,s,a],[m,d,s,a],[m,r,c,a],[m,d,c,a],[m,r,s,u],[m,d,s,u],[m,r,c,u],[m,d,c,u]];this.children=p.map(([b,f,y,_])=>new ih(b,f,y,_,this,e,this.dimensions))};ih.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};ih.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,W.EPSILON7);let o=this.approximateVoxelSize,r=t*(o/i);this.screenSpaceError=r};var HEe={keyframe:0};function jM(e,t){return HEe.keyframe=e,xo(t,HEe,Xo.searchComparator)}ih.prototype.computeSurroundingRenderableKeyframeNodes=function(e){let t=this,n=t.level,i=Math.floor(e),o=Math.ceil(e),r,s,a=+Number.MAX_VALUE,c=+Number.MAX_VALUE;for(;l(t);){let{renderableKeyframeNodes:m}=t;if(m.length>=1){let p=EEt(i,m),b=m[p],f=o===i||i<b.keyframe?p:Math.min(p+1,m.length-1),y=m[f],_=i-b.keyframe,S=KEe(n-t.level,_);S<a&&(a=S,r=b);let A=y.keyframe-o,Z=KEe(n-t.level,A);if(Z<c&&(c=Z,s=y),_===0&&A===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=r,this.renderableKeyframeNodeNext=s,!l(r)||!l(s))return;let d=r.keyframe,u=s.keyframe;this.renderableKeyframeNodeLerp=d===u?0:W.clamp((e-d)/(u-d),0,1)};function EEt(e,t){let n=jM(e,t);return n<0?W.clamp(~n-1,0,t.length-1):n}function KEe(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}ih.prototype.isVisited=function(e){return this.visitedFrameNumber===e};ih.prototype.createKeyframeNode=function(e){let t=jM(e,this.keyframeNodes);if(t<0){t=~t;let n=new Xo(this,e);this.keyframeNodes.splice(t,0,n)}};ih.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=jM(n,this.keyframeNodes);if(i<0)throw new Te("Keyframe node does not exist.");if(this.keyframeNodes.splice(i,1),e.megatextureIndex!==-1){for(let r=0;r<t.length;r++)t[r].remove(e.megatextureIndex);let o=jM(n,this.renderableKeyframeNodes);if(o<0)throw new Te("Renderable keyframe node does not exist.");this.renderableKeyframeNodes.splice(o,1)}e.unload()};ih.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.megatextureIndex!==-1||e.content.metadata.length!==t.length)throw new Te("Keyframe node cannot be added to megatexture");let{metadata:n}=e.content;for(let r=0;r<t.length;r++){let s=t[r];e.megatextureIndex=s.add(n[r])}let i=this.renderableKeyframeNodes,o=jM(e.keyframe,i);if(o>=0)throw new Te("Keyframe already renderable");o=~o,i.splice(o,0,e)};ih.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return l(t)&&l(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var QM=ih;function kx(e,t,n,i){let{provider:o,dimensions:r,inputDimensions:s}=e,{types:a,componentTypes:c}=o;l(i)?i=Math.min(Math.max(0,i),512*1024*1024):i=128*1024*1024,this._primitive=e,this.textureMemoryByteLength=0,this.megatextures=new Array(a.length);let d=l(o.maximumTileCount)?o.maximumTileCount:l(o.availableLevels)?(8**o.availableLevels-1)/7:void 0;for(let S=0;S<a.length;S++){let A=a[S],Z=pt.getComponentCount(A),R=c[S];this.megatextures[S]=new JM(t,s,Z,R,i,d),this.textureMemoryByteLength+=this.megatextures[S].textureMemoryByteLength}let u=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._calculateStatistics=this._primitive._calculateStatistics??!1,this._frameNumber=0;let m=e._shape;this.rootNode=new QM(0,0,0,0,void 0,m,r),this._priorityQueue=new Ag({maximumLength:u,comparator:Xo.priorityComparator}),this._highPriorityKeyframeNodes=new Array(u),this._highPriorityKeyframeNodeCount=0,this._keyframeNodesInMegatexture=new Array(u),this._keyframeCount=n,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(n),this._initialTilesLoaded=!1;let p=this._binaryTreeKeyframeWeighting;p[0]=0,p[n-1]=0,ane(p,1,n-2,0);let b=9,f=2048,y=Math.floor(f/b),_=Math.ceil(u/y);this.internalNodeTexture=new Ft({context:t,pixelFormat:Qe.RGBA,pixelDatatype:ze.UNSIGNED_BYTE,flipY:!1,width:f,height:_,sampler:new Ht({minificationFilter:Dt.NEAREST,magnificationFilter:qn.NEAREST})}),this.internalNodeTilesPerRow=y,this.internalNodeTexelSizeUv=new k(1/f,1/_),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new k}kx.prototype.findKeyframeNode=function(e){return this._keyframeNodesInMegatexture.find(function(t){return t.megatextureIndex===e})};function ane(e,t,n,i){if(t>n)return;let o=Math.floor((t+n)/2);e[o]=i,ane(e,t,o-1,i+1),ane(e,o+1,n,i+1)}kx.simultaneousRequestCountMaximum=50;kx.prototype.update=function(e,t,n,i){let o=this._primitive,r=e.context,s=this.megatextures[0].maximumTileCount,a=this._keyframeCount,c=o._levelBlendFactor,d=c>0,u=a>1,m=(d?2:1)*(u?2:1);this._sampleCount=m;let p=m>=2;if(p&&!l(this.leafNodeTexture)){let Z=Math.floor(512),R=Math.ceil(s/Z);this.leafNodeTexture=new Ft({context:r,pixelFormat:Qe.RGBA,pixelDatatype:ze.UNSIGNED_BYTE,flipY:!1,width:1024,height:R,sampler:new Ht({minificationFilter:Dt.NEAREST,magnificationFilter:qn.NEAREST})}),this.leafNodeTexelSizeUv=k.fromElements(1/1024,1/R,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=Z}else!p&&l(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=W.clamp(t,0,a-1),n&&JEe(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let b=Ni();vEt(this,e),FEt(this,e);let f=Ni();NEt(this,m,c);let y=Ni(),_=o.loadProgress.numberOfListeners>0||o.allTilesLoaded.numberOfListeners>0||o.initialTilesLoaded.numberOfListeners>0;if(this._debugPrint||this._calculateStatistics||_){let S=f-b,A=y-f,Z=y-b;YEt(this,e,S,A,Z)}};kx.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};kx.prototype.isDestroyed=function(){return!1};kx.prototype.destroy=function(){let e=this.megatextures,t=e.length;for(let n=0;n<t;n++)e[n]=e[n]&&e[n].destroy();return this.textureMemoryByteLength=0,this.internalNodeTexture=this.internalNodeTexture&&this.internalNodeTexture.destroy(),this.leafNodeTexture=this.leafNodeTexture&&this.leafNodeTexture.destroy(),he(this)};function JEe(e,t){if(t.computeBoundingVolumes(e._primitive._shape),l(t.children))for(let n=0;n<8;n++){let i=t.children[n];JEe(e,i)}}function LEt(e,t){if(e._simultaneousRequestCount>=kx.simultaneousRequestCountMaximum)return;let i=e._primitive.provider,{keyframe:o,spatialNode:r}=t;if(l(i.availableLevels)&&r.level>=i.availableLevels)return;function s(u){e._simultaneousRequestCount--,t.content=u,t.state=l(u)?Xo.LoadState.PROCESSING:Xo.LoadState.UNAVAILABLE}function a(u){e._simultaneousRequestCount--,t.state=Xo.LoadState.FAILED,e._primitive.tileFailed.raiseEvent()}let c={tileLevel:r.level,tileX:r.x,tileY:r.y,tileZ:r.z,keyframe:o},d=i.requestData(c);l(d)&&(e._simultaneousRequestCount++,t.state=Xo.LoadState.RECEIVING,d.then(s).catch(a))}function WEt(e){return e/(1+e)}function vEt(e,t){let n=e._frameNumber,i=e._priorityQueue;i.reset(),jEe(e.rootNode,Us.MASK_INDETERMINATE,e,t);let o=e._highPriorityKeyframeNodes,r=0,s;for(;i.length>0;)s=i.removeMaximum(),s.highPriorityFrameNumber=n,o[r]=s,r++;e._highPriorityKeyframeNodeCount=r}function FEt(e,t){let n=e.megatextures[0],i=n.occupiedCount,o=e._keyframeNodesInMegatexture;o.length=i,o.sort(IEt);let r=e._highPriorityKeyframeNodes,s=e._highPriorityKeyframeNodeCount,a=0,c=0;for(let d=0;d<s;d++){let u=r[d];if(!(u.state===Xo.LoadState.LOADED||u.spatialNode===void 0)&&(u.state===Xo.LoadState.UNLOADED&&LEt(e,u),u.state===Xo.LoadState.PROCESSING)){let{content:m}=u;if(m.update(e._primitive,t),!m.ready)continue;if(!PEt(m.metadata,e)){u.content=void 0,u.state=Xo.LoadState.FAILED,e._primitive.tileFailed.raiseEvent();continue}let p=0;if(n.isFull()){p=i-1-a,a++;let b=o[p];e._primitive.tileUnload.raiseEvent(),b.spatialNode.destroyKeyframeNode(b,e.megatextures)}else p=i+c,c++;u.spatialNode.addKeyframeNodeToMegatextures(u,e.megatextures),u.state=Xo.LoadState.LOADED,o[p]=u,e._primitive.tileLoad.raiseEvent()}}}function IEt(e,t){return e.highPriorityFrameNumber===t.highPriorityFrameNumber?t.priority-e.priority:t.highPriorityFrameNumber-e.highPriorityFrameNumber}function PEt(e,t){let n=t._primitive.provider.types.length;if(!Array.isArray(e)||e.length!==n)return!1;let{megatextures:i}=t;for(let o=0;o<n;o++){let{voxelCountPerTile:r,channelCount:s}=i[o],{x:a,y:c,z:d}=r,u=a*c*d,m=e[o],p=u*s;if(m.length!==p)return!1}return!0}function jEe(e,t,n,i){let{camera:o,context:r,pixelRatio:s,frameNumber:a}=i,{positionWC:c,frustum:d}=o,m=r.drawingBufferHeight/s/d.sseDenominator;if(e.computeScreenSpaceError(c,m),t=e.visibility(i,t),t===Us.MASK_OUTSIDE)return;e.visitedFrameNumber=a;let p=n._primitive,b=p._shape,f=p.screenSpaceError,y=n._priorityQueue,_=n._keyframeCount,S=W.clamp(Math.floor(n._keyframeLocation),0,_-2),A=S+1;if(_===1)e.createKeyframeNode(0);else if(e.keyframeNodes.length!==_)for(let v=0;v<_;v++)e.createKeyframeNode(v);let{screenSpaceError:Z,keyframeNodes:R}=e,G=WEt(Z),E=!1;for(let v=0;v<R.length;v++){let I=R[v];I.priority=10*G+XEt(S,I.keyframe,A,n),I.state!==Xo.LoadState.UNAVAILABLE&&I.state!==Xo.LoadState.FAILED&&I.priority!==-Number.MAX_VALUE&&y.insert(I),I.state===Xo.LoadState.LOADED&&(E=!0)}if(Z<f||!E){e.children=void 0;return}l(e.children)||e.constructChildNodes(b);for(let v=0;v<8;v++){let I=e.children[v];jEe(I,t,n,i)}}function XEt(e,t,n,i){let o=Math.min(Math.abs(t-e),Math.abs(t-n)),r=Math.max(e,i._keyframeCount-n-1,1),s=Math.pow(1-o/r,4),a=Math.exp(-i._binaryTreeKeyframeWeighting[t]);return W.lerp(a,s,.15+.85*s)}function YEt(e,t,n,i,o){let r=e._keyframeCount,s=e.rootNode,a=Object.keys(Xo.LoadState).length,c=new Array(a),d=new Array(a),u=0;for(let E=0;E<a;E++){let v=new Array(r).fill(0);c[E]=v,d[E]=0}function m(E){let v=E.keyframeNodes;for(let I=0;I<v.length;I++){let X=v[I],Y=X.keyframe,g=X.state;c[g][Y]+=1,d[g]+=1,u++}if(l(E.children))for(let I=0;I<8;I++){let X=E.children[I];m(X)}}m(s),e._primitive.statistics.numberOfTilesWithContentReady=d[Xo.LoadState.LOADED],e._primitive.statistics.visited=u;let p=d[Xo.LoadState.RECEIVING],b=d[Xo.LoadState.PROCESSING],f=p!==e._primitive.statistics.numberOfPendingRequests||b!==e._primitive.statistics.numberOfTilesProcessing;if(f&&t.afterRender.push(function(){return e._primitive.loadProgress.raiseEvent(p,b),!0}),e._primitive.statistics.numberOfPendingRequests=p,e._primitive.statistics.numberOfTilesProcessing=b,f&&(p===0&&b===0)&&(t.afterRender.push(function(){return e._primitive.allTilesLoaded.raiseEvent(),!0}),e._initialTilesLoaded||(e._initialTilesLoaded=!0,t.afterRender.push(function(){return e._primitive.initialTilesLoaded.raiseEvent(),!0}))),!e._debugPrint)return;let _=`KEYFRAMES: ${c[Xo.LoadState.LOADED]}`,S=`UNLOADED: ${d[Xo.LoadState.UNLOADED]} | RECEIVING: ${d[Xo.LoadState.RECEIVING]} | PROCESSING: ${d[Xo.LoadState.PROCESSING]} | LOADED: ${d[Xo.LoadState.LOADED]} | FAILED: ${d[Xo.LoadState.FAILED]} | UNAVAILABLE: ${d[Xo.LoadState.UNAVAILABLE]} | TOTAL: ${u}`,A=Math.round(n*100)/100,Z=Math.round(i*100)/100,R=Math.round(o*100)/100,G=`LOAD: ${A} | OCT: ${Z} | ALL: ${R}`;console.log(`${_} || ${S} || ${G}`)}var hz={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function NEt(e,t,n){let i=e._primitive._screenSpaceError,o=e._keyframeLocation,r=e._frameNumber,s=t>=2,a=0,c=0,d=[],u=[];function m(b,f,y,_,S){let A=!1;if(l(b.children))for(let Z=0;Z<8;Z++){let R=b.children[Z];R.computeSurroundingRenderableKeyframeNodes(o),R.isRenderable(r)&&(A=!0)}if(A){d[S]=hz.INTERNAL<<16|f,d[y]=_,a++,_=f,S=_*9+1;for(let Z=0;Z<8;Z++){let R=b.children[Z];f=a,y=f*9+0,m(R,f,y,_,S+Z)}}else{if(e._primitive.tileVisible.raiseEvent(),s){let Z=c*5,R=b.renderableKeyframeNodePrevious,G=b.level-R.spatialNode.level,E=R.spatialNode.parent,v=l(E)?E.renderableKeyframeNodePrevious:R,I=wEt(b,i,n),X=G,Y=1,g=R.megatextureIndex,C=v.megatextureIndex;u[Z+0]=I,u[Z+1]=X,u[Z+2]=Y,u[Z+3]=g,u[Z+4]=C,d[S]=hz.LEAF<<16|c}else{let Z=b.renderableKeyframeNodePrevious,G=b.level-Z.spatialNode.level===0?hz.LEAF:hz.PACKED_LEAF_FROM_PARENT;d[S]=G<<16|Z.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(o),p.isRenderable(r)&&m(p,0,0,0,0),MEt(d,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&kEt(u,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function wEt(e,t,n){if(e.parent===void 0)return 0;let i=e.screenSpaceError,o=e.parent.screenSpaceError,s=((t-i)/(o-i)+n-1)/n;return W.clamp(s,0,1)}function MEt(e,t,n,i){let o=Qe.componentsLength(i.pixelFormat),r=Math.ceil(e.length/t),s=Math.max(1,t*Math.min(r,n)),a=Math.max(1,Math.ceil(r/n)),c=new Uint8Array(s*a*o);for(let m=0;m<e.length;m++){let p=e[m],b=m*o;for(let f=0;f<o;f++)c[b+f]=p>>>f*8&255}let u={source:{arrayBufferView:c,width:s,height:a},xOffset:0,yOffset:0};i.copyFrom(u)}function kEt(e,t,n,i){let o=Qe.componentsLength(i.pixelFormat),r=5,s=Math.ceil(e.length/r),a=Math.max(1,t*Math.min(s,n)),c=Math.max(1,Math.ceil(s/n)),d=new Uint8Array(a*c*o);for(let p=0;p<s;p++){let b=e[p*r+0],f=e[p*r+1],y=e[p*r+2],_=e[p*r+3],S=e[p*r+4],A=W.clamp(Math.floor(65536*b),0,65535);d[p*8+0]=A>>>0&255,d[p*8+1]=A>>>8&255,d[p*8+2]=f&255,d[p*8+3]=y&255,d[p*8+4]=_>>>0&255,d[p*8+5]=_>>>8&255,d[p*8+6]=S>>>0&255,d[p*8+7]=S>>>8&255}let m={source:{arrayBufferView:d,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(m)}var qM=kx;function u0(e){e=e??B.EMPTY_OBJECT;let{provider:t=u0.DefaultProvider,modelMatrix:n=F.IDENTITY,customShader:i=D1(t),clock:o,calculateStatistics:r=!1}=e;this._ready=!1,this._provider=t,this._traversal=void 0,this._statistics=new nf,this._calculateStatistics=r;let{shape:s,minBounds:a=uc.getMinBounds(s),maxBounds:c=uc.getMaxBounds(s),dimensions:d,paddingBefore:u=h.ZERO,paddingAfter:m=h.ZERO,metadataOrder:p,availableLevels:b=1}=t;this._dimensions=h.clone(d),this._paddingBefore=h.clone(u),this._paddingAfter=h.clone(m),this._inputDimensions=UEt(d,u,m,p),this._availableLevels=b,this._minBounds=a.clone(),this._minBoundsOld=new h,this._maxBounds=c.clone(),this._maxBoundsOld=new h,this._minClippingBounds=a.clone(),this._minClippingBoundsOld=new h,this._maxClippingBounds=c.clone(),this._maxClippingBoundsOld=new h,this._verticalExaggeration=1,this._verticalExaggerationRelativeHeight=0,this._clippingPlanes=void 0,this._clippingPlanesState=0,this._clippingPlanesEnabled=!1,this._modelMatrix=F.clone(n),this._modelMatrixOld=F.clone(this._modelMatrix),this._customShader=i??u0.DefaultCustomShader,this._customShaderCompilationEvent=new Se,this._shaderDirty=!0,this._drawCommand=void 0,this._drawCommandPick=void 0,this._pickId=void 0,this._clock=o,this._transformPositionLocalToWorld=new F,this._transformPositionWorldToLocal=new F,this._transformPlaneLocalToView=new F,this._transformDirectionWorldToLocal=new $,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new Kh,this._debugDraw=!1,this._disableRender=!1,this._disableUpdate=!1;let f=uc.getShapeConstructor(s);this._shape=new f,qEe(this),this._shapeVisible=$Ee(this),this._uniforms={octreeInternalNodeTexture:void 0,octreeInternalNodeTilesPerRow:0,octreeInternalNodeTexelSizeUv:new k,octreeLeafNodeTexture:void 0,octreeLeafNodeTilesPerRow:0,octreeLeafNodeTexelSizeUv:new k,megatextureTextures:[],megatextureTileCounts:new h,dimensions:this._dimensions,inputDimensions:this._inputDimensions,paddingBefore:this._paddingBefore,paddingAfter:this._paddingAfter,transformPositionViewToLocal:new F,transformDirectionViewToLocal:new $,cameraPositionLocal:new h,cameraDirectionLocal:new h,cameraTileCoordinates:new ce,cameraTileUv:new h,ndcSpaceAxisAlignedBoundingBox:new ce,clippingPlanesTexture:void 0,clippingPlanesMatrix:new F,renderBoundPlanesTexture:void 0,stepSize:this._stepSizeMultiplier,pickColor:new U},this._shapeDefinesOld={},this._uniformMap={};let y=this._uniforms,_=this._uniformMap;for(let S in y)if(y.hasOwnProperty(S)){let A=`u_${S}`;_[A]=function(){return y[S]}}DEt(this,this._shape),this.tileLoad=new Se,this.tileVisible=new Se,this.tileFailed=new Se,this.tileUnload=new Se,this.loadProgress=new Se,this.allTilesLoaded=new Se,this.initialTilesLoaded=new Se}function UEt(e,t,n,i){let o=h.add(e,t,new h);if(h.add(o,n,o),i===l0.Y_UP){let r=o.y;o.y=o.z,o.z=r}return o}function DEt(e,t){let n=e._uniformMap,{shaderUniforms:i,shaderDefines:o}=t;for(let r in i)if(i.hasOwnProperty(r)){let s=`u_${r}`;n[s]=function(){return i[r]}}e._shapeDefinesOld=Je(o,!0)}Object.defineProperties(u0.prototype,{ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}},boundingSphere:{get:function(){return this._shape.boundingSphere}},orientedBoundingBox:{get:function(){return this._shape.orientedBoundingBox}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix)}},shape:{get:function(){return this._provider.shape}},dimensions:{get:function(){return this._dimensions}},inputDimensions:{get:function(){return this._inputDimensions}},paddingBefore:{get:function(){return this._paddingBefore}},paddingAfter:{get:function(){return this._paddingAfter}},minimumValues:{get:function(){return this._provider.minimumValues}},maximumValues:{get:function(){return this._provider.maximumValues}},show:{get:function(){return!this._disableRender},set:function(e){this._disableRender=!e}},disableUpdate:{get:function(){return this._disableUpdate},set:function(e){this._disableUpdate=e}},debugDraw:{get:function(){return this._debugDraw},set:function(e){this._debugDraw=e}},depthTest:{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._shaderDirty=!0)}},nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling=e}},levelBlendFactor:{get:function(){return this._levelBlendFactor},set:function(e){this._levelBlendFactor=W.clamp(e,0,1)}},screenSpaceError:{get:function(){return this._screenSpaceError},set:function(e){this._screenSpaceError=e}},stepSize:{get:function(){return this._stepSizeMultiplier},set:function(e){this._stepSizeMultiplier=e}},minBounds:{get:function(){return this._minBounds},set:function(e){this._minBounds=h.clone(e,this._minBounds)}},maxBounds:{get:function(){return this._maxBounds},set:function(e){this._maxBounds=h.clone(e,this._maxBounds)}},minClippingBounds:{get:function(){return this._minClippingBounds},set:function(e){this._minClippingBounds=h.clone(e,this._minClippingBounds)}},maxClippingBounds:{get:function(){return this._maxClippingBounds},set:function(e){this._maxClippingBounds=h.clone(e,this._maxClippingBounds)}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){ss.setOwner(e,this,"_clippingPlanes")}},customShader:{get:function(){return this._customShader},set:function(e){if(e===this._customShader)return;let t=this._uniformMap,i=this._customShader.uniformMap;for(let o in i)i.hasOwnProperty(o)&&delete t[o];if(l(e))this._customShader=e;else{let o=D1(this._provider);this._customShader=o??u0.DefaultCustomShader}this._shaderDirty=!0}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}},statistics:{get:function(){return this._statistics}}});var OEt=new ce,BEt=new ce,zEt=new F,HEt=new F,KEt=new h,JEt=new ce;u0.prototype.update=function(e){let t=this._provider,n=this._uniforms;this._customShader.update(e);let i=e.context;if(!this._ready){nLt(this,t,i),e.afterRender.push(()=>(this._ready=!0,!0));return}let o=qEe(this),r=tLt(this,e);if((o||r)&&(this._shapeVisible=$Ee(this),mLt(this)&&(this._shaderDirty=!0)),!this._shapeVisible)return;this._shape.updateViewTransforms(e);let s=hLt(t.timeIntervalCollection,this._clock),a=this._traversal,c=a._sampleCount;if(a.update(e,s,o,this._disableUpdate),c!==a._sampleCount&&(this._shaderDirty=!0),!a.isRenderable(a.rootNode)||(this._debugDraw&&_Lt(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),fLt(this,e)&&(this._shaderDirty=!0);let u=a.leafNodeTexture;l(u)&&(n.octreeLeafNodeTexture=a.leafNodeTexture,n.octreeLeafNodeTexelSizeUv=k.clone(a.leafNodeTexelSizeUv,n.octreeLeafNodeTexelSizeUv),n.octreeLeafNodeTilesPerRow=a.leafNodeTilesPerRow),this._shaderDirty&&(OM(this,i),this._shaderDirty=!1);let m=i.uniformState.viewProjection,{orientedBoundingBox:p}=this._shape,b=gLt(p,m,BEt);if(b.x===1||b.y===1||b.z===-1||b.w===-1)return;n.ndcSpaceAxisAlignedBoundingBox=ce.clone(b,n.ndcSpaceAxisAlignedBoundingBox);let y=i.uniformState.inverseView,_=F.multiplyTransformation(this._transformPositionWorldToLocal,y,n.transformPositionViewToLocal);this._transformPlaneLocalToView=F.transpose(_,this._transformPlaneLocalToView);let S=i.uniformState.inverseViewRotation;n.transformDirectionViewToLocal=$.multiply(this._transformDirectionWorldToLocal,S,n.transformDirectionViewToLocal),n.cameraPositionLocal=F.multiplyByPoint(this._transformPositionWorldToLocal,e.camera.positionWC,n.cameraPositionLocal),n.cameraDirectionLocal=$.multiplyByVector(this._transformDirectionWorldToLocal,e.camera.directionWC,n.cameraDirectionLocal);let A=qEt(this,n.cameraPositionLocal,JEt);n.cameraTileCoordinates=ce.fromElements(Math.floor(A.x),Math.floor(A.y),Math.floor(A.z),A.w,n.cameraTileCoordinates),n.cameraTileUv=h.fromElements(A.x-Math.floor(A.x),A.y-Math.floor(A.y),A.z-Math.floor(A.z),n.cameraTileUv),n.stepSize=this._stepSizeMultiplier,jEt(this),QEt(this,e);let Z=e.passes.pick?this._drawCommandPick:e.passes.pickVoxel?this._drawCommandPickVoxel:this._drawCommand;Z.boundingVolume=this._shape.boundingSphere,e.commandList.push(Z)};function jEt(e){let{megatextures:t}=e._traversal;for(let n=0;n<t.length;++n)t[n].nearestSampling=e._nearestSampling}function QEt(e,t){let n=e._uniforms,{renderBoundPlanes:i}=e._shape;l(i)&&(i.update(t,e._transformPlaneLocalToView),n.renderBoundPlanesTexture=i.texture)}function qEt(e,t,n){let i=e._shape.convertLocalToShapeUvSpace(t,KEt),o=e._availableLevels,r=2**(o-1);return ce.fromElements(i.x*r,i.y*r,i.z*r,o-1,n)}var $Et=new h,cne=new h,eLt=new fe;function tLt(e,t){let{verticalExaggeration:n,verticalExaggerationRelativeHeight:i}=t;return e._verticalExaggeration===n&&e._verticalExaggerationRelativeHeight===i?!1:(e._verticalExaggeration=n,e._verticalExaggerationRelativeHeight=i,!0)}function nLt(e,t,n){let i=e._uniforms;e._pickId=n.createPickId({primitive:e}),i.pickColor=U.clone(e._pickId.color,i.pickColor);let o=t.keyframeCount??1;e._traversal=new qM(e,n,o),e.statistics.texturesByteLength=e._traversal.textureMemoryByteLength,uLt(e._traversal,i)}function qEe(e){return $M(e,"_modelMatrix","_modelMatrixOld")+$M(e,"_minBounds","_minBoundsOld")+$M(e,"_maxBounds","_maxBoundsOld")+$M(e,"_minClippingBounds","_minClippingBoundsOld")+$M(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function $M(e,t,n){let i=e[t],o=e[n],r=!i.equals(o);return r&&i.clone(o),r?1:0}var iLt=new h,oLt=new h,rLt=new h,sLt=new h,aLt=new F,cLt=new F;function $Ee(e){let t=e._verticalExaggeration,n=e._verticalExaggerationRelativeHeight,i=h.clone(e._minBounds,iLt),o=h.clone(e._maxBounds,oLt),r=h.clone(e._minClippingBounds,rLt),s=h.clone(e._maxClippingBounds,sLt),a=F.clone(e._modelMatrix,aLt);if(e.shape===uc.ELLIPSOID)i.z=co.getHeight(e._minBounds.z,t,n),o.z=co.getHeight(e._maxBounds.z,t,n),r.z=co.getHeight(e._minClippingBounds.z,t,n),s.z=co.getHeight(e._maxClippingBounds.z,t,n);else{let f=h.fromElements(1,1,t,$Et);F.multiplyByScale(a,f,a),F.multiplyByTranslation(a,dLt(e),a)}let c=e._provider,d=c.shapeTransform??F.IDENTITY,u=c.globalTransform??F.IDENTITY,m=F.multiplyTransformation(u,a,cLt);F.multiplyTransformation(m,d,m);let p=e._shape;return p.update(m,i,o,r,s)?(e._transformPositionLocalToWorld=F.clone(p.shapeTransform,e._transformPositionLocalToWorld),e._transformPositionWorldToLocal=F.inverse(e._transformPositionLocalToWorld,e._transformPositionWorldToLocal),e._transformDirectionWorldToLocal=F.getMatrix3(e._transformPositionWorldToLocal,e._transformDirectionWorldToLocal),!0):!1}var lLt=new h;function dLt(e){let t=e._verticalExaggeration,n=e._verticalExaggerationRelativeHeight,{shapeTransform:i=F.IDENTITY,globalTransform:o=F.IDENTITY}=e._provider,r=F.getTranslation(i,cne),s=F.multiplyByPoint(e._modelMatrix,r,cne),a=F.multiplyByPoint(o,s,cne),d=ie.WGS84.cartesianToCartographic(a,eLt),u=0;l(d)&&(u=d.height);let m=co.getHeight(u,t,n);return h.fromElements(0,0,(m-u)/t,lLt)}function uLt(e,t){t.octreeInternalNodeTexture=e.internalNodeTexture,t.octreeInternalNodeTexelSizeUv=k.clone(e.internalNodeTexelSizeUv,t.octreeInternalNodeTexelSizeUv),t.octreeInternalNodeTilesPerRow=e.internalNodeTilesPerRow;let{megatextures:n}=e,i=n[0];t.megatextureTextures=new Array(n.length);for(let o=0;o<n.length;o++)t.megatextureTextures[o]=n[o].texture;t.megatextureTileCounts=h.clone(i.tileCounts,t.megatextureTileCounts)}function mLt(e){let{shaderDefines:t}=e._shape,n=Object.keys(t).some(i=>t[i]!==e._shapeDefinesOld[i]);return n&&(e._shapeDefinesOld=Je(t,!0)),n}function hLt(e,t){if(!l(e)||!l(t))return 0;let n=t.currentTime,i,o=e.indexOf(n);o>=0?i=e.get(o):(o=~o,o===e.length?(o=e.length-1,i=e.get(o),n=i.stop):(i=e.get(o),n=i.start));let r=Q.secondsDifference(i.stop,i.start),a=Q.secondsDifference(n,i.start)/r;return o+a}function fLt(e,t){let n=e.clippingPlanes;if(!l(n))return!1;n.update(t);let{clippingPlanesState:i,enabled:o}=n;if(o){let r=e._uniforms;r.clippingPlanesTexture=n.texture,r.clippingPlanesMatrix=F.transpose(F.multiplyTransformation(F.inverse(n.modelMatrix,r.clippingPlanesMatrix),e._transformPositionLocalToWorld,r.clippingPlanesMatrix),r.clippingPlanesMatrix)}return e._clippingPlanesState===i&&e._clippingPlanesEnabled===o?!1:(e._clippingPlanesState=i,e._clippingPlanesEnabled=o,!0)}u0.prototype.isDestroyed=function(){return!1};u0.prototype.destroy=function(){let e=this._drawCommand;l(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return l(t)&&(t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()),this._pickId=this._pickId&&this._pickId.destroy(),this._traversal=this._traversal&&this._traversal.destroy(),this.statistics.texturesByteLength=0,this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),he(this)};var QEe=new Array(new ce(-1,-1,-1,1),new ce(1,-1,-1,1),new ce(-1,1,-1,1),new ce(1,1,-1,1),new ce(-1,-1,1,1),new ce(1,-1,1,1),new ce(-1,1,1,1),new ce(1,1,1,1)),pLt=new Array(1,2,4,0,3,5,0,3,6,1,2,7,0,5,6,1,4,7,2,4,7,3,5,6),bLt=new Array(new ce,new ce,new ce,new ce,new ce,new ce,new ce,new ce);function gLt(e,t,n){let i=F.fromRotationTranslation(e.halfAxes,e.center,zEt),o=F.multiply(t,i,HEt),r=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,d,u=bLt,m=QEe.length;for(d=0;d<m;d++)F.multiplyByVector(o,QEe[d],u[d]);for(d=0;d<m;d++){let p=u[d];if(p.z>=-p.w){let b=p.x/p.w,f=p.y/p.w;r=Math.min(r,b),s=Math.max(s,b),a=Math.min(a,f),c=Math.max(c,f)}else for(let b=0;b<3;b++){let f=pLt[d*3+b],y=u[f];if(y.z>=-y.w){let _=p.z+p.w,S=y.z+y.w,A=_/(_-S),Z=ce.lerp(p,y,A,OEt),R=Z.x/Z.w,G=Z.y/Z.w;r=Math.min(r,R),s=Math.max(s,R),a=Math.min(a,G),c=Math.max(c,G)}}}return r=W.clamp(r,-1,1),a=W.clamp(a,-1,1),s=W.clamp(s,-1,1),c=W.clamp(c,-1,1),n=ce.fromElements(r,a,s,c,n),n}var lne=3e7,yLt=new h(lne,0,0),xLt=new h(0,lne,0),TLt=new h(0,0,lne);function _Lt(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function o(c,d,u,m){i.add({positions:[c,d],width:m,material:Di.fromType("Color",{color:u})})}function r(c,d,u){let m=c.computeCorners();o(m[0],m[1],d,u),o(m[2],m[3],d,u),o(m[4],m[5],d,u),o(m[6],m[7],d,u),o(m[0],m[2],d,u),o(m[4],m[6],d,u),o(m[1],m[3],d,u),o(m[5],m[7],d,u),o(m[0],m[4],d,u),o(m[2],m[6],d,u),o(m[1],m[5],d,u),o(m[3],m[7],d,u)}function s(c){if(!n.isRenderable(c))return;let d=c.level,m=Math.max(1,5/Math.pow(2,d)),b=[U.RED,U.LIME,U.BLUE][d%3];if(r(c.orientedBoundingBox,b,m),l(c.children))for(let f=0;f<8;f++)s(c.children[f])}r(e._shape.orientedBoundingBox,U.WHITE,5),s(n.rootNode);let a=10;o(h.ZERO,yLt,U.RED,a),o(h.ZERO,xLt,U.LIME,a),o(h.ZERO,TLt,U.BLUE,a),i.update(t)}u0.DefaultCustomShader=new c0({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) +{ + vec3 voxelNormal = fsInput.attributes.normalEC; + float diffuse = max(0.0, dot(voxelNormal, czm_lightDirectionEC)); + float lighting = 0.5 + 0.5 * diffuse; + material.diffuse = vec3(lighting); + material.alpha = 1.0; +}`});function eLe(){this.shape=uc.BOX,this.dimensions=new h(1,1,1),this.names=["data"],this.types=[pt.SCALAR],this.componentTypes=[It.FLOAT32],this.maximumTileCount=1}eLe.prototype.requestData=function(e){if((l(e)?e.tileLevel??0:0)>=1)return;let n=new fA({metadata:[new Float32Array(1)]});return Promise.resolve(n)};u0.DefaultProvider=new eLe;var Ux=u0;var Fmo=x(T(),1);function SLt(e,t,n,i){if(!l(e)||l(t)&&e.id!==t)return;let r=(e.classes||{})[n];if(!l(r))return;let a=(r.properties||{})[i];if(l(a))return a}var ek=SLt;var Pmo=x(T(),1);function ALt(e,t,n,i,o){this.schemaId=e,this.className=t,this.propertyName=n,this.classProperty=i,this.metadataProperty=o}var tk=ALt;var Nmo=x(T(),1);function ZLt(e,t,n){if(!l(e))return;let i=e.propertyTextures;for(let o of i)if(o.class.id===t){let a=o.properties[n];if(l(a))return a}}var nk=ZLt;var pz=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function _i(e){e=e??B.EMPTY_OBJECT;let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=e.contextOptions instanceof VN;if(o)this._context=e.contextOptions.createSceneContext(t);else{let d=Je(e.contextOptions);this._context=new wS(t,d)}let r=this._context,s=l(n);s||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",t.parentNode.appendChild(n)),l(i)||(i=t.parentNode),this._id=zn(),this._jobScheduler=new Aw,this._frameState=new _w(r,new dw(n,"\u2022",i),this._jobScheduler),this._frameState.scene3DOnly=e.scene3DOnly??!1,this._removeCreditContainer=!s,this._creditContainer=n,this._canvas=t,this._computeEngine=new _N(r),this._ellipsoid=e.ellipsoid??ie.default,this._globe=void 0,this._globeTranslucencyState=new Sw,this._primitives=new Jl({countReferences:o}),this._groundPrimitives=new Jl({countReferences:o}),this._globeHeight=void 0,this._globeHeightDirty=!0,this._cameraUnderground=!1,this._removeUpdateHeightCallback=void 0,this._logDepthBuffer=_i.defaultLogDepthBuffer&&r.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new lA,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=e.orderIndependentTranslucency??!0,this._executeOITFunction=void 0,this._depthPlane=new yw(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new mi({color:new U,stencil:0,owner:this}),this._depthClearCommand=new mi({depth:1,owner:this}),this._stencilClearCommand=new mi({stencil:0}),this._classificationStencilClearCommand=new mi({stencil:0,renderState:Be.fromCache({stencilMask:Kt.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new mM(this),this._preUpdate=new Se,this._postUpdate=new Se,this._renderError=new Se,this._preRender=new Se,this._postRender=new Se,this._minimumDisableDepthTestDistance=0,this._debugInspector=new _M,this._msaaSamples=e.msaaSamples??4,this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new Se,this.morphComplete=new Se,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=U.clone(U.BLACK),this._mode=re.SCENE3D,this._mapProjection=l(e.mapProjection)?e.mapProjection:new ki(this._ellipsoid),this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.atmosphere=new u_,this.fog=new Tw,this.fog.enabled=ie.WGS84.equals(this._ellipsoid),ie.WGS84.equals(this._ellipsoid)||(Ao.DEFAULT_VIEW_RECTANGLE=se.fromDegrees(-45,-45,45,45)),this._shadowMapCamera=new Ao(this),this.shadowMap=new bg({context:r,lightCamera:this._shadowMapCamera,enabled:e.shadows??!1}),this.invertClassification=!1,this.invertClassificationColor=U.clone(U.WHITE),this._actualInvertClassificationColor=U.clone(this._invertClassificationColor),this._invertClassification=new Y1,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new lM,this._brdfLutGenerator=new ow,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new bM(this),this._cameraUnderground=!1,this._mapMode2D=e.mapMode2D??ed.INFINITE_SCROLL,this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=e.requestRenderMode??!1,this._renderRequested=!0,this.maximumRenderTimeChange=e.maximumRenderTimeChange??0,this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=Nc.requestCompletedEvent.addEventListener(pz(this)),this._removeTaskProcessorListenerCallback=Hn.taskCompletedEvent.addEventListener(pz(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new it(0,0,r.drawingBufferWidth,r.drawingBufferHeight),c=new Ao(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new Ao(this),this.preloadFlightCullingVolume=void 0,this._picking=new Mw(this),this._defaultView=new tA(this,c,a),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!1,this.gamma=2.2,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentCubeMap=void 0,this.light=new dg,this._enableEdgeVisibility=!1,sLe(this,0,Q.now()),this.updateFrameState(),this.initializeFrame()}_i.defaultLogDepthBuffer=!0;function CLt(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];l(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(pz(e))),n.push(t.terrainProviderChanged.addEventListener(pz(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(_i.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return Xt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return Xt.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},specularEnvironmentMapsSupported:{get:function(){return Vh.isSupported(this._context)}},ellipsoid:{get:function(){return this._ellipsoid}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,CLt(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},view:{get:function(){return this._view},set:function(e){this._view=e}},defaultView:{get:function(){return this._defaultView}},picking:{get:function(){return this._picking}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},jobScheduler:{get:function(){return this._jobScheduler}},frameState:{get:function(){return this._frameState}},environmentState:{get:function(){return this._environmentState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(l(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(l(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),l(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(l(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===re.SCENE2D?this.morphTo2D(0):e===re.SCENE3D?this.morphTo3D(0):e===re.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new Ao(this),l(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new xw(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},splitPosition:{get:function(){return this._frameState.splitPosition},set:function(e){this._frameState.splitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){let t=this._context,n=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=n!==this._hdr,this._hdr=n}},highDynamicRangeSupported:{get:function(){let e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},cameraUnderground:{get:function(){return this._cameraUnderground}},msaaSamples:{get:function(){return this._msaaSamples},set:function(e){e=Math.min(e,Xt.maximumSamples),this._msaaSamples=e}},msaaSupported:{get:function(){return this._context.msaa}},pixelRatio:{get:function(){return this._frameState.pixelRatio},set:function(e){this._frameState.pixelRatio=e}},opaqueFrustumNearOffset:{get:function(){return .9999}},globeHeight:{get:function(){return this._globeHeight}}});_i.prototype.getCompressedTextureFormatSupported=function(e){let t=this.context;return(e==="WEBGL_compressed_texture_s3tc"||e==="s3tc")&&t.s3tc||(e==="WEBGL_compressed_texture_pvrtc"||e==="pvrtc")&&t.pvrtc||(e==="WEBGL_compressed_texture_etc"||e==="etc")&&t.etc||(e==="WEBGL_compressed_texture_etc1"||e==="etc1")&&t.etc1||(e==="WEBGL_compressed_texture_astc"||e==="astc")&&t.astc||(e==="EXT_texture_compression_bptc"||e==="bc7")&&t.bc7};function RLt(e,t){let n=e.pickedMetadataInfo,i=t.pickedMetadataInfo;return n?.schemaId!==i?.schemaId||n?.className!==i?.className||n?.propertyName!==i?.propertyName}function tLe(e,t,n){let i=e._frameState,o=e._context,r=e._view.oit,{lightShadowMaps:s,lightShadowsEnabled:a}=i.shadowState,c=t.derivedCommands;l(t.pickId)&&(c.picking=e0.createPickDerivedCommand(e,t,o,c.picking)),i.pickingMetadata&&t.pickMetadataAllowed&&(t.pickedMetadataInfo=i.pickedMetadataInfo,l(t.pickedMetadataInfo)&&(c.pickingMetadata=e0.createPickMetadataDerivedCommand(e,t,o,c.pickingMetadata))),t.pickOnly||(c.depth=e0.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=e0.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=bg.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===Le.TRANSLUCENT&&l(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=l(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}_i.prototype.updateDerivedCommands=function(e){let{derivedCommands:t}=e;if(!l(t))return;let n=this._frameState,{shadowState:i,useLogDepth:o}=this._frameState,r=this._context,s=!1,a=i.lastDirtyTime;e.lastDirtyTime!==a&&(e.lastDirtyTime=a,e.dirty=!0,s=!0);let c=this._hdr,d=l(t.logDepth),u=l(t.hdr),m=l(t.originalCommand),p=o&&!d,b=c&&!u,f=(!o||!c)&&!m,y=n.pickingMetadata&&RLt(e,n);if(e.dirty=e.dirty||p||b||f||y,!e.dirty)return;e.dirty=!1;let{shadowsEnabled:_,shadowMaps:S}=i;_&&e.castShadows&&(t.shadows=bg.createCastDerivedCommand(S,e,s,r,t.shadows)),(d||p)&&(t.logDepth=e0.createLogDepthCommand(e,r,t.logDepth),tLe(this,t.logDepth.command,s)),(m||f)&&tLe(this,e,s)};var VLt=new qm({pass:tr.RENDER}),dne=new qm({pass:tr.PRELOAD}),une=new qm({pass:tr.PRELOAD_FLIGHT}),GLt=new qm({pass:tr.REQUEST_RENDER_MODE_DEFER_CHECK}),nLe=new ue,mne;function ELt(e){if(!(e._mode!==re.SCENE3D||!e.globe?.show||e._cameraUnderground||e._globeTranslucencyState.translucent))return nLe.radius=e.ellipsoid.minimumRadius+e.frameState.minimumTerrainHeight,mne=tw.fromBoundingSphere(nLe,e.camera.positionWC,mne),mne}_i.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.pickVoxel=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function sLe(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=Q.clone(n,i.time)}_i.prototype.updateFrameState=function(){let e=this.camera,t=this._frameState;t.commandList.length=0,t.shadowMaps.length=0,t.brdfLutGenerator=this._brdfLutGenerator,t.environmentMap=this.skyBox&&this.skyBox._cubeMap,t.mode=this._mode,t.morphTime=this.morphTime,t.mapProjection=this.mapProjection,t.camera=e,t.cullingVolume=e.frustum.computeCullingVolume(e.positionWC,e.directionWC,e.upWC),t.occluder=ELt(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof fn||this.camera.frustum instanceof rs),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState;let{globe:n}=this;l(n)&&n._terrainExaggerationChanged&&(this.verticalExaggeration=n._terrainExaggeration,this.verticalExaggerationRelativeHeight=n._terrainExaggerationRelativeHeight,n._terrainExaggerationChanged=!1),t.verticalExaggeration=this.verticalExaggeration,t.verticalExaggerationRelativeHeight=this.verticalExaggerationRelativeHeight,l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.ready?(t.specularEnvironmentMaps=this._specularEnvironmentCubeMap.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentCubeMap.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=U.clone(this.invertClassificationColor,this._actualInvertClassificationColor),Y1.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,l(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};_i.prototype.isVisible=function(e,t,n){if(!l(t))return!1;let{boundingVolume:i}=t;return!l(i)||!t.cull?!0:e.computeVisibility(i)===Qt.OUTSIDE?!1:!l(n)||!t.occlude||!i.isOccluded(n)};var fz=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);fz=F.inverseTransformation(fz,fz);function LLt(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;l(t._debugVolume)&&t._debugVolume.destroy();let a=h.clone(s.center);if(o.mode!==re.SCENE3D){a=F.multiplyByPoint(fz,a,a);let f=o.mapProjection,y=f.unproject(a);a=f.ellipsoid.cartographicToCartesian(y)}let c,d,{radius:u}=s;l(u)?(c=Pa.createGeometry(new Pa({radii:new h(u,u,u),vertexFormat:pn.FLAT_VERTEX_FORMAT})),d=F.fromTranslation(a)):(c=gc.createGeometry(gc.fromDimensions({dimensions:new h(2,2,2),vertexFormat:pn.FLAT_VERTEX_FORMAT})),d=F.fromRotationTranslation(s.halfAxes,a,new F)),t._debugVolume=new Wn({geometryInstances:new Pt({geometry:Un.toWireframe(c),modelMatrix:d,attributes:{color:new qt(1,0,0,1)}}),appearance:new pn({flat:!0,translucent:!1}),asynchronous:!1});let m=o.commandList,p=o.commandList=[];t._debugVolume.update(o),e=p[0],o.useLogDepth&&(e=e0.createLogDepthCommand(e,r).command);let b;l(i)&&(b=n.framebuffer,n.framebuffer=i),e.execute(r,n),l(b)&&(n.framebuffer=b),o.commandList=m}function Od(e,t,n,i){let o=t._frameState,r=t._context;if(l(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof mi){e.execute(r,n);return}e.debugShowBoundingVolume&&l(e.boundingVolume)&&LLt(e,t,n,i),o.useLogDepth&&l(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=o.passes;if(!s.pick&&!s.pickVoxel&&!s.depth&&t._hdr&&l(e.derivedCommands)&&l(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth){if(o.pickingMetadata&&l(e.derivedCommands.pickingMetadata)){e=e.derivedCommands.pickingMetadata.pickMetadataCommand,e.execute(r,n);return}if(!o.pickingMetadata&&l(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(r,n);return}}else if(l(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(r,n);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,n);return}o.shadowState.lightShadowsEnabled&&e.receiveShadows&&l(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(r,n):e.execute(r,n)}function iLe(e,t,n){let{derivedCommands:i}=e;if(!l(i))return;let o=t._frameState,r=t._context;o.useLogDepth&&l(i.logDepth)&&(e=i.logDepth.command);let{picking:s,pickingMetadata:a,depth:c}=e.derivedCommands;l(a)&&(e=i.pickingMetadata.pickMetadataCommand,e.execute(r,n)),l(s)?(e=s.pickCommand,e.execute(r,n)):l(c)&&(e=c.depthOnlyCommand,e.execute(r,n))}function aLe(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}var WLt=new h;function oLe(e,t){let n=h.subtract(e,t,WLt),i=Math.max(0,h.magnitude(n));return i*i}function vLt(e,t,n){let i=e.boundingVolume,o=t.boundingVolume;return oLe(o.center,n)-oLe(i.center,n)}function FLt(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+W.EPSILON12}function ILt(e,t,n,i,o){Qp(i,aLe,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,n);for(let r=0;r<i.length;++r)t(i[r],e,n)}function PLt(e,t,n,i,o){Qp(i,FLt,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,n);for(let r=0;r<i.length;++r)t(i[r],e,n)}function XLt(e,t,n){e.context.uniformState.updatePass(Le.VOXELS);let i=n.commands[Le.VOXELS];i.length=n.indices[Le.VOXELS],Qp(i,aLe,e.camera.positionWC);for(let o=0;o<i.length;++o)Od(i[o],e,t)}function YLt(e,t,n){e.context.uniformState.updatePass(Le.GAUSSIAN_SPLATS);let i=n.commands[Le.GAUSSIAN_SPLATS];i.length=n.indices[Le.GAUSSIAN_SPLATS],Qp(i,vLt,e.camera.positionWC);for(let o=0;o<i.length;++o)Od(i[o],e,t)}var NLt=new Mi,wLt=new $l,MLt=new fn,kLt=new rs;function ULt(e){let{frustum:t}=e;return l(t.fov)?t.clone(NLt):l(t.infiniteProjectionMatrix)?t.clone(wLt):l(t.width)?t.clone(MLt):t.clone(kLt)}function DLt(e){if(e._environmentState.useOIT){if(!l(e._executeOITFunction)){let{view:t,context:n}=e;e._executeOITFunction=function(i,o,r,s,a){t.globeDepth.prepareColorTextures(n),t.oit.executeCommands(i,o,r,s,a)}}return e._executeOITFunction}return e.frameState.passes.render?ILt:PLt}function OLt(e,t,n){let{frameState:i,context:o}=e,{pick:r,pickVoxel:s}=i.passes,a=r||s,c;!a&&e._environmentState.useInvertClassification&&i.invertClassificationColor.alpha<1&&(c=e._invertClassification);let d=DLt(e);o.uniformState.updatePass(Le.TRANSLUCENT);let u=n.commands[Le.TRANSLUCENT];u.length=n.indices[Le.TRANSLUCENT],d(e,Od,t,u,c)}function BLt(e,t,n){let{translucentTileClassification:i,globeDepth:o}=e._view;if(!(n.indices[Le.CESIUM_3D_TILE_CLASSIFICATION]>0)||!i.isSupported())return;let s=n.commands[Le.TRANSLUCENT];i.executeTranslucentCommands(e,Od,t,s,o.depthStencilTexture),i.executeClassificationCommands(e,Od,t,n)}function zLt(e,t,n){e.context.uniformState.updatePass(Le.CESIUM_3D_TILE_EDGES);let i=t.framebuffer;e.context.uniformState.edgeColorTexture=e.context.defaultTexture,e.context.uniformState.edgeIdTexture=e.context.defaultTexture,e.context.uniformState.edgeDepthTexture=e.context.defaultTexture,e._enableEdgeVisibility&&l(e._view)&&l(e._view.edgeFramebuffer)&&(t.framebuffer=e._view.edgeFramebuffer.framebuffer);let o=n.commands[Le.CESIUM_3D_TILE_EDGES],r=n.indices[Le.CESIUM_3D_TILE_EDGES];e._enableEdgeVisibility&&l(e._view)&&l(e._view.edgeFramebuffer)&&e._view.edgeFramebuffer.getClearCommand(new U(0,0,0,0)).execute(e.context,t);for(let s=0;s<r;++s)Od(o[s],e,t);t.framebuffer=i}function HLt(e,t,n){e.context.uniformState.updatePass(Le.CESIUM_3D_TILE_EDGES_DIRECT);let i=n.commands[Le.CESIUM_3D_TILE_EDGES_DIRECT],o=n.indices[Le.CESIUM_3D_TILE_EDGES_DIRECT];for(let r=0;r<o;++r)Od(i[r],e,t)}function fne(e,t){let{camera:n,context:i,frameState:o}=e,{uniformState:r}=i;r.updateCamera(n);let s=ULt(n);s.near=n.frustum.near,s.far=n.frustum.far;let a=o.passes,c=a.pick||a.pickVoxel;c||KLt(e,t);let{clearGlobeDepth:d,renderTranslucentDepthForPick:u,useDepthPlane:m,useGlobeDepthFramebuffer:p,useInvertClassification:b,usePostProcessSelected:f}=e._environmentState,{globeDepth:y,globeTranslucencyFramebuffer:_,sceneFramebuffer:S,frustumCommandsList:A}=e._view,Z=A.length,R=e._globeTranslucencyState,G=e._depthClearCommand,E=e._stencilClearCommand,v=e._classificationStencilClearCommand,I=e._depthPlane,X=n.position.z;function Y(C,V){r.updatePass(V);let L=C.commands[V],P=C.indices[V];for(let N=0;N<P;++N)Od(L[N],e,t);return P}function g(C,V){r.updatePass(V);let L=C.commands[V],P=C.indices[V];for(let N=0;N<P;++N)iLe(L[N],e,t)}for(let C=0;C<Z;++C){let V=Z-C-1,L=A[V];e.mode===re.SCENE2D?(n.position.z=X-L.near+1,s.far=Math.max(1,L.far-L.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=V!==0?L.near*e.opaqueFrustumNearOffset:L.near,s.far=L.far,r.updateFrustum(s)),G.execute(i,t),i.stencilBuffer&&E.execute(i,t),R.translucent?(r.updatePass(Le.GLOBE),R.executeGlobeCommands(L,Od,_,e,t)):Y(L,Le.GLOBE),p&&y.executeCopyDepth(i,t),u||(R.translucent?(r.updatePass(Le.TERRAIN_CLASSIFICATION),R.executeGlobeClassificationCommands(L,Od,_,e,t)):Y(L,Le.TERRAIN_CLASSIFICATION)),d&&(G.execute(i,t),m&&I.execute(i,t));let P;if(zLt(e,t,L),e._enableEdgeVisibility&&l(e._view)&&l(e._view.edgeFramebuffer)){let O=e._view.edgeFramebuffer.colorTexture;l(O)?e.context.uniformState.edgeColorTexture=O:e.context.uniformState.edgeColorTexture=e.context.defaultTexture;let M=e._view.edgeFramebuffer.idTexture;l(M)?e.context.uniformState.edgeIdTexture=M:e.context.uniformState.edgeIdTexture=e.context.defaultTexture;let D=e._view.edgeFramebuffer.depthTexture;l(D)?e.context.uniformState.edgeDepthTexture=D:e.context.uniformState.edgeDepthTexture=e.context.defaultTexture}else e.context.uniformState.edgeColorTexture=e.context.defaultTexture,e.context.uniformState.edgeIdTexture=e.context.defaultTexture,e.context.uniformState.edgeDepthTexture=e.context.defaultTexture;if(!b||c||u)P=Y(L,Le.CESIUM_3D_TILE),P>0&&(p&&(y.prepareColorTextures(i,d),y.executeUpdateDepth(i,t,y.depthStencilTexture)),u||(P=Y(L,Le.CESIUM_3D_TILE_CLASSIFICATION)));else{e._invertClassification.clear(i,t);let O=t.framebuffer;t.framebuffer=e._invertClassification._fbo.framebuffer,P=Y(L,Le.CESIUM_3D_TILE),p&&(e._invertClassification.prepareTextures(i),y.executeUpdateDepth(i,t,e._invertClassification._fbo.getDepthStencilTexture())),P=Y(L,Le.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),t.framebuffer=O,e._invertClassification.executeClassified(i,t),o.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),P>0&&i.stencilBuffer&&v.execute(i,t),P=Y(L,Le.CESIUM_3D_TILE_CLASSIFICATION)}if(P>0&&i.stencilBuffer&&E.execute(i,t),XLt(e,t,L),Y(L,Le.OPAQUE),HLt(e,t,L),YLt(e,t,L),V!==0&&e.mode!==re.SCENE2D&&(s.near=L.near,r.updateFrustum(s)),OLt(e,t,L),BLt(e,t,L),i.depthTexture&&e.useDepthPicking&&(p||u)){let O=e._picking.getPickDepth(e,V);O.update(i,y.depthStencilTexture),O.executeCopyDepth(i,t)}if(c||!f)continue;let N=t.framebuffer;t.framebuffer=S.getIdFramebuffer(),s.near=V!==0?L.near*e.opaqueFrustumNearOffset:L.near,s.far=L.far,r.updateFrustum(s),R.translucent?(r.updatePass(Le.GLOBE),R.executeGlobeCommands(L,iLe,_,e,t)):g(L,Le.GLOBE),d&&(G.framebuffer=t.framebuffer,G.execute(i,t),G.framebuffer=void 0),d&&m&&I.execute(i,t),g(L,Le.CESIUM_3D_TILE),g(L,Le.OPAQUE),g(L,Le.TRANSLUCENT),t.framebuffer=N}}function KLt(e,t){let{context:n,environmentState:i,view:o}=e;if(n.uniformState.updatePass(Le.ENVIRONMENT),l(i.skyBoxCommand)&&Od(i.skyBoxCommand,e,t),i.isSkyAtmosphereVisible&&Od(i.skyAtmosphereCommand,e,t),i.isSunVisible&&(i.sunDrawCommand.execute(n,t),e.sunBloom&&!i.useWebVR)){let s;i.useGlobeDepthFramebuffer?s=o.globeDepth.framebuffer:i.usePostProcess?s=o.sceneFramebuffer.framebuffer:s=i.originalFramebuffer,e._sunPostProcess.execute(n),e._sunPostProcess.copy(n,s),t.framebuffer=s}i.isMoonVisible&&i.moonCommand.execute(n,t);let r=e.frameState.panoramaCommandList;for(let s=r.length-1;s>=0;s--){let a=r[s];l(a.shaderProgram)?Od(r[s],e,t):r.splice(s,1)}}function cLe(e){e.context.uniformState.updatePass(Le.COMPUTE);let t=e._environmentState.sunComputeCommand;l(t)&&t.execute(e._computeEngine);let n=e._computeCommandList;for(let i=0;i<n.length;++i)n[i].execute(e._computeEngine)}function JLt(e,t){e.context.uniformState.updatePass(Le.OVERLAY);let n=e.context,i=e._overlayCommandList;for(let o=0;o<i.length;++o)i[o].execute(n,t)}function jLt(e,t,n){let{shadowMapCullingVolume:i,isPointLight:o,passes:r}=n,s=r.length,a=[Le.GLOBE,Le.CESIUM_3D_TILE,Le.OPAQUE,Le.TRANSLUCENT];for(let c=0;c<t.length;++c){let d=t[c];if(e.updateDerivedCommands(d),!(!d.castShadows||a.indexOf(d.pass)<0||!e.isVisible(i,d)))if(o)for(let u=0;u<s;++u)r[u].commandList.push(d);else if(s===1)r[0].commandList.push(d);else{let u=!1;for(let m=s-1;m>=0;--m){let p=r[m].cullingVolume;if(e.isVisible(p,d))r[m].commandList.push(d),u=!0;else if(u)break}}}}function lLe(e){let{shadowState:t,commandList:n}=e.frameState,{shadowsEnabled:i,shadowMaps:o}=t;if(!i)return;let{context:r}=e,{uniformState:s}=r;for(let a=0;a<o.length;++a){let c=o[a];if(c.outOfView)continue;let{passes:d}=c;for(let u=0;u<d.length;++u)d[u].commandList.length=0;jLt(e,n,c);for(let u=0;u<d.length;++u){let m=c.passes[u],{camera:p,commandList:b}=m;s.updateCamera(p),c.updatePass(r,u);for(let f=0;f<b.length;++f){let y=b[f];s.updatePass(y.pass);let _=y.derivedCommands.shadows.castCommands[a];Od(_,e,m.passState)}}}}var QLt=new h;_i.prototype.updateAndExecuteCommands=function(e,t){dWt(this,e,t),this._environmentState.useWebVR?qLt(this,e,t):this._frameState.mode!==re.SCENE2D||this._mapMode2D===ed.ROTATE?Dx(!0,this,e):aWt(this,e)};function qLt(e,t){let n=e._view,i=n.camera,r=e._environmentState.renderTranslucentDepthForPick;dLe(e),n.createPotentiallyVisibleSet(e),cLe(e),r||lLe(e);let s=t.viewport;s.x=0,s.y=0,s.width=s.width*.5;let a=Ao.clone(i,e._cameraVR);a.frustum=i.frustum;let c=i.frustum.near,d=c*(e.focalLength??5),u=e.eyeSeparation??d/30,m=h.multiplyByScalar(a.right,u*.5,QLt);i.frustum.aspectRatio=s.width/s.height;let p=.5*u*c/d;h.add(a.position,m,i.position),i.frustum.xOffset=p,fne(e,t),s.x=s.width,h.subtract(a.position,m,i.position),i.frustum.xOffset=-p,fne(e,t),Ao.clone(a,i)}var $Lt=new fe(Math.PI,W.PI_OVER_TWO),eWt=new h,tWt=new h,nWt=new F,iWt=new F,oWt=new h,rWt=new h,sWt=new it;function aWt(e,t){let{frameState:n,camera:i}=e,{uniformState:o}=e.context,r=t.viewport,s=it.clone(r,sWt);t.viewport=s;let a=$Lt,c=eWt;e.mapProjection.project(a,c);let u=h.clone(i.position,tWt),m=F.clone(i.transform,iWt),p=i.frustum.clone();i._setTransform(F.IDENTITY);let b=F.computeViewportTransformation(s,0,1,nWt),f=i.frustum.projectionMatrix,y=i.positionWC.y,_=h.fromElements(W.sign(y)*c.x-y,0,-i.positionWC.x,oWt),S=xt.pointToGLWindowCoordinates(f,b,_,rWt);S.x=Math.floor(S.x);let A=s.x,Z=s.width;if(y===0||S.x<=A||S.x>=A+Z)Dx(!0,e,t);else if(Math.abs(A+Z*.5-S.x)<1)s.width=S.x-s.x,i.position.x*=W.sign(i.position.x),i.frustum.right=0,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Dx(!0,e,t),s.x=S.x,i.position.x=-i.position.x,i.frustum.right=-i.frustum.left,i.frustum.left=0,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Dx(!1,e,t);else if(S.x>A+Z*.5){s.width=S.x-A;let R=i.frustum.right;i.frustum.right=c.x-y,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Dx(!0,e,t),s.x=S.x,s.width=A+Z-S.x,i.position.x=-i.position.x,i.frustum.left=-i.frustum.right,i.frustum.right=R-i.frustum.right*2,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Dx(!1,e,t)}else{s.x=S.x,s.width=A+Z-S.x;let R=i.frustum.left;i.frustum.left=-c.x-y,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Dx(!0,e,t),s.x=A,s.width=S.x-A,i.position.x=-i.position.x,i.frustum.right=-i.frustum.left,i.frustum.left=R-i.frustum.left*2,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Dx(!1,e,t)}i._setTransform(m),h.clone(u,i.position),i.frustum=p.clone(),t.viewport=r}function Dx(e,t,n){let i=t._view,{renderTranslucentDepthForPick:o}=t._environmentState;e||(t.frameState.commandList.length=0),dLe(t),i.createPotentiallyVisibleSet(t),e&&(cLe(t),o||lLe(t)),fne(t,n)}var rLe=new Us;_i.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.atmosphere,s=this.skyAtmosphere,a=this.globe,c=this._globeTranslucencyState;if(!i||this._mode!==re.SCENE2D&&t.camera.frustum instanceof fn||!c.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{if(l(s)){if(l(a))s.setDynamicLighting(tb.fromGlobeFlags(a)),n.isReadyForAtmosphere=n.isReadyForAtmosphere||!a.show||a._surface._tilesToRender.length>0;else{let S=r.dynamicLighting;s.setDynamicLighting(S),n.isReadyForAtmosphere=!0}n.skyAtmosphereCommand=s.update(e,a),l(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)}else n.skyAtmosphereCommand=void 0;n.skyBoxCommand=l(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let _=l(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=l(_)?_.drawCommand:void 0,n.sunComputeCommand=l(_)?_.computeCommand:void 0,n.moonCommand=l(this.moon)?this.moon.update(e):void 0}let d=n.clearGlobeDepth=l(a)&&a.show&&(!a.depthTestAgainstTerrain||this.mode===re.SCENE2D);(n.useDepthPlane=d&&this.mode===re.SCENE3D&&c.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==re.SCENE2D&&!o;let m=e.mode===re.SCENE3D&&!c.sunVisibleThroughGlobe?e.occluder:void 0,p=e.cullingVolume,b=rLe.planes;for(let _=0;_<5;++_)b[_]=p.planes[_];p=rLe,n.isSkyAtmosphereVisible=l(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(p,n.sunDrawCommand,m),n.isMoonVisible=this.isVisible(p,n.moonCommand,m);let f=this.specularEnvironmentMaps,y=this._specularEnvironmentCubeMap;l(f)&&y?.url!==f?(y=y&&y.destroy(),this._specularEnvironmentCubeMap=new Vh(f)):!l(f)&&l(y)&&(y.destroy(),this._specularEnvironmentCubeMap=void 0),l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.update(e)};function cWt(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new $p({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),l(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function lWt(e){let t=e._frameState,{passes:n,shadowState:i,shadowMaps:o}=t,r=o.length,s=r>0&&!n.pick&&!n.pickVoxel&&e.mode===re.SCENE3D;if(s!==i.shadowsEnabled&&(++i.lastDirtyTime,i.shadowsEnabled=s),i.lightShadowsEnabled=!1,!!s){for(let a=0;a<r;++a)if(o[a]!==i.shadowMaps[a]){++i.lastDirtyTime;break}i.shadowMaps.length=0,i.lightShadowMaps.length=0;for(let a=0;a<r;++a){let c=o[a];c.update(t),i.shadowMaps.push(c),c.fromLightSource&&(i.lightShadowMaps.push(c),i.lightShadowsEnabled=!0),c.dirty&&(++i.lastDirtyTime,c.dirty=!1)}}}function dLe(e){let t=e._frameState;t.edgeVisibilityRequested=!1,e._groundPrimitives.update(t),e._primitives.update(t),t.edgeVisibilityRequested&&e._enableEdgeVisibility===!1&&(e._enableEdgeVisibility=!0),cWt(e),lWt(e),e._globe&&e._globe.render(t)}function dWt(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,a=o.passes,c=a.pick||a.pickVoxel;l(s.globeDepth)&&(s.globeDepth.picking=c);let d=r.useWebVR;r.originalFramebuffer=t.framebuffer,l(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!d?e._sunPostProcess=new xM:l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!l(e.sun)&&l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let u=e._clearColorCommand;U.clone(n,u.color),u.execute(i,t);let m=r.useGlobeDepthFramebuffer=l(s.globeDepth);m&&(s.globeDepth.update(i,t,s.viewport,e.msaaSamples,e._hdr,r.clearGlobeDepth),s.globeDepth.clear(i,t,n));let p=s.oit,b=r.useOIT=!c&&l(p)&&p.isSupported();b&&(p.update(i,t,s.globeDepth.colorFramebufferManager,e._hdr,e.msaaSamples),p.clear(i,t,n),r.useOIT=p.isSupported());let f=e.postProcessStages,y=r.usePostProcess=!c&&(e._hdr||f.length>0||f.ambientOcclusion.enabled||f.fxaa.enabled||f.bloom.enabled);r.usePostProcessSelected=!1,y&&(s.sceneFramebuffer.update(i,s.viewport,e._hdr,e.msaaSamples),s.sceneFramebuffer.clear(i,t,n),f.update(i,o.useLogDepth,e._hdr),f.clear(i),y=r.usePostProcess=f.ready,r.usePostProcessSelected=y&&f.hasSelected),r.isSunVisible&&e.sunBloom&&!d?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):m?t.framebuffer=s.globeDepth.framebuffer:y&&(t.framebuffer=s.sceneFramebuffer.framebuffer),l(t.framebuffer)&&u.execute(i,t);let _=r.useInvertClassification=!c&&l(t.framebuffer)&&e.invertClassification;if(!c&&e._enableEdgeVisibility&&s.edgeFramebuffer.update(i,s.viewport,e._hdr),_){let A;if(o.invertClassificationColor.alpha===1&&m&&(A=s.globeDepth.framebuffer),l(A)||i.depthTexture){if(e._invertClassification.previousFramebuffer=A,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),o.invertClassificationColor.alpha<1&&b){let Z=e._invertClassification.unclassifiedCommand,R=Z.derivedCommands;R.oit=p.createDerivedCommands(Z,i,R.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}_i.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,{globeDepth:o,translucentTileClassification:r}=i;l(o)&&o.prepareColorTextures(t);let{useOIT:s,useGlobeDepthFramebuffer:a,usePostProcess:c,originalFramebuffer:d}=n,u=a?o.colorFramebufferManager:void 0,m=i.sceneFramebuffer._colorFramebuffer,p=i.sceneFramebuffer.idFramebuffer;if(s&&(e.framebuffer=c?m.framebuffer:d,i.oit.execute(t,e)),r.hasTranslucentDepth&&r.isSupported()&&r.execute(this,e),c){i.sceneFramebuffer.prepareColorTextures(t);let b=m;a&&!s&&(b=u);let f=this.postProcessStages,y=b.getColorTexture(0),_=p.getColorTexture(0),S=(u??m).getDepthStencilTexture();f.execute(t,y,S,_),f.copy(t,d)}!s&&!c&&a&&(e.framebuffer=d,o.executeCopyColor(t,e))};function uWt(e){let t=e._frameState.afterRender,n=t.slice();t.length=0;for(let i=0;i<n.length;++i)n[i]()&&e.requestRender()}function mWt(e){if(e.mode===re.MORPHING)return;let t=e.camera.positionCartographic;return e.getHeight(t)}function uLe(e,t,n){let i=Number.NEGATIVE_INFINITY;if(e instanceof Jl){let o=e.length;for(let r=0;r<o;++r){let s=e.get(r),a=uLe(s,t,n);l(a)&&a>i&&(i=a)}}else if(e.isCesium3DTileset&&e.show&&e.enableCollision){let o=e.getHeight(t,n);if(l(o)&&o>i)return o}return i}_i.prototype.getHeight=function(e,t){if(!l(e))return;let n=t===st.CLAMP_TO_TERRAIN||t===st.RELATIVE_TO_TERRAIN,i=t===st.CLAMP_TO_3D_TILE||t===st.RELATIVE_TO_3D_TILE;if(!l(e))return;let o=Number.NEGATIVE_INFINITY;if(!n){let s=uLe(this.primitives,e,this);l(s)&&s>o&&(o=s)}let r=this._globe;if(!i&&l(r)&&r.show){let s=r.getHeight(e);s>o&&(o=s)}if(o>Number.NEGATIVE_INFINITY)return o};var hne=new fe;_i.prototype.updateHeight=function(e,t,n){let i=this._ellipsoid,o=b=>{fe.clone(e,hne);let f;l(b)&&(f=b.height),l(f)||(f=this.getHeight(e,n)),l(f)&&(hne.height=f,t(hne))},r=n===st.CLAMP_TO_TERRAIN||n===st.RELATIVE_TO_TERRAIN,s=n===st.CLAMP_TO_3D_TILE||n===st.RELATIVE_TO_3D_TILE,a;!s&&l(this.globe)&&(a=this.globe._surface.updateHeight(e,o));let c={},d=b=>{if(r||b.isDestroyed()||!b.isCesium3DTileset)return;let f=b.updateHeight(e,o,i);c[b.id]=f};if(!r){let b=this.primitives.length;for(let f=0;f<b;++f){let y=this.primitives.get(f);d(y)}}let u=this.primitives.primitiveAdded.addEventListener(d),m=this.primitives.primitiveRemoved.addEventListener(b=>{b.isDestroyed()||!b.isCesium3DTileset||(l(c[b.id])&&c[b.id](),delete c[b.id])});return()=>{a=a&&a(),Object.values(c).forEach(b=>b()),c={},u(),m()}};function hWt(e){let t=e.camera,n=e._mode,i=e._screenSpaceCameraController,o=t.positionCartographic;if(!l(o))return!1;if(!i.onMap()&&o.height<0)return!0;if(n===re.SCENE2D||n===re.MORPHING)return!1;let r=e._globeHeight;return l(r)&&o.height<r}_i.prototype.initializeFrame=function(){if(this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeightDirty){l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),this._globeHeight=mWt(this),this._globeHeightDirty=!1;let e=this.camera.positionCartographic;this._removeUpdateHeightCallback=this.updateHeight(e,t=>{this.isDestroyed()||(this._globeHeight=t.height)})}this._cameraUnderground=hWt(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),l(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function fWt(e,t){if(e.debugShowFramesPerSecond){if(!l(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new hg({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else l(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function pWt(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),l(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function bWt(e){e.primitives.postPassesUpdate(e._frameState),Nc.update()}var gWt=new U;function yWt(e){let t=e._frameState,n=e.context,{uniformState:i}=n,o=e._defaultView;e._view=o,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=VLt;let r=e.backgroundColor??U.BLACK;e._hdr&&(r=U.clone(r,gWt),r.red=Math.pow(r.red,e.gamma),r.green=Math.pow(r.green,e.gamma),r.blue=Math.pow(r.blue,e.gamma)),t.backgroundColor=r,t.atmosphere=e.atmosphere,e.fog.update(t),i.update(t);let s=e.shadowMap;l(s)&&s.enabled&&(!l(e.light)||e.light instanceof dg?h.negate(i.sunDirectionWC,e._shadowMapCamera.direction):h.clone(e.light.direction,e._shadowMapCamera.direction),t.shadowMaps.push(s)),e._computeCommandList.length=0,e._overlayCommandList.length=0;let a=o.viewport;a.x=0,a.y=0,a.width=n.drawingBufferWidth,a.height=n.drawingBufferHeight;let c=o.passState;c.framebuffer=void 0,c.blendingEnabled=void 0,c.scissorTest=void 0,c.viewport=it.clone(a,c.viewport),n.beginFrame(),l(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,JLt(e,c),l(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function yA(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function xWt(e){return e._picking.updateMostDetailedRayPicks(e)}_i.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,l(e)||(e=Q.now());let n=this._view.checkForCameraUpdates(this);n&&(this._globeHeightDirty=!0);let i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===re.MORPHING;if(!i&&l(this.maximumRenderTimeChange)&&l(this._lastRenderTime)){let o=Math.abs(Q.secondsDifference(this._lastRenderTime,e));i=i||o>this.maximumRenderTimeChange}if(i){this._lastRenderTime=Q.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let o=W.incrementWrap(t.frameNumber,15e6,1);sLe(this,o,e),t.newFrame=!0}yA(this,pWt),this.primitives.show&&(yA(this,xWt),yA(this,TWt),yA(this,_Wt),i||yA(this,SWt)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),yA(this,yWt)),fWt(this,i),yA(this,bWt),uWt(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};_i.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};_i.prototype.requestRender=function(){this._renderRequested=!0};_i.prototype.clampLineWidth=function(e){return Math.max(Xt.minimumAliasedLineWidth,Math.min(e,Xt.maximumAliasedLineWidth))};_i.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n,1)[0]};_i.prototype.pickAsync=async function(e,t,n){return(await this._picking.pickAsync(this,e,t,n,1))[0]};_i.prototype.pickVoxel=function(e,t,n){let i=this.pick(e,t,n);if(!l(i))return;let o=i.primitive;if(!(o instanceof Ux))return;let r=this._picking.pickVoxelCoordinate(this,e,t,n),s=255*r[0]+r[1],a=o._traversal.findKeyframeNode(s);if(!l(a))return;let c=255*r[2]+r[3];return SM.fromKeyframeNode(o,s,c,a)};_i.prototype.pickMetadata=function(e,t,n,i){let o=this.pick(e);if(!l(o))return;let r=o.detail?.model?.structuralMetadata;if(!l(r))return;let s=r.schema,a=ek(s,t,n,i);if(!l(a))return;let c=nk(r,n,i);if(!l(c))return;let d=new tk(t,n,i,a,c);return this._picking.pickMetadata(this,e,d)};_i.prototype.pickMetadataSchema=function(e){let t=this.pick(e);return l(t)?t.detail?.model?.structuralMetadata?.schema:void 0};_i.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};_i.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};_i.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function TWt(e){let t=e._frameState;dne.camera=t.camera,dne.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,dne)}function _Wt(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;une.camera=e.preloadFlightCamera,une.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,une)}function SWt(e){e.primitives.updateForPass(e._frameState,GLt)}_i.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};_i.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};_i.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};_i.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};_i.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};_i.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};_i.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};_i.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};_i.prototype.cartesianToCanvasCoordinates=function(e,t){return no.worldToWindowCoordinates(this,e,t)};_i.prototype.completeMorph=function(){this._transitioner.completeMorph()};_i.prototype.morphTo2D=function(e){e=e??2,this._transitioner.morphTo2D(e,this._ellipsoid)};_i.prototype.morphToColumbusView=function(e){e=e??2,this._transitioner.morphToColumbusView(e,this._ellipsoid)};_i.prototype.morphTo3D=function(e){e=e??2,this._transitioner.morphTo3D(e,this._ellipsoid)};function AWt(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){l(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{l(e)&&l(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}_i.prototype.setTerrain=function(e){return AWt(this,e),e};_i.prototype.isDestroyed=function(){return!1};_i.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._picking=this._picking&&this._picking.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),l(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(let e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),he(this)};var ik=_i;var Ofo=x(T(),1);var pfo=x(T(),1),B1=`float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} + +void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe) +{ + float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z; + + // Adjustment to the atmosphere radius applied based on the camera height. + float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0; + float distanceAdjustMax = czm_ellipsoidRadii.x; + float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0; + float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0); + + // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit + // for the position on the ellipsoid. + float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust; + float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust; + + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + underTranslucentGlobe = 0.0; + + // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled. + #if defined(GLOBE_TRANSLUCENT) + + // Check for intersection with the inner radius of the atmopshere. + czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust); + if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) { + + // Compute position on globe. + vec3 direction = normalize(positionWC); + czm_ray ellipsoidRay = czm_ray(positionWC, -direction); + czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii); + vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start); + + // Control the color using the camera angle. + float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth)); + + // Control the opacity using the distance from Earth. + opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth)); + vec3 horizonColor = vec3(0.1, 0.2, 0.3); + vec3 nearColor = vec3(0.0); + + rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity); + + // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton. + underTranslucentGlobe = 1.0; + return; + } + #endif + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + // Alter the opacity based on how close the viewer is to the ground. + // (0.0 = At edge of atmosphere, 1.0 = On ground) + float cameraHeight = czm_eyeHeight + atmosphereInnerRadius; + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0); + + // Alter alpha based on time of day (0.0 = night , 1.0 = day) + float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0; + opacity *= pow(nightAlpha, 0.5); +} +`;var gfo=x(T(),1),ok=`in vec3 v_outerPositionWC; + +uniform vec3 u_hsbShift; + +#ifndef PER_FRAGMENT_ATMOSPHERE +in vec3 v_mieColor; +in vec3 v_rayleighColor; +in float v_opacity; +in float v_translucent; +#endif + +void main (void) +{ + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(v_outerPositionWC, lightEnum); + + vec3 mieColor; + vec3 rayleighColor; + float opacity; + float translucent; + + #ifdef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + v_outerPositionWC, + lightDirection, + rayleighColor, + mieColor, + opacity, + translucent + ); + #else + mieColor = v_mieColor; + rayleighColor = v_rayleighColor; + opacity = v_opacity; + translucent = v_translucent; + #endif + + vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity); + + #ifndef HDR + color.rgb = czm_pbrNeutralTonemapping(color.rgb); + color.rgb = czm_inverseGamma(color.rgb); + #endif + + #ifdef COLOR_CORRECT + const bool ignoreBlackPixels = true; + color.rgb = czm_applyHSBShift(color.rgb, u_hsbShift, ignoreBlackPixels); + #endif + + // For the parts of the sky atmosphere that are not behind a translucent globe, + // we mix in the default opacity so that the sky atmosphere still appears at distance. + // This is needed because the opacity in the sky atmosphere is initially adjusted based + // on the camera height. + if (translucent == 0.0) { + color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime); + } + + out_FragColor = color; +} +`;var xfo=x(T(),1),rk=`in vec4 position; + +out vec3 v_outerPositionWC; + +#ifndef PER_FRAGMENT_ATMOSPHERE +out vec3 v_mieColor; +out vec3 v_rayleighColor; +out float v_opacity; +out float v_translucent; +#endif + +void main(void) +{ + vec4 positionWC = czm_model * position; + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC.xyz, lightEnum); + + #ifndef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + positionWC.xyz, + lightDirection, + v_rayleighColor, + v_mieColor, + v_opacity, + v_translucent + ); + #endif + + v_outerPositionWC = positionWC.xyz; + vec4 positionEC = czm_modelView * position; + gl_Position = czm_projection * positionEC; +} +`;function z1(e){e=e??ie.WGS84,this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=h.multiplyByScalar(e.radii,t,new h);this._scaleMatrix=F.fromScale(n),this._modelMatrix=new F,this._command=new at({owner:this,modelMatrix:this._modelMatrix}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._flags=void 0,this.atmosphereLightIntensity=50,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new h;let i=new h;i.x=e.maximumRadius*t,i.y=e.maximumRadius,i.z=0,this._radiiAndDynamicAtmosphereColor=i;let o=this;this._command.uniformMap={u_radiiAndDynamicAtmosphereColor:function(){return o._radiiAndDynamicAtmosphereColor},u_hsbShift:function(){return o._hueSaturationBrightness.x=o.hueShift,o._hueSaturationBrightness.y=o.saturationShift,o._hueSaturationBrightness.z=o.brightnessShift,o._hueSaturationBrightness},u_atmosphereLightIntensity:function(){return o.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return o.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return o.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return o.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return o.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return o.atmosphereMieAnisotropy}}}Object.defineProperties(z1.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});z1.prototype.setDynamicLighting=function(e){this._radiiAndDynamicAtmosphereColor.z=e};var pne=new F;z1.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==re.SCENE3D&&n!==re.MORPHING||!e.passes.render)return;let i=F.fromRotationTranslation(e.context.uniformState.inverseViewRotation,h.ZERO,pne),o=F.multiplyTransformation(i,Xi.Y_UP_TO_Z_UP,pne),r=F.multiply(this._scaleMatrix,o,pne);F.clone(r,this._modelMatrix);let s=e.context,a=ZWt(this),c=e.globeTranslucencyState.translucent,d=this.perFragmentAtmosphere||c||!l(t)||!t.show,u=this._command;if(!l(u.vertexArray)){let p=Pa.createGeometry(new Pa({radii:new h(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:Me.POSITION_ONLY}));u.vertexArray=wn.fromGeometry({context:s,geometry:p,attributeLocations:Un.createAttributeLocations(p),bufferUsage:Fe.STATIC_DRAW}),u.renderState=Be.fromCache({cull:{enabled:!0,face:Ii.FRONT},blending:nn.ALPHA_BLEND,depthMask:!1})}let m=a|d<<2|c<<3;if(m!==this._flags){this._flags=m;let p=[];a&&p.push("COLOR_CORRECT"),d&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let b=new He({defines:p,sources:[Ph,B1,rk]}),f=new He({defines:p,sources:[Ph,B1,ok]});this._spSkyAtmosphere=tn.fromCache({context:s,vertexShaderSource:b,fragmentShaderSource:f}),u.shaderProgram=this._spSkyAtmosphere}return u};function ZWt(e){return!(W.equalsEpsilon(e.hueShift,0,W.EPSILON7)&&W.equalsEpsilon(e.saturationShift,0,W.EPSILON7)&&W.equalsEpsilon(e.brightnessShift,0,W.EPSILON7))}z1.prototype.isDestroyed=function(){return!1};z1.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),he(this)};var sk=z1;var Rpo=x(T(),1);var Tpo=x(T(),1);var zfo=x(T(),1),ak=`uniform samplerCube u_cubeMap; + +in vec3 v_texCoord; + +void main() +{ + vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord)); + out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime); +} +`;var Kfo=x(T(),1),ck=`in vec3 position; +out vec3 v_texCoord; + +void main() +{ + vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position)); + gl_Position = czm_projection * vec4(p, 1.0); + v_texCoord = position.xyz; +} +`;var jfo=x(T(),1),lk=`uniform mat3 u_cubeMapPanoramaTransform; + +in vec3 position; +out vec3 v_texCoord; + +void main() +{ + vec3 p = czm_viewRotation * (u_cubeMapPanoramaTransform * (czm_entireFrustum.y * position)); + gl_Position = czm_projection * vec4(p, 1.0); + v_texCoord = position.xyz; +} +`;function dk(e){this.sources=e.sources,this._sources=void 0,this._transform=e.transform,this.show=e.show??!0,this._returnCommand=e.returnCommand??!1,this._addToPanoramaCommandList=!this._returnCommand,this._command=new at({modelMatrix:F.clone(F.IDENTITY),owner:this,pass:Le.ENVIRONMENT}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0,this._hasError=!1,this._error=void 0;let t=e.credit;typeof t=="string"&&(t=new Rt(t)),this._credit=t}Object.defineProperties(dk.prototype,{transform:{get:function(){return this._transform}},credit:{get:function(){return l(this._credit)?this._credit:void 0}}});dk.prototype.update=function(e,t){let n=this,{mode:i,passes:o,context:r,panoramaCommandList:s}=e;if(!this.show||i!==re.SCENE3D&&i!==re.MORPHING||!o.render)return;if(this._hasError){let c=this._error;throw this._hasError=!1,this._error=void 0,c}if(this._sources!==this.sources){this._sources=this.sources;let c=this.sources;typeof c.positiveX=="string"?LN(r,this._sources).then(function(d){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=d}).catch(d=>{this._hasError=!0,this._error=d}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new Ur({context:r,source:c})),this._addToPanoramaCommandList=!0}let a=this._command;if(!l(a.vertexArray)){a.uniformMap={u_cubeMap:function(){return n._cubeMap},u_cubeMapPanoramaTransform:function(){return n._transform}};let c=gc.createGeometry(gc.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Me.POSITION_ONLY})),d=this._attributeLocations=Un.createAttributeLocations(c);a.vertexArray=wn.fromGeometry({context:r,geometry:c,attributeLocations:d,bufferUsage:Fe.STATIC_DRAW}),a.renderState=Be.fromCache({depthTest:{enabled:!1},depthMask:!1,blending:nn.ALPHA_BLEND}),this._addToPanoramaCommandList=!0}if(!l(a.shaderProgram)||this._useHdr!==t){let c=new He({defines:[t?"HDR":""],sources:[ak]});a.shaderProgram=tn.fromCache({context:r,vertexShaderSource:l(this._transform)?lk:ck,fragmentShaderSource:c,attributeLocations:this._attributeLocations}),this._useHdr=t,this._addToPanoramaCommandList=!0}if(l(this._cubeMap)){if(this.show&&l(this._credit)&&!this._returnCommand&&e.creditDisplay.addCreditToNextFrame(this._credit),this._returnCommand)return a;this._addToPanoramaCommandList&&(s.push(a),this._addToPanoramaCommandList=!1)}};dk.prototype.isDestroyed=function(){return!1};dk.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),he(this)};var xA=dk;function TA(e){this._sources=e.sources,this._show=e.show??!0,this._panorama=new xA({sources:this._sources,show:this._show,returnCommand:!0})}Object.defineProperties(TA.prototype,{sources:{get:function(){return this._panorama.sources},set:function(e){this._panorama.sources=e}},show:{get:function(){return this._panorama.show},set:function(e){this._panorama.show=e}}});TA.prototype.update=function(e,t){let{mode:n,passes:i}=e;if(!(n!==re.SCENE3D&&n!==re.MORPHING)&&i.render)return this._panorama.update(e,t)};TA.prototype.isDestroyed=function(){return!1};TA.prototype.destroy=function(){return this._panorama=this._panorama&&this._panorama.destroy(),he(this)};function H1(e){return $t(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}TA.createEarthSkyBox=function(){return new TA({sources:{positiveX:H1("px"),negativeX:H1("mx"),positiveY:H1("py"),negativeY:H1("my"),positiveZ:H1("pz"),negativeZ:H1("mz")}})};var uk=TA;var a0o=x(T(),1);var Gpo=x(T(),1),mk=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color = texture(u_texture, v_textureCoordinates); + out_FragColor = czm_gammaCorrect(color); +} +`;var Lpo=x(T(),1),hk=`uniform float u_radiusTS; + +in vec2 v_textureCoordinates; + +vec2 rotate(vec2 p, vec2 direction) +{ + return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x); +} + +vec4 addBurst(vec2 position, vec2 direction, float lengthScalar) +{ + vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75); + float radius = length(rotatedPosition) * lengthScalar; + float burst = 1.0 - smoothstep(0.0, 0.55, radius); + return vec4(burst); +} + +void main() +{ + float lengthScalar = 2.0 / sqrt(2.0); + vec2 position = v_textureCoordinates - vec2(0.5); + float radius = length(position) * lengthScalar; + float surface = step(radius, u_radiusTS); + vec4 color = vec4(vec2(1.0), surface + 0.2, surface); + + float glow = 1.0 - smoothstep(0.0, 0.55, radius); + color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75; + + vec4 burst = vec4(0.0); + + // The following loop has been manually unrolled for speed, to + // avoid sin() and cos(). + // + //for (float i = 0.4; i < 3.2; i += 1.047) { + // vec2 direction = vec2(sin(i), cos(i)); + // burst += 0.4 * addBurst(position, direction, lengthScalar); + // + // direction = vec2(sin(i - 0.08), cos(i - 0.08)); + // burst += 0.3 * addBurst(position, direction, lengthScalar); + //} + + burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar); // angle == 0.4 + burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar); // angle == 0.4 + 1.047 + burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar); // angle == 0.4 + 1.047 * 2.0 + + burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar); // angle == 0.4 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar); // angle == 0.4 + 1.047 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar); // angle == 0.4 + 1.047 * 2.0 - 0.08 + + // End of manual loop unrolling. + + color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15; + + out_FragColor = clamp(color, vec4(0.0), vec4(1.0)); +} +`;var vpo=x(T(),1),fk=`in vec2 direction; + +uniform float u_size; + +out vec2 v_textureCoordinates; + +void main() +{ + vec4 position; + if (czm_morphTime == 1.0) + { + position = vec4(czm_sunPositionWC, 1.0); + } + else + { + position = vec4(czm_sunPositionColumbusView.zxy, 1.0); + } + + vec4 positionEC = czm_view * position; + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + + vec2 halfSize = vec2(u_size * 0.5); + halfSize *= ((direction * 2.0) - 1.0); + + gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0); + + v_textureCoordinates = direction; +} +`;function bk(){this.show=!0,this._drawCommand=new at({primitiveType:ve.TRIANGLES,boundingVolume:new ue,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new ue,this._boundingVolume2D=new ue,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;let e=this;this._uniformMap={u_texture:function(){return e._texture},u_size:function(){return e._size}}}Object.defineProperties(bk.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var CWt=new k,RWt=new k,VWt=new ce,pk=new ce;bk.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===re.SCENE2D||i===re.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!l(this._texture)||r!==this._drawingBufferWidth||s!==this._drawingBufferHeight||this._glowFactorDirty||n!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=r,this._drawingBufferHeight=s,this._glowFactorDirty=!1,this._useHdr=n;let R=Math.max(r,s);R=Math.pow(2,Math.ceil(Math.log(R)/Math.log(2))-2),R=Math.max(1,R);let G=n?o.halfFloatingPointTexture?ze.HALF_FLOAT:ze.FLOAT:ze.UNSIGNED_BYTE;this._texture=new Ft({context:o,width:R,height:R,pixelFormat:Qe.RGBA,pixelDatatype:G}),this._glowLengthTS=this._glowFactor*5,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;let E=this,v={u_radiusTS:function(){return E._radiusTS}};this._commands.computeCommand=new Fl({fragmentShaderSource:hk,outputTexture:this._texture,uniformMap:v,persists:!1,owner:this,postExecute:function(){E._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!l(a.vertexArray)){let R={direction:0},G=new Uint8Array(8);G[0]=0,G[1]=0,G[2]=255,G[3]=0,G[4]=255,G[5]=255,G[6]=0,G[7]=255;let E=$e.createVertexBuffer({context:o,typedArray:G,usage:Fe.STATIC_DRAW}),v=[{index:R.direction,vertexBuffer:E,componentsPerAttribute:2,normalize:!0,componentDatatype:J.UNSIGNED_BYTE}],I=$e.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:De.UNSIGNED_SHORT});a.vertexArray=new wn({context:o,attributes:v,indexBuffer:I}),a.shaderProgram=tn.fromCache({context:o,vertexShaderSource:fk,fragmentShaderSource:mk,attributeLocations:R}),a.renderState=Be.fromCache({blending:nn.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,d=o.uniformState.sunPositionColumbusView,u=this._boundingVolume,m=this._boundingVolume2D;h.clone(c,u.center),m.center.x=d.z,m.center.y=d.x,m.center.z=d.y,u.radius=W.SOLAR_RADIUS+W.SOLAR_RADIUS*this._glowLengthTS,m.radius=u.radius,i===re.SCENE3D?ue.clone(u,a.boundingVolume):i===re.COLUMBUS_VIEW&&ue.clone(m,a.boundingVolume);let p=no.computeActualEllipsoidPosition(e,c,pk),b=h.magnitude(h.subtract(p,e.camera.position,pk)),f=o.uniformState.projection,y=VWt;y.x=0,y.y=0,y.z=-b,y.w=1;let _=F.multiplyByVector(f,y,pk),S=no.clipToGLWindowCoordinates(t.viewport,_,CWt);y.x=W.SOLAR_RADIUS;let A=F.multiplyByVector(f,y,pk),Z=no.clipToGLWindowCoordinates(t.viewport,A,RWt);return this._size=k.magnitude(k.subtract(Z,S,pk)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};bk.prototype.isDestroyed=function(){return!1};bk.prototype.destroy=function(){let e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),he(this)};var gk=bk;var mbo=x(T(),1);var K0o=x(T(),1);var fLe=x(uU(),1);var l0o=x(T(),1);function GWt(e,t,n){return` float clipDistance = clip(gl_FragCoord, ${e}, ${t}); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = ${n}.rgb; + float clippingPlanesEdgeWidth = ${n}.a; + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) + { + out_FragColor = clippingPlanesEdgeColor; + } +`}var yk=GWt;var m0o=x(T(),1);var EWt={modifyFragmentShader:function(t){return t=He.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection; +void main() +{ +#ifndef SHADOW_MAP + if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif + czm_splitter_main(); +} +`,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},K1=EWt;var _A={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function xk(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=U.clone(U.DARKGRAY),this._highlightColor=U.clone(U.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=_A.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=e.opaquePass??Le.OPAQUE,this._cull=e.cull??!0,this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=F.clone(F.IDENTITY),this._modelMatrix=F.clone(F.IDENTITY),this.time=0,this.shadows=Gn.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,this.splitDirection=e.splitDirection??Gr.NONE,this._splittingEnabled=!1,this._error=void 0,LWt(this,e)}Object.defineProperties(xk.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},color:{get:function(){return U.clone(this._highlightColor)},set:function(e){this._highlightColor=U.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(l(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=ue.clone(e,this._boundingSphere)}}});function LWt(e,t){let n=R_.parse(t.arrayBuffer,t.byteOffset);if(e._parsedContent=n,e._rtcCenter=n.rtcCenter,e._hasNormals=n.hasNormals,e._hasColors=n.hasColors,e._hasBatchIds=n.hasBatchIds,e._isTranslucent=n.isTranslucent,!n.hasBatchIds&&l(n.batchTableBinary)&&(n.styleableProperties=Lh.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),l(n.draco)){let a=n.draco;e._decodingState=_A.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;l(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let o=n.normals;l(o)&&(e._isOctEncoded16P=o.octEncoded);let r=n.colors;l(r)&&(l(r.constantColor)&&(e._constantColor=U.clone(r.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=r.isRGB565);let s=n.batchIds;l(n.batchIds)&&(s.name="BATCH_ID",s.semantic="BATCH_ID",s.setIndex=void 0),n.hasBatchIds&&e._batchTableLoaded(n.batchLength,n.batchTableJson,n.batchTableBinary),e._pointsLength=n.pointsLength}var WWt=new h,vWt=new h,FWt=new h,mLe,bz;function IWt(e){if(!l(bz)){mLe=new fLe.default(0),bz=new Array(e);for(let t=0;t<e;++t)bz[t]=mLe.random()}return bz}function PWt(e){let n=e.length/3,i=Math.min(n,20),o=IWt(20),r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=h.fromElements(r,r,r,WWt),c=h.fromElements(s,s,s,vWt);for(let u=0;u<i;++u){let m=Math.floor(o[u]*n),p=h.unpack(e,m*3,FWt);h.minimumByComponent(a,p,a),h.maximumByComponent(c,p,c)}let d=ue.fromCornerPoints(a,c);return d.radius+=W.EPSILON2,d}function hLe(e,t){let n=J.fromTypedArray(e);return n===J.INT||n===J.UNSIGNED_INT||n===J.DOUBLE?(_t("Cast pnts property to floats",`Point cloud property "${t}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),new Float32Array(e)):e}var XWt=new ce,YWt=new ce,NWt=new U,pLe=0,gz=1,Tne=2,bLe=3,wWt=4,bne=new F,MWt=new F;function kWt(e,t){let n=t.context,i=e._parsedContent,o=e._pointsLength,r=i.positions,s=i.colors,a=i.normals,c=i.batchIds,d=i.styleableProperties,u=l(d),m=e._isQuantized,p=e._isQuantizedDraco,b=e._isOctEncoded16P,f=e._isOctEncodedDraco,y=e._quantizedRange,_=e._octEncodedRange,S=e._isRGB565,A=e._isTranslucent,Z=e._hasColors,R=e._hasNormals,G=e._hasBatchIds,E,v,I=[],X={};if(e._styleableShaderAttributes=X,u){let M=wWt;for(let D in d)if(d.hasOwnProperty(D)){let w=d[D],z=hLe(w.typedArray,D);E=w.componentCount,v=J.fromTypedArray(z);let K=$e.createVertexBuffer({context:n,typedArray:z,usage:Fe.STATIC_DRAW});e._geometryByteLength+=K.sizeInBytes;let ee={index:M,vertexBuffer:K,componentsPerAttribute:E,componentDatatype:v,normalize:!1,offsetInBytes:0,strideInBytes:0};I.push(ee),X[D]={location:M,componentCount:E},++M}}let Y=$e.createVertexBuffer({context:n,typedArray:r.typedArray,usage:Fe.STATIC_DRAW});e._geometryByteLength+=Y.sizeInBytes;let g;Z&&(g=$e.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=g.sizeInBytes);let C;R&&(C=$e.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=C.sizeInBytes);let V;G&&(c.typedArray=hLe(c.typedArray,"batchIds"),V=$e.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=V.sizeInBytes);let L=[];if(m?v=J.UNSIGNED_SHORT:p?v=y<=255?J.UNSIGNED_BYTE:J.UNSIGNED_SHORT:v=J.FLOAT,L.push({index:pLe,vertexBuffer:Y,componentsPerAttribute:3,componentDatatype:v,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(m||p?e._boundingSphere=ue.fromCornerPoints(h.ZERO,e._quantizedVolumeScale):e._boundingSphere=PWt(r.typedArray)),Z)if(S)L.push({index:gz,vertexBuffer:g,componentsPerAttribute:1,componentDatatype:J.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let M=A?4:3;L.push({index:gz,vertexBuffer:g,componentsPerAttribute:M,componentDatatype:J.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}R&&(b?(E=2,v=J.UNSIGNED_BYTE):f?(E=2,v=_<=255?J.UNSIGNED_BYTE:J.UNSIGNED_SHORT):(E=3,v=J.FLOAT),L.push({index:Tne,vertexBuffer:C,componentsPerAttribute:E,componentDatatype:v,normalize:!1,offsetInBytes:0,strideInBytes:0})),G&&L.push({index:bLe,vertexBuffer:V,componentsPerAttribute:1,componentDatatype:J.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),u&&(L=L.concat(I));let P=new wn({context:n,attributes:L}),N={depthTest:{enabled:!0}},O={depthTest:{enabled:!0},depthMask:!1,blending:nn.ALPHA_BLEND};e._opaquePass===Le.CESIUM_3D_TILE&&(N.stencilTest=Kt.setCesium3DTileBit(),N.stencilMask=Kt.CESIUM_3D_TILE_MASK,O.stencilTest=Kt.setCesium3DTileBit(),O.stencilMask=Kt.CESIUM_3D_TILE_MASK),e._opaqueRenderState=Be.fromCache(N),e._translucentRenderState=Be.fromCache(O),e._drawCommand=new at({boundingVolume:new ue,cull:e._cull,modelMatrix:new F,primitiveType:ve.POINTS,vertexArray:P,count:o,shaderProgram:void 0,uniformMap:void 0,renderState:A?e._translucentRenderState:e._opaqueRenderState,pass:A?Le.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function UWt(e,t){let n=t.context,i=e._isQuantized,o=e._isQuantizedDraco,r=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=XWt;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,d;t.mode===re.SCENE2D||c instanceof fn?d=Number.POSITIVE_INFINITY:d=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=d}return a},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){let a=e.clippingPlanes;return e.isClipped?a.texture:n.defaultTexture},u_clippingPlanesEdgeStyle:function(){let a=e.clippingPlanes;if(!l(a))return U.TRANSPARENT;let c=U.clone(a.edgeColor,NWt);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!l(a))return F.IDENTITY;let c=e.clippingPlanesOriginMatrix??e._modelMatrix;F.multiply(n.uniformState.view3D,c,bne);let d=F.multiply(bne,a.modelMatrix,bne);return F.inverseTranspose(d,MWt)}};K1.addUniforms(e,s),(i||o||r)&&(s=vt(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=YWt;if(l(e._quantizedVolumeScale)){let c=h.clone(e._quantizedVolumeScale,a);h.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),l(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function gne(e,t){let n=/czm_3dtiles_property_(\d+)/g,i=n.exec(e);for(;i!==null;){let o=parseInt(i[1]);t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function yne(e,t){e=e.slice(e.indexOf(` +`));let n=/czm_3dtiles_builtin_property_(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function xne(e,t){let n=e.numberOfAttributes;for(let i=0;i<n;++i){let o=e.getAttribute(i);if(o.index===t)return o}}var DWt={POSITION:"czm_3dtiles_builtin_property_POSITION",POSITION_ABSOLUTE:"czm_3dtiles_builtin_property_POSITION_ABSOLUTE",COLOR:"czm_3dtiles_builtin_property_COLOR",NORMAL:"czm_3dtiles_builtin_property_NORMAL"};function OWt(e,t,n){let i,o,r,s=t.context,a=l(n),c=e._isQuantized,d=e._isQuantizedDraco,u=e._isOctEncoded16P,m=e._isOctEncodedDraco,p=e._isRGB565,b=e._isTranslucent,f=e._hasColors,y=e._hasNormals,_=e._hasBatchIds,S=e._backFaceCulling,A=e._normalShading,Z=e._drawCommand.vertexArray,R=e.clippingPlanes,G=e._attenuation,E,v,I,X=b,Y=Je(DWt),g={},C=e._styleableShaderAttributes;for(o in C)C.hasOwnProperty(o)&&(r=C[o],Y[o]=`czm_3dtiles_property_${r.location}`,g[r.location]=r);if(a){let le={translucent:!1},Ce="(vec3 czm_3dtiles_builtin_property_POSITION, vec3 czm_3dtiles_builtin_property_POSITION_ABSOLUTE, vec4 czm_3dtiles_builtin_property_COLOR, vec3 czm_3dtiles_builtin_property_NORMAL)";E=n.getColorShaderFunction(`getColorFromStyle${Ce}`,Y,le),v=n.getShowShaderFunction(`getShowFromStyle${Ce}`,Y,le),I=n.getPointSizeShaderFunction(`getPointSizeFromStyle${Ce}`,Y,le),l(E)&&le.translucent&&(X=!0)}e._styleTranslucent=X;let V=l(E),L=l(v),P=l(I),N=e.isClipped,O=[],M=[];V&&(gne(E,O),yne(E,M)),L&&(gne(v,O),yne(v,M)),P&&(gne(I,O),yne(I,M));let D=M.indexOf("COLOR")>=0,w=M.indexOf("NORMAL")>=0;if(w&&!y)throw new ae("Style references the NORMAL semantic but the point cloud does not have normals");for(o in C)if(C.hasOwnProperty(o)){r=C[o];let le=O.indexOf(r.location)>=0,Ce=xne(Z,r.location);Ce.enabled=le}let z=f&&(!V||D);if(f){let le=xne(Z,gz);le.enabled=z}let K=y&&(A||S||w);if(y){let le=xne(Z,Tne);le.enabled=K}let ee={a_position:pLe};z&&(ee.a_color=gz),K&&(ee.a_normal=Tne),_&&(ee.a_batchId=bLe);let H="",te=O.length;for(i=0;i<te;++i){let le=O[i];r=g[le];let Ce=r.componentCount,ge=`czm_3dtiles_property_${le}`,Ee;Ce===1?Ee="float":Ee=`vec${Ce}`,H+=`in ${Ee} ${ge}; +`,ee[ge]=r.location}UWt(e,t);let q=`in vec3 a_position; +out vec4 v_color; +uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; +uniform vec4 u_constantColor; +uniform vec4 u_highlightColor; +`;q+=`float u_pointSize; +float tiles3d_tileset_time; +`,G&&(q+=`float u_geometricError; +float u_depthMultiplier; +`),q+=H,z&&(b?q+=`in vec4 a_color; +`:p?q+=`in float a_color; +const float SHIFT_RIGHT_11 = 1.0 / 2048.0; +const float SHIFT_RIGHT_5 = 1.0 / 32.0; +const float SHIFT_LEFT_11 = 2048.0; +const float SHIFT_LEFT_5 = 32.0; +const float NORMALIZE_6 = 1.0 / 64.0; +const float NORMALIZE_5 = 1.0 / 32.0; +`:q+=`in vec3 a_color; +`),K&&(u||m?q+=`in vec2 a_normal; +`:q+=`in vec3 a_normal; +`),_&&(q+=`in float a_batchId; +`),(c||d||m)&&(q+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; +`),V&&(q+=E),L&&(q+=v),P&&(q+=I),q+=`void main() +{ + u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; + tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; +`,G&&(q+=` u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; + u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; +`),z?b?q+=` vec4 color = a_color; +`:p?q+=` float compressed = a_color; + float r = floor(compressed * SHIFT_RIGHT_11); + compressed -= r * SHIFT_LEFT_11; + float g = floor(compressed * SHIFT_RIGHT_5); + compressed -= g * SHIFT_LEFT_5; + float b = compressed; + vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); + vec4 color = vec4(rgb, 1.0); +`:q+=` vec4 color = vec4(a_color, 1.0); +`:q+=` vec4 color = u_constantColor; +`,c||d?q+=` vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; +`:q+=` vec3 position = a_position; +`,q+=` vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); +`,K?(u?q+=` vec3 normal = czm_octDecode(a_normal); +`:m?q+=` vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; +`:q+=` vec3 normal = a_normal; +`,q+=` vec3 normalEC = czm_normal * normal; +`):q+=` vec3 normal = vec3(1.0); +`,V&&(q+=` color = getColorFromStyle(position, position_absolute, color, normal); +`),L&&(q+=` float show = float(getShowFromStyle(position, position_absolute, color, normal)); +`),P?q+=` gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio; +`:G?q+=` vec4 positionEC = czm_modelView * vec4(position, 1.0); + float depth = -positionEC.z; + gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); +`:q+=` gl_PointSize = u_pointSize; +`,q+=` color = color * u_highlightColor; +`,K&&A&&(q+=` float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC); + diffuseStrength = max(diffuseStrength, 0.4); + color.xyz *= diffuseStrength * czm_lightColor; +`),q+=` v_color = color; + gl_Position = czm_modelViewProjection * vec4(position, 1.0); +`,K&&S&&(q+=` float visible = step(-normalEC.z, 0.0); + gl_Position *= visible; + gl_PointSize *= visible; +`),L&&(q+=` gl_Position.w *= float(show); + gl_PointSize *= float(show); +`),q+=`} +`;let de=`in vec4 v_color; +`;N&&(de+=`uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +`,de+=` +`,de+=DS(R,s),de+=` +`),de+=`void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +`,N&&(de+=yk("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),de+=`} +`,e.splitDirection!==Gr.NONE&&(de=K1.modifyFragmentShader(de)),l(e._vertexShaderLoaded)&&(q=e._vertexShaderLoaded(q)),l(e._fragmentShaderLoaded)&&(de=e._fragmentShaderLoaded(de));let ye=e._drawCommand;l(ye.shaderProgram)&&ye.shaderProgram.destroy(),ye.shaderProgram=tn.fromCache({context:s,vertexShaderSource:q,fragmentShaderSource:de,attributeLocations:ee});try{ye.shaderProgram._bind()}catch{throw new ae("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function BWt(e,t){if(e._decodingState===_A.READY)return!1;if(e._decodingState===_A.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,o=J0.decodePointCloud(i,t);l(o)&&(e._decodingState=_A.DECODING,o.then(function(r){e._decodingState=_A.READY;let s=l(r.POSITION)?r.POSITION.array:void 0,a=l(r.RGB)?r.RGB.array:void 0,c=l(r.RGBA)?r.RGBA.array:void 0,d=l(r.NORMAL)?r.NORMAL.array:void 0,u=l(r.BATCH_ID)?r.BATCH_ID.array:void 0,m=l(s)&&l(r.POSITION.data.quantization),p=l(d)&&l(r.NORMAL.data.quantization);if(m){let _=r.POSITION.data.quantization,S=_.range;e._quantizedVolumeScale=h.fromElements(S,S,S),e._quantizedVolumeOffset=h.unpack(_.minValues),e._quantizedRange=(1<<_.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<r.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);let b=n.styleableProperties,f=i.batchTableProperties;for(let _ in f)if(f.hasOwnProperty(_)){let S=r[_];l(b)||(b={}),b[_]={typedArray:S.array,componentCount:S.data.componentsPerAttribute}}l(s)&&(n.positions={typedArray:s});let y=c??a;l(y)&&(n.colors={typedArray:y}),l(d)&&(n.normals={typedArray:d}),l(u)&&(n.batchIds={typedArray:u}),n.styleableProperties=b}).catch(function(r){e._decodingState=_A.FAILED,e._error=r}))}return!0}var zWt=new ce,HWt=new h;xk.prototype.update=function(e){let t=e.context;if(l(this._error)){let d=this._error;throw this._error=void 0,d}if(BWt(this,t))return;let i=!1,o=!F.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),l(this._drawCommand)||(kWt(this,e),o=!0,i=!0,this._ready=!0,this._parsedContent=void 0),o){F.clone(this.modelMatrix,this._modelMatrix);let d=this._drawCommand.modelMatrix;if(F.clone(this._modelMatrix,d),l(this._rtcCenter)&&F.multiplyByTranslation(d,this._rtcCenter,d),l(this._quantizedVolumeOffset)&&F.multiplyByTranslation(d,this._quantizedVolumeOffset,d),e.mode!==re.SCENE3D){let m=e.mapProjection,p=F.getColumn(d,3,zWt);ce.equals(p,ce.UNIT_W)||xt.basisTo2D(m,d,d)}let u=this._drawCommand.boundingVolume;if(ue.clone(this._boundingSphere,u),this._cull){let m=u.center;F.multiplyByPoint(d,m,m);let p=F.getScale(d,HWt);u.radius*=h.maximumComponent(p)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,i=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,i=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,i=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,i=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,i=!0);let r=this.splitDirection!==Gr.NONE;this._splittingEnabled!==r&&(this._splittingEnabled=r,i=!0),i&&OWt(this,e,this._style),this._drawCommand.castShadows=Gn.castShadows(this.shadows),this._drawCommand.receiveShadows=Gn.receiveShadows(this.shadows);let s=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=s?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=s?Le.TRANSLUCENT:this._opaquePass;let a=e.commandList,c=e.passes;(c.render||c.pick)&&a.push(this._drawCommand)};xk.prototype.isDestroyed=function(){return!1};xk.prototype.destroy=function(){let e=this._drawCommand;return l(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),he(this)};var Tk=xk;function AA(e){e=e??B.EMPTY_OBJECT,this.show=e.show??!0,this.modelMatrix=F.clone(e.modelMatrix??F.IDENTITY),this.shadows=e.shadows??Gn.ENABLED,this.maximumMemoryUsage=e.maximumMemoryUsage??256,this.shading=new hp(e.shading),this.style=e.style,this.frameFailed=new Se,this.frameChanged=new Se,this._clock=e.clock,this._intervals=e.intervals,this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,this._pointCloudEyeDomeLighting=new rb,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=new Array(5).fill(0),this._runningAverage=0}Object.defineProperties(AA.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){ss.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(l(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}}});function KWt(e){return`uniform vec4 czm_pickColor; +${e}`}function JWt(e){return function(t){return vt(t,{czm_pickColor:function(){return e._pickId.color}})}}function jWt(){return"czm_pickColor"}AA.prototype.makeStyleDirty=function(){this._styleDirty=!0};AA.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var QWt=new Q;function Sne(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function SA(e,t){return e._intervals.indexOf(t.start)}function qWt(e,t){let n=e._intervals,i=e._clock,o=Sne(e);if(o===0)return;let r=e._getAverageLoadTime(),s=Q.addSeconds(i.currentTime,r*o,QWt),a=n.indexOf(s),c=SA(e,t);return a===c&&(o>=0?++a:--a),n.get(a)}function $Wt(e){let t=e._intervals,i=e._clock.currentTime,o=t.indexOf(i);return t.get(o)}function evt(e,t,n){let i=Sne(e),o=SA(e,t),r=SA(e,n);return i>=0?o>=r:o<=r}function yLe(e,t){return function(n){let i=l(n.message)?n.message:n.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:i}):(console.log(`A frame failed to load: ${t}`),console.log(`Error: ${i}`))}}function tvt(e,t,n){let i=SA(e,t),o=e._frames,r=o[i];if(!l(r)){let s=t.data.transform,a=l(s)?F.fromArray(s):void 0,c=t.data.uri;r={pointCloud:void 0,transform:a,timestamp:Ni(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},o[i]=r,We.fetchArrayBuffer({url:c}).then(function(d){r.pointCloud=new Tk({arrayBuffer:d,cull:!0,fragmentShaderLoaded:KWt,uniformMapLoaded:JWt(e),pickIdLoaded:jWt})}).catch(yLe(e,c))}return r}function nvt(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function ivt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let o=t.pointCloud;if(l(o)&&!t.ready){let r=i.commandList,s=r.length;if(xLe(e,t,n,i),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,r.length=s,t.sequential)){let a=(Ni()-t.timestamp)/1e3;nvt(e,a)}}t.touchedFrameNumber=i.frameNumber}var ovt=new F;function rvt(e,t){let n=e.shading;return l(n)&&l(n.baseResolution)?n.baseResolution:l(t.boundingSphere)?W.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function svt(e){let t=e.shading;return l(t)&&l(t.maximumAttenuation)?t.maximumAttenuation:10}var avt=new hp;function xLe(e,t,n,i){let o=e.shading??avt,r=t.pointCloud,s=t.transform??F.IDENTITY;r.modelMatrix=F.multiplyTransformation(e.modelMatrix,s,ovt),r.style=e.style,r.time=n.timeSinceLoad,r.shadows=e.shadows,r.clippingPlanes=e._clippingPlanes,r.isClipped=n.isClipped,r.attenuation=o.attenuation,r.backFaceCulling=o.backFaceCulling,r.normalShading=o.normalShading,r.geometricError=rvt(e,r),r.geometricErrorScale=o.geometricErrorScale,r.maximumAttenuation=svt(e);try{r.update(i)}catch(a){yLe(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function _ne(e,t,n,i){let o=tvt(e,t,i);ivt(e,o,n,i)}function cvt(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function TLe(e,t){let n=e._frames,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(l(r)&&(!l(t)||t(r))){let s=r.pointCloud;r.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),l(s)&&s.destroy(),r===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[o]=void 0}}}function lvt(e,t){let n=SA(e,t),i=e._frames[n];if(l(i)&&i.ready)return i}function gLe(e,t,n,i,o){return l(n)?n.ready?!0:(_ne(e,t,i,o),n.ready):!1}function dvt(e,t,n,i,o){let r,s,a,c=e._intervals,d=e._frames,u=SA(e,n),m=SA(e,t);if(u>=m){for(r=u;r>=m;--r)if(s=c.get(r),a=d[r],gLe(e,s,a,i,o))return s}else for(r=u;r<=m;++r)if(s=c.get(r),a=d[r],gLe(e,s,a,i,o))return s;return t}function uvt(e,t,n){let i=e._frames,o=i.length;for(let r=0;r<o;++r){let s=i[r];l(s)&&l(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var J1={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};AA.prototype.update=function(e){if(e.mode===re.MORPHING||!this.show)return;l(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),l(this._loadTimestamp)||(this._loadTimestamp=Q.clone(e.time));let t=Math.max(Q.secondsDifference(e.time,this._loadTimestamp)*1e3,0),n=this._clippingPlanes,i=0,o=!1,r=l(n)&&n.enabled;r&&(n.update(e),i=n.clippingPlanesState),this._clippingPlanesState!==i&&(this._clippingPlanesState=i,o=!0);let s=this._styleDirty;this._styleDirty=!1,(o||s)&&uvt(this,o,s),J1.timeSinceLoad=t,J1.isClipped=r;let a=this.shading,c=this._pointCloudEyeDomeLighting,d=e.commandList,u=d.length,m=this._previousInterval,p=this._nextInterval,b=$Wt(this);if(!l(b))return;let f=!1,y=Sne(this),_=y===0;y!==this._clockMultiplier&&(f=!0,this._clockMultiplier=y),(!l(m)||_)&&(m=b),(!l(p)||f||evt(this,b,p))&&(p=qWt(this,b)),m=dvt(this,m,b,J1,e);let S=lvt(this,m);l(S)||(_ne(this,m,J1,e),S=this._lastRenderedFrame),l(S)&&xLe(this,S,J1,e),l(p)&&_ne(this,p,J1,e);let A=this;l(S)&&!l(this._lastRenderedFrame)&&e.afterRender.push(function(){return!0}),l(S)&&S!==this._lastRenderedFrame&&A.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return A.frameChanged.raiseEvent(A),!0}),this._previousInterval=m,this._nextInterval=p,this._lastRenderedFrame=S;let Z=this._totalMemoryUsageInBytes,R=this.maximumMemoryUsage*1024*1024;Z>R&&TLe(this,cvt(e));let E=d.length-u;l(a)&&a.attenuation&&a.eyeDomeLighting&&E>0&&c.update(e,u,a,this.boundingSphere)};AA.prototype.isDestroyed=function(){return!1};AA.prototype.destroy=function(){return TLe(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),he(this)};var j1=AA;function ALe(e,t){if(l(t)){let n=t.clock;l(n)&&n.getValue(e)}}function mvt(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!l(o))e.resize(),e.render(),requestAnimationFrame(n);else{let r=1e3/o,s=i-t;s>r&&(e.resize(),e.render(),t=i-s%r),requestAnimationFrame(n)}}catch(o){e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors&&e.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,o)}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function ZLe(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,l(e._scene)&&(e._scene.pixelRatio=t),t}function CLe(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=ZLe(e);e._canvasClientWidth=n,e._canvasClientHeight=i,n*=o,i*=o,t.width=n,t.height=i,e._canRender=n!==0&&i!==0,e._lastDevicePixelRatio=window.devicePixelRatio}function RLe(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;l(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function Ho(e,t){e=Pn(e),t=t??B.EMPTY_OBJECT;let n=document.createElement("div");n.className="cesium-widget",e.appendChild(n);let i=document.createElement("canvas"),o=mn.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=mn.imageRenderingValue()),i.oncontextmenu=function(){return!1},i.onselectstart=function(){return!1};function r(){i!==i.ownerDocument.activeElement&&i.ownerDocument.activeElement.blur()}(t.blurActiveElementOnCanvasFocus??!0)&&(i.addEventListener("mousedown",r),i.addEventListener("pointerdown",r)),n.appendChild(i);let a=document.createElement("div");a.className="cesium-widget-credits";let c=l(t.creditContainer)?Pn(t.creditContainer):n;c.appendChild(a);let d=l(t.creditViewport)?Pn(t.creditViewport):n,u=t.showRenderLoopErrors??!0,m=t.useBrowserRecommendedResolution??!0;this._element=n,this._container=e,this._canvas=i,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=d,this._creditContainer=c,this._innerCreditContainer=a,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=u,this._resolutionScale=1,this._useBrowserRecommendedResolution=m,this._forceResize=!1,this._entityView=void 0,this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._trackedEntityChanged=new Se,this._allowDataSourcesToSuspendAnimation=!0,this._clock=l(t.clock)?t.clock:new lf,l(t.shouldAnimate)&&(this._clock.shouldAnimate=t.shouldAnimate),CLe(this);try{let p=t.ellipsoid??ie.default,b=new ik({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:d,ellipsoid:p,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:t.scene3DOnly??!1,shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=b,b.camera.constrainedAxis=h.UNIT_Z,ZLe(this),RLe(this);let f=t.globe;l(f)||(f=new KN(p)),f!==!1&&(b.globe=f,b.globe.shadows=t.terrainShadows??Gn.RECEIVE_ONLY);let y=t.skyBox;!l(y)&&ie.WGS84.equals(p)&&(y=uk.createEarthSkyBox()),y!==!1&&(b.skyBox=y,b.sun=new gk,ie.WGS84.equals(p)&&(b.moon=new ew));let _=t.skyAtmosphere;!l(_)&&ie.WGS84.equals(p)&&(_=new sk(p),_.show=t.globe!==!1&&f.show),_!==!1&&(b.skyAtmosphere=_);let S=t.baseLayer;t.globe!==!1&&S!==!1&&(l(S)||(S=us.fromWorldImagery()),b.imageryLayers.add(S)),l(t.terrainProvider)&&t.globe!==!1&&(b.terrainProvider=t.terrainProvider),l(t.terrain)&&t.globe!==!1&&b.setTerrain(t.terrain),this._screenSpaceEventHandler=new Uu(i),l(t.sceneMode)&&(t.sceneMode===re.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===re.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=t.useDefaultRenderLoop??!0,this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;let A=this;this._onRenderError=function(I,X){A._useDefaultRenderLoop=!1,A._renderLoopRunning=!1,A._showRenderLoopErrors&&A.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,X)},b.renderError.addEventListener(this._onRenderError);let Z=t.dataSources,R=!1;l(Z)||(Z=new FX,R=!0);let G=new AY({scene:b,dataSourceCollection:Z}),E=new Fr;this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=t.automaticallyTrackDataSourceClocks??!0,this._dataSourceCollection=Z,this._destroyDataSourceCollection=R,this._dataSourceDisplay=G,this._eventHelper=E,this._canAnimateUpdateCallback=this._updateCanAnimate,E.add(this._clock.onTick,Ho.prototype._onTick,this),E.add(b.morphStart,Ho.prototype._clearTrackedObject,this),E.add(Z.dataSourceAdded,Ho.prototype._onDataSourceAdded,this),E.add(Z.dataSourceRemoved,Ho.prototype._onDataSourceRemoved,this),E.add(b.postRender,Ho.prototype._postRender,this);let v=Z.length;for(let I=0;I<v;I++)this._dataSourceAdded(Z,Z.get(I));this._dataSourceAdded(void 0,G.defaultDataSource),E.add(Z.dataSourceAdded,Ho.prototype._dataSourceAdded,this),E.add(Z.dataSourceRemoved,Ho.prototype._dataSourceRemoved,this)}catch(p){throw u&&this.showErrorPanel("Error constructing CesiumWidget.",'Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:',p),p}}Object.defineProperties(Ho.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},creditDisplay:{get:function(){return this._scene.frameState.creditDisplay}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},camera:{get:function(){return this._scene.camera}},ellipsoid:{get:function(){return this._scene.ellipsoid}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&mvt(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,Ane(this);let t=this.scene,n=t.mode;!l(e)||!l(e.position)?(this._needTrackedEntityUpdate=!1,(n===re.COLUMBUS_VIEW||n===re.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===re.COLUMBUS_VIEW||n===re.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(F.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,ALe(this.clock,e))}}});Ho.prototype.showErrorPanel=function(e,t,n){let i=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";let r=document.createElement("div");r.className="cesium-widget-errorPanel-content",o.appendChild(r);let s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),r.appendChild(s);let a=document.createElement("div");a.className="cesium-widget-errorPanel-scroll",r.appendChild(a);function c(){a.style.maxHeight=`${Math.max(Math.round(i.clientHeight*.9-100),30)}px`}c(),l(window.addEventListener)&&window.addEventListener("resize",c,!1);let d=l(t),u=l(n);if(d||u){let b=document.createElement("div");if(b.className="cesium-widget-errorPanel-message",a.appendChild(b),u){let f=pp(n);d||(typeof n=="string"&&(n=new Error(n)),t=pp({name:n.name,message:n.message}),f=n.stack),typeof console<"u"&&console.error(`${e} +${t} +${f}`);let y=document.createElement("div");y.className="cesium-widget-errorPanel-message-details collapsed";let _=document.createElement("span");_.className="cesium-widget-errorPanel-more-details",_.appendChild(document.createTextNode("See more...")),y.appendChild(_),y.onclick=function(S){y.removeChild(_),y.appendChild(document.createTextNode(f)),y.className="cesium-widget-errorPanel-message-details",r.className="cesium-widget-errorPanel-content expanded",y.onclick=void 0},a.appendChild(y)}b.innerHTML=`<p>${t}</p>`}let m=document.createElement("div");m.className="cesium-widget-errorPanel-buttonPanel",r.appendChild(m);let p=document.createElement("button");p.setAttribute("type","button"),p.className="cesium-button",p.appendChild(document.createTextNode("OK")),p.onclick=function(){l(c)&&l(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},m.appendChild(p),i.appendChild(o)};Ho.prototype.isDestroyed=function(){return!1};Ho.prototype.destroy=function(){let e=this.dataSources,t=e.length;for(let n=0;n<t;n++)this._dataSourceRemoved(e,e.get(n));this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),l(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),this._eventHelper.removeAll(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),he(this)};Ho.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,CLe(this),RLe(this),this._scene.requestRender())};Ho.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};Ho.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Ho.prototype._onEntityCollectionChanged,this)};Ho.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Ho.prototype._onEntityCollectionChanged,this),l(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0)};Ho.prototype._updateCanAnimate=function(e){this._clock.canAnimate=e};var hvt=new ue;Ho.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&this._canAnimateUpdateCallback(n);let i=this._entityView;if(l(i)){let o=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(o,!1,i.boundingSphere??hvt)===Vt.DONE&&i.update(t)}};Ho.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.trackedEntity===r&&(this.trackedEntity=void 0)}};Ho.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Ho.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&ALe(this.clock,e)};Ho.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Ho.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Ho.prototype._onDataSourceRemoved=function(e,t){let n=this.clockTrackedDataSource===t,i=t.entities.id;if(this._dataSourceChangedListeners[i](),this._dataSourceChangedListeners[i]=void 0,n){let o=e.length;this._automaticallyTrackDataSourceClocks&&o>0?this.clockTrackedDataSource=e.get(o-1):this.clockTrackedDataSource=void 0}};Ho.prototype.zoomTo=function(e,t){return VLe(this,e,{offset:t},!1)};Ho.prototype.flyTo=function(e,t){return VLe(this,e,t,!0)};function VLe(e,t,n,i){Ane(e);let o=new Promise(r=>{e._completeZoom=function(s){r(s)}});return e._zoomPromise=o,e._zoomIsFlight=i,e._zoomOptions=n,Promise.resolve(t).then(function(r){if(e._zoomPromise===o){if(r instanceof us){let s;l(r.imageryProvider)?s=Promise.resolve(r.getImageryRectangle()):s=new Promise(a=>{let c=r.readyEvent.addEventListener(()=>{c(),a(r.getImageryRectangle())})}),s.then(function(a){return US(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof ms||r instanceof j1||r instanceof Ux||r instanceof zs){e._zoomTarget=r;return}if(r.isLoading&&l(r.loadingEvent)){let s=r.loadingEvent.addEventListener(function(){s(),e._zoomPromise===o&&(e._zoomTarget=r.entities.values.slice(0))});return}if(Array.isArray(r)){e._zoomTarget=r.slice(0);return}r=r.values??r,l(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function _k(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function Ane(e){let t=e._zoomPromise;l(t)&&(_k(e),e._completeZoom(!1))}Ho.prototype._postRender=function(){fvt(this),pvt(this)};var _Le=new ue;function fvt(e){let t=e._zoomTarget;if(!l(t)||e.scene.mode===re.MORPHING)return;let n=e.scene,i=n.camera,o=e._zoomOptions??{},r;function s(u){l(o.offset)||(o.offset=new Dm(0,-.5,u.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(u,r):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(F.IDENTITY),e._completeZoom(!0)),_k(e)}if(t instanceof j1){if(l(t.boundingSphere)){s(t.boundingSphere);return}let u=t.frameChanged.addEventListener(function(m){s(m.boundingSphere),u()});return}if(t instanceof ms||t instanceof Ux){s(t.boundingSphere);return}if(t instanceof zs){s(t.boundingVolume);return}if(t instanceof fe){r={destination:n.ellipsoid.cartographicToCartesian(t),duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyTo(r):(i.setView(r),e._completeZoom(!0)),_k(e);return}let a=t,c=[];for(let u=0,m=a.length;u<m;u++){let p=e._dataSourceDisplay.getBoundingSphere(a[u],!1,_Le);if(p===Vt.PENDING)return;p!==Vt.FAILED&&c.push(ue.clone(_Le))}if(c.length===0){Ane(e);return}e.trackedEntity=void 0;let d=ue.fromBoundingSpheres(c);e._zoomIsFlight?(_k(e),i.flyToBoundingSphere(d,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(d,o.offset),i.lookAtTransform(F.IDENTITY),_k(e),e._completeZoom(!0))}var SLe=new ue;function pvt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=j.getValueOrUndefined(t.position,n);if(!l(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,SLe);if(r===Vt.PENDING)return;let s=o.mode;(s===re.COLUMBUS_VIEW||s===re.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===re.COLUMBUS_VIEW||s===re.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==Vt.FAILED?SLe:void 0;e._entityView=new CY(t,o,o.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var Sk=Ho;var Sgo=x(T(),1);var tgo=x(T(),1);function $1(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var ZA=new se;function bvt(e,t,n,i){let o=i.length;for(let r=0;r<o;++r){let s=i[r];if(s.x===t&&s.y===n&&s.level===e)return!0}return!1}$1.prototype.addAvailableTileRange=function(e,t,n,i,o){let r=this._tilingScheme,s=this._rootNodes;if(e===0)for(let p=n;p<=o;++p)for(let b=t;b<=i;++b)bvt(e,b,p,s)||s.push(new Q1(r,void 0,0,b,p));r.tileXYToRectangle(t,n,e,ZA);let a=ZA.west,c=ZA.north;r.tileXYToRectangle(i,o,e,ZA);let d=ZA.east,u=ZA.south,m=new _vt(e,a,u,d,c);for(let p=0;p<s.length;++p){let b=s[p];Zne(b.extent,m)&&Svt(this._maximumLevel,b,m)}};$1.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(q1(i.extent,e)){t=i;break}}return l(t)?Ak(void 0,t,e):-1};var gvt=[],yvt=[],xvt=new se,Tvt=new se;$1.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=gvt;t.length=0,e.east<e.west?(t.push(se.fromRadians(-Math.PI,e.south,e.east,e.north,xvt)),t.push(se.fromRadians(e.west,e.south,Math.PI,e.north,Tvt))):t.push(e);let n=yvt;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)Zk(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(l(n[i])&&n[i].length===0)return i;return 0};var GLe=new fe;$1.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,ZA);return se.center(i,GLe),this.computeMaximumLevelAtPosition(GLe)>=e};$1.prototype.computeChildMaskForTile=function(e,t,n){let i=e+1;if(i>=this._maximumLevel)return 0;let o=0;return o|=this.isTileAvailable(i,2*t,2*n+1)?1:0,o|=this.isTileAvailable(i,2*t+1,2*n+1)?2:0,o|=this.isTileAvailable(i,2*t,2*n)?4:0,o|=this.isTileAvailable(i,2*t+1,2*n)?8:0,o};function Q1(e,t,n,i,o){this.tilingScheme=e,this.parent=t,this.level=n,this.x=i,this.y=o,this.extent=e.tileXYToRectangle(i,o,n),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}Object.defineProperties(Q1.prototype,{nw:{get:function(){return this._nw||(this._nw=new Q1(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new Q1(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new Q1(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new Q1(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function _vt(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function Zne(e,t){let n=Math.max(e.west,t.west),i=Math.max(e.south,t.south),o=Math.min(e.east,t.east),r=Math.min(e.north,t.north);return i<r&&n<o}function Svt(e,t,n){for(;t.level<e;)if(yz(t.nw.extent,n))t=t.nw;else if(yz(t.ne.extent,n))t=t.ne;else if(yz(t.sw.extent,n))t=t.sw;else if(yz(t.se.extent,n))t=t.se;else break;if(t.rectangles.length===0||t.rectangles[t.rectangles.length-1].level<=n.level)t.rectangles.push(n);else{let i=xo(t.rectangles,n.level,Avt);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function Avt(e,t){return e.level-t}function yz(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function q1(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function Ak(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&q1(t._nw.extent,n),s=t._ne&&q1(t._ne.extent,n),a=t._sw&&q1(t._sw.extent,n),c=t._se&&q1(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,Ak(t,t._nw,n))),s&&(i=Math.max(i,Ak(t,t._ne,n))),a&&(i=Math.max(i,Ak(t,t._sw,n))),c&&(i=Math.max(i,Ak(t,t._se,n)));break}else r?t=t._nw:s?t=t._ne:a?t=t._sw:c?t=t._se:o=!0}for(;t!==e;){let r=t.rectangles;for(let s=r.length-1;s>=0&&r[s].level>i;--s){let a=r[s];q1(a,n)&&(i=a.level)}t=t.parent}return i}function Zk(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||Zne(t.extent,n[i]);if(!o)return;let r=t.rectangles;for(i=0;i<r.length;++i){let s=r[i];e[s.level]||(e[s.level]=n),e[s.level]=Zvt(e[s.level],s)}Zk(e,t._nw,n),Zk(e,t._ne,n),Zk(e,t._sw,n),Zk(e,t._se,n)}function Zvt(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];Zne(o,t)?(o.west<t.west&&n.push(new se(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new se(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new se(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new se(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var If=$1;var Cvt=15;function ELe(e){this.ellipsoid=e.ellipsoid??ie.default,this.credit=void 0,this.tilingScheme=void 0,this.height=void 0,this.width=void 0,this.encoding=void 0,this.lodCount=void 0,this.hasAvailability=!1,this.tilesAvailable=void 0,this.tilesAvailabilityLoaded=void 0,this.levelZeroMaximumGeometricError=void 0,this.terrainDataStructure=void 0}ELe.prototype.build=function(e){e._credit=this.credit,e._tilingScheme=this.tilingScheme,e._height=this.height,e._width=this.width,e._encoding=this.encoding,e._lodCount=this.lodCount,e._hasAvailability=this.hasAvailability,e._tilesAvailable=this.tilesAvailable,e._tilesAvailabilityLoaded=this.tilesAvailabilityLoaded,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._terrainDataStructure=this.terrainDataStructure};function Rvt(e,t){let n=t.copyrightText;l(n)&&(e.credit=new Rt(n));let i=t.spatialReference,o=i.latestWkid??i.wkid,r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=se.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new Oi(s);else if(o===3857){let d=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>d&&(t.extent.xmax=d),t.extent.ymax>d&&(t.extent.ymax=d),t.extent.xmin<-d&&(t.extent.xmin=-d),t.extent.ymin<-d&&(t.extent.ymin=-d),s.rectangleSouthwestInMeters=new k(r.xmin,r.ymin),s.rectangleNortheastInMeters=new k(r.xmax,r.ymax),e.tilingScheme=new Zr(s)}else throw new ae("Invalid spatial reference");let a=t.tileInfo;if(!l(a))throw new ae("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?Km.LERC:Km.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new If(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new If(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=Mo.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.width,e.tilingScheme.getNumberOfXTilesAtLevel(0)),t.bandCount>1&&console.log("ArcGISTiledElevationTerrainProvider: Terrain data has more than 1 band. Using the first one."),l(t.minValues)&&l(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function Vvt(e,t,n){try{let i=await t.fetchJson();Rvt(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw Bo.reportError(void 0,n,l(n)?n._errorEvent:void 0,o),i}}function Ox(e){e=e??B.EMPTY_OBJECT,this._resource=void 0,this._credit=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._maxLevel=void 0,this._terrainDataStructure=void 0,this._width=void 0,this._height=void 0,this._encoding=void 0,this._lodCount=void 0,this._hasAvailability=!1,this._tilesAvailable=void 0,this._tilesAvailabilityLoaded=void 0,this._availableCache={},this._errorEvent=new Se}Object.defineProperties(Ox.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){return this._tilesAvailable}}});Ox.fromUrl=async function(e,t){t=t??B.EMPTY_OBJECT,e=await Promise.resolve(e);let n=We.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new ELe(t);await Vvt(o,i);let r=new Ox(t);return o.build(r),r._resource=n,r};Ox.prototype.requestTileGeometry=function(e,t,n,i){let o=this._resource.getDerivedResource({url:`tile/${n}/${t}/${e}`,request:i}),r=this._hasAvailability,s=Promise.resolve(!0),a;if(r&&!l(Cne(this,n+1,e*2,t*2))){let m=LLe(this,n+1,e*2,t*2);s=m.promise,a=m.request}let c=o.fetchArrayBuffer();if(!l(c)||!l(s))return;let d=this,u=this._tilesAvailable;return Promise.all([c,s]).then(function(m){return new vc({buffer:m[0],width:d._width,height:d._height,childTileMask:r?u.computeChildMaskForTile(n,e,t):Cvt,structure:d._terrainDataStructure,encoding:d._encoding})}).catch(async function(m){if(l(a)&&a.state===pi.CANCELLED){i.cancel();try{await i.deferred?.promise}catch{}return i.state=pi.CANCELLED,Promise.reject(m)}return Promise.reject(m)})};function Cne(e,t,n,i){if(!e._hasAvailability)return;let o=e._tilesAvailabilityLoaded,r=e._tilesAvailable;if(t>e._lodCount)return!1;if(r.isTileAvailable(t,n,i))return!0;if(o.isTileAvailable(t,n,i))return!1}Ox.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Ox.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=Cne(this,n,e,t);if(l(i))return i;LLe(this,n,e,t)};Ox.prototype.loadTileDataAvailability=function(e,t,n){};function Gvt(e,t,n,i){let o=t-1,r=n-1,s=i[e.y*t+e.x],a=[],c={startX:e.x,startY:e.y,endX:0,endY:0},d=new k(e.x+1,e.y+1),u=!1,m=!1;for(;!(u&&m);){let p=d.x,b=m?d.y+1:d.y;if(!u){for(let f=e.y;f<b;++f)if(i[f*t+d.x]!==s){u=!0;break}u?(a.push(new k(d.x,e.y)),--d.x,--p,c.endX=d.x):d.x===o?(c.endX=d.x,u=!0):++d.x}if(!m){let f=d.y*t;for(let y=e.x;y<=p;++y)if(i[f+y]!==s){m=!0;break}m?(a.push(new k(e.x,d.y)),--d.y,c.endY=d.y):d.y===r?(c.endY=d.y,m=!0):++d.y}}return{endingIndices:a,range:c,value:s}}function Evt(e,t,n,i,o){let r=[];if(o.every(function(c){return c===o[0]}))return o[0]===1&&r.push({startX:e,startY:t,endX:e+n-1,endY:t+i-1}),r;let a=[new k(0,0)];for(;a.length>0;){let c=a.pop(),d=Gvt(c,n,i,o);if(d.value===1){let m=d.range;m.startX+=e,m.endX+=e,m.startY+=t,m.endY+=t,r.push(m)}let u=d.endingIndices;u.length>0&&(a=a.concat(u))}return r}function LLe(e,t,n,i){if(!e._hasAvailability)return{};let o=Math.floor(n/128)*128,r=Math.floor(i/128)*128,s=Math.min(1<<t,128),a=`tilemap/${t}/${r}/${o}/${s}/${s}`,c=e._availableCache;if(l(c[a]))return c[a];let d=new gr({throttle:!1,throttleByServer:!0,type:ws.TERRAIN}),m=e._resource.getDerivedResource({url:a,request:d}).fetchJson();return l(m)?(m=m.then(function(p){let b=Evt(o,r,s,s,p.data);e._tilesAvailabilityLoaded.addAvailableTileRange(t,o,r,o+s,r+s);let f=e._tilesAvailable;for(let y=0;y<b.length;++y){let _=b[y];f.addAvailableTileRange(t,_.startX,_.startY,_.endX,_.endY)}return Cne(e,t,n,i)}),c[a]={promise:m,request:d},m=m.finally(function(p){return delete c[a],p}),{promise:m,request:d}):{}}var Rne=Ox;var Ego=x(T(),1);var WLe="https://dev.virtualearth.net/REST/v1/Locations";function Vne(e){e=e??B.EMPTY_OBJECT;let t=e.key;this._key=t;let n={key:t};l(e.culture)&&(n.culture=e.culture),this._resource=new We({url:WLe,queryParameters:n}),this._credit=new Rt('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(Vne.prototype,{url:{get:function(){return WLe}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});Vne.prototype.geocode=async function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(n){return n.resourceSets.length===0?[]:n.resourceSets[0].resources.map(function(o){let r=o.bbox,s=r[0],a=r[1],c=r[2],d=r[3];return{displayName:o.name,destination:se.fromDegrees(a,s,d,c)}})})};var Gne=Vne;var vgo=x(T(),1);function Ene(){}Object.defineProperties(Ene.prototype,{credit:{get:function(){}}});Ene.prototype.geocode=function(e){let t=e.match(/[^\s,\n]+/g);if(t.length===2||t.length===3){let n=+t[0],i=+t[1],o=t.length===3?+t[2]:300;if(isNaN(n)&&isNaN(i)){let r=/^(\d+.?\d*)([nsew])/i;for(let s=0;s<t.length;++s){let a=t[s].match(r);r.test(t[s])&&a.length===3&&(/^[ns]/i.test(a[2])?i=/^[n]/i.test(a[2])?+a[1]:-a[1]:/^[ew]/i.test(a[2])&&(n=/^[e]/i.test(a[2])?+a[1]:-a[1]))}}if(!isNaN(n)&&!isNaN(i)&&!isNaN(o)){let r={displayName:e,destination:h.fromDegrees(n,i,o)};return Promise.resolve([r])}}return Promise.resolve([])};var Lne=Ene;var kgo=x(T(),1);var Lvt=new ce,vLe=new h,eV=new h;function Wvt(e){let t=e.points,n=e.times;if(t.length<3){let i=n[0],o=1/(n[1]-i),r=t[0],s=t[1];return function(a,c){l(c)||(c=new h);let d=(a-i)*o;return h.lerp(r,s,d,c)}}return function(i,o){l(o)||(o=new h);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=Lvt;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,d,u,m,p;return r===0?(c=t[0],d=t[1],u=e.firstTangent,m=h.subtract(t[2],c,vLe),h.multiplyByScalar(m,.5,m),p=F.multiplyByVector(Ey.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],d=t[r+1],m=e.lastTangent,u=h.subtract(d,t[r-1],vLe),h.multiplyByScalar(u,.5,u),p=F.multiplyByVector(Ey.hermiteCoefficientMatrix,a,a)):(c=t[r-1],d=t[r],u=t[r+1],m=t[r+2],p=F.multiplyByVector(Bx.catmullRomCoefficientMatrix,a,a)),o=h.multiplyByScalar(c,p.x,o),h.multiplyByScalar(d,p.y,eV),h.add(o,eV,o),h.multiplyByScalar(u,p.z,eV),h.add(o,eV,o),h.multiplyByScalar(m,p.w,eV),h.add(o,eV,o)}}var vvt=new h,Fvt=new h;function Bx(e){e=e??B.EMPTY_OBJECT;let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(l(i)||(i=vvt,h.multiplyByScalar(t[1],2,i),h.subtract(i,t[2],i),h.subtract(i,t[0],i),h.multiplyByScalar(i,.5,i)),!l(o))){let r=t.length-1;o=Fvt,h.multiplyByScalar(t[r-1],2,o),h.subtract(t[r],o,o),h.add(o,t[r-2],o),h.multiplyByScalar(o,.5,o)}this._times=n,this._points=t,this._firstTangent=h.clone(i),this._lastTangent=h.clone(o),this._evaluateFunction=Wvt(this),this._lastTimeIndex=0}Object.defineProperties(Bx.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}});Bx.catmullRomCoefficientMatrix=new F(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);Bx.prototype.findTimeInterval=So.prototype.findTimeInterval;Bx.prototype.wrapTime=So.prototype.wrapTime;Bx.prototype.clampTime=So.prototype.clampTime;Bx.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var Wne=Bx;var Fyo=x(T(),1);var uyo=x(T(),1);var vne={},Ivt={positions:void 0,normals:void 0,indices:void 0,edgeIndicesWest:void 0,edgeIndicesSouth:void 0,edgeIndicesEast:void 0,edgeIndicesNorth:void 0},Pvt=new fe,Xvt=new h,Yvt=new F,Nvt=new F,wvt=new F,Mvt=new h,kvt=new h,Uvt=new h,Dvt=new h,Ovt=new fe,Bvt=new k,Ck=new h,zvt=new k,Hvt=new h,Kvt=new h,xz=function(e,t){return e-t};vne.createMesh=async function(e){e=e??B.EMPTY_OBJECT;let{exaggeration:t=1,exaggerationRelativeHeight:n=0,hasVertexNormals:i,hasWebMercatorT:o,gltf:r,minimumHeight:s,maximumHeight:a,skirtHeight:c}=e,u=t!==1,m=ue.clone(e.boundingSphere,new ue),p=en.clone(e.orientedBoundingBox,new en),b=h.clone(e.horizonOcclusionPoint,new h),f=ie.clone(e.ellipsoid,new ie),y=se.clone(e.rectangle,new se);await(r.extensionsRequired!==void 0&&r.extensionsRequired.indexOf("EXT_meshopt_compression")!==-1?my.ready:Promise.resolve(void 0));let A=y.west,Z=y.south,R=y.north,G=y.width,E=y.height,v=se.center(y,Pvt);v.height=.5*(s+a);let I=fe.toCartesian(v,f,Xvt),X=xt.eastNorthUpToFixedFrame(I,f,Yvt),Y=F.inverseTransformation(X,Nvt),g=F.unpack(r.nodes[0].matrix,0,wvt);g=F.multiply(Xi.Y_UP_TO_Z_UP,g,g);let C=V2t(r,i,Ivt),V=Mo.getSkirtVertexCount(C.edgeIndicesWest,C.edgeIndicesSouth,C.edgeIndicesEast,C.edgeIndicesNorth),L=C.positions,P=C.normals,N=C.indices,O=L.length/3,M=O+V,D=N.length,w=Mo.getSkirtIndexCountWithFilledCorners(V),z=M<=65535?Uint16Array:Uint32Array,K=new z(D+w);K.set(N);let ee=new z(C.edgeIndicesWest),H=new z(C.edgeIndicesSouth),te=new z(C.edgeIndicesEast),q=new z(C.edgeIndicesNorth),de=new z(ee).sort(),ye=new z(H).sort(),le=new z(te).sort(),Ce=new z(q).sort(),ge=ui.geodeticLatitudeToMercatorAngle(Z),Re=1/(ui.geodeticLatitudeToMercatorAngle(R)-ge),Xe=h.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Mvt),we=h.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,kvt),nt=new hr(m.center,void 0,void 0,void 0,void 0,i,o,u,t,n),je=nt.stride,et=new Float32Array(M*je),Ie=0;for(let St=0;St<O;St++){let Et=h.unpack(L,St*3,Uvt),on=F.multiplyByPoint(g,Et,Dvt),Ot=fe.fromCartesian(on,f,Ovt),{longitude:gt,latitude:Wt,height:Cn}=Ot,dt=(gt-A)/G,mt=(Wt-Z)/E;dt=W.clamp(dt,0,1),mt=W.clamp(mt,0,1),xo(de,St,xz)>=0?dt=0:xo(le,St,xz)>=0&&(dt=1),xo(ye,St,xz)>=0?mt=0:xo(Ce,St,xz)>=0&&(mt=1);let Qn=k.fromElements(dt,mt,Bvt),Yn;if(i){let so=h.unpack(P,St*3,Ck);so=F.multiplyByPointAsVector(g,so,Ck),so=h.normalize(so,Ck),Yn=cn.octEncode(so,zvt)}let $i;o&&($i=(ui.geodeticLatitudeToMercatorAngle(Wt)-ge)*Re);let Ko;u&&(Ko=f.geodeticSurfaceNormal(on,Hvt)),Ie=nt.encode(et,Ie,on,Qn,Cn,Yn,$i,Ko);let mo=F.multiplyByPoint(Y,on,Kvt);Xe=h.minimumByComponent(mo,Xe,Xe),we=h.maximumByComponent(mo,we,we)}let Oe=new cc(h.clone(nt.center,new h),et,K,D,O,s,a,y,ue.clone(m,new ue),h.clone(b,new h),je,en.clone(p,new en),nt,ee,H,te,q);return wLe(Oe,y,f,Xe,we,X,Y,c),Promise.resolve(Oe)};var Jvt=new k,jvt=new k,Qvt=new Array(6),qvt=new k,$vt=new k,e2t=new k,t2t=new h,n2t=new h,i2t=new h,o2t=new fe,r2t=new h,s2t=new fe,a2t=new fe,FLe=new h,c2t=new h,l2t=new h,d2t=new h,u2t=new h,m2t=new h,h2t=new h,f2t=new h,p2t=new F,b2t=new F,ILe=new k,g2t=new k,y2t=new h,x2t=new ue,T2t=new en,_2t=new nu,PLe=new h,XLe=new k,S2t=new k,YLe=new h,A2t=new h;function Z2t(e){let t=e.meshes[0].primitives[0],n=e.accessors[t.attributes.POSITION],i=e.bufferViews[n.bufferView],o=n.count,r=i.extensions?i.extensions.EXT_meshopt_compression:void 0;if(r===void 0){let b=e.buffers[i.buffer].extras._pipeline.source;return new Float32Array(b.buffer,b.byteOffset+(i.byteOffset??0)+(n.byteOffset??0),o*3)}let s=e.buffers[r.buffer].extras._pipeline.source,a=new Uint8Array(s.buffer,s.byteOffset+(r.byteOffset??0)+(n.byteOffset??0),r.byteLength),c=r.byteStride,d=c===4?Uint8Array:Uint16Array,u=new d(o*4);my.decodeVertexBuffer(new Uint8Array(u.buffer),o,c,a);let m=(1<<u.BYTES_PER_ELEMENT*8)-1,p=new Float32Array(o*3);for(let b=0;b<o;b++)p[b*3+0]=u[b*4+0]/m,p[b*3+1]=u[b*4+1]/m,p[b*3+2]=u[b*4+2]/m;return p}function C2t(e){let t=e.meshes[0].primitives[0],n=e.accessors[t.attributes.NORMAL],i=e.bufferViews[n.bufferView],o=n.count,r=i.extensions?i.extensions.EXT_meshopt_compression:void 0;if(r===void 0){let m=e.buffers[i.buffer].extras._pipeline.source;return new Float32Array(m.buffer,m.byteOffset+(i.byteOffset??0)+(n.byteOffset??0),o*3)}let s=e.buffers[r.buffer].extras._pipeline.source,a=new Uint8Array(s.buffer,s.byteOffset+(r.byteOffset??0)+(n.byteOffset??0),r.byteLength),c=r.byteStride,d=new Int8Array(o*c);my.decodeVertexBuffer(new Uint8Array(d.buffer),o,c,a);let u=new Float32Array(o*3);for(let m=0;m<o;m++){let p=Math.max(d[m*4+0]/127,-1),b=Math.max(d[m*4+1]/127,-1),f=1-(Math.abs(p)+Math.abs(b));if(f<0){let _=p,S=b;p=(1-Math.abs(S))*W.signNotZero(_),b=(1-Math.abs(_))*W.signNotZero(S)}let y=Ck;y.x=p,y.y=b,y.z=f,y=h.normalize(y,Ck),u[m*3+0]=y.x,u[m*3+1]=y.y,u[m*3+2]=y.z}return u}function R2t(e){let t=e.meshes[0].primitives[0],n=e.accessors[t.indices],i=e.bufferViews[n.bufferView],o=n.count,r=n.componentType===J.UNSIGNED_SHORT?Uint16Array:Uint32Array,s=i.extensions?i.extensions.EXT_meshopt_compression:void 0;if(s===void 0){let u=e.buffers[i.buffer].extras._pipeline.source;return new r(u.buffer,u.byteOffset+(i.byteOffset??0)+(n.byteOffset??0),o)}let a=e.buffers[s.buffer].extras._pipeline.source,c=new Uint8Array(a.buffer,a.byteOffset+(s.byteOffset??0)+(n.byteOffset??0),s.byteLength),d=new r(o);return my.decodeIndexBuffer(new Uint8Array(d.buffer),o,s.byteStride,c),d}function Tz(e,t){let n=e.meshes[0].primitives[0],i=e.accessors[n.extensions.CESIUM_tile_edges[t]],o=e.bufferViews[i.bufferView],r=i.count,s=i.componentType===J.UNSIGNED_SHORT?Uint16Array:Uint32Array,a=o.extensions?o.extensions.EXT_meshopt_compression:void 0;if(a===void 0){let p=e.buffers[o.buffer].extras._pipeline.source;return new s(p.buffer,p.byteOffset+(o.byteOffset??0)+(i.byteOffset??0),r)}let c=e.buffers[a.buffer].extras._pipeline.source,d=new Uint8Array(c.buffer,c.byteOffset+(a.byteOffset??0)+(i.byteOffset??0),a.byteLength),u=new s(r),m=a.byteStride;return my.decodeIndexSequence(new Uint8Array(u.buffer),r,m,d),u}function V2t(e,t,n){return n.positions=Z2t(e),n.normals=t?C2t(e):void 0,n.indices=R2t(e),n.edgeIndicesWest=Tz(e,"left"),n.edgeIndicesSouth=Tz(e,"bottom"),n.edgeIndicesEast=Tz(e,"right"),n.edgeIndicesNorth=Tz(e,"top"),n}vne.upsampleMesh=function(e){e=e??B.EMPTY_OBJECT;let{isEastChild:t,isNorthChild:n,parentMinimumHeight:i,parentMaximumHeight:o,skirtHeight:r}=e,s=e.parentIndexCountWithoutSkirts,a=e.parentIndices,c=e.parentVertexCountWithoutSkirts,d=e.parentVertices,u=hr.clone(e.parentEncoding,new hr),m=u.hasVertexNormals,p=u.hasWebMercatorT,b=u.exaggeration,f=u.exaggerationRelativeHeight,_=b!==1,S=se.clone(e.rectangle,new se),A=ie.clone(e.ellipsoid),Z=[],R=[],G=[],E=[],v=[],I=[],X=[],Y=[];M2t(t,n,s,a,c,d,u,E,v,I,X,Y,Z,G,R);let g=se.center(S,o2t);g.height=.5*(i+o);let C=fe.toCartesian(g,A,r2t),V=Z.length,L=new hr(C,void 0,void 0,void 0,void 0,m,p,_,b,f),P=L.stride,N=Mo.getSkirtVertexCount(v,I,X,Y),O=V+N,M=E.length,D=Mo.getSkirtIndexCountWithFilledCorners(N),w=M+D,z=O<=65535?Uint16Array:Uint32Array,K=new z(w);K.set(E);let ee=new z(v),H=new z(I),te=new z(X),q=new z(Y),de=new Float32Array(O*P),ye=0,le=xt.eastNorthUpToFixedFrame(C,A,p2t),Ce=F.inverseTransformation(le,b2t),ge=S.west,Ee=S.east,Re=S.south,Xe=S.north,we=ui.geodeticLatitudeToMercatorAngle(Re),je=1/(ui.geodeticLatitudeToMercatorAngle(Xe)-we),et=Number.POSITIVE_INFINITY,Ie=Number.NEGATIVE_INFINITY,Oe=h.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,h2t),St=h.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,f2t);for(let Cn=0;Cn<V;Cn++){let dt=Z[Cn],mt=a[dt*3+0],Qn=a[dt*3+1],Yn=a[dt*3+2],$i=g2t;$i.x=R[Cn*2+0],$i.y=R[Cn*2+1];let Ko=$i.x,mo=$i.y,so=G[Cn*2+0],ti=G[Cn*2+1],ni=1-so-ti,yn=u.decodeHeight(d,mt),Mn=u.decodeHeight(d,Qn),Vr=u.decodeHeight(d,Yn),Is=yn*so+Mn*ti+Vr*ni;et=Math.min(Is,et),Ie=Math.max(Is,Ie);let Ps=W.lerp(ge,Ee,Ko),Xs=W.lerp(Re,Xe,mo),Ta=fe.fromRadians(Ps,Xs,Is,a2t),Uo=fe.toCartesian(Ta,A,c2t),hi=F.multiplyByPoint(Ce,Uo,d2t);Oe=h.minimumByComponent(hi,Oe,Oe),St=h.maximumByComponent(hi,St,St);let yo;if(m){let Ei=u.decodeNormal(d,mt,t2t),Yo=u.decodeNormal(d,Qn,n2t),fc=u.decodeNormal(d,Yn,i2t),$r=h.fromElements(Ei.x*so+Yo.x*ti+fc.x*ni,Ei.y*so+Yo.y*ti+fc.y*ni,Ei.z*so+Yo.z*ti+fc.z*ni,PLe);$r=h.normalize($r,PLe),yo=cn.octEncode($r,S2t)}let eo;p&&(eo=(ui.geodeticLatitudeToMercatorAngle(Xs)-we)*je);let Ys;_&&(Ys=A.geodeticSurfaceNormal(Uo,A2t)),ye=L.encode(de,ye,Uo,$i,Is,yo,eo,Ys)}let Et=en.fromRectangle(S,et,Ie,A,T2t),on=ue.fromVertices(de,L.center,P,x2t),gt=new af(A).computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid(L.center,de,P,L.center,et,y2t),Wt=new cc(h.clone(L.center,new h),de,K,M,V,et,Ie,S,ue.clone(on),h.clone(gt),P,en.clone(Et),L,ee,H,te,q);return wLe(Wt,S,A,Oe,St,le,Ce,r),Wt};function wLe(e,t,n,i,o,r,s,a){let{encoding:c}=e,d=c.stride,u=e.vertices,{hasVertexNormals:m,hasWebMercatorT:p,exaggeration:b,exaggerationRelativeHeight:f}=c,_=b!==1,S=e.vertexCountWithoutSkirts,A=S*d,Z=u.length/d,R=Z-S,G=e.indices,E=e.indexCountWithoutSkirts,v=e.westIndicesSouthToNorth,I=e.southIndicesEastToWest,X=e.eastIndicesNorthToSouth,Y=e.northIndicesWestToEast;Mo.addSkirtIndicesWithFilledCorners(v,I,X,Y,S,G,E);let g=0,C=g+v.length,V=C+I.length,L=V+X.length,P=[v,I,X,Y],N=[g,C,V,L],O=[-1,0,1,0],M=[0,-1,0,1],D=h.clone(i,u2t),w=h.clone(o,m2t),z=e.maximumHeight,K=e.minimumHeight-a;for(let te=0;te<R;te++){let q=0;for(q=0;q<3&&!(te<N[q+1]);q++);let de=P[q][te-N[q]],ye=c.decodeTextureCoordinates(u,de,ILe),le=1e-4,Ce=ye.x+O[q]*le,ge=ye.y+M[q]*le,Ee=W.lerp(t.west,t.east,Ce),Re=W.clamp(W.lerp(t.south,t.north,ge),-W.PI_OVER_TWO,+W.PI_OVER_TWO),we=c.decodeHeight(u,de)-a,nt=fe.fromRadians(Ee,Re,we,s2t),je=fe.toCartesian(nt,n,FLe),et;m&&(et=c.getOctEncodedNormal(u,de,XLe));let Ie;p&&(Ie=c.decodeWebMercatorT(u,de));let Oe;_&&(Oe=n.geodeticSurfaceNormal(je,YLe)),A=c.encode(u,A,je,ye,we,et,Ie,Oe);let St=F.multiplyByPoint(s,je,l2t);h.minimumByComponent(St,D,D),h.maximumByComponent(St,w,w)}let ee=nu.fromCorners(D,w,_2t),H=new hr(c.center,ee,K,z,r,c.hasVertexNormals,c.hasWebMercatorT,_,b,f);if(c.quantization!==H.quantization){let te=H,q=te.stride,de=new Float32Array(Z*q),ye=0;for(let le=0;le<Z;le++)ye=te.encode(de,ye,c.decodePosition(u,le,FLe),c.decodeTextureCoordinates(u,le,ILe),c.decodeHeight(u,le),c.hasVertexNormals?c.getOctEncodedNormal(u,le,XLe):void 0,c.hasWebMercatorT?c.decodeWebMercatorT(u,le):void 0,c.hasGeodeticSurfaceNormals?c.decodeGeodeticSurfaceNormal(u,le,YLe):void 0);e.vertices=de,e.stride=q,e.encoding=te}return e}var Fne=0,G2t=1,Ine=2,Pne=3,E2t=4,L2t=new h,W2t=[new h,new h,new h,new h,new h,new h],v2t=[new k,new k,new k,new k,new k,new k],F2t=[new h,new h,new h,new h,new h,new h],I2t=[new k,new k,new k,new k,new k,new k];function NLe(e,t,n,i){switch(n){case Fne:return W.sign(i.x-e.x);case Ine:return W.sign(t.x-i.x);case Pne:return W.sign(i.y-e.y);default:return W.sign(t.y-i.y)}}function P2t(e,t,n,i,o,r){let s,a,c;switch(n){case Fne:s=(e.x-i.x)/(o.x-i.x),a=e.x,c=i.y+(o.y-i.y)*s;break;case Ine:s=(t.x-i.x)/(o.x-i.x),a=t.x,c=i.y+(o.y-i.y)*s;break;case Pne:s=(e.y-i.y)/(o.y-i.y),a=i.x+(o.x-i.x)*s,c=e.y;break;default:s=(t.y-i.y)/(o.y-i.y),a=i.x+(o.x-i.x)*s,c=t.y;break}return h.fromElements(a,c,s,r)}var X2t={length:0,coordinates:[new k,new k,new k,new k,new k,new k],barycentricCoordinates:[new h,new h,new h,new h,new h,new h]};function Y2t(e,t,n,i,o,r,s,a){let c=0,d=v2t,u=W2t,m=3,p=I2t;k.clone(o,p[0]),k.clone(r,p[1]),k.clone(s,p[2]);let b=F2t;h.fromElements(1,0,0,b[0]),h.fromElements(0,1,0,b[1]),h.fromElements(0,0,1,b[2]);for(let f=0;f<t;f++){let y=(e+f)%E2t,_=d,S=u;d=p,u=b,c=m,p=_,b=S,m=0;let A=c-1,Z=d[A],R=u[A],G=NLe(n,i,y,Z);for(let E=0;E<c;E++){let v=d[E],I=u[E],X=NLe(n,i,y,v);if(G*X===-1){let Y=P2t(n,i,y,Z,v,L2t),{x:g,y:C,z:V}=Y,L=1-V,P=R.x*L+I.x*V,N=R.y*L+I.y*V,O=R.z*L+I.z*V;k.fromElements(g,C,p[m]),h.fromElements(P,N,O,b[m]),m++}X>=0&&(k.clone(v,p[m]),h.clone(I,b[m]),m++),A=E,Z=v,R=I,G=X}if(m===0)break}a.length=m;for(let f=0;f<m;f++)k.clone(p[f],a.coordinates[f]),h.clone(b[f],a.barycentricCoordinates[f]);return a}function N2t(e,t,n,i,o,r,s,a){return Y2t(e?t?Pne:Fne:t?Ine:G2t,2,n,i,o,r,s,a)}var w2t=[[],[0],[1],[0,1],[2],[0,2],[1,2],[0,1,2]];function M2t(e,t,n,i,o,r,s,a,c,d,u,m,p,b,f){let y={},_=e?.5:0,S=e?1:.5,A=t?.5:0,Z=t?1:.5,R=Jvt;R.x=_,R.y=A;let G=jvt;G.x=S,G.y=Z;let E=0;for(let v=0;v<n;v+=3){let I=i[v+0],X=i[v+1],Y=i[v+2],g=s.decodeTextureCoordinates(r,I,qvt),C=s.decodeTextureCoordinates(r,X,$vt),V=s.decodeTextureCoordinates(r,Y,e2t),L=N2t(e,t,R,G,g,C,V,X2t),P=L.length;if(P<3)continue;let N=Qvt;for(let w=0;w<P;w++){let z=L.barycentricCoordinates[w],K=z.x,ee=z.y,H=z.z,te=Math.ceil(K)|Math.ceil(ee)<<1|Math.ceil(H)<<2,q=w2t[te],de,ye=!1;if(q.length===1){let le=q[0],ge=i[v+le];de=y[ge],de===void 0&&(ye=!0,de=E++,y[ge]=de)}else if(q.length===2){let le=q[0],Ce=q[1],ge=i[v+le],Ee=i[v+Ce],Re=L.barycentricCoordinates[(w+P-1)%P],Xe=Math.ceil(Re.x)|Math.ceil(Re.y)<<1|Math.ceil(Re.z)<<2,we=te===Xe,nt=Math.min(ge,Ee),je=Math.max(ge,Ee),et=o+2*(nt*o+je),Ie=et+0,Oe=et+1,St=y[Ie],Et=y[Oe],on=!we==(St===void 0||Et===void 0);if(de=on?St:Et,de===void 0){ye=!0,de=E++;let Ot=on?Ie:Oe;y[Ot]=de}}else ye=!0,de=E++;if(N[w]=de,ye){let le=v/3;p.push(le);let Ce=L.coordinates[w],ge=(Ce.x-_)/(S-_),Ee=(Ce.y-A)/(Z-A);f.push(ge,Ee),b.push(K,ee),ge===0?c.push(de):ge===1&&u.push(de),Ee===0?d.push(de):Ee===1&&m.push(de)}}let O=N[0],M=N[1],D=N[2];a.push(O,M,D);for(let w=3;w<P;w++)M=D,D=N[w],a.push(O,M,D)}c.sort(function(v,I){return f[v*2+1]-f[I*2+1]}),d.sort(function(v,I){return f[I*2+0]-f[v*2+0]}),u.sort(function(v,I){return f[I*2+1]-f[v*2+1]}),m.sort(function(v,I){return f[v*2+0]-f[I*2+0]})}var tV=vne;var byo=x(T(),1);var _z={};_z.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){l(r)?r.length=0:r=[];let s,a,c;t?(s=n<e,a=i<e,c=o<e):(s=n>e,a=i>e,c=o>e);let d=s+a+c,u,m,p,b,f,y;return d===1?s?(u=(e-n)/(i-n),m=(e-n)/(o-n),r.push(1),r.push(2),m!==1&&(r.push(-1),r.push(0),r.push(2),r.push(m)),u!==1&&(r.push(-1),r.push(0),r.push(1),r.push(u))):a?(p=(e-i)/(o-i),b=(e-i)/(n-i),r.push(2),r.push(0),b!==1&&(r.push(-1),r.push(1),r.push(0),r.push(b)),p!==1&&(r.push(-1),r.push(1),r.push(2),r.push(p))):c&&(f=(e-o)/(n-o),y=(e-o)/(i-o),r.push(0),r.push(1),y!==1&&(r.push(-1),r.push(2),r.push(1),r.push(y)),f!==1&&(r.push(-1),r.push(2),r.push(0),r.push(f))):d===2?!s&&n!==e?(b=(e-i)/(n-i),f=(e-o)/(n-o),r.push(0),r.push(-1),r.push(1),r.push(0),r.push(b),r.push(-1),r.push(2),r.push(0),r.push(f)):!a&&i!==e?(y=(e-o)/(i-o),u=(e-n)/(i-n),r.push(1),r.push(-1),r.push(2),r.push(1),r.push(y),r.push(-1),r.push(0),r.push(1),r.push(u)):!c&&o!==e&&(m=(e-n)/(o-n),p=(e-i)/(o-i),r.push(2),r.push(-1),r.push(0),r.push(2),r.push(m),r.push(-1),r.push(1),r.push(2),r.push(p)):d!==3&&(r.push(0),r.push(1),r.push(2)),r};_z.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let d=n-s,u=s-o,m=r-a,p=i-a,b=1/(m*d+u*p),f=t-a,y=e-s,_=(m*y+u*f)*b,S=(-p*y+d*f)*b,A=1-_-S;return l(c)?(c.x=_,c.y=S,c.z=A,c):new h(_,S,A)};_z.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let d=(s-o)*(t-r)-(a-r)*(e-o),u=(n-e)*(t-r)-(i-t)*(e-o),m=(a-r)*(n-e)-(s-o)*(i-t);if(m===0)return;let p=d/m,b=u/m;if(p>=0&&p<=1&&b>=0&&b<=1)return l(c)||(c=new k),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var Pf=_z;function Cg(e){e=e??B.EMPTY_OBJECT,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._skirtHeight=e.skirtHeight,this._boundingSphere=ue.clone(e.boundingSphere,new ue),this._orientedBoundingBox=en.clone(e.orientedBoundingBox,new en),this._horizonOcclusionPoint=h.clone(e.horizonOcclusionPoint,new h),this._hasVertexNormals=e.requestVertexNormals??!1,this._hasWaterMask=e.requestWaterMask??!1,this._hasWebMercatorT=!0,this._credits=e.credits,this._childTileMask=e.childTileMask??15,this._gltf=e.gltf,this._mesh=void 0,this._waterMask=e.waterMask}Object.defineProperties(Cg.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}}});Cg.prototype.interpolateHeight=function(e,t,n){let i=this._mesh;return i===void 0?void 0:kLe(i,e,t,n)};Cg.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};var MLe="createVerticesFromCesium3DTilesTerrain",k2t=new Hn(MLe),U2t=new Hn(MLe,wd.maximumAsynchronousTasks);Cg.prototype.createMesh=function(e){e=e??B.EMPTY_OBJECT;let n=e.throttle??!0?U2t:k2t,i=e.tilingScheme,o=i.ellipsoid,r=e.x,s=e.y,a=e.level,c=i.tileXYToRectangle(r,s,a,new se),d=this._gltf,u=n.scheduleTask({ellipsoid:o,rectangle:c,hasVertexNormals:this._hasVertexNormals,hasWaterMask:this._hasWaterMask,hasWebMercatorT:this._hasWebMercatorT,gltf:d,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,boundingSphere:this._boundingSphere,orientedBoundingBox:this._orientedBoundingBox,horizonOcclusionPoint:this._horizonOcclusionPoint,skirtHeight:this._skirtHeight,exaggeration:e.exaggeration,exaggerationRelativeHeight:e.exaggerationRelativeHeight});if(!l(u))return;let m=this;return Promise.resolve(u).then(function(p){let b=p,f=hr.clone(b.encoding,new hr),y=new Float32Array(b.verticesBuffer),_=y.length/f.stride,S=b.vertexCountWithoutSkirts,A=_<=65535?Uint16Array:Uint32Array,Z=new A(b.indicesBuffer),R=new A(b.westIndicesBuffer),G=new A(b.eastIndicesBuffer),E=new A(b.southIndicesBuffer),v=new A(b.northIndicesBuffer),I=b.indexCountWithoutSkirts,X=m._minimumHeight,Y=m._maximumHeight,g=h.clone(f.center,new h),C=ue.clone(m._boundingSphere,new ue),V=h.clone(m._horizonOcclusionPoint,new h),L=en.clone(m._orientedBoundingBox,new en),P=new cc(g,y,Z,I,S,X,Y,c,C,V,f.stride,L,f,R,E,G,v);return m._mesh=P,Promise.resolve(P)})};Cg.prototype._createMeshSync=function(e){e=e??B.EMPTY_OBJECT;let t=e.tilingScheme,n=t.ellipsoid,i=e.x,o=e.y,r=e.level,s=t.tileXYToRectangle(i,o,r,new se),a=tV.createMesh({ellipsoid:n,rectangle:s,hasVertexNormals:this._hasVertexNormals,hasWebMercatorT:this._hasWebMercatorT,gltf:this._gltf,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,boundingSphere:this._boundingSphere,orientedBoundingBox:this._orientedBoundingBox,horizonOcclusionPoint:this._horizonOcclusionPoint,skirtHeight:this._skirtHeight,exaggeration:e.exaggeration,exaggerationRelativeHeight:e.exaggerationRelativeHeight}),c=this;return Promise.resolve(a).then(function(d){return c._mesh=d,Promise.resolve(d)})};Cg.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;return a===void 0?void 0:Sz(!1,a,this._skirtHeight,this._credits,e,t,n,i,o,r,s)};Cg.prototype._upsampleSync=function(e,t,n,i,o,r,s){let a=this._mesh;return a===void 0?void 0:Sz(!0,a,this._skirtHeight,this._credits,e,t,n,i,o,r,s)};Cg.prototype.wasCreatedByUpsampling=function(){return!1};function Zg(e){e=e??B.EMPTY_OBJECT,this._mesh=e.terrainMesh,this._skirtHeight=e.skirtHeight,this._credits=e.credits}Zg.prototype.createMesh=function(e){return e=e??B.EMPTY_OBJECT,Promise.resolve(this._mesh)};Zg.prototype.upsample=function(e,t,n,i,o,r,s){return Sz(!1,this._mesh,this._skirtHeight,this._credits,e,t,n,i,o,r,s)};Zg.prototype._upsampleSync=function(e,t,n,i,o,r,s){return Sz(!0,this._mesh,this._skirtHeight,this._credits,e,t,n,i,o,r,s)};Zg.prototype.interpolateHeight=function(e,t,n){let i=this._mesh;return kLe(i,e,t,n)};Zg.prototype.wasCreatedByUpsampling=function(){return!0};Zg.prototype.isChildAvailable=function(e,t,n,i){return!1};Object.defineProperties(Zg.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var D2t=new Hn("upsampleVerticesFromCesium3DTilesTerrain",wd.maximumAsynchronousTasks);function Sz(e,t,n,i,o,r,s,a,c,d,u){if(u-a>1)throw new Te("Upsampling through more than one level at a time is not currently supported.");let p=n*.5,b=r*2!==c,f=s*2===d,y=o.tileXYToRectangle(c,d,u,new se),_=o.ellipsoid,S={isEastChild:b,isNorthChild:f,rectangle:y,ellipsoid:_,skirtHeight:p,parentVertices:t.vertices,parentIndices:t.indices,parentVertexCountWithoutSkirts:t.vertexCountWithoutSkirts,parentIndexCountWithoutSkirts:t.indexCountWithoutSkirts,parentMinimumHeight:t.minimumHeight,parentMaximumHeight:t.maximumHeight,parentEncoding:t.encoding};if(e){let Z=tV.upsampleMesh(S),R=new Zg({terrainMesh:Z,skirtHeight:p,credits:i});return Promise.resolve(R)}let A=D2t.scheduleTask(S);if(A!==void 0)return A.then(function(Z){let R=hr.clone(Z.encoding,new hr),G=R.stride,E=new Float32Array(Z.verticesBuffer),v=E.length/G,I=Z.vertexCountWithoutSkirts,X=v<=65535?Uint16Array:Uint32Array,Y=new X(Z.indicesBuffer),g=new X(Z.westIndicesBuffer),C=new X(Z.eastIndicesBuffer),V=new X(Z.southIndicesBuffer),L=new X(Z.northIndicesBuffer),P=Z.indexCountWithoutSkirts,N=Z.minimumHeight,O=Z.maximumHeight,M=h.clone(R.center,new h),D=ue.clone(Z.boundingSphere,new ue),w=h.clone(Z.horizonOcclusionPoint,new h),z=en.clone(Z.orientedBoundingBox,new en),K=new cc(M,E,Y,P,I,N,O,y,D,w,G,z,R,g,V,C,L),ee=new Zg({terrainMesh:K,skirtHeight:p,credits:i});return Promise.resolve(ee)})}var O2t=new k,B2t=new k,z2t=new k,H2t=new h;function kLe(e,t,n,i){let o=W.clamp((n-t.west)/t.width,0,1),r=W.clamp((i-t.south)/t.height,0,1),{vertices:s,encoding:a,indices:c}=e;for(let d=0;d<e.indexCountWithoutSkirts;d+=3){let u=c[d],m=c[d+1],p=c[d+2],b=a.decodeTextureCoordinates(s,u,O2t),f=a.decodeTextureCoordinates(s,m,B2t),y=a.decodeTextureCoordinates(s,p,z2t),_=Math.min(b.x,f.x,y.x),S=Math.max(b.x,f.x,y.x),A=Math.min(b.y,f.y,y.y),Z=Math.max(b.y,f.y,y.y);if(o>=_&&o<=S&&r>=A&&r<=Z){let R=Pf.computeBarycentricCoordinates(o,r,b.x,b.y,f.x,f.y,y.x,y.y,H2t);if(R.x>=0&&R.y>=0&&R.z>=0){let G=a.decodeHeight(s,u),E=a.decodeHeight(s,m),v=a.decodeHeight(s,p);return R.x*G+R.y*E+R.z*v}}}return 0}var Rk=Cg;var axo=x(T(),1);function m0(e){e=e??B.EMPTY_OBJECT;let t=e.credit;typeof t=="string"&&(t=new Rt(t)),this._credit=t,this._tileCredits=void 0,this._errorEvent=new Se,this._ellipsoid=e.ellipsoid??ie.WGS84,this._tilingScheme=new Oi({ellipsoid:this._ellipsoid}),this._subtreeCache=new CA({provider:this}),this._tileset0=void 0,this._tileset1=void 0,this._resource=void 0,this._requestVertexNormals=e.requestVertexNormals??!1,this._requestWaterMask=e.requestWaterMask??!1}m0.fromUrl=async function(e,t){t=t??B.EMPTY_OBJECT,e=await Promise.resolve(e);let n=We.createIfNeeded(e),i;try{i=await n.fetchJson()}catch(u){throw new ae("Could not load tileset JSON",u)}let o=new m0(t);o._tileCredits=n.credits,o._resource=n;let r=i.root.children,s=r[0],a=r[1],c=i.schema,d=Wl.fromJson(c);return o._tileset0=new Zp(n,s,d),o._tileset1=new Zp(n,a,d),o};m0.fromIonAssetId=async function(e,t){let n=await os.fromAssetId(e);return m0.fromUrl(n,t)};var K2t=new Array(3);m0.prototype.requestTileGeometry=async function(e,t,n,i){let o=DLe(n,e),r=o===0?this._tileset0:this._tileset1,s=OLe(r,n,e,t),a=s.getSubtreeCoordinates(),c=this._subtreeCache,d=c.find(o,a),u=this._requestWaterMask,m=this,p;if(d===void 0){let A=r.subtreeUriTemplate.getDerivedResource({templateValues:a.getTemplateValues()});p=r.baseResource.getDerivedResource({url:A.url}).fetchArrayBuffer().then(async function(R){if(d=c.find(o,a),d===void 0){let G=new Uint8Array(R);d=await q0.fromSubtreeJson(m._resource,void 0,G,r,a),c.addSubtree(o,d)}return d})}else p=Promise.resolve(d);let b=r.contentUriTemplates[0].getDerivedResource({templateValues:s.getTemplateValues()}),f=r.baseResource.getDerivedResource({url:b.url}),y=f.fetchArrayBuffer();if(y===void 0)return;let _=y.then(A=>r_(new Uint8Array(A))),S=K2t;S[0]=p,S[1]=_,S[2]=u?_.then(A=>J2t(A,f)):void 0;try{let A=await Promise.all(S),Z=A[0],R=A[1],G=A[2],E=Z.getTileMetadataView(s),v=E.getPropertyBySemantic(bm.TILE_MINIMUM_HEIGHT),I=E.getPropertyBySemantic(bm.TILE_MAXIMUM_HEIGHT),X=E.getPropertyBySemantic(bm.TILE_BOUNDING_SPHERE),Y=ue.unpack(X,0,new ue),g=E.getPropertyBySemantic(bm.TILE_HORIZON_OCCLUSION_POINT),V=m._tilingScheme.tileXYToRectangle(e,t,n,new se),L=m._ellipsoid,P=en.fromRectangle(V,v,I,L,new en),N=m.getLevelMaximumGeometricError(n)*5,O=Az(r,Z,s,0,0),M=Az(r,Z,s,1,0),D=Az(r,Z,s,0,1),w=Az(r,Z,s,1,1),z=(O?1:0)|(M?2:0)|(D?4:0)|(w?8:0),K=new Rk({gltf:R,minimumHeight:v,maximumHeight:I,boundingSphere:Y,orientedBoundingBox:P,horizonOcclusionPoint:g,skirtHeight:N,requestVertexNormals:m._requestVertexNormals,childTileMask:z,credits:m._tileCredits,waterMask:G});return Promise.resolve(K)}catch(A){console.log(`Could not load subtree: ${o} ${a.level} ${a.x} ${a.y}: ${A}`),console.log(`Could not load tile: ${o} ${s.level} ${s.x} ${s.y}: ${A}`);return}};m0.prototype.getTileDataAvailable=function(e,t,n){let i=this._subtreeCache,o=DLe(n,e),r=o===0?this._tileset0:this._tileset1,s=OLe(r,n,e,t),a=s.getSubtreeCoordinates(),c=i.find(o,a);if(c!==void 0)return c.tileIsAvailableAtCoordinates(s);if(a.isImplicitTilesetRoot())return s.isSubtreeRoot()?!0:void 0;let d=a.getParentSubtreeCoordinates(),u=i.find(o,d);if(u!==void 0)return u.childSubtreeIsAvailableAtCoordinates(a)?s.isSubtreeRoot()?!0:void 0:!1};function DLe(e,t){let n=1<<e;return t/n|0}function OLe(e,t,n,i){let o=1<<t,r=t,s=n%o,a=o-i-1,{subdivisionScheme:c,subtreeLevels:d}=e;return new Cp({subdivisionScheme:c,subtreeLevels:d,level:r,x:s,y:a})}async function J2t(e,t){let n=e.extensions?.EXT_structural_metadata;if(!l(n)||!l(n.propertyTextures))return;let i=new gy({schema:n.schema});await i.load();let o=i.schema,r,s;if(l(o.classes)){for(let b in o.classes)if(o.classes.hasOwnProperty(b)&&(r=o.classes[b],s=r.propertiesBySemantic.WATERMASK,l(s)))break}if(!l(s))return;let a=n.propertyTextures.find(b=>b.class===r.id);if(!l(a))throw new Te(`Expected a propertyTexture with a class ${r.id}`);let c=a.properties[s.id],d=e.textures[c.index],u=e.images[d.source]?.bufferView,m=Li.getBufferViewLoader({gltf:e,bufferViewId:u,gltfResource:t,baseResource:t});return await m.load(),await j0({uint8Array:new Uint8Array(m.typedArray),format:"image/png",flipY:!1,skipColorSpaceConversion:!0})}function Az(e,t,n,i,o){let r=n.isBottomOfSubtree(),a=Xne(e,1,i,o),c=n.getDescendantCoordinates(a);return r?t.childSubtreeIsAvailableAtCoordinates(c):t.tileIsAvailableAtCoordinates(c)}function Xne(e,t,n,i){let{subdivisionScheme:o,subtreeLevels:r}=e;return new Cp({subdivisionScheme:o,subtreeLevels:r,level:t,x:n,y:i})}m0.prototype.loadTileDataAvailability=function(e,t,n){};m0.prototype.getLevelMaximumGeometricError=function(e){let t=this._ellipsoid;return Mo.getEstimatedLevelZeroGeometricErrorForAHeightmap(t,64,2)/(1<<e)};Object.defineProperties(m0.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return this._requestWaterMask}},hasVertexNormals:{get:function(){return this._requestVertexNormals}},availability:{get:function(){return this._subtreeCache}}});function j2t(e,t,n){this.rootId=e,this.subtree=t,this.stamp=n}function CA(e){this._maximumSubtreeCount=e.maximumSubtreeCount??0,this._subtreeRequestCounter=0,this._queue=new Ag({comparator:CA.comparator}),this._provider=e.provider}CA.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};CA.prototype.addSubtree=function(e,t){let n=new j2t(e,t,this._subtreeRequestCounter);this._queue.insert(n),this._subtreeRequestCounter++;let i=t.implicitCoordinates;if(i.level>0){let o=i.getParentSubtreeCoordinates(),r=this.find(e,o)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==n;)this._queue.removeMinimum()};CA.prototype.find=function(e,t){let n=this._queue,i=n.internalArray,{level:o,x:r,y:s}=t;for(let a=0;a<n.length;a++){let c=i[a],d=c.rootId,u=c.subtree.implicitCoordinates;if(d===e&&u.level===o&&u.x===r&&u.y===s)return c.subtree}};CA.prototype._computeMaximumImplicitTileCoordinatesAtPosition=function(e){let{longitude:t,latitude:n}=e,i=this._provider,o=t<0?0:1,r=o===0?i._tileset0:i._tileset1,s=r.subtreeLevels,a=Xne(r,0,0,0),c=this.find(o,a);if(c===void 0)return;let d=c.implicitCoordinates,u=d.x,m=d.y,p=d.level,b=-W.PI,f=+W.PI,y=W.lerp(b,f,o/2),_=W.lerp(b,f,(o+1)/2),S=-W.PI*.5,A=+W.PI*.5,Z=0,R=0,G=!0;for(;G;){let v=1/(1<<p),I=(_-y)*v,X=y+u*I,Y=(A-S)*v,g=S+m*Y;Z=(t-X)/I,R=(n-g)/Y;let C=ULe(r,d,Z,R,s);if(c.childSubtreeIsAvailableAtCoordinates(C)){let V=this.find(o,C);if(V!==void 0)c=V,d=c.implicitCoordinates,u=d.x,m=d.y,p=d.level;else return C}else G=!1}let E;for(let v=0;v<s;v++){let I=ULe(r,d,Z,R,v);if(c.tileIsAvailableAtCoordinates(I))E=I;else break}return E};function ULe(e,t,n,i,o){let r=1<<o,s=W.clamp(n*r|0,0,r-1),a=W.clamp(i*r|0,0,r-1),c=Xne(e,o,s,a);return t.getDescendantCoordinates(c)}CA.prototype.computeMaximumLevelAtPosition=function(e){let t=this._computeMaximumImplicitTileCoordinatesAtPosition(e);return t===void 0?0:t.level};var Yne=m0;var Hxo=x(T(),1);var Sxo=x(T(),1);function zx(e){e=e??B.EMPTY_OBJECT,this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;let t=this._quantizedVertices.length/3,n=this._uValues=this._quantizedVertices.subarray(0,t),i=this._vValues=this._quantizedVertices.subarray(t,2*t);this._heightValues=this._quantizedVertices.subarray(2*t,3*t);function o(s,a){return i[s]-i[a]}function r(s,a){return n[s]-n[a]}this._westIndices=Cz(e.westIndices,o,t),this._southIndices=Cz(e.southIndices,r,t),this._eastIndices=Cz(e.eastIndices,o,t),this._northIndices=Cz(e.northIndices,r,t),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=e.childTileMask??15,this._createdByUpsampling=e.createdByUpsampling??!1,this._waterMask=e.waterMask,this._mesh=void 0}Object.defineProperties(zx.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return l(this._mesh)}}});var Zz=[];function Cz(e,t,n){Zz.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)Zz[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?(Zz.sort(t),De.createTypedArray(n,Zz)):e}var BLe="createVerticesFromQuantizedTerrainMesh",Q2t=new Hn(BLe),q2t=new Hn(BLe,wd.maximumAsynchronousTasks);zx.prototype.createMesh=function(e){e=e??B.EMPTY_OBJECT;let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=e.exaggeration??1,s=e.exaggerationRelativeHeight??0,a=e.throttle??!0,c=t.ellipsoid,d=t.tileXYToRectangle(n,i,o),m=(a?q2t:Q2t).scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:d,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!l(m))return;let p=this;return Promise.resolve(m).then(function(b){let f=p._quantizedVertices.length/3,y=f+p._westIndices.length+p._southIndices.length+p._eastIndices.length+p._northIndices.length,_=De.createTypedArray(y,b.indices),S=new Float32Array(b.vertices),A=b.center,Z=b.minimumHeight,R=b.maximumHeight,G=p._boundingSphere,E=p._orientedBoundingBox,v=h.clone(b.occludeePointInScaledSpace)??p._horizonOcclusionPoint,I=b.vertexStride,X=hr.clone(b.encoding);return p._mesh=new cc(A,S,_,b.indexCountWithoutSkirts,f,Z,R,d,G,v,I,E,X,b.westIndicesSouthToNorth,b.southIndicesEastToWest,b.eastIndicesNorthToSouth,b.northIndicesWestToEast),p._quantizedVertices=void 0,p._encodedNormals=void 0,p._indices=void 0,p._uValues=void 0,p._vValues=void 0,p._heightValues=void 0,p._westIndices=void 0,p._southIndices=void 0,p._eastIndices=void 0,p._northIndices=void 0,p._mesh})};var $2t=new Hn("upsampleQuantizedTerrainMesh",wd.maximumAsynchronousTasks);zx.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,d=n*2===r,u=e.ellipsoid,m=e.tileXYToRectangle(o,r,s),p=$2t.scheduleTask({vertices:a.vertices,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:d,childRectangle:m,ellipsoid:u});if(!l(p))return;let b=Math.min(this._westSkirtHeight,this._eastSkirtHeight);b=Math.min(b,this._southSkirtHeight),b=Math.min(b,this._northSkirtHeight);let f=c?b*.5:this._westSkirtHeight,y=d?b*.5:this._southSkirtHeight,_=c?this._eastSkirtHeight:b*.5,S=d?this._northSkirtHeight:b*.5,A=this._credits;return Promise.resolve(p).then(function(Z){let R=new Uint16Array(Z.vertices),G=De.createTypedArray(R.length/3,Z.indices),E;return l(Z.encodedNormals)&&(E=new Uint8Array(Z.encodedNormals)),new zx({quantizedVertices:R,indices:G,encodedNormals:E,minimumHeight:Z.minimumHeight,maximumHeight:Z.maximumHeight,boundingSphere:ue.clone(Z.boundingSphere),orientedBoundingBox:en.clone(Z.orientedBoundingBox),horizonOcclusionPoint:h.clone(Z.horizonOcclusionPoint),westIndices:Z.westIndices,southIndices:Z.southIndices,eastIndices:Z.eastIndices,northIndices:Z.northIndices,westSkirtHeight:f,southSkirtHeight:y,eastSkirtHeight:_,northSkirtHeight:S,childTileMask:0,credits:A,createdByUpsampling:!0})})};var Nne=32767,zLe=new h;zx.prototype.interpolateHeight=function(e,t,n){let i=W.clamp((t-e.west)/e.width,0,1);i*=Nne;let o=W.clamp((n-e.south)/e.height,0,1);return o*=Nne,l(this._mesh)?iFt(this,i,o):oFt(this,i,o)};function HLe(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),d=Math.max(n,o,s),u=Math.min(i,r,a),m=Math.max(i,r,a);return e>=c&&e<=d&&t>=u&&t<=m}var eFt=new k,tFt=new k,nFt=new k;function iFt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let d=s[a],u=s[a+1],m=s[a+2],p=r.decodeTextureCoordinates(o,d,eFt),b=r.decodeTextureCoordinates(o,u,tFt),f=r.decodeTextureCoordinates(o,m,nFt);if(HLe(t,n,p.x,p.y,b.x,b.y,f.x,f.y)){let y=Pf.computeBarycentricCoordinates(t,n,p.x,p.y,b.x,b.y,f.x,f.y,zLe);if(y.x>=-1e-15&&y.y>=-1e-15&&y.z>=-1e-15){let _=r.decodeHeight(o,d),S=r.decodeHeight(o,u),A=r.decodeHeight(o,m);return y.x*_+y.y*S+y.z*A}}}}function oFt(e,t,n){let i=e._uValues,o=e._vValues,r=e._heightValues,s=e._indices;for(let a=0,c=s.length;a<c;a+=3){let d=s[a],u=s[a+1],m=s[a+2],p=i[d],b=i[u],f=i[m],y=o[d],_=o[u],S=o[m];if(HLe(t,n,p,y,b,_,f,S)){let A=Pf.computeBarycentricCoordinates(t,n,p,y,b,_,f,S,zLe);if(A.x>=-1e-15&&A.y>=-1e-15&&A.z>=-1e-15){let Z=A.x*r[d]+A.y*r[u]+A.z*r[m];return W.lerp(e._minimumHeight,e._maximumHeight,Z/Nne)}}}}zx.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};zx.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var RA=zx;function rFt(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityPromiseCache={}}function JLe(e){this.requestVertexNormals=e.requestVertexNormals??!1,this.requestWaterMask=e.requestWaterMask??!1,this.requestMetadata=e.requestMetadata??!0,this.ellipsoid=e.ellipsoid??ie.default,this.heightmapWidth=65,this.heightmapStructure=void 0,this.hasWaterMask=!1,this.hasMetadata=!1,this.hasVertexNormals=!1,this.scheme=void 0,this.lastResource=void 0,this.layerJsonResource=void 0,this.previousError=void 0,this.availability=void 0,this.tilingScheme=void 0,this.levelZeroMaximumGeometricError=void 0,this.heightmapStructure=void 0,this.layers=[],this.attribution="",this.overallAvailability=[],this.overallMaxZoom=0,this.tileCredits=[]}JLe.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=l(this.lastResource.credits)?this.lastResource.credits:[];e._tileCredits=t.concat(this.tileCredits),e._availability=this.availability,e._tilingScheme=this.tilingScheme,e._requestWaterMask=this.requestWaterMask,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._heightmapStructure=this.heightmapStructure,e._layers=this.layers,e._hasWaterMask=this.hasWaterMask,e._hasVertexNormals=this.hasVertexNormals,e._hasMetadata=this.hasMetadata};async function jLe(e,t,n){if(!t.format){let y="The tile format is not specified in the layer.json file.";throw e.previousError=Bo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,y),new ae(y)}if(!t.tiles||t.tiles.length===0){let y="The layer.json file does not specify any tile URL templates.";throw e.previousError=Bo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,y),new ae(y)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,l(e.heightmapStructure)||(e.heightmapStructure={heightScale:1/5,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:256*256-1}),o=!0,e.requestWaterMask=!0;else if(t.format.indexOf("quantized-mesh-1.")!==0){let y=`The tile format "${t.format}" is invalid or not supported.`;throw e.previousError=Bo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,y),new ae(y)}let c=t.tiles,d=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,d),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new Oi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new Zr({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let y=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=Bo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,y),new ae(y)}if(e.levelZeroMaximumGeometricError=Mo.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.heightmapWidth,e.tilingScheme.getNumberOfXTilesAtLevel(0)),!t.scheme||t.scheme==="tms"||t.scheme==="slippyMap")e.scheme=t.scheme;else{let y=`The scheme "${t.scheme}" is invalid or not supported.`;throw e.previousError=Bo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,y),new ae(y)}let u;l(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:l(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),l(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),l(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let m=t.metadataAvailability,p=t.available,b;if(l(p)&&!l(m)){b=new If(e.tilingScheme,p.length);for(let y=0;y<p.length;++y){let _=p[y],S=e.tilingScheme.getNumberOfYTilesAtLevel(y);l(e.overallAvailability[y])||(e.overallAvailability[y]=[]);for(let A=0;A<_.length;++A){let Z=_[A],R=S-Z.endY-1,G=S-Z.startY-1;e.overallAvailability[y].push([Z.startX,R,Z.endX,G]),b.addAvailableTileRange(y,Z.startX,R,Z.endX,G)}}}else l(m)&&(u=new If(e.tilingScheme,d),b=new If(e.tilingScheme,d),e.overallAvailability[0]=[[0,0,1,0]],b.addAvailableTileRange(0,0,0,1,0));e.hasWaterMask=e.hasWaterMask||o,e.hasVertexNormals=e.hasVertexNormals||i,e.hasMetadata=e.hasMetadata||r,l(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new rFt({resource:e.lastResource,version:t.version,isHeightmap:a,tileUrlTemplates:c,availability:b,hasVertexNormals:i,hasWaterMask:o,hasMetadata:r,availabilityLevels:m,availabilityTilesLoaded:u,littleEndianExtensionSize:s}));let f=t.parentUrl;return l(f)?l(b)?(e.lastResource=e.lastResource.getDerivedResource({url:f}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await kne(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function sFt(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(l(t)&&(i+=` +${t.message}`),e.previousError=Bo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,i),e.previousError.retry)return kne(e,n);throw new ae(i)}async function aFt(e,t,n){await jLe(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new If(e.tilingScheme,e.overallMaxZoom);for(let r=0;r<i;++r){let s=e.overallAvailability[r];for(let a=0;a<s.length;++a){let c=s[a];o.addAvailableTileRange(r,c[0],c[1],c[2],c[3])}}}if(e.attribution.length>0){let o=new Rt(e.attribution);e.tileCredits.push(o)}return!0}async function kne(e,t){try{let n=await e.layerJsonResource.fetchJson();return aFt(e,n,t)}catch(n){return l(n)&&n.statusCode===404?(await jLe(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):sFt(e,n,t)}}function Xf(e){e=e??B.EMPTY_OBJECT,this._heightmapWidth=void 0,this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._hasMetadata=!1,this._scheme=void 0,this._ellipsoid=e.ellipsoid,this._requestVertexNormals=e.requestVertexNormals??!1,this._requestWaterMask=e.requestWaterMask??!1,this._requestMetadata=e.requestMetadata??!0,this._errorEvent=new Se;let t=e.credit;typeof t=="string"&&(t=new Rt(t)),this._credit=t,this._availability=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._layers=void 0,this._tileCredits=void 0}var wne={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function KLe(e){return!l(e)||e.length===0?{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:`application/vnd.quantized-mesh;extensions=${e.join("-")},application/octet-stream;q=0.9,*/*;q=0.01`}}function cFt(e,t,n,i,o){let r=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new vc({buffer:r,childTileMask:new Uint8Array(t,r.byteLength,1)[0],waterMask:new Uint8Array(t,r.byteLength+1,t.byteLength-r.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function lFt(e,t,n,i,o,r){let s=r.littleEndianExtensionSize,a=0,c=3,d=c+1,u=Float64Array.BYTES_PER_ELEMENT*c,m=Float64Array.BYTES_PER_ELEMENT*d,b=Uint16Array.BYTES_PER_ELEMENT*3,f=3,y=Uint16Array.BYTES_PER_ELEMENT,_=y*f,S=new DataView(t),A=new h(S.getFloat64(a,!0),S.getFloat64(a+8,!0),S.getFloat64(a+16,!0));a+=u;let Z=S.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let R=S.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let G=new ue(new h(S.getFloat64(a,!0),S.getFloat64(a+8,!0),S.getFloat64(a+16,!0)),S.getFloat64(a+u,!0));a+=m;let E=new h(S.getFloat64(a,!0),S.getFloat64(a+8,!0),S.getFloat64(a+16,!0));a+=u;let v=S.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let I=new Uint16Array(t,a,v*3);a+=v*b,v>64*1024&&(y=Uint32Array.BYTES_PER_ELEMENT,_=y*f);let X=I.subarray(0,v),Y=I.subarray(v,2*v),g=I.subarray(v*2,3*v);cn.zigZagDeltaDecode(X,Y,g),a%y!==0&&(a+=y-a%y);let C=S.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let V=De.createTypedArrayFromArrayBuffer(v,t,a,C*f);a+=C*_;let L=0,P=V.length;for(let le=0;le<P;++le){let Ce=V[le];V[le]=L-Ce,Ce===0&&++L}let N=S.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let O=De.createTypedArrayFromArrayBuffer(v,t,a,N);a+=N*y;let M=S.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let D=De.createTypedArrayFromArrayBuffer(v,t,a,M);a+=M*y;let w=S.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let z=De.createTypedArrayFromArrayBuffer(v,t,a,w);a+=w*y;let K=S.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let ee=De.createTypedArrayFromArrayBuffer(v,t,a,K);a+=K*y;let H,te;for(;a<S.byteLength;){let le=S.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let Ce=S.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,le===wne.OCT_VERTEX_NORMALS&&e._requestVertexNormals)H=new Uint8Array(t,a,v*2);else if(le===wne.WATER_MASK&&e._requestWaterMask)te=new Uint8Array(t,a,Ce);else if(le===wne.METADATA&&e._requestMetadata){let ge=S.getUint32(a,!0);if(ge>0){let Re=_r(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,ge).available;if(l(Re))for(let Xe=0;Xe<Re.length;++Xe){let we=n+Xe+1,nt=Re[Xe],je=e._tilingScheme.getNumberOfYTilesAtLevel(we);for(let et=0;et<nt.length;++et){let Ie=nt[et],Oe=je-Ie.endY-1,St=je-Ie.startY-1;e.availability.addAvailableTileRange(we,Ie.startX,Oe,Ie.endX,St),r.availability.addAvailableTileRange(we,Ie.startX,Oe,Ie.endX,St)}}}r.availabilityTilesLoaded.addAvailableTileRange(n,i,o,i,o)}a+=Ce}let q=e.getLevelMaximumGeometricError(n)*5,de=e._tilingScheme.tileXYToRectangle(i,o,n),ye=en.fromRectangle(de,Z,R,e._tilingScheme.ellipsoid);return new RA({center:A,minimumHeight:Z,maximumHeight:R,boundingSphere:G,orientedBoundingBox:ye,horizonOcclusionPoint:E,quantizedVertices:I,encodedNormals:H,indices:V,westIndices:O,southIndices:D,eastIndices:z,northIndices:ee,westSkirtHeight:q,southSkirtHeight:q,eastSkirtHeight:q,northSkirtHeight:q,childTileMask:e.availability.computeChildMaskForTile(n,i,o),waterMask:te,credits:e._tileCredits})}Xf.prototype.requestTileGeometry=function(e,t,n,i){let o=this._layers,r,s=o.length,a=!1,c=Promise.resolve();if(s===1)r=o[0];else for(let d=0;d<s;++d){let u=o[d];if(!l(u.availability)||u.availability.isTileAvailable(n,e,t)){r=u;break}let m=Une(this,e,t,n,u,d===0);m.result&&(a=!0,c=c.then(()=>m.promise))}return!l(r)&&a?c.then(()=>new Promise(d=>{setTimeout(()=>{let u=this.requestTileGeometry(e,t,n,i);d(u)},0)})):QLe(this,e,t,n,r,i)};function QLe(e,t,n,i,o,r){if(!l(o))return Promise.reject(new ae("Terrain tile doesn't exist"));let s=o.tileUrlTemplates;if(s.length===0)return;let a;!e._scheme||e._scheme==="tms"?a=e._tilingScheme.getNumberOfYTilesAtLevel(i)-n-1:a=n;let c=[];e._requestVertexNormals&&o.hasVertexNormals&&c.push(o.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&o.hasWaterMask&&c.push("watermask"),e._requestMetadata&&o.hasMetadata&&c.push("metadata");let d,u,m=s[(t+a+i)%s.length],p=o.resource;l(p._ionEndpoint)&&!l(p._ionEndpoint.externalType)?(c.length!==0&&(u={extensions:c.join("-")}),d=KLe(void 0)):d=KLe(c);let b=p.getDerivedResource({url:m,templateValues:{version:o.version,z:i,x:t,y:a},queryParameters:u,headers:d,request:r}).fetchArrayBuffer();if(l(b))return b.then(function(f){return l(f)?l(e._heightmapStructure)?cFt(e,f,i,t,n):lFt(e,f,i,t,n,o):Promise.reject(new ae("Mesh buffer doesn't exist."))})}Object.defineProperties(Xf.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}});Xf.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Xf.fromIonAssetId=async function(e,t){let n=await os.fromAssetId(e);return Xf.fromUrl(n,t)};Xf.fromUrl=async function(e,t){t=t??B.EMPTY_OBJECT,e=await Promise.resolve(e);let n=We.createIfNeeded(e);n.appendForwardSlash();let i=new JLe(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await kne(i);let o=new Xf(t);return i.build(o),o};Xf.prototype.getTileDataAvailable=function(e,t,n){if(!l(this._availability))return;if(n>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(n,e,t))return!0;if(!this._hasMetadata)return!1;let i=this._layers,o=i.length;for(let r=0;r<o;++r)if(Une(this,e,t,n,i[r],r===0).result)return;return!1};Xf.prototype.loadTileDataAvailability=function(e,t,n){if(!l(this._availability)||n>this._availability._maximumLevel||this._availability.isTileAvailable(n,e,t)||!this._hasMetadata)return;let i=this._layers,o=i.length;for(let r=0;r<o;++r){let s=Une(this,e,t,n,i[r],r===0);if(l(s.promise))return s.promise}};function Mne(e,t,n,i){if(i===0)return;let o=e.availabilityLevels,r=i%o===0?i-o:(i/o|0)*o,s=1<<i-r,a=t/s|0,c=n/s|0;return{level:r,x:a,y:c}}function Une(e,t,n,i,o,r){if(!l(o.availabilityLevels))return{result:!1};let s,a=function(){delete o.availabilityPromiseCache[s]},c=o.availabilityTilesLoaded,d=o.availability,u=Mne(o,t,n,i);for(;l(u);){if(d.isTileAvailable(u.level,u.x,u.y)&&!c.isTileAvailable(u.level,u.x,u.y)){let m;if(!r&&(s=`${u.level}-${u.x}-${u.y}`,m=o.availabilityPromiseCache[s],!l(m))){let p=new gr({throttle:!1,throttleByServer:!0,type:ws.TERRAIN});m=QLe(e,u.x,u.y,u.level,o,p),l(m)&&(o.availabilityPromiseCache[s]=m,m.then(a))}return{result:!0,promise:m}}u=Mne(o,u.x,u.y,u.level)}return{result:!1}}Xf._getAvailabilityTile=Mne;var VA=Xf;var tTo=x(T(),1);function Rg(e){e=e??B.EMPTY_OBJECT;let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new jl(n),this._workerName="createCircleGeometry"}Rg.packedLength=jl.packedLength;Rg.pack=function(e,t,n){return jl.pack(e._ellipseGeometry,t,n)};var qLe=new jl({center:new h,semiMajorAxis:1,semiMinorAxis:1}),Ic={center:new h,radius:void 0,ellipsoid:ie.clone(ie.default),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new Me,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};Rg.unpack=function(e,t,n){let i=jl.unpack(e,t,qLe);return Ic.center=h.clone(i._center,Ic.center),Ic.ellipsoid=ie.clone(i._ellipsoid,Ic.ellipsoid),Ic.ellipsoid=ie.clone(i._ellipsoid,qLe._ellipsoid),Ic.height=i._height,Ic.extrudedHeight=i._extrudedHeight,Ic.granularity=i._granularity,Ic.vertexFormat=Me.clone(i._vertexFormat,Ic.vertexFormat),Ic.stRotation=i._stRotation,Ic.shadowVolume=i._shadowVolume,l(n)?(Ic.semiMajorAxis=i._semiMajorAxis,Ic.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new jl(Ic),n):(Ic.radius=i._semiMajorAxis,new Rg(Ic))};Rg.createGeometry=function(e){return jl.createGeometry(e._ellipseGeometry)};Rg.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,o=e._ellipseGeometry._ellipsoid,r=t(i,o),s=n(i,o);return new Rg({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:o,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Me.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(Rg.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var Dne=Rg;var cTo=x(T(),1);function nV(e){e=e??B.EMPTY_OBJECT;let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new Vu(n),this._workerName="createCircleOutlineGeometry"}nV.packedLength=Vu.packedLength;nV.pack=function(e,t,n){return Vu.pack(e._ellipseGeometry,t,n)};var dFt=new Vu({center:new h,semiMajorAxis:1,semiMinorAxis:1}),zu={center:new h,radius:void 0,ellipsoid:ie.clone(ie.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};nV.unpack=function(e,t,n){let i=Vu.unpack(e,t,dFt);return zu.center=h.clone(i._center,zu.center),zu.ellipsoid=ie.clone(i._ellipsoid,zu.ellipsoid),zu.height=i._height,zu.extrudedHeight=i._extrudedHeight,zu.granularity=i._granularity,zu.numberOfVerticalLines=i._numberOfVerticalLines,l(n)?(zu.semiMajorAxis=i._semiMajorAxis,zu.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new Vu(zu),n):(zu.radius=i._semiMajorAxis,new nV(zu))};nV.createGeometry=function(e){return Vu.createGeometry(e._ellipseGeometry)};var One=nV;var yTo=x(T(),1);function iV(e){e=e??B.EMPTY_OBJECT,this._callback=e.callback,this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Oi({ellipsoid:e.ellipsoid??ie.default})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=Mo.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new Se;let n=e.credit;typeof n=="string"&&(n=new Rt(n)),this._credit=n}Object.defineProperties(iV.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});iV.prototype.requestTileGeometry=function(e,t,n,i){let o=this._callback(e,t,n);if(!l(o))return;let r=this._width,s=this._height;return Promise.resolve(o).then(function(a){let c=a;return Array.isArray(c)&&(c=new Float64Array(c)),new vc({buffer:c,width:r,height:s})})};iV.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};iV.prototype.getTileDataAvailable=function(e,t,n){};iV.prototype.loadTileDataAvailability=function(e,t,n){};var Bne=iV;var TTo=x(T(),1);function $Le(e){this.proxy=e}$Le.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var zne=$Le;var STo=x(T(),1),eWe={SEARCH:0,AUTOCOMPLETE:1};Object.freeze(eWe);var Hx=eWe;var VTo=x(T(),1);function Rz(){Te.throwInstantiationError()}Object.defineProperties(Rz.prototype,{credit:{get:Te.throwInstantiationError}});Rz.getCreditsFromResult=function(e){if(l(e.attributions))return e.attributions.map(Rt.getIonCredit)};Rz.prototype.geocode=Te.throwInstantiationError;var oV=Rz;var LTo=x(T(),1);function tWe(){Te.throwInstantiationError()}tWe.createGeometry=function(e){Te.throwInstantiationError()};var Hne=tWe;var QTo=x(T(),1),bFt=x(Kne(),1);var NTo=x(T(),1);var ITo=x(T(),1);function uFt(e,t){return(e&t)!==0}var ml=uFt;var mFt=[1,2,4,8],nWe=15,hFt=16,fFt=64,pFt=128;function h0(e,t,n,i,o,r){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=o,this.terrainProvider=r,this.ancestorHasTerrain=!1,this.terrainState=void 0}h0.clone=function(e,t){return l(t)?(t._bits=e._bits,t.cnodeVersion=e.cnodeVersion,t.imageryVersion=e.imageryVersion,t.terrainVersion=e.terrainVersion,t.imageryProvider=e.imageryProvider,t.terrainProvider=e.terrainProvider):t=new h0(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};h0.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};h0.prototype.hasSubtree=function(){return ml(this._bits,hFt)};h0.prototype.hasImagery=function(){return ml(this._bits,fFt)};h0.prototype.hasTerrain=function(){return ml(this._bits,pFt)};h0.prototype.hasChildren=function(){return ml(this._bits,nWe)};h0.prototype.hasChild=function(e){return ml(this._bits,mFt[e])};h0.prototype.getChildBitmask=function(){return this._bits&nWe};var Gk=h0;function gFt(e){let t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);for(let o=0;o<t;++o)i[o]=e.charCodeAt(o);return n}var yFt=gFt(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y +wmi\xD6\xF0\x9Ck\x93\xA1\xBDNu\xE0A[\xDF@V\f\xD9\xBBr\x9B\x81|3S\xEEOl\xD4q\xB0{\xC0\x7FEVZ\xADwUe\v3\x92*\xACl5\xC50s\xF83>mF8J\xB4\xDD\xF0.\xDDu\xDA\x8CDt"\xFAa"\f3"So\xAF9D\v\x8C9\xD99L\xB9\xBF\x7F\xAB\\\x8CP_\x9F"ux\xE9\x07q\x91h;\xC1\xC4\x9B\x7F\xF0<VqH\x82'UfYNe\x98u\xA3aF}a?A\0\x9F\xD7\xB44M\xCE\x87F\xB0\xD5\xB8\x8A'{\x8B\xDC+\xBBMg0\xC8\xD1\xF6\\\x8FP\xFA[/F\x9Bn5/'C.\xEB +\f^\xA5s\x1Be4\xE5l.jC'c#U\xA9?q{gC}:\xAF\xCD\xE2TU\x9C\xFDK\xC6\xE2\x9F/(\xED\xCB\\\xC6-f\x07\x88\xA7;/*"N\xB0k.\xDD\r\x95}}G\xBAC\xB2\xB2+>M\xAA>}\xE6\xCEI\x89\xC6\xE6x\fa1-\xA4O\xA5~q \x88\xEC\r1\xE8N\v\0nPh}=\b\r\x95\xA6n\xA3h\x97$[k\xF3#\xF3\xB6s\xB3\r\v@\xC0\x9F\xD8Q]\xFA".j\xDFI\0\xB9\xA0wU\xC6\xEFj\xBF{GL\x7F\x83\xEE\xDC\xDCF\x85\xA9\xADS\x07+S4\x07\xFF\x94Y\xE48\xE81\x83N\xB9XFk\xCB-#\x86\x92p\x005\x88"\xCF1\xB2&/\xE7\xC3u-6,rt\xB0#G\xB7\xD3\xD1&\x857r\xE2\0\x8CD\xCF\xDA3-\xDE\`\x86i#i*|\xCDKQ\r\x95T9w.)\xEA\x1B\xA6P\xA2j\x8FoP\x99\\>T\xFB\xEFP[\v\x07E\x89m(w7\xDB\x8EJfJo\x99 \xE5p\xE2\xB9q~\fmI-z\xFEr\xC7\xF2Y0\x8F\xBB]s\xE5\xC9 \xEAx\xEC \x90\xF0\x8A\x7FB|G\`\xB0\xBD&\xB7q\xB6\xC7\x9F\xD13\x82=\xD3\xAB\xEEc\x99\xC8+S\xA0D\\q\xC6\xCCD2O<\xCA\xC0)=R\xD3aX\xA9}e\xB4\xDC\xCF\r\xF4=\xF1\b\xA9B\xDA# \xD8\xBF^PI\xF8M\xC0\xCBGLO\xF7{+\xD8\xC51\x92;\xB5o\xDCl\r\x92\x88\xD1\x9E\xDB?\xE2\xE9\xDA_\xD4\x84\xE2FaZ\xDEU\xCF\xA4\0\xBE\xFD\xCEg\xF1Ji\x97\xE6 H\xD8]\x7F~\xAEq N\xAE\xC0V\xA9\x91<\x82r\xE7v\xEC)I\xD6]-\x83\xE3\xDB6\xA9;f\x97\x87j\xD5\xB6=P^R\xB9K\xC7sWx\xC9\xF4.Y\x07\x95\x93o\xD0KW>''\xC7\`\xDB;\xED\x9ASD>?\x8D\x92mw\xA2 +\xEB?R\xA8\xC6U^1I7\x85\xF4\xC5&-\xA9\xBF\x8B'T\xDA\xC3j \xE5*x\xB0\xD6\x90pr\xAA\x8Bh\xBD\x88\xF7_H\xB1~\xC0XL?f\xF9>\xE1e\xC0p\xA7\xCF8i\xAF\xF0VldI\x9C'\xADxtO\xC2\x87\xDEV9\0\xDAw\v\xCB-\x1B\x89\xFB5O\xF5\bQ\`\xC1 +ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS +>\xE9\xECF9\xB2\xF14\r\xC6\x84Sun\xE1\fY\xD9\xDE)\x85{II\xA5wy\xBEIV.6\xE7\v:\xBBOb{\xD2M1\x95/\xBD8{\xA8O!\xE1\xECFpv\x95})"x\x88 +\x90\xDD\x9D\\\xDA\xDEQ\xCF\xF0\xFCYRe|3\xDF\xF3H\xDA\xBB*u\xDB\`\xB2\xD4\xFC\xED\x1B\xEC\x7F5\xA8\xFF(1\x07-\xC8\xDC\x88F|\x8A["`);function Hu(e){this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=W.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={}}Object.defineProperties(Hu.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}}});Hu.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof We)&&(t=e.url);let n=We.createIfNeeded(t);n.appendForwardSlash();let i=new Hu;i._resource=n;try{await xFt(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(o){let r=`An error occurred while accessing ${oWe(i,"",1).url}: ${o}`;throw new ae(r)}return i};Hu.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;ml(t,r)?ml(e,r)&&(s|=1):(s|=2,ml(e,r)||(s|=1)),i+=s}return i};Hu.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];ml(s,2)?ml(s,1)||(t|=r):(n|=r,ml(s,1)&&(t|=r))}return{x:t,y:n,level:i}};Hu.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(l(t))return t!==null;let n=!0,i=e,o;for(;i.length>1;)if(o=i.substring(i.length-1),i=i.substring(0,i.length-1),t=this.getTileInformationFromQuadKey(i),l(t)){!t.hasSubtree()&&!t.hasChild(parseInt(o))&&(n=!1);break}else if(t===null){n=!1;break}return n};var iWe=new Hn("decodeGoogleEarthEnterprisePacket");Hu.prototype.getQuadTreePacket=function(e,t,n){t=t??1,e=e??"";let o=oWe(this,e,t,n).fetchArrayBuffer();if(!l(o))return;let r=this._tileInfo,s=this.key;return o.then(function(a){return iWe.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(d){let u,m=-1;if(e!==""){m=e.length+1;let f=d[e];u=r[e],u._bits|=f._bits,delete d[e]}let p=Object.keys(d);p.sort(function(f,y){return f.length-y.length});let b=p.length;for(let f=0;f<b;++f){let y=p[f];if(d[y]!==null){let S=Gk.clone(d[y]),A=y.length;if(A===m)S.setParent(u);else if(A>1){let Z=r[y.substring(0,y.length-1)];S.setParent(Z)}r[y]=S}else r[y]=null}})})};Hu.prototype.populateSubtree=function(e,t,n,i){let o=Hu.tileXYToQuadKey(e,t,n);return Qne(this,o,i)};function Qne(e,t,n){let i=e._tileInfo,o=t,r=i[o];if(l(r)&&(!r.hasSubtree()||r.hasChildren()))return r;for(;r===void 0&&o.length>1;)o=o.substring(0,o.length-1),r=i[o];let s,a=e._subtreePromises,c=a[o];if(l(c))return c.then(function(){return s=new gr({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),Qne(e,t,s)});if(!l(r)||!r.hasSubtree())return Promise.reject(new ae(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(o,r.cnodeVersion,n),!!l(c))return a[o]=c,c.then(function(){return s=new gr({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),Qne(e,t,s)}).finally(function(){delete a[o]})}Hu.prototype.getTileInformation=function(e,t,n){let i=Hu.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};Hu.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function oWe(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var Jne,jne;function xFt(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!l(jne)){let n=$t("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;jne=rT(n).then(function(){Jne=window.cesiumGoogleEarthDbRootParser(bFt),l(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return jne.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=Jne.EncryptedDbRootProto.decode(new Uint8Array(n)),o=i.encryptionData,r=o.byteOffset,s=r+o.byteLength,a=e.key=o.buffer.slice(r,s);o=i.dbrootData,r=o.byteOffset,s=r+o.byteLength;let c=o.buffer.slice(r,s);return iWe.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=Jne.DbRootProto.decode(new Uint8Array(n.buffer));if(e.imageryPresent=i.imageryPresent??e.imageryPresent,e.protoImagery=i.protoImagery,e.terrainPresent=i.terrainPresent??e.terrainPresent,l(i.endSnippet)&&l(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=a.negativeAltitudeExponentBias??e.negativeAltitudeExponentBias,e.negativeAltitudeThreshold=a.compressedNegativeAltitudeThreshold??e.negativeAltitudeThreshold}l(i.databaseVersion)&&(e._quadPacketVersion=i.databaseVersion.quadtreeVersion??e._quadPacketVersion);let o=e.providers,r=i.providerInfo??[],s=r.length;for(let a=0;a<s;++a){let c=r[a],d=c.copyrightString;l(d)&&(o[c.providerId]=new Rt(d.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=yFt})}var Vg=Hu;var f_o=x(T(),1);function GA(e){e=e??B.EMPTY_OBJECT,this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;let t=e.childTileMask??15,n=t&3;n|=t&4?8:0,n|=t&8?4:0,this._childTileMask=n,this._createdByUpsampling=e.createdByUpsampling??!1,this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0}Object.defineProperties(GA.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var aWe="createVerticesFromGoogleEarthEnterpriseBuffer",TFt=new Hn(aWe),_Ft=new Hn(aWe,wd.maximumAsynchronousTasks),rWe=new se,Vz=new se;GA.prototype.createMesh=function(e){e=e??B.EMPTY_OBJECT;let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=e.exaggeration??1,s=e.exaggerationRelativeHeight??0,a=e.throttle??!0,c=t.ellipsoid;t.tileXYToNativeRectangle(n,i,o,rWe),t.tileXYToRectangle(n,i,o,Vz);let d=c.cartographicToCartesian(se.center(Vz)),m=40075.16/(1<<o);this._skirtHeight=Math.min(m*8,1e3);let b=(a?_Ft:TFt).scheduleTask({buffer:this._buffer,nativeRectangle:rWe,rectangle:Vz,relativeToCenter:d,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:r,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!l(b))return;let f=this;return b.then(function(y){return f._mesh=new cc(d,new Float32Array(y.vertices),new Uint16Array(y.indices),y.indexCountWithoutSkirts,y.vertexCountWithoutSkirts,y.minimumHeight,y.maximumHeight,Vz,ue.clone(y.boundingSphere3D),h.clone(y.occludeePointInScaledSpace),y.numberOfAttributes,en.clone(y.orientedBoundingBox),hr.clone(y.encoding),y.westIndicesSouthToNorth,y.southIndicesEastToWest,y.eastIndicesNorthToSouth,y.northIndicesWestToEast),f._minimumHeight=y.minimumHeight,f._maximumHeight=y.maximumHeight,f._buffer=void 0,f._mesh})};GA.prototype.interpolateHeight=function(e,t,n){let i=W.clamp((t-e.west)/e.width,0,1),o=W.clamp((n-e.south)/e.height,0,1);return l(this._mesh)?RFt(this,i,o):EFt(this,i,o,e)};var SFt=new Hn("upsampleQuantizedTerrainMesh",wd.maximumAsynchronousTasks);GA.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,d=n*2===r,u=e.ellipsoid,m=e.tileXYToRectangle(o,r,s),p=SFt.scheduleTask({vertices:a.vertices,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:d,childRectangle:m,ellipsoid:u});if(!l(p))return;let b=this;return p.then(function(f){let y=new Uint16Array(f.vertices),_=De.createTypedArray(y.length/3,f.indices),S=b._skirtHeight;return new RA({quantizedVertices:y,indices:_,minimumHeight:f.minimumHeight,maximumHeight:f.maximumHeight,boundingSphere:ue.clone(f.boundingSphere),orientedBoundingBox:en.clone(f.orientedBoundingBox),horizonOcclusionPoint:h.clone(f.horizonOcclusionPoint),westIndices:f.westIndices,southIndices:f.southIndices,eastIndices:f.eastIndices,northIndices:f.northIndices,westSkirtHeight:S,southSkirtHeight:S,eastSkirtHeight:S,northSkirtHeight:S,childTileMask:0,createdByUpsampling:!0,credits:b._credits})})};GA.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};GA.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var AFt=new k,ZFt=new k,CFt=new k,cWe=new h;function RFt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let d=s[a],u=s[a+1],m=s[a+2],p=r.decodeTextureCoordinates(o,d,AFt),b=r.decodeTextureCoordinates(o,u,ZFt),f=r.decodeTextureCoordinates(o,m,CFt),y=Pf.computeBarycentricCoordinates(t,n,p.x,p.y,b.x,b.y,f.x,f.y,cWe);if(y.x>=-1e-15&&y.y>=-1e-15&&y.z>=-1e-15){let _=r.decodeHeight(o,d),S=r.decodeHeight(o,u),A=r.decodeHeight(o,m);return y.x*_+y.y*S+y.z*A}}}var VFt=Uint16Array.BYTES_PER_ELEMENT,sWe=Uint32Array.BYTES_PER_ELEMENT,qne=Int32Array.BYTES_PER_ELEMENT,GFt=Float32Array.BYTES_PER_ELEMENT,$ne=Float64Array.BYTES_PER_ELEMENT;function EFt(e,t,n,i){let o=e._buffer,r=0,s=0,a=0;n>.5?(t>.5?(r=2,s=.5):r=3,a=.5):t>.5&&(r=1,s=.5);let c=new DataView(o),d=0;for(let G=0;G<r;++G)d+=c.getUint32(d,!0),d+=sWe;d+=sWe,d+=2*$ne;let u=W.toRadians(c.getFloat64(d,!0)*180);d+=$ne;let m=W.toRadians(c.getFloat64(d,!0)*180);d+=$ne;let p=i.width/u/2,b=i.height/m/2,f=c.getInt32(d,!0);d+=qne;let y=c.getInt32(d,!0)*3;d+=qne,d+=qne;let _=new Array(f),S=new Array(f),A=new Array(f),Z;for(Z=0;Z<f;++Z)_[Z]=s+c.getUint8(d++)*p,S[Z]=a+c.getUint8(d++)*b,A[Z]=c.getFloat32(d,!0)*6371010,d+=GFt;let R=new Array(y);for(Z=0;Z<y;++Z)R[Z]=c.getUint16(d,!0),d+=VFt;for(Z=0;Z<y;Z+=3){let G=R[Z],E=R[Z+1],v=R[Z+2],I=_[G],X=_[E],Y=_[v],g=S[G],C=S[E],V=S[v],L=Pf.computeBarycentricCoordinates(t,n,I,g,X,C,Y,V,cWe);if(L.x>=-1e-15&&L.y>=-1e-15&&L.z>=-1e-15)return L.x*A[G]+L.y*A[E]+L.z*A[v]}}var rV=GA;var v_o=x(T(),1);var oh={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},Gz=new Q;function Ez(){this._terrainCache={},this._lastTidy=Q.now()}Ez.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:Q.now()}};Ez.prototype.get=function(e){let n=this._terrainCache[e];if(l(n))return delete this._terrainCache[e],n.buffer};Ez.prototype.tidy=function(){if(Q.now(Gz),Q.secondsDifference(Gz,this._lastTidy)>10){let e=this._terrainCache,t=Object.keys(e),n=t.length;for(let i=0;i<n;++i){let o=t[i],r=e[o];Q.secondsDifference(Gz,r.timestamp)>10&&delete e[o]}Q.clone(Gz,this._lastTidy)}};function Kx(e){e=e??B.EMPTY_OBJECT,this._tilingScheme=new Oi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new se(-W.PI,-W.PI,W.PI,W.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new Rt(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new Ez,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new Se}Object.defineProperties(Kx.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});Kx.fromMetadata=function(e,t){if(!e.terrainPresent)throw new ae(`The server ${e.url} doesn't have terrain`);let n=new Kx(t);return n._metadata=e,n};var LFt=new Hn("decodeGoogleEarthEnterprisePacket");function lWe(e,t,n){let i=t.getChildBitmask();if(t.terrainState===oh.PARENT){i=0;for(let o=0;o<4;++o){let r=n.getTileInformationFromQuadKey(e+o.toString());l(r)&&r.hasTerrain()&&(i|=1<<o)}}return i}Kx.prototype.requestTileGeometry=function(e,t,n,i){let o=Vg.tileXYToQuadKey(e,t,n),r=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(o);if(!l(a))return Promise.reject(new ae("Terrain tile doesn't exist"));let c=a.terrainState;l(c)||(c=a.terrainState=oh.UNKNOWN);let d=r.get(o);if(l(d)){let S=s.providers[a.terrainProvider];return Promise.resolve(new rV({buffer:d,childTileMask:lWe(o,a,s),credits:l(S)?[S]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(r.tidy(),a.ancestorHasTerrain){if(c===oh.NONE)return Promise.reject(new ae("Terrain tile doesn't exist"))}else return Promise.resolve(new vc({buffer:new Uint8Array(256),width:16,height:16}));let u,m=o,p=-1;switch(c){case oh.SELF:p=a.terrainVersion;break;case oh.PARENT:m=m.substring(0,m.length-1),u=s.getTileInformationFromQuadKey(m),p=u.terrainVersion;break;case oh.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(m=m.substring(0,m.length-1),u=s.getTileInformationFromQuadKey(m),l(u)&&u.hasTerrain()&&(p=u.terrainVersion));break}if(p<0)return Promise.reject(new ae("Terrain tile doesn't exist"));let b=this._terrainPromises,f=this._terrainRequests,y,_;if(l(b[m]))y=b[m],_=f[m];else{_=i;let S=WFt(this,m,p,_).fetchArrayBuffer();if(!l(S))return;y=S.then(function(A){return l(A)?LFt.scheduleTask({buffer:A,type:"Terrain",key:s.key},[A]).then(function(Z){let R=s.getTileInformationFromQuadKey(m);R.terrainState=oh.SELF,r.add(m,Z[0]);let G=R.terrainProvider,E=Z.length-1;for(let v=0;v<E;++v){let I=m+v.toString(),X=s.getTileInformationFromQuadKey(I);l(X)&&(r.add(I,Z[v+1]),X.terrainState=oh.PARENT,X.terrainProvider===0&&(X.terrainProvider=G))}}):Promise.reject(new ae("Failed to load terrain."))}),b[m]=y,f[m]=_,y=y.finally(function(){delete b[m],delete f[m]})}return y.then(function(){let S=r.get(o);if(l(S)){let A=s.providers[a.terrainProvider];return new rV({buffer:S,childTileMask:lWe(o,a,s),credits:l(A)?[A]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new ae("Failed to load terrain."))}).catch(function(S){return _.state===pi.CANCELLED?(i.state=_.state,Promise.reject(S)):(a.terrainState=oh.NONE,Promise.reject(S))})};Kx.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Kx.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,o=Vg.tileXYToQuadKey(e,t,n),r=i.getTileInformation(e,t,n);if(r===null)return!1;if(l(r)){if(!r.ancestorHasTerrain)return!0;let s=r.terrainState;if(s===oh.NONE)return!1;if((!l(s)||s===oh.UNKNOWN)&&(r.terrainState=oh.UNKNOWN,!r.hasTerrain())){o=o.substring(0,o.length-1);let a=i.getTileInformationFromQuadKey(o);if(!l(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(o)){let s=new gr({throttle:!1,throttleByServer:!0,type:ws.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};Kx.prototype.loadTileDataAvailability=function(e,t,n){};function WFt(e,t,n,i){return n=l(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var eie=Kx;var w_o=x(T(),1);var vFt="https://maps.googleapis.com/maps/api/geocode/json",dWe='<img alt="Google" src="https://assets.ion.cesium.com/google-credit.png" style="vertical-align:-5px">';function tie(e){e=e??B.EMPTY_OBJECT;let t=e.key;this._resource=new We({url:vFt,queryParameters:{key:t}}),this._credit=new Rt(dWe,!0)}Object.defineProperties(tie.prototype,{credit:{get:function(){return this._credit}}});tie.prototype.geocode=async function(e){let n=await this._resource.getDerivedResource({queryParameters:{address:e}}).fetchJson();if(n.status==="ZERO_RESULTS")return[];if(n.status!=="OK")throw new ae(`GoogleGeocoderService got a bad response ${n.status}: ${n.error_message}`);return n.results.map(o=>{let r=o.geometry.viewport.southwest,s=o.geometry.viewport.northeast;return{displayName:o.formatted_address,destination:se.fromDegrees(r.lng,r.lat,s.lng,s.lat),attribution:{html:dWe,collapsible:!1}}})};var nie=tie;var O_o=x(T(),1);var js={};js.ExportStatus=Object.freeze({NotStarted:"NotStarted",InProgress:"InProgress",Complete:"Complete",Invalid:"Invalid"});js.ExportType=Object.freeze({IMODEL:"IMODEL",CESIUM:"CESIUM","3DTILES":"3DTILES"});js.RealityDataType=Object.freeze({Cesium3DTiles:"Cesium3DTiles",PNTS:"PNTS",RealityMesh3DTiles:"RealityMesh3DTiles",Terrain3DTiles:"Terrain3DTiles",GaussianSplat3DTiles:"GS_3DT",KML:"KML",GeoJSON:"GeoJSON",Unstructured:"Unstructured"});js.defaultAccessToken=void 0;js.defaultShareKey=void 0;js._getAuthorizationHeader=function(){return l(js.defaultShareKey)?`Basic ${js.defaultShareKey}`:`Bearer ${js.defaultAccessToken}`};js.apiEndpoint=new We({url:"https://api.bentley.com"});js.getExports=async function(e,t){let n=new We({url:`${js.apiEndpoint}mesh-export`,headers:{Authorization:js._getAuthorizationHeader(),Accept:"application/vnd.bentley.itwin-platform.v1+json",Prefer:"return=representation"},queryParameters:{iModelId:e,exportType:js.ExportType["3DTILES"],$top:"5",client:"CesiumJS"}});typeof CESIUM_VERSION<"u"&&n.appendQueryParameters({clientVersion:CESIUM_VERSION}),l(t)&&t!==""&&n.appendQueryParameters({changesetId:t});try{return await n.fetchJson()}catch(i){let o=JSON.parse(i.response);if(i.statusCode===401){let r=o.error.details?.[0].code??"";throw new ae(`Unauthorized, bad token, wrong scopes or headers bad. ${r}`)}else{if(i.statusCode===403)throw console.error(o.error.code,o.error.message),new ae("Not allowed, forbidden");if(i.statusCode===422)throw new ae(`Unprocessable Entity:${o.error.code} ${o.error.message}`);if(i.statusCode===429)throw new ae("Too many requests")}throw new ae(`Unknown request failure ${i.statusCode}`)}};js.getRealityDataMetadata=async function(e,t){let n=new We({url:`${js.apiEndpoint}reality-management/reality-data/${t}`,headers:{Authorization:js._getAuthorizationHeader(),Accept:"application/vnd.bentley.itwin-platform.v1+json"},queryParameters:{iTwinId:e}});try{return(await n.fetchJson()).realityData}catch(i){let o=JSON.parse(i.response);if(i.statusCode===401){let r=o.error.details?.[0].code??"";throw new ae(`Unauthorized, bad token, wrong scopes or headers bad. ${r}`)}else{if(i.statusCode===403)throw console.error(o.error.code,o.error.message),new ae("Not allowed, forbidden");if(i.statusCode===404)throw new ae(`Reality data not found: ${e}, ${t}`);if(i.statusCode===422)throw new ae(`Unprocessable Entity:${o.error.code} ${o.error.message}`);if(i.statusCode===429)throw new ae("Too many requests")}throw new ae(`Unknown request failure ${i.statusCode}`)}};js.getRealityDataURL=async function(e,t,n){let i=new We({url:`${js.apiEndpoint}reality-management/reality-data/${t}/readaccess`,headers:{Authorization:js._getAuthorizationHeader(),Accept:"application/vnd.bentley.itwin-platform.v1+json"},queryParameters:{iTwinId:e}});try{let r=(await i.fetchJson())._links.containerUrl.href,s=new URL(r);return s.pathname=`${s.pathname}/${n}`,s.toString()}catch(o){let r=JSON.parse(o.response);if(o.statusCode===401){let s=r.error.details?.[0].code??"";throw new ae(`Unauthorized, bad token, wrong scopes or headers bad. ${s}`)}else{if(o.statusCode===403)throw console.error(r.error.code,r.error.message),new ae("Not allowed, forbidden");if(o.statusCode===404)throw new ae(`Reality data not found: ${e}, ${t}`);if(o.statusCode===422)throw new ae(`Unprocessable Entity:${r.error.code} ${r.error.message}`);if(o.statusCode===429)throw new ae("Too many requests")}throw new ae(`Unknown request failure ${o.statusCode}`)}};var Qs=js;var H_o=x(T(),1);var iie=class{constructor(){lt(this,"type")}getRequiredDataPoints(t){Te.throwInstantiationError()}interpolateOrderZero(t,n,i,o,r){Te.throwInstantiationError()}interpolate(t,n,i,o,r,s,a){Te.throwInstantiationError()}},oie=iie;var j_o=x(T(),1),uWe={GOOGLE:"GOOGLE",BING:"BING",DEFAULT:"DEFAULT"};Object.freeze(uWe);var Gg=uWe;var hSo=x(T(),1);var iSo=x(T(),1);function rie(e){this._url=We.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(rie.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});rie.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===Hx.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(o){let r,s=o.bbox;if(l(s))r=se.fromDegrees(s[0],s[1],s[2],s[3]);else{let a=o.geometry.coordinates[0],c=o.geometry.coordinates[1];r=h.fromDegrees(a,c)}return{displayName:o.properties.label,destination:r,attributions:i.attributions}})})};var Ek=rie;function FFt(e){if(!Object.values(Gg).some(t=>t===e))throw new Te(`Invalid geocodeProviderType: "${e}"`)}var mWe=Object.freeze({[Gg.GOOGLE]:"google",[Gg.BING]:"bing",[Gg.DEFAULT]:void 0});function IFt(e){return mWe[e]}function PFt(e){return Object.entries(mWe).find(t=>t[1]===e)[0]}function sie(e){e=e??B.EMPTY_OBJECT;let t=e.geocodeProviderType??Gg.DEFAULT,n=e.accessToken??Gh.defaultAccessToken,i=We.createIfNeeded(e.server??Gh.defaultServer);i.appendForwardSlash();let o=Gh.getDefaultTokenCredit(n);l(o)&&e.scene.frameState.creditDisplay.addStaticCredit(Rt.clone(o));let r=i.getDerivedResource({url:"v1/geocode"});l(n)&&r.appendQueryParameters({access_token:n}),this._accessToken=n,this._server=i,this._pelias=new Ek(r),this.geocodeProviderType=t}Object.defineProperties(sie.prototype,{credit:{get:function(){}},geocodeProviderType:{get:function(){return PFt(this._pelias.url.queryParameters.geocoder)},set:function(e){FFt(e);let t={...this._pelias.url.queryParameters,geocoder:IFt(e)};l(t.geocoder)||delete t.geocoder,this._pelias.url.setQueryParameters(t)}}});sie.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var EA=sie;var bSo=x(T(),1);var aie=class{constructor(){lt(this,"ellipsoid")}project(t,n){Te.throwInstantiationError()}unproject(t,n){Te.throwInstantiationError()}},cie=aie;var SSo=x(T(),1);function sV(e){e=e??B.EMPTY_OBJECT;let t=e.weights,n=e.times;this._times=n,this._weights=t,this._count=t.length/n.length,this._lastTimeIndex=0}Object.defineProperties(sV.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});sV.prototype.findTimeInterval=So.prototype.findTimeInterval;sV.prototype.wrapTime=So.prototype.wrapTime;sV.prototype.clampTime=So.prototype.clampTime;sV.prototype.evaluate=function(e,t){let n=this.weights,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);l(t)||(t=new Array(this._count));for(let s=0;s<this._count;s++){let a=o*this._count+s;t[s]=n[a]*(1-r)+n[a+this._count]*r}return t};var lie=sV;var LSo=x(T(),1);function die(e,t,n){e=We.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=n??{},this._credit=new Rt('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(die.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});die.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:vt(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let o,r=i.bounds;if(l(r))o=se.fromDegrees(r.southwest.lng,r.southwest.lat,r.northeast.lng,r.northeast.lat);else{let{lng:s,lat:a}=i.geometry;o=h.fromDegrees(s,a)}return{displayName:i.formatted,destination:o}})})};var uie=die;var FSo=x(T(),1);var XFt={packedLength:void 0,pack:Te.throwInstantiationError,unpack:Te.throwInstantiationError},mie=XFt;var XSo=x(T(),1);var YFt={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:Te.throwInstantiationError,unpackInterpolationResult:Te.throwInstantiationError},hie=YFt;var wSo=x(T(),1);function hWe(){Te.throwInstantiationError()}hWe.prototype.getURL=Te.throwInstantiationError;var fie=hWe;var nAo=x(T(),1);function NFt(e,t,n,i,o,r,s){let a=Hi.numberOfPoints(e,t,o),c,d=n.red,u=n.green,m=n.blue,p=n.alpha,b=i.red,f=i.green,y=i.blue,_=i.alpha;if(U.equals(n,i)){for(c=0;c<a;c++)r[s++]=U.floatToByte(d),r[s++]=U.floatToByte(u),r[s++]=U.floatToByte(m),r[s++]=U.floatToByte(p);return s}let S=(b-d)/a,A=(f-u)/a,Z=(y-m)/a,R=(_-p)/a,G=s;for(c=0;c<a;c++)r[G++]=U.floatToByte(d+c*S),r[G++]=U.floatToByte(u+c*A),r[G++]=U.floatToByte(m+c*Z),r[G++]=U.floatToByte(p+c*R);return G}function Lk(e){e=e??B.EMPTY_OBJECT;let t=e.positions,n=e.colors,i=e.colorsPerVertex??!1;this._positions=t,this._colors=n,this._colorsPerVertex=i,this._arcType=e.arcType??ln.GEODESIC,this._granularity=e.granularity??W.RADIANS_PER_DEGREE,this._ellipsoid=e.ellipsoid??ie.default,this._workerName="createSimplePolylineGeometry";let o=1+t.length*h.packedLength;o+=l(n)?1+n.length*U.packedLength:1,this.packedLength=o+ie.packedLength+3}Lk.pack=function(e,t,n){n=n??0;let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=U.packedLength)U.pack(s[i],t,n);return ie.pack(e._ellipsoid,t,n),n+=ie.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};Lk.unpack=function(e,t,n){t=t??0;let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=U.packedLength)s[i]=U.unpack(e,t);let a=ie.unpack(e,t);t+=ie.packedLength;let c=e[t++]===1,d=e[t++],u=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=d,n._granularity=u,n):new Lk({positions:r,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:d,granularity:u})};var Lz=new Array(2),Wz=new Array(2),wFt={positions:Lz,height:Wz,ellipsoid:void 0,minDistance:void 0,granularity:void 0};Lk.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,o=e._arcType,r=e._granularity,s=e._ellipsoid,a=W.chordLength(r,s.maximumRadius),c=l(n)&&!i,d,u=t.length,m,p,b,f,y=0;if(o===ln.GEODESIC||o===ln.RHUMB){let R,G,E;o===ln.GEODESIC?(R=W.chordLength(r,s.maximumRadius),G=Hi.numberOfPoints,E=Hi.generateArc):(R=r,G=Hi.numberOfPointsRhumbLine,E=Hi.generateRhumbArc);let v=Hi.extractHeights(t,s),I=wFt;if(o===ln.GEODESIC?I.minDistance=a:I.granularity=r,I.ellipsoid=s,c){let X=0;for(d=0;d<u-1;d++)X+=G(t[d],t[d+1],R)+1;m=new Float64Array(X*3),b=new Uint8Array(X*4),I.positions=Lz,I.height=Wz;let Y=0;for(d=0;d<u-1;++d){Lz[0]=t[d],Lz[1]=t[d+1],Wz[0]=v[d],Wz[1]=v[d+1];let g=E(I);if(l(n)){let C=g.length/3;f=n[d];for(let V=0;V<C;++V)b[Y++]=U.floatToByte(f.red),b[Y++]=U.floatToByte(f.green),b[Y++]=U.floatToByte(f.blue),b[Y++]=U.floatToByte(f.alpha)}m.set(g,y),y+=g.length}}else if(I.positions=t,I.height=v,m=new Float64Array(E(I)),l(n)){for(b=new Uint8Array(m.length/3*4),d=0;d<u-1;++d){let Y=t[d],g=t[d+1],C=n[d],V=n[d+1];y=NFt(Y,g,C,V,a,b,y)}let X=n[u-1];b[y++]=U.floatToByte(X.red),b[y++]=U.floatToByte(X.green),b[y++]=U.floatToByte(X.blue),b[y++]=U.floatToByte(X.alpha)}}else{p=c?u*2-2:u,m=new Float64Array(p*3),b=l(n)?new Uint8Array(p*4):void 0;let R=0,G=0;for(d=0;d<u;++d){let E=t[d];if(c&&d>0&&(h.pack(E,m,R),R+=3,f=n[d-1],b[G++]=U.floatToByte(f.red),b[G++]=U.floatToByte(f.green),b[G++]=U.floatToByte(f.blue),b[G++]=U.floatToByte(f.alpha)),c&&d===u-1)break;h.pack(E,m,R),R+=3,l(n)&&(f=n[d],b[G++]=U.floatToByte(f.red),b[G++]=U.floatToByte(f.green),b[G++]=U.floatToByte(f.blue),b[G++]=U.floatToByte(f.alpha))}}let _=new xn;_.position=new Pe({componentDatatype:J.DOUBLE,componentsPerAttribute:3,values:m}),l(n)&&(_.color=new Pe({componentDatatype:J.UNSIGNED_BYTE,componentsPerAttribute:4,values:b,normalize:!0})),p=m.length/3;let S=(p-1)*2,A=De.createTypedArray(p,S),Z=0;for(d=0;d<p-1;++d)A[Z++]=d,A[Z++]=d+1;return new Zt({attributes:_,indices:A,primitiveType:ve.LINES,boundingSphere:ue.fromPoints(t)})};var pie=Lk;var cAo=x(T(),1);function aV(e){let t=e.radius??1,i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new Pa(i),this._workerName="createSphereGeometry"}aV.packedLength=Pa.packedLength;aV.pack=function(e,t,n){return Pa.pack(e._ellipsoidGeometry,t,n)};var MFt=new Pa,Jx={radius:void 0,radii:new h,vertexFormat:new Me,stackPartitions:void 0,slicePartitions:void 0};aV.unpack=function(e,t,n){let i=Pa.unpack(e,t,MFt);return Jx.vertexFormat=Me.clone(i._vertexFormat,Jx.vertexFormat),Jx.stackPartitions=i._stackPartitions,Jx.slicePartitions=i._slicePartitions,l(n)?(h.clone(i._radii,Jx.radii),n._ellipsoidGeometry=new Pa(Jx),n):(Jx.radius=i._radii.x,new aV(Jx))};aV.createGeometry=function(e){return Pa.createGeometry(e._ellipsoidGeometry)};var Wk=aV;var uAo=x(T(),1);var bie=class{constructor(t){lt(this,"ellipsoid");lt(this,"rectangle");lt(this,"projection")}getNumberOfXTilesAtLevel(t){Te.throwInstantiationError()}getNumberOfYTilesAtLevel(t){Te.throwInstantiationError()}rectangleToNativeRectangle(t,n){Te.throwInstantiationError()}tileXYToNativeRectangle(t,n,i,o){Te.throwInstantiationError()}tileXYToRectangle(t,n,i,o){Te.throwInstantiationError()}positionToTileXY(t,n,i){Te.throwInstantiationError()}},gie=bie;var GAo=x(T(),1);function kFt(e,t){this.rectangle=e,this.maxLevel=t}function fWe(e){this.ellipsoid=e.ellipsoid??ie.default,this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}fWe.prototype.build=function(e){e._tilingScheme=this.tilingScheme,e._heightmapWidth=this.heightmapWidth,e._heightmapHeight=this.heightmapHeight,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._rectangles=this.rectangles};function UFt(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new Oi({ellipsoid:e.ellipsoid});else throw new ae(`SRS ${n} is not supported`);let i=t.getElementsByTagName("TileFormat")[0];e.heightmapWidth=parseInt(i.getAttribute("width"),10),e.heightmapHeight=parseInt(i.getAttribute("height"),10),e.levelZeroMaximumGeometricError=Mo.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.ellipsoid,Math.min(e.heightmapWidth,e.heightmapHeight),e.tilingScheme.getNumberOfXTilesAtLevel(0));let o=t.getElementsByTagName("DataExtent");for(let r=0;r<o.length;++r){let s=o[r],a=W.toRadians(parseFloat(s.getAttribute("minx"))),c=W.toRadians(parseFloat(s.getAttribute("miny"))),d=W.toRadians(parseFloat(s.getAttribute("maxx"))),u=W.toRadians(parseFloat(s.getAttribute("maxy"))),m=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new kFt(new se(a,c,d,u),m))}}function DFt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i=`${i}: ${t.message}`),Bo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new ae(i)}async function OFt(e,t,n){try{let i=await t.fetchXML();UFt(e,i)}catch(i){DFt(t,i,n)}}function jx(e){e=e??B.EMPTY_OBJECT,this._errorEvent=new Se,this._terrainDataStructure={heightScale:1/1e3,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:256*256*256-1};let t=e.credit;typeof t=="string"&&(t=new Rt(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[]}Object.defineProperties(jx.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});jx.fromUrl=async function(e,t){t=t??B.EMPTY_OBJECT;let n=new fWe(t),i=We.createIfNeeded(e);await OFt(n,i);let o=new jx(t);return n.build(o),o._resource=i,o};jx.prototype.requestTileGeometry=function(e,t,n,i){let o=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:`${n}/${e}/${o-t-1}.tif`,queryParameters:{cesium:!0},request:i}).fetchImage({preferImageBitmap:!0});if(!l(s))return;let a=this;return Promise.resolve(s).then(function(c){return new vc({buffer:dh(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:BFt(a,e,t,n),structure:a._terrainDataStructure})})};jx.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var pWe=new se;function BFt(e,t,n,i){let o=e._tilingScheme,r=e._rectangles,s=o.tileXYToRectangle(t,n,i),a=0;for(let c=0;c<r.length&&a!==15;++c){let d=r[c];if(d.maxLevel<=i)continue;let u=d.rectangle,m=se.intersection(u,s,pWe);l(m)&&(vz(o,u,t*2,n*2,i+1)&&(a|=4),vz(o,u,t*2+1,n*2,i+1)&&(a|=8),vz(o,u,t*2,n*2+1,i+1)&&(a|=1),vz(o,u,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function vz(e,t,n,i,o){let r=e.tileXYToRectangle(n,i,o);return l(se.intersection(r,t,pWe))}jx.prototype.getTileDataAvailable=function(e,t,n){};jx.prototype.loadTileDataAvailability=function(e,t,n){};var yie=jx;var PAo=x(T(),1);function LA(e){e=e??B.EMPTY_OBJECT,this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=e.clock,this.element=e.element,this.epoch=e.epoch??qe.MINIMUM_VALUE,this.tolerance=e.tolerance??1,this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(LA.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(l(t)&&(this._clockSubscription(),this._clockSubscription=void 0),l(e)&&(this._clockSubscription=e.onTick.addEventListener(LA.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(l(t)&&t.removeEventListener("seeked",this._seekFunction,!1),l(e)&&(this._seeking=!1,this._seekFunction=zFt(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});LA.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,he(this)};LA.prototype.isDestroyed=function(){return!1};LA.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate===e.multiplier)return;let t=this._element;try{t.playbackRate=e.multiplier}catch{t.playbackRate=0}this._lastPlaybackRate=e.multiplier};LA.prototype._onTick=function(e){let t=this._element;if(!l(t)||t.readyState<2)return;let n=t.paused,i=e.shouldAnimate;if(i===n&&(i?t.play():t.pause()),this._seeking||this._firstTickAfterSeek){this._firstTickAfterSeek=!1;return}this._trySetPlaybackRate(e);let o=e.currentTime,r=this.epoch??qe.MINIMUM_VALUE,s=Q.secondsDifference(o,r),a=t.duration,c,d=t.currentTime;t.loop?(s=s%a,s<0&&(s=a-s),c=s):s>a?c=a:s<0?c=0:c=s;let u=i?this.tolerance??1:.001;Math.abs(c-d)>u&&(this._seeking=!0,t.currentTime=c)};function zFt(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var xie=LA;var YAo=x(T(),1),bWe={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033};Object.freeze(bWe);var Tie=bWe;var kAo=x(T(),1);function HFt(e){return e=e??B.EMPTY_OBJECT,VA.fromIonAssetId(2426648,{requestVertexNormals:e.requestVertexNormals??!1})}var vk=HFt;var zAo=x(T(),1);function KFt(e){return e=e??B.EMPTY_OBJECT,VA.fromIonAssetId(1,{requestVertexNormals:e.requestVertexNormals??!1,requestWaterMask:e.requestWaterMask??!1,ellipsoid:ie.WGS84})}var WA=KFt;var JAo=x(T(),1);var JFt=1953029805,jFt=2917034100;function _ie(e,t){if(_ie.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new ae("The length of key must be greater than 0 and a multiple of 4.");let i=new DataView(t),o=i.getUint32(0,!0);if(o===JFt||o===jFt)return t;let r=new DataView(e),s=0,a=t.byteLength,c=a-a%8,d=n,u,m=8;for(;s<c;)for(m=(m+8)%24,u=m;s<c&&u<d;)i.setUint32(s,i.getUint32(s,!0)^r.getUint32(u,!0),!0),i.setUint32(s+4,i.getUint32(s+4,!0)^r.getUint32(u+4,!0),!0),s+=8,u+=24;if(s<a)for(u>=d&&(m=(m+8)%24,u=m);s<a;)i.setUint8(s,i.getUint8(s)^r.getUint8(u)),s++,u++}_ie.passThroughDataForTesting=!1;var Fk=_ie;var eZo=x(T(),1);var QFt=new h;function qFt(e,t,n,i){let o=mT(e,t,n,i,QFt);return l(o)?o.x>0&&o.y>0&&o.z>0:!1}var Sie=qFt;var nZo=x(T(),1);function $Ft(e){return e<=.04045?e*.07739938080495357:Math.pow((e+.055)*.9478672985781991,2.4)}var vA=$Ft;var rZo=x(T(),1);function eIt(e){switch(e){case ne.FLOAT:return"float";case ne.FLOAT_VEC2:return"vec2";case ne.FLOAT_VEC3:return"vec3";case ne.FLOAT_VEC4:return"vec4";case ne.FLOAT_MAT2:return"mat2";case ne.FLOAT_MAT3:return"mat3";case ne.FLOAT_MAT4:return"mat4";case ne.SAMPLER_2D:return"sampler2D";case ne.BOOL:return"bool"}}var Aie=eIt;var aZo=x(T(),1);function tIt(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var Ik=tIt;var lZo=x(T(),1),Pk=`uniform sampler2D u_noiseTexture; +uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +in vec2 v_offset; +in vec3 v_maximumSize; +in vec4 v_color; +in float v_slice; +in float v_brightness; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec2 voxelToUV(vec3 voxelIndex) { + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + + float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth; + vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared, + inverseNoiseTextureRows / textureSliceWidth); + vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth); + float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows); + float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows); + + float xPixelCoord = wrappedIndex.x + column * textureSliceWidth; + float yPixelCoord = wrappedIndex.y + row * textureSliceWidth; + return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions; +} + +// Interpolate a voxel with its neighbor (along the positive X-axis) +vec4 lerpSamplesX(vec3 voxelIndex, float x) { + vec2 uv0 = voxelToUV(voxelIndex); + vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0)); + vec4 sample0 = texture(u_noiseTexture, uv0); + vec4 sample1 = texture(u_noiseTexture, uv1); + return mix(sample0, sample1, x); +} + +vec4 sampleNoiseTexture(vec3 position) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0); + vec3 lerpValue = fract(recenteredPos); + vec3 voxelIndex = floor(recenteredPos); + + vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x); + vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x); + vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x); + vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x); + + vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y); + vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y); + return mix(yLerp0, yLerp1, lerpValue.z); +} + +// Intersection with a unit sphere with radius 0.5 at center (0, 0, 0). +bool intersectSphere(vec3 origin, vec3 dir, float slice, + out vec3 point, out vec3 normal) { + float A = dot(dir, dir); + float B = dot(origin, dir); + float C = dot(origin, origin) - 0.25; + float discriminant = (B * B) - (A * C); + if(discriminant < 0.0) { + return false; + } + float root = sqrt(discriminant); + float t = (-B - root) / A; + if(t < 0.0) { + t = (-B + root) / A; + } + point = origin + t * dir; + + if(slice >= 0.0) { + point.z = (slice / 2.0) - 0.5; + if(length(point) > 0.5) { + return false; + } + } + + normal = normalize(point); + point -= czm_epsilon2 * normal; + return true; +} + +// Transforms the ray origin and direction into unit sphere space, +// then transforms the result back into the ellipsoid's space. +bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice, + out vec3 point, out vec3 normal) { + if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) { + return false; + } + + vec3 o = (origin - center) / scale; + vec3 d = dir / scale; + vec3 p, n; + bool intersected = intersectSphere(o, d, slice, p, n); + if(intersected) { + point = (p * scale) + center; + normal = n; + } + return intersected; +} + +// Assume that if phase shift is being called for octave i, +// the frequency is of i - 1. This saves us from doing extra +// division / multiplication operations. +vec2 phaseShift2D(vec2 p, vec2 freq) { + return (czm_pi / 2.0) * sin(freq.yx * p.yx); +} + +vec2 phaseShift3D(vec3 p, vec2 freq) { + return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z)); +} + +// The cloud texture function derived from Gardner's 1985 paper, +// "Visual Simulation of Clouds." +// https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf +const float T0 = 0.6; // contrast of the texture pattern +const float k = 0.1; // computed to produce a maximum value of 1 +const float C0 = 0.8; // coefficient +const float FX0 = 0.6; // frequency X +const float FY0 = 0.6; // frequency Y +const int octaves = 5; + +float T(vec3 point) { + vec2 sum = vec2(0.0); + float Ci = C0; + vec2 FXY = vec2(FX0, FY0); + vec2 PXY = vec2(0.0); + for(int i = 1; i <= octaves; i++) { + PXY = phaseShift3D(point, FXY); + Ci *= 0.707; + FXY *= 2.0; + vec2 sinTerm = sin(FXY * point.xy + PXY); + sum += Ci * sinTerm + vec2(T0); + } + return k * sum.x * sum.y; +} + +const float a = 0.5; // fraction of surface reflection due to ambient or scattered light, +const float t = 0.4; // fraction of texture shading +const float s = 0.25; // fraction of specular reflection + +float I(float Id, float Is, float It) { + return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a; +} + +const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7)); + +vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice, + float brightness) { + vec3 cloudPoint, cloudNormal; + if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice, + cloudPoint, cloudNormal)) { + return vec4(0.0); + } + + float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0); // diffuse reflection + float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0); // specular reflection + float It = T(cloudPoint); // texture function + float intensity = I(Id, Is, It); + vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0)); + + vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint); + float W = noise.x; + float W2 = noise.y; + float W3 = noise.z; + + // The dot product between the cloud's normal and the ray's direction is greatest + // in the center of the ellipsoid's surface. It decreases towards the edge. + // Thus, it is used to blur the areas leading to the edges of the ellipsoid, + // so that no harsh lines appear. + + // The first (and biggest) layer of worley noise is then subtracted from this. + // The final result is scaled up so that the base cloud is not too translucent. + float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0); + float TR = pow(ndDot, 3.0) - W; // translucency + TR *= 1.3; + + // Subtracting the second and third layers of worley noise is more complicated. + // If these layers of noise were simply subtracted from the current translucency, + // the shape derived from the first layer of noise would be completely deleted. + // The erosion of this noise should thus be constricted to the edges of the cloud. + // However, because the edges of the ellipsoid were already blurred away, mapping + // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance. + // The value of (0.5 - ndDot) provides the best compromise. + float minusDot = 0.5 - ndDot; + + // Even with the previous calculation, subtracting the second layer of wnoise + // erode too much of the cloud. The addition of it, however, will detailed + // volume to the cloud. As long as the noise is only added and not subtracted, + // the results are aesthetically pleasing. + + // The minusDot product is mapped in a way that it is larger at the edges of + // the ellipsoid, so a subtraction and min operation are used instead of + // an addition and max one. + TR -= min(minusDot * W2, 0.0); + + // The third level of worley noise is subtracted from the result, with some + // modifications. First, a scalar is added to minusDot so that the noise + // starts affecting the shape farther away from the center of the ellipsoid's + // surface. Then, it is scaled down so its impact is not too intense. + TR -= 0.8 * (minusDot + 0.25) * W3; + + // The texture function's shading does not correlate with the shape of the cloud + // produced by the layers of noise, so an extra shading scalar is calculated. + // The darkest areas of the cloud are assigned to be where the noise erodes + // the cloud the most. This is then interpolated based on the translucency + // and the diffuse shading term of that point in the cloud. + float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR); + + // To avoid values that are too dark, this scalar is increased by a small amount + // and clamped so it never goes to zero. + shading = clamp(shading + 0.2, 0.3, 1.0); + + // Finally, the contrast of the cloud's color is increased. + vec3 finalColor = mix(vec3(0.5), shading * color, 1.15); + return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color; +} + +void main() { +#ifdef DEBUG_BILLBOARDS + out_FragColor = vec4(0.0, 0.5, 0.5, 1.0); +#endif + // To avoid calculations with high values, + // we raycast from an arbitrarily smaller space. + vec2 coordinate = v_maximumSize.xy * v_offset; + + vec3 ellipsoidScale = 0.82 * v_maximumSize; + vec3 ellipsoidCenter = vec3(0.0); + + float zOffset = max(ellipsoidScale.z - 10.0, 0.0); + vec3 eye = vec3(0, 0, -10.0 - zOffset); + vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye); + vec3 rayOrigin = eye; +#ifdef DEBUG_ELLIPSOIDS + vec3 point, normal; + if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice, + point, normal)) { + out_FragColor = v_brightness * v_color; + } +#else +#ifndef DEBUG_BILLBOARDS + vec4 cloud = drawCloud(rayOrigin, rayDir, + ellipsoidCenter, ellipsoidScale, v_slice, v_brightness); + if(cloud.w < 0.01) { + discard; + } + out_FragColor = cloud; +#endif +#endif +} +`;var uZo=x(T(),1),Xk=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScaleX; +in vec4 positionLowAndScaleY; +in vec4 packedAttribute0; +in vec4 packedAttribute1; +in vec4 color; + +out vec2 v_offset; +out vec3 v_maximumSize; +out vec4 v_color; +out float v_slice; +out float v_brightness; + +void main() { + // Unpack attributes. + vec3 positionHigh = positionHighAndScaleX.xyz; + vec3 positionLow = positionLowAndScaleY.xyz; + vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w); + + float show = packedAttribute0.x; + float brightness = packedAttribute0.y; + vec2 coordinates = packedAttribute0.wz; + vec3 maximumSize = packedAttribute1.xyz; + float slice = packedAttribute1.w; + +#ifdef INSTANCED + vec2 dir = direction; +#else + vec2 dir = coordinates; +#endif + + vec2 offset = dir - vec2(0.5, 0.5); + vec2 scaledOffset = scale * offset; + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + positionEC.xy += scaledOffset; + + positionEC.xyz *= show; + gl_Position = czm_projection * positionEC; + + v_offset = offset; + v_maximumSize = maximumSize; + v_color = color; + v_slice = slice; + v_brightness = brightness; +} +`;var hZo=x(T(),1),Yk=`uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +uniform vec3 u_noiseOffset; +in vec2 v_position; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec3 random3(vec3 p) { + float dot1 = dot(p, vec3(127.1, 311.7, 932.8)); + float dot2 = dot(p, vec3(269.5, 183.3, 421.4)); + return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2)); +} + +// Frequency corresponds to cell size. +// The higher the frequency, the smaller the cell size. +vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 cell = centerCell + offset; + cell = wrapVec(cell, textureSliceWidth / u_noiseDetail); + cell += floor(u_noiseOffset / u_noiseDetail); + vec3 p = offset + random3(cell); + return p; +} + +float worleyNoise(vec3 p, float freq) { + vec3 centerCell = floor(p * freq); + vec3 pointInCell = fract(p * freq); + float shortestDistance = 1000.0; + + for(float z = -1.0; z <= 1.0; z++) { + for(float y = -1.0; y <= 1.0; y++) { + for(float x = -1.0; x <= 1.0; x++) { + vec3 offset = vec3(x, y, z); + vec3 point = getWorleyCellPoint(centerCell, offset, freq); + + float distance = length(pointInCell - point); + if(distance < shortestDistance) { + shortestDistance = distance; + } + } + } + } + + return shortestDistance; +} + +const float MAX_FBM_ITERATIONS = 10.0; + +float worleyFBMNoise(vec3 p, float octaves, float scale) { + float noise = 0.0; + float freq = 1.0; + float persistence = 0.625; + for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) { + if(i >= octaves) { + break; + } + + noise += worleyNoise(p * scale, freq * scale) * persistence; + persistence *= 0.5; + freq *= 2.0; + } + return noise; +} + +void main() { + float textureSliceWidth = u_noiseTextureDimensions.x; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + float x = mod(v_position.x, textureSliceWidth); + float y = mod(v_position.y, textureSliceWidth); + float sliceRow = floor(v_position.y / textureSliceWidth); + float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth; + + vec3 position = vec3(x, y, z); + position /= u_noiseDetail; + float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0); + float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0); + float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0); + out_FragColor = vec4(worley0, worley1, worley2, 1.0); +} +`;var pZo=x(T(),1),Nk=`uniform vec3 u_noiseTextureDimensions; +in vec2 position; + +out vec2 v_position; + +void main() +{ + gl_Position = vec4(position, 0.1, 1.0); + + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + vec2 transformedPos = (position * 0.5) + vec2(0.5); + transformedPos *= textureSliceWidth; + transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows; + transformedPos.y *= noiseTextureRows; + v_position = transformedPos; +} +`;var gZo=x(T(),1),wk=` +in vec2 v_textureCoordinates; + +void main() +{ + czm_materialInput materialInput; + + materialInput.s = v_textureCoordinates.s; + materialInput.st = v_textureCoordinates; + materialInput.str = vec3(v_textureCoordinates, 0.0); + materialInput.normalEC = vec3(0.0, 0.0, -1.0); + + czm_material material = czm_getMaterial(materialInput); + + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +} +`;var _Zo=x(T(),1);var nIt=new h(1,1,1);function Zie(e){e=e??nIt,this._dimensions=h.clone(e)}Object.defineProperties(Zie.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){h.clone(e,this._dimensions)}}});var iIt=new h;Zie.prototype.emit=function(e){let t=this._dimensions,n=h.multiplyByScalar(t,.5,iIt),i=W.randomBetween(-n.x,n.x),o=W.randomBetween(-n.y,n.y),r=W.randomBetween(-n.z,n.z);e.position=h.fromElements(i,o,r,e.position),e.velocity=h.normalize(e.position,e.velocity)};var Cie=Zie;var ZZo=x(T(),1);var Rie=class{constructor(){lt(this,"featuresLength");lt(this,"pointsLength");lt(this,"trianglesLength");lt(this,"geometryByteLength");lt(this,"texturesByteLength");lt(this,"batchTableByteLength");lt(this,"innerContents");lt(this,"ready");lt(this,"tileset");lt(this,"tile");lt(this,"url");lt(this,"batchTable");lt(this,"metadata");lt(this,"group");this.featurePropertiesDirty=!1}hasProperty(t,n){Te.throwInstantiationError()}getFeature(t){Te.throwInstantiationError()}applyDebugSettings(t,n){Te.throwInstantiationError()}applyStyle(t){Te.throwInstantiationError()}update(t,n){Te.throwInstantiationError()}pick(t,n,i){Te.throwInstantiationError()}isDestroyed(){Te.throwInstantiationError()}destroy(){Te.throwInstantiationError()}},Vie=Rie;var tCo=x(T(),1);var EZo=x(T(),1);function Mk(e){e=e??B.EMPTY_OBJECT,this._maximumSubtreeCount=e.maximumSubtreeCount??0,this._subtreeRequestCounter=0,this._queue=new Ag({comparator:Mk.comparator})}Mk.prototype.addSubtree=function(e){let t=new oIt(e,this._subtreeRequestCounter);this._subtreeRequestCounter++,this._queue.insert(t);let n=e.implicitCoordinates;if(n.level>0){let i=n.getParentSubtreeCoordinates(),o=this.find(i)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==t;)this._queue.removeMinimum()};Mk.prototype.find=function(e){let t=this._queue,n=t.internalArray,i=t.length;for(let o=0;o<i;o++){let r=n[o],a=r.subtree.implicitCoordinates;if(e.isEqual(a))return r.subtree}};Mk.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};function oIt(e,t){this.subtree=e,this.stamp=t}var kk=Mk;function Uk(e){e=e??B.EMPTY_OBJECT;let{className:t,names:n,types:i,componentTypes:o,shape:r,dimensions:s,paddingBefore:a=h.ZERO.clone(),paddingAfter:c=h.ZERO.clone(),globalTransform:d=F.IDENTITY.clone(),shapeTransform:u=F.IDENTITY.clone(),minBounds:m,maxBounds:p,minimumValues:b,maximumValues:f,maximumTileCount:y}=e;this._shapeTransform=u,this._globalTransform=d,this._shape=r,this._minBounds=m,this._maxBounds=p,this._dimensions=s,this._paddingBefore=a,this._paddingAfter=c,this._className=t,this._names=n,this._types=i,this._componentTypes=o,this._metadataOrder=r===uc.ELLIPSOID?l0.Z_UP:l0.Y_UP,this._minimumValues=b,this._maximumValues=f,this._maximumTileCount=y,this._availableLevels=void 0,this._implicitTileset=void 0,this._subtreeCache=new kk}Object.defineProperties(Uk.prototype,{globalTransform:{get:function(){return this._globalTransform}},shapeTransform:{get:function(){return this._shapeTransform}},shape:{get:function(){return this._shape}},minBounds:{get:function(){return this._minBounds}},maxBounds:{get:function(){return this._maxBounds}},dimensions:{get:function(){return this._dimensions}},paddingBefore:{get:function(){return this._paddingBefore}},paddingAfter:{get:function(){return this._paddingAfter}},className:{get:function(){return this._className}},names:{get:function(){return this._names}},types:{get:function(){return this._types}},componentTypes:{get:function(){return this._componentTypes}},metadataOrder:{get:function(){return this._metadataOrder}},minimumValues:{get:function(){return this._minimumValues}},maximumValues:{get:function(){return this._maximumValues}},maximumTileCount:{get:function(){return this._maximumTileCount}},availableLevels:{get:function(){return this._availableLevels}}});Uk.fromUrl=async function(e){let t=We.createIfNeeded(e),n=await t.fetchJson();sIt(n);let i=hIt(n,t);await i.load();let{root:o}=n,r=Bi(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,s=new j_({metadataJson:r,schema:i.schema}),a=o.content.extensions["3DTILES_content_voxels"],c=a.class,d=fIt(s,c);Object.assign(d,aIt(o)),l(o.transform)?d.globalTransform=F.unpack(o.transform):d.globalTransform=F.clone(F.IDENTITY),d.dimensions=h.unpack(a.dimensions),d.maximumTileCount=rIt(s),l(a.padding)&&(d.paddingBefore=h.unpack(a.padding.before),d.paddingAfter=h.unpack(a.padding.after));let u=new Uk(d),m=new Zp(t,o,i.schema);return u._implicitTileset=m,u._availableLevels=m.availableLevels,Li.unload(i),u};function rIt(e){if(l(e.tileset))return e.tileset.getPropertyBySemantic(bm.TILESET_TILE_COUNT)}function sIt(e){let t=e.root;if(!l(t.content))throw new ae("Root must have content");if(!Bi(t.content,"3DTILES_content_voxels"))throw new ae("Root tile content must have 3DTILES_content_voxels extension");if(!Bi(t,"3DTILES_implicit_tiling")&&!l(t.implicitTiling))throw new ae("Root tile must have implicit tiling");if(!l(e.schema)&&!l(e.schemaUri)&&!Bi(e,"3DTILES_metadata"))throw new ae("Tileset must have a metadata schema")}function aIt(e){let t=e.boundingVolume;if(l(t.box))return uIt(t.box);if(l(t.region))return cIt(t.region);if(Bi(t,"3DTILES_bounding_volume_cylinder"))return mIt(t.extensions["3DTILES_bounding_volume_cylinder"]);throw new ae("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function cIt(e){let t=e[0],n=e[1],i=e[2],o=e[3],r=e[4],s=e[5],a=F.fromScale(ie.WGS84.radii),c=new h(t,n,r),d=new h(i,o,s);return{shape:uc.ELLIPSOID,minBounds:c,maxBounds:d,shapeTransform:a}}var lIt=new h,dIt=new $;function uIt(e){let t=en.unpack(e),n=$.getScale(t.halfAxes,lIt),i=$.getRotation(t.halfAxes,dIt);return{shape:uc.BOX,minBounds:h.negate(n,new h),maxBounds:h.clone(n),shapeTransform:F.fromRotationTranslation(i,t.center)}}function mIt(e){let{minRadius:t,maxRadius:n,height:i,minAngle:o=-W.PI,maxAngle:r=W.PI,translation:s=[0,0,0],rotation:a=[0,0,0,1]}=e,c=-.5*i+s[2],d=.5*i+s[2],u=F.fromTranslationQuaternionRotationScale(h.unpack(s),Ne.unpack(a),h.ONE);return{shape:uc.CYLINDER,minBounds:h.fromElements(t,o,c),maxBounds:h.fromElements(n,r,d),shapeTransform:u}}function hIt(e,t){let{schemaUri:n,schema:i}=e;return l(n)?Li.getSchemaLoader({resource:t.getDerivedResource({url:n})}):Li.getSchemaLoader({schema:i})}function fIt(e,t){let{schema:n,statistics:i}=e,o=i?.classes[t],r=n.classes[t].properties,s=Object.entries(r).map(([b,f])=>{let{type:y,componentType:_}=f,S=o?.properties[b].min,A=o?.properties[b].max,Z=pt.getComponentCount(y),R=gWe(S,Z),G=gWe(A,Z);return{id:b,type:y,componentType:_,minValue:R,maxValue:G}}),a=s.map(b=>b.id),c=s.map(b=>b.type),d=s.map(b=>b.componentType),u=s.map(b=>b.minValue),m=s.map(b=>b.maxValue),p=u.some(l);return{className:t,names:a,types:c,componentTypes:d,minimumValues:p?u:void 0,maximumValues:p?m:void 0}}function gWe(e,t){if(!l(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,o)=>n[o])}async function pIt(e,t){let n=e._implicitTileset,i=e._subtreeCache,o=i.find(t);if(l(o))return o;let r=n.subtreeUriTemplate.getDerivedResource({templateValues:t.getTemplateValues()}),s=n.baseResource.getDerivedResource({url:r.url}),a=await s.fetchArrayBuffer();if(o=i.find(t),l(o))return o;let c=Eb(a);return o=await q0.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(o),o}Uk.prototype.requestData=async function(e){e=e??B.EMPTY_OBJECT;let{tileLevel:t=0,tileX:n=0,tileY:i=0,tileZ:o=0,keyframe:r=0}=e;if(r!==0)return Promise.reject("3D Tiles currently doesn't support time-dynamic data.");let s=this._implicitTileset,a=new Cp({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:t,x:n,y:i,z:o}),c=a.isSubtreeRoot()&&a.level>0,d=c?a.getParentSubtreeCoordinates():a.getSubtreeCoordinates(),m=await pIt(this,d);if(!(c?m.childSubtreeIsAvailableAtCoordinates:m.tileIsAvailableAtCoordinates).call(m,a))return Promise.reject(`Tile is not available at level ${t}, x ${n}, y ${i}, z ${o}.`);let{contentUriTemplates:f,baseResource:y}=s,_=f[0].getDerivedResource({templateValues:a.getTemplateValues()}),S=y.getDerivedResource({url:_.url});return fA.fromGltf(S)};var Gie=Uk;var rCo=x(T(),1);function Eie(e){e=e??1,this._radius=e??1}Object.defineProperties(Eie.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});Eie.prototype.emit=function(e){let t=W.randomBetween(0,W.TWO_PI),n=W.randomBetween(0,this._radius),i=n*Math.cos(t),o=n*Math.sin(t),r=0;e.position=h.fromElements(i,o,r,e.position),e.velocity=h.clone(h.UNIT_Z,e.velocity)};var Dk=Eie;var JCo=x(T(),1);var aCo=x(T(),1),Fz={CUMULUS:0};Fz.validate=function(e){return e===Fz.CUMULUS};Object.freeze(Fz);var cV=Fz;var fCo=x(T(),1);function Yf(e,t){if(e=e??B.EMPTY_OBJECT,this._show=e.show??!0,this._position=h.clone(e.position??h.ZERO),!l(e.scale)&&l(e.maximumSize))this._maximumSize=h.clone(e.maximumSize),this._scale=new k(this._maximumSize.x,this._maximumSize.y);else{this._scale=k.clone(e.scale??new k(20,12));let n=new h(this._scale.x,this._scale.y,Math.min(this._scale.x,this._scale.y)/1.5);this._maximumSize=h.clone(e.maximumSize??n)}this._slice=e.slice??-1,this._color=U.clone(e.color??U.WHITE),this._brightness=e.brightness??1,this._cloudCollection=t,this._index=-1}var bIt=Yf.SHOW_INDEX=0,gIt=Yf.POSITION_INDEX=1,yIt=Yf.SCALE_INDEX=2,xIt=Yf.MAXIMUM_SIZE_INDEX=3,TIt=Yf.SLICE_INDEX=4,_It=Yf.BRIGHTNESS_INDEX=5,SIt=Yf.COLOR_INDEX=6;Yf.NUMBER_OF_PROPERTIES=7;function FA(e,t){let n=e._cloudCollection;l(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(Yf.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,FA(this,bIt))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),FA(this,gIt))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;k.equals(t,e)||(k.clone(e,t),FA(this,yIt))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;h.equals(t,e)||(h.clone(e,t),FA(this,xIt))}},color:{get:function(){return this._color},set:function(e){let t=this._color;U.equals(t,e)||(U.clone(e,t),FA(this,SIt))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,FA(this,TIt))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,FA(this,_It))}}});Yf.prototype._destroy=function(){this._cloudCollection=void 0};var Ku=Yf;var Ju,Iz=new h,AIt={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},ZIt={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},CIt=Ku.SHOW_INDEX,RIt=Ku.POSITION_INDEX,VIt=Ku.SCALE_INDEX,GIt=Ku.MAXIMUM_SIZE_INDEX,EIt=Ku.SLICE_INDEX,LIt=Ku.BRIGHTNESS_INDEX,WIt=Ku.NUMBER_OF_PROPERTIES,vIt=Ku.COLOR_INDEX;function Nf(e){e=e??B.EMPTY_OBJECT,this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(WIt),this._noiseTexture=void 0,this._textureSliceWidth=128,this._noiseTextureRows=4,this.noiseDetail=e.noiseDetail??16,this.noiseOffset=h.clone(e.noiseOffset??h.ZERO),this._loading=!1,this._ready=!1;let t=this;this._uniforms={u_noiseTexture:function(){return t._noiseTexture},u_noiseTextureDimensions:yWe(t),u_noiseDetail:function(){return t.noiseDetail}},this._vaNoise=void 0,this._spNoise=void 0,this._spCreated=!1,this._sp=void 0,this._rs=void 0,this.show=e.show??!0,this._colorCommands=[],this.debugBillboards=e.debugBillboards??!1,this._compiledDebugBillboards=!1,this.debugEllipsoids=e.debugEllipsoids??!1,this._compiledDebugEllipsoids=!1}function yWe(e){return function(){return Iz.x=e._textureSliceWidth,Iz.y=e._noiseTextureRows,Iz.z=1/e._noiseTextureRows,Iz}}Object.defineProperties(Nf.prototype,{length:{get:function(){return Wie(this),this._clouds.length}}});function xWe(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Nf.prototype.add=function(e){e=e??B.EMPTY_OBJECT;let t=e.cloudType??cV.CUMULUS,n;return t===cV.CUMULUS&&(n=new Ku(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};Nf.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Nf.prototype.removeAll=function(){xWe(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function Wie(e){if(e._cloudsRemoved){e._cloudsRemoved=!1;let t=[],n=e._clouds,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(n._index=r++,t.push(s))}e._clouds=t}}Nf.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};Nf.prototype.contains=function(e){return l(e)&&e._cloudCollection===this};Nf.prototype.get=function(e){return Wie(this),this._clouds[e]};var FIt=new Float32Array([-1,-1,1,-1,1,1,-1,1]),IIt=new Uint16Array([0,1,2,0,2,3]);function PIt(e){let t=$e.createVertexBuffer({context:e,typedArray:FIt,usage:Fe.STATIC_DRAW}),n=$e.createIndexBuffer({context:e,typedArray:IIt,usage:Fe.STATIC_DRAW,indexDatatype:De.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:J.FLOAT}];return new wn({context:e,attributes:i,indexBuffer:n})}var vie;function XIt(e){let n=e.cache.cloudCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s,o[r+4]=s+2,o[r+5]=s+3;return n=$e.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:De.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function YIt(e){let t=e.cache.cloudCollection_indexBufferInstanced;return l(t)||(t=$e.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:De.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function NIt(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return l(t)||(t=$e.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function wIt(e,t,n){let i=[{index:Ju.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:Fe.STATIC_DRAW},{index:Ju.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:Fe.STATIC_DRAW},{index:Ju.packedAttribute0,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:Fe.STATIC_DRAW},{index:Ju.packedAttribute1,componentsPerAttribute:4,componentDatatype:J.FLOAT,usage:Fe.STATIC_DRAW},{index:Ju.color,componentsPerAttribute:4,componentDatatype:J.UNSIGNED_BYTE,normalize:!0,usage:Fe.STATIC_DRAW}];n&&i.push({index:Ju.direction,componentsPerAttribute:2,componentDatatype:J.FLOAT,vertexBuffer:NIt(e)});let o=n?t:4*t;return new yb(e,i,o,n)}var Lie=new Zn;function TWe(e,t,n,i){let o,r=n[Ju.positionHighAndScaleX],s=n[Ju.positionLowAndScaleY],a=i.position;Zn.fromCartesian(a,Lie);let c=i.scale,d=Lie.high,u=Lie.low;e._instanced?(o=i._index,r(o,d.x,d.y,d.z,c.x),s(o,u.x,u.y,u.z,c.y)):(o=i._index*4,r(o+0,d.x,d.y,d.z,c.x),r(o+1,d.x,d.y,d.z,c.x),r(o+2,d.x,d.y,d.z,c.x),r(o+3,d.x,d.y,d.z,c.x),s(o+0,u.x,u.y,u.z,c.y),s(o+1,u.x,u.y,u.z,c.y),s(o+2,u.x,u.y,u.z,c.y),s(o+3,u.x,u.y,u.z,c.y))}function _We(e,t,n,i){let o,r=n[Ju.packedAttribute0],s=i.show,a=i.brightness;e._instanced?(o=i._index,r(o,s,a,0,0)):(o=i._index*4,r(o+0,s,a,0,0),r(o+1,s,a,1,0),r(o+2,s,a,1,1),r(o+3,s,a,0,1))}function SWe(e,t,n,i){let o,r=n[Ju.packedAttribute1],s=i.maximumSize,a=i.slice;e._instanced?(o=i._index,r(o,s.x,s.y,s.z,a)):(o=i._index*4,r(o+0,s.x,s.y,s.z,a),r(o+1,s.x,s.y,s.z,a),r(o+2,s.x,s.y,s.z,a),r(o+3,s.x,s.y,s.z,a))}function AWe(e,t,n,i){let o,r=n[Ju.color],s=i.color,a=U.floatToByte(s.red),c=U.floatToByte(s.green),d=U.floatToByte(s.blue),u=U.floatToByte(s.alpha);e._instanced?(o=i._index,r(o,a,c,d,u)):(o=i._index*4,r(o+0,a,c,d,u),r(o+1,a,c,d,u),r(o+2,a,c,d,u),r(o+3,a,c,d,u))}function MIt(e,t,n,i){TWe(e,t,n,i),_We(e,t,n,i),SWe(e,t,n,i),AWe(e,t,n,i)}function kIt(e,t,n,i){let o=e,r=o._textureSliceWidth,s=o._noiseTextureRows,a=t.context;o._vaNoise=PIt(a),o._spNoise=tn.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=o.noiseDetail,d=o.noiseOffset;o._noiseTexture=new Ft({context:a,width:r*r/s,height:r*s,pixelDatatype:ze.UNSIGNED_BYTE,pixelFormat:Qe.RGBA,sampler:new Ht({wrapS:an.REPEAT,wrapT:an.REPEAT,minificationFilter:Dt.NEAREST,magnificationFilter:qn.NEAREST})});let u=new Fl({vertexArray:o._vaNoise,shaderProgram:o._spNoise,outputTexture:o._noiseTexture,uniformMap:{u_noiseTextureDimensions:yWe(o),u_noiseDetail:function(){return c},u_noiseOffset:function(){return d}},persists:!1,owner:e,postExecute:function(m){o._ready=!0,o._loading=!1}});t.commandList.push(u),o._loading=!0}function UIt(e,t){let n=e,i=t.context;n._createVertexArray=!1,n._vaf=n._vaf&&n._vaf.destroy();let o=e._clouds,r=o.length;if(r>0){n._vaf=wIt(i,r,n._instanced);let s=n._vaf.writers,a;for(a=0;a<r;++a){let c=o[a];MIt(e,t,s,c)}n._vaf.commit(vie(i))}}var DIt=[];function OIt(e,t){let n=t.context,i=e,r=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,d=DIt;d.length=0,(c[RIt]||c[VIt])&&d.push(TWe),(c[CIt]||c[LIt])&&d.push(_We),(c[GIt]||c[EIt])&&d.push(SWe),c[vIt]&&d.push(AWe);let u=d.length,m=i._vaf.writers,p,b,f;if(a/r>.1){for(p=0;p<a;++p)for(b=s[p],b._dirty=!1,f=0;f<u;++f)d[f](e,t,m,b);i._vaf.commit(vie(n))}else{for(p=0;p<a;++p){for(b=s[p],b._dirty=!1,f=0;f<u;++f)d[f](e,t,m,b);i._instanced?i._vaf.subCommit(b._index,1):i._vaf.subCommit(b._index*4,4)}i._vaf.endSubCommits()}i._cloudsToUpdateIndex=0}function BIt(e,t,n,i){let o=t.context,r=e,s=new He({defines:[],sources:[n]});r._instanced&&s.defines.push("INSTANCED");let a=new He({defines:[],sources:[i]});r.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),r.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),r._sp=tn.replaceCache({context:o,shaderProgram:r._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:Ju}),r._rs=Be.fromCache({depthTest:{enabled:!0,func:ne.LESS},depthMask:!1,blending:nn.ALPHA_BLEND}),r._spCreated=!0,r._compiledDebugBillboards=r.debugBillboards,r._compiledDebugEllipsoids=r.debugEllipsoids}function zIt(e,t){let n=e,i=t.passes,o=n._uniforms,r=t.commandList;if(i.render){let s=n._colorCommands,a=n._vaf.va,c=a.length;s.length=c;for(let d=0;d<c;d++){let u=s[d];l(u)||(u=s[d]=new at),u.pass=Le.TRANSLUCENT,u.owner=e,u.uniformMap=o,u.count=a[d].indicesCount,u.vertexArray=a[d].va,u.shaderProgram=n._sp,u.renderState=n._rs,n._instanced&&(u.count=6,u.instanceCount=n._clouds.length),r.push(u)}}}Nf.prototype.update=function(e){if(Wie(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:l(this._noiseTexture),!this._ready&&!this._loading&&!t&&kIt(this,e,Nk,Yk),this._instanced=e.context.instancedArrays,Ju=this._instanced?ZIt:AIt,vie=this._instanced?YIt:XIt;let i=this._clouds.length,o=this._cloudsToUpdate,r=this._cloudsToUpdateIndex;this._createVertexArray?UIt(this,e):r>0&&OIt(this,e),r>i*1.5&&(o.length=i),!(!l(this._vaf)||!l(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&BIt(this,e,Xk,Pk),zIt(this,e))};Nf.prototype.isDestroyed=function(){return!1};Nf.prototype.destroy=function(){return this._noiseTexture=this._noiseTexture&&this._noiseTexture.destroy(),this._sp=this._sp&&this._sp.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),xWe(this._clouds),he(this)};var Fie=Nf;var $Co=x(T(),1);var HIt=W.toRadians(30);function Iie(e){this._angle=e??HIt}Object.defineProperties(Iie.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});Iie.prototype.emit=function(e){let t=Math.tan(this._angle),n=W.randomBetween(0,W.TWO_PI),i=W.randomBetween(0,t),o=i*Math.cos(n),r=i*Math.sin(n),s=1;e.velocity=h.fromElements(o,r,s,e.velocity),h.normalize(e.velocity,e.velocity),e.position=h.clone(h.ZERO,e.position)};var Pie=Iie;var oRo=x(T(),1);function Ok(e){e=e??B.EMPTY_OBJECT;let t=e.attributeName,n=e.perInstanceAttribute;l(n)||(n=!1);let i=e.glslDatatype??"vec3",o=`v_${t}`,r;if(t==="normal"||t==="tangent"||t==="bitangent")r=`vec4 getColor() { return vec4((${o} + vec3(1.0)) * 0.5, 1.0); } +`;else switch(t==="st"&&(i="vec2"),i){case"float":r=`vec4 getColor() { return vec4(vec3(${o}), 1.0); } +`;break;case"vec2":r=`vec4 getColor() { return vec4(${o}, 0.0, 1.0); } +`;break;case"vec3":r=`vec4 getColor() { return vec4(${o}, 1.0); } +`;break;case"vec4":r=`vec4 getColor() { return ${o}; } +`;break}let s=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; +${n?"":`in ${i} ${t}; +`}out ${i} ${o}; +void main() +{ +vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow); +${n?`${o} = czm_batchTable_${t}(batchId); +`:`${o} = ${t}; +`}gl_Position = czm_modelViewProjectionRelativeToEye * p; +}`,a=`in ${i} ${o}; +${r} +void main() +{ +out_FragColor = getColor(); +}`;this.material=void 0,this.translucent=e.translucent??!1,this._vertexShaderSource=e.vertexShaderSource??s,this._fragmentShaderSource=e.fragmentShaderSource??a,this._renderState=_o.getDefaultRenderState(!1,!1,e.renderState),this._closed=e.closed??!1,this._attributeName=t,this._glslDatatype=i}Object.defineProperties(Ok.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}});Ok.prototype.getFragmentShaderSource=_o.prototype.getFragmentShaderSource;Ok.prototype.isTranslucent=_o.prototype.isTranslucent;Ok.prototype.getRenderState=_o.prototype.getRenderState;var Xie=Ok;var gRo=x(T(),1);function Pz(e){e=e??B.EMPTY_OBJECT,this.length=e.length??1e7,this._length=void 0,this.width=e.width??2,this._width=void 0,this.show=e.show??!0,this.modelMatrix=F.clone(e.modelMatrix??F.IDENTITY),this._modelMatrix=new F,this.id=e.id,this._id=void 0,this._primitive=void 0}Pz.prototype.update=function(e){if(this.show){if(!l(this._primitive)||!F.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=F.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,l(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new Pt({geometry:new tg({positions:[h.ZERO,h.UNIT_X],width:this.width,vertexFormat:Zs.VERTEX_FORMAT,colors:[U.RED,U.RED],arcType:ln.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this}),n=new Pt({geometry:new tg({positions:[h.ZERO,h.UNIT_Y],width:this.width,vertexFormat:Zs.VERTEX_FORMAT,colors:[U.GREEN,U.GREEN],arcType:ln.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this}),i=new Pt({geometry:new tg({positions:[h.ZERO,h.UNIT_Z],width:this.width,vertexFormat:Zs.VERTEX_FORMAT,colors:[U.BLUE,U.BLUE],arcType:ln.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this});this._primitive=new Wn({geometryInstances:[t,n,i],appearance:new Zs,asynchronous:!1})}this._primitive.update(e)}};Pz.prototype.isDestroyed=function(){return!1};Pz.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),he(this)};var Bk=Pz;var _Ro=x(T(),1);function KIt(e){this.direction=h.clone(e.direction),this.color=U.clone(e.color??U.WHITE),this.intensity=e.intensity??1}var Yie=KIt;var IRo=x(T(),1);var ARo=x(T(),1),zk=`in vec3 v_positionMC; +in vec3 v_positionEC; +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0))); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + materialInput.s = v_st.s; + materialInput.st = v_st; + materialInput.str = vec3(v_st, 0.0); + + // Convert tangent space material normal to eye space + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC); + + // Convert view vector to world space + vec3 positionToEyeEC = -v_positionEC; + materialInput.positionToEyeEC = positionToEyeEC; + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var CRo=x(T(),1),Hk=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec2 st; +in float batchId; + +out vec3 v_positionMC; +out vec3 v_positionEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionMC = position3DHigh + position3DLow; // position in model coordinates + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function IA(e){e=e??B.EMPTY_OBJECT;let t=e.translucent??!0,n=e.aboveGround??!1;this.material=l(e.material)?e.material:Di.fromType(Di.ColorType),this.translucent=e.translucent??!0,this._vertexShaderSource=e.vertexShaderSource??Hk,this._fragmentShaderSource=e.fragmentShaderSource??zk,this._renderState=_o.getDefaultRenderState(t,!n,e.renderState),this._closed=!1,this._flat=e.flat??!1,this._faceForward=e.faceForward??n,this._aboveGround=n}Object.defineProperties(IA.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return IA.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});IA.VERTEX_FORMAT=Me.POSITION_AND_ST;IA.prototype.getFragmentShaderSource=_o.prototype.getFragmentShaderSource;IA.prototype.isTranslucent=_o.prototype.isTranslucent;IA.prototype.getRenderState=_o.prototype.getRenderState;var Nie=IA;var KRo=x(T(),1);var JIt=1e5;function Kk(e){e=e??B.EMPTY_OBJECT;let t=e.credit;typeof t=="string"&&(t=new Rt(t)),this._credit=t,this._radius=l(e.radius)?e.radius:JIt,this._image=e.image,this._transform=l(e.transform)?e.transform:F.IDENTITY,this._repeatHorizontal=l(e.repeatHorizontal)?e.repeatHorizontal:1,this._repeatVertical=l(e.repeatVertical)?e.repeatVertical:1;let n=new Wk({radius:this._radius,vertexFormat:Me.ALL}),i=new Pt({geometry:n,modelMatrix:this._transform}),o=new Di({fabric:{type:"Image",uniforms:{image:this._image,repeat:new k(-this._repeatHorizontal,this._repeatVertical)}}});return this._primitive=new Wn({geometryInstances:i,appearance:new bo({material:o,closed:!0,faceForward:!1,flat:!0,translucent:!1,renderState:{cull:{enabled:!1}}}),credit:this._credit}),this}Object.defineProperties(Kk.prototype,{radius:{get:function(){return this._radius}},image:{get:function(){return this._image}},transform:{get:function(){return this._transform}},credit:{get:function(){return l(this._credit)?this._credit:void 0}},show:{get:function(){return l(this._primitive)?this._primitive.show:void 0},set:function(e){l(this._primitive)&&(this._primitive.show=e)}}});Kk.prototype.update=function(e){return l(this._credit)&&e.creditDisplay.addCreditToNextFrame(this._credit),this._primitive.update(e)};Kk.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),he(this)};Kk.prototype.isDestroyed=function(){return this._primitive.isDestroyed()};var wie=Kk;var t1o=x(T(),1);function Bd(e){this._scene=e.scene,this.samplingWindow=e.samplingWindow??Bd.defaultSettings.samplingWindow,this.quietPeriod=e.quietPeriod??Bd.defaultSettings.quietPeriod,this.warmupPeriod=e.warmupPeriod??Bd.defaultSettings.warmupPeriod,this.minimumFrameRateDuringWarmup=e.minimumFrameRateDuringWarmup??Bd.defaultSettings.minimumFrameRateDuringWarmup,this.minimumFrameRateAfterWarmup=e.minimumFrameRateAfterWarmup??Bd.defaultSettings.minimumFrameRateAfterWarmup,this._lowFrameRate=new Se,this._nominalFrameRate=new Se,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;let t=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(o,r){jIt(t,r)}),this._hiddenPropertyName=document.hidden!==void 0?"hidden":document.mozHidden!==void 0?"mozHidden":document.msHidden!==void 0?"msHidden":document.webkitHidden!==void 0?"webkitHidden":void 0;let n=document.hidden!==void 0?"visibilitychange":document.mozHidden!==void 0?"mozvisibilitychange":document.msHidden!==void 0?"msvisibilitychange":document.webkitHidden!==void 0?"webkitvisibilitychange":void 0;function i(){QIt(t)}this._visibilityChangeRemoveListener=void 0,l(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}Bd.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};Bd.fromScene=function(e){return(!l(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new Bd({scene:e})),e._frameRateMonitor};Object.defineProperties(Bd.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}});Bd.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};Bd.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};Bd.prototype.isDestroyed=function(){return!1};Bd.prototype.destroy=function(){return this._preUpdateRemoveListener(),l(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),he(this)};function jIt(e,t){if(e._pauseCount>0)return;let n=Ni();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/si.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/si.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/si.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=i){for(;e._frameTimes.length>=2&&e._frameTimes[1]<i;)e._frameTimes.shift();let o=(n-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/o;let r=1e3/(n>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);o>r?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}function QIt(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var Jk=Bd;var y1o=x(T(),1);var kie=class e{constructor(t){t=t??B.EMPTY_OBJECT;let n=qIt(t.geoJson),i=t.allowPicking??!0,o=t.ellipsoid??ie.default,r=new Float64Array(0);function s(m){return r.length<m&&(r=new Float64Array(m)),r}if(this.show=t.show??!0,this._url=t.url,this._ids=n.ids,this._properties=n.properties,this._featureCount=n.ids.length,this._pickObjectFactory=t.pickObjectFactory,this._points=void 0,this._polylines=void 0,this._polygons=void 0,n.pointCount>0){let m={primitiveCountMax:n.pointCount,allowPicking:i};this._points=new Rd(m)}if(n.polylineCount>0){let m={primitiveCountMax:n.polylineCount,vertexCountMax:n.polylineVertexCount,allowPicking:i};this._polylines=new Gd(m)}if(n.polygonCount>0){let m={primitiveCountMax:n.polygonCount,vertexCountMax:n.polygonVertexCount,holeCountMax:n.polygonHoleCount,triangleCountMax:n.polygonTriangleCount,allowPicking:i};this._polygons=new Vd(m)}let a=new h,c=0,d=0,u=0;for(let m=0;m<n.features.length;m++){let p=n.features[m],b=p.featureId,f=this._properties[b];for(let y=0;y<p.points.length;y++){let _=c++;this._points.add({featureId:b,position:EWe(p.points[y],o,a),pickObject:i?Mie(this,_,this._points,Gc,f):void 0})}for(let y=0;y<p.polylines.length;y++){let _=d++;this._polylines.add({featureId:b,positions:ZWe(p.polylines[y],o,s),pickObject:i?Mie(this,_,this._polylines,qa,f):void 0})}for(let y=0;y<p.polygons.length;y++){let _=p.polygons[y],S=u++;this._polygons.add({featureId:b,positions:ZWe(_.positions,o,s),holes:_.holes,triangles:_.triangles,pickObject:i?Mie(this,S,this._polygons,Ls,f):void 0})}}}get url(){let t=this._url;if(l(t))return t instanceof We?t.getUrlComponent(!0):t}get featureCount(){return this._featureCount}get ids(){return this._ids}get properties(){return this._properties}get points(){return this._points}get polylines(){return this._polylines}get polygons(){return this._polygons}static async fromUrl(t,n){let i=We.createIfNeeded(t),o=await i.fetchJson();if(!l(o))throw new ae(`Failed to load GeoJSON from ${i.getUrlComponent(!0)}.`);return e.fromGeoJson(o,{...n,url:i})}static fromGeoJson(t,n){return new e({...n,geoJson:t})}getId(t){return this._ids[t]}getProperties(t){return this._properties[t]}update(t){this.show&&(l(this._points)&&this._points.update(t),l(this._polylines)&&this._polylines.update(t),l(this._polygons)&&this._polygons.update(t))}destroy(){return this._points&&(this._points.destroy(),this._points=void 0),this._polylines&&(this._polylines.destroy(),this._polylines=void 0),this._polygons&&(this._polygons.destroy(),this._polygons=void 0),he(this)}isDestroyed(){return!1}};function Mie(e,t,n,i,o){return l(e._pickObjectFactory)?e._pickObjectFactory(t,n,o):{index:t,collection:n,get primitive(){return n.get(t,new i)},parentPrimitive:e,properties:o}}function qIt(e){let t=$It(e),n=[],i=[],o=[],r=0,s=0,a=0,c=0,d=0,u=0,m=0;for(let p=0;p<t.length;p++){let b=t[p],f={points:[],polylines:[],polygons:[]};if(CWe(b.geometry,f),f.points.length===0&&f.polylines.length===0&&f.polygons.length===0)continue;let y=i.length;i.push(b.id),o.push(dPt(b.properties)?b.properties:B.EMPTY_OBJECT);for(let _=0;_<f.polygons.length;_++){let S=f.polygons[_];u+=S.holes.length,m+=S.triangles.length/3,d+=S.positions.length}for(let _=0;_<f.polylines.length;_++)a+=f.polylines[_].length;r+=f.points.length,s+=f.polylines.length,c+=f.polygons.length,n.push({featureId:y,points:f.points,polylines:f.polylines,polygons:f.polygons})}return{features:n,ids:i,properties:o,pointCount:r,polylineCount:s,polylineVertexCount:a,polygonCount:c,polygonVertexCount:d,polygonHoleCount:u,polygonTriangleCount:m}}function $It(e){if(!l(e)||!l(e.type))throw new ae("GeoJSON object must define 'type'.");switch(e.type){case"FeatureCollection":return e.features;case"Feature":return[e];default:if(cPt(e.type))return[{type:"Feature",geometry:e,properties:B.EMPTY_OBJECT,id:void 0}];throw new ae(`Unsupported GeoJSON type: ${e.type}`)}}function CWe(e,t){if(!(!l(e)||!l(e.type)))switch(e.type){case"Point":RWe(e.coordinates,t.points);return;case"MultiPoint":tPt(e.coordinates,t.points);return;case"LineString":VWe(e.coordinates,t.polylines);return;case"MultiLineString":nPt(e.coordinates,t.polylines);return;case"Polygon":GWe(e.coordinates,t.polygons);return;case"MultiPolygon":iPt(e.coordinates,t.polygons);return;case"GeometryCollection":ePt(e.geometries,t);return;default:return}}function ePt(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)CWe(e[n],t)}function RWe(e,t){let n=Uie(e);l(n)&&t.push(n)}function tPt(e,t){for(let n=0;n<e.length;n++)RWe(e[n],t)}function VWe(e,t){let n=oPt(e);l(n)&&n.length>=2&&t.push(n)}function nPt(e,t){for(let n=0;n<e.length;n++)VWe(e[n],t)}function GWe(e,t){let n=rPt(e);l(n)&&t.push(n)}function iPt(e,t){for(let n=0;n<e.length;n++)GWe(e[n],t)}function oPt(e){if(!Array.isArray(e))return;let t=[];for(let n=0;n<e.length;n++){let i=Uie(e[n]);l(i)&&t.push(i)}return t.length>=2?t:void 0}function rPt(e){if(!Array.isArray(e)||e.length===0)return;let t=[];for(let a=0;a<e.length;a++){let c=sPt(e[a]);l(c)&&t.push(c)}if(t.length===0||t[0].length<3)return;let i=[],o=[],r=[];for(let a=0;a<t.length;a++){let c=t[a];if(!(c.length<3)){a>0&&r.push(o.length);for(let d=0;d<c.length;d++){let u=c[d];o.push(u),i.push(new k(u[0],u[1]))}}}if(o.length<3)return;let s=ri.triangulate(i,r);if(!(!l(s)||s.length<3))return{positions:o,holes:new Uint32Array(r),triangles:new Uint32Array(s)}}function sPt(e){if(!Array.isArray(e))return;let t=[];for(let n=0;n<e.length;n++){let i=Uie(e[n]);l(i)&&t.push(i)}if(!(t.length<3))return t.length>1&&aPt(t[0],t[t.length-1])&&t.pop(),t.length>=3?t:void 0}function Uie(e){if(!Array.isArray(e)||e.length<2)return;let t=e[0],n=e[1],i=e[2]??0;if(!(!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(i)))return[t,n,i]}function aPt(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function cPt(e){return e==="Point"||e==="MultiPoint"||e==="LineString"||e==="MultiLineString"||e==="Polygon"||e==="MultiPolygon"||e==="GeometryCollection"}function EWe(e,t,n){return h.fromDegrees(e[0],e[1],e[2]??0,t,n)}var lPt=new h;function ZWe(e,t,n){let i=e.length*3,o=n(i);for(let r=0;r<e.length;r++){let s=EWe(e[r],t,lPt);o[r*3]=s.x,o[r*3+1]=s.y,o[r*3+2]=s.z}return o.subarray(0,i)}function dPt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Die=kie;var v1o=x(T(),1);var LWe=x(Kne(),1);function Oie(){this._image=new Image}Oie.prototype.isReady=function(){return!0};Oie.prototype.shouldDiscardImage=function(e){return e===this._image};function PA(e){e=e??B.EMPTY_OBJECT,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=new Oi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new se(-W.PI,-W.PI,W.PI,W.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new Rt(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new Oie),this._errorEvent=new Se}Object.defineProperties(PA.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}}});PA.fromMetadata=function(e,t){if(!e.imageryPresent)throw new ae(`The server ${e.url} doesn't have imagery`);let n=new PA(t);return n._metadata=e,n};PA.prototype.getTileCredits=function(e,t,n){let i=this._metadata,o=i.getTileInformation(e,t,n);if(l(o)){let r=i.providers[o.imageryProvider];if(l(r))return[r]}};PA.prototype.requestImage=function(e,t,n,i){let o=this._tileDiscardPolicy._image,r=this._metadata,s=Vg.tileXYToQuadKey(e,t,n),a=r.getTileInformation(e,t,n);if(!l(a)){if(r.isValid(s)){let d=new gr({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});r.populateSubtree(e,t,n,d);return}return Promise.resolve(o)}if(!a.hasImagery())return Promise.resolve(o);let c=uPt(this,a,e,t,n,i).fetchArrayBuffer();if(l(c))return c.then(function(d){Fk(r.key,d);let u=new Uint8Array(d),m,p=r.protoImagery;if((!l(p)||!p)&&(m=mPt(u)),!l(m)&&(!l(p)||p)){let b=hPt(u);m=b.imageType,u=b.imageData}return!l(m)||!l(u)?o:j0({uint8Array:u,format:m,flipY:!0})})};PA.prototype.pickFeatures=function(e,t,n,i,o){};function uPt(e,t,n,i,o,r){let s=Vg.tileXYToQuadKey(n,i,o),a=t.imageryVersion;return a=l(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:r})}function mPt(e){let t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";let n="PNG";if(e[1]===n.charCodeAt(0)&&e[2]===n.charCodeAt(1)&&e[3]===n.charCodeAt(2))return"image/png"}function hPt(e){let t=LWe.Reader.create(e),n=t.len,i={};for(;t.pos<n;){let s=t.uint32(),a;switch(s>>>3){case 1:i.imageType=t.uint32();break;case 2:i.imageData=t.bytes();break;case 3:i.alphaType=t.uint32();break;case 4:i.imageAlpha=t.bytes();break;case 5:if(a=i.copyrightIds,l(a)||(a=i.copyrightIds=[]),(s&7)===2){let c=t.uint32()+t.pos;for(;t.pos<c;)a.push(t.uint32())}else a.push(t.uint32());break;default:t.skipType(s&7);break}}let o=i.imageType;if(l(o))switch(o){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new ae("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let r=i.alphaType;return l(r)&&r!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var Bie=PA;var H1o=x(T(),1);var fPt=600;function f0(e){e=e??B.EMPTY_OBJECT,this._key=l(e.key)?e.key:ca.defaultApiKey,this._baseResource=We.createIfNeeded(e.url??ca.streetViewStaticApiEndpoint),this._metadataResource=this._baseResource.getDerivedResource({url:"streetview/metadata"}),this._tileSize=e.tileSize??fPt}Object.defineProperties(f0.prototype,{});f0.prototype.loadPanorama=async function(e){let t=e.cartographic,n=e.tileSize??this._tileSize,i=`${n}x${n}`,o=e.signature,{panoId:r}=e;l(r)||(r=(await this.getNearestPanoId(t)).panoId);let s=ca.getDefaultCredit(),a=h.fromDegrees(W.toDegrees(t.longitude),W.toDegrees(t.latitude),0),c=[this._loadFaceImage({heading:0,pitch:0,tileSizeString:i,panoId:r,signature:o}),this._loadFaceImage({heading:180,pitch:0,tileSizeString:i,panoId:r,signature:o}),this._loadFaceImage({heading:-90,pitch:-90,tileSizeString:i,panoId:r,signature:o}),this._loadFaceImage({heading:-90,pitch:90,tileSizeString:i,panoId:r,signature:o}),this._loadFaceImage({heading:270,pitch:0,tileSizeString:i,panoId:r,signature:o}),this._loadFaceImage({heading:90,pitch:0,tileSizeString:i,panoId:r,signature:o})],[d,u,m,p,b,f]=await Promise.all(c),y=xt.localFrameToFixedFrameGenerator("north","down"),_=F.getMatrix3(y(a,ie.default),new $);return new xA({sources:{positiveX:d,negativeX:u,positiveY:m,negativeY:p,positiveZ:b,negativeZ:f},transform:_,credit:s})};f0.prototype.getNearestPanoId=async function(e,t){let i=[W.toDegrees(e.latitude),W.toDegrees(e.longitude)].join(","),r=await this._metadataResource.getDerivedResource({queryParameters:{key:this._key,location:i,radius:t??50}}).fetchJson();if(r.status!=="OK")throw new Te(`GoogleStreetViewCubeMapPanoramaProvider metadata error: ${r.status}`);return{panoId:r.pano_id,latitude:r.location.lat,longitude:r.location.lng}};f0.prototype.getPanoIdMetadata=async function(e){let n=await this._metadataResource.getDerivedResource({queryParameters:{key:this._key,pano:e}}).fetchJson();if(n.status!=="OK")throw new Te(`GoogleStreetViewCubeMapPanoramaProvider metadata error: ${n.status}`);return n};f0.prototype._loadFaceImage=async function(e){let t=this._buildFaceUrl(e);try{return await We.fetchImage({url:t,preferImageBitmap:!0,flipY:!0})}catch{throw new Te(`Failed to load Street View face image: ${t}`)}};f0.prototype._buildFaceUrl=function(e){let{heading:t,pitch:n,tileSizeString:i,panoId:o,signature:r}=e;return this._baseResource.getDerivedResource({queryParameters:{size:i,pano:o,heading:t,pitch:n,key:this._key,...l(r)&&{signature:r}}}).url};f0.fromUrl=async function(e){if(e=e??{},e.key=e.key??ca.defaultStreetViewStaticApiKey??ca.defaultApiKey,!l(e.key)&&!l(ca.defaultStreetViewStaticApiKey)&&!l(ca.defaultApiKey))throw new Te("options.key, GoogleMaps.defaultStreetViewStaticApiKey or GoogleMaps.defaultApiKey is required.");return new f0({...e})};f0._parseMetadata=function(e){return{cartographic:fe.fromDegrees(e.location.lng,e.location.lat,0)}};var zie=f0;var eVo=x(T(),1);var pPt=new U(1,1,1,.4),bPt=new U(0,1,0,.05),gPt=new U(0,.5,0,.2);function XA(e){e=e??B.EMPTY_OBJECT,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Oi({ellipsoid:e.ellipsoid}),this._cells=e.cells??8,this._color=e.color??pPt,this._glowColor=e.glowColor??bPt,this._glowWidth=e.glowWidth??6,this._backgroundColor=e.backgroundColor??gPt,this._errorEvent=new Se,this._tileWidth=e.tileWidth??256,this._tileHeight=e.tileHeight??256,this._canvasSize=e.canvasSize??256,this._canvas=this._createGridCanvas()}Object.defineProperties(XA.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});XA.prototype._drawGrid=function(e){let n=this._canvasSize;for(let i=0;i<=this._cells;++i){let r=1+i/this._cells*(n-1);e.moveTo(r,0),e.lineTo(r,n),e.moveTo(0,r),e.lineTo(n,r)}e.stroke()};XA.prototype._createGridCanvas=function(){let e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;let t=0,n=this._canvasSize,i=e.getContext("2d"),o=this._backgroundColor.toCssColorString();i.fillStyle=o,i.fillRect(t,t,n,n);let r=this._glowColor.toCssColorString();i.strokeStyle=r,i.lineWidth=this._glowWidth,i.strokeRect(t,t,n,n),this._drawGrid(i),i.lineWidth=this._glowWidth*.5,i.strokeRect(t,t,n,n),this._drawGrid(i);let s=this._color.toCssColorString();return i.strokeStyle=s,i.lineWidth=2,i.strokeRect(t,t,n,n),i.lineWidth=1,this._drawGrid(i),e};XA.prototype.getTileCredits=function(e,t,n){};XA.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};XA.prototype.pickFeatures=function(e,t,n,i,o){};var Hie=XA;var FGo=x(T(),1);var rGo=x(T(),1);var UVo=x(T(),1);var dVo=x(T(),1);function wf(){}wf._maxDecodingConcurrency=Math.max(mn.hardwareConcurrency-1,1);wf._decodeTaskProcessor=new Hn("decodeI3S",wf._maxDecodingConcurrency);wf._promise=void 0;async function yPt(){if(await wf._decodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}))return wf._decodeTaskProcessor;throw new ae("I3S decoder could not be initialized.")}wf.decode=async function(e,t,n,i,o){return l(wf._promise)||(wf._promise=yPt()),wf._promise.then(function(r){let s=n._parent._data,a=n._parent._inverseRotationMatrix,c=0,d=0,u=0;l(s.obb)?(c=s.obb.center[0],d=s.obb.center[1],u=s.obb.center[2]):l(s.mbs)&&(c=s.mbs[0],d=s.mbs[1],u=s.mbs[2]);let m=$.fromRotationX(-W.PI_OVER_TWO),p=new $;$.multiply(m,a,p);let b=fe.fromDegrees(c,d,u),f=ie.WGS84.cartographicToCartesian(b),y={binaryData:n._data,featureData:l(i)&&l(i[0])?i[0].data:void 0,schema:t,bufferInfo:n._geometryBufferInfo,ellipsoidRadiiSquare:ie.WGS84.radiiSquared,url:e,geoidDataList:n._dataProvider._geoidDataList,cartographicCenter:b,cartesianCenter:f,parentRotation:p,enableFeatures:n._dataProvider.showFeatures,splitGeometryByColorTransparency:n._dataProvider.adjustMaterialAlphaMode,symbologyData:o,calculateNormals:n._dataProvider.calculateNormals};return r.scheduleTask(y)})};var jk=wf;var fVo=x(T(),1);function Kie(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${t}`}):this._resource=this._parent.resource.getDerivedResource({url:t})}Object.defineProperties(Kie.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});Kie.prototype.load=async function(){return this._data=await Mf.loadJson(this._resource),this._data};var Qk=Kie;var yVo=x(T(),1);function Eg(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider,this._loadPromise=void 0;let n=`attributes/${t.key}/0`;l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${n}`}):this._resource=this._parent.resource.getDerivedResource({url:n})}Object.defineProperties(Eg.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){if(l(this._values)){if(l(this._values.attributeValues))return this._values.attributeValues;if(l(this._values.objectIds))return this._values.objectIds}return[]}},name:{get:function(){return this._storageInfo.name}}});function Xz(e){return e==="UInt8"||e==="Int8"?1:e==="UInt16"||e==="Int16"?2:e==="UInt32"||e==="Int32"||e==="Oid32"||e==="Float32"?4:e==="UInt64"||e==="Int64"||e==="Float64"?8:0}function xPt(e){return e==="String"?1:Xz(e)}async function TPt(e){let t=await e._dataProvider._loadBinary(e._resource),n=new DataView(t);e._data=t,e._validateHeader(n);let i=e._parseHeader(n),o=e._getBodyOffset(i);e._validateBody(n,o),e._parseBody(n,o)}Eg.prototype.load=function(){return l(this._loadPromise)?this._loadPromise:(this._loadPromise=TPt(this).catch(function(e){console.error(e)}),this._loadPromise)};Eg.prototype._parseValue=function(e,t,n){let i;if(t==="UInt8")i=e.getUint8(n),n+=1;else if(t==="Int8")i=e.getInt8(n),n+=1;else if(t==="UInt16")i=e.getUint16(n,!0),n+=2;else if(t==="Int16")i=e.getInt16(n,!0),n+=2;else if(t==="UInt32")i=e.getUint32(n,!0),n+=4;else if(t==="Oid32")i=e.getUint32(n,!0),n+=4;else if(t==="Int32")i=e.getInt32(n,!0),n+=4;else if(t==="UInt64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);i=o+Math.pow(2,32)*r,n+=8}else if(t==="Int64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);r<Math.pow(2,31)?i=o+Math.pow(2,32)*r:i=o+Math.pow(2,32)*(r-Math.pow(2,32)),n+=8}else t==="Float32"?(i=e.getFloat32(n,!0),n+=4):t==="Float64"?(i=e.getFloat64(n,!0),n+=8):t==="String"&&(i=String.fromCharCode(e.getUint8(n)),n+=1);return{value:i,offset:n}};Eg.prototype._parseHeader=function(e){let t=0;this._header={};for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n],o=this._parseValue(e,i.valueType,t);this._header[i.property]=o.value,t=o.offset}return t};Eg.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],o=i==="ObjectIds"?"objectIds":i,r=this._storageInfo[o];if(l(r)){this._values[o]=[];for(let s=0;s<this._header.count;++s)if(r.valueType!=="String"){let a=this._parseValue(e,r.valueType,t);this._values[o].push(a.value),t=a.offset}else{let a=this._values.attributeByteCounts[s],c="";for(let d=0;d<a;++d){let u=this._parseValue(e,r.valueType,t);u.value.charCodeAt(0)!==0&&(c+=u.value),t=u.offset}this._values[o].push(c)}}}};Eg.prototype._getBodyOffset=function(e){let t=0;return l(this._storageInfo.attributeValues)?t=Xz(this._storageInfo.attributeValues.valueType):l(this._storageInfo.objectIds)&&(t=Xz(this._storageInfo.objectIds.valueType)),t>0?Math.ceil(e/t)*t:e};Eg.prototype._validateHeader=function(e){let t=0;for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n];t+=xPt(i.valueType)}if(e.byteLength<t)throw new ae(`Invalid attribute buffer size (field: ${this.name}, header: ${t}, actual: ${e.byteLength})`)};Eg.prototype._validateBody=function(e,t){if(!l(this._header.count))throw new ae(`Invalid attribute buffer (field: ${this.name}, count is missing)`);let n;for(let i=0;i<this._storageInfo.ordering.length&&t<e.byteLength;i++){let o=this._storageInfo.ordering[i],r=o==="ObjectIds"?"objectIds":o,s=this._storageInfo[r];if(l(s))if(s.valueType!=="String"){r==="attributeByteCounts"&&(n=t);let a=Xz(s.valueType);t+=a*this._header.count}else{if(!l(n))throw new ae(`Invalid attribute buffer (field: ${this.name}, attributeByteCounts is missing)`);for(let a=0;a<this._header.count&&t<e.byteLength;++a){let c=this._parseValue(e,this._storageInfo.attributeByteCounts.valueType,n);t+=c.value,n=c.offset}}else throw new ae(`Invalid attribute buffer (field: ${this.name}, ${r} is missing)`)}if(e.byteLength<t)throw new ae(`Invalid attribute buffer size (field: ${this.name}, expected: ${t}, actual: ${e.byteLength})`)};var qk=Eg;var CVo=x(T(),1);function $k(e,t){let n=e._dataProvider,i=e._layer,o;l(e._nodeIndex)?o=i.resource.getDerivedResource({url:`nodes/${e._data.mesh.geometry.resource}/${t}`}):o=e.resource.getDerivedResource({url:t}),this._parent=e,this._dataProvider=n,this._layer=i,this._resource=o,this._customAttributes=void 0}Object.defineProperties($k.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});$k.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var _Pt=new h,SPt=new h,APt=new h,ZPt=new h,CPt=new h;function Jie(e,t,n,i){let o=h.subtract(i,n,_Pt),r=h.cross(o,h.subtract(e,n,SPt),ZPt),s=h.cross(o,h.subtract(t,n,APt),CPt);return h.dot(r,s)>=0}var RPt=new h,VPt=new h,GPt=new h,EPt=new h,LPt=new h,WPt=new h,vPt=new h,FPt=new h,IPt=new h,PPt=new h;$k.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(l(this._customAttributes)&&l(this._customAttributes.positions)){let i=new h(e,t,n);i.x-=this._customAttributes.cartesianCenter.x,i.y-=this._customAttributes.cartesianCenter.y,i.z-=this._customAttributes.cartesianCenter.z,$.multiplyByVector(this._customAttributes.parentRotation,i,i);let o=Number.MAX_VALUE,r,s,a,c,d=this._customAttributes.positions,u=this._customAttributes.indices,m;l(u)?m=u.length:m=d.length/3;for(let p=0;p<m;p++){let b,f,y;l(u)?(b=u[p],f=u[p+1],y=u[p+2]):(b=p*3,f=p*3+1,y=p*3+2);let _=h.fromElements(d[b*3],d[b*3+1],d[b*3+2],RPt),S=h.fromElements(d[f*3],d[f*3+1],d[f*3+2],VPt),A=new h(d[y*3],d[y*3+1],d[y*3+2],GPt);if(!Jie(i,_,S,A)||!Jie(i,S,_,A)||!Jie(i,A,_,S))continue;let Z=h.subtract(S,_,EPt),R=h.subtract(A,_,LPt),G=h.cross(Z,R,WPt);if(h.magnitude(G)===0)continue;let E=h.normalize(G,vPt),v=h.subtract(i,_,FPt),I=Math.abs(h.dot(v,E));if(I<o){o=I,r=p;let X=h.magnitudeSquared(h.subtract(i,_,v)),Y=h.magnitudeSquared(h.subtract(i,S,IPt)),g=h.magnitudeSquared(h.subtract(i,A,PPt));X<Y&&X<g?(a=b,c=_,s=X):Y<g?(a=f,c=S,s=Y):(a=y,c=A,s=g)}}if(l(r))return{index:a,distanceSquared:s,distance:Math.sqrt(s),queriedPosition:i,closestPosition:h.clone(c)}}return{index:-1,distanceSquared:Number.Infinity,distance:Number.Infinity}};function WWe(e){let t=[],n=e.length;for(let i=0;i<n;i++)i<3?t.push(vA(e[i])):t.push(e[i]);return t}$k.prototype._generateGltf=function(e,t,n,i,o,r,s,a){let c={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},d=!1,u,m="";if(l(this._parent._data.mesh)&&l(this._layer._data.materialDefinitions)){let Z=this._parent._data.mesh.material.definition;if(Z>=0&&Z<this._layer._data.materialDefinitions.length){if(u=this._layer._data.materialDefinitions[Z],c=u,l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorTexture)){d=!0,c.pbrMetallicRoughness.baseColorTexture.index=0;let R="0";if(l(this._layer._data.textureSetDefinitions))for(let G=0;G<this._layer._data.textureSetDefinitions.length;G++){let E=this._layer._data.textureSetDefinitions[G];for(let v=0;v<E.formats.length;v++){let I=E.formats[v];if(I.format==="jpg"){R=I.name;break}}}l(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(m=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${R}`}).url)}l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorFactor)&&(c.pbrMetallicRoughness.baseColorFactor=WWe(c.pbrMetallicRoughness.baseColorFactor)),l(c.emissiveFactor)&&(c.emissiveFactor=WWe(c.emissiveFactor))}}else l(this._parent._data.textureData)&&(d=!0,m=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,c.pbrMetallicRoughness.baseColorTexture={index:0});l(c.alphaMode)&&(c.alphaMode=c.alphaMode.toUpperCase());let p=[],b=[],f=[];d&&(p=[{sampler:0,source:0}],b=[{uri:m}],f=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]);let y=[],_=n.length;for(let A=0;A<_;A++){let Z=n[A].primitives,R=Z.length;for(let G=0;G<R;G++){let E=Z[G];if(l(E.material)){for(;E.material>=y.length;){let I=Je(c,!0);y.push(I)}let v=y[E.material];l(E.extra)&&E.extra.isTransparent?l(v.alphaMode)||(v.alphaMode="BLEND"):v.alphaMode==="BLEND"&&(v.alphaMode="OPAQUE")}}}return{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:o,accessors:r,materials:y,textures:p,images:b,samplers:f,asset:{version:"2.0"},extensions:s,extensionsUsed:a}};var lV=$k;function hl(e,t,n){let i,o,r,s;n?(i=0,o=e):(i=e._level+1,o=e._layer),typeof t=="number"?r=t:s=e.resource.getDerivedResource({url:`${t}/`}),this._parent=e,this._dataProvider=e._dataProvider,this._isRoot=n,this._level=i,this._layer=o,this._nodeIndex=r,this._resource=s,this._isLoading=!1,this._tile=void 0,this._data=void 0,this._geometryData=[],this._featureData=[],this._fields={},this._children=[],this._childrenReadyPromise=void 0,this._globalTransform=void 0,this._inverseGlobalTransform=void 0,this._inverseRotationMatrix=void 0,this._symbologyData=void 0}Object.defineProperties(hl.prototype,{resource:{get:function(){return this._resource}},layer:{get:function(){return this._layer}},parent:{get:function(){return this._parent}},children:{get:function(){return this._children}},geometryData:{get:function(){return this._geometryData}},featureData:{get:function(){return this._featureData}},fields:{get:function(){return this._fields}},tile:{get:function(){return this._tile}},data:{get:function(){return this._data}}});hl.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let o=e._create3DTileDefinition();e._tile=new Fm(e._layer._tileset,e._dataProvider.resource,o,e._parent._tile),e._tile._i3sNode=e}}if(!l(this._nodeIndex)){let o=await Mf.loadJson(this._resource);e._data=o,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":l(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),l(i)&&l(e._parent.resource)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};function vWe(e,t){let n=new qk(e,t);return e._fields[t.name]=n,n.load()}hl.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=[];if(l(e))for(let n=0;n<e.length;n++){let i=e[n],o=this._fields[i.name];l(o)?t.push(o.load()):t.push(vWe(this,i))}return Promise.all(t)};hl.prototype.loadField=function(e){let t=this._fields[e];if(l(t))return t.load();let n=this._layer._data.attributeStorageInfo;if(l(n))for(let i=0;i<n.length;i++){let o=n[i];if(o.name===e)return vWe(this,o)}return Promise.resolve()};hl.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!l(t.customAttributes.featureIndex))return{};let n=t.getClosestPointIndexOnTriangle(e.x,e.y,e.z);if(n.index===-1||n.index>t.customAttributes.featureIndex.length)return{};let i=t.customAttributes.featureIndex[n.index];return this.getFieldsForFeature(i)};hl.prototype.getFieldsForFeature=function(e){let t={};for(let n in this.fields)if(this.fields.hasOwnProperty(n)){let i=this.fields[n];e>=0&&e<i.values.length&&(t[i.name]=i.values[e])}return t};hl.prototype._loadChildren=function(){let e=this;if(l(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(l(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],o=new hl(e,i.href??i,!1);e._children.push(o),t.push(o.load())}return this._childrenReadyPromise=Promise.all(t).then(function(){for(let n=0;n<e._children.length;n++)e._tile.children.push(e._children[n]._tile)}),this._childrenReadyPromise};hl.prototype._loadGeometryData=function(){let e=[];if(l(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new lV(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(l(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new lV(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};hl.prototype._loadFeatureData=function(){let e=[];if(l(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new Qk(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};hl.prototype._clearGeometryData=function(){this._geometryData=[]};hl.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!l(e)&&!l(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(l(e)?n=fe.fromDegrees(e.center[0],e.center[1],e.center[2]):n=fe.fromDegrees(t[0],t[1],t[2]),l(this._dataProvider._geoidDataList)&&l(n))for(let S=0;S<this._dataProvider._geoidDataList.length;S++){let A=this._dataProvider._geoidDataList[S],Z=A.projection.project(n);if(Z.x>A.nativeExtent.west&&Z.x<A.nativeExtent.east&&Z.y>A.nativeExtent.south&&Z.y<A.nativeExtent.north){n.height+=wPt(Z.x,Z.y,A);break}}let i={},o,r=0;l(e)?(i={box:[0,0,0,e.halfSize[0],0,0,0,e.halfSize[1],0,0,0,e.halfSize[2]]},r=Math.max(Math.max(this._data.obb.halfSize[0],this._data.obb.halfSize[1]),this._data.obb.halfSize[2]),o=ie.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},o=ie.WGS84.cartographicToCartesian(n),r=this._data.mbs[3]),r*=2;let s=1/0;if(l(this._data.lodThreshold))if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThresholdSQ"){let S=Math.sqrt(this._data.lodThreshold/(Math.PI*.25));s=r/S}else if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThreshold"){let S=this._data.lodThreshold;s=r/S}else console.error("Invalid lodSelectionMetricType in Layer");else if(l(this._data.lodSelection))for(let S=0;S<this._data.lodSelection.length;S++)this._data.lodSelection[S].metricType==="maxScreenThreshold"&&(s=r/this._data.lodSelection[S].maxError);s===1/0&&(s=1e5);let a=s*16,c=new bc(0,0,0),d=xt.headingPitchRollQuaternion(o,c);l(this._data.obb)&&(d=new Ne(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let u=$.fromQuaternion(d),m=$.inverse(u,new $),p=new F(u[0],u[1],u[2],0,u[3],u[4],u[5],0,u[6],u[7],u[8],0,o.x,o.y,o.z,1),b=F.inverse(p,new F),f=F.clone(p);l(this._parent._globalTransform)&&F.multiply(p,this._parent._inverseGlobalTransform,f),this._globalTransform=p,this._inverseGlobalTransform=b,this._inverseRotationMatrix=m;let y=[];for(let S=0;S<this._children.length;S++)y.push(this._children[S]._create3DTileDefinition());return{children:y,refine:"REPLACE",boundingVolume:i,transform:[f[0],f[4],f[8],f[12],f[1],f[5],f[9],f[13],f[2],f[6],f[10],f[14],f[3],f[7],f[11],f[15]],content:{uri:l(this._resource)?this._resource.url:void 0},geometricError:a}};hl.prototype._loadSymbology=async function(){!l(this._symbologyData)&&l(this._layer._symbology)&&(this._symbologyData=await this._layer._symbology._getSymbology(this))};hl.prototype._createContentURL=async function(){let e={scene:0,scenes:[{nodes:[0]}],nodes:[{name:"singleNode"}],meshes:[],buffers:[],bufferViews:[],accessors:[],materials:[],textures:[],images:[],samplers:[],asset:{version:"2.0"}},t=[this._loadGeometryData()];if(this._dataProvider.legacyVersion16&&t.push(this._loadFeatureData()),await Promise.all(t),l(this._geometryData)&&this._geometryData.length>0){this._dataProvider._applySymbology&&await this._loadSymbology();let o=this._geometryData[0].resource.url,r=this._layer._data.store.defaultGeometrySchema,s=this._geometryData[0],a=await jk.decode(o,r,s,this._featureData[0],this._symbologyData);if(!l(a))return;e=s._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors,a.meshData.rootExtensions,a.meshData.extensionsUsed),this._geometryData[0]._customAttributes=a.meshData._customAttributes}let n=this._dataProvider._binarizeGltf(e),i=new Blob([n],{type:"application/binary"});return URL.createObjectURL(i)};async function XPt(e){let t=e._layer._filters,n=[];for(let i=0;i<t.length;i++){let o=e.loadField(t[i].name);n.push(o)}return await Promise.all(n),t}function YPt(e,t,n){if(!l(n.values)||n.values.length===0)return!1;let i=l(t)?t.values:[],o;e<i.length&&(o=i[e]);let r=!1;for(let s=0;s<n.values.length;s++)if(n.values[s]===o){r=!0;break}return r}async function FWe(e,t){let n=e._tile.content.batchTable;if(l(n)&&n.featuresLength>0){n.setAllShow(!0);let i=await XPt(e);if(i.length>0)for(let o=0;o<n.featuresLength;o++)for(let r=0;r<i.length;r++){let s=i[r];if(!YPt(o,e._fields[s.name],s)){n.setShow(o,!1);break}}}t.show=!0}hl.prototype._filterFeatures=function(){let e=[];for(let n=0;n<this._children.length;n++){let i=this._children[n]._filterFeatures();e.push(i)}let t=this._tile?.content?._model;if(l(this._geometryData)&&this._geometryData.length>0&&l(t)&&t.ready){t.show=!1;let n=FWe(this,t);e.push(n)}return Promise.all(e)};Fm.prototype._hookedRequestContent=Fm.prototype.requestContent;Fm.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading){this._isLoading=!0;let e=this;return this._i3sNode._createContentURL().then(t=>{if(!l(t)){e._isLoading=!1;return}return e._contentResource=new We({url:t}),e._hookedRequestContent()}).then(t=>{let n=t?._model;return l(e._i3sNode._geometryData)&&e._i3sNode._geometryData.length>0&&l(n)&&(n.show=!1,n.readyEvent.addEventListener(()=>{FWe(e._i3sNode,n)})),e._isLoading=!1,t})}};function NPt(e,t,n,i,o,r){let s=n*(1-e)+i*e,a=o*(1-e)+r*e;return s*(1-t)+a*t}function Yz(e,t,n,i){let o=e+t*n;return i[o]}function wPt(e,t,n){let i=n.nativeExtent,o=(e-i.west)/(i.east-i.west)*(n.width-1),r=(t-i.south)/(i.north-i.south)*(n.height-1),s=Math.floor(o),a=Math.floor(r);o-=s,r-=a;let c=s<n.width?s+1:s,d=a<n.height?a+1:a;a=n.height-1-a,d=n.height-1-d;let u=Yz(s,a,n.width,n.buffer),m=Yz(c,a,n.width,n.buffer),p=Yz(s,d,n.width,n.buffer),b=Yz(c,d,n.width,n.buffer),f=NPt(o,r,u,m,p,b);return f=f*n.scale+n.offset,f}Object.defineProperties(Fm.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var dV=hl;var HVo=x(T(),1);function Nz(e){this._layer=e,this._defaultSymbology=void 0,this._valueFields=[],this._uniqueValueHash=void 0,this._classBreaksHash=void 0,this._parseLayerSymbology()}Object.defineProperties(Nz.prototype,{defaultSymbology:{get:function(){return this._defaultSymbology}}});function jie(e,t){let n=[];for(let i=0;i<e.length;i++){let o=U.byteToFloat(e[i]);i<3?n.push(vA(o)):n.push(o)}return n.length===3&&(l(t)?n.push(1-t/100):n.push(1)),n}function uV(e,t){let n={edges:void 0,material:void 0};if(l(e)&&l(e.symbolLayers))for(let i=0;i<e.symbolLayers.length;i++){let o=e.symbolLayers[i];if(o.type==="Fill"){let r=o.edges,s=o.outline;if(l(r)?(n.edges={},l(r.color)&&(n.edges.color=jie(r.color,r.transparency))):l(s)&&(n.edges={},l(s.color)&&(n.edges.color=jie(s.color,s.transparency))),!t){let a=o.material;l(a)&&(n.material={colorMixMode:a.colorMixMode},l(a.color)&&(n.material.color=jie(a.color,a.transparency)))}break}}return n}function MPt(e,t){if(l(e.uniqueValueGroups)){let n={};for(let i=0;i<e.uniqueValueGroups.length;i++){let o=e.uniqueValueGroups[i].classes;if(l(o))for(let r=0;r<o.length;r++){let s=uV(o[r].symbol,t),a=o[r].values;for(let c=0;c<a.length;c++){let d=a[c],u=n;for(let m=0;m<d.length;m++){let p=d[m];m===d.length-1?u[p]=s:(l(u[p])||(u[p]={}),u=u[p])}}}}return n}if(l(e.uniqueValueInfos)){let n={};for(let i=0;i<e.uniqueValueInfos.length;i++){let o=e.uniqueValueInfos[i];n[o.value]=uV(o.symbol,t)}return n}}function kPt(e,t){if(l(e.classBreakInfos)){let n=[...e.classBreakInfos];n.sort(function(o,r){let s=o.classMaxValue??o.classMinValue,a=r.classMaxValue??r.classMinValue;return s-a});let i={ranges:[],symbols:[]};l(e.minValue)&&(i.ranges.push(e.minValue),i.symbols.push(void 0));for(let o=0;o<n.length;o++){let r=n[o];l(r.classMinValue)&&(i.ranges.length===0||r.classMinValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMinValue),i.symbols.push(void 0)),l(r.classMaxValue)&&(i.ranges.length===0||r.classMaxValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMaxValue),i.symbols.push(uV(r.symbol,t)))}return i.symbols.push(void 0),i}}Nz.prototype._parseLayerSymbology=function(){let e=this._layer.data.drawingInfo;if(l(e)&&l(e.renderer)){let t=this._layer.data.cachedDrawingInfo,n=l(t)&&t.color===!0,i=e.renderer;i.type==="simple"?this._defaultSymbology=uV(i.symbol,n):i.type==="uniqueValue"?(this._defaultSymbology=uV(i.defaultSymbol,n),this._valueFields.push(i.field1),l(i.field2)&&this._valueFields.push(i.field2),l(i.field3)&&this._valueFields.push(i.field3),this._uniqueValueHash=MPt(i,n)):i.type==="classBreaks"&&(this._defaultSymbology=uV(i.defaultSymbol,n),this._valueFields.push(i.field),this._classBreaksHash=kPt(i,n))}};function IWe(e,t,n,i){let o=t[n];if(i<o.length){let r=o[i],s=e[r];return l(s)&&++n<t.length?IWe(s,t,n,i):s}}function UPt(e,t){let n=0,i=e.length;if(n<i)do{let o=n+i>>>1;e[o]<t?n=o+1:i=o}while(n<i);return n}function DPt(e,t,n){let i=t[n],o=UPt(e.ranges,i);return e.symbols[o]}Nz.prototype._getSymbology=async function(e){let t={default:this._defaultSymbology};if(this._valueFields.length>0){let n=[];for(let r=0;r<this._valueFields.length;r++)n.push(e.loadField(this._valueFields[r]));await Promise.all(n);let i=[];for(let r=0;r<this._valueFields.length;r++)i.push(e.fields[this._valueFields[r]].values);let o;if(l(this._uniqueValueHash)?o=r=>IWe(this._uniqueValueHash,i,0,r):l(this._classBreaksHash)&&(o=r=>DPt(this._classBreaksHash,i[0],r)),l(o)){let r=i[0];for(let s=0;s<r.length;s++){let a=o(s);l(a)&&(t[s]=a)}}}return t};var e9=Nz;function zd(e,t,n){this._dataProvider=e,this._parent=n,!l(t.href)&&l(t.id)&&(t.href=`layers/${t.id}`);let i=this._parent.resource.getUrlComponent(),o="";i.match(/layers\/\d/)?o=`${i}`.replace(/\/+$/,""):o=`${i}`.replace(/\/?$/,"/").concat(`${t.href}`),this._version=t.store.version;let r=this._version.split(".");this._majorVersion=parseInt(r[0]),this._minorVersion=r.length>1?parseInt(r[1]):0,this._resource=new We({url:o}),this._resource.setQueryParameters(this._dataProvider.resource.queryParameters),this._resource.appendForwardSlash(),this._data=t,this._rootNode=void 0,this._nodePages={},this._nodePageFetches={},this._extent=void 0,this._tileset=void 0,this._geometryDefinitions=void 0,this._filters=[],this._symbology=void 0,this._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(zd.prototype,{resource:{get:function(){return this._resource}},rootNode:{get:function(){return this._rootNode}},tileset:{get:function(){return this._tileset}},data:{get:function(){return this._data}},version:{get:function(){return this._version}},majorVersion:{get:function(){return this._majorVersion}},minorVersion:{get:function(){return this._minorVersion}},legacyVersion16:{get:function(){if(l(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});zd.prototype.load=async function(e){if(this._data.spatialReference.wkid!==4326)throw new ae(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(this._dataProvider.applySymbology&&(this._symbology=new e9(this)),await this._dataProvider.loadGeoidData(),await this._loadRootNode(e),await this._create3DTileset(e),this._rootNode._tile=this._tileset._root,this._tileset._root._i3sNode=this._rootNode,this.legacyVersion16)return this._rootNode._loadChildren()};zd.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],l(this._data.geometryDefinitions))for(let t=0;t<this._data.geometryDefinitions.length;t++){let n=[],i=this._data.geometryDefinitions[t].geometryBuffers;for(let o=0;o<i.length;o++){let r=i[o],s=[],a=!1;if(l(r.compressedAttributes)&&e){a=!0;let c=r.compressedAttributes.attributes;for(let d=0;d<c.length;d++)s.push(c[d])}else for(let c in r)c!=="offset"&&s.push(c);n.push({compressed:a,attributes:s,index:i.indexOf(r)})}n.sort(function(o,r){return o.compressed&&!r.compressed?-1:!o.compressed&&r.compressed?1:o.attributes.length-r.attributes.length}),this._geometryDefinitions.push(n)}};zd.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(l(n)){for(let i=0;i<n.length;++i){let o=n[i],r=!1,s=o.attributes;for(let a=0;a<t.length;a++)if(!s.includes(t[a])){r=!0;break}if(!r)return{bufferIndex:o.index,definition:n,geometryBufferInfo:o}}if(l(n[0]))return{bufferIndex:0,definition:n,geometryBufferInfo:n[0]}}};zd.prototype._loadRootNode=function(e){if(l(this._data.nodePages)){let t=0;l(this._data.nodePages.rootIndex)&&(t=this._data.nodePages.rootIndex),this._rootNode=new dV(this,t,!0)}else this._rootNode=new dV(this,this._data.store.rootNode,!0);return this._rootNode.load(e)};zd.prototype._getNodeInNodePages=function(e){let t=Math.floor(e/this._data.nodePages.nodesPerPage),n=e%this._data.nodePages.nodesPerPage;return this._loadNodePage(t).then(function(i){return i.nodes[n]})};zd._fetchJson=function(e){return e.fetchJson()};zd.prototype._loadNodePage=function(e){let t=this;if(!l(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=zd._fetchJson(n).then(function(o){return l(o.error)&&o.error.code!==200?Promise.reject(o.error):(t._nodePages[e]=o.nodes,o)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};zd.prototype._computeExtent=function(){l(this._data.fullExtent)?this._extent=se.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):l(this._data.store.extent)&&(this._extent=se.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};zd.prototype._create3DTileset=async function(e){let t={asset:{version:"1.0"},geometricError:Number.MAX_VALUE,root:this._rootNode._create3DTileDefinition()},n=new Blob([JSON.stringify(t)],{type:"application/json"}),i=URL.createObjectURL(n),o=this._symbology?.defaultSymbology?.edges?.color;l(o)&&!l(e?.outlineColor)&&(e=l(e)?Je(e):{},e.outlineColor=U.fromCartesian4(ce.fromArray(o))),this._tileset=await ms.fromUrl(i,e),this._tileset.show=this._parent.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(r){r._i3sNode._clearGeometryData(),URL.revokeObjectURL(r._contentResource._url),r._contentResource=r._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(r){l(r._i3sNode)&&r._i3sNode._loadChildren()})};zd.prototype._updateVisibility=function(){l(this._tileset)&&(this._tileset.show=this._parent.show)};zd.prototype.filterByAttributes=function(e){this._filters=l(e)?Je(e,!0):[];let t=this._rootNode;return l(t)?t._filterFeatures():Promise.resolve()};var YA=zd;var dGo=x(T(),1);function wz(e,t){this._dataProvider=e,this._resource=new We({url:t}),this._resource.setQueryParameters(e.resource.queryParameters),this._resource.appendForwardSlash()}Object.defineProperties(wz.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},names:{get:function(){let e=[],t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n)e.push(t[n].fieldName);return e}}});wz.prototype.load=async function(){return this._data=await Mf.loadJson(this._resource),this._data};wz.prototype._getValues=function(e){let t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n){let i=t[n];if(i.fieldName===e)return l(i.mostFrequentValues)?[...i.mostFrequentValues]:[]}};var t9=wz;var bGo=x(T(),1);function n9(e,t,n){this._dataProvider=e,this._parent=t,this._data=n,this._name=n.name,this._modelName=n.modelName,this._visibility=n.visibility??!0,this._resource=void 0,this._sublayers=[],this._i3sLayers=[]}Object.defineProperties(n9.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},name:{get:function(){return this._name}},modelName:{get:function(){return this._modelName}},sublayers:{get:function(){return this._sublayers}},visibility:{get:function(){return this._visibility},set:function(e){if(this._visibility!==e){this._visibility=e;for(let t=0;t<this._i3sLayers.length;t++)this._i3sLayers[t]._updateVisibility()}}},show:{get:function(){return this._visibility&&this._parent.show}}});n9._fromData=async function(e,t,n,i){let o=new n9(e,i,n);if(o._data.layerType==="group"){let r=o._data.sublayers;if(l(r)){let s=[];for(let c=0;c<r.length;c++){let d=n9._fromData(e,t,r[c],o);s.push(d)}let a=await Promise.all(s);for(let c=0;c<a.length;c++){let d=a[c];o._sublayers.push(d),o._i3sLayers.push(...d._i3sLayers)}}}else if(o._data.layerType==="3DObject"){let r=t.concat(`/sublayers/${o._data.id}`),s=new We({url:r});s.setQueryParameters(e.resource.queryParameters),s.appendForwardSlash(),o._resource=s;let a=await Mf.loadJson(o._resource),c=new YA(e,a,o);o._i3sLayers.push(c)}else console.log(`${o._data.layerType} layer ${o._data.name} is skipped as not supported.`);return o};var i9=n9;var YWe=x(PWe(),1);function qs(e){e=e??B.EMPTY_OBJECT,this._name=e.name,this._show=e.show??!0,this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._showFeatures=e.showFeatures??!1,this._adjustMaterialAlphaMode=e.adjustMaterialAlphaMode??!1,this._applySymbology=e.applySymbology??!1,this._calculateNormals=e.calculateNormals??!1,this._cesium3dTilesetOptions=e.cesium3dTilesetOptions??B.EMPTY_OBJECT,this._layers=[],this._sublayers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0,this._attributeStatistics=[],this._layersExtent=[]}Object.defineProperties(qs.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;for(let t=0;t<this._layers.length;t++)this._layers[t]._updateVisibility()}}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},sublayers:{get:function(){return this._sublayers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},resource:{get:function(){return this._resource}},showFeatures:{get:function(){return this._showFeatures}},adjustMaterialAlphaMode:{get:function(){return this._adjustMaterialAlphaMode}},applySymbology:{get:function(){return this._applySymbology}},calculateNormals:{get:function(){return this._calculateNormals}}});qs.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)l(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return he(this)};qs.prototype.isDestroyed=function(){return!1};qs.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};qs.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};qs.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};qs.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)l(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};function OPt(e,t){let n=e.resource.getUrlComponent(),i="";return n.match(/layers\/\d/)?i=`${n}`.replace(/\/+$/,""):i=`${n}`.replace(/\/?$/,"/").concat(`layers/${t}`),i}async function XWe(e,t,n){if(t.layerType==="Building"){l(n.showFeatures)||(e._showFeatures=!0),l(n.adjustMaterialAlphaMode)||(e._adjustMaterialAlphaMode=!0),l(n.applySymbology)||(e._applySymbology=!0),l(n.calculateNormals)||(e._calculateNormals=!0);let i=OPt(e,t.id);if(l(t.sublayers)){let o=[];for(let s=0;s<t.sublayers.length;s++){let a=i9._fromData(e,i,t.sublayers[s],e);o.push(a)}let r=await Promise.all(o);for(let s=0;s<r.length;s++){let a=r[s];e._sublayers.push(a),e._layers.push(...a._i3sLayers)}}if(l(t.statisticsHRef)){let o=i.concat(`/${t.statisticsHRef}`),r=new t9(e,o);await r.load(),e._attributeStatistics.push(r)}if(l(t.fullExtent)){let o=se.fromDegrees(t.fullExtent.xmin,t.fullExtent.ymin,t.fullExtent.xmax,t.fullExtent.ymax);e._layersExtent.push(o)}}else if(t.layerType==="3DObject"||t.layerType==="IntegratedMesh"){!l(n.calculateNormals)&&!l(t.textureSetDefinitions)&&(e._calculateNormals=!0);let i=new YA(e,t,e);e._layers.push(i),l(i._extent)&&e._layersExtent.push(i._extent)}else console.log(`${t.layerType} layer ${t.name} is skipped as not supported.`)}qs.fromUrl=async function(e,t){t=t??B.EMPTY_OBJECT;let n=We.createIfNeeded(e);n.setQueryParameters({f:"pjson"},!0);let i=await qs.loadJson(n),o=new qs(t);if(o._resource=n,o._data=i,l(i.layers)){let s=[];for(let a=0;a<i.layers.length;a++){let c=XWe(o,i.layers[a],t);s.push(c)}await Promise.all(s)}else await XWe(o,i,t);o._computeExtent();let r=[];for(let s=0;s<o._layers.length;s++)r.push(o._layers[s].load(t.cesium3dTilesetOptions));return await Promise.all(r),o};qs._fetchJson=function(e){return e.fetchJson()};qs.loadJson=async function(e){let t=await qs._fetchJson(e);if(l(t.error)){if(console.error("Failed to fetch I3S ",e.url),l(t.error.message)&&console.error(t.error.message),l(t.error.details))for(let n=0;n<t.error.details.length;n++)console.log(t.error.details[n]);throw new ae(t.error)}return t};qs.prototype._loadBinary=async function(e){let t=await e.fetchArrayBuffer();if(t.byteLength>0&&new Uint8Array(t)[0]===123&&new TextDecoder().decode(t).includes("404"))throw new ae(`Failed to load binary: ${e.url}`);return t};qs.prototype._binarizeGltf=function(e){let n=new TextEncoder().encode(JSON.stringify(e)),i=new Uint8Array(n.byteLength+20),o={magic:new Uint8Array(i.buffer,0,4),version:new Uint32Array(i.buffer,4,1),length:new Uint32Array(i.buffer,8,1),chunkLength:new Uint32Array(i.buffer,12,1),chunkType:new Uint32Array(i.buffer,16,1),chunkData:new Uint8Array(i.buffer,20,n.byteLength)};return o.magic[0]=103,o.magic[1]=108,o.magic[2]=84,o.magic[3]=70,o.version[0]=2,o.length[0]=i.byteLength,o.chunkLength[0]=n.byteLength,o.chunkType[0]=1313821514,o.chunkData.set(n),i};var BPt=new k;function zPt(e,t){let n=e.tilingScheme,i=[],o={},r=e._lodCount,s=fe.fromRadians(t.west,t.north),a=fe.fromRadians(t.east,t.south),c=n.positionToTileXY(s,r),d=n.positionToTileXY(a,r);for(let m=c.x;m<=d.x;m++)for(let p=c.y;p<=d.y;p++){let b=k.fromElements(m,p,BPt),f=b.toString();if(!o.hasOwnProperty(f)){let y={x:b.x,y:b.y,level:r,tilingScheme:n,terrainProvider:e,positions:[]};o[f]=y,i.push(y)}}let u=[];for(let m=0;m<i.length;++m){let p=i[m],b=p.terrainProvider.requestTileGeometry(p.x,p.y,p.level);u.push(b)}return Promise.all(u).then(function(m){let p=[];for(let b=0;b<m.length;b++){let f={tilingScheme:n,x:i[b].x,y:i[b].y,level:i[b].level},y=m[b],_="Geographic";n._projection instanceof ui&&(_="WebMercator");let S={projectionType:_,projection:n._projection,nativeExtent:n.tileXYToNativeRectangle(f.x,f.y,f.level),height:y._height,width:y._width,scale:y._structure.heightScale,offset:y._structure.heightOffset};if(y._encoding===Km.LERC){let A=YWe.default.decode(y._buffer);S.buffer=A.pixels[0]}else S.buffer=y._buffer;p.push(S)}return p})}async function HPt(e){let t=e._geoidTiledTerrainProvider;if(l(t))try{let n=await zPt(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}qs.prototype.loadGeoidData=async function(){return l(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=HPt(this),this._geoidDataPromise)};qs.prototype._computeExtent=function(){let e;for(let t=0;t<this._layersExtent.length;t++){let n=this._layersExtent[t];l(e)?se.union(e,n,e):e=se.clone(n)}this._extent=e};qs.prototype.getAttributeNames=function(){let e=[];for(let t=0;t<this._attributeStatistics.length;++t)e.push(...this._attributeStatistics[t].names);return e};qs.prototype.getAttributeValues=function(e){for(let t=0;t<this._attributeStatistics.length;++t){let n=this._attributeStatistics[t]._getValues(e);if(l(n))return n}return[]};qs.prototype.filterByAttributes=function(e){let t=[];for(let n=0;n<this._layers.length;n++){let i=this._layers[n].filterByAttributes(e);t.push(i)}return Promise.all(t)};var Mf=qs;var UGo=x(T(),1);var o9={};o9.createTilesetFromIModelId=async function({iModelId:e,changesetId:t,tilesetOptions:n}){let{exports:i}=await Qs.getExports(e,t);if(i.length>0&&i.every(c=>c.status===Qs.ExportStatus.Invalid))throw new ae(`All exports for this iModel are Invalid: ${e}`);let o=i.find(c=>c.status===Qs.ExportStatus.Complete);if(!l(o))return;let r=new URL(o._links.mesh.href);r.pathname=`${r.pathname}/tileset.json`;let s=r.toString(),a=new We({url:s});return ms.fromUrl(a,n)};o9.createTilesetForRealityDataId=async function({iTwinId:e,realityDataId:t,type:n,rootDocument:i,tilesetOptions:o}){if(!l(n)||!l(i)){let c=await Qs.getRealityDataMetadata(e,t);i=c.rootDocument,n=c.type}if(![Qs.RealityDataType.Cesium3DTiles,Qs.RealityDataType.PNTS,Qs.RealityDataType.RealityMesh3DTiles,Qs.RealityDataType.Terrain3DTiles,Qs.RealityDataType.GaussianSplat3DTiles].includes(n))throw new ae(`Reality data type is not a mesh type: ${n}`);let s=await Qs.getRealityDataURL(e,t,i),a={maximumScreenSpaceError:4,...o};return ms.fromUrl(s,a)};o9.createDataSourceForRealityDataId=async function({iTwinId:e,realityDataId:t,type:n,rootDocument:i}){if(!l(n)||!l(i)){let s=await Qs.getRealityDataMetadata(e,t);i=s.rootDocument,n=s.type}if(![Qs.RealityDataType.KML,Qs.RealityDataType.GeoJSON].includes(n))throw new ae(`Reality data type is not a data source type: ${n}`);let r=await Qs.getRealityDataURL(e,t,i);return n===Qs.RealityDataType.GeoJSON?px.load(r):FS.load(r)};o9.loadGeospatialFeatures=async function({iTwinId:e,collectionId:t,limit:n}){let i=n??1e4,o=`${Qs.apiEndpoint}geospatial-features/itwins/${e}/ogc/collections/${t}/items`,r=new We({url:o,headers:{Authorization:Qs._getAuthorizationHeader(),Accept:"application/vnd.bentley.itwin-platform.v1+json"},queryParameters:{limit:i,client:"CesiumJS"}});return px.load(r)};var Qie=o9;var BGo=x(T(),1);function NWe(){}Object.defineProperties(NWe.prototype,{color:{get:Te.throwInstantiationError},intensity:{get:Te.throwInstantiationError}});var qie=NWe;var LEo=x(T(),1);var iEo=x(T(),1);var KPt=0,JPt=14,jPt=-1e3,QPt=1e4,qPt=2*Math.PI*ie.WGS84.maximumRadius,$Pt=256,eXt=new se,tXt=new se,$ie=class{constructor(t,n){n=n??{},this._resource=We.createIfNeeded(t),this._urlTemplate=this._resource.url,this._extent=se.clone(n.extent),this._minZoom=n.minZoom??KPt,this._maxZoom=n.maxZoom??JPt,this._featureIdProperty=n.featureIdProperty,this._show=!0,this._tileset=void 0,this._tilesetJsonUrl=void 0}static async fromUrl(t,n){let i=new this(t,n);return await i._initializeTileset(),i}get urlTemplate(){return this._urlTemplate}get resource(){return this._resource}get extent(){return this._extent}get tileset(){return this._tileset}get show(){return this._show}set show(t){this._show=t,l(this._tileset)&&(this._tileset.show=t)}_createRuntimeTilesetOptions(){return{minZoom:this._minZoom,maxZoom:this._maxZoom,extent:this._extent}}_createTilesetLoadOptions(){return{}}_configureTileset(t){}_createCodec(){}async _initializeTileset(){let t=nXt(this._resource,this._createRuntimeTilesetOptions()),n=new Blob([JSON.stringify(t)],{type:"application/json"}),i=URL.createObjectURL(n);this._tilesetJsonUrl=i;try{this._tileset=await ms.fromUrl(i,this._createTilesetLoadOptions())}catch(o){throw URL.revokeObjectURL(i),this._tilesetJsonUrl=void 0,o}URL.revokeObjectURL(i),this._tilesetJsonUrl=void 0,this._configureTileset(this._tileset),this._tileset._runtimeContentCodec=this._createCodec(),this._tileset.show=this._show}update(t){l(this._tileset)&&this._tileset.update(t)}prePassesUpdate(t){l(this._tileset)&&this._tileset.prePassesUpdate(t)}postPassesUpdate(t){l(this._tileset)&&this._tileset.postPassesUpdate(t)}updateForPass(t,n){l(this._tileset)&&this._tileset.updateForPass(t,n)}isDestroyed(){return!1}destroy(){return l(this._tileset)&&(this._tileset.destroy(),this._tileset=void 0),l(this._tilesetJsonUrl)&&(URL.revokeObjectURL(this._tilesetJsonUrl),this._tilesetJsonUrl=void 0),this._resource=void 0,this._extent=void 0,this._featureIdProperty=void 0,he(this)}};function nXt(e,t){let n=new Zr,i=l(t.extent)?se.clone(t.extent):se.clone(n.rectangle),o=oXt(n,i,t.minZoom),r={boundingVolume:{region:kWe(i)},geometricError:MWe(0),refine:"REPLACE",children:[]};for(let s=o.minY;s<=o.maxY;s++)for(let a=o.minX;a<=o.maxX;a++){let c=wWe(n,e,i,t.minZoom,t.maxZoom,a,s);l(c)&&r.children.push(c)}return r.children.length===0&&(r.geometricError=0),{asset:{version:"1.1"},geometricError:r.geometricError,root:r}}function wWe(e,t,n,i,o,r,s){if(!rXt(e,i,r,s,n,eXt,tXt))return;let a=e.tileXYToRectangle(r,s,i,new se),c={boundingVolume:{region:kWe(a)},geometricError:i<o?MWe(i):0,refine:"REPLACE",content:{uri:iXt(t,i,r,s)}};if(i>=o)return c;let d=i+1,u=[];for(let m=s*2;m<=s*2+1;m++)for(let p=r*2;p<=r*2+1;p++){let b=wWe(e,t,n,d,o,p,m);l(b)&&u.push(b)}return u.length>0?c.children=u:c.geometricError=0,c}function iXt(e,t,n,i){let r=e.url.replace(/\{z\}/gi,`${t}`).replace(/\{x\}/gi,`${n}`).replace(/\{y\}/gi,`${i}`);return $u(r)}function MWe(e){return qPt/((1<<e)*$Pt)}function kWe(e){return[e.west,e.south,e.east,e.north,jPt,QPt]}function oXt(e,t,n){let i=(1<<n)-1,o=fe.fromRadians(t.west,t.north),r=fe.fromRadians(t.east,t.south),s=e.positionToTileXY(o,n),a=e.positionToTileXY(r,n);return!l(s)||!l(a)||t.west>t.east?{minX:0,maxX:i,minY:0,maxY:i}:{minX:W.clamp(Math.min(s.x,a.x),0,i),maxX:W.clamp(Math.max(s.x,a.x),0,i),minY:W.clamp(Math.min(s.y,a.y),0,i),maxY:W.clamp(Math.max(s.y,a.y),0,i)}}function rXt(e,t,n,i,o,r,s){let a=e.tileXYToRectangle(n,i,t,r);return l(se.intersection(a,o,s))}var r9=$ie;var bEo=x(T(),1);var eoe=0,UWe=new h,kz=new h,sXt=new Zr;function aXt(e,t,n){let i=t.tileX,o=t.tileY,r=t.tileZ,s=n?.featureIdProperty,a=sXt.tileXYToRectangle(i,o,r),c=se.center(a),d=h.fromRadians(c.longitude,c.latitude,0),u=4294967295,m=u,p=u,b=new Map,f=new Map,y=[],_=[],S=[],A=0;function Z(){let M=(4-A%4)%4;M>0&&(S.push(new Uint8Array(M)),A+=M)}function R(M,D){Z();let w=A;S.push(new Uint8Array(M.buffer,M.byteOffset,M.byteLength)),A+=M.byteLength;let z=y.length;return y.push({buffer:0,byteOffset:w,byteLength:M.byteLength,target:D}),z}function G(M,D){let w=R(M,D.target),z=pt.getComponentCount(D.type),K={bufferView:w,byteOffset:0,componentType:D.componentType,count:M.length/z,type:D.type};l(D.min)&&(K.min=D.min),l(D.max)&&(K.max=D.max);let ee=_.length;return _.push(K),ee}function E(M){let D=Number.POSITIVE_INFINITY,w=Number.POSITIVE_INFINITY,z=Number.POSITIVE_INFINITY,K=Number.NEGATIVE_INFINITY,ee=Number.NEGATIVE_INFINITY,H=Number.NEGATIVE_INFINITY;for(let te=0;te<M.length;te+=3){let q=M[te],de=M[te+1],ye=M[te+2];q<D&&(D=q),de<w&&(w=de),ye<z&&(z=ye),q>K&&(K=q),de>ee&&(ee=de),ye>H&&(H=ye)}return{min:[D,w,z],max:[K,ee,H]}}function v(M,D,w){if(w.length===0)return;let z=new Uint32Array(w),K=G(z,{type:"SCALAR",componentType:J.UNSIGNED_INT,target:ne.ARRAY_BUFFER});M._FEATURE_ID_0=K;let ee={featureCount:b.size,nullFeatureId:m,attribute:0};f.size>0&&(ee.propertyTable=0),D.EXT_mesh_features={featureIds:[ee]}}function I(M,D){D=D??4;let w=(D-A%D)%D;w>0&&(S.push(new Uint8Array(w)),A+=w);let z=A;S.push(M),A+=M.byteLength;let K=y.length;return y.push({buffer:0,byteOffset:z,byteLength:M.byteLength}),K}function X(){if(f.size===0)return;let M=new Map;for(let K of f.values())for(let[ee,H]of Object.entries(K)){if(!l(H))continue;let te=typeof H,q;te==="string"?q="STRING":te==="number"?q="SCALAR":te==="boolean"?q="BOOLEAN":q="STRING";let de=M.get(ee);l(de)?de!==q&&M.set(ee,"STRING"):M.set(ee,q)}if(M.size===0)return;let D={};for(let[K,ee]of M)ee==="SCALAR"?D[K]={type:"SCALAR",componentType:"FLOAT64"}:ee==="BOOLEAN"?D[K]={type:"BOOLEAN"}:D[K]={type:"STRING"};let w={},z=b.size;for(let[K,ee]of M)if(ee==="SCALAR"){let H=new Float64Array(z);for(let q=0;q<z;q++){let ye=f.get(q)?.[K];H[q]=typeof ye=="number"&&Number.isFinite(ye)?ye:NaN}let te=I(new Uint8Array(H.buffer,H.byteOffset,H.byteLength),8);w[K]={values:te}}else if(ee==="BOOLEAN"){let H=Math.ceil(z/8),te=new Uint8Array(H);for(let de=0;de<z;de++)f.get(de)?.[K]&&(te[de>>3]|=1<<(de&7));let q=I(te);w[K]={values:q}}else{let H=new TextEncoder,te=[],q=new Uint32Array(z+1),de=0;for(let Ee=0;Ee<z;Ee++){q[Ee]=de;let Xe=f.get(Ee)?.[K],we;Xe==null?we="":typeof Xe=="string"?we=Xe:we=String(Xe);let nt=H.encode(we);te.push(nt),de+=nt.byteLength}q[z]=de;let ye=new Uint8Array(de),le=0;for(let Ee of te)ye.set(Ee,le),le+=Ee.byteLength;let Ce=I(ye),ge=I(new Uint8Array(q.buffer,q.byteOffset,q.byteLength));w[K]={values:Ce,stringOffsets:ge,stringOffsetType:"UINT32"}}return{schema:{classes:{mvt_feature:{properties:D}}},propertyTables:[{class:"mvt_feature",count:z,properties:w}]}}let Y=[],g=[],C=[d.x,d.y,d.z];for(let M of e.layers){let D=M.extent,w=[],z=[],K=[],ee=[],H=[],te=0,q=[],de=[],ye=[],le=[],Ce=[],ge=[],Ee=[],Re=0;for(let nt of M.features){let je=l(s)?lXt(nt,s,b)??m:cXt(nt,b);if(je!==m&&!f.has(je)){let et=Object.assign({},nt.properties);et._layer=M.name??"",f.set(je,et)}if(nt.type==="Point"){let et=nt.geometry;for(let Ie of et)toe(Ie,i,o,r,D,eoe,d,w),z.push(je);continue}if(nt.type==="LineString"){let et=nt.geometry;for(let Ie of et){let Oe=K.length/3;for(let St of Ie)toe(St,i,o,r,D,eoe,d,K),ee.push(je);for(let St=0;St<Ie.length;St++)H.push(Oe+St);H.push(p),te++}continue}if(nt.type==="Polygon"){let et=nt.geometry,Ie=dXt(et);for(let Oe of Ie){let St=[Oe.outerRing,...Oe.holes],Et=[],on=[],Ot=[],gt=0;for(let mt=0;mt<St.length;mt++){let Qn=St[mt];mt>0&&Ot.push(gt);for(let Yn of Qn)Et.push(new k(Yn.x,Yn.y)),toe(Yn,i,o,r,D,eoe,d,on),gt++}if(Et.length<3)continue;let Wt=ri.triangulate(Et,Ot.length>0?Ot:void 0);if(!l(Wt)||Wt.length===0){_t("buildVectorGltfFromMVT-triangulation-failed","Polygon triangulation failed; skipping polygon.");continue}let Cn=q.length/3,dt=ye.length;le.push(Cn),Ce.push(dt),ge.push(Ot.length);for(let mt=0;mt<Ot.length;mt++)Ee.push(Cn+Ot[mt]);for(let mt=0;mt<on.length;mt++)q.push(on[mt]);for(let mt=0;mt<on.length/3;mt++)de.push(je);for(let mt=0;mt<Wt.length;mt++)ye.push(Wt[mt]+Cn);Re++}}}if(w.length===0&&K.length===0&&q.length===0)continue;H.length>0&&H[H.length-1]===p&&H.pop();let Xe=[];if(w.length>0){let nt=new Float32Array(w),je=E(nt),Ie={POSITION:G(nt,{type:"VEC3",componentType:J.FLOAT,target:ne.ARRAY_BUFFER,min:je.min,max:je.max})},Oe={CESIUM_mesh_vector:{vector:!0,count:nt.length/3}};v(Ie,Oe,z),Xe.push({mode:ve.POINTS,attributes:Ie,extensions:Oe})}if(K.length>0&&H.length>1){let nt=new Float32Array(K),je=new Uint32Array(H),et=E(nt),Ie=G(nt,{type:"VEC3",componentType:J.FLOAT,target:ne.ARRAY_BUFFER,min:et.min,max:et.max}),Oe=G(je,{type:"SCALAR",componentType:J.UNSIGNED_INT,target:ne.ELEMENT_ARRAY_BUFFER}),St={POSITION:Ie},Et={CESIUM_mesh_vector:{vector:!0,count:te}};v(St,Et,ee),Xe.push({mode:ve.LINE_STRIP,indices:Oe,attributes:St,extensions:Et})}if(q.length>0&&ye.length>=3){let nt=new Float32Array(q),je=new Uint32Array(ye),et=new Uint32Array(le),Ie=new Uint32Array(Ce),Oe=Ee.length>0,St=Oe?new Uint32Array(ge):void 0,Et=Oe?new Uint32Array(Ee):void 0,on=E(nt),Ot=G(nt,{type:"VEC3",componentType:J.FLOAT,target:ne.ARRAY_BUFFER,min:on.min,max:on.max}),gt=G(je,{type:"SCALAR",componentType:J.UNSIGNED_INT,target:ne.ELEMENT_ARRAY_BUFFER}),Wt=G(et,{type:"SCALAR",componentType:J.UNSIGNED_INT,target:ne.ARRAY_BUFFER}),Cn=G(Ie,{type:"SCALAR",componentType:J.UNSIGNED_INT,target:ne.ARRAY_BUFFER}),dt=l(St)?G(St,{type:"SCALAR",componentType:J.UNSIGNED_INT,target:ne.ARRAY_BUFFER}):void 0,mt=l(Et)?G(Et,{type:"SCALAR",componentType:J.UNSIGNED_INT,target:ne.ARRAY_BUFFER}):void 0,Qn={POSITION:Ot},Yn={CESIUM_mesh_vector:{vector:!0,count:Re,polygonAttributeOffsets:Wt,polygonIndicesOffsets:Cn}};Oe&&(Yn.CESIUM_mesh_vector.polygonHoleCounts=dt,Yn.CESIUM_mesh_vector.polygonHoleOffsets=mt),v(Qn,Yn,de),Xe.push({mode:ve.TRIANGLES,indices:gt,attributes:Qn,extensions:Yn})}if(Xe.length===0)continue;let we=Y.length;Y.push({primitives:Xe}),g.push({name:M.name,mesh:we,translation:C})}if(g.length===0)return;let V=X(),L=fXt(S,A),P=["CESIUM_mesh_vector"];b.size>0&&P.push("EXT_mesh_features"),l(V)&&P.push("EXT_structural_metadata");let N=g.map((M,D)=>D),O={asset:{version:"2.0"},extensionsUsed:P,scene:0,scenes:[{nodes:N}],nodes:g,meshes:Y,accessors:_,bufferViews:y,buffers:[{byteLength:L.byteLength}],extensions:void 0};return l(V)&&(O.extensions={EXT_structural_metadata:V}),hXt(O,L)}function cXt(e,t){let n=t.get(e);return l(n)||(n=t.size,t.set(e,n)),n}function lXt(e,t,n){let i=e.properties;if(!l(i))return;let o=i[t];if(!l(o)||typeof o!="string"&&typeof o!="number"&&typeof o!="boolean"||typeof o=="number"&&!Number.isFinite(o))return;let r=`${typeof o}:${o}`,s=n.get(r);return l(s)||(s=n.size,n.set(r,s)),s}function dXt(e){let t=[];for(let n of e){let i=mXt(n);if(i.length<3)continue;uXt(i)<=0?t.push({outerRing:i,holes:[]}):t.length>0&&t[t.length-1].holes.push(i)}return t}function uXt(e){let t=0;for(let n=0,i=e.length-1;n<e.length;i=n++)t+=(e[i].x+e[n].x)*(e[i].y-e[n].y);return t/2}function mXt(e){return e.length>1&&e[0].x===e[e.length-1].x&&e[0].y===e[e.length-1].y?e.slice(0,e.length-1):e}function toe(e,t,n,i,o,r,s,a){let c=1<<i,d=(t+e.x/o)/c,u=(n+e.y/o)/c,m=d*2*Math.PI-Math.PI,p=Math.atan(Math.sinh(Math.PI*(1-2*u)));h.fromRadians(m,p,r,void 0,UWe),h.subtract(UWe,s,kz),a.push(kz.x,kz.y,kz.z)}function hXt(e,t){let s=new TextEncoder().encode(JSON.stringify(e)),a=Math.ceil(s.length/4)*4,c=new Uint8Array(a);c.fill(32),c.set(s);let d=Math.ceil(t.byteLength/4)*4,u=new Uint8Array(d);u.set(t);let m=20+a+8+d,p=new Uint8Array(m),b=new DataView(p.buffer),f=0;return b.setUint32(f,1179937895,!0),f+=4,b.setUint32(f,2,!0),f+=4,b.setUint32(f,m,!0),f+=4,b.setUint32(f,a,!0),f+=4,b.setUint32(f,1313821514,!0),f+=4,p.set(c,f),f+=a,b.setUint32(f,d,!0),f+=4,b.setUint32(f,5130562,!0),f+=4,p.set(u,f),p}function fXt(e,t){let n=new Uint8Array(t),i=0;for(let o of e)n.set(o,i),i+=o.byteLength;return n}var s9=aXt;var xEo=x(T(),1);var pXt=new TextDecoder,Uz={UNKNOWN:0,POINT:1,LINESTRING:2,POLYGON:3},bXt={LAYERS:3},a9={NAME:1,FEATURES:2,KEYS:3,VALUES:4,EXTENT:5},noe={TAGS:2,TYPE:3,GEOMETRY:4},NA={STRING:1,FLOAT:2,DOUBLE:3,INT64:4,UINT64:5,SINT64:6,BOOL:7},gXt=["Unknown","Point","LineString","Polygon"];function yXt(e){let t=new Uint8Array(e),n=[],i=0;for(;i<t.length;){let o=Dz(t,i,t.length),r=o.fieldNumber,s=o.wireType;if(i=o.newPos,r===bXt.LAYERS&&s===2){let a=Lg(t,i,t.length);i=a.newPos;let c=Hd(i,a.value,t.length,"layer");n.push(xXt(t,i,c)),i=c}else i=Oz(t,i,s,t.length)}return{layers:n}}function xXt(e,t,n){let i=t,o="",r=4096,s=[],a=[],c=[];for(;i<n;){let u=Dz(e,i,n),m=u.fieldNumber,p=u.wireType;if(i=u.newPos,m===a9.NAME&&p===2){let b=Lg(e,i,n);i=b.newPos;let f=Hd(i,b.value,n,"layer name");o=ooe(e,i,b.value),i=f}else if(m===a9.FEATURES&&p===2){let b=Lg(e,i,n);i=b.newPos;let f=Hd(i,b.value,n,"feature");c.push({start:i,end:f}),i=f}else if(m===a9.KEYS&&p===2){let b=Lg(e,i,n);i=b.newPos;let f=Hd(i,b.value,n,"key");s.push(ooe(e,i,b.value)),i=f}else if(m===a9.VALUES&&p===2){let b=Lg(e,i,n);i=b.newPos;let f=Hd(i,b.value,n,"value"),y=SXt(e,i,f);a.push(y),i=f}else if(m===a9.EXTENT&&p===0){let b=mV(e,i,n);r=b.value,i=b.newPos}else i=Oz(e,i,p,n)}let d=c.map(({start:u,end:m})=>TXt(e,u,m,s,a));return{name:o,extent:r,features:d}}function TXt(e,t,n,i,o){let r=t,s=Uz.UNKNOWN,a=[],c=[];for(;r<n;){let m=Dz(e,r,n),p=m.fieldNumber,b=m.wireType;if(r=m.newPos,p===noe.TYPE&&b===0){let f=mV(e,r,n);s=f.value,r=f.newPos}else if(p===noe.TAGS&&b===2){let f=Lg(e,r,n);r=f.newPos;let y=Hd(r,f.value,n,"feature tags");for(;r<y;){let _=mV(e,r,y);a.push(_.value),r=_.newPos}}else if(p===noe.GEOMETRY&&b===2){let f=Lg(e,r,n);r=f.newPos;let y=Hd(r,f.value,n,"feature geometry");for(;r<y;){let _=mV(e,r,y);c.push(_.value),r=_.newPos}}else r=Oz(e,r,b,n)}let d={};for(let m=0;m<a.length-1;m+=2){let p=i[a[m]],b=o[a[m+1]];typeof p!="string"||b===void 0||(d[p]=b)}let u=_Xt(s,c);return{type:gXt[s]??"Unknown",geometry:u,properties:d}}function _Xt(e,t){let n=0,i=0,o=0;if(e===Uz.POINT){let r=[];for(;n<t.length;){let s=t[n++],a=s&7,c=s>>3;if(a===1)for(let d=0;d<c;d++)i+=p0(t[n++]),o+=p0(t[n++]),r.push({x:i,y:o})}return r}if(e===Uz.LINESTRING){let r=[],s=null;for(;n<t.length;){let a=t[n++],c=a&7,d=a>>3;if(c===1)s!==null&&r.push(s),s=[],i+=p0(t[n++]),o+=p0(t[n++]),s.push({x:i,y:o});else if(c===2)for(let u=0;u<d;u++)i+=p0(t[n++]),o+=p0(t[n++]),s.push({x:i,y:o})}return s!==null&&r.push(s),r}if(e===Uz.POLYGON){let r=[],s=null;for(;n<t.length;){let a=t[n++],c=a&7,d=a>>3;if(c===1)s!==null&&r.push(s),s=[],i+=p0(t[n++]),o+=p0(t[n++]),s.push({x:i,y:o});else if(c===2)for(let u=0;u<d;u++)i+=p0(t[n++]),o+=p0(t[n++]),s.push({x:i,y:o});else c===7&&s!==null&&s.length>0&&(s.push({x:s[0].x,y:s[0].y}),r.push(s),s=null)}return s!==null&&r.push(s),r}return[]}function SXt(e,t,n){let i=t;for(;i<n;){let o=Dz(e,i,n),r=o.fieldNumber,s=o.wireType;if(i=o.newPos,r===NA.STRING&&s===2){let a=Lg(e,i,n);i=a.newPos;let c=Hd(i,a.value,n,"string value");return ooe(e,i,c-i)}else{if(r===NA.FLOAT&&s===5)return Hd(i,4,n,"float value"),new DataView(e.buffer,e.byteOffset+i,4).getFloat32(0,!0);if(r===NA.DOUBLE&&s===1)return Hd(i,8,n,"double value"),new DataView(e.buffer,e.byteOffset+i,8).getFloat64(0,!0);if(r===NA.INT64&&s===0){let a=hV(e,i,n);return ioe(a.value)}else if(r===NA.UINT64&&s===0){let a=hV(e,i,n);return ioe(a.value)}else if(r===NA.SINT64&&s===0){let a=hV(e,i,n);return ioe(AXt(a.value))}else if(r===NA.BOOL&&s===0)return mV(e,i,n).value!==0}i=Oz(e,i,s,n)}}function Dz(e,t,n){let i=mV(e,t,n);return{fieldNumber:i.value>>>3,wireType:i.value&7,newPos:i.newPos}}function mV(e,t,n){let i=hV(e,t,n,5);if(i.value>0xffffffffn)throw new ae("Invalid MVT uint32 varint.");return{value:Number(i.value),newPos:i.newPos}}function Lg(e,t,n){let i=hV(e,t,n);if(i.value>BigInt(Number.MAX_SAFE_INTEGER))throw new ae("Invalid MVT length varint.");return{value:Number(i.value),newPos:i.newPos}}function hV(e,t,n,i){let o=0n,r=0n,s=0,a=i??10;for(;;){if(t>=n||t>=e.length)throw new ae("Invalid MVT: truncated varint.");let c=e[t++];if(o|=BigInt(c&127)<<r,s++,(c&128)===0)break;if(s>=a)throw new ae("Invalid MVT: varint is too long.");r+=7n}return{value:o,newPos:t}}function ooe(e,t,n){let i=Hd(t,n,e.length,"string");return pXt.decode(e.subarray(t,i))}function Hd(e,t,n,i){if(!Number.isFinite(t)||t<0)throw new ae(`Invalid MVT ${i}: invalid length.`);let o=e+t;if(!Number.isFinite(o)||o<e||o>n)throw new ae(`Invalid MVT ${i}: length exceeds available bytes.`);return o}function Oz(e,t,n,i){if(n===0)return hV(e,t,i).newPos;if(n===1)return Hd(t,8,i,"fixed64 field");if(n===2){let o=Lg(e,t,i);return Hd(o.newPos,o.value,i,"length-delimited field")}else if(n===5)return Hd(t,4,i,"fixed32 field");throw new ae(`Unsupported protobuf wire type: ${n}`)}function p0(e){return e>>>1^-(e&1)}function AXt(e){return e>>1n^-(e&1n)}function ioe(e){return e<=BigInt(Number.MAX_SAFE_INTEGER)&&e>=BigInt(Number.MIN_SAFE_INTEGER)?Number(e):e}var c9=yXt;var Bz=class extends r9{static async fromUrl(t,n){return super.fromUrl(t,n)}_createTilesetLoadOptions(){return{skipLevelOfDetail:!1,enablePick:!0,featureIdLabel:"featureId_0",instanceFeatureIdLabel:"instanceFeatureId_0"}}_configureTileset(t){t._modelUpAxis=Xi.Z,t._modelForwardAxis=Xi.X}_createCodec(){let t=this._featureIdProperty;return{contentType:"mvt",missingTilePolicy:{statusCodes:[404,204]},createContent:async(n,i,o,r)=>{let s=c9(r),a=DWe(o.getUrlComponent(!0)),c=s9(s,a,{featureIdProperty:t});if(!l(c)){if(!ZXt(s))return new Sp(n,i);throw new ae("Decoded MVT tile did not produce vector glTF content.")}return By.fromGltf(n,i,o,c)}}}};function DWe(e){let t=e.match(/\/(\d+)\/(\d+)\/(\d+)(?:\.[^/?#]+)?(?:[?#]|$)/i);return t?{tileZ:parseInt(t[1],10),tileX:parseInt(t[2],10),tileY:parseInt(t[3],10)}:(_t("MVTDataProvider.parseTileCoordinates",`MVT tile URL did not match /{z}/{x}/{y} pattern. Falling back to z/x/y = 0/0/0. URL: ${e}`),{tileZ:0,tileX:0,tileY:0})}function ZXt(e){let t=e.layers;for(let n=0;n<t.length;n++)if(t[n].features.length>0)return!0;return!1}Bz._parseTileCoordinates=DWe;var roe=Bz;var YEo=x(T(),1);var CXt=/\/$/,OWe=new Rt('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function fV(e){e=e??B.EMPTY_OBJECT;let t=e.styleId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=We.createIfNeeded(e.url??"https://api.mapbox.com/styles/v1/");this._styleId=t,this._accessToken=n;let o=e.tilesize??512;this._tilesize=o;let r=e.username??"mapbox";this._username=r;let s=l(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();CXt.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;l(e.credit)?(c=e.credit,typeof c=="string"&&(c=new Rt(c))):c=OWe,this._resource=i,this._imageryProvider=new ds({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(fV.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});fV.prototype.getTileCredits=function(e,t,n){};fV.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};fV.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};fV._defaultCredit=OWe;var soe=fV;var wEo=x(T(),1);function aoe(e){}aoe.prototype.isReady=function(){return!0};aoe.prototype.shouldDiscardImage=function(e){return!1};var coe=aoe;var KEo=x(T(),1);var RXt=new Rt("MapQuest, Open Street Map and contributors, CC-BY-SA");function zz(e){e=e??B.EMPTY_OBJECT;let t=We.createIfNeeded(e.url??"https://tile.openstreetmap.org/");t.appendForwardSlash(),t.url+=`{z}/{x}/{y}${e.retinaTiles?"@2x":""}.${e.fileExtension??"png"}`;let n=new Zr({ellipsoid:e.ellipsoid}),i=256,o=256,r=e.minimumLevel??0,s=e.maximumLevel,a=e.rectangle??n.rectangle,c=n.positionToTileXY(se.southwest(a),r),d=n.positionToTileXY(se.northeast(a),r),u=(Math.abs(d.x-c.x)+1)*(Math.abs(d.y-c.y)+1),m=e.credit??RXt;typeof m=="string"&&(m=new Rt(m)),ds.call(this,{url:t,credit:m,tilingScheme:n,tileWidth:i,tileHeight:o,minimumLevel:r,maximumLevel:s,rectangle:a})}l(Object.create)&&(zz.prototype=Object.create(ds.prototype),zz.prototype.constructor=zz);var Wg=zz;var QEo=x(T(),1);function BWe(){Te.throwInstantiationError()}Object.defineProperties(BWe.prototype,{show:{get:Te.throwInstantiationError,set:Te.throwInstantiationError},transform:{get:Te.throwInstantiationError},credit:{get:Te.throwInstantiationError}});var loe=BWe;var eLo=x(T(),1);function Hz(){Te.throwInstantiationError()}Object.defineProperties(Hz.prototype,{});Hz.fromUrl=function(e){Te.throwInstantiationError()};Hz.prototype.loadPanorama=function(e){Te.throwInstantiationError()};var doe=Hz;var aLo=x(T(),1);var VXt=new k(1,1);function uoe(e){e=e??B.EMPTY_OBJECT,this.mass=e.mass??1,this.position=h.clone(e.position??h.ZERO),this.velocity=h.clone(e.velocity??h.ZERO),this.life=e.life??Number.MAX_VALUE,this.image=e.image,this.startColor=U.clone(e.startColor??U.WHITE),this.endColor=U.clone(e.endColor??U.WHITE),this.startScale=e.startScale??1,this.endScale=e.endScale??1,this.imageSize=k.clone(e.imageSize??VXt),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(uoe.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var zWe=new h;uoe.prototype.update=function(e,t){return h.multiplyByScalar(this.velocity,e,zWe),h.add(this.position,zWe,this.position),l(t)&&t(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life};var pV=uoe;var dLo=x(T(),1);function HWe(e){e=e??B.EMPTY_OBJECT,this.time=e.time??0,this.minimum=e.minimum??0,this.maximum=e.maximum??50,this._complete=!1}Object.defineProperties(HWe.prototype,{complete:{get:function(){return this._complete}}});var moe=HWe;var hLo=x(T(),1);function KWe(e){}KWe.prototype.emit=function(e){Te.throwInstantiationError()};var hoe=KWe;var GLo=x(T(),1);var JWe=new k(1,1);function l9(e){e=e??B.EMPTY_OBJECT,this.show=e.show??!0,this.updateCallback=e.updateCallback,this.loop=e.loop??!0,this.image=e.image??void 0;let t=e.emitter;l(t)||(t=new Dk(.5)),this._emitter=t,this._bursts=e.bursts,this._modelMatrix=F.clone(e.modelMatrix??F.IDENTITY),this._emitterModelMatrix=F.clone(e.emitterModelMatrix??F.IDENTITY),this._matrixDirty=!0,this._combinedMatrix=new F,this._startColor=U.clone(e.color??e.startColor??U.WHITE),this._endColor=U.clone(e.color??e.endColor??U.WHITE),this._startScale=e.scale??e.startScale??1,this._endScale=e.scale??e.endScale??1,this._emissionRate=e.emissionRate??5,this._minimumSpeed=e.speed??e.minimumSpeed??1,this._maximumSpeed=e.speed??e.maximumSpeed??1,this._minimumParticleLife=e.particleLife??e.minimumParticleLife??5,this._maximumParticleLife=e.particleLife??e.maximumParticleLife??5,this._minimumMass=e.mass??e.minimumMass??1,this._maximumMass=e.mass??e.maximumMass??1,this._minimumImageSize=k.clone(e.imageSize??e.minimumImageSize??JWe),this._maximumImageSize=k.clone(e.imageSize??e.maximumImageSize??JWe),this._sizeInMeters=e.sizeInMeters??!1,this._lifetime=e.lifetime??Number.MAX_VALUE,this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new Se,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}Object.defineProperties(l9.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!F.equals(this._modelMatrix,e),F.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!F.equals(this._emitterModelMatrix,e),F.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){U.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){U.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});function GXt(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,o=e._bursts;if(l(o)){let m=o.length;for(let p=0;p<m;++p)i+=o[p].maximum}let r=e._billboardCollection,s=e.image,a=Math.ceil(t*n+i),c=e._particles,d=e._particlePool,u=Math.max(a-c.length-d.length,0);for(let m=0;m<u;++m){let p=new pV;p._billboard=r.add({image:s,show:!1}),d.push(p)}e._particleEstimate=a}function EXt(e){let t=e._particlePool.pop();return l(t)||(t=new pV),t}function LXt(e,t){e._particlePool.push(t)}function WXt(e){let t=e._particles,n=e._particlePool,i=e._billboardCollection,o=t.length,r=n.length,s=e._particleEstimate,a=r-Math.max(s-o-r,0);for(let c=a;c<r;++c){let d=n[c];i.remove(d._billboard)}n.length=a}function vXt(e){l(e._billboard)&&(e._billboard.show=!1)}function jWe(e,t){let n=t._billboard;l(n)||(n=t._billboard=e._billboardCollection.add({image:t.image})),n.width=t.imageSize.x,n.height=t.imageSize.y,n.position=t.position,n.sizeInMeters=e.sizeInMeters,n.show=!0;let i=W.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),o=W.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),r=W.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=W.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new U(i,o,r,s),n.scale=W.lerp(t.startScale,t.endScale,t.normalizedAge)}function FXt(e,t){t.startColor=U.clone(e._startColor,t.startColor),t.endColor=U.clone(e._endColor,t.endColor),t.startScale=e._startScale,t.endScale=e._endScale,t.image=e.image,t.life=W.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=W.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=W.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=W.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=W.randomBetween(e._minimumSpeed,e._maximumSpeed);h.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function IXt(e,t){if(e._isComplete)return 0;t=W.mod(t,e._lifetime);let n=t*e._emissionRate,i=Math.floor(n);if(e._carryOver+=n-i,e._carryOver>1&&(i++,e._carryOver-=1),l(e.bursts)){let o=e.bursts.length;for(let r=0;r<o;r++){let s=e.bursts[r],a=e._currentTime;l(s)&&!s._complete&&a>s.time&&(i+=W.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var Kz=new h;l9.prototype.update=function(e){if(!this.show)return;l(this._billboardCollection)||(this._billboardCollection=new bu),this._updateParticlePool&&(GXt(this),this._updateParticlePool=!1);let t=0;this._previousTime&&(t=Q.secondsDifference(e.time,this._previousTime)),t<0&&(t=0);let n=this._particles,i=this._emitter,o=this.updateCallback,r,s,a=n.length;for(r=0;r<a;++r)s=n[r],s.update(t,o)?jWe(this,s):(vXt(s),LXt(this,s),n[r]=n[a-1],--r,--a);n.length=a;let c=IXt(this,t);if(c>0&&l(i)){this._matrixDirty&&(this._combinedMatrix=F.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let d=this._combinedMatrix;for(r=0;r<c;r++)s=EXt(this),this._emitter.emit(s),h.add(s.position,s.velocity,Kz),F.multiplyByPoint(d,Kz,Kz),s.position=F.multiplyByPoint(d,s.position,s.position),h.subtract(Kz,s.position,s.velocity),h.normalize(s.velocity,s.velocity),FXt(this,s),jWe(this,s)}if(this._billboardCollection.update(e),this._previousTime=Q.clone(e.time,this._previousTime),this._currentTime+=t,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=W.mod(this._currentTime,this._lifetime),this.bursts){let d=this.bursts.length;for(r=0;r<d;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&WXt(this)};l9.prototype.isDestroyed=function(){return!1};l9.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),he(this)};var foe=l9;var WLo=x(T(),1);var poe=class{constructor(){lt(this,"quadtree");lt(this,"tilingScheme");lt(this,"errorEvent");Te.throwInstantiationError()}static computeDefaultLevelZeroMaximumGeometricError(t){return t.ellipsoid.maximumRadius*2*Math.PI*.25/(65*t.getNumberOfXTilesAtLevel(0))}update(t,n){Te.throwInstantiationError()}beginUpdate(t,n,i){Te.throwInstantiationError()}endUpdate(t,n,i){Te.throwInstantiationError()}getLevelMaximumGeometricError(t){Te.throwInstantiationError()}loadTile(t,n,i){Te.throwInstantiationError()}computeTileVisibility(t,n,i){Te.throwInstantiationError()}showTileThisFrame(t,n,i,o){Te.throwInstantiationError()}computeDistanceToTile(t,n){Te.throwInstantiationError()}isDestroyed(){Te.throwInstantiationError()}destroy(){Te.throwInstantiationError()}},boe=poe;var XLo=x(T(),1);function goe(e){e=e??1,this._radius=e??1}Object.defineProperties(goe.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});goe.prototype.emit=function(e){let t=W.randomBetween(0,W.TWO_PI),n=W.randomBetween(0,W.PI),i=W.randomBetween(0,this._radius),o=i*Math.cos(t)*Math.sin(n),r=i*Math.sin(t)*Math.sin(n),s=i*Math.cos(n);e.position=h.fromElements(o,r,s,e.position),e.velocity=h.normalize(e.position,e.velocity)};var yoe=goe;var wLo=x(T(),1);function d9(){}d9.prototype.evaluate=function(e,t){Te.throwInstantiationError()};d9.prototype.evaluateColor=function(e,t){Te.throwInstantiationError()};d9.prototype.getShaderFunction=function(e,t,n,i){Te.throwInstantiationError()};d9.prototype.getVariables=function(){Te.throwInstantiationError()};var xoe=d9;var OLo=x(T(),1);function bV(e){this._ready=!1,this._provider=void 0,this._errorEvent=new Se,this._readyEvent=new Se,XXt(this,e)}Object.defineProperties(bV.prototype,{errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}}});bV.fromWorldTerrain=function(e){return new bV(WA(e))};bV.fromWorldBathymetry=function(e){return new bV(vk(e))};function PXt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function XXt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){PXt(e._errorEvent,i)}}var u9=bV;var HLo=x(T(),1);function gV(){}gV.prototype.boundingVolume=void 0;gV.prototype.boundingSphere=void 0;gV.prototype.distanceToCamera=function(e){Te.throwInstantiationError()};gV.prototype.intersectPlane=function(e){Te.throwInstantiationError()};gV.prototype.createDebugVolume=function(e){Te.throwInstantiationError()};var Toe=gV;var eWo=x(T(),1);function m9(e){e=e??B.EMPTY_OBJECT,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Oi({ellipsoid:e.ellipsoid}),this._color=e.color??U.YELLOW,this._errorEvent=new Se,this._tileWidth=e.tileWidth??256,this._tileHeight=e.tileHeight??256,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0}Object.defineProperties(m9.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});m9.prototype.getTileCredits=function(e,t,n){};m9.prototype.requestImage=function(e,t,n,i){let o=document.createElement("canvas");o.width=256,o.height=256;let r=o.getContext("2d"),s=this._color.toCssColorString();return r.strokeStyle=s,r.lineWidth=2,r.strokeRect(1,1,255,255),r.font="bold 25px Arial",r.textAlign="center",r.fillStyle=s,r.fillText(`L: ${n}`,124,86),r.fillText(`X: ${e}`,124,136),r.fillText(`Y: ${t}`,124,186),Promise.resolve(o)};m9.prototype.pickFeatures=function(e,t,n,i,o){};var h9=m9;var iWo=x(T(),1);function _oe(e){Te.throwInstantiationError()}_oe.prototype.isReady=Te.throwInstantiationError;_oe.prototype.shouldDiscardImage=Te.throwInstantiationError;var Soe=_oe;var rWo=x(T(),1),QWe={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3};Object.freeze(QWe);var Aoe=QWe;var gWo=x(T(),1);function Jz(e,t){this.show=!0,l(e)||(e=new it),this.rectangle=it.clone(e),l(t)||(t=Di.fromType(Di.ColorType,{color:new U(1,1,1,1)})),this.material=t,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}Jz.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!l(t)||!it.equals(t.viewport,this.rectangle))&&(this._rs=Be.fromCache({blending:nn.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!l(this._overlayCommand)){this._material=this.material,l(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let o=new He({sources:[this._material.shaderSource,wk]});this._overlayCommand=i.createViewportQuadCommand(o,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=Le.OVERLAY}this._material.update(i),this._overlayCommand.renderState=this._rs,this._overlayCommand.uniformMap=this._material._uniforms,e.commandList.push(this._overlayCommand)}};Jz.prototype.isDestroyed=function(){return!1};Jz.prototype.destroy=function(){return l(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),he(this)};var Zoe=Jz;var TWo=x(T(),1);var Coe=class{constructor(){lt(this,"globalTransform");lt(this,"shapeTransform");lt(this,"shape");lt(this,"minBounds");lt(this,"maxBounds");lt(this,"dimensions");lt(this,"paddingBefore");lt(this,"paddingAfter");lt(this,"names");lt(this,"types");lt(this,"componentTypes");lt(this,"minimumValues");lt(this,"maximumValues");lt(this,"maximumTileCount");lt(this,"availableLevels");lt(this,"keyframeCount");lt(this,"timeIntervalCollection");Te.throwInstantiationError()}requestData(t){Te.throwInstantiationError()}},Roe=Coe;var ZWo=x(T(),1);function vg(){Te.throwInstantiationError()}Object.defineProperties(vg.prototype,{orientedBoundingBox:{get:Te.throwInstantiationError},boundingSphere:{get:Te.throwInstantiationError},boundTransform:{get:Te.throwInstantiationError},shapeTransform:{get:Te.throwInstantiationError},shaderUniforms:{get:Te.throwInstantiationError},shaderDefines:{get:Te.throwInstantiationError},shaderMaximumIntersectionsLength:{get:Te.throwInstantiationError}});vg.prototype.update=Te.throwInstantiationError;vg.prototype.updateViewTransforms=Te.throwInstantiationError;vg.prototype.convertLocalToShapeUvSpace=Te.throwInstantiationError;vg.prototype.computeOrientedBoundingBoxForTile=Te.throwInstantiationError;vg.prototype.computeOrientedBoundingBoxForSample=Te.throwInstantiationError;vg.DefaultMinBounds=Te.throwInstantiationError;vg.DefaultMaxBounds=Te.throwInstantiationError;var Voe=vg;var MWo=x(T(),1);var YXt=new U,NXt=new U,wXt=new U,MXt=new U,qWe=new ce,f9=new Uint8Array(4);function $We(e,t,n,i){let o=t.height===n.height?0:(e-t.height)/(n.height-t.height);return U.lerp(t.color,n.color,o,i)}function jz(e,t){return{height:e,color:U.clone(t)}}function eve(e){return e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?t.height===i[n-1].height:!0,a=r?t.height===i[n+1].height:!0;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?U.equals(t.color,i[n-1].color):!1,a=r?U.equals(t.color,i[n+1].color):!1;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=o?U.equals(t.color,i[n-1].color):!1,s=o?t.height===i[n-1].height:!0;return!r||!s}),e}function kXt(e){let t,n,i=[],o=e.length;for(t=0;t<o;t++){let r=e[t],s=r.entries,a=s.length,c=[];for(n=0;n<a;n++){let b=s[n],f=W.clamp(b.height,Kd._minimumHeight,Kd._maximumHeight),y=U.clone(b.color,YXt);y.red*=y.alpha,y.green*=y.alpha,y.blue*=y.alpha,c.push(jz(f,y))}let d=!0,u=!0;for(n=0;n<a-1;n++){let b=c[n+0],f=c[n+1];d=d&&b.height<=f.height,u=u&&b.height>=f.height}u?c=c.reverse():d||Qp(c,function(b,f){return W.sign(b.height-f.height)});let m=r.extendDownwards??!1,p=r.extendUpwards??!1;c.length===1&&!m&&!p&&(m=!0,p=!0),m&&c.splice(0,0,jz(Kd._minimumHeight,c[0].color)),p&&c.splice(c.length,0,jz(Kd._maximumHeight,c[c.length-1].color)),c=eve(c),i.push(c)}return i}function UXt(e){let t=kXt(e),n=[],i=[],o;function r(d,u){n.push(jz(d,u))}function s(d,u,m){let p=U.multiplyByScalar(m,1-u.alpha,MXt);p=U.add(p,u,p),r(d,p)}let a=t.length;for(o=0;o<a;o++){let d=t[o],u=0,m=0;i=n,n=[];let p=d.length,b=i.length;for(;u<p||m<b;){let f=u<p?d[u]:void 0,y=u>0?d[u-1]:void 0,_=u<p-1?d[u+1]:void 0,S=m<b?i[m]:void 0,A=m>0?i[m-1]:void 0,Z=m<b-1?i[m+1]:void 0;if(l(f)&&l(S)&&f.height===S.height){let R=l(Z)&&S.height===Z.height,G=!l(A),E=!l(Z),v=l(_)&&f.height===_.height,I=!l(y),X=!l(_);R?v?(s(f.height,f.color,S.color),s(f.height,_.color,Z.color)):I?(r(f.height,S.color),s(f.height,f.color,Z.color)):X?(s(f.height,f.color,S.color),r(f.height,Z.color)):(s(f.height,f.color,S.color),s(f.height,f.color,Z.color)):G?v?(r(f.height,f.color),s(f.height,_.color,S.color)):X?(r(f.height,f.color),r(f.height,S.color)):(I||r(f.height,f.color),s(f.height,f.color,S.color)):E?v?(s(f.height,f.color,S.color),r(f.height,_.color)):I?(r(f.height,S.color),r(f.height,f.color)):X?s(f.height,f.color,S.color):(s(f.height,f.color,S.color),r(f.height,f.color)):v?(s(f.height,f.color,S.color),s(f.height,_.color,S.color)):I?(r(f.height,S.color),s(f.height,f.color,S.color)):X?(s(f.height,f.color,S.color),r(f.height,S.color)):s(f.height,f.color,S.color),u+=v?2:1,m+=R?2:1}else if(l(f)&&l(S)&&l(A)&&f.height<S.height){let R=$We(f.height,A,S,wXt);l(y)?l(_)?s(f.height,f.color,R):(s(f.height,f.color,R),r(f.height,R)):(r(f.height,R),s(f.height,f.color,R)),u++}else if(l(S)&&l(f)&&l(y)&&S.height<f.height){let R=$We(S.height,y,f,NXt);l(A)?l(Z)?s(S.height,R,S.color):(s(S.height,R,S.color),r(S.height,R)):(r(S.height,R),s(S.height,R,S.color)),m++}else l(f)&&(!l(S)||f.height<S.height)?(l(S)&&!l(A)&&!l(_)?(r(f.height,f.color),r(f.height,Kd._emptyColor),r(S.height,Kd._emptyColor)):(!l(S)&&l(A)&&!l(y)&&(r(A.height,Kd._emptyColor),r(f.height,Kd._emptyColor)),r(f.height,f.color)),u++):l(S)&&(!l(f)||S.height<f.height)&&(r(S.height,S.color),m++)}}return eve(n)}function Kd(e){let{scene:t,layers:n}=e??B.EMPTY_OBJECT,{context:i}=t,o=UXt(n),r=o.length,s,a,c;if(!Kd._useFloatTexture(i)){a=ze.UNSIGNED_BYTE,c=Qe.RGBA,s=new Uint8Array(r*4);for(let b=0;b<r;b++)ce.packFloat(o[b].height,qWe),ce.pack(qWe,s,b*4)}else{a=ze.FLOAT,c=i.webgl2?Qe.RED:Qe.LUMINANCE,s=new Float32Array(r);for(let b=0;b<r;b++)s[b]=o[b].height}let u=Ft.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:r,height:1},sampler:new Ht({wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:Dt.NEAREST,magnificationFilter:qn.NEAREST})}),m=new Uint8Array(r*4);for(let b=0;b<r;b++)o[b].color.toBytes(f9),m[b*4+0]=f9[0],m[b*4+1]=f9[1],m[b*4+2]=f9[2],m[b*4+3]=f9[3];let p=Ft.create({context:i,pixelFormat:Qe.RGBA,pixelDatatype:ze.UNSIGNED_BYTE,source:{arrayBufferView:m,width:r,height:1},sampler:new Ht({wrapS:an.CLAMP_TO_EDGE,wrapT:an.CLAMP_TO_EDGE,minificationFilter:Dt.LINEAR,magnificationFilter:qn.LINEAR})});return Di.fromType("ElevationBand",{heights:u,colors:p})}Kd._useFloatTexture=function(e){return e.floatingPointTexture};Kd._maximumHeight=5906376425472;Kd._minimumHeight=-5906376425472;Kd._emptyColor=new U(0,0,0,0);var Goe=Kd;var JWo=x(T(),1);async function DXt(e,t){t=t??{},t.cacheBytes=t.cacheBytes??1536*1024*1024,t.maximumCacheOverflowBytes=t.maximumCacheOverflowBytes??1024*1024*1024,t.enableCollision=t.enableCollision??!0,e=e??B.EMPTY_OBJECT,e.onlyUsingWithGoogleGeocoder||_t("google-tiles-with-google-geocoder","Only the Google geocoder can be used with Google Photorealistic 3D Tiles. Set the `geocode` property of Viewer constructor options. You can set additionalOptions.onlyUsingWithGoogleGeocoder to hide this warning once you have configured the geocoder.");let n=e.key??ca.defaultApiKey;if(!l(n))return OXt(t);let i,o=ca.getDefaultCredit();l(o)&&(i=[o]);let r=new We({url:`${ca.mapTilesApiEndpoint}v1/3dtiles/root.json`,queryParameters:{key:n},credits:i});return ms.fromUrl(r,t)}var tve={};async function OXt(e){let i=tve[2275207];l(i)||(i=os.fromAssetId(2275207),tve[2275207]=i);let o=await i;return ms.fromUrl(o,e)}var Eoe=DXt;var nvo=x(T(),1);async function BXt(e){let t=await ms.fromIonAssetId(96188,e);e=e??B.EMPTY_OBJECT;let n=e.style;if(!l(n)){let i=(e.defaultColor??U.WHITE).toCssColorString();n=new Cb({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var Loe=BXt;var mvo=x(T(),1);function zXt(e){e=e??B.EMPTY_OBJECT;let t=[],n=e.geometry;(!l(n.attributes)||!l(n.primitiveType))&&(n=n.constructor.createGeometry(n));let i=n.attributes,o=F.clone(e.modelMatrix??F.IDENTITY),r=e.length??1e4;if(l(i.normal)&&t.push(new Pt({geometry:Un.createLineSegmentsForVectors(n,"normal",r),attributes:{color:new qt(1,0,0,1)},modelMatrix:o})),l(i.tangent)&&t.push(new Pt({geometry:Un.createLineSegmentsForVectors(n,"tangent",r),attributes:{color:new qt(0,1,0,1)},modelMatrix:o})),l(i.bitangent)&&t.push(new Pt({geometry:Un.createLineSegmentsForVectors(n,"bitangent",r),attributes:{color:new qt(0,0,1,1)},modelMatrix:o})),t.length>0)return new Wn({asynchronous:!1,geometryInstances:t,appearance:new pn({flat:!0,translucent:!1})})}var Woe=zXt;var fvo=x(T(),1),voe=`uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates)); + z_window = czm_reverseLogDepth(z_window); + float n_range = czm_depthRange.near; + float f_range = czm_depthRange.far; + float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range); + float scale = pow(z_ndc * 0.5 + 0.5, 8.0); + out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0); +} +`;var bvo=x(T(),1),nve={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4"};Object.freeze(nve);var Foe=nve;var yvo=x(T(),1),ive={SIGX:"SIGX",SIGY:"SIGY",SIGZ:"SIGZ",VARX:"VARX",VARY:"VARY",VARZ:"VARZ",SIGR:"VARZ"};Object.freeze(ive);var Ioe=ive;var _vo=x(T(),1);function HXt(e){async function t({data:i}){let o=[],r={id:i.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=i.baseUrl;try{let s=await e(i.parameters,o);r.result=s}catch(s){s instanceof Error?r.error={name:s.name,message:s.message,stack:s.stack}:r.error=s}i.canTransferArrayBuffer||(o.length=0);try{postMessage(r,o)}catch(s){r.result=void 0,r.error=`postMessage failed with error: ${pp(s)} + with responseMessage: ${JSON.stringify(r)}`,postMessage(r)}}function n(i){postMessage({id:i.data?.id,error:`postMessage failed with error: ${JSON.stringify(i)}`})}return self.onmessage=t,self.onmessageerror=n,self}var Poe=HXt;globalThis.CESIUM_VERSION="1.143.0";var N$o=x(T(),1);var pQo=x(T(),1);var uQo=x(T(),1);var nQo=x(T(),1),p9;typeof ko<"u"&&(p9=ko);(function(){/*! + * Knockout JavaScript library v3.5.1 + * (c) The Knockout.js team - http://knockoutjs.com/ + * License: MIT (http://www.opensource.org/licenses/mit-license.php) + */(function(){(function(e){var t=this||(0,eval)("this"),n=t.document,i=t.navigator,o=t.jQuery,r=t.JSON;o||typeof jQuery>"u"||(o=jQuery),(function(s){s(t.ko={})})(function(s,a){function c(g,C){return g===null||typeof g in y?g===C:!1}function d(g,C){var V;return function(){V||(V=f.a.setTimeout(function(){V=e,g()},C))}}function u(g,C){var V;return function(){clearTimeout(V),V=f.a.setTimeout(g,C)}}function m(g,C){C&&C!=="change"?C==="beforeChange"?this.pc(g):this.gb(g,C):this.qc(g)}function p(g,C){C!==null&&C.s&&C.s()}function b(g,C){var V=this.qd,L=V[R];L.ra||(this.Qb&&this.mb[C]?(V.uc(C,g,this.mb[C]),this.mb[C]=null,--this.Qb):L.I[C]||V.uc(C,g,L.J?{da:g}:V.$c(g)),g.Ja&&g.gd())}var f=typeof s<"u"?s:{};f.b=function(g,C){for(var V=g.split("."),L=f,P=0;P<V.length-1;P++)L=L[V[P]];L[V[V.length-1]]=C},f.L=function(g,C,V){g[C]=V},f.version="3.5.1",f.b("version",f.version),f.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},f.a=(function(){function g(H,te){for(var q in H)P.call(H,q)&&te(q,H[q])}function C(H,te){if(te)for(var q in te)P.call(te,q)&&(H[q]=te[q]);return H}function V(H,te){return H.__proto__=te,H}function L(H,te,q,de){var ye=H[te].match(K)||[];f.a.D(q.match(K),function(le){f.a.Na(ye,le,de)}),H[te]=ye.join(" ")}var P=Object.prototype.hasOwnProperty,N={__proto__:[]}instanceof Array,O=typeof Symbol=="function",M={},D={};M[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],M.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),g(M,function(H,te){if(te.length)for(var q=0,de=te.length;q<de;q++)D[te[q]]=H});var w={propertychange:!0},z=n&&(function(){for(var H=3,te=n.createElement("div"),q=te.getElementsByTagName("i");te.innerHTML="<!--[if gt IE "+ ++H+"]><i></i><![endif]-->",q[0];);return 4<H?H:e})(),K=/\S+/g,ee;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(H,te,q){for(var de=0,ye=H.length;de<ye;de++)te.call(q,H[de],de,H)},A:typeof Array.prototype.indexOf=="function"?function(H,te){return Array.prototype.indexOf.call(H,te)}:function(H,te){for(var q=0,de=H.length;q<de;q++)if(H[q]===te)return q;return-1},Lb:function(H,te,q){for(var de=0,ye=H.length;de<ye;de++)if(te.call(q,H[de],de,H))return H[de];return e},Pa:function(H,te){var q=f.a.A(H,te);0<q?H.splice(q,1):q===0&&H.shift()},wc:function(H){var te=[];return H&&f.a.D(H,function(q){0>f.a.A(te,q)&&te.push(q)}),te},Mb:function(H,te,q){var de=[];if(H)for(var ye=0,le=H.length;ye<le;ye++)de.push(te.call(q,H[ye],ye));return de},jb:function(H,te,q){var de=[];if(H)for(var ye=0,le=H.length;ye<le;ye++)te.call(q,H[ye],ye)&&de.push(H[ye]);return de},Nb:function(H,te){if(te instanceof Array)H.push.apply(H,te);else for(var q=0,de=te.length;q<de;q++)H.push(te[q]);return H},Na:function(H,te,q){var de=f.a.A(f.a.bc(H),te);0>de?q&&H.push(te):q||H.splice(de,1)},Ba:N,extend:C,setPrototypeOf:V,Ab:N?V:C,P:g,Ga:function(H,te,q){if(!H)return H;var de={},ye;for(ye in H)P.call(H,ye)&&(de[ye]=te.call(q,H[ye],ye,H));return de},Tb:function(H){for(;H.firstChild;)f.removeNode(H.firstChild)},Yb:function(H){H=f.a.la(H);for(var te=(H[0]&&H[0].ownerDocument||n).createElement("div"),q=0,de=H.length;q<de;q++)te.appendChild(f.oa(H[q]));return te},Ca:function(H,te){for(var q=0,de=H.length,ye=[];q<de;q++){var le=H[q].cloneNode(!0);ye.push(te?f.oa(le):le)}return ye},va:function(H,te){if(f.a.Tb(H),te)for(var q=0,de=te.length;q<de;q++)H.appendChild(te[q])},Xc:function(H,te){var q=H.nodeType?[H]:H;if(0<q.length){for(var de=q[0],ye=de.parentNode,le=0,Ce=te.length;le<Ce;le++)ye.insertBefore(te[le],de);for(le=0,Ce=q.length;le<Ce;le++)f.removeNode(q[le])}},Ua:function(H,te){if(H.length){for(te=te.nodeType===8&&te.parentNode||te;H.length&&H[0].parentNode!==te;)H.splice(0,1);for(;1<H.length&&H[H.length-1].parentNode!==te;)H.length--;if(1<H.length){var q=H[0],de=H[H.length-1];for(H.length=0;q!==de;)H.push(q),q=q.nextSibling;H.push(de)}}return H},Zc:function(H,te){7>z?H.setAttribute("selected",te):H.selected=te},Db:function(H){return H===null||H===e?"":H.trim?H.trim():H.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(H,te){return H=H||"",te.length>H.length?!1:H.substring(0,te.length)===te},vd:function(H,te){if(H===te)return!0;if(H.nodeType===11)return!1;if(te.contains)return te.contains(H.nodeType!==1?H.parentNode:H);if(te.compareDocumentPosition)return(te.compareDocumentPosition(H)&16)==16;for(;H&&H!=te;)H=H.parentNode;return!!H},Sb:function(H){return f.a.vd(H,H.ownerDocument.documentElement)},kd:function(H){return!!f.a.Lb(H,f.a.Sb)},R:function(H){return H&&H.tagName&&H.tagName.toLowerCase()},Ac:function(H){return f.onError?function(){try{return H.apply(this,arguments)}catch(te){throw f.onError&&f.onError(te),te}}:H},setTimeout:function(H,te){return setTimeout(f.a.Ac(H),te)},Gc:function(H){setTimeout(function(){throw f.onError&&f.onError(H),H},0)},B:function(H,te,q){var de=f.a.Ac(q);if(q=w[te],f.options.useOnlyNativeEvents||q||!o)if(q||typeof H.addEventListener!="function")if(typeof H.attachEvent<"u"){var ye=function(Ce){de.call(H,Ce)},le="on"+te;H.attachEvent(le,ye),f.a.K.za(H,function(){H.detachEvent(le,ye)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else H.addEventListener(te,de,!1);else ee||(ee=typeof o(H).on=="function"?"on":"bind"),o(H)[ee](te,de)},Fb:function(H,te){if(!H||!H.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var q;if(f.a.R(H)==="input"&&H.type&&te.toLowerCase()=="click"?(q=H.type,q=q=="checkbox"||q=="radio"):q=!1,f.options.useOnlyNativeEvents||!o||q)if(typeof n.createEvent=="function")if(typeof H.dispatchEvent=="function")q=n.createEvent(D[te]||"HTMLEvents"),q.initEvent(te,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,H),H.dispatchEvent(q);else throw Error("The supplied element doesn't support dispatchEvent");else if(q&&H.click)H.click();else if(typeof H.fireEvent<"u")H.fireEvent("on"+te);else throw Error("Browser doesn't support triggering events");else o(H).trigger(te)},f:function(H){return f.O(H)?H():H},bc:function(H){return f.O(H)?H.v():H},Eb:function(H,te,q){var de;te&&(typeof H.classList=="object"?(de=H.classList[q?"add":"remove"],f.a.D(te.match(K),function(ye){de.call(H.classList,ye)})):typeof H.className.baseVal=="string"?L(H.className,"baseVal",te,q):L(H,"className",te,q))},Bb:function(H,te){var q=f.a.f(te);(q===null||q===e)&&(q="");var de=f.h.firstChild(H);!de||de.nodeType!=3||f.h.nextSibling(de)?f.h.va(H,[H.ownerDocument.createTextNode(q)]):de.data=q,f.a.Ad(H)},Yc:function(H,te){if(H.name=te,7>=z)try{var q=H.name.replace(/[&<>'"]/g,function(de){return"&#"+de.charCodeAt(0)+";"});H.mergeAttributes(n.createElement("<input name='"+q+"'/>"),!1)}catch{}},Ad:function(H){9<=z&&(H=H.nodeType==1?H:H.parentNode,H.style&&(H.style.zoom=H.style.zoom))},wd:function(H){if(z){var te=H.style.width;H.style.width=0,H.style.width=te}},Pd:function(H,te){H=f.a.f(H),te=f.a.f(te);for(var q=[],de=H;de<=te;de++)q.push(de);return q},la:function(H){for(var te=[],q=0,de=H.length;q<de;q++)te.push(H[q]);return te},Da:function(H){return O?Symbol(H):H},Zd:z===6,$d:z===7,W:z,Lc:function(H,te){for(var q=f.a.la(H.getElementsByTagName("input")).concat(f.a.la(H.getElementsByTagName("textarea"))),de=typeof te=="string"?function(Ce){return Ce.name===te}:function(Ce){return te.test(Ce.name)},ye=[],le=q.length-1;0<=le;le--)de(q[le])&&ye.push(q[le]);return ye},Nd:function(H){return typeof H=="string"&&(H=f.a.Db(H))?r&&r.parse?r.parse(H):new Function("return "+H)():null},hc:function(H,te,q){if(!r||!r.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return r.stringify(f.a.f(H),te,q)},Od:function(H,te,q){q=q||{};var de=q.params||{},ye=q.includeFields||this.Jc,le=H;if(typeof H=="object"&&f.a.R(H)==="form")for(var le=H.action,Ce=ye.length-1;0<=Ce;Ce--)for(var ge=f.a.Lc(H,ye[Ce]),Ee=ge.length-1;0<=Ee;Ee--)de[ge[Ee].name]=ge[Ee].value;te=f.a.f(te);var Re=n.createElement("form");Re.style.display="none",Re.action=le,Re.method="post";for(var Xe in te)H=n.createElement("input"),H.type="hidden",H.name=Xe,H.value=f.a.hc(f.a.f(te[Xe])),Re.appendChild(H);g(de,function(we,nt){var je=n.createElement("input");je.type="hidden",je.name=we,je.value=nt,Re.appendChild(je)}),n.body.appendChild(Re),q.submitter?q.submitter(Re):Re.submit(),setTimeout(function(){Re.parentNode.removeChild(Re)},0)}}})(),f.b("utils",f.a),f.b("utils.arrayForEach",f.a.D),f.b("utils.arrayFirst",f.a.Lb),f.b("utils.arrayFilter",f.a.jb),f.b("utils.arrayGetDistinctValues",f.a.wc),f.b("utils.arrayIndexOf",f.a.A),f.b("utils.arrayMap",f.a.Mb),f.b("utils.arrayPushAll",f.a.Nb),f.b("utils.arrayRemoveItem",f.a.Pa),f.b("utils.cloneNodes",f.a.Ca),f.b("utils.createSymbolOrString",f.a.Da),f.b("utils.extend",f.a.extend),f.b("utils.fieldsIncludedWithJsonPost",f.a.Jc),f.b("utils.getFormFields",f.a.Lc),f.b("utils.objectMap",f.a.Ga),f.b("utils.peekObservable",f.a.bc),f.b("utils.postJson",f.a.Od),f.b("utils.parseJson",f.a.Nd),f.b("utils.registerEventHandler",f.a.B),f.b("utils.stringifyJson",f.a.hc),f.b("utils.range",f.a.Pd),f.b("utils.toggleDomNodeCssClass",f.a.Eb),f.b("utils.triggerEvent",f.a.Fb),f.b("utils.unwrapObservable",f.a.f),f.b("utils.objectForEach",f.a.P),f.b("utils.addOrRemoveItem",f.a.Na),f.b("utils.setTextContent",f.a.Bb),f.b("unwrap",f.a.f),Function.prototype.bind||(Function.prototype.bind=function(g){var C=this;if(arguments.length===1)return function(){return C.apply(g,arguments)};var V=Array.prototype.slice.call(arguments,1);return function(){var L=V.slice(0);return L.push.apply(L,arguments),C.apply(g,L)}}),f.a.g=new function(){var g=0,C="__ko__"+new Date().getTime(),V={},L,P;return f.a.W?(L=function(N,O){var M=N[C];if(!M||M==="null"||!V[M]){if(!O)return e;M=N[C]="ko"+g++,V[M]={}}return V[M]},P=function(N){var O=N[C];return O?(delete V[O],N[C]=null,!0):!1}):(L=function(N,O){var M=N[C];return!M&&O&&(M=N[C]={}),M},P=function(N){return N[C]?(delete N[C],!0):!1}),{get:function(N,O){var M=L(N,!1);return M&&M[O]},set:function(N,O,M){(N=L(N,M!==e))&&(N[O]=M)},Ub:function(N,O,M){return N=L(N,!0),N[O]||(N[O]=M)},clear:P,Z:function(){return g+++C}}},f.b("utils.domData",f.a.g),f.b("utils.domData.clear",f.a.g.clear),f.a.K=new function(){function g(O,M){var D=f.a.g.get(O,L);return D===e&&M&&(D=[],f.a.g.set(O,L,D)),D}function C(O){var M=g(O,!1);if(M)for(var M=M.slice(0),D=0;D<M.length;D++)M[D](O);f.a.g.clear(O),f.a.K.cleanExternalData(O),N[O.nodeType]&&V(O.childNodes,!0)}function V(O,M){for(var D=[],w,z=0;z<O.length;z++)if((!M||O[z].nodeType===8)&&(C(D[D.length]=w=O[z]),O[z]!==w))for(;z--&&f.a.A(D,O[z])==-1;);}var L=f.a.g.Z(),P={1:!0,8:!0,9:!0},N={1:!0,9:!0};return{za:function(O,M){if(typeof M!="function")throw Error("Callback must be a function");g(O,!0).push(M)},yb:function(O,M){var D=g(O,!1);D&&(f.a.Pa(D,M),D.length==0&&f.a.g.set(O,L,e))},oa:function(O){return f.u.G(function(){P[O.nodeType]&&(C(O),N[O.nodeType]&&V(O.getElementsByTagName("*")))}),O},removeNode:function(O){f.oa(O),O.parentNode&&O.parentNode.removeChild(O)},cleanExternalData:function(O){o&&typeof o.cleanData=="function"&&o.cleanData([O])}}},f.oa=f.a.K.oa,f.removeNode=f.a.K.removeNode,f.b("cleanNode",f.oa),f.b("removeNode",f.removeNode),f.b("utils.domNodeDisposal",f.a.K),f.b("utils.domNodeDisposal.addDisposeCallback",f.a.K.za),f.b("utils.domNodeDisposal.removeDisposeCallback",f.a.K.yb),(function(){var g=[0,"",""],C=[1,"<table>","</table>"],V=[3,"<table><tbody><tr>","</tr></tbody></table>"],L=[1,"<select multiple='multiple'>","</select>"],P={thead:C,tbody:C,tfoot:C,tr:[2,"<table><tbody>","</tbody></table>"],td:V,th:V,option:L,optgroup:L},N=8>=f.a.W;f.a.ua=function(O,M){var D;if(o){if(o.parseHTML)D=o.parseHTML(O,M)||[];else if((D=o.clean([O],M))&&D[0]){for(var w=D[0];w.parentNode&&w.parentNode.nodeType!==11;)w=w.parentNode;w.parentNode&&w.parentNode.removeChild(w)}}else{(D=M)||(D=n);var w=D.parentWindow||D.defaultView||t,z=f.a.Db(O).toLowerCase(),K=D.createElement("div"),ee;for(ee=(z=z.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&P[z[1]]||g,z=ee[0],ee="ignored<div>"+ee[1]+O+ee[2]+"</div>",typeof w.innerShiv=="function"?K.appendChild(w.innerShiv(ee)):(N&&D.body.appendChild(K),K.innerHTML=ee,N&&K.parentNode.removeChild(K));z--;)K=K.lastChild;D=f.a.la(K.lastChild.childNodes)}return D},f.a.Md=function(O,M){var D=f.a.ua(O,M);return D.length&&D[0].parentElement||f.a.Yb(D)},f.a.fc=function(O,M){if(f.a.Tb(O),M=f.a.f(M),M!==null&&M!==e)if(typeof M!="string"&&(M=M.toString()),o)o(O).html(M);else for(var D=f.a.ua(M,O.ownerDocument),w=0;w<D.length;w++)O.appendChild(D[w])}})(),f.b("utils.parseHtmlFragment",f.a.ua),f.b("utils.setHtml",f.a.fc),f.aa=(function(){function g(V,L){if(V){if(V.nodeType==8){var P=f.aa.Uc(V.nodeValue);P!=null&&L.push({ud:V,Kd:P})}else if(V.nodeType==1)for(var P=0,N=V.childNodes,O=N.length;P<O;P++)g(N[P],L)}}var C={};return{Xb:function(V){if(typeof V!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var L=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return C[L]=V,"<!--[ko_memo:"+L+"]-->"},bd:function(V,L){var P=C[V];if(P===e)throw Error("Couldn't find any memo with ID "+V+". Perhaps it's already been unmemoized.");try{return P.apply(null,L||[]),!0}finally{delete C[V]}},cd:function(V,L){var P=[];g(V,P);for(var N=0,O=P.length;N<O;N++){var M=P[N].ud,D=[M];L&&f.a.Nb(D,L),f.aa.bd(P[N].Kd,D),M.nodeValue="",M.parentNode&&M.parentNode.removeChild(M)}},Uc:function(V){return(V=V.match(/^\[ko_memo\:(.*?)\]$/))?V[1]:null}}})(),f.b("memoization",f.aa),f.b("memoization.memoize",f.aa.Xb),f.b("memoization.unmemoize",f.aa.bd),f.b("memoization.parseMemoText",f.aa.Uc),f.b("memoization.unmemoizeDomNodeAndDescendants",f.aa.cd),f.na=(function(){function g(){if(P){for(var M=P,D=0,w;O<P;)if(w=L[O++]){if(O>M){if(5e3<=++D){O=P,f.a.Gc(Error("'Too much recursion' after processing "+D+" task groups."));break}M=P}try{w()}catch(z){f.a.Gc(z)}}}}function C(){g(),O=P=L.length=0}var V,L=[],P=0,N=1,O=0;return t.MutationObserver?V=(function(M){var D=n.createElement("div");return new MutationObserver(M).observe(D,{attributes:!0}),function(){D.classList.toggle("foo")}})(C):V=n&&"onreadystatechange"in n.createElement("script")?function(M){var D=n.createElement("script");D.onreadystatechange=function(){D.onreadystatechange=null,n.documentElement.removeChild(D),D=null,M()},n.documentElement.appendChild(D)}:function(M){setTimeout(M,0)},{scheduler:V,zb:function(M){return P||f.na.scheduler(C),L[P++]=M,N++},cancel:function(M){M=M-(N-P),M>=O&&M<P&&(L[M]=null)},resetForTesting:function(){var M=P-O;return O=P=L.length=0,M},Sd:g}})(),f.b("tasks",f.na),f.b("tasks.schedule",f.na.zb),f.b("tasks.runEarly",f.na.Sd),f.Ta={throttle:function(g,C){g.throttleEvaluation=C;var V=null;return f.$({read:g,write:function(L){clearTimeout(V),V=f.a.setTimeout(function(){g(L)},C)}})},rateLimit:function(g,C){var V,L,P;typeof C=="number"?V=C:(V=C.timeout,L=C.method),g.Hb=!1,P=typeof L=="function"?L:L=="notifyWhenChangesStop"?u:d,g.ub(function(N){return P(N,V,C)})},deferred:function(g,C){if(C!==!0)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");g.Hb||(g.Hb=!0,g.ub(function(V){var L,P=!1;return function(){if(!P){f.na.cancel(L),L=f.na.zb(V);try{P=!0,g.notifySubscribers(e,"dirty")}finally{P=!1}}}}))},notify:function(g,C){g.equalityComparer=C=="always"?null:c}};var y={undefined:1,boolean:1,number:1,string:1};f.b("extenders",f.Ta),f.ic=function(g,C,V){this.da=g,this.lc=C,this.mc=V,this.Ib=!1,this.fb=this.Jb=null,f.L(this,"dispose",this.s),f.L(this,"disposeWhenNodeIsRemoved",this.l)},f.ic.prototype.s=function(){this.Ib||(this.fb&&f.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)},f.ic.prototype.l=function(g){this.Jb=g,f.a.K.za(g,this.fb=this.s.bind(this))},f.T=function(){f.a.Ab(this,_),_.qb(this)};var _={qb:function(g){g.U={change:[]},g.sc=1},subscribe:function(g,C,V){var L=this;V=V||"change";var P=new f.ic(L,C?g.bind(C):g,function(){f.a.Pa(L.U[V],P),L.hb&&L.hb(V)});return L.Qa&&L.Qa(V),L.U[V]||(L.U[V]=[]),L.U[V].push(P),P},notifySubscribers:function(g,C){if(C=C||"change",C==="change"&&this.Gb(),this.Wa(C)){var V=C==="change"&&this.ed||this.U[C].slice(0);try{f.u.xc();for(var L=0,P;P=V[L];++L)P.Ib||P.lc(g)}finally{f.u.end()}}},ob:function(){return this.sc},Dd:function(g){return this.ob()!==g},Gb:function(){++this.sc},ub:function(g){var C=this,V=f.O(C),L,P,N,O,M;C.gb||(C.gb=C.notifySubscribers,C.notifySubscribers=m);var D=g(function(){C.Ja=!1,V&&O===C&&(O=C.nc?C.nc():C());var w=P||M&&C.sb(N,O);M=P=L=!1,w&&C.gb(N=O)});C.qc=function(w,z){z&&C.Ja||(M=!z),C.ed=C.U.change.slice(0),C.Ja=L=!0,O=w,D()},C.pc=function(w){L||(N=w,C.gb(w,"beforeChange"))},C.rc=function(){M=!0},C.gd=function(){C.sb(N,C.v(!0))&&(P=!0)}},Wa:function(g){return this.U[g]&&this.U[g].length},Bd:function(g){if(g)return this.U[g]&&this.U[g].length||0;var C=0;return f.a.P(this.U,function(V,L){V!=="dirty"&&(C+=L.length)}),C},sb:function(g,C){return!this.equalityComparer||!this.equalityComparer(g,C)},toString:function(){return"[object Object]"},extend:function(g){var C=this;return g&&f.a.P(g,function(V,L){var P=f.Ta[V];typeof P=="function"&&(C=P(C,L)||C)}),C}};f.L(_,"init",_.qb),f.L(_,"subscribe",_.subscribe),f.L(_,"extend",_.extend),f.L(_,"getSubscriptionsCount",_.Bd),f.a.Ba&&f.a.setPrototypeOf(_,Function.prototype),f.T.fn=_,f.Qc=function(g){return g!=null&&typeof g.subscribe=="function"&&typeof g.notifySubscribers=="function"},f.b("subscribable",f.T),f.b("isSubscribable",f.Qc),f.S=f.u=(function(){function g(N){V.push(L),L=N}function C(){L=V.pop()}var V=[],L,P=0;return{xc:g,end:C,cc:function(N){if(L){if(!f.Qc(N))throw Error("Only subscribable things can act as dependencies");L.od.call(L.pd,N,N.fd||(N.fd=++P))}},G:function(N,O,M){try{return g(),N.apply(O,M||[])}finally{C()}},qa:function(){if(L)return L.o.qa()},Va:function(){if(L)return L.o.Va()},Ya:function(){if(L)return L.Ya},o:function(){if(L)return L.o}}})(),f.b("computedContext",f.S),f.b("computedContext.getDependenciesCount",f.S.qa),f.b("computedContext.getDependencies",f.S.Va),f.b("computedContext.isInitial",f.S.Ya),f.b("computedContext.registerDependency",f.S.cc),f.b("ignoreDependencies",f.Yd=f.u.G);var S=f.a.Da("_latestValue");f.ta=function(g){function C(){return 0<arguments.length?(C.sb(C[S],arguments[0])&&(C.ya(),C[S]=arguments[0],C.xa()),this):(f.u.cc(C),C[S])}return C[S]=g,f.a.Ba||f.a.extend(C,f.T.fn),f.T.fn.qb(C),f.a.Ab(C,A),f.options.deferUpdates&&f.Ta.deferred(C,!0),C};var A={equalityComparer:c,v:function(){return this[S]},xa:function(){this.notifySubscribers(this[S],"spectate"),this.notifySubscribers(this[S])},ya:function(){this.notifySubscribers(this[S],"beforeChange")}};f.a.Ba&&f.a.setPrototypeOf(A,f.T.fn);var Z=f.ta.Ma="__ko_proto__";A[Z]=f.ta,f.O=function(g){if((g=typeof g=="function"&&g[Z])&&g!==A[Z]&&g!==f.o.fn[Z])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!g},f.Za=function(g){return typeof g=="function"&&(g[Z]===A[Z]||g[Z]===f.o.fn[Z]&&g.Nc)},f.b("observable",f.ta),f.b("isObservable",f.O),f.b("isWriteableObservable",f.Za),f.b("isWritableObservable",f.Za),f.b("observable.fn",A),f.L(A,"peek",A.v),f.L(A,"valueHasMutated",A.xa),f.L(A,"valueWillMutate",A.ya),f.Ha=function(g){if(g=g||[],typeof g!="object"||!("length"in g))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return g=f.ta(g),f.a.Ab(g,f.Ha.fn),g.extend({trackArrayChanges:!0})},f.Ha.fn={remove:function(g){for(var C=this.v(),V=[],L=typeof g!="function"||f.O(g)?function(O){return O===g}:g,P=0;P<C.length;P++){var N=C[P];if(L(N)){if(V.length===0&&this.ya(),C[P]!==N)throw Error("Array modified during remove; cannot remove item");V.push(N),C.splice(P,1),P--}}return V.length&&this.xa(),V},removeAll:function(g){if(g===e){var C=this.v(),V=C.slice(0);return this.ya(),C.splice(0,C.length),this.xa(),V}return g?this.remove(function(L){return 0<=f.a.A(g,L)}):[]},destroy:function(g){var C=this.v(),V=typeof g!="function"||f.O(g)?function(N){return N===g}:g;this.ya();for(var L=C.length-1;0<=L;L--){var P=C[L];V(P)&&(P._destroy=!0)}this.xa()},destroyAll:function(g){return g===e?this.destroy(function(){return!0}):g?this.destroy(function(C){return 0<=f.a.A(g,C)}):[]},indexOf:function(g){var C=this();return f.a.A(C,g)},replace:function(g,C){var V=this.indexOf(g);0<=V&&(this.ya(),this.v()[V]=C,this.xa())},sorted:function(g){var C=this().slice(0);return g?C.sort(g):C.sort()},reversed:function(){return this().slice(0).reverse()}},f.a.Ba&&f.a.setPrototypeOf(f.Ha.fn,f.ta.fn),f.a.D("pop push reverse shift sort splice unshift".split(" "),function(g){f.Ha.fn[g]=function(){var C=this.v();this.ya(),this.zc(C,g,arguments);var V=C[g].apply(C,arguments);return this.xa(),V===C?this:V}}),f.a.D(["slice"],function(g){f.Ha.fn[g]=function(){var C=this();return C[g].apply(C,arguments)}}),f.Pc=function(g){return f.O(g)&&typeof g.remove=="function"&&typeof g.push=="function"},f.b("observableArray",f.Ha),f.b("isObservableArray",f.Pc),f.Ta.trackArrayChanges=function(g,C){function V(){function K(){if(M){var ee=[].concat(g.v()||[]),H;g.Wa("arrayChange")&&((!P||1<M)&&(P=f.a.Pb(D,ee,g.Ob)),H=P),D=ee,P=null,M=0,H&&H.length&&g.notifySubscribers(H,"arrayChange")}}L?K():(L=!0,O=g.subscribe(function(){++M},null,"spectate"),D=[].concat(g.v()||[]),P=null,N=g.subscribe(K))}if(g.Ob={},C&&typeof C=="object"&&f.a.extend(g.Ob,C),g.Ob.sparse=!0,!g.zc){var L=!1,P=null,N,O,M=0,D,w=g.Qa,z=g.hb;g.Qa=function(K){w&&w.call(g,K),K==="arrayChange"&&V()},g.hb=function(K){z&&z.call(g,K),K!=="arrayChange"||g.Wa("arrayChange")||(N&&N.s(),O&&O.s(),O=N=null,L=!1,D=e)},g.zc=function(K,ee,H){function te(Re,Xe,we){return q[q.length]={status:Re,value:Xe,index:we}}if(L&&!M){var q=[],de=K.length,ye=H.length,le=0;switch(ee){case"push":le=de;case"unshift":for(ee=0;ee<ye;ee++)te("added",H[ee],le+ee);break;case"pop":le=de-1;case"shift":de&&te("deleted",K[le],le);break;case"splice":ee=Math.min(Math.max(0,0>H[0]?de+H[0]:H[0]),de);for(var de=ye===1?de:Math.min(ee+(H[1]||0),de),ye=ee+ye-2,le=Math.max(de,ye),Ce=[],ge=[],Ee=2;ee<le;++ee,++Ee)ee<de&&ge.push(te("deleted",K[ee],ee)),ee<ye&&Ce.push(te("added",H[Ee],ee));f.a.Kc(ge,Ce);break;default:return}P=q}}}};var R=f.a.Da("_state");f.o=f.$=function(g,C,V){function L(){if(0<arguments.length){if(typeof P=="function")P.apply(N.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return N.ra||f.u.cc(L),(N.ka||N.J&&L.Xa())&&L.ha(),N.X}if(typeof g=="object"?V=g:(V=V||{},g&&(V.read=g)),typeof V.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var P=V.write,N={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:V.read,nb:C||V.owner,l:V.disposeWhenNodeIsRemoved||V.l||null,Sa:V.disposeWhen||V.Sa,Rb:null,I:{},V:0,Ic:null};return L[R]=N,L.Nc=typeof P=="function",f.a.Ba||f.a.extend(L,f.T.fn),f.T.fn.qb(L),f.a.Ab(L,G),V.pure?(N.wb=!0,N.J=!0,f.a.extend(L,E)):V.deferEvaluation&&f.a.extend(L,v),f.options.deferUpdates&&f.Ta.deferred(L,!0),N.l&&(N.jc=!0,N.l.nodeType||(N.l=null)),N.J||V.deferEvaluation||L.ha(),N.l&&L.ja()&&f.a.K.za(N.l,N.Rb=function(){L.s()}),L};var G={equalityComparer:c,qa:function(){return this[R].V},Va:function(){var g=[];return f.a.P(this[R].I,function(C,V){g[V.Ka]=V.da}),g},Vb:function(g){if(!this[R].V)return!1;var C=this.Va();return f.a.A(C,g)!==-1?!0:!!f.a.Lb(C,function(V){return V.Vb&&V.Vb(g)})},uc:function(g,C,V){if(this[R].wb&&C===this)throw Error("A 'pure' computed must not be called recursively");this[R].I[g]=V,V.Ka=this[R].V++,V.La=C.ob()},Xa:function(){var g,C,V=this[R].I;for(g in V)if(Object.prototype.hasOwnProperty.call(V,g)&&(C=V[g],this.Ia&&C.da.Ja||C.da.Dd(C.La)))return!0},Jd:function(){this.Ia&&!this[R].rb&&this.Ia(!1)},ja:function(){var g=this[R];return g.ka||0<g.V},Rd:function(){this.Ja?this[R].ka&&(this[R].sa=!0):this.Hc()},$c:function(g){if(g.Hb){var C=g.subscribe(this.Jd,this,"dirty"),V=g.subscribe(this.Rd,this);return{da:g,s:function(){C.s(),V.s()}}}return g.subscribe(this.Hc,this)},Hc:function(){var g=this,C=g.throttleEvaluation;C&&0<=C?(clearTimeout(this[R].Ic),this[R].Ic=f.a.setTimeout(function(){g.ha(!0)},C)):g.Ia?g.Ia(!0):g.ha(!0)},ha:function(g){var C=this[R],V=C.Sa,L=!1;if(!C.rb&&!C.ra){if(C.l&&!f.a.Sb(C.l)||V&&V()){if(!C.jc){this.s();return}}else C.jc=!1;C.rb=!0;try{L=this.zd(g)}finally{C.rb=!1}return L}},zd:function(g){var C=this[R],L=!1,V=C.wb?e:!C.V,L={qd:this,mb:C.I,Qb:C.V};f.u.xc({pd:L,od:b,o:this,Ya:V}),C.I={},C.V=0;var P=this.yd(C,L);return C.V?L=this.sb(C.X,P):(this.s(),L=!0),L&&(C.J?this.Gb():this.notifySubscribers(C.X,"beforeChange"),C.X=P,this.notifySubscribers(C.X,"spectate"),!C.J&&g&&this.notifySubscribers(C.X),this.rc&&this.rc()),V&&this.notifySubscribers(C.X,"awake"),L},yd:function(g,C){try{var V=g.Wc;return g.nb?V.call(g.nb):V()}finally{f.u.end(),C.Qb&&!g.J&&f.a.P(C.mb,p),g.sa=g.ka=!1}},v:function(g){var C=this[R];return(C.ka&&(g||!C.V)||C.J&&this.Xa())&&this.ha(),C.X},ub:function(g){f.T.fn.ub.call(this,g),this.nc=function(){return this[R].J||(this[R].sa?this.ha():this[R].ka=!1),this[R].X},this.Ia=function(C){this.pc(this[R].X),this[R].ka=!0,C&&(this[R].sa=!0),this.qc(this,!C)}},s:function(){var g=this[R];!g.J&&g.I&&f.a.P(g.I,function(C,V){V.s&&V.s()}),g.l&&g.Rb&&f.a.K.yb(g.l,g.Rb),g.I=e,g.V=0,g.ra=!0,g.sa=!1,g.ka=!1,g.J=!1,g.l=e,g.Sa=e,g.Wc=e,this.Nc||(g.nb=e)}},E={Qa:function(g){var C=this,V=C[R];if(!V.ra&&V.J&&g=="change"){if(V.J=!1,V.sa||C.Xa())V.I=null,V.V=0,C.ha()&&C.Gb();else{var L=[];f.a.P(V.I,function(P,N){L[N.Ka]=P}),f.a.D(L,function(P,N){var O=V.I[P],M=C.$c(O.da);M.Ka=N,M.La=O.La,V.I[P]=M}),C.Xa()&&C.ha()&&C.Gb()}V.ra||C.notifySubscribers(V.X,"awake")}},hb:function(g){var C=this[R];C.ra||g!="change"||this.Wa("change")||(f.a.P(C.I,function(V,L){L.s&&(C.I[V]={da:L.da,Ka:L.Ka,La:L.La},L.s())}),C.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var g=this[R];return g.J&&(g.sa||this.Xa())&&this.ha(),f.T.fn.ob.call(this)}},v={Qa:function(g){g!="change"&&g!="beforeChange"||this.v()}};f.a.Ba&&f.a.setPrototypeOf(G,f.T.fn);var I=f.ta.Ma;G[I]=f.o,f.Oc=function(g){return typeof g=="function"&&g[I]===G[I]},f.Fd=function(g){return f.Oc(g)&&g[R]&&g[R].wb},f.b("computed",f.o),f.b("dependentObservable",f.o),f.b("isComputed",f.Oc),f.b("isPureComputed",f.Fd),f.b("computed.fn",G),f.L(G,"peek",G.v),f.L(G,"dispose",G.s),f.L(G,"isActive",G.ja),f.L(G,"getDependenciesCount",G.qa),f.L(G,"getDependencies",G.Va),f.xb=function(g,C){return typeof g=="function"?f.o(g,C,{pure:!0}):(g=f.a.extend({},g),g.pure=!0,f.o(g,C))},f.b("pureComputed",f.xb),(function(){function g(L,P,N){if(N=N||new V,L=P(L),typeof L!="object"||L===null||L===e||L instanceof RegExp||L instanceof Date||L instanceof String||L instanceof Number||L instanceof Boolean)return L;var O=L instanceof Array?[]:{};return N.save(L,O),C(L,function(M){var D=P(L[M]);switch(typeof D){case"boolean":case"number":case"string":case"function":O[M]=D;break;case"object":case"undefined":var w=N.get(D);O[M]=w!==e?w:g(D,P,N)}}),O}function C(L,P){if(L instanceof Array){for(var N=0;N<L.length;N++)P(N);typeof L.toJSON=="function"&&P("toJSON")}else for(N in L)P(N)}function V(){this.keys=[],this.values=[]}f.ad=function(L){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return g(L,function(P){for(var N=0;f.O(P)&&10>N;N++)P=P();return P})},f.toJSON=function(L,P,N){return L=f.ad(L),f.a.hc(L,P,N)},V.prototype={constructor:V,save:function(L,P){var N=f.a.A(this.keys,L);0<=N?this.values[N]=P:(this.keys.push(L),this.values.push(P))},get:function(L){return L=f.a.A(this.keys,L),0<=L?this.values[L]:e}}})(),f.b("toJS",f.ad),f.b("toJSON",f.toJSON),f.Wd=function(g,C,V){function L(P){var N=f.xb(g,V).extend({ma:"always"}),O=N.subscribe(function(M){M&&(O.s(),P(M))});return N.notifySubscribers(N.v()),O}return typeof Promise!="function"||C?L(C.bind(V)):new Promise(L)},f.b("when",f.Wd),(function(){f.w={M:function(g){switch(f.a.R(g)){case"option":return g.__ko__hasDomDataOptionValue__===!0?f.a.g.get(g,f.c.options.$b):7>=f.a.W?g.getAttributeNode("value")&&g.getAttributeNode("value").specified?g.value:g.text:g.value;case"select":return 0<=g.selectedIndex?f.w.M(g.options[g.selectedIndex]):e;default:return g.value}},cb:function(g,C,V){switch(f.a.R(g)){case"option":typeof C=="string"?(f.a.g.set(g,f.c.options.$b,e),"__ko__hasDomDataOptionValue__"in g&&delete g.__ko__hasDomDataOptionValue__,g.value=C):(f.a.g.set(g,f.c.options.$b,C),g.__ko__hasDomDataOptionValue__=!0,g.value=typeof C=="number"?C:"");break;case"select":(C===""||C===null)&&(C=e);for(var L=-1,P=0,N=g.options.length,O;P<N;++P)if(O=f.w.M(g.options[P]),O==C||O===""&&C===e){L=P;break}(V||0<=L||C===e&&1<g.size)&&(g.selectedIndex=L,f.a.W===6&&f.a.setTimeout(function(){g.selectedIndex=L},0));break;default:(C===null||C===e)&&(C=""),g.value=C}}}})(),f.b("selectExtensions",f.w),f.b("selectExtensions.readValue",f.w.M),f.b("selectExtensions.writeValue",f.w.cb),f.m=(function(){function g(M){M=f.a.Db(M),M.charCodeAt(0)===123&&(M=M.slice(1,-1)),M+=` +,`;var D=[],w=M.match(L),z,K=[],ee=0;if(1<w.length){for(var H=0,te;te=w[H];++H){var q=te.charCodeAt(0);if(q===44){if(0>=ee){D.push(z&&K.length?{key:z,value:K.join("")}:{unknown:z||K.join("")}),z=ee=0,K=[];continue}}else if(q===58){if(!ee&&!z&&K.length===1){z=K.pop();continue}}else{if(q===47&&1<te.length&&(te.charCodeAt(1)===47||te.charCodeAt(1)===42))continue;q===47&&H&&1<te.length?(q=w[H-1].match(P))&&!N[q[0]]&&(M=M.substr(M.indexOf(te)+1),w=M.match(L),H=-1,te="/"):q===40||q===123||q===91?++ee:q===41||q===125||q===93?--ee:z||K.length||q!==34&&q!==39||(te=te.slice(1,-1))}K.push(te)}if(0<ee)throw Error("Unbalanced parentheses, braces, or brackets")}return D}var C=["true","false","null","undefined"],V=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,L=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.* +|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),P=/[\])"'A-Za-z0-9_$]+$/,N={in:1,return:1,typeof:1},O={};return{Ra:[],wa:O,ac:g,vb:function(M,D){function w(q,de){var ye;if(!H){var le=f.getBindingHandler(q);if(le&&le.preprocess&&!(de=le.preprocess(de,q,w)))return;(le=O[q])&&(ye=de,0<=f.a.A(C,ye)?ye=!1:(le=ye.match(V),ye=le===null?!1:le[1]?"Object("+le[1]+")"+le[2]:ye),le=ye),le&&K.push("'"+(typeof O[q]=="string"?O[q]:q)+"':function(_z){"+ye+"=_z}")}ee&&(de="function(){return "+de+" }"),z.push("'"+q+"':"+de)}D=D||{};var z=[],K=[],ee=D.valueAccessors,H=D.bindingParams,te=typeof M=="string"?g(M):M;return f.a.D(te,function(q){w(q.key||q.unknown,q.value)}),K.length&&w("_ko_property_writers","{"+K.join(",")+" }"),z.join(",")},Id:function(M,D){for(var w=0;w<M.length;w++)if(M[w].key==D)return!0;return!1},eb:function(M,D,w,z,K){M&&f.O(M)?!f.Za(M)||K&&M.v()===z||M(z):(M=D.get("_ko_property_writers"))&&M[w]&&M[w](z)}}})(),f.b("expressionRewriting",f.m),f.b("expressionRewriting.bindingRewriteValidators",f.m.Ra),f.b("expressionRewriting.parseObjectLiteral",f.m.ac),f.b("expressionRewriting.preProcessBindings",f.m.vb),f.b("expressionRewriting._twoWayBindings",f.m.wa),f.b("jsonExpressionRewriting",f.m),f.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",f.m.vb),(function(){function g(w){return w.nodeType==8&&N.test(P?w.text:w.nodeValue)}function C(w){return w.nodeType==8&&O.test(P?w.text:w.nodeValue)}function V(w,z){for(var K=w,ee=1,H=[];K=K.nextSibling;){if(C(K)&&(f.a.g.set(K,D,!0),ee--,ee===0))return H;H.push(K),g(K)&&ee++}if(!z)throw Error("Cannot find closing comment tag to match: "+w.nodeValue);return null}function L(w,z){var K=V(w,z);return K?0<K.length?K[K.length-1].nextSibling:w.nextSibling:null}var P=n&&n.createComment("test").text==="<!--test-->",N=P?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,O=P?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,M={ul:!0,ol:!0},D="__ko_matchedEndComment__";f.h={ea:{},childNodes:function(w){return g(w)?V(w):w.childNodes},Ea:function(w){if(g(w)){w=f.h.childNodes(w);for(var z=0,K=w.length;z<K;z++)f.removeNode(w[z])}else f.a.Tb(w)},va:function(w,z){if(g(w)){f.h.Ea(w);for(var K=w.nextSibling,ee=0,H=z.length;ee<H;ee++)K.parentNode.insertBefore(z[ee],K)}else f.a.va(w,z)},Vc:function(w,z){var K;g(w)?(K=w.nextSibling,w=w.parentNode):K=w.firstChild,K?z!==K&&w.insertBefore(z,K):w.appendChild(z)},Wb:function(w,z,K){K?(K=K.nextSibling,g(w)&&(w=w.parentNode),K?z!==K&&w.insertBefore(z,K):w.appendChild(z)):f.h.Vc(w,z)},firstChild:function(w){if(g(w))return!w.nextSibling||C(w.nextSibling)?null:w.nextSibling;if(w.firstChild&&C(w.firstChild))throw Error("Found invalid end comment, as the first child of "+w);return w.firstChild},nextSibling:function(w){if(g(w)&&(w=L(w)),w.nextSibling&&C(w.nextSibling)){var z=w.nextSibling;if(C(z)&&!f.a.g.get(z,D))throw Error("Found end comment without a matching opening comment, as child of "+w);return null}return w.nextSibling},Cd:g,Vd:function(w){return(w=(P?w.text:w.nodeValue).match(N))?w[1]:null},Sc:function(w){if(M[f.a.R(w)]){var z=w.firstChild;if(z)do if(z.nodeType===1){var K;K=z.firstChild;var ee=null;if(K)do if(ee)ee.push(K);else if(g(K)){var H=L(K,!0);H?K=H:ee=[K]}else C(K)&&(ee=[K]);while(K=K.nextSibling);if(K=ee)for(ee=z.nextSibling,H=0;H<K.length;H++)ee?w.insertBefore(K[H],ee):w.appendChild(K[H])}while(z=z.nextSibling)}}}})(),f.b("virtualElements",f.h),f.b("virtualElements.allowedBindings",f.h.ea),f.b("virtualElements.emptyNode",f.h.Ea),f.b("virtualElements.insertAfter",f.h.Wb),f.b("virtualElements.prepend",f.h.Vc),f.b("virtualElements.setDomNodeChildren",f.h.va),(function(){f.ga=function(){this.nd={}},f.a.extend(f.ga.prototype,{nodeHasBindings:function(g){switch(g.nodeType){case 1:return g.getAttribute("data-bind")!=null||f.j.getComponentNameForNode(g);case 8:return f.h.Cd(g);default:return!1}},getBindings:function(g,C){var V=this.getBindingsString(g,C),V=V?this.parseBindingsString(V,C,g):null;return f.j.tc(V,g,C,!1)},getBindingAccessors:function(g,C){var V=this.getBindingsString(g,C),V=V?this.parseBindingsString(V,C,g,{valueAccessors:!0}):null;return f.j.tc(V,g,C,!0)},getBindingsString:function(g){switch(g.nodeType){case 1:return g.getAttribute("data-bind");case 8:return f.h.Vd(g);default:return null}},parseBindingsString:function(g,C,V,L){try{var P=this.nd,N=g+(L&&L.valueAccessors||""),O;if(!(O=P[N])){var M,D="with($context){with($data||{}){return{"+f.m.vb(g,L)+"}}}";M=new Function("$context","$element",D),O=P[N]=M}return O(C,V)}catch(w){throw w.message=`Unable to parse bindings. +Bindings value: `+g+` +Message: `+w.message,w}}}),f.ga.instance=new f.ga})(),f.b("bindingProvider",f.ga),(function(){function g(le){var Ce=(le=f.a.g.get(le,ye))&&le.N;Ce&&(le.N=null,Ce.Tc())}function C(le,Ce,ge){this.node=le,this.yc=Ce,this.kb=[],this.H=!1,Ce.N||f.a.K.za(le,g),ge&&ge.N&&(ge.N.kb.push(le),this.Kb=ge)}function V(le){return function(){return le}}function L(le){return le()}function P(le){return f.a.Ga(f.u.G(le),function(Ce,ge){return function(){return le()[ge]}})}function N(le,Ce,ge){return typeof le=="function"?P(le.bind(null,Ce,ge)):f.a.Ga(le,V)}function O(le,Ce){return P(this.getBindings.bind(this,le,Ce))}function M(le,Ce){var ge=f.h.firstChild(Ce);if(ge){var Ee,Re=f.ga.instance,Xe=Re.preprocessNode;if(Xe){for(;Ee=ge;)ge=f.h.nextSibling(Ee),Xe.call(Re,Ee);ge=f.h.firstChild(Ce)}for(;Ee=ge;)ge=f.h.nextSibling(Ee),D(le,Ee)}f.i.ma(Ce,f.i.H)}function D(le,Ce){var ge=le,Ee=Ce.nodeType===1;Ee&&f.h.Sc(Ce),(Ee||f.ga.instance.nodeHasBindings(Ce))&&(ge=z(Ce,null,le).bindingContextForDescendants),ge&&!q[f.a.R(Ce)]&&M(ge,Ce)}function w(le){var Ce=[],ge={},Ee=[];return f.a.P(le,function Re(Xe){if(!ge[Xe]){var we=f.getBindingHandler(Xe);we&&(we.after&&(Ee.push(Xe),f.a.D(we.after,function(nt){if(le[nt]){if(f.a.A(Ee,nt)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+Ee.join(", "));Re(nt)}}),Ee.length--),Ce.push({key:Xe,Mc:we})),ge[Xe]=!0}}),Ce}function z(le,Ce,ge){var Ee=f.a.g.Ub(le,ye,{}),Re=Ee.hd;if(!Ce){if(Re)throw Error("You cannot apply bindings multiple times to the same element.");Ee.hd=!0}Re||(Ee.context=ge),Ee.Zb||(Ee.Zb={});var Xe;if(Ce&&typeof Ce!="function")Xe=Ce;else{var we=f.ga.instance,nt=we.getBindingAccessors||O,je=f.$(function(){return(Xe=Ce?Ce(ge,le):nt.call(we,le,ge))&&(ge[ee]&&ge[ee](),ge[te]&&ge[te]()),Xe},null,{l:le});Xe&&je.ja()||(je=null)}var et=ge,Ie;if(Xe){var Oe=function(){return f.a.Ga(je?je():Xe,L)},St=je?function(Et){return function(){return L(je()[Et])}}:function(Et){return Xe[Et]};Oe.get=function(Et){return Xe[Et]&&L(St(Et))},Oe.has=function(Et){return Et in Xe},f.i.H in Xe&&f.i.subscribe(le,f.i.H,function(){var Et=(0,Xe[f.i.H])();if(Et){var on=f.h.childNodes(le);on.length&&Et(on,f.Ec(on[0]))}}),f.i.pa in Xe&&(et=f.i.Cb(le,ge),f.i.subscribe(le,f.i.pa,function(){var Et=(0,Xe[f.i.pa])();Et&&f.h.firstChild(le)&&Et(le)})),Ee=w(Xe),f.a.D(Ee,function(Et){var on=Et.Mc.init,Ot=Et.Mc.update,gt=Et.key;if(le.nodeType===8&&!f.h.ea[gt])throw Error("The binding '"+gt+"' cannot be used with virtual elements");try{typeof on=="function"&&f.u.G(function(){var Wt=on(le,St(gt),Oe,et.$data,et);if(Wt&&Wt.controlsDescendantBindings){if(Ie!==e)throw Error("Multiple bindings ("+Ie+" and "+gt+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");Ie=gt}}),typeof Ot=="function"&&f.$(function(){Ot(le,St(gt),Oe,et.$data,et)},null,{l:le})}catch(Wt){throw Wt.message='Unable to process binding "'+gt+": "+Xe[gt]+`" +Message: `+Wt.message,Wt}})}return Ee=Ie===e,{shouldBindDescendants:Ee,bindingContextForDescendants:Ee&&et}}function K(le,Ce){return le&&le instanceof f.fa?le:new f.fa(le,e,e,Ce)}var ee=f.a.Da("_subscribable"),H=f.a.Da("_ancestorBindingInfo"),te=f.a.Da("_dataDependency");f.c={};var q={script:!0,textarea:!0,template:!0};f.getBindingHandler=function(le){return f.c[le]};var de={};f.fa=function(le,Ce,ge,Ee,Re){function Xe(){var St=et?je():je,Et=f.a.f(St);return Ce?(f.a.extend(we,Ce),H in Ce&&(we[H]=Ce[H])):(we.$parents=[],we.$root=Et,we.ko=f),we[ee]=Ie,nt?Et=we.$data:(we.$rawData=St,we.$data=Et),ge&&(we[ge]=Et),Ee&&Ee(we,Ce,Et),Ce&&Ce[ee]&&!f.S.o().Vb(Ce[ee])&&Ce[ee](),Oe&&(we[te]=Oe),we.$data}var we=this,nt=le===de,je=nt?e:le,et=typeof je=="function"&&!f.O(je),Ie,Oe=Re&&Re.dataDependency;Re&&Re.exportDependencies?Xe():(Ie=f.xb(Xe),Ie.v(),Ie.ja()?Ie.equalityComparer=null:we[ee]=e)},f.fa.prototype.createChildContext=function(le,Ce,ge,Ee){if(!Ee&&Ce&&typeof Ce=="object"&&(Ee=Ce,Ce=Ee.as,ge=Ee.extend),Ce&&Ee&&Ee.noChildContext){var Re=typeof le=="function"&&!f.O(le);return new f.fa(de,this,null,function(Xe){ge&&ge(Xe),Xe[Ce]=Re?le():le},Ee)}return new f.fa(le,this,Ce,function(Xe,we){Xe.$parentContext=we,Xe.$parent=we.$data,Xe.$parents=(we.$parents||[]).slice(0),Xe.$parents.unshift(Xe.$parent),ge&&ge(Xe)},Ee)},f.fa.prototype.extend=function(le,Ce){return new f.fa(de,this,null,function(ge){f.a.extend(ge,typeof le=="function"?le(ge):le)},Ce)};var ye=f.a.g.Z();C.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},C.prototype.sd=function(le){f.a.Pa(this.kb,le),!this.kb.length&&this.H&&this.Cc()},C.prototype.Cc=function(){this.H=!0,this.yc.N&&!this.kb.length&&(this.yc.N=null,f.a.K.yb(this.node,g),f.i.ma(this.node,f.i.pa),this.Tc())},f.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(le,Ce,ge,Ee,Re){var Xe=f.a.g.Ub(le,ye,{});return Xe.Fa||(Xe.Fa=new f.T),Re&&Re.notifyImmediately&&Xe.Zb[Ce]&&f.u.G(ge,Ee,[le]),Xe.Fa.subscribe(ge,Ee,Ce)},ma:function(le,Ce){var ge=f.a.g.get(le,ye);if(ge&&(ge.Zb[Ce]=!0,ge.Fa&&ge.Fa.notifySubscribers(le,Ce),Ce==f.i.H)){if(ge.N)ge.N.Cc();else if(ge.N===e&&ge.Fa&&ge.Fa.Wa(f.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(le,Ce){var ge=f.a.g.Ub(le,ye,{});return ge.N||(ge.N=new C(le,ge,Ce[H])),Ce[H]==ge?Ce:Ce.extend(function(Ee){Ee[H]=ge})}},f.Td=function(le){return(le=f.a.g.get(le,ye))&&le.context},f.ib=function(le,Ce,ge){return le.nodeType===1&&f.h.Sc(le),z(le,Ce,K(ge))},f.ld=function(le,Ce,ge){return ge=K(ge),f.ib(le,N(Ce,ge,le),ge)},f.Oa=function(le,Ce){Ce.nodeType!==1&&Ce.nodeType!==8||M(K(le),Ce)},f.vc=function(le,Ce,ge){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(Ce=n.body,!Ce)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!Ce||Ce.nodeType!==1&&Ce.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");D(K(le,ge),Ce)},f.Dc=function(le){return!le||le.nodeType!==1&&le.nodeType!==8?e:f.Td(le)},f.Ec=function(le){return(le=f.Dc(le))?le.$data:e},f.b("bindingHandlers",f.c),f.b("bindingEvent",f.i),f.b("bindingEvent.subscribe",f.i.subscribe),f.b("bindingEvent.startPossiblyAsyncContentBinding",f.i.Cb),f.b("applyBindings",f.vc),f.b("applyBindingsToDescendants",f.Oa),f.b("applyBindingAccessorsToNode",f.ib),f.b("applyBindingsToNode",f.ld),f.b("contextFor",f.Dc),f.b("dataFor",f.Ec)})(),(function(g){function C(O,M){var D=Object.prototype.hasOwnProperty.call(P,O)?P[O]:g,w;D?D.subscribe(M):(D=P[O]=new f.T,D.subscribe(M),V(O,function(z,K){var ee=!(!K||!K.synchronous);N[O]={definition:z,Gd:ee},delete P[O],w||ee?D.notifySubscribers(z):f.na.zb(function(){D.notifySubscribers(z)})}),w=!0)}function V(O,M){L("getConfig",[O],function(D){D?L("loadComponent",[O,D],function(w){M(w,D)}):M(null,null)})}function L(O,M,D,w){w||(w=f.j.loaders.slice(0));var z=w.shift();if(z){var K=z[O];if(K){var ee=!1;if(K.apply(z,M.concat(function(H){ee?D(null):H!==null?D(H):L(O,M,D,w)}))!==g&&(ee=!0,!z.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else L(O,M,D,w)}else D(null)}var P={},N={};f.j={get:function(O,M){var D=Object.prototype.hasOwnProperty.call(N,O)?N[O]:g;D?D.Gd?f.u.G(function(){M(D.definition)}):f.na.zb(function(){M(D.definition)}):C(O,M)},Bc:function(O){delete N[O]},oc:L},f.j.loaders=[],f.b("components",f.j),f.b("components.get",f.j.get),f.b("components.clearCachedDefinition",f.j.Bc)})(),(function(){function g(D,w,z,K){function ee(){--te===0&&K(H)}var H={},te=2,q=z.template;z=z.viewModel,q?P(w,q,function(de){f.j.oc("loadTemplate",[D,de],function(ye){H.template=ye,ee()})}):ee(),z?P(w,z,function(de){f.j.oc("loadViewModel",[D,de],function(ye){H[M]=ye,ee()})}):ee()}function C(D,w,z){if(typeof w=="function")z(function(ee){return new w(ee)});else if(typeof w[M]=="function")z(w[M]);else if("instance"in w){var K=w.instance;z(function(){return K})}else"viewModel"in w?C(D,w.viewModel,z):D("Unknown viewModel value: "+w)}function V(D){switch(f.a.R(D)){case"script":return f.a.ua(D.text);case"textarea":return f.a.ua(D.value);case"template":if(L(D.content))return f.a.Ca(D.content.childNodes)}return f.a.Ca(D.childNodes)}function L(D){return t.DocumentFragment?D instanceof DocumentFragment:D&&D.nodeType===11}function P(D,w,z){typeof w.require=="string"?a||t.require?(a||t.require)([w.require],function(K){K&&typeof K=="object"&&K.Xd&&K.default&&(K=K.default),z(K)}):D("Uses require, but no AMD loader is present"):z(w)}function N(D){return function(w){throw Error("Component '"+D+"': "+w)}}var O={};f.j.register=function(D,w){if(!w)throw Error("Invalid configuration for "+D);if(f.j.tb(D))throw Error("Component "+D+" is already registered");O[D]=w},f.j.tb=function(D){return Object.prototype.hasOwnProperty.call(O,D)},f.j.unregister=function(D){delete O[D],f.j.Bc(D)},f.j.Fc={getConfig:function(D,w){w(f.j.tb(D)?O[D]:null)},loadComponent:function(D,w,z){var K=N(D);P(K,w,function(ee){g(D,K,ee,z)})},loadTemplate:function(D,w,z){if(D=N(D),typeof w=="string")z(f.a.ua(w));else if(w instanceof Array)z(w);else if(L(w))z(f.a.la(w.childNodes));else if(w.element)if(w=w.element,t.HTMLElement?w instanceof HTMLElement:w&&w.tagName&&w.nodeType===1)z(V(w));else if(typeof w=="string"){var K=n.getElementById(w);K?z(V(K)):D("Cannot find element with ID "+w)}else D("Unknown element type: "+w);else D("Unknown template value: "+w)},loadViewModel:function(D,w,z){C(N(D),w,z)}};var M="createViewModel";f.b("components.register",f.j.register),f.b("components.isRegistered",f.j.tb),f.b("components.unregister",f.j.unregister),f.b("components.defaultLoader",f.j.Fc),f.j.loaders.push(f.j.Fc),f.j.dd=O})(),(function(){function g(V,L){var P=V.getAttribute("params");if(P){var P=C.parseBindingsString(P,L,V,{valueAccessors:!0,bindingParams:!0}),P=f.a.Ga(P,function(M){return f.o(M,null,{l:V})}),N=f.a.Ga(P,function(M){var D=M.v();return M.ja()?f.o({read:function(){return f.a.f(M())},write:f.Za(D)&&function(w){M()(w)},l:V}):D});return Object.prototype.hasOwnProperty.call(N,"$raw")||(N.$raw=P),N}return{$raw:{}}}f.j.getComponentNameForNode=function(V){var L=f.a.R(V);if(f.j.tb(L)&&(L.indexOf("-")!=-1||""+V=="[object HTMLUnknownElement]"||8>=f.a.W&&V.tagName===L))return L},f.j.tc=function(V,L,P,N){if(L.nodeType===1){var O=f.j.getComponentNameForNode(L);if(O){if(V=V||{},V.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var M={name:O,params:g(L,P)};V.component=N?function(){return M}:M}}return V};var C=new f.ga;9>f.a.W&&(f.j.register=(function(V){return function(L){return V.apply(this,arguments)}})(f.j.register),n.createDocumentFragment=(function(V){return function(){var L=V(),P=f.j.dd,N;for(N in P);return L}})(n.createDocumentFragment))})(),(function(){function g(L,P,N){if(P=P.template,!P)throw Error("Component '"+L+"' has no template");L=f.a.Ca(P),f.h.va(N,L)}function C(L,P,N){var O=L.createViewModel;return O?O.call(L,P,N):P}var V=0;f.c.component={init:function(L,P,N,O,M){function D(){var H=w&&w.dispose;typeof H=="function"&&H.call(w),K&&K.s(),z=w=K=null}var w,z,K,ee=f.a.la(f.h.childNodes(L));return f.h.Ea(L),f.a.K.za(L,D),f.o(function(){var H=f.a.f(P()),te,q;if(typeof H=="string"?te=H:(te=f.a.f(H.name),q=f.a.f(H.params)),!te)throw Error("No component name specified");var de=f.i.Cb(L,M),ye=z=++V;f.j.get(te,function(le){if(z===ye){if(D(),!le)throw Error("Unknown component '"+te+"'");g(te,le,L);var Ce=C(le,q,{element:L,templateNodes:ee});le=de.createChildContext(Ce,{extend:function(ge){ge.$component=Ce,ge.$componentTemplateNodes=ee}}),Ce&&Ce.koDescendantsComplete&&(K=f.i.subscribe(L,f.i.pa,Ce.koDescendantsComplete,Ce)),w=Ce,f.Oa(le,L)}})},null,{l:L}),{controlsDescendantBindings:!0}}},f.h.ea.component=!0})();var X={class:"className",for:"htmlFor"};f.c.attr={update:function(g,C){var V=f.a.f(C())||{};f.a.P(V,function(L,P){P=f.a.f(P);var N=L.indexOf(":"),N="lookupNamespaceURI"in g&&0<N&&g.lookupNamespaceURI(L.substr(0,N)),O=P===!1||P===null||P===e;O?N?g.removeAttributeNS(N,L):g.removeAttribute(L):P=P.toString(),8>=f.a.W&&L in X?(L=X[L],O?g.removeAttribute(L):g[L]=P):O||(N?g.setAttributeNS(N,L,P):g.setAttribute(L,P)),L==="name"&&f.a.Yc(g,O?"":P)})}},(function(){f.c.checked={after:["value","attr"],init:function(g,C,V){function L(){var H=g.checked,te=N();if(!f.S.Ya()&&(H||!M&&!f.S.qa())){var q=f.u.G(C);if(w){var de=z?q.v():q,ye=ee;ee=te,ye!==te?H&&(f.a.Na(de,te,!0),f.a.Na(de,ye,!1)):f.a.Na(de,te,H),z&&f.Za(q)&&q(de)}else O&&(te===e?te=H:H||(te=e)),f.m.eb(q,V,"checked",te,!0)}}function P(){var H=f.a.f(C()),te=N();w?(g.checked=0<=f.a.A(H,te),ee=te):g.checked=O&&te===e?!!H:N()===H}var N=f.xb(function(){if(V.has("checkedValue"))return f.a.f(V.get("checkedValue"));if(K)return V.has("value")?f.a.f(V.get("value")):g.value}),O=g.type=="checkbox",M=g.type=="radio";if(O||M){var D=C(),w=O&&f.a.f(D)instanceof Array,z=!(w&&D.push&&D.splice),K=M||w,ee=w?N():e;M&&!g.name&&f.c.uniqueName.init(g,function(){return!0}),f.o(L,null,{l:g}),f.a.B(g,"click",L),f.o(P,null,{l:g}),D=e}}},f.m.wa.checked=!0,f.c.checkedValue={update:function(g,C){g.value=f.a.f(C())}}})(),f.c.class={update:function(g,C){var V=f.a.Db(f.a.f(C()));f.a.Eb(g,g.__ko__cssValue,!1),g.__ko__cssValue=V,f.a.Eb(g,V,!0)}},f.c.css={update:function(g,C){var V=f.a.f(C());V!==null&&typeof V=="object"?f.a.P(V,function(L,P){P=f.a.f(P),f.a.Eb(g,L,P)}):f.c.class.update(g,C)}},f.c.enable={update:function(g,C){var V=f.a.f(C());V&&g.disabled?g.removeAttribute("disabled"):V||g.disabled||(g.disabled=!0)}},f.c.disable={update:function(g,C){f.c.enable.update(g,function(){return!f.a.f(C())})}},f.c.event={init:function(g,C,V,L,P){var N=C()||{};f.a.P(N,function(O){typeof O=="string"&&f.a.B(g,O,function(M){var D,w=C()[O];if(w){try{var z=f.a.la(arguments);L=P.$data,z.unshift(L),D=w.apply(L,z)}finally{D!==!0&&(M.preventDefault?M.preventDefault():M.returnValue=!1)}V.get(O+"Bubble")===!1&&(M.cancelBubble=!0,M.stopPropagation&&M.stopPropagation())}})})}},f.c.foreach={Rc:function(g){return function(){var C=g(),V=f.a.bc(C);return!V||typeof V.length=="number"?{foreach:C,templateEngine:f.ba.Ma}:(f.a.f(C),{foreach:V.data,as:V.as,noChildContext:V.noChildContext,includeDestroyed:V.includeDestroyed,afterAdd:V.afterAdd,beforeRemove:V.beforeRemove,afterRender:V.afterRender,beforeMove:V.beforeMove,afterMove:V.afterMove,templateEngine:f.ba.Ma})}},init:function(g,C){return f.c.template.init(g,f.c.foreach.Rc(C))},update:function(g,C,V,L,P){return f.c.template.update(g,f.c.foreach.Rc(C),V,L,P)}},f.m.Ra.foreach=!1,f.h.ea.foreach=!0,f.c.hasfocus={init:function(g,C,V){function L(O){g.__ko_hasfocusUpdating=!0;var M=g.ownerDocument;if("activeElement"in M){var D;try{D=M.activeElement}catch{D=M.body}O=D===g}M=C(),f.m.eb(M,V,"hasfocus",O,!0),g.__ko_hasfocusLastValue=O,g.__ko_hasfocusUpdating=!1}var P=L.bind(null,!0),N=L.bind(null,!1);f.a.B(g,"focus",P),f.a.B(g,"focusin",P),f.a.B(g,"blur",N),f.a.B(g,"focusout",N),g.__ko_hasfocusLastValue=!1},update:function(g,C){var V=!!f.a.f(C());g.__ko_hasfocusUpdating||g.__ko_hasfocusLastValue===V||(V?g.focus():g.blur(),!V&&g.__ko_hasfocusLastValue&&g.ownerDocument.body.focus(),f.u.G(f.a.Fb,null,[g,V?"focusin":"focusout"]))}},f.m.wa.hasfocus=!0,f.c.hasFocus=f.c.hasfocus,f.m.wa.hasFocus="hasfocus",f.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(g,C){f.a.fc(g,C())}},(function(){function g(C,V,L){f.c[C]={init:function(P,N,O,M,D){var w,z,K={},ee,H,te;if(V){M=O.get("as");var q=O.get("noChildContext");te=!(M&&q),K={as:M,noChildContext:q,exportDependencies:te}}return H=(ee=O.get("completeOn")=="render")||O.has(f.i.pa),f.o(function(){var de=f.a.f(N()),ye=!L!=!de,le=!z,Ce;(te||ye!==w)&&(H&&(D=f.i.Cb(P,D)),ye&&((!V||te)&&(K.dataDependency=f.S.o()),Ce=V?D.createChildContext(typeof de=="function"?de:N,K):f.S.qa()?D.extend(null,K):D),le&&f.S.qa()&&(z=f.a.Ca(f.h.childNodes(P),!0)),ye?(le||f.h.va(P,f.a.Ca(z)),f.Oa(Ce,P)):(f.h.Ea(P),ee||f.i.ma(P,f.i.H)),w=ye)},null,{l:P}),{controlsDescendantBindings:!0}}},f.m.Ra[C]=!1,f.h.ea[C]=!0}g("if"),g("ifnot",!1,!0),g("with",!0)})(),f.c.let={init:function(g,C,V,L,P){return C=P.extend(C),f.Oa(C,g),{controlsDescendantBindings:!0}}},f.h.ea.let=!0;var Y={};f.c.options={init:function(g){if(f.a.R(g)!=="select")throw Error("options binding applies only to SELECT elements");for(;0<g.length;)g.remove(0);return{controlsDescendantBindings:!0}},update:function(g,C,V){function L(){return f.a.jb(g.options,function(q){return q.selected})}function P(q,de,ye){var le=typeof de;return le=="function"?de(q):le=="string"?q[de]:ye}function N(q,de){if(H&&w)f.i.ma(g,f.i.H);else if(ee.length){var ye=0<=f.a.A(ee,f.w.M(de[0]));f.a.Zc(de[0],ye),H&&!ye&&f.u.G(f.a.Fb,null,[g,"change"])}}var O=g.multiple,M=g.length!=0&&O?g.scrollTop:null,D=f.a.f(C()),w=V.get("valueAllowUnset")&&V.has("value"),z=V.get("optionsIncludeDestroyed");C={};var K,ee=[];w||(O?ee=f.a.Mb(L(),f.w.M):0<=g.selectedIndex&&ee.push(f.w.M(g.options[g.selectedIndex]))),D&&(typeof D.length>"u"&&(D=[D]),K=f.a.jb(D,function(q){return z||q===e||q===null||!f.a.f(q._destroy)}),V.has("optionsCaption")&&(D=f.a.f(V.get("optionsCaption")),D!==null&&D!==e&&K.unshift(Y)));var H=!1;if(C.beforeRemove=function(q){g.removeChild(q)},D=N,V.has("optionsAfterRender")&&typeof V.get("optionsAfterRender")=="function"&&(D=function(q,de){N(0,de),f.u.G(V.get("optionsAfterRender"),null,[de[0],q!==Y?q:e])}),f.a.ec(g,K,function(q,de,ye){return ye.length&&(ee=!w&&ye[0].selected?[f.w.M(ye[0])]:[],H=!0),de=g.ownerDocument.createElement("option"),q===Y?(f.a.Bb(de,V.get("optionsCaption")),f.w.cb(de,e)):(ye=P(q,V.get("optionsValue"),q),f.w.cb(de,f.a.f(ye)),q=P(q,V.get("optionsText"),ye),f.a.Bb(de,q)),[de]},C,D),!w){var te;O?te=ee.length&&L().length<ee.length:te=ee.length&&0<=g.selectedIndex?f.w.M(g.options[g.selectedIndex])!==ee[0]:ee.length||0<=g.selectedIndex,te&&f.u.G(f.a.Fb,null,[g,"change"])}(w||f.S.Ya())&&f.i.ma(g,f.i.H),f.a.wd(g),M&&20<Math.abs(M-g.scrollTop)&&(g.scrollTop=M)}},f.c.options.$b=f.a.g.Z(),f.c.selectedOptions={init:function(g,C,V){function L(){var O=C(),M=[];f.a.D(g.getElementsByTagName("option"),function(D){D.selected&&M.push(f.w.M(D))}),f.m.eb(O,V,"selectedOptions",M)}function P(){var O=f.a.f(C()),M=g.scrollTop;O&&typeof O.length=="number"&&f.a.D(g.getElementsByTagName("option"),function(D){var w=0<=f.a.A(O,f.w.M(D));D.selected!=w&&f.a.Zc(D,w)}),g.scrollTop=M}if(f.a.R(g)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var N;f.i.subscribe(g,f.i.H,function(){N?L():(f.a.B(g,"change",L),N=f.o(P,null,{l:g}))},null,{notifyImmediately:!0})},update:function(){}},f.m.wa.selectedOptions=!0,f.c.style={update:function(g,C){var V=f.a.f(C()||{});f.a.P(V,function(L,P){if(P=f.a.f(P),(P===null||P===e||P===!1)&&(P=""),o)o(g).css(L,P);else if(/^--/.test(L))g.style.setProperty(L,P);else{L=L.replace(/-(\w)/g,function(O,M){return M.toUpperCase()});var N=g.style[L];g.style[L]=P,P===N||g.style[L]!=N||isNaN(P)||(g.style[L]=P+"px")}})}},f.c.submit={init:function(g,C,V,L,P){if(typeof C()!="function")throw Error("The value for a submit binding must be a function");f.a.B(g,"submit",function(N){var O,M=C();try{O=M.call(P.$data,g)}finally{O!==!0&&(N.preventDefault?N.preventDefault():N.returnValue=!1)}})}},f.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(g,C){f.a.Bb(g,C())}},f.h.ea.text=!0,(function(){if(t&&t.navigator){var g=function(K){if(K)return parseFloat(K[1])},C=t.navigator.userAgent,V,L,P,N,O;(V=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(O=g(C.match(/Edge\/([^ ]+)$/)))||g(C.match(/Chrome\/([^ ]+)/))||(L=g(C.match(/Version\/([^ ]+) Safari/)))||(P=g(C.match(/Firefox\/([^ ]+)/)))||(N=f.a.W||g(C.match(/MSIE ([^ ]+)/)))||(N=g(C.match(/rv:([^ )]+)/)))}if(8<=N&&10>N)var M=f.a.g.Z(),D=f.a.g.Z(),w=function(K){var ee=this.activeElement;(ee=ee&&f.a.g.get(ee,D))&&ee(K)},z=function(K,ee){var H=K.ownerDocument;f.a.g.get(H,M)||(f.a.g.set(H,M,!0),f.a.B(H,"selectionchange",w)),f.a.g.set(K,D,ee)};f.c.textInput={init:function(K,ee,H){function te(Xe,we){f.a.B(K,Xe,we)}function q(){var Xe=f.a.f(ee());(Xe===null||Xe===e)&&(Xe=""),ge!==e&&Xe===ge?f.a.setTimeout(q,4):K.value!==Xe&&(Re=!0,K.value=Xe,Re=!1,le=K.value)}function de(){Ce||(ge=K.value,Ce=f.a.setTimeout(ye,4))}function ye(){clearTimeout(Ce),ge=Ce=e;var Xe=K.value;le!==Xe&&(le=Xe,f.m.eb(ee(),H,"textInput",Xe))}var le=K.value,Ce,ge,Ee=f.a.W==9?de:ye,Re=!1;N&&te("keypress",ye),11>N&&te("propertychange",function(Xe){Re||Xe.propertyName!=="value"||Ee(Xe)}),N==8&&(te("keyup",ye),te("keydown",ye)),z&&(z(K,Ee),te("dragend",de)),(!N||9<=N)&&te("input",Ee),5>L&&f.a.R(K)==="textarea"?(te("keydown",de),te("paste",de),te("cut",de)):11>V?te("keydown",de):4>P?(te("DOMAutoComplete",ye),te("dragdrop",ye),te("drop",ye)):O&&K.type==="number"&&te("keydown",de),te("change",ye),te("blur",ye),f.o(q,null,{l:K})}},f.m.wa.textInput=!0,f.c.textinput={preprocess:function(K,ee,H){H("textInput",K)}}})(),f.c.uniqueName={init:function(g,C){if(C()){var V="ko_unique_"+ ++f.c.uniqueName.rd;f.a.Yc(g,V)}}},f.c.uniqueName.rd=0,f.c.using={init:function(g,C,V,L,P){var N;return V.has("as")&&(N={as:V.get("as"),noChildContext:V.get("noChildContext")}),C=P.createChildContext(C,N),f.Oa(C,g),{controlsDescendantBindings:!0}}},f.h.ea.using=!0,f.c.value={init:function(g,C,V){var L=f.a.R(g),P=L=="input";if(!P||g.type!="checkbox"&&g.type!="radio"){var N=[],O=V.get("valueUpdate"),M=!1,D=null;O&&(typeof O=="string"?N=[O]:N=f.a.wc(O),f.a.Pa(N,"change"));var w=function(){D=null,M=!1;var ee=C(),H=f.w.M(g);f.m.eb(ee,V,"value",H)};!f.a.W||!P||g.type!="text"||g.autocomplete=="off"||g.form&&g.form.autocomplete=="off"||f.a.A(N,"propertychange")!=-1||(f.a.B(g,"propertychange",function(){M=!0}),f.a.B(g,"focus",function(){M=!1}),f.a.B(g,"blur",function(){M&&w()})),f.a.D(N,function(ee){var H=w;f.a.Ud(ee,"after")&&(H=function(){D=f.w.M(g),f.a.setTimeout(w,0)},ee=ee.substring(5)),f.a.B(g,ee,H)});var z;if(z=P&&g.type=="file"?function(){var ee=f.a.f(C());ee===null||ee===e||ee===""?g.value="":f.u.G(w)}:function(){var ee=f.a.f(C()),H=f.w.M(g);D!==null&&ee===D?f.a.setTimeout(z,0):(ee!==H||H===e)&&(L==="select"?(H=V.get("valueAllowUnset"),f.w.cb(g,ee,H),H||ee===f.w.M(g)||f.u.G(w)):f.w.cb(g,ee))},L==="select"){var K;f.i.subscribe(g,f.i.H,function(){K?V.get("valueAllowUnset")?z():w():(f.a.B(g,"change",w),K=f.o(z,null,{l:g}))},null,{notifyImmediately:!0})}else f.a.B(g,"change",w),f.o(z,null,{l:g})}else f.ib(g,{checkedValue:C})},update:function(){}},f.m.wa.value=!0,f.c.visible={update:function(g,C){var V=f.a.f(C()),L=g.style.display!="none";V&&!L?g.style.display="":!V&&L&&(g.style.display="none")}},f.c.hidden={update:function(g,C){f.c.visible.update(g,function(){return!f.a.f(C())})}},(function(g){f.c[g]={init:function(C,V,L,P,N){return f.c.event.init.call(this,C,function(){var O={};return O[g]=V(),O},L,P,N)}}})("click"),f.ca=function(){},f.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},f.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},f.ca.prototype.makeTemplateSource=function(g,C){if(typeof g=="string"){C=C||n;var V=C.getElementById(g);if(!V)throw Error("Cannot find template with ID "+g);return new f.C.F(V)}if(g.nodeType==1||g.nodeType==8)return new f.C.ia(g);throw Error("Unknown template type: "+g)},f.ca.prototype.renderTemplate=function(g,C,V,L){return g=this.makeTemplateSource(g,L),this.renderTemplateSource(g,C,V,L)},f.ca.prototype.isTemplateRewritten=function(g,C){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(g,C).data("isRewritten")},f.ca.prototype.rewriteTemplate=function(g,C,V){g=this.makeTemplateSource(g,V),C=C(g.text()),g.text(C),g.data("isRewritten",!0)},f.b("templateEngine",f.ca),f.kc=(function(){function g(L,P,N,O){L=f.m.ac(L);for(var M=f.m.Ra,D=0;D<L.length;D++){var w=L[D].key;if(Object.prototype.hasOwnProperty.call(M,w)){var z=M[w];if(typeof z=="function"){if(w=z(L[D].value))throw Error(w)}else if(!z)throw Error("This template engine does not support the '"+w+"' binding within its templates")}}return N="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+f.m.vb(L,{valueAccessors:!0})+" } })()},'"+N.toLowerCase()+"')",O.createJavaScriptEvaluatorBlock(N)+P}var C=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,V=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(L,P,N){P.isTemplateRewritten(L,N)||P.rewriteTemplate(L,function(O){return f.kc.Ld(O,P)},N)},Ld:function(L,P){return L.replace(C,function(N,O,M,D,w){return g(w,O,M,P)}).replace(V,function(N,O){return g(O,"<!-- ko -->","#comment",P)})},md:function(L,P){return f.aa.Xb(function(N,O){var M=N.nextSibling;M&&M.nodeName.toLowerCase()===P&&f.ib(M,L,O)})}}})(),f.b("__tr_ambtns",f.kc.md),(function(){f.C={},f.C.F=function(V){if(this.F=V){var L=f.a.R(V);this.ab=L==="script"?1:L==="textarea"?2:L=="template"&&V.content&&V.content.nodeType===11?3:4}},f.C.F.prototype.text=function(){var V=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[V];var L=arguments[0];V==="innerHTML"?f.a.fc(this.F,L):this.F[V]=L};var g=f.a.g.Z()+"_";f.C.F.prototype.data=function(V){if(arguments.length===1)return f.a.g.get(this.F,g+V);f.a.g.set(this.F,g+V,arguments[1])};var C=f.a.g.Z();f.C.F.prototype.nodes=function(){var V=this.F;if(arguments.length==0){var L=f.a.g.get(V,C)||{},P=L.lb||(this.ab===3?V.content:this.ab===4?V:e);if(!P||L.jd){var N=this.text();N&&N!==L.bb&&(P=f.a.Md(N,V.ownerDocument),f.a.g.set(V,C,{lb:P,bb:N,jd:!0}))}return P}L=arguments[0],this.ab!==e&&this.text(""),f.a.g.set(V,C,{lb:L})},f.C.ia=function(V){this.F=V},f.C.ia.prototype=new f.C.F,f.C.ia.prototype.constructor=f.C.ia,f.C.ia.prototype.text=function(){if(arguments.length==0){var V=f.a.g.get(this.F,C)||{};return V.bb===e&&V.lb&&(V.bb=V.lb.innerHTML),V.bb}f.a.g.set(this.F,C,{bb:arguments[0]})},f.b("templateSources",f.C),f.b("templateSources.domElement",f.C.F),f.b("templateSources.anonymousTemplate",f.C.ia)})(),(function(){function g(D,w,z){var K;for(w=f.h.nextSibling(w);D&&(K=D)!==w;)D=f.h.nextSibling(K),z(K,D)}function C(D,w){if(D.length){var z=D[0],K=D[D.length-1],ee=z.parentNode,H=f.ga.instance,te=H.preprocessNode;if(te){if(g(z,K,function(q,de){var ye=q.previousSibling,le=te.call(H,q);le&&(q===z&&(z=le[0]||de),q===K&&(K=le[le.length-1]||ye))}),D.length=0,!z)return;z===K?D.push(z):(D.push(z,K),f.a.Ua(D,ee))}g(z,K,function(q){q.nodeType!==1&&q.nodeType!==8||f.vc(w,q)}),g(z,K,function(q){q.nodeType!==1&&q.nodeType!==8||f.aa.cd(q,[w])}),f.a.Ua(D,ee)}}function V(D){return D.nodeType?D:0<D.length?D[0]:null}function L(D,w,z,K,ee){ee=ee||{};var H=(D&&V(D)||z||{}).ownerDocument,te=ee.templateEngine||N;if(f.kc.xd(z,te,H),z=te.renderTemplate(z,K,ee,H),typeof z.length!="number"||0<z.length&&typeof z[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(H=!1,w){case"replaceChildren":f.h.va(D,z),H=!0;break;case"replaceNode":f.a.Xc(D,z),H=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+w)}return H&&(C(z,K),ee.afterRender&&f.u.G(ee.afterRender,null,[z,K[ee.as||"$data"]]),w=="replaceChildren"&&f.i.ma(D,f.i.H)),z}function P(D,w,z){return f.O(D)?D():typeof D=="function"?D(w,z):D}var N;f.gc=function(D){if(D!=e&&!(D instanceof f.ca))throw Error("templateEngine must inherit from ko.templateEngine");N=D},f.dc=function(D,w,z,K,ee){if(z=z||{},(z.templateEngine||N)==e)throw Error("Set a template engine before calling renderTemplate");if(ee=ee||"replaceChildren",K){var H=V(K);return f.$(function(){var q=w&&w instanceof f.fa?w:new f.fa(w,null,null,null,{exportDependencies:!0}),te=P(D,q.$data,q),q=L(K,ee,te,q,z);ee=="replaceNode"&&(K=q,H=V(K))},null,{Sa:function(){return!H||!f.a.Sb(H)},l:H&&ee=="replaceNode"?H.parentNode:H})}return f.aa.Xb(function(te){f.dc(D,w,z,te,"replaceNode")})},f.Qd=function(D,w,z,K,ee){function H(ge,Ee){f.u.G(f.a.ec,null,[K,ge,q,z,te,Ee]),f.i.ma(K,f.i.H)}function te(ge,Ee){C(Ee,de),z.afterRender&&z.afterRender(Ee,ge),de=null}function q(ge,Ee){de=ee.createChildContext(ge,{as:ye,noChildContext:z.noChildContext,extend:function(Xe){Xe.$index=Ee,ye&&(Xe[ye+"Index"]=Ee)}});var Re=P(D,ge,de);return L(K,"ignoreTargetNode",Re,de,z)}var de,ye=z.as,le=z.includeDestroyed===!1||f.options.foreachHidesDestroyed&&!z.includeDestroyed;if(le||z.beforeRemove||!f.Pc(w))return f.$(function(){var ge=f.a.f(w)||[];typeof ge.length>"u"&&(ge=[ge]),le&&(ge=f.a.jb(ge,function(Ee){return Ee===e||Ee===null||!f.a.f(Ee._destroy)})),H(ge)},null,{l:K});H(w.v());var Ce=w.subscribe(function(ge){H(w(),ge)},null,"arrayChange");return Ce.l(K),Ce};var O=f.a.g.Z(),M=f.a.g.Z();f.c.template={init:function(D,w){var z=f.a.f(w());if(typeof z=="string"||"name"in z)f.h.Ea(D);else if("nodes"in z){if(z=z.nodes||[],f.O(z))throw Error('The "nodes" option must be a plain, non-observable array.');var K=z[0]&&z[0].parentNode;K&&f.a.g.get(K,M)||(K=f.a.Yb(z),f.a.g.set(K,M,!0)),new f.C.ia(D).nodes(K)}else if(z=f.h.childNodes(D),0<z.length)K=f.a.Yb(z),new f.C.ia(D).nodes(K);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(D,w,z,K,ee){var H=w();w=f.a.f(H),z=!0,K=null,typeof w=="string"?w={}:(H="name"in w?w.name:D,"if"in w&&(z=f.a.f(w.if)),z&&"ifnot"in w&&(z=!f.a.f(w.ifnot)),z&&!H&&(z=!1)),"foreach"in w?K=f.Qd(H,z&&w.foreach||[],w,D,ee):z?(z=ee,"data"in w&&(z=ee.createChildContext(w.data,{as:w.as,noChildContext:w.noChildContext,exportDependencies:!0})),K=f.dc(H,z,w,D)):f.h.Ea(D),ee=K,(w=f.a.g.get(D,O))&&typeof w.s=="function"&&w.s(),f.a.g.set(D,O,!ee||ee.ja&&!ee.ja()?e:ee)}},f.m.Ra.template=function(D){return D=f.m.ac(D),D.length==1&&D[0].unknown||f.m.Id(D,"name")?null:"This template engine does not support anonymous templates nested within its templates"},f.h.ea.template=!0})(),f.b("setTemplateEngine",f.gc),f.b("renderTemplate",f.dc),f.a.Kc=function(g,C,V){if(g.length&&C.length){var L,P,N,O,M;for(L=P=0;(!V||L<V)&&(O=g[P]);++P){for(N=0;M=C[N];++N)if(O.value===M.value){O.moved=M.index,M.moved=O.index,C.splice(N,1),L=N=0;break}L+=N}}},f.a.Pb=(function(){function g(C,V,L,P,N){var O=Math.min,M=Math.max,D=[],w,z=C.length,K,ee=V.length,H=ee-z||1,te=z+ee+1,q,de,ye;for(w=0;w<=z;w++)for(de=q,D.push(q=[]),ye=O(ee,w+H),K=M(0,w-1);K<=ye;K++)q[K]=K?w?C[w-1]===V[K-1]?de[K-1]:O(de[K]||te,q[K-1]||te)+1:K+1:w+1;for(O=[],M=[],H=[],w=z,K=ee;w||K;)ee=D[w][K]-1,K&&ee===D[w][K-1]?M.push(O[O.length]={status:L,value:V[--K],index:K}):w&&ee===D[w-1][K]?H.push(O[O.length]={status:P,value:C[--w],index:w}):(--K,--w,N.sparse||O.push({status:"retained",value:V[K]}));return f.a.Kc(H,M,!N.dontLimitMoves&&10*z),O.reverse()}return function(C,V,L){return L=typeof L=="boolean"?{dontLimitMoves:L}:L||{},C=C||[],V=V||[],C.length<V.length?g(C,V,"added","deleted",L):g(V,C,"deleted","added",L)}})(),f.b("utils.compareArrays",f.a.Pb),(function(){function g(L,P,N,O,M){var D=[],w=f.$(function(){var z=P(N,M,f.a.Ua(D,L))||[];0<D.length&&(f.a.Xc(D,z),O&&f.u.G(O,null,[N,z,M])),D.length=0,f.a.Nb(D,z)},null,{l:L,Sa:function(){return!f.a.kd(D)}});return{Y:D,$:w.ja()?w:e}}var C=f.a.g.Z(),V=f.a.g.Z();f.a.ec=function(L,P,N,O,M,D){function w(Et){Re={Aa:Et,pb:f.ta(de++)},te.push(Re),H||Ee.push(Re)}function z(Et){Re=ee[Et],de!==Re.pb.v()&&ge.push(Re),Re.pb(de++),f.a.Ua(Re.Y,L),te.push(Re)}function K(Et,on){if(Et)for(var Ot=0,gt=on.length;Ot<gt;Ot++)f.a.D(on[Ot].Y,function(Wt){Et(Wt,Ot,on[Ot].Aa)})}P=P||[],typeof P.length>"u"&&(P=[P]),O=O||{};var ee=f.a.g.get(L,C),H=!ee,te=[],q=0,de=0,ye=[],le=[],Ce=[],ge=[],Ee=[],Re,Xe=0;if(H)f.a.D(P,w);else{if(!D||ee&&ee._countWaitingForRemove){var we=f.a.Mb(ee,function(Et){return Et.Aa});D=f.a.Pb(we,P,{dontLimitMoves:O.dontLimitMoves,sparse:!0})}for(var we=0,nt,je,et;nt=D[we];we++)switch(je=nt.moved,et=nt.index,nt.status){case"deleted":for(;q<et;)z(q++);je===e&&(Re=ee[q],Re.$&&(Re.$.s(),Re.$=e),f.a.Ua(Re.Y,L).length&&(O.beforeRemove&&(te.push(Re),Xe++,Re.Aa===V?Re=null:Ce.push(Re)),Re&&ye.push.apply(ye,Re.Y))),q++;break;case"added":for(;de<et;)z(q++);je!==e?(le.push(te.length),z(je)):w(nt.value)}for(;de<P.length;)z(q++);te._countWaitingForRemove=Xe}f.a.g.set(L,C,te),K(O.beforeMove,ge),f.a.D(ye,O.beforeRemove?f.oa:f.removeNode);var Ie,Oe,St;try{St=L.ownerDocument.activeElement}catch{}if(le.length)for(;(we=le.shift())!=e;){for(Re=te[we],Ie=e;we;)if((Oe=te[--we].Y)&&Oe.length){Ie=Oe[Oe.length-1];break}for(P=0;q=Re.Y[P];Ie=q,P++)f.h.Wb(L,q,Ie)}for(we=0;Re=te[we];we++){for(Re.Y||f.a.extend(Re,g(L,N,Re.Aa,M,Re.pb)),P=0;q=Re.Y[P];Ie=q,P++)f.h.Wb(L,q,Ie);!Re.Ed&&M&&(M(Re.Aa,Re.Y,Re.pb),Re.Ed=!0,Ie=Re.Y[Re.Y.length-1])}for(St&&L.ownerDocument.activeElement!=St&&St.focus(),K(O.beforeRemove,Ce),we=0;we<Ce.length;++we)Ce[we].Aa=V;K(O.afterMove,ge),K(O.afterAdd,Ee)}})(),f.b("utils.setDomNodeChildrenFromArrayMapping",f.a.ec),f.ba=function(){this.allowTemplateRewriting=!1},f.ba.prototype=new f.ca,f.ba.prototype.constructor=f.ba,f.ba.prototype.renderTemplateSource=function(g,C,V,L){return(C=!(9>f.a.W)&&g.nodes?g.nodes():null)?f.a.la(C.cloneNode(!0).childNodes):(g=g.text(),f.a.ua(g,L))},f.ba.Ma=new f.ba,f.gc(f.ba.Ma),f.b("nativeTemplateEngine",f.ba),(function(){f.$a=function(){var C=this.Hd=(function(){if(!o||!o.tmpl)return 0;try{if(0<=o.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch{}return 1})();this.renderTemplateSource=function(V,L,P,N){if(N=N||n,P=P||{},2>C)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var O=V.data("precompiled");return O||(O=V.text()||"",O=o.template(null,"{{ko_with $item.koBindingContext}}"+O+"{{/ko_with}}"),V.data("precompiled",O)),V=[L.$data],L=o.extend({koBindingContext:L},P.templateOptions),L=o.tmpl(O,V,L),L.appendTo(N.createElement("div")),o.fragments={},L},this.createJavaScriptEvaluatorBlock=function(V){return"{{ko_code ((function() { return "+V+" })()) }}"},this.addTemplate=function(V,L){n.write("<script type='text/html' id='"+V+"'>"+L+"<\/script>")},0<C&&(o.tmpl.tag.ko_code={open:"__.push($1 || '');"},o.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},f.$a.prototype=new f.ca,f.$a.prototype.constructor=f.$a;var g=new f.$a;0<g.Hd&&f.gc(g),f.b("jqueryTmplTemplateEngine",f.$a)})()})})()})()})();var KXt=ko;typeof window<"u"?(ko=window.ko,typeof p9<"u"?window.ko=p9:delete window.ko):(ko=global.ko,typeof p9<"u"?global.ko=p9:delete global.ko);var wA=KXt;var oQo=x(T(),1);/** + * @license + * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 + * Copyright (c) Steve Sanderson + * MIT license + */var Xoe="__knockoutObservables",Yoe="__knockoutSubscribable";function ove(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=rve(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===Xoe||o===Yoe)&&!(o in i)){var r=e[o],s=r instanceof Array,a=n.isObservable(r)?r:s?n.observableArray(r):n.observable(r);Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:a,set:n.isWriteableObservable(a)?a:void 0}),i[o]=a,s&&jXt(n,a)}}),e}function rve(e,t){var n=e[Xoe];return!n&&t&&(n={},Object.defineProperty(e,Xoe,{value:n})),n}function JXt(e,t,n){var i=this,o={owner:e,deferEvaluation:!0};if(typeof n=="function")o.read=n;else{if("value"in n)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if(typeof n.get!="function")throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');o.read=n.get,o.write=n.set}return e[t]=i.computed(o),ove.call(i,e,[t]),e}function jXt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=QXt(e,t,i))})}function QXt(e,t,n){var i=qXt(e,n);return i.subscribe(t)}function qXt(e,t){var n=t[Yoe];if(!n){n=new e.subscribable,Object.defineProperty(t,Yoe,{value:n});var i={};$Xt(t,n,i),eYt(e,t,n,i)}return n}function $Xt(e,t,n){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(i){var o=e[i];e[i]=function(){var r=o.apply(this,arguments);return n.pause!==!0&&t.notifySubscribers(this),r}})}function eYt(e,t,n,i){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(o){Object.defineProperty(t,o,{enumerable:!1,value:function(){var r;i.pause=!0;try{r=e.observableArray.fn[o].apply(e.observableArray(t),arguments)}finally{i.pause=!1}return n.notifySubscribers(t),r}})})}function sve(e,t){if(!e)return null;var n=rve(e,!1);return n&&n[t]||null}function tYt(e,t){var n=sve(e,t);n&&n.valueHasMutated()}function nYt(e){e.track=ove,e.getObservable=sve,e.valueHasMutated=tYt,e.defineProperty=JXt}var b9={attachToKo:nYt};var sQo=x(T(),1),ave="http://www.w3.org/2000/svg",cve="cesium-svgPath-svg",iYt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(ave,"svg:svg");i.setAttribute("class",cve);let o=document.createElementNS(ave,"path");return i.appendChild(o),e.virtualElements.setDomNodeChildren(t,[i]),e.computed({read:function(){let r=e.unwrap(n());o.setAttribute("d",e.unwrap(r.path));let s=e.unwrap(r.width),a=e.unwrap(r.height);i.setAttribute("width",s),i.setAttribute("height",a),i.setAttribute("viewBox",`0 0 ${s} ${a}`),r.css&&i.setAttribute("class",`${cve} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},g9=iYt;b9.attachToKo(wA);g9.register(wA);var Ve=wA;function y9(e){l(e)||(e=new lf),this._clock=e,this._eventHelper=new Fr,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=Ve.observable(Q.now()),this.systemTime.equalityComparer=Q.equals,this.startTime=Ve.observable(e.startTime),this.startTime.equalityComparer=Q.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=Ve.observable(e.stopTime),this.stopTime.equalityComparer=Q.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=Ve.observable(e.currentTime),this.currentTime.equalityComparer=Q.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=Ve.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=Ve.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=Ve.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=Ve.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=Ve.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),Ve.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(y9.prototype,{clock:{get:function(){return this._clock}}});y9.prototype.synchronize=function(){let e=this._clock;this.systemTime=Q.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate};y9.prototype.isDestroyed=function(){return!1};y9.prototype.destroy=function(){this._eventHelper.removeAll(),he(this)};var x9=y9;var yQo=x(T(),1);function oYt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,Te.throwInstantiationError()}var Noe=oYt;var SQo=x(T(),1);var yV={};yV.createCheckbox=function(e,t,n){let i=document.createElement("div"),o=document.createElement("label"),r=document.createElement("input");r.type="checkbox";let s=`checked: ${t}`;return l(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};yV.createSection=function(e,t,n,i){let o=document.createElement("div");o.className="cesium-cesiumInspector-section",o.setAttribute("data-bind",`css: { "cesium-cesiumInspector-section-collapsed": !${n} }`),e.appendChild(o);let r=document.createElement("h3");r.className="cesium-cesiumInspector-sectionHeader",r.appendChild(document.createTextNode(t)),r.setAttribute("data-bind",`click: ${i}`),o.appendChild(r);let s=document.createElement("div");return s.className="cesium-cesiumInspector-sectionContent",o.appendChild(s),s};yV.createRangeInput=function(e,t,n,i,o,r){r=r??t;let s=document.createElement("input");s.setAttribute("data-bind",`value: ${r}`),s.type="number";let a=document.createElement("input");a.type="range",a.min=n,a.max=i,a.step=o??"any",a.setAttribute("data-bind",`valueUpdate: "input", value: ${t}`);let c=document.createElement("div");c.appendChild(a);let d=document.createElement("div");return d.className="cesium-cesiumInspector-slider",d.appendChild(document.createTextNode(e)),d.appendChild(s),d.appendChild(c),d};yV.createRangeInputWithDynamicMinMax=function(e,t,n,i){i=i??t;let o=document.createElement("input");o.setAttribute("data-bind",`value: ${i}`),o.type="number";let r=document.createElement("input");r.type="range",r.step=n??"any",r.setAttribute("data-bind",`valueUpdate: "input", value: ${t}, attr: { min: ${t}Min, max: ${t}Max }`);let s=document.createElement("div");s.appendChild(r);let a=document.createElement("div");return a.className="cesium-cesiumInspector-slider",a.appendChild(document.createTextNode(e)),a.appendChild(o),a.appendChild(s),a};yV.createButton=function(e,t,n){let i=document.createElement("button");i.type="button",i.textContent=e,i.className="cesium-cesiumInspector-pickButton";let o=`click: ${t}`;return l(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var Jd=yV;var GQo=x(T(),1);function lve(e,t){this._command=e,t=t??B.EMPTY_OBJECT,this.toggled=t.toggled??!1,this.tooltip=t.tooltip??"",Ve.track(this,["toggled","tooltip"])}Object.defineProperties(lve.prototype,{command:{get:function(){return this._command}}});var Qx=lve;var IQo=x(T(),1);function rYt(e,t){t=t??!0;let n=new Se,i=new Se;function o(){let r={args:arguments,cancel:!1},s;return n.raiseEvent(r),r.cancel||(s=e.apply(null,arguments),i.raiseEvent(s)),s}return o.canExecute=t,Ve.track(o,["canExecute"]),Object.defineProperties(o,{beforeExecute:{value:n},afterExecute:{value:i}}),o}var Ln=rYt;var YQo=x(T(),1);function sYt(e,t,n,i,o){return n.call(i,e[t]),Ve.getObservable(e,t).subscribe(n,i,o)}var mc=sYt;var UQo=x(T(),1);var MA="http://www.w3.org/2000/svg",mve="http://www.w3.org/1999/xlink",Qz,T9=U.fromCssColorString("rgba(247,250,255,0.384)"),qz=U.fromCssColorString("rgba(143,191,255,0.216)"),woe=U.fromCssColorString("rgba(153,197,255,0.098)"),$z=U.fromCssColorString("rgba(255,255,255,0.086)"),aYt=U.fromCssColorString("rgba(255,255,255,0.267)"),cYt=U.fromCssColorString("rgba(255,255,255,0)"),dve=U.fromCssColorString("rgba(66,67,68,0.3)"),uve=U.fromCssColorString("rgba(0,0,0,0.5)");function qx(e){return U.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var _9={animation_pathReset:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},animation_pathPause:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},animation_pathPlay:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathPlayReverse:{tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathLoop:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},animation_pathClock:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},animation_pathWingButton:{tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},animation_pathPointer:{tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},animation_pathSwooshFX:{tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}};function kf(e){let t=document.createElementNS(MA,e.tagName);for(let n in e)if(e.hasOwnProperty(n)&&n!=="tagName")if(n==="children"){let i=e.children.length;for(let o=0;o<i;++o)t.appendChild(kf(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS(mve,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function Moe(e,t,n){let i=document.createElementNS(MA,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(MA,"tspan");return o.textContent=n,i.appendChild(o),i}function lYt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var eH=new U;function Fs(e,t){let n=t.alpha,i=1-n;return eH.red=e.red*i+t.red*n,eH.green=e.green*i+t.green*n,eH.blue=e.blue*i+t.blue*n,eH.toCssColorString()}function koe(e,t,n){let i=_9[n],o={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return kf(o)}function dYt(e,t,n){let i=_9[n],o=_9.animation_pathWingButton,r={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{class:"cesium-animation-buttonGlow",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonMain",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return kf(r)}function uYt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&Qz!==e))if(t.type==="mousedown"||i&&t.type==="mousemove"||t.type==="touchstart"&&t.touches.length===1||i&&t.type==="touchmove"&&t.touches.length===1){let o=e._centerX,r=e._centerY,a=e._svgNode.getBoundingClientRect(),c,d;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,d=t.touches[0].clientY):(c=t.clientX,d=t.clientY),!i&&(c>a.right||c<a.left||d<a.top||d>a.bottom))return;let u=e._shuttleRingPointer.getBoundingClientRect(),m=c-o-a.left,p=d-r-a.top,b=Math.atan2(p,m)*180/Math.PI+90;b>180&&(b-=360);let f=n.shuttleRingAngle;i||c<u.right&&c>u.left&&d>u.top&&d<u.bottom?(Qz=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=b):b<f?n.slower():b>f&&n.faster(),t.preventDefault()}else e===Qz&&(Qz=void 0),n.shuttleRingDragging=!1}function Fg(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;let n=this;this._clickFunction=function(){let i=n._viewModel.command;i.canExecute&&i()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[mc(t,"toggled",this.setToggled,this),mc(t,"tooltip",this.setTooltip,this),mc(t.command,"canExecute",this.setEnabled,this)]}Fg.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);let e=this._subscriptions;for(let t=0,n=e.length;t<n;t++)e[t].dispose();he(this)};Fg.prototype.isDestroyed=function(){return!1};Fg.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e){this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");return}if(this._toggled){this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");return}this.svgElement.setAttribute("class","cesium-animation-rectButton")}};Fg.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))};Fg.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function xV(e,t){e=Pn(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;let n=e.ownerDocument,i=document.createElement("style");i.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",n.head.insertBefore(i,n.head.childNodes[0]);let o=document.createElement("div");o.className="cesium-animation-theme",o.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=o,this._themeNormal=o.childNodes[0],this._themeHover=o.childNodes[1],this._themeSelect=o.childNodes[2],this._themeDisabled=o.childNodes[3],this._themeKnob=o.childNodes[4],this._themePointer=o.childNodes[5],this._themeSwoosh=o.childNodes[6],this._themeSwooshHover=o.childNodes[7];let r=document.createElementNS(MA,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mve);let s=document.createElementNS(MA,"g");this._topG=s,this._realtimeSVG=new Fg(dYt(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new Fg(koe(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new Fg(koe(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new Fg(koe(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(MA,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=kf({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let d=_9.animation_pathSwooshFX,u=_9.animation_pathPointer,m=kf({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:d.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:d.d},{tagName:d.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:d.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=m,this._shuttleRingPointer=kf({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:u.tagName,d:u.d});let p=kf({tagName:"g",transform:"translate(100,100)"});this._knobOuter=kf({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let b=61,f=kf({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:b});this._knobDate=Moe(0,-24,""),this._knobTime=Moe(0,-7,""),this._knobStatus=Moe(0,-41,"");let y=kf({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:b}),_=document.createElementNS(MA,"g");_.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(o),s.appendChild(_),s.appendChild(p),s.appendChild(a),_.appendChild(c),_.appendChild(m),_.appendChild(this._shuttleRingPointer),p.appendChild(this._knobOuter),p.appendChild(f),p.appendChild(this._knobDate),p.appendChild(this._knobTime),p.appendChild(this._knobStatus),p.appendChild(y),r.appendChild(s),e.appendChild(r);let S=this;function A(v){uYt(S,v)}this._mouseCallback=A,c.addEventListener("mousedown",A,!0),c.addEventListener("touchstart",A,!0),m.addEventListener("mousedown",A,!0),m.addEventListener("touchstart",A,!0),n.addEventListener("mousemove",A,!0),n.addEventListener("touchmove",A,!0),n.addEventListener("mouseup",A,!0),n.addEventListener("touchend",A,!0),n.addEventListener("touchcancel",A,!0),this._shuttleRingPointer.addEventListener("mousedown",A,!0),this._shuttleRingPointer.addEventListener("touchstart",A,!0),this._knobOuter.addEventListener("mousedown",A,!0),this._knobOuter.addEventListener("touchstart",A,!0);let Z=this._knobTime.childNodes[0],R=this._knobDate.childNodes[0],G=this._knobStatus.childNodes[0],E;this._subscriptions=[mc(t.pauseViewModel,"toggled",function(v){E!==v&&(E=v,E?S._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):S._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),mc(t,"shuttleRingAngle",function(v){lYt(S._shuttleRingPointer,S._knobOuter,v)}),mc(t,"dateLabel",function(v){R.textContent!==v&&(R.textContent=v)}),mc(t,"timeLabel",function(v){Z.textContent!==v&&(Z.textContent=v)}),mc(t,"multiplierLabel",function(v){G.textContent!==v&&(G.textContent=v)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(xV.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});xV.prototype.isDestroyed=function(){return!1};xV.prototype.destroy=function(){l(this._observer)&&(this._observer.disconnect(),this._observer=void 0);let e=this._container.ownerDocument,t=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",t,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",t,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",t,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",t,!0),e.removeEventListener("mousemove",t,!0),e.removeEventListener("touchmove",t,!0),e.removeEventListener("mouseup",t,!0),e.removeEventListener("touchend",t,!0),e.removeEventListener("touchcancel",t,!0),this._shuttleRingPointer.removeEventListener("mousedown",t,!0),this._shuttleRingPointer.removeEventListener("touchstart",t,!0),this._knobOuter.removeEventListener("mousedown",t,!0),this._knobOuter.removeEventListener("touchstart",t,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();let n=this._subscriptions;for(let i=0,o=n.length;i<o;i++)n[i].dispose();return he(this)};xV.prototype.resize=function(){let e=this._container.clientWidth,t=this._container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;let n=this._svgNode,i=200,o=132,r=e,s=t;e===0&&t===0?(r=i,s=o):e===0?(s=t,r=i*(t/o)):t===0&&(r=e,s=o*(e/i));let a=r/i,c=s/o;n.style.cssText=`width: ${r}px; height: ${s}px; position: absolute; bottom: 0; left: 0; overflow: hidden;`,n.setAttribute("width",r),n.setAttribute("height",s),n.setAttribute("viewBox",`0 0 ${r} ${s}`),this._topG.setAttribute("transform",`scale(${a},${c})`),this._centerX=Math.max(1,100*a),this._centerY=Math.max(1,100*c),this._lastHeight=e,this._lastWidth=t};xV.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(l(this._observer))return;let u=this;u._observer=new MutationObserver(function(){e.body.contains(u._container)&&(u._observer.disconnect(),u._observer=void 0,u.applyThemeChanges())}),u._observer.observe(e,{childList:!0,subtree:!0});return}let t=qx(this._themeNormal),n=qx(this._themeHover),i=qx(this._themeSelect),o=qx(this._themeDisabled),r=qx(this._themeKnob),s=qx(this._themePointer),a=qx(this._themeSwoosh),c=qx(this._themeSwooshHover),d=kf({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Fs(t,T9)},{tagName:"stop",offset:"12%","stop-color":Fs(t,qz)},{tagName:"stop",offset:"46%","stop-color":Fs(t,woe)},{tagName:"stop",offset:"81%","stop-color":Fs(t,$z)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Fs(n,T9)},{tagName:"stop",offset:"12%","stop-color":Fs(n,qz)},{tagName:"stop",offset:"46%","stop-color":Fs(n,woe)},{tagName:"stop",offset:"81%","stop-color":Fs(n,$z)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Fs(i,T9)},{tagName:"stop",offset:"12%","stop-color":Fs(i,qz)},{tagName:"stop",offset:"46%","stop-color":Fs(i,woe)},{tagName:"stop",offset:"81%","stop-color":Fs(i,$z)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Fs(o,aYt)},{tagName:"stop",offset:"75%","stop-color":Fs(o,cYt)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":a.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":Fs(s,uve)},{tagName:"stop",offset:"100%","stop-color":Fs(s,uve)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Fs(r,T9)},{tagName:"stop",offset:"60%","stop-color":Fs(r,dve)},{tagName:"stop",offset:"85%","stop-color":Fs(r,qz)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Fs(r,dve)},{tagName:"stop",offset:"60%","stop-color":Fs(r,T9)},{tagName:"stop",offset:"85%","stop-color":Fs(r,$z)}]}]});l(this._defsElement)?this._svgNode.replaceChild(d,this._defsElement):this._svgNode.appendChild(d),this._defsElement=d};var S9=xV;var jQo=x(T(),1);var mYt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],$x=15,TV=105;function hve(e,t){return e-t}function Uoe(e,t){let n=xo(t,e,hve);return n<0?~n:n}function hYt(e,t){if(Math.abs(e)<=$x)return e/$x;let n=$x,i=TV,o,r=0,s;return e>0?(o=Math.log(t[t.length-1]),s=(o-r)/(i-n),Math.exp(r+s*(e-n))):(o=Math.log(-t[0]),s=(o-r)/(i-n),-Math.exp(r+s*(Math.abs(e)-n)))}function fYt(e,t,n){if(n.clockStep===Io.SYSTEM_CLOCK)return $x;if(Math.abs(e)<=1)return e*$x;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=$x,r=TV,s,a=0,c;return e>0?(s=Math.log(i),c=(s-a)/(r-o),(Math.log(e)-a)/c+o):(s=Math.log(-t[0]),c=(s-a)/(r-o),-((Math.log(Math.abs(e))-a)/c+o))}function rh(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=rh.defaultDateFormatter,this._timeFormatter=rh.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,Ve.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(rh.defaultTicks),this.timeLabel=void 0,Ve.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,Ve.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,Ve.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===Io.SYSTEM_CLOCK)return"Today";let a=s.multiplier;return a%1===0?`${a.toFixed(0)}x`:`${a.toFixed(3).replace(/0{0,3}$/,"")}x`}),this.shuttleRingAngle=void 0,Ve.defineProperty(this,"shuttleRingAngle",{get:function(){return fYt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,TV),-TV);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=Io.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===TV){c.multiplier=s>0?a[a.length-1]:a[0];return}let d=hYt(s,a);if(t.snapToTicks)d=a[Uoe(d,a)];else if(d!==0){let u=Math.abs(d);if(u>100){let m=u.toFixed(0).length-2,p=Math.pow(10,m);d=Math.round(d/p)*p|0}else u>$x?d=Math.round(d):u>1?d=+d.toFixed(1):u>0&&(d=+d.toFixed(2))}c.multiplier=d}}),this._canAnimate=void 0,Ve.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===gs.UNBOUNDED)return!0;let c=s.multiplier,d=s.currentTime,u=s.startTime,m=!1;if(a===gs.LOOP_STOP)m=Q.greaterThan(d,u)||d.equals(u)&&c>0;else{let p=s.stopTime;m=Q.greaterThan(d,u)&&Q.lessThan(d,p)||d.equals(u)&&c>0||d.equals(p)&&c<0}return m||(s.shouldAnimate=!1),m}),this._isSystemTimeAvailable=void 0,Ve.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===gs.UNBOUNDED)return!0;let c=s.systemTime;return Q.greaterThanOrEquals(c,s.startTime)&&Q.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,Ve.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=Ln(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new Qx(n,{toggled:Ve.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=Ln(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new Qx(i,{toggled:Ve.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=Ln(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new Qx(o,{toggled:Ve.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==Io.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=Ln(function(){t._clockViewModel.clockStep=Io.SYSTEM_CLOCK},Ve.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new Qx(r,{toggled:Ve.computed(function(){return e.clockStep===Io.SYSTEM_CLOCK}),tooltip:Ve.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=Ln(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,d=Uoe(c,a)-1;d>=0&&(s.multiplier=a[d])}),this._faster=Ln(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,d=Uoe(c,a)+1;d<a.length&&(s.multiplier=a[d])})}rh.defaultDateFormatter=function(e,t){let n=Q.toGregorianDate(e);return`${mYt[n.month-1]} ${n.day} ${n.year}`};rh.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800];rh.defaultTimeFormatter=function(e,t){let n=Q.toGregorianDate(e),i=Math.round(n.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")}.${i.toString().padStart(3,"0")}`:`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")} UTC`};rh.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};rh.prototype.setShuttleRingTicks=function(e){let t,n,i,o={},r=this._sortedFilteredPositiveTicks;for(r.length=0,t=0,n=e.length;t<n;++t)i=e[t],o.hasOwnProperty(i)||(o[i]=!0,r.push(i));r.sort(hve);let s=[];for(n=r.length,t=n-1;t>=0;--t)i=r[t],i!==0&&s.push(-i);$n(s,r),this._allShuttleRingTicks=s};Object.defineProperties(rh.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}});rh._maxShuttleRingAngle=TV;rh._realtimeShuttleRingAngle=$x;var A9=rh;var c8o=x(T(),1);var t8o=x(T(),1);function pYt(e){return function(t){let n=e._scene.pick(t.position);l(n)&&n.primitive instanceof ms&&(e.tileset=n.primitive),e.pickActive=!1}}function pve(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);l(i)&&i.primitive instanceof ms&&(e.tileset=i.primitive)},En.MOUSE_MOVE):(e._eventHandler.removeInputAction(En.MOUSE_MOVE),e.picking=e.picking)}var bYt={maximumFractionDigits:3};function Z9(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,bYt):Math.round(t).toLocaleString()}function C9(e,t){if(!l(e))return"";let n=t?e._statisticsPerPass[tr.PICK]:e._statisticsPerPass[tr.RENDER],i='<ul class="cesium-cesiumInspector-statistics">';return i+=`<li><strong>Visited: </strong>${n.visited.toLocaleString()}</li><li><strong>Selected: </strong>${n.selected.toLocaleString()}</li><li><strong>Commands: </strong>${n.numberOfCommands.toLocaleString()}</li>`,i+="</ul>",t||(i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Requests: </strong>${n.numberOfPendingRequests.toLocaleString()}</li><li><strong>Attempted: </strong>${n.numberOfAttemptedRequests.toLocaleString()}</li><li><strong>Processing: </strong>${n.numberOfTilesProcessing.toLocaleString()}</li><li><strong>Content Ready: </strong>${n.numberOfTilesWithContentReady.toLocaleString()}</li><li><strong>Total: </strong>${n.numberOfTilesTotal.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Features Selected: </strong>${n.numberOfFeaturesSelected.toLocaleString()}</li><li><strong>Features Loaded: </strong>${n.numberOfFeaturesLoaded.toLocaleString()}</li><li><strong>Points Selected: </strong>${n.numberOfPointsSelected.toLocaleString()}</li><li><strong>Points Loaded: </strong>${n.numberOfPointsLoaded.toLocaleString()}</li><li><strong>Triangles Selected: </strong>${n.numberOfTrianglesSelected.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Tiles styled: </strong>${n.numberOfTilesStyled.toLocaleString()}</li><li><strong>Features styled: </strong>${n.numberOfFeaturesStyled.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Children Union Culled: </strong>${n.numberOfTilesCulledWithChildrenUnion.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Geometry Memory (MB): </strong>${Z9(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${Z9(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${Z9(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function bve(){let e=Li.statistics;return` + <ul class="cesium-cesiumInspector-statistics"> + <li><strong>Geometry Memory (MB): </strong>${Z9(e.geometryByteLength)}</li> + <li><strong>Texture Memory (MB): </strong>${Z9(e.texturesByteLength)}</li> + </ul> + `}var gYt=[{text:"Highlight",value:bd.HIGHLIGHT},{text:"Replace",value:bd.REPLACE},{text:"Mix",value:bd.MIX}],fve=new U(1,1,0,.4),yYt=new U,tH=new U;function hc(e,t){let n=this,i=e.canvas;this._eventHandler=new Uu(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new hg({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this.hasEnabledWireframe=!1,this._tileset=void 0,this._feature=void 0,this._tile=void 0,Ve.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile","_tileset","hasEnabledWireframe"]),this._properties=Ve.observable({}),this.properties=[],Ve.defineProperty(this,"properties",function(){let w=[],z=n._properties();for(let K in z)z.hasOwnProperty(K)&&w.push(K);return w});let o=Ve.observable();Ve.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(w){o(w),l(n._tileset)&&(n._tileset.dynamicScreenSpaceError=w)}}),this.dynamicScreenSpaceError=!1;let r=Ve.observable();Ve.defineProperty(this,"colorBlendMode",{get:function(){return r()},set:function(w){r(w),l(n._tileset)&&(n._tileset.colorBlendMode=w,n._scene.requestRender())}}),this.colorBlendMode=bd.HIGHLIGHT;let s=Ve.observable(),a=Ve.observable();Ve.defineProperty(this,"picking",{get:function(){return a()},set:function(w){a(w),w?n._eventHandler.setInputAction(function(z){let K=e.pick(z.endPosition);if(K instanceof Ds?(n.feature=K,n.tile=K.content.tile):l(K)&&l(K.content)?(n.feature=void 0,n.tile=K.content.tile):(n.feature=void 0,n.tile=void 0),!!l(n._tileset)){if(s&&l(K)&&l(K.content)){let ee;e.pickPositionSupported&&(ee=e.pickPosition(z.endPosition),l(ee)&&(n._tileset.debugPickPosition=ee)),n._tileset.debugPickedTile=K.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},En.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(En.MOUSE_MOVE))}}),this.picking=!0;let c=Ve.observable();Ve.defineProperty(this,"colorize",{get:function(){return c()},set:function(w){c(w),l(n._tileset)&&(n._tileset.debugColorizeTiles=w,n._scene.requestRender())}}),this.colorize=!1;let d=Ve.observable();Ve.defineProperty(this,"wireframe",{get:function(){return d()},set:function(w){d(w),l(n._tileset)&&(n._tileset.debugWireframe=w,n._scene.requestRender())}}),this.wireframe=!1;let u=Ve.observable();Ve.defineProperty(this,"showBoundingVolumes",{get:function(){return u()},set:function(w){u(w),l(n._tileset)&&(n._tileset.debugShowBoundingVolume=w,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let m=Ve.observable();Ve.defineProperty(this,"showContentBoundingVolumes",{get:function(){return m()},set:function(w){m(w),l(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=w,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=Ve.observable();Ve.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(w){p(w),l(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=w,n._scene.requestRender())}}),this.showRequestVolumes=!1;let b=Ve.observable();Ve.defineProperty(this,"freezeFrame",{get:function(){return b()},set:function(w){b(w),l(n._tileset)&&(n._tileset.debugFreezeFrame=w,n._scene.debugShowFrustumPlanes=w,n._scene.requestRender())}}),this.freezeFrame=!1,Ve.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(w){s(w),l(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=w,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let f=Ve.observable();Ve.defineProperty(this,"showGeometricError",{get:function(){return f()},set:function(w){f(w),l(n._tileset)&&(n._tileset.debugShowGeometricError=w,n._scene.requestRender())}}),this.showGeometricError=!1;let y=Ve.observable();Ve.defineProperty(this,"showRenderingStatistics",{get:function(){return y()},set:function(w){y(w),l(n._tileset)&&(n._tileset.debugShowRenderingStatistics=w,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let _=Ve.observable();Ve.defineProperty(this,"showMemoryUsage",{get:function(){return _()},set:function(w){_(w),l(n._tileset)&&(n._tileset.debugShowMemoryUsage=w,n._scene.requestRender())}}),this.showMemoryUsage=!1;let S=Ve.observable();Ve.defineProperty(this,"showUrl",{get:function(){return S()},set:function(w){S(w),l(n._tileset)&&(n._tileset.debugShowUrl=w,n._scene.requestRender())}}),this.showUrl=!1;let A=Ve.observable();Ve.defineProperty(this,"maximumScreenSpaceError",{get:function(){return A()},set:function(w){w=Number(w),isNaN(w)||(A(w),l(n._tileset)&&(n._tileset.maximumScreenSpaceError=w))}}),this.maximumScreenSpaceError=16;let Z=Ve.observable();Ve.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return Z()},set:function(w){w=Number(w),isNaN(w)||(Z(w),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=w))}}),this.dynamicScreenSpaceErrorDensity=2e-4,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,Ve.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(Z(),1/6)},set:function(w){let z=Math.pow(w,6);Z(z),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=z)}});let R=Ve.observable();Ve.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return R()},set:function(w){w=Number(w),isNaN(w)||(R(w),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=w))}}),this.dynamicScreenSpaceErrorFactor=24;let G=pYt(this),E=Ve.observable();Ve.defineProperty(this,"pickActive",{get:function(){return E()},set:function(w){E(w),w?n._eventHandler.setInputAction(G,En.LEFT_CLICK):n._eventHandler.removeInputAction(En.LEFT_CLICK)}});let v=Ve.observable();Ve.defineProperty(this,"pointCloudShading",{get:function(){return v()},set:function(w){v(w),l(n._tileset)&&(n._tileset.pointCloudShading.attenuation=w)}}),this.pointCloudShading=!1;let I=Ve.observable();Ve.defineProperty(this,"geometricErrorScale",{get:function(){return I()},set:function(w){w=Number(w),isNaN(w)||(I(w),l(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=w))}}),this.geometricErrorScale=1;let X=Ve.observable();Ve.defineProperty(this,"maximumAttenuation",{get:function(){return X()},set:function(w){w=Number(w),isNaN(w)||(X(w),l(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=w===0?void 0:w))}}),this.maximumAttenuation=0;let Y=Ve.observable();Ve.defineProperty(this,"baseResolution",{get:function(){return Y()},set:function(w){w=Number(w),isNaN(w)||(Y(w),l(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=w===0?void 0:w))}}),this.baseResolution=0;let g=Ve.observable();Ve.defineProperty(this,"eyeDomeLighting",{get:function(){return g()},set:function(w){g(w),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=w)}}),this.eyeDomeLighting=!1;let C=Ve.observable();Ve.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return C()},set:function(w){w=Number(w),isNaN(w)||(C(w),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=w))}}),this.eyeDomeLightingStrength=1;let V=Ve.observable();Ve.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return V()},set:function(w){w=Number(w),isNaN(w)||(V(w),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=w))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let L=Ve.observable();Ve.defineProperty(this,"skipLevelOfDetail",{get:function(){return L()},set:function(w){L(w),l(n._tileset)&&(n._tileset.skipLevelOfDetail=w)}}),this.skipLevelOfDetail=!0;let P=Ve.observable();Ve.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return P()},set:function(w){w=Number(w),isNaN(w)||(P(w),l(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=w))}}),this.skipScreenSpaceErrorFactor=16;let N=Ve.observable();Ve.defineProperty(this,"baseScreenSpaceError",{get:function(){return N()},set:function(w){w=Number(w),isNaN(w)||(N(w),l(n._tileset)&&(n._tileset.baseScreenSpaceError=w))}}),this.baseScreenSpaceError=1024;let O=Ve.observable();Ve.defineProperty(this,"skipLevels",{get:function(){return O()},set:function(w){w=Number(w),isNaN(w)||(O(w),l(n._tileset)&&(n._tileset.skipLevels=w))}}),this.skipLevels=1;let M=Ve.observable();Ve.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return M()},set:function(w){M(w),l(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=w)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let D=Ve.observable();Ve.defineProperty(this,"loadSiblings",{get:function(){return D()},set:function(w){D(w),l(n._tileset)&&(n._tileset.loadSiblings=w)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()}),l(this._tileset)||pve(this,!0)}Object.defineProperties(hc.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},resourceCacheStatisticsText:{get:function(){return this._resourceCacheStatisticsText}},colorBlendModes:{get:function(){return gYt}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,l(e)){this._properties(e.properties);let t=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],n=t.length;for(let o=0;o<n;++o){let r=t[o];this[r]=this[r]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings,this.hasEnabledWireframe=e._enableDebugWireframe;let i=e.pointCloudShading;this.pointCloudShading=i.attenuation,this.geometricErrorScale=i.geometricErrorScale,this.maximumAttenuation=i.maximumAttenuation?i.maximumAttenuation:0,this.baseResolution=i.baseResolution?i.baseResolution:0,this.eyeDomeLighting=i.eyeDomeLighting,this.eyeDomeLightingStrength=i.eyeDomeLightingStrength,this.eyeDomeLightingRadius=i.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=C9(e,!1),this._pickStatisticsText=C9(e,!0),this._resourceCacheStatisticsText=bve(),pve(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;l(t)&&!t.content.isDestroyed()&&(!this.colorize&&l(this._style)?t.color=l(this._style.color)?this._style.color.evaluateColor(t,yYt):U.WHITE:t.color=tH,this._scene.requestRender()),l(e)&&(U.clone(e.color,tH),e.color=fve,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;l(t)&&!t.isDestroyed()&&!Doe(t.content)&&(t.color=tH,this._scene.requestRender()),l(e)&&!Doe(e.content)&&(U.clone(e.color,tH),e.color=fve,this._scene.requestRender()),this._tile=e}}});function Doe(e){if(!l(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)if(!Doe(t[i]))return!1;return!0}return!1}hc.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};hc.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};hc.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};hc.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};hc.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};hc.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};hc.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};hc.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};hc.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};hc.prototype.trimTilesCache=function(){l(this._tileset)&&this._tileset.trimLoadedTiles()};hc.prototype.compileStyle=function(){let e=this._tileset;if(!(!l(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new Cb(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};hc.prototype.styleEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,d;if(t.shiftKey)for(d=0;d<c;++d)a[d][0]===" "&&(a[d][1]===" "?(a[d]=a[d].substr(2),r-=2):(a[d]=a[d].substr(1),r-=1));else for(d=0;d<c;++d)a[d]=` ${a[d]}`,r+=2;let u=a.join(` +`);n.value=n.value.slice(0,i)+u+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileStyle();return!0};hc.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),l(e)){if(e.isDestroyed()){this.tile=void 0,this.feature=void 0,this.tileset=void 0;return}let t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=C9(e,!1),this._pickStatisticsText=C9(e,!0),this._resourceCacheStatisticsText=bve())};hc.prototype.isDestroyed=function(){return!1};hc.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){Ve.getObservable(e,t).dispose()}),he(this)};hc.getStatistics=C9;var R9=hc;function nH(e,t){e=Pn(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new R9(t,i);this._viewModel=o,this._container=e,this._element=n;let r=document.createElement("div");r.textContent="3D Tiles Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleInspector"),n.appendChild(r),n.className="cesium-cesiumInspector cesium-3DTilesInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",n.appendChild(s);let a=Jd.createSection,c=Jd.createCheckbox,d=Jd.createRangeInput,u=Jd.createButton,m=a(s,"Tileset","tilesetVisible","toggleTileset"),p=a(s,"Display","displayVisible","toggleDisplay"),b=a(s,"Update","updateVisible","toggleUpdate"),f=a(s,"Logging","loggingVisible","toggleLogging"),y=a(s,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),_=a(s,"Style","styleVisible","toggleStyle"),S=a(s,"Optimization","optimizationVisible","toggleOptimization"),A=document.createElement("div");A.className="field-group";let Z=document.createElement("label");Z.className="field-label",Z.appendChild(document.createTextNode("Properties: "));let R=document.createElement("div");R.setAttribute("data-bind","text: properties"),A.appendChild(Z),A.appendChild(R),m.appendChild(A),m.appendChild(u("Pick Tileset","togglePickTileset","pickActive")),m.appendChild(u("Trim Tiles Cache","trimTilesCache")),m.appendChild(c("Enable Picking","picking")),p.appendChild(c("Colorize","colorize"));let G=p.appendChild(c("Wireframe","wireframe","_tileset === undefined || hasEnabledWireframe")),E=document.createElement("p");E.setAttribute("data-bind","visible: _tileset !== undefined && !hasEnabledWireframe"),E.setAttribute("class","cesium-3DTilesInspector-disabledElementsInfo"),E.innerText="Set enableDebugWireframe to true in the tileset constructor to enable this option.",G.appendChild(E),p.appendChild(c("Bounding Volumes","showBoundingVolumes")),p.appendChild(c("Content Volumes","showContentBoundingVolumes")),p.appendChild(c("Request Volumes","showRequestVolumes")),p.appendChild(c("Point Cloud Shading","pointCloudShading"));let v=document.createElement("div");v.setAttribute("data-bind","visible: pointCloudShading"),v.appendChild(d("Geometric Error Scale","geometricErrorScale",0,2,.01)),v.appendChild(d("Maximum Attenuation","maximumAttenuation",0,32,1)),v.appendChild(d("Base Resolution","baseResolution",0,1,.01)),v.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(v);let I=document.createElement("div");I.setAttribute("data-bind","visible: eyeDomeLighting"),I.appendChild(d("EDL Strength","eyeDomeLightingStrength",0,2,.1)),I.appendChild(d("EDL Radius","eyeDomeLightingRadius",0,4,.1)),v.appendChild(I),b.appendChild(c("Freeze Frame","freezeFrame")),b.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let X=document.createElement("div");X.appendChild(d("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),b.appendChild(X);let Y=document.createElement("div");Y.setAttribute("data-bind","visible: dynamicScreenSpaceError"),Y.appendChild(d("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),Y.appendChild(d("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,32,.1)),b.appendChild(Y),f.appendChild(c("Performance","performance")),f.appendChild(i),f.appendChild(c("Statistics","showStatistics"));let g=document.createElement("div");g.className="cesium-3dTilesInspector-statistics",g.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),f.appendChild(g),f.appendChild(c("Pick Statistics","showPickStatistics"));let C=document.createElement("div");C.className="cesium-3dTilesInspector-statistics",C.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),f.appendChild(C),f.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let V=document.createElement("div");V.className="cesium-3dTilesInspector-statistics",V.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),f.appendChild(V);let L=document.createElement("div");_.appendChild(L),L.appendChild(document.createTextNode("Color Blend Mode: "));let P=document.createElement("select");P.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),L.appendChild(P);let N=document.createElement("textarea");N.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),L.className="cesium-cesiumInspector-styleEditor",L.appendChild(N);let O=u("Compile (Ctrl+Enter)","compileStyle");L.appendChild(O);let M=document.createElement("div");M.className="cesium-cesiumInspector-error",M.setAttribute("data-bind","text: editorError"),L.appendChild(M),y.appendChild(c("Show Picked Only","showOnlyPickedTileDebugLabel")),y.appendChild(c("Geometric Error","showGeometricError")),y.appendChild(c("Rendering Statistics","showRenderingStatistics")),y.appendChild(c("Memory Usage (MB)","showMemoryUsage")),y.appendChild(c("Url","showUrl")),S.appendChild(c("Skip Tile LODs","skipLevelOfDetail"));let D=document.createElement("div");D.appendChild(d("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),S.appendChild(D);let w=document.createElement("div");w.appendChild(d("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),S.appendChild(w);let z=document.createElement("div");z.appendChild(d("Min. levels to skip","skipLevels",0,10,1)),S.appendChild(z),S.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),S.appendChild(c("Load siblings of visible tiles","loadSiblings")),Ve.applyBindings(o,n)}Object.defineProperties(nH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});nH.prototype.isDestroyed=function(){return!1};nH.prototype.destroy=function(){return Ve.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),he(this)};var V9=nH;var _8o=x(T(),1);var f8o=x(T(),1);function gve(e){e=e??B.EMPTY_OBJECT;let t=e.globe,n=e.imageryProviderViewModels??B.EMPTY_ARRAY,i=e.terrainProviderViewModels??B.EMPTY_ARRAY;this._globe=t,this.imageryProviderViewModels=n.slice(0),this.terrainProviderViewModels=i.slice(0),this.dropDownVisible=!1,Ve.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let o=Ve.getObservable(this,"imageryProviderViewModels"),r=Ve.pureComputed(function(){let m=o(),p={},b;for(b=0;b<m.length;b++){let _=m[b],S=_.category;l(p[S])?p[S].push(_):p[S]=[_]}let f=Object.keys(p),y=[];for(b=0;b<f.length;b++){let _=f[b];y.push({name:_,providers:p[_]})}return y});this._imageryProviders=r;let s=Ve.getObservable(this,"terrainProviderViewModels"),a=Ve.pureComputed(function(){let m=s(),p={},b;for(b=0;b<m.length;b++){let _=m[b],S=_.category;l(p[S])?p[S].push(_):p[S]=[_]}let f=Object.keys(p),y=[];for(b=0;b<f.length;b++){let _=f[b];y.push({name:_,providers:p[_]})}return y});this._terrainProviders=a,this.buttonTooltip=void 0,Ve.defineProperty(this,"buttonTooltip",function(){let m=this.selectedImagery,p=this.selectedTerrain,b=l(m)?m.name:void 0,f=l(p)?p.name:void 0;return l(b)&&l(f)?`${b} +${f}`:l(b)?b:f}),this.buttonImageUrl=void 0,Ve.defineProperty(this,"buttonImageUrl",function(){let m=this.selectedImagery;if(l(m))return m.iconUrl}),this.selectedImagery=void 0;let c=Ve.observable();this._currentImageryLayers=[],Ve.defineProperty(this,"selectedImagery",{get:function(){return c()},set:function(m){if(c()===m){this.dropDownVisible=!1;return}let p,b=this._currentImageryLayers,f=b.length,y=this._globe.imageryLayers,_=!1;for(p=0;p<f;p++){let S=y.length;for(let A=0;A<S;A++){let Z=y.get(A);if(Z===b[p]){y.remove(Z),_=!0;break}}}if(l(m)){let S=m.creationCommand();if(Array.isArray(S)){let A=S.length;for(this._currentImageryLayers=[],p=A-1;p>=0;p--){let Z=us.fromProviderAsync(S[p]);y.add(Z,0),this._currentImageryLayers.push(Z)}}else{this._currentImageryLayers=[];let A=us.fromProviderAsync(S);if(A.name=m.name,_)y.add(A,0);else{let Z=y.get(0);l(Z)&&y.remove(Z),y.add(A,0)}this._currentImageryLayers.push(A)}}c(m),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let d=Ve.observable();Ve.defineProperty(this,"selectedTerrain",{get:function(){return d()},set:function(m){if(d()===m){this.dropDownVisible=!1;return}let p;if(l(m)&&(p=m.creationCommand()),l(p)&&!l(p.then))this._globe.depthTestAgainstTerrain=!(p instanceof Jp),this._globe.terrainProvider=p;else if(l(p)){let b=!1,f=this._globe.terrainProviderChanged.addEventListener(()=>{b=!0,f()}),_=new u9(p).readyEvent.addEventListener(S=>{b||(this._globe.depthTestAgainstTerrain=!(S instanceof Jp),this._globe.terrainProvider=S,_())})}d(m),this.dropDownVisible=!1}});let u=this;this._toggleDropDown=Ln(function(){u.dropDownVisible=!u.dropDownVisible}),this.selectedImagery=e.selectedImageryProviderViewModel??n[0],this.selectedTerrain=e.selectedTerrainProviderViewModel}Object.defineProperties(gve.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var G9=gve;function iH(e,t){e=Pn(e);let n=new G9(t),i=document.createElement("button");i.type="button",i.className="cesium-button cesium-toolbar-button",i.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(i);let o=document.createElement("img");o.setAttribute("draggable","false"),o.className="cesium-baseLayerPicker-selected",o.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-baseLayerPicker-dropDown",r.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(r);let s=document.createElement("div");s.className="cesium-baseLayerPicker-sectionTitle",s.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),s.innerHTML="Imagery",r.appendChild(s);let a=document.createElement("div");a.className="cesium-baseLayerPicker-section",a.setAttribute("data-bind","foreach: _imageryProviders"),r.appendChild(a);let c=document.createElement("div");c.className="cesium-baseLayerPicker-category",a.appendChild(c);let d=document.createElement("div");d.className="cesium-baseLayerPicker-categoryTitle",d.setAttribute("data-bind","text: name"),c.appendChild(d);let u=document.createElement("div");u.className="cesium-baseLayerPicker-choices",u.setAttribute("data-bind","foreach: providers"),c.appendChild(u);let m=document.createElement("div");m.className="cesium-baseLayerPicker-item",m.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),u.appendChild(m);let p=document.createElement("img");p.className="cesium-baseLayerPicker-itemIcon",p.setAttribute("data-bind","attr: { src: iconUrl }"),p.setAttribute("draggable","false"),m.appendChild(p);let b=document.createElement("div");b.className="cesium-baseLayerPicker-itemLabel",b.setAttribute("data-bind","text: name"),m.appendChild(b);let f=document.createElement("div");f.className="cesium-baseLayerPicker-sectionTitle",f.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),f.innerHTML="Terrain",r.appendChild(f);let y=document.createElement("div");y.className="cesium-baseLayerPicker-section",y.setAttribute("data-bind","foreach: _terrainProviders"),r.appendChild(y);let _=document.createElement("div");_.className="cesium-baseLayerPicker-category",y.appendChild(_);let S=document.createElement("div");S.className="cesium-baseLayerPicker-categoryTitle",S.setAttribute("data-bind","text: name"),_.appendChild(S);let A=document.createElement("div");A.className="cesium-baseLayerPicker-choices",A.setAttribute("data-bind","foreach: providers"),_.appendChild(A);let Z=document.createElement("div");Z.className="cesium-baseLayerPicker-item",Z.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),A.appendChild(Z);let R=document.createElement("img");R.className="cesium-baseLayerPicker-itemIcon",R.setAttribute("data-bind","attr: { src: iconUrl }"),R.setAttribute("draggable","false"),Z.appendChild(R);let G=document.createElement("div");G.className="cesium-baseLayerPicker-itemLabel",G.setAttribute("data-bind","text: name"),Z.appendChild(G),Ve.applyBindings(n,i),Ve.applyBindings(n,r),this._viewModel=n,this._container=e,this._element=i,this._dropPanel=r,this._closeDropDown=function(E){i.contains(E.target)||r.contains(E.target)||(n.dropDownVisible=!1)},mn.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(iH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});iH.prototype.isDestroyed=function(){return!1};iH.prototype.destroy=function(){return mn.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ve.cleanNode(this._element),Ve.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),he(this)};var E9=iH;var V8o=x(T(),1);function yve(e){let t=e.creationFunction;l(t.canExecute)||(t=Ln(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=e.category??"",Ve.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(yve.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var ir=yve;var W8o=x(T(),1);function xYt(){let e=[],t=devicePixelRatio>=2;return e.push(new ir({name:"Bing Maps Aerial",iconUrl:$t("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return bb({style:pb.AERIAL})}})),e.push(new ir({name:"Bing Maps Aerial with Labels",iconUrl:$t("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return bb({style:pb.AERIAL_WITH_LABELS})}})),e.push(new ir({name:"Bing Maps Roads",iconUrl:$t("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return bb({style:pb.ROAD})}})),e.push(new ir({name:"ArcGIS World Imagery",iconUrl:$t("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"),tooltip:`ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return hb.fromBasemapType(kh.SATELLITE,{enablePickFeatures:!1})}})),e.push(new ir({name:"ArcGIS World Hillshade",iconUrl:$t("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"),tooltip:`ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available down to ~1:9k. For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return hb.fromBasemapType(kh.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new ir({name:"Esri World Ocean",iconUrl:$t("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"),tooltip:`ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data. The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. For more information on this map, including our terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return hb.fromBasemapType(kh.OCEANS,{enablePickFeatures:!1})}})),e.push(new ir({name:"Open\xADStreet\xADMap",iconUrl:$t("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. +http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new Wg({url:"https://tile.openstreetmap.org/"})}})),e.push(new ir({name:"Stadia x Stamen Watercolor",iconUrl:$t("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and reminiscent of hand drawn maps, the watercolor maps from Stamen Design apply raster effect area washes and organic edges over a paper texture to add warm pop to any map. +https://docs.stadiamaps.com/map-styles/stamen-watercolor/`,category:"Other",creationFunction:function(){return new Wg({url:"https://tiles.stadiamaps.com/tiles/stamen_watercolor/",fileExtension:"jpg",credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> + © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new ir({name:"Stadia x Stamen Toner",iconUrl:$t("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and the most popular of the excellent styles from Stamen Design, these high-contrast B+W (black and white) maps are the perfect backdrop for your colorful and eye-catching overlays. +https://docs.stadiamaps.com/map-styles/stamen-toner/`,category:"Other",creationFunction:function(){return new Wg({url:"https://tiles.stadiamaps.com/tiles/stamen_toner/",retinaTiles:t,credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> + © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new ir({name:"Stadia Alidade Smooth",iconUrl:$t("Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png"),tooltip:`Stadia's custom Alidade Smooth style is designed for maps that use a lot of markers or overlays. It features a muted color scheme and fewer points of interest to allow your added data to shine. +https://docs.stadiamaps.com/map-styles/alidade-smooth/`,category:"Other",creationFunction:function(){return new Wg({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new ir({name:"Stadia Alidade Smooth Dark",iconUrl:$t("Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png"),tooltip:`Stadia Alidade Smooth Dark, like its lighter cousin, is also designed to stay out of the way. It just flips the dark mode switch on the color scheme. With the lights out, your data can now literally shine. +https://docs.stadiamaps.com/map-styles/alidade-smooth-dark/`,category:"Other",creationFunction:function(){return new Wg({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new ir({name:"Sentinel-2",iconUrl:$t("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return Nl.fromAssetId(3954)}})),e.push(new ir({name:"Blue Marble",iconUrl:$t("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return Nl.fromAssetId(3845)}})),e.push(new ir({name:"Earth at night",iconUrl:$t("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return Nl.fromAssetId(3812)}})),e.push(new ir({name:"Natural Earth\xA0II",iconUrl:$t("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast. +http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return Py.fromUrl($t("Assets/Textures/NaturalEarthII"))}})),e.push(new ir({name:"Google Maps Satellite",iconUrl:$t("Widgets/Images/ImageryProviders/googleSatellite.png"),tooltip:"Imagery from Google Maps",category:"Cesium ion",creationFunction:function(){return Nl.fromAssetId(3830182)}})),e.push(new ir({name:"Google Maps Satellite with Labels",iconUrl:$t("Widgets/Images/ImageryProviders/googleSatelliteLabels.png"),tooltip:"Imagery with place labels from Google Maps",category:"Cesium ion",creationFunction:function(){return Nl.fromAssetId(3830183)}})),e.push(new ir({name:"Google Maps Roadmap",iconUrl:$t("Widgets/Images/ImageryProviders/googleRoadmap.png"),tooltip:"Labeled roads and other features on a base landscape from Google Maps",category:"Cesium ion",creationFunction:function(){return Nl.fromAssetId(3830184)}})),e.push(new ir({name:"Google Maps Contour",iconUrl:$t("Widgets/Images/ImageryProviders/googleContour.png"),tooltip:"Hillshade mapping, contour lines, natural features (roadmap features hidden) from Google Maps",category:"Cesium ion",creationFunction:function(){return Nl.fromAssetId(3830186)}})),e.push(new ir({name:"Azure Maps Aerial",iconUrl:$t("Widgets/Images/ImageryProviders/azureAerial.png"),tooltip:"Imagery from Azure Maps",category:"Cesium ion",creationFunction:function(){return Nl.fromAssetId(3891168)}})),e.push(new ir({name:"Azure Maps Roads",iconUrl:$t("Widgets/Images/ImageryProviders/azureRoads.png"),tooltip:"Labeled roads and other features on a base landscape from Azure Maps",category:"Cesium ion",creationFunction:function(){return Nl.fromAssetId(3891169)}})),e}var L9=xYt;var P8o=x(T(),1);function TYt(){let e=[];return e.push(new ir({name:"WGS84 Ellipsoid",iconUrl:$t("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new Jp({ellipsoid:ie.WGS84})}})),e.push(new ir({name:"Cesium World Terrain",iconUrl:$t("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return WA({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var W9=TYt;var J8o=x(T(),1);var k8o=x(T(),1);function _Yt(e){let t;if(l(e)){t="Command Statistics";let n=e.commandsInFrustums;for(let i in n)if(n.hasOwnProperty(i)){let o=parseInt(i,10),r;if(o===7)r="1, 2 and 3";else{let s=[];for(let a=2;a>=0;a--){let c=Math.pow(2,a);o>=c&&(s.push(a+1),o-=c)}r=s.reverse().join(" and ")}t+=`<br>    ${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function Ooe(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var SYt=new _n,AYt=new h;function v9(e,t){let n=this,i=e.canvas,o=new Uu(i);this._eventHandler=o,this._scene=e,this._canvas=i,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=t;let r=this._scene.globe;r.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",Ve.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=Ln(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=Ln(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=Ln(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=Ln(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=Ve.getObservable(this,"frustums").subscribe(function(d){n._scene.debugShowFrustums=d,n._scene.requestRender()}),this._frustumPlanesSubscription=Ve.getObservable(this,"frustumPlanes").subscribe(function(d){n._scene.debugShowFrustumPlanes=d,n._scene.requestRender()}),this._performanceSubscription=Ve.getObservable(this,"performance").subscribe(function(d){d?n._performanceDisplay=new hg({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=Ln(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=Ve.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=Ln(function(){if(n.primitiveReferenceFrame){let d=n._primitive.modelMatrix;n._modelMatrixPrimitive=new Bk({modelMatrix:d}),n._scene.primitives.add(n._modelMatrixPrimitive)}else l(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=Ve.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=Ln(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(d){return l(n._modelMatrixPrimitive)&&d.owner===n._modelMatrixPrimitive._primitive?!0:l(n._primitive)?d.owner===n._primitive||d.owner===n._primitive._billboardCollection||d.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=Ve.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=Ve.getObservable(this,"wireframe").subscribe(function(d){r._surface.tileProvider._debug.wireframe=d,n._scene.requestRender()}),this._depthFrustumSubscription=Ve.getObservable(this,"depthFrustum").subscribe(function(d){n._scene.debugShowDepthFrustum=d,n._scene.requestRender()}),this._incrementDepthFrustum=Ln(function(){let d=n.depthFrustum+1;return n.depthFrustum=Ooe(1,n._numberOfFrustums,d),n._scene.requestRender(),!0}),this._decrementDepthFrustum=Ln(function(){let d=n.depthFrustum-1;return n.depthFrustum=Ooe(1,n._numberOfFrustums,d),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=Ve.getObservable(this,"suspendUpdates").subscribe(function(d){r._surface._debug.suspendLodUpdate=d,d||(n.filterTile=!1)});let s;this._showTileCoordinates=Ln(function(){return n.tileCoordinates&&!l(s)?s=e.imageryLayers.addImageryProvider(new h9({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&l(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=Ve.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=Ve.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=Ln(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=Ln(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],l(n._tile)&&n._tile.renderable&&r._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=Ve.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(d){let u=n._scene.pick({x:d.position.x,y:d.position.y});l(u)&&(n.primitive=l(u.collection)?u.collection:u.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=Ln(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=Ve.getObservable(this,"pickPrimitiveActive").subscribe(function(d){d?o.setInputAction(a,En.LEFT_CLICK):o.removeInputAction(En.LEFT_CLICK)});function c(d){let u,m=r.ellipsoid,p=n._scene.camera.getPickRay(d.position,SYt),b=r.pick(p,n._scene,AYt);if(l(b)){let f=m.cartesianToCartographic(b),y=r._surface.tileProvider._tilesToRenderByTextureCount;for(let _=0;!u&&_<y.length;++_){let S=y[_];if(l(S))for(let A=0;!u&&A<S.length;++A){let Z=S[A];se.contains(Z.rectangle,f)&&(u=Z)}}}n.tile=u,n.pickTileActive=!1}this._pickTile=Ln(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=Ve.getObservable(this,"pickTileActive").subscribe(function(d){d?o.setInputAction(c,En.LEFT_CLICK):o.removeInputAction(En.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(v9.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){let e=this;return Ln(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return Ln(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return Ln(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return Ln(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return Ln(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,l(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,l(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=e,e.show=!1,setTimeout(function(){e.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(e){if(l(e)){this.hasPickedTile=!0;let t=this._tile;if(e!==t){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;let n=e.data;l(n)&&l(n.tileBoundingRegion)?this.tileText+=`<br>Min: ${n.tileBoundingRegion.minimumHeight} Max: ${n.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}});v9.prototype._update=function(){this.frustums&&(this.frustumStatisticText=_Yt(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=Ooe(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`};v9.prototype.isDestroyed=function(){return!1};v9.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),he(this)};var F9=v9;function oH(e,t){e=Pn(e);let n=document.createElement("div"),i=new F9(t,n);this._viewModel=i,this._container=e;let o=document.createElement("div");this._element=o;let r=document.createElement("div");r.textContent="Cesium Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleDropDown"),o.appendChild(r),o.className="cesium-cesiumInspector",o.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",o.appendChild(s);let a=Jd.createSection,c=Jd.createCheckbox,d=a(s,"General","generalVisible","toggleGeneral"),u=c("Show Frustums","frustums"),m=document.createElement("div");m.className="cesium-cesiumInspector-frustumStatistics",m.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),u.appendChild(m),d.appendChild(u),d.appendChild(c("Show Frustum Planes","frustumPlanes")),d.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",d.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),d.appendChild(p);let b=document.createElement("div");d.appendChild(b);let f=document.createElement("span");f.setAttribute("data-bind",'html: "     Frustum:"'),b.appendChild(f);let y=document.createElement("span");y.setAttribute("data-bind","text: depthFrustumText"),b.appendChild(y);let _=document.createElement("input");_.type="button",_.value="-",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: decrementDepthFrustum"),b.appendChild(_);let S=document.createElement("input");S.type="button",S.value="+",S.className="cesium-cesiumInspector-pickButton",S.setAttribute("data-bind","click: incrementDepthFrustum"),b.appendChild(S);let A=a(s,"Primitives","primitivesVisible","togglePrimitives"),Z=document.createElement("div");Z.className="cesium-cesiumInspector-pickSection",A.appendChild(Z);let R=document.createElement("input");R.type="button",R.value="Pick a primitive",R.className="cesium-cesiumInspector-pickButton",R.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let G=document.createElement("div");G.className="cesium-cesiumInspector-center",G.appendChild(R),Z.appendChild(G),Z.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),Z.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),Z.appendChild(this._primitiveOnly);let E=a(s,"Terrain","terrainVisible","toggleTerrain"),v=document.createElement("div");v.className="cesium-cesiumInspector-pickSection",E.appendChild(v);let I=document.createElement("input");I.type="button",I.value="Pick a tile",I.className="cesium-cesiumInspector-pickButton",I.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),G=document.createElement("div"),G.appendChild(I),G.className="cesium-cesiumInspector-center",v.appendChild(G);let X=document.createElement("div");v.appendChild(X);let Y=document.createElement("input");Y.type="button",Y.value="Parent",Y.className="cesium-cesiumInspector-pickButton",Y.setAttribute("data-bind","click: selectParent");let g=document.createElement("input");g.type="button",g.value="NW",g.className="cesium-cesiumInspector-pickButton",g.setAttribute("data-bind","click: selectNW");let C=document.createElement("input");C.type="button",C.value="NE",C.className="cesium-cesiumInspector-pickButton",C.setAttribute("data-bind","click: selectNE");let V=document.createElement("input");V.type="button",V.value="SW",V.className="cesium-cesiumInspector-pickButton",V.setAttribute("data-bind","click: selectSW");let L=document.createElement("input");L.type="button",L.value="SE",L.className="cesium-cesiumInspector-pickButton",L.setAttribute("data-bind","click: selectSE");let P=document.createElement("div");P.className="cesium-cesiumInspector-tileText",X.className="cesium-cesiumInspector-frustumStatistics",X.appendChild(P),X.setAttribute("data-bind","visible: hasPickedTile"),P.setAttribute("data-bind","html: tileText");let N=document.createElement("div");N.className="cesium-cesiumInspector-relativeText",N.textContent="Select relative:",X.appendChild(N);let O=document.createElement("table"),M=document.createElement("tr"),D=document.createElement("tr"),w=document.createElement("td");w.appendChild(Y);let z=document.createElement("td");z.appendChild(g);let K=document.createElement("td");K.appendChild(C),M.appendChild(w),M.appendChild(z),M.appendChild(K);let ee=document.createElement("td"),H=document.createElement("td");H.appendChild(V);let te=document.createElement("td");te.appendChild(L),D.appendChild(ee),D.appendChild(H),D.appendChild(te),O.appendChild(M),O.appendChild(D),X.appendChild(O),v.appendChild(c("Show bounding volume","tileBoundingSphere","hasPickedTile")),v.appendChild(c("Show only selected","filterTile","hasPickedTile")),E.appendChild(c("Wireframe","wireframe")),E.appendChild(c("Suspend LOD update","suspendUpdates")),E.appendChild(c("Show tile coordinates","tileCoordinates")),Ve.applyBindings(i,this._element)}Object.defineProperties(oH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});oH.prototype.isDestroyed=function(){return!1};oH.prototype.destroy=function(){return Ve.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),he(this)};var I9=oH;var c7o=x(T(),1);var t7o=x(T(),1);function rH(e,t){l(t)||(t=document.body),t=Pn(t);let n=this,i=Ve.observable(Mr.fullscreen),o=Ve.observable(Mr.enabled),r=t.ownerDocument;this.isFullscreen=void 0,Ve.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,Ve.defineProperty(this,"isFullscreenEnabled",{get:function(){return o()},set:function(s){o(s&&Mr.enabled)}}),this.tooltip=void 0,Ve.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=Ln(function(){Mr.fullscreen?Mr.exitFullscreen():Mr.requestFullscreen(n._fullscreenElement)},Ve.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=Pn(e)??r.body,this._callback=function(){i(Mr.fullscreen)},r.addEventListener(Mr.changeEventName,this._callback)}Object.defineProperties(rH.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});rH.prototype.isDestroyed=function(){return!1};rH.prototype.destroy=function(){document.removeEventListener(Mr.changeEventName,this._callback),he(this)};var P9=rH;var ZYt="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",CYt="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";function sH(e,t){e=Pn(e);let n=new P9(t,e);n._exitFullScreenPath=CYt,n._enterFullScreenPath=ZYt;let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-fullscreenButton",i.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(i),Ve.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties(sH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});sH.prototype.isDestroyed=function(){return!1};sH.prototype.destroy=function(){return this._viewModel.destroy(),Ve.cleanNode(this._element),this._container.removeChild(this._element),he(this)};var X9=sH;var _7o=x(T(),1);var f7o=x(T(),1);var xve=1e3;function sh(e){l(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new EA({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._wasGeocodeCancelled=!1,this._previousCredits=[],this._complete=new Se,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=_ve,this._handleArrowUp=Tve;let t=this;this._suggestionsVisible=Ve.pureComputed(function(){let o=Ve.getObservable(t,"_suggestions")().length>0,r=Ve.getObservable(t,"_showSuggestions")();return o&&r}),this._searchCommand=Ln(function(i){if(i=i??Hx.SEARCH,t._focusTextbox=!1,l(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)WYt(t);else return EYt(t,t._geocoderServices,i)}),this.deselectSuggestion=function(){t._selectedSuggestion=void 0},this.handleKeyDown=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38;return(r||s)&&o.preventDefault(),!0},this.handleKeyUp=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38,a=o.key==="Enter"||o.keyCode===13;return s?Tve(t):r?_ve(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;Zve(t),t.destinationFound(t,o)},this.hideSuggestions=function(){t._showSuggestions=!1,t._selectedSuggestion=void 0},this.showSuggestions=function(){t._showSuggestions=!0},this.handleMouseover=function(i,o){i!==t._selectedSuggestion&&(t._selectedSuggestion=i)},this.keepExpanded=!1,this.autoComplete=e.autocomplete??!0,this.destinationFound=e.destinationFound??sh.flyToDestination,this._focusTextbox=!1,Ve.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=Ve.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){sh._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,Ve.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,Ve.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,Ve.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(sh.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}});sh.prototype.destroy=function(){this._suggestionSubscription.dispose()};function Tve(e){if(e._suggestions.length===0)return;let t=e._suggestions.indexOf(e._selectedSuggestion);if(t===-1||t===0){e._selectedSuggestion=void 0;return}let n=t-1;e._selectedSuggestion=e._suggestions[n],sh._adjustSuggestionsScroll(e,n)}function _ve(e){if(e._suggestions.length===0)return;let t=e._suggestions.length,i=(e._suggestions.indexOf(e._selectedSuggestion)+1)%t;e._selectedSuggestion=e._suggestions[i],sh._adjustSuggestionsScroll(e,i)}function RYt(e,t){let n=l(t)?t.availability:void 0;return l(n)?kS(t,[e]).then(function(i){return e=i[0],e.height+=xve,e}):(e.height+=xve,Promise.resolve(e))}function VYt(e,t){let n=e._scene,i=n.ellipsoid,o=n.camera,r=n.terrainProvider,s=t,a;return t instanceof se?W.equalsEpsilon(t.south,t.north,W.EPSILON7)&&W.equalsEpsilon(t.east,t.west,W.EPSILON7)?t=se.center(t):a=US(t,n):t=i.cartesianToCartographic(t),l(a)||(a=RYt(t,r)),a.then(function(c){s=i.cartographicToCartesian(c)}).finally(function(){o.flyTo({destination:s,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:F.IDENTITY})})}async function GYt(e,t,n){try{return{state:"fulfilled",value:await e.geocode(t,n),credits:e.credit}}catch(i){return{state:"rejected",reason:i}}}async function EYt(e,t,n){let i=e._searchText;if(Ave(i)){e.showSuggestions();return}e._isSearchInProgress=!0,e._wasGeocodeCancelled=!1;let o,r;for(o=0;o<t.length;o++){if(e._wasGeocodeCancelled)return;if(r=await GYt(t[o],i,n),l(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,zoe(e);let s=r.value;if(r.state==="fulfilled"&&l(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=Sve(e,oV.getCreditsFromResult(s[0]));l(a)||Boe(e,t[o].credit);return}e._searchText=`${i} (not found)`}function Boe(e,t){l(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function Sve(e,t){return l(t)&&t.forEach(n=>Boe(e,n)),t}function zoe(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function LYt(e,t){let n=Pn(e._viewContainer),i=n.getElementsByClassName("search-results")[0],r=n.getElementsByTagName("li")[t];if(t===0){i.scrollTop=0;return}let s=r.offsetTop;s+r.clientHeight>i.clientHeight?i.scrollTop=s+r.clientHeight:s<i.scrollTop&&(i.scrollTop=s)}function WYt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function Ave(e){return/^\s*$/.test(e)}function Zve(e){Ve.getObservable(e,"_suggestions").removeAll()}async function vYt(e){if(!e.autoComplete)return;let t=e._searchText;if(Zve(e),zoe(e),!Ave(t))for(let n of e._geocoderServices){let i=await n.geocode(t,Hx.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=oV.getCreditsFromResult(r);o=o&&!l(s),Sve(e,s)}),o&&Boe(e,n.credit)}if(e._suggestions.length>=5)return}}sh.flyToDestination=VYt;sh._updateSearchSuggestions=vYt;sh._adjustSuggestionsScroll=LYt;sh.prototype.isDestroyed=function(){return!1};sh.prototype.destroy=function(){return zoe(this),he(this)};var Y9=sh;var FYt="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",IYt="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";function aH(e){let t=Pn(e.container),n=new Y9(e);n._startSearchPath=FYt,n._stopSearchPath=IYt;let i=document.createElement("form");i.setAttribute("data-bind","submit: search");let o=document.createElement("input");o.type="search",o.className="cesium-geocoder-input",o.setAttribute("placeholder","Enter an address or landmark..."),o.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){o.select()},0)},o.addEventListener("focus",this._onTextBoxFocus,!1),i.appendChild(o),this._textBox=o;let r=document.createElement("span");r.className="cesium-geocoder-searchButton",r.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),i.appendChild(r),t.appendChild(i);let s=document.createElement("div");s.className="search-results",s.setAttribute("data-bind","visible: _suggestionsVisible");let a=document.createElement("ul");a.setAttribute("data-bind","foreach: _suggestions");let c=document.createElement("li");a.appendChild(c),c.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),s.appendChild(a),t.appendChild(s),Ve.applyBindings(n,i),Ve.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(d){let u=d.target;typeof d.composedPath=="function"&&(u=d.composedPath()[0]),t.contains(u)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(d){n._focusTextbox=!0,n.showSuggestions()},mn.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),t.addEventListener("pointerup",this._onInputEnd,!0),t.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),t.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),t.addEventListener("touchend",this._onInputEnd,!0),t.addEventListener("touchcancel",this._onInputEnd,!0))}Object.defineProperties(aH.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});aH.prototype.isDestroyed=function(){return!1};aH.prototype.destroy=function(){let e=this._container;return mn.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),e.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),e.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),e.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),Ve.cleanNode(this._form),Ve.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),he(this)};var N9=aH;var W7o=x(T(),1);var C7o=x(T(),1);function PYt(e,t){t.currentTarget.parentElement.parentElement.querySelector(`#${e.name}-expander`).classList.toggle("active"),t.currentTarget.textContent=t.currentTarget.textContent==="+"?"-":"+"}function Rve(e,t){Ve.track(e);for(let n=0;n<e.sublayers.length;n++)Rve(e.sublayers[n],t)}function cH(e){return e.modelName==="FullModel"}function Vve(e){return e.modelName==="Overview"}function Gve(e){return Vve(e)||cH(e)}function Cve(e,t){if(Gve(e)){e.visibility=!1;for(let i=0;i<e.sublayers.length;i++)e.sublayers[i].visibility=!0;let n={name:e.name,modelName:e.modelName,disable:Ve.observable(!1),index:t.sublayers.length};return t.topLayers.push(n),t.sublayers.push(e),n}}function XYt(e,t){if(Gve(e)){t.sublayers.forEach(i=>i.visibility=!1),t.sublayers[e.index].visibility=!0;let n=document.getElementById("bsl-wrapper");cH(e)?(t.currentLevel=t.selectedLevel,n.style.display="block"):(t.selectedLevel=t.currentLevel,t.currentLevel="All",n.style.display="none")}}async function YYt(e,t){try{let n=e.getAttributeNames();for(let i=0;i<n.length;i++)if(n[i]==="BldgLevel"){let o=e.getAttributeValues(n[i]);for(let r=0;r<o.length;r++)t.push(o[r])}t.sort((i,o)=>i-o),t.unshift("All")}catch(n){console.log(`There was an error getting attributes: ${n}`)}}function NYt(e){let t=this;this.levels=[],this.viewModel={sublayers:[],levels:this.levels,currentLevel:Ve.observable(),selectedLevel:"All",topLayers:[{name:"Select a layer to explore...",disable:Ve.observable(!0),index:-1}],currentLayer:Ve.observable(),expandClickHandler:PYt,setOptionDisable:function(i,o){Ve.applyBindingsToNode(i,{disable:o.disable},o)},defaultLayer:void 0},this.viewModel.currentLayer.subscribe(function(i){XYt(i,t.viewModel)});let n=e.sublayers;for(let i=0;i<n.length;i++){Rve(n[i],this.viewModel);let o=Cve(n[i],this.viewModel);l(o)&&(Vve(o)||!l(this.viewModel.defaultLayer)&&cH(o))&&(this.viewModel.defaultLayer=o)}if(this.viewModel.topLayers.length===1&&n.length>0){e.show=!1;let i={name:"Full Model",modelName:"FullModel",visibility:e.show,sublayers:e.sublayers};this.viewModel.defaultLayer=Cve(i,this.viewModel),this.viewModel.currentLayer.subscribe(function(o){e.show=cH(o)})}else this.viewModel.topLayers.length===1&&(this.viewModel.topLayers[0].name="Building layers not found");return YYt(e,this.levels),this.viewModel.currentLevel.subscribe(function(i){i!=="All"?e.filterByAttributes([{name:"BldgLevel",values:[i]}]):e.filterByAttributes()}),this.viewModel}var w9=NYt;function wYt(e,t){let n=document.getElementById(e),i=document.createElement("div");i.classList.add("cesium-viewer-i3s-explorer"),i.innerHTML=` + <h3>Building explorer</h3> + <select + data-bind="options: topLayers, optionsText: 'name', optionsAfterRender: setOptionDisable, value: currentLayer" + ></select> + <div id="bsl-wrapper"> + <h3>Select Level</h3> + <select data-bind="options: levels, value: currentLevel"></select> + <h3>Disciplines & Categories</h3> + <ul class="layersList" data-bind="foreach: sublayers"> + <ul class="layersList" data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })"> + <li> + <div class="li-wrapper"> + <span + class="expandItem" + data-bind="click: $root.expandClickHandler" + >+</span + > + <input + type="checkbox" + data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}" + /> + <label data-bind="attr: { for: name}"> + <span data-bind="text: name"></span> + </label> + </div> + <ul class="nested" data-bind="attr: { id: name + '-expander'}"> + <li data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })"> + <div class="li-wrapper"> + <input + type="checkbox" + data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}" + /> + <label data-bind="attr: { for: name}"> + <span data-bind="text: name"></span> + </label> + </div> + </li> + </ul> + </li> + </ul> + </ul> + </div>`,n.appendChild(i);let o=new w9(t);Ve.track(o),Ve.applyBindings(o,n),l(o.defaultLayer)&&(o.currentLayer=o.defaultLayer)}var Hoe=wYt;var U7o=x(T(),1);var P7o=x(T(),1);function Eve(e,t){this._scene=e,this._duration=t;let n=this;this._command=Ln(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",Ve.track(this,["tooltip"])}Object.defineProperties(Eve.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}});var M9=Eve;function lH(e,t,n){e=Pn(e);let i=new M9(t,n);i._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-home-button",o.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(o),Ve.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(lH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});lH.prototype.isDestroyed=function(){return!1};lH.prototype.destroy=function(){return Ve.cleanNode(this._element),this._container.removeChild(this._element),he(this)};var k9=lH;var $7o=x(T(),1);var z7o=x(T(),1);function Lve(){this.showInstructions=!1;let e=this;this._command=Ln(function(){e.showInstructions=!e.showInstructions}),this._showClick=Ln(function(){e._touch=!1}),this._showTouch=Ln(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",Ve.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(Lve.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var U9=Lve;function dH(e){let t=Pn(e.container),n=new U9,i=e.instructionsInitiallyVisible??!1;n.showInstructions=i,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";let o=document.createElement("span");o.className="cesium-navigationHelpButton-wrapper",t.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",r.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),o.appendChild(r);let s=document.createElement("div");s.className="cesium-navigation-help",s.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-navigation-button cesium-navigation-button-left",a.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');let c=document.createElement("img");c.src=$t("Widgets/Images/NavigationHelp/Mouse.svg"),c.className="cesium-navigation-button-icon",c.style.width="25px",c.style.height="25px",a.appendChild(c),a.appendChild(document.createTextNode("Mouse"));let d=document.createElement("button");d.type="button",d.className="cesium-navigation-button cesium-navigation-button-right",d.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let u=document.createElement("img");u.src=$t("Widgets/Images/NavigationHelp/Touch.svg"),u.className="cesium-navigation-button-icon",u.style.width="25px",u.style.height="25px",d.appendChild(u),d.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(d);let m=document.createElement("div");m.className="cesium-click-navigation-help cesium-navigation-help-instructions",m.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),m.innerHTML=` <table> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseLeft.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseRight.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseMiddle.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>`,s.appendChild(m);let p=document.createElement("div");p.className="cesium-touch-navigation-help cesium-navigation-help-instructions",p.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),p.innerHTML=` <table> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchDrag.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchZoom.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchTilt.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchRotate.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>`,s.appendChild(p),Ve.applyBindings(n,o),this._container=t,this._viewModel=n,this._wrapper=o,this._closeInstructions=function(b){o.contains(b.target)||(n.showInstructions=!1)},mn.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(dH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});dH.prototype.isDestroyed=function(){return!1};dH.prototype.destroy=function(){return mn.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),Ve.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),he(this)};var D9=dH;var d6o=x(T(),1);var i6o=x(T(),1);var MYt="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",kYt="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";function Koe(){this._cameraClicked=new Se,this._closeClicked=new Se,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",Ve.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,Ve.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?kYt:MYt}}),Ve.defineProperty(this,"_bodyless",{get:function(){return!l(this.description)||this.description.length===0}})}Koe.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(Koe.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var O9=Koe;function uH(e){e=Pn(e);let t=document.createElement("div");t.className="cesium-infoBox",t.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),e.appendChild(t);let n=document.createElement("div");n.className="cesium-infoBox-title",n.setAttribute("data-bind","text: titleText"),t.appendChild(n);let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-infoBox-camera",i.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),t.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-infoBox-close",o.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),o.innerHTML="×",t.appendChild(o);let r=document.createElement("iframe");r.className="cesium-infoBox-iframe",r.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),r.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),r.setAttribute("allowfullscreen",!0),t.appendChild(r);let s=new O9;Ve.applyBindings(s,t),this._container=e,this._element=t,this._frame=r,this._viewModel=s,this._descriptionSubscription=void 0;let a=this;r.addEventListener("load",function(){let c=r.contentDocument,d=c.createElement("link");d.href=$t("Widgets/InfoBox/InfoBoxDescription.css"),d.rel="stylesheet",d.type="text/css";let u=c.createElement("div");u.className="cesium-infoBox-description",c.head.appendChild(d),c.body.appendChild(u),a._descriptionSubscription=mc(s,"description",function(m){r.style.height="5px",u.innerHTML=m;let p=null,b=u.firstElementChild;if(b!==null&&u.childNodes.length===1){let y=window.getComputedStyle(b);if(y!==null){let _=y["background-color"],S=U.fromCssColorString(_);l(S)&&S.alpha!==0&&(p=y["background-color"])}}t.style["background-color"]=p;let f=u.getBoundingClientRect().height;r.style.height=`${f}px`})}),r.setAttribute("src","about:blank")}Object.defineProperties(uH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});uH.prototype.isDestroyed=function(){return!1};uH.prototype.destroy=function(){let e=this._container;return Ve.cleanNode(this._element),e.removeChild(this._element),l(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),he(this)};var B9=uH;var Z6o=x(T(),1);var g6o=x(T(),1);function Joe(e){this._scene=e.scene,this.lowFrameRateMessage=e.lowFrameRateMessage??"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers.",this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,Ve.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=Ln(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=Jk.fromScene(e.scene);this._unsubscribeLowFrameRate=n.lowFrameRate.addEventListener(function(){t.lowFrameRateMessageDismissed||(t.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=n.nominalFrameRate.addEventListener(function(){t.showingLowFrameRateMessage=!1})}Object.defineProperties(Joe.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});Joe.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),he(this)};var z9=Joe;function mH(e){let t=Pn(e.container),n=new z9(e),i=document.createElement("div");i.className="cesium-performance-watchdog-message-area",i.setAttribute("data-bind","visible: showingLowFrameRateMessage");let o=document.createElement("button");o.setAttribute("type","button"),o.className="cesium-performance-watchdog-message-dismiss",o.innerHTML="×",o.setAttribute("data-bind","click: dismissMessage"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-performance-watchdog-message",r.setAttribute("data-bind","html: lowFrameRateMessage"),i.appendChild(r),t.appendChild(i),Ve.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(mH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});mH.prototype.isDestroyed=function(){return!1};mH.prototype.destroy=function(){return this._viewModel.destroy(),Ve.cleanNode(this._element),this._container.removeChild(this._element),he(this)};var H9=mH;var Y6o=x(T(),1);var L6o=x(T(),1);function hH(e){this._scene=e,this._orthographic=e.camera.frustum instanceof fn,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,Ve.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;Ve.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=Ln(function(){t.sceneMode===re.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new Fr,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===re.SCENE2D||t._scene.camera.frustum instanceof fn}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=l(e.camera._currentFlight)}),this._switchToPerspective=Ln(function(){t.sceneMode!==re.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=Ln(function(){t.sceneMode!==re.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=re}Object.defineProperties(hH.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}});hH.prototype.isDestroyed=function(){return!1};hH.prototype.destroy=function(){this._eventHelper.removeAll(),he(this)};var K9=hH;var UYt="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",DYt="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function fH(e,t){e=Pn(e);let n=new K9(t);n._perspectivePath=UYt,n._orthographicPath=DYt;let i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button",o.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),o.innerHTML='<!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --><!-- /ko -->',i.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(s),Ve.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},mn.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(fH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});fH.prototype.isDestroyed=function(){return!1};fH.prototype.destroy=function(){return this._viewModel.destroy(),mn.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ve.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),he(this)};var J9=fH;var J6o=x(T(),1);var M6o=x(T(),1);function kA(e,t,n){this._color=e,this._height=t,this._base=n??0}kA.prototype.getHeight=function(){return this._height};kA.prototype.getBase=function(){return this._base};kA.prototype.getStartTime=function(){return this._start};kA.prototype.getStopTime=function(){return this._stop};kA.prototype.setRange=function(e,t){this._start=e,this._stop=t};kA.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=Q.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),o=Q.secondsDifference(this._stop,e.epochJulian),r=Math.round(e.timeBarWidth*e.getAlpha(o))-i;i<0&&(r+=i,i=0),i+r>e.timeBarWidth&&(r=e.timeBarWidth-i),r>0&&(t=`<span class="cesium-timeline-highlight" style="left: ${i.toString()}px; width: ${r.toString()}px; bottom: ${this._base.toString()}px; height: ${this._height}px; background-color: ${this._color};"></span>`)}return t};var j9=kA;var D6o=x(T(),1);function Wve(e,t,n,i){this.interval=e,this.height=t,this.color=n||new U(.5,.5,.5,1),this.backgroundColor=i||new U(0,0,0,0)}Wve.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,o=t.startJulian,r=Q.addSeconds(t.startJulian,t.duration,new Q);if(Q.lessThan(n,o)&&Q.greaterThan(i,r))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(Q.lessThanOrEquals(n,r)&&Q.greaterThanOrEquals(i,o)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let d=Q.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new Q);!l(a)&&Q.greaterThanOrEquals(d,n)?a=s:!l(c)&&Q.greaterThanOrEquals(d,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),l(a)&&(l(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var Q9=Wve;var joe=1e12,ah={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},id={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},eT=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],OYt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function od(e,t){e=Pn(e);let n=e.ownerDocument;this.container=e;let i=n.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=ah.none,this._touchMode=id.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=BYt(this),this._onMouseUp=zYt(this),this._onMouseMove=HYt(this),this._onMouseWheel=KYt(this),this._onTouchStart=JYt(this),this._onTouchMove=QYt(this),this._onTouchEnd=jYt(this);let o=this._timeBarEle;n.addEventListener("mouseup",this._onMouseUp,!1),n.addEventListener("mousemove",this._onMouseMove,!1),o.addEventListener("mousedown",this._onMouseDown,!1),o.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),o.addEventListener("mousewheel",this._onMouseWheel,!1),o.addEventListener("touchstart",this._onTouchStart,!1),o.addEventListener("touchmove",this._onTouchMove,!1),o.addEventListener("touchend",this._onTouchEnd,!1),o.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}od.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};od.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};od.prototype.isDestroyed=function(){return!1};od.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);let e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);let t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),he(this)};od.prototype.addHighlightRange=function(e,t,n){let i=new j9(e,t,n);return this._highlightRanges.push(i),this.resize(),i};od.prototype.addTrack=function(e,t,n,i){let o=new Q9(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};od.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=Q.secondsDifference(t,e),this._clock&&this._clock.clockRange!==gs.UNBOUNDED){let i=this._clock.startTime,o=this._clock.stopTime,r=Q.secondsDifference(o,i),s=Q.secondsDifference(i,this._startJulian),a=Q.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=r?(this._timeBarSecondsSpan=r,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=Q.addSeconds(this._endJulian,s,new Q),this._startJulian=i,this._timeBarSecondsSpan=Q.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=Q.addSeconds(this._startJulian,a,new Q),this._endJulian=o,this._timeBarSecondsSpan=Q.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();let n=document.createEvent("Event");n.initEvent("setzoom",!0,!0),n.startJulian=this._startJulian,n.endJulian=this._endJulian,n.epochJulian=this._epochJulian,n.totalSpan=this._timeBarSecondsSpan,n.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(n)};od.prototype.zoomFrom=function(e){let t=Q.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=this._timeBarSecondsSpan*.5:t+=t-this._timeBarSecondsSpan*.5;let n=this._timeBarSecondsSpan-t;this.zoomTo(Q.addSeconds(this._startJulian,t-t*e,new Q),Q.addSeconds(this._endJulian,n*e-n,new Q))};function Qoe(e){return e<10?`0${e.toString()}`:e.toString()}od.prototype.makeLabel=function(e){let t=Q.toGregorianDate(e),n=t.millisecond,i=" UTC";if(n>0&&this._timeBarSecondsSpan<3600){for(i=Math.floor(n).toString();i.length<3;)i=`0${i}`;i=`.${i}`}return`${OYt[t.month-1]} ${t.day} ${t.year} ${Qoe(t.hour)}:${Qoe(t.minute)}:${Qoe(t.second)}${i}`};od.prototype.smallestTicInPixels=7;od.prototype._makeTics=function(){let e=this._timeBarEle,t=Q.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),i=n-8,o,r=this;this._needleEle.style.left=`${n.toString()}px`;let s="",a=.01,c=31536e6,d=1e-10,u=0,m=this._timeBarSecondsSpan;m<a?(m=a,this._timeBarSecondsSpan=a,this._endJulian=Q.addSeconds(this._startJulian,a,new Q)):m>c&&(m=c,this._timeBarSecondsSpan=c,this._endJulian=Q.addSeconds(this._startJulian,c,new Q));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let b=this._startJulian,f=Math.min(m/p*1e-5,.4),y,_=Q.toGregorianDate(b);m>31536e4?y=Q.fromDate(new Date(Date.UTC(Math.floor(_.year/100)*100,0))):m>31536e3?y=Q.fromDate(new Date(Date.UTC(Math.floor(_.year/10)*10,0))):m>86400?y=Q.fromDate(new Date(Date.UTC(_.year,0))):y=Q.fromDate(new Date(Date.UTC(_.year,_.month,_.day)));let S=Q.secondsDifference(this._startJulian,Q.addSeconds(y,f,new Q)),A=S+m;this._epochJulian=y;function Z(w){return Math.floor(S/w)*w}function R(w,z){return Math.ceil(w/z+.5)*z}function G(w){return(w-S)/m}function E(w,z){return w-z*Math.round(w/z)}this._rulerEle.innerHTML=this.makeLabel(Q.addSeconds(this._endJulian,-a,new Q));let v=this._rulerEle.offsetWidth+20;v<30&&(v=180);let I=u;u-=d;let X={startTime:S,startJulian:b,epochJulian:y,duration:m,timeBarWidth:p,getAlpha:G};this._highlightRanges.forEach(function(w){s+=w.render(X)});let Y=0,g=0,C=0,V=v/p;V>1&&(V=1),V*=this._timeBarSecondsSpan;let L=-1,P=-1,N=eT.length,O;for(O=0;O<N;++O){let w=eT[O];if(++L,Y=w,w>V&&w>u)break;P<0&&p*(w/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(P=L)}if(L>0){for(;L>0;)if(--L,Math.abs(E(Y,eT[L]))<1e-5){eT[L]>=u&&(g=eT[L]);break}if(P>=0)for(;P<L;){if(Math.abs(E(g,eT[P]))<1e-5&&eT[P]>=u){C=eT[P];break}++P}}u=I,u>d&&C<1e-5&&Math.abs(u-Y)>d&&(C=u,u<=Y+d&&(g=0));let M=-999999,D;if(p*(C/this._timeBarSecondsSpan)>=3)for(o=Z(C);o<=A;o=R(o,C))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*G(o)).toString()}px;"></span>`;if(p*(g/this._timeBarSecondsSpan)>=3)for(o=Z(g);o<=A;o=R(o,g))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*G(o)).toString()}px;"></span>`;if(p*(Y/this._timeBarSecondsSpan)>=2){this._mainTicSpan=Y,A+=Y,o=Z(Y);let w=Q.computeTaiMinusUtc(y);for(;o<=A;){let z=Q.addSeconds(b,o-S,new Q);if(Y>2.1){let te=Q.computeTaiMinusUtc(z);Math.abs(te-w)>.1&&(o+=te-w,z=Q.addSeconds(b,o-S,new Q))}let K=Math.round(p*G(o)),ee=this.makeLabel(z);this._rulerEle.innerHTML=ee,D=this._rulerEle.offsetWidth,D<10&&(D=v);let H=K-(D/2-1);H>M?(M=H+D+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${K.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${H.toString()}px;">${ee}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${K.toString()}px;"></span>`,o=R(o,Y)}}else this._mainTicSpan=-1;s+=`<span class="cesium-timeline-icon16" style="left:${i}px;bottom:0;background-position: 0 0;"></span>`,e.innerHTML=s,this._scrubElement=e.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),X.y=0,this._trackList.forEach(function(w){w.render(r._context,X),X.y+=w.height})};od.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(l(this._scrubElement)){let t=Q.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==n&&(this._lastXPos=n,e.style.left=`${n-8}px`,this._needleEle.style.left=`${n}px`)}l(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(Q.addSeconds(this._startJulian,this._timelineDrag,new Q),Q.addSeconds(this._endJulian,this._timelineDrag,new Q)))};od.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=Q.addSeconds(this._startJulian,t,new Q),this._scrubElement){let i=e-8;this._scrubElement.style.left=`${i.toString()}px`,this._needleEle.style.left=`${e.toString()}px`}let n=document.createEvent("Event");n.initEvent("settime",!0,!0),n.clientX=e,n.timeSeconds=t,n.timeJulian=this._scrubJulian,n.clock=this._clock,this._topDiv.dispatchEvent(n)};function BYt(e){return function(t){e._mouseMode!==ah.touchOnly&&(t.button===0?(e._mouseMode=ah.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=ah.zoom:e._mouseMode=ah.slide)),t.preventDefault()}}function zYt(e){return function(t){e._mouseMode=ah.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function HYt(e){return function(t){let n;if(e._mouseMode===ah.scrub){t.preventDefault();let i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===ah.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(Q.addSeconds(e._startJulian,i,new Q),Q.addSeconds(e._endJulian,i,new Q))}}else e._mouseMode===ah.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function KYt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;joe=Math.max(Math.min(Math.abs(n),joe),1),n/=joe,e.zoomFrom(Math.pow(1.05,-n))}}function JYt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=ah.touchOnly,n===1?(i=Q.secondsDifference(e._scrubJulian,e._startJulian),o=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+r),Math.abs(t.touches[0].clientX-o)<50?(e._touchMode=id.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=id.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=id.slideZoom,e._touchState.centerX=(t.touches[0].clientX+t.touches[1].clientX)*.5-r,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=id.ignore}}function jYt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===id.singleTap?(e._touchMode=id.scrub,e._onTouchMove(t)):e._touchMode===id.scrub&&e._onTouchMove(t),e._mouseMode=ah.touchOnly,n!==1?e._touchMode=n>0?id.ignore:id.none:e._touchMode===id.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function QYt(e){return function(t){let n,i,o,r,s,a,c=1,d=e._topDiv.getBoundingClientRect().left;e._touchMode===id.singleTap&&(e._touchMode=id.slideZoom),e._mouseMode=ah.touchOnly,e._touchMode===id.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-d,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===id.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-d,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-d,s=0),l(r)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=Q.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-r*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new Q)):(n=e._touchState.centerX-r,a=Q.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new Q)),e.zoomTo(a,Q.addSeconds(a,e._timeBarSecondsSpan*c,new Q)),e._touchState.centerX=r,e._touchState.spanX=s))}}od.prototype.resize=function(){let e=this.container.clientWidth,t=this.container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;this._trackContainer.style.height=`${t}px`;let n=1;this._trackList.forEach(function(i){n+=i.height}),this._trackListEle.style.height=`${n.toString()}px`,this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=n,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t};var q9=od;var lqo=x(T(),1);var nqo=x(T(),1);function pH(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new Fr,this._eventHelper.add(e.morphStart,i),this._duration=t??2,this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",Ve.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,Ve.defineProperty(this,"selectedTooltip",function(){let o=n.sceneMode;return o===re.SCENE2D?n.tooltip2D:o===re.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=Ln(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=Ln(function(){e.morphTo2D(n._duration)}),this._morphTo3D=Ln(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=Ln(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=re}Object.defineProperties(pH.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}});pH.prototype.isDestroyed=function(){return!1};pH.prototype.destroy=function(){this._eventHelper.removeAll(),he(this)};var $9=pH;var qYt="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",$Yt="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",eNt="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function bH(e,t,n){e=Pn(e);let i=new $9(t,n);i._globePath=qYt,i._flatMapPath=$Yt,i._columbusViewPath=eNt;let o=document.createElement("span");o.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='<!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --><!-- /ko -->',o.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",a.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),o.appendChild(a);let c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),o.appendChild(c),Ve.applyBindings(i,o),this._viewModel=i,this._container=e,this._wrapper=o,this._closeDropDown=function(d){o.contains(d.target)||(i.dropDownVisible=!1)},mn.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(bH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});bH.prototype.isDestroyed=function(){return!1};bH.prototype.destroy=function(){return this._viewModel.destroy(),mn.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ve.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),he(this)};var eU=bH;var _qo=x(T(),1);var fqo=x(T(),1);var tNt=new k,gH="-1000px";function tU(e,t,n){this._scene=e,this._screenPositionX=gH,this._screenPositionY=gH,this._tweens=e.tweens,this._container=n??document.body,this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,Ve.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,Ve.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&l(this.position)}}),Ve.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return no.worldToWindowCoordinates(e,i,o)}}tU.prototype.update=function(){if(this.showSelection&&l(this.position)){let e=this.computeScreenSpacePosition(this.position,tNt);if(!l(e))this._screenPositionX=gH,this._screenPositionY=gH;else{let t=this._container,n=t.parentNode.clientWidth,i=t.parentNode.clientHeight,o=this._selectionIndicatorElement.clientWidth,r=o*.5;e.x=Math.min(Math.max(e.x,-o),n+o)-r,e.y=Math.min(Math.max(e.y,-o),i+o)-r,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}}};tU.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:xs.EXPONENTIAL_OUT})};tU.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:xs.EXPONENTIAL_OUT})};Object.defineProperties(tU.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var nU=tU;function yH(e,t){e=Pn(e),this._container=e;let n=document.createElement("div");n.className="cesium-selection-wrapper",n.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(n),this._element=n;let i="http://www.w3.org/2000/svg",o="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",r=document.createElementNS(i,"svg:svg");r.setAttribute("width",160),r.setAttribute("height",160),r.setAttribute("viewBox","0 0 160 160");let s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),r.appendChild(s);let a=document.createElementNS(i,"path");a.setAttribute("data-bind","attr: { transform: _transform }"),a.setAttribute("d",o),s.appendChild(a),n.appendChild(r);let c=new nU(t,this._element,this._container);this._viewModel=c,Ve.applyBindings(this._viewModel,this._element)}Object.defineProperties(yH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});yH.prototype.isDestroyed=function(){return!1};yH.prototype.destroy=function(){let e=this._container;return Ve.cleanNode(this._element),e.removeChild(this._element),he(this)};var iU=yH;var Nqo=x(T(),1);var Wqo=x(T(),1);var Xve=x(Pve(),1);function oNt(e){let t=!1,n=window.screen;return l(n)&&(l(n.lockOrientation)?t=n.lockOrientation(e):l(n.mozLockOrientation)?t=n.mozLockOrientation(e):l(n.msLockOrientation)?t=n.msLockOrientation(e):l(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function Yve(){let e=window.screen;l(e)&&(l(e.unlockOrientation)?e.unlockOrientation():l(e.mozUnlockOrientation)?e.mozUnlockOrientation():l(e.msUnlockOrientation)?e.msUnlockOrientation():l(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function rNt(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(Yve(),e._locked=!1),e._noSleep.disable(),Mr.exitFullscreen(),n(!1)):(Mr.fullscreen||Mr.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=oNt("landscape")),t.useWebVR=!0,n(!0)))}function xH(e,t){let n=this,i=Ve.observable(Mr.enabled),o=Ve.observable(!1);this.isVRMode=void 0,Ve.defineProperty(this,"isVRMode",{get:function(){return o()}}),this.isVREnabled=void 0,Ve.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&Mr.enabled)}}),this.tooltip=void 0,Ve.defineProperty(this,"tooltip",function(){return i()?o()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let r=Ve.observable(!1);this._isOrthographic=void 0,Ve.defineProperty(this,"_isOrthographic",{get:function(){return r()}}),this._eventHelper=new Fr,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof fn)}),this._locked=!1,this._noSleep=new Xve.default,this._command=Ln(function(){rNt(n,e,o,r)},Ve.getObservable(this,"isVREnabled")),this._vrElement=Pn(t)??document.body,this._callback=function(){!Mr.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&(Yve(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(Mr.changeEventName,this._callback)}Object.defineProperties(xH.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});xH.prototype.isDestroyed=function(){return!1};xH.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(Mr.changeEventName,this._callback),he(this)};var oU=xH;var sNt="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",aNt="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";function TH(e,t,n){e=Pn(e);let i=new oU(t,n);i._exitVRPath=aNt,i._enterVRPath=sNt;let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-vrButton",o.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(o),Ve.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(TH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});TH.prototype.isDestroyed=function(){return!1};TH.prototype.destroy=function(){return this._viewModel.destroy(),Ve.cleanNode(this._element),this._container.removeChild(this._element),he(this)};var rU=TH;var jqo=x(T(),1);var Dqo=x(T(),1);function Nve(e){let t=e.split(` +`),n;for(n=0;n<t.length&&!t[n].match(/\S/);n++);if(n===t.length)return"";let i="",o=/^\s*/,s=t[n].match(o)[0].length;for(let a=n;a<t.length;a++){let c=t[a];c.match(o)[0].length>=s&&(c=c.slice(s)),i+=`${c} +`}return i}function ch(e){this._scene=e,this._voxelPrimitive=void 0,this._customShaderCompilationRemoveCallback=void 0,this._definedProperties=[],this._getPrimitiveFunctions=[],this._modelMatrixReady=!1;let t=this;function n(o){let{name:r,initialValue:s}=o;t._definedProperties.push(r);let a=o.setPrimitiveFunction;a===!0&&(a=function(u){t._voxelPrimitive[r]=u});let c=o.getPrimitiveFunction;c===!0&&(c=function(){t[r]=t._voxelPrimitive[r]}),l(c)&&t._getPrimitiveFunctions.push(c);let d=Ve.observable();return Ve.defineProperty(t,r,{get:function(){return d()},set:function(u){typeof s=="number"&&typeof u=="string"&&(u=Number(u),isNaN(u)&&(u=s)),typeof s=="boolean"&&typeof u=="number"&&(u=u===1),d(u),l(a)&&l(t._voxelPrimitive)&&(a(u),e.requestRender())}}),t[r]=s,d}function i(o,r){return function(s){let a=t._voxelPrimitive[o].clone();a[r]=s,t._voxelPrimitive[o]=a}}n({name:"inspectorVisible",initialValue:!0}),n({name:"displayVisible",initialValue:!1}),n({name:"transformVisible",initialValue:!1}),n({name:"boundsVisible",initialValue:!1}),n({name:"clippingVisible",initialValue:!1}),n({name:"shaderVisible",initialValue:!1}),n({name:"shaderString",initialValue:"",getPrimitiveFunction:function(){let o=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=Nve(o)}}),n({name:"shaderCompilationMessage",initialValue:""}),n({name:"shaderCompilationSuccess",initialValue:!0}),n({name:"depthTest",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"show",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"disableUpdate",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"debugDraw",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"jitter",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"nearestSampling",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"screenSpaceError",initialValue:4,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"stepSize",initialValue:1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"shapeIsBox",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsBox=o===uc.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===uc.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===uc.CYLINDER}}),n({name:"clippingBoxMaxXMin",initialValue:0,getPrimitiveFunction:function(){t.clippingBoxMaxXMin=t._voxelPrimitive.minBounds.x}}),n({name:"clippingBoxMaxXMax",initialValue:1,getPrimitiveFunction:function(){t.clippingBoxMaxXMax=t._voxelPrimitive.maxBounds.x}}),n({name:"clippingBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMaxX=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingBoxMinXMin",initialValue:0,getPrimitiveFunction:function(){t.clippingBoxMinXMin=t._voxelPrimitive.minBounds.x}}),n({name:"clippingBoxMinXMax",initialValue:1,getPrimitiveFunction:function(){t.clippingBoxMinXMax=t._voxelPrimitive.maxBounds.x}}),n({name:"clippingBoxMinX",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMinX=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingBoxMaxYMin",initialValue:0,getPrimitiveFunction:function(){t.clippingBoxMaxYMin=t._voxelPrimitive.minBounds.y}}),n({name:"clippingBoxMaxYMax",initialValue:1,getPrimitiveFunction:function(){t.clippingBoxMaxYMax=t._voxelPrimitive.maxBounds.y}}),n({name:"clippingBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMaxY=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingBoxMinYMin",initialValue:0,getPrimitiveFunction:function(){t.clippingBoxMinYMin=t._voxelPrimitive.minBounds.y}}),n({name:"clippingBoxMinYMax",initialValue:1,getPrimitiveFunction:function(){t.clippingBoxMinYMax=t._voxelPrimitive.maxBounds.y}}),n({name:"clippingBoxMinY",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMinY=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingBoxMaxZMin",initialValue:0,getPrimitiveFunction:function(){t.clippingBoxMaxZMin=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMaxZMax",initialValue:1,getPrimitiveFunction:function(){t.clippingBoxMaxZMax=t._voxelPrimitive.maxBounds.z}}),n({name:"clippingBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMaxZ=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingBoxMinZMin",initialValue:0,getPrimitiveFunction:function(){t.clippingBoxMinZMin=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMinZMax",initialValue:1,getPrimitiveFunction:function(){t.clippingBoxMinZMax=t._voxelPrimitive.maxBounds.z}}),n({name:"clippingBoxMinZ",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMinZ=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingEllipsoidMaxLongitudeMin",initialValue:-W.PI,getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitudeMin=t._voxelPrimitive.minBounds.x}}),n({name:"clippingEllipsoidMaxLongitudeMax",initialValue:W.PI,getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitudeMax=t._voxelPrimitive.maxBounds.x}}),n({name:"clippingEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitude=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingEllipsoidMinLongitudeMin",initialValue:-W.PI,getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitudeMin=t._voxelPrimitive.minBounds.x}}),n({name:"clippingEllipsoidMinLongitudeMax",initialValue:W.PI,getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitudeMax=t._voxelPrimitive.maxBounds.x}}),n({name:"clippingEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitude=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingEllipsoidMaxLatitudeMin",initialValue:-W.PI_OVER_TWO,getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitudeMin=t._voxelPrimitive.minBounds.y}}),n({name:"clippingEllipsoidMaxLatitudeMax",initialValue:W.PI_OVER_TWO,getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitudeMax=t._voxelPrimitive.maxBounds.y}}),n({name:"clippingEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitude=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingEllipsoidMinLatitudeMin",initialValue:-W.PI_OVER_TWO,getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitudeMin=t._voxelPrimitive.minBounds.y}}),n({name:"clippingEllipsoidMinLatitudeMax",initialValue:W.PI_OVER_TWO,getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitudeMax=t._voxelPrimitive.maxBounds.y}}),n({name:"clippingEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitude=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingEllipsoidMaxHeightMin",initialValue:0,getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeightMin=t._voxelPrimitive.minBounds.z}}),n({name:"clippingEllipsoidMaxHeightMax",initialValue:1e5,getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeightMax=t._voxelPrimitive.maxBounds.z}}),n({name:"clippingEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingEllipsoidMinHeightMin",initialValue:-1e5,getPrimitiveFunction:function(){t.clippingEllipsoidMinHeightMin=t._voxelPrimitive.minBounds.z}}),n({name:"clippingEllipsoidMinHeightMax",initialValue:0,getPrimitiveFunction:function(){t.clippingEllipsoidMinHeightMax=t._voxelPrimitive.maxBounds.z}}),n({name:"clippingEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingCylinderMaxRadiusMin",initialValue:0,getPrimitiveFunction:function(){t.clippingCylinderMaxRadiusMin=t._voxelPrimitive.minBounds.x}}),n({name:"clippingCylinderMaxRadiusMax",initialValue:1,getPrimitiveFunction:function(){t.clippingCylinderMaxRadiusMax=t._voxelPrimitive.maxBounds.x}}),n({name:"clippingCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMaxRadius=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingCylinderMinRadiusMin",initialValue:0,getPrimitiveFunction:function(){t.clippingCylinderMinRadiusMin=t._voxelPrimitive.minBounds.x}}),n({name:"clippingCylinderMinRadiusMax",initialValue:1,getPrimitiveFunction:function(){t.clippingCylinderMinRadiusMax=t._voxelPrimitive.maxBounds.x}}),n({name:"clippingCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMinRadius=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingCylinderMaxAngleMin",initialValue:-W.PI,getPrimitiveFunction:function(){t.clippingCylinderMaxAngleMin=t._voxelPrimitive.minBounds.y}}),n({name:"clippingCylinderMaxAngleMax",initialValue:W.PI,getPrimitiveFunction:function(){t.clippingCylinderMaxAngleMax=t._voxelPrimitive.maxBounds.y}}),n({name:"clippingCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMaxAngle=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingCylinderMinAngleMin",initialValue:-W.PI}),n({name:"clippingCylinderMinAngleMax",initialValue:W.PI}),n({name:"clippingCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMinAngle=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingCylinderMaxHeightMin",initialValue:-1,getPrimitiveFunction:function(){t.clippingCylinderMaxHeightMin=t._voxelPrimitive.minBounds.z}}),n({name:"clippingCylinderMaxHeightMax",initialValue:1,getPrimitiveFunction:function(){t.clippingCylinderMaxHeightMax=t._voxelPrimitive.maxBounds.z}}),n({name:"clippingCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingCylinderMinHeightMin",initialValue:-1,getPrimitiveFunction:function(){t.clippingCylinderMinHeightMin=t._voxelPrimitive.minBounds.z}}),n({name:"clippingCylinderMinHeightMax",initialValue:1,getPrimitiveFunction:function(){t.clippingCylinderMinHeightMax=t._voxelPrimitive.maxBounds.z}}),n({name:"clippingCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"translationX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&b0(t)},getPrimitiveFunction:function(){t.translationX=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&b0(t)},getPrimitiveFunction:function(){t.translationY=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&b0(t)},getPrimitiveFunction:function(){t.translationZ=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&b0(t)},getPrimitiveFunction:function(){t.scaleX=F.getScale(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&b0(t)},getPrimitiveFunction:function(){t.scaleY=F.getScale(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&b0(t)},getPrimitiveFunction:function(){t.scaleZ=F.getScale(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&b0(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&b0(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&b0(t)}})}var cNt=new h,lNt=new h,dNt=new bc,uNt=new $;function b0(e){let t=h.fromElements(e.translationX,e.translationY,e.translationZ,cNt),n=h.fromElements(e.scaleX,e.scaleY,e.scaleZ,lNt),i=dNt;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=$.fromHeadingPitchRoll(i,uNt),r=$.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=F.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties(ch.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(l(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),!l(e))return;this._voxelPrimitive=e;let t=this;t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=Nve(i),l(n)?(t.shaderCompilationMessage=n.message,t.shaderCompilationSuccess=!1):(t.shaderCompilationMessage="Shader compiled successfully!",t.shaderCompilationSuccess=!0)}),t._modelMatrixReady=!1;for(let n=0;n<t._getPrimitiveFunctions.length;n++)t._getPrimitiveFunctions[n]();t._modelMatrixReady=!0,b0(t)}}});ch.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};ch.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};ch.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};ch.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};ch.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};ch.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};ch.prototype.compileShader=function(){l(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new c0({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};ch.prototype.shaderEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,d;if(t.shiftKey)for(d=0;d<c;++d)a[d][0]===" "&&(a[d][1]===" "?(a[d]=a[d].substr(2),r-=2):(a[d]=a[d].substr(1),r-=1));else for(d=0;d<c;++d)a[d]=` ${a[d]}`,r+=2;let u=a.join(` +`);n.value=n.value.slice(0,i)+u+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileShader();return!0};ch.prototype.isDestroyed=function(){return!1};ch.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){Ve.getObservable(e,t).dispose()}),he(this)};var sU=ch;function _H(e,t){e=Pn(e);let n=document.createElement("div"),i=new sU(t);this._viewModel=i,this._container=e,this._element=n;let o=document.createElement("div");o.textContent="Voxel Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleInspector"),n.appendChild(o),n.className="cesium-cesiumInspector cesium-VoxelInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let r=document.createElement("div");r.className="cesium-cesiumInspector-dropDown",n.appendChild(r);let{createSection:s,createCheckbox:a,createRangeInput:c,createButton:d}=Jd,u=s(r,"Display","displayVisible","toggleDisplay"),m=s(r,"Transform","transformVisible","toggleTransform"),p=s(r,"Clipping","clippingVisible","toggleClipping"),b=s(r,"Shader","shaderVisible","toggleShader");u.appendChild(a("Depth Test","depthTest")),u.appendChild(a("Show","show")),u.appendChild(a("Disable Update","disableUpdate")),u.appendChild(a("Debug Draw","debugDraw")),u.appendChild(a("Jitter","jitter")),u.appendChild(a("Nearest Sampling","nearestSampling")),u.appendChild(c("Screen Space Error","screenSpaceError",0,128)),u.appendChild(c("Step Size","stepSize",0,2));let f=10,y=10,_=W.PI;m.appendChild(c("Translation X","translationX",-f,+f)),m.appendChild(c("Translation Y","translationY",-f,+f)),m.appendChild(c("Translation Z","translationZ",-f,+f)),m.appendChild(c("Scale X","scaleX",0,+y)),m.appendChild(c("Scale Y","scaleY",0,+y)),m.appendChild(c("Scale Z","scaleZ",0,+y)),m.appendChild(c("Heading","angleX",-_,+_)),m.appendChild(c("Pitch","angleY",-_,+_)),m.appendChild(c("Roll","angleZ",-_,+_)),tre("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ","shapeIsBox",p),tre("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight","shapeIsEllipsoid",p),tre("Max Radius","Min Radius","Max Angle","Min Angle","Max Height","Min Height","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxAngle","clippingCylinderMinAngle","clippingCylinderMaxHeight","clippingCylinderMinHeight","shapeIsCylinder",p);let S=document.createElement("div");b.appendChild(S);let A=document.createElement("textarea");A.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),S.className="cesium-cesiumInspector-styleEditor",S.appendChild(A);let Z=d("Compile (Ctrl+Enter)","compileShader");S.appendChild(Z);let R=document.createElement("label");R.style.display="block",R.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),S.appendChild(R),Ve.applyBindings(i,n)}Object.defineProperties(_H.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});_H.prototype.isDestroyed=function(){return!1};_H.prototype.destroy=function(){return Ve.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),he(this)};function tre(e,t,n,i,o,r,s,a,c,d,u,m,p,b){let f=Jd.createRangeInputWithDynamicMinMax,y=b.appendChild(document.createElement("div"));y.setAttribute("data-bind",`if: ${p}`),y.appendChild(f(e,s)),y.appendChild(f(t,a)),y.appendChild(f(n,c)),y.appendChild(f(i,d)),y.appendChild(f(o,u)),y.appendChild(f(r,m))}var aU=_H;var g$o=x(T(),1);var wve=new ue;function Uve(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function mNt(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);l(o)&&(n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}),n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function hNt(e){let t,n=[],i=e.getPropertyIds();for(t=0;t<i.length;t++){let r=i[t];/^name$/i.test(r)?n[0]=e.getProperty(r):/name/i.test(r)?n[1]=e.getProperty(r):/^title$/i.test(r)?n[2]=e.getProperty(r):/^(id|identifier)$/i.test(r)?n[3]=e.getProperty(r):/element/i.test(r)?n[4]=e.getProperty(r):/(id|identifier)$/i.test(r)&&(n[5]=e.getProperty(r))}let o=n.length;for(t=0;t<o;t++){let r=n[t];if(l(r)&&r!=="")return r}return"Unnamed Feature"}function Mve(e,t){let n=e.scene.pick(t.position);if(l(n)){let i=n.id??n.primitive.id;if(i instanceof Oo)return i;if(n instanceof Ds||n instanceof Y_)return new Oo({name:hNt(n),description:mNt(n),feature:n})}if(l(e.scene.globe))return bNt(e,t.position)}var fNt=new Q;function nre(e,t){if(l(t)){let n=t.clock;if(l(n)&&l(e)){let i=n.startTime,o=n.stopTime;Q.equals(i,o)&&(o=Q.addSeconds(i,W.EPSILON2,fNt)),e.updateFromClock(),e.zoomTo(i,o)}}}var pNt=new h;function bNt(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!l(o))return;let r=new Oo({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!l(s)||s.length===0){e.selectedEntity=kve();return}let a=s[0],c=new Oo({id:a.name,description:a.description});if(l(a.position)){let d=e.scene.ellipsoid.cartographicToCartesian(a.position,pNt);c.position=new Al(d)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=kve())}),r}function kve(){return new Oo({id:"None",description:"No features found."})}function gNt(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,d=e._fullscreenButton,u=e._infoBox,m=e._selectionIndicator,p=t?"hidden":"visible";if(l(n)&&(n.container.style.visibility=p),l(i)&&(i.container.style.visibility=p),l(o)&&(o.container.style.visibility=p),l(r)&&(r.container.style.visibility=p),l(s)&&(s.container.style.visibility=p),l(a)&&(a.container.style.visibility=p),l(c)&&(c.container.style.visibility=p),l(d)&&d.viewModel.isFullscreenEnabled&&(d.container.style.visibility=p),l(u)&&(u.container.style.visibility=p),l(m)&&(m.container.style.visibility=p),e._container){let b=t||!l(d)?0:d.container.clientWidth;e._vrButton.container.style.right=`${b}px`,e.forceResize()}}function uo(e,t){e=Pn(e),t=t??B.EMPTY_OBJECT;let n=(!l(t.globe)||t.globe!==!1)&&(!l(t.baseLayerPicker)||t.baseLayerPicker!==!1),i=this,o=document.createElement("div");o.className="cesium-viewer",e.appendChild(o);let r=document.createElement("div");r.className="cesium-viewer-cesiumWidgetContainer",o.appendChild(r);let s=document.createElement("div");s.className="cesium-viewer-bottom",o.appendChild(s);let a=t.scene3DOnly??!1,c,d,u=!1;l(t.clockViewModel)?(d=t.clockViewModel,c=d.clock):(c=new lf,d=new x9(c),u=!0);let m=new Sk(r,{baseLayer:n&&l(t.selectedImageryProviderViewModel)||l(t.baseLayer)||l(t.imageryProvider)?!1:void 0,clock:c,shouldAnimate:t.shouldAnimate,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,ellipsoid:t.ellipsoid,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,automaticallyTrackDataSourceClocks:t.automaticallyTrackDataSourceClocks,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:l(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,dataSources:t.dataSources,scene3DOnly:a,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,blurActiveElementOnCanvasFocus:t.blurActiveElementOnCanvasFocus,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples}),p=m.scene,b=new Fr;b.add(c.onTick,uo.prototype._onTick,this);let f;if(!l(t.selectionIndicator)||t.selectionIndicator!==!1){let z=document.createElement("div");z.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(z),f=new iU(z,p)}let y;if(!l(t.infoBox)||t.infoBox!==!1){let z=document.createElement("div");z.className="cesium-viewer-infoBoxContainer",o.appendChild(z),y=new B9(z);let K=y.viewModel;b.add(K.cameraClicked,uo.prototype._onInfoBoxCameraClicked,this),b.add(K.closeClicked,uo.prototype._onInfoBoxClockClicked,this)}let _=document.createElement("div");_.className="cesium-viewer-toolbar",o.appendChild(_);let S;if(!l(t.geocoder)||t.geocoder!==!1){let z=document.createElement("div");z.className="cesium-viewer-geocoderContainer",_.appendChild(z);let K;typeof t.geocoder=="string"?K=[new EA({scene:p,geocodeProviderType:t.geocoder})]:l(t.geocoder)&&typeof t.geocoder!="boolean"&&(K=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),S=new N9({container:z,geocoderServices:K,scene:p}),b.add(S.viewModel.search.beforeExecute,uo.prototype._clearObjects,this)}let A;(!l(t.homeButton)||t.homeButton!==!1)&&(A=new k9(_,p),l(S)&&b.add(A.viewModel.command.afterExecute,function(){let z=S.viewModel;z.searchText="",z.isSearchInProgress&&z.search()}),b.add(A.viewModel.command.beforeExecute,uo.prototype._clearTrackedObject,this));let Z;!a&&(!l(t.sceneModePicker)||t.sceneModePicker!==!1)&&(Z=new eU(_,p));let R;t.projectionPicker&&(R=new J9(_,p));let G,E;if(n){let z=t.imageryProviderViewModels??L9(),K=t.terrainProviderViewModels??W9();G=new E9(_,{globe:p.globe,imageryProviderViewModels:z,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:K,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),E=_.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}l(t.baseLayer)&&t.baseLayer!==!1&&(n&&(G.viewModel.selectedImagery=void 0),p.imageryLayers.removeAll(),p.imageryLayers.add(t.baseLayer)),l(t.terrainProvider)&&(n&&(G.viewModel.selectedTerrain=void 0),p.terrainProvider=t.terrainProvider),l(t.terrain)&&(n&&(p.globe.depthTestAgainstTerrain=!0),p.setTerrain(t.terrain));let v;if(!l(t.navigationHelpButton)||t.navigationHelpButton!==!1){let z=!0;try{if(l(window.localStorage)){let K=window.localStorage.getItem("cesium-hasSeenNavHelp");l(K)&&K?z=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}v=new D9({container:_,instructionsInitiallyVisible:t.navigationInstructionsInitiallyVisible??z})}let I;if(!l(t.animation)||t.animation!==!1){let z=document.createElement("div");z.className="cesium-viewer-animationContainer",o.appendChild(z),I=new S9(z,new A9(d))}let X;if(!l(t.timeline)||t.timeline!==!1){let z=document.createElement("div");z.className="cesium-viewer-timelineContainer",o.appendChild(z),X=new q9(z,c),X.addEventListener("settime",Uve,!1),X.zoomTo(c.startTime,c.stopTime)}let Y,g,C;(!l(t.fullscreenButton)||t.fullscreenButton!==!1)&&(C=document.createElement("div"),C.className="cesium-viewer-fullscreenContainer",o.appendChild(C),Y=new X9(C,t.fullscreenElement),g=mc(Y.viewModel,"isFullscreenEnabled",function(z){C.style.display=z?"block":"none",l(X)&&(X.container.style.right=`${C.clientWidth}px`,X.resize())}));let V,L,P;if(t.vrButton){let z=document.createElement("div");z.className="cesium-viewer-vrContainer",o.appendChild(z),V=new rU(z,p,t.fullScreenElement),L=mc(V.viewModel,"isVREnabled",function(K){z.style.display=K?"block":"none",l(Y)&&(z.style.right=`${C.clientWidth}px`),l(X)&&(X.container.style.right=`${z.clientWidth}px`,X.resize())}),P=mc(V.viewModel,"isVRMode",function(K){gNt(i,K)})}this._baseLayerPickerDropDown=E,this._fullscreenSubscription=g,this._vrSubscription=L,this._vrModeSubscription=P,this._dataSourceChangedListeners={},this._container=e,this._bottomContainer=s,this._element=o,this._cesiumWidget=m,this._selectionIndicator=f,this._infoBox=y,this._clockViewModel=d,this._destroyClockViewModel=u,this._toolbar=_,this._homeButton=A,this._sceneModePicker=Z,this._projectionPicker=R,this._baseLayerPicker=G,this._navigationHelpButton=v,this._animation=I,this._timeline=X,this._fullscreenButton=Y,this._vrButton=V,this._geocoder=S,this._eventHelper=b,this._lastWidth=0,this._lastHeight=0,this._enableInfoOrSelection=l(y)||l(f),this._selectedEntity=void 0,this._selectedEntityChanged=new Se;let N=this._cesiumWidget.dataSources,O=this._cesiumWidget.dataSourceDisplay;b.add(N.dataSourceAdded,uo.prototype._onDataSourceAdded,this),b.add(N.dataSourceRemoved,uo.prototype._onDataSourceRemoved,this),b.add(p.postUpdate,uo.prototype.resize,this);let M=N.length;for(let z=0;z<M;z++)this._dataSourceAdded(N,N.get(z));this._dataSourceAdded(void 0,O.defaultDataSource),b.add(N.dataSourceAdded,uo.prototype._dataSourceAdded,this),b.add(N.dataSourceRemoved,uo.prototype._dataSourceRemoved,this);function D(z){let K=Mve(i,z);l(K)?j.getValueOrUndefined(K.position,i.clock.currentTime)?i.trackedEntity=K:i.zoomTo(K):l(i.trackedEntity)&&(i.trackedEntity=void 0)}function w(z){i.selectedEntity=Mve(i,z)}m.screenSpaceEventHandler.setInputAction(w,En.LEFT_CLICK),m.screenSpaceEventHandler.setInputAction(D,En.LEFT_DOUBLE_CLICK),m._canAnimateUpdateCallback=this._updateCanAnimate(this)}Object.defineProperties(uo.prototype,{container:{get:function(){return this._container}},creditDisplay:{get:function(){return this._cesiumWidget.creditDisplay}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._cesiumWidget.dataSourceDisplay}},entities:{get:function(){return this._cesiumWidget.entities}},dataSources:{get:function(){return this._cesiumWidget.dataSources}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},ellipsoid:{get:function(){return this.scene.ellipsoid}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e}},useBrowserRecommendedResolution:{get:function(){return this._cesiumWidget.useBrowserRecommendedResolution},set:function(e){this._cesiumWidget.useBrowserRecommendedResolution=e}},allowDataSourcesToSuspendAnimation:{get:function(){return this._cesiumWidget.allowDataSourcesToSuspendAnimation},set:function(e){this._cesiumWidget.allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._cesiumWidget.trackedEntity},set:function(e){this._cesiumWidget.trackedEntity=e}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(e)?l(t)&&t.animateAppear():l(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._cesiumWidget.trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._cesiumWidget.clockTrackedDataSource},set:function(e){this._cesiumWidget.clockTrackedDataSource!==e&&(this._cesiumWidget.clockTrackedDataSource=e,nre(this._timeline,e))}}});uo.prototype.extend=function(e,t){e(this,t)};uo.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=l(this._animation),r=l(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(l(a)&&(a.style.maxHeight=`${s}px`),l(this._geocoder)){let f=this._geocoder.searchSuggestionsContainer;f.style.maxHeight=`${s}px`}l(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,d,u=0,m=5,p=3,b=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let f=this._lastWidth;d=this._animation.container,n>900?(u=169,f<=900&&(d.style.width="169px",d.style.height="112px",this._animation.resize())):n>=600?(u=136,(f<600||f>900)&&(d.style.width="136px",d.style.height="90px",this._animation.resize())):(u=106,(f>600||f===0)&&(d.style.width="106px",d.style.height="70px",this._animation.resize())),m=u+5}if(r&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let f=this._fullscreenButton,y=this._vrButton,_=c.container,S=_.style;p=_.clientHeight+3,S.left=`${u}px`;let A=0;l(f)&&(A+=f.container.clientWidth),l(y)&&(A+=y.container.clientWidth),S.right=`${A}px`,c.resize()}!r&&l(this._fullscreenButton)&&(b=this._fullscreenButton.container.clientWidth),this._bottomContainer.style.left=`${m}px`,this._bottomContainer.style.bottom=`${p}px`,this._bottomContainer.style.right=`${b}px`,this._lastWidth=n,this._lastHeight=i};uo.prototype.forceResize=function(){this._lastWidth=0,this.resize()};uo.prototype.render=function(){this._cesiumWidget.render()};uo.prototype.isDestroyed=function(){return!1};uo.prototype.destroy=function(){return l(this.screenSpaceEventHandler)&&!this.screenSpaceEventHandler.isDestroyed()&&(this.screenSpaceEventHandler.removeInputAction(En.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(En.LEFT_DOUBLE_CLICK)),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),l(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),l(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),l(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),l(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),l(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),l(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),l(this._timeline)&&(this._timeline.removeEventListener("settime",Uve,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),l(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),l(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),l(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),l(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._cesiumWidget=this._cesiumWidget.destroy(),he(this)};uo.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(uo.prototype._onEntityCollectionChanged,this)};uo.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(uo.prototype._onEntityCollectionChanged,this),l(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};uo.prototype._updateCanAnimate=function(e){return function(t){e._clockViewModel.canAnimate=t}};uo.prototype._onTick=function(e){let t=e.currentTime,n,i=!1,o=this.selectedEntity,r=l(o)&&this._enableInfoOrSelection;r&&o.isShowing&&o.isAvailable(t)&&(this._cesiumWidget.dataSourceDisplay.getBoundingSphere(o,!0,wve)!==Vt.FAILED?n=wve.center:l(o.position)&&(n=o.position.getValue(t,n)),i=l(n));let s=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(s)&&(s.position=h.clone(n,s.position),s.showSelection=r&&i,s.update());let a=l(this._infoBox)?this._infoBox.viewModel:void 0;l(a)&&(a.showInfo=r,a.enableCamera=i,a.isCameraTracking=this.trackedEntity===this.selectedEntity,r?(a.titleText=o.name??o.id,a.description=j.getValueOrDefault(o.description,t,"")):(a.titleText="",a.description=""))};uo.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.selectedEntity===r&&(this.selectedEntity=void 0)}};uo.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;l(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};uo.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};uo.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};uo.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};uo.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&nre(this.timeline,e)};uo.prototype._onDataSourceAdded=function(e,t){this._cesiumWidget._automaticallyTrackDataSourceClocks&&t===this.clockTrackedDataSource&&nre(this._timeline,t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,uo.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};uo.prototype._onDataSourceRemoved=function(e,t){let n=t.entities.id;this._dataSourceChangedListeners[n](),this._dataSourceChangedListeners[n]=void 0};uo.prototype.zoomTo=function(e,t){return this._cesiumWidget.zoomTo(e,t)};uo.prototype.flyTo=function(e,t){return this._cesiumWidget.flyTo(e,t)};var ire=uo;var T$o=x(T(),1);function yNt(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new V9(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var ore=yNt;var A$o=x(T(),1);function xNt(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new I9(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var rre=xNt;var V$o=x(T(),1);function TNt(e,t){t=t??B.EMPTY_OBJECT;let n=!0,i=t.flyToOnDrop??!0,o=new Se,r=t.clearOnDrop??!0,s=t.dropTarget??e.container,a=t.clampToGround??!0,c=t.proxy;s=Pn(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(u){Dve(s,d),s=u,sre(s,d)}},dropEnabled:{get:function(){return n},set:function(u){u!==n&&(u?sre(s,d):Dve(s,d),n=u)}},dropError:{get:function(){return o}},clearOnDrop:{get:function(){return r},set:function(u){r=u}},flyToOnDrop:{get:function(){return i},set:function(u){i=u}},proxy:{get:function(){return c},set:function(u){c=u}},clampToGround:{get:function(){return a},set:function(u){a=u}}});function d(u){UA(u),r&&(e.entities.removeAll(),e.dataSources.removeAll());let m=u.dataTransfer.files,p=m.length;for(let b=0;b<p;b++){let f=m[b],y=new FileReader;y.onload=_Nt(e,f,c,a),y.onerror=SNt(e,f),y.readAsText(f)}}sre(s,d),e.destroy=Ik(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=d}function UA(e){e.stopPropagation(),e.preventDefault()}function Dve(e,t){let n=e;l(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",UA,!1),n.removeEventListener("dragover",UA,!1),n.removeEventListener("dragexit",UA,!1))}function sre(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",UA,!1),e.addEventListener("dragover",UA,!1),e.addEventListener("dragexit",UA,!1)}function _Nt(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=vX.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=px.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=FS.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=WY.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}l(a)&&e.dataSources.add(a).then(function(c){e.flyToOnDrop&&e.flyTo(c)}).catch(function(c){e.dropError.raiseEvent(e,s,c)})}catch(a){e.dropError.raiseEvent(e,s,a)}}}function SNt(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var are=TNt;var F$o=x(T(),1);function ANt(e,t){t=t??B.EMPTY_OBJECT;let n=new H9({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var cre=ANt;var X$o=x(T(),1);function ZNt(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new aU(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var lre=ZNt;globalThis.CESIUM_VERSION="1.143.0";var CNt="1.143.0";return Qve(RNt);})(); diff --git a/cesium/ThirdParty/Workers/package.json b/cesium/ThirdParty/Workers/package.json new file mode 100644 index 00000000..0292b995 --- /dev/null +++ b/cesium/ThirdParty/Workers/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/cesium/ThirdParty/Workers/zip-web-worker.js b/cesium/ThirdParty/Workers/zip-web-worker.js new file mode 100644 index 00000000..2b287051 --- /dev/null +++ b/cesium/ThirdParty/Workers/zip-web-worker.js @@ -0,0 +1 @@ +(function(){"use strict";const{Array:re,Object:k,Number:ie,Math:I,Error:y,Uint8Array:g,Uint16Array:it,Uint32Array:ae,Int32Array:at,Map:oe,DataView:F,Promise:N,TextEncoder:ce,crypto:x,postMessage:U,TransformStream:v,ReadableStream:Ue,WritableStream:We,CompressionStream:ot,DecompressionStream:ct}=self,le=void 0,O="undefined",X="function",ue=[];for(let t=0;256>t;t++){let e=t;for(let n=0;8>n;n++)1&e?e=e>>>1^3988292384:e>>>=1;ue[t]=e}class J{constructor(e){this.crc=e||-1}append(e){let n=0|this.crc;for(let s=0,r=0|e.length;r>s;s++)n=n>>>8^ue[255&(n^e[s])];this.crc=n}get(){return~this.crc}}class he extends v{constructor(){let e;const n=new J;super({transform(s,r){n.append(s),r.enqueue(s)},flush(){const s=new g(4);new F(s.buffer).setUint32(0,n.get()),e.value=s}}),e=this}}const S={concat(t,e){if(t.length===0||e.length===0)return t.concat(e);const n=t[t.length-1],s=S.getPartial(n);return s===32?t.concat(e):S._shiftRight(e,s,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(e===0)return 0;const n=t[e-1];return 32*(e-1)+S.getPartial(n)},clamp(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,I.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=S.partial(e,t[n-1]&2147483648>>e-1,1)),t},partial:(t,e,n)=>t===32?e:(n?0|e:e<<32-t)+1099511627776*t,getPartial:t=>I.round(t/1099511627776)||32,_shiftRight(t,e,n,s){for(s===void 0&&(s=[]);e>=32;e-=32)s.push(n),n=0;if(e===0)return s.concat(t);for(let i=0;i<t.length;i++)s.push(n|t[i]>>>e),n=t[i]<<32-e;const r=t.length?t[t.length-1]:0,a=S.getPartial(r);return s.push(S.partial(e+a&31,e+a>32?n:s.pop(),1)),s}},j={bytes:{fromBits(t){const e=S.bitLength(t)/8,n=new g(e);let s;for(let r=0;e>r;r++)3&r||(s=t[r/4]),n[r]=s>>>24,s<<=8;return n},toBits(t){const e=[];let n,s=0;for(n=0;n<t.length;n++)s=s<<8|t[n],3&~n||(e.push(s),s=0);return 3&n&&e.push(S.partial(8*(3&n),s)),e}}},Me=class{constructor(t){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],t?(e._h=t._h.slice(0),e._buffer=t._buffer.slice(0),e._length=t._length):e.reset()}reset(){const t=this;return t._h=t._init.slice(0),t._buffer=[],t._length=0,t}update(t){const e=this;typeof t=="string"&&(t=j.utf8String.toBits(t));const n=e._buffer=S.concat(e._buffer,t),s=e._length,r=e._length=s+S.bitLength(t);if(r>9007199254740991)throw new y("Cannot hash more than 2^53 - 1 bits");const a=new ae(n);let i=0;for(let l=e.blockSize+s-(e.blockSize+s&e.blockSize-1);r>=l;l+=e.blockSize)e._block(a.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),e}finalize(){const t=this;let e=t._buffer;const n=t._h;e=S.concat(e,[S.partial(1,1)]);for(let s=e.length+2;15&s;s++)e.push(0);for(e.push(I.floor(t._length/4294967296)),e.push(0|t._length);e.length;)t._block(e.splice(0,16));return t.reset(),n}_f(t,e,n,s){return t>19?t>39?t>59?t>79?void 0:e^n^s:e&n|e&s|n&s:e^n^s:e&n|~e&s}_S(t,e){return e<<t|e>>>32-t}_block(t){const e=this,n=e._h,s=re(80);for(let c=0;16>c;c++)s[c]=t[c];let r=n[0],a=n[1],i=n[2],l=n[3],h=n[4];for(let c=0;79>=c;c++){16>c||(s[c]=e._S(1,s[c-3]^s[c-8]^s[c-14]^s[c-16]));const o=e._S(5,r)+e._f(c,a,i,l)+h+s[c]+e._key[I.floor(c/20)]|0;h=l,l=i,i=e._S(30,a),a=r,r=o}n[0]=n[0]+r|0,n[1]=n[1]+a|0,n[2]=n[2]+i|0,n[3]=n[3]+l|0,n[4]=n[4]+h|0}},Ee={getRandomValues(t){const e=new ae(t.buffer),n=s=>{let r=987654321;const a=4294967295;return()=>(r=36969*(65535&r)+(r>>16)&a,(((r<<16)+(s=18e3*(65535&s)+(s>>16)&a)&a)/4294967296+.5)*(I.random()>.5?1:-1))};for(let s,r=0;r<t.length;r+=4){const a=n(4294967296*(s||I.random()));s=987654071*a(),e[r/4]=4294967296*a()|0}return t}},P={importKey:t=>new P.hmacSha1(j.bytes.toBits(t)),pbkdf2(t,e,n,s){if(n=n||1e4,0>s||0>n)throw new y("invalid params to pbkdf2");const r=1+(s>>5)<<2;let a,i,l,h,c;const o=new ArrayBuffer(r),u=new F(o);let f=0;const d=S;for(e=j.bytes.toBits(e),c=1;(r||1)>f;c++){for(a=i=t.encrypt(d.concat(e,[c])),l=1;n>l;l++)for(i=t.encrypt(i),h=0;h<i.length;h++)a[h]^=i[h];for(l=0;(r||1)>f&&l<a.length;l++)u.setInt32(f,a[l]),f+=4}return o.slice(0,s/8)},hmacSha1:class{constructor(t){const e=this,n=e._hash=Me,s=[[],[]];e._baseHash=[new n,new n];const r=e._baseHash[0].blockSize/32;t.length>r&&(t=new n().update(t).finalize());for(let a=0;r>a;a++)s[0][a]=909522486^t[a],s[1][a]=1549556828^t[a];e._baseHash[0].update(s[0]),e._baseHash[1].update(s[1]),e._resultHash=new n(e._baseHash[0])}reset(){const t=this;t._resultHash=new t._hash(t._baseHash[0]),t._updated=!1}update(t){this._updated=!0,this._resultHash.update(t)}digest(){const t=this,e=t._resultHash.finalize(),n=new t._hash(t._baseHash[1]).update(e).finalize();return t.reset(),n}encrypt(t){if(this._updated)throw new y("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},De=typeof x!=O&&typeof x.getRandomValues==X,fe="Invalid password",pe="Invalid signature",de="zipjs-abort-check-password";function we(t){return De?x.getRandomValues(t):Ee.getRandomValues(t)}const T=16,ge={name:"PBKDF2"},Le=k.assign({hash:{name:"HMAC"}},ge),Q=k.assign({iterations:1e3,hash:{name:"SHA-1"}},ge),Ze=["deriveBits"],W=[8,12,16],M=[16,24,32],q=10,Fe=[0,0,0,0],G=typeof x!=O,E=G&&x.subtle,me=G&&typeof E!=O,A=j.bytes,Ne=class{constructor(t){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const n=e._tables[0][4],s=e._tables[1],r=t.length;let a,i,l,h=1;if(r!==4&&r!==6&&r!==8)throw new y("invalid aes key size");for(e._key=[i=t.slice(0),l=[]],a=r;4*r+28>a;a++){let c=i[a-1];(a%r===0||r===8&&a%r===4)&&(c=n[c>>>24]<<24^n[c>>16&255]<<16^n[c>>8&255]<<8^n[255&c],a%r===0&&(c=c<<8^c>>>24^h<<24,h=h<<1^283*(h>>7))),i[a]=i[a-r]^c}for(let c=0;a;c++,a--){const o=i[3&c?a:a-4];l[c]=4>=a||4>c?o:s[0][n[o>>>24]]^s[1][n[o>>16&255]]^s[2][n[o>>8&255]]^s[3][n[255&o]]}}encrypt(t){return this._crypt(t,0)}decrypt(t){return this._crypt(t,1)}_precompute(){const t=this._tables[0],e=this._tables[1],n=t[4],s=e[4],r=[],a=[];let i,l,h,c;for(let o=0;256>o;o++)a[(r[o]=o<<1^283*(o>>7))^o]=o;for(let o=i=0;!n[o];o^=l||1,i=a[i]||1){let u=i^i<<1^i<<2^i<<3^i<<4;u=u>>8^255&u^99,n[o]=u,s[u]=o,c=r[h=r[l=r[o]]];let f=16843009*c^65537*h^257*l^16843008*o,d=257*r[u]^16843008*u;for(let p=0;4>p;p++)t[p][o]=d=d<<24^d>>>8,e[p][u]=f=f<<24^f>>>8}for(let o=0;5>o;o++)t[o]=t[o].slice(0),e[o]=e[o].slice(0)}_crypt(t,e){if(t.length!==4)throw new y("invalid aes block size");const n=this._key[e],s=n.length/4-2,r=[0,0,0,0],a=this._tables[e],i=a[0],l=a[1],h=a[2],c=a[3],o=a[4];let u,f,d,p=t[0]^n[0],w=t[e?3:1]^n[1],_=t[2]^n[2],b=t[e?1:3]^n[3],B=4;for(let z=0;s>z;z++)u=i[p>>>24]^l[w>>16&255]^h[_>>8&255]^c[255&b]^n[B],f=i[w>>>24]^l[_>>16&255]^h[b>>8&255]^c[255&p]^n[B+1],d=i[_>>>24]^l[b>>16&255]^h[p>>8&255]^c[255&w]^n[B+2],b=i[b>>>24]^l[p>>16&255]^h[w>>8&255]^c[255&_]^n[B+3],B+=4,p=u,w=f,_=d;for(let z=0;4>z;z++)r[e?3&-z:z]=o[p>>>24]<<24^o[w>>16&255]<<16^o[_>>8&255]<<8^o[255&b]^n[B++],u=p,p=w,w=_,_=b,b=u;return r}},Oe=class{constructor(t,e){this._prf=t,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(t){return this.calculate(this._prf,t,this._iv)}incWord(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,s=255&t;e===255?(e=0,n===255?(n=0,s===255?s=0:++s):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=s}return t}incCounter(t){(t[0]=this.incWord(t[0]))===0&&(t[1]=this.incWord(t[1]))}calculate(t,e,n){let s;if(!(s=e.length))return[];const r=S.bitLength(e);for(let a=0;s>a;a+=4){this.incCounter(n);const i=t.encrypt(n);e[a]^=i[0],e[a+1]^=i[1],e[a+2]^=i[2],e[a+3]^=i[3]}return S.clamp(e,r)}},je=P.hmacSha1;let _e=G&&me&&typeof E.importKey==X,ye=G&&me&&typeof E.deriveBits==X;class Ge extends v{constructor({password:e,rawPassword:n,signed:s,encryptionStrength:r,checkPasswordOnly:a}){super({start(){k.assign(this,{ready:new N(i=>this.resolveReady=i),password:ze(e,n),signed:s,strength:r-1,pending:new g})},async transform(i,l){const h=this,{password:c,strength:o,resolveReady:u,ready:f}=h;c?(await(async(p,w,_,b)=>{const B=await Se(p,w,_,C(b,0,W[w])),z=C(b,W[w]);if(B[0]!=z[0]||B[1]!=z[1])throw new y(fe)})(h,o,c,C(i,0,W[o]+2)),i=C(i,W[o]+2),a?l.error(new y(de)):u()):await f;const d=new g(i.length-q-(i.length-q)%T);l.enqueue(be(h,i,d,0,q,!0))},async flush(i){const{signed:l,ctr:h,hmac:c,pending:o,ready:u}=this;if(c&&h){await u;const f=C(o,0,o.length-q),d=C(o,o.length-q);let p=new g;if(f.length){const w=L(A,f);c.update(w);const _=h.update(w);p=D(A,_)}if(l){const w=C(D(A,c.digest()),0,q);for(let _=0;q>_;_++)if(w[_]!=d[_])throw new y(pe)}i.enqueue(p)}}})}}class Xe extends v{constructor({password:e,rawPassword:n,encryptionStrength:s}){let r;super({start(){k.assign(this,{ready:new N(a=>this.resolveReady=a),password:ze(e,n),strength:s-1,pending:new g})},async transform(a,i){const l=this,{password:h,strength:c,resolveReady:o,ready:u}=l;let f=new g;h?(f=await(async(p,w,_)=>{const b=we(new g(W[w]));return Y(b,await Se(p,w,_,b))})(l,c,h),o()):await u;const d=new g(f.length+a.length-a.length%T);d.set(f,0),i.enqueue(be(l,a,d,f.length,0))},async flush(a){const{ctr:i,hmac:l,pending:h,ready:c}=this;if(l&&i){await c;let o=new g;if(h.length){const u=i.update(L(A,h));l.update(u),o=D(A,u)}r.signature=D(A,l.digest()).slice(0,q),a.enqueue(Y(o,r.signature))}}}),r=this}}function be(t,e,n,s,r,a){const{ctr:i,hmac:l,pending:h}=t,c=e.length-r;let o;for(h.length&&(e=Y(h,e),n=((u,f)=>{if(f&&f>u.length){const d=u;(u=new g(f)).set(d,0)}return u})(n,c-c%T)),o=0;c-T>=o;o+=T){const u=L(A,C(e,o,o+T));a&&l.update(u);const f=i.update(u);a||l.update(f),n.set(D(A,f),o+s)}return t.pending=C(e,o),n}async function Se(t,e,n,s){t.password=null;const r=await(async(o,u,f,d,p)=>{if(!_e)return P.importKey(u);try{return await E.importKey("raw",u,f,!1,p)}catch{return _e=!1,P.importKey(u)}})(0,n,Le,0,Ze),a=await(async(o,u,f)=>{if(!ye)return P.pbkdf2(u,o.salt,Q.iterations,f);try{return await E.deriveBits(o,u,f)}catch{return ye=!1,P.pbkdf2(u,o.salt,Q.iterations,f)}})(k.assign({salt:s},Q),r,8*(2*M[e]+2)),i=new g(a),l=L(A,C(i,0,M[e])),h=L(A,C(i,M[e],2*M[e])),c=C(i,2*M[e]);return k.assign(t,{keys:{key:l,authentication:h,passwordVerification:c},ctr:new Oe(new Ne(l),re.from(Fe)),hmac:new je(h)}),c}function ze(t,e){return e===le?(n=>{if(typeof ce==O){const s=new g((n=unescape(encodeURIComponent(n))).length);for(let r=0;r<s.length;r++)s[r]=n.charCodeAt(r);return s}return new ce().encode(n)})(t):e}function Y(t,e){let n=t;return t.length+e.length&&(n=new g(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function C(t,e,n){return t.subarray(e,n)}function D(t,e){return t.fromBits(e)}function L(t,e){return t.toBits(e)}class Je extends v{constructor({password:e,passwordVerification:n,checkPasswordOnly:s}){super({start(){k.assign(this,{password:e,passwordVerification:n}),He(this,e)},transform(r,a){const i=this;if(i.password){const l=ke(i,r.subarray(0,12));if(i.password=null,l.at(-1)!=i.passwordVerification)throw new y(fe);r=r.subarray(12)}s?a.error(new y(de)):a.enqueue(ke(i,r))}})}}class Qe extends v{constructor({password:e,passwordVerification:n}){super({start(){k.assign(this,{password:e,passwordVerification:n}),He(this,e)},transform(s,r){const a=this;let i,l;if(a.password){a.password=null;const h=we(new g(12));h[11]=a.passwordVerification,i=new g(s.length+h.length),i.set(ve(a,h),0),l=12}else i=new g(s.length),l=0;i.set(ve(a,s),l),r.enqueue(i)}})}}function ke(t,e){const n=new g(e.length);for(let s=0;s<e.length;s++)n[s]=Ce(t)^e[s],$(t,n[s]);return n}function ve(t,e){const n=new g(e.length);for(let s=0;s<e.length;s++)n[s]=Ce(t)^e[s],$(t,e[s]);return n}function He(t,e){const n=[305419896,591751049,878082192];k.assign(t,{keys:n,crcKey0:new J(n[0]),crcKey2:new J(n[2])});for(let s=0;s<e.length;s++)$(t,e.charCodeAt(s))}function $(t,e){let[n,s,r]=t.keys;t.crcKey0.append([e]),n=~t.crcKey0.get(),s=Ae(I.imul(Ae(s+Be(n)),134775813)+1),t.crcKey2.append([s>>>24]),r=~t.crcKey2.get(),t.keys=[n,s,r]}function Ce(t){const e=2|t.keys[2];return Be(I.imul(e,1^e)>>>8)}function Be(t){return 255&t}function Ae(t){return 4294967295&t}class Ye extends v{constructor(e,{chunkSize:n,CompressionStreamZlib:s,CompressionStream:r}){super({});const{compressed:a,encrypted:i,useCompressionStream:l,zipCrypto:h,signed:c,level:o}=e,u=this;let f,d,p=super.readable;i&&!h||!c||(f=new he,p=R(p,f)),a&&(p=Ie(p,l,{level:o,chunkSize:n},r,s,r)),i&&(h?p=R(p,new Qe(e)):(d=new Xe(e),p=R(p,d))),Re(u,p,()=>{let w;i&&!h&&(w=d.signature),i&&!h||!c||(w=new F(f.value.buffer).getUint32(0)),u.signature=w})}}class $e extends v{constructor(e,{chunkSize:n,DecompressionStreamZlib:s,DecompressionStream:r}){super({});const{zipCrypto:a,encrypted:i,signed:l,signature:h,compressed:c,useCompressionStream:o,deflate64:u}=e;let f,d,p=super.readable;i&&(a?p=R(p,new Je(e)):(d=new Ge(e),p=R(p,d))),c&&(p=Ie(p,o,{chunkSize:n,deflate64:u},r,s,r)),i&&!a||!l||(f=new he,p=R(p,f)),Re(this,p,()=>{if((!i||a)&&l){const w=new F(f.value.buffer);if(h!=w.getUint32(0,!1))throw new y(pe)}})}}function Re(t,e,n){e=R(e,new v({flush:n})),k.defineProperty(t,"readable",{get:()=>e})}function Ie(t,e,n,s,r,a){const i=e&&s?s:r||a,l=n.deflate64?"deflate64-raw":"deflate-raw";try{t=R(t,new i(l,n))}catch(h){if(!e)throw h;if(r)t=R(t,new r(l,n));else{if(!a)throw h;t=R(t,new a(l,n))}}return t}function R(t,e){return t.pipeThrough(e)}const qe="data",Ke="close";class et extends v{constructor(e,n){super({});const s=this,{codecType:r}=e;let a;r.startsWith("deflate")?a=Ye:r.startsWith("inflate")&&(a=$e),s.outputSize=0;let i=0;const l=new a(e,n),h=super.readable,c=new v({transform(u,f){u&&u.length&&(i+=u.length,f.enqueue(u))},flush(){k.assign(s,{inputSize:i})}}),o=new v({transform(u,f){if(u&&u.length&&(f.enqueue(u),s.outputSize+=u.length,e.outputSize!==le&&s.outputSize>e.outputSize))throw new y("Invalid uncompressed size")},flush(){const{signature:u}=l;k.assign(s,{signature:u,inputSize:i})}});k.defineProperty(s,"readable",{get:()=>h.pipeThrough(c).pipeThrough(l).pipeThrough(o)})}}class tt extends v{constructor(e){let n;super({transform:function s(r,a){if(n){const i=new g(n.length+r.length);i.set(n),i.set(r,n.length),r=i,n=null}r.length>e?(a.enqueue(r.slice(0,e)),s(r.slice(e),a)):n=r},flush(s){n&&n.length&&s.enqueue(n)}})}}const ee=new oe,te=new oe;let ne,m,V,H,Z,K=0;async function nt(t){try{const{options:e,config:n}=t;if(!e.useCompressionStream)try{await self.initModule(t.config)}catch{e.useCompressionStream=!0}n.CompressionStream=self.CompressionStream,n.DecompressionStream=self.DecompressionStream;const s={highWaterMark:1},r=t.readable||new Ue({async pull(u){const f=new N(w=>ee.set(K,w));se({type:"pull",messageId:K}),K=(K+1)%ie.MAX_SAFE_INTEGER;const{value:d,done:p}=await f;u.enqueue(d),p&&u.close()}},s),a=t.writable||new We({async write(u){let f;const d=new N(p=>f=p);te.set(K,f),se({type:qe,value:u,messageId:K}),K=(K+1)%ie.MAX_SAFE_INTEGER,await d}},s),i=new et(e,n);ne=new AbortController;const{signal:l}=ne;await r.pipeThrough(i).pipeThrough(new tt(n.chunkSize)).pipeTo(a,{signal:l,preventClose:!0,preventAbort:!0}),await a.getWriter().close();const{signature:h,inputSize:c,outputSize:o}=i;se({type:Ke,result:{signature:h,inputSize:c,outputSize:o}})}catch(e){e.outputSize=0,Pe(e)}}function se(t){let{value:e}=t;if(e)if(e.length)try{e=new g(e),t.value=e.buffer,U(t,[t.value])}catch{U(t)}else U(t);else U(t)}function Pe(t=new y("Unknown error")){const{message:e,stack:n,code:s,name:r,outputSize:a}=t;U({error:{message:e,stack:n,code:s,name:r,outputSize:a}})}function Te(t,e,n={}){const s=typeof n.level=="number"?n.level:-1,r=typeof n.outBuffer=="number"?n.outBuffer:65536,a=typeof n.inBufferSize=="number"?n.inBufferSize:65536;return new v({start(){let i;if(this.out=V(r),this.in=V(a),this.inBufferSize=a,this._scratch=new g(r),t?(this._process=m.deflate_process,this._last_consumed=m.deflate_last_consumed,this._end=m.deflate_end,this.streamHandle=m.deflate_new(),i=e==="gzip"?m.deflate_init_gzip(this.streamHandle,s):e==="deflate-raw"?m.deflate_init_raw(this.streamHandle,s):m.deflate_init(this.streamHandle,s)):e==="deflate64-raw"?(this._process=m.inflate9_process,this._last_consumed=m.inflate9_last_consumed,this._end=m.inflate9_end,this.streamHandle=m.inflate9_new(),i=m.inflate9_init_raw(this.streamHandle)):(this._process=m.inflate_process,this._last_consumed=m.inflate_last_consumed,this._end=m.inflate_end,this.streamHandle=m.inflate_new(),i=e==="deflate-raw"?m.inflate_init_raw(this.streamHandle):e==="gzip"?m.inflate_init_gzip(this.streamHandle):m.inflate_init(this.streamHandle)),i!==0)throw new y("init failed:"+i)},transform(i,l){try{const h=i,c=new g(Z.buffer),o=this._process,u=this._last_consumed,f=this.out,d=this._scratch;let p=0;for(;p<h.length;){const w=I.min(h.length-p,32768);this.in&&this.inBufferSize>=w||(this.in&&H&&H(this.in),this.in=V(w),this.inBufferSize=w),c.set(h.subarray(p,p+w),this.in);const _=o(this.streamHandle,this.in,w,f,r,0),b=16777215&_;if(b&&(d.set(c.subarray(f,f+b),0),l.enqueue(d.slice(0,b))),!t){const z=_>>24&255,xe=128&z?z-256:z;if(0>xe)throw new y("process error:"+xe)}const B=u(this.streamHandle);if(B===0)break;p+=B}}catch(h){this._end&&this.streamHandle&&this._end(this.streamHandle),this.in&&H&&H(this.in),this.out&&H&&H(this.out),l.error(h)}},flush(i){try{const l=new g(Z.buffer),h=this._process,c=this.out,o=this._scratch;for(;;){const u=h(this.streamHandle,0,0,c,r,4),f=16777215&u,d=u>>24&255;if(!t){const p=128&d?d-256:d;if(0>p)throw new y("process error:"+p)}if(f&&(o.set(l.subarray(c,c+f),0),i.enqueue(o.slice(0,f))),d===1||f===0)break}}catch(l){i.error(l)}finally{if(this._end&&this.streamHandle){const l=this._end(this.streamHandle);l!==0&&i.error(new y("end error:"+l))}this.in&&H&&H(this.in),this.out&&H&&H(this.out)}}})}addEventListener("message",({data:t})=>{const{type:e,messageId:n,value:s,done:r}=t;try{if(e=="start"&&nt(t),e==qe){const a=ee.get(n);ee.delete(n),a({value:new g(s),done:r})}if(e=="ack"){const a=te.get(n);te.delete(n),a()}e==Ke&&ne.abort()}catch(a){Pe(a)}});class st{constructor(e="deflate",n){return Te(!0,e,n)}}class rt{constructor(e="deflate",n){return Te(!1,e,n)}}let Ve=!1;self.initModule=async t=>{try{const e=await(async(n,{baseURI:s})=>{if(!Ve){let r,a;try{try{a=new URL(n,s)}catch{}r=await(await fetch(a)).arrayBuffer()}catch(i){if(!n.startsWith("data:application/wasm;base64,"))throw i;r=(l=>{const h=l.split(",")[1],c=atob(h),o=c.length,u=new g(o);for(let f=0;o>f;++f)u[f]=c.charCodeAt(f);return u.buffer})(n)}(i=>{if(m=i,{malloc:V,free:H,memory:Z}=m,typeof V!="function"||typeof H!="function"||!Z)throw m=V=H=Z=null,new y("Invalid WASM module")})((await WebAssembly.instantiate(r)).instance.exports),Ve=!0}})(t.wasmURI,t);return t.CompressionStreamZlib=st,t.DecompressionStreamZlib=rt,e}catch{}}})(); diff --git a/cesium/ThirdParty/basis_transcoder.wasm b/cesium/ThirdParty/basis_transcoder.wasm new file mode 100644 index 00000000..71328587 Binary files /dev/null and b/cesium/ThirdParty/basis_transcoder.wasm differ diff --git a/cesium/ThirdParty/draco_decoder.wasm b/cesium/ThirdParty/draco_decoder.wasm new file mode 100644 index 00000000..4138f559 Binary files /dev/null and b/cesium/ThirdParty/draco_decoder.wasm differ diff --git a/cesium/ThirdParty/google-earth-dbroot-parser.js b/cesium/ThirdParty/google-earth-dbroot-parser.js new file mode 100644 index 00000000..b5cac6e8 --- /dev/null +++ b/cesium/ThirdParty/google-earth-dbroot-parser.js @@ -0,0 +1 @@ +(()=>{window.cesiumGoogleEarthDbRootParser=function(d){"use strict";var f=d.Reader,u=d.util,n=d.roots.default||(d.roots.default={});return n.keyhole=(function(){var b={};return b.dbroot=(function(){var c={};return c.StringEntryProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.stringId=0,i.prototype.stringValue="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StringEntryProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.stringId=r.fixed32();break}case 2:{o.stringValue=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("stringId"))throw u.ProtocolError("missing required 'stringId'",{instance:o});if(!o.hasOwnProperty("stringValue"))throw u.ProtocolError("missing required 'stringValue'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.stringId)?u.isString(r.stringValue)?null:"stringValue: string expected":"stringId: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StringEntryProto)return r;var t=new n.keyhole.dbroot.StringEntryProto;return r.stringId!=null&&(t.stringId=r.stringId>>>0),r.stringValue!=null&&(t.stringValue=String(r.stringValue)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.stringId=0,e.stringValue=""),r.stringId!=null&&r.hasOwnProperty("stringId")&&(e.stringId=r.stringId),r.stringValue!=null&&r.hasOwnProperty("stringValue")&&(e.stringValue=r.stringValue),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StringEntryProto"},i})(),c.StringIdOrValueProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.stringId=0,i.prototype.value="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StringIdOrValueProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.stringId=r.fixed32();break}case 2:{o.value=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.stringId!=null&&r.hasOwnProperty("stringId")&&!u.isInteger(r.stringId)?"stringId: integer expected":r.value!=null&&r.hasOwnProperty("value")&&!u.isString(r.value)?"value: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StringIdOrValueProto)return r;var t=new n.keyhole.dbroot.StringIdOrValueProto;return r.stringId!=null&&(t.stringId=r.stringId>>>0),r.value!=null&&(t.value=String(r.value)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.stringId=0,e.value=""),r.stringId!=null&&r.hasOwnProperty("stringId")&&(e.stringId=r.stringId),r.value!=null&&r.hasOwnProperty("value")&&(e.value=r.value),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StringIdOrValueProto"},i})(),c.PlanetModelProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.radius=6378.137,i.prototype.flattening=.00335281066474748,i.prototype.elevationBias=0,i.prototype.negativeAltitudeExponentBias=0,i.prototype.compressedNegativeAltitudeThreshold=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PlanetModelProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.radius=r.double();break}case 2:{o.flattening=r.double();break}case 4:{o.elevationBias=r.double();break}case 5:{o.negativeAltitudeExponentBias=r.int32();break}case 6:{o.compressedNegativeAltitudeThreshold=r.double();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.radius!=null&&r.hasOwnProperty("radius")&&typeof r.radius!="number"?"radius: number expected":r.flattening!=null&&r.hasOwnProperty("flattening")&&typeof r.flattening!="number"?"flattening: number expected":r.elevationBias!=null&&r.hasOwnProperty("elevationBias")&&typeof r.elevationBias!="number"?"elevationBias: number expected":r.negativeAltitudeExponentBias!=null&&r.hasOwnProperty("negativeAltitudeExponentBias")&&!u.isInteger(r.negativeAltitudeExponentBias)?"negativeAltitudeExponentBias: integer expected":r.compressedNegativeAltitudeThreshold!=null&&r.hasOwnProperty("compressedNegativeAltitudeThreshold")&&typeof r.compressedNegativeAltitudeThreshold!="number"?"compressedNegativeAltitudeThreshold: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PlanetModelProto)return r;var t=new n.keyhole.dbroot.PlanetModelProto;return r.radius!=null&&(t.radius=Number(r.radius)),r.flattening!=null&&(t.flattening=Number(r.flattening)),r.elevationBias!=null&&(t.elevationBias=Number(r.elevationBias)),r.negativeAltitudeExponentBias!=null&&(t.negativeAltitudeExponentBias=r.negativeAltitudeExponentBias|0),r.compressedNegativeAltitudeThreshold!=null&&(t.compressedNegativeAltitudeThreshold=Number(r.compressedNegativeAltitudeThreshold)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.radius=6378.137,e.flattening=.00335281066474748,e.elevationBias=0,e.negativeAltitudeExponentBias=0,e.compressedNegativeAltitudeThreshold=0),r.radius!=null&&r.hasOwnProperty("radius")&&(e.radius=t.json&&!isFinite(r.radius)?String(r.radius):r.radius),r.flattening!=null&&r.hasOwnProperty("flattening")&&(e.flattening=t.json&&!isFinite(r.flattening)?String(r.flattening):r.flattening),r.elevationBias!=null&&r.hasOwnProperty("elevationBias")&&(e.elevationBias=t.json&&!isFinite(r.elevationBias)?String(r.elevationBias):r.elevationBias),r.negativeAltitudeExponentBias!=null&&r.hasOwnProperty("negativeAltitudeExponentBias")&&(e.negativeAltitudeExponentBias=r.negativeAltitudeExponentBias),r.compressedNegativeAltitudeThreshold!=null&&r.hasOwnProperty("compressedNegativeAltitudeThreshold")&&(e.compressedNegativeAltitudeThreshold=t.json&&!isFinite(r.compressedNegativeAltitudeThreshold)?String(r.compressedNegativeAltitudeThreshold):r.compressedNegativeAltitudeThreshold),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PlanetModelProto"},i})(),c.ProviderInfoProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.providerId=0,i.prototype.copyrightString=null,i.prototype.verticalPixelOffset=-1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ProviderInfoProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.providerId=r.int32();break}case 2:{o.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.verticalPixelOffset=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("providerId"))throw u.ProtocolError("missing required 'providerId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isInteger(r.providerId))return"providerId: integer expected";if(r.copyrightString!=null&&r.hasOwnProperty("copyrightString")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.copyrightString);if(t)return"copyrightString."+t}return r.verticalPixelOffset!=null&&r.hasOwnProperty("verticalPixelOffset")&&!u.isInteger(r.verticalPixelOffset)?"verticalPixelOffset: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ProviderInfoProto)return r;var t=new n.keyhole.dbroot.ProviderInfoProto;if(r.providerId!=null&&(t.providerId=r.providerId|0),r.copyrightString!=null){if(typeof r.copyrightString!="object")throw TypeError(".keyhole.dbroot.ProviderInfoProto.copyrightString: object expected");t.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.copyrightString)}return r.verticalPixelOffset!=null&&(t.verticalPixelOffset=r.verticalPixelOffset|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.providerId=0,e.copyrightString=null,e.verticalPixelOffset=-1),r.providerId!=null&&r.hasOwnProperty("providerId")&&(e.providerId=r.providerId),r.copyrightString!=null&&r.hasOwnProperty("copyrightString")&&(e.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.copyrightString,t)),r.verticalPixelOffset!=null&&r.hasOwnProperty("verticalPixelOffset")&&(e.verticalPixelOffset=r.verticalPixelOffset),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ProviderInfoProto"},i})(),c.PopUpProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isBalloonStyle=!1,i.prototype.text=null,i.prototype.backgroundColorAbgr=4294967295,i.prototype.textColorAbgr=4278190080,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PopUpProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isBalloonStyle=r.bool();break}case 2:{o.text=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.backgroundColorAbgr=r.fixed32();break}case 4:{o.textColorAbgr=r.fixed32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.isBalloonStyle!=null&&r.hasOwnProperty("isBalloonStyle")&&typeof r.isBalloonStyle!="boolean")return"isBalloonStyle: boolean expected";if(r.text!=null&&r.hasOwnProperty("text")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.text);if(t)return"text."+t}return r.backgroundColorAbgr!=null&&r.hasOwnProperty("backgroundColorAbgr")&&!u.isInteger(r.backgroundColorAbgr)?"backgroundColorAbgr: integer expected":r.textColorAbgr!=null&&r.hasOwnProperty("textColorAbgr")&&!u.isInteger(r.textColorAbgr)?"textColorAbgr: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PopUpProto)return r;var t=new n.keyhole.dbroot.PopUpProto;if(r.isBalloonStyle!=null&&(t.isBalloonStyle=!!r.isBalloonStyle),r.text!=null){if(typeof r.text!="object")throw TypeError(".keyhole.dbroot.PopUpProto.text: object expected");t.text=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.text)}return r.backgroundColorAbgr!=null&&(t.backgroundColorAbgr=r.backgroundColorAbgr>>>0),r.textColorAbgr!=null&&(t.textColorAbgr=r.textColorAbgr>>>0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isBalloonStyle=!1,e.text=null,e.backgroundColorAbgr=4294967295,e.textColorAbgr=4278190080),r.isBalloonStyle!=null&&r.hasOwnProperty("isBalloonStyle")&&(e.isBalloonStyle=r.isBalloonStyle),r.text!=null&&r.hasOwnProperty("text")&&(e.text=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.text,t)),r.backgroundColorAbgr!=null&&r.hasOwnProperty("backgroundColorAbgr")&&(e.backgroundColorAbgr=r.backgroundColorAbgr),r.textColorAbgr!=null&&r.hasOwnProperty("textColorAbgr")&&(e.textColorAbgr=r.textColorAbgr),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PopUpProto"},i})(),c.StyleAttributeProto=(function(){function i(l){if(this.drawFlag=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.styleId="",i.prototype.providerId=0,i.prototype.polyColorAbgr=4294967295,i.prototype.lineColorAbgr=4294967295,i.prototype.lineWidth=1,i.prototype.labelColorAbgr=4294967295,i.prototype.labelScale=1,i.prototype.placemarkIconColorAbgr=4294967295,i.prototype.placemarkIconScale=1,i.prototype.placemarkIconPath=null,i.prototype.placemarkIconX=0,i.prototype.placemarkIconY=0,i.prototype.placemarkIconWidth=32,i.prototype.placemarkIconHeight=32,i.prototype.popUp=null,i.prototype.drawFlag=u.emptyArray,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StyleAttributeProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.styleId=r.string();break}case 3:{o.providerId=r.int32();break}case 4:{o.polyColorAbgr=r.fixed32();break}case 5:{o.lineColorAbgr=r.fixed32();break}case 6:{o.lineWidth=r.float();break}case 7:{o.labelColorAbgr=r.fixed32();break}case 8:{o.labelScale=r.float();break}case 9:{o.placemarkIconColorAbgr=r.fixed32();break}case 10:{o.placemarkIconScale=r.float();break}case 11:{o.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 12:{o.placemarkIconX=r.int32();break}case 13:{o.placemarkIconY=r.int32();break}case 14:{o.placemarkIconWidth=r.int32();break}case 15:{o.placemarkIconHeight=r.int32();break}case 16:{o.popUp=n.keyhole.dbroot.PopUpProto.decode(r,r.uint32());break}case 17:{o.drawFlag&&o.drawFlag.length||(o.drawFlag=[]),o.drawFlag.push(n.keyhole.dbroot.DrawFlagProto.decode(r,r.uint32()));break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("styleId"))throw u.ProtocolError("missing required 'styleId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.styleId))return"styleId: string expected";if(r.providerId!=null&&r.hasOwnProperty("providerId")&&!u.isInteger(r.providerId))return"providerId: integer expected";if(r.polyColorAbgr!=null&&r.hasOwnProperty("polyColorAbgr")&&!u.isInteger(r.polyColorAbgr))return"polyColorAbgr: integer expected";if(r.lineColorAbgr!=null&&r.hasOwnProperty("lineColorAbgr")&&!u.isInteger(r.lineColorAbgr))return"lineColorAbgr: integer expected";if(r.lineWidth!=null&&r.hasOwnProperty("lineWidth")&&typeof r.lineWidth!="number")return"lineWidth: number expected";if(r.labelColorAbgr!=null&&r.hasOwnProperty("labelColorAbgr")&&!u.isInteger(r.labelColorAbgr))return"labelColorAbgr: integer expected";if(r.labelScale!=null&&r.hasOwnProperty("labelScale")&&typeof r.labelScale!="number")return"labelScale: number expected";if(r.placemarkIconColorAbgr!=null&&r.hasOwnProperty("placemarkIconColorAbgr")&&!u.isInteger(r.placemarkIconColorAbgr))return"placemarkIconColorAbgr: integer expected";if(r.placemarkIconScale!=null&&r.hasOwnProperty("placemarkIconScale")&&typeof r.placemarkIconScale!="number")return"placemarkIconScale: number expected";if(r.placemarkIconPath!=null&&r.hasOwnProperty("placemarkIconPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.placemarkIconPath);if(t)return"placemarkIconPath."+t}if(r.placemarkIconX!=null&&r.hasOwnProperty("placemarkIconX")&&!u.isInteger(r.placemarkIconX))return"placemarkIconX: integer expected";if(r.placemarkIconY!=null&&r.hasOwnProperty("placemarkIconY")&&!u.isInteger(r.placemarkIconY))return"placemarkIconY: integer expected";if(r.placemarkIconWidth!=null&&r.hasOwnProperty("placemarkIconWidth")&&!u.isInteger(r.placemarkIconWidth))return"placemarkIconWidth: integer expected";if(r.placemarkIconHeight!=null&&r.hasOwnProperty("placemarkIconHeight")&&!u.isInteger(r.placemarkIconHeight))return"placemarkIconHeight: integer expected";if(r.popUp!=null&&r.hasOwnProperty("popUp")){var t=n.keyhole.dbroot.PopUpProto.verify(r.popUp);if(t)return"popUp."+t}if(r.drawFlag!=null&&r.hasOwnProperty("drawFlag")){if(!Array.isArray(r.drawFlag))return"drawFlag: array expected";for(var e=0;e<r.drawFlag.length;++e){var t=n.keyhole.dbroot.DrawFlagProto.verify(r.drawFlag[e]);if(t)return"drawFlag."+t}}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StyleAttributeProto)return r;var t=new n.keyhole.dbroot.StyleAttributeProto;if(r.styleId!=null&&(t.styleId=String(r.styleId)),r.providerId!=null&&(t.providerId=r.providerId|0),r.polyColorAbgr!=null&&(t.polyColorAbgr=r.polyColorAbgr>>>0),r.lineColorAbgr!=null&&(t.lineColorAbgr=r.lineColorAbgr>>>0),r.lineWidth!=null&&(t.lineWidth=Number(r.lineWidth)),r.labelColorAbgr!=null&&(t.labelColorAbgr=r.labelColorAbgr>>>0),r.labelScale!=null&&(t.labelScale=Number(r.labelScale)),r.placemarkIconColorAbgr!=null&&(t.placemarkIconColorAbgr=r.placemarkIconColorAbgr>>>0),r.placemarkIconScale!=null&&(t.placemarkIconScale=Number(r.placemarkIconScale)),r.placemarkIconPath!=null){if(typeof r.placemarkIconPath!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.placemarkIconPath: object expected");t.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.placemarkIconPath)}if(r.placemarkIconX!=null&&(t.placemarkIconX=r.placemarkIconX|0),r.placemarkIconY!=null&&(t.placemarkIconY=r.placemarkIconY|0),r.placemarkIconWidth!=null&&(t.placemarkIconWidth=r.placemarkIconWidth|0),r.placemarkIconHeight!=null&&(t.placemarkIconHeight=r.placemarkIconHeight|0),r.popUp!=null){if(typeof r.popUp!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.popUp: object expected");t.popUp=n.keyhole.dbroot.PopUpProto.fromObject(r.popUp)}if(r.drawFlag){if(!Array.isArray(r.drawFlag))throw TypeError(".keyhole.dbroot.StyleAttributeProto.drawFlag: array expected");t.drawFlag=[];for(var e=0;e<r.drawFlag.length;++e){if(typeof r.drawFlag[e]!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.drawFlag: object expected");t.drawFlag[e]=n.keyhole.dbroot.DrawFlagProto.fromObject(r.drawFlag[e])}}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.drawFlag=[]),t.defaults&&(e.styleId="",e.providerId=0,e.polyColorAbgr=4294967295,e.lineColorAbgr=4294967295,e.lineWidth=1,e.labelColorAbgr=4294967295,e.labelScale=1,e.placemarkIconColorAbgr=4294967295,e.placemarkIconScale=1,e.placemarkIconPath=null,e.placemarkIconX=0,e.placemarkIconY=0,e.placemarkIconWidth=32,e.placemarkIconHeight=32,e.popUp=null),r.styleId!=null&&r.hasOwnProperty("styleId")&&(e.styleId=r.styleId),r.providerId!=null&&r.hasOwnProperty("providerId")&&(e.providerId=r.providerId),r.polyColorAbgr!=null&&r.hasOwnProperty("polyColorAbgr")&&(e.polyColorAbgr=r.polyColorAbgr),r.lineColorAbgr!=null&&r.hasOwnProperty("lineColorAbgr")&&(e.lineColorAbgr=r.lineColorAbgr),r.lineWidth!=null&&r.hasOwnProperty("lineWidth")&&(e.lineWidth=t.json&&!isFinite(r.lineWidth)?String(r.lineWidth):r.lineWidth),r.labelColorAbgr!=null&&r.hasOwnProperty("labelColorAbgr")&&(e.labelColorAbgr=r.labelColorAbgr),r.labelScale!=null&&r.hasOwnProperty("labelScale")&&(e.labelScale=t.json&&!isFinite(r.labelScale)?String(r.labelScale):r.labelScale),r.placemarkIconColorAbgr!=null&&r.hasOwnProperty("placemarkIconColorAbgr")&&(e.placemarkIconColorAbgr=r.placemarkIconColorAbgr),r.placemarkIconScale!=null&&r.hasOwnProperty("placemarkIconScale")&&(e.placemarkIconScale=t.json&&!isFinite(r.placemarkIconScale)?String(r.placemarkIconScale):r.placemarkIconScale),r.placemarkIconPath!=null&&r.hasOwnProperty("placemarkIconPath")&&(e.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.placemarkIconPath,t)),r.placemarkIconX!=null&&r.hasOwnProperty("placemarkIconX")&&(e.placemarkIconX=r.placemarkIconX),r.placemarkIconY!=null&&r.hasOwnProperty("placemarkIconY")&&(e.placemarkIconY=r.placemarkIconY),r.placemarkIconWidth!=null&&r.hasOwnProperty("placemarkIconWidth")&&(e.placemarkIconWidth=r.placemarkIconWidth),r.placemarkIconHeight!=null&&r.hasOwnProperty("placemarkIconHeight")&&(e.placemarkIconHeight=r.placemarkIconHeight),r.popUp!=null&&r.hasOwnProperty("popUp")&&(e.popUp=n.keyhole.dbroot.PopUpProto.toObject(r.popUp,t)),r.drawFlag&&r.drawFlag.length){e.drawFlag=[];for(var o=0;o<r.drawFlag.length;++o)e.drawFlag[o]=n.keyhole.dbroot.DrawFlagProto.toObject(r.drawFlag[o],t)}return e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StyleAttributeProto"},i})(),c.StyleMapProto=(function(){function i(l){if(this.channelId=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.styleMapId=0,i.prototype.channelId=u.emptyArray,i.prototype.normalStyleAttribute=0,i.prototype.highlightStyleAttribute=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StyleMapProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.styleMapId=r.int32();break}case 2:{if(o.channelId&&o.channelId.length||(o.channelId=[]),(a&7)===2)for(var p=r.uint32()+r.pos;r.pos<p;)o.channelId.push(r.int32());else o.channelId.push(r.int32());break}case 3:{o.normalStyleAttribute=r.int32();break}case 4:{o.highlightStyleAttribute=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("styleMapId"))throw u.ProtocolError("missing required 'styleMapId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isInteger(r.styleMapId))return"styleMapId: integer expected";if(r.channelId!=null&&r.hasOwnProperty("channelId")){if(!Array.isArray(r.channelId))return"channelId: array expected";for(var t=0;t<r.channelId.length;++t)if(!u.isInteger(r.channelId[t]))return"channelId: integer[] expected"}return r.normalStyleAttribute!=null&&r.hasOwnProperty("normalStyleAttribute")&&!u.isInteger(r.normalStyleAttribute)?"normalStyleAttribute: integer expected":r.highlightStyleAttribute!=null&&r.hasOwnProperty("highlightStyleAttribute")&&!u.isInteger(r.highlightStyleAttribute)?"highlightStyleAttribute: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StyleMapProto)return r;var t=new n.keyhole.dbroot.StyleMapProto;if(r.styleMapId!=null&&(t.styleMapId=r.styleMapId|0),r.channelId){if(!Array.isArray(r.channelId))throw TypeError(".keyhole.dbroot.StyleMapProto.channelId: array expected");t.channelId=[];for(var e=0;e<r.channelId.length;++e)t.channelId[e]=r.channelId[e]|0}return r.normalStyleAttribute!=null&&(t.normalStyleAttribute=r.normalStyleAttribute|0),r.highlightStyleAttribute!=null&&(t.highlightStyleAttribute=r.highlightStyleAttribute|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.channelId=[]),t.defaults&&(e.styleMapId=0,e.normalStyleAttribute=0,e.highlightStyleAttribute=0),r.styleMapId!=null&&r.hasOwnProperty("styleMapId")&&(e.styleMapId=r.styleMapId),r.channelId&&r.channelId.length){e.channelId=[];for(var o=0;o<r.channelId.length;++o)e.channelId[o]=r.channelId[o]}return r.normalStyleAttribute!=null&&r.hasOwnProperty("normalStyleAttribute")&&(e.normalStyleAttribute=r.normalStyleAttribute),r.highlightStyleAttribute!=null&&r.hasOwnProperty("highlightStyleAttribute")&&(e.highlightStyleAttribute=r.highlightStyleAttribute),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StyleMapProto"},i})(),c.ZoomRangeProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.minZoom=0,i.prototype.maxZoom=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ZoomRangeProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.minZoom=r.int32();break}case 2:{o.maxZoom=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("minZoom"))throw u.ProtocolError("missing required 'minZoom'",{instance:o});if(!o.hasOwnProperty("maxZoom"))throw u.ProtocolError("missing required 'maxZoom'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.minZoom)?u.isInteger(r.maxZoom)?null:"maxZoom: integer expected":"minZoom: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ZoomRangeProto)return r;var t=new n.keyhole.dbroot.ZoomRangeProto;return r.minZoom!=null&&(t.minZoom=r.minZoom|0),r.maxZoom!=null&&(t.maxZoom=r.maxZoom|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.minZoom=0,e.maxZoom=0),r.minZoom!=null&&r.hasOwnProperty("minZoom")&&(e.minZoom=r.minZoom),r.maxZoom!=null&&r.hasOwnProperty("maxZoom")&&(e.maxZoom=r.maxZoom),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ZoomRangeProto"},i})(),c.DrawFlagProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.drawFlagType=1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DrawFlagProto;r.pos<e;){var a=r.uint32();a>>>3===1?o.drawFlagType=r.int32():r.skipType(a&7)}if(!o.hasOwnProperty("drawFlagType"))throw u.ProtocolError("missing required 'drawFlagType'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";switch(r.drawFlagType){default:return"drawFlagType: enum value expected";case 1:case 2:case 3:case 4:case 5:break}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DrawFlagProto)return r;var t=new n.keyhole.dbroot.DrawFlagProto;switch(r.drawFlagType){case"TYPE_FILL_ONLY":case 1:t.drawFlagType=1;break;case"TYPE_OUTLINE_ONLY":case 2:t.drawFlagType=2;break;case"TYPE_FILL_AND_OUTLINE":case 3:t.drawFlagType=3;break;case"TYPE_ANTIALIASING":case 4:t.drawFlagType=4;break;case"TYPE_CENTER_LABEL":case 5:t.drawFlagType=5;break}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.drawFlagType=t.enums===String?"TYPE_FILL_ONLY":1),r.drawFlagType!=null&&r.hasOwnProperty("drawFlagType")&&(e.drawFlagType=t.enums===String?n.keyhole.dbroot.DrawFlagProto.DrawFlagType[r.drawFlagType]:r.drawFlagType),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DrawFlagProto"},i.DrawFlagType=(function(){var l={},r=Object.create(l);return r[l[1]="TYPE_FILL_ONLY"]=1,r[l[2]="TYPE_OUTLINE_ONLY"]=2,r[l[3]="TYPE_FILL_AND_OUTLINE"]=3,r[l[4]="TYPE_ANTIALIASING"]=4,r[l[5]="TYPE_CENTER_LABEL"]=5,r})(),i})(),c.LayerProto=(function(){function i(l){if(this.zoomRange=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.zoomRange=u.emptyArray,i.prototype.preserveTextLevel=30,i.prototype.lodBeginTransition=!1,i.prototype.lodEndTransition=!1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LayerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.zoomRange&&o.zoomRange.length||(o.zoomRange=[]),o.zoomRange.push(n.keyhole.dbroot.ZoomRangeProto.decode(r,r.uint32()));break}case 2:{o.preserveTextLevel=r.int32();break}case 4:{o.lodBeginTransition=r.bool();break}case 5:{o.lodEndTransition=r.bool();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.zoomRange!=null&&r.hasOwnProperty("zoomRange")){if(!Array.isArray(r.zoomRange))return"zoomRange: array expected";for(var t=0;t<r.zoomRange.length;++t){var e=n.keyhole.dbroot.ZoomRangeProto.verify(r.zoomRange[t]);if(e)return"zoomRange."+e}}return r.preserveTextLevel!=null&&r.hasOwnProperty("preserveTextLevel")&&!u.isInteger(r.preserveTextLevel)?"preserveTextLevel: integer expected":r.lodBeginTransition!=null&&r.hasOwnProperty("lodBeginTransition")&&typeof r.lodBeginTransition!="boolean"?"lodBeginTransition: boolean expected":r.lodEndTransition!=null&&r.hasOwnProperty("lodEndTransition")&&typeof r.lodEndTransition!="boolean"?"lodEndTransition: boolean expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LayerProto)return r;var t=new n.keyhole.dbroot.LayerProto;if(r.zoomRange){if(!Array.isArray(r.zoomRange))throw TypeError(".keyhole.dbroot.LayerProto.zoomRange: array expected");t.zoomRange=[];for(var e=0;e<r.zoomRange.length;++e){if(typeof r.zoomRange[e]!="object")throw TypeError(".keyhole.dbroot.LayerProto.zoomRange: object expected");t.zoomRange[e]=n.keyhole.dbroot.ZoomRangeProto.fromObject(r.zoomRange[e])}}return r.preserveTextLevel!=null&&(t.preserveTextLevel=r.preserveTextLevel|0),r.lodBeginTransition!=null&&(t.lodBeginTransition=!!r.lodBeginTransition),r.lodEndTransition!=null&&(t.lodEndTransition=!!r.lodEndTransition),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.zoomRange=[]),t.defaults&&(e.preserveTextLevel=30,e.lodBeginTransition=!1,e.lodEndTransition=!1),r.zoomRange&&r.zoomRange.length){e.zoomRange=[];for(var o=0;o<r.zoomRange.length;++o)e.zoomRange[o]=n.keyhole.dbroot.ZoomRangeProto.toObject(r.zoomRange[o],t)}return r.preserveTextLevel!=null&&r.hasOwnProperty("preserveTextLevel")&&(e.preserveTextLevel=r.preserveTextLevel),r.lodBeginTransition!=null&&r.hasOwnProperty("lodBeginTransition")&&(e.lodBeginTransition=r.lodBeginTransition),r.lodEndTransition!=null&&r.hasOwnProperty("lodEndTransition")&&(e.lodEndTransition=r.lodEndTransition),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LayerProto"},i})(),c.FolderProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isExpandable=!0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.FolderProto;r.pos<e;){var a=r.uint32();a>>>3===1?o.isExpandable=r.bool():r.skipType(a&7)}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.isExpandable!=null&&r.hasOwnProperty("isExpandable")&&typeof r.isExpandable!="boolean"?"isExpandable: boolean expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.FolderProto)return r;var t=new n.keyhole.dbroot.FolderProto;return r.isExpandable!=null&&(t.isExpandable=!!r.isExpandable),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isExpandable=!0),r.isExpandable!=null&&r.hasOwnProperty("isExpandable")&&(e.isExpandable=r.isExpandable),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.FolderProto"},i})(),c.RequirementProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.requiredVram="",i.prototype.requiredClientVer="",i.prototype.probability="",i.prototype.requiredUserAgent="",i.prototype.requiredClientCapabilities="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.RequirementProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 3:{o.requiredVram=r.string();break}case 4:{o.requiredClientVer=r.string();break}case 5:{o.probability=r.string();break}case 6:{o.requiredUserAgent=r.string();break}case 7:{o.requiredClientCapabilities=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.requiredVram!=null&&r.hasOwnProperty("requiredVram")&&!u.isString(r.requiredVram)?"requiredVram: string expected":r.requiredClientVer!=null&&r.hasOwnProperty("requiredClientVer")&&!u.isString(r.requiredClientVer)?"requiredClientVer: string expected":r.probability!=null&&r.hasOwnProperty("probability")&&!u.isString(r.probability)?"probability: string expected":r.requiredUserAgent!=null&&r.hasOwnProperty("requiredUserAgent")&&!u.isString(r.requiredUserAgent)?"requiredUserAgent: string expected":r.requiredClientCapabilities!=null&&r.hasOwnProperty("requiredClientCapabilities")&&!u.isString(r.requiredClientCapabilities)?"requiredClientCapabilities: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.RequirementProto)return r;var t=new n.keyhole.dbroot.RequirementProto;return r.requiredVram!=null&&(t.requiredVram=String(r.requiredVram)),r.requiredClientVer!=null&&(t.requiredClientVer=String(r.requiredClientVer)),r.probability!=null&&(t.probability=String(r.probability)),r.requiredUserAgent!=null&&(t.requiredUserAgent=String(r.requiredUserAgent)),r.requiredClientCapabilities!=null&&(t.requiredClientCapabilities=String(r.requiredClientCapabilities)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.requiredVram="",e.requiredClientVer="",e.probability="",e.requiredUserAgent="",e.requiredClientCapabilities=""),r.requiredVram!=null&&r.hasOwnProperty("requiredVram")&&(e.requiredVram=r.requiredVram),r.requiredClientVer!=null&&r.hasOwnProperty("requiredClientVer")&&(e.requiredClientVer=r.requiredClientVer),r.probability!=null&&r.hasOwnProperty("probability")&&(e.probability=r.probability),r.requiredUserAgent!=null&&r.hasOwnProperty("requiredUserAgent")&&(e.requiredUserAgent=r.requiredUserAgent),r.requiredClientCapabilities!=null&&r.hasOwnProperty("requiredClientCapabilities")&&(e.requiredClientCapabilities=r.requiredClientCapabilities),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.RequirementProto"},i})(),c.LookAtProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.longitude=0,i.prototype.latitude=0,i.prototype.range=0,i.prototype.tilt=0,i.prototype.heading=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LookAtProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.longitude=r.float();break}case 2:{o.latitude=r.float();break}case 3:{o.range=r.float();break}case 4:{o.tilt=r.float();break}case 5:{o.heading=r.float();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("longitude"))throw u.ProtocolError("missing required 'longitude'",{instance:o});if(!o.hasOwnProperty("latitude"))throw u.ProtocolError("missing required 'latitude'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":typeof r.longitude!="number"?"longitude: number expected":typeof r.latitude!="number"?"latitude: number expected":r.range!=null&&r.hasOwnProperty("range")&&typeof r.range!="number"?"range: number expected":r.tilt!=null&&r.hasOwnProperty("tilt")&&typeof r.tilt!="number"?"tilt: number expected":r.heading!=null&&r.hasOwnProperty("heading")&&typeof r.heading!="number"?"heading: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LookAtProto)return r;var t=new n.keyhole.dbroot.LookAtProto;return r.longitude!=null&&(t.longitude=Number(r.longitude)),r.latitude!=null&&(t.latitude=Number(r.latitude)),r.range!=null&&(t.range=Number(r.range)),r.tilt!=null&&(t.tilt=Number(r.tilt)),r.heading!=null&&(t.heading=Number(r.heading)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.longitude=0,e.latitude=0,e.range=0,e.tilt=0,e.heading=0),r.longitude!=null&&r.hasOwnProperty("longitude")&&(e.longitude=t.json&&!isFinite(r.longitude)?String(r.longitude):r.longitude),r.latitude!=null&&r.hasOwnProperty("latitude")&&(e.latitude=t.json&&!isFinite(r.latitude)?String(r.latitude):r.latitude),r.range!=null&&r.hasOwnProperty("range")&&(e.range=t.json&&!isFinite(r.range)?String(r.range):r.range),r.tilt!=null&&r.hasOwnProperty("tilt")&&(e.tilt=t.json&&!isFinite(r.tilt)?String(r.tilt):r.tilt),r.heading!=null&&r.hasOwnProperty("heading")&&(e.heading=t.json&&!isFinite(r.heading)?String(r.heading):r.heading),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LookAtProto"},i})(),c.NestedFeatureProto=(function(){function i(l){if(this.children=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.featureType=1,i.prototype.kmlUrl=null,i.prototype.databaseUrl="",i.prototype.layer=null,i.prototype.folder=null,i.prototype.requirement=null,i.prototype.channelId=0,i.prototype.displayName=null,i.prototype.isVisible=!0,i.prototype.isEnabled=!0,i.prototype.isChecked=!1,i.prototype.layerMenuIconPath="icons/773_l.png",i.prototype.description=null,i.prototype.lookAt=null,i.prototype.assetUuid="",i.prototype.isSaveLocked=!0,i.prototype.children=u.emptyArray,i.prototype.clientConfigScriptName="",i.prototype.dioramaDataChannelBase=-1,i.prototype.replicaDataChannelBase=-1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.NestedFeatureProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.featureType=r.int32();break}case 2:{o.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 21:{o.databaseUrl=r.string();break}case 3:{o.layer=n.keyhole.dbroot.LayerProto.decode(r,r.uint32());break}case 4:{o.folder=n.keyhole.dbroot.FolderProto.decode(r,r.uint32());break}case 5:{o.requirement=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}case 6:{o.channelId=r.int32();break}case 7:{o.displayName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 8:{o.isVisible=r.bool();break}case 9:{o.isEnabled=r.bool();break}case 10:{o.isChecked=r.bool();break}case 11:{o.layerMenuIconPath=r.string();break}case 12:{o.description=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 13:{o.lookAt=n.keyhole.dbroot.LookAtProto.decode(r,r.uint32());break}case 15:{o.assetUuid=r.string();break}case 16:{o.isSaveLocked=r.bool();break}case 17:{o.children&&o.children.length||(o.children=[]),o.children.push(n.keyhole.dbroot.NestedFeatureProto.decode(r,r.uint32()));break}case 18:{o.clientConfigScriptName=r.string();break}case 19:{o.dioramaDataChannelBase=r.int32();break}case 20:{o.replicaDataChannelBase=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("channelId"))throw u.ProtocolError("missing required 'channelId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.featureType!=null&&r.hasOwnProperty("featureType"))switch(r.featureType){default:return"featureType: enum value expected";case 1:case 2:case 3:case 4:break}if(r.kmlUrl!=null&&r.hasOwnProperty("kmlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.kmlUrl);if(t)return"kmlUrl."+t}if(r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&!u.isString(r.databaseUrl))return"databaseUrl: string expected";if(r.layer!=null&&r.hasOwnProperty("layer")){var t=n.keyhole.dbroot.LayerProto.verify(r.layer);if(t)return"layer."+t}if(r.folder!=null&&r.hasOwnProperty("folder")){var t=n.keyhole.dbroot.FolderProto.verify(r.folder);if(t)return"folder."+t}if(r.requirement!=null&&r.hasOwnProperty("requirement")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirement);if(t)return"requirement."+t}if(!u.isInteger(r.channelId))return"channelId: integer expected";if(r.displayName!=null&&r.hasOwnProperty("displayName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.displayName);if(t)return"displayName."+t}if(r.isVisible!=null&&r.hasOwnProperty("isVisible")&&typeof r.isVisible!="boolean")return"isVisible: boolean expected";if(r.isEnabled!=null&&r.hasOwnProperty("isEnabled")&&typeof r.isEnabled!="boolean")return"isEnabled: boolean expected";if(r.isChecked!=null&&r.hasOwnProperty("isChecked")&&typeof r.isChecked!="boolean")return"isChecked: boolean expected";if(r.layerMenuIconPath!=null&&r.hasOwnProperty("layerMenuIconPath")&&!u.isString(r.layerMenuIconPath))return"layerMenuIconPath: string expected";if(r.description!=null&&r.hasOwnProperty("description")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.description);if(t)return"description."+t}if(r.lookAt!=null&&r.hasOwnProperty("lookAt")){var t=n.keyhole.dbroot.LookAtProto.verify(r.lookAt);if(t)return"lookAt."+t}if(r.assetUuid!=null&&r.hasOwnProperty("assetUuid")&&!u.isString(r.assetUuid))return"assetUuid: string expected";if(r.isSaveLocked!=null&&r.hasOwnProperty("isSaveLocked")&&typeof r.isSaveLocked!="boolean")return"isSaveLocked: boolean expected";if(r.children!=null&&r.hasOwnProperty("children")){if(!Array.isArray(r.children))return"children: array expected";for(var e=0;e<r.children.length;++e){var t=n.keyhole.dbroot.NestedFeatureProto.verify(r.children[e]);if(t)return"children."+t}}return r.clientConfigScriptName!=null&&r.hasOwnProperty("clientConfigScriptName")&&!u.isString(r.clientConfigScriptName)?"clientConfigScriptName: string expected":r.dioramaDataChannelBase!=null&&r.hasOwnProperty("dioramaDataChannelBase")&&!u.isInteger(r.dioramaDataChannelBase)?"dioramaDataChannelBase: integer expected":r.replicaDataChannelBase!=null&&r.hasOwnProperty("replicaDataChannelBase")&&!u.isInteger(r.replicaDataChannelBase)?"replicaDataChannelBase: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.NestedFeatureProto)return r;var t=new n.keyhole.dbroot.NestedFeatureProto;switch(r.featureType){case"TYPE_POINT_Z":case 1:t.featureType=1;break;case"TYPE_POLYGON_Z":case 2:t.featureType=2;break;case"TYPE_LINE_Z":case 3:t.featureType=3;break;case"TYPE_TERRAIN":case 4:t.featureType=4;break}if(r.kmlUrl!=null){if(typeof r.kmlUrl!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.kmlUrl: object expected");t.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.kmlUrl)}if(r.databaseUrl!=null&&(t.databaseUrl=String(r.databaseUrl)),r.layer!=null){if(typeof r.layer!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.layer: object expected");t.layer=n.keyhole.dbroot.LayerProto.fromObject(r.layer)}if(r.folder!=null){if(typeof r.folder!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.folder: object expected");t.folder=n.keyhole.dbroot.FolderProto.fromObject(r.folder)}if(r.requirement!=null){if(typeof r.requirement!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.requirement: object expected");t.requirement=n.keyhole.dbroot.RequirementProto.fromObject(r.requirement)}if(r.channelId!=null&&(t.channelId=r.channelId|0),r.displayName!=null){if(typeof r.displayName!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.displayName: object expected");t.displayName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.displayName)}if(r.isVisible!=null&&(t.isVisible=!!r.isVisible),r.isEnabled!=null&&(t.isEnabled=!!r.isEnabled),r.isChecked!=null&&(t.isChecked=!!r.isChecked),r.layerMenuIconPath!=null&&(t.layerMenuIconPath=String(r.layerMenuIconPath)),r.description!=null){if(typeof r.description!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.description: object expected");t.description=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.description)}if(r.lookAt!=null){if(typeof r.lookAt!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.lookAt: object expected");t.lookAt=n.keyhole.dbroot.LookAtProto.fromObject(r.lookAt)}if(r.assetUuid!=null&&(t.assetUuid=String(r.assetUuid)),r.isSaveLocked!=null&&(t.isSaveLocked=!!r.isSaveLocked),r.children){if(!Array.isArray(r.children))throw TypeError(".keyhole.dbroot.NestedFeatureProto.children: array expected");t.children=[];for(var e=0;e<r.children.length;++e){if(typeof r.children[e]!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.children: object expected");t.children[e]=n.keyhole.dbroot.NestedFeatureProto.fromObject(r.children[e])}}return r.clientConfigScriptName!=null&&(t.clientConfigScriptName=String(r.clientConfigScriptName)),r.dioramaDataChannelBase!=null&&(t.dioramaDataChannelBase=r.dioramaDataChannelBase|0),r.replicaDataChannelBase!=null&&(t.replicaDataChannelBase=r.replicaDataChannelBase|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.children=[]),t.defaults&&(e.featureType=t.enums===String?"TYPE_POINT_Z":1,e.kmlUrl=null,e.layer=null,e.folder=null,e.requirement=null,e.channelId=0,e.displayName=null,e.isVisible=!0,e.isEnabled=!0,e.isChecked=!1,e.layerMenuIconPath="icons/773_l.png",e.description=null,e.lookAt=null,e.assetUuid="",e.isSaveLocked=!0,e.clientConfigScriptName="",e.dioramaDataChannelBase=-1,e.replicaDataChannelBase=-1,e.databaseUrl=""),r.featureType!=null&&r.hasOwnProperty("featureType")&&(e.featureType=t.enums===String?n.keyhole.dbroot.NestedFeatureProto.FeatureType[r.featureType]:r.featureType),r.kmlUrl!=null&&r.hasOwnProperty("kmlUrl")&&(e.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.kmlUrl,t)),r.layer!=null&&r.hasOwnProperty("layer")&&(e.layer=n.keyhole.dbroot.LayerProto.toObject(r.layer,t)),r.folder!=null&&r.hasOwnProperty("folder")&&(e.folder=n.keyhole.dbroot.FolderProto.toObject(r.folder,t)),r.requirement!=null&&r.hasOwnProperty("requirement")&&(e.requirement=n.keyhole.dbroot.RequirementProto.toObject(r.requirement,t)),r.channelId!=null&&r.hasOwnProperty("channelId")&&(e.channelId=r.channelId),r.displayName!=null&&r.hasOwnProperty("displayName")&&(e.displayName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.displayName,t)),r.isVisible!=null&&r.hasOwnProperty("isVisible")&&(e.isVisible=r.isVisible),r.isEnabled!=null&&r.hasOwnProperty("isEnabled")&&(e.isEnabled=r.isEnabled),r.isChecked!=null&&r.hasOwnProperty("isChecked")&&(e.isChecked=r.isChecked),r.layerMenuIconPath!=null&&r.hasOwnProperty("layerMenuIconPath")&&(e.layerMenuIconPath=r.layerMenuIconPath),r.description!=null&&r.hasOwnProperty("description")&&(e.description=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.description,t)),r.lookAt!=null&&r.hasOwnProperty("lookAt")&&(e.lookAt=n.keyhole.dbroot.LookAtProto.toObject(r.lookAt,t)),r.assetUuid!=null&&r.hasOwnProperty("assetUuid")&&(e.assetUuid=r.assetUuid),r.isSaveLocked!=null&&r.hasOwnProperty("isSaveLocked")&&(e.isSaveLocked=r.isSaveLocked),r.children&&r.children.length){e.children=[];for(var o=0;o<r.children.length;++o)e.children[o]=n.keyhole.dbroot.NestedFeatureProto.toObject(r.children[o],t)}return r.clientConfigScriptName!=null&&r.hasOwnProperty("clientConfigScriptName")&&(e.clientConfigScriptName=r.clientConfigScriptName),r.dioramaDataChannelBase!=null&&r.hasOwnProperty("dioramaDataChannelBase")&&(e.dioramaDataChannelBase=r.dioramaDataChannelBase),r.replicaDataChannelBase!=null&&r.hasOwnProperty("replicaDataChannelBase")&&(e.replicaDataChannelBase=r.replicaDataChannelBase),r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&(e.databaseUrl=r.databaseUrl),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.NestedFeatureProto"},i.FeatureType=(function(){var l={},r=Object.create(l);return r[l[1]="TYPE_POINT_Z"]=1,r[l[2]="TYPE_POLYGON_Z"]=2,r[l[3]="TYPE_LINE_Z"]=3,r[l[4]="TYPE_TERRAIN"]=4,r})(),i})(),c.MfeDomainFeaturesProto=(function(){function i(l){if(this.supportedFeatures=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.countryCode="",i.prototype.domainName="",i.prototype.supportedFeatures=u.emptyArray,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.MfeDomainFeaturesProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.countryCode=r.string();break}case 2:{o.domainName=r.string();break}case 3:{if(o.supportedFeatures&&o.supportedFeatures.length||(o.supportedFeatures=[]),(a&7)===2)for(var p=r.uint32()+r.pos;r.pos<p;)o.supportedFeatures.push(r.int32());else o.supportedFeatures.push(r.int32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("countryCode"))throw u.ProtocolError("missing required 'countryCode'",{instance:o});if(!o.hasOwnProperty("domainName"))throw u.ProtocolError("missing required 'domainName'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.countryCode))return"countryCode: string expected";if(!u.isString(r.domainName))return"domainName: string expected";if(r.supportedFeatures!=null&&r.hasOwnProperty("supportedFeatures")){if(!Array.isArray(r.supportedFeatures))return"supportedFeatures: array expected";for(var t=0;t<r.supportedFeatures.length;++t)switch(r.supportedFeatures[t]){default:return"supportedFeatures: enum value[] expected";case 0:case 1:case 2:break}}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.MfeDomainFeaturesProto)return r;var t=new n.keyhole.dbroot.MfeDomainFeaturesProto;if(r.countryCode!=null&&(t.countryCode=String(r.countryCode)),r.domainName!=null&&(t.domainName=String(r.domainName)),r.supportedFeatures){if(!Array.isArray(r.supportedFeatures))throw TypeError(".keyhole.dbroot.MfeDomainFeaturesProto.supportedFeatures: array expected");t.supportedFeatures=[];for(var e=0;e<r.supportedFeatures.length;++e)switch(r.supportedFeatures[e]){default:case"GEOCODING":case 0:t.supportedFeatures[e]=0;break;case"LOCAL_SEARCH":case 1:t.supportedFeatures[e]=1;break;case"DRIVING_DIRECTIONS":case 2:t.supportedFeatures[e]=2;break}}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.supportedFeatures=[]),t.defaults&&(e.countryCode="",e.domainName=""),r.countryCode!=null&&r.hasOwnProperty("countryCode")&&(e.countryCode=r.countryCode),r.domainName!=null&&r.hasOwnProperty("domainName")&&(e.domainName=r.domainName),r.supportedFeatures&&r.supportedFeatures.length){e.supportedFeatures=[];for(var o=0;o<r.supportedFeatures.length;++o)e.supportedFeatures[o]=t.enums===String?n.keyhole.dbroot.MfeDomainFeaturesProto.SupportedFeature[r.supportedFeatures[o]]:r.supportedFeatures[o]}return e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.MfeDomainFeaturesProto"},i.SupportedFeature=(function(){var l={},r=Object.create(l);return r[l[0]="GEOCODING"]=0,r[l[1]="LOCAL_SEARCH"]=1,r[l[2]="DRIVING_DIRECTIONS"]=2,r})(),i})(),c.ClientOptionsProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.disableDiskCache=!1,i.prototype.disableEmbeddedBrowserVista=!1,i.prototype.drawAtmosphere=!0,i.prototype.drawStars=!0,i.prototype.shaderFilePrefix="",i.prototype.useProtobufQuadtreePackets=!1,i.prototype.useExtendedCopyrightIds=!0,i.prototype.precipitationsOptions=null,i.prototype.captureOptions=null,i.prototype.show_2dMapsIcon=!0,i.prototype.disableInternalBrowser=!1,i.prototype.internalBrowserBlacklist="",i.prototype.internalBrowserOriginWhitelist="*",i.prototype.polarTileMergingLevel=0,i.prototype.jsBridgeRequestWhitelist="http://*.google.com/*",i.prototype.mapsOptions=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ClientOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.disableDiskCache=r.bool();break}case 2:{o.disableEmbeddedBrowserVista=r.bool();break}case 3:{o.drawAtmosphere=r.bool();break}case 4:{o.drawStars=r.bool();break}case 5:{o.shaderFilePrefix=r.string();break}case 6:{o.useProtobufQuadtreePackets=r.bool();break}case 7:{o.useExtendedCopyrightIds=r.bool();break}case 8:{o.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.decode(r,r.uint32());break}case 9:{o.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.decode(r,r.uint32());break}case 10:{o.show_2dMapsIcon=r.bool();break}case 11:{o.disableInternalBrowser=r.bool();break}case 12:{o.internalBrowserBlacklist=r.string();break}case 13:{o.internalBrowserOriginWhitelist=r.string();break}case 14:{o.polarTileMergingLevel=r.int32();break}case 15:{o.jsBridgeRequestWhitelist=r.string();break}case 16:{o.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.disableDiskCache!=null&&r.hasOwnProperty("disableDiskCache")&&typeof r.disableDiskCache!="boolean")return"disableDiskCache: boolean expected";if(r.disableEmbeddedBrowserVista!=null&&r.hasOwnProperty("disableEmbeddedBrowserVista")&&typeof r.disableEmbeddedBrowserVista!="boolean")return"disableEmbeddedBrowserVista: boolean expected";if(r.drawAtmosphere!=null&&r.hasOwnProperty("drawAtmosphere")&&typeof r.drawAtmosphere!="boolean")return"drawAtmosphere: boolean expected";if(r.drawStars!=null&&r.hasOwnProperty("drawStars")&&typeof r.drawStars!="boolean")return"drawStars: boolean expected";if(r.shaderFilePrefix!=null&&r.hasOwnProperty("shaderFilePrefix")&&!u.isString(r.shaderFilePrefix))return"shaderFilePrefix: string expected";if(r.useProtobufQuadtreePackets!=null&&r.hasOwnProperty("useProtobufQuadtreePackets")&&typeof r.useProtobufQuadtreePackets!="boolean")return"useProtobufQuadtreePackets: boolean expected";if(r.useExtendedCopyrightIds!=null&&r.hasOwnProperty("useExtendedCopyrightIds")&&typeof r.useExtendedCopyrightIds!="boolean")return"useExtendedCopyrightIds: boolean expected";if(r.precipitationsOptions!=null&&r.hasOwnProperty("precipitationsOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.verify(r.precipitationsOptions);if(t)return"precipitationsOptions."+t}if(r.captureOptions!=null&&r.hasOwnProperty("captureOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.verify(r.captureOptions);if(t)return"captureOptions."+t}if(r.show_2dMapsIcon!=null&&r.hasOwnProperty("show_2dMapsIcon")&&typeof r.show_2dMapsIcon!="boolean")return"show_2dMapsIcon: boolean expected";if(r.disableInternalBrowser!=null&&r.hasOwnProperty("disableInternalBrowser")&&typeof r.disableInternalBrowser!="boolean")return"disableInternalBrowser: boolean expected";if(r.internalBrowserBlacklist!=null&&r.hasOwnProperty("internalBrowserBlacklist")&&!u.isString(r.internalBrowserBlacklist))return"internalBrowserBlacklist: string expected";if(r.internalBrowserOriginWhitelist!=null&&r.hasOwnProperty("internalBrowserOriginWhitelist")&&!u.isString(r.internalBrowserOriginWhitelist))return"internalBrowserOriginWhitelist: string expected";if(r.polarTileMergingLevel!=null&&r.hasOwnProperty("polarTileMergingLevel")&&!u.isInteger(r.polarTileMergingLevel))return"polarTileMergingLevel: integer expected";if(r.jsBridgeRequestWhitelist!=null&&r.hasOwnProperty("jsBridgeRequestWhitelist")&&!u.isString(r.jsBridgeRequestWhitelist))return"jsBridgeRequestWhitelist: string expected";if(r.mapsOptions!=null&&r.hasOwnProperty("mapsOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.verify(r.mapsOptions);if(t)return"mapsOptions."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ClientOptionsProto)return r;var t=new n.keyhole.dbroot.ClientOptionsProto;if(r.disableDiskCache!=null&&(t.disableDiskCache=!!r.disableDiskCache),r.disableEmbeddedBrowserVista!=null&&(t.disableEmbeddedBrowserVista=!!r.disableEmbeddedBrowserVista),r.drawAtmosphere!=null&&(t.drawAtmosphere=!!r.drawAtmosphere),r.drawStars!=null&&(t.drawStars=!!r.drawStars),r.shaderFilePrefix!=null&&(t.shaderFilePrefix=String(r.shaderFilePrefix)),r.useProtobufQuadtreePackets!=null&&(t.useProtobufQuadtreePackets=!!r.useProtobufQuadtreePackets),r.useExtendedCopyrightIds!=null&&(t.useExtendedCopyrightIds=!!r.useExtendedCopyrightIds),r.precipitationsOptions!=null){if(typeof r.precipitationsOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.precipitationsOptions: object expected");t.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.fromObject(r.precipitationsOptions)}if(r.captureOptions!=null){if(typeof r.captureOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.captureOptions: object expected");t.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.fromObject(r.captureOptions)}if(r.show_2dMapsIcon!=null&&(t.show_2dMapsIcon=!!r.show_2dMapsIcon),r.disableInternalBrowser!=null&&(t.disableInternalBrowser=!!r.disableInternalBrowser),r.internalBrowserBlacklist!=null&&(t.internalBrowserBlacklist=String(r.internalBrowserBlacklist)),r.internalBrowserOriginWhitelist!=null&&(t.internalBrowserOriginWhitelist=String(r.internalBrowserOriginWhitelist)),r.polarTileMergingLevel!=null&&(t.polarTileMergingLevel=r.polarTileMergingLevel|0),r.jsBridgeRequestWhitelist!=null&&(t.jsBridgeRequestWhitelist=String(r.jsBridgeRequestWhitelist)),r.mapsOptions!=null){if(typeof r.mapsOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.mapsOptions: object expected");t.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.fromObject(r.mapsOptions)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.disableDiskCache=!1,e.disableEmbeddedBrowserVista=!1,e.drawAtmosphere=!0,e.drawStars=!0,e.shaderFilePrefix="",e.useProtobufQuadtreePackets=!1,e.useExtendedCopyrightIds=!0,e.precipitationsOptions=null,e.captureOptions=null,e.show_2dMapsIcon=!0,e.disableInternalBrowser=!1,e.internalBrowserBlacklist="",e.internalBrowserOriginWhitelist="*",e.polarTileMergingLevel=0,e.jsBridgeRequestWhitelist="http://*.google.com/*",e.mapsOptions=null),r.disableDiskCache!=null&&r.hasOwnProperty("disableDiskCache")&&(e.disableDiskCache=r.disableDiskCache),r.disableEmbeddedBrowserVista!=null&&r.hasOwnProperty("disableEmbeddedBrowserVista")&&(e.disableEmbeddedBrowserVista=r.disableEmbeddedBrowserVista),r.drawAtmosphere!=null&&r.hasOwnProperty("drawAtmosphere")&&(e.drawAtmosphere=r.drawAtmosphere),r.drawStars!=null&&r.hasOwnProperty("drawStars")&&(e.drawStars=r.drawStars),r.shaderFilePrefix!=null&&r.hasOwnProperty("shaderFilePrefix")&&(e.shaderFilePrefix=r.shaderFilePrefix),r.useProtobufQuadtreePackets!=null&&r.hasOwnProperty("useProtobufQuadtreePackets")&&(e.useProtobufQuadtreePackets=r.useProtobufQuadtreePackets),r.useExtendedCopyrightIds!=null&&r.hasOwnProperty("useExtendedCopyrightIds")&&(e.useExtendedCopyrightIds=r.useExtendedCopyrightIds),r.precipitationsOptions!=null&&r.hasOwnProperty("precipitationsOptions")&&(e.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.toObject(r.precipitationsOptions,t)),r.captureOptions!=null&&r.hasOwnProperty("captureOptions")&&(e.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.toObject(r.captureOptions,t)),r.show_2dMapsIcon!=null&&r.hasOwnProperty("show_2dMapsIcon")&&(e.show_2dMapsIcon=r.show_2dMapsIcon),r.disableInternalBrowser!=null&&r.hasOwnProperty("disableInternalBrowser")&&(e.disableInternalBrowser=r.disableInternalBrowser),r.internalBrowserBlacklist!=null&&r.hasOwnProperty("internalBrowserBlacklist")&&(e.internalBrowserBlacklist=r.internalBrowserBlacklist),r.internalBrowserOriginWhitelist!=null&&r.hasOwnProperty("internalBrowserOriginWhitelist")&&(e.internalBrowserOriginWhitelist=r.internalBrowserOriginWhitelist),r.polarTileMergingLevel!=null&&r.hasOwnProperty("polarTileMergingLevel")&&(e.polarTileMergingLevel=r.polarTileMergingLevel),r.jsBridgeRequestWhitelist!=null&&r.hasOwnProperty("jsBridgeRequestWhitelist")&&(e.jsBridgeRequestWhitelist=r.jsBridgeRequestWhitelist),r.mapsOptions!=null&&r.hasOwnProperty("mapsOptions")&&(e.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.toObject(r.mapsOptions,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ClientOptionsProto"},i.PrecipitationsOptions=(function(){function l(r){if(this.weatherMapping=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.imageUrl="",l.prototype.imageExpireTime=900,l.prototype.maxColorDistance=20,l.prototype.imageLevel=5,l.prototype.weatherMapping=u.emptyArray,l.prototype.cloudsLayerUrl="",l.prototype.animationDecelerationDelay=20,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.imageUrl=t.string();break}case 2:{a.imageExpireTime=t.int32();break}case 3:{a.maxColorDistance=t.int32();break}case 4:{a.imageLevel=t.int32();break}case 5:{a.weatherMapping&&a.weatherMapping.length||(a.weatherMapping=[]),a.weatherMapping.push(n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.decode(t,t.uint32()));break}case 6:{a.cloudsLayerUrl=t.string();break}case 7:{a.animationDecelerationDelay=t.float();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.imageUrl!=null&&t.hasOwnProperty("imageUrl")&&!u.isString(t.imageUrl))return"imageUrl: string expected";if(t.imageExpireTime!=null&&t.hasOwnProperty("imageExpireTime")&&!u.isInteger(t.imageExpireTime))return"imageExpireTime: integer expected";if(t.maxColorDistance!=null&&t.hasOwnProperty("maxColorDistance")&&!u.isInteger(t.maxColorDistance))return"maxColorDistance: integer expected";if(t.imageLevel!=null&&t.hasOwnProperty("imageLevel")&&!u.isInteger(t.imageLevel))return"imageLevel: integer expected";if(t.weatherMapping!=null&&t.hasOwnProperty("weatherMapping")){if(!Array.isArray(t.weatherMapping))return"weatherMapping: array expected";for(var e=0;e<t.weatherMapping.length;++e){var o=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.verify(t.weatherMapping[e]);if(o)return"weatherMapping."+o}}return t.cloudsLayerUrl!=null&&t.hasOwnProperty("cloudsLayerUrl")&&!u.isString(t.cloudsLayerUrl)?"cloudsLayerUrl: string expected":t.animationDecelerationDelay!=null&&t.hasOwnProperty("animationDecelerationDelay")&&typeof t.animationDecelerationDelay!="number"?"animationDecelerationDelay: number expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions;if(t.imageUrl!=null&&(e.imageUrl=String(t.imageUrl)),t.imageExpireTime!=null&&(e.imageExpireTime=t.imageExpireTime|0),t.maxColorDistance!=null&&(e.maxColorDistance=t.maxColorDistance|0),t.imageLevel!=null&&(e.imageLevel=t.imageLevel|0),t.weatherMapping){if(!Array.isArray(t.weatherMapping))throw TypeError(".keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.weatherMapping: array expected");e.weatherMapping=[];for(var o=0;o<t.weatherMapping.length;++o){if(typeof t.weatherMapping[o]!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.weatherMapping: object expected");e.weatherMapping[o]=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.fromObject(t.weatherMapping[o])}}return t.cloudsLayerUrl!=null&&(e.cloudsLayerUrl=String(t.cloudsLayerUrl)),t.animationDecelerationDelay!=null&&(e.animationDecelerationDelay=Number(t.animationDecelerationDelay)),e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.weatherMapping=[]),e.defaults&&(o.imageUrl="",o.imageExpireTime=900,o.maxColorDistance=20,o.imageLevel=5,o.cloudsLayerUrl="",o.animationDecelerationDelay=20),t.imageUrl!=null&&t.hasOwnProperty("imageUrl")&&(o.imageUrl=t.imageUrl),t.imageExpireTime!=null&&t.hasOwnProperty("imageExpireTime")&&(o.imageExpireTime=t.imageExpireTime),t.maxColorDistance!=null&&t.hasOwnProperty("maxColorDistance")&&(o.maxColorDistance=t.maxColorDistance),t.imageLevel!=null&&t.hasOwnProperty("imageLevel")&&(o.imageLevel=t.imageLevel),t.weatherMapping&&t.weatherMapping.length){o.weatherMapping=[];for(var a=0;a<t.weatherMapping.length;++a)o.weatherMapping[a]=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.toObject(t.weatherMapping[a],e)}return t.cloudsLayerUrl!=null&&t.hasOwnProperty("cloudsLayerUrl")&&(o.cloudsLayerUrl=t.cloudsLayerUrl),t.animationDecelerationDelay!=null&&t.hasOwnProperty("animationDecelerationDelay")&&(o.animationDecelerationDelay=e.json&&!isFinite(t.animationDecelerationDelay)?String(t.animationDecelerationDelay):t.animationDecelerationDelay),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions"},l.WeatherMapping=(function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.colorAbgr=0,r.prototype.weatherType=0,r.prototype.elongation=1,r.prototype.opacity=0,r.prototype.fogDensity=0,r.prototype.speed0=0,r.prototype.speed1=0,r.prototype.speed2=0,r.prototype.speed3=0,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.colorAbgr=e.uint32();break}case 2:{p.weatherType=e.int32();break}case 3:{p.elongation=e.float();break}case 4:{p.opacity=e.float();break}case 5:{p.fogDensity=e.float();break}case 6:{p.speed0=e.float();break}case 7:{p.speed1=e.float();break}case 8:{p.speed2=e.float();break}case 9:{p.speed3=e.float();break}default:e.skipType(y&7);break}}if(!p.hasOwnProperty("colorAbgr"))throw u.ProtocolError("missing required 'colorAbgr'",{instance:p});if(!p.hasOwnProperty("weatherType"))throw u.ProtocolError("missing required 'weatherType'",{instance:p});return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(!u.isInteger(e.colorAbgr))return"colorAbgr: integer expected";switch(e.weatherType){default:return"weatherType: enum value expected";case 0:case 1:case 2:break}return e.elongation!=null&&e.hasOwnProperty("elongation")&&typeof e.elongation!="number"?"elongation: number expected":e.opacity!=null&&e.hasOwnProperty("opacity")&&typeof e.opacity!="number"?"opacity: number expected":e.fogDensity!=null&&e.hasOwnProperty("fogDensity")&&typeof e.fogDensity!="number"?"fogDensity: number expected":e.speed0!=null&&e.hasOwnProperty("speed0")&&typeof e.speed0!="number"?"speed0: number expected":e.speed1!=null&&e.hasOwnProperty("speed1")&&typeof e.speed1!="number"?"speed1: number expected":e.speed2!=null&&e.hasOwnProperty("speed2")&&typeof e.speed2!="number"?"speed2: number expected":e.speed3!=null&&e.hasOwnProperty("speed3")&&typeof e.speed3!="number"?"speed3: number expected":null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping)return e;var o=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping;switch(e.colorAbgr!=null&&(o.colorAbgr=e.colorAbgr>>>0),e.weatherType){case"NO_PRECIPITATION":case 0:o.weatherType=0;break;case"RAIN":case 1:o.weatherType=1;break;case"SNOW":case 2:o.weatherType=2;break}return e.elongation!=null&&(o.elongation=Number(e.elongation)),e.opacity!=null&&(o.opacity=Number(e.opacity)),e.fogDensity!=null&&(o.fogDensity=Number(e.fogDensity)),e.speed0!=null&&(o.speed0=Number(e.speed0)),e.speed1!=null&&(o.speed1=Number(e.speed1)),e.speed2!=null&&(o.speed2=Number(e.speed2)),e.speed3!=null&&(o.speed3=Number(e.speed3)),o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.colorAbgr=0,a.weatherType=o.enums===String?"NO_PRECIPITATION":0,a.elongation=1,a.opacity=0,a.fogDensity=0,a.speed0=0,a.speed1=0,a.speed2=0,a.speed3=0),e.colorAbgr!=null&&e.hasOwnProperty("colorAbgr")&&(a.colorAbgr=e.colorAbgr),e.weatherType!=null&&e.hasOwnProperty("weatherType")&&(a.weatherType=o.enums===String?n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.WeatherType[e.weatherType]:e.weatherType),e.elongation!=null&&e.hasOwnProperty("elongation")&&(a.elongation=o.json&&!isFinite(e.elongation)?String(e.elongation):e.elongation),e.opacity!=null&&e.hasOwnProperty("opacity")&&(a.opacity=o.json&&!isFinite(e.opacity)?String(e.opacity):e.opacity),e.fogDensity!=null&&e.hasOwnProperty("fogDensity")&&(a.fogDensity=o.json&&!isFinite(e.fogDensity)?String(e.fogDensity):e.fogDensity),e.speed0!=null&&e.hasOwnProperty("speed0")&&(a.speed0=o.json&&!isFinite(e.speed0)?String(e.speed0):e.speed0),e.speed1!=null&&e.hasOwnProperty("speed1")&&(a.speed1=o.json&&!isFinite(e.speed1)?String(e.speed1):e.speed1),e.speed2!=null&&e.hasOwnProperty("speed2")&&(a.speed2=o.json&&!isFinite(e.speed2)?String(e.speed2):e.speed2),e.speed3!=null&&e.hasOwnProperty("speed3")&&(a.speed3=o.json&&!isFinite(e.speed3)?String(e.speed3):e.speed3),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping"},r.WeatherType=(function(){var t={},e=Object.create(t);return e[t[0]="NO_PRECIPITATION"]=0,e[t[1]="RAIN"]=1,e[t[2]="SNOW"]=2,e})(),r})(),l})(),i.CaptureOptions=(function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.allowSaveAsImage=!0,l.prototype.maxFreeCaptureRes=2400,l.prototype.maxPremiumCaptureRes=4800,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.CaptureOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.allowSaveAsImage=t.bool();break}case 2:{a.maxFreeCaptureRes=t.int32();break}case 3:{a.maxPremiumCaptureRes=t.int32();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.allowSaveAsImage!=null&&t.hasOwnProperty("allowSaveAsImage")&&typeof t.allowSaveAsImage!="boolean"?"allowSaveAsImage: boolean expected":t.maxFreeCaptureRes!=null&&t.hasOwnProperty("maxFreeCaptureRes")&&!u.isInteger(t.maxFreeCaptureRes)?"maxFreeCaptureRes: integer expected":t.maxPremiumCaptureRes!=null&&t.hasOwnProperty("maxPremiumCaptureRes")&&!u.isInteger(t.maxPremiumCaptureRes)?"maxPremiumCaptureRes: integer expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.CaptureOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.CaptureOptions;return t.allowSaveAsImage!=null&&(e.allowSaveAsImage=!!t.allowSaveAsImage),t.maxFreeCaptureRes!=null&&(e.maxFreeCaptureRes=t.maxFreeCaptureRes|0),t.maxPremiumCaptureRes!=null&&(e.maxPremiumCaptureRes=t.maxPremiumCaptureRes|0),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.allowSaveAsImage=!0,o.maxFreeCaptureRes=2400,o.maxPremiumCaptureRes=4800),t.allowSaveAsImage!=null&&t.hasOwnProperty("allowSaveAsImage")&&(o.allowSaveAsImage=t.allowSaveAsImage),t.maxFreeCaptureRes!=null&&t.hasOwnProperty("maxFreeCaptureRes")&&(o.maxFreeCaptureRes=t.maxFreeCaptureRes),t.maxPremiumCaptureRes!=null&&t.hasOwnProperty("maxPremiumCaptureRes")&&(o.maxPremiumCaptureRes=t.maxPremiumCaptureRes),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.CaptureOptions"},l})(),i.MapsOptions=(function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.enableMaps=!1,l.prototype.docsAutoDownloadEnabled=!1,l.prototype.docsAutoDownloadInterval=0,l.prototype.docsAutoUploadEnabled=!1,l.prototype.docsAutoUploadDelay=0,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.MapsOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.enableMaps=t.bool();break}case 2:{a.docsAutoDownloadEnabled=t.bool();break}case 3:{a.docsAutoDownloadInterval=t.int32();break}case 4:{a.docsAutoUploadEnabled=t.bool();break}case 5:{a.docsAutoUploadDelay=t.int32();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.enableMaps!=null&&t.hasOwnProperty("enableMaps")&&typeof t.enableMaps!="boolean"?"enableMaps: boolean expected":t.docsAutoDownloadEnabled!=null&&t.hasOwnProperty("docsAutoDownloadEnabled")&&typeof t.docsAutoDownloadEnabled!="boolean"?"docsAutoDownloadEnabled: boolean expected":t.docsAutoDownloadInterval!=null&&t.hasOwnProperty("docsAutoDownloadInterval")&&!u.isInteger(t.docsAutoDownloadInterval)?"docsAutoDownloadInterval: integer expected":t.docsAutoUploadEnabled!=null&&t.hasOwnProperty("docsAutoUploadEnabled")&&typeof t.docsAutoUploadEnabled!="boolean"?"docsAutoUploadEnabled: boolean expected":t.docsAutoUploadDelay!=null&&t.hasOwnProperty("docsAutoUploadDelay")&&!u.isInteger(t.docsAutoUploadDelay)?"docsAutoUploadDelay: integer expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.MapsOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.MapsOptions;return t.enableMaps!=null&&(e.enableMaps=!!t.enableMaps),t.docsAutoDownloadEnabled!=null&&(e.docsAutoDownloadEnabled=!!t.docsAutoDownloadEnabled),t.docsAutoDownloadInterval!=null&&(e.docsAutoDownloadInterval=t.docsAutoDownloadInterval|0),t.docsAutoUploadEnabled!=null&&(e.docsAutoUploadEnabled=!!t.docsAutoUploadEnabled),t.docsAutoUploadDelay!=null&&(e.docsAutoUploadDelay=t.docsAutoUploadDelay|0),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.enableMaps=!1,o.docsAutoDownloadEnabled=!1,o.docsAutoDownloadInterval=0,o.docsAutoUploadEnabled=!1,o.docsAutoUploadDelay=0),t.enableMaps!=null&&t.hasOwnProperty("enableMaps")&&(o.enableMaps=t.enableMaps),t.docsAutoDownloadEnabled!=null&&t.hasOwnProperty("docsAutoDownloadEnabled")&&(o.docsAutoDownloadEnabled=t.docsAutoDownloadEnabled),t.docsAutoDownloadInterval!=null&&t.hasOwnProperty("docsAutoDownloadInterval")&&(o.docsAutoDownloadInterval=t.docsAutoDownloadInterval),t.docsAutoUploadEnabled!=null&&t.hasOwnProperty("docsAutoUploadEnabled")&&(o.docsAutoUploadEnabled=t.docsAutoUploadEnabled),t.docsAutoUploadDelay!=null&&t.hasOwnProperty("docsAutoUploadDelay")&&(o.docsAutoUploadDelay=t.docsAutoUploadDelay),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.MapsOptions"},l})(),i})(),c.FetchingOptionsProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.maxRequestsPerQuery=1,i.prototype.forceMaxRequestsPerQuery=!1,i.prototype.sortBatches=!1,i.prototype.maxDrawable=2,i.prototype.maxImagery=2,i.prototype.maxTerrain=5,i.prototype.maxQuadtree=5,i.prototype.maxDioramaMetadata=1,i.prototype.maxDioramaData=0,i.prototype.maxConsumerFetchRatio=1,i.prototype.maxProEcFetchRatio=0,i.prototype.safeOverallQps=0,i.prototype.safeImageryQps=0,i.prototype.domainsForHttps="google.com gstatic.com",i.prototype.hostsForHttp="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.FetchingOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.maxRequestsPerQuery=r.int32();break}case 12:{o.forceMaxRequestsPerQuery=r.bool();break}case 13:{o.sortBatches=r.bool();break}case 2:{o.maxDrawable=r.int32();break}case 3:{o.maxImagery=r.int32();break}case 4:{o.maxTerrain=r.int32();break}case 5:{o.maxQuadtree=r.int32();break}case 6:{o.maxDioramaMetadata=r.int32();break}case 7:{o.maxDioramaData=r.int32();break}case 8:{o.maxConsumerFetchRatio=r.float();break}case 9:{o.maxProEcFetchRatio=r.float();break}case 10:{o.safeOverallQps=r.float();break}case 11:{o.safeImageryQps=r.float();break}case 14:{o.domainsForHttps=r.string();break}case 15:{o.hostsForHttp=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.maxRequestsPerQuery!=null&&r.hasOwnProperty("maxRequestsPerQuery")&&!u.isInteger(r.maxRequestsPerQuery)?"maxRequestsPerQuery: integer expected":r.forceMaxRequestsPerQuery!=null&&r.hasOwnProperty("forceMaxRequestsPerQuery")&&typeof r.forceMaxRequestsPerQuery!="boolean"?"forceMaxRequestsPerQuery: boolean expected":r.sortBatches!=null&&r.hasOwnProperty("sortBatches")&&typeof r.sortBatches!="boolean"?"sortBatches: boolean expected":r.maxDrawable!=null&&r.hasOwnProperty("maxDrawable")&&!u.isInteger(r.maxDrawable)?"maxDrawable: integer expected":r.maxImagery!=null&&r.hasOwnProperty("maxImagery")&&!u.isInteger(r.maxImagery)?"maxImagery: integer expected":r.maxTerrain!=null&&r.hasOwnProperty("maxTerrain")&&!u.isInteger(r.maxTerrain)?"maxTerrain: integer expected":r.maxQuadtree!=null&&r.hasOwnProperty("maxQuadtree")&&!u.isInteger(r.maxQuadtree)?"maxQuadtree: integer expected":r.maxDioramaMetadata!=null&&r.hasOwnProperty("maxDioramaMetadata")&&!u.isInteger(r.maxDioramaMetadata)?"maxDioramaMetadata: integer expected":r.maxDioramaData!=null&&r.hasOwnProperty("maxDioramaData")&&!u.isInteger(r.maxDioramaData)?"maxDioramaData: integer expected":r.maxConsumerFetchRatio!=null&&r.hasOwnProperty("maxConsumerFetchRatio")&&typeof r.maxConsumerFetchRatio!="number"?"maxConsumerFetchRatio: number expected":r.maxProEcFetchRatio!=null&&r.hasOwnProperty("maxProEcFetchRatio")&&typeof r.maxProEcFetchRatio!="number"?"maxProEcFetchRatio: number expected":r.safeOverallQps!=null&&r.hasOwnProperty("safeOverallQps")&&typeof r.safeOverallQps!="number"?"safeOverallQps: number expected":r.safeImageryQps!=null&&r.hasOwnProperty("safeImageryQps")&&typeof r.safeImageryQps!="number"?"safeImageryQps: number expected":r.domainsForHttps!=null&&r.hasOwnProperty("domainsForHttps")&&!u.isString(r.domainsForHttps)?"domainsForHttps: string expected":r.hostsForHttp!=null&&r.hasOwnProperty("hostsForHttp")&&!u.isString(r.hostsForHttp)?"hostsForHttp: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.FetchingOptionsProto)return r;var t=new n.keyhole.dbroot.FetchingOptionsProto;return r.maxRequestsPerQuery!=null&&(t.maxRequestsPerQuery=r.maxRequestsPerQuery|0),r.forceMaxRequestsPerQuery!=null&&(t.forceMaxRequestsPerQuery=!!r.forceMaxRequestsPerQuery),r.sortBatches!=null&&(t.sortBatches=!!r.sortBatches),r.maxDrawable!=null&&(t.maxDrawable=r.maxDrawable|0),r.maxImagery!=null&&(t.maxImagery=r.maxImagery|0),r.maxTerrain!=null&&(t.maxTerrain=r.maxTerrain|0),r.maxQuadtree!=null&&(t.maxQuadtree=r.maxQuadtree|0),r.maxDioramaMetadata!=null&&(t.maxDioramaMetadata=r.maxDioramaMetadata|0),r.maxDioramaData!=null&&(t.maxDioramaData=r.maxDioramaData|0),r.maxConsumerFetchRatio!=null&&(t.maxConsumerFetchRatio=Number(r.maxConsumerFetchRatio)),r.maxProEcFetchRatio!=null&&(t.maxProEcFetchRatio=Number(r.maxProEcFetchRatio)),r.safeOverallQps!=null&&(t.safeOverallQps=Number(r.safeOverallQps)),r.safeImageryQps!=null&&(t.safeImageryQps=Number(r.safeImageryQps)),r.domainsForHttps!=null&&(t.domainsForHttps=String(r.domainsForHttps)),r.hostsForHttp!=null&&(t.hostsForHttp=String(r.hostsForHttp)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.maxRequestsPerQuery=1,e.maxDrawable=2,e.maxImagery=2,e.maxTerrain=5,e.maxQuadtree=5,e.maxDioramaMetadata=1,e.maxDioramaData=0,e.maxConsumerFetchRatio=1,e.maxProEcFetchRatio=0,e.safeOverallQps=0,e.safeImageryQps=0,e.forceMaxRequestsPerQuery=!1,e.sortBatches=!1,e.domainsForHttps="google.com gstatic.com",e.hostsForHttp=""),r.maxRequestsPerQuery!=null&&r.hasOwnProperty("maxRequestsPerQuery")&&(e.maxRequestsPerQuery=r.maxRequestsPerQuery),r.maxDrawable!=null&&r.hasOwnProperty("maxDrawable")&&(e.maxDrawable=r.maxDrawable),r.maxImagery!=null&&r.hasOwnProperty("maxImagery")&&(e.maxImagery=r.maxImagery),r.maxTerrain!=null&&r.hasOwnProperty("maxTerrain")&&(e.maxTerrain=r.maxTerrain),r.maxQuadtree!=null&&r.hasOwnProperty("maxQuadtree")&&(e.maxQuadtree=r.maxQuadtree),r.maxDioramaMetadata!=null&&r.hasOwnProperty("maxDioramaMetadata")&&(e.maxDioramaMetadata=r.maxDioramaMetadata),r.maxDioramaData!=null&&r.hasOwnProperty("maxDioramaData")&&(e.maxDioramaData=r.maxDioramaData),r.maxConsumerFetchRatio!=null&&r.hasOwnProperty("maxConsumerFetchRatio")&&(e.maxConsumerFetchRatio=t.json&&!isFinite(r.maxConsumerFetchRatio)?String(r.maxConsumerFetchRatio):r.maxConsumerFetchRatio),r.maxProEcFetchRatio!=null&&r.hasOwnProperty("maxProEcFetchRatio")&&(e.maxProEcFetchRatio=t.json&&!isFinite(r.maxProEcFetchRatio)?String(r.maxProEcFetchRatio):r.maxProEcFetchRatio),r.safeOverallQps!=null&&r.hasOwnProperty("safeOverallQps")&&(e.safeOverallQps=t.json&&!isFinite(r.safeOverallQps)?String(r.safeOverallQps):r.safeOverallQps),r.safeImageryQps!=null&&r.hasOwnProperty("safeImageryQps")&&(e.safeImageryQps=t.json&&!isFinite(r.safeImageryQps)?String(r.safeImageryQps):r.safeImageryQps),r.forceMaxRequestsPerQuery!=null&&r.hasOwnProperty("forceMaxRequestsPerQuery")&&(e.forceMaxRequestsPerQuery=r.forceMaxRequestsPerQuery),r.sortBatches!=null&&r.hasOwnProperty("sortBatches")&&(e.sortBatches=r.sortBatches),r.domainsForHttps!=null&&r.hasOwnProperty("domainsForHttps")&&(e.domainsForHttps=r.domainsForHttps),r.hostsForHttp!=null&&r.hasOwnProperty("hostsForHttp")&&(e.hostsForHttp=r.hostsForHttp),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.FetchingOptionsProto"},i})(),c.TimeMachineOptionsProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.serverUrl="",i.prototype.isTimemachine=!1,i.prototype.dwellTimeMs=500,i.prototype.discoverabilityAltitudeMeters=15e3,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.TimeMachineOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.serverUrl=r.string();break}case 2:{o.isTimemachine=r.bool();break}case 3:{o.dwellTimeMs=r.int32();break}case 4:{o.discoverabilityAltitudeMeters=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.serverUrl!=null&&r.hasOwnProperty("serverUrl")&&!u.isString(r.serverUrl)?"serverUrl: string expected":r.isTimemachine!=null&&r.hasOwnProperty("isTimemachine")&&typeof r.isTimemachine!="boolean"?"isTimemachine: boolean expected":r.dwellTimeMs!=null&&r.hasOwnProperty("dwellTimeMs")&&!u.isInteger(r.dwellTimeMs)?"dwellTimeMs: integer expected":r.discoverabilityAltitudeMeters!=null&&r.hasOwnProperty("discoverabilityAltitudeMeters")&&!u.isInteger(r.discoverabilityAltitudeMeters)?"discoverabilityAltitudeMeters: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.TimeMachineOptionsProto)return r;var t=new n.keyhole.dbroot.TimeMachineOptionsProto;return r.serverUrl!=null&&(t.serverUrl=String(r.serverUrl)),r.isTimemachine!=null&&(t.isTimemachine=!!r.isTimemachine),r.dwellTimeMs!=null&&(t.dwellTimeMs=r.dwellTimeMs|0),r.discoverabilityAltitudeMeters!=null&&(t.discoverabilityAltitudeMeters=r.discoverabilityAltitudeMeters|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.serverUrl="",e.isTimemachine=!1,e.dwellTimeMs=500,e.discoverabilityAltitudeMeters=15e3),r.serverUrl!=null&&r.hasOwnProperty("serverUrl")&&(e.serverUrl=r.serverUrl),r.isTimemachine!=null&&r.hasOwnProperty("isTimemachine")&&(e.isTimemachine=r.isTimemachine),r.dwellTimeMs!=null&&r.hasOwnProperty("dwellTimeMs")&&(e.dwellTimeMs=r.dwellTimeMs),r.discoverabilityAltitudeMeters!=null&&r.hasOwnProperty("discoverabilityAltitudeMeters")&&(e.discoverabilityAltitudeMeters=r.discoverabilityAltitudeMeters),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.TimeMachineOptionsProto"},i})(),c.AutopiaOptionsProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.metadataServerUrl="http://cbk0.google.com/cbk",i.prototype.depthmapServerUrl="http://cbk0.google.com/cbk",i.prototype.coverageOverlayUrl="",i.prototype.maxImageryQps=0,i.prototype.maxMetadataDepthmapQps=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.AutopiaOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.metadataServerUrl=r.string();break}case 2:{o.depthmapServerUrl=r.string();break}case 3:{o.coverageOverlayUrl=r.string();break}case 4:{o.maxImageryQps=r.float();break}case 5:{o.maxMetadataDepthmapQps=r.float();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.metadataServerUrl!=null&&r.hasOwnProperty("metadataServerUrl")&&!u.isString(r.metadataServerUrl)?"metadataServerUrl: string expected":r.depthmapServerUrl!=null&&r.hasOwnProperty("depthmapServerUrl")&&!u.isString(r.depthmapServerUrl)?"depthmapServerUrl: string expected":r.coverageOverlayUrl!=null&&r.hasOwnProperty("coverageOverlayUrl")&&!u.isString(r.coverageOverlayUrl)?"coverageOverlayUrl: string expected":r.maxImageryQps!=null&&r.hasOwnProperty("maxImageryQps")&&typeof r.maxImageryQps!="number"?"maxImageryQps: number expected":r.maxMetadataDepthmapQps!=null&&r.hasOwnProperty("maxMetadataDepthmapQps")&&typeof r.maxMetadataDepthmapQps!="number"?"maxMetadataDepthmapQps: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.AutopiaOptionsProto)return r;var t=new n.keyhole.dbroot.AutopiaOptionsProto;return r.metadataServerUrl!=null&&(t.metadataServerUrl=String(r.metadataServerUrl)),r.depthmapServerUrl!=null&&(t.depthmapServerUrl=String(r.depthmapServerUrl)),r.coverageOverlayUrl!=null&&(t.coverageOverlayUrl=String(r.coverageOverlayUrl)),r.maxImageryQps!=null&&(t.maxImageryQps=Number(r.maxImageryQps)),r.maxMetadataDepthmapQps!=null&&(t.maxMetadataDepthmapQps=Number(r.maxMetadataDepthmapQps)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.metadataServerUrl="http://cbk0.google.com/cbk",e.depthmapServerUrl="http://cbk0.google.com/cbk",e.coverageOverlayUrl="",e.maxImageryQps=0,e.maxMetadataDepthmapQps=0),r.metadataServerUrl!=null&&r.hasOwnProperty("metadataServerUrl")&&(e.metadataServerUrl=r.metadataServerUrl),r.depthmapServerUrl!=null&&r.hasOwnProperty("depthmapServerUrl")&&(e.depthmapServerUrl=r.depthmapServerUrl),r.coverageOverlayUrl!=null&&r.hasOwnProperty("coverageOverlayUrl")&&(e.coverageOverlayUrl=r.coverageOverlayUrl),r.maxImageryQps!=null&&r.hasOwnProperty("maxImageryQps")&&(e.maxImageryQps=t.json&&!isFinite(r.maxImageryQps)?String(r.maxImageryQps):r.maxImageryQps),r.maxMetadataDepthmapQps!=null&&r.hasOwnProperty("maxMetadataDepthmapQps")&&(e.maxMetadataDepthmapQps=t.json&&!isFinite(r.maxMetadataDepthmapQps)?String(r.maxMetadataDepthmapQps):r.maxMetadataDepthmapQps),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.AutopiaOptionsProto"},i})(),c.CSIOptionsProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.samplingPercentage=0,i.prototype.experimentId="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.CSIOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.samplingPercentage=r.int32();break}case 2:{o.experimentId=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.samplingPercentage!=null&&r.hasOwnProperty("samplingPercentage")&&!u.isInteger(r.samplingPercentage)?"samplingPercentage: integer expected":r.experimentId!=null&&r.hasOwnProperty("experimentId")&&!u.isString(r.experimentId)?"experimentId: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.CSIOptionsProto)return r;var t=new n.keyhole.dbroot.CSIOptionsProto;return r.samplingPercentage!=null&&(t.samplingPercentage=r.samplingPercentage|0),r.experimentId!=null&&(t.experimentId=String(r.experimentId)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.samplingPercentage=0,e.experimentId=""),r.samplingPercentage!=null&&r.hasOwnProperty("samplingPercentage")&&(e.samplingPercentage=r.samplingPercentage),r.experimentId!=null&&r.hasOwnProperty("experimentId")&&(e.experimentId=r.experimentId),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.CSIOptionsProto"},i})(),c.SearchTabProto=(function(){function i(l){if(this.inputBox=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isVisible=!1,i.prototype.tabLabel=null,i.prototype.baseUrl="",i.prototype.viewportPrefix="",i.prototype.inputBox=u.emptyArray,i.prototype.requirement=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.SearchTabProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isVisible=r.bool();break}case 2:{o.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.baseUrl=r.string();break}case 4:{o.viewportPrefix=r.string();break}case 5:{o.inputBox&&o.inputBox.length||(o.inputBox=[]),o.inputBox.push(n.keyhole.dbroot.SearchTabProto.InputBoxInfo.decode(r,r.uint32()));break}case 6:{o.requirement=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("isVisible"))throw u.ProtocolError("missing required 'isVisible'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(typeof r.isVisible!="boolean")return"isVisible: boolean expected";if(r.tabLabel!=null&&r.hasOwnProperty("tabLabel")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.tabLabel);if(t)return"tabLabel."+t}if(r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&!u.isString(r.baseUrl))return"baseUrl: string expected";if(r.viewportPrefix!=null&&r.hasOwnProperty("viewportPrefix")&&!u.isString(r.viewportPrefix))return"viewportPrefix: string expected";if(r.inputBox!=null&&r.hasOwnProperty("inputBox")){if(!Array.isArray(r.inputBox))return"inputBox: array expected";for(var e=0;e<r.inputBox.length;++e){var t=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.verify(r.inputBox[e]);if(t)return"inputBox."+t}}if(r.requirement!=null&&r.hasOwnProperty("requirement")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirement);if(t)return"requirement."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.SearchTabProto)return r;var t=new n.keyhole.dbroot.SearchTabProto;if(r.isVisible!=null&&(t.isVisible=!!r.isVisible),r.tabLabel!=null){if(typeof r.tabLabel!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.tabLabel: object expected");t.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.tabLabel)}if(r.baseUrl!=null&&(t.baseUrl=String(r.baseUrl)),r.viewportPrefix!=null&&(t.viewportPrefix=String(r.viewportPrefix)),r.inputBox){if(!Array.isArray(r.inputBox))throw TypeError(".keyhole.dbroot.SearchTabProto.inputBox: array expected");t.inputBox=[];for(var e=0;e<r.inputBox.length;++e){if(typeof r.inputBox[e]!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.inputBox: object expected");t.inputBox[e]=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.fromObject(r.inputBox[e])}}if(r.requirement!=null){if(typeof r.requirement!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.requirement: object expected");t.requirement=n.keyhole.dbroot.RequirementProto.fromObject(r.requirement)}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.inputBox=[]),t.defaults&&(e.isVisible=!1,e.tabLabel=null,e.baseUrl="",e.viewportPrefix="",e.requirement=null),r.isVisible!=null&&r.hasOwnProperty("isVisible")&&(e.isVisible=r.isVisible),r.tabLabel!=null&&r.hasOwnProperty("tabLabel")&&(e.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.tabLabel,t)),r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&(e.baseUrl=r.baseUrl),r.viewportPrefix!=null&&r.hasOwnProperty("viewportPrefix")&&(e.viewportPrefix=r.viewportPrefix),r.inputBox&&r.inputBox.length){e.inputBox=[];for(var o=0;o<r.inputBox.length;++o)e.inputBox[o]=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.toObject(r.inputBox[o],t)}return r.requirement!=null&&r.hasOwnProperty("requirement")&&(e.requirement=n.keyhole.dbroot.RequirementProto.toObject(r.requirement,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.SearchTabProto"},i.InputBoxInfo=(function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.label=null,l.prototype.queryVerb="",l.prototype.queryPrepend="",l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.SearchTabProto.InputBoxInfo;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.label=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 2:{a.queryVerb=t.string();break}case 3:{a.queryPrepend=t.string();break}default:t.skipType(p&7);break}}if(!a.hasOwnProperty("label"))throw u.ProtocolError("missing required 'label'",{instance:a});if(!a.hasOwnProperty("queryVerb"))throw u.ProtocolError("missing required 'queryVerb'",{instance:a});return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";{var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.label);if(e)return"label."+e}return u.isString(t.queryVerb)?t.queryPrepend!=null&&t.hasOwnProperty("queryPrepend")&&!u.isString(t.queryPrepend)?"queryPrepend: string expected":null:"queryVerb: string expected"},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.SearchTabProto.InputBoxInfo)return t;var e=new n.keyhole.dbroot.SearchTabProto.InputBoxInfo;if(t.label!=null){if(typeof t.label!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.InputBoxInfo.label: object expected");e.label=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.label)}return t.queryVerb!=null&&(e.queryVerb=String(t.queryVerb)),t.queryPrepend!=null&&(e.queryPrepend=String(t.queryPrepend)),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.label=null,o.queryVerb="",o.queryPrepend=""),t.label!=null&&t.hasOwnProperty("label")&&(o.label=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.label,e)),t.queryVerb!=null&&t.hasOwnProperty("queryVerb")&&(o.queryVerb=t.queryVerb),t.queryPrepend!=null&&t.hasOwnProperty("queryPrepend")&&(o.queryPrepend=t.queryPrepend),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.SearchTabProto.InputBoxInfo"},l})(),i})(),c.CobrandProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.logoUrl="",i.prototype.xCoord=null,i.prototype.yCoord=null,i.prototype.tiePoint=6,i.prototype.screenSize=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.CobrandProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.logoUrl=r.string();break}case 2:{o.xCoord=n.keyhole.dbroot.CobrandProto.Coord.decode(r,r.uint32());break}case 3:{o.yCoord=n.keyhole.dbroot.CobrandProto.Coord.decode(r,r.uint32());break}case 4:{o.tiePoint=r.int32();break}case 5:{o.screenSize=r.double();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("logoUrl"))throw u.ProtocolError("missing required 'logoUrl'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.logoUrl))return"logoUrl: string expected";if(r.xCoord!=null&&r.hasOwnProperty("xCoord")){var t=n.keyhole.dbroot.CobrandProto.Coord.verify(r.xCoord);if(t)return"xCoord."+t}if(r.yCoord!=null&&r.hasOwnProperty("yCoord")){var t=n.keyhole.dbroot.CobrandProto.Coord.verify(r.yCoord);if(t)return"yCoord."+t}if(r.tiePoint!=null&&r.hasOwnProperty("tiePoint"))switch(r.tiePoint){default:return"tiePoint: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:break}return r.screenSize!=null&&r.hasOwnProperty("screenSize")&&typeof r.screenSize!="number"?"screenSize: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.CobrandProto)return r;var t=new n.keyhole.dbroot.CobrandProto;if(r.logoUrl!=null&&(t.logoUrl=String(r.logoUrl)),r.xCoord!=null){if(typeof r.xCoord!="object")throw TypeError(".keyhole.dbroot.CobrandProto.xCoord: object expected");t.xCoord=n.keyhole.dbroot.CobrandProto.Coord.fromObject(r.xCoord)}if(r.yCoord!=null){if(typeof r.yCoord!="object")throw TypeError(".keyhole.dbroot.CobrandProto.yCoord: object expected");t.yCoord=n.keyhole.dbroot.CobrandProto.Coord.fromObject(r.yCoord)}switch(r.tiePoint){case"TOP_LEFT":case 0:t.tiePoint=0;break;case"TOP_CENTER":case 1:t.tiePoint=1;break;case"TOP_RIGHT":case 2:t.tiePoint=2;break;case"MID_LEFT":case 3:t.tiePoint=3;break;case"MID_CENTER":case 4:t.tiePoint=4;break;case"MID_RIGHT":case 5:t.tiePoint=5;break;case"BOTTOM_LEFT":case 6:t.tiePoint=6;break;case"BOTTOM_CENTER":case 7:t.tiePoint=7;break;case"BOTTOM_RIGHT":case 8:t.tiePoint=8;break}return r.screenSize!=null&&(t.screenSize=Number(r.screenSize)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.logoUrl="",e.xCoord=null,e.yCoord=null,e.tiePoint=t.enums===String?"BOTTOM_LEFT":6,e.screenSize=0),r.logoUrl!=null&&r.hasOwnProperty("logoUrl")&&(e.logoUrl=r.logoUrl),r.xCoord!=null&&r.hasOwnProperty("xCoord")&&(e.xCoord=n.keyhole.dbroot.CobrandProto.Coord.toObject(r.xCoord,t)),r.yCoord!=null&&r.hasOwnProperty("yCoord")&&(e.yCoord=n.keyhole.dbroot.CobrandProto.Coord.toObject(r.yCoord,t)),r.tiePoint!=null&&r.hasOwnProperty("tiePoint")&&(e.tiePoint=t.enums===String?n.keyhole.dbroot.CobrandProto.TiePoint[r.tiePoint]:r.tiePoint),r.screenSize!=null&&r.hasOwnProperty("screenSize")&&(e.screenSize=t.json&&!isFinite(r.screenSize)?String(r.screenSize):r.screenSize),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.CobrandProto"},i.Coord=(function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.value=0,l.prototype.isRelative=!1,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.CobrandProto.Coord;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.value=t.double();break}case 2:{a.isRelative=t.bool();break}default:t.skipType(p&7);break}}if(!a.hasOwnProperty("value"))throw u.ProtocolError("missing required 'value'",{instance:a});return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":typeof t.value!="number"?"value: number expected":t.isRelative!=null&&t.hasOwnProperty("isRelative")&&typeof t.isRelative!="boolean"?"isRelative: boolean expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.CobrandProto.Coord)return t;var e=new n.keyhole.dbroot.CobrandProto.Coord;return t.value!=null&&(e.value=Number(t.value)),t.isRelative!=null&&(e.isRelative=!!t.isRelative),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.value=0,o.isRelative=!1),t.value!=null&&t.hasOwnProperty("value")&&(o.value=e.json&&!isFinite(t.value)?String(t.value):t.value),t.isRelative!=null&&t.hasOwnProperty("isRelative")&&(o.isRelative=t.isRelative),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.CobrandProto.Coord"},l})(),i.TiePoint=(function(){var l={},r=Object.create(l);return r[l[0]="TOP_LEFT"]=0,r[l[1]="TOP_CENTER"]=1,r[l[2]="TOP_RIGHT"]=2,r[l[3]="MID_LEFT"]=3,r[l[4]="MID_CENTER"]=4,r[l[5]="MID_RIGHT"]=5,r[l[6]="BOTTOM_LEFT"]=6,r[l[7]="BOTTOM_CENTER"]=7,r[l[8]="BOTTOM_RIGHT"]=8,r})(),i})(),c.DatabaseDescriptionProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.databaseName=null,i.prototype.databaseUrl="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DatabaseDescriptionProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.databaseName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.databaseUrl=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("databaseUrl"))throw u.ProtocolError("missing required 'databaseUrl'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.databaseName!=null&&r.hasOwnProperty("databaseName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.databaseName);if(t)return"databaseName."+t}return u.isString(r.databaseUrl)?null:"databaseUrl: string expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DatabaseDescriptionProto)return r;var t=new n.keyhole.dbroot.DatabaseDescriptionProto;if(r.databaseName!=null){if(typeof r.databaseName!="object")throw TypeError(".keyhole.dbroot.DatabaseDescriptionProto.databaseName: object expected");t.databaseName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.databaseName)}return r.databaseUrl!=null&&(t.databaseUrl=String(r.databaseUrl)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.databaseName=null,e.databaseUrl=""),r.databaseName!=null&&r.hasOwnProperty("databaseName")&&(e.databaseName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.databaseName,t)),r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&(e.databaseUrl=r.databaseUrl),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DatabaseDescriptionProto"},i})(),c.ConfigScriptProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.scriptName="",i.prototype.scriptData="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ConfigScriptProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.scriptName=r.string();break}case 2:{o.scriptData=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("scriptName"))throw u.ProtocolError("missing required 'scriptName'",{instance:o});if(!o.hasOwnProperty("scriptData"))throw u.ProtocolError("missing required 'scriptData'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isString(r.scriptName)?u.isString(r.scriptData)?null:"scriptData: string expected":"scriptName: string expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ConfigScriptProto)return r;var t=new n.keyhole.dbroot.ConfigScriptProto;return r.scriptName!=null&&(t.scriptName=String(r.scriptName)),r.scriptData!=null&&(t.scriptData=String(r.scriptData)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.scriptName="",e.scriptData=""),r.scriptName!=null&&r.hasOwnProperty("scriptName")&&(e.scriptName=r.scriptName),r.scriptData!=null&&r.hasOwnProperty("scriptData")&&(e.scriptData=r.scriptData),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ConfigScriptProto"},i})(),c.SwoopParamsProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.startDistInMeters=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.SwoopParamsProto;r.pos<e;){var a=r.uint32();a>>>3===1?o.startDistInMeters=r.double():r.skipType(a&7)}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.startDistInMeters!=null&&r.hasOwnProperty("startDistInMeters")&&typeof r.startDistInMeters!="number"?"startDistInMeters: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.SwoopParamsProto)return r;var t=new n.keyhole.dbroot.SwoopParamsProto;return r.startDistInMeters!=null&&(t.startDistInMeters=Number(r.startDistInMeters)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.startDistInMeters=0),r.startDistInMeters!=null&&r.hasOwnProperty("startDistInMeters")&&(e.startDistInMeters=t.json&&!isFinite(r.startDistInMeters)?String(r.startDistInMeters):r.startDistInMeters),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.SwoopParamsProto"},i})(),c.PostingServerProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.name=null,i.prototype.baseUrl=null,i.prototype.postWizardPath=null,i.prototype.fileSubmitPath=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PostingServerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.name=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 4:{o.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.name!=null&&r.hasOwnProperty("name")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.name);if(t)return"name."+t}if(r.baseUrl!=null&&r.hasOwnProperty("baseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.baseUrl);if(t)return"baseUrl."+t}if(r.postWizardPath!=null&&r.hasOwnProperty("postWizardPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.postWizardPath);if(t)return"postWizardPath."+t}if(r.fileSubmitPath!=null&&r.hasOwnProperty("fileSubmitPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.fileSubmitPath);if(t)return"fileSubmitPath."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PostingServerProto)return r;var t=new n.keyhole.dbroot.PostingServerProto;if(r.name!=null){if(typeof r.name!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.name: object expected");t.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.name)}if(r.baseUrl!=null){if(typeof r.baseUrl!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.baseUrl: object expected");t.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.baseUrl)}if(r.postWizardPath!=null){if(typeof r.postWizardPath!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.postWizardPath: object expected");t.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.postWizardPath)}if(r.fileSubmitPath!=null){if(typeof r.fileSubmitPath!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.fileSubmitPath: object expected");t.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.fileSubmitPath)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.name=null,e.baseUrl=null,e.postWizardPath=null,e.fileSubmitPath=null),r.name!=null&&r.hasOwnProperty("name")&&(e.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.name,t)),r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&(e.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.baseUrl,t)),r.postWizardPath!=null&&r.hasOwnProperty("postWizardPath")&&(e.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.postWizardPath,t)),r.fileSubmitPath!=null&&r.hasOwnProperty("fileSubmitPath")&&(e.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.fileSubmitPath,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PostingServerProto"},i})(),c.PlanetaryDatabaseProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url=null,i.prototype.name=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PlanetaryDatabaseProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.url=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.name=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("url"))throw u.ProtocolError("missing required 'url'",{instance:o});if(!o.hasOwnProperty("name"))throw u.ProtocolError("missing required 'name'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";{var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.url);if(t)return"url."+t}{var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.name);if(t)return"name."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PlanetaryDatabaseProto)return r;var t=new n.keyhole.dbroot.PlanetaryDatabaseProto;if(r.url!=null){if(typeof r.url!="object")throw TypeError(".keyhole.dbroot.PlanetaryDatabaseProto.url: object expected");t.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.url)}if(r.name!=null){if(typeof r.name!="object")throw TypeError(".keyhole.dbroot.PlanetaryDatabaseProto.name: object expected");t.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.name)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.url=null,e.name=null),r.url!=null&&r.hasOwnProperty("url")&&(e.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.url,t)),r.name!=null&&r.hasOwnProperty("name")&&(e.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.name,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PlanetaryDatabaseProto"},i})(),c.LogServerProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url=null,i.prototype.enable=!1,i.prototype.throttlingFactor=1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LogServerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.url=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.enable=r.bool();break}case 3:{o.throttlingFactor=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.url!=null&&r.hasOwnProperty("url")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.url);if(t)return"url."+t}return r.enable!=null&&r.hasOwnProperty("enable")&&typeof r.enable!="boolean"?"enable: boolean expected":r.throttlingFactor!=null&&r.hasOwnProperty("throttlingFactor")&&!u.isInteger(r.throttlingFactor)?"throttlingFactor: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LogServerProto)return r;var t=new n.keyhole.dbroot.LogServerProto;if(r.url!=null){if(typeof r.url!="object")throw TypeError(".keyhole.dbroot.LogServerProto.url: object expected");t.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.url)}return r.enable!=null&&(t.enable=!!r.enable),r.throttlingFactor!=null&&(t.throttlingFactor=r.throttlingFactor|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.url=null,e.enable=!1,e.throttlingFactor=1),r.url!=null&&r.hasOwnProperty("url")&&(e.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.url,t)),r.enable!=null&&r.hasOwnProperty("enable")&&(e.enable=r.enable),r.throttlingFactor!=null&&r.hasOwnProperty("throttlingFactor")&&(e.throttlingFactor=r.throttlingFactor),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LogServerProto"},i})(),c.EndSnippetProto=(function(){function i(l){if(this.mfeDomains=[],this.searchTab=[],this.cobrandInfo=[],this.validDatabase=[],this.configScript=[],this.planetaryDatabase=[],this.filmstripConfig=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.model=null,i.prototype.authServerUrl=null,i.prototype.disableAuthentication=!1,i.prototype.mfeDomains=u.emptyArray,i.prototype.mfeLangParam="hl=$5Bhl5D",i.prototype.adsUrlPatterns="",i.prototype.reverseGeocoderUrl=null,i.prototype.reverseGeocoderProtocolVersion=3,i.prototype.skyDatabaseIsAvailable=!0,i.prototype.skyDatabaseUrl=null,i.prototype.defaultWebPageIntlUrl=null,i.prototype.numStartUpTips=17,i.prototype.startUpTipsUrl=null,i.prototype.numProStartUpTips=0,i.prototype.proStartUpTipsUrl=null,i.prototype.startupTipsIntlUrl=null,i.prototype.userGuideIntlUrl=null,i.prototype.supportCenterIntlUrl=null,i.prototype.businessListingIntlUrl=null,i.prototype.supportAnswerIntlUrl=null,i.prototype.supportTopicIntlUrl=null,i.prototype.supportRequestIntlUrl=null,i.prototype.earthIntlUrl=null,i.prototype.addContentUrl=null,i.prototype.sketchupNotInstalledUrl=null,i.prototype.sketchupErrorUrl=null,i.prototype.freeLicenseUrl=null,i.prototype.proLicenseUrl=null,i.prototype.tutorialUrl=null,i.prototype.keyboardShortcutsUrl=null,i.prototype.releaseNotesUrl=null,i.prototype.hideUserData=!1,i.prototype.useGeLogo=!0,i.prototype.dioramaDescriptionUrlBase=null,i.prototype.dioramaDefaultColor=4291281607,i.prototype.dioramaBlacklistUrl=null,i.prototype.clientOptions=null,i.prototype.fetchingOptions=null,i.prototype.timeMachineOptions=null,i.prototype.csiOptions=null,i.prototype.searchTab=u.emptyArray,i.prototype.cobrandInfo=u.emptyArray,i.prototype.validDatabase=u.emptyArray,i.prototype.configScript=u.emptyArray,i.prototype.deauthServerUrl=null,i.prototype.swoopParameters=null,i.prototype.bbsServerInfo=null,i.prototype.dataErrorServerInfo=null,i.prototype.planetaryDatabase=u.emptyArray,i.prototype.logServer=null,i.prototype.autopiaOptions=null,i.prototype.searchConfig=null,i.prototype.searchInfo=null,i.prototype.elevationServiceBaseUrl="http://maps.google.com/maps/api/elevation/",i.prototype.elevationProfileQueryDelay=500,i.prototype.proUpgradeUrl=null,i.prototype.earthCommunityUrl=null,i.prototype.googleMapsUrl=null,i.prototype.sharingUrl=null,i.prototype.privacyPolicyUrl=null,i.prototype.doGplusUserCheck=!1,i.prototype.rocktreeDataProto=null,i.prototype.filmstripConfig=u.emptyArray,i.prototype.showSigninButton=!1,i.prototype.proMeasureUpsellUrl=null,i.prototype.proPrintUpsellUrl=null,i.prototype.starDataProto=null,i.prototype.feedbackUrl=null,i.prototype.oauth2LoginUrl=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.EndSnippetProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.model=n.keyhole.dbroot.PlanetModelProto.decode(r,r.uint32());break}case 2:{o.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.disableAuthentication=r.bool();break}case 4:{o.mfeDomains&&o.mfeDomains.length||(o.mfeDomains=[]),o.mfeDomains.push(n.keyhole.dbroot.MfeDomainFeaturesProto.decode(r,r.uint32()));break}case 5:{o.mfeLangParam=r.string();break}case 6:{o.adsUrlPatterns=r.string();break}case 7:{o.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 8:{o.reverseGeocoderProtocolVersion=r.int32();break}case 9:{o.skyDatabaseIsAvailable=r.bool();break}case 10:{o.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 11:{o.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 12:{o.numStartUpTips=r.int32();break}case 13:{o.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 51:{o.numProStartUpTips=r.int32();break}case 52:{o.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 64:{o.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 14:{o.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 15:{o.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 16:{o.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 17:{o.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 18:{o.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 19:{o.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 20:{o.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 21:{o.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 22:{o.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 23:{o.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 24:{o.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 25:{o.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 48:{o.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 49:{o.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 50:{o.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 26:{o.hideUserData=r.bool();break}case 27:{o.useGeLogo=r.bool();break}case 28:{o.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 29:{o.dioramaDefaultColor=r.uint32();break}case 53:{o.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 30:{o.clientOptions=n.keyhole.dbroot.ClientOptionsProto.decode(r,r.uint32());break}case 31:{o.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.decode(r,r.uint32());break}case 32:{o.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.decode(r,r.uint32());break}case 33:{o.csiOptions=n.keyhole.dbroot.CSIOptionsProto.decode(r,r.uint32());break}case 34:{o.searchTab&&o.searchTab.length||(o.searchTab=[]),o.searchTab.push(n.keyhole.dbroot.SearchTabProto.decode(r,r.uint32()));break}case 35:{o.cobrandInfo&&o.cobrandInfo.length||(o.cobrandInfo=[]),o.cobrandInfo.push(n.keyhole.dbroot.CobrandProto.decode(r,r.uint32()));break}case 36:{o.validDatabase&&o.validDatabase.length||(o.validDatabase=[]),o.validDatabase.push(n.keyhole.dbroot.DatabaseDescriptionProto.decode(r,r.uint32()));break}case 37:{o.configScript&&o.configScript.length||(o.configScript=[]),o.configScript.push(n.keyhole.dbroot.ConfigScriptProto.decode(r,r.uint32()));break}case 38:{o.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 39:{o.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.decode(r,r.uint32());break}case 40:{o.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.decode(r,r.uint32());break}case 41:{o.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.decode(r,r.uint32());break}case 42:{o.planetaryDatabase&&o.planetaryDatabase.length||(o.planetaryDatabase=[]),o.planetaryDatabase.push(n.keyhole.dbroot.PlanetaryDatabaseProto.decode(r,r.uint32()));break}case 43:{o.logServer=n.keyhole.dbroot.LogServerProto.decode(r,r.uint32());break}case 44:{o.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.decode(r,r.uint32());break}case 54:{o.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.decode(r,r.uint32());break}case 45:{o.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.decode(r,r.uint32());break}case 46:{o.elevationServiceBaseUrl=r.string();break}case 47:{o.elevationProfileQueryDelay=r.int32();break}case 55:{o.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 56:{o.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 57:{o.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 58:{o.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 59:{o.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 60:{o.doGplusUserCheck=r.bool();break}case 61:{o.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.decode(r,r.uint32());break}case 62:{o.filmstripConfig&&o.filmstripConfig.length||(o.filmstripConfig=[]),o.filmstripConfig.push(n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.decode(r,r.uint32()));break}case 63:{o.showSigninButton=r.bool();break}case 65:{o.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 66:{o.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 67:{o.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.decode(r,r.uint32());break}case 68:{o.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 69:{o.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.model!=null&&r.hasOwnProperty("model")){var t=n.keyhole.dbroot.PlanetModelProto.verify(r.model);if(t)return"model."+t}if(r.authServerUrl!=null&&r.hasOwnProperty("authServerUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.authServerUrl);if(t)return"authServerUrl."+t}if(r.disableAuthentication!=null&&r.hasOwnProperty("disableAuthentication")&&typeof r.disableAuthentication!="boolean")return"disableAuthentication: boolean expected";if(r.mfeDomains!=null&&r.hasOwnProperty("mfeDomains")){if(!Array.isArray(r.mfeDomains))return"mfeDomains: array expected";for(var e=0;e<r.mfeDomains.length;++e){var t=n.keyhole.dbroot.MfeDomainFeaturesProto.verify(r.mfeDomains[e]);if(t)return"mfeDomains."+t}}if(r.mfeLangParam!=null&&r.hasOwnProperty("mfeLangParam")&&!u.isString(r.mfeLangParam))return"mfeLangParam: string expected";if(r.adsUrlPatterns!=null&&r.hasOwnProperty("adsUrlPatterns")&&!u.isString(r.adsUrlPatterns))return"adsUrlPatterns: string expected";if(r.reverseGeocoderUrl!=null&&r.hasOwnProperty("reverseGeocoderUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.reverseGeocoderUrl);if(t)return"reverseGeocoderUrl."+t}if(r.reverseGeocoderProtocolVersion!=null&&r.hasOwnProperty("reverseGeocoderProtocolVersion")&&!u.isInteger(r.reverseGeocoderProtocolVersion))return"reverseGeocoderProtocolVersion: integer expected";if(r.skyDatabaseIsAvailable!=null&&r.hasOwnProperty("skyDatabaseIsAvailable")&&typeof r.skyDatabaseIsAvailable!="boolean")return"skyDatabaseIsAvailable: boolean expected";if(r.skyDatabaseUrl!=null&&r.hasOwnProperty("skyDatabaseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.skyDatabaseUrl);if(t)return"skyDatabaseUrl."+t}if(r.defaultWebPageIntlUrl!=null&&r.hasOwnProperty("defaultWebPageIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.defaultWebPageIntlUrl);if(t)return"defaultWebPageIntlUrl."+t}if(r.numStartUpTips!=null&&r.hasOwnProperty("numStartUpTips")&&!u.isInteger(r.numStartUpTips))return"numStartUpTips: integer expected";if(r.startUpTipsUrl!=null&&r.hasOwnProperty("startUpTipsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.startUpTipsUrl);if(t)return"startUpTipsUrl."+t}if(r.numProStartUpTips!=null&&r.hasOwnProperty("numProStartUpTips")&&!u.isInteger(r.numProStartUpTips))return"numProStartUpTips: integer expected";if(r.proStartUpTipsUrl!=null&&r.hasOwnProperty("proStartUpTipsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proStartUpTipsUrl);if(t)return"proStartUpTipsUrl."+t}if(r.startupTipsIntlUrl!=null&&r.hasOwnProperty("startupTipsIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.startupTipsIntlUrl);if(t)return"startupTipsIntlUrl."+t}if(r.userGuideIntlUrl!=null&&r.hasOwnProperty("userGuideIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.userGuideIntlUrl);if(t)return"userGuideIntlUrl."+t}if(r.supportCenterIntlUrl!=null&&r.hasOwnProperty("supportCenterIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportCenterIntlUrl);if(t)return"supportCenterIntlUrl."+t}if(r.businessListingIntlUrl!=null&&r.hasOwnProperty("businessListingIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.businessListingIntlUrl);if(t)return"businessListingIntlUrl."+t}if(r.supportAnswerIntlUrl!=null&&r.hasOwnProperty("supportAnswerIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportAnswerIntlUrl);if(t)return"supportAnswerIntlUrl."+t}if(r.supportTopicIntlUrl!=null&&r.hasOwnProperty("supportTopicIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportTopicIntlUrl);if(t)return"supportTopicIntlUrl."+t}if(r.supportRequestIntlUrl!=null&&r.hasOwnProperty("supportRequestIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportRequestIntlUrl);if(t)return"supportRequestIntlUrl."+t}if(r.earthIntlUrl!=null&&r.hasOwnProperty("earthIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.earthIntlUrl);if(t)return"earthIntlUrl."+t}if(r.addContentUrl!=null&&r.hasOwnProperty("addContentUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.addContentUrl);if(t)return"addContentUrl."+t}if(r.sketchupNotInstalledUrl!=null&&r.hasOwnProperty("sketchupNotInstalledUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sketchupNotInstalledUrl);if(t)return"sketchupNotInstalledUrl."+t}if(r.sketchupErrorUrl!=null&&r.hasOwnProperty("sketchupErrorUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sketchupErrorUrl);if(t)return"sketchupErrorUrl."+t}if(r.freeLicenseUrl!=null&&r.hasOwnProperty("freeLicenseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.freeLicenseUrl);if(t)return"freeLicenseUrl."+t}if(r.proLicenseUrl!=null&&r.hasOwnProperty("proLicenseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proLicenseUrl);if(t)return"proLicenseUrl."+t}if(r.tutorialUrl!=null&&r.hasOwnProperty("tutorialUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.tutorialUrl);if(t)return"tutorialUrl."+t}if(r.keyboardShortcutsUrl!=null&&r.hasOwnProperty("keyboardShortcutsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.keyboardShortcutsUrl);if(t)return"keyboardShortcutsUrl."+t}if(r.releaseNotesUrl!=null&&r.hasOwnProperty("releaseNotesUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.releaseNotesUrl);if(t)return"releaseNotesUrl."+t}if(r.hideUserData!=null&&r.hasOwnProperty("hideUserData")&&typeof r.hideUserData!="boolean")return"hideUserData: boolean expected";if(r.useGeLogo!=null&&r.hasOwnProperty("useGeLogo")&&typeof r.useGeLogo!="boolean")return"useGeLogo: boolean expected";if(r.dioramaDescriptionUrlBase!=null&&r.hasOwnProperty("dioramaDescriptionUrlBase")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.dioramaDescriptionUrlBase);if(t)return"dioramaDescriptionUrlBase."+t}if(r.dioramaDefaultColor!=null&&r.hasOwnProperty("dioramaDefaultColor")&&!u.isInteger(r.dioramaDefaultColor))return"dioramaDefaultColor: integer expected";if(r.dioramaBlacklistUrl!=null&&r.hasOwnProperty("dioramaBlacklistUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.dioramaBlacklistUrl);if(t)return"dioramaBlacklistUrl."+t}if(r.clientOptions!=null&&r.hasOwnProperty("clientOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.verify(r.clientOptions);if(t)return"clientOptions."+t}if(r.fetchingOptions!=null&&r.hasOwnProperty("fetchingOptions")){var t=n.keyhole.dbroot.FetchingOptionsProto.verify(r.fetchingOptions);if(t)return"fetchingOptions."+t}if(r.timeMachineOptions!=null&&r.hasOwnProperty("timeMachineOptions")){var t=n.keyhole.dbroot.TimeMachineOptionsProto.verify(r.timeMachineOptions);if(t)return"timeMachineOptions."+t}if(r.csiOptions!=null&&r.hasOwnProperty("csiOptions")){var t=n.keyhole.dbroot.CSIOptionsProto.verify(r.csiOptions);if(t)return"csiOptions."+t}if(r.searchTab!=null&&r.hasOwnProperty("searchTab")){if(!Array.isArray(r.searchTab))return"searchTab: array expected";for(var e=0;e<r.searchTab.length;++e){var t=n.keyhole.dbroot.SearchTabProto.verify(r.searchTab[e]);if(t)return"searchTab."+t}}if(r.cobrandInfo!=null&&r.hasOwnProperty("cobrandInfo")){if(!Array.isArray(r.cobrandInfo))return"cobrandInfo: array expected";for(var e=0;e<r.cobrandInfo.length;++e){var t=n.keyhole.dbroot.CobrandProto.verify(r.cobrandInfo[e]);if(t)return"cobrandInfo."+t}}if(r.validDatabase!=null&&r.hasOwnProperty("validDatabase")){if(!Array.isArray(r.validDatabase))return"validDatabase: array expected";for(var e=0;e<r.validDatabase.length;++e){var t=n.keyhole.dbroot.DatabaseDescriptionProto.verify(r.validDatabase[e]);if(t)return"validDatabase."+t}}if(r.configScript!=null&&r.hasOwnProperty("configScript")){if(!Array.isArray(r.configScript))return"configScript: array expected";for(var e=0;e<r.configScript.length;++e){var t=n.keyhole.dbroot.ConfigScriptProto.verify(r.configScript[e]);if(t)return"configScript."+t}}if(r.deauthServerUrl!=null&&r.hasOwnProperty("deauthServerUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.deauthServerUrl);if(t)return"deauthServerUrl."+t}if(r.swoopParameters!=null&&r.hasOwnProperty("swoopParameters")){var t=n.keyhole.dbroot.SwoopParamsProto.verify(r.swoopParameters);if(t)return"swoopParameters."+t}if(r.bbsServerInfo!=null&&r.hasOwnProperty("bbsServerInfo")){var t=n.keyhole.dbroot.PostingServerProto.verify(r.bbsServerInfo);if(t)return"bbsServerInfo."+t}if(r.dataErrorServerInfo!=null&&r.hasOwnProperty("dataErrorServerInfo")){var t=n.keyhole.dbroot.PostingServerProto.verify(r.dataErrorServerInfo);if(t)return"dataErrorServerInfo."+t}if(r.planetaryDatabase!=null&&r.hasOwnProperty("planetaryDatabase")){if(!Array.isArray(r.planetaryDatabase))return"planetaryDatabase: array expected";for(var e=0;e<r.planetaryDatabase.length;++e){var t=n.keyhole.dbroot.PlanetaryDatabaseProto.verify(r.planetaryDatabase[e]);if(t)return"planetaryDatabase."+t}}if(r.logServer!=null&&r.hasOwnProperty("logServer")){var t=n.keyhole.dbroot.LogServerProto.verify(r.logServer);if(t)return"logServer."+t}if(r.autopiaOptions!=null&&r.hasOwnProperty("autopiaOptions")){var t=n.keyhole.dbroot.AutopiaOptionsProto.verify(r.autopiaOptions);if(t)return"autopiaOptions."+t}if(r.searchConfig!=null&&r.hasOwnProperty("searchConfig")){var t=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.verify(r.searchConfig);if(t)return"searchConfig."+t}if(r.searchInfo!=null&&r.hasOwnProperty("searchInfo")){var t=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.verify(r.searchInfo);if(t)return"searchInfo."+t}if(r.elevationServiceBaseUrl!=null&&r.hasOwnProperty("elevationServiceBaseUrl")&&!u.isString(r.elevationServiceBaseUrl))return"elevationServiceBaseUrl: string expected";if(r.elevationProfileQueryDelay!=null&&r.hasOwnProperty("elevationProfileQueryDelay")&&!u.isInteger(r.elevationProfileQueryDelay))return"elevationProfileQueryDelay: integer expected";if(r.proUpgradeUrl!=null&&r.hasOwnProperty("proUpgradeUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proUpgradeUrl);if(t)return"proUpgradeUrl."+t}if(r.earthCommunityUrl!=null&&r.hasOwnProperty("earthCommunityUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.earthCommunityUrl);if(t)return"earthCommunityUrl."+t}if(r.googleMapsUrl!=null&&r.hasOwnProperty("googleMapsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.googleMapsUrl);if(t)return"googleMapsUrl."+t}if(r.sharingUrl!=null&&r.hasOwnProperty("sharingUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sharingUrl);if(t)return"sharingUrl."+t}if(r.privacyPolicyUrl!=null&&r.hasOwnProperty("privacyPolicyUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.privacyPolicyUrl);if(t)return"privacyPolicyUrl."+t}if(r.doGplusUserCheck!=null&&r.hasOwnProperty("doGplusUserCheck")&&typeof r.doGplusUserCheck!="boolean")return"doGplusUserCheck: boolean expected";if(r.rocktreeDataProto!=null&&r.hasOwnProperty("rocktreeDataProto")){var t=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.verify(r.rocktreeDataProto);if(t)return"rocktreeDataProto."+t}if(r.filmstripConfig!=null&&r.hasOwnProperty("filmstripConfig")){if(!Array.isArray(r.filmstripConfig))return"filmstripConfig: array expected";for(var e=0;e<r.filmstripConfig.length;++e){var t=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.verify(r.filmstripConfig[e]);if(t)return"filmstripConfig."+t}}if(r.showSigninButton!=null&&r.hasOwnProperty("showSigninButton")&&typeof r.showSigninButton!="boolean")return"showSigninButton: boolean expected";if(r.proMeasureUpsellUrl!=null&&r.hasOwnProperty("proMeasureUpsellUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proMeasureUpsellUrl);if(t)return"proMeasureUpsellUrl."+t}if(r.proPrintUpsellUrl!=null&&r.hasOwnProperty("proPrintUpsellUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proPrintUpsellUrl);if(t)return"proPrintUpsellUrl."+t}if(r.starDataProto!=null&&r.hasOwnProperty("starDataProto")){var t=n.keyhole.dbroot.EndSnippetProto.StarDataProto.verify(r.starDataProto);if(t)return"starDataProto."+t}if(r.feedbackUrl!=null&&r.hasOwnProperty("feedbackUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.feedbackUrl);if(t)return"feedbackUrl."+t}if(r.oauth2LoginUrl!=null&&r.hasOwnProperty("oauth2LoginUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.oauth2LoginUrl);if(t)return"oauth2LoginUrl."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.EndSnippetProto)return r;var t=new n.keyhole.dbroot.EndSnippetProto;if(r.model!=null){if(typeof r.model!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.model: object expected");t.model=n.keyhole.dbroot.PlanetModelProto.fromObject(r.model)}if(r.authServerUrl!=null){if(typeof r.authServerUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.authServerUrl: object expected");t.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.authServerUrl)}if(r.disableAuthentication!=null&&(t.disableAuthentication=!!r.disableAuthentication),r.mfeDomains){if(!Array.isArray(r.mfeDomains))throw TypeError(".keyhole.dbroot.EndSnippetProto.mfeDomains: array expected");t.mfeDomains=[];for(var e=0;e<r.mfeDomains.length;++e){if(typeof r.mfeDomains[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.mfeDomains: object expected");t.mfeDomains[e]=n.keyhole.dbroot.MfeDomainFeaturesProto.fromObject(r.mfeDomains[e])}}if(r.mfeLangParam!=null&&(t.mfeLangParam=String(r.mfeLangParam)),r.adsUrlPatterns!=null&&(t.adsUrlPatterns=String(r.adsUrlPatterns)),r.reverseGeocoderUrl!=null){if(typeof r.reverseGeocoderUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.reverseGeocoderUrl: object expected");t.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.reverseGeocoderUrl)}if(r.reverseGeocoderProtocolVersion!=null&&(t.reverseGeocoderProtocolVersion=r.reverseGeocoderProtocolVersion|0),r.skyDatabaseIsAvailable!=null&&(t.skyDatabaseIsAvailable=!!r.skyDatabaseIsAvailable),r.skyDatabaseUrl!=null){if(typeof r.skyDatabaseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.skyDatabaseUrl: object expected");t.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.skyDatabaseUrl)}if(r.defaultWebPageIntlUrl!=null){if(typeof r.defaultWebPageIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.defaultWebPageIntlUrl: object expected");t.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.defaultWebPageIntlUrl)}if(r.numStartUpTips!=null&&(t.numStartUpTips=r.numStartUpTips|0),r.startUpTipsUrl!=null){if(typeof r.startUpTipsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.startUpTipsUrl: object expected");t.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.startUpTipsUrl)}if(r.numProStartUpTips!=null&&(t.numProStartUpTips=r.numProStartUpTips|0),r.proStartUpTipsUrl!=null){if(typeof r.proStartUpTipsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proStartUpTipsUrl: object expected");t.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proStartUpTipsUrl)}if(r.startupTipsIntlUrl!=null){if(typeof r.startupTipsIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.startupTipsIntlUrl: object expected");t.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.startupTipsIntlUrl)}if(r.userGuideIntlUrl!=null){if(typeof r.userGuideIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.userGuideIntlUrl: object expected");t.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.userGuideIntlUrl)}if(r.supportCenterIntlUrl!=null){if(typeof r.supportCenterIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportCenterIntlUrl: object expected");t.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportCenterIntlUrl)}if(r.businessListingIntlUrl!=null){if(typeof r.businessListingIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.businessListingIntlUrl: object expected");t.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.businessListingIntlUrl)}if(r.supportAnswerIntlUrl!=null){if(typeof r.supportAnswerIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportAnswerIntlUrl: object expected");t.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportAnswerIntlUrl)}if(r.supportTopicIntlUrl!=null){if(typeof r.supportTopicIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportTopicIntlUrl: object expected");t.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportTopicIntlUrl)}if(r.supportRequestIntlUrl!=null){if(typeof r.supportRequestIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportRequestIntlUrl: object expected");t.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportRequestIntlUrl)}if(r.earthIntlUrl!=null){if(typeof r.earthIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.earthIntlUrl: object expected");t.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.earthIntlUrl)}if(r.addContentUrl!=null){if(typeof r.addContentUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.addContentUrl: object expected");t.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.addContentUrl)}if(r.sketchupNotInstalledUrl!=null){if(typeof r.sketchupNotInstalledUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sketchupNotInstalledUrl: object expected");t.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sketchupNotInstalledUrl)}if(r.sketchupErrorUrl!=null){if(typeof r.sketchupErrorUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sketchupErrorUrl: object expected");t.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sketchupErrorUrl)}if(r.freeLicenseUrl!=null){if(typeof r.freeLicenseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.freeLicenseUrl: object expected");t.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.freeLicenseUrl)}if(r.proLicenseUrl!=null){if(typeof r.proLicenseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proLicenseUrl: object expected");t.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proLicenseUrl)}if(r.tutorialUrl!=null){if(typeof r.tutorialUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.tutorialUrl: object expected");t.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.tutorialUrl)}if(r.keyboardShortcutsUrl!=null){if(typeof r.keyboardShortcutsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.keyboardShortcutsUrl: object expected");t.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.keyboardShortcutsUrl)}if(r.releaseNotesUrl!=null){if(typeof r.releaseNotesUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.releaseNotesUrl: object expected");t.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.releaseNotesUrl)}if(r.hideUserData!=null&&(t.hideUserData=!!r.hideUserData),r.useGeLogo!=null&&(t.useGeLogo=!!r.useGeLogo),r.dioramaDescriptionUrlBase!=null){if(typeof r.dioramaDescriptionUrlBase!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dioramaDescriptionUrlBase: object expected");t.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.dioramaDescriptionUrlBase)}if(r.dioramaDefaultColor!=null&&(t.dioramaDefaultColor=r.dioramaDefaultColor>>>0),r.dioramaBlacklistUrl!=null){if(typeof r.dioramaBlacklistUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dioramaBlacklistUrl: object expected");t.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.dioramaBlacklistUrl)}if(r.clientOptions!=null){if(typeof r.clientOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.clientOptions: object expected");t.clientOptions=n.keyhole.dbroot.ClientOptionsProto.fromObject(r.clientOptions)}if(r.fetchingOptions!=null){if(typeof r.fetchingOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.fetchingOptions: object expected");t.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.fromObject(r.fetchingOptions)}if(r.timeMachineOptions!=null){if(typeof r.timeMachineOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.timeMachineOptions: object expected");t.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.fromObject(r.timeMachineOptions)}if(r.csiOptions!=null){if(typeof r.csiOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.csiOptions: object expected");t.csiOptions=n.keyhole.dbroot.CSIOptionsProto.fromObject(r.csiOptions)}if(r.searchTab){if(!Array.isArray(r.searchTab))throw TypeError(".keyhole.dbroot.EndSnippetProto.searchTab: array expected");t.searchTab=[];for(var e=0;e<r.searchTab.length;++e){if(typeof r.searchTab[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchTab: object expected");t.searchTab[e]=n.keyhole.dbroot.SearchTabProto.fromObject(r.searchTab[e])}}if(r.cobrandInfo){if(!Array.isArray(r.cobrandInfo))throw TypeError(".keyhole.dbroot.EndSnippetProto.cobrandInfo: array expected");t.cobrandInfo=[];for(var e=0;e<r.cobrandInfo.length;++e){if(typeof r.cobrandInfo[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.cobrandInfo: object expected");t.cobrandInfo[e]=n.keyhole.dbroot.CobrandProto.fromObject(r.cobrandInfo[e])}}if(r.validDatabase){if(!Array.isArray(r.validDatabase))throw TypeError(".keyhole.dbroot.EndSnippetProto.validDatabase: array expected");t.validDatabase=[];for(var e=0;e<r.validDatabase.length;++e){if(typeof r.validDatabase[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.validDatabase: object expected");t.validDatabase[e]=n.keyhole.dbroot.DatabaseDescriptionProto.fromObject(r.validDatabase[e])}}if(r.configScript){if(!Array.isArray(r.configScript))throw TypeError(".keyhole.dbroot.EndSnippetProto.configScript: array expected");t.configScript=[];for(var e=0;e<r.configScript.length;++e){if(typeof r.configScript[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.configScript: object expected");t.configScript[e]=n.keyhole.dbroot.ConfigScriptProto.fromObject(r.configScript[e])}}if(r.deauthServerUrl!=null){if(typeof r.deauthServerUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.deauthServerUrl: object expected");t.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.deauthServerUrl)}if(r.swoopParameters!=null){if(typeof r.swoopParameters!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.swoopParameters: object expected");t.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.fromObject(r.swoopParameters)}if(r.bbsServerInfo!=null){if(typeof r.bbsServerInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.bbsServerInfo: object expected");t.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.fromObject(r.bbsServerInfo)}if(r.dataErrorServerInfo!=null){if(typeof r.dataErrorServerInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dataErrorServerInfo: object expected");t.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.fromObject(r.dataErrorServerInfo)}if(r.planetaryDatabase){if(!Array.isArray(r.planetaryDatabase))throw TypeError(".keyhole.dbroot.EndSnippetProto.planetaryDatabase: array expected");t.planetaryDatabase=[];for(var e=0;e<r.planetaryDatabase.length;++e){if(typeof r.planetaryDatabase[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.planetaryDatabase: object expected");t.planetaryDatabase[e]=n.keyhole.dbroot.PlanetaryDatabaseProto.fromObject(r.planetaryDatabase[e])}}if(r.logServer!=null){if(typeof r.logServer!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.logServer: object expected");t.logServer=n.keyhole.dbroot.LogServerProto.fromObject(r.logServer)}if(r.autopiaOptions!=null){if(typeof r.autopiaOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.autopiaOptions: object expected");t.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.fromObject(r.autopiaOptions)}if(r.searchConfig!=null){if(typeof r.searchConfig!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchConfig: object expected");t.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.fromObject(r.searchConfig)}if(r.searchInfo!=null){if(typeof r.searchInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchInfo: object expected");t.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.fromObject(r.searchInfo)}if(r.elevationServiceBaseUrl!=null&&(t.elevationServiceBaseUrl=String(r.elevationServiceBaseUrl)),r.elevationProfileQueryDelay!=null&&(t.elevationProfileQueryDelay=r.elevationProfileQueryDelay|0),r.proUpgradeUrl!=null){if(typeof r.proUpgradeUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proUpgradeUrl: object expected");t.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proUpgradeUrl)}if(r.earthCommunityUrl!=null){if(typeof r.earthCommunityUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.earthCommunityUrl: object expected");t.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.earthCommunityUrl)}if(r.googleMapsUrl!=null){if(typeof r.googleMapsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.googleMapsUrl: object expected");t.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.googleMapsUrl)}if(r.sharingUrl!=null){if(typeof r.sharingUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sharingUrl: object expected");t.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sharingUrl)}if(r.privacyPolicyUrl!=null){if(typeof r.privacyPolicyUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.privacyPolicyUrl: object expected");t.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.privacyPolicyUrl)}if(r.doGplusUserCheck!=null&&(t.doGplusUserCheck=!!r.doGplusUserCheck),r.rocktreeDataProto!=null){if(typeof r.rocktreeDataProto!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.rocktreeDataProto: object expected");t.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.fromObject(r.rocktreeDataProto)}if(r.filmstripConfig){if(!Array.isArray(r.filmstripConfig))throw TypeError(".keyhole.dbroot.EndSnippetProto.filmstripConfig: array expected");t.filmstripConfig=[];for(var e=0;e<r.filmstripConfig.length;++e){if(typeof r.filmstripConfig[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.filmstripConfig: object expected");t.filmstripConfig[e]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.fromObject(r.filmstripConfig[e])}}if(r.showSigninButton!=null&&(t.showSigninButton=!!r.showSigninButton),r.proMeasureUpsellUrl!=null){if(typeof r.proMeasureUpsellUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proMeasureUpsellUrl: object expected");t.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proMeasureUpsellUrl)}if(r.proPrintUpsellUrl!=null){if(typeof r.proPrintUpsellUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proPrintUpsellUrl: object expected");t.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proPrintUpsellUrl)}if(r.starDataProto!=null){if(typeof r.starDataProto!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.starDataProto: object expected");t.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.fromObject(r.starDataProto)}if(r.feedbackUrl!=null){if(typeof r.feedbackUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.feedbackUrl: object expected");t.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.feedbackUrl)}if(r.oauth2LoginUrl!=null){if(typeof r.oauth2LoginUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.oauth2LoginUrl: object expected");t.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.oauth2LoginUrl)}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.mfeDomains=[],e.searchTab=[],e.cobrandInfo=[],e.validDatabase=[],e.configScript=[],e.planetaryDatabase=[],e.filmstripConfig=[]),t.defaults&&(e.model=null,e.authServerUrl=null,e.disableAuthentication=!1,e.mfeLangParam="hl=$5Bhl5D",e.adsUrlPatterns="",e.reverseGeocoderUrl=null,e.reverseGeocoderProtocolVersion=3,e.skyDatabaseIsAvailable=!0,e.skyDatabaseUrl=null,e.defaultWebPageIntlUrl=null,e.numStartUpTips=17,e.startUpTipsUrl=null,e.userGuideIntlUrl=null,e.supportCenterIntlUrl=null,e.businessListingIntlUrl=null,e.supportAnswerIntlUrl=null,e.supportTopicIntlUrl=null,e.supportRequestIntlUrl=null,e.earthIntlUrl=null,e.addContentUrl=null,e.sketchupNotInstalledUrl=null,e.sketchupErrorUrl=null,e.freeLicenseUrl=null,e.proLicenseUrl=null,e.hideUserData=!1,e.useGeLogo=!0,e.dioramaDescriptionUrlBase=null,e.dioramaDefaultColor=4291281607,e.clientOptions=null,e.fetchingOptions=null,e.timeMachineOptions=null,e.csiOptions=null,e.deauthServerUrl=null,e.swoopParameters=null,e.bbsServerInfo=null,e.dataErrorServerInfo=null,e.logServer=null,e.autopiaOptions=null,e.searchInfo=null,e.elevationServiceBaseUrl="http://maps.google.com/maps/api/elevation/",e.elevationProfileQueryDelay=500,e.tutorialUrl=null,e.keyboardShortcutsUrl=null,e.releaseNotesUrl=null,e.numProStartUpTips=0,e.proStartUpTipsUrl=null,e.dioramaBlacklistUrl=null,e.searchConfig=null,e.proUpgradeUrl=null,e.earthCommunityUrl=null,e.googleMapsUrl=null,e.sharingUrl=null,e.privacyPolicyUrl=null,e.doGplusUserCheck=!1,e.rocktreeDataProto=null,e.showSigninButton=!1,e.startupTipsIntlUrl=null,e.proMeasureUpsellUrl=null,e.proPrintUpsellUrl=null,e.starDataProto=null,e.feedbackUrl=null,e.oauth2LoginUrl=null),r.model!=null&&r.hasOwnProperty("model")&&(e.model=n.keyhole.dbroot.PlanetModelProto.toObject(r.model,t)),r.authServerUrl!=null&&r.hasOwnProperty("authServerUrl")&&(e.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.authServerUrl,t)),r.disableAuthentication!=null&&r.hasOwnProperty("disableAuthentication")&&(e.disableAuthentication=r.disableAuthentication),r.mfeDomains&&r.mfeDomains.length){e.mfeDomains=[];for(var o=0;o<r.mfeDomains.length;++o)e.mfeDomains[o]=n.keyhole.dbroot.MfeDomainFeaturesProto.toObject(r.mfeDomains[o],t)}if(r.mfeLangParam!=null&&r.hasOwnProperty("mfeLangParam")&&(e.mfeLangParam=r.mfeLangParam),r.adsUrlPatterns!=null&&r.hasOwnProperty("adsUrlPatterns")&&(e.adsUrlPatterns=r.adsUrlPatterns),r.reverseGeocoderUrl!=null&&r.hasOwnProperty("reverseGeocoderUrl")&&(e.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.reverseGeocoderUrl,t)),r.reverseGeocoderProtocolVersion!=null&&r.hasOwnProperty("reverseGeocoderProtocolVersion")&&(e.reverseGeocoderProtocolVersion=r.reverseGeocoderProtocolVersion),r.skyDatabaseIsAvailable!=null&&r.hasOwnProperty("skyDatabaseIsAvailable")&&(e.skyDatabaseIsAvailable=r.skyDatabaseIsAvailable),r.skyDatabaseUrl!=null&&r.hasOwnProperty("skyDatabaseUrl")&&(e.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.skyDatabaseUrl,t)),r.defaultWebPageIntlUrl!=null&&r.hasOwnProperty("defaultWebPageIntlUrl")&&(e.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.defaultWebPageIntlUrl,t)),r.numStartUpTips!=null&&r.hasOwnProperty("numStartUpTips")&&(e.numStartUpTips=r.numStartUpTips),r.startUpTipsUrl!=null&&r.hasOwnProperty("startUpTipsUrl")&&(e.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.startUpTipsUrl,t)),r.userGuideIntlUrl!=null&&r.hasOwnProperty("userGuideIntlUrl")&&(e.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.userGuideIntlUrl,t)),r.supportCenterIntlUrl!=null&&r.hasOwnProperty("supportCenterIntlUrl")&&(e.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportCenterIntlUrl,t)),r.businessListingIntlUrl!=null&&r.hasOwnProperty("businessListingIntlUrl")&&(e.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.businessListingIntlUrl,t)),r.supportAnswerIntlUrl!=null&&r.hasOwnProperty("supportAnswerIntlUrl")&&(e.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportAnswerIntlUrl,t)),r.supportTopicIntlUrl!=null&&r.hasOwnProperty("supportTopicIntlUrl")&&(e.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportTopicIntlUrl,t)),r.supportRequestIntlUrl!=null&&r.hasOwnProperty("supportRequestIntlUrl")&&(e.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportRequestIntlUrl,t)),r.earthIntlUrl!=null&&r.hasOwnProperty("earthIntlUrl")&&(e.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.earthIntlUrl,t)),r.addContentUrl!=null&&r.hasOwnProperty("addContentUrl")&&(e.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.addContentUrl,t)),r.sketchupNotInstalledUrl!=null&&r.hasOwnProperty("sketchupNotInstalledUrl")&&(e.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sketchupNotInstalledUrl,t)),r.sketchupErrorUrl!=null&&r.hasOwnProperty("sketchupErrorUrl")&&(e.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sketchupErrorUrl,t)),r.freeLicenseUrl!=null&&r.hasOwnProperty("freeLicenseUrl")&&(e.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.freeLicenseUrl,t)),r.proLicenseUrl!=null&&r.hasOwnProperty("proLicenseUrl")&&(e.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proLicenseUrl,t)),r.hideUserData!=null&&r.hasOwnProperty("hideUserData")&&(e.hideUserData=r.hideUserData),r.useGeLogo!=null&&r.hasOwnProperty("useGeLogo")&&(e.useGeLogo=r.useGeLogo),r.dioramaDescriptionUrlBase!=null&&r.hasOwnProperty("dioramaDescriptionUrlBase")&&(e.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.dioramaDescriptionUrlBase,t)),r.dioramaDefaultColor!=null&&r.hasOwnProperty("dioramaDefaultColor")&&(e.dioramaDefaultColor=r.dioramaDefaultColor),r.clientOptions!=null&&r.hasOwnProperty("clientOptions")&&(e.clientOptions=n.keyhole.dbroot.ClientOptionsProto.toObject(r.clientOptions,t)),r.fetchingOptions!=null&&r.hasOwnProperty("fetchingOptions")&&(e.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.toObject(r.fetchingOptions,t)),r.timeMachineOptions!=null&&r.hasOwnProperty("timeMachineOptions")&&(e.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.toObject(r.timeMachineOptions,t)),r.csiOptions!=null&&r.hasOwnProperty("csiOptions")&&(e.csiOptions=n.keyhole.dbroot.CSIOptionsProto.toObject(r.csiOptions,t)),r.searchTab&&r.searchTab.length){e.searchTab=[];for(var o=0;o<r.searchTab.length;++o)e.searchTab[o]=n.keyhole.dbroot.SearchTabProto.toObject(r.searchTab[o],t)}if(r.cobrandInfo&&r.cobrandInfo.length){e.cobrandInfo=[];for(var o=0;o<r.cobrandInfo.length;++o)e.cobrandInfo[o]=n.keyhole.dbroot.CobrandProto.toObject(r.cobrandInfo[o],t)}if(r.validDatabase&&r.validDatabase.length){e.validDatabase=[];for(var o=0;o<r.validDatabase.length;++o)e.validDatabase[o]=n.keyhole.dbroot.DatabaseDescriptionProto.toObject(r.validDatabase[o],t)}if(r.configScript&&r.configScript.length){e.configScript=[];for(var o=0;o<r.configScript.length;++o)e.configScript[o]=n.keyhole.dbroot.ConfigScriptProto.toObject(r.configScript[o],t)}if(r.deauthServerUrl!=null&&r.hasOwnProperty("deauthServerUrl")&&(e.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.deauthServerUrl,t)),r.swoopParameters!=null&&r.hasOwnProperty("swoopParameters")&&(e.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.toObject(r.swoopParameters,t)),r.bbsServerInfo!=null&&r.hasOwnProperty("bbsServerInfo")&&(e.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.toObject(r.bbsServerInfo,t)),r.dataErrorServerInfo!=null&&r.hasOwnProperty("dataErrorServerInfo")&&(e.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.toObject(r.dataErrorServerInfo,t)),r.planetaryDatabase&&r.planetaryDatabase.length){e.planetaryDatabase=[];for(var o=0;o<r.planetaryDatabase.length;++o)e.planetaryDatabase[o]=n.keyhole.dbroot.PlanetaryDatabaseProto.toObject(r.planetaryDatabase[o],t)}if(r.logServer!=null&&r.hasOwnProperty("logServer")&&(e.logServer=n.keyhole.dbroot.LogServerProto.toObject(r.logServer,t)),r.autopiaOptions!=null&&r.hasOwnProperty("autopiaOptions")&&(e.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.toObject(r.autopiaOptions,t)),r.searchInfo!=null&&r.hasOwnProperty("searchInfo")&&(e.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.toObject(r.searchInfo,t)),r.elevationServiceBaseUrl!=null&&r.hasOwnProperty("elevationServiceBaseUrl")&&(e.elevationServiceBaseUrl=r.elevationServiceBaseUrl),r.elevationProfileQueryDelay!=null&&r.hasOwnProperty("elevationProfileQueryDelay")&&(e.elevationProfileQueryDelay=r.elevationProfileQueryDelay),r.tutorialUrl!=null&&r.hasOwnProperty("tutorialUrl")&&(e.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.tutorialUrl,t)),r.keyboardShortcutsUrl!=null&&r.hasOwnProperty("keyboardShortcutsUrl")&&(e.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.keyboardShortcutsUrl,t)),r.releaseNotesUrl!=null&&r.hasOwnProperty("releaseNotesUrl")&&(e.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.releaseNotesUrl,t)),r.numProStartUpTips!=null&&r.hasOwnProperty("numProStartUpTips")&&(e.numProStartUpTips=r.numProStartUpTips),r.proStartUpTipsUrl!=null&&r.hasOwnProperty("proStartUpTipsUrl")&&(e.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proStartUpTipsUrl,t)),r.dioramaBlacklistUrl!=null&&r.hasOwnProperty("dioramaBlacklistUrl")&&(e.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.dioramaBlacklistUrl,t)),r.searchConfig!=null&&r.hasOwnProperty("searchConfig")&&(e.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.toObject(r.searchConfig,t)),r.proUpgradeUrl!=null&&r.hasOwnProperty("proUpgradeUrl")&&(e.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proUpgradeUrl,t)),r.earthCommunityUrl!=null&&r.hasOwnProperty("earthCommunityUrl")&&(e.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.earthCommunityUrl,t)),r.googleMapsUrl!=null&&r.hasOwnProperty("googleMapsUrl")&&(e.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.googleMapsUrl,t)),r.sharingUrl!=null&&r.hasOwnProperty("sharingUrl")&&(e.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sharingUrl,t)),r.privacyPolicyUrl!=null&&r.hasOwnProperty("privacyPolicyUrl")&&(e.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.privacyPolicyUrl,t)),r.doGplusUserCheck!=null&&r.hasOwnProperty("doGplusUserCheck")&&(e.doGplusUserCheck=r.doGplusUserCheck),r.rocktreeDataProto!=null&&r.hasOwnProperty("rocktreeDataProto")&&(e.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.toObject(r.rocktreeDataProto,t)),r.filmstripConfig&&r.filmstripConfig.length){e.filmstripConfig=[];for(var o=0;o<r.filmstripConfig.length;++o)e.filmstripConfig[o]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.toObject(r.filmstripConfig[o],t)}return r.showSigninButton!=null&&r.hasOwnProperty("showSigninButton")&&(e.showSigninButton=r.showSigninButton),r.startupTipsIntlUrl!=null&&r.hasOwnProperty("startupTipsIntlUrl")&&(e.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.startupTipsIntlUrl,t)),r.proMeasureUpsellUrl!=null&&r.hasOwnProperty("proMeasureUpsellUrl")&&(e.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proMeasureUpsellUrl,t)),r.proPrintUpsellUrl!=null&&r.hasOwnProperty("proPrintUpsellUrl")&&(e.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proPrintUpsellUrl,t)),r.starDataProto!=null&&r.hasOwnProperty("starDataProto")&&(e.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.toObject(r.starDataProto,t)),r.feedbackUrl!=null&&r.hasOwnProperty("feedbackUrl")&&(e.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.feedbackUrl,t)),r.oauth2LoginUrl!=null&&r.hasOwnProperty("oauth2LoginUrl")&&(e.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.oauth2LoginUrl,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.EndSnippetProto"},i.SearchConfigProto=(function(){function l(r){if(this.searchServer=[],this.oneboxService=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.searchServer=u.emptyArray,l.prototype.oneboxService=u.emptyArray,l.prototype.kmlSearchUrl=null,l.prototype.kmlRenderUrl=null,l.prototype.searchHistoryUrl=null,l.prototype.errorPageUrl=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.searchServer&&a.searchServer.length||(a.searchServer=[]),a.searchServer.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.decode(t,t.uint32()));break}case 2:{a.oneboxService&&a.oneboxService.length||(a.oneboxService=[]),a.oneboxService.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.decode(t,t.uint32()));break}case 3:{a.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 4:{a.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 6:{a.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 5:{a.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.searchServer!=null&&t.hasOwnProperty("searchServer")){if(!Array.isArray(t.searchServer))return"searchServer: array expected";for(var e=0;e<t.searchServer.length;++e){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.verify(t.searchServer[e]);if(o)return"searchServer."+o}}if(t.oneboxService!=null&&t.hasOwnProperty("oneboxService")){if(!Array.isArray(t.oneboxService))return"oneboxService: array expected";for(var e=0;e<t.oneboxService.length;++e){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.verify(t.oneboxService[e]);if(o)return"oneboxService."+o}}if(t.kmlSearchUrl!=null&&t.hasOwnProperty("kmlSearchUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlSearchUrl);if(o)return"kmlSearchUrl."+o}if(t.kmlRenderUrl!=null&&t.hasOwnProperty("kmlRenderUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlRenderUrl);if(o)return"kmlRenderUrl."+o}if(t.searchHistoryUrl!=null&&t.hasOwnProperty("searchHistoryUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.searchHistoryUrl);if(o)return"searchHistoryUrl."+o}if(t.errorPageUrl!=null&&t.hasOwnProperty("errorPageUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.errorPageUrl);if(o)return"errorPageUrl."+o}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto;if(t.searchServer){if(!Array.isArray(t.searchServer))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchServer: array expected");e.searchServer=[];for(var o=0;o<t.searchServer.length;++o){if(typeof t.searchServer[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchServer: object expected");e.searchServer[o]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.fromObject(t.searchServer[o])}}if(t.oneboxService){if(!Array.isArray(t.oneboxService))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.oneboxService: array expected");e.oneboxService=[];for(var o=0;o<t.oneboxService.length;++o){if(typeof t.oneboxService[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.oneboxService: object expected");e.oneboxService[o]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.fromObject(t.oneboxService[o])}}if(t.kmlSearchUrl!=null){if(typeof t.kmlSearchUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.kmlSearchUrl: object expected");e.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlSearchUrl)}if(t.kmlRenderUrl!=null){if(typeof t.kmlRenderUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.kmlRenderUrl: object expected");e.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlRenderUrl)}if(t.searchHistoryUrl!=null){if(typeof t.searchHistoryUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchHistoryUrl: object expected");e.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.searchHistoryUrl)}if(t.errorPageUrl!=null){if(typeof t.errorPageUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.errorPageUrl: object expected");e.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.errorPageUrl)}return e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.searchServer=[],o.oneboxService=[]),e.defaults&&(o.kmlSearchUrl=null,o.kmlRenderUrl=null,o.errorPageUrl=null,o.searchHistoryUrl=null),t.searchServer&&t.searchServer.length){o.searchServer=[];for(var a=0;a<t.searchServer.length;++a)o.searchServer[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.toObject(t.searchServer[a],e)}if(t.oneboxService&&t.oneboxService.length){o.oneboxService=[];for(var a=0;a<t.oneboxService.length;++a)o.oneboxService[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.toObject(t.oneboxService[a],e)}return t.kmlSearchUrl!=null&&t.hasOwnProperty("kmlSearchUrl")&&(o.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlSearchUrl,e)),t.kmlRenderUrl!=null&&t.hasOwnProperty("kmlRenderUrl")&&(o.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlRenderUrl,e)),t.errorPageUrl!=null&&t.hasOwnProperty("errorPageUrl")&&(o.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.errorPageUrl,e)),t.searchHistoryUrl!=null&&t.hasOwnProperty("searchHistoryUrl")&&(o.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.searchHistoryUrl,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto"},l.SearchServer=(function(){function r(t){if(this.suggestion=[],this.searchlet=[],t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.name=null,r.prototype.url=null,r.prototype.type=0,r.prototype.htmlTransformUrl=null,r.prototype.kmlTransformUrl=null,r.prototype.supplementalUi=null,r.prototype.suggestion=u.emptyArray,r.prototype.searchlet=u.emptyArray,r.prototype.requirements=null,r.prototype.suggestServer=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.name=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 2:{p.url=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 3:{p.type=e.int32();break}case 4:{p.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 5:{p.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 6:{p.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.decode(e,e.uint32());break}case 9:{p.suggestion&&p.suggestion.length||(p.suggestion=[]),p.suggestion.push(n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32()));break}case 7:{p.searchlet&&p.searchlet.length||(p.searchlet=[]),p.searchlet.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.decode(e,e.uint32()));break}case 8:{p.requirements=n.keyhole.dbroot.RequirementProto.decode(e,e.uint32());break}case 10:{p.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.name!=null&&e.hasOwnProperty("name")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.name);if(o)return"name."+o}if(e.url!=null&&e.hasOwnProperty("url")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.url);if(o)return"url."+o}if(e.type!=null&&e.hasOwnProperty("type"))switch(e.type){default:return"type: enum value expected";case 0:case 1:break}if(e.htmlTransformUrl!=null&&e.hasOwnProperty("htmlTransformUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.htmlTransformUrl);if(o)return"htmlTransformUrl."+o}if(e.kmlTransformUrl!=null&&e.hasOwnProperty("kmlTransformUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.kmlTransformUrl);if(o)return"kmlTransformUrl."+o}if(e.supplementalUi!=null&&e.hasOwnProperty("supplementalUi")){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.verify(e.supplementalUi);if(o)return"supplementalUi."+o}if(e.suggestion!=null&&e.hasOwnProperty("suggestion")){if(!Array.isArray(e.suggestion))return"suggestion: array expected";for(var a=0;a<e.suggestion.length;++a){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.suggestion[a]);if(o)return"suggestion."+o}}if(e.searchlet!=null&&e.hasOwnProperty("searchlet")){if(!Array.isArray(e.searchlet))return"searchlet: array expected";for(var a=0;a<e.searchlet.length;++a){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.verify(e.searchlet[a]);if(o)return"searchlet."+o}}if(e.requirements!=null&&e.hasOwnProperty("requirements")){var o=n.keyhole.dbroot.RequirementProto.verify(e.requirements);if(o)return"requirements."+o}if(e.suggestServer!=null&&e.hasOwnProperty("suggestServer")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.suggestServer);if(o)return"suggestServer."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer)return e;var o=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer;if(e.name!=null){if(typeof e.name!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.name: object expected");o.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.name)}if(e.url!=null){if(typeof e.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.url: object expected");o.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.url)}switch(e.type){case"RESULT_TYPE_KML":case 0:o.type=0;break;case"RESULT_TYPE_XML":case 1:o.type=1;break}if(e.htmlTransformUrl!=null){if(typeof e.htmlTransformUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.htmlTransformUrl: object expected");o.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.htmlTransformUrl)}if(e.kmlTransformUrl!=null){if(typeof e.kmlTransformUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.kmlTransformUrl: object expected");o.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.kmlTransformUrl)}if(e.supplementalUi!=null){if(typeof e.supplementalUi!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.supplementalUi: object expected");o.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.fromObject(e.supplementalUi)}if(e.suggestion){if(!Array.isArray(e.suggestion))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestion: array expected");o.suggestion=[];for(var a=0;a<e.suggestion.length;++a){if(typeof e.suggestion[a]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestion: object expected");o.suggestion[a]=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.suggestion[a])}}if(e.searchlet){if(!Array.isArray(e.searchlet))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.searchlet: array expected");o.searchlet=[];for(var a=0;a<e.searchlet.length;++a){if(typeof e.searchlet[a]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.searchlet: object expected");o.searchlet[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.fromObject(e.searchlet[a])}}if(e.requirements!=null){if(typeof e.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.requirements: object expected");o.requirements=n.keyhole.dbroot.RequirementProto.fromObject(e.requirements)}if(e.suggestServer!=null){if(typeof e.suggestServer!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestServer: object expected");o.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.suggestServer)}return o},r.toObject=function(e,o){o||(o={});var a={};if((o.arrays||o.defaults)&&(a.searchlet=[],a.suggestion=[]),o.defaults&&(a.name=null,a.url=null,a.type=o.enums===String?"RESULT_TYPE_KML":0,a.htmlTransformUrl=null,a.kmlTransformUrl=null,a.supplementalUi=null,a.requirements=null,a.suggestServer=null),e.name!=null&&e.hasOwnProperty("name")&&(a.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.name,o)),e.url!=null&&e.hasOwnProperty("url")&&(a.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.url,o)),e.type!=null&&e.hasOwnProperty("type")&&(a.type=o.enums===String?n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.ResultType[e.type]:e.type),e.htmlTransformUrl!=null&&e.hasOwnProperty("htmlTransformUrl")&&(a.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.htmlTransformUrl,o)),e.kmlTransformUrl!=null&&e.hasOwnProperty("kmlTransformUrl")&&(a.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.kmlTransformUrl,o)),e.supplementalUi!=null&&e.hasOwnProperty("supplementalUi")&&(a.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.toObject(e.supplementalUi,o)),e.searchlet&&e.searchlet.length){a.searchlet=[];for(var p=0;p<e.searchlet.length;++p)a.searchlet[p]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.toObject(e.searchlet[p],o)}if(e.requirements!=null&&e.hasOwnProperty("requirements")&&(a.requirements=n.keyhole.dbroot.RequirementProto.toObject(e.requirements,o)),e.suggestion&&e.suggestion.length){a.suggestion=[];for(var p=0;p<e.suggestion.length;++p)a.suggestion[p]=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.suggestion[p],o)}return e.suggestServer!=null&&e.hasOwnProperty("suggestServer")&&(a.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.suggestServer,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer"},r.ResultType=(function(){var t={},e=Object.create(t);return e[t[0]="RESULT_TYPE_KML"]=0,e[t[1]="RESULT_TYPE_XML"]=1,e})(),r.SupplementalUi=(function(){function t(e){if(e)for(var o=Object.keys(e),a=0;a<o.length;++a)e[o[a]]!=null&&(this[o[a]]=e[o[a]])}return t.prototype.url=null,t.prototype.label=null,t.prototype.height=160,t.decode=function(o,a){o instanceof f||(o=f.create(o));for(var p=a===void 0?o.len:o.pos+a,y=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi;o.pos<p;){var h=o.uint32();switch(h>>>3){case 1:{y.url=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 2:{y.label=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 3:{y.height=o.int32();break}default:o.skipType(h&7);break}}return y},t.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.url!=null&&o.hasOwnProperty("url")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.url);if(a)return"url."+a}if(o.label!=null&&o.hasOwnProperty("label")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.label);if(a)return"label."+a}return o.height!=null&&o.hasOwnProperty("height")&&!u.isInteger(o.height)?"height: integer expected":null},t.fromObject=function(o){if(o instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi)return o;var a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi;if(o.url!=null){if(typeof o.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.url: object expected");a.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.url)}if(o.label!=null){if(typeof o.label!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.label: object expected");a.label=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.label)}return o.height!=null&&(a.height=o.height|0),a},t.toObject=function(o,a){a||(a={});var p={};return a.defaults&&(p.url=null,p.label=null,p.height=160),o.url!=null&&o.hasOwnProperty("url")&&(p.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.url,a)),o.label!=null&&o.hasOwnProperty("label")&&(p.label=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.label,a)),o.height!=null&&o.hasOwnProperty("height")&&(p.height=o.height),p},t.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},t.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi"},t})(),r.SearchletProto=(function(){function t(e){if(e)for(var o=Object.keys(e),a=0;a<o.length;++a)e[o[a]]!=null&&(this[o[a]]=e[o[a]])}return t.prototype.url=null,t.prototype.name=null,t.prototype.requirements=null,t.decode=function(o,a){o instanceof f||(o=f.create(o));for(var p=a===void 0?o.len:o.pos+a,y=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto;o.pos<p;){var h=o.uint32();switch(h>>>3){case 1:{y.url=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 2:{y.name=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 3:{y.requirements=n.keyhole.dbroot.RequirementProto.decode(o,o.uint32());break}default:o.skipType(h&7);break}}return y},t.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.url!=null&&o.hasOwnProperty("url")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.url);if(a)return"url."+a}if(o.name!=null&&o.hasOwnProperty("name")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.name);if(a)return"name."+a}if(o.requirements!=null&&o.hasOwnProperty("requirements")){var a=n.keyhole.dbroot.RequirementProto.verify(o.requirements);if(a)return"requirements."+a}return null},t.fromObject=function(o){if(o instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto)return o;var a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto;if(o.url!=null){if(typeof o.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.url: object expected");a.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.url)}if(o.name!=null){if(typeof o.name!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.name: object expected");a.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.name)}if(o.requirements!=null){if(typeof o.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.requirements: object expected");a.requirements=n.keyhole.dbroot.RequirementProto.fromObject(o.requirements)}return a},t.toObject=function(o,a){a||(a={});var p={};return a.defaults&&(p.url=null,p.name=null,p.requirements=null),o.url!=null&&o.hasOwnProperty("url")&&(p.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.url,a)),o.name!=null&&o.hasOwnProperty("name")&&(p.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.name,a)),o.requirements!=null&&o.hasOwnProperty("requirements")&&(p.requirements=n.keyhole.dbroot.RequirementProto.toObject(o.requirements,a)),p},t.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},t.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto"},t})(),r})(),l.OneboxServiceProto=(function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.serviceUrl=null,r.prototype.requirements=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 2:{p.requirements=n.keyhole.dbroot.RequirementProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.serviceUrl!=null&&e.hasOwnProperty("serviceUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.serviceUrl);if(o)return"serviceUrl."+o}if(e.requirements!=null&&e.hasOwnProperty("requirements")){var o=n.keyhole.dbroot.RequirementProto.verify(e.requirements);if(o)return"requirements."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto)return e;var o=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto;if(e.serviceUrl!=null){if(typeof e.serviceUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.serviceUrl: object expected");o.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.serviceUrl)}if(e.requirements!=null){if(typeof e.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.requirements: object expected");o.requirements=n.keyhole.dbroot.RequirementProto.fromObject(e.requirements)}return o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.serviceUrl=null,a.requirements=null),e.serviceUrl!=null&&e.hasOwnProperty("serviceUrl")&&(a.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.serviceUrl,o)),e.requirements!=null&&e.hasOwnProperty("requirements")&&(a.requirements=n.keyhole.dbroot.RequirementProto.toObject(e.requirements,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto"},r})(),l})(),i.SearchInfoProto=(function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.defaultUrl="http://maps.google.com/maps",l.prototype.geocodeParam="q",l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.SearchInfoProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.defaultUrl=t.string();break}case 2:{a.geocodeParam=t.string();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.defaultUrl!=null&&t.hasOwnProperty("defaultUrl")&&!u.isString(t.defaultUrl)?"defaultUrl: string expected":t.geocodeParam!=null&&t.hasOwnProperty("geocodeParam")&&!u.isString(t.geocodeParam)?"geocodeParam: string expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.SearchInfoProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.SearchInfoProto;return t.defaultUrl!=null&&(e.defaultUrl=String(t.defaultUrl)),t.geocodeParam!=null&&(e.geocodeParam=String(t.geocodeParam)),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.defaultUrl="http://maps.google.com/maps",o.geocodeParam="q"),t.defaultUrl!=null&&t.hasOwnProperty("defaultUrl")&&(o.defaultUrl=t.defaultUrl),t.geocodeParam!=null&&t.hasOwnProperty("geocodeParam")&&(o.geocodeParam=t.geocodeParam),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.SearchInfoProto"},l})(),i.RockTreeDataProto=(function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.url=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto;t.pos<o;){var p=t.uint32();p>>>3===1?a.url=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32()):t.skipType(p&7)}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.url!=null&&t.hasOwnProperty("url")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.url);if(e)return"url."+e}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto;if(t.url!=null){if(typeof t.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.RockTreeDataProto.url: object expected");e.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.url)}return e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.url=null),t.url!=null&&t.hasOwnProperty("url")&&(o.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.url,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.RockTreeDataProto"},l})(),i.FilmstripConfigProto=(function(){function l(r){if(this.imageryType=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.requirements=null,l.prototype.alleycatUrlTemplate=null,l.prototype.fallbackAlleycatUrlTemplate=null,l.prototype.metadataUrlTemplate=null,l.prototype.thumbnailUrlTemplate=null,l.prototype.kmlUrlTemplate=null,l.prototype.featuredToursUrl=null,l.prototype.enableViewportFallback=!1,l.prototype.viewportFallbackDistance=0,l.prototype.imageryType=u.emptyArray,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.requirements=n.keyhole.dbroot.RequirementProto.decode(t,t.uint32());break}case 2:{a.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 9:{a.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 3:{a.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 4:{a.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 5:{a.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 6:{a.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 7:{a.enableViewportFallback=t.bool();break}case 8:{a.viewportFallbackDistance=t.uint32();break}case 10:{a.imageryType&&a.imageryType.length||(a.imageryType=[]),a.imageryType.push(n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.decode(t,t.uint32()));break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.requirements!=null&&t.hasOwnProperty("requirements")){var e=n.keyhole.dbroot.RequirementProto.verify(t.requirements);if(e)return"requirements."+e}if(t.alleycatUrlTemplate!=null&&t.hasOwnProperty("alleycatUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.alleycatUrlTemplate);if(e)return"alleycatUrlTemplate."+e}if(t.fallbackAlleycatUrlTemplate!=null&&t.hasOwnProperty("fallbackAlleycatUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.fallbackAlleycatUrlTemplate);if(e)return"fallbackAlleycatUrlTemplate."+e}if(t.metadataUrlTemplate!=null&&t.hasOwnProperty("metadataUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.metadataUrlTemplate);if(e)return"metadataUrlTemplate."+e}if(t.thumbnailUrlTemplate!=null&&t.hasOwnProperty("thumbnailUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.thumbnailUrlTemplate);if(e)return"thumbnailUrlTemplate."+e}if(t.kmlUrlTemplate!=null&&t.hasOwnProperty("kmlUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlUrlTemplate);if(e)return"kmlUrlTemplate."+e}if(t.featuredToursUrl!=null&&t.hasOwnProperty("featuredToursUrl")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.featuredToursUrl);if(e)return"featuredToursUrl."+e}if(t.enableViewportFallback!=null&&t.hasOwnProperty("enableViewportFallback")&&typeof t.enableViewportFallback!="boolean")return"enableViewportFallback: boolean expected";if(t.viewportFallbackDistance!=null&&t.hasOwnProperty("viewportFallbackDistance")&&!u.isInteger(t.viewportFallbackDistance))return"viewportFallbackDistance: integer expected";if(t.imageryType!=null&&t.hasOwnProperty("imageryType")){if(!Array.isArray(t.imageryType))return"imageryType: array expected";for(var o=0;o<t.imageryType.length;++o){var e=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.verify(t.imageryType[o]);if(e)return"imageryType."+e}}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto;if(t.requirements!=null){if(typeof t.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.requirements: object expected");e.requirements=n.keyhole.dbroot.RequirementProto.fromObject(t.requirements)}if(t.alleycatUrlTemplate!=null){if(typeof t.alleycatUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.alleycatUrlTemplate: object expected");e.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.alleycatUrlTemplate)}if(t.fallbackAlleycatUrlTemplate!=null){if(typeof t.fallbackAlleycatUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.fallbackAlleycatUrlTemplate: object expected");e.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.fallbackAlleycatUrlTemplate)}if(t.metadataUrlTemplate!=null){if(typeof t.metadataUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.metadataUrlTemplate: object expected");e.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.metadataUrlTemplate)}if(t.thumbnailUrlTemplate!=null){if(typeof t.thumbnailUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.thumbnailUrlTemplate: object expected");e.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.thumbnailUrlTemplate)}if(t.kmlUrlTemplate!=null){if(typeof t.kmlUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.kmlUrlTemplate: object expected");e.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlUrlTemplate)}if(t.featuredToursUrl!=null){if(typeof t.featuredToursUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.featuredToursUrl: object expected");e.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.featuredToursUrl)}if(t.enableViewportFallback!=null&&(e.enableViewportFallback=!!t.enableViewportFallback),t.viewportFallbackDistance!=null&&(e.viewportFallbackDistance=t.viewportFallbackDistance>>>0),t.imageryType){if(!Array.isArray(t.imageryType))throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.imageryType: array expected");e.imageryType=[];for(var o=0;o<t.imageryType.length;++o){if(typeof t.imageryType[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.imageryType: object expected");e.imageryType[o]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.fromObject(t.imageryType[o])}}return e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.imageryType=[]),e.defaults&&(o.requirements=null,o.alleycatUrlTemplate=null,o.metadataUrlTemplate=null,o.thumbnailUrlTemplate=null,o.kmlUrlTemplate=null,o.featuredToursUrl=null,o.enableViewportFallback=!1,o.viewportFallbackDistance=0,o.fallbackAlleycatUrlTemplate=null),t.requirements!=null&&t.hasOwnProperty("requirements")&&(o.requirements=n.keyhole.dbroot.RequirementProto.toObject(t.requirements,e)),t.alleycatUrlTemplate!=null&&t.hasOwnProperty("alleycatUrlTemplate")&&(o.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.alleycatUrlTemplate,e)),t.metadataUrlTemplate!=null&&t.hasOwnProperty("metadataUrlTemplate")&&(o.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.metadataUrlTemplate,e)),t.thumbnailUrlTemplate!=null&&t.hasOwnProperty("thumbnailUrlTemplate")&&(o.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.thumbnailUrlTemplate,e)),t.kmlUrlTemplate!=null&&t.hasOwnProperty("kmlUrlTemplate")&&(o.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlUrlTemplate,e)),t.featuredToursUrl!=null&&t.hasOwnProperty("featuredToursUrl")&&(o.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.featuredToursUrl,e)),t.enableViewportFallback!=null&&t.hasOwnProperty("enableViewportFallback")&&(o.enableViewportFallback=t.enableViewportFallback),t.viewportFallbackDistance!=null&&t.hasOwnProperty("viewportFallbackDistance")&&(o.viewportFallbackDistance=t.viewportFallbackDistance),t.fallbackAlleycatUrlTemplate!=null&&t.hasOwnProperty("fallbackAlleycatUrlTemplate")&&(o.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.fallbackAlleycatUrlTemplate,e)),t.imageryType&&t.imageryType.length){o.imageryType=[];for(var a=0;a<t.imageryType.length;++a)o.imageryType[a]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.toObject(t.imageryType[a],e)}return o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.FilmstripConfigProto"},l.AlleycatImageryTypeProto=(function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.imageryTypeId=0,r.prototype.imageryTypeLabel="",r.prototype.metadataUrlTemplate=null,r.prototype.thumbnailUrlTemplate=null,r.prototype.kmlUrlTemplate=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.imageryTypeId=e.int32();break}case 2:{p.imageryTypeLabel=e.string();break}case 3:{p.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 4:{p.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 5:{p.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.imageryTypeId!=null&&e.hasOwnProperty("imageryTypeId")&&!u.isInteger(e.imageryTypeId))return"imageryTypeId: integer expected";if(e.imageryTypeLabel!=null&&e.hasOwnProperty("imageryTypeLabel")&&!u.isString(e.imageryTypeLabel))return"imageryTypeLabel: string expected";if(e.metadataUrlTemplate!=null&&e.hasOwnProperty("metadataUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.metadataUrlTemplate);if(o)return"metadataUrlTemplate."+o}if(e.thumbnailUrlTemplate!=null&&e.hasOwnProperty("thumbnailUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.thumbnailUrlTemplate);if(o)return"thumbnailUrlTemplate."+o}if(e.kmlUrlTemplate!=null&&e.hasOwnProperty("kmlUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.kmlUrlTemplate);if(o)return"kmlUrlTemplate."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto)return e;var o=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto;if(e.imageryTypeId!=null&&(o.imageryTypeId=e.imageryTypeId|0),e.imageryTypeLabel!=null&&(o.imageryTypeLabel=String(e.imageryTypeLabel)),e.metadataUrlTemplate!=null){if(typeof e.metadataUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.metadataUrlTemplate: object expected");o.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.metadataUrlTemplate)}if(e.thumbnailUrlTemplate!=null){if(typeof e.thumbnailUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.thumbnailUrlTemplate: object expected");o.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.thumbnailUrlTemplate)}if(e.kmlUrlTemplate!=null){if(typeof e.kmlUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.kmlUrlTemplate: object expected");o.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.kmlUrlTemplate)}return o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.imageryTypeId=0,a.imageryTypeLabel="",a.metadataUrlTemplate=null,a.thumbnailUrlTemplate=null,a.kmlUrlTemplate=null),e.imageryTypeId!=null&&e.hasOwnProperty("imageryTypeId")&&(a.imageryTypeId=e.imageryTypeId),e.imageryTypeLabel!=null&&e.hasOwnProperty("imageryTypeLabel")&&(a.imageryTypeLabel=e.imageryTypeLabel),e.metadataUrlTemplate!=null&&e.hasOwnProperty("metadataUrlTemplate")&&(a.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.metadataUrlTemplate,o)),e.thumbnailUrlTemplate!=null&&e.hasOwnProperty("thumbnailUrlTemplate")&&(a.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.thumbnailUrlTemplate,o)),e.kmlUrlTemplate!=null&&e.hasOwnProperty("kmlUrlTemplate")&&(a.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.kmlUrlTemplate,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto"},r})(),l})(),i.StarDataProto=(function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.url=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.StarDataProto;t.pos<o;){var p=t.uint32();p>>>3===1?a.url=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32()):t.skipType(p&7)}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.url!=null&&t.hasOwnProperty("url")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.url);if(e)return"url."+e}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.StarDataProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.StarDataProto;if(t.url!=null){if(typeof t.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.StarDataProto.url: object expected");e.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.url)}return e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.url=null),t.url!=null&&t.hasOwnProperty("url")&&(o.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.url,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.StarDataProto"},l})(),i})(),c.DbRootRefProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url="",i.prototype.isCritical=!1,i.prototype.requirements=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DbRootRefProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 2:{o.url=r.string();break}case 1:{o.isCritical=r.bool();break}case 3:{o.requirements=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("url"))throw u.ProtocolError("missing required 'url'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.url))return"url: string expected";if(r.isCritical!=null&&r.hasOwnProperty("isCritical")&&typeof r.isCritical!="boolean")return"isCritical: boolean expected";if(r.requirements!=null&&r.hasOwnProperty("requirements")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirements);if(t)return"requirements."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DbRootRefProto)return r;var t=new n.keyhole.dbroot.DbRootRefProto;if(r.url!=null&&(t.url=String(r.url)),r.isCritical!=null&&(t.isCritical=!!r.isCritical),r.requirements!=null){if(typeof r.requirements!="object")throw TypeError(".keyhole.dbroot.DbRootRefProto.requirements: object expected");t.requirements=n.keyhole.dbroot.RequirementProto.fromObject(r.requirements)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isCritical=!1,e.url="",e.requirements=null),r.isCritical!=null&&r.hasOwnProperty("isCritical")&&(e.isCritical=r.isCritical),r.url!=null&&r.hasOwnProperty("url")&&(e.url=r.url),r.requirements!=null&&r.hasOwnProperty("requirements")&&(e.requirements=n.keyhole.dbroot.RequirementProto.toObject(r.requirements,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DbRootRefProto"},i})(),c.DatabaseVersionProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.quadtreeVersion=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DatabaseVersionProto;r.pos<e;){var a=r.uint32();a>>>3===1?o.quadtreeVersion=r.uint32():r.skipType(a&7)}if(!o.hasOwnProperty("quadtreeVersion"))throw u.ProtocolError("missing required 'quadtreeVersion'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.quadtreeVersion)?null:"quadtreeVersion: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DatabaseVersionProto)return r;var t=new n.keyhole.dbroot.DatabaseVersionProto;return r.quadtreeVersion!=null&&(t.quadtreeVersion=r.quadtreeVersion>>>0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.quadtreeVersion=0),r.quadtreeVersion!=null&&r.hasOwnProperty("quadtreeVersion")&&(e.quadtreeVersion=r.quadtreeVersion),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DatabaseVersionProto"},i})(),c.DbRootProto=(function(){function i(l){if(this.providerInfo=[],this.nestedFeature=[],this.styleAttribute=[],this.styleMap=[],this.translationEntry=[],this.dbrootReference=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.databaseName=null,i.prototype.imageryPresent=!0,i.prototype.protoImagery=!1,i.prototype.terrainPresent=!1,i.prototype.providerInfo=u.emptyArray,i.prototype.nestedFeature=u.emptyArray,i.prototype.styleAttribute=u.emptyArray,i.prototype.styleMap=u.emptyArray,i.prototype.endSnippet=null,i.prototype.translationEntry=u.emptyArray,i.prototype.language="en",i.prototype.version=5,i.prototype.dbrootReference=u.emptyArray,i.prototype.databaseVersion=null,i.prototype.refreshTimeout=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DbRootProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 15:{o.databaseName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 1:{o.imageryPresent=r.bool();break}case 14:{o.protoImagery=r.bool();break}case 2:{o.terrainPresent=r.bool();break}case 3:{o.providerInfo&&o.providerInfo.length||(o.providerInfo=[]),o.providerInfo.push(n.keyhole.dbroot.ProviderInfoProto.decode(r,r.uint32()));break}case 4:{o.nestedFeature&&o.nestedFeature.length||(o.nestedFeature=[]),o.nestedFeature.push(n.keyhole.dbroot.NestedFeatureProto.decode(r,r.uint32()));break}case 5:{o.styleAttribute&&o.styleAttribute.length||(o.styleAttribute=[]),o.styleAttribute.push(n.keyhole.dbroot.StyleAttributeProto.decode(r,r.uint32()));break}case 6:{o.styleMap&&o.styleMap.length||(o.styleMap=[]),o.styleMap.push(n.keyhole.dbroot.StyleMapProto.decode(r,r.uint32()));break}case 7:{o.endSnippet=n.keyhole.dbroot.EndSnippetProto.decode(r,r.uint32());break}case 8:{o.translationEntry&&o.translationEntry.length||(o.translationEntry=[]),o.translationEntry.push(n.keyhole.dbroot.StringEntryProto.decode(r,r.uint32()));break}case 9:{o.language=r.string();break}case 10:{o.version=r.int32();break}case 11:{o.dbrootReference&&o.dbrootReference.length||(o.dbrootReference=[]),o.dbrootReference.push(n.keyhole.dbroot.DbRootRefProto.decode(r,r.uint32()));break}case 13:{o.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.decode(r,r.uint32());break}case 16:{o.refreshTimeout=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.databaseName!=null&&r.hasOwnProperty("databaseName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.databaseName);if(t)return"databaseName."+t}if(r.imageryPresent!=null&&r.hasOwnProperty("imageryPresent")&&typeof r.imageryPresent!="boolean")return"imageryPresent: boolean expected";if(r.protoImagery!=null&&r.hasOwnProperty("protoImagery")&&typeof r.protoImagery!="boolean")return"protoImagery: boolean expected";if(r.terrainPresent!=null&&r.hasOwnProperty("terrainPresent")&&typeof r.terrainPresent!="boolean")return"terrainPresent: boolean expected";if(r.providerInfo!=null&&r.hasOwnProperty("providerInfo")){if(!Array.isArray(r.providerInfo))return"providerInfo: array expected";for(var e=0;e<r.providerInfo.length;++e){var t=n.keyhole.dbroot.ProviderInfoProto.verify(r.providerInfo[e]);if(t)return"providerInfo."+t}}if(r.nestedFeature!=null&&r.hasOwnProperty("nestedFeature")){if(!Array.isArray(r.nestedFeature))return"nestedFeature: array expected";for(var e=0;e<r.nestedFeature.length;++e){var t=n.keyhole.dbroot.NestedFeatureProto.verify(r.nestedFeature[e]);if(t)return"nestedFeature."+t}}if(r.styleAttribute!=null&&r.hasOwnProperty("styleAttribute")){if(!Array.isArray(r.styleAttribute))return"styleAttribute: array expected";for(var e=0;e<r.styleAttribute.length;++e){var t=n.keyhole.dbroot.StyleAttributeProto.verify(r.styleAttribute[e]);if(t)return"styleAttribute."+t}}if(r.styleMap!=null&&r.hasOwnProperty("styleMap")){if(!Array.isArray(r.styleMap))return"styleMap: array expected";for(var e=0;e<r.styleMap.length;++e){var t=n.keyhole.dbroot.StyleMapProto.verify(r.styleMap[e]);if(t)return"styleMap."+t}}if(r.endSnippet!=null&&r.hasOwnProperty("endSnippet")){var t=n.keyhole.dbroot.EndSnippetProto.verify(r.endSnippet);if(t)return"endSnippet."+t}if(r.translationEntry!=null&&r.hasOwnProperty("translationEntry")){if(!Array.isArray(r.translationEntry))return"translationEntry: array expected";for(var e=0;e<r.translationEntry.length;++e){var t=n.keyhole.dbroot.StringEntryProto.verify(r.translationEntry[e]);if(t)return"translationEntry."+t}}if(r.language!=null&&r.hasOwnProperty("language")&&!u.isString(r.language))return"language: string expected";if(r.version!=null&&r.hasOwnProperty("version")&&!u.isInteger(r.version))return"version: integer expected";if(r.dbrootReference!=null&&r.hasOwnProperty("dbrootReference")){if(!Array.isArray(r.dbrootReference))return"dbrootReference: array expected";for(var e=0;e<r.dbrootReference.length;++e){var t=n.keyhole.dbroot.DbRootRefProto.verify(r.dbrootReference[e]);if(t)return"dbrootReference."+t}}if(r.databaseVersion!=null&&r.hasOwnProperty("databaseVersion")){var t=n.keyhole.dbroot.DatabaseVersionProto.verify(r.databaseVersion);if(t)return"databaseVersion."+t}return r.refreshTimeout!=null&&r.hasOwnProperty("refreshTimeout")&&!u.isInteger(r.refreshTimeout)?"refreshTimeout: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DbRootProto)return r;var t=new n.keyhole.dbroot.DbRootProto;if(r.databaseName!=null){if(typeof r.databaseName!="object")throw TypeError(".keyhole.dbroot.DbRootProto.databaseName: object expected");t.databaseName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.databaseName)}if(r.imageryPresent!=null&&(t.imageryPresent=!!r.imageryPresent),r.protoImagery!=null&&(t.protoImagery=!!r.protoImagery),r.terrainPresent!=null&&(t.terrainPresent=!!r.terrainPresent),r.providerInfo){if(!Array.isArray(r.providerInfo))throw TypeError(".keyhole.dbroot.DbRootProto.providerInfo: array expected");t.providerInfo=[];for(var e=0;e<r.providerInfo.length;++e){if(typeof r.providerInfo[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.providerInfo: object expected");t.providerInfo[e]=n.keyhole.dbroot.ProviderInfoProto.fromObject(r.providerInfo[e])}}if(r.nestedFeature){if(!Array.isArray(r.nestedFeature))throw TypeError(".keyhole.dbroot.DbRootProto.nestedFeature: array expected");t.nestedFeature=[];for(var e=0;e<r.nestedFeature.length;++e){if(typeof r.nestedFeature[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.nestedFeature: object expected");t.nestedFeature[e]=n.keyhole.dbroot.NestedFeatureProto.fromObject(r.nestedFeature[e])}}if(r.styleAttribute){if(!Array.isArray(r.styleAttribute))throw TypeError(".keyhole.dbroot.DbRootProto.styleAttribute: array expected");t.styleAttribute=[];for(var e=0;e<r.styleAttribute.length;++e){if(typeof r.styleAttribute[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.styleAttribute: object expected");t.styleAttribute[e]=n.keyhole.dbroot.StyleAttributeProto.fromObject(r.styleAttribute[e])}}if(r.styleMap){if(!Array.isArray(r.styleMap))throw TypeError(".keyhole.dbroot.DbRootProto.styleMap: array expected");t.styleMap=[];for(var e=0;e<r.styleMap.length;++e){if(typeof r.styleMap[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.styleMap: object expected");t.styleMap[e]=n.keyhole.dbroot.StyleMapProto.fromObject(r.styleMap[e])}}if(r.endSnippet!=null){if(typeof r.endSnippet!="object")throw TypeError(".keyhole.dbroot.DbRootProto.endSnippet: object expected");t.endSnippet=n.keyhole.dbroot.EndSnippetProto.fromObject(r.endSnippet)}if(r.translationEntry){if(!Array.isArray(r.translationEntry))throw TypeError(".keyhole.dbroot.DbRootProto.translationEntry: array expected");t.translationEntry=[];for(var e=0;e<r.translationEntry.length;++e){if(typeof r.translationEntry[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.translationEntry: object expected");t.translationEntry[e]=n.keyhole.dbroot.StringEntryProto.fromObject(r.translationEntry[e])}}if(r.language!=null&&(t.language=String(r.language)),r.version!=null&&(t.version=r.version|0),r.dbrootReference){if(!Array.isArray(r.dbrootReference))throw TypeError(".keyhole.dbroot.DbRootProto.dbrootReference: array expected");t.dbrootReference=[];for(var e=0;e<r.dbrootReference.length;++e){if(typeof r.dbrootReference[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.dbrootReference: object expected");t.dbrootReference[e]=n.keyhole.dbroot.DbRootRefProto.fromObject(r.dbrootReference[e])}}if(r.databaseVersion!=null){if(typeof r.databaseVersion!="object")throw TypeError(".keyhole.dbroot.DbRootProto.databaseVersion: object expected");t.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.fromObject(r.databaseVersion)}return r.refreshTimeout!=null&&(t.refreshTimeout=r.refreshTimeout|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.providerInfo=[],e.nestedFeature=[],e.styleAttribute=[],e.styleMap=[],e.translationEntry=[],e.dbrootReference=[]),t.defaults&&(e.imageryPresent=!0,e.terrainPresent=!1,e.endSnippet=null,e.language="en",e.version=5,e.databaseVersion=null,e.protoImagery=!1,e.databaseName=null,e.refreshTimeout=0),r.imageryPresent!=null&&r.hasOwnProperty("imageryPresent")&&(e.imageryPresent=r.imageryPresent),r.terrainPresent!=null&&r.hasOwnProperty("terrainPresent")&&(e.terrainPresent=r.terrainPresent),r.providerInfo&&r.providerInfo.length){e.providerInfo=[];for(var o=0;o<r.providerInfo.length;++o)e.providerInfo[o]=n.keyhole.dbroot.ProviderInfoProto.toObject(r.providerInfo[o],t)}if(r.nestedFeature&&r.nestedFeature.length){e.nestedFeature=[];for(var o=0;o<r.nestedFeature.length;++o)e.nestedFeature[o]=n.keyhole.dbroot.NestedFeatureProto.toObject(r.nestedFeature[o],t)}if(r.styleAttribute&&r.styleAttribute.length){e.styleAttribute=[];for(var o=0;o<r.styleAttribute.length;++o)e.styleAttribute[o]=n.keyhole.dbroot.StyleAttributeProto.toObject(r.styleAttribute[o],t)}if(r.styleMap&&r.styleMap.length){e.styleMap=[];for(var o=0;o<r.styleMap.length;++o)e.styleMap[o]=n.keyhole.dbroot.StyleMapProto.toObject(r.styleMap[o],t)}if(r.endSnippet!=null&&r.hasOwnProperty("endSnippet")&&(e.endSnippet=n.keyhole.dbroot.EndSnippetProto.toObject(r.endSnippet,t)),r.translationEntry&&r.translationEntry.length){e.translationEntry=[];for(var o=0;o<r.translationEntry.length;++o)e.translationEntry[o]=n.keyhole.dbroot.StringEntryProto.toObject(r.translationEntry[o],t)}if(r.language!=null&&r.hasOwnProperty("language")&&(e.language=r.language),r.version!=null&&r.hasOwnProperty("version")&&(e.version=r.version),r.dbrootReference&&r.dbrootReference.length){e.dbrootReference=[];for(var o=0;o<r.dbrootReference.length;++o)e.dbrootReference[o]=n.keyhole.dbroot.DbRootRefProto.toObject(r.dbrootReference[o],t)}return r.databaseVersion!=null&&r.hasOwnProperty("databaseVersion")&&(e.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.toObject(r.databaseVersion,t)),r.protoImagery!=null&&r.hasOwnProperty("protoImagery")&&(e.protoImagery=r.protoImagery),r.databaseName!=null&&r.hasOwnProperty("databaseName")&&(e.databaseName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.databaseName,t)),r.refreshTimeout!=null&&r.hasOwnProperty("refreshTimeout")&&(e.refreshTimeout=r.refreshTimeout),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DbRootProto"},i})(),c.EncryptedDbRootProto=(function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.encryptionType=0,i.prototype.encryptionData=u.newBuffer([]),i.prototype.dbrootData=u.newBuffer([]),i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.EncryptedDbRootProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.encryptionType=r.int32();break}case 2:{o.encryptionData=r.bytes();break}case 3:{o.dbrootData=r.bytes();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.encryptionType!=null&&r.hasOwnProperty("encryptionType")&&r.encryptionType!==0?"encryptionType: enum value expected":r.encryptionData!=null&&r.hasOwnProperty("encryptionData")&&!(r.encryptionData&&typeof r.encryptionData.length=="number"||u.isString(r.encryptionData))?"encryptionData: buffer expected":r.dbrootData!=null&&r.hasOwnProperty("dbrootData")&&!(r.dbrootData&&typeof r.dbrootData.length=="number"||u.isString(r.dbrootData))?"dbrootData: buffer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.EncryptedDbRootProto)return r;var t=new n.keyhole.dbroot.EncryptedDbRootProto;switch(r.encryptionType){case"ENCRYPTION_XOR":case 0:t.encryptionType=0;break}return r.encryptionData!=null&&(typeof r.encryptionData=="string"?u.base64.decode(r.encryptionData,t.encryptionData=u.newBuffer(u.base64.length(r.encryptionData)),0):r.encryptionData.length>=0&&(t.encryptionData=r.encryptionData)),r.dbrootData!=null&&(typeof r.dbrootData=="string"?u.base64.decode(r.dbrootData,t.dbrootData=u.newBuffer(u.base64.length(r.dbrootData)),0):r.dbrootData.length>=0&&(t.dbrootData=r.dbrootData)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.encryptionType=t.enums===String?"ENCRYPTION_XOR":0,t.bytes===String?e.encryptionData="":(e.encryptionData=[],t.bytes!==Array&&(e.encryptionData=u.newBuffer(e.encryptionData))),t.bytes===String?e.dbrootData="":(e.dbrootData=[],t.bytes!==Array&&(e.dbrootData=u.newBuffer(e.dbrootData)))),r.encryptionType!=null&&r.hasOwnProperty("encryptionType")&&(e.encryptionType=t.enums===String?n.keyhole.dbroot.EncryptedDbRootProto.EncryptionType[r.encryptionType]:r.encryptionType),r.encryptionData!=null&&r.hasOwnProperty("encryptionData")&&(e.encryptionData=t.bytes===String?u.base64.encode(r.encryptionData,0,r.encryptionData.length):t.bytes===Array?Array.prototype.slice.call(r.encryptionData):r.encryptionData),r.dbrootData!=null&&r.hasOwnProperty("dbrootData")&&(e.dbrootData=t.bytes===String?u.base64.encode(r.dbrootData,0,r.dbrootData.length):t.bytes===Array?Array.prototype.slice.call(r.dbrootData):r.dbrootData),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.EncryptedDbRootProto"},i.EncryptionType=(function(){var l={},r=Object.create(l);return r[l[0]="ENCRYPTION_XOR"]=0,r})(),i})(),c})(),b})(),n.keyhole.dbroot};})(); diff --git a/cesium/ThirdParty/wasm_splats_bg.wasm b/cesium/ThirdParty/wasm_splats_bg.wasm new file mode 100644 index 00000000..9e46cc4c Binary files /dev/null and b/cesium/ThirdParty/wasm_splats_bg.wasm differ diff --git a/cesium/ThirdParty/zip-module.wasm b/cesium/ThirdParty/zip-module.wasm new file mode 100755 index 00000000..9c64a0bc Binary files /dev/null and b/cesium/ThirdParty/zip-module.wasm differ diff --git a/cesium/Widgets/Animation/Animation.css b/cesium/Widgets/Animation/Animation.css new file mode 100644 index 00000000..0f18c52e --- /dev/null +++ b/cesium/Widgets/Animation/Animation.css @@ -0,0 +1,127 @@ +/* packages/widgets/Source/Animation/Animation.css */ +.cesium-animation-theme { + visibility: hidden; + display: block; + position: absolute; + z-index: -100; +} +.cesium-animation-themeNormal { + color: #222; +} +.cesium-animation-themeHover { + color: #4488b0; +} +.cesium-animation-themeSelect { + color: #242; +} +.cesium-animation-themeDisabled { + color: #333; +} +.cesium-animation-themeKnob { + color: #222; +} +.cesium-animation-themePointer { + color: #2e2; +} +.cesium-animation-themeSwoosh { + color: #8ac; +} +.cesium-animation-themeSwooshHover { + color: #aef; +} +.cesium-animation-svgText { + fill: #edffff; + font-family: Sans-Serif; + font-size: 15px; + text-anchor: middle; +} +.cesium-animation-blank { + fill: #000; + fill-opacity: 0.01; + stroke: none; +} +.cesium-animation-rectButton { + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-rectButton .cesium-animation-buttonGlow { + fill: #fff; + stroke: none; + display: none; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonGlow { + display: block; +} +.cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #edffff; +} +.cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #aef; +} +.cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-animation-buttonDisabled { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #555; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonGlow { + display: none; +} +.cesium-animation-buttonToggled .cesium-animation-buttonGlow { + display: block; + fill: #2e2; +} +.cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-shuttleRingG { + cursor: pointer; +} +.cesium-animation-shuttleRingPointer { + cursor: pointer; +} +.cesium-animation-shuttleRingPausePointer { + cursor: pointer; +} +.cesium-animation-shuttleRingBack { + fill: #181818; + fill-opacity: 0.8; + stroke: #333; + stroke-width: 1.2; +} +.cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; + stroke-width: 3; + stroke-opacity: 0.2; + stroke-linecap: round; +} +.cesium-animation-knobOuter { + cursor: pointer; + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-knobInner { + cursor: pointer; +} diff --git a/cesium/Widgets/Animation/lighter.css b/cesium/Widgets/Animation/lighter.css new file mode 100644 index 00000000..466ddb60 --- /dev/null +++ b/cesium/Widgets/Animation/lighter.css @@ -0,0 +1,70 @@ +/* packages/widgets/Source/Animation/lighter.css */ +.cesium-lighter .cesium-animation-themeNormal { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeHover { + color: #abd6ff; +} +.cesium-lighter .cesium-animation-themeSelect { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeDisabled { + color: #efefef; +} +.cesium-lighter .cesium-animation-themeKnob { + color: #e1e2e3; +} +.cesium-lighter .cesium-animation-themePointer { + color: #fa5; +} +.cesium-lighter .cesium-animation-themeSwoosh { + color: #ace; +} +.cesium-lighter .cesium-animation-themeSwooshHover { + color: #bdf; +} +.cesium-lighter .cesium-animation-svgText { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow { + fill: #ffaa2a; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #d3d3d3; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-lighter .cesium-animation-shuttleRingBack { + fill: #fafafa; + fill-opacity: 1; + stroke: #aeaeae; + stroke-width: 1.2; +} +.cesium-lighter .cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; +} +.cesium-lighter .cesium-animation-knobOuter { + stroke: #a5a5a5; +} diff --git a/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css b/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css new file mode 100644 index 00000000..ac37d16e --- /dev/null +++ b/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css @@ -0,0 +1,108 @@ +/* packages/widgets/Source/BaseLayerPicker/BaseLayerPicker.css */ +.cesium-baseLayerPicker-selected { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: none; +} +.cesium-baseLayerPicker-dropDown { + display: block; + position: absolute; + box-sizing: content-box; + top: auto; + right: 0; + width: 320px; + max-height: 500px; + margin-top: 5px; + background-color: rgba(38, 38, 38, 0.75); + border: 1px solid #444; + padding: 6px; + overflow: auto; + border-radius: 10px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + transform: translate(0, -20%); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-baseLayerPicker-dropDown-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-baseLayerPicker-sectionTitle { + display: block; + font-family: sans-serif; + font-size: 16pt; + text-align: left; + color: #edffff; + margin-bottom: 4px; +} +.cesium-baseLayerPicker-choices { + margin-bottom: 5px; +} +.cesium-baseLayerPicker-categoryTitle { + color: #edffff; + font-size: 11pt; +} +.cesium-baseLayerPicker-choices { + display: block; + border: 1px solid #888; + border-radius: 5px; + padding: 5px 0; +} +.cesium-baseLayerPicker-item { + display: inline-block; + vertical-align: top; + margin: 2px 5px; + width: 64px; + text-align: center; + cursor: pointer; +} +.cesium-baseLayerPicker-itemLabel { + display: block; + font-family: sans-serif; + font-size: 8pt; + text-align: center; + vertical-align: middle; + color: #edffff; + cursor: pointer; + word-wrap: break-word; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel, +.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel { + text-decoration: underline; +} +.cesium-baseLayerPicker-itemIcon { + display: inline-block; + position: relative; + width: inherit; + height: auto; + background-size: 100% 100%; + border: solid 1px #444; + border-radius: 9px; + color: #edffff; + margin: 0; + padding: 0; + cursor: pointer; + box-sizing: border-box; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #fff; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(189, 236, 248); +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(189, 236, 248); +} diff --git a/cesium/Widgets/BaseLayerPicker/lighter.css b/cesium/Widgets/BaseLayerPicker/lighter.css new file mode 100644 index 00000000..d43cd3d9 --- /dev/null +++ b/cesium/Widgets/BaseLayerPicker/lighter.css @@ -0,0 +1,22 @@ +/* packages/widgets/Source/BaseLayerPicker/lighter.css */ +.cesium-lighter .cesium-baseLayerPicker-itemIcon { + border-color: #759dc0; +} +.cesium-lighter .cesium-baseLayerPicker-dropDown { + background-color: rgba(240, 240, 240, 0.75); +} +.cesium-lighter .cesium-baseLayerPicker-sectionTitle { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-itemLabel { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #000; +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(0, 61, 168); +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(0, 61, 168); +} diff --git a/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css b/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css new file mode 100644 index 00000000..5b6295b4 --- /dev/null +++ b/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css @@ -0,0 +1,102 @@ +/* packages/widgets/Source/Cesium3DTilesInspector/Cesium3DTilesInspector.css */ +ul.cesium-cesiumInspector-statistics { + margin: 0; + padding-top: 3px; + padding-bottom: 3px; +} +ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics { + border-top: 1px solid #aaa; +} +.cesium-cesiumInspector-slider { + margin-top: 5px; +} +.cesium-cesiumInspector-slider input[type=number] { + text-align: left; + background-color: #222; + outline: none; + border: 1px solid #444; + color: #edffff; + width: 100px; + border-radius: 3px; + padding: 1px; + margin-left: 10px; + cursor: auto; +} +.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button, +.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.cesium-cesiumInspector-slider input[type=range] { + margin-left: 5px; + vertical-align: middle; +} +.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor { + display: none; +} +.cesium-cesiumInspector-styleEditor { + padding: 10px; + border-radius: 5px; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; +} +.cesium-cesiumInspector-styleEditor textarea { + width: 100%; + height: 300px; + background: transparent; + color: #edffff; + border: none; + padding: 0; + white-space: pre; + overflow-wrap: normal; + overflow-x: auto; +} +.cesium-3DTilesInspector { + width: 300px; + pointer-events: all; +} +.cesium-3DTilesInspector-statistics { + font-size: 11px; +} +.cesium-3DTilesInspector-disabledElementsInfo { + margin: 5px 0 0 0; + padding: 0 0 0 20px; + color: #eed202; +} +.cesium-3DTilesInspector div, +.cesium-3DTilesInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-cesiumInspector-error { + color: #ff9e9e; + overflow: auto; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} +input.cesium-cesiumInspector-url { + overflow: hidden; + white-space: nowrap; + overflow-x: scroll; + background-color: transparent; + color: white; + outline: none; + border: none; + height: 1em; + width: 100%; +} +.cesium-cesiumInspector .field-group { + display: table; +} +.cesium-cesiumInspector .field-group > label { + display: table-cell; + font-weight: bold; +} +.cesium-cesiumInspector .field-group > .field { + display: table-cell; + width: 100%; +} diff --git a/cesium/Widgets/CesiumInspector/CesiumInspector.css b/cesium/Widgets/CesiumInspector/CesiumInspector.css new file mode 100644 index 00000000..aeb7700e --- /dev/null +++ b/cesium/Widgets/CesiumInspector/CesiumInspector.css @@ -0,0 +1,113 @@ +/* packages/widgets/Source/CesiumInspector/CesiumInspector.css */ +.cesium-cesiumInspector { + border-radius: 5px; + transition: width ease-in-out 0.25s; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; + color: #edffff; + display: inline-block; + position: relative; + padding: 4px 12px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; +} +.cesium-cesiumInspector-button { + text-align: center; + font-size: 11pt; +} +.cesium-cesiumInspector-visible .cesium-cesiumInspector-button { + border-bottom: 1px solid #aaa; + padding-bottom: 3px; +} +.cesium-cesiumInspector input:enabled, +.cesium-cesiumInspector-button { + cursor: pointer; +} +.cesium-cesiumInspector-visible { + width: 185px; + height: auto; +} +.cesium-cesiumInspector-hidden { + width: 122px; + height: 17px; +} +.cesium-cesiumInspector-sectionContent { + max-height: 600px; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent { + max-height: 0; + padding: 0 !important; + overflow: hidden; +} +.cesium-cesiumInspector-dropDown { + margin: 5px 0; + font-family: sans-serif; + font-size: 10pt; + width: 185px; +} +.cesium-cesiumInspector-frustumStatistics { + padding-left: 10px; + padding: 5px; + background-color: rgba(80, 80, 80, 0.75); +} +.cesium-cesiumInspector-pickButton { + background-color: rgba(0, 0, 0, 0.3); + border: 1px solid #444; + color: #edffff; + border-radius: 5px; + padding: 3px 7px; + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + margin: 0 auto; +} +.cesium-cesiumInspector-pickButton:focus { + outline: none; +} +.cesium-cesiumInspector-pickButton:active, +.cesium-cesiumInspector-pickButtonHighlight { + color: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-cesiumInspector-center { + text-align: center; +} +.cesium-cesiumInspector-sectionHeader { + font-weight: bold; + font-size: 10pt; + margin: 0; + cursor: pointer; +} +.cesium-cesiumInspector-pickSection { + border: 1px solid #aaa; + border-radius: 5px; + padding: 3px; + margin-bottom: 5px; +} +.cesium-cesiumInspector-sectionContent { + margin-bottom: 10px; + transition: max-height 0.25s; +} +.cesium-cesiumInspector-tileText { + padding-bottom: 10px; + border-bottom: 1px solid #aaa; +} +.cesium-cesiumInspector-relativeText { + padding-top: 10px; +} +.cesium-cesiumInspector-sectionHeader::before { + margin-right: 5px; + content: "-"; + width: 1ch; + display: inline-block; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader::before { + content: "+"; +} diff --git a/cesium/Widgets/CesiumWidget/CesiumWidget.css b/cesium/Widgets/CesiumWidget/CesiumWidget.css new file mode 100644 index 00000000..0763b649 --- /dev/null +++ b/cesium/Widgets/CesiumWidget/CesiumWidget.css @@ -0,0 +1,119 @@ +.cesium-widget { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.cesium-widget, +.cesium-widget canvas { + width: 100%; + height: 100%; + touch-action: none; +} + +.cesium-widget-credits { + display: block; + position: absolute; + bottom: 0; + left: 0; + color: #fff; + font-size: 10px; + text-shadow: 0px 0px 2px #000000; + padding-right: 5px; +} + +.cesium-widget-errorPanel { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + text-align: center; + background: rgba(0, 0, 0, 0.7); + z-index: 99999; +} + +.cesium-widget-errorPanel:before { + display: inline-block; + vertical-align: middle; + height: 100%; + content: ""; +} + +.cesium-widget-errorPanel-content { + width: 75%; + max-width: 500px; + display: inline-block; + text-align: left; + vertical-align: middle; + border: 1px solid #510c00; + border-radius: 7px; + background-color: #f0d9d5; + font-size: 14px; + color: #510c00; +} + +.cesium-widget-errorPanel-content.expanded { + max-width: 75%; +} + +.cesium-widget-errorPanel-header { + font-size: 18px; + font-family: "Open Sans", Verdana, Geneva, sans-serif; + background: #d69d93; + border-bottom: 2px solid #510c00; + padding-bottom: 10px; + border-radius: 3px 3px 0 0; + padding: 15px; +} + +.cesium-widget-errorPanel-scroll { + overflow: auto; + font-family: "Open Sans", Verdana, Geneva, sans-serif; + white-space: pre-wrap; + padding: 0 15px; + margin: 10px 0 20px 0; +} + +.cesium-widget-errorPanel-buttonPanel { + padding: 0 15px; + margin: 10px 0 20px 0; + text-align: right; +} + +.cesium-widget-errorPanel-buttonPanel button { + border-color: #510c00; + background: #d69d93; + color: #202020; + margin: 0; +} +.cesium-widget-errorPanel-buttonPanel button:focus { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:hover { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:active { + border-color: #510c00; + background: #b17b72; + color: #510c00; +} + +.cesium-widget-errorPanel-more-details { + text-decoration: underline; + cursor: pointer; +} + +.cesium-widget-errorPanel-more-details:hover { + color: #2b0700; +} diff --git a/cesium/Widgets/CesiumWidget/lighter.css b/cesium/Widgets/CesiumWidget/lighter.css new file mode 100644 index 00000000..899e024c --- /dev/null +++ b/cesium/Widgets/CesiumWidget/lighter.css @@ -0,0 +1,14 @@ +.cesium-lighter .cesium-widget-errorPanel { + background: rgba(255, 255, 255, 0.7); +} + +.cesium-lighter .cesium-widget-errorPanel-content { + border: 1px solid #526f82; + border-radius: 7px; + background-color: white; + color: black; +} + +.cesium-lighter .cesium-widget-errorPanel-header { + color: #b87d00; +} diff --git a/cesium/Widgets/FullscreenButton/FullscreenButton.css b/cesium/Widgets/FullscreenButton/FullscreenButton.css new file mode 100644 index 00000000..fdb0a411 --- /dev/null +++ b/cesium/Widgets/FullscreenButton/FullscreenButton.css @@ -0,0 +1,8 @@ +/* packages/widgets/Source/FullscreenButton/FullscreenButton.css */ +.cesium-button.cesium-fullscreenButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} diff --git a/cesium/Widgets/Geocoder/Geocoder.css b/cesium/Widgets/Geocoder/Geocoder.css new file mode 100644 index 00000000..a0b478fc --- /dev/null +++ b/cesium/Widgets/Geocoder/Geocoder.css @@ -0,0 +1,70 @@ +/* packages/widgets/Source/Geocoder/Geocoder.css */ +.cesium-viewer-geocoderContainer .cesium-geocoder-input { + border: solid 1px #444; + background-color: rgba(40, 40, 40, 0.7); + color: white; + display: inline-block; + vertical-align: middle; + width: 0; + height: 32px; + margin: 0; + padding: 0 32px 0 0; + border-radius: 0; + box-sizing: border-box; + transition: width ease-in-out 0.25s, background-color 0.2s ease-in-out; + -webkit-appearance: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus { + border-color: #ea4; + background-color: rgba(15, 15, 15, 0.9); + box-shadow: none; + outline: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input, +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus, +.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide { + padding-left: 4px; + width: 250px; +} +.cesium-viewer-geocoderContainer .search-results { + position: absolute; + background-color: #000; + color: #eee; + overflow-y: auto; + opacity: 0.8; + width: 100%; +} +.cesium-viewer-geocoderContainer .search-results ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.cesium-viewer-geocoderContainer .search-results ul li { + font-size: 14px; + padding: 3px 10px; +} +.cesium-viewer-geocoderContainer .search-results ul li:hover { + cursor: pointer; +} +.cesium-viewer-geocoderContainer .search-results ul li.active { + background: #48b; +} +.cesium-geocoder-searchButton { + background-color: #303336; + display: inline-block; + position: absolute; + cursor: pointer; + width: 32px; + top: 1px; + right: 1px; + height: 30px; + vertical-align: middle; + fill: #edffff; +} +.cesium-geocoder-searchButton:hover { + background-color: #48b; +} diff --git a/cesium/Widgets/Geocoder/lighter.css b/cesium/Widgets/Geocoder/lighter.css new file mode 100644 index 00000000..b15c1892 --- /dev/null +++ b/cesium/Widgets/Geocoder/lighter.css @@ -0,0 +1,17 @@ +/* packages/widgets/Source/Geocoder/lighter.css */ +.cesium-lighter .cesium-geocoder-input { + border: solid 1px #759dc0; + background-color: rgba(240, 240, 240, 0.9); + color: black; +} +.cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-lighter .cesium-geocoder-searchButton { + background-color: #e2f0ff; + fill: #111; +} +.cesium-lighter .cesium-geocoder-searchButton:hover { + background-color: #a6d2ff; +} diff --git a/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css b/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css new file mode 100644 index 00000000..49b62306 --- /dev/null +++ b/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css @@ -0,0 +1,27 @@ +/* packages/widgets/Source/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css */ +.cesium-viewer-i3s-explorer ul { + list-style-type: none; +} +.cesium-viewer-i3s-explorer .layersList { + padding: 0; +} +.cesium-viewer-i3s-explorer input { + margin: 0 3px 0 0; +} +.cesium-viewer-i3s-explorer .expandItem { + cursor: pointer; + user-select: none; + width: 20px; +} +.cesium-viewer-i3s-explorer .nested, +.cesium-viewer-i3s-explorer #bsl-wrapper { + display: none; +} +.cesium-viewer-i3s-explorer .active { + display: block; +} +.cesium-viewer-i3s-explorer .li-wrapper { + display: flex; + flex-direction: row; + align-content: center; +} diff --git a/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png b/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png new file mode 100644 index 00000000..bd5976d2 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png b/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png new file mode 100644 index 00000000..46ffe9c6 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png b/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png new file mode 100644 index 00000000..286f3a05 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/azureAerial.png b/cesium/Widgets/Images/ImageryProviders/azureAerial.png new file mode 100644 index 00000000..7542b42e Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/azureAerial.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/azureRoads.png b/cesium/Widgets/Images/ImageryProviders/azureRoads.png new file mode 100644 index 00000000..80d3f297 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/azureRoads.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/bingAerial.png b/cesium/Widgets/Images/ImageryProviders/bingAerial.png new file mode 100644 index 00000000..a78a154b Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/bingAerial.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png b/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png new file mode 100644 index 00000000..4cafd40f Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/bingRoads.png b/cesium/Widgets/Images/ImageryProviders/bingRoads.png new file mode 100644 index 00000000..282d6ada Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/bingRoads.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/blueMarble.png b/cesium/Widgets/Images/ImageryProviders/blueMarble.png new file mode 100644 index 00000000..b8b5b7b1 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/blueMarble.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/earthAtNight.png b/cesium/Widgets/Images/ImageryProviders/earthAtNight.png new file mode 100644 index 00000000..45e0fc7b Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/earthAtNight.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/googleContour.png b/cesium/Widgets/Images/ImageryProviders/googleContour.png new file mode 100644 index 00000000..618cc121 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/googleContour.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/googleRoadmap.png b/cesium/Widgets/Images/ImageryProviders/googleRoadmap.png new file mode 100644 index 00000000..c0db555b Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/googleRoadmap.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/googleSatellite.png b/cesium/Widgets/Images/ImageryProviders/googleSatellite.png new file mode 100644 index 00000000..84fadbe4 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/googleSatellite.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/googleSatelliteLabels.png b/cesium/Widgets/Images/ImageryProviders/googleSatelliteLabels.png new file mode 100644 index 00000000..e2133a18 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/googleSatelliteLabels.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png b/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png new file mode 100644 index 00000000..f2eba410 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png b/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png new file mode 100644 index 00000000..30ee6dbd Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png b/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png new file mode 100644 index 00000000..6eef1fc3 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png b/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png new file mode 100644 index 00000000..e6bc3551 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png b/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png new file mode 100644 index 00000000..50271c79 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/openStreetMap.png b/cesium/Widgets/Images/ImageryProviders/openStreetMap.png new file mode 100644 index 00000000..84acdb80 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/openStreetMap.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/sentinel-2.png b/cesium/Widgets/Images/ImageryProviders/sentinel-2.png new file mode 100644 index 00000000..775fb38c Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/sentinel-2.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png b/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png new file mode 100644 index 00000000..0520e17c Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png b/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png new file mode 100644 index 00000000..1546494c Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/stamenToner.png b/cesium/Widgets/Images/ImageryProviders/stamenToner.png new file mode 100644 index 00000000..af894096 Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/stamenToner.png differ diff --git a/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png b/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png new file mode 100644 index 00000000..552130eb Binary files /dev/null and b/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png differ diff --git a/cesium/Widgets/Images/NavigationHelp/Mouse.svg b/cesium/Widgets/Images/NavigationHelp/Mouse.svg new file mode 100644 index 00000000..7fae028c --- /dev/null +++ b/cesium/Widgets/Images/NavigationHelp/Mouse.svg @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="29.6875" + height="40.625095" + viewBox="0 0 29.6875 40.625095" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="Mouse.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="747" + inkscape:window-height="596" + id="namedview17" + showgrid="false" + inkscape:zoom="1.84375" + inkscape:cx="-37.919388" + inkscape:cy="92.305679" + inkscape:window-x="266" + inkscape:window-y="72" + inkscape:window-maximized="0" + inkscape:current-layer="Layer_1" + inkscape:snap-center="false" + inkscape:snap-page="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3" + transform="translate(-17.15625,-19.531154)"> + <g + id="g5" + style="fill:#4d4d4d;stroke:#4d4d4d"> + <path + d="M 31.9335,20.041 C 24.639,20.034 17.653,20.318 17.653,44.617 c 0,10.951 8.799,15.032 14.347,15.032 5.545,0 14.347,-4.081 14.347,-15.032 0,-24.27 -7.119,-24.569 -14.4135,-24.576 z m 0.7515,1.358 c 5.643,0.012 10.927,0.236 12.063,16.153 -3.86,1.805 -7.916,2.765 -12.063,2.86 l 0,-2.966 c 0.845,-0.162 1.481,-0.909 1.481,-1.782 l 0,-8.956 c 0,-0.876 -0.637,-1.621 -1.481,-1.784 z m -1.027,4.855 0.685,0 c 0.249,0 0.453,0.205 0.453,0.454 l 0,8.956 c 0,0.249 -0.204,0.449 -0.453,0.449 l -0.685,0 c -0.249,0 -0.452,-0.2 -0.452,-0.449 l 0,-8.956 c 0,-0.249 0.203,-0.454 0.452,-0.454 z m -0.345,-4.855 0,3.525 c -0.845,0.163 -1.479,0.91 -1.479,1.784 l 0,8.956 c 0,0.873 0.634,1.62 1.479,1.782 l 0,2.966 C 25.002,40.264 20.408,38.16 19.25,37.573 20.381,21.633 25.668,21.411 31.313,21.399 z M 32,58.274 c -5.016,0 -12.976,-3.707 -12.976,-13.658 0,-1.983 0.045,-3.853 0.134,-5.563 2.003,0.929 6.696,2.74 12.868,2.74 4.394,0 8.704,-0.934 12.813,-2.771 0.089,1.718 0.135,3.6 0.135,5.595 0,9.95 -7.958,13.657 -12.974,13.657 z" + id="path7" + style="fill:#4d4d4d;stroke:#4d4d4d" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssscccccssccsssssssssccssccccsscscss" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /></g> +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644;stroke-opacity:1" + d="M 11.584306,20.532528 C 9.1265112,20.247533 6.2927846,19.555647 4.1047676,18.706316 c -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.5226316 4.304477,-8.0618496 9.1542404,-8.0618496 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.5275241 -0.422157,5.7217066 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3766" + inkscape:connector-curvature="0" /></svg> \ No newline at end of file diff --git a/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg b/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg new file mode 100644 index 00000000..0c49c15f --- /dev/null +++ b/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseLeft.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="-10.305085" + inkscape:cy="32" + inkscape:window-x="104" + inkscape:window-y="136" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="fill:#4d4d4d;stroke:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="fill:#4d4d4d;stroke:#4d4d4d" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /></g> +<path + style="fill:#66CCFF;stroke:#66CCFF;stroke-width:0.27118643999999997" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3766" + inkscape:connector-curvature="0" /></svg> \ No newline at end of file diff --git a/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg b/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg new file mode 100644 index 00000000..9dd533d5 --- /dev/null +++ b/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseMiddle.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="-10.305085" + inkscape:cy="32" + inkscape:window-x="31" + inkscape:window-y="15" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="stroke:#4d4d4d;fill:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="stroke:#4d4d4d;fill:#4d4d4d" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118643999999997" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3778" + inkscape:connector-curvature="0" /><path + style="fill:#ffd800;stroke:#ffd800;stroke-width:0.33870965" + d="m 31.356243,35.809264 c -0.164314,-0.103856 -0.298753,-2.215682 -0.298753,-4.692945 0,-3.956026 0.08644,-4.52508 0.710296,-4.676395 0.390663,-0.09475 0.87474,-0.06834 1.075729,0.0587 0.200991,0.127038 0.312719,2.28036 0.248288,4.785159 -0.09927,3.859122 -0.217853,4.566401 -0.776977,4.634247 -0.362909,0.04404 -0.79427,-0.0049 -0.958583,-0.108765 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /></g> +</svg> \ No newline at end of file diff --git a/cesium/Widgets/Images/NavigationHelp/MouseRight.svg b/cesium/Widgets/Images/NavigationHelp/MouseRight.svg new file mode 100644 index 00000000..2662ad18 --- /dev/null +++ b/cesium/Widgets/Images/NavigationHelp/MouseRight.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseRight.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="32" + inkscape:cy="32" + inkscape:window-x="31" + inkscape:window-y="15" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="stroke:#4d4d4d;fill:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="stroke:#4d4d4d;fill:#4d4d4d" /> + </g> + + +<path + style="fill:#65FD00;stroke:#65FD00;stroke-width:0.27118643999999997" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3778" + inkscape:connector-curvature="0" /></g> +</svg> \ No newline at end of file diff --git a/cesium/Widgets/Images/NavigationHelp/Touch.svg b/cesium/Widgets/Images/NavigationHelp/Touch.svg new file mode 100644 index 00000000..e682b301 --- /dev/null +++ b/cesium/Widgets/Images/NavigationHelp/Touch.svg @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.664284" + height="128.25087" + viewBox="0 0 76.664283 128.25086" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="Touch.svg"><metadata + id="metadata3468"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3466" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="920" + inkscape:window-height="780" + id="namedview3464" + showgrid="false" + inkscape:zoom="1.7688899" + inkscape:cx="-0.07794217" + inkscape:cy="94.239301" + inkscape:window-x="1529" + inkscape:window-y="186" + inkscape:window-maximized="0" + inkscape:current-layer="g3428" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3428" + transform="translate(-7.9878665e-4,-5.1661327)"> + + <path + d="M 76.151,80.896 C 77.465,66.89 62.145,65.577 62.145,65.577 57.771,52.885 46.39,59.45 46.39,59.45 40.701,46.758 29.322,55.511 29.322,55.511 27.912,55.092 25.613,11.796 24.414,11.604 23.44,7.068 14.011,-1.728 12.511,14.772 c 0,36.5 -1.135,47.304 -1.135,47.304 C 9.188,67.328 5.31,80.458 5.31,80.458 -3.006,89.649 0.933,96.214 0.933,96.214 c 7.002,12.255 21.385,28.449 21.385,28.449 6.129,5.252 2.627,8.316 2.627,8.316 l 42.455,0.438 2.334,-7.878 c 9.628,-18.382 6.417,-44.643 6.417,-44.643 z" + id="path3432" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccc" + style="fill:#ffffff;fill-opacity:1" /> +</g> +<g + id="g3434" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3436" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3438" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3440" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3442" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3444" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3446" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3448" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3450" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3452" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3454" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3456" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3458" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3460" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3462" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +</svg> \ No newline at end of file diff --git a/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg b/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg new file mode 100644 index 00000000..f0509e85 --- /dev/null +++ b/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.664284" + height="133.41701" + viewBox="0 0 76.664283 133.417" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchDrag.svg"><metadata + id="metadata3468"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3466" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="920" + inkscape:window-height="780" + id="namedview3464" + showgrid="false" + inkscape:zoom="1.7688899" + inkscape:cx="-0.077942171" + inkscape:cy="94.239298" + inkscape:window-x="161" + inkscape:window-y="225" + inkscape:window-maximized="0" + inkscape:current-layer="g3428" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3428" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="M 18.653,0 C 12.359,0 7.258,5.102 7.258,11.395 c 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 C 30.048,5.102 24.946,0 18.653,0 z m 0,20.43 c -4.989,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.047,-9.035 9.036,-9.035 4.989,0 9.035,4.046 9.035,9.035 0,4.99 -4.045,9.036 -9.035,9.036 z" + id="path3430" + inkscape:connector-curvature="0" /> + <path + d="M 76.151,80.896 C 77.465,66.89 62.145,65.577 62.145,65.577 57.771,52.885 46.39,59.45 46.39,59.45 40.701,46.758 29.322,55.511 29.322,55.511 27.912,55.092 25.613,11.796 24.414,11.604 23.44,7.068 14.011,-1.728 12.511,14.772 c 0,36.5 -1.135,47.304 -1.135,47.304 C 9.188,67.328 5.31,80.458 5.31,80.458 -3.006,89.649 0.933,96.214 0.933,96.214 c 7.002,12.255 21.385,28.449 21.385,28.449 6.129,5.252 2.627,8.316 2.627,8.316 l 42.455,0.438 2.334,-7.878 c 9.628,-18.382 6.417,-44.643 6.417,-44.643 z" + id="path3432" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccc" + style="fill:#ffffff;fill-opacity:1" /> +<path + d="m 65.247258,98.823749 c -0.681067,0.71969 -7.149935,7.376421 -7.149935,7.376421 0,0 -0.86404,0.92222 -0.86404,-0.29705 0.0013,-1.22468 0.0013,-3.17039 0.0013,-3.17039 0,0 -0.498094,0.003 -1.261753,0.002 -2.35324,0.002 -6.936466,0.002 -8.692502,0.002 0,0 -0.07751,-0.007 -0.162642,-0.0472 0,0.0378 0,0.0972 0,0.13232 0.01652,0.0891 0.0013,0.16068 0,0.16608 0,0.0149 0,0.0419 0,0.0554 0,0 0.01779,0.077 0,0.17013 0,2.02673 0,6.49066 0,8.99672 0.0013,0.90332 0,1.49203 0,1.49203 0,0 2.283354,0.002 3.229986,0 0.942821,0 0.07751,0.87225 0.07751,0.87225 l -7.121981,7.36157 c 0,0 -0.470139,0.5833 -0.963151,0.0607 -0.677255,-0.72374 -6.941548,-7.59515 -6.941548,-7.59515 0,0 -0.867853,-0.91952 0.280812,-0.91952 1.151207,0.002 2.983481,0.002 2.983481,0.002 0,0 -0.0026,-0.52929 -0.0013,-1.34079 -0.0013,-2.50067 -0.0013,-7.37102 -0.0013,-9.23572 l 0,-0.004 c 0,-0.0567 0,-0.14582 0,-0.21333 -0.08259,0.0392 -0.15883,0.0459 -0.15883,0.0459 -1.756036,0 -6.339262,0 -8.696314,-0.002 -0.759847,0.002 -1.260482,0 -1.260482,0 0,0 0.0026,1.94706 0.0026,3.17039 -0.0013,1.21793 -0.864041,0.29975 -0.864041,0.29975 0,0 -6.467597,-6.655381 -7.147393,-7.377761 -0.493012,-0.52525 0.05464,-1.02484 0.05464,-1.02484 l 6.927571,-7.566801 c 0,0 0.82338,-0.92357 0.82211,0.08236 0.0026,1.004586 0.0026,3.432334 0.0026,3.432334 0,0 0.552732,-0.0014 1.402796,-0.0041 2.439643,0.0041 6.872933,0.0027 8.678524,0.0014 0,0 0.116899,-0.03106 0.23634,0.027 0,-4.084505 0,-8.204115 0.0013,-9.436893 -0.0013,-0.807449 0,-1.339448 0,-1.339448 0,0 -1.832274,0.0027 -2.983481,0.0027 -1.146124,-0.0014 -0.280813,-0.918169 -0.280813,-0.918169 0,0 6.261752,-6.872771 6.942819,-7.596505 0.494283,-0.522547 0.964422,0.05806 0.964422,0.05806 l 7.12071,7.361561 c 0,0 0.869123,0.874963 -0.07624,0.872261 -0.945362,0.0027 -3.229987,0.0027 -3.229987,0.0027 0,0 0.0013,0.587358 0.0038,1.492025 -0.0013,1.284087 -0.0026,5.419901 -0.0026,9.503056 0.120712,-0.06211 0.240153,-0.02835 0.240153,-0.02835 1.804319,0 6.237609,0 8.675982,0 0.851334,-0.0014 1.404066,0 1.404066,0 0,0 0.0013,-2.426399 0,-3.430985 0,-1.003235 0.820838,-0.08236 0.820838,-0.08236 l 6.927572,7.566803 c 0,0.001 0.546378,0.50094 0.05845,1.02484 z" + id="path3238" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccccccsscccccccccccccccccccccccccccccccc" + style="fill:#66ccff;fill-opacity:1" /></g> +<g + id="g3434" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3436" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3438" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3440" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3442" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3444" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3446" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3448" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3450" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3452" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3454" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3456" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3458" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3460" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3462" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +</svg> \ No newline at end of file diff --git a/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg b/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg new file mode 100644 index 00000000..fe968ff4 --- /dev/null +++ b/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="99.001816" + height="101.57817" + viewBox="0 0 99.001814 101.57817" + enable-background="new 0 0 100.775 118.638" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchRotate.svg"><metadata + id="metadata3382"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3380" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1105" + inkscape:window-height="739" + id="namedview3378" + showgrid="false" + inkscape:zoom="1.9873603" + inkscape:cx="11.856691" + inkscape:cy="15.112094" + inkscape:window-x="67" + inkscape:window-y="152" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + +<path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 48.832974,0 c -5.85006,0 -10.591269,4.862311 -10.591269,10.85967 0,5.997358 4.742138,10.859669 10.592198,10.859669 5.849132,0 10.59127,-4.862311 10.59127,-10.859669 C 59.42425,4.862311 54.682106,0 48.832974,0 z m 0,19.47021 c -4.637107,0 -8.398657,-3.855921 -8.398657,-8.611493 0,-4.754621 3.76155,-8.610543 8.398657,-8.610543 4.637107,0 8.397729,3.855922 8.397729,8.610543 0,4.755572 -3.759691,8.611493 -8.397729,8.611493 z" + id="path3430" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 27.154761,39.321738 c -5.457398,0 -9.88037,4.703155 -9.88037,10.504205 0,5.801049 4.423839,10.504204 9.881237,10.504204 5.456532,0 9.880371,-4.703155 9.880371,-10.504204 -8.67e-4,-5.80105 -4.424707,-10.504205 -9.881238,-10.504205 z m 0,18.8329 c -4.325859,0 -7.834929,-3.729707 -7.834929,-8.329617 0,-4.598989 3.50907,-8.328696 7.834929,-8.328696 4.32586,0 7.834063,3.729707 7.834063,8.328696 0,4.59991 -3.507336,8.329617 -7.834063,8.329617 z" + id="path3430-5" /><path + d="M 93.394891,94.930552 91.5074,101.57817 52.728925,101.21032 c 8.08e-4,-8.5e-4 2.829619,-2.585988 -2.124439,-7.016318 0,0 -10.822746,-5.22596 -18.506953,-18.0968 0,0 -6.310236,-6.742109 -6.091889,-9.206596 -0.583067,-4.408398 -1.209805,-6.954724 -1.715239,-8.534999 -1.063849,-4.039774 -1.553525,-2.844172 -1.553525,-7.228104 2.452812,-14.333817 10.869455,1.810623 12.764445,5.488368 0,0 6.305384,7.578229 9.063029,9.283373 8.851152,-2.291524 3.039071,-22.109494 3.660956,-23.668675 0,0 -1.25024,-10.043558 -2.822341,-23.064577 -3.9949,-15.561935 8.286796,-19.626706 11.636292,-3.093053 1.545414,7.344522 3.686834,19.52689 4.483397,19.774098 0,0 8.395048,-7.385018 12.995707,3.323385 0,0 9.202125,-5.538975 12.741777,5.170273 0,0 12.387573,1.10695 11.326563,12.923992 0,0 2.595085,22.156743 -5.191814,37.665865 z" + id="path3376" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccc" + style="fill:#ffffff" /><path + d="m 36.857901,10.534807 -5.731265,12.511815 c 0,0 -0.666487,1.516584 -1.19043,0.316343 -0.52908,-1.19559 -1.800413,-4.092683 -1.800413,-4.092683 0,0 -0.774356,0.279126 -1.962218,0.711771 -3.412049,1.225827 -9.61846,3.462323 -12.145716,4.370646 0,0 -0.609983,0.412873 -1.019633,-0.532666 -0.419926,-0.944375 -3.7806092,-8.602891 -4.0798222,-9.279772 -0.294076,-0.674552 0.288938,-0.867615 0.288938,-0.867615 2.4553422,-0.886224 8.8659382,-3.19599 12.1688342,-4.381112 1.05816,-0.382636 1.763171,-0.631523 1.763171,-0.631523 0,0 -1.02734,-2.324887 -1.664289,-3.782156 -0.636951,-1.454944 1.049169,-0.79202 1.049169,-0.79202 0,0 12.534822,4.676522 13.866509,5.195231 0.963131,0.382636 0.457165,1.253741 0.457165,1.253741 z" + id="path9" + style="fill:#d800d8;fill-opacity:1" + inkscape:connector-curvature="0" /><g + id="g2997" + transform="matrix(0,-1,1,0,-0.01316643,45.882166)" + inkscape:transform-center-x="-4.9812271" + inkscape:transform-center-y="-4.2696251"><path + id="path2999" + d="M 6.6614176,0.14173229 19.48819,5.5984253 c 0,0 1.559055,0.6377953 0.354331,1.1338583 -1.240158,0.5314961 -4.181103,1.7716536 -4.181103,1.7716536 0,0 0.283465,0.7440945 0.744095,1.9133858 1.27559,3.259843 3.57874,9.248032 4.535433,11.692914 0,0 0.425197,0.566929 -0.566929,0.992126 -0.956693,0.389764 -8.751969,3.685039 -9.460631,4.003937 -0.673228,0.283464 -0.885827,-0.283465 -0.885827,-0.283465 C 9.1062996,24.448819 6.6968507,18.283465 5.4921262,15.094489 5.0669294,14.066929 4.8188979,13.393701 4.8188979,13.393701 c 0,0 -2.3740159,0.992126 -3.86220494,1.629921 -1.48818905,0.637796 -0.81496067,-0.992126 -0.81496067,-0.992126 0,0 4.71259861,-12.1535432 5.24409471,-13.42913378 0.3897638,-0.95669294 1.2755906,-0.46062993 1.2755906,-0.46062993 z" + style="fill:#d800d8;fill-opacity:1;fill-rule:nonzero;stroke:none" + inkscape:connector-curvature="0" /></g></svg> \ No newline at end of file diff --git a/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg b/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg new file mode 100644 index 00000000..e1206c5d --- /dev/null +++ b/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.663582" + height="140.44" + viewBox="0 0 76.663581 140.44" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchTilt.svg"><metadata + id="metadata3364"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3362" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="766" + inkscape:window-height="480" + id="namedview3360" + showgrid="false" + inkscape:zoom="1.6804329" + inkscape:cx="6.1930652" + inkscape:cy="74.717535" + inkscape:window-x="343" + inkscape:window-y="203" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3322" + style="fill:#ffffff" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 12.622,5.815 c -6.294,0 -11.396,5.102 -11.396,11.395 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 0,-6.293 -5.102,-11.395 -11.395,-11.395 z m 0,20.431 c -4.99,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.046,-9.035 9.036,-9.035 4.988,0 9.035,4.046 9.035,9.035 0,4.99 -4.047,9.036 -9.035,9.036 z" + id="path3324" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 43.793,0 c -6.294,0 -11.396,5.102 -11.396,11.395 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 C 55.188,5.102 50.086,0 43.793,0 z m 0,20.43 c -4.99,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.046,-9.035 9.036,-9.035 4.988,0 9.035,4.046 9.035,9.035 0,4.99 -4.047,9.036 -9.035,9.036 z" + id="path3326" + inkscape:connector-curvature="0" /> + <path + d="M 76.151,87.918 C 77.464,73.913 62.146,72.6 62.146,72.6 57.769,59.907 47.556,66.472 47.556,66.472 c 0,0 2.262,-49.025 1.395,-54.713 -0.51,-3.331 -6.383,-10.562 -9.998,-1.684 -2.137,6.166 -5.59,60.75 -9.465,56.874 C 24.984,62.447 20.611,18.817 19.414,18.626 18.438,14.09 9.011,5.294 7.511,21.794 c 3,39.5 3.865,47.304 3.865,47.304 C 9.187,74.35 5.31,87.481 5.31,87.481 c -8.316,9.191 -4.377,15.756 -4.377,15.756 7.002,12.255 21.385,28.449 21.385,28.449 6.127,5.252 2.625,8.316 2.625,8.316 l 42.455,0.438 2.334,-7.879 c 9.628,-18.382 6.419,-44.643 6.419,-44.643 z" + id="path3328" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccc" + style="fill:#ffffff" /> +</g> +<g + id="g3330" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3332" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3334" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3336" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3338" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3340" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3342" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3344" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3346" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3348" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3350" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3352" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3354" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3356" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3358" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<path + inkscape:connector-curvature="0" + d="m 52.342987,124.78465 -8.980622,9.44613 c 0,0 -0.592129,0.74692 -1.214412,0.0786 -0.853927,-0.92772 -8.753091,-9.74549 -8.753091,-9.74549 0,0 -1.096535,-1.17966 0.352262,-1.17818 1.454279,10e-4 3.762485,10e-4 3.762485,10e-4 0,0 -0.0027,-0.67875 -0.0014,-1.72058 -0.0014,-3.20848 -0.0014,-9.4565 -0.0027,-11.8499 0,0 -0.01233,-0.56315 0.655179,-0.56019 0.672999,0 8.298029,0 9.238308,-0.003 0.937537,0.003 0.774428,0.66985 0.774428,0.66985 0,2.45861 0,8.50359 -0.0027,11.82767 0.0041,1.16039 0.0027,1.91472 0.0027,1.91472 0,0 2.879775,0.003 4.070886,0 1.192483,-10e-4 0.09869,1.11889 0.09869,1.11889 z m -0.09869,-37.828986 c -1.191111,0.003 -4.073627,0.003 -4.073627,0.003 0,0 0.0027,0.752845 0.0041,1.914716 -0.0041,3.327041 -0.0041,9.370556 -0.0014,11.83064 0,0 0.16174,0.66393 -0.774427,0.66096 -0.943021,0.006 -8.563939,0.003 -9.235567,0.004 -0.670257,-0.003 -0.65655,-0.56167 -0.65655,-0.56167 -0.0014,-2.393393 -0.0014,-8.642902 0.0014,-11.855831 -0.0014,-1.034421 0,-1.717613 0,-1.717613 0,0 -2.312318,0.003 -3.762486,0.0044 -1.444685,-0.003 -0.355003,-1.178173 -0.355003,-1.178173 0,0 7.896422,-8.81777 8.755832,-9.745488 0.622284,-0.671338 1.215783,0.07558 1.215783,0.07558 l 8.979252,9.444648 c 0,0 1.096534,1.121857 -0.09732,1.120375 z" + id="path3432" + sodipodi:nodetypes="ccccsccccccccccccccccccccccccc" + style="fill:#ffd800;fill-opacity:1" /></svg> \ No newline at end of file diff --git a/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg b/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg new file mode 100644 index 00000000..74e55d7c --- /dev/null +++ b/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="95.087433" + height="118.43173" + viewBox="0 0 95.087431 118.43173" + enable-background="new 0 0 100.775 118.638" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchZoom.svg"><metadata + id="metadata3382"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3380" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1105" + inkscape:window-height="739" + id="namedview3378" + showgrid="false" + inkscape:zoom="2.8132167" + inkscape:cx="10.565593" + inkscape:cy="72.192791" + inkscape:window-x="67" + inkscape:window-y="152" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + +<path + d="m 0.0436199,84.941029 c 0,0 -0.2799964,-1.323641 0.578786,-0.720397 0.8621957,0.601498 2.9536375,2.059778 2.9536375,2.059778 0,0 0.3431801,-0.517567 0.8707286,-1.316651 1.521209,-2.28009 4.281925,-6.427623 5.405325,-8.116707 0,0 0.187721,-0.53855 0.863902,-0.06295 0.682926,0.472104 6.206065,4.329377 6.692655,4.668591 0.483157,0.340966 0.220227,0.718649 0.220227,0.718649 -1.094368,1.641877 -3.948985,5.929292 -5.418977,8.132449 -0.469526,0.711655 -0.783654,1.178514 -0.783654,1.178514 0,0 1.678274,1.168023 2.728271,1.900661 1.043172,0.732637 -0.28341,0.987925 -0.28341,0.987925 0,0 -9.7470195,2.05628 -10.7936043,2.25911 -0.756328,0.145111 -0.8468168,-0.666198 -0.8468168,-0.666198 z" + id="path3376-4" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccc" + style="fill:#65ff00;fill-opacity:1" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 44.918594,16.853557 c -5.85006,0 -10.591269,4.862311 -10.591269,10.85967 0,5.997358 4.742138,10.859669 10.592198,10.859669 5.849132,0 10.59127,-4.862311 10.59127,-10.859669 -9.23e-4,-5.997359 -4.743067,-10.85967 -10.592199,-10.85967 z m 0,19.47021 c -4.637107,0 -8.398657,-3.855921 -8.398657,-8.611493 0,-4.754621 3.76155,-8.610543 8.398657,-8.610543 4.637107,0 8.397729,3.855922 8.397729,8.610543 0,4.755572 -3.759691,8.611493 -8.397729,8.611493 z" + id="path3430" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 23.240381,56.175295 c -5.457398,0 -9.88037,4.703155 -9.88037,10.504205 0,5.801049 4.423839,10.504204 9.881237,10.504204 5.456532,0 9.880371,-4.703155 9.880371,-10.504204 -8.67e-4,-5.80105 -4.424707,-10.504205 -9.881238,-10.504205 z m 0,18.8329 c -4.325859,0 -7.834929,-3.729707 -7.834929,-8.329617 0,-4.598989 3.50907,-8.328696 7.834929,-8.328696 4.32586,0 7.834063,3.729707 7.834063,8.328696 0,4.59991 -3.507336,8.329617 -7.834063,8.329617 z" + id="path3430-5" /><path + d="m 89.480511,111.78411 -1.887491,6.64762 -38.778475,-0.36785 c 8.08e-4,-8.5e-4 2.829619,-2.58599 -2.124439,-7.01632 0,0 -10.822746,-5.22596 -18.506953,-18.096801 0,0 -6.310236,-6.742109 -6.091889,-9.206596 C 21.508197,79.335765 20.881459,76.789439 20.376025,75.209164 19.312176,71.16939 18.8225,72.364992 18.8225,67.98106 c 2.452812,-14.333817 10.869455,1.810623 12.764445,5.488368 0,0 6.305384,7.578229 9.063029,9.283373 8.851152,-2.291524 3.039071,-22.109494 3.660956,-23.668675 0,0 -1.25024,-10.043558 -2.822341,-23.064577 -3.9949,-15.561935 8.286796,-19.626706 11.636292,-3.093053 1.545414,7.344522 3.686834,19.52689 4.483397,19.774098 0,0 8.395048,-7.385018 12.995707,3.323385 0,0 9.202125,-5.538975 12.741777,5.170273 0,0 12.387573,1.10695 11.326563,12.923992 0,0 2.59509,22.156743 -5.191814,37.665866 z" + id="path3376" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccc" + style="fill:#ffffff" /><path + d="m 49.854025,14.903508 c 0.696314,0.466948 6.359531,4.268019 6.858144,4.604015 0.491619,0.334273 0.748797,-0.05343 0.748797,-0.05343 1.121449,-1.617954 4.044902,-5.844621 5.545997,-8.013953 0.488115,-0.703007 0.803031,-1.164787 0.803031,-1.164787 0,0 1.714536,1.152726 2.792243,1.876411 1.07596,0.721961 0.813533,-0.620302 0.813533,-0.620302 0,0 -1.732034,-9.8989818 -1.933227,-10.95349441 -0.150463,-0.7615853 -0.939496,-0.5513731 -0.939496,-0.5513731 L 53.458049,1.9374693 c 0,0 -1.336636,0.2136595 -0.454876,0.8046693 0.88876,0.5927325 3.02493,2.0297666 3.02493,2.0297666 0,0 -0.355152,0.5083037 -0.895757,1.2940169 -1.558825,2.2468717 -4.387811,6.3339699 -5.538999,7.9984459 -0.0018,0.0017 -0.433883,0.370456 0.260678,0.83914 z" + id="path3376-7-4" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccc" + style="fill:#65ff00;fill-opacity:1" /></svg> \ No newline at end of file diff --git a/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png b/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png new file mode 100644 index 00000000..16343ec2 Binary files /dev/null and b/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png differ diff --git a/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png b/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png new file mode 100644 index 00000000..a36259bb Binary files /dev/null and b/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png differ diff --git a/cesium/Widgets/Images/TimelineIcons.png b/cesium/Widgets/Images/TimelineIcons.png new file mode 100644 index 00000000..e3a04556 Binary files /dev/null and b/cesium/Widgets/Images/TimelineIcons.png differ diff --git a/cesium/Widgets/Images/info-loading.gif b/cesium/Widgets/Images/info-loading.gif new file mode 100644 index 00000000..8df10dd5 Binary files /dev/null and b/cesium/Widgets/Images/info-loading.gif differ diff --git a/cesium/Widgets/InfoBox/InfoBox.css b/cesium/Widgets/InfoBox/InfoBox.css new file mode 100644 index 00000000..42a7b220 --- /dev/null +++ b/cesium/Widgets/InfoBox/InfoBox.css @@ -0,0 +1,92 @@ +/* packages/widgets/Source/InfoBox/InfoBox.css */ +.cesium-infoBox { + display: block; + position: absolute; + top: 50px; + right: 0; + width: 40%; + max-width: 480px; + background: rgba(38, 38, 38, 0.95); + color: #edffff; + border: 1px solid #444; + border-right: none; + border-top-left-radius: 7px; + border-bottom-left-radius: 7px; + box-shadow: 0 0 10px 1px #000; + transform: translate(100%, 0); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-infoBox-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-infoBox-title { + display: block; + height: 20px; + padding: 5px 30px 5px 25px; + background: rgba(84, 84, 84, 1); + border-top-left-radius: 7px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + box-sizing: content-box; +} +.cesium-infoBox-bodyless .cesium-infoBox-title { + border-bottom-left-radius: 7px; +} +button.cesium-infoBox-camera { + display: block; + position: absolute; + top: 4px; + left: 4px; + width: 22px; + height: 22px; + background: transparent; + border-color: transparent; + border-radius: 3px; + padding: 0 5px; + margin: 0; +} +button.cesium-infoBox-close { + display: block; + position: absolute; + top: 5px; + right: 5px; + height: 20px; + background: transparent; + border: none; + border-radius: 2px; + font-weight: bold; + font-size: 16px; + padding: 0 5px; + margin: 0; + color: #edffff; +} +button.cesium-infoBox-close:focus { + background: rgba(238, 136, 0, 0.44); + outline: none; +} +button.cesium-infoBox-close:hover { + background: #888; + color: #000; +} +button.cesium-infoBox-close:active { + background: #a00; + color: #000; +} +.cesium-infoBox-bodyless .cesium-infoBox-iframe { + display: none; +} +.cesium-infoBox-iframe { + border: none; + width: 100%; + width: calc(100% - 2px); +} diff --git a/cesium/Widgets/InfoBox/InfoBoxDescription.css b/cesium/Widgets/InfoBox/InfoBoxDescription.css new file mode 100644 index 00000000..04ee3dbc --- /dev/null +++ b/cesium/Widgets/InfoBox/InfoBoxDescription.css @@ -0,0 +1,178 @@ +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} + +/* packages/widgets/Source/InfoBox/InfoBoxDescription.css */ +body { + margin: 0; + padding: 0; +} +.cesium-infoBox-description { + font-family: sans-serif; + font-size: 13px; + padding: 4px 10px; + margin-right: 4px; + color: #edffff; +} +.cesium-infoBox-description a:link, +.cesium-infoBox-description a:visited, +.cesium-infoBox-description a:hover, +.cesium-infoBox-description a:active { + color: #edffff; +} +.cesium-infoBox-description table { + color: #edffff; +} +.cesium-infoBox-defaultTable { + width: 100%; + color: #edffff; +} +.cesium-infoBox-defaultTable tr:nth-child(odd) { + background-color: rgba(84, 84, 84, 0.8); +} +.cesium-infoBox-defaultTable tr:nth-child(even) { + background-color: rgba(84, 84, 84, 0.25); +} +.cesium-infoBox-defaultTable th { + font-weight: normal; + padding: 3px; + vertical-align: middle; + text-align: center; +} +.cesium-infoBox-defaultTable td { + padding: 3px; + vertical-align: middle; + text-align: left; +} +.cesium-infoBox-description-lighter { + color: #000000; +} +.cesium-infoBox-description-lighter a:link, +.cesium-infoBox-description-lighter a:visited, +.cesium-infoBox-description-lighter a:hover, +.cesium-infoBox-description-lighter a:active { + color: #000000; +} +.cesium-infoBox-description-lighter table { + color: #000000; +} +.cesium-infoBox-defaultTable-lighter { + width: 100%; + color: #000000; +} +.cesium-infoBox-defaultTable-lighter tr:nth-child(odd) { + background-color: rgba(179, 179, 179, 0.8); +} +.cesium-infoBox-defaultTable-lighter tr:nth-child(even) { + background-color: rgba(179, 179, 179, 0.25); +} +.cesium-infoBox-loadingContainer { + margin: 5px; + text-align: center; +} +.cesium-infoBox-loading { + display: inline-block; + background-image: url(data:text/plain;base64,R0lGODlhEAALAPQAAAAAAOLTlyAdFSgmGxEQC9zOk+LTl7mse25nSYyDXTw4KMO2gqCVa2dgRIl/Wzg1JsCzgN7PlJySaBUTDiEfFggIBbCkdR4cFAoJB0A7KlNONy4rHg4NCQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA); + width: 16px; + height: 11px; +} diff --git a/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css b/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css new file mode 100644 index 00000000..60f7a5bf --- /dev/null +++ b/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css @@ -0,0 +1,93 @@ +/* packages/widgets/Source/NavigationHelpButton/NavigationHelpButton.css */ +.cesium-navigationHelpButton-wrapper { + position: relative; + display: inline-block; +} +.cesium-navigation-help { + visibility: hidden; + position: absolute; + top: 38px; + right: 2px; + width: 250px; + border-radius: 10px; + transform: scale(0.01); + transform-origin: 234px -10px; + transition: visibility 0s 0.25s, transform 0.25s ease-in; +} +.cesium-navigation-help-visible { + visibility: visible; + transform: scale(1); + transition: transform 0.25s ease-out; +} +.cesium-navigation-help-instructions { + border: 1px solid #444; + background-color: rgba(38, 38, 38, 0.75); + padding-bottom: 5px; + border-radius: 0 0 10px 10px; +} +.cesium-click-navigation-help { + display: none; +} +.cesium-touch-navigation-help { + display: none; + padding-top: 5px; +} +.cesium-click-navigation-help-visible { + display: block; +} +.cesium-touch-navigation-help-visible { + display: block; +} +.cesium-navigation-help-pan { + color: #66ccff; + font-weight: bold; +} +.cesium-navigation-help-zoom { + color: #65fd00; + font-weight: bold; +} +.cesium-navigation-help-rotate { + color: #ffd800; + font-weight: bold; +} +.cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-navigation-help-details { + color: #ffffff; +} +.cesium-navigation-button { + color: #fff; + background-color: transparent; + border-bottom: none; + border-top: 1px solid #444; + border-right: 1px solid #444; + margin: 0; + width: 50%; + cursor: pointer; +} +.cesium-navigation-button-icon { + vertical-align: middle; + padding: 5px 1px; +} +.cesium-navigation-button:focus { + outline: none; +} +.cesium-navigation-button-left { + border-radius: 10px 0 0 0; + border-left: 1px solid #444; +} +.cesium-navigation-button-right { + border-radius: 0 10px 0 0; + border-left: none; +} +.cesium-navigation-button-selected { + background-color: rgba(38, 38, 38, 0.75); +} +.cesium-navigation-button-unselected { + background-color: rgba(0, 0, 0, 0.75); +} +.cesium-navigation-button-unselected:hover { + background-color: rgba(76, 76, 76, 0.75); +} diff --git a/cesium/Widgets/NavigationHelpButton/lighter.css b/cesium/Widgets/NavigationHelpButton/lighter.css new file mode 100644 index 00000000..7cf654b3 --- /dev/null +++ b/cesium/Widgets/NavigationHelpButton/lighter.css @@ -0,0 +1,38 @@ +/* packages/widgets/Source/NavigationHelpButton/lighter.css */ +.cesium-lighter .cesium-navigation-help-instructions { + border: 1px solid #759dc0; + background-color: rgba(255, 255, 255, 0.9); +} +.cesium-lighter .cesium-navigation-help-pan { + color: #66ccee; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-zoom { + color: #65ec00; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-rotate { + color: #eec722; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-details { + color: #222222; +} +.cesium-lighter .cesium-navigation-button { + color: #222222; + border-top: 1px solid #759dc0; + border-right: 1px solid #759dc0; +} +.cesium-lighter .cesium-navigation-button-selected { + background-color: rgba(196, 225, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected { + background-color: rgba(226, 240, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected:hover { + background-color: rgba(166, 210, 255, 0.9); +} diff --git a/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css b/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css new file mode 100644 index 00000000..f8f770ad --- /dev/null +++ b/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css @@ -0,0 +1,15 @@ +/* packages/widgets/Source/PerformanceWatchdog/PerformanceWatchdog.css */ +.cesium-performance-watchdog-message-area { + position: relative; + background-color: yellow; + color: black; + padding: 10px; +} +.cesium-performance-watchdog-message { + margin-right: 30px; +} +.cesium-performance-watchdog-message-dismiss { + position: absolute; + right: 0; + margin: 0 10px 0 0; +} diff --git a/cesium/Widgets/ProjectionPicker/ProjectionPicker.css b/cesium/Widgets/ProjectionPicker/ProjectionPicker.css new file mode 100644 index 00000000..57b6f6fd --- /dev/null +++ b/cesium/Widgets/ProjectionPicker/ProjectionPicker.css @@ -0,0 +1,38 @@ +/* packages/widgets/Source/ProjectionPicker/ProjectionPicker.css */ +span.cesium-projectionPicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-projectionPicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-projectionPicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-none { + display: none; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective, +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic { + margin: 0 0 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic { + left: 100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective { + left: -100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} diff --git a/cesium/Widgets/SceneModePicker/SceneModePicker.css b/cesium/Widgets/SceneModePicker/SceneModePicker.css new file mode 100644 index 00000000..51e4c67f --- /dev/null +++ b/cesium/Widgets/SceneModePicker/SceneModePicker.css @@ -0,0 +1,56 @@ +/* packages/widgets/Source/SceneModePicker/SceneModePicker.css */ +span.cesium-sceneModePicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-sceneModePicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-sceneModePicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none { + display: none; +} +.cesium-sceneModePicker-slide-svg { + transition: left 2s; + top: 0; + left: 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D { + margin: 0 0 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView { + left: 200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D { + left: -200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} diff --git a/cesium/Widgets/SelectionIndicator/SelectionIndicator.css b/cesium/Widgets/SelectionIndicator/SelectionIndicator.css new file mode 100644 index 00000000..148ff4a8 --- /dev/null +++ b/cesium/Widgets/SelectionIndicator/SelectionIndicator.css @@ -0,0 +1,20 @@ +/* packages/widgets/Source/SelectionIndicator/SelectionIndicator.css */ +.cesium-selection-wrapper { + position: absolute; + width: 160px; + height: 160px; + pointer-events: none; + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.2s, opacity 0.2s ease-in; +} +.cesium-selection-wrapper-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out; +} +.cesium-selection-wrapper svg { + fill: #2e2; + stroke: #000; + stroke-width: 1.1px; +} diff --git a/cesium/Widgets/Timeline/Timeline.css b/cesium/Widgets/Timeline/Timeline.css new file mode 100644 index 00000000..adb8b99e --- /dev/null +++ b/cesium/Widgets/Timeline/Timeline.css @@ -0,0 +1,103 @@ +/* packages/widgets/Source/Timeline/Timeline.css */ +.cesium-timeline-main { + position: relative; + left: 0; + bottom: 0; + overflow: hidden; + border: solid 1px #888; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-timeline-trackContainer { + width: 100%; + overflow: auto; + border-top: solid 1px #888; + position: relative; + top: 0; + left: 0; +} +.cesium-timeline-tracks { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.cesium-timeline-needle { + position: absolute; + left: 0; + top: 1.7em; + bottom: 0; + width: 1px; + background: #f00; +} +.cesium-timeline-bar { + position: relative; + left: 0; + top: 0; + overflow: hidden; + cursor: pointer; + width: 100%; + height: 1.7em; + background: + linear-gradient( + to bottom, + rgba(116, 117, 119, 0.8) 0%, + rgba(58, 68, 82, 0.8) 11%, + rgba(46, 50, 56, 0.8) 46%, + rgba(53, 53, 53, 0.8) 81%, + rgba(53, 53, 53, 0.8) 100%); +} +.cesium-timeline-ruler { + visibility: hidden; + white-space: nowrap; + font-size: 80%; + z-index: -200; +} +.cesium-timeline-highlight { + position: absolute; + bottom: 0; + left: 0; + background: #08f; +} +.cesium-timeline-ticLabel { + position: absolute; + top: 0; + left: 0; + white-space: nowrap; + font-size: 80%; + color: #eee; +} +.cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #eee; +} +.cesium-timeline-ticSub { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 33%; + background: #aaa; +} +.cesium-timeline-ticTiny { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 25%; + background: #888; +} +.cesium-timeline-icon16 { + display: block; + position: absolute; + width: 16px; + height: 16px; + background-image: url(data:text/plain;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDBITKIVzLEMAAAKNSURBVEjHxdXNSxRhHAfw7zzrqhuoWJnSkrippUVSEKsHI9BTUYdAJA/RoYMREV26rAdn6tAfUARi16hQqkOBQRgUEYFWEC3OwczMjdZd92VmdWfmeelgTjO7q7gb0VzmmZnn85vvPPPMM8B/3qTcE2PPpuTZKB1eWuUQACgXYACYwVFbCTTVeZXB/i55o4LFelcAZfStYD4vpAoPGAGo4GBcQEgSOAUMQyAezwK6iQfDPXnhS/FkHZ+/8VLMWxxqWkfH3gbMRNOYi2roavbja0zHQmoFPYf8ED4Ko4aivm9MOG/u9I8mwrafeK7a/tVrNc/bARYN5noadeq7q0342vXw9CIMU6BmW8rVP9cPBPe52uu+v3O/y9sB4gkTWs6Qsk0mj5ExXMelejvA8WafYmkmGPHanTijdtvif8rx5RiCjdWKs2Cp3jWRDl96KhrbqlBeJqBOLyLQXg0IgbkZDS0dO8EZxZfPSTA9jvDDK3mT0OmP1FXh3XwEEAKdTX5MRWLgjCK4pwH3xt/YnjgLHAv4lHTCAKMMu/wV+KZGob6PoKyMQ0+sgBpZVJZn0NterxQaVqef/DRn+/EXYds/mZx2eVeAW9d65dhCEsaKCb7K8HH0gqTevyh9GDkn0VULRiaLzJKGBu9swfdaiie5RVo9ESURN8E8BE0n7ggACJy8KzghSCzp6DmwWxkaCm24EBXr8wI8Hrkq06QBiRC0t24HALS11IBTCyJl4vb1AXmzpbVYTwoVOXN0h7L8Mwtm8bXPybIQ/5FCX3dA2cr6XowvGCA02CvztAnz9+JiZk1AMxG6fEreSoBiPNmoyNnuWiWVzAIAtISO08E6pZi/3N96AIDn4E3h3P8L/wshP+txtEs4JAAAAABJRU5ErkJggg==); + background-repeat: no-repeat; +} diff --git a/cesium/Widgets/Timeline/lighter.css b/cesium/Widgets/Timeline/lighter.css new file mode 100644 index 00000000..f2acaa21 --- /dev/null +++ b/cesium/Widgets/Timeline/lighter.css @@ -0,0 +1,23 @@ +/* packages/widgets/Source/Timeline/lighter.css */ +.cesium-lighter .cesium-timeline-bar { + background: + linear-gradient( + to bottom, + #eeeeee 0%, + #ffffff 50%, + #fafafa 100%); +} +.cesium-lighter .cesium-timeline-ticLabel { + color: #000; +} +.cesium-lighter .cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #000; +} +.cesium-lighter .cesium-timeline-ticSub { + background: #444; +} diff --git a/cesium/Widgets/VRButton/VRButton.css b/cesium/Widgets/VRButton/VRButton.css new file mode 100644 index 00000000..1005bd4a --- /dev/null +++ b/cesium/Widgets/VRButton/VRButton.css @@ -0,0 +1,8 @@ +/* packages/widgets/Source/VRButton/VRButton.css */ +.cesium-button.cesium-vrButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} diff --git a/cesium/Widgets/Viewer/Viewer.css b/cesium/Widgets/Viewer/Viewer.css new file mode 100644 index 00000000..5884a869 --- /dev/null +++ b/cesium/Widgets/Viewer/Viewer.css @@ -0,0 +1,107 @@ +/* packages/widgets/Source/Viewer/Viewer.css */ +.cesium-viewer { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-viewer-cesiumWidgetContainer { + width: 100%; + height: 100%; +} +.cesium-viewer-bottom { + display: block; + position: absolute; + bottom: 0; + left: 0; + padding-right: 5px; +} +.cesium-viewer .cesium-widget-credits { + display: inline; + position: static; + bottom: auto; + left: auto; + padding-right: 0; + color: #ffffff; + font-size: 10px; + text-shadow: 0 0 2px #000000; +} +.cesium-viewer-timelineContainer { + position: absolute; + bottom: 0; + left: 169px; + right: 29px; + height: 27px; + padding: 0; + margin: 0; + overflow: hidden; + font-size: 14px; +} +.cesium-viewer-animationContainer { + position: absolute; + bottom: 0; + left: 0; + padding: 0; + width: 169px; + height: 112px; +} +.cesium-viewer-fullscreenContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-vrContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-toolbar { + display: block; + position: absolute; + top: 5px; + right: 5px; +} +.cesium-viewer-cesiumInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; +} +.cesium-viewer-geocoderContainer { + position: relative; + display: inline-block; + margin: 0 3px; +} +.cesium-viewer-cesium3DTilesInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} +.cesium-viewer-voxelInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} diff --git a/cesium/Widgets/VoxelInspector/VoxelInspector.css b/cesium/Widgets/VoxelInspector/VoxelInspector.css new file mode 100644 index 00000000..a0a31024 --- /dev/null +++ b/cesium/Widgets/VoxelInspector/VoxelInspector.css @@ -0,0 +1,16 @@ +/* packages/widgets/Source/VoxelInspector/VoxelInspector.css */ +.cesium-VoxelInspector { + width: 300px; + pointer-events: all; +} +.cesium-VoxelInspector div, +.cesium-VoxelInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-VoxelInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} diff --git a/cesium/Widgets/lighter.css b/cesium/Widgets/lighter.css new file mode 100644 index 00000000..c6cc48d4 --- /dev/null +++ b/cesium/Widgets/lighter.css @@ -0,0 +1,237 @@ +/* packages/widgets/Source/lighterShared.css */ +.cesium-lighter .cesium-button { + color: #111; + fill: #111; + background: #e2f0ff; + border: 1px solid #759dc0; +} +.cesium-lighter .cesium-button:focus { + color: #000; + fill: #000; + border-color: #ea4; +} +.cesium-lighter .cesium-button:hover { + color: #000; + fill: #000; + background: #a6d2ff; + border-color: #aef; + box-shadow: 0 0 8px #777; +} +.cesium-lighter .cesium-button:active { + color: #fff; + fill: #fff; + background: #48b; + border-color: #ea0; +} +.cesium-lighter .cesium-button:disabled, +.cesium-lighter .cesium-button-disabled, +.cesium-lighter .cesium-button-disabled:focus, +.cesium-lighter .cesium-button-disabled:hover, +.cesium-lighter .cesium-button-disabled:active { + background: #ccc; + border-color: #999; + color: #999; + fill: #999; + box-shadow: none; +} +.cesium-lighter .cesium-performanceDisplay { + background-color: #e2f0ff; + border-color: #759dc0; +} +.cesium-lighter .cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-lighter .cesium-performanceDisplay-ms { + color: #ea4; +} + +/* packages/widgets/Source/Animation/lighter.css */ +.cesium-lighter .cesium-animation-themeNormal { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeHover { + color: #abd6ff; +} +.cesium-lighter .cesium-animation-themeSelect { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeDisabled { + color: #efefef; +} +.cesium-lighter .cesium-animation-themeKnob { + color: #e1e2e3; +} +.cesium-lighter .cesium-animation-themePointer { + color: #fa5; +} +.cesium-lighter .cesium-animation-themeSwoosh { + color: #ace; +} +.cesium-lighter .cesium-animation-themeSwooshHover { + color: #bdf; +} +.cesium-lighter .cesium-animation-svgText { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow { + fill: #ffaa2a; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #d3d3d3; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-lighter .cesium-animation-shuttleRingBack { + fill: #fafafa; + fill-opacity: 1; + stroke: #aeaeae; + stroke-width: 1.2; +} +.cesium-lighter .cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; +} +.cesium-lighter .cesium-animation-knobOuter { + stroke: #a5a5a5; +} + +/* packages/widgets/Source/BaseLayerPicker/lighter.css */ +.cesium-lighter .cesium-baseLayerPicker-itemIcon { + border-color: #759dc0; +} +.cesium-lighter .cesium-baseLayerPicker-dropDown { + background-color: rgba(240, 240, 240, 0.75); +} +.cesium-lighter .cesium-baseLayerPicker-sectionTitle { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-itemLabel { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #000; +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(0, 61, 168); +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(0, 61, 168); +} + +/* packages/engine/Source/Widget/lighter.css */ +.cesium-lighter .cesium-widget-errorPanel { + background: rgba(255, 255, 255, 0.7); +} +.cesium-lighter .cesium-widget-errorPanel-content { + border: 1px solid #526f82; + border-radius: 7px; + background-color: white; + color: black; +} +.cesium-lighter .cesium-widget-errorPanel-header { + color: #b87d00; +} + +/* packages/widgets/Source/Geocoder/lighter.css */ +.cesium-lighter .cesium-geocoder-input { + border: solid 1px #759dc0; + background-color: rgba(240, 240, 240, 0.9); + color: black; +} +.cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-lighter .cesium-geocoder-searchButton { + background-color: #e2f0ff; + fill: #111; +} +.cesium-lighter .cesium-geocoder-searchButton:hover { + background-color: #a6d2ff; +} + +/* packages/widgets/Source/Timeline/lighter.css */ +.cesium-lighter .cesium-timeline-bar { + background: + linear-gradient( + to bottom, + #eeeeee 0%, + #ffffff 50%, + #fafafa 100%); +} +.cesium-lighter .cesium-timeline-ticLabel { + color: #000; +} +.cesium-lighter .cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #000; +} +.cesium-lighter .cesium-timeline-ticSub { + background: #444; +} + +/* packages/widgets/Source/NavigationHelpButton/lighter.css */ +.cesium-lighter .cesium-navigation-help-instructions { + border: 1px solid #759dc0; + background-color: rgba(255, 255, 255, 0.9); +} +.cesium-lighter .cesium-navigation-help-pan { + color: #66ccee; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-zoom { + color: #65ec00; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-rotate { + color: #eec722; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-details { + color: #222222; +} +.cesium-lighter .cesium-navigation-button { + color: #222222; + border-top: 1px solid #759dc0; + border-right: 1px solid #759dc0; +} +.cesium-lighter .cesium-navigation-button-selected { + background-color: rgba(196, 225, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected { + background-color: rgba(226, 240, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected:hover { + background-color: rgba(166, 210, 255, 0.9); +} + +/* packages/widgets/Source/lighter.css */ diff --git a/cesium/Widgets/lighterShared.css b/cesium/Widgets/lighterShared.css new file mode 100644 index 00000000..7d3b4ddd --- /dev/null +++ b/cesium/Widgets/lighterShared.css @@ -0,0 +1,46 @@ +/* packages/widgets/Source/lighterShared.css */ +.cesium-lighter .cesium-button { + color: #111; + fill: #111; + background: #e2f0ff; + border: 1px solid #759dc0; +} +.cesium-lighter .cesium-button:focus { + color: #000; + fill: #000; + border-color: #ea4; +} +.cesium-lighter .cesium-button:hover { + color: #000; + fill: #000; + background: #a6d2ff; + border-color: #aef; + box-shadow: 0 0 8px #777; +} +.cesium-lighter .cesium-button:active { + color: #fff; + fill: #fff; + background: #48b; + border-color: #ea0; +} +.cesium-lighter .cesium-button:disabled, +.cesium-lighter .cesium-button-disabled, +.cesium-lighter .cesium-button-disabled:focus, +.cesium-lighter .cesium-button-disabled:hover, +.cesium-lighter .cesium-button-disabled:active { + background: #ccc; + border-color: #999; + color: #999; + fill: #999; + box-shadow: none; +} +.cesium-lighter .cesium-performanceDisplay { + background-color: #e2f0ff; + border-color: #759dc0; +} +.cesium-lighter .cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-lighter .cesium-performanceDisplay-ms { + color: #ea4; +} diff --git a/cesium/Widgets/shared.css b/cesium/Widgets/shared.css new file mode 100644 index 00000000..2c9b949e --- /dev/null +++ b/cesium/Widgets/shared.css @@ -0,0 +1,103 @@ +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} diff --git a/cesium/Widgets/widgets.css b/cesium/Widgets/widgets.css new file mode 100644 index 00000000..df675d59 --- /dev/null +++ b/cesium/Widgets/widgets.css @@ -0,0 +1,1342 @@ +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} + +/* packages/widgets/Source/Animation/Animation.css */ +.cesium-animation-theme { + visibility: hidden; + display: block; + position: absolute; + z-index: -100; +} +.cesium-animation-themeNormal { + color: #222; +} +.cesium-animation-themeHover { + color: #4488b0; +} +.cesium-animation-themeSelect { + color: #242; +} +.cesium-animation-themeDisabled { + color: #333; +} +.cesium-animation-themeKnob { + color: #222; +} +.cesium-animation-themePointer { + color: #2e2; +} +.cesium-animation-themeSwoosh { + color: #8ac; +} +.cesium-animation-themeSwooshHover { + color: #aef; +} +.cesium-animation-svgText { + fill: #edffff; + font-family: Sans-Serif; + font-size: 15px; + text-anchor: middle; +} +.cesium-animation-blank { + fill: #000; + fill-opacity: 0.01; + stroke: none; +} +.cesium-animation-rectButton { + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-rectButton .cesium-animation-buttonGlow { + fill: #fff; + stroke: none; + display: none; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonGlow { + display: block; +} +.cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #edffff; +} +.cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #aef; +} +.cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-animation-buttonDisabled { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #555; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonGlow { + display: none; +} +.cesium-animation-buttonToggled .cesium-animation-buttonGlow { + display: block; + fill: #2e2; +} +.cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-shuttleRingG { + cursor: pointer; +} +.cesium-animation-shuttleRingPointer { + cursor: pointer; +} +.cesium-animation-shuttleRingPausePointer { + cursor: pointer; +} +.cesium-animation-shuttleRingBack { + fill: #181818; + fill-opacity: 0.8; + stroke: #333; + stroke-width: 1.2; +} +.cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; + stroke-width: 3; + stroke-opacity: 0.2; + stroke-linecap: round; +} +.cesium-animation-knobOuter { + cursor: pointer; + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-knobInner { + cursor: pointer; +} + +/* packages/widgets/Source/BaseLayerPicker/BaseLayerPicker.css */ +.cesium-baseLayerPicker-selected { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: none; +} +.cesium-baseLayerPicker-dropDown { + display: block; + position: absolute; + box-sizing: content-box; + top: auto; + right: 0; + width: 320px; + max-height: 500px; + margin-top: 5px; + background-color: rgba(38, 38, 38, 0.75); + border: 1px solid #444; + padding: 6px; + overflow: auto; + border-radius: 10px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + transform: translate(0, -20%); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-baseLayerPicker-dropDown-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-baseLayerPicker-sectionTitle { + display: block; + font-family: sans-serif; + font-size: 16pt; + text-align: left; + color: #edffff; + margin-bottom: 4px; +} +.cesium-baseLayerPicker-choices { + margin-bottom: 5px; +} +.cesium-baseLayerPicker-categoryTitle { + color: #edffff; + font-size: 11pt; +} +.cesium-baseLayerPicker-choices { + display: block; + border: 1px solid #888; + border-radius: 5px; + padding: 5px 0; +} +.cesium-baseLayerPicker-item { + display: inline-block; + vertical-align: top; + margin: 2px 5px; + width: 64px; + text-align: center; + cursor: pointer; +} +.cesium-baseLayerPicker-itemLabel { + display: block; + font-family: sans-serif; + font-size: 8pt; + text-align: center; + vertical-align: middle; + color: #edffff; + cursor: pointer; + word-wrap: break-word; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel, +.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel { + text-decoration: underline; +} +.cesium-baseLayerPicker-itemIcon { + display: inline-block; + position: relative; + width: inherit; + height: auto; + background-size: 100% 100%; + border: solid 1px #444; + border-radius: 9px; + color: #edffff; + margin: 0; + padding: 0; + cursor: pointer; + box-sizing: border-box; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #fff; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(189, 236, 248); +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(189, 236, 248); +} + +/* packages/engine/Source/Widget/CesiumWidget.css */ +.cesium-widget { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-widget, +.cesium-widget canvas { + width: 100%; + height: 100%; + touch-action: none; +} +.cesium-widget-credits { + display: block; + position: absolute; + bottom: 0; + left: 0; + color: #fff; + font-size: 10px; + text-shadow: 0px 0px 2px #000000; + padding-right: 5px; +} +.cesium-widget-errorPanel { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + text-align: center; + background: rgba(0, 0, 0, 0.7); + z-index: 99999; +} +.cesium-widget-errorPanel:before { + display: inline-block; + vertical-align: middle; + height: 100%; + content: ""; +} +.cesium-widget-errorPanel-content { + width: 75%; + max-width: 500px; + display: inline-block; + text-align: left; + vertical-align: middle; + border: 1px solid #510c00; + border-radius: 7px; + background-color: #f0d9d5; + font-size: 14px; + color: #510c00; +} +.cesium-widget-errorPanel-content.expanded { + max-width: 75%; +} +.cesium-widget-errorPanel-header { + font-size: 18px; + font-family: + "Open Sans", + Verdana, + Geneva, + sans-serif; + background: #d69d93; + border-bottom: 2px solid #510c00; + padding-bottom: 10px; + border-radius: 3px 3px 0 0; + padding: 15px; +} +.cesium-widget-errorPanel-scroll { + overflow: auto; + font-family: + "Open Sans", + Verdana, + Geneva, + sans-serif; + white-space: pre-wrap; + padding: 0 15px; + margin: 10px 0 20px 0; +} +.cesium-widget-errorPanel-buttonPanel { + padding: 0 15px; + margin: 10px 0 20px 0; + text-align: right; +} +.cesium-widget-errorPanel-buttonPanel button { + border-color: #510c00; + background: #d69d93; + color: #202020; + margin: 0; +} +.cesium-widget-errorPanel-buttonPanel button:focus { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:hover { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:active { + border-color: #510c00; + background: #b17b72; + color: #510c00; +} +.cesium-widget-errorPanel-more-details { + text-decoration: underline; + cursor: pointer; +} +.cesium-widget-errorPanel-more-details:hover { + color: #2b0700; +} + +/* packages/widgets/Source/CesiumInspector/CesiumInspector.css */ +.cesium-cesiumInspector { + border-radius: 5px; + transition: width ease-in-out 0.25s; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; + color: #edffff; + display: inline-block; + position: relative; + padding: 4px 12px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; +} +.cesium-cesiumInspector-button { + text-align: center; + font-size: 11pt; +} +.cesium-cesiumInspector-visible .cesium-cesiumInspector-button { + border-bottom: 1px solid #aaa; + padding-bottom: 3px; +} +.cesium-cesiumInspector input:enabled, +.cesium-cesiumInspector-button { + cursor: pointer; +} +.cesium-cesiumInspector-visible { + width: 185px; + height: auto; +} +.cesium-cesiumInspector-hidden { + width: 122px; + height: 17px; +} +.cesium-cesiumInspector-sectionContent { + max-height: 600px; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent { + max-height: 0; + padding: 0 !important; + overflow: hidden; +} +.cesium-cesiumInspector-dropDown { + margin: 5px 0; + font-family: sans-serif; + font-size: 10pt; + width: 185px; +} +.cesium-cesiumInspector-frustumStatistics { + padding-left: 10px; + padding: 5px; + background-color: rgba(80, 80, 80, 0.75); +} +.cesium-cesiumInspector-pickButton { + background-color: rgba(0, 0, 0, 0.3); + border: 1px solid #444; + color: #edffff; + border-radius: 5px; + padding: 3px 7px; + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + margin: 0 auto; +} +.cesium-cesiumInspector-pickButton:focus { + outline: none; +} +.cesium-cesiumInspector-pickButton:active, +.cesium-cesiumInspector-pickButtonHighlight { + color: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-cesiumInspector-center { + text-align: center; +} +.cesium-cesiumInspector-sectionHeader { + font-weight: bold; + font-size: 10pt; + margin: 0; + cursor: pointer; +} +.cesium-cesiumInspector-pickSection { + border: 1px solid #aaa; + border-radius: 5px; + padding: 3px; + margin-bottom: 5px; +} +.cesium-cesiumInspector-sectionContent { + margin-bottom: 10px; + transition: max-height 0.25s; +} +.cesium-cesiumInspector-tileText { + padding-bottom: 10px; + border-bottom: 1px solid #aaa; +} +.cesium-cesiumInspector-relativeText { + padding-top: 10px; +} +.cesium-cesiumInspector-sectionHeader::before { + margin-right: 5px; + content: "-"; + width: 1ch; + display: inline-block; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader::before { + content: "+"; +} + +/* packages/widgets/Source/Cesium3DTilesInspector/Cesium3DTilesInspector.css */ +ul.cesium-cesiumInspector-statistics { + margin: 0; + padding-top: 3px; + padding-bottom: 3px; +} +ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics { + border-top: 1px solid #aaa; +} +.cesium-cesiumInspector-slider { + margin-top: 5px; +} +.cesium-cesiumInspector-slider input[type=number] { + text-align: left; + background-color: #222; + outline: none; + border: 1px solid #444; + color: #edffff; + width: 100px; + border-radius: 3px; + padding: 1px; + margin-left: 10px; + cursor: auto; +} +.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button, +.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.cesium-cesiumInspector-slider input[type=range] { + margin-left: 5px; + vertical-align: middle; +} +.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor { + display: none; +} +.cesium-cesiumInspector-styleEditor { + padding: 10px; + border-radius: 5px; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; +} +.cesium-cesiumInspector-styleEditor textarea { + width: 100%; + height: 300px; + background: transparent; + color: #edffff; + border: none; + padding: 0; + white-space: pre; + overflow-wrap: normal; + overflow-x: auto; +} +.cesium-3DTilesInspector { + width: 300px; + pointer-events: all; +} +.cesium-3DTilesInspector-statistics { + font-size: 11px; +} +.cesium-3DTilesInspector-disabledElementsInfo { + margin: 5px 0 0 0; + padding: 0 0 0 20px; + color: #eed202; +} +.cesium-3DTilesInspector div, +.cesium-3DTilesInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-cesiumInspector-error { + color: #ff9e9e; + overflow: auto; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} +input.cesium-cesiumInspector-url { + overflow: hidden; + white-space: nowrap; + overflow-x: scroll; + background-color: transparent; + color: white; + outline: none; + border: none; + height: 1em; + width: 100%; +} +.cesium-cesiumInspector .field-group { + display: table; +} +.cesium-cesiumInspector .field-group > label { + display: table-cell; + font-weight: bold; +} +.cesium-cesiumInspector .field-group > .field { + display: table-cell; + width: 100%; +} + +/* packages/widgets/Source/VoxelInspector/VoxelInspector.css */ +.cesium-VoxelInspector { + width: 300px; + pointer-events: all; +} +.cesium-VoxelInspector div, +.cesium-VoxelInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-VoxelInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} + +/* packages/widgets/Source/FullscreenButton/FullscreenButton.css */ +.cesium-button.cesium-fullscreenButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} + +/* packages/widgets/Source/VRButton/VRButton.css */ +.cesium-button.cesium-vrButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} + +/* packages/widgets/Source/Geocoder/Geocoder.css */ +.cesium-viewer-geocoderContainer .cesium-geocoder-input { + border: solid 1px #444; + background-color: rgba(40, 40, 40, 0.7); + color: white; + display: inline-block; + vertical-align: middle; + width: 0; + height: 32px; + margin: 0; + padding: 0 32px 0 0; + border-radius: 0; + box-sizing: border-box; + transition: width ease-in-out 0.25s, background-color 0.2s ease-in-out; + -webkit-appearance: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus { + border-color: #ea4; + background-color: rgba(15, 15, 15, 0.9); + box-shadow: none; + outline: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input, +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus, +.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide { + padding-left: 4px; + width: 250px; +} +.cesium-viewer-geocoderContainer .search-results { + position: absolute; + background-color: #000; + color: #eee; + overflow-y: auto; + opacity: 0.8; + width: 100%; +} +.cesium-viewer-geocoderContainer .search-results ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.cesium-viewer-geocoderContainer .search-results ul li { + font-size: 14px; + padding: 3px 10px; +} +.cesium-viewer-geocoderContainer .search-results ul li:hover { + cursor: pointer; +} +.cesium-viewer-geocoderContainer .search-results ul li.active { + background: #48b; +} +.cesium-geocoder-searchButton { + background-color: #303336; + display: inline-block; + position: absolute; + cursor: pointer; + width: 32px; + top: 1px; + right: 1px; + height: 30px; + vertical-align: middle; + fill: #edffff; +} +.cesium-geocoder-searchButton:hover { + background-color: #48b; +} + +/* packages/widgets/Source/InfoBox/InfoBox.css */ +.cesium-infoBox { + display: block; + position: absolute; + top: 50px; + right: 0; + width: 40%; + max-width: 480px; + background: rgba(38, 38, 38, 0.95); + color: #edffff; + border: 1px solid #444; + border-right: none; + border-top-left-radius: 7px; + border-bottom-left-radius: 7px; + box-shadow: 0 0 10px 1px #000; + transform: translate(100%, 0); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-infoBox-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-infoBox-title { + display: block; + height: 20px; + padding: 5px 30px 5px 25px; + background: rgba(84, 84, 84, 1); + border-top-left-radius: 7px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + box-sizing: content-box; +} +.cesium-infoBox-bodyless .cesium-infoBox-title { + border-bottom-left-radius: 7px; +} +button.cesium-infoBox-camera { + display: block; + position: absolute; + top: 4px; + left: 4px; + width: 22px; + height: 22px; + background: transparent; + border-color: transparent; + border-radius: 3px; + padding: 0 5px; + margin: 0; +} +button.cesium-infoBox-close { + display: block; + position: absolute; + top: 5px; + right: 5px; + height: 20px; + background: transparent; + border: none; + border-radius: 2px; + font-weight: bold; + font-size: 16px; + padding: 0 5px; + margin: 0; + color: #edffff; +} +button.cesium-infoBox-close:focus { + background: rgba(238, 136, 0, 0.44); + outline: none; +} +button.cesium-infoBox-close:hover { + background: #888; + color: #000; +} +button.cesium-infoBox-close:active { + background: #a00; + color: #000; +} +.cesium-infoBox-bodyless .cesium-infoBox-iframe { + display: none; +} +.cesium-infoBox-iframe { + border: none; + width: 100%; + width: calc(100% - 2px); +} + +/* packages/widgets/Source/SceneModePicker/SceneModePicker.css */ +span.cesium-sceneModePicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-sceneModePicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-sceneModePicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none { + display: none; +} +.cesium-sceneModePicker-slide-svg { + transition: left 2s; + top: 0; + left: 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D { + margin: 0 0 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView { + left: 200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D { + left: -200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} + +/* packages/widgets/Source/ProjectionPicker/ProjectionPicker.css */ +span.cesium-projectionPicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-projectionPicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-projectionPicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-none { + display: none; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective, +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic { + margin: 0 0 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic { + left: 100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective { + left: -100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} + +/* packages/widgets/Source/PerformanceWatchdog/PerformanceWatchdog.css */ +.cesium-performance-watchdog-message-area { + position: relative; + background-color: yellow; + color: black; + padding: 10px; +} +.cesium-performance-watchdog-message { + margin-right: 30px; +} +.cesium-performance-watchdog-message-dismiss { + position: absolute; + right: 0; + margin: 0 10px 0 0; +} + +/* packages/widgets/Source/NavigationHelpButton/NavigationHelpButton.css */ +.cesium-navigationHelpButton-wrapper { + position: relative; + display: inline-block; +} +.cesium-navigation-help { + visibility: hidden; + position: absolute; + top: 38px; + right: 2px; + width: 250px; + border-radius: 10px; + transform: scale(0.01); + transform-origin: 234px -10px; + transition: visibility 0s 0.25s, transform 0.25s ease-in; +} +.cesium-navigation-help-visible { + visibility: visible; + transform: scale(1); + transition: transform 0.25s ease-out; +} +.cesium-navigation-help-instructions { + border: 1px solid #444; + background-color: rgba(38, 38, 38, 0.75); + padding-bottom: 5px; + border-radius: 0 0 10px 10px; +} +.cesium-click-navigation-help { + display: none; +} +.cesium-touch-navigation-help { + display: none; + padding-top: 5px; +} +.cesium-click-navigation-help-visible { + display: block; +} +.cesium-touch-navigation-help-visible { + display: block; +} +.cesium-navigation-help-pan { + color: #66ccff; + font-weight: bold; +} +.cesium-navigation-help-zoom { + color: #65fd00; + font-weight: bold; +} +.cesium-navigation-help-rotate { + color: #ffd800; + font-weight: bold; +} +.cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-navigation-help-details { + color: #ffffff; +} +.cesium-navigation-button { + color: #fff; + background-color: transparent; + border-bottom: none; + border-top: 1px solid #444; + border-right: 1px solid #444; + margin: 0; + width: 50%; + cursor: pointer; +} +.cesium-navigation-button-icon { + vertical-align: middle; + padding: 5px 1px; +} +.cesium-navigation-button:focus { + outline: none; +} +.cesium-navigation-button-left { + border-radius: 10px 0 0 0; + border-left: 1px solid #444; +} +.cesium-navigation-button-right { + border-radius: 0 10px 0 0; + border-left: none; +} +.cesium-navigation-button-selected { + background-color: rgba(38, 38, 38, 0.75); +} +.cesium-navigation-button-unselected { + background-color: rgba(0, 0, 0, 0.75); +} +.cesium-navigation-button-unselected:hover { + background-color: rgba(76, 76, 76, 0.75); +} + +/* packages/widgets/Source/SelectionIndicator/SelectionIndicator.css */ +.cesium-selection-wrapper { + position: absolute; + width: 160px; + height: 160px; + pointer-events: none; + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.2s, opacity 0.2s ease-in; +} +.cesium-selection-wrapper-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out; +} +.cesium-selection-wrapper svg { + fill: #2e2; + stroke: #000; + stroke-width: 1.1px; +} + +/* packages/widgets/Source/Timeline/Timeline.css */ +.cesium-timeline-main { + position: relative; + left: 0; + bottom: 0; + overflow: hidden; + border: solid 1px #888; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-timeline-trackContainer { + width: 100%; + overflow: auto; + border-top: solid 1px #888; + position: relative; + top: 0; + left: 0; +} +.cesium-timeline-tracks { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.cesium-timeline-needle { + position: absolute; + left: 0; + top: 1.7em; + bottom: 0; + width: 1px; + background: #f00; +} +.cesium-timeline-bar { + position: relative; + left: 0; + top: 0; + overflow: hidden; + cursor: pointer; + width: 100%; + height: 1.7em; + background: + linear-gradient( + to bottom, + rgba(116, 117, 119, 0.8) 0%, + rgba(58, 68, 82, 0.8) 11%, + rgba(46, 50, 56, 0.8) 46%, + rgba(53, 53, 53, 0.8) 81%, + rgba(53, 53, 53, 0.8) 100%); +} +.cesium-timeline-ruler { + visibility: hidden; + white-space: nowrap; + font-size: 80%; + z-index: -200; +} +.cesium-timeline-highlight { + position: absolute; + bottom: 0; + left: 0; + background: #08f; +} +.cesium-timeline-ticLabel { + position: absolute; + top: 0; + left: 0; + white-space: nowrap; + font-size: 80%; + color: #eee; +} +.cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #eee; +} +.cesium-timeline-ticSub { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 33%; + background: #aaa; +} +.cesium-timeline-ticTiny { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 25%; + background: #888; +} +.cesium-timeline-icon16 { + display: block; + position: absolute; + width: 16px; + height: 16px; + background-image: url(data:text/plain;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDBITKIVzLEMAAAKNSURBVEjHxdXNSxRhHAfw7zzrqhuoWJnSkrippUVSEKsHI9BTUYdAJA/RoYMREV26rAdn6tAfUARi16hQqkOBQRgUEYFWEC3OwczMjdZd92VmdWfmeelgTjO7q7gb0VzmmZnn85vvPPPMM8B/3qTcE2PPpuTZKB1eWuUQACgXYACYwVFbCTTVeZXB/i55o4LFelcAZfStYD4vpAoPGAGo4GBcQEgSOAUMQyAezwK6iQfDPXnhS/FkHZ+/8VLMWxxqWkfH3gbMRNOYi2roavbja0zHQmoFPYf8ED4Ko4aivm9MOG/u9I8mwrafeK7a/tVrNc/bARYN5noadeq7q0342vXw9CIMU6BmW8rVP9cPBPe52uu+v3O/y9sB4gkTWs6Qsk0mj5ExXMelejvA8WafYmkmGPHanTijdtvif8rx5RiCjdWKs2Cp3jWRDl96KhrbqlBeJqBOLyLQXg0IgbkZDS0dO8EZxZfPSTA9jvDDK3mT0OmP1FXh3XwEEAKdTX5MRWLgjCK4pwH3xt/YnjgLHAv4lHTCAKMMu/wV+KZGob6PoKyMQ0+sgBpZVJZn0NterxQaVqef/DRn+/EXYds/mZx2eVeAW9d65dhCEsaKCb7K8HH0gqTevyh9GDkn0VULRiaLzJKGBu9swfdaiie5RVo9ESURN8E8BE0n7ggACJy8KzghSCzp6DmwWxkaCm24EBXr8wI8Hrkq06QBiRC0t24HALS11IBTCyJl4vb1AXmzpbVYTwoVOXN0h7L8Mwtm8bXPybIQ/5FCX3dA2cr6XowvGCA02CvztAnz9+JiZk1AMxG6fEreSoBiPNmoyNnuWiWVzAIAtISO08E6pZi/3N96AIDn4E3h3P8L/wshP+txtEs4JAAAAABJRU5ErkJggg==); + background-repeat: no-repeat; +} + +/* packages/widgets/Source/Viewer/Viewer.css */ +.cesium-viewer { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-viewer-cesiumWidgetContainer { + width: 100%; + height: 100%; +} +.cesium-viewer-bottom { + display: block; + position: absolute; + bottom: 0; + left: 0; + padding-right: 5px; +} +.cesium-viewer .cesium-widget-credits { + display: inline; + position: static; + bottom: auto; + left: auto; + padding-right: 0; + color: #ffffff; + font-size: 10px; + text-shadow: 0 0 2px #000000; +} +.cesium-viewer-timelineContainer { + position: absolute; + bottom: 0; + left: 169px; + right: 29px; + height: 27px; + padding: 0; + margin: 0; + overflow: hidden; + font-size: 14px; +} +.cesium-viewer-animationContainer { + position: absolute; + bottom: 0; + left: 0; + padding: 0; + width: 169px; + height: 112px; +} +.cesium-viewer-fullscreenContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-vrContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-toolbar { + display: block; + position: absolute; + top: 5px; + right: 5px; +} +.cesium-viewer-cesiumInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; +} +.cesium-viewer-geocoderContainer { + position: relative; + display: inline-block; + margin: 0 3px; +} +.cesium-viewer-cesium3DTilesInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} +.cesium-viewer-voxelInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} + +/* packages/widgets/Source/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css */ +.cesium-viewer-i3s-explorer ul { + list-style-type: none; +} +.cesium-viewer-i3s-explorer .layersList { + padding: 0; +} +.cesium-viewer-i3s-explorer input { + margin: 0 3px 0 0; +} +.cesium-viewer-i3s-explorer .expandItem { + cursor: pointer; + user-select: none; + width: 20px; +} +.cesium-viewer-i3s-explorer .nested, +.cesium-viewer-i3s-explorer #bsl-wrapper { + display: none; +} +.cesium-viewer-i3s-explorer .active { + display: block; +} +.cesium-viewer-i3s-explorer .li-wrapper { + display: flex; + flex-direction: row; + align-content: center; +} + +/* packages/widgets/Source/widgets.css */ diff --git a/cesium/Workers/chunk-2AIOP76V.js b/cesium/Workers/chunk-2AIOP76V.js new file mode 100644 index 00000000..26d91740 --- /dev/null +++ b/cesium/Workers/chunk-2AIOP76V.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a}from"./chunk-IAE6APK2.js";import{a as d}from"./chunk-3E7FIXV7.js";import{a as g,b as r}from"./chunk-NZBME2JK.js";import{e as W,f as u}from"./chunk-6DLS2UKD.js";var ve=new a,_e=new a;function Fe(i,t,e,n,o){if(!u(i))throw new g("cartesian is required.");if(!u(t))throw new g("oneOverRadii is required.");if(!u(e))throw new g("oneOverRadiiSquared is required.");if(!u(n))throw new g("centerToleranceSquared is required.");let s=i.x,c=i.y,m=i.z,p=t.x,A=t.y,j=t.z,w=s*s*p*p,q=c*c*A*A,T=m*m*j*j,N=w+q+T,C=Math.sqrt(1/N),E=a.multiplyByScalar(i,C,ve);if(N<n)return isFinite(C)?a.clone(E,o):void 0;let H=e.x,J=e.y,K=e.z,I=_e;I.x=E.x*H*2,I.y=E.y*J*2,I.z=E.z*K*2;let B=(1-C)*a.magnitude(i)/(.5*a.magnitude(I)),fe=0,ee,le,v,_,F,te,ne,ie,me,pe,ye;do{B-=fe,v=1/(1+B*H),_=1/(1+B*J),F=1/(1+B*K),te=v*v,ne=_*_,ie=F*F,me=te*v,pe=ne*_,ye=ie*F,ee=w*te+q*ne+T*ie-1,le=w*me*H+q*pe*J+T*ye*K;let Ce=-2*le;fe=ee/Ce}while(Math.abs(ee)>d.EPSILON12);return u(o)?(o.x=s*v,o.y=c*_,o.z=m*F,o):new a(s*v,c*_,m*F)}var U=Fe;var h=class h{constructor(t,e,n){this.longitude=t??0,this.latitude=e??0,this.height=n??0}static fromRadians(t,e,n,o){return r.typeOf.number("longitude",t),r.typeOf.number("latitude",e),n=n??0,u(o)?(o.longitude=t,o.latitude=e,o.height=n,o):new h(t,e,n)}static fromDegrees(t,e,n,o){return r.typeOf.number("longitude",t),r.typeOf.number("latitude",e),t=d.toRadians(t),e=d.toRadians(e),h.fromRadians(t,e,n,o)}static fromCartesian(t,e,n){let o=u(e)?e.oneOverRadii:h._ellipsoidOneOverRadii,s=u(e)?e.oneOverRadiiSquared:h._ellipsoidOneOverRadiiSquared,c=u(e)?e._centerToleranceSquared:h._ellipsoidCenterToleranceSquared,m=U(t,o,s,c,Ne);if(!u(m))return;let p=a.multiplyComponents(m,s,Me);p=a.normalize(p,p);let A=a.subtract(t,m,ze),j=Math.atan2(p.y,p.x),w=Math.asin(p.z),q=d.sign(a.dot(A,t))*a.magnitude(A);return u(n)?(n.longitude=j,n.latitude=w,n.height=q,n):new h(j,w,q)}static toCartesian(t,e,n){return r.defined("cartographic",t),a.fromRadians(t.longitude,t.latitude,t.height,e,n)}static clone(t,e){if(u(t))return u(e)?(e.longitude=t.longitude,e.latitude=t.latitude,e.height=t.height,e):new h(t.longitude,t.latitude,t.height)}static equals(t,e){return t===e||u(t)&&u(e)&&t.longitude===e.longitude&&t.latitude===e.latitude&&t.height===e.height}static equalsEpsilon(t,e,n){return n=n??0,t===e||u(t)&&u(e)&&Math.abs(t.longitude-e.longitude)<=n&&Math.abs(t.latitude-e.latitude)<=n&&Math.abs(t.height-e.height)<=n}clone(t){return h.clone(this,t)}equals(t){return h.equals(this,t)}equalsEpsilon(t,e){return h.equalsEpsilon(this,t,e)}toString(){return`(${this.longitude}, ${this.latitude}, ${this.height})`}};W(h,"_ellipsoidOneOverRadii",new a(1/6378137,1/6378137,1/6356752314245179e-9)),W(h,"_ellipsoidOneOverRadiiSquared",new a(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9))),W(h,"_ellipsoidCenterToleranceSquared",d.EPSILON1);var z=h;z.ZERO=Object.freeze(new z(0,0,0));var Me=new a,Ne=new a,ze=new a,P=z;var f=class i{constructor(t,e){this.x=t??0,this.y=e??0}static fromElements(t,e,n){return u(n)?(n.x=t,n.y=e,n):new i(t,e)}static clone(t,e){if(u(t))return u(e)?(e.x=t.x,e.y=t.y,e):new i(t.x,t.y)}static pack(t,e,n){return r.typeOf.object("value",t),r.defined("array",e),n=n??0,e[n++]=t.x,e[n]=t.y,e}static unpack(t,e,n){return r.defined("array",t),e=e??0,u(n)||(n=new i),n.x=t[e++],n.y=t[e],n}static packArray(t,e){r.defined("array",t);let n=t.length,o=n*2;if(!u(e))e=new Array(o);else{if(!Array.isArray(e)&&e.length!==o)throw new g("If result is a typed array, it must have exactly array.length * 2 elements");e.length!==o&&(e.length=o)}for(let s=0;s<n;++s)i.pack(t[s],e,s*2);return e}static unpackArray(t,e){if(r.defined("array",t),r.typeOf.number.greaterThanOrEquals("array.length",t.length,2),t.length%2!==0)throw new g("array length must be a multiple of 2.");let n=t.length;u(e)?e.length=n/2:e=new Array(n/2);for(let o=0;o<n;o+=2){let s=o/2;e[s]=i.unpack(t,o,e[s])}return e}static maximumComponent(t){return r.typeOf.object("cartesian",t),Math.max(t.x,t.y)}static minimumComponent(t){return r.typeOf.object("cartesian",t),Math.min(t.x,t.y)}static minimumByComponent(t,e,n){return r.typeOf.object("first",t),r.typeOf.object("second",e),r.typeOf.object("result",n),n.x=Math.min(t.x,e.x),n.y=Math.min(t.y,e.y),n}static maximumByComponent(t,e,n){return r.typeOf.object("first",t),r.typeOf.object("second",e),r.typeOf.object("result",n),n.x=Math.max(t.x,e.x),n.y=Math.max(t.y,e.y),n}static clamp(t,e,n,o){r.typeOf.object("value",t),r.typeOf.object("min",e),r.typeOf.object("max",n),r.typeOf.object("result",o);let s=d.clamp(t.x,e.x,n.x),c=d.clamp(t.y,e.y,n.y);return o.x=s,o.y=c,o}static magnitudeSquared(t){return r.typeOf.object("cartesian",t),t.x*t.x+t.y*t.y}static magnitude(t){return Math.sqrt(i.magnitudeSquared(t))}static distance(t,e){return r.typeOf.object("left",t),r.typeOf.object("right",e),i.subtract(t,e,V),i.magnitude(V)}static distanceSquared(t,e){return r.typeOf.object("left",t),r.typeOf.object("right",e),i.subtract(t,e,V),i.magnitudeSquared(V)}static normalize(t,e){r.typeOf.object("cartesian",t),r.typeOf.object("result",e);let n=i.magnitude(t);if(e.x=t.x/n,e.y=t.y/n,isNaN(e.x)||isNaN(e.y))throw new g("normalized result is not a number");return e}static dot(t,e){return r.typeOf.object("left",t),r.typeOf.object("right",e),t.x*e.x+t.y*e.y}static cross(t,e){return r.typeOf.object("left",t),r.typeOf.object("right",e),t.x*e.y-t.y*e.x}static multiplyComponents(t,e,n){return r.typeOf.object("left",t),r.typeOf.object("right",e),r.typeOf.object("result",n),n.x=t.x*e.x,n.y=t.y*e.y,n}static divideComponents(t,e,n){return r.typeOf.object("left",t),r.typeOf.object("right",e),r.typeOf.object("result",n),n.x=t.x/e.x,n.y=t.y/e.y,n}static add(t,e,n){return r.typeOf.object("left",t),r.typeOf.object("right",e),r.typeOf.object("result",n),n.x=t.x+e.x,n.y=t.y+e.y,n}static subtract(t,e,n){return r.typeOf.object("left",t),r.typeOf.object("right",e),r.typeOf.object("result",n),n.x=t.x-e.x,n.y=t.y-e.y,n}static multiplyByScalar(t,e,n){return r.typeOf.object("cartesian",t),r.typeOf.number("scalar",e),r.typeOf.object("result",n),n.x=t.x*e,n.y=t.y*e,n}static divideByScalar(t,e,n){return r.typeOf.object("cartesian",t),r.typeOf.number("scalar",e),r.typeOf.object("result",n),n.x=t.x/e,n.y=t.y/e,n}static negate(t,e){return r.typeOf.object("cartesian",t),r.typeOf.object("result",e),e.x=-t.x,e.y=-t.y,e}static abs(t,e){return r.typeOf.object("cartesian",t),r.typeOf.object("result",e),e.x=Math.abs(t.x),e.y=Math.abs(t.y),e}static lerp(t,e,n,o){return r.typeOf.object("start",t),r.typeOf.object("end",e),r.typeOf.number("t",n),r.typeOf.object("result",o),i.multiplyByScalar(e,n,he),o=i.multiplyByScalar(t,1-n,o),i.add(he,o,o)}static angleBetween(t,e){return r.typeOf.object("left",t),r.typeOf.object("right",e),i.normalize(t,Oe),i.normalize(e,ge),d.acosClamped(i.dot(Oe,ge))}static mostOrthogonalAxis(t,e){r.typeOf.object("cartesian",t),r.typeOf.object("result",e);let n=i.normalize(t,Pe);return i.abs(n,n),n.x<=n.y?e=i.clone(i.UNIT_X,e):e=i.clone(i.UNIT_Y,e),e}static equals(t,e){return t===e||u(t)&&u(e)&&t.x===e.x&&t.y===e.y}static equalsArray(t,e,n){return t.x===e[n]&&t.y===e[n+1]}static equalsEpsilon(t,e,n,o){return t===e||u(t)&&u(e)&&d.equalsEpsilon(t.x,e.x,n,o)&&d.equalsEpsilon(t.y,e.y,n,o)}clone(t){return i.clone(this,t)}equals(t){return i.equals(this,t)}equalsEpsilon(t,e,n){return i.equalsEpsilon(this,t,e,n)}toString(){return`(${this.x}, ${this.y})`}};f.fromCartesian3=f.clone;f.fromCartesian4=f.clone;f.packedLength=2;f.fromArray=f.unpack;var V=new f,he=new f,Oe=new f,ge=new f,Pe=new f;f.ZERO=Object.freeze(new f(0,0));f.ONE=Object.freeze(new f(1,1));f.UNIT_X=Object.freeze(new f(1,0));f.UNIT_Y=Object.freeze(new f(0,1));var re=f;function be(i,t,e,n){t=t??0,e=e??0,n=n??0,r.typeOf.number.greaterThanOrEquals("x",t,0),r.typeOf.number.greaterThanOrEquals("y",e,0),r.typeOf.number.greaterThanOrEquals("z",n,0),i._radii=new a(t,e,n),i._radiiSquared=new a(t*t,e*e,n*n),i._radiiToTheFourth=new a(t*t*t*t,e*e*e*e,n*n*n*n),i._oneOverRadii=new a(t===0?0:1/t,e===0?0:1/e,n===0?0:1/n),i._oneOverRadiiSquared=new a(t===0?0:1/(t*t),e===0?0:1/(e*e),n===0?0:1/(n*n)),i._minimumRadius=Math.min(t,e,n),i._maximumRadius=Math.max(t,e,n),i._centerToleranceSquared=d.EPSILON1,i._radiiSquared.z!==0&&(i._squaredXOverSquaredZ=i._radiiSquared.x/i._radiiSquared.z)}var O=class i{constructor(t,e,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,be(this,t,e,n)}get radii(){return this._radii}get radiiSquared(){return this._radiiSquared}get radiiToTheFourth(){return this._radiiToTheFourth}get oneOverRadii(){return this._oneOverRadii}get oneOverRadiiSquared(){return this._oneOverRadiiSquared}get minimumRadius(){return this._minimumRadius}get maximumRadius(){return this._maximumRadius}static clone(t,e){if(!u(t))return;let n=t._radii;return u(e)?(a.clone(n,e._radii),a.clone(t._radiiSquared,e._radiiSquared),a.clone(t._radiiToTheFourth,e._radiiToTheFourth),a.clone(t._oneOverRadii,e._oneOverRadii),a.clone(t._oneOverRadiiSquared,e._oneOverRadiiSquared),e._minimumRadius=t._minimumRadius,e._maximumRadius=t._maximumRadius,e._centerToleranceSquared=t._centerToleranceSquared,e):new i(n.x,n.y,n.z)}static fromCartesian3(t,e){return u(e)||(e=new i),u(t)&&be(e,t.x,t.y,t.z),e}static get default(){return i._default}static set default(t){r.typeOf.object("value",t),i._default=t,a._ellipsoidRadiiSquared=t.radiiSquared,P._ellipsoidOneOverRadii=t.oneOverRadii,P._ellipsoidOneOverRadiiSquared=t.oneOverRadiiSquared,P._ellipsoidCenterToleranceSquared=t._centerToleranceSquared}clone(t){return i.clone(this,t)}static pack(t,e,n){return r.typeOf.object("value",t),r.defined("array",e),n=n??0,a.pack(t._radii,e,n),e}static unpack(t,e,n){r.defined("array",t),e=e??0;let o=a.unpack(t,e);return i.fromCartesian3(o,n)}geodeticSurfaceNormalCartographic(t,e){r.typeOf.object("cartographic",t);let n=t.longitude,o=t.latitude,s=Math.cos(o),c=s*Math.cos(n),m=s*Math.sin(n),p=Math.sin(o);return u(e)||(e=new a),e.x=c,e.y=m,e.z=p,a.normalize(e,e)}geodeticSurfaceNormal(t,e){if(r.typeOf.object("cartesian",t),isNaN(t.x)||isNaN(t.y)||isNaN(t.z))throw new g("cartesian has a NaN component");if(!a.equalsEpsilon(t,a.ZERO,d.EPSILON14))return u(e)||(e=new a),e=a.multiplyComponents(t,this._oneOverRadiiSquared,e),a.normalize(e,e)}cartographicToCartesian(t,e){let n=ke,o=Ie;this.geodeticSurfaceNormalCartographic(t,n),a.multiplyComponents(this._radiiSquared,n,o);let s=Math.sqrt(a.dot(n,o));return a.divideByScalar(o,s,o),a.multiplyByScalar(n,t.height,n),u(e)||(e=new a),a.add(o,n,e)}cartographicArrayToCartesianArray(t,e){r.defined("cartographics",t);let n=t.length;u(e)?e.length=n:e=new Array(n);for(let o=0;o<n;o++)e[o]=this.cartographicToCartesian(t[o],e[o]);return e}cartesianToCartographic(t,e){let n=this.scaleToGeodeticSurface(t,We);if(!u(n))return;let o=this.geodeticSurfaceNormal(n,Be),s=a.subtract(t,n,Ue),c=Math.atan2(o.y,o.x),m=Math.asin(o.z),p=d.sign(a.dot(s,t))*a.magnitude(s);return u(e)?(e.longitude=c,e.latitude=m,e.height=p,e):new P(c,m,p)}cartesianArrayToCartographicArray(t,e){r.defined("cartesians",t);let n=t.length;u(e)?e.length=n:e=new Array(n);for(let o=0;o<n;++o)e[o]=this.cartesianToCartographic(t[o],e[o]);return e}scaleToGeodeticSurface(t,e){return U(t,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,e)}scaleToGeocentricSurface(t,e){r.typeOf.object("cartesian",t),u(e)||(e=new a);let n=t.x,o=t.y,s=t.z,c=this._oneOverRadiiSquared,m=1/Math.sqrt(n*n*c.x+o*o*c.y+s*s*c.z);return a.multiplyByScalar(t,m,e)}transformPositionToScaledSpace(t,e){return u(e)||(e=new a),a.multiplyComponents(t,this._oneOverRadii,e)}transformPositionFromScaledSpace(t,e){return u(e)||(e=new a),a.multiplyComponents(t,this._radii,e)}equals(t){return this===t||u(t)&&a.equals(this._radii,t._radii)}toString(){return this._radii.toString()}getSurfaceNormalIntersectionWithZAxis(t,e,n){if(r.typeOf.object("position",t),!d.equalsEpsilon(this._radii.x,this._radii.y,d.EPSILON15))throw new g("Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)");r.typeOf.number.greaterThan("Ellipsoid.radii.z",this._radii.z,0),e=e??0;let o=this._squaredXOverSquaredZ;if(u(n)||(n=new a),n.x=0,n.y=0,n.z=t.z*(1-o),!(Math.abs(n.z)>=this._radii.z-e))return n}getLocalCurvature(t,e){r.typeOf.object("surfacePosition",t),u(e)||(e=new re);let n=this.getSurfaceNormalIntersectionWithZAxis(t,0,Ve),o=a.distance(t,n),s=this.minimumRadius*o/this.maximumRadius**2,c=o*s**2;return re.fromElements(1/o,1/c,e)}surfaceArea(t){r.typeOf.object("rectangle",t);let e=t.west,n=t.east,o=t.south,s=t.north;for(;n<e;)n+=d.TWO_PI;let c=this._radiiSquared,m=c.x,p=c.y,A=c.z,j=m*p;return xe(o,s,function(w){let q=Math.cos(w),T=Math.sin(w);return Math.cos(w)*xe(e,n,function(N){let C=Math.cos(N),E=Math.sin(N);return Math.sqrt(j*T*T+A*(p*C*C+m*E*E)*q*q)})})}};O.WGS84=Object.freeze(new O(6378137,6378137,6356752314245179e-9));O.UNIT_SPHERE=Object.freeze(new O(1,1,1));O.MOON=Object.freeze(new O(d.LUNAR_RADIUS,d.LUNAR_RADIUS,d.LUNAR_RADIUS));O.MARS=Object.freeze(new O(3396190,3396190,3376200));O._default=O.WGS84;O.packedLength=a.packedLength;O.prototype.geocentricSurfaceNormal=a.normalize;var ke=new a,Ie=new a,Be=new a,We=new a,Ue=new a,Ve=new a,Le=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],$e=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function xe(i,t,e){r.typeOf.number("a",i),r.typeOf.number("b",t),r.typeOf.func("func",e);let n=.5*(t+i),o=.5*(t-i),s=0;for(let c=0;c<5;c++){let m=o*Le[c];s+=$e[c]*(e(n+m)+e(n-m))}return s*=o,s}var At=O;var R,l={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},b={};Object.defineProperties(b,{element:{get:function(){if(b.supportsFullscreen())return document[l.fullscreenElement]}},changeEventName:{get:function(){if(b.supportsFullscreen())return l.fullscreenchange}},errorEventName:{get:function(){if(b.supportsFullscreen())return l.fullscreenerror}},enabled:{get:function(){if(b.supportsFullscreen())return document[l.fullscreenEnabled]}},fullscreen:{get:function(){if(b.supportsFullscreen())return b.element!==null}}});b.supportsFullscreen=function(){if(u(R))return R;R=!1;let i=document.body;if(typeof i.requestFullscreen=="function")return l.requestFullscreen="requestFullscreen",l.exitFullscreen="exitFullscreen",l.fullscreenEnabled="fullscreenEnabled",l.fullscreenElement="fullscreenElement",l.fullscreenchange="fullscreenchange",l.fullscreenerror="fullscreenerror",R=!0,R;let t=["webkit","moz","o","ms","khtml"],e;for(let n=0,o=t.length;n<o;++n){let s=t[n];e=`${s}RequestFullscreen`,typeof i[e]=="function"?(l.requestFullscreen=e,R=!0):(e=`${s}RequestFullScreen`,typeof i[e]=="function"&&(l.requestFullscreen=e,R=!0)),e=`${s}ExitFullscreen`,typeof document[e]=="function"?l.exitFullscreen=e:(e=`${s}CancelFullScreen`,typeof document[e]=="function"&&(l.exitFullscreen=e)),e=`${s}FullscreenEnabled`,document[e]!==void 0?l.fullscreenEnabled=e:(e=`${s}FullScreenEnabled`,document[e]!==void 0&&(l.fullscreenEnabled=e)),e=`${s}FullscreenElement`,document[e]!==void 0?l.fullscreenElement=e:(e=`${s}FullScreenElement`,document[e]!==void 0&&(l.fullscreenElement=e)),e=`${s}fullscreenchange`,document[`on${e}`]!==void 0&&(s==="ms"&&(e="MSFullscreenChange"),l.fullscreenchange=e),e=`${s}fullscreenerror`,document[`on${e}`]!==void 0&&(s==="ms"&&(e="MSFullscreenError"),l.fullscreenerror=e)}return R};b.requestFullscreen=function(i,t){b.supportsFullscreen()&&i[l.requestFullscreen]({vrDisplay:t})};b.exitFullscreen=function(){b.supportsFullscreen()&&document[l.exitFullscreen]()};b._names=l;var Se=b;var x;typeof navigator<"u"?x=navigator:x={};function k(i){let t=i.split(".");for(let e=0,n=t.length;e<n;++e)t[e]=parseInt(t[e],10);return t}var L,we;function ce(){if(!u(L)&&(L=!1,!Y())){let i=/ Chrome\/([\.0-9]+)/.exec(x.userAgent);i!==null&&(L=!0,we=k(i[1]))}return L}function De(){return ce()&&we}var $,qe;function Re(){if(!u($)&&($=!1,!ce()&&!Y()&&/ Safari\/[\.0-9]+/.test(x.userAgent))){let i=/ Version\/([\.0-9]+)/.exec(x.userAgent);i!==null&&($=!0,qe=k(i[1]))}return $}function Ze(){return Re()&&qe}var D,se;function Ae(){if(!u(D)){D=!1;let i=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(x.userAgent);i!==null&&(D=!0,se=k(i[1]),se.isNightly=!!i[2])}return D}function Ge(){return Ae()&&se}var Z,je;function Y(){if(!u(Z)){Z=!1;let i=/ Edg\/([\.0-9]+)/.exec(x.userAgent);i!==null&&(Z=!0,je=k(i[1]))}return Z}function Xe(){return Y()&&je}var G,de;function Q(){if(!u(G)){G=!1;let i=/Firefox\/([\.0-9]+)/.exec(x.userAgent);i!==null&&(G=!0,de=k(i[1]))}return G}var oe;function Ye(){return u(oe)||(oe=/Windows/i.test(x.appVersion)),oe}var ae;function Qe(){return u(ae)||(ae=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),ae}function He(){return Q()&&de}var ue;function Je(){return u(ue)||(ue=!Q()&&typeof PointerEvent<"u"&&(!u(x.pointerEnabled)||x.pointerEnabled)),ue}var Ee,X;function Te(){if(!u(X)){let i=document.createElement("canvas");i.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=i.style.imageRendering;X=u(t)&&t!=="",X&&(Ee=t)}return X}function Ke(){return Te()?Ee:void 0}function y(){if(!y.initialized)throw new g("You must call FeatureDetection.supportsWebP.initialize and wait for the promise to resolve before calling FeatureDetection.supportsWebP");return y._result}y._promise=void 0;y._result=void 0;y.initialize=function(){return u(y._promise)||(y._promise=new Promise(i=>{let t=new Image;t.onload=function(){y._result=t.width>0&&t.height>0,i(y._result)},t.onerror=function(){y._result=!1,i(y._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),y._promise};Object.defineProperties(y,{initialized:{get:function(){return u(y._result)}}});var M=[];typeof ArrayBuffer<"u"&&(M.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&M.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&M.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&M.push(BigInt64Array),typeof BigUint64Array<"u"&&M.push(BigUint64Array));var S={isChrome:ce,chromeVersion:De,isSafari:Re,safariVersion:Ze,isWebkit:Ae,webkitVersion:Ge,isEdge:Y,edgeVersion:Xe,isFirefox:Q,firefoxVersion:He,isWindows:Ye,isIPadOrIOS:Qe,hardwareConcurrency:x.hardwareConcurrency??3,supportsPointerEvents:Je,supportsImageRenderingPixelated:Te,supportsWebP:y,imageRenderingValue:Ke,typedArrayTypes:M};S.supportsBasis=function(i){return S.supportsWebAssembly()&&i.context.supportsBasis};S.supportsFullscreen=function(){return Se.supportsFullscreen()};S.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};S.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};S.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};S.supportsBigInt=function(){return typeof BigInt<"u"};S.supportsWebWorkers=function(){return typeof Worker<"u"};S.supportsWebAssembly=function(){return typeof WebAssembly<"u"};S.supportsWebgl2=function(i){return r.defined("scene",i),i.context.webgl2};S.supportsEsmWebWorkers=function(){return!Q()||parseInt(de)>=114};var Mt=S;export{P as a,re as b,At as c,Mt as d}; diff --git a/cesium/Workers/chunk-37ETYCYM.js b/cesium/Workers/chunk-37ETYCYM.js new file mode 100644 index 00000000..fa5956a2 --- /dev/null +++ b/cesium/Workers/chunk-37ETYCYM.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as P,c as T}from"./chunk-2AIOP76V.js";import{a as p}from"./chunk-IAE6APK2.js";import{a}from"./chunk-3E7FIXV7.js";import{a as I,b as g}from"./chunk-NZBME2JK.js";import{f as l}from"./chunk-6DLS2UKD.js";function w(n,i,o){if(n===0)return i*o;let t=n*n,e=t*t,c=e*t,r=c*t,h=r*t,s=h*t,d=o,u=Math.sin(2*d),f=Math.sin(4*d),M=Math.sin(6*d),_=Math.sin(8*d),E=Math.sin(10*d),S=Math.sin(12*d);return i*((1-t/4-3*e/64-5*c/256-175*r/16384-441*h/65536-4851*s/1048576)*d-(3*t/8+3*e/32+45*c/1024+105*r/4096+2205*h/131072+6237*s/524288)*u+(15*e/256+45*c/1024+525*r/16384+1575*h/65536+155925*s/8388608)*f-(35*c/3072+175*r/12288+3675*h/262144+13475*s/1048576)*M+(315*r/131072+2205*h/524288+43659*s/8388608)*_-(693*h/1310720+6237*s/5242880)*E+1001*s/8388608*S)}function H(n,i,o){let t=n/o;if(i===0)return t;let e=t*t,c=e*t,r=c*t,h=i,s=h*h,d=s*s,u=d*s,f=u*s,M=f*s,_=M*s,E=Math.sin(2*t),S=Math.cos(2*t),v=Math.sin(4*t),W=Math.cos(4*t),V=Math.sin(6*t),C=Math.cos(6*t),N=Math.sin(8*t),R=Math.cos(8*t),b=Math.sin(10*t),x=Math.cos(10*t),U=Math.sin(12*t);return t+t*s/4+7*t*d/64+15*t*u/256+579*t*f/16384+1515*t*M/65536+16837*t*_/1048576+(3*t*d/16+45*t*u/256-t*(32*e-561)*f/4096-t*(232*e-1677)*M/16384+t*(399985-90560*e+512*r)*_/5242880)*S+(21*t*u/256+483*t*f/4096-t*(224*e-1969)*M/16384-t*(33152*e-112599)*_/1048576)*W+(151*t*f/4096+4681*t*M/65536+1479*t*_/16384-453*c*_/32768)*C+(1097*t*M/65536+42783*t*_/1048576)*R+8011*t*_/1048576*x+(3*s/8+3*d/16+213*u/2048-3*e*u/64+255*f/4096-33*e*f/512+20861*M/524288-33*e*M/512+r*M/1024+28273*_/1048576-471*e*_/8192+9*r*_/4096)*E+(21*d/256+21*u/256+533*f/8192-21*e*f/512+197*M/4096-315*e*M/4096+584039*_/16777216-12517*e*_/131072+7*r*_/2048)*v+(151*u/6144+151*f/4096+5019*M/131072-453*e*M/16384+26965*_/786432-8607*e*_/131072)*V+(1097*f/131072+1097*M/65536+225797*_/10485760-1097*e*_/65536)*N+(8011*M/2621440+8011*_/1048576)*b+293393*_/251658240*U}function O(n,i){if(n===0)return Math.log(Math.tan(.5*(a.PI_OVER_TWO+i)));let o=n*Math.sin(i);return Math.log(Math.tan(.5*(a.PI_OVER_TWO+i)))-n/2*Math.log((1+o)/(1-o))}function z(n,i,o,t,e){let c=O(n._ellipticity,o),r=O(n._ellipticity,e);return Math.atan2(a.negativePiToPi(t-i),r-c)}function k(n,i,o,t,e,c,r){let h=n._heading,s=c-t,d=0;if(a.equalsEpsilon(Math.abs(h),a.PI_OVER_TWO,a.EPSILON8))if(i===o)d=i*Math.cos(e)*a.negativePiToPi(s);else{let u=Math.sin(e);d=i*Math.cos(e)*a.negativePiToPi(s)/Math.sqrt(1-n._ellipticitySquared*u*u)}else{let u=w(n._ellipticity,i,e);d=(w(n._ellipticity,i,r)-u)/Math.cos(h)}return Math.abs(d)}var A=new p,q=new p;function y(n,i,o,t){let e=p.normalize(t.cartographicToCartesian(i,q),A),c=p.normalize(t.cartographicToCartesian(o,q),q);g.typeOf.number.greaterThanOrEquals("value",Math.abs(Math.abs(p.angleBetween(e,c))-Math.PI),.0125);let r=t.maximumRadius,h=t.minimumRadius,s=r*r,d=h*h;n._ellipticitySquared=(s-d)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=P.clone(i,n._start),n._start.height=0,n._end=P.clone(o,n._end),n._end.height=0,n._heading=z(n,i.longitude,i.latitude,o.longitude,o.latitude),n._distance=k(n,t.maximumRadius,t.minimumRadius,i.longitude,i.latitude,o.longitude,o.latitude)}function D(n,i,o,t,e,c){if(o===0)return P.clone(n,c);let r=e*e,h,s,d;if(Math.abs(a.PI_OVER_TWO-Math.abs(i))>a.EPSILON8){let u=w(e,t,n.latitude),f=o*Math.cos(i),M=u+f;if(s=H(M,e,t),Math.abs(i)<a.EPSILON10)h=a.negativePiToPi(n.longitude);else{let _=O(e,n.latitude),E=O(e,s);d=Math.tan(i)*(E-_),h=a.negativePiToPi(n.longitude+d)}}else{s=n.latitude;let u;if(e===0)u=t*Math.cos(n.latitude);else{let f=Math.sin(n.latitude);u=t*Math.cos(n.latitude)/Math.sqrt(1-r*f*f)}d=o/u,i>0?h=a.negativePiToPi(n.longitude+d):h=a.negativePiToPi(n.longitude-d)}return l(c)?(c.longitude=h,c.latitude=s,c.height=0,c):new P(h,s,0)}function m(n,i,o){let t=o??T.default;this._ellipsoid=t,this._start=new P,this._end=new P,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,l(n)&&l(i)&&y(this,n,i,t)}Object.defineProperties(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return g.defined("distance",this._distance),this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return g.defined("distance",this._distance),this._heading}}});m.fromStartHeadingDistance=function(n,i,o,t,e){g.defined("start",n),g.defined("heading",i),g.defined("distance",o),g.typeOf.number.greaterThan("distance",o,0);let c=t??T.default,r=c.maximumRadius,h=c.minimumRadius,s=r*r,d=h*h,u=Math.sqrt((s-d)/s);i=a.negativePiToPi(i);let f=D(n,i,o,c.maximumRadius,u);return!l(e)||l(t)&&!t.equals(e.ellipsoid)?new m(n,f,c):(e.setEndPoints(n,f),e)};m.prototype.setEndPoints=function(n,i){g.defined("start",n),g.defined("end",i),y(this,n,i,this._ellipsoid)};m.prototype.interpolateUsingFraction=function(n,i){return this.interpolateUsingSurfaceDistance(n*this._distance,i)};m.prototype.interpolateUsingSurfaceDistance=function(n,i){if(g.typeOf.number("distance",n),!l(this._distance)||this._distance===0)throw new I("EllipsoidRhumbLine must have distinct start and end set.");return D(this._start,this._heading,n,this._ellipsoid.maximumRadius,this._ellipticity,i)};m.prototype.findIntersectionWithLongitude=function(n,i){if(g.typeOf.number("intersectionLongitude",n),!l(this._distance)||this._distance===0)throw new I("EllipsoidRhumbLine must have distinct start and end set.");let o=this._ellipticity,t=this._heading,e=Math.abs(t),c=this._start;if(n=a.negativePiToPi(n),a.equalsEpsilon(Math.abs(n),Math.PI,a.EPSILON14)&&(n=a.sign(c.longitude)*Math.PI),l(i)||(i=new P),Math.abs(a.PI_OVER_TWO-e)<=a.EPSILON8)return i.longitude=n,i.latitude=c.latitude,i.height=0,i;if(a.equalsEpsilon(Math.abs(a.PI_OVER_TWO-e),a.PI_OVER_TWO,a.EPSILON8))return a.equalsEpsilon(n,c.longitude,a.EPSILON12)?void 0:(i.longitude=n,i.latitude=a.PI_OVER_TWO*a.sign(a.PI_OVER_TWO-t),i.height=0,i);let r=c.latitude,h=o*Math.sin(r),s=Math.tan(.5*(a.PI_OVER_TWO+r))*Math.exp((n-c.longitude)/Math.tan(t)),d=(1+h)/(1-h),u=c.latitude,f;do{f=u;let M=o*Math.sin(f),_=(1+M)/(1-M);u=2*Math.atan(s*Math.pow(_/d,o/2))-a.PI_OVER_TWO}while(!a.equalsEpsilon(u,f,a.EPSILON12));return i.longitude=n,i.latitude=u,i.height=0,i};m.prototype.findIntersectionWithLatitude=function(n,i){if(g.typeOf.number("intersectionLatitude",n),!l(this._distance)||this._distance===0)throw new I("EllipsoidRhumbLine must have distinct start and end set.");let o=this._ellipticity,t=this._heading,e=this._start;if(a.equalsEpsilon(Math.abs(t),a.PI_OVER_TWO,a.EPSILON8))return;let c=O(o,e.latitude),r=O(o,n),h=Math.tan(t)*(r-c),s=a.negativePiToPi(e.longitude+h);return l(i)?(i.longitude=s,i.latitude=n,i.height=0,i):new P(s,n,0)};var Y=m;export{Y as a}; diff --git a/cesium/Workers/chunk-3E7FIXV7.js b/cesium/Workers/chunk-3E7FIXV7.js new file mode 100644 index 00000000..14e53cb4 --- /dev/null +++ b/cesium/Workers/chunk-3E7FIXV7.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as n,b as a}from"./chunk-NZBME2JK.js";import{c as E,d as I,f as o}from"./chunk-6DLS2UKD.js";var d=E((_,m)=>{var f=function(t){t==null&&(t=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,t.constructor==Array?this.init_by_array(t,t.length):this.init_seed(t)};f.prototype.init_seed=function(t){for(this.mt[0]=t>>>0,this.mti=1;this.mti<this.N;this.mti++){var t=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(((t&4294901760)>>>16)*1812433253<<16)+(t&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};f.prototype.init_by_array=function(t,i){var e,s,h;for(this.init_seed(19650218),e=1,s=0,h=this.N>i?this.N:i;h;h--){var u=this.mt[e-1]^this.mt[e-1]>>>30;this.mt[e]=(this.mt[e]^(((u&4294901760)>>>16)*1664525<<16)+(u&65535)*1664525)+t[s]+s,this.mt[e]>>>=0,e++,s++,e>=this.N&&(this.mt[0]=this.mt[this.N-1],e=1),s>=i&&(s=0)}for(h=this.N-1;h;h--){var u=this.mt[e-1]^this.mt[e-1]>>>30;this.mt[e]=(this.mt[e]^(((u&4294901760)>>>16)*1566083941<<16)+(u&65535)*1566083941)-e,this.mt[e]>>>=0,e++,e>=this.N&&(this.mt[0]=this.mt[this.N-1],e=1)}this.mt[0]=2147483648};f.prototype.random_int=function(){var t,i=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var e;for(this.mti==this.N+1&&this.init_seed(5489),e=0;e<this.N-this.M;e++)t=this.mt[e]&this.UPPER_MASK|this.mt[e+1]&this.LOWER_MASK,this.mt[e]=this.mt[e+this.M]^t>>>1^i[t&1];for(;e<this.N-1;e++)t=this.mt[e]&this.UPPER_MASK|this.mt[e+1]&this.LOWER_MASK,this.mt[e]=this.mt[e+(this.M-this.N)]^t>>>1^i[t&1];t=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^t>>>1^i[t&1],this.mti=0}return t=this.mt[this.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0};f.prototype.random_int31=function(){return this.random_int()>>>1};f.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};f.prototype.random=function(){return this.random_int()*(1/4294967296)};f.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};f.prototype.random_long=function(){var t=this.random_int()>>>5,i=this.random_int()>>>6;return(t*67108864+i)*(1/9007199254740992)};m.exports=f});var w=I(d(),1);var r={};r.EPSILON1=.1;r.EPSILON2=.01;r.EPSILON3=.001;r.EPSILON4=1e-4;r.EPSILON5=1e-5;r.EPSILON6=1e-6;r.EPSILON7=1e-7;r.EPSILON8=1e-8;r.EPSILON9=1e-9;r.EPSILON10=1e-10;r.EPSILON11=1e-11;r.EPSILON12=1e-12;r.EPSILON13=1e-13;r.EPSILON14=1e-14;r.EPSILON15=1e-15;r.EPSILON16=1e-16;r.EPSILON17=1e-17;r.EPSILON18=1e-18;r.EPSILON19=1e-19;r.EPSILON20=1e-20;r.EPSILON21=1e-21;r.GRAVITATIONALPARAMETER=3986004418e5;r.SOLAR_RADIUS=6955e5;r.LUNAR_RADIUS=1737400;r.SIXTY_FOUR_KILOBYTES=64*1024;r.FOUR_GIGABYTES=4*1024*1024*1024;r.sign=Math.sign??function(i){return i=+i,i===0||i!==i?i:i>0?1:-1};r.signNotZero=function(t){return t<0?-1:1};r.toSNorm=function(t,i){return i=i??255,Math.round((r.clamp(t,-1,1)*.5+.5)*i)};r.fromSNorm=function(t,i){return i=i??255,r.clamp(t,0,i)/i*2-1};r.normalize=function(t,i,e){return e=Math.max(e-i,0),e===0?0:r.clamp((t-i)/e,0,1)};r.sinh=Math.sinh??function(i){return(Math.exp(i)-Math.exp(-i))/2};r.cosh=Math.cosh??function(i){return(Math.exp(i)+Math.exp(-i))/2};r.lerp=function(t,i,e){return(1-e)*t+e*i};r.PI=Math.PI;r.ONE_OVER_PI=1/Math.PI;r.PI_OVER_TWO=Math.PI/2;r.PI_OVER_THREE=Math.PI/3;r.PI_OVER_FOUR=Math.PI/4;r.PI_OVER_SIX=Math.PI/6;r.THREE_PI_OVER_TWO=3*Math.PI/2;r.TWO_PI=2*Math.PI;r.ONE_OVER_TWO_PI=1/(2*Math.PI);r.RADIANS_PER_DEGREE=Math.PI/180;r.DEGREES_PER_RADIAN=180/Math.PI;r.RADIANS_PER_ARCSECOND=r.RADIANS_PER_DEGREE/3600;r.toRadians=function(t){if(!o(t))throw new n("degrees is required.");return t*r.RADIANS_PER_DEGREE};r.toDegrees=function(t){if(!o(t))throw new n("radians is required.");return t*r.DEGREES_PER_RADIAN};r.convertLongitudeRange=function(t){if(!o(t))throw new n("angle is required.");let i=r.TWO_PI,e=t-Math.floor(t/i)*i;return e<-Math.PI?e+i:e>=Math.PI?e-i:e};r.clampToLatitudeRange=function(t){if(!o(t))throw new n("angle is required.");return r.clamp(t,-1*r.PI_OVER_TWO,r.PI_OVER_TWO)};r.negativePiToPi=function(t){if(!o(t))throw new n("angle is required.");return t>=-r.PI&&t<=r.PI?t:r.zeroToTwoPi(t+r.PI)-r.PI};r.zeroToTwoPi=function(t){if(!o(t))throw new n("angle is required.");if(t>=0&&t<=r.TWO_PI)return t;let i=r.mod(t,r.TWO_PI);return Math.abs(i)<r.EPSILON14&&Math.abs(t)>r.EPSILON14?r.TWO_PI:i};r.mod=function(t,i){if(!o(t))throw new n("m is required.");if(!o(i))throw new n("n is required.");if(i===0)throw new n("divisor cannot be 0.");return r.sign(t)===r.sign(i)&&Math.abs(t)<Math.abs(i)?t:(t%i+i)%i};r.equalsEpsilon=function(t,i,e,s){if(!o(t))throw new n("left is required.");if(!o(i))throw new n("right is required.");e=e??0,s=s??e;let h=Math.abs(t-i);return h<=s||h<=e*Math.max(Math.abs(t),Math.abs(i))};r.lessThan=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i<-e};r.lessThanOrEquals=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i<e};r.greaterThan=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i>e};r.greaterThanOrEquals=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i>-e};var c=[1];r.factorial=function(t){if(typeof t!="number"||t<0)throw new n("A number greater than or equal to 0 is required.");let i=c.length;if(t>=i){let e=c[i-1];for(let s=i;s<=t;s++){let h=e*s;c.push(h),e=h}}return c[t]};r.incrementWrap=function(t,i,e){if(e=e??0,!o(t))throw new n("n is required.");if(i<=e)throw new n("maximumValue must be greater than minimumValue.");return++t,t>i&&(t=e),t};r.isPowerOfTwo=function(t){if(typeof t!="number"||t<0||t>4294967295)throw new n("A number between 0 and (2^32)-1 is required.");return t!==0&&(t&t-1)===0};r.nextPowerOfTwo=function(t){if(typeof t!="number"||t<0||t>2147483648)throw new n("A number between 0 and 2^31 is required.");return--t,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t,t};r.previousPowerOfTwo=function(t){if(typeof t!="number"||t<0||t>4294967295)throw new n("A number between 0 and (2^32)-1 is required.");return t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t|=t>>32,t=(t>>>0)-(t>>>1),t};r.clamp=function(t,i,e){return a.typeOf.number("value",t),a.typeOf.number("min",i),a.typeOf.number("max",e),t<i?i:t>e?e:t};var P=new w.default;r.setRandomNumberSeed=function(t){if(!o(t))throw new n("seed is required.");P=new w.default(t)};r.nextRandomNumber=function(){return P.random()};r.randomBetween=function(t,i){return r.nextRandomNumber()*(i-t)+t};r.acosClamped=function(t){if(!o(t))throw new n("value is required.");return Math.acos(r.clamp(t,-1,1))};r.asinClamped=function(t){if(!o(t))throw new n("value is required.");return Math.asin(r.clamp(t,-1,1))};r.chordLength=function(t,i){if(!o(t))throw new n("angle is required.");if(!o(i))throw new n("radius is required.");return 2*i*Math.sin(t*.5)};r.logBase=function(t,i){if(!o(t))throw new n("number is required.");if(!o(i))throw new n("base is required.");return Math.log(t)/Math.log(i)};r.cbrt=Math.cbrt??function(i){let e=Math.pow(Math.abs(i),.3333333333333333);return i<0?-e:e};r.log2=Math.log2??function(i){return Math.log(i)*Math.LOG2E};r.fog=function(t,i){let e=t*i;return 1-Math.exp(-(e*e))};r.fastApproximateAtan=function(t){return a.typeOf.number("x",t),t*(-.1784*Math.abs(t)-.0663*t*t+1.0301)};r.fastApproximateAtan2=function(t,i){a.typeOf.number("x",t),a.typeOf.number("y",i);let e,s=Math.abs(t);e=Math.abs(i);let h=Math.max(s,e);e=Math.min(s,e);let u=e/h;if(isNaN(u))throw new n("either x or y must be nonzero");return s=r.fastApproximateAtan(u),s=Math.abs(i)>Math.abs(t)?r.PI_OVER_TWO-s:s,s=t<0?r.PI-s:s,s=i<0?-s:s,s};var M=r;export{M as a}; diff --git a/cesium/Workers/chunk-3N6OW3OY.js b/cesium/Workers/chunk-3N6OW3OY.js new file mode 100644 index 00000000..91f88ddf --- /dev/null +++ b/cesium/Workers/chunk-3N6OW3OY.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Q}from"./chunk-PEDE2P3Q.js";import{a as N}from"./chunk-ML6MR2RA.js";import{a as _}from"./chunk-AKELQO2L.js";import{a as K}from"./chunk-4WQ4VT5S.js";import{a as H}from"./chunk-6EINM7EY.js";import{b as J,c as W,d as L}from"./chunk-A4I25VN7.js";import{c as j}from"./chunk-D3TVNJ6W.js";import{a as S}from"./chunk-ATKJRN2G.js";import{b as E}from"./chunk-2AIOP76V.js";import{a as b,c as Z}from"./chunk-IAE6APK2.js";import{a as Y}from"./chunk-3E7FIXV7.js";import{a as F}from"./chunk-NZBME2JK.js";import{f as g}from"./chunk-6DLS2UKD.js";var k=new E,ot=new b,nt=new b,it=new b,rt=new b;function O(t){t=t??Z.EMPTY_OBJECT;let n=t.length,e=t.topRadius,h=t.bottomRadius,o=t.vertexFormat??_.DEFAULT,s=t.slices??128;if(!g(n))throw new F("options.length must be defined.");if(!g(e))throw new F("options.topRadius must be defined.");if(!g(h))throw new F("options.bottomRadius must be defined.");if(s<3)throw new F("options.slices must be greater than or equal to 3.");if(g(t.offsetAttribute)&&t.offsetAttribute===N.TOP)throw new F("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._length=n,this._topRadius=e,this._bottomRadius=h,this._vertexFormat=_.clone(o),this._slices=s,this._offsetAttribute=t.offsetAttribute,this._workerName="createCylinderGeometry"}O.packedLength=_.packedLength+5;O.pack=function(t,n,e){if(!g(t))throw new F("value is required");if(!g(n))throw new F("array is required");return e=e??0,_.pack(t._vertexFormat,n,e),e+=_.packedLength,n[e++]=t._length,n[e++]=t._topRadius,n[e++]=t._bottomRadius,n[e++]=t._slices,n[e]=t._offsetAttribute??-1,n};var X=new _,D={vertexFormat:X,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};O.unpack=function(t,n,e){if(!g(t))throw new F("array is required");n=n??0;let h=_.unpack(t,n,X);n+=_.packedLength;let o=t[n++],s=t[n++],p=t[n++],P=t[n++],w=t[n];return g(e)?(e._vertexFormat=_.clone(h,e._vertexFormat),e._length=o,e._topRadius=s,e._bottomRadius=p,e._slices=P,e._offsetAttribute=w===-1?void 0:w,e):(D.length=o,D.topRadius=s,D.bottomRadius=p,D.slices=P,D.offsetAttribute=w===-1?void 0:w,new O(D))};O.createGeometry=function(t){let n=t._length,e=t._topRadius,h=t._bottomRadius,o=t._vertexFormat,s=t._slices;if(n<=0||e<0||h<0||e===0&&h===0)return;let p=s+s,P=s+p,w=p+p,C=Q.computePositions(n,e,h,s,!0),z=o.st?new Float32Array(w*2):void 0,c=o.normal?new Float32Array(w*3):void 0,m=o.tangent?new Float32Array(w*3):void 0,u=o.bitangent?new Float32Array(w*3):void 0,i,G=o.normal||o.tangent||o.bitangent;if(G){let T=o.tangent||o.bitangent,f=0,d=0,l=0,q=Math.atan2(h-e,n),A=ot;A.z=Math.sin(q);let B=Math.cos(q),R=it,y=nt;for(i=0;i<s;i++){let V=i/s*Y.TWO_PI,tt=B*Math.cos(V),et=B*Math.sin(V);G&&(A.x=tt,A.y=et,T&&(R=b.normalize(b.cross(b.UNIT_Z,A,R),R)),o.normal&&(c[f++]=A.x,c[f++]=A.y,c[f++]=A.z,c[f++]=A.x,c[f++]=A.y,c[f++]=A.z),o.tangent&&(m[d++]=R.x,m[d++]=R.y,m[d++]=R.z,m[d++]=R.x,m[d++]=R.y,m[d++]=R.z),o.bitangent&&(y=b.normalize(b.cross(A,R,y),y),u[l++]=y.x,u[l++]=y.y,u[l++]=y.z,u[l++]=y.x,u[l++]=y.y,u[l++]=y.z))}for(i=0;i<s;i++)o.normal&&(c[f++]=0,c[f++]=0,c[f++]=-1),o.tangent&&(m[d++]=1,m[d++]=0,m[d++]=0),o.bitangent&&(u[l++]=0,u[l++]=-1,u[l++]=0);for(i=0;i<s;i++)o.normal&&(c[f++]=0,c[f++]=0,c[f++]=1),o.tangent&&(m[d++]=1,m[d++]=0,m[d++]=0),o.bitangent&&(u[l++]=0,u[l++]=1,u[l++]=0)}let $=12*s-12,r=K.createTypedArray(w,$),a=0,x=0;for(i=0;i<s-1;i++)r[a++]=x,r[a++]=x+2,r[a++]=x+3,r[a++]=x,r[a++]=x+3,r[a++]=x+1,x+=2;for(r[a++]=p-2,r[a++]=0,r[a++]=1,r[a++]=p-2,r[a++]=1,r[a++]=p-1,i=1;i<s-1;i++)r[a++]=p+i+1,r[a++]=p+i,r[a++]=p;for(i=1;i<s-1;i++)r[a++]=P,r[a++]=P+i,r[a++]=P+i+1;let U=0;if(o.st){let T=Math.max(e,h);for(i=0;i<w;i++){let f=b.fromArray(C,i*3,rt);z[U++]=(f.x+T)/(2*T),z[U++]=(f.y+T)/(2*T)}}let v=new H;o.position&&(v.position=new L({componentDatatype:S.DOUBLE,componentsPerAttribute:3,values:C})),o.normal&&(v.normal=new L({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:c})),o.tangent&&(v.tangent=new L({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:m})),o.bitangent&&(v.bitangent=new L({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:u})),o.st&&(v.st=new L({componentDatatype:S.FLOAT,componentsPerAttribute:2,values:z})),k.x=n*.5,k.y=Math.max(h,e);let I=new j(b.ZERO,E.magnitude(k));if(g(t._offsetAttribute)){n=C.length;let T=t._offsetAttribute===N.NONE?0:1,f=new Uint8Array(n/3).fill(T);v.applyOffset=new L({componentDatatype:S.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new W({attributes:v,indices:r,primitiveType:J.TRIANGLES,boundingSphere:I,offsetAttribute:t._offsetAttribute})};var M;O.getUnitCylinder=function(){return g(M)||(M=O.createGeometry(new O({topRadius:1,bottomRadius:1,length:1,vertexFormat:_.POSITION_ONLY}))),M};var yt=O;export{yt as a}; diff --git a/cesium/Workers/chunk-3VUCSHGU.js b/cesium/Workers/chunk-3VUCSHGU.js new file mode 100644 index 00000000..2aac5783 --- /dev/null +++ b/cesium/Workers/chunk-3VUCSHGU.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var e={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};Object.freeze(e);var t=e;export{t as a}; diff --git a/cesium/Workers/chunk-4KY4VMEH.js b/cesium/Workers/chunk-4KY4VMEH.js new file mode 100644 index 00000000..c09ff1bd --- /dev/null +++ b/cesium/Workers/chunk-4KY4VMEH.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as z}from"./chunk-D3TVNJ6W.js";import{j as I,k as b}from"./chunk-LNJEJFV5.js";import{a as O,c as L}from"./chunk-2AIOP76V.js";import{a as W}from"./chunk-IAE6APK2.js";import{a as m}from"./chunk-3E7FIXV7.js";import{a as v}from"./chunk-NZBME2JK.js";import{f as k}from"./chunk-6DLS2UKD.js";var Z=Math.cos,B=Math.sin,p=Math.sqrt,N={};N.computePosition=function(t,M,g,u,G,h,a){let e=M.radiiSquared,i=t.nwCorner,r=t.boundingRectangle,n=i.latitude-t.granYCos*u+G*t.granXSin,d=Z(n),X=B(n),Y=e.z*X,s=i.longitude+u*t.granYSin+G*t.granXCos,S=d*Z(s),f=d*B(s),w=e.x*S,R=e.y*f,_=p(w*S+R*f+Y*X);if(h.x=w/_,h.y=R/_,h.z=Y/_,g){let o=t.stNwCorner;k(o)?(n=o.latitude-t.stGranYCos*u+G*t.stGranXSin,s=o.longitude+u*t.stGranYSin+G*t.stGranXCos,a.x=(s-t.stWest)*t.lonScalar,a.y=(n-t.stSouth)*t.latScalar):(a.x=(s-r.west)*t.lonScalar,a.y=(n-r.south)*t.latScalar)}};var A=new b,l=new W,F=new O,j=new W,y=new z;function D(t,M,g,u,G,h,a){let e=Math.cos(M),i=u*e,r=g*e,n=Math.sin(M),d=u*n,X=g*n;y._ellipsoid=L.default,l=y.project(t,l),l=W.subtract(l,j,l);let Y=b.fromRotation(M,A);l=b.multiplyByVector(Y,l,l),l=W.add(l,j,l),t=y.unproject(l,t),h-=1,a-=1;let s=t.latitude,S=s+h*X,f=s-i*a,w=s-i*a+h*X,R=Math.max(s,S,f,w),_=Math.min(s,S,f,w),o=t.longitude,E=o+h*r,T=o+a*d,V=o+a*d+h*r,q=Math.max(o,E,T,V),x=Math.min(o,E,T,V);return{north:R,south:_,east:q,west:x,granYCos:i,granYSin:d,granXCos:r,granXSin:X,nwCorner:t}}N.computeOptions=function(t,M,g,u,G,h,a){let e=t.east,i=t.west,r=t.north,n=t.south,d=!1,X=!1;r===m.PI_OVER_TWO&&(d=!0),n===-m.PI_OVER_TWO&&(X=!0);let Y,s=r-n;i>e?Y=m.TWO_PI-i+e:Y=e-i;let S=Math.ceil(Y/M)+1,f=Math.ceil(s/M)+1,w=Y/(S-1),R=s/(f-1),_=I.northwest(t,h),o=I.center(t,F);(g!==0||u!==0)&&(o.longitude<_.longitude&&(o.longitude+=m.TWO_PI),y._ellipsoid=L.default,j=y.project(o,j));let E=R,T=w,V=0,q=0,x=I.clone(t,G),c={granYCos:E,granYSin:V,granXCos:T,granXSin:q,nwCorner:_,boundingRectangle:x,width:S,height:f,northCap:d,southCap:X};if(g!==0){let C=D(_,g,w,R,o,S,f);if(r=C.north,n=C.south,e=C.east,i=C.west,r<-m.PI_OVER_TWO||r>m.PI_OVER_TWO||n<-m.PI_OVER_TWO||n>m.PI_OVER_TWO)throw new v("Rotated rectangle is invalid. It crosses over either the north or south pole.");c.granYCos=C.granYCos,c.granYSin=C.granYSin,c.granXCos=C.granXCos,c.granXSin=C.granXSin,x.north=r,x.south=n,x.east=e,x.west=i}if(u!==0){g=g-u;let C=I.northwest(x,a),P=D(C,g,w,R,o,S,f);c.stGranYCos=P.granYCos,c.stGranXCos=P.granXCos,c.stGranYSin=P.granYSin,c.stGranXSin=P.granXSin,c.stNwCorner=C,c.stWest=P.west,c.stSouth=P.south}return c};var st=N;export{st as a}; diff --git a/cesium/Workers/chunk-4WQ4VT5S.js b/cesium/Workers/chunk-4WQ4VT5S.js new file mode 100644 index 00000000..ad6bb6b9 --- /dev/null +++ b/cesium/Workers/chunk-4WQ4VT5S.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as N}from"./chunk-RDX4QSUS.js";import{a}from"./chunk-3E7FIXV7.js";import{a as t}from"./chunk-NZBME2JK.js";import{f as i}from"./chunk-6DLS2UKD.js";var r={UNSIGNED_BYTE:N.UNSIGNED_BYTE,UNSIGNED_SHORT:N.UNSIGNED_SHORT,UNSIGNED_INT:N.UNSIGNED_INT};r.getSizeInBytes=function(e){switch(e){case r.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case r.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case r.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}throw new t("indexDatatype is required and must be a valid IndexDatatype constant.")};r.fromSizeInBytes=function(e){switch(e){case 2:return r.UNSIGNED_SHORT;case 4:return r.UNSIGNED_INT;case 1:return r.UNSIGNED_BYTE;default:throw new t("Size in bytes cannot be mapped to an IndexDatatype")}};r.validate=function(e){return i(e)&&(e===r.UNSIGNED_BYTE||e===r.UNSIGNED_SHORT||e===r.UNSIGNED_INT)};r.createTypedArray=function(e,n){if(!i(e))throw new t("numberOfVertices is required.");return e>=a.SIXTY_FOUR_KILOBYTES?new Uint32Array(n):new Uint16Array(n)};r.createTypedArrayFromArrayBuffer=function(e,n,E,o){if(!i(e))throw new t("numberOfVertices is required.");if(!i(n))throw new t("sourceArray is required.");if(!i(E))throw new t("byteOffset is required.");return e>=a.SIXTY_FOUR_KILOBYTES?new Uint32Array(n,E,o):new Uint16Array(n,E,o)};r.fromTypedArray=function(e){if(e instanceof Uint8Array)return r.UNSIGNED_BYTE;if(e instanceof Uint16Array)return r.UNSIGNED_SHORT;if(e instanceof Uint32Array)return r.UNSIGNED_INT;throw new t("array must be a Uint8Array, Uint16Array, or Uint32Array.")};Object.freeze(r);var u=r;export{u as a}; diff --git a/cesium/Workers/chunk-5AAMOBJK.js b/cesium/Workers/chunk-5AAMOBJK.js new file mode 100644 index 00000000..c380369b --- /dev/null +++ b/cesium/Workers/chunk-5AAMOBJK.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as l,b as d}from"./chunk-BPABSUDY.js";import{a as t}from"./chunk-IAE6APK2.js";import{a as s}from"./chunk-3E7FIXV7.js";import{a as f,b as r}from"./chunk-NZBME2JK.js";import{f as m}from"./chunk-6DLS2UKD.js";function o(e,n){if(r.typeOf.object("normal",e),!s.equalsEpsilon(t.magnitude(e),1,s.EPSILON6))throw new f("normal must be normalized.");r.typeOf.number("distance",n),this.normal=t.clone(e),this.distance=n}o.fromPointNormal=function(e,n,a){if(r.typeOf.object("point",e),r.typeOf.object("normal",n),!s.equalsEpsilon(t.magnitude(n),1,s.EPSILON6))throw new f("normal must be normalized.");let c=-t.dot(n,e);return m(a)?(t.clone(n,a.normal),a.distance=c,a):new o(n,c)};var b=new t;o.fromCartesian4=function(e,n){r.typeOf.object("coefficients",e);let a=t.fromCartesian4(e,b),c=e.w;if(!s.equalsEpsilon(t.magnitude(a),1,s.EPSILON6))throw new f("normal must be normalized.");return m(n)?(t.clone(a,n.normal),n.distance=c,n):new o(a,c)};o.getPointDistance=function(e,n){return r.typeOf.object("plane",e),r.typeOf.object("point",n),t.dot(e.normal,n)+e.distance};var y=new t;o.projectPointOntoPlane=function(e,n,a){r.typeOf.object("plane",e),r.typeOf.object("point",n),m(a)||(a=new t);let c=o.getPointDistance(e,n),p=t.multiplyByScalar(e.normal,c,y);return t.subtract(n,p,a)};var w=new d,j=new l,N=new t;o.transform=function(e,n,a){r.typeOf.object("plane",e),r.typeOf.object("transform",n);let c=e.normal,p=e.distance,u=d.inverseTranspose(n,w),i=l.fromElements(c.x,c.y,c.z,p,j);i=d.multiplyByVector(u,i,i);let O=t.fromCartesian4(i,N);return i=l.divideByScalar(i,t.magnitude(O),i),o.fromCartesian4(i,a)};o.clone=function(e,n){return r.typeOf.object("plane",e),m(n)?(t.clone(e.normal,n.normal),n.distance=e.distance,n):new o(e.normal,e.distance)};o.equals=function(e,n){return r.typeOf.object("left",e),r.typeOf.object("right",n),e.distance===n.distance&&t.equals(e.normal,n.normal)};o.ORIGIN_XY_PLANE=Object.freeze(new o(t.UNIT_Z,0));o.ORIGIN_YZ_PLANE=Object.freeze(new o(t.UNIT_X,0));o.ORIGIN_ZX_PLANE=Object.freeze(new o(t.UNIT_Y,0));var T=o;export{T as a}; diff --git a/cesium/Workers/chunk-5DGDPBQU.js b/cesium/Workers/chunk-5DGDPBQU.js new file mode 100644 index 00000000..04994121 --- /dev/null +++ b/cesium/Workers/chunk-5DGDPBQU.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as U}from"./chunk-LN2UT4R3.js";import{a as b}from"./chunk-QNPYEODC.js";import{a as E}from"./chunk-4WQ4VT5S.js";import{a as z}from"./chunk-6EINM7EY.js";import{c as B,d as D}from"./chunk-A4I25VN7.js";import{a as V,c as y}from"./chunk-D3TVNJ6W.js";import{b as G}from"./chunk-BPABSUDY.js";import{a as k}from"./chunk-ATKJRN2G.js";import{c as F}from"./chunk-2AIOP76V.js";import{a as M,b as I}from"./chunk-NZBME2JK.js";import{f as a}from"./chunk-6DLS2UKD.js";function v(e,n,t){e=e??0,n=n??0,t=t??0,this.value=new Float32Array([e,n,t])}Object.defineProperties(v.prototype,{componentDatatype:{get:function(){return k.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});v.fromCartesian3=function(e){return I.defined("offset",e),new v(e.x,e.y,e.z)};v.toValue=function(e,n){return I.defined("offset",e),a(n)||(n=new Float32Array([e.x,e.y,e.z])),n[0]=e.x,n[1]=e.y,n[2]=e.z,n};var $=v;function J(e,n,t){let i=!t,r=e.length,c;if(!i&&r>1){let o=e[0].modelMatrix;for(c=1;c<r;++c)if(!G.equals(o,e[c].modelMatrix)){i=!0;break}}if(i)for(c=0;c<r;++c)a(e[c].geometry)&&b.transformToWorldCoordinates(e[c]);else G.multiplyTransformation(n,e[0].modelMatrix,n)}function L(e,n){let t=e.attributes,i=t.position,r=i.values.length/i.componentsPerAttribute;t.batchId=new D({componentDatatype:k.FLOAT,componentsPerAttribute:1,values:new Float32Array(r)});let c=t.batchId.values;for(let o=0;o<r;++o)c[o]=n}function K(e){let n=e.length;for(let t=0;t<n;++t){let i=e[t];a(i.geometry)?L(i.geometry,t):a(i.westHemisphereGeometry)&&a(i.eastHemisphereGeometry)&&(L(i.westHemisphereGeometry,t),L(i.eastHemisphereGeometry,t))}}function N(e){let n=e.instances,t=e.projection,i=e.elementIndexUintSupported,r=e.scene3DOnly,c=e.vertexCacheOptimize,o=e.compressVertices,g=e.modelMatrix,s,u,m,p=n.length;for(s=0;s<p;++s)if(a(n[s].geometry)){m=n[s].geometry.primitiveType;break}for(s=1;s<p;++s)if(a(n[s].geometry)&&n[s].geometry.primitiveType!==m)throw new M("All instance geometries must have the same primitiveType.");if(J(n,g,r),!r)for(s=0;s<p;++s)a(n[s].geometry)&&b.splitLongitude(n[s]);if(K(n),c)for(s=0;s<p;++s){let f=n[s];a(f.geometry)?(b.reorderForPostVertexCache(f.geometry),b.reorderForPreVertexCache(f.geometry)):a(f.westHemisphereGeometry)&&a(f.eastHemisphereGeometry)&&(b.reorderForPostVertexCache(f.westHemisphereGeometry),b.reorderForPreVertexCache(f.westHemisphereGeometry),b.reorderForPostVertexCache(f.eastHemisphereGeometry),b.reorderForPreVertexCache(f.eastHemisphereGeometry))}let l=b.combineInstances(n);for(p=l.length,s=0;s<p;++s){u=l[s];let f=u.attributes;if(r)for(let d in f)f.hasOwnProperty(d)&&f[d].componentDatatype===k.DOUBLE&&b.encodeAttribute(u,d,`${d}3DHigh`,`${d}3DLow`);else for(let d in f)if(f.hasOwnProperty(d)&&f[d].componentDatatype===k.DOUBLE){let h=`${d}3D`,x=`${d}2D`;b.projectTo2D(u,d,h,x,t),a(u.boundingSphere)&&d==="position"&&(u.boundingSphereCV=y.fromVertices(u.attributes.position2D.values)),b.encodeAttribute(u,h,`${h}High`,`${h}Low`),b.encodeAttribute(u,x,`${x}High`,`${x}Low`)}o&&b.compressVertices(u)}if(!i){let f=[];for(p=l.length,s=0;s<p;++s)u=l[s],f=f.concat(b.fitToUnsignedShortIndices(u));l=f}return l}function P(e,n,t,i){let r,c,o,g=i.length-1;if(g>=0){let u=i[g];r=u.offset+u.count,o=u.index,c=t[o].indices.length}else r=0,o=0,c=t[o].indices.length;let s=e.length;for(let u=0;u<s;++u){let p=e[u][n];if(!a(p))continue;let l=p.indices.length;r+l>c&&(r=0,c=t[++o].indices.length),i.push({index:o,offset:r,count:l}),r+=l}}function Q(e,n){let t=[];return P(e,"geometry",n,t),P(e,"westHemisphereGeometry",n,t),P(e,"eastHemisphereGeometry",n,t),t}var S={};S.combineGeometry=function(e){let n,t,i=e.instances,r=i.length,c,o,g=!1;r>0&&(n=N(e),n.length>0&&(t=b.createAttributeLocations(n[0]),e.createPickOffsets&&(c=Q(i,n))),a(i[0].attributes)&&a(i[0].attributes.offset)&&(o=new Array(r),g=!0));let s=new Array(r),u=new Array(r);for(let m=0;m<r;++m){let p=i[m],l=p.geometry;a(l)&&(s[m]=l.boundingSphere,u[m]=l.boundingSphereCV,g&&(o[m]=p.geometry.offsetAttribute));let f=p.eastHemisphereGeometry,d=p.westHemisphereGeometry;a(f)&&a(d)&&(a(f.boundingSphere)&&a(d.boundingSphere)&&(s[m]=y.union(f.boundingSphere,d.boundingSphere)),a(f.boundingSphereCV)&&a(d.boundingSphereCV)&&(u[m]=y.union(f.boundingSphereCV,d.boundingSphereCV)))}return{geometries:n,modelMatrix:e.modelMatrix,attributeLocations:t,pickOffsets:c,offsetInstanceExtend:o,boundingSpheres:s,boundingSpheresCV:u}};function X(e,n){let t=e.attributes;for(let i in t)if(t.hasOwnProperty(i)){let r=t[i];a(r)&&a(r.values)&&n.push(r.values.buffer)}a(e.indices)&&n.push(e.indices.buffer)}function Y(e,n){let t=e.length;for(let i=0;i<t;++i)X(e[i],n)}function Z(e){let n=1,t=e.length;for(let i=0;i<t;i++){let r=e[i];if(++n,!a(r))continue;let c=r.attributes;n+=7+2*y.packedLength+(a(r.indices)?r.indices.length:0);for(let o in c)if(c.hasOwnProperty(o)&&a(c[o])){let g=c[o];n+=5+g.values.length}}return n}S.packCreateGeometryResults=function(e,n){let t=new Float64Array(Z(e)),i=[],r={},c=e.length,o=0;t[o++]=c;for(let g=0;g<c;g++){let s=e[g],u=a(s);if(t[o++]=u?1:0,!u)continue;t[o++]=s.primitiveType,t[o++]=s.geometryType,t[o++]=s.offsetAttribute??-1;let m=a(s.boundingSphere)?1:0;t[o++]=m,m&&y.pack(s.boundingSphere,t,o),o+=y.packedLength;let p=a(s.boundingSphereCV)?1:0;t[o++]=p,p&&y.pack(s.boundingSphereCV,t,o),o+=y.packedLength;let l=s.attributes,f=[];for(let h in l)l.hasOwnProperty(h)&&a(l[h])&&(f.push(h),a(r[h])||(r[h]=i.length,i.push(h)));t[o++]=f.length;for(let h=0;h<f.length;h++){let x=f[h],C=l[x];t[o++]=r[x],t[o++]=C.componentDatatype,t[o++]=C.componentsPerAttribute,t[o++]=C.normalize?1:0,t[o++]=C.values.length,t.set(C.values,o),o+=C.values.length}let d=a(s.indices)?s.indices.length:0;t[o++]=d,d>0&&(t.set(s.indices,o),o+=d)}return n.push(t.buffer),{stringTable:i,packedData:t}};S.unpackCreateGeometryResults=function(e){let n=e.stringTable,t=e.packedData,i,r=new Array(t[0]),c=0,o=1;for(;o<t.length;){if(!(t[o++]===1)){r[c++]=void 0;continue}let s=t[o++],u=t[o++],m=t[o++];m===-1&&(m=void 0);let p,l;t[o++]===1&&(p=y.unpack(t,o)),o+=y.packedLength,t[o++]===1&&(l=y.unpack(t,o)),o+=y.packedLength;let h,x,C,T=new z,W=t[o++];for(i=0;i<W;i++){let A=n[t[o++]],H=t[o++];C=t[o++];let q=t[o++]!==0;h=t[o++],x=k.createTypedArray(H,h);for(let O=0;O<h;O++)x[O]=t[o++];T[A]=new D({componentDatatype:H,componentsPerAttribute:C,normalize:q,values:x})}let w;if(h=t[o++],h>0){let A=x.length/C;for(w=E.createTypedArray(A,h),i=0;i<h;i++)w[i]=t[o++]}r[c++]=new B({primitiveType:s,geometryType:u,boundingSphere:p,boundingSphereCV:l,indices:w,attributes:T,offsetAttribute:m})}return r};function _(e,n){let t=e.length,i=new Float64Array(1+t*19),r=0;i[r++]=t;for(let c=0;c<t;c++){let o=e[c];if(G.pack(o.modelMatrix,i,r),r+=G.packedLength,a(o.attributes)&&a(o.attributes.offset)){let g=o.attributes.offset.value;i[r]=g[0],i[r+1]=g[1],i[r+2]=g[2]}r+=3}return n.push(i.buffer),i}function ee(e){let n=e,t=new Array(n[0]),i=0,r=1;for(;r<n.length;){let c=G.unpack(n,r),o;r+=G.packedLength,a(n[r])&&(o={offset:new $(n[r],n[r+1],n[r+2])}),r+=3,t[i++]={modelMatrix:c,attributes:o}}return t}S.packCombineGeometryParameters=function(e,n){let t=e.createGeometryResults,i=t.length;for(let r=0;r<i;r++)n.push(t[r].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:_(e.instances,n),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof V,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};S.unpackCombineGeometryParameters=function(e){let n=ee(e.packedInstances),t=e.createGeometryResults,i=t.length,r=0;for(let g=0;g<i;g++){let s=S.unpackCreateGeometryResults(t[g]),u=s.length;for(let m=0;m<u;m++){let p=s[m],l=n[r];l.geometry=p,++r}}let c=F.clone(e.ellipsoid),o=e.isGeographic?new V(c):new U(c);return{instances:n,ellipsoid:c,projection:o,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:G.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}};function j(e){let n=e.length,t=1+(y.packedLength+1)*n,i=new Float32Array(t),r=0;i[r++]=n;for(let c=0;c<n;++c){let o=e[c];a(o)?(i[r++]=1,y.pack(e[c],i,r)):i[r++]=0,r+=y.packedLength}return i}function R(e){let n=new Array(e[0]),t=0,i=1;for(;i<e.length;)e[i++]===1&&(n[t]=y.unpack(e,i)),++t,i+=y.packedLength;return n}S.packCombineGeometryResults=function(e,n){a(e.geometries)&&Y(e.geometries,n);let t=j(e.boundingSpheres),i=j(e.boundingSpheresCV);return n.push(t.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:t,boundingSpheresCV:i}};S.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:R(e.boundingSpheres),boundingSpheresCV:R(e.boundingSpheresCV)}};var xe=S;export{xe as a}; diff --git a/cesium/Workers/chunk-5VFNV3LW.js b/cesium/Workers/chunk-5VFNV3LW.js new file mode 100644 index 00000000..fec3190e --- /dev/null +++ b/cesium/Workers/chunk-5VFNV3LW.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as d}from"./chunk-3VUCSHGU.js";import{a as i}from"./chunk-IAE6APK2.js";import{b as a}from"./chunk-NZBME2JK.js";import{f as c}from"./chunk-6DLS2UKD.js";function t(m,n,e){this.minimum=i.clone(m??i.ZERO),this.maximum=i.clone(n??i.ZERO),c(e)?e=i.clone(e):e=i.midpoint(this.minimum,this.maximum,new i),this.center=e}t.fromCorners=function(m,n,e){return a.defined("minimum",m),a.defined("maximum",n),c(e)||(e=new t),e.minimum=i.clone(m,e.minimum),e.maximum=i.clone(n,e.maximum),e.center=i.midpoint(m,n,e.center),e};t.fromPoints=function(m,n){if(c(n)||(n=new t),!c(m)||m.length===0)return n.minimum=i.clone(i.ZERO,n.minimum),n.maximum=i.clone(i.ZERO,n.maximum),n.center=i.clone(i.ZERO,n.center),n;let e=m[0].x,u=m[0].y,o=m[0].z,r=m[0].x,h=m[0].y,l=m[0].z,A=m.length;for(let z=1;z<A;z++){let B=m[z],E=B.x,M=B.y,p=B.z;e=Math.min(E,e),r=Math.max(E,r),u=Math.min(M,u),h=Math.max(M,h),o=Math.min(p,o),l=Math.max(p,l)}let x=n.minimum;x.x=e,x.y=u,x.z=o;let f=n.maximum;return f.x=r,f.y=h,f.z=l,n.center=i.midpoint(x,f,n.center),n};t.clone=function(m,n){if(c(m))return c(n)?(n.minimum=i.clone(m.minimum,n.minimum),n.maximum=i.clone(m.maximum,n.maximum),n.center=i.clone(m.center,n.center),n):new t(m.minimum,m.maximum,m.center)};t.equals=function(m,n){return m===n||c(m)&&c(n)&&i.equals(m.center,n.center)&&i.equals(m.minimum,n.minimum)&&i.equals(m.maximum,n.maximum)};var y=new i;t.intersectPlane=function(m,n){a.defined("box",m),a.defined("plane",n),y=i.subtract(m.maximum,m.minimum,y);let e=i.multiplyByScalar(y,.5,y),u=n.normal,o=e.x*Math.abs(u.x)+e.y*Math.abs(u.y)+e.z*Math.abs(u.z),r=i.dot(m.center,u)+n.distance;return r-o>0?d.INSIDE:r+o<0?d.OUTSIDE:d.INTERSECTING};t.intersectAxisAlignedBoundingBox=function(m,n){return a.defined("box",m),a.defined("other",n),m.minimum.x<=n.maximum.x&&m.maximum.x>=n.minimum.x&&m.minimum.y<=n.maximum.y&&m.maximum.y>=n.minimum.y&&m.minimum.z<=n.maximum.z&&m.maximum.z>=n.minimum.z};t.prototype.clone=function(m){return t.clone(this,m)};t.prototype.intersectPlane=function(m){return t.intersectPlane(this,m)};t.prototype.intersectAxisAlignedBoundingBox=function(m){return t.intersectAxisAlignedBoundingBox(this,m)};t.prototype.equals=function(m){return t.equals(this,m)};var O=t;export{O as a}; diff --git a/cesium/Workers/chunk-5Z36UAB7.js b/cesium/Workers/chunk-5Z36UAB7.js new file mode 100644 index 00000000..3fca627a --- /dev/null +++ b/cesium/Workers/chunk-5Z36UAB7.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as wt}from"./chunk-ML6MR2RA.js";import{a as C}from"./chunk-AKELQO2L.js";import{a as kt}from"./chunk-4WQ4VT5S.js";import{a as Ct}from"./chunk-6EINM7EY.js";import{b as dt,c as _t,d as N}from"./chunk-A4I25VN7.js";import{c as ht}from"./chunk-D3TVNJ6W.js";import{a as M}from"./chunk-ATKJRN2G.js";import{b as lt,c as it}from"./chunk-2AIOP76V.js";import{a as s,c as pt}from"./chunk-IAE6APK2.js";import{a as E}from"./chunk-3E7FIXV7.js";import{a as g}from"./chunk-NZBME2JK.js";import{f as v}from"./chunk-6DLS2UKD.js";var yt=new s,vt=new s,Et=new s,Mt=new s,Nt=new s,Rt=new s(1,1,1),Pt=Math.cos,At=Math.sin;function x(n){n=n??pt.EMPTY_OBJECT;let m=n.radii??Rt,i=n.innerRadii??m,w=n.minimumClock??0,O=n.maximumClock??E.TWO_PI,P=n.minimumCone??0,A=n.maximumCone??E.PI,a=Math.round(n.stackPartitions??64),u=Math.round(n.slicePartitions??64),p=n.vertexFormat??C.DEFAULT;if(u<3)throw new g("options.slicePartitions cannot be less than three.");if(a<3)throw new g("options.stackPartitions cannot be less than three.");this._radii=s.clone(m),this._innerRadii=s.clone(i),this._minimumClock=w,this._maximumClock=O,this._minimumCone=P,this._maximumCone=A,this._stackPartitions=a,this._slicePartitions=u,this._vertexFormat=C.clone(p),this._offsetAttribute=n.offsetAttribute,this._workerName="createEllipsoidGeometry"}x.packedLength=2*s.packedLength+C.packedLength+7;x.pack=function(n,m,i){if(!v(n))throw new g("value is required");if(!v(m))throw new g("array is required");return i=i??0,s.pack(n._radii,m,i),i+=s.packedLength,s.pack(n._innerRadii,m,i),i+=s.packedLength,C.pack(n._vertexFormat,m,i),i+=C.packedLength,m[i++]=n._minimumClock,m[i++]=n._maximumClock,m[i++]=n._minimumCone,m[i++]=n._maximumCone,m[i++]=n._stackPartitions,m[i++]=n._slicePartitions,m[i]=n._offsetAttribute??-1,m};var bt=new s,xt=new s,Ot=new C,L={radii:bt,innerRadii:xt,vertexFormat:Ot,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};x.unpack=function(n,m,i){if(!v(n))throw new g("array is required");m=m??0;let w=s.unpack(n,m,bt);m+=s.packedLength;let O=s.unpack(n,m,xt);m+=s.packedLength;let P=C.unpack(n,m,Ot);m+=C.packedLength;let A=n[m++],a=n[m++],u=n[m++],p=n[m++],t=n[m++],o=n[m++],e=n[m];return v(i)?(i._radii=s.clone(w,i._radii),i._innerRadii=s.clone(O,i._innerRadii),i._vertexFormat=C.clone(P,i._vertexFormat),i._minimumClock=A,i._maximumClock=a,i._minimumCone=u,i._maximumCone=p,i._stackPartitions=t,i._slicePartitions=o,i._offsetAttribute=e===-1?void 0:e,i):(L.minimumClock=A,L.maximumClock=a,L.minimumCone=u,L.maximumCone=p,L.stackPartitions=t,L.slicePartitions=o,L.offsetAttribute=e===-1?void 0:e,new x(L))};x.createGeometry=function(n){let m=n._radii;if(m.x<=0||m.y<=0||m.z<=0)return;let i=n._innerRadii;if(i.x<=0||i.y<=0||i.z<=0)return;let w=n._minimumClock,O=n._maximumClock,P=n._minimumCone,A=n._maximumCone,a=n._vertexFormat,u=n._slicePartitions+1,p=n._stackPartitions+1;u=Math.round(u*Math.abs(O-w)/E.TWO_PI),p=Math.round(p*Math.abs(A-P)/E.PI),u<2&&(u=2),p<2&&(p=2);let t,o,e=0,z=[P],D=[w];for(t=0;t<p;t++)z.push(P+t*(A-P)/(p-1));for(z.push(A),o=0;o<u;o++)D.push(w+o*(O-w)/(u-1));D.push(O);let f=z.length,c=D.length,S=0,U=1,q=i.x!==m.x||i.y!==m.y||i.z!==m.z,H=!1,mt=!1,rt=!1;q&&(U=2,P>0&&(H=!0,S+=u-1),A<Math.PI&&(mt=!0,S+=u-1),(O-w)%E.TWO_PI?(rt=!0,S+=(p-1)*2+1):S+=1);let k=c*f*U,b=new Float64Array(k*3),J=new Array(k).fill(!1),ct=new Array(k).fill(!1),st=u*p*U,Tt=6*(st+S+1-(u+p)*U),r=kt.createTypedArray(st,Tt),V=a.normal?new Float32Array(k*3):void 0,Y=a.tangent?new Float32Array(k*3):void 0,j=a.bitangent?new Float32Array(k*3):void 0,X=a.st?new Float32Array(k*2):void 0,B=new Array(f),Z=new Array(f);for(t=0;t<f;t++)B[t]=At(z[t]),Z[t]=Pt(z[t]);let G=new Array(c),K=new Array(c);for(o=0;o<c;o++)K[o]=Pt(D[o]),G[o]=At(D[o]);for(t=0;t<f;t++)for(o=0;o<c;o++)b[e++]=m.x*B[t]*K[o],b[e++]=m.y*B[t]*G[o],b[e++]=m.z*Z[t];let Q=k/2;if(q)for(t=0;t<f;t++)for(o=0;o<c;o++)b[e++]=i.x*B[t]*K[o],b[e++]=i.y*B[t]*G[o],b[e++]=i.z*Z[t],J[Q]=!0,t>0&&t!==f-1&&o!==0&&o!==c-1&&(ct[Q]=!0),Q++;e=0;let T,F;for(t=1;t<f-2;t++)for(T=t*c,F=(t+1)*c,o=1;o<c-2;o++)r[e++]=F+o,r[e++]=F+o+1,r[e++]=T+o+1,r[e++]=F+o,r[e++]=T+o+1,r[e++]=T+o;if(q){let R=f*c;for(t=1;t<f-2;t++)for(T=R+t*c,F=R+(t+1)*c,o=1;o<c-2;o++)r[e++]=F+o,r[e++]=T+o,r[e++]=T+o+1,r[e++]=F+o,r[e++]=T+o+1,r[e++]=F+o+1}let h,l;if(q){if(H)for(l=f*c,t=1;t<c-2;t++)r[e++]=t,r[e++]=t+1,r[e++]=l+t+1,r[e++]=t,r[e++]=l+t+1,r[e++]=l+t;if(mt)for(h=f*c-c,l=f*c*U-c,t=1;t<c-2;t++)r[e++]=h+t+1,r[e++]=h+t,r[e++]=l+t,r[e++]=h+t+1,r[e++]=l+t,r[e++]=l+t+1}if(rt){for(t=1;t<f-2;t++)l=c*f+c*t,h=c*t,r[e++]=l,r[e++]=h+c,r[e++]=h,r[e++]=l,r[e++]=l+c,r[e++]=h+c;for(t=1;t<f-2;t++)l=c*f+c*(t+1)-1,h=c*(t+1)-1,r[e++]=h+c,r[e++]=l,r[e++]=h,r[e++]=h+c,r[e++]=l+c,r[e++]=l}let y=new Ct;a.position&&(y.position=new N({componentDatatype:M.DOUBLE,componentsPerAttribute:3,values:b}));let at=0,$=0,I=0,tt=0,Ft=k/2,ft,ut=it.fromCartesian3(m),Lt=it.fromCartesian3(i);if(a.st||a.normal||a.tangent||a.bitangent){for(t=0;t<k;t++){ft=J[t]?Lt:ut;let R=s.fromArray(b,t*3,yt),_=ft.geodeticSurfaceNormal(R,vt);if(ct[t]&&s.negate(_,_),a.st){let d=lt.negate(_,Nt);X[at++]=Math.atan2(d.y,d.x)/E.TWO_PI+.5,X[at++]=Math.asin(_.z)/Math.PI+.5}if(a.normal&&(V[$++]=_.x,V[$++]=_.y,V[$++]=_.z),a.tangent||a.bitangent){let d=Et,nt=0,et;if(J[t]&&(nt=Ft),!H&&t>=nt&&t<nt+c*2?et=s.UNIT_X:et=s.UNIT_Z,s.cross(et,_,d),s.normalize(d,d),a.tangent&&(Y[I++]=d.x,Y[I++]=d.y,Y[I++]=d.z),a.bitangent){let W=s.cross(_,d,Mt);s.normalize(W,W),j[tt++]=W.x,j[tt++]=W.y,j[tt++]=W.z}}}a.st&&(y.st=new N({componentDatatype:M.FLOAT,componentsPerAttribute:2,values:X})),a.normal&&(y.normal=new N({componentDatatype:M.FLOAT,componentsPerAttribute:3,values:V})),a.tangent&&(y.tangent=new N({componentDatatype:M.FLOAT,componentsPerAttribute:3,values:Y})),a.bitangent&&(y.bitangent=new N({componentDatatype:M.FLOAT,componentsPerAttribute:3,values:j}))}if(v(n._offsetAttribute)){let R=b.length,_=n._offsetAttribute===wt.NONE?0:1,d=new Uint8Array(R/3).fill(_);y.applyOffset=new N({componentDatatype:M.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new _t({attributes:y,indices:r,primitiveType:dt.TRIANGLES,boundingSphere:ht.fromEllipsoid(ut),offsetAttribute:n._offsetAttribute})};var ot;x.getUnitEllipsoid=function(){return v(ot)||(ot=x.createGeometry(new x({radii:new s(1,1,1),vertexFormat:C.POSITION_ONLY}))),ot};var Kt=x;export{Kt as a}; diff --git a/cesium/Workers/chunk-6AEO73KW.js b/cesium/Workers/chunk-6AEO73KW.js new file mode 100644 index 00000000..ab88c30f --- /dev/null +++ b/cesium/Workers/chunk-6AEO73KW.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as G}from"./chunk-WGIRJIIK.js";import{a as z}from"./chunk-37ETYCYM.js";import{b as B}from"./chunk-SRA5MBUT.js";import{a as C}from"./chunk-5AAMOBJK.js";import{b as L}from"./chunk-BPABSUDY.js";import{a as D,c as I}from"./chunk-2AIOP76V.js";import{a}from"./chunk-IAE6APK2.js";import{a as S}from"./chunk-3E7FIXV7.js";import{a as x}from"./chunk-NZBME2JK.js";import{f as T}from"./chunk-6DLS2UKD.js";var p={};p.numberOfPoints=function(r,n,o){let e=a.distance(r,n);return Math.ceil(e/o)};p.numberOfPointsRhumbLine=function(r,n,o){let e=Math.pow(r.longitude-n.longitude,2)+Math.pow(r.latitude-n.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(e/(o*o))))};var Z=new D;p.extractHeights=function(r,n){let o=r.length,e=new Array(o);for(let t=0;t<o;t++){let l=r[t];e[t]=n.cartesianToCartographic(l,Z).height}return e};var Y=new L,V=new a,_=new a,F=new C(a.UNIT_X,0),v=new a,j=new C(a.UNIT_X,0),J=new a,K=new a,O=[];function U(r,n,o){let e=O;e.length=r;let t;if(n===o){for(t=0;t<r;t++)e[t]=n;return e}let u=(o-n)/r;for(t=0;t<r;t++){let d=n+t*u;e[t]=d}return e}var N=new D,E=new D,b=new a,k=new a,Q=new a,M=new G,R=new z;function W(r,n,o,e,t,l,u,d){let c=e.scaleToGeodeticSurface(r,k),w=e.scaleToGeodeticSurface(n,Q),h=p.numberOfPoints(r,n,o),f=e.cartesianToCartographic(c,N),y=e.cartesianToCartographic(w,E),g=U(h,t,l);M.setEndPoints(f,y);let P=M.surfaceDistance/h,i=d;f.height=t;let s=e.cartographicToCartesian(f,b);a.pack(s,u,i),i+=3;for(let m=1;m<h;m++){let A=M.interpolateUsingSurfaceDistance(m*P,E);A.height=g[m],s=e.cartographicToCartesian(A,b),a.pack(s,u,i),i+=3}return i}function $(r,n,o,e,t,l,u,d){let c=e.cartesianToCartographic(r,N),w=e.cartesianToCartographic(n,E),h=p.numberOfPointsRhumbLine(c,w,o);c.height=0,w.height=0;let f=U(h,t,l);R.ellipsoid.equals(e)||(R=new z(void 0,void 0,e)),R.setEndPoints(c,w);let y=R.surfaceDistance/h,g=d;c.height=t;let P=e.cartographicToCartesian(c,b);a.pack(P,u,g),g+=3;for(let i=1;i<h;i++){let s=R.interpolateUsingSurfaceDistance(i*y,E);s.height=f[i],P=e.cartographicToCartesian(s,b),a.pack(P,u,g),g+=3}return g}p.wrapLongitude=function(r,n){let o=[],e=[];if(T(r)&&r.length>0){n=n??L.IDENTITY;let t=L.inverseTransformation(n,Y),l=L.multiplyByPoint(t,a.ZERO,V),u=a.normalize(L.multiplyByPointAsVector(t,a.UNIT_Y,_),_),d=C.fromPointNormal(l,u,F),c=a.normalize(L.multiplyByPointAsVector(t,a.UNIT_X,v),v),w=C.fromPointNormal(l,c,j),h=1;o.push(a.clone(r[0]));let f=o[0],y=r.length;for(let g=1;g<y;++g){let P=r[g];if(C.getPointDistance(w,f)<0||C.getPointDistance(w,P)<0){let i=B.lineSegmentPlane(f,P,d,J);if(T(i)){let s=a.multiplyByScalar(u,5e-9,K);C.getPointDistance(d,f)<0&&a.negate(s,s),o.push(a.add(i,s,new a)),e.push(h+1),a.negate(s,s),o.push(a.add(i,s,new a)),h=1}}o.push(a.clone(r[g])),h++,f=P}e.push(h)}return{positions:o,lengths:e}};p.generateArc=function(r){T(r)||(r={});let n=r.positions;if(!T(n))throw new x("options.positions is required.");let o=n.length,e=r.ellipsoid??I.default,t=r.height??0,l=Array.isArray(t);if(o<1)return[];if(o===1){let i=e.scaleToGeodeticSurface(n[0],k);if(t=l?t[0]:t,t!==0){let s=e.geodeticSurfaceNormal(i,b);a.multiplyByScalar(s,t,s),a.add(i,s,i)}return[i.x,i.y,i.z]}let u=r.minDistance;if(!T(u)){let i=r.granularity??S.RADIANS_PER_DEGREE;u=S.chordLength(i,e.maximumRadius)}let d=0,c;for(c=0;c<o-1;c++)d+=p.numberOfPoints(n[c],n[c+1],u);let w=(d+1)*3,h=new Array(w),f=0;for(c=0;c<o-1;c++){let i=n[c],s=n[c+1],m=l?t[c]:t,A=l?t[c+1]:t;f=W(i,s,u,e,m,A,h,f)}O.length=0;let y=n[o-1],g=e.cartesianToCartographic(y,N);g.height=l?t[o-1]:t;let P=e.cartographicToCartesian(g,b);return a.pack(P,h,w-3),h};var H=new D,tt=new D;p.generateRhumbArc=function(r){T(r)||(r={});let n=r.positions;if(!T(n))throw new x("options.positions is required.");let o=n.length,e=r.ellipsoid??I.default,t=r.height??0,l=Array.isArray(t);if(o<1)return[];if(o===1){let m=e.scaleToGeodeticSurface(n[0],k);if(t=l?t[0]:t,t!==0){let A=e.geodeticSurfaceNormal(m,b);a.multiplyByScalar(A,t,A),a.add(m,A,m)}return[m.x,m.y,m.z]}let u=r.granularity??S.RADIANS_PER_DEGREE,d=0,c,w=e.cartesianToCartographic(n[0],H),h;for(c=0;c<o-1;c++)h=e.cartesianToCartographic(n[c+1],tt),d+=p.numberOfPointsRhumbLine(w,h,u),w=D.clone(h,H);let f=(d+1)*3,y=new Array(f),g=0;for(c=0;c<o-1;c++){let m=n[c],A=n[c+1],q=l?t[c]:t,X=l?t[c+1]:t;g=$(m,A,u,e,q,X,y,g)}O.length=0;let P=n[o-1],i=e.cartesianToCartographic(P,N);i.height=l?t[o-1]:t;let s=e.cartographicToCartesian(i,b);return a.pack(s,y,f-3),y};p.generateCartesianArc=function(r){let n=p.generateArc(r),o=n.length/3,e=new Array(o);for(let t=0;t<o;t++)e[t]=a.unpack(n,t*3);return e};p.generateCartesianRhumbArc=function(r){let n=p.generateRhumbArc(r),o=n.length/3,e=new Array(o);for(let t=0;t<o;t++)e[t]=a.unpack(n,t*3);return e};var gt=p;export{gt as a}; diff --git a/cesium/Workers/chunk-6DLS2UKD.js b/cesium/Workers/chunk-6DLS2UKD.js new file mode 100644 index 00000000..5db275a5 --- /dev/null +++ b/cesium/Workers/chunk-6DLS2UKD.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var i=Object.create;var t=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var o=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var p=(n,e,d)=>e in n?t(n,e,{enumerable:!0,configurable:!0,writable:!0,value:d}):n[e]=d;var b=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,d)=>(typeof require<"u"?require:e)[d]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')}),g=n=>e=>{var d=n[e];if(d)return d();throw new Error("Module not found in bundle: "+e)};var h=(n,e)=>()=>{try{return e||n((e={exports:{}}).exports,e),e.exports}catch(d){throw e=0,d}};var x=(n,e,d,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let f of l(e))!c.call(n,f)&&f!==d&&t(n,f,{get:()=>e[f],enumerable:!(u=r(e,f))||u.enumerable});return n};var j=(n,e,d)=>(d=n!=null?i(o(n)):{},x(e||!n||!n.__esModule?t(d,"default",{value:n,enumerable:!0}):d,n));var k=(n,e,d)=>p(n,typeof e!="symbol"?e+"":e,d);function a(n){return n!=null}var q=a;export{b as a,g as b,h as c,j as d,k as e,q as f}; diff --git a/cesium/Workers/chunk-6EINM7EY.js b/cesium/Workers/chunk-6EINM7EY.js new file mode 100644 index 00000000..221e6b4f --- /dev/null +++ b/cesium/Workers/chunk-6EINM7EY.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{c as e}from"./chunk-IAE6APK2.js";function r(t){t=t??e.EMPTY_OBJECT,this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}var n=r;export{n as a}; diff --git a/cesium/Workers/chunk-6W2XFGWI.js b/cesium/Workers/chunk-6W2XFGWI.js new file mode 100644 index 00000000..570caa12 --- /dev/null +++ b/cesium/Workers/chunk-6W2XFGWI.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as c}from"./chunk-IAE6APK2.js";import{b as t}from"./chunk-NZBME2JK.js";import{f as g}from"./chunk-6DLS2UKD.js";function f(){this.high=c.clone(c.ZERO),this.low=c.clone(c.ZERO)}f.encode=function(n,o){t.typeOf.number("value",n),g(o)||(o={high:0,low:0});let h;return n>=0?(h=Math.floor(n/65536)*65536,o.high=h,o.low=n-h):(h=Math.floor(-n/65536)*65536,o.high=-h,o.low=n+h),o};var e={high:0,low:0};f.fromCartesian=function(n,o){t.typeOf.object("cartesian",n),g(o)||(o=new f);let h=o.high,i=o.low;return f.encode(n.x,e),h.x=e.high,i.x=e.low,f.encode(n.y,e),h.y=e.high,i.y=e.low,f.encode(n.z,e),h.z=e.high,i.z=e.low,o};var m=new f;f.writeElements=function(n,o,h){t.defined("cartesianArray",o),t.typeOf.number("index",h),t.typeOf.number.greaterThanOrEquals("index",h,0),f.fromCartesian(n,m);let i=m.high,w=m.low;o[h]=i.x,o[h+1]=i.y,o[h+2]=i.z,o[h+3]=w.x,o[h+4]=w.y,o[h+5]=w.z};var O=f;export{O as a}; diff --git a/cesium/Workers/chunk-7GCQCPLT.js b/cesium/Workers/chunk-7GCQCPLT.js new file mode 100644 index 00000000..42838748 --- /dev/null +++ b/cesium/Workers/chunk-7GCQCPLT.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var r,u=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&u.decode();var a=null;function h(){return(a===null||a.byteLength===0)&&(a=new Uint8Array(r.memory.buffer)),a}function b(e,t){return e=e>>>0,u.decode(h().subarray(e,e+t))}var o=null;function g(){return(o===null||o.byteLength===0)&&(o=new Uint32Array(r.memory.buffer)),o}function m(e,t){return e=e>>>0,g().subarray(e/4,e/4+t)}var y=0;function x(e,t){let n=t(e.length*4,4)>>>0;return g().set(e,n/4),y=e.length,n}function c(e){let t=r.__wbindgen_export_0.get(e);return r.__externref_table_dealloc(e),t}function U(e,t,n,i,_){let s=r.generate_splat_texture(e,t,n,i,_);if(s[2])throw c(s[1]);return f.__wrap(s[0])}function M(e,t,n){let i=r.radix_sort_gaussians_indexes(e,t,n);if(i[2])throw c(i[1]);return c(i[0])}var w=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>r.__wbg_texturedata_free(e>>>0,1)),f=class e{static __wrap(t){t=t>>>0;let n=Object.create(e.prototype);return n.__wbg_ptr=t,w.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,w.unregister(this),t}free(){let t=this.__destroy_into_raw();r.__wbg_texturedata_free(t,0)}get data(){let t=r.texturedata_data(this.__wbg_ptr);var n=m(t[0],t[1]).slice();return r.__wbindgen_free(t[0],t[1]*4,4),n}get width(){return r.texturedata_width(this.__wbg_ptr)>>>0}get height(){return r.texturedata_height(this.__wbg_ptr)>>>0}static new(t,n,i){let _=x(t,r.__wbindgen_malloc),s=y,p=r.texturedata_new(_,s,n,i);return e.__wrap(p)}};async function A(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}let n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}function d(){let e={};return e.wbg={},e.wbg.__wbg_buffer_609cc3eee51ed158=function(t){return t.buffer},e.wbg.__wbg_length_3b4f022188ae8db6=function(t){return t.length},e.wbg.__wbg_length_a446193dc22c12f8=function(t){return t.length},e.wbg.__wbg_new_780abee5c1739fd7=function(t){return new Float32Array(t)},e.wbg.__wbg_new_a12002a7f91c75be=function(t){return new Uint8Array(t)},e.wbg.__wbg_new_e3b321dcfef89fc7=function(t){return new Uint32Array(t)},e.wbg.__wbg_newwithbyteoffsetandlength_f1dead44d1fc7212=function(t,n,i){return new Uint32Array(t,n>>>0,i>>>0)},e.wbg.__wbg_set_10bad9bee0e9c58b=function(t,n,i){t.set(n,i>>>0)},e.wbg.__wbg_set_65595bdd868b3009=function(t,n,i){t.set(n,i>>>0)},e.wbg.__wbindgen_init_externref_table=function(){let t=r.__wbindgen_export_0,n=t.grow(4);t.set(0,void 0),t.set(n+0,void 0),t.set(n+1,null),t.set(n+2,!0),t.set(n+3,!1)},e.wbg.__wbindgen_memory=function(){return r.memory},e.wbg.__wbindgen_string_new=function(t,n){return b(t,n)},e.wbg.__wbindgen_throw=function(t,n){throw new Error(b(t,n))},e}function l(e,t){return r=e.exports,W.__wbindgen_wasm_module=t,o=null,a=null,r.__wbindgen_start(),r}function O(e){if(r!==void 0)return r;typeof e<"u"&&(Object.getPrototypeOf(e)===Object.prototype?{module:e}=e:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=d();e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e));let n=new WebAssembly.Instance(e,t);return l(n,e)}async function W(e){if(r!==void 0)return r;typeof e<"u"&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),typeof e>"u"&&(e=new URL("wasm_splats_bg.wasm",import.meta.url));let t=d();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:i}=await A(await e,t);return l(n,i)}export{U as a,M as b,O as c}; diff --git a/cesium/Workers/chunk-7TN3TOVQ.js b/cesium/Workers/chunk-7TN3TOVQ.js new file mode 100644 index 00000000..8fc058a2 --- /dev/null +++ b/cesium/Workers/chunk-7TN3TOVQ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as C}from"./chunk-6AEO73KW.js";import{a as P}from"./chunk-G2QPRBZU.js";import{a as L}from"./chunk-2AIOP76V.js";import{a as O}from"./chunk-IAE6APK2.js";import{a as y}from"./chunk-3E7FIXV7.js";import{f as S}from"./chunk-6DLS2UKD.js";var T={};function b(a,e){return y.equalsEpsilon(a.latitude,e.latitude,y.EPSILON10)&&y.equalsEpsilon(a.longitude,e.longitude,y.EPSILON10)}var q=new L,v=new L;function w(a,e,i,h){e=P(e,O.equalsEpsilon);let p=e.length;if(p<2)return;let E=S(h),u=S(i),l=new Array(p),g=new Array(p),r=new Array(p),d=e[0];l[0]=d;let f=a.cartesianToCartographic(d,q);u&&(f.height=i[0]),g[0]=f.height,E?r[0]=h[0]:r[0]=0;let o=g[0],m=r[0],t=o===m,n=1;for(let c=1;c<p;++c){let A=e[c],s=a.cartesianToCartographic(A,v);u&&(s.height=i[c]),t=t&&s.height===0,b(f,s)?f.height<s.height&&(g[n-1]=s.height):(l[n]=A,g[n]=s.height,E?r[n]=h[c]:r[n]=0,t=t&&g[n]===r[n],L.clone(s,f),++n)}if(!(t||n<2))return l.length=n,g.length=n,r.length=n,{positions:l,topHeights:g,bottomHeights:r}}var D=new Array(2),F=new Array(2),B={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};T.computePositions=function(a,e,i,h,p,E){let u=w(a,e,i,h);if(!S(u))return;e=u.positions,i=u.topHeights,h=u.bottomHeights;let l=e.length,g=l-2,r,d,f=y.chordLength(p,a.maximumRadius),o=B;if(o.minDistance=f,o.ellipsoid=a,E){let m=0,t;for(t=0;t<l-1;t++)m+=C.numberOfPoints(e[t],e[t+1],f)+1;r=new Float64Array(m*3),d=new Float64Array(m*3);let n=D,c=F;o.positions=n,o.height=c;let A=0;for(t=0;t<l-1;t++){n[0]=e[t],n[1]=e[t+1],c[0]=i[t],c[1]=i[t+1];let s=C.generateArc(o);r.set(s,A),c[0]=h[t],c[1]=h[t+1],d.set(C.generateArc(o),A),A+=s.length}}else o.positions=e,o.height=i,r=new Float64Array(C.generateArc(o)),o.height=h,d=new Float64Array(C.generateArc(o));return{bottomPositions:d,topPositions:r,numCorners:g}};var j=T;export{j as a}; diff --git a/cesium/Workers/chunk-A4I25VN7.js b/cesium/Workers/chunk-A4I25VN7.js new file mode 100644 index 00000000..4c9f5a82 --- /dev/null +++ b/cesium/Workers/chunk-A4I25VN7.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{h as O,i as R,j as G,k as L}from"./chunk-LNJEJFV5.js";import{b as E}from"./chunk-BPABSUDY.js";import{a as u}from"./chunk-RDX4QSUS.js";import{a as N,b as s}from"./chunk-2AIOP76V.js";import{a as S,b as y,c as A}from"./chunk-IAE6APK2.js";import{a as I,b as w}from"./chunk-NZBME2JK.js";import{f}from"./chunk-6DLS2UKD.js";var F={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3};Object.freeze(F);var M=F;var e={POINTS:u.POINTS,LINES:u.LINES,LINE_LOOP:u.LINE_LOOP,LINE_STRIP:u.LINE_STRIP,TRIANGLES:u.TRIANGLES,TRIANGLE_STRIP:u.TRIANGLE_STRIP,TRIANGLE_FAN:u.TRIANGLE_FAN};e.isLines=function(t){return t===e.LINES||t===e.LINE_LOOP||t===e.LINE_STRIP};e.isTriangles=function(t){return t===e.TRIANGLES||t===e.TRIANGLE_STRIP||t===e.TRIANGLE_FAN};e.validate=function(t){return t===e.POINTS||t===e.LINES||t===e.LINE_LOOP||t===e.LINE_STRIP||t===e.TRIANGLES||t===e.TRIANGLE_STRIP||t===e.TRIANGLE_FAN};Object.freeze(e);var g=e;function _(t){t=t??A.EMPTY_OBJECT,w.typeOf.object("options.attributes",t.attributes),this.attributes=t.attributes,this.indices=t.indices,this.primitiveType=t.primitiveType??g.TRIANGLES,this.boundingSphere=t.boundingSphere,this.geometryType=t.geometryType??M.NONE,this.boundingSphereCV=t.boundingSphereCV,this.offsetAttribute=t.offsetAttribute}_.computeNumberOfVertices=function(t){w.typeOf.object("geometry",t);let c=-1;for(let a in t.attributes)if(t.attributes.hasOwnProperty(a)&&f(t.attributes[a])&&f(t.attributes[a].values)){let o=t.attributes[a],r=o.values.length/o.componentsPerAttribute;if(c!==r&&c!==-1)throw new I("All attribute lists must have the same number of attributes.");c=r}return c};var W=new N,H=new S,V=new E,Z=[new N,new N,new N],K=[new s,new s,new s],$=[new s,new s,new s],tt=new S,et=new O,rt=new E,nt=new L;_._textureCoordinateRotationPoints=function(t,c,a,o){let r,D=G.center(o,W),Y=N.toCartesian(D,a,H),z=R.eastNorthUpToFixedFrame(Y,a,V),C=E.inverse(z,V),b=K,m=Z;m[0].longitude=o.west,m[0].latitude=o.south,m[1].longitude=o.west,m[1].latitude=o.north,m[2].longitude=o.east,m[2].latitude=o.south;let n=tt;for(r=0;r<3;r++)N.toCartesian(m[r],a,n),n=E.multiplyByPointAsVector(C,n,n),b[r].x=n.x,b[r].y=n.y;let B=O.fromAxisAngle(S.UNIT_Z,-c,et),v=y.fromQuaternion(B,rt),j=t.length,T=Number.POSITIVE_INFINITY,p=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY,d=Number.NEGATIVE_INFINITY;for(r=0;r<j;r++)n=E.multiplyByPointAsVector(C,t[r],n),n=y.multiplyByVector(v,n,n),T=Math.min(T,n.x),p=Math.min(p,n.y),x=Math.max(x,n.x),d=Math.max(d,n.y);let k=L.fromRotation(c,nt),i=$;i[0].x=T,i[0].y=p,i[1].x=T,i[1].y=d,i[2].x=x,i[2].y=p;let l=b[0],X=b[2].x-l.x,q=b[1].y-l.y;for(r=0;r<3;r++){let h=i[r];L.multiplyByVector(k,h,h),h.x=(h.x-l.x)/X,h.y=(h.y-l.y)/q}let J=i[0],Q=i[1],U=i[2],P=new Array(6);return s.pack(J,P),s.pack(Q,P,2),s.pack(U,P,4),P};var Lt=_;function ot(t){if(t=t??A.EMPTY_OBJECT,!f(t.componentDatatype))throw new I("options.componentDatatype is required.");if(!f(t.componentsPerAttribute))throw new I("options.componentsPerAttribute is required.");if(t.componentsPerAttribute<1||t.componentsPerAttribute>4)throw new I("options.componentsPerAttribute must be between 1 and 4.");if(!f(t.values))throw new I("options.values is required.");this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=t.normalize??!1,this.values=t.values}var Ot=ot;export{M as a,g as b,Lt as c,Ot as d}; diff --git a/cesium/Workers/chunk-AJH5KBOO.js b/cesium/Workers/chunk-AJH5KBOO.js new file mode 100644 index 00000000..db097f4e --- /dev/null +++ b/cesium/Workers/chunk-AJH5KBOO.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var e={NONE:0,GEODESIC:1,RHUMB:2};Object.freeze(e);var t=e;export{t as a}; diff --git a/cesium/Workers/chunk-AKELQO2L.js b/cesium/Workers/chunk-AKELQO2L.js new file mode 100644 index 00000000..619fecd4 --- /dev/null +++ b/cesium/Workers/chunk-AKELQO2L.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{c as O}from"./chunk-IAE6APK2.js";import{a as f}from"./chunk-NZBME2JK.js";import{f as t}from"./chunk-6DLS2UKD.js";function n(e){e=e??O.EMPTY_OBJECT,this.position=e.position??!1,this.normal=e.normal??!1,this.st=e.st??!1,this.bitangent=e.bitangent??!1,this.tangent=e.tangent??!1,this.color=e.color??!1}n.POSITION_ONLY=Object.freeze(new n({position:!0}));n.POSITION_AND_NORMAL=Object.freeze(new n({position:!0,normal:!0}));n.POSITION_NORMAL_AND_ST=Object.freeze(new n({position:!0,normal:!0,st:!0}));n.POSITION_AND_ST=Object.freeze(new n({position:!0,st:!0}));n.POSITION_AND_COLOR=Object.freeze(new n({position:!0,color:!0}));n.ALL=Object.freeze(new n({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));n.DEFAULT=n.POSITION_NORMAL_AND_ST;n.packedLength=6;n.pack=function(e,o,i){if(!t(e))throw new f("value is required");if(!t(o))throw new f("array is required");return i=i??0,o[i++]=e.position?1:0,o[i++]=e.normal?1:0,o[i++]=e.st?1:0,o[i++]=e.tangent?1:0,o[i++]=e.bitangent?1:0,o[i]=e.color?1:0,o};n.unpack=function(e,o,i){if(!t(e))throw new f("array is required");return o=o??0,t(i)||(i=new n),i.position=e[o++]===1,i.normal=e[o++]===1,i.st=e[o++]===1,i.tangent=e[o++]===1,i.bitangent=e[o++]===1,i.color=e[o]===1,i};n.clone=function(e,o){if(t(e))return t(o)||(o=new n),o.position=e.position,o.normal=e.normal,o.st=e.st,o.tangent=e.tangent,o.bitangent=e.bitangent,o.color=e.color,o};var _=n;export{_ as a}; diff --git a/cesium/Workers/chunk-ALIHIWSS.js b/cesium/Workers/chunk-ALIHIWSS.js new file mode 100644 index 00000000..c040eb64 --- /dev/null +++ b/cesium/Workers/chunk-ALIHIWSS.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as b}from"./chunk-ML6MR2RA.js";import{a as u}from"./chunk-AKELQO2L.js";import{a as O}from"./chunk-6EINM7EY.js";import{b as w,c as h,d as y}from"./chunk-A4I25VN7.js";import{c as l}from"./chunk-D3TVNJ6W.js";import{a as p}from"./chunk-ATKJRN2G.js";import{a as i,c as A}from"./chunk-IAE6APK2.js";import{a as d,b as c}from"./chunk-NZBME2JK.js";import{f as x}from"./chunk-6DLS2UKD.js";var D=new i;function f(r){r=r??A.EMPTY_OBJECT;let o=r.minimum,m=r.maximum;if(c.typeOf.object("min",o),c.typeOf.object("max",m),x(r.offsetAttribute)&&r.offsetAttribute===b.TOP)throw new d("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");let a=r.vertexFormat??u.DEFAULT;this._minimum=i.clone(o),this._maximum=i.clone(m),this._vertexFormat=a,this._offsetAttribute=r.offsetAttribute,this._workerName="createBoxGeometry"}f.fromDimensions=function(r){r=r??A.EMPTY_OBJECT;let o=r.dimensions;c.typeOf.object("dimensions",o),c.typeOf.number.greaterThanOrEquals("dimensions.x",o.x,0),c.typeOf.number.greaterThanOrEquals("dimensions.y",o.y,0),c.typeOf.number.greaterThanOrEquals("dimensions.z",o.z,0);let m=i.multiplyByScalar(o,.5,new i);return new f({minimum:i.negate(m,new i),maximum:m,vertexFormat:r.vertexFormat,offsetAttribute:r.offsetAttribute})};f.fromAxisAlignedBoundingBox=function(r){return c.typeOf.object("boundingBox",r),new f({minimum:r.minimum,maximum:r.maximum})};f.packedLength=2*i.packedLength+u.packedLength+1;f.pack=function(r,o,m){return c.typeOf.object("value",r),c.defined("array",o),m=m??0,i.pack(r._minimum,o,m),i.pack(r._maximum,o,m+i.packedLength),u.pack(r._vertexFormat,o,m+2*i.packedLength),o[m+2*i.packedLength+u.packedLength]=r._offsetAttribute??-1,o};var _=new i,g=new i,k=new u,F={minimum:_,maximum:g,vertexFormat:k,offsetAttribute:void 0};f.unpack=function(r,o,m){c.defined("array",r),o=o??0;let a=i.unpack(r,o,_),s=i.unpack(r,o+i.packedLength,g),n=u.unpack(r,o+2*i.packedLength,k),e=r[o+2*i.packedLength+u.packedLength];return x(m)?(m._minimum=i.clone(a,m._minimum),m._maximum=i.clone(s,m._maximum),m._vertexFormat=u.clone(n,m._vertexFormat),m._offsetAttribute=e===-1?void 0:e,m):(F.offsetAttribute=e===-1?void 0:e,new f(F))};f.createGeometry=function(r){let o=r._minimum,m=r._maximum,a=r._vertexFormat;if(i.equals(o,m))return;let s=new O,n,e;if(a.position&&(a.st||a.normal||a.tangent||a.bitangent)){if(a.position&&(e=new Float64Array(72),e[0]=o.x,e[1]=o.y,e[2]=m.z,e[3]=m.x,e[4]=o.y,e[5]=m.z,e[6]=m.x,e[7]=m.y,e[8]=m.z,e[9]=o.x,e[10]=m.y,e[11]=m.z,e[12]=o.x,e[13]=o.y,e[14]=o.z,e[15]=m.x,e[16]=o.y,e[17]=o.z,e[18]=m.x,e[19]=m.y,e[20]=o.z,e[21]=o.x,e[22]=m.y,e[23]=o.z,e[24]=m.x,e[25]=o.y,e[26]=o.z,e[27]=m.x,e[28]=m.y,e[29]=o.z,e[30]=m.x,e[31]=m.y,e[32]=m.z,e[33]=m.x,e[34]=o.y,e[35]=m.z,e[36]=o.x,e[37]=o.y,e[38]=o.z,e[39]=o.x,e[40]=m.y,e[41]=o.z,e[42]=o.x,e[43]=m.y,e[44]=m.z,e[45]=o.x,e[46]=o.y,e[47]=m.z,e[48]=o.x,e[49]=m.y,e[50]=o.z,e[51]=m.x,e[52]=m.y,e[53]=o.z,e[54]=m.x,e[55]=m.y,e[56]=m.z,e[57]=o.x,e[58]=m.y,e[59]=m.z,e[60]=o.x,e[61]=o.y,e[62]=o.z,e[63]=m.x,e[64]=o.y,e[65]=o.z,e[66]=m.x,e[67]=o.y,e[68]=m.z,e[69]=o.x,e[70]=o.y,e[71]=m.z,s.position=new y({componentDatatype:p.DOUBLE,componentsPerAttribute:3,values:e})),a.normal){let t=new Float32Array(72);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=1,t[9]=0,t[10]=0,t[11]=1,t[12]=0,t[13]=0,t[14]=-1,t[15]=0,t[16]=0,t[17]=-1,t[18]=0,t[19]=0,t[20]=-1,t[21]=0,t[22]=0,t[23]=-1,t[24]=1,t[25]=0,t[26]=0,t[27]=1,t[28]=0,t[29]=0,t[30]=1,t[31]=0,t[32]=0,t[33]=1,t[34]=0,t[35]=0,t[36]=-1,t[37]=0,t[38]=0,t[39]=-1,t[40]=0,t[41]=0,t[42]=-1,t[43]=0,t[44]=0,t[45]=-1,t[46]=0,t[47]=0,t[48]=0,t[49]=1,t[50]=0,t[51]=0,t[52]=1,t[53]=0,t[54]=0,t[55]=1,t[56]=0,t[57]=0,t[58]=1,t[59]=0,t[60]=0,t[61]=-1,t[62]=0,t[63]=0,t[64]=-1,t[65]=0,t[66]=0,t[67]=-1,t[68]=0,t[69]=0,t[70]=-1,t[71]=0,s.normal=new y({componentDatatype:p.FLOAT,componentsPerAttribute:3,values:t})}if(a.st){let t=new Float32Array(48);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=1,t[5]=1,t[6]=0,t[7]=1,t[8]=1,t[9]=0,t[10]=0,t[11]=0,t[12]=0,t[13]=1,t[14]=1,t[15]=1,t[16]=0,t[17]=0,t[18]=1,t[19]=0,t[20]=1,t[21]=1,t[22]=0,t[23]=1,t[24]=1,t[25]=0,t[26]=0,t[27]=0,t[28]=0,t[29]=1,t[30]=1,t[31]=1,t[32]=1,t[33]=0,t[34]=0,t[35]=0,t[36]=0,t[37]=1,t[38]=1,t[39]=1,t[40]=0,t[41]=0,t[42]=1,t[43]=0,t[44]=1,t[45]=1,t[46]=0,t[47]=1,s.st=new y({componentDatatype:p.FLOAT,componentsPerAttribute:2,values:t})}if(a.tangent){let t=new Float32Array(72);t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=1,t[7]=0,t[8]=0,t[9]=1,t[10]=0,t[11]=0,t[12]=-1,t[13]=0,t[14]=0,t[15]=-1,t[16]=0,t[17]=0,t[18]=-1,t[19]=0,t[20]=0,t[21]=-1,t[22]=0,t[23]=0,t[24]=0,t[25]=1,t[26]=0,t[27]=0,t[28]=1,t[29]=0,t[30]=0,t[31]=1,t[32]=0,t[33]=0,t[34]=1,t[35]=0,t[36]=0,t[37]=-1,t[38]=0,t[39]=0,t[40]=-1,t[41]=0,t[42]=0,t[43]=-1,t[44]=0,t[45]=0,t[46]=-1,t[47]=0,t[48]=-1,t[49]=0,t[50]=0,t[51]=-1,t[52]=0,t[53]=0,t[54]=-1,t[55]=0,t[56]=0,t[57]=-1,t[58]=0,t[59]=0,t[60]=1,t[61]=0,t[62]=0,t[63]=1,t[64]=0,t[65]=0,t[66]=1,t[67]=0,t[68]=0,t[69]=1,t[70]=0,t[71]=0,s.tangent=new y({componentDatatype:p.FLOAT,componentsPerAttribute:3,values:t})}if(a.bitangent){let t=new Float32Array(72);t[0]=0,t[1]=1,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=1,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=1,t[14]=0,t[15]=0,t[16]=1,t[17]=0,t[18]=0,t[19]=1,t[20]=0,t[21]=0,t[22]=1,t[23]=0,t[24]=0,t[25]=0,t[26]=1,t[27]=0,t[28]=0,t[29]=1,t[30]=0,t[31]=0,t[32]=1,t[33]=0,t[34]=0,t[35]=1,t[36]=0,t[37]=0,t[38]=1,t[39]=0,t[40]=0,t[41]=1,t[42]=0,t[43]=0,t[44]=1,t[45]=0,t[46]=0,t[47]=1,t[48]=0,t[49]=0,t[50]=1,t[51]=0,t[52]=0,t[53]=1,t[54]=0,t[55]=0,t[56]=1,t[57]=0,t[58]=0,t[59]=1,t[60]=0,t[61]=0,t[62]=1,t[63]=0,t[64]=0,t[65]=1,t[66]=0,t[67]=0,t[68]=1,t[69]=0,t[70]=0,t[71]=1,s.bitangent=new y({componentDatatype:p.FLOAT,componentsPerAttribute:3,values:t})}n=new Uint16Array(36),n[0]=0,n[1]=1,n[2]=2,n[3]=0,n[4]=2,n[5]=3,n[6]=6,n[7]=5,n[8]=4,n[9]=7,n[10]=6,n[11]=4,n[12]=8,n[13]=9,n[14]=10,n[15]=8,n[16]=10,n[17]=11,n[18]=14,n[19]=13,n[20]=12,n[21]=15,n[22]=14,n[23]=12,n[24]=18,n[25]=17,n[26]=16,n[27]=19,n[28]=18,n[29]=16,n[30]=20,n[31]=21,n[32]=22,n[33]=20,n[34]=22,n[35]=23}else e=new Float64Array(24),e[0]=o.x,e[1]=o.y,e[2]=o.z,e[3]=m.x,e[4]=o.y,e[5]=o.z,e[6]=m.x,e[7]=m.y,e[8]=o.z,e[9]=o.x,e[10]=m.y,e[11]=o.z,e[12]=o.x,e[13]=o.y,e[14]=m.z,e[15]=m.x,e[16]=o.y,e[17]=m.z,e[18]=m.x,e[19]=m.y,e[20]=m.z,e[21]=o.x,e[22]=m.y,e[23]=m.z,s.position=new y({componentDatatype:p.DOUBLE,componentsPerAttribute:3,values:e}),n=new Uint16Array(36),n[0]=4,n[1]=5,n[2]=6,n[3]=4,n[4]=6,n[5]=7,n[6]=1,n[7]=0,n[8]=3,n[9]=1,n[10]=3,n[11]=2,n[12]=1,n[13]=6,n[14]=5,n[15]=1,n[16]=2,n[17]=6,n[18]=2,n[19]=3,n[20]=7,n[21]=2,n[22]=7,n[23]=6,n[24]=3,n[25]=0,n[26]=4,n[27]=3,n[28]=4,n[29]=7,n[30]=0,n[31]=1,n[32]=5,n[33]=0,n[34]=5,n[35]=4;let v=i.subtract(m,o,D),L=i.magnitude(v)*.5;if(x(r._offsetAttribute)){let t=e.length,T=r._offsetAttribute===b.NONE?0:1,E=new Uint8Array(t/3).fill(T);s.applyOffset=new y({componentDatatype:p.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})}return new h({attributes:s,indices:n,primitiveType:w.TRIANGLES,boundingSphere:new l(i.ZERO,L),offsetAttribute:r._offsetAttribute})};var z;f.getUnitBox=function(){return x(z)||(z=f.createGeometry(f.fromDimensions({dimensions:new i(1,1,1),vertexFormat:u.POSITION_ONLY}))),z};var R=f;export{R as a}; diff --git a/cesium/Workers/chunk-ATKJRN2G.js b/cesium/Workers/chunk-ATKJRN2G.js new file mode 100644 index 00000000..81501cfe --- /dev/null +++ b/cesium/Workers/chunk-ATKJRN2G.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as N}from"./chunk-RDX4QSUS.js";import{a as t}from"./chunk-NZBME2JK.js";import{f as T}from"./chunk-6DLS2UKD.js";var r={BYTE:N.BYTE,UNSIGNED_BYTE:N.UNSIGNED_BYTE,SHORT:N.SHORT,UNSIGNED_SHORT:N.UNSIGNED_SHORT,INT:N.INT,UNSIGNED_INT:N.UNSIGNED_INT,FLOAT:N.FLOAT,DOUBLE:N.DOUBLE};r.getSizeInBytes=function(n){if(!T(n))throw new t("value is required.");switch(n){case r.BYTE:return Int8Array.BYTES_PER_ELEMENT;case r.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case r.SHORT:return Int16Array.BYTES_PER_ELEMENT;case r.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case r.INT:return Int32Array.BYTES_PER_ELEMENT;case r.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case r.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case r.DOUBLE:return Float64Array.BYTES_PER_ELEMENT;default:throw new t("componentDatatype is not a valid value.")}};r.fromTypedArray=function(n){if(n instanceof Int8Array)return r.BYTE;if(n instanceof Uint8Array)return r.UNSIGNED_BYTE;if(n instanceof Int16Array)return r.SHORT;if(n instanceof Uint16Array)return r.UNSIGNED_SHORT;if(n instanceof Int32Array)return r.INT;if(n instanceof Uint32Array)return r.UNSIGNED_INT;if(n instanceof Float32Array)return r.FLOAT;if(n instanceof Float64Array)return r.DOUBLE;throw new t("array must be an Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, or Float64Array.")};r.validate=function(n){return T(n)&&(n===r.BYTE||n===r.UNSIGNED_BYTE||n===r.SHORT||n===r.UNSIGNED_SHORT||n===r.INT||n===r.UNSIGNED_INT||n===r.FLOAT||n===r.DOUBLE)};r.createTypedArray=function(n,e){if(!T(n))throw new t("componentDatatype is required.");if(!T(e))throw new t("valuesOrLength is required.");switch(n){case r.BYTE:return new Int8Array(e);case r.UNSIGNED_BYTE:return new Uint8Array(e);case r.SHORT:return new Int16Array(e);case r.UNSIGNED_SHORT:return new Uint16Array(e);case r.INT:return new Int32Array(e);case r.UNSIGNED_INT:return new Uint32Array(e);case r.FLOAT:return new Float32Array(e);case r.DOUBLE:return new Float64Array(e);default:throw new t("componentDatatype is not a valid value.")}};r.createArrayBufferView=function(n,e,a,E){if(!T(n))throw new t("componentDatatype is required.");if(!T(e))throw new t("buffer is required.");switch(a=a??0,E=E??(e.byteLength-a)/r.getSizeInBytes(n),n){case r.BYTE:return new Int8Array(e,a,E);case r.UNSIGNED_BYTE:return new Uint8Array(e,a,E);case r.SHORT:return new Int16Array(e,a,E);case r.UNSIGNED_SHORT:return new Uint16Array(e,a,E);case r.INT:return new Int32Array(e,a,E);case r.UNSIGNED_INT:return new Uint32Array(e,a,E);case r.FLOAT:return new Float32Array(e,a,E);case r.DOUBLE:return new Float64Array(e,a,E);default:throw new t("componentDatatype is not a valid value.")}};r.fromName=function(n){switch(n){case"BYTE":return r.BYTE;case"UNSIGNED_BYTE":return r.UNSIGNED_BYTE;case"SHORT":return r.SHORT;case"UNSIGNED_SHORT":return r.UNSIGNED_SHORT;case"INT":return r.INT;case"UNSIGNED_INT":return r.UNSIGNED_INT;case"FLOAT":return r.FLOAT;case"DOUBLE":return r.DOUBLE;default:throw new t("name is not a valid value.")}};r.dequantize=function(n,e){switch(e){case r.BYTE:return Math.max(n/127,-1);case r.UNSIGNED_BYTE:return n/255;case r.SHORT:return Math.max(n/32767,-1);case r.UNSIGNED_SHORT:return n/65535;case r.INT:return Math.max(n/2147483647,-1);case r.UNSIGNED_INT:return n/4294967295;default:throw new t("componentDatatype is not a valid integer type for dequantization.")}};Object.freeze(r);var c=r;export{c as a}; diff --git a/cesium/Workers/chunk-BDWA46XV.js b/cesium/Workers/chunk-BDWA46XV.js new file mode 100644 index 00000000..1578aaea --- /dev/null +++ b/cesium/Workers/chunk-BDWA46XV.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as P}from"./chunk-5VFNV3LW.js";import{a as u,b as d}from"./chunk-SRA5MBUT.js";import{a as j}from"./chunk-5AAMOBJK.js";import{i as A}from"./chunk-LNJEJFV5.js";import{a as _,b as h}from"./chunk-BPABSUDY.js";import{b as l,c as g}from"./chunk-2AIOP76V.js";import{a as e}from"./chunk-IAE6APK2.js";import{a as y,b as p}from"./chunk-NZBME2JK.js";import{f as r}from"./chunk-6DLS2UKD.js";var x=new _;function s(n,t){if(p.defined("origin",n),t=t??g.default,n=t.scaleToGeodeticSurface(n),!r(n))throw new y("origin must not be at the center of the ellipsoid.");let o=A.eastNorthUpToFixedFrame(n,t);this._ellipsoid=t,this._origin=n,this._xAxis=e.fromCartesian4(h.getColumn(o,0,x)),this._yAxis=e.fromCartesian4(h.getColumn(o,1,x));let i=e.fromCartesian4(h.getColumn(o,2,x));this._plane=j.fromPointNormal(n,i)}Object.defineProperties(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var w=new P;s.fromPoints=function(n,t){p.defined("cartesians",n);let o=P.fromPoints(n,w);return new s(o.center,t)};var O=new u,m=new e;s.prototype.projectPointOntoPlane=function(n,t){p.defined("cartesian",n);let o=O;o.origin=n,e.normalize(n,o.direction);let i=d.rayPlane(o,this._plane,m);if(r(i)||(e.negate(o.direction,o.direction),i=d.rayPlane(o,this._plane,m)),r(i)){let c=e.subtract(i,this._origin,i),a=e.dot(this._xAxis,c),f=e.dot(this._yAxis,c);return r(t)?(t.x=a,t.y=f,t):new l(a,f)}};s.prototype.projectPointsOntoPlane=function(n,t){p.defined("cartesians",n),r(t)||(t=[]);let o=0,i=n.length;for(let c=0;c<i;c++){let a=this.projectPointOntoPlane(n[c],t[o]);r(a)&&(t[o]=a,o++)}return t.length=o,t};s.prototype.projectPointToNearestOnPlane=function(n,t){p.defined("cartesian",n),r(t)||(t=new l);let o=O;o.origin=n,e.clone(this._plane.normal,o.direction);let i=d.rayPlane(o,this._plane,m);r(i)||(e.negate(o.direction,o.direction),i=d.rayPlane(o,this._plane,m));let c=e.subtract(i,this._origin,i),a=e.dot(this._xAxis,c),f=e.dot(this._yAxis,c);return t.x=a,t.y=f,t};s.prototype.projectPointsToNearestOnPlane=function(n,t){p.defined("cartesians",n),r(t)||(t=[]);let o=n.length;t.length=o;for(let i=0;i<o;i++)t[i]=this.projectPointToNearestOnPlane(n[i],t[i]);return t};var C=new e;s.prototype.projectPointOntoEllipsoid=function(n,t){p.defined("cartesian",n),r(t)||(t=new e);let o=this._ellipsoid,i=this._origin,c=this._xAxis,a=this._yAxis,f=C;return e.multiplyByScalar(c,n.x,f),t=e.add(i,f,t),e.multiplyByScalar(a,n.y,f),e.add(t,f,t),o.scaleToGeocentricSurface(t,t),t};s.prototype.projectPointsOntoEllipsoid=function(n,t){p.defined("cartesians",n);let o=n.length;r(t)?t.length=o:t=new Array(o);for(let i=0;i<o;++i)t[i]=this.projectPointOntoEllipsoid(n[i],t[i]);return t};var D=s;export{D as a}; diff --git a/cesium/Workers/chunk-BKIYVF74.js b/cesium/Workers/chunk-BKIYVF74.js new file mode 100644 index 00000000..0ffc15aa --- /dev/null +++ b/cesium/Workers/chunk-BKIYVF74.js @@ -0,0 +1,28 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{f}from"./chunk-6DLS2UKD.js";function c(t){let n,a=t.name,e=t.message;f(a)&&f(e)?n=`${a}: ${e}`:n=t.toString();let o=t.stack;return f(o)&&(n+=` +${o}`),n}var i=c;function l(t){async function n({data:e}){let o=[],s={id:e.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=e.baseUrl;try{let r=await t(e.parameters,o);s.result=r}catch(r){r instanceof Error?s.error={name:r.name,message:r.message,stack:r.stack}:s.error=r}e.canTransferArrayBuffer||(o.length=0);try{postMessage(s,o)}catch(r){s.result=void 0,s.error=`postMessage failed with error: ${i(r)} + with responseMessage: ${JSON.stringify(s)}`,postMessage(s)}}function a(e){postMessage({id:e.data?.id,error:`postMessage failed with error: ${JSON.stringify(e)}`})}return self.onmessage=n,self.onmessageerror=a,self}var d=l;export{d as a}; diff --git a/cesium/Workers/chunk-BPABSUDY.js b/cesium/Workers/chunk-BPABSUDY.js new file mode 100644 index 00000000..34d858a5 --- /dev/null +++ b/cesium/Workers/chunk-BPABSUDY.js @@ -0,0 +1,29 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as h1}from"./chunk-G3GDHHWO.js";import{a as W,b as u,c as z1}from"./chunk-IAE6APK2.js";import{a as G}from"./chunk-3E7FIXV7.js";import{a as m,b as p}from"./chunk-NZBME2JK.js";import{f as U}from"./chunk-6DLS2UKD.js";var V=class f{constructor(c,o,n,y){this.x=c??0,this.y=o??0,this.z=n??0,this.w=y??0}static fromElements(c,o,n,y,O){return U(O)?(O.x=c,O.y=o,O.z=n,O.w=y,O):new f(c,o,n,y)}static fromColor(c,o){return p.typeOf.object("color",c),U(o)?(o.x=c.red,o.y=c.green,o.z=c.blue,o.w=c.alpha,o):new f(c.red,c.green,c.blue,c.alpha)}static clone(c,o){if(U(c))return U(o)?(o.x=c.x,o.y=c.y,o.z=c.z,o.w=c.w,o):new f(c.x,c.y,c.z,c.w)}static pack(c,o,n){return p.typeOf.object("value",c),p.defined("array",o),n=n??0,o[n++]=c.x,o[n++]=c.y,o[n++]=c.z,o[n]=c.w,o}static unpack(c,o,n){return p.defined("array",c),o=o??0,U(n)||(n=new f),n.x=c[o++],n.y=c[o++],n.z=c[o++],n.w=c[o],n}static packArray(c,o){p.defined("array",c);let n=c.length,y=n*4;if(!U(o))o=new Array(y);else{if(!Array.isArray(o)&&o.length!==y)throw new m("If result is a typed array, it must have exactly array.length * 4 elements");o.length!==y&&(o.length=y)}for(let O=0;O<n;++O)f.pack(c[O],o,O*4);return o}static unpackArray(c,o){if(p.defined("array",c),p.typeOf.number.greaterThanOrEquals("array.length",c.length,4),c.length%4!==0)throw new m("array length must be a multiple of 4.");let n=c.length;U(o)?o.length=n/4:o=new Array(n/4);for(let y=0;y<n;y+=4){let O=y/4;o[O]=f.unpack(c,y,o[O])}return o}static maximumComponent(c){return p.typeOf.object("cartesian",c),Math.max(c.x,c.y,c.z,c.w)}static minimumComponent(c){return p.typeOf.object("cartesian",c),Math.min(c.x,c.y,c.z,c.w)}static minimumByComponent(c,o,n){return p.typeOf.object("first",c),p.typeOf.object("second",o),p.typeOf.object("result",n),n.x=Math.min(c.x,o.x),n.y=Math.min(c.y,o.y),n.z=Math.min(c.z,o.z),n.w=Math.min(c.w,o.w),n}static maximumByComponent(c,o,n){return p.typeOf.object("first",c),p.typeOf.object("second",o),p.typeOf.object("result",n),n.x=Math.max(c.x,o.x),n.y=Math.max(c.y,o.y),n.z=Math.max(c.z,o.z),n.w=Math.max(c.w,o.w),n}static clamp(c,o,n,y){p.typeOf.object("value",c),p.typeOf.object("min",o),p.typeOf.object("max",n),p.typeOf.object("result",y);let O=G.clamp(c.x,o.x,n.x),w=G.clamp(c.y,o.y,n.y),b=G.clamp(c.z,o.z,n.z),j=G.clamp(c.w,o.w,n.w);return y.x=O,y.y=w,y.z=b,y.w=j,y}static magnitudeSquared(c){return p.typeOf.object("cartesian",c),c.x*c.x+c.y*c.y+c.z*c.z+c.w*c.w}static magnitude(c){return Math.sqrt(f.magnitudeSquared(c))}static distance(c,o){return p.typeOf.object("left",c),p.typeOf.object("right",o),f.subtract(c,o,r),f.magnitude(r)}static distanceSquared(c,o){return p.typeOf.object("left",c),p.typeOf.object("right",o),f.subtract(c,o,r),f.magnitudeSquared(r)}static normalize(c,o){p.typeOf.object("cartesian",c),p.typeOf.object("result",o);let n=f.magnitude(c);if(o.x=c.x/n,o.y=c.y/n,o.z=c.z/n,o.w=c.w/n,isNaN(o.x)||isNaN(o.y)||isNaN(o.z)||isNaN(o.w))throw new m("normalized result is not a number");return o}static dot(c,o){return p.typeOf.object("left",c),p.typeOf.object("right",o),c.x*o.x+c.y*o.y+c.z*o.z+c.w*o.w}static multiplyComponents(c,o,n){return p.typeOf.object("left",c),p.typeOf.object("right",o),p.typeOf.object("result",n),n.x=c.x*o.x,n.y=c.y*o.y,n.z=c.z*o.z,n.w=c.w*o.w,n}static divideComponents(c,o,n){return p.typeOf.object("left",c),p.typeOf.object("right",o),p.typeOf.object("result",n),n.x=c.x/o.x,n.y=c.y/o.y,n.z=c.z/o.z,n.w=c.w/o.w,n}static add(c,o,n){return p.typeOf.object("left",c),p.typeOf.object("right",o),p.typeOf.object("result",n),n.x=c.x+o.x,n.y=c.y+o.y,n.z=c.z+o.z,n.w=c.w+o.w,n}static subtract(c,o,n){return p.typeOf.object("left",c),p.typeOf.object("right",o),p.typeOf.object("result",n),n.x=c.x-o.x,n.y=c.y-o.y,n.z=c.z-o.z,n.w=c.w-o.w,n}static multiplyByScalar(c,o,n){return p.typeOf.object("cartesian",c),p.typeOf.number("scalar",o),p.typeOf.object("result",n),n.x=c.x*o,n.y=c.y*o,n.z=c.z*o,n.w=c.w*o,n}static divideByScalar(c,o,n){return p.typeOf.object("cartesian",c),p.typeOf.number("scalar",o),p.typeOf.object("result",n),n.x=c.x/o,n.y=c.y/o,n.z=c.z/o,n.w=c.w/o,n}static negate(c,o){return p.typeOf.object("cartesian",c),p.typeOf.object("result",o),o.x=-c.x,o.y=-c.y,o.z=-c.z,o.w=-c.w,o}static abs(c,o){return p.typeOf.object("cartesian",c),p.typeOf.object("result",o),o.x=Math.abs(c.x),o.y=Math.abs(c.y),o.z=Math.abs(c.z),o.w=Math.abs(c.w),o}static lerp(c,o,n,y){return p.typeOf.object("start",c),p.typeOf.object("end",o),p.typeOf.number("t",n),p.typeOf.object("result",y),f.multiplyByScalar(o,n,R1),y=f.multiplyByScalar(c,1-n,y),f.add(R1,y,y)}static mostOrthogonalAxis(c,o){p.typeOf.object("cartesian",c),p.typeOf.object("result",o);let n=f.normalize(c,U1);return f.abs(n,n),n.x<=n.y?n.x<=n.z?n.x<=n.w?o=f.clone(f.UNIT_X,o):o=f.clone(f.UNIT_W,o):n.z<=n.w?o=f.clone(f.UNIT_Z,o):o=f.clone(f.UNIT_W,o):n.y<=n.z?n.y<=n.w?o=f.clone(f.UNIT_Y,o):o=f.clone(f.UNIT_W,o):n.z<=n.w?o=f.clone(f.UNIT_Z,o):o=f.clone(f.UNIT_W,o),o}static equals(c,o){return c===o||U(c)&&U(o)&&c.x===o.x&&c.y===o.y&&c.z===o.z&&c.w===o.w}static equalsArray(c,o,n){return c.x===o[n]&&c.y===o[n+1]&&c.z===o[n+2]&&c.w===o[n+3]}static equalsEpsilon(c,o,n,y){return c===o||U(c)&&U(o)&&G.equalsEpsilon(c.x,o.x,n,y)&&G.equalsEpsilon(c.y,o.y,n,y)&&G.equalsEpsilon(c.z,o.z,n,y)&&G.equalsEpsilon(c.w,o.w,n,y)}clone(c){return f.clone(this,c)}equals(c){return f.equals(this,c)}equalsEpsilon(c,o,n){return f.equalsEpsilon(this,c,o,n)}toString(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`}static packFloat(c,o){return p.typeOf.number("value",c),U(o)||(o=new f),f1[0]=c,M1?(o.x=F[0],o.y=F[1],o.z=F[2],o.w=F[3]):(o.x=F[3],o.y=F[2],o.z=F[1],o.w=F[0]),o}static unpackFloat(c){return p.typeOf.object("packedFloat",c),M1?(F[0]=c.x,F[1]=c.y,F[2]=c.z,F[3]=c.w):(F[0]=c.w,F[1]=c.z,F[2]=c.y,F[3]=c.x),f1[0]}};V.packedLength=4;V.fromArray=V.unpack;var r=new V,R1=new V,U1=new V;V.ZERO=Object.freeze(new V(0,0,0,0));V.ONE=Object.freeze(new V(1,1,1,1));V.UNIT_X=Object.freeze(new V(1,0,0,0));V.UNIT_Y=Object.freeze(new V(0,1,0,0));V.UNIT_Z=Object.freeze(new V(0,0,1,0));V.UNIT_W=Object.freeze(new V(0,0,0,1));var f1=new Float32Array(1),F=new Uint8Array(f1.buffer),S1=new Uint32Array([287454020]),d1=new Uint8Array(S1.buffer),M1=d1[0]===68,c1=V;var L=class f{constructor(c,o,n,y,O,w,b,j,z,h,R,M,T,C,q,N){this[0]=c??0,this[1]=O??0,this[2]=z??0,this[3]=T??0,this[4]=o??0,this[5]=w??0,this[6]=h??0,this[7]=C??0,this[8]=n??0,this[9]=b??0,this[10]=R??0,this[11]=q??0,this[12]=y??0,this[13]=j??0,this[14]=M??0,this[15]=N??0}static pack(c,o,n){return p.typeOf.object("value",c),p.defined("array",o),n=n??0,o[n++]=c[0],o[n++]=c[1],o[n++]=c[2],o[n++]=c[3],o[n++]=c[4],o[n++]=c[5],o[n++]=c[6],o[n++]=c[7],o[n++]=c[8],o[n++]=c[9],o[n++]=c[10],o[n++]=c[11],o[n++]=c[12],o[n++]=c[13],o[n++]=c[14],o[n]=c[15],o}static unpack(c,o,n){return p.defined("array",c),o=o??0,U(n)||(n=new f),n[0]=c[o++],n[1]=c[o++],n[2]=c[o++],n[3]=c[o++],n[4]=c[o++],n[5]=c[o++],n[6]=c[o++],n[7]=c[o++],n[8]=c[o++],n[9]=c[o++],n[10]=c[o++],n[11]=c[o++],n[12]=c[o++],n[13]=c[o++],n[14]=c[o++],n[15]=c[o],n}static packArray(c,o){p.defined("array",c);let n=c.length,y=n*16;if(!U(o))o=new Array(y);else{if(!Array.isArray(o)&&o.length!==y)throw new m("If result is a typed array, it must have exactly array.length * 16 elements");o.length!==y&&(o.length=y)}for(let O=0;O<n;++O)f.pack(c[O],o,O*16);return o}static unpackArray(c,o){if(p.defined("array",c),p.typeOf.number.greaterThanOrEquals("array.length",c.length,16),c.length%16!==0)throw new m("array length must be a multiple of 16.");let n=c.length;U(o)?o.length=n/16:o=new Array(n/16);for(let y=0;y<n;y+=16){let O=y/16;o[O]=f.unpack(c,y,o[O])}return o}static clone(c,o){if(U(c))return U(o)?(o[0]=c[0],o[1]=c[1],o[2]=c[2],o[3]=c[3],o[4]=c[4],o[5]=c[5],o[6]=c[6],o[7]=c[7],o[8]=c[8],o[9]=c[9],o[10]=c[10],o[11]=c[11],o[12]=c[12],o[13]=c[13],o[14]=c[14],o[15]=c[15],o):new f(c[0],c[4],c[8],c[12],c[1],c[5],c[9],c[13],c[2],c[6],c[10],c[14],c[3],c[7],c[11],c[15])}static fromColumnMajorArray(c,o){return p.defined("values",c),f.clone(c,o)}static fromRowMajorArray(c,o){return p.defined("values",c),U(o)?(o[0]=c[0],o[1]=c[4],o[2]=c[8],o[3]=c[12],o[4]=c[1],o[5]=c[5],o[6]=c[9],o[7]=c[13],o[8]=c[2],o[9]=c[6],o[10]=c[10],o[11]=c[14],o[12]=c[3],o[13]=c[7],o[14]=c[11],o[15]=c[15],o):new f(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15])}static fromRotationTranslation(c,o,n){return p.typeOf.object("rotation",c),o=o??W.ZERO,U(n)?(n[0]=c[0],n[1]=c[1],n[2]=c[2],n[3]=0,n[4]=c[3],n[5]=c[4],n[6]=c[5],n[7]=0,n[8]=c[6],n[9]=c[7],n[10]=c[8],n[11]=0,n[12]=o.x,n[13]=o.y,n[14]=o.z,n[15]=1,n):new f(c[0],c[3],c[6],o.x,c[1],c[4],c[7],o.y,c[2],c[5],c[8],o.z,0,0,0,1)}static fromTranslationQuaternionRotationScale(c,o,n,y){p.typeOf.object("translation",c),p.typeOf.object("rotation",o),p.typeOf.object("scale",n),U(y)||(y=new f);let O=n.x,w=n.y,b=n.z,j=o.x*o.x,z=o.x*o.y,h=o.x*o.z,R=o.x*o.w,M=o.y*o.y,T=o.y*o.z,C=o.y*o.w,q=o.z*o.z,N=o.z*o.w,E=o.w*o.w,S=j-M-q+E,d=2*(z-N),A=2*(h+C),$=2*(z+N),Z=-j+M-q+E,B=2*(T-R),Y=2*(h-C),k=2*(T+R),X=-j-M+q+E;return y[0]=S*O,y[1]=$*O,y[2]=Y*O,y[3]=0,y[4]=d*w,y[5]=Z*w,y[6]=k*w,y[7]=0,y[8]=A*b,y[9]=B*b,y[10]=X*b,y[11]=0,y[12]=c.x,y[13]=c.y,y[14]=c.z,y[15]=1,y}static fromTranslationRotationScale(c,o){return p.typeOf.object("translationRotationScale",c),f.fromTranslationQuaternionRotationScale(c.translation,c.rotation,c.scale,o)}static fromTranslation(c,o){return p.typeOf.object("translation",c),f.fromRotationTranslation(u.IDENTITY,c,o)}static fromScale(c,o){return p.typeOf.object("scale",c),U(o)?(o[0]=c.x,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=c.y,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c.z,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o):new f(c.x,0,0,0,0,c.y,0,0,0,0,c.z,0,0,0,0,1)}static fromUniformScale(c,o){return p.typeOf.number("scale",c),U(o)?(o[0]=c,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=c,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o):new f(c,0,0,0,0,c,0,0,0,0,c,0,0,0,0,1)}static fromRotation(c,o){return p.typeOf.object("rotation",c),U(o)||(o=new f),o[0]=c[0],o[1]=c[1],o[2]=c[2],o[3]=0,o[4]=c[3],o[5]=c[4],o[6]=c[5],o[7]=0,o[8]=c[6],o[9]=c[7],o[10]=c[8],o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o}static fromCamera(c,o){p.typeOf.object("camera",c);let n=c.position,y=c.direction,O=c.up;p.typeOf.object("camera.position",n),p.typeOf.object("camera.direction",y),p.typeOf.object("camera.up",O),W.normalize(y,e),W.normalize(W.cross(e,O,t),t),W.normalize(W.cross(t,e,l),l);let w=t.x,b=t.y,j=t.z,z=e.x,h=e.y,R=e.z,M=l.x,T=l.y,C=l.z,q=n.x,N=n.y,E=n.z,S=w*-q+b*-N+j*-E,d=M*-q+T*-N+C*-E,A=z*q+h*N+R*E;return U(o)?(o[0]=w,o[1]=M,o[2]=-z,o[3]=0,o[4]=b,o[5]=T,o[6]=-h,o[7]=0,o[8]=j,o[9]=C,o[10]=-R,o[11]=0,o[12]=S,o[13]=d,o[14]=A,o[15]=1,o):new f(w,b,j,S,M,T,C,d,-z,-h,-R,A,0,0,0,1)}static computePerspectiveFieldOfView(c,o,n,y,O){p.typeOf.number.greaterThan("fovY",c,0),p.typeOf.number.lessThan("fovY",c,Math.PI),p.typeOf.number.greaterThan("near",n,0),p.typeOf.number.greaterThan("far",y,0),p.typeOf.object("result",O);let b=1/Math.tan(c*.5),j=b/o,z=(y+n)/(n-y),h=2*y*n/(n-y);return O[0]=j,O[1]=0,O[2]=0,O[3]=0,O[4]=0,O[5]=b,O[6]=0,O[7]=0,O[8]=0,O[9]=0,O[10]=z,O[11]=-1,O[12]=0,O[13]=0,O[14]=h,O[15]=0,O}static computeOrthographicOffCenter(c,o,n,y,O,w,b){p.typeOf.number("left",c),p.typeOf.number("right",o),p.typeOf.number("bottom",n),p.typeOf.number("top",y),p.typeOf.number("near",O),p.typeOf.number("far",w),p.typeOf.object("result",b);let j=1/(o-c),z=1/(y-n),h=1/(w-O),R=-(o+c)*j,M=-(y+n)*z,T=-(w+O)*h;return j*=2,z*=2,h*=-2,b[0]=j,b[1]=0,b[2]=0,b[3]=0,b[4]=0,b[5]=z,b[6]=0,b[7]=0,b[8]=0,b[9]=0,b[10]=h,b[11]=0,b[12]=R,b[13]=M,b[14]=T,b[15]=1,b}static computePerspectiveOffCenter(c,o,n,y,O,w,b){p.typeOf.number("left",c),p.typeOf.number("right",o),p.typeOf.number("bottom",n),p.typeOf.number("top",y),p.typeOf.number("near",O),p.typeOf.number("far",w),p.typeOf.object("result",b);let j=2*O/(o-c),z=2*O/(y-n),h=(o+c)/(o-c),R=(y+n)/(y-n),M=-(w+O)/(w-O),T=-1,C=-2*w*O/(w-O);return b[0]=j,b[1]=0,b[2]=0,b[3]=0,b[4]=0,b[5]=z,b[6]=0,b[7]=0,b[8]=h,b[9]=R,b[10]=M,b[11]=T,b[12]=0,b[13]=0,b[14]=C,b[15]=0,b}static computeInfinitePerspectiveOffCenter(c,o,n,y,O,w){p.typeOf.number("left",c),p.typeOf.number("right",o),p.typeOf.number("bottom",n),p.typeOf.number("top",y),p.typeOf.number("near",O),p.typeOf.object("result",w);let b=2*O/(o-c),j=2*O/(y-n),z=(o+c)/(o-c),h=(y+n)/(y-n),R=-1,M=-1,T=-2*O;return w[0]=b,w[1]=0,w[2]=0,w[3]=0,w[4]=0,w[5]=j,w[6]=0,w[7]=0,w[8]=z,w[9]=h,w[10]=R,w[11]=M,w[12]=0,w[13]=0,w[14]=T,w[15]=0,w}static computeViewportTransformation(c,o,n,y){U(y)||(y=new f),c=c??z1.EMPTY_OBJECT;let O=c.x??0,w=c.y??0,b=c.width??0,j=c.height??0;o=o??0,n=n??1;let z=b*.5,h=j*.5,R=(n-o)*.5,M=z,T=h,C=R,q=O+z,N=w+h,E=o+R,S=1;return y[0]=M,y[1]=0,y[2]=0,y[3]=0,y[4]=0,y[5]=T,y[6]=0,y[7]=0,y[8]=0,y[9]=0,y[10]=C,y[11]=0,y[12]=q,y[13]=N,y[14]=E,y[15]=S,y}static computeView(c,o,n,y,O){return p.typeOf.object("position",c),p.typeOf.object("direction",o),p.typeOf.object("up",n),p.typeOf.object("right",y),p.typeOf.object("result",O),O[0]=y.x,O[1]=n.x,O[2]=-o.x,O[3]=0,O[4]=y.y,O[5]=n.y,O[6]=-o.y,O[7]=0,O[8]=y.z,O[9]=n.z,O[10]=-o.z,O[11]=0,O[12]=-W.dot(y,c),O[13]=-W.dot(n,c),O[14]=W.dot(o,c),O[15]=1,O}static toArray(c,o){return p.typeOf.object("matrix",c),U(o)?(o[0]=c[0],o[1]=c[1],o[2]=c[2],o[3]=c[3],o[4]=c[4],o[5]=c[5],o[6]=c[6],o[7]=c[7],o[8]=c[8],o[9]=c[9],o[10]=c[10],o[11]=c[11],o[12]=c[12],o[13]=c[13],o[14]=c[14],o[15]=c[15],o):[c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15]]}static getElementIndex(c,o){return p.typeOf.number.greaterThanOrEquals("row",o,0),p.typeOf.number.lessThanOrEquals("row",o,3),p.typeOf.number.greaterThanOrEquals("column",c,0),p.typeOf.number.lessThanOrEquals("column",c,3),c*4+o}static getColumn(c,o,n){p.typeOf.object("matrix",c),p.typeOf.number.greaterThanOrEquals("index",o,0),p.typeOf.number.lessThanOrEquals("index",o,3),p.typeOf.object("result",n);let y=o*4,O=c[y],w=c[y+1],b=c[y+2],j=c[y+3];return n.x=O,n.y=w,n.z=b,n.w=j,n}static setColumn(c,o,n,y){p.typeOf.object("matrix",c),p.typeOf.number.greaterThanOrEquals("index",o,0),p.typeOf.number.lessThanOrEquals("index",o,3),p.typeOf.object("cartesian",n),p.typeOf.object("result",y),y=f.clone(c,y);let O=o*4;return y[O]=n.x,y[O+1]=n.y,y[O+2]=n.z,y[O+3]=n.w,y}static getRow(c,o,n){p.typeOf.object("matrix",c),p.typeOf.number.greaterThanOrEquals("index",o,0),p.typeOf.number.lessThanOrEquals("index",o,3),p.typeOf.object("result",n);let y=c[o],O=c[o+4],w=c[o+8],b=c[o+12];return n.x=y,n.y=O,n.z=w,n.w=b,n}static setRow(c,o,n,y){return p.typeOf.object("matrix",c),p.typeOf.number.greaterThanOrEquals("index",o,0),p.typeOf.number.lessThanOrEquals("index",o,3),p.typeOf.object("cartesian",n),p.typeOf.object("result",y),y=f.clone(c,y),y[o]=n.x,y[o+4]=n.y,y[o+8]=n.z,y[o+12]=n.w,y}static setTranslation(c,o,n){return p.typeOf.object("matrix",c),p.typeOf.object("translation",o),p.typeOf.object("result",n),n[0]=c[0],n[1]=c[1],n[2]=c[2],n[3]=c[3],n[4]=c[4],n[5]=c[5],n[6]=c[6],n[7]=c[7],n[8]=c[8],n[9]=c[9],n[10]=c[10],n[11]=c[11],n[12]=o.x,n[13]=o.y,n[14]=o.z,n[15]=c[15],n}static setScale(c,o,n){p.typeOf.object("matrix",c),p.typeOf.object("scale",o),p.typeOf.object("result",n);let y=f.getScale(c,A1),O=o.x/y.x,w=o.y/y.y,b=o.z/y.z;return n[0]=c[0]*O,n[1]=c[1]*O,n[2]=c[2]*O,n[3]=c[3],n[4]=c[4]*w,n[5]=c[5]*w,n[6]=c[6]*w,n[7]=c[7],n[8]=c[8]*b,n[9]=c[9]*b,n[10]=c[10]*b,n[11]=c[11],n[12]=c[12],n[13]=c[13],n[14]=c[14],n[15]=c[15],n}static setUniformScale(c,o,n){p.typeOf.object("matrix",c),p.typeOf.number("scale",o),p.typeOf.object("result",n);let y=f.getScale(c,L1),O=o/y.x,w=o/y.y,b=o/y.z;return n[0]=c[0]*O,n[1]=c[1]*O,n[2]=c[2]*O,n[3]=c[3],n[4]=c[4]*w,n[5]=c[5]*w,n[6]=c[6]*w,n[7]=c[7],n[8]=c[8]*b,n[9]=c[9]*b,n[10]=c[10]*b,n[11]=c[11],n[12]=c[12],n[13]=c[13],n[14]=c[14],n[15]=c[15],n}static getScale(c,o){return p.typeOf.object("matrix",c),p.typeOf.object("result",o),o.x=W.magnitude(W.fromElements(c[0],c[1],c[2],j1)),o.y=W.magnitude(W.fromElements(c[4],c[5],c[6],j1)),o.z=W.magnitude(W.fromElements(c[8],c[9],c[10],j1)),o}static getMaximumScale(c){return f.getScale(c,T1),W.maximumComponent(T1)}static setRotation(c,o,n){p.typeOf.object("matrix",c),p.typeOf.object("result",n);let y=f.getScale(c,W1);return n[0]=o[0]*y.x,n[1]=o[1]*y.x,n[2]=o[2]*y.x,n[3]=c[3],n[4]=o[3]*y.y,n[5]=o[4]*y.y,n[6]=o[5]*y.y,n[7]=c[7],n[8]=o[6]*y.z,n[9]=o[7]*y.z,n[10]=o[8]*y.z,n[11]=c[11],n[12]=c[12],n[13]=c[13],n[14]=c[14],n[15]=c[15],n}static getRotation(c,o){p.typeOf.object("matrix",c),p.typeOf.object("result",o);let n=f.getScale(c,$1);return o[0]=c[0]/n.x,o[1]=c[1]/n.x,o[2]=c[2]/n.x,o[3]=c[4]/n.y,o[4]=c[5]/n.y,o[5]=c[6]/n.y,o[6]=c[8]/n.z,o[7]=c[9]/n.z,o[8]=c[10]/n.z,o}static multiply(c,o,n){p.typeOf.object("left",c),p.typeOf.object("right",o),p.typeOf.object("result",n);let y=c[0],O=c[1],w=c[2],b=c[3],j=c[4],z=c[5],h=c[6],R=c[7],M=c[8],T=c[9],C=c[10],q=c[11],N=c[12],E=c[13],S=c[14],d=c[15],A=o[0],$=o[1],Z=o[2],B=o[3],Y=o[4],k=o[5],X=o[6],Q=o[7],H=o[8],J=o[9],D=o[10],K=o[11],I=o[12],v=o[13],g=o[14],_=o[15],x=y*A+j*$+M*Z+N*B,s=O*A+z*$+T*Z+E*B,i=w*A+h*$+C*Z+S*B,a=b*A+R*$+q*Z+d*B,o1=y*Y+j*k+M*X+N*Q,n1=O*Y+z*k+T*X+E*Q,y1=w*Y+h*k+C*X+S*Q,p1=b*Y+R*k+q*X+d*Q,O1=y*H+j*J+M*D+N*K,b1=O*H+z*J+T*D+E*K,w1=w*H+h*J+C*D+S*K,P=b*H+R*J+q*D+d*K,C1=y*I+j*v+M*g+N*_,N1=O*I+z*v+T*g+E*_,q1=w*I+h*v+C*g+S*_,E1=b*I+R*v+q*g+d*_;return n[0]=x,n[1]=s,n[2]=i,n[3]=a,n[4]=o1,n[5]=n1,n[6]=y1,n[7]=p1,n[8]=O1,n[9]=b1,n[10]=w1,n[11]=P,n[12]=C1,n[13]=N1,n[14]=q1,n[15]=E1,n}static add(c,o,n){return p.typeOf.object("left",c),p.typeOf.object("right",o),p.typeOf.object("result",n),n[0]=c[0]+o[0],n[1]=c[1]+o[1],n[2]=c[2]+o[2],n[3]=c[3]+o[3],n[4]=c[4]+o[4],n[5]=c[5]+o[5],n[6]=c[6]+o[6],n[7]=c[7]+o[7],n[8]=c[8]+o[8],n[9]=c[9]+o[9],n[10]=c[10]+o[10],n[11]=c[11]+o[11],n[12]=c[12]+o[12],n[13]=c[13]+o[13],n[14]=c[14]+o[14],n[15]=c[15]+o[15],n}static subtract(c,o,n){return p.typeOf.object("left",c),p.typeOf.object("right",o),p.typeOf.object("result",n),n[0]=c[0]-o[0],n[1]=c[1]-o[1],n[2]=c[2]-o[2],n[3]=c[3]-o[3],n[4]=c[4]-o[4],n[5]=c[5]-o[5],n[6]=c[6]-o[6],n[7]=c[7]-o[7],n[8]=c[8]-o[8],n[9]=c[9]-o[9],n[10]=c[10]-o[10],n[11]=c[11]-o[11],n[12]=c[12]-o[12],n[13]=c[13]-o[13],n[14]=c[14]-o[14],n[15]=c[15]-o[15],n}static multiplyTransformation(c,o,n){p.typeOf.object("left",c),p.typeOf.object("right",o),p.typeOf.object("result",n);let y=c[0],O=c[1],w=c[2],b=c[4],j=c[5],z=c[6],h=c[8],R=c[9],M=c[10],T=c[12],C=c[13],q=c[14],N=o[0],E=o[1],S=o[2],d=o[4],A=o[5],$=o[6],Z=o[8],B=o[9],Y=o[10],k=o[12],X=o[13],Q=o[14],H=y*N+b*E+h*S,J=O*N+j*E+R*S,D=w*N+z*E+M*S,K=y*d+b*A+h*$,I=O*d+j*A+R*$,v=w*d+z*A+M*$,g=y*Z+b*B+h*Y,_=O*Z+j*B+R*Y,x=w*Z+z*B+M*Y,s=y*k+b*X+h*Q+T,i=O*k+j*X+R*Q+C,a=w*k+z*X+M*Q+q;return n[0]=H,n[1]=J,n[2]=D,n[3]=0,n[4]=K,n[5]=I,n[6]=v,n[7]=0,n[8]=g,n[9]=_,n[10]=x,n[11]=0,n[12]=s,n[13]=i,n[14]=a,n[15]=1,n}static multiplyByMatrix3(c,o,n){p.typeOf.object("matrix",c),p.typeOf.object("rotation",o),p.typeOf.object("result",n);let y=c[0],O=c[1],w=c[2],b=c[4],j=c[5],z=c[6],h=c[8],R=c[9],M=c[10],T=o[0],C=o[1],q=o[2],N=o[3],E=o[4],S=o[5],d=o[6],A=o[7],$=o[8],Z=y*T+b*C+h*q,B=O*T+j*C+R*q,Y=w*T+z*C+M*q,k=y*N+b*E+h*S,X=O*N+j*E+R*S,Q=w*N+z*E+M*S,H=y*d+b*A+h*$,J=O*d+j*A+R*$,D=w*d+z*A+M*$;return n[0]=Z,n[1]=B,n[2]=Y,n[3]=0,n[4]=k,n[5]=X,n[6]=Q,n[7]=0,n[8]=H,n[9]=J,n[10]=D,n[11]=0,n[12]=c[12],n[13]=c[13],n[14]=c[14],n[15]=c[15],n}static multiplyByTranslation(c,o,n){p.typeOf.object("matrix",c),p.typeOf.object("translation",o),p.typeOf.object("result",n);let y=o.x,O=o.y,w=o.z,b=y*c[0]+O*c[4]+w*c[8]+c[12],j=y*c[1]+O*c[5]+w*c[9]+c[13],z=y*c[2]+O*c[6]+w*c[10]+c[14];return n[0]=c[0],n[1]=c[1],n[2]=c[2],n[3]=c[3],n[4]=c[4],n[5]=c[5],n[6]=c[6],n[7]=c[7],n[8]=c[8],n[9]=c[9],n[10]=c[10],n[11]=c[11],n[12]=b,n[13]=j,n[14]=z,n[15]=c[15],n}static multiplyByScale(c,o,n){p.typeOf.object("matrix",c),p.typeOf.object("scale",o),p.typeOf.object("result",n);let y=o.x,O=o.y,w=o.z;return y===1&&O===1&&w===1?f.clone(c,n):(n[0]=y*c[0],n[1]=y*c[1],n[2]=y*c[2],n[3]=c[3],n[4]=O*c[4],n[5]=O*c[5],n[6]=O*c[6],n[7]=c[7],n[8]=w*c[8],n[9]=w*c[9],n[10]=w*c[10],n[11]=c[11],n[12]=c[12],n[13]=c[13],n[14]=c[14],n[15]=c[15],n)}static multiplyByUniformScale(c,o,n){return p.typeOf.object("matrix",c),p.typeOf.number("scale",o),p.typeOf.object("result",n),n[0]=c[0]*o,n[1]=c[1]*o,n[2]=c[2]*o,n[3]=c[3],n[4]=c[4]*o,n[5]=c[5]*o,n[6]=c[6]*o,n[7]=c[7],n[8]=c[8]*o,n[9]=c[9]*o,n[10]=c[10]*o,n[11]=c[11],n[12]=c[12],n[13]=c[13],n[14]=c[14],n[15]=c[15],n}static multiplyByVector(c,o,n){p.typeOf.object("matrix",c),p.typeOf.object("cartesian",o),p.typeOf.object("result",n);let y=o.x,O=o.y,w=o.z,b=o.w,j=c[0]*y+c[4]*O+c[8]*w+c[12]*b,z=c[1]*y+c[5]*O+c[9]*w+c[13]*b,h=c[2]*y+c[6]*O+c[10]*w+c[14]*b,R=c[3]*y+c[7]*O+c[11]*w+c[15]*b;return n.x=j,n.y=z,n.z=h,n.w=R,n}static multiplyByPointAsVector(c,o,n){p.typeOf.object("matrix",c),p.typeOf.object("cartesian",o),p.typeOf.object("result",n);let y=o.x,O=o.y,w=o.z,b=c[0]*y+c[4]*O+c[8]*w,j=c[1]*y+c[5]*O+c[9]*w,z=c[2]*y+c[6]*O+c[10]*w;return n.x=b,n.y=j,n.z=z,n}static multiplyByPoint(c,o,n){p.typeOf.object("matrix",c),p.typeOf.object("cartesian",o),p.typeOf.object("result",n);let y=o.x,O=o.y,w=o.z,b=c[0]*y+c[4]*O+c[8]*w+c[12],j=c[1]*y+c[5]*O+c[9]*w+c[13],z=c[2]*y+c[6]*O+c[10]*w+c[14];return n.x=b,n.y=j,n.z=z,n}static multiplyByScalar(c,o,n){return p.typeOf.object("matrix",c),p.typeOf.number("scalar",o),p.typeOf.object("result",n),n[0]=c[0]*o,n[1]=c[1]*o,n[2]=c[2]*o,n[3]=c[3]*o,n[4]=c[4]*o,n[5]=c[5]*o,n[6]=c[6]*o,n[7]=c[7]*o,n[8]=c[8]*o,n[9]=c[9]*o,n[10]=c[10]*o,n[11]=c[11]*o,n[12]=c[12]*o,n[13]=c[13]*o,n[14]=c[14]*o,n[15]=c[15]*o,n}static negate(c,o){return p.typeOf.object("matrix",c),p.typeOf.object("result",o),o[0]=-c[0],o[1]=-c[1],o[2]=-c[2],o[3]=-c[3],o[4]=-c[4],o[5]=-c[5],o[6]=-c[6],o[7]=-c[7],o[8]=-c[8],o[9]=-c[9],o[10]=-c[10],o[11]=-c[11],o[12]=-c[12],o[13]=-c[13],o[14]=-c[14],o[15]=-c[15],o}static transpose(c,o){p.typeOf.object("matrix",c),p.typeOf.object("result",o);let n=c[1],y=c[2],O=c[3],w=c[6],b=c[7],j=c[11];return o[0]=c[0],o[1]=c[4],o[2]=c[8],o[3]=c[12],o[4]=n,o[5]=c[5],o[6]=c[9],o[7]=c[13],o[8]=y,o[9]=w,o[10]=c[10],o[11]=c[14],o[12]=O,o[13]=b,o[14]=j,o[15]=c[15],o}static abs(c,o){return p.typeOf.object("matrix",c),p.typeOf.object("result",o),o[0]=Math.abs(c[0]),o[1]=Math.abs(c[1]),o[2]=Math.abs(c[2]),o[3]=Math.abs(c[3]),o[4]=Math.abs(c[4]),o[5]=Math.abs(c[5]),o[6]=Math.abs(c[6]),o[7]=Math.abs(c[7]),o[8]=Math.abs(c[8]),o[9]=Math.abs(c[9]),o[10]=Math.abs(c[10]),o[11]=Math.abs(c[11]),o[12]=Math.abs(c[12]),o[13]=Math.abs(c[13]),o[14]=Math.abs(c[14]),o[15]=Math.abs(c[15]),o}static equals(c,o){return c===o||U(c)&&U(o)&&c[12]===o[12]&&c[13]===o[13]&&c[14]===o[14]&&c[0]===o[0]&&c[1]===o[1]&&c[2]===o[2]&&c[4]===o[4]&&c[5]===o[5]&&c[6]===o[6]&&c[8]===o[8]&&c[9]===o[9]&&c[10]===o[10]&&c[3]===o[3]&&c[7]===o[7]&&c[11]===o[11]&&c[15]===o[15]}static equalsEpsilon(c,o,n){return n=n??0,c===o||U(c)&&U(o)&&Math.abs(c[0]-o[0])<=n&&Math.abs(c[1]-o[1])<=n&&Math.abs(c[2]-o[2])<=n&&Math.abs(c[3]-o[3])<=n&&Math.abs(c[4]-o[4])<=n&&Math.abs(c[5]-o[5])<=n&&Math.abs(c[6]-o[6])<=n&&Math.abs(c[7]-o[7])<=n&&Math.abs(c[8]-o[8])<=n&&Math.abs(c[9]-o[9])<=n&&Math.abs(c[10]-o[10])<=n&&Math.abs(c[11]-o[11])<=n&&Math.abs(c[12]-o[12])<=n&&Math.abs(c[13]-o[13])<=n&&Math.abs(c[14]-o[14])<=n&&Math.abs(c[15]-o[15])<=n}static getTranslation(c,o){return p.typeOf.object("matrix",c),p.typeOf.object("result",o),o.x=c[12],o.y=c[13],o.z=c[14],o}static getMatrix3(c,o){return p.typeOf.object("matrix",c),p.typeOf.object("result",o),o[0]=c[0],o[1]=c[1],o[2]=c[2],o[3]=c[4],o[4]=c[5],o[5]=c[6],o[6]=c[8],o[7]=c[9],o[8]=c[10],o}static inverse(c,o){p.typeOf.object("matrix",c),p.typeOf.object("result",o);let n=c[0],y=c[4],O=c[8],w=c[12],b=c[1],j=c[5],z=c[9],h=c[13],R=c[2],M=c[6],T=c[10],C=c[14],q=c[3],N=c[7],E=c[11],S=c[15],d=T*S,A=C*E,$=M*S,Z=C*N,B=M*E,Y=T*N,k=R*S,X=C*q,Q=R*E,H=T*q,J=R*N,D=M*q,K=d*j+Z*z+B*h-(A*j+$*z+Y*h),I=A*b+k*z+H*h-(d*b+X*z+Q*h),v=$*b+X*j+J*h-(Z*b+k*j+D*h),g=Y*b+Q*j+D*z-(B*b+H*j+J*z),_=A*y+$*O+Y*w-(d*y+Z*O+B*w),x=d*n+X*O+Q*w-(A*n+k*O+H*w),s=Z*n+k*y+D*w-($*n+X*y+J*w),i=B*n+H*y+J*O-(Y*n+Q*y+D*O);d=O*h,A=w*z,$=y*h,Z=w*j,B=y*z,Y=O*j,k=n*h,X=w*b,Q=n*z,H=O*b,J=n*j,D=y*b;let a=d*N+Z*E+B*S-(A*N+$*E+Y*S),o1=A*q+k*E+H*S-(d*q+X*E+Q*S),n1=$*q+X*N+J*S-(Z*q+k*N+D*S),y1=Y*q+Q*N+D*E-(B*q+H*N+J*E),p1=$*T+Y*C+A*M-(B*C+d*M+Z*T),O1=Q*C+d*R+X*T-(k*T+H*C+A*R),b1=k*M+D*C+Z*R-(J*C+$*R+X*M),w1=J*T+B*R+H*M-(Q*M+D*T+Y*R),P=n*K+y*I+O*v+w*g;if(Math.abs(P)<G.EPSILON21){if(u.equalsEpsilon(f.getMatrix3(c,Z1),B1,G.EPSILON7)&&c1.equals(f.getRow(c,3,Y1),k1))return o[0]=0,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=0,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=0,o[11]=0,o[12]=-c[12],o[13]=-c[13],o[14]=-c[14],o[15]=1,o;throw new h1("matrix is not invertible because its determinate is zero.")}return P=1/P,o[0]=K*P,o[1]=I*P,o[2]=v*P,o[3]=g*P,o[4]=_*P,o[5]=x*P,o[6]=s*P,o[7]=i*P,o[8]=a*P,o[9]=o1*P,o[10]=n1*P,o[11]=y1*P,o[12]=p1*P,o[13]=O1*P,o[14]=b1*P,o[15]=w1*P,o}static inverseTransformation(c,o){p.typeOf.object("matrix",c),p.typeOf.object("result",o);let n=c[0],y=c[1],O=c[2],w=c[4],b=c[5],j=c[6],z=c[8],h=c[9],R=c[10],M=c[12],T=c[13],C=c[14],q=-n*M-y*T-O*C,N=-w*M-b*T-j*C,E=-z*M-h*T-R*C;return o[0]=n,o[1]=w,o[2]=z,o[3]=0,o[4]=y,o[5]=b,o[6]=h,o[7]=0,o[8]=O,o[9]=j,o[10]=R,o[11]=0,o[12]=q,o[13]=N,o[14]=E,o[15]=1,o}static inverseTranspose(c,o){return p.typeOf.object("matrix",c),p.typeOf.object("result",o),f.inverse(f.transpose(c,X1),o)}get length(){return f.packedLength}clone(c){return f.clone(this,c)}equals(c){return f.equals(this,c)}static equalsArray(c,o,n){return c[0]===o[n]&&c[1]===o[n+1]&&c[2]===o[n+2]&&c[3]===o[n+3]&&c[4]===o[n+4]&&c[5]===o[n+5]&&c[6]===o[n+6]&&c[7]===o[n+7]&&c[8]===o[n+8]&&c[9]===o[n+9]&&c[10]===o[n+10]&&c[11]===o[n+11]&&c[12]===o[n+12]&&c[13]===o[n+13]&&c[14]===o[n+14]&&c[15]===o[n+15]}equalsEpsilon(c,o){return f.equalsEpsilon(this,c,o)}toString(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]}) +(${this[1]}, ${this[5]}, ${this[9]}, ${this[13]}) +(${this[2]}, ${this[6]}, ${this[10]}, ${this[14]}) +(${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`}};L.packedLength=16;L.fromArray=L.unpack;L.IDENTITY=Object.freeze(new L(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));L.ZERO=Object.freeze(new L(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));L.COLUMN0ROW0=0;L.COLUMN0ROW1=1;L.COLUMN0ROW2=2;L.COLUMN0ROW3=3;L.COLUMN1ROW0=4;L.COLUMN1ROW1=5;L.COLUMN1ROW2=6;L.COLUMN1ROW3=7;L.COLUMN2ROW0=8;L.COLUMN2ROW1=9;L.COLUMN2ROW2=10;L.COLUMN2ROW3=11;L.COLUMN3ROW0=12;L.COLUMN3ROW1=13;L.COLUMN3ROW2=14;L.COLUMN3ROW3=15;var e=new W,t=new W,l=new W,A1=new W,L1=new W,j1=new W,T1=new W,W1=new W,$1=new W,Z1=new u,B1=new u,Y1=new c1,k1=new c1(0,0,0,1),X1=new L,e1=L;export{c1 as a,e1 as b}; diff --git a/cesium/Workers/chunk-D3TVNJ6W.js b/cesium/Workers/chunk-D3TVNJ6W.js new file mode 100644 index 00000000..e18d5391 --- /dev/null +++ b/cesium/Workers/chunk-D3TVNJ6W.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as A}from"./chunk-3VUCSHGU.js";import{j as W}from"./chunk-LNJEJFV5.js";import{b as Z}from"./chunk-BPABSUDY.js";import{a as v,c as N}from"./chunk-2AIOP76V.js";import{a as t,b as U}from"./chunk-IAE6APK2.js";import{a as ot}from"./chunk-3E7FIXV7.js";import{a as ct,b as h}from"./chunk-NZBME2JK.js";import{f as x}from"./chunk-6DLS2UKD.js";var X=class{constructor(e){this._ellipsoid=e??N.default,this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}get ellipsoid(){return this._ellipsoid}project(e,n){let c=this._semimajorAxis,o=e.longitude*c,a=e.latitude*c,i=e.height;return x(n)?(n.x=o,n.y=a,n.z=i,n):new t(o,a,i)}unproject(e,n){if(!x(e))throw new ct("cartesian is required");let c=this._oneOverSemimajorAxis,o=e.x*c,a=e.y*c,i=e.z;return x(n)?(n.longitude=o,n.latitude=a,n.height=i,n):new v(o,a,i)}},F=X;function ft(m,e){this.start=m??0,this.stop=e??0}var at=ft;var k=class m{constructor(e,n){this.center=t.clone(e??t.ZERO),this.radius=n??0}static fromPoints(e,n){if(x(n)||(n=new m),!x(e)||e.length===0)return n.center=t.clone(t.ZERO,n.center),n.radius=0,n;let c=t.clone(e[0],$),o=t.clone(c,Y),a=t.clone(c,G),i=t.clone(c,I),d=t.clone(c,J),s=t.clone(c,K),f=t.clone(c,Q),S=e.length,y;for(y=1;y<S;y++){t.clone(e[y],c);let R=c.x,M=c.y,p=c.z;R<o.x&&t.clone(c,o),R>d.x&&t.clone(c,d),M<a.y&&t.clone(c,a),M>s.y&&t.clone(c,s),p<i.z&&t.clone(c,i),p>f.z&&t.clone(c,f)}let u=t.magnitudeSquared(t.subtract(d,o,j)),r=t.magnitudeSquared(t.subtract(s,a,j)),B=t.magnitudeSquared(t.subtract(f,i,j)),C=o,q=d,g=u;r>g&&(g=r,C=a,q=s),B>g&&(g=B,C=i,q=f);let z=L;z.x=(C.x+q.x)*.5,z.y=(C.y+q.y)*.5,z.z=(C.z+q.z)*.5;let w=t.magnitudeSquared(t.subtract(q,z,j)),l=Math.sqrt(w),b=H;b.x=o.x,b.y=a.y,b.z=i.z;let P=_;P.x=d.x,P.y=s.y,P.z=f.z;let D=t.midpoint(b,P,tt),E=0;for(y=0;y<S;y++){t.clone(e[y],c);let R=t.magnitude(t.subtract(c,D,j));R>E&&(E=R);let M=t.magnitudeSquared(t.subtract(c,z,j));if(M>w){let p=Math.sqrt(M);l=(l+p)*.5,w=l*l;let O=p-l;z.x=(l*z.x+O*c.x)/p,z.y=(l*z.y+O*c.y)/p,z.z=(l*z.z+O*c.z)/p}}return l<E?(t.clone(z,n.center),n.radius=l):(t.clone(D,n.center),n.radius=E),n}static fromRectangle2D(e,n,c){return m.fromRectangleWithHeights2D(e,n,0,0,c)}static fromRectangleWithHeights2D(e,n,c,o,a){if(x(a)||(a=new m),!x(e))return a.center=t.clone(t.ZERO,a.center),a.radius=0,a;rt._ellipsoid=N.default,n=n??rt,W.southwest(e,nt),nt.height=c,W.northeast(e,et),et.height=o;let i=n.project(nt,ut),d=n.project(et,xt),s=d.x-i.x,f=d.y-i.y,S=d.z-i.z;a.radius=Math.sqrt(s*s+f*f+S*S)*.5;let y=a.center;return y.x=i.x+s*.5,y.y=i.y+f*.5,y.z=i.z+S*.5,a}static fromRectangle3D(e,n,c,o){if(n=n??N.default,c=c??0,x(o)||(o=new m),!x(e))return o.center=t.clone(t.ZERO,o.center),o.radius=0,o;let a=W.subsample(e,n,c,yt);return m.fromPoints(a,o)}static fromVertices(e,n,c,o){if(x(o)||(o=new m),!x(e)||e.length===0)return o.center=t.clone(t.ZERO,o.center),o.radius=0,o;n=n??t.ZERO,c=c??3,h.typeOf.number.greaterThanOrEquals("stride",c,3);let a=$;a.x=e[0]+n.x,a.y=e[1]+n.y,a.z=e[2]+n.z;let i=t.clone(a,Y),d=t.clone(a,G),s=t.clone(a,I),f=t.clone(a,J),S=t.clone(a,K),y=t.clone(a,Q),u=e.length,r;for(r=0;r<u;r+=c){let p=e[r]+n.x,O=e[r+1]+n.y,T=e[r+2]+n.z;a.x=p,a.y=O,a.z=T,p<i.x&&t.clone(a,i),p>f.x&&t.clone(a,f),O<d.y&&t.clone(a,d),O>S.y&&t.clone(a,S),T<s.z&&t.clone(a,s),T>y.z&&t.clone(a,y)}let B=t.magnitudeSquared(t.subtract(f,i,j)),C=t.magnitudeSquared(t.subtract(S,d,j)),q=t.magnitudeSquared(t.subtract(y,s,j)),g=i,z=f,w=B;C>w&&(w=C,g=d,z=S),q>w&&(w=q,g=s,z=y);let l=L;l.x=(g.x+z.x)*.5,l.y=(g.y+z.y)*.5,l.z=(g.z+z.z)*.5;let b=t.magnitudeSquared(t.subtract(z,l,j)),P=Math.sqrt(b),D=H;D.x=i.x,D.y=d.y,D.z=s.z;let E=_;E.x=f.x,E.y=S.y,E.z=y.z;let R=t.midpoint(D,E,tt),M=0;for(r=0;r<u;r+=c){a.x=e[r]+n.x,a.y=e[r+1]+n.y,a.z=e[r+2]+n.z;let p=t.magnitude(t.subtract(a,R,j));p>M&&(M=p);let O=t.magnitudeSquared(t.subtract(a,l,j));if(O>b){let T=Math.sqrt(O);P=(P+T)*.5,b=P*P;let V=T-P;l.x=(P*l.x+V*a.x)/T,l.y=(P*l.y+V*a.y)/T,l.z=(P*l.z+V*a.z)/T}}return P<M?(t.clone(l,o.center),o.radius=P):(t.clone(R,o.center),o.radius=M),o}static fromEncodedCartesianVertices(e,n,c){if(x(c)||(c=new m),!x(e)||!x(n)||e.length!==n.length||e.length===0)return c.center=t.clone(t.ZERO,c.center),c.radius=0,c;let o=$;o.x=e[0]+n[0],o.y=e[1]+n[1],o.z=e[2]+n[2];let a=t.clone(o,Y),i=t.clone(o,G),d=t.clone(o,I),s=t.clone(o,J),f=t.clone(o,K),S=t.clone(o,Q),y=e.length,u;for(u=0;u<y;u+=3){let M=e[u]+n[u],p=e[u+1]+n[u+1],O=e[u+2]+n[u+2];o.x=M,o.y=p,o.z=O,M<a.x&&t.clone(o,a),M>s.x&&t.clone(o,s),p<i.y&&t.clone(o,i),p>f.y&&t.clone(o,f),O<d.z&&t.clone(o,d),O>S.z&&t.clone(o,S)}let r=t.magnitudeSquared(t.subtract(s,a,j)),B=t.magnitudeSquared(t.subtract(f,i,j)),C=t.magnitudeSquared(t.subtract(S,d,j)),q=a,g=s,z=r;B>z&&(z=B,q=i,g=f),C>z&&(z=C,q=d,g=S);let w=L;w.x=(q.x+g.x)*.5,w.y=(q.y+g.y)*.5,w.z=(q.z+g.z)*.5;let l=t.magnitudeSquared(t.subtract(g,w,j)),b=Math.sqrt(l),P=H;P.x=a.x,P.y=i.y,P.z=d.z;let D=_;D.x=s.x,D.y=f.y,D.z=S.z;let E=t.midpoint(P,D,tt),R=0;for(u=0;u<y;u+=3){o.x=e[u]+n[u],o.y=e[u+1]+n[u+1],o.z=e[u+2]+n[u+2];let M=t.magnitude(t.subtract(o,E,j));M>R&&(R=M);let p=t.magnitudeSquared(t.subtract(o,w,j));if(p>l){let O=Math.sqrt(p);b=(b+O)*.5,l=b*b;let T=O-b;w.x=(b*w.x+T*o.x)/O,w.y=(b*w.y+T*o.y)/O,w.z=(b*w.z+T*o.z)/O}}return b<R?(t.clone(w,c.center),c.radius=b):(t.clone(E,c.center),c.radius=R),c}static fromCornerPoints(e,n,c){h.typeOf.object("corner",e),h.typeOf.object("oppositeCorner",n),x(c)||(c=new m);let o=t.midpoint(e,n,c.center);return c.radius=t.distance(o,n),c}static fromEllipsoid(e,n){return h.typeOf.object("ellipsoid",e),x(n)||(n=new m),t.clone(t.ZERO,n.center),n.radius=e.maximumRadius,n}static fromBoundingSpheres(e,n){if(x(n)||(n=new m),!x(e)||e.length===0)return n.center=t.clone(t.ZERO,n.center),n.radius=0,n;let c=e.length;if(c===1)return m.clone(e[0],n);if(c===2)return m.union(e[0],e[1],n);let o=[],a;for(a=0;a<c;a++)o.push(e[a].center);n=m.fromPoints(o,n);let i=n.center,d=n.radius;for(a=0;a<c;a++){let s=e[a];d=Math.max(d,t.distance(i,s.center)+s.radius)}return n.radius=d,n}static fromOrientedBoundingBox(e,n){h.defined("orientedBoundingBox",e),x(n)||(n=new m);let c=e.halfAxes,o=U.getColumn(c,0,lt),a=U.getColumn(c,1,zt),i=U.getColumn(c,2,ht);return t.add(o,a,o),t.add(o,i,o),n.center=t.clone(e.center,n.center),n.radius=t.magnitude(o),n}static fromTransformation(e,n){h.typeOf.object("transformation",e),x(n)||(n=new m);let c=Z.getTranslation(e,St),o=Z.getScale(e,wt),a=.5*t.magnitude(o);return n.center=t.clone(c,n.center),n.radius=a,n}static clone(e,n){if(x(e))return x(n)?(n.center=t.clone(e.center,n.center),n.radius=e.radius,n):new m(e.center,e.radius)}static pack(e,n,c){h.typeOf.object("value",e),h.defined("array",n),c=c??0;let o=e.center;return n[c++]=o.x,n[c++]=o.y,n[c++]=o.z,n[c]=e.radius,n}static unpack(e,n,c){h.defined("array",e),n=n??0,x(c)||(c=new m);let o=c.center;return o.x=e[n++],o.y=e[n++],o.z=e[n++],c.radius=e[n],c}static union(e,n,c){h.typeOf.object("left",e),h.typeOf.object("right",n),x(c)||(c=new m);let o=e.center,a=e.radius,i=n.center,d=n.radius,s=t.subtract(i,o,pt),f=t.magnitude(s);if(a>=f+d)return e.clone(c),c;if(d>=f+a)return n.clone(c),c;let S=(a+f+d)*.5,y=t.multiplyByScalar(s,(-a+S)/f,Pt);return t.add(y,o,y),t.clone(y,c.center),c.radius=S,c}static expand(e,n,c){h.typeOf.object("sphere",e),h.typeOf.object("point",n),c=m.clone(e,c);let o=t.magnitude(t.subtract(n,c.center,Ot));return o>c.radius&&(c.radius=o),c}static intersectPlane(e,n){h.typeOf.object("sphere",e),h.typeOf.object("plane",n);let c=e.center,o=e.radius,a=n.normal,i=t.dot(a,c)+n.distance;return i<-o?A.OUTSIDE:i<o?A.INTERSECTING:A.INSIDE}static transform(e,n,c){return h.typeOf.object("sphere",e),h.typeOf.object("transform",n),x(c)||(c=new m),c.center=Z.multiplyByPoint(n,e.center,c.center),c.radius=Z.getMaximumScale(n)*e.radius,c}static distanceSquaredTo(e,n){h.typeOf.object("sphere",e),h.typeOf.object("cartesian",n);let c=t.subtract(e.center,n,gt),o=t.magnitude(c)-e.radius;return o<=0?0:o*o}static transformWithoutScale(e,n,c){return h.typeOf.object("sphere",e),h.typeOf.object("transform",n),x(c)||(c=new m),c.center=Z.multiplyByPoint(n,e.center,c.center),c.radius=e.radius,c}static computePlaneDistances(e,n,c,o){h.typeOf.object("sphere",e),h.typeOf.object("position",n),h.typeOf.object("direction",c),x(o)||(o=new at);let a=t.subtract(e.center,n,bt),i=t.dot(c,a);return o.start=i-e.radius,o.stop=i+e.radius,o}static projectTo2D(e,n,c){h.typeOf.object("sphere",e),dt._ellipsoid=N.default,n=n??dt;let o=n.ellipsoid,a=e.center,i=e.radius,d;t.equals(a,t.ZERO)?d=t.clone(t.UNIT_X,it):d=o.geodeticSurfaceNormal(a,it);let s=t.cross(t.UNIT_Z,d,jt);t.normalize(s,s);let f=t.cross(d,s,qt);t.normalize(f,f),t.multiplyByScalar(d,i,d),t.multiplyByScalar(f,i,f),t.multiplyByScalar(s,i,s);let S=t.negate(f,Ct),y=t.negate(s,Mt),u=st,r=u[0];t.add(d,f,r),t.add(r,s,r),r=u[1],t.add(d,f,r),t.add(r,y,r),r=u[2],t.add(d,S,r),t.add(r,y,r),r=u[3],t.add(d,S,r),t.add(r,s,r),t.negate(d,d),r=u[4],t.add(d,f,r),t.add(r,s,r),r=u[5],t.add(d,f,r),t.add(r,y,r),r=u[6],t.add(d,S,r),t.add(r,y,r),r=u[7],t.add(d,S,r),t.add(r,s,r);let B=u.length;for(let z=0;z<B;++z){let w=u[z];t.add(a,w,w);let l=o.cartesianToCartographic(w,Rt);n.project(l,w)}c=m.fromPoints(u,c),a=c.center;let C=a.x,q=a.y,g=a.z;return a.x=g,a.y=C,a.z=q,c}static isOccluded(e,n){return h.typeOf.object("sphere",e),h.typeOf.object("occluder",n),!n.isBoundingSphereVisible(e)}static equals(e,n){return e===n||x(e)&&x(n)&&t.equals(e.center,n.center)&&e.radius===n.radius}intersectPlane(e){return m.intersectPlane(this,e)}distanceSquaredTo(e){return m.distanceSquaredTo(this,e)}computePlaneDistances(e,n,c){return m.computePlaneDistances(this,e,n,c)}isOccluded(e){return m.isOccluded(this,e)}equals(e){return m.equals(this,e)}clone(e){return m.clone(this,e)}volume(){let e=this.radius;return mt*e*e*e}};k.packedLength=4;var Y=new t,G=new t,I=new t,J=new t,K=new t,Q=new t,$=new t,j=new t,L=new t,H=new t,_=new t,tt=new t,mt=4/3*ot.PI,rt=new F,ut=new t,xt=new t,nt=new v,et=new v,yt=[],lt=new t,zt=new t,ht=new t,St=new t,wt=new t,pt=new t,Pt=new t,Ot=new t,gt=new t,bt=new t,it=new t,jt=new t,qt=new t,Mt=new t,Ct=new t,Rt=new v,st=new Array(8);for(let m=0;m<8;++m)st[m]=new t;var dt=new F,Qt=k;export{F as a,at as b,Qt as c}; diff --git a/cesium/Workers/chunk-DM7KUSL2.js b/cesium/Workers/chunk-DM7KUSL2.js new file mode 100644 index 00000000..cc6e1a63 --- /dev/null +++ b/cesium/Workers/chunk-DM7KUSL2.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as G}from"./chunk-P7N43FDO.js";import{a as At}from"./chunk-XRJOFXJF.js";import{a as yt}from"./chunk-QNPYEODC.js";import{a as $}from"./chunk-ML6MR2RA.js";import{a as v}from"./chunk-AKELQO2L.js";import{a as st}from"./chunk-4WQ4VT5S.js";import{a as ht}from"./chunk-6EINM7EY.js";import{b as ct,c as rt,d as F}from"./chunk-A4I25VN7.js";import{a as lt,c as it}from"./chunk-D3TVNJ6W.js";import{h as nt,j as bt}from"./chunk-LNJEJFV5.js";import{a as P}from"./chunk-ATKJRN2G.js";import{a as _t,b as Q,c as D}from"./chunk-2AIOP76V.js";import{a,b as C,c as dt}from"./chunk-IAE6APK2.js";import{a as R}from"./chunk-3E7FIXV7.js";import{a as ot,b as k}from"./chunk-NZBME2JK.js";import{f as Z}from"./chunk-6DLS2UKD.js";var tt=new a,pt=new a,xt=new a,wt=new a,w=new Q,Mt=new C,Vt=new C,gt=new nt,Tt=new a,Nt=new a,Et=new a,ft=new _t,Pt=new a,Ft=new Q,St=new Q;function Ot(o,e,t){let n=e.vertexFormat,s=e.center,i=e.semiMajorAxis,r=e.semiMinorAxis,f=e.ellipsoid,h=e.stRotation,N=t?o.length/3*2:o.length/3,g=e.shadowVolume,c=n.st?new Float32Array(N*2):void 0,l=n.normal?new Float32Array(N*3):void 0,A=n.tangent?new Float32Array(N*3):void 0,x=n.bitangent?new Float32Array(N*3):void 0,S=g?new Float32Array(N*3):void 0,z=0,b=Tt,M=Nt,d=Et,_=new lt(f),I=_.project(f.cartesianToCartographic(s,ft),Pt),W=f.scaleToGeodeticSurface(s,tt);f.geodeticSurfaceNormal(W,W);let J=Mt,U=Vt;if(h!==0){let m=nt.fromAxisAngle(W,h,gt);J=C.fromQuaternion(m,J),m=nt.fromAxisAngle(W,-h,gt),U=C.fromQuaternion(m,U)}else J=C.clone(C.IDENTITY,J),U=C.clone(C.IDENTITY,U);let B=Q.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Ft),q=Q.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,St),O=o.length,y=t?O:0,p=y/3*2;for(let m=0;m<O;m+=3){let u=m+1,T=m+2,V=a.fromArray(o,m,tt);if(n.st){let E=C.multiplyByVector(J,V,pt),j=_.project(f.cartesianToCartographic(E,ft),xt);a.subtract(j,I,j),w.x=(j.x+i)/(2*i),w.y=(j.y+r)/(2*r),B.x=Math.min(w.x,B.x),B.y=Math.min(w.y,B.y),q.x=Math.max(w.x,q.x),q.y=Math.max(w.y,q.y),t&&(c[z+p]=w.x,c[z+1+p]=w.y),c[z++]=w.x,c[z++]=w.y}(n.normal||n.tangent||n.bitangent||g)&&(b=f.geodeticSurfaceNormal(V,b),g&&(S[m+y]=-b.x,S[u+y]=-b.y,S[T+y]=-b.z),(n.normal||n.tangent||n.bitangent)&&((n.tangent||n.bitangent)&&(M=a.normalize(a.cross(a.UNIT_Z,b,M),M),C.multiplyByVector(U,M,M)),n.normal&&(l[m]=b.x,l[u]=b.y,l[T]=b.z,t&&(l[m+y]=-b.x,l[u+y]=-b.y,l[T+y]=-b.z)),n.tangent&&(A[m]=M.x,A[u]=M.y,A[T]=M.z,t&&(A[m+y]=-M.x,A[u+y]=-M.y,A[T+y]=-M.z)),n.bitangent&&(d=a.normalize(a.cross(b,M,d),d),x[m]=d.x,x[u]=d.y,x[T]=d.z,t&&(x[m+y]=d.x,x[u+y]=d.y,x[T+y]=d.z))))}if(n.st){O=c.length;for(let m=0;m<O;m+=2)c[m]=(c[m]-B.x)/(q.x-B.x),c[m+1]=(c[m+1]-B.y)/(q.y-B.y)}let L=new ht;if(n.position){let m=G.raisePositionsToHeight(o,e,t);L.position=new F({componentDatatype:P.DOUBLE,componentsPerAttribute:3,values:m})}if(n.st&&(L.st=new F({componentDatatype:P.FLOAT,componentsPerAttribute:2,values:c})),n.normal&&(L.normal=new F({componentDatatype:P.FLOAT,componentsPerAttribute:3,values:l})),n.tangent&&(L.tangent=new F({componentDatatype:P.FLOAT,componentsPerAttribute:3,values:A})),n.bitangent&&(L.bitangent=new F({componentDatatype:P.FLOAT,componentsPerAttribute:3,values:x})),g&&(L.extrudeDirection=new F({componentDatatype:P.FLOAT,componentsPerAttribute:3,values:S})),t&&Z(e.offsetAttribute)){let m=new Uint8Array(N);if(e.offsetAttribute===$.TOP)m=m.fill(1,0,N/2);else{let u=e.offsetAttribute===$.NONE?0:1;m=m.fill(u)}L.applyOffset=new F({componentDatatype:P.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}return L}function jt(o){let e=new Array(12*(o*(o+1))-6),t=0,n,s,i,r,f;for(n=0,i=1,r=0;r<3;r++)e[t++]=i++,e[t++]=n,e[t++]=i;for(r=2;r<o+1;++r){for(i=r*(r+1)-1,n=(r-1)*r-1,e[t++]=i++,e[t++]=n,e[t++]=i,s=2*r,f=0;f<s-1;++f)e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n,e[t++]=i;e[t++]=i++,e[t++]=n,e[t++]=i}for(s=o*2,++i,++n,r=0;r<s-1;++r)e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n,e[t++]=i;for(e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n++,e[t++]=n,++n,r=o-1;r>1;--r){for(e[t++]=n++,e[t++]=n,e[t++]=i,s=2*r,f=0;f<s-1;++f)e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n,e[t++]=i;e[t++]=n++,e[t++]=n++,e[t++]=i++}for(r=0;r<3;r++)e[t++]=n++,e[t++]=n,e[t++]=i;return e}var K=new a;function Dt(o){let e=o.center;K=a.multiplyByScalar(o.ellipsoid.geodeticSurfaceNormal(e,K),o.height,K),K=a.add(e,K,K);let t=new it(K,o.semiMajorAxis),n=G.computeEllipsePositions(o,!0,!1),s=n.positions,i=n.numPts,r=Ot(s,o,!1),f=jt(i);return f=st.createTypedArray(s.length/3,f),{boundingSphere:t,attributes:r,indices:f}}function vt(o,e){let t=e.vertexFormat,n=e.center,s=e.semiMajorAxis,i=e.semiMinorAxis,r=e.ellipsoid,f=e.height,h=e.extrudedHeight,N=e.stRotation,g=o.length/3*2,c=new Float64Array(g*3),l=t.st?new Float32Array(g*2):void 0,A=t.normal?new Float32Array(g*3):void 0,x=t.tangent?new Float32Array(g*3):void 0,S=t.bitangent?new Float32Array(g*3):void 0,z=e.shadowVolume,b=z?new Float32Array(g*3):void 0,M=0,d=Tt,_=Nt,I=Et,W=new lt(r),J=W.project(r.cartesianToCartographic(n,ft),Pt),U=r.scaleToGeodeticSurface(n,tt);r.geodeticSurfaceNormal(U,U);let B=nt.fromAxisAngle(U,N,gt),q=C.fromQuaternion(B,Mt),O=Q.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Ft),y=Q.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,St),p=o.length,L=p/3*2;for(let u=0;u<p;u+=3){let T=u+1,V=u+2,E=a.fromArray(o,u,tt),j;if(t.st){let et=C.multiplyByVector(q,E,pt),X=W.project(r.cartesianToCartographic(et,ft),xt);a.subtract(X,J,X),w.x=(X.x+s)/(2*s),w.y=(X.y+i)/(2*i),O.x=Math.min(w.x,O.x),O.y=Math.min(w.y,O.y),y.x=Math.max(w.x,y.x),y.y=Math.max(w.y,y.y),l[M+L]=w.x,l[M+1+L]=w.y,l[M++]=w.x,l[M++]=w.y}E=r.scaleToGeodeticSurface(E,E),j=a.clone(E,pt),d=r.geodeticSurfaceNormal(E,d),z&&(b[u+p]=-d.x,b[T+p]=-d.y,b[V+p]=-d.z);let at=a.multiplyByScalar(d,f,wt);if(E=a.add(E,at,E),at=a.multiplyByScalar(d,h,at),j=a.add(j,at,j),t.position&&(c[u+p]=j.x,c[T+p]=j.y,c[V+p]=j.z,c[u]=E.x,c[T]=E.y,c[V]=E.z),t.normal||t.tangent||t.bitangent){I=a.clone(d,I);let et=a.fromArray(o,(u+3)%p,wt);a.subtract(et,E,et);let X=a.subtract(j,E,xt);d=a.normalize(a.cross(X,et,d),d),t.normal&&(A[u]=d.x,A[T]=d.y,A[V]=d.z,A[u+p]=d.x,A[T+p]=d.y,A[V+p]=d.z),t.tangent&&(_=a.normalize(a.cross(I,d,_),_),x[u]=_.x,x[T]=_.y,x[V]=_.z,x[u+p]=_.x,x[u+1+p]=_.y,x[u+2+p]=_.z),t.bitangent&&(S[u]=I.x,S[T]=I.y,S[V]=I.z,S[u+p]=I.x,S[T+p]=I.y,S[V+p]=I.z)}}if(t.st){p=l.length;for(let u=0;u<p;u+=2)l[u]=(l[u]-O.x)/(y.x-O.x),l[u+1]=(l[u+1]-O.y)/(y.y-O.y)}let m=new ht;if(t.position&&(m.position=new F({componentDatatype:P.DOUBLE,componentsPerAttribute:3,values:c})),t.st&&(m.st=new F({componentDatatype:P.FLOAT,componentsPerAttribute:2,values:l})),t.normal&&(m.normal=new F({componentDatatype:P.FLOAT,componentsPerAttribute:3,values:A})),t.tangent&&(m.tangent=new F({componentDatatype:P.FLOAT,componentsPerAttribute:3,values:x})),t.bitangent&&(m.bitangent=new F({componentDatatype:P.FLOAT,componentsPerAttribute:3,values:S})),z&&(m.extrudeDirection=new F({componentDatatype:P.FLOAT,componentsPerAttribute:3,values:b})),Z(e.offsetAttribute)){let u=new Uint8Array(g);if(e.offsetAttribute===$.TOP)u=u.fill(1,0,g/2);else{let T=e.offsetAttribute===$.NONE?0:1;u=u.fill(T)}m.applyOffset=new F({componentDatatype:P.UNSIGNED_BYTE,componentsPerAttribute:1,values:u})}return m}function zt(o){let e=o.length/3,t=st.createTypedArray(e,e*6),n=0;for(let s=0;s<e;s++){let i=s,r=s+e,f=(i+1)%e,h=f+e;t[n++]=i,t[n++]=r,t[n++]=f,t[n++]=f,t[n++]=r,t[n++]=h}return t}var mt=new it,ut=new it;function Bt(o){let e=o.center,t=o.ellipsoid,n=o.semiMajorAxis,s=a.multiplyByScalar(t.geodeticSurfaceNormal(e,tt),o.height,tt);mt.center=a.add(e,s,mt.center),mt.radius=n,s=a.multiplyByScalar(t.geodeticSurfaceNormal(e,s),o.extrudedHeight,s),ut.center=a.add(e,s,ut.center),ut.radius=n;let i=G.computeEllipsePositions(o,!0,!0),r=i.positions,f=i.numPts,h=i.outerPositions,N=it.union(mt,ut),g=Ot(r,o,!0),c=jt(f),l=c.length;c.length=l*2;let A=r.length/3;for(let _=0;_<l;_+=3)c[_+l]=c[_+2]+A,c[_+1+l]=c[_+1]+A,c[_+2+l]=c[_]+A;let x=st.createTypedArray(A*2/3,c),S=new rt({attributes:g,indices:x,primitiveType:ct.TRIANGLES}),z=vt(h,o);c=zt(h);let b=st.createTypedArray(h.length*2/3,c),M=new rt({attributes:z,indices:b,primitiveType:ct.TRIANGLES}),d=yt.combineInstances([new At({geometry:S}),new At({geometry:M})]);return{boundingSphere:N,attributes:d[0].attributes,indices:d[0].indices}}function Ct(o,e,t,n,s,i,r){let h=G.computeEllipsePositions({center:o,semiMajorAxis:e,semiMinorAxis:t,rotation:n,granularity:s},!1,!0).outerPositions,N=h.length/3,g=new Array(N);for(let l=0;l<N;++l)g[l]=a.fromArray(h,l*3);let c=bt.fromCartesianArray(g,i,r);return c.width>R.PI&&(c.north=c.north>0?R.PI_OVER_TWO-R.EPSILON7:c.north,c.south=c.south<0?R.EPSILON7-R.PI_OVER_TWO:c.south,c.east=R.PI,c.west=-R.PI),c}function Y(o){o=o??dt.EMPTY_OBJECT;let e=o.center,t=o.ellipsoid??D.default,n=o.semiMajorAxis,s=o.semiMinorAxis,i=o.granularity??R.RADIANS_PER_DEGREE,r=o.vertexFormat??v.DEFAULT;if(k.defined("options.center",e),k.typeOf.number("options.semiMajorAxis",n),k.typeOf.number("options.semiMinorAxis",s),n<s)throw new ot("semiMajorAxis must be greater than or equal to the semiMinorAxis.");if(i<=0)throw new ot("granularity must be greater than zero.");let f=o.height??0,h=o.extrudedHeight??f;this._center=a.clone(e),this._semiMajorAxis=n,this._semiMinorAxis=s,this._ellipsoid=D.clone(t),this._rotation=o.rotation??0,this._stRotation=o.stRotation??0,this._height=Math.max(h,f),this._granularity=i,this._vertexFormat=v.clone(r),this._extrudedHeight=Math.min(h,f),this._shadowVolume=o.shadowVolume??!1,this._workerName="createEllipseGeometry",this._offsetAttribute=o.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}Y.packedLength=a.packedLength+D.packedLength+v.packedLength+9;Y.pack=function(o,e,t){return k.defined("value",o),k.defined("array",e),t=t??0,a.pack(o._center,e,t),t+=a.packedLength,D.pack(o._ellipsoid,e,t),t+=D.packedLength,v.pack(o._vertexFormat,e,t),t+=v.packedLength,e[t++]=o._semiMajorAxis,e[t++]=o._semiMinorAxis,e[t++]=o._rotation,e[t++]=o._stRotation,e[t++]=o._height,e[t++]=o._granularity,e[t++]=o._extrudedHeight,e[t++]=o._shadowVolume?1:0,e[t]=o._offsetAttribute??-1,e};var Rt=new a,It=new D,Lt=new v,H={center:Rt,ellipsoid:It,vertexFormat:Lt,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Y.unpack=function(o,e,t){k.defined("array",o),e=e??0;let n=a.unpack(o,e,Rt);e+=a.packedLength;let s=D.unpack(o,e,It);e+=D.packedLength;let i=v.unpack(o,e,Lt);e+=v.packedLength;let r=o[e++],f=o[e++],h=o[e++],N=o[e++],g=o[e++],c=o[e++],l=o[e++],A=o[e++]===1,x=o[e];return Z(t)?(t._center=a.clone(n,t._center),t._ellipsoid=D.clone(s,t._ellipsoid),t._vertexFormat=v.clone(i,t._vertexFormat),t._semiMajorAxis=r,t._semiMinorAxis=f,t._rotation=h,t._stRotation=N,t._height=g,t._granularity=c,t._extrudedHeight=l,t._shadowVolume=A,t._offsetAttribute=x===-1?void 0:x,t):(H.height=g,H.extrudedHeight=l,H.granularity=c,H.stRotation=N,H.rotation=h,H.semiMajorAxis=r,H.semiMinorAxis=f,H.shadowVolume=A,H.offsetAttribute=x===-1?void 0:x,new Y(H))};Y.computeRectangle=function(o,e){o=o??dt.EMPTY_OBJECT;let t=o.center,n=o.ellipsoid??D.default,s=o.semiMajorAxis,i=o.semiMinorAxis,r=o.granularity??R.RADIANS_PER_DEGREE,f=o.rotation??0;if(k.defined("options.center",t),k.typeOf.number("options.semiMajorAxis",s),k.typeOf.number("options.semiMinorAxis",i),s<i)throw new ot("semiMajorAxis must be greater than or equal to the semiMinorAxis.");if(r<=0)throw new ot("granularity must be greater than zero.");return Ct(t,s,i,f,r,n,e)};Y.createGeometry=function(o){if(o._semiMajorAxis<=0||o._semiMinorAxis<=0)return;let e=o._height,t=o._extrudedHeight,n=!R.equalsEpsilon(e,t,0,R.EPSILON2);o._center=o._ellipsoid.scaleToGeodeticSurface(o._center,o._center);let s={center:o._center,semiMajorAxis:o._semiMajorAxis,semiMinorAxis:o._semiMinorAxis,ellipsoid:o._ellipsoid,rotation:o._rotation,height:e,granularity:o._granularity,vertexFormat:o._vertexFormat,stRotation:o._stRotation},i;if(n)s.extrudedHeight=t,s.shadowVolume=o._shadowVolume,s.offsetAttribute=o._offsetAttribute,i=Bt(s);else if(i=Dt(s),Z(o._offsetAttribute)){let r=i.attributes.position.values.length,f=o._offsetAttribute===$.NONE?0:1,h=new Uint8Array(r/3).fill(f);i.attributes.applyOffset=new F({componentDatatype:P.UNSIGNED_BYTE,componentsPerAttribute:1,values:h})}return new rt({attributes:i.attributes,indices:i.indices,primitiveType:ct.TRIANGLES,boundingSphere:i.boundingSphere,offsetAttribute:o._offsetAttribute})};Y.createShadowVolume=function(o,e,t){let n=o._granularity,s=o._ellipsoid,i=e(n,s),r=t(n,s);return new Y({center:o._center,semiMajorAxis:o._semiMajorAxis,semiMinorAxis:o._semiMinorAxis,ellipsoid:s,rotation:o._rotation,stRotation:o._stRotation,granularity:n,extrudedHeight:i,height:r,vertexFormat:v.POSITION_ONLY,shadowVolume:!0})};function kt(o){let e=-o._stRotation;if(e===0)return[0,0,0,1,1,0];let n=G.computeEllipsePositions({center:o._center,semiMajorAxis:o._semiMajorAxis,semiMinorAxis:o._semiMinorAxis,rotation:o._rotation,granularity:o._granularity},!1,!0).outerPositions,s=n.length/3,i=new Array(s);for(let h=0;h<s;++h)i[h]=a.fromArray(n,h*3);let r=o._ellipsoid,f=o.rectangle;return rt._textureCoordinateRotationPoints(i,e,r,f)}Object.defineProperties(Y.prototype,{rectangle:{get:function(){return Z(this._rectangle)||(this._rectangle=Ct(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return Z(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=kt(this)),this._textureCoordinateRotationPoints}}});var de=Y;export{de as a}; diff --git a/cesium/Workers/chunk-E7EKLP3B.js b/cesium/Workers/chunk-E7EKLP3B.js new file mode 100644 index 00000000..61a93ca5 --- /dev/null +++ b/cesium/Workers/chunk-E7EKLP3B.js @@ -0,0 +1,29 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Fa}from"./chunk-W5OEMTMB.js";import{a as zb,b as Ta,c as Ha}from"./chunk-PYMQNHFO.js";import{a as Ia}from"./chunk-LN2UT4R3.js";import{a as ra}from"./chunk-P5EFSOUF.js";import{a as rb}from"./chunk-G72JFEXW.js";import{a as Ca}from"./chunk-5VFNV3LW.js";import{a as gb,b as ib}from"./chunk-SRA5MBUT.js";import{b as db,c as pa}from"./chunk-D3TVNJ6W.js";import{a as Ra,b as _b,d as hb,e as Fb,f as Mb,g as Na,i as Oa,j as xa}from"./chunk-LNJEJFV5.js";import{b as T}from"./chunk-BPABSUDY.js";import{a as tb}from"./chunk-ATKJRN2G.js";import{a as Ba}from"./chunk-G3GDHHWO.js";import{a as Y,b as R,c as Ea,d as nb}from"./chunk-2AIOP76V.js";import{a as w,b as ya,c as fb}from"./chunk-IAE6APK2.js";import{a as L}from"./chunk-3E7FIXV7.js";import{a as Aa,b as J}from"./chunk-NZBME2JK.js";import{d as $b,f as Z}from"./chunk-6DLS2UKD.js";var Be=(function(){var c="b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiE8AdilveoveovrrwrrrDDoDrbqqbelve9Weiiviebeoweuecj:Gdkr:PlCo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxY9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVJ9V29VVbmE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9WbHa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbOK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbAl79IV9RbXDwebcekdKYq:zf8Adbk;wadhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;i:I:cjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:xjjjb8AdnaiTmbarc;adfadalz:wjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:xjjjb8Aarc;abfarc;adfalz:wjjjb8Aar9cb83iUar9cb83i8War9cb83iyar9cb83iaar9cb83iKar9cb83izar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzcbhHincdhOcbhAdnavci6mbar9cb83i;Ooar9cb83i;Goar9cb83i;yoar9cb83i;qoadaHfgoybbhCcbhXincbhwcbhQdninaoalfhLaoybbgKaC7aQVhQawcP0meaLhoaKhCawcefgwaXfai6mbkkcbhCarc;qofhwincwhYcwh8AdnaQaC93gocFeGgEcs0mbclh8AaEci0mbcdcbaEEh8Akdnaocw4cFeGgEcs0mbclhYaEci0mbcdcbaEEhYkaYa8AfhEawydbh3cwhYcwh8Adnaocz4cFeGg5cs0mbclh8Aa5ci0mbcdcba5Eh8AkaEa3fhEdnaocFFFFb0mbclhYaocFFF8F0mbcbcdaocjjjw6EhYkawaEa8AfaYfBdbawclfhwaCcefgCcw9hmbkaLhoaKhCaXczfgXai6mbkcbhocehwazhQinawaoaQydbarc;qofaocdtfydb6EhoaQclfhQawcefgwcw9hmbkaoclthAcihOkcbhEarc;qlfcbcjdz:xjjjb8AarcbBd;ilar9cb83i;aladh8Eaqh8Fakh3inarc;qlfadaEaEcb9h9Ral2falz:wjjjb8Aaia8Faia8F6EhadnaqaiaE9RaEaqfai6EgKcsfc9WGgoaK9nmbarc;qofaKfcbaoaK9Rz:xjjjb8AkadaEal2fhhcbhginagaAVcl4hXarc;alfagcdtfh8JaHh8Kcbh8Lina8LaHfhwdndndndndndndnagPlbedibkaKTmvahawfhoarc;qlfawfRbbhQarc;qofhwaahCinawaoRbbgYaQ9RgQcetaQcKtc8F91786bbawcefhwaoalfhoaYhQaEaCcufgC9hmbxvkkaKTmla8Kc9:Ghoa8LcitcwGh8Aarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhQarc;qofhwaahCinawa3aofRbbcwta8EaofRbbVgYaQ9RgQcetaQcztc8F917cFFiGa8A486bbaoalfhoawcefhwaYhQaEaCcufgC9hmbxlkkasa8Kc98GgQfhoa3aQfhYarc;qlfawc98GgQfRbbhCcwhwinaoRbbawtaCVhCaocefhoawcwfgwca9hmbxdkkaKTmdxekaKTmea8Lcith5ahaQfh8AcbhLina8ARbbhQcwhoaYhwinawRbbaotaQVhQawcefhwaocwfgoca9hmbkarc;qofaLfaQaC7aX93a5486bbaYalfhYa8Aalfh8AaQhCaLcefgLaK9hmbkka8Jydbh8AcbhLarc;qofhoincdhQcbhwinaQaoawfRbbcb9hfhQawcefgwcz9hmbkclhCcbhwinaCaoawfRbbcd0fhCawcefgwcz9hmbkcwhYcbhwinaYaoawfRbbcP0fhYawcefgwcz9hmbkaQaCaQaC6EgwaYawaY6Egwczawcz6Ea8Afh8AaoczfhoaLczfgLaK6mbka8Ja8ABdbka8Kcefh8Ka8Lcefg8Lcl9hmbkagcefggaO9hmbka8Eamfh8Ea8Faxfh8Fa3amfh3aEaxfgEai6mbkcbhocehwaPhQinawaoaQydbarc;alfaocdtfydb6EhoaQclfhQaOawcefgw9hmbkaraHcd4faAcdVaoaocdSE86bbaHclfgHal6mbkkabaefhgabcefhoalcd4g8McbaDEhkadcefh8Narc;abfceVhecbhmdndninaiam9nmearc;qofcbcjdz:xjjjb8Aagao9Rak6mdadamal2gwfhxcbhHa8Nawfhzaocbakz:xjjjbg8Fakfh3aqaiam9Ramaqfai6Egscsfgocl4cifcd4hOaoc9WGg8JThPindndndndndndndndndndnaDTmbaraHcd4fRbbgQciGPlbedlbkasTmdaxaHfhoarc;abfaHfRbbhQarc;qofhwashCinawaoRbbgYaQ9RgQcetaQcKtc8F91786bbawcefhwaoalfhoaYhQaCcufgCmbxikkasTmiaHcitcwGh8Aarc;abfaHceVfRbbcwtarc;abfaHc9:GgofRbbVhQaxaofhoarc;qofhwashCinawao8VbbgYaQ9RgQcetaQcztc8F917cFFiGa8A486bbawcefhwaoalfhoaYhQaCcufgCmbxikkaeaHc98Gg8Afhoaza8AfhYarc;abfa8AfRbbhCcwhwinaoRbbawtaCVhCaocefhoawcwfgwca9hmbkasTmdaQcl4hKaHcitcKGhEaxa8Afh8AcbhLina8ARbbhQcwhoaYhwinawRbbaotaQVhQawcefhwaocwfgoca9hmbkarc;qofaLfaQaC7aK93aE486bbaYalfhYa8Aalfh8AaQhCaLcefgLas9hmbkkaDmbcbhoxlka8JTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8J9pmdxbkkdnavmbcehoxikcbh8AaOhLaOhKinarc;qofa8Afgocwf8Pibhyao8Pibh8PcdhQcbhwinaQaoawfRbbcb9hfhQawcefgwcz9hmbkclhCcbhwinaCaoawfRbbcd0fhCawcefgwcz9hmbkcwhYcbhwinaYaoawfRbbcP0fhYawcefgwcz9hmbkaQaCaQaC6EgoaYaoaY6Egoczaocz6EaKfhKaocucbaya8P:e9cb9sEgwaoaw6EaLfhLa8Aczfg8Aa8J9pmdxbkka8FaHcd4fgoaoRbbcdaHcetcoGtV86bbxikdnaLas6mbaKas6mba8FaHcd4fgoaoRbbciaHcetcoGtV86bbaga39Ras6mra3arc;qofasz:wjjjbasfh3xikaLaK9phoka8FaHcd4fgwawRbbaoaHcetcoGtV86bbkaga39RaO6mla3cbaOz:xjjjbgaaOfhKdndna8JmbaPhoxekdnagaK9RcK9pmbaPhoxekaocdtc:q:G:cjbfcj:G:cjbaDEg3ydxghcetc;:FFFeGhAcuhEcuahtcu7cFeGh8Ecbh8Karc;qofhQinarc;qofa8KfhXczh8AdndndnahPDbeeeeeeedekcucbaXcwf8PibaX8Pib:e9cb9sEh8AxekcbhoaAh8Aina8Aa8EaQaofRbb9nfh8Aaocefgocz9hmbkkcih5cbhYinczhwdndndna3aYcdtfydbgLPDbeeeeeeedekcucbaXcwf8PibaX8Pib:e9cb9sEhwxekaLcetc;:FFFeGhwcuaLtcu7cFeGhCcbhoinawaCaQaofRbb9nfhwaocefgocz9hmbkkdndnawa8A6mbaLaE9hmeawa8A9hmea3a5cdtfydbcwSmekaYh5awh8AkaYcefgYci9hmbkaaa8Kco4fgoaoRbba5a8Kci4coGtV86bbdndndna3a5cdtfydbgEPDdbbbbbbbebkdncwaE9Tg5TmbcuaEtcu7hwdndnaEceSmbcbh8LaQhXinaXhoa5hYcbhCinaoRbbg8AawcFeGgLa8AaL6EaCaEtVhCaocefhoaYcufgYmbkaKaC86bbaXa5fhXaKcefhKa8La5fg8Lcz6mbxdkkcbh8LaQhXinaXhoa5hYcbhCinaoRbbg8AawcFeGgLa8AaL6EaCcetVhCaocefhoaYcufgYmbkaKaC:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaXa5fhXaKcefhKa8La5fg8Lcz6mbkkcbhoinaKaQaofRbbgC86bbaKaCawcFeG9pfhKaocefgocz9hmbxikkdnaEceSmbinaKcb86bbaKcefhKxbkkinaKcb86bbaKcefhKxbkkaKaX8Pbw83bwaKaX8Pbb83bbaKczfhKka8Kczfg8Ka8J9pgomeaQczfhQagaK9RcK9pmbkkaoTmlaKh3aKTmlkaHcefgHal9hmbkarc;abfaxascufal2falz:wjjjb8Aasamfhma3hoa3mbkcbhwxdkdnagao9RakalfgwcKcaaDEgQawaQ0EgC9pmbcbhwxdkdnawaQ9pmbaocbaCaw9Rgwz:xjjjbawfhokaoarc;adfalz:wjjjbalfhodnaDTmbaoara8Mz:wjjjba8Mfhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;i:I:cjbz:bjjjbk9reduaecd4gdaefgicaaica0Eabcj;abae9Uc;WFbGcjdaeca0Egifcufai9Uae2aiadfaicl4cifcd4f2fcefkmbcbabBd;i:I:cjbk;HPeLu8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaeaici9UgocHf6mbabcbyd;m:I:cjbgrc;GeV86bbalc;abfcFecjez:xjjjb8Aal9cu83iUal9cu83i8Wal9cu83iyal9cu83iaal9cu83iKal9cu83izal9cu83iwal9cu83ibabaefc9WfhwabcefgDaofhednaiTmbcmcsarcb9kgqEhkcbhxcbhmcbhPcbhscbhzindnaeaw9nmbcbhvxikazcufhvadaPcdtfgHydbhOaHcwfydbhAaHclfydbhCcbhXdndndninalc;abfavcsGcitfgoydlhQdndndnaoydbgoaO9hmbaQaCSmekdnaoaC9hmbaQaA9hmbaXcefhXxekaoaA9hmeaQaO9hmeaXcdfhXkaXc870mdascufhvaHaXcdtgAcxGgoyd:4:G:cjbcdtfydbhQaHaoyd:0:G:cjbcdtfydbhCaHaoyd:W:G:cjbcdtfydbhOcbhodnindnalavcsGcdtfydbaQ9hmbaohXxdkcuhXavcufhvaocefgocz9hmbkkaxaQaxSgvaXce9iaXak9oVgoGfhxdndndncbcsavEaXaoEgvcs9hmbarce9imbaQaQamaQcefamSgvEgmcefSmecmcsavEhvkaDavaAc;WeGV86bbavcs9hmeaQam9Rgvcetavc8F917hvinaecbcjeavcje6EavcFbGV86bbaecefheavcr4gvmbkaQhmxvkcPhvaDaAcPV86bbaQhmkavTmiavak9omicdhocehXazhAxlkavcufhvaXclfgXc;ab9hmbkkdnaHcecdcbaAaxSEaCaxSEcdtgvyd:W:G:cjbcdtfydbgOTaHavyd:0:G:cjbcdtfydbgCceSGaHavyd:4:G:cjbcdtfydbgQcdSGaxcb9hGaqGgLce9hmbal9cu83iUal9cu83i8Wal9cu83iyal9cu83iaal9cu83iKal9cu83izal9cu83iwal9cu83ibcbhxkcbhXascufgvhodnindnalaocsGcdtfydbaC9hmbaXhAxdkcuhAaocufhoaXcefgXcz9hmbkkcbhodnindnalavcsGcdtfydbaQ9hmbaohXxdkcuhXavcufhvaocefgocz9hmbkkaxaOaxSgKfhHdndnaAcm0mbaAcefhAxekcbcsaCaHSgvEhAaHavfhHkdndnaXcm0mbaXcefhXxekcbcsaQaHSgvEhXaHavfhHkc9:cuaKEhYcbhvaXaAcltVg8AcFeGhodndndninavc;q:G:cjbfRbbaoSmeavcefgvcz9hmbxdkkaLaOax9havcm0VVmbaDavc;WeV86bbxekaDaY86bbaea8A86bbaecefhekdnaKmbaOam9Rgvcetavc8F917hvinaecbcjeavcje6EavcFbGV86bbaecefheavcr4gvmbkaOhmkdnaAcs9hmbaCam9Rgvcetavc8F917hvinaecbcjeavcje6EavcFbGV86bbaecefheavcr4gvmbkaChmkdnaXcs9hmbaQam9Rgvcetavc8F917hvinaecbcjeavcje6EavcFbGV86bbaecefheavcr4gvmbkaQhmkalascdtfaOBdbascefcsGhvdndnaAPzbeeeeeeeeeeeeeebekalavcdtfaCBdbascdfcsGhvkdndnaXPzbeeeeeeeeeeeeeebekalavcdtfaQBdbavcefcsGhvkcihoalc;abfazcitfgXaOBdlaXaCBdbazcefcsGhAcdhXavhsaHhxxekcdhoalascdtfaQBdbcehXascefcsGhsazhAkalc;abfaAcitfgvaCBdlavaQBdbalc;abfazaXfcsGcitfgvaQBdlavaOBdbaDcefhDazaofcsGhzaPcifgPai6mbkkdnaeaw9nmbcbhvxekcbhvinaeavfavc;q:G:cjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meaeceadt0mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:I:cjbk:zderu8Jjjjjbcz9Rhlcbhvdnaeaicvf6mbabcbRb;m:I:cjbc;qeV86bbal9cb83iwabcefhvabaefc98fhodnaiTmbcbhecbhrcbhwindnavao6mbcbskadawcdtfydbgDalcwfaraDae9Rgeaec8F91ge7ae9Rc507grcdtfgqydb9Rgec8E91c9:Gaecdt7arVheinavcbcjeaecje6EaecFbGV86bbavcefhvaecr4gembkaqaDBdbaDheawcefgwai9hmbkkdnavao9nmbcbskavcbBbbavab9RclfhvkavkBeeucbhddninadcefgdc8F0meaeceadt0mbkkabadcwfcFeGcr9U2cvfk:dvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhralcxfIdbhqdndnakJbbbb9GTmbaxhkxekJbbjZar:l:tgkak:maxJbbbb9GEhkJbbjZax:l:tgxax:marJbbbb9GEhrkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEavNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohmxekcjjjj94hmkdndnakJbbj:;akJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;akJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaDfgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaifgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkaicwfhiaDclfhDalczfhlaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;gvdDue998Jjjjjbcjd9Rgo8Kjjjjbdndndnadcd4grTmbc:CucbavEhwaohdarhDinadawBdbadclfhdaDcufgDmbkavcd9hmbaeTmbarcdthqcbhkalhxinaohdaxhDarhwinadadydbgmaDydbcL4cFeGc:cufgPamaP9kEBdbaDclfhDadclfhdawcufgwmbkaxaqfhxakcefgkae9hmbxdkkaeTmekarcdthxavce9hhqcbhkindndndnaqmbarTmdc:CuhDalhdarhwinaDadydbcL4cFeGc:cufgmaDam9kEhDadclfhdawcufgwmbxdkkdndndndnavPleddbdkarTmlaohdalhDarhwinadcbaDydbcL4cFeGgmc:cufgPaPam0EBdbadclfhdaDclfhDawcufgwmbxikkarTmicbhdarhDindnaladfIdbgsJbbbb9Bmbaoadfas:8cL4cFeGgwc8Aawc8A0Ec:cufBdbkadclfhdaDcufgDmbxdkkarTmdkc:CuhDkcbhdarhminaDhwdnavceSmbaoadfydbhwkdndnaladfIdbgscjjj;8iawai9RcefgwcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:OhPxekcjjjj94hPkabadfaPcFFFrGawcKtVBdbadclfhdamcufgmmbkkabaxfhbalaxfhlakcefgkae9hmbkkaocjdf8Kjjjjbk:Olveue99iue99iudnaeTmbceaicufthvcuaitcu7:Zhocbhradcl9hhwcbhDindndnalcwfIdbgqJbbbbaqJbbbb9GEgqJbbjZaqJbbjZ9FEaoNJbbbZMgq:lJbbb9p9DTmbaq:Ohixekcjjjj94hikdndnalIdbgqJbbbbaqJbbbb9GEgqJbbjZaqJbbjZ9FEaoNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkadai9Rcd9TgkaifhidndnalclfIdbgqJbbbbaqJbbbb9GEgqJbbjZaqJbbjZ9FEaoNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkadai9Rcd9ThddndnalcxfIdbgqJbbbbaqJbbbb9GEgqJbbjZaqJbbjZ9FEaoNJbbbZMgq:lJbbb9p9DTmbaq:Ohxxekcjjjj94hxkadaifhiaxce91avVhxdndnawmbabaDfgmai86bbamcifax86bbamcdfad86bbamcefak86bbxekabarfgmai87ebamcofax87ebamclfad87ebamcdfak87ebkarcwfhraDclfhDalczfhlaecufgembkkk;mqdQui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:xjjjb8AdnadTmbaiTmbdndnabaeSmbaehoxekavcuadcdtgradcFFFFi0Ecbyd;q:I:cjbHjjjjbbgoBd:SeavceBd:mdaoaearz:wjjjb8AkavcbBd:Oeav9cb83i:Geavc:Gefaoadaiavc:Sefz:pjjjbavyd:Gehwadci9UgDcbyd;q:I:cjbHjjjjbbheavc:Sefavyd:mdgqcdtfaeBdbavaqcefgrBd:mdaecbaDz:xjjjbhkavc:SefarcdtfcuaicdtaicFFFFi0Ecbyd;q:I:cjbHjjjjbbgxBdbavaqcdfgmBd:mdalc;ebfhPawheaxhrinaralIdbaPaeydbgscwascw6EcdtfIdbMUdbaeclfhearclfhraicufgimbkavc:SefamcdtfcuaDcdtadcFFFF970Ecbyd;q:I:cjbHjjjjbbgmBdbdnadci6mbaoheamhraDhiinaraxaeydbcdtfIdbaxaeclfydbcdtfIdbMaxaecwfydbcdtfIdbMUdbaecxfhearclfhraicufgimbkkaqcifhzalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhscbhrcbhXcehQinaehLaoarcx2fgKydbhPaKclfydbhdabaXcx2fgecwfaKcwfydbgYBdbaeclfadBdbaeaPBdbakarfce86bbaOaYBdwaOadBdlaOaPBdbamarcdtfcbBdbcih8AdnasTmbaLhiinaOa8AcdtfaiydbgeBdba8AaeaY9haeaP9haead9hGGfh8AaiclfhiascufgsmbkkaXcefhXcbhsinaCaAaKascdtfydbcdtgifydbcdtfgYheawaifgdydbgPhidnaPTmbdninaeydbarSmeaeclfheaicufgiTmdxbkkaeaYaPcdtfc98fydbBdbadadydbcufBdbkascefgsci9hmbkdndndna8ATmbcuhrJbbbbhEcbhdavyd:KehYavyd:OehKindnawaOadcdtfydbcdtgsfydbgeTmbaxasfgiIdbh3aialcuadadcs0EcdtfclfIdbaHaecwaecw6EcdtfIdbMg5Udba5a3:th5aecdthiaKaYasfydbcdtfheinamaeydbgscdtfgPa5aPIdbMg3Udba3aEaEa39DgPEhEasaraPEhraeclfheaic98fgimbkkadcefgda8A9hmbkarcu9hmekaQaD9pmeindnakaQfRbbmbaQhrxdkaDaQcefgQ9hmbxdkka8Acza8Acz6EhsaOheaLhOarcu9hmekkazTmbaqcdtavc:Seffcwfheinaeydbcbyd;u:I:cjbH:bjjjbbaec98fheazcufgzmbkkavc:qdf8Kjjjjbk:0leoucuaicdtgvaicFFFFi0Egocbyd;q:I:cjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;q:I:cjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;q:I:cjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:xjjjb8AabydbhraehladhvinaralydbcdtfgoaoydbcefBdbalclfhlavcufgvmbkcbhvabydlglhoarhwaihDinaoavBdbaoclfhoawydbavfhvawclfhwaDcufgDmbkadci9Uhqdnadcd9nmbabydwhocbhvinaecwfydbhwaeclfydbhDalaeydbcdtfgbabydbgbcefBdbaoabcdtfavBdbalaDcdtfgDaDydbgDcefBdbaoaDcdtfavBdbalawcdtfgwawydbgwcefBdbaoawcdtfavBdbaecxfheaqavcefgv9hmbkkinalalydbarydb9RBdbarclfhralclfhlaicufgimbkkQbabaeadaic;G:G:cjbz:ojjjbkQbabaeadaic;i:H:cjbz:ojjjbk9DeeuabcFeaicdtz:xjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:3vioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:xjjjb8AalcuadcitgoadcFFFFe0Ecbyd;q:I:cjbHjjjjbbgrBdxalceBd2araeadaicezNjjjbalcuaoadcjjjjoGEcbyd;q:I:cjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:xjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkcwhvcbhiinalcxfavfc98fydbcbyd;u:I:cjbH:bjjjbbaiceGheclhvcehiaeTmbkalc;Waf8Kjjjjbk:Awliuo99iud9:cbhv8Jjjjjbca9Rgocbyd:4:I:cjbBdKaocb8Pd:W:I:cjb83izaocbyd;e:I:cjbBdwaocb8Pd:8:I:cjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:I:cjbgeabcifc98GfgbBd;y:I:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:I:cjbgeabcrfc94GfgbBd;y:I:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd;y:I:cjbge9Rcifc98GaefgbBd;y:I:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akkk;Sddbcj:Gdk;idbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbbbbbebbbdbbbbbbbebbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;i:IdkCebbbebbbebbbdbbb9G:rbb",i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var e,o=WebAssembly.instantiate(u(c),{}).then(function(k){e=k.instance,e.exports.__wasm_call_ctors(),e.exports.meshopt_encodeVertexVersion(1),e.exports.meshopt_encodeIndexVersion(1)});function u(k){for(var s=new Uint8Array(k.length),h=0;h<k.length;++h){var n=k.charCodeAt(h);s[h]=n>96?n-97:n>64?n-39:n+4}for(var t=0,h=0;h<k.length;++h)s[t++]=s[h]<60?i[s[h]]:(s[h]-60)*64+s[++h];return s.buffer.slice(0,t)}function b(k){if(!k)throw new Error("Assertion failed")}function g(k){return new Uint8Array(k.buffer,k.byteOffset,k.byteLength)}function p(k,s,h,n){var t=e.exports.sbrk,a=t(s.length*4),d=t(h*4),f=new Uint8Array(e.exports.memory.buffer),r=g(s);f.set(r,a),n&&n(a,a,s.length,h);var l=k(d,a,s.length,h);f=new Uint8Array(e.exports.memory.buffer);var m=new Uint32Array(h);new Uint8Array(m.buffer).set(f.subarray(d,d+h*4)),r.set(f.subarray(a,a+s.length*4)),t(a-t(0));for(var y=0;y<s.length;++y)s[y]=m[s[y]];return[m,l]}function A(k,s,h,n){var t=e.exports.sbrk,a=t(h*4),d=t(h*n),f=new Uint8Array(e.exports.memory.buffer);f.set(g(s),d),k(a,d,h,n),f=new Uint8Array(e.exports.memory.buffer);var r=new Uint32Array(h);return new Uint8Array(r.buffer).set(f.subarray(a,a+h*4)),t(a-t(0)),r}function x(k,s,h,n,t,a,d){var f=e.exports.sbrk,r=f(s),l=f(n*t),m=new Uint8Array(e.exports.memory.buffer);m.set(g(h),l);var y=k(r,s,l,n,t,a,d),I=new Uint8Array(y);return I.set(m.subarray(r,r+y)),f(r-f(0)),I}function j(k){for(var s=0,h=0;h<k.length;++h){var n=k[h];s=s<n?n:s}return s}function v(k,s){if(b(s==2||s==4),s==4)return new Uint32Array(k.buffer,k.byteOffset,k.byteLength/4);var h=new Uint16Array(k.buffer,k.byteOffset,k.byteLength/2);return new Uint32Array(h)}function F(k,s,h,n,t,a,d){var f=e.exports.sbrk,r=f(h*n),l=f(h*a),m=new Uint8Array(e.exports.memory.buffer);m.set(g(s),l),k(r,h,n,t,l,d);var y=new Uint8Array(h*n);return y.set(m.subarray(r,r+h*n)),f(r-f(0)),y}return{ready:o,supported:!0,reorderMesh:function(k,s,h){b(k instanceof Uint32Array||k instanceof Int32Array),b(!s||k.length%3==0);var n=s?h?e.exports.meshopt_optimizeVertexCacheStrip:e.exports.meshopt_optimizeVertexCache:void 0;return p(e.exports.meshopt_optimizeVertexFetchRemap,k,j(k)+1,n)},reorderPoints:function(k,s){return b(k instanceof Float32Array),b(k.length%s==0),b(s>=3),A(e.exports.meshopt_spatialSortRemap,k,k.length/s,s*4)},encodeVertexBuffer:function(k,s,h){b(h>0&&h<=256),b(h%4==0);var n=e.exports.meshopt_encodeVertexBufferBound(s,h);return x(e.exports.meshopt_encodeVertexBuffer,n,k,s,h)},encodeVertexBufferLevel:function(k,s,h,n,t){b(h>0&&h<=256),b(h%4==0),b(n>=0&&n<=3),b(t===void 0||t==0||t==1);var a=e.exports.meshopt_encodeVertexBufferBound(s,h);return x(e.exports.meshopt_encodeVertexBufferLevel,a,k,s,h,n,t===void 0?-1:t)},encodeIndexBuffer:function(k,s,h){b(h==2||h==4),b(s%3==0);var n=v(k,h),t=e.exports.meshopt_encodeIndexBufferBound(s,j(n)+1);return x(e.exports.meshopt_encodeIndexBuffer,t,n,s,4)},encodeIndexSequence:function(k,s,h){b(h==2||h==4);var n=v(k,h),t=e.exports.meshopt_encodeIndexSequenceBound(s,j(n)+1);return x(e.exports.meshopt_encodeIndexSequence,t,n,s,4)},encodeGltfBuffer:function(k,s,h,n,t){var a={ATTRIBUTES:this.encodeVertexBufferLevel,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return b(a[n]),a[n](k,s,h,2,t===void 0?0:t)},encodeFilterOct:function(k,s,h,n){return b(h==4||h==8),b(n>=2&&n<=16),F(e.exports.meshopt_encodeFilterOct,k,s,h,n,16)},encodeFilterQuat:function(k,s,h,n){return b(h==8),b(n>=4&&n<=16),F(e.exports.meshopt_encodeFilterQuat,k,s,h,n,16)},encodeFilterExp:function(k,s,h,n,t){b(h>0&&h%4==0),b(n>=1&&n<=24);var a={Separate:0,SharedVector:1,SharedComponent:2,Clamped:3};return b(!t||t in a),F(e.exports.meshopt_encodeFilterExp,k,s,h,n,h,t?a[t]:1)},encodeFilterColor:function(k,s,h,n){return b(h==4||h==8),b(n>=2&&n<=16),F(e.exports.meshopt_encodeFilterColor,k,s,h,n,16)}}})();var Ma=(function(){var c="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuecj:Gdkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq1Zkdbk:kYi5ud9:du8Jjjjjbcjq9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCaAcethXaxaDfhiaOaeaoaeao6E9RhQalcl4cifcd4hLazcjdfaAfhKcbhYabaOad2fg8AhEaHh3incbh5dnawTmbaxaYcd4fRbbh5kcbh8Eazcjdfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcjdfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcjdfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaL6mva8FaLfhidnaCTmbaPai9RcK6mbaocdtc:q:G:cjbfcj:G:cjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bwar9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfcbaicdfa8J9c8N1:NfghRbbag9cjjjjjw:dg8J9qE86bbarcVfcbaha8J9c8M1:NfghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fcbaha8J9c8N1:NfgiRbbag9cjjjjjw:dg8J9qE86bbarc96fcbaia8J9c8M1:NfgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbw83bwarai8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasaYcd4fRbbgociGPlbedrbkaATmdazaYfh8Fazcjdfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeazaYfhaazcjdfhhcbhoceh8EaKh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaQaocefgofmbka8FaXfh8FcdhoaacdfhaahaXfhha8EceGhlcbh8EalmbxdkkaATmbaocl4h8EazaYfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaKhainazcjdfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E94aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3aYclfgYad6mbkaza8AaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcjqf8Kjjjjbaok:ysezu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnalaeci9UgrcHf6mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8Aav9cu83iUav9cu83i8Wav9cu83iyav9cu83iaav9cu83iKav9cu83izav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbavaiaqaDcsGfRbbgscl4gP9RcsGcdtfydbaxcefgOaPEhDavaias9RcsGcdtfydbaOaPTgzfgOascsGgPEhsaPThPdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiazfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaPfhiaOaPfhxxekaxcbalRbbgsEgHaDc;:eSgDfhOascsGhAdndnascl4gCmbaOcefhzxekaOhzavaiaC9RcsGcdtfydbhOkdndnaAmbazcefhxxekazhxavaias9RcsGcdtfydbhzkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhHascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaHhDxekaDcefhDkasce4cbasceG9R7amfgmhHkdndnaCcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhOaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkaOhsxekascefhskaPce4cbaPceG9R7amfgmhOkdndnaAcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhzaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkazhlxekalcefhlkaPce4cbaPceG9R7amfgmhzkdndnadcd9hmbabarcetfgDaH87ebaDclfaz87ebaDcdfaO87ebxekabarcdtfgDaHBdbaDcwfazBdbaDclfaOBdbkavc;abfaocitfgDaOBdbaDaHBdlavaicdtfaHBdbavc;abfaocefcsGcitfgDazBdbaDaOBdlavaicefgicsGcdtfaOBdbavc;abfaocdfcsGcitfgDaHBdbaDazBdlavaiaCTaCcsSVfgicsGcdtfazBdbaiaATaAcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnalaecvf9pmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk:4ioiue99dud99dud99dnaeTmbcbhiabhlindndnal8Uebgv:YgoJ:ji:1Salcof8UebgrciVgw:Y:vgDNJbbbZJbbb:;avcu9kEMgq:lJbbb9p9DTmbaq:Ohkxekcjjjj94hkkalclf8Uebhvalcdf8UebhxalarcefciGcetfak87ebdndnax:YgqaDNJbbbZJbbb:;axcu9kEMgm:lJbbb9p9DTmbam:Ohxxekcjjjj94hxkabaiarciGgkfcd7cetfax87ebdndnav:YgmaDNJbbbZJbbb:;avcu9kEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkalarcufciGcetfav87ebdndnawaw2:ZgPaPMaoaoN:taqaqN:tamamN:tgoJbbbbaoJbbbb9GE:raDNJbbbZMgD:lJbbb9p9DTmbaD:Ohrxekcjjjj94hrkalakcetfar87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K:G:cjbgeabcifc98GfgbBd:K:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk83dbcj:Gdk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:K:Gdkl8W:qbb",i="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuecj:Gdkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq:59Dklbzik94evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaeai86b:q:W:cjbaecitab8Piw83i:q:G:cjbaecefgecjd9hmbkk:SBlEud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaialfgxar9RhodnadTgmmbavaoad;8qbbkaicefhPcj;abad9Uc;WFbGcjdadca0EhsdndndnadTmbaoadfhzcbhHinaeaH9nmdaxaP9RaD6miabaHad2fgOavcjdfasaeaH9RaHasfae6EgAaAcsfgoc9WGgCSEhXaPaDfhQaocl4cifcd4hLavcj;cbfaCcetfhKavcj;cbfaCci2fhYavcj;cbfaCfh8AcbhEaoc;ab6h3incbh5dnawTmbaPaEcd4fRbbh5kcbh8Eavcj;cbfh8Findndndndna5a8Ecet4ciGgoc9:fPdebdkaxaQ9RaC6mwdnaCTmbavcj;cbfa8EaC2faQaC;8qbbkaQaAfhQxdkaCTmeavcj;cbfa8EaC2fcbaC;8kbxekaxaQ9RaL6moaoclVcbawEhraQaLfhocbhidna3mbaxao9Rc;Gb6mbcbhlina8FalfhidndndndndndnaQalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaoclffa8JRb:q:W:cjbfhoxikaiaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaocwffa8JRb:q:W:cjbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbagaocdffa8JRb:q:W:cjbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaoclffa8JRb:q:W:cjbfhoxikaiczfaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaocwffa8JRb:q:W:cjbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbagaocdffa8JRb:q:W:cjbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaoclffa8JRb:q:W:cjbfhoxikaicafaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbagaocwffa8JRb:q:W:cjbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbagaocdffa8JRb:q:W:cjbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Ngicitpbi:q:G:cjbaiRb:q:W:cjbgipsaap5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbaiaoclffaqRb:q:W:cjbfhoxikaic8Wfaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Ngicitpbi:q:G:cjbaiRb:q:W:cjbgipsaap5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spklbaiaocwffaqRb:q:W:cjbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitpbi:q:G:cjbaiRb:q:W:cjbgipsaoRbegqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqRb:q:W:cjbfhokalc;abfhialcjefaC0meaihlaxao9Rc;Fb0mbkkdnaiaC9pmbaici4hlinaxao9RcK6mwa8FaifhqdndndndndndnaQaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLgacdp:meaapmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9oghpxiiiiiiiiiiiiiiiip8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spkbbagaoclffa8JRb:q:W:cjbfhoxikaqaopbbwaopbbbgaclp:meaapmbzeHdOiAlCvXoQrLpxssssssssssssssssp9oghpxssssssssssssssssp8Jgap5b9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbagRb:q:W:cjbggpsaap5e9cjF;8;4;W;G;ab9:9cU1:Ng8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPahaap9spkbbagaocwffa8JRb:q:W:cjbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbggcitpbi:q:G:cjbagRb:q:W:cjbggpsaoRbeg8Jcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpkbbagaocdffa8JRb:q:W:cjbfhokalcdfhlaiczfgiaC6mbkkaohQaoTmoka8FaCfh8Fa8Ecefg8Ecl9hmbkdndndndnawTmbazaEcd4fRbbglciGPlbedwbkaCTmdaXaEfhlavaEfpbdbh8Kcbhoinalavcj;cbfaofpblbg8La8Aaofpblbg8MpmbzeHdOiAlCvXoQrLg8NaKaofpblbgyaYaofpblbg8PpmbzeHdOiAlCvXoQrLgIpmbezHdiOAlvCXorQLgacep9Taapxeeeeeeeeeeeeeeeeghp9op9Hp9rgaa8Kp9Ug8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp9Ug8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp9Ug8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9Abbbaladfgla8Ka8NaIpmwDKYqk8AExm35Ps8E8Fgacep9Taaahp9op9Hp9rgap9Ug8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp9Ug8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp9Ug8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9Abbbaladfgla8Ka8La8MpmwKDYq8AkEx3m5P8Es8Fg8Laya8PpmwKDYq8AkEx3m5P8Es8Fg8MpmbezHdiOAlvCXorQLgacep9Taaahp9op9Hp9rgap9Ug8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp9Ug8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp9Ug8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9Abbbaladfgla8Ka8La8MpmwDKYqk8AExm35Ps8E8Fgacep9Taaahp9op9Hp9rgap9Ughp9Abbbaladfglahaaaapmlvorlvorlvorlvorp9Ughp9AbbbaladfglahaaaapmwDqkwDqkwDqkwDqkp9Ughp9AbbbaladfglahaaaapmxmPsxmPsxmPsxmPsp9Ug8Kp9AbbbaladfhlaoczfgoaC6mbxikkaCTmeaXaEfhlavaEfpbdbh8Kcbhoinalavcj;cbfaofpblbg8La8Aaofpblbg8MpmbzeHdOiAlCvXoQrLg8NaKaofpblbgyaYaofpblbg8PpmbzeHdOiAlCvXoQrLgIpmbezHdiOAlvCXorQLgacep:neaapxebebebebebebebebghp9op:bep9rgaa8Kp:oeg8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp:oeg8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp:oeg8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9Abbbaladfgla8Ka8NaIpmwDKYqk8AExm35Ps8E8Fgacep:neaaahp9op:bep9rgap:oeg8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp:oeg8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp:oeg8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9Abbbaladfgla8Ka8La8MpmwKDYq8AkEx3m5P8Es8Fg8Laya8PpmwKDYq8AkEx3m5P8Es8Fg8MpmbezHdiOAlvCXorQLgacep:neaaahp9op:bep9rgap:oeg8Kp9Abbbaladfgla8Kaaaapmlvorlvorlvorlvorp:oeg8Kp9Abbbaladfgla8KaaaapmwDqkwDqkwDqkwDqkp:oeg8Kp9Abbbaladfgla8KaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9Abbbaladfgla8Ka8La8MpmwDKYqk8AExm35Ps8E8Fgacep:neaaahp9op:bep9rgap:oeghp9Abbbaladfglahaaaapmlvorlvorlvorlvorp:oeghp9AbbbaladfglahaaaapmwDqkwDqkwDqkwDqkp:oeghp9AbbbaladfglahaaaapmxmPsxmPsxmPsxmPsp:oeg8Kp9AbbbaladfhlaoczfgoaC6mbxdkkaCTmbaXaEfhrcbhocbalcl4gl9Rc8FGhiavaEfpbdbhhinaravcj;cbfaofpblbg8Ka8Aaofpblbg8LpmbzeHdOiAlCvXoQrLg8MaKaofpblbg8NaYaofpblbgypmbzeHdOiAlCvXoQrLg8PpmbezHdiOAlvCXorQLgaaip:Reaaalp:Tep9qgaahp9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9Abbbaradfgraha8Ma8PpmwDKYqk8AExm35Ps8E8Fgaaip:Reaaalp:Tep9qgap9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9Abbbaradfgraha8Ka8LpmwKDYq8AkEx3m5P8Es8Fg8Ka8NaypmwKDYq8AkEx3m5P8Es8Fg8LpmbezHdiOAlvCXorQLgaaip:Reaaalp:Tep9qgap9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9Abbbaradfgraha8Ka8LpmwDKYqk8AExm35Ps8E8Fgaaip:Reaaalp:Tep9qgap9rghp9Abbbaradfgrahaaaapmlvorlvorlvorlvorp9rghp9AbbbaradfgrahaaaapmwDqkwDqkwDqkwDqkp9rghp9AbbbaradfgrahaaaapmxmPsxmPsxmPsxmPsp9rghp9AbbbaradfhraoczfgoaC6mbkkaEclfgEad6mbkdnaXavcjdf9hmbaAad2goTmbaOavcjdfao;8qbbkdnammbavaXaAcufad2fad;8qbbkaAaHfhHc9:hoaQhPaQmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdasaeao9Raoasfae6Eaofgoae6mbkaial9RhPkcbc99axaP9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbkNsezu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnalaeci9UgrcHf6mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbav9cu83iUav9cu83i8Wav9cu83iyav9cu83iaav9cu83iKav9cu83izav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbavaiaqaDcsGfRbbgscl4gP9RcsGcdtfydbaxcefgOaPEhDavaias9RcsGcdtfydbaOaPTgzfgOascsGgPEhsaPThPdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiazfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaPfhiaOaPfhxxekaxcbalRbbgsEgHaDc;:eSgDfhOascsGhAdndnascl4gCmbaOcefhzxekaOhzavaiaC9RcsGcdtfydbhOkdndnaAmbazcefhxxekazhxavaias9RcsGcdtfydbhzkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhHascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaHhDxekaDcefhDkasce4cbasceG9R7amfgmhHkdndnaCcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhOaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkaOhsxekascefhskaPce4cbaPceG9R7amfgmhOkdndnaAcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhzaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkazhlxekalcefhlkaPce4cbaPceG9R7amfgmhzkdndnadcd9hmbabarcetfgDaH87ebaDclfaz87ebaDcdfaO87ebxekabarcdtfgDaHBdbaDcwfazBdbaDclfaOBdbkavc;abfaocitfgDaOBdbaDaHBdlavaicdtfaHBdbavc;abfaocefcsGcitfgDazBdbaDaOBdlavaicefgicsGcdtfaOBdbavc;abfaocdfcsGcitfgDaHBdbaDazBdlavaiaCTaCcsSVfgicsGcdtfazBdbaiaATaAcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnalaecvf9pmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk;Toio97eue97aec98Ghedndnadcl9hmbaeTmecbhdinababpbbbgicKp:RecKp:Sep;6eglaicwp:RecKp:Sep;6ealp;Geaiczp:RecKp:Sep;6egvp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egralpxbbbjbbbjbbbjbbbjgwp9op9rp;Keglpxbb;:9cbb;:9cbb;:9cbb;:9calalp;Meaoaop;Meavaravawp9op9rp;Keglalp;Mep;Kep;Kep;Jep;Negvp;Mepxbbn0bbn0bbn0bbn0grp;KepxFbbbFbbbFbbbFbbbp9oaipxbbbFbbbFbbbFbbbFp9op9qalavp;Mearp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaoavp;Mearp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbabczfhbadclfgdae6mbxdkkaeTmbcbhdinabczfgDaDpbbbgipxbbbbbbFFbbbbbbFFgwp9oabpbbbgoaipmbediwDqkzHOAKY8AEgvczp:Reczp:Sep;6eglaoaipmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eavczp:Sep;6egvp;Gealp;Gep;Kep;Legipxbbbbbbbbbbbbbbbbp:2egralpxbbbjbbbjbbbjbbbjgqp9op9rp;Keglpxb;:FSb;:FSb;:FSb;:FSalalp;Meaiaip;Meavaravaqp9op9rp;Keglalp;Mep;Kep;Kep;Jep;Negvp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbp9oaiavp;Mearp;Keczp:Rep9qgialavp;Mearp;KepxFFbbFFbbFFbbFFbbp9oglpmwDKYqk8AExm35Ps8E8Fp9qpkbbabaoawp9oaialpmbezHdiOAlvCXorQLp9qpkbbabcafhbadclfgdae6mbkkk;2ileue97euo97dnaec98GgiTmbcbheinabcKfpx:ji:1S:ji:1S:ji:1S:ji:1SabpbbbglabczfgvpbbbgopmlvorxmPsCXQL358E8Fgrczp:Segwpxibbbibbbibbbibbbp9qp;6egDp;NegqaDaDp;MegDaDp;KealaopmbediwDqkzHOAKY8AEgDczp:Reczp:Sep;6eglalp;MeaDczp:Sep;6egoaop;Mearczp:Reczp:Sep;6egrarp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gDp;KepxFFbbFFbbFFbbFFbbgkp9oaqaop;MeaDp;Keczp:Rep9qgoaqalp;MeaDp;Keakp9oaqarp;MeaDp;Keczp:Rep9qgDpmwDKYqk8AExm35Ps8E8Fglp5eawclp:RegqpEi:T:j83ibavalp5baqpEd:T:j83ibabcwfaoaDpmbezHdiOAlvCXorQLgDp5eaqpEe:T:j83ibabaDp5baqpEb:T:j83ibabcafhbaeclfgeai6mbkkkuee97dnadcd4ae2c98GgeTmbcbhdinababpbbbgicwp:Recwp:Sep;6eaicep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbabczfhbadclfgdae6mbkkk:Sodw97euaec98Ghedndnadcl9hmbaeTmecbhdinabpxbbuJbbuJbbuJbbuJabpbbbgicKp:TeglaicYp:Tep9qgvcdp:Teavp9qgvclp:Teavp9qgop;6ep;Negvaicwp:RecKp:SegraipxFbbbFbbbFbbbFbbbgwp9ogDp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oavaDarp:Xeaiczp:RecKp:Segip:Uep;6ep;Meaqp;Keawp9op9qavaDaraip:Uep:Xep;6ep;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qavaoalcep:Rep9oalpxebbbebbbebbbebbbp9op9qp;6ep;Meaqp;KecKp:Rep9qpkbbabczfhbadclfgdae6mbxdkkaeTmbcbhdinabczfgkpxbFu9hbFu9hbFu9hbFu9habpbbbglakpbbbgrpmlvorxmPsCXQL358E8Fgvczp:TegqavcHp:Tep9qgicdp:Teaip9qgiclp:Teaip9qgicwp:Teaip9qgop;6ep;NegialarpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbglp9ograDczp:Segwp:Ueavczp:Reczp:SegDp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gvp;Kealp9oaiarawaDp:Uep:Xep;6ep;Meavp;Keczp:Rep9qgwaiaoaqcep:Rep9oaqpxebbbebbbebbbebbbp9op9qp;6ep;Meavp;Keczp:ReaiaDarp:Uep;6ep;Meavp;Kealp9op9qgipmwDKYqk8AExm35Ps8E8FpkbbabawaipmbezHdiOAlvCXorQLpkbbabcafhbadclfgdae6mbkkk9teiucbcbydj:G:cjbgeabcifc98GfgbBdj:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkxebcj:Gdklz:zbb",e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),o=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var u=WebAssembly.validate(e)?p(i):p(c),b,g=WebAssembly.instantiate(u,{}).then(function(t){b=t.instance,b.exports.__wasm_call_ctors()});function p(t){for(var a=new Uint8Array(t.length),d=0;d<t.length;++d){var f=t.charCodeAt(d);a[d]=f>96?f-97:f>64?f-39:f+4}for(var r=0,d=0;d<t.length;++d)a[r++]=a[d]<60?o[a[d]]:(a[d]-60)*64+a[++d];return a.buffer.slice(0,r)}function A(t,a,d,f,r,l,m){var y=t.exports.sbrk,I=f+3&-4,H=y(I*r),E=y(l.length),N=new Uint8Array(t.exports.memory.buffer);N.set(l,E);var z=a(H,f,r,E,l.length);if(z==0&&m&&m(H,I,r),d.set(N.subarray(H,H+f*r)),y(H-y(0)),z!=0)throw new Error("Malformed buffer data: "+z)}var x={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},j={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},v=[],F=0;function k(t){var a={object:new Worker(t),pending:0,requests:{}};return a.object.onmessage=function(d){var f=d.data;a.pending-=f.count,a.requests[f.id][f.action](f.value),delete a.requests[f.id]},a}function s(t){for(var a="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(u)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+n.name+";"+A.toString()+n.toString(),d=new Blob([a],{type:"text/javascript"}),f=URL.createObjectURL(d),r=v.length;r<t;++r)v[r]=k(f);for(var r=t;r<v.length;++r)v[r].object.postMessage({});v.length=t,URL.revokeObjectURL(f)}function h(t,a,d,f,r){for(var l=v[0],m=1;m<v.length;++m)v[m].pending<l.pending&&(l=v[m]);return new Promise(function(y,I){var H=new Uint8Array(d),E=++F;l.pending+=t,l.requests[E]={resolve:y,reject:I},l.object.postMessage({id:E,count:t,size:a,source:H,mode:f,filter:r},[H.buffer])})}function n(t){var a=t.data;self.ready.then(function(d){if(!a.id)return self.close();try{var f=new Uint8Array(a.count*a.size);A(d,d.exports[a.mode],f,a.count,a.size,a.source,d.exports[a.filter]),self.postMessage({id:a.id,count:a.count,action:"resolve",value:f},[f.buffer])}catch(r){self.postMessage({id:a.id,count:a.count,action:"reject",value:r})}})}return{ready:g,supported:!0,useWorkers:function(t){s(t)},decodeVertexBuffer:function(t,a,d,f,r){A(b,b.exports.meshopt_decodeVertexBuffer,t,a,d,f,b.exports[x[r]])},decodeIndexBuffer:function(t,a,d,f){A(b,b.exports.meshopt_decodeIndexBuffer,t,a,d,f)},decodeIndexSequence:function(t,a,d,f){A(b,b.exports.meshopt_decodeIndexSequence,t,a,d,f)},decodeGltfBuffer:function(t,a,d,f,r,l){A(b,b.exports[j[r]],t,a,d,f,b.exports[x[l]])},decodeGltfBufferAsync:function(t,a,d,f,r){return v.length>0?h(t,a,d,j[f],x[r]):g.then(function(){var l=new Uint8Array(t*a);return A(b,b.exports[j[f]],l,t,a,d,b.exports[x[r]]),l})}}})();var Ce=(function(){var c="b9H79Tebbbe:6eO9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gouuuuuue999Gvuuuuueu9Gzuuuuuuuuuuu99uuuub9Gquuuuuuu99uueu9GPuuuuuuuuuuu99uueu9Gquuuuuuuu99ueu9Gruuuuuu99eu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9Gluuuub9GiuuueuiLQdilvorlwDiqkxmPszbHHbelve9Weiiviebeoweuecj:Gdkr:Bdxo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bw8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bD8A9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9O9v9W9K9HtWbqQ9TW79O9V9Wt9F79P9T9W29P9M959t29V9W9W95bkX9TW79O9V9Wt9F79P9T9W29P9M959qV919UWbxQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bmX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2WbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbs59TW79O9V9Wt9F9NW9UWV9HtW9q9V79Pt9P9V9U9sW9T9H9Wbzl79IV9RbHDwebcekdCXq;y;WeQdbk;r:herYue99iuY99Xue9:D998Jjjjjbcj;sb9Rgs8Kjjjjbcbhzasc:Cefcbc;Kbz:tjjjb8AdnabaeSmbabaeadcdtzMjjjb8AkdnamcdGTmbalcrfci4cbyd1:H:cjbHjjjjbbhHasc:Cefasyd;8egecdtfaHBdbasaecefBd;8ecbhlcbhednadTmbabheadhOinaHaeydbci4fcb86bbaeclfheaOcufgOmbkcbhlabheadhOinaHaeydbgAci4fgCaCRbbgCceaAcrGgAtV86bbaCcu7aA4ceGalfhlaeclfheaOcufgOmbkcualcdtalcFFFFi0Ehekaecbyd1:H:cjbHjjjjbbhzasc:Cefasyd;8egecdtfazBdbasaecefBd;8ealcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd1:H:cjbHjjjjbbhHasc:Cefasyd;8egAcdtfaHBdbasaAcefBd;8eaHcFeaOz:tjjjbhQdnadTmbaecufhLcbhKindndnaQabaKcdtfgYydbgAc:v;t;h;Ev2aLGgOcdtfgCydbgHcuSmbceheinazaHcdtfydbaASmdaOaefhHaecefheaQaHaLGgOcdtfgCydbgHcu9hmbkkazaXcdtfaABdbaCaXBdbaXhHaXcefhXkaYaHBdbaKcefgKad9hmbkkaQcbyd:m:H:cjbH:bjjjbbasasyd;8ecufBd;8ekcbh8AcualcefgecdtaecFFFFi0Ecbyd1:H:cjbHjjjjbbhLasc:Cefasyd;8egecdtfaLBdbasaLBdNeasaecefBd;8ecuadcitadcFFFFe0Ecbyd1:H:cjbHjjjjbbhEasc:Cefasyd;8egecdtfaEBdbasaEBd:yeasaecefBd;8eascNefabadalcbz:cjjjbcualcdtgealcFFFFi0Eg3cbyd1:H:cjbHjjjjbbhOasc:Cefasyd;8egHcdtfaOBdbasaHcefBd;8ea3cbyd1:H:cjbHjjjjbbhQasc:Cefasyd;8egHcdtfaQBdbasaHcefBd;8eaOaQaialavazasc:Cefz:djjjbalcbyd1:H:cjbHjjjjbbhYasc:Cefasyd;8egHcdtfaYBdbasaHcefBd;8ea3cbyd1:H:cjbHjjjjbbhHasc:Cefasyd;8egAcdtfaHBdbasaAcefBd;8ea3cbyd1:H:cjbHjjjjbbhAasc:Cefasyd;8egCcdtfaABdbasaCcefBd;8eaHcFeaez:tjjjbh5aAcFeaez:tjjjbh8EdnalTmbindnaLa8AgAcefg8AcdtfydbgCaLaAcdtgefydbgHSmbaCaH9Rh8FaEaHcitfhaa8Eaefhha5aefhKcbhCindndnaaaCcitfydbgXaA9hmbaKaABdbahaABdbxekdnaLaXcdtggfgeclfydbgHaeydbgeSmbaHae9RhHaEaecitfheinaeydbaASmdaecwfheaHcufgHmbkka8EagfgeaAaXaeydbcuSEBdbaKaXaAaKydbcuSEBdbkaCcefgCa8F9hmbkka8Aal9hmbkaOhHaQhAa5hXa8EhCcbheindndnaeaHydbgK9hmbdnaeaAydbgK9hmbaXydbhKdnaCydbg8Fcu9hmbaKcu9hmbaYaefcb86bbxikdna8FcuSmbaKcuSmbaea8FSmbaOa8FcdtfydbaOaKcdtfydb9hmbaYaefcd86bbxikaYaefhadnaea8FSmbaeaKSmbaace86bbxikaacl86bbxdkdnaeaQaKcdtg8Ffydb9hmbdnaCydbgacuSmbaeaaSmbaXydbggcuSmbaeagSmba8Ea8FfydbghcuSmbahaKSmba5a8Ffydbg8FcuSmba8FaKSmbdnaOaacdtfydbgKaOa8Fcdtfydb9hmbaKaOagcdtfydbg8FSmba8FaOahcdtfydb9hmbaYaefcd86bbxlkaYaefcl86bbxikaYaefcl86bbxdkaYaefcl86bbxekaYaefaYaKfRbb86bbkaHclfhHaAclfhAaXclfhXaCclfhCalaecefge9hmbkdnamcaGTmbcbh8JindndnaYa8Jfg8KRbbg8Lc9:fPibebekdndndnaOa8Jcdtfydbgea8J9hmbdnaqmbcbh8FxdkdnazTmbcbh8Fa8JheinaqazaecdtgefydbfRbbce4a8FVceGh8FaQaefydbgea8J9hmbxikkcbh8Fa8JheinaqaefRbbce4a8FVceGh8FaQaecdtfydbgea8J9hmbxdkkaYaefRbbhexeka8JheindnaLaecdtg8AfgeclfydbgHaeydbgeSmbaHae9RhgaEaecitfhhaOa8AfhacbhKinahaKcitfydbgXhednindnaLaecdtgCfgeclfydbgHaeydbgeSmbaHae9RhHaEaecitfheaaydbhAdninaOaeydbcdtfydbaASmeaecwfheaHcufgHTmdxbkkcbhexdkaQaCfydbgeaX9hmbkceheka8FaeVh8FaKcefgKag9hmbkkaQa8Afydbgea8J9hmbka8Lcia8FceGEheka8Kae86bbka8Jcefg8Jal9hmbkkdnaqTmbdndnazTmbazheaOhHalhAindnaqaeydbfRbbceGTmbaYaHydbfcl86bbkaeclfheaHclfhHaAcufgAmbxdkkaqheaOhHalhAindnaeRbbceGTmbaYaHydbfcl86bbkaecefheaHclfhHaAcufgAmbkkaOhealhAaYhHindnaYaeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaAcufgAmbkkamceGTmbaYhealhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcbh8Mcualcx2alc;v:Q;v:Qe0Ecbyd1:H:cjbHjjjjbbh8Nasc:Cefasyd;8egecdtfa8NBdbasaecefBd;8eascbBd:qeas9cb83i1ea8Naialavazasc1efz:ejjjbhydndnaDmbcbh8PcbhCxekcbhCawhecbhHindnaeIdbJbbbb9ETmbasaCcdtfaHBdbaCcefhCkaeclfheaDaHcefgH9hmbkcuaCal2gecdtaecFFFFi0Ecbyd1:H:cjbHjjjjbbh8Pasc:Cefasyd;8egecdtfa8PBdbasaecefBd;8ealTmbdnaCmbcbhCxekarcd4hgdnazTmbaCcdthhcbh8Fa8Phainaoaza8Fcdtfydbag2cdtfhKasheaahHaChAinaHaKaeydbcdtgXfIdbawaXfIdbNUdbaeclfheaHclfhHaAcufgAmbkaaahfhaa8Fcefg8Fal9hmbxdkkaCcdthhcbh8Fa8Phainaoa8Fag2cdtfhKasheaahHaChAinaHaKaeydbcdtgXfIdbawaXfIdbNUdbaeclfheaHclfhHaAcufgAmbkaaahfhaa8Fcefg8Fal9hmbkkcualc8S2gHalc;D;O;f8U0EgXcbyd1:H:cjbHjjjjbbheasc:Cefasyd;8egAcdtfaeBdbasaAcefBd;8eaecbaHz:tjjjbhIcbh8RcbhgdnaCTmbcbh8MaXcbyd1:H:cjbHjjjjbbhgasc:Cefasyd;8egecdtfagBdbasaecefBd;8eagcbaHz:tjjjb8AcuaCal2gecltgHaecFFFFb0Ecbyd1:H:cjbHjjjjbbh8Rasc:Cefasyd;8egecdtfa8RBdbasaecefBd;8ea8RcbaHz:tjjjb8AamcjjjjdGTmbcualcltgealcFFFFb0Ecbyd1:H:cjbHjjjjbbh8Masc:Cefasyd;8egHcdtfa8MBdbasaHcefBd;8ea8Mcbaez:tjjjb8AkdnadTmbcbhKabhHina8NaHclfydbg8Fcx2fgeIdba8NaHydbgacx2fgAIdbg8S:tgRa8NaHcwfydbghcx2fgXIdlaAIdlg8U:tg8VNaeIdla8U:tg8WaXIdba8S:tg8XN:tg8Ya8YNa8WaXIdwaAIdwg8Z:tg80NaeIdwa8Z:tg8Wa8VN:tg81a81Na8Wa8XNaRa80N:tg80a80NMMg8V:rhBa8Yh8Xa80h8Wa81hRdna8VJbbbb9EgATmba8YaB:vh8Xa80aB:vh8Wa81aB:vhRkaIaOaacdtfydbgXc8S2fgeaRaB:rg8VaRNNg83aeIdbMUdbaea8Wa8Va8WNgUNg85aeIdlMUdlaea8Xa8Va8XNg86Ng87aeIdwMUdwaeaRaUNgUaeIdxMUdxaea86aRNg88aeIdzMUdzaea8Wa86Ng89aeIdCMUdCaeaRa8Va8Xa8ZNaRa8SNa8Ua8WNMM:mg8:Ng86NgRaeIdKMUdKaea8Wa86Ng8WaeId3MUd3aea8Xa86Ng8XaeIdaMUdaaea86a8:Ng86aeId8KMUd8Kaea8VaeIdyMUdyaIaOa8Fcdtfydbg8Fc8S2fgea83aeIdbMUdbaea85aeIdlMUdlaea87aeIdwMUdwaeaUaeIdxMUdxaea88aeIdzMUdzaea89aeIdCMUdCaeaRaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea86aeId8KMUd8Kaea8VaeIdyMUdyaIaOahcdtfydbgac8S2fgea83aeIdbMUdbaea85aeIdlMUdlaea87aeIdwMUdwaeaUaeIdxMUdxaea88aeIdzMUdzaea89aeIdCMUdCaeaRaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea86aeId8KMUd8Kaea8VaeIdyMUdydna8MTmbdnaATmba8YaB:vh8Ya80aB:vh80a81aB:vh81ka8MaXcltfgeaBJbbbZNgRa80Ng8VaeIdlMUdlaeaRa8YNg8WaeIdwMUdwaeaRa81Ng8XaeIdbMUdbaeaRa8S:ma81Na8Ua80N:ta8Za8YN:tNgRaeIdxMUdxa8Ma8Fcltfgea8VaeIdlMUdlaea8WaeIdwMUdwaea8XaeIdbMUdbaeaRaeIdxMUdxa8Maacltfgea8VaeIdlMUdlaea8WaeIdwMUdwaea8XaeIdbMUdbaeaRaeIdxMUdxkaHcxfhHaKcifgKad6mbkkdnalTmbJq;x8J88J;n;m;m89J:v:;;w8ZamczGEamc;abGEh80cbhHaOhXazhKaIhea8NhAindnaHaXydb9hmbaHh8FdnazTmbaKydbh8Fka80hRdnaqTmbJbbjZa80aqa8FfRbbclGEhRkaecxfg8Fa8FIdbJbbbbMUdbaeczfg8Fa8FIdbJbbbbMUdbaecCfg8Fa8FIdbJbbbbMUdbaeaRaecyfg8FIdbg8YNgRaeIdbMUdbaeclfgaaRaaIdbMUdbaecwfgaaRaaIdbMUdbaecKfgaaaIdbaAIdbg8WaRN:tUdbaAcwfIdbh8Vaec3fgaaaIdbaRaAclfIdbg8XN:tUdbaecafgaaaIdbaRa8VN:tUdbaec8KfgaIdbh81a8Fa8YaRMUdbaaa81aRa8Va8VNa8Wa8WNa8Xa8XNMMNMUdbkaXclfhXaKclfhKaec8SfheaAcxfhAalaHcefgH9hmbkkdnadTmbcbh8Aabhainaba8Acdtfh8FcbhHinaYa8FaHc:G:G:cjbfydbcdtfydbgAfRbbhedndnaYaaaHfydbgXfRbbgKc99fcFeGcpe0mbaec99fcFeGc;:e6mekdnaKcufcFeGce0mba5aXcdtfydbaA9hmekdnaecufcFeGce0mba8EaAcdtfydbaX9hmekJbbacJbbacJbbbZaecFeGceSEaKcFeGceSEhUdna8Na8FaHc:K:G:cjbfydbcdtfydbcx2fgeIdwa8NaXcx2fgKIdwg86:tg8Sa8NaAcx2fghIdwa86:tg8Xa8XNahIdbaKIdbg8U:tg80a80NahIdlaKIdlg8Z:tg8Va8VNMMg81Na8Xa8Sa8XNaeIdba8U:tg83a80Na8VaeIdla8Z:tg85NMMg8WN:tg8Ya8YNa83a81Na80a8WN:tgRaRNa85a81Na8Va8WN:tg8Wa8WNMMgBJbbbb9ETmba8YaB:rgB:vh8Ya8WaB:vh8WaRaB:vhRkaUa81:rNgBa8Ya86NaRa8UNa8Za8WNMM:mg81Ng87a81Nh88a80a85Na8Va83N:tg81a81Na8Va8SNa8Xa85N:tg8Va8VNa8Xa83Na80a8SN:tg8Xa8XNMMg83:rh80a8Ya87Nh85a8Wa87Nh89aRa87Nh87a8WaBa8YNg8SNh8:a8SaRNhZaRaBa8WNgnNhca8Ya8SNh8Ya8WanNh8WaRaBaRNNh8Sdna83Jbbbb9ETmba81a80:vh81a8Xa80:vh8Xa8Va80:vh8VkaIaOaXcdtfydbc8S2fgeaeIdba8Sa8VaUa80:rNgRa8VNNMg80MUdbaea8Wa8XaRa8XNg8SNMg83aeIdlMUdlaea8Ya81aRa81Ng8WNMg8YaeIdwMUdwaeaca8Va8SNMg8SaeIdxMUdxaeaZa8Wa8VNMgUaeIdzMUdzaea8:a8Xa8WNMg8WaeIdCMUdCaea87a8VaRa81a86Na8Va8UNa8Za8XNMMg86:mNgRNMg8VaeIdKMUdKaea89a8XaRNMg8XaeId3MUd3aea85a81aRNMg81aeIdaMUdaaea88a86aRN:tgRaeId8KMUd8KaeaBaeIdyMUdyaIaOaAcdtfydbc8S2fgea80aeIdbMUdbaea83aeIdlMUdlaea8YaeIdwMUdwaea8SaeIdxMUdxaeaUaeIdzMUdzaea8WaeIdCMUdCaea8VaeIdKMUdKaea8XaeId3MUd3aea81aeIdaMUdaaeaRaeId8KMUd8KaeaBaeIdyMUdykaHclfgHcx9hmbkaacxfhaa8Acifg8Aad6mbkaCTmbcbhainJbbbbh80a8Nabaacdtfgeclfydbg8Fcx2fgHIdwa8Naeydbghcx2fgAIdwg8Z:tg8Va8VNaHIdbaAIdbg83:tg8Wa8WNaHIdlaAIdlg85:tg8Xa8XNMMg8Sa8Naecwfydbg8Acx2fgeIdwa8Z:tg8YNa8Va8YNa8WaeIdba83:tg81Na8XaeIdla85:tgBNMMgRa8VN:tJbbbbJbbjZa8Sa8Ya8YNa81a81NaBaBNMMg8UNaRaRN:tg86:va86Jbbbb9BEg86Nh88a8Ua8VNaRa8YN:ta86Nh89a8SaBNaRa8XN:ta86Nh8:a8Ua8XNaRaBN:ta86NhZa8Sa81NaRa8WN:ta86Nhna8Ua8WNaRa81N:ta86Nhca8WaBNa8Xa81N:tgRaRNa8Xa8YNa8VaBN:tgRaRNa8Va81Na8Wa8YN:tgRaRNMM:rJbbbZNhRa8PahaC2g8JcdtfhHa8Pa8AaC2gDcdtfhAa8Pa8FaC2g8KcdtfhXa8Z:mh9ca85:mhJa83:mh9eascjdfheaChKJbbbbhBJbbbbh86Jbbbbh8SJbbbbh8UJbbbbh8ZJbbbbh83Jbbbbh85Jbbbbh87JbbbbhUinaecwfaRa89aXIdbaHIdbg8Y:tg8XNa88aAIdba8Y:tg81NMg8VNUdbaeclfaRaZa8XNa8:a81NMg8WNUdbaeaRaca8XNana81NMg8XNUdbaecxfaRa9ca8VNaJa8WNa8Ya9ea8XNMMMg8YNUdbaRa8Va8WNNa8ZMh8ZaRa8Va8XNNa8UMh8UaRa8Wa8XNNa8SMh8SaRa8Ya8YNNaUMhUaRa8Va8YNNa87Mh87aRa8Wa8YNNa85Mh85aRa8Xa8YNNa83Mh83aRa8Va8VNNa86Mh86aRa8Wa8WNNaBMhBaRa8Xa8XNNa80Mh80aHclfhHaXclfhXaAclfhAaeczfheaKcufgKmbkagahc8S2fgea80aeIdbMUdbaeaBaeIdlMUdlaea86aeIdwMUdwaea8SaeIdxMUdxaea8UaeIdzMUdzaea8ZaeIdCMUdCaea83aeIdKMUdKaea85aeId3MUd3aea87aeIdaMUdaaeaUaeId8KMUd8KaeaRaeIdyMUdyaga8Fc8S2fgea80aeIdbMUdbaeaBaeIdlMUdlaea86aeIdwMUdwaea8SaeIdxMUdxaea8UaeIdzMUdzaea8ZaeIdCMUdCaea83aeIdKMUdKaea85aeId3MUd3aea87aeIdaMUdaaeaUaeId8KMUd8KaeaRaeIdyMUdyaga8Ac8S2fgea80aeIdbMUdbaeaBaeIdlMUdlaea86aeIdwMUdwaea8SaeIdxMUdxaea8UaeIdzMUdzaea8ZaeIdCMUdCaea83aeIdKMUdKaea85aeId3MUd3aea87aeIdaMUdaaeaUaeId8KMUd8KaeaRaeIdyMUdya8Ra8Jcltfh8FcbhHaChXina8FaHfgeascjdfaHfgAIdbaeIdbMUdbaeclfgKaAclfIdbaKIdbMUdbaecwfgKaAcwfIdbaKIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaHczfhHaXcufgXmbka8Ra8Kcltfh8FcbhHaChXina8FaHfgeascjdfaHfgAIdbaeIdbMUdbaeclfgKaAclfIdbaKIdbMUdbaecwfgKaAcwfIdbaKIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaHczfhHaXcufgXmbka8RaDcltfh8FcbhHaChXina8FaHfgeascjdfaHfgAIdbaeIdbMUdbaeclfgKaAclfIdbaKIdbMUdbaecwfgKaAcwfIdbaKIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaHczfhHaXcufgXmbkaacifgaad6mbkkcbhAdndnamcwGgTmbJbbbbh8ScbhScbh9hcbh9ixekcbhSa3cbyd1:H:cjbHjjjjbbh9iasc:Cefasyd;8egecdtfa9iBdbasaecefBd;8ecua9ialabadaOz:fjjjbgXcltaXcjjjjiGEcbyd1:H:cjbHjjjjbbh9hasc:Cefasyd;8egecdtfa9hBdbasaecefBd;8ea9haXa9ia8Nalz:gjjjbJFFuuh8SaXTmba9hheaXhHinaeIdbgRa8Sa8SaR9EEh8SaeclfheaHcufgHmbkaXhSkdnalTmbaLclfheaLydbhXaYhHalhKcbhAincbaeydbg8FaX9RaHRbbcpeGEaAfhAaHcefhHaeclfhea8FhXaKcufgKmbkaAce4hAkcuadaA9Rcifg6cx2a6c;v:Q;v:Qe0Ecbyd1:H:cjbHjjjjbbh9kasc:Cefasyd;8egecdtfa9kBdbasaecefBd;8ecua6cdta6cFFFFi0Ecbyd1:H:cjbHjjjjbbh0asc:Cefasyd;8egecdtfa0BdbasaecefBd;8ea3cbyd1:H:cjbHjjjjbbh9masc:Cefasyd;8egecdtfa9mBdbasaecefBd;8ealcbyd1:H:cjbHjjjjbbh9nasc:Cefasyd;8egecdtfa9nBdbasaecefBd;8eaxaxNayJbbjZamclGEgZaZN:vh87JbbbbhUdnadak9nmbdna6ci6mbaCclth9oa9kcwfh9pJbbbbh85JbbbbhUinascNefabadalaOz:cjjjbabh8Acbh9qcbh9rinaba9rcdtfhDcbheindnaOa8AaefydbgAcdtghfydbgXaOaDaec:W:G:cjbfydbcdtfydbgHcdtg8JfydbgKSmbaYaHfRbbgacv2aYaAfRbbg8FfRb;a:G:cjbg8La8Fcv2aafg8KRb;a:G:cjbg3VcFeGTmbdnaKaX9nmba8KRb;G:G:cjbcFeGmekdna8FcufcFeGce0mbaaTmba5ahfydbaH9hmekdna8FTmbaacufcFeGce0mba8Ea8JfydbaA9hmeka9ka9qcx2fgXaHaAa3cFeGgKEBdlaXaAaHaKEBdbaXaKa8LGcb9hBdwa9qcefh9qkaeclfgecx9hmbkdna9rcifg9rad9pmba8Acxfh8Aa9qcifa69nmekka9qTmdcbh8KinaIaOa9ka8Kcx2fghydbgKcdtgXfydbg8Ac8S2fgeIdwa8Nahydlg8Fcx2fgHIdwg8WNaeIdzaHIdbg8XNaeIdaMgRaRMMa8WNaeIdlaHIdlg8YNaeIdCa8WNaeId3MgRaRMMa8YNaeIdba8XNaeIdxa8YNaeIdKMgRaRMMa8XNaeId8KMMM:lhRJbbbbJbbjZaeIdyg8V:va8VJbbbb9BEh8VdndnahydwgDmbJFFuuh86xekJbbbbJbbjZaIaOa8Fcdtfydbc8S2fgeIdyg81:va81Jbbbb9BEaeIdwa8NaKcx2fgHIdwg81NaeIdzaHIdbg80NaeIdaMgBaBMMa81NaeIdlaHIdlgBNaeIdCa81NaeId3Mg81a81MMaBNaeIdba80NaeIdxaBNaeIdKMg81a81MMa80NaeId8KMMM:lNh86ka8VaRNhBdnaCTmbagaKc8S2fgAIdwa8WNaAIdza8XNaAIdaMgRaRMMa8WNaAIdla8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8Pa8FaC2gacdtfhHa8RaKaC2g8JcltfheaAIdyh81aChAinaHIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaHclfhHaeczfheaAcufgAmbkdndnaDmbJbbbbh8Vxekaga8Fc8S2fgAIdwa8NaKcx2fgeIdwg8XNaAIdzaeIdbg8YNaAIdaMg8Va8VMMa8XNaAIdlaeIdlg81NaAIdCa8XNaAId3Mg8Va8VMMa81NaAIdba8YNaAIdxa81NaAIdKMg8Va8VMMa8YNaAId8KMMMh8Va8Pa8JcdtfhHa8RaacltfheaAIdyh80aChAinaHIdbg8Wa8Wa80NaecxfIdba8XaecwfIdbNa8YaeIdbNa81aeclfIdbNMMMg8Wa8WM:tNa8VMh8VaHclfhHaeczfheaAcufgAmbka8V:lh8VkaBaR:lMhBa86a8VMh86dndndnaYaKfRbbc9:fPddbekaQaXfydbgXaKSmbaOa8Fcdtfydbh8Jindndna5aXcdtgafydbgecuSmbaOaecdtfydba8JSmekdna8EaafydbgecuSmbaOaecdtfydba8JSmeka8FhekagaXc8S2fgAIdwa8Naecx2fgHIdwg8WNaAIdzaHIdbg8XNaAIdaMgRaRMMa8WNaAIdlaHIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8PaeaC2cdtfhHa8RaXaC2cltfheaAIdyh81aChAinaHIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaHclfhHaeczfheaAcufgAmbkaBaR:lMhBaQaafydbgXaK9hmbkkaYa8FfRbbci9hmeaDTmeaQa8FcdtfydbgXa8FSmeindndna5aXcdtgafydbgecuSmbaOaecdtfydba8ASmekdna8EaafydbgecuSmbaOaecdtfydba8ASmekaKhekagaXc8S2fgAIdwa8Naecx2fgHIdwg8WNaAIdzaHIdbg8XNaAIdaMgRaRMMa8WNaAIdlaHIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8PaeaC2cdtfhHa8RaXaC2cltfheaAIdyh81aChAinaHIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaHclfhHaeczfheaAcufgAmbka86aR:lMh86aQaafydbgXa8F9hmbxdkkdna8Ea5a5aXfydba8FSEaQaXfydbgacdtfydbgXcu9hmbaQa8FcdtfydbhXkagaac8S2fgAIdwa8NaXcx2fgeIdwg8WNaAIdzaeIdbg8XNaAIdaMgRaRMMa8WNaAIdlaeIdlg8YNaAIdCa8WNaAId3MgRaRMMa8YNaAIdba8XNaAIdxa8YNaAIdKMgRaRMMa8XNaAId8KMMMhRa8PaXaC2g8AcdtfhHa8RaaaC2g8JcltfheaAIdyh81aChAinaHIdbg8Va8Va81NaecxfIdba8WaecwfIdbNa8XaeIdbNa8YaeclfIdbNMMMg8Va8VM:tNaRMhRaHclfhHaeczfheaAcufgAmbkdndnaDmbJbbbbh8VxekagaXc8S2fgAIdwa8Naacx2fgeIdwg8XNaAIdzaeIdbg8YNaAIdaMg8Va8VMMa8XNaAIdlaeIdlg81NaAIdCa8XNaAId3Mg8Va8VMMa81NaAIdba8YNaAIdxa81NaAIdKMg8Va8VMMa8YNaAId8KMMMh8Va8Pa8JcdtfhHa8Ra8AcltfheaAIdyh80aChAinaHIdbg8Wa8Wa80NaecxfIdba8XaecwfIdbNa8YaeIdbNa81aeclfIdbNMMMg8Wa8WM:tNa8VMh8VaHclfhHaeczfheaAcufgAmbka8V:lh8VkaBaR:lMhBa86a8VMh86kaha86aBa86aB9DgeEUdwahaKa8FaeaDcb9hGgeEBdlaha8FaKaeEBdba8Kcefg8Ka9q9hmbkascjdfcbcj;qbz:tjjjb8Aa9phea9qhHinascjdfaeydbcA4cF8FGgAcFAaAcFA6EcdtfgAaAydbcefBdbaecxfheaHcufgHmbkcbhecbhHinascjdfaefgAydbhXaAaHBdbaXaHfhHaeclfgecj;qb9hmbkcbhea9phHinascjdfaHydbcA4cF8FGgAcFAaAcFA6EcdtfgAaAydbgAcefBdba0aAcdtfaeBdbaHcxfhHa9qaecefge9hmbkadak9RgAci9Uh9sdnalTmbcbhea9mhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh9ta9ncbalz:tjjjbh3aAcO9Uh9ua9sce4h9rcbh8Lcbh8Kdnina9ka0a8Kcdtfydbcx2fg8JIdwgRa879Emea8La9s9pmeJFFuuh8Vdna9ra9q9pmba9ka0a9rcdtfydbcx2fIdwJbb;aZNh8VkdnaRa8V9ETmbaRaU9ETmba8La9u0mdkdna3aOa8JydlgDcdtg9vfg8AydbgAfg9wRbba3aOa8Jydbghcdtg9xfydbgefg9yRbbVmbaYahfRbbh9zdndnaLaecdtfgHclfydbgXaHydbgHSmbaXaH9RhXa8NaAcx2fh8Fa8Naecx2fhaaEaHcitfheindna9maeydbcdtfydbgHaASmba9maeclfydbcdtfydbgKaASmbaHaKSmba8NaKcx2fgKIdba8NaHcx2fgHIdbg8W:tgRaaIdlaHIdlg8X:tg80NaKIdla8X:tg8VaaIdba8W:tgBN:tg8YaRa8FIdla8X:tg86Na8Va8FIdba8W:tg8UN:tg8XNa8VaaIdwaHIdwg81:tg8ZNaKIdwa81:tg8Wa80N:tg80a8Va8FIdwa81:tg83Na8Wa86N:tg8VNa8WaBNaRa8ZN:tg81a8Wa8UNaRa83N:tgRNMMa8Ya8YNa80a80Na81a81NMMa8Xa8XNa8Va8VNaRaRNMMN:rJbbj8:N9FmikaecwfheaXcufgXmbkkdndndndna9zc9:fPdebdkahheina8AydbhAdndna5aecdtgHfydbgecuSmbaOaecdtfydbaASmekdna8EaHfydbgecuSmbaOaecdtfydbaASmekaDheka9maHfaeBdbaQaHfydbgeah9hmbxikkdna8Ea5a5a9xfydbaDSEaQa9xfydbghcdtfydbgecu9hmbaQa9vfydbheka9ma9xfaDBdbaehDka9mahcdtfaDBdbka9yce86bba9wce86bba8JIdwgRaUaUaR9DEhUa9tcefh9tcecda9zceSEa8Lfh8Lxeka9rcefh9rka8Kcefg8Ka9q9hmbkka9tTmddnalTmbcbh8Fcbhhindna9mahcdtgefydbgAahSmbaOaAcdtfydbh8AdnahaOaefydb9hg8JmbaIa8Ac8S2fgeaIahc8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya8MTmba8Ma8Acltfgea8MahcltfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxkaCTmbagaAc8S2fgeagahc8S2gDfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9oaA2haa8RhHaChXinaHaafgeaHa8FfgAIdbaeIdbMUdbaeclfgKaAclfIdbaKIdbMUdbaecwfgKaAcwfIdbaKIdbMUdbaecxfgeaAcxfIdbaeIdbMUdbaHczfhHaXcufgXmbka8JmbJbbbbJbbjZaIaDfgeIdygR:vaRJbbbb9BEaeIdwa8Na8Acx2fgHIdwgRNaeIdzaHIdbg8VNaeIdaMg8Wa8WMMaRNaeIdlaHIdlg8WNaeIdCaRNaeId3MgRaRMMa8WNaeIdba8VNaeIdxa8WNaeIdKMgRaRMMa8VNaeId8KMMM:lNgRa85a85aR9DEh85ka8Fa9ofh8Fahcefghal9hmbkcbhHa5heindnaeydbgAcuSmbdnaHa9maAcdtgXfydbgA9hmbcuhAa5aXfydbgXcuSmba9maXcdtfydbhAkaeaABdbkaeclfhealaHcefgH9hmbkcbhHa8EheindnaeydbgAcuSmbdnaHa9maAcdtgXfydbgA9hmbcuhAa8EaXfydbgXcuSmba9maXcdtfydbhAkaeaABdbkaeclfhealaHcefgH9hmbkka85aUaCEh85cbhHabhecbhAindnaOa9maeydbcdtfydbg8FcdtfydbgXaOa9maeclfydbcdtfydbgacdtfydbgKSmbaXaOa9maecwfydbcdtfydbg8AcdtfydbghSmbaKahSmbabaHcdtfgXa8FBdbaXcwfa8ABdbaXclfaaBdbaHcifhHkaecxfheaAcifgAad6mbkdndnaTmbaHhdxekdnaHak0mbaHhdxekdna8Sa859FmbaHhdxekJFFuuh8ScbhdabhecbhAindna9ha9iaeydbgXcdtfydbcdtfIdbgRa859ETmbaeclf8Pdbh9AabadcdtfgKaXBdbaKclfa9A83dbaRa8Sa8SaR9EEh8SadcifhdkaecxfheaAcifgAaH6mbkkadak0mbxdkkascNefabadalaOz:cjjjbkdndnadak0mbadhaxekdnaTmbadhaxekdna8Sa879FmbadhaxekcehKina8SJbb;aZNgRa87aRa879DEh8WJbbbbhRdnaSTmba9hheaShHinaeIdbg8VaRa8Va8W9FEaRa8VaR9EEhRaeclfheaHcufgHmbkkJFFuuh8ScbhaabhecbhHindna9ha9iaeydbgAcdtfydbcdtfIdbg8Va8W9ETmbaeclf8Pdbh9AabaacdtfgXaABdbaXclfa9A83dba8Va8Sa8Sa8V9EEh8SaacifhakaecxfheaHcifgHad6mbkdnaKaaad9hVceGmbadhaxdkaRaUaUaR9DEhUaaak9nmecbhKaahda8Sa879FmbkkdnamcjjjjdGTmba9ncbalz:tjjjbh8AdnaaTmbabheaahHina8AaeydbgAfce86bba8AaOaAcdtfydbfce86bbaeclfheaHcufgHmbkkascNefabaaalaOz:cjjjbdndnalTmbcbhXindna8AaXfRbbTmbdnaYaXfRbbgecl0mbceaetcQGmekdnaOaXcdtg8FfydbgeaXSmba8NaXcx2fgHa8Naecx2fgeydwBdwaHae8Pdb83dbxekaIaXc8S2fgKIdygcacJL:3;rUNgRMh87aKIdwg9BaRMh8SaKIdlg9CaRMh8UaKIdbg9DaRMh81aKIdag9EaRa8NaXcx2fg8JIdwg88N:th8ZaKId3g9FaRa8JIdlg89N:th83aKIdKg9Ga8JIdbg8:aRN:th80JbbbbhnaKIdCg9HJbbbbMh85aKIdzg9IJbbbbMhBaKIdxg9JJbbbbMh86dndnaCTmbaXhAinJbbbba87agaAc8S2fgHIdygR:vaRJbbbb9BEhRa8RaAaC2cltfheaHIdaa87Na8ZMh8ZaHId3a87Na83Mh83aHIdKa87Na80Mh80aHIdCa87Na85Mh85aHIdza87NaBMhBaHIdxa87Na86Mh86aHIdwa87Na8SMh8SaHIdla87Na8UMh8UaHIdba87Na81Mh81aChHina8ZaecwfIdbg8VaecxfIdbg8YNaRN:th8Za83aeclfIdbg8Wa8YNaRN:th83a85a8Wa8VNaRN:th85a81aeIdbg8Xa8XNaRN:th81a80a8Xa8YNaRN:th80aBa8Xa8VNaRN:thBa86a8Xa8WNaRN:th86a8Sa8Va8VNaRN:th8Sa8Ua8Wa8WNaRN:th8UaeczfheaHcufgHmbkaQaAcdtfydbgAaX9hmbka8MTmba8MaXcltfgeIdxhxaeIdwh9caeIdlhJaeIdbhRxekJbbbbhxJbbbbh9cJbbbbhJJbbbbhRkaBa81:vg8Wa80Na8Z:ta85aBa86a81:vg8VN:tg8Za8Ua86a8VN:tg8Y:vg8Xa8Va80Na83:tg8UN:th83a9caRa8WN:taJaRa8VN:tg86a8XN:tg85a8SaBa8WN:ta8Za8XN:tgB:vg8S:mh8Za86a8Y:vg9c:mhJdnJbbbbaRaRa81:vg9eN:ta86a9cN:ta85a8SN:tg86:la87J:983:g81NgR9ETmba8Za83NaJa8UNa9ea80Nax:tMMa86:vhnka81:laR9ETmba8Y:laR9ETmbaB:laR9ETmba9e:manNa8W:ma8ZanNa83aB:vMgBNa8V:maJanNa8X:maBNa8Ua8Y:vMMg85Na80:ma81:vMMMh87aLa8FfgeclfydbgHaeydbge9RhhaEaecitfh8FJbbbbhRdnaHaeSgDmbJbbbbhRa8FheahhAina8Naeclfydbcx2fgHIdwa88:tg8Va8VNaHIdba8::tg8Va8VNaHIdla89:tg8Va8VNMMg8Va8Naeydbcx2fgHIdwa88:tg8Wa8WNaHIdba8::tg8Wa8WNaHIdla89:tg8Wa8WNMMg8WaRaRa8W9DEgRaRa8V9DEhRaecwfheaAcufgAmbkaR:rgRaRNhRkaBa88:tg8Va8VNa87a8::tg8Va8VNa85a89:tg8Va8VNMMaR9EmbaKId8KhndnaDmbina8Na8Fclfydbcx2fgeIdba8Na8Fydbcx2fgHIdbg8W:tgRa89aHIdlg8X:tg80NaeIdla8X:tg8Va8:a8W:tg86N:tg8YaRa85a8X:tg8SNa8Va87a8W:tg8UN:tg8XNa8Va88aHIdwg81:tg8ZNaeIdwa81:tg8Wa80N:tg80a8VaBa81:tg83Na8Wa8SN:tg8VNa8Wa86NaRa8ZN:tg81a8Wa8UNaRa83N:tgRNMMa8Ya8YNa80a80Na81a81NMMa8Xa8XNa8Va8VNaRaRNMMN:rJbbj8:N9Fmda8Fcwfh8FahcufghmbkkJbbbbJbbjZac:vacJbbbb9BEgRa9BaBNa9Ia87Na9EMg8Va8VMMaBNa9Ca85Na9HaBNa9FMg8Va8VMMa85Na9Da87Na9Ja85Na9GMg8Va8VMMa87NanMMM:lNaRa9Ba88Na9Ia8:Na9EMg8Va8VMMa88Na9Ca89Na9Ha88Na9FMg8Va8VMMa89Na9Da8:Na9Ja89Na9GMg8Va8VMMa8:NanMMM:lNJbb;aZNJ:983:g81M9Emba8JaBUdwa8Ja85Udla8Ja87UdbkaXcefgXal9hmbkdnaCmbcbhCxdkcbhXindna8AaXfRbbTmbaOaXcdtgefydbaX9hmbaYaXfhhaQaefh8Ja8NaXcx2fhAa8PaXaC2cdtfhDcbhEincuhLdnahRbbci9hmbaXhLa8JydbgeaXSmba8PaEcdtgHfhKaDaHfIdbhRaXhLinaLhHcuhLdnaKaeaC2cdtfIdbaR9CmbaHcuSmbaHhLagaec8S2fIdyagaHc8S2fIdy9ETmbaehLkaQaecdtfydbgeaX9hmbkka8PaEcdtfhKa8RaEcltfh8FaXheinaKaeaC2cdtfJbbbbJbbjZagaeaLaLcuSEgHc8S2fIdygR:vaRJbbbb9BEa8FaHaC2cltfgHIdwaAIdwNaHIdbaAIdbNaHIdlaAIdlNMMaHIdxMNUdbaQaecdtfydbgeaX9hmbkaEcefgEaC9hmbkkaXcefgXal9hmbxdkkaCmbcbhCkaiavaoarawaCala8Na8Pazasayasc1efaYa8Aaqz:hjjjbkdnamcjjjjlGTmbazmbaaTmbabhecbhLinaYaeydbgAfRbbc3thQaecwfgXydbhHcjjjj94hCdna5aAcdtgEfydbaeclfgKydbgOSmbcjjjj94cba8EaOcdtfydbaASEhCkaeaQaCVaAVBdbaYaOfRbbc3th8Fcjjjj94hCcjjjj94hQdna5aOcdtfydbaHSmbcjjjj94cba8EaHcdtfydbaOSEhQkaKa8FaQVaOVBdbaYaHfRbbc3thOdna5aHcdtfydbaASmbcjjjj94cba8EaEfydbaHSEhCkaXaOaCVaHVBdbaecxfheaLcifgLaa6mbkkdnazTmbaaTmbaaheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPaZaU:rNUdbkdnasyd;8egHTmbaHcdtasc:Ceffc98fheinaeydbcbyd:m:H:cjbH:bjjjbbaec98fheaHcufgHmbkkascj;sbf8Kjjjjbaak;Yieouabydlhvabydbclfcbaicdtz:tjjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd1:H:cjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:tjjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd:m:H:cjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkabclfhbawclfhwaiaDcefgD9hmbkkk;:odvuv998Jjjjjbca9Rgocbyd1:G:cjbBdKaocb8Pdj:G:cjb83izaocbydN:G:cjbBdwaocb8Pd:m:G:cjb83ibdnadTmbaicd4hrdnabmbdnalTmbcbhwinaealawcdtfydbar2cdtfhDcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxikkarcdthwcbhDincbhiinaoczfaifgqaeaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaeawfheaDcefgDad9hmbxdkkdnalTmbcbhwinabawcx2fgiaealawcdtfydbar2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxdkkarcdthlcbhwaehDinabawcx2fgiaeawar2cdtfgqIdbUdbaiaqIdlUdlaiaqIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaDalfhDawcefgwad9hmbkkJbbbbaoIdbaoIdzgx:tgkakJbbbb9DEgkaoIdlaoIdCgm:tgPaPak9DEgkaoIdwaoIdKgP:tgsasak9DEhsdnabTmbadTmbJbbbbJbbjZas:vasJbbbb9BEhkinabakabIdbax:tNUdbabclfgoakaoIdbam:tNUdbabcwfgoakaoIdbaP:tNUdbabcxfhbadcufgdmbkkdnavTmbavaPUdwavamUdlavaxUdbkask:WlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvyd:G:G:cjbcdtfydbcdtfydbhodnalawavfydbcdtfydbgqabaqcdtfgkydbgvSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnaoabaocdtfgkydbgvSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnaxabavfgDydbgvSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhkabhvcbhoindndnaoalydbgq9hmbdnaoavydbgq9hmbavakBdbakcefhkxdkavabaqcdtfydbBdbxekavabaqcdtfydbBdbkalclfhlavclfhvaeaocefgo9hmbkakk;jiilud99euabcbaecltz:tjjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakaqakIdlMUdlakaDakIdwMUdwakakIdxJbbjZMUdxaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhkaehrinakcxfgoIdbhDaocbBdbakakIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbakclfgoaDaoIdbNUdbakcwfgoaDaoIdbNUdbakczfhkarcufgrmbkkdnalTmbinavadydbcltfgkaicwfIdbakIdw:tgDaDNaiIdbakIdb:tgDaDNaiclfIdbakIdl:tgDaDNMMgDakIdxgqaqaD9DEUdxadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhkinabakIdbUdbakczfhkabclfhbaecufgembkkk:moerudnaoTmbaecd4hzdnavTmbaicd4hHavcdthOcbhAindnaPaAfRbbTmbaAhednaDTmbaDaAcdtfydbhekdnasTmbasaefRbbceGmekdnamaAfRbbclSmbabaeaz2cdtfgiaraAcx2fgCIdbakNaxIdbMUdbaiaCIdlakNaxIdlMUdlaiaCIdwakNaxIdwMUdwkadaeaH2cdtfhXaqheawhiavhCinaXaeydbcdtgQfaiIdbalaQfIdb:vUdbaeclfheaiclfhiaCcufgCmbkkawaOfhwaAcefgAao9hmbxdkkdnasmbcbheaDhiindnaPaefRbbTmbaehCdnaDTmbaiydbhCkamaefRbbclSmbabaCaz2cdtfgCarIdbakNaxIdbMUdbaCarclfIdbakNaxIdlMUdlaCarcwfIdbakNaxIdwMUdwkaiclfhiarcxfhraoaecefge9hmbxdkkdnaDTmbindnaPRbbTmbasaDydbgefRbbceGmbamRbbclSmbabaeaz2cdtfgearIdbakNaxIdbMUdbaearclfIdbakNaxIdlMUdlaearcwfIdbakNaxIdwMUdwkaPcefhPaDclfhDamcefhmarcxfhraocufgombxdkkazcdthicbheindnaPaefRbbTmbasaefRbbceGmbamaefRbbclSmbabarIdbakNaxIdbMUdbabclfarclfIdbakNaxIdlMUdbabcwfarcwfIdbakNaxIdwMUdbkarcxfhrabaifhbaoaecefge9hmbkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbkRbababaeadaialavaoarawaDaqakaxcjjjjdVamz:bjjjbk:g8Koque99due99duq998Jjjjjbc;Wb9Rgq8Kjjjjbcbhkaqcxfcbc;Kbz:tjjjb8Aaqcualcx2alc;v:Q;v:Qe0Ecbyd1:H:cjbHjjjjbbgxBdxaqceBd2axaialavcbcbz:ejjjb8AaqcualcdtalcFFFFi0Egmcbyd1:H:cjbHjjjjbbgiBdzaqcdBd2dndnJFF959eJbbjZawJbbjZawJbbjZ9DE:vawJ9VO:d869DEgw:lJbbb9p9DTmbaw:OhPxekcjjjj94hPkadci9Uhsarco9UhzdndnaombaPcd9imekdnalTmbaPcuf:YhwdnaoTmbcbhvaihHaxhOindndnaoavfRbbceGTmbavcjjjjlVhAxekdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHaOcxfhOalavcefgv9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkadTmbcbhkaehvcbhOinakaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgA9haiavydbcdtfydbgXaH9haXaA9hGGfhkavcxfhvaOcifgOad6mbkkarci9UhQdndnaz:Z:rJbbbZMgw:lJbbb9p9DTmbaw:Ohvxekcjjjj94hvkaQ:ZhLcbhKc:bwhzdninakaQ9pmeazaP9Rcd9imeavazcufgOavaO9iEaPcefavaP9kEhYdnalTmbaYcuf:YhwdnaoTmbcbhOaihHaxhvindndnaoaOfRbbceGTmbaOcjjjjlVhAxekdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHavcxfhvalaOcefgO9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkcbhOdnadTmbaehvcbhHinaOaiavclfydbcdtfydbgAaiavcwfydbcdtfydbgX9haiavydbcdtfydbgraA9haraX9hGGfhOavcxfhvaHcifgHad6mbkkdnas:ZgCaL:taY:Ygwaz:Y:tg8ANak:ZgEaO:Zg3:tNaEaL:tawaP:Y:tg5Na3aC:tNMg8EJbbbb9BmbaCaE:ta5a8Aa3aL:tNNNa8E:vawMhwkdndnaOaQ0mbaOhkaYhPxekaOhsaYhzkdndnaKcl0mbdnawJbbbZMgw:lJbbb9p9DTmbaw:Ohvxdkcjjjj94hvxekaPazfcd9ThvkaKcefgKcs9hmbkkdndndnakmbJbbjZhwcbhOcdhvaDmexdkalcd4alfhHcehOinaOgvcethOavaH6mbkcbhOaqcuavcdtgYavcFFFFi0Ecbyd1:H:cjbHjjjjbbgKBdCaqciBd2aqamcbyd1:H:cjbHjjjjbbgzBdKaqclBd2dndndndnalTmbaPcuf:YhwaoTmecbhOaihAaxhHindndnaoaOfRbbceGTmbaOcjjjjlVhXxekdndnaHclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqthXdndnaHcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkaXarVhXdndnaHIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkaXarcCtVhXkaAaXBdbaAclfhAaHcxfhHalaOcefgO9hmbxikkaKcFeaYz:tjjjb8AcbhPcbhvxdkaxhOaihHalhAindndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcCthXdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkarcqtaXVhXdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohrxekcjjjj94hrkaHaXarVBdbaOcxfhOaHclfhHaAcufgAmbkkaKcFeaYz:tjjjbhravcufhocbhPcbhYindndndnaraiaYcdtgKfydbgAcm4aA7c:v;t;h;Ev2gvcs4av7aoGgHcdtfgXydbgOcuSmbcehvinaiaOcdtgOfydbaASmdaHavfhOavcefhvaraOaoGgHcdtfgXydbgOcu9hmbkkaXaYBdbaPhvaPcefhPxekazaOfydbhvkazaKfavBdbaYcefgYal9hmbkcuaPc8S2gOaPc;D;O;f8U0EhvkcbhXaqavcbyd1:H:cjbHjjjjbbgvBd3aqcvBd2avcbaOz:tjjjbhOdnadTmbaehiinaxaiclfydbgrcx2fgvIdbaxaiydbgocx2fgHIdbg3:tgCaxaicwfydbgYcx2fgAIdlaHIdlg8A:tgwNavIdla8A:tgEaAIdba3:tg8EN:tgLaLNaEaAIdwaHIdwg5:tg8FNavIdwa5:tgEawN:tgwawNaEa8ENaCa8FN:tgCaCNMMg8E:rhEJbbnnJbbjZazaocdtfydbgvazarcdtfydbgASavazaYcdtfydbgrSGgHEh8Fdna8EJbbbb9ETmbaLaE:vhLaCaE:vhCawaE:vhwkaOavc8S2fgvavIdbawa8FaE:rNgEawNNg8FMUdbavaCaEaCNgaNghavIdlMUdlavaLaEaLNg8ENggavIdwMUdwavawaaNgaavIdxMUdxava8EawNg8JavIdzMUdzavaCa8ENg8EavIdCMUdCavawaEaLa5Nawa3Na8AaCNMM:mg8ANg3NgwavIdKMUdKavaCa3NgCavId3MUd3avaLa3NgLavIdaMUdaava3a8ANg3avId8KMUd8KavaEavIdyMUdydnaHmbaOaAc8S2fgva8FavIdbMUdbavahavIdlMUdlavagavIdwMUdwavaaavIdxMUdxava8JavIdzMUdzava8EavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava3avId8KMUd8KavaEavIdyMUdyaOarc8S2fgva8FavIdbMUdbavahavIdlMUdlavagavIdwMUdwavaaavIdxMUdxava8JavIdzMUdzava8EavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava3avId8KMUd8KavaEavIdyMUdykaicxfhiaXcifgXad6mbkkcbhAaqcuaPcdtgvaPcFFFFi0Egicbyd1:H:cjbHjjjjbbgHBdaaqcoBd2aqaicbyd1:H:cjbHjjjjbbgiBd8KaqcrBd2aHcFeavz:tjjjbhYdnalTmbazhHinJbbbbJbbjZaOaHydbgXc8S2fgvIdygw:vawJbbbb9BEavIdwaxcwfIdbgwNavIdzaxIdbgCNavIdaMgLaLMMawNavIdlaxclfIdbgLNavIdCawNavId3MgwawMMaLNavIdbaCNavIdxaLNavIdKMgwawMMaCNavId8KMMM:lNhwdndnaYaXcdtgvfgXydbcuSmbaiavfIdbaw9ETmekaXaABdbaiavfawUdbkaHclfhHaxcxfhxalaAcefgA9hmbkkdndnaPmbJbbbbhwxekJbbbbhwinaiIdbgCawawaC9DEhwaiclfhiaPcufgPmbkaw:rhwkakcd4akfhOcehiinaigvcethiavaO6mbkcbhOaqcuavcdtgiavcFFFFi0Ecbyd1:H:cjbHjjjjbbgHBdyaHcFeaiz:tjjjbhXdnadTmbavcufhrcbhPcbhxindnazaeaxcdtfgvydbcdtfydbgiazavclfydbcdtfydbgOSmbaiazavcwfydbcdtfydbgvSmbaOavSmbaYavcdtfydbhAdndnaYaOcdtfydbgvaYaicdtfydbgi9pmbavaA9pmbaAhlaihoavhAxekdnaAai9pmbaAav9pmbaihlavhoxekavhlaAhoaihAkabaPcx2fgvaABdbavcwfaoBdbavclfalBdbdnaXaoc:3F;N8N2alc:F:b:DD27aAc;D;O:B8J27arGgOcdtfgvydbgicuSmbcehHinaHhvdnabaicx2fgiydbaA9hmbaiydlal9hmbaiydwaoSmikavcefhHaXaOavfarGgOcdtfgvydbgicu9hmbkkavaPBdbaPcefhPkaxcifgxad6mbkaPci2hOkcwhvaDTmekaDawUdbkavcdthvaqcxfc98fhiinaiavfydbcbyd:m:H:cjbH:bjjjbbavc98fgvmbkaqc;Wbf8KjjjjbaOk:3ldrue9:8Jjjjjbc;Wb9Rgr8Kjjjjbcbhwarcxfcbc;Kbz:tjjjb8AdnabaeSmbabaeadcdtzMjjjb8AkarcualcdtalcFFFFi0EgDcbyd1:H:cjbHjjjjbbgqBdxarceBd2aqcbaialavcbarcxfz:djjjbcualcx2alc;v:Q;v:Qe0Ecbyd1:H:cjbHjjjjbbhkarcxfaryd2gxcdtfakBdbaraxcefgmBd2akaialavcbcbz:ejjjb8AarcxfamcdtfaDcbyd1:H:cjbHjjjjbbgiBdbaraxcdfgvBd2arcxfavcdtfcuaialaeadaqz:fjjjbgecltaecjjjjiGEcbyd1:H:cjbHjjjjbbgqBdbaqaeaiakalz:gjjjbaxcifhkdnadTmbaoaoNhocbhwabhlcbheindnaqaialydbgvcdtfydbcdtfIdbao9ETmbalclf8PdbhPabawcdtfgDavBdbaDclfaP83dbawcifhwkalcxfhlaecifgead6mbkkdnakTmbaxcdtarcxffcwfhlinalydbcbyd:m:H:cjbH:bjjjbbalc98fhlakcufgkmbkkarc;Wbf8Kjjjjbawk:WCoDud99vue99vuv998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:tjjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd1:H:cjbHjjjjbbgqBdxawceBd2aqaeadaicbcbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd1:H:cjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd1:H:cjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhCcbhXadhQcbhLinaeaCcufgiaeai9iEaPcefaeaP9kEhDdndnadTmbaDcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMgK:lJbbb9p9DTmbaK:OhYxekcjjjj94hYkaYcCthYdndnaiclfIdbaONJbbbZMgK:lJbbb9p9DTmbaK:Oh8Axekcjjjj94h8Aka8AcqtaYVhYdndnaicwfIdbaONJbbbZMgK:lJbbb9p9DTmbaK:Oh8Axekcjjjj94h8AkaeaYa8AVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:tjjjbhEcbh3cbh5indnaEaxa5cdtfydbgYcm4aY7c:v;t;h;Ev2gics4ai7aAGgmcdtfg8AydbgecuSmbaeaYSmbcehiinaEamaifaAGgmcdtfg8AydbgecuSmeaicefhiaeaY9hmbkka8AaYBdba3aecuSfh3a5cefg5ad9hmbxdkkazcFeasz:tjjjb8Acbh3kdnaQ:ZgKaH:taD:YgOaC:Y:tg8ENaX:Zg8Fa3:Zga:tNa8FaH:taOaP:Y:tghNaaaK:tNMggJbbbb9BmbaKa8F:taha8EaaaH:tNNNag:vaOMhOkaPaDa3ar0giEhPaXa3aiEhXdna3arSmbaDaCaiEgCaP9Rcd9imbdndnaLcl0mbdnaOJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPaCfcd9Theka3aQaiEhQaLcefgLcs9hmekkdndnaXmbcihicbhDxekcbhiawakcbyd1:H:cjbHjjjjbbg5BdKawclBd2aPcuf:YhKdndnadTmbaqhiaxheadhmindndnaiIdbaKNJbbbZMgO:lJbbb9p9DTmbaO:OhYxekcjjjj94hYkaYcCthYdndnaiclfIdbaKNJbbbZMgO:lJbbb9p9DTmbaO:Oh8Axekcjjjj94h8Aka8AcqtaYVhYdndnaicwfIdbaKNJbbbZMgO:lJbbb9p9DTmbaO:Oh8Axekcjjjj94h8AkaeaYa8AVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:tjjjbhEcbhDcbh3indndndnaEaxa3cdtgCfydbgYcm4aY7c:v;t;h;Ev2gics4ai7aAGgmcdtfg8AydbgecuSmbcehiinaxaecdtgefydbaYSmdamaifheaicefhiaEaeaAGgmcdtfg8Aydbgecu9hmbkka8Aa3BdbaDhiaDcefhDxeka5aefydbhika5aCfaiBdba3cefg3ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:tjjjb8AcbhDcbhekawaecbyd1:H:cjbHjjjjbbgeBd3awcvBd2aecbaiz:tjjjbh8Aavcd4hxdnadTmbdnalTmbaxcdthEa5hYaqhealhmadhAina8AaYydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiamIdbaiIdxMUdxaiamclfIdbaiIdzMUdzaiamcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaYclfhYaecxfheamaEfhmaAcufgAmbxdkka5hmaqheadhYina8Aamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaYcufgYmbkkdnaDTmba8AhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhYawcuaDcdtgCaDcFFFFi0Egicbyd1:H:cjbHjjjjbbgeBdaawcoBd2awaicbyd1:H:cjbHjjjjbbgEBd8KaecFeaCz:tjjjbh3dnadTmbaoJbbjZJbbjZaK:vaPceSENgOaONhKaxcdthxalheinaKaec;8:G:cjbalEgmIdwa8Aa5ydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna3aAcdtgifgmydbcuSmbaEaifIdbaO9ETmekamaYBdbaEaifaOUdbka5clfh5aqcxfhqaeaxfheadaYcefgY9hmbkkaba3aCzMjjjb8Acrhikaicdthiawcxfc98fheinaeaifydbcbyd:m:H:cjbH:bjjjbbaic98fgimbkkawc;Wbf8KjjjjbaDk:Pdidui99ducbhi8Jjjjjbca9Rglcbyd1:G:cjbBdKalcb8Pdj:G:cjb83izalcbydN:G:cjbBdwalcb8Pd:m:G:cjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk9DeeuabcFeaicdtz:tjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Bidqui998Jjjjjbc;Wb9Rgl8Kjjjjbalcxfcbc;Kbz:tjjjb8Aadcd4adfhvcehoinaogrcethoarav6mbkalcuarcdtgoarcFFFFi0Ecbyd1:H:cjbHjjjjbbgvBdxavcFeaoz:tjjjbhwdnadTmbaicd4hDarcufhqcbhkindndnawcbaeakaD2cdtfgrydlgiaicjjjj94SEgocH4ao7c:F:b:DD2cbarydbgxaxcjjjj94SEgocH4ao7c;D;O:B8J27cbarydwgmamcjjjj94SEgrcH4ar7c:3F;N8N27aqGgvcdtfgrydbgocuSmbam::hPai::hsax::hzcehiinaihrdnaeaoaD2cdtfgiIdbaz9CmbaiIdlas9CmbaiIdwaP9BmikarcefhiawavarfaqGgvcdtfgrydbgocu9hmbkkarakBdbakhokabakcdtfaoBdbakcefgkad9hmbkkalydxcbyd:m:H:cjbH:bjjjbbalc;Wbf8Kjjjjbk9teiucbcbyd:q:H:cjbgeabcifc98GfgbBd:q:H:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:H:cjbgeabcrfc94GfgbBd:q:H:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd:q:H:cjbge9Rcifc98GaefgbBd:q:H:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akkk:Kedbcj:Gdk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbeeeeeebebbeeebeebbbbebebbbbbbbbbbbbbbbbbbc1:Hdkxebbbdbbb:G:qbb",i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var e,o=WebAssembly.instantiate(u(c),{}).then(function(a){e=a.instance,e.exports.__wasm_call_ctors()});function u(a){for(var d=new Uint8Array(a.length),f=0;f<a.length;++f){var r=a.charCodeAt(f);d[f]=r>96?r-97:r>64?r-39:r+4}for(var l=0,f=0;f<a.length;++f)d[l++]=d[f]<60?i[d[f]]:(d[f]-60)*64+d[++f];return d.buffer.slice(0,l)}function b(a){if(!a)throw new Error("Assertion failed")}function g(a){return new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}function p(a,d,f,r){var l=e.exports.sbrk,m=l(f*4),y=l(f*r*4),I=new Uint8Array(e.exports.memory.buffer);I.set(g(d),y),a(m,y,f,r*4),I=new Uint8Array(e.exports.memory.buffer);var H=new Uint32Array(f);return new Uint8Array(H.buffer).set(I.subarray(m,m+f*4)),l(m-l(0)),H}function A(a,d,f){var r=e.exports.sbrk,l=r(d.length*4),m=r(f*4),y=new Uint8Array(e.exports.memory.buffer),I=g(d);y.set(I,l);var H=a(m,l,d.length,f);y=new Uint8Array(e.exports.memory.buffer);var E=new Uint32Array(f);new Uint8Array(E.buffer).set(y.subarray(m,m+f*4)),r(l-r(0));for(var N=0;N<d.length;++N)d[N]=E[d[N]];return[E,H]}function x(a){for(var d=0,f=0;f<a.length;++f){var r=a[f];d=d<r?r:d}return d}function j(a,d,f,r,l,m,y,I,H){var E=e.exports.sbrk,N=E(4),z=E(f*4),K=E(l*m),M=E(f*4),D=new Uint8Array(e.exports.memory.buffer);D.set(g(r),K),D.set(g(d),M);var B=a(z,M,f,K,l,m,y,I,H,N);D=new Uint8Array(e.exports.memory.buffer);var U=new Uint32Array(B);g(U).set(D.subarray(z,z+B*4));var C=new Float32Array(1);return g(C).set(D.subarray(N,N+4)),E(N-E(0)),[U,C[0]]}function v(a,d,f,r,l,m,y,I,H,E,N,z,K){var M=e.exports.sbrk,D=M(4),B=M(f*4),U=M(l*m),C=M(l*I),O=M(H.length*4),G=M(f*4),W=E?M(l):0,S=new Uint8Array(e.exports.memory.buffer);S.set(g(r),U),S.set(g(y),C),S.set(g(H),O),S.set(g(d),G),E&&S.set(g(E),W);var _=a(B,G,f,U,l,m,C,I,O,H.length,W,N,z,K,D);S=new Uint8Array(e.exports.memory.buffer);var V=new Uint32Array(_);g(V).set(S.subarray(B,B+_*4));var q=new Float32Array(1);return g(q).set(S.subarray(D,D+4)),M(D-M(0)),[V,q[0]]}function F(a,d,f,r,l,m,y,I,H,E,N,z,K){var M=e.exports.sbrk,D=M(4),B=M(l*m),U=M(l*I),C=M(H.length*4),O=M(f*4),G=E?M(l):0,W=new Uint8Array(e.exports.memory.buffer);W.set(g(r),B),W.set(g(y),U),W.set(g(H),C),W.set(g(d),O),E&&W.set(g(E),G);var S=a(O,f,B,l,m,U,I,C,H.length,G,N,z,K,D);W=new Uint8Array(e.exports.memory.buffer),g(d).set(W.subarray(O,O+S*4)),g(r).set(W.subarray(B,B+l*m)),g(y).set(W.subarray(U,U+l*I));var _=new Float32Array(1);return g(_).set(W.subarray(D,D+4)),M(D-M(0)),[S,_[0]]}function k(a,d,f,r){var l=e.exports.sbrk,m=l(f*r),y=new Uint8Array(e.exports.memory.buffer);y.set(g(d),m);var I=a(m,f,r);return l(m-l(0)),I}function s(a,d,f,r,l,m,y,I){var H=e.exports.sbrk,E=H(I*4),N=H(f*r),z=l?H(f*m):0,K=new Uint8Array(e.exports.memory.buffer);K.set(g(d),N),l&&K.set(g(l),z);var M=a(E,N,f,r,z,m,y,I);K=new Uint8Array(e.exports.memory.buffer);var D=new Uint32Array(M);return g(D).set(K.subarray(E,E+M*4)),H(E-H(0)),D}function h(a,d,f,r,l,m,y,I,H){var E=e.exports.sbrk,N=E(4),z=E(f*4),K=E(l*m),M=E(f*4),D=y?E(l):0,B=new Uint8Array(e.exports.memory.buffer);B.set(g(r),K),B.set(g(d),M),y&&B.set(g(y),D);var U=a(z,M,f,K,l,m,D,I,H,N);B=new Uint8Array(e.exports.memory.buffer);var C=new Uint32Array(U);g(C).set(B.subarray(z,z+U*4));var O=new Float32Array(1);return g(O).set(B.subarray(N,N+4)),E(N-E(0)),[C,O[0]]}function n(a,d,f,r,l,m,y){var I=e.exports.sbrk,H=I(f*4),E=I(l*m),N=I(f*4),z=new Uint8Array(e.exports.memory.buffer);z.set(g(r),E),z.set(g(d),N);var K=a(H,N,f,E,l,m,y);z=new Uint8Array(e.exports.memory.buffer);var M=new Uint32Array(K);return g(M).set(z.subarray(H,H+K*4)),I(H-I(0)),M}var t={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,Regularize:16,Permissive:32,RegularizeLight:64,_InternalDebug:1<<30};return{ready:o,supported:!0,compactMesh:function(a){b(a instanceof Uint32Array||a instanceof Int32Array||a instanceof Uint16Array||a instanceof Int16Array),b(a.length%3==0);var d=a.BYTES_PER_ELEMENT==4?a:new Uint32Array(a),f=A(e.exports.meshopt_optimizeVertexFetchRemap,d,x(a)+1);if(a!==d)for(var r=0;r<d.length;++r)a[r]=d[r];return f},generatePositionRemap:function(a,d){return b(a instanceof Float32Array),b(a.length%d==0),b(d>=3),p(e.exports.meshopt_generatePositionRemap,a,a.length/d,d)},simplify:function(a,d,f,r,l,m){b(a instanceof Uint32Array||a instanceof Int32Array||a instanceof Uint16Array||a instanceof Int16Array),b(a.length%3==0),b(d instanceof Float32Array),b(d.length%f==0),b(f>=3),b(r>=0&&r<=a.length),b(r%3==0),b(l>=0);for(var y=0,I=0;I<(m?m.length:0);++I)b(m[I]in t),y|=t[m[I]];var H=a.BYTES_PER_ELEMENT==4?a:new Uint32Array(a),E=j(e.exports.meshopt_simplify,H,a.length,d,d.length/f,f*4,r,l,y);return E[0]=a instanceof Uint32Array?E[0]:new a.constructor(E[0]),E},simplifyWithAttributes:function(a,d,f,r,l,m,y,I,H,E){b(a instanceof Uint32Array||a instanceof Int32Array||a instanceof Uint16Array||a instanceof Int16Array),b(a.length%3==0),b(d instanceof Float32Array),b(d.length%f==0),b(f>=3),b(r instanceof Float32Array),b(r.length==l*(d.length/f)),b(l>=0),b(y==null||y instanceof Uint8Array),b(y==null||y.length==d.length/f),b(I>=0&&I<=a.length),b(I%3==0),b(H>=0),b(Array.isArray(m)),b(l>=m.length),b(m.length<=32);for(var N=0;N<m.length;++N)b(m[N]>=0);for(var z=0,N=0;N<(E?E.length:0);++N)b(E[N]in t),z|=t[E[N]];var K=a.BYTES_PER_ELEMENT==4?a:new Uint32Array(a),M=v(e.exports.meshopt_simplifyWithAttributes,K,a.length,d,d.length/f,f*4,r,l*4,new Float32Array(m),y,I,H,z);return M[0]=a instanceof Uint32Array?M[0]:new a.constructor(M[0]),M},simplifyWithUpdate:function(a,d,f,r,l,m,y,I,H,E){b(a instanceof Uint32Array||a instanceof Int32Array||a instanceof Uint16Array||a instanceof Int16Array),b(a.length%3==0),b(d instanceof Float32Array),b(d.length%f==0),b(f>=3),b(r instanceof Float32Array),b(r.length==l*(d.length/f)),b(l>=0),b(y==null||y instanceof Uint8Array),b(y==null||y.length==d.length/f),b(I>=0&&I<=a.length),b(I%3==0),b(H>=0),b(Array.isArray(m)),b(l>=m.length),b(m.length<=32);for(var N=0;N<m.length;++N)b(m[N]>=0);for(var z=0,N=0;N<(E?E.length:0);++N)b(E[N]in t),z|=t[E[N]];var K=a.BYTES_PER_ELEMENT==4?a:new Uint32Array(a),M=F(e.exports.meshopt_simplifyWithUpdate,K,a.length,d,d.length/f,f*4,r,l*4,new Float32Array(m),y,I,H,z);if(a!==K)for(var N=0;N<M[0];++N)a[N]=K[N];return M},getScale:function(a,d){return b(a instanceof Float32Array),b(a.length%d==0),b(d>=3),k(e.exports.meshopt_simplifyScale,a,a.length/d,d*4)},simplifyPoints:function(a,d,f,r,l,m){return b(a instanceof Float32Array),b(a.length%d==0),b(d>=3),b(f>=0&&f<=a.length/d),r?(b(r instanceof Float32Array),b(r.length%l==0),b(l>=3),b(a.length/d==r.length/l),s(e.exports.meshopt_simplifyPoints,a,a.length/d,d*4,r,l*4,m||0,f)):s(e.exports.meshopt_simplifyPoints,a,a.length/d,d*4,void 0,0,0,f)},simplifySloppy:function(a,d,f,r,l,m){b(a instanceof Uint32Array||a instanceof Int32Array||a instanceof Uint16Array||a instanceof Int16Array),b(a.length%3==0),b(d instanceof Float32Array),b(d.length%f==0),b(f>=3),b(r==null||r instanceof Uint8Array),b(r==null||r.length==d.length/f),b(l>=0&&l<=a.length),b(l%3==0),b(m>=0);var y=a.BYTES_PER_ELEMENT==4?a:new Uint32Array(a),I=h(e.exports.meshopt_simplifySloppy,y,a.length,d,d.length/f,f*4,r,l,m);return I[0]=a instanceof Uint32Array?I[0]:new a.constructor(I[0]),I},simplifyPrune:function(a,d,f,r){b(a instanceof Uint32Array||a instanceof Int32Array||a instanceof Uint16Array||a instanceof Int16Array),b(a.length%3==0),b(d instanceof Float32Array),b(d.length%f==0),b(f>=3),b(r>=0);var l=a.BYTES_PER_ELEMENT==4?a:new Uint32Array(a),m=n(e.exports.meshopt_simplifyPrune,l,a.length,d,d.length/f,f*4,r);return m=a instanceof Uint32Array?m:new a.constructor(m),m}}})();var Je=(function(){var c="b9H79Tebbbe:neP9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gouuuuuueu9Gruuuuuuub9Gxuuuuuuuuuuuueu9Gxuuuuuuuuuuu99eu9GPuuuuuuuuuuuuu99b9Gouuuuuub9Gwuuuuuuuub9Gvuuuuub9GluuuubiQXdilvorwDqokoqxmbiibeilve9Weiiviebeoweuecj:Gdkr;Zeqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeY9TW79O9V9Wt9F9I919P29K9nW79O2Wt7S2W94bd39TW79O9V9Wt9F9I919P29K9nW79O2Wt79t9W9Ht9P9H2bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7bw39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bkE9TW79O9V9Wt9F9J9V9T9W91tW9t9W9OWVW9c9V919U9K7bxL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2WtbPl79IV9RbsDwebcekdOAq;W:leXdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:88JDPue99eux99due99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:rjjjb8AcuaocdtgsaocFFFFi0Ehzcbyd;0:G:cjbhHdndnalcb9imbaoal9nmbamazaHHjjjjbbgHBd:CwamceBd;8wamazcbyd;0:G:cjbHjjjjbbgOBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;0:G:cjbHjjjjbbgABd:KwamciBd;8waihzalhsinaHazydbcdtfcbBdbazclfhzascufgsmbkaihzalhsinaHazydbcdtfgCaCydbcefBdbazclfhzascufgsmbkaihzalhCcbhXindnaHazydbcdtgQfgsydbcb9imbaOaQfaXBdbasasydbgQcjjjj94VBdbaQaXfhXkazclfhzaCcufgCmbkalci9UhLdnalci6mbcbhzaihsinascwfydbhCasclfydbhXaOasydbcdtfgQaQydbgQcefBdbaAaQcdtfazBdbaOaXcdtfgXaXydbgXcefBdbaAaXcdtfazBdbaOaCcdtfgCaCydbgCcefBdbaAaCcdtfazBdbascxfhsaLazcefgz9hmbkkaihzalhsindnaHazydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaOaCfgCaCydbaQ9RBdbkazclfhzascufgsmbxdkkamazaHHjjjjbbgHBd:CwamceBd;8wamazcbyd;0:G:cjbHjjjjbbgOBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;0:G:cjbHjjjjbbgABd:KwamciBd;8waHcbasz:rjjjbhXaihzalhsinaXazydbcdtfgCaCydbcefBdbazclfhzascufgsmbkalci9UhLdnaoTmbcbhzaOhsaXhCaohQinasazBdbasclfhsaCydbazfhzaCclfhCaQcufgQmbkkdnalci6mbcbhzaihsinascwfydbhCasclfydbhQaOasydbcdtfgKaKydbgKcefBdbaAaKcdtfazBdbaOaQcdtfgQaQydbgQcefBdbaAaQcdtfazBdbaOaCcdtfgCaCydbgCcefBdbaAaCcdtfazBdbascxfhsaLazcefgz9hmbkkaoTmbcbhzaohsinaOazfgCaCydbaXazfydb9RBdbazclfhzascufgsmbkkamaLcbyd;0:G:cjbHjjjjbbgzBd:OwamclBd;8wazcbaLz:rjjjbhYamcuaLcK2alcjjjjd0Ecbyd;0:G:cjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihsa8AhzaLhrJbbbbh5inavasclfydbaK2cdtfgCIdlh8EavasydbaK2cdtfgXIdlhEavascwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgazaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbazclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyazcxfa8EaE:tg8Eagah:tggNaaah:tgaa8FaE:tghN:tgEJbbbbJbbjZa8Ja8K:tg8FahNa8Ea8La8K:tg8KN:tghahNaEaENaaa8KNa8FagN:tgEaENMMg8K:rg8E:va8KJbbbb9BEg8KNUdbazczfaEa8KNUdbazcCfaha8KNUdbazcwfa8Maya8NMMJbbnn:vUdba5a8EMh5ascxfhsazcKfhzarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;0:G:cjbHjjjjbbgCBd:WwamcoBd;8waq:Zhhdna3mbcbhzaChsinasazBdbasclfhsaLazcefgz9hmbkkaEahNhhamcuaLcltalcFFFFd0Ecbyd;0:G:cjbHjjjjbbg8PBd:0wamcrBd;8wcba8Pa8AaCaLcbz:djjjb8AJFFuuh8MJFFuuh8NJFFuuhydnalci6mbJFFuuhya8AhzaLhsJFFuuh8NJFFuuh8MinazcwfIdbgEa8Ma8MaE9EEh8MazclfIdbgEa8Na8NaE9EEh8NazIdbgEayayaE9EEhyazcKfhzascufgsmbkkah:rhEamaocetgzcuaocu9kEcbyd;0:G:cjbHjjjjbbgCBd:4wdndnaoal9nmbaihzalhsinaCazydbcetfcFFi87ebazclfhzascufgsmbxdkkaCcFeazz:rjjjb8AkaEJbbbZNh8JcuhIdnalci6mbcbhsJFFuuhEa8AhzcuhIinazcwfIdba8M:tghahNazIdbay:tghahNazclfIdba8N:tghahNMM:rghaEaIcuSahaE9DVgXEhEasaIaXEhIazcKfhzaLascefgs9hmbkkamczfcbcjwz:rjjjb8Aam9cb83iwam9cb83ibaxa8JNh8RJbbjZak:th8Lcbh8SJbbbbhRJbbbbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8Ycbh8ZcbhPinJbbbbhEdna8STmbJbbjZa8S:Z:vhEkJbbbbhhdna8Ya8YNa8Wa8WNa8Xa8XNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8VaENh8Ka8UaENh5aRaENh8EaIhLdndndndndna8SaPVTmbamydwg80Tmea8YahNh8Fa8XahNhaa8WahNhgaeamydbcdtfh81cbh3JFFuuhEcvhQcuhLindnaHa81a3cdtfydbcdtgzfydbgvTmbaAaOazfydbcdtfhsindndnaCaiasydbgKcx2fgzclfydbgrcetf8Vebcs4aCazydbgXcetf8Vebcs4faCazcwfydbglcetf8Vebcs4fgombcbhzxekcehzaHaXcdtfydbgXceSmbcehzaHarcdtfydbgrceSmbcehzaHalcdtfydbglceSmbdnarcdSaXcdSfalcdSfcd6mbaocefhzxekaocdfhzkdnazaQ9kmba8AaKcK2fgXIdwa8K:tghahNaXIdba8E:tghahNaXIdla5:tghahNMM:ra8J:va8LNJbbjZMJ9VO:d86JbbjZaXIdCa8FNaXIdxagNaaaXIdzNMMakN:tghahJ9VO:d869DENghaEazaQ6ahaE9DVgXEhEaKaLaXEhLazaQaXEhQkasclfhsavcufgvmbkka3cefg3a809hmbkkaLcu9hmekama8KUd:ODama5Ud:KDama8EUd:GDamcuBd:qDamcFFF;7rBdjDa8Pcba8AaYamc:GDfamc:qDfamcjDfz:ejjjbamyd:qDhLdndnaxJbbbb9ETmba8SaD6mbaLcuSmeceh3amIdjDa8R9EmixdkaLcu9hmekdna8STmbabaPcltfgHam8Piw83dwaHam8Pib83dbaPcefhPkc3hHinamc:CwfaHfydbcbyd;4:G:cjbH:bjjjbbaHc98fgHc989hmbxvkkcbh3a8Saq9pmbamydwaCaiaLcx2fgzydbcetf8Vebcs4aCazcwfydbcetf8Vebcs4faCazclfydbcetf8Vebcs4ffaw9nmekcbhzcbhsdna8ZTmbcbhsamczfhXinamczfascdtfaXydbgQBdbaXclfhXasaYaQfRbbTfhsa8Zcufg8ZmbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDinamcjDfazfcFFF;7rBdbazclfgzcz9hmbkasc;8easclfc:bd6Eg8Zcdth80dnalTmbaeaXcdtfhocbhrindnaHaoarcdtfydbcdtgzfydbgvTmbaAaOazfydbcdtfhscuhQcuhzinaHaiasydbgKcx2fgXclfydbcdtfydbaHaXydbcdtfydbfaHaXcwfydbcdtfydbfgXazaXaz6gXEhzaKaQaXEhQasclfhsavcufgvmbkaQcuSmba8AaQcK2fgsIdwa8M:tgEaENasIdbay:tgEaENasIdla8N:tgEaENMM:rhEcbhsindndnazamc:qDfasfgvydbgX6mbazaX9hmeaEamcjDfasfIdb9FTmekavazBdbamc:GDfasfaQBdbamcjDfasfaEUdbxdkasclfgscz9hmbkkarcefgral9hmbkkamczfa80fhQcbhzcbhsindnamc:GDfazfydbgXcuSmbaQascdtfaXBdbascefhskazclfgzcz9hmbkasa8Zfg8ZTmbJFFuuhhcuhKamczfhza8ZhvcuhQina8AazydbgXcK2fgsIdwa8M:tgEaENasIdbay:tgEaENasIdla8N:tgEaENMM:rhEdndnaHaiaXcx2fgsclfydbcdtfydbaHasydbcdtfydbfaHascwfydbcdtfydbfgsaQ6mbasaQ9hmeaEah9DTmekaEhhashQaXhKkazclfhzavcufgvmbkaKcuSmbaKhLkdnamaiaLcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbhRJbbbbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YkcbhXinaAaOaraXcdtfydbcdtgsfydbcdtfgKhzaHasfgvydbgQhsdnaQTmbdninazydbaLSmeazclfhzascufgsTmdxbkkazaKaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaLcK2fgzIdbhEazIdlhhazIdwh8KazIdxh5azIdzh8EazIdCh8FaYaLfce86bba8Ya8FMh8Ya8Xa8EMh8Xa8Wa5Mh8Wa8Va8KMh8Va8UahMh8UaRaEMhRamydxh8Sxbkkamc:WDf8KjjjjbaPkjoivuv99lu8Jjjjjbca9Rgo8Kjjjjbdndnalcw0mbaiydbhraeabcitfgwalcdtciVBdlawarBdbdnalcd6mbaiclfhralcufhDawcxfhwinarydbhqawcuBdbawc98faqBdbawcwfhwarclfhraDcufgDmbkkalabfhwxekcbhqaocbBdKao9cb83izaocbBdwao9cb83ibJbbjZhkJbbjZhxinadaiaqcdtfydbcK2fhDcbhwinaoczfawfgraDawfIdbgmarIdbgP:tgsaxNaPMgPUdbaoawfgrasamaP:tNarIdbMUdbawclfgwcx9hmbkJbbjZakJbbjZMgk:vhxaqcefgqal9hmbkcbhradcbcecdaoIdlgmaoIdwgP9GEgwaoIdbgsaP9GEawasam9GEgzcdtgwfhHaoczfawfIdbhmaihwalhDinaiarcdtfgqydbhOaqawydbgABdbawaOBdbawclfhwaraHaAcK2fIdbam9DfhraDcufgDmbkdndnarcv6mbavc8X9kmbaralc98f6mekaiydbhraeabcitfgwalcdtciVBdlawarBdbaiclfhralcufhDawcxfhwinarydbhqawcuBdbawc98faqBdbawcwfhwarclfhraDcufgDmbkalabfhwxekaeabcitfgwamUdbawawydlc98GazVBdlabcefaeadaiaravcefgqz:djjjbhDawawydlciGaDabcu7fcdtVBdlaDaeadaiarcdtfalar9Raqz:djjjbhwkaocaf8Kjjjjbawk;Oddvue99dninabaecitfgrydlgwcd4gDTmednawciGgqci9hmbcihqdnawcl6mbabaecitfhbcbheawhqcehkindnaiabydbgDfRbbmbcbhkadaDcK2fgwIdwalIdw:tgxaxNawIdbalIdb:tgxaxNawIdlalIdl:tgxaxNMM:rgxaoIdb9DTmbaoaxUdbavaDBdbarydlhqkabcwfhbaecefgeaqcd46mbkakceGTmikaraqciGBdlskdnabcbaDalaqcdtfIdbarIdb:tgxJbbbb9FEgwaD7aecefgDfgecitfydlabawaDfgDcitfydlVci0mbaraqBdlkabaDadaialavaoz:ejjjbax:laoIdb9Fmbkkkjlevudndnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0mbakmbcbhDabydxaq6mekavawcltfgxab8Pdw83dwaxab8Pdb83dbabydbhDdnabydwgwTmbaoaDcdtfhxawhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkabaDawfBdbabydxhxab9cb83dwababydlaxci2fBdlaP8VebhscehDcbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk:mPrHue99eue99eue99iu8Jjjjjbc;W;Gb9Rgx8KjjjjbdndnalmbcbhmxekcbhPaxc:m;Gbfcbc;Kbz:rjjjb8Aaxcualci9UgscltascjjjjiGEcbyd;0:G:cjbHjjjjbbgzBd:m9GaxceBd;S9GaxcuascK2gHcKfalcpFFFe0Ecbyd;0:G:cjbHjjjjbbgOBd:q9GaxcdBd;S9Gdnalci6gAmbarcd4hCascdthXaOhQazhLinavaiaPcx2fgrydwaC2cdtfhKavarydlaC2cdtfhYavarydbaC2cdtfh8AcbhraLhEinaQarfgma8Aarfg3Idbg5aYarfg8EIdbg8Fa5a8F9DEg5UdbamaKarfgaIdbg8Fa5a8Fa59DEg8FUdbamcxfgma3Idbg5a8EIdbgha5ah9EEg5UdbamaaIdbgha5aha59EEg5UdbaEa8Fa5MJbbbZNUdbaEaXfhEarclfgrcx9hmbkaQcKfhQaLclfhLaPcefgPas9hmbkkaOaHfgr9cb83dbar9cb83dzar9cb83dwaxcuascx2gralc:bjjjl0Ecbyd;0:G:cjbHjjjjbbgHBdN9GaxciBd;S9GascdthgazarfhvaxcwVhPaxclVhCaHh8Jazh8KcbhLinaxcbcj;Gbz:rjjjbhEaLas2cdthadnaAmba8Khrash3inaEarydbgmc8F91cjjjj94Vam7gmcQ4cx2fg8Ea8EydwcefBdwaEamcd4cFrGcx2fg8Ea8EydbcefBdbaEamcx4cFrGcx2fgmamydlcefBdlarclfhra3cufg3mbkkazaafh8AaHaafhXcbhmcbh3cbh8EcbhainaEamfgrydbhQara3BdbarcwfgKydbhYaKaaBdbarclfgrydbhKara8EBdbaQa3fh3aYaafhaaKa8Efh8Eamcxfgmcj;Gb9hmbkdnaAmbcbhravhminamarBdbamclfhmasarcefgr9hmbkavhrashminaEa8Aarydbg3cdtfydbg8Ec8F91a8E7cd4cFrGcx2fg8Ea8Eydbg8EcefBdbaXa8Ecdtfa3Bdbarclfhramcufgmmbka8JhrashminaCa8Aarydbg3cdtfydbg8Ec8F91a8E7cx4cFrGcx2fg8Ea8Eydbg8EcefBdbava8Ecdtfa3BdbarclfhramcufgmmbkavhrashminaPa8Aarydbg3cdtfydbg8Ec8F91cjjjj94Va8E7cQ4cx2fg8Ea8Eydbg8EcefBdbaXa8Ecdtfa3Bdbarclfhramcufgmmbkka8Jagfh8Ja8Kagfh8KaLcefgLci9hmbkaEaocetgrcuaocu9kEcbyd;0:G:cjbHjjjjbbgKBd:y9GaEclBd;S9Gdndnaoal9nmbaihralhminaKarydbcetfcFFi87ebarclfhramcufgmmbxdkkaKcFearz:rjjjb8Akcbh8EaEascbyd;0:G:cjbHjjjjbbg8ABd:C9GaOaHaHascdtfaHascitfa8AascbazaKaiawaDaqakz:hjjjbdndnalci6mba8Ahrashmina8EarRbbfh8EarcefhramcufgmmbkaE9cb83iwaE9cb83ibalawc9:fgrfcufar9UgrasaDfcufaD9Ugmaram0EhYcbhmcbhra8Ehaincbh3dnarTmba8AarfRbbceSh3kamaEaiaHydbcx2fgQydbaQclfydbaQcwfydbaKabaeadamawaqa3a3ce7a8EaY9nVaaamfaY6VGz:fjjjbfhmaHclfhHaaa8AarfRbb9Rhaasarcefgr9hmbkaEydxTmeabamcltfgraE8Piw83dwaraE8Pib83dbamcefhmxekaE9cb83iwaE9cb83ibcbhmkczhrinaEc:m;Gbfarfydbcbyd;4:G:cjbH:bjjjbbarc98fgrc989hmbkkaxc;W;Gbf8Kjjjjbamk:wKDQue99iue99iul9:euw99iu8Jjjjjbc;qb9RgP8Kjjjjbaxhsaxhzdndnavax0gHmbdnavTmbcbhOaehzavhAinawaDazydbcx2fgCcwfydbcetfgX8VebhQawaCclfydbcetfgL8VebhKawaCydbcetfgC8VebhYaXce87ebaLce87ebaCce87ebaOaKcs4aYcs4faQcs4ffhOazclfhzaAcufgAmbkaehzavhAinawaDazydbcx2fgCcwfydbcetfcFFi87ebawaCclfydbcetfcFFi87ebawaCydbcetfcFFi87ebazclfhzaAcufgAmbkcehzaqhsaOaq0mekalce86bbalcefcbavcufz:rjjjb8AxekaPaiBdxaPadBdwaPaeBdlavakaqci9Ug8Aaka8Aak6EaHEgK9RhEaxaK9Rh3aKcufh5aKceth8EaKcdtgCc98fh8FavcitgOaC9Rarfc98fhaascufhhavcufhgaraOfh8JJbbjZas:Y:vh8KcbazceakaxSEg8Lcdtg8M9Rh8NJFFuuhycuh8PcbhIcbh8RinaPclfa8RcdtfydbhQaPcb8Pd:y:G:cjbg8S83i9iaPcb8Pd:q:G:cjbgR83inaPcb8Pd1:G:cjbg8U83iUaPcb8Pdj:G:cjbg8V83i8WaPa8S83iyaPaR83iaaPa8U83iKaPa8V83izaQavcdtgYfh8WcbhXinabaQaXcdtgLfydbcK2fhAcbhzinaPc8WfazfgCaAazfgOIdbg8XaCIdbg8Ya8Xa8Y9DEUdbaCczfgCaOcxfIdbg8XaCIdbg8Ya8Xa8Y9EEUdbazclfgzcx9hmbkaba8WaXcu7cdtfydbcK2fhAcbhzaPIdUh8ZaPId9ih80aPId80h81aPId9ehBaPId8Wh83aPIdnhUinaPczfazfgCaAazfgOIdbg8XaCIdbg8Ya8Xa8Y9DEUdbaCczfgCaOcxfIdbg8XaCIdbg8Ya8Xa8Y9EEUdbazclfgzcx9hmbkaraLfgza80a8Z:tg8XaUa83:tg8YNa8YaBa81:tg8ZNa8Za8XNMMUdbazaYfaPIdyaPIdK:tg8XaPIdaaPIdz:tg8YNa8YaPId8KaPIdC:tg8ZNa8Za8XNMMUdbaXcefgXav9hmbkcbh85dnaHmbcbhAaQhza8JhCavhXinawaDazydbcx2fgOcwfydbcetfgL8Vebh8WawaOclfydbcetfg858Vebh86awaOydbcetfgO8Vebh87aLce87eba85ce87ebaOce87ebaCaAa86cs4a87cs4fa8Wcs4ffgABdbazclfhzaCclfhCaXcufgXmbkavhCinawaDaQydbcx2fgzcwfydbcetfcFFi87ebawazclfydbcetfcFFi87ebawazydbcetfcFFi87ebaQclfhQaCcufgCmbka8Jh85kdndndndndndndndndndndnava8E6mba8Eax9nmeavavaK9UgzaK29Raza320mda5aE9pmqa85Th87ceh8WaEhQxwka5ag9pmDa8Eax9nmixokavaK6mea5aE9pmwcehQaEhXa85Tmixlka5ag6mlxrka5ag9pmokcbhQaghXa85mekJFFuuh8XcbhLa5hzindnazcefgCaK6mbaQavaC9RgOaK6GmbarazcdtfIdbg8YaC:YNaravaz9RcdtfaYfc94fIdbg8ZaO:YNMg80a8X9Embdndna8KaOahf:YNg81:lJbbb9p9DTmba81:OhAxekcjjjj94hAka8ZasaA2aO9R:YNh8Zdndna8Kazasf:YNg81:lJbbb9p9DTmba81:OhOxekcjjjj94hOkamasaO2aC9R:Ya8YNa8ZMNa80Mg8Ya8Xa8Ya8X9DgOEh8XaCaLaOEhLkaza8LfgzaX6mbxlkkJFFuuh8XcbhLaEhCaahAa8FhOaKhzindnazaK6mbaQaCaK6GmbaraOfIdbg8Yaz:YNaAIdbg8ZaC:YNMg80a8X9Embdndna8Ka85aOfydbgYahf:YNg81:lJbbb9p9DTmba81:Oh8Wxekcjjjj94h8Wkamasa8W2aY9R:Yg81a8YNa8Za81NMNa80Mg8Ya8Xa8Ya8X9DgYEh8XazaLaYEhLkaCa8L9RhCaAa8NfhAaOa8MfhOaza8LfgzcufaX6mbxikka85Th87cbh8WaghQkJFFuuh8XcbhLaEhCaahAa8FhOaKhzindnazazaK9UgXaK29RaXa320mbdna8WTmbaCaCaK9UgXaK29RaXa320mekaraOfIdbg8Yaz:YNaAIdbg8ZaC:YNMg80a8X9EmbazhXaChYdna87mba85aOfydbgXhYkdndna8KaYahf:YNg81:lJbbb9p9DTmba81:Oh86xekcjjjj94h86ka8Zasa862aY9R:YNh8Zdndna8KaXahf:YNg81:lJbbb9p9DTmba81:OhYxekcjjjj94hYkamasaY2aX9R:Ya8YNa8ZMNa80Mg8Ya8Xa8Ya8X9DgXEh8XazaLaXEhLkaCa8L9RhCaAa8NfhAaOa8MfhOaza8LfgzcufaQ6mbkkaLTmba8Xay9DTmba8XhyaLhIa8Rh8Pka8Rcefg8Rci9hmbkdndnaoc8X9kmba8Pcb9omeka8Acufh85cbhYindndndnavaY9RaxaYaxfav0Eg8WTmbcbhAaeaYcdtfgzhCa8WhXinawaDaCydbcx2fgOcwfydbcetfgQ8VebhbawaOclfydbcetfgL8VebhrawaOydbcetfgO8VebhKaQce87ebaLce87ebaOce87ebaAarcs4aKcs4fabcs4ffhAaCclfhCaXcufgXmbka8WhOinawaDazydbcx2fgCcwfydbcetfcFFi87ebawaCclfydbcetfcFFi87ebawaCydbcetfcFFi87ebazclfhzaOcufgOmbkaAaq0mekalaYfgzce86bbazcefcba8Wcufz:rjjjb8AxekalaYfgzce86bbazcefcba85z:rjjjb8Aa8Ah8Wka8WaYfgYav9pmdxbkkaravcdtg8WfhLdnaITmbaPclfa8PcdtfydbhzaIhCinaLazydbfcb86bbazclfhzaCcufgCmbkkdnavaI9nmbaPclfa8PcdtfydbaIcdtfhzavaI9RhCinaLazydbfce86bbazclfhzaCcufgCmbkkcbhYindnaYa8PSmbcbhzaraPclfaYcdtfydbgKa8Wz:qjjjbhCavhXaIhOinaKaOazaLaCydbgQfRbbgAEcdtfaQBdbaCclfhCaOaAfhOazaA9RcefhzaXcufgXmbkkaYcefgYci9hmbkabaeadaialaIaocefgCarawaDaqakaxamz:hjjjbabaeaIcdtgzfadazfaiazfalaIfavaI9RaCarawaDaqakaxamz:hjjjbkaPc;qbf8Kjjjjbk:Seeru8Jjjjjbc:q;ab9Rgo8Kjjjjbaoc:q8WfcFecjzz:rjjjb8AcbhrdnadTmbaehwadhDinaoarcdtfawydbgqBdbaoc:q8WfaqcFiGcdtfgkydbhxakaqBdbawclfhwaraxaq9hfhraDcufgDmbkkabaeadaoaraiavz:jjjjbaoc:q;abf8Kjjjjbk;Sqloud99euD998Jjjjjbc:W;ab9Rgr8KjjjjbdndnadTmbaocd4hwcbhDcbhqindnavaeclfydbaw2cdtfgkIdbavaeydbaw2cdtfgxIdbgm:tgPavaecwfydbaw2cdtfgsIdlaxIdlgz:tgHNakIdlaz:tgOasIdbam:tgAN:tgCaCNaOasIdwaxIdwgX:tgQNakIdwaX:tgOaHN:tgHaHNaOaANaPaQN:tgPaPNMMgOJbbbb9Bmbarc8WfaDcltfgkaCaO:rgO:vgCUdwakaPaO:vgPUdlakaHaO:vgHUdbakaCaXNaHamNazaPNMM:mUdxaDcefhDkaecxfheaqcifgqad6mbkab9cb83dyab9cb83daab9cb83dKab9cb83dzab9cb83dwab9cb83dbaDTmearcbBd8Sar9cb83iKar9cb83izarczfavalaoarc8Sfcbcraiz:kjjjbarIdKhQarIdChLarIdzhKar9cb83iwar9cb83ibararc8WfaDczarc8Sfcbcicbz:kjjjbJbbbbhmdnarIdwgzazNarIdbgHaHNarIdlgXaXNMMgCJbbbb9BmbJbbjZaC:r:vhmkazamNhCaXamNhXaHamNhHJbbjZhmarc8WfheaDhvinaecwfIdbaCNaeIdbaHNaXaeclfIdbNMMgzamazam9DEhmaeczfheavcufgvmbkabaQUdwabaLUdlabaKUdbabarId3UdxdndnamJ;n;m;m899FmbJbbbbhzarc8WfheinaecxfIdbaQaecwfIdbgPNaKaeIdbgONaLaeclfIdbgANMMMaCaPNaHaONaXaANMM:vgPazaPaz9EEhzaeczfheaDcufgDmbkabaCUd8KabaXUdaabaHUd3abaQaCazN:tUdKabaLaXazN:tUdCabaKaHazN:tUdzabJbbjZamamN:t:rgmUdydndnaCJbbj:;aCJbbj:;9GEgzJbbjZazJbbjZ9FEJbb;:9cNJbbbZJbbb:;aCJbbbb9GEMgz:lJbbb9p9DTmbaz:Ohexekcjjjj94hekabae86b8UdndnaXJbbj:;aXJbbj:;9GEgzJbbjZazJbbjZ9FEJbb;:9cNJbbbZJbbb:;aXJbbbb9GEMgz:lJbbb9p9DTmbaz:Ohvxekcjjjj94hvkabav86bRdndnaHJbbj:;aHJbbj:;9GEgzJbbjZazJbbjZ9FEJbb;:9cNJbbbZJbbb:;aHJbbbb9GEMgz:lJbbb9p9DTmbaz:Ohwxekcjjjj94hwkabaw86b8SdndnaecKtcK91:YJbb;:9c:vaC:t:lavcKtcK91:YJbb;:9c:vaX:t:lawcKtcK91:YJbb;:9c:vaH:t:lamMMMJbb;:9cNJbbjZMgm:lJbbb9p9DTmbam:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dyab9cb83daab9cb83dKab9cb83dzab9cb83dwab9cb83dbkarc:W;abf8Kjjjjbk;7woDuo99eue99euv998Jjjjjbcje9Rgw8Kjjjjbawc;abfcbaocdtgDz:rjjjb8Aawc;GbfcbaDz:rjjjb8AawcafhDawhqaohkinaqcFFF97BdbaDcFFF;7rBdbaqclfhqaDclfhDakcufgkmbkavcd4hxaicd4hmdnadTmbaocx2hPcbhsinashzdnarTmbarascdtfydbhzkaeazam2cdtfgDIdwhHaDIdlhOaDIdbhAalazax2cdtfIdbhCcbhDawcafhqawc;Gbfhvawhkawc;abfhiinaCaDc:O:G:cjbfIdbaHNaDc:G:G:cjbfIdbaANaDc:K:G:cjbfIdbaONMMgXMhQazhLdnaXaC:tgXaqIdbgK9DgYmbavydbhLkavaLBdbazhLdnaQakIdbg8A9EmbaiydbhLa8AhQkaiaLBdbakaQUdbaqaXaKaYEUdbaiclfhiakclfhkavclfhvaqclfhqaPaDcxfgD9hmbkascefgsad9hmbkkJbbbbhQcbhLawc;GbfhDawc;abfhqcbhkinalaqydbgvax2cdtfIdbalaDydbgiax2cdtfIdbaeavam2cdtfgvIdwaeaiam2cdtfgiIdw:tgCaCNavIdbaiIdb:tgCaCNavIdlaiIdl:tgCaCNMM:rMMgCaQaCaQ9EgvEhQakaLavEhLaqclfhqaDclfhDaoakcefgk9hmbkJbbbbhCdnaeawc;abfaLcdtgqfydbgkam2cdtfgDIdwaeawc;Gbfaqfydbgvam2cdtfgqIdwgH:tgXaXNaDIdbaqIdbgA:tg8Aa8ANaDIdlaqIdlgE:tgOaONMMgKJbbbb9ETmbaK:rgCalakax2cdtfIdbMalavax2cdtfIdb:taCaCM:vhCkaQJbbbZNhKaXaCNaHMhHaOaCNaEMhOa8AaCNaAMhAdnadTmbcbhqarhkinaqhDdnarTmbakydbhDkdnalaDax2cdtfIdbg3aeaDam2cdtfgDIdwaH:tgQaQNaDIdbaA:tgCaCNaDIdlaO:tgXaXNMMg5:rgEMg8EaK9ETmbJbbbbh8Adna5Jbbbb9ETmba8EaK:taEaEM:vh8Aka8AaQNaHMhHa8AaXNaOMhOa8AaCNaAMhAa3aKaEMMJbbbZNhKkakclfhkadaqcefgq9hmbkkabaKUdxabaHUdwabaOUdlabaAUdbawcjef8Kjjjjbk:reevu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwcbhDdnaiTmbarhiawhqinaiaeadRbbgkcdtfydbBdbaDakcefgkaDak0EhDaiclfhiadcefhdaqcufgqmbkkabarawaeaDalaoz:jjjjbarcj8Wf8Kjjjjbk:Eeeeu8Jjjjjbca9Rgo8Kjjjjbab9cb83dyab9cb83daab9cb83dKab9cb83dzab9cb83dwab9cb83dbdnadTmbaocbBd3ao9cb83iwao9cb83ibaoaeadaialaoc3falEavcbalEcrcbz:kjjjbabao8Pib83dbabao8Piw83dwkaocaf8Kjjjjbk::meQu8Jjjjjbcjz9Rgv8KjjjjbcbhoavcjPfcbaez:rjjjb8Aavcjxfcbaez:rjjjb8AdnaiTmbadhoaihrinavcjxfaoRbbfgwawRbbcef86bbavcjxfaocefRbbfgwawRbbcef86bbavcjxfaocdfRbbfgwawRbbcef86bbaocifhoarcufgrmbkcbhDcjehoadhqcehkindndnalTmbcbhxcuhmaqhrakhwcuhPinawcufamaoavcjPfarcefRbbgsfRbb9RcFeGgzci6aoavcjPfarRbbgHfRbb9RcFeGgOci6faoavcjPfarcdfRbbgAfRbb9RcFeGgCci6fgXcOtaOcFr7azaCf9RcwtVavcjxfaAfRbbgzavcjxfaHfRbbgHavcjxfasfRbbgsaHas6Egsazas6EcFe7VgsaP9kgzEhmaXcd6gHaxcefgOal9iVce9hmdasaPazEhPaxaOaHEhxarcifhrawai6hsawcefhwasmbxdkkcuhmaqhrakhwcuhxinawcufamaoavcjPfarcefRbbfRbb9RcFeGci6aoavcjPfarRbbfRbb9RcFeGci6faoavcjPfarcdfRbbfRbb9RcFeGci6fgPax9kgsEhmaPce0meaPaxasEhxarcifhrawai6hPawcefhwaPmbkkadamci2fgrcdfRbbhwarcefRbbhxarRbbhPadaDci2fgrcifaramaD9Rci2zNjjjb8AaPavcjPffaocefgo86bbaPavcjxffgmamRbbcuf86bbaxavcjPffao86bbaxavcjxffgmamRbbcuf86bbarcdfaw86bbarcefax86bbaraP86bbawavcjPffao86bbawavcjxffgrarRbbcuf86bbaqcifhqakcefhkaDcefgDai9hmbkcbhzdnalcb9mmbcbhsavcjPfcbaez:rjjjb8Aadcvfhlinadasci2fgxcefgDRbbhoaxcdfgqRbbhrdndnavcjPfaxRbbgmfRbbmbavcjPfarfRbbhwdndndnavcjPfaofRbbTmbawcFeGTmexikawcFeGmdascefgAai9pmdasc980mdascifhQcbhLarcFeGhCamcFeGhXalhwcbhKcbhYinawcufRbbhPawRbbhOcehkdndnawc9:fRbbgHao9hmbaPcFeGamSmekdnaPcFeGao9hmbaOcFeGamSmekaHamSaOcFeGaoSGhkkceh8AaYceGhYdndnaHar9hmbaPcFeGaoSmekdnaPcFeGar9hmbaOcFeGaoSmekaHaoSaOcFeGarSGh8AkakaYVhYaLaHcFeGgHaXSaPcFeGgPaCSGaPaXSaOcFeGgPaCSGVaHaCSaPaXSGVVhLa8AaKceGVhKdnaAcefgPai9pmbawcifhwaAaQ6hHaPhAaHmekkaYTmeaKmekarhwaohPaohHarhOamhrxdkdnaYTaLVceGTmbaYaKTVaLVceGmekamhwarhParhHamhOaohrxekaohwamhPamhHaohOkavcjPfarfce86bbavcjPfawfce86bbaxaH86bbaqar86bbaDaO86bbavcjPfaPfce86bbalcifhlascefgsai9hmbkkavcFeaecetz:rjjjbhwaici2hrindnawadRbbgmcetfgx8Uebgocu9kmbaxaz87ebawcjlfazcdtfabamcdtfydbBdbazhoazcefhzkadao86bbadcefhdarcufgrmbkazcdthokabavcjlfaoz:qjjjb8Aavcjzf8KjjjjbkObabaiaeadcbz:njjjbk9teiucbcbyd;8:G:cjbgeabcifc98GfgbBd;8:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;8:G:cjbgeabcrfc94GfgbBd;8:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd;8:G:cjbge9Rcifc98GaefgbBd;8:G:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akk:3qeludndnadch6mbadTmeabaead;8qbbabskabaeSmbdnaeadabfgi9Rcbadcet9R0mbadTmeabaead;8qbbabskaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocxGcxSmbaocd4cefciGhiaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglc3Gc3Smbavalcd4cefcrGgdcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfaeczfydbBdbaicCfaecCfydbBdbaicKfaecKfydbBdbaic3faec3fydbBdbaecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaicefaecefRbb86bbaicdfaecdfRbb86bbaicifaecifRbb86bbaiclfaeclfRbb86bbaicvfaecvfRbb86bbaicofaecofRbb86bbaicrfaecrfRbb86bbaicwfhiaecwfhealc94fglmbkkabkk:pedbcj:GdktFFuuFFuuFFuubbbbFFuFFFuFFFuFbbbbbbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;0:Gdkxebbbdbbbj:qbb",i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var e,o=WebAssembly.instantiate(u(c),{}).then(function(h){e=h.instance,e.exports.__wasm_call_ctors()});function u(h){for(var n=new Uint8Array(h.length),t=0;t<h.length;++t){var a=h.charCodeAt(t);n[t]=a>96?a-97:a>64?a-39:a+4}for(var d=0,t=0;t<h.length;++t)n[d++]=n[t]<60?i[n[t]]:(n[t]-60)*64+n[++t];return n.buffer.slice(0,d)}function b(h){if(!h)throw new Error("Assertion failed")}function g(h){return new Uint8Array(h.buffer,h.byteOffset,h.byteLength)}var p=48,A=16;function x(h,n){var t=h.meshlets[n*4+0],a=h.meshlets[n*4+1],d=h.meshlets[n*4+2],f=h.meshlets[n*4+3];return{vertices:h.vertices.subarray(t,t+d),triangles:h.triangles.subarray(a,a+f*3)}}function j(h,n,t,a,d,f,r,l,m,y){var I=e.exports.sbrk,H=e.exports.meshopt_buildMeshletsBound(n.length,f,r),E=I(H*A),N=I(n.length*4),z=I(n.length),K=I(n.byteLength),M=I(t.byteLength),D=new Uint8Array(e.exports.memory.buffer);D.set(g(n),K),D.set(g(t),M);var B=h(E,N,z,K,n.length,M,a,d,f,r,l,m,y);D=new Uint8Array(e.exports.memory.buffer);for(var U=D.subarray(E,E+B*A),C=new Uint32Array(U.buffer,U.byteOffset,U.byteLength/4).slice(),O=0;O<B;++O){var G=C[O*4+0],W=C[O*4+1],a=C[O*4+2],S=C[O*4+3];e.exports.meshopt_optimizeMeshlet(N+G*4,z+W,S,a)}var _=B?C[(B-1)*4+0]+C[(B-1)*4+2]:0,V=B?C[(B-1)*4+1]+C[(B-1)*4+3]*3:0,q={meshlets:C,vertices:new Uint32Array(D.buffer,N,_).slice(),triangles:new Uint8Array(D.buffer,z,V).slice(),meshletCount:B};return I(E-I(0)),q}function v(h){var n=new Float32Array(e.exports.memory.buffer,h,p/4);return{centerX:n[0],centerY:n[1],centerZ:n[2],radius:n[3],coneApexX:n[4],coneApexY:n[5],coneApexZ:n[6],coneAxisX:n[7],coneAxisY:n[8],coneAxisZ:n[9],coneCutoff:n[10]}}function F(h,n,t,a){var d=e.exports.sbrk,f=[],r=d(n.byteLength),l=d(h.vertices.byteLength),m=d(h.triangles.byteLength),y=d(p),I=new Uint8Array(e.exports.memory.buffer);I.set(g(n),r),I.set(g(h.vertices),l),I.set(g(h.triangles),m);for(var H=0;H<h.meshletCount;++H){var E=h.meshlets[H*4+0],N=h.meshlets[H*4+1],z=h.meshlets[H*4+3];e.exports.meshopt_computeMeshletBounds(y,l+E*4,m+N,z,r,t,a),f.push(v(y))}return d(r-d(0)),f}function k(h,n,t,a){var d=e.exports.sbrk,f=d(p),r=d(h.byteLength),l=d(n.byteLength),m=new Uint8Array(e.exports.memory.buffer);m.set(g(h),r),m.set(g(n),l),e.exports.meshopt_computeClusterBounds(f,r,h.length,l,t,a);var y=v(f);return d(f-d(0)),y}function s(h,n,t,a,d){var f=e.exports.sbrk,r=f(p),l=f(h.byteLength),m=a?f(a.byteLength):0,y=new Uint8Array(e.exports.memory.buffer);y.set(g(h),l),a&&y.set(g(a),m),e.exports.meshopt_computeSphereBounds(r,l,n,t,m,a?d:0);var I=v(r);return f(r-f(0)),I}return{ready:o,supported:!0,buildMeshlets:function(h,n,t,a,d,f){b(h.length%3==0),b(n instanceof Float32Array),b(n.length%t==0),b(t>=3),b(a>=3&&a<=256),b(d>=1&&d<=512),f=f||0;var r=h.BYTES_PER_ELEMENT==4?h:new Uint32Array(h);return j(e.exports.meshopt_buildMeshletsFlex,r,n,n.length/t,t*4,a,d,d,f,0)},buildMeshletsFlex:function(h,n,t,a,d,f,r,l){b(h.length%3==0),b(n instanceof Float32Array),b(n.length%t==0),b(t>=3),b(a>=3&&a<=256),b(d>=1&&f<=512),b(d<=f),r=r||0,l=l||0;var m=h.BYTES_PER_ELEMENT==4?h:new Uint32Array(h);return j(e.exports.meshopt_buildMeshletsFlex,m,n,n.length/t,t*4,a,d,f,r,l)},buildMeshletsSpatial:function(h,n,t,a,d,f,r){b(h.length%3==0),b(n instanceof Float32Array),b(n.length%t==0),b(t>=3),b(a>=3&&a<=256),b(d>=1&&f<=512),b(d<=f),r=r||0;var l=h.BYTES_PER_ELEMENT==4?h:new Uint32Array(h);return j(e.exports.meshopt_buildMeshletsSpatial,l,n,n.length/t,t*4,a,d,f,r)},extractMeshlet:function(h,n){return b(n>=0&&n<h.meshletCount),x(h,n)},computeClusterBounds:function(h,n,t){b(h.length%3==0),b(h.length/3<=512),b(n instanceof Float32Array),b(n.length%t==0),b(t>=3);var a=h.BYTES_PER_ELEMENT==4?h:new Uint32Array(h);return k(a,n,n.length/t,t*4)},computeMeshletBounds:function(h,n,t){return b(n instanceof Float32Array),b(n.length%t==0),b(t>=3),F(h,n,n.length/t,t*4)},computeSphereBounds:function(h,n,t,a){return b(h instanceof Float32Array),b(h.length%n==0),b(n>=3),b(!t||t instanceof Float32Array),b(!t||t.length%a==0),b(!t||a>=1),b(!t||h.length/n==t.length/a),a=a||0,s(h,h.length/n,n*4,t,a*4)}}})();var Ge=(function(){var c="b9H79Tebbbegv9Geueu9Geub9Gbb9Gkuuuuuuuuuuub9Giuuueuirodiblbelve9Weiiviebeoweuecj:Gdkrnlo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbK9TW79O9V9Wt9F9NW9UWV9HtW9u9H9U9NW9Ut7bel79IV9RbdDwebcekdlvq;m8Lodbk:wgvOuw99iuv99vu8Jjjjjbc;Wb9Rgk8Kjjjjbakcxfcbc;Kbz:djjjb8AakcualcdtgxalcFFFFi0Ecbyd:q:G:cjbHjjjjbbgmBdxakceBd2adci9UhPalcd4alfhscehzinazgHcethzaHas6mbkakcuaHcdtgzaHcFFFFi0Ecbyd:q:G:cjbHjjjjbbgsBdzakcdBd2ascFeazz:djjjbhOaDcd4hAarcd4hCavcd4hXdnalTmbaHcufhrcbhvindndnaOcbaiavaX2cdtfgHydlgDaDcjjjj94SEgscH4cbaoavaC2cdtfgzydlgQcs4aQcjjjj94SE7as7c:F:b:DD2cbaHydbgLaLcjjjj94SEgscH4cbazydbgKcs4aKcjjjj94SE7as7c;D;O:B8J27cbaHydwgYaYcjjjj94SEgHcH4cbazydwg8Acs4a8Acjjjj94SE7aH7c:3F;N8N27awavaA2cdtfgHydlgEaHydbg37cFFFFrGgHcm4aH7c:fjjK27arGgscdtfgHydbgzcuSmbaE::h5a3::h8Ea8A::h8FaQ::haaK::hhaY::hgaD::h8JaL::h8KcehDinaDhHdnaiazaX2cdtfgDIdba8K9CmbaDIdla8J9CmbaDIdwag9CmbaoazaC2cdtfgDIdbah9CmbaDIdlaa9CmbaDIdwa8F9CmbawazaA2cdtfgDIdba8E9CmbaDIdla59BmikaHcefhDaOasaHfarGgscdtfgHydbgzcu9hmbkkaHavBdbavhzkamavcdtfazBdbavcefgval9hmbkkaOcbydN:G:cjbH:bjjjbbakceBd2akcualcefgHcdtaHcFFFFi0Ecbyd:q:G:cjbHjjjjbbg8LBdzakcdBd2akcuadcdtadcFFFFi0EgYcbyd:q:G:cjbHjjjjbbg8MBdCakciBd2a8Lclfcbaxz:djjjbhzdnadTmbdnaeTmbaehHadhsinazamaHydbcdtfydbcdtfgDaDydbcefBdbaHclfhHascufgsmbxdkkamhHadhsinazaHydbcdtfgDaDydbcefBdbaHclfhHascufgsmbkkdnalTmbcbhsazhHalhDinaHydbhOaHasBdbaHclfhHaOasfhsaDcufgDmbkkdnadci6gQmbcbhscdhHaPhOindndnaeTmbamaeasfgvydbcdtfhDamavcwfydbcdtfhramavclfydbcdtfhvxekamasfgDcwfhraDclfhvkarydbhravydbhvazaDydbcdtfgDaDydbgDcefBdba8MaDcdtfaHc9:fBdbazavcdtfgDaDydbgDcefBdba8MaDcdtfaHcufBdbazarcdtfgDaDydbgDcefBdba8MaDcdtfaHBdbascxfhsaHclfhHaOcufgOmbkkcbhsa8LcbBdbakcuaPcltadcFFFFd0Ecbyd:q:G:cjbHjjjjbbg8NBdKakclBd2dnaQmbaehza8NhHaPhvindndnaeTmbazcwfydbhDazclfydbhOazydbhrxekascdfhDascefhOashrkJbbbbh8KJbbbbJbbbbJbbbbJbbbbJbbjZJbbj:;awaOaA2cdtfgQIdbawaraA2cdtfgLIdbgh:tawaDaA2cdtfgKIdlaLIdlgg:tg8JNaQIdlag:tggaKIdbah:tN:tghJbbbb9EEahJbbbb9BEg8EaiaraX2cdtfgrIdwghaiaOaX2cdtfgOIdwg59BEa8EarIdlgaaOIdlgy9BEa8EarIdbg8FaOIdbg8P9BEg8EahaiaDaX2cdtfgDIdwgI9BEa8EaaaDIdlg8R9BEa8Ea8FaDIdbg8S9BEg8Ea5aI9BEa8Eaya8R9BEa8Ea8Pa8S9BEh8Edna8Ja5ah:tNagaIah:tN:tghahNa8Ja8Pa8F:tNaga8Sa8F:tN:tg8Fa8FNa8Jayaa:tNaga8Raa:tN:tg8Ja8JNMMggJbbbb9Bmba8Eag:r:vh8KkaHcxfa8EUdbaHcwfaha8KNUdbaHclfa8Ja8KNUdbaHa8Fa8KNUdbazcxfhzaHczfhHascifhsavcufgvmbkkcbhHakaYcbyd:q:G:cjbHjjjjbbgDBd3akcvBd2dnadTmbaDhzinazaHBdbazclfhzadaHcefgH9hmbkkakcuaPcdtadcFFFF970Ecbyd:q:G:cjbHjjjjbbgvBdaakcoBd2akaPcbyd:q:G:cjbHjjjjbbg8ABd8KakcrBd2dnadci6mba8NcxfhzavhscbhHinasaHBdba8AaHfcdcbazIdbg8KJbbbb9DEa8KJbbbb9EV86bbasclfhsazczfhzaPaHcefgH9hmbkkdnalTmbcbhRinaRcdthHdna8LaRcefgRcdtfydbgza8LaHfydbgHSmbazaH9RhLa8MaHcdtfhKcbh8UinaKa8Ucdtfg8VydbgHcd4g8Wci2gxaHciGcdtgzyd:e:G:cjbfhHaxazydj:G:cjbfhzdnaeTmbaeaHcdtfydbhHaeazcdtfydbhzkdna8Ucefg8UaL9pmbamaHcdtfydbhYamazcdtfydbh3a8Aa8WfhEava8Wcdtfh8Xa8UhwinaKawcdtfgQydbgHcd4gzci2gAaHciGcdtgHyd:e:G:cjbfhsaAaHydj:G:cjbfhHdnaeTmbaeascdtfydbhsaeaHcdtfydbhHkdndnamaHcdtfydbaYSmbamascdtfydba39hmeka8AazfRbbgHaERbbgsVciSmbdnaHasGmba8Whsdna8Wa8XydbgHSmba8XhOinaOavaHgscdtfgrydbgHBdbarhOasaH9hmbkkdnazavazcdtfgOydbgHSmbinaOavaHgzcdtfgrydbgHBdbarhOazaH9hmbkkasazSmba8AazfgORbba8AasfgHRbbVciSmeavazcdtfasBdbaHaHRbbaORbbV86bbkdna8VydbciGaxfgzaDazcdtfgsydbgHSmbinasaDaHgzcdtfgOydbgHBdbaOhsazaH9hmbkkdnaQydbciGaAfgsaDascdtfgOydbgHSmbinaOaDaHgscdtfgrydbgHBdbarhOasaH9hmbkkazasSmbaDascdtfazBdbkawcefgwaL9hmbkka8UaL9hmbkkaRal9hmbkkdnadTmbcbhrinarhzdnaraDarcdtfgwydbgHSmbawhsinasaDaHgzcdtfgOydbgHBdbaOhsazaH9hmbkkawazBdbarcefgrad9hmbkcbh8Vabcbadcltz:djjjbhKdnadci6mbaqceGhEaDhYaeh3cbh8Windna8Na8WcltfgsIdxJbbbb9Bmbama8Wcx2gHfhxaeaHfhLcbhza8VhwinaKaYazfydbcltfhHdndnaeTmbamaLazc:e:G:cjbfydbcdtfydbcdtfhAamaLazcj:G:cjbfydbcdtfydbcdtfhra3azfydbhOxekaxazc:e:G:cjbfydbcdtfhAaxazcj:G:cjbfydbcdtfhrawhOkaHasIdbggaoamaOcdtfydbgQaC2cdtfgOIdbg8KasIdwg8FaOIdwg8JNaga8KNasIdlg8EaOIdlggNMMghN:tgaJbbbbJbbjZa8Fa8JahN:tg8Fa8FNaaaaNa8EagahN:tghahNMMga:r:vaaJbbbb9BEJ;As6nJbbjZaiarydbaX2cdtfgOIdwaiaQaX2cdtfgrIdwg5:tgaa8Jaaa8JNaOIdbarIdbgy:tg8Pa8KNagaOIdlarIdlgI:tg8RNMMgaN:tg8EaiaAydbaX2cdtfgOIdwa5:tg5a8Ja5a8JNaOIdbay:tg8Sa8KNagaOIdlaI:tgINMMg5N:tg8JNa8Pa8KaaN:tgya8Sa8Ka5N:tg8KNa8RagaaN:tgaaIaga5N:tggNMMJbbbbJbbjZa8Ea8ENayayNaaaaNMMa8Ja8JNa8Ka8KNagagNMMNg8K:rg8J:va8KJbbbb9BENgg:lg8Ka8KJbbjZ9EEg8Ka8KJ7;A9s89NJ:L9t9s::MNJ;ob;jZMJbbjZa8K:t:rNg8K:ta8KagJbbbb9DENg8Ka8Ja8KNaEEg8KNaHIdbMUdbaHaha8KNaHIdlMUdlaHa8Fa8KNaHIdwMUdwawcefhwazclfgzcx9hmbkkaYcxfhYa3cxfh3a8Vcifh8Va8Wcefg8WaP9hmbkcbhrinarhzdnaravarcdtfgsydbgHSmbinasavaHgzcdtfgOydbgHBdbaOhsazaH9hmbkkaKarc8W2fgHc3fJbbjZJbbj:;a8AazfRbbceGEg8KUdbaHc8Sfa8KUdbaHa8KUdxarcefgraP9hmbkkaqcdGhvcbhzaDhsaKhHindnazasydb9hmbJbbbbh8KdnaHcwfgOIdbg8Ja8JNaHIdbggagNaHclfgrIdbghahNMMgaJbbbb9BmbJbbjZaa:r:vh8KkaOa8Ja8KNUdbaraha8KNUdbaHaga8KNg8JUdbavmbaHJbbjZa8Ja8KJbbbb9BEUdbkasclfhsaHczfhHadazcefgz9hmbkcbhHaKhzindnaHaDydbgsSmbazaKascltfgsydwBdwazas8Pdb83dbkaDclfhDazczfhzadaHcefgH9hmbkkdnakyd2gzTmbazcdtakcxffc98fhHinaHydbcbydN:G:cjbH:bjjjbbaHc98fhHazcufgzmbkkakc;Wbf8Kjjjjbk9teiucbcbyd:y:G:cjbgeabcifc98GfgbBd:y:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:y:G:cjbgeabcrfc94GfgbBd:y:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikTeeucbabcbyd:y:G:cjbge9Rcifc98GaefgbBd:y:G:cjbdnabZbcztge9nmbabae9RcFFifcz4nb8Akkk8Rdbcj:Gdkzebbbdbbbbbbbebbbbc:q:Gdkxebbbdbbba:qbb",i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var e,o=WebAssembly.instantiate(u(c),{}).then(function(x){e=x.instance,e.exports.__wasm_call_ctors()});function u(x){for(var j=new Uint8Array(x.length),v=0;v<x.length;++v){var F=x.charCodeAt(v);j[v]=F>96?F-97:F>64?F-39:F+4}for(var k=0,v=0;v<x.length;++v)j[k++]=j[v]<60?i[j[v]]:(j[v]-60)*64+j[++v];return j.buffer.slice(0,k)}function b(x){if(!x)throw new Error("Assertion failed")}function g(x){return new Uint8Array(x.buffer,x.byteOffset,x.byteLength)}function p(x,j,v,F,k,s,h,n,t,a){var d=e.exports.sbrk,f=d(j*16),r=x?d(x.byteLength):0,l=d(v.byteLength),m=d(s.byteLength),y=d(n.byteLength),I=new Uint8Array(e.exports.memory.buffer);x&&I.set(g(x),r),I.set(g(v),l),I.set(g(s),m),I.set(g(n),y),e.exports.meshopt_generateTangents(f,r,j,l,F,k*4,m,h*4,y,t*4,a),I=new Uint8Array(e.exports.memory.buffer);var H=new Float32Array(I.buffer,f,j*4).slice();return d(f-d(0)),H}var A={Compatible:1,ZeroFallback:2};return{ready:o,supported:!0,generateTangents:function(x,j,v,F,k,s,h,n){b(x===null||x instanceof Uint32Array||x instanceof Int32Array||x instanceof Uint16Array||x instanceof Int16Array),b(x===null||x.length%3==0),b(j instanceof Float32Array),b(j.length%v==0),b(v>=3),b(F instanceof Float32Array),b(F.length%k==0),b(k>=3),b(s instanceof Float32Array),b(s.length%h==0),b(h>=2),b(j.length/v==F.length/k),b(j.length/v==s.length/h),b(x!==null||j.length/v%3==0);for(var t=0,a=0;a<(n?n.length:0);++a)b(n[a]in A),t|=A[n[a]];var d=j.length/v,f=x?x.length:d,r=x===null||x.BYTES_PER_ELEMENT==4?x:new Uint32Array(x);return p(r,f,j,d,v,F,k,s,h,t)}}})();var ma={X:0,Y:1,Z:2};ma.Y_UP_TO_Z_UP=T.fromRotationTranslation(ya.fromArray([1,0,0,0,0,1,0,-1,0]));ma.Z_UP_TO_Y_UP=T.fromRotationTranslation(ya.fromArray([1,0,0,0,0,-1,0,1,0]));ma.X_UP_TO_Z_UP=T.fromRotationTranslation(ya.fromArray([0,0,1,0,1,0,-1,0,0]));ma.Z_UP_TO_X_UP=T.fromRotationTranslation(ya.fromArray([0,0,-1,0,1,0,1,0,0]));ma.X_UP_TO_Y_UP=T.fromRotationTranslation(ya.fromArray([0,1,0,-1,0,0,0,0,1]));ma.Y_UP_TO_X_UP=T.fromRotationTranslation(ya.fromArray([0,-1,0,1,0,0,0,0,1]));ma.fromName=function(c){return J.typeOf.string("name",c),ma[c]};Object.freeze(ma);var Kb=ma;var Ja={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};Ja.getMorphTime=function(c){return c===Ja.SCENE3D?1:c===Ja.MORPHING?void 0:0};Object.freeze(Ja);var Ya=Ja;var Bb=$b(_b(),1);function ac(){return!0}function bc(c,i){i=i??"This object was destroyed, i.e., destroy() was called.";function e(){throw new Aa(i)}for(let o in c)typeof c[o]=="function"&&(c[o]=e);c.isDestroyed=ac}var Db=bc;function Rb(){if(!Z($._canTransferArrayBuffer)){let c=lb("transferTypedArrayTest");c.postMessage=c.webkitPostMessage??c.postMessage;let i=99,e=new Int8Array([i]);try{c.postMessage({array:e},[e.buffer])}catch{return $._canTransferArrayBuffer=!1,$._canTransferArrayBuffer}$._canTransferArrayBuffer=new Promise(o=>{c.onmessage=function(u){let b=u.data.array,g=Z(b)&&b[0]===i;o(g),c.terminate(),$._canTransferArrayBuffer=g}})}return $._canTransferArrayBuffer}var mb=new Fb;function ob(c){let i;try{i=new Blob([c],{type:"application/javascript"})}catch{let u=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,b=new u;b.append(c),i=b.getBlob("application/javascript")}return(window.URL||window.webkitURL).createObjectURL(i)}function lb(c){let i=new Bb.default(c),e=i.scheme().length!==0&&i.fragment().length===0,o=c.replace(/\.js$/,""),u={},b,g;if(hb(c))g=c;else if(!e){let p=Na(`${$._workerModulePrefix}/${o}.js`);hb(p)&&(g=p)}if(g){let p=`import "${g}";`;return b=ob(p),u.type="module",new Worker(b,u)}if(!e&&typeof CESIUM_WORKERS<"u"){let p=` + importScripts("${ob(CESIUM_WORKERS)}"); + CesiumWorkers["${o}"](); + `;return b=ob(p),new Worker(b,u)}if(b=c,e||(b=Na(`${$._workerModulePrefix+o}.js`)),!nb.supportsEsmWebWorkers())throw new Ba("This browser is not supported. Please update your browser to continue.");return u.type="module",new Worker(b,u)}async function cc(c,i){let e={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!nb.supportsWebAssembly()){if(!Z(i.fallbackModulePath))throw new Ba(`This browser does not support Web Assembly, and no backup module was provided for ${c._workerPath}`);return e.modulePath=Na(i.fallbackModulePath),e}e.wasmBinaryFile=Na(i.wasmBinaryFile);let o=await Mb.fetchArrayBuffer({url:e.wasmBinaryFile});return e.wasmBinary=o,e}function $(c,i){this._workerPath=c,this._maximumActiveTasks=i??Number.POSITIVE_INFINITY,this._activeTasks=0,this._nextID=0,this._webAssemblyPromise=void 0}var ec=(c,i,e,o)=>{let u=({data:b})=>{if(b.id===i){if(Z(b.error)){let g=b.error;g.name==="RuntimeError"?(g=new Ba(b.error.message),g.stack=b.error.stack):g.name==="DeveloperError"?(g=new Aa(b.error.message),g.stack=b.error.stack):g.name==="Error"&&(g=new Error(b.error.message),g.stack=b.error.stack),mb.raiseEvent(g),o(g)}else mb.raiseEvent(),e(b.result);c.removeEventListener("message",u)}};return u},dc=[];async function fc(c,i,e){let o=await Promise.resolve(Rb());Z(e)?o||(e.length=0):e=dc;let u=c._nextID++,b=new Promise((g,p)=>{c._worker.addEventListener("message",ec(c._worker,u,g,p))});return c._worker.postMessage({id:u,baseUrl:Na.getCesiumBaseUrl().url,parameters:i,canTransferArrayBuffer:o},e),b}async function hc(c,i,e){++c._activeTasks;try{let o=await fc(c,i,e);return--c._activeTasks,o}catch(o){throw--c._activeTasks,o}}$.prototype.scheduleTask=function(c,i){if(Z(this._worker)||(this._worker=lb(this._workerPath)),!(this._activeTasks>=this._maximumActiveTasks))return hc(this,c,i)};$.prototype.initWebAssemblyModule=async function(c){if(Z(this._webAssemblyPromise))return this._webAssemblyPromise;let i=async()=>{let e=this._worker=lb(this._workerPath),o=await cc(this,c),u=await Promise.resolve(Rb()),b,g=o.wasmBinary;Z(g)&&u&&(b=[g]);let p=new Promise((A,x)=>{e.onmessage=function({data:j}){Z(j)?A(j.result):x(new Ba("Could not configure wasm module"))}});return e.postMessage({canTransferArrayBuffer:u,parameters:{webAssemblyConfig:o}},b),p};return this._webAssemblyPromise=i(),this._webAssemblyPromise};$.prototype.isDestroyed=function(){return!1};$.prototype.destroy=function(){return Z(this._worker)&&this._worker.terminate(),Db(this)};$.taskCompletedEvent=mb;$._defaultWorkerModulePrefix="Workers/";$._workerModulePrefix=$._defaultWorkerModulePrefix;$._canTransferArrayBuffer=void 0;var Ob=$;var nc=3;function jb(c,i,e){J.defined("vertices",c),J.defined("indices",i),J.defined("encoding",e),this._vertices=c,this._indices=i,this._encoding=e,this._inverseTransform=new T,this._needsRebuild=!0,this._rootNode=new kb}var tc=new Ob("incrementallyBuildTerrainPicker");Object.defineProperties(jb.prototype,{needsRebuild:{get:function(){return this._needsRebuild},set:function(c){this._needsRebuild=c}}});function kb(){this.x=0,this.y=0,this.level=0,this.aabb=Cb(this.x,this.y,this.level),this.intersectingTriangles=new Uint32Array(0),this.children=[],this.buildingChildren=!1}kb.prototype.addChild=function(c){if(c<0||c>3)throw new Aa("TerrainPickerNode child index must be between 0 and 3, inclusive.");let i=new kb;i.x=this.x*2+(c&1),i.y=this.y*2+(c>>1&1),i.level=this.level+1,i.aabb=Cb(i.x,i.y,i.level),this.children[c]=i};var rc=new gb,Qa=[new w,new w,new w];jb.prototype.rayIntersect=function(c,i,e,o,u){this._needsRebuild&&gc(this,i);let b=this._inverseTransform,g=rc;g.origin=T.multiplyByPoint(b,c.origin,g.origin),g.direction=T.multiplyByPointAsVector(b,c.direction,g.direction);let p=[];return Tb(this._rootNode,g,p),sc(this,p,c,e,o,u)};function gc(c,i){T.inverse(i,c._inverseTransform),c._needsRebuild=!1;let e=c._indices.length/3,o=new Uint32Array(e);for(let u=0;u<e;++u)o[u]=u;c._rootNode.intersectingTriangles=o,c._rootNode.children.length=0}var ic=new w,oc=new w;function Cb(c,i,e){let o=1/Math.pow(2,e),u=w.fromElements(c*o-.5,i*o-.5,-.5,ic),b=w.fromElements((c+1)*o-.5,(i+1)*o-.5,.5,oc);return Ca.fromCorners(u,b)}function mc(c,i,e,o,u){w.pack(e[0],c,9*u),w.pack(e[1],c,9*u+3),w.pack(e[2],c,9*u+6),i[u]=o}var lc=new db;function Tb(c,i,e){let o=ib.rayAxisAlignedBoundingBox(i,c.aabb,lc);if(!Z(o))return;if(!c.children.length||c.buildingChildren){e.push({node:c,interval:new db(o.start,o.stop)});return}for(let b=0;b<c.children.length;b++)Tb(c.children[b],i,e)}function sc(c,i,e,o,u,b){let g=i.sort(function(A,x){return A.interval.start-x.interval.start}),p=Number.MAX_VALUE;for(let A=0;A<g.length;A++){let x=g[A],j=kc(c,e,x.node,o,u,b);if(p=Math.min(j,p),p!==Number.MAX_VALUE)break}if(p!==Number.MAX_VALUE)return gb.getPoint(e,p)}function kc(c,i,e,o,u,b){let g=Number.MAX_VALUE,p=c._encoding,A=c._indices,x=c._vertices,j=e.intersectingTriangles.length,F=!(e.level>=nc)&&!e.buildingChildren,k,s;F&&(k=new Float64Array(j*9),s=new Uint32Array(j));for(let h=0;h<j;h++){let n=e.intersectingTriangles[h],t=sb(p,u,b,i,x,A[3*n],Qa[0]),a=sb(p,u,b,i,x,A[3*n+1],Qa[1]),d=sb(p,u,b,i,x,A[3*n+2],Qa[2]),f=ib.rayTriangleParametric(i,t,a,d,o);Z(f)&&f<g&&f>=0&&(g=f),F&&mc(k,s,Qa,n,h)}if(F){for(let h=0;h<4;h++)e.addChild(h);uc(c._inverseTransform,e,s,k)}return g}var jc=new Y;function sb(c,i,e,o,u,b,g){let p=c.getExaggeratedPosition(u,b,g);if(i===Ya.SCENE3D)return p;let x=e.ellipsoid.cartesianToCartographic(p,jc);p=e.project(x,g),p=w.fromElements(p.z,p.x,p.y,g);let j=L.TWO_PI*e.ellipsoid.maximumRadius,v=Math.round((o.origin.y-p.y)/j);return p.y+=v*j,p}async function uc(c,i,e,o){i.buildingChildren=!0;let u=new Float64Array(16);T.pack(c,u,0);let b=new Float64Array(24);for(let j=0;j<4;j++)w.pack(i.children[j].aabb.minimum,b,j*6),w.pack(i.children[j].aabb.maximum,b,j*6+3);let g={aabbs:b,inverseTransform:u,triangleIndices:e,trianglePositions:o},p=[b.buffer,u.buffer,e.buffer,o.buffer],A=tc.scheduleTask(g,p);if(!Z(A)){i.buildingChildren=!1;return}(await A).intersectingTrianglesArrays.forEach((j,v)=>{Z(i.children[v])&&(i.children[v].intersectingTriangles=new Uint32Array(j))}),i.intersectingTriangles=new Uint32Array(0),i.buildingChildren=!1}var Jb=jb;function Ua(c,i,e,o,u,b,g,p,A,x,j,v,F,k,s,h,n){this.center=c,this.vertices=i,this.stride=j??6,this.indices=e,this.indexCountWithoutSkirts=o,this.vertexCountWithoutSkirts=u,this.minimumHeight=b,this.maximumHeight=g,this.rectangle=p,this.boundingSphere3D=A,this.occludeePointInScaledSpace=x,this.orientedBoundingBox=v,this.encoding=F,this.westIndicesSouthToNorth=k,this.southIndicesEastToWest=s,this.eastIndicesNorthToSouth=h,this.northIndicesWestToEast=n,this._transform=new T,this._lastPickSceneMode=void 0,this._terrainPicker=new Jb(i,e,F)}Ua.prototype.getTransform=function(c,i){return this._lastPickSceneMode===c?this._transform:(this._terrainPicker.needsRebuild=!0,!Z(c)||c===Ya.SCENE3D?wc(this,this._transform):Ec(this,i,this._transform))};function wc(c,i){let e=c.encoding.exaggeration,o=c.encoding.exaggerationRelativeHeight,u=Ta.getHeight(c.minimumHeight,e,o),b=Ta.getHeight(c.maximumHeight,e,o),g=ra.fromRectangle(c.rectangle,u,b,Ea.default,c.orientedBoundingBox);return ra.computeTransformation(g,i),T.getScale(i,ub).z<=L.EPSILON16&&(ub.z=1,T.setScale(i,ub,i)),i}var pc=new w,yc=new w,xc=new Y,Ic=new Y,vc=new w,Ac=new w,ub=new w;function Ec(c,i,e){let o=c.encoding.exaggeration,u=c.encoding.exaggerationRelativeHeight,b=Ta.getHeight(c.minimumHeight,o,u),g=Ta.getHeight(c.maximumHeight,o,u),p=i.project(Y.fromRadians(c.rectangle.west,c.rectangle.south,0,xc),pc),A=i.project(Y.fromRadians(c.rectangle.east,c.rectangle.north,0,Ic),yc),x=g-b,j=w.fromElements(A.x-p.x,A.y-p.y,x>0?x:1,vc),v=w.fromElements(p.x+j.x*.5,p.y+j.y*.5,b+j.z*.5,Ac);return T.fromTranslation(v,e),T.setScale(e,j,e),T.multiply(Oa.SWIZZLE_3D_TO_2D_MATRIX,e,e),e}Ua.prototype.pick=function(c,i,e,o){let u=this._terrainPicker.rayIntersect(c,this.getTransform(e,o),i,e,o);return this._lastPickSceneMode=e,u};Ua.prototype.updateExaggeration=function(c,i){this._terrainPicker._vertices=this.vertices,this._terrainPicker.needsRebuild=!0,this._lastPickSceneMode=void 0};Ua.prototype.updateSceneMode=function(c){this._terrainPicker.needsRebuild=!0,this._lastPickSceneMode=void 0};var wb=Ua;var pb={},Nc={positions:void 0,normals:void 0,indices:void 0,edgeIndicesWest:void 0,edgeIndicesSouth:void 0,edgeIndicesEast:void 0,edgeIndicesNorth:void 0},Hc=new Y,Fc=new w,Mc=new T,zc=new T,Kc=new T,Dc=new w,Bc=new w,Rc=new w,Oc=new w,Cc=new Y,Tc=new R,Ga=new w,Jc=new R,Uc=new w,Gc=new w,Za=function(c,i){return c-i};pb.createMesh=async function(c){c=c??fb.EMPTY_OBJECT;let{exaggeration:i=1,exaggerationRelativeHeight:e=0,hasVertexNormals:o,hasWebMercatorT:u,gltf:b,minimumHeight:g,maximumHeight:p,skirtHeight:A}=c;J.typeOf.object("options.ellipsoid",c.ellipsoid),J.typeOf.object("options.rectangle",c.rectangle),J.typeOf.bool("options.hasVertexNormals",o),J.typeOf.bool("options.hasWebMercatorT",u),J.typeOf.object("options.gltf",b),J.typeOf.number("options.minimumHeight",g),J.typeOf.number("options.maximumHeight",p),J.typeOf.object("options.boundingSphere",c.boundingSphere),J.typeOf.object("options.orientedBoundingBox",c.orientedBoundingBox),J.typeOf.object("options.horizonOcclusionPoint",c.horizonOcclusionPoint),J.typeOf.number("options.skirtHeight",A);let j=i!==1,v=pa.clone(c.boundingSphere,new pa),F=ra.clone(c.orientedBoundingBox,new ra),k=w.clone(c.horizonOcclusionPoint,new w),s=Ea.clone(c.ellipsoid,new Ea),h=xa.clone(c.rectangle,new xa);await(b.extensionsRequired!==void 0&&b.extensionsRequired.indexOf("EXT_meshopt_compression")!==-1?Ma.ready:Promise.resolve(void 0));let a=h.west,d=h.south,f=h.north,r=h.width,l=h.height,m=xa.center(h,Hc);m.height=.5*(g+p);let y=Y.toCartesian(m,s,Fc),I=Oa.eastNorthUpToFixedFrame(y,s,Mc),H=T.inverseTransformation(I,zc),E=T.unpack(b.nodes[0].matrix,0,Kc);E=T.multiply(Kb.Y_UP_TO_Z_UP,E,E);let N=pe(b,o,Nc),z=Fa.getSkirtVertexCount(N.edgeIndicesWest,N.edgeIndicesSouth,N.edgeIndicesEast,N.edgeIndicesNorth),K=N.positions,M=N.normals,D=N.indices,B=K.length/3,U=B+z,C=D.length,O=Fa.getSkirtIndexCountWithFilledCorners(z),G=U<=65535?Uint16Array:Uint32Array,W=new G(C+O);W.set(D);let S=new G(N.edgeIndicesWest),_=new G(N.edgeIndicesSouth),V=new G(N.edgeIndicesEast),q=new G(N.edgeIndicesNorth),P=new G(S).sort(),aa=new G(_).sort(),X=new G(V).sort(),fa=new G(q).sort(),ba=Ia.geodeticLatitudeToMercatorAngle(d),ga=1/(Ia.geodeticLatitudeToMercatorAngle(f)-ba),ia=w.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Dc),ha=w.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Bc),la=new Ha(v.center,void 0,void 0,void 0,void 0,o,u,j,i,e),oa=la.stride,ca=new Float32Array(U*oa),ea=0;for(let Q=0;Q<B;Q++){let va=w.unpack(K,Q*3,Rc),sa=T.multiplyByPoint(E,va,Oc),Pa=Y.fromCartesian(sa,s,Cc),{longitude:_a,latitude:za,height:ka}=Pa,ja=(_a-a)/r,ua=(za-d)/l;ja=L.clamp(ja,0,1),ua=L.clamp(ua,0,1),Ra(P,Q,Za)>=0?ja=0:Ra(X,Q,Za)>=0&&(ja=1),Ra(aa,Q,Za)>=0?ua=0:Ra(fa,Q,Za)>=0&&(ua=1);let qa=R.fromElements(ja,ua,Tc),Ka;if(o){let na=w.unpack(M,Q*3,Ga);na=T.multiplyByPointAsVector(E,na,Ga),na=w.normalize(na,Ga),Ka=rb.octEncode(na,Jc)}let wa;u&&(wa=(Ia.geodeticLatitudeToMercatorAngle(za)-ba)*ga);let Wa;j&&(Wa=s.geodeticSurfaceNormal(sa,Uc)),ea=la.encode(ca,ea,sa,qa,ka,Ka,wa,Wa);let Sa=T.multiplyByPoint(H,sa,Gc);ia=w.minimumByComponent(Sa,ia,ia),ha=w.maximumByComponent(Sa,ha,ha)}let da=new wb(w.clone(la.center,new w),ca,W,C,B,g,p,h,pa.clone(v,new pa),w.clone(k,new w),oa,ra.clone(F,new ra),la,S,_,V,q);return Xb(da,h,s,ia,ha,I,H,A),Promise.resolve(da)};var Pc=new R,qc=new R,Wc=new Array(6),Sc=new R,Xc=new R,Vc=new R,Lc=new w,Yc=new w,Qc=new w,Zc=new Y,$c=new w,_c=new Y,ae=new Y,Ub=new w,be=new w,ce=new w,ee=new w,de=new w,fe=new w,he=new w,ne=new w,te=new T,re=new T,Gb=new R,ge=new R,ie=new w,oe=new pa,me=new ra,le=new Ca,Pb=new w,qb=new R,se=new R,Wb=new w,ke=new w;function je(c){let i=c.meshes[0].primitives[0],e=c.accessors[i.attributes.POSITION],o=c.bufferViews[e.bufferView],u=e.count,b=o.extensions?o.extensions.EXT_meshopt_compression:void 0;if(b===void 0){let k=c.buffers[o.buffer].extras._pipeline.source;return new Float32Array(k.buffer,k.byteOffset+(o.byteOffset??0)+(e.byteOffset??0),u*3)}let g=c.buffers[b.buffer].extras._pipeline.source,p=new Uint8Array(g.buffer,g.byteOffset+(b.byteOffset??0)+(e.byteOffset??0),b.byteLength),A=b.byteStride,x=A===4?Uint8Array:Uint16Array,j=new x(u*4);Ma.decodeVertexBuffer(new Uint8Array(j.buffer),u,A,p);let v=(1<<j.BYTES_PER_ELEMENT*8)-1,F=new Float32Array(u*3);for(let k=0;k<u;k++)F[k*3+0]=j[k*4+0]/v,F[k*3+1]=j[k*4+1]/v,F[k*3+2]=j[k*4+2]/v;return F}function ue(c){let i=c.meshes[0].primitives[0],e=c.accessors[i.attributes.NORMAL],o=c.bufferViews[e.bufferView],u=e.count,b=o.extensions?o.extensions.EXT_meshopt_compression:void 0;if(b===void 0){let v=c.buffers[o.buffer].extras._pipeline.source;return new Float32Array(v.buffer,v.byteOffset+(o.byteOffset??0)+(e.byteOffset??0),u*3)}let g=c.buffers[b.buffer].extras._pipeline.source,p=new Uint8Array(g.buffer,g.byteOffset+(b.byteOffset??0)+(e.byteOffset??0),b.byteLength),A=b.byteStride,x=new Int8Array(u*A);Ma.decodeVertexBuffer(new Uint8Array(x.buffer),u,A,p);let j=new Float32Array(u*3);for(let v=0;v<u;v++){let F=Math.max(x[v*4+0]/127,-1),k=Math.max(x[v*4+1]/127,-1),s=1-(Math.abs(F)+Math.abs(k));if(s<0){let n=F,t=k;F=(1-Math.abs(t))*L.signNotZero(n),k=(1-Math.abs(n))*L.signNotZero(t)}let h=Ga;h.x=F,h.y=k,h.z=s,h=w.normalize(h,Ga),j[v*3+0]=h.x,j[v*3+1]=h.y,j[v*3+2]=h.z}return j}function we(c){let i=c.meshes[0].primitives[0],e=c.accessors[i.indices],o=c.bufferViews[e.bufferView],u=e.count,b=e.componentType===tb.UNSIGNED_SHORT?Uint16Array:Uint32Array,g=o.extensions?o.extensions.EXT_meshopt_compression:void 0;if(g===void 0){let j=c.buffers[o.buffer].extras._pipeline.source;return new b(j.buffer,j.byteOffset+(o.byteOffset??0)+(e.byteOffset??0),u)}let p=c.buffers[g.buffer].extras._pipeline.source,A=new Uint8Array(p.buffer,p.byteOffset+(g.byteOffset??0)+(e.byteOffset??0),g.byteLength),x=new b(u);return Ma.decodeIndexBuffer(new Uint8Array(x.buffer),u,g.byteStride,A),x}function $a(c,i){let e=c.meshes[0].primitives[0],o=c.accessors[e.extensions.CESIUM_tile_edges[i]],u=c.bufferViews[o.bufferView],b=o.count,g=o.componentType===tb.UNSIGNED_SHORT?Uint16Array:Uint32Array,p=u.extensions?u.extensions.EXT_meshopt_compression:void 0;if(p===void 0){let F=c.buffers[u.buffer].extras._pipeline.source;return new g(F.buffer,F.byteOffset+(u.byteOffset??0)+(o.byteOffset??0),b)}let A=c.buffers[p.buffer].extras._pipeline.source,x=new Uint8Array(A.buffer,A.byteOffset+(p.byteOffset??0)+(o.byteOffset??0),p.byteLength),j=new g(b),v=p.byteStride;return Ma.decodeIndexSequence(new Uint8Array(j.buffer),b,v,x),j}function pe(c,i,e){return e.positions=je(c),e.normals=i?ue(c):void 0,e.indices=we(c),e.edgeIndicesWest=$a(c,"left"),e.edgeIndicesSouth=$a(c,"bottom"),e.edgeIndicesEast=$a(c,"right"),e.edgeIndicesNorth=$a(c,"top"),e}pb.upsampleMesh=function(c){c=c??fb.EMPTY_OBJECT;let{isEastChild:i,isNorthChild:e,parentMinimumHeight:o,parentMaximumHeight:u,skirtHeight:b}=c;J.typeOf.bool("options.isEastChild",i),J.typeOf.bool("options.isNorthChild",e),J.typeOf.object("options.parentVertices",c.parentVertices),J.typeOf.object("options.parentIndices",c.parentIndices),J.typeOf.number("options.parentVertexCountWithoutSkirts",c.parentVertexCountWithoutSkirts),J.typeOf.number("options.parentIndexCountWithoutSkirts",c.parentIndexCountWithoutSkirts),J.typeOf.number("options.parentMinimumHeight",o),J.typeOf.number("options.parentMaximumHeight",u),J.typeOf.object("options.parentEncoding",c.parentEncoding),J.typeOf.object("options.rectangle",c.rectangle),J.typeOf.number("options.skirtHeight",b),J.typeOf.object("options.ellipsoid",c.ellipsoid);let g=c.parentIndexCountWithoutSkirts,p=c.parentIndices,A=c.parentVertexCountWithoutSkirts,x=c.parentVertices,j=Ha.clone(c.parentEncoding,new Ha),v=j.hasVertexNormals,F=j.hasWebMercatorT,k=j.exaggeration,s=j.exaggerationRelativeHeight,n=k!==1,t=xa.clone(c.rectangle,new xa),a=Ea.clone(c.ellipsoid),d=[],f=[],r=[],l=[],m=[],y=[],I=[],H=[];De(i,e,g,p,A,x,j,l,m,y,I,H,d,r,f);let E=xa.center(t,Zc);E.height=.5*(o+u);let N=Y.toCartesian(E,a,$c),z=d.length,K=new Ha(N,void 0,void 0,void 0,void 0,v,F,n,k,s),M=K.stride,D=Fa.getSkirtVertexCount(m,y,I,H),B=z+D,U=l.length,C=Fa.getSkirtIndexCountWithFilledCorners(D),O=U+C,G=B<=65535?Uint16Array:Uint32Array,W=new G(O);W.set(l);let S=new G(m),_=new G(y),V=new G(I),q=new G(H),P=new Float32Array(B*M),aa=0,X=Oa.eastNorthUpToFixedFrame(N,a,te),fa=T.inverseTransformation(X,re),ba=t.west,ta=t.east,ga=t.south,ia=t.north,ha=Ia.geodeticLatitudeToMercatorAngle(ga),oa=1/(Ia.geodeticLatitudeToMercatorAngle(ia)-ha),ca=Number.POSITIVE_INFINITY,ea=Number.NEGATIVE_INFINITY,da=w.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,he),Q=w.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,ne);for(let ka=0;ka<z;ka++){let ja=d[ka],ua=p[ja*3+0],qa=p[ja*3+1],Ka=p[ja*3+2],wa=ge;wa.x=f[ka*2+0],wa.y=f[ka*2+1];let Wa=wa.x,Sa=wa.y,na=r[ka*2+0],Da=r[ka*2+1],Xa=1-na-Da,Vb=j.decodeHeight(x,ua),Lb=j.decodeHeight(x,qa),Yb=j.decodeHeight(x,Ka),Va=Vb*na+Lb*Da+Yb*Xa;ca=Math.min(Va,ca),ea=Math.max(Va,ea);let Qb=L.lerp(ba,ta,Wa),vb=L.lerp(ga,ia,Sa),Zb=Y.fromRadians(Qb,vb,Va,ae),ab=Y.toCartesian(Zb,a,be),Ab=T.multiplyByPoint(fa,ab,ee);da=w.minimumByComponent(Ab,da,da),Q=w.maximumByComponent(Ab,Q,Q);let Eb;if(v){let La=j.decodeNormal(x,ua,Lc),bb=j.decodeNormal(x,qa,Yc),cb=j.decodeNormal(x,Ka,Qc),eb=w.fromElements(La.x*na+bb.x*Da+cb.x*Xa,La.y*na+bb.y*Da+cb.y*Xa,La.z*na+bb.z*Da+cb.z*Xa,Pb);eb=w.normalize(eb,Pb),Eb=rb.octEncode(eb,se)}let Nb;F&&(Nb=(Ia.geodeticLatitudeToMercatorAngle(vb)-ha)*oa);let Hb;n&&(Hb=a.geodeticSurfaceNormal(ab,ke)),aa=K.encode(P,aa,ab,wa,Va,Eb,Nb,Hb)}let va=ra.fromRectangle(t,ca,ea,a,me),sa=pa.fromVertices(P,K.center,M,oe),_a=new zb(a).computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid(K.center,P,M,K.center,ca,ie),za=new wb(w.clone(K.center,new w),P,W,U,z,ca,ea,t,pa.clone(sa),w.clone(_a),M,ra.clone(va),K,S,_,V,q);return Xb(za,t,a,da,Q,X,fa,b),za};function Xb(c,i,e,o,u,b,g,p){let{encoding:A}=c,x=A.stride,j=c.vertices,{hasVertexNormals:v,hasWebMercatorT:F,exaggeration:k,exaggerationRelativeHeight:s}=A,n=k!==1,t=c.vertexCountWithoutSkirts,a=t*x,d=j.length/x,f=d-t,r=c.indices,l=c.indexCountWithoutSkirts,m=c.westIndicesSouthToNorth,y=c.southIndicesEastToWest,I=c.eastIndicesNorthToSouth,H=c.northIndicesWestToEast;Fa.addSkirtIndicesWithFilledCorners(m,y,I,H,t,r,l);let E=0,N=E+m.length,z=N+y.length,K=z+I.length,M=[m,y,I,H],D=[E,N,z,K],B=[-1,0,1,0],U=[0,-1,0,1],C=w.clone(o,de),O=w.clone(u,fe),G=c.maximumHeight,W=c.minimumHeight-p;for(let V=0;V<f;V++){let q=0;for(q=0;q<3&&!(V<D[q+1]);q++);let P=M[q][V-D[q]],aa=A.decodeTextureCoordinates(j,P,Gb),X=1e-4,fa=aa.x+B[q]*X,ba=aa.y+U[q]*X,ta=L.lerp(i.west,i.east,fa),ga=L.clamp(L.lerp(i.south,i.north,ba),-L.PI_OVER_TWO,+L.PI_OVER_TWO),ha=A.decodeHeight(j,P)-p,la=Y.fromRadians(ta,ga,ha,_c),oa=Y.toCartesian(la,e,Ub),ca;v&&(ca=A.getOctEncodedNormal(j,P,qb));let ea;F&&(ea=A.decodeWebMercatorT(j,P));let da;n&&(da=e.geodeticSurfaceNormal(oa,Wb)),a=A.encode(j,a,oa,aa,ha,ca,ea,da);let Q=T.multiplyByPoint(g,oa,ce);w.minimumByComponent(Q,C,C),w.maximumByComponent(Q,O,O)}let S=Ca.fromCorners(C,O,le),_=new Ha(A.center,S,W,G,b,A.hasVertexNormals,A.hasWebMercatorT,n,k,s);if(A.quantization!==_.quantization){let V=_,q=V.stride,P=new Float32Array(d*q),aa=0;for(let X=0;X<d;X++)aa=V.encode(P,aa,A.decodePosition(j,X,Ub),A.decodeTextureCoordinates(j,X,Gb),A.decodeHeight(j,X),A.hasVertexNormals?A.getOctEncodedNormal(j,X,qb):void 0,A.hasWebMercatorT?A.decodeWebMercatorT(j,X):void 0,A.hasGeodeticSurfaceNormals?A.decodeGeodeticSurfaceNormal(j,X,Wb):void 0);c.vertices=P,c.stride=q,c.encoding=V}return c}var yb=0,ye=1,xb=2,Ib=3,xe=4,Ie=new w,ve=[new w,new w,new w,new w,new w,new w],Ae=[new R,new R,new R,new R,new R,new R],Ee=[new w,new w,new w,new w,new w,new w],Ne=[new R,new R,new R,new R,new R,new R];function Sb(c,i,e,o){switch(e){case yb:return L.sign(o.x-c.x);case xb:return L.sign(i.x-o.x);case Ib:return L.sign(o.y-c.y);default:return L.sign(i.y-o.y)}}function He(c,i,e,o,u,b){let g,p,A;switch(e){case yb:g=(c.x-o.x)/(u.x-o.x),p=c.x,A=o.y+(u.y-o.y)*g;break;case xb:g=(i.x-o.x)/(u.x-o.x),p=i.x,A=o.y+(u.y-o.y)*g;break;case Ib:g=(c.y-o.y)/(u.y-o.y),p=o.x+(u.x-o.x)*g,A=c.y;break;default:g=(i.y-o.y)/(u.y-o.y),p=o.x+(u.x-o.x)*g,A=i.y;break}return w.fromElements(p,A,g,b)}var Fe={length:0,coordinates:[new R,new R,new R,new R,new R,new R],barycentricCoordinates:[new w,new w,new w,new w,new w,new w]};function Me(c,i,e,o,u,b,g,p){let A=0,x=Ae,j=ve,v=3,F=Ne;R.clone(u,F[0]),R.clone(b,F[1]),R.clone(g,F[2]);let k=Ee;w.fromElements(1,0,0,k[0]),w.fromElements(0,1,0,k[1]),w.fromElements(0,0,1,k[2]);for(let s=0;s<i;s++){let h=(c+s)%xe,n=x,t=j;x=F,j=k,A=v,F=n,k=t,v=0;let a=A-1,d=x[a],f=j[a],r=Sb(e,o,h,d);for(let l=0;l<A;l++){let m=x[l],y=j[l],I=Sb(e,o,h,m);if(r*I===-1){let H=He(e,o,h,d,m,Ie),{x:E,y:N,z}=H,K=1-z,M=f.x*K+y.x*z,D=f.y*K+y.y*z,B=f.z*K+y.z*z;R.fromElements(E,N,F[v]),w.fromElements(M,D,B,k[v]),v++}I>=0&&(R.clone(m,F[v]),w.clone(y,k[v]),v++),a=l,d=m,f=y,r=I}if(v===0)break}p.length=v;for(let s=0;s<v;s++)R.clone(F[s],p.coordinates[s]),w.clone(k[s],p.barycentricCoordinates[s]);return p}function ze(c,i,e,o,u,b,g,p){return Me(c?i?Ib:yb:i?xb:ye,2,e,o,u,b,g,p)}var Ke=[[],[0],[1],[0,1],[2],[0,2],[1,2],[0,1,2]];function De(c,i,e,o,u,b,g,p,A,x,j,v,F,k,s){let h={},n=c?.5:0,t=c?1:.5,a=i?.5:0,d=i?1:.5,f=Pc;f.x=n,f.y=a;let r=qc;r.x=t,r.y=d;let l=0;for(let m=0;m<e;m+=3){let y=o[m+0],I=o[m+1],H=o[m+2],E=g.decodeTextureCoordinates(b,y,Sc),N=g.decodeTextureCoordinates(b,I,Xc),z=g.decodeTextureCoordinates(b,H,Vc),K=ze(c,i,f,r,E,N,z,Fe),M=K.length;if(M<3)continue;let D=Wc;for(let O=0;O<M;O++){let G=K.barycentricCoordinates[O],W=G.x,S=G.y,_=G.z,V=Math.ceil(W)|Math.ceil(S)<<1|Math.ceil(_)<<2,q=Ke[V],P,aa=!1;if(q.length===1){let X=q[0],ba=o[m+X];P=h[ba],P===void 0&&(aa=!0,P=l++,h[ba]=P)}else if(q.length===2){let X=q[0],fa=q[1],ba=o[m+X],ta=o[m+fa],ga=K.barycentricCoordinates[(O+M-1)%M],ia=Math.ceil(ga.x)|Math.ceil(ga.y)<<1|Math.ceil(ga.z)<<2,ha=V===ia,la=Math.min(ba,ta),oa=Math.max(ba,ta),ca=u+2*(la*u+oa),ea=ca+0,da=ca+1,Q=h[ea],va=h[da],sa=!ha==(Q===void 0||va===void 0);if(P=sa?Q:va,P===void 0){aa=!0,P=l++;let Pa=sa?ea:da;h[Pa]=P}}else aa=!0,P=l++;if(D[O]=P,aa){let X=m/3;F.push(X);let fa=K.coordinates[O],ba=(fa.x-n)/(t-n),ta=(fa.y-a)/(d-a);s.push(ba,ta),k.push(W,S),ba===0?A.push(P):ba===1&&j.push(P),ta===0?x.push(P):ta===1&&v.push(P)}}let B=D[0],U=D[1],C=D[2];p.push(B,U,C);for(let O=3;O<M;O++)U=C,C=D[O],p.push(B,U,C)}A.sort(function(m,y){return s[m*2+1]-s[y*2+1]}),x.sort(function(m,y){return s[y*2+0]-s[m*2+0]}),j.sort(function(m,y){return s[y*2+1]-s[m*2+1]}),v.sort(function(m,y){return s[m*2+0]-s[y*2+0]})}var nf=pb;export{nf as a}; diff --git a/cesium/Workers/chunk-G2QPRBZU.js b/cesium/Workers/chunk-G2QPRBZU.js new file mode 100644 index 00000000..92b5160d --- /dev/null +++ b/cesium/Workers/chunk-G2QPRBZU.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as C}from"./chunk-3E7FIXV7.js";import{b as g}from"./chunk-NZBME2JK.js";import{f}from"./chunk-6DLS2UKD.js";var d=C.EPSILON10;function x(e,r,h,n){if(g.defined("equalsEpsilon",r),!f(e))return;h=h??!1;let c=f(n),l=e.length;if(l<2)return e;let i,s=e[0],o,t,p=0,m=-1;for(i=1;i<l;++i)o=e[i],r(s,o,d)?(f(t)||(t=e.slice(0,i),p=i-1,m=0),c&&n.push(i)):(f(t)&&(t.push(o),p=i,c&&(m=n.length)),s=o);return h&&r(e[0],e[l-1],d)&&(c&&(f(t)?n.splice(m,0,p):n.push(l-1)),f(t)?t.length-=1:t=e.slice(0,-1)),f(t)?t:e}var k=x;export{k as a}; diff --git a/cesium/Workers/chunk-G3GDHHWO.js b/cesium/Workers/chunk-G3GDHHWO.js new file mode 100644 index 00000000..72389ea9 --- /dev/null +++ b/cesium/Workers/chunk-G3GDHHWO.js @@ -0,0 +1,27 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{f as e}from"./chunk-6DLS2UKD.js";function t(r){this.name="RuntimeError",this.message=r;let o;try{throw new Error}catch(s){o=s.stack}this.stack=o}e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t);t.prototype.toString=function(){let r=`${this.name}: ${this.message}`;return e(this.stack)&&(r+=` +${this.stack.toString()}`),r};var c=t;export{c as a}; diff --git a/cesium/Workers/chunk-G72JFEXW.js b/cesium/Workers/chunk-G72JFEXW.js new file mode 100644 index 00000000..88808711 --- /dev/null +++ b/cesium/Workers/chunk-G72JFEXW.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{k as N}from"./chunk-LNJEJFV5.js";import{a as S,b as z}from"./chunk-BPABSUDY.js";import{a as p}from"./chunk-ATKJRN2G.js";import{b as C}from"./chunk-2AIOP76V.js";import{a as T,b as w}from"./chunk-IAE6APK2.js";import{a as m}from"./chunk-3E7FIXV7.js";import{a as h,b as c}from"./chunk-NZBME2JK.js";import{f as b}from"./chunk-6DLS2UKD.js";var a={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};a.getMathType=function(e){switch(e){case a.SCALAR:return Number;case a.VEC2:return C;case a.VEC3:return T;case a.VEC4:return S;case a.MAT2:return N;case a.MAT3:return w;case a.MAT4:return z;default:throw new h("attributeType is not a valid value.")}};a.getNumberOfComponents=function(e){switch(e){case a.SCALAR:return 1;case a.VEC2:return 2;case a.VEC3:return 3;case a.VEC4:case a.MAT2:return 4;case a.MAT3:return 9;case a.MAT4:return 16;default:throw new h("attributeType is not a valid value.")}};a.getAttributeLocationCount=function(e){switch(e){case a.SCALAR:case a.VEC2:case a.VEC3:case a.VEC4:return 1;case a.MAT2:return 2;case a.MAT3:return 3;case a.MAT4:return 4;default:throw new h("attributeType is not a valid value.")}};a.getGlslType=function(e){switch(c.typeOf.string("attributeType",e),e){case a.SCALAR:return"float";case a.VEC2:return"vec2";case a.VEC3:return"vec3";case a.VEC4:return"vec4";case a.MAT2:return"mat2";case a.MAT3:return"mat3";case a.MAT4:return"mat4";default:throw new h("attributeType is not a valid value.")}};Object.freeze(a);var F=a;var V=1/256,k=65536,l=256,r={};r.octEncodeInRange=function(e,t,n){c.defined("vector",e),c.defined("result",n);let o=T.magnitudeSquared(e);if(Math.abs(o-1)>m.EPSILON6)throw new h("vector must be normalized.");if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){let i=n.x,d=n.y;n.x=(1-Math.abs(d))*m.signNotZero(i),n.y=(1-Math.abs(i))*m.signNotZero(d)}return n.x=m.toSNorm(n.x,t),n.y=m.toSNorm(n.y,t),n};r.octEncode=function(e,t){return r.octEncodeInRange(e,255,t)};var E=new C,D=new Uint8Array(1);function M(e){return D[0]=e,D[0]}r.octEncodeToCartesian4=function(e,t){return r.octEncodeInRange(e,65535,E),t.x=M(E.x*V),t.y=M(E.x),t.z=M(E.y*V),t.w=M(E.y),t};r.octDecodeInRange=function(e,t,n,o){if(c.defined("result",o),e<0||e>n||t<0||t>n)throw new h(`x and y must be unsigned normalized integers between 0 and ${n}`);if(o.x=m.fromSNorm(e,n),o.y=m.fromSNorm(t,n),o.z=1-(Math.abs(o.x)+Math.abs(o.y)),o.z<0){let i=o.x;o.x=(1-Math.abs(o.y))*m.signNotZero(i),o.y=(1-Math.abs(i))*m.signNotZero(o.y)}return T.normalize(o,o)};r.octDecode=function(e,t,n){return r.octDecodeInRange(e,t,255,n)};r.octDecodeFromCartesian4=function(e,t){c.typeOf.object("encoded",e),c.typeOf.object("result",t);let n=e.x,o=e.y,i=e.z,d=e.w;if(n<0||n>255||o<0||o>255||i<0||i>255||d<0||d>255)throw new h("x, y, z, and w must be unsigned normalized integers between 0 and 255");let f=n*l+o,s=i*l+d;return r.octDecodeInRange(f,s,65535,t)};r.octPackFloat=function(e){return c.defined("encoded",e),256*e.x+e.y};var x=new C;r.octEncodeFloat=function(e){return r.octEncode(e,x),r.octPackFloat(x)};r.octDecodeFloat=function(e,t){c.defined("value",e);let n=e/256,o=Math.floor(n),i=(n-o)*256;return r.octDecode(o,i,t)};r.octPack=function(e,t,n,o){c.defined("v1",e),c.defined("v2",t),c.defined("v3",n),c.defined("result",o);let i=r.octEncodeFloat(e),d=r.octEncodeFloat(t),f=r.octEncode(n,x);return o.x=65536*f.x+i,o.y=65536*f.y+d,o};r.octUnpack=function(e,t,n,o){c.defined("packed",e),c.defined("v1",t),c.defined("v2",n),c.defined("v3",o);let i=e.x/65536,d=Math.floor(i),f=(i-d)*65536;i=e.y/65536;let s=Math.floor(i),u=(i-s)*65536;r.octDecodeFloat(f,t),r.octDecodeFloat(u,n),r.octDecode(d,s,o)};r.compressTextureCoordinates=function(e){c.defined("textureCoordinates",e);let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};r.decompressTextureCoordinates=function(e,t){c.defined("compressed",e),c.defined("result",t);let n=e/4096,o=Math.floor(n);return t.x=o/4095,t.y=(e-o*4096)/4095,t};function g(e){return e>>1^-(e&1)}r.zigZagDeltaDecode=function(e,t,n){c.defined("uBuffer",e),c.defined("vBuffer",t),c.typeOf.number.equals("uBuffer.length","vBuffer.length",e.length,t.length),b(n)&&c.typeOf.number.equals("uBuffer.length","heightBuffer.length",e.length,n.length);let o=e.length,i=0,d=0,f=0;for(let s=0;s<o;++s)i+=g(e[s]),d+=g(t[s]),e[s]=i,t[s]=d,b(n)&&(f+=g(n[s]),n[s]=f)};r.dequantize=function(e,t,n,o){c.defined("typedArray",e),c.defined("componentDatatype",t),c.defined("type",n),c.defined("count",o);let i=F.getNumberOfComponents(n),d;switch(t){case p.BYTE:d=127;break;case p.UNSIGNED_BYTE:d=255;break;case p.SHORT:d=32767;break;case p.UNSIGNED_SHORT:d=65535;break;case p.INT:d=2147483647;break;case p.UNSIGNED_INT:d=4294967295;break;default:throw new h(`Cannot dequantize component datatype: ${t}`)}let f=new Float32Array(o*i);for(let s=0;s<o;s++)for(let u=0;u<i;u++){let y=s*i+u;f[y]=Math.max(e[y]/d,-1)}return f};r.encodeRGB8=function(e){return c.typeOf.object("color",e),Math.round(m.clamp(e.red*255,0,255))*k+Math.round(m.clamp(e.green*255,0,255))*l+Math.round(m.clamp(e.blue*255,0,255))};r.decodeRGB8=function(e,t){return c.typeOf.number("encoded",e),c.typeOf.object("result",t),e=Math.floor(e),t.red=(e>>16&255)/255,t.green=(e>>8&255)/255,t.blue=(e&255)/255,t};r.decodeRGB565=function(e,t){c.defined("typedArray",e);let n=e.length*3;b(t)&&c.typeOf.number.equals("result.length","typedArray.length * 3",t.length,n);let o=e.length;b(t)||(t=new Float32Array(o*3));let i=31,d=63,f=1/31,s=1/63;for(let u=0;u<o;u++){let y=e[u],R=y>>11,O=y>>5&d,I=y&i,A=3*u;t[A]=R*f,t[A+1]=O*s,t[A+2]=I*f}return t};var B=r;export{B as a}; diff --git a/cesium/Workers/chunk-IAE6APK2.js b/cesium/Workers/chunk-IAE6APK2.js new file mode 100644 index 00000000..e22ba45b --- /dev/null +++ b/cesium/Workers/chunk-IAE6APK2.js @@ -0,0 +1,28 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as E}from"./chunk-3E7FIXV7.js";import{a as S,b as e}from"./chunk-NZBME2JK.js";import{f as z}from"./chunk-6DLS2UKD.js";var m=class p{constructor(n,o,c){this.x=n??0,this.y=o??0,this.z=c??0}static fromSpherical(n,o){e.typeOf.object("spherical",n),z(o)||(o=new p);let c=n.clock,t=n.cone,y=n.magnitude??1,O=y*Math.sin(t);return o.x=O*Math.cos(c),o.y=O*Math.sin(c),o.z=y*Math.cos(t),o}static fromElements(n,o,c,t){return z(t)?(t.x=n,t.y=o,t.z=c,t):new p(n,o,c)}static clone(n,o){if(z(n))return z(o)?(o.x=n.x,o.y=n.y,o.z=n.z,o):new p(n.x,n.y,n.z)}static pack(n,o,c){return e.typeOf.object("value",n),e.defined("array",o),c=c??0,o[c++]=n.x,o[c++]=n.y,o[c]=n.z,o}static unpack(n,o,c){return e.defined("array",n),o=o??0,z(c)||(c=new p),c.x=n[o++],c.y=n[o++],c.z=n[o],c}static packArray(n,o){e.defined("array",n);let c=n.length,t=c*3;if(!z(o))o=new Array(t);else{if(!Array.isArray(o)&&o.length!==t)throw new S("If result is a typed array, it must have exactly array.length * 3 elements");o.length!==t&&(o.length=t)}for(let y=0;y<c;++y)p.pack(n[y],o,y*3);return o}static unpackArray(n,o){if(e.defined("array",n),e.typeOf.number.greaterThanOrEquals("array.length",n.length,3),n.length%3!==0)throw new S("array length must be a multiple of 3.");let c=n.length;z(o)?o.length=c/3:o=new Array(c/3);for(let t=0;t<c;t+=3){let y=t/3;o[y]=p.unpack(n,t,o[y])}return o}static maximumComponent(n){return e.typeOf.object("cartesian",n),Math.max(n.x,n.y,n.z)}static minimumComponent(n){return e.typeOf.object("cartesian",n),Math.min(n.x,n.y,n.z)}static minimumByComponent(n,o,c){return e.typeOf.object("first",n),e.typeOf.object("second",o),e.typeOf.object("result",c),c.x=Math.min(n.x,o.x),c.y=Math.min(n.y,o.y),c.z=Math.min(n.z,o.z),c}static maximumByComponent(n,o,c){return e.typeOf.object("first",n),e.typeOf.object("second",o),e.typeOf.object("result",c),c.x=Math.max(n.x,o.x),c.y=Math.max(n.y,o.y),c.z=Math.max(n.z,o.z),c}static clamp(n,o,c,t){e.typeOf.object("value",n),e.typeOf.object("min",o),e.typeOf.object("max",c),e.typeOf.object("result",t);let y=E.clamp(n.x,o.x,c.x),O=E.clamp(n.y,o.y,c.y),b=E.clamp(n.z,o.z,c.z);return t.x=y,t.y=O,t.z=b,t}static magnitudeSquared(n){return e.typeOf.object("cartesian",n),n.x*n.x+n.y*n.y+n.z*n.z}static magnitude(n){return Math.sqrt(p.magnitudeSquared(n))}static distance(n,o){return e.typeOf.object("left",n),e.typeOf.object("right",o),p.subtract(n,o,k),p.magnitude(k)}static distanceSquared(n,o){return e.typeOf.object("left",n),e.typeOf.object("right",o),p.subtract(n,o,k),p.magnitudeSquared(k)}static normalize(n,o){e.typeOf.object("cartesian",n),e.typeOf.object("result",o);let c=p.magnitude(n);if(o.x=n.x/c,o.y=n.y/c,o.z=n.z/c,isNaN(o.x)||isNaN(o.y)||isNaN(o.z))throw new S("normalized result is not a number");return o}static dot(n,o){return e.typeOf.object("left",n),e.typeOf.object("right",o),n.x*o.x+n.y*o.y+n.z*o.z}static multiplyComponents(n,o,c){return e.typeOf.object("left",n),e.typeOf.object("right",o),e.typeOf.object("result",c),c.x=n.x*o.x,c.y=n.y*o.y,c.z=n.z*o.z,c}static divideComponents(n,o,c){return e.typeOf.object("left",n),e.typeOf.object("right",o),e.typeOf.object("result",c),c.x=n.x/o.x,c.y=n.y/o.y,c.z=n.z/o.z,c}static add(n,o,c){return e.typeOf.object("left",n),e.typeOf.object("right",o),e.typeOf.object("result",c),c.x=n.x+o.x,c.y=n.y+o.y,c.z=n.z+o.z,c}static subtract(n,o,c){return e.typeOf.object("left",n),e.typeOf.object("right",o),e.typeOf.object("result",c),c.x=n.x-o.x,c.y=n.y-o.y,c.z=n.z-o.z,c}static multiplyByScalar(n,o,c){return e.typeOf.object("cartesian",n),e.typeOf.number("scalar",o),e.typeOf.object("result",c),c.x=n.x*o,c.y=n.y*o,c.z=n.z*o,c}static divideByScalar(n,o,c){return e.typeOf.object("cartesian",n),e.typeOf.number("scalar",o),e.typeOf.object("result",c),c.x=n.x/o,c.y=n.y/o,c.z=n.z/o,c}static negate(n,o){return e.typeOf.object("cartesian",n),e.typeOf.object("result",o),o.x=-n.x,o.y=-n.y,o.z=-n.z,o}static abs(n,o){return e.typeOf.object("cartesian",n),e.typeOf.object("result",o),o.x=Math.abs(n.x),o.y=Math.abs(n.y),o.z=Math.abs(n.z),o}static lerp(n,o,c,t){return e.typeOf.object("start",n),e.typeOf.object("end",o),e.typeOf.number("t",c),e.typeOf.object("result",t),p.multiplyByScalar(o,c,V),t=p.multiplyByScalar(n,1-c,t),p.add(V,t,t)}static angleBetween(n,o){e.typeOf.object("left",n),e.typeOf.object("right",o),p.normalize(n,U),p.normalize(o,L);let c=p.dot(U,L),t=p.magnitude(p.cross(U,L,U));return Math.atan2(t,c)}static mostOrthogonalAxis(n,o){e.typeOf.object("cartesian",n),e.typeOf.object("result",o);let c=p.normalize(n,I);return p.abs(c,c),c.x<=c.y?c.x<=c.z?o=p.clone(p.UNIT_X,o):o=p.clone(p.UNIT_Z,o):c.y<=c.z?o=p.clone(p.UNIT_Y,o):o=p.clone(p.UNIT_Z,o),o}static projectVector(n,o,c){e.defined("a",n),e.defined("b",o),e.defined("result",c);let t=p.dot(n,o)/p.dot(o,o);return p.multiplyByScalar(o,t,c)}static equals(n,o){return n===o||z(n)&&z(o)&&n.x===o.x&&n.y===o.y&&n.z===o.z}static equalsArray(n,o,c){return n.x===o[c]&&n.y===o[c+1]&&n.z===o[c+2]}static equalsEpsilon(n,o,c,t){return n===o||z(n)&&z(o)&&E.equalsEpsilon(n.x,o.x,c,t)&&E.equalsEpsilon(n.y,o.y,c,t)&&E.equalsEpsilon(n.z,o.z,c,t)}static cross(n,o,c){e.typeOf.object("left",n),e.typeOf.object("right",o),e.typeOf.object("result",c);let t=n.x,y=n.y,O=n.z,b=o.x,f=o.y,j=o.z,w=y*j-O*f,M=O*b-t*j,d=t*f-y*b;return c.x=w,c.y=M,c.z=d,c}static midpoint(n,o,c){return e.typeOf.object("left",n),e.typeOf.object("right",o),e.typeOf.object("result",c),c.x=(n.x+o.x)*.5,c.y=(n.y+o.y)*.5,c.z=(n.z+o.z)*.5,c}static fromDegrees(n,o,c,t,y){return e.typeOf.number("longitude",n),e.typeOf.number("latitude",o),n=E.toRadians(n),o=E.toRadians(o),p.fromRadians(n,o,c,t,y)}static fromRadians(n,o,c,t,y){e.typeOf.number("longitude",n),e.typeOf.number("latitude",o),c=c??0;let O=z(t)?t.radiiSquared:p._ellipsoidRadiiSquared,b=Math.cos(o);A.x=b*Math.cos(n),A.y=b*Math.sin(n),A.z=Math.sin(o),A=p.normalize(A,A),p.multiplyComponents(O,A,T);let f=Math.sqrt(p.dot(A,T));return T=p.divideByScalar(T,f,T),A=p.multiplyByScalar(A,c,A),z(y)||(y=new p),p.add(T,A,y)}static fromDegreesArray(n,o,c){if(e.defined("coordinates",n),n.length<2||n.length%2!==0)throw new S("the number of coordinates must be a multiple of 2 and at least 2");let t=n.length;z(c)?c.length=t/2:c=new Array(t/2);for(let y=0;y<t;y+=2){let O=n[y],b=n[y+1],f=y/2;c[f]=p.fromDegrees(O,b,0,o,c[f])}return c}static fromRadiansArray(n,o,c){if(e.defined("coordinates",n),n.length<2||n.length%2!==0)throw new S("the number of coordinates must be a multiple of 2 and at least 2");let t=n.length;z(c)?c.length=t/2:c=new Array(t/2);for(let y=0;y<t;y+=2){let O=n[y],b=n[y+1],f=y/2;c[f]=p.fromRadians(O,b,0,o,c[f])}return c}static fromDegreesArrayHeights(n,o,c){if(e.defined("coordinates",n),n.length<3||n.length%3!==0)throw new S("the number of coordinates must be a multiple of 3 and at least 3");let t=n.length;z(c)?c.length=t/3:c=new Array(t/3);for(let y=0;y<t;y+=3){let O=n[y],b=n[y+1],f=n[y+2],j=y/3;c[j]=p.fromDegrees(O,b,f,o,c[j])}return c}static fromRadiansArrayHeights(n,o,c){if(e.defined("coordinates",n),n.length<3||n.length%3!==0)throw new S("the number of coordinates must be a multiple of 3 and at least 3");let t=n.length;z(c)?c.length=t/3:c=new Array(t/3);for(let y=0;y<t;y+=3){let O=n[y],b=n[y+1],f=n[y+2],j=y/3;c[j]=p.fromRadians(O,b,f,o,c[j])}return c}clone(n){return p.clone(this,n)}equals(n){return p.equals(this,n)}equalsEpsilon(n,o,c){return p.equalsEpsilon(this,n,o,c)}toString(){return`(${this.x}, ${this.y}, ${this.z})`}};m.fromCartesian4=m.clone;m.packedLength=3;m.fromArray=m.unpack;var k=new m,V=new m,U=new m,L=new m,I=new m,A=new m,T=new m;m._ellipsoidRadiiSquared=new m(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);m.ZERO=Object.freeze(new m(0,0,0));m.ONE=Object.freeze(new m(1,1,1));m.UNIT_X=Object.freeze(new m(1,0,0));m.UNIT_Y=Object.freeze(new m(0,1,0));m.UNIT_Z=Object.freeze(new m(0,0,1));var R=m;var h=class p{constructor(n,o,c,t,y,O,b,f,j){this[0]=n??0,this[1]=t??0,this[2]=b??0,this[3]=o??0,this[4]=y??0,this[5]=f??0,this[6]=c??0,this[7]=O??0,this[8]=j??0}static pack(n,o,c){return e.typeOf.object("value",n),e.defined("array",o),c=c??0,o[c++]=n[0],o[c++]=n[1],o[c++]=n[2],o[c++]=n[3],o[c++]=n[4],o[c++]=n[5],o[c++]=n[6],o[c++]=n[7],o[c++]=n[8],o}static unpack(n,o,c){return e.defined("array",n),o=o??0,z(c)||(c=new p),c[0]=n[o++],c[1]=n[o++],c[2]=n[o++],c[3]=n[o++],c[4]=n[o++],c[5]=n[o++],c[6]=n[o++],c[7]=n[o++],c[8]=n[o++],c}static packArray(n,o){e.defined("array",n);let c=n.length,t=c*9;if(!z(o))o=new Array(t);else{if(!Array.isArray(o)&&o.length!==t)throw new S("If result is a typed array, it must have exactly array.length * 9 elements");o.length!==t&&(o.length=t)}for(let y=0;y<c;++y)p.pack(n[y],o,y*9);return o}static unpackArray(n,o){if(e.defined("array",n),e.typeOf.number.greaterThanOrEquals("array.length",n.length,9),n.length%9!==0)throw new S("array length must be a multiple of 9.");let c=n.length;z(o)?o.length=c/9:o=new Array(c/9);for(let t=0;t<c;t+=9){let y=t/9;o[y]=p.unpack(n,t,o[y])}return o}static clone(n,o){if(z(n))return z(o)?(o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o[4]=n[4],o[5]=n[5],o[6]=n[6],o[7]=n[7],o[8]=n[8],o):new p(n[0],n[3],n[6],n[1],n[4],n[7],n[2],n[5],n[8])}static fromColumnMajorArray(n,o){return e.defined("values",n),p.clone(n,o)}static fromRowMajorArray(n,o){return e.defined("values",n),z(o)?(o[0]=n[0],o[1]=n[3],o[2]=n[6],o[3]=n[1],o[4]=n[4],o[5]=n[7],o[6]=n[2],o[7]=n[5],o[8]=n[8],o):new p(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8])}static fromQuaternion(n,o){e.typeOf.object("quaternion",n);let c=n.x*n.x,t=n.x*n.y,y=n.x*n.z,O=n.x*n.w,b=n.y*n.y,f=n.y*n.z,j=n.y*n.w,w=n.z*n.z,M=n.z*n.w,d=n.w*n.w,a=c-b-w+d,N=2*(t-M),q=2*(y+j),C=2*(t+M),i=-c+b-w+d,Z=2*(f-O),W=2*(y-j),X=2*(f+O),P=-c-b+w+d;return z(o)?(o[0]=a,o[1]=C,o[2]=W,o[3]=N,o[4]=i,o[5]=X,o[6]=q,o[7]=Z,o[8]=P,o):new p(a,N,q,C,i,Z,W,X,P)}static fromHeadingPitchRoll(n,o){e.typeOf.object("headingPitchRoll",n);let c=Math.cos(-n.pitch),t=Math.cos(-n.heading),y=Math.cos(n.roll),O=Math.sin(-n.pitch),b=Math.sin(-n.heading),f=Math.sin(n.roll),j=c*t,w=-y*b+f*O*t,M=f*b+y*O*t,d=c*b,a=y*t+f*O*b,N=-f*t+y*O*b,q=-O,C=f*c,i=y*c;return z(o)?(o[0]=j,o[1]=d,o[2]=q,o[3]=w,o[4]=a,o[5]=C,o[6]=M,o[7]=N,o[8]=i,o):new p(j,w,M,d,a,N,q,C,i)}static fromScale(n,o){return e.typeOf.object("scale",n),z(o)?(o[0]=n.x,o[1]=0,o[2]=0,o[3]=0,o[4]=n.y,o[5]=0,o[6]=0,o[7]=0,o[8]=n.z,o):new p(n.x,0,0,0,n.y,0,0,0,n.z)}static fromUniformScale(n,o){return e.typeOf.number("scale",n),z(o)?(o[0]=n,o[1]=0,o[2]=0,o[3]=0,o[4]=n,o[5]=0,o[6]=0,o[7]=0,o[8]=n,o):new p(n,0,0,0,n,0,0,0,n)}static fromCrossProduct(n,o){return e.typeOf.object("vector",n),z(o)?(o[0]=0,o[1]=n.z,o[2]=-n.y,o[3]=-n.z,o[4]=0,o[5]=n.x,o[6]=n.y,o[7]=-n.x,o[8]=0,o):new p(0,-n.z,n.y,n.z,0,-n.x,-n.y,n.x,0)}static fromRotationX(n,o){e.typeOf.number("angle",n);let c=Math.cos(n),t=Math.sin(n);return z(o)?(o[0]=1,o[1]=0,o[2]=0,o[3]=0,o[4]=c,o[5]=t,o[6]=0,o[7]=-t,o[8]=c,o):new p(1,0,0,0,c,-t,0,t,c)}static fromRotationY(n,o){e.typeOf.number("angle",n);let c=Math.cos(n),t=Math.sin(n);return z(o)?(o[0]=c,o[1]=0,o[2]=-t,o[3]=0,o[4]=1,o[5]=0,o[6]=t,o[7]=0,o[8]=c,o):new p(c,0,t,0,1,0,-t,0,c)}static fromRotationZ(n,o){e.typeOf.number("angle",n);let c=Math.cos(n),t=Math.sin(n);return z(o)?(o[0]=c,o[1]=t,o[2]=0,o[3]=-t,o[4]=c,o[5]=0,o[6]=0,o[7]=0,o[8]=1,o):new p(c,-t,0,t,c,0,0,0,1)}static toArray(n,o){return e.typeOf.object("matrix",n),z(o)?(o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o[4]=n[4],o[5]=n[5],o[6]=n[6],o[7]=n[7],o[8]=n[8],o):[n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8]]}static getElementIndex(n,o){return e.typeOf.number.greaterThanOrEquals("row",o,0),e.typeOf.number.lessThanOrEquals("row",o,2),e.typeOf.number.greaterThanOrEquals("column",n,0),e.typeOf.number.lessThanOrEquals("column",n,2),n*3+o}static getColumn(n,o,c){e.typeOf.object("matrix",n),e.typeOf.number.greaterThanOrEquals("index",o,0),e.typeOf.number.lessThanOrEquals("index",o,2),e.typeOf.object("result",c);let t=o*3,y=n[t],O=n[t+1],b=n[t+2];return c.x=y,c.y=O,c.z=b,c}static setColumn(n,o,c,t){e.typeOf.object("matrix",n),e.typeOf.number.greaterThanOrEquals("index",o,0),e.typeOf.number.lessThanOrEquals("index",o,2),e.typeOf.object("cartesian",c),e.typeOf.object("result",t),t=p.clone(n,t);let y=o*3;return t[y]=c.x,t[y+1]=c.y,t[y+2]=c.z,t}static getRow(n,o,c){e.typeOf.object("matrix",n),e.typeOf.number.greaterThanOrEquals("index",o,0),e.typeOf.number.lessThanOrEquals("index",o,2),e.typeOf.object("result",c);let t=n[o],y=n[o+3],O=n[o+6];return c.x=t,c.y=y,c.z=O,c}static setRow(n,o,c,t){return e.typeOf.object("matrix",n),e.typeOf.number.greaterThanOrEquals("index",o,0),e.typeOf.number.lessThanOrEquals("index",o,2),e.typeOf.object("cartesian",c),e.typeOf.object("result",t),t=p.clone(n,t),t[o]=c.x,t[o+3]=c.y,t[o+6]=c.z,t}static setScale(n,o,c){e.typeOf.object("matrix",n),e.typeOf.object("scale",o),e.typeOf.object("result",c);let t=p.getScale(n,J),y=o.x/t.x,O=o.y/t.y,b=o.z/t.z;return c[0]=n[0]*y,c[1]=n[1]*y,c[2]=n[2]*y,c[3]=n[3]*O,c[4]=n[4]*O,c[5]=n[5]*O,c[6]=n[6]*b,c[7]=n[7]*b,c[8]=n[8]*b,c}static setUniformScale(n,o,c){e.typeOf.object("matrix",n),e.typeOf.number("scale",o),e.typeOf.object("result",c);let t=p.getScale(n,K),y=o/t.x,O=o/t.y,b=o/t.z;return c[0]=n[0]*y,c[1]=n[1]*y,c[2]=n[2]*y,c[3]=n[3]*O,c[4]=n[4]*O,c[5]=n[5]*O,c[6]=n[6]*b,c[7]=n[7]*b,c[8]=n[8]*b,c}static getScale(n,o){return e.typeOf.object("matrix",n),e.typeOf.object("result",o),o.x=R.magnitude(R.fromElements(n[0],n[1],n[2],D)),o.y=R.magnitude(R.fromElements(n[3],n[4],n[5],D)),o.z=R.magnitude(R.fromElements(n[6],n[7],n[8],D)),o}static getMaximumScale(n){return p.getScale(n,F),R.maximumComponent(F)}static setRotation(n,o,c){e.typeOf.object("matrix",n),e.typeOf.object("result",c);let t=p.getScale(n,Q);return c[0]=o[0]*t.x,c[1]=o[1]*t.x,c[2]=o[2]*t.x,c[3]=o[3]*t.y,c[4]=o[4]*t.y,c[5]=o[5]*t.y,c[6]=o[6]*t.z,c[7]=o[7]*t.z,c[8]=o[8]*t.z,c}static getRotation(n,o){e.typeOf.object("matrix",n),e.typeOf.object("result",o);let c=p.getScale(n,G);return o[0]=n[0]/c.x,o[1]=n[1]/c.x,o[2]=n[2]/c.x,o[3]=n[3]/c.y,o[4]=n[4]/c.y,o[5]=n[5]/c.y,o[6]=n[6]/c.z,o[7]=n[7]/c.z,o[8]=n[8]/c.z,o}static multiply(n,o,c){e.typeOf.object("left",n),e.typeOf.object("right",o),e.typeOf.object("result",c);let t=n[0]*o[0]+n[3]*o[1]+n[6]*o[2],y=n[1]*o[0]+n[4]*o[1]+n[7]*o[2],O=n[2]*o[0]+n[5]*o[1]+n[8]*o[2],b=n[0]*o[3]+n[3]*o[4]+n[6]*o[5],f=n[1]*o[3]+n[4]*o[4]+n[7]*o[5],j=n[2]*o[3]+n[5]*o[4]+n[8]*o[5],w=n[0]*o[6]+n[3]*o[7]+n[6]*o[8],M=n[1]*o[6]+n[4]*o[7]+n[7]*o[8],d=n[2]*o[6]+n[5]*o[7]+n[8]*o[8];return c[0]=t,c[1]=y,c[2]=O,c[3]=b,c[4]=f,c[5]=j,c[6]=w,c[7]=M,c[8]=d,c}static add(n,o,c){return e.typeOf.object("left",n),e.typeOf.object("right",o),e.typeOf.object("result",c),c[0]=n[0]+o[0],c[1]=n[1]+o[1],c[2]=n[2]+o[2],c[3]=n[3]+o[3],c[4]=n[4]+o[4],c[5]=n[5]+o[5],c[6]=n[6]+o[6],c[7]=n[7]+o[7],c[8]=n[8]+o[8],c}static subtract(n,o,c){return e.typeOf.object("left",n),e.typeOf.object("right",o),e.typeOf.object("result",c),c[0]=n[0]-o[0],c[1]=n[1]-o[1],c[2]=n[2]-o[2],c[3]=n[3]-o[3],c[4]=n[4]-o[4],c[5]=n[5]-o[5],c[6]=n[6]-o[6],c[7]=n[7]-o[7],c[8]=n[8]-o[8],c}static multiplyByVector(n,o,c){e.typeOf.object("matrix",n),e.typeOf.object("cartesian",o),e.typeOf.object("result",c);let t=o.x,y=o.y,O=o.z,b=n[0]*t+n[3]*y+n[6]*O,f=n[1]*t+n[4]*y+n[7]*O,j=n[2]*t+n[5]*y+n[8]*O;return c.x=b,c.y=f,c.z=j,c}static multiplyByScalar(n,o,c){return e.typeOf.object("matrix",n),e.typeOf.number("scalar",o),e.typeOf.object("result",c),c[0]=n[0]*o,c[1]=n[1]*o,c[2]=n[2]*o,c[3]=n[3]*o,c[4]=n[4]*o,c[5]=n[5]*o,c[6]=n[6]*o,c[7]=n[7]*o,c[8]=n[8]*o,c}static multiplyByScale(n,o,c){return e.typeOf.object("matrix",n),e.typeOf.object("scale",o),e.typeOf.object("result",c),c[0]=n[0]*o.x,c[1]=n[1]*o.x,c[2]=n[2]*o.x,c[3]=n[3]*o.y,c[4]=n[4]*o.y,c[5]=n[5]*o.y,c[6]=n[6]*o.z,c[7]=n[7]*o.z,c[8]=n[8]*o.z,c}static multiplyByUniformScale(n,o,c){return e.typeOf.object("matrix",n),e.typeOf.number("scale",o),e.typeOf.object("result",c),c[0]=n[0]*o,c[1]=n[1]*o,c[2]=n[2]*o,c[3]=n[3]*o,c[4]=n[4]*o,c[5]=n[5]*o,c[6]=n[6]*o,c[7]=n[7]*o,c[8]=n[8]*o,c}static negate(n,o){return e.typeOf.object("matrix",n),e.typeOf.object("result",o),o[0]=-n[0],o[1]=-n[1],o[2]=-n[2],o[3]=-n[3],o[4]=-n[4],o[5]=-n[5],o[6]=-n[6],o[7]=-n[7],o[8]=-n[8],o}static transpose(n,o){e.typeOf.object("matrix",n),e.typeOf.object("result",o);let c=n[0],t=n[3],y=n[6],O=n[1],b=n[4],f=n[7],j=n[2],w=n[5],M=n[8];return o[0]=c,o[1]=t,o[2]=y,o[3]=O,o[4]=b,o[5]=f,o[6]=j,o[7]=w,o[8]=M,o}static computeEigenDecomposition(n,o){e.typeOf.object("matrix",n);let c=E.EPSILON20,t=10,y=0,O=0;z(o)||(o={});let b=o.unitary=p.clone(p.IDENTITY,o.unitary),f=o.diagonal=p.clone(n,o.diagonal),j=c*v(f);for(;O<t&&x(f)>j;)_(f,B),p.transpose(B,H),p.multiply(f,B,f),p.multiply(H,f,f),p.multiply(b,B,b),++y>2&&(++O,y=0);return o}static abs(n,o){return e.typeOf.object("matrix",n),e.typeOf.object("result",o),o[0]=Math.abs(n[0]),o[1]=Math.abs(n[1]),o[2]=Math.abs(n[2]),o[3]=Math.abs(n[3]),o[4]=Math.abs(n[4]),o[5]=Math.abs(n[5]),o[6]=Math.abs(n[6]),o[7]=Math.abs(n[7]),o[8]=Math.abs(n[8]),o}static determinant(n){e.typeOf.object("matrix",n);let o=n[0],c=n[3],t=n[6],y=n[1],O=n[4],b=n[7],f=n[2],j=n[5],w=n[8];return o*(O*w-j*b)+y*(j*t-c*w)+f*(c*b-O*t)}static inverse(n,o){e.typeOf.object("matrix",n),e.typeOf.object("result",o);let c=n[0],t=n[1],y=n[2],O=n[3],b=n[4],f=n[5],j=n[6],w=n[7],M=n[8],d=p.determinant(n);if(Math.abs(d)<=E.EPSILON15)throw new S("matrix is not invertible");o[0]=b*M-w*f,o[1]=w*y-t*M,o[2]=t*f-b*y,o[3]=j*f-O*M,o[4]=c*M-j*y,o[5]=O*y-c*f,o[6]=O*w-j*b,o[7]=j*t-c*w,o[8]=c*b-O*t;let a=1/d;return p.multiplyByScalar(o,a,o)}static inverseTranspose(n,o){return e.typeOf.object("matrix",n),e.typeOf.object("result",o),p.inverse(p.transpose(n,s),o)}static equals(n,o){return n===o||z(n)&&z(o)&&n[0]===o[0]&&n[1]===o[1]&&n[2]===o[2]&&n[3]===o[3]&&n[4]===o[4]&&n[5]===o[5]&&n[6]===o[6]&&n[7]===o[7]&&n[8]===o[8]}static equalsEpsilon(n,o,c){return c=c??0,n===o||z(n)&&z(o)&&Math.abs(n[0]-o[0])<=c&&Math.abs(n[1]-o[1])<=c&&Math.abs(n[2]-o[2])<=c&&Math.abs(n[3]-o[3])<=c&&Math.abs(n[4]-o[4])<=c&&Math.abs(n[5]-o[5])<=c&&Math.abs(n[6]-o[6])<=c&&Math.abs(n[7]-o[7])<=c&&Math.abs(n[8]-o[8])<=c}get length(){return p.packedLength}clone(n){return p.clone(this,n)}equals(n){return p.equals(this,n)}static equalsArray(n,o,c){return n[0]===o[c]&&n[1]===o[c+1]&&n[2]===o[c+2]&&n[3]===o[c+3]&&n[4]===o[c+4]&&n[5]===o[c+5]&&n[6]===o[c+6]&&n[7]===o[c+7]&&n[8]===o[c+8]}equalsEpsilon(n,o){return p.equalsEpsilon(this,n,o)}toString(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`}};h.packedLength=9;h.fromArray=h.unpack;h.IDENTITY=Object.freeze(new h(1,0,0,0,1,0,0,0,1));h.ZERO=Object.freeze(new h(0,0,0,0,0,0,0,0,0));h.COLUMN0ROW0=0;h.COLUMN0ROW1=1;h.COLUMN0ROW2=2;h.COLUMN1ROW0=3;h.COLUMN1ROW1=4;h.COLUMN1ROW2=5;h.COLUMN2ROW0=6;h.COLUMN2ROW1=7;h.COLUMN2ROW2=8;var J=new R,K=new R,D=new R,F=new R,Q=new R,G=new R,B=new h,H=new h,s=new h;function v(p){let n=0;for(let o=0;o<9;++o){let c=p[o];n+=c*c}return Math.sqrt(n)}var Y=[1,0,0],g=[2,2,1];function x(p){let n=0;for(let o=0;o<3;++o){let c=p[h.getElementIndex(g[o],Y[o])];n+=2*c*c}return Math.sqrt(n)}function _(p,n){let o=E.EPSILON15,c=0,t=1;for(let j=0;j<3;++j){let w=Math.abs(p[h.getElementIndex(g[j],Y[j])]);w>c&&(t=j,c=w)}let y=1,O=0,b=Y[t],f=g[t];if(Math.abs(p[h.getElementIndex(f,b)])>o){let j=p[h.getElementIndex(f,f)],w=p[h.getElementIndex(b,b)],M=p[h.getElementIndex(f,b)],d=(j-w)/2/M,a;d<0?a=-1/(-d+Math.sqrt(1+d*d)):a=1/(d+Math.sqrt(1+d*d)),y=1/Math.sqrt(1+a*a),O=a*y}return n=h.clone(h.IDENTITY,n),n[h.getElementIndex(b,b)]=n[h.getElementIndex(f,f)]=y,n[h.getElementIndex(f,b)]=O,n[h.getElementIndex(b,f)]=-O,n}var On=h;var $={};$.EMPTY_OBJECT=Object.freeze({});$.EMPTY_ARRAY=Object.freeze([]);var fn=$;export{R as a,On as b,fn as c}; diff --git a/cesium/Workers/chunk-IEITL4VO.js b/cesium/Workers/chunk-IEITL4VO.js new file mode 100644 index 00000000..97fa52cc --- /dev/null +++ b/cesium/Workers/chunk-IEITL4VO.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as R}from"./chunk-AJH5KBOO.js";import{a as ct}from"./chunk-QNPYEODC.js";import{a as Z,b as H}from"./chunk-TCOMWBL2.js";import{a as V}from"./chunk-G2QPRBZU.js";import{a as U}from"./chunk-37ETYCYM.js";import{b as ot}from"./chunk-SRA5MBUT.js";import{a as it}from"./chunk-5AAMOBJK.js";import{a as nt}from"./chunk-4WQ4VT5S.js";import{a as et}from"./chunk-6EINM7EY.js";import{b as J,c as X,d as z}from"./chunk-A4I25VN7.js";import{h as K}from"./chunk-LNJEJFV5.js";import{a as k}from"./chunk-ATKJRN2G.js";import{a as q,b as M,c as tt}from"./chunk-2AIOP76V.js";import{a as w,b as F}from"./chunk-IAE6APK2.js";import{a as I}from"./chunk-3E7FIXV7.js";import{f as x}from"./chunk-6DLS2UKD.js";function ft(n,i){this.positions=x(n)?n:[],this.holes=x(i)?i:[]}var st=ft;function S(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(S.prototype,{length:{get:function(){return this._length}}});S.prototype.enqueue=function(n){this._array.push(n),this._length++};S.prototype.dequeue=function(){if(this._length===0)return;let n=this._array,i=this._offset,u=n[i];return n[i]=void 0,i++,i>10&&i*2>n.length&&(this._array=n.slice(i),i=0),this._offset=i,this._length--,u};S.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};S.prototype.contains=function(n){return this._array.indexOf(n)!==-1};S.prototype.clear=function(){this._array.length=this._offset=this._length=0};S.prototype.sort=function(n){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(n)};var $=S;var b={};b.computeHierarchyPackedLength=function(n,i){let u=0,s=[n];for(;s.length>0;){let c=s.pop();if(!x(c))continue;u+=2;let a=c.positions,t=c.holes;if(x(a)&&a.length>0&&(u+=a.length*i.packedLength),x(t)){let o=t.length;for(let e=0;e<o;++e)s.push(t[e])}}return u};b.packPolygonHierarchy=function(n,i,u,s){let c=[n];for(;c.length>0;){let a=c.pop();if(!x(a))continue;let t=a.positions,o=a.holes;if(i[u++]=x(t)?t.length:0,i[u++]=x(o)?o.length:0,x(t)){let e=t.length;for(let r=0;r<e;++r,u+=s.packedLength)s.pack(t[r],i,u)}if(x(o)){let e=o.length;for(let r=0;r<e;++r)c.push(o[r])}}return u};b.unpackPolygonHierarchy=function(n,i,u){let s=n[i++],c=n[i++],a=new Array(s),t=c>0?new Array(c):void 0;for(let o=0;o<s;++o,i+=u.packedLength)a[o]=u.unpack(n,i);for(let o=0;o<c;++o)t[o]=b.unpackPolygonHierarchy(n,i,u),i=t[o].startingIndex,delete t[o].startingIndex;return{positions:a,holes:t,startingIndex:i}};var O=new M;function at(n,i,u,s){return M.subtract(i,n,O),M.multiplyByScalar(O,u/s,O),M.add(n,O,O),[O.x,O.y]}var G=new w;function gt(n,i,u,s){return w.subtract(i,n,G),w.multiplyByScalar(G,u/s,G),w.add(n,G,G),[G.x,G.y,G.z]}b.subdivideLineCount=function(n,i,u){let c=w.distance(n,i)/u,a=Math.max(0,Math.ceil(I.log2(c)));return Math.pow(2,a)};var j=new q,Q=new q,dt=new q,pt=new w,Y=new U;b.subdivideRhumbLineCount=function(n,i,u,s){let c=n.cartesianToCartographic(i,j),a=n.cartesianToCartographic(u,Q),o=new U(c,a,n).surfaceDistance/s,e=Math.max(0,Math.ceil(I.log2(o)));return Math.pow(2,e)};b.subdivideTexcoordLine=function(n,i,u,s,c,a){let t=b.subdivideLineCount(u,s,c),o=M.distance(n,i),e=o/t,r=a;r.length=t*2;let l=0;for(let h=0;h<t;h++){let f=at(n,i,h*e,o);r[l++]=f[0],r[l++]=f[1]}return r};b.subdivideLine=function(n,i,u,s){let c=b.subdivideLineCount(n,i,u),a=w.distance(n,i),t=a/c;x(s)||(s=[]);let o=s;o.length=c*3;let e=0;for(let r=0;r<c;r++){let l=gt(n,i,r*t,a);o[e++]=l[0],o[e++]=l[1],o[e++]=l[2]}return o};b.subdivideTexcoordRhumbLine=function(n,i,u,s,c,a,t){let o=u.cartesianToCartographic(s,j),e=u.cartesianToCartographic(c,Q);Y.setEndPoints(o,e);let r=Y.surfaceDistance/a,l=Math.max(0,Math.ceil(I.log2(r))),h=Math.pow(2,l),f=M.distance(n,i),d=f/h,m=t;m.length=h*2;let p=0;for(let g=0;g<h;g++){let y=at(n,i,g*d,f);m[p++]=y[0],m[p++]=y[1]}return m};b.subdivideRhumbLine=function(n,i,u,s,c){let a=n.cartesianToCartographic(i,j),t=n.cartesianToCartographic(u,Q),o=new U(a,t,n);if(x(c)||(c=[]),o.surfaceDistance<=s)return c.length=3,c[0]=i.x,c[1]=i.y,c[2]=i.z,c;let e=o.surfaceDistance/s,r=Math.max(0,Math.ceil(I.log2(e))),l=Math.pow(2,r),h=o.surfaceDistance/l,f=c;f.length=l*3;let d=0;for(let m=0;m<l;m++){let p=o.interpolateUsingSurfaceDistance(m*h,dt),g=n.cartographicToCartesian(p,pt);f[d++]=g.x,f[d++]=g.y,f[d++]=g.z}return f};var mt=new w,yt=new w,xt=new w,wt=new w;b.scaleToGeodeticHeightExtruded=function(n,i,u,s,c){s=s??tt.default;let a=mt,t=yt,o=xt,e=wt;if(x(n)&&x(n.attributes)&&x(n.attributes.position)){let r=n.attributes.position.values,l=r.length/2;for(let h=0;h<l;h+=3)w.fromArray(r,h,o),s.geodeticSurfaceNormal(o,a),e=s.scaleToGeodeticSurface(o,e),t=w.multiplyByScalar(a,u,t),t=w.add(e,t,t),r[h+l]=t.x,r[h+1+l]=t.y,r[h+2+l]=t.z,c&&(e=w.clone(o,e)),t=w.multiplyByScalar(a,i,t),t=w.add(e,t,t),r[h]=t.x,r[h+1]=t.y,r[h+2]=t.z}return n};b.polygonOutlinesFromHierarchy=function(n,i,u){let s=[],c=new $;c.enqueue(n);let a,t,o;for(;c.length!==0;){let e=c.dequeue(),r=e.positions;if(i)for(o=r.length,a=0;a<o;a++)u.scaleToGeodeticSurface(r[a],r[a]);if(r=V(r,w.equalsEpsilon,!0),r.length<3)continue;let l=e.holes?e.holes.length:0;for(a=0;a<l;a++){let h=e.holes[a],f=h.positions;if(i)for(o=f.length,t=0;t<o;++t)u.scaleToGeodeticSurface(f[t],f[t]);if(f=V(f,w.equalsEpsilon,!0),f.length<3)continue;s.push(f);let d=0;for(x(h.holes)&&(d=h.holes.length),t=0;t<d;t++)c.enqueue(h.holes[t])}s.push(r)}return s};var bt=new q;function Lt(n,i,u){let s=u.cartesianToCartographic(n,j),c=u.cartesianToCartographic(i,Q);if(Math.sign(s.latitude)===Math.sign(c.latitude))return;Y.setEndPoints(s,c);let a=Y.findIntersectionWithLatitude(0,bt);if(!x(a))return;let t=Math.min(s.longitude,c.longitude),o=Math.max(s.longitude,c.longitude);if(Math.abs(o-t)>I.PI){let e=t;t=o,o=e}if(!(a.longitude<t||a.longitude>o))return u.cartographicToCartesian(a)}function Tt(n,i,u,s){if(s===R.RHUMB)return Lt(n,i,u);let c=ot.lineSegmentPlane(n,i,it.ORIGIN_XY_PLANE);if(x(c))return u.scaleToGeodeticSurface(c,c)}var Et=new q;function vt(n,i,u){let s=[],c,a,t,o,e,r=0;for(;r<n.length;){c=n[r],a=n[(r+1)%n.length],t=I.sign(c.z),o=I.sign(a.z);let l=h=>i.cartesianToCartographic(h,Et).longitude;if(t===0)s.push({position:r,type:t,visited:!1,next:o,theta:l(c)});else if(o!==0){if(e=Tt(c,a,i,u),++r,!x(e))continue;n.splice(r,0,e),s.push({position:r,type:t,visited:!1,next:o,theta:l(e)})}++r}return s}function ht(n,i,u,s,c,a,t){let o=[],e=a,r=h=>f=>f.position===h,l=[];do{let h=u[e];o.push(h);let f=s.findIndex(r(e)),d=s[f];if(!x(d)){++e;continue}let{visited:m,type:p,next:g}=d;if(d.visited=!0,p===0){if(g===0){let C=s[f-(t?1:-1)];if(C?.position===e+1)C.visited=!0;else{++e;continue}}if(!m&&t&&g>0||a===e&&!t&&g<0){++e;continue}}if(!(t?p>=0:p<=0)){++e;continue}m||l.push(e);let L=f+(t?1:-1),_=s[L];if(!x(_)){++e;continue}e=_.position}while(e<u.length&&e>=0&&e!==a&&o.length<u.length);n.splice(i,c,o);for(let h of l)i=ht(n,++i,u,s,0,h,!t);return i}b.splitPolygonsOnEquator=function(n,i,u,s){x(s)||(s=[]),s.splice(0,0,...n),s.length=n.length;let c=0;for(;c<s.length;){let a=s[c],t=a.slice();if(a.length<3){s[c]=t,++c;continue}let o=vt(t,i,u);if(t.length===a.length||o.length<=1){s[c]=t,++c;continue}o.sort((r,l)=>r.theta-l.theta);let e=t[0].z>=0;c=ht(s,c,t,o,1,0,e)}return s};b.polygonsFromHierarchy=function(n,i,u,s,c,a){let t=[],o=[],e=new $;e.enqueue(n);let r=x(a);for(;e.length!==0;){let l=e.dequeue(),h=l.positions,f=l.holes,d,m;if(s)for(m=h.length,d=0;d<m;d++)c.scaleToGeodeticSurface(h[d],h[d]);if(i||(h=V(h,w.equalsEpsilon,!0)),h.length<3)continue;let p=u(h);if(!x(p))continue;let g=[],y=H.computeWindingOrder2D(p);if(y===Z.CLOCKWISE&&(p.reverse(),h=h.slice().reverse()),r){r=!1;let P=[h];if(P=a(P,P),P.length>1){for(let v of P)e.enqueue(new st(v,f));continue}}let L=h.slice(),_=x(f)?f.length:0,C=[],T;for(d=0;d<_;d++){let P=f[d],v=P.positions;if(s)for(m=v.length,T=0;T<m;++T)c.scaleToGeodeticSurface(v[T],v[T]);if(i||(v=V(v,w.equalsEpsilon,!0)),v.length<3)continue;let E=u(v);if(!x(E))continue;y=H.computeWindingOrder2D(E),y===Z.CLOCKWISE&&(E.reverse(),v=v.slice().reverse()),C.push(v),g.push(L.length),L=L.concat(v),p=p.concat(E);let D=0;for(x(P.holes)&&(D=P.holes.length),T=0;T<D;T++)e.enqueue(P.holes[T])}t.push({outerRing:h,holes:C}),o.push({positions:L,positions2D:p,holes:g})}return{hierarchy:t,polygons:o}};var Ct=new M,Pt=new w,Dt=new K,It=new F;b.computeBoundingRectangle=function(n,i,u,s,c){let a=K.fromAxisAngle(n,s,Dt),t=F.fromQuaternion(a,It),o=Number.POSITIVE_INFINITY,e=Number.NEGATIVE_INFINITY,r=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,h=u.length;for(let f=0;f<h;++f){let d=w.clone(u[f],Pt);F.multiplyByVector(t,d,d);let m=i(d,Ct);x(m)&&(o=Math.min(o,m.x),e=Math.max(e,m.x),r=Math.min(r,m.y),l=Math.max(l,m.y))}return c.x=o,c.y=r,c.width=e-o,c.height=l-r,c};b.createGeometryFromPositions=function(n,i,u,s,c,a,t){let o=H.triangulate(i.positions2D,i.holes);o.length<3&&(o=[0,1,2]);let e=i.positions,r=x(u),l=r?u.positions:void 0;if(c){let h=e.length,f=new Array(h*3),d=0;for(let g=0;g<h;g++){let y=e[g];f[d++]=y.x,f[d++]=y.y,f[d++]=y.z}let m={attributes:{position:new z({componentDatatype:k.DOUBLE,componentsPerAttribute:3,values:f})},indices:o,primitiveType:J.TRIANGLES};r&&(m.attributes.st=new z({componentDatatype:k.FLOAT,componentsPerAttribute:2,values:M.packArray(l)}));let p=new X(m);return a.normal?ct.computeNormal(p):p}if(t===R.GEODESIC)return H.computeSubdivision(n,e,o,l,s);if(t===R.RHUMB)return H.computeRhumbLineSubdivision(n,e,o,l,s)};var rt=[],ut=[],_t=new w,At=new w;b.computeWallGeometry=function(n,i,u,s,c,a){let t,o,e,r,l,h,f,d,m,p=n.length,g=0,y=0,L=x(i),_=L?i.positions:void 0;if(c)for(o=p*3*2,t=new Array(o*2),L&&(m=p*2*2,d=new Array(m*2)),e=0;e<p;e++)r=n[e],l=n[(e+1)%p],t[g]=t[g+o]=r.x,++g,t[g]=t[g+o]=r.y,++g,t[g]=t[g+o]=r.z,++g,t[g]=t[g+o]=l.x,++g,t[g]=t[g+o]=l.y,++g,t[g]=t[g+o]=l.z,++g,L&&(h=_[e],f=_[(e+1)%p],d[y]=d[y+m]=h.x,++y,d[y]=d[y+m]=h.y,++y,d[y]=d[y+m]=f.x,++y,d[y]=d[y+m]=f.y,++y);else{let E=I.chordLength(s,u.maximumRadius),D=0;if(a===R.GEODESIC)for(e=0;e<p;e++)D+=b.subdivideLineCount(n[e],n[(e+1)%p],E);else if(a===R.RHUMB)for(e=0;e<p;e++)D+=b.subdivideRhumbLineCount(u,n[e],n[(e+1)%p],E);for(o=(D+p)*3,t=new Array(o*2),L&&(m=(D+p)*2,d=new Array(m*2)),e=0;e<p;e++){r=n[e],l=n[(e+1)%p];let A,N;L&&(h=_[e],f=_[(e+1)%p]),a===R.GEODESIC?(A=b.subdivideLine(r,l,E,ut),L&&(N=b.subdivideTexcoordLine(h,f,r,l,E,rt))):a===R.RHUMB&&(A=b.subdivideRhumbLine(u,r,l,E,ut),L&&(N=b.subdivideTexcoordRhumbLine(h,f,u,r,l,E,rt)));let lt=A.length;for(let B=0;B<lt;++B,++g)t[g]=A[B],t[g+o]=A[B];if(t[g]=l.x,t[g+o]=l.x,++g,t[g]=l.y,t[g+o]=l.y,++g,t[g]=l.z,t[g+o]=l.z,++g,L){let B=N.length;for(let W=0;W<B;++W,++y)d[y]=N[W],d[y+m]=N[W];d[y]=f.x,d[y+m]=f.x,++y,d[y]=f.y,d[y+m]=f.y,++y}}}p=t.length;let C=nt.createTypedArray(p/3,p-n.length*6),T=0;for(p/=6,e=0;e<p;e++){let E=e,D=E+1,A=E+p,N=A+1;r=w.fromArray(t,E*3,_t),l=w.fromArray(t,D*3,At),!w.equalsEpsilon(r,l,I.EPSILON10,I.EPSILON10)&&(C[T++]=E,C[T++]=A,C[T++]=D,C[T++]=D,C[T++]=A,C[T++]=N)}let P={attributes:new et({position:new z({componentDatatype:k.DOUBLE,componentsPerAttribute:3,values:t})}),indices:C,primitiveType:J.TRIANGLES};return L&&(P.attributes.st=new z({componentDatatype:k.FLOAT,componentsPerAttribute:2,values:d})),new X(P)};var ie=b;export{ie as a}; diff --git a/cesium/Workers/chunk-LHBFSFJE.js b/cesium/Workers/chunk-LHBFSFJE.js new file mode 100644 index 00000000..7ff127a3 --- /dev/null +++ b/cesium/Workers/chunk-LHBFSFJE.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as _}from"./chunk-6AEO73KW.js";import{a as te}from"./chunk-BDWA46XV.js";import{h as Z,i as fe}from"./chunk-LNJEJFV5.js";import{a as ie,b as j}from"./chunk-BPABSUDY.js";import{a as se,b as ee}from"./chunk-2AIOP76V.js";import{a as e,b as O}from"./chunk-IAE6APK2.js";import{a as Q}from"./chunk-3E7FIXV7.js";import{a as le}from"./chunk-NZBME2JK.js";import{f as $}from"./chunk-6DLS2UKD.js";var me={ROUNDED:0,MITERED:1,BEVELED:2};Object.freeze(me);var G=me;var ue={};function P(r,n){if(!$(r))throw new le("identifier is required.");$(ue[r])||(ue[r]=!0,console.warn(n??r))}P.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";P.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";P.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";P.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var he=P;var w=[new e,new e],Se=new e,Te=new e,Be=new e,Ce=new e,ze=new e,Ae=new e,be=new e,Oe=new e,ve=new e,I=new e,W=new e,R={},re=new se;function De(r,n){let a=new Array(r.length);for(let o=0;o<r.length;o++){let t=r[o];re=n.cartesianToCartographic(t,re),a[o]=re.height,r[o]=n.scaleToGeodeticSurface(t,t)}return a}function ne(r,n,a,o){let t=r[0],c=r[1],f=e.angleBetween(t,c),l=Math.ceil(f/o),m=new Array(l),s;if(n===a){for(s=0;s<l;s++)m[s]=n;return m.push(a),m}let d=(a-n)/l;for(s=1;s<l;s++){let x=n+s*d;m[s]=x}return m[0]=n,m.push(a),m}var X=new e,Y=new e;function je(r,n,a,o){let t=new te(a,o),c=t.projectPointOntoPlane(e.add(a,r,X),X),f=t.projectPointOntoPlane(e.add(a,n,Y),Y),l=ee.angleBetween(c,f);return f.x*c.y-f.y*c.x>=0?-l:l}var He=new e(-1,0,0),H=new j,Me=new j,oe=new O,Ne=O.IDENTITY.clone(),Ve=new e,Fe=new ie,de=new e;function v(r,n,a,o,t,c,f,l){let m=Ve,s=Fe;H=fe.eastNorthUpToFixedFrame(r,t,H),m=j.multiplyByPointAsVector(H,He,m),m=e.normalize(m,m);let S=je(m,n,r,t);oe=O.fromRotationZ(S,oe),de.z=c,H=j.multiplyTransformation(H,j.fromRotationTranslation(oe,de,Me),H);let d=Ne;d[0]=f;for(let x=0;x<l;x++)for(let i=0;i<a.length;i+=3)s=e.fromArray(a,i,s),s=O.multiplyByVector(d,s,s),s=j.multiplyByPoint(H,s,s),o.push(s.x,s.y,s.z);return o}var Ge=new e;function ce(r,n,a,o,t,c,f){for(let l=0;l<r.length;l+=3){let m=e.fromArray(r,l,Ge);o=v(m,n,a,o,t,c[l/3],f,1)}return o}function Ie(r,n){let a=r.length,o=new Array(a*6),t=0,c=n.x+n.width/2,f=n.y+n.height/2,l=r[0];o[t++]=l.x-c,o[t++]=0,o[t++]=l.y-f;for(let m=1;m<a;m++){l=r[m];let s=l.x-c,S=l.y-f;o[t++]=s,o[t++]=0,o[t++]=S,o[t++]=s,o[t++]=0,o[t++]=S}return l=r[0],o[t++]=l.x-c,o[t++]=0,o[t++]=l.y-f,o}function ge(r,n){let a=r.length,o=new Array(a*3),t=0,c=n.x+n.width/2,f=n.y+n.height/2;for(let l=0;l<a;l++)o[t++]=r[l].x-c,o[t++]=0,o[t++]=r[l].y-f;return o}var ye=new Z,we=new e,pe=new O;function xe(r,n,a,o,t,c,f,l,m,s){let S=e.angleBetween(e.subtract(n,r,I),e.subtract(a,r,W)),d=o===G.BEVELED?0:Math.ceil(S/Q.toRadians(5)),x;t?x=O.fromQuaternion(Z.fromAxisAngle(e.negate(r,I),S/(d+1),ye),pe):x=O.fromQuaternion(Z.fromAxisAngle(r,S/(d+1),ye),pe);let i,g;if(n=e.clone(n,we),d>0){let D=s?2:1;for(let y=0;y<d;y++)n=O.multiplyByVector(x,n,n),i=e.subtract(n,r,I),i=e.normalize(i,i),t||(i=e.negate(i,i)),g=c.scaleToGeodeticSurface(n,W),f=v(g,i,l,f,c,m,1,D)}else i=e.subtract(n,r,I),i=e.normalize(i,i),t||(i=e.negate(i,i)),g=c.scaleToGeodeticSurface(n,W),f=v(g,i,l,f,c,m,1,1),a=e.clone(a,we),i=e.subtract(a,r,I),i=e.normalize(i,i),t||(i=e.negate(i,i)),g=c.scaleToGeodeticSurface(a,W),f=v(g,i,l,f,c,m,1,1);return f}R.removeDuplicatesFromShape=function(r){let n=r.length,a=[];for(let o=n-1,t=0;t<n;o=t++){let c=r[o],f=r[t];ee.equals(c,f)||a.push(f)}return a};R.angleIsGreaterThanPi=function(r,n,a,o){let t=new te(a,o),c=t.projectPointOntoPlane(e.add(a,r,X),X),f=t.projectPointOntoPlane(e.add(a,n,Y),Y);return f.x*c.y-f.y*c.x>=0};var Le=new e,qe=new e;R.computePositions=function(r,n,a,o,t){let c=o._ellipsoid,f=De(r,c),l=o._granularity,m=o._cornerType,s=t?Ie(n,a):ge(n,a),S=t?ge(n,a):void 0,d=a.height/2,x=a.width/2,i=r.length,g=[],D=t?[]:void 0,y=Se,b=Te,h=Be,E=Ce,B=ze,C=Ae,z=be,u=Oe,T=ve,p=r[0],M=r[1];E=c.geodeticSurfaceNormal(p,E),y=e.subtract(M,p,y),y=e.normalize(y,y),u=e.cross(E,y,u),u=e.normalize(u,u);let N=f[0],A=f[1];t&&(D=v(p,u,S,D,c,N+d,1,1)),T=e.clone(p,T),p=M,b=e.negate(y,b);let V,F;for(let U=1;U<i-1;U++){let ae=t?2:1;if(M=r[U+1],p.equals(M)){he("Positions are too close and are considered equivalent with rounding error.");continue}y=e.subtract(M,p,y),y=e.normalize(y,y),E=c.geodeticSurfaceNormal(p,E);let L=e.multiplyByScalar(E,e.dot(y,E),Le);e.subtract(y,L,L),e.normalize(L,L);let q=e.multiplyByScalar(E,e.dot(b,E),qe);if(e.subtract(b,q,q),e.normalize(q,q),!Q.equalsEpsilon(Math.abs(e.dot(L,q)),1,Q.EPSILON7)){h=e.add(y,b,h),h=e.normalize(h,h),h=e.cross(h,E,h),h=e.cross(E,h,h),h=e.normalize(h,h);let k=1/Math.max(.25,e.magnitude(e.cross(h,b,I))),K=R.angleIsGreaterThanPi(y,b,p,c);K?(B=e.add(p,e.multiplyByScalar(h,k*x,h),B),C=e.add(B,e.multiplyByScalar(u,x,C),C),w[0]=e.clone(T,w[0]),w[1]=e.clone(C,w[1]),V=ne(w,N+d,A+d,l),F=_.generateArc({positions:w,granularity:l,ellipsoid:c}),g=ce(F,u,s,g,c,V,1),u=e.cross(E,y,u),u=e.normalize(u,u),z=e.add(B,e.multiplyByScalar(u,x,z),z),m===G.ROUNDED||m===G.BEVELED?xe(B,C,z,m,K,c,g,s,A+d,t):(h=e.negate(h,h),g=v(p,h,s,g,c,A+d,k,ae)),T=e.clone(z,T)):(B=e.add(p,e.multiplyByScalar(h,k*x,h),B),C=e.add(B,e.multiplyByScalar(u,-x,C),C),w[0]=e.clone(T,w[0]),w[1]=e.clone(C,w[1]),V=ne(w,N+d,A+d,l),F=_.generateArc({positions:w,granularity:l,ellipsoid:c}),g=ce(F,u,s,g,c,V,1),u=e.cross(E,y,u),u=e.normalize(u,u),z=e.add(B,e.multiplyByScalar(u,-x,z),z),m===G.ROUNDED||m===G.BEVELED?xe(B,C,z,m,K,c,g,s,A+d,t):g=v(p,h,s,g,c,A+d,k,ae),T=e.clone(z,T)),b=e.negate(y,b)}else g=v(T,u,s,g,c,N+d,1,1),T=p;N=A,A=f[U+1],p=M}w[0]=e.clone(T,w[0]),w[1]=e.clone(p,w[1]),V=ne(w,N+d,A+d,l),F=_.generateArc({positions:w,granularity:l,ellipsoid:c}),g=ce(F,u,s,g,c,V,1),t&&(D=v(p,u,S,D,c,A+d,1,1)),i=g.length;let Ee=t?i+D.length:i,J=new Float64Array(Ee);return J.set(g),t&&J.set(D,i),J};var ct=R;export{G as a,he as b,ct as c}; diff --git a/cesium/Workers/chunk-LN2UT4R3.js b/cesium/Workers/chunk-LN2UT4R3.js new file mode 100644 index 00000000..ede64a43 --- /dev/null +++ b/cesium/Workers/chunk-LN2UT4R3.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as c,c as x}from"./chunk-2AIOP76V.js";import{a as h}from"./chunk-IAE6APK2.js";import{a as u}from"./chunk-3E7FIXV7.js";import{a as d}from"./chunk-NZBME2JK.js";import{f as n}from"./chunk-6DLS2UKD.js";var s=class e{constructor(i){this._ellipsoid=i??x.WGS84,this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}get ellipsoid(){return this._ellipsoid}static mercatorAngleToGeodeticLatitude(i){return u.PI_OVER_TWO-2*Math.atan(Math.exp(-i))}static geodeticLatitudeToMercatorAngle(i){i>e.MaximumLatitude?i=e.MaximumLatitude:i<-e.MaximumLatitude&&(i=-e.MaximumLatitude);let t=Math.sin(i);return .5*Math.log((1+t)/(1-t))}project(i,t){let o=this._semimajorAxis,r=i.longitude*o,m=e.geodeticLatitudeToMercatorAngle(i.latitude)*o,a=i.height;return n(t)?(t.x=r,t.y=m,t.z=a,t):new h(r,m,a)}unproject(i,t){if(!n(i))throw new d("cartesian is required");let o=this._oneOverSemimajorAxis,r=i.x*o,m=e.mercatorAngleToGeodeticLatitude(i.y*o),a=i.z;return n(t)?(t.longitude=r,t.latitude=m,t.height=a,t):new c(r,m,a)}};s.MaximumLatitude=s.mercatorAngleToGeodeticLatitude(Math.PI);var L=s;export{L as a}; diff --git a/cesium/Workers/chunk-LNJEJFV5.js b/cesium/Workers/chunk-LNJEJFV5.js new file mode 100644 index 00000000..3a7b484e --- /dev/null +++ b/cesium/Workers/chunk-LNJEJFV5.js @@ -0,0 +1,63 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as mt,b as N}from"./chunk-BPABSUDY.js";import{a as de}from"./chunk-G3GDHHWO.js";import{a as ve,b as se,c as Ce,d as nt}from"./chunk-2AIOP76V.js";import{a as v,b as k,c as we}from"./chunk-IAE6APK2.js";import{a as _}from"./chunk-3E7FIXV7.js";import{a as T,b as l}from"./chunk-NZBME2JK.js";import{a as dt,c as pt,d as We,f as h}from"./chunk-6DLS2UKD.js";var Sn=pt((Ve,Ye)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(t){var e=typeof Ve=="object"&&Ve&&!Ve.nodeType&&Ve,n=typeof Ye=="object"&&Ye&&!Ye.nodeType&&Ye,r=typeof global=="object"&&global;(r.global===r||r.window===r||r.self===r)&&(t=r);var s,o=2147483647,c=36,u=1,d=26,w=38,y=700,g=72,x=128,C="-",I=/^xn--/,R=/[^\x20-\x7E]/,D=/[\x2E\u3002\uFF0E\uFF61]/g,z={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Q=c-u,j=Math.floor,Y=String.fromCharCode,Z;function J(m){throw new RangeError(z[m])}function Se(m,A){for(var P=m.length,F=[];P--;)F[P]=A(m[P]);return F}function qe(m,A){var P=m.split("@"),F="";P.length>1&&(F=P[0]+"@",m=P[1]),m=m.replace(D,".");var X=m.split("."),G=Se(X,A).join(".");return F+G}function ye(m){for(var A=[],P=0,F=m.length,X,G;P<F;)X=m.charCodeAt(P++),X>=55296&&X<=56319&&P<F?(G=m.charCodeAt(P++),(G&64512)==56320?A.push(((X&1023)<<10)+(G&1023)+65536):(A.push(X),P--)):A.push(X);return A}function ge(m){return Se(m,function(A){var P="";return A>65535&&(A-=65536,P+=Y(A>>>10&1023|55296),A=56320|A&1023),P+=Y(A),P}).join("")}function ae(m){return m-48<10?m-22:m-65<26?m-65:m-97<26?m-97:c}function i(m,A){return m+22+75*(m<26)-((A!=0)<<5)}function a(m,A,P){var F=0;for(m=P?j(m/y):m>>1,m+=j(m/A);m>Q*d>>1;F+=c)m=j(m/Q);return j(F+(Q+1)*m/(m+w))}function f(m){var A=[],P=m.length,F,X=0,G=x,H=g,ee,oe,fe,ie,te,he,le,Ae,ke;for(ee=m.lastIndexOf(C),ee<0&&(ee=0),oe=0;oe<ee;++oe)m.charCodeAt(oe)>=128&&J("not-basic"),A.push(m.charCodeAt(oe));for(fe=ee>0?ee+1:0;fe<P;){for(ie=X,te=1,he=c;fe>=P&&J("invalid-input"),le=ae(m.charCodeAt(fe++)),(le>=c||le>j((o-X)/te))&&J("overflow"),X+=le*te,Ae=he<=H?u:he>=H+d?d:he-H,!(le<Ae);he+=c)ke=c-Ae,te>j(o/ke)&&J("overflow"),te*=ke;F=A.length+1,H=a(X-ie,F,ie==0),j(X/F)>o-G&&J("overflow"),G+=j(X/F),X%=F,A.splice(X++,0,G)}return ge(A)}function p(m){var A,P,F,X,G,H,ee,oe,fe,ie,te,he=[],le,Ae,ke,Qt;for(m=ye(m),le=m.length,A=x,P=0,G=g,H=0;H<le;++H)te=m[H],te<128&&he.push(Y(te));for(F=X=he.length,X&&he.push(C);F<le;){for(ee=o,H=0;H<le;++H)te=m[H],te>=A&&te<ee&&(ee=te);for(Ae=F+1,ee-A>j((o-P)/Ae)&&J("overflow"),P+=(ee-A)*Ae,A=ee,H=0;H<le;++H)if(te=m[H],te<A&&++P>o&&J("overflow"),te==A){for(oe=P,fe=c;ie=fe<=G?u:fe>=G+d?d:fe-G,!(oe<ie);fe+=c)Qt=oe-ie,ke=c-ie,he.push(Y(i(ie+Qt%ke,0))),oe=j(Qt/ke);he.push(Y(i(oe,0))),G=a(P,Ae,F==X),P=0,++F}++P,++A}return he.join("")}function b(m){return qe(m,function(A){return I.test(A)?f(A.slice(4).toLowerCase()):A})}function S(m){return qe(m,function(A){return R.test(A)?"xn--"+p(A):A})}if(s={version:"1.3.2",ucs2:{decode:ye,encode:ge},decode:f,encode:p,toASCII:S,toUnicode:b},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return s});else if(e&&n)if(Ye.exports==e)n.exports=s;else for(Z in s)s.hasOwnProperty(Z)&&(e[Z]=s[Z]);else t.punycode=s})(Ve)});var En=pt((vn,_t)=>{/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(t,e){"use strict";typeof _t=="object"&&_t.exports?_t.exports=e():typeof define=="function"&&define.amd?define(e):t.IPv6=e(t)})(vn,function(t){"use strict";var e=t&&t.IPv6;function n(s){var o=s.toLowerCase(),c=o.split(":"),u=c.length,d=8;c[0]===""&&c[1]===""&&c[2]===""?(c.shift(),c.shift()):c[0]===""&&c[1]===""?c.shift():c[u-1]===""&&c[u-2]===""&&c.pop(),u=c.length,c[u-1].indexOf(".")!==-1&&(d=7);var w;for(w=0;w<u&&c[w]!=="";w++);if(w<d)for(c.splice(w,1,"0000");c.length<d;)c.splice(w,0,"0000");for(var y,g=0;g<d;g++){y=c[g].split("");for(var x=0;x<3&&(y[0]==="0"&&y.length>1);x++)y.splice(0,1);c[g]=y.join("")}var C=-1,I=0,R=0,D=-1,z=!1;for(g=0;g<d;g++)z?c[g]==="0"?R+=1:(z=!1,R>I&&(C=D,I=R)):c[g]==="0"&&(z=!0,D=g,R=1);R>I&&(C=D,I=R),I>1&&c.splice(C,I,""),u=c.length;var Q="";for(c[0]===""&&(Q=":"),g=0;g<u&&(Q+=c[g],g!==u-1);g++)Q+=":";return c[u-1]===""&&(Q+=":"),Q}function r(){return t.IPv6===this&&(t.IPv6=e),this}return{best:n,noConflict:r}})});var xn=pt((Tn,St)=>{/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(t,e){"use strict";typeof St=="object"&&St.exports?St.exports=e():typeof define=="function"&&define.amd?define(e):t.SecondLevelDomains=e(t)})(Tn,function(t){"use strict";var e=t&&t.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(r){var s=r.lastIndexOf(".");if(s<=0||s>=r.length-1)return!1;var o=r.lastIndexOf(".",s-1);if(o<=0||o>=s-1)return!1;var c=n.list[r.slice(s+1)];return c?c.indexOf(" "+r.slice(o+1,s)+" ")>=0:!1},is:function(r){var s=r.lastIndexOf(".");if(s<=0||s>=r.length-1)return!1;var o=r.lastIndexOf(".",s-1);if(o>=0)return!1;var c=n.list[r.slice(s+1)];return c?c.indexOf(" "+r.slice(0,s)+" ")>=0:!1},get:function(r){var s=r.lastIndexOf(".");if(s<=0||s>=r.length-1)return null;var o=r.lastIndexOf(".",s-1);if(o<=0||o>=s-1)return null;var c=n.list[r.slice(s+1)];return!c||c.indexOf(" "+r.slice(o+1,s)+" ")<0?null:r.slice(o+1)},noConflict:function(){return t.SecondLevelDomains===this&&(t.SecondLevelDomains=e),this}};return n})});var Ne=pt((An,vt)=>{/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(t,e){"use strict";typeof vt=="object"&&vt.exports?vt.exports=e(Sn(),En(),xn()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],e):t.URI=e(t.punycode,t.IPv6,t.SecondLevelDomains,t)})(An,function(t,e,n,r){"use strict";var s=r&&r.URI;function o(i,a){var f=arguments.length>=1,p=arguments.length>=2;if(!(this instanceof o))return f?p?new o(i,a):new o(i):new o;if(i===void 0){if(f)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?i=location.href+"":i=""}if(i===null&&f)throw new TypeError("null is not a valid argument for URI");return this.href(i),a!==void 0?this.absoluteTo(a):this}function c(i){return/^[0-9]+$/.test(i)}o.version="1.19.11";var u=o.prototype,d=Object.prototype.hasOwnProperty;function w(i){return i.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function y(i){return i===void 0?"Undefined":String(Object.prototype.toString.call(i)).slice(8,-1)}function g(i){return y(i)==="Array"}function x(i,a){var f={},p,b;if(y(a)==="RegExp")f=null;else if(g(a))for(p=0,b=a.length;p<b;p++)f[a[p]]=!0;else f[a]=!0;for(p=0,b=i.length;p<b;p++){var S=f&&f[i[p]]!==void 0||!f&&a.test(i[p]);S&&(i.splice(p,1),b--,p--)}return i}function C(i,a){var f,p;if(g(a)){for(f=0,p=a.length;f<p;f++)if(!C(i,a[f]))return!1;return!0}var b=y(a);for(f=0,p=i.length;f<p;f++)if(b==="RegExp"){if(typeof i[f]=="string"&&i[f].match(a))return!0}else if(i[f]===a)return!0;return!1}function I(i,a){if(!g(i)||!g(a)||i.length!==a.length)return!1;i.sort(),a.sort();for(var f=0,p=i.length;f<p;f++)if(i[f]!==a[f])return!1;return!0}function R(i){var a=/^\/+|\/+$/g;return i.replace(a,"")}o._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,preventInvalidHostname:o.preventInvalidHostname,duplicateQueryParameters:o.duplicateQueryParameters,escapeQuerySpace:o.escapeQuerySpace}},o.preventInvalidHostname=!1,o.duplicateQueryParameters=!1,o.escapeQuerySpace=!0,o.protocol_expression=/^[a-z][a-z0-9.+-]*$/i,o.idn_expression=/[^a-z0-9\._-]/i,o.punycode_expression=/(xn--)/i,o.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,o.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,o.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?ÂĢÂģ“”‘’]))/ig,o.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?ÂĢÂģ“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},o.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,o.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,o.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},o.hostProtocols=["http","https"],o.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,o.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},o.getDomAttribute=function(i){if(!(!i||!i.nodeName)){var a=i.nodeName.toLowerCase();if(!(a==="input"&&i.type!=="image"))return o.domAttributes[a]}};function D(i){return escape(i)}function z(i){return encodeURIComponent(i).replace(/[!'()*]/g,D).replace(/\*/g,"%2A")}o.encode=z,o.decode=decodeURIComponent,o.iso8859=function(){o.encode=escape,o.decode=unescape},o.unicode=function(){o.encode=z,o.decode=decodeURIComponent},o.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},o.encodeQuery=function(i,a){var f=o.encode(i+"");return a===void 0&&(a=o.escapeQuerySpace),a?f.replace(/%20/g,"+"):f},o.decodeQuery=function(i,a){i+="",a===void 0&&(a=o.escapeQuerySpace);try{return o.decode(a?i.replace(/\+/g,"%20"):i)}catch{return i}};var Q={encode:"encode",decode:"decode"},j,Y=function(i,a){return function(f){try{return o[a](f+"").replace(o.characters[i][a].expression,function(p){return o.characters[i][a].map[p]})}catch{return f}}};for(j in Q)o[j+"PathSegment"]=Y("pathname",Q[j]),o[j+"UrnPathSegment"]=Y("urnpath",Q[j]);var Z=function(i,a,f){return function(p){var b;f?b=function(P){return o[a](o[f](P))}:b=o[a];for(var S=(p+"").split(i),m=0,A=S.length;m<A;m++)S[m]=b(S[m]);return S.join(i)}};o.decodePath=Z("/","decodePathSegment"),o.decodeUrnPath=Z(":","decodeUrnPathSegment"),o.recodePath=Z("/","encodePathSegment","decode"),o.recodeUrnPath=Z(":","encodeUrnPathSegment","decode"),o.encodeReserved=Y("reserved","encode"),o.parse=function(i,a){var f;return a||(a={preventInvalidHostname:o.preventInvalidHostname}),i=i.replace(o.leading_whitespace_expression,""),i=i.replace(o.ascii_tab_whitespace,""),f=i.indexOf("#"),f>-1&&(a.fragment=i.substring(f+1)||null,i=i.substring(0,f)),f=i.indexOf("?"),f>-1&&(a.query=i.substring(f+1)||null,i=i.substring(0,f)),i=i.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),i=i.replace(/^[/\\]{2,}/i,"//"),i.substring(0,2)==="//"?(a.protocol=null,i=i.substring(2),i=o.parseAuthority(i,a)):(f=i.indexOf(":"),f>-1&&(a.protocol=i.substring(0,f)||null,a.protocol&&!a.protocol.match(o.protocol_expression)?a.protocol=void 0:i.substring(f+1,f+3).replace(/\\/g,"/")==="//"?(i=i.substring(f+3),i=o.parseAuthority(i,a)):(i=i.substring(f+1),a.urn=!0))),a.path=i,a},o.parseHost=function(i,a){i||(i=""),i=i.replace(/\\/g,"/");var f=i.indexOf("/"),p,b;if(f===-1&&(f=i.length),i.charAt(0)==="[")p=i.indexOf("]"),a.hostname=i.substring(1,p)||null,a.port=i.substring(p+2,f)||null,a.port==="/"&&(a.port=null);else{var S=i.indexOf(":"),m=i.indexOf("/"),A=i.indexOf(":",S+1);A!==-1&&(m===-1||A<m)?(a.hostname=i.substring(0,f)||null,a.port=null):(b=i.substring(0,f).split(":"),a.hostname=b[0]||null,a.port=b[1]||null)}return a.hostname&&i.substring(f).charAt(0)!=="/"&&(f++,i="/"+i),a.preventInvalidHostname&&o.ensureValidHostname(a.hostname,a.protocol),a.port&&o.ensureValidPort(a.port),i.substring(f)||"/"},o.parseAuthority=function(i,a){return i=o.parseUserinfo(i,a),o.parseHost(i,a)},o.parseUserinfo=function(i,a){var f=i,p=i.indexOf("\\");p!==-1&&(i=i.replace(/\\/g,"/"));var b=i.indexOf("/"),S=i.lastIndexOf("@",b>-1?b:i.length-1),m;return S>-1&&(b===-1||S<b)?(m=i.substring(0,S).split(":"),a.username=m[0]?o.decode(m[0]):null,m.shift(),a.password=m[0]?o.decode(m.join(":")):null,i=f.substring(S+1)):(a.username=null,a.password=null),i},o.parseQuery=function(i,a){if(!i)return{};if(i=i.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!i)return{};for(var f={},p=i.split("&"),b=p.length,S,m,A,P=0;P<b;P++)S=p[P].split("="),m=o.decodeQuery(S.shift(),a),A=S.length?o.decodeQuery(S.join("="),a):null,m!=="__proto__"&&(d.call(f,m)?((typeof f[m]=="string"||f[m]===null)&&(f[m]=[f[m]]),f[m].push(A)):f[m]=A);return f},o.build=function(i){var a="",f=!1;return i.protocol&&(a+=i.protocol+":"),!i.urn&&(a||i.hostname)&&(a+="//",f=!0),a+=o.buildAuthority(i)||"",typeof i.path=="string"&&(i.path.charAt(0)!=="/"&&f&&(a+="/"),a+=i.path),typeof i.query=="string"&&i.query&&(a+="?"+i.query),typeof i.fragment=="string"&&i.fragment&&(a+="#"+i.fragment),a},o.buildHost=function(i){var a="";if(i.hostname)o.ip6_expression.test(i.hostname)?a+="["+i.hostname+"]":a+=i.hostname;else return"";return i.port&&(a+=":"+i.port),a},o.buildAuthority=function(i){return o.buildUserinfo(i)+o.buildHost(i)},o.buildUserinfo=function(i){var a="";return i.username&&(a+=o.encode(i.username)),i.password&&(a+=":"+o.encode(i.password)),a&&(a+="@"),a},o.buildQuery=function(i,a,f){var p="",b,S,m,A;for(S in i)if(S!=="__proto__"&&d.call(i,S))if(g(i[S]))for(b={},m=0,A=i[S].length;m<A;m++)i[S][m]!==void 0&&b[i[S][m]+""]===void 0&&(p+="&"+o.buildQueryParameter(S,i[S][m],f),a!==!0&&(b[i[S][m]+""]=!0));else i[S]!==void 0&&(p+="&"+o.buildQueryParameter(S,i[S],f));return p.substring(1)},o.buildQueryParameter=function(i,a,f){return o.encodeQuery(i,f)+(a!==null?"="+o.encodeQuery(a,f):"")},o.addQuery=function(i,a,f){if(typeof a=="object")for(var p in a)d.call(a,p)&&o.addQuery(i,p,a[p]);else if(typeof a=="string"){if(i[a]===void 0){i[a]=f;return}else typeof i[a]=="string"&&(i[a]=[i[a]]);g(f)||(f=[f]),i[a]=(i[a]||[]).concat(f)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},o.setQuery=function(i,a,f){if(typeof a=="object")for(var p in a)d.call(a,p)&&o.setQuery(i,p,a[p]);else if(typeof a=="string")i[a]=f===void 0?null:f;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},o.removeQuery=function(i,a,f){var p,b,S;if(g(a))for(p=0,b=a.length;p<b;p++)i[a[p]]=void 0;else if(y(a)==="RegExp")for(S in i)a.test(S)&&(i[S]=void 0);else if(typeof a=="object")for(S in a)d.call(a,S)&&o.removeQuery(i,S,a[S]);else if(typeof a=="string")f!==void 0?y(f)==="RegExp"?!g(i[a])&&f.test(i[a])?i[a]=void 0:i[a]=x(i[a],f):i[a]===String(f)&&(!g(f)||f.length===1)?i[a]=void 0:g(i[a])&&(i[a]=x(i[a],f)):i[a]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},o.hasQuery=function(i,a,f,p){switch(y(a)){case"String":break;case"RegExp":for(var b in i)if(d.call(i,b)&&a.test(b)&&(f===void 0||o.hasQuery(i,b,f)))return!0;return!1;case"Object":for(var S in a)if(d.call(a,S)&&!o.hasQuery(i,S,a[S]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(y(f)){case"Undefined":return a in i;case"Boolean":var m=!!(g(i[a])?i[a].length:i[a]);return f===m;case"Function":return!!f(i[a],a,i);case"Array":if(!g(i[a]))return!1;var A=p?C:I;return A(i[a],f);case"RegExp":return g(i[a])?p?C(i[a],f):!1:!!(i[a]&&i[a].match(f));case"Number":f=String(f);case"String":return g(i[a])?p?C(i[a],f):!1:i[a]===f;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},o.joinPaths=function(){for(var i=[],a=[],f=0,p=0;p<arguments.length;p++){var b=new o(arguments[p]);i.push(b);for(var S=b.segment(),m=0;m<S.length;m++)typeof S[m]=="string"&&a.push(S[m]),S[m]&&f++}if(!a.length||!f)return new o("");var A=new o("").segment(a);return(i[0].path()===""||i[0].path().slice(0,1)==="/")&&A.path("/"+A.path()),A.normalize()},o.commonPath=function(i,a){var f=Math.min(i.length,a.length),p;for(p=0;p<f;p++)if(i.charAt(p)!==a.charAt(p)){p--;break}return p<1?i.charAt(0)===a.charAt(0)&&i.charAt(0)==="/"?"/":"":((i.charAt(p)!=="/"||a.charAt(p)!=="/")&&(p=i.substring(0,p).lastIndexOf("/")),i.substring(0,p+1))},o.withinString=function(i,a,f){f||(f={});var p=f.start||o.findUri.start,b=f.end||o.findUri.end,S=f.trim||o.findUri.trim,m=f.parens||o.findUri.parens,A=/[a-z0-9-]=["']?$/i;for(p.lastIndex=0;;){var P=p.exec(i);if(!P)break;var F=P.index;if(f.ignoreHtml){var X=i.slice(Math.max(F-3,0),F);if(X&&A.test(X))continue}for(var G=F+i.slice(F).search(b),H=i.slice(F,G),ee=-1;;){var oe=m.exec(H);if(!oe)break;var fe=oe.index+oe[0].length;ee=Math.max(ee,fe)}if(ee>-1?H=H.slice(0,ee)+H.slice(ee).replace(S,""):H=H.replace(S,""),!(H.length<=P[0].length)&&!(f.ignore&&f.ignore.test(H))){G=F+H.length;var ie=a(H,F,G,i);if(ie===void 0){p.lastIndex=G;continue}ie=String(ie),i=i.slice(0,F)+ie+i.slice(G),p.lastIndex=F+ie.length}}return p.lastIndex=0,i},o.ensureValidHostname=function(i,a){var f=!!i,p=!!a,b=!1;if(p&&(b=C(o.hostProtocols,a)),b&&!f)throw new TypeError("Hostname cannot be empty, if protocol is "+a);if(i&&i.match(o.invalid_hostname_characters)){if(!t)throw new TypeError('Hostname "'+i+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(t.toASCII(i).match(o.invalid_hostname_characters))throw new TypeError('Hostname "'+i+'" contains characters other than [A-Z0-9.-:_]')}},o.ensureValidPort=function(i){if(i){var a=Number(i);if(!(c(a)&&a>0&&a<65536))throw new TypeError('Port "'+i+'" is not a valid port')}},o.noConflict=function(i){if(i){var a={URI:this.noConflict()};return r.URITemplate&&typeof r.URITemplate.noConflict=="function"&&(a.URITemplate=r.URITemplate.noConflict()),r.IPv6&&typeof r.IPv6.noConflict=="function"&&(a.IPv6=r.IPv6.noConflict()),r.SecondLevelDomains&&typeof r.SecondLevelDomains.noConflict=="function"&&(a.SecondLevelDomains=r.SecondLevelDomains.noConflict()),a}else r.URI===this&&(r.URI=s);return this},u.build=function(i){return i===!0?this._deferred_build=!0:(i===void 0||this._deferred_build)&&(this._string=o.build(this._parts),this._deferred_build=!1),this},u.clone=function(){return new o(this)},u.valueOf=u.toString=function(){return this.build(!1)._string};function J(i){return function(a,f){return a===void 0?this._parts[i]||"":(this._parts[i]=a||null,this.build(!f),this)}}function Se(i,a){return function(f,p){return f===void 0?this._parts[i]||"":(f!==null&&(f=f+"",f.charAt(0)===a&&(f=f.substring(1))),this._parts[i]=f,this.build(!p),this)}}u.protocol=J("protocol"),u.username=J("username"),u.password=J("password"),u.hostname=J("hostname"),u.port=J("port"),u.query=Se("query","?"),u.fragment=Se("fragment","#"),u.search=function(i,a){var f=this.query(i,a);return typeof f=="string"&&f.length?"?"+f:f},u.hash=function(i,a){var f=this.fragment(i,a);return typeof f=="string"&&f.length?"#"+f:f},u.pathname=function(i,a){if(i===void 0||i===!0){var f=this._parts.path||(this._parts.hostname?"/":"");return i?(this._parts.urn?o.decodeUrnPath:o.decodePath)(f):f}else return this._parts.urn?this._parts.path=i?o.recodeUrnPath(i):"":this._parts.path=i?o.recodePath(i):"/",this.build(!a),this},u.path=u.pathname,u.href=function(i,a){var f;if(i===void 0)return this.toString();this._string="",this._parts=o._parts();var p=i instanceof o,b=typeof i=="object"&&(i.hostname||i.path||i.pathname);if(i.nodeName){var S=o.getDomAttribute(i);i=i[S]||"",b=!1}if(!p&&b&&i.pathname!==void 0&&(i=i.toString()),typeof i=="string"||i instanceof String)this._parts=o.parse(String(i),this._parts);else if(p||b){var m=p?i._parts:i;for(f in m)f!=="query"&&d.call(this._parts,f)&&(this._parts[f]=m[f]);m.query&&this.query(m.query,!1)}else throw new TypeError("invalid input");return this.build(!a),this},u.is=function(i){var a=!1,f=!1,p=!1,b=!1,S=!1,m=!1,A=!1,P=!this._parts.urn;switch(this._parts.hostname&&(P=!1,f=o.ip4_expression.test(this._parts.hostname),p=o.ip6_expression.test(this._parts.hostname),a=f||p,b=!a,S=b&&n&&n.has(this._parts.hostname),m=b&&o.idn_expression.test(this._parts.hostname),A=b&&o.punycode_expression.test(this._parts.hostname)),i.toLowerCase()){case"relative":return P;case"absolute":return!P;case"domain":case"name":return b;case"sld":return S;case"ip":return a;case"ip4":case"ipv4":case"inet4":return f;case"ip6":case"ipv6":case"inet6":return p;case"idn":return m;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return A}return null};var qe=u.protocol,ye=u.port,ge=u.hostname;u.protocol=function(i,a){if(i&&(i=i.replace(/:(\/\/)?$/,""),!i.match(o.protocol_expression)))throw new TypeError('Protocol "'+i+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return qe.call(this,i,a)},u.scheme=u.protocol,u.port=function(i,a){return this._parts.urn?i===void 0?"":this:(i!==void 0&&(i===0&&(i=null),i&&(i+="",i.charAt(0)===":"&&(i=i.substring(1)),o.ensureValidPort(i))),ye.call(this,i,a))},u.hostname=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(i!==void 0){var f={preventInvalidHostname:this._parts.preventInvalidHostname},p=o.parseHost(i,f);if(p!=="/")throw new TypeError('Hostname "'+i+'" contains characters other than [A-Z0-9.-]');i=f.hostname,this._parts.preventInvalidHostname&&o.ensureValidHostname(i,this._parts.protocol)}return ge.call(this,i,a)},u.origin=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(i===void 0){var f=this.protocol(),p=this.authority();return p?(f?f+"://":"")+this.authority():""}else{var b=o(i);return this.protocol(b.protocol()).authority(b.authority()).build(!a),this}},u.host=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(i===void 0)return this._parts.hostname?o.buildHost(this._parts):"";var f=o.parseHost(i,this._parts);if(f!=="/")throw new TypeError('Hostname "'+i+'" contains characters other than [A-Z0-9.-]');return this.build(!a),this},u.authority=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(i===void 0)return this._parts.hostname?o.buildAuthority(this._parts):"";var f=o.parseAuthority(i,this._parts);if(f!=="/")throw new TypeError('Hostname "'+i+'" contains characters other than [A-Z0-9.-]');return this.build(!a),this},u.userinfo=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(i===void 0){var f=o.buildUserinfo(this._parts);return f&&f.substring(0,f.length-1)}else return i[i.length-1]!=="@"&&(i+="@"),o.parseUserinfo(i,this._parts),this.build(!a),this},u.resource=function(i,a){var f;return i===void 0?this.path()+this.search()+this.hash():(f=o.parse(i),this._parts.path=f.path,this._parts.query=f.query,this._parts.fragment=f.fragment,this.build(!a),this)},u.subdomain=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(i===void 0){if(!this._parts.hostname||this.is("IP"))return"";var f=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,f)||""}else{var p=this._parts.hostname.length-this.domain().length,b=this._parts.hostname.substring(0,p),S=new RegExp("^"+w(b));if(i&&i.charAt(i.length-1)!=="."&&(i+="."),i.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return i&&o.ensureValidHostname(i,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(S,i),this.build(!a),this}},u.domain=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(typeof i=="boolean"&&(a=i,i=void 0),i===void 0){if(!this._parts.hostname||this.is("IP"))return"";var f=this._parts.hostname.match(/\./g);if(f&&f.length<2)return this._parts.hostname;var p=this._parts.hostname.length-this.tld(a).length-1;return p=this._parts.hostname.lastIndexOf(".",p-1)+1,this._parts.hostname.substring(p)||""}else{if(!i)throw new TypeError("cannot set domain empty");if(i.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(o.ensureValidHostname(i,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=i;else{var b=new RegExp(w(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(b,i)}return this.build(!a),this}},u.tld=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(typeof i=="boolean"&&(a=i,i=void 0),i===void 0){if(!this._parts.hostname||this.is("IP"))return"";var f=this._parts.hostname.lastIndexOf("."),p=this._parts.hostname.substring(f+1);return a!==!0&&n&&n.list[p.toLowerCase()]&&n.get(this._parts.hostname)||p}else{var b;if(i)if(i.match(/[^a-zA-Z0-9-]/))if(n&&n.is(i))b=new RegExp(w(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(b,i);else throw new TypeError('TLD "'+i+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");b=new RegExp(w(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(b,i)}else throw new TypeError("cannot set TLD empty");return this.build(!a),this}},u.directory=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(i===void 0||i===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var f=this._parts.path.length-this.filename().length-1,p=this._parts.path.substring(0,f)||(this._parts.hostname?"/":"");return i?o.decodePath(p):p}else{var b=this._parts.path.length-this.filename().length,S=this._parts.path.substring(0,b),m=new RegExp("^"+w(S));return this.is("relative")||(i||(i="/"),i.charAt(0)!=="/"&&(i="/"+i)),i&&i.charAt(i.length-1)!=="/"&&(i+="/"),i=o.recodePath(i),this._parts.path=this._parts.path.replace(m,i),this.build(!a),this}},u.filename=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(typeof i!="string"){if(!this._parts.path||this._parts.path==="/")return"";var f=this._parts.path.lastIndexOf("/"),p=this._parts.path.substring(f+1);return i?o.decodePathSegment(p):p}else{var b=!1;i.charAt(0)==="/"&&(i=i.substring(1)),i.match(/\.?\//)&&(b=!0);var S=new RegExp(w(this.filename())+"$");return i=o.recodePath(i),this._parts.path=this._parts.path.replace(S,i),b?this.normalizePath(a):this.build(!a),this}},u.suffix=function(i,a){if(this._parts.urn)return i===void 0?"":this;if(i===void 0||i===!0){if(!this._parts.path||this._parts.path==="/")return"";var f=this.filename(),p=f.lastIndexOf("."),b,S;return p===-1?"":(b=f.substring(p+1),S=/^[a-z0-9%]+$/i.test(b)?b:"",i?o.decodePathSegment(S):S)}else{i.charAt(0)==="."&&(i=i.substring(1));var m=this.suffix(),A;if(m)i?A=new RegExp(w(m)+"$"):A=new RegExp(w("."+m)+"$");else{if(!i)return this;this._parts.path+="."+o.recodePath(i)}return A&&(i=o.recodePath(i),this._parts.path=this._parts.path.replace(A,i)),this.build(!a),this}},u.segment=function(i,a,f){var p=this._parts.urn?":":"/",b=this.path(),S=b.substring(0,1)==="/",m=b.split(p);if(i!==void 0&&typeof i!="number"&&(f=a,a=i,i=void 0),i!==void 0&&typeof i!="number")throw new Error('Bad segment "'+i+'", must be 0-based integer');if(S&&m.shift(),i<0&&(i=Math.max(m.length+i,0)),a===void 0)return i===void 0?m:m[i];if(i===null||m[i]===void 0)if(g(a)){m=[];for(var A=0,P=a.length;A<P;A++)!a[A].length&&(!m.length||!m[m.length-1].length)||(m.length&&!m[m.length-1].length&&m.pop(),m.push(R(a[A])))}else(a||typeof a=="string")&&(a=R(a),m[m.length-1]===""?m[m.length-1]=a:m.push(a));else a?m[i]=R(a):m.splice(i,1);return S&&m.unshift(""),this.path(m.join(p),f)},u.segmentCoded=function(i,a,f){var p,b,S;if(typeof i!="number"&&(f=a,a=i,i=void 0),a===void 0){if(p=this.segment(i,a,f),!g(p))p=p!==void 0?o.decode(p):void 0;else for(b=0,S=p.length;b<S;b++)p[b]=o.decode(p[b]);return p}if(!g(a))a=typeof a=="string"||a instanceof String?o.encode(a):a;else for(b=0,S=a.length;b<S;b++)a[b]=o.encode(a[b]);return this.segment(i,a,f)};var ae=u.query;return u.query=function(i,a){if(i===!0)return o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof i=="function"){var f=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace),p=i.call(this,f);return this._parts.query=o.buildQuery(p||f,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!a),this}else return i!==void 0&&typeof i!="string"?(this._parts.query=o.buildQuery(i,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!a),this):ae.call(this,i,a)},u.setQuery=function(i,a,f){var p=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof i=="string"||i instanceof String)p[i]=a!==void 0?a:null;else if(typeof i=="object")for(var b in i)d.call(i,b)&&(p[b]=i[b]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=o.buildQuery(p,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof i!="string"&&(f=a),this.build(!f),this},u.addQuery=function(i,a,f){var p=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return o.addQuery(p,i,a===void 0?null:a),this._parts.query=o.buildQuery(p,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof i!="string"&&(f=a),this.build(!f),this},u.removeQuery=function(i,a,f){var p=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return o.removeQuery(p,i,a),this._parts.query=o.buildQuery(p,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof i!="string"&&(f=a),this.build(!f),this},u.hasQuery=function(i,a,f){var p=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return o.hasQuery(p,i,a,f)},u.setSearch=u.setQuery,u.addSearch=u.addQuery,u.removeSearch=u.removeQuery,u.hasSearch=u.hasQuery,u.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},u.normalizeProtocol=function(i){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!i)),this},u.normalizeHostname=function(i){return this._parts.hostname&&(this.is("IDN")&&t?this._parts.hostname=t.toASCII(this._parts.hostname):this.is("IPv6")&&e&&(this._parts.hostname=e.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!i)),this},u.normalizePort=function(i){return typeof this._parts.protocol=="string"&&this._parts.port===o.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!i)),this},u.normalizePath=function(i){var a=this._parts.path;if(!a)return this;if(this._parts.urn)return this._parts.path=o.recodeUrnPath(this._parts.path),this.build(!i),this;if(this._parts.path==="/")return this;a=o.recodePath(a);var f,p="",b,S;for(a.charAt(0)!=="/"&&(f=!0,a="/"+a),(a.slice(-3)==="/.."||a.slice(-2)==="/.")&&(a+="/"),a=a.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),f&&(p=a.substring(1).match(/^(\.\.\/)+/)||"",p&&(p=p[0]));b=a.search(/\/\.\.(\/|$)/),b!==-1;){if(b===0){a=a.substring(3);continue}S=a.substring(0,b).lastIndexOf("/"),S===-1&&(S=b),a=a.substring(0,S)+a.substring(b+3)}return f&&this.is("relative")&&(a=p+a.substring(1)),this._parts.path=a,this.build(!i),this},u.normalizePathname=u.normalizePath,u.normalizeQuery=function(i){return typeof this._parts.query=="string"&&(this._parts.query.length?this.query(o.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!i)),this},u.normalizeFragment=function(i){return this._parts.fragment||(this._parts.fragment=null,this.build(!i)),this},u.normalizeSearch=u.normalizeQuery,u.normalizeHash=u.normalizeFragment,u.iso8859=function(){var i=o.encode,a=o.decode;o.encode=escape,o.decode=decodeURIComponent;try{this.normalize()}finally{o.encode=i,o.decode=a}return this},u.unicode=function(){var i=o.encode,a=o.decode;o.encode=z,o.decode=unescape;try{this.normalize()}finally{o.encode=i,o.decode=a}return this},u.readable=function(){var i=this.clone();i.username("").password("").normalize();var a="";if(i._parts.protocol&&(a+=i._parts.protocol+"://"),i._parts.hostname&&(i.is("punycode")&&t?(a+=t.toUnicode(i._parts.hostname),i._parts.port&&(a+=":"+i._parts.port)):a+=i.host()),i._parts.hostname&&i._parts.path&&i._parts.path.charAt(0)!=="/"&&(a+="/"),a+=i.path(!0),i._parts.query){for(var f="",p=0,b=i._parts.query.split("&"),S=b.length;p<S;p++){var m=(b[p]||"").split("=");f+="&"+o.decodeQuery(m[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),m[1]!==void 0&&(f+="="+o.decodeQuery(m[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}a+="?"+f.substring(1)}return a+=o.decodeQuery(i.hash(),!0),a},u.absoluteTo=function(i){var a=this.clone(),f=["protocol","username","password","hostname","port"],p,b,S;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(i instanceof o||(i=new o(i)),a._parts.protocol||(a._parts.protocol=i._parts.protocol,this._parts.hostname))return a;for(b=0;S=f[b];b++)a._parts[S]=i._parts[S];return a._parts.path?(a._parts.path.substring(-2)===".."&&(a._parts.path+="/"),a.path().charAt(0)!=="/"&&(p=i.directory(),p=p||(i.path().indexOf("/")===0?"/":""),a._parts.path=(p?p+"/":"")+a._parts.path,a.normalizePath())):(a._parts.path=i._parts.path,a._parts.query||(a._parts.query=i._parts.query)),a.build(),a},u.relativeTo=function(i){var a=this.clone().normalize(),f,p,b,S,m;if(a._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(i=new o(i).normalize(),f=a._parts,p=i._parts,S=a.path(),m=i.path(),S.charAt(0)!=="/")throw new Error("URI is already relative");if(m.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(f.protocol===p.protocol&&(f.protocol=null),f.username!==p.username||f.password!==p.password||f.protocol!==null||f.username!==null||f.password!==null)return a.build();if(f.hostname===p.hostname&&f.port===p.port)f.hostname=null,f.port=null;else return a.build();if(S===m)return f.path="",a.build();if(b=o.commonPath(S,m),!b)return a.build();var A=p.path.substring(b.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return f.path=A+f.path.substring(b.length)||"./",a.build()},u.equals=function(i){var a=this.clone(),f=new o(i),p={},b={},S={},m,A,P;if(a.normalize(),f.normalize(),a.toString()===f.toString())return!0;if(m=a.query(),A=f.query(),a.query(""),f.query(""),a.toString()!==f.toString()||m.length!==A.length)return!1;p=o.parseQuery(m,this._parts.escapeQuerySpace),b=o.parseQuery(A,this._parts.escapeQuerySpace);for(P in p)if(d.call(p,P)){if(g(p[P])){if(!I(p[P],b[P]))return!1}else if(p[P]!==b[P])return!1;S[P]=!0}for(P in b)if(d.call(b,P)&&!S[P])return!1;return!0},u.preventInvalidHostname=function(i){return this._parts.preventInvalidHostname=!!i,this},u.duplicateQueryParameters=function(i){return this._parts.duplicateQueryParameters=!!i,this},u.escapeQuerySpace=function(i){return this._parts.escapeQuerySpace=!!i,this},o})});function yn(t,e,n){n=n??!1;let r={},s=h(t),o=h(e),c,u,d;if(s)for(c in t)t.hasOwnProperty(c)&&(u=t[c],o&&n&&typeof u=="object"&&e.hasOwnProperty(c)?(d=e[c],typeof d=="object"?r[c]=yn(u,d,n):r[c]=u):r[c]=u);if(o)for(c in e)e.hasOwnProperty(c)&&!r.hasOwnProperty(c)&&(d=e[c],r[c]=d);return r}var Re=yn;function Er(t,e,n){l.defined("array",t),l.defined("itemToFind",e),l.defined("comparator",n);let r=0,s=t.length-1,o,c;for(;r<=s;){if(o=~~((r+s)/2),c=n(t[o],e),c<0){r=o+1;continue}if(c>0){s=o-1;continue}return o}return~(s+1)}var je=Er;function Tr(t,e,n,r,s){this.xPoleWander=t,this.yPoleWander=e,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=s}var rt=Tr;function xr(t){if(t===null||isNaN(t))throw new T("year is required and must be a number.");return t%4===0&&t%100!==0||t%400===0}var ot=xr;var gn=[31,28,31,30,31,30,31,31,30,31,30,31];function Ar(t,e,n,r,s,o,c,u){t=t??1,e=e??1,n=n??1,r=r??0,s=s??0,o=o??0,c=c??0,u=u??!1,R(),D(),this.year=t,this.month=e,this.day=n,this.hour=r,this.minute=s,this.second=o,this.millisecond=c,this.isLeapSecond=u;function R(){l.typeOf.number.greaterThanOrEquals("Year",t,1),l.typeOf.number.lessThanOrEquals("Year",t,9999),l.typeOf.number.greaterThanOrEquals("Month",e,1),l.typeOf.number.lessThanOrEquals("Month",e,12),l.typeOf.number.greaterThanOrEquals("Day",n,1),l.typeOf.number.lessThanOrEquals("Day",n,31),l.typeOf.number.greaterThanOrEquals("Hour",r,0),l.typeOf.number.lessThanOrEquals("Hour",r,23),l.typeOf.number.greaterThanOrEquals("Minute",s,0),l.typeOf.number.lessThanOrEquals("Minute",s,59),l.typeOf.bool("IsLeapSecond",u),l.typeOf.number.greaterThanOrEquals("Second",o,0),l.typeOf.number.lessThanOrEquals("Second",o,u?60:59),l.typeOf.number.greaterThanOrEquals("Millisecond",c,0),l.typeOf.number.lessThan("Millisecond",c,1e3)}function D(){let z=e===2&&ot(t)?gn[e-1]+1:gn[e-1];if(n>z)throw new T("Month and Day represents invalid date")}}var yt=Ar;function Cr(t,e){this.julianDate=t,this.offset=e}var B=Cr;var wn={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1};Object.freeze(wn);var W=wn;var bn={UTC:0,TAI:1};Object.freeze(bn);var q=bn;var On=new yt,gt=[31,28,31,30,31,30,31,31,30,31,30,31],wt=29;function Wt(t,e){return U.compare(t.julianDate,e.julianDate)}var $e=new B;function bt(t){$e.julianDate=t;let e=U.leapSeconds,n=je(e,$e,Wt);n<0&&(n=~n),n>=e.length&&(n=e.length-1);let r=e[n].offset;n>0&&U.secondsDifference(e[n].julianDate,t)>r&&(n--,r=e[n].offset),U.addSeconds(t,r,t)}function _n(t,e){$e.julianDate=t;let n=U.leapSeconds,r=je(n,$e,Wt);if(r<0&&(r=~r),r===0)return U.addSeconds(t,-n[0].offset,e);if(r>=n.length)return U.addSeconds(t,-n[r-1].offset,e);let s=U.secondsDifference(n[r].julianDate,t);if(s===0)return U.addSeconds(t,-n[r].offset,e);if(!(s<=1))return U.addSeconds(t,-n[--r].offset,e)}function Pe(t,e,n){let r=e/W.SECONDS_PER_DAY|0;return t+=r,e-=W.SECONDS_PER_DAY*r,e<0&&(t--,e+=W.SECONDS_PER_DAY),n.dayNumber=t,n.secondsOfDay=e,n}function Ht(t,e,n,r,s,o,c){let u=(e-14)/12|0,d=t+4800+u,w=(1461*d/4|0)+(367*(e-2-12*u)/12|0)-(3*((d+100)/100|0)/4|0)+n-32075;r=r-12,r<0&&(r+=24);let y=o+(r*W.SECONDS_PER_HOUR+s*W.SECONDS_PER_MINUTE+c*W.SECONDS_PER_MILLISECOND);return y>=43200&&(w-=1),[w,y]}var Rr=/^(\d{4})$/,Pr=/^(\d{4})-(\d{2})$/,Ir=/^(\d{4})-?(\d{3})$/,Ur=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,Mr=/^(\d{4})-?(\d{2})-?(\d{2})$/,$t=/([Z+\-])?(\d{2})?:?(\d{2})?$/,Dr=/^(\d{2})(\.\d+)?/.source+$t.source,qr=/^(\d{2}):?(\d{2})(\.\d+)?/.source+$t.source,kr=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+$t.source,pe="Invalid ISO 8601 date.",U=class t{constructor(e,n,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=e??0,n=n??0,r=r??q.UTC;let s=e|0;n=n+(e-s)*W.SECONDS_PER_DAY,Pe(s,n,this),r===q.UTC&&bt(this)}static fromGregorianDate(e,n){if(!(e instanceof yt))throw new T("date must be a valid GregorianDate.");let r=Ht(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return h(n)?(Pe(r[0],r[1],n),bt(n),n):new t(r[0],r[1],q.UTC)}static fromDate(e,n){if(!(e instanceof Date)||isNaN(e.getTime()))throw new T("date must be a valid JavaScript Date.");let r=Ht(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return h(n)?(Pe(r[0],r[1],n),bt(n),n):new t(r[0],r[1],q.UTC)}static fromIso8601(e,n){if(typeof e!="string")throw new T(pe);e=e.replace(",",".");let r=e.split("T"),s,o=1,c=1,u=0,d=0,w=0,y=0,g=r[0],x=r[1],C,I;if(!h(g))throw new T(pe);let R;if(r=g.match(Mr),r!==null){if(R=g.split("-").length-1,R>0&&R!==2)throw new T(pe);s=+r[1],o=+r[2],c=+r[3]}else if(r=g.match(Pr),r!==null)s=+r[1],o=+r[2];else if(r=g.match(Rr),r!==null)s=+r[1];else{let j;if(r=g.match(Ir),r!==null){if(s=+r[1],j=+r[2],I=ot(s),j<1||I&&j>366||!I&&j>365)throw new T(pe)}else if(r=g.match(Ur),r!==null){s=+r[1];let Y=+r[2],Z=+r[3]||0;if(R=g.split("-").length-1,R>0&&(!h(r[3])&&R!==1||h(r[3])&&R!==2))throw new T(pe);let J=new Date(Date.UTC(s,0,4));j=Y*7+Z-J.getUTCDay()-3}else throw new T(pe);C=new Date(Date.UTC(s,0,1)),C.setUTCDate(j),o=C.getUTCMonth()+1,c=C.getUTCDate()}if(I=ot(s),o<1||o>12||c<1||(o!==2||!I)&&c>gt[o-1]||I&&o===2&&c>wt)throw new T(pe);let D;if(h(x)){if(r=x.match(kr),r!==null){if(R=x.split(":").length-1,R>0&&R!==2&&R!==3)throw new T(pe);u=+r[1],d=+r[2],w=+r[3],y=+(r[4]||0)*1e3,D=5}else if(r=x.match(qr),r!==null){if(R=x.split(":").length-1,R>2)throw new T(pe);u=+r[1],d=+r[2],w=+(r[3]||0)*60,D=4}else if(r=x.match(Dr),r!==null)u=+r[1],d=+(r[2]||0)*60,D=3;else throw new T(pe);if(d>=60||w>=61||u>24||u===24&&(d>0||w>0||y>0))throw new T(pe);let j=r[D],Y=+r[D+1],Z=+(r[D+2]||0);switch(j){case"+":u=u-Y,d=d-Z;break;case"-":u=u+Y,d=d+Z;break;case"Z":break;default:d=d+new Date(Date.UTC(s,o-1,c,u,d)).getTimezoneOffset();break}}let z=w===60;for(z&&w--;d>=60;)d-=60,u++;for(;u>=24;)u-=24,c++;for(C=I&&o===2?wt:gt[o-1];c>C;)c-=C,o++,o>12&&(o-=12,s++),C=I&&o===2?wt:gt[o-1];for(;d<0;)d+=60,u--;for(;u<0;)u+=24,c--;for(;c<1;)o--,o<1&&(o+=12,s--),C=I&&o===2?wt:gt[o-1],c+=C;let Q=Ht(s,o,c,u,d,w,y);return h(n)?(Pe(Q[0],Q[1],n),bt(n)):n=new t(Q[0],Q[1],q.UTC),z&&t.addSeconds(n,1,n),n}static now(e){return t.fromDate(new Date,e)}static toGregorianDate(e,n){if(!h(e))throw new T("julianDate is required.");let r=!1,s=_n(e,Ot);h(s)||(t.addSeconds(e,-1,Ot),s=_n(Ot,Ot),r=!0);let o=s.dayNumber,c=s.secondsOfDay;c>=43200&&(o+=1);let u=o+68569|0,d=4*u/146097|0;u=u-((146097*d+3)/4|0)|0;let w=4e3*(u+1)/1461001|0;u=u-(1461*w/4|0)+31|0;let y=80*u/2447|0,g=u-(2447*y/80|0)|0;u=y/11|0;let x=y+2-12*u|0,C=100*(d-49)+w+u|0,I=c/W.SECONDS_PER_HOUR|0,R=c-I*W.SECONDS_PER_HOUR,D=R/W.SECONDS_PER_MINUTE|0;R=R-D*W.SECONDS_PER_MINUTE;let z=R|0,Q=(R-z)/W.SECONDS_PER_MILLISECOND;return I+=12,I>23&&(I-=24),r&&(z+=1),h(n)?(n.year=C,n.month=x,n.day=g,n.hour=I,n.minute=D,n.second=z,n.millisecond=Q,n.isLeapSecond=r,n):new yt(C,x,g,I,D,z,Q,r)}static toDate(e){if(!h(e))throw new T("julianDate is required.");let n=t.toGregorianDate(e,On),r=n.second;return n.isLeapSecond&&(r-=1),new Date(Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,r,n.millisecond))}static toIso8601(e,n){if(!h(e))throw new T("julianDate is required.");let r=t.toGregorianDate(e,On),s=r.year,o=r.month,c=r.day,u=r.hour,d=r.minute,w=r.second,y=r.millisecond;s===1e4&&o===1&&c===1&&u===0&&d===0&&w===0&&y===0&&(s=9999,o=12,c=31,u=24);let g;if(!h(n)&&y!==0){let x=y*.01;return g=x<1e-6?x.toFixed(20).replace(".","").replace(/0+$/,""):x.toString().replace(".",""),`${s.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${c.toString().padStart(2,"0")}T${u.toString().padStart(2,"0")}:${d.toString().padStart(2,"0")}:${w.toString().padStart(2,"0")}.${g}Z`}return!h(n)||n===0?`${s.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${c.toString().padStart(2,"0")}T${u.toString().padStart(2,"0")}:${d.toString().padStart(2,"0")}:${w.toString().padStart(2,"0")}Z`:(g=(y*.01).toFixed(n).replace(".","").slice(0,n),`${s.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${c.toString().padStart(2,"0")}T${u.toString().padStart(2,"0")}:${d.toString().padStart(2,"0")}:${w.toString().padStart(2,"0")}.${g}Z`)}static clone(e,n){if(h(e))return h(n)?(n.dayNumber=e.dayNumber,n.secondsOfDay=e.secondsOfDay,n):new t(e.dayNumber,e.secondsOfDay,q.TAI)}static compare(e,n){if(!h(e))throw new T("left is required.");if(!h(n))throw new T("right is required.");let r=e.dayNumber-n.dayNumber;return r!==0?r:e.secondsOfDay-n.secondsOfDay}static equals(e,n){return e===n||h(e)&&h(n)&&e.dayNumber===n.dayNumber&&e.secondsOfDay===n.secondsOfDay}static equalsEpsilon(e,n,r){return r=r??0,e===n||h(e)&&h(n)&&Math.abs(t.secondsDifference(e,n))<=r}static totalDays(e){if(!h(e))throw new T("julianDate is required.");return e.dayNumber+e.secondsOfDay/W.SECONDS_PER_DAY}static secondsDifference(e,n){if(!h(e))throw new T("left is required.");if(!h(n))throw new T("right is required.");return(e.dayNumber-n.dayNumber)*W.SECONDS_PER_DAY+(e.secondsOfDay-n.secondsOfDay)}static daysDifference(e,n){if(!h(e))throw new T("left is required.");if(!h(n))throw new T("right is required.");let r=e.dayNumber-n.dayNumber,s=(e.secondsOfDay-n.secondsOfDay)/W.SECONDS_PER_DAY;return r+s}static computeTaiMinusUtc(e){$e.julianDate=e;let n=t.leapSeconds,r=je(n,$e,Wt);return r<0&&(r=~r,--r,r<0&&(r=0)),n[r].offset}static addSeconds(e,n,r){if(!h(e))throw new T("julianDate is required.");if(!h(n))throw new T("seconds is required.");if(!h(r))throw new T("result is required.");return Pe(e.dayNumber,e.secondsOfDay+n,r)}static addMinutes(e,n,r){if(!h(e))throw new T("julianDate is required.");if(!h(n))throw new T("minutes is required.");if(!h(r))throw new T("result is required.");let s=e.secondsOfDay+n*W.SECONDS_PER_MINUTE;return Pe(e.dayNumber,s,r)}static addHours(e,n,r){if(!h(e))throw new T("julianDate is required.");if(!h(n))throw new T("hours is required.");if(!h(r))throw new T("result is required.");let s=e.secondsOfDay+n*W.SECONDS_PER_HOUR;return Pe(e.dayNumber,s,r)}static addDays(e,n,r){if(!h(e))throw new T("julianDate is required.");if(!h(n))throw new T("days is required.");if(!h(r))throw new T("result is required.");let s=e.dayNumber+n;return Pe(s,e.secondsOfDay,r)}static lessThan(e,n){return t.compare(e,n)<0}static lessThanOrEquals(e,n){return t.compare(e,n)<=0}static greaterThan(e,n){return t.compare(e,n)>0}static greaterThanOrEquals(e,n){return t.compare(e,n)>=0}clone(e){return t.clone(this,e)}equals(e){return t.equals(this,e)}equalsEpsilon(e,n){return t.equalsEpsilon(this,e,n)}toString(){return t.toIso8601(this)}},Ot=new U(0,0,q.TAI);U.leapSeconds=[new B(new U(2441317,43210,q.TAI),10),new B(new U(2441499,43211,q.TAI),11),new B(new U(2441683,43212,q.TAI),12),new B(new U(2442048,43213,q.TAI),13),new B(new U(2442413,43214,q.TAI),14),new B(new U(2442778,43215,q.TAI),15),new B(new U(2443144,43216,q.TAI),16),new B(new U(2443509,43217,q.TAI),17),new B(new U(2443874,43218,q.TAI),18),new B(new U(2444239,43219,q.TAI),19),new B(new U(2444786,43220,q.TAI),20),new B(new U(2445151,43221,q.TAI),21),new B(new U(2445516,43222,q.TAI),22),new B(new U(2446247,43223,q.TAI),23),new B(new U(2447161,43224,q.TAI),24),new B(new U(2447892,43225,q.TAI),25),new B(new U(2448257,43226,q.TAI),26),new B(new U(2448804,43227,q.TAI),27),new B(new U(2449169,43228,q.TAI),28),new B(new U(2449534,43229,q.TAI),29),new B(new U(2450083,43230,q.TAI),30),new B(new U(2450630,43231,q.TAI),31),new B(new U(2451179,43232,q.TAI),32),new B(new U(2453736,43233,q.TAI),33),new B(new U(2454832,43234,q.TAI),34),new B(new U(2456109,43235,q.TAI),35),new B(new U(2457204,43236,q.TAI),36),new B(new U(2457754,43237,q.TAI),37)];var K=U;var Kn=We(Ne(),1);function jr(t){return(t.length===0||t[t.length-1]!=="/")&&(t=`${t}/`),t}var Cn=jr;function Rn(t,e){if(t===null||typeof t!="object")return t;e=e??!1;let n=new t.constructor;for(let r in t)if(t.hasOwnProperty(r)){let s=t[r];e&&(s=Rn(s,e)),n[r]=s}return n}var Xe=Rn;function Nr(){let t,e,n=new Promise(function(r,s){t=r,e=s});return{resolve:t,reject:e,promise:n}}var ze=Nr;var Pn=We(Ne(),1);function Vt(t,e){let n;return typeof document<"u"&&(n=document),Vt._implementation(t,e,n)}Vt._implementation=function(t,e,n){if(!h(t))throw new T("relative uri is required.");if(!h(e)){if(typeof n>"u")return t;e=n.baseURI??n.location.href}let r=new Pn.default(t);return r.scheme()!==""?r.toString():r.absoluteTo(e).toString()};var it=Vt;var In=We(Ne(),1);function zr(t,e){if(!h(t))throw new T("uri is required.");let n="",r=t.lastIndexOf("/");return r!==-1&&(n=t.substring(0,r+1)),e&&(t=new In.default(t),t.query().length!==0&&(n+=`?${t.query()}`),t.fragment().length!==0&&(n+=`#${t.fragment()}`)),n}var Un=zr;var Mn=We(Ne(),1);function Fr(t){if(!h(t))throw new T("uri is required.");let e=new Mn.default(t);e.normalize();let n=e.path(),r=n.lastIndexOf("/");return r!==-1&&(n=n.substr(r+1)),r=n.lastIndexOf("."),r===-1?n="":n=n.substr(r+1),n}var Dn=Fr;var qn={};function Lr(t,e,n){h(e)||(e=t.width),h(n)||(n=t.height);let r=qn[e];h(r)||(r={},qn[e]=r);let s=r[n];if(!h(s)){let o=document.createElement("canvas");o.width=e,o.height=n,s=o.getContext("2d",{willReadFrequently:!0}),s.globalCompositeOperation="copy",r[n]=s}return s.drawImage(t,0,0,e,n),s.getImageData(0,0,e,n).data}var Yt=Lr;var Br=/^blob:/i;function Qr(t){return l.typeOf.string("uri",t),Br.test(t)}var Et=Qr;var be;function Hr(t){h(be)||(be=document.createElement("a")),be.href=window.location.href;let e=be.host,n=be.protocol;return be.href=t,be.href=be.href,n!==be.protocol||e!==be.host}var kn=Hr;var Wr=/^data:/i;function $r(t){return l.typeOf.string("uri",t),Wr.test(t)}var Tt=$r;function Vr(t){let e=document.createElement("script");return e.async=!0,e.src=t,new Promise((n,r)=>{window.crossOriginIsolated&&e.setAttribute("crossorigin","anonymous");let s=document.getElementsByTagName("head")[0];e.onload=function(){e.onload=void 0,s.removeChild(e),n()},e.onerror=function(o){r(o)},s.appendChild(e)})}var jn=Vr;function Yr(t){if(!h(t))throw new T("obj is required.");let e="";for(let n in t)if(t.hasOwnProperty(n)){let r=t[n],s=`${encodeURIComponent(n)}=`;if(Array.isArray(r))for(let o=0,c=r.length;o<c;++o)e+=`${s+encodeURIComponent(r[o])}&`;else e+=`${s+encodeURIComponent(r)}&`}return e=e.slice(0,-1),e}var Nn=Yr;function Xr(t){if(!h(t))throw new T("queryString is required.");let e={};if(t==="")return e;let n=t.replace(/\+/g,"%20").split(/[&;]/);for(let r=0,s=n.length;r<s;++r){let o=n[r].split("="),c=decodeURIComponent(o[0]),u=o[1];h(u)?u=decodeURIComponent(u):u="";let d=e[c];typeof d=="string"?e[c]=[d,u]:Array.isArray(d)?d.push(u):e[c]=u}return e}var zn=Xr;var Fn={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5};Object.freeze(Fn);var V=Fn;var Ln={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3};Object.freeze(Ln);var Bn=Ln;function xt(t){t=t??we.EMPTY_OBJECT;let e=t.throttleByServer??!1,n=t.throttle??!1;this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=t.priority??0,this.throttle=n,this.throttleByServer=e,this.type=t.type??Bn.OTHER,this.serverKey=t.serverKey,this.state=V.UNISSUED,this.deferred=void 0,this.cancelled=!1}xt.prototype.cancel=function(){this.cancelled=!0};xt.prototype.clone=function(t){return h(t)?(t.url=this.url,t.requestFunction=this.requestFunction,t.cancelFunction=this.cancelFunction,t.priorityFunction=this.priorityFunction,t.priority=this.priority,t.throttle=this.throttle,t.throttleByServer=this.throttleByServer,t.type=this.type,t.serverKey=this.serverKey,t.state=V.UNISSUED,t.deferred=void 0,t.cancelled=!1,t):new xt(this)};var Qn=xt;function Zr(t){let e={};if(!t)return e;let n=t.split(`\r +`);for(let r=0;r<n.length;++r){let s=n[r],o=s.indexOf(": ");if(o>0){let c=s.substring(0,o),u=s.substring(o+2);e[c]=u}}return e}var Hn=Zr;function Wn(t,e,n){this.statusCode=t,this.response=e,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=Hn(this.responseHeaders))}Wn.prototype.toString=function(){let t="Request has failed.";return h(this.statusCode)&&(t+=` Status Code: ${this.statusCode}`),t};var st=Wn;var At=We(Ne(),1);function at(){this._listeners=new Map,this._toRemove=new Map,this._toAdd=new Map,this._invokingListeners=!1,this._listenerCount=0}Object.defineProperties(at.prototype,{numberOfListeners:{get:function(){return this._listenerCount}}});at.prototype.addEventListener=function(t,e){l.typeOf.func("listener",t);let n=this,r=n._invokingListeners?n._toAdd:n._listeners;return Zt(this,r,t,e)&&n._listenerCount++,function(){n.removeEventListener(t,e)}};function Zt(t,e,n,r){e.has(n)||e.set(n,new Set);let s=e.get(n);return s.has(r)?!1:(s.add(r),!0)}at.prototype.removeEventListener=function(t,e){l.typeOf.func("listener",t);let n=Xt(this,this._listeners,t,e),r=Xt(this,this._toAdd,t,e),s=n||r;return s&&this._listenerCount--,s};function Xt(t,e,n,r){let s=e.get(n);if(!s||!s.has(r))return!1;if(t._invokingListeners){if(!Zt(t,t._toRemove,n,r))return!1}else s.delete(r),s.size===0&&e.delete(n);return!0}at.prototype.raiseEvent=function(){this._invokingListeners=!0;for(let[t,e]of this._listeners.entries())if(h(t))for(let n of e)t.apply(n,arguments);this._invokingListeners=!1;for(let[t,e]of this._toAdd.entries())for(let n of e)Zt(this,this._listeners,t,n);this._toAdd.clear();for(let[t,e]of this._toRemove.entries())for(let n of e)Xt(this,this._listeners,t,n);this._toRemove.clear()};var $n=at;function Fe(t){l.typeOf.object("options",t),l.defined("options.comparator",t.comparator),this._comparator=t.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(Fe.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(t){l.typeOf.number.greaterThanOrEquals("maximumLength",t,0);let e=this._length;if(t<e){let n=this._array;for(let r=t;r<e;++r)n[r]=void 0;this._length=t,n.length=t}this._maximumLength=t}},comparator:{get:function(){return this._comparator}}});function Jt(t,e,n){let r=t[e];t[e]=t[n],t[n]=r}Fe.prototype.reserve=function(t){t=t??this._length,this._array.length=t};Fe.prototype.heapify=function(t){t=t??0;let e=this._length,n=this._comparator,r=this._array,s=-1,o=!0;for(;o;){let c=2*(t+1),u=c-1;u<e&&n(r[u],r[t])<0?s=u:s=t,c<e&&n(r[c],r[s])<0&&(s=c),s!==t?(Jt(r,s,t),t=s):o=!1}};Fe.prototype.resort=function(){let t=this._length;for(let e=Math.ceil(t/2);e>=0;--e)this.heapify(e)};Fe.prototype.insert=function(t){l.defined("element",t);let e=this._array,n=this._comparator,r=this._maximumLength,s=this._length++;for(s<e.length?e[s]=t:e.push(t);s!==0;){let c=Math.floor((s-1)/2);if(n(e[s],e[c])<0)Jt(e,s,c),s=c;else break}let o;return h(r)&&this._length>r&&(o=e[r],this._length=r),o};Fe.prototype.pop=function(t){if(t=t??0,this._length===0)return;l.typeOf.number.lessThan("index",t,this._length);let e=this._array,n=e[t];return Jt(e,t,--this._length),this.heapify(t),e[this._length]=void 0,n};var Vn=Fe;function Jr(t,e){return t.priority-e.priority}var L={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},Ze=20,ne=new Vn({comparator:Jr});ne.maximumLength=Ze;ne.reserve(Ze);var Oe=[],Ee={},Gr=typeof document<"u"?new At.default(document.location.href):new At.default,Ct=new $n;function $(){}$.maximumRequests=50;$.maximumRequestsPerServer=18;$.requestsByServer={};$.throttleRequests=!0;$.debugShowStatistics=!1;$.requestCompletedEvent=Ct;Object.defineProperties($,{statistics:{get:function(){return L}},priorityHeapLength:{get:function(){return Ze},set:function(t){if(t<Ze)for(;ne.length>t;){let e=ne.pop();Le(e)}Ze=t,ne.maximumLength=t,ne.reserve(t)}}});function Yn(t){h(t.priorityFunction)&&(t.priority=t.priorityFunction())}$.serverHasOpenSlots=function(t,e){e=e??1;let n=$.requestsByServer[t]??$.maximumRequestsPerServer;return Ee[t]+e<=n};$.heapHasOpenSlots=function(t){return ne.length+t<=Ze};function Xn(t){return t.state===V.UNISSUED&&(t.state=V.ISSUED,t.deferred=ze()),t.deferred.promise}function Kr(t){return function(e){if(t.state===V.CANCELLED)return;let n=t.deferred;--L.numberOfActiveRequests,--Ee[t.serverKey],Ct.raiseEvent(),t.state=V.RECEIVED,t.deferred=void 0,n.resolve(e)}}function eo(t){return function(e){t.state!==V.CANCELLED&&(++L.numberOfFailedRequests,--L.numberOfActiveRequests,--Ee[t.serverKey],Ct.raiseEvent(e),t.state=V.FAILED,t.deferred.reject(e))}}function Zn(t){let e=Xn(t);return t.state=V.ACTIVE,Oe.push(t),++L.numberOfActiveRequests,++L.numberOfActiveRequestsEver,++Ee[t.serverKey],t.requestFunction().then(Kr(t)).catch(eo(t)),e}function Le(t){let e=t.state===V.ACTIVE;if(t.state=V.CANCELLED,++L.numberOfCancelledRequests,h(t.deferred)){let n=t.deferred;n.promise.catch(()=>{}),t.deferred=void 0,n.reject(new de(`Request cancelled: "${t.url}"`))}e&&(--L.numberOfActiveRequests,--Ee[t.serverKey],++L.numberOfCancelledActiveRequests),h(t.cancelFunction)&&t.cancelFunction()}$.update=function(){let t,e,n=0,r=Oe.length;for(t=0;t<r;++t){if(e=Oe[t],e.cancelled&&Le(e),e.state!==V.ACTIVE){++n;continue}n>0&&(Oe[t-n]=e)}Oe.length-=n;let s=ne.internalArray,o=ne.length;for(t=0;t<o;++t)Yn(s[t]);ne.resort();let c=Math.max($.maximumRequests-Oe.length,0),u=0;for(;u<c&&ne.length>0;){if(e=ne.pop(),e.cancelled){Le(e);continue}if(e.throttleByServer&&!$.serverHasOpenSlots(e.serverKey)){Le(e);continue}Zn(e),++u}to()};$.getServerKey=function(t){l.typeOf.string("url",t);let e=new At.default(t);e.scheme()===""&&(e=e.absoluteTo(Gr),e.normalize());let n=e.authority();/:/.test(n)||(n=`${n}:${e.scheme()==="https"?"443":"80"}`);let r=Ee[n];return h(r)||(Ee[n]=0),n};$.request=function(t){if(l.typeOf.object("request",t),l.typeOf.string("request.url",t.url),l.typeOf.func("request.requestFunction",t.requestFunction),Tt(t.url)||Et(t.url))return Ct.raiseEvent(),t.state=V.RECEIVED,t.requestFunction();if(++L.numberOfAttemptedRequests,h(t.serverKey)||(t.serverKey=$.getServerKey(t.url)),$.throttleRequests&&t.throttleByServer&&!$.serverHasOpenSlots(t.serverKey))return;if(!$.throttleRequests||!t.throttle)return Zn(t);if(Oe.length>=$.maximumRequests)return;Yn(t);let e=ne.insert(t);if(h(e)){if(e===t)return;Le(e)}return Xn(t)};function to(){$.debugShowStatistics&&(L.numberOfActiveRequests===0&&L.lastNumberOfActiveRequests>0&&(L.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${L.numberOfAttemptedRequests}`),L.numberOfAttemptedRequests=0),L.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${L.numberOfCancelledRequests}`),L.numberOfCancelledRequests=0),L.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${L.numberOfCancelledActiveRequests}`),L.numberOfCancelledActiveRequests=0),L.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${L.numberOfFailedRequests}`),L.numberOfFailedRequests=0)),L.lastNumberOfActiveRequests=L.numberOfActiveRequests)}$.clearForSpecs=function(){for(;ne.length>0;){let e=ne.pop();Le(e)}let t=Oe.length;for(let e=0;e<t;++e)Le(Oe[e]);Oe.length=0,Ee={},L.numberOfAttemptedRequests=0,L.numberOfActiveRequests=0,L.numberOfCancelledRequests=0,L.numberOfCancelledActiveRequests=0,L.numberOfFailedRequests=0,L.numberOfActiveRequestsEver=0,L.lastNumberOfActiveRequests=0};$.numberOfActiveRequestsByServer=function(t){return Ee[t]};$.requestHeap=ne;var Rt=$;var Jn=We(Ne(),1);var ct={},Je={};ct.add=function(t,e){if(!h(t))throw new T("host is required.");if(!h(e)||e<=0)throw new T("port is required to be greater than 0.");let n=`${t.toLowerCase()}:${e}`;h(Je[n])||(Je[n]=!0)};ct.remove=function(t,e){if(!h(t))throw new T("host is required.");if(!h(e)||e<=0)throw new T("port is required to be greater than 0.");let n=`${t.toLowerCase()}:${e}`;h(Je[n])&&delete Je[n]};function no(t){let e=new Jn.default(t);e.normalize();let n=e.authority();if(n.length!==0){if(e.authority(n),n.indexOf("@")!==-1&&(n=n.split("@")[1]),n.indexOf(":")===-1){let r=e.scheme();if(r.length===0&&(r=window.location.protocol,r=r.substring(0,r.length-1)),r==="http")n+=":80";else if(r==="https")n+=":443";else return}return n}}ct.contains=function(t){if(!h(t))throw new T("url is required.");let e=no(t);return!!(h(e)&&h(Je[e]))};ct.clear=function(){Je={}};var Gt=ct;var er=(function(){try{let t=new XMLHttpRequest;return t.open("GET","#",!0),t.responseType="blob",t.responseType==="blob"}catch{return!1}})();function E(t){t=t??we.EMPTY_OBJECT,typeof t=="string"&&(t={url:t}),l.typeOf.string("options.url",t.url),this._url=void 0,this._templateValues=_e(t.templateValues,{}),this._queryParameters=_e(t.queryParameters,{}),this.headers=_e(t.headers,{}),this.request=t.request??new Qn,this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=t.retryAttempts??0,this._retryCount=0,t.parseUrl??!0?this.parseUrl(t.url,!0,!0):this._url=t.url,this._credits=t.credits}function _e(t,e){return h(t)?Xe(t):e}E.createIfNeeded=function(t){return t instanceof E?t.getDerivedResource({request:t.request}):typeof t!="string"?t:new E({url:t})};var Ge;E.supportsImageBitmapOptions=function(){return h(Ge)?Ge:typeof createImageBitmap!="function"?(Ge=Promise.resolve(!1),Ge):(Ge=E.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC"}).then(function(e){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(e,n),createImageBitmap(e)])}).then(function(e){let n=Yt(e[0]),r=Yt(e[1]);return n[1]!==r[1]}).catch(function(){return!1}),Ge)};Object.defineProperties(E,{isBlobSupported:{get:function(){return er}}});Object.defineProperties(E.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){this.parseUrl(t,!1,!1)}},extension:{get:function(){return Dn(this._url)}},isDataUri:{get:function(){return Tt(this._url)}},isBlobUri:{get:function(){return Et(this._url)}},isCrossOriginUrl:{get:function(){return kn(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}},credits:{get:function(){return this._credits}}});E.prototype.toString=function(){return this.getUrlComponent(!0,!0)};E.prototype.parseUrl=function(t,e,n,r){let s=new Kn.default(t),o=ro(s.query());this._queryParameters=e?It(o,this.queryParameters,n):o,s.search(""),s.fragment(""),h(r)&&s.scheme()===""&&(s=s.absoluteTo(it(r))),this._url=s.toString()};function ro(t){return t.length===0?{}:t.indexOf("=")===-1?{[t]:void 0}:zn(t)}function It(t,e,n){if(!n)return Re(t,e);let r=Xe(t,!0);for(let s in e)if(e.hasOwnProperty(s)){let o=r[s],c=e[s];h(o)?(Array.isArray(o)||(o=r[s]=[o]),r[s]=o.concat(c)):r[s]=Array.isArray(c)?c.slice():c}return r}E.prototype.getUrlComponent=function(t,e){if(this.isDataUri)return this._url;let n=this._url;t&&(n=`${n}${oo(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let r=this._templateValues;return Object.keys(r).length>0&&(n=n.replace(/{(.*?)}/g,function(s,o){let c=r[o];return h(c)?encodeURIComponent(c):s})),e&&h(this.proxy)&&(n=this.proxy.getURL(n)),n};function oo(t){let e=Object.keys(t);return e.length===0?"":e.length===1&&!h(t[e[0]])?`?${e[0]}`:`?${Nn(t)}`}E.prototype.setQueryParameters=function(t,e){e?this._queryParameters=It(this._queryParameters,t,!1):this._queryParameters=It(t,this._queryParameters,!1)};E.prototype.appendQueryParameters=function(t){this._queryParameters=It(t,this._queryParameters,!0)};E.prototype.setTemplateValues=function(t,e){e?this._templateValues=Re(this._templateValues,t):this._templateValues=Re(t,this._templateValues)};E.prototype.getDerivedResource=function(t){let e=this.clone();if(e._retryCount=0,h(t.url)){let n=t.preserveQueryParameters??!1;e.parseUrl(t.url,!0,n,this._url)}return h(t.queryParameters)&&(e._queryParameters=Re(t.queryParameters,e.queryParameters)),h(t.templateValues)&&(e._templateValues=Re(t.templateValues,e.templateValues)),h(t.headers)&&(e.headers=Re(t.headers,e.headers)),h(t.proxy)&&(e.proxy=t.proxy),h(t.request)&&(e.request=t.request),h(t.retryCallback)&&(e.retryCallback=t.retryCallback),h(t.retryAttempts)&&(e.retryAttempts=t.retryAttempts),e};E.prototype.retryOnError=function(t){let e=this.retryCallback;if(typeof e!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(e(this,t)).then(function(r){return++n._retryCount,r})};E.prototype.clone=function(t){return h(t)?(t._url=this._url,t._queryParameters=Xe(this._queryParameters),t._templateValues=Xe(this._templateValues),t.headers=Xe(this.headers),t.proxy=this.proxy,t.retryCallback=this.retryCallback,t.retryAttempts=this.retryAttempts,t._retryCount=0,t.request=this.request.clone(),t):new E({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1,credits:h(this.credits)?this.credits.slice():void 0})};E.prototype.getBaseUri=function(t){return Un(this.getUrlComponent(t),t)};E.prototype.appendForwardSlash=function(){this._url=Cn(this._url)};E.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};E.fetchArrayBuffer=function(t){return new E(t).fetchArrayBuffer()};E.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};E.fetchBlob=function(t){return new E(t).fetchBlob()};E.prototype.fetchImage=function(t){t=t??we.EMPTY_OBJECT;let e=t.preferImageBitmap??!1,n=t.preferBlob??!1,r=t.flipY??!1,s=t.skipColorSpaceConversion??!1;if(Kt(this.request),!er||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return this._fetchImage({resource:this,flipY:r,skipColorSpaceConversion:s,preferImageBitmap:e});let o=this.fetchBlob();if(!h(o))return;let c,u,d,w;return E.supportsImageBitmapOptions().then(function(y){return c=y,u=c&&e,o}).then(function(y){if(!h(y))return;if(w=y,u)return E.createImageBitmapFromBlob(y,{flipY:r,premultiplyAlpha:!1,skipColorSpaceConversion:s});let g=window.URL.createObjectURL(y);return d=new E({url:g}),d._fetchImage({flipY:r,skipColorSpaceConversion:s,preferImageBitmap:!1})}).then(function(y){if(h(y))return y.blob=w,u||window.URL.revokeObjectURL(d.url),y}).catch(function(y){return h(d)&&window.URL.revokeObjectURL(d.url),y.blob=w,Promise.reject(y)})};E.prototype._fetchImage=function(t){let e=this,n=t.flipY,r=t.skipColorSpaceConversion,s=t.preferImageBitmap,o=e.request;o.url=e.url,o.requestFunction=function(){let u=!1;!e.isDataUri&&!e.isBlobUri&&(u=e.isCrossOriginUrl);let d=ze();return E._Implementations.createImage(o,u,d,n,r,s),d.promise};let c=Rt.request(o);if(h(c))return c.catch(function(u){return o.state!==V.FAILED?Promise.reject(u):e.retryOnError(u).then(function(d){return d?(o.state=V.UNISSUED,o.deferred=void 0,e._fetchImage({flipY:n,skipColorSpaceConversion:r,preferImageBitmap:s})):Promise.reject(u)})})};E.fetchImage=function(t){return new E(t).fetchImage({flipY:t.flipY,skipColorSpaceConversion:t.skipColorSpaceConversion,preferBlob:t.preferBlob,preferImageBitmap:t.preferImageBitmap})};E.prototype.fetchText=function(){return this.fetch({responseType:"text"})};E.fetchText=function(t){return new E(t).fetchText()};E.prototype.fetchJson=function(){let t=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(h(t))return t.then(function(e){if(h(e))return JSON.parse(e)})};E.fetchJson=function(t){return new E(t).fetchJson()};E.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};E.fetchXML=function(t){return new E(t).fetchXML()};E.prototype.fetchJsonp=function(t){t=t??"callback",Kt(this.request);let e;do e=`loadJsonp${_.nextRandomNumber().toString().substring(2,8)}`;while(h(window[e]));return tr(this,t,e)};function tr(t,e,n){let r={};r[e]=n,t.setQueryParameters(r);let s=t.request,o=t.url;s.url=o,s.requestFunction=function(){let u=ze();return window[n]=function(d){u.resolve(d);try{delete window[n]}catch{window[n]=void 0}},E._Implementations.loadAndExecuteScript(o,n,u),u.promise};let c=Rt.request(s);if(h(c))return c.catch(function(u){return s.state!==V.FAILED?Promise.reject(u):t.retryOnError(u).then(function(d){return d?(s.state=V.UNISSUED,s.deferred=void 0,tr(t,e,n)):Promise.reject(u)})})}E.fetchJsonp=function(t){return new E(t).fetchJsonp(t.callbackParameterName)};E.prototype._makeRequest=function(t){let e=this;Kt(e.request);let n=e.request,r=e.url;n.url=r,n.requestFunction=function(){let o=t.responseType,c=Re(t.headers,e.headers),u=t.overrideMimeType,d=t.method,w=t.data,y=ze(),g=E._Implementations.loadWithXhr(r,o,d,w,c,y,u);return h(g)&&h(g.abort)&&(n.cancelFunction=function(){g.abort()}),y.promise};let s=Rt.request(n);if(h(s))return s.then(function(o){return n.cancelFunction=void 0,o}).catch(function(o){return n.cancelFunction=void 0,n.state!==V.FAILED?Promise.reject(o):e.retryOnError(o).then(function(c){return c?(n.state=V.UNISSUED,n.deferred=void 0,e.fetch(t)):Promise.reject(o)})})};function Kt(t){if(t.state===V.ISSUED||t.state===V.ACTIVE)throw new de("The Resource is already being fetched.");t.state=V.UNISSUED,t.deferred=void 0}var io=/^data:(.*?)(;base64)?,(.*)$/;function Pt(t,e){let n=decodeURIComponent(e);return t?atob(n):n}function Gn(t,e){let n=Pt(t,e),r=new ArrayBuffer(n.length),s=new Uint8Array(r);for(let o=0;o<n.length;o++)s[o]=n.charCodeAt(o);return r}function so(t,e){e=e??"";let n=t[1],r=!!t[2],s=t[3],o,c;switch(e){case"":case"text":return Pt(r,s);case"arraybuffer":return Gn(r,s);case"blob":return o=Gn(r,s),new Blob([o],{type:n});case"document":return c=new DOMParser,c.parseFromString(Pt(r,s),n);case"json":return JSON.parse(Pt(r,s));default:throw new T(`Unhandled responseType: ${e}`)}}E.prototype.fetch=function(t){return t=_e(t,{}),t.method="GET",this._makeRequest(t)};E.fetch=function(t){return new E(t).fetch({responseType:t.responseType,overrideMimeType:t.overrideMimeType})};E.prototype.delete=function(t){return t=_e(t,{}),t.method="DELETE",this._makeRequest(t)};E.delete=function(t){return new E(t).delete({responseType:t.responseType,overrideMimeType:t.overrideMimeType,data:t.data})};E.prototype.head=function(t){return t=_e(t,{}),t.method="HEAD",this._makeRequest(t)};E.head=function(t){return new E(t).head({responseType:t.responseType,overrideMimeType:t.overrideMimeType})};E.prototype.options=function(t){return t=_e(t,{}),t.method="OPTIONS",this._makeRequest(t)};E.options=function(t){return new E(t).options({responseType:t.responseType,overrideMimeType:t.overrideMimeType})};E.prototype.post=function(t,e){return l.defined("data",t),e=_e(e,{}),e.method="POST",e.data=t,this._makeRequest(e)};E.post=function(t){return new E(t).post(t.data,{responseType:t.responseType,overrideMimeType:t.overrideMimeType})};E.prototype.put=function(t,e){return l.defined("data",t),e=_e(e,{}),e.method="PUT",e.data=t,this._makeRequest(e)};E.put=function(t){return new E(t).put(t.data,{responseType:t.responseType,overrideMimeType:t.overrideMimeType})};E.prototype.patch=function(t,e){return l.defined("data",t),e=_e(e,{}),e.method="PATCH",e.data=t,this._makeRequest(e)};E.patch=function(t){return new E(t).patch(t.data,{responseType:t.responseType,overrideMimeType:t.overrideMimeType})};E._Implementations={};E._Implementations.loadImageElement=function(t,e,n){let r=new Image;r.onload=function(){r.naturalWidth===0&&r.naturalHeight===0&&r.width===0&&r.height===0&&(r.width=300,r.height=150),n.resolve(r)},r.onerror=function(s){n.reject(s)},e&&(Gt.contains(t)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=t};E._Implementations.createImage=function(t,e,n,r,s,o,c){let u=t.url;E.supportsImageBitmapOptions().then(function(d){if(!(d&&o)){E._Implementations.loadImageElement(u,e,n);return}let w="blob",y="GET",g=ze(),x=E._Implementations.loadWithXhr(u,w,y,void 0,c,g,void 0,void 0,void 0);return h(x)&&h(x.abort)&&(t.cancelFunction=function(){x.abort()}),g.promise.then(function(C){if(!h(C)){n.reject(new de(`Successfully retrieved ${u} but it contained no content.`));return}return E.createImageBitmapFromBlob(C,{flipY:r,premultiplyAlpha:!1,skipColorSpaceConversion:s})}).then(function(C){n.resolve(C)})}).catch(function(d){n.reject(d)})};E.createImageBitmapFromBlob=function(t,e){return l.defined("options",e),l.typeOf.bool("options.flipY",e.flipY),l.typeOf.bool("options.premultiplyAlpha",e.premultiplyAlpha),l.typeOf.bool("options.skipColorSpaceConversion",e.skipColorSpaceConversion),createImageBitmap(t,{imageOrientation:e.flipY?"flipY":"none",premultiplyAlpha:e.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:e.skipColorSpaceConversion?"none":"default"})};function ao(t,e,n,r,s,o,c){fetch(t,{method:n,headers:s}).then(async u=>{if(!u.ok){let d={};u.headers.forEach((w,y)=>{d[y]=w}),o.reject(new st(u.status,u,d));return}switch(e){case"text":o.resolve(u.text());break;case"json":o.resolve(u.json());break;default:o.resolve(new Uint8Array(await u.arrayBuffer()).buffer);break}}).catch(()=>{o.reject(new st)})}var co=typeof XMLHttpRequest>"u";E._Implementations.loadWithXhr=function(t,e,n,r,s,o,c){let u=io.exec(t);if(u!==null){o.resolve(so(u,e));return}if(co){ao(t,e,n,r,s,o,c);return}let d=new XMLHttpRequest;if(Gt.contains(t)&&(d.withCredentials=!0),d.open(n,t,!0),h(c)&&h(d.overrideMimeType)&&d.overrideMimeType(c),h(s))for(let y in s)s.hasOwnProperty(y)&&d.setRequestHeader(y,s[y]);h(e)&&(d.responseType=e);let w=!1;return typeof t=="string"&&(w=t.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),d.onload=function(){if((d.status<200||d.status>=300)&&!(w&&d.status===0)){o.reject(new st(d.status,d.response,d.getAllResponseHeaders()));return}let y=d.response,g=d.responseType;if(n==="HEAD"||n==="OPTIONS"){let C=d.getAllResponseHeaders().trim().split(/[\r\n]+/),I={};C.forEach(function(R){let D=R.split(": "),z=D.shift();I[z]=D.join(": ")}),o.resolve(I);return}if(d.status===204)o.resolve(void 0);else if(h(y)&&(!h(e)||g===e))o.resolve(y);else if(e==="json"&&typeof y=="string")try{o.resolve(JSON.parse(y))}catch(x){o.reject(x)}else(g===""||g==="document")&&h(d.responseXML)&&d.responseXML.hasChildNodes()?o.resolve(d.responseXML):(g===""||g==="text")&&h(d.responseText)?o.resolve(d.responseText):o.reject(new de("Invalid XMLHttpRequest response type."))},d.onerror=function(y){o.reject(new st)},d.send(r),d};E._Implementations.loadAndExecuteScript=function(t,e,n){return jn(t,e).catch(function(r){n.reject(r)})};E._DefaultImplementations={};E._DefaultImplementations.createImage=E._Implementations.createImage;E._DefaultImplementations.loadWithXhr=E._Implementations.loadWithXhr;E._DefaultImplementations.loadAndExecuteScript=E._Implementations.loadAndExecuteScript;E.DEFAULT=Object.freeze(new E({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var Ie=E;function ft(t){t=t??we.EMPTY_OBJECT,this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=t.addNewLeapSeconds??!0,h(t.data)?nr(this,t.data):nr(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}ft.fromUrl=async function(t,e){l.defined("url",t),e=e??we.EMPTY_OBJECT;let n=Ie.createIfNeeded(t),r;try{r=await n.fetchJson()}catch{throw new de(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new ft({addNewLeapSeconds:e.addNewLeapSeconds,data:r})};ft.NONE=Object.freeze({compute:function(t,e){return h(e)?(e.xPoleWander=0,e.yPoleWander=0,e.xPoleOffset=0,e.yPoleOffset=0,e.ut1MinusUtc=0):e=new rt(0,0,0,0,0),e}});ft.prototype.compute=function(t,e){if(!h(this._samples))return;if(h(e)||(e=new rt(0,0,0,0,0)),this._samples.length===0)return e.xPoleWander=0,e.yPoleWander=0,e.xPoleOffset=0,e.yPoleOffset=0,e.ut1MinusUtc=0,e;let n=this._dates,r=this._lastIndex,s=0,o=0;if(h(r)){let u=n[r],d=n[r+1],w=K.lessThanOrEquals(u,t),y=!h(d),g=y||K.greaterThanOrEquals(d,t);if(w&&g)return s=r,!y&&d.equals(t)&&++s,o=s+1,or(this,n,this._samples,t,s,o,e),e}let c=je(n,t,K.compare,this._dateColumn);return c>=0?(c<n.length-1&&n[c+1].equals(t)&&++c,s=c,o=c):(o=~c,s=o-1,s<0&&(s=0)),this._lastIndex=s,or(this,n,this._samples,t,s,o,e),e};function uo(t,e){return K.compare(t.julianDate,e)}function nr(t,e){if(!h(e.columnNames))throw new de("Error in loaded EOP data: The columnNames property is required.");if(!h(e.samples))throw new de("Error in loaded EOP data: The samples property is required.");let n=e.columnNames.indexOf("modifiedJulianDateUtc"),r=e.columnNames.indexOf("xPoleWanderRadians"),s=e.columnNames.indexOf("yPoleWanderRadians"),o=e.columnNames.indexOf("ut1MinusUtcSeconds"),c=e.columnNames.indexOf("xCelestialPoleOffsetRadians"),u=e.columnNames.indexOf("yCelestialPoleOffsetRadians"),d=e.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||r<0||s<0||o<0||c<0||u<0||d<0)throw new de("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let w=t._samples=e.samples,y=t._dates=[];t._dateColumn=n,t._xPoleWanderRadiansColumn=r,t._yPoleWanderRadiansColumn=s,t._ut1MinusUtcSecondsColumn=o,t._xCelestialPoleOffsetRadiansColumn=c,t._yCelestialPoleOffsetRadiansColumn=u,t._taiMinusUtcSecondsColumn=d,t._columnCount=e.columnNames.length,t._lastIndex=void 0;let g,x=t._addNewLeapSeconds;for(let C=0,I=w.length;C<I;C+=t._columnCount){let R=w[C+n],D=w[C+d],z=R+W.MODIFIED_JULIAN_DATE_DIFFERENCE,Q=new K(z,D,q.TAI);if(y.push(Q),x){if(D!==g&&h(g)){let j=K.leapSeconds,Y=je(j,Q,uo);if(Y<0){let Z=new B(Q,D);j.splice(~Y,0,Z)}}g=D}}}function rr(t,e,n,r,s){let o=n*r;s.xPoleWander=e[o+t._xPoleWanderRadiansColumn],s.yPoleWander=e[o+t._yPoleWanderRadiansColumn],s.xPoleOffset=e[o+t._xCelestialPoleOffsetRadiansColumn],s.yPoleOffset=e[o+t._yCelestialPoleOffsetRadiansColumn],s.ut1MinusUtc=e[o+t._ut1MinusUtcSecondsColumn]}function ut(t,e,n){return e+t*(n-e)}function or(t,e,n,r,s,o,c){let u=t._columnCount;if(o>e.length-1)return c.xPoleWander=0,c.yPoleWander=0,c.xPoleOffset=0,c.yPoleOffset=0,c.ut1MinusUtc=0,c;let d=e[s],w=e[o];if(d.equals(w)||r.equals(d))return rr(t,n,s,u,c),c;if(r.equals(w))return rr(t,n,o,u,c),c;let y=K.secondsDifference(r,d)/K.secondsDifference(w,d),g=s*u,x=o*u,C=n[g+t._ut1MinusUtcSecondsColumn],I=n[x+t._ut1MinusUtcSecondsColumn],R=I-C;if(R>.5||R<-.5){let D=n[g+t._taiMinusUtcSecondsColumn],z=n[x+t._taiMinusUtcSecondsColumn];D!==z&&(w.equals(r)?C=I:I-=z-D)}return c.xPoleWander=ut(y,n[g+t._xPoleWanderRadiansColumn],n[x+t._xPoleWanderRadiansColumn]),c.yPoleWander=ut(y,n[g+t._yPoleWanderRadiansColumn],n[x+t._yPoleWanderRadiansColumn]),c.xPoleOffset=ut(y,n[g+t._xCelestialPoleOffsetRadiansColumn],n[x+t._xCelestialPoleOffsetRadiansColumn]),c.yPoleOffset=ut(y,n[g+t._yCelestialPoleOffsetRadiansColumn],n[x+t._yCelestialPoleOffsetRadiansColumn]),c.ut1MinusUtc=ut(y,C,I),c}var ir=ft;function re(t,e,n){this.heading=t??0,this.pitch=e??0,this.roll=n??0}re.fromQuaternion=function(t,e){if(!h(t))throw new T("quaternion is required");h(e)||(e=new re);let n=2*(t.w*t.y-t.z*t.x),r=1-2*(t.x*t.x+t.y*t.y),s=2*(t.w*t.x+t.y*t.z),o=1-2*(t.y*t.y+t.z*t.z),c=2*(t.w*t.z+t.x*t.y);return e.heading=-Math.atan2(c,o),e.roll=Math.atan2(s,r),e.pitch=-_.asinClamped(n),e};re.fromDegrees=function(t,e,n,r){if(!h(t))throw new T("heading is required");if(!h(e))throw new T("pitch is required");if(!h(n))throw new T("roll is required");return h(r)||(r=new re),r.heading=t*_.RADIANS_PER_DEGREE,r.pitch=e*_.RADIANS_PER_DEGREE,r.roll=n*_.RADIANS_PER_DEGREE,r};re.clone=function(t,e){if(h(t))return h(e)?(e.heading=t.heading,e.pitch=t.pitch,e.roll=t.roll,e):new re(t.heading,t.pitch,t.roll)};re.equals=function(t,e){return t===e||h(t)&&h(e)&&t.heading===e.heading&&t.pitch===e.pitch&&t.roll===e.roll};re.equalsEpsilon=function(t,e,n,r){return t===e||h(t)&&h(e)&&_.equalsEpsilon(t.heading,e.heading,n,r)&&_.equalsEpsilon(t.pitch,e.pitch,n,r)&&_.equalsEpsilon(t.roll,e.roll,n,r)};re.prototype.clone=function(t){return re.clone(this,t)};re.prototype.equals=function(t){return re.equals(this,t)};re.prototype.equalsEpsilon=function(t,e,n){return re.equalsEpsilon(this,t,e,n)};re.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var Ut=re;var sr=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function fo(){let t=document.getElementsByTagName("script");for(let e=0,n=t.length;e<n;++e){let r=t[e].getAttribute("src"),s=sr.exec(r);if(s!==null)return s[1]}}var Mt;function ar(t){return typeof document>"u"?t:(h(Mt)||(Mt=document.createElement("a")),Mt.href=t,Mt.href)}var Be;function cr(){if(h(Be))return Be;let t;if(typeof CESIUM_BASE_URL<"u"?t=CESIUM_BASE_URL:h(import.meta?.url)?t=it(".",import.meta.url):typeof define=="object"&&h(define.amd)&&!define.amd.toUrlUndefined&&h(dt.toUrl)?t=it("..",Qe("Core/buildModuleUrl.js")):t=fo(),!h(t))throw new T("Unable to determine Cesium base URL automatically, try defining a global variable called CESIUM_BASE_URL.");return Be=new Ie({url:ar(t)}),Be.appendForwardSlash(),Be}function ho(t){return ar(dt.toUrl(`../${t}`))}function ur(t){return cr().getDerivedResource({url:t}).url}var Dt;function Qe(t){return h(Dt)||(typeof define=="object"&&h(define.amd)&&!define.amd.toUrlUndefined&&h(dt.toUrl)?Dt=ho:Dt=ur),Dt(t)}Qe._cesiumScriptRegex=sr;Qe._buildModuleUrlFromBaseUrl=ur;Qe._clearBaseResource=function(){Be=void 0};Qe.setBaseUrl=function(t){Be=Ie.DEFAULT.getDerivedResource({url:t})};Qe.getCesiumBaseUrl=cr;var fr=Qe;function lo(t,e,n){this.x=t,this.y=e,this.s=n}var qt=lo;function kt(t){t=t??we.EMPTY_OBJECT,this._xysFileUrlTemplate=Ie.createIfNeeded(t.xysFileUrlTemplate),this._interpolationOrder=t.interpolationOrder??9,this._sampleZeroJulianEphemerisDate=t.sampleZeroJulianEphemerisDate??24423965e-1,this._sampleZeroDateTT=new K(this._sampleZeroJulianEphemerisDate,0,q.TAI),this._stepSizeDays=t.stepSizeDays??1,this._samplesPerXysFile=t.samplesPerXysFile??1e3,this._totalSamples=t.totalSamples??27426,this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let e=this._interpolationOrder,n=this._denominators=new Array(e+1),r=this._xTable=new Array(e+1),s=Math.pow(this._stepSizeDays,e);for(let o=0;o<=e;++o){n[o]=s,r[o]=o*this._stepSizeDays;for(let c=0;c<=e;++c)c!==o&&(n[o]*=o-c);n[o]=1/n[o]}this._work=new Array(e+1),this._coef=new Array(e+1)}var po=new K(0,0,q.TAI);function en(t,e,n){let r=po;return r.dayNumber=e,r.secondsOfDay=n,K.daysDifference(r,t._sampleZeroDateTT)}kt.prototype.preload=function(t,e,n,r){let s=en(this,t,e),o=en(this,n,r),c=s/this._stepSizeDays-this._interpolationOrder/2|0;c<0&&(c=0);let u=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;u>=this._totalSamples&&(u=this._totalSamples-1);let d=c/this._samplesPerXysFile|0,w=u/this._samplesPerXysFile|0,y=[];for(let g=d;g<=w;++g)y.push(tn(this,g));return Promise.all(y)};kt.prototype.computeXysRadians=function(t,e,n){let r=en(this,t,e);if(r<0)return;let s=r/this._stepSizeDays|0;if(s>=this._totalSamples)return;let o=this._interpolationOrder,c=s-(o/2|0);c<0&&(c=0);let u=c+o;u>=this._totalSamples&&(u=this._totalSamples-1,c=u-o,c<0&&(c=0));let d=!1,w=this._samples;if(h(w[c*3])||(tn(this,c/this._samplesPerXysFile|0),d=!0),h(w[u*3])||(tn(this,u/this._samplesPerXysFile|0),d=!0),d)return;h(n)?(n.x=0,n.y=0,n.s=0):n=new qt(0,0,0);let y=r-c*this._stepSizeDays,g=this._work,x=this._denominators,C=this._coef,I=this._xTable,R,D;for(R=0;R<=o;++R)g[R]=y-I[R];for(R=0;R<=o;++R){for(C[R]=1,D=0;D<=o;++D)D!==R&&(C[R]*=g[D]);C[R]*=x[R];let z=(c+R)*3;n.x+=C[R]*w[z++],n.y+=C[R]*w[z++],n.s+=C[R]*w[z]}return n};kt.prototype._updateChunkData=function(t,{samples:e}){this._chunkDownloadsInProgress[t]=void 0;let n=this._samplesPerXysFile,r=t*n*3;for(let s=0;s<e.length;++s)this._samples[r+s]=e[s]};async function mo(t,e,n){try{let r=await t.fetchJson();n._updateChunkData(e,r)}catch{}}function tn(t,e){if(h(t._chunkDownloadsInProgress[e]))return t._chunkDownloadsInProgress[e];let n,r=t._xysFileUrlTemplate;h(r)?n=r.getDerivedResource({templateValues:{0:e}}):n=new Ie({url:fr(`Assets/IAU2006_XYS/IAU2006_XYS_${e}.json`)});let s=mo(n,e,t);return t._chunkDownloadsInProgress[e]=s,s}var hr=kt;function O(t,e,n,r){this.x=t??0,this.y=e??0,this.z=n??0,this.w=r??0}var ht=new v;O.fromAxisAngle=function(t,e,n){l.typeOf.object("axis",t),l.typeOf.number("angle",e);let r=e/2,s=Math.sin(r);ht=v.normalize(t,ht);let o=ht.x*s,c=ht.y*s,u=ht.z*s,d=Math.cos(r);return h(n)?(n.x=o,n.y=c,n.z=u,n.w=d,n):new O(o,c,u,d)};var yo=[1,2,0],go=new Array(3);O.fromRotationMatrix=function(t,e){l.typeOf.object("matrix",t);let n,r,s,o,c,u=t[k.COLUMN0ROW0],d=t[k.COLUMN1ROW1],w=t[k.COLUMN2ROW2],y=u+d+w;if(y>0)n=Math.sqrt(y+1),c=.5*n,n=.5/n,r=(t[k.COLUMN1ROW2]-t[k.COLUMN2ROW1])*n,s=(t[k.COLUMN2ROW0]-t[k.COLUMN0ROW2])*n,o=(t[k.COLUMN0ROW1]-t[k.COLUMN1ROW0])*n;else{let g=yo,x=0;d>u&&(x=1),w>u&&w>d&&(x=2);let C=g[x],I=g[C];n=Math.sqrt(t[k.getElementIndex(x,x)]-t[k.getElementIndex(C,C)]-t[k.getElementIndex(I,I)]+1);let R=go;R[x]=.5*n,n=.5/n,c=(t[k.getElementIndex(I,C)]-t[k.getElementIndex(C,I)])*n,R[C]=(t[k.getElementIndex(C,x)]+t[k.getElementIndex(x,C)])*n,R[I]=(t[k.getElementIndex(I,x)]+t[k.getElementIndex(x,I)])*n,r=-R[0],s=-R[1],o=-R[2]}return h(e)?(e.x=r,e.y=s,e.z=o,e.w=c,e):new O(r,s,o,c)};var lr=new O,dr=new O,nn=new O,pr=new O;O.fromHeadingPitchRoll=function(t,e){return l.typeOf.object("headingPitchRoll",t),pr=O.fromAxisAngle(v.UNIT_X,t.roll,lr),nn=O.fromAxisAngle(v.UNIT_Y,-t.pitch,e),e=O.multiply(nn,pr,nn),dr=O.fromAxisAngle(v.UNIT_Z,-t.heading,lr),O.multiply(dr,e,e)};var jt=new v,rn=new v,me=new O,mr=new O,Nt=new O;O.packedLength=4;O.pack=function(t,e,n){return l.typeOf.object("value",t),l.defined("array",e),n=n??0,e[n++]=t.x,e[n++]=t.y,e[n++]=t.z,e[n]=t.w,e};O.unpack=function(t,e,n){return l.defined("array",t),e=e??0,h(n)||(n=new O),n.x=t[e],n.y=t[e+1],n.z=t[e+2],n.w=t[e+3],n};O.packedInterpolationLength=3;O.convertPackedArrayForInterpolation=function(t,e,n,r){O.unpack(t,n*4,Nt),O.conjugate(Nt,Nt);for(let s=0,o=n-e+1;s<o;s++){let c=s*3;O.unpack(t,(e+s)*4,me),O.multiply(me,Nt,me),me.w<0&&O.negate(me,me),O.computeAxis(me,jt);let u=O.computeAngle(me);h(r)||(r=[]),r[c]=jt.x*u,r[c+1]=jt.y*u,r[c+2]=jt.z*u}};O.unpackInterpolationResult=function(t,e,n,r,s){h(s)||(s=new O),v.fromArray(t,0,rn);let o=v.magnitude(rn);return O.unpack(e,r*4,mr),o===0?O.clone(O.IDENTITY,me):O.fromAxisAngle(rn,o,me),O.multiply(me,mr,s)};O.clone=function(t,e){if(h(t))return h(e)?(e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e):new O(t.x,t.y,t.z,t.w)};O.conjugate=function(t,e){return l.typeOf.object("quaternion",t),l.typeOf.object("result",e),e.x=-t.x,e.y=-t.y,e.z=-t.z,e.w=t.w,e};O.magnitudeSquared=function(t){return l.typeOf.object("quaternion",t),t.x*t.x+t.y*t.y+t.z*t.z+t.w*t.w};O.magnitude=function(t){return Math.sqrt(O.magnitudeSquared(t))};O.normalize=function(t,e){l.typeOf.object("result",e);let n=1/O.magnitude(t),r=t.x*n,s=t.y*n,o=t.z*n,c=t.w*n;return e.x=r,e.y=s,e.z=o,e.w=c,e};O.inverse=function(t,e){l.typeOf.object("result",e);let n=O.magnitudeSquared(t);return e=O.conjugate(t,e),O.multiplyByScalar(e,1/n,e)};O.add=function(t,e,n){return l.typeOf.object("left",t),l.typeOf.object("right",e),l.typeOf.object("result",n),n.x=t.x+e.x,n.y=t.y+e.y,n.z=t.z+e.z,n.w=t.w+e.w,n};O.subtract=function(t,e,n){return l.typeOf.object("left",t),l.typeOf.object("right",e),l.typeOf.object("result",n),n.x=t.x-e.x,n.y=t.y-e.y,n.z=t.z-e.z,n.w=t.w-e.w,n};O.negate=function(t,e){return l.typeOf.object("quaternion",t),l.typeOf.object("result",e),e.x=-t.x,e.y=-t.y,e.z=-t.z,e.w=-t.w,e};O.dot=function(t,e){return l.typeOf.object("left",t),l.typeOf.object("right",e),t.x*e.x+t.y*e.y+t.z*e.z+t.w*e.w};O.multiply=function(t,e,n){l.typeOf.object("left",t),l.typeOf.object("right",e),l.typeOf.object("result",n);let r=t.x,s=t.y,o=t.z,c=t.w,u=e.x,d=e.y,w=e.z,y=e.w,g=c*u+r*y+s*w-o*d,x=c*d-r*w+s*y+o*u,C=c*w+r*d-s*u+o*y,I=c*y-r*u-s*d-o*w;return n.x=g,n.y=x,n.z=C,n.w=I,n};O.multiplyByScalar=function(t,e,n){return l.typeOf.object("quaternion",t),l.typeOf.number("scalar",e),l.typeOf.object("result",n),n.x=t.x*e,n.y=t.y*e,n.z=t.z*e,n.w=t.w*e,n};O.divideByScalar=function(t,e,n){return l.typeOf.object("quaternion",t),l.typeOf.number("scalar",e),l.typeOf.object("result",n),n.x=t.x/e,n.y=t.y/e,n.z=t.z/e,n.w=t.w/e,n};O.computeAxis=function(t,e){l.typeOf.object("quaternion",t),l.typeOf.object("result",e);let n=t.w;if(Math.abs(n-1)<_.EPSILON6||Math.abs(n+1)<_.EPSILON6)return e.x=1,e.y=e.z=0,e;let r=1/Math.sqrt(1-n*n);return e.x=t.x*r,e.y=t.y*r,e.z=t.z*r,e};O.computeAngle=function(t){return l.typeOf.object("quaternion",t),Math.abs(t.w-1)<_.EPSILON6?0:2*Math.acos(t.w)};var on=new O;O.lerp=function(t,e,n,r){return l.typeOf.object("start",t),l.typeOf.object("end",e),l.typeOf.number("t",n),l.typeOf.object("result",r),on=O.multiplyByScalar(e,n,on),r=O.multiplyByScalar(t,1-n,r),O.add(on,r,r)};var yr=new O,sn=new O,an=new O;O.slerp=function(t,e,n,r){l.typeOf.object("start",t),l.typeOf.object("end",e),l.typeOf.number("t",n),l.typeOf.object("result",r);let s=O.dot(t,e),o=e;if(s<0&&(s=-s,o=yr=O.negate(e,yr)),1-s<_.EPSILON6)return O.lerp(t,o,n,r);let c=Math.acos(s);return sn=O.multiplyByScalar(t,Math.sin((1-n)*c),sn),an=O.multiplyByScalar(o,Math.sin(n*c),an),r=O.add(sn,an,r),O.multiplyByScalar(r,1/Math.sin(c),r)};O.log=function(t,e){l.typeOf.object("quaternion",t),l.typeOf.object("result",e);let n=_.acosClamped(t.w),r=0;return n!==0&&(r=n/Math.sin(n)),v.multiplyByScalar(t,r,e)};O.exp=function(t,e){l.typeOf.object("cartesian",t),l.typeOf.object("result",e);let n=v.magnitude(t),r=0;return n!==0&&(r=Math.sin(n)/n),e.x=t.x*r,e.y=t.y*r,e.z=t.z*r,e.w=Math.cos(n),e};var wo=new v,bo=new v,lt=new O,Ke=new O;O.computeInnerQuadrangle=function(t,e,n,r){l.typeOf.object("q0",t),l.typeOf.object("q1",e),l.typeOf.object("q2",n),l.typeOf.object("result",r);let s=O.conjugate(e,lt);O.multiply(s,n,Ke);let o=O.log(Ke,wo);O.multiply(s,t,Ke);let c=O.log(Ke,bo);return v.add(o,c,o),v.multiplyByScalar(o,.25,o),v.negate(o,o),O.exp(o,lt),O.multiply(e,lt,r)};O.squad=function(t,e,n,r,s,o){l.typeOf.object("q0",t),l.typeOf.object("q1",e),l.typeOf.object("s0",n),l.typeOf.object("s1",r),l.typeOf.number("t",s),l.typeOf.object("result",o);let c=O.slerp(t,e,s,lt),u=O.slerp(n,r,s,Ke);return O.slerp(c,u,2*s*(1-s),o)};var Oo=new O,gr=1.9011074535173003,zt=nt.supportsTypedArrays()?new Float32Array(8):[],Ft=nt.supportsTypedArrays()?new Float32Array(8):[],Te=nt.supportsTypedArrays()?new Float32Array(8):[],xe=nt.supportsTypedArrays()?new Float32Array(8):[];for(let t=0;t<7;++t){let e=t+1,n=2*e+1;zt[t]=1/(e*n),Ft[t]=e/n}zt[7]=gr/136;Ft[7]=gr*8/17;O.fastSlerp=function(t,e,n,r){l.typeOf.object("start",t),l.typeOf.object("end",e),l.typeOf.number("t",n),l.typeOf.object("result",r);let s=O.dot(t,e),o;s>=0?o=1:(o=-1,s=-s);let c=s-1,u=1-n,d=n*n,w=u*u;for(let C=7;C>=0;--C)Te[C]=(zt[C]*d-Ft[C])*c,xe[C]=(zt[C]*w-Ft[C])*c;let y=o*n*(1+Te[0]*(1+Te[1]*(1+Te[2]*(1+Te[3]*(1+Te[4]*(1+Te[5]*(1+Te[6]*(1+Te[7])))))))),g=u*(1+xe[0]*(1+xe[1]*(1+xe[2]*(1+xe[3]*(1+xe[4]*(1+xe[5]*(1+xe[6]*(1+xe[7])))))))),x=O.multiplyByScalar(t,g,Oo);return O.multiplyByScalar(e,y,r),O.add(x,r,r)};O.fastSquad=function(t,e,n,r,s,o){l.typeOf.object("q0",t),l.typeOf.object("q1",e),l.typeOf.object("s0",n),l.typeOf.object("s1",r),l.typeOf.number("t",s),l.typeOf.object("result",o);let c=O.fastSlerp(t,e,s,lt),u=O.fastSlerp(n,r,s,Ke);return O.fastSlerp(c,u,2*s*(1-s),o)};O.equals=function(t,e){return t===e||h(t)&&h(e)&&t.x===e.x&&t.y===e.y&&t.z===e.z&&t.w===e.w};O.equalsEpsilon=function(t,e,n){return n=n??0,t===e||h(t)&&h(e)&&Math.abs(t.x-e.x)<=n&&Math.abs(t.y-e.y)<=n&&Math.abs(t.z-e.z)<=n&&Math.abs(t.w-e.w)<=n};O.ZERO=Object.freeze(new O(0,0,0,0));O.IDENTITY=Object.freeze(new O(0,0,0,1));O.prototype.clone=function(t){return O.clone(this,t)};O.prototype.equals=function(t){return O.equals(this,t)};O.prototype.equalsEpsilon=function(t,e){return O.equalsEpsilon(this,t,e)};O.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var He=O;var M={},cn={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},et={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},un={},ce={east:new v,north:new v,up:new v,west:new v,south:new v,down:new v},Ue=new v,Me=new v,De=new v;M.localFrameToFixedFrameGenerator=function(t,e){if(!cn.hasOwnProperty(t)||!cn[t].hasOwnProperty(e))throw new T("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=cn[t][e],r,s=t+e;return h(un[s])?r=un[s]:(r=function(o,c,u){if(!h(o))throw new T("origin is required.");if(isNaN(o.x)||isNaN(o.y)||isNaN(o.z))throw new T("origin has a NaN component");if(h(u)||(u=new N),v.equalsEpsilon(o,v.ZERO,_.EPSILON14))v.unpack(et[t],0,Ue),v.unpack(et[e],0,Me),v.unpack(et[n],0,De);else if(_.equalsEpsilon(o.x,0,_.EPSILON14)&&_.equalsEpsilon(o.y,0,_.EPSILON14)){let d=_.sign(o.z);v.unpack(et[t],0,Ue),t!=="east"&&t!=="west"&&v.multiplyByScalar(Ue,d,Ue),v.unpack(et[e],0,Me),e!=="east"&&e!=="west"&&v.multiplyByScalar(Me,d,Me),v.unpack(et[n],0,De),n!=="east"&&n!=="west"&&v.multiplyByScalar(De,d,De)}else{c=c??Ce.default,c.geodeticSurfaceNormal(o,ce.up);let d=ce.up,w=ce.east;w.x=-o.y,w.y=o.x,w.z=0,v.normalize(w,ce.east),v.cross(d,w,ce.north),v.multiplyByScalar(ce.up,-1,ce.down),v.multiplyByScalar(ce.east,-1,ce.west),v.multiplyByScalar(ce.north,-1,ce.south),Ue=ce[t],Me=ce[e],De=ce[n]}return u[0]=Ue.x,u[1]=Ue.y,u[2]=Ue.z,u[3]=0,u[4]=Me.x,u[5]=Me.y,u[6]=Me.z,u[7]=0,u[8]=De.x,u[9]=De.y,u[10]=De.z,u[11]=0,u[12]=o.x,u[13]=o.y,u[14]=o.z,u[15]=1,u},un[s]=r),r};M.eastNorthUpToFixedFrame=M.localFrameToFixedFrameGenerator("east","north");M.northEastDownToFixedFrame=M.localFrameToFixedFrameGenerator("north","east");M.northUpEastToFixedFrame=M.localFrameToFixedFrameGenerator("north","up");M.northWestUpToFixedFrame=M.localFrameToFixedFrameGenerator("north","west");var _o=new He,So=new v(1,1,1),vo=new N;M.headingPitchRollToFixedFrame=function(t,e,n,r,s){l.typeOf.object("HeadingPitchRoll",e),r=r??M.eastNorthUpToFixedFrame;let o=He.fromHeadingPitchRoll(e,_o),c=N.fromTranslationQuaternionRotationScale(v.ZERO,o,So,vo);return s=r(t,n,s),N.multiply(s,c,s)};var Eo=new N,To=new k;M.headingPitchRollQuaternion=function(t,e,n,r,s){l.typeOf.object("HeadingPitchRoll",e);let o=M.headingPitchRollToFixedFrame(t,e,n,r,Eo),c=N.getMatrix3(o,To);return He.fromRotationMatrix(c,s)};var xo=new v(1,1,1),Ao=new v,wr=new N,Co=new N,Ro=new k,Po=new He;M.fixedFrameToHeadingPitchRoll=function(t,e,n,r){l.defined("transform",t),e=e??Ce.default,n=n??M.eastNorthUpToFixedFrame,h(r)||(r=new Ut);let s=N.getTranslation(t,Ao);if(v.equals(s,v.ZERO))return r.heading=0,r.pitch=0,r.roll=0,r;let o=N.inverseTransformation(n(s,e,wr),wr),c=N.setScale(t,xo,Co);c=N.setTranslation(c,v.ZERO,c),o=N.multiply(o,c,o);let u=He.fromRotationMatrix(N.getMatrix3(o,Ro),Po);return u=He.normalize(u,u),Ut.fromQuaternion(u,r)};var Io=6*3600+2460+50.54841,Uo=8640184812866e-6,Mo=.093104,Do=-62e-7,qo=11772758384668e-32,ko=72921158553e-15,jo=_.TWO_PI/86400,Lt=new K;M.computeIcrfToCentralBodyFixedMatrix=function(t,e){let n=M.computeIcrfToFixedMatrix(t,e);return h(n)||(n=M.computeTemeToPseudoFixedMatrix(t,e)),n};M.computeTemeToPseudoFixedMatrix=function(t,e){if(!h(t))throw new T("date is required.");Lt=K.addSeconds(t,-K.computeTaiMinusUtc(t),Lt);let n=Lt.dayNumber,r=Lt.secondsOfDay,s,o=n-2451545;r>=43200?s=(o+.5)/W.DAYS_PER_JULIAN_CENTURY:s=(o-.5)/W.DAYS_PER_JULIAN_CENTURY;let u=(Io+s*(Uo+s*(Mo+s*Do)))*jo%_.TWO_PI,d=ko+qo*(n-24515455e-1),w=(r+W.SECONDS_PER_DAY*.5)%W.SECONDS_PER_DAY,y=u+d*w,g=Math.cos(y),x=Math.sin(y);return h(e)?(e[0]=g,e[1]=-x,e[2]=0,e[3]=x,e[4]=g,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e):new k(g,x,0,-x,g,0,0,0,1)};M.iau2006XysData=new hr;M.earthOrientationParameters=ir.NONE;var ln=32.184,No=2451545;M.preloadIcrfFixed=function(t){let e=t.start.dayNumber,n=t.start.secondsOfDay+ln,r=t.stop.dayNumber,s=t.stop.secondsOfDay+ln;return M.iau2006XysData.preload(e,n,r,s)};M.computeIcrfToFixedMatrix=function(t,e){if(!h(t))throw new T("date is required.");h(e)||(e=new k);let n=M.computeFixedToIcrfMatrix(t,e);if(h(n))return k.transpose(n,e)};var zo=32.184,Fo=2451545,Bt=new Ut,Lo=new k,Bo=new K;M.computeMoonFixedToIcrfMatrix=function(t,e){if(!h(t))throw new T("date is required.");h(e)||(e=new k);let n=K.addSeconds(t,zo,Bo),r=K.totalDays(n)-Fo,s=_.toRadians(12.112)-_.toRadians(.052992)*r,o=_.toRadians(24.224)-_.toRadians(.105984)*r,c=_.toRadians(227.645)+_.toRadians(13.012)*r,u=_.toRadians(261.105)+_.toRadians(13.340716)*r,d=_.toRadians(358)+_.toRadians(.9856)*r;return Bt.pitch=_.toRadians(180)-_.toRadians(3.878)*Math.sin(s)-_.toRadians(.12)*Math.sin(o)+_.toRadians(.07)*Math.sin(c)-_.toRadians(.017)*Math.sin(u),Bt.roll=_.toRadians(66.53-90)+_.toRadians(1.543)*Math.cos(s)+_.toRadians(.24)*Math.cos(o)-_.toRadians(.028)*Math.cos(c)+_.toRadians(.007)*Math.cos(u),Bt.heading=_.toRadians(244.375-90)+_.toRadians(13.17635831)*r+_.toRadians(3.558)*Math.sin(s)+_.toRadians(.121)*Math.sin(o)-_.toRadians(.064)*Math.sin(c)+_.toRadians(.016)*Math.sin(u)+_.toRadians(.025)*Math.sin(d),k.fromHeadingPitchRoll(Bt,Lo)};M.computeIcrfToMoonFixedMatrix=function(t,e){if(!h(t))throw new T("date is required.");h(e)||(e=new k);let n=M.computeMoonFixedToIcrfMatrix(t,e);if(h(n))return k.transpose(n,e)};var Qo=new qt(0,0,0),Ho=new rt(0,0,0,0,0,0),fn=new k,hn=new k;M.computeFixedToIcrfMatrix=function(t,e){if(!h(t))throw new T("date is required.");h(e)||(e=new k);let n=M.earthOrientationParameters.compute(t,Ho);if(!h(n))return;let r=t.dayNumber,s=t.secondsOfDay+ln,o=M.iau2006XysData.computeXysRadians(r,s,Qo);if(!h(o))return;let c=o.x+n.xPoleOffset,u=o.y+n.yPoleOffset,d=1/(1+Math.sqrt(1-c*c-u*u)),w=fn;w[0]=1-d*c*c,w[3]=-d*c*u,w[6]=c,w[1]=-d*c*u,w[4]=1-d*u*u,w[7]=u,w[2]=-c,w[5]=-u,w[8]=1-d*(c*c+u*u);let y=k.fromRotationZ(-o.s,hn),g=k.multiply(w,y,fn),x=t.dayNumber,C=t.secondsOfDay-K.computeTaiMinusUtc(t)+n.ut1MinusUtc,I=x-2451545,R=C/W.SECONDS_PER_DAY,D=.779057273264+R+.00273781191135448*(I+R);D=D%1*_.TWO_PI;let z=k.fromRotationZ(D,hn),Q=k.multiply(g,z,fn),j=Math.cos(n.xPoleWander),Y=Math.cos(n.yPoleWander),Z=Math.sin(n.xPoleWander),J=Math.sin(n.yPoleWander),Se=r-No+s/W.SECONDS_PER_DAY;Se/=36525;let qe=-47e-6*Se*_.RADIANS_PER_DEGREE/3600,ye=Math.cos(qe),ge=Math.sin(qe),ae=hn;return ae[0]=j*ye,ae[1]=j*ge,ae[2]=Z,ae[3]=-Y*ge+J*Z*ye,ae[4]=Y*ye+J*Z*ge,ae[5]=-J*j,ae[6]=-J*ge-Y*Z*ye,ae[7]=J*ye-Y*Z*ge,ae[8]=Y*j,k.multiply(Q,ae,e)};var Wo=new mt;M.pointToWindowCoordinates=function(t,e,n,r){return r=M.pointToGLWindowCoordinates(t,e,n,r),r.y=2*e[5]-r.y,r};M.pointToGLWindowCoordinates=function(t,e,n,r){if(!h(t))throw new T("modelViewProjectionMatrix is required.");if(!h(e))throw new T("viewportTransformation is required.");if(!h(n))throw new T("point is required.");h(r)||(r=new se);let s=Wo;return N.multiplyByVector(t,mt.fromElements(n.x,n.y,n.z,1,s),s),mt.multiplyByScalar(s,1/s.w,s),N.multiplyByVector(e,s,s),se.fromCartesian4(s,r)};var $o=new v,Vo=new v,Yo=new v;M.rotationMatrixFromPositionVelocity=function(t,e,n,r){if(!h(t))throw new T("position is required.");if(!h(e))throw new T("velocity is required.");let s=(n??Ce.default).geodeticSurfaceNormal(t,$o),o=v.cross(e,s,Vo);v.equalsEpsilon(o,v.ZERO,_.EPSILON6)&&(o=v.clone(v.UNIT_X,o));let c=v.cross(o,e,Yo);return v.normalize(c,c),v.cross(e,c,o),v.negate(o,o),v.normalize(o,o),h(r)||(r=new k),r[0]=e.x,r[1]=e.y,r[2]=e.z,r[3]=o.x,r[4]=o.y,r[5]=o.z,r[6]=c.x,r[7]=c.y,r[8]=c.z,r};M.SWIZZLE_3D_TO_2D_MATRIX=Object.freeze(new N(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1));var br=new ve,dn=new v,Xo=new v,Zo=new k,pn=new N,Or=new N;M.basisTo2D=function(t,e,n){if(!h(t))throw new T("projection is required.");if(!h(e))throw new T("matrix is required.");if(!h(n))throw new T("result is required.");let r=N.getTranslation(e,Xo),s=t.ellipsoid,o;if(v.equals(r,v.ZERO))o=v.clone(v.ZERO,dn);else{let y=s.cartesianToCartographic(r,br);o=t.project(y,dn),v.fromElements(o.z,o.x,o.y,o)}let c=M.eastNorthUpToFixedFrame(r,s,pn),u=N.inverseTransformation(c,Or),d=N.getMatrix3(e,Zo),w=N.multiplyByMatrix3(u,d,n);return N.multiply(M.SWIZZLE_3D_TO_2D_MATRIX,w,n),N.setTranslation(n,o,n),n};M.ellipsoidTo2DModelMatrix=function(t,e,n){if(!h(t))throw new T("projection is required.");if(!h(e))throw new T("center is required.");if(!h(n))throw new T("result is required.");let r=t.ellipsoid,s=M.eastNorthUpToFixedFrame(e,r,pn),o=N.inverseTransformation(s,Or),c=r.cartesianToCartographic(e,br),u=t.project(c,dn);v.fromElements(u.z,u.x,u.y,u);let d=N.fromTranslation(u,pn);return N.multiply(M.SWIZZLE_3D_TO_2D_MATRIX,o,n),N.multiply(d,n,n),n};var _r=M;var tt=class t{constructor(e,n,r,s){this.west=e??0,this.south=n??0,this.east=r??0,this.north=s??0}get width(){return t.computeWidth(this)}get height(){return t.computeHeight(this)}static pack(e,n,r){return l.typeOf.object("value",e),l.defined("array",n),r=r??0,n[r++]=e.west,n[r++]=e.south,n[r++]=e.east,n[r]=e.north,n}static unpack(e,n,r){return l.defined("array",e),n=n??0,h(r)||(r=new t),r.west=e[n++],r.south=e[n++],r.east=e[n++],r.north=e[n],r}static computeWidth(e){l.typeOf.object("rectangle",e);let n=e.east,r=e.west;return n<r&&(n+=_.TWO_PI),n-r}static computeHeight(e){return l.typeOf.object("rectangle",e),e.north-e.south}static fromDegrees(e,n,r,s,o){return e=_.toRadians(e??0),n=_.toRadians(n??0),r=_.toRadians(r??0),s=_.toRadians(s??0),h(o)?(o.west=e,o.south=n,o.east=r,o.north=s,o):new t(e,n,r,s)}static fromRadians(e,n,r,s,o){return h(o)?(o.west=e??0,o.south=n??0,o.east=r??0,o.north=s??0,o):new t(e,n,r,s)}static fromCartographicArray(e,n){l.defined("cartographics",e);let r=Number.MAX_VALUE,s=-Number.MAX_VALUE,o=Number.MAX_VALUE,c=-Number.MAX_VALUE,u=Number.MAX_VALUE,d=-Number.MAX_VALUE;for(let w=0,y=e.length;w<y;w++){let g=e[w];r=Math.min(r,g.longitude),s=Math.max(s,g.longitude),u=Math.min(u,g.latitude),d=Math.max(d,g.latitude);let x=g.longitude>=0?g.longitude:g.longitude+_.TWO_PI;o=Math.min(o,x),c=Math.max(c,x)}return s-r>c-o&&(r=o,s=c,s>_.PI&&(s=s-_.TWO_PI),r>_.PI&&(r=r-_.TWO_PI)),h(n)?(n.west=r,n.south=u,n.east=s,n.north=d,n):new t(r,u,s,d)}static fromCartesianArray(e,n,r){l.defined("cartesians",e),n=n??Ce.default;let s=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,u=-Number.MAX_VALUE,d=Number.MAX_VALUE,w=-Number.MAX_VALUE;for(let y=0,g=e.length;y<g;y++){let x=n.cartesianToCartographic(e[y]);s=Math.min(s,x.longitude),o=Math.max(o,x.longitude),d=Math.min(d,x.latitude),w=Math.max(w,x.latitude);let C=x.longitude>=0?x.longitude:x.longitude+_.TWO_PI;c=Math.min(c,C),u=Math.max(u,C)}return o-s>u-c&&(s=c,o=u,o>_.PI&&(o=o-_.TWO_PI),s>_.PI&&(s=s-_.TWO_PI)),h(r)?(r.west=s,r.south=d,r.east=o,r.north=w,r):new t(s,d,o,w)}static fromBoundingSphere(e,n,r){l.typeOf.object("boundingSphere",e);let s=e.center,o=e.radius;if(h(n)||(n=Ce.default),h(r)||(r=new t),v.equals(s,v.ZERO))return t.clone(t.MAX_VALUE,r),r;let c=_r.eastNorthUpToFixedFrame(s,n,Jo),u=N.multiplyByPointAsVector(c,v.UNIT_X,Go);v.normalize(u,u);let d=N.multiplyByPointAsVector(c,v.UNIT_Y,Ko);v.normalize(d,d),v.multiplyByScalar(d,o,d),v.multiplyByScalar(u,o,u);let w=v.negate(d,ti),y=v.negate(u,ei),g=mn,x=g[0];return v.add(s,d,x),x=g[1],v.add(s,y,x),x=g[2],v.add(s,w,x),x=g[3],v.add(s,u,x),g[4]=s,t.fromCartesianArray(g,n,r)}static clone(e,n){if(h(e))return h(n)?(n.west=e.west,n.south=e.south,n.east=e.east,n.north=e.north,n):new t(e.west,e.south,e.east,e.north)}static equalsEpsilon(e,n,r){return r=r??0,e===n||h(e)&&h(n)&&Math.abs(e.west-n.west)<=r&&Math.abs(e.south-n.south)<=r&&Math.abs(e.east-n.east)<=r&&Math.abs(e.north-n.north)<=r}clone(e){return t.clone(this,e)}equals(e){return t.equals(this,e)}static equals(e,n){return e===n||h(e)&&h(n)&&e.west===n.west&&e.south===n.south&&e.east===n.east&&e.north===n.north}equalsEpsilon(e,n){return t.equalsEpsilon(this,e,n)}static _validate(e){l.typeOf.object("rectangle",e);let n=e.north;l.typeOf.number.greaterThanOrEquals("north",n,-_.PI_OVER_TWO),l.typeOf.number.lessThanOrEquals("north",n,_.PI_OVER_TWO);let r=e.south;l.typeOf.number.greaterThanOrEquals("south",r,-_.PI_OVER_TWO),l.typeOf.number.lessThanOrEquals("south",r,_.PI_OVER_TWO);let s=e.west;l.typeOf.number.greaterThanOrEquals("west",s,-Math.PI),l.typeOf.number.lessThanOrEquals("west",s,Math.PI);let o=e.east;l.typeOf.number.greaterThanOrEquals("east",o,-Math.PI),l.typeOf.number.lessThanOrEquals("east",o,Math.PI)}static southwest(e,n){return l.typeOf.object("rectangle",e),h(n)?(n.longitude=e.west,n.latitude=e.south,n.height=0,n):new ve(e.west,e.south)}static northwest(e,n){return l.typeOf.object("rectangle",e),h(n)?(n.longitude=e.west,n.latitude=e.north,n.height=0,n):new ve(e.west,e.north)}static northeast(e,n){return l.typeOf.object("rectangle",e),h(n)?(n.longitude=e.east,n.latitude=e.north,n.height=0,n):new ve(e.east,e.north)}static southeast(e,n){return l.typeOf.object("rectangle",e),h(n)?(n.longitude=e.east,n.latitude=e.south,n.height=0,n):new ve(e.east,e.south)}static center(e,n){l.typeOf.object("rectangle",e);let r=e.east,s=e.west;r<s&&(r+=_.TWO_PI);let o=_.negativePiToPi((s+r)*.5),c=(e.south+e.north)*.5;return h(n)?(n.longitude=o,n.latitude=c,n.height=0,n):new ve(o,c)}static intersection(e,n,r){l.typeOf.object("rectangle",e),l.typeOf.object("otherRectangle",n);let s=e.east,o=e.west,c=n.east,u=n.west;s<o&&c>0?s+=_.TWO_PI:c<u&&s>0&&(c+=_.TWO_PI),s<o&&u<0?u+=_.TWO_PI:c<u&&o<0&&(o+=_.TWO_PI);let d=_.negativePiToPi(Math.max(o,u)),w=_.negativePiToPi(Math.min(s,c));if((e.west<e.east||n.west<n.east)&&w<=d)return;let y=Math.max(e.south,n.south),g=Math.min(e.north,n.north);if(!(y>=g))return h(r)?(r.west=d,r.south=y,r.east=w,r.north=g,r):new t(d,y,w,g)}static simpleIntersection(e,n,r){l.typeOf.object("rectangle",e),l.typeOf.object("otherRectangle",n);let s=Math.max(e.west,n.west),o=Math.max(e.south,n.south),c=Math.min(e.east,n.east),u=Math.min(e.north,n.north);if(!(o>=u||s>=c))return h(r)?(r.west=s,r.south=o,r.east=c,r.north=u,r):new t(s,o,c,u)}static union(e,n,r){l.typeOf.object("rectangle",e),l.typeOf.object("otherRectangle",n),h(r)||(r=new t);let s=e.east,o=e.west,c=n.east,u=n.west;s<o&&c>0?s+=_.TWO_PI:c<u&&s>0&&(c+=_.TWO_PI),s<o&&u<0?u+=_.TWO_PI:c<u&&o<0&&(o+=_.TWO_PI);let d=_.negativePiToPi(Math.min(o,u)),w=_.negativePiToPi(Math.max(s,c));return r.west=d,r.south=Math.min(e.south,n.south),r.east=w,r.north=Math.max(e.north,n.north),r}static expand(e,n,r){return l.typeOf.object("rectangle",e),l.typeOf.object("cartographic",n),h(r)||(r=new t),r.west=Math.min(e.west,n.longitude),r.south=Math.min(e.south,n.latitude),r.east=Math.max(e.east,n.longitude),r.north=Math.max(e.north,n.latitude),r}static contains(e,n){l.typeOf.object("rectangle",e),l.typeOf.object("cartographic",n);let r=n.longitude,s=n.latitude,o=e.west,c=e.east;return c<o&&(c+=_.TWO_PI,r<0&&(r+=_.TWO_PI)),(r>o||_.equalsEpsilon(r,o,_.EPSILON14))&&(r<c||_.equalsEpsilon(r,c,_.EPSILON14))&&s>=e.south&&s<=e.north}static subsample(e,n,r,s){l.typeOf.object("rectangle",e),n=n??Ce.default,r=r??0,h(s)||(s=[]);let o=0,c=e.north,u=e.south,d=e.east,w=e.west,y=ni;y.height=r,y.longitude=w,y.latitude=c,s[o]=n.cartographicToCartesian(y,s[o]),o++,y.longitude=d,s[o]=n.cartographicToCartesian(y,s[o]),o++,y.latitude=u,s[o]=n.cartographicToCartesian(y,s[o]),o++,y.longitude=w,s[o]=n.cartographicToCartesian(y,s[o]),o++,c<0?y.latitude=c:u>0?y.latitude=u:y.latitude=0;for(let g=1;g<8;++g)y.longitude=-Math.PI+g*_.PI_OVER_TWO,t.contains(e,y)&&(s[o]=n.cartographicToCartesian(y,s[o]),o++);return y.latitude===0&&(y.longitude=w,s[o]=n.cartographicToCartesian(y,s[o]),o++,y.longitude=d,s[o]=n.cartographicToCartesian(y,s[o]),o++),s.length=o,s}static subsection(e,n,r,s,o,c){if(l.typeOf.object("rectangle",e),l.typeOf.number.greaterThanOrEquals("westLerp",n,0),l.typeOf.number.lessThanOrEquals("westLerp",n,1),l.typeOf.number.greaterThanOrEquals("southLerp",r,0),l.typeOf.number.lessThanOrEquals("southLerp",r,1),l.typeOf.number.greaterThanOrEquals("eastLerp",s,0),l.typeOf.number.lessThanOrEquals("eastLerp",s,1),l.typeOf.number.greaterThanOrEquals("northLerp",o,0),l.typeOf.number.lessThanOrEquals("northLerp",o,1),l.typeOf.number.lessThanOrEquals("westLerp",n,s),l.typeOf.number.lessThanOrEquals("southLerp",r,o),h(c)||(c=new t),e.west<=e.east){let d=e.east-e.west;c.west=e.west+n*d,c.east=e.west+s*d}else{let d=_.TWO_PI+e.east-e.west;c.west=_.negativePiToPi(e.west+n*d),c.east=_.negativePiToPi(e.west+s*d)}let u=e.north-e.south;return c.south=e.south+r*u,c.north=e.south+o*u,n===1&&(c.west=e.east),s===1&&(c.east=e.east),r===1&&(c.south=e.north),o===1&&(c.north=e.north),c}};tt.packedLength=4;var Jo=new N,Go=new v,Ko=new v,ei=new v,ti=new v,mn=new Array(5);for(let t=0;t<mn.length;++t)mn[t]=new v;var ni=new ve;tt.MAX_VALUE=Object.freeze(new tt(-Math.PI,-_.PI_OVER_TWO,Math.PI,_.PI_OVER_TWO));var gc=tt;var ue=class t{constructor(e,n,r,s){this[0]=e??0,this[1]=r??0,this[2]=n??0,this[3]=s??0}static pack(e,n,r){return l.typeOf.object("value",e),l.defined("array",n),r=r??0,n[r++]=e[0],n[r++]=e[1],n[r++]=e[2],n[r++]=e[3],n}static unpack(e,n,r){return l.defined("array",e),n=n??0,h(r)||(r=new t),r[0]=e[n++],r[1]=e[n++],r[2]=e[n++],r[3]=e[n++],r}static packArray(e,n){l.defined("array",e);let r=e.length,s=r*4;if(!h(n))n=new Array(s);else{if(!Array.isArray(n)&&n.length!==s)throw new T("If result is a typed array, it must have exactly array.length * 4 elements");n.length!==s&&(n.length=s)}for(let o=0;o<r;++o)t.pack(e[o],n,o*4);return n}static unpackArray(e,n){if(l.defined("array",e),l.typeOf.number.greaterThanOrEquals("array.length",e.length,4),e.length%4!==0)throw new T("array length must be a multiple of 4.");let r=e.length;h(n)?n.length=r/4:n=new Array(r/4);for(let s=0;s<r;s+=4){let o=s/4;n[o]=t.unpack(e,s,n[o])}return n}static clone(e,n){if(h(e))return h(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n):new t(e[0],e[2],e[1],e[3])}static fromColumnMajorArray(e,n){return l.defined("values",e),t.clone(e,n)}static fromRowMajorArray(e,n){return l.defined("values",e),h(n)?(n[0]=e[0],n[1]=e[2],n[2]=e[1],n[3]=e[3],n):new t(e[0],e[1],e[2],e[3])}static fromScale(e,n){return l.typeOf.object("scale",e),h(n)?(n[0]=e.x,n[1]=0,n[2]=0,n[3]=e.y,n):new t(e.x,0,0,e.y)}static fromUniformScale(e,n){return l.typeOf.number("scale",e),h(n)?(n[0]=e,n[1]=0,n[2]=0,n[3]=e,n):new t(e,0,0,e)}static fromRotation(e,n){l.typeOf.number("angle",e);let r=Math.cos(e),s=Math.sin(e);return h(n)?(n[0]=r,n[1]=s,n[2]=-s,n[3]=r,n):new t(r,-s,s,r)}static toArray(e,n){return l.typeOf.object("matrix",e),h(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n):[e[0],e[1],e[2],e[3]]}static getElementIndex(e,n){return l.typeOf.number.greaterThanOrEquals("row",n,0),l.typeOf.number.lessThanOrEquals("row",n,1),l.typeOf.number.greaterThanOrEquals("column",e,0),l.typeOf.number.lessThanOrEquals("column",e,1),e*2+n}static getColumn(e,n,r){l.typeOf.object("matrix",e),l.typeOf.number.greaterThanOrEquals("index",n,0),l.typeOf.number.lessThanOrEquals("index",n,1),l.typeOf.object("result",r);let s=n*2,o=e[s],c=e[s+1];return r.x=o,r.y=c,r}static setColumn(e,n,r,s){l.typeOf.object("matrix",e),l.typeOf.number.greaterThanOrEquals("index",n,0),l.typeOf.number.lessThanOrEquals("index",n,1),l.typeOf.object("cartesian",r),l.typeOf.object("result",s),s=t.clone(e,s);let o=n*2;return s[o]=r.x,s[o+1]=r.y,s}static getRow(e,n,r){l.typeOf.object("matrix",e),l.typeOf.number.greaterThanOrEquals("index",n,0),l.typeOf.number.lessThanOrEquals("index",n,1),l.typeOf.object("result",r);let s=e[n],o=e[n+2];return r.x=s,r.y=o,r}static setRow(e,n,r,s){return l.typeOf.object("matrix",e),l.typeOf.number.greaterThanOrEquals("index",n,0),l.typeOf.number.lessThanOrEquals("index",n,1),l.typeOf.object("cartesian",r),l.typeOf.object("result",s),s=t.clone(e,s),s[n]=r.x,s[n+2]=r.y,s}static setScale(e,n,r){l.typeOf.object("matrix",e),l.typeOf.object("scale",n),l.typeOf.object("result",r);let s=t.getScale(e,ri),o=n.x/s.x,c=n.y/s.y;return r[0]=e[0]*o,r[1]=e[1]*o,r[2]=e[2]*c,r[3]=e[3]*c,r}static setUniformScale(e,n,r){l.typeOf.object("matrix",e),l.typeOf.number("scale",n),l.typeOf.object("result",r);let s=t.getScale(e,oi),o=n/s.x,c=n/s.y;return r[0]=e[0]*o,r[1]=e[1]*o,r[2]=e[2]*c,r[3]=e[3]*c,r}static getScale(e,n){return l.typeOf.object("matrix",e),l.typeOf.object("result",n),n.x=se.magnitude(se.fromElements(e[0],e[1],Sr)),n.y=se.magnitude(se.fromElements(e[2],e[3],Sr)),n}static getMaximumScale(e){return t.getScale(e,vr),se.maximumComponent(vr)}static setRotation(e,n,r){l.typeOf.object("matrix",e),l.typeOf.object("result",r);let s=t.getScale(e,ii);return r[0]=n[0]*s.x,r[1]=n[1]*s.x,r[2]=n[2]*s.y,r[3]=n[3]*s.y,r}static getRotation(e,n){l.typeOf.object("matrix",e),l.typeOf.object("result",n);let r=t.getScale(e,si);return n[0]=e[0]/r.x,n[1]=e[1]/r.x,n[2]=e[2]/r.y,n[3]=e[3]/r.y,n}static multiply(e,n,r){l.typeOf.object("left",e),l.typeOf.object("right",n),l.typeOf.object("result",r);let s=e[0]*n[0]+e[2]*n[1],o=e[0]*n[2]+e[2]*n[3],c=e[1]*n[0]+e[3]*n[1],u=e[1]*n[2]+e[3]*n[3];return r[0]=s,r[1]=c,r[2]=o,r[3]=u,r}static add(e,n,r){return l.typeOf.object("left",e),l.typeOf.object("right",n),l.typeOf.object("result",r),r[0]=e[0]+n[0],r[1]=e[1]+n[1],r[2]=e[2]+n[2],r[3]=e[3]+n[3],r}static subtract(e,n,r){return l.typeOf.object("left",e),l.typeOf.object("right",n),l.typeOf.object("result",r),r[0]=e[0]-n[0],r[1]=e[1]-n[1],r[2]=e[2]-n[2],r[3]=e[3]-n[3],r}static multiplyByVector(e,n,r){l.typeOf.object("matrix",e),l.typeOf.object("cartesian",n),l.typeOf.object("result",r);let s=e[0]*n.x+e[2]*n.y,o=e[1]*n.x+e[3]*n.y;return r.x=s,r.y=o,r}static multiplyByScalar(e,n,r){return l.typeOf.object("matrix",e),l.typeOf.number("scalar",n),l.typeOf.object("result",r),r[0]=e[0]*n,r[1]=e[1]*n,r[2]=e[2]*n,r[3]=e[3]*n,r}static multiplyByScale(e,n,r){return l.typeOf.object("matrix",e),l.typeOf.object("scale",n),l.typeOf.object("result",r),r[0]=e[0]*n.x,r[1]=e[1]*n.x,r[2]=e[2]*n.y,r[3]=e[3]*n.y,r}static multiplyByUniformScale(e,n,r){return l.typeOf.object("matrix",e),l.typeOf.number("scale",n),l.typeOf.object("result",r),r[0]=e[0]*n,r[1]=e[1]*n,r[2]=e[2]*n,r[3]=e[3]*n,r}static negate(e,n){return l.typeOf.object("matrix",e),l.typeOf.object("result",n),n[0]=-e[0],n[1]=-e[1],n[2]=-e[2],n[3]=-e[3],n}static transpose(e,n){l.typeOf.object("matrix",e),l.typeOf.object("result",n);let r=e[0],s=e[2],o=e[1],c=e[3];return n[0]=r,n[1]=s,n[2]=o,n[3]=c,n}static abs(e,n){return l.typeOf.object("matrix",e),l.typeOf.object("result",n),n[0]=Math.abs(e[0]),n[1]=Math.abs(e[1]),n[2]=Math.abs(e[2]),n[3]=Math.abs(e[3]),n}static equals(e,n){return e===n||h(e)&&h(n)&&e[0]===n[0]&&e[1]===n[1]&&e[2]===n[2]&&e[3]===n[3]}static equalsArray(e,n,r){return e[0]===n[r]&&e[1]===n[r+1]&&e[2]===n[r+2]&&e[3]===n[r+3]}static equalsEpsilon(e,n,r){return r=r??0,e===n||h(e)&&h(n)&&Math.abs(e[0]-n[0])<=r&&Math.abs(e[1]-n[1])<=r&&Math.abs(e[2]-n[2])<=r&&Math.abs(e[3]-n[3])<=r}get length(){return t.packedLength}clone(e){return t.clone(this,e)}equals(e){return t.equals(this,e)}equalsEpsilon(e,n){return t.equalsEpsilon(this,e,n)}toString(){return`(${this[0]}, ${this[2]}) +(${this[1]}, ${this[3]})`}};ue.packedLength=4;ue.fromArray=ue.unpack;ue.IDENTITY=Object.freeze(new ue(1,0,0,1));ue.ZERO=Object.freeze(new ue(0,0,0,0));ue.COLUMN0ROW0=0;ue.COLUMN0ROW1=1;ue.COLUMN1ROW0=2;ue.COLUMN1ROW1=3;var ri=new se,oi=new se,Sr=new se,vr=new se,ii=new se,si=new se,vc=ue;export{je as a,Ne as b,Re as c,kn as d,$n as e,Ie as f,fr as g,He as h,_r as i,gc as j,vc as k}; diff --git a/cesium/Workers/chunk-ML6MR2RA.js b/cesium/Workers/chunk-ML6MR2RA.js new file mode 100644 index 00000000..235a689e --- /dev/null +++ b/cesium/Workers/chunk-ML6MR2RA.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var e={NONE:0,TOP:1,ALL:2};Object.freeze(e);var t=e;export{t as a}; diff --git a/cesium/Workers/chunk-MOHWP7VV.js b/cesium/Workers/chunk-MOHWP7VV.js new file mode 100644 index 00000000..92717953 --- /dev/null +++ b/cesium/Workers/chunk-MOHWP7VV.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as h}from"./chunk-P5EFSOUF.js";import{b as y}from"./chunk-2AIOP76V.js";import{a as n,b as a}from"./chunk-IAE6APK2.js";import{b as f}from"./chunk-NZBME2JK.js";var x={},b=new n,P=new n,B=new n,M=new n,w=new h;x.validOutline=function(i){f.defined("positions",i);let o=h.fromPoints(i,w).halfAxes,e=a.getColumn(o,0,P),r=a.getColumn(o,1,B),t=a.getColumn(o,2,M),u=n.magnitude(e),s=n.magnitude(r),l=n.magnitude(t);return!(u===0&&(s===0||l===0)||s===0&&l===0)};x.computeProjectTo2DArguments=function(i,c,o,e){f.defined("positions",i),f.defined("centerResult",c),f.defined("planeAxis1Result",o),f.defined("planeAxis2Result",e);let r=h.fromPoints(i,w),t=r.halfAxes,u=a.getColumn(t,0,P),s=a.getColumn(t,1,B),l=a.getColumn(t,2,M),A=n.magnitude(u),d=n.magnitude(s),g=n.magnitude(l),m=Math.min(A,d,g);if(A===0&&(d===0||g===0)||d===0&&g===0)return!1;let p,C;return(m===d||m===g)&&(p=u),m===A?p=s:m===g&&(C=s),(m===A||m===d)&&(C=l),n.normalize(p,o),n.normalize(C,e),n.clone(r.center,c),!0};function z(i,c,o,e,r){let t=n.subtract(i,c,b),u=n.dot(o,t),s=n.dot(e,t);return y.fromElements(u,s,r)}x.createProjectPointsTo2DFunction=function(i,c,o){return function(e){let r=new Array(e.length);for(let t=0;t<e.length;t++)r[t]=z(e[t],i,c,o);return r}};x.createProjectPointTo2DFunction=function(i,c,o){return function(e,r){return z(e,i,c,o,r)}};var O=x;export{O as a}; diff --git a/cesium/Workers/chunk-NZBME2JK.js b/cesium/Workers/chunk-NZBME2JK.js new file mode 100644 index 00000000..aeec13c4 --- /dev/null +++ b/cesium/Workers/chunk-NZBME2JK.js @@ -0,0 +1,27 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{f as u}from"./chunk-6DLS2UKD.js";function f(t){this.name="DeveloperError",this.message=t;let e;try{throw new Error}catch(o){e=o.stack}this.stack=e}u(Object.create)&&(f.prototype=Object.create(Error.prototype),f.prototype.constructor=f);f.prototype.toString=function(){let t=`${this.name}: ${this.message}`;return u(this.stack)&&(t+=` +${this.stack.toString()}`),t};f.throwInstantiationError=function(){throw new f("This function defines an interface and should not be called directly.")};var r=f;var n={};n.typeOf={};function c(t){return`${t} is required, actual value was undefined`}function a(t,e,o){return`Expected ${o} to be typeof ${e}, actual typeof was ${t}`}n.defined=function(t,e){if(!u(e))throw new r(c(t))};n.typeOf.func=function(t,e){if(typeof e!="function")throw new r(a(typeof e,"function",t))};n.typeOf.string=function(t,e){if(typeof e!="string")throw new r(a(typeof e,"string",t))};n.typeOf.number=function(t,e){if(typeof e!="number")throw new r(a(typeof e,"number",t))};n.typeOf.number.lessThan=function(t,e,o){if(n.typeOf.number(t,e),e>=o)throw new r(`Expected ${t} to be less than ${o}, actual value was ${e}`)};n.typeOf.number.lessThanOrEquals=function(t,e,o){if(n.typeOf.number(t,e),e>o)throw new r(`Expected ${t} to be less than or equal to ${o}, actual value was ${e}`)};n.typeOf.number.greaterThan=function(t,e,o){if(n.typeOf.number(t,e),e<=o)throw new r(`Expected ${t} to be greater than ${o}, actual value was ${e}`)};n.typeOf.number.greaterThanOrEquals=function(t,e,o){if(n.typeOf.number(t,e),e<o)throw new r(`Expected ${t} to be greater than or equal to ${o}, actual value was ${e}`)};n.typeOf.object=function(t,e){if(typeof e!="object")throw new r(a(typeof e,"object",t))};n.typeOf.bool=function(t,e){if(typeof e!="boolean")throw new r(a(typeof e,"boolean",t))};n.typeOf.bigint=function(t,e){if(typeof e!="bigint")throw new r(a(typeof e,"bigint",t))};n.typeOf.number.equals=function(t,e,o,i){if(n.typeOf.number(t,o),n.typeOf.number(e,i),o!==i)throw new r(`${t} must be equal to ${e}, the actual values are ${o} and ${i}`)};var l=n;export{r as a,l as b}; diff --git a/cesium/Workers/chunk-P5EFSOUF.js b/cesium/Workers/chunk-P5EFSOUF.js new file mode 100644 index 00000000..d6feaa4a --- /dev/null +++ b/cesium/Workers/chunk-P5EFSOUF.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as J}from"./chunk-BDWA46XV.js";import{a as I}from"./chunk-5AAMOBJK.js";import{b as G,c as k}from"./chunk-D3TVNJ6W.js";import{a as B}from"./chunk-3VUCSHGU.js";import{j as X}from"./chunk-LNJEJFV5.js";import{b as j}from"./chunk-BPABSUDY.js";import{a as S,b as z,c as F}from"./chunk-2AIOP76V.js";import{a as t,b as d}from"./chunk-IAE6APK2.js";import{a as g}from"./chunk-3E7FIXV7.js";import{a as b,b as W}from"./chunk-NZBME2JK.js";import{f as p}from"./chunk-6DLS2UKD.js";function w(n,e){this.center=t.clone(n??t.ZERO),this.halfAxes=d.clone(e??d.ZERO)}w.packedLength=t.packedLength+d.packedLength;w.pack=function(n,e,c){return W.typeOf.object("value",n),W.defined("array",e),c=c??0,t.pack(n.center,e,c),d.pack(n.halfAxes,e,c+t.packedLength),e};w.unpack=function(n,e,c){return W.defined("array",n),e=e??0,p(c)||(c=new w),t.unpack(n,e,c.center),d.unpack(n,e+t.packedLength,c.halfAxes),c};var pt=new t,Ct=new t,ut=new t,Pt=new t,xt=new t,yt=new t,At=new d,Nt={unitary:new d,diagonal:new d};w.fromPoints=function(n,e){if(p(e)||(e=new w),!p(n)||n.length===0)return e.halfAxes=d.ZERO,e.center=t.ZERO,e;let c,h=n.length,r=t.clone(n[0],pt);for(c=1;c<h;c++)t.add(r,n[c],r);let o=1/h;t.multiplyByScalar(r,o,r);let i=0,C=0,m=0,l=0,u=0,a=0,s;for(c=0;c<h;c++)s=t.subtract(n[c],r,Ct),i+=s.x*s.x,C+=s.x*s.y,m+=s.x*s.z,l+=s.y*s.y,u+=s.y*s.z,a+=s.z*s.z;i*=o,C*=o,m*=o,l*=o,u*=o,a*=o;let f=At;f[0]=i,f[1]=C,f[2]=m,f[3]=C,f[4]=l,f[5]=u,f[6]=m,f[7]=u,f[8]=a;let A=d.computeEigenDecomposition(f,Nt),M=d.clone(A.unitary,e.halfAxes),x=d.getColumn(M,0,Pt),y=d.getColumn(M,1,xt),N=d.getColumn(M,2,yt),P=-Number.MAX_VALUE,O=-Number.MAX_VALUE,L=-Number.MAX_VALUE,U=Number.MAX_VALUE,R=Number.MAX_VALUE,q=Number.MAX_VALUE;for(c=0;c<h;c++)s=n[c],P=Math.max(t.dot(x,s),P),O=Math.max(t.dot(y,s),O),L=Math.max(t.dot(N,s),L),U=Math.min(t.dot(x,s),U),R=Math.min(t.dot(y,s),R),q=Math.min(t.dot(N,s),q);x=t.multiplyByScalar(x,.5*(U+P),x),y=t.multiplyByScalar(y,.5*(R+O),y),N=t.multiplyByScalar(N,.5*(q+L),N);let T=t.add(x,y,e.center);t.add(T,N,T);let E=ut;return E.x=P-U,E.y=O-R,E.z=L-q,t.multiplyByScalar(E,.5,E),d.multiplyByScale(e.halfAxes,E,e.halfAxes),e};var et=new t,Mt=new t;function K(n,e,c,h,r,o,i,C,m,l,u){if(!p(r)||!p(o)||!p(i)||!p(C)||!p(m)||!p(l))throw new b("all extents (minimum/maximum X/Y/Z) are required.");p(u)||(u=new w);let a=u.halfAxes;d.setColumn(a,0,e,a),d.setColumn(a,1,c,a),d.setColumn(a,2,h,a);let s=et;s.x=(r+o)/2,s.y=(i+C)/2,s.z=(m+l)/2;let f=Mt;f.x=(o-r)/2,f.y=(C-i)/2,f.z=(l-m)/2;let A=u.center;return s=d.multiplyByVector(a,s,s),t.add(n,s,A),d.multiplyByScale(a,f,a),u}var Q=new S,Ot=new t,bt=new S,Tt=new S,St=new S,gt=new S,Et=new S,Rt=new t,$=new t,Wt=new t,H=new t,zt=new t,It=new z,Lt=new z,Ut=new z,qt=new z,jt=new z,Bt=new t,vt=new t,_t=new t,Vt=new t,Dt=new z,Xt=new t,kt=new t,Zt=new t,Yt=new I(t.UNIT_X,0);w.fromRectangle=function(n,e,c,h,r){if(!p(n))throw new b("rectangle is required");if(n.width<0||n.width>g.TWO_PI)throw new b("Rectangle width must be between 0 and 2 * pi");if(n.height<0||n.height>g.PI)throw new b("Rectangle height must be between 0 and pi");if(p(h)&&!g.equalsEpsilon(h.radii.x,h.radii.y,g.EPSILON15))throw new b("Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)");e=e??0,c=c??0,h=h??F.default;let o,i,C,m,l,u,a;if(n.width<=g.PI){let R=X.center(n,Q),q=h.cartographicToCartesian(R,Ot),T=new J(q,h);a=T.plane;let E=R.longitude,rt=n.south<0&&n.north>0?0:R.latitude,ot=S.fromRadians(E,n.north,c,bt),v=S.fromRadians(n.west,n.north,c,Tt),st=S.fromRadians(n.west,rt,c,St),_=S.fromRadians(n.west,n.south,c,gt),it=S.fromRadians(E,n.south,c,Et),ht=h.cartographicToCartesian(ot,Rt),V=h.cartographicToCartesian(v,$),ft=h.cartographicToCartesian(st,Wt),D=h.cartographicToCartesian(_,H),dt=h.cartographicToCartesian(it,zt),wt=T.projectPointToNearestOnPlane(ht,It),Z=T.projectPointToNearestOnPlane(V,Lt),mt=T.projectPointToNearestOnPlane(ft,Ut),Y=T.projectPointToNearestOnPlane(D,qt),lt=T.projectPointToNearestOnPlane(dt,jt);return o=Math.min(Z.x,mt.x,Y.x),i=-o,m=Math.max(Z.y,wt.y),C=Math.min(Y.y,lt.y),v.height=_.height=e,V=h.cartographicToCartesian(v,$),D=h.cartographicToCartesian(_,H),l=Math.min(I.getPointDistance(a,V),I.getPointDistance(a,D)),u=c,K(T.origin,T.xAxis,T.yAxis,T.zAxis,o,i,C,m,l,u,r)}let s=n.south>0,f=n.north<0,A=s?n.south:f?n.north:0,M=X.center(n,Q).longitude,x=t.fromRadians(M,A,c,h,Bt);x.z=0;let N=Math.abs(x.x)<g.EPSILON10&&Math.abs(x.y)<g.EPSILON10?t.UNIT_X:t.normalize(x,vt),P=t.UNIT_Z,O=t.cross(N,P,_t);a=I.fromPointNormal(x,N,Yt);let L=t.fromRadians(M+g.PI_OVER_TWO,A,c,h,Vt);i=t.dot(I.projectPointOntoPlane(a,L,Dt),O),o=-i,m=t.fromRadians(0,n.north,f?e:c,h,Xt).z,C=t.fromRadians(0,n.south,s?e:c,h,kt).z;let U=t.fromRadians(n.east,A,c,h,Zt);return l=I.getPointDistance(a,U),u=0,K(x,O,P,N,o,i,C,m,l,u,r)};w.fromTransformation=function(n,e){return W.typeOf.object("transformation",n),p(e)||(e=new w),e.center=j.getTranslation(n,e.center),e.halfAxes=j.getMatrix3(n,e.halfAxes),e.halfAxes=d.multiplyByScalar(e.halfAxes,.5,e.halfAxes),e};w.clone=function(n,e){if(p(n))return p(e)?(t.clone(n.center,e.center),d.clone(n.halfAxes,e.halfAxes),e):new w(n.center,n.halfAxes)};w.intersectPlane=function(n,e){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("plane is required.");let c=n.center,h=e.normal,r=n.halfAxes,o=h.x,i=h.y,C=h.z,m=Math.abs(o*r[d.COLUMN0ROW0]+i*r[d.COLUMN0ROW1]+C*r[d.COLUMN0ROW2])+Math.abs(o*r[d.COLUMN1ROW0]+i*r[d.COLUMN1ROW1]+C*r[d.COLUMN1ROW2])+Math.abs(o*r[d.COLUMN2ROW0]+i*r[d.COLUMN2ROW1]+C*r[d.COLUMN2ROW2]),l=t.dot(h,c)+e.distance;return l<=-m?B.OUTSIDE:l>=m?B.INSIDE:B.INTERSECTING};var nt=new t,at=new t,ct=new t,Ft=new t,tt=new t,Gt=new t;w.distanceSquaredTo=function(n,e){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("cartesian is required.");let c=t.subtract(e,n.center,et),h=n.halfAxes,r=d.getColumn(h,0,nt),o=d.getColumn(h,1,at),i=d.getColumn(h,2,ct),C=t.magnitude(r),m=t.magnitude(o),l=t.magnitude(i),u=!0,a=!0,s=!0;C>0?t.divideByScalar(r,C,r):u=!1,m>0?t.divideByScalar(o,m,o):a=!1,l>0?t.divideByScalar(i,l,i):s=!1;let f=!u+!a+!s,A,M,x;if(f===1){let O=r;A=o,M=i,a?s||(O=i,M=r):(O=o,A=r),x=t.cross(A,M,tt),O===r?r=x:O===o?o=x:O===i&&(i=x)}else if(f===2){A=r,a?A=o:s&&(A=i);let O=t.UNIT_Y;O.equalsEpsilon(A,g.EPSILON3)&&(O=t.UNIT_X),M=t.cross(A,O,Ft),t.normalize(M,M),x=t.cross(A,M,tt),t.normalize(x,x),A===r?(o=M,i=x):A===o?(i=M,r=x):A===i&&(r=M,o=x)}else f===3&&(r=t.UNIT_X,o=t.UNIT_Y,i=t.UNIT_Z);let y=Gt;y.x=t.dot(c,r),y.y=t.dot(c,o),y.z=t.dot(c,i);let N=0,P;return y.x<-C?(P=y.x+C,N+=P*P):y.x>C&&(P=y.x-C,N+=P*P),y.y<-m?(P=y.y+m,N+=P*P):y.y>m&&(P=y.y-m,N+=P*P),y.z<-l?(P=y.z+l,N+=P*P):y.z>l&&(P=y.z-l,N+=P*P),N};var Jt=new t,Kt=new t;w.computePlaneDistances=function(n,e,c,h){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("position is required.");if(!p(c))throw new b("direction is required.");p(h)||(h=new G);let r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=n.center,C=n.halfAxes,m=d.getColumn(C,0,nt),l=d.getColumn(C,1,at),u=d.getColumn(C,2,ct),a=t.add(m,l,Jt);t.add(a,u,a),t.add(a,i,a);let s=t.subtract(a,e,Kt),f=t.dot(c,s);return r=Math.min(f,r),o=Math.max(f,o),t.add(i,m,a),t.add(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.add(i,m,a),t.subtract(a,l,a),t.add(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.add(i,m,a),t.subtract(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,m,a),t.add(a,l,a),t.add(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,m,a),t.add(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,m,a),t.subtract(a,l,a),t.add(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,m,a),t.subtract(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),h.start=r,h.stop=o,h};var Qt=new t,$t=new t,Ht=new t;w.computeCorners=function(n,e){W.typeOf.object("box",n),p(e)||(e=[new t,new t,new t,new t,new t,new t,new t,new t]);let c=n.center,h=n.halfAxes,r=d.getColumn(h,0,Qt),o=d.getColumn(h,1,$t),i=d.getColumn(h,2,Ht);return t.clone(c,e[0]),t.subtract(e[0],r,e[0]),t.subtract(e[0],o,e[0]),t.subtract(e[0],i,e[0]),t.clone(c,e[1]),t.subtract(e[1],r,e[1]),t.subtract(e[1],o,e[1]),t.add(e[1],i,e[1]),t.clone(c,e[2]),t.subtract(e[2],r,e[2]),t.add(e[2],o,e[2]),t.subtract(e[2],i,e[2]),t.clone(c,e[3]),t.subtract(e[3],r,e[3]),t.add(e[3],o,e[3]),t.add(e[3],i,e[3]),t.clone(c,e[4]),t.add(e[4],r,e[4]),t.subtract(e[4],o,e[4]),t.subtract(e[4],i,e[4]),t.clone(c,e[5]),t.add(e[5],r,e[5]),t.subtract(e[5],o,e[5]),t.add(e[5],i,e[5]),t.clone(c,e[6]),t.add(e[6],r,e[6]),t.add(e[6],o,e[6]),t.subtract(e[6],i,e[6]),t.clone(c,e[7]),t.add(e[7],r,e[7]),t.add(e[7],o,e[7]),t.add(e[7],i,e[7]),e};var te=new d;w.computeTransformation=function(n,e){W.typeOf.object("box",n),p(e)||(e=new j);let c=n.center,h=d.multiplyByUniformScale(n.halfAxes,2,te);return j.fromRotationTranslation(h,c,e)};var ee=new k;w.isOccluded=function(n,e){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("occluder is required.");let c=k.fromOrientedBoundingBox(n,ee);return!e.isBoundingSphereVisible(c)};w.prototype.intersectPlane=function(n){return w.intersectPlane(this,n)};w.prototype.distanceSquaredTo=function(n){return w.distanceSquaredTo(this,n)};w.prototype.computePlaneDistances=function(n,e,c){return w.computePlaneDistances(this,n,e,c)};w.prototype.computeCorners=function(n){return w.computeCorners(this,n)};w.prototype.computeTransformation=function(n){return w.computeTransformation(this,n)};w.prototype.isOccluded=function(n){return w.isOccluded(this,n)};w.equals=function(n,e){return n===e||p(n)&&p(e)&&t.equals(n.center,e.center)&&d.equals(n.halfAxes,e.halfAxes)};w.prototype.clone=function(n){return w.clone(this,n)};w.prototype.equals=function(n){return w.equals(this,n)};var Pe=w;export{Pe as a}; diff --git a/cesium/Workers/chunk-P7N43FDO.js b/cesium/Workers/chunk-P7N43FDO.js new file mode 100644 index 00000000..fbb9050d --- /dev/null +++ b/cesium/Workers/chunk-P7N43FDO.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{h as C}from"./chunk-LNJEJFV5.js";import{a as n,b}from"./chunk-IAE6APK2.js";import{a as w}from"./chunk-3E7FIXV7.js";var j={},q=new n,L=new n,Q=new C,G=new b;function W(m,O,p,S,g,_,d,f,M,s){let a=m+O;n.multiplyByScalar(S,Math.cos(a),q),n.multiplyByScalar(p,Math.sin(a),L),n.add(q,L,q);let u=Math.cos(m);u=u*u;let l=Math.sin(m);l=l*l;let h=_/Math.sqrt(d*u+g*l)/f;return C.fromAxisAngle(q,h,Q),b.fromQuaternion(Q,G),b.multiplyByVector(G,M,s),n.normalize(s,s),n.multiplyByScalar(s,f,s),s}var U=new n,Z=new n,N=new n,v=new n;j.raisePositionsToHeight=function(m,O,p){let S=O.ellipsoid,g=O.height,_=O.extrudedHeight,d=p?m.length/3*2:m.length/3,f=new Float64Array(d*3),M=m.length,s=p?M:0;for(let a=0;a<M;a+=3){let u=a+1,l=a+2,r=n.fromArray(m,a,U);S.scaleToGeodeticSurface(r,r);let h=n.clone(r,Z),x=S.geodeticSurfaceNormal(r,v),P=n.multiplyByScalar(x,g,N);n.add(r,P,r),p&&(n.multiplyByScalar(x,_,P),n.add(h,P,h),f[a+s]=h.x,f[u+s]=h.y,f[l+s]=h.z),f[a]=r.x,f[u]=r.y,f[l]=r.z}return f};var D=new n,J=new n,K=new n;j.computeEllipsePositions=function(m,O,p){let S=m.semiMinorAxis,g=m.semiMajorAxis,_=m.rotation,d=m.center,f=m.granularity*8,M=S*S,s=g*g,a=g*S,u=n.magnitude(d),l=n.normalize(d,D),r=n.cross(n.UNIT_Z,d,J);r=n.normalize(r,r);let h=n.cross(l,r,K),x=1+Math.ceil(w.PI_OVER_TWO/f),P=w.PI_OVER_TWO/(x-1),y=w.PI_OVER_TWO-x*P;y<0&&(x-=Math.ceil(Math.abs(y)/P));let k=2*(x*(x+2)),e=O?new Array(k*3):void 0,o=0,t=U,i=Z,H=x*4*3,z=H-1,A=0,c=p?new Array(H):void 0,I,T,R,E,V;for(y=w.PI_OVER_TWO,t=W(y,_,h,r,M,a,s,u,l,t),O&&(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z),p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x),y=w.PI_OVER_TWO-P,I=1;I<x+1;++I){if(t=W(y,_,h,r,M,a,s,u,l,t),i=W(Math.PI-y,_,h,r,M,a,s,u,l,i),O){for(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z,R=2*I+2,T=1;T<R-1;++T)E=T/(R-1),V=n.lerp(t,i,E,N),e[o++]=V.x,e[o++]=V.y,e[o++]=V.z;e[o++]=i.x,e[o++]=i.y,e[o++]=i.z}p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x,c[A++]=i.x,c[A++]=i.y,c[A++]=i.z),y=w.PI_OVER_TWO-(I+1)*P}for(I=x;I>1;--I){if(y=w.PI_OVER_TWO-(I-1)*P,t=W(-y,_,h,r,M,a,s,u,l,t),i=W(y+Math.PI,_,h,r,M,a,s,u,l,i),O){for(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z,R=2*(I-1)+2,T=1;T<R-1;++T)E=T/(R-1),V=n.lerp(t,i,E,N),e[o++]=V.x,e[o++]=V.y,e[o++]=V.z;e[o++]=i.x,e[o++]=i.y,e[o++]=i.z}p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x,c[A++]=i.x,c[A++]=i.y,c[A++]=i.z)}y=w.PI_OVER_TWO,t=W(-y,_,h,r,M,a,s,u,l,t);let B={};return O&&(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z,B.positions=e,B.numPts=x),p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x,B.outerPositions=c),B};var tt=j;export{tt as a}; diff --git a/cesium/Workers/chunk-PEDE2P3Q.js b/cesium/Workers/chunk-PEDE2P3Q.js new file mode 100644 index 00000000..a711e38e --- /dev/null +++ b/cesium/Workers/chunk-PEDE2P3Q.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as w}from"./chunk-3E7FIXV7.js";var C={};C.computePositions=function(I,f,b,n,e){let m=I*.5,i=-m,s=n+n,P=e?2*s:s,t=new Float64Array(P*3),r,c=0,o=0,p=e?s*3:0,a=e?(s+n)*3:n*3;for(r=0;r<n;r++){let y=r/n*w.TWO_PI,x=Math.cos(y),h=Math.sin(y),u=x*b,M=h*b,O=x*f,d=h*f;t[o+p]=u,t[o+p+1]=M,t[o+p+2]=i,t[o+a]=O,t[o+a+1]=d,t[o+a+2]=m,o+=3,e&&(t[c++]=u,t[c++]=M,t[c++]=i,t[c++]=O,t[c++]=d,t[c++]=m)}return t};var Y=C;export{Y as a}; diff --git a/cesium/Workers/chunk-PSIOCLX7.js b/cesium/Workers/chunk-PSIOCLX7.js new file mode 100644 index 00000000..9b921c95 --- /dev/null +++ b/cesium/Workers/chunk-PSIOCLX7.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as F}from"./chunk-ML6MR2RA.js";import{a as Z}from"./chunk-4WQ4VT5S.js";import{a as X}from"./chunk-6EINM7EY.js";import{b as K,c as Q,d as U}from"./chunk-A4I25VN7.js";import{c as H}from"./chunk-D3TVNJ6W.js";import{a as y}from"./chunk-ATKJRN2G.js";import{c as J}from"./chunk-2AIOP76V.js";import{a as r,c as V}from"./chunk-IAE6APK2.js";import{a as N}from"./chunk-3E7FIXV7.js";import{a as b}from"./chunk-NZBME2JK.js";import{f as R}from"./chunk-6DLS2UKD.js";var ii=new r(1,1,1),B=Math.cos,S=Math.sin;function v(t){t=t??V.EMPTY_OBJECT;let o=t.radii??ii,n=t.innerRadii??o,C=t.minimumClock??0,P=t.maximumClock??N.TWO_PI,h=t.minimumCone??0,k=t.maximumCone??N.PI,s=Math.round(t.stackPartitions??10),w=Math.round(t.slicePartitions??8),m=Math.round(t.subdivisions??128);if(s<1)throw new b("options.stackPartitions cannot be less than 1");if(w<0)throw new b("options.slicePartitions cannot be less than 0");if(m<0)throw new b("options.subdivisions must be greater than or equal to zero.");if(R(t.offsetAttribute)&&t.offsetAttribute===F.TOP)throw new b("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._radii=r.clone(o),this._innerRadii=r.clone(n),this._minimumClock=C,this._maximumClock=P,this._minimumCone=h,this._maximumCone=k,this._stackPartitions=s,this._slicePartitions=w,this._subdivisions=m,this._offsetAttribute=t.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}v.packedLength=2*r.packedLength+8;v.pack=function(t,o,n){if(!R(t))throw new b("value is required");if(!R(o))throw new b("array is required");return n=n??0,r.pack(t._radii,o,n),n+=r.packedLength,r.pack(t._innerRadii,o,n),n+=r.packedLength,o[n++]=t._minimumClock,o[n++]=t._maximumClock,o[n++]=t._minimumCone,o[n++]=t._maximumCone,o[n++]=t._stackPartitions,o[n++]=t._slicePartitions,o[n++]=t._subdivisions,o[n]=t._offsetAttribute??-1,o};var $=new r,G=new r,l={radii:$,innerRadii:G,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};v.unpack=function(t,o,n){if(!R(t))throw new b("array is required");o=o??0;let C=r.unpack(t,o,$);o+=r.packedLength;let P=r.unpack(t,o,G);o+=r.packedLength;let h=t[o++],k=t[o++],s=t[o++],w=t[o++],m=t[o++],f=t[o++],T=t[o++],a=t[o];return R(n)?(n._radii=r.clone(C,n._radii),n._innerRadii=r.clone(P,n._innerRadii),n._minimumClock=h,n._maximumClock=k,n._minimumCone=s,n._maximumCone=w,n._stackPartitions=m,n._slicePartitions=f,n._subdivisions=T,n._offsetAttribute=a===-1?void 0:a,n):(l.minimumClock=h,l.maximumClock=k,l.minimumCone=s,l.maximumCone=w,l.stackPartitions=m,l.slicePartitions=f,l.subdivisions=T,l.offsetAttribute=a===-1?void 0:a,new v(l))};v.createGeometry=function(t){let o=t._radii;if(o.x<=0||o.y<=0||o.z<=0)return;let n=t._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let C=t._minimumClock,P=t._maximumClock,h=t._minimumCone,k=t._maximumCone,s=t._subdivisions,w=J.fromCartesian3(o),m=t._slicePartitions+1,f=t._stackPartitions+1;m=Math.round(m*Math.abs(P-C)/N.TWO_PI),f=Math.round(f*Math.abs(k-h)/N.PI),m<2&&(m=2),f<2&&(f=2);let T=0,a=1,x=n.x!==o.x||n.y!==o.y||n.z!==o.z,W=!1,Y=!1;x&&(a=2,h>0&&(W=!0,T+=m),k<Math.PI&&(Y=!0,T+=m));let q=s*a*(f+m),u=new Float64Array(q*3),g=2*(q+T-(m+f)*a),d=Z.createTypedArray(q,g),i,e,E,z,c=0,_=new Array(f),A=new Array(f);for(i=0;i<f;i++)z=h+i*(k-h)/(f-1),_[i]=S(z),A[i]=B(z);let O=new Array(s),M=new Array(s);for(i=0;i<s;i++)E=C+i*(P-C)/(s-1),O[i]=S(E),M[i]=B(E);for(i=0;i<f;i++)for(e=0;e<s;e++)u[c++]=o.x*_[i]*M[e],u[c++]=o.y*_[i]*O[e],u[c++]=o.z*A[i];if(x)for(i=0;i<f;i++)for(e=0;e<s;e++)u[c++]=n.x*_[i]*M[e],u[c++]=n.y*_[i]*O[e],u[c++]=n.z*A[i];for(_.length=s,A.length=s,i=0;i<s;i++)z=h+i*(k-h)/(s-1),_[i]=S(z),A[i]=B(z);for(O.length=m,M.length=m,i=0;i<m;i++)E=C+i*(P-C)/(m-1),O[i]=S(E),M[i]=B(E);for(i=0;i<s;i++)for(e=0;e<m;e++)u[c++]=o.x*_[i]*M[e],u[c++]=o.y*_[i]*O[e],u[c++]=o.z*A[i];if(x)for(i=0;i<s;i++)for(e=0;e<m;e++)u[c++]=n.x*_[i]*M[e],u[c++]=n.y*_[i]*O[e],u[c++]=n.z*A[i];for(c=0,i=0;i<f*a;i++){let p=i*s;for(e=0;e<s-1;e++)d[c++]=p+e,d[c++]=p+e+1}let L=f*s*a;for(i=0;i<m;i++)for(e=0;e<s-1;e++)d[c++]=L+i+e*m,d[c++]=L+i+(e+1)*m;if(x)for(L=f*s*a+m*s,i=0;i<m;i++)for(e=0;e<s-1;e++)d[c++]=L+i+e*m,d[c++]=L+i+(e+1)*m;if(x){let p=f*s*a,D=p+s*m;if(W)for(i=0;i<m;i++)d[c++]=p+i,d[c++]=D+i;if(Y)for(p+=s*m-m,D+=s*m-m,i=0;i<m;i++)d[c++]=p+i,d[c++]=D+i}let j=new X({position:new U({componentDatatype:y.DOUBLE,componentsPerAttribute:3,values:u})});if(R(t._offsetAttribute)){let p=u.length,D=t._offsetAttribute===F.NONE?0:1,I=new Uint8Array(p/3).fill(D);j.applyOffset=new U({componentDatatype:y.UNSIGNED_BYTE,componentsPerAttribute:1,values:I})}return new Q({attributes:j,indices:d,primitiveType:K.LINES,boundingSphere:H.fromEllipsoid(w),offsetAttribute:t._offsetAttribute})};var Ci=v;export{Ci as a}; diff --git a/cesium/Workers/chunk-PYMQNHFO.js b/cesium/Workers/chunk-PYMQNHFO.js new file mode 100644 index 00000000..1f5dad88 --- /dev/null +++ b/cesium/Workers/chunk-PYMQNHFO.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as y}from"./chunk-G72JFEXW.js";import{c as W}from"./chunk-D3TVNJ6W.js";import{j as k}from"./chunk-LNJEJFV5.js";import{b as h}from"./chunk-BPABSUDY.js";import{a as A}from"./chunk-ATKJRN2G.js";import{a as F,b as T,c as w}from"./chunk-2AIOP76V.js";import{a as s}from"./chunk-IAE6APK2.js";import{a as _}from"./chunk-3E7FIXV7.js";import{a as I,b as r}from"./chunk-NZBME2JK.js";import{f as l}from"./chunk-6DLS2UKD.js";function b(e,t){r.typeOf.object("ellipsoid",e),this._ellipsoid=e,this._cameraPosition=new s,this._cameraPositionInScaledSpace=new s,this._distanceToLimbInScaledSpaceSquared=0,l(t)&&(this.cameraPosition=t)}Object.defineProperties(b.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){let o=this._ellipsoid.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),n=s.magnitudeSquared(o)-1;s.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=o,this._distanceToLimbInScaledSpaceSquared=n}}});var L=new s;b.prototype.isPointVisible=function(e){let o=this._ellipsoid.transformPositionToScaledSpace(e,L);return D(o,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};b.prototype.isScaledSpacePointVisible=function(e){return D(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var et=new s;b.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){let o=this._ellipsoid,n,i;return l(t)&&t<0&&o.minimumRadius>-t?(i=et,i.x=this._cameraPosition.x/(o.radii.x+t),i.y=this._cameraPosition.y/(o.radii.y+t),i.z=this._cameraPosition.z/(o.radii.z+t),n=i.x*i.x+i.y*i.y+i.z*i.z-1):(i=this._cameraPositionInScaledSpace,n=this._distanceToLimbInScaledSpaceSquared),D(e,i,n)};b.prototype.computeHorizonCullingPoint=function(e,t,o){return Q(this._ellipsoid,e,t,o)};var U=w.clone(w.UNIT_SPHERE);b.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,o,n){let i=v(this._ellipsoid,o,U);return Q(i,e,t,n)};b.prototype.computeHorizonCullingPointFromVertices=function(e,t,o,n,i){return Z(this._ellipsoid,e,t,o,n,i)};b.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,o,n,i,c){let a=v(this._ellipsoid,i,U);return Z(a,e,t,o,n,c)};var ot=[];b.prototype.computeHorizonCullingPointFromRectangle=function(e,t,o){r.typeOf.object("rectangle",e);let n=k.subsample(e,t,0,ot),i=W.fromPoints(n);if(!(s.magnitude(i.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(i.center,n,o)};var it=new s;function v(e,t,o){if(l(t)&&t<0&&e.minimumRadius>-t){let n=s.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,it);e=w.fromCartesian3(n,o)}return e}function Q(e,t,o,n){r.typeOf.object("directionToPoint",t),r.defined("positions",o),l(n)||(n=new s);let i=K(e,t),c=0;for(let a=0,m=o.length;a<m;++a){let d=o[a],u=B(e,d,i);if(u<0)return;c=Math.max(c,u)}return J(i,c,n)}var q=new s;function Z(e,t,o,n,i,c){r.typeOf.object("directionToPoint",t),r.defined("vertices",o),r.typeOf.number("stride",n),l(c)||(c=new s),n=n??3,i=i??s.ZERO;let a=K(e,t),m=0;for(let d=0,u=o.length;d<u;d+=n){q.x=o[d]+i.x,q.y=o[d+1]+i.y,q.z=o[d+2]+i.z;let f=B(e,q,a);if(f<0)return;m=Math.max(m,f)}return J(a,m,c)}function D(e,t,o){let n=t,i=o,c=s.subtract(e,n,L),a=-s.dot(c,n);return!(i<0?a>0:a>i&&a*a/s.magnitudeSquared(c)>i)}var nt=new s,at=new s;function B(e,t,o){let n=e.transformPositionToScaledSpace(t,nt),i=s.magnitudeSquared(n),c=Math.sqrt(i),a=s.divideByScalar(n,c,at);i=Math.max(1,i),c=Math.max(1,c);let m=s.dot(a,o),d=s.magnitude(s.cross(a,o,a)),u=1/c,f=Math.sqrt(i-1)*u;return 1/(m*u-d*f)}function J(e,t,o){if(!(t<=0||t===1/0||t!==t))return s.multiplyByScalar(e,t,o)}var R=new s;function K(e,t){return s.equals(t,s.ZERO)?t:(e.transformPositionToScaledSpace(t,R),s.normalize(R,R))}var Nt=b;var j={};j.getHeight=function(e,t,o){if(!Number.isFinite(t))throw new I("scale must be a finite number.");if(!Number.isFinite(o))throw new I("relativeHeight must be a finite number.");return(e-o)*t+o};var st=new F;j.getPosition=function(e,t,o,n,i){let c=t.cartesianToCartographic(e,st);if(!l(c))return s.clone(e,i);let a=j.getHeight(c.height,o,n);return s.fromRadians(c.longitude,c.latitude,a,t,i)};var X=j;var Y={NONE:0,BITS12:1};Object.freeze(Y);var g=Y;var C=new s,ct=new s,N=new T,rt=new h,mt=new h,dt=Math.pow(2,12);function p(e,t,o,n,i,c,a,m,d,u){let f=g.NONE,O,S;if(l(t)&&l(o)&&l(n)&&l(i)){let z=t.minimum,G=t.maximum,x=s.subtract(G,z,ct),tt=n-o;Math.max(s.maximumComponent(x),tt)<dt-1?f=g.BITS12:f=g.NONE;let P=h.fromScale(x,rt);P=h.setTranslation(P,z,P);let E=h.fromScale(s.fromElements(1/x.x,1/x.y,1/x.z,C),mt);E=h.multiplyByTranslation(E,s.negate(z,C),E),S=h.clone(i,new h);let H=h.getTranslation(i,C);H=s.subtract(H,e,C),S=h.setTranslation(S,H,S),S=h.multiply(S,P,S),O=h.inverseTransformation(i,new h),O=h.multiply(E,O,O),i=h.multiply(i,P,new h)}this.quantization=f,this.minimumHeight=o,this.maximumHeight=n,this.center=s.clone(e),this.toScaledENU=O,this.fromScaledENU=i,this.matrix=S,this.hasVertexNormals=c??!1,this.hasWebMercatorT=a??!1,this.hasGeodeticSurfaceNormals=m??!1,this.exaggeration=d??1,this.exaggerationRelativeHeight=u??0,this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}p.prototype.encode=function(e,t,o,n,i,c,a,m){r.typeOf.object("vertexBuffer",e),r.typeOf.number("bufferIndex",t),r.typeOf.object("position",o),r.typeOf.object("uv",n),r.typeOf.number("height",i);let d=n.x,u=n.y;if(this.quantization===g.BITS12){o=h.multiplyByPoint(this.toScaledENU,o,C),o.x=_.clamp(o.x,0,1),o.y=_.clamp(o.y,0,1),o.z=_.clamp(o.z,0,1);let f=this.maximumHeight-this.minimumHeight,O=_.clamp((i-this.minimumHeight)/f,0,1);T.fromElements(o.x,o.y,N);let S=y.compressTextureCoordinates(N);T.fromElements(o.z,O,N);let z=y.compressTextureCoordinates(N);T.fromElements(d,u,N);let G=y.compressTextureCoordinates(N);if(e[t++]=S,e[t++]=z,e[t++]=G,this.hasWebMercatorT){T.fromElements(a,0,N);let x=y.compressTextureCoordinates(N);e[t++]=x}}else e[t++]=o.x-this.center.x,e[t++]=o.y-this.center.y,e[t++]=o.z-this.center.z,e[t++]=i,e[t++]=d,e[t++]=u,this.hasWebMercatorT&&(e[t++]=a);return this.hasVertexNormals&&(e[t++]=y.octPackFloat(c)),this.hasGeodeticSurfaceNormals&&(e[t++]=m.x,e[t++]=m.y,e[t++]=m.z),t};var ht=new s,$=new s;p.prototype.addGeodeticSurfaceNormals=function(e,t,o){if(r.typeOf.object("oldBuffer",e),r.typeOf.object("newBuffer",t),r.typeOf.object("ellipsoid",o),this.hasGeodeticSurfaceNormals)return;let n=this.stride,i=e.length/n;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();let c=this.stride;for(let a=0;a<i;a++){for(let f=0;f<n;f++){let O=a*n+f,S=a*c+f;t[S]=e[O]}let m=this.decodePosition(t,a,ht),d=o.geodeticSurfaceNormal(m,$),u=a*c+this._offsetGeodeticSurfaceNormal;t[u]=d.x,t[u+1]=d.y,t[u+2]=d.z}};p.prototype.removeGeodeticSurfaceNormals=function(e,t){if(r.typeOf.object("oldBuffer",e),r.typeOf.object("newBuffer",t),!this.hasGeodeticSurfaceNormals)return;let o=this.stride,n=e.length/o;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();let i=this.stride;for(let c=0;c<n;c++)for(let a=0;a<i;a++){let m=c*o+a,d=c*i+a;t[d]=e[m]}};p.prototype.decodePosition=function(e,t,o){if(r.typeOf.object("buffer",e),r.typeOf.number("index",t),l(o)||(o=new s),t*=this.stride,this.quantization===g.BITS12){let n=y.decompressTextureCoordinates(e[t],N);o.x=n.x,o.y=n.y;let i=y.decompressTextureCoordinates(e[t+1],N);return o.z=i.x,h.multiplyByPoint(this.fromScaledENU,o,o)}return o.x=e[t],o.y=e[t+1],o.z=e[t+2],s.add(o,this.center,o)};p.prototype.getExaggeratedPosition=function(e,t,o){o=this.decodePosition(e,t,o);let n=this.exaggeration,i=this.exaggerationRelativeHeight;if(n!==1&&this.hasGeodeticSurfaceNormals){let a=this.decodeGeodeticSurfaceNormal(e,t,$),m=this.decodeHeight(e,t),d=X.getHeight(m,n,i)-m;o.x+=a.x*d,o.y+=a.y*d,o.z+=a.z*d}return o};p.prototype.decodeTextureCoordinates=function(e,t,o){return r.typeOf.object("buffer",e),r.typeOf.number("index",t),l(o)||(o=new T),t*=this.stride,this.quantization===g.BITS12?y.decompressTextureCoordinates(e[t+2],o):T.fromElements(e[t+4],e[t+5],o)};p.prototype.decodeHeight=function(e,t){return r.typeOf.object("buffer",e),r.typeOf.number("index",t),t*=this.stride,this.quantization===g.BITS12?y.decompressTextureCoordinates(e[t+1],N).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:e[t+3]};p.prototype.decodeWebMercatorT=function(e,t){return r.typeOf.object("buffer",e),r.typeOf.number("index",t),t*=this.stride,this.quantization===g.BITS12?y.decompressTextureCoordinates(e[t+3],N).x:e[t+6]};p.prototype.getOctEncodedNormal=function(e,t,o){r.typeOf.object("buffer",e),r.typeOf.number("index",t),t=t*this.stride+this._offsetVertexNormal;let n=e[t]/256,i=Math.floor(n),c=(n-i)*256;return T.fromElements(i,c,o)};p.prototype.decodeNormal=function(e,t,o){r.typeOf.object("buffer",e),r.typeOf.number("index",t),r.typeOf.object("result",o);let n=t=t*this.stride+this._offsetVertexNormal;return y.octDecodeFloat(e[n],o)};p.prototype.decodeGeodeticSurfaceNormal=function(e,t,o){return r.typeOf.object("buffer",e),r.typeOf.number("index",t),r.typeOf.object("result",o),t=t*this.stride+this._offsetGeodeticSurfaceNormal,o.x=e[t],o.y=e[t+1],o.z=e[t+2],o};p.prototype._calculateStrideAndOffsets=function(){let e=0;this.quantization===g.BITS12?e+=3:e+=6,this.hasWebMercatorT&&(e+=1),this.hasVertexNormals&&(this._offsetVertexNormal=e,e+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=e,e+=3),this.stride=e};var M={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},V={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};p.prototype.getAttributes=function(e){r.typeOf.object("buffer",e);let t=A.FLOAT,o=A.getSizeInBytes(t),n=this.stride*o,i=0,c=[];function a(m,d){c.push({index:m,vertexBuffer:e,componentDatatype:t,componentsPerAttribute:d,offsetInBytes:i,strideInBytes:n}),i+=d*o}if(this.quantization===g.NONE){a(M.position3DAndHeight,4);let m=2;m+=this.hasWebMercatorT?1:0,m+=this.hasVertexNormals?1:0,a(M.textureCoordAndEncodedNormals,m),this.hasGeodeticSurfaceNormals&&a(M.geodeticSurfaceNormal,3)}else{let m=this.hasWebMercatorT||this.hasVertexNormals,d=this.hasWebMercatorT&&this.hasVertexNormals;a(V.compressed0,m?4:3),d&&a(V.compressed1,1),this.hasGeodeticSurfaceNormals&&a(V.geodeticSurfaceNormal,3)}return c};p.prototype.getAttributeLocations=function(){return this.quantization===g.NONE?M:V};p.clone=function(e,t){if(l(e))return l(t)||(t=new p),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=s.clone(e.center),t.toScaledENU=h.clone(e.toScaledENU),t.fromScaledENU=h.clone(e.fromScaledENU),t.matrix=h.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t.hasGeodeticSurfaceNormals=e.hasGeodeticSurfaceNormals,t.exaggeration=e.exaggeration,t.exaggerationRelativeHeight=e.exaggerationRelativeHeight,t._calculateStrideAndOffsets(),t};var At=p;export{Nt as a,X as b,At as c}; diff --git a/cesium/Workers/chunk-QJTXFT4R.js b/cesium/Workers/chunk-QJTXFT4R.js new file mode 100644 index 00000000..64137e39 --- /dev/null +++ b/cesium/Workers/chunk-QJTXFT4R.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{d as j}from"./chunk-2AIOP76V.js";import{c as g}from"./chunk-IAE6APK2.js";import{a as i}from"./chunk-3E7FIXV7.js";import{b as C}from"./chunk-NZBME2JK.js";import{f as O}from"./chunk-6DLS2UKD.js";function a(n,r,o){return o<0&&(o+=1),o>1&&(o-=1),o*6<1?n+(r-n)*6*o:o*2<1?r:o*3<2?n+(r-n)*(2/3-o)*6:n}var e=class n{constructor(r,o,t,f){this.red=r??1,this.green=o??1,this.blue=t??1,this.alpha=f??1}static fromCartesian4(r,o){return C.typeOf.object("cartesian",r),O(o)?(o.red=r.x,o.green=r.y,o.blue=r.z,o.alpha=r.w,o):new n(r.x,r.y,r.z,r.w)}static fromBytes(r,o,t,f,s){return r=n.byteToFloat(r??255),o=n.byteToFloat(o??255),t=n.byteToFloat(t??255),f=n.byteToFloat(f??255),O(s)?(s.red=r,s.green=o,s.blue=t,s.alpha=f,s):new n(r,o,t,f)}static fromAlpha(r,o,t){return C.typeOf.object("color",r),C.typeOf.number("alpha",o),O(t)?(t.red=r.red,t.green=r.green,t.blue=r.blue,t.alpha=o,t):new n(r.red,r.green,r.blue,o)}static fromRgba(r,o){return A[0]=r,n.fromBytes(m[0],m[1],m[2],m[3],o)}static fromHsl(r,o,t,f,s){r=(r??0)%1,o=o??0,t=t??0,f=f??1;let c=t,b=t,E=t;if(o!==0){let S;t<.5?S=t*(1+o):S=t+o-t*o;let F=2*t-S;c=a(F,S,r+1/3),b=a(F,S,r),E=a(F,S,r-1/3)}return O(s)?(s.red=c,s.green=b,s.blue=E,s.alpha=f,s):new n(c,b,E,f)}static fromRandom(r,o){r=r??g.EMPTY_OBJECT;let t=r.red;if(!O(t)){let b=r.minimumRed??0,E=r.maximumRed??1;C.typeOf.number.lessThanOrEquals("minimumRed",b,E),t=b+i.nextRandomNumber()*(E-b)}let f=r.green;if(!O(f)){let b=r.minimumGreen??0,E=r.maximumGreen??1;C.typeOf.number.lessThanOrEquals("minimumGreen",b,E),f=b+i.nextRandomNumber()*(E-b)}let s=r.blue;if(!O(s)){let b=r.minimumBlue??0,E=r.maximumBlue??1;C.typeOf.number.lessThanOrEquals("minimumBlue",b,E),s=b+i.nextRandomNumber()*(E-b)}let c=r.alpha;if(!O(c)){let b=r.minimumAlpha??0,E=r.maximumAlpha??1;C.typeOf.number.lessThanOrEquals("minimumAlpha",b,E),c=b+i.nextRandomNumber()*(E-b)}return O(o)?(o.red=t,o.green=f,o.blue=s,o.alpha=c,o):new n(t,f,s,c)}static fromCssColorString(r,o){C.typeOf.string("color",r),O(o)||(o=new n),r=r.trim();let t=n[r.toUpperCase()];if(O(t))return n.clone(t,o),o;let f=z.exec(r);return f!==null?(o.red=parseInt(f[1],16)/15,o.green=parseInt(f[2],16)/15,o.blue=parseInt(f[3],16)/15,o.alpha=parseInt(f[4]??"f",16)/15,o):(f=R.exec(r),f!==null?(o.red=parseInt(f[1],16)/255,o.green=parseInt(f[2],16)/255,o.blue=parseInt(f[3],16)/255,o.alpha=parseInt(f[4]??"ff",16)/255,o):(f=D.exec(r),f!==null?(o.red=parseFloat(f[1])/(f[1].substr(-1)==="%"?100:255),o.green=parseFloat(f[2])/(f[2].substr(-1)==="%"?100:255),o.blue=parseFloat(f[3])/(f[3].substr(-1)==="%"?100:255),o.alpha=parseFloat(f[4]??"1.0"),o):(f=p.exec(r),f!==null?n.fromHsl(parseFloat(f[1])/360,parseFloat(f[2])/100,parseFloat(f[3])/100,parseFloat(f[4]??"1.0"),o):(o=void 0,o))))}static pack(r,o,t){return C.typeOf.object("value",r),C.defined("array",o),t=t??0,o[t++]=r.red,o[t++]=r.green,o[t++]=r.blue,o[t]=r.alpha,o}static unpack(r,o,t){return C.defined("array",r),o=o??0,O(t)||(t=new n),t.red=r[o++],t.green=r[o++],t.blue=r[o++],t.alpha=r[o],t}static byteToFloat(r){return r/255}static floatToByte(r){return r===1?255:r*256|0}static clone(r,o){if(O(r))return O(o)?(o.red=r.red,o.green=r.green,o.blue=r.blue,o.alpha=r.alpha,o):new n(r.red,r.green,r.blue,r.alpha)}static equals(r,o){return r===o||O(r)&&O(o)&&r.red===o.red&&r.green===o.green&&r.blue===o.blue&&r.alpha===o.alpha}static equalsArray(r,o,t){return r.red===o[t]&&r.green===o[t+1]&&r.blue===o[t+2]&&r.alpha===o[t+3]}clone(r){return n.clone(this,r)}equals(r){return n.equals(this,r)}equalsEpsilon(r,o){return this===r||O(r)&&Math.abs(this.red-r.red)<=o&&Math.abs(this.green-r.green)<=o&&Math.abs(this.blue-r.blue)<=o&&Math.abs(this.alpha-r.alpha)<=o}toString(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`}toCssColorString(){let r=n.floatToByte(this.red),o=n.floatToByte(this.green),t=n.floatToByte(this.blue);return this.alpha===1?`rgb(${r},${o},${t})`:`rgba(${r},${o},${t},${this.alpha})`}toCssHexString(){let r=n.floatToByte(this.red).toString(16);r.length<2&&(r=`0${r}`);let o=n.floatToByte(this.green).toString(16);o.length<2&&(o=`0${o}`);let t=n.floatToByte(this.blue).toString(16);if(t.length<2&&(t=`0${t}`),this.alpha<1){let f=n.floatToByte(this.alpha).toString(16);return f.length<2&&(f=`0${f}`),`#${r}${o}${t}${f}`}return`#${r}${o}${t}`}toBytes(r){let o=n.floatToByte(this.red),t=n.floatToByte(this.green),f=n.floatToByte(this.blue),s=n.floatToByte(this.alpha);return O(r)?(r[0]=o,r[1]=t,r[2]=f,r[3]=s,r):[o,t,f,s]}static bytesToRgba(r,o,t,f){return m[0]=r,m[1]=o,m[2]=t,m[3]=f,A[0]}toRgba(){return n.bytesToRgba(n.floatToByte(this.red),n.floatToByte(this.green),n.floatToByte(this.blue),n.floatToByte(this.alpha))}brighten(r,o){return C.typeOf.number("magnitude",r),C.typeOf.number.greaterThanOrEquals("magnitude",r,0),C.typeOf.object("result",o),r=1-r,o.red=1-(1-this.red)*r,o.green=1-(1-this.green)*r,o.blue=1-(1-this.blue)*r,o.alpha=this.alpha,o}darken(r,o){return C.typeOf.number("magnitude",r),C.typeOf.number.greaterThanOrEquals("magnitude",r,0),C.typeOf.object("result",o),r=1-r,o.red=this.red*r,o.green=this.green*r,o.blue=this.blue*r,o.alpha=this.alpha,o}withAlpha(r,o){return n.fromAlpha(this,r,o)}static add(r,o,t){return C.typeOf.object("left",r),C.typeOf.object("right",o),C.typeOf.object("result",t),t.red=r.red+o.red,t.green=r.green+o.green,t.blue=r.blue+o.blue,t.alpha=r.alpha+o.alpha,t}static subtract(r,o,t){return C.typeOf.object("left",r),C.typeOf.object("right",o),C.typeOf.object("result",t),t.red=r.red-o.red,t.green=r.green-o.green,t.blue=r.blue-o.blue,t.alpha=r.alpha-o.alpha,t}static multiply(r,o,t){return C.typeOf.object("left",r),C.typeOf.object("right",o),C.typeOf.object("result",t),t.red=r.red*o.red,t.green=r.green*o.green,t.blue=r.blue*o.blue,t.alpha=r.alpha*o.alpha,t}static divide(r,o,t){return C.typeOf.object("left",r),C.typeOf.object("right",o),C.typeOf.object("result",t),t.red=r.red/o.red,t.green=r.green/o.green,t.blue=r.blue/o.blue,t.alpha=r.alpha/o.alpha,t}static mod(r,o,t){return C.typeOf.object("left",r),C.typeOf.object("right",o),C.typeOf.object("result",t),t.red=r.red%o.red,t.green=r.green%o.green,t.blue=r.blue%o.blue,t.alpha=r.alpha%o.alpha,t}static lerp(r,o,t,f){return C.typeOf.object("start",r),C.typeOf.object("end",o),C.typeOf.number("t",t),C.typeOf.object("result",f),f.red=i.lerp(r.red,o.red,t),f.green=i.lerp(r.green,o.green,t),f.blue=i.lerp(r.blue,o.blue,t),f.alpha=i.lerp(r.alpha,o.alpha,t),f}static multiplyByScalar(r,o,t){return C.typeOf.object("color",r),C.typeOf.number("scalar",o),C.typeOf.object("result",t),t.red=r.red*o,t.green=r.green*o,t.blue=r.blue*o,t.alpha=r.alpha*o,t}static divideByScalar(r,o,t){return C.typeOf.object("color",r),C.typeOf.number("scalar",o),C.typeOf.object("result",t),t.red=r.red/o,t.green=r.green/o,t.blue=r.blue/o,t.alpha=r.alpha/o,t}},l,A,m;j.supportsTypedArrays()&&(l=new ArrayBuffer(4),A=new Uint32Array(l),m=new Uint8Array(l));var z=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,R=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,D=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,p=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;e.packedLength=4;e.ALICEBLUE=Object.freeze(e.fromCssColorString("#F0F8FF"));e.ANTIQUEWHITE=Object.freeze(e.fromCssColorString("#FAEBD7"));e.AQUA=Object.freeze(e.fromCssColorString("#00FFFF"));e.AQUAMARINE=Object.freeze(e.fromCssColorString("#7FFFD4"));e.AZURE=Object.freeze(e.fromCssColorString("#F0FFFF"));e.BEIGE=Object.freeze(e.fromCssColorString("#F5F5DC"));e.BISQUE=Object.freeze(e.fromCssColorString("#FFE4C4"));e.BLACK=Object.freeze(e.fromCssColorString("#000000"));e.BLANCHEDALMOND=Object.freeze(e.fromCssColorString("#FFEBCD"));e.BLUE=Object.freeze(e.fromCssColorString("#0000FF"));e.BLUEVIOLET=Object.freeze(e.fromCssColorString("#8A2BE2"));e.BROWN=Object.freeze(e.fromCssColorString("#A52A2A"));e.BURLYWOOD=Object.freeze(e.fromCssColorString("#DEB887"));e.CADETBLUE=Object.freeze(e.fromCssColorString("#5F9EA0"));e.CHARTREUSE=Object.freeze(e.fromCssColorString("#7FFF00"));e.CHOCOLATE=Object.freeze(e.fromCssColorString("#D2691E"));e.CORAL=Object.freeze(e.fromCssColorString("#FF7F50"));e.CORNFLOWERBLUE=Object.freeze(e.fromCssColorString("#6495ED"));e.CORNSILK=Object.freeze(e.fromCssColorString("#FFF8DC"));e.CRIMSON=Object.freeze(e.fromCssColorString("#DC143C"));e.CYAN=Object.freeze(e.fromCssColorString("#00FFFF"));e.DARKBLUE=Object.freeze(e.fromCssColorString("#00008B"));e.DARKCYAN=Object.freeze(e.fromCssColorString("#008B8B"));e.DARKGOLDENROD=Object.freeze(e.fromCssColorString("#B8860B"));e.DARKGRAY=Object.freeze(e.fromCssColorString("#A9A9A9"));e.DARKGREEN=Object.freeze(e.fromCssColorString("#006400"));e.DARKGREY=e.DARKGRAY;e.DARKKHAKI=Object.freeze(e.fromCssColorString("#BDB76B"));e.DARKMAGENTA=Object.freeze(e.fromCssColorString("#8B008B"));e.DARKOLIVEGREEN=Object.freeze(e.fromCssColorString("#556B2F"));e.DARKORANGE=Object.freeze(e.fromCssColorString("#FF8C00"));e.DARKORCHID=Object.freeze(e.fromCssColorString("#9932CC"));e.DARKRED=Object.freeze(e.fromCssColorString("#8B0000"));e.DARKSALMON=Object.freeze(e.fromCssColorString("#E9967A"));e.DARKSEAGREEN=Object.freeze(e.fromCssColorString("#8FBC8F"));e.DARKSLATEBLUE=Object.freeze(e.fromCssColorString("#483D8B"));e.DARKSLATEGRAY=Object.freeze(e.fromCssColorString("#2F4F4F"));e.DARKSLATEGREY=e.DARKSLATEGRAY;e.DARKTURQUOISE=Object.freeze(e.fromCssColorString("#00CED1"));e.DARKVIOLET=Object.freeze(e.fromCssColorString("#9400D3"));e.DEEPPINK=Object.freeze(e.fromCssColorString("#FF1493"));e.DEEPSKYBLUE=Object.freeze(e.fromCssColorString("#00BFFF"));e.DIMGRAY=Object.freeze(e.fromCssColorString("#696969"));e.DIMGREY=e.DIMGRAY;e.DODGERBLUE=Object.freeze(e.fromCssColorString("#1E90FF"));e.FIREBRICK=Object.freeze(e.fromCssColorString("#B22222"));e.FLORALWHITE=Object.freeze(e.fromCssColorString("#FFFAF0"));e.FORESTGREEN=Object.freeze(e.fromCssColorString("#228B22"));e.FUCHSIA=Object.freeze(e.fromCssColorString("#FF00FF"));e.GAINSBORO=Object.freeze(e.fromCssColorString("#DCDCDC"));e.GHOSTWHITE=Object.freeze(e.fromCssColorString("#F8F8FF"));e.GOLD=Object.freeze(e.fromCssColorString("#FFD700"));e.GOLDENROD=Object.freeze(e.fromCssColorString("#DAA520"));e.GRAY=Object.freeze(e.fromCssColorString("#808080"));e.GREEN=Object.freeze(e.fromCssColorString("#008000"));e.GREENYELLOW=Object.freeze(e.fromCssColorString("#ADFF2F"));e.GREY=e.GRAY;e.HONEYDEW=Object.freeze(e.fromCssColorString("#F0FFF0"));e.HOTPINK=Object.freeze(e.fromCssColorString("#FF69B4"));e.INDIANRED=Object.freeze(e.fromCssColorString("#CD5C5C"));e.INDIGO=Object.freeze(e.fromCssColorString("#4B0082"));e.IVORY=Object.freeze(e.fromCssColorString("#FFFFF0"));e.KHAKI=Object.freeze(e.fromCssColorString("#F0E68C"));e.LAVENDER=Object.freeze(e.fromCssColorString("#E6E6FA"));e.LAVENDAR_BLUSH=Object.freeze(e.fromCssColorString("#FFF0F5"));e.LAWNGREEN=Object.freeze(e.fromCssColorString("#7CFC00"));e.LEMONCHIFFON=Object.freeze(e.fromCssColorString("#FFFACD"));e.LIGHTBLUE=Object.freeze(e.fromCssColorString("#ADD8E6"));e.LIGHTCORAL=Object.freeze(e.fromCssColorString("#F08080"));e.LIGHTCYAN=Object.freeze(e.fromCssColorString("#E0FFFF"));e.LIGHTGOLDENRODYELLOW=Object.freeze(e.fromCssColorString("#FAFAD2"));e.LIGHTGRAY=Object.freeze(e.fromCssColorString("#D3D3D3"));e.LIGHTGREEN=Object.freeze(e.fromCssColorString("#90EE90"));e.LIGHTGREY=e.LIGHTGRAY;e.LIGHTPINK=Object.freeze(e.fromCssColorString("#FFB6C1"));e.LIGHTSEAGREEN=Object.freeze(e.fromCssColorString("#20B2AA"));e.LIGHTSKYBLUE=Object.freeze(e.fromCssColorString("#87CEFA"));e.LIGHTSLATEGRAY=Object.freeze(e.fromCssColorString("#778899"));e.LIGHTSLATEGREY=e.LIGHTSLATEGRAY;e.LIGHTSTEELBLUE=Object.freeze(e.fromCssColorString("#B0C4DE"));e.LIGHTYELLOW=Object.freeze(e.fromCssColorString("#FFFFE0"));e.LIME=Object.freeze(e.fromCssColorString("#00FF00"));e.LIMEGREEN=Object.freeze(e.fromCssColorString("#32CD32"));e.LINEN=Object.freeze(e.fromCssColorString("#FAF0E6"));e.MAGENTA=Object.freeze(e.fromCssColorString("#FF00FF"));e.MAROON=Object.freeze(e.fromCssColorString("#800000"));e.MEDIUMAQUAMARINE=Object.freeze(e.fromCssColorString("#66CDAA"));e.MEDIUMBLUE=Object.freeze(e.fromCssColorString("#0000CD"));e.MEDIUMORCHID=Object.freeze(e.fromCssColorString("#BA55D3"));e.MEDIUMPURPLE=Object.freeze(e.fromCssColorString("#9370DB"));e.MEDIUMSEAGREEN=Object.freeze(e.fromCssColorString("#3CB371"));e.MEDIUMSLATEBLUE=Object.freeze(e.fromCssColorString("#7B68EE"));e.MEDIUMSPRINGGREEN=Object.freeze(e.fromCssColorString("#00FA9A"));e.MEDIUMTURQUOISE=Object.freeze(e.fromCssColorString("#48D1CC"));e.MEDIUMVIOLETRED=Object.freeze(e.fromCssColorString("#C71585"));e.MIDNIGHTBLUE=Object.freeze(e.fromCssColorString("#191970"));e.MINTCREAM=Object.freeze(e.fromCssColorString("#F5FFFA"));e.MISTYROSE=Object.freeze(e.fromCssColorString("#FFE4E1"));e.MOCCASIN=Object.freeze(e.fromCssColorString("#FFE4B5"));e.NAVAJOWHITE=Object.freeze(e.fromCssColorString("#FFDEAD"));e.NAVY=Object.freeze(e.fromCssColorString("#000080"));e.OLDLACE=Object.freeze(e.fromCssColorString("#FDF5E6"));e.OLIVE=Object.freeze(e.fromCssColorString("#808000"));e.OLIVEDRAB=Object.freeze(e.fromCssColorString("#6B8E23"));e.ORANGE=Object.freeze(e.fromCssColorString("#FFA500"));e.ORANGERED=Object.freeze(e.fromCssColorString("#FF4500"));e.ORCHID=Object.freeze(e.fromCssColorString("#DA70D6"));e.PALEGOLDENROD=Object.freeze(e.fromCssColorString("#EEE8AA"));e.PALEGREEN=Object.freeze(e.fromCssColorString("#98FB98"));e.PALETURQUOISE=Object.freeze(e.fromCssColorString("#AFEEEE"));e.PALEVIOLETRED=Object.freeze(e.fromCssColorString("#DB7093"));e.PAPAYAWHIP=Object.freeze(e.fromCssColorString("#FFEFD5"));e.PEACHPUFF=Object.freeze(e.fromCssColorString("#FFDAB9"));e.PERU=Object.freeze(e.fromCssColorString("#CD853F"));e.PINK=Object.freeze(e.fromCssColorString("#FFC0CB"));e.PLUM=Object.freeze(e.fromCssColorString("#DDA0DD"));e.POWDERBLUE=Object.freeze(e.fromCssColorString("#B0E0E6"));e.PURPLE=Object.freeze(e.fromCssColorString("#800080"));e.RED=Object.freeze(e.fromCssColorString("#FF0000"));e.ROSYBROWN=Object.freeze(e.fromCssColorString("#BC8F8F"));e.ROYALBLUE=Object.freeze(e.fromCssColorString("#4169E1"));e.SADDLEBROWN=Object.freeze(e.fromCssColorString("#8B4513"));e.SALMON=Object.freeze(e.fromCssColorString("#FA8072"));e.SANDYBROWN=Object.freeze(e.fromCssColorString("#F4A460"));e.SEAGREEN=Object.freeze(e.fromCssColorString("#2E8B57"));e.SEASHELL=Object.freeze(e.fromCssColorString("#FFF5EE"));e.SIENNA=Object.freeze(e.fromCssColorString("#A0522D"));e.SILVER=Object.freeze(e.fromCssColorString("#C0C0C0"));e.SKYBLUE=Object.freeze(e.fromCssColorString("#87CEEB"));e.SLATEBLUE=Object.freeze(e.fromCssColorString("#6A5ACD"));e.SLATEGRAY=Object.freeze(e.fromCssColorString("#708090"));e.SLATEGREY=e.SLATEGRAY;e.SNOW=Object.freeze(e.fromCssColorString("#FFFAFA"));e.SPRINGGREEN=Object.freeze(e.fromCssColorString("#00FF7F"));e.STEELBLUE=Object.freeze(e.fromCssColorString("#4682B4"));e.TAN=Object.freeze(e.fromCssColorString("#D2B48C"));e.TEAL=Object.freeze(e.fromCssColorString("#008080"));e.THISTLE=Object.freeze(e.fromCssColorString("#D8BFD8"));e.TOMATO=Object.freeze(e.fromCssColorString("#FF6347"));e.TURQUOISE=Object.freeze(e.fromCssColorString("#40E0D0"));e.VIOLET=Object.freeze(e.fromCssColorString("#EE82EE"));e.WHEAT=Object.freeze(e.fromCssColorString("#F5DEB3"));e.WHITE=Object.freeze(e.fromCssColorString("#FFFFFF"));e.WHITESMOKE=Object.freeze(e.fromCssColorString("#F5F5F5"));e.YELLOW=Object.freeze(e.fromCssColorString("#FFFF00"));e.YELLOWGREEN=Object.freeze(e.fromCssColorString("#9ACD32"));e.TRANSPARENT=Object.freeze(new e(0,0,0,0));var N=e;export{N as a}; diff --git a/cesium/Workers/chunk-QNPYEODC.js b/cesium/Workers/chunk-QNPYEODC.js new file mode 100644 index 00000000..08125cba --- /dev/null +++ b/cesium/Workers/chunk-QNPYEODC.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as tt}from"./chunk-G72JFEXW.js";import{a as jt}from"./chunk-6W2XFGWI.js";import{b as Lt}from"./chunk-SRA5MBUT.js";import{a as Et}from"./chunk-5AAMOBJK.js";import{a as j}from"./chunk-4WQ4VT5S.js";import{a as dt,b as D,c as B,d as U}from"./chunk-A4I25VN7.js";import{a as _t,c as ot}from"./chunk-D3TVNJ6W.js";import{a as Ut}from"./chunk-3VUCSHGU.js";import{a as pt,b as H}from"./chunk-BPABSUDY.js";import{a as F}from"./chunk-ATKJRN2G.js";import{a as Mt,b as V}from"./chunk-2AIOP76V.js";import{a as r,b as gt,c as Ot}from"./chunk-IAE6APK2.js";import{a as N}from"./chunk-3E7FIXV7.js";import{a as I,b as ft}from"./chunk-NZBME2JK.js";import{f}from"./chunk-6DLS2UKD.js";var Yt=new r,Zt=new r,Xt=new r;function pe(t,e,n,s,i){ft.defined("point",t),ft.defined("p0",e),ft.defined("p1",n),ft.defined("p2",s),f(i)||(i=new r);let c,o,a,p,u,d,m,l;if(f(e.z)){if(r.equalsEpsilon(t,e,N.EPSILON14))return r.clone(r.UNIT_X,i);if(r.equalsEpsilon(t,n,N.EPSILON14))return r.clone(r.UNIT_Y,i);if(r.equalsEpsilon(t,s,N.EPSILON14))return r.clone(r.UNIT_Z,i);c=r.subtract(n,e,Yt),o=r.subtract(s,e,Zt),a=r.subtract(t,e,Xt),p=r.dot(c,c),u=r.dot(c,o),d=r.dot(c,a),m=r.dot(o,o),l=r.dot(o,a)}else{if(V.equalsEpsilon(t,e,N.EPSILON14))return r.clone(r.UNIT_X,i);if(V.equalsEpsilon(t,n,N.EPSILON14))return r.clone(r.UNIT_Y,i);if(V.equalsEpsilon(t,s,N.EPSILON14))return r.clone(r.UNIT_Z,i);c=V.subtract(n,e,Yt),o=V.subtract(s,e,Zt),a=V.subtract(t,e,Xt),p=V.dot(c,c),u=V.dot(c,o),d=V.dot(c,a),m=V.dot(o,o),l=V.dot(o,a)}i.y=m*d-u*l,i.z=p*l-u*d;let h=p*m-u*u;if(h!==0)return i.y/=h,i.z/=h,i.x=1-i.y-i.z,i}var Ht=pe;var Nt={};Nt.calculateACMR=function(t){t=t??Ot.EMPTY_OBJECT;let e=t.indices,n=t.maximumIndex,s=t.cacheSize??24;if(!f(e))throw new I("indices is required.");let i=e.length;if(i<3||i%3!==0)throw new I("indices length must be a multiple of three.");if(n<=0)throw new I("maximumIndex must be greater than zero.");if(s<3)throw new I("cacheSize must be greater than two.");if(!f(n)){n=0;let a=0,p=e[a];for(;a<i;)p>n&&(n=p),++a,p=e[a]}let c=[];for(let a=0;a<n+1;a++)c[a]=0;let o=s+1;for(let a=0;a<i;++a)o-c[e[a]]>s&&(c[e[a]]=o,++o);return(o-s+1)/(i/3)};Nt.tipsify=function(t){t=t??Ot.EMPTY_OBJECT;let e=t.indices,n=t.maximumIndex,s=t.cacheSize??24,i;function c(C,z,q,R){for(;z.length>=1;){let G=z[z.length-1];if(z.splice(z.length-1,1),C[G].numLiveTriangles>0)return G}for(;i<R;){if(C[i].numLiveTriangles>0)return++i,i-1;++i}return-1}function o(C,z,q,R,G,M,J){let Y=-1,_,St=-1,Pt=0;for(;Pt<q.length;){let lt=q[Pt];R[lt].numLiveTriangles&&(_=0,G-R[lt].timeStamp+2*R[lt].numLiveTriangles<=z&&(_=G-R[lt].timeStamp),(_>St||St===-1)&&(St=_,Y=lt)),++Pt}return Y===-1?c(R,M,C,J):Y}if(!f(e))throw new I("indices is required.");let a=e.length;if(a<3||a%3!==0)throw new I("indices length must be a multiple of three.");if(n<=0)throw new I("maximumIndex must be greater than zero.");if(s<3)throw new I("cacheSize must be greater than two.");let p=0,u=0,d=e[u],m=a;if(f(n))p=n+1;else{for(;u<m;)d>p&&(p=d),++u,d=e[u];if(p===-1)return 0;++p}let l=[],h;for(h=0;h<p;h++)l[h]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};u=0;let y=0;for(;u<m;)l[e[u]].vertexTriangles.push(y),++l[e[u]].numLiveTriangles,l[e[u+1]].vertexTriangles.push(y),++l[e[u+1]].numLiveTriangles,l[e[u+2]].vertexTriangles.push(y),++l[e[u+2]].numLiveTriangles,++y,u+=3;let v=0,b=s+1;i=1;let S=[],x=[],w,A,E=0,P=[],O=a/3,L=[];for(h=0;h<O;h++)L[h]=!1;let g,T;for(;v!==-1;){S=[],A=l[v],T=A.vertexTriangles.length;for(let C=0;C<T;++C)if(y=A.vertexTriangles[C],!L[y]){L[y]=!0,u=y+y+y;for(let z=0;z<3;++z)g=e[u],S.push(g),x.push(g),P[E]=g,++E,w=l[g],--w.numLiveTriangles,b-w.timeStamp>s&&(w.timeStamp=b,++b),++u}v=o(e,s,S,l,b,x,p)}return P};var Wt=Nt;var k={};function It(t,e,n,s,i){t[e++]=n,t[e++]=s,t[e++]=s,t[e++]=i,t[e++]=i,t[e]=n}function de(t){let e=t.length,n=e/3*6,s=j.createTypedArray(e,n),i=0;for(let c=0;c<e;c+=3,i+=6)It(s,i,t[c],t[c+1],t[c+2]);return s}function me(t){let e=t.length;if(e>=3){let n=(e-2)*6,s=j.createTypedArray(e,n);It(s,0,t[0],t[1],t[2]);let i=6;for(let c=3;c<e;++c,i+=6)It(s,i,t[c-1],t[c],t[c-2]);return s}return new Uint16Array}function he(t){if(t.length>0){let e=t.length-1,n=(e-1)*6,s=j.createTypedArray(e,n),i=t[0],c=0;for(let o=1;o<e;++o,c+=6)It(s,c,i,t[o],t[o+1]);return s}return new Uint16Array}k.toWireframe=function(t){if(!f(t))throw new I("geometry is required.");let e=t.indices;if(f(e)){switch(t.primitiveType){case D.TRIANGLES:t.indices=de(e);break;case D.TRIANGLE_STRIP:t.indices=me(e);break;case D.TRIANGLE_FAN:t.indices=he(e);break;default:throw new I("geometry.primitiveType must be TRIANGLES, TRIANGLE_STRIP, or TRIANGLE_FAN.")}t.primitiveType=D.LINES}return t};k.createLineSegmentsForVectors=function(t,e,n){if(e=e??"normal",!f(t))throw new I("geometry is required.");if(!f(t.attributes.position))throw new I("geometry.attributes.position is required.");if(!f(t.attributes[e]))throw new I(`geometry.attributes must have an attribute with the same name as the attributeName parameter, ${e}.`);n=n??1e4;let s=t.attributes.position.values,i=t.attributes[e].values,c=s.length,o=new Float64Array(2*c),a=0;for(let d=0;d<c;d+=3)o[a++]=s[d],o[a++]=s[d+1],o[a++]=s[d+2],o[a++]=s[d]+i[d]*n,o[a++]=s[d+1]+i[d+1]*n,o[a++]=s[d+2]+i[d+2]*n;let p,u=t.boundingSphere;return f(u)&&(p=new ot(u.center,u.radius+n)),new B({attributes:{position:new U({componentDatatype:F.DOUBLE,componentsPerAttribute:3,values:o})},primitiveType:D.LINES,boundingSphere:p})};k.createAttributeLocations=function(t){if(!f(t))throw new I("geometry is required.");let e=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=t.attributes,s={},i=0,c,o=e.length;for(c=0;c<o;++c){let a=e[c];f(n[a])&&(s[a]=i++)}for(let a in n)n.hasOwnProperty(a)&&!f(s[a])&&(s[a]=i++);return s};k.reorderForPreVertexCache=function(t){if(!f(t))throw new I("geometry is required.");let e=B.computeNumberOfVertices(t),n=t.indices;if(f(n)){let s=new Int32Array(e);for(let l=0;l<e;l++)s[l]=-1;let i=n,c=i.length,o=j.createTypedArray(e,c),a=0,p=0,u=0,d;for(;a<c;)d=s[i[a]],d!==-1?o[p]=d:(d=i[a],s[d]=u,o[p]=u,++u),++a,++p;t.indices=o;let m=t.attributes;for(let l in m)if(m.hasOwnProperty(l)&&f(m[l])&&f(m[l].values)){let h=m[l],y=h.values,v=0,b=h.componentsPerAttribute,S=F.createTypedArray(h.componentDatatype,u*b);for(;v<e;){let x=s[v];if(x!==-1)for(let w=0;w<b;w++)S[b*x+w]=y[b*v+w];++v}h.values=S}}return t};k.reorderForPostVertexCache=function(t,e){if(!f(t))throw new I("geometry is required.");let n=t.indices;if(t.primitiveType===D.TRIANGLES&&f(n)){let s=n.length,i=0;for(let c=0;c<s;c++)n[c]>i&&(i=n[c]);t.indices=Wt.tipsify({indices:n,maximumIndex:i,cacheSize:e})}return t};function $t(t){let e={};for(let n in t)if(t.hasOwnProperty(n)&&f(t[n])&&f(t[n].values)){let s=t[n];e[n]=new U({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:[]})}return e}function be(t,e,n){for(let s in e)if(e.hasOwnProperty(s)&&f(e[s])&&f(e[s].values)){let i=e[s];for(let c=0;c<i.componentsPerAttribute;++c)t[s].values.push(i.values[n*i.componentsPerAttribute+c])}}k.fitToUnsignedShortIndices=function(t){if(!f(t))throw new I("geometry is required.");if(f(t.indices)&&t.primitiveType!==D.TRIANGLES&&t.primitiveType!==D.LINES&&t.primitiveType!==D.POINTS)throw new I("geometry.primitiveType must equal to PrimitiveType.TRIANGLES, PrimitiveType.LINES, or PrimitiveType.POINTS.");let e=[],n=B.computeNumberOfVertices(t);if(f(t.indices)&&n>=N.SIXTY_FOUR_KILOBYTES){let s=[],i=[],c=0,o=$t(t.attributes),a=t.indices,p=a.length,u;t.primitiveType===D.TRIANGLES?u=3:t.primitiveType===D.LINES?u=2:t.primitiveType===D.POINTS&&(u=1);for(let d=0;d<p;d+=u){for(let m=0;m<u;++m){let l=a[d+m],h=s[l];f(h)||(h=c++,s[l]=h,be(o,t.attributes,l)),i.push(h)}c+u>=N.SIXTY_FOUR_KILOBYTES&&(e.push(new B({attributes:o,indices:i,primitiveType:t.primitiveType,boundingSphere:t.boundingSphere,boundingSphereCV:t.boundingSphereCV})),s=[],i=[],c=0,o=$t(t.attributes))}i.length!==0&&e.push(new B({attributes:o,indices:i,primitiveType:t.primitiveType,boundingSphere:t.boundingSphere,boundingSphereCV:t.boundingSphereCV}))}else e.push(t);return e};var Jt=new r,we=new Mt;k.projectTo2D=function(t,e,n,s,i){if(!f(t))throw new I("geometry is required.");if(!f(e))throw new I("attributeName is required.");if(!f(n))throw new I("attributeName3D is required.");if(!f(s))throw new I("attributeName2D is required.");if(!f(t.attributes[e]))throw new I(`geometry must have attribute matching the attributeName argument: ${e}.`);if(t.attributes[e].componentDatatype!==F.DOUBLE)throw new I("The attribute componentDatatype must be ComponentDatatype.DOUBLE.");let c=t.attributes[e];i=f(i)?i:new _t;let o=i.ellipsoid,a=c.values,p=new Float64Array(a.length),u=0;for(let d=0;d<a.length;d+=3){let m=r.fromArray(a,d,Jt),l=o.cartesianToCartographic(m,we);if(!f(l))throw new I(`Could not project point (${m.x}, ${m.y}, ${m.z}) to 2D.`);let h=i.project(l,Jt);p[u++]=h.x,p[u++]=h.y,p[u++]=h.z}return t.attributes[n]=c,t.attributes[s]=new U({componentDatatype:F.DOUBLE,componentsPerAttribute:3,values:p}),delete t.attributes[e],t};var zt={high:0,low:0};k.encodeAttribute=function(t,e,n,s){if(!f(t))throw new I("geometry is required.");if(!f(e))throw new I("attributeName is required.");if(!f(n))throw new I("attributeHighName is required.");if(!f(s))throw new I("attributeLowName is required.");if(!f(t.attributes[e]))throw new I(`geometry must have attribute matching the attributeName argument: ${e}.`);if(t.attributes[e].componentDatatype!==F.DOUBLE)throw new I("The attribute componentDatatype must be ComponentDatatype.DOUBLE.");let i=t.attributes[e],c=i.values,o=c.length,a=new Float32Array(o),p=new Float32Array(o);for(let d=0;d<o;++d)jt.encode(c[d],zt),a[d]=zt.high,p[d]=zt.low;let u=i.componentsPerAttribute;return t.attributes[n]=new U({componentDatatype:F.FLOAT,componentsPerAttribute:u,values:a}),t.attributes[s]=new U({componentDatatype:F.FLOAT,componentsPerAttribute:u,values:p}),delete t.attributes[e],t};var $=new r;function Dt(t,e){if(f(e)){let n=e.values,s=n.length;for(let i=0;i<s;i+=3)r.unpack(n,i,$),H.multiplyByPoint(t,$,$),r.pack($,n,i)}}function qt(t,e){if(f(e)){let n=e.values,s=n.length;for(let i=0;i<s;i+=3)r.unpack(n,i,$),gt.multiplyByVector(t,$,$),$=r.normalize($,$),r.pack($,n,i)}}var wt=new H,vt=new gt;k.transformToWorldCoordinates=function(t){if(!f(t))throw new I("instance is required.");let e=t.modelMatrix;if(H.equals(e,H.IDENTITY))return t;let n=t.geometry.attributes;Dt(e,n.position),Dt(e,n.prevPosition),Dt(e,n.nextPosition),(f(n.normal)||f(n.tangent)||f(n.bitangent))&&(H.inverse(e,wt),H.transpose(wt,wt),H.getMatrix3(wt,vt),qt(vt,n.normal),qt(vt,n.tangent),qt(vt,n.bitangent));let s=t.geometry.boundingSphere;return f(s)&&(t.geometry.boundingSphere=ot.transform(s,e,s)),t.modelMatrix=H.clone(H.IDENTITY),t};function ve(t,e){let n=t.length,s={},i=t[0][e].attributes,c;for(c in i)if(i.hasOwnProperty(c)&&f(i[c])&&f(i[c].values)){let o=i[c],a=o.values.length,p=!0;for(let u=1;u<n;++u){let d=t[u][e].attributes[c];if(!f(d)||o.componentDatatype!==d.componentDatatype||o.componentsPerAttribute!==d.componentsPerAttribute||o.normalize!==d.normalize){p=!1;break}a+=d.values.length}p&&(s[c]=new U({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:F.createTypedArray(o.componentDatatype,a)}))}return s}var ye=new r;function Rt(t,e){let n=t.length,s,i,c,o,a=t[0].modelMatrix,p=f(t[0][e].indices),u=t[0][e].primitiveType;for(i=1;i<n;++i){if(!H.equals(t[i].modelMatrix,a))throw new I("All instances must have the same modelMatrix.");if(f(t[i][e].indices)!==p)throw new I("All instance geometries must have an indices or not have one.");if(t[i][e].primitiveType!==u)throw new I("All instance geometries must have the same primitiveType.")}let d=ve(t,e),m,l,h;for(s in d)if(d.hasOwnProperty(s))for(m=d[s].values,o=0,i=0;i<n;++i)for(l=t[i][e].attributes[s].values,h=l.length,c=0;c<h;++c)m[o++]=l[c];let y;if(p){let x=0;for(i=0;i<n;++i)x+=t[i][e].indices.length;let w=B.computeNumberOfVertices(new B({attributes:d,primitiveType:D.POINTS})),A=j.createTypedArray(w,x),E=0,P=0;for(i=0;i<n;++i){let O=t[i][e].indices,L=O.length;for(o=0;o<L;++o)A[E++]=P+O[o];P+=B.computeNumberOfVertices(t[i][e])}y=A}let v=new r,b=0,S;for(i=0;i<n;++i){if(S=t[i][e].boundingSphere,!f(S)){v=void 0;break}r.add(S.center,v,v)}if(f(v))for(r.divideByScalar(v,n,v),i=0;i<n;++i){S=t[i][e].boundingSphere;let x=r.magnitude(r.subtract(S.center,v,ye))+S.radius;x>b&&(b=x)}return new B({attributes:d,indices:y,primitiveType:u,boundingSphere:f(v)?new ot(v,b):void 0})}k.combineInstances=function(t){if(!f(t)||t.length<1)throw new I("instances is required and must have length greater than zero.");let e=[],n=[],s=t.length;for(let c=0;c<s;++c){let o=t[c];f(o.geometry)?e.push(o):f(o.westHemisphereGeometry)&&f(o.eastHemisphereGeometry)&&n.push(o)}let i=[];return e.length>0&&i.push(Rt(e,"geometry")),n.length>0&&(i.push(Rt(n,"westHemisphereGeometry")),i.push(Rt(n,"eastHemisphereGeometry"))),i};var Z=new r,mt=new r,rt=new r,ct=new r;k.computeNormal=function(t){if(!f(t))throw new I("geometry is required.");if(!f(t.attributes.position)||!f(t.attributes.position.values))throw new I("geometry.attributes.position.values is required.");if(!f(t.indices))throw new I("geometry.indices is required.");if(t.indices.length<2||t.indices.length%3!==0)throw new I("geometry.indices length must be greater than 0 and be a multiple of 3.");if(t.primitiveType!==D.TRIANGLES)throw new I("geometry.primitiveType must be PrimitiveType.TRIANGLES.");let e=t.indices,n=t.attributes,s=n.position.values,i=n.position.values.length/3,c=e.length,o=new Array(i),a=new Array(c/3),p=new Array(c),u;for(u=0;u<i;u++)o[u]={indexOffset:0,count:0,currentCount:0};let d=0;for(u=0;u<c;u+=3){let y=e[u],v=e[u+1],b=e[u+2],S=y*3,x=v*3,w=b*3;mt.x=s[S],mt.y=s[S+1],mt.z=s[S+2],rt.x=s[x],rt.y=s[x+1],rt.z=s[x+2],ct.x=s[w],ct.y=s[w+1],ct.z=s[w+2],o[y].count++,o[v].count++,o[b].count++,r.subtract(rt,mt,rt),r.subtract(ct,mt,ct),a[d]=r.cross(rt,ct,new r),d++}let m=0;for(u=0;u<i;u++)o[u].indexOffset+=m,m+=o[u].count;d=0;let l;for(u=0;u<c;u+=3){l=o[e[u]];let y=l.indexOffset+l.currentCount;p[y]=d,l.currentCount++,l=o[e[u+1]],y=l.indexOffset+l.currentCount,p[y]=d,l.currentCount++,l=o[e[u+2]],y=l.indexOffset+l.currentCount,p[y]=d,l.currentCount++,d++}let h=new Float32Array(i*3);for(u=0;u<i;u++){let y=u*3;if(l=o[u],r.clone(r.ZERO,Z),l.count>0){for(d=0;d<l.count;d++)r.add(Z,a[p[l.indexOffset+d]],Z);r.equalsEpsilon(r.ZERO,Z,N.EPSILON10)&&r.clone(a[p[l.indexOffset]],Z)}r.equalsEpsilon(r.ZERO,Z,N.EPSILON10)&&(Z.z=1),r.normalize(Z,Z),h[y]=Z.x,h[y+1]=Z.y,h[y+2]=Z.z}return t.attributes.normal=new U({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:h}),t};var xe=new r,Kt=new r,Te=new r;k.computeTangentAndBitangent=function(t){if(!f(t))throw new I("geometry is required.");let e=t.attributes,n=t.indices;if(!f(e.position)||!f(e.position.values))throw new I("geometry.attributes.position.values is required.");if(!f(e.normal)||!f(e.normal.values))throw new I("geometry.attributes.normal.values is required.");if(!f(e.st)||!f(e.st.values))throw new I("geometry.attributes.st.values is required.");if(!f(n))throw new I("geometry.indices is required.");if(n.length<2||n.length%3!==0)throw new I("geometry.indices length must be greater than 0 and be a multiple of 3.");if(t.primitiveType!==D.TRIANGLES)throw new I("geometry.primitiveType must be PrimitiveType.TRIANGLES.");let s=t.attributes.position.values,i=t.attributes.normal.values,c=t.attributes.st.values,o=t.attributes.position.values.length/3,a=n.length,p=new Array(o*3),u;for(u=0;u<p.length;u++)p[u]=0;let d,m,l;for(u=0;u<a;u+=3){let v=n[u],b=n[u+1],S=n[u+2];d=v*3,m=b*3,l=S*3;let x=v*2,w=b*2,A=S*2,E=s[d],P=s[d+1],O=s[d+2],L=c[x],g=c[x+1],T=c[w+1]-g,C=c[A+1]-g,z=1/((c[w]-L)*C-(c[A]-L)*T),q=(C*(s[m]-E)-T*(s[l]-E))*z,R=(C*(s[m+1]-P)-T*(s[l+1]-P))*z,G=(C*(s[m+2]-O)-T*(s[l+2]-O))*z;p[d]+=q,p[d+1]+=R,p[d+2]+=G,p[m]+=q,p[m+1]+=R,p[m+2]+=G,p[l]+=q,p[l+1]+=R,p[l+2]+=G}let h=new Float32Array(o*3),y=new Float32Array(o*3);for(u=0;u<o;u++){d=u*3,m=d+1,l=d+2;let v=r.fromArray(i,d,xe),b=r.fromArray(p,d,Te),S=r.dot(v,b);r.multiplyByScalar(v,S,Kt),r.normalize(r.subtract(b,Kt,b),b),h[d]=b.x,h[m]=b.y,h[l]=b.z,r.normalize(r.cross(v,b,b),b),y[d]=b.x,y[m]=b.y,y[l]=b.z}return t.attributes.tangent=new U({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:h}),t.attributes.bitangent=new U({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:y}),t};var ht=new V,W=new r,Qt=new r,te=new r,yt=new V;k.compressVertices=function(t){if(!f(t))throw new I("geometry is required.");let e=t.attributes.extrudeDirection,n,s;if(f(e)){let P=e.values;s=P.length/3;let O=new Float32Array(s*2),L=0;for(n=0;n<s;++n){if(r.fromArray(P,n*3,W),r.equals(W,r.ZERO)){L+=2;continue}yt=tt.octEncodeInRange(W,65535,yt),O[L++]=yt.x,O[L++]=yt.y}return t.attributes.compressedAttributes=new U({componentDatatype:F.FLOAT,componentsPerAttribute:2,values:O}),delete t.attributes.extrudeDirection,t}let i=t.attributes.normal,c=t.attributes.st,o=f(i),a=f(c);if(!o&&!a)return t;let p=t.attributes.tangent,u=t.attributes.bitangent,d=f(p),m=f(u),l,h,y,v;o&&(l=i.values),a&&(h=c.values),d&&(y=p.values),m&&(v=u.values),s=(o?l.length:h.length)/(o?3:2);let x=s,w=a&&o?2:1;w+=d||m?1:0,x*=w;let A=new Float32Array(x),E=0;for(n=0;n<s;++n){a&&(V.fromArray(h,n*2,ht),A[E++]=tt.compressTextureCoordinates(ht));let P=n*3;o&&f(y)&&f(v)?(r.fromArray(l,P,W),r.fromArray(y,P,Qt),r.fromArray(v,P,te),tt.octPack(W,Qt,te,ht),A[E++]=ht.x,A[E++]=ht.y):(o&&(r.fromArray(l,P,W),A[E++]=tt.octEncodeFloat(W)),d&&(r.fromArray(y,P,W),A[E++]=tt.octEncodeFloat(W)),m&&(r.fromArray(v,P,W),A[E++]=tt.octEncodeFloat(W)))}return t.attributes.compressedAttributes=new U({componentDatatype:F.FLOAT,componentsPerAttribute:w,values:A}),o&&delete t.attributes.normal,a&&delete t.attributes.st,m&&delete t.attributes.bitangent,d&&delete t.attributes.tangent,t};function Ae(t){if(f(t.indices))return t;let e=B.computeNumberOfVertices(t);if(e<3)throw new I("The number of vertices must be at least three.");if(e%3!==0)throw new I("The number of vertices must be a multiple of three.");let n=j.createTypedArray(e,e);for(let s=0;s<e;++s)n[s]=s;return t.indices=n,t}function Ie(t){let e=B.computeNumberOfVertices(t);if(e<3)throw new I("The number of vertices must be at least three.");let n=j.createTypedArray(e,(e-2)*3);n[0]=1,n[1]=0,n[2]=2;let s=3;for(let i=3;i<e;++i)n[s++]=i-1,n[s++]=0,n[s++]=i;return t.indices=n,t.primitiveType=D.TRIANGLES,t}function Se(t){let e=B.computeNumberOfVertices(t);if(e<3)throw new I("The number of vertices must be at least 3.");let n=j.createTypedArray(e,(e-2)*3);n[0]=0,n[1]=1,n[2]=2,e>3&&(n[3]=0,n[4]=2,n[5]=3);let s=6;for(let i=3;i<e-1;i+=2)n[s++]=i,n[s++]=i-1,n[s++]=i+1,i+2<e&&(n[s++]=i,n[s++]=i+1,n[s++]=i+2);return t.indices=n,t.primitiveType=D.TRIANGLES,t}function Pe(t){if(f(t.indices))return t;let e=B.computeNumberOfVertices(t);if(e<2)throw new I("The number of vertices must be at least two.");if(e%2!==0)throw new I("The number of vertices must be a multiple of 2.");let n=j.createTypedArray(e,e);for(let s=0;s<e;++s)n[s]=s;return t.indices=n,t}function ge(t){let e=B.computeNumberOfVertices(t);if(e<2)throw new I("The number of vertices must be at least two.");let n=j.createTypedArray(e,(e-1)*2);n[0]=0,n[1]=1;let s=2;for(let i=2;i<e;++i)n[s++]=i-1,n[s++]=i;return t.indices=n,t.primitiveType=D.LINES,t}function Oe(t){let e=B.computeNumberOfVertices(t);if(e<2)throw new I("The number of vertices must be at least two.");let n=j.createTypedArray(e,e*2);n[0]=0,n[1]=1;let s=2;for(let i=2;i<e;++i)n[s++]=i-1,n[s++]=i;return n[s++]=e-1,n[s]=0,t.indices=n,t.primitiveType=D.LINES,t}function Le(t){switch(t.primitiveType){case D.TRIANGLE_FAN:return Ie(t);case D.TRIANGLE_STRIP:return Se(t);case D.TRIANGLES:return Ae(t);case D.LINE_STRIP:return ge(t);case D.LINE_LOOP:return Oe(t);case D.LINES:return Pe(t)}return t}function Q(t,e){Math.abs(t.y)<N.EPSILON6&&(e?t.y=-N.EPSILON6:t.y=N.EPSILON6)}function Ee(t,e,n){if(t.y!==0&&e.y!==0&&n.y!==0){Q(t,t.y<0),Q(e,e.y<0),Q(n,n.y<0);return}let s=Math.abs(t.y),i=Math.abs(e.y),c=Math.abs(n.y),o;s>i?s>c?o=N.sign(t.y):o=N.sign(n.y):i>c?o=N.sign(e.y):o=N.sign(n.y);let a=o<0;Q(t,a),Q(e,a),Q(n,a)}var ee=new r;function X(t,e,n,s){r.add(t,r.multiplyByScalar(r.subtract(e,t,ee),t.y/(t.y-e.y),ee),n),r.clone(n,s),Q(n,!0),Q(s,!1)}var et=new r,nt=new r,it=new r,st=new r,Vt={positions:new Array(7),indices:new Array(9)};function Ne(t,e,n){if(t.x>=0||e.x>=0||n.x>=0)return;Ee(t,e,n);let s=t.y<0,i=e.y<0,c=n.y<0,o=0;o+=s?1:0,o+=i?1:0,o+=c?1:0;let a=Vt.indices;o===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,s?(X(t,e,et,it),X(t,n,nt,st),a[0]=0,a[3]=1,a[4]=2,a[6]=1):i?(X(e,n,et,it),X(e,t,nt,st),a[0]=1,a[3]=2,a[4]=0,a[6]=2):c&&(X(n,t,et,it),X(n,e,nt,st),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):o===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,s?i?c||(X(n,t,et,it),X(n,e,nt,st),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(X(e,n,et,it),X(e,t,nt,st),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(X(t,e,et,it),X(t,n,nt,st),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let p=Vt.positions;return p[0]=t,p[1]=e,p[2]=n,p.length=3,(o===1||o===2)&&(p[3]=et,p[4]=nt,p[5]=it,p[6]=st,p.length=7),Vt}function ne(t,e){let n=t.attributes;if(n.position.values.length===0)return;for(let i in n)if(n.hasOwnProperty(i)&&f(n[i])&&f(n[i].values)){let c=n[i];c.values=F.createTypedArray(c.componentDatatype,c.values)}let s=B.computeNumberOfVertices(t);return t.indices=j.createTypedArray(s,t.indices),e&&(t.boundingSphere=ot.fromVertices(n.position.values)),t}function ut(t){let e=t.attributes,n={};for(let s in e)if(e.hasOwnProperty(s)&&f(e[s])&&f(e[s].values)){let i=e[s];n[s]=new U({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new B({attributes:n,indices:[],primitiveType:t.primitiveType})}function Ft(t,e,n){let s=f(t.geometry.boundingSphere);e=ne(e,s),n=ne(n,s),f(n)&&!f(e)?t.geometry=n:!f(n)&&f(e)?t.geometry=e:(t.westHemisphereGeometry=e,t.eastHemisphereGeometry=n,t.geometry=void 0)}function kt(t,e){let n=new t,s=new t,i=new t;return function(c,o,a,p,u,d,m,l){let h=t.fromArray(u,c*e,n),y=t.fromArray(u,o*e,s),v=t.fromArray(u,a*e,i);t.multiplyByScalar(h,p.x,h),t.multiplyByScalar(y,p.y,y),t.multiplyByScalar(v,p.z,v);let b=t.add(h,y,h);t.add(b,v,b),l&&t.normalize(b,b),t.pack(b,d,m*e)}}var ze=kt(pt,4),At=kt(r,3),ae=kt(V,2),De=function(t,e,n,s,i,c,o){let a=i[t]*s.x,p=i[e]*s.y,u=i[n]*s.z;c[o]=a+p+u>N.EPSILON6?1:0},bt=new r,Gt=new r,Ct=new r,qe=new r;function xt(t,e,n,s,i,c,o,a,p,u,d,m,l,h,y,v){if(!f(c)&&!f(o)&&!f(a)&&!f(p)&&!f(u)&&h===0)return;let b=r.fromArray(i,t*3,bt),S=r.fromArray(i,e*3,Gt),x=r.fromArray(i,n*3,Ct),w=Ht(s,b,S,x,qe);if(f(w)){if(f(c)&&At(t,e,n,w,c,m.normal.values,v,!0),f(u)){let A=r.fromArray(u,t*3,bt),E=r.fromArray(u,e*3,Gt),P=r.fromArray(u,n*3,Ct);r.multiplyByScalar(A,w.x,A),r.multiplyByScalar(E,w.y,E),r.multiplyByScalar(P,w.z,P);let O;!r.equals(A,r.ZERO)||!r.equals(E,r.ZERO)||!r.equals(P,r.ZERO)?(O=r.add(A,E,A),r.add(O,P,O),r.normalize(O,O)):(O=bt,O.x=0,O.y=0,O.z=0),r.pack(O,m.extrudeDirection.values,v*3)}if(f(d)&&De(t,e,n,w,d,m.applyOffset.values,v),f(o)&&At(t,e,n,w,o,m.tangent.values,v,!0),f(a)&&At(t,e,n,w,a,m.bitangent.values,v,!0),f(p)&&ae(t,e,n,w,p,m.st.values,v),h>0)for(let A=0;A<h;A++){let E=l[A];Re(t,e,n,w,v,y[E],m[E])}}}function Re(t,e,n,s,i,c,o){let a=c.componentsPerAttribute,p=c.values,u=o.values;switch(a){case 4:ze(t,e,n,s,p,u,i,!1);break;case 3:At(t,e,n,s,p,u,i,!1);break;case 2:ae(t,e,n,s,p,u,i,!1);break;default:u[i]=p[t]*s.x+p[e]*s.y+p[n]*s.z}}function K(t,e,n,s,i,c){let o=t.position.values.length/3;if(i!==-1){let a=s[i],p=n[a];return p===-1?(n[a]=o,t.position.values.push(c.x,c.y,c.z),e.push(o),o):(e.push(p),p)}return t.position.values.push(c.x,c.y,c.z),e.push(o),o}var Ve={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function ie(t){let e=t.geometry,n=e.attributes,s=n.position.values,i=f(n.normal)?n.normal.values:void 0,c=f(n.bitangent)?n.bitangent.values:void 0,o=f(n.tangent)?n.tangent.values:void 0,a=f(n.st)?n.st.values:void 0,p=f(n.extrudeDirection)?n.extrudeDirection.values:void 0,u=f(n.applyOffset)?n.applyOffset.values:void 0,d=e.indices,m=[];for(let O in n)n.hasOwnProperty(O)&&!Ve[O]&&f(n[O])&&m.push(O);let l=m.length,h=ut(e),y=ut(e),v,b,S,x,w,A=[];A.length=s.length/3;let E=[];for(E.length=s.length/3,w=0;w<A.length;++w)A[w]=-1,E[w]=-1;let P=d.length;for(w=0;w<P;w+=3){let O=d[w],L=d[w+1],g=d[w+2],T=r.fromArray(s,O*3),C=r.fromArray(s,L*3),z=r.fromArray(s,g*3),q=Ne(T,C,z);if(f(q)&&q.positions.length>3){let R=q.positions,G=q.indices,M=G.length;for(let J=0;J<M;++J){let Y=G[J],_=R[Y];_.y<0?(v=y.attributes,b=y.indices,S=A):(v=h.attributes,b=h.indices,S=E),x=K(v,b,S,d,Y<3?w+Y:-1,_),xt(O,L,g,_,s,i,o,c,a,p,u,v,m,l,n,x)}}else f(q)&&(T=q.positions[0],C=q.positions[1],z=q.positions[2]),T.y<0?(v=y.attributes,b=y.indices,S=A):(v=h.attributes,b=h.indices,S=E),x=K(v,b,S,d,w,T),xt(O,L,g,T,s,i,o,c,a,p,u,v,m,l,n,x),x=K(v,b,S,d,w+1,C),xt(O,L,g,C,s,i,o,c,a,p,u,v,m,l,n,x),x=K(v,b,S,d,w+2,z),xt(O,L,g,z,s,i,o,c,a,p,u,v,m,l,n,x)}Ft(t,y,h)}var ue=Et.fromPointNormal(r.ZERO,r.UNIT_Y),Ge=new r,Ce=new r;function at(t,e,n,s,i,c,o){if(!f(o))return;let a=r.fromArray(s,t*3,bt);r.equalsEpsilon(a,n,N.EPSILON10)?c.applyOffset.values[i]=o[t]:c.applyOffset.values[i]=o[e]}function se(t){let e=t.geometry,n=e.attributes,s=n.position.values,i=f(n.applyOffset)?n.applyOffset.values:void 0,c=e.indices,o=ut(e),a=ut(e),p,u=c.length,d=[];d.length=s.length/3;let m=[];for(m.length=s.length/3,p=0;p<d.length;++p)d[p]=-1,m[p]=-1;for(p=0;p<u;p+=2){let l=c[p],h=c[p+1],y=r.fromArray(s,l*3,bt),v=r.fromArray(s,h*3,Gt),b;Math.abs(y.y)<N.EPSILON6&&(y.y<0?y.y=-N.EPSILON6:y.y=N.EPSILON6),Math.abs(v.y)<N.EPSILON6&&(v.y<0?v.y=-N.EPSILON6:v.y=N.EPSILON6);let S=o.attributes,x=o.indices,w=m,A=a.attributes,E=a.indices,P=d,O=Lt.lineSegmentPlane(y,v,ue,Ct);if(f(O)){let L=r.multiplyByScalar(r.UNIT_Y,5*N.EPSILON9,Ge);y.y<0&&(r.negate(L,L),S=a.attributes,x=a.indices,w=d,A=o.attributes,E=o.indices,P=m);let g=r.add(O,L,Ce);b=K(S,x,w,c,p,y),at(l,h,y,s,b,S,i),b=K(S,x,w,c,-1,g),at(l,h,g,s,b,S,i),r.negate(L,L),r.add(O,L,g),b=K(A,E,P,c,-1,g),at(l,h,g,s,b,A,i),b=K(A,E,P,c,p+1,v),at(l,h,v,s,b,A,i)}else{let L,g,T;y.y<0?(L=a.attributes,g=a.indices,T=d):(L=o.attributes,g=o.indices,T=m),b=K(L,g,T,c,p,y),at(l,h,y,s,b,L,i),b=K(L,g,T,c,p+1,v),at(l,h,v,s,b,L,i)}}Ft(t,a,o)}var oe=new V,Be=new V,le=new r,fe=new r,Bt=new r,Fe=new r,ke=new r,Me=new r,re=new pt;function ce(t){let e=t.attributes,n=e.position.values,s=e.prevPosition.values,i=e.nextPosition.values,c=n.length;for(let o=0;o<c;o+=3){let a=r.unpack(n,o,le);if(a.x>0)continue;let p=r.unpack(s,o,fe);(a.y<0&&p.y>0||a.y>0&&p.y<0)&&(o-3>0?(s[o]=n[o-3],s[o+1]=n[o-2],s[o+2]=n[o-1]):r.pack(a,s,o));let u=r.unpack(i,o,Bt);(a.y<0&&u.y>0||a.y>0&&u.y<0)&&(o+3<c?(i[o]=n[o+3],i[o+1]=n[o+4],i[o+2]=n[o+5]):r.pack(a,i,o))}}var _e=5*N.EPSILON9,Tt=N.EPSILON6;function Ue(t){let e=t.geometry,n=e.attributes,s=n.position.values,i=n.prevPosition.values,c=n.nextPosition.values,o=n.expandAndWidth.values,a=f(n.st)?n.st.values:void 0,p=f(n.color)?n.color.values:void 0,u=ut(e),d=ut(e),m,l,h,y=!1,v=s.length/3;for(m=0;m<v;m+=4){let b=m,S=m+2,x=r.fromArray(s,b*3,le),w=r.fromArray(s,S*3,fe);if(Math.abs(x.y)<Tt)for(x.y=Tt*(w.y<0?-1:1),s[m*3+1]=x.y,s[(m+1)*3+1]=x.y,l=b*3;l<b*3+12;l+=3)i[l]=s[m*3],i[l+1]=s[m*3+1],i[l+2]=s[m*3+2];if(Math.abs(w.y)<Tt)for(w.y=Tt*(x.y<0?-1:1),s[(m+2)*3+1]=w.y,s[(m+3)*3+1]=w.y,l=b*3;l<b*3+12;l+=3)c[l]=s[(m+2)*3],c[l+1]=s[(m+2)*3+1],c[l+2]=s[(m+2)*3+2];let A=u.attributes,E=u.indices,P=d.attributes,O=d.indices,L=Lt.lineSegmentPlane(x,w,ue,Fe);if(f(L)){y=!0;let g=r.multiplyByScalar(r.UNIT_Y,_e,ke);x.y<0&&(r.negate(g,g),A=d.attributes,E=d.indices,P=u.attributes,O=u.indices);let T=r.add(L,g,Me);A.position.values.push(x.x,x.y,x.z,x.x,x.y,x.z),A.position.values.push(T.x,T.y,T.z),A.position.values.push(T.x,T.y,T.z),A.prevPosition.values.push(i[b*3],i[b*3+1],i[b*3+2]),A.prevPosition.values.push(i[b*3+3],i[b*3+4],i[b*3+5]),A.prevPosition.values.push(x.x,x.y,x.z,x.x,x.y,x.z),A.nextPosition.values.push(T.x,T.y,T.z),A.nextPosition.values.push(T.x,T.y,T.z),A.nextPosition.values.push(T.x,T.y,T.z),A.nextPosition.values.push(T.x,T.y,T.z),r.negate(g,g),r.add(L,g,T),P.position.values.push(T.x,T.y,T.z),P.position.values.push(T.x,T.y,T.z),P.position.values.push(w.x,w.y,w.z,w.x,w.y,w.z),P.prevPosition.values.push(T.x,T.y,T.z),P.prevPosition.values.push(T.x,T.y,T.z),P.prevPosition.values.push(T.x,T.y,T.z),P.prevPosition.values.push(T.x,T.y,T.z),P.nextPosition.values.push(w.x,w.y,w.z,w.x,w.y,w.z),P.nextPosition.values.push(c[S*3],c[S*3+1],c[S*3+2]),P.nextPosition.values.push(c[S*3+3],c[S*3+4],c[S*3+5]);let C=V.fromArray(o,b*2,oe),z=Math.abs(C.y);A.expandAndWidth.values.push(-1,z,1,z),A.expandAndWidth.values.push(-1,-z,1,-z),P.expandAndWidth.values.push(-1,z,1,z),P.expandAndWidth.values.push(-1,-z,1,-z);let q=r.magnitudeSquared(r.subtract(L,x,Bt));if(q/=r.magnitudeSquared(r.subtract(w,x,Bt)),f(p)){let R=pt.fromArray(p,b*4,re),G=pt.fromArray(p,S*4,re),M=N.lerp(R.x,G.x,q),J=N.lerp(R.y,G.y,q),Y=N.lerp(R.z,G.z,q),_=N.lerp(R.w,G.w,q);for(l=b*4;l<b*4+8;++l)A.color.values.push(p[l]);for(A.color.values.push(M,J,Y,_),A.color.values.push(M,J,Y,_),P.color.values.push(M,J,Y,_),P.color.values.push(M,J,Y,_),l=S*4;l<S*4+8;++l)P.color.values.push(p[l])}if(f(a)){let R=V.fromArray(a,b*2,oe),G=V.fromArray(a,(m+3)*2,Be),M=N.lerp(R.x,G.x,q);for(l=b*2;l<b*2+4;++l)A.st.values.push(a[l]);for(A.st.values.push(M,R.y),A.st.values.push(M,G.y),P.st.values.push(M,R.y),P.st.values.push(M,G.y),l=S*2;l<S*2+4;++l)P.st.values.push(a[l])}h=A.position.values.length/3-4,E.push(h,h+2,h+1),E.push(h+1,h+2,h+3),h=P.position.values.length/3-4,O.push(h,h+2,h+1),O.push(h+1,h+2,h+3)}else{let g,T;for(x.y<0?(g=d.attributes,T=d.indices):(g=u.attributes,T=u.indices),g.position.values.push(x.x,x.y,x.z),g.position.values.push(x.x,x.y,x.z),g.position.values.push(w.x,w.y,w.z),g.position.values.push(w.x,w.y,w.z),l=m*3;l<m*3+12;++l)g.prevPosition.values.push(i[l]),g.nextPosition.values.push(c[l]);for(l=m*2;l<m*2+8;++l)g.expandAndWidth.values.push(o[l]),f(a)&&g.st.values.push(a[l]);if(f(p))for(l=m*4;l<m*4+16;++l)g.color.values.push(p[l]);h=g.position.values.length/3-4,T.push(h,h+2,h+1),T.push(h+1,h+2,h+3)}}y&&(ce(d),ce(u)),Ft(t,d,u)}k.splitLongitude=function(t){if(!f(t))throw new I("instance is required.");let e=t.geometry,n=e.boundingSphere;if(f(n)&&(n.center.x-n.radius>0||ot.intersectPlane(n,Et.ORIGIN_ZX_PLANE)!==Ut.INTERSECTING))return t;if(e.geometryType!==dt.NONE)switch(e.geometryType){case dt.POLYLINES:Ue(t);break;case dt.TRIANGLES:ie(t);break;case dt.LINES:se(t);break}else Le(e),e.primitiveType===D.TRIANGLES?ie(t):e.primitiveType===D.LINES&&se(t);return t};var Pn=k;export{Pn as a}; diff --git a/cesium/Workers/chunk-QS7V5G6Y.js b/cesium/Workers/chunk-QS7V5G6Y.js new file mode 100644 index 00000000..60a068a0 --- /dev/null +++ b/cesium/Workers/chunk-QS7V5G6Y.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as L}from"./chunk-P7N43FDO.js";import{a as S}from"./chunk-ML6MR2RA.js";import{a as D}from"./chunk-4WQ4VT5S.js";import{a as H}from"./chunk-6EINM7EY.js";import{b as T,c as B,d as x}from"./chunk-A4I25VN7.js";import{c as E}from"./chunk-D3TVNJ6W.js";import{a as O}from"./chunk-ATKJRN2G.js";import{c as d}from"./chunk-2AIOP76V.js";import{a as c,c as V}from"./chunk-IAE6APK2.js";import{a as w}from"./chunk-3E7FIXV7.js";import{a as A}from"./chunk-NZBME2JK.js";import{f as a}from"./chunk-6DLS2UKD.js";var q=new c,g=new c;function U(e){let t=e.center;g=c.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,g),e.height,g),g=c.add(t,g,g);let i=new E(g,e.semiMajorAxis),f=L.computeEllipsePositions(e,!1,!0).outerPositions,o=new H({position:new x({componentDatatype:O.DOUBLE,componentsPerAttribute:3,values:L.raisePositionsToHeight(f,e,!1)})}),r=f.length/3,u=D.createTypedArray(r,r*2),m=0;for(let n=0;n<r;++n)u[m++]=n,u[m++]=(n+1)%r;return{boundingSphere:i,attributes:o,indices:u}}var j=new E,N=new E;function R(e){let t=e.center,i=e.ellipsoid,f=e.semiMajorAxis,o=c.multiplyByScalar(i.geodeticSurfaceNormal(t,q),e.height,q);j.center=c.add(t,o,j.center),j.radius=f,o=c.multiplyByScalar(i.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),N.center=c.add(t,o,N.center),N.radius=f;let r=L.computeEllipsePositions(e,!1,!0).outerPositions,u=new H({position:new x({componentDatatype:O.DOUBLE,componentsPerAttribute:3,values:L.raisePositionsToHeight(r,e,!0)})});r=u.position.values;let m=E.union(j,N),n=r.length/3;if(a(e.offsetAttribute)){let b=new Uint8Array(n);if(e.offsetAttribute===S.TOP)b=b.fill(1,0,n/2);else{let k=e.offsetAttribute===S.NONE?0:1;b=b.fill(k)}u.applyOffset=new x({componentDatatype:O.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}let l=e.numberOfVerticalLines??16;l=w.clamp(l,0,n/2);let h=D.createTypedArray(n,n*2+l*2);n/=2;let p=0,s;for(s=0;s<n;++s)h[p++]=s,h[p++]=(s+1)%n,h[p++]=s+n,h[p++]=(s+1)%n+n;let P;if(l>0){let b=Math.min(l,n);P=Math.round(n/b);let k=Math.min(P*l,n);for(s=0;s<k;s+=P)h[p++]=s,h[p++]=s+n}return{boundingSphere:m,attributes:u,indices:h}}function M(e){e=e??V.EMPTY_OBJECT;let t=e.center,i=e.ellipsoid??d.default,f=e.semiMajorAxis,o=e.semiMinorAxis,r=e.granularity??w.RADIANS_PER_DEGREE;if(!a(t))throw new A("center is required.");if(!a(f))throw new A("semiMajorAxis is required.");if(!a(o))throw new A("semiMinorAxis is required.");if(f<o)throw new A("semiMajorAxis must be greater than or equal to the semiMinorAxis.");if(r<=0)throw new A("granularity must be greater than zero.");let u=e.height??0,m=e.extrudedHeight??u;this._center=c.clone(t),this._semiMajorAxis=f,this._semiMinorAxis=o,this._ellipsoid=d.clone(i),this._rotation=e.rotation??0,this._height=Math.max(m,u),this._granularity=r,this._extrudedHeight=Math.min(m,u),this._numberOfVerticalLines=Math.max(e.numberOfVerticalLines??16,0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}M.packedLength=c.packedLength+d.packedLength+8;M.pack=function(e,t,i){if(!a(e))throw new A("value is required");if(!a(t))throw new A("array is required");return i=i??0,c.pack(e._center,t,i),i+=c.packedLength,d.pack(e._ellipsoid,t,i),i+=d.packedLength,t[i++]=e._semiMajorAxis,t[i++]=e._semiMinorAxis,t[i++]=e._rotation,t[i++]=e._height,t[i++]=e._granularity,t[i++]=e._extrudedHeight,t[i++]=e._numberOfVerticalLines,t[i]=e._offsetAttribute??-1,t};var y=new c,C=new d,_={center:y,ellipsoid:C,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};M.unpack=function(e,t,i){if(!a(e))throw new A("array is required");t=t??0;let f=c.unpack(e,t,y);t+=c.packedLength;let o=d.unpack(e,t,C);t+=d.packedLength;let r=e[t++],u=e[t++],m=e[t++],n=e[t++],l=e[t++],h=e[t++],p=e[t++],s=e[t];return a(i)?(i._center=c.clone(f,i._center),i._ellipsoid=d.clone(o,i._ellipsoid),i._semiMajorAxis=r,i._semiMinorAxis=u,i._rotation=m,i._height=n,i._granularity=l,i._extrudedHeight=h,i._numberOfVerticalLines=p,i._offsetAttribute=s===-1?void 0:s,i):(_.height=n,_.extrudedHeight=h,_.granularity=l,_.rotation=m,_.semiMajorAxis=r,_.semiMinorAxis=u,_.numberOfVerticalLines=p,_.offsetAttribute=s===-1?void 0:s,new M(_))};M.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,i=e._extrudedHeight,f=!w.equalsEpsilon(t,i,0,w.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines},r;if(f)o.extrudedHeight=i,o.offsetAttribute=e._offsetAttribute,r=R(o);else if(r=U(o),a(e._offsetAttribute)){let u=r.attributes.position.values.length,m=e._offsetAttribute===S.NONE?0:1,n=new Uint8Array(u/3).fill(m);r.attributes.applyOffset=new x({componentDatatype:O.UNSIGNED_BYTE,componentsPerAttribute:1,values:n})}return new B({attributes:r.attributes,indices:r.indices,primitiveType:T.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var ie=M;export{ie as a}; diff --git a/cesium/Workers/chunk-RDX4QSUS.js b/cesium/Workers/chunk-RDX4QSUS.js new file mode 100644 index 00000000..fde9daf6 --- /dev/null +++ b/cesium/Workers/chunk-RDX4QSUS.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var E={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGBA_ASTC_4x4_WEBGL:37808,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_BPTC_UNORM:36492,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047};Object.freeze(E);var _=E;export{_ as a}; diff --git a/cesium/Workers/chunk-RESOCDYZ.js b/cesium/Workers/chunk-RESOCDYZ.js new file mode 100644 index 00000000..5837c4e6 --- /dev/null +++ b/cesium/Workers/chunk-RESOCDYZ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as fn,c as Tn}from"./chunk-6DLS2UKD.js";var Dn=Tn((nt,bt)=>{var _=_||{};_.scope={};_.arrayIteratorImpl=function(p){var c=0;return function(){return c<p.length?{done:!1,value:p[c++]}:{done:!0}}};_.arrayIterator=function(p){return{next:_.arrayIteratorImpl(p)}};_.makeIterator=function(p){var c=typeof Symbol<"u"&&Symbol.iterator&&p[Symbol.iterator];return c?c.call(p):_.arrayIterator(p)};_.ASSUME_ES5=!1;_.ASSUME_NO_NATIVE_MAP=!1;_.ASSUME_NO_NATIVE_SET=!1;_.SIMPLE_FROUND_POLYFILL=!1;_.ISOLATE_POLYFILLS=!1;_.FORCE_POLYFILL_PROMISE=!1;_.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;_.getGlobal=function(p){p=[typeof globalThis=="object"&&globalThis,p,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var c=0;c<p.length;++c){var s=p[c];if(s&&s.Math==Math)return s}throw Error("Cannot find global object")};_.global=_.getGlobal(nt);_.defineProperty=_.ASSUME_ES5||typeof Object.defineProperties=="function"?Object.defineProperty:function(p,c,s){return p==Array.prototype||p==Object.prototype||(p[c]=s.value),p};_.IS_SYMBOL_NATIVE=typeof Symbol=="function"&&typeof Symbol("x")=="symbol";_.TRUST_ES6_POLYFILLS=!_.ISOLATE_POLYFILLS||_.IS_SYMBOL_NATIVE;_.polyfills={};_.propertyToPolyfillSymbol={};_.POLYFILL_PREFIX="$jscp$";_.polyfill=function(p,c,s,y){c&&(_.ISOLATE_POLYFILLS?_.polyfillIsolated(p,c,s,y):_.polyfillUnisolated(p,c,s,y))};_.polyfillUnisolated=function(p,c,s,y){for(s=_.global,p=p.split("."),y=0;y<p.length-1;y++){var a=p[y];if(!(a in s))return;s=s[a]}p=p[p.length-1],y=s[p],c=c(y),c!=y&&c!=null&&_.defineProperty(s,p,{configurable:!0,writable:!0,value:c})};_.polyfillIsolated=function(p,c,s,y){var a=p.split(".");p=a.length===1,y=a[0],y=!p&&y in _.polyfills?_.polyfills:_.global;for(var g=0;g<a.length-1;g++){var i=a[g];if(!(i in y))return;y=y[i]}a=a[a.length-1],s=_.IS_SYMBOL_NATIVE&&s==="es6"?y[a]:null,c=c(s),c!=null&&(p?_.defineProperty(_.polyfills,a,{configurable:!0,writable:!0,value:c}):c!==s&&(_.propertyToPolyfillSymbol[a]===void 0&&(s=1e9*Math.random()>>>0,_.propertyToPolyfillSymbol[a]=_.IS_SYMBOL_NATIVE?_.global.Symbol(a):_.POLYFILL_PREFIX+s+"$"+a),_.defineProperty(y,_.propertyToPolyfillSymbol[a],{configurable:!0,writable:!0,value:c})))};_.polyfill("Promise",function(p){function c(){this.batch_=null}function s(i){return i instanceof a?i:new a(function(l,h){l(i)})}if(p&&(!(_.FORCE_POLYFILL_PROMISE||_.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&typeof _.global.PromiseRejectionEvent>"u")||!_.global.Promise||_.global.Promise.toString().indexOf("[native code]")===-1))return p;c.prototype.asyncExecute=function(i){if(this.batch_==null){this.batch_=[];var l=this;this.asyncExecuteFunction(function(){l.executeBatch_()})}this.batch_.push(i)};var y=_.global.setTimeout;c.prototype.asyncExecuteFunction=function(i){y(i,0)},c.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var i=this.batch_;this.batch_=[];for(var l=0;l<i.length;++l){var h=i[l];i[l]=null;try{h()}catch(I){this.asyncThrow_(I)}}}this.batch_=null},c.prototype.asyncThrow_=function(i){this.asyncExecuteFunction(function(){throw i})};var a=function(i){this.state_=0,this.result_=void 0,this.onSettledCallbacks_=[],this.isRejectionHandled_=!1;var l=this.createResolveAndReject_();try{i(l.resolve,l.reject)}catch(h){l.reject(h)}};a.prototype.createResolveAndReject_=function(){function i(I){return function(C){h||(h=!0,I.call(l,C))}}var l=this,h=!1;return{resolve:i(this.resolveTo_),reject:i(this.reject_)}},a.prototype.resolveTo_=function(i){if(i===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(i instanceof a)this.settleSameAsPromise_(i);else{t:switch(typeof i){case"object":var l=i!=null;break t;case"function":l=!0;break t;default:l=!1}l?this.resolveToNonPromiseObj_(i):this.fulfill_(i)}},a.prototype.resolveToNonPromiseObj_=function(i){var l=void 0;try{l=i.then}catch(h){this.reject_(h);return}typeof l=="function"?this.settleSameAsThenable_(l,i):this.fulfill_(i)},a.prototype.reject_=function(i){this.settle_(2,i)},a.prototype.fulfill_=function(i){this.settle_(1,i)},a.prototype.settle_=function(i,l){if(this.state_!=0)throw Error("Cannot settle("+i+", "+l+"): Promise already settled in state"+this.state_);this.state_=i,this.result_=l,this.state_===2&&this.scheduleUnhandledRejectionCheck_(),this.executeOnSettledCallbacks_()},a.prototype.scheduleUnhandledRejectionCheck_=function(){var i=this;y(function(){if(i.notifyUnhandledRejection_()){var l=_.global.console;typeof l<"u"&&l.error(i.result_)}},1)},a.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var i=_.global.CustomEvent,l=_.global.Event,h=_.global.dispatchEvent;return typeof h>"u"?!0:(typeof i=="function"?i=new i("unhandledrejection",{cancelable:!0}):typeof l=="function"?i=new l("unhandledrejection",{cancelable:!0}):(i=_.global.document.createEvent("CustomEvent"),i.initCustomEvent("unhandledrejection",!1,!0,i)),i.promise=this,i.reason=this.result_,h(i))},a.prototype.executeOnSettledCallbacks_=function(){if(this.onSettledCallbacks_!=null){for(var i=0;i<this.onSettledCallbacks_.length;++i)g.asyncExecute(this.onSettledCallbacks_[i]);this.onSettledCallbacks_=null}};var g=new c;return a.prototype.settleSameAsPromise_=function(i){var l=this.createResolveAndReject_();i.callWhenSettled_(l.resolve,l.reject)},a.prototype.settleSameAsThenable_=function(i,l){var h=this.createResolveAndReject_();try{i.call(l,h.resolve,h.reject)}catch(I){h.reject(I)}},a.prototype.then=function(i,l){function h(f,T){return typeof f=="function"?function(G){try{I(f(G))}catch(V){C(V)}}:T}var I,C,K=new a(function(f,T){I=f,C=T});return this.callWhenSettled_(h(i,I),h(l,C)),K},a.prototype.catch=function(i){return this.then(void 0,i)},a.prototype.callWhenSettled_=function(i,l){function h(){switch(I.state_){case 1:i(I.result_);break;case 2:l(I.result_);break;default:throw Error("Unexpected state: "+I.state_)}}var I=this;this.onSettledCallbacks_==null?g.asyncExecute(h):this.onSettledCallbacks_.push(h),this.isRejectionHandled_=!0},a.resolve=s,a.reject=function(i){return new a(function(l,h){h(i)})},a.race=function(i){return new a(function(l,h){for(var I=_.makeIterator(i),C=I.next();!C.done;C=I.next())s(C.value).callWhenSettled_(l,h)})},a.all=function(i){var l=_.makeIterator(i),h=l.next();return h.done?s([]):new a(function(I,C){function K(G){return function(V){f[G]=V,T--,T==0&&I(f)}}var f=[],T=0;do f.push(void 0),T++,s(h.value).callWhenSettled_(K(f.length-1),C),h=l.next();while(!h.done)})},a},"es6","es3");_.owns=function(p,c){return Object.prototype.hasOwnProperty.call(p,c)};_.assign=_.TRUST_ES6_POLYFILLS&&typeof Object.assign=="function"?Object.assign:function(p,c){for(var s=1;s<arguments.length;s++){var y=arguments[s];if(y)for(var a in y)_.owns(y,a)&&(p[a]=y[a])}return p};_.polyfill("Object.assign",function(p){return p||_.assign},"es6","es3");_.checkStringArgs=function(p,c,s){if(p==null)throw new TypeError("The 'this' value for String.prototype."+s+" must not be null or undefined");if(c instanceof RegExp)throw new TypeError("First argument to String.prototype."+s+" must not be a regular expression");return p+""};_.polyfill("String.prototype.startsWith",function(p){return p||function(c,s){var y=_.checkStringArgs(this,c,"startsWith");c+="";var a=y.length,g=c.length;s=Math.max(0,Math.min(s|0,y.length));for(var i=0;i<g&&s<a;)if(y[s++]!=c[i++])return!1;return i>=g}},"es6","es3");_.polyfill("Array.prototype.copyWithin",function(p){function c(s){return s=Number(s),s===1/0||s===-1/0?s:s|0}return p||function(s,y,a){var g=this.length;if(s=c(s),y=c(y),a=a===void 0?g:c(a),s=0>s?Math.max(g+s,0):Math.min(s,g),y=0>y?Math.max(g+y,0):Math.min(y,g),a=0>a?Math.max(g+a,0):Math.min(a,g),s<y)for(;y<a;)y in this?this[s++]=this[y++]:(delete this[s++],y++);else for(a=Math.min(a,g+y-s),s+=a-y;a>y;)--a in this?this[--s]=this[a]:delete this[--s];return this}},"es6","es3");_.typedArrayCopyWithin=function(p){return p||Array.prototype.copyWithin};_.polyfill("Int8Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint8Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint8ClampedArray.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Int16Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint16Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Int32Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint32Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Float32Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Float64Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");var dt=(function(){var p=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(p=p||__filename),function(c){function s(e){return t.locateFile?t.locateFile(e,Q):Q+e}function y(e,r,n){var o=r+n;for(n=r;e[n]&&!(n>=o);)++n;if(16<n-r&&e.buffer&&Ot)return Ot.decode(e.subarray(r,n));for(o="";r<n;){var m=e[r++];if(m&128){var b=e[r++]&63;if((m&224)==192)o+=String.fromCharCode((m&31)<<6|b);else{var X=e[r++]&63;m=(m&240)==224?(m&15)<<12|b<<6|X:(m&7)<<18|b<<12|X<<6|e[r++]&63,65536>m?o+=String.fromCharCode(m):(m-=65536,o+=String.fromCharCode(55296|m>>10,56320|m&1023))}}else o+=String.fromCharCode(m)}return o}function a(e,r){return e?y(tt,e,r):""}function g(){var e=_t.buffer;t.HEAP8=q=new Int8Array(e),t.HEAP16=new Int16Array(e),t.HEAP32=et=new Int32Array(e),t.HEAPU8=tt=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAPU32=x=new Uint32Array(e),t.HEAPF32=new Float32Array(e),t.HEAPF64=new Float64Array(e)}function i(e){throw t.onAbort&&t.onAbort(e),e="Aborted("+e+")",J(e),Gt=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),ot(e),e}function l(e){try{if(e==z&&Z)return new Uint8Array(Z);if(ut)return ut(e);throw"both async and sync fetching of the wasm failed"}catch(r){i(r)}}function h(){if(!Z&&(It||$)){if(typeof fetch=="function"&&!z.startsWith("file://"))return fetch(z,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+z+"'";return e.arrayBuffer()}).catch(function(){return l(z)});if(st)return new Promise(function(e,r){st(z,function(n){e(new Uint8Array(n))},r)})}return Promise.resolve().then(function(){return l(z)})}function I(e){for(;0<e.length;)e.shift()(t)}function C(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(r){x[this.ptr+4>>2]=r},this.get_type=function(){return x[this.ptr+4>>2]},this.set_destructor=function(r){x[this.ptr+8>>2]=r},this.get_destructor=function(){return x[this.ptr+8>>2]},this.set_refcount=function(r){et[this.ptr>>2]=r},this.set_caught=function(r){q[this.ptr+12>>0]=r?1:0},this.get_caught=function(){return q[this.ptr+12>>0]!=0},this.set_rethrown=function(r){q[this.ptr+13>>0]=r?1:0},this.get_rethrown=function(){return q[this.ptr+13>>0]!=0},this.init=function(r,n){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(n),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){et[this.ptr>>2]+=1},this.release_ref=function(){var r=et[this.ptr>>2];return et[this.ptr>>2]=r-1,r===1},this.set_adjusted_ptr=function(r){x[this.ptr+16>>2]=r},this.get_adjusted_ptr=function(){return x[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ln(this.get_type()))return x[this.excPtr>>2];var r=this.get_adjusted_ptr();return r!==0?r:this.excPtr}}function K(){function e(){if(!it&&(it=!0,t.calledRun=!0,!Gt)){if(Rt=!0,I(ct),ht(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Pt.unshift(t.postRun.shift());I(Pt)}}if(!(0<k)){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)jt.unshift(t.preRun.shift());I(jt),0<k||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e())}}function f(){}function T(e){return(e||f).__cache__}function G(e,r){var n=T(r),o=n[e];return o||(o=Object.create((r||f).prototype),o.ptr=e,n[e]=o)}function V(e){if(typeof e=="string"){for(var r=0,n=0;n<e.length;++n){var o=e.charCodeAt(n);127>=o?r++:2047>=o?r+=2:55296<=o&&57343>=o?(r+=4,++n):r+=3}if(r=Array(r+1),n=0,o=r.length,0<o){o=n+o-1;for(var m=0;m<e.length;++m){var b=e.charCodeAt(m);if(55296<=b&&57343>=b){var X=e.charCodeAt(++m);b=65536+((b&1023)<<10)|X&1023}if(127>=b){if(n>=o)break;r[n++]=b}else{if(2047>=b){if(n+1>=o)break;r[n++]=192|b>>6}else{if(65535>=b){if(n+2>=o)break;r[n++]=224|b>>12}else{if(n+3>=o)break;r[n++]=240|b>>18,r[n++]=128|b>>12&63}r[n++]=128|b>>6&63}r[n++]=128|b&63}}r[n]=0}return e=d.alloc(r,q),d.copy(r,q,e),e}return e}function at(e){if(typeof e=="object"){var r=d.alloc(e,q);return d.copy(e,q,r),r}return e}function H(){throw"cannot construct a VoidPtr, no constructor in IDL"}function B(){this.ptr=Mt(),T(B)[this.ptr]=this}function w(){this.ptr=Ft(),T(w)[this.ptr]=this}function Y(){this.ptr=wt(),T(Y)[this.ptr]=this}function A(){this.ptr=Vt(),T(A)[this.ptr]=this}function E(){this.ptr=Jt(),T(E)[this.ptr]=this}function j(){this.ptr=ne(),T(j)[this.ptr]=this}function P(){this.ptr=ae(),T(P)[this.ptr]=this}function O(){this.ptr=ce(),T(O)[this.ptr]=this}function W(){this.ptr=de(),T(W)[this.ptr]=this}function v(){throw"cannot construct a Status, no constructor in IDL"}function R(){this.ptr=Ie(),T(R)[this.ptr]=this}function S(){this.ptr=Ge(),T(S)[this.ptr]=this}function M(){this.ptr=Re(),T(M)[this.ptr]=this}function N(){this.ptr=Ue(),T(N)[this.ptr]=this}function U(){this.ptr=we(),T(U)[this.ptr]=this}function F(){this.ptr=We(),T(F)[this.ptr]=this}function L(){this.ptr=He(),T(L)[this.ptr]=this}function D(){this.ptr=Ke(),T(D)[this.ptr]=this}function u(){this.ptr=_r(),T(u)[this.ptr]=this}c=c===void 0?{}:c;var t=typeof c<"u"?c:{},ht,ot;t.ready=new Promise(function(e,r){ht=e,ot=r});var At=!1,Tt=!1;t.onRuntimeInitialized=function(){At=!0,Tt&&typeof t.onModuleLoaded=="function"&&t.onModuleLoaded(t)},t.onModuleParsed=function(){Tt=!0,At&&typeof t.onModuleLoaded=="function"&&t.onModuleLoaded(t)},t.isVersionSupported=function(e){return typeof e!="string"?!1:(e=e.split("."),2>e.length||3<e.length?!1:e[0]==1&&0<=e[1]&&5>=e[1]?!0:!(e[0]!=0||10<e[1]))};var Dt=Object.assign({},t),It=typeof window=="object",$=typeof importScripts=="function",gt=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Q="";if(gt){var vt=fn("fs"),pt=fn("path");Q=$?pt.dirname(Q)+"/":__dirname+"/";var Et=function(e,r){return e=e.startsWith("file://")?new URL(e):pt.normalize(e),vt.readFileSync(e,r?void 0:"utf8")},ut=function(e){return e=Et(e,!0),e.buffer||(e=new Uint8Array(e)),e},st=function(e,r,n){e=e.startsWith("file://")?new URL(e):pt.normalize(e),vt.readFile(e,function(o,m){o?n(o):r(m.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),t.inspect=function(){return"[Emscripten Module object]"}}else(It||$)&&($?Q=self.location.href:typeof document<"u"&&document.currentScript&&(Q=document.currentScript.src),p&&(Q=p),Q=Q.indexOf("blob:")!==0?Q.substr(0,Q.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Et=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},$&&(ut=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),st=function(e,r,n){var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=function(){o.status==200||o.status==0&&o.response?r(o.response):n()},o.onerror=n,o.send(null)});var dn=t.print||console.log.bind(console),J=t.printErr||console.warn.bind(console);Object.assign(t,Dt),Dt=null;var Z;t.wasmBinary&&(Z=t.wasmBinary),typeof WebAssembly!="object"&&i("no native wasm support detected");var _t,Gt=!1,Ot=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,q,tt,et,x,jt=[],ct=[],Pt=[],Rt=!1,k=0,yt=null,rt=null,z="draco_decoder.wasm";z.startsWith("data:application/octet-stream;base64,")||(z=s(z));var bn=0,hn=[null,[],[]],An={b:function(e,r,n){throw new C(e).init(r,n),bn++,e},a:function(){i("")},g:function(e,r,n){tt.copyWithin(e,r,r+n)},e:function(e){var r=tt.length;if(e>>>=0,2147483648<e)return!1;for(var n=1;4>=n;n*=2){var o=r*(1+.2/n);o=Math.min(o,e+100663296);var m=Math;o=Math.max(e,o),m=m.min.call(m,2147483648,o+(65536-o%65536)%65536);t:{o=_t.buffer;try{_t.grow(m-o.byteLength+65535>>>16),g();var b=1;break t}catch{}b=void 0}if(b)return!0}return!1},f:function(e){return 52},d:function(e,r,n,o,m){return 70},c:function(e,r,n,o){for(var m=0,b=0;b<n;b++){var X=x[r>>2],mn=x[r+4>>2];r+=8;for(var lt=0;lt<mn;lt++){var mt=tt[X+lt],ft=hn[e];mt===0||mt===10?((e===1?dn:J)(y(ft,0)),ft.length=0):ft.push(mt)}m+=mn}return x[o>>2]=m,0}};(function(){function e(m,b){t.asm=m.exports,_t=t.asm.h,g(),ct.unshift(t.asm.i),k--,t.monitorRunDependencies&&t.monitorRunDependencies(k),k==0&&(yt!==null&&(clearInterval(yt),yt=null),rt&&(m=rt,rt=null,m()))}function r(m){e(m.instance)}function n(m){return h().then(function(b){return WebAssembly.instantiate(b,o)}).then(function(b){return b}).then(m,function(b){J("failed to asynchronously prepare wasm: "+b),i(b)})}var o={a:An};if(k++,t.monitorRunDependencies&&t.monitorRunDependencies(k),t.instantiateWasm)try{return t.instantiateWasm(o,e)}catch(m){J("Module.instantiateWasm callback failed with error: "+m),ot(m)}return(function(){return Z||typeof WebAssembly.instantiateStreaming!="function"||z.startsWith("data:application/octet-stream;base64,")||z.startsWith("file://")||gt||typeof fetch!="function"?n(r):fetch(z,{credentials:"same-origin"}).then(function(m){return WebAssembly.instantiateStreaming(m,o).then(r,function(b){return J("wasm streaming compile failed: "+b),J("falling back to ArrayBuffer instantiation"),n(r)})})})().catch(ot),{}})();var St=t._emscripten_bind_VoidPtr___destroy___0=function(){return(St=t._emscripten_bind_VoidPtr___destroy___0=t.asm.k).apply(null,arguments)},Mt=t._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Mt=t._emscripten_bind_DecoderBuffer_DecoderBuffer_0=t.asm.l).apply(null,arguments)},Nt=t._emscripten_bind_DecoderBuffer_Init_2=function(){return(Nt=t._emscripten_bind_DecoderBuffer_Init_2=t.asm.m).apply(null,arguments)},Ut=t._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Ut=t._emscripten_bind_DecoderBuffer___destroy___0=t.asm.n).apply(null,arguments)},Ft=t._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ft=t._emscripten_bind_AttributeTransformData_AttributeTransformData_0=t.asm.o).apply(null,arguments)},Lt=t._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(Lt=t._emscripten_bind_AttributeTransformData_transform_type_0=t.asm.p).apply(null,arguments)},Ct=t._emscripten_bind_AttributeTransformData___destroy___0=function(){return(Ct=t._emscripten_bind_AttributeTransformData___destroy___0=t.asm.q).apply(null,arguments)},wt=t._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(wt=t._emscripten_bind_GeometryAttribute_GeometryAttribute_0=t.asm.r).apply(null,arguments)},zt=t._emscripten_bind_GeometryAttribute___destroy___0=function(){return(zt=t._emscripten_bind_GeometryAttribute___destroy___0=t.asm.s).apply(null,arguments)},Vt=t._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Vt=t._emscripten_bind_PointAttribute_PointAttribute_0=t.asm.t).apply(null,arguments)},Bt=t._emscripten_bind_PointAttribute_size_0=function(){return(Bt=t._emscripten_bind_PointAttribute_size_0=t.asm.u).apply(null,arguments)},Wt=t._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(Wt=t._emscripten_bind_PointAttribute_GetAttributeTransformData_0=t.asm.v).apply(null,arguments)},Qt=t._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Qt=t._emscripten_bind_PointAttribute_attribute_type_0=t.asm.w).apply(null,arguments)},xt=t._emscripten_bind_PointAttribute_data_type_0=function(){return(xt=t._emscripten_bind_PointAttribute_data_type_0=t.asm.x).apply(null,arguments)},Yt=t._emscripten_bind_PointAttribute_num_components_0=function(){return(Yt=t._emscripten_bind_PointAttribute_num_components_0=t.asm.y).apply(null,arguments)},Ht=t._emscripten_bind_PointAttribute_normalized_0=function(){return(Ht=t._emscripten_bind_PointAttribute_normalized_0=t.asm.z).apply(null,arguments)},qt=t._emscripten_bind_PointAttribute_byte_stride_0=function(){return(qt=t._emscripten_bind_PointAttribute_byte_stride_0=t.asm.A).apply(null,arguments)},kt=t._emscripten_bind_PointAttribute_byte_offset_0=function(){return(kt=t._emscripten_bind_PointAttribute_byte_offset_0=t.asm.B).apply(null,arguments)},Xt=t._emscripten_bind_PointAttribute_unique_id_0=function(){return(Xt=t._emscripten_bind_PointAttribute_unique_id_0=t.asm.C).apply(null,arguments)},Kt=t._emscripten_bind_PointAttribute___destroy___0=function(){return(Kt=t._emscripten_bind_PointAttribute___destroy___0=t.asm.D).apply(null,arguments)},Jt=t._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Jt=t._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=t.asm.E).apply(null,arguments)},$t=t._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return($t=t._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=t.asm.F).apply(null,arguments)},Zt=t._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(Zt=t._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=t.asm.G).apply(null,arguments)},te=t._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(te=t._emscripten_bind_AttributeQuantizationTransform_min_value_1=t.asm.H).apply(null,arguments)},ee=t._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(ee=t._emscripten_bind_AttributeQuantizationTransform_range_0=t.asm.I).apply(null,arguments)},re=t._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(re=t._emscripten_bind_AttributeQuantizationTransform___destroy___0=t.asm.J).apply(null,arguments)},ne=t._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(ne=t._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=t.asm.K).apply(null,arguments)},oe=t._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(oe=t._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=t.asm.L).apply(null,arguments)},_e=t._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(_e=t._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=t.asm.M).apply(null,arguments)},ie=t._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(ie=t._emscripten_bind_AttributeOctahedronTransform___destroy___0=t.asm.N).apply(null,arguments)},ae=t._emscripten_bind_PointCloud_PointCloud_0=function(){return(ae=t._emscripten_bind_PointCloud_PointCloud_0=t.asm.O).apply(null,arguments)},pe=t._emscripten_bind_PointCloud_num_attributes_0=function(){return(pe=t._emscripten_bind_PointCloud_num_attributes_0=t.asm.P).apply(null,arguments)},ue=t._emscripten_bind_PointCloud_num_points_0=function(){return(ue=t._emscripten_bind_PointCloud_num_points_0=t.asm.Q).apply(null,arguments)},se=t._emscripten_bind_PointCloud___destroy___0=function(){return(se=t._emscripten_bind_PointCloud___destroy___0=t.asm.R).apply(null,arguments)},ce=t._emscripten_bind_Mesh_Mesh_0=function(){return(ce=t._emscripten_bind_Mesh_Mesh_0=t.asm.S).apply(null,arguments)},ye=t._emscripten_bind_Mesh_num_faces_0=function(){return(ye=t._emscripten_bind_Mesh_num_faces_0=t.asm.T).apply(null,arguments)},le=t._emscripten_bind_Mesh_num_attributes_0=function(){return(le=t._emscripten_bind_Mesh_num_attributes_0=t.asm.U).apply(null,arguments)},me=t._emscripten_bind_Mesh_num_points_0=function(){return(me=t._emscripten_bind_Mesh_num_points_0=t.asm.V).apply(null,arguments)},fe=t._emscripten_bind_Mesh___destroy___0=function(){return(fe=t._emscripten_bind_Mesh___destroy___0=t.asm.W).apply(null,arguments)},de=t._emscripten_bind_Metadata_Metadata_0=function(){return(de=t._emscripten_bind_Metadata_Metadata_0=t.asm.X).apply(null,arguments)},be=t._emscripten_bind_Metadata___destroy___0=function(){return(be=t._emscripten_bind_Metadata___destroy___0=t.asm.Y).apply(null,arguments)},he=t._emscripten_bind_Status_code_0=function(){return(he=t._emscripten_bind_Status_code_0=t.asm.Z).apply(null,arguments)},Ae=t._emscripten_bind_Status_ok_0=function(){return(Ae=t._emscripten_bind_Status_ok_0=t.asm._).apply(null,arguments)},Te=t._emscripten_bind_Status_error_msg_0=function(){return(Te=t._emscripten_bind_Status_error_msg_0=t.asm.$).apply(null,arguments)},De=t._emscripten_bind_Status___destroy___0=function(){return(De=t._emscripten_bind_Status___destroy___0=t.asm.aa).apply(null,arguments)},Ie=t._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ie=t._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=t.asm.ba).apply(null,arguments)},ge=t._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(ge=t._emscripten_bind_DracoFloat32Array_GetValue_1=t.asm.ca).apply(null,arguments)},ve=t._emscripten_bind_DracoFloat32Array_size_0=function(){return(ve=t._emscripten_bind_DracoFloat32Array_size_0=t.asm.da).apply(null,arguments)},Ee=t._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ee=t._emscripten_bind_DracoFloat32Array___destroy___0=t.asm.ea).apply(null,arguments)},Ge=t._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ge=t._emscripten_bind_DracoInt8Array_DracoInt8Array_0=t.asm.fa).apply(null,arguments)},Oe=t._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Oe=t._emscripten_bind_DracoInt8Array_GetValue_1=t.asm.ga).apply(null,arguments)},je=t._emscripten_bind_DracoInt8Array_size_0=function(){return(je=t._emscripten_bind_DracoInt8Array_size_0=t.asm.ha).apply(null,arguments)},Pe=t._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Pe=t._emscripten_bind_DracoInt8Array___destroy___0=t.asm.ia).apply(null,arguments)},Re=t._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Re=t._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=t.asm.ja).apply(null,arguments)},Se=t._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Se=t._emscripten_bind_DracoUInt8Array_GetValue_1=t.asm.ka).apply(null,arguments)},Me=t._emscripten_bind_DracoUInt8Array_size_0=function(){return(Me=t._emscripten_bind_DracoUInt8Array_size_0=t.asm.la).apply(null,arguments)},Ne=t._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ne=t._emscripten_bind_DracoUInt8Array___destroy___0=t.asm.ma).apply(null,arguments)},Ue=t._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Ue=t._emscripten_bind_DracoInt16Array_DracoInt16Array_0=t.asm.na).apply(null,arguments)},Fe=t._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Fe=t._emscripten_bind_DracoInt16Array_GetValue_1=t.asm.oa).apply(null,arguments)},Le=t._emscripten_bind_DracoInt16Array_size_0=function(){return(Le=t._emscripten_bind_DracoInt16Array_size_0=t.asm.pa).apply(null,arguments)},Ce=t._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Ce=t._emscripten_bind_DracoInt16Array___destroy___0=t.asm.qa).apply(null,arguments)},we=t._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(we=t._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=t.asm.ra).apply(null,arguments)},ze=t._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(ze=t._emscripten_bind_DracoUInt16Array_GetValue_1=t.asm.sa).apply(null,arguments)},Ve=t._emscripten_bind_DracoUInt16Array_size_0=function(){return(Ve=t._emscripten_bind_DracoUInt16Array_size_0=t.asm.ta).apply(null,arguments)},Be=t._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Be=t._emscripten_bind_DracoUInt16Array___destroy___0=t.asm.ua).apply(null,arguments)},We=t._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(We=t._emscripten_bind_DracoInt32Array_DracoInt32Array_0=t.asm.va).apply(null,arguments)},Qe=t._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Qe=t._emscripten_bind_DracoInt32Array_GetValue_1=t.asm.wa).apply(null,arguments)},xe=t._emscripten_bind_DracoInt32Array_size_0=function(){return(xe=t._emscripten_bind_DracoInt32Array_size_0=t.asm.xa).apply(null,arguments)},Ye=t._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Ye=t._emscripten_bind_DracoInt32Array___destroy___0=t.asm.ya).apply(null,arguments)},He=t._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(He=t._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=t.asm.za).apply(null,arguments)},qe=t._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(qe=t._emscripten_bind_DracoUInt32Array_GetValue_1=t.asm.Aa).apply(null,arguments)},ke=t._emscripten_bind_DracoUInt32Array_size_0=function(){return(ke=t._emscripten_bind_DracoUInt32Array_size_0=t.asm.Ba).apply(null,arguments)},Xe=t._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(Xe=t._emscripten_bind_DracoUInt32Array___destroy___0=t.asm.Ca).apply(null,arguments)},Ke=t._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ke=t._emscripten_bind_MetadataQuerier_MetadataQuerier_0=t.asm.Da).apply(null,arguments)},Je=t._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(Je=t._emscripten_bind_MetadataQuerier_HasEntry_2=t.asm.Ea).apply(null,arguments)},$e=t._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return($e=t._emscripten_bind_MetadataQuerier_GetIntEntry_2=t.asm.Fa).apply(null,arguments)},Ze=t._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(Ze=t._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=t.asm.Ga).apply(null,arguments)},tr=t._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(tr=t._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=t.asm.Ha).apply(null,arguments)},er=t._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(er=t._emscripten_bind_MetadataQuerier_GetStringEntry_2=t.asm.Ia).apply(null,arguments)},rr=t._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(rr=t._emscripten_bind_MetadataQuerier_NumEntries_1=t.asm.Ja).apply(null,arguments)},nr=t._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(nr=t._emscripten_bind_MetadataQuerier_GetEntryName_2=t.asm.Ka).apply(null,arguments)},or=t._emscripten_bind_MetadataQuerier___destroy___0=function(){return(or=t._emscripten_bind_MetadataQuerier___destroy___0=t.asm.La).apply(null,arguments)},_r=t._emscripten_bind_Decoder_Decoder_0=function(){return(_r=t._emscripten_bind_Decoder_Decoder_0=t.asm.Ma).apply(null,arguments)},ir=t._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ir=t._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=t.asm.Na).apply(null,arguments)},ar=t._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(ar=t._emscripten_bind_Decoder_DecodeArrayToMesh_3=t.asm.Oa).apply(null,arguments)},pr=t._emscripten_bind_Decoder_GetAttributeId_2=function(){return(pr=t._emscripten_bind_Decoder_GetAttributeId_2=t.asm.Pa).apply(null,arguments)},ur=t._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(ur=t._emscripten_bind_Decoder_GetAttributeIdByName_2=t.asm.Qa).apply(null,arguments)},sr=t._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(sr=t._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=t.asm.Ra).apply(null,arguments)},cr=t._emscripten_bind_Decoder_GetAttribute_2=function(){return(cr=t._emscripten_bind_Decoder_GetAttribute_2=t.asm.Sa).apply(null,arguments)},yr=t._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(yr=t._emscripten_bind_Decoder_GetAttributeByUniqueId_2=t.asm.Ta).apply(null,arguments)},lr=t._emscripten_bind_Decoder_GetMetadata_1=function(){return(lr=t._emscripten_bind_Decoder_GetMetadata_1=t.asm.Ua).apply(null,arguments)},mr=t._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(mr=t._emscripten_bind_Decoder_GetAttributeMetadata_2=t.asm.Va).apply(null,arguments)},fr=t._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(fr=t._emscripten_bind_Decoder_GetFaceFromMesh_3=t.asm.Wa).apply(null,arguments)},dr=t._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(dr=t._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=t.asm.Xa).apply(null,arguments)},br=t._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(br=t._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=t.asm.Ya).apply(null,arguments)},hr=t._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(hr=t._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=t.asm.Za).apply(null,arguments)},Ar=t._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Ar=t._emscripten_bind_Decoder_GetAttributeFloat_3=t.asm._a).apply(null,arguments)},Tr=t._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Tr=t._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=t.asm.$a).apply(null,arguments)},Dr=t._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Dr=t._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=t.asm.ab).apply(null,arguments)},Ir=t._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ir=t._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=t.asm.bb).apply(null,arguments)},gr=t._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(gr=t._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=t.asm.cb).apply(null,arguments)},vr=t._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(vr=t._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=t.asm.db).apply(null,arguments)},Er=t._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Er=t._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=t.asm.eb).apply(null,arguments)},Gr=t._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Gr=t._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=t.asm.fb).apply(null,arguments)},Or=t._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Or=t._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=t.asm.gb).apply(null,arguments)},jr=t._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(jr=t._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=t.asm.hb).apply(null,arguments)},Pr=t._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Pr=t._emscripten_bind_Decoder_SkipAttributeTransform_1=t.asm.ib).apply(null,arguments)},Rr=t._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Rr=t._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=t.asm.jb).apply(null,arguments)},Sr=t._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Sr=t._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=t.asm.kb).apply(null,arguments)},Mr=t._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Mr=t._emscripten_bind_Decoder_DecodeBufferToMesh_2=t.asm.lb).apply(null,arguments)},Nr=t._emscripten_bind_Decoder___destroy___0=function(){return(Nr=t._emscripten_bind_Decoder___destroy___0=t.asm.mb).apply(null,arguments)},Ur=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Ur=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=t.asm.nb).apply(null,arguments)},Fr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Fr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=t.asm.ob).apply(null,arguments)},Lr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Lr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=t.asm.pb).apply(null,arguments)},Cr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Cr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=t.asm.qb).apply(null,arguments)},wr=t._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(wr=t._emscripten_enum_draco_GeometryAttribute_Type_INVALID=t.asm.rb).apply(null,arguments)},zr=t._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(zr=t._emscripten_enum_draco_GeometryAttribute_Type_POSITION=t.asm.sb).apply(null,arguments)},Vr=t._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Vr=t._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=t.asm.tb).apply(null,arguments)},Br=t._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Br=t._emscripten_enum_draco_GeometryAttribute_Type_COLOR=t.asm.ub).apply(null,arguments)},Wr=t._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Wr=t._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=t.asm.vb).apply(null,arguments)},Qr=t._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Qr=t._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=t.asm.wb).apply(null,arguments)},xr=t._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(xr=t._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=t.asm.xb).apply(null,arguments)},Yr=t._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Yr=t._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=t.asm.yb).apply(null,arguments)},Hr=t._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Hr=t._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=t.asm.zb).apply(null,arguments)},qr=t._emscripten_enum_draco_DataType_DT_INVALID=function(){return(qr=t._emscripten_enum_draco_DataType_DT_INVALID=t.asm.Ab).apply(null,arguments)},kr=t._emscripten_enum_draco_DataType_DT_INT8=function(){return(kr=t._emscripten_enum_draco_DataType_DT_INT8=t.asm.Bb).apply(null,arguments)},Xr=t._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Xr=t._emscripten_enum_draco_DataType_DT_UINT8=t.asm.Cb).apply(null,arguments)},Kr=t._emscripten_enum_draco_DataType_DT_INT16=function(){return(Kr=t._emscripten_enum_draco_DataType_DT_INT16=t.asm.Db).apply(null,arguments)},Jr=t._emscripten_enum_draco_DataType_DT_UINT16=function(){return(Jr=t._emscripten_enum_draco_DataType_DT_UINT16=t.asm.Eb).apply(null,arguments)},$r=t._emscripten_enum_draco_DataType_DT_INT32=function(){return($r=t._emscripten_enum_draco_DataType_DT_INT32=t.asm.Fb).apply(null,arguments)},Zr=t._emscripten_enum_draco_DataType_DT_UINT32=function(){return(Zr=t._emscripten_enum_draco_DataType_DT_UINT32=t.asm.Gb).apply(null,arguments)},tn=t._emscripten_enum_draco_DataType_DT_INT64=function(){return(tn=t._emscripten_enum_draco_DataType_DT_INT64=t.asm.Hb).apply(null,arguments)},en=t._emscripten_enum_draco_DataType_DT_UINT64=function(){return(en=t._emscripten_enum_draco_DataType_DT_UINT64=t.asm.Ib).apply(null,arguments)},rn=t._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(rn=t._emscripten_enum_draco_DataType_DT_FLOAT32=t.asm.Jb).apply(null,arguments)},nn=t._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(nn=t._emscripten_enum_draco_DataType_DT_FLOAT64=t.asm.Kb).apply(null,arguments)},on=t._emscripten_enum_draco_DataType_DT_BOOL=function(){return(on=t._emscripten_enum_draco_DataType_DT_BOOL=t.asm.Lb).apply(null,arguments)},_n=t._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(_n=t._emscripten_enum_draco_DataType_DT_TYPES_COUNT=t.asm.Mb).apply(null,arguments)},an=t._emscripten_enum_draco_StatusCode_OK=function(){return(an=t._emscripten_enum_draco_StatusCode_OK=t.asm.Nb).apply(null,arguments)},pn=t._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(pn=t._emscripten_enum_draco_StatusCode_DRACO_ERROR=t.asm.Ob).apply(null,arguments)},un=t._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(un=t._emscripten_enum_draco_StatusCode_IO_ERROR=t.asm.Pb).apply(null,arguments)},sn=t._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(sn=t._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=t.asm.Qb).apply(null,arguments)},cn=t._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(cn=t._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=t.asm.Rb).apply(null,arguments)},yn=t._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(yn=t._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=t.asm.Sb).apply(null,arguments)};t._malloc=function(){return(t._malloc=t.asm.Tb).apply(null,arguments)},t._free=function(){return(t._free=t.asm.Ub).apply(null,arguments)};var ln=function(){return(ln=t.asm.Vb).apply(null,arguments)};t.___start_em_js=15856,t.___stop_em_js=15954;var it;if(rt=function e(){it||K(),it||(rt=e)},t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();K(),f.prototype=Object.create(f.prototype),f.prototype.constructor=f,f.prototype.__class__=f,f.__cache__={},t.WrapperObject=f,t.getCache=T,t.wrapPointer=G,t.castObject=function(e,r){return G(e.ptr,r)},t.NULL=G(0),t.destroy=function(e){if(!e.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";e.__destroy__(),delete T(e.__class__)[e.ptr]},t.compare=function(e,r){return e.ptr===r.ptr},t.getPointer=function(e){return e.ptr},t.getClass=function(e){return e.__class__};var d={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(d.needed){for(var e=0;e<d.temps.length;e++)t._free(d.temps[e]);d.temps.length=0,t._free(d.buffer),d.buffer=0,d.size+=d.needed,d.needed=0}d.buffer||(d.size+=128,d.buffer=t._malloc(d.size),d.buffer||i(void 0)),d.pos=0},alloc:function(e,r){return d.buffer||i(void 0),e=e.length*r.BYTES_PER_ELEMENT,e=e+7&-8,d.pos+e>=d.size?(0<e||i(void 0),d.needed+=e,r=t._malloc(e),d.temps.push(r)):(r=d.buffer+d.pos,d.pos+=e),r},copy:function(e,r,n){switch(n>>>=0,r.BYTES_PER_ELEMENT){case 2:n>>>=1;break;case 4:n>>>=2;break;case 8:n>>>=3}for(var o=0;o<e.length;o++)r[n+o]=e[o]}};return H.prototype=Object.create(f.prototype),H.prototype.constructor=H,H.prototype.__class__=H,H.__cache__={},t.VoidPtr=H,H.prototype.__destroy__=H.prototype.__destroy__=function(){St(this.ptr)},B.prototype=Object.create(f.prototype),B.prototype.constructor=B,B.prototype.__class__=B,B.__cache__={},t.DecoderBuffer=B,B.prototype.Init=B.prototype.Init=function(e,r){var n=this.ptr;d.prepare(),typeof e=="object"&&(e=at(e)),r&&typeof r=="object"&&(r=r.ptr),Nt(n,e,r)},B.prototype.__destroy__=B.prototype.__destroy__=function(){Ut(this.ptr)},w.prototype=Object.create(f.prototype),w.prototype.constructor=w,w.prototype.__class__=w,w.__cache__={},t.AttributeTransformData=w,w.prototype.transform_type=w.prototype.transform_type=function(){return Lt(this.ptr)},w.prototype.__destroy__=w.prototype.__destroy__=function(){Ct(this.ptr)},Y.prototype=Object.create(f.prototype),Y.prototype.constructor=Y,Y.prototype.__class__=Y,Y.__cache__={},t.GeometryAttribute=Y,Y.prototype.__destroy__=Y.prototype.__destroy__=function(){zt(this.ptr)},A.prototype=Object.create(f.prototype),A.prototype.constructor=A,A.prototype.__class__=A,A.__cache__={},t.PointAttribute=A,A.prototype.size=A.prototype.size=function(){return Bt(this.ptr)},A.prototype.GetAttributeTransformData=A.prototype.GetAttributeTransformData=function(){return G(Wt(this.ptr),w)},A.prototype.attribute_type=A.prototype.attribute_type=function(){return Qt(this.ptr)},A.prototype.data_type=A.prototype.data_type=function(){return xt(this.ptr)},A.prototype.num_components=A.prototype.num_components=function(){return Yt(this.ptr)},A.prototype.normalized=A.prototype.normalized=function(){return!!Ht(this.ptr)},A.prototype.byte_stride=A.prototype.byte_stride=function(){return qt(this.ptr)},A.prototype.byte_offset=A.prototype.byte_offset=function(){return kt(this.ptr)},A.prototype.unique_id=A.prototype.unique_id=function(){return Xt(this.ptr)},A.prototype.__destroy__=A.prototype.__destroy__=function(){Kt(this.ptr)},E.prototype=Object.create(f.prototype),E.prototype.constructor=E,E.prototype.__class__=E,E.__cache__={},t.AttributeQuantizationTransform=E,E.prototype.InitFromAttribute=E.prototype.InitFromAttribute=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),!!$t(r,e)},E.prototype.quantization_bits=E.prototype.quantization_bits=function(){return Zt(this.ptr)},E.prototype.min_value=E.prototype.min_value=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),te(r,e)},E.prototype.range=E.prototype.range=function(){return ee(this.ptr)},E.prototype.__destroy__=E.prototype.__destroy__=function(){re(this.ptr)},j.prototype=Object.create(f.prototype),j.prototype.constructor=j,j.prototype.__class__=j,j.__cache__={},t.AttributeOctahedronTransform=j,j.prototype.InitFromAttribute=j.prototype.InitFromAttribute=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),!!oe(r,e)},j.prototype.quantization_bits=j.prototype.quantization_bits=function(){return _e(this.ptr)},j.prototype.__destroy__=j.prototype.__destroy__=function(){ie(this.ptr)},P.prototype=Object.create(f.prototype),P.prototype.constructor=P,P.prototype.__class__=P,P.__cache__={},t.PointCloud=P,P.prototype.num_attributes=P.prototype.num_attributes=function(){return pe(this.ptr)},P.prototype.num_points=P.prototype.num_points=function(){return ue(this.ptr)},P.prototype.__destroy__=P.prototype.__destroy__=function(){se(this.ptr)},O.prototype=Object.create(f.prototype),O.prototype.constructor=O,O.prototype.__class__=O,O.__cache__={},t.Mesh=O,O.prototype.num_faces=O.prototype.num_faces=function(){return ye(this.ptr)},O.prototype.num_attributes=O.prototype.num_attributes=function(){return le(this.ptr)},O.prototype.num_points=O.prototype.num_points=function(){return me(this.ptr)},O.prototype.__destroy__=O.prototype.__destroy__=function(){fe(this.ptr)},W.prototype=Object.create(f.prototype),W.prototype.constructor=W,W.prototype.__class__=W,W.__cache__={},t.Metadata=W,W.prototype.__destroy__=W.prototype.__destroy__=function(){be(this.ptr)},v.prototype=Object.create(f.prototype),v.prototype.constructor=v,v.prototype.__class__=v,v.__cache__={},t.Status=v,v.prototype.code=v.prototype.code=function(){return he(this.ptr)},v.prototype.ok=v.prototype.ok=function(){return!!Ae(this.ptr)},v.prototype.error_msg=v.prototype.error_msg=function(){return a(Te(this.ptr))},v.prototype.__destroy__=v.prototype.__destroy__=function(){De(this.ptr)},R.prototype=Object.create(f.prototype),R.prototype.constructor=R,R.prototype.__class__=R,R.__cache__={},t.DracoFloat32Array=R,R.prototype.GetValue=R.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),ge(r,e)},R.prototype.size=R.prototype.size=function(){return ve(this.ptr)},R.prototype.__destroy__=R.prototype.__destroy__=function(){Ee(this.ptr)},S.prototype=Object.create(f.prototype),S.prototype.constructor=S,S.prototype.__class__=S,S.__cache__={},t.DracoInt8Array=S,S.prototype.GetValue=S.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Oe(r,e)},S.prototype.size=S.prototype.size=function(){return je(this.ptr)},S.prototype.__destroy__=S.prototype.__destroy__=function(){Pe(this.ptr)},M.prototype=Object.create(f.prototype),M.prototype.constructor=M,M.prototype.__class__=M,M.__cache__={},t.DracoUInt8Array=M,M.prototype.GetValue=M.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Se(r,e)},M.prototype.size=M.prototype.size=function(){return Me(this.ptr)},M.prototype.__destroy__=M.prototype.__destroy__=function(){Ne(this.ptr)},N.prototype=Object.create(f.prototype),N.prototype.constructor=N,N.prototype.__class__=N,N.__cache__={},t.DracoInt16Array=N,N.prototype.GetValue=N.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Fe(r,e)},N.prototype.size=N.prototype.size=function(){return Le(this.ptr)},N.prototype.__destroy__=N.prototype.__destroy__=function(){Ce(this.ptr)},U.prototype=Object.create(f.prototype),U.prototype.constructor=U,U.prototype.__class__=U,U.__cache__={},t.DracoUInt16Array=U,U.prototype.GetValue=U.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),ze(r,e)},U.prototype.size=U.prototype.size=function(){return Ve(this.ptr)},U.prototype.__destroy__=U.prototype.__destroy__=function(){Be(this.ptr)},F.prototype=Object.create(f.prototype),F.prototype.constructor=F,F.prototype.__class__=F,F.__cache__={},t.DracoInt32Array=F,F.prototype.GetValue=F.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Qe(r,e)},F.prototype.size=F.prototype.size=function(){return xe(this.ptr)},F.prototype.__destroy__=F.prototype.__destroy__=function(){Ye(this.ptr)},L.prototype=Object.create(f.prototype),L.prototype.constructor=L,L.prototype.__class__=L,L.__cache__={},t.DracoUInt32Array=L,L.prototype.GetValue=L.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),qe(r,e)},L.prototype.size=L.prototype.size=function(){return ke(this.ptr)},L.prototype.__destroy__=L.prototype.__destroy__=function(){Xe(this.ptr)},D.prototype=Object.create(f.prototype),D.prototype.constructor=D,D.prototype.__class__=D,D.__cache__={},t.MetadataQuerier=D,D.prototype.HasEntry=D.prototype.HasEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),!!Je(n,e,r)},D.prototype.GetIntEntry=D.prototype.GetIntEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),$e(n,e,r)},D.prototype.GetIntEntryArray=D.prototype.GetIntEntryArray=function(e,r,n){var o=this.ptr;d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),n&&typeof n=="object"&&(n=n.ptr),Ze(o,e,r,n)},D.prototype.GetDoubleEntry=D.prototype.GetDoubleEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),tr(n,e,r)},D.prototype.GetStringEntry=D.prototype.GetStringEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),a(er(n,e,r))},D.prototype.NumEntries=D.prototype.NumEntries=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),rr(r,e)},D.prototype.GetEntryName=D.prototype.GetEntryName=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),a(nr(n,e,r))},D.prototype.__destroy__=D.prototype.__destroy__=function(){or(this.ptr)},u.prototype=Object.create(f.prototype),u.prototype.constructor=u,u.prototype.__class__=u,u.__cache__={},t.Decoder=u,u.prototype.DecodeArrayToPointCloud=u.prototype.DecodeArrayToPointCloud=function(e,r,n){var o=this.ptr;return d.prepare(),typeof e=="object"&&(e=at(e)),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),G(ir(o,e,r,n),v)},u.prototype.DecodeArrayToMesh=u.prototype.DecodeArrayToMesh=function(e,r,n){var o=this.ptr;return d.prepare(),typeof e=="object"&&(e=at(e)),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),G(ar(o,e,r,n),v)},u.prototype.GetAttributeId=u.prototype.GetAttributeId=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),pr(n,e,r)},u.prototype.GetAttributeIdByName=u.prototype.GetAttributeIdByName=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),ur(n,e,r)},u.prototype.GetAttributeIdByMetadataEntry=u.prototype.GetAttributeIdByMetadataEntry=function(e,r,n){var o=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),n=n&&typeof n=="object"?n.ptr:V(n),sr(o,e,r,n)},u.prototype.GetAttribute=u.prototype.GetAttribute=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(cr(n,e,r),A)},u.prototype.GetAttributeByUniqueId=u.prototype.GetAttributeByUniqueId=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(yr(n,e,r),A)},u.prototype.GetMetadata=u.prototype.GetMetadata=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),G(lr(r,e),W)},u.prototype.GetAttributeMetadata=u.prototype.GetAttributeMetadata=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(mr(n,e,r),W)},u.prototype.GetFaceFromMesh=u.prototype.GetFaceFromMesh=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!fr(o,e,r,n)},u.prototype.GetTriangleStripsFromMesh=u.prototype.GetTriangleStripsFromMesh=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),dr(n,e,r)},u.prototype.GetTrianglesUInt16Array=u.prototype.GetTrianglesUInt16Array=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!br(o,e,r,n)},u.prototype.GetTrianglesUInt32Array=u.prototype.GetTrianglesUInt32Array=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!hr(o,e,r,n)},u.prototype.GetAttributeFloat=u.prototype.GetAttributeFloat=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Ar(o,e,r,n)},u.prototype.GetAttributeFloatForAllPoints=u.prototype.GetAttributeFloatForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Tr(o,e,r,n)},u.prototype.GetAttributeIntForAllPoints=u.prototype.GetAttributeIntForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Dr(o,e,r,n)},u.prototype.GetAttributeInt8ForAllPoints=u.prototype.GetAttributeInt8ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Ir(o,e,r,n)},u.prototype.GetAttributeUInt8ForAllPoints=u.prototype.GetAttributeUInt8ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!gr(o,e,r,n)},u.prototype.GetAttributeInt16ForAllPoints=u.prototype.GetAttributeInt16ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!vr(o,e,r,n)},u.prototype.GetAttributeUInt16ForAllPoints=u.prototype.GetAttributeUInt16ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Er(o,e,r,n)},u.prototype.GetAttributeInt32ForAllPoints=u.prototype.GetAttributeInt32ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Gr(o,e,r,n)},u.prototype.GetAttributeUInt32ForAllPoints=u.prototype.GetAttributeUInt32ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Or(o,e,r,n)},u.prototype.GetAttributeDataArrayForAllPoints=u.prototype.GetAttributeDataArrayForAllPoints=function(e,r,n,o,m){var b=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),o&&typeof o=="object"&&(o=o.ptr),m&&typeof m=="object"&&(m=m.ptr),!!jr(b,e,r,n,o,m)},u.prototype.SkipAttributeTransform=u.prototype.SkipAttributeTransform=function(e){var r=this.ptr;e&&typeof e=="object"&&(e=e.ptr),Pr(r,e)},u.prototype.GetEncodedGeometryType_Deprecated=u.prototype.GetEncodedGeometryType_Deprecated=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Rr(r,e)},u.prototype.DecodeBufferToPointCloud=u.prototype.DecodeBufferToPointCloud=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(Sr(n,e,r),v)},u.prototype.DecodeBufferToMesh=u.prototype.DecodeBufferToMesh=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(Mr(n,e,r),v)},u.prototype.__destroy__=u.prototype.__destroy__=function(){Nr(this.ptr)},(function(){function e(){t.ATTRIBUTE_INVALID_TRANSFORM=Ur(),t.ATTRIBUTE_NO_TRANSFORM=Fr(),t.ATTRIBUTE_QUANTIZATION_TRANSFORM=Lr(),t.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Cr(),t.INVALID=wr(),t.POSITION=zr(),t.NORMAL=Vr(),t.COLOR=Br(),t.TEX_COORD=Wr(),t.GENERIC=Qr(),t.INVALID_GEOMETRY_TYPE=xr(),t.POINT_CLOUD=Yr(),t.TRIANGULAR_MESH=Hr(),t.DT_INVALID=qr(),t.DT_INT8=kr(),t.DT_UINT8=Xr(),t.DT_INT16=Kr(),t.DT_UINT16=Jr(),t.DT_INT32=$r(),t.DT_UINT32=Zr(),t.DT_INT64=tn(),t.DT_UINT64=en(),t.DT_FLOAT32=rn(),t.DT_FLOAT64=nn(),t.DT_BOOL=on(),t.DT_TYPES_COUNT=_n(),t.OK=an(),t.DRACO_ERROR=pn(),t.IO_ERROR=un(),t.INVALID_PARAMETER=sn(),t.UNSUPPORTED_VERSION=cn(),t.UNKNOWN_VERSION=yn()}Rt?e():ct.unshift(e)})(),typeof t.onModuleParsed=="function"&&t.onModuleParsed(),t.Decoder.prototype.GetEncodedGeometryType=function(e){if(e.__class__&&e.__class__===t.DecoderBuffer)return t.Decoder.prototype.GetEncodedGeometryType_Deprecated(e);if(8>e.byteLength)return t.INVALID_GEOMETRY_TYPE;switch(e[7]){case 0:return t.POINT_CLOUD;case 1:return t.TRIANGULAR_MESH;default:return t.INVALID_GEOMETRY_TYPE}},c.ready}})();typeof nt=="object"&&typeof bt=="object"?bt.exports=dt:typeof define=="function"&&define.amd?define([],function(){return dt}):typeof nt=="object"&&(nt.DracoDecoderModule=dt)});export{Dn as a}; diff --git a/cesium/Workers/chunk-SRA5MBUT.js b/cesium/Workers/chunk-SRA5MBUT.js new file mode 100644 index 00000000..8885c20d --- /dev/null +++ b/cesium/Workers/chunk-SRA5MBUT.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{b as U}from"./chunk-D3TVNJ6W.js";import{a as ft}from"./chunk-2AIOP76V.js";import{a as i,b}from"./chunk-IAE6APK2.js";import{a as y}from"./chunk-3E7FIXV7.js";import{a as w,b as $}from"./chunk-NZBME2JK.js";import{f as g}from"./chunk-6DLS2UKD.js";var tt={};tt.computeDiscriminant=function(t,r,e){if(typeof t!="number")throw new w("a is a required number.");if(typeof r!="number")throw new w("b is a required number.");if(typeof e!="number")throw new w("c is a required number.");return r*r-4*t*e};function mt(t,r,e){let n=t+r;return y.sign(t)!==y.sign(r)&&Math.abs(n/Math.max(Math.abs(t),Math.abs(r)))<e?0:n}tt.computeRealRoots=function(t,r,e){if(typeof t!="number")throw new w("a is a required number.");if(typeof r!="number")throw new w("b is a required number.");if(typeof e!="number")throw new w("c is a required number.");let n;if(t===0)return r===0?[]:[-e/r];if(r===0){if(e===0)return[0,0];let u=Math.abs(e),f=Math.abs(t);if(u<f&&u/f<y.EPSILON14)return[0,0];if(u>f&&f/u<y.EPSILON14)return[];if(n=-e/t,n<0)return[];let h=Math.sqrt(n);return[-h,h]}else if(e===0)return n=-r/t,n<0?[n,0]:[0,n];let o=r*r,s=4*t*e,c=mt(o,-s,y.EPSILON14);if(c<0)return[];let a=-.5*mt(r,y.sign(r)*Math.sqrt(c),y.EPSILON14);return r>0?[a/t,e/a]:[e/a,a/t]};var z=tt;var et={};et.computeDiscriminant=function(t,r,e,n){if(typeof t!="number")throw new w("a is a required number.");if(typeof r!="number")throw new w("b is a required number.");if(typeof e!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");let o=t*t,s=r*r,c=e*e,a=n*n;return 18*t*r*e*n+s*c-27*o*a-4*(t*c*e+s*r*n)};function nt(t,r,e,n){let o=t,s=r/3,c=e/3,a=n,u=o*c,f=s*a,h=s*s,d=c*c,p=o*c-h,q=o*a-s*c,m=s*a-d,l=4*p*m-q*q,E,x;if(l<0){let F,G,_;h*f>=u*d?(F=o,G=p,_=-2*s*p+o*q):(F=a,G=m,_=-a*q+2*c*m);let ut=-(_<0?-1:1)*Math.abs(F)*Math.sqrt(-l);x=-_+ut;let J=x/2,Y=J<0?-Math.pow(-J,1/3):Math.pow(J,1/3),K=x===ut?-Y:-G/Y;return E=G<=0?Y+K:-_/(Y*Y+K*K+G),h*f>=u*d?[(E-s)/o]:[-a/(E+c)]}let v=p,W=-2*s*p+o*q,L=m,B=-a*q+2*c*m,I=Math.sqrt(l),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*I,-W)/3);E=2*Math.sqrt(-v);let R=Math.cos(P);x=E*R;let S=E*(-R/2-C*Math.sin(P)),M=x+S>2*s?x-s:S-s,N=o,D=M/N;P=Math.abs(Math.atan2(a*I,-B)/3),E=2*Math.sqrt(-L),R=Math.cos(P),x=E*R,S=E*(-R/2-C*Math.sin(P));let k=-a,Z=x+S<2*c?x+c:S+c,A=k/Z,Rt=N*Z,at=-M*Z-N*k,bt=M*k,V=(c*at-s*bt)/(-s*at+c*Rt);return D<=V?D<=A?V<=A?[D,V,A]:[D,A,V]:[A,D,V]:D<=A?[V,D,A]:V<=A?[V,A,D]:[A,V,D]}et.computeRealRoots=function(t,r,e,n){if(typeof t!="number")throw new w("a is a required number.");if(typeof r!="number")throw new w("b is a required number.");if(typeof e!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");let o,s;if(t===0)return z.computeRealRoots(r,e,n);if(r===0){if(e===0){if(n===0)return[0,0,0];s=-n/t;let c=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3);return[c,c,c]}else if(n===0)return o=z.computeRealRoots(t,0,e),o.Length===0?[0]:[o[0],0,o[1]];return nt(t,0,e,n)}else{if(e===0)return n===0?(s=-r/t,s<0?[s,0,0]:[0,0,s]):nt(t,r,0,n);if(n===0)return o=z.computeRealRoots(t,r,e),o.length===0?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]}return nt(t,r,e,n)};var H=et;var rt={};rt.computeDiscriminant=function(t,r,e,n,o){if(typeof t!="number")throw new w("a is a required number.");if(typeof r!="number")throw new w("b is a required number.");if(typeof e!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");if(typeof o!="number")throw new w("e is a required number.");let s=t*t,c=s*t,a=r*r,u=a*r,f=e*e,h=f*e,d=n*n,p=d*n,q=o*o,m=q*o;return a*f*d-4*u*p-4*t*h*d+18*t*r*e*p-27*s*d*d+256*c*m+o*(18*u*e*n-4*a*h+16*t*f*f-80*t*r*f*n-6*t*a*d+144*s*e*d)+q*(144*t*a*e-27*a*a-128*s*f-192*s*r*n)};function T(t,r,e,n){let o=t*t,s=r-3*o/8,c=e-r*t/2+o*t/8,a=n-e*t/4+r*o/16-3*o*o/256,u=H.computeRealRoots(1,2*s,s*s-4*a,-c*c);if(u.length>0){let f=-t/4,h=u[u.length-1];if(Math.abs(h)<y.EPSILON14){let d=z.computeRealRoots(1,s,a);if(d.length===2){let p=d[0],q=d[1],m;if(p>=0&&q>=0){let l=Math.sqrt(p),E=Math.sqrt(q);return[f-E,f-l,f+l,f+E]}else{if(p>=0&&q<0)return m=Math.sqrt(p),[f-m,f+m];if(p<0&&q>=0)return m=Math.sqrt(q),[f-m,f+m]}}return[]}else if(h>0){let d=Math.sqrt(h),p=(s+h-c/d)/2,q=(s+h+c/d)/2,m=z.computeRealRoots(1,d,p),l=z.computeRealRoots(1,-d,q);return m.length!==0?(m[0]+=f,m[1]+=f,l.length!==0?(l[0]+=f,l[1]+=f,m[1]<=l[0]?[m[0],m[1],l[0],l[1]]:l[1]<=m[0]?[l[0],l[1],m[0],m[1]]:m[0]>=l[0]&&m[1]<=l[1]?[l[0],m[0],m[1],l[1]]:l[0]>=m[0]&&l[1]<=m[1]?[m[0],l[0],l[1],m[1]]:m[0]>l[0]&&m[0]<l[1]?[l[0],m[0],l[1],m[1]]:[m[0],l[0],m[1],l[1]]):m):l.length!==0?(l[0]+=f,l[1]+=f,l):[]}}return[]}function j(t,r,e,n){let o=e*e,s=r*r,c=t*t,a=-2*r,u=e*t+s-4*n,f=c*n-e*r*t+o,h=H.computeRealRoots(1,a,u,f);if(h.length>0){let d=h[0],p=r-d,q=p*p,m=t/2,l=p/2,E=q-4*n,x=q+4*Math.abs(n),v=c-4*d,W=c+4*Math.abs(d),L,B;if(d<0||E*W<v*x){let N=Math.sqrt(v);L=N/2,B=N===0?0:(t*l-e)/N}else{let N=Math.sqrt(E);L=N===0?0:(t*l-e)/N,B=N/2}let I,C;m===0&&L===0?(I=0,C=0):y.sign(m)===y.sign(L)?(I=m+L,C=d/I):(C=m-L,I=d/C);let P,R;l===0&&B===0?(P=0,R=0):y.sign(l)===y.sign(B)?(P=l+B,R=n/P):(R=l-B,P=n/R);let S=z.computeRealRoots(1,I,P),M=z.computeRealRoots(1,C,R);if(S.length!==0)return M.length!==0?S[1]<=M[0]?[S[0],S[1],M[0],M[1]]:M[1]<=S[0]?[M[0],M[1],S[0],S[1]]:S[0]>=M[0]&&S[1]<=M[1]?[M[0],S[0],S[1],M[1]]:M[0]>=S[0]&&M[1]<=S[1]?[S[0],M[0],M[1],S[1]]:S[0]>M[0]&&S[0]<M[1]?[M[0],S[0],M[1],S[1]]:[S[0],M[0],S[1],M[1]]:S;if(M.length!==0)return M}return[]}rt.computeRealRoots=function(t,r,e,n,o){if(typeof t!="number")throw new w("a is a required number.");if(typeof r!="number")throw new w("b is a required number.");if(typeof e!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");if(typeof o!="number")throw new w("e is a required number.");if(Math.abs(t)<y.EPSILON15)return H.computeRealRoots(r,e,n,o);let s=r/t,c=e/t,a=n/t,u=o/t,f=s<0?1:0;switch(f+=c<0?f+1:f,f+=a<0?f+1:f,f+=u<0?f+1:f,f){case 0:return T(s,c,a,u);case 1:return j(s,c,a,u);case 2:return j(s,c,a,u);case 3:return T(s,c,a,u);case 4:return T(s,c,a,u);case 5:return j(s,c,a,u);case 6:return T(s,c,a,u);case 7:return T(s,c,a,u);case 8:return j(s,c,a,u);case 9:return T(s,c,a,u);case 10:return T(s,c,a,u);case 11:return j(s,c,a,u);case 12:return T(s,c,a,u);case 13:return T(s,c,a,u);case 14:return T(s,c,a,u);case 15:return T(s,c,a,u);default:return}};var dt=rt;var ot=class t{constructor(r,e){e=i.clone(e??i.ZERO),i.equals(e,i.ZERO)||i.normalize(e,e),this.origin=i.clone(r??i.ZERO),this.direction=e}static clone(r,e){if(g(r))return g(e)?(e.origin=i.clone(r.origin),e.direction=i.clone(r.direction),e):new t(r.origin,r.direction)}static getPoint(r,e,n){return $.typeOf.object("ray",r),$.typeOf.number("t",e),g(n)||(n=new i),n=i.multiplyByScalar(r.direction,e,n),i.add(r.origin,n,n)}},it=ot;var O={};O.rayPlane=function(t,r,e){if(!g(t))throw new w("ray is required.");if(!g(r))throw new w("plane is required.");g(e)||(e=new i);let n=t.origin,o=t.direction,s=r.normal,c=i.dot(s,o);if(Math.abs(c)<y.EPSILON15)return;let a=(-r.distance-i.dot(s,n))/c;if(!(a<0))return e=i.multiplyByScalar(o,a,e),i.add(n,e,e)};var Ot=new i,Pt=new i,Mt=new i,ht=new i,lt=new i;O.rayTriangleParametric=function(t,r,e,n,o){if(!g(t))throw new w("ray is required.");if(!g(r))throw new w("p0 is required.");if(!g(e))throw new w("p1 is required.");if(!g(n))throw new w("p2 is required.");o=o??!1;let s=t.origin,c=t.direction,a=i.subtract(e,r,Ot),u=i.subtract(n,r,Pt),f=i.cross(c,u,Mt),h=i.dot(a,f),d,p,q,m,l;if(o){if(h<y.EPSILON6||(d=i.subtract(s,r,ht),q=i.dot(d,f),q<0||q>h)||(p=i.cross(d,a,lt),m=i.dot(c,p),m<0||q+m>h))return;l=i.dot(u,p)/h}else{if(Math.abs(h)<y.EPSILON6)return;let E=1/h;if(d=i.subtract(s,r,ht),q=i.dot(d,f)*E,q<0||q>1||(p=i.cross(d,a,lt),m=i.dot(c,p)*E,m<0||q+m>1))return;l=i.dot(u,p)*E}return l};O.rayTriangle=function(t,r,e,n,o,s){let c=O.rayTriangleParametric(t,r,e,n,o);if(!(!g(c)||c<0))return g(s)||(s=new i),i.multiplyByScalar(t.direction,c,s),i.add(t.origin,s,s)};var Et=new it;O.lineSegmentTriangle=function(t,r,e,n,o,s,c){if(!g(t))throw new w("v0 is required.");if(!g(r))throw new w("v1 is required.");if(!g(e))throw new w("p0 is required.");if(!g(n))throw new w("p1 is required.");if(!g(o))throw new w("p2 is required.");let a=Et;i.clone(t,a.origin),i.subtract(r,t,a.direction),i.normalize(a.direction,a.direction);let u=O.rayTriangleParametric(a,e,n,o,s);if(!(!g(u)||u<0||u>i.distance(t,r)))return g(c)||(c=new i),i.multiplyByScalar(a.direction,u,c),i.add(a.origin,c,c)};function Ct(t,r,e,n){let o=r*r-4*t*e;if(o<0)return;if(o>0){let c=1/(2*t),a=Math.sqrt(o),u=(-r+a)*c,f=(-r-a)*c;return u<f?(n.root0=u,n.root1=f):(n.root0=f,n.root1=u),n}let s=-r/(2*t);if(s!==0)return n.root0=n.root1=s,n}var Nt={root0:0,root1:0};function yt(t,r,e){g(e)||(e=new U);let n=t.origin,o=t.direction,s=r.center,c=r.radius*r.radius,a=i.subtract(n,s,Mt),u=i.dot(o,o),f=2*i.dot(o,a),h=i.magnitudeSquared(a)-c,d=Ct(u,f,h,Nt);if(g(d))return e.start=d.root0,e.stop=d.root1,e}O.raySphere=function(t,r,e){if(!g(t))throw new w("ray is required.");if(!g(r))throw new w("sphere is required.");if(e=yt(t,r,e),!(!g(e)||e.stop<0))return e.start=Math.max(e.start,0),e};var Lt=new it;O.lineSegmentSphere=function(t,r,e,n){if(!g(t))throw new w("p0 is required.");if(!g(r))throw new w("p1 is required.");if(!g(e))throw new w("sphere is required.");let o=Lt;i.clone(t,o.origin);let s=i.subtract(r,t,o.direction),c=i.magnitude(s);if(i.normalize(s,s),n=yt(o,e,n),!(!g(n)||n.stop<0||n.start>c))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,c),n};var It=new i,xt=new i;O.rayEllipsoid=function(t,r){if(!g(t))throw new w("ray is required.");if(!g(r))throw new w("ellipsoid is required.");let e=r.oneOverRadii,n=i.multiplyComponents(e,t.origin,It),o=i.multiplyComponents(e,t.direction,xt),s=i.magnitudeSquared(n),c=i.dot(n,o),a,u,f,h,d;if(s>1){if(c>=0)return;let p=c*c;if(a=s-1,u=i.magnitudeSquared(o),f=u*a,p<f)return;if(p>f){h=c*c-f,d=-c+Math.sqrt(h);let m=d/u,l=a/d;return m<l?new U(m,l):{start:l,stop:m}}let q=Math.sqrt(a/u);return new U(q,q)}else if(s<1)return a=s-1,u=i.magnitudeSquared(o),f=u*a,h=c*c-f,d=-c+Math.sqrt(h),new U(0,d/u);if(c<0)return u=i.magnitudeSquared(o),new U(0,-c/u)};var Bt=new U,Dt=new U,zt=new U;O.rayAxisAlignedBoundingBox=function(t,r,e){if(!g(t))throw new w("ray is required.");if(!g(r))throw new w("box is required.");g(e)||(e=new U);let n=st(t.origin.x,t.direction.x,r.minimum.x,r.maximum.x,Bt),o=st(t.origin.y,t.direction.y,r.minimum.y,r.maximum.y,Dt),s=st(t.origin.z,t.direction.z,r.minimum.z,r.maximum.z,zt);if(e.start=n.start>o.start?n.start:o.start,e.stop=n.stop<o.stop?n.stop:o.stop,!(n.start>o.stop||o.start>n.stop)&&!(e.start>s.stop||s.start>e.stop))return s.start>e.start&&(e.start=s.start),s.stop<e.stop&&(e.stop=s.stop),e};function st(t,r,e,n,o){if(o.start=(e-t)/r,o.stop=(n-t)/r,o.stop<o.start){let s=o.stop;o.stop=o.start,o.start=s}return o}function Q(t,r,e){let n=t+r;return y.sign(t)!==y.sign(r)&&Math.abs(n/Math.max(Math.abs(t),Math.abs(r)))<e?0:n}O.quadraticVectorExpression=function(t,r,e,n,o){let s=n*n,c=o*o,a=(t[b.COLUMN1ROW1]-t[b.COLUMN2ROW2])*c,u=o*(n*Q(t[b.COLUMN1ROW0],t[b.COLUMN0ROW1],y.EPSILON15)+r.y),f=t[b.COLUMN0ROW0]*s+t[b.COLUMN2ROW2]*c+n*r.x+e,h=c*Q(t[b.COLUMN2ROW1],t[b.COLUMN1ROW2],y.EPSILON15),d=o*(n*Q(t[b.COLUMN2ROW0],t[b.COLUMN0ROW2])+r.z),p,q=[];if(d===0&&h===0){if(p=z.computeRealRoots(a,u,f),p.length===0)return q;let P=p[0],R=Math.sqrt(Math.max(1-P*P,0));if(q.push(new i(n,o*P,o*-R)),q.push(new i(n,o*P,o*R)),p.length===2){let S=p[1],M=Math.sqrt(Math.max(1-S*S,0));q.push(new i(n,o*S,o*-M)),q.push(new i(n,o*S,o*M))}return q}let m=d*d,l=h*h,E=a*a,x=d*h,v=E+l,W=2*(u*a+x),L=2*f*a+u*u-l+m,B=2*(f*u-x),I=f*f-m;if(v===0&&W===0&&L===0&&B===0)return q;p=dt.computeRealRoots(v,W,L,B,I);let C=p.length;if(C===0)return q;for(let P=0;P<C;++P){let R=p[P],S=R*R,M=Math.max(1-S,0),N=Math.sqrt(M),D;y.sign(a)===y.sign(f)?D=Q(a*S+f,u*R,y.EPSILON12):y.sign(f)===y.sign(u*R)?D=Q(a*S,u*R+f,y.EPSILON12):D=Q(a*S+u*R,f,y.EPSILON12);let k=Q(h*R,d,y.EPSILON15),Z=D*k;Z<0?q.push(new i(n,o*R,o*N)):Z>0?q.push(new i(n,o*R,o*-N)):N!==0?(q.push(new i(n,o*R,o*-N)),q.push(new i(n,o*R,o*N)),++P):q.push(new i(n,o*R,o*N))}return q};var ct=new i,wt=new i,qt=new i,X=new i,Tt=new i,vt=new b,Wt=new b,At=new b,Ut=new b,Vt=new b,gt=new b,pt=new b,St=new i,Qt=new i,Zt=new ft;O.grazingAltitudeLocation=function(t,r){if(!g(t))throw new w("ray is required.");if(!g(r))throw new w("ellipsoid is required.");let e=t.origin,n=t.direction;if(!i.equals(e,i.ZERO)){let I=r.geodeticSurfaceNormal(e,ct);if(i.dot(n,I)>=0)return e}let o=g(this.rayEllipsoid(t,r)),s=r.transformPositionToScaledSpace(n,ct),c=i.normalize(s,s),a=i.mostOrthogonalAxis(s,X),u=i.normalize(i.cross(a,c,wt),wt),f=i.normalize(i.cross(c,u,qt),qt),h=vt;h[0]=c.x,h[1]=c.y,h[2]=c.z,h[3]=u.x,h[4]=u.y,h[5]=u.z,h[6]=f.x,h[7]=f.y,h[8]=f.z;let d=b.transpose(h,Wt),p=b.fromScale(r.radii,At),q=b.fromScale(r.oneOverRadii,Ut),m=Vt;m[0]=0,m[1]=-n.z,m[2]=n.y,m[3]=n.z,m[4]=0,m[5]=-n.x,m[6]=-n.y,m[7]=n.x,m[8]=0;let l=b.multiply(b.multiply(d,q,gt),m,gt),E=b.multiply(b.multiply(l,p,pt),h,pt),x=b.multiplyByVector(l,e,Tt),v=O.quadraticVectorExpression(E,i.negate(x,ct),0,0,1),W,L,B=v.length;if(B>0){let I=i.clone(i.ZERO,Qt),C=Number.NEGATIVE_INFINITY;for(let R=0;R<B;++R){W=b.multiplyByVector(p,b.multiplyByVector(h,v[R],St),St);let S=i.normalize(i.subtract(W,e,X),X),M=i.dot(S,n);M>C&&(C=M,I=i.clone(W,I))}let P=r.cartesianToCartographic(I,Zt);return C=y.clamp(C,0,1),L=i.magnitude(i.subtract(I,e,X))*Math.sqrt(1-C*C),L=o?-L:L,P.height=L,r.cartographicToCartesian(P,new i)}};var kt=new i;O.lineSegmentPlane=function(t,r,e,n){if(!g(t))throw new w("endPoint0 is required.");if(!g(r))throw new w("endPoint1 is required.");if(!g(e))throw new w("plane is required.");g(n)||(n=new i);let o=i.subtract(r,t,kt),s=e.normal,c=i.dot(s,o);if(Math.abs(c)<y.EPSILON6)return;let a=i.dot(s,t),u=-(e.distance+a)/c;if(!(u<0||u>1))return i.multiplyByScalar(o,u,n),i.add(t,n,n),n};O.trianglePlaneIntersection=function(t,r,e,n){if(!g(t)||!g(r)||!g(e)||!g(n))throw new w("p0, p1, p2, and plane are required.");let o=n.normal,s=n.distance,c=i.dot(o,t)+s<0,a=i.dot(o,r)+s<0,u=i.dot(o,e)+s<0,f=0;f+=c?1:0,f+=a?1:0,f+=u?1:0;let h,d;if((f===1||f===2)&&(h=new i,d=new i),f===1){if(c)return O.lineSegmentPlane(t,r,n,h),O.lineSegmentPlane(t,e,n,d),{positions:[t,r,e,h,d],indices:[0,3,4,1,2,4,1,4,3]};if(a)return O.lineSegmentPlane(r,e,n,h),O.lineSegmentPlane(r,t,n,d),{positions:[t,r,e,h,d],indices:[1,3,4,2,0,4,2,4,3]};if(u)return O.lineSegmentPlane(e,t,n,h),O.lineSegmentPlane(e,r,n,d),{positions:[t,r,e,h,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(f===2)if(c)if(a){if(!u)return O.lineSegmentPlane(t,e,n,h),O.lineSegmentPlane(r,e,n,d),{positions:[t,r,e,h,d],indices:[0,1,4,0,4,3,2,3,4]}}else return O.lineSegmentPlane(e,r,n,h),O.lineSegmentPlane(t,r,n,d),{positions:[t,r,e,h,d],indices:[2,0,4,2,4,3,1,3,4]};else return O.lineSegmentPlane(r,t,n,h),O.lineSegmentPlane(e,t,n,d),{positions:[t,r,e,h,d],indices:[1,2,4,1,4,3,0,3,4]}};var gn=O;export{it as a,gn as b}; diff --git a/cesium/Workers/chunk-TCOMWBL2.js b/cesium/Workers/chunk-TCOMWBL2.js new file mode 100644 index 00000000..342d1a06 --- /dev/null +++ b/cesium/Workers/chunk-TCOMWBL2.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as ct}from"./chunk-37ETYCYM.js";import{b as xt,c as ht,d as et}from"./chunk-A4I25VN7.js";import{a as tt}from"./chunk-ATKJRN2G.js";import{a as ft}from"./chunk-RDX4QSUS.js";import{a as Y,b as g,c as gt}from"./chunk-2AIOP76V.js";import{a as h}from"./chunk-IAE6APK2.js";import{a as X}from"./chunk-3E7FIXV7.js";import{b as A}from"./chunk-NZBME2JK.js";import{f as F}from"./chunk-6DLS2UKD.js";var nt={CLOCKWISE:ft.CW,COUNTER_CLOCKWISE:ft.CCW};nt.validate=function(t){return t===nt.CLOCKWISE||t===nt.COUNTER_CLOCKWISE};Object.freeze(nt);var at=nt;function mt(t,n,e=2){let o=n&&n.length,r=o?n[0]*e:t.length,s=wt(t,0,r,e,!0),i=[];if(!s||s.next===s.prev)return i;let c,x,u;if(o&&(s=It(t,n,s,e)),t.length>80*e){c=t[0],x=t[1];let p=c,y=x;for(let b=e;b<r;b+=e){let S=t[b],a=t[b+1];S<c&&(c=S),a<x&&(x=a),S>p&&(p=S),a>y&&(y=a)}u=Math.max(p-c,y-x),u=u!==0?32767/u:0}return it(s,i,e,c,x,u,0),i}function wt(t,n,e,o,r){let s;if(r===Vt(t,n,e,o)>0)for(let i=n;i<e;i+=o)s=vt(i/o|0,t[i],t[i+1],s);else for(let i=e-o;i>=n;i-=o)s=vt(i/o|0,t[i],t[i+1],s);return s&&K(s,s.next)&&(st(s),s=s.next),s}function N(t,n){if(!t)return t;n||(n=t);let e=t,o;do if(o=!1,!e.steiner&&(K(e,e.next)||w(e.prev,e,e.next)===0)){if(st(e),e=n=e.prev,e===e.next)break;o=!0}else e=e.next;while(o||e!==n);return n}function it(t,n,e,o,r,s,i){if(!t)return;!i&&s&&Nt(t,o,r,s);let c=t;for(;t.prev!==t.next;){let x=t.prev,u=t.next;if(s?Rt(t,o,r,s):Pt(t)){n.push(x.i,t.i,u.i),st(t),t=u.next,c=u.next;continue}if(t=u,t===c){i?i===1?(t=zt(N(t),n),it(t,n,e,o,r,s,2)):i===2&&Bt(t,n,e,o,r,s):it(N(t),n,e,o,r,s,1);break}}}function Pt(t){let n=t.prev,e=t,o=t.next;if(w(n,e,o)>=0)return!1;let r=n.x,s=e.x,i=o.x,c=n.y,x=e.y,u=o.y,p=Math.min(r,s,i),y=Math.min(c,x,u),b=Math.max(r,s,i),S=Math.max(c,x,u),a=o.next;for(;a!==n;){if(a.x>=p&&a.x<=b&&a.y>=y&&a.y<=S&&rt(r,c,s,x,i,u,a.x,a.y)&&w(a.prev,a,a.next)>=0)return!1;a=a.next}return!0}function Rt(t,n,e,o){let r=t.prev,s=t,i=t.next;if(w(r,s,i)>=0)return!1;let c=r.x,x=s.x,u=i.x,p=r.y,y=s.y,b=i.y,S=Math.min(c,x,u),a=Math.min(p,y,b),T=Math.max(c,x,u),L=Math.max(p,y,b),z=pt(S,a,n,e,o),D=pt(T,L,n,e,o),l=t.prevZ,f=t.nextZ;for(;l&&l.z>=z&&f&&f.z<=D;){if(l.x>=S&&l.x<=T&&l.y>=a&&l.y<=L&&l!==r&&l!==i&&rt(c,p,x,y,u,b,l.x,l.y)&&w(l.prev,l,l.next)>=0||(l=l.prevZ,f.x>=S&&f.x<=T&&f.y>=a&&f.y<=L&&f!==r&&f!==i&&rt(c,p,x,y,u,b,f.x,f.y)&&w(f.prev,f,f.next)>=0))return!1;f=f.nextZ}for(;l&&l.z>=z;){if(l.x>=S&&l.x<=T&&l.y>=a&&l.y<=L&&l!==r&&l!==i&&rt(c,p,x,y,u,b,l.x,l.y)&&w(l.prev,l,l.next)>=0)return!1;l=l.prevZ}for(;f&&f.z<=D;){if(f.x>=S&&f.x<=T&&f.y>=a&&f.y<=L&&f!==r&&f!==i&&rt(c,p,x,y,u,b,f.x,f.y)&&w(f.prev,f,f.next)>=0)return!1;f=f.nextZ}return!0}function zt(t,n){let e=t;do{let o=e.prev,r=e.next.next;!K(o,r)&&bt(o,e,e.next,r)&&ot(o,r)&&ot(r,o)&&(n.push(o.i,e.i,r.i),st(e),st(e.next),e=t=r),e=e.next}while(e!==t);return N(e)}function Bt(t,n,e,o,r,s){let i=t;do{let c=i.next.next;for(;c!==i.prev;){if(i.i!==c.i&&_t(i,c)){let x=Mt(i,c);i=N(i,i.next),x=N(x,x.next),it(i,n,e,o,r,s,0),it(x,n,e,o,r,s,0);return}c=c.next}i=i.next}while(i!==t)}function It(t,n,e,o){let r=[];for(let s=0,i=n.length;s<i;s++){let c=n[s]*o,x=s<i-1?n[s+1]*o:t.length,u=wt(t,c,x,o,!1);u===u.next&&(u.steiner=!0),r.push(Ut(u))}r.sort(Wt);for(let s=0;s<r.length;s++)e=$t(r[s],e);return e}function Wt(t,n){let e=t.x-n.x;if(e===0&&(e=t.y-n.y,e===0)){let o=(t.next.y-t.y)/(t.next.x-t.x),r=(n.next.y-n.y)/(n.next.x-n.x);e=o-r}return e}function $t(t,n){let e=Gt(t,n);if(!e)return n;let o=Mt(e,t);return N(o,o.next),N(e,e.next)}function Gt(t,n){let e=n,o=t.x,r=t.y,s=-1/0,i;if(K(t,e))return e;do{if(K(t,e.next))return e.next;if(r<=e.y&&r>=e.next.y&&e.next.y!==e.y){let y=e.x+(r-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(y<=o&&y>s&&(s=y,i=e.x<e.next.x?e:e.next,y===o))return i}e=e.next}while(e!==n);if(!i)return null;let c=i,x=i.x,u=i.y,p=1/0;e=i;do{if(o>=e.x&&e.x>=x&&o!==e.x&&St(r<u?o:s,r,x,u,r<u?s:o,r,e.x,e.y)){let y=Math.abs(r-e.y)/(o-e.x);ot(e,t)&&(y<p||y===p&&(e.x>i.x||e.x===i.x&&Ht(i,e)))&&(i=e,p=y)}e=e.next}while(e!==c);return i}function Ht(t,n){return w(t.prev,t,n.prev)<0&&w(n.next,t,t.next)<0}function Nt(t,n,e,o){let r=t;do r.z===0&&(r.z=pt(r.x,r.y,n,e,o)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,kt(r)}function kt(t){let n,e=1;do{let o=t,r;t=null;let s=null;for(n=0;o;){n++;let i=o,c=0;for(let u=0;u<e&&(c++,i=i.nextZ,!!i);u++);let x=e;for(;c>0||x>0&&i;)c!==0&&(x===0||!i||o.z<=i.z)?(r=o,o=o.nextZ,c--):(r=i,i=i.nextZ,x--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;o=i}s.nextZ=null,e*=2}while(n>1);return t}function pt(t,n,e,o,r){return t=(t-e)*r|0,n=(n-o)*r|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,t|n<<1}function Ut(t){let n=t,e=t;do(n.x<e.x||n.x===e.x&&n.y<e.y)&&(e=n),n=n.next;while(n!==t);return e}function St(t,n,e,o,r,s,i,c){return(r-i)*(n-c)>=(t-i)*(s-c)&&(t-i)*(o-c)>=(e-i)*(n-c)&&(e-i)*(s-c)>=(r-i)*(o-c)}function rt(t,n,e,o,r,s,i,c){return!(t===i&&n===c)&&St(t,n,e,o,r,s,i,c)}function _t(t,n){return t.next.i!==n.i&&t.prev.i!==n.i&&!Kt(t,n)&&(ot(t,n)&&ot(n,t)&&jt(t,n)&&(w(t.prev,t,n.prev)||w(t,n.prev,n))||K(t,n)&&w(t.prev,t,t.next)>0&&w(n.prev,n,n.next)>0)}function w(t,n,e){return(n.y-t.y)*(e.x-n.x)-(n.x-t.x)*(e.y-n.y)}function K(t,n){return t.x===n.x&&t.y===n.y}function bt(t,n,e,o){let r=lt(w(t,n,e)),s=lt(w(t,n,o)),i=lt(w(e,o,t)),c=lt(w(e,o,n));return!!(r!==s&&i!==c||r===0&&ut(t,e,n)||s===0&&ut(t,o,n)||i===0&&ut(e,t,o)||c===0&&ut(e,n,o))}function ut(t,n,e){return n.x<=Math.max(t.x,e.x)&&n.x>=Math.min(t.x,e.x)&&n.y<=Math.max(t.y,e.y)&&n.y>=Math.min(t.y,e.y)}function lt(t){return t>0?1:t<0?-1:0}function Kt(t,n){let e=t;do{if(e.i!==t.i&&e.next.i!==t.i&&e.i!==n.i&&e.next.i!==n.i&&bt(e,e.next,t,n))return!0;e=e.next}while(e!==t);return!1}function ot(t,n){return w(t.prev,t,t.next)<0?w(t,n,t.next)>=0&&w(t,t.prev,n)>=0:w(t,n,t.prev)<0||w(t,t.next,n)<0}function jt(t,n){let e=t,o=!1,r=(t.x+n.x)/2,s=(t.y+n.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&r<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(o=!o),e=e.next;while(e!==t);return o}function Mt(t,n){let e=yt(t.i,t.x,t.y),o=yt(n.i,n.x,n.y),r=t.next,s=n.prev;return t.next=n,n.prev=t,e.next=r,r.prev=e,o.next=e,e.prev=o,s.next=o,o.prev=s,o}function vt(t,n,e,o){let r=yt(t,n,e);return o?(r.next=o.next,r.prev=o,o.next.prev=r,o.next=r):(r.prev=r,r.next=r),r}function st(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function yt(t,n,e){return{i:t,x:n,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function Vt(t,n,e,o){let r=0;for(let s=n,i=e-o;s<e;s+=o)r+=(t[i]-t[s])*(t[s+1]+t[i+1]),i=s;return r}var qt=new h,Jt=new h,B={};B.computeArea2D=function(t){A.defined("positions",t),A.typeOf.number.greaterThanOrEquals("positions.length",t.length,3);let n=t.length,e=0;for(let o=n-1,r=0;r<n;o=r++){let s=t[o],i=t[r];e+=s.x*i.y-i.x*s.y}return e*.5};B.computeWindingOrder2D=function(t){return B.computeArea2D(t)>0?at.COUNTER_CLOCKWISE:at.CLOCKWISE};B.triangulate=function(t,n){A.defined("positions",t);let e=g.packArray(t);return mt(e,n,2)};var Tt=new h,Ot=new h,Zt=new h,At=new h,Ct=new h,Et=new h,R=new h,Lt=new g,Ft=new g,Dt=new g,j=new g;B.computeSubdivision=function(t,n,e,o,r){r=r??X.RADIANS_PER_DEGREE;let s=F(o);A.typeOf.object("ellipsoid",t),A.defined("positions",n),A.defined("indices",e),A.typeOf.number.greaterThanOrEquals("indices.length",e.length,3),A.typeOf.number.equals("indices.length % 3","0",e.length%3,0),A.typeOf.number.greaterThan("granularity",r,0);let i=e.slice(0),c,x=n.length,u=new Array(x*3),p=new Array(x*2),y=0,b=0;for(c=0;c<x;c++){let l=n[c];if(u[y++]=l.x,u[y++]=l.y,u[y++]=l.z,s){let f=o[c];p[b++]=f.x,p[b++]=f.y}}let S=[],a={},T=t.maximumRadius,L=X.chordLength(r,T),z=L*L;for(;i.length>0;){let l=i.pop(),f=i.pop(),m=i.pop(),M=h.fromArray(u,m*3,Tt),C=h.fromArray(u,f*3,Ot),V=h.fromArray(u,l*3,Zt),q,J,I;s&&(q=g.fromArray(p,m*2,Lt),J=g.fromArray(p,f*2,Ft),I=g.fromArray(p,l*2,Dt));let k=h.multiplyByScalar(h.normalize(M,At),T,At),U=h.multiplyByScalar(h.normalize(C,Ct),T,Ct),W=h.multiplyByScalar(h.normalize(V,Et),T,Et),$=h.magnitudeSquared(h.subtract(k,U,R)),G=h.magnitudeSquared(h.subtract(U,W,R)),Q=h.magnitudeSquared(h.subtract(W,k,R)),H=Math.max($,G,Q),O,v,d;H>z?$===H?(O=`${Math.min(m,f)} ${Math.max(m,f)}`,c=a[O],F(c)||(v=h.add(M,C,R),h.multiplyByScalar(v,.5,v),u.push(v.x,v.y,v.z),c=u.length/3-1,a[O]=c,s&&(d=g.add(q,J,j),g.multiplyByScalar(d,.5,d),p.push(d.x,d.y))),i.push(m,c,l),i.push(c,f,l)):G===H?(O=`${Math.min(f,l)} ${Math.max(f,l)}`,c=a[O],F(c)||(v=h.add(C,V,R),h.multiplyByScalar(v,.5,v),u.push(v.x,v.y,v.z),c=u.length/3-1,a[O]=c,s&&(d=g.add(J,I,j),g.multiplyByScalar(d,.5,d),p.push(d.x,d.y))),i.push(f,c,m),i.push(c,l,m)):Q===H&&(O=`${Math.min(l,m)} ${Math.max(l,m)}`,c=a[O],F(c)||(v=h.add(V,M,R),h.multiplyByScalar(v,.5,v),u.push(v.x,v.y,v.z),c=u.length/3-1,a[O]=c,s&&(d=g.add(I,q,j),g.multiplyByScalar(d,.5,d),p.push(d.x,d.y))),i.push(l,c,f),i.push(c,m,f)):(S.push(m),S.push(f),S.push(l))}let D={attributes:{position:new et({componentDatatype:tt.DOUBLE,componentsPerAttribute:3,values:u})},indices:S,primitiveType:xt.TRIANGLES};return s&&(D.attributes.st=new et({componentDatatype:tt.FLOAT,componentsPerAttribute:2,values:p})),new ht(D)};var Qt=new Y,Xt=new Y,Yt=new Y,dt=new Y;B.computeRhumbLineSubdivision=function(t,n,e,o,r){r=r??X.RADIANS_PER_DEGREE;let s=F(o);A.typeOf.object("ellipsoid",t),A.defined("positions",n),A.defined("indices",e),A.typeOf.number.greaterThanOrEquals("indices.length",e.length,3),A.typeOf.number.equals("indices.length % 3","0",e.length%3,0),A.typeOf.number.greaterThan("granularity",r,0);let i=e.slice(0),c,x=n.length,u=new Array(x*3),p=new Array(x*2),y=0,b=0;for(c=0;c<x;c++){let m=n[c];if(u[y++]=m.x,u[y++]=m.y,u[y++]=m.z,s){let M=o[c];p[b++]=M.x,p[b++]=M.y}}let S=[],a={},T=t.maximumRadius,L=X.chordLength(r,T),z=new ct(void 0,void 0,t),D=new ct(void 0,void 0,t),l=new ct(void 0,void 0,t);for(;i.length>0;){let m=i.pop(),M=i.pop(),C=i.pop(),V=h.fromArray(u,C*3,Tt),q=h.fromArray(u,M*3,Ot),J=h.fromArray(u,m*3,Zt),I,k,U;s&&(I=g.fromArray(p,C*2,Lt),k=g.fromArray(p,M*2,Ft),U=g.fromArray(p,m*2,Dt));let W=t.cartesianToCartographic(V,Qt),$=t.cartesianToCartographic(q,Xt),G=t.cartesianToCartographic(J,Yt);z.setEndPoints(W,$);let Q=z.surfaceDistance;D.setEndPoints($,G);let H=D.surfaceDistance;l.setEndPoints(G,W);let O=l.surfaceDistance,v=Math.max(Q,H,O),d,P,_,Z,E;v>L?Q===v?(d=`${Math.min(C,M)} ${Math.max(C,M)}`,c=a[d],F(c)||(P=z.interpolateUsingFraction(.5,dt),_=(W.height+$.height)*.5,Z=h.fromRadians(P.longitude,P.latitude,_,t,R),u.push(Z.x,Z.y,Z.z),c=u.length/3-1,a[d]=c,s&&(E=g.add(I,k,j),g.multiplyByScalar(E,.5,E),p.push(E.x,E.y))),i.push(C,c,m),i.push(c,M,m)):H===v?(d=`${Math.min(M,m)} ${Math.max(M,m)}`,c=a[d],F(c)||(P=D.interpolateUsingFraction(.5,dt),_=($.height+G.height)*.5,Z=h.fromRadians(P.longitude,P.latitude,_,t,R),u.push(Z.x,Z.y,Z.z),c=u.length/3-1,a[d]=c,s&&(E=g.add(k,U,j),g.multiplyByScalar(E,.5,E),p.push(E.x,E.y))),i.push(M,c,C),i.push(c,m,C)):O===v&&(d=`${Math.min(m,C)} ${Math.max(m,C)}`,c=a[d],F(c)||(P=l.interpolateUsingFraction(.5,dt),_=(G.height+W.height)*.5,Z=h.fromRadians(P.longitude,P.latitude,_,t,R),u.push(Z.x,Z.y,Z.z),c=u.length/3-1,a[d]=c,s&&(E=g.add(U,I,j),g.multiplyByScalar(E,.5,E),p.push(E.x,E.y))),i.push(m,c,M),i.push(c,C,M)):(S.push(C),S.push(M),S.push(m))}let f={attributes:{position:new et({componentDatatype:tt.DOUBLE,componentsPerAttribute:3,values:u})},indices:S,primitiveType:xt.TRIANGLES};return s&&(f.attributes.st=new et({componentDatatype:tt.FLOAT,componentsPerAttribute:2,values:p})),new ht(f)};B.scaleToGeodeticHeight=function(t,n,e,o){e=e??gt.default;let r=qt,s=Jt;if(n=n??0,o=o??!0,F(t)){let i=t.length;for(let c=0;c<i;c+=3)h.fromArray(t,c,s),o&&(s=e.scaleToGeodeticSurface(s,s)),n!==0&&(r=e.geodeticSurfaceNormal(s,r),h.multiplyByScalar(r,n,r),h.add(s,r,s)),t[c]=s.x,t[c+1]=s.y,t[c+2]=s.z}return t};var de=B;export{at as a,de as b}; diff --git a/cesium/Workers/chunk-UA7PAMQQ.js b/cesium/Workers/chunk-UA7PAMQQ.js new file mode 100644 index 00000000..b945260e --- /dev/null +++ b/cesium/Workers/chunk-UA7PAMQQ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as g}from"./chunk-D3TVNJ6W.js";import{a as d}from"./chunk-3VUCSHGU.js";import{j as x}from"./chunk-LNJEJFV5.js";import{a as p,b as M,c as O}from"./chunk-2AIOP76V.js";import{b as m}from"./chunk-NZBME2JK.js";import{f}from"./chunk-6DLS2UKD.js";function n(i,h,o,t){this.x=i??0,this.y=h??0,this.width=o??0,this.height=t??0}n.packedLength=4;n.pack=function(i,h,o){return m.typeOf.object("value",i),m.defined("array",h),o=o??0,h[o++]=i.x,h[o++]=i.y,h[o++]=i.width,h[o]=i.height,h};n.unpack=function(i,h,o){return m.defined("array",i),h=h??0,f(o)||(o=new n),o.x=i[h++],o.y=i[h++],o.width=i[h++],o.height=i[h],o};n.fromPoints=function(i,h){if(f(h)||(h=new n),!f(i)||i.length===0)return h.x=0,h.y=0,h.width=0,h.height=0,h;let o=i.length,t=i[0].x,c=i[0].y,e=i[0].x,w=i[0].y;for(let y=1;y<o;y++){let R=i[y],b=R.x,j=R.y;t=Math.min(b,t),e=Math.max(b,e),c=Math.min(j,c),w=Math.max(j,w)}return h.x=t,h.y=c,h.width=e-t,h.height=w-c,h};var L=new g,X=new p,Y=new p;n.fromRectangle=function(i,h,o){if(f(o)||(o=new n),!f(i))return o.x=0,o.y=0,o.width=0,o.height=0,o;L._ellipsoid=O.default,h=h??L;let t=h.project(x.southwest(i,X)),c=h.project(x.northeast(i,Y));return M.subtract(c,t,c),o.x=t.x,o.y=t.y,o.width=c.x,o.height=c.y,o};n.clone=function(i,h){if(f(i))return f(h)?(h.x=i.x,h.y=i.y,h.width=i.width,h.height=i.height,h):new n(i.x,i.y,i.width,i.height)};n.union=function(i,h,o){m.typeOf.object("left",i),m.typeOf.object("right",h),f(o)||(o=new n);let t=Math.min(i.x,h.x),c=Math.min(i.y,h.y),e=Math.max(i.x+i.width,h.x+h.width),w=Math.max(i.y+i.height,h.y+h.height);return o.x=t,o.y=c,o.width=e-t,o.height=w-c,o};n.expand=function(i,h,o){m.typeOf.object("rectangle",i),m.typeOf.object("point",h),o=n.clone(i,o);let t=h.x-o.x,c=h.y-o.y;return t>o.width?o.width=t:t<0&&(o.width-=t,o.x=h.x),c>o.height?o.height=c:c<0&&(o.height-=c,o.y=h.y),o};n.intersect=function(i,h){m.typeOf.object("left",i),m.typeOf.object("right",h);let o=i.x,t=i.y,c=h.x,e=h.y;return o>c+h.width||o+i.width<c||t+i.height<e||t>e+h.height?d.OUTSIDE:d.INTERSECTING};n.equals=function(i,h){return i===h||f(i)&&f(h)&&i.x===h.x&&i.y===h.y&&i.width===h.width&&i.height===h.height};n.prototype.clone=function(i){return n.clone(this,i)};n.prototype.intersect=function(i){return n.intersect(this,i)};n.prototype.equals=function(i){return n.equals(this,i)};var S=n;export{S as a}; diff --git a/cesium/Workers/chunk-W5OEMTMB.js b/cesium/Workers/chunk-W5OEMTMB.js new file mode 100644 index 00000000..fcae51d0 --- /dev/null +++ b/cesium/Workers/chunk-W5OEMTMB.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as k}from"./chunk-4WQ4VT5S.js";import{a as T}from"./chunk-3E7FIXV7.js";import{a as d}from"./chunk-NZBME2JK.js";import{f as E}from"./chunk-6DLS2UKD.js";function a(){d.throwInstantiationError()}Object.defineProperties(a.prototype,{errorEvent:{get:d.throwInstantiationError},credit:{get:d.throwInstantiationError},tilingScheme:{get:d.throwInstantiationError},hasWaterMask:{get:d.throwInstantiationError},hasVertexNormals:{get:d.throwInstantiationError},availability:{get:d.throwInstantiationError}});var b=[];a.getRegularGridIndices=function(t,n){if(t*n>=T.FOUR_GIGABYTES)throw new d("The total number of vertices (width * height) must be less than 4,294,967,296.");let r=b[t];E(r)||(b[t]=r=[]);let e=r[n];return E(e)||(t*n<T.SIXTY_FOUR_KILOBYTES?e=r[n]=new Uint16Array((t-1)*(n-1)*6):e=r[n]=new Uint32Array((t-1)*(n-1)*6),v(t,n,e,0)),e};var N=[];a.getRegularGridIndicesAndEdgeIndices=function(t,n){if(t*n>=T.FOUR_GIGABYTES)throw new d("The total number of vertices (width * height) must be less than 4,294,967,296.");let r=N[t];E(r)||(N[t]=r=[]);let e=r[n];if(!E(e)){let i=a.getRegularGridIndices(t,n),s=w(t,n),o=s.westIndicesSouthToNorth,c=s.southIndicesEastToWest,I=s.eastIndicesNorthToSouth,u=s.northIndicesWestToEast;e=r[n]={indices:i,westIndicesSouthToNorth:o,southIndicesEastToWest:c,eastIndicesNorthToSouth:I,northIndicesWestToEast:u}}return e};var R=[];a.getRegularGridAndSkirtIndicesAndEdgeIndices=function(t,n){if(t*n>=T.FOUR_GIGABYTES)throw new d("The total number of vertices (width * height) must be less than 4,294,967,296.");let r=R[t];E(r)||(R[t]=r=[]);let e=r[n];if(!E(e)){let i=t*n,s=(t-1)*(n-1)*6,o=t*2+n*2,c=Math.max(0,o-4)*6,I=i+o,u=s+c,l=w(t,n),h=l.westIndicesSouthToNorth,x=l.southIndicesEastToWest,m=l.eastIndicesNorthToSouth,S=l.northIndicesWestToEast,g=k.createTypedArray(I,u);v(t,n,g,0),a.addSkirtIndices(h,x,m,S,i,g,s),e=r[n]={indices:g,westIndicesSouthToNorth:h,southIndicesEastToWest:x,eastIndicesNorthToSouth:m,northIndicesWestToEast:S,indexCountWithoutSkirts:s}}return e};a.getSkirtVertexCount=function(t,n,r,e){return t.length+n.length+r.length+e.length};a.getSkirtIndexCount=function(t){return(t-4)*2*3};a.getSkirtIndexCountWithFilledCorners=function(t){return((t-4)*2+4)*3};a.addSkirtIndices=function(t,n,r,e,i,s,o){let c=i;o=p(t,c,s,o),c+=t.length,o=p(n,c,s,o),c+=n.length,o=p(r,c,s,o),c+=r.length,p(e,c,s,o)};a.addSkirtIndicesWithFilledCorners=function(t,n,r,e,i,s,o){a.addSkirtIndices(t,n,r,e,i,s,o);let c=a.getSkirtVertexCount(t,n,r,e),I=a.getSkirtIndexCount(c),u=o+I,l=t[0],h=e[0],x=r[0],m=n[0],S=i,g=S+t.length-1,y=g+1,A=y+n.length-1,W=A+1,C=W+r.length-1,G=C+1,F=G+e.length-1;s[u+0]=l,s[u+1]=S,s[u+2]=A,s[u+3]=m,s[u+4]=y,s[u+5]=C,s[u+6]=x,s[u+7]=W,s[u+8]=F,s[u+9]=h,s[u+10]=G,s[u+11]=g};function w(t,n){let r=new Array(n),e=new Array(t),i=new Array(n),s=new Array(t),o;for(o=0;o<t;++o)s[o]=o,e[o]=t*n-1-o;for(o=0;o<n;++o)i[o]=(o+1)*t-1,r[o]=(n-o-1)*t;return{westIndicesSouthToNorth:r,southIndicesEastToWest:e,eastIndicesNorthToSouth:i,northIndicesWestToEast:s}}function v(t,n,r,e){let i=0;for(let s=0;s<n-1;++s){for(let o=0;o<t-1;++o){let c=i,I=c+t,u=I+1,l=c+1;r[e++]=c,r[e++]=I,r[e++]=l,r[e++]=l,r[e++]=I,r[e++]=u,++i}++i}}function p(t,n,r,e){let i=t[0],s=t.length;for(let o=1;o<s;++o){let c=t[o];r[e++]=i,r[e++]=c,r[e++]=n,r[e++]=n,r[e++]=c,r[e++]=n+1,i=c,++n}return e}a.heightmapTerrainQuality=.25;a.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(t,n,r){return t.maximumRadius*2*Math.PI*a.heightmapTerrainQuality/(n*r)};a.prototype.requestTileGeometry=d.throwInstantiationError;a.prototype.getLevelMaximumGeometricError=d.throwInstantiationError;a.prototype.getTileDataAvailable=d.throwInstantiationError;a.prototype.loadTileDataAvailability=d.throwInstantiationError;var M=a;export{M as a}; diff --git a/cesium/Workers/chunk-WGIRJIIK.js b/cesium/Workers/chunk-WGIRJIIK.js new file mode 100644 index 00000000..cccb9a1a --- /dev/null +++ b/cesium/Workers/chunk-WGIRJIIK.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as P,c as B}from"./chunk-2AIOP76V.js";import{a as y}from"./chunk-IAE6APK2.js";import{a as L}from"./chunk-3E7FIXV7.js";import{b as q}from"./chunk-NZBME2JK.js";import{f as T}from"./chunk-6DLS2UKD.js";function X(n){let a=n._uSquared,t=n._ellipsoid.maximumRadius,e=n._ellipsoid.minimumRadius,f=(t-e)/t,m=Math.cos(n._startHeading),_=Math.sin(n._startHeading),r=(1-f)*Math.tan(n._start.latitude),p=1/Math.sqrt(1+r*r),R=p*r,M=Math.atan2(r,m),l=p*_,U=l*l,i=1-U,A=Math.sqrt(i),c=a/4,o=c*c,h=o*c,S=o*o,u=1+c-3*o/4+5*h/4-175*S/64,C=1-c+15*o/8-35*h/8,d=1-3*c+35*o/4,g=1-5*c,w=u*M-C*Math.sin(2*M)*c/2-d*Math.sin(4*M)*o/16-g*Math.sin(6*M)*h/48-Math.sin(8*M)*5*S/512,s=n._constants;s.a=t,s.b=e,s.f=f,s.cosineHeading=m,s.sineHeading=_,s.tanU=r,s.cosineU=p,s.sineU=R,s.sigma=M,s.sineAlpha=l,s.sineSquaredAlpha=U,s.cosineSquaredAlpha=i,s.cosineAlpha=A,s.u2Over4=c,s.u4Over16=o,s.u6Over64=h,s.u8Over256=S,s.a0=u,s.a1=C,s.a2=d,s.a3=g,s.distanceRatio=w}function Y(n,a){return n*a*(4+n*(4-3*a))/16}function k(n,a,t,e,f,m,_){let r=Y(n,t);return(1-r)*n*a*(e+r*f*(_+r*m*(2*_*_-1)))}function Z(n,a,t,e,f,m,_){let r=(a-t)/a,p=m-e,R=Math.atan((1-r)*Math.tan(f)),M=Math.atan((1-r)*Math.tan(_)),l=Math.cos(R),U=Math.sin(R),i=Math.cos(M),A=Math.sin(M),c=l*i,o=l*A,h=U*A,S=U*i,u=p,C=L.TWO_PI,d=Math.cos(u),g=Math.sin(u),w,s,O,H,b;do{d=Math.cos(u),g=Math.sin(u);let z=o-S*d;O=Math.sqrt(i*i*g*g+z*z),s=h+c*d,w=Math.atan2(O,s);let D;O===0?(D=0,H=1):(D=c*g/O,H=1-D*D),C=u,b=s-2*h/H,isFinite(b)||(b=0),u=p+k(r,D,H,w,O,s,b)}while(Math.abs(u-C)>L.EPSILON12);let v=H*(a*a-t*t)/(t*t),W=1+v*(4096+v*(v*(320-175*v)-768))/16384,I=v*(256+v*(v*(74-47*v)-128))/1024,F=b*b,J=I*O*(b+I*(s*(2*F-1)-I*b*(4*O*O-3)*(4*F-3)/6)/4),K=t*W*(w-J),Q=Math.atan2(i*g,o-S*d),V=Math.atan2(l*g,o*d-S);n._distance=K,n._startHeading=Q,n._endHeading=V,n._uSquared=v}var $=new y,x=new y;function N(n,a,t,e){let f=y.normalize(e.cartographicToCartesian(a,x),$),m=y.normalize(e.cartographicToCartesian(t,x),x);q.typeOf.number.greaterThanOrEquals("value",Math.abs(Math.abs(y.angleBetween(f,m))-Math.PI),.0125),Z(n,e.maximumRadius,e.minimumRadius,a.longitude,a.latitude,t.longitude,t.latitude),n._start=P.clone(a,n._start),n._end=P.clone(t,n._end),n._start.height=0,n._end.height=0,X(n)}function E(n,a,t){let e=t??B.default;this._ellipsoid=e,this._start=new P,this._end=new P,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,T(n)&&T(a)&&N(this,n,a,e)}Object.defineProperties(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return q.defined("distance",this._distance),this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return q.defined("distance",this._distance),this._startHeading}},endHeading:{get:function(){return q.defined("distance",this._distance),this._endHeading}}});E.prototype.setEndPoints=function(n,a){q.defined("start",n),q.defined("end",a),N(this,n,a,this._ellipsoid)};E.prototype.interpolateUsingFraction=function(n,a){return this.interpolateUsingSurfaceDistance(this._distance*n,a)};E.prototype.interpolateUsingSurfaceDistance=function(n,a){q.defined("distance",this._distance);let t=this._constants,e=t.distanceRatio+n/t.b,f=Math.cos(2*e),m=Math.cos(4*e),_=Math.cos(6*e),r=Math.sin(2*e),p=Math.sin(4*e),R=Math.sin(6*e),M=Math.sin(8*e),l=e*e,U=e*l,i=t.u8Over256,A=t.u2Over4,c=t.u6Over64,o=t.u4Over16,h=2*U*i*f/3+e*(1-A+7*o/4-15*c/4+579*i/64-(o-15*c/4+187*i/16)*f-(5*c/4-115*i/16)*m-29*i*_/16)+(A/2-o+71*c/32-85*i/16)*r+(5*o/16-5*c/4+383*i/96)*p-l*((c-11*i/2)*r+5*i*p/2)+(29*c/96-29*i/16)*R+539*i*M/1536,S=Math.asin(Math.sin(h)*t.cosineAlpha),u=Math.atan(t.a/t.b*Math.tan(S));h=h-t.sigma;let C=Math.cos(2*t.sigma+h),d=Math.sin(h),g=Math.cos(h),w=t.cosineU*g,s=t.sineU*d,H=Math.atan2(d*t.sineHeading,w-s*t.cosineHeading)-k(t.f,t.sineAlpha,t.cosineSquaredAlpha,h,d,g,C);return T(a)?(a.longitude=this._start.longitude+H,a.latitude=u,a.height=0,a):new P(this._start.longitude+H,u,0)};var et=E;export{et as a}; diff --git a/cesium/Workers/chunk-XRJOFXJF.js b/cesium/Workers/chunk-XRJOFXJF.js new file mode 100644 index 00000000..4adce454 --- /dev/null +++ b/cesium/Workers/chunk-XRJOFXJF.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{b as r}from"./chunk-BPABSUDY.js";import{c as m}from"./chunk-IAE6APK2.js";import{a as i}from"./chunk-NZBME2JK.js";import{f as t}from"./chunk-6DLS2UKD.js";function d(e){if(e=e??m.EMPTY_OBJECT,!t(e.geometry))throw new i("options.geometry is required.");this.geometry=e.geometry,this.modelMatrix=r.clone(e.modelMatrix??r.IDENTITY),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=e.attributes??{},this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var a=d;export{a}; diff --git a/cesium/Workers/chunk-YP4SXJYZ.js b/cesium/Workers/chunk-YP4SXJYZ.js new file mode 100644 index 00000000..e74f40cc --- /dev/null +++ b/cesium/Workers/chunk-YP4SXJYZ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as z,c as q}from"./chunk-LHBFSFJE.js";import{a as U}from"./chunk-6AEO73KW.js";import{h as I}from"./chunk-LNJEJFV5.js";import{a as e,b as C}from"./chunk-IAE6APK2.js";import{a as O}from"./chunk-3E7FIXV7.js";import{f as j}from"./chunk-6DLS2UKD.js";var G={},B=new e,J=new e,_=new e,v=new e,g=[new e,new e],K=new e,W=new e,X=new e,$=new e,ee=new e,te=new e,ne=new e,oe=new e,re=new e,se=new e,F=new I,k=new C;function V(o,s,a,c,r){let d=e.angleBetween(e.subtract(s,o,B),e.subtract(a,o,J)),y=c===z.BEVELED?1:Math.ceil(d/O.toRadians(5))+1,n=y*3,l=new Array(n);l[n-3]=a.x,l[n-2]=a.y,l[n-1]=a.z;let m;r?m=C.fromQuaternion(I.fromAxisAngle(e.negate(o,B),d/y,F),k):m=C.fromQuaternion(I.fromAxisAngle(o,d/y,F),k);let t=0;s=e.clone(s,B);for(let i=0;i<y;i++)s=C.multiplyByVector(m,s,s),l[t++]=s.x,l[t++]=s.y,l[t++]=s.z;return l}function ae(o){let s=K,a=W,c=X,r=o[1];a=e.fromArray(o[1],r.length-3,a),c=e.fromArray(o[0],0,c),s=e.midpoint(a,c,s);let d=V(s,a,c,z.ROUNDED,!1),y=o.length-1,n=o[y-1];r=o[y],a=e.fromArray(n,n.length-3,a),c=e.fromArray(r,0,c),s=e.midpoint(a,c,s);let l=V(s,a,c,z.ROUNDED,!1);return[d,l]}function H(o,s,a,c){let r=B;return c?r=e.add(o,s,r):(s=e.negate(s,s),r=e.add(o,s,r)),[r.x,r.y,r.z,a.x,a.y,a.z]}function T(o,s,a,c){let r=new Array(o.length),d=new Array(o.length),y=e.multiplyByScalar(s,a,B),n=e.negate(y,J),l=0,m=o.length-1;for(let t=0;t<o.length;t+=3){let i=e.fromArray(o,t,_),w=e.add(i,n,v);r[l++]=w.x,r[l++]=w.y,r[l++]=w.z;let f=e.add(i,y,v);d[m--]=f.z,d[m--]=f.y,d[m--]=f.x}return c.push(r,d),c}G.addAttribute=function(o,s,a,c){let r=s.x,d=s.y,y=s.z;j(a)&&(o[a]=r,o[a+1]=d,o[a+2]=y),j(c)&&(o[c]=y,o[c-1]=d,o[c-2]=r)};var le=new e,ce=new e;G.computePositions=function(o){let s=o.granularity,a=o.positions,c=o.ellipsoid,r=o.width/2,d=o.cornerType,y=o.saveAttributes,n=K,l=W,m=X,t=$,i=ee,w=te,f=ne,u=oe,p=re,x=se,E=[],S=y?[]:void 0,D=y?[]:void 0,h=a[0],N=a[1];l=e.normalize(e.subtract(N,h,l),l),n=c.geodeticSurfaceNormal(h,n),t=e.normalize(e.cross(n,l,t),t),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z)),f=e.clone(h,f),h=N,m=e.negate(l,m);let A,P=[],M,Y=a.length;for(M=1;M<Y-1;M++){n=c.geodeticSurfaceNormal(h,n),N=a[M+1],l=e.normalize(e.subtract(N,h,l),l);let L=e.multiplyByScalar(n,e.dot(l,n),le);e.subtract(l,L,L),e.normalize(L,L);let R=e.multiplyByScalar(n,e.dot(m,n),ce);if(e.subtract(m,R,R),e.normalize(R,R),!O.equalsEpsilon(Math.abs(e.dot(L,R)),1,O.EPSILON7)){i=e.normalize(e.add(l,m,i),i),i=e.cross(i,n,i),i=e.cross(n,i,i),i=e.normalize(i,i);let Z=r/Math.max(.25,e.magnitude(e.cross(i,m,B))),b=q.angleIsGreaterThanPi(l,m,h,c);i=e.multiplyByScalar(i,Z,i),b?(u=e.add(h,i,u),x=e.add(u,e.multiplyByScalar(t,r,x),x),p=e.add(u,e.multiplyByScalar(t,r*2,p),p),g[0]=e.clone(f,g[0]),g[1]=e.clone(x,g[1]),A=U.generateArc({positions:g,granularity:s,ellipsoid:c}),E=T(A,t,r,E),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z)),w=e.clone(p,w),t=e.normalize(e.cross(n,l,t),t),p=e.add(u,e.multiplyByScalar(t,r*2,p),p),f=e.add(u,e.multiplyByScalar(t,r,f),f),d===z.ROUNDED||d===z.BEVELED?P.push({leftPositions:V(u,w,p,d,b)}):P.push({leftPositions:H(h,e.negate(i,i),p,b)})):(p=e.add(h,i,p),x=e.add(p,e.negate(e.multiplyByScalar(t,r,x),x),x),u=e.add(p,e.negate(e.multiplyByScalar(t,r*2,u),u),u),g[0]=e.clone(f,g[0]),g[1]=e.clone(x,g[1]),A=U.generateArc({positions:g,granularity:s,ellipsoid:c}),E=T(A,t,r,E),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z)),w=e.clone(u,w),t=e.normalize(e.cross(n,l,t),t),u=e.add(p,e.negate(e.multiplyByScalar(t,r*2,u),u),u),f=e.add(p,e.negate(e.multiplyByScalar(t,r,f),f),f),d===z.ROUNDED||d===z.BEVELED?P.push({rightPositions:V(p,w,u,d,b)}):P.push({rightPositions:H(h,i,u,b)})),m=e.negate(l,m)}h=N}n=c.geodeticSurfaceNormal(h,n),g[0]=e.clone(f,g[0]),g[1]=e.clone(h,g[1]),A=U.generateArc({positions:g,granularity:s,ellipsoid:c}),E=T(A,t,r,E),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z));let Q;return d===z.ROUNDED&&(Q=ae(E)),{positions:E,corners:P,lefts:S,normals:D,endPositions:Q}};var we=G;export{we as a}; diff --git a/cesium/Workers/chunk-Z7Q4J7AE.js b/cesium/Workers/chunk-Z7Q4J7AE.js new file mode 100644 index 00000000..aeb01afe --- /dev/null +++ b/cesium/Workers/chunk-Z7Q4J7AE.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as N}from"./chunk-AKELQO2L.js";import{a as Q}from"./chunk-5AAMOBJK.js";import{a as ae}from"./chunk-6EINM7EY.js";import{b as oe,c as re,d as J}from"./chunk-A4I25VN7.js";import{c as ie}from"./chunk-D3TVNJ6W.js";import{a as E}from"./chunk-3VUCSHGU.js";import{h as D}from"./chunk-LNJEJFV5.js";import{a as C,b as F}from"./chunk-BPABSUDY.js";import{a as H}from"./chunk-ATKJRN2G.js";import{a as r,b as G,c as A}from"./chunk-IAE6APK2.js";import{a as O}from"./chunk-3E7FIXV7.js";import{a as w,b}from"./chunk-NZBME2JK.js";import{f as a}from"./chunk-6DLS2UKD.js";function R(e){this.planes=e??[]}var X=[new r,new r,new r];r.clone(r.UNIT_X,X[0]);r.clone(r.UNIT_Y,X[1]);r.clone(r.UNIT_Z,X[2]);var j=new r,de=new r,fe=new Q(new r(1,0,0),0);R.fromBoundingSphere=function(e,t){if(!a(e))throw new w("boundingSphere is required.");a(t)||(t=new R);let n=X.length,f=t.planes;f.length=2*n;let s=e.center,_=e.radius,p=0;for(let m=0;m<n;++m){let i=X[m],c=f[p],d=f[p+1];a(c)||(c=f[p]=new C),a(d)||(d=f[p+1]=new C),r.multiplyByScalar(i,-_,j),r.add(s,j,j),c.x=i.x,c.y=i.y,c.z=i.z,c.w=-r.dot(i,j),r.multiplyByScalar(i,_,j),r.add(s,j,j),d.x=-i.x,d.y=-i.y,d.z=-i.z,d.w=-r.dot(r.negate(i,de),j),p+=2}return t};R.prototype.computeVisibility=function(e){if(!a(e))throw new w("boundingVolume is required.");let t=this.planes,n=!1;for(let f=0,s=t.length;f<s;++f){let _=e.intersectPlane(Q.fromCartesian4(t[f],fe));if(_===E.OUTSIDE)return E.OUTSIDE;_===E.INTERSECTING&&(n=!0)}return n?E.INTERSECTING:E.INSIDE};R.prototype.computeVisibilityWithPlaneMask=function(e,t){if(!a(e))throw new w("boundingVolume is required.");if(!a(t))throw new w("parentPlaneMask is required.");if(t===R.MASK_OUTSIDE||t===R.MASK_INSIDE)return t;let n=R.MASK_INSIDE,f=this.planes;for(let s=0,_=f.length;s<_;++s){let p=s<31?1<<s:0;if(s<31&&(t&p)===0)continue;let m=e.intersectPlane(Q.fromCartesian4(f[s],fe));if(m===E.OUTSIDE)return R.MASK_OUTSIDE;m===E.INTERSECTING&&(n|=p)}return n};R.MASK_OUTSIDE=4294967295;R.MASK_INSIDE=0;R.MASK_INDETERMINATE=2147483647;var $=R;function M(e){e=e??A.EMPTY_OBJECT,this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=e.near??1,this._near=this.near,this.far=e.far??5e8,this._far=this.far,this._cullingVolume=new $,this._orthographicMatrix=new F}function ce(e){if(!a(e.right)||!a(e.left)||!a(e.top)||!a(e.bottom)||!a(e.near)||!a(e.far))throw new w("right, left, top, bottom, near, or far parameters are not set.");if(e.top!==e._top||e.bottom!==e._bottom||e.left!==e._left||e.right!==e._right||e.near!==e._near||e.far!==e._far){if(e.left>e.right)throw new w("right must be greater than left.");if(e.bottom>e.top)throw new w("top must be greater than bottom.");if(e.near<=0||e.near>e.far)throw new w("near must be greater than zero and less than far.");e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=F.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix)}}Object.defineProperties(M.prototype,{projectionMatrix:{get:function(){return ce(this),this._orthographicMatrix}}});var me=new r,ye=new r,ge=new r,ee=new r;M.prototype.computeCullingVolume=function(e,t,n){if(!a(e))throw new w("position is required.");if(!a(t))throw new w("direction is required.");if(!a(n))throw new w("up is required.");let f=this._cullingVolume.planes,s=this.top,_=this.bottom,p=this.right,m=this.left,i=this.near,c=this.far,d=r.cross(t,n,me);r.normalize(d,d);let y=ye;r.multiplyByScalar(t,i,y),r.add(e,y,y);let l=ge;r.multiplyByScalar(d,m,l),r.add(y,l,l);let o=f[0];return a(o)||(o=f[0]=new C),o.x=d.x,o.y=d.y,o.z=d.z,o.w=-r.dot(d,l),r.multiplyByScalar(d,p,l),r.add(y,l,l),o=f[1],a(o)||(o=f[1]=new C),o.x=-d.x,o.y=-d.y,o.z=-d.z,o.w=-r.dot(r.negate(d,ee),l),r.multiplyByScalar(n,_,l),r.add(y,l,l),o=f[2],a(o)||(o=f[2]=new C),o.x=n.x,o.y=n.y,o.z=n.z,o.w=-r.dot(n,l),r.multiplyByScalar(n,s,l),r.add(y,l,l),o=f[3],a(o)||(o=f[3]=new C),o.x=-n.x,o.y=-n.y,o.z=-n.z,o.w=-r.dot(r.negate(n,ee),l),o=f[4],a(o)||(o=f[4]=new C),o.x=t.x,o.y=t.y,o.z=t.z,o.w=-r.dot(t,y),r.multiplyByScalar(t,c,l),r.add(e,l,l),o=f[5],a(o)||(o=f[5]=new C),o.x=-t.x,o.y=-t.y,o.z=-t.z,o.w=-r.dot(r.negate(t,ee),l),this._cullingVolume};M.prototype.getPixelDimensions=function(e,t,n,f,s){if(ce(this),!a(e)||!a(t))throw new w("Both drawingBufferWidth and drawingBufferHeight are required.");if(e<=0)throw new w("drawingBufferWidth must be greater than zero.");if(t<=0)throw new w("drawingBufferHeight must be greater than zero.");if(!a(n))throw new w("distance is required.");if(!a(f))throw new w("pixelRatio is required.");if(f<=0)throw new w("pixelRatio must be greater than zero.");if(!a(s))throw new w("A result object is required.");let _=this.right-this.left,p=this.top-this.bottom,m=f*_/e,i=f*p/t;return s.x=m,s.y=i,s};M.prototype.clone=function(e){return a(e)||(e=new M),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};M.prototype.equals=function(e){return a(e)&&e instanceof M&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};M.prototype.equalsEpsilon=function(e,t,n){return e===this||a(e)&&e instanceof M&&O.equalsEpsilon(this.right,e.right,t,n)&&O.equalsEpsilon(this.left,e.left,t,n)&&O.equalsEpsilon(this.top,e.top,t,n)&&O.equalsEpsilon(this.bottom,e.bottom,t,n)&&O.equalsEpsilon(this.near,e.near,t,n)&&O.equalsEpsilon(this.far,e.far,t,n)};var he=M;function x(e){e=e??A.EMPTY_OBJECT,this._offCenterFrustum=new he,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=e.near??1,this._near=this.near,this.far=e.far??5e8,this._far=this.far}x.packedLength=4;x.pack=function(e,t,n){return b.typeOf.object("value",e),b.defined("array",t),n=n??0,t[n++]=e.width,t[n++]=e.aspectRatio,t[n++]=e.near,t[n]=e.far,t};x.unpack=function(e,t,n){return b.defined("array",e),t=t??0,a(n)||(n=new x),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function B(e){if(!a(e.width)||!a(e.aspectRatio)||!a(e.near)||!a(e.far))throw new w("width, aspectRatio, near, or far parameters are not set.");let t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){if(e.aspectRatio<0)throw new w("aspectRatio must be positive.");if(e.near<0||e.near>e.far)throw new w("near must be greater than zero and less than far.");e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;let n=1/e.aspectRatio;t.right=e.width*.5,t.left=-t.right,t.top=n*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}Object.defineProperties(x.prototype,{projectionMatrix:{get:function(){return B(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return B(this),this._offCenterFrustum}}});x.prototype.computeCullingVolume=function(e,t,n){return B(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};x.prototype.getPixelDimensions=function(e,t,n,f,s){return B(this),this._offCenterFrustum.getPixelDimensions(e,t,n,f,s)};x.prototype.clone=function(e){return a(e)||(e=new x),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};x.prototype.equals=function(e){return!a(e)||!(e instanceof x)?!1:(B(this),B(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};x.prototype.equalsEpsilon=function(e,t,n){return!a(e)||!(e instanceof x)?!1:(B(this),B(e),O.equalsEpsilon(this.width,e.width,t,n)&&O.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var V=x;function k(e){e=e??A.EMPTY_OBJECT,this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=e.near??1,this._near=this.near,this.far=e.far??5e8,this._far=this.far,this._cullingVolume=new $,this._perspectiveMatrix=new F,this._infinitePerspective=new F}function te(e){if(!a(e.right)||!a(e.left)||!a(e.top)||!a(e.bottom)||!a(e.near)||!a(e.far))throw new w("right, left, top, bottom, near, or far parameters are not set.");let{top:t,bottom:n,right:f,left:s,near:_,far:p}=e;if(t!==e._top||n!==e._bottom||s!==e._left||f!==e._right||_!==e._near||p!==e._far){if(e.near<=0||e.near>e.far)throw new w("near must be greater than zero and less than far.");e._left=s,e._right=f,e._top=t,e._bottom=n,e._near=_,e._far=p,e._perspectiveMatrix=F.computePerspectiveOffCenter(s,f,n,t,_,p,e._perspectiveMatrix),e._infinitePerspective=F.computeInfinitePerspectiveOffCenter(s,f,n,t,_,e._infinitePerspective)}}Object.defineProperties(k.prototype,{projectionMatrix:{get:function(){return te(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return te(this),this._infinitePerspective}}});var Ce=new r,be=new r,Oe=new r,Fe=new r;k.prototype.computeCullingVolume=function(e,t,n){if(!a(e))throw new w("position is required.");if(!a(t))throw new w("direction is required.");if(!a(n))throw new w("up is required.");let f=this._cullingVolume.planes,s=this.top,_=this.bottom,p=this.right,m=this.left,i=this.near,c=this.far,d=r.cross(t,n,Ce),y=be;r.multiplyByScalar(t,i,y),r.add(e,y,y);let l=Oe;r.multiplyByScalar(t,c,l),r.add(e,l,l);let o=Fe;r.multiplyByScalar(d,m,o),r.add(y,o,o),r.subtract(o,e,o),r.normalize(o,o),r.cross(o,n,o),r.normalize(o,o);let h=f[0];return a(h)||(h=f[0]=new C),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),r.multiplyByScalar(d,p,o),r.add(y,o,o),r.subtract(o,e,o),r.cross(n,o,o),r.normalize(o,o),h=f[1],a(h)||(h=f[1]=new C),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),r.multiplyByScalar(n,_,o),r.add(y,o,o),r.subtract(o,e,o),r.cross(d,o,o),r.normalize(o,o),h=f[2],a(h)||(h=f[2]=new C),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),r.multiplyByScalar(n,s,o),r.add(y,o,o),r.subtract(o,e,o),r.cross(o,d,o),r.normalize(o,o),h=f[3],a(h)||(h=f[3]=new C),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),h=f[4],a(h)||(h=f[4]=new C),h.x=t.x,h.y=t.y,h.z=t.z,h.w=-r.dot(t,y),r.negate(t,o),h=f[5],a(h)||(h=f[5]=new C),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,l),this._cullingVolume};k.prototype.getPixelDimensions=function(e,t,n,f,s){if(te(this),!a(e)||!a(t))throw new w("Both drawingBufferWidth and drawingBufferHeight are required.");if(e<=0)throw new w("drawingBufferWidth must be greater than zero.");if(t<=0)throw new w("drawingBufferHeight must be greater than zero.");if(!a(n))throw new w("distance is required.");if(!a(f))throw new w("pixelRatio is required");if(f<=0)throw new w("pixelRatio must be greater than zero.");if(!a(s))throw new w("A result object is required.");let _=1/this.near,p=this.top*_,m=2*f*n*p/t;p=this.right*_;let i=2*f*n*p/e;return s.x=i,s.y=m,s};k.prototype.clone=function(e){return a(e)||(e=new k),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};k.prototype.equals=function(e){return a(e)&&e instanceof k&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};k.prototype.equalsEpsilon=function(e,t,n){return e===this||a(e)&&e instanceof k&&O.equalsEpsilon(this.right,e.right,t,n)&&O.equalsEpsilon(this.left,e.left,t,n)&&O.equalsEpsilon(this.top,e.top,t,n)&&O.equalsEpsilon(this.bottom,e.bottom,t,n)&&O.equalsEpsilon(this.near,e.near,t,n)&&O.equalsEpsilon(this.far,e.far,t,n)};var se=k;function v(e){e=e??A.EMPTY_OBJECT,this._offCenterFrustum=new se,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=e.near??1,this._near=this.near,this.far=e.far??5e8,this._far=this.far,this.xOffset=e.xOffset??0,this._xOffset=this.xOffset,this.yOffset=e.yOffset??0,this._yOffset=this.yOffset}v.packedLength=6;v.pack=function(e,t,n){return b.typeOf.object("value",e),b.defined("array",t),n=n??0,t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};v.unpack=function(e,t,n){return b.defined("array",e),t=t??0,a(n)||(n=new v),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function T(e){if(!a(e.fov)||!a(e.aspectRatio)||!a(e.near)||!a(e.far))throw new w("fov, aspectRatio, near, or far parameters are not set.");if(!(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset))return;if(b.typeOf.number.greaterThanOrEquals("fov",e.fov,0),b.typeOf.number.lessThan("fov",e.fov,Math.PI),b.typeOf.number.greaterThanOrEquals("aspectRatio",e.aspectRatio,0),b.typeOf.number.greaterThanOrEquals("near",e.near,0),e.near>e.far)throw new w("near must be less than far.");e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset;let n=e._offCenterFrustum;n.top=e.near*Math.tan(.5*e._fovy),n.bottom=-n.top,n.right=e.aspectRatio*n.top,n.left=-n.right,n.near=e.near,n.far=e.far,n.right+=e.xOffset,n.left+=e.xOffset,n.top+=e.yOffset,n.bottom+=e.yOffset}Object.defineProperties(v.prototype,{projectionMatrix:{get:function(){return T(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return T(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return T(this),this._fovy}},sseDenominator:{get:function(){return T(this),this._sseDenominator}},offCenterFrustum:{get:function(){return T(this),this._offCenterFrustum}}});v.prototype.computeCullingVolume=function(e,t,n){return T(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};v.prototype.getPixelDimensions=function(e,t,n,f,s){return T(this),this._offCenterFrustum.getPixelDimensions(e,t,n,f,s)};v.prototype.clone=function(e){return a(e)||(e=new v),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};v.prototype.equals=function(e){return!a(e)||!(e instanceof v)?!1:(T(this),T(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};v.prototype.equalsEpsilon=function(e,t,n){return!a(e)||!(e instanceof v)?!1:(T(this),T(e),O.equalsEpsilon(this.fov,e.fov,t,n)&&O.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var L=v;var I=0,Pe=1;function u(e){b.typeOf.object("options",e),b.typeOf.object("options.frustum",e.frustum),b.typeOf.object("options.origin",e.origin),b.typeOf.object("options.orientation",e.orientation);let t=e.frustum,n=e.orientation,f=e.origin,s=e.vertexFormat??N.DEFAULT,_=e._drawNearPlane??!0,p,m;t instanceof L?(p=I,m=L.packedLength):t instanceof V&&(p=Pe,m=V.packedLength),this._frustumType=p,this._frustum=t.clone(),this._origin=r.clone(f),this._orientation=D.clone(n),this._drawNearPlane=_,this._vertexFormat=s,this._workerName="createFrustumGeometry",this.packedLength=2+m+r.packedLength+D.packedLength+N.packedLength}u.pack=function(e,t,n){b.typeOf.object("value",e),b.defined("array",t),n=n??0;let f=e._frustumType,s=e._frustum;return t[n++]=f,f===I?(L.pack(s,t,n),n+=L.packedLength):(V.pack(s,t,n),n+=V.packedLength),r.pack(e._origin,t,n),n+=r.packedLength,D.pack(e._orientation,t,n),n+=D.packedLength,N.pack(e._vertexFormat,t,n),n+=N.packedLength,t[n]=e._drawNearPlane?1:0,t};var ze=new L,xe=new V,ve=new D,Re=new r,Te=new N;u.unpack=function(e,t,n){b.defined("array",e),t=t??0;let f=e[t++],s;f===I?(s=L.unpack(e,t,ze),t+=L.packedLength):(s=V.unpack(e,t,xe),t+=V.packedLength);let _=r.unpack(e,t,Re);t+=r.packedLength;let p=D.unpack(e,t,ve);t+=D.packedLength;let m=N.unpack(e,t,Te);t+=N.packedLength;let i=e[t]===1;if(!a(n))return new u({frustum:s,origin:_,orientation:p,vertexFormat:m,_drawNearPlane:i});let c=f===n._frustumType?n._frustum:void 0;return n._frustum=s.clone(c),n._frustumType=f,n._origin=r.clone(_,n._origin),n._orientation=D.clone(p,n._orientation),n._vertexFormat=N.clone(m,n._vertexFormat),n._drawNearPlane=i,n};function W(e,t,n,f,s,_,p,m){let i=e/3*2;for(let c=0;c<4;++c)a(t)&&(t[e]=_.x,t[e+1]=_.y,t[e+2]=_.z),a(n)&&(n[e]=p.x,n[e+1]=p.y,n[e+2]=p.z),a(f)&&(f[e]=m.x,f[e+1]=m.y,f[e+2]=m.z),e+=3;s[i]=0,s[i+1]=0,s[i+2]=1,s[i+3]=0,s[i+4]=1,s[i+5]=1,s[i+6]=0,s[i+7]=1}var qe=new G,Me=new F,ne=new F,pe=new r,le=new r,we=new r,ke=new r,Se=new r,De=new r,U=new Array(3),Z=new Array(4);Z[0]=new C(-1,-1,1,1);Z[1]=new C(1,-1,1,1);Z[2]=new C(1,1,1,1);Z[3]=new C(-1,1,1,1);var _e=new Array(4);for(let e=0;e<4;++e)_e[e]=new C;u._computeNearFarPlanes=function(e,t,n,f,s,_,p,m){let i=G.fromQuaternion(t,qe),c=_??pe,d=p??le,y=m??we;c=G.getColumn(i,0,c),d=G.getColumn(i,1,d),y=G.getColumn(i,2,y),r.normalize(c,c),r.normalize(d,d),r.normalize(y,y),r.negate(c,c);let l=F.computeView(e,y,d,c,Me),o,h,q=f.projectionMatrix;if(n===I){let P=F.multiply(q,l,ne);h=F.inverse(P,ne)}else o=F.inverseTransformation(l,ne);a(h)?(U[0]=f.near,U[1]=f.far):(U[0]=0,U[1]=f.near,U[2]=f.far);for(let P=0;P<2;++P)for(let z=0;z<4;++z){let g=C.clone(Z[z],_e[z]);if(a(h)){g=F.multiplyByVector(h,g,g);let S=1/g.w;r.multiplyByScalar(g,S,g),r.subtract(g,e,g),r.normalize(g,g);let Y=r.dot(y,g);r.multiplyByScalar(g,U[P]/Y,g),r.add(g,e,g)}else{let S=f.offCenterFrustum;a(S)&&(f=S);let Y=U[P],K=U[P+1];g.x=(g.x*(f.right-f.left)+f.left+f.right)*.5,g.y=(g.y*(f.top-f.bottom)+f.bottom+f.top)*.5,g.z=(g.z*(Y-K)-Y-K)*.5,g.w=1,F.multiplyByVector(o,g,g)}s[12*P+z*3]=g.x,s[12*P+z*3+1]=g.y,s[12*P+z*3+2]=g.z}};u.createGeometry=function(e){let t=e._frustumType,n=e._frustum,f=e._origin,s=e._orientation,_=e._drawNearPlane,p=e._vertexFormat,m=_?6:5,i=new Float64Array(72);u._computeNearFarPlanes(f,s,t,n,i);let c=24;i[c]=i[12],i[c+1]=i[13],i[c+2]=i[14],i[c+3]=i[0],i[c+4]=i[1],i[c+5]=i[2],i[c+6]=i[9],i[c+7]=i[10],i[c+8]=i[11],i[c+9]=i[21],i[c+10]=i[22],i[c+11]=i[23],c+=12,i[c]=i[15],i[c+1]=i[16],i[c+2]=i[17],i[c+3]=i[3],i[c+4]=i[4],i[c+5]=i[5],i[c+6]=i[0],i[c+7]=i[1],i[c+8]=i[2],i[c+9]=i[12],i[c+10]=i[13],i[c+11]=i[14],c+=12,i[c]=i[3],i[c+1]=i[4],i[c+2]=i[5],i[c+3]=i[15],i[c+4]=i[16],i[c+5]=i[17],i[c+6]=i[18],i[c+7]=i[19],i[c+8]=i[20],i[c+9]=i[6],i[c+10]=i[7],i[c+11]=i[8],c+=12,i[c]=i[6],i[c+1]=i[7],i[c+2]=i[8],i[c+3]=i[18],i[c+4]=i[19],i[c+5]=i[20],i[c+6]=i[21],i[c+7]=i[22],i[c+8]=i[23],i[c+9]=i[9],i[c+10]=i[10],i[c+11]=i[11],_||(i=i.subarray(12));let d=new ae({position:new J({componentDatatype:H.DOUBLE,componentsPerAttribute:3,values:i})});if(a(p.normal)||a(p.tangent)||a(p.bitangent)||a(p.st)){let l=a(p.normal)?new Float32Array(12*m):void 0,o=a(p.tangent)?new Float32Array(12*m):void 0,h=a(p.bitangent)?new Float32Array(12*m):void 0,q=a(p.st)?new Float32Array(8*m):void 0,P=pe,z=le,g=we,S=r.negate(P,ke),Y=r.negate(z,Se),K=r.negate(g,De);c=0,_&&(W(c,l,o,h,q,K,P,z),c+=12),W(c,l,o,h,q,g,S,z),c+=12,W(c,l,o,h,q,S,K,z),c+=12,W(c,l,o,h,q,Y,K,S),c+=12,W(c,l,o,h,q,P,g,z),c+=12,W(c,l,o,h,q,z,g,S),a(l)&&(d.normal=new J({componentDatatype:H.FLOAT,componentsPerAttribute:3,values:l})),a(o)&&(d.tangent=new J({componentDatatype:H.FLOAT,componentsPerAttribute:3,values:o})),a(h)&&(d.bitangent=new J({componentDatatype:H.FLOAT,componentsPerAttribute:3,values:h})),a(q)&&(d.st=new J({componentDatatype:H.FLOAT,componentsPerAttribute:2,values:q}))}let y=new Uint16Array(6*m);for(let l=0;l<m;++l){let o=l*6,h=l*4;y[o]=h,y[o+1]=h+1,y[o+2]=h+2,y[o+3]=h,y[o+4]=h+2,y[o+5]=h+3}return new re({attributes:d,indices:y,primitiveType:oe.TRIANGLES,boundingSphere:ie.fromVertices(i)})};var Et=u;export{V as a,L as b,Et as c}; diff --git a/cesium/Workers/combineGeometry.js b/cesium/Workers/combineGeometry.js new file mode 100644 index 00000000..d33d0bfc --- /dev/null +++ b/cesium/Workers/combineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as e}from"./chunk-5DGDPBQU.js";import{a as r}from"./chunk-BKIYVF74.js";import"./chunk-LN2UT4R3.js";import"./chunk-QNPYEODC.js";import"./chunk-G72JFEXW.js";import"./chunk-6W2XFGWI.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import"./chunk-6DLS2UKD.js";function n(o,t){let m=e.unpackCombineGeometryParameters(o),i=e.combineGeometry(m);return e.packCombineGeometryResults(i,t)}var c=r(n);export{c as default}; diff --git a/cesium/Workers/createBoxGeometry.js b/cesium/Workers/createBoxGeometry.js new file mode 100644 index 00000000..4d2267e6 --- /dev/null +++ b/cesium/Workers/createBoxGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-ALIHIWSS.js";import"./chunk-ML6MR2RA.js";import"./chunk-AKELQO2L.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as o}from"./chunk-6DLS2UKD.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; diff --git a/cesium/Workers/createBoxOutlineGeometry.js b/cesium/Workers/createBoxOutlineGeometry.js new file mode 100644 index 00000000..41ebdb5e --- /dev/null +++ b/cesium/Workers/createBoxOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as d}from"./chunk-ML6MR2RA.js";import{a as l}from"./chunk-6EINM7EY.js";import{b as O,c as h,d as p}from"./chunk-A4I25VN7.js";import{c as A}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import{a as m,c as s}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{a as b,b as r}from"./chunk-NZBME2JK.js";import{f as c}from"./chunk-6DLS2UKD.js";var g=new m;function f(e){e=e??s.EMPTY_OBJECT;let t=e.minimum,n=e.maximum;if(r.typeOf.object("min",t),r.typeOf.object("max",n),c(e.offsetAttribute)&&e.offsetAttribute===d.TOP)throw new b("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._min=m.clone(t),this._max=m.clone(n),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}f.fromDimensions=function(e){e=e??s.EMPTY_OBJECT;let t=e.dimensions;r.typeOf.object("dimensions",t),r.typeOf.number.greaterThanOrEquals("dimensions.x",t.x,0),r.typeOf.number.greaterThanOrEquals("dimensions.y",t.y,0),r.typeOf.number.greaterThanOrEquals("dimensions.z",t.z,0);let n=m.multiplyByScalar(t,.5,new m);return new f({minimum:m.negate(n,new m),maximum:n,offsetAttribute:e.offsetAttribute})};f.fromAxisAlignedBoundingBox=function(e){return r.typeOf.object("boundindBox",e),new f({minimum:e.minimum,maximum:e.maximum})};f.packedLength=2*m.packedLength+1;f.pack=function(e,t,n){return r.typeOf.object("value",e),r.defined("array",t),n=n??0,m.pack(e._min,t,n),m.pack(e._max,t,n+m.packedLength),t[n+m.packedLength*2]=e._offsetAttribute??-1,t};var w=new m,x=new m,_={minimum:w,maximum:x,offsetAttribute:void 0};f.unpack=function(e,t,n){r.defined("array",e),t=t??0;let u=m.unpack(e,t,w),o=m.unpack(e,t+m.packedLength,x),i=e[t+m.packedLength*2];return c(n)?(n._min=m.clone(u,n._min),n._max=m.clone(o,n._max),n._offsetAttribute=i===-1?void 0:i,n):(_.offsetAttribute=i===-1?void 0:i,new f(_))};f.createGeometry=function(e){let t=e._min,n=e._max;if(m.equals(t,n))return;let u=new l,o=new Uint16Array(24),i=new Float64Array(24);i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=n.x,i[4]=t.y,i[5]=t.z,i[6]=n.x,i[7]=n.y,i[8]=t.z,i[9]=t.x,i[10]=n.y,i[11]=t.z,i[12]=t.x,i[13]=t.y,i[14]=n.z,i[15]=n.x,i[16]=t.y,i[17]=n.z,i[18]=n.x,i[19]=n.y,i[20]=n.z,i[21]=t.x,i[22]=n.y,i[23]=n.z,u.position=new p({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:i}),o[0]=4,o[1]=5,o[2]=5,o[3]=6,o[4]=6,o[5]=7,o[6]=7,o[7]=4,o[8]=0,o[9]=1,o[10]=1,o[11]=2,o[12]=2,o[13]=3,o[14]=3,o[15]=0,o[16]=0,o[17]=4,o[18]=1,o[19]=5,o[20]=2,o[21]=6,o[22]=3,o[23]=7;let k=m.subtract(n,t,g),E=m.magnitude(k)*.5;if(c(e._offsetAttribute)){let T=i.length,z=e._offsetAttribute===d.NONE?0:1,B=new Uint8Array(T/3).fill(z);u.applyOffset=new p({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}return new h({attributes:u,indices:o,primitiveType:O.LINES,boundingSphere:new A(m.ZERO,E),offsetAttribute:e._offsetAttribute})};var y=f;function L(e,t){return c(t)&&(e=y.unpack(e,t)),y.createGeometry(e)}var V=L;export{V as default}; diff --git a/cesium/Workers/createCircleGeometry.js b/cesium/Workers/createCircleGeometry.js new file mode 100644 index 00000000..e2b0eccd --- /dev/null +++ b/cesium/Workers/createCircleGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as l}from"./chunk-DM7KUSL2.js";import"./chunk-P7N43FDO.js";import"./chunk-XRJOFXJF.js";import"./chunk-QNPYEODC.js";import"./chunk-G72JFEXW.js";import"./chunk-6W2XFGWI.js";import"./chunk-ML6MR2RA.js";import{a as m}from"./chunk-AKELQO2L.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c as s}from"./chunk-2AIOP76V.js";import{a,c as _}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{b as p}from"./chunk-NZBME2JK.js";import{f as d}from"./chunk-6DLS2UKD.js";function n(e){e=e??_.EMPTY_OBJECT;let r=e.radius;p.typeOf.number("radius",r);let o={center:e.center,semiMajorAxis:r,semiMinorAxis:r,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new l(o),this._workerName="createCircleGeometry"}n.packedLength=l.packedLength;n.pack=function(e,r,o){return p.typeOf.object("value",e),l.pack(e._ellipseGeometry,r,o)};var h=new l({center:new a,semiMajorAxis:1,semiMinorAxis:1}),t={center:new a,radius:void 0,ellipsoid:s.clone(s.default),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new m,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};n.unpack=function(e,r,o){let i=l.unpack(e,r,h);return t.center=a.clone(i._center,t.center),t.ellipsoid=s.clone(i._ellipsoid,t.ellipsoid),t.ellipsoid=s.clone(i._ellipsoid,h._ellipsoid),t.height=i._height,t.extrudedHeight=i._extrudedHeight,t.granularity=i._granularity,t.vertexFormat=m.clone(i._vertexFormat,t.vertexFormat),t.stRotation=i._stRotation,t.shadowVolume=i._shadowVolume,d(o)?(t.semiMajorAxis=i._semiMajorAxis,t.semiMinorAxis=i._semiMinorAxis,o._ellipseGeometry=new l(t),o):(t.radius=i._semiMajorAxis,new n(t))};n.createGeometry=function(e){return l.createGeometry(e._ellipseGeometry)};n.createShadowVolume=function(e,r,o){let i=e._ellipseGeometry._granularity,u=e._ellipseGeometry._ellipsoid,f=r(i,u),x=o(i,u);return new n({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:u,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:f,height:x,vertexFormat:m.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(n.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var c=n;function g(e,r){return d(r)&&(e=c.unpack(e,r)),e._ellipseGeometry._center=a.clone(e._ellipseGeometry._center),e._ellipseGeometry._ellipsoid=s.clone(e._ellipseGeometry._ellipsoid),c.createGeometry(e)}var V=g;export{V as default}; diff --git a/cesium/Workers/createCircleOutlineGeometry.js b/cesium/Workers/createCircleOutlineGeometry.js new file mode 100644 index 00000000..bceaf0fe --- /dev/null +++ b/cesium/Workers/createCircleOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as n}from"./chunk-QS7V5G6Y.js";import"./chunk-P7N43FDO.js";import"./chunk-ML6MR2RA.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c as s}from"./chunk-2AIOP76V.js";import{a as o,c}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{b as d}from"./chunk-NZBME2JK.js";import{f as a}from"./chunk-6DLS2UKD.js";function m(e){e=e??c.EMPTY_OBJECT;let r=e.radius;d.typeOf.number("radius",r);let l={center:e.center,semiMajorAxis:r,semiMinorAxis:r,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new n(l),this._workerName="createCircleOutlineGeometry"}m.packedLength=n.packedLength;m.pack=function(e,r,l){return d.typeOf.object("value",e),n.pack(e._ellipseGeometry,r,l)};var p=new n({center:new o,semiMajorAxis:1,semiMinorAxis:1}),i={center:new o,radius:void 0,ellipsoid:s.clone(s.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};m.unpack=function(e,r,l){let t=n.unpack(e,r,p);return i.center=o.clone(t._center,i.center),i.ellipsoid=s.clone(t._ellipsoid,i.ellipsoid),i.height=t._height,i.extrudedHeight=t._extrudedHeight,i.granularity=t._granularity,i.numberOfVerticalLines=t._numberOfVerticalLines,a(l)?(i.semiMajorAxis=t._semiMajorAxis,i.semiMinorAxis=t._semiMinorAxis,l._ellipseGeometry=new n(i),l):(i.radius=t._semiMajorAxis,new m(i))};m.createGeometry=function(e){return n.createGeometry(e._ellipseGeometry)};var u=m;function f(e,r){return a(r)&&(e=u.unpack(e,r)),e._ellipseGeometry._center=o.clone(e._ellipseGeometry._center),e._ellipseGeometry._ellipsoid=s.clone(e._ellipseGeometry._ellipsoid),u.createGeometry(e)}var E=f;export{E as default}; diff --git a/cesium/Workers/createCoplanarPolygonGeometry.js b/cesium/Workers/createCoplanarPolygonGeometry.js new file mode 100644 index 00000000..313e4896 --- /dev/null +++ b/cesium/Workers/createCoplanarPolygonGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as et}from"./chunk-UA7PAMQQ.js";import{a as Q}from"./chunk-MOHWP7VV.js";import"./chunk-P5EFSOUF.js";import{a as u}from"./chunk-IEITL4VO.js";import"./chunk-AJH5KBOO.js";import{a as I}from"./chunk-XRJOFXJF.js";import{a as $}from"./chunk-QNPYEODC.js";import"./chunk-G72JFEXW.js";import"./chunk-6W2XFGWI.js";import{a as f}from"./chunk-AKELQO2L.js";import"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import{b as ot}from"./chunk-TCOMWBL2.js";import{a as tt}from"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as J}from"./chunk-4WQ4VT5S.js";import{a as X}from"./chunk-6EINM7EY.js";import{b as W,c as Y,d as z}from"./chunk-A4I25VN7.js";import{c as K}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{h as q}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as B}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{b as H,c as m}from"./chunk-2AIOP76V.js";import{a as i,b as g,c as U}from"./chunk-IAE6APK2.js";import{a as V}from"./chunk-3E7FIXV7.js";import{b as G}from"./chunk-NZBME2JK.js";import{f as d}from"./chunk-6DLS2UKD.js";var st=new i,at=new et,pt=new H,lt=new H,mt=new i,ft=new i,ut=new i,M=new i,yt=new i,ht=new i,nt=new q,dt=new g,gt=new g,Pt=new i;function wt(e,t,o,a,y,_,r,n,p){let A=e.positions,c=ot.triangulate(e.positions2D,e.holes);c.length<3&&(c=[0,1,2]);let P=J.createTypedArray(A.length,c.length);P.set(c);let E=dt;if(a!==0){let h=q.fromAxisAngle(r,a,nt);if(E=g.fromQuaternion(h,E),t.tangent||t.bitangent){h=q.fromAxisAngle(r,-a,nt);let O=g.fromQuaternion(h,gt);n=i.normalize(g.multiplyByVector(O,n,n),n),t.bitangent&&(p=i.normalize(i.cross(r,n,p),p))}}else E=g.clone(g.IDENTITY,E);let N=lt;t.st&&(N.x=o.x,N.y=o.y);let b=A.length,k=b*3,C=new Float64Array(k),L=t.normal?new Float32Array(k):void 0,D=t.tangent?new Float32Array(k):void 0,F=t.bitangent?new Float32Array(k):void 0,T=t.st?new Float32Array(b*2):void 0,j=0,R=0,l=0,S=0,s=0;for(let h=0;h<b;h++){let O=A[h];if(C[j++]=O.x,C[j++]=O.y,C[j++]=O.z,t.st)if(d(y)&&y.positions.length===b)T[s++]=y.positions[h].x,T[s++]=y.positions[h].y;else{let it=g.multiplyByVector(E,O,st),v=_(it,pt);H.subtract(v,N,v);let rt=V.clamp(v.x/o.width,0,1),ct=V.clamp(v.y/o.height,0,1);T[s++]=rt,T[s++]=ct}t.normal&&(L[R++]=r.x,L[R++]=r.y,L[R++]=r.z),t.tangent&&(D[S++]=n.x,D[S++]=n.y,D[S++]=n.z),t.bitangent&&(F[l++]=p.x,F[l++]=p.y,F[l++]=p.z)}let w=new X;return t.position&&(w.position=new z({componentDatatype:B.DOUBLE,componentsPerAttribute:3,values:C})),t.normal&&(w.normal=new z({componentDatatype:B.FLOAT,componentsPerAttribute:3,values:L})),t.tangent&&(w.tangent=new z({componentDatatype:B.FLOAT,componentsPerAttribute:3,values:D})),t.bitangent&&(w.bitangent=new z({componentDatatype:B.FLOAT,componentsPerAttribute:3,values:F})),t.st&&(w.st=new z({componentDatatype:B.FLOAT,componentsPerAttribute:2,values:T})),new Y({attributes:w,indices:P,primitiveType:W.TRIANGLES})}function x(e){e=e??U.EMPTY_OBJECT;let t=e.polygonHierarchy,o=e.textureCoordinates;G.defined("options.polygonHierarchy",t);let a=e.vertexFormat??f.DEFAULT;this._vertexFormat=f.clone(a),this._polygonHierarchy=t,this._stRotation=e.stRotation??0,this._ellipsoid=m.clone(e.ellipsoid??m.default),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=o,this.packedLength=u.computeHierarchyPackedLength(t,i)+f.packedLength+m.packedLength+(d(o)?u.computeHierarchyPackedLength(o,H):1)+2}x.fromPositions=function(e){e=e??U.EMPTY_OBJECT,G.defined("options.positions",e.positions);let t={polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates};return new x(t)};x.pack=function(e,t,o){return G.typeOf.object("value",e),G.defined("array",t),o=o??0,o=u.packPolygonHierarchy(e._polygonHierarchy,t,o,i),m.pack(e._ellipsoid,t,o),o+=m.packedLength,f.pack(e._vertexFormat,t,o),o+=f.packedLength,t[o++]=e._stRotation,d(e._textureCoordinates)?o=u.packPolygonHierarchy(e._textureCoordinates,t,o,H):t[o++]=-1,t[o++]=e.packedLength,t};var _t=m.clone(m.UNIT_SPHERE),At=new f,bt={polygonHierarchy:{}};x.unpack=function(e,t,o){G.defined("array",e),t=t??0;let a=u.unpackPolygonHierarchy(e,t,i);t=a.startingIndex,delete a.startingIndex;let y=m.unpack(e,t,_t);t+=m.packedLength;let _=f.unpack(e,t,At);t+=f.packedLength;let r=e[t++],n=e[t]===-1?void 0:u.unpackPolygonHierarchy(e,t,H);d(n)?(t=n.startingIndex,delete n.startingIndex):t++;let p=e[t++];return d(o)||(o=new x(bt)),o._polygonHierarchy=a,o._ellipsoid=m.clone(y,o._ellipsoid),o._vertexFormat=f.clone(_,o._vertexFormat),o._stRotation=r,o._textureCoordinates=n,o.packedLength=p,o};x.createGeometry=function(e){let t=e._vertexFormat,o=e._polygonHierarchy,a=e._stRotation,y=e._textureCoordinates,_=d(y),r=o.positions;if(r=tt(r,i.equalsEpsilon,!0),r.length<3)return;let n=mt,p=ft,A=ut,c=yt,P=ht;if(!Q.computeProjectTo2DArguments(r,M,c,P))return;if(n=i.cross(c,P,n),n=i.normalize(n,n),!i.equalsEpsilon(M,i.ZERO,V.EPSILON6)){let s=e._ellipsoid.geodeticSurfaceNormal(M,Pt);i.dot(n,s)<0&&(n=i.negate(n,n),c=i.negate(c,c))}let N=Q.createProjectPointsTo2DFunction(M,c,P),b=Q.createProjectPointTo2DFunction(M,c,P);t.tangent&&(p=i.clone(c,p)),t.bitangent&&(A=i.clone(P,A));let k=u.polygonsFromHierarchy(o,_,N,!1),C=k.hierarchy,L=k.polygons,D=function(s){return s},F=_?u.polygonsFromHierarchy(y,!0,D,!1).polygons:void 0;if(C.length===0)return;r=C[0].outerRing;let T=K.fromPoints(r),j=u.computeBoundingRectangle(n,b,r,a,at),R=[];for(let s=0;s<L.length;s++){let w=new I({geometry:wt(L[s],t,j,a,_?F[s]:void 0,b,n,p,A)});R.push(w)}let l=$.combineInstances(R)[0];l.attributes.position.values=new Float64Array(l.attributes.position.values),l.indices=J.createTypedArray(l.attributes.position.values.length/3,l.indices);let S=l.attributes;return t.position||delete S.position,new Y({attributes:S,indices:l.indices,primitiveType:l.primitiveType,boundingSphere:T})};var Z=x;function kt(e,t){return d(t)&&(e=Z.unpack(e,t)),Z.createGeometry(e)}var Xt=kt;export{Xt as default}; diff --git a/cesium/Workers/createCoplanarPolygonOutlineGeometry.js b/cesium/Workers/createCoplanarPolygonOutlineGeometry.js new file mode 100644 index 00000000..d6b01919 --- /dev/null +++ b/cesium/Workers/createCoplanarPolygonOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as T}from"./chunk-MOHWP7VV.js";import"./chunk-P5EFSOUF.js";import{a as l}from"./chunk-IEITL4VO.js";import"./chunk-AJH5KBOO.js";import{a as G}from"./chunk-XRJOFXJF.js";import{a as C}from"./chunk-QNPYEODC.js";import"./chunk-G72JFEXW.js";import"./chunk-6W2XFGWI.js";import"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import"./chunk-TCOMWBL2.js";import{a as L}from"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as w}from"./chunk-4WQ4VT5S.js";import{a as O}from"./chunk-6EINM7EY.js";import{b,c as d,d as k}from"./chunk-A4I25VN7.js";import{c as P}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as H}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c as g}from"./chunk-2AIOP76V.js";import{a as y,c as u}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{b as m}from"./chunk-NZBME2JK.js";import{f}from"./chunk-6DLS2UKD.js";function E(o){let e=o.length,t=new Float64Array(e*3),i=w.createTypedArray(e,e*2),r=0,a=0;for(let n=0;n<e;n++){let p=o[n];t[r++]=p.x,t[r++]=p.y,t[r++]=p.z,i[a++]=n,i[a++]=(n+1)%e}let s=new O({position:new k({componentDatatype:H.DOUBLE,componentsPerAttribute:3,values:t})});return new d({attributes:s,indices:i,primitiveType:b.LINES})}function c(o){o=o??u.EMPTY_OBJECT;let e=o.polygonHierarchy;m.defined("options.polygonHierarchy",e),this._polygonHierarchy=e,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=l.computeHierarchyPackedLength(e,y)+1}c.fromPositions=function(o){o=o??u.EMPTY_OBJECT,m.defined("options.positions",o.positions);let e={polygonHierarchy:{positions:o.positions}};return new c(e)};c.pack=function(o,e,t){return m.typeOf.object("value",o),m.defined("array",e),t=t??0,t=l.packPolygonHierarchy(o._polygonHierarchy,e,t,y),e[t]=o.packedLength,e};var v={polygonHierarchy:{}};c.unpack=function(o,e,t){m.defined("array",o),e=e??0;let i=l.unpackPolygonHierarchy(o,e,y);e=i.startingIndex,delete i.startingIndex;let r=o[e];return f(t)||(t=new c(v)),t._polygonHierarchy=i,t.packedLength=r,t};c.createGeometry=function(o){let e=o._polygonHierarchy,t=e.positions;if(t=L(t,y.equalsEpsilon,!0),t.length<3||!T.validOutline(t))return;let r=l.polygonOutlinesFromHierarchy(e,!1);if(r.length===0)return;let a=[];for(let p=0;p<r.length;p++){let _=new G({geometry:E(r[p])});a.push(_)}let s=C.combineInstances(a)[0],n=P.fromPoints(e.positions);return new d({attributes:s.attributes,indices:s.indices,primitiveType:s.primitiveType,boundingSphere:n})};var h=c;function A(o,e){return f(e)&&(o=h.unpack(o,e)),o._ellipsoid=g.clone(o._ellipsoid),h.createGeometry(o)}var Z=A;export{Z as default}; diff --git a/cesium/Workers/createCorridorGeometry.js b/cesium/Workers/createCorridorGeometry.js new file mode 100644 index 00000000..f1c682c6 --- /dev/null +++ b/cesium/Workers/createCorridorGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as M}from"./chunk-YP4SXJYZ.js";import{a as ut}from"./chunk-LHBFSFJE.js";import"./chunk-6AEO73KW.js";import"./chunk-WGIRJIIK.js";import{a as bt}from"./chunk-ML6MR2RA.js";import{a as J}from"./chunk-AKELQO2L.js";import"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import{b as _t}from"./chunk-TCOMWBL2.js";import{a as Pt}from"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as Nt}from"./chunk-4WQ4VT5S.js";import{a as Dt}from"./chunk-6EINM7EY.js";import{b as Mt,c as Ct,d as F}from"./chunk-A4I25VN7.js";import{c as St}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{j as Et}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as v}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as At,c as Y}from"./chunk-2AIOP76V.js";import{a as o,c as Tt}from"./chunk-IAE6APK2.js";import{a as it}from"./chunk-3E7FIXV7.js";import{b as ot}from"./chunk-NZBME2JK.js";import{f as Q}from"./chunk-6DLS2UKD.js";var Rt=new o,kt=new o,yt=new o,wt=new o,jt=new o,Ht=new o,st=new o,dt=new o;function Ut(t,e){for(let i=0;i<t.length;i++)t[i]=e.scaleToGeodeticSurface(t[i],t[i]);return t}function X(t,e,i,l,d,f){let h=t.normals,O=t.tangents,g=t.bitangents,r=o.normalize(o.cross(i,e,st),st);f.normal&&M.addAttribute(h,e,l,d),f.tangent&&M.addAttribute(O,r,l,d),f.bitangent&&M.addAttribute(g,i,l,d)}function Bt(t,e,i){let l=t.positions,d=t.corners,f=t.endPositions,h=t.lefts,O=t.normals,g=new Dt,r,a=0,s=0,n,A=0,u;for(n=0;n<l.length;n+=2)u=l[n].length-3,a+=u,A+=u*2,s+=l[n+1].length-3;for(a+=3,s+=3,n=0;n<d.length;n++){r=d[n];let c=d[n].leftPositions;Q(c)?(u=c.length,a+=u,A+=u):(u=d[n].rightPositions.length,s+=u,A+=u)}let b=Q(f),p;b&&(p=f[0].length-3,a+=p,s+=p,p/=3,A+=p*6);let z=a+s,m=new Float64Array(z),D=e.normal?new Float32Array(z):void 0,V=e.tangent?new Float32Array(z):void 0,rt=e.bitangent?new Float32Array(z):void 0,R={normals:D,tangents:V,bitangents:rt},y=0,E=z-1,S,C,H,q,P=Rt,w=kt,et,nt,pt=p/2,_=Nt.createTypedArray(z/3,A),T=0;if(b){nt=yt,et=wt;let c=f[0];for(P=o.fromArray(O,0,P),w=o.fromArray(h,0,w),n=0;n<pt;n++)nt=o.fromArray(c,(pt-1-n)*3,nt),et=o.fromArray(c,(pt+n)*3,et),M.addAttribute(m,et,y),M.addAttribute(m,nt,void 0,E),X(R,P,w,y,E,e),C=y/3,q=C+1,S=(E-2)/3,H=S-1,_[T++]=S,_[T++]=C,_[T++]=H,_[T++]=H,_[T++]=C,_[T++]=q,y+=3,E-=3}let mt=0,ft=0,at=l[mt++],j=l[mt++];m.set(at,y),m.set(j,E-j.length+1),w=o.fromArray(h,ft,w);let lt,ct;for(u=j.length-3,n=0;n<u;n+=3)lt=i.geodeticSurfaceNormal(o.fromArray(at,n,st),st),ct=i.geodeticSurfaceNormal(o.fromArray(j,u-n,dt),dt),P=o.normalize(o.add(lt,ct,P),P),X(R,P,w,y,E,e),C=y/3,q=C+1,S=(E-2)/3,H=S-1,_[T++]=S,_[T++]=C,_[T++]=H,_[T++]=H,_[T++]=C,_[T++]=q,y+=3,E-=3;for(lt=i.geodeticSurfaceNormal(o.fromArray(at,u,st),st),ct=i.geodeticSurfaceNormal(o.fromArray(j,u,dt),dt),P=o.normalize(o.add(lt,ct,P),P),ft+=3,n=0;n<d.length;n++){let c;r=d[n];let Z=r.leftPositions,$=r.rightPositions,L,U,N=Ht,k=yt,B=wt;if(P=o.fromArray(O,ft,P),Q(Z)){for(X(R,P,w,void 0,E,e),E-=3,L=q,U=H,c=0;c<Z.length/3;c++)N=o.fromArray(Z,c*3,N),_[T++]=L,_[T++]=U-c-1,_[T++]=U-c,M.addAttribute(m,N,void 0,E),k=o.fromArray(m,(U-c-1)*3,k),B=o.fromArray(m,L*3,B),w=o.normalize(o.subtract(k,B,w),w),X(R,P,w,void 0,E,e),E-=3;N=o.fromArray(m,L*3,N),k=o.subtract(o.fromArray(m,U*3,k),N,k),B=o.subtract(o.fromArray(m,(U-c)*3,B),N,B),w=o.normalize(o.add(k,B,w),w),X(R,P,w,y,void 0,e),y+=3}else{for(X(R,P,w,y,void 0,e),y+=3,L=H,U=q,c=0;c<$.length/3;c++)N=o.fromArray($,c*3,N),_[T++]=L,_[T++]=U+c,_[T++]=U+c+1,M.addAttribute(m,N,y),k=o.fromArray(m,L*3,k),B=o.fromArray(m,(U+c)*3,B),w=o.normalize(o.subtract(k,B,w),w),X(R,P,w,y,void 0,e),y+=3;N=o.fromArray(m,L*3,N),k=o.subtract(o.fromArray(m,(U+c)*3,k),N,k),B=o.subtract(o.fromArray(m,U*3,B),N,B),w=o.normalize(o.negate(o.add(B,k,w),w),w),X(R,P,w,void 0,E,e),E-=3}for(at=l[mt++],j=l[mt++],at.splice(0,3),j.splice(j.length-3,3),m.set(at,y),m.set(j,E-j.length+1),u=j.length-3,ft+=3,w=o.fromArray(h,ft,w),c=0;c<j.length;c+=3)lt=i.geodeticSurfaceNormal(o.fromArray(at,c,st),st),ct=i.geodeticSurfaceNormal(o.fromArray(j,u-c,dt),dt),P=o.normalize(o.add(lt,ct,P),P),X(R,P,w,y,E,e),q=y/3,C=q-1,H=(E-2)/3,S=H+1,_[T++]=S,_[T++]=C,_[T++]=H,_[T++]=H,_[T++]=C,_[T++]=q,y+=3,E-=3;y-=3,E+=3}if(P=o.fromArray(O,O.length-3,P),X(R,P,w,y,E,e),b){y+=3,E-=3,nt=yt,et=wt;let c=f[1];for(n=0;n<pt;n++)nt=o.fromArray(c,(p-n-1)*3,nt),et=o.fromArray(c,n*3,et),M.addAttribute(m,nt,void 0,E),M.addAttribute(m,et,y),X(R,P,w,y,E,e),q=y/3,C=q-1,H=(E-2)/3,S=H+1,_[T++]=S,_[T++]=C,_[T++]=H,_[T++]=H,_[T++]=C,_[T++]=q,y+=3,E-=3}if(g.position=new F({componentDatatype:v.DOUBLE,componentsPerAttribute:3,values:m}),e.st){let c=new Float32Array(z/3*2),Z,$,L=0;if(b){a/=3,s/=3;let U=Math.PI/(p+1);$=1/(a-p+1),Z=1/(s-p+1);let N,k=p/2;for(n=k+1;n<p+1;n++)N=it.PI_OVER_TWO+U*n,c[L++]=Z*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N));for(n=1;n<s-p+1;n++)c[L++]=n*Z,c[L++]=0;for(n=p;n>k;n--)N=it.PI_OVER_TWO-n*U,c[L++]=1-Z*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N));for(n=k;n>0;n--)N=it.PI_OVER_TWO-U*n,c[L++]=1-$*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N));for(n=a-p;n>0;n--)c[L++]=n*$,c[L++]=1;for(n=1;n<k+1;n++)N=it.PI_OVER_TWO+U*n,c[L++]=$*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N))}else{for(a/=3,s/=3,$=1/(a-1),Z=1/(s-1),n=0;n<s;n++)c[L++]=n*Z,c[L++]=0;for(n=a;n>0;n--)c[L++]=(n-1)*$,c[L++]=1}g.st=new F({componentDatatype:v.FLOAT,componentsPerAttribute:2,values:c})}return e.normal&&(g.normal=new F({componentDatatype:v.FLOAT,componentsPerAttribute:3,values:R.normals})),e.tangent&&(g.tangent=new F({componentDatatype:v.FLOAT,componentsPerAttribute:3,values:R.tangents})),e.bitangent&&(g.bitangent=new F({componentDatatype:v.FLOAT,componentsPerAttribute:3,values:R.bitangents})),{attributes:g,indices:_}}function qt(t,e){if(!e.normal&&!e.tangent&&!e.bitangent&&!e.st)return t;let i=t.position.values,l,d;(e.normal||e.bitangent)&&(l=t.normal.values,d=t.bitangent.values);let f=t.position.values.length/18,h=f*3,O=f*2,g=h*2,r;if(e.normal||e.bitangent||e.tangent){let a=e.normal?new Float32Array(h*6):void 0,s=e.tangent?new Float32Array(h*6):void 0,n=e.bitangent?new Float32Array(h*6):void 0,A=Rt,u=kt,b=yt,p=wt,z=jt,m=Ht,D=g;for(r=0;r<h;r+=3){let V=D+g;A=o.fromArray(i,r,A),u=o.fromArray(i,r+h,u),b=o.fromArray(i,(r+3)%h,b),u=o.subtract(u,A,u),b=o.subtract(b,A,b),p=o.normalize(o.cross(u,b,p),p),e.normal&&(M.addAttribute(a,p,V),M.addAttribute(a,p,V+3),M.addAttribute(a,p,D),M.addAttribute(a,p,D+3)),(e.tangent||e.bitangent)&&(m=o.fromArray(l,r,m),e.bitangent&&(M.addAttribute(n,m,V),M.addAttribute(n,m,V+3),M.addAttribute(n,m,D),M.addAttribute(n,m,D+3)),e.tangent&&(z=o.normalize(o.cross(m,p,z),z),M.addAttribute(s,z,V),M.addAttribute(s,z,V+3),M.addAttribute(s,z,D),M.addAttribute(s,z,D+3))),D+=6}if(e.normal){for(a.set(l),r=0;r<h;r+=3)a[r+h]=-l[r],a[r+h+1]=-l[r+1],a[r+h+2]=-l[r+2];t.normal.values=a}else t.normal=void 0;if(e.bitangent?(n.set(d),n.set(d,h),t.bitangent.values=n):t.bitangent=void 0,e.tangent){let V=t.tangent.values;s.set(V),s.set(V,h),t.tangent.values=s}}if(e.st){let a=t.st.values,s=new Float32Array(O*6);s.set(a),s.set(a,O);let n=O*2;for(let A=0;A<2;A++){for(s[n++]=a[0],s[n++]=a[1],r=2;r<O;r+=2){let u=a[r],b=a[r+1];s[n++]=u,s[n++]=b,s[n++]=u,s[n++]=b}s[n++]=a[0],s[n++]=a[1]}t.st.values=s}return t}function Ot(t,e,i){i[e++]=t[0],i[e++]=t[1],i[e++]=t[2];for(let l=3;l<t.length;l+=3){let d=t[l],f=t[l+1],h=t[l+2];i[e++]=d,i[e++]=f,i[e++]=h,i[e++]=d,i[e++]=f,i[e++]=h}return i[e++]=t[0],i[e++]=t[1],i[e++]=t[2],i}function Jt(t,e){let i=new J({position:e.position,normal:e.normal||e.bitangent||t.shadowVolume,tangent:e.tangent,bitangent:e.normal||e.bitangent,st:e.st}),l=t.ellipsoid,d=M.computePositions(t),f=Bt(d,i,l),h=t.height,O=t.extrudedHeight,g=f.attributes,r=f.indices,a=g.position.values,s=a.length,n=new Float64Array(s*6),A=new Float64Array(s);A.set(a);let u=new Float64Array(s*4);a=_t.scaleToGeodeticHeight(a,h,l),u=Ot(a,0,u),A=_t.scaleToGeodeticHeight(A,O,l),u=Ot(A,s*2,u),n.set(a),n.set(A,s),n.set(u,s*2),g.position.values=n,g=qt(g,e);let b,p=s/3;if(t.shadowVolume){let S=g.normal.values;s=S.length;let C=new Float32Array(s*6);for(b=0;b<s;b++)S[b]=-S[b];C.set(S,s),C=Ot(S,s*4,C),g.extrudeDirection=new F({componentDatatype:v.FLOAT,componentsPerAttribute:3,values:C}),e.normal||(g.normal=void 0)}if(Q(t.offsetAttribute)){let S=new Uint8Array(p*6);if(t.offsetAttribute===bt.TOP)S=S.fill(1,0,p).fill(1,p*2,p*4);else{let C=t.offsetAttribute===bt.NONE?0:1;S=S.fill(C)}g.applyOffset=new F({componentDatatype:v.UNSIGNED_BYTE,componentsPerAttribute:1,values:S})}let z=r.length,m=p+p,D=Nt.createTypedArray(n.length/3,z*2+m*3);D.set(r);let V=z;for(b=0;b<z;b+=3){let S=r[b],C=r[b+1],H=r[b+2];D[V++]=H+p,D[V++]=C+p,D[V++]=S+p}let rt,R,y,E;for(b=0;b<m;b+=2)rt=b+m,R=rt+m,y=rt+1,E=R+1,D[V++]=rt,D[V++]=R,D[V++]=y,D[V++]=y,D[V++]=R,D[V++]=E;return{attributes:g,indices:D}}var Vt=new o,ht=new o,K=new At;function zt(t,e,i,l,d,f){let h=o.subtract(e,t,Vt);o.normalize(h,h);let O=i.geodeticSurfaceNormal(t,ht),g=o.cross(h,O,Vt);o.multiplyByScalar(g,l,g);let r=d.latitude,a=d.longitude,s=f.latitude,n=f.longitude;o.add(t,g,ht),i.cartesianToCartographic(ht,K);let A=K.latitude,u=K.longitude;r=Math.min(r,A),a=Math.min(a,u),s=Math.max(s,A),n=Math.max(n,u),o.subtract(t,g,ht),i.cartesianToCartographic(ht,K),A=K.latitude,u=K.longitude,r=Math.min(r,A),a=Math.min(a,u),s=Math.max(s,A),n=Math.max(n,u),d.latitude=r,d.longitude=a,f.latitude=s,f.longitude=n}var G=new o,gt=new o,I=new At,W=new At;function Yt(t,e,i,l,d){t=Ut(t,e);let f=Pt(t,o.equalsEpsilon),h=f.length;if(h<2||i<=0)return new Et;let O=i*.5;I.latitude=Number.POSITIVE_INFINITY,I.longitude=Number.POSITIVE_INFINITY,W.latitude=Number.NEGATIVE_INFINITY,W.longitude=Number.NEGATIVE_INFINITY;let g,r;if(l===ut.ROUNDED){let n=f[0];o.subtract(n,f[1],G),o.normalize(G,G),o.multiplyByScalar(G,O,G),o.add(n,G,gt),e.cartesianToCartographic(gt,K),g=K.latitude,r=K.longitude,I.latitude=Math.min(I.latitude,g),I.longitude=Math.min(I.longitude,r),W.latitude=Math.max(W.latitude,g),W.longitude=Math.max(W.longitude,r)}for(let n=0;n<h-1;++n)zt(f[n],f[n+1],e,O,I,W);let a=f[h-1];o.subtract(a,f[h-2],G),o.normalize(G,G),o.multiplyByScalar(G,O,G),o.add(a,G,gt),zt(a,gt,e,O,I,W),l===ut.ROUNDED&&(e.cartesianToCartographic(gt,K),g=K.latitude,r=K.longitude,I.latitude=Math.min(I.latitude,g),I.longitude=Math.min(I.longitude,r),W.latitude=Math.max(W.latitude,g),W.longitude=Math.max(W.longitude,r));let s=Q(d)?d:new Et;return s.north=W.latitude,s.south=I.latitude,s.east=W.longitude,s.west=I.longitude,s}function tt(t){t=t??Tt.EMPTY_OBJECT;let e=t.positions,i=t.width;ot.defined("options.positions",e),ot.defined("options.width",i);let l=t.height??0,d=t.extrudedHeight??l;this._positions=e,this._ellipsoid=Y.clone(t.ellipsoid??Y.default),this._vertexFormat=J.clone(t.vertexFormat??J.DEFAULT),this._width=i,this._height=Math.max(l,d),this._extrudedHeight=Math.min(l,d),this._cornerType=t.cornerType??ut.ROUNDED,this._granularity=t.granularity??it.RADIANS_PER_DEGREE,this._shadowVolume=t.shadowVolume??!1,this._workerName="createCorridorGeometry",this._offsetAttribute=t.offsetAttribute,this._rectangle=void 0,this.packedLength=1+e.length*o.packedLength+Y.packedLength+J.packedLength+7}tt.pack=function(t,e,i){ot.defined("value",t),ot.defined("array",e),i=i??0;let l=t._positions,d=l.length;e[i++]=d;for(let f=0;f<d;++f,i+=o.packedLength)o.pack(l[f],e,i);return Y.pack(t._ellipsoid,e,i),i+=Y.packedLength,J.pack(t._vertexFormat,e,i),i+=J.packedLength,e[i++]=t._width,e[i++]=t._height,e[i++]=t._extrudedHeight,e[i++]=t._cornerType,e[i++]=t._granularity,e[i++]=t._shadowVolume?1:0,e[i]=t._offsetAttribute??-1,e};var It=Y.clone(Y.UNIT_SPHERE),Wt=new J,x={positions:void 0,ellipsoid:It,vertexFormat:Wt,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};tt.unpack=function(t,e,i){ot.defined("array",t),e=e??0;let l=t[e++],d=new Array(l);for(let u=0;u<l;++u,e+=o.packedLength)d[u]=o.unpack(t,e);let f=Y.unpack(t,e,It);e+=Y.packedLength;let h=J.unpack(t,e,Wt);e+=J.packedLength;let O=t[e++],g=t[e++],r=t[e++],a=t[e++],s=t[e++],n=t[e++]===1,A=t[e];return Q(i)?(i._positions=d,i._ellipsoid=Y.clone(f,i._ellipsoid),i._vertexFormat=J.clone(h,i._vertexFormat),i._width=O,i._height=g,i._extrudedHeight=r,i._cornerType=a,i._granularity=s,i._shadowVolume=n,i._offsetAttribute=A===-1?void 0:A,i):(x.positions=d,x.width=O,x.height=g,x.extrudedHeight=r,x.cornerType=a,x.granularity=s,x.shadowVolume=n,x.offsetAttribute=A===-1?void 0:A,new tt(x))};tt.computeRectangle=function(t,e){t=t??Tt.EMPTY_OBJECT;let i=t.positions,l=t.width;ot.defined("options.positions",i),ot.defined("options.width",l);let d=t.ellipsoid??Y.default,f=t.cornerType??ut.ROUNDED;return Yt(i,d,l,f,e)};tt.createGeometry=function(t){let e=t._positions,i=t._width,l=t._ellipsoid;e=Ut(e,l);let d=Pt(e,o.equalsEpsilon);if(d.length<2||i<=0)return;let f=t._height,h=t._extrudedHeight,O=!it.equalsEpsilon(f,h,0,it.EPSILON2),g=t._vertexFormat,r={ellipsoid:l,positions:d,width:i,cornerType:t._cornerType,granularity:t._granularity,saveAttributes:!0},a;if(O)r.height=f,r.extrudedHeight=h,r.shadowVolume=t._shadowVolume,r.offsetAttribute=t._offsetAttribute,a=Jt(r,g);else{let A=M.computePositions(r);if(a=Bt(A,g,l),a.attributes.position.values=_t.scaleToGeodeticHeight(a.attributes.position.values,f,l),Q(t._offsetAttribute)){let u=t._offsetAttribute===bt.NONE?0:1,b=a.attributes.position.values.length,p=new Uint8Array(b/3).fill(u);a.attributes.applyOffset=new F({componentDatatype:v.UNSIGNED_BYTE,componentsPerAttribute:1,values:p})}}let s=a.attributes,n=St.fromVertices(s.position.values,void 0,3);return g.position||(a.attributes.position.values=void 0),new Ct({attributes:s,indices:a.indices,primitiveType:Mt.TRIANGLES,boundingSphere:n,offsetAttribute:t._offsetAttribute})};tt.createShadowVolume=function(t,e,i){let l=t._granularity,d=t._ellipsoid,f=e(l,d),h=i(l,d);return new tt({positions:t._positions,width:t._width,cornerType:t._cornerType,ellipsoid:d,granularity:l,extrudedHeight:f,height:h,vertexFormat:J.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(tt.prototype,{rectangle:{get:function(){return Q(this._rectangle)||(this._rectangle=Yt(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var Lt=tt;function Gt(t,e){return Q(e)&&(t=Lt.unpack(t,e)),t._ellipsoid=Y.clone(t._ellipsoid),Lt.createGeometry(t)}var Ae=Gt;export{Ae as default}; diff --git a/cesium/Workers/createCorridorOutlineGeometry.js b/cesium/Workers/createCorridorOutlineGeometry.js new file mode 100644 index 00000000..aa39a52a --- /dev/null +++ b/cesium/Workers/createCorridorOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as C}from"./chunk-YP4SXJYZ.js";import{a as Q}from"./chunk-LHBFSFJE.js";import"./chunk-6AEO73KW.js";import"./chunk-WGIRJIIK.js";import{a as J}from"./chunk-ML6MR2RA.js";import"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import{b as K}from"./chunk-TCOMWBL2.js";import{a as it}from"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as X}from"./chunk-4WQ4VT5S.js";import{a as et}from"./chunk-6EINM7EY.js";import{b as I,c as tt,d as z}from"./chunk-A4I25VN7.js";import{c as x}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as q}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c as P}from"./chunk-2AIOP76V.js";import{a as A,c as $}from"./chunk-IAE6APK2.js";import{a as Y}from"./chunk-3E7FIXV7.js";import{b as B}from"./chunk-NZBME2JK.js";import{f as N}from"./chunk-6DLS2UKD.js";var ot=new A,nt=new A,lt=new A;function ft(t,i){for(let e=0;e<t.length;e++)t[e]=i.scaleToGeodeticSurface(t[e],t[e]);return t}function st(t,i){let e=[],r=t.positions,h=t.corners,m=t.endPositions,H=new et,y,u=0,p=0,o,g=0,d;for(o=0;o<r.length;o+=2)d=r[o].length-3,u+=d,g+=d/3*4,p+=r[o+1].length-3;for(u+=3,p+=3,o=0;o<h.length;o++){y=h[o];let c=h[o].leftPositions;N(c)?(d=c.length,u+=d,g+=d/3*2):(d=h[o].rightPositions.length,p+=d,g+=d/3*2)}let _=N(m),w;_&&(w=m[0].length-3,u+=w,p+=w,w/=3,g+=w*4);let T=u+p,b=new Float64Array(T),n=0,s=T-1,a,E,L,k,S,U,j=w/2,l=X.createTypedArray(T/3,g+4),f=0;if(l[f++]=n/3,l[f++]=(s-2)/3,_){e.push(n/3),U=ot,S=nt;let c=m[0];for(o=0;o<j;o++)U=A.fromArray(c,(j-1-o)*3,U),S=A.fromArray(c,(j+o)*3,S),C.addAttribute(b,S,n),C.addAttribute(b,U,void 0,s),E=n/3,k=E+1,a=(s-2)/3,L=a-1,l[f++]=a,l[f++]=L,l[f++]=E,l[f++]=k,n+=3,s-=3}let V=0,F=r[V++],D=r[V++];for(b.set(F,n),b.set(D,s-D.length+1),d=D.length-3,e.push(n/3,(s-2)/3),o=0;o<d;o+=3)E=n/3,k=E+1,a=(s-2)/3,L=a-1,l[f++]=a,l[f++]=L,l[f++]=E,l[f++]=k,n+=3,s-=3;for(o=0;o<h.length;o++){let c;y=h[o];let G=y.leftPositions,W=y.rightPositions,O,R=lt;if(N(G)){for(s-=3,O=L,e.push(k),c=0;c<G.length/3;c++)R=A.fromArray(G,c*3,R),l[f++]=O-c-1,l[f++]=O-c,C.addAttribute(b,R,void 0,s),s-=3;e.push(O-Math.floor(G.length/6)),i===Q.BEVELED&&e.push((s-2)/3+1),n+=3}else{for(n+=3,O=k,e.push(L),c=0;c<W.length/3;c++)R=A.fromArray(W,c*3,R),l[f++]=O+c,l[f++]=O+c+1,C.addAttribute(b,R,n),n+=3;e.push(O+Math.floor(W.length/6)),i===Q.BEVELED&&e.push(n/3-1),s-=3}for(F=r[V++],D=r[V++],F.splice(0,3),D.splice(D.length-3,3),b.set(F,n),b.set(D,s-D.length+1),d=D.length-3,c=0;c<D.length;c+=3)k=n/3,E=k-1,L=(s-2)/3,a=L+1,l[f++]=a,l[f++]=L,l[f++]=E,l[f++]=k,n+=3,s-=3;n-=3,s+=3,e.push(n/3,(s-2)/3)}if(_){n+=3,s-=3,U=ot,S=nt;let c=m[1];for(o=0;o<j;o++)U=A.fromArray(c,(w-o-1)*3,U),S=A.fromArray(c,o*3,S),C.addAttribute(b,U,void 0,s),C.addAttribute(b,S,n),k=n/3,E=k-1,L=(s-2)/3,a=L+1,l[f++]=a,l[f++]=L,l[f++]=E,l[f++]=k,n+=3,s-=3;e.push(n/3)}else e.push(n/3,(s-2)/3);return l[f++]=n/3,l[f++]=(s-2)/3,H.position=new z({componentDatatype:q.DOUBLE,componentsPerAttribute:3,values:b}),{attributes:H,indices:l,wallIndices:e}}function ct(t){let i=t.ellipsoid,e=C.computePositions(t),r=st(e,t.cornerType),h=r.wallIndices,m=t.height,H=t.extrudedHeight,y=r.attributes,u=r.indices,p=y.position.values,o=p.length,g=new Float64Array(o);g.set(p);let d=new Float64Array(o*2);if(p=K.scaleToGeodeticHeight(p,m,i),g=K.scaleToGeodeticHeight(g,H,i),d.set(p),d.set(g,o),y.position.values=d,o/=3,N(t.offsetAttribute)){let a=new Uint8Array(o*2);if(t.offsetAttribute===J.TOP)a=a.fill(1,0,o);else{let E=t.offsetAttribute===J.NONE?0:1;a=a.fill(E)}y.applyOffset=new z({componentDatatype:q.UNSIGNED_BYTE,componentsPerAttribute:1,values:a})}let _,w=u.length,T=X.createTypedArray(d.length/3,(w+h.length)*2);T.set(u);let b=w;for(_=0;_<w;_+=2){let a=u[_],E=u[_+1];T[b++]=a+o,T[b++]=E+o}let n,s;for(_=0;_<h.length;_++)n=h[_],s=n+o,T[b++]=n,T[b++]=s;return{attributes:y,indices:T}}function M(t){t=t??$.EMPTY_OBJECT;let i=t.positions,e=t.width;B.typeOf.object("options.positions",i),B.typeOf.number("options.width",e);let r=t.height??0,h=t.extrudedHeight??r;this._positions=i,this._ellipsoid=P.clone(t.ellipsoid??P.default),this._width=e,this._height=Math.max(r,h),this._extrudedHeight=Math.min(r,h),this._cornerType=t.cornerType??Q.ROUNDED,this._granularity=t.granularity??Y.RADIANS_PER_DEGREE,this._offsetAttribute=t.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+i.length*A.packedLength+P.packedLength+6}M.pack=function(t,i,e){B.typeOf.object("value",t),B.typeOf.object("array",i),e=e??0;let r=t._positions,h=r.length;i[e++]=h;for(let m=0;m<h;++m,e+=A.packedLength)A.pack(r[m],i,e);return P.pack(t._ellipsoid,i,e),e+=P.packedLength,i[e++]=t._width,i[e++]=t._height,i[e++]=t._extrudedHeight,i[e++]=t._cornerType,i[e++]=t._granularity,i[e]=t._offsetAttribute??-1,i};var rt=P.clone(P.UNIT_SPHERE),v={positions:void 0,ellipsoid:rt,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};M.unpack=function(t,i,e){B.typeOf.object("array",t),i=i??0;let r=t[i++],h=new Array(r);for(let d=0;d<r;++d,i+=A.packedLength)h[d]=A.unpack(t,i);let m=P.unpack(t,i,rt);i+=P.packedLength;let H=t[i++],y=t[i++],u=t[i++],p=t[i++],o=t[i++],g=t[i];return N(e)?(e._positions=h,e._ellipsoid=P.clone(m,e._ellipsoid),e._width=H,e._height=y,e._extrudedHeight=u,e._cornerType=p,e._granularity=o,e._offsetAttribute=g===-1?void 0:g,e):(v.positions=h,v.width=H,v.height=y,v.extrudedHeight=u,v.cornerType=p,v.granularity=o,v.offsetAttribute=g===-1?void 0:g,new M(v))};M.createGeometry=function(t){let i=t._positions,e=t._width,r=t._ellipsoid;i=ft(i,r);let h=it(i,A.equalsEpsilon);if(h.length<2||e<=0)return;let m=t._height,H=t._extrudedHeight,y=!Y.equalsEpsilon(m,H,0,Y.EPSILON2),u={ellipsoid:r,positions:h,width:e,cornerType:t._cornerType,granularity:t._granularity,saveAttributes:!1},p;if(y)u.height=m,u.extrudedHeight=H,u.offsetAttribute=t._offsetAttribute,p=ct(u);else{let d=C.computePositions(u);if(p=st(d,u.cornerType),p.attributes.position.values=K.scaleToGeodeticHeight(p.attributes.position.values,m,r),N(t._offsetAttribute)){let _=p.attributes.position.values.length,w=t._offsetAttribute===J.NONE?0:1,T=new Uint8Array(_/3).fill(w);p.attributes.applyOffset=new z({componentDatatype:q.UNSIGNED_BYTE,componentsPerAttribute:1,values:T})}}let o=p.attributes,g=x.fromVertices(o.position.values,void 0,3);return new tt({attributes:o,indices:p.indices,primitiveType:I.LINES,boundingSphere:g,offsetAttribute:t._offsetAttribute})};var Z=M;function ht(t,i){return N(i)&&(t=Z.unpack(t,i)),t._ellipsoid=P.clone(t._ellipsoid),Z.createGeometry(t)}var Ot=ht;export{Ot as default}; diff --git a/cesium/Workers/createCylinderGeometry.js b/cesium/Workers/createCylinderGeometry.js new file mode 100644 index 00000000..c4bd447b --- /dev/null +++ b/cesium/Workers/createCylinderGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-3N6OW3OY.js";import"./chunk-PEDE2P3Q.js";import"./chunk-ML6MR2RA.js";import"./chunk-AKELQO2L.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as o}from"./chunk-6DLS2UKD.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; diff --git a/cesium/Workers/createCylinderOutlineGeometry.js b/cesium/Workers/createCylinderOutlineGeometry.js new file mode 100644 index 00000000..168b3c7f --- /dev/null +++ b/cesium/Workers/createCylinderOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as M}from"./chunk-PEDE2P3Q.js";import{a as L}from"./chunk-ML6MR2RA.js";import{a as N}from"./chunk-4WQ4VT5S.js";import{a as k}from"./chunk-6EINM7EY.js";import{b as D,c as P,d as A}from"./chunk-A4I25VN7.js";import{c as y}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as R}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{b as _}from"./chunk-2AIOP76V.js";import{a as T,c as S}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{a as E,b as m}from"./chunk-NZBME2JK.js";import{f as b}from"./chunk-6DLS2UKD.js";var V=new _;function d(t){t=t??S.EMPTY_OBJECT;let e=t.length,i=t.topRadius,f=t.bottomRadius,o=t.slices??128,u=Math.max(t.numberOfVerticalLines??16,0);if(m.typeOf.number("options.positions",e),m.typeOf.number("options.topRadius",i),m.typeOf.number("options.bottomRadius",f),m.typeOf.number.greaterThanOrEquals("options.slices",o,3),b(t.offsetAttribute)&&t.offsetAttribute===L.TOP)throw new E("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._length=e,this._topRadius=i,this._bottomRadius=f,this._slices=o,this._numberOfVerticalLines=u,this._offsetAttribute=t.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}d.packedLength=6;d.pack=function(t,e,i){return m.typeOf.object("value",t),m.defined("array",e),i=i??0,e[i++]=t._length,e[i++]=t._topRadius,e[i++]=t._bottomRadius,e[i++]=t._slices,e[i++]=t._numberOfVerticalLines,e[i]=t._offsetAttribute??-1,e};var p={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};d.unpack=function(t,e,i){m.defined("array",t),e=e??0;let f=t[e++],o=t[e++],u=t[e++],l=t[e++],a=t[e++],c=t[e];return b(i)?(i._length=f,i._topRadius=o,i._bottomRadius=u,i._slices=l,i._numberOfVerticalLines=a,i._offsetAttribute=c===-1?void 0:c,i):(p.length=f,p.topRadius=o,p.bottomRadius=u,p.slices=l,p.numberOfVerticalLines=a,p.offsetAttribute=c===-1?void 0:c,new d(p))};d.createGeometry=function(t){let e=t._length,i=t._topRadius,f=t._bottomRadius,o=t._slices,u=t._numberOfVerticalLines;if(e<=0||i<0||f<0||i===0&&f===0)return;let l=o*2,a=M.computePositions(e,i,f,o,!1),c=o*2,C;if(u>0){let h=Math.min(u,o);C=Math.round(o/h),c+=h}let s=N.createTypedArray(l,c*2),r=0,n;for(n=0;n<o-1;n++)s[r++]=n,s[r++]=n+1,s[r++]=n+o,s[r++]=n+1+o;if(s[r++]=o-1,s[r++]=0,s[r++]=o+o-1,s[r++]=o,u>0)for(n=0;n<o;n+=C)s[r++]=n,s[r++]=n+o;let O=new k;O.position=new A({componentDatatype:R.DOUBLE,componentsPerAttribute:3,values:a}),V.x=e*.5,V.y=Math.max(f,i);let g=new y(T.ZERO,_.magnitude(V));if(b(t._offsetAttribute)){e=a.length;let h=t._offsetAttribute===L.NONE?0:1,B=new Uint8Array(e/3).fill(h);O.applyOffset=new A({componentDatatype:R.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}return new P({attributes:O,indices:s,primitiveType:D.LINES,boundingSphere:g,offsetAttribute:t._offsetAttribute})};var w=d;function G(t,e){return b(e)&&(t=w.unpack(t,e)),w.createGeometry(t)}var et=G;export{et as default}; diff --git a/cesium/Workers/createEllipseGeometry.js b/cesium/Workers/createEllipseGeometry.js new file mode 100644 index 00000000..240f3da8 --- /dev/null +++ b/cesium/Workers/createEllipseGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as o}from"./chunk-DM7KUSL2.js";import"./chunk-P7N43FDO.js";import"./chunk-XRJOFXJF.js";import"./chunk-QNPYEODC.js";import"./chunk-G72JFEXW.js";import"./chunk-6W2XFGWI.js";import"./chunk-ML6MR2RA.js";import"./chunk-AKELQO2L.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c}from"./chunk-2AIOP76V.js";import{a as t}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as n}from"./chunk-6DLS2UKD.js";function a(r,i){return n(i)&&(r=o.unpack(r,i)),r._center=t.clone(r._center),r._ellipsoid=c.clone(r._ellipsoid),o.createGeometry(r)}var u=a;export{u as default}; diff --git a/cesium/Workers/createEllipseOutlineGeometry.js b/cesium/Workers/createEllipseOutlineGeometry.js new file mode 100644 index 00000000..2ebc2303 --- /dev/null +++ b/cesium/Workers/createEllipseOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as i}from"./chunk-QS7V5G6Y.js";import"./chunk-P7N43FDO.js";import"./chunk-ML6MR2RA.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c}from"./chunk-2AIOP76V.js";import{a as t}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as o}from"./chunk-6DLS2UKD.js";function a(r,n){return o(n)&&(r=i.unpack(r,n)),r._center=t.clone(r._center),r._ellipsoid=c.clone(r._ellipsoid),i.createGeometry(r)}var p=a;export{p as default}; diff --git a/cesium/Workers/createEllipsoidGeometry.js b/cesium/Workers/createEllipsoidGeometry.js new file mode 100644 index 00000000..cd8e547e --- /dev/null +++ b/cesium/Workers/createEllipsoidGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as e}from"./chunk-5Z36UAB7.js";import"./chunk-ML6MR2RA.js";import"./chunk-AKELQO2L.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as o}from"./chunk-6DLS2UKD.js";function i(r,t){return o(t)&&(r=e.unpack(r,t)),e.createGeometry(r)}var a=i;export{a as default}; diff --git a/cesium/Workers/createEllipsoidOutlineGeometry.js b/cesium/Workers/createEllipsoidOutlineGeometry.js new file mode 100644 index 00000000..35222026 --- /dev/null +++ b/cesium/Workers/createEllipsoidOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as t}from"./chunk-PSIOCLX7.js";import"./chunk-ML6MR2RA.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as n}from"./chunk-6DLS2UKD.js";function u(r,e){return n(r.buffer,e)&&(r=t.unpack(r,e)),t.createGeometry(r)}var a=u;export{a as default}; diff --git a/cesium/Workers/createFrustumGeometry.js b/cesium/Workers/createFrustumGeometry.js new file mode 100644 index 00000000..14bc83fc --- /dev/null +++ b/cesium/Workers/createFrustumGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{c as r}from"./chunk-Z7Q4J7AE.js";import"./chunk-AKELQO2L.js";import"./chunk-5AAMOBJK.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as o}from"./chunk-6DLS2UKD.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; diff --git a/cesium/Workers/createFrustumOutlineGeometry.js b/cesium/Workers/createFrustumOutlineGeometry.js new file mode 100644 index 00000000..347efdb0 --- /dev/null +++ b/cesium/Workers/createFrustumOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as k,b as _,c as A}from"./chunk-Z7Q4J7AE.js";import"./chunk-AKELQO2L.js";import"./chunk-5AAMOBJK.js";import{a as F}from"./chunk-6EINM7EY.js";import{b,c as N,d as g}from"./chunk-A4I25VN7.js";import{c as y}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{h as s}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as T}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import{a}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{b as h}from"./chunk-NZBME2JK.js";import{f as w}from"./chunk-6DLS2UKD.js";var d=0,j=1;function P(e){h.typeOf.object("options",e),h.typeOf.object("options.frustum",e.frustum),h.typeOf.object("options.origin",e.origin),h.typeOf.object("options.orientation",e.orientation);let t=e.frustum,o=e.orientation,u=e.origin,c=e._drawNearPlane??!0,p,m;t instanceof _?(p=d,m=_.packedLength):t instanceof k&&(p=j,m=k.packedLength),this._frustumType=p,this._frustum=t.clone(),this._origin=a.clone(u),this._orientation=s.clone(o),this._drawNearPlane=c,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+m+a.packedLength+s.packedLength}P.pack=function(e,t,o){h.typeOf.object("value",e),h.defined("array",t),o=o??0;let u=e._frustumType,c=e._frustum;return t[o++]=u,u===d?(_.pack(c,t,o),o+=_.packedLength):(k.pack(c,t,o),o+=k.packedLength),a.pack(e._origin,t,o),o+=a.packedLength,s.pack(e._orientation,t,o),o+=s.packedLength,t[o]=e._drawNearPlane?1:0,t};var C=new _,E=new k,G=new s,R=new a;P.unpack=function(e,t,o){h.defined("array",e),t=t??0;let u=e[t++],c;u===d?(c=_.unpack(e,t,C),t+=_.packedLength):(c=k.unpack(e,t,E),t+=k.packedLength);let p=a.unpack(e,t,R);t+=a.packedLength;let m=s.unpack(e,t,G);t+=s.packedLength;let l=e[t]===1;if(!w(o))return new P({frustum:c,origin:p,orientation:m,_drawNearPlane:l});let n=u===o._frustumType?o._frustum:void 0;return o._frustum=c.clone(n),o._frustumType=u,o._origin=a.clone(p,o._origin),o._orientation=s.clone(m,o._orientation),o._drawNearPlane=l,o};P.createGeometry=function(e){let t=e._frustumType,o=e._frustum,u=e._origin,c=e._orientation,p=e._drawNearPlane,m=new Float64Array(24);A._computeNearFarPlanes(u,c,t,o,m);let l=new F({position:new g({componentDatatype:T.DOUBLE,componentsPerAttribute:3,values:m})}),n,i,O=p?2:1,r=new Uint16Array(8*(O+1)),f=p?0:1;for(;f<2;++f)n=p?f*8:0,i=f*4,r[n]=i,r[n+1]=i+1,r[n+2]=i+1,r[n+3]=i+2,r[n+4]=i+2,r[n+5]=i+3,r[n+6]=i+3,r[n+7]=i;for(f=0;f<2;++f)n=(O+f)*8,i=f*4,r[n]=i,r[n+1]=i+4,r[n+2]=i+1,r[n+3]=i+5,r[n+4]=i+2,r[n+5]=i+6,r[n+6]=i+3,r[n+7]=i+7;return new N({attributes:l,indices:r,primitiveType:b.LINES,boundingSphere:y.fromVertices(m)})};var L=P;function S(e,t){return w(t)&&(e=L.unpack(e,t)),L.createGeometry(e)}var $=S;export{$ as default}; diff --git a/cesium/Workers/createGeometry.js b/cesium/Workers/createGeometry.js new file mode 100644 index 00000000..01c3bc38 --- /dev/null +++ b/cesium/Workers/createGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as k}from"./chunk-5DGDPBQU.js";import{a as w}from"./chunk-BKIYVF74.js";import"./chunk-LN2UT4R3.js";import"./chunk-QNPYEODC.js";import"./chunk-G72JFEXW.js";import"./chunk-6W2XFGWI.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{a as y}from"./chunk-NZBME2JK.js";import{a,b as p,f as r}from"./chunk-6DLS2UKD.js";var g=p({"./combineGeometry.js":()=>import("./combineGeometry.js"),"./createBoxGeometry.js":()=>import("./createBoxGeometry.js"),"./createBoxOutlineGeometry.js":()=>import("./createBoxOutlineGeometry.js"),"./createCircleGeometry.js":()=>import("./createCircleGeometry.js"),"./createCircleOutlineGeometry.js":()=>import("./createCircleOutlineGeometry.js"),"./createCoplanarPolygonGeometry.js":()=>import("./createCoplanarPolygonGeometry.js"),"./createCoplanarPolygonOutlineGeometry.js":()=>import("./createCoplanarPolygonOutlineGeometry.js"),"./createCorridorGeometry.js":()=>import("./createCorridorGeometry.js"),"./createCorridorOutlineGeometry.js":()=>import("./createCorridorOutlineGeometry.js"),"./createCylinderGeometry.js":()=>import("./createCylinderGeometry.js"),"./createCylinderOutlineGeometry.js":()=>import("./createCylinderOutlineGeometry.js"),"./createEllipseGeometry.js":()=>import("./createEllipseGeometry.js"),"./createEllipseOutlineGeometry.js":()=>import("./createEllipseOutlineGeometry.js"),"./createEllipsoidGeometry.js":()=>import("./createEllipsoidGeometry.js"),"./createEllipsoidOutlineGeometry.js":()=>import("./createEllipsoidOutlineGeometry.js"),"./createFrustumGeometry.js":()=>import("./createFrustumGeometry.js"),"./createFrustumOutlineGeometry.js":()=>import("./createFrustumOutlineGeometry.js"),"./createGeometry.js":()=>import("./createGeometry.js"),"./createGroundPolylineGeometry.js":()=>import("./createGroundPolylineGeometry.js"),"./createPlaneGeometry.js":()=>import("./createPlaneGeometry.js"),"./createPlaneOutlineGeometry.js":()=>import("./createPlaneOutlineGeometry.js"),"./createPolygonGeometry.js":()=>import("./createPolygonGeometry.js"),"./createPolygonOutlineGeometry.js":()=>import("./createPolygonOutlineGeometry.js"),"./createPolylineGeometry.js":()=>import("./createPolylineGeometry.js"),"./createPolylineVolumeGeometry.js":()=>import("./createPolylineVolumeGeometry.js"),"./createPolylineVolumeOutlineGeometry.js":()=>import("./createPolylineVolumeOutlineGeometry.js"),"./createRectangleGeometry.js":()=>import("./createRectangleGeometry.js"),"./createRectangleOutlineGeometry.js":()=>import("./createRectangleOutlineGeometry.js"),"./createSimplePolylineGeometry.js":()=>import("./createSimplePolylineGeometry.js"),"./createSphereGeometry.js":()=>import("./createSphereGeometry.js"),"./createSphereOutlineGeometry.js":()=>import("./createSphereOutlineGeometry.js"),"./createTaskProcessorWorker.js":()=>import("./createTaskProcessorWorker.js"),"./createVectorTileClampedPolylines.js":()=>import("./createVectorTileClampedPolylines.js"),"./createVectorTileGeometries.js":()=>import("./createVectorTileGeometries.js"),"./createVectorTilePoints.js":()=>import("./createVectorTilePoints.js"),"./createVectorTilePolygons.js":()=>import("./createVectorTilePolygons.js"),"./createVectorTilePolylines.js":()=>import("./createVectorTilePolylines.js"),"./createVerticesFromCesium3DTilesTerrain.js":()=>import("./createVerticesFromCesium3DTilesTerrain.js"),"./createVerticesFromGoogleEarthEnterpriseBuffer.js":()=>import("./createVerticesFromGoogleEarthEnterpriseBuffer.js"),"./createVerticesFromHeightmap.js":()=>import("./createVerticesFromHeightmap.js"),"./createVerticesFromQuantizedTerrainMesh.js":()=>import("./createVerticesFromQuantizedTerrainMesh.js"),"./createWallGeometry.js":()=>import("./createWallGeometry.js"),"./createWallOutlineGeometry.js":()=>import("./createWallOutlineGeometry.js"),"./decodeDraco.js":()=>import("./decodeDraco.js"),"./decodeGoogleEarthEnterprisePacket.js":()=>import("./decodeGoogleEarthEnterprisePacket.js"),"./decodeI3S.js":()=>import("./decodeI3S.js"),"./gaussianSplatSorter.js":()=>import("./gaussianSplatSorter.js"),"./gaussianSplatTextureGenerator.js":()=>import("./gaussianSplatTextureGenerator.js"),"./incrementallyBuildTerrainPicker.js":()=>import("./incrementallyBuildTerrainPicker.js"),"./transcodeKTX2.js":()=>import("./transcodeKTX2.js"),"./transferTypedArrayTest.js":()=>import("./transferTypedArrayTest.js"),"./upsampleQuantizedTerrainMesh.js":()=>import("./upsampleQuantizedTerrainMesh.js"),"./upsampleVerticesFromCesium3DTilesTerrain.js":()=>import("./upsampleVerticesFromCesium3DTilesTerrain.js")});var c={};async function b(s,t){let e=c[t]??c[s];return r(e)?e:r(t)?(typeof exports=="object"?e=a(t):e=(await import(t)).default,c[t]=e,e):(typeof exports=="object"?e=a(`Workers/${s}`):e=(r(t)?await import(t):await g(`./${s}.js`)).default,c[s]=e,e)}async function h(s,t){let e=s.subTasks,n=e.length,f=new Array(n);for(let o=0;o<n;o++){let i=e[o],m=i.geometry,u=i.moduleName,l=i.modulePath;if(r(u)&&r(l))throw new y("Must only set moduleName or modulePath");r(u)||r(l)?f[o]=b(u,l).then(d=>d(m,i.offset)):f[o]=m}return Promise.all(f).then(function(o){return k.packCreateGeometryResults(o,t)})}var G=w(h);export{G as default}; diff --git a/cesium/Workers/createGroundPolylineGeometry.js b/cesium/Workers/createGroundPolylineGeometry.js new file mode 100644 index 00000000..df0d6bfe --- /dev/null +++ b/cesium/Workers/createGroundPolylineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as _e}from"./chunk-LN2UT4R3.js";import{a as W}from"./chunk-AJH5KBOO.js";import{a as Nt}from"./chunk-6W2XFGWI.js";import{a as De}from"./chunk-WGIRJIIK.js";import{a as Le}from"./chunk-G2QPRBZU.js";import{a as Qt}from"./chunk-37ETYCYM.js";import{b as Kt}from"./chunk-SRA5MBUT.js";import{a as zt}from"./chunk-5AAMOBJK.js";import{c as Ce,d as Bt}from"./chunk-A4I25VN7.js";import{a as Rt,c as U}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{f as xe,g as Ne,h as Jt,j as Y}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as vt}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as w,b as Mt,c as B}from"./chunk-2AIOP76V.js";import{a as t,b as Pt,c as bt}from"./chunk-IAE6APK2.js";import{a as p}from"./chunk-3E7FIXV7.js";import{a as ut,b as tt}from"./chunk-NZBME2JK.js";import{f as u}from"./chunk-6DLS2UKD.js";var te=class{constructor(o){o=o??bt.EMPTY_OBJECT,this._ellipsoid=o.ellipsoid??B.default,this._rectangle=o.rectangle??Y.MAX_VALUE,this._projection=new Rt(this._ellipsoid),this._numberOfLevelZeroTilesX=o.numberOfLevelZeroTilesX??2,this._numberOfLevelZeroTilesY=o.numberOfLevelZeroTilesY??1}get ellipsoid(){return this._ellipsoid}get rectangle(){return this._rectangle}get projection(){return this._projection}getNumberOfXTilesAtLevel(o){return this._numberOfLevelZeroTilesX<<o}getNumberOfYTilesAtLevel(o){return this._numberOfLevelZeroTilesY<<o}rectangleToNativeRectangle(o,r){tt.defined("rectangle",o);let e=p.toDegrees(o.west),i=p.toDegrees(o.south),a=p.toDegrees(o.east),c=p.toDegrees(o.north);return u(r)?(r.west=e,r.south=i,r.east=a,r.north=c,r):new Y(e,i,a,c)}tileXYToNativeRectangle(o,r,e,i){let a=this.tileXYToRectangle(o,r,e,i);return a.west=p.toDegrees(a.west),a.south=p.toDegrees(a.south),a.east=p.toDegrees(a.east),a.north=p.toDegrees(a.north),a}tileXYToRectangle(o,r,e,i){let a=this._rectangle,c=this.getNumberOfXTilesAtLevel(e),l=this.getNumberOfYTilesAtLevel(e),s=a.width/c,d=o*s+a.west,h=(o+1)*s+a.west,f=a.height/l,T=a.north-r*f,D=a.north-(r+1)*f;return u(i)||(i=new Y(d,D,h,T)),i.west=d,i.south=D,i.east=h,i.north=T,i}positionToTileXY(o,r,e){let i=this._rectangle;if(!Y.contains(i,o))return;let a=this.getNumberOfXTilesAtLevel(r),c=this.getNumberOfYTilesAtLevel(r),l=i.width/a,s=i.height/c,d=o.longitude;i.east<i.west&&(d+=p.TWO_PI);let h=(d-i.west)/l|0;h>=a&&(h=a-1);let f=(i.north-o.latitude)/s|0;return f>=c&&(f=c-1),u(e)?(e.x=h,e.y=f,e):new Mt(h,f)}},Oe=te;var Ie=new t,He=new t,ke=new w,ee=new t,hn=new t,ye=new U,pn=new Oe,Ct=[new w,new w,new w,new w],_t=new Mt,S={};S.initialize=function(){let n=S._initPromise;return u(n)||(n=xe.fetchJson(Ne("Assets/approximateTerrainHeights.json")).then(function(o){S._terrainHeights=o}),S._initPromise=n),n};S.getMinimumMaximumHeights=function(n,o){if(tt.defined("rectangle",n),!u(S._terrainHeights))throw new ut("You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function");o=o??B.default;let r=Ae(n),e=S._defaultMinTerrainHeight,i=S._defaultMaxTerrainHeight;if(u(r)){let a=`${r.level}-${r.x}-${r.y}`,c=S._terrainHeights[a];u(c)&&(e=c[0],i=c[1]),o.cartographicToCartesian(Y.northeast(n,ke),Ie),o.cartographicToCartesian(Y.southwest(n,ke),He),t.midpoint(He,Ie,ee);let l=o.scaleToGeodeticSurface(ee,hn);if(u(l)){let s=t.distance(ee,l);e=Math.min(e,-s)}else e=S._defaultMinTerrainHeight}return e=Math.max(S._defaultMinTerrainHeight,e),{minimumTerrainHeight:e,maximumTerrainHeight:i}};S.getBoundingSphere=function(n,o){if(tt.defined("rectangle",n),!u(S._terrainHeights))throw new ut("You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function");o=o??B.default;let r=Ae(n),e=S._defaultMaxTerrainHeight;if(u(r)){let a=`${r.level}-${r.x}-${r.y}`,c=S._terrainHeights[a];u(c)&&(e=c[1])}let i=U.fromRectangle3D(n,o,0);return U.fromRectangle3D(n,o,e,ye),U.union(i,ye,i)};function Ae(n){w.fromRadians(n.east,n.north,0,Ct[0]),w.fromRadians(n.west,n.north,0,Ct[1]),w.fromRadians(n.east,n.south,0,Ct[2]),w.fromRadians(n.west,n.south,0,Ct[3]);let o=0,r=0,e=0,i=0,a=S._terrainHeightsMaxLevel,c;for(c=0;c<=a;++c){let l=!1;for(let s=0;s<4;++s){let d=Ct[s];if(pn.positionToTileXY(d,c,_t),s===0)e=_t.x,i=_t.y;else if(e!==_t.x||i!==_t.y){l=!0;break}}if(l)break;o=e,r=i}if(c!==0)return{x:o,y:r,level:c>a?a:c-1}}S._terrainHeightsMaxLevel=6;S._defaultMaxTerrainHeight=9e3;S._defaultMinTerrainHeight=-1e5;S._terrainHeights=void 0;S._initPromise=void 0;Object.defineProperties(S,{initialized:{get:function(){return u(S._terrainHeights)}}});var jt=S;var le=[Rt,_e],dn=le.length,Ke=Math.cos(p.toRadians(30)),Me=Math.cos(p.toRadians(150)),Qe=0,tn=1e3;function rt(n){n=n??bt.EMPTY_OBJECT;let o=n.positions;if(!u(o)||o.length<2)throw new ut("At least two positions are required.");if(u(n.arcType)&&n.arcType!==W.GEODESIC&&n.arcType!==W.RHUMB)throw new ut("Valid options for arcType are ArcType.GEODESIC and ArcType.RHUMB.");this.width=n.width??1,this._positions=o,this.granularity=n.granularity??9999,this.loop=n.loop??!1,this.arcType=n.arcType??W.GEODESIC,this._ellipsoid=B.default,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(rt.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+B.packedLength+1+1}}});rt.setProjectionAndEllipsoid=function(n,o){let r=0;for(let e=0;e<dn;e++)if(o instanceof le[e]){r=e;break}n._projectionIndex=r,n._ellipsoid=o.ellipsoid};var mn=new t,Re=new t,Pe=new t;function se(n,o,r,e,i){let a=R(e,n,0,mn),c=R(e,n,r,Re),l=R(e,o,0,Pe),s=et(c,a,Re),d=et(l,a,Pe);return t.cross(d,s,i),t.normalize(i,i)}var fn=new w,gn=new t,un=new t,wn=new t;function ne(n,o,r,e,i,a,c,l,s,d,h){if(i===0)return;let f;a===W.GEODESIC?f=new De(n,o,c):a===W.RHUMB&&(f=new Qt(n,o,c));let T=f.surfaceDistance;if(T<i)return;let D=se(n,o,e,c,wn),O=Math.ceil(T/i),I=T/O,z=I,q=O-1,m=l.length;for(let j=0;j<q;j++){let b=f.interpolateUsingSurfaceDistance(z,fn),y=R(c,b,r,gn),H=R(c,b,e,un);t.pack(D,l,m),t.pack(y,s,m),t.pack(H,d,m),h.push(b.latitude),h.push(b.longitude),m+=3,z+=I}}var oe=new w;function R(n,o,r,e){return w.clone(o,oe),oe.height=r,w.toCartesian(oe,n,e)}rt.pack=function(n,o,r){tt.typeOf.object("value",n),tt.defined("array",o);let e=r??0,i=n._positions,a=i.length;o[e++]=a;for(let c=0;c<a;++c){let l=i[c];t.pack(l,o,e),e+=3}return o[e++]=n.granularity,o[e++]=n.loop?1:0,o[e++]=n.arcType,B.pack(n._ellipsoid,o,e),e+=B.packedLength,o[e++]=n._projectionIndex,o[e++]=n._scene3DOnly?1:0,o};rt.unpack=function(n,o,r){tt.defined("array",n);let e=o??0,i=n[e++],a=new Array(i);for(let T=0;T<i;T++)a[T]=t.unpack(n,e),e+=3;let c=n[e++],l=n[e++]===1,s=n[e++],d=B.unpack(n,e);e+=B.packedLength;let h=n[e++],f=n[e++]===1;return u(r)||(r=new rt({positions:a})),r._positions=a,r.granularity=c,r.loop=l,r.arcType=s,r._ellipsoid=d,r._projectionIndex=h,r._scene3DOnly=f,r};function et(n,o,r){return t.subtract(n,o,r),t.normalize(r,r),r}function be(n,o,r,e){return e=et(n,o,e),e=t.cross(e,r,e),e=t.normalize(e,e),e=t.cross(r,e,e),e}var Sn=new t,Tn=new t,En=new t,en=new t,xn=0,Nn=-1;function ie(n,o,r,e,i){let a=et(r,o,en),c=be(n,o,a,Sn),l=be(e,o,a,Tn);if(p.equalsEpsilon(t.dot(c,l),Nn,p.EPSILON5))return i=t.cross(a,c,i),i=t.normalize(i,i),i;i=t.add(l,c,i),i=t.normalize(i,i);let s=t.cross(a,i,En);return t.dot(l,s)<xn&&(i=t.negate(i,i)),i}var Ut=zt.fromPointNormal(t.ZERO,t.UNIT_Y),Cn=new t,_n=new t,Ln=new t,Dn=new t,On=new t,Ft=new t,Xt=new w,ve=new w,Be=new w;rt.createGeometry=function(n){let o=!n._scene3DOnly,r=n.loop,e=n._ellipsoid,i=n.granularity,a=n.arcType,c=new le[n._projectionIndex](e),l=Qe,s=tn,d,h,f=n._positions,T=f.length;T===2&&(r=!1);let D,O,I,z,q=new Qt(void 0,void 0,e),m,j,b,y=[f[0]];for(h=0;h<T-1;h++)D=f[h],O=f[h+1],m=Kt.lineSegmentPlane(D,O,Ut,Ft),u(m)&&!t.equalsEpsilon(m,D,p.EPSILON7)&&!t.equalsEpsilon(m,O,p.EPSILON7)&&(n.arcType===W.GEODESIC?y.push(t.clone(m)):n.arcType===W.RHUMB&&(b=e.cartesianToCartographic(m,Xt).longitude,I=e.cartesianToCartographic(D,Xt),z=e.cartesianToCartographic(O,ve),q.setEndPoints(I,z),j=q.findIntersectionWithLongitude(b,Be),m=e.cartographicToCartesian(j,Ft),u(m)&&!t.equalsEpsilon(m,D,p.EPSILON7)&&!t.equalsEpsilon(m,O,p.EPSILON7)&&y.push(t.clone(m)))),y.push(O);r&&(D=f[T-1],O=f[0],m=Kt.lineSegmentPlane(D,O,Ut,Ft),u(m)&&!t.equalsEpsilon(m,D,p.EPSILON7)&&!t.equalsEpsilon(m,O,p.EPSILON7)&&(n.arcType===W.GEODESIC?y.push(t.clone(m)):n.arcType===W.RHUMB&&(b=e.cartesianToCartographic(m,Xt).longitude,I=e.cartesianToCartographic(D,Xt),z=e.cartesianToCartographic(O,ve),q.setEndPoints(I,z),j=q.findIntersectionWithLongitude(b,Be),m=e.cartographicToCartesian(j,Ft),u(m)&&!t.equalsEpsilon(m,D,p.EPSILON7)&&!t.equalsEpsilon(m,O,p.EPSILON7)&&y.push(t.clone(m)))));let H=y.length,C=new Array(H);for(h=0;h<H;h++){let X=w.fromCartesian(y[h],e);X.height=0,C[h]=X}if(C=Le(C,w.equalsEpsilon),H=C.length,H<2)return;let k=[],P=[],v=[],x=[],N=Cn,L=_n,_=Ln,F=Dn,A=On,g=C[0],Z=C[1],Dt=C[H-1];for(N=R(e,Dt,l,N),F=R(e,Z,l,F),L=R(e,g,l,L),_=R(e,g,s,_),r?A=ie(N,L,_,F,A):A=se(g,Z,s,e,A),t.pack(A,P,0),t.pack(L,v,0),t.pack(_,x,0),k.push(g.latitude),k.push(g.longitude),ne(g,Z,l,s,i,a,e,P,v,x,k),h=1;h<H-1;++h){N=t.clone(L,N),L=t.clone(F,L);let X=C[h];R(e,X,s,_),R(e,C[h+1],l,F),ie(N,L,_,F,A),d=P.length,t.pack(A,P,d),t.pack(L,v,d),t.pack(_,x,d),k.push(X.latitude),k.push(X.longitude),ne(C[h],C[h+1],l,s,i,a,e,P,v,x,k)}let M=C[H-1],wt=C[H-2];if(L=R(e,M,l,L),_=R(e,M,s,_),r){let X=C[0];N=R(e,wt,l,N),F=R(e,X,l,F),A=ie(N,L,_,F,A)}else A=se(wt,M,s,e,A);if(d=P.length,t.pack(A,P,d),t.pack(L,v,d),t.pack(_,x,d),k.push(M.latitude),k.push(M.longitude),r){for(ne(M,g,l,s,i,a,e,P,v,x,k),d=P.length,h=0;h<3;++h)P[d+h]=P[h],v[d+h]=v[h],x[d+h]=x[h];k.push(g.latitude),k.push(g.longitude)}return Qn(r,c,v,x,P,k,o)};var In=new t,Hn=new Pt,kn=new Jt;function ze(n,o,r,e){let i=et(r,o,In),a=t.dot(i,n);if(a>Ke||a<Me){let c=et(e,r,en),l=a<Me?p.PI_OVER_TWO:-p.PI_OVER_TWO,s=Jt.fromAxisAngle(c,l,kn),d=Pt.fromQuaternion(s,Hn);return Pt.multiplyByVector(d,n,n),!0}return!1}var je=new w,yn=new t,Fe=new t;function Lt(n,o,r,e,i){let a=w.toCartesian(o,n._ellipsoid,yn),c=t.add(a,r,Fe),l=!1,s=n._ellipsoid,d=s.cartesianToCartographic(c,je);Math.abs(o.longitude-d.longitude)>p.PI_OVER_TWO&&(l=!0,c=t.subtract(a,r,Fe),d=s.cartesianToCartographic(c,je)),d.height=0;let h=n.project(d,i);return i=t.subtract(h,e,i),i.z=0,i=t.normalize(i,i),l&&t.negate(i,i),i}var An=new t,Xe=new t;function Ye(n,o,r,e,i,a){let c=t.subtract(o,n,An);t.normalize(c,c);let l=r-Qe,s=t.multiplyByScalar(c,l,Xe);t.add(n,s,i);let d=e-tn;s=t.multiplyByScalar(c,d,Xe),t.add(o,s,a)}var Mn=new t;function Yt(n,o){let r=zt.getPointDistance(Ut,n),e=zt.getPointDistance(Ut,o),i=Mn;p.equalsEpsilon(r,0,p.EPSILON2)?(i=et(o,n,i),t.multiplyByScalar(i,p.EPSILON2,i),t.add(n,i,n)):p.equalsEpsilon(e,0,p.EPSILON2)&&(i=et(n,o,i),t.multiplyByScalar(i,p.EPSILON2,i),t.add(o,i,o))}function Rn(n,o){let r=Math.abs(n.longitude),e=Math.abs(o.longitude);if(p.equalsEpsilon(r,p.PI,p.EPSILON11)){let i=p.sign(o.longitude);return n.longitude=i*(r-p.EPSILON11),1}else if(p.equalsEpsilon(e,p.PI,p.EPSILON11)){let i=p.sign(n.longitude);return o.longitude=i*(e-p.EPSILON11),2}return 0}var nn=new w,on=new w,Ue=new t,re=new t,qe=new t,Ge=new t,Pn=new t,We=new t,bn=[nn,on],vn=new Y,Bn=new t,zn=new t,jn=new t,Fn=new t,Xn=new t,Yn=new t,ae=new t,ce=new t,Un=new t,qn=new t,Gn=new t,Ze=new t,Wn=new t,Zn=new t,Vn=new Nt,$n=new Nt,Ve=new t,Jn=new t,$e=new t,Kn=[new U,new U],rn=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],Je=rn.length;function Qn(n,o,r,e,i,a,c){let l,s,d=o._ellipsoid,h=r.length/3-1,f=h*8,T=f*4,D=h*36,O=f>65535?new Uint32Array(D):new Uint16Array(D),I=new Float64Array(f*3),z=new Float32Array(T),q=new Float32Array(T),m=new Float32Array(T),j=new Float32Array(T),b=new Float32Array(T),y,H,C,k;c&&(y=new Float32Array(T),H=new Float32Array(T),C=new Float32Array(T),k=new Float32Array(f*2));let P=a.length/2,v=0,x=nn;x.height=0;let N=on;N.height=0;let L=Ue,_=re;if(c)for(s=0,l=1;l<P;l++)x.latitude=a[s],x.longitude=a[s+1],N.latitude=a[s+2],N.longitude=a[s+3],L=o.project(x,L),_=o.project(N,_),v+=t.distance(L,_),s+=2;let F=e.length/3;_=t.unpack(e,0,_);let A=0;for(s=3,l=1;l<F;l++)L=t.clone(_,L),_=t.unpack(e,s,_),A+=t.distance(L,_),s+=3;let g;s=3;let Z=0,Dt=0,M=0,wt=0,X=!1,at=t.unpack(r,0,Ge),ct=t.unpack(e,0,re),G=t.unpack(i,0,We);if(n){let st=t.unpack(r,r.length-6,qe);ze(G,st,at,ct)&&(G=t.negate(G,G))}let pe=0,de=0,qt=0;for(l=0;l<h;l++){let st=t.clone(at,qe),Wt=t.clone(ct,Ue),dt=t.clone(G,Pn);X&&(dt=t.negate(dt,dt)),at=t.unpack(r,s,Ge),ct=t.unpack(e,s,re),G=t.unpack(i,s,We),X=ze(G,st,at,ct),x.latitude=a[Z],x.longitude=a[Z+1],N.latitude=a[Z+2],N.longitude=a[Z+3];let lt,mt,nt,ot;if(c){let E=Rn(x,N);lt=o.project(x,Xn),mt=o.project(N,Yn);let gt=et(mt,lt,Ve);gt.y=Math.abs(gt.y),nt=ae,ot=ce,E===0||t.dot(gt,t.UNIT_Y)>Ke?(nt=Lt(o,x,dt,lt,ae),ot=Lt(o,N,G,mt,ce)):E===1?(ot=Lt(o,N,G,mt,ce),nt.x=0,nt.y=p.sign(x.longitude-Math.abs(N.longitude)),nt.z=0):(nt=Lt(o,x,dt,lt,ae),ot.x=0,ot.y=p.sign(x.longitude-N.longitude),ot.z=0)}let ge=t.distance(Wt,ct),ue=Nt.fromCartesian(st,Vn),Ot=t.subtract(at,st,Un),an=t.normalize(Ot,Ze),Tt=t.subtract(Wt,st,qn);Tt=t.normalize(Tt,Tt);let ft=t.cross(an,Tt,Ze);ft=t.normalize(ft,ft);let It=t.cross(Tt,dt,Wn);It=t.normalize(It,It);let Ht=t.subtract(ct,at,Gn);Ht=t.normalize(Ht,Ht);let kt=t.cross(G,Ht,Zn);kt=t.normalize(kt,kt);let cn=ge/A,sn=pe/A,Zt=0,Et,yt,ht,we=0,Se=0;if(c){Zt=t.distance(lt,mt),Et=Nt.fromCartesian(lt,$n),yt=t.subtract(mt,lt,Ve),ht=t.normalize(yt,Jn);let E=ht.x;ht.x=ht.y,ht.y=-E,we=Zt/v,Se=de/v}for(g=0;g<8;g++){let E=wt+g*4,gt=Dt+g*2,xt=E+3,Ee=g<4?1:-1,At=g===2||g===3||g===6||g===7?1:-1;t.pack(ue.high,z,E),z[xt]=Ot.x,t.pack(ue.low,q,E),q[xt]=Ot.y,t.pack(It,m,E),m[xt]=Ot.z,t.pack(kt,j,E),j[xt]=cn*Ee,t.pack(ft,b,E);let pt=sn*At;pt===0&&At<0&&(pt=9),b[xt]=pt,c&&(y[E]=Et.high.x,y[E+1]=Et.high.y,y[E+2]=Et.low.x,y[E+3]=Et.low.y,C[E]=-nt.y,C[E+1]=nt.x,C[E+2]=ot.y,C[E+3]=-ot.x,H[E]=yt.x,H[E+1]=yt.y,H[E+2]=ht.x,H[E+3]=ht.y,k[gt]=we*Ee,pt=Se*At,pt===0&&At<0&&(pt=9),k[gt+1]=pt)}let V=jn,$=Fn,J=Bn,K=zn,ln=Y.fromCartographicArray(bn,vn),Te=jt.getMinimumMaximumHeights(ln,d),Vt=Te.minimumTerrainHeight,$t=Te.maximumTerrainHeight;qt+=Math.abs(Vt),qt+=Math.abs($t),Ye(st,Wt,Vt,$t,V,J),Ye(at,ct,Vt,$t,$,K);let Q=t.multiplyByScalar(ft,p.EPSILON5,$e);t.add(V,Q,V),t.add($,Q,$),t.add(J,Q,J),t.add(K,Q,K),Yt(V,$),Yt(J,K),t.pack(V,I,M),t.pack($,I,M+3),t.pack(K,I,M+6),t.pack(J,I,M+9),Q=t.multiplyByScalar(ft,-2*p.EPSILON5,$e),t.add(V,Q,V),t.add($,Q,$),t.add(J,Q,J),t.add(K,Q,K),Yt(V,$),Yt(J,K),t.pack(V,I,M+12),t.pack($,I,M+15),t.pack(K,I,M+18),t.pack(J,I,M+21),Z+=2,s+=3,Dt+=16,M+=24,wt+=32,pe+=ge,de+=Zt}s=0;let me=0;for(l=0;l<h;l++){for(g=0;g<Je;g++)O[s+g]=rn[g]+me;me+=8,s+=Je}let Gt=Kn;U.fromVertices(r,t.ZERO,3,Gt[0]),U.fromVertices(e,t.ZERO,3,Gt[1]);let fe=U.fromBoundingSpheres(Gt);fe.radius+=qt/(h*2);let St={position:new Bt({componentDatatype:vt.DOUBLE,componentsPerAttribute:3,normalize:!1,values:I}),startHiAndForwardOffsetX:it(z),startLoAndForwardOffsetY:it(q),startNormalAndForwardOffsetZ:it(m),endNormalAndTextureCoordinateNormalizationX:it(j),rightNormalAndTextureCoordinateNormalizationY:it(b)};return c&&(St.startHiLo2D=it(y),St.offsetAndRight2D=it(H),St.startEndNormals2D=it(C),St.texcoordNormalization2D=new Bt({componentDatatype:vt.FLOAT,componentsPerAttribute:2,normalize:!1,values:k})),new Ce({attributes:St,indices:O,boundingSphere:fe})}function it(n){return new Bt({componentDatatype:vt.FLOAT,componentsPerAttribute:4,normalize:!1,values:n})}rt._projectNormal=Lt;var he=rt;function to(n,o){return jt.initialize().then(function(){return u(o)&&(n=he.unpack(n,o)),he.createGeometry(n)})}var Qo=to;export{Qo as default}; diff --git a/cesium/Workers/createPlaneGeometry.js b/cesium/Workers/createPlaneGeometry.js new file mode 100644 index 00000000..96d00053 --- /dev/null +++ b/cesium/Workers/createPlaneGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as m}from"./chunk-AKELQO2L.js";import{a as b}from"./chunk-6EINM7EY.js";import{b as v,c as x,d as c}from"./chunk-A4I25VN7.js";import{c as l}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as i}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import{a as u,c as A}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{b as f}from"./chunk-NZBME2JK.js";import{f as s}from"./chunk-6DLS2UKD.js";function p(r){r=r??A.EMPTY_OBJECT;let e=r.vertexFormat??m.DEFAULT;this._vertexFormat=e,this._workerName="createPlaneGeometry"}p.packedLength=m.packedLength;p.pack=function(r,e,o){return f.typeOf.object("value",r),f.defined("array",e),o=o??0,m.pack(r._vertexFormat,e,o),e};var d=new m,P={vertexFormat:d};p.unpack=function(r,e,o){f.defined("array",r),e=e??0;let a=m.unpack(r,e,d);return s(o)?(o._vertexFormat=m.clone(a,o._vertexFormat),o):new p(P)};var y=new u(-.5,-.5,0),F=new u(.5,.5,0);p.createGeometry=function(r){let e=r._vertexFormat,o=new b,a,n;if(e.position){if(n=new Float64Array(12),n[0]=y.x,n[1]=y.y,n[2]=0,n[3]=F.x,n[4]=y.y,n[5]=0,n[6]=F.x,n[7]=F.y,n[8]=0,n[9]=y.x,n[10]=F.y,n[11]=0,o.position=new c({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:n}),e.normal){let t=new Float32Array(12);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=1,t[9]=0,t[10]=0,t[11]=1,o.normal=new c({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:t})}if(e.st){let t=new Float32Array(8);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=1,t[5]=1,t[6]=0,t[7]=1,o.st=new c({componentDatatype:i.FLOAT,componentsPerAttribute:2,values:t})}if(e.tangent){let t=new Float32Array(12);t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=1,t[7]=0,t[8]=0,t[9]=1,t[10]=0,t[11]=0,o.tangent=new c({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:t})}if(e.bitangent){let t=new Float32Array(12);t[0]=0,t[1]=1,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=1,t[8]=0,t[9]=0,t[10]=1,t[11]=0,o.bitangent=new c({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:t})}a=new Uint16Array(6),a[0]=0,a[1]=1,a[2]=2,a[3]=0,a[4]=2,a[5]=3}return new x({attributes:o,indices:a,primitiveType:v.TRIANGLES,boundingSphere:new l(u.ZERO,Math.sqrt(2))})};var w=p;function h(r,e){return s(e)&&(r=w.unpack(r,e)),w.createGeometry(r)}var N=h;export{N as default}; diff --git a/cesium/Workers/createPlaneOutlineGeometry.js b/cesium/Workers/createPlaneOutlineGeometry.js new file mode 100644 index 00000000..7c182a68 --- /dev/null +++ b/cesium/Workers/createPlaneOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as l}from"./chunk-6EINM7EY.js";import{b as d,c as y,d as s}from"./chunk-A4I25VN7.js";import{c}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as f}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import{a}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{b as m}from"./chunk-NZBME2JK.js";import{f as i}from"./chunk-6DLS2UKD.js";function o(){this._workerName="createPlaneOutlineGeometry"}o.packedLength=0;o.pack=function(r,e){return m.defined("value",r),m.defined("array",e),e};o.unpack=function(r,e,t){return m.defined("array",r),i(t)?t:new o};var n=new a(-.5,-.5,0),p=new a(.5,.5,0);o.createGeometry=function(){let r=new l,e=new Uint16Array(8),t=new Float64Array(12);return t[0]=n.x,t[1]=n.y,t[2]=n.z,t[3]=p.x,t[4]=n.y,t[5]=n.z,t[6]=p.x,t[7]=p.y,t[8]=n.z,t[9]=n.x,t[10]=p.y,t[11]=n.z,r.position=new s({componentDatatype:f.DOUBLE,componentsPerAttribute:3,values:t}),e[0]=0,e[1]=1,e[2]=1,e[3]=2,e[4]=2,e[5]=3,e[6]=3,e[7]=0,new y({attributes:r,indices:e,primitiveType:d.LINES,boundingSphere:new c(a.ZERO,Math.sqrt(2))})};var u=o;function w(r,e){return i(e)&&(r=u.unpack(r,e)),u.createGeometry(r)}var D=w;export{D as default}; diff --git a/cesium/Workers/createPolygonGeometry.js b/cesium/Workers/createPolygonGeometry.js new file mode 100644 index 00000000..03132852 --- /dev/null +++ b/cesium/Workers/createPolygonGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as mt}from"./chunk-UA7PAMQQ.js";import{a as L}from"./chunk-IEITL4VO.js";import{a as st}from"./chunk-AJH5KBOO.js";import{a as rt}from"./chunk-XRJOFXJF.js";import{a as bt}from"./chunk-QNPYEODC.js";import"./chunk-G72JFEXW.js";import"./chunk-6W2XFGWI.js";import{a as lt}from"./chunk-ML6MR2RA.js";import{a as q}from"./chunk-AKELQO2L.js";import{a as Z}from"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import{a as dt,b as ot}from"./chunk-TCOMWBL2.js";import"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import{a as wt,b as yt}from"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as ct}from"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import{c as ut,d as $}from"./chunk-A4I25VN7.js";import{c as Tt}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{h as at,j as _t}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as X}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as et,b as O,c as S}from"./chunk-2AIOP76V.js";import{a as c,b as D,c as Pt}from"./chunk-IAE6APK2.js";import{a as l}from"./chunk-3E7FIXV7.js";import{a as ft,b as Y}from"./chunk-NZBME2JK.js";import{f as P}from"./chunk-6DLS2UKD.js";function b(t,e){this.position=t,P(this.position)||(this.position=new O),this.tangentPlane=e,P(this.tangentPlane)||(this.tangentPlane=b.NORTH_POLE_TANGENT_PLANE)}Object.defineProperties(b.prototype,{ellipsoid:{get:function(){return this.tangentPlane.ellipsoid}},x:{get:function(){return this.position.x}},y:{get:function(){return this.position.y}},conformalLatitude:{get:function(){let t=O.magnitude(this.position),e=2*this.ellipsoid.maximumRadius;return this.tangentPlane.plane.normal.z*(l.PI_OVER_TWO-2*Math.atan2(t,e))}},longitude:{get:function(){let t=l.PI_OVER_TWO+Math.atan2(this.y,this.x);return t>Math.PI&&(t-=l.TWO_PI),t}}});var nt=new et,Rt=new c;b.prototype.getLatitude=function(t){P(t)||(t=S.default),nt.latitude=this.conformalLatitude,nt.longitude=this.longitude,nt.height=0;let e=this.ellipsoid.cartographicToCartesian(nt,Rt);return t.cartesianToCartographic(e,nt),nt.latitude};var It=new wt,Lt=new c,Ft=new c;b.fromCartesian=function(t,e){Y.defined("cartesian",t);let o=l.signNotZero(t.z),n=b.NORTH_POLE_TANGENT_PLANE,s=b.SOUTH_POLE;o<0&&(n=b.SOUTH_POLE_TANGENT_PLANE,s=b.NORTH_POLE);let i=It;i.origin=n.ellipsoid.scaleToGeocentricSurface(t,i.origin),i.direction=c.subtract(i.origin,s,Lt),c.normalize(i.direction,i.direction);let r=yt.rayPlane(i,n.plane,Ft),f=c.subtract(r,s,r),d=c.dot(n.xAxis,f),p=o*c.dot(n.yAxis,f);return P(e)?(e.position=new O(d,p),e.tangentPlane=n,e):new b(new O(d,p),n)};b.fromCartesianArray=function(t,e){Y.defined("cartesians",t);let o=t.length;P(e)?e.length=o:e=new Array(o);for(let n=0;n<o;n++)e[n]=b.fromCartesian(t[n],e[n]);return e};b.clone=function(t,e){if(P(t))return P(e)?(e.position=t.position,e.tangentPlane=t.tangentPlane,e):new b(t.position,t.tangentPlane)};b.HALF_UNIT_SPHERE=Object.freeze(new S(.5,.5,.5));b.NORTH_POLE=Object.freeze(new c(0,0,.5));b.SOUTH_POLE=Object.freeze(new c(0,0,-.5));b.NORTH_POLE_TANGENT_PLANE=Object.freeze(new Z(b.NORTH_POLE,b.HALF_UNIT_SPHERE));b.SOUTH_POLE_TANGENT_PLANE=Object.freeze(new Z(b.SOUTH_POLE,b.HALF_UNIT_SPHERE));var z=b;var vt=new et,Ot=new et;function St(t,e,o,n){let i=n.cartesianToCartographic(t,vt).height,r=n.cartesianToCartographic(e,Ot);r.height=i,n.cartographicToCartesian(r,e);let f=n.cartesianToCartographic(o,Ot);f.height=i-100,n.cartographicToCartesian(f,o)}var Et=new mt,Vt=new c,Bt=new c,Mt=new c,jt=new c,kt=new c,zt=new c,ht=new c,Q=new c,it=new c,Dt=new O,Ut=new O,Wt=new c,At=new at,Gt=new D,Yt=new D;function gt(t){let e=t.vertexFormat,o=t.geometry,n=t.shadowVolume,s=o.attributes.position.values,i=P(o.attributes.st)?o.attributes.st.values:void 0,r=s.length,f=t.wall,d=t.top||f,p=t.bottom||f;if(e.st||e.normal||e.tangent||e.bitangent||n){let w=t.boundingRectangle,a=t.rotationAxis,H=t.projectTo2d,x=t.ellipsoid,M=t.stRotation,C=t.perPositionHeight,R=Dt;R.x=w.x,R.y=w.y;let V=e.st?new Float32Array(2*(r/3)):void 0,u;e.normal&&(C&&d&&!f?u=o.attributes.normal.values:u=new Float32Array(r));let E=e.tangent?new Float32Array(r):void 0,A=e.bitangent?new Float32Array(r):void 0,F=n?new Float32Array(r):void 0,T=0,y=0,_=Bt,h=Mt,g=jt,j=!0,G=Gt,K=Yt;if(M!==0){let B=at.fromAxisAngle(a,M,At);G=D.fromQuaternion(B,G),B=at.fromAxisAngle(a,-M,At),K=D.fromQuaternion(B,K)}else G=D.clone(D.IDENTITY,G),K=D.clone(D.IDENTITY,K);let m=0,I=0;d&&p&&(m=r/2,I=r/3,r/=2);for(let B=0;B<r;B+=3){let k=c.fromArray(s,B,Wt);if(e.st&&!P(i)){let N=D.multiplyByVector(G,k,Vt);N=x.scaleToGeodeticSurface(N,N);let v=H([N],Ut)[0];O.subtract(v,R,v);let J=l.clamp(v.x/w.width,0,1),tt=l.clamp(v.y/w.height,0,1);p&&(V[T+I]=J,V[T+1+I]=tt),d&&(V[T]=J,V[T+1]=tt),T+=2}if(e.normal||e.tangent||e.bitangent||n){let N=y+1,v=y+2;if(f){if(B+3<r){let J=c.fromArray(s,B+3,kt);if(j){let tt=c.fromArray(s,B+r,zt);C&&St(k,J,tt,x),c.subtract(J,k,J),c.subtract(tt,k,tt),_=c.normalize(c.cross(tt,J,_),_),j=!1}c.equalsEpsilon(J,k,l.EPSILON10)&&(j=!0)}(e.tangent||e.bitangent)&&(g=x.geodeticSurfaceNormal(k,g),e.tangent&&(h=c.normalize(c.cross(g,_,h),h)))}else _=x.geodeticSurfaceNormal(k,_),(e.tangent||e.bitangent)&&(C&&(ht=c.fromArray(u,y,ht),Q=c.cross(c.UNIT_Z,ht,Q),Q=c.normalize(D.multiplyByVector(K,Q,Q),Q),e.bitangent&&(it=c.normalize(c.cross(ht,Q,it),it))),h=c.cross(c.UNIT_Z,_,h),h=c.normalize(D.multiplyByVector(K,h,h),h),e.bitangent&&(g=c.normalize(c.cross(_,h,g),g)));e.normal&&(t.wall?(u[y+m]=_.x,u[N+m]=_.y,u[v+m]=_.z):p&&(u[y+m]=-_.x,u[N+m]=-_.y,u[v+m]=-_.z),(d&&!C||f)&&(u[y]=_.x,u[N]=_.y,u[v]=_.z)),n&&(f&&(_=x.geodeticSurfaceNormal(k,_)),F[y+m]=-_.x,F[N+m]=-_.y,F[v+m]=-_.z),e.tangent&&(t.wall?(E[y+m]=h.x,E[N+m]=h.y,E[v+m]=h.z):p&&(E[y+m]=-h.x,E[N+m]=-h.y,E[v+m]=-h.z),d&&(C?(E[y]=Q.x,E[N]=Q.y,E[v]=Q.z):(E[y]=h.x,E[N]=h.y,E[v]=h.z))),e.bitangent&&(p&&(A[y+m]=g.x,A[N+m]=g.y,A[v+m]=g.z),d&&(C?(A[y]=it.x,A[N]=it.y,A[v]=it.z):(A[y]=g.x,A[N]=g.y,A[v]=g.z))),y+=3}}e.st&&!P(i)&&(o.attributes.st=new $({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:V})),e.normal&&(o.attributes.normal=new $({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})),e.tangent&&(o.attributes.tangent=new $({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:E})),e.bitangent&&(o.attributes.bitangent=new $({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),n&&(o.attributes.extrudeDirection=new $({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:F}))}if(t.extrude&&P(t.offsetAttribute)){let w=s.length/3,a=new Uint8Array(w);if(t.offsetAttribute===lt.TOP)d&&p||f?a=a.fill(1,0,w/2):d&&(a=a.fill(1));else{let H=t.offsetAttribute===lt.NONE?0:1;a=a.fill(H)}o.attributes.applyOffset=new $({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:a})}return o}var Ht=[];function qt(t,e,o,n,s,i,r,f,d,p){let w={walls:[]},a;if(r||f){let u=L.createGeometryFromPositions(t,e,o,n,i,d,p),E=u.attributes.position.values,A=u.indices,F,T;if(r&&f){let y=E.concat(E);F=y.length/3,T=ct.createTypedArray(F,A.length*2),T.set(A);let _=A.length,h=F/2;for(a=0;a<_;a+=3){let g=T[a]+h,j=T[a+1]+h,G=T[a+2]+h;T[a+_]=G,T[a+1+_]=j,T[a+2+_]=g}if(u.attributes.position.values=y,i&&d.normal){let g=u.attributes.normal.values;u.attributes.normal.values=new Float32Array(y.length),u.attributes.normal.values.set(g)}if(d.st&&P(o)){let g=u.attributes.st.values;u.attributes.st.values=new Float32Array(F*2),u.attributes.st.values=g.concat(g)}u.indices=T}else if(f){for(F=E.length/3,T=ct.createTypedArray(F,A.length),a=0;a<A.length;a+=3)T[a]=A[a+2],T[a+1]=A[a+1],T[a+2]=A[a];u.indices=T}w.topAndBottom=new rt({geometry:u})}let H=s.outerRing,x=Z.fromPoints(H,t),M=x.projectPointsOntoPlane(H,Ht),C=ot.computeWindingOrder2D(M);C===dt.CLOCKWISE&&(H=H.slice().reverse());let R=L.computeWallGeometry(H,o,t,n,i,p);w.walls.push(new rt({geometry:R}));let V=s.holes;for(a=0;a<V.length;a++){let u=V[a];M=x.projectPointsOntoPlane(u,Ht),C=ot.computeWindingOrder2D(M),C===dt.COUNTER_CLOCKWISE&&(u=u.slice().reverse()),R=L.computeWallGeometry(u,o,t,n,i,p),w.walls.push(new rt({geometry:R}))}return w}function W(t){if(Y.typeOf.object("options",t),Y.typeOf.object("options.polygonHierarchy",t.polygonHierarchy),P(t.perPositionHeight)&&t.perPositionHeight&&P(t.height))throw new ft("Cannot use both options.perPositionHeight and options.height");if(P(t.arcType)&&t.arcType!==st.GEODESIC&&t.arcType!==st.RHUMB)throw new ft("Invalid arcType. Valid options are ArcType.GEODESIC and ArcType.RHUMB.");let e=t.polygonHierarchy,o=t.vertexFormat??q.DEFAULT,n=t.ellipsoid??S.default,s=t.granularity??l.RADIANS_PER_DEGREE,i=t.stRotation??0,r=t.textureCoordinates,f=t.perPositionHeight??!1,d=f&&P(t.extrudedHeight),p=t.height??0,w=t.extrudedHeight??p;if(!d){let a=Math.max(p,w);w=Math.min(p,w),p=a}this._vertexFormat=q.clone(o),this._ellipsoid=S.clone(n),this._granularity=s,this._stRotation=i,this._height=p,this._extrudedHeight=w,this._closeTop=t.closeTop??!0,this._closeBottom=t.closeBottom??!0,this._polygonHierarchy=e,this._perPositionHeight=f,this._perPositionHeightExtrude=d,this._shadowVolume=t.shadowVolume??!1,this._workerName="createPolygonGeometry",this._offsetAttribute=t.offsetAttribute,this._arcType=t.arcType??st.GEODESIC,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=r,this.packedLength=L.computeHierarchyPackedLength(e,c)+S.packedLength+q.packedLength+(r?L.computeHierarchyPackedLength(r,O):1)+12}W.fromPositions=function(t){t=t??Pt.EMPTY_OBJECT,Y.defined("options.positions",t.positions);let e={polygonHierarchy:{positions:t.positions},height:t.height,extrudedHeight:t.extrudedHeight,vertexFormat:t.vertexFormat,stRotation:t.stRotation,ellipsoid:t.ellipsoid,granularity:t.granularity,perPositionHeight:t.perPositionHeight,closeTop:t.closeTop,closeBottom:t.closeBottom,offsetAttribute:t.offsetAttribute,arcType:t.arcType,textureCoordinates:t.textureCoordinates};return new W(e)};W.pack=function(t,e,o){return Y.typeOf.object("value",t),Y.defined("array",e),o=o??0,o=L.packPolygonHierarchy(t._polygonHierarchy,e,o,c),S.pack(t._ellipsoid,e,o),o+=S.packedLength,q.pack(t._vertexFormat,e,o),o+=q.packedLength,e[o++]=t._height,e[o++]=t._extrudedHeight,e[o++]=t._granularity,e[o++]=t._stRotation,e[o++]=t._perPositionHeightExtrude?1:0,e[o++]=t._perPositionHeight?1:0,e[o++]=t._closeTop?1:0,e[o++]=t._closeBottom?1:0,e[o++]=t._shadowVolume?1:0,e[o++]=t._offsetAttribute??-1,e[o++]=t._arcType,P(t._textureCoordinates)?o=L.packPolygonHierarchy(t._textureCoordinates,e,o,O):e[o++]=-1,e[o++]=t.packedLength,e};var Qt=S.clone(S.UNIT_SPHERE),Zt=new q,Kt={polygonHierarchy:{}};W.unpack=function(t,e,o){Y.defined("array",t),e=e??0;let n=L.unpackPolygonHierarchy(t,e,c);e=n.startingIndex,delete n.startingIndex;let s=S.unpack(t,e,Qt);e+=S.packedLength;let i=q.unpack(t,e,Zt);e+=q.packedLength;let r=t[e++],f=t[e++],d=t[e++],p=t[e++],w=t[e++]===1,a=t[e++]===1,H=t[e++]===1,x=t[e++]===1,M=t[e++]===1,C=t[e++],R=t[e++],V=t[e]===-1?void 0:L.unpackPolygonHierarchy(t,e,O);P(V)?(e=V.startingIndex,delete V.startingIndex):e++;let u=t[e++];return P(o)||(o=new W(Kt)),o._polygonHierarchy=n,o._ellipsoid=S.clone(s,o._ellipsoid),o._vertexFormat=q.clone(i,o._vertexFormat),o._height=r,o._extrudedHeight=f,o._granularity=d,o._stRotation=p,o._perPositionHeightExtrude=w,o._perPositionHeight=a,o._closeTop=H,o._closeBottom=x,o._shadowVolume=M,o._offsetAttribute=C===-1?void 0:C,o._arcType=R,o._textureCoordinates=V,o.packedLength=u,o};var Jt=new O,Xt=new O,$t=new z;function xt(t,e,o,n,s,i){let r=t.longitude,f=r>=0?r:r+l.TWO_PI;s.westOverIdl=Math.min(s.westOverIdl,f),s.eastOverIdl=Math.max(s.eastOverIdl,f),i.west=Math.min(i.west,r),i.east=Math.max(i.east,r);let d=t.getLatitude(o),p=d;if(i.south=Math.min(i.south,d),i.north=Math.max(i.north,d),n!==st.RHUMB){let H=O.subtract(e.position,t.position,Jt),x=O.dot(e.position,H)/O.dot(H,H);if(x>0&&x<1){let M=O.add(e.position,O.multiplyByScalar(H,-x,H),Xt),C=z.clone(e,$t);C.position=M;let R=C.getLatitude(o);i.south=Math.min(i.south,R),i.north=Math.max(i.north,R),Math.abs(d)>Math.abs(R)&&(p=R)}}let w=e.x*t.y-t.x*e.y,a=Math.sign(w);a!==0&&(a*=O.angleBetween(e.position,t.position)),p>=0&&(s.northAngle+=a),p<=0&&(s.southAngle+=a)}var Ct=new z,te=new z,U={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};W.computeRectangleFromPositions=function(t,e,o,n){if(Y.defined("positions",t),P(n)||(n=new _t),t.length<3)return n;n.west=Number.POSITIVE_INFINITY,n.east=Number.NEGATIVE_INFINITY,n.south=Number.POSITIVE_INFINITY,n.north=Number.NEGATIVE_INFINITY,U.northAngle=0,U.southAngle=0,U.westOverIdl=Number.POSITIVE_INFINITY,U.eastOverIdl=Number.NEGATIVE_INFINITY;let s=t.length,i=z.fromCartesian(t[0],te);for(let r=1;r<s;r++){let f=z.fromCartesian(t[r],Ct);xt(f,i,e,o,U,n),i=z.clone(f,i)}return xt(z.fromCartesian(t[0],Ct),i,e,o,U,n),n.east-n.west>U.eastOverIdl-U.westOverIdl&&(n.west=U.westOverIdl,n.east=U.eastOverIdl,n.east>l.PI&&(n.east=n.east-l.TWO_PI),n.west>l.PI&&(n.west=n.west-l.TWO_PI)),l.equalsEpsilon(Math.abs(U.northAngle),l.TWO_PI,l.EPSILON10)&&(n.north=l.PI_OVER_TWO,n.east=l.PI,n.west=-l.PI),l.equalsEpsilon(Math.abs(U.southAngle),l.TWO_PI,l.EPSILON10)&&(n.south=-l.PI_OVER_TWO,n.east=l.PI,n.west=-l.PI),n};var ee=new z;function oe(t,e,o){return t.height>=l.PI||t.width>=l.PI?z.fromCartesian(e[0],ee).tangentPlane:Z.fromPoints(e,o)}var Nt=new et;function ne(t,e,o){return(n,s)=>{if(t.height>=l.PI||t.width>=l.PI){if(t.south<0&&t.north>0){P(s)||(s=[]);for(let r=0;r<n.length;++r){let f=o.cartesianToCartographic(n[r],Nt);s[r]=new O(f.longitude/l.PI,f.latitude/l.PI_OVER_TWO)}return s.length=n.length,s}return z.fromCartesianArray(n,s)}return Z.fromPoints(e,o).projectPointsOntoPlane(n,s)}}function ie(t,e,o){if(t.height>=l.PI||t.width>=l.PI)return(s,i)=>{if(t.south<0&&t.north>0){let r=o.cartesianToCartographic(s,Nt);return P(i)||(i=new O),i.x=r.longitude/l.PI,i.y=r.latitude/l.PI_OVER_TWO,i}return z.fromCartesian(s,i)};let n=Z.fromPoints(e,o);return(s,i)=>n.projectPointsOntoPlane(s,i)}function re(t,e,o,n){return(s,i)=>!n&&(t.height>=l.PI_OVER_TWO||t.width>=2*l.PI_OVER_THREE)?L.splitPolygonsOnEquator(s,e,o,i):s}function se(t,e,o,n){if(e.height>=l.PI||e.width>=l.PI)return mt.fromRectangle(e,void 0,Et);let s=t,i=Z.fromPoints(s,o);return L.computeBoundingRectangle(i.plane.normal,i.projectPointOntoPlane.bind(i),s,n,Et)}W.createGeometry=function(t){let e=t._vertexFormat,o=t._ellipsoid,n=t._granularity,s=t._stRotation,i=t._polygonHierarchy,r=t._perPositionHeight,f=t._closeTop,d=t._closeBottom,p=t._arcType,w=t._textureCoordinates,a=P(w),H=i.positions;if(H.length<3)return;let x=t.rectangle,M=L.polygonsFromHierarchy(i,a,ne(x,H,o),!r,o,re(x,o,p,r)),C=M.hierarchy,R=M.polygons,V=function(m){return m},u=a?L.polygonsFromHierarchy(w,!0,V,!1,o).polygons:void 0;if(C.length===0)return;let E=C[0].outerRing,A=se(E,x,o,s),F=[],T=t._height,y=t._extrudedHeight,_=t._perPositionHeightExtrude||!l.equalsEpsilon(T,y,0,l.EPSILON2),h={perPositionHeight:r,vertexFormat:e,geometry:void 0,rotationAxis:oe(x,E,o).plane.normal,projectTo2d:ie(x,E,o),boundingRectangle:A,ellipsoid:o,stRotation:s,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:p},g;if(_)for(h.extrude=!0,h.top=f,h.bottom=d,h.shadowVolume=t._shadowVolume,h.offsetAttribute=t._offsetAttribute,g=0;g<R.length;g++){let m=qt(o,R[g],a?u[g]:void 0,n,C[g],r,f,d,e,p),I;f&&d?(I=m.topAndBottom,h.geometry=L.scaleToGeodeticHeightExtruded(I.geometry,T,y,o,r)):f?(I=m.topAndBottom,I.geometry.attributes.position.values=ot.scaleToGeodeticHeight(I.geometry.attributes.position.values,T,o,!r),h.geometry=I.geometry):d&&(I=m.topAndBottom,I.geometry.attributes.position.values=ot.scaleToGeodeticHeight(I.geometry.attributes.position.values,y,o,!0),h.geometry=I.geometry),(f||d)&&(h.wall=!1,I.geometry=gt(h),F.push(I));let B=m.walls;h.wall=!0;for(let k=0;k<B.length;k++){let N=B[k];h.geometry=L.scaleToGeodeticHeightExtruded(N.geometry,T,y,o,r),N.geometry=gt(h),F.push(N)}}else for(g=0;g<R.length;g++){let m=new rt({geometry:L.createGeometryFromPositions(o,R[g],a?u[g]:void 0,n,r,e,p)});if(m.geometry.attributes.position.values=ot.scaleToGeodeticHeight(m.geometry.attributes.position.values,T,o,!r),h.geometry=m.geometry,m.geometry=gt(h),P(t._offsetAttribute)){let I=m.geometry.attributes.position.values.length,B=t._offsetAttribute===lt.NONE?0:1,k=new Uint8Array(I/3).fill(B);m.geometry.attributes.applyOffset=new $({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:k})}F.push(m)}let j=bt.combineInstances(F)[0];j.attributes.position.values=new Float64Array(j.attributes.position.values),j.indices=ct.createTypedArray(j.attributes.position.values.length/3,j.indices);let G=j.attributes,K=Tt.fromVertices(G.position.values);return e.position||delete G.position,new ut({attributes:G,indices:j.indices,primitiveType:j.primitiveType,boundingSphere:K,offsetAttribute:t._offsetAttribute})};W.createShadowVolume=function(t,e,o){let n=t._granularity,s=t._ellipsoid,i=e(n,s),r=o(n,s);return new W({polygonHierarchy:t._polygonHierarchy,ellipsoid:s,stRotation:t._stRotation,granularity:n,perPositionHeight:!1,extrudedHeight:i,height:r,vertexFormat:q.POSITION_ONLY,shadowVolume:!0,arcType:t._arcType})};function ae(t){let e=-t._stRotation;if(e===0)return[0,0,0,1,1,0];let o=t._ellipsoid,n=t._polygonHierarchy.positions,s=t.rectangle;return ut._textureCoordinateRotationPoints(n,e,o,s)}Object.defineProperties(W.prototype,{rectangle:{get:function(){if(!P(this._rectangle)){let t=this._polygonHierarchy.positions;this._rectangle=W.computeRectangleFromPositions(t,this._ellipsoid,this._arcType)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return P(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=ae(this)),this._textureCoordinateRotationPoints}}});var pt=W;function ce(t,e){return P(e)&&(t=pt.unpack(t,e)),t._ellipsoid=S.clone(t._ellipsoid),pt.createGeometry(t)}var Xe=ce;export{Xe as default}; diff --git a/cesium/Workers/createPolygonOutlineGeometry.js b/cesium/Workers/createPolygonOutlineGeometry.js new file mode 100644 index 00000000..8c1e6792 --- /dev/null +++ b/cesium/Workers/createPolygonOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a}from"./chunk-IEITL4VO.js";import{a as P}from"./chunk-AJH5KBOO.js";import{a as F}from"./chunk-XRJOFXJF.js";import{a as V}from"./chunk-QNPYEODC.js";import"./chunk-G72JFEXW.js";import"./chunk-6W2XFGWI.js";import{a as C}from"./chunk-ML6MR2RA.js";import{a as M}from"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import{a as W,b as D}from"./chunk-TCOMWBL2.js";import"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as G}from"./chunk-4WQ4VT5S.js";import{a as B}from"./chunk-6EINM7EY.js";import{b as U,c as S,d as w}from"./chunk-A4I25VN7.js";import{c as x}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as T}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c as y}from"./chunk-2AIOP76V.js";import{a as v,c as j}from"./chunk-IAE6APK2.js";import{a as L}from"./chunk-3E7FIXV7.js";import{a as N,b as O}from"./chunk-NZBME2JK.js";import{f as E}from"./chunk-6DLS2UKD.js";var Y=[],k=[];function K(e,t,r,b,l){let p=M.fromPoints(t,e).projectPointsOntoPlane(t,Y);D.computeWindingOrder2D(p)===W.CLOCKWISE&&(p.reverse(),t=t.slice().reverse());let n,i,o=t.length,c=0;if(b)for(n=new Float64Array(o*2*3),i=0;i<o;i++){let u=t[i],h=t[(i+1)%o];n[c++]=u.x,n[c++]=u.y,n[c++]=u.z,n[c++]=h.x,n[c++]=h.y,n[c++]=h.z}else{let u=0;if(l===P.GEODESIC)for(i=0;i<o;i++)u+=a.subdivideLineCount(t[i],t[(i+1)%o],r);else if(l===P.RHUMB)for(i=0;i<o;i++)u+=a.subdivideRhumbLineCount(e,t[i],t[(i+1)%o],r);for(n=new Float64Array(u*3),i=0;i<o;i++){let h;l===P.GEODESIC?h=a.subdivideLine(t[i],t[(i+1)%o],r,k):l===P.RHUMB&&(h=a.subdivideRhumbLine(e,t[i],t[(i+1)%o],r,k));let g=h.length;for(let d=0;d<g;++d)n[c++]=h[d]}}o=n.length/3;let f=o*2,m=G.createTypedArray(o,f);for(c=0,i=0;i<o-1;i++)m[c++]=i,m[c++]=i+1;return m[c++]=o-1,m[c++]=0,new F({geometry:new S({attributes:new B({position:new w({componentDatatype:T.DOUBLE,componentsPerAttribute:3,values:n})}),indices:m,primitiveType:U.LINES})})}function q(e,t,r,b,l){let p=M.fromPoints(t,e).projectPointsOntoPlane(t,Y);D.computeWindingOrder2D(p)===W.CLOCKWISE&&(p.reverse(),t=t.slice().reverse());let n,i,o=t.length,c=new Array(o),f=0;if(b)for(n=new Float64Array(o*2*3*2),i=0;i<o;++i){c[i]=f/3;let g=t[i],d=t[(i+1)%o];n[f++]=g.x,n[f++]=g.y,n[f++]=g.z,n[f++]=d.x,n[f++]=d.y,n[f++]=d.z}else{let g=0;if(l===P.GEODESIC)for(i=0;i<o;i++)g+=a.subdivideLineCount(t[i],t[(i+1)%o],r);else if(l===P.RHUMB)for(i=0;i<o;i++)g+=a.subdivideRhumbLineCount(e,t[i],t[(i+1)%o],r);for(n=new Float64Array(g*3*2),i=0;i<o;++i){c[i]=f/3;let d;l===P.GEODESIC?d=a.subdivideLine(t[i],t[(i+1)%o],r,k):l===P.RHUMB&&(d=a.subdivideRhumbLine(e,t[i],t[(i+1)%o],r,k));let _=d.length;for(let R=0;R<_;++R)n[f++]=d[R]}}o=n.length/6;let m=c.length,u=(o*2+m)*2,h=G.createTypedArray(o+m,u);for(f=0,i=0;i<o;++i)h[f++]=i,h[f++]=(i+1)%o,h[f++]=i+o,h[f++]=(i+1)%o+o;for(i=0;i<m;i++){let g=c[i];h[f++]=g,h[f++]=g+o}return new F({geometry:new S({attributes:new B({position:new w({componentDatatype:T.DOUBLE,componentsPerAttribute:3,values:n})}),indices:h,primitiveType:U.LINES})})}function A(e){if(O.typeOf.object("options",e),O.typeOf.object("options.polygonHierarchy",e.polygonHierarchy),e.perPositionHeight&&E(e.height))throw new N("Cannot use both options.perPositionHeight and options.height");if(E(e.arcType)&&e.arcType!==P.GEODESIC&&e.arcType!==P.RHUMB)throw new N("Invalid arcType. Valid options are ArcType.GEODESIC and ArcType.RHUMB.");let t=e.polygonHierarchy,r=e.ellipsoid??y.default,b=e.granularity??L.RADIANS_PER_DEGREE,l=e.perPositionHeight??!1,H=l&&E(e.extrudedHeight),p=e.arcType??P.GEODESIC,s=e.height??0,n=e.extrudedHeight??s;if(!H){let i=Math.max(s,n);n=Math.min(s,n),s=i}this._ellipsoid=y.clone(r),this._granularity=b,this._height=s,this._extrudedHeight=n,this._arcType=p,this._polygonHierarchy=t,this._perPositionHeight=l,this._perPositionHeightExtrude=H,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=a.computeHierarchyPackedLength(t,v)+y.packedLength+8}A.pack=function(e,t,r){return O.typeOf.object("value",e),O.defined("array",t),r=r??0,r=a.packPolygonHierarchy(e._polygonHierarchy,t,r,v),y.pack(e._ellipsoid,t,r),r+=y.packedLength,t[r++]=e._height,t[r++]=e._extrudedHeight,t[r++]=e._granularity,t[r++]=e._perPositionHeightExtrude?1:0,t[r++]=e._perPositionHeight?1:0,t[r++]=e._arcType,t[r++]=e._offsetAttribute??-1,t[r]=e.packedLength,t};var J=y.clone(y.UNIT_SPHERE),Q={polygonHierarchy:{}};A.unpack=function(e,t,r){O.defined("array",e),t=t??0;let b=a.unpackPolygonHierarchy(e,t,v);t=b.startingIndex,delete b.startingIndex;let l=y.unpack(e,t,J);t+=y.packedLength;let H=e[t++],p=e[t++],s=e[t++],n=e[t++]===1,i=e[t++]===1,o=e[t++],c=e[t++],f=e[t];return E(r)||(r=new A(Q)),r._polygonHierarchy=b,r._ellipsoid=y.clone(l,r._ellipsoid),r._height=H,r._extrudedHeight=p,r._granularity=s,r._perPositionHeight=i,r._perPositionHeightExtrude=n,r._arcType=o,r._offsetAttribute=c===-1?void 0:c,r.packedLength=f,r};A.fromPositions=function(e){e=e??j.EMPTY_OBJECT,O.defined("options.positions",e.positions);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute};return new A(t)};A.createGeometry=function(e){let t=e._ellipsoid,r=e._granularity,b=e._polygonHierarchy,l=e._perPositionHeight,H=e._arcType,p=a.polygonOutlinesFromHierarchy(b,!l,t);if(p.length===0)return;let s,n=[],i=L.chordLength(r,t.maximumRadius),o=e._height,c=e._extrudedHeight,f=e._perPositionHeightExtrude||!L.equalsEpsilon(o,c,0,L.EPSILON2),m,u;if(f)for(u=0;u<p.length;u++){if(s=q(t,p[u],i,l,H),s.geometry=a.scaleToGeodeticHeightExtruded(s.geometry,o,c,t,l),E(e._offsetAttribute)){let d=s.geometry.attributes.position.values.length/3,_=new Uint8Array(d);e._offsetAttribute===C.TOP?_=_.fill(1,0,d/2):(m=e._offsetAttribute===C.NONE?0:1,_=_.fill(m)),s.geometry.attributes.applyOffset=new w({componentDatatype:T.UNSIGNED_BYTE,componentsPerAttribute:1,values:_})}n.push(s)}else for(u=0;u<p.length;u++){if(s=K(t,p[u],i,l,H),s.geometry.attributes.position.values=D.scaleToGeodeticHeight(s.geometry.attributes.position.values,o,t,!l),E(e._offsetAttribute)){let d=s.geometry.attributes.position.values.length;m=e._offsetAttribute===C.NONE?0:1;let _=new Uint8Array(d/3).fill(m);s.geometry.attributes.applyOffset=new w({componentDatatype:T.UNSIGNED_BYTE,componentsPerAttribute:1,values:_})}n.push(s)}let h=V.combineInstances(n)[0],g=x.fromVertices(h.attributes.position.values);return new S({attributes:h.attributes,indices:h.indices,primitiveType:h.primitiveType,boundingSphere:g,offsetAttribute:e._offsetAttribute})};var z=A;function X(e,t){return E(t)&&(e=z.unpack(e,t)),e._ellipsoid=y.clone(e._ellipsoid),z.createGeometry(e)}var Oe=X;export{Oe as default}; diff --git a/cesium/Workers/createPolylineGeometry.js b/cesium/Workers/createPolylineGeometry.js new file mode 100644 index 00000000..690d015f --- /dev/null +++ b/cesium/Workers/createPolylineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as m}from"./chunk-QJTXFT4R.js";import{a as R}from"./chunk-AJH5KBOO.js";import{a as N}from"./chunk-6AEO73KW.js";import"./chunk-WGIRJIIK.js";import{a as g}from"./chunk-AKELQO2L.js";import{a as le}from"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as se}from"./chunk-4WQ4VT5S.js";import{a as ce}from"./chunk-6EINM7EY.js";import{a as ne,b as re,c as ie,d as x}from"./chunk-A4I25VN7.js";import{c as oe}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as V}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c as u}from"./chunk-2AIOP76V.js";import{a as p,c as te}from"./chunk-IAE6APK2.js";import{a as j}from"./chunk-3E7FIXV7.js";import{a as F}from"./chunk-NZBME2JK.js";import{f as h}from"./chunk-6DLS2UKD.js";var me=[];function Ae(e,o,t,n,c){let s=me;s.length=c;let l,k=t.red,a=t.green,r=t.blue,w=t.alpha,E=n.red,i=n.green,f=n.blue,b=n.alpha;if(m.equals(t,n)){for(l=0;l<c;l++)s[l]=m.clone(t);return s}let G=(E-k)/c,z=(i-a)/c,M=(f-r)/c,S=(b-w)/c;for(l=0;l<c;l++)s[l]=new m(k+l*G,a+l*z,r+l*M,w+l*S);return s}function q(e){e=e??te.EMPTY_OBJECT;let o=e.positions,t=e.colors,n=e.width??1,c=e.colorsPerVertex??!1;if(!h(o)||o.length<2)throw new F("At least two positions are required.");if(typeof n!="number")throw new F("width must be a number");if(h(t)&&(c&&t.length<o.length||!c&&t.length<o.length-1))throw new F("colors has an invalid length.");this._positions=o,this._colors=t,this._width=n,this._colorsPerVertex=c,this._vertexFormat=g.clone(e.vertexFormat??g.DEFAULT),this._arcType=e.arcType??R.GEODESIC,this._granularity=e.granularity??j.RADIANS_PER_DEGREE,this._ellipsoid=u.clone(e.ellipsoid??u.default),this._workerName="createPolylineGeometry";let s=1+o.length*p.packedLength;s+=h(t)?1+t.length*m.packedLength:1,this.packedLength=s+u.packedLength+g.packedLength+4}q.pack=function(e,o,t){if(!h(e))throw new F("value is required");if(!h(o))throw new F("array is required");t=t??0;let n,c=e._positions,s=c.length;for(o[t++]=s,n=0;n<s;++n,t+=p.packedLength)p.pack(c[n],o,t);let l=e._colors;for(s=h(l)?l.length:0,o[t++]=s,n=0;n<s;++n,t+=m.packedLength)m.pack(l[n],o,t);return u.pack(e._ellipsoid,o,t),t+=u.packedLength,g.pack(e._vertexFormat,o,t),t+=g.packedLength,o[t++]=e._width,o[t++]=e._colorsPerVertex?1:0,o[t++]=e._arcType,o[t]=e._granularity,o};var de=u.clone(u.UNIT_SPHERE),ue=new g,O={positions:void 0,colors:void 0,ellipsoid:de,vertexFormat:ue,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};q.unpack=function(e,o,t){if(!h(e))throw new F("array is required");o=o??0;let n,c=e[o++],s=new Array(c);for(n=0;n<c;++n,o+=p.packedLength)s[n]=p.unpack(e,o);c=e[o++];let l=c>0?new Array(c):void 0;for(n=0;n<c;++n,o+=m.packedLength)l[n]=m.unpack(e,o);let k=u.unpack(e,o,de);o+=u.packedLength;let a=g.unpack(e,o,ue);o+=g.packedLength;let r=e[o++],w=e[o++]===1,E=e[o++],i=e[o];return h(t)?(t._positions=s,t._colors=l,t._ellipsoid=u.clone(k,t._ellipsoid),t._vertexFormat=g.clone(a,t._vertexFormat),t._width=r,t._colorsPerVertex=w,t._arcType=E,t._granularity=i,t):(O.positions=s,O.colors=l,O.width=r,O.colorsPerVertex=w,O.arcType=E,O.granularity=i,new q(O))};var pe=new p,ae=new p,fe=new p,he=new p;q.createGeometry=function(e){let o=e._width,t=e._vertexFormat,n=e._colors,c=e._colorsPerVertex,s=e._arcType,l=e._granularity,k=e._ellipsoid,a,r,w,E=[],i=le(e._positions,p.equalsEpsilon,!1,E);if(h(n)&&E.length>0){let d=0,P=E[0];n=n.filter(function(U,L){let A=!1;return c?A=L===P||L===0&&P===1:A=L+1===P,A?(d++,P=E[d],!1):!0})}let f=i.length;if(f<2||o<=0)return;if(s===R.GEODESIC||s===R.RHUMB){let d,P;s===R.GEODESIC?(d=j.chordLength(l,k.maximumRadius),P=N.numberOfPoints):(d=l,P=N.numberOfPointsRhumbLine);let U=N.extractHeights(i,k);if(h(n)){let L=1;for(a=0;a<f-1;++a)L+=P(i[a],i[a+1],d);let A=new Array(L),y=0;for(a=0;a<f-1;++a){let X=i[a],Z=i[a+1],$=n[a],I=P(X,Z,d);if(c&&a<L){let _e=n[a+1],ee=Ae(X,Z,$,_e,I),Pe=ee.length;for(r=0;r<Pe;++r)A[y++]=ee[r]}else for(r=0;r<I;++r)A[y++]=m.clone($)}A[y]=m.clone(n[n.length-1]),n=A,me.length=0}s===R.GEODESIC?i=N.generateCartesianArc({positions:i,minDistance:d,ellipsoid:k,height:U}):i=N.generateCartesianRhumbArc({positions:i,granularity:d,ellipsoid:k,height:U})}f=i.length;let b=f*4-4,G=new Float64Array(b*3),z=new Float64Array(b*3),M=new Float64Array(b*3),S=new Float32Array(b*2),Y=t.st?new Float32Array(b*2):void 0,T=h(n)?new Uint8Array(b*4):void 0,H=0,K=0,Q=0,W=0,_;for(r=0;r<f;++r){r===0?(_=pe,p.subtract(i[0],i[1],_),p.add(i[0],_,_)):_=i[r-1],p.clone(_,fe),p.clone(i[r],ae),r===f-1?(_=pe,p.subtract(i[f-1],i[f-2],_),p.add(i[f-1],_,_)):_=i[r+1],p.clone(_,he);let d,P;h(T)&&(r!==0&&!c?d=n[r-1]:d=n[r],r!==f-1&&(P=n[r]));let U=r===0?2:0,L=r===f-1?2:4;for(w=U;w<L;++w){p.pack(ae,G,H),p.pack(fe,z,H),p.pack(he,M,H),H+=3;let A=w-2<0?-1:1;if(S[K++]=2*(w%2)-1,S[K++]=A*o,t.st&&(Y[Q++]=r/(f-1),Y[Q++]=Math.max(S[K-2],0)),h(T)){let y=w<2?d:P;T[W++]=m.floatToByte(y.red),T[W++]=m.floatToByte(y.green),T[W++]=m.floatToByte(y.blue),T[W++]=m.floatToByte(y.alpha)}}}let D=new ce;D.position=new x({componentDatatype:V.DOUBLE,componentsPerAttribute:3,values:G}),D.prevPosition=new x({componentDatatype:V.DOUBLE,componentsPerAttribute:3,values:z}),D.nextPosition=new x({componentDatatype:V.DOUBLE,componentsPerAttribute:3,values:M}),D.expandAndWidth=new x({componentDatatype:V.FLOAT,componentsPerAttribute:2,values:S}),t.st&&(D.st=new x({componentDatatype:V.FLOAT,componentsPerAttribute:2,values:Y})),h(T)&&(D.color=new x({componentDatatype:V.UNSIGNED_BYTE,componentsPerAttribute:4,values:T,normalize:!0}));let v=se.createTypedArray(b,f*6-6),C=0,B=0,we=f-1;for(r=0;r<we;++r)v[B++]=C,v[B++]=C+2,v[B++]=C+1,v[B++]=C+1,v[B++]=C+2,v[B++]=C+3,C+=4;return new ie({attributes:D,indices:v,primitiveType:re.TRIANGLES,boundingSphere:oe.fromPoints(i),geometryType:ne.POLYLINES})};var J=q;function ge(e,o){return h(o)&&(e=J.unpack(e,o)),e._ellipsoid=u.clone(e._ellipsoid),J.createGeometry(e)}var We=ge;export{We as default}; diff --git a/cesium/Workers/createPolylineVolumeGeometry.js b/cesium/Workers/createPolylineVolumeGeometry.js new file mode 100644 index 00000000..e0578092 --- /dev/null +++ b/cesium/Workers/createPolylineVolumeGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as W}from"./chunk-UA7PAMQQ.js";import{a as U}from"./chunk-QNPYEODC.js";import"./chunk-G72JFEXW.js";import"./chunk-6W2XFGWI.js";import{a as x,b as I,c as j}from"./chunk-LHBFSFJE.js";import"./chunk-6AEO73KW.js";import"./chunk-WGIRJIIK.js";import{a as g}from"./chunk-AKELQO2L.js";import"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import{a as $,b as M}from"./chunk-TCOMWBL2.js";import{a as Z}from"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as X}from"./chunk-4WQ4VT5S.js";import{a as Q}from"./chunk-6EINM7EY.js";import{b as V,c as Y,d as B}from"./chunk-A4I25VN7.js";import{c as K}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as N}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{b as D,c as f}from"./chunk-2AIOP76V.js";import{a as E,c as J}from"./chunk-IAE6APK2.js";import{a as H}from"./chunk-3E7FIXV7.js";import{a as A}from"./chunk-NZBME2JK.js";import{f as _}from"./chunk-6DLS2UKD.js";function oe(t,e,n,o){let m=new Q;o.position&&(m.position=new B({componentDatatype:N.DOUBLE,componentsPerAttribute:3,values:t}));let i=e.length,u=t.length/3,w=(u-i*2)/(i*2),L=M.triangulate(e),R=(w-1)*i*6+L.length*2,r=X.createTypedArray(u,R),l,s,d,T,b,F,q=i*2,p=0;for(l=0;l<w-1;l++){for(s=0;s<i-1;s++)d=s*2+l*i*2,F=d+q,T=d+1,b=T+q,r[p++]=T,r[p++]=d,r[p++]=b,r[p++]=b,r[p++]=d,r[p++]=F;d=i*2-2+l*i*2,T=d+1,b=T+q,F=d+q,r[p++]=T,r[p++]=d,r[p++]=b,r[p++]=b,r[p++]=d,r[p++]=F}if(o.st||o.tangent||o.bitangent){let c=new Float32Array(u*2),C=1/(w-1),P=1/n.height,O=n.height/2,y,a,h=0;for(l=0;l<w;l++){for(y=l*C,a=P*(e[0].y+O),c[h++]=y,c[h++]=a,s=1;s<i;s++)a=P*(e[s].y+O),c[h++]=y,c[h++]=a,c[h++]=y,c[h++]=a;a=P*(e[0].y+O),c[h++]=y,c[h++]=a}for(s=0;s<i;s++)y=0,a=P*(e[s].y+O),c[h++]=y,c[h++]=a;for(s=0;s<i;s++)y=(w-1)*C,a=P*(e[s].y+O),c[h++]=y,c[h++]=a;m.st=new B({componentDatatype:N.FLOAT,componentsPerAttribute:2,values:new Float32Array(c)})}let G=u-i*2;for(l=0;l<L.length;l+=3){let c=L[l]+G,C=L[l+1]+G,P=L[l+2]+G;r[p++]=c,r[p++]=C,r[p++]=P,r[p++]=P+i,r[p++]=C+i,r[p++]=c+i}let k=new Y({attributes:m,indices:r,boundingSphere:K.fromVertices(t),primitiveType:V.TRIANGLES});if(o.normal&&(k=U.computeNormal(k)),o.tangent||o.bitangent){try{k=U.computeTangentAndBitangent(k)}catch{I("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}o.tangent||(k.attributes.tangent=void 0),o.bitangent||(k.attributes.bitangent=void 0),o.st||(k.attributes.st=void 0)}return k}function v(t){t=t??J.EMPTY_OBJECT;let e=t.polylinePositions,n=t.shapePositions;if(!_(e))throw new A("options.polylinePositions is required.");if(!_(n))throw new A("options.shapePositions is required.");this._positions=e,this._shape=n,this._ellipsoid=f.clone(t.ellipsoid??f.default),this._cornerType=t.cornerType??x.ROUNDED,this._vertexFormat=g.clone(t.vertexFormat??g.DEFAULT),this._granularity=t.granularity??H.RADIANS_PER_DEGREE,this._workerName="createPolylineVolumeGeometry";let o=1+e.length*E.packedLength;o+=1+n.length*D.packedLength,this.packedLength=o+f.packedLength+g.packedLength+2}v.pack=function(t,e,n){if(!_(t))throw new A("value is required");if(!_(e))throw new A("array is required");n=n??0;let o,m=t._positions,i=m.length;for(e[n++]=i,o=0;o<i;++o,n+=E.packedLength)E.pack(m[o],e,n);let u=t._shape;for(i=u.length,e[n++]=i,o=0;o<i;++o,n+=D.packedLength)D.pack(u[o],e,n);return f.pack(t._ellipsoid,e,n),n+=f.packedLength,g.pack(t._vertexFormat,e,n),n+=g.packedLength,e[n++]=t._cornerType,e[n]=t._granularity,e};var ee=f.clone(f.UNIT_SPHERE),te=new g,S={polylinePositions:void 0,shapePositions:void 0,ellipsoid:ee,vertexFormat:te,cornerType:void 0,granularity:void 0};v.unpack=function(t,e,n){if(!_(t))throw new A("array is required");e=e??0;let o,m=t[e++],i=new Array(m);for(o=0;o<m;++o,e+=E.packedLength)i[o]=E.unpack(t,e);m=t[e++];let u=new Array(m);for(o=0;o<m;++o,e+=D.packedLength)u[o]=D.unpack(t,e);let w=f.unpack(t,e,ee);e+=f.packedLength;let L=g.unpack(t,e,te);e+=g.packedLength;let R=t[e++],r=t[e];return _(n)?(n._positions=i,n._shape=u,n._ellipsoid=f.clone(w,n._ellipsoid),n._vertexFormat=g.clone(L,n._vertexFormat),n._cornerType=R,n._granularity=r,n):(S.polylinePositions=i,S.shapePositions=u,S.cornerType=R,S.granularity=r,new v(S))};var ne=new W;v.createGeometry=function(t){let e=t._positions,n=Z(e,E.equalsEpsilon),o=t._shape;if(o=j.removeDuplicatesFromShape(o),n.length<2||o.length<3)return;M.computeWindingOrder2D(o)===$.CLOCKWISE&&o.reverse();let m=W.fromPoints(o,ne),i=j.computePositions(n,o,m,t,!0);return oe(i,o,m,t._vertexFormat)};var z=v;function ie(t,e){return _(e)&&(t=z.unpack(t,e)),t._ellipsoid=f.clone(t._ellipsoid),z.createGeometry(t)}var Re=ie;export{Re as default}; diff --git a/cesium/Workers/createPolylineVolumeOutlineGeometry.js b/cesium/Workers/createPolylineVolumeOutlineGeometry.js new file mode 100644 index 00000000..3f295a7e --- /dev/null +++ b/cesium/Workers/createPolylineVolumeOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as k}from"./chunk-UA7PAMQQ.js";import{a as N,c as w}from"./chunk-LHBFSFJE.js";import"./chunk-6AEO73KW.js";import"./chunk-WGIRJIIK.js";import"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import{a as v,b as G}from"./chunk-TCOMWBL2.js";import{a as q}from"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as g}from"./chunk-4WQ4VT5S.js";import{a as O}from"./chunk-6EINM7EY.js";import{b as A,c as R,d as S}from"./chunk-A4I25VN7.js";import{c as C}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as b}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{b as y,c as s}from"./chunk-2AIOP76V.js";import{a as d,c as D}from"./chunk-IAE6APK2.js";import{a as T}from"./chunk-3E7FIXV7.js";import{a}from"./chunk-NZBME2JK.js";import{f as u}from"./chunk-6DLS2UKD.js";function W(o,i){let t=new O;t.position=new S({componentDatatype:b.DOUBLE,componentsPerAttribute:3,values:o});let e=i.length,r=t.position.values.length/3,f=o.length/3/e,p=g.createTypedArray(r,2*e*(f+1)),m,n,l=0;m=0;let h=m*e;for(n=0;n<e-1;n++)p[l++]=n+h,p[l++]=n+h+1;for(p[l++]=e-1+h,p[l++]=h,m=f-1,h=m*e,n=0;n<e-1;n++)p[l++]=n+h,p[l++]=n+h+1;for(p[l++]=e-1+h,p[l++]=h,m=0;m<f-1;m++){let L=e*m,U=L+e;for(n=0;n<e;n++)p[l++]=n+L,p[l++]=n+U}return new R({attributes:t,indices:g.createTypedArray(r,p),boundingSphere:C.fromVertices(o),primitiveType:A.LINES})}function P(o){o=o??D.EMPTY_OBJECT;let i=o.polylinePositions,t=o.shapePositions;if(!u(i))throw new a("options.polylinePositions is required.");if(!u(t))throw new a("options.shapePositions is required.");this._positions=i,this._shape=t,this._ellipsoid=s.clone(o.ellipsoid??s.default),this._cornerType=o.cornerType??N.ROUNDED,this._granularity=o.granularity??T.RADIANS_PER_DEGREE,this._workerName="createPolylineVolumeOutlineGeometry";let e=1+i.length*d.packedLength;e+=1+t.length*y.packedLength,this.packedLength=e+s.packedLength+2}P.pack=function(o,i,t){if(!u(o))throw new a("value is required");if(!u(i))throw new a("array is required");t=t??0;let e,r=o._positions,c=r.length;for(i[t++]=c,e=0;e<c;++e,t+=d.packedLength)d.pack(r[e],i,t);let f=o._shape;for(c=f.length,i[t++]=c,e=0;e<c;++e,t+=y.packedLength)y.pack(f[e],i,t);return s.pack(o._ellipsoid,i,t),t+=s.packedLength,i[t++]=o._cornerType,i[t]=o._granularity,i};var B=s.clone(s.UNIT_SPHERE),_={polylinePositions:void 0,shapePositions:void 0,ellipsoid:B,height:void 0,cornerType:void 0,granularity:void 0};P.unpack=function(o,i,t){if(!u(o))throw new a("array is required");i=i??0;let e,r=o[i++],c=new Array(r);for(e=0;e<r;++e,i+=d.packedLength)c[e]=d.unpack(o,i);r=o[i++];let f=new Array(r);for(e=0;e<r;++e,i+=y.packedLength)f[e]=y.unpack(o,i);let p=s.unpack(o,i,B);i+=s.packedLength;let m=o[i++],n=o[i];return u(t)?(t._positions=c,t._shape=f,t._ellipsoid=s.clone(p,t._ellipsoid),t._cornerType=m,t._granularity=n,t):(_.polylinePositions=c,_.shapePositions=f,_.cornerType=m,_.granularity=n,new P(_))};var F=new k;P.createGeometry=function(o){let i=o._positions,t=q(i,d.equalsEpsilon),e=o._shape;if(e=w.removeDuplicatesFromShape(e),t.length<2||e.length<3)return;G.computeWindingOrder2D(e)===v.CLOCKWISE&&e.reverse();let r=k.fromPoints(e,F),c=w.computePositions(t,e,r,o,!1);return W(c,e)};var E=P;function M(o,i){return u(i)&&(o=E.unpack(o,i)),o._ellipsoid=s.clone(o._ellipsoid),E.createGeometry(o)}var he=M;export{he as default}; diff --git a/cesium/Workers/createRectangleGeometry.js b/cesium/Workers/createRectangleGeometry.js new file mode 100644 index 00000000..afc8b98d --- /dev/null +++ b/cesium/Workers/createRectangleGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as W}from"./chunk-4KY4VMEH.js";import{a as Nt}from"./chunk-XRJOFXJF.js";import{a as zt}from"./chunk-QNPYEODC.js";import"./chunk-G72JFEXW.js";import"./chunk-6W2XFGWI.js";import{a as ft}from"./chunk-ML6MR2RA.js";import{a as q}from"./chunk-AKELQO2L.js";import{b as yt}from"./chunk-TCOMWBL2.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as At}from"./chunk-4WQ4VT5S.js";import{a as Vt}from"./chunk-6EINM7EY.js";import{b as Mt,c as Pt,d as Y}from"./chunk-A4I25VN7.js";import{c as at}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{h as Lt,j as E,k as bt}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as U}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as mt,b as $,c as D}from"./chunk-2AIOP76V.js";import{a as w,b as lt,c as St}from"./chunk-IAE6APK2.js";import{a as I}from"./chunk-3E7FIXV7.js";import{a as Et,b as ct}from"./chunk-NZBME2JK.js";import{f as K}from"./chunk-6DLS2UKD.js";var Tt=new w,Bt=new w,Ut=new w,Yt=new w,qt=new E,Zt=new $,Kt=new at,$t=new at;function Xt(t,e){let n=new Pt({attributes:new Vt,primitiveType:Mt.TRIANGLES});return n.attributes.position=new Y({componentDatatype:U.DOUBLE,componentsPerAttribute:3,values:e.positions}),t.normal&&(n.attributes.normal=new Y({componentDatatype:U.FLOAT,componentsPerAttribute:3,values:e.normals})),t.tangent&&(n.attributes.tangent=new Y({componentDatatype:U.FLOAT,componentsPerAttribute:3,values:e.tangents})),t.bitangent&&(n.attributes.bitangent=new Y({componentDatatype:U.FLOAT,componentsPerAttribute:3,values:e.bitangents})),n}function Gt(t,e,n,r){let a=t.length,c=e.normal?new Float32Array(a):void 0,l=e.tangent?new Float32Array(a):void 0,u=e.bitangent?new Float32Array(a):void 0,p=0,d=Yt,o=Ut,i=Bt;if(e.normal||e.tangent||e.bitangent)for(let f=0;f<a;f+=3){let s=w.fromArray(t,f,Tt),h=p+1,g=p+2;i=n.geodeticSurfaceNormal(s,i),(e.tangent||e.bitangent)&&(w.cross(w.UNIT_Z,i,o),lt.multiplyByVector(r,o,o),w.normalize(o,o),e.bitangent&&w.normalize(w.cross(i,o,d),d)),e.normal&&(c[p]=i.x,c[h]=i.y,c[g]=i.z),e.tangent&&(l[p]=o.x,l[h]=o.y,l[g]=o.z),e.bitangent&&(u[p]=d.x,u[h]=d.y,u[g]=d.z),p+=3}return Xt(e,{positions:t,normals:c,tangents:l,bitangents:u})}var Ct=new w,jt=new w;function te(t,e,n){let r=t.length,a=e.normal?new Float32Array(r):void 0,c=e.tangent?new Float32Array(r):void 0,l=e.bitangent?new Float32Array(r):void 0,u=0,p=0,d=0,o=!0,i=Yt,f=Ut,s=Bt;if(e.normal||e.tangent||e.bitangent)for(let h=0;h<r;h+=6){let g=w.fromArray(t,h,Tt),A=w.fromArray(t,(h+6)%r,Ct);if(o){let b=w.fromArray(t,(h+3)%r,jt);w.subtract(A,g,A),w.subtract(b,g,b),s=w.normalize(w.cross(b,A,s),s),o=!1}w.equalsEpsilon(A,g,I.EPSILON10)&&(o=!0),(e.tangent||e.bitangent)&&(i=n.geodeticSurfaceNormal(g,i),e.tangent&&(f=w.normalize(w.cross(i,s,f),f))),e.normal&&(a[u++]=s.x,a[u++]=s.y,a[u++]=s.z,a[u++]=s.x,a[u++]=s.y,a[u++]=s.z),e.tangent&&(c[p++]=f.x,c[p++]=f.y,c[p++]=f.z,c[p++]=f.x,c[p++]=f.y,c[p++]=f.z),e.bitangent&&(l[d++]=i.x,l[d++]=i.y,l[d++]=i.z,l[d++]=i.x,l[d++]=i.y,l[d++]=i.z)}return Xt(e,{positions:t,normals:a,tangents:c,bitangents:l})}function It(t,e){let n=t._vertexFormat,r=t._ellipsoid,a=e.height,c=e.width,l=e.northCap,u=e.southCap,p=0,d=a,o=a,i=0;l&&(p=1,o-=1,i+=1),u&&(d-=1,o-=1,i+=1),i+=c*o;let f=n.position?new Float64Array(i*3):void 0,s=n.st?new Float32Array(i*2):void 0,h=0,g=0,A=Tt,b=Zt,V=Number.MAX_VALUE,z=Number.MAX_VALUE,X=-Number.MAX_VALUE,N=-Number.MAX_VALUE;for(let x=p;x<d;++x)for(let O=0;O<c;++O)W.computePosition(e,r,n.st,x,O,A,b),f[h++]=A.x,f[h++]=A.y,f[h++]=A.z,n.st&&(s[g++]=b.x,s[g++]=b.y,V=Math.min(V,b.x),z=Math.min(z,b.y),X=Math.max(X,b.x),N=Math.max(N,b.y));if(l&&(W.computePosition(e,r,n.st,0,0,A,b),f[h++]=A.x,f[h++]=A.y,f[h++]=A.z,n.st&&(s[g++]=b.x,s[g++]=b.y,V=b.x,z=b.y,X=b.x,N=b.y)),u&&(W.computePosition(e,r,n.st,a-1,0,A,b),f[h++]=A.x,f[h++]=A.y,f[h]=A.z,n.st&&(s[g++]=b.x,s[g]=b.y,V=Math.min(V,b.x),z=Math.min(z,b.y),X=Math.max(X,b.x),N=Math.max(N,b.y))),n.st&&(V<0||z<0||X>1||N>1))for(let x=0;x<s.length;x+=2)s[x]=(s[x]-V)/(X-V),s[x+1]=(s[x+1]-z)/(N-z);let m=Gt(f,n,r,e.tangentRotationMatrix),Z=6*(c-1)*(o-1);l&&(Z+=3*(c-1)),u&&(Z+=3*(c-1));let L=At.createTypedArray(i,Z),C=0,P=0,H;for(H=0;H<o-1;++H){for(let x=0;x<c-1;++x){let O=C,k=O+c,j=k+1,st=O+1;L[P++]=O,L[P++]=k,L[P++]=st,L[P++]=st,L[P++]=k,L[P++]=j,++C}++C}if(l||u){let x=i-1,O=i-1;l&&u&&(x=i-2);let k,j;if(C=0,l)for(H=0;H<c-1;H++)k=C,j=k+1,L[P++]=x,L[P++]=k,L[P++]=j,++C;if(u)for(C=(o-1)*c,H=0;H<c-1;H++)k=C,j=k+1,L[P++]=k,L[P++]=O,L[P++]=j,++C}return m.indices=L,n.st&&(m.attributes.st=new Y({componentDatatype:U.FLOAT,componentsPerAttribute:2,values:s})),m}function ut(t,e,n,r,a){return t[e++]=r[n],t[e++]=r[n+1],t[e++]=r[n+2],t[e++]=a[n],t[e++]=a[n+1],t[e]=a[n+2],t}function ht(t,e,n,r){return t[e++]=r[n],t[e++]=r[n+1],t[e++]=r[n],t[e]=r[n+1],t}var Dt=new q;function ee(t,e){let n=t._shadowVolume,r=t._offsetAttribute,a=t._vertexFormat,c=t._extrudedHeight,l=t._surfaceHeight,u=t._ellipsoid,p=e.height,d=e.width,o;if(n){let R=q.clone(a,Dt);R.normal=!0,t._vertexFormat=R}let i=It(t,e);n&&(t._vertexFormat=a);let f=yt.scaleToGeodeticHeight(i.attributes.position.values,l,u,!1);f=new Float64Array(f);let s=f.length,h=s*2,g=new Float64Array(h);g.set(f);let A=yt.scaleToGeodeticHeight(i.attributes.position.values,c,u);g.set(A,s),i.attributes.position.values=g;let b=a.normal?new Float32Array(h):void 0,V=a.tangent?new Float32Array(h):void 0,z=a.bitangent?new Float32Array(h):void 0,X=a.st?new Float32Array(h/3*2):void 0,N,m;if(a.normal){for(m=i.attributes.normal.values,b.set(m),o=0;o<s;o++)m[o]=-m[o];b.set(m,s),i.attributes.normal.values=b}if(n){m=i.attributes.normal.values,a.normal||(i.attributes.normal=void 0);let R=new Float32Array(h);for(o=0;o<s;o++)m[o]=-m[o];R.set(m,s),i.attributes.extrudeDirection=new Y({componentDatatype:U.FLOAT,componentsPerAttribute:3,values:R})}let Z,L=K(r);if(L){let R=s/3*2,it=new Uint8Array(R);r===ft.TOP?it=it.fill(1,0,R/2):(Z=r===ft.NONE?0:1,it=it.fill(Z)),i.attributes.applyOffset=new Y({componentDatatype:U.UNSIGNED_BYTE,componentsPerAttribute:1,values:it})}if(a.tangent){let R=i.attributes.tangent.values;for(V.set(R),o=0;o<s;o++)R[o]=-R[o];V.set(R,s),i.attributes.tangent.values=V}if(a.bitangent){let R=i.attributes.bitangent.values;z.set(R),z.set(R,s),i.attributes.bitangent.values=z}a.st&&(N=i.attributes.st.values,X.set(N),X.set(N,s/3*2),i.attributes.st.values=X);let C=i.indices,P=C.length,H=s/3,x=At.createTypedArray(h/3,P*2);for(x.set(C),o=0;o<P;o+=3)x[o+P]=C[o+2]+H,x[o+1+P]=C[o+1]+H,x[o+2+P]=C[o]+H;i.indices=x;let O=e.northCap,k=e.southCap,j=p,st=2,pt=0,Rt=4,xt=4;O&&(st-=1,j-=1,pt+=1,Rt-=2,xt-=1),k&&(st-=1,j-=1,pt+=1,Rt-=2,xt-=1),pt+=st*d+2*j-Rt;let dt=(pt+xt)*2,T=new Float64Array(dt*3),S=n?new Float32Array(dt*3):void 0,Q=L?new Uint8Array(dt):void 0,M=a.st?new Float32Array(dt*2):void 0,tt=r===ft.TOP;L&&!tt&&(Z=r===ft.ALL?1:0,Q=Q.fill(Z));let F=0,v=0,y=0,B=0,et=d*j,_;for(o=0;o<et;o+=d)_=o*3,T=ut(T,F,_,f,A),F+=6,a.st&&(M=ht(M,v,o*2,N),v+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),tt&&(Q[B++]=1,B+=1);if(k){let R=O?et+1:et;for(_=R*3,o=0;o<2;o++)T=ut(T,F,_,f,A),F+=6,a.st&&(M=ht(M,v,R*2,N),v+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),tt&&(Q[B++]=1,B+=1)}else for(o=et-d;o<et;o++)_=o*3,T=ut(T,F,_,f,A),F+=6,a.st&&(M=ht(M,v,o*2,N),v+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),tt&&(Q[B++]=1,B+=1);for(o=et-1;o>0;o-=d)_=o*3,T=ut(T,F,_,f,A),F+=6,a.st&&(M=ht(M,v,o*2,N),v+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),tt&&(Q[B++]=1,B+=1);if(O){let R=et;for(_=R*3,o=0;o<2;o++)T=ut(T,F,_,f,A),F+=6,a.st&&(M=ht(M,v,R*2,N),v+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),tt&&(Q[B++]=1,B+=1)}else for(o=d-1;o>=0;o--)_=o*3,T=ut(T,F,_,f,A),F+=6,a.st&&(M=ht(M,v,o*2,N),v+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),tt&&(Q[B++]=1,B+=1);let nt=te(T,a,u);a.st&&(nt.attributes.st=new Y({componentDatatype:U.FLOAT,componentsPerAttribute:2,values:M})),n&&(nt.attributes.extrudeDirection=new Y({componentDatatype:U.FLOAT,componentsPerAttribute:3,values:S})),L&&(nt.attributes.applyOffset=new Y({componentDatatype:U.UNSIGNED_BYTE,componentsPerAttribute:1,values:Q}));let ot=At.createTypedArray(dt,pt*6),gt,_t,kt,wt;s=T.length/3;let rt=0;for(o=0;o<s-1;o+=2){gt=o,wt=(gt+2)%s;let R=w.fromArray(T,gt*3,Ct),it=w.fromArray(T,wt*3,jt);w.equalsEpsilon(R,it,I.EPSILON10)||(_t=(gt+1)%s,kt=(_t+2)%s,ot[rt++]=gt,ot[rt++]=_t,ot[rt++]=wt,ot[rt++]=wt,ot[rt++]=_t,ot[rt++]=kt)}return nt.indices=ot,nt=zt.combineInstances([new Nt({geometry:i}),new Nt({geometry:nt})]),nt[0]}var ne=[new w,new w,new w,new w],Wt=new mt,oe=new mt;function Ht(t,e,n,r,a){if(n===0)return E.clone(t,a);let c=W.computeOptions(t,e,n,0,qt,Wt),l=c.height,u=c.width,p=ne;return W.computePosition(c,r,!1,0,0,p[0]),W.computePosition(c,r,!1,0,u-1,p[1]),W.computePosition(c,r,!1,l-1,0,p[2]),W.computePosition(c,r,!1,l-1,u-1,p[3]),E.fromCartesianArray(p,r,a)}function J(t){t=t??St.EMPTY_OBJECT;let e=t.rectangle;if(ct.typeOf.object("rectangle",e),E._validate(e),e.north<e.south)throw new Et("options.rectangle.north must be greater than or equal to options.rectangle.south");let n=t.height??0,r=t.extrudedHeight??n;this._rectangle=E.clone(e),this._granularity=t.granularity??I.RADIANS_PER_DEGREE,this._ellipsoid=D.clone(t.ellipsoid??D.default),this._surfaceHeight=Math.max(n,r),this._rotation=t.rotation??0,this._stRotation=t.stRotation??0,this._vertexFormat=q.clone(t.vertexFormat??q.DEFAULT),this._extrudedHeight=Math.min(n,r),this._shadowVolume=t.shadowVolume??!1,this._workerName="createRectangleGeometry",this._offsetAttribute=t.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}J.packedLength=E.packedLength+D.packedLength+q.packedLength+7;J.pack=function(t,e,n){return ct.typeOf.object("value",t),ct.defined("array",e),n=n??0,E.pack(t._rectangle,e,n),n+=E.packedLength,D.pack(t._ellipsoid,e,n),n+=D.packedLength,q.pack(t._vertexFormat,e,n),n+=q.packedLength,e[n++]=t._granularity,e[n++]=t._surfaceHeight,e[n++]=t._rotation,e[n++]=t._stRotation,e[n++]=t._extrudedHeight,e[n++]=t._shadowVolume?1:0,e[n]=t._offsetAttribute??-1,e};var Jt=new E,Qt=D.clone(D.UNIT_SPHERE),G={rectangle:Jt,ellipsoid:Qt,vertexFormat:Dt,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};J.unpack=function(t,e,n){ct.defined("array",t),e=e??0;let r=E.unpack(t,e,Jt);e+=E.packedLength;let a=D.unpack(t,e,Qt);e+=D.packedLength;let c=q.unpack(t,e,Dt);e+=q.packedLength;let l=t[e++],u=t[e++],p=t[e++],d=t[e++],o=t[e++],i=t[e++]===1,f=t[e];return K(n)?(n._rectangle=E.clone(r,n._rectangle),n._ellipsoid=D.clone(a,n._ellipsoid),n._vertexFormat=q.clone(c,n._vertexFormat),n._granularity=l,n._surfaceHeight=u,n._rotation=p,n._stRotation=d,n._extrudedHeight=o,n._shadowVolume=i,n._offsetAttribute=f===-1?void 0:f,n):(G.granularity=l,G.height=u,G.rotation=p,G.stRotation=d,G.extrudedHeight=o,G.shadowVolume=i,G.offsetAttribute=f===-1?void 0:f,new J(G))};J.computeRectangle=function(t,e){t=t??St.EMPTY_OBJECT;let n=t.rectangle;if(ct.typeOf.object("rectangle",n),E._validate(n),n.north<n.south)throw new Et("options.rectangle.north must be greater than or equal to options.rectangle.south");let r=t.granularity??I.RADIANS_PER_DEGREE,a=t.ellipsoid??D.default,c=t.rotation??0;return Ht(n,r,c,a,e)};var ie=new lt,Ft=new Lt,ae=new mt;J.createGeometry=function(t){if(I.equalsEpsilon(t._rectangle.north,t._rectangle.south,I.EPSILON10)||I.equalsEpsilon(t._rectangle.east,t._rectangle.west,I.EPSILON10))return;let e=t._rectangle,n=t._ellipsoid,r=t._rotation,a=t._stRotation,c=t._vertexFormat,l=W.computeOptions(e,t._granularity,r,a,qt,Wt,oe),u=ie;if(a!==0||r!==0){let s=E.center(e,ae),h=n.geodeticSurfaceNormalCartographic(s,Ct);Lt.fromAxisAngle(h,-a,Ft),lt.fromQuaternion(Ft,u)}else lt.clone(lt.IDENTITY,u);let p=t._surfaceHeight,d=t._extrudedHeight,o=!I.equalsEpsilon(p,d,0,I.EPSILON2);l.lonScalar=1/t._rectangle.width,l.latScalar=1/t._rectangle.height,l.tangentRotationMatrix=u;let i,f;if(e=t._rectangle,o){i=ee(t,l);let s=at.fromRectangle3D(e,n,p,$t),h=at.fromRectangle3D(e,n,d,Kt);f=at.union(s,h)}else{if(i=It(t,l),i.attributes.position.values=yt.scaleToGeodeticHeight(i.attributes.position.values,p,n,!1),K(t._offsetAttribute)){let s=i.attributes.position.values.length,h=t._offsetAttribute===ft.NONE?0:1,g=new Uint8Array(s/3).fill(h);i.attributes.applyOffset=new Y({componentDatatype:U.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}f=at.fromRectangle3D(e,n,p)}return c.position||delete i.attributes.position,new Pt({attributes:i.attributes,indices:i.indices,primitiveType:i.primitiveType,boundingSphere:f,offsetAttribute:t._offsetAttribute})};J.createShadowVolume=function(t,e,n){let r=t._granularity,a=t._ellipsoid,c=e(r,a),l=n(r,a);return new J({rectangle:t._rectangle,rotation:t._rotation,ellipsoid:a,stRotation:t._stRotation,granularity:r,extrudedHeight:l,height:c,vertexFormat:q.POSITION_ONLY,shadowVolume:!0})};var vt=new E,se=[new $,new $,new $],re=new bt,ce=new mt;function le(t){if(t._stRotation===0)return[0,0,0,1,1,0];let e=E.clone(t._rectangle,vt),n=t._granularity,r=t._ellipsoid,a=t._rotation-t._stRotation,c=Ht(e,n,a,r,vt),l=se;l[0].x=c.west,l[0].y=c.south,l[1].x=c.west,l[1].y=c.north,l[2].x=c.east,l[2].y=c.south;let u=t.rectangle,p=bt.fromRotation(t._stRotation,re),d=E.center(u,ce);for(let h=0;h<3;++h){let g=l[h];g.x-=d.longitude,g.y-=d.latitude,bt.multiplyByVector(p,g,g),g.x+=d.longitude,g.y+=d.latitude,g.x=(g.x-u.west)/u.width,g.y=(g.y-u.south)/u.height}let o=l[0],i=l[1],f=l[2],s=new Array(6);return $.pack(o,s),$.pack(i,s,2),$.pack(f,s,4),s}Object.defineProperties(J.prototype,{rectangle:{get:function(){return K(this._rotatedRectangle)||(this._rotatedRectangle=Ht(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return K(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=le(this)),this._textureCoordinateRotationPoints}}});var Ot=J;function fe(t,e){return K(e)&&(t=Ot.unpack(t,e)),t._ellipsoid=D.clone(t._ellipsoid),t._rectangle=E.clone(t._rectangle),Ot.createGeometry(t)}var Ye=fe;export{Ye as default}; diff --git a/cesium/Workers/createRectangleOutlineGeometry.js b/cesium/Workers/createRectangleOutlineGeometry.js new file mode 100644 index 00000000..f2d6a6d2 --- /dev/null +++ b/cesium/Workers/createRectangleOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as R}from"./chunk-4KY4VMEH.js";import{a as y}from"./chunk-ML6MR2RA.js";import{b as z}from"./chunk-TCOMWBL2.js";import"./chunk-37ETYCYM.js";import{a as q}from"./chunk-4WQ4VT5S.js";import{a as F}from"./chunk-6EINM7EY.js";import{b as v,c as B,d as T}from"./chunk-A4I25VN7.js";import{c as P}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{j as b}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as D}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as U,c as w}from"./chunk-2AIOP76V.js";import{a as x,c as M}from"./chunk-IAE6APK2.js";import{a as S}from"./chunk-3E7FIXV7.js";import{a as C}from"./chunk-NZBME2JK.js";import{f as H}from"./chunk-6DLS2UKD.js";var j=new P,K=new P,Q=new x,W=new b;function Y(t,e){let i=t._ellipsoid,m=e.height,s=e.width,h=e.northCap,p=e.southCap,_=m,A=2,o=0,g=4;h&&(A-=1,_-=1,o+=1,g-=2),p&&(A-=1,_-=1,o+=1,g-=2),o+=A*s+2*_-g;let n=new Float64Array(o*3),l=0,f=0,a,r=Q;if(h)R.computePosition(e,i,!1,f,0,r),n[l++]=r.x,n[l++]=r.y,n[l++]=r.z;else for(a=0;a<s;a++)R.computePosition(e,i,!1,f,a,r),n[l++]=r.x,n[l++]=r.y,n[l++]=r.z;for(a=s-1,f=1;f<m;f++)R.computePosition(e,i,!1,f,a,r),n[l++]=r.x,n[l++]=r.y,n[l++]=r.z;if(f=m-1,!p)for(a=s-2;a>=0;a--)R.computePosition(e,i,!1,f,a,r),n[l++]=r.x,n[l++]=r.y,n[l++]=r.z;for(a=0,f=m-2;f>0;f--)R.computePosition(e,i,!1,f,a,r),n[l++]=r.x,n[l++]=r.y,n[l++]=r.z;let u=n.length/3*2,c=q.createTypedArray(n.length/3,u),E=0;for(let L=0;L<n.length/3-1;L++)c[E++]=L,c[E++]=L+1;c[E++]=n.length/3-1,c[E++]=0;let d=new B({attributes:new F,primitiveType:v.LINES});return d.attributes.position=new T({componentDatatype:D.DOUBLE,componentsPerAttribute:3,values:n}),d.indices=c,d}function X(t,e){let i=t._surfaceHeight,m=t._extrudedHeight,s=t._ellipsoid,h=Y(t,e),p=e.height,_=e.width,A=z.scaleToGeodeticHeight(h.attributes.position.values,i,s,!1),o=A.length,g=new Float64Array(o*2);g.set(A);let n=z.scaleToGeodeticHeight(h.attributes.position.values,m,s);g.set(n,o),h.attributes.position.values=g;let l=e.northCap,f=e.southCap,a=4;l&&(a-=1),f&&(a-=1);let r=(g.length/3+a)*2,u=q.createTypedArray(g.length/3,r);o=g.length/6;let c=0;for(let d=0;d<o-1;d++)u[c++]=d,u[c++]=d+1,u[c++]=d+o,u[c++]=d+o+1;u[c++]=o-1,u[c++]=0,u[c++]=o+o-1,u[c++]=o,u[c++]=0,u[c++]=o;let E;if(l)E=p-1;else{let d=_-1;u[c++]=d,u[c++]=d+o,E=_+p-2}if(u[c++]=E,u[c++]=E+o,!f){let d=_+E-1;u[c++]=d,u[c]=d+o}return h.indices=u,h}function k(t){t=t??M.EMPTY_OBJECT;let e=t.rectangle,i=t.granularity??S.RADIANS_PER_DEGREE,m=t.ellipsoid??w.default,s=t.rotation??0;if(!H(e))throw new C("rectangle is required.");if(b._validate(e),e.north<e.south)throw new C("options.rectangle.north must be greater than options.rectangle.south");let h=t.height??0,p=t.extrudedHeight??h;this._rectangle=b.clone(e),this._granularity=i,this._ellipsoid=m,this._surfaceHeight=Math.max(h,p),this._rotation=s,this._extrudedHeight=Math.min(h,p),this._offsetAttribute=t.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}k.packedLength=b.packedLength+w.packedLength+5;k.pack=function(t,e,i){if(!H(t))throw new C("value is required");if(!H(e))throw new C("array is required");return i=i??0,b.pack(t._rectangle,e,i),i+=b.packedLength,w.pack(t._ellipsoid,e,i),i+=w.packedLength,e[i++]=t._granularity,e[i++]=t._surfaceHeight,e[i++]=t._rotation,e[i++]=t._extrudedHeight,e[i]=t._offsetAttribute??-1,e};var J=new b,V=w.clone(w.UNIT_SPHERE),N={rectangle:J,ellipsoid:V,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};k.unpack=function(t,e,i){if(!H(t))throw new C("array is required");e=e??0;let m=b.unpack(t,e,J);e+=b.packedLength;let s=w.unpack(t,e,V);e+=w.packedLength;let h=t[e++],p=t[e++],_=t[e++],A=t[e++],o=t[e];return H(i)?(i._rectangle=b.clone(m,i._rectangle),i._ellipsoid=w.clone(s,i._ellipsoid),i._surfaceHeight=p,i._rotation=_,i._extrudedHeight=A,i._offsetAttribute=o===-1?void 0:o,i):(N.granularity=h,N.height=p,N.rotation=_,N.extrudedHeight=A,N.offsetAttribute=o===-1?void 0:o,new k(N))};var Z=new U;k.createGeometry=function(t){let e=t._rectangle,i=t._ellipsoid,m=R.computeOptions(e,t._granularity,t._rotation,0,W,Z),s,h;if(S.equalsEpsilon(e.north,e.south,S.EPSILON10)||S.equalsEpsilon(e.east,e.west,S.EPSILON10))return;let p=t._surfaceHeight,_=t._extrudedHeight,A=!S.equalsEpsilon(p,_,0,S.EPSILON2),o;if(A){if(s=X(t,m),H(t._offsetAttribute)){let l=s.attributes.position.values.length/3,f=new Uint8Array(l);t._offsetAttribute===y.TOP?f=f.fill(1,0,l/2):(o=t._offsetAttribute===y.NONE?0:1,f=f.fill(o)),s.attributes.applyOffset=new T({componentDatatype:D.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}let g=P.fromRectangle3D(e,i,p,K),n=P.fromRectangle3D(e,i,_,j);h=P.union(g,n)}else{if(s=Y(t,m),s.attributes.position.values=z.scaleToGeodeticHeight(s.attributes.position.values,p,i,!1),H(t._offsetAttribute)){let g=s.attributes.position.values.length;o=t._offsetAttribute===y.NONE?0:1;let n=new Uint8Array(g/3).fill(o);s.attributes.applyOffset=new T({componentDatatype:D.UNSIGNED_BYTE,componentsPerAttribute:1,values:n})}h=P.fromRectangle3D(e,i,p)}return new B({attributes:s.attributes,indices:s.indices,primitiveType:v.LINES,boundingSphere:h,offsetAttribute:t._offsetAttribute})};var O=k;function $(t,e){return H(e)&&(t=O.unpack(t,e)),t._ellipsoid=w.clone(t._ellipsoid),t._rectangle=b.clone(t._rectangle),O.createGeometry(t)}var Et=$;export{Et as default}; diff --git a/cesium/Workers/createSimplePolylineGeometry.js b/cesium/Workers/createSimplePolylineGeometry.js new file mode 100644 index 00000000..fb3a4a67 --- /dev/null +++ b/cesium/Workers/createSimplePolylineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-QJTXFT4R.js";import{a as L}from"./chunk-AJH5KBOO.js";import{a as P}from"./chunk-6AEO73KW.js";import"./chunk-WGIRJIIK.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as X}from"./chunk-4WQ4VT5S.js";import{a as W}from"./chunk-6EINM7EY.js";import{b as K,c as Q,d as H}from"./chunk-A4I25VN7.js";import{c as j}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as v}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c as w}from"./chunk-2AIOP76V.js";import{a as A,c as J}from"./chunk-IAE6APK2.js";import{a as G}from"./chunk-3E7FIXV7.js";import{a as D}from"./chunk-NZBME2JK.js";import{f as u}from"./chunk-6DLS2UKD.js";function Z(t,e,o,i,s,c,p){let g=P.numberOfPoints(t,e,s),f,n=o.red,m=o.green,d=o.blue,T=o.alpha,l=i.red,h=i.green,y=i.blue,S=i.alpha;if(r.equals(o,i)){for(f=0;f<g;f++)c[p++]=r.floatToByte(n),c[p++]=r.floatToByte(m),c[p++]=r.floatToByte(d),c[p++]=r.floatToByte(T);return p}let N=(l-n)/g,V=(h-m)/g,R=(y-d)/g,_=(S-T)/g,a=p;for(f=0;f<g;f++)c[a++]=r.floatToByte(n+f*N),c[a++]=r.floatToByte(m+f*V),c[a++]=r.floatToByte(d+f*R),c[a++]=r.floatToByte(T+f*_);return a}function O(t){t=t??J.EMPTY_OBJECT;let e=t.positions,o=t.colors,i=t.colorsPerVertex??!1;if(!u(e)||e.length<2)throw new D("At least two positions are required.");if(u(o)&&(i&&o.length<e.length||!i&&o.length<e.length-1))throw new D("colors has an invalid length.");this._positions=e,this._colors=o,this._colorsPerVertex=i,this._arcType=t.arcType??L.GEODESIC,this._granularity=t.granularity??G.RADIANS_PER_DEGREE,this._ellipsoid=t.ellipsoid??w.default,this._workerName="createSimplePolylineGeometry";let s=1+e.length*A.packedLength;s+=u(o)?1+o.length*r.packedLength:1,this.packedLength=s+w.packedLength+3}O.pack=function(t,e,o){if(!u(t))throw new D("value is required");if(!u(e))throw new D("array is required");o=o??0;let i,s=t._positions,c=s.length;for(e[o++]=c,i=0;i<c;++i,o+=A.packedLength)A.pack(s[i],e,o);let p=t._colors;for(c=u(p)?p.length:0,e[o++]=c,i=0;i<c;++i,o+=r.packedLength)r.pack(p[i],e,o);return w.pack(t._ellipsoid,e,o),o+=w.packedLength,e[o++]=t._colorsPerVertex?1:0,e[o++]=t._arcType,e[o]=t._granularity,e};O.unpack=function(t,e,o){if(!u(t))throw new D("array is required");e=e??0;let i,s=t[e++],c=new Array(s);for(i=0;i<s;++i,e+=A.packedLength)c[i]=A.unpack(t,e);s=t[e++];let p=s>0?new Array(s):void 0;for(i=0;i<s;++i,e+=r.packedLength)p[i]=r.unpack(t,e);let g=w.unpack(t,e);e+=w.packedLength;let f=t[e++]===1,n=t[e++],m=t[e];return u(o)?(o._positions=c,o._colors=p,o._ellipsoid=g,o._colorsPerVertex=f,o._arcType=n,o._granularity=m,o):new O({positions:c,colors:p,ellipsoid:g,colorsPerVertex:f,arcType:n,granularity:m})};var U=new Array(2),q=new Array(2),$={positions:U,height:q,ellipsoid:void 0,minDistance:void 0,granularity:void 0};O.createGeometry=function(t){let e=t._positions,o=t._colors,i=t._colorsPerVertex,s=t._arcType,c=t._granularity,p=t._ellipsoid,g=G.chordLength(c,p.maximumRadius),f=u(o)&&!i,n,m=e.length,d,T,l,h,y=0;if(s===L.GEODESIC||s===L.RHUMB){let _,a,k;s===L.GEODESIC?(_=G.chordLength(c,p.maximumRadius),a=P.numberOfPoints,k=P.generateArc):(_=c,a=P.numberOfPointsRhumbLine,k=P.generateRhumbArc);let z=P.extractHeights(e,p),B=$;if(s===L.GEODESIC?B.minDistance=g:B.granularity=c,B.ellipsoid=p,f){let b=0;for(n=0;n<m-1;n++)b+=a(e[n],e[n+1],_)+1;d=new Float64Array(b*3),l=new Uint8Array(b*4),B.positions=U,B.height=q;let E=0;for(n=0;n<m-1;++n){U[0]=e[n],U[1]=e[n+1],q[0]=z[n],q[1]=z[n+1];let C=k(B);if(u(o)){let M=C.length/3;h=o[n];for(let F=0;F<M;++F)l[E++]=r.floatToByte(h.red),l[E++]=r.floatToByte(h.green),l[E++]=r.floatToByte(h.blue),l[E++]=r.floatToByte(h.alpha)}d.set(C,y),y+=C.length}}else if(B.positions=e,B.height=z,d=new Float64Array(k(B)),u(o)){for(l=new Uint8Array(d.length/3*4),n=0;n<m-1;++n){let E=e[n],C=e[n+1],M=o[n],F=o[n+1];y=Z(E,C,M,F,g,l,y)}let b=o[m-1];l[y++]=r.floatToByte(b.red),l[y++]=r.floatToByte(b.green),l[y++]=r.floatToByte(b.blue),l[y++]=r.floatToByte(b.alpha)}}else{T=f?m*2-2:m,d=new Float64Array(T*3),l=u(o)?new Uint8Array(T*4):void 0;let _=0,a=0;for(n=0;n<m;++n){let k=e[n];if(f&&n>0&&(A.pack(k,d,_),_+=3,h=o[n-1],l[a++]=r.floatToByte(h.red),l[a++]=r.floatToByte(h.green),l[a++]=r.floatToByte(h.blue),l[a++]=r.floatToByte(h.alpha)),f&&n===m-1)break;A.pack(k,d,_),_+=3,u(o)&&(h=o[n],l[a++]=r.floatToByte(h.red),l[a++]=r.floatToByte(h.green),l[a++]=r.floatToByte(h.blue),l[a++]=r.floatToByte(h.alpha))}}let S=new W;S.position=new H({componentDatatype:v.DOUBLE,componentsPerAttribute:3,values:d}),u(o)&&(S.color=new H({componentDatatype:v.UNSIGNED_BYTE,componentsPerAttribute:4,values:l,normalize:!0})),T=d.length/3;let N=(T-1)*2,V=X.createTypedArray(T,N),R=0;for(n=0;n<T-1;++n)V[R++]=n,V[R++]=n+1;return new Q({attributes:S,indices:V,primitiveType:K.LINES,boundingSphere:j.fromPoints(e)})};var Y=O;function x(t,e){return u(e)&&(t=Y.unpack(t,e)),t._ellipsoid=w.clone(t._ellipsoid),Y.createGeometry(t)}var _e=x;export{_e as default}; diff --git a/cesium/Workers/createSphereGeometry.js b/cesium/Workers/createSphereGeometry.js new file mode 100644 index 00000000..a97bc386 --- /dev/null +++ b/cesium/Workers/createSphereGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-5Z36UAB7.js";import"./chunk-ML6MR2RA.js";import{a as m}from"./chunk-AKELQO2L.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import{a as s}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{b as p}from"./chunk-NZBME2JK.js";import{f as c}from"./chunk-6DLS2UKD.js";function a(e){let t=e.radius??1,o={radii:new s(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new r(o),this._workerName="createSphereGeometry"}a.packedLength=r.packedLength;a.pack=function(e,t,n){return p.typeOf.object("value",e),r.pack(e._ellipsoidGeometry,t,n)};var l=new r,i={radius:void 0,radii:new s,vertexFormat:new m,stackPartitions:void 0,slicePartitions:void 0};a.unpack=function(e,t,n){let o=r.unpack(e,t,l);return i.vertexFormat=m.clone(o._vertexFormat,i.vertexFormat),i.stackPartitions=o._stackPartitions,i.slicePartitions=o._slicePartitions,c(n)?(s.clone(o._radii,i.radii),n._ellipsoidGeometry=new r(i),n):(i.radius=o._radii.x,new a(i))};a.createGeometry=function(e){return r.createGeometry(e._ellipsoidGeometry)};var d=a;function f(e,t){return c(t)&&(e=d.unpack(e,t)),d.createGeometry(e)}var w=f;export{w as default}; diff --git a/cesium/Workers/createSphereOutlineGeometry.js b/cesium/Workers/createSphereOutlineGeometry.js new file mode 100644 index 00000000..3fb29d96 --- /dev/null +++ b/cesium/Workers/createSphereOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as t}from"./chunk-PSIOCLX7.js";import"./chunk-ML6MR2RA.js";import"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import{a as c}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import{b as u}from"./chunk-NZBME2JK.js";import{f as a}from"./chunk-6DLS2UKD.js";function s(i){let e=i.radius??1,r={radii:new c(e,e,e),stackPartitions:i.stackPartitions,slicePartitions:i.slicePartitions,subdivisions:i.subdivisions};this._ellipsoidGeometry=new t(r),this._workerName="createSphereOutlineGeometry"}s.packedLength=t.packedLength;s.pack=function(i,e,o){return u.typeOf.object("value",i),t.pack(i._ellipsoidGeometry,e,o)};var l=new t,n={radius:void 0,radii:new c,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};s.unpack=function(i,e,o){let r=t.unpack(i,e,l);return n.stackPartitions=r._stackPartitions,n.slicePartitions=r._slicePartitions,n.subdivisions=r._subdivisions,a(o)?(c.clone(r._radii,n.radii),o._ellipsoidGeometry=new t(n),o):(n.radius=r._radii.x,new s(n))};s.createGeometry=function(i){return t.createGeometry(i._ellipsoidGeometry)};var d=s;function m(i,e){return a(e)&&(i=d.unpack(i,e)),d.createGeometry(i)}var h=m;export{h as default}; diff --git a/cesium/Workers/createTaskProcessorWorker.js b/cesium/Workers/createTaskProcessorWorker.js new file mode 100644 index 00000000..4e6b61e5 --- /dev/null +++ b/cesium/Workers/createTaskProcessorWorker.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a}from"./chunk-BKIYVF74.js";import"./chunk-6DLS2UKD.js";export{a as default}; diff --git a/cesium/Workers/createVectorTileClampedPolylines.js b/cesium/Workers/createVectorTileClampedPolylines.js new file mode 100644 index 00000000..2a88e2b2 --- /dev/null +++ b/cesium/Workers/createVectorTileClampedPolylines.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as J}from"./chunk-BKIYVF74.js";import{a as Y}from"./chunk-G72JFEXW.js";import{a as B}from"./chunk-4WQ4VT5S.js";import{c as X,j as W}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as k,c as _}from"./chunk-2AIOP76V.js";import{a as t}from"./chunk-IAE6APK2.js";import{a as v}from"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import"./chunk-6DLS2UKD.js";var V=32767,it=Math.cos(v.toRadians(150)),ct=new k,rt=new t;function at(e,o,c,i,s,A,h){let g=e.length,f=new Float64Array(g*3);for(let d=0;d<g;++d){let l=e[d],r=o[d],E=c[d],n=v.lerp(i.west,i.east,l/V),p=v.lerp(i.south,i.north,r/V),w=v.lerp(s,A,E/V),x=k.fromRadians(n,p,w,ct),P=h.cartographicToCartesian(x,rt);t.pack(P,f,d*3)}return f}function dt(e){let o=e.length,c=new Uint32Array(o+1),i=0;for(let s=0;s<o;++s)c[s]=i,i+=e[s];return c[o]=i,c}var lt=new k,ht=new k;function ft(e,o,c,i){let s=i.length,A=e.length,h=new Uint8Array(A),g=lt,f=ht,d=0;for(let r=0;r<s;r++){let E=i[r],n=E;for(let p=1;p<E;p++){let w=d+p,x=w-1;f.longitude=e[w],f.latitude=o[w],g.longitude=e[x],g.latitude=o[x],k.equals(f,g)&&(n--,h[x]=1)}i[r]=n,d+=E}let l=0;for(let r=0;r<A;r++)h[r]!==1&&(e[l]=e[r],o[l]=o[r],c[l]=c[r],l++)}function ot(e){let o=e*8,c=o*3,i=o*4;this.startEllipsoidNormals=new Float32Array(c),this.endEllipsoidNormals=new Float32Array(c),this.startPositionAndHeights=new Float32Array(i),this.startFaceNormalAndVertexCornerIds=new Float32Array(i),this.endPositionAndHeights=new Float32Array(i),this.endFaceNormalAndHalfWidths=new Float32Array(i),this.vertexBatchIds=new Uint16Array(o),this.indices=B.createTypedArray(o,36*e),this.vec3Offset=0,this.vec4Offset=0,this.batchIdOffset=0,this.indexOffset=0,this.volumeStartIndex=0}var Q=new t,pt=new t;function $(e,o,c,i,s){let A=t.subtract(c,o,pt),h=t.subtract(o,e,Q);return t.normalize(A,A),t.normalize(h,h),t.dot(A,h)<it&&(h=t.multiplyByScalar(h,-1,Q)),t.add(A,h,s),t.equals(s,t.ZERO)&&(s=t.subtract(e,o)),t.cross(s,i,s),t.cross(i,s,s),t.normalize(s,s),s}var st=[0,2,6,0,6,4,0,1,3,0,3,2,0,4,5,0,5,1,5,3,1,5,7,3,7,5,4,7,4,6,7,6,2,7,2,3],j=st.length,tt=new t,ut=new t,mt=new t,At=new t,Nt=new t;ot.prototype.addVolume=function(e,o,c,i,s,A,h,g,f,d){let l=t.add(o,f,tt),r=d.geodeticSurfaceNormal(l,ut);l=t.add(c,f,tt);let E=d.geodeticSurfaceNormal(l,At),n=$(e,o,c,r,mt),p=$(i,c,o,E,Nt),w=this.startEllipsoidNormals,x=this.endEllipsoidNormals,P=this.startPositionAndHeights,H=this.startFaceNormalAndVertexCornerIds,b=this.endPositionAndHeights,a=this.endFaceNormalAndHalfWidths,F=this.vertexBatchIds,m=this.batchIdOffset,I=this.vec3Offset,u=this.vec4Offset,N;for(N=0;N<8;N++)t.pack(r,w,I),t.pack(E,x,I),t.pack(o,P,u),P[u+3]=s,t.pack(c,b,u),b[u+3]=A,t.pack(n,H,u),H[u+3]=N,t.pack(p,a,u),a[u+3]=h,F[m++]=g,I+=3,u+=4;this.batchIdOffset=m,this.vec3Offset=I,this.vec4Offset=u;let C=this.indices,y=this.volumeStartIndex,z=this.indexOffset;for(N=0;N<j;N++)C[z+N]=st[N]+y;this.volumeStartIndex+=8,this.indexOffset+=j};var gt=new W,Et=new _,wt=new t,M=new t,It=new t,xt=new t,T=new t;function Pt(e,o){let c=new Uint16Array(e.positions),i=new Uint16Array(e.widths),s=new Uint32Array(e.counts),A=new Uint16Array(e.batchIds),h=gt,g=Et,f=wt,d=new Float64Array(e.packedBuffer),l=0,r=d[l++],E=d[l++];W.unpack(d,l,h),l+=W.packedLength,_.unpack(d,l,g),l+=_.packedLength,t.unpack(d,l,f);let n,p=c.length/3,w=c.subarray(0,p),x=c.subarray(p,2*p),P=c.subarray(2*p,3*p);Y.zigZagDeltaDecode(w,x,P),ft(w,x,P,s);let H=s.length,b=0;for(n=0;n<H;n++){let y=s[n];b+=y-1}let a=new ot(b),F=at(w,x,P,h,r,E,g,f);p=w.length;let m=new Float32Array(p*3);for(n=0;n<p;++n)m[n*3]=F[n*3]-f.x,m[n*3+1]=F[n*3+1]-f.y,m[n*3+2]=F[n*3+2]-f.z;let I=0,u=0;for(n=0;n<H;n++){let y=s[n]-1,z=i[n]*.5,et=A[n],q=I;for(let D=0;D<y;D++){let S=t.unpack(m,I,It),O=t.unpack(m,I+3,xt),G=P[u],Z=P[u+1];G=v.lerp(r,E,G/V),Z=v.lerp(r,E,Z/V),u++;let L=M,R=T;if(D===0){let U=q+y*3,K=t.unpack(m,U,M);if(t.equals(K,S))t.unpack(m,U-3,L);else{let nt=t.subtract(S,O,M);L=t.add(nt,S,M)}}else t.unpack(m,I-3,L);if(D===y-1){let U=t.unpack(m,q,T);if(t.equals(U,O))t.unpack(m,q+3,R);else{let K=t.subtract(O,S,T);R=t.add(K,O,T)}}else t.unpack(m,I+6,R);a.addVolume(L,S,O,R,G,Z,z,et,f,g),I+=3}I+=3,u++}let N=a.indices;o.push(a.startEllipsoidNormals.buffer),o.push(a.endEllipsoidNormals.buffer),o.push(a.startPositionAndHeights.buffer),o.push(a.startFaceNormalAndVertexCornerIds.buffer),o.push(a.endPositionAndHeights.buffer),o.push(a.endFaceNormalAndHalfWidths.buffer),o.push(a.vertexBatchIds.buffer),o.push(N.buffer);let C={indexDatatype:N.BYTES_PER_ELEMENT===2?B.UNSIGNED_SHORT:B.UNSIGNED_INT,startEllipsoidNormals:a.startEllipsoidNormals.buffer,endEllipsoidNormals:a.endEllipsoidNormals.buffer,startPositionAndHeights:a.startPositionAndHeights.buffer,startFaceNormalAndVertexCornerIds:a.startFaceNormalAndVertexCornerIds.buffer,endPositionAndHeights:a.endPositionAndHeights.buffer,endFaceNormalAndHalfWidths:a.endFaceNormalAndHalfWidths.buffer,vertexBatchIds:a.vertexBatchIds.buffer,indices:N.buffer};if(e.keepDecodedPositions){let y=dt(s);o.push(F.buffer,y.buffer),C=X(C,{decodedPositions:F.buffer,decodedPositionOffsets:y.buffer})}return C}var Vt=J(Pt);export{Vt as default}; diff --git a/cesium/Workers/createVectorTileGeometries.js b/cesium/Workers/createVectorTileGeometries.js new file mode 100644 index 00000000..467407bd --- /dev/null +++ b/cesium/Workers/createVectorTileGeometries.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as P}from"./chunk-QJTXFT4R.js";import{a as z}from"./chunk-3N6OW3OY.js";import"./chunk-PEDE2P3Q.js";import{a as H}from"./chunk-5Z36UAB7.js";import{a as Y}from"./chunk-BKIYVF74.js";import{a as j}from"./chunk-ALIHIWSS.js";import"./chunk-ML6MR2RA.js";import"./chunk-AKELQO2L.js";import{a as W}from"./chunk-4WQ4VT5S.js";import"./chunk-6EINM7EY.js";import"./chunk-A4I25VN7.js";import{c as E}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import{b as d}from"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import{a as o}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as l}from"./chunk-6DLS2UKD.js";function X(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var J=X;var S=new o,$=d.packedLength+o.packedLength,ee=d.packedLength+2,ne=d.packedLength+o.packedLength,te=o.packedLength+1,u={modelMatrix:new d,boundingVolume:new E};function oe(e,c){let n=c*$,i=o.unpack(e,n,S);n+=o.packedLength;let r=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(r,i,r);let t=u.boundingVolume;return o.clone(o.ZERO,t.center),t.radius=Math.sqrt(3),u}function ce(e,c){let n=c*ee,i=e[n++],r=e[n++],t=o.fromElements(i,i,r,S),s=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(s,t,s);let h=u.boundingVolume;return o.clone(o.ZERO,h.center),h.radius=Math.sqrt(2),u}function se(e,c){let n=c*ne,i=o.unpack(e,n,S);n+=o.packedLength;let r=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(r,i,r);let t=u.boundingVolume;return o.clone(o.ZERO,t.center),t.radius=1,u}function ie(e,c){let n=c*te,i=e[n++],r=o.unpack(e,n,S),t=d.fromTranslation(r,u.modelMatrix);d.multiplyByUniformScale(t,i,t);let s=u.boundingVolume;return o.clone(o.ZERO,s.center),s.radius=1,u}var de=new o;function R(e,c,n,i,r){if(!l(c))return;let t=n.length,s=i.attributes.position.values,h=i.indices,a=e.positions,x=e.vertexBatchIds,y=e.indices,I=e.batchIds,p=e.batchTableColors,T=e.batchedIndices,U=e.indexOffsets,v=e.indexCounts,L=e.boundingVolumes,F=e.modelMatrix,Z=e.center,V=e.positionOffset,B=e.batchIdIndex,O=e.indexOffset,D=e.batchedIndicesOffset;for(let w=0;w<t;++w){let C=r(c,w),k=C.modelMatrix;d.multiply(F,k,k);let M=n[w],A=s.length;for(let f=0;f<A;f+=3){let m=o.unpack(s,f,de);d.multiplyByPoint(k,m,m),o.subtract(m,Z,m),o.pack(m,a,V*3+f),x[B++]=M}let b=h.length;for(let f=0;f<b;++f)y[O+f]=h[f]+V;let g=w+D;T[g]=new J({offset:O,count:b,color:P.fromRgba(p[M]),batchIds:[M]}),I[g]=M,U[g]=O,v[g]=b,L[g]=E.transform(C.boundingVolume,k),V+=A/3,O+=b}e.positionOffset=V,e.batchIdIndex=B,e.indexOffset=O,e.batchedIndicesOffset+=t}var K=new o,Q=new d;function re(e){let c=new Float64Array(e),n=0;o.unpack(c,n,K),n+=o.packedLength,d.unpack(c,n,Q)}function le(e){let c=e.length,n=0;for(let i=0;i<c;++i)n+=P.packedLength+3+e[i].batchIds.length;return n}function ae(e,c,n){let i=n.length,r=2+i*E.packedLength+1+le(c),t=new Float64Array(r),s=0;t[s++]=e,t[s++]=i;for(let a=0;a<i;++a)E.pack(n[a],t,s),s+=E.packedLength;let h=c.length;t[s++]=h;for(let a=0;a<h;++a){let x=c[a];P.pack(x.color,t,s),s+=P.packedLength,t[s++]=x.offset,t[s++]=x.count;let y=x.batchIds,I=y.length;t[s++]=I;for(let p=0;p<I;++p)t[s++]=y[p]}return t}function fe(e,c){let n=l(e.boxes)?new Float32Array(e.boxes):void 0,i=l(e.boxBatchIds)?new Uint16Array(e.boxBatchIds):void 0,r=l(e.cylinders)?new Float32Array(e.cylinders):void 0,t=l(e.cylinderBatchIds)?new Uint16Array(e.cylinderBatchIds):void 0,s=l(e.ellipsoids)?new Float32Array(e.ellipsoids):void 0,h=l(e.ellipsoidBatchIds)?new Uint16Array(e.ellipsoidBatchIds):void 0,a=l(e.spheres)?new Float32Array(e.spheres):void 0,x=l(e.sphereBatchIds)?new Uint16Array(e.sphereBatchIds):void 0,y=l(n)?i.length:0,I=l(r)?t.length:0,p=l(s)?h.length:0,T=l(a)?x.length:0,U=j.getUnitBox(),v=z.getUnitCylinder(),L=H.getUnitEllipsoid(),F=U.attributes.position.values,Z=v.attributes.position.values,V=L.attributes.position.values,B=F.length*y;B+=Z.length*I,B+=V.length*(p+T);let O=U.indices,D=v.indices,w=L.indices,C=O.length*y;C+=D.length*I,C+=w.length*(p+T);let k=new Float32Array(B),M=new Uint16Array(B/3),A=W.createTypedArray(B/3,C),b=y+I+p+T,g=new Uint16Array(b),f=new Array(b),m=new Uint32Array(b),q=new Uint32Array(b),_=new Array(b);re(e.packedBuffer);let G={batchTableColors:new Uint32Array(e.batchTableColors),positions:k,vertexBatchIds:M,indices:A,batchIds:g,batchedIndices:f,indexOffsets:m,indexCounts:q,boundingVolumes:_,positionOffset:0,batchIdIndex:0,indexOffset:0,batchedIndicesOffset:0,modelMatrix:Q,center:K};R(G,n,i,U,oe),R(G,r,t,v,ce),R(G,s,h,L,se),R(G,a,x,L,ie);let N=ae(A.BYTES_PER_ELEMENT,f,_);return c.push(k.buffer,M.buffer,A.buffer),c.push(g.buffer,m.buffer,q.buffer),c.push(N.buffer),{positions:k.buffer,vertexBatchIds:M.buffer,indices:A.buffer,indexOffsets:m.buffer,indexCounts:q.buffer,batchIds:g.buffer,packedBuffer:N.buffer}}var Oe=Y(fe);export{Oe as default}; diff --git a/cesium/Workers/createVectorTilePoints.js b/cesium/Workers/createVectorTilePoints.js new file mode 100644 index 00000000..7f749076 --- /dev/null +++ b/cesium/Workers/createVectorTilePoints.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as x}from"./chunk-BKIYVF74.js";import{a as w}from"./chunk-G72JFEXW.js";import{j as c}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as l,c as p}from"./chunk-2AIOP76V.js";import{a as h}from"./chunk-IAE6APK2.js";import{a as i}from"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import"./chunk-6DLS2UKD.js";var u=32767,F=new l,L=new h,b=new c,y=new p,a={min:void 0,max:void 0};function V(t){t=new Float64Array(t);let o=0;a.min=t[o++],a.max=t[o++],c.unpack(t,o,b),o+=c.packedLength,p.unpack(t,o,y)}function z(t,o){let s=new Uint16Array(t.positions);V(t.packedBuffer);let e=b,C=y,A=a.min,P=a.max,n=s.length/3,f=s.subarray(0,n),g=s.subarray(n,2*n),d=s.subarray(2*n,3*n);w.zigZagDeltaDecode(f,g,d);let m=new Float64Array(s.length);for(let r=0;r<n;++r){let k=f[r],E=g[r],H=d[r],M=i.lerp(e.west,e.east,k/u),R=i.lerp(e.south,e.north,E/u),T=i.lerp(A,P,H/u),v=l.fromRadians(M,R,T,F),D=C.cartographicToCartesian(v,L);h.pack(D,m,r*3)}return o.push(m.buffer),{positions:m.buffer}}var G=x(z);export{G as default}; diff --git a/cesium/Workers/createVectorTilePolygons.js b/cesium/Workers/createVectorTilePolygons.js new file mode 100644 index 00000000..e91ae95c --- /dev/null +++ b/cesium/Workers/createVectorTilePolygons.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as R}from"./chunk-QJTXFT4R.js";import{a as It}from"./chunk-BKIYVF74.js";import{a as M}from"./chunk-P5EFSOUF.js";import{a as bt}from"./chunk-G72JFEXW.js";import"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as W}from"./chunk-4WQ4VT5S.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{j as z}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as nt,c as j}from"./chunk-2AIOP76V.js";import{a as o}from"./chunk-IAE6APK2.js";import{a as et}from"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as A}from"./chunk-6DLS2UKD.js";var kt=new o,Bt=new j,Nt=new z,E={min:void 0,max:void 0,indexBytesPerElement:void 0};function Pt(s){let u=new Float64Array(s),n=0;E.indexBytesPerElement=u[n++],E.min=u[n++],E.max=u[n++],o.unpack(u,n,kt),n+=o.packedLength,j.unpack(u,n,Bt),n+=j.packedLength,z.unpack(u,n,Nt)}function Tt(s){let u=s.length,n=0;for(let y=0;y<u;++y)n+=R.packedLength+3+s[y].batchIds.length;return n}function Ct(s,u,n){let y=u.length,O=2+y*M.packedLength+1+Tt(n),c=new Float64Array(O),i=0;c[i++]=s,c[i++]=y;for(let x=0;x<y;++x)M.pack(u[x],c,i),i+=M.packedLength;let V=n.length;c[i++]=V;for(let x=0;x<V;++x){let B=n[x];R.pack(B.color,c,i),i+=R.packedLength,c[i++]=B.offset,c[i++]=B.count;let P=B.batchIds,w=P.length;c[i++]=w;for(let h=0;h<w;++h)c[i++]=P[h]}return c}var yt=32767,wt=new o,Ht=new o,St=new o,Ut=new o,Ft=new o,Lt=new nt,Mt=new z;function Rt(s,u){Pt(s.packedBuffer);let n;E.indexBytesPerElement===2?n=new Uint16Array(s.indices):n=new Uint32Array(s.indices);let O=new Uint16Array(s.positions),c=new Uint32Array(s.counts),i=new Uint32Array(s.indexCounts),V=new Uint32Array(s.batchIds),x=new Uint32Array(s.batchTableColors),B=new Array(c.length),P=kt,w=Bt,h=Nt,ot=E.min,st=E.max,T=s.minimumHeights,C=s.maximumHeights;A(T)&&A(C)&&(T=new Float32Array(T),C=new Float32Array(C));let t,f,l,N=O.length/2,ct=O.subarray(0,N),it=O.subarray(N,2*N);bt.zigZagDeltaDecode(ct,it);let rt=new Float64Array(N*3);for(t=0;t<N;++t){let e=ct[t],p=it[t],L=et.lerp(h.west,h.east,e/yt),k=et.lerp(h.south,h.north,p/yt),b=nt.fromRadians(L,k,0,Lt),Y=w.cartographicToCartesian(b,wt);o.pack(Y,rt,t*3)}let H=c.length,at=new Array(H),Z=new Array(H),ft=0,lt=0;for(t=0;t<H;++t)at[t]=ft,Z[t]=lt,ft+=c[t],lt+=i[t];let S=new Float32Array(N*3*2),_=new Uint16Array(N*2),D=new Uint32Array(Z.length),G=new Uint32Array(i.length),r=[],g={};for(t=0;t<H;++t)l=x[t],A(g[l])?(g[l].positionLength+=c[t],g[l].indexLength+=i[t],g[l].batchIds.push(t)):g[l]={positionLength:c[t],indexLength:i[t],offset:0,indexOffset:0,batchIds:[t]};let a,dt=0,ht=0;for(l in g)if(g.hasOwnProperty(l)){a=g[l],a.offset=dt,a.indexOffset=ht;let e=a.positionLength*2,p=a.indexLength*2+a.positionLength*6;dt+=e,ht+=p,a.indexLength=p}let U=[];for(l in g)g.hasOwnProperty(l)&&(a=g[l],U.push({color:R.fromRgba(parseInt(l)),offset:a.indexOffset,count:a.indexLength,batchIds:a.batchIds}));for(t=0;t<H;++t){l=x[t],a=g[l];let e=a.offset,p=e*3,L=e,k=at[t],b=c[t],Y=V[t],mt=ot,gt=st;A(T)&&A(C)&&(mt=T[t],gt=C[t]);let q=Number.POSITIVE_INFINITY,J=Number.NEGATIVE_INFINITY,K=Number.POSITIVE_INFINITY,Q=Number.NEGATIVE_INFINITY;for(f=0;f<b;++f){let m=o.unpack(rt,k*3+f*3,wt);w.scaleToGeodeticSurface(m,m);let I=w.cartesianToCartographic(m,Lt),F=I.latitude,pt=I.longitude;q=Math.min(F,q),J=Math.max(F,J),K=Math.min(pt,K),Q=Math.max(pt,Q);let xt=w.geodeticSurfaceNormal(m,Ht),v=o.multiplyByScalar(xt,mt,St),$=o.add(m,v,Ut);v=o.multiplyByScalar(xt,gt,v);let tt=o.add(m,v,Ft);o.subtract(tt,P,tt),o.subtract($,P,$),o.pack(tt,S,p),o.pack($,S,p+3),_[L]=Y,_[L+1]=Y,p+=6,L+=2}h=Mt,h.west=K,h.east=Q,h.south=q,h.north=J,B[t]=M.fromRectangle(h,ot,st,w);let d=a.indexOffset,X=Z[t],Ot=i[t];for(D[t]=d,f=0;f<Ot;f+=3){let m=n[X+f]-k,I=n[X+f+1]-k,F=n[X+f+2]-k;r[d++]=m*2+e,r[d++]=I*2+e,r[d++]=F*2+e,r[d++]=F*2+1+e,r[d++]=I*2+1+e,r[d++]=m*2+1+e}for(f=0;f<b;++f){let m=f,I=(f+1)%b;r[d++]=m*2+1+e,r[d++]=I*2+e,r[d++]=m*2+e,r[d++]=m*2+1+e,r[d++]=I*2+1+e,r[d++]=I*2+e}a.offset+=b*2,a.indexOffset=d,G[t]=d-D[t]}r=W.createTypedArray(S.length/3,r);let At=U.length;for(let e=0;e<At;++e){let p=U[e].batchIds,L=0,k=p.length;for(let b=0;b<k;++b)L+=G[p[b]];U[e].count=L}let Et=r.BYTES_PER_ELEMENT===2?W.UNSIGNED_SHORT:W.UNSIGNED_INT,ut=Ct(Et,B,U);return u.push(S.buffer,r.buffer,D.buffer,G.buffer,_.buffer,ut.buffer),{positions:S.buffer,indices:r.buffer,indexOffsets:D.buffer,indexCounts:G.buffer,batchIds:_.buffer,packedBuffer:ut.buffer}}var Jt=It(Rt);export{Jt as default}; diff --git a/cesium/Workers/createVectorTilePolylines.js b/cesium/Workers/createVectorTilePolylines.js new file mode 100644 index 00000000..61b1d3f9 --- /dev/null +++ b/cesium/Workers/createVectorTilePolylines.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as K}from"./chunk-BKIYVF74.js";import{a as G}from"./chunk-G72JFEXW.js";import{a as S}from"./chunk-4WQ4VT5S.js";import{c as B,j as R}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as _,c as L}from"./chunk-2AIOP76V.js";import{a as t}from"./chunk-IAE6APK2.js";import{a as F}from"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import"./chunk-6DLS2UKD.js";var O=32767,ct=new _,rt=new t;function it(n,o,p,m,s){let d=n.length/3,U=n.subarray(0,d),v=n.subarray(d,2*d),P=n.subarray(2*d,3*d);G.zigZagDeltaDecode(U,v,P);let D=new Float64Array(n.length);for(let u=0;u<d;++u){let e=U[u],A=v[u],l=P[u],k=F.lerp(o.west,o.east,e/O),I=F.lerp(o.south,o.north,A/O),E=F.lerp(p,m,l/O),g=_.fromRadians(k,I,E,ct),C=s.cartographicToCartesian(g,rt);t.pack(C,D,u*3)}return D}var Y=it;var X=new R,$=new L,j=new t,H={min:void 0,max:void 0};function at(n){n=new Float64Array(n);let o=0;H.min=n[o++],H.max=n[o++],R.unpack(n,o,X),o+=R.packedLength,L.unpack(n,o,$),o+=L.packedLength,t.unpack(n,o,j)}function ft(n){let o=n.length,p=new Uint32Array(o+1),m=0;for(let s=0;s<o;++s)p[s]=m,m+=n[s];return p[o]=m,p}var Z=new t,q=new t,J=new t,dt=new t,Q=new t;function ut(n,o){let p=new Uint16Array(n.positions),m=new Uint16Array(n.widths),s=new Uint32Array(n.counts),d=new Uint16Array(n.batchIds);at(n.packedBuffer);let U=X,v=$,P=j,D=H.min,u=H.max,e=Y(p,U,D,u,v),A=e.length/3,l=A*4-4,k=new Float32Array(l*3),I=new Float32Array(l*3),E=new Float32Array(l*3),g=new Float32Array(l*2),C=new Uint16Array(l),N=0,z=0,tt=0,r,h=0,M=s.length;for(r=0;r<M;++r){let a=s[r],nt=m[r],ot=d[r];for(let f=0;f<a;++f){let w;if(f===0){let c=t.unpack(e,h*3,Z),T=t.unpack(e,(h+1)*3,q);w=t.subtract(c,T,J),t.add(c,w,w)}else w=t.unpack(e,(h+f-1)*3,J);let W=t.unpack(e,(h+f)*3,dt),x;if(f===a-1){let c=t.unpack(e,(h+a-1)*3,Z),T=t.unpack(e,(h+a-2)*3,q);x=t.subtract(c,T,Q),t.add(c,x,x)}else x=t.unpack(e,(h+f+1)*3,Q);t.subtract(w,P,w),t.subtract(W,P,W),t.subtract(x,P,x);let et=f===0?2:0,st=f===a-1?2:4;for(let c=et;c<st;++c){t.pack(W,k,N),t.pack(w,I,N),t.pack(x,E,N),N+=3;let T=c-2<0?-1:1;g[z++]=2*(c%2)-1,g[z++]=T*nt,C[tt++]=ot}}h+=a}let i=S.createTypedArray(l,A*6-6),b=0,y=0;for(M=A-1,r=0;r<M;++r)i[y++]=b,i[y++]=b+2,i[y++]=b+1,i[y++]=b+1,i[y++]=b+2,i[y++]=b+3,b+=4;o.push(k.buffer,I.buffer,E.buffer),o.push(g.buffer,C.buffer,i.buffer);let V={indexDatatype:i.BYTES_PER_ELEMENT===2?S.UNSIGNED_SHORT:S.UNSIGNED_INT,currentPositions:k.buffer,previousPositions:I.buffer,nextPositions:E.buffer,expandAndWidth:g.buffer,batchIds:C.buffer,indices:i.buffer};if(n.keepDecodedPositions){let a=ft(s);o.push(e.buffer,a.buffer),V=B(V,{decodedPositions:e.buffer,decodedPositionOffsets:a.buffer})}return V}var It=K(ut);export{It as default}; diff --git a/cesium/Workers/createVerticesFromCesium3DTilesTerrain.js b/cesium/Workers/createVerticesFromCesium3DTilesTerrain.js new file mode 100644 index 00000000..ed9ae3ea --- /dev/null +++ b/cesium/Workers/createVerticesFromCesium3DTilesTerrain.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as u}from"./chunk-E7EKLP3B.js";import"./chunk-W5OEMTMB.js";import"./chunk-PYMQNHFO.js";import{a as f}from"./chunk-BKIYVF74.js";import"./chunk-LN2UT4R3.js";import"./chunk-P5EFSOUF.js";import"./chunk-G72JFEXW.js";import"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import"./chunk-4WQ4VT5S.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import"./chunk-6DLS2UKD.js";function a(c,d){return u.createMesh(c).then(function(e){let t=e.vertices.buffer,r=e.indices.buffer,s=e.westIndicesSouthToNorth.buffer,o=e.southIndicesEastToWest.buffer,i=e.eastIndicesNorthToSouth.buffer,n=e.northIndicesWestToEast.buffer;return d.push(t,r,s,o,i,n),{verticesBuffer:t,indicesBuffer:r,vertexCountWithoutSkirts:e.vertexCountWithoutSkirts,indexCountWithoutSkirts:e.indexCountWithoutSkirts,encoding:e.encoding,westIndicesBuffer:s,southIndicesBuffer:o,eastIndicesBuffer:i,northIndicesBuffer:n}})}var T=f(a);export{T as default}; diff --git a/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js b/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js new file mode 100644 index 00000000..128efdd2 --- /dev/null +++ b/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Dt,c as Gt}from"./chunk-PYMQNHFO.js";import{a as Lt}from"./chunk-BKIYVF74.js";import{a as lt}from"./chunk-LN2UT4R3.js";import{a as qt}from"./chunk-P5EFSOUF.js";import"./chunk-G72JFEXW.js";import"./chunk-BDWA46XV.js";import{a as kt}from"./chunk-5VFNV3LW.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{c as zt}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{i as Ot,j as Vt}from"./chunk-LNJEJFV5.js";import{b as $}from"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import{a as Ht}from"./chunk-G3GDHHWO.js";import{a as N,b as wt,c as Ut}from"./chunk-2AIOP76V.js";import{a as P}from"./chunk-IAE6APK2.js";import{a as r}from"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as ht}from"./chunk-6DLS2UKD.js";var $t=Uint16Array.BYTES_PER_ELEMENT,mt=Int32Array.BYTES_PER_ELEMENT,Pt=Uint32Array.BYTES_PER_ELEMENT,te=Float32Array.BYTES_PER_ELEMENT,H=Float64Array.BYTES_PER_ELEMENT;function tt(n,l,e){e=e??r;let i=n.length;for(let c=0;c<i;++c)if(e.equalsEpsilon(n[c],l,r.EPSILON12))return c;return-1}function ee(n,l){n.ellipsoid=Ut.clone(n.ellipsoid),n.rectangle=Vt.clone(n.rectangle);let e=re(n.buffer,n.relativeToCenter,n.ellipsoid,n.rectangle,n.nativeRectangle,n.exaggeration,n.exaggerationRelativeHeight,n.skirtHeight,n.includeWebMercatorT,n.negativeAltitudeExponentBias,n.negativeElevationThreshold),i=e.vertices;l.push(i.buffer);let c=e.indices;return l.push(c.buffer),{vertices:i.buffer,indices:c.buffer,numberOfAttributes:e.encoding.stride,minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight,boundingSphere3D:e.boundingSphere3D,orientedBoundingBox:e.orientedBoundingBox,occludeePointInScaledSpace:e.occludeePointInScaledSpace,encoding:e.encoding,vertexCountWithoutSkirts:e.vertexCountWithoutSkirts,indexCountWithoutSkirts:e.indexCountWithoutSkirts,westIndicesSouthToNorth:e.westIndicesSouthToNorth,southIndicesEastToWest:e.southIndicesEastToWest,eastIndicesNorthToSouth:e.eastIndicesNorthToSouth,northIndicesWestToEast:e.northIndicesWestToEast}}var u=new N,G=new P,oe=new P,ne=new P,ie=new $;function re(n,l,e,i,c,et,m,ot,T,nt,it){let I,h,E,f,x,p;ht(i)?(I=i.west,h=i.south,E=i.east,f=i.north,x=i.width,p=i.height):(I=r.toRadians(c.west),h=r.toRadians(c.south),E=r.toRadians(c.east),f=r.toRadians(c.north),x=r.toRadians(i.width),p=r.toRadians(i.height));let X=[h,f],A=[I,E],O=Ot.eastNorthUpToFixedFrame(l,e),j=$.inverseTransformation(O,ie),V,Q;T&&(V=lt.geodeticLatitudeToMercatorAngle(h),Q=1/(lt.geodeticLatitudeToMercatorAngle(f)-V));let y=et!==1,a=new DataView(n),z=Number.POSITIVE_INFINITY,J=Number.NEGATIVE_INFINITY,b=oe;b.x=Number.POSITIVE_INFINITY,b.y=Number.POSITIVE_INFINITY,b.z=Number.POSITIVE_INFINITY;let M=ne;M.x=Number.NEGATIVE_INFINITY,M.y=Number.NEGATIVE_INFINITY,M.z=Number.NEGATIVE_INFINITY;let o=0,S=0,At=0,rt,L;for(L=0;L<4;++L){let t=o;rt=a.getUint32(t,!0),t+=Pt;let d=r.toRadians(a.getFloat64(t,!0)*180);t+=H,tt(A,d)===-1&&A.push(d);let Y=r.toRadians(a.getFloat64(t,!0)*180);t+=H,tt(X,Y)===-1&&X.push(Y),t+=2*H;let B=a.getInt32(t,!0);t+=mt,S+=B,B=a.getInt32(t,!0),At+=B*3,o+=rt+Pt}let yt=[],bt=[],g=new Array(S),R=new Array(S),_=new Array(S),C=T?new Array(S):[],F=y?new Array(S):[],v=new Array(At),k=[],st=[],ct=[],W=[],s=0,pt=0;for(o=0,L=0;L<4;++L){rt=a.getUint32(o,!0),o+=Pt;let t=o,d=r.toRadians(a.getFloat64(o,!0)*180);o+=H;let Y=r.toRadians(a.getFloat64(o,!0)*180);o+=H;let B=r.toRadians(a.getFloat64(o,!0)*180),Ft=B*.5;o+=H;let vt=r.toRadians(a.getFloat64(o,!0)*180),Wt=vt*.5;o+=H;let Yt=a.getInt32(o,!0);o+=mt;let Kt=a.getInt32(o,!0);o+=mt,o+=mt;let St=new Array(Yt);for(let U=0;U<Yt;++U){let Z=d+a.getUint8(o++)*B;u.longitude=Z;let D=Y+a.getUint8(o++)*vt;u.latitude=D;let w=a.getFloat32(o,!0);if(o+=te,w!==0&&w<it&&(w*=-Math.pow(2,nt)),w*=6371010,u.height=w,tt(A,Z)!==-1||tt(X,D)!==-1){let dt=tt(yt,u,N);if(dt===-1)yt.push(N.clone(u)),bt.push(s);else{St[U]=bt[dt];continue}}St[U]=s,Math.abs(Z-I)<Ft?k.push({index:s,cartographic:N.clone(u)}):Math.abs(Z-E)<Ft?ct.push({index:s,cartographic:N.clone(u)}):Math.abs(D-h)<Wt?st.push({index:s,cartographic:N.clone(u)}):Math.abs(D-f)<Wt&&W.push({index:s,cartographic:N.clone(u)}),z=Math.min(w,z),J=Math.max(w,J),_[s]=w;let Nt=e.cartographicToCartesian(u);if(g[s]=Nt,T&&(C[s]=(lt.geodeticLatitudeToMercatorAngle(D)-V)*Q),y){let dt=e.geodeticSurfaceNormal(Nt);F[s]=dt}$.multiplyByPoint(j,Nt,G),P.minimumByComponent(G,b,b),P.maximumByComponent(G,M,M);let Tt=(Z-I)/(E-I);Tt=r.clamp(Tt,0,1);let Bt=(D-h)/(f-h);Bt=r.clamp(Bt,0,1),R[s]=new wt(Tt,Bt),++s}let Zt=Kt*3;for(let U=0;U<Zt;++U,++pt)v[pt]=St[a.getUint16(o,!0)],o+=$t;if(rt!==o-t)throw new Ht("Invalid terrain tile.")}g.length=s,R.length=s,_.length=s,T&&(C.length=s),y&&(F.length=s);let Mt=s,Xt=pt,K={hMin:z,lastBorderPoint:void 0,skirtHeight:ot,toENU:j,ellipsoid:e,minimum:b,maximum:M};k.sort(function(t,d){return d.cartographic.latitude-t.cartographic.latitude}),st.sort(function(t,d){return t.cartographic.longitude-d.cartographic.longitude}),ct.sort(function(t,d){return t.cartographic.latitude-d.cartographic.latitude}),W.sort(function(t,d){return d.cartographic.longitude-t.cartographic.longitude});let q=1e-5;if(gt(g,_,R,C,F,v,K,k,-q*x,!0,-q*p),gt(g,_,R,C,F,v,K,st,-q*p,!1),gt(g,_,R,C,F,v,K,ct,q*x,!0,q*p),gt(g,_,R,C,F,v,K,W,q*p,!1),k.length>0&&W.length>0){let t=k[0].index,d=Mt,Y=W[W.length-1].index,B=g.length-1;v.push(Y,B,d,d,t,Y)}S=g.length;let jt=zt.fromPoints(g),Rt;ht(i)&&(Rt=qt.fromRectangle(i,z,J,e));let Qt=new Dt(e).computeHorizonCullingPointPossiblyUnderEllipsoid(l,g,z),Jt=new kt(b,M,l),It=new Gt(l,Jt,K.hMin,J,O,!1,T,y,et,m),_t=new Float32Array(S*It.stride),Ct=0;for(let t=0;t<S;++t)Ct=It.encode(_t,Ct,g[t],R[t],_[t],void 0,C[t],F[t]);let at=k.map(function(t){return t.index}).reverse(),Et=st.map(function(t){return t.index}).reverse(),ut=ct.map(function(t){return t.index}).reverse(),xt=W.map(function(t){return t.index}).reverse();return Et.unshift(ut[ut.length-1]),Et.push(at[0]),xt.unshift(at[at.length-1]),xt.push(ut[0]),{vertices:_t,indices:new Uint16Array(v),maximumHeight:J,minimumHeight:z,encoding:It,boundingSphere3D:jt,orientedBoundingBox:Rt,occludeePointInScaledSpace:Qt,vertexCountWithoutSkirts:Mt,indexCountWithoutSkirts:Xt,westIndicesSouthToNorth:at,southIndicesEastToWest:Et,eastIndicesNorthToSouth:ut,northIndicesWestToEast:xt}}function gt(n,l,e,i,c,et,m,ot,T,nt,it){let I=ot.length;for(let h=0;h<I;++h){let E=ot[h],f=E.cartographic,x=E.index,p=n.length,X=f.longitude,A=f.latitude;A=r.clamp(A,-r.PI_OVER_TWO,r.PI_OVER_TWO);let O=f.height-m.skirtHeight;m.hMin=Math.min(m.hMin,O),N.fromRadians(X,A,O,u),nt&&(u.longitude+=T),nt?h===I-1?u.latitude+=it:h===0&&(u.latitude-=it):u.latitude+=T;let j=m.ellipsoid.cartographicToCartesian(u);n.push(j),l.push(O),e.push(wt.clone(e[x])),i.length>0&&i.push(i[x]),c.length>0&&c.push(c[x]),$.multiplyByPoint(m.toENU,j,G);let V=m.minimum,Q=m.maximum;P.minimumByComponent(G,V,V),P.maximumByComponent(G,Q,Q);let ft=m.lastBorderPoint;if(ht(ft)){let y=ft.index;et.push(y,p-1,p,p,x,y)}m.lastBorderPoint=E}}var we=Lt(ee);export{we as default}; diff --git a/cesium/Workers/createVerticesFromHeightmap.js b/cesium/Workers/createVerticesFromHeightmap.js new file mode 100644 index 00000000..87ddfdd1 --- /dev/null +++ b/cesium/Workers/createVerticesFromHeightmap.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as ar,c as sr}from"./chunk-PYMQNHFO.js";import{a as ir}from"./chunk-BKIYVF74.js";import{a as xe}from"./chunk-LN2UT4R3.js";import{a as nr}from"./chunk-P5EFSOUF.js";import"./chunk-G72JFEXW.js";import"./chunk-BDWA46XV.js";import{a as tr}from"./chunk-5VFNV3LW.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{c as rr}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{i as er,j as ne}from"./chunk-LNJEJFV5.js";import{b as Ie}from"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import{a as Re}from"./chunk-G3GDHHWO.js";import{b as Pe,c as pe}from"./chunk-2AIOP76V.js";import{a as re}from"./chunk-IAE6APK2.js";import{a as he}from"./chunk-3E7FIXV7.js";import{a as me}from"./chunk-NZBME2JK.js";import{c as Ir,d as xr,f as W}from"./chunk-6DLS2UKD.js";var ur=Ir((Zr,Ue)=>{/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var D=(function(){var A={};A.defaultNoDataValue=-34027999387901484e22,A.decode=function(r,a){a=a||{};var t=a.encodedMaskData||a.encodedMaskData===null,i=n(r,a.inputOffset||0,t),o=a.noDataValue!==null?a.noDataValue:A.defaultNoDataValue,s=V(i,a.pixelType||Float32Array,a.encodedMaskData,o,a.returnMask),u={width:i.width,height:i.height,pixelData:s.resultPixels,minValue:s.minValue,maxValue:i.pixels.maxValue,noDataValue:o};return s.resultMask&&(u.maskData=s.resultMask),a.returnEncodedMask&&i.mask&&(u.encodedMaskData=i.mask.bitset?i.mask.bitset:null),a.returnFileInfo&&(u.fileInfo=b(i),a.computeUsedBitDepths&&(u.fileInfo.bitDepths=Y(i))),u};var V=function(r,a,t,i,o){var s=0,u=r.pixels.numBlocksX,m=r.pixels.numBlocksY,l=Math.floor(r.width/u),f=Math.floor(r.height/m),h=2*r.maxZError,c=Number.MAX_VALUE,g;t=t||(r.mask?r.mask.bitset:null);var v,U;v=new a(r.width*r.height),o&&t&&(U=new Uint8Array(r.width*r.height));for(var M=new Float32Array(l*f),S,I,k=0;k<=m;k++){var w=k!==m?f:r.height%m;if(w!==0)for(var d=0;d<=u;d++){var x=d!==u?l:r.width%u;if(x!==0){var T=k*r.width*f+d*l,y=r.width-x,p=r.pixels.blocks[s],L,B,E;p.encoding<2?(p.encoding===0?L=p.rawData:(e(p.stuffedData,p.bitsPerPixel,p.numValidPixels,p.offset,h,M,r.pixels.maxValue),L=M),B=0):p.encoding===2?E=0:E=p.offset;var O;if(t)for(I=0;I<w;I++){for(T&7&&(O=t[T>>3],O<<=T&7),S=0;S<x;S++)T&7||(O=t[T>>3]),O&128?(U&&(U[T]=1),g=p.encoding<2?L[B++]:E,c=c>g?g:c,v[T++]=g):(U&&(U[T]=0),v[T++]=i),O<<=1;T+=y}else if(p.encoding<2)for(I=0;I<w;I++){for(S=0;S<x;S++)g=L[B++],c=c>g?g:c,v[T++]=g;T+=y}else for(c=c>E?E:c,I=0;I<w;I++){for(S=0;S<x;S++)v[T++]=E;T+=y}if(p.encoding===1&&B!==p.numValidPixels)throw"Block and Mask do not match";s++}}}return{resultPixels:v,resultMask:U,minValue:c}},b=function(r){return{fileIdentifierString:r.fileIdentifierString,fileVersion:r.fileVersion,imageType:r.imageType,height:r.height,width:r.width,maxZError:r.maxZError,eofOffset:r.eofOffset,mask:r.mask?{numBlocksX:r.mask.numBlocksX,numBlocksY:r.mask.numBlocksY,numBytes:r.mask.numBytes,maxValue:r.mask.maxValue}:null,pixels:{numBlocksX:r.pixels.numBlocksX,numBlocksY:r.pixels.numBlocksY,numBytes:r.pixels.numBytes,maxValue:r.pixels.maxValue,noDataValue:r.noDataValue}}},Y=function(r){for(var a=r.pixels.numBlocksX*r.pixels.numBlocksY,t={},i=0;i<a;i++){var o=r.pixels.blocks[i];o.encoding===0?t.float32=!0:o.encoding===1?t[o.bitsPerPixel]=!0:t[0]=!0}return Object.keys(t)},n=function(r,a,t){var i={},o=new Uint8Array(r,a,10);if(i.fileIdentifierString=String.fromCharCode.apply(null,o),i.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+i.fileIdentifierString;a+=10;var s=new DataView(r,a,24);if(i.fileVersion=s.getInt32(0,!0),i.imageType=s.getInt32(4,!0),i.height=s.getUint32(8,!0),i.width=s.getUint32(12,!0),i.maxZError=s.getFloat64(16,!0),a+=24,!t)if(s=new DataView(r,a,16),i.mask={},i.mask.numBlocksY=s.getUint32(0,!0),i.mask.numBlocksX=s.getUint32(4,!0),i.mask.numBytes=s.getUint32(8,!0),i.mask.maxValue=s.getFloat32(12,!0),a+=16,i.mask.numBytes>0){var u=new Uint8Array(Math.ceil(i.width*i.height/8));s=new DataView(r,a,i.mask.numBytes);var m=s.getInt16(0,!0),l=2,f=0;do{if(m>0)for(;m--;)u[f++]=s.getUint8(l++);else{var h=s.getUint8(l++);for(m=-m;m--;)u[f++]=h}m=s.getInt16(l,!0),l+=2}while(l<i.mask.numBytes);if(m!==-32768||f<u.length)throw"Unexpected end of mask RLE encoding";i.mask.bitset=u,a+=i.mask.numBytes}else(i.mask.numBytes|i.mask.numBlocksY|i.mask.maxValue)===0&&(i.mask.bitset=new Uint8Array(Math.ceil(i.width*i.height/8)));s=new DataView(r,a,16),i.pixels={},i.pixels.numBlocksY=s.getUint32(0,!0),i.pixels.numBlocksX=s.getUint32(4,!0),i.pixels.numBytes=s.getUint32(8,!0),i.pixels.maxValue=s.getFloat32(12,!0),a+=16;var c=i.pixels.numBlocksX,g=i.pixels.numBlocksY,v=c+(i.width%c>0?1:0),U=g+(i.height%g>0?1:0);i.pixels.blocks=new Array(v*U);for(var M=0,S=0;S<U;S++)for(var I=0;I<v;I++){var k=0,w=r.byteLength-a;s=new DataView(r,a,Math.min(10,w));var d={};i.pixels.blocks[M++]=d;var x=s.getUint8(0);if(k++,d.encoding=x&63,d.encoding>3)throw"Invalid block encoding ("+d.encoding+")";if(d.encoding===2){a++;continue}if(x!==0&&x!==2){if(x>>=6,d.offsetType=x,x===2)d.offset=s.getInt8(1),k++;else if(x===1)d.offset=s.getInt16(1,!0),k+=2;else if(x===0)d.offset=s.getFloat32(1,!0),k+=4;else throw"Invalid block offset type";if(d.encoding===1)if(x=s.getUint8(k),k++,d.bitsPerPixel=x&63,x>>=6,d.numValidPixelsType=x,x===2)d.numValidPixels=s.getUint8(k),k++;else if(x===1)d.numValidPixels=s.getUint16(k,!0),k+=2;else if(x===0)d.numValidPixels=s.getUint32(k,!0),k+=4;else throw"Invalid valid pixel count type"}if(a+=k,d.encoding!==3){var T,y;if(d.encoding===0){var p=(i.pixels.numBytes-1)/4;if(p!==Math.floor(p))throw"uncompressed block has invalid length";T=new ArrayBuffer(p*4),y=new Uint8Array(T),y.set(new Uint8Array(r,a,p*4));var L=new Float32Array(T);d.rawData=L,a+=p*4}else if(d.encoding===1){var B=Math.ceil(d.numValidPixels*d.bitsPerPixel/8),E=Math.ceil(B/4);T=new ArrayBuffer(E*4),y=new Uint8Array(T),y.set(new Uint8Array(r,a,B)),d.stuffedData=new Uint32Array(T),a+=B}}}return i.eofOffset=a,i},e=function(r,a,t,i,o,s,u){var m=(1<<a)-1,l=0,f,h=0,c,g,v=Math.ceil((u-i)/o),U=r.length*4-Math.ceil(a*t/8);for(r[r.length-1]<<=8*U,f=0;f<t;f++){if(h===0&&(g=r[l++],h=32),h>=a)c=g>>>h-a&m,h-=a;else{var M=a-h;c=(g&m)<<M&m,g=r[l++],h=32-M,c+=g>>>h}s[f]=c<v?i+c*o:u}return s};return A})(),ae=(function(){"use strict";var A={unstuff:function(n,e,r,a,t,i,o,s){var u=(1<<r)-1,m=0,l,f=0,h,c,g,v,U=n.length*4-Math.ceil(r*a/8);if(n[n.length-1]<<=8*U,t)for(l=0;l<a;l++)f===0&&(c=n[m++],f=32),f>=r?(h=c>>>f-r&u,f-=r):(g=r-f,h=(c&u)<<g&u,c=n[m++],f=32-g,h+=c>>>f),e[l]=t[h];else for(v=Math.ceil((s-i)/o),l=0;l<a;l++)f===0&&(c=n[m++],f=32),f>=r?(h=c>>>f-r&u,f-=r):(g=r-f,h=(c&u)<<g&u,c=n[m++],f=32-g,h+=c>>>f),e[l]=h<v?i+h*o:s},unstuffLUT:function(n,e,r,a,t,i){var o=(1<<e)-1,s=0,u=0,m=0,l=0,f=0,h,c=[],g=n.length*4-Math.ceil(e*r/8);n[n.length-1]<<=8*g;var v=Math.ceil((i-a)/t);for(u=0;u<r;u++)l===0&&(h=n[s++],l=32),l>=e?(f=h>>>l-e&o,l-=e):(m=e-l,f=(h&o)<<m&o,h=n[s++],l=32-m,f+=h>>>l),c[u]=f<v?a+f*t:i;return c.unshift(a),c},unstuff2:function(n,e,r,a,t,i,o,s){var u=(1<<r)-1,m=0,l,f=0,h=0,c,g,v;if(t)for(l=0;l<a;l++)f===0&&(g=n[m++],f=32,h=0),f>=r?(c=g>>>h&u,f-=r,h+=r):(v=r-f,c=g>>>h&u,g=n[m++],f=32-v,c|=(g&(1<<v)-1)<<r-v,h=v),e[l]=t[c];else{var U=Math.ceil((s-i)/o);for(l=0;l<a;l++)f===0&&(g=n[m++],f=32,h=0),f>=r?(c=g>>>h&u,f-=r,h+=r):(v=r-f,c=g>>>h&u,g=n[m++],f=32-v,c|=(g&(1<<v)-1)<<r-v,h=v),e[l]=c<U?i+c*o:s}return e},unstuffLUT2:function(n,e,r,a,t,i){var o=(1<<e)-1,s=0,u=0,m=0,l=0,f=0,h=0,c,g=[],v=Math.ceil((i-a)/t);for(u=0;u<r;u++)l===0&&(c=n[s++],l=32,h=0),l>=e?(f=c>>>h&o,l-=e,h+=e):(m=e-l,f=c>>>h&o,c=n[s++],l=32-m,f|=(c&(1<<m)-1)<<e-m,h=m),g[u]=f<v?a+f*t:i;return g.unshift(a),g},originalUnstuff:function(n,e,r,a){var t=(1<<r)-1,i=0,o,s=0,u,m,l,f=n.length*4-Math.ceil(r*a/8);for(n[n.length-1]<<=8*f,o=0;o<a;o++)s===0&&(m=n[i++],s=32),s>=r?(u=m>>>s-r&t,s-=r):(l=r-s,u=(m&t)<<l&t,m=n[i++],s=32-l,u+=m>>>s),e[o]=u;return e},originalUnstuff2:function(n,e,r,a){var t=(1<<r)-1,i=0,o,s=0,u=0,m,l,f;for(o=0;o<a;o++)s===0&&(l=n[i++],s=32,u=0),s>=r?(m=l>>>u&t,s-=r,u+=r):(f=r-s,m=l>>>u&t,l=n[i++],s=32-f,m|=(l&(1<<f)-1)<<r-f,u=f),e[o]=m;return e}},V={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(n){for(var e=65535,r=65535,a=n.length,t=Math.floor(a/2),i=0;t;){var o=t>=359?359:t;t-=o;do e+=n[i++]<<8,r+=e+=n[i++];while(--o);e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16)}return a&1&&(r+=e+=n[i]<<8),e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16),(r<<16|e)>>>0},readHeaderInfo:function(n,e){var r=e.ptr,a=new Uint8Array(n,r,6),t={};if(t.fileIdentifierString=String.fromCharCode.apply(null,a),t.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+t.fileIdentifierString;r+=6;var i=new DataView(n,r,8),o=i.getInt32(0,!0);t.fileVersion=o,r+=4,o>=3&&(t.checksum=i.getUint32(4,!0),r+=4),i=new DataView(n,r,12),t.height=i.getUint32(0,!0),t.width=i.getUint32(4,!0),r+=8,o>=4?(t.numDims=i.getUint32(8,!0),r+=4):t.numDims=1,i=new DataView(n,r,40),t.numValidPixel=i.getUint32(0,!0),t.microBlockSize=i.getInt32(4,!0),t.blobSize=i.getInt32(8,!0),t.imageType=i.getInt32(12,!0),t.maxZError=i.getFloat64(16,!0),t.zMin=i.getFloat64(24,!0),t.zMax=i.getFloat64(32,!0),r+=40,e.headerInfo=t,e.ptr=r;var s,u;if(o>=3&&(u=o>=4?52:48,s=this.computeChecksumFletcher32(new Uint8Array(n,r-u,t.blobSize-14)),s!==t.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(n,e){var r=e.headerInfo,a=this.getDataTypeArray(r.imageType),t=r.numDims*this.getDataTypeSize(r.imageType),i=this.readSubArray(n,e.ptr,a,t),o=this.readSubArray(n,e.ptr+t,a,t);e.ptr+=2*t;var s,u=!0;for(s=0;s<r.numDims;s++)if(i[s]!==o[s]){u=!1;break}return r.minValues=i,r.maxValues=o,u},readSubArray:function(n,e,r,a){var t;if(r===Uint8Array)t=new Uint8Array(n,e,a);else{var i=new ArrayBuffer(a),o=new Uint8Array(i);o.set(new Uint8Array(n,e,a)),t=new r(i)}return t},readMask:function(n,e){var r=e.ptr,a=e.headerInfo,t=a.width*a.height,i=a.numValidPixel,o=new DataView(n,r,4),s={};if(s.numBytes=o.getUint32(0,!0),r+=4,(i===0||t===i)&&s.numBytes!==0)throw"invalid mask";var u,m;if(i===0)u=new Uint8Array(Math.ceil(t/8)),s.bitset=u,m=new Uint8Array(t),e.pixels.resultMask=m,r+=s.numBytes;else if(s.numBytes>0){u=new Uint8Array(Math.ceil(t/8)),o=new DataView(n,r,s.numBytes);var l=o.getInt16(0,!0),f=2,h=0,c=0;do{if(l>0)for(;l--;)u[h++]=o.getUint8(f++);else for(c=o.getUint8(f++),l=-l;l--;)u[h++]=c;l=o.getInt16(f,!0),f+=2}while(f<s.numBytes);if(l!==-32768||h<u.length)throw"Unexpected end of mask RLE encoding";m=new Uint8Array(t);var g=0,v=0;for(v=0;v<t;v++)v&7?(g=u[v>>3],g<<=v&7):g=u[v>>3],g&128&&(m[v]=1);e.pixels.resultMask=m,s.bitset=u,r+=s.numBytes}return e.ptr=r,e.mask=s,!0},readDataOneSweep:function(n,e,r){var a=e.ptr,t=e.headerInfo,i=t.numDims,o=t.width*t.height,s=t.imageType,u=t.numValidPixel*V.getDataTypeSize(s)*i,m,l=e.pixels.resultMask;if(r===Uint8Array)m=new Uint8Array(n,a,u);else{var f=new ArrayBuffer(u),h=new Uint8Array(f);h.set(new Uint8Array(n,a,u)),m=new r(f)}if(m.length===o*i)e.pixels.resultPixels=m;else{e.pixels.resultPixels=new r(o*i);var c=0,g=0,v=0,U=0;if(i>1)for(v=0;v<i;v++)for(U=v*o,g=0;g<o;g++)l[g]&&(e.pixels.resultPixels[U+g]=m[c++]);else for(g=0;g<o;g++)l[g]&&(e.pixels.resultPixels[g]=m[c++])}return a+=u,e.ptr=a,!0},readHuffmanTree:function(n,e){var r=this.HUFFMAN_LUT_BITS_MAX,a=new DataView(n,e.ptr,16);e.ptr+=16;var t=a.getInt32(0,!0);if(t<2)throw"unsupported Huffman version";var i=a.getInt32(4,!0),o=a.getInt32(8,!0),s=a.getInt32(12,!0);if(o>=s)return!1;var u=new Uint32Array(s-o);V.decodeBits(n,e,u);var m=[],l,f,h,c;for(l=o;l<s;l++)f=l-(l<i?0:i),m[f]={first:u[l-o],second:null};var g=n.byteLength-e.ptr,v=Math.ceil(g/4),U=new ArrayBuffer(v*4),M=new Uint8Array(U);M.set(new Uint8Array(n,e.ptr,g));var S=new Uint32Array(U),I=0,k,w=0;for(k=S[0],l=o;l<s;l++)f=l-(l<i?0:i),c=m[f].first,c>0&&(m[f].second=k<<I>>>32-c,32-I>=c?(I+=c,I===32&&(I=0,w++,k=S[w])):(I+=c-32,w++,k=S[w],m[f].second|=k>>>32-I));var d=0,x=0,T=new b;for(l=0;l<m.length;l++)m[l]!==void 0&&(d=Math.max(d,m[l].first));d>=r?x=r:x=d,d>=30&&console.log("WARning, large NUM LUT BITS IS "+d);var y=[],p,L,B,E,O,F;for(l=o;l<s;l++)if(f=l-(l<i?0:i),c=m[f].first,c>0)if(p=[c,f],c<=x)for(L=m[f].second<<x-c,B=1<<x-c,h=0;h<B;h++)y[L|h]=p;else for(L=m[f].second,F=T,E=c-1;E>=0;E--)O=L>>>E&1,O?(F.right||(F.right=new b),F=F.right):(F.left||(F.left=new b),F=F.left),E===0&&!F.val&&(F.val=p[1]);return{decodeLut:y,numBitsLUTQick:x,numBitsLUT:d,tree:T,stuffedData:S,srcPtr:w,bitPos:I}},readHuffman:function(n,e,r){var a=e.headerInfo,t=a.numDims,i=e.headerInfo.height,o=e.headerInfo.width,s=o*i,u=this.readHuffmanTree(n,e),m=u.decodeLut,l=u.tree,f=u.stuffedData,h=u.srcPtr,c=u.bitPos,g=u.numBitsLUTQick,v=u.numBitsLUT,U=e.headerInfo.imageType===0?128:0,M,S,I,k=e.pixels.resultMask,w,d,x,T,y,p,L,B=0;c>0&&(h++,c=0);var E=f[h],O=e.encodeMode===1,F=new r(s*t),N=F,_;for(_=0;_<a.numDims;_++){if(t>1&&(N=new r(F.buffer,s*_,s),B=0),e.headerInfo.numValidPixel===o*i)for(p=0,T=0;T<i;T++)for(y=0;y<o;y++,p++){if(S=0,w=E<<c>>>32-g,d=w,32-c<g&&(w|=f[h+1]>>>64-c-g,d=w),m[d])S=m[d][1],c+=m[d][0];else for(w=E<<c>>>32-v,d=w,32-c<v&&(w|=f[h+1]>>>64-c-v,d=w),M=l,L=0;L<v;L++)if(x=w>>>v-L-1&1,M=x?M.right:M.left,!(M.left||M.right)){S=M.val,c=c+L+1;break}c>=32&&(c-=32,h++,E=f[h]),I=S-U,O?(y>0?I+=B:T>0?I+=N[p-o]:I+=B,I&=255,N[p]=I,B=I):N[p]=I}else for(p=0,T=0;T<i;T++)for(y=0;y<o;y++,p++)if(k[p]){if(S=0,w=E<<c>>>32-g,d=w,32-c<g&&(w|=f[h+1]>>>64-c-g,d=w),m[d])S=m[d][1],c+=m[d][0];else for(w=E<<c>>>32-v,d=w,32-c<v&&(w|=f[h+1]>>>64-c-v,d=w),M=l,L=0;L<v;L++)if(x=w>>>v-L-1&1,M=x?M.right:M.left,!(M.left||M.right)){S=M.val,c=c+L+1;break}c>=32&&(c-=32,h++,E=f[h]),I=S-U,O?(y>0&&k[p-1]?I+=B:T>0&&k[p-o]?I+=N[p-o]:I+=B,I&=255,N[p]=I,B=I):N[p]=I}e.ptr=e.ptr+(h+1)*4+(c>0?4:0)}e.pixels.resultPixels=F},decodeBits:function(n,e,r,a,t){{var i=e.headerInfo,o=i.fileVersion,s=0,u=new DataView(n,e.ptr,5),m=u.getUint8(0);s++;var l=m>>6,f=l===0?4:3-l,h=(m&32)>0,c=m&31,g=0;if(f===1)g=u.getUint8(s),s++;else if(f===2)g=u.getUint16(s,!0),s+=2;else if(f===4)g=u.getUint32(s,!0),s+=4;else throw"Invalid valid pixel count type";var v=2*i.maxZError,U,M,S,I,k,w,d,x,T,y,p=i.numDims>1?i.maxValues[t]:i.zMax;if(h){for(e.counter.lut++,x=u.getUint8(s),T=c,s++,I=Math.ceil((x-1)*c/8),k=Math.ceil(I/4),M=new ArrayBuffer(k*4),S=new Uint8Array(M),e.ptr+=s,S.set(new Uint8Array(n,e.ptr,I)),d=new Uint32Array(M),e.ptr+=I,y=0;x-1>>>y;)y++;I=Math.ceil(g*y/8),k=Math.ceil(I/4),M=new ArrayBuffer(k*4),S=new Uint8Array(M),S.set(new Uint8Array(n,e.ptr,I)),U=new Uint32Array(M),e.ptr+=I,o>=3?w=A.unstuffLUT2(d,c,x-1,a,v,p):w=A.unstuffLUT(d,c,x-1,a,v,p),o>=3?A.unstuff2(U,r,y,g,w):A.unstuff(U,r,y,g,w)}else e.counter.bitstuffer++,y=c,e.ptr+=s,y>0&&(I=Math.ceil(g*y/8),k=Math.ceil(I/4),M=new ArrayBuffer(k*4),S=new Uint8Array(M),S.set(new Uint8Array(n,e.ptr,I)),U=new Uint32Array(M),e.ptr+=I,o>=3?a==null?A.originalUnstuff2(U,r,y,g):A.unstuff2(U,r,y,g,!1,a,v,p):a==null?A.originalUnstuff(U,r,y,g):A.unstuff(U,r,y,g,!1,a,v,p))}},readTiles:function(n,e,r){var a=e.headerInfo,t=a.width,i=a.height,o=a.microBlockSize,s=a.imageType,u=V.getDataTypeSize(s),m=Math.ceil(t/o),l=Math.ceil(i/o);e.pixels.numBlocksY=l,e.pixels.numBlocksX=m,e.pixels.ptr=0;var f=0,h=0,c=0,g=0,v=0,U=0,M=0,S=0,I=0,k=0,w=0,d=0,x=0,T=0,y=0,p=0,L,B,E,O,F,N,_=new r(o*o),Te=i%o||o,ke=t%o||o,Q,z,le=a.numDims,ie,Z=e.pixels.resultMask,j=e.pixels.resultPixels;for(c=0;c<l;c++)for(v=c!==l-1?o:Te,g=0;g<m;g++)for(U=g!==m-1?o:ke,w=c*t*o+g*o,d=t-U,ie=0;ie<le;ie++){if(le>1&&(j=new r(e.pixels.resultPixels.buffer,t*i*ie*u,t*i)),M=n.byteLength-e.ptr,L=new DataView(n,e.ptr,Math.min(10,M)),B={},p=0,S=L.getUint8(0),p++,I=S>>6&255,k=S>>2&15,k!==(g*o>>3&15))throw"integrity issue";if(N=S&3,N>3)throw e.ptr+=p,"Invalid block encoding ("+N+")";if(N===2){e.counter.constant++,e.ptr+=p;continue}else if(N===0){if(e.counter.uncompressed++,e.ptr+=p,x=v*U*u,T=n.byteLength-e.ptr,x=x<T?x:T,E=new ArrayBuffer(x%u===0?x:x+u-x%u),O=new Uint8Array(E),O.set(new Uint8Array(n,e.ptr,x)),F=new r(E),y=0,Z)for(f=0;f<v;f++){for(h=0;h<U;h++)Z[w]&&(j[w]=F[y++]),w++;w+=d}else for(f=0;f<v;f++){for(h=0;h<U;h++)j[w++]=F[y++];w+=d}e.ptr+=y*u}else if(Q=V.getDataTypeUsed(s,I),z=V.getOnePixel(B,p,Q,L),p+=V.getDataTypeSize(Q),N===3)if(e.ptr+=p,e.counter.constantoffset++,Z)for(f=0;f<v;f++){for(h=0;h<U;h++)Z[w]&&(j[w]=z),w++;w+=d}else for(f=0;f<v;f++){for(h=0;h<U;h++)j[w++]=z;w+=d}else if(e.ptr+=p,V.decodeBits(n,e,_,z,ie),p=0,Z)for(f=0;f<v;f++){for(h=0;h<U;h++)Z[w]&&(j[w]=_[p++]),w++;w+=d}else for(f=0;f<v;f++){for(h=0;h<U;h++)j[w++]=_[p++];w+=d}}},formatFileInfo:function(n){return{fileIdentifierString:n.headerInfo.fileIdentifierString,fileVersion:n.headerInfo.fileVersion,imageType:n.headerInfo.imageType,height:n.headerInfo.height,width:n.headerInfo.width,numValidPixel:n.headerInfo.numValidPixel,microBlockSize:n.headerInfo.microBlockSize,blobSize:n.headerInfo.blobSize,maxZError:n.headerInfo.maxZError,pixelType:V.getPixelType(n.headerInfo.imageType),eofOffset:n.eofOffset,mask:n.mask?{numBytes:n.mask.numBytes}:null,pixels:{numBlocksX:n.pixels.numBlocksX,numBlocksY:n.pixels.numBlocksY,maxValue:n.headerInfo.zMax,minValue:n.headerInfo.zMin,noDataValue:n.noDataValue}}},constructConstantSurface:function(n){var e=n.headerInfo.zMax,r=n.headerInfo.numDims,a=n.headerInfo.height*n.headerInfo.width,t=a*r,i=0,o=0,s=0,u=n.pixels.resultMask;if(u)if(r>1)for(i=0;i<r;i++)for(s=i*a,o=0;o<a;o++)u[o]&&(n.pixels.resultPixels[s+o]=e);else for(o=0;o<a;o++)u[o]&&(n.pixels.resultPixels[o]=e);else if(n.pixels.resultPixels.fill)n.pixels.resultPixels.fill(e);else for(o=0;o<t;o++)n.pixels.resultPixels[o]=e},getDataTypeArray:function(n){var e;switch(n){case 0:e=Int8Array;break;case 1:e=Uint8Array;break;case 2:e=Int16Array;break;case 3:e=Uint16Array;break;case 4:e=Int32Array;break;case 5:e=Uint32Array;break;case 6:e=Float32Array;break;case 7:e=Float64Array;break;default:e=Float32Array}return e},getPixelType:function(n){var e;switch(n){case 0:e="S8";break;case 1:e="U8";break;case 2:e="S16";break;case 3:e="U16";break;case 4:e="S32";break;case 5:e="U32";break;case 6:e="F32";break;case 7:e="F64";break;default:e="F32"}return e},isValidPixelValue:function(n,e){if(e==null)return!1;var r;switch(n){case 0:r=e>=-128&&e<=127;break;case 1:r=e>=0&&e<=255;break;case 2:r=e>=-32768&&e<=32767;break;case 3:r=e>=0&&e<=65536;break;case 4:r=e>=-2147483648&&e<=2147483647;break;case 5:r=e>=0&&e<=4294967296;break;case 6:r=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:r=e>=5e-324&&e<=17976931348623157e292;break;default:r=!1}return r},getDataTypeSize:function(n){var e=0;switch(n){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=n}return e},getDataTypeUsed:function(n,e){var r=n;switch(n){case 2:case 4:r=n-e;break;case 3:case 5:r=n-2*e;break;case 6:e===0?r=n:e===1?r=2:r=1;break;case 7:e===0?r=n:r=n-2*e+1;break;default:r=n;break}return r},getOnePixel:function(n,e,r,a){var t=0;switch(r){case 0:t=a.getInt8(e);break;case 1:t=a.getUint8(e);break;case 2:t=a.getInt16(e,!0);break;case 3:t=a.getUint16(e,!0);break;case 4:t=a.getInt32(e,!0);break;case 5:t=a.getUInt32(e,!0);break;case 6:t=a.getFloat32(e,!0);break;case 7:t=a.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return t}},b=function(n,e,r){this.val=n,this.left=e,this.right=r},Y={decode:function(n,e){e=e||{};var r=e.noDataValue,a=0,t={};if(t.ptr=e.inputOffset||0,t.pixels={},!!V.readHeaderInfo(n,t)){var i=t.headerInfo,o=i.fileVersion,s=V.getDataTypeArray(i.imageType);V.readMask(n,t),i.numValidPixel!==i.width*i.height&&!t.pixels.resultMask&&(t.pixels.resultMask=e.maskData);var u=i.width*i.height;if(t.pixels.resultPixels=new s(u*i.numDims),t.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},i.numValidPixel!==0)if(i.zMax===i.zMin)V.constructConstantSurface(t);else if(o>=4&&V.checkMinMaxRanges(n,t))V.constructConstantSurface(t);else{var m=new DataView(n,t.ptr,2),l=m.getUint8(0);if(t.ptr++,l)V.readDataOneSweep(n,t,s);else if(o>1&&i.imageType<=1&&Math.abs(i.maxZError-.5)<1e-5){var f=m.getUint8(1);if(t.ptr++,t.encodeMode=f,f>2||o<4&&f>1)throw"Invalid Huffman flag "+f;f?V.readHuffman(n,t,s):V.readTiles(n,t,s)}else V.readTiles(n,t,s)}t.eofOffset=t.ptr;var h;e.inputOffset?(h=t.headerInfo.blobSize+e.inputOffset-t.ptr,Math.abs(h)>=1&&(t.eofOffset=e.inputOffset+t.headerInfo.blobSize)):(h=t.headerInfo.blobSize-t.ptr,Math.abs(h)>=1&&(t.eofOffset=t.headerInfo.blobSize));var c={width:i.width,height:i.height,pixelData:t.pixels.resultPixels,minValue:i.zMin,maxValue:i.zMax,validPixelCount:i.numValidPixel,dimCount:i.numDims,dimStats:{minValues:i.minValues,maxValues:i.maxValues},maskData:t.pixels.resultMask};if(t.pixels.resultMask&&V.isValidPixelValue(i.imageType,r)){var g=t.pixels.resultMask;for(a=0;a<u;a++)g[a]||(c.pixelData[a]=r);c.noDataValue=r}return t.noDataValue=r,e.returnFileInfo&&(c.fileInfo=V.formatFileInfo(t)),c}},getBandCount:function(n){var e=0,r=0,a={};for(a.ptr=0,a.pixels={};r<n.byteLength-58;)V.readHeaderInfo(n,a),r+=a.headerInfo.blobSize,e++,a.ptr=r;return e}};return Y})(),C=(function(){var A=new ArrayBuffer(4),V=new Uint8Array(A),b=new Uint32Array(A);return b[0]=1,V[0]===1})(),ee={decode:function(A,V){if(!C)throw"Big endian system is not supported.";V=V||{};var b=V.inputOffset||0,Y=new Uint8Array(A,b,10),n=String.fromCharCode.apply(null,Y),e,r;if(n.trim()==="CntZImage")e=D,r=1;else if(n.substring(0,5)==="Lerc2")e=ae,r=2;else throw"Unexpected file identifier string: "+n;for(var a=0,t=A.byteLength-10,i,o=[],s,u,m={width:0,height:0,pixels:[],pixelType:V.pixelType,mask:null,statistics:[]};b<t;){var l=e.decode(A,{inputOffset:b,encodedMaskData:i,maskData:u,returnMask:a===0,returnEncodedMask:a===0,returnFileInfo:!0,pixelType:V.pixelType||null,noDataValue:V.noDataValue||null});b=l.fileInfo.eofOffset,a===0&&(i=l.encodedMaskData,u=l.maskData,m.width=l.width,m.height=l.height,m.dimCount=l.dimCount||1,m.pixelType=l.pixelType||l.fileInfo.pixelType,m.mask=l.maskData),r>1&&l.fileInfo.mask&&l.fileInfo.mask.numBytes>0&&o.push(l.maskData),a++,m.pixels.push(l.pixelData),m.statistics.push({minValue:l.minValue,maxValue:l.maxValue,noDataValue:l.noDataValue,dimStats:l.dimStats})}var f,h,c;if(r>1&&o.length>1){for(c=m.width*m.height,m.bandMasks=o,u=new Uint8Array(c),u.set(o[0]),f=1;f<o.length;f++)for(s=o[f],h=0;h<c;h++)u[h]=u[h]&s[h];m.maskData=u}return m}};typeof define=="function"&&define.amd?define([],function(){return ee}):typeof Ue<"u"&&Ue.exports?Ue.exports=ee:this.Lerc=ee})()});var fr={NONE:0,LERC:1};Object.freeze(fr);var or=fr;var G={};G.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var He=new re,Ur=new Ie,Tr=new re,kr=new re;G.computeVertices=function(D){if(!W(D)||!W(D.heightmap))throw new me("options.heightmap is required.");if(!W(D.width)||!W(D.height))throw new me("options.width and options.height are required.");if(!W(D.nativeRectangle))throw new me("options.nativeRectangle is required.");if(!W(D.skirtHeight))throw new me("options.skirtHeight is required.");let ae=Math.cos,C=Math.sin,ee=Math.sqrt,A=Math.atan,V=Math.exp,b=he.PI_OVER_TWO,Y=he.toRadians,n=D.heightmap,e=D.width,r=D.height,a=D.skirtHeight,t=a>0,i=D.isGeographic??!0,o=D.ellipsoid??pe.default,s=1/o.maximumRadius,u=ne.clone(D.nativeRectangle),m=ne.clone(D.rectangle),l,f,h,c;W(m)?(l=m.west,f=m.south,h=m.east,c=m.north):i?(l=Y(u.west),f=Y(u.south),h=Y(u.east),c=Y(u.north)):(l=u.west*s,f=b-2*A(V(-u.south*s)),h=u.east*s,c=b-2*A(V(-u.north*s)));let g=D.relativeToCenter,v=W(g);g=v?g:re.ZERO;let U=D.includeWebMercatorT??!1,M=D.exaggeration??1,S=D.exaggerationRelativeHeight??0,k=M!==1,w=D.structure??G.DEFAULT_STRUCTURE,d=w.heightScale??G.DEFAULT_STRUCTURE.heightScale,x=w.heightOffset??G.DEFAULT_STRUCTURE.heightOffset,T=w.elementsPerHeight??G.DEFAULT_STRUCTURE.elementsPerHeight,y=w.stride??G.DEFAULT_STRUCTURE.stride,p=w.elementMultiplier??G.DEFAULT_STRUCTURE.elementMultiplier,L=w.isBigEndian??G.DEFAULT_STRUCTURE.isBigEndian,B=ne.computeWidth(u),E=ne.computeHeight(u),O=B/(e-1),F=E/(r-1);i||(B*=s,E*=s);let N=o.radiiSquared,_=N.x,Te=N.y,ke=N.z,Q=65536,z=-65536,le=er.eastNorthUpToFixedFrame(g,o),ie=Ie.inverseTransformation(le,Ur),Z,j;U&&(Z=xe.geodeticLatitudeToMercatorAngle(f),j=1/(xe.geodeticLatitudeToMercatorAngle(c)-Z));let se=Tr;se.x=Number.POSITIVE_INFINITY,se.y=Number.POSITIVE_INFINITY,se.z=Number.POSITIVE_INFINITY;let fe=kr;fe.x=Number.NEGATIVE_INFINITY,fe.y=Number.NEGATIVE_INFINITY,fe.z=Number.NEGATIVE_INFINITY;let ye=Number.POSITIVE_INFINITY,ue=e*r,mr=a>0?e*2+r*2:0,te=ue+mr,ge=new Array(te),Ye=new Array(te),Xe=new Array(te),_e=U?new Array(te):[],ze=k?new Array(te):[],Me=0,Se=r,Ve=0,De=e;t&&(--Me,++Se,--Ve,++De);let ve=1e-5;for(let H=Me;H<Se;++H){let J=H;J<0&&(J=0),J>=r&&(J=r-1);let q=u.north-F*J;i?q=Y(q):q=b-2*A(V(-q*s));let Ee=(q-f)/(c-f);Ee=he.clamp(Ee,0,1);let de=H===Me,we=H===Se-1;a>0&&(de?q+=ve*E:we&&(q-=ve*E));let Ge=ae(q),Le=C(q),Qe=ke*Le,Je;U&&(Je=(xe.geodeticLatitudeToMercatorAngle(q)-Z)*j);for(let ce=Ve;ce<De;++ce){let K=ce;K<0&&(K=0),K>=e&&(K=e-1);let Be=J*(e*y)+K*y,R;if(T===1)R=n[Be];else{R=0;let X;if(L)for(X=0;X<T;++X)R=R*p+n[Be+X];else for(X=T-1;X>=0;--X)R=R*p+n[Be+X]}R=R*d+x,z=Math.max(z,R),Q=Math.min(Q,R);let $=u.west+O*K;i?$=Y($):$=$*s;let Fe=($-l)/(h-l);Fe=he.clamp(Fe,0,1);let P=J*e+K;if(a>0){let X=ce===Ve,Oe=ce===De-1,pr=de||we||X||Oe;if((de||we)&&(X||Oe))continue;pr&&(R-=a,X?(P=ue+(r-J-1),$-=ve*B):we?P=ue+r+(e-K-1):Oe?(P=ue+r+e+J,$+=ve*B):de&&(P=ue+r+e+r+K))}let be=Ge*ae($),Ne=Ge*C($),Ke=_*be,$e=Te*Ne,Ce=1/ee(Ke*be+$e*Ne+Qe*Le),vr=Ke*Ce,dr=$e*Ce,wr=Qe*Ce,oe=new re;oe.x=vr+be*R,oe.y=dr+Ne*R,oe.z=wr+Le*R,Ie.multiplyByPoint(ie,oe,He),re.minimumByComponent(He,se,se),re.maximumByComponent(He,fe,fe),ye=Math.min(ye,R),ge[P]=oe,Xe[P]=new Pe(Fe,Ee),Ye[P]=R,U&&(_e[P]=Je),k&&(ze[P]=o.geodeticSurfaceNormal(oe))}}let hr=rr.fromPoints(ge),Ze;W(m)&&(Ze=nr.fromRectangle(m,Q,z,o));let je;v&&(je=new ar(o).computeHorizonCullingPointPossiblyUnderEllipsoid(g,ge,Q));let gr=new tr(se,fe,g),Ae=new sr(g,gr,ye,z,le,!1,U,k,M,S),qe=new Float32Array(te*Ae.stride),We=0;for(let H=0;H<te;++H)We=Ae.encode(qe,We,ge[H],Xe[H],Ye[H],void 0,_e[H],ze[H]);return{vertices:qe,maximumHeight:z,minimumHeight:Q,encoding:Ae,boundingSphere3D:hr,orientedBoundingBox:Ze,occludeePointInScaledSpace:je}};var lr=G;var cr=xr(ur(),1);function yr(D,ae){if(D.encoding===or.LERC){let A;try{A=cr.default.decode(D.heightmap)}catch(b){throw new Re(b)}if(A.statistics[0].minValue===Number.MAX_VALUE)throw new Re("Invalid tile data");D.heightmap=A.pixels[0],D.width=A.width,D.height=A.height}D.ellipsoid=pe.clone(D.ellipsoid),D.rectangle=ne.clone(D.rectangle);let C=lr.computeVertices(D),ee=C.vertices;return ae.push(ee.buffer),{vertices:ee.buffer,numberOfAttributes:C.encoding.stride,minimumHeight:C.minimumHeight,maximumHeight:C.maximumHeight,gridWidth:D.width,gridHeight:D.height,boundingSphere3D:C.boundingSphere3D,orientedBoundingBox:C.orientedBoundingBox,occludeePointInScaledSpace:C.occludeePointInScaledSpace,encoding:C.encoding,westIndicesSouthToNorth:C.westIndicesSouthToNorth,southIndicesEastToWest:C.southIndicesEastToWest,eastIndicesNorthToSouth:C.eastIndicesNorthToSouth,northIndicesWestToEast:C.northIndicesWestToEast}}var Kr=ir(yr);export{Kr as default}; diff --git a/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js b/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js new file mode 100644 index 00000000..ab32a1d7 --- /dev/null +++ b/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as At}from"./chunk-W5OEMTMB.js";import{a as Ot,c as pt}from"./chunk-PYMQNHFO.js";import{a as Et}from"./chunk-BKIYVF74.js";import{a as z}from"./chunk-LN2UT4R3.js";import"./chunk-G72JFEXW.js";import{a as bt}from"./chunk-5VFNV3LW.js";import{a as Mt}from"./chunk-4WQ4VT5S.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{i as wt,j as yt}from"./chunk-LNJEJFV5.js";import{b as Y}from"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as xt,b as rt,c as St}from"./chunk-2AIOP76V.js";import{a as O}from"./chunk-IAE6APK2.js";import{a as T}from"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{f as D}from"./chunk-6DLS2UKD.js";var ut=32767,G=new O,Gt=new O,Ut=new O,n=new xt,F=new rt;function qt(t,M){let c=t.quantizedVertices,o=c.length/3,u=t.octEncodedNormals,p=t.westIndices.length+t.eastIndices.length+t.southIndices.length+t.northIndices.length,l=t.includeWebMercatorT,E=t.exaggeration,N=t.exaggerationRelativeHeight,A=E!==1,r=yt.clone(t.rectangle),H=r.west,P=r.south,_=r.east,b=r.north,s=St.clone(t.ellipsoid),a=t.minimumHeight,x=t.maximumHeight,h=t.relativeToCenter,B=wt.eastNorthUpToFixedFrame(h,s),S=Y.inverseTransformation(B,new Y),w,f;l&&(w=z.geodeticLatitudeToMercatorAngle(P),f=1/(z.geodeticLatitudeToMercatorAngle(b)-w));let U=c.subarray(0,o),q=c.subarray(o,2*o),R=c.subarray(o*2,3*o),W=D(u),i=new Array(o),g=new Array(o),X=new Array(o),ht=l?new Array(o):[],dt=A?new Array(o):[],I=Gt;I.x=Number.POSITIVE_INFINITY,I.y=Number.POSITIVE_INFINITY,I.z=Number.POSITIVE_INFINITY;let m=Ut;m.x=Number.NEGATIVE_INFINITY,m.y=Number.NEGATIVE_INFINITY,m.z=Number.NEGATIVE_INFINITY;let Z=Number.POSITIVE_INFINITY,$=Number.NEGATIVE_INFINITY,tt=Number.POSITIVE_INFINITY,et=Number.NEGATIVE_INFINITY;for(let e=0;e<o;++e){let d=U[e],zt=q[e],mt=d/ut,Tt=zt/ut,Nt=T.lerp(a,x,R[e]/ut);n.longitude=T.lerp(H,_,mt),n.latitude=T.lerp(P,b,Tt),n.height=Nt,Z=Math.min(n.longitude,Z),$=Math.max(n.longitude,$),tt=Math.min(n.latitude,tt),et=Math.max(n.latitude,et);let st=s.cartographicToCartesian(n);i[e]=new rt(mt,Tt),g[e]=Nt,X[e]=st,l&&(ht[e]=(z.geodeticLatitudeToMercatorAngle(n.latitude)-w)*f),A&&(dt[e]=s.geodeticSurfaceNormal(st)),Y.multiplyByPoint(S,st,G),O.minimumByComponent(G,I,I),O.maximumByComponent(G,m,m)}let ot=K(t.westIndices,function(e,d){return i[e].y-i[d].y}),nt=K(t.eastIndices,function(e,d){return i[d].y-i[e].y}),it=K(t.southIndices,function(e,d){return i[d].x-i[e].x}),ct=K(t.northIndices,function(e,d){return i[e].x-i[d].x}),at;a<0&&(at=new Ot(s).computeHorizonCullingPointPossiblyUnderEllipsoid(h,X,a));let y=a;y=Math.min(y,Q(t.westIndices,t.westSkirtHeight,g,i,r,s,S,I,m)),y=Math.min(y,Q(t.southIndices,t.southSkirtHeight,g,i,r,s,S,I,m)),y=Math.min(y,Q(t.eastIndices,t.eastSkirtHeight,g,i,r,s,S,I,m)),y=Math.min(y,Q(t.northIndices,t.northSkirtHeight,g,i,r,s,S,I,m));let Ht=new bt(I,m,h),V=new pt(h,Ht,y,x,B,W,l,A,E,N),C=V.stride,Pt=o*C+p*C,L=new Float32Array(Pt),lt=0;for(let e=0;e<o;++e){if(W){let d=e*2;F.x=u[d],F.y=u[d+1]}lt=V.encode(L,lt,X[e],i[e],g[e],F,ht[e],dt[e])}let Vt=Math.max(0,(p-4)*2),Ct=t.indices.length+Vt*3,j=Mt.createTypedArray(o+p,Ct);j.set(t.indices,0);let ft=1e-4,gt=($-Z)*ft,It=(et-tt)*ft,Lt=-gt,kt=0,vt=gt,Bt=0,Ft=0,_t=It,Wt=0,Yt=-It,k=o*C;return J(L,k,ot,V,g,i,u,s,r,t.westSkirtHeight,w,f,Lt,kt),k+=t.westIndices.length*C,J(L,k,it,V,g,i,u,s,r,t.southSkirtHeight,w,f,Wt,Yt),k+=t.southIndices.length*C,J(L,k,nt,V,g,i,u,s,r,t.eastSkirtHeight,w,f,vt,Bt),k+=t.eastIndices.length*C,J(L,k,ct,V,g,i,u,s,r,t.northSkirtHeight,w,f,Ft,_t),At.addSkirtIndices(ot,it,nt,ct,o,j,t.indices.length),M.push(L.buffer,j.buffer),{vertices:L.buffer,indices:j.buffer,westIndicesSouthToNorth:ot,southIndicesEastToWest:it,eastIndicesNorthToSouth:nt,northIndicesWestToEast:ct,vertexStride:C,center:h,minimumHeight:a,maximumHeight:x,occludeePointInScaledSpace:at,encoding:V,indexCountWithoutSkirts:t.indices.length}}function Q(t,M,c,o,u,p,l,E,N){let v=Number.POSITIVE_INFINITY,A=u.north,r=u.south,H=u.east,P=u.west;H<P&&(H+=T.TWO_PI);let _=t.length;for(let b=0;b<_;++b){let s=t[b],a=c[s],x=o[s];n.longitude=T.lerp(P,H,x.x),n.latitude=T.lerp(r,A,x.y),n.height=a-M;let h=p.cartographicToCartesian(n,G);Y.multiplyByPoint(l,h,h),O.minimumByComponent(h,E,E),O.maximumByComponent(h,N,N),v=Math.min(v,n.height)}return v}function J(t,M,c,o,u,p,l,E,N,v,A,r,H,P){let _=D(l),b=N.north,s=N.south,a=N.east,x=N.west;a<x&&(a+=T.TWO_PI);let h=c.length;for(let B=0;B<h;++B){let S=c[B],w=u[S],f=p[S];n.longitude=T.lerp(x,a,f.x)+H,n.latitude=T.lerp(s,b,f.y)+P,n.height=w-v;let U=E.cartographicToCartesian(n,G);if(_){let W=S*2;F.x=l[W],F.y=l[W+1]}let q;o.hasWebMercatorT&&(q=(z.geodeticLatitudeToMercatorAngle(n.latitude)-A)*r);let R;o.hasGeodeticSurfaceNormals&&(R=E.geodeticSurfaceNormal(U)),M=o.encode(t,M,U,f,n.height,F,q,R)}}function K(t,M){let c;return typeof t.slice=="function"&&(c=t.slice(),typeof c.sort!="function"&&(c=void 0)),D(c)||(c=Array.prototype.slice.call(t)),c.sort(M),c}var re=Et(qt);export{re as default}; diff --git a/cesium/Workers/createWallGeometry.js b/cesium/Workers/createWallGeometry.js new file mode 100644 index 00000000..2d0c93f9 --- /dev/null +++ b/cesium/Workers/createWallGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as nt}from"./chunk-7TN3TOVQ.js";import"./chunk-6AEO73KW.js";import"./chunk-WGIRJIIK.js";import{a as w}from"./chunk-AKELQO2L.js";import"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as ot}from"./chunk-4WQ4VT5S.js";import{a as it}from"./chunk-6EINM7EY.js";import{b as tt,c as et,d as R}from"./chunk-A4I25VN7.js";import{c as I}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as N}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c as l}from"./chunk-2AIOP76V.js";import{a as s,c as K}from"./chunk-IAE6APK2.js";import{a as V}from"./chunk-3E7FIXV7.js";import{a as y}from"./chunk-NZBME2JK.js";import{f as r}from"./chunk-6DLS2UKD.js";var Q=new s,J=new s,lt=new s,st=new s,pt=new s,ut=new s,ft=new s;function E(t){t=t??K.EMPTY_OBJECT;let e=t.positions,o=t.maximumHeights,n=t.minimumHeights;if(!r(e))throw new y("options.positions is required.");if(r(o)&&o.length!==e.length)throw new y("options.positions and options.maximumHeights must have the same length.");if(r(n)&&n.length!==e.length)throw new y("options.positions and options.minimumHeights must have the same length.");let i=t.vertexFormat??w.DEFAULT,c=t.granularity??V.RADIANS_PER_DEGREE,a=t.ellipsoid??l.default;this._positions=e,this._minimumHeights=n,this._maximumHeights=o,this._vertexFormat=w.clone(i),this._granularity=c,this._ellipsoid=l.clone(a),this._workerName="createWallGeometry";let m=1+e.length*s.packedLength+2;r(n)&&(m+=n.length),r(o)&&(m+=o.length),this.packedLength=m+l.packedLength+w.packedLength+1}E.pack=function(t,e,o){if(!r(t))throw new y("value is required");if(!r(e))throw new y("array is required");o=o??0;let n,i=t._positions,c=i.length;for(e[o++]=c,n=0;n<c;++n,o+=s.packedLength)s.pack(i[n],e,o);let a=t._minimumHeights;if(c=r(a)?a.length:0,e[o++]=c,r(a))for(n=0;n<c;++n)e[o++]=a[n];let m=t._maximumHeights;if(c=r(m)?m.length:0,e[o++]=c,r(m))for(n=0;n<c;++n)e[o++]=m[n];return l.pack(t._ellipsoid,e,o),o+=l.packedLength,w.pack(t._vertexFormat,e,o),o+=w.packedLength,e[o]=t._granularity,e};var mt=l.clone(l.UNIT_SPHERE),rt=new w,U={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:mt,vertexFormat:rt,granularity:void 0};E.unpack=function(t,e,o){if(!r(t))throw new y("array is required");e=e??0;let n,i=t[e++],c=new Array(i);for(n=0;n<i;++n,e+=s.packedLength)c[n]=s.unpack(t,e);i=t[e++];let a;if(i>0)for(a=new Array(i),n=0;n<i;++n)a[n]=t[e++];i=t[e++];let m;if(i>0)for(m=new Array(i),n=0;n<i;++n)m[n]=t[e++];let S=l.unpack(t,e,mt);e+=l.packedLength;let _=w.unpack(t,e,rt);e+=w.packedLength;let f=t[e];return r(o)?(o._positions=c,o._minimumHeights=a,o._maximumHeights=m,o._ellipsoid=l.clone(S,o._ellipsoid),o._vertexFormat=w.clone(_,o._vertexFormat),o._granularity=f,o):(U.positions=c,U.minimumHeights=a,U.maximumHeights=m,U.granularity=f,new E(U))};E.fromConstantHeights=function(t){t=t??K.EMPTY_OBJECT;let e=t.positions;if(!r(e))throw new y("options.positions is required.");let o,n,i=t.minimumHeight,c=t.maximumHeight,a=r(i),m=r(c);if(a||m){let _=e.length;o=a?new Array(_):void 0,n=m?new Array(_):void 0;for(let f=0;f<_;++f)a&&(o[f]=i),m&&(n[f]=c)}let S={positions:e,maximumHeights:n,minimumHeights:o,ellipsoid:t.ellipsoid,vertexFormat:t.vertexFormat};return new E(S)};E.createGeometry=function(t){let e=t._positions,o=t._minimumHeights,n=t._maximumHeights,i=t._vertexFormat,c=t._granularity,a=t._ellipsoid,m=nt.computePositions(a,e,n,o,c,!0);if(!r(m))return;let S=m.bottomPositions,_=m.topPositions,f=m.numCorners,q=_.length,A=q*2,h=i.position?new Float64Array(A):void 0,P=i.normal?new Float32Array(A):void 0,b=i.tangent?new Float32Array(A):void 0,x=i.bitangent?new Float32Array(A):void 0,B=i.st?new Float32Array(A/3*2):void 0,k=0,v=0,T=0,C=0,W=0,g=ft,d=ut,H=pt,Y=!0;q/=3;let p,Z=0,ct=1/(q-f-1);for(p=0;p<q;++p){let L=p*3,u=s.fromArray(_,L,Q),M=s.fromArray(S,L,J);if(i.position&&(h[k++]=M.x,h[k++]=M.y,h[k++]=M.z,h[k++]=u.x,h[k++]=u.y,h[k++]=u.z),i.st&&(B[W++]=Z,B[W++]=0,B[W++]=Z,B[W++]=1),i.normal||i.tangent||i.bitangent){let O=s.clone(s.ZERO,st),j=s.subtract(u,a.geodeticSurfaceNormal(u,J),J);if(p+1<q&&(O=s.fromArray(_,L+3,st)),Y){let G=s.subtract(O,u,lt),at=s.subtract(j,u,Q);g=s.normalize(s.cross(at,G,g),g),Y=!1}s.equalsEpsilon(u,O,V.EPSILON10)?Y=!0:(Z+=ct,i.tangent&&(d=s.normalize(s.subtract(O,u,d),d)),i.bitangent&&(H=s.normalize(s.cross(g,d,H),H))),i.normal&&(P[v++]=g.x,P[v++]=g.y,P[v++]=g.z,P[v++]=g.x,P[v++]=g.y,P[v++]=g.z),i.tangent&&(b[C++]=d.x,b[C++]=d.y,b[C++]=d.z,b[C++]=d.x,b[C++]=d.y,b[C++]=d.z),i.bitangent&&(x[T++]=H.x,x[T++]=H.y,x[T++]=H.z,x[T++]=H.x,x[T++]=H.y,x[T++]=H.z)}}let z=new it;i.position&&(z.position=new R({componentDatatype:N.DOUBLE,componentsPerAttribute:3,values:h})),i.normal&&(z.normal=new R({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:P})),i.tangent&&(z.tangent=new R({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:b})),i.bitangent&&(z.bitangent=new R({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:x})),i.st&&(z.st=new R({componentDatatype:N.FLOAT,componentsPerAttribute:2,values:B}));let $=A/3;A-=6*(f+1);let F=ot.createTypedArray($,A),D=0;for(p=0;p<$-2;p+=2){let L=p,u=p+2,M=s.fromArray(h,L*3,Q),O=s.fromArray(h,u*3,J);if(s.equalsEpsilon(M,O,V.EPSILON10))continue;let j=p+1,G=p+3;F[D++]=j,F[D++]=L,F[D++]=G,F[D++]=G,F[D++]=L,F[D++]=u}return new et({attributes:z,indices:F,primitiveType:tt.TRIANGLES,boundingSphere:I.fromVertices(h)})};var X=E;function ht(t,e){return r(e)&&(t=X.unpack(t,e)),t._ellipsoid=l.clone(t._ellipsoid),X.createGeometry(t)}var Ot=ht;export{Ot as default}; diff --git a/cesium/Workers/createWallOutlineGeometry.js b/cesium/Workers/createWallOutlineGeometry.js new file mode 100644 index 00000000..c833e034 --- /dev/null +++ b/cesium/Workers/createWallOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as z}from"./chunk-7TN3TOVQ.js";import"./chunk-6AEO73KW.js";import"./chunk-WGIRJIIK.js";import"./chunk-G2QPRBZU.js";import"./chunk-37ETYCYM.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as W}from"./chunk-4WQ4VT5S.js";import{a as N}from"./chunk-6EINM7EY.js";import{b as R,c as S,d as M}from"./chunk-A4I25VN7.js";import{c as D}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import{a as q}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{c as l}from"./chunk-2AIOP76V.js";import{a as p,c as O}from"./chunk-IAE6APK2.js";import{a as b}from"./chunk-3E7FIXV7.js";import{a as H}from"./chunk-NZBME2JK.js";import{f as m}from"./chunk-6DLS2UKD.js";var B=new p,U=new p;function _(i){i=i??O.EMPTY_OBJECT;let t=i.positions,e=i.maximumHeights,o=i.minimumHeights;if(!m(t))throw new H("options.positions is required.");if(m(e)&&e.length!==t.length)throw new H("options.positions and options.maximumHeights must have the same length.");if(m(o)&&o.length!==t.length)throw new H("options.positions and options.minimumHeights must have the same length.");let s=i.granularity??b.RADIANS_PER_DEGREE,r=i.ellipsoid??l.default;this._positions=t,this._minimumHeights=o,this._maximumHeights=e,this._granularity=s,this._ellipsoid=l.clone(r),this._workerName="createWallOutlineGeometry";let n=1+t.length*p.packedLength+2;m(o)&&(n+=o.length),m(e)&&(n+=e.length),this.packedLength=n+l.packedLength+1}_.pack=function(i,t,e){if(!m(i))throw new H("value is required");if(!m(t))throw new H("array is required");e=e??0;let o,s=i._positions,r=s.length;for(t[e++]=r,o=0;o<r;++o,e+=p.packedLength)p.pack(s[o],t,e);let n=i._minimumHeights;if(r=m(n)?n.length:0,t[e++]=r,m(n))for(o=0;o<r;++o)t[e++]=n[o];let c=i._maximumHeights;if(r=m(c)?c.length:0,t[e++]=r,m(c))for(o=0;o<r;++o)t[e++]=c[o];return l.pack(i._ellipsoid,t,e),e+=l.packedLength,t[e]=i._granularity,t};var G=l.clone(l.UNIT_SPHERE),L={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:G,granularity:void 0};_.unpack=function(i,t,e){if(!m(i))throw new H("array is required");t=t??0;let o,s=i[t++],r=new Array(s);for(o=0;o<s;++o,t+=p.packedLength)r[o]=p.unpack(i,t);s=i[t++];let n;if(s>0)for(n=new Array(s),o=0;o<s;++o)n[o]=i[t++];s=i[t++];let c;if(s>0)for(c=new Array(s),o=0;o<s;++o)c[o]=i[t++];let w=l.unpack(i,t,G);t+=l.packedLength;let u=i[t];return m(e)?(e._positions=r,e._minimumHeights=n,e._maximumHeights=c,e._ellipsoid=l.clone(w,e._ellipsoid),e._granularity=u,e):(L.positions=r,L.minimumHeights=n,L.maximumHeights=c,L.granularity=u,new _(L))};_.fromConstantHeights=function(i){i=i??O.EMPTY_OBJECT;let t=i.positions;if(!m(t))throw new H("options.positions is required.");let e,o,s=i.minimumHeight,r=i.maximumHeight,n=m(s),c=m(r);if(n||c){let u=t.length;e=n?new Array(u):void 0,o=c?new Array(u):void 0;for(let g=0;g<u;++g)n&&(e[g]=s),c&&(o[g]=r)}let w={positions:t,maximumHeights:o,minimumHeights:e,ellipsoid:i.ellipsoid};return new _(w)};_.createGeometry=function(i){let t=i._positions,e=i._minimumHeights,o=i._maximumHeights,s=i._granularity,r=i._ellipsoid,n=z.computePositions(r,t,o,e,s,!1);if(!m(n))return;let c=n.bottomPositions,w=n.topPositions,u=w.length,g=u*2,f=new Float64Array(g),E=0;u/=3;let h;for(h=0;h<u;++h){let y=h*3,A=p.fromArray(w,y,B),k=p.fromArray(c,y,U);f[E++]=k.x,f[E++]=k.y,f[E++]=k.z,f[E++]=A.x,f[E++]=A.y,f[E++]=A.z}let v=new N({position:new M({componentDatatype:q.DOUBLE,componentsPerAttribute:3,values:f})}),P=g/3;g=2*P-4+P;let a=W.createTypedArray(P,g),d=0;for(h=0;h<P-2;h+=2){let y=h,A=h+2,k=p.fromArray(f,y*3,B),x=p.fromArray(f,A*3,U);if(p.equalsEpsilon(k,x,b.EPSILON10))continue;let T=h+1,F=h+3;a[d++]=T,a[d++]=y,a[d++]=T,a[d++]=F,a[d++]=y,a[d++]=A}return a[d++]=P-2,a[d++]=P-1,new S({attributes:v,indices:a,primitiveType:R.LINES,boundingSphere:D.fromVertices(f)})};var C=_;function J(i,t){return m(t)&&(i=C.unpack(i,t)),i._ellipsoid=l.clone(i._ellipsoid),C.createGeometry(i)}var pi=J;export{pi as default}; diff --git a/cesium/Workers/decodeDraco.js b/cesium/Workers/decodeDraco.js new file mode 100644 index 00000000..dbe44f12 --- /dev/null +++ b/cesium/Workers/decodeDraco.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as D}from"./chunk-RESOCDYZ.js";import{a as I}from"./chunk-BKIYVF74.js";import{a as m}from"./chunk-4WQ4VT5S.js";import{a as w}from"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import{a as A}from"./chunk-G3GDHHWO.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import{d as P,f as d}from"./chunk-6DLS2UKD.js";var b=P(D(),1),r;function F(t,n){let o=t.num_points(),a=t.num_faces(),i=new r.DracoInt32Array,e=a*3,s=m.createTypedArray(o,e),u=0;for(let f=0;f<a;++f)n.GetFaceFromMesh(t,f,i),s[u+0]=i.GetValue(0),s[u+1]=i.GetValue(1),s[u+2]=i.GetValue(2),u+=3;return r.destroy(i),{typedArray:s,numberOfIndices:e}}function U(t,n,o,a,i){let e,s;a.quantizationBits<=8?(s=new r.DracoUInt8Array,e=new Uint8Array(i),n.GetAttributeUInt8ForAllPoints(t,o,s)):a.quantizationBits<=16?(s=new r.DracoUInt16Array,e=new Uint16Array(i),n.GetAttributeUInt16ForAllPoints(t,o,s)):(s=new r.DracoFloat32Array,e=new Float32Array(i),n.GetAttributeFloatForAllPoints(t,o,s));for(let u=0;u<i;++u)e[u]=s.GetValue(u);return r.destroy(s),e}function k(t,n,o,a){let i,e;switch(o.data_type()){case 1:case 11:e=new r.DracoInt8Array,i=new Int8Array(a),n.GetAttributeInt8ForAllPoints(t,o,e);break;case 2:e=new r.DracoUInt8Array,i=new Uint8Array(a),n.GetAttributeUInt8ForAllPoints(t,o,e);break;case 3:e=new r.DracoInt16Array,i=new Int16Array(a),n.GetAttributeInt16ForAllPoints(t,o,e);break;case 4:e=new r.DracoUInt16Array,i=new Uint16Array(a),n.GetAttributeUInt16ForAllPoints(t,o,e);break;case 5:case 7:e=new r.DracoInt32Array,i=new Int32Array(a),n.GetAttributeInt32ForAllPoints(t,o,e);break;case 6:case 8:e=new r.DracoUInt32Array,i=new Uint32Array(a),n.GetAttributeUInt32ForAllPoints(t,o,e);break;case 9:case 10:e=new r.DracoFloat32Array,i=new Float32Array(a),n.GetAttributeFloatForAllPoints(t,o,e);break}for(let s=0;s<a;++s)i[s]=e.GetValue(s);return r.destroy(e),i}function p(t,n,o){let a=t.num_points(),i=o.num_components(),e,s=new r.AttributeQuantizationTransform;if(s.InitFromAttribute(o)){let c=new Array(i);for(let y=0;y<i;++y)c[y]=s.min_value(y);e={quantizationBits:s.quantization_bits(),minValues:c,range:s.range(),octEncoded:!1}}r.destroy(s),s=new r.AttributeOctahedronTransform,s.InitFromAttribute(o)&&(e={quantizationBits:s.quantization_bits(),octEncoded:!0}),r.destroy(s);let u=a*i,f;d(e)?f=U(t,n,o,e,u):f=k(t,n,o,u);let l=w.fromTypedArray(f);return{array:f,data:{componentsPerAttribute:i,componentDatatype:l,byteOffset:o.byte_offset(),byteStride:w.getSizeInBytes(l)*i,normalized:o.normalized(),quantization:e}}}function O(t){let n=new r.Decoder;t.dequantizeInShader&&(n.SkipAttributeTransform(r.POSITION),n.SkipAttributeTransform(r.NORMAL));let o=new r.DecoderBuffer;if(o.Init(t.buffer,t.buffer.length),n.GetEncodedGeometryType(o)!==r.POINT_CLOUD)throw new A("Draco geometry type must be POINT_CLOUD.");let i=new r.PointCloud,e=n.DecodeBufferToPointCloud(o,i);if(!e.ok()||i.ptr===0)throw new A(`Error decoding draco point cloud: ${e.error_msg()}`);r.destroy(o);let s={},u=t.properties;for(let f in u)if(u.hasOwnProperty(f)){let l;if(f==="POSITION"||f==="NORMAL"){let c=n.GetAttributeId(i,r[f]);l=n.GetAttribute(i,c)}else{let c=u[f];l=n.GetAttributeByUniqueId(i,c)}s[f]=p(i,n,l)}return r.destroy(i),r.destroy(n),s}function g(t){let n=new r.Decoder;if(t.dequantizeInShader)for(let c=0;c<t.attributesToSkipTransform.length;++c)n.SkipAttributeTransform(r[t.attributesToSkipTransform[c]]);let o=t.bufferView,a=new r.DecoderBuffer;if(a.Init(t.array,o.byteLength),n.GetEncodedGeometryType(a)!==r.TRIANGULAR_MESH)throw new A("Unsupported draco mesh geometry type.");let e=new r.Mesh,s=n.DecodeBufferToMesh(a,e);if(!s.ok()||e.ptr===0)throw new A(`Error decoding draco mesh geometry: ${s.error_msg()}`);r.destroy(a);let u={},f=t.compressedAttributes;for(let c in f)if(f.hasOwnProperty(c)){let y=f[c],T=n.GetAttributeByUniqueId(e,y);u[c]=p(e,n,T)}let l={indexArray:F(e,n),attributeData:u};return r.destroy(e),r.destroy(n),l}async function z(t,n){return d(t.bufferView)?g(t):O(t)}async function G(t,n){let o=t.webAssemblyConfig;return d(o)&&d(o.wasmBinaryFile)?r=await(0,b.default)(o):r=await(0,b.default)(),!0}async function S(t,n){let o=t.webAssemblyConfig;return d(o)?G(t,n):z(t,n)}var h=I(S);export{h as default}; diff --git a/cesium/Workers/decodeGoogleEarthEnterprisePacket.js b/cesium/Workers/decodeGoogleEarthEnterprisePacket.js new file mode 100644 index 00000000..8fc12da7 --- /dev/null +++ b/cesium/Workers/decodeGoogleEarthEnterprisePacket.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Ct}from"./chunk-BKIYVF74.js";import{a as O}from"./chunk-G3GDHHWO.js";import{b as ht}from"./chunk-NZBME2JK.js";import{f as Rt}from"./chunk-6DLS2UKD.js";var Wr=1953029805,Jr=2917034100;function ct(t,a){if(ct.passThroughDataForTesting)return a;ht.typeOf.object("key",t),ht.typeOf.object("data",a);let r=t.byteLength;if(r===0||r%4!==0)throw new O("The length of key must be greater than 0 and a multiple of 4.");let e=new DataView(a),i=e.getUint32(0,!0);if(i===Wr||i===Jr)return a;let s=new DataView(t),d=0,l=a.byteLength,_=l-l%8,n=r,o,g=8;for(;d<_;)for(g=(g+8)%24,o=g;d<_&&o<n;)e.setUint32(d,e.getUint32(d,!0)^s.getUint32(o,!0),!0),e.setUint32(d+4,e.getUint32(d+4,!0)^s.getUint32(o+4,!0),!0),d+=8,o+=24;if(d<l)for(o>=n&&(g=(g+8)%24,o=g);d<l;)e.setUint8(d,e.getUint8(d)^s.getUint8(o)),d++,o++}ct.passThroughDataForTesting=!1;var Lt=ct;function Kr(t,a){return(t&a)!==0}var F=Kr;var Xr=[1,2,4,8],Nt=15,Zr=16,$r=64,ta=128;function I(t,a,r,e,i,s){this._bits=t,this.cnodeVersion=a,this.imageryVersion=r,this.terrainVersion=e,this.imageryProvider=i,this.terrainProvider=s,this.ancestorHasTerrain=!1,this.terrainState=void 0}I.clone=function(t,a){return Rt(a)?(a._bits=t._bits,a.cnodeVersion=t.cnodeVersion,a.imageryVersion=t.imageryVersion,a.terrainVersion=t.terrainVersion,a.imageryProvider=t.imageryProvider,a.terrainProvider=t.terrainProvider):a=new I(t._bits,t.cnodeVersion,t.imageryVersion,t.terrainVersion,t.imageryProvider,t.terrainProvider),a.ancestorHasTerrain=t.ancestorHasTerrain,a.terrainState=t.terrainState,a};I.prototype.setParent=function(t){this.ancestorHasTerrain=t.ancestorHasTerrain||this.hasTerrain()};I.prototype.hasSubtree=function(){return F(this._bits,Zr)};I.prototype.hasImagery=function(){return F(this._bits,$r)};I.prototype.hasTerrain=function(){return F(this._bits,ta)};I.prototype.hasChildren=function(){return F(this._bits,Nt)};I.prototype.hasChild=function(t){return F(this._bits,Xr[t])};I.prototype.getChildBitmask=function(){return this._bits&Nt};var Gt=I;var Ht=0,Ft=1;function q(t){let a=t.length;for(;--a>=0;)t[a]=0}var ra=29,Bt=256,Ot=30,Ar=19,Ur=573,Tr=15,ft=16,Er=256,Sr=16,Br=17,Or=18,aa=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ia=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);var Pr=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ea=512,Ir=Array(288*2);q(Ir);var Dr=Array(Ot*2);q(Dr);var zt=Array(ea);q(zt);var Pt=Array(256);q(Pt);var Vr=Array(ra);q(Vr);var Mr=Array(Ot);q(Mr);var jr=t=>t<256?zt[t]:zt[256+(t>>>7)],st=(t,a)=>{t.pending_buf[t.pending++]=a&255,t.pending_buf[t.pending++]=a>>>8&255},B=(t,a,r)=>{t.bi_valid>ft-r?(t.bi_buf|=a<<t.bi_valid&65535,st(t,t.bi_buf),t.bi_buf=a>>ft-t.bi_valid,t.bi_valid+=r-ft):(t.bi_buf|=a<<t.bi_valid&65535,t.bi_valid+=r)},j=(t,a,r)=>{B(t,r[a*2],r[a*2+1])},na=(t,a)=>{let r=0;do r|=t&1,t>>>=1,r<<=1;while(--a>0);return r>>>1},sa=(t,a)=>{let r=a.dyn_tree,e=a.max_code,i=a.stat_desc.static_tree,s=a.stat_desc.has_stree,d=a.stat_desc.extra_bits,l=a.stat_desc.extra_base,_=a.stat_desc.max_length,n,o,g,c,h,z,A=0;for(c=0;c<=Tr;c++)t.bl_count[c]=0;for(r[t.heap[t.heap_max]*2+1]=0,n=t.heap_max+1;n<Ur;n++)o=t.heap[n],c=r[r[o*2+1]*2+1]+1,c>_&&(c=_,A++),r[o*2+1]=c,!(o>e)&&(t.bl_count[c]++,h=0,o>=l&&(h=d[o-l]),z=r[o*2],t.opt_len+=z*(c+h),s&&(t.static_len+=z*(i[o*2+1]+h)));if(A!==0){do{for(c=_-1;t.bl_count[c]===0;)c--;t.bl_count[c]--,t.bl_count[c+1]+=2,t.bl_count[_]--,A-=2}while(A>0);for(c=_;c!==0;c--)for(o=t.bl_count[c];o!==0;)g=t.heap[--n],!(g>e)&&(r[g*2+1]!==c&&(t.opt_len+=(c-r[g*2+1])*r[g*2],r[g*2+1]=c),o--)}},oa=(t,a,r)=>{let e=Array(16),i=0,s,d;for(s=1;s<=Tr;s++)i=i+r[s-1]<<1,e[s]=i;for(d=0;d<=a;d++){let l=t[d*2+1];l!==0&&(t[d*2]=na(e[l]++,l))}},la=t=>{let a;for(a=0;a<286;a++)t.dyn_ltree[a*2]=0;for(a=0;a<Ot;a++)t.dyn_dtree[a*2]=0;for(a=0;a<Ar;a++)t.bl_tree[a*2]=0;t.dyn_ltree[Er*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},Rr=t=>{t.bi_valid>8?st(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},Yt=(t,a,r,e)=>{let i=a*2,s=r*2;return t[i]<t[s]||t[i]===t[s]&&e[a]<=e[r]},_t=(t,a,r)=>{let e=t.heap[r],i=r<<1;for(;i<=t.heap_len&&(i<t.heap_len&&Yt(a,t.heap[i+1],t.heap[i],t.depth)&&i++,!Yt(a,e,t.heap[i],t.depth));)t.heap[r]=t.heap[i],r=i,i<<=1;t.heap[r]=e},Qt=(t,a,r)=>{let e,i,s=0,d,l;if(t.sym_next!==0)do e=t.pending_buf[t.sym_buf+s++]&255,e+=(t.pending_buf[t.sym_buf+s++]&255)<<8,i=t.pending_buf[t.sym_buf+s++],e===0?j(t,i,a):(d=Pt[i],j(t,d+Bt+1,a),l=aa[d],l!==0&&(i-=Vr[d],B(t,i,l)),e--,d=jr(e),j(t,d,r),l=ia[d],l!==0&&(e-=Mr[d],B(t,e,l)));while(s<t.sym_next);j(t,Er,a)},At=(t,a)=>{let r=a.dyn_tree,e=a.stat_desc.static_tree,i=a.stat_desc.has_stree,s=a.stat_desc.elems,d,l,_=-1,n;for(t.heap_len=0,t.heap_max=Ur,d=0;d<s;d++)r[d*2]===0?r[d*2+1]=0:(t.heap[++t.heap_len]=_=d,t.depth[d]=0);for(;t.heap_len<2;)n=t.heap[++t.heap_len]=_<2?++_:0,r[n*2]=1,t.depth[n]=0,t.opt_len--,i&&(t.static_len-=e[n*2+1]);for(a.max_code=_,d=t.heap_len>>1;d>=1;d--)_t(t,r,d);n=s;do d=t.heap[1],t.heap[1]=t.heap[t.heap_len--],_t(t,r,1),l=t.heap[1],t.heap[--t.heap_max]=d,t.heap[--t.heap_max]=l,r[n*2]=r[d*2]+r[l*2],t.depth[n]=(t.depth[d]>=t.depth[l]?t.depth[d]:t.depth[l])+1,r[d*2+1]=r[l*2+1]=n,t.heap[1]=n++,_t(t,r,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],sa(t,a),oa(r,_,t.bl_count)},qt=(t,a,r)=>{let e,i=-1,s,d=a[1],l=0,_=7,n=4;for(d===0&&(_=138,n=3),a[(r+1)*2+1]=65535,e=0;e<=r;e++)s=d,d=a[(e+1)*2+1],!(++l<_&&s===d)&&(l<n?t.bl_tree[s*2]+=l:s===0?l<=10?t.bl_tree[Br*2]++:t.bl_tree[Or*2]++:(s!==i&&t.bl_tree[s*2]++,t.bl_tree[Sr*2]++),l=0,i=s,d===0?(_=138,n=3):s===d?(_=6,n=3):(_=7,n=4))},Wt=(t,a,r)=>{let e,i=-1,s,d=a[1],l=0,_=7,n=4;for(d===0&&(_=138,n=3),e=0;e<=r;e++)if(s=d,d=a[(e+1)*2+1],!(++l<_&&s===d)){if(l<n)do j(t,s,t.bl_tree);while(--l!==0);else s===0?l<=10?(j(t,Br,t.bl_tree),B(t,l-3,3)):(j(t,Or,t.bl_tree),B(t,l-11,7)):(s!==i&&(j(t,s,t.bl_tree),l--),j(t,Sr,t.bl_tree),B(t,l-3,2));l=0,i=s,d===0?(_=138,n=3):s===d?(_=6,n=3):(_=7,n=4)}},da=t=>{let a;for(qt(t,t.dyn_ltree,t.l_desc.max_code),qt(t,t.dyn_dtree,t.d_desc.max_code),At(t,t.bl_desc),a=Ar-1;a>=3&&t.bl_tree[Pr[a]*2+1]===0;a--);return t.opt_len+=3*(a+1)+5+5+4,a},ha=(t,a,r,e)=>{let i;for(B(t,a-257,5),B(t,r-1,5),B(t,e-4,4),i=0;i<e;i++)B(t,t.bl_tree[Pr[i]*2+1],3);Wt(t,t.dyn_ltree,a-1),Wt(t,t.dyn_dtree,r-1)},ca=t=>{let a=4093624447,r;for(r=0;r<=31;r++,a>>>=1)if(a&1&&t.dyn_ltree[r*2]!==0)return Ht;if(t.dyn_ltree[18]!==0||t.dyn_ltree[20]!==0||t.dyn_ltree[26]!==0)return Ft;for(r=32;r<Bt;r++)if(t.dyn_ltree[r*2]!==0)return Ft;return Ht},Ut=(t,a,r,e)=>{B(t,0+ +!!e,3),Rr(t),st(t,r),st(t,~r),r&&t.pending_buf.set(t.window.subarray(a,a+r),t.pending),t.pending+=r},fa=(t,a,r,e)=>{let i,s,d=0;t.level>0?(t.strm.data_type===2&&(t.strm.data_type=ca(t)),At(t,t.l_desc),At(t,t.d_desc),d=da(t),i=t.opt_len+3+7>>>3,s=t.static_len+3+7>>>3,s<=i&&(i=s)):i=s=r+5,r+4<=i&&a!==-1?Ut(t,a,r,e):t.strategy===4||s===i?(B(t,2+ +!!e,3),Qt(t,Ir,Dr)):(B(t,4+ +!!e,3),ha(t,t.l_desc.max_code+1,t.d_desc.max_code+1,d+1),Qt(t,t.dyn_ltree,t.dyn_dtree)),la(t),e&&Rr(t)},X=(t,a,r)=>(t.pending_buf[t.sym_buf+t.sym_next++]=a,t.pending_buf[t.sym_buf+t.sym_next++]=a>>8,t.pending_buf[t.sym_buf+t.sym_next++]=r,a===0?t.dyn_ltree[r*2]++:(t.matches++,a--,t.dyn_ltree[(Pt[r]+Bt+1)*2]++,t.dyn_dtree[jr(a)*2]++),t.sym_next===t.sym_end),ot=(t,a,r,e)=>{let i=t&65535|0,s=t>>>16&65535|0,d=0;for(;r!==0;){d=r>2e3?2e3:r,r-=d;do i=i+a[e++]|0,s=s+i|0;while(--d);i%=65521,s%=65521}return i|s<<16|0},_a=new Uint32Array((()=>{let t,a=[];for(var r=0;r<256;r++){t=r;for(var e=0;e<8;e++)t=t&1?3988292384^t>>>1:t>>>1;a[r]=t}return a})()),P=(t,a,r,e)=>{let i=_a,s=e+r;t^=-1;for(let d=e;d<s;d++)t=t>>>8^i[(t^a[d])&255];return t^-1},ut={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},E=3,mt=258,V=262,C=1,It=2,Dt=3,Vt=4,ua=t=>{let a,r,e,i=t.w_size;a=t.hash_size,e=a;do r=t.head[--e],t.head[e]=r>=i?r-i:0;while(--a);a=i,e=a;do r=t.prev[--e],t.prev[e]=r>=i?r-i:0;while(--a)},Mt=(t,a,r)=>(a<<t.hash_shift^r)&t.hash_mask,Q=(t,a)=>{let r;if(t.legacy_hash)r=t.ins_h=Mt(t,t.ins_h,t.window[a+E-1]);else{let i=t.window,s=i[a]|i[a+1]<<8|i[a+2]<<16|i[a+3]<<24;r=t.ins_h=Math.imul(s,66521)+66521>>>16&t.hash_mask}let e=t.prev[a&t.w_mask]=t.head[r];return t.head[r]=a,e},Tt=t=>{let a=t.state,r=a.pending;r>t.avail_out&&(r=t.avail_out),r!==0&&(t.output.set(a.pending_buf.subarray(a.pending_out,a.pending_out+r),t.next_out),t.next_out+=r,a.pending_out+=r,t.total_out+=r,t.avail_out-=r,a.pending-=r,a.pending===0&&(a.pending_out=0))},G=(t,a)=>{fa(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,a),t.block_start=t.strstart,Tt(t.strm)},Et=(t,a,r,e)=>{let i=t.avail_in;return i>e&&(i=e),i===0?0:(t.avail_in-=i,a.set(t.input.subarray(t.next_in,t.next_in+i),r),t.state.wrap===1?t.adler=ot(t.adler,a,i,r):t.state.wrap===2&&(t.adler=P(t.adler,a,i,r)),t.next_in+=i,t.total_in+=i,i)},Cr=(t,a)=>{let r=t.max_chain_length,e=t.strstart,i,s,d=t.prev_length,l=t.nice_match,_=t.strstart>t.w_size-V?t.strstart-(t.w_size-V):0,n=t.window,o=t.w_mask,g=t.prev,c=t.strstart+mt,h=n[e+d-1],z=n[e+d];t.prev_length>=t.good_match&&(r>>=2),l>t.lookahead&&(l=t.lookahead);do if(i=a,!(n[i+d]!==z||n[i+d-1]!==h||n[i]!==n[e]||n[++i]!==n[e+1])){e+=2,i++;do;while(n[++e]===n[++i]&&n[++e]===n[++i]&&n[++e]===n[++i]&&n[++e]===n[++i]&&n[++e]===n[++i]&&n[++e]===n[++i]&&n[++e]===n[++i]&&n[++e]===n[++i]&&e<c);if(s=mt-(c-e),e=c-mt,s>d){if(t.match_start=a,d=s,s>=l)break;h=n[e+d-1],z=n[e+d]}}while((a=g[a&o])>_&&--r!==0);return d<=t.lookahead?d:t.lookahead},Lr=t=>{let a=t.w_size,r,e,i;do{if(e=t.window_size-t.lookahead-t.strstart,t.strstart>=a+(a-V)&&(t.window.set(t.window.subarray(a,a+a-e),0),t.match_start-=a,t.strstart-=a,t.block_start-=a,t.insert>t.strstart&&(t.insert=t.strstart),ua(t),e+=a),t.strm.avail_in===0)break;if(r=Et(t.strm,t.window,t.strstart+t.lookahead,e),t.lookahead+=r,!t.legacy_hash){if(t.lookahead+t.insert>E)for(i=t.strstart-t.insert;t.insert&&(Q(t,i),i++,t.insert--,!(t.lookahead+t.insert<=E)););}else if(t.lookahead+t.insert>=E)for(i=t.strstart-t.insert,t.ins_h=t.window[i],t.ins_h=Mt(t,t.ins_h,t.window[i+1]);t.insert&&(Q(t,i),i++,t.insert--,!(t.lookahead+t.insert<E)););}while(t.lookahead<V&&t.strm.avail_in!==0)},ma=(t,a)=>{let r=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,e,i,s,d=0,l=t.strm.avail_in;do{if(e=65535,s=t.bi_valid+42>>3,t.strm.avail_out<s||(s=t.strm.avail_out-s,i=t.strstart-t.block_start,e>i+t.strm.avail_in&&(e=i+t.strm.avail_in),e>s&&(e=s),e<r&&(e===0&&a!==4||a===0||e!==i+t.strm.avail_in)))break;d=+(a===4&&e===i+t.strm.avail_in),Ut(t,0,0,d),t.pending_buf[t.pending-4]=e,t.pending_buf[t.pending-3]=e>>8,t.pending_buf[t.pending-2]=~e,t.pending_buf[t.pending-1]=~e>>8,Tt(t.strm),i&&(i>e&&(i=e),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,e-=i),e&&(Et(t.strm,t.strm.output,t.strm.next_out,e),t.strm.next_out+=e,t.strm.avail_out-=e,t.strm.total_out+=e)}while(d===0);return l-=t.strm.avail_in,l&&(l>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=l&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-l,t.strm.next_in),t.strstart),t.strstart+=l,t.insert+=l>t.w_size-t.insert?t.w_size-t.insert:l),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),d?Vt:a!==0&&a!==4&&t.strm.avail_in===0&&t.strstart===t.block_start?It:(s=t.window_size-t.strstart,t.strm.avail_in>s&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,s+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),s>t.strm.avail_in&&(s=t.strm.avail_in),s&&(Et(t.strm,t.window,t.strstart,s),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.high_water<t.strstart&&(t.high_water=t.strstart),s=t.bi_valid+42>>3,s=t.pending_buf_size-s>65535?65535:t.pending_buf_size-s,r=s>t.w_size?t.w_size:s,i=t.strstart-t.block_start,(i>=r||(i||a===4)&&a!==0&&t.strm.avail_in===0&&i<=s)&&(e=i>s?s:i,d=+(a===4&&t.strm.avail_in===0&&e===i),Ut(t,t.block_start,e,d),t.block_start+=e,Tt(t.strm)),d?Dt:C)},wt=(t,a)=>{let r,e;for(;;){if(t.lookahead<V){if(Lr(t),t.lookahead<V&&a===0)return C;if(t.lookahead===0)break}if(r=0,t.lookahead>=E&&(r=Q(t,t.strstart)),r!==0&&t.strstart-r<=t.w_size-V&&(t.match_length=Cr(t,r)),t.match_length>=E)if(e=X(t,t.strstart-t.match_start,t.match_length-E),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=E){t.match_length--;do t.strstart++,r=Q(t,t.strstart);while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.legacy_hash&&(t.ins_h=t.window[t.strstart],t.ins_h=Mt(t,t.ins_h,t.window[t.strstart+1]));else e=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(e&&(G(t,!1),t.strm.avail_out===0))return C}return t.insert=t.strstart<E-1?t.strstart:E-1,a===4?(G(t,!0),t.strm.avail_out===0?Dt:Vt):t.sym_next&&(G(t,!1),t.strm.avail_out===0)?C:It},Y=(t,a)=>{let r,e,i;for(;;){if(t.lookahead<V){if(Lr(t),t.lookahead<V&&a===0)return C;if(t.lookahead===0)break}if(r=0,t.lookahead>=E&&(r=Q(t,t.strstart)),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=E-1,r!==0&&t.prev_length<t.max_lazy_match&&t.strstart-r<=t.w_size-V&&(t.match_length=Cr(t,r),t.match_length<=5&&(t.strategy===1||t.match_length===E&&t.strstart-t.match_start>4096)&&(t.match_length=E-1)),t.prev_length>=E&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-E,e=X(t,t.strstart-1-t.prev_match,t.prev_length-E),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(r=Q(t,t.strstart));while(--t.prev_length!==0);if(t.match_available=0,t.match_length=E-1,t.strstart++,e&&(G(t,!1),t.strm.avail_out===0))return C}else if(t.match_available){if(e=X(t,0,t.window[t.strstart-1]),e&&G(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return C}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(e=X(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<E-1?t.strstart:E-1,a===4?(G(t,!0),t.strm.avail_out===0?Dt:Vt):t.sym_next&&(G(t,!1),t.strm.avail_out===0)?C:It},D=class{constructor(t,a,r,e,i){this.good_length=t,this.max_lazy=a,this.nice_length=r,this.max_chain=e,this.func=i}};new D(0,0,0,0,ma),new D(4,4,8,4,wt),new D(4,5,16,8,wt),new D(4,6,32,32,wt),new D(4,4,16,16,Y),new D(8,16,32,32,Y),new D(8,16,128,128,Y),new D(8,32,128,256,Y),new D(32,128,258,1024,Y),new D(32,258,258,4096,Y);var at=16209,wa=16191;function ba(t,a){let r,e,i,s,d,l,_,n,o,g,c,h,z,A,y,b,w,f,m,U,v,p,x,u,k=t.state;r=t.next_in,x=t.input,e=r+(t.avail_in-5),i=t.next_out,u=t.output,s=i-(a-t.avail_out),d=i+(t.avail_out-257),l=k.dmax,_=k.wsize,n=k.whave,o=k.wnext,g=k.window,c=k.hold,h=k.bits,z=k.lencode,A=k.distcode,y=(1<<k.lenbits)-1,b=(1<<k.distbits)-1;t:do{h<15&&(c+=x[r++]<<h,h+=8,c+=x[r++]<<h,h+=8),w=z[c&y];r:for(;;){if(f=w>>>24,c>>>=f,h-=f,f=w>>>16&255,f===0)u[i++]=w&65535;else if(f&16){m=w&65535,f&=15,f&&(h<f&&(c+=x[r++]<<h,h+=8),m+=c&(1<<f)-1,c>>>=f,h-=f),h<15&&(c+=x[r++]<<h,h+=8,c+=x[r++]<<h,h+=8),w=A[c&b];a:for(;;){if(f=w>>>24,c>>>=f,h-=f,f=w>>>16&255,f&16){if(U=w&65535,f&=15,h<f&&(c+=x[r++]<<h,h+=8,h<f&&(c+=x[r++]<<h,h+=8)),U+=c&(1<<f)-1,U>l){t.msg="invalid distance too far back",k.mode=at;break t}if(c>>>=f,h-=f,f=i-s,U>f){if(f=U-f,f>n&&k.sane){t.msg="invalid distance too far back",k.mode=at;break t}if(v=0,p=g,o===0){if(v+=_-f,f<m){m-=f;do u[i++]=g[v++];while(--f);v=i-U,p=u}}else if(o<f){if(v+=_+o-f,f-=o,f<m){m-=f;do u[i++]=g[v++];while(--f);if(v=0,o<m){f=o,m-=f;do u[i++]=g[v++];while(--f);v=i-U,p=u}}}else if(v+=o-f,f<m){m-=f;do u[i++]=g[v++];while(--f);v=i-U,p=u}for(;m>2;)u[i++]=p[v++],u[i++]=p[v++],u[i++]=p[v++],m-=3;m&&(u[i++]=p[v++],m>1&&(u[i++]=p[v++]))}else{v=i-U;do u[i++]=u[v++],u[i++]=u[v++],u[i++]=u[v++],m-=3;while(m>2);m&&(u[i++]=u[v++],m>1&&(u[i++]=u[v++]))}}else if(f&64){t.msg="invalid distance code",k.mode=at;break t}else{w=A[(w&65535)+(c&(1<<f)-1)];continue a}break}}else if(f&64)if(f&32){k.mode=wa;break t}else{t.msg="invalid literal/length code",k.mode=at;break t}else{w=z[(w&65535)+(c&(1<<f)-1)];continue r}break}}while(r<e&&i<d);m=h>>3,r-=m,h-=m<<3,c&=(1<<h)-1,t.next_in=r,t.next_out=i,t.avail_in=r<e?5+(e-r):5-(r-e),t.avail_out=i<d?257+(d-i):257-(i-d),k.hold=c,k.bits=h}var it=15,Jt=852,Kt=592,Xt=0,bt=1,Zt=2,pa=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),ga=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,199,75]),ka=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),va=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Z=(t,a,r,e,i,s,d,l)=>{let _=l.bits,n=0,o=0,g=0,c=0,h=0,z=0,A=0,y=0,b=0,w=0,f,m,U,v,p,x=null,u,k=new Uint16Array(16),S=new Uint16Array(16),N=null,jt,tt,rt;for(n=0;n<=it;n++)k[n]=0;for(o=0;o<e;o++)k[a[r+o]]++;for(h=_,c=it;c>=1&&k[c]===0;c--);if(h>c&&(h=c),c===0)return i[s++]=20971520,i[s++]=20971520,l.bits=1,0;for(g=1;g<c&&k[g]===0;g++);for(h<g&&(h=g),y=1,n=1;n<=it;n++)if(y<<=1,y-=k[n],y<0)return-1;if(y>0&&(t===Xt||c!==1))return-1;for(S[1]=0,n=1;n<it;n++)S[n+1]=S[n]+k[n];for(o=0;o<e;o++)a[r+o]!==0&&(d[S[a[r+o]]++]=o);if(t===Xt?(x=N=d,u=20):t===bt?(x=pa,N=ga,u=257):(x=ka,N=va,u=0),w=0,o=0,n=g,p=s,z=h,A=0,U=-1,b=1<<h,v=b-1,t===bt&&b>Jt||t===Zt&&b>Kt)return 1;for(;;){jt=n-A,d[o]+1<u?(tt=0,rt=d[o]):d[o]>=u?(tt=N[d[o]-u],rt=x[d[o]-u]):(tt=96,rt=0),f=1<<n-A,m=1<<z,g=m;do m-=f,i[p+(w>>A)+m]=jt<<24|tt<<16|rt|0;while(m!==0);for(f=1<<n-1;w&f;)f>>=1;if(f===0?w=0:(w&=f-1,w+=f),o++,--k[n]===0){if(n===c)break;n=a[r+d[o]]}if(n>h&&(w&v)!==U){for(A===0&&(A=h),p+=g,z=n-A,y=1<<z;z+A<c&&(y-=k[z+A],!(y<=0));)z++,y<<=1;if(b+=1<<z,t===bt&&b>Jt||t===Zt&&b>Kt)return 1;U=w&v,i[U]=h<<24|z<<16|p-s|0}}return w!==0&&(i[p+w]=n-A<<24|4194304),l.bits=h,0},ya=0,Nr=1,Gr=2,dt=16180,$t=16181,tr=16182,rr=16183,ar=16184,ir=16185,er=16186,nr=16187,sr=16188,or=16189,lt=16190,M=16191,pt=16192,lr=16193,gt=16194,dr=16195,hr=16196,cr=16197,fr=16198,et=16199,nt=16200,_r=16201,ur=16202,mr=16203,wr=16204,br=16205,kt=16206,pr=16207,gr=16208,T=16209,St=16210,Hr=16211,xa=852,za=592,kr=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24),Aa=class{constructor(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}},W=t=>{if(!t)return 1;let a=t.state;return+(!a||a.strm!==t||a.mode<dt||a.mode>Hr)},Ua=t=>{if(W(t))return-2;let a=t.state;return t.total_in=t.total_out=a.total=0,t.msg="",a.wrap&&(t.adler=a.wrap&1),a.mode=dt,a.last=0,a.havedict=0,a.flags=-1,a.dmax=32768,a.head=null,a.hold=0,a.bits=0,a.lencode=a.lendyn=new Int32Array(xa),a.distcode=a.distdyn=new Int32Array(za),a.sane=1,a.back=-1,0},Fr=t=>{if(W(t))return-2;let a=t.state;return a.wsize=0,a.whave=0,a.wnext=0,Ua(t)},Ta=(t,a)=>{let r;if(W(t))return-2;let e=t.state;return a<0?(r=0,a=-a):(r=(a>>4)+5,a<48&&(a&=15)),a&&(a<8||a>15)?-2:(e.window!==null&&e.wbits!==a&&(e.window=null),e.wrap=r,e.wbits=a,Fr(t))},Ea=(t,a)=>{if(!t)return-2;let r=new Aa;t.state=r,r.strm=t,r.window=null,r.mode=dt;let e=Ta(t,a);return e!==0&&(t.state=null),e},vr=!0,vt,yt,Sa=t=>{if(vr){vt=new Int32Array(512),yt=new Int32Array(32);let a=0;for(;a<144;)t.lens[a++]=8;for(;a<256;)t.lens[a++]=9;for(;a<280;)t.lens[a++]=7;for(;a<288;)t.lens[a++]=8;for(Z(Nr,t.lens,0,288,vt,0,t.work,{bits:9}),a=0;a<32;)t.lens[a++]=5;Z(Gr,t.lens,0,32,yt,0,t.work,{bits:5}),vr=!1}t.lencode=vt,t.lenbits=9,t.distcode=yt,t.distbits=5},Yr=(t,a,r,e)=>{let i,s=t.state;return s.window===null&&(s.window=new Uint8Array(1<<s.wbits)),s.wsize===0&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0),e>=s.wsize?(s.window.set(a.subarray(r-s.wsize,r),0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>e&&(i=e),s.window.set(a.subarray(r-e,r-e+i),s.wnext),e-=i,e?(s.window.set(a.subarray(r-e,r),0),s.wnext=e,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0},xt=(t,a)=>{let r,e,i,s,d,l,_,n,o,g,c,h,z,A,y=0,b,w,f,m,U,v,p,x,u=new Uint8Array(4),k,S,N=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(W(t)||!t.output||!t.input&&t.avail_in!==0)return-2;r=t.state,r.mode===M&&(r.mode=pt),d=t.next_out,i=t.output,_=t.avail_out,s=t.next_in,e=t.input,l=t.avail_in,n=r.hold,o=r.bits,g=l,c=_,x=0;t:for(;;)switch(r.mode){case dt:if(r.wrap===0){r.mode=pt;break}for(;o<16;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}if(r.wrap&2&&n===35615){r.wbits===0&&(r.wbits=15),r.check=0,u[0]=n&255,u[1]=n>>>8&255,r.check=P(r.check,u,2,0),n=0,o=0,r.mode=$t;break}if(r.head&&(r.head.done=!1),!(r.wrap&1)||(((n&255)<<8)+(n>>8))%31){t.msg="incorrect header check",r.mode=T;break}if((n&15)!=8){t.msg="unknown compression method",r.mode=T;break}if(n>>>=4,o-=4,p=(n&15)+8,r.wbits===0&&(r.wbits=p),p>15||p>r.wbits){t.msg="invalid window size",r.mode=T;break}r.dmax=1<<r.wbits,r.flags=0,t.adler=r.check=1,r.mode=n&512?or:M,n=0,o=0;break;case $t:for(;o<16;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}if(r.flags=n,(r.flags&255)!=8){t.msg="unknown compression method",r.mode=T;break}if(r.flags&57344){t.msg="unknown header flags set",r.mode=T;break}r.head&&(r.head.text=n>>8&1),r.flags&512&&r.wrap&4&&(u[0]=n&255,u[1]=n>>>8&255,r.check=P(r.check,u,2,0)),n=0,o=0,r.mode=tr;case tr:for(;o<32;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}r.head&&(r.head.time=n),r.flags&512&&r.wrap&4&&(u[0]=n&255,u[1]=n>>>8&255,u[2]=n>>>16&255,u[3]=n>>>24&255,r.check=P(r.check,u,4,0)),n=0,o=0,r.mode=rr;case rr:for(;o<16;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}r.head&&(r.head.xflags=n&255,r.head.os=n>>8),r.flags&512&&r.wrap&4&&(u[0]=n&255,u[1]=n>>>8&255,r.check=P(r.check,u,2,0)),n=0,o=0,r.mode=ar;case ar:if(r.flags&1024){for(;o<16;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}r.length=n,r.head&&(r.head.extra_len=n),r.flags&512&&r.wrap&4&&(u[0]=n&255,u[1]=n>>>8&255,r.check=P(r.check,u,2,0)),n=0,o=0}else r.head&&(r.head.extra=null);r.mode=ir;case ir:if(r.flags&1024&&(h=r.length,h>l&&(h=l),h&&(r.head&&(p=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(e.subarray(s,s+h),p)),r.flags&512&&r.wrap&4&&(r.check=P(r.check,e,h,s)),l-=h,s+=h,r.length-=h),r.length))break t;r.length=0,r.mode=er;case er:if(r.flags&2048){if(l===0)break t;h=0;do p=e[s+h++],r.head&&p&&r.length<65536&&(r.head.name+=String.fromCharCode(p));while(p&&h<l);if(r.flags&512&&r.wrap&4&&(r.check=P(r.check,e,h,s)),l-=h,s+=h,p)break t}else r.head&&(r.head.name=null);r.length=0,r.mode=nr;case nr:if(r.flags&4096){if(l===0)break t;h=0;do p=e[s+h++],r.head&&p&&r.length<65536&&(r.head.comment+=String.fromCharCode(p));while(p&&h<l);if(r.flags&512&&r.wrap&4&&(r.check=P(r.check,e,h,s)),l-=h,s+=h,p)break t}else r.head&&(r.head.comment=null);r.mode=sr;case sr:if(r.flags&512){for(;o<16;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}if(r.wrap&4&&n!==(r.check&65535)){t.msg="header crc mismatch",r.mode=T;break}n=0,o=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=M;break;case or:for(;o<32;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}t.adler=r.check=kr(n),n=0,o=0,r.mode=lt;case lt:if(r.havedict===0)return t.next_out=d,t.avail_out=_,t.next_in=s,t.avail_in=l,r.hold=n,r.bits=o,2;t.adler=r.check=1,r.mode=M;case M:if(a===5||a===6)break t;case pt:if(r.last){n>>>=o&7,o-=o&7,r.mode=kt;break}for(;o<3;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}switch(r.last=n&1,n>>>=1,--o,n&3){case 0:r.mode=lr;break;case 1:if(Sa(r),r.mode=et,a===6){n>>>=2,o-=2;break t}break;case 2:r.mode=hr;break;case 3:t.msg="invalid block type",r.mode=T}n>>>=2,o-=2;break;case lr:for(n>>>=o&7,o-=o&7;o<32;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}if((n&65535)!=(n>>>16^65535)){t.msg="invalid stored block lengths",r.mode=T;break}if(r.length=n&65535,n=0,o=0,r.mode=gt,a===6)break t;case gt:r.mode=dr;case dr:if(h=r.length,h){if(h>l&&(h=l),h>_&&(h=_),h===0)break t;i.set(e.subarray(s,s+h),d),l-=h,s+=h,_-=h,d+=h,r.length-=h;break}r.mode=M;break;case hr:for(;o<14;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}if(r.nlen=(n&31)+257,n>>>=5,o-=5,r.ndist=(n&31)+1,n>>>=5,o-=5,r.ncode=(n&15)+4,n>>>=4,o-=4,r.nlen>286||r.ndist>30){t.msg="too many length or distance symbols",r.mode=T;break}r.have=0,r.mode=cr;case cr:for(;r.have<r.ncode;){for(;o<3;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}r.lens[N[r.have++]]=n&7,n>>>=3,o-=3}for(;r.have<19;)r.lens[N[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,k={bits:r.lenbits},x=Z(ya,r.lens,0,19,r.lencode,0,r.work,k),r.lenbits=k.bits,x){t.msg="invalid code lengths set",r.mode=T;break}r.have=0,r.mode=fr;case fr:for(;r.have<r.nlen+r.ndist;){for(;y=r.lencode[n&(1<<r.lenbits)-1],b=y>>>24,w=y>>>16&255,f=y&65535,!(b<=o);){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}if(f<16)n>>>=b,o-=b,r.lens[r.have++]=f;else{if(f===16){for(S=b+2;o<S;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}if(n>>>=b,o-=b,r.have===0){t.msg="invalid bit length repeat",r.mode=T;break}p=r.lens[r.have-1],h=3+(n&3),n>>>=2,o-=2}else if(f===17){for(S=b+3;o<S;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}n>>>=b,o-=b,p=0,h=3+(n&7),n>>>=3,o-=3}else{for(S=b+7;o<S;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}n>>>=b,o-=b,p=0,h=11+(n&127),n>>>=7,o-=7}if(r.have+h>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=T;break}for(;h--;)r.lens[r.have++]=p}}if(r.mode===T)break;if(r.lens[256]===0){t.msg="invalid code -- missing end-of-block",r.mode=T;break}if(r.lenbits=9,k={bits:r.lenbits},x=Z(Nr,r.lens,0,r.nlen,r.lencode,0,r.work,k),r.lenbits=k.bits,x){t.msg="invalid literal/lengths set",r.mode=T;break}if(r.distbits=6,r.distcode=r.distdyn,k={bits:r.distbits},x=Z(Gr,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,k),r.distbits=k.bits,x){t.msg="invalid distances set",r.mode=T;break}if(r.mode=et,a===6)break t;case et:r.mode=nt;case nt:if(l>=6&&_>=258){t.next_out=d,t.avail_out=_,t.next_in=s,t.avail_in=l,r.hold=n,r.bits=o,ba(t,c),d=t.next_out,i=t.output,_=t.avail_out,s=t.next_in,e=t.input,l=t.avail_in,n=r.hold,o=r.bits,r.mode===M&&(r.back=-1);break}for(r.back=0;y=r.lencode[n&(1<<r.lenbits)-1],b=y>>>24,w=y>>>16&255,f=y&65535,!(b<=o);){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}if(w&&!(w&240)){for(m=b,U=w,v=f;y=r.lencode[v+((n&(1<<m+U)-1)>>m)],b=y>>>24,w=y>>>16&255,f=y&65535,!(m+b<=o);){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}n>>>=m,o-=m,r.back+=m}if(n>>>=b,o-=b,r.back+=b,r.length=f,w===0){r.mode=br;break}if(w&32){r.back=-1,r.mode=M;break}if(w&64){t.msg="invalid literal/length code",r.mode=T;break}r.extra=w&15,r.mode=_r;case _r:if(r.extra){for(S=r.extra;o<S;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}r.length+=n&(1<<r.extra)-1,n>>>=r.extra,o-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=ur;case ur:for(;y=r.distcode[n&(1<<r.distbits)-1],b=y>>>24,w=y>>>16&255,f=y&65535,!(b<=o);){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}if(!(w&240)){for(m=b,U=w,v=f;y=r.distcode[v+((n&(1<<m+U)-1)>>m)],b=y>>>24,w=y>>>16&255,f=y&65535,!(m+b<=o);){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}n>>>=m,o-=m,r.back+=m}if(n>>>=b,o-=b,r.back+=b,w&64){t.msg="invalid distance code",r.mode=T;break}r.offset=f,r.extra=w&15,r.mode=mr;case mr:if(r.extra){for(S=r.extra;o<S;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}r.offset+=n&(1<<r.extra)-1,n>>>=r.extra,o-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=T;break}r.mode=wr;case wr:if(_===0)break t;if(h=c-_,r.offset>h){if(h=r.offset-h,h>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=T;break}h>r.wnext?(h-=r.wnext,z=r.wsize-h):z=r.wnext-h,h>r.length&&(h=r.length),A=r.window}else A=i,z=d-r.offset,h=r.length;h>_&&(h=_),_-=h,r.length-=h;do i[d++]=A[z++];while(--h);r.length===0&&(r.mode=nt);break;case br:if(_===0)break t;i[d++]=r.length,_--,r.mode=nt;break;case kt:if(r.wrap){for(;o<32;){if(l===0)break t;l--,n|=e[s++]<<o,o+=8}if(c-=_,t.total_out+=c,r.total+=c,r.wrap&4&&c&&(t.adler=r.check=r.flags?P(r.check,i,c,d-c):ot(r.check,i,c,d-c)),c=_,r.wrap&4&&(r.flags?n:kr(n))!==r.check){t.msg="incorrect data check",r.mode=T;break}n=0,o=0}r.mode=pr;case pr:if(r.wrap&&r.flags){for(;o<32;){if(l===0)break t;l--,n+=e[s++]<<o,o+=8}if(r.wrap&4&&n!==(r.total&4294967295)){t.msg="incorrect length check",r.mode=T;break}n=0,o=0}r.mode=gr;case gr:x=1;break t;case T:x=-3;break t;case St:return-4;case Hr:default:return-2}return t.next_out=d,t.avail_out=_,t.next_in=s,t.avail_in=l,r.hold=n,r.bits=o,(r.wsize||c!==t.avail_out&&r.mode<T&&(r.mode<kt||a!==4))&&Yr(t,t.output,t.next_out,c-t.avail_out)?(r.mode=St,-4):(g-=t.avail_in,c-=t.avail_out,t.total_in+=g,t.total_out+=c,r.total+=c,r.wrap&4&&c&&(t.adler=r.check=r.flags?P(r.check,i,c,t.next_out-c):ot(r.check,i,c,t.next_out-c)),t.data_type=r.bits+(r.last?64:0)+(r.mode===M?128:0)+(r.mode===et||r.mode===gt?256:0),(g===0&&c===0||a===4)&&x===0&&(x=-5),x)},yr=t=>{if(W(t))return-2;let a=t.state;return a.window&&(a.window=null),t.state=null,0},xr=(t,a)=>{let r=a.length,e,i,s;return W(t)||(e=t.state,e.wrap!==0&&e.mode!==lt)?-2:e.mode===lt&&(i=1,i=ot(i,a,r,0),i!==e.check)?-3:(s=Yr(t,a,r,r),s?(e.mode=St,-4):(e.havedict=1,0))},Ba=class{constructor(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},Oa=t=>{let a=new Uint8Array(t.reduce((e,i)=>e+i.length,0)),r=0;for(let e of t)a.set(e,r),r+=e.length;return a};function $(t){"@babel/helpers - typeof";return $=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},$(t)}function Pa(t,a){if($(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var e=r.call(t,a||"default");if($(e)!="object")return e;throw TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(t)}function Ia(t){var a=Pa(t,"string");return $(a)=="symbol"?a:a+""}function R(t,a,r){return(a=Ia(a))in t?Object.defineProperty(t,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[a]=r,t}var zr=Object.prototype.toString,Da={chunkSize:1024*64,windowBits:15,raw:!1,dictionary:new Uint8Array},Va=class{constructor(t={}){R(this,"options",void 0),R(this,"err",void 0),R(this,"msg",void 0),R(this,"ended",void 0),R(this,"started",void 0),R(this,"chunks",void 0),R(this,"strm",void 0),R(this,"result",void 0),this.options=Object.assign({},Da,t);let a=this.options;a.raw&&a.windowBits>=0&&a.windowBits<16&&(a.windowBits=-a.windowBits,a.windowBits===0&&(a.windowBits=-15)),a.windowBits>=0&&a.windowBits<16&&!t.windowBits&&(a.windowBits+=32),a.windowBits>15&&a.windowBits<48&&(a.windowBits&15||(a.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.started=!1,this.chunks=[],this.result=new Uint8Array,this.strm=new Ba,this.strm.avail_out=0;let r=Ea(this.strm,a.windowBits);if(r!==0)throw Error(ut[r]);zr.call(a.dictionary)==="[object ArrayBuffer]"&&(a.dictionary=new Uint8Array(a.dictionary));let e=a.dictionary;if(a.raw&&e.length&&(r=xr(this.strm,e),r!==0))throw Error(ut[r])}push(t,a=!1){let r=this.strm,e=this.options.chunkSize,i,s,d;if(this.ended)return this.err===0;for(s=typeof a=="number"?a:a===!0?4:0,zr.call(t)==="[object ArrayBuffer]"?r.input=new Uint8Array(t):r.input=t,r.next_in=0,r.avail_in=r.input.length,this.started||(this.started=!0,this.onStart(r));;){if(r.avail_out===0&&(r.output=new Uint8Array(e),r.next_out=0,r.avail_out=e),i=xt(r,s),i===2){let l=this.options.dictionary;l.length&&(i=xr(r,l),i===0?i=xt(r,s):i===-3&&(i=2))}for(;r.avail_in>0&&i===1&&r.state.wrap&2&&r.state.flags!==0&&r.input[r.next_in]!==0;)Fr(r),i=xt(r,s);if(i===-2||i===-3||i===2||i===-4)break;if(d=r.avail_out,r.next_out&&(r.avail_out===0||i===1||s>0)&&(this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out)),r.avail_out=0,r.next_out=0),!((i===0||i===-5)&&d===0)){if(i===1){i=yr(this.strm);break}if(r.avail_in===0){if(s===4){i=yr(this.strm),i===0&&(i=-5);break}return!0}}}return this.err=i,this.msg=r.msg||ut[i],this.ended=!0,this.onEnd(i),i===0}onStart(t){}onData(t){this.chunks.push(t)}onEnd(t){t===0&&(this.result=Oa(this.chunks)),this.chunks=[]}};function Qr(t,a={}){let r=new Va(a);if(r.push(t,!0),r.err)throw Error(r.msg);let e=r.result;return a.toText?new TextDecoder().decode(e):e}var J=Uint16Array.BYTES_PER_ELEMENT,H=Int32Array.BYTES_PER_ELEMENT,K=Uint32Array.BYTES_PER_ELEMENT,L={METADATA:0,TERRAIN:1,DBROOT:2};L.fromString=function(t){if(t==="Metadata")return L.METADATA;if(t==="Terrain")return L.TERRAIN;if(t==="DbRoot")return L.DBROOT};function Ma(t,a){let r=L.fromString(t.type),e=t.buffer;Lt(t.key,e);let i=Ha(e);e=i.buffer;let s=i.length;switch(r){case L.METADATA:return Ra(e,s,t.quadKey);case L.TERRAIN:return Na(e,s,a);case L.DBROOT:return a.push(e),{buffer:e}}}var ja=32301;function Ra(t,a,r){let e=new DataView(t),i=0,s=e.getUint32(i,!0);if(i+=K,s!==ja)throw new O("Invalid magic");let d=e.getUint32(i,!0);if(i+=K,d!==1)throw new O("Invalid data type. Must be 1 for QuadTreePacket");let l=e.getUint32(i,!0);if(i+=K,l!==2)throw new O("Invalid QuadTreePacket version. Only version 2 is supported.");let _=e.getInt32(i,!0);i+=H;let n=e.getInt32(i,!0);if(i+=H,n!==32)throw new O("Invalid instance size.");let o=e.getInt32(i,!0);i+=H;let g=e.getInt32(i,!0);i+=H;let c=e.getInt32(i,!0);if(i+=H,o!==_*n+i)throw new O("Invalid dataBufferOffset");if(o+g+c!==a)throw new O("Invalid packet offsets");let h=[];for(let f=0;f<_;++f){let m=e.getUint8(i);++i,++i;let U=e.getUint16(i,!0);i+=J;let v=e.getUint16(i,!0);i+=J;let p=e.getUint16(i,!0);i+=J,i+=J,i+=J,i+=H,i+=H,i+=8;let x=e.getUint8(i++),u=e.getUint8(i++);i+=J,h.push(new Gt(m,U,v,p,x,u))}let z=[],A=0;function y(f,m,U){let v=!1;if(U===4){if(m.hasSubtree())return;v=!0}for(let p=0;p<4;++p){let x=f+p.toString();if(v)z[x]=null;else if(U<4)if(!m.hasChild(p))z[x]=null;else{if(A===_){console.log("Incorrect number of instances");return}let u=h[A++];z[x]=u,y(x,u,U+1)}}}let b=0,w=h[A++];return r===""?++b:z[r]=w,y(r,w,b),z}var Ca=5,La=4;function Na(t,a,r){let e=new DataView(t),i=function(l){for(let _=0;_<La;++_){let n=e.getUint32(l,!0);if(l+=K,l+=n,l>a)throw new O("Malformed terrain packet found.")}return l},s=0,d=[];for(;d.length<Ca;){let l=s;s=i(s);let _=t.slice(l,s);r.push(_),d.push(_)}return d}var qr=1953029805,Ga=2917034100;function Ha(t){let a=new DataView(t),r=0,e=a.getUint32(r,!0);if(r+=K,e!==qr&&e!==Ga)throw new O("Invalid magic");let i=a.getUint32(r,e===qr);r+=K;let s=new Uint8Array(t,r),d=Qr(s);if(d.length!==i)throw new O("Size of packet doesn't match header");return d}var oi=Ct(Ma);export{oi as default}; diff --git a/cesium/Workers/decodeI3S.js b/cesium/Workers/decodeI3S.js new file mode 100644 index 00000000..f1a68393 --- /dev/null +++ b/cesium/Workers/decodeI3S.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as mt}from"./chunk-RESOCDYZ.js";import{a as P}from"./chunk-QJTXFT4R.js";import{a as ht}from"./chunk-BKIYVF74.js";import{a as ft}from"./chunk-LN2UT4R3.js";import{a as ot,c as st}from"./chunk-2AIOP76V.js";import{a as g,b as it}from"./chunk-IAE6APK2.js";import{a as M}from"./chunk-3E7FIXV7.js";import{b as lt}from"./chunk-NZBME2JK.js";import{d as pt,f as h}from"./chunk-6DLS2UKD.js";var at=pt(mt(),1);function xt(n){return lt.defined("value",n),n<=.04045?n*.07739938080495357:Math.pow((n+.055)*.9478672985781991,2.4)}var k=xt;var ut;function wt(n,t,e,o,a,i){let r=e*(1-n)+o*n,s=a*(1-n)+i*n;return r*(1-t)+s*t}function H(n,t,e,o){let a=n+t*e;return o[a]}function It(n,t,e){let o=e.nativeExtent,a=(n-o.west)/(o.east-o.west)*(e.width-1),i=(t-o.south)/(o.north-o.south)*(e.height-1),r=Math.floor(a),s=Math.floor(i);a-=r,i-=s;let c=r<e.width?r+1:r,u=s<e.height?s+1:s;s=e.height-1-s,u=e.height-1-u;let l=H(r,s,e.width,e.buffer),f=H(c,s,e.width,e.buffer),p=H(r,u,e.width,e.buffer),m=H(c,u,e.width,e.buffer),d=wt(a,i,l,f,p,m);return d=d*e.scale+e.offset,d}function yt(n,t,e){for(let o=0;o<e.length;o++){let a=e[o].nativeExtent,i=new g;if(e[o].projectionType==="WebMercator"){let r=e[o].projection._ellipsoid._radii;i=new ft(new st(r.x,r.y,r.z)).project(new ot(n,t,0))}else i.x=n,i.y=t;if(i.x>a.west&&i.x<a.east&&i.y>a.south&&i.y<a.north)return It(i.x,i.y,e[o])}return 0}function At(n,t,e,o,a,i,r){if(r)return;let s=yt(a.longitude,a.latitude,i);for(let c=0;c<n;++c){let u=yt(a.longitude+M.toRadians(e*t[c*3]),a.latitude+M.toRadians(o*t[c*3+1]),i);t[c*3+2]+=u-s}}function Lt(n,t,e,o,a,i,r,s,c){if(n===0||!h(t)||t.length===0)return;let u=new st(Math.sqrt(r.x),Math.sqrt(r.y),Math.sqrt(r.z));for(let l=0;l<n;++l){let f=l*3,p=f+1,m=f+2,d=new ot;d.longitude=o.longitude+M.toRadians(s*t[f]),d.latitude=o.latitude+M.toRadians(c*t[p]),d.height=o.height+t[m];let b={};u.cartographicToCartesian(d,b),b.x-=a.x,b.y-=a.y,b.z-=a.z;let x={};if(it.multiplyByVector(i,b,x),t[f]=x.x,t[p]=x.y,t[m]=x.z,h(e)){let T=new g(e[f],e[p],e[m]),I={};it.multiplyByVector(i,T,I),e[f]=I.x,e[p]=I.y,e[m]=I.z}}}function Ot(n,t,e){for(let o=0;o<n;++o){let a=e[o*4]/65535,i=e[o*4+1]/65535,r=(e[o*4+2]-e[o*4])/65535,s=(e[o*4+3]-e[o*4+1])/65535;t[o*2]*=r,t[o*2]+=a,t[o*2+1]*=s,t[o*2+1]+=i}}function Tt(n,t,e,o){let a=new Uint32Array(n),i=h(t)?s=>t[s]:s=>s,r=0;if(o&&h(e)){let s=c=>e[i(c)*4+3]<255;for(let c=0;c<n;c+=3)!s(c)&&!s(c+1)&&!s(c+2)&&(a[r++]=i(c),a[r++]=i(c+1),a[r++]=i(c+2));if(r>0){let c=r;for(let u=0;u<n;u+=3)(s(u)||s(u+1)||s(u+2))&&(a[c++]=i(u),a[c++]=i(u+1),a[c++]=i(u+2))}else for(let c=0;c<n;++c)a[c]=i(c)}else{r=n;for(let s=0;s<n;++s)a[s]=i(s)}return{indexArray:a,transparentVertexOffset:r}}function Ct(n,t,e){let o=t[e];if(h(o))return o;let a=t[e]={positions:{},indices:{},edges:{}},i=n[e]??n.default;return a.hasOutline=h(i?.edges),a}function Ft(n,t,e,o){if(!h(n[e])){let a=e*3,i=t;for(let r=0;r<3;r++){let s=o[a+r];h(i[s])||(i[s]={}),i=i[s]}h(i.index)||(i.index=e),n[e]=i.index}}function Ut(n,t,e,o,a,i){let r,s;o<a?(r=o,s=a):(r=a,s=o);let c=n[r];h(c)||(c=n[r]={});let u=c[s];h(u)||(u=c[s]={normalsIndex:[],outlines:[]}),u.normalsIndex.push(i),(u.outlines.length===0||t!==o||e!==a)&&u.outlines.push(t,e)}function Vt(n,t,e,o){let a=[];for(let i=0;i<e.length;i+=3){let r=h(t)?t[e[i]]:"default",s=Ct(n,a,r);if(!s.hasOutline)continue;let c=s.indices,u=s.positions;for(let f=0;f<3;f++){let p=e[i+f];Ft(c,u,p,o)}let l=s.edges;for(let f=0;f<3;f++){let p=e[i+f],m=e[i+(f+1)%3],d=c[p],b=c[m];Ut(l,p,m,d,b,i)}}return a}var O=new g,X=new g,Y=new g;function bt(n,t,e,o){let a=e[t]*3,i=e[t+1]*3,r=e[t+2]*3;g.fromArray(o,a,O),g.fromArray(o,i,X),g.fromArray(o,r,Y),g.subtract(X,O,X),g.subtract(Y,O,Y),g.cross(X,Y,O);let s=g.magnitude(O);s!==0&&g.divideByScalar(O,s,O);let c=t*3,u=(t+1)*3,l=(t+2)*3;g.pack(O,n,c),g.pack(O,n,u),g.pack(O,n,l)}var z=new g,ct=new g;function Et(n,t,e){g.fromArray(n,t,z),g.fromArray(n,e,ct);let o=g.dot(z,ct),a=g.magnitude(g.cross(z,ct,z));return Math.atan2(a,o)<.25}function _t(n,t,e,o,a){if(t.normalsIndex.length>1){let i=o.length===a.length;for(let r=0;r<t.normalsIndex.length;r++){let s=t.normalsIndex[r];if(h(a[s*3])||bt(a,s,e,o),r!==0)for(let c=0;c<r;c++){let u=t.normalsIndex[c],l=i?e[s]*3:s*3,f=i?e[u]*3:u*3;if(Et(a,l,f))return}}}n.push(...t.outlines)}function Rt(n,t,e,o,a){let i=Object.keys(t);for(let r=0;r<i.length;r++){let s=t[i[r]],c=Object.keys(s);for(let u=0;u<c.length;u++){let l=s[c[u]];_t(n,l,e,o,a)}}}function Nt(n,t,e,o){let a=[],i=Object.keys(n);for(let r=0;r<i.length;r++){let s=n[i[r]].edges;Rt(a,s,t,e,o)}return a}function Bt(n,t,e,o,a){if(!h(n)||Object.keys(n).length===0)return;let i=Vt(n,t,e,o);(!h(a)||e.length*3!==a.length)&&(a=[]);let r=Nt(i,e,o,a);return r.length>0?new Uint32Array(r):void 0}function Gt(n){let t=new Float32Array(n.length);for(let e=0;e<n.length;e+=4)t[e]=k(P.byteToFloat(n[e])),t[e+1]=k(P.byteToFloat(n[e+1])),t[e+2]=k(P.byteToFloat(n[e+2])),t[e+3]=P.byteToFloat(n[e+3]);return t}function St(n,t,e,o,a,i,r){let s={normals:void 0,positions:void 0,uv0s:void 0,colors:void 0,featureIndex:void 0,vertexCount:void 0};if(n===0||!h(e)||e.length===0||h(o))return s;if(h(t)){s.vertexCount=t.length,s.positions=new Float32Array(t.length*3),s.uv0s=h(a)?new Float32Array(t.length*2):void 0,s.colors=h(i)?new Uint8Array(t.length*4):void 0,s.featureIndex=h(r)?new Array(t.length):void 0;for(let c=0;c<t.length;c++){let u=t[c];s.positions[c*3]=e[u*3],s.positions[c*3+1]=e[u*3+1],s.positions[c*3+2]=e[u*3+2],h(s.uv0s)&&(s.uv0s[c*2]=a[u*2],s.uv0s[c*2+1]=a[u*2+1]),h(s.colors)&&(s.colors[c*4]=i[u*4],s.colors[c*4+1]=i[u*4+1],s.colors[c*4+2]=i[u*4+2],s.colors[c*4+3]=i[u*4+3]),h(s.featureIndex)&&(s.featureIndex[c]=r[u])}n=t.length,e=s.positions}t=new Array(n);for(let c=0;c<n;c++)t[c]=c;s.normals=new Float32Array(t.length*3);for(let c=0;c<t.length;c+=3)bt(s.normals,c,t,e);return s}function vt(n,t,e,o,a,i,r,s){if(n===0||!h(e)||e.length===0)return{buffers:[],bufferViews:[],accessors:[],meshes:[],nodes:[],nodesInScene:[]};let c=[],u=[],l=[],f=[],p=[],m=[],d={},b=[];h(t)&&(n=t.length);let{indexArray:x,transparentVertexOffset:T}=Tt(n,t,i,s.splitGeometryByColorTransparency),I=new Blob([x],{type:"application/binary"}),A=URL.createObjectURL(I),w=n,F=s.enableFeatures&&h(r)?new Float32Array(r.length):void 0,C=0;if(h(F))for(let y=0;y<r.length;++y){F[y]=r[y];let E=r[y]+1;C<E&&(C=E)}let U,R=Bt(s.symbologyData,r,x,e,o);if(h(R)){let y=new Blob([R],{type:"application/binary"});U=URL.createObjectURL(y)}let L=e.subarray(0,w*3),gt=new Blob([L],{type:"application/binary"}),dt=URL.createObjectURL(gt),D=Number.POSITIVE_INFINITY,K=Number.NEGATIVE_INFINITY,Q=Number.POSITIVE_INFINITY,Z=Number.NEGATIVE_INFINITY,J=Number.POSITIVE_INFINITY,$=Number.NEGATIVE_INFINITY;for(let y=0;y<L.length/3;y++)D=Math.min(D,L[y*3+0]),K=Math.max(K,L[y*3+0]),Q=Math.min(Q,L[y*3+1]),Z=Math.max(Z,L[y*3+1]),J=Math.min(J,L[y*3+2]),$=Math.max($,L[y*3+2]);let N=o?o.subarray(0,w*3):void 0,q;if(h(N)){let y=new Blob([N],{type:"application/binary"});q=URL.createObjectURL(y)}let B=a?a.subarray(0,w*2):void 0,tt;if(h(B)){let y=new Blob([B],{type:"application/binary"});tt=URL.createObjectURL(y)}let G=h(i)?Gt(i.subarray(0,w*4)):void 0,et;if(h(G)){let y=new Blob([G],{type:"application/binary"});et=URL.createObjectURL(y)}let S=h(F)?F.subarray(0,w):void 0,nt;if(h(S)){let y=new Blob([S],{type:"application/binary"});nt=URL.createObjectURL(y)}let _=h(F)?new Float32Array(C):void 0,rt;if(h(_)){for(let E=0;E<_.length;++E)_[E]=E;let y=new Blob([_],{type:"application/binary"});rt=URL.createObjectURL(y)}let V={},j={};V.POSITION=l.length,c.push({uri:dt,byteLength:L.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:L.byteLength,target:34962}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5126,count:L.length/3,type:"VEC3",min:[D,Q,J],max:[K,Z,$]}),h(q)&&(V.NORMAL=l.length,c.push({uri:q,byteLength:N.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:N.byteLength,target:34962}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5126,count:N.length/3,type:"VEC3"})),h(tt)&&(V.TEXCOORD_0=l.length,c.push({uri:tt,byteLength:B.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:B.byteLength,target:34962}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5126,count:B.length/2,type:"VEC2"})),h(et)&&(V.COLOR_0=l.length,c.push({uri:et,byteLength:G.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:G.byteLength,target:34962}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5126,count:G.length/4,type:"VEC4"})),h(nt)&&(V._FEATURE_ID_0=l.length,c.push({uri:nt,byteLength:S.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:S.byteLength,target:34963}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5126,count:S.length,type:"SCALAR"}),j.EXT_mesh_features={featureIds:[{attribute:0,propertyTable:0,featureCount:C}]},b.push("EXT_mesh_features")),h(rt)&&(c.push({uri:rt,byteLength:_.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:_.byteLength,target:34963}),d.EXT_structural_metadata={schema:{id:"i3s-metadata-schema-001",name:"I3S metadata schema 001",description:"The schema for I3S metadata",version:"1.0",classes:{feature:{name:"feature",description:"Feature metadata",properties:{index:{description:"The feature index",type:"SCALAR",componentType:"FLOAT32",required:!0}}}}},propertyTables:[{name:"feature-indices-mapping",class:"feature",count:C,properties:{index:{values:u.length-1}}}]},b.push("EXT_structural_metadata")),h(U)&&(c.push({uri:U,byteLength:R.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:R.byteLength,target:34963}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5125,count:R.length,type:"SCALAR"}),j.CESIUM_primitive_outline={indices:l.length-1},b.push("CESIUM_primitive_outline")),c.push({uri:A,byteLength:x.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:x.byteLength,target:34963});let v=[];return T>0&&(l.push({bufferView:u.length-1,byteOffset:0,componentType:5125,count:T,type:"SCALAR"}),v.push({attributes:V,indices:l.length-1,material:v.length,extensions:j})),T<n&&(l.push({bufferView:u.length-1,byteOffset:4*T,componentType:5125,count:n-T,type:"SCALAR"}),v.push({attributes:V,indices:l.length-1,material:v.length,extensions:j,extra:{isTransparent:!0}})),f.push({primitives:v}),m.push(0),p.push({mesh:0}),{buffers:c,bufferViews:u,accessors:l,meshes:f,nodes:p,nodesInScene:m,rootExtensions:d,extensionsUsed:b}}function Mt(n,t,e,o){let a=new Uint8Array(n,0,5);return a[0]===68&&a[1]===82&&a[2]===65&&a[3]===67&&a[4]===79?Pt(n,e):kt(n,t,e,o)}function Pt(n){let t=ut,e=new t.DecoderBuffer,o=new Uint8Array(n);e.Init(o,o.length);let a=new t.Decoder,i=a.GetEncodedGeometryType(e),r=new t.MetadataQuerier,s,c;i===t.TRIANGULAR_MESH&&(s=new t.Mesh,c=a.DecodeBufferToMesh(e,s));let u={vertexCount:[0],featureCount:0};if(h(c)&&c.ok()&&s.ptr!==0){let l=s.num_faces(),f=s.num_attributes(),p=s.num_points();u.indices=new Uint32Array(l*3);let m=u.indices;u.vertexCount[0]=p,u.scale_x=1,u.scale_y=1;let d=new t.DracoInt32Array(3);for(let b=0;b<l;++b)a.GetFaceFromMesh(s,b,d),m[b*3]=d.GetValue(0),m[b*3+1]=d.GetValue(1),m[b*3+2]=d.GetValue(2);t.destroy(d);for(let b=0;b<f;++b){let x=a.GetAttribute(s,b),T=jt(t,a,s,x,p),I=x.attribute_type(),A="unknown";I===t.POSITION?A="positions":I===t.NORMAL?A="normals":I===t.COLOR?A="colors":I===t.TEX_COORD&&(A="uv0s");let w=a.GetAttributeMetadata(s,b);if(w.ptr!==0){let F=r.NumEntries(w);for(let C=0;C<F;++C){let U=r.GetEntryName(w,C);U==="i3s-scale_x"?u.scale_x=r.GetDoubleEntry(w,"i3s-scale_x"):U==="i3s-scale_y"?u.scale_y=r.GetDoubleEntry(w,"i3s-scale_y"):U==="i3s-attribute-type"&&(A=r.GetStringEntry(w,"i3s-attribute-type"))}}h(u[A])&&console.log("Attribute already exists",A),u[A]=T,A==="feature-index"&&u.featureCount++}t.destroy(s)}return t.destroy(r),t.destroy(a),u}function jt(n,t,e,o,a){let i=o.num_components()*a,r,c=[function(){},function(){r=new n.DracoInt8Array(i),t.GetAttributeInt8ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Int8Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){r=new n.DracoInt8Array(i),t.GetAttributeUInt8ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Uint8Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){r=new n.DracoInt16Array(i),t.GetAttributeInt16ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Int16Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){r=new n.DracoInt16Array(i),t.GetAttributeUInt16ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Uint16Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){r=new n.DracoInt32Array(i),t.GetAttributeInt32ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Int32Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){r=new n.DracoInt32Array(i),t.GetAttributeUInt32ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Uint32Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){},function(){},function(){r=new n.DracoFloat32Array(i),t.GetAttributeFloatForAllPoints(e,o,r)||console.error("Bad stream");let l=new Float32Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){},function(){r=new n.DracoUInt8Array(i),t.GetAttributeUInt8ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Uint8Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l}][o.data_type()]();return h(r)&&n.destroy(r),c}var W={position:function(n,t,e){let o=n.vertexCount*3;return n.positions=new Float32Array(t,e,o),e+=o*4,e},normal:function(n,t,e){let o=n.vertexCount*3;return n.normals=new Float32Array(t,e,o),e+=o*4,e},uv0:function(n,t,e){let o=n.vertexCount*2;return n.uv0s=new Float32Array(t,e,o),e+=o*4,e},color:function(n,t,e){let o=n.vertexCount*4;return n.colors=new Uint8Array(t,e,o),e+=o,e},featureId:function(n,t,e){let o=n.featureCount;return e+=o*8,e},id:function(n,t,e){let o=n.featureCount;return e+=o*8,e},faceRange:function(n,t,e){let o=n.featureCount*2;return n.faceRange=new Uint32Array(t,e,o),e+=o*4,e},uvRegion:function(n,t,e){let o=n.vertexCount*4;return n["uv-region"]=new Uint16Array(t,e,o),e+=o*2,e},region:function(n,t,e){let o=n.vertexCount*4;return n["uv-region"]=new Uint16Array(t,e,o),e+=o*2,e}};function kt(n,t,e,o){let a={vertexCount:0},i=new DataView(n);try{let r=0;if(a.vertexCount=i.getUint32(r,1),r+=4,a.featureCount=i.getUint32(r,1),r+=4,h(e))for(let s=0;s<e.attributes.length;s++)h(W[e.attributes[s]])?r=W[e.attributes[s]](a,n,r):console.error("Unknown decoder for",e.attributes[s]);else{let s=t.ordering,c=t.featureAttributeOrder;h(o)&&h(o.geometryData)&&h(o.geometryData[0])&&h(o.geometryData[0].params)&&(s=Object.keys(o.geometryData[0].params.vertexAttributes),c=Object.keys(o.geometryData[0].params.featureAttributes));for(let u=0;u<s.length;u++){let l=W[s[u]];r=l(a,n,r)}for(let u=0;u<c.length;u++){let l=W[c[u]];r=l(a,n,r)}}}catch(r){console.error(r)}return a.scale_x=1,a.scale_y=1,a}function Ht(n){let t=Mt(n.binaryData,n.schema,n.bufferInfo,n.featureData);h(n.geoidDataList)&&n.geoidDataList.length>0&&At(t.vertexCount,t.positions,t.scale_x,t.scale_y,n.cartographicCenter,n.geoidDataList,!1),Lt(t.vertexCount,t.positions,t.normals,n.cartographicCenter,n.cartesianCenter,n.parentRotation,n.ellipsoidRadiiSquare,t.scale_x,t.scale_y),h(t.uv0s)&&h(t["uv-region"])&&Ot(t.vertexCount,t.uv0s,t["uv-region"]);let e;if(h(t["feature-index"]))e=t["feature-index"];else if(h(t.faceRange)){e=new Array(t.vertexCount);for(let r=0;r<t.faceRange.length-1;r+=2){let s=r/2,c=t.faceRange[r],u=t.faceRange[r+1];for(let l=c;l<=u;l++)e[l*3]=s,e[l*3+1]=s,e[l*3+2]=s}}if(n.calculateNormals){let r=St(t.vertexCount,t.indices,t.positions,t.normals,t.uv0s,t.colors,e);h(r.normals)&&(t.normals=r.normals,h(r.vertexCount)&&(t.vertexCount=r.vertexCount,t.indices=r.indices,t.positions=r.positions,t.uv0s=r.uv0s,t.colors=r.colors,e=r.featureIndex))}let o=vt(t.vertexCount,t.indices,t.positions,t.normals,t.uv0s,t.colors,e,n),a={positions:t.positions,indices:t.indices,featureIndex:e,sourceURL:n.url,cartesianCenter:n.cartesianCenter,parentRotation:n.parentRotation};return o._customAttributes=a,{meshData:o}}async function Xt(n,t){let e=n.webAssemblyConfig;return h(e)&&h(e.wasmBinaryFile)?ut=await(0,at.default)(e):ut=await(0,at.default)(),!0}function Yt(n,t){let e=n.webAssemblyConfig;return h(e)?Xt(n,t):Ht(n,t)}var re=ht(Yt);export{re as default}; diff --git a/cesium/Workers/gaussianSplatSorter.js b/cesium/Workers/gaussianSplatSorter.js new file mode 100644 index 00000000..225ef88e --- /dev/null +++ b/cesium/Workers/gaussianSplatSorter.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{b as t,c as f}from"./chunk-7GCQCPLT.js";import{a as s}from"./chunk-BKIYVF74.js";import{f as o}from"./chunk-6DLS2UKD.js";async function m(i,e){let n=i.webAssemblyConfig;if(o(n)&&o(n.wasmBinary))return f({module:n.wasmBinary}),!0}function c(i,e){let n=i.webAssemblyConfig;if(o(n))return m(i,e);let{primitive:r,sortType:a}=i;if(a==="Index")return t(r.positions,r.modelView,r.count)}var y=s(c);export{y as default}; diff --git a/cesium/Workers/gaussianSplatTextureGenerator.js b/cesium/Workers/gaussianSplatTextureGenerator.js new file mode 100644 index 00000000..242bba7c --- /dev/null +++ b/cesium/Workers/gaussianSplatTextureGenerator.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a,c}from"./chunk-7GCQCPLT.js";import{a as i}from"./chunk-BKIYVF74.js";import{f as n}from"./chunk-6DLS2UKD.js";async function u(t,s){let e=t.webAssemblyConfig;return n(e)&&n(e.wasmBinary)?(c({module:e.wasmBinary}),!0):!1}async function l(t,s){let e=t.webAssemblyConfig;if(n(e))return u(t,s);let{attributes:r,count:f}=t,o=a(r.positions,r.scales,r.rotations,r.colors,f);return{data:o.data,width:o.width,height:o.height}}var w=i(l);export{w as default}; diff --git a/cesium/Workers/incrementallyBuildTerrainPicker.js b/cesium/Workers/incrementallyBuildTerrainPicker.js new file mode 100644 index 00000000..27d984af --- /dev/null +++ b/cesium/Workers/incrementallyBuildTerrainPicker.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as y}from"./chunk-BKIYVF74.js";import{a as c}from"./chunk-5VFNV3LW.js";import"./chunk-3VUCSHGU.js";import{b as a}from"./chunk-BPABSUDY.js";import"./chunk-G3GDHHWO.js";import{a as n}from"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import"./chunk-6DLS2UKD.js";var b=new n,d=new n,A=[new n,new n,new n],x=new c,f=new n(.5,.5,.5),p=new n(-.5,-.5,-.5);function h(e,r){let o=new Float64Array(e.aabbs),g=Array.from({length:4},(t,i)=>{let s=n.unpack(o,i*6,b),B=n.unpack(o,i*6+3,d);return c.fromCorners(s,B,new c)}),w=new Float64Array(e.inverseTransform),T=a.unpack(w,0,new a),u=new Uint32Array(e.triangleIndices),m=new Float64Array(e.trianglePositions),l=Array.from({length:4},()=>[]);for(let t=0;t<u.length;t++){n.unpack(m,t*9,A[0]),n.unpack(m,t*9+3,A[1]),n.unpack(m,t*9+6,A[2]);let i=k(T,A);for(let s=0;s<4;s++)g[s].intersectAxisAlignedBoundingBox(i)&&l[s].push(u[t])}return{intersectingTrianglesArrays:l.map(t=>{let i=new Uint32Array(t);return r.push(i.buffer),i.buffer})}}function k(e,r){a.multiplyByPoint(e,r[0],r[0]),a.multiplyByPoint(e,r[1],r[1]),a.multiplyByPoint(e,r[2],r[2]);let o=c.fromPoints(r,x);return n.clamp(o.minimum,p,f,o.minimum),n.clamp(o.maximum,p,f,o.maximum),o}var P=y(h);export{P as default}; diff --git a/cesium/Workers/transcodeKTX2.js b/cesium/Workers/transcodeKTX2.js new file mode 100644 index 00000000..c7ff4108 --- /dev/null +++ b/cesium/Workers/transcodeKTX2.js @@ -0,0 +1,56 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as on}from"./chunk-BKIYVF74.js";import{a as f}from"./chunk-RDX4QSUS.js";import{a as se}from"./chunk-G3GDHHWO.js";import{b as sn}from"./chunk-NZBME2JK.js";import{a as Vt,c as sr,d as or,f as De}from"./chunk-6DLS2UKD.js";var An=sr((ot,pt)=>{var Pt=(function(){var s=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(s=s||__filename),(function(T){T=T||{};var r=typeof T<"u"?T:{},B,l;r.ready=new Promise(function(e,t){B=e,l=t});var p={},F;for(F in r)r.hasOwnProperty(F)&&(p[F]=r[F]);var D=[],I="./this.program",b=function(e,t){throw t},E=!1,S=!1,V=!1,C=!1;E=typeof window=="object",S=typeof importScripts=="function",V=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=!E&&!V&&!S;var d="";function j(e){return r.locateFile?r.locateFile(e,d):d+e}var J,Ae,Y,Fe,de,Ge;V?(S?d=Vt("path").dirname(d)+"/":d=__dirname+"/",J=function(t,n){return de||(de=Vt("fs")),Ge||(Ge=Vt("path")),t=Ge.normalize(t),de.readFileSync(t,n?null:"utf8")},Y=function(t){var n=J(t,!0);return n.buffer||(n=new Uint8Array(n)),Se(n.buffer),n},process.argv.length>1&&(I=process.argv[1].replace(/\\/g,"/")),D=process.argv.slice(2),process.on("uncaughtException",function(e){if(!(e instanceof _r))throw e}),process.on("unhandledRejection",Be),b=function(e){process.exit(e)},r.inspect=function(){return"[Emscripten Module object]"}):C?(typeof read<"u"&&(J=function(t){return read(t)}),Y=function(t){var n;return typeof readbuffer=="function"?new Uint8Array(readbuffer(t)):(n=read(t,"binary"),Se(typeof n=="object"),n)},typeof scriptArgs<"u"?D=scriptArgs:typeof arguments<"u"&&(D=arguments),typeof quit=="function"&&(b=function(e){quit(e)}),typeof print<"u"&&(typeof console>"u"&&(console={}),console.log=print,console.warn=console.error=typeof printErr<"u"?printErr:print)):(E||S)&&(S?d=self.location.href:typeof document<"u"&&document.currentScript&&(d=document.currentScript.src),s&&(d=s),d.indexOf("blob:")!==0?d=d.substr(0,d.lastIndexOf("/")+1):d="",J=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},S&&(Y=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),Ae=function(e,t,n){var _=new XMLHttpRequest;_.open("GET",e,!0),_.responseType="arraybuffer",_.onload=function(){if(_.status==200||_.status==0&&_.response){t(_.response);return}n()},_.onerror=n,_.send(null)},Fe=function(e){document.title=e});var it=r.print||console.log.bind(console),oe=r.printErr||console.warn.bind(console);for(F in p)p.hasOwnProperty(F)&&(r[F]=p[F]);p=null,r.arguments&&(D=r.arguments),r.thisProgram&&(I=r.thisProgram),r.quit&&(b=r.quit);var vt=0,we=function(e){vt=e},Oe;r.wasmBinary&&(Oe=r.wasmBinary);var ln=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Be("no native wasm support detected");var le,ie=!1,X;function Se(e,t){e||Be("Assertion failed: "+t)}var He=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Ne(e,t,n){for(var _=t+n,o=t;e[o]&&!(o>=_);)++o;if(o-t>16&&e.subarray&&He)return He.decode(e.subarray(t,o));for(var c="";t<o;){var A=e[t++];if(!(A&128)){c+=String.fromCharCode(A);continue}var R=e[t++]&63;if((A&224)==192){c+=String.fromCharCode((A&31)<<6|R);continue}var a=e[t++]&63;if((A&240)==224?A=(A&15)<<12|R<<6|a:A=(A&7)<<18|R<<12|a<<6|e[t++]&63,A<65536)c+=String.fromCharCode(A);else{var u=A-65536;c+=String.fromCharCode(55296|u>>10,56320|u&1023)}}return c}function Ee(e,t){return e?Ne(U,e,t):""}function Xe(e,t,n,_){if(!(_>0))return 0;for(var o=n,c=n+_-1,A=0;A<e.length;++A){var R=e.charCodeAt(A);if(R>=55296&&R<=57343){var a=e.charCodeAt(++A);R=65536+((R&1023)<<10)|a&1023}if(R<=127){if(n>=c)break;t[n++]=R}else if(R<=2047){if(n+1>=c)break;t[n++]=192|R>>6,t[n++]=128|R&63}else if(R<=65535){if(n+2>=c)break;t[n++]=224|R>>12,t[n++]=128|R>>6&63,t[n++]=128|R&63}else{if(n+3>=c)break;t[n++]=240|R>>18,t[n++]=128|R>>12&63,t[n++]=128|R>>6&63,t[n++]=128|R&63}}return t[n]=0,n-o}function Rt(e,t,n){return Xe(e,U,t,n)}function xe(e){for(var t=0,n=0;n<e.length;++n){var _=e.charCodeAt(n);_>=55296&&_<=57343&&(_=65536+((_&1023)<<10)|e.charCodeAt(++n)&1023),_<=127?++t:_<=2047?t+=2:_<=65535?t+=3:t+=4}return t}var Ve=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function ke(e,t){for(var n=e,_=n>>1,o=_+t/2;!(_>=o)&&Re[_];)++_;if(n=_<<1,n-e>32&&Ve)return Ve.decode(U.subarray(e,n));for(var c="",A=0;!(A>=t/2);++A){var R=ee[e+A*2>>1];if(R==0)break;c+=String.fromCharCode(R)}return c}function $e(e,t,n){if(n===void 0&&(n=2147483647),n<2)return 0;n-=2;for(var _=t,o=n<e.length*2?n/2:e.length,c=0;c<o;++c){var A=e.charCodeAt(c);ee[t>>1]=A,t+=2}return ee[t>>1]=0,t-_}function at(e){return e.length*2}function ct(e,t){for(var n=0,_="";!(n>=t/4);){var o=x[e+n*4>>2];if(o==0)break;if(++n,o>=65536){var c=o-65536;_+=String.fromCharCode(55296|c>>10,56320|c&1023)}else _+=String.fromCharCode(o)}return _}function At(e,t,n){if(n===void 0&&(n=2147483647),n<4)return 0;for(var _=t,o=_+n-4,c=0;c<e.length;++c){var A=e.charCodeAt(c);if(A>=55296&&A<=57343){var R=e.charCodeAt(++c);A=65536+((A&1023)<<10)|R&1023}if(x[t>>2]=A,t+=4,t+4>o)break}return x[t>>2]=0,t-_}function Tt(e){for(var t=0,n=0;n<e.length;++n){var _=e.charCodeAt(n);_>=55296&&_<=57343&&++n,t+=4}return t}function ut(e,t){return e%t>0&&(e+=t-e%t),e}var g,L,U,ee,Re,x,q,Ut,ht;function yt(e){g=e,r.HEAP8=L=new Int8Array(e),r.HEAP16=ee=new Int16Array(e),r.HEAP32=x=new Int32Array(e),r.HEAPU8=U=new Uint8Array(e),r.HEAPU16=Re=new Uint16Array(e),r.HEAPU32=q=new Uint32Array(e),r.HEAPF32=Ut=new Float32Array(e),r.HEAPF64=ht=new Float64Array(e)}var ur=r.INITIAL_MEMORY||16777216,Pe,gt=[],Lt=[],Bn=[],mt=[],Mn=!1;function Kn(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)Gn(r.preRun.shift());We(gt)}function Cn(){Mn=!0,We(Lt)}function Fn(){We(Bn)}function dn(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Nn(r.postRun.shift());We(mt)}function Gn(e){gt.unshift(e)}function Sn(e){Lt.unshift(e)}function Nn(e){mt.unshift(e)}var Te=0,ft=null,pe=null;function En(e){Te++,r.monitorRunDependencies&&r.monitorRunDependencies(Te)}function Vn(e){if(Te--,r.monitorRunDependencies&&r.monitorRunDependencies(Te),Te==0&&(ft!==null&&(clearInterval(ft),ft=null),pe)){var t=pe;pe=null,t()}}r.preloadedImages={},r.preloadedAudios={};function Be(e){r.onAbort&&r.onAbort(e),e+="",oe(e),ie=!0,X=1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.";var t=new WebAssembly.RuntimeError(e);throw l(t),t}function Dt(e,t){return String.prototype.startsWith?e.startsWith(t):e.indexOf(t)===0}var Pn="data:application/octet-stream;base64,";function It(e){return Dt(e,Pn)}var pn="file://";function bt(e){return Dt(e,pn)}var k="basis_transcoder.wasm";It(k)||(k=j(k));function wt(e){try{if(e==k&&Oe)return new Uint8Array(Oe);if(Y)return Y(e);throw"both async and sync fetching of the wasm failed"}catch(t){Be(t)}}function vn(){if(!Oe&&(E||S)){if(typeof fetch=="function"&&!bt(k))return fetch(k,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+k+"'";return e.arrayBuffer()}).catch(function(){return wt(k)});if(Ae)return new Promise(function(e,t){Ae(k,function(n){e(new Uint8Array(n))},t)})}return Promise.resolve().then(function(){return wt(k)})}function Un(){var e={a:J_};function t(A,R){var a=A.exports;r.asm=a,le=r.asm.K,yt(le.buffer),Pe=r.asm.O,Sn(r.asm.L),Vn("wasm-instantiate")}En("wasm-instantiate");function n(A){t(A.instance)}function _(A){return vn().then(function(R){var a=WebAssembly.instantiate(R,e);return a}).then(A,function(R){oe("failed to asynchronously prepare wasm: "+R),Be(R)})}function o(){return!Oe&&typeof WebAssembly.instantiateStreaming=="function"&&!It(k)&&!bt(k)&&typeof fetch=="function"?fetch(k,{credentials:"same-origin"}).then(function(A){var R=WebAssembly.instantiateStreaming(A,e);return R.then(n,function(a){return oe("wasm streaming compile failed: "+a),oe("falling back to ArrayBuffer instantiation"),_(n)})}):_(n)}if(r.instantiateWasm)try{var c=r.instantiateWasm(e,t);return c}catch(A){return oe("Module.instantiateWasm callback failed with error: "+A),!1}return o().catch(l),{}}function We(e){for(;e.length>0;){var t=e.shift();if(typeof t=="function"){t(r);continue}var n=t.func;typeof n=="number"?t.arg===void 0?Pe.get(n)():Pe.get(n)(t.arg):n(t.arg===void 0?null:t.arg)}}var je={};function Ye(e){for(;e.length;){var t=e.pop(),n=e.pop();n(t)}}function ve(e){return this.fromWireType(q[e>>2])}var Me={},ue={},ze={},hn=48,yn=57;function qe(e){if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");var t=e.charCodeAt(0);return t>=hn&&t<=yn?"_"+e:e}function Ze(e,t){return e=qe(e),new Function("body","return function "+e+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(t)}function Ot(e,t){var n=Ze(t,function(_){this.name=t,this.message=_;var o=new Error(_).stack;o!==void 0&&(this.stack=this.toString()+` +`+o.replace(/^Error(:[^\n]*)?\n/,""))});return n.prototype=Object.create(e.prototype),n.prototype.constructor=n,n.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},n}var Ht=void 0;function Qe(e){throw new Ht(e)}function ae(e,t,n){e.forEach(function(R){ze[R]=t});function _(R){var a=n(R);a.length!==e.length&&Qe("Mismatched type converter count");for(var u=0;u<e.length;++u)Z(e[u],a[u])}var o=new Array(t.length),c=[],A=0;t.forEach(function(R,a){ue.hasOwnProperty(R)?o[a]=ue[R]:(c.push(R),Me.hasOwnProperty(R)||(Me[R]=[]),Me[R].push(function(){o[a]=ue[R],++A,A===c.length&&_(o)}))}),c.length===0&&_(o)}function gn(e){var t=je[e];delete je[e];var n=t.rawConstructor,_=t.rawDestructor,o=t.fields,c=o.map(function(A){return A.getterReturnType}).concat(o.map(function(A){return A.setterArgumentType}));ae([e],c,function(A){var R={};return o.forEach(function(a,u){var O=a.fieldName,M=A[u],N=a.getter,P=a.getterContext,m=A[u+o.length],w=a.setter,W=a.setterContext;R[O]={read:function(Q){return M.fromWireType(N(P,Q))},write:function(Q,me){var re=[];w(W,Q,m.toWireType(re,me)),Ye(re)}}}),[{name:t.name,fromWireType:function(a){var u={};for(var O in R)u[O]=R[O].read(a);return _(a),u},toWireType:function(a,u){for(var O in R)if(!(O in u))throw new TypeError('Missing field: "'+O+'"');var M=n();for(O in R)R[O].write(M,u[O]);return a!==null&&a.push(_,M),M},argPackAdvance:8,readValueFromPointer:ve,destructorFunction:_}]})}function Je(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}function Ln(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);Xt=e}var Xt=void 0;function h(e){for(var t="",n=e;U[n];)t+=Xt[U[n++]];return t}var Ke=void 0;function G(e){throw new Ke(e)}function Z(e,t,n){if(n=n||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var _=t.name;if(e||G('type "'+_+'" must have a positive integer typeid pointer'),ue.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;G("Cannot register type '"+_+"' twice")}if(ue[e]=t,delete ze[e],Me.hasOwnProperty(e)){var o=Me[e];delete Me[e],o.forEach(function(c){c()})}}function mn(e,t,n,_,o){var c=Je(n);t=h(t),Z(e,{name:t,fromWireType:function(A){return!!A},toWireType:function(A,R){return R?_:o},argPackAdvance:8,readValueFromPointer:function(A){var R;if(n===1)R=L;else if(n===2)R=ee;else if(n===4)R=x;else throw new TypeError("Unknown boolean type size: "+t);return this.fromWireType(R[A>>c])},destructorFunction:null})}function Dn(e){if(!(this instanceof ce)||!(e instanceof ce))return!1;for(var t=this.$$.ptrType.registeredClass,n=this.$$.ptr,_=e.$$.ptrType.registeredClass,o=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;_.baseClass;)o=_.upcast(o),_=_.baseClass;return t===_&&n===o}function In(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function lt(e){function t(n){return n.$$.ptrType.registeredClass.name}G(t(e)+" instance already deleted")}var Bt=!1;function xt(e){}function bn(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function kt(e){e.count.value-=1;var t=e.count.value===0;t&&bn(e)}function Ue(e){return typeof FinalizationGroup>"u"?(Ue=function(t){return t},e):(Bt=new FinalizationGroup(function(t){for(var n=t.next();!n.done;n=t.next()){var _=n.value;_.ptr?kt(_):console.warn("object already deleted: "+_.ptr)}}),Ue=function(t){return Bt.register(t,t.$$,t.$$),t},xt=function(t){Bt.unregister(t.$$)},Ue(e))}function wn(){if(this.$$.ptr||lt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=Ue(Object.create(Object.getPrototypeOf(this),{$$:{value:In(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function Hn(){this.$$.ptr||lt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&G("Object already scheduled for deletion"),xt(this),kt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Xn(){return!this.$$.ptr}var he=void 0,ye=[];function Mt(){for(;ye.length;){var e=ye.pop();e.$$.deleteScheduled=!1,e.delete()}}function xn(){return this.$$.ptr||lt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&G("Object already scheduled for deletion"),ye.push(this),ye.length===1&&he&&he(Mt),this.$$.deleteScheduled=!0,this}function kn(){ce.prototype.isAliasOf=Dn,ce.prototype.clone=wn,ce.prototype.delete=Hn,ce.prototype.isDeleted=Xn,ce.prototype.deleteLater=xn}function ce(){}var $t={};function Wt(e,t,n){if(e[t].overloadTable===void 0){var _=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||G("Function '"+n+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[_.argCount]=_}}function Kt(e,t,n){r.hasOwnProperty(e)?((n===void 0||r[e].overloadTable!==void 0&&r[e].overloadTable[n]!==void 0)&&G("Cannot register public name '"+e+"' twice"),Wt(r,e,e),r.hasOwnProperty(n)&&G("Cannot register multiple overloads of a function with the same number of arguments ("+n+")!"),r[e].overloadTable[n]=t):(r[e]=t,n!==void 0&&(r[e].numArguments=n))}function $n(e,t,n,_,o,c,A,R){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=_,this.baseClass=o,this.getActualType=c,this.upcast=A,this.downcast=R,this.pureVirtualFunctions=[]}function Ct(e,t,n){for(;t!==n;)t.upcast||G("Expected null or instance of "+n.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Wn(e,t){if(t===null)return this.isReference&&G("null is not a valid "+this.name),0;t.$$||G('Cannot pass "'+Ce(t)+'" as a '+this.name),t.$$.ptr||G("Cannot pass deleted object as a pointer of type "+this.name);var n=t.$$.ptrType.registeredClass,_=Ct(t.$$.ptr,n,this.registeredClass);return _}function jn(e,t){var n;if(t===null)return this.isReference&&G("null is not a valid "+this.name),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;t.$$||G('Cannot pass "'+Ce(t)+'" as a '+this.name),t.$$.ptr||G("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&G("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var _=t.$$.ptrType.registeredClass;if(n=Ct(t.$$.ptr,_,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&G("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:G("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var o=t.clone();n=this.rawShare(n,ne(function(){o.delete()})),e!==null&&e.push(this.rawDestructor,n)}break;default:G("Unsupporting sharing policy")}return n}function Yn(e,t){if(t===null)return this.isReference&&G("null is not a valid "+this.name),0;t.$$||G('Cannot pass "'+Ce(t)+'" as a '+this.name),t.$$.ptr||G("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&G("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass,_=Ct(t.$$.ptr,n,this.registeredClass);return _}function zn(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function qn(e){this.rawDestructor&&this.rawDestructor(e)}function Zn(e){e!==null&&e.delete()}function jt(e,t,n){if(t===n)return e;if(n.baseClass===void 0)return null;var _=jt(e,t,n.baseClass);return _===null?null:n.downcast(_)}function Qn(){return Object.keys(ge).length}function Jn(){var e=[];for(var t in ge)ge.hasOwnProperty(t)&&e.push(ge[t]);return e}function e_(e){he=e,ye.length&&he&&he(Mt)}function t_(){r.getInheritedInstanceCount=Qn,r.getLiveInheritedInstances=Jn,r.flushPendingDeletes=Mt,r.setDelayFunction=e_}var ge={};function n_(e,t){for(t===void 0&&G("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function __(e,t){return t=n_(e,t),ge[t]}function et(e,t){(!t.ptrType||!t.ptr)&&Qe("makeClassHandle requires ptr and ptrType");var n=!!t.smartPtrType,_=!!t.smartPtr;return n!==_&&Qe("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ue(Object.create(e,{$$:{value:t}}))}function r_(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=__(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var _=n.clone();return this.destructor(e),_}function o(){return this.isSmartPointer?et(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):et(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var c=this.registeredClass.getActualType(t),A=$t[c];if(!A)return o.call(this);var R;this.isConst?R=A.constPointerType:R=A.pointerType;var a=jt(t,this.registeredClass,R.registeredClass);return a===null?o.call(this):this.isSmartPointer?et(R.registeredClass.instancePrototype,{ptrType:R,ptr:a,smartPtrType:this,smartPtr:e}):et(R.registeredClass.instancePrototype,{ptrType:R,ptr:a})}function s_(){te.prototype.getPointee=zn,te.prototype.destructor=qn,te.prototype.argPackAdvance=8,te.prototype.readValueFromPointer=ve,te.prototype.deleteObject=Zn,te.prototype.fromWireType=r_}function te(e,t,n,_,o,c,A,R,a,u,O){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=_,this.isSmartPointer=o,this.pointeeType=c,this.sharingPolicy=A,this.rawGetPointee=R,this.rawConstructor=a,this.rawShare=u,this.rawDestructor=O,!o&&t.baseClass===void 0?_?(this.toWireType=Wn,this.destructorFunction=null):(this.toWireType=Yn,this.destructorFunction=null):this.toWireType=jn}function Yt(e,t,n){r.hasOwnProperty(e)||Qe("Replacing nonexistant public symbol"),r[e].overloadTable!==void 0&&n!==void 0?r[e].overloadTable[n]=t:(r[e]=t,r[e].argCount=n)}function o_(e,t,n){var _=r["dynCall_"+e];return n&&n.length?_.apply(null,[t].concat(n)):_.call(null,t)}function i_(e,t,n){return e.indexOf("j")!=-1?o_(e,t,n):Pe.get(t).apply(null,n)}function R_(e,t){var n=[];return function(){n.length=arguments.length;for(var _=0;_<arguments.length;_++)n[_]=arguments[_];return i_(e,t,n)}}function z(e,t){e=h(e);function n(){return e.indexOf("j")!=-1?R_(e,t):Pe.get(t)}var _=n();return typeof _!="function"&&G("unknown function pointer with signature "+e+": "+t),_}var zt=void 0;function qt(e){var t=tn(e),n=h(t);return _e(t),n}function tt(e,t){var n=[],_={};function o(c){if(!_[c]&&!ue[c]){if(ze[c]){ze[c].forEach(o);return}n.push(c),_[c]=!0}}throw t.forEach(o),new zt(e+": "+n.map(qt).join([", "]))}function a_(e,t,n,_,o,c,A,R,a,u,O,M,N){O=h(O),c=z(o,c),R&&(R=z(A,R)),u&&(u=z(a,u)),N=z(M,N);var P=qe(O);Kt(P,function(){tt("Cannot construct "+O+" due to unbound types",[_])}),ae([e,t,n],_?[_]:[],function(m){m=m[0];var w,W;_?(w=m.registeredClass,W=w.instancePrototype):W=ce.prototype;var Q=Ze(P,function(){if(Object.getPrototypeOf(this)!==me)throw new Ke("Use 'new' to construct "+O);if(re.constructor_body===void 0)throw new Ke(O+" has no accessible constructor");var rn=re.constructor_body[arguments.length];if(rn===void 0)throw new Ke("Tried to invoke ctor of "+O+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(re.constructor_body).toString()+") parameters instead!");return rn.apply(this,arguments)}),me=Object.create(W,{constructor:{value:Q}});Q.prototype=me;var re=new $n(O,Q,me,N,w,c,R,u),rr=new te(O,re,!0,!1,!1),nn=new te(O+"*",re,!1,!1,!1),_n=new te(O+" const*",re,!1,!0,!1);return $t[e]={pointerType:nn,constPointerType:_n},Yt(P,Q),[rr,nn,_n]})}function Ft(e,t){for(var n=[],_=0;_<e;_++)n.push(x[(t>>2)+_]);return n}function c_(e,t,n,_,o,c){Se(t>0);var A=Ft(t,n);o=z(_,o);var R=[c],a=[];ae([],[e],function(u){u=u[0];var O="constructor "+u.name;if(u.registeredClass.constructor_body===void 0&&(u.registeredClass.constructor_body=[]),u.registeredClass.constructor_body[t-1]!==void 0)throw new Ke("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+u.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return u.registeredClass.constructor_body[t-1]=function(){tt("Cannot construct "+u.name+" due to unbound types",A)},ae([],A,function(M){return u.registeredClass.constructor_body[t-1]=function(){arguments.length!==t-1&&G(O+" called with "+arguments.length+" arguments, expected "+(t-1)),a.length=0,R.length=t;for(var P=1;P<t;++P)R[P]=M[P].toWireType(a,arguments[P-1]);var m=o.apply(null,R);return Ye(a),M[0].fromWireType(m)},[]}),[]})}function Zt(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var n=Ze(e.name||"unknownFunctionName",function(){});n.prototype=e.prototype;var _=new n,o=e.apply(_,t);return o instanceof Object?o:_}function Qt(e,t,n,_,o){var c=t.length;c<2&&G("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var A=t[1]!==null&&n!==null,R=!1,a=1;a<t.length;++a)if(t[a]!==null&&t[a].destructorFunction===void 0){R=!0;break}for(var u=t[0].name!=="void",O="",M="",a=0;a<c-2;++a)O+=(a!==0?", ":"")+"arg"+a,M+=(a!==0?", ":"")+"arg"+a+"Wired";var N="return function "+qe(e)+"("+O+`) { +if (arguments.length !== `+(c-2)+`) { +throwBindingError('function `+e+" called with ' + arguments.length + ' arguments, expected "+(c-2)+` args!'); +} +`;R&&(N+=`var destructors = []; +`);var P=R?"destructors":"null",m=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],w=[G,_,o,Ye,t[0],t[1]];A&&(N+="var thisWired = classParam.toWireType("+P+`, this); +`);for(var a=0;a<c-2;++a)N+="var arg"+a+"Wired = argType"+a+".toWireType("+P+", arg"+a+"); // "+t[a+2].name+` +`,m.push("argType"+a),w.push(t[a+2]);if(A&&(M="thisWired"+(M.length>0?", ":"")+M),N+=(u?"var rv = ":"")+"invoker(fn"+(M.length>0?", ":"")+M+`); +`,R)N+=`runDestructors(destructors); +`;else for(var a=A?1:2;a<t.length;++a){var W=a===1?"thisWired":"arg"+(a-2)+"Wired";t[a].destructorFunction!==null&&(N+=W+"_dtor("+W+"); // "+t[a].name+` +`,m.push(W+"_dtor"),w.push(t[a].destructorFunction))}u&&(N+=`var ret = retType.fromWireType(rv); +return ret; +`),N+=`} +`,m.push(N);var Q=Zt(Function,m).apply(null,w);return Q}function A_(e,t,n,_,o,c,A,R){var a=Ft(n,_);t=h(t),c=z(o,c),ae([],[e],function(u){u=u[0];var O=u.name+"."+t;R&&u.registeredClass.pureVirtualFunctions.push(t);function M(){tt("Cannot call "+O+" due to unbound types",a)}var N=u.registeredClass.instancePrototype,P=N[t];return P===void 0||P.overloadTable===void 0&&P.className!==u.name&&P.argCount===n-2?(M.argCount=n-2,M.className=u.name,N[t]=M):(Wt(N,t,O),N[t].overloadTable[n-2]=M),ae([],a,function(m){var w=Qt(O,m,u,c,A);return N[t].overloadTable===void 0?(w.argCount=n-2,N[t]=w):N[t].overloadTable[n-2]=w,[]}),[]})}function T_(e,t,n){e=h(e),ae([],[t],function(_){return _=_[0],r[e]=_.fromWireType(n),[]})}var dt=[],$=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Gt(e){e>4&&--$[e].refcount===0&&($[e]=void 0,dt.push(e))}function u_(){for(var e=0,t=5;t<$.length;++t)$[t]!==void 0&&++e;return e}function f_(){for(var e=5;e<$.length;++e)if($[e]!==void 0)return $[e];return null}function O_(){r.count_emval_handles=u_,r.get_first_emval=f_}function ne(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{var t=dt.length?dt.pop():$.length;return $[t]={refcount:1,value:e},t}}}function l_(e,t){t=h(t),Z(e,{name:t,fromWireType:function(n){var _=$[n].value;return Gt(n),_},toWireType:function(n,_){return ne(_)},argPackAdvance:8,readValueFromPointer:ve,destructorFunction:null})}function B_(e,t,n){switch(t){case 0:return function(_){var o=n?L:U;return this.fromWireType(o[_])};case 1:return function(_){var o=n?ee:Re;return this.fromWireType(o[_>>1])};case 2:return function(_){var o=n?x:q;return this.fromWireType(o[_>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function M_(e,t,n,_){var o=Je(n);t=h(t);function c(){}c.values={},Z(e,{name:t,constructor:c,fromWireType:function(A){return this.constructor.values[A]},toWireType:function(A,R){return R.value},argPackAdvance:8,readValueFromPointer:B_(t,o,_),destructorFunction:null}),Kt(t,c)}function nt(e,t){var n=ue[e];return n===void 0&&G(t+" has unknown type "+qt(e)),n}function K_(e,t,n){var _=nt(e,"enum");t=h(t);var o=_.constructor,c=Object.create(_.constructor.prototype,{value:{value:n},constructor:{value:Ze(_.name+"_"+t,function(){})}});o.values[n]=c,o[t]=c}function Ce(e){if(e===null)return"null";var t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():""+e}function C_(e,t){switch(t){case 2:return function(n){return this.fromWireType(Ut[n>>2])};case 3:return function(n){return this.fromWireType(ht[n>>3])};default:throw new TypeError("Unknown float type: "+e)}}function F_(e,t,n){var _=Je(n);t=h(t),Z(e,{name:t,fromWireType:function(o){return o},toWireType:function(o,c){if(typeof c!="number"&&typeof c!="boolean")throw new TypeError('Cannot convert "'+Ce(c)+'" to '+this.name);return c},argPackAdvance:8,readValueFromPointer:C_(t,_),destructorFunction:null})}function d_(e,t,n,_,o,c){var A=Ft(t,n);e=h(e),o=z(_,o),Kt(e,function(){tt("Cannot call "+e+" due to unbound types",A)},t-1),ae([],A,function(R){var a=[R[0],null].concat(R.slice(1));return Yt(e,Qt(e,a,null,o,c),t-1),[]})}function G_(e,t,n){switch(t){case 0:return n?function(o){return L[o]}:function(o){return U[o]};case 1:return n?function(o){return ee[o>>1]}:function(o){return Re[o>>1]};case 2:return n?function(o){return x[o>>2]}:function(o){return q[o>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function S_(e,t,n,_,o){t=h(t),o===-1&&(o=4294967295);var c=Je(n),A=function(u){return u};if(_===0){var R=32-8*n;A=function(u){return u<<R>>>R}}var a=t.indexOf("unsigned")!=-1;Z(e,{name:t,fromWireType:A,toWireType:function(u,O){if(typeof O!="number"&&typeof O!="boolean")throw new TypeError('Cannot convert "'+Ce(O)+'" to '+this.name);if(O<_||O>o)throw new TypeError('Passing a number "'+Ce(O)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+_+", "+o+"]!");return a?O>>>0:O|0},argPackAdvance:8,readValueFromPointer:G_(t,c,_!==0),destructorFunction:null})}function N_(e,t,n){var _=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],o=_[t];function c(A){A=A>>2;var R=q,a=R[A],u=R[A+1];return new o(g,u,a)}n=h(n),Z(e,{name:n,fromWireType:c,argPackAdvance:8,readValueFromPointer:c},{ignoreDuplicateRegistrations:!0})}function E_(e,t){t=h(t);var n=t==="std::string";Z(e,{name:t,fromWireType:function(_){var o=q[_>>2],c;if(n)for(var A=_+4,R=0;R<=o;++R){var a=_+4+R;if(R==o||U[a]==0){var u=a-A,O=Ee(A,u);c===void 0?c=O:(c+="\0",c+=O),A=a+1}}else{for(var M=new Array(o),R=0;R<o;++R)M[R]=String.fromCharCode(U[_+4+R]);c=M.join("")}return _e(_),c},toWireType:function(_,o){o instanceof ArrayBuffer&&(o=new Uint8Array(o));var c,A=typeof o=="string";A||o instanceof Uint8Array||o instanceof Uint8ClampedArray||o instanceof Int8Array||G("Cannot pass non-string to std::string"),n&&A?c=function(){return xe(o)}:c=function(){return o.length};var R=c(),a=Nt(4+R+1);if(q[a>>2]=R,n&&A)Rt(o,a+4,R+1);else if(A)for(var u=0;u<R;++u){var O=o.charCodeAt(u);O>255&&(_e(a),G("String has UTF-16 code units that do not fit in 8 bits")),U[a+4+u]=O}else for(var u=0;u<R;++u)U[a+4+u]=o[u];return _!==null&&_.push(_e,a),a},argPackAdvance:8,readValueFromPointer:ve,destructorFunction:function(_){_e(_)}})}function V_(e,t,n){n=h(n);var _,o,c,A,R;t===2?(_=ke,o=$e,A=at,c=function(){return Re},R=1):t===4&&(_=ct,o=At,A=Tt,c=function(){return q},R=2),Z(e,{name:n,fromWireType:function(a){for(var u=q[a>>2],O=c(),M,N=a+4,P=0;P<=u;++P){var m=a+4+P*t;if(P==u||O[m>>R]==0){var w=m-N,W=_(N,w);M===void 0?M=W:(M+="\0",M+=W),N=m+t}}return _e(a),M},toWireType:function(a,u){typeof u!="string"&&G("Cannot pass non-string to C++ string type "+n);var O=A(u),M=Nt(4+O+t);return q[M>>2]=O>>R,o(u,M+4,O+t),a!==null&&a.push(_e,M),M},argPackAdvance:8,readValueFromPointer:ve,destructorFunction:function(a){_e(a)}})}function P_(e,t,n,_,o,c){je[e]={name:h(t),rawConstructor:z(n,_),rawDestructor:z(o,c),fields:[]}}function p_(e,t,n,_,o,c,A,R,a,u){je[e].fields.push({fieldName:h(t),getterReturnType:n,getter:z(_,o),getterContext:c,setterArgumentType:A,setter:z(R,a),setterContext:u})}function v_(e,t){t=h(t),Z(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType:function(){},toWireType:function(n,_){}})}function Le(e){return e||G("Cannot use deleted val. handle = "+e),$[e].value}function U_(e,t,n){e=Le(e),t=nt(t,"emval::as");var _=[],o=ne(_);return x[n>>2]=o,t.toWireType(_,e)}var h_={};function _t(e){var t=h_[e];return t===void 0?h(e):t}var St=[];function y_(e,t,n,_){e=St[e],t=Le(t),n=_t(n),e(t,n,null,_)}function Jt(){return typeof globalThis=="object"?globalThis:(function(){return Function})()("return this")()}function g_(e){return e===0?ne(Jt()):(e=_t(e),ne(Jt()[e]))}function L_(e){var t=St.length;return St.push(e),t}function m_(e,t){for(var n=new Array(e),_=0;_<e;++_)n[_]=nt(x[(t>>2)+_],"parameter "+_);return n}function D_(e,t){for(var n=m_(e,t),_=n[0],o=_.name+"_$"+n.slice(1).map(function(P){return P.name}).join("_")+"$",c=["retType"],A=[_],R="",a=0;a<e-1;++a)R+=(a!==0?", ":"")+"arg"+a,c.push("argType"+a),A.push(n[1+a]);for(var u=qe("methodCaller_"+o),O="return function "+u+`(handle, name, destructors, args) { +`,M=0,a=0;a<e-1;++a)O+=" var arg"+a+" = argType"+a+".readValueFromPointer(args"+(M?"+"+M:"")+`); +`,M+=n[a+1].argPackAdvance;O+=" var rv = handle[name]("+R+`); +`;for(var a=0;a<e-1;++a)n[a+1].deleteObject&&(O+=" argType"+a+".deleteObject(arg"+a+`); +`);_.isVoid||(O+=` return retType.toWireType(destructors, rv); +`),O+=`}; +`,c.push(O);var N=Zt(Function,c).apply(null,A);return L_(N)}function I_(e){return e=_t(e),ne(r[e])}function b_(e,t){return e=Le(e),t=Le(t),ne(e[t])}function w_(e){e>4&&($[e].refcount+=1)}function H_(e){for(var t="",n=0;n<e;++n)t+=(n!==0?", ":"")+"arg"+n;for(var _="return function emval_allocator_"+e+`(constructor, argTypes, args) { +`,n=0;n<e;++n)_+="var argType"+n+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+n+'], "parameter '+n+`"); +var arg`+n+" = argType"+n+`.readValueFromPointer(args); +args += argType`+n+`['argPackAdvance']; +`;return _+="var obj = new constructor("+t+`); +return __emval_register(obj); +} +`,new Function("requireRegisteredType","Module","__emval_register",_)(nt,r,ne)}var en={};function X_(e,t,n,_){e=Le(e);var o=en[t];return o||(o=H_(t),en[t]=o),o(e,n,_)}function x_(e){return ne(_t(e))}function k_(e){var t=$[e].value;Ye(t),Gt(e)}function $_(){Be()}function W_(e,t,n){U.copyWithin(e,t,t+n)}function j_(e){try{return le.grow(e-g.byteLength+65535>>>16),yt(le.buffer),1}catch{}}function Y_(e){var t=U.length;e=e>>>0;var n=2147483648;if(e>n)return!1;for(var _=1;_<=4;_*=2){var o=t*(1+.2/_);o=Math.min(o,e+100663296);var c=Math.min(n,ut(Math.max(e,o),65536)),A=j_(c);if(A)return!0}return!1}var rt={mappings:{},buffers:[null,[],[]],printChar:function(e,t){var n=rt.buffers[e];t===0||t===10?((e===1?it:oe)(Ne(n,0)),n.length=0):n.push(t)},varargs:void 0,get:function(){rt.varargs+=4;var e=x[rt.varargs-4>>2];return e},getStr:function(e){var t=Ee(e);return t},get64:function(e,t){return e}};function z_(e){return 0}function q_(e,t,n,_,o){}function Z_(e,t,n,_){for(var o=0,c=0;c<n;c++){for(var A=x[t+c*8>>2],R=x[t+(c*8+4)>>2],a=0;a<R;a++)rt.printChar(e,U[A+a]);o+=R}return x[_>>2]=o,0}function Q_(e){we(e|0)}Ht=r.InternalError=Ot(Error,"InternalError"),Ln(),Ke=r.BindingError=Ot(Error,"BindingError"),kn(),s_(),t_(),zt=r.UnboundTypeError=Ot(Error,"UnboundTypeError"),O_();var J_={t:gn,I:mn,x:a_,w:c_,d:A_,k:T_,H:l_,n:M_,a:K_,A:F_,i:d_,j:S_,h:N_,B:E_,v:V_,u:P_,c:p_,J:v_,m:U_,s:y_,b:Gt,y:g_,p:D_,r:I_,e:b_,g:w_,q:X_,f:x_,l:k_,o:$_,E:W_,F:Y_,G:z_,C:q_,z:Z_,D:Q_},fr=Un(),er=r.___wasm_call_ctors=function(){return(er=r.___wasm_call_ctors=r.asm.L).apply(null,arguments)},Nt=r._malloc=function(){return(Nt=r._malloc=r.asm.M).apply(null,arguments)},_e=r._free=function(){return(_e=r._free=r.asm.N).apply(null,arguments)},tn=r.___getTypeName=function(){return(tn=r.___getTypeName=r.asm.P).apply(null,arguments)},tr=r.___embind_register_native_and_builtin_types=function(){return(tr=r.___embind_register_native_and_builtin_types=r.asm.Q).apply(null,arguments)},nr=r.dynCall_jiji=function(){return(nr=r.dynCall_jiji=r.asm.R).apply(null,arguments)},st;function _r(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}pe=function e(){st||Et(),st||(pe=e)};function Et(e){if(e=e||D,Te>0||(Kn(),Te>0))return;function t(){st||(st=!0,r.calledRun=!0,!ie&&(Cn(),Fn(),B(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),dn()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),t()},1)):t()}if(r.run=Et,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Et(),T.ready})})();typeof ot=="object"&&typeof pt=="object"?pt.exports=Pt:typeof define=="function"&&define.amd?define([],function(){return Pt}):typeof ot=="object"&&(ot.BASIS=Pt)});var K={UNSIGNED_BYTE:f.UNSIGNED_BYTE,UNSIGNED_SHORT:f.UNSIGNED_SHORT,UNSIGNED_INT:f.UNSIGNED_INT,FLOAT:f.FLOAT,HALF_FLOAT:f.HALF_FLOAT_OES,UNSIGNED_INT_24_8:f.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:f.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:f.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:f.UNSIGNED_SHORT_5_6_5};K.toWebGLConstant=function(s,T){switch(s){case K.UNSIGNED_BYTE:return f.UNSIGNED_BYTE;case K.UNSIGNED_SHORT:return f.UNSIGNED_SHORT;case K.UNSIGNED_INT:return f.UNSIGNED_INT;case K.FLOAT:return f.FLOAT;case K.HALF_FLOAT:return T.webgl2?f.HALF_FLOAT:f.HALF_FLOAT_OES;case K.UNSIGNED_INT_24_8:return f.UNSIGNED_INT_24_8;case K.UNSIGNED_SHORT_4_4_4_4:return f.UNSIGNED_SHORT_4_4_4_4;case K.UNSIGNED_SHORT_5_5_5_1:return f.UNSIGNED_SHORT_5_5_5_1;case K.UNSIGNED_SHORT_5_6_5:return K.UNSIGNED_SHORT_5_6_5}};K.isPacked=function(s){return s===K.UNSIGNED_INT_24_8||s===K.UNSIGNED_SHORT_4_4_4_4||s===K.UNSIGNED_SHORT_5_5_5_1||s===K.UNSIGNED_SHORT_5_6_5};K.sizeInBytes=function(s){switch(s){case K.UNSIGNED_BYTE:return 1;case K.UNSIGNED_SHORT:case K.UNSIGNED_SHORT_4_4_4_4:case K.UNSIGNED_SHORT_5_5_5_1:case K.UNSIGNED_SHORT_5_6_5:case K.HALF_FLOAT:return 2;case K.UNSIGNED_INT:case K.FLOAT:case K.UNSIGNED_INT_24_8:return 4}};K.validate=function(s){return s===K.UNSIGNED_BYTE||s===K.UNSIGNED_SHORT||s===K.UNSIGNED_INT||s===K.FLOAT||s===K.HALF_FLOAT||s===K.UNSIGNED_INT_24_8||s===K.UNSIGNED_SHORT_4_4_4_4||s===K.UNSIGNED_SHORT_5_5_5_1||s===K.UNSIGNED_SHORT_5_6_5};K.getTypedArrayConstructor=function(s){let T=K.sizeInBytes(s);return T===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:T===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:T===Float32Array.BYTES_PER_ELEMENT&&s===K.FLOAT?Float32Array:Uint32Array};Object.freeze(K);var y=K;var i={DEPTH_COMPONENT:f.DEPTH_COMPONENT,DEPTH_STENCIL:f.DEPTH_STENCIL,ALPHA:f.ALPHA,RED:f.RED,RG:f.RG,RGB:f.RGB,RGBA:f.RGBA,RED_INTEGER:f.RED_INTEGER,RG_INTEGER:f.RG_INTEGER,RGB_INTEGER:f.RGB_INTEGER,RGBA_INTEGER:f.RGBA_INTEGER,LUMINANCE:f.LUMINANCE,LUMINANCE_ALPHA:f.LUMINANCE_ALPHA,RGB_DXT1:f.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:f.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:f.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:f.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:f.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:f.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:f.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:f.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:f.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:f.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:f.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:f.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:f.COMPRESSED_RGBA_BPTC_UNORM};i.componentsLength=function(s){switch(s){case i.RGB:case i.RGB_INTEGER:return 3;case i.RGBA:case i.RGBA_INTEGER:return 4;case i.LUMINANCE_ALPHA:case i.RG:case i.RG_INTEGER:return 2;case i.ALPHA:case i.RED:case i.RED_INTEGER:case i.LUMINANCE:return 1;default:return 1}};i.validate=function(s){return s===i.DEPTH_COMPONENT||s===i.DEPTH_STENCIL||s===i.ALPHA||s===i.RED||s===i.RG||s===i.RGB||s===i.RGBA||s===i.RED_INTEGER||s===i.RG_INTEGER||s===i.RGB_INTEGER||s===i.RGBA_INTEGER||s===i.LUMINANCE||s===i.LUMINANCE_ALPHA||s===i.RGB_DXT1||s===i.RGBA_DXT1||s===i.RGBA_DXT3||s===i.RGBA_DXT5||s===i.RGB_PVRTC_4BPPV1||s===i.RGB_PVRTC_2BPPV1||s===i.RGBA_PVRTC_4BPPV1||s===i.RGBA_PVRTC_2BPPV1||s===i.RGBA_ASTC||s===i.RGB_ETC1||s===i.RGB8_ETC2||s===i.RGBA8_ETC2_EAC||s===i.RGBA_BC7};i.isColorFormat=function(s){return s===i.RED||s===i.ALPHA||s===i.RGB||s===i.RGBA||s===i.LUMINANCE||s===i.LUMINANCE_ALPHA};i.isDepthFormat=function(s){return s===i.DEPTH_COMPONENT||s===i.DEPTH_STENCIL};i.isCompressedFormat=function(s){return s===i.RGB_DXT1||s===i.RGBA_DXT1||s===i.RGBA_DXT3||s===i.RGBA_DXT5||s===i.RGB_PVRTC_4BPPV1||s===i.RGB_PVRTC_2BPPV1||s===i.RGBA_PVRTC_4BPPV1||s===i.RGBA_PVRTC_2BPPV1||s===i.RGBA_ASTC||s===i.RGB_ETC1||s===i.RGB8_ETC2||s===i.RGBA8_ETC2_EAC||s===i.RGBA_BC7};i.isDXTFormat=function(s){return s===i.RGB_DXT1||s===i.RGBA_DXT1||s===i.RGBA_DXT3||s===i.RGBA_DXT5};i.isPVRTCFormat=function(s){return s===i.RGB_PVRTC_4BPPV1||s===i.RGB_PVRTC_2BPPV1||s===i.RGBA_PVRTC_4BPPV1||s===i.RGBA_PVRTC_2BPPV1};i.isASTCFormat=function(s){return s===i.RGBA_ASTC};i.isETC1Format=function(s){return s===i.RGB_ETC1};i.isETC2Format=function(s){return s===i.RGB8_ETC2||s===i.RGBA8_ETC2_EAC};i.isBC7Format=function(s){return s===i.RGBA_BC7};i.compressedTextureSizeInBytes=function(s,T,r){switch(s){case i.RGB_DXT1:case i.RGBA_DXT1:case i.RGB_ETC1:case i.RGB8_ETC2:return Math.floor((T+3)/4)*Math.floor((r+3)/4)*8;case i.RGBA_DXT3:case i.RGBA_DXT5:case i.RGBA_ASTC:case i.RGBA8_ETC2_EAC:return Math.floor((T+3)/4)*Math.floor((r+3)/4)*16;case i.RGB_PVRTC_4BPPV1:case i.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(T,8)*Math.max(r,8)*4+7)/8);case i.RGB_PVRTC_2BPPV1:case i.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(T,16)*Math.max(r,8)*2+7)/8);case i.RGBA_BC7:return Math.ceil(T/4)*Math.ceil(r/4)*16;default:return 0}};i.textureSizeInBytes=function(s,T,r,B){let l=i.componentsLength(s);return y.isPacked(T)&&(l=1),l*y.sizeInBytes(T)*r*B};i.texture3DSizeInBytes=function(s,T,r,B,l){let p=i.componentsLength(s);return y.isPacked(T)&&(p=1),p*y.sizeInBytes(T)*r*B*l};i.alignmentInBytes=function(s,T,r){let B=i.textureSizeInBytes(s,T,r,1)%4;return B===0?4:B===2?2:1};i.createTypedArray=function(s,T,r,B){let l=y.getTypedArrayConstructor(T),p=i.componentsLength(s)*r*B;return new l(p)};i.flipY=function(s,T,r,B,l){if(l===1)return s;let p=i.createTypedArray(T,r,B,l),F=i.componentsLength(T),D=B*F;for(let I=0;I<l;++I){let b=I*B*F,E=(l-I-1)*B*F;for(let S=0;S<D;++S)p[E+S]=s[b+S]}return p};i.toInternalFormat=function(s,T,r){if(!r.webgl2)return s;if(s===i.DEPTH_STENCIL)return f.DEPTH24_STENCIL8;if(s===i.DEPTH_COMPONENT){if(T===y.UNSIGNED_SHORT)return f.DEPTH_COMPONENT16;if(T===y.UNSIGNED_INT)return f.DEPTH_COMPONENT24}if(T===y.FLOAT)switch(s){case i.RGBA:return f.RGBA32F;case i.RGB:return f.RGB32F;case i.RG:return f.RG32F;case i.RED:return f.R32F}if(T===y.HALF_FLOAT)switch(s){case i.RGBA:return f.RGBA16F;case i.RGB:return f.RGB16F;case i.RG:return f.RG16F;case i.RED:return f.R16F}if(T===y.UNSIGNED_BYTE)switch(s){case i.RGBA:return f.RGBA8;case i.RGB:return f.RGB8;case i.RG:return f.RG8;case i.RED:return f.R8}if(T===y.INT)switch(s){case i.RGBA_INTEGER:return f.RGBA32I;case i.RGB_INTEGER:return f.RGB32I;case i.RG_INTEGER:return f.RG32I;case i.RED_INTEGER:return f.R32I}if(T===y.UNSIGNED_INT)switch(s){case i.RGBA_INTEGER:return f.RGBA32UI;case i.RGB_INTEGER:return f.RGB32UI;case i.RG_INTEGER:return f.RG32UI;case i.RED_INTEGER:return f.R32UI}return s};Object.freeze(i);var v=i;var Rn={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033};Object.freeze(Rn);var Ie=Rn;function ir(){return{vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null}}var fe=class{constructor(T,r,B,l){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(T.buffer,T.byteOffset+r,B),this._littleEndian=l,this._offset=0}_nextUint8(){let T=this._dataView.getUint8(this._offset);return this._offset+=1,T}_nextUint16(){let T=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,T}_nextUint32(){let T=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,T}_nextUint64(){let T=this._dataView.getUint32(this._offset,this._littleEndian),r=this._dataView.getUint32(this._offset+4,this._littleEndian),B=T+2**32*r;return this._offset+=8,B}_nextInt32(){let T=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,T}_nextUint8Array(T){let r=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,T);return this._offset+=T,r}_skip(T){return this._offset+=T,this}_scan(T,r=0){let B=this._offset,l=0;for(;this._dataView.getUint8(this._offset)!==r&&l<T;)l++,this._offset++;return l<T&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+B,l)}};var Fr=new Uint8Array([0]),H=[171,75,84,88,32,50,48,187,13,10,26,10];function an(s){return new TextDecoder().decode(s)}function cn(s){let T=new Uint8Array(s.buffer,s.byteOffset,H.length);if(T[0]!==H[0]||T[1]!==H[1]||T[2]!==H[2]||T[3]!==H[3]||T[4]!==H[4]||T[5]!==H[5]||T[6]!==H[6]||T[7]!==H[7]||T[8]!==H[8]||T[9]!==H[9]||T[10]!==H[10]||T[11]!==H[11])throw new Error("Missing KTX 2.0 identifier.");let r=ir(),B=17*Uint32Array.BYTES_PER_ELEMENT,l=new fe(s,H.length,B,!0);r.vkFormat=l._nextUint32(),r.typeSize=l._nextUint32(),r.pixelWidth=l._nextUint32(),r.pixelHeight=l._nextUint32(),r.pixelDepth=l._nextUint32(),r.layerCount=l._nextUint32(),r.faceCount=l._nextUint32(),r.levelCount=l._nextUint32(),r.supercompressionScheme=l._nextUint32();let p=l._nextUint32(),F=l._nextUint32(),D=l._nextUint32(),I=l._nextUint32(),b=l._nextUint64(),E=l._nextUint64(),S=Math.max(r.levelCount,1)*3*8,V=new fe(s,H.length+B,S,!0);for(let g=0,L=Math.max(r.levelCount,1);g<L;g++)r.levels.push({levelData:new Uint8Array(s.buffer,s.byteOffset+V._nextUint64(),V._nextUint64()),uncompressedByteLength:V._nextUint64()});let C=new fe(s,p,F,!0);C._skip(4);let d=C._nextUint16(),j=C._nextUint16(),J=C._nextUint16(),Ae=C._nextUint16(),Y=C._nextUint8(),Fe=C._nextUint8(),de=C._nextUint8(),Ge=C._nextUint8(),it=[C._nextUint8(),C._nextUint8(),C._nextUint8(),C._nextUint8()],oe=[C._nextUint8(),C._nextUint8(),C._nextUint8(),C._nextUint8(),C._nextUint8(),C._nextUint8(),C._nextUint8(),C._nextUint8()],we={vendorId:d,descriptorType:j,versionNumber:J,colorModel:Y,colorPrimaries:Fe,transferFunction:de,flags:Ge,texelBlockDimension:it,bytesPlane:oe,samples:[]},le=(Ae/4-6)/4;for(let g=0;g<le;g++){let L={bitOffset:C._nextUint16(),bitLength:C._nextUint8(),channelType:C._nextUint8(),samplePosition:[C._nextUint8(),C._nextUint8(),C._nextUint8(),C._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};L.channelType&64?(L.sampleLower=C._nextInt32(),L.sampleUpper=C._nextInt32()):(L.sampleLower=C._nextUint32(),L.sampleUpper=C._nextUint32()),we.samples[g]=L}r.dataFormatDescriptor.length=0,r.dataFormatDescriptor.push(we);let ie=new fe(s,D,I,!0);for(;ie._offset<I;){let g=ie._nextUint32(),L=ie._scan(g),U=an(L);if(r.keyValue[U]=ie._nextUint8Array(g-L.byteLength-1),U.match(/^ktx/i)){let Re=an(r.keyValue[U]);r.keyValue[U]=Re.substring(0,Re.lastIndexOf("\0"))}let ee=g%4?4-g%4:0;ie._skip(ee)}if(E<=0)return r;let X=new fe(s,b,E,!0),Se=X._nextUint16(),He=X._nextUint16(),Ne=X._nextUint32(),Ee=X._nextUint32(),Xe=X._nextUint32(),Rt=X._nextUint32(),xe=[];for(let g=0,L=Math.max(r.levelCount,1);g<L;g++)xe.push({imageFlags:X._nextUint32(),rgbSliceByteOffset:X._nextUint32(),rgbSliceByteLength:X._nextUint32(),alphaSliceByteOffset:X._nextUint32(),alphaSliceByteLength:X._nextUint32()});let Ve=b+X._offset,ke=Ve+Ne,$e=ke+Ee,at=$e+Xe,ct=new Uint8Array(s.buffer,s.byteOffset+Ve,Ne),At=new Uint8Array(s.buffer,s.byteOffset+ke,Ee),Tt=new Uint8Array(s.buffer,s.byteOffset+$e,Xe),ut=new Uint8Array(s.buffer,s.byteOffset+at,Rt);return r.globalData={endpointCount:Se,selectorCount:He,imageDescs:xe,endpointsData:ct,selectorsData:At,tablesData:Tt,extendedData:ut},r}var Tn=or(An(),1),un=["positiveX","negativeX","positiveY","negativeY","positiveZ","negativeZ"],fn=163,On=166,be;function Rr(s,T){sn.typeOf.object("transcoderModule",be);let r=s.ktx2Buffer,B=s.supportedTargetFormats,l;try{l=cn(r)}catch{throw new se("Invalid KTX2 file.")}if(l.layerCount!==0)throw new se("KTX2 texture arrays are not supported.");if(l.pixelDepth!==0)throw new se("KTX2 3D textures are unsupported.");let p=l.dataFormatDescriptor[0],F=new Array(l.levelCount);return l.vkFormat===0&&(p.colorModel===fn||p.colorModel===On)?cr(r,l,B,be,T,F):(T.push(r.buffer),ar(l,F)),F}function ar(s,T){let r=s.vkFormat===Ie.VK_FORMAT_R8G8B8_SRGB?v.RGB:v.RGBA,B;s.vkFormat===Ie.VK_FORMAT_R8G8B8A8_UNORM?B=y.UNSIGNED_BYTE:s.vkFormat===Ie.VK_FORMAT_R16G16B16A16_SFLOAT?B=y.HALF_FLOAT:s.vkFormat===Ie.VK_FORMAT_R32G32B32A32_SFLOAT&&(B=y.FLOAT);for(let l=0;l<s.levels.length;++l){let p={};T[l]=p;let F=s.levels[l].levelData,D=s.pixelWidth>>l,I=s.pixelHeight>>l,b=D*I*v.componentsLength(r);for(let E=0;E<s.faceCount;++E){let S=F.byteOffset+b*s.typeSize*E,V;!De(B)||y.sizeInBytes(B)===1?V=new Uint8Array(F.buffer,S,b):y.sizeInBytes(B)===2?V=new Uint16Array(F.buffer,S,b):V=new Float32Array(F.buffer,S,b),p[un[E]]={internalFormat:r,datatype:B,width:D,height:I,levelBuffer:V}}}}function cr(s,T,r,B,l,p){let F=new B.KTX2File(s),D=F.getWidth(),I=F.getHeight(),b=F.getLevels(),E=F.getHasAlpha();if(!(D>0)||!(I>0)||!(b>0))throw F.close(),F.delete(),new se("Invalid KTX2 file");let S,V,C=T.dataFormatDescriptor[0],d=B.transcoder_texture_format;if(C.colorModel===fn)if(r.etc)S=E?v.RGBA8_ETC2_EAC:v.RGB8_ETC2,V=E?d.cTFETC2_RGBA:d.cTFETC1_RGB;else if(r.etc1&&!E)S=v.RGB_ETC1,V=d.cTFETC1_RGB;else if(r.s3tc)S=E?v.RGBA_DXT5:v.RGB_DXT1,V=E?d.cTFBC3_RGBA:d.cTFBC1_RGB;else if(r.pvrtc)S=E?v.RGBA_PVRTC_4BPPV1:v.RGB_PVRTC_4BPPV1,V=E?d.cTFPVRTC1_4_RGBA:d.cTFPVRTC1_4_RGB;else if(r.astc)S=v.RGBA_ASTC,V=d.cTFASTC_4x4_RGBA;else if(r.bc7)S=v.RGBA_BC7,V=d.cTFBC7_RGBA;else throw new se("No transcoding format target available for ETC1S compressed ktx2.");else if(C.colorModel===On)if(r.astc)S=v.RGBA_ASTC,V=d.cTFASTC_4x4_RGBA;else if(r.bc7)S=v.RGBA_BC7,V=d.cTFBC7_RGBA;else if(r.s3tc)S=E?v.RGBA_DXT5:v.RGB_DXT1,V=E?d.cTFBC3_RGBA:d.cTFBC1_RGB;else if(r.etc)S=E?v.RGBA8_ETC2_EAC:v.RGB8_ETC2,V=E?d.cTFETC2_RGBA:d.cTFETC1_RGB;else if(r.etc1&&!E)S=v.RGB_ETC1,V=d.cTFETC1_RGB;else if(r.pvrtc)S=E?v.RGBA_PVRTC_4BPPV1:v.RGB_PVRTC_4BPPV1,V=E?d.cTFPVRTC1_4_RGBA:d.cTFPVRTC1_4_RGB;else throw new se("No transcoding format target available for UASTC compressed ktx2.");if(!F.startTranscoding())throw F.close(),F.delete(),new se("startTranscoding() failed");for(let j=0;j<T.levels.length;++j){let J={};p[j]=J,D=T.pixelWidth>>j,I=T.pixelHeight>>j;let Ae=F.getImageTranscodedSizeInBytes(j,0,0,V.value),Y=new Uint8Array(Ae),Fe=F.transcodeImage(Y,j,0,0,V.value,0,-1,-1);if(!De(Fe))throw new se("transcodeImage() failed.");l.push(Y.buffer),J[un[0]]={internalFormat:S,width:D,height:I,levelBuffer:Y}}return F.close(),F.delete(),p}async function Ar(s,T){let r=s.webAssemblyConfig,B=Tn.default??self.BASIS;return De(r.wasmBinaryFile)?be=await B(r):be=await B(),be.initializeBasis(),!0}function Tr(s,T){let r=s.webAssemblyConfig;return De(r)?Ar(s,T):Rr(s,T)}var Ur=on(Tr);export{Ur as default}; diff --git a/cesium/Workers/transferTypedArrayTest.js b/cesium/Workers/transferTypedArrayTest.js new file mode 100644 index 00000000..e91ac870 --- /dev/null +++ b/cesium/Workers/transferTypedArrayTest.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +self.onmessage=function(a){let s=a.data.array,e=self.webkitPostMessage||self.postMessage;try{e({array:s},[s.buffer])}catch{e({})}}; diff --git a/cesium/Workers/upsampleQuantizedTerrainMesh.js b/cesium/Workers/upsampleQuantizedTerrainMesh.js new file mode 100644 index 00000000..9ebb82f3 --- /dev/null +++ b/cesium/Workers/upsampleQuantizedTerrainMesh.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as be,c as Ne}from"./chunk-PYMQNHFO.js";import{a as Ae}from"./chunk-BKIYVF74.js";import{a as ue}from"./chunk-P5EFSOUF.js";import{a as ee}from"./chunk-G72JFEXW.js";import"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import{a as Ve}from"./chunk-4WQ4VT5S.js";import{c as de}from"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import{j as Se}from"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import{a as Ie,b as Z,c as Ce}from"./chunk-2AIOP76V.js";import{a as A}from"./chunk-IAE6APK2.js";import{a as N}from"./chunk-3E7FIXV7.js";import{a as V,b as q}from"./chunk-NZBME2JK.js";import{f}from"./chunk-6DLS2UKD.js";var ne={};ne.clipTriangleAtAxisAlignedThreshold=function(n,h,o,i,s,e){if(!f(n))throw new V("threshold is required.");if(!f(h))throw new V("keepAbove is required.");if(!f(o))throw new V("u0 is required.");if(!f(i))throw new V("u1 is required.");if(!f(s))throw new V("u2 is required.");f(e)?e.length=0:e=[];let g,w,c;h?(g=o<n,w=i<n,c=s<n):(g=o>n,w=i>n,c=s>n);let p=g+w+c,d,u,r,l,I,C;return p===1?g?(d=(n-o)/(i-o),u=(n-o)/(s-o),e.push(1),e.push(2),u!==1&&(e.push(-1),e.push(0),e.push(2),e.push(u)),d!==1&&(e.push(-1),e.push(0),e.push(1),e.push(d))):w?(r=(n-i)/(s-i),l=(n-i)/(o-i),e.push(2),e.push(0),l!==1&&(e.push(-1),e.push(1),e.push(0),e.push(l)),r!==1&&(e.push(-1),e.push(1),e.push(2),e.push(r))):c&&(I=(n-s)/(o-s),C=(n-s)/(i-s),e.push(0),e.push(1),C!==1&&(e.push(-1),e.push(2),e.push(1),e.push(C)),I!==1&&(e.push(-1),e.push(2),e.push(0),e.push(I))):p===2?!g&&o!==n?(l=(n-i)/(o-i),I=(n-s)/(o-s),e.push(0),e.push(-1),e.push(1),e.push(0),e.push(l),e.push(-1),e.push(2),e.push(0),e.push(I)):!w&&i!==n?(C=(n-s)/(i-s),d=(n-o)/(i-o),e.push(1),e.push(-1),e.push(2),e.push(1),e.push(C),e.push(-1),e.push(0),e.push(1),e.push(d)):!c&&s!==n&&(u=(n-o)/(s-o),r=(n-i)/(s-i),e.push(2),e.push(-1),e.push(0),e.push(2),e.push(u),e.push(-1),e.push(1),e.push(2),e.push(r)):p!==3&&(e.push(0),e.push(1),e.push(2)),e};ne.computeBarycentricCoordinates=function(n,h,o,i,s,e,g,w,c){if(!f(n))throw new V("x is required.");if(!f(h))throw new V("y is required.");if(!f(o))throw new V("x1 is required.");if(!f(i))throw new V("y1 is required.");if(!f(s))throw new V("x2 is required.");if(!f(e))throw new V("y2 is required.");if(!f(g))throw new V("x3 is required.");if(!f(w))throw new V("y3 is required.");let p=o-g,d=g-s,u=e-w,r=i-w,l=1/(u*p+d*r),I=h-w,C=n-g,R=(u*C+d*I)*l,O=(-r*C+p*I)*l,W=1-R-O;return f(c)?(c.x=R,c.y=O,c.z=W,c):new A(R,O,W)};ne.computeLineSegmentLineSegmentIntersection=function(n,h,o,i,s,e,g,w,c){q.typeOf.number("x00",n),q.typeOf.number("y00",h),q.typeOf.number("x01",o),q.typeOf.number("y01",i),q.typeOf.number("x10",s),q.typeOf.number("y10",e),q.typeOf.number("x11",g),q.typeOf.number("y11",w);let p=(g-s)*(h-e)-(w-e)*(n-s),d=(o-n)*(h-e)-(i-h)*(n-s),u=(w-e)*(o-n)-(g-s)*(i-h);if(u===0)return;let r=p/u,l=d/u;if(r>=0&&r<=1&&l>=0&&l<=1)return f(c)||(c=new Z),c.x=n+r*(o-n),c.y=h+r*(i-h),c};var ie=ne;var a=32767,z=a/2|0,Me=[],ze=[],Xe=[],te=new Ie,E=new A,Ke=[],We=[],Ye=[],Le=[],_e=[],Je=new A,Qe=new de,Ze=new ue,Ge=new Z,$e=new A;function je(n,h){let o=n.isEastChild,i=n.isNorthChild,s=o?z:0,e=o?a:z,g=i?z:0,w=i?a:z,c=Ke,p=We,d=Ye,u=_e;c.length=0,p.length=0,d.length=0,u.length=0;let r=Le;r.length=0;let l={},I=n.vertices,C=n.indices;C=C.subarray(0,n.indexCountWithoutSkirts);let R=Ne.clone(n.encoding),O=R.hasVertexNormals,W=0,Y=n.vertexCountWithoutSkirts,se=n.minimumHeight,ae=n.maximumHeight,D=new Array(Y),G=new Array(Y),L=new Array(Y),F=O?new Array(Y*2):void 0,$=20,H,t,k,x,y;for(t=0,k=0;t<Y;++t,k+=2){let v=R.decodeTextureCoordinates(I,t,Ge);if(H=R.decodeHeight(I,t),x=N.clamp(v.x*a|0,0,a),y=N.clamp(v.y*a|0,0,a),L[t]=N.clamp((H-se)/(ae-se)*a|0,0,a),x<$&&(x=0),y<$&&(y=0),a-x<$&&(x=a),a-y<$&&(y=a),D[t]=x,G[t]=y,O){let Q=R.getOctEncodedNormal(I,t,$e);F[k]=Q.x,F[k+1]=Q.y}(o&&x>=z||!o&&x<=z)&&(i&&y>=z||!i&&y<=z)&&(l[t]=W,c.push(x),p.push(y),d.push(L[t]),O&&(u.push(F[k]),u.push(F[k+1])),++W)}let T=[];T.push(new m),T.push(new m),T.push(new m);let B=[];B.push(new m),B.push(new m),B.push(new m);let b,j;for(t=0;t<C.length;t+=3){let v=C[t],Q=C[t+1],Be=C[t+2],De=D[v],Fe=D[Q],ke=D[Be];T[0].initializeIndexed(D,G,L,F,v),T[1].initializeIndexed(D,G,L,F,Q),T[2].initializeIndexed(D,G,L,F,Be);let P=ie.clipTriangleAtAxisAlignedThreshold(z,o,De,Fe,ke,Me);b=0,!(b>=P.length)&&(b=B[0].initializeFromClipResult(P,b,T),!(b>=P.length)&&(b=B[1].initializeFromClipResult(P,b,T),!(b>=P.length)&&(b=B[2].initializeFromClipResult(P,b,T),j=ie.clipTriangleAtAxisAlignedThreshold(z,i,B[0].getV(),B[1].getV(),B[2].getV(),ze),Oe(c,p,d,u,r,l,j,B,O),b<P.length&&(B[2].clone(B[1]),B[2].initializeFromClipResult(P,b,T),j=ie.clipTriangleAtAxisAlignedThreshold(z,i,B[0].getV(),B[1].getV(),B[2].getV(),ze),Oe(c,p,d,u,r,l,j,B,O)))))}let He=o?-a:0,qe=i?-a:0,me=[],ge=[],le=[],we=[],U=Number.MAX_VALUE,_=-U,M=Xe;M.length=0;let re=Ce.clone(n.ellipsoid),J=Se.clone(n.childRectangle),Ee=J.north,Re=J.south,ce=J.east,xe=J.west;for(ce<xe&&(ce+=N.TWO_PI),t=0;t<c.length;++t)x=Math.round(c[t]),x<=s?(me.push(t),x=0):x>=e?(le.push(t),x=a):x=x*2+He,c[t]=x,y=Math.round(p[t]),y<=g?(ge.push(t),y=0):y>=w?(we.push(t),y=a):y=y*2+qe,p[t]=y,H=N.lerp(se,ae,d[t]/a),H<U&&(U=H),H>_&&(_=H),d[t]=H,te.longitude=N.lerp(xe,ce,x/a),te.latitude=N.lerp(Re,Ee,y/a),te.height=H,re.cartographicToCartesian(te,E),M.push(E.x),M.push(E.y),M.push(E.z);let he=de.fromVertices(M,A.ZERO,3,Qe),Ue=ue.fromRectangle(J,U,_,re,Ze),ve=new be(re).computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid(he.center,M,3,he.center,U,Je),Pe=_-U,X=new Uint16Array(c.length+p.length+d.length);for(t=0;t<c.length;++t)X[t]=c[t];let fe=c.length;for(t=0;t<p.length;++t)X[fe+t]=p[t];for(fe+=p.length,t=0;t<d.length;++t)X[fe+t]=a*(d[t]-U)/Pe;let pe=Ve.createTypedArray(c.length,r),ye;if(O){let v=new Uint8Array(u);h.push(X.buffer,pe.buffer,v.buffer),ye=v.buffer}else h.push(X.buffer,pe.buffer);return{vertices:X.buffer,encodedNormals:ye,indices:pe.buffer,minimumHeight:U,maximumHeight:_,westIndices:me,southIndices:ge,eastIndices:le,northIndices:we,boundingSphere:he,orientedBoundingBox:Ue,horizonOcclusionPoint:ve}}function m(){this.vertexBuffer=void 0,this.index=void 0,this.first=void 0,this.second=void 0,this.ratio=void 0}m.prototype.clone=function(n){return f(n)||(n=new m),n.uBuffer=this.uBuffer,n.vBuffer=this.vBuffer,n.heightBuffer=this.heightBuffer,n.normalBuffer=this.normalBuffer,n.index=this.index,n.first=this.first,n.second=this.second,n.ratio=this.ratio,n};m.prototype.initializeIndexed=function(n,h,o,i,s){this.uBuffer=n,this.vBuffer=h,this.heightBuffer=o,this.normalBuffer=i,this.index=s,this.first=void 0,this.second=void 0,this.ratio=void 0};m.prototype.initializeFromClipResult=function(n,h,o){let i=h+1;return n[h]!==-1?o[n[h]].clone(this):(this.vertexBuffer=void 0,this.index=void 0,this.first=o[n[i]],++i,this.second=o[n[i]],++i,this.ratio=n[i],++i),i};m.prototype.getKey=function(){return this.isIndexed()?this.index:JSON.stringify({first:this.first.getKey(),second:this.second.getKey(),ratio:this.ratio})};m.prototype.isIndexed=function(){return f(this.index)};m.prototype.getH=function(){return f(this.index)?this.heightBuffer[this.index]:N.lerp(this.first.getH(),this.second.getH(),this.ratio)};m.prototype.getU=function(){return f(this.index)?this.uBuffer[this.index]:N.lerp(this.first.getU(),this.second.getU(),this.ratio)};m.prototype.getV=function(){return f(this.index)?this.vBuffer[this.index]:N.lerp(this.first.getV(),this.second.getV(),this.ratio)};var K=new Z,oe=-1,en=[new A,new A],nn=[new A,new A];function Te(n,h){++oe;let o=en[oe],i=nn[oe];return o=ee.octDecode(n.first.getNormalX(),n.first.getNormalY(),o),i=ee.octDecode(n.second.getNormalX(),n.second.getNormalY(),i),E=A.lerp(o,i,n.ratio,E),A.normalize(E,E),ee.octEncode(E,h),--oe,h}m.prototype.getNormalX=function(){return f(this.index)?this.normalBuffer[this.index*2]:(K=Te(this,K),K.x)};m.prototype.getNormalY=function(){return f(this.index)?this.normalBuffer[this.index*2+1]:(K=Te(this,K),K.y)};var S=[];S.push(new m);S.push(new m);S.push(new m);S.push(new m);function Oe(n,h,o,i,s,e,g,w,c){if(g.length===0)return;let p=0,d=0;for(;d<g.length;)d=S[p++].initializeFromClipResult(g,d,w);for(let u=0;u<p;++u){let r=S[u];if(r.isIndexed())r.newIndex=e[r.index],r.uBuffer=n,r.vBuffer=h,r.heightBuffer=o,c&&(r.normalBuffer=i);else{let l=r.getKey();if(f(e[l]))r.newIndex=e[l];else{let I=n.length;n.push(r.getU()),h.push(r.getV()),o.push(r.getH()),c&&(i.push(r.getNormalX()),i.push(r.getNormalY())),r.newIndex=I,e[l]=I}}}p===3?(s.push(S[0].newIndex),s.push(S[1].newIndex),s.push(S[2].newIndex)):p===4&&(s.push(S[0].newIndex),s.push(S[1].newIndex),s.push(S[2].newIndex),s.push(S[0].newIndex),s.push(S[2].newIndex),s.push(S[3].newIndex))}var An=Ae(je);export{An as default}; diff --git a/cesium/Workers/upsampleVerticesFromCesium3DTilesTerrain.js b/cesium/Workers/upsampleVerticesFromCesium3DTilesTerrain.js new file mode 100644 index 00000000..5240db80 --- /dev/null +++ b/cesium/Workers/upsampleVerticesFromCesium3DTilesTerrain.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.143.0 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as f}from"./chunk-E7EKLP3B.js";import"./chunk-W5OEMTMB.js";import"./chunk-PYMQNHFO.js";import{a as u}from"./chunk-BKIYVF74.js";import"./chunk-LN2UT4R3.js";import"./chunk-P5EFSOUF.js";import"./chunk-G72JFEXW.js";import"./chunk-BDWA46XV.js";import"./chunk-5VFNV3LW.js";import"./chunk-SRA5MBUT.js";import"./chunk-5AAMOBJK.js";import"./chunk-4WQ4VT5S.js";import"./chunk-D3TVNJ6W.js";import"./chunk-3VUCSHGU.js";import"./chunk-LNJEJFV5.js";import"./chunk-BPABSUDY.js";import"./chunk-ATKJRN2G.js";import"./chunk-RDX4QSUS.js";import"./chunk-G3GDHHWO.js";import"./chunk-2AIOP76V.js";import"./chunk-IAE6APK2.js";import"./chunk-3E7FIXV7.js";import"./chunk-NZBME2JK.js";import"./chunk-6DLS2UKD.js";function h(c,d){let e=f.upsampleMesh(c),t=e.vertices.buffer,i=e.indices.buffer,s=e.westIndicesSouthToNorth.buffer,o=e.southIndicesEastToWest.buffer,r=e.eastIndicesNorthToSouth.buffer,n=e.northIndicesWestToEast.buffer;return d.push(t,i,s,o,r,n),{verticesBuffer:t,indicesBuffer:i,vertexCountWithoutSkirts:e.vertexCountWithoutSkirts,indexCountWithoutSkirts:e.indexCountWithoutSkirts,encoding:e.encoding,westIndicesBuffer:s,southIndicesBuffer:o,eastIndicesBuffer:r,northIndicesBuffer:n,minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight,boundingSphere:e.boundingSphere3D,orientedBoundingBox:e.orientedBoundingBox,horizonOcclusionPoint:e.horizonOcclusionPoint}}var I=u(h);export{I as default}; diff --git a/index.html b/index.html index f5b8bce9..a4725922 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,9 @@ <!doctype html> <html lang="en"> <head> + <link rel="stylesheet" href="/cesium/Widgets/widgets.css"> + <script src="/cesium/Cesium.js"></script> + <meta charset="UTF-8"/> <link rel="icon" type="image/png" href="/satellite_1f6f0-fe0f.png"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> @@ -59,12 +62,12 @@ display: none !important; } </style> + <script type="module" crossorigin src="/assets/index-CKfIVXjp.js"></script> </head> <body> <div class="center"> <img class="rotating" src="/satellite_1f6f0-fe0f.png" width="512" height="512" alt="a rotating satellite indicating loading"/> </div> <div id="root"></div> -<script type="module" src="/src/main.jsx"></script> </body> </html> diff --git a/public/love-peace.svg b/love-peace.svg similarity index 100% rename from public/love-peace.svg rename to love-peace.svg diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index c9358991..00000000 --- a/package-lock.json +++ /dev/null @@ -1,7337 +0,0 @@ -{ - "name": "satellite-tracker", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "satellite-tracker", - "version": "0.0.0", - "dependencies": { - "axios": "^1.18.1", - "cesium": "^1.143.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "resium": "^1.24.0", - "satellite.js": "^7.0.1" - }, - "devDependencies": { - "@codecov/vite-plugin": "^2.0.1", - "@testing-library/dom": "^10.4.1", - "@testing-library/jest-dom": "^6.9.1", - "@testing-library/react": "^16.3.2", - "@types/react": "^19.0.12", - "@types/react-dom": "^19.0.4", - "@vitejs/plugin-react-swc": "^4.3.1", - "@vitest/coverage-v8": "^4.1.10", - "eslint": "^8.57.1", - "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.1.1", - "eslint-plugin-react-refresh": "^0.4.26", - "jsdom": "^29.1.1", - "vite": "^8.1.5", - "vite-plugin-cesium": "^1.2.23", - "vitest": "^4.0.3" - } - }, - "node_modules/@actions/core": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.1.tgz", - "integrity": "sha512-a6d/Nwahm9fliVGRhdhofo40HjHQasUPusmc7vBfyky+7Z+P2A1J68zyFVaNcEclc/Se+eO595oAr5nwEIoIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@actions/exec": "^3.0.0", - "@actions/http-client": "^4.0.0" - } - }, - "node_modules/@actions/exec": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-3.0.0.tgz", - "integrity": "sha512-6xH/puSoNBXb72VPlZVm7vQ+svQpFyA96qdDBvhB8eNZOE8LtPf9L4oAsfzK/crCL8YZ+19fKYVnM63Sl+Xzlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@actions/io": "^3.0.2" - } - }, - "node_modules/@actions/github": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@actions/github/-/github-9.1.1.tgz", - "integrity": "sha512-tL5JbYOBZHc0ngEnCsaDcryUizIUIlQyIMwy1Wkx93H5HzbBJ7TbiPx2PnFjBwZW0Vh05JmfFZhecE6gglYegA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@actions/http-client": "^3.0.2", - "@octokit/core": "^7.0.6", - "@octokit/plugin-paginate-rest": "^14.0.0", - "@octokit/plugin-rest-endpoint-methods": "^17.0.0", - "@octokit/request": "^10.0.7", - "@octokit/request-error": "^7.1.0", - "undici": "^6.23.0" - } - }, - "node_modules/@actions/github/node_modules/@actions/http-client": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-3.0.2.tgz", - "integrity": "sha512-JP38FYYpyqvUsz+Igqlc/JG6YO9PaKuvqjM3iGvaLqFnJ7TFmcLyy2IDrY0bI0qCQug8E9K+elv5ZNfw62ZJzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tunnel": "^0.0.6", - "undici": "^6.23.0" - } - }, - "node_modules/@actions/github/node_modules/undici": { - "version": "6.27.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz", - "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, - "node_modules/@actions/http-client": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.1.tgz", - "integrity": "sha512-+Nvd1ImaOZBSoPbsUtEhv+1z99H12xzncCkz0a3RuehINE81FZSe2QTj3uvAPTcJX/SCzUQHQ0D1GrPMbrPitg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tunnel": "^0.0.6", - "undici": "^6.23.0" - } - }, - "node_modules/@actions/http-client/node_modules/undici": { - "version": "6.27.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz", - "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, - "node_modules/@actions/io": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-3.0.2.tgz", - "integrity": "sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@adobe/css-tools": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.2.tgz", - "integrity": "sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@asamuzakjp/css-color": { - "version": "5.1.11", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", - "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/generational-cache": "^1.0.1", - "@csstools/css-calc": "^3.2.0", - "@csstools/css-color-parser": "^4.1.0", - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/@asamuzakjp/dom-selector": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", - "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/generational-cache": "^1.0.1", - "@asamuzakjp/nwsapi": "^2.3.9", - "bidi-js": "^1.0.3", - "css-tree": "^3.2.1", - "is-potential-custom-element-name": "^1.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/@asamuzakjp/generational-cache": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz", - "integrity": "sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", - "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", - "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.4", - "@babel/types": "^7.28.4", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", - "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", - "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@bramus/specificity": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", - "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tree": "^3.0.0" - }, - "bin": { - "specificity": "bin/cli.js" - } - }, - "node_modules/@cesium/engine": { - "version": "26.1.0", - "resolved": "https://registry.npmjs.org/@cesium/engine/-/engine-26.1.0.tgz", - "integrity": "sha512-WzeJEcmGD7/htBJ8JEZt95OgZjErPwUHqyAlJY/mCzmDm7hfwpuucLBSUhiynWW3khqBT1C7dhibjb7tdic7oA==", - "license": "Apache-2.0", - "dependencies": { - "@cesium/wasm-splats": "^0.1.0-alpha.2", - "@spz-loader/core": "0.3.1", - "@tweenjs/tween.js": "^25.0.0", - "@zip.js/zip.js": "^2.8.1", - "autolinker": "^4.0.0", - "bitmap-sdf": "^1.0.3", - "dompurify": "^3.3.0", - "draco3d": "^1.5.1", - "earcut": "3.0.2", - "grapheme-splitter": "^1.0.4", - "jsep": "^1.3.8", - "kdbush": "^4.0.1", - "ktx-parse": "^1.0.0", - "lerc": "^2.0.0", - "mersenne-twister": "^1.1.0", - "meshoptimizer": "^1.0.1", - "pako": "^3.0.0", - "protobufjs": "^8.6.5", - "rbush": "^4.0.1", - "topojson-client": "^3.1.0", - "urijs": "^1.19.7" - }, - "engines": { - "node": ">=22.0.0" - } - }, - "node_modules/@cesium/wasm-splats": { - "version": "0.1.0-alpha.2", - "resolved": "https://registry.npmjs.org/@cesium/wasm-splats/-/wasm-splats-0.1.0-alpha.2.tgz", - "integrity": "sha512-t9pMkknv31hhIbLpMa8yPvmqfpvs5UkUjgqlQv9SeO8VerCXOYnyP8/486BDaFrztM0A7FMbRjsXtNeKvqQghA==", - "license": "Apache-2.0" - }, - "node_modules/@cesium/widgets": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/@cesium/widgets/-/widgets-16.1.0.tgz", - "integrity": "sha512-c+jt8F3YIZs2x6+X+HS4q0S9nd2jVcbPVShUmlrDK1s+C7IlEvXceDGrkjivHRElAVCzfaWEEwY1g7Lg5HCGmA==", - "license": "Apache-2.0", - "dependencies": { - "@cesium/engine": "^26.1.0", - "nosleep.js": "^0.12.0" - }, - "engines": { - "node": ">=22.0.0" - } - }, - "node_modules/@codecov/bundler-plugin-core": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@codecov/bundler-plugin-core/-/bundler-plugin-core-2.0.1.tgz", - "integrity": "sha512-TkdKn/rEwZQ723M7DDUmHe5r0IJa23rUT4TAx5jXmg12wGZGAHGWWU7LKeQsYCsKdLMxK7bLaGk9M++4wSRD5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@actions/core": "^3.0.0", - "@actions/github": "^9.0.0", - "chalk": "4.1.2", - "semver": "^7.5.4", - "unplugin": "^1.10.1", - "zod": "^3.22.4" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@codecov/bundler-plugin-core/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@codecov/vite-plugin": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@codecov/vite-plugin/-/vite-plugin-2.0.1.tgz", - "integrity": "sha512-w7nGA9SSc0WECzn05yRrw3uN8293I620Kd9x97I0kyyxUjtWxCMmlgmAbS364gJZYvljd0A6iQyAigVV2dOX9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@codecov/bundler-plugin-core": "^2.0.1", - "unplugin": "^1.10.1" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "vite": "4.x || 5.x || 6.x" - } - }, - "node_modules/@csstools/color-helpers": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", - "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/@csstools/css-calc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.0.tgz", - "integrity": "sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.0.tgz", - "integrity": "sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.2.0" - }, - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", - "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.3.tgz", - "integrity": "sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "peerDependencies": { - "css-tree": "^3.2.1" - }, - "peerDependenciesMeta": { - "css-tree": { - "optional": true - } - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", - "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@exodus/bytes": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.0.tgz", - "integrity": "sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@noble/hashes": "^1.8.0 || ^2.0.0" - }, - "peerDependenciesMeta": { - "@noble/hashes": { - "optional": true - } - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@octokit/auth-token": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-6.0.0.tgz", - "integrity": "sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - } - }, - "node_modules/@octokit/core": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.6.tgz", - "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/auth-token": "^6.0.0", - "@octokit/graphql": "^9.0.3", - "@octokit/request": "^10.0.6", - "@octokit/request-error": "^7.0.2", - "@octokit/types": "^16.0.0", - "before-after-hook": "^4.0.0", - "universal-user-agent": "^7.0.0" - }, - "engines": { - "node": ">= 20" - } - }, - "node_modules/@octokit/endpoint": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.3.tgz", - "integrity": "sha512-FWFlNxghg4HrXkD3ifYbS/IdL/mDHjh9QcsNyhQjN8dplUoZbejsdpmuqdA76nxj2xoWPs7p8uX2SNr9rYu0Ag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^16.0.0", - "universal-user-agent": "^7.0.2" - }, - "engines": { - "node": ">= 20" - } - }, - "node_modules/@octokit/graphql": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.3.tgz", - "integrity": "sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/request": "^10.0.6", - "@octokit/types": "^16.0.0", - "universal-user-agent": "^7.0.0" - }, - "engines": { - "node": ">= 20" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "27.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-27.0.0.tgz", - "integrity": "sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-14.0.0.tgz", - "integrity": "sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^16.0.0" - }, - "engines": { - "node": ">= 20" - }, - "peerDependencies": { - "@octokit/core": ">=6" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-17.0.0.tgz", - "integrity": "sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^16.0.0" - }, - "engines": { - "node": ">= 20" - }, - "peerDependencies": { - "@octokit/core": ">=6" - } - }, - "node_modules/@octokit/request": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.8.tgz", - "integrity": "sha512-SJZNwY9pur9Agf7l87ywFi14W+Hd9Jg6Ifivsd33+/bGUQIjNujdFiXII2/qSlN2ybqUHfp5xpekMEjIBTjlSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/endpoint": "^11.0.3", - "@octokit/request-error": "^7.0.2", - "@octokit/types": "^16.0.0", - "fast-content-type-parse": "^3.0.0", - "json-with-bigint": "^3.5.3", - "universal-user-agent": "^7.0.2" - }, - "engines": { - "node": ">= 20" - } - }, - "node_modules/@octokit/request-error": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.1.0.tgz", - "integrity": "sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^16.0.0" - }, - "engines": { - "node": ">= 20" - } - }, - "node_modules/@octokit/types": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-16.0.0.tgz", - "integrity": "sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^27.0.0" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@spz-loader/core": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@spz-loader/core/-/core-0.3.1.tgz", - "integrity": "sha512-8qJ1WIBXaJu8HjnJAjYniE0kYcr0kCe5Hp7kDzYiGVvvd7zyrOBwbF5imoW5mvwx1Qba0hxGEK5R9jEoaHKJFA==", - "license": "Apache-2.0", - "engines": { - "node": ">=16", - "pnpm": ">=8" - } - }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@swc/core": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.11.tgz", - "integrity": "sha512-iLmLTodbYxU39HhMPaMUooPwO/zqJWvsqkrXv1ZI38rMb048p6N7qtAtTp37sw9NzSrvH6oli8EdDygo09IZ/w==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.25" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.15.11", - "@swc/core-darwin-x64": "1.15.11", - "@swc/core-linux-arm-gnueabihf": "1.15.11", - "@swc/core-linux-arm64-gnu": "1.15.11", - "@swc/core-linux-arm64-musl": "1.15.11", - "@swc/core-linux-x64-gnu": "1.15.11", - "@swc/core-linux-x64-musl": "1.15.11", - "@swc/core-win32-arm64-msvc": "1.15.11", - "@swc/core-win32-ia32-msvc": "1.15.11", - "@swc/core-win32-x64-msvc": "1.15.11" - }, - "peerDependencies": { - "@swc/helpers": ">=0.5.17" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.11.tgz", - "integrity": "sha512-QoIupRWVH8AF1TgxYyeA5nS18dtqMuxNwchjBIwJo3RdwLEFiJq6onOx9JAxHtuPwUkIVuU2Xbp+jCJ7Vzmgtg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.11.tgz", - "integrity": "sha512-S52Gu1QtPSfBYDiejlcfp9GlN+NjTZBRRNsz8PNwBgSE626/FUf2PcllVUix7jqkoMC+t0rS8t+2/aSWlMuQtA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.11.tgz", - "integrity": "sha512-lXJs8oXo6Z4yCpimpQ8vPeCjkgoHu5NoMvmJZ8qxDyU99KVdg6KwU9H79vzrmB+HfH+dCZ7JGMqMF//f8Cfvdg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.11.tgz", - "integrity": "sha512-chRsz1K52/vj8Mfq/QOugVphlKPWlMh10V99qfH41hbGvwAU6xSPd681upO4bKiOr9+mRIZZW+EfJqY42ZzRyA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.11.tgz", - "integrity": "sha512-PYftgsTaGnfDK4m6/dty9ryK1FbLk+LosDJ/RJR2nkXGc8rd+WenXIlvHjWULiBVnS1RsjHHOXmTS4nDhe0v0w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.11.tgz", - "integrity": "sha512-DKtnJKIHiZdARyTKiX7zdRjiDS1KihkQWatQiCHMv+zc2sfwb4Glrodx2VLOX4rsa92NLR0Sw8WLcPEMFY1szQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.11.tgz", - "integrity": "sha512-mUjjntHj4+8WBaiDe5UwRNHuEzLjIWBTSGTw0JT9+C9/Yyuh4KQqlcEQ3ro6GkHmBGXBFpGIj/o5VMyRWfVfWw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.11.tgz", - "integrity": "sha512-ZkNNG5zL49YpaFzfl6fskNOSxtcZ5uOYmWBkY4wVAvgbSAQzLRVBp+xArGWh2oXlY/WgL99zQSGTv7RI5E6nzA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.11.tgz", - "integrity": "sha512-6XnzORkZCQzvTQ6cPrU7iaT9+i145oLwnin8JrfsLG41wl26+5cNQ2XV3zcbrnFEV6esjOceom9YO1w9mGJByw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.11.tgz", - "integrity": "sha512-IQ2n6af7XKLL6P1gIeZACskSxK8jWtoKpJWLZmdXTDj1MGzktUy4i+FvpdtxFmJWNavRWH1VmTr6kAubRDHeKw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/types": { - "version": "0.1.25", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz", - "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@testing-library/dom": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", - "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "picocolors": "1.1.1", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@adobe/css-tools": "^4.4.0", - "aria-query": "^5.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "picocolors": "^1.1.1", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", - "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/react": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", - "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@testing-library/dom": "^10.0.0", - "@types/react": "^18.0.0 || ^19.0.0", - "@types/react-dom": "^18.0.0 || ^19.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@tweenjs/tween.js": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz", - "integrity": "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==", - "license": "MIT" - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/chai": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/deep-eql": "*", - "assertion-error": "^2.0.1" - } - }, - "node_modules/@types/deep-eql": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "19.0.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.12.tgz", - "integrity": "sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", - "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "license": "MIT", - "optional": true - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true, - "license": "ISC" - }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.3.1.tgz", - "integrity": "sha512-PaeokKjAGraNN+s5SIApgsktnJprIyt3zgEIu7awnEdfn29QiB2crTcCzyi2XGpX9rUnTc0cKU07Wm0N0g7H2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rolldown/pluginutils": "^1.0.0", - "@swc/core": "^1.15.11" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "vite": "^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/@vitest/coverage-v8": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.10.tgz", - "integrity": "sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.1.10", - "ast-v8-to-istanbul": "^1.0.0", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.2.0", - "magicast": "^0.5.2", - "obug": "^2.1.1", - "std-env": "^4.0.0-rc.1", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/browser": "4.1.10", - "vitest": "4.1.10" - }, - "peerDependenciesMeta": { - "@vitest/browser": { - "optional": true - } - } - }, - "node_modules/@vitest/expect": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", - "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.1.0", - "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.10", - "@vitest/utils": "4.1.10", - "chai": "^6.2.2", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/mocker": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", - "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "4.1.10", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.21" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@vitest/pretty-format": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", - "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", - "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "4.1.10", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", - "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.10", - "@vitest/utils": "4.1.10", - "magic-string": "^0.30.21", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", - "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", - "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.10", - "convert-source-map": "^2.0.0", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@zip.js/zip.js": { - "version": "2.8.26", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.26.tgz", - "integrity": "sha512-RQ4h9F6DOiHxpdocUDrOl6xBM+yOtz+LkUol47AVWcfebGBDpZ7w7Xvz9PS24JgXvLGiXXzSAfdCdVy1tPlaFA==", - "license": "BSD-3-Clause", - "engines": { - "bun": ">=0.7.0", - "deno": ">=1.0.0", - "node": ">=18.0.0" - } - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/ast-v8-to-istanbul": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.0.tgz", - "integrity": "sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.31", - "estree-walker": "^3.0.3", - "js-tokens": "^10.0.0" - } - }, - "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", - "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autolinker": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-4.1.5.tgz", - "integrity": "sha512-vEfYZPmvVOIuE567XBVCsx8SBgOYtjB2+S1iAaJ+HgH+DNjAcrHem2hmAeC9yaNGWayicv4yR+9UaJlkF3pvtw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - }, - "engines": { - "pnpm": ">=10.10.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.1.tgz", - "integrity": "sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.16.0", - "form-data": "^4.0.5", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^2.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/baseline-browser-mapping": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.16.tgz", - "integrity": "sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.js" - } - }, - "node_modules/before-after-hook": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz", - "integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/bidi-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", - "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", - "dev": true, - "license": "MIT", - "dependencies": { - "require-from-string": "^2.0.2" - } - }, - "node_modules/bitmap-sdf": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", - "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/browserslist": { - "version": "4.26.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", - "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.8.9", - "caniuse-lite": "^1.0.30001746", - "electron-to-chromium": "^1.5.227", - "node-releases": "^2.0.21", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001750", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001750.tgz", - "integrity": "sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/cesium": { - "version": "1.143.0", - "resolved": "https://registry.npmjs.org/cesium/-/cesium-1.143.0.tgz", - "integrity": "sha512-EHz61NBp/2UPYE4iWCZ+YK9Jcb0d2hzRfqkj4DRaUM3cJmA9hE2FTmcPPZ2iL7w+W0YUScI0gc9XeSTXlPIQtA==", - "license": "Apache-2.0", - "workspaces": [ - "packages/engine", - "packages/widgets", - "packages/sandcastle" - ], - "dependencies": { - "@cesium/engine": "^26.1.0", - "@cesium/widgets": "^16.1.0", - "protobufjs": "^8.6.5" - }, - "engines": { - "node": ">=22.0.0" - } - }, - "node_modules/chai": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-tree": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", - "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.27.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true, - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/data-urls": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", - "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", - "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/dompurify": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.11.tgz", - "integrity": "sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, - "node_modules/draco3d": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", - "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==", - "license": "Apache-2.0" - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/earcut": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", - "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", - "license": "ISC" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.234", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.234.tgz", - "integrity": "sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==", - "dev": true, - "license": "ISC" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/entities": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", - "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true, - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", - "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.24.4", - "@babel/parser": "^7.24.4", - "hermes-parser": "^0.25.1", - "zod": "^3.25.0 || ^4.0.0", - "zod-validation-error": "^3.5.0 || ^4.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.26", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz", - "integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": ">=8.40" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/expect-type": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", - "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/fast-content-type-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-3.0.0.tgz", - "integrity": "sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", - "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", - "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "license": "MIT" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", - "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hermes-estree": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", - "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", - "dev": true, - "license": "MIT" - }, - "node_modules/hermes-parser": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", - "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hermes-estree": "0.25.1" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", - "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.6.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", - "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", - "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^5.1.11", - "@asamuzakjp/dom-selector": "^7.1.1", - "@bramus/specificity": "^2.4.2", - "@csstools/css-syntax-patches-for-csstree": "^1.1.3", - "@exodus/bytes": "^1.15.0", - "css-tree": "^3.2.1", - "data-urls": "^7.0.0", - "decimal.js": "^10.6.0", - "html-encoding-sniffer": "^6.0.0", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.3.5", - "parse5": "^8.0.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.1", - "undici": "^7.25.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.1", - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.1", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24.0.0" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsep": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", - "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", - "license": "MIT", - "engines": { - "node": ">= 10.16.0" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-with-bigint": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/json-with-bigint/-/json-with-bigint-3.5.8.tgz", - "integrity": "sha512-eq/4KP6K34kwa7TcFdtvnftvHCD9KvHOGGICWwMFc4dOOKF5t4iYqnfLK8otCRCRv06FXOzGGyqE8h8ElMvvdw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/kdbush": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.1.0.tgz", - "integrity": "sha512-e9vurzrXJQrFX6ckpHP3bvj5l+9CnYzkxDNnNQ1h2QTqdWsUAJgXiKdGNcOa1EY85dU8KbQ+z/FdQdB7P+9yfQ==", - "license": "ISC" - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/ktx-parse": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-1.1.0.tgz", - "integrity": "sha512-mKp3y+FaYgR7mXWAbyyzpa/r1zDWeaunH+INJO4fou3hb45XuNSwar+7llrRyvpMWafxSIi99RNFJ05MHedaJQ==", - "license": "MIT" - }, - "node_modules/lerc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lerc/-/lerc-2.0.0.tgz", - "integrity": "sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==", - "license": "Apache-2.0" - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" - } - }, - "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", - "license": "Apache-2.0" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "11.3.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", - "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "dev": true, - "license": "MIT", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/magicast": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", - "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", - "source-map-js": "^1.2.1" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mdn-data": { - "version": "2.27.1", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", - "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/mersenne-twister": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mersenne-twister/-/mersenne-twister-1.1.0.tgz", - "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==", - "license": "MIT" - }, - "node_modules/meshoptimizer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-1.2.0.tgz", - "integrity": "sha512-davRZeIJbxJrE24cwQle7ZDsxjdk/OphNOV83oX+efQinyoHY9Jcyz3MHbaoG0qySZajldGztNZ1RN/T19PZsg==", - "license": "MIT" - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz", - "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/nosleep.js": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", - "integrity": "sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==", - "license": "MIT" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obug": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", - "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", - "dev": true, - "funding": [ - "https://github.com/sponsors/sxzz", - "https://opencollective.com/debug" - ], - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pako": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-3.0.0.tgz", - "integrity": "sha512-TGPtlCI1pSUSbkOIxOUUHNrBa0muz4mAp32cYUF3RoSa5c73jiQTKOKo22gaa4DxLggQrda/DAdax5QkcHPvYA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], - "license": "(MIT AND Zlib)" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", - "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^8.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.5.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.19.tgz", - "integrity": "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.12", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/protobufjs": { - "version": "8.6.6", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-8.6.6.tgz", - "integrity": "sha512-RkLIhE+Tdc2Kpq1F4Uw6OnpAXPca7B+GSDov/GqGCqNBpVyDskQ9yReZfgM+C7xw9AAix873iQZXbBWXj6NzYQ==", - "license": "BSD-3-Clause", - "dependencies": { - "long": "^5.3.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/proxy-from-env": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", - "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quickselect": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", - "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", - "license": "ISC" - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/rbush": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-4.0.1.tgz", - "integrity": "sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==", - "license": "MIT", - "dependencies": { - "quickselect": "^3.0.0" - } - }, - "node_modules/react": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", - "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", - "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.25.0" - }, - "peerDependencies": { - "react": "^19.0.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "license": "MIT" - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resium": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/resium/-/resium-1.24.0.tgz", - "integrity": "sha512-06YlnpekKCXF/prW2S47UvFj8hRnpLg8AbioJJPWpPZWTy1U14X2JDli86kQRH5WFXd/D6uWZivFCkCQCLaHyw==", - "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "cesium": "1.x", - "react": ">=18.2.0", - "react-dom": ">=18.2.0" - } - }, - "node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.139.0", - "@rolldown/pluginutils": "^1.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" - } - }, - "node_modules/rollup": { - "version": "2.80.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.80.0.tgz", - "integrity": "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/satellite.js": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/satellite.js/-/satellite.js-7.0.1.tgz", - "integrity": "sha512-43hMdoom4miUvwX7FkroaHGq4JHIFQRNcUx570xD9KkZjsVssoWxHp8uk6KwDm+lmrW6GTuP2+G4PwvtHfr62A==", - "license": "MIT" - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/scheduler": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", - "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, - "license": "ISC" - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true, - "license": "MIT" - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/std-env": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.0.0.tgz", - "integrity": "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "license": "MIT" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", - "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/tinyrainbow": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", - "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tldts": { - "version": "7.0.26", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.26.tgz", - "integrity": "sha512-WiGwQjr0qYdNNG8KpMKlSvpxz652lqa3Rd+/hSaDcY4Uo6SKWZq2LAF+hsAhUewTtYhXlorBKgNF3Kk8hnjGoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tldts-core": "^7.0.26" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "7.0.26", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.26.tgz", - "integrity": "sha512-5WJ2SqFsv4G2Dwi7ZFVRnz6b2H1od39QME1lc2y5Ew3eWiZMAeqOAfWpRP9jHvhUl881406QtZTODvjttJs+ew==", - "dev": true, - "license": "MIT" - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "license": "ISC", - "dependencies": { - "commander": "2" - }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" - } - }, - "node_modules/tough-cookie": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", - "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^7.0.5" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tr46": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", - "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz", - "integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20.18.1" - } - }, - "node_modules/universal-user-agent": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz", - "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==", - "dev": true, - "license": "ISC" - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unplugin": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", - "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.14.0", - "webpack-virtual-modules": "^0.6.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urijs": { - "version": "1.19.11", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", - "license": "MIT" - }, - "node_modules/vite": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", - "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.5", - "postcss": "^8.5.17", - "rolldown": "~1.1.5", - "tinyglobby": "^0.2.17" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", - "esbuild": "^0.27.0 || ^0.28.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite-plugin-cesium": { - "version": "1.2.23", - "resolved": "https://registry.npmjs.org/vite-plugin-cesium/-/vite-plugin-cesium-1.2.23.tgz", - "integrity": "sha512-x9A8ZCEoegceXg/E+LnxKr0XBsI9CR4cgYWQ2Dd3cUEYwKcTnHQ3kBfpol7BUcGtgQnQos/mtVrRmuVQBXFjHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fs-extra": "^9.1.0", - "rollup-plugin-external-globals": "^0.6.1", - "serve-static": "^1.14.1" - }, - "peerDependencies": { - "cesium": "^1.95.0", - "vite": ">=2.7.1" - } - }, - "node_modules/vite-plugin-cesium/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/vite-plugin-cesium/node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/vite-plugin-cesium/node_modules/rollup-plugin-external-globals": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-external-globals/-/rollup-plugin-external-globals-0.6.1.tgz", - "integrity": "sha512-mlp3KNa5sE4Sp9UUR2rjBrxjG79OyZAh/QC18RHIjM+iYkbBwNXSo8DHRMZWtzJTrH8GxQ+SJvCTN3i14uMXIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^4.0.0", - "estree-walker": "^2.0.1", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^2.25.0" - } - }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/vitest": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", - "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "4.1.10", - "@vitest/mocker": "4.1.10", - "@vitest/pretty-format": "4.1.10", - "@vitest/runner": "4.1.10", - "@vitest/snapshot": "4.1.10", - "@vitest/spy": "4.1.10", - "@vitest/utils": "4.1.10", - "es-module-lexer": "^2.0.0", - "expect-type": "^1.3.0", - "magic-string": "^0.30.21", - "obug": "^2.1.1", - "pathe": "^2.0.3", - "picomatch": "^4.0.3", - "std-env": "^4.0.0-rc.1", - "tinybench": "^2.9.0", - "tinyexec": "^1.0.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.1.0", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@opentelemetry/api": "^1.9.0", - "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.10", - "@vitest/browser-preview": "4.1.10", - "@vitest/browser-webdriverio": "4.1.10", - "@vitest/coverage-istanbul": "4.1.10", - "@vitest/coverage-v8": "4.1.10", - "@vitest/ui": "4.1.10", - "happy-dom": "*", - "jsdom": "*", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@opentelemetry/api": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser-playwright": { - "optional": true - }, - "@vitest/browser-preview": { - "optional": true - }, - "@vitest/browser-webdriverio": { - "optional": true - }, - "@vitest/coverage-istanbul": { - "optional": true - }, - "@vitest/coverage-v8": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - }, - "vite": { - "optional": false - } - } - }, - "node_modules/vitest/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/webidl-conversions": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", - "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=20" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", - "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/whatwg-mimetype": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - } - }, - "node_modules/whatwg-url": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", - "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.11.0", - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", - "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/why-is-node-running": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "license": "MIT" - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-validation-error": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.5.3.tgz", - "integrity": "sha512-OT5Y8lbUadqVZCsnyFaTQ4/O2mys4tj7PqhdbBCp7McPwvIEKfPtdA6QfPeFQK2/Rz5LgwmAXRJTugBNBi0btw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "zod": "^3.25.0 || ^4.0.0" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index c6d38aee..00000000 --- a/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "satellite-tracker", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "coverage": "vitest run --coverage", - "start": "vite", - "build": "vite build", - "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", - "lint:fix": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0 --fix", - "lint:watch": "npx nodemon -x npm run lint:fix --ext js,jsx,json", - "preview": "vite preview", - "test": "vitest" - }, - "dependencies": { - "axios": "^1.18.1", - "cesium": "^1.143.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "resium": "^1.24.0", - "satellite.js": "^7.0.1" - }, - "devDependencies": { - "@codecov/vite-plugin": "^2.0.1", - "@testing-library/dom": "^10.4.1", - "@testing-library/jest-dom": "^6.9.1", - "@testing-library/react": "^16.3.2", - "@types/react": "^19.0.12", - "@types/react-dom": "^19.0.4", - "@vitejs/plugin-react-swc": "^4.3.1", - "@vitest/coverage-v8": "^4.1.10", - "eslint": "^8.57.1", - "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.1.1", - "eslint-plugin-react-refresh": "^0.4.26", - "jsdom": "^29.1.1", - "vite": "^8.1.5", - "vite-plugin-cesium": "^1.2.23", - "vitest": "^4.0.3" - }, - "overrides": { - "@codecov/vite-plugin": { - "vite": "$vite" - } - } -} diff --git a/public/satellite_1f6f0-fe0f.png b/satellite_1f6f0-fe0f.png similarity index 100% rename from public/satellite_1f6f0-fe0f.png rename to satellite_1f6f0-fe0f.png diff --git a/setup-tests.js b/setup-tests.js deleted file mode 100644 index 4d6aac0e..00000000 --- a/setup-tests.js +++ /dev/null @@ -1,79 +0,0 @@ -import {afterEach, vi} from 'vitest'; -import {cleanup} from '@testing-library/react'; -import '@testing-library/jest-dom/vitest'; - -// Mock resium components to avoid WebGL initialization -vi.mock('resium', () => ({ - Viewer: ({children}) => children, - Globe: () => null, - Clock: () => null, - Entity: () => null, - PathGraphics: () => null, - PointGraphics: () => null, - EntityDescription: () => null, -})); - -// Mock cesium to avoid WebGL errors -vi.mock('cesium', () => { - const JulianDateMock = vi.fn(function() { - return { - clone: vi.fn(() => ({})), - }; - }); - JulianDateMock.fromDate = vi.fn(() => ({ - clone: vi.fn(() => ({})), - })); - JulianDateMock.addSeconds = vi.fn(() => ({ - clone: vi.fn(() => ({})), - })); - JulianDateMock.toDate = vi.fn(() => new Date()); - - const SampledPositionPropertyMock = vi.fn(function() { - return { - addSample: vi.fn(), - }; - }); - - return { - Camera: { - DEFAULT_VIEW_RECTANGLE: {}, - }, - Cartesian3: { - fromRadians: vi.fn(() => ({})), - }, - ClockRange: { - LOOP_STOP: 'LOOP_STOP', - }, - Color: { - WHITE: {}, - }, - Ion: { - defaultAccessToken: '', - }, - JulianDate: JulianDateMock, - Rectangle: { - fromDegrees: vi.fn(() => ({})), - }, - SampledPositionProperty: SampledPositionPropertyMock, - }; -}); - -// Mock satellite.js -vi.mock('satellite.js', () => ({ - twoline2satrec: vi.fn(() => ({})), - propagate: vi.fn(() => ({ - position: {x: 0, y: 0, z: 0}, - velocity: {x: 0, y: 0, z: 0}, - })), - gstime: vi.fn(() => 0), - eciToGeodetic: vi.fn(() => ({ - longitude: 0, - latitude: 0, - height: 0, - })), -})); - -// Runs a cleanup after each test case (e.g. clearing jsdom) -afterEach(() => { - cleanup(); -}); diff --git a/src/App.jsx b/src/App.jsx deleted file mode 100644 index e2e6d904..00000000 --- a/src/App.jsx +++ /dev/null @@ -1,114 +0,0 @@ -import {Clock, Entity, EntityDescription, Globe, PathGraphics, PointGraphics, Viewer} from 'resium'; -import {Camera, Cartesian3, ClockRange, Color, Ion, JulianDate, Rectangle, SampledPositionProperty} from 'cesium'; -import {eciToGeodetic, gstime, propagate, twoline2satrec} from 'satellite.js'; -import {useEffect, useMemo, useState} from 'react'; -import axios from 'axios'; - -import parsePlanetTLEs from './parsePlanetTLEs.js'; - -// Guard Cesium initialization against non-browser environments (e.g. SSR or test runs without jsdom), -// to prevent "ReferenceError: window is not defined" when window/DOM APIs are unavailable. -if (typeof window !== 'undefined') { - Ion.defaultAccessToken = import.meta.env.VITE_CESIUM_TOKEN; - // Berlin - Camera.DEFAULT_VIEW_RECTANGLE = Rectangle.fromDegrees(8, 49, 18, 55); -} - -// Give SatelliteJS the TLEs and a specific time. -// Get back a longitude, latitude, height (m). -// We're going to generate a position every 10 seconds from now until 6 seconds from now. -const totalSeconds = 60 * 60 * 6; -const timestepInSeconds = 10; -const start = JulianDate.fromDate(new Date()); -const stop = JulianDate.addSeconds(start, totalSeconds, new JulianDate()); - -const positionsOverTime = new SampledPositionProperty(); -const DEFAULT_SATELLITE_NAME = 'Unknown Satellite'; - -function App() { - const [isSelected, setIsSelected] = useState(false); - const [data, setData] = useState(null); - - useEffect(() => { - axios.get('https://ephemerides.planet-labs.com/planet_mc.tle').then((res) => { - setData(res.data); - }); - }, []); - - useEffect(() => { - const id = setTimeout(() => { - setIsSelected(!!data); - }, 333); - - return () => clearTimeout(id); - }, [data]); - - const satelliteData = useMemo(() => { - if (!data) return null; - - const tLEs = parsePlanetTLEs(data); - - // Try to get FLOCK-4Y constellation first - let constellation = tLEs['FLOCK-4Y']; - - // If FLOCK-4Y doesn't exist or is empty, fall back to any other constellation - if (!constellation || Object.keys(constellation).length === 0) { - // Get all constellations - const allConstellations = Object.keys(tLEs); - - // Find the first constellation that has satellites - for (const constellationName of allConstellations) { - const currentConstellation = tLEs[constellationName]; - if (currentConstellation && Object.keys(currentConstellation).length > 0) { - constellation = currentConstellation; - break; - } - } - - // If still no constellation found, return null - if (!constellation || Object.keys(constellation).length === 0) { - return null; - } - } - - const satelliteId = Object.keys(constellation)[0]; - const tle = constellation[satelliteId]; - - return {satelliteId, tle}; - }, [data]); - - if (satelliteData) { - const {tle} = satelliteData; - const satrec = twoline2satrec(tle.split('\n')[0].trim(), tle.split('\n')[1].trim()); - - for (let i = 0; i < totalSeconds; i += timestepInSeconds) { - const time = JulianDate.addSeconds(start, i, new JulianDate()); - const jsDate = JulianDate.toDate(time); - - const positionAndVelocity = propagate(satrec, jsDate); - const gmst = gstime(jsDate); - const p = eciToGeodetic(positionAndVelocity.position, gmst); - - const position = Cartesian3.fromRadians(p.longitude, p.latitude, p.height * 1000); - positionsOverTime.addSample(time, position); - } - } - - return data && ( - <Viewer full shadows> - <Globe enableLighting={true}/> - <Clock shouldAnimate={true} startTime={start.clone()} stopTime={stop.clone()} currentTime={start.clone()} multiplier={1} clockRange={ClockRange.LOOP_STOP}/> - <Entity position={positionsOverTime} tracked={isSelected} selected={isSelected} name={satelliteData?.satelliteId || DEFAULT_SATELLITE_NAME}> - <PathGraphics show material={Color.WHITE} width={1} leadTime={5500} trailTime={100}/> - <PointGraphics pixelSize={10}/> - <EntityDescription> - <h1>Julia Hell</h1> - <p>In space no one can hear you cluck</p> - <img alt="Artwork" src="/love-peace.svg" width="437" style={{height: 'auto', maxWidth: '100%'}}/> - </EntityDescription> - </Entity> - </Viewer> - ); -} - -export default App; diff --git a/src/__tests__/__mocks__/planet_mc.tle b/src/__tests__/__mocks__/planet_mc.tle deleted file mode 100644 index 94fb6bbc..00000000 --- a/src/__tests__/__mocks__/planet_mc.tle +++ /dev/null @@ -1,672 +0,0 @@ -0 DOVE 2 0505 -1 39132U PLANET 24014.33959491 .00000000 00000+0 68541-3 0 01 -2 39132 064.8706 191.0812 0013941 242.6312 160.2676 15.18144161 01 -0 DOVE 3 0711 -1 39429U PLANET 24014.33959491 .00000000 00000+0 83892-3 0 06 -2 39429 097.7791 267.7293 0134358 354.0361 356.2984 14.66354910 07 -0 FLOCK 1C 1 0903 -1 40027U PLANET 24014.34041667 .00000000 00000+0 21303-2 0 08 -2 40027 098.0882 349.5505 0007262 303.2218 266.8341 15.07759420 07 -0 FLOCK 1C 2 0904 -1 40029U PLANET 24014.34041667 .00000000 00000+0 21850-2 0 07 -2 40029 098.0819 348.4707 0006011 303.2254 231.8235 15.08031196 00 -0 FLOCK 1C 3 0905 -1 40041U PLANET 24014.34041667 .00000000 00000+0 17571-2 0 06 -2 40041 098.0716 349.6103 0010058 297.1176 008.8949 15.09132778 06 -0 FLOCK 1C 4 0906 -1 40031U PLANET 24014.34041667 .00000000 00000+0 16724-2 0 04 -2 40031 098.0580 344.0218 0006309 289.4431 090.6012 15.01701089 01 -0 FLOCK 1C 5 0907 -1 40038U PLANET 24014.34041667 .00000000 00000+0 18207-2 0 09 -2 40038 098.0779 350.7291 0009434 257.0908 249.3472 15.07097494 02 -0 FLOCK 1C 6 0908 -1 40036U PLANET 24014.34041667 .00000000 00000+0 19290-2 0 00 -2 40036 098.0725 352.6175 0003406 339.0971 031.9474 15.08641361 03 -0 FLOCK 1C 7 0909 -1 40026U PLANET 24014.34041667 .00000000 00000+0 21048-2 0 03 -2 40026 098.0675 354.1909 0003698 253.7782 093.8605 15.09625036 08 -0 FLOCK 1C 8 090A -1 40040U PLANET 24014.34041667 .00000000 00000+0 19534-2 0 06 -2 40040 098.1034 010.4399 0008272 247.1498 057.9713 15.14863009 04 -0 FLOCK 1C 9 090B -1 40035U PLANET 24014.34041667 .00000000 00000+0 17336-2 0 08 -2 40035 098.0733 350.6608 0004757 239.7150 266.0907 15.07873779 06 -0 FLOCK 1C 10 090C -1 40023U PLANET 24014.34041667 .00000000 00000+0 22076-2 0 02 -2 40023 098.0592 345.3347 0010589 294.9400 110.9335 15.02171973 02 -0 FLOCK 1C 11 090D -1 40033U PLANET 24014.34033565 .00000000 00000+0 19513-2 0 03 -2 40033 098.1140 358.8375 0009269 274.5395 055.6021 15.08414803 08 -0 FLOCK 3S 1 105C -1 43769U PLANET 24014.34040509 .00000000 00000+0 75188-3 0 09 -2 43769 097.5280 074.7186 0015398 137.3131 218.9508 15.05615307 06 -0 FLOCK 3S 3 210D -1 43788U PLANET 24014.34035880 .00000000 00000+0 -12021-3 0 04 -2 43788 097.5643 078.9266 0012577 122.7427 246.0040 15.05674898 00 -0 FLOCK 3S 2 2151 -1 43821U PLANET 24014.34035880 .00000000 00000+0 67043-3 0 05 -2 43821 097.5679 080.2717 0008587 098.2948 026.1705 15.08410291 08 -0 FLOCK 4P 7 222F -1 44816U PLANET 24014.34035880 .00000000 00000+0 22813-2 0 05 -2 44816 097.3181 095.8727 0011276 307.4599 218.7559 15.92886506 03 -0 FLOCK 4P 11 2231 -1 44809U PLANET 24014.34035880 .00000000 00000+0 23778-2 0 08 -2 44809 097.3155 094.9136 0006711 283.7579 338.2013 15.85383019 08 -0 FLOCK 4EP 3 2251 -1 46819U PLANET 24014.34038194 .00000000 00000+0 22759-2 0 00 -2 46819 097.3371 089.9117 0002867 083.1734 085.5883 15.63951711 00 -0 FLOCK 4V 10 2254 -1 46296U PLANET 24014.34042824 .00000000 00000+0 57614-3 0 03 -2 46296 097.3795 087.5200 0001895 045.1996 297.7573 15.34144113 05 -0 FLOCK 4V 2 2256 -1 46321U PLANET 24014.34042824 .00000000 00000+0 20121-2 0 04 -2 46321 097.3495 094.7331 0002768 291.6506 150.0968 15.75215509 03 -0 FLOCK 4P 5 2259 -1 44818U PLANET 24014.34035880 .00000000 00000+0 20498-2 0 04 -2 44818 097.3279 093.9755 0006123 290.6870 020.2373 15.70081791 02 -0 FLOCK 4V 6 225B -1 46289U PLANET 24014.34042824 .00000000 00000+0 13608-2 0 09 -2 46289 097.3833 085.9191 0002673 082.2682 039.2336 15.30185156 04 -0 FLOCK 4EP 7 2262 -1 46814U PLANET 24014.34038194 .00000000 00000+0 22179-2 0 01 -2 46814 097.3368 089.6698 0002542 188.5131 325.6106 15.69977150 00 -0 FLOCK 4EP 8 2264 -1 46816U PLANET 24014.34038194 .00000000 00000+0 22497-2 0 06 -2 46816 097.3420 090.8076 0005780 104.6822 168.7176 15.58842762 09 -0 FLOCK 4EP 5 2276 -1 46817U PLANET 24014.34038194 .00000000 00000+0 17875-2 0 01 -2 46817 097.3360 090.1879 0003870 116.9186 253.8968 15.63330165 04 -0 FLOCK 4V 14 227A -1 46286U PLANET 24014.34042824 .00000000 00000+0 44274-3 0 00 -2 46286 097.3780 087.2897 0003558 035.6155 296.8770 15.34231825 02 -0 FLOCK 4V 7 227B -1 46291U PLANET 24014.34042824 .00000000 00000+0 20801-2 0 05 -2 46291 097.3705 090.2259 0000979 010.5516 168.4300 15.54902814 06 -0 FLOCK 4V 1 227C -1 46313U PLANET 24014.34042824 .00000000 00000+0 21033-2 0 08 -2 46313 097.3753 090.1636 0001115 331.1993 036.0346 15.50807906 08 -0 FLOCK 4V 12 2307 -1 46283U PLANET 24014.34042824 .00000000 00000+0 24187-2 0 07 -2 46283 097.3692 091.8453 0002355 319.4764 344.2014 15.66356101 02 -0 FLOCK 4V 15 2402 -1 46528U PLANET 24014.34042824 .00000000 00000+0 95338-3 0 06 -2 46528 097.3231 095.0550 0001135 268.4677 100.4243 15.57629238 08 -0 FLOCK 4V 16 2403 -1 46527U PLANET 24014.34042824 .00000000 00000+0 23990-2 0 09 -2 46527 097.3205 095.3687 0002089 237.8660 233.5381 15.64653473 00 -0 FLOCK 4V 24 2405 -1 46738U PLANET 24014.34042824 .00000000 00000+0 19288-2 0 08 -2 46738 097.3292 095.9344 0001930 285.4768 124.1595 15.59093140 03 -0 FLOCK 4V 20 2406 -1 46612U PLANET 24014.34046296 .00000000 00000+0 37047-3 0 00 -2 46612 097.3367 089.0789 0002973 242.3027 069.4268 15.36207113 02 -0 FLOCK 4V 25 240C -1 46812U PLANET 24014.34046296 .00000000 00000+0 25084-2 0 09 -2 46812 097.3154 094.6573 0001975 292.3803 256.1719 15.61755160 03 -0 FLOCK 4V 5 240F -1 46290U PLANET 24014.34046296 .00000000 00000+0 21236-2 0 04 -2 46290 097.3651 086.6817 0003480 303.7510 079.8357 15.61722948 08 -0 FLOCK 4V 3 2412 -1 46322U PLANET 24014.34046296 .00000000 00000+0 20298-2 0 07 -2 46322 097.3758 090.6004 0002443 320.7320 021.6549 15.52761869 04 -0 FLOCK 4V 18 2413 -1 46597U PLANET 24014.34046296 .00000000 00000+0 95898-3 0 00 -2 46597 097.3343 095.8930 0003277 219.2293 355.8826 15.58591542 05 -0 FLOCK 4V 19 2414 -1 46609U PLANET 24014.34046296 .00000000 00000+0 86050-3 0 04 -2 46609 097.3179 094.1348 0000702 270.7723 119.6265 15.57198446 09 -0 FLOCK 4Y 1 2415 -1 55039U PLANET 24014.35593750 .00000000 00000+0 70863-3 0 09 -2 55039 097.4501 077.5361 0009502 355.3438 300.6883 15.25954389 05 -0 FLOCK 4V 8 2416 -1 46288U PLANET 24014.34046296 .00000000 00000+0 66369-3 0 08 -2 46288 097.3770 087.1980 0003811 059.6618 159.1404 15.34129828 01 -0 FLOCK 4Y 7 2417 -1 55032U PLANET 24014.25806713 .00000000 00000+0 39313-3 0 02 -2 55032 097.4481 077.0480 0010169 353.1694 237.5951 15.23247457 06 -0 FLOCK 4V 9 2419 -1 46282U PLANET 24014.34046296 .00000000 00000+0 20162-2 0 02 -2 46282 097.3751 089.0624 0002659 358.8001 155.6781 15.49170624 04 -0 FLOCK 4S 12 241A -1 47471U PLANET 24014.34035880 .00000000 00000+0 62423-3 0 07 -2 47471 097.3542 077.7333 0005872 052.9569 085.3177 15.39156812 05 -0 FLOCK 4S 31 241B -1 47475U PLANET 24014.34035880 .00000000 00000+0 90704-3 0 04 -2 47475 097.3539 081.9073 0003399 040.3241 180.6085 15.53674904 03 -0 FLOCK 4V 13 241C -1 46297U PLANET 24014.34046296 .00000000 00000+0 41045-3 0 02 -2 46297 097.3772 087.5033 0000978 056.9256 274.7434 15.33686863 08 -0 FLOCK 4S 36 241D -1 47530U PLANET 24014.34035880 .00000000 00000+0 50427-3 0 04 -2 47530 097.3596 078.0890 0005402 067.7163 348.6054 15.38575324 06 -0 FLOCK 4S 22 241E -1 47452U PLANET 24014.34035880 .00000000 00000+0 16809-2 0 02 -2 47452 097.3620 078.2557 0008299 047.3128 151.2940 15.38807363 04 -0 FLOCK 4S 14 241F -1 47528U PLANET 24014.34035880 .00000000 00000+0 69188-3 0 05 -2 47528 097.3634 078.1908 0005571 049.0856 284.2407 15.38482018 00 -0 FLOCK 4S 33 2420 -1 47469U PLANET 24014.34035880 .00000000 00000+0 56332-3 0 06 -2 47469 097.3553 077.2067 0004686 057.1905 197.2435 15.38354912 06 -0 FLOCK 4S 18 2421 -1 47496U PLANET 24014.34035880 .00000000 00000+0 55781-3 0 03 -2 47496 097.3650 078.5503 0008264 051.6996 139.7115 15.38340017 05 -0 FLOCK 4S 5 2423 -1 47515U PLANET 24014.34035880 .00000000 00000+0 84293-3 0 05 -2 47515 097.3523 076.8390 0007155 050.7848 076.9904 15.39197134 04 -0 FLOCK 4V 11 2424 -1 46285U PLANET 24014.34046296 .00000000 00000+0 50336-3 0 02 -2 46285 097.3771 087.1529 0003804 047.4993 024.1604 15.33913931 09 -0 FLOCK 4V 17 2426 -1 46529U PLANET 24014.34042824 .00000000 00000+0 20366-2 0 05 -2 46529 097.3188 094.8060 0000772 287.2645 189.6176 15.59635357 08 -0 FLOCK 4S 41 2427 -1 47698U PLANET 24014.34035880 .00000000 00000+0 60939-3 0 08 -2 47698 097.3664 078.5316 0007001 051.7126 069.2672 15.38509613 04 -0 FLOCK 4S 37 2429 -1 47522U PLANET 24014.34035880 .00000000 00000+0 69419-3 0 06 -2 47522 097.3630 078.2075 0005596 060.5407 017.4636 15.38397183 01 -0 FLOCK 4S 4 242B -1 47491U PLANET 24014.34043981 .00000000 00000+0 60953-3 0 06 -2 47491 097.3509 076.8838 0006906 047.8753 123.8711 15.38375183 02 -0 FLOCK 4S 19 242D -1 47500U PLANET 24014.34043981 .00000000 00000+0 61764-3 0 08 -2 47500 097.3626 078.5269 0007735 049.9853 230.6478 15.38450606 06 -0 FLOCK 4Y 3 242E -1 55035U PLANET 24014.25806713 .00000000 00000+0 36783-3 0 03 -2 55035 097.4483 077.0360 0012698 358.4220 271.4676 15.23292654 00 -0 FLOCK 4S 15 242F -1 47521U PLANET 24014.34043981 .00000000 00000+0 23669-2 0 02 -2 47521 097.3553 084.0249 0001743 067.4547 022.8682 15.67929535 08 -0 FLOCK 4S 42 2430 -1 47612U PLANET 24014.34043981 .00000000 00000+0 51391-3 0 07 -2 47612 097.3602 078.0227 0007401 058.0351 065.2041 15.38416470 06 -0 FLOCK 4S 24 2431 -1 47539U PLANET 24014.34043981 .00000000 00000+0 64278-3 0 03 -2 47539 097.3560 077.5838 0007422 047.1325 270.4924 15.38469966 00 -0 FLOCK 4S 17 2432 -1 47492U PLANET 24014.34043981 .00000000 00000+0 92341-3 0 03 -2 47492 097.3689 078.8299 0007492 046.5130 135.1062 15.39107360 07 -0 FLOCK 4S 3 2433 -1 47494U PLANET 24014.34043981 .00000000 00000+0 22987-2 0 03 -2 47494 097.3330 082.3153 0006008 009.0621 049.4857 15.68376811 02 -0 FLOCK 4S 16 2434 -1 47516U PLANET 24014.34043981 .00000000 00000+0 19624-2 0 02 -2 47516 097.3573 085.8990 0003688 033.5709 043.6169 15.69599253 03 -0 FLOCK 4S 43 2435 -1 47687U PLANET 24014.34043981 .00000000 00000+0 62744-3 0 03 -2 47687 097.3560 077.3514 0004610 074.3516 250.4484 15.38651700 01 -0 FLOCK 4S 1 2436 -1 47543U PLANET 24014.34043981 .00000000 00000+0 18875-3 0 00 -2 47543 097.3483 077.6979 0007188 027.9490 157.7555 15.40661035 05 -0 FLOCK 4X 8 2438 -1 50992U PLANET 24014.34037037 .00000000 00000+0 70170-3 0 03 -2 50992 097.4153 088.4288 0006425 198.6620 135.7030 15.36534633 01 -0 FLOCK 4S 20 2439 -1 47540U PLANET 24014.34047454 .00000000 00000+0 58403-3 0 07 -2 47540 097.3627 078.3817 0007279 048.8034 230.4554 15.38264934 00 -0 FLOCK 4S 44 2440 -1 47686U PLANET 24014.34047454 .00000000 00000+0 46525-3 0 00 -2 47686 097.3574 078.2270 0011700 033.0316 323.7832 15.38336263 07 -0 FLOCK 4S 45 2442 -1 47688U PLANET 24014.34047454 .00000000 00000+0 20315-3 0 01 -2 47688 097.3453 077.5266 0013586 008.3251 191.9966 15.38381502 08 -0 FLOCK 4S 46 2444 -1 47684U PLANET 24014.34047454 .00000000 00000+0 86159-3 0 05 -2 47684 097.3582 078.1026 0007198 057.4385 102.2956 15.38576525 08 -0 FLOCK 4S 11 2445 -1 47462U PLANET 24014.34047454 .00000000 00000+0 32805-3 0 08 -2 47462 097.3593 069.3467 0008093 099.4525 097.4954 15.22679314 08 -0 FLOCK 4X 36 2446 -1 51039U PLANET 24014.34037037 .00000000 00000+0 68848-3 0 05 -2 51039 097.4140 088.5261 0005746 200.0186 117.1960 15.36745003 03 -0 FLOCK 4S 9 2447 -1 47478U PLANET 24014.34047454 .00000000 00000+0 58558-3 0 08 -2 47478 097.3562 077.0416 0005751 064.5572 087.2531 15.38170779 00 -0 FLOCK 4S 25 2448 -1 47542U PLANET 24014.34047454 .00000000 00000+0 76542-3 0 03 -2 47542 097.3515 077.3380 0007433 054.7473 084.4514 15.39162162 01 -0 FLOCK 4S 10 2449 -1 47523U PLANET 24014.34047454 .00000000 00000+0 43216-3 0 04 -2 47523 097.3599 077.2601 0006000 062.9379 208.6333 15.38459361 00 -0 FLOCK 4S 8 2450 -1 47474U PLANET 24014.34047454 .00000000 00000+0 22225-2 0 05 -2 47474 097.3355 081.4230 0002624 070.6079 337.4594 15.62777690 06 -0 FLOCK 4S 7 2451 -1 47527U PLANET 24014.34047454 .00000000 00000+0 63895-3 0 03 -2 47527 097.3532 076.8332 0005224 066.9412 285.3146 15.38383150 02 -0 FLOCK 4S 13 2453 -1 47472U PLANET 24014.34043981 .00000000 00000+0 79595-3 0 07 -2 47472 097.3570 078.3400 0005739 048.3910 009.3820 15.40536033 00 -0 FLOCK 4S 6 2455 -1 47518U PLANET 24014.34043981 .00000000 00000+0 63561-3 0 04 -2 47518 097.3552 077.0334 0006603 060.1065 298.1385 15.38888726 07 -0 FLOCK 4S 47 2456 -1 47685U PLANET 24014.34043981 .00000000 00000+0 18292-3 0 00 -2 47685 097.3554 077.2795 0005944 056.3065 172.4684 15.38338742 05 -0 FLOCK 4S 27 2457 -1 47495U PLANET 24014.34043981 .00000000 00000+0 52544-3 0 07 -2 47495 097.3479 075.6091 0007288 066.1876 178.1375 15.35887428 00 -0 FLOCK 4S 39 2458 -1 47490U PLANET 24014.34043981 .00000000 00000+0 69947-3 0 07 -2 47490 097.3656 078.6918 0007183 050.2022 219.0115 15.39084000 00 -0 FLOCK 4S 30 2459 -1 47544U PLANET 24014.34043981 .00000000 00000+0 54435-3 0 03 -2 47544 097.3547 077.0408 0005529 060.1282 011.4239 15.38427235 07 -0 FLOCK 4S 21 245C -1 47456U PLANET 24014.34043981 .00000000 00000+0 67876-3 0 08 -2 47456 097.3581 078.3517 0007363 034.1145 277.1774 15.39237862 00 -0 FLOCK 4S 38 245E -1 47512U PLANET 24014.34043981 .00000000 00000+0 21586-2 0 08 -2 47512 097.3608 080.8417 0003152 035.9935 221.9500 15.60083515 00 -0 FLOCK 4S 28 2460 -1 47514U PLANET 24014.34043981 .00000000 00000+0 10133-2 0 06 -2 47514 097.3531 076.7662 0005889 059.4374 001.2520 15.38497436 07 -0 FLOCK 4X 35 2461 -1 51048U PLANET 24014.34037037 .00000000 00000+0 48942-3 0 08 -2 51048 097.4067 087.8716 0004816 193.5124 199.0954 15.36441111 08 -0 FLOCK 4S 40 2462 -1 47499U PLANET 24014.34043981 .00000000 00000+0 15162-2 0 05 -2 47499 097.3652 080.1491 0005695 044.5946 275.1550 15.51988879 03 -0 FLOCK 4S 29 2463 -1 47520U PLANET 24014.34047454 .00000000 00000+0 19402-2 0 00 -2 47520 097.3466 078.8682 0004432 041.0856 018.7796 15.56353034 04 -0 FLOCK 4S 34 2464 -1 47477U PLANET 24014.34047454 .00000000 00000+0 62048-3 0 06 -2 47477 097.3597 077.9043 0005381 062.1799 017.4419 15.38769926 04 -0 FLOCK 4S 48 2465 -1 47617U PLANET 24014.34047454 .00000000 00000+0 69856-3 0 06 -2 47617 097.3600 078.1328 0007611 038.8562 351.1594 15.38380804 06 -0 FLOCK 4X 6 2470 -1 51043U PLANET 24014.34037037 .00000000 00000+0 70494-3 0 00 -2 51043 097.4143 088.3870 0004951 196.4754 100.7982 15.36619887 03 -0 FLOCK 4X 1 2473 -1 51017U PLANET 24014.34037037 .00000000 00000+0 60009-3 0 02 -2 51017 097.4108 088.1486 0007335 196.0071 209.7146 15.36422058 07 -0 FLOCK 4X 27 2474 -1 51012U PLANET 24014.34037037 .00000000 00000+0 19252-2 0 00 -2 51012 097.4063 091.3391 0004494 212.6574 269.7705 15.59263208 01 -0 FLOCK 4X 39 2475 -1 51029U PLANET 24014.34037037 .00000000 00000+0 46253-3 0 00 -2 51029 097.4104 088.2550 0006845 189.1871 186.7179 15.36691797 03 -0 FLOCK 4X 2 2477 -1 50996U PLANET 24014.34037037 .00000000 00000+0 69382-3 0 00 -2 50996 097.4142 088.4696 0006460 201.8192 036.6100 15.36469888 02 -0 FLOCK 4X 7 2478 -1 51065U PLANET 24014.34037037 .00000000 00000+0 69022-3 0 09 -2 51065 097.4122 088.3235 0005260 204.9161 085.9743 15.36641911 02 -0 FLOCK 4X 22 2479 -1 51003U PLANET 24014.34037037 .00000000 00000+0 68842-3 0 00 -2 51003 097.4137 088.4806 0006081 205.1734 070.8150 15.37191443 02 -0 FLOCK 4X 17 247A -1 51035U PLANET 24014.34048611 .00000000 00000+0 63757-3 0 05 -2 51035 097.4155 088.3831 0004651 199.3746 301.6889 15.36387841 04 -0 FLOCK 4X 44 247B -1 50994U PLANET 24014.34048611 .00000000 00000+0 53318-3 0 00 -2 50994 097.4153 088.6095 0006413 202.2869 222.4086 15.36594290 05 -0 FLOCK 4X 5 247C -1 51004U PLANET 24014.34048611 .00000000 00000+0 64257-3 0 07 -2 51004 097.4101 088.0933 0007088 190.9488 183.4385 15.36506661 08 -0 FLOCK 4X 34 247D -1 51042U PLANET 24014.34048611 .00000000 00000+0 70558-3 0 00 -2 51042 097.4170 088.5203 0004779 196.6097 352.8978 15.36547555 01 -0 FLOCK 4X 19 247E -1 51046U PLANET 24014.34048611 .00000000 00000+0 87873-3 0 02 -2 51046 097.3989 092.8868 0002242 145.9784 216.0128 15.52737949 04 -0 FLOCK 4X 29 247F -1 51011U PLANET 24014.34048611 .00000000 00000+0 69687-3 0 07 -2 51011 097.4137 088.2389 0006711 191.8661 349.5250 15.36800609 02 -0 FLOCK 4X 42 2480 -1 51018U PLANET 24014.34048611 .00000000 00000+0 63976-3 0 09 -2 51018 097.4069 087.9829 0008838 193.3231 182.4163 15.36521759 03 -0 FLOCK 4X 37 2481 -1 51009U PLANET 24014.34048611 .00000000 00000+0 71508-3 0 09 -2 51009 097.4137 088.6147 0007073 214.9103 267.2247 15.36540736 09 -0 FLOCK 4X 3 2482 -1 51006U PLANET 24014.34048611 .00000000 00000+0 67606-3 0 00 -2 51006 097.4152 088.6006 0006353 197.2066 037.5527 15.36757097 07 -0 FLOCK 4X 4 2483 -1 51064U PLANET 24014.34048611 .00000000 00000+0 66529-3 0 07 -2 51064 097.4122 088.1825 0005154 189.1442 344.7398 15.37006872 06 -0 FLOCK 4X 16 2484 -1 51020U PLANET 24014.34046296 .00000000 00000+0 73420-3 0 04 -2 51020 097.4108 088.1113 0006986 190.9851 327.5014 15.36567592 04 -0 FLOCK 4X 21 2485 -1 51040U PLANET 24014.34046296 .00000000 00000+0 81433-3 0 09 -2 51040 097.4033 089.3575 0009249 173.4771 335.1349 15.41333196 03 -0 FLOCK 4X 43 2486 -1 51027U PLANET 24014.34046296 .00000000 00000+0 69119-3 0 01 -2 51027 097.4104 088.1682 0007145 191.7571 332.9729 15.36484176 03 -0 FLOCK 4X 41 2488 -1 51005U PLANET 24014.34046296 .00000000 00000+0 59312-3 0 01 -2 51005 097.4097 087.9824 0006470 185.6746 284.4984 15.36508712 08 -0 FLOCK 4X 14 2489 -1 51066U PLANET 24014.34046296 .00000000 00000+0 84461-3 0 01 -2 51066 097.4051 088.8543 0005536 205.9183 333.9445 15.38855354 07 -0 FLOCK 4X 24 248B -1 51056U PLANET 24014.34046296 .00000000 00000+0 70586-3 0 03 -2 51056 097.4093 087.9842 0004753 187.6462 027.5737 15.36581626 06 -0 FLOCK 4X 9 248C -1 51047U PLANET 24014.34046296 .00000000 00000+0 82269-3 0 04 -2 51047 097.4139 088.4721 0005061 201.5243 052.1273 15.36707526 03 -0 FLOCK 4X 40 248E -1 51052U PLANET 24014.34046296 .00000000 00000+0 16815-2 0 03 -2 51052 097.4067 088.0713 0003081 226.3473 311.2079 15.39610495 00 -0 FLOCK 4X 38 248F -1 51023U PLANET 24014.34046296 .00000000 00000+0 63016-3 0 07 -2 51023 097.4150 088.5429 0007357 195.8233 233.0645 15.36462390 00 -0 FLOCK 4X 26 2490 -1 51026U PLANET 24014.34046296 .00000000 00000+0 62603-3 0 01 -2 51026 097.4117 088.2759 0007146 199.5277 078.1667 15.36599659 05 -0 FLOCK 4X 15 2492 -1 51010U PLANET 24014.34054398 .00000000 00000+0 98844-3 0 02 -2 51010 097.4081 090.1962 0005970 189.6328 093.6990 15.43632147 05 -0 FLOCK 4X 20 2495 -1 50997U PLANET 24014.34054398 .00000000 00000+0 66765-3 0 02 -2 50997 097.4151 088.5578 0006101 200.4066 271.7687 15.36849726 05 -0 FLOCK 4X 33 2496 -1 51055U PLANET 24014.34054398 .00000000 00000+0 17617-2 0 09 -2 51055 097.3975 090.6368 0003072 210.5905 243.3999 15.56131736 01 -0 FLOCK 4X 12 2498 -1 51015U PLANET 24014.34054398 .00000000 00000+0 66879-3 0 00 -2 51015 097.4139 088.4236 0007756 196.1299 075.9158 15.36253740 01 -0 FLOCK 4X 31 2499 -1 51041U PLANET 24014.34054398 .00000000 00000+0 75365-3 0 09 -2 51041 097.4050 088.0553 0005141 183.6136 342.0382 15.37466269 07 -0 FLOCK 4X 10 249A -1 51037U PLANET 24014.34054398 .00000000 00000+0 65095-3 0 03 -2 51037 097.4164 088.6318 0005657 195.6470 227.1118 15.37028324 05 -0 FLOCK 4X 11 249B -1 51049U PLANET 24014.34054398 .00000000 00000+0 79734-3 0 01 -2 51049 097.4023 088.9693 0006223 174.0133 053.1329 15.40512736 08 -0 FLOCK 4X 13 249C -1 51028U PLANET 24014.34054398 .00000000 00000+0 63569-3 0 07 -2 51028 097.4111 088.1369 0007456 188.6839 259.5749 15.36457747 01 -0 FLOCK 4X 18 249D -1 51007U PLANET 24014.34054398 .00000000 00000+0 48840-3 0 09 -2 51007 097.4169 088.2967 0005111 215.8341 013.9234 15.36979553 08 -0 FLOCK 4X 32 249E -1 51024U PLANET 24014.34054398 .00000000 00000+0 61793-3 0 00 -2 51024 097.4168 088.5423 0007186 191.6770 057.3002 15.35765877 03 -0 FLOCK 4Y 2 24A1 -1 55074U PLANET 24014.25806713 .00000000 00000+0 39798-3 0 05 -2 55074 097.4519 077.1959 0013048 003.2525 224.1183 15.23151870 03 -0 FLOCK 4X 23 24A2 -1 51034U PLANET 24014.34049769 .00000000 00000+0 24012-2 0 09 -2 51034 097.3898 091.7033 0003841 230.6520 139.5892 15.60766147 06 -0 FLOCK 4X 25 24A3 -1 51016U PLANET 24014.34049769 .00000000 00000+0 74375-3 0 07 -2 51016 097.4091 088.6033 0007000 201.8290 277.3130 15.38259213 04 -0 FLOCK 4X 30 24A4 -1 51000U PLANET 24014.34049769 .00000000 00000+0 71671-3 0 06 -2 51000 097.4091 087.9640 0006466 187.2601 125.4239 15.36527658 03 -0 FLOCK 4X 28 24A5 -1 51045U PLANET 24014.34049769 .00000000 00000+0 95566-3 0 04 -2 51045 097.3978 089.4741 0009000 161.1371 041.5290 15.42689945 06 -0 FLOCK 4Y 11 24A7 -1 55043U PLANET 24014.25806713 .00000000 00000+0 38050-3 0 01 -2 55043 097.4526 076.9225 0010220 357.4998 239.9214 15.22334374 07 -0 FLOCK 4Y 9 24A8 -1 55069U PLANET 24014.25806713 .00000000 00000+0 33755-3 0 06 -2 55069 097.4520 077.1902 0012737 005.7587 242.9691 15.23130832 03 -0 FLOCK 4Y 19 24A9 -1 55026U PLANET 24014.25806713 .00000000 00000+0 35019-3 0 04 -2 55026 097.4489 076.9605 0010032 355.6761 088.7774 15.23191402 02 -0 FLOCK 4Q 17 24AA -1 58283U PLANET 24014.34038194 .00000000 00000+0 20104-3 0 01 -2 58283 097.4718 091.1796 0011206 053.3227 077.5019 15.15161257 02 -0 FLOCK 4Y 8 24AB -1 55071U PLANET 24014.25806713 .00000000 00000+0 50008-3 0 09 -2 55071 097.4498 077.2112 0013015 000.0336 230.0008 15.23919190 06 -0 FLOCK 4Q 18 24AD -1 58305U PLANET 24014.34038194 .00000000 00000+0 19473-3 0 03 -2 58305 097.4709 091.2211 0011896 044.5959 199.3130 15.15634268 03 -0 FLOCK 4Y 6 24AF -1 55066U PLANET 24014.25806713 .00000000 00000+0 40668-3 0 04 -2 55066 097.4534 077.2797 0012250 002.2914 318.8619 15.23500496 04 -0 FLOCK 4Y 4 24B0 -1 55055U PLANET 24014.25806713 .00000000 00000+0 42207-3 0 03 -2 55055 097.4503 077.1651 0012098 357.0527 004.6267 15.23509832 09 -0 FLOCK 4Y 28 24B1 -1 55033U PLANET 24014.34069444 .00000000 00000+0 64695-3 0 06 -2 55033 097.4422 078.2118 0007912 358.8290 028.1009 15.27769614 05 -0 FLOCK 4Y 25 24B2 -1 55027U PLANET 24014.34069444 .00000000 00000+0 11015-3 0 07 -2 55027 097.4413 076.9964 0010510 359.7877 195.1373 15.23167300 00 -0 FLOCK 4Y 15 24B3 -1 55068U PLANET 24014.34069444 .00000000 00000+0 44707-3 0 06 -2 55068 097.4467 077.0982 0013140 356.3903 061.2407 15.23283381 00 -0 FLOCK 4Y 5 24B4 -1 55028U PLANET 24014.34069444 .00000000 00000+0 37630-3 0 09 -2 55028 097.4502 077.1367 0010230 353.7885 281.5901 15.23235117 01 -0 FLOCK 4Y 14 24B5 -1 55024U PLANET 24014.34069444 .00000000 00000+0 36444-3 0 07 -2 55024 097.4509 077.1543 0010080 004.5148 125.3572 15.23053254 05 -0 FLOCK 4Y 32 24B6 -1 55021U PLANET 24014.34069444 .00000000 00000+0 36441-3 0 01 -2 55021 097.4485 077.0697 0009572 000.0515 222.6919 15.23382908 04 -0 FLOCK 4Q 21 24B7 -1 58329U PLANET 24014.34038194 .00000000 00000+0 18082-3 0 04 -2 58329 097.4791 091.2217 0012509 059.3672 024.5321 15.14915624 02 -0 FLOCK 4Y 24 24B9 -1 55020U PLANET 24014.34069444 .00000000 00000+0 43634-3 0 02 -2 55020 097.4491 077.0337 0009751 003.3550 080.9307 15.23137381 04 -0 FLOCK 4Y 21 24BA -1 55077U PLANET 24014.34069444 .00000000 00000+0 46550-3 0 04 -2 55077 097.4524 077.3402 0013053 001.0175 029.1665 15.23299809 03 -0 FLOCK 4Y 29 24BB -1 55030U PLANET 24014.34069444 .00000000 00000+0 96296-3 0 05 -2 55030 097.4478 077.0838 0010686 355.4886 343.5653 15.24127761 02 -0 FLOCK 4Y 23 24BC -1 55080U PLANET 24014.34069444 .00000000 00000+0 41382-3 0 06 -2 55080 097.4496 077.2493 0013732 358.1846 231.2782 15.23815369 00 -0 FLOCK 4Q 2 24BD -1 58320U PLANET 24014.34038194 .00000000 00000+0 -46500-5 0 04 -2 58320 097.4734 091.2494 0012618 041.7769 222.1101 15.15578469 05 -0 FLOCK 4Y 31 24BE -1 55075U PLANET 24014.35718750 .00000000 00000+0 79022-3 0 04 -2 55075 097.4504 078.0801 0014865 340.0016 242.0598 15.30104908 06 -0 FLOCK 4Y 33 24BF -1 55042U PLANET 24014.25818287 .00000000 00000+0 38963-3 0 02 -2 55042 097.4485 076.9731 0010495 357.2460 206.3742 15.23204112 09 -0 FLOCK 4Y 30 24C0 -1 55025U PLANET 24014.25818287 .00000000 00000+0 38702-3 0 04 -2 55025 097.4529 077.1863 0009922 003.4225 144.5415 15.23360971 06 -0 FLOCK 4Y 22 24C1 -1 55022U PLANET 24014.25818287 .00000000 00000+0 34992-3 0 08 -2 55022 097.4492 076.9736 0009829 353.9394 031.2186 15.23130808 05 -0 FLOCK 4Y 17 24C2 -1 55031U PLANET 24014.25818287 .00000000 00000+0 30814-3 0 07 -2 55031 097.4528 077.1724 0010030 001.7167 109.4655 15.23226071 04 -0 FLOCK 4Y 10 24C3 -1 55029U PLANET 24014.25818287 .00000000 00000+0 37680-3 0 02 -2 55029 097.4517 077.1594 0009875 359.1065 162.4348 15.23280857 06 -0 FLOCK 4Y 26 24C4 -1 55070U PLANET 24014.25818287 .00000000 00000+0 41953-3 0 06 -2 55070 097.4507 077.0904 0013037 355.1351 010.8047 15.23378470 05 -0 FLOCK 4Y 35 24C5 -1 55057U PLANET 24014.25818287 .00000000 00000+0 40206-3 0 01 -2 55057 097.4510 077.1997 0011119 003.1418 284.0616 15.23392692 09 -0 FLOCK 4Q 36 24C6 -1 58274U PLANET 24014.34038194 .00000000 00000+0 45665-4 0 01 -2 58274 097.4779 091.2194 0011697 057.8791 037.9464 15.14868954 02 -0 FLOCK 4Y 13 24C7 -1 55079U PLANET 24014.25818287 .00000000 00000+0 40228-3 0 09 -2 55079 097.4514 077.1866 0013380 001.2378 239.3206 15.23180764 01 -0 FLOCK 4Y 27 24C8 -1 55083U PLANET 24014.25818287 .00000000 00000+0 42957-3 0 05 -2 55083 097.4507 077.3153 0013794 357.2513 035.6839 15.23909771 09 -0 FLOCK 4Y 16 24C9 -1 55040U PLANET 24014.34065972 .00000000 00000+0 43577-3 0 02 -2 55040 097.4529 077.3669 0010256 001.3417 030.4540 15.23454412 07 -0 FLOCK 4Y 20 24CA -1 55063U PLANET 24014.34065972 .00000000 00000+0 33926-3 0 04 -2 55063 097.4537 077.3273 0012960 002.6668 276.9831 15.23040965 02 -0 FLOCK 4Q 20 24CB -1 58313U PLANET 24014.34038194 .00000000 00000+0 15918-3 0 02 -2 58313 097.4784 091.2919 0013733 046.1311 214.8112 15.15697188 05 -0 FLOCK 4Y 34 24CC -1 55082U PLANET 24014.34065972 .00000000 00000+0 38849-3 0 04 -2 55082 097.4497 077.2491 0013179 356.0614 146.8884 15.23260676 05 -0 FLOCK 4Q 19 24CD -1 58278U PLANET 24014.34038194 .00000000 00000+0 38316-4 0 00 -2 58278 097.4728 091.1572 0011029 058.3901 006.6859 15.14761278 09 -0 FLOCK 4Y 18 24CE -1 55023U PLANET 24014.34065972 .00000000 00000+0 35054-3 0 04 -2 55023 097.4526 077.2351 0009638 000.6646 199.0533 15.23292897 01 -0 FLOCK 4Y 12 24CF -1 55065U PLANET 24014.34065972 .00000000 00000+0 39173-3 0 06 -2 55065 097.4538 077.3758 0012487 001.9383 306.8789 15.23195549 07 -0 FLOCK 4Y 36 24D0 -1 55078U PLANET 24014.34065972 .00000000 00000+0 40130-3 0 05 -2 55078 097.4501 077.2791 0012977 001.0815 201.1524 15.23628717 04 -0 FLOCK 4Q 4 24D1 -1 58327U PLANET 24014.34038194 .00000000 00000+0 22278-4 0 05 -2 58327 097.4729 091.1551 0011627 060.0269 355.9839 15.14684197 05 -0 FLOCK 4Q 24 24D2 -1 58314U PLANET 24014.34038194 .00000000 00000+0 13623-3 0 04 -2 58314 097.4724 091.2320 0012557 043.3323 202.0276 15.15530478 09 -0 FLOCK 4Q 23 24D3 -1 58307U PLANET 24014.34038194 .00000000 00000+0 19056-3 0 02 -2 58307 097.4790 091.2908 0013703 048.1812 192.9173 15.15612089 08 -0 FLOCK 4Q 33 24D5 -1 58308U PLANET 24014.34040509 .00000000 00000+0 85984-4 0 00 -2 58308 097.4730 091.2518 0012784 045.5428 241.3224 15.15821057 05 -0 FLOCK 4Q 32 24D6 -1 58310U PLANET 24014.34040509 .00000000 00000+0 93650-3 0 01 -2 58310 097.4805 091.3204 0012848 041.4377 292.6794 15.16705527 08 -0 FLOCK 4Q 1 24D7 -1 58270U PLANET 24014.34040509 .00000000 00000+0 35052-4 0 09 -2 58270 097.4782 091.1946 0012606 061.8887 339.5678 15.14637081 01 -0 FLOCK 4Q 35 24DD -1 58309U PLANET 24014.34040509 .00000000 00000+0 11783-3 0 06 -2 58309 097.4780 091.2835 0013605 051.0500 192.3321 15.15541148 02 -0 FLOCK 4Q 7 24DF -1 58318U PLANET 24014.34040509 .00000000 00000+0 81773-5 0 04 -2 58318 097.4789 091.2945 0013569 044.3435 216.6186 15.15576708 03 -0 FLOCK 4Q 15 24E0 -1 58319U PLANET 24014.34040509 .00000000 00000+0 10854-3 0 05 -2 58319 097.4729 091.2758 0011899 057.8275 219.8624 15.15736949 02 -0 FLOCK 4Q 25 24E1 -1 58303U PLANET 24014.34040509 .00000000 00000+0 24579-3 0 07 -2 58303 097.4706 091.2117 0011706 044.7663 181.0087 15.15566233 02 -0 FLOCK 4Q 5 24E2 -1 58325U PLANET 24014.34040509 .00000000 00000+0 64744-3 0 09 -2 58325 097.4774 091.3039 0013502 040.4882 274.3639 15.16313005 04 -0 FLOCK 4Q 3 24E4 -1 58312U PLANET 24014.34040509 .00000000 00000+0 47590-3 0 05 -2 58312 097.4788 091.3362 0012588 044.5977 316.9286 15.16578380 07 -0 FLOCK 4Q 16 24E5 -1 58271U PLANET 24014.34040509 .00000000 00000+0 -90222-5 0 02 -2 58271 097.4750 091.1587 0012603 062.6996 320.6546 15.14524226 06 -0 FLOCK 4Q 14 24E6 -1 58311U PLANET 24014.34039352 .00000000 00000+0 72796-4 0 05 -2 58311 097.4721 091.2280 0011728 043.7989 200.4687 15.15530158 02 -0 FLOCK 4Q 8 24E8 -1 58279U PLANET 24014.34039352 .00000000 00000+0 -63300-4 0 00 -2 58279 097.4761 091.2048 0011817 064.9774 353.2950 15.14661571 00 -0 FLOCK 4Q 9 24EB -1 58322U PLANET 24014.34039352 .00000000 00000+0 -55736-5 0 04 -2 58322 097.4749 091.2632 0012936 042.0938 226.7695 15.15605535 05 -0 FLOCK 4Q 22 24ED -1 58306U PLANET 24014.34039352 .00000000 00000+0 74051-4 0 05 -2 58306 097.4716 091.2141 0012079 045.1900 169.6483 15.15393624 00 -0 FLOCK 4Q 11 24EE -1 58273U PLANET 24014.34039352 .00000000 00000+0 -44839-5 0 01 -2 58273 097.4773 091.1832 0012344 062.1014 331.2981 15.14571751 00 -0 FLOCK 4Q 6 24F1 -1 58315U PLANET 24014.34039352 .00000000 00000+0 29955-4 0 08 -2 58315 097.4717 091.2233 0012175 042.9290 191.3475 15.15441446 06 -0 FLOCK 4Q 31 24F2 -1 58285U PLANET 24014.34039352 .00000000 00000+0 82173-4 0 05 -2 58285 097.4802 091.2415 0012611 057.4318 049.8552 15.14938930 07 -0 FLOCK 4Q 13 24F3 -1 58328U PLANET 24014.34039352 .00000000 00000+0 -69707-5 0 03 -2 58328 097.4793 091.2035 0013266 060.0506 346.3609 15.14614743 09 -0 FLOCK 4Q 30 24F4 -1 58286U PLANET 24014.34039352 .00000000 00000+0 73277-4 0 01 -2 58286 097.4803 091.2434 0013013 056.2496 056.0482 15.14960415 06 -0 FLOCK 4Q 26 24F5 -1 58284U PLANET 24014.34039352 .00000000 00000+0 80084-4 0 03 -2 58284 097.4786 091.2297 0012131 057.7495 048.7599 15.14942859 05 -0 FLOCK 4Q 28 24F6 -1 58280U PLANET 24014.34050926 .00000000 00000+0 41226-4 0 04 -2 58280 097.4784 091.2078 0011633 059.8688 007.4522 15.14735102 08 -0 FLOCK 4Q 12 24F8 -1 58275U PLANET 24014.34050926 .00000000 00000+0 12181-3 0 05 -2 58275 097.4740 091.1726 0011603 058.9261 013.4713 15.15099817 03 -0 FLOCK 4Q 34 24F9 -1 58316U PLANET 24014.34050926 .00000000 00000+0 76869-4 0 05 -2 58316 097.4737 091.2468 0013366 044.9515 213.8867 15.15598853 04 -0 FLOCK 4Q 29 24FB -1 58304U PLANET 24014.34050926 .00000000 00000+0 80817-4 0 00 -2 58304 097.4799 091.2844 0012999 047.3028 165.1831 15.15391610 06 -0 FLOCK 4Q 10 24FC -1 58324U PLANET 24014.34050926 .00000000 00000+0 42323-4 0 02 -2 58324 097.4754 091.2667 0012657 040.4762 225.5253 15.15607785 04 -0 FLOCK 4Q 27 24FD -1 58282U PLANET 24014.34050926 .00000000 00000+0 25890-4 0 05 -2 58282 097.4733 091.1701 0010794 054.4306 034.3275 15.14829255 08 -0 PELICAN 3001 3001 -1 58296U PLANET 24014.30336806 .00000000 00000+0 33133-3 0 08 -2 58296 097.4761 091.1790 0012415 052.5664 239.1171 15.15174473 06 -0 SKYSAT A S1 -1 39418U PLANET 24014.34034722 .00000000 00000+0 -24934-3 0 09 -2 39418 097.5114 079.2558 0027974 110.8117 085.8364 15.03621646 06 -0 SKYSAT C3 S103 -1 41774U PLANET 24014.34042824 .00000000 00000+0 32220-3 0 05 -2 41774 097.0375 074.2138 0003620 120.3903 129.3249 15.41807576 04 -0 SKYSAT C4 S104 -1 41771U PLANET 24014.34042824 .00000000 00000+0 28694-3 0 02 -2 41771 097.0362 069.3812 0003453 128.6526 272.7759 15.33703172 04 -0 SKYSAT C5 S105 -1 41772U PLANET 24014.34042824 .00000000 00000+0 28090-3 0 03 -2 41772 097.1844 073.1554 0003755 064.5110 261.9661 15.37507480 09 -0 SKYSAT C6 S106 -1 42992U PLANET 24014.34042824 .00000000 00000+0 53803-3 0 08 -2 42992 097.3532 142.6856 0006721 092.2602 069.4650 15.30490553 01 -0 SKYSAT C7 S107 -1 42991U PLANET 24014.34042824 .00000000 00000+0 48781-3 0 06 -2 42991 097.3510 141.7425 0003479 152.8815 158.6996 15.30592189 06 -0 SKYSAT C8 S108 -1 42990U PLANET 24014.34042824 .00000000 00000+0 51009-3 0 02 -2 42990 097.3510 141.4312 0004406 087.2290 266.4094 15.30247304 09 -0 SKYSAT C9 S109 -1 42989U PLANET 24014.34042824 .00000000 00000+0 57799-3 0 02 -2 42989 097.3416 139.9055 0022612 146.6472 019.3757 15.31939297 00 -0 SKYSAT C10 S110 -1 42988U PLANET 24014.34042824 .00000000 00000+0 47613-3 0 05 -2 42988 097.3484 141.6428 0003222 271.8906 351.9946 15.31468124 08 -0 SKYSAT C11 S111 -1 42987U PLANET 24014.34042824 .00000000 00000+0 47987-3 0 08 -2 42987 097.3412 140.8796 0005107 124.5376 138.7928 15.33538340 07 -0 SKYSAT C12 S112 -1 43797U PLANET 24014.34042824 .00000000 00000+0 30149-3 0 00 -2 43797 097.0460 071.0530 0002853 296.4320 256.9627 15.30309452 07 -0 SKYSAT C13 S113 -1 43802U PLANET 24014.34041667 .00000000 00000+0 38697-3 0 07 -2 43802 097.0716 074.2865 0005154 179.4852 247.5458 15.38097602 08 -0 SKYSAT C14 S114 -1 45788U PLANET 24014.34041667 .00000000 00000+0 75404-3 0 09 -2 45788 052.9789 064.2831 0009293 284.0701 075.1876 15.55280663 08 -0 SKYSAT C15 S115 -1 45790U PLANET 24014.34041667 .00000000 00000+0 72262-3 0 01 -2 45790 052.9793 069.3456 0001661 270.5603 050.4392 15.48751774 04 -0 SKYSAT C16 S116 -1 45789U PLANET 24014.34041667 .00000000 00000+0 72274-3 0 02 -2 45789 052.9792 052.5301 0002988 023.7610 146.9609 15.53251128 09 -0 SKYSAT C17 S117 -1 46179U PLANET 24014.34041667 .00000000 00000+0 94476-3 0 04 -2 46179 052.9701 126.7802 0003760 087.6414 127.4462 15.84097860 09 -0 SKYSAT C19 S119 -1 46235U PLANET 24014.34041667 .00000000 00000+0 96821-3 0 03 -2 46235 052.9659 112.8560 0005231 013.5352 355.1762 15.99890401 06 -0 SKYSAT B S2 -1 40072U PLANET 24014.34034722 .00000000 00000+0 45070-3 0 00 -2 40072 098.3423 279.3164 0004763 262.8019 115.7535 14.83351531 05 -0 SKYSAT C1 S3 -1 41601U PLANET 24014.34041667 .00000000 00000+0 23536-3 0 08 -2 41601 097.0866 082.1418 0006387 105.0805 120.3504 15.30459676 08 -0 SKYSAT C2 S4 -1 41773U PLANET 24014.34041667 .00000000 00000+0 25880-3 0 02 -2 41773 097.0381 068.9835 0003540 152.2467 284.4478 15.30144797 08 diff --git a/src/__tests__/__snapshots__/main.test.jsx.snap b/src/__tests__/__snapshots__/main.test.jsx.snap deleted file mode 100644 index ac44e675..00000000 --- a/src/__tests__/__snapshots__/main.test.jsx.snap +++ /dev/null @@ -1,62 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`App > renders without crashing 1`] = ` -{ - "asFragment": [Function], - "baseElement": <body> - <div /> - </body>, - "container": <div />, - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; diff --git a/src/__tests__/main.test.jsx b/src/__tests__/main.test.jsx deleted file mode 100644 index 9c482918..00000000 --- a/src/__tests__/main.test.jsx +++ /dev/null @@ -1,88 +0,0 @@ -import {render, waitFor} from '@testing-library/react'; -import {beforeEach, describe, expect, it, vi} from 'vitest'; -import axios from 'axios'; -import {readFileSync} from 'node:fs'; -import {join, dirname} from 'node:path'; -import {fileURLToPath} from 'node:url'; - -import App from '../App.jsx'; - -// Mock axios -vi.mock('axios'); - -// Get __dirname equivalent in ES modules -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); - -// Read mock TLE data -const mockTLEData = readFileSync(join(__dirname, '__mocks__/planet_mc.tle'), 'utf-8'); - -describe('App', () => { - beforeEach(() => { - // Reset mocks before each test - vi.clearAllMocks(); - }); - - it('renders without crashing', async () => { - // Mock successful axios response with mock TLE data - axios.get.mockResolvedValue({data: mockTLEData}); - - const rendering = render(<App/>); - - // Wait for async state updates to complete - await waitFor(() => { - expect(axios.get).toHaveBeenCalled(); - }, {timeout: 3000}); - - expect(rendering).toMatchSnapshot(); - }); - - it('renders with mocked TLE data', async () => { - // Mock successful axios response with mock TLE data - axios.get.mockResolvedValue({data: mockTLEData}); - - const {container} = render(<App/>); - - // Wait for the data to be loaded and processed - await waitFor(() => { - expect(axios.get).toHaveBeenCalledWith('https://ephemerides.planet-labs.com/planet_mc.tle'); - }, {timeout: 3000}); - - // Verify that the component is still rendered - expect(container).toBeTruthy(); - }); - - it('selects first available satellite from FLOCK-4Y constellation', async () => { - // Mock successful axios response - axios.get.mockResolvedValue({data: mockTLEData}); - - const {container} = render(<App/>); - - // Wait for data to be loaded - await waitFor(() => { - expect(axios.get).toHaveBeenCalled(); - }, {timeout: 3000}); - - // The component should render successfully with the first available satellite - expect(container).toBeTruthy(); - }); - - it('falls back to any satellite when FLOCK-4Y is not available', async () => { - // Mock with data that has no FLOCK-4Y satellites, but has other satellites - const emptyTLEData = `0 DOVE 2 0505 -1 39132U PLANET 24014.33959491 .00000000 00000+0 68541-3 0 01 -2 39132 064.8706 191.0812 0013941 242.6312 160.2676 15.18144161 01`; - - axios.get.mockResolvedValue({data: emptyTLEData}); - - const {container} = render(<App/>); - - // Wait for axios call - await waitFor(() => { - expect(axios.get).toHaveBeenCalled(); - }, {timeout: 3000}); - - // Component should handle missing FLOCK-4Y constellation by using any available satellite - expect(container).toBeTruthy(); - }); -}); diff --git a/src/__tests__/parsePlanetTLEs.test.js b/src/__tests__/parsePlanetTLEs.test.js deleted file mode 100644 index f8e5a2ad..00000000 --- a/src/__tests__/parsePlanetTLEs.test.js +++ /dev/null @@ -1,66 +0,0 @@ -import {describe, expect, it} from 'vitest'; -import parsePlanetTLEs from '../parsePlanetTLEs.js'; - -describe('parsePlanetTLEs', () => { -it('parses TLE data correctly', () => { -const sampleTLE = `0 FLOCK 4Y 1 2415 -1 55039U PLANET 24014.35593750 .00000000 00000+0 70863-3 0 09 -2 55039 097.4501 077.5361 0009502 355.3438 300.6883 15.25954389 05 -0 FLOCK 4Y 7 2417 -1 55032U PLANET 24014.25806713 .00000000 00000+0 39313-3 0 02 -2 55032 097.4481 077.0480 0010169 353.1694 237.5951 15.23247457 06`; - -const result = parsePlanetTLEs(sampleTLE); - -expect(result).toBeDefined(); -expect(result['FLOCK-4Y']).toBeDefined(); -expect(result['FLOCK-4Y']['2415']).toBeDefined(); -expect(result['FLOCK-4Y']['2417']).toBeDefined(); - -// Check that TLE lines are properly stored -expect(result['FLOCK-4Y']['2415']).toContain('55039U PLANET'); -expect(result['FLOCK-4Y']['2415']).toContain('097.4501'); -}); - -it('handles FLOCK constellation names correctly', () => { -const sampleTLE = `0 FLOCK 1C 1 0903 -1 40027U PLANET 24014.34041667 .00000000 00000+0 21303-2 0 08 -2 40027 098.0882 349.5505 0007262 303.2218 266.8341 15.07759420 07`; - -const result = parsePlanetTLEs(sampleTLE); - -expect(result['FLOCK-1C']).toBeDefined(); -expect(result['FLOCK-1C']['0903']).toBeDefined(); -}); - -it('handles non-FLOCK satellites', () => { -const sampleTLE = `0 DOVE 2 0505 -1 39132U PLANET 24014.33959491 .00000000 00000+0 68541-3 0 01 -2 39132 064.8706 191.0812 0013941 242.6312 160.2676 15.18144161 01`; - -const result = parsePlanetTLEs(sampleTLE); - -expect(result['DOVE']).toBeDefined(); -expect(result['DOVE']['0505']).toBeDefined(); -}); - -it('handles multiple satellites in same constellation', () => { -const sampleTLE = `0 FLOCK 4Y 1 2415 -1 55039U PLANET 24014.35593750 .00000000 00000+0 70863-3 0 09 -2 55039 097.4501 077.5361 0009502 355.3438 300.6883 15.25954389 05 -0 FLOCK 4Y 7 2417 -1 55032U PLANET 24014.25806713 .00000000 00000+0 39313-3 0 02 -2 55032 097.4481 077.0480 0010169 353.1694 237.5951 15.23247457 06 -0 FLOCK 4Y 3 242E -1 55035U PLANET 24014.25806713 .00000000 00000+0 36783-3 0 03 -2 55035 097.4483 077.0360 0012698 358.4220 271.4676 15.23292654 00`; - -const result = parsePlanetTLEs(sampleTLE); - -expect(result['FLOCK-4Y']).toBeDefined(); -expect(Object.keys(result['FLOCK-4Y']).length).toBe(3); -expect(result['FLOCK-4Y']['2415']).toBeDefined(); -expect(result['FLOCK-4Y']['2417']).toBeDefined(); -expect(result['FLOCK-4Y']['242E']).toBeDefined(); -}); -}); diff --git a/src/main.jsx b/src/main.jsx deleted file mode 100644 index 9162585e..00000000 --- a/src/main.jsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import App from './App.jsx'; - -ReactDOM.createRoot(document.getElementById('root')).render( - <React.StrictMode> - <App/> - </React.StrictMode>, -); diff --git a/src/parsePlanetTLEs.js b/src/parsePlanetTLEs.js deleted file mode 100644 index 6333c5c4..00000000 --- a/src/parsePlanetTLEs.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Parses Planet Labs PBC's two-line element sets (TLE) and returns a collection of individual TLEs keyed by constellation and hardware ID (hwid) - * @param [planetTLEs] - Planet Labs PBC's two-line element sets (TLE) - * @returns {Object} - */ -const parsePlanetTLEs = planetTLEs => { - const lines = planetTLEs?.split('\n'); - const tleCollection = {}; - - for (let i = 0; i < lines.length; i += 3) { - const fields = lines[i].split(' '); - // eslint-disable-next-line no-unused-vars - const [_, constellationName, subConstellationName] = fields; - const hwid = fields.slice(-1)[0]; - - const satellite = {} - satellite[hwid] = lines[i + 1] + '\n' + lines[i + 2]; - const constellation = constellationName === 'FLOCK' ? `${constellationName}-${subConstellationName}` : constellationName; - tleCollection[constellation] = {...tleCollection[constellation], ...satellite}; - } - - return tleCollection; -} - -export default parsePlanetTLEs; diff --git a/vite.config.js b/vite.config.js deleted file mode 100644 index 7899de24..00000000 --- a/vite.config.js +++ /dev/null @@ -1,58 +0,0 @@ -import path from 'node:path'; -import process from 'node:process'; -import {fileURLToPath} from 'node:url'; -import {defineConfig, searchForWorkspaceRoot} from 'vite'; -import react from '@vitejs/plugin-react-swc'; -import cesium from 'vite-plugin-cesium'; -import {codecovVitePlugin} from '@codecov/vite-plugin'; -import {configDefaults} from 'vitest/config'; - -const __dirname = path.dirname(fileURLToPath(import.meta.url)); - -export default defineConfig(() => ({ - base: '/', - build: { - outDir: 'build', - }, - worker: { - format: 'es', - }, - plugins: [ - react(), - cesium(), - // Put the Codecov vite plugin after all other plugins - codecovVitePlugin({ - enableBundleAnalysis: process.env.CODECOV_TOKEN !== undefined, - bundleName: 'satellite-tracker', - uploadToken: process.env.CODECOV_TOKEN, - gitService: 'github', - }), - ], - resolve: { - preserveSymlinks: true, - }, - server: { - port: 3000, - fs: { - allow: [searchForWorkspaceRoot(process.cwd()), __dirname], - }, - }, - test: { - exclude: [ - ...configDefaults.exclude, - 'src/index.jsx', - ], - coverage: { - all: true, - }, - globals: true, - // Use jsdom to simulate a browser environment, preventing "ReferenceError: window is not defined" - // in tests that rely on browser globals (e.g. components using Cesium/DOM APIs). - environment: 'jsdom', - setupFiles: './setup-tests.js', - reporters: ['default', 'junit'], - outputFile: { - junit: './junit.xml', - }, - }, -}));